<?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>128291</bug_id>
          
          <creation_ts>2014-02-05 19:07:20 -0800</creation_ts>
          <short_desc>GC blocks on FTL and then badness</short_desc>
          <delta_ts>2014-02-20 12:21:48 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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>128297</dependson>
    
    <dependson>128443</dependson>
    
    <dependson>128505</dependson>
          <blocked>128039</blocked>
    
    <blocked>128521</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>atrick</cc>
    
    <cc>barraclough</cc>
    
    <cc>bunhere</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ggaren</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mhahnenberg</cc>
    
    <cc>mmirman</cc>
    
    <cc>msaboff</cc>
    
    <cc>nrotem</cc>
    
    <cc>oliver</cc>
    
    <cc>rakuco</cc>
    
    <cc>sam</cc>
    
    <cc>sergio</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>977192</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2014-02-05 19:07:20 -0800</bug_when>
    <thetext>This is the primary reason for the FTL appearing to be a regression on Octane/typescript.  It&apos;s probably also the reason for the Octane/gbemu regression.  And it&apos;s the reason why we need so many compiler threads.

We should totally fix this.  I suspect that we might be able to make LLVM compilation concurrent with the GC.  But it seems hard-ish.  And if we make it work then we might as well make concurrent compilation work concurrently with GC full stop.  I have a hard time imagining why this wouldn&apos;t work, if we just marked everything event slightly reachable (weakly, strongly, or anythingly) from the to-be-compiled code block so long as it was part of a DFG::Plan that is on any worklist.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>977195</commentid>
    <comment_count>1</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2014-02-05 19:10:09 -0800</bug_when>
    <thetext>*** Bug 125518 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>977241</commentid>
    <comment_count>2</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2014-02-05 22:22:23 -0800</bug_when>
    <thetext>Here&apos;s my new strawman proposal, consisting of two standalone bugs:

1) When GC starts, don&apos;t wait for the worklist to become empty like we do now.  Instead, ask for the current compilations to finish and ask the JIT threads not to dequeue any more work, and then strongly visit all references from all DFG::Plan&apos;s still on the worklist.  A DFG::Plan is a CodeBlock plus a few other things.
	
	=&gt; A close alternative would be to just remove any Plans from the worklist that had CodeBlocks that died during GC.  This is doable but seems trickier.

This would be a standalone patch and it would be a speed-up.  It&apos;s embarrassing, but in trunk we really do have GC wait for *all* outstanding compilations to finish.  This is a big part of our problems.

2) When the GC asks for the current compilations to finish, make it treat JIT threads that are currently blocked on LLVM as &quot;safe&quot; threads and let them proceed concurrently.  In proper safepointing fashion, this means each thread effectively will have a &quot;right-to-run&quot; mutex.  The thread will acquire this mutex precisely when it is about to do DFG work.  It will release it just before waiting for more work from the worklist, and also just before calling into LLVM.  If the thread every releases the right-to-run mutex while holding onto a DFG::Graph, it will make sure that the DFG::Graph is available to the GC for scanning. The workflow of an FTL thread will thus be:
	
	Mutex rightToRun; // Per-thread variable visible to the GC
	Graph* graph = 0; // Per-thread variable visible to the GC
	for (;;) {
	    RefPtr&lt;Plan&gt; plan = worklist.pop();
	    {
	        Locker locker(rightToRun);
	        DFG::parse(plan);
	        DFG::optimize(plan);
	        FTL::lowerDFGToLLVM(plan);
	        graph = &amp;plan.graph;
	    }
	    LLVM::doThings(plan);
	    {
	        Locker locker(rightToRun);
	        graph = 0;
	        FTL::link(plan);
	        plan.complete();
	    }
	}

The DFG workflow will be simpler:

	Mutex rightToRun; // Per-thread variable visible to the GC
	for (;;) {
	    RefPtr&lt;Plan&gt; plan = worklist.pop();
	    {
	        Locker locker(rightToRun);
	        DFG::parse(plan);
	        DFG::optimize(plan);
	        DFG::generate(plan);
	        plan.complete();
	    }
	}

The GC will acquire the rightToRun of each JIT thread before GC starts, and will release the rightToRun of each JIT thread after GC ends.  While the GC is running, it will inspect each JIT thread&apos;s graph - if it&apos;s non-null, then it will strongly scan it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>978283</commentid>
    <comment_count>3</comment_count>
      <attachid>223548</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2014-02-07 22:10:45 -0800</bug_when>
    <thetext>Created attachment 223548
work in progress</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>978609</commentid>
    <comment_count>4</comment_count>
      <attachid>223635</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2014-02-09 11:32:51 -0800</bug_when>
    <thetext>Created attachment 223635
the patch

I think it&apos;s ready, but I&apos;m not setting r? because I have no tests to do.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>978614</commentid>
    <comment_count>5</comment_count>
      <attachid>223637</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2014-02-09 12:11:13 -0800</bug_when>
    <thetext>Created attachment 223637
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>978615</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-02-09 12:13:48 -0800</bug_when>
    <thetext>Attachment 223637 did not pass style-queue:


ERROR: Source/JavaScriptCore/dfg/DFGJITCompiler.cpp:44:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 1 in 42 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>978616</commentid>
    <comment_count>7</comment_count>
      <attachid>223638</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2014-02-09 12:22:29 -0800</bug_when>
    <thetext>Created attachment 223638
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>978617</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-02-09 12:25:02 -0800</bug_when>
    <thetext>Attachment 223638 did not pass style-queue:


ERROR: Source/JavaScriptCore/dfg/DFGJITCompiler.cpp:45:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 1 in 43 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>978619</commentid>
    <comment_count>9</comment_count>
      <attachid>223639</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2014-02-09 12:32:25 -0800</bug_when>
    <thetext>Created attachment 223639
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>978620</commentid>
    <comment_count>10</comment_count>
      <attachid>223640</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2014-02-09 12:39:41 -0800</bug_when>
    <thetext>Created attachment 223640
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>978623</commentid>
    <comment_count>11</comment_count>
      <attachid>223642</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2014-02-09 12:47:01 -0800</bug_when>
    <thetext>Created attachment 223642
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>978626</commentid>
    <comment_count>12</comment_count>
      <attachid>223643</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2014-02-09 12:53:49 -0800</bug_when>
    <thetext>Created attachment 223643
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>978627</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-02-09 12:55:38 -0800</bug_when>
    <thetext>Attachment 223643 did not pass style-queue:


ERROR: Source/JavaScriptCore/bytecode/SamplingTool.cpp:34:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 1 in 54 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>978628</commentid>
    <comment_count>14</comment_count>
      <attachid>223644</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2014-02-09 13:00:40 -0800</bug_when>
    <thetext>Created attachment 223644
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>978629</commentid>
    <comment_count>15</comment_count>
      <attachid>223645</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2014-02-09 13:08:49 -0800</bug_when>
    <thetext>Created attachment 223645
the ptch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>978631</commentid>
    <comment_count>16</comment_count>
      <attachid>223646</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2014-02-09 13:13:14 -0800</bug_when>
    <thetext>Created attachment 223646
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>978688</commentid>
    <comment_count>17</comment_count>
      <attachid>223663</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2014-02-09 18:58:37 -0800</bug_when>
    <thetext>Created attachment 223663
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>978689</commentid>
    <comment_count>18</comment_count>
      <attachid>223664</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2014-02-09 19:01:22 -0800</bug_when>
    <thetext>Created attachment 223664
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>978690</commentid>
    <comment_count>19</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-02-09 19:03:27 -0800</bug_when>
    <thetext>Attachment 223664 did not pass style-queue:


ERROR: Source/JavaScriptCore/dfg/DFGThreadData.cpp:30:  You should not add a blank line before implementation file&apos;s own header.  [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGSafepoint.cpp:30:  You should not add a blank line before implementation file&apos;s own header.  [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGGraphSafepoint.cpp:30:  You should not add a blank line before implementation file&apos;s own header.  [build/include_order] [4]
Total errors found: 3 in 23 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>978748</commentid>
    <comment_count>20</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2014-02-09 23:16:50 -0800</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/163765</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>982934</commentid>
    <comment_count>21</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2014-02-20 12:21:48 -0800</bug_when>
    <thetext>*** Bug 125518 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>223548</attachid>
            <date>2014-02-07 22:10:45 -0800</date>
            <delta_ts>2014-02-09 11:32:51 -0800</delta_ts>
            <desc>work in progress</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>54450</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTYzNjk0KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUyIEBA
CisyMDE0LTAyLTA3ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
R0MgYmxvY2tzIG9uIEZUTCBhbmQgdGhlbiBiYWRuZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjgyOTEKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIFdvcmsgaW4gcHJvZ3Jlc3MuCisKKyAg
ICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgor
ICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvajoK
KyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAg
ICAgICAqIGRmZy9ERkdHcmFwaC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6R3JhcGg6OnZpc2l0
Q2hpbGRyZW4pOgorICAgICAgICAqIGRmZy9ERkdHcmFwaC5oOgorICAgICAgICAqIGRmZy9ERkdH
cmFwaFNhZmVwb2ludC5jcHA6IEFkZGVkLgorICAgICAgICAoSlNDOjpERkc6OkdyYXBoU2FmZXBv
aW50OjpHcmFwaFNhZmVwb2ludCk6CisgICAgICAgIChKU0M6OkRGRzo6R3JhcGhTYWZlcG9pbnQ6
On5HcmFwaFNhZmVwb2ludCk6CisgICAgICAgICogZGZnL0RGR0dyYXBoU2FmZXBvaW50Lmg6IEFk
ZGVkLgorICAgICAgICAqIGRmZy9ERkdQbGFuLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpQbGFu
Ojpjb21waWxlSW5UaHJlYWQpOgorICAgICAgICAoSlNDOjpERkc6OlBsYW46OmNvbXBpbGVJblRo
cmVhZEltcGwpOgorICAgICAgICAqIGRmZy9ERkdQbGFuLmg6CisgICAgICAgICogZGZnL0RGR1Nh
ZmVwb2ludC5jcHA6IEFkZGVkLgorICAgICAgICAoSlNDOjpERkc6OlNhZmVwb2ludDo6U2FmZXBv
aW50KToKKyAgICAgICAgKEpTQzo6REZHOjpTYWZlcG9pbnQ6On5TYWZlcG9pbnQpOgorICAgICAg
ICAoSlNDOjpERkc6OlNhZmVwb2ludDo6YWRkKToKKyAgICAgICAgKEpTQzo6REZHOjpTYWZlcG9p
bnQ6OmJlZ2luKToKKyAgICAgICAgKEpTQzo6REZHOjpTYWZlcG9pbnQ6OnZpc2l0Q2hpbGRyZW4p
OgorICAgICAgICAqIGRmZy9ERkdTYWZlcG9pbnQuaDogQWRkZWQuCisgICAgICAgICogZGZnL0RG
R1NjYW5uYWJsZS5oOiBBZGRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTY2FubmFibGU6OlNjYW5u
YWJsZSk6CisgICAgICAgIChKU0M6OkRGRzo6U2Nhbm5hYmxlOjp+U2Nhbm5hYmxlKToKKyAgICAg
ICAgKiBkZmcvREZHVGhyZWFkRGF0YS5jcHA6IEFkZGVkLgorICAgICAgICAoSlNDOjpERkc6OlRo
cmVhZERhdGE6OlRocmVhZERhdGEpOgorICAgICAgICAoSlNDOjpERkc6OlRocmVhZERhdGE6On5U
aHJlYWREYXRhKToKKyAgICAgICAgKiBkZmcvREZHVGhyZWFkRGF0YS5oOiBBZGRlZC4KKyAgICAg
ICAgKiBkZmcvREZHV29ya2xpc3QuY3BwOgorICAgICAgICAoSlNDOjpERkc6OldvcmtsaXN0Ojpm
aW5pc2hDcmVhdGlvbik6CisgICAgICAgIChKU0M6OkRGRzo6V29ya2xpc3Q6OnZpc2l0Q2hpbGRy
ZW4pOgorICAgICAgICAqIGRmZy9ERkdXb3JrbGlzdC5oOgorICAgICAgICAqIGZ0bC9GVExDb21w
aWxlLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpjb21waWxlKToKKyAgICAgICAgKiBoZWFwL1Ns
b3RWaXNpdG9yLmg6CisgICAgICAgICogaGVhcC9TbG90VmlzaXRvcklubGluZXMuaDoKKyAgICAg
ICAgKEpTQzo6U2xvdFZpc2l0b3I6OmFwcGVuZFVuYmFycmllcmVkUmVhZE9ubHlQb2ludGVyKToK
KyAgICAgICAgKEpTQzo6U2xvdFZpc2l0b3I6OmFwcGVuZFVuYmFycmllcmVkUmVhZE9ubHlWYWx1
ZSk6CisKIDIwMTQtMDItMDcgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KIAogICAg
ICAgICBHQyBzaG91bGQgc2FmZXBvaW50IHRoZSBERkcgd29ya2xpc3QgaW4gYSBzbWFydGVyIHdh
eSByYXRoZXIgdGhhbiBqdXN0IHdhaXRpbmcgZm9yIGV2ZXJ5dGhpbmcgdG8gY29tcGxldGUKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQJKHJldmlzaW9uIDE2MzY5MCkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAkod29ya2luZyBjb3B5KQpAQCAt
MTM4LDYgKzEzOCw3IEBAIHNldChKYXZhU2NyaXB0Q29yZV9TT1VSQ0VTCiAgICAgZGZnL0RGR0Zs
dXNoTGl2ZW5lc3NBbmFseXNpc1BoYXNlLmNwcAogICAgIGRmZy9ERkdGbHVzaGVkQXQuY3BwCiAg
ICAgZGZnL0RGR0dyYXBoLmNwcAorICAgIGRmZy9ERkdHcmFwaFNhZmVwb2ludC5jcHAKICAgICBk
ZmcvREZHSW5QbGFjZUFic3RyYWN0U3RhdGUuY3BwCiAgICAgZGZnL0RGR0ludmFsaWRhdGlvblBv
aW50SW5qZWN0aW9uUGhhc2UuY3BwCiAgICAgZGZnL0RGR0pJVENvZGUuY3BwCkBAIC0xNzIsMTIg
KzE3MywxNCBAQCBzZXQoSmF2YVNjcmlwdENvcmVfU09VUkNFUwogICAgIGRmZy9ERkdSZXN1cnJl
Y3Rpb25Gb3JWYWxpZGF0aW9uUGhhc2UuY3BwCiAgICAgZGZnL0RGR1NTQUNvbnZlcnNpb25QaGFz
ZS5jcHAKICAgICBkZmcvREZHU1NBTG93ZXJpbmdQaGFzZS5jcHAKKyAgICBkZmcvREZHU2FmZXBv
aW50LmNwcAogICAgIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKICAgICBkZmcvREZHU3BlY3Vs
YXRpdmVKSVQzMl82NC5jcHAKICAgICBkZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKICAgICBk
ZmcvREZHU3RhY2tMYXlvdXRQaGFzZS5jcHAKICAgICBkZmcvREZHU3RvcmVCYXJyaWVyRWxpc2lv
blBoYXNlLmNwcAogICAgIGRmZy9ERkdTdHJlbmd0aFJlZHVjdGlvblBoYXNlLmNwcAorICAgIGRm
Zy9ERkdUaHJlYWREYXRhLmNwcAogICAgIGRmZy9ERkdUaHVua3MuY3BwCiAgICAgZGZnL0RGR1Rp
ZXJVcENoZWNrSW5qZWN0aW9uUGhhc2UuY3BwCiAgICAgZGZnL0RGR1R5cGVDaGVja0hvaXN0aW5n
UGhhc2UuY3BwCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvR05VbWFrZWZpbGUubGlzdC5h
bQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvR05VbWFrZWZpbGUubGlzdC5h
bQkocmV2aXNpb24gMTYzNjkwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0dOVW1ha2VmaWxl
Lmxpc3QuYW0JKHdvcmtpbmcgY29weSkKQEAgLTMwNCw2ICszMDQsOCBAQCBqYXZhc2NyaXB0Y29y
ZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dlbmVyYXRpb25J
bmZvLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguY3BwIFwKIAlTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmggXAorCVNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHR3JhcGhTYWZlcG9pbnQuY3BwIFwKKwlTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0dyYXBoU2FmZXBvaW50LmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSW5Q
bGFjZUFic3RyYWN0U3RhdGUuY3BwIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0lu
UGxhY2VBYnN0cmFjdFN0YXRlLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSW5s
aW5lQ2FjaGVXcmFwcGVyLmggXApAQCAtMzc3LDcgKzM3OSwxMCBAQCBqYXZhc2NyaXB0Y29yZV9z
b3VyY2VzICs9IFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Jlc3VycmVjdGlvbkZv
clZhbGlkYXRpb25QaGFzZS5jcHAgXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUmVz
dXJyZWN0aW9uRm9yVmFsaWRhdGlvblBoYXNlLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHU2FmZVRvRXhlY3V0ZS5oIFwKKwlTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nh
ZmVwb2ludC5jcHAgXAorCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZXBvaW50Lmgg
XAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FuZVN0cmluZ0dldEJ5VmFsU2xvd1Bh
dGhHZW5lcmF0b3IuaCBcCisJU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTY2FubmFibGUu
aCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTY29yZUJvYXJkLmggXAogCVNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2lsZW50UmVnaXN0ZXJTYXZlUGxhbi5oIFwKIAlTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nsb3dQYXRoR2VuZXJhdG9yLmggXApAQCAtMzk4LDYg
KzQwMyw4IEBAIGphdmFzY3JpcHRjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHU3RydWN0dXJlQWJzdHJhY3RWYWx1ZS5oIFwKIAlTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1RpZXJVcENoZWNrSW5qZWN0aW9uUGhhc2UuY3BwIFwKIAlTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1RpZXJVcENoZWNrSW5qZWN0aW9uUGhhc2UuaCBcCisJU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdUaHJlYWREYXRhLmNwcCBcCisJU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdUaHJlYWREYXRhLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHVGh1bmtzLmNwcCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdUaHVua3MuaCBc
CiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdUb0ZUTERlZmVycmVkQ29tcGlsYXRpb25D
YWxsYmFjay5jcHAgXApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3Jl
LnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9q
CShyZXZpc2lvbiAxNjM2OTApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENv
cmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0zOTIs
NiArMzkyLDcgQEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGRmZ1xERkdGbHVzaEZvcm1h
dC5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxkZmdcREZHRmx1c2hMaXZlbmVz
c0FuYWx5c2lzUGhhc2UuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZGZnXERG
R0dyYXBoLmNwcCIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGRmZ1xERkdHcmFwaFNh
ZmVwb2ludC5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxkZmdcREZHSW5QbGFj
ZUFic3RyYWN0U3RhdGUuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZGZnXERG
R0ludmFsaWRhdGlvblBvaW50SW5qZWN0aW9uUGhhc2UuY3BwIiAvPgogICAgIDxDbENvbXBpbGUg
SW5jbHVkZT0iLi5cZGZnXERGR0pJVENvZGUuY3BwIiAvPgpAQCAtNDI0LDYgKzQyNSw3IEBACiAg
ICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxkZmdcREZHUHJlZGljdGlvbkluamVjdGlvblBoYXNl
LmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGRmZ1xERkdQcmVkaWN0aW9uUHJv
cGFnYXRpb25QaGFzZS5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxkZmdcREZH
UmVzdXJyZWN0aW9uRm9yVmFsaWRhdGlvblBoYXNlLmNwcCIgLz4KKyAgICA8Q2xDb21waWxlIElu
Y2x1ZGU9Ii4uXGRmZ1xERkdTYWZlcG9pbnQuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVk
ZT0iLi5cZGZnXERGR1NwZWN1bGF0aXZlSklULmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1
ZGU9Ii4uXGRmZ1xERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcCIgLz4KICAgICA8Q2xDb21waWxl
IEluY2x1ZGU9Ii4uXGRmZ1xERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcCIgLz4KQEAgLTQzMiw2ICs0
MzQsNyBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZGZnXERGR1N0YWNrTGF5b3V0UGhh
c2UuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZGZnXERGR1N0b3JlQmFycmll
ckVsaXNpb25QaGFzZS5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxkZmdcREZH
U3RyZW5ndGhSZWR1Y3Rpb25QaGFzZS5jcHAiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIu
LlxkZmdcREZHVGhyZWFkRGF0YS5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxk
ZmdcREZHVGh1bmtzLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGRmZ1xERkdU
aWVyVXBDaGVja0luamVjdGlvblBoYXNlLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9
Ii4uXGRmZ1xERkdUb0ZUTERlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjay5jcHAiIC8+CkBAIC05
MjksNiArOTMyLDcgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGRmZ1xERkdHZW5lcmF0
aW9uSW5mby5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZGZnXERGR0dQUkluZm8u
aCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGRmZ1xERkdHcmFwaC5oIiAvPgorICAg
IDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZGZnXERGR0dyYXBoU2FmZXBvaW50LmgiIC8+CiAgICAg
PENsSW5jbHVkZSBJbmNsdWRlPSIuLlxkZmdcREZHSW5QbGFjZUFic3RyYWN0U3RhdGUuaCIgLz4K
ICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGRmZ1xERkdJbnNlcnRpb25TZXQuaCIgLz4KICAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGRmZ1xERkdJbnZhbGlkYXRpb25Qb2ludEluamVjdGlv
blBoYXNlLmgiIC8+CkBAIC05NjksNyArOTczLDkgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
Ii4uXGRmZ1xERkdSZWdpc3RlclNldC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
ZGZnXERGR1Jlc3VycmVjdGlvbkZvclZhbGlkYXRpb25QaGFzZS5oIiAvPgogICAgIDxDbEluY2x1
ZGUgSW5jbHVkZT0iLi5cZGZnXERGR1NhZmVUb0V4ZWN1dGUuaCIgLz4KKyAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXGRmZ1xERkdTYWZlcG9pbnQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXGRmZ1xERkdTYW5lU3RyaW5nR2V0QnlWYWxTbG93UGF0aEdlbmVyYXRvci5oIiAvPgor
ICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZGZnXERGR1NjYW5uYWJsZS5oIiAvPgogICAgIDxD
bEluY2x1ZGUgSW5jbHVkZT0iLi5cZGZnXERGR1Njb3JlQm9hcmQuaCIgLz4KICAgICA8Q2xJbmNs
dWRlIEluY2x1ZGU9Ii4uXGRmZ1xERkdTY3JhdGNoUmVnaXN0ZXJBbGxvY2F0b3IuaCIgLz4KICAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGRmZ1xERkdTaWxlbnRSZWdpc3RlclNhdmVQbGFuLmgi
IC8+CkBAIC05ODEsNiArOTg3LDcgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGRmZ1xE
RkdTdG9yZUJhcnJpZXJFbGlzaW9uUGhhc2UuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
Ii4uXGRmZ1xERkdTdHJlbmd0aFJlZHVjdGlvblBoYXNlLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJ
bmNsdWRlPSIuLlxkZmdcREZHU3RydWN0dXJlQWJzdHJhY3RWYWx1ZS5oIiAvPgorICAgIDxDbElu
Y2x1ZGUgSW5jbHVkZT0iLi5cZGZnXERGR1RocmVhZERhdGEuaCIgLz4KICAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXGRmZ1xERkdUaHVua3MuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
Ii4uXGRmZ1xERkdUaWVyVXBDaGVja0luamVjdGlvblBoYXNlLmgiIC8+CiAgICAgPENsSW5jbHVk
ZSBJbmNsdWRlPSIuLlxkZmdcREZHVG9GVExEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2suaCIg
Lz4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZh
U2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAxNjM2OTApCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMjAyLDYgKzIwMiwxMyBAQAogCQkwRjJFODkyRDE2
RDAyQkFGMDA5RTRGRDIgLyogREZHTWluaWZpZWRJRC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZCNEI1MTAxNkIzQTk2NDAwM0Y2OTZCIC8qIERGR01p
bmlmaWVkSUQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQkwRjJGQzc3MjE2RTEyRjcxMDAzOEQ5NzYgLyogREZHRENFUGhhc2UuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYyRkM3NzAxNkUxMkY2RjAw
MzhEOTc2IC8qIERGR0RDRVBoYXNlLmNwcCAqLzsgfTsKIAkJMEYyRkM3NzMxNkUxMkY3NDAwMzhE
OTc2IC8qIERGR0RDRVBoYXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwRjJGQzc3MTE2RTEyRjZGMDAzOEQ5NzYgLyogREZHRENFUGhhc2UuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkwRjJGQ0NGOTE4
QTYwMDcwMDAxQTI3RjggLyogREZHR3JhcGhTYWZlcG9pbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYyRkNDRjIxOEE2MDA3MDAwMUEyN0Y4IC8q
IERGR0dyYXBoU2FmZXBvaW50LmNwcCAqLzsgfTsKKwkJMEYyRkNDRkExOEE2MDA3MDAwMUEyN0Y4
IC8qIERGR0dyYXBoU2FmZXBvaW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAwRjJGQ0NGMzE4QTYwMDcwMDAxQTI3RjggLyogREZHR3JhcGhTYWZlcG9p
bnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkw
RjJGQ0NGQjE4QTYwMDcwMDAxQTI3RjggLyogREZHU2FmZXBvaW50LmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMkZDQ0Y0MThBNjAwNzAwMDFBMjdG
OCAvKiBERkdTYWZlcG9pbnQuY3BwICovOyB9OworCQkwRjJGQ0NGQzE4QTYwMDcwMDAxQTI3Rjgg
LyogREZHU2FmZXBvaW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwRjJGQ0NGNTE4QTYwMDcwMDAxQTI3RjggLyogREZHU2FmZXBvaW50LmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMEYyRkNDRkQxOEE2
MDA3MDAwMUEyN0Y4IC8qIERGR1NjYW5uYWJsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMEYyRkNDRjYxOEE2MDA3MDAwMUEyN0Y4IC8qIERGR1NjYW5u
YWJsZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJ
CTBGMkZDQ0ZFMThBNjAwNzAwMDFBMjdGOCAvKiBERkdUaHJlYWREYXRhLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMkZDQ0Y3MThBNjAwNzAwMDFB
MjdGOCAvKiBERkdUaHJlYWREYXRhLmNwcCAqLzsgfTsKKwkJMEYyRkNDRkYxOEE2MDA3MDAwMUEy
N0Y4IC8qIERGR1RocmVhZERhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDBGMkZDQ0Y4MThBNjAwNzAwMDFBMjdGOCAvKiBERkdUaHJlYWREYXRhLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEYzNEIx
NDkxNkQ0MjAxMDAwMUNEQTVBIC8qIERGR1VzZUtpbmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYzNEIxNDcxNkQ0MjAwRTAwMUNEQTVBIC8qIERG
R1VzZUtpbmQuY3BwICovOyB9OwogCQkwRjM0QjE0QTE2RDQyMDEzMDAxQ0RBNUEgLyogREZHVXNl
S2luZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYz
NEIxNDgxNkQ0MjAwRTAwMUNEQTVBIC8qIERGR1VzZUtpbmQuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjM0QjE0QzE2RDQzRTBEMDAxQ0RBNUEg
LyogUG9seW1vcnBoaWNBY2Nlc3NTdHJ1Y3R1cmVMaXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjM0QjE0QjE2RDQzRTBDMDAxQ0RBNUEgLyogUG9s
eW1vcnBoaWNBY2Nlc3NTdHJ1Y3R1cmVMaXN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTEzNTEsNyArMTM1OCw3IEBACiAJCUMyOTgxRkREMTdC
QUZGNDQwMEEzQkM5OCAvKiBERkdEZXNpcmVkV3JpdGVCYXJyaWVycy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzI5ODFGREIxN0JBRkY0NDAwQTNCQzk4
IC8qIERGR0Rlc2lyZWRXcml0ZUJhcnJpZXJzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQzI5RUNCMDMxODA0RDBFRDAwRDJDQkI0IC8qIEN1cnJl
bnRUaGlzSW5zaWRlQmxvY2tHZXR0ZXJUZXN0Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQzI5RUNCMDExODA0RDBFRDAwRDJDQkI0IC8qIEN1cnJlbnRU
aGlzSW5zaWRlQmxvY2tHZXR0ZXJUZXN0Lm1tICovOyB9OwogCQlDMkE3RjY4ODE2MDQzMkQ0MDBG
NzZCOTggLyogSlNEZXN0cnVjdGlibGVPYmplY3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyQTdGNjg3MTYwNDMyRDQwMEY3NkI5OCAvKiBKU0Rlc3Ry
dWN0aWJsZU9iamVjdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07Ci0gICAgICAgQzJCNkQ3NTMxOEEzMzc5MzAwNEE5MzAxIC8qIFdyaXRlQmFycmllcklu
bGluZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMy
QjZENzUyMThBMzM3OTMwMDRBOTMwMSAvKiBXcml0ZUJhcnJpZXJJbmxpbmVzLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJQzJCNkQ3NTMxOEEzMzc5
MzAwNEE5MzAxIC8qIFdyaXRlQmFycmllcklubGluZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyQjZENzUyMThBMzM3OTMwMDRBOTMwMSAvKiBXcml0
ZUJhcnJpZXJJbmxpbmVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJQzJCOTE2QzIxNERBMDE0RTAwQ0JBQzg2IC8qIE1hcmtlZEFsbG9jYXRvci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzJCOTE2QzEx
NERBMDE0RTAwQ0JBQzg2IC8qIE1hcmtlZEFsbG9jYXRvci5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUMyQjkxNkM1MTREQTA0MEMwMENCQUM4NiAv
KiBNYXJrZWRBbGxvY2F0b3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQzJCOTE2QzQxNERBMDQwQzAwQ0JBQzg2IC8qIE1hcmtlZEFsbG9jYXRvci5j
cHAgKi87IH07CiAJCUMyQzBGN0NEMTdCQkZDNUIwMDQ2NEZFNCAvKiBERkdEZXNpcmVkVHJhbnNp
dGlvbnMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QzJDMEY3Q0IxN0JCRkM1QjAwNDY0RkU0IC8qIERGR0Rlc2lyZWRUcmFuc2l0aW9ucy5jcHAgKi87
IH07CkBAIC0xNjQ0LDYgKzE2NTEsMTMgQEAKIAkJMEYyQkRDNTAxNTIyOEZGQTAwQ0Q4OTEwIC8q
IERGR1ZhcmlhYmxlRXZlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1l
ID0gREZHVmFyaWFibGVFdmVudC5jcHA7IHBhdGggPSBkZmcvREZHVmFyaWFibGVFdmVudC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGMkZDNzcwMTZFMTJGNkYwMDM4RDk3NiAv
KiBERkdEQ0VQaGFzZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBE
RkdEQ0VQaGFzZS5jcHA7IHBhdGggPSBkZmcvREZHRENFUGhhc2UuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkwRjJGQzc3MTE2RTEyRjZGMDAzOEQ5NzYgLyogREZHRENFUGhhc2Uu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gREZHRENFUGhhc2UuaDsgcGF0aCA9
IGRmZy9ERkdEQ0VQaGFzZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRjJGQ0NG
MjE4QTYwMDcwMDAxQTI3RjggLyogREZHR3JhcGhTYWZlcG9pbnQuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gREZHR3JhcGhTYWZlcG9pbnQuY3BwOyBwYXRoID0gZGZn
L0RGR0dyYXBoU2FmZXBvaW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEYy
RkNDRjMxOEE2MDA3MDAwMUEyN0Y4IC8qIERGR0dyYXBoU2FmZXBvaW50LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgbmFtZSA9IERGR0dyYXBoU2FmZXBvaW50Lmg7IHBhdGggPSBkZmcvREZH
R3JhcGhTYWZlcG9pbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEYyRkNDRjQx
OEE2MDA3MDAwMUEyN0Y4IC8qIERGR1NhZmVwb2ludC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IG5hbWUgPSBERkdTYWZlcG9pbnQuY3BwOyBwYXRoID0gZGZnL0RGR1NhZmVwb2lu
dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGMkZDQ0Y1MThBNjAwNzAwMDFB
MjdGOCAvKiBERkdTYWZlcG9pbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0g
REZHU2FmZXBvaW50Lmg7IHBhdGggPSBkZmcvREZHU2FmZXBvaW50Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTBGMkZDQ0Y2MThBNjAwNzAwMDFBMjdGOCAvKiBERkdTY2FubmFibGUu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gREZHU2Nhbm5hYmxlLmg7IHBhdGgg
PSBkZmcvREZHU2Nhbm5hYmxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGMkZD
Q0Y3MThBNjAwNzAwMDFBMjdGOCAvKiBERkdUaHJlYWREYXRhLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgbmFtZSA9IERGR1RocmVhZERhdGEuY3BwOyBwYXRoID0gZGZnL0RGR1Ro
cmVhZERhdGEuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRjJGQ0NGODE4QTYw
MDcwMDAxQTI3RjggLyogREZHVGhyZWFkRGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IG5hbWUgPSBERkdUaHJlYWREYXRhLmg7IHBhdGggPSBkZmcvREZHVGhyZWFkRGF0YS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjM0QjE0NzE2RDQyMDBFMDAxQ0RBNUEgLyogREZH
VXNlS2luZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBERkdVc2VL
aW5kLmNwcDsgcGF0aCA9IGRmZy9ERkdVc2VLaW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMEYzNEIxNDgxNkQ0MjAwRTAwMUNEQTVBIC8qIERGR1VzZUtpbmQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gREZHVXNlS2luZC5oOyBwYXRoID0gZGZnL0RGR1Vz
ZUtpbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEYzNEIxNEIxNkQ0M0UwQzAw
MUNEQTVBIC8qIFBvbHltb3JwaGljQWNjZXNzU3RydWN0dXJlTGlzdC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBQb2x5bW9ycGhpY0FjY2Vzc1N0cnVjdHVyZUxpc3QuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI4MDIsNyArMjgxNiw3IEBACiAJCUMyOUVDQjAx
MTgwNEQwRUQwMEQyQ0JCNCAvKiBDdXJyZW50VGhpc0luc2lkZUJsb2NrR2V0dGVyVGVzdC5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IEN1cnJlbnRUaGlzSW5zaWRl
QmxvY2tHZXR0ZXJUZXN0Lm1tOyBwYXRoID0gQVBJL3Rlc3RzL0N1cnJlbnRUaGlzSW5zaWRlQmxv
Y2tHZXR0ZXJUZXN0Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDMjlFQ0IwMjE4
MDREMEVEMDBEMkNCQjQgLyogQ3VycmVudFRoaXNJbnNpZGVCbG9ja0dldHRlclRlc3QuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQ3VycmVudFRoaXNJbnNpZGVCbG9ja0dldHRl
clRlc3QuaDsgcGF0aCA9IEFQSS90ZXN0cy9DdXJyZW50VGhpc0luc2lkZUJsb2NrR2V0dGVyVGVz
dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDMkE3RjY4NzE2MDQzMkQ0MDBGNzZC
OTggLyogSlNEZXN0cnVjdGlibGVPYmplY3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gSlNEZXN0cnVjdGlibGVPYmplY3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LSAgICAgICBDMkI2RDc1MjE4QTMzNzkzMDA0QTkzMDEgLyogV3JpdGVCYXJyaWVySW5saW5lcy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXcml0ZUJhcnJpZXJJbmxpbmVzLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMyQjZENzUyMThBMzM3OTMwMDRBOTMwMSAv
KiBXcml0ZUJhcnJpZXJJbmxpbmVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdyaXRlQmFycmllcklubGluZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzJC
OTE2QzExNERBMDE0RTAwQ0JBQzg2IC8qIE1hcmtlZEFsbG9jYXRvci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBNYXJrZWRBbGxvY2F0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQzJCOTE2QzQxNERBMDQwQzAwQ0JBQzg2IC8qIE1hcmtlZEFsbG9jYXRvci5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNYXJrZWRBbGxvY2F0b3Iu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDMkMwRjdDQjE3QkJGQzVCMDA0NjRG
RTQgLyogREZHRGVzaXJlZFRyYW5zaXRpb25zLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgbmFtZSA9IERGR0Rlc2lyZWRUcmFuc2l0aW9ucy5jcHA7IHBhdGggPSBkZmcvREZHRGVz
aXJlZFRyYW5zaXRpb25zLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTM2NjMs
NyArMzY3Nyw3IEBACiAJCTdFRjZFMEJCMEVCN0ExRUMwMDc5QUZBRiAvKiBydW50aW1lICovID0g
ewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKLSAgICAgICAgICAgICAgIEMy
QjZENzUyMThBMzM3OTMwMDRBOTMwMSAvKiBXcml0ZUJhcnJpZXJJbmxpbmVzLmggKi8sCisJCQkJ
QzJCNkQ3NTIxOEEzMzc5MzAwNEE5MzAxIC8qIFdyaXRlQmFycmllcklubGluZXMuaCAqLywKIAkJ
CQlCQ0Y2MDUxMTBFMjAzRUY4MDBCOUE2NEQgLyogQXJnTGlzdC5jcHAgKi8sCiAJCQkJQkNGNjA1
MTIwRTIwM0VGODAwQjlBNjREIC8qIEFyZ0xpc3QuaCAqLywKIAkJCQlCQzI1N0RFNTBFMUY1MUM1
MDAxNkI2QzkgLyogQXJndW1lbnRzLmNwcCAqLywKQEAgLTQwODcsOCArNDEwMSw2IEBACiAJCTg2
RUM5REIzMTMyOERGNDQwMDJCMkFENyAvKiBkZmcgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsK
IAkJCWNoaWxkcmVuID0gKAotCQkJCTJBQ0NGM0RDMTg1RkUyNkIwMDgzRTJBRCAvKiBERkdTdG9y
ZUJhcnJpZXJFbGlzaW9uUGhhc2UuY3BwICovLAotCQkJCTJBQ0NGM0REMTg1RkUyNkIwMDgzRTJB
RCAvKiBERkdTdG9yZUJhcnJpZXJFbGlzaW9uUGhhc2UuaCAqLywKIAkJCQlBNzdBNDIzNjE3QTBC
QkZEMDBBOERCODEgLyogREZHQWJzdHJhY3RIZWFwLmNwcCAqLywKIAkJCQlBNzdBNDIzNzE3QTBC
QkZEMDBBOERCODEgLyogREZHQWJzdHJhY3RIZWFwLmggKi8sCiAJCQkJQTcwNEQ4RkUxN0EwQkFB
ODAwNkJBNTU0IC8qIERGR0Fic3RyYWN0SW50ZXJwcmV0ZXIuaCAqLywKQEAgLTQxOTAsNiArNDIw
Miw4IEBACiAJCQkJODZFQzlEQjYxMzI4REY4MjAwMkIyQUQ3IC8qIERGR0dlbmVyYXRpb25JbmZv
LmggKi8sCiAJCQkJODZFQzlEQjcxMzI4REY4MjAwMkIyQUQ3IC8qIERGR0dyYXBoLmNwcCAqLywK
IAkJCQk4NkVDOURCODEzMjhERjgyMDAyQjJBRDcgLyogREZHR3JhcGguaCAqLywKKwkJCQkwRjJG
Q0NGMjE4QTYwMDcwMDAxQTI3RjggLyogREZHR3JhcGhTYWZlcG9pbnQuY3BwICovLAorCQkJCTBG
MkZDQ0YzMThBNjAwNzAwMDFBMjdGOCAvKiBERkdHcmFwaFNhZmVwb2ludC5oICovLAogCQkJCTBG
QjE0RTIwMTgxMjU3MEIwMDlCNkI0RCAvKiBERkdJbmxpbmVDYWNoZVdyYXBwZXIuaCAqLywKIAkJ
CQkwRkIxNEUyMjE4MTMwOTU1MDA5QjZCNEQgLyogREZHSW5saW5lQ2FjaGVXcmFwcGVySW5saW5l
cy5oICovLAogCQkJCUE3MDREOTAwMTdBMEJBQTgwMDZCQTU1NCAvKiBERkdJblBsYWNlQWJzdHJh
Y3RTdGF0ZS5jcHAgKi8sCkBAIC00MjYyLDggKzQyNzYsMTEgQEAKIAkJCQk4NkVDOURDMTEzMjhE
RjgyMDAyQjJBRDcgLyogREZHUmVnaXN0ZXJCYW5rLmggKi8sCiAJCQkJMEY2NjZFQ0ExODM2QjM3
RTAwRDAxN0YxIC8qIERGR1Jlc3VycmVjdGlvbkZvclZhbGlkYXRpb25QaGFzZS5jcHAgKi8sCiAJ
CQkJMEY2NjZFQ0IxODM2QjM3RTAwRDAxN0YxIC8qIERGR1Jlc3VycmVjdGlvbkZvclZhbGlkYXRp
b25QaGFzZS5oICovLAorCQkJCTBGMkZDQ0Y0MThBNjAwNzAwMDFBMjdGOCAvKiBERkdTYWZlcG9p
bnQuY3BwICovLAorCQkJCTBGMkZDQ0Y1MThBNjAwNzAwMDFBMjdGOCAvKiBERkdTYWZlcG9pbnQu
aCAqLywKIAkJCQlBNzdBNDIzQzE3QTBCQkZEMDBBOERCODEgLyogREZHU2FmZVRvRXhlY3V0ZS5o
ICovLAogCQkJCUE3NDEwMTdFMTc5REFGODAwMDJFQjhCQSAvKiBERkdTYW5lU3RyaW5nR2V0QnlW
YWxTbG93UGF0aEdlbmVyYXRvci5oICovLAorCQkJCTBGMkZDQ0Y2MThBNjAwNzAwMDFBMjdGOCAv
KiBERkdTY2FubmFibGUuaCAqLywKIAkJCQk4NkVDQTNGOTEzMkRGMjVBMDAyQjJBRDcgLyogREZH
U2NvcmVCb2FyZC5oICovLAogCQkJCTBGMUUzQTY1MTUzQTIxREYwMDBGOTQ1NiAvKiBERkdTaWxl
bnRSZWdpc3RlclNhdmVQbGFuLmggKi8sCiAJCQkJMEYxRTNBNTAxNTM3QzJDQjAwMEY5NDU2IC8q
IERGR1Nsb3dQYXRoR2VuZXJhdG9yLmggKi8sCkBAIC00Mjc3LDkgKzQyOTQsMTMgQEAKIAkJCQkw
RkMyMENCODE4NTU2QTM1MDBDOUU5NTQgLyogREZHU1NBTG93ZXJpbmdQaGFzZS5oICovLAogCQkJ
CTBGOUZCNEYyMTdGQ0I5MTcwMENCNjdGOCAvKiBERkdTdGFja0xheW91dFBoYXNlLmNwcCAqLywK
IAkJCQkwRjlGQjRGMzE3RkNCOTE3MDBDQjY3RjggLyogREZHU3RhY2tMYXlvdXRQaGFzZS5oICov
LAorCQkJCTJBQ0NGM0RDMTg1RkUyNkIwMDgzRTJBRCAvKiBERkdTdG9yZUJhcnJpZXJFbGlzaW9u
UGhhc2UuY3BwICovLAorCQkJCTJBQ0NGM0REMTg1RkUyNkIwMDgzRTJBRCAvKiBERkdTdG9yZUJh
cnJpZXJFbGlzaW9uUGhhc2UuaCAqLywKIAkJCQkwRkMyMENCMzE4NTJFMkM2MDBDOUU5NTQgLyog
REZHU3RyZW5ndGhSZWR1Y3Rpb25QaGFzZS5jcHAgKi8sCiAJCQkJMEZDMjBDQjQxODUyRTJDNjAw
QzlFOTU0IC8qIERGR1N0cmVuZ3RoUmVkdWN0aW9uUGhhc2UuaCAqLywKIAkJCQkwRjYzOTQ3NjE1
RENFMzQ3MDA2QTU5N0MgLyogREZHU3RydWN0dXJlQWJzdHJhY3RWYWx1ZS5oICovLAorCQkJCTBG
MkZDQ0Y3MThBNjAwNzAwMDFBMjdGOCAvKiBERkdUaHJlYWREYXRhLmNwcCAqLywKKwkJCQkwRjJG
Q0NGODE4QTYwMDcwMDAxQTI3RjggLyogREZHVGhyZWFkRGF0YS5oICovLAogCQkJCTBGQzA5NzlG
MTQ2QjI4QzcwMENGMjQ0MiAvKiBERkdUaHVua3MuY3BwICovLAogCQkJCTBGQzA5N0EwMTQ2QjI4
QzcwMENGMjQ0MiAvKiBERkdUaHVua3MuaCAqLywKIAkJCQkwRkQ4QTMxRjE3RDUxRjU3MDBDQTJD
NDAgLyogREZHVGllclVwQ2hlY2tJbmplY3Rpb25QaGFzZS5jcHAgKi8sCkBAIC00Njk4LDcgKzQ3
MTksNyBAQAogCQkJCTY1QzAyODVEMTcxNzk2NjgwMDM1MUUzNSAvKiBBUk12N0RPcGNvZGUuaCBp
biBIZWFkZXJzICovLAogCQkJCTJBNjgyOTVCMTg3NUY4MDUwMEI2QzNFMiAvKiBDb3B5V3JpdGVC
YXJyaWVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkyQTRFQzkwQzE4NjBENkMyMDA5NEY3ODIgLyog
V3JpdGVCYXJyaWVyQnVmZmVyLmggaW4gSGVhZGVycyAqLywKLSAgICAgICAgICAgICAgIEMyQjZE
NzUzMThBMzM3OTMwMDRBOTMwMSAvKiBXcml0ZUJhcnJpZXJJbmxpbmVzLmggaW4gSGVhZGVycyAq
LywKKwkJCQlDMkI2RDc1MzE4QTMzNzkzMDA0QTkzMDEgLyogV3JpdGVCYXJyaWVySW5saW5lcy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJRkU1OTMyQTgxODNDNUEyNjAwQTFFQ0NDIC8qIFZNRW50cnlT
Y29wZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTUzMjQzOTMxODU2OTcwOTAwMkVENjkyIC8qIENv
ZGVHZW5lcmF0b3JJbnNwZWN0b3JTdHJpbmdzLnB5IGluIEhlYWRlcnMgKi8sCiAJCQkJQTUzMjQz
OTIxODU2OTcwOTAwMkVENjkyIC8qIENvZGVHZW5lcmF0b3JJbnNwZWN0b3IucHkgaW4gSGVhZGVy
cyAqLywKQEAgLTUwNzcsNiArNTA5OCw3IEBACiAJCQkJQTc5MERENzAxODJGNDk5NzAwNTg4ODA3
IC8qIEpTU2V0SXRlcmF0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGMjRFNTRFMTdFRTI3NDkw
MEFCQjIxNyAvKiBKSVRPcGVyYXRpb25XcmFwcGVycy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY3
NjZEMzExNUFBODExMjAwOEYzNjNFIC8qIEpJVFN0dWJSb3V0aW5lLmggaW4gSGVhZGVycyAqLywK
KwkJCQkwRjJGQ0NGQTE4QTYwMDcwMDAxQTI3RjggLyogREZHR3JhcGhTYWZlcG9pbnQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTBGNzY2RDJDMTVBOENDM0EwMDhGMzYzRSAvKiBKSVRTdHViUm91dGlu
ZVNldC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTRDNTI0MkIwRjUzNTVFOTAwQkEzRDA0IC8qIEpJ
VFN0dWJzLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRUY2ODM1RTE3NDM0M0NDMDBBMzJFMjUgLyog
SklUU3R1YnNBUk0uaCBpbiBIZWFkZXJzICovLApAQCAtNTExNiw2ICs1MTM4LDcgQEAKIAkJCQk4
NkUzQzYxMzE2N0JBQkQ3MDA2RDc2MEEgLyogSlNDb250ZXh0LmggaW4gSGVhZGVycyAqLywKIAkJ
CQk4NkUzQzYxNzE2N0JBQkVFMDA2RDc2MEEgLyogSlNDb250ZXh0SW50ZXJuYWwuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUJDMThDNDFFMEUxNkY1Q0QwMEIzNDQ2MCAvKiBKU0NvbnRleHRSZWYuaCBp
biBIZWFkZXJzICovLAorCQkJCTBGMkZDQ0ZGMThBNjAwNzAwMDFBMjdGOCAvKiBERkdUaHJlYWRE
YXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQkxNDhDRDFEODEwOENGOTAyMDA4MTYzQzYgLyogSlND
b250ZXh0UmVmUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTcyMDI4QjgxNzk3NjAxRTAw
OTgwMjhDIC8qIEpTQ1Rlc3RSdW5uZXJVdGlscy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYyQjY2
RUMxN0I2QjVBQjAwQTdBRTNGIC8qIEpTRGF0YVZpZXcuaCBpbiBIZWFkZXJzICovLApAQCAtNTIz
Niw2ICs1MjU5LDcgQEAKIAkJCQk4NkM1NjhFMTExQTIxM0VFMDAwN0Y3RjAgLyogTWFjcm9Bc3Nl
bWJsZXJNSVBTLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NkFFNjRBOTEzNUU1RTFDMDA5NjMwMTIg
LyogTWFjcm9Bc3NlbWJsZXJTSDQuaCBpbiBIZWFkZXJzICovLAogCQkJCTg2MDE2MUU0MEYzQTgz
QzEwMEY4NDcxMCAvKiBNYWNyb0Fzc2VtYmxlclg4Ni5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEYy
RkNDRkMxOEE2MDA3MDAwMUEyN0Y4IC8qIERGR1NhZmVwb2ludC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJODYwMTYxRTUwRjNBODNDMTAwRjg0NzEwIC8qIE1hY3JvQXNzZW1ibGVyWDg2XzY0LmggaW4g
SGVhZGVycyAqLywKIAkJCQk4NjAxNjFFNjBGM0E4M0MxMDBGODQ3MTAgLyogTWFjcm9Bc3NlbWJs
ZXJYODZDb21tb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUE3MDA4NzNBMTdDQkU4NTMwMEMzRTY0
MyAvKiBNYXBDb25zdHJ1Y3Rvci5oIGluIEhlYWRlcnMgKi8sCkBAIC01NDQ3LDYgKzU0NzEsNyBA
QAogCQkJCTBGMjQyREE3MTNGM0IxRTgwMDdBREQ0QyAvKiBXZWFrUmVmZXJlbmNlSGFydmVzdGVy
LmggaW4gSGVhZGVycyAqLywKIAkJCQkxNEU4NEZBMTE0RUUxQUNDMDBENkQ1RDQgLyogV2Vha1Nl
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTQxNTAxMzMxNTRCQjEzRjAwNUQ4Qzk4IC8qIFdlYWtT
ZXRJbmxpbmVzLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjJGQ0NGRDE4QTYwMDcwMDAxQTI3Rjgg
LyogREZHU2Nhbm5hYmxlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzE4QzQ3QTBFMTZGNUNEMDBC
MzQ0NjAgLyogV2ViS2l0QXZhaWxhYmlsaXR5LmggaW4gSGVhZGVycyAqLywKIAkJCQlBNzRERUY5
MjE4MkQ5OTE0MDA1MjJDMjIgLyogTWFwSXRlcmF0b3JDb25zdHJ1Y3Rvci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQTdEQ0I5NzMxMkU1MTkzRjAwOTExOTQwIC8qIFdyaXRlQmFycmllci5oIGluIEhl
YWRlcnMgKi8sCkBAIC02MDQwLDYgKzYwNjUsNyBAQAogCQkJCUE3MDQ0N0VEMTdBMEJENzAwMEY1
ODk4RSAvKiBEdW1wQ29udGV4dC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDdGMzlDNzEwN0VD
Mzc2MDA0MjdBNDggLyogRXJyb3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQ3RjM5QzgxMDdF
QzM3NjAwNDI3QTQ4IC8qIEVycm9yQ29uc3RydWN0b3IuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJ
MEYyRkNDRjkxOEE2MDA3MDAwMUEyN0Y4IC8qIERGR0dyYXBoU2FmZXBvaW50LmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTE0N0YzOUM5MTA3RUMzNzYwMDQyN0E0OCAvKiBFcnJvckluc3RhbmNlLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTE0N0YzOUNBMTA3RUMzNzYwMDQyN0E0OCAvKiBFcnJvclBy
b3RvdHlwZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNUZEMDA2NzE4OUFGRTlDMDA2MzMyMzEg
LyogU2NyaXB0QXJndW1lbnRzLmNwcCBpbiBTb3VyY2VzICovLApAQCAtNjIxMCw2ICs2MjM2LDcg
QEAKIAkJCQlBNzQ4MkI5NDExNjcxMTQ3MDAzQjA3MTIgLyogSlNXZWFrT2JqZWN0TWFwUmVmUHJp
dmF0ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDQyNTY2MTE1RURFOThEMDA2NkE0OUIgLyog
SlNXaXRoU2NvcGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTUwM0ZBMUIxODhFMEZCMDAwMTEw
RjE0IC8qIEpTSmF2YVNjcmlwdENhbGxGcmFtZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkwRjJG
Q0NGRTE4QTYwMDcwMDAxQTI3RjggLyogREZHVGhyZWFkRGF0YS5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQk4NkUzQzYxODE2N0JBQkVFMDA2RDc2MEEgLyogSlNXcmFwcGVyTWFwLm1tIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMTQyODA4NzAxMDdFQzEzNDAwMTNFN0IyIC8qIEpTV3JhcHBlck9iamVjdC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlBNTdEMjNFOTE4OTFCMDc3MDAzMUM3RkEgLyogSlNHbG9i
YWxPYmplY3REZWJ1Z2dlckFnZW50LmNwcCBpbiBTb3VyY2VzICovLApAQCAtNjMyMSw2ICs2MzQ4
LDcgQEAKIAkJCQlDMjI1NDk0MzE1RjdEQkFBMDA2NUU4OTggLyogU2xvdFZpc2l0b3IuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJOTMzMDQwMkMwRTZBNzY0MDAwNzg2RTZBIC8qIFNtYWxsU3RyaW5n
cy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjhGMkI5RTE3MzA2QzhEMDA3REJEQTUgLyogU291
cmNlQ29kZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkwRjJGQ0NGQjE4QTYwMDcwMDAxQTI3Rjgg
LyogREZHU2FmZXBvaW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE1RkQwMDc5MTg5QjA1MTAw
MDYzMzIzMSAvKiBDb25zb2xlTWVzc2FnZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjQ5M0FG
QTE2RDBDQUQzMDA4NDUwOEIgLyogU291cmNlUHJvdmlkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJRTQ5REMxNkIxMkVGMjkzRTAwMTg0QTFGIC8qIFNvdXJjZVByb3ZpZGVyQ2FjaGUuY3BwIGlu
IFNvdXJjZXMgKi8sCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmNwcAko
cmV2aXNpb24gMTYzNjkwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTc5MCw2ICs3OTAsNTkgQEAgSlNBcnJheUJ1ZmZlclZpZXcq
IEdyYXBoOjp0cnlHZXRGb2xkYWJsZQogICAgIHJldHVybiB0cnlHZXRGb2xkYWJsZVZpZXcoY2hp
bGQobm9kZSwgMCkubm9kZSgpLCBub2RlLT5hcnJheU1vZGUoKSk7CiB9CiAKK3ZvaWQgR3JhcGg6
OnZpc2l0Q2hpbGRyZW4oU2xvdFZpc2l0b3ImIHZpc2l0b3IpCit7CisgICAgZm9yIChCbG9ja0lu
ZGV4IGJsb2NrSW5kZXggPSBudW1CbG9ja3MoKTsgYmxvY2tJbmRleC0tOykgeworICAgICAgICBC
YXNpY0Jsb2NrKiBibG9jayA9IHRoaXMtPmJsb2NrKGJsb2NrSW5kZXgpOworICAgICAgICBpZiAo
IWJsb2NrKQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIAorICAgICAgICBmb3IgKHVu
c2lnbmVkIG5vZGVJbmRleCA9IDA7IG5vZGVJbmRleCA8IGJsb2NrLT5zaXplKCk7ICsrbm9kZUlu
ZGV4KSB7CisgICAgICAgICAgICBOb2RlKiBub2RlID0gYmxvY2stPmF0KG5vZGVJbmRleCk7Cisg
ICAgICAgICAgICAKKyAgICAgICAgICAgIHN3aXRjaCAobm9kZS0+b3AoKSkgeworICAgICAgICAg
ICAgY2FzZSBKU0NvbnN0YW50OgorICAgICAgICAgICAgY2FzZSBXZWFrSlNDb25zdGFudDoKKyAg
ICAgICAgICAgICAgICB2aXNpdG9yLmFwcGVuZFVuYmFycmllcmVkUmVhZE9ubHlWYWx1ZSh2YWx1
ZU9mSlNDb25zdGFudChub2RlKSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICAgICAgCisgICAgICAgICAgICBjYXNlIENoZWNrRnVuY3Rpb246CisgICAgICAgICAgICAgICAg
dmlzaXRvci5hcHBlbmRVbmJhcnJpZXJlZFJlYWRPbmx5UG9pbnRlcihub2RlLT5mdW5jdGlvbigp
KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAg
IGNhc2UgQ2hlY2tFeGVjdXRhYmxlOgorICAgICAgICAgICAgICAgIHZpc2l0b3IuYXBwZW5kVW5i
YXJyaWVyZWRSZWFkT25seVBvaW50ZXIobm9kZS0+ZXhlY3V0YWJsZSgpKTsKKyAgICAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIGNhc2UgQ2hlY2tTdHJ1
Y3R1cmU6CisgICAgICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gbm9kZS0+c3RydWN0dXJl
U2V0KCkuc2l6ZSgpOyBpLS07KQorICAgICAgICAgICAgICAgICAgICB2aXNpdG9yLmFwcGVuZFVu
YmFycmllcmVkUmVhZE9ubHlQb2ludGVyKG5vZGUtPnN0cnVjdHVyZVNldCgpW2ldKTsKKyAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIGNhc2UgU3Ry
dWN0dXJlVHJhbnNpdGlvbldhdGNocG9pbnQ6CisgICAgICAgICAgICBjYXNlIE5ld09iamVjdDoK
KyAgICAgICAgICAgIGNhc2UgQXJyYXlpZnlUb1N0cnVjdHVyZToKKyAgICAgICAgICAgIGNhc2Ug
TmV3U3RyaW5nT2JqZWN0OgorICAgICAgICAgICAgICAgIHZpc2l0b3IuYXBwZW5kVW5iYXJyaWVy
ZWRSZWFkT25seVBvaW50ZXIobm9kZS0+c3RydWN0dXJlKCkpOworICAgICAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgY2FzZSBQdXRTdHJ1Y3R1cmU6Cisg
ICAgICAgICAgICBjYXNlIFBoYW50b21QdXRTdHJ1Y3R1cmU6CisgICAgICAgICAgICBjYXNlIEFs
bG9jYXRlUHJvcGVydHlTdG9yYWdlOgorICAgICAgICAgICAgY2FzZSBSZWFsbG9jYXRlUHJvcGVy
dHlTdG9yYWdlOgorICAgICAgICAgICAgICAgIHZpc2l0b3IuYXBwZW5kVW5iYXJyaWVyZWRSZWFk
T25seVBvaW50ZXIoCisgICAgICAgICAgICAgICAgICAgIG5vZGUtPnN0cnVjdHVyZVRyYW5zaXRp
b25EYXRhKCkucHJldmlvdXNTdHJ1Y3R1cmUpOworICAgICAgICAgICAgICAgIHZpc2l0b3IuYXBw
ZW5kVW5iYXJyaWVyZWRSZWFkT25seVBvaW50ZXIoCisgICAgICAgICAgICAgICAgICAgIG5vZGUt
PnN0cnVjdHVyZVRyYW5zaXRpb25EYXRhKCkubmV3U3RydWN0dXJlKTsKKyAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9Cit9CisKIH0g
fSAvLyBuYW1lc3BhY2UgSlNDOjpERkcKIAogI2VuZGlmCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0dyYXBoLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdHcmFwaC5oCShyZXZpc2lvbiAxNjM2OTApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0dyYXBoLmgJKHdvcmtpbmcgY29weSkKQEAgLTc4LDcgKzc4LDcgQEAgZW51bSBB
ZGRTcGVjdWxhdGlvbk1vZGUgewogLy8KIC8vIFRoZSBvcmRlciBtYXkgYmUgc2lnbmlmaWNhbnQg
Zm9yIG5vZGVzIHdpdGggc2lkZS1lZmZlY3RzIChwcm9wZXJ0eSBhY2Nlc3NlcywgdmFsdWUgY29u
dmVyc2lvbnMpLgogLy8gTm9kZXMgdGhhdCBhcmUgJ2RlYWQnIHJlbWFpbiBpbiB0aGUgdmVjdG9y
IHdpdGggcmVmQ291bnQgMC4KLWNsYXNzIEdyYXBoIHsKK2NsYXNzIEdyYXBoIDogcHVibGljIHZp
cnR1YWwgU2Nhbm5hYmxlIHsKIHB1YmxpYzoKICAgICBHcmFwaChWTSYsIFBsYW4mLCBMb25nTGl2
ZWRTdGF0ZSYpOwogICAgIH5HcmFwaCgpOwpAQCAtNzk5LDYgKzc5OSw4IEBAIHB1YmxpYzoKICAg
ICBKU0FycmF5QnVmZmVyVmlldyogdHJ5R2V0Rm9sZGFibGVWaWV3KE5vZGUqLCBBcnJheU1vZGUp
OwogICAgIEpTQXJyYXlCdWZmZXJWaWV3KiB0cnlHZXRGb2xkYWJsZVZpZXdGb3JDaGlsZDEoTm9k
ZSopOwogICAgIAorICAgIHZpcnR1YWwgdm9pZCB2aXNpdENoaWxkcmVuKFNsb3RWaXNpdG9yJikg
b3ZlcnJpZGU7CisgICAgCiAgICAgVk0mIG1fdm07CiAgICAgUGxhbiYgbV9wbGFuOwogICAgIENv
ZGVCbG9jayogbV9jb2RlQmxvY2s7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0dyYXBoU2FmZXBvaW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0dyYXBoU2FmZXBvaW50LmNwcAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHR3JhcGhTYWZlcG9pbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAg
KzEsNDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkRGR0dyYXBoU2FmZXBvaW50LmgiCisKKyNp
ZiBFTkFCTEUoREZHX0pJVCkKKworbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgeworCitH
cmFwaFNhZmVwb2ludDo6R3JhcGhTYWZlcG9pbnQoR3JhcGgmIGdyYXBoKQorICAgIDogbV9zYWZl
cG9pbnQoZ3JhcGgubV9wbGFuKQoreworICAgIG1fc2FmZXBvaW50LmFkZCgmZ3JhcGgpOworICAg
IG1fc2FmZXBvaW50LmJlZ2luKCk7Cit9CisKK0dyYXBoU2FmZXBvaW50Ojp+R3JhcGhTYWZlcG9p
bnQoKSB7IH0KKworfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkRGRworCisjZW5kaWYgLy8gRU5BQkxF
KERGR19KSVQpCisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGhTYWZl
cG9pbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBo
U2FmZXBvaW50LmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0dyYXBoU2FmZXBvaW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0OSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIERGR0dyYXBo
U2FmZXBvaW50X2gKKyNkZWZpbmUgREZHR3JhcGhTYWZlcG9pbnRfaAorCisjaWYgRU5BQkxFKERG
R19KSVQpCisKKyNpbmNsdWRlICJERkdTYWZlcG9pbnQuaCIKKworbmFtZXNwYWNlIEpTQyB7IG5h
bWVzcGFjZSBERkcgeworCitjbGFzcyBHcmFwaFNhZmVwb2ludCB7CitwdWJsaWM6CisgICAgR3Jh
cGhTYWZlcG9pbnQoR3JhcGgmKTsKKyAgICB+R3JhcGhTYWZlcG9pbnQoKTsKKyAgICAKK3ByaXZh
dGU6CisgICAgU2FmZXBvaW50IG1fc2FmZXBvaW50OworfTsKKworfSB9IC8vIG5hbWVzcGFjZSBK
U0M6OkRGRworCisjZW5kaWYgLy8gRU5BQkxFKERGR19KSVQpCisKKyNlbmRpZiAvLyBERkdHcmFw
aFNhZmVwb2ludF9oCisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUGxhbi5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQbGFuLmNwcAko
cmV2aXNpb24gMTYzNjkxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQbGFuLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMTM1LDggKzEzNSwxMCBAQCBib29sIFBsYW46OnJlcG9ydENv
bXBpbGVUaW1lcygpIGNvbnN0CiAgICAgICAgIHx8IChPcHRpb25zOjpyZXBvcnRGVExDb21waWxl
VGltZXMoKSAmJiBpc0ZUTChtb2RlKSk7CiB9CiAKLXZvaWQgUGxhbjo6Y29tcGlsZUluVGhyZWFk
KExvbmdMaXZlZFN0YXRlJiBsb25nTGl2ZWRTdGF0ZSkKK3ZvaWQgUGxhbjo6Y29tcGlsZUluVGhy
ZWFkKExvbmdMaXZlZFN0YXRlJiBsb25nTGl2ZWRTdGF0ZSwgVGhyZWFkRGF0YSogdGhyZWFkRGF0
YSkKIHsKKyAgICB0aGlzLT50aHJlYWREYXRhID0gdGhyZWFkRGF0YTsKKyAgICAKICAgICBkb3Vi
bGUgYmVmb3JlID0gMDsKICAgICBpZiAocmVwb3J0Q29tcGlsZVRpbWVzKCkpCiAgICAgICAgIGJl
Zm9yZSA9IGN1cnJlbnRUaW1lTVMoKTsKQEAgLTMxMywxMSArMzE1LDE0IEBAIFBsYW46OkNvbXBp
bGF0aW9uUGF0aCBQbGFuOjpjb21waWxlSW5UaHIKICAgICAgICAgCiAgICAgICAgIGR1bXBBbmRW
ZXJpZnlHcmFwaChkZmcsICJHcmFwaCBqdXN0IGJlZm9yZSBGVEwgbG93ZXJpbmc6Iik7CiAgICAg
ICAgIAotICAgICAgICBpbml0aWFsaXplTExWTSgpOwotICAgICAgICAKKyAgICAgICAgeworICAg
ICAgICAgICAgR3JhcGhTYWZlcG9pbnQgc2FmZXBvaW50KGRmZyk7CisgICAgICAgICAgICBpbml0
aWFsaXplTExWTSgpOworICAgICAgICB9CisgICAgICAgICAgICAKICAgICAgICAgRlRMOjpTdGF0
ZSBzdGF0ZShkZmcpOwogICAgICAgICBGVEw6Omxvd2VyREZHVG9MTFZNKHN0YXRlKTsKLSAgICAg
ICAgCisgICAgICAgICAgICAKICAgICAgICAgaWYgKHJlcG9ydENvbXBpbGVUaW1lcygpKQogICAg
ICAgICAgICAgYmVmb3JlRlRMID0gY3VycmVudFRpbWVNUygpOwogICAgICAgICAKQEAgLTMyNyw3
ICszMzIsNyBAQCBQbGFuOjpDb21waWxhdGlvblBhdGggUGxhbjo6Y29tcGlsZUluVGhyCiAgICAg
ICAgIH0KICAgICAgICAgCiAgICAgICAgIEZUTDo6Y29tcGlsZShzdGF0ZSk7Ci0KKyAgICAgICAg
ICAgIAogICAgICAgICBpZiAoT3B0aW9uczo6bGx2bUFsd2F5c0ZhaWxzQmVmb3JlTGluaygpKSB7
CiAgICAgICAgICAgICBGVEw6OmZhaWwoc3RhdGUpOwogICAgICAgICAgICAgcmV0dXJuIEZUTFBh
dGg7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1BsYW4uaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1BsYW4uaAkocmV2aXNpb24gMTYzNjkx
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQbGFuLmgJKHdvcmtpbmcgY29weSkK
QEAgLTUyLDYgKzUyLDcgQEAgY2xhc3MgU2xvdFZpc2l0b3I7CiBuYW1lc3BhY2UgREZHIHsKIAog
Y2xhc3MgTG9uZ0xpdmVkU3RhdGU7CitjbGFzcyBUaHJlYWREYXRhOwogCiAjaWYgRU5BQkxFKERG
R19KSVQpCiAKQEAgLTYyLDcgKzYzLDcgQEAgc3RydWN0IFBsYW4gOiBwdWJsaWMgVGhyZWFkU2Fm
ZVJlZkNvdW50ZQogICAgICAgICBjb25zdCBPcGVyYW5kczxKU1ZhbHVlPiYgbXVzdEhhbmRsZVZh
bHVlcyk7CiAgICAgflBsYW4oKTsKICAgICAKLSAgICB2b2lkIGNvbXBpbGVJblRocmVhZChMb25n
TGl2ZWRTdGF0ZSYpOworICAgIHZvaWQgY29tcGlsZUluVGhyZWFkKExvbmdMaXZlZFN0YXRlJiwg
VGhyZWFkRGF0YSopOwogICAgIAogICAgIENvbXBpbGF0aW9uUmVzdWx0IGZpbmFsaXplV2l0aG91
dE5vdGlmeWluZ0NhbGxiYWNrKCk7CiAgICAgdm9pZCBmaW5hbGl6ZUFuZE5vdGlmeUNhbGxiYWNr
KCk7CkBAIC03OSw2ICs4MCw4IEBAIHN0cnVjdCBQbGFuIDogcHVibGljIFRocmVhZFNhZmVSZWZD
b3VudGUKICAgICBDb21waWxhdGlvbk1vZGUgbW9kZTsKICAgICBjb25zdCB1bnNpZ25lZCBvc3JF
bnRyeUJ5dGVjb2RlSW5kZXg7CiAgICAgT3BlcmFuZHM8SlNWYWx1ZT4gbXVzdEhhbmRsZVZhbHVl
czsKKyAgICAKKyAgICBUaHJlYWREYXRhKiB0aHJlYWREYXRhOwogCiAgICAgUmVmUHRyPFByb2Zp
bGVyOjpDb21waWxhdGlvbj4gY29tcGlsYXRpb247CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHU2FmZXBvaW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1NhZmVwb2ludC5jcHAJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1NhZmVwb2ludC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw3
MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgor
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiREZHU2FmZXBvaW50LmgiCisKKyNpZiBFTkFCTEUo
REZHX0pJVCkKKworbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgeworCitTYWZlcG9pbnQ6
OlNhZmVwb2ludChQbGFuJiBwbGFuKQorICAgIDogbV9wbGFuKHBsYW4pCisgICAgLCBtX2RpZENh
bGxCZWdpbihmYWxzZSkKK3sKK30KKworU2FmZXBvaW50Ojp+U2FmZXBvaW50KCkKK3sKKyAgICBS
RUxFQVNFX0FTU0VSVChtX2RpZENhbGxCZWdpbik7CisgICAgaWYgKFRocmVhZERhdGEqIGRhdGEg
PSBtX3BsYW4udGhyZWFkRGF0YSkKKyAgICAgICAgZGF0YS0+bV9yaWdodFRvUnVuLmxvY2soKTsK
K30KKwordm9pZCBTYWZlcG9pbnQ6OmFkZChTY2FubmFibGUqIHNjYW5uYWJsZSkKK3sKKyAgICBS
RUxFQVNFX0FTU0VSVCghbV9kaWRDYWxsQmVnaW4pOworICAgIG1fc2Nhbm5hYmxlcy5hcHBlbmQo
c2Nhbm5hYmxlKTsKK30KKwordm9pZCBTYWZlcG9pbnQ6OmJlZ2luKCkKK3sKKyAgICBSRUxFQVNF
X0FTU0VSVCghbV9kaWRDYWxsQmVnaW4pOworICAgIGlmIChUaHJlYWREYXRhKiBkYXRhID0gbV9w
bGFuLnRocmVhZERhdGEpCisgICAgICAgIGRhdGEtPm1fcmlnaHRUb1J1bi51bmxvY2soKTsKKyAg
ICBtX2RpZENhbGxCZWdpbiA9IHRydWU7Cit9CisKK3ZvaWQgU2FmZXBvaW50Ojp2aXNpdENoaWxk
cmVuKFNsb3RWaXNpdG9yJiB2aXNpdG9yKQoreworICAgIFJFTEVBU0VfQVNTRVJUKG1fZGlkQ2Fs
bEJlZ2luKTsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSBtX3NjYW5uYWJsZXMuc2l6ZSgpOyBpLS07
KQorICAgICAgICBtX3NjYW5uYWJsZXNbaV0tPnZpc2l0Q2hpbGRyZW4odmlzaXRvcik7Cit9CisK
K30gfSAvLyBuYW1lc3BhY2UgSlNDOjpERkcKKworI2VuZGlmIC8vIEVOQUJMRShERkdfSklUKQor
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVwb2ludC5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZXBvaW50LmgJKHJldmlzaW9u
IDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVwb2ludC5oCSh3b3JraW5n
IGNvcHkpCkBAIC0wLDAgKzEsNjIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
KyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4gCisgKi8KKworI2lmbmRlZiBERkdTYWZlcG9pbnRfaAorI2RlZmluZSBERkdTYWZlcG9p
bnRfaAorCisjaWYgRU5BQkxFKERGR19KSVQpCisKK25hbWVzcGFjZSBKU0MgeworCitjbGFzcyBT
bG90VmlzaXRvcjsKKworbmFtZXNwYWNlIERGRyB7CisKK2NsYXNzIFBsYW47CitjbGFzcyBTY2Fu
bmFibGU7CisKK2NsYXNzIFNhZmVwb2ludCB7CitwdWJsaWM6CisgICAgU2FmZXBvaW50KFBsYW4m
KTsKKyAgICB+U2FmZXBvaW50KCk7CisgICAgCisgICAgdm9pZCBhZGQoU2Nhbm5hYmxlKik7Cisg
ICAgCisgICAgdm9pZCBiZWdpbigpOworICAgIAorICAgIHZvaWQgdmlzaXRDaGlsZHJlbihTbG90
VmlzaXRvciYpOworICAgIAorcHJpdmF0ZToKKyAgICBQbGFuJiBtX3BsYW47CisgICAgVmVjdG9y
PFNjYW5uYWJsZSo+IG1fc2Nhbm5hYmxlczsKKyAgICBib29sIG1fZGlkQ2FsbEJlZ2luOworfTsK
KworfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkRGRworCisjZW5kaWYgLy8gRU5BQkxFKERGR19KSVQp
CisKKyNlbmRpZiAvLyBERkdTYWZlcG9pbnRfaAorCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1NjYW5uYWJsZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHU2Nhbm5hYmxlLmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1NjYW5uYWJsZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNTAgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBERkdT
Y2FubmFibGVfaAorI2RlZmluZSBERkdTY2FubmFibGVfaAorCisjaWYgRU5BQkxFKERGR19KSVQp
CisKK25hbWVzcGFjZSBKU0MgeworCitjbGFzcyBTbG90VmlzaXRvcjsKKworbmFtZXNwYWNlIERG
RyB7CisKK2NsYXNzIFNjYW5uYWJsZSB7CitwdWJsaWM6CisgICAgU2Nhbm5hYmxlKCkgeyB9Cisg
ICAgdmlydHVhbCB+U2Nhbm5hYmxlKCkgeyB9CisgICAgCisgICAgdmlydHVhbCB2b2lkIHZpc2l0
Q2hpbGRyZW4oU2xvdFZpc2l0b3ImKSA9IDA7Cit9OworCit9IH0gLy8gbmFtZXNwYWNlIEpTQzo6
REZHCisKKyNlbmRpZiAvLyBFTkFCTEUoREZHX0pJVCkKKworI2VuZGlmIC8vIERGR1NjYW5uYWJs
ZV9oCisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVGhyZWFkRGF0YS5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdUaHJlYWREYXRhLmNw
cAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVGhyZWFkRGF0
YS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0NyBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiREZHVGhyZWFkRGF0YS5oIgorCisjaWYgRU5BQkxFKERGR19KSVQpCisKK25hbWVzcGFjZSBK
U0MgeyBuYW1lc3BhY2UgREZHIHsKKworVGhyZWFkRGF0YTo6VGhyZWFkRGF0YShXb3JrbGlzdCog
d29ya2xpc3QsIFRocmVhZElkZW50aWZpZXIgaWRlbnRpZmllcikKKyAgICA6IG1fd29ya2xpc3Qo
d29ya2xpc3QpCisgICAgLCBtX2lkZW50aWZpZXIoaWRlbnRpZmllcikKKyAgICAsIG1fc2FmZXBv
aW50KDApCit7Cit9CisKK1RocmVhZERhdGE6On5UaHJlYWREYXRhKCkKK3sKK30KKworfSB9IC8v
IG5hbWVzcGFjZSBKU0M6OkRGRworCisjZW5kaWYgLy8gRU5BQkxFKERGR19KSVQpCisKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVGhyZWFkRGF0YS5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVGhyZWFkRGF0YS5oCShyZXZpc2lvbiAwKQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdUaHJlYWREYXRhLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTAsMCArMSw1OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LiAKKyAqLworCisjaWZuZGVmIERGR1RocmVhZERhdGFfaAorI2RlZmluZSBERkdUaHJlYWREYXRh
X2gKKworI2lmIEVOQUJMRShERkdfSklUKQorCisjaW5jbHVkZSA8d3RmL1RocmVhZGluZ1ByaW1p
dGl2ZXMuaD4KKworbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgeworCitjbGFzcyBTYWZl
cG9pbnQ7CitjbGFzcyBXb3JrbGlzdDsKKworY2xhc3MgVGhyZWFkRGF0YSB7CitwdWJsaWM6Cisg
ICAgVGhyZWFkRGF0YShXb3JrbGlzdCosIFRocmVhZElkZW50aWZpZXIpOworICAgIH5UaHJlYWRE
YXRhKCk7CisKK3ByaXZhdGU6CisgICAgZnJpZW5kIGNsYXNzIFNhZmVwb2ludDsKKyAgICBmcmll
bmQgY2xhc3MgV29ya2xpc3Q7CisgICAgCisgICAgV29ya2xpc3QqIG1fd29ya2xpc3Q7CisgICAg
VGhyZWFkSWRlbnRpZmllciBtX2lkZW50aWZpZXI7CisgICAgTXV0ZXggbV9yaWdodFRvUnVuOwor
ICAgIFNhZmVwb2ludCogbV9zYWZlcG9pbnQ7Cit9OworCit9IH0gLy8gbmFtZXNwYWNlIEpTQzo6
REZHCisKKyNlbmRpZiAvLyBFTkFCTEUoREZHX0pJVCkKKworI2VuZGlmIC8vIERGR1RocmVhZERh
dGFfaAorCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1dvcmtsaXN0LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1dvcmtsaXN0LmNwcAko
cmV2aXNpb24gMTYzNjkxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdXb3JrbGlz
dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU3LDkgKzU3LDggQEAgdm9pZCBXb3JrbGlzdDo6Zmlu
aXNoQ3JlYXRpb24odW5zaWduZWQgbgogewogICAgIFJFTEVBU0VfQVNTRVJUKG51bWJlck9mVGhy
ZWFkcyk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gbnVtYmVyT2ZUaHJlYWRzOyBpLS07KSB7Ci0g
ICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxUaHJlYWREYXRhPiBkYXRhID0gc3RkOjptYWtlX3VuaXF1
ZTxUaHJlYWREYXRhPigpOwotICAgICAgICBkYXRhLT5tX3dvcmtsaXN0ID0gdGhpczsKLSAgICAg
ICAgZGF0YS0+bV9pZGVudGlmaWVyID0gY3JlYXRlVGhyZWFkKHRocmVhZEZ1bmN0aW9uLCBkYXRh
LmdldCgpLCAiSlNDIENvbXBpbGF0aW9uIFRocmVhZCIpOworICAgICAgICBzdGQ6OnVuaXF1ZV9w
dHI8VGhyZWFkRGF0YT4gZGF0YSA9IHN0ZDo6bWFrZV91bmlxdWU8VGhyZWFkRGF0YT4oCisgICAg
ICAgICAgICB0aGlzLCBjcmVhdGVUaHJlYWQodGhyZWFkRnVuY3Rpb24sIGRhdGEuZ2V0KCksICJK
U0MgQ29tcGlsYXRpb24gVGhyZWFkIikpOwogICAgICAgICBtX3RocmVhZHMuYXBwZW5kKHN0ZDo6
bW92ZShkYXRhKSk7CiAgICAgfQogfQpAQCAtMjEwLDYgKzIwOSwxMiBAQCB2b2lkIFdvcmtsaXN0
Ojp2aXNpdENoaWxkcmVuKFNsb3RWaXNpdG9yCiAgICAgICAgIGl0ZXItPmtleS52aXNpdENoaWxk
cmVuKGNvZGVCbG9ja3MpOwogICAgICAgICBpdGVyLT52YWx1ZS0+dmlzaXRDaGlsZHJlbih2aXNp
dG9yLCBjb2RlQmxvY2tzKTsKICAgICB9CisgICAgCisgICAgZm9yICh1bnNpZ25lZCBpID0gbV90
aHJlYWRzLnNpemUoKTsgaS0tOykgeworICAgICAgICBUaHJlYWREYXRhKiBkYXRhID0gbV90aHJl
YWRzW2ldLmdldCgpOworICAgICAgICBpZiAoU2FmZXBvaW50KiBzYWZlcG9pbnQgPSBkYXRhLT5t
X3NhZmVwb2ludCkKKyAgICAgICAgICAgIHNhZmVwb2ludC0+dmlzaXRDaGlsZHJlbih2aXNpdG9y
KTsKKyAgICB9CiB9CiAKIHNpemVfdCBXb3JrbGlzdDo6cXVldWVMZW5ndGgoKQpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdXb3JrbGlzdC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHV29ya2xpc3QuaAkocmV2aXNpb24gMTYzNjkxKQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdXb3JrbGlzdC5oCSh3b3JraW5nIGNvcHkpCkBA
IC0zMSw2ICszMSw3IEBACiAjaWYgRU5BQkxFKERGR19KSVQpCiAKICNpbmNsdWRlICJERkdQbGFu
LmgiCisjaW5jbHVkZSAiREZHVGhyZWFkRGF0YS5oIgogI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgog
I2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CkBA
IC03NSwxMiArNzYsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBkdW1wKFByaW50U3RyZWFtJikgY29u
c3Q7CiAgICAgCiBwcml2YXRlOgotICAgIHN0cnVjdCBUaHJlYWREYXRhIHsKLSAgICAgICAgV29y
a2xpc3QqIG1fd29ya2xpc3Q7Ci0gICAgICAgIFRocmVhZElkZW50aWZpZXIgbV9pZGVudGlmaWVy
OwotICAgICAgICBNdXRleCBtX3JpZ2h0VG9SdW47Ci0gICAgfTsKLSAgICAKICAgICBXb3JrbGlz
dCgpOwogICAgIHZvaWQgZmluaXNoQ3JlYXRpb24odW5zaWduZWQgbnVtYmVyT2ZUaHJlYWRzKTsK
ICAgICAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ29tcGlsZS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDb21waWxlLmNwcAkocmV2
aXNpb24gMTYzNjkwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDb21waWxlLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNDUyLDcwICs0NTIsNzQgQEAgdm9pZCBjb21waWxlKFN0YXRl
JiBzdGF0ZSkKIHsKICAgICBjaGFyKiBlcnJvciA9IDA7CiAgICAgCi0gICAgTExWTU1DSklUQ29t
cGlsZXJPcHRpb25zIG9wdGlvbnM7Ci0gICAgbGx2bS0+SW5pdGlhbGl6ZU1DSklUQ29tcGlsZXJP
cHRpb25zKCZvcHRpb25zLCBzaXplb2Yob3B0aW9ucykpOwotICAgIG9wdGlvbnMuT3B0TGV2ZWwg
PSBPcHRpb25zOjpsbHZtQmFja2VuZE9wdGltaXphdGlvbkxldmVsKCk7Ci0gICAgb3B0aW9ucy5O
b0ZyYW1lUG9pbnRlckVsaW0gPSB0cnVlOwotICAgIGlmIChPcHRpb25zOjp1c2VMTFZNU21hbGxD
b2RlTW9kZWwoKSkKLSAgICAgICAgb3B0aW9ucy5Db2RlTW9kZWwgPSBMTFZNQ29kZU1vZGVsU21h
bGw7Ci0gICAgb3B0aW9ucy5FbmFibGVGYXN0SVNlbCA9IE9wdGlvbnM6OmVuYWJsZUxMVk1GYXN0
SVNlbCgpOwotICAgIG9wdGlvbnMuTUNKTU0gPSBsbHZtLT5DcmVhdGVTaW1wbGVNQ0pJVE1lbW9y
eU1hbmFnZXIoCi0gICAgICAgICZzdGF0ZSwgbW1BbGxvY2F0ZUNvZGVTZWN0aW9uLCBtbUFsbG9j
YXRlRGF0YVNlY3Rpb24sIG1tQXBwbHlQZXJtaXNzaW9ucywgbW1EZXN0cm95KTsKLSAgICAKLSAg
ICBMTFZNRXhlY3V0aW9uRW5naW5lUmVmIGVuZ2luZTsKLSAgICAKLSAgICBpZiAobGx2bS0+Q3Jl
YXRlTUNKSVRDb21waWxlckZvck1vZHVsZSgmZW5naW5lLCBzdGF0ZS5tb2R1bGUsICZvcHRpb25z
LCBzaXplb2Yob3B0aW9ucyksICZlcnJvcikpIHsKLSAgICAgICAgZGF0YUxvZygiRkFUQUw6IENv
dWxkIG5vdCBjcmVhdGUgTExWTSBleGVjdXRpb24gZW5naW5lOiAiLCBlcnJvciwgIlxuIik7Ci0g
ICAgICAgIENSQVNIKCk7Ci0gICAgfQorICAgIHsKKyAgICAgICAgR3JhcGhTYWZlcG9pbnQgc2Fm
ZXBvaW50KHN0YXRlLmdyYXBoKTsKKyAgICAgICAgCisgICAgICAgIExMVk1NQ0pJVENvbXBpbGVy
T3B0aW9ucyBvcHRpb25zOworICAgICAgICBsbHZtLT5Jbml0aWFsaXplTUNKSVRDb21waWxlck9w
dGlvbnMoJm9wdGlvbnMsIHNpemVvZihvcHRpb25zKSk7CisgICAgICAgIG9wdGlvbnMuT3B0TGV2
ZWwgPSBPcHRpb25zOjpsbHZtQmFja2VuZE9wdGltaXphdGlvbkxldmVsKCk7CisgICAgICAgIG9w
dGlvbnMuTm9GcmFtZVBvaW50ZXJFbGltID0gdHJ1ZTsKKyAgICAgICAgaWYgKE9wdGlvbnM6OnVz
ZUxMVk1TbWFsbENvZGVNb2RlbCgpKQorICAgICAgICAgICAgb3B0aW9ucy5Db2RlTW9kZWwgPSBM
TFZNQ29kZU1vZGVsU21hbGw7CisgICAgICAgIG9wdGlvbnMuRW5hYmxlRmFzdElTZWwgPSBPcHRp
b25zOjplbmFibGVMTFZNRmFzdElTZWwoKTsKKyAgICAgICAgb3B0aW9ucy5NQ0pNTSA9IGxsdm0t
PkNyZWF0ZVNpbXBsZU1DSklUTWVtb3J5TWFuYWdlcigKKyAgICAgICAgICAgICZzdGF0ZSwgbW1B
bGxvY2F0ZUNvZGVTZWN0aW9uLCBtbUFsbG9jYXRlRGF0YVNlY3Rpb24sIG1tQXBwbHlQZXJtaXNz
aW9ucywgbW1EZXN0cm95KTsKKyAgICAKKyAgICAgICAgTExWTUV4ZWN1dGlvbkVuZ2luZVJlZiBl
bmdpbmU7CisgICAgCisgICAgICAgIGlmIChsbHZtLT5DcmVhdGVNQ0pJVENvbXBpbGVyRm9yTW9k
dWxlKCZlbmdpbmUsIHN0YXRlLm1vZHVsZSwgJm9wdGlvbnMsIHNpemVvZihvcHRpb25zKSwgJmVy
cm9yKSkgeworICAgICAgICAgICAgZGF0YUxvZygiRkFUQUw6IENvdWxkIG5vdCBjcmVhdGUgTExW
TSBleGVjdXRpb24gZW5naW5lOiAiLCBlcnJvciwgIlxuIik7CisgICAgICAgICAgICBDUkFTSCgp
OworICAgICAgICB9CiAKLSAgICBMTFZNUGFzc01hbmFnZXJSZWYgZnVuY3Rpb25QYXNzZXMgPSAw
OwotICAgIExMVk1QYXNzTWFuYWdlclJlZiBtb2R1bGVQYXNzZXM7CisgICAgICAgIExMVk1QYXNz
TWFuYWdlclJlZiBmdW5jdGlvblBhc3NlcyA9IDA7CisgICAgICAgIExMVk1QYXNzTWFuYWdlclJl
ZiBtb2R1bGVQYXNzZXM7CiAgICAgCi0gICAgaWYgKE9wdGlvbnM6Omxsdm1TaW1wbGVPcHQoKSkg
ewotICAgICAgICBtb2R1bGVQYXNzZXMgPSBsbHZtLT5DcmVhdGVQYXNzTWFuYWdlcigpOwotICAg
ICAgICBsbHZtLT5BZGRUYXJnZXREYXRhKGxsdm0tPkdldEV4ZWN1dGlvbkVuZ2luZVRhcmdldERh
dGEoZW5naW5lKSwgbW9kdWxlUGFzc2VzKTsKLSAgICAgICAgbGx2bS0+QWRkUHJvbW90ZU1lbW9y
eVRvUmVnaXN0ZXJQYXNzKG1vZHVsZVBhc3Nlcyk7Ci0gICAgICAgIGxsdm0tPkFkZENvbnN0YW50
UHJvcGFnYXRpb25QYXNzKG1vZHVsZVBhc3Nlcyk7Ci0gICAgICAgIGxsdm0tPkFkZEluc3RydWN0
aW9uQ29tYmluaW5nUGFzcyhtb2R1bGVQYXNzZXMpOwotICAgICAgICBsbHZtLT5BZGRCYXNpY0Fs
aWFzQW5hbHlzaXNQYXNzKG1vZHVsZVBhc3Nlcyk7Ci0gICAgICAgIGxsdm0tPkFkZFR5cGVCYXNl
ZEFsaWFzQW5hbHlzaXNQYXNzKG1vZHVsZVBhc3Nlcyk7Ci0gICAgICAgIGxsdm0tPkFkZEdWTlBh
c3MobW9kdWxlUGFzc2VzKTsKLSAgICAgICAgbGx2bS0+QWRkQ0ZHU2ltcGxpZmljYXRpb25QYXNz
KG1vZHVsZVBhc3Nlcyk7Ci0gICAgICAgIGxsdm0tPlJ1blBhc3NNYW5hZ2VyKG1vZHVsZVBhc3Nl
cywgc3RhdGUubW9kdWxlKTsKLSAgICB9IGVsc2UgewotICAgICAgICBMTFZNUGFzc01hbmFnZXJC
dWlsZGVyUmVmIHBhc3NCdWlsZGVyID0gbGx2bS0+UGFzc01hbmFnZXJCdWlsZGVyQ3JlYXRlKCk7
Ci0gICAgICAgIGxsdm0tPlBhc3NNYW5hZ2VyQnVpbGRlclNldE9wdExldmVsKHBhc3NCdWlsZGVy
LCBPcHRpb25zOjpsbHZtT3B0aW1pemF0aW9uTGV2ZWwoKSk7Ci0gICAgICAgIGxsdm0tPlBhc3NN
YW5hZ2VyQnVpbGRlclNldFNpemVMZXZlbChwYXNzQnVpbGRlciwgT3B0aW9uczo6bGx2bVNpemVM
ZXZlbCgpKTsKLSAgICAgICAgCi0gICAgICAgIGZ1bmN0aW9uUGFzc2VzID0gbGx2bS0+Q3JlYXRl
RnVuY3Rpb25QYXNzTWFuYWdlckZvck1vZHVsZShzdGF0ZS5tb2R1bGUpOwotICAgICAgICBtb2R1
bGVQYXNzZXMgPSBsbHZtLT5DcmVhdGVQYXNzTWFuYWdlcigpOwotICAgICAgICAKLSAgICAgICAg
bGx2bS0+QWRkVGFyZ2V0RGF0YShsbHZtLT5HZXRFeGVjdXRpb25FbmdpbmVUYXJnZXREYXRhKGVu
Z2luZSksIG1vZHVsZVBhc3Nlcyk7Ci0gICAgICAgIAotICAgICAgICBsbHZtLT5QYXNzTWFuYWdl
ckJ1aWxkZXJQb3B1bGF0ZUZ1bmN0aW9uUGFzc01hbmFnZXIocGFzc0J1aWxkZXIsIGZ1bmN0aW9u
UGFzc2VzKTsKLSAgICAgICAgbGx2bS0+UGFzc01hbmFnZXJCdWlsZGVyUG9wdWxhdGVNb2R1bGVQ
YXNzTWFuYWdlcihwYXNzQnVpbGRlciwgbW9kdWxlUGFzc2VzKTsKLSAgICAgICAgCi0gICAgICAg
IGxsdm0tPlBhc3NNYW5hZ2VyQnVpbGRlckRpc3Bvc2UocGFzc0J1aWxkZXIpOwotICAgICAgICAK
LSAgICAgICAgbGx2bS0+SW5pdGlhbGl6ZUZ1bmN0aW9uUGFzc01hbmFnZXIoZnVuY3Rpb25QYXNz
ZXMpOwotICAgICAgICBmb3IgKExWYWx1ZSBmdW5jdGlvbiA9IGxsdm0tPkdldEZpcnN0RnVuY3Rp
b24oc3RhdGUubW9kdWxlKTsgZnVuY3Rpb247IGZ1bmN0aW9uID0gbGx2bS0+R2V0TmV4dEZ1bmN0
aW9uKGZ1bmN0aW9uKSkKLSAgICAgICAgICAgIGxsdm0tPlJ1bkZ1bmN0aW9uUGFzc01hbmFnZXIo
ZnVuY3Rpb25QYXNzZXMsIGZ1bmN0aW9uKTsKLSAgICAgICAgbGx2bS0+RmluYWxpemVGdW5jdGlv
blBhc3NNYW5hZ2VyKGZ1bmN0aW9uUGFzc2VzKTsKKyAgICAgICAgaWYgKE9wdGlvbnM6Omxsdm1T
aW1wbGVPcHQoKSkgeworICAgICAgICAgICAgbW9kdWxlUGFzc2VzID0gbGx2bS0+Q3JlYXRlUGFz
c01hbmFnZXIoKTsKKyAgICAgICAgICAgIGxsdm0tPkFkZFRhcmdldERhdGEobGx2bS0+R2V0RXhl
Y3V0aW9uRW5naW5lVGFyZ2V0RGF0YShlbmdpbmUpLCBtb2R1bGVQYXNzZXMpOworICAgICAgICAg
ICAgbGx2bS0+QWRkUHJvbW90ZU1lbW9yeVRvUmVnaXN0ZXJQYXNzKG1vZHVsZVBhc3Nlcyk7Cisg
ICAgICAgICAgICBsbHZtLT5BZGRDb25zdGFudFByb3BhZ2F0aW9uUGFzcyhtb2R1bGVQYXNzZXMp
OworICAgICAgICAgICAgbGx2bS0+QWRkSW5zdHJ1Y3Rpb25Db21iaW5pbmdQYXNzKG1vZHVsZVBh
c3Nlcyk7CisgICAgICAgICAgICBsbHZtLT5BZGRCYXNpY0FsaWFzQW5hbHlzaXNQYXNzKG1vZHVs
ZVBhc3Nlcyk7CisgICAgICAgICAgICBsbHZtLT5BZGRUeXBlQmFzZWRBbGlhc0FuYWx5c2lzUGFz
cyhtb2R1bGVQYXNzZXMpOworICAgICAgICAgICAgbGx2bS0+QWRkR1ZOUGFzcyhtb2R1bGVQYXNz
ZXMpOworICAgICAgICAgICAgbGx2bS0+QWRkQ0ZHU2ltcGxpZmljYXRpb25QYXNzKG1vZHVsZVBh
c3Nlcyk7CisgICAgICAgICAgICBsbHZtLT5SdW5QYXNzTWFuYWdlcihtb2R1bGVQYXNzZXMsIHN0
YXRlLm1vZHVsZSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBMTFZNUGFzc01hbmFn
ZXJCdWlsZGVyUmVmIHBhc3NCdWlsZGVyID0gbGx2bS0+UGFzc01hbmFnZXJCdWlsZGVyQ3JlYXRl
KCk7CisgICAgICAgICAgICBsbHZtLT5QYXNzTWFuYWdlckJ1aWxkZXJTZXRPcHRMZXZlbChwYXNz
QnVpbGRlciwgT3B0aW9uczo6bGx2bU9wdGltaXphdGlvbkxldmVsKCkpOworICAgICAgICAgICAg
bGx2bS0+UGFzc01hbmFnZXJCdWlsZGVyU2V0U2l6ZUxldmVsKHBhc3NCdWlsZGVyLCBPcHRpb25z
OjpsbHZtU2l6ZUxldmVsKCkpOworICAgICAgICAKKyAgICAgICAgICAgIGZ1bmN0aW9uUGFzc2Vz
ID0gbGx2bS0+Q3JlYXRlRnVuY3Rpb25QYXNzTWFuYWdlckZvck1vZHVsZShzdGF0ZS5tb2R1bGUp
OworICAgICAgICAgICAgbW9kdWxlUGFzc2VzID0gbGx2bS0+Q3JlYXRlUGFzc01hbmFnZXIoKTsK
KyAgICAgICAgCisgICAgICAgICAgICBsbHZtLT5BZGRUYXJnZXREYXRhKGxsdm0tPkdldEV4ZWN1
dGlvbkVuZ2luZVRhcmdldERhdGEoZW5naW5lKSwgbW9kdWxlUGFzc2VzKTsKKyAgICAgICAgCisg
ICAgICAgICAgICBsbHZtLT5QYXNzTWFuYWdlckJ1aWxkZXJQb3B1bGF0ZUZ1bmN0aW9uUGFzc01h
bmFnZXIocGFzc0J1aWxkZXIsIGZ1bmN0aW9uUGFzc2VzKTsKKyAgICAgICAgICAgIGxsdm0tPlBh
c3NNYW5hZ2VyQnVpbGRlclBvcHVsYXRlTW9kdWxlUGFzc01hbmFnZXIocGFzc0J1aWxkZXIsIG1v
ZHVsZVBhc3Nlcyk7CisgICAgICAgIAorICAgICAgICAgICAgbGx2bS0+UGFzc01hbmFnZXJCdWls
ZGVyRGlzcG9zZShwYXNzQnVpbGRlcik7CisgICAgICAgIAorICAgICAgICAgICAgbGx2bS0+SW5p
dGlhbGl6ZUZ1bmN0aW9uUGFzc01hbmFnZXIoZnVuY3Rpb25QYXNzZXMpOworICAgICAgICAgICAg
Zm9yIChMVmFsdWUgZnVuY3Rpb24gPSBsbHZtLT5HZXRGaXJzdEZ1bmN0aW9uKHN0YXRlLm1vZHVs
ZSk7IGZ1bmN0aW9uOyBmdW5jdGlvbiA9IGxsdm0tPkdldE5leHRGdW5jdGlvbihmdW5jdGlvbikp
CisgICAgICAgICAgICAgICAgbGx2bS0+UnVuRnVuY3Rpb25QYXNzTWFuYWdlcihmdW5jdGlvblBh
c3NlcywgZnVuY3Rpb24pOworICAgICAgICAgICAgbGx2bS0+RmluYWxpemVGdW5jdGlvblBhc3NN
YW5hZ2VyKGZ1bmN0aW9uUGFzc2VzKTsKICAgICAgICAgCi0gICAgICAgIGxsdm0tPlJ1blBhc3NN
YW5hZ2VyKG1vZHVsZVBhc3Nlcywgc3RhdGUubW9kdWxlKTsKLSAgICB9CisgICAgICAgICAgICBs
bHZtLT5SdW5QYXNzTWFuYWdlcihtb2R1bGVQYXNzZXMsIHN0YXRlLm1vZHVsZSk7CisgICAgICAg
IH0KIAotICAgIGlmIChERkc6OnNob3VsZFNob3dEaXNhc3NlbWJseSgpIHx8IERGRzo6dmVyYm9z
ZUNvbXBpbGF0aW9uRW5hYmxlZCgpKQotICAgICAgICBzdGF0ZS5kdW1wU3RhdGUoImFmdGVyIG9w
dGltaXphdGlvbiIpOworICAgICAgICBpZiAoREZHOjpzaG91bGRTaG93RGlzYXNzZW1ibHkoKSB8
fCBERkc6OnZlcmJvc2VDb21waWxhdGlvbkVuYWJsZWQoKSkKKyAgICAgICAgICAgIHN0YXRlLmR1
bXBTdGF0ZSgiYWZ0ZXIgb3B0aW1pemF0aW9uIik7CiAgICAgCi0gICAgLy8gRklYTUU6IE5lZWQg
dG8gYWRkIHN1cHBvcnQgZm9yIHRoZSBjYXNlIHdoZXJlIEpJVCBtZW1vcnkgYWxsb2NhdGlvbiBm
YWlsZWQuCi0gICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEx
MzYyMAotICAgIHN0YXRlLmdlbmVyYXRlZEZ1bmN0aW9uID0gcmVpbnRlcnByZXRfY2FzdDxHZW5l
cmF0ZWRGdW5jdGlvbj4obGx2bS0+R2V0UG9pbnRlclRvR2xvYmFsKGVuZ2luZSwgc3RhdGUuZnVu
Y3Rpb24pKTsKLSAgICBpZiAoZnVuY3Rpb25QYXNzZXMpCi0gICAgICAgIGxsdm0tPkRpc3Bvc2VQ
YXNzTWFuYWdlcihmdW5jdGlvblBhc3Nlcyk7Ci0gICAgbGx2bS0+RGlzcG9zZVBhc3NNYW5hZ2Vy
KG1vZHVsZVBhc3Nlcyk7Ci0gICAgbGx2bS0+RGlzcG9zZUV4ZWN1dGlvbkVuZ2luZShlbmdpbmUp
OworICAgICAgICAvLyBGSVhNRTogTmVlZCB0byBhZGQgc3VwcG9ydCBmb3IgdGhlIGNhc2Ugd2hl
cmUgSklUIG1lbW9yeSBhbGxvY2F0aW9uIGZhaWxlZC4KKyAgICAgICAgLy8gaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMzYyMAorICAgICAgICBzdGF0ZS5nZW5lcmF0
ZWRGdW5jdGlvbiA9IHJlaW50ZXJwcmV0X2Nhc3Q8R2VuZXJhdGVkRnVuY3Rpb24+KGxsdm0tPkdl
dFBvaW50ZXJUb0dsb2JhbChlbmdpbmUsIHN0YXRlLmZ1bmN0aW9uKSk7CisgICAgICAgIGlmIChm
dW5jdGlvblBhc3NlcykKKyAgICAgICAgICAgIGxsdm0tPkRpc3Bvc2VQYXNzTWFuYWdlcihmdW5j
dGlvblBhc3Nlcyk7CisgICAgICAgIGxsdm0tPkRpc3Bvc2VQYXNzTWFuYWdlcihtb2R1bGVQYXNz
ZXMpOworICAgICAgICBsbHZtLT5EaXNwb3NlRXhlY3V0aW9uRW5naW5lKGVuZ2luZSk7CisgICAg
fQogCiAgICAgaWYgKHNob3VsZFNob3dEaXNhc3NlbWJseSgpKSB7CiAgICAgICAgIGZvciAodW5z
aWduZWQgaSA9IDA7IGkgPCBzdGF0ZS5qaXRDb2RlLT5oYW5kbGVzKCkuc2l6ZSgpOyArK2kpIHsK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1Nsb3RWaXNpdG9yLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvU2xvdFZpc2l0b3IuaAkocmV2aXNpb24g
MTYzNjkwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvU2xvdFZpc2l0b3IuaAkod29y
a2luZyBjb3B5KQpAQCAtNjgsNiArNjgsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBhcHBlbmRVbmJh
cnJpZXJlZFZhbHVlKEpTVmFsdWUqKTsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgogICAgIHZv
aWQgYXBwZW5kVW5iYXJyaWVyZWRXZWFrKFdlYWs8VD4qKTsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFt
ZSBUPgorICAgIHZvaWQgYXBwZW5kVW5iYXJyaWVyZWRSZWFkT25seVBvaW50ZXIoVCopOworICAg
IHZvaWQgYXBwZW5kVW5iYXJyaWVyZWRSZWFkT25seVZhbHVlKEpTVmFsdWUpOwogICAgIHZvaWQg
dW5jb25kaXRpb25hbGx5QXBwZW5kKEpTQ2VsbCopOwogICAgIAogICAgIHZvaWQgYWRkT3BhcXVl
Um9vdCh2b2lkKik7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TbG90VmlzaXRv
cklubGluZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TbG90
VmlzaXRvcklubGluZXMuaAkocmV2aXNpb24gMTYzNjkwKQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2hlYXAvU2xvdFZpc2l0b3JJbmxpbmVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTUxLDYgKzUx
LDEyIEBAIGlubGluZSB2b2lkIFNsb3RWaXNpdG9yOjphcHBlbmRVbmJhcnJpZXIKICAgICBpbnRl
cm5hbEFwcGVuZChzbG90LCBjZWxsKTsKIH0KIAordGVtcGxhdGU8dHlwZW5hbWUgVD4KK2lubGlu
ZSB2b2lkIFNsb3RWaXNpdG9yOjphcHBlbmRVbmJhcnJpZXJlZFJlYWRPbmx5UG9pbnRlcihUKiBj
ZWxsKQoreworICAgIGludGVybmFsQXBwZW5kKDAsIGNlbGwpOworfQorCiBBTFdBWVNfSU5MSU5F
IHZvaWQgU2xvdFZpc2l0b3I6OmFwcGVuZChKU1ZhbHVlKiBzbG90KQogewogICAgIEFTU0VSVChz
bG90KTsKQEAgLTYzLDYgKzY5LDExIEBAIEFMV0FZU19JTkxJTkUgdm9pZCBTbG90VmlzaXRvcjo6
YXBwZW5kVW4KICAgICBpbnRlcm5hbEFwcGVuZChzbG90LCAqc2xvdCk7CiB9CiAKK0FMV0FZU19J
TkxJTkUgdm9pZCBTbG90VmlzaXRvcjo6YXBwZW5kVW5iYXJyaWVyZWRSZWFkT25seVZhbHVlKEpT
VmFsdWUgdmFsdWUpCit7CisgICAgaW50ZXJuYWxBcHBlbmQoMCwgdmFsdWUpOworfQorCiBBTFdB
WVNfSU5MSU5FIHZvaWQgU2xvdFZpc2l0b3I6OmFwcGVuZChKU0NlbGwqKiBzbG90KQogewogICAg
IEFTU0VSVChzbG90KTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>223635</attachid>
            <date>2014-02-09 11:32:51 -0800</date>
            <delta_ts>2014-02-09 12:11:13 -0800</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>60867</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTYzNzUyKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDcwIEBA
CisyMDE0LTAyLTA5ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
R0MgYmxvY2tzIG9uIEZUTCBhbmQgdGhlbiBiYWRuZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjgyOTEKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIEludHJvZHVjZSB0aGUgbm90aW9uIG9m
IGEgREZHOjpTYWZlcG9pbnQsIHdoaWNoIGFsbG93cyB5b3UgdG8gdW5sb2NrIHRoZSByaWdodFRv
UnVuCisgICAgICAgIG11dGV4IGZvciB5b3VyIEpJVCB0aHJlYWQsIHdoaWxlIHN1cHBseWluZyB0
aGUgR0Mgd2l0aCBhbGwgb2YgdGhlIGluZm9ybWF0aW9uIGl0IHdvdWxkCisgICAgICAgIG5lZWQg
dG8gc2NhbiB5b3UgYXQgdGhhdCBtb21lbnQgaW4gdGltZS4gVGhlIGRlZmF1bHQgd2F5IG9mIHVz
aW5nIHRoaXMgaXMKKyAgICAgICAgREZHOjpHcmFwaFNhZmVwb2ludCwgd2hlcmUgeW91IGp1c3Qg
c3VwcGx5IHRoZSBHcmFwaC4gVGhlcmUncyBhIGxvdCBvZiBtYWNoaW5lcnkgaW4KKyAgICAgICAg
dGhpcyBwYXRjaCBqdXN0IHRvIG1ha2UgdGhlIEdyYXBoIHNjYW5uYWJsZS4KKyAgICAgICAgCisg
ICAgICAgIFdlIHRoZW4gdXNlIERGRzo6R3JhcGhTYWZlcG9pbnQgaW4ganVzdCB0d28gcGxhY2Vz
IGZvciBub3c6ICgxKSB3aGlsZSBpbml0aWFsaXppbmcgTExWTQorICAgICAgICBhbmQgKDIpIHdo
aWxlIGludm9raW5nIExMVk0nIG9wdGltaXplciBhbmQgYmFja2VuZC4KKworICAgICAgICAqIENN
YWtlTGlzdHMudHh0OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICog
SmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qOgorICAgICAgICAq
IEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYnl0
ZWNvZGUvQ29kZUJsb2NrLmNwcDoKKyAgICAgICAgKiBkZmcvREZHRHJpdmVyLmNwcDoKKyAgICAg
ICAgKEpTQzo6REZHOjpjb21waWxlSW1wbCk6CisgICAgICAgICogZGZnL0RGR0dyYXBoLmNwcDoK
KyAgICAgICAgKEpTQzo6REZHOjpHcmFwaDo6dmlzaXRDaGlsZHJlbik6CisgICAgICAgICogZGZn
L0RGR0dyYXBoLmg6CisgICAgICAgICogZGZnL0RGR0dyYXBoU2FmZXBvaW50LmNwcDogQWRkZWQu
CisgICAgICAgIChKU0M6OkRGRzo6R3JhcGhTYWZlcG9pbnQ6OkdyYXBoU2FmZXBvaW50KToKKyAg
ICAgICAgKEpTQzo6REZHOjpHcmFwaFNhZmVwb2ludDo6fkdyYXBoU2FmZXBvaW50KToKKyAgICAg
ICAgKiBkZmcvREZHR3JhcGhTYWZlcG9pbnQuaDogQWRkZWQuCisgICAgICAgICogZGZnL0RGR09T
UkV4aXRDb21waWxlckNvbW1vbi5jcHA6CisgICAgICAgICogZGZnL0RGR09wZXJhdGlvbnMuY3Bw
OgorICAgICAgICAqIGRmZy9ERkdPcGVyYXRpb25zLmg6CisgICAgICAgICogZGZnL0RGR1BsYW4u
Y3BwOgorICAgICAgICAoSlNDOjpERkc6OlBsYW46OmNvbXBpbGVJblRocmVhZCk6CisgICAgICAg
IChKU0M6OkRGRzo6UGxhbjo6Y29tcGlsZUluVGhyZWFkSW1wbCk6CisgICAgICAgICogZGZnL0RG
R1BsYW4uaDoKKyAgICAgICAgKiBkZmcvREZHU2FmZXBvaW50LmNwcDogQWRkZWQuCisgICAgICAg
IChKU0M6OkRGRzo6U2FmZXBvaW50OjpTYWZlcG9pbnQpOgorICAgICAgICAoSlNDOjpERkc6OlNh
ZmVwb2ludDo6flNhZmVwb2ludCk6CisgICAgICAgIChKU0M6OkRGRzo6U2FmZXBvaW50OjphZGQp
OgorICAgICAgICAoSlNDOjpERkc6OlNhZmVwb2ludDo6YmVnaW4pOgorICAgICAgICAoSlNDOjpE
Rkc6OlNhZmVwb2ludDo6dmlzaXRDaGlsZHJlbik6CisgICAgICAgICogZGZnL0RGR1NhZmVwb2lu
dC5oOiBBZGRlZC4KKyAgICAgICAgKiBkZmcvREZHU2Nhbm5hYmxlLmg6IEFkZGVkLgorICAgICAg
ICAoSlNDOjpERkc6OlNjYW5uYWJsZTo6U2Nhbm5hYmxlKToKKyAgICAgICAgKEpTQzo6REZHOjpT
Y2FubmFibGU6On5TY2FubmFibGUpOgorICAgICAgICAqIGRmZy9ERkdUaHJlYWREYXRhLmNwcDog
QWRkZWQuCisgICAgICAgIChKU0M6OkRGRzo6VGhyZWFkRGF0YTo6VGhyZWFkRGF0YSk6CisgICAg
ICAgIChKU0M6OkRGRzo6VGhyZWFkRGF0YTo6flRocmVhZERhdGEpOgorICAgICAgICAqIGRmZy9E
RkdUaHJlYWREYXRhLmg6IEFkZGVkLgorICAgICAgICAqIGRmZy9ERkdUaHVua3MuY3BwOgorICAg
ICAgICAqIGRmZy9ERkdXb3JrbGlzdC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6V29ya2xpc3Q6
OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAgKEpTQzo6REZHOjpXb3JrbGlzdDo6dmlzaXRDaGls
ZHJlbik6CisgICAgICAgIChKU0M6OkRGRzo6V29ya2xpc3Q6OnJ1blRocmVhZCk6CisgICAgICAg
ICogZGZnL0RGR1dvcmtsaXN0Lmg6CisgICAgICAgICogZnRsL0ZUTENvbXBpbGUuY3BwOgorICAg
ICAgICAoSlNDOjpGVEw6OmNvbXBpbGUpOgorICAgICAgICAqIGZ0bC9GVExPU1JFeGl0Q29tcGls
ZXIuY3BwOgorICAgICAgICAqIGZ0bC9GVExUaHVua3MuY3BwOgorICAgICAgICAoSlNDOjpGVEw6
OnNsb3dQYXRoQ2FsbFRodW5rR2VuZXJhdG9yKToKKyAgICAgICAgKiBoZWFwL1Nsb3RWaXNpdG9y
Lmg6CisgICAgICAgICogaGVhcC9TbG90VmlzaXRvcklubGluZXMuaDoKKyAgICAgICAgKEpTQzo6
U2xvdFZpc2l0b3I6OmFwcGVuZFVuYmFycmllcmVkUmVhZE9ubHlQb2ludGVyKToKKyAgICAgICAg
KEpTQzo6U2xvdFZpc2l0b3I6OmFwcGVuZFVuYmFycmllcmVkUmVhZE9ubHlWYWx1ZSk6CisKIDIw
MTQtMDItMDkgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAgICAg
ICBDb252ZXJ0IHNvbWUgSlNDIGNvZGUgb3ZlciB0byBzdGQ6Om11dGV4CkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CShyZXZpc2lvbiAxNjM2OTUpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEzOCw2ICsxMzgs
NyBAQCBzZXQoSmF2YVNjcmlwdENvcmVfU09VUkNFUwogICAgIGRmZy9ERkdGbHVzaExpdmVuZXNz
QW5hbHlzaXNQaGFzZS5jcHAKICAgICBkZmcvREZHRmx1c2hlZEF0LmNwcAogICAgIGRmZy9ERkdH
cmFwaC5jcHAKKyAgICBkZmcvREZHR3JhcGhTYWZlcG9pbnQuY3BwCiAgICAgZGZnL0RGR0luUGxh
Y2VBYnN0cmFjdFN0YXRlLmNwcAogICAgIGRmZy9ERkdJbnZhbGlkYXRpb25Qb2ludEluamVjdGlv
blBoYXNlLmNwcAogICAgIGRmZy9ERkdKSVRDb2RlLmNwcApAQCAtMTcyLDEyICsxNzMsMTQgQEAg
c2V0KEphdmFTY3JpcHRDb3JlX1NPVVJDRVMKICAgICBkZmcvREZHUmVzdXJyZWN0aW9uRm9yVmFs
aWRhdGlvblBoYXNlLmNwcAogICAgIGRmZy9ERkdTU0FDb252ZXJzaW9uUGhhc2UuY3BwCiAgICAg
ZGZnL0RGR1NTQUxvd2VyaW5nUGhhc2UuY3BwCisgICAgZGZnL0RGR1NhZmVwb2ludC5jcHAKICAg
ICBkZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCiAgICAgZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJf
NjQuY3BwCiAgICAgZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCiAgICAgZGZnL0RGR1N0YWNr
TGF5b3V0UGhhc2UuY3BwCiAgICAgZGZnL0RGR1N0b3JlQmFycmllckVsaXNpb25QaGFzZS5jcHAK
ICAgICBkZmcvREZHU3RyZW5ndGhSZWR1Y3Rpb25QaGFzZS5jcHAKKyAgICBkZmcvREZHVGhyZWFk
RGF0YS5jcHAKICAgICBkZmcvREZHVGh1bmtzLmNwcAogICAgIGRmZy9ERkdUaWVyVXBDaGVja0lu
amVjdGlvblBoYXNlLmNwcAogICAgIGRmZy9ERkdUeXBlQ2hlY2tIb2lzdGluZ1BoYXNlLmNwcApJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0JKHJldmlzaW9u
IDE2MzY5NSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCSh3
b3JraW5nIGNvcHkpCkBAIC0zMDQsNiArMzA0LDggQEAgamF2YXNjcmlwdGNvcmVfc291cmNlcyAr
PSBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHZW5lcmF0aW9uSW5mby5oIFwKIAlT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmNwcCBcCiAJU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdHcmFwaC5oIFwKKwlTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dy
YXBoU2FmZXBvaW50LmNwcCBcCisJU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaFNh
ZmVwb2ludC5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0luUGxhY2VBYnN0cmFj
dFN0YXRlLmNwcCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdJblBsYWNlQWJzdHJh
Y3RTdGF0ZS5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0lubGluZUNhY2hlV3Jh
cHBlci5oIFwKQEAgLTM3Nyw3ICszNzksMTAgQEAgamF2YXNjcmlwdGNvcmVfc291cmNlcyArPSBc
CiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdSZXN1cnJlY3Rpb25Gb3JWYWxpZGF0aW9u
UGhhc2UuY3BwIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Jlc3VycmVjdGlvbkZv
clZhbGlkYXRpb25QaGFzZS5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVU
b0V4ZWN1dGUuaCBcCisJU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTYWZlcG9pbnQuY3Bw
IFwKKwlTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVwb2ludC5oIFwKIAlTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhbmVTdHJpbmdHZXRCeVZhbFNsb3dQYXRoR2VuZXJhdG9y
LmggXAorCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2Nhbm5hYmxlLmggXAogCVNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2NvcmVCb2FyZC5oIFwKIAlTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1NpbGVudFJlZ2lzdGVyU2F2ZVBsYW4uaCBcCiAJU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdTbG93UGF0aEdlbmVyYXRvci5oIFwKQEAgLTM5OCw2ICs0MDMsOCBAQCBq
YXZhc2NyaXB0Y29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1N0cnVjdHVyZUFic3RyYWN0VmFsdWUuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdUaWVyVXBDaGVja0luamVjdGlvblBoYXNlLmNwcCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdUaWVyVXBDaGVja0luamVjdGlvblBoYXNlLmggXAorCVNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHVGhyZWFkRGF0YS5jcHAgXAorCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHVGhyZWFkRGF0YS5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1RodW5rcy5j
cHAgXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVGh1bmtzLmggXAogCVNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHVG9GVExEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2suY3Bw
IFwKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0ph
dmFTY3JpcHRDb3JlLnZjeHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L0phdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvagkocmV2aXNpb24g
MTYzNjk1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjeHByb2ov
SmF2YVNjcmlwdENvcmUudmN4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMzkyLDYgKzM5Miw3IEBA
CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxkZmdcREZHRmx1c2hGb3JtYXQuY3BwIiAvPgog
ICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZGZnXERGR0ZsdXNoTGl2ZW5lc3NBbmFseXNpc1Bo
YXNlLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGRmZ1xERkdHcmFwaC5jcHAi
IC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxkZmdcREZHR3JhcGhTYWZlcG9pbnQuY3Bw
IiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZGZnXERGR0luUGxhY2VBYnN0cmFjdFN0
YXRlLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGRmZ1xERkdJbnZhbGlkYXRp
b25Qb2ludEluamVjdGlvblBoYXNlLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4u
XGRmZ1xERkdKSVRDb2RlLmNwcCIgLz4KQEAgLTQyNCw2ICs0MjUsNyBAQAogICAgIDxDbENvbXBp
bGUgSW5jbHVkZT0iLi5cZGZnXERGR1ByZWRpY3Rpb25JbmplY3Rpb25QaGFzZS5jcHAiIC8+CiAg
ICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxkZmdcREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhh
c2UuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZGZnXERGR1Jlc3VycmVjdGlv
bkZvclZhbGlkYXRpb25QaGFzZS5jcHAiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxk
ZmdcREZHU2FmZXBvaW50LmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGRmZ1xE
RkdTcGVjdWxhdGl2ZUpJVC5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxkZmdc
REZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIu
LlxkZmdcREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAiIC8+CkBAIC00MzIsNiArNDM0LDcgQEAKICAg
ICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGRmZ1xERkdTdGFja0xheW91dFBoYXNlLmNwcCIgLz4K
ICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGRmZ1xERkdTdG9yZUJhcnJpZXJFbGlzaW9uUGhh
c2UuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZGZnXERGR1N0cmVuZ3RoUmVk
dWN0aW9uUGhhc2UuY3BwIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZGZnXERGR1Ro
cmVhZERhdGEuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZGZnXERGR1RodW5r
cy5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxkZmdcREZHVGllclVwQ2hlY2tJ
bmplY3Rpb25QaGFzZS5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxkZmdcREZH
VG9GVExEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2suY3BwIiAvPgpAQCAtOTI5LDYgKzkzMiw3
IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxkZmdcREZHR2VuZXJhdGlvbkluZm8uaCIg
Lz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGRmZ1xERkdHUFJJbmZvLmgiIC8+CiAgICAg
PENsSW5jbHVkZSBJbmNsdWRlPSIuLlxkZmdcREZHR3JhcGguaCIgLz4KKyAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXGRmZ1xERkdHcmFwaFNhZmVwb2ludC5oIiAvPgogICAgIDxDbEluY2x1ZGUg
SW5jbHVkZT0iLi5cZGZnXERGR0luUGxhY2VBYnN0cmFjdFN0YXRlLmgiIC8+CiAgICAgPENsSW5j
bHVkZSBJbmNsdWRlPSIuLlxkZmdcREZHSW5zZXJ0aW9uU2V0LmgiIC8+CiAgICAgPENsSW5jbHVk
ZSBJbmNsdWRlPSIuLlxkZmdcREZHSW52YWxpZGF0aW9uUG9pbnRJbmplY3Rpb25QaGFzZS5oIiAv
PgpAQCAtOTY5LDcgKzk3Myw5IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxkZmdcREZH
UmVnaXN0ZXJTZXQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGRmZ1xERkdSZXN1
cnJlY3Rpb25Gb3JWYWxpZGF0aW9uUGhhc2UuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
Ii4uXGRmZ1xERkdTYWZlVG9FeGVjdXRlLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
LlxkZmdcREZHU2FmZXBvaW50LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxkZmdc
REZHU2FuZVN0cmluZ0dldEJ5VmFsU2xvd1BhdGhHZW5lcmF0b3IuaCIgLz4KKyAgICA8Q2xJbmNs
dWRlIEluY2x1ZGU9Ii4uXGRmZ1xERkdTY2FubmFibGUuaCIgLz4KICAgICA8Q2xJbmNsdWRlIElu
Y2x1ZGU9Ii4uXGRmZ1xERkdTY29yZUJvYXJkLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRl
PSIuLlxkZmdcREZHU2NyYXRjaFJlZ2lzdGVyQWxsb2NhdG9yLmgiIC8+CiAgICAgPENsSW5jbHVk
ZSBJbmNsdWRlPSIuLlxkZmdcREZHU2lsZW50UmVnaXN0ZXJTYXZlUGxhbi5oIiAvPgpAQCAtOTgx
LDYgKzk4Nyw3IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxkZmdcREZHU3RvcmVCYXJy
aWVyRWxpc2lvblBoYXNlLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxkZmdcREZH
U3RyZW5ndGhSZWR1Y3Rpb25QaGFzZS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
ZGZnXERGR1N0cnVjdHVyZUFic3RyYWN0VmFsdWUuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXGRmZ1xERkdUaHJlYWREYXRhLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
LlxkZmdcREZHVGh1bmtzLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxkZmdcREZH
VGllclVwQ2hlY2tJbmplY3Rpb25QaGFzZS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0i
Li5cZGZnXERGR1RvRlRMRGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrLmgiIC8+CkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMTYzNjk1KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdv
cmtpbmcgY29weSkKQEAgLTIwMiw2ICsyMDIsMTMgQEAKIAkJMEYyRTg5MkQxNkQwMkJBRjAwOUU0
RkQyIC8qIERGR01pbmlmaWVkSUQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDBGQjRCNTEwMTZCM0E5NjQwMDNGNjk2QiAvKiBERkdNaW5pZmllZElELmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEYyRkM3
NzIxNkUxMkY3MTAwMzhEOTc2IC8qIERGR0RDRVBoYXNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMkZDNzcwMTZFMTJGNkYwMDM4RDk3NiAvKiBE
RkdEQ0VQaGFzZS5jcHAgKi87IH07CiAJCTBGMkZDNzczMTZFMTJGNzQwMDM4RDk3NiAvKiBERkdE
Q0VQaGFzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MEYyRkM3NzExNkUxMkY2RjAwMzhEOTc2IC8qIERGR0RDRVBoYXNlLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMEYyRkNDRjkxOEE2MDA3MDAwMUEy
N0Y4IC8qIERGR0dyYXBoU2FmZXBvaW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDBGMkZDQ0YyMThBNjAwNzAwMDFBMjdGOCAvKiBERkdHcmFwaFNh
ZmVwb2ludC5jcHAgKi87IH07CisJCTBGMkZDQ0ZBMThBNjAwNzAwMDFBMjdGOCAvKiBERkdHcmFw
aFNhZmVwb2ludC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMEYyRkNDRjMxOEE2MDA3MDAwMUEyN0Y4IC8qIERGR0dyYXBoU2FmZXBvaW50LmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMEYyRkNDRkIxOEE2
MDA3MDAwMUEyN0Y4IC8qIERGR1NhZmVwb2ludC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjJGQ0NGNDE4QTYwMDcwMDAxQTI3RjggLyogREZHU2Fm
ZXBvaW50LmNwcCAqLzsgfTsKKwkJMEYyRkNDRkMxOEE2MDA3MDAwMUEyN0Y4IC8qIERGR1NhZmVw
b2ludC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYy
RkNDRjUxOEE2MDA3MDAwMUEyN0Y4IC8qIERGR1NhZmVwb2ludC5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTBGMkZDQ0ZEMThBNjAwNzAwMDFBMjdG
OCAvKiBERkdTY2FubmFibGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDBGMkZDQ0Y2MThBNjAwNzAwMDFBMjdGOCAvKiBERkdTY2FubmFibGUuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkwRjJGQ0NGRTE4
QTYwMDcwMDAxQTI3RjggLyogREZHVGhyZWFkRGF0YS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjJGQ0NGNzE4QTYwMDcwMDAxQTI3RjggLyogREZH
VGhyZWFkRGF0YS5jcHAgKi87IH07CisJCTBGMkZDQ0ZGMThBNjAwNzAwMDFBMjdGOCAvKiBERkdU
aHJlYWREYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwRjJGQ0NGODE4QTYwMDcwMDAxQTI3RjggLyogREZHVGhyZWFkRGF0YS5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGMzRCMTQ5MTZENDIwMTAw
MDFDREE1QSAvKiBERkdVc2VLaW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDBGMzRCMTQ3MTZENDIwMEUwMDFDREE1QSAvKiBERkdVc2VLaW5kLmNw
cCAqLzsgfTsKIAkJMEYzNEIxNEExNkQ0MjAxMzAwMUNEQTVBIC8qIERGR1VzZUtpbmQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMzRCMTQ4MTZENDIw
MEUwMDFDREE1QSAvKiBERkdVc2VLaW5kLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEYzNEIxNEMxNkQ0M0UwRDAwMUNEQTVBIC8qIFBvbHltb3Jw
aGljQWNjZXNzU3RydWN0dXJlTGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMEYzNEIxNEIxNkQ0M0UwQzAwMUNEQTVBIC8qIFBvbHltb3JwaGljQWNj
ZXNzU3RydWN0dXJlTGlzdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CkBAIC0xMzUxLDcgKzEzNTgsNyBAQAogCQlDMjk4MUZERDE3QkFGRjQ0MDBBM0JD
OTggLyogREZHRGVzaXJlZFdyaXRlQmFycmllcnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyOTgxRkRCMTdCQUZGNDQwMEEzQkM5OCAvKiBERkdEZXNp
cmVkV3JpdGVCYXJyaWVycy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCUMyOUVDQjAzMTgwNEQwRUQwMEQyQ0JCNCAvKiBDdXJyZW50VGhpc0luc2lk
ZUJsb2NrR2V0dGVyVGVzdC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEMyOUVDQjAxMTgwNEQwRUQwMEQyQ0JCNCAvKiBDdXJyZW50VGhpc0luc2lkZUJs
b2NrR2V0dGVyVGVzdC5tbSAqLzsgfTsKIAkJQzJBN0Y2ODgxNjA0MzJENDAwRjc2Qjk4IC8qIEpT
RGVzdHJ1Y3RpYmxlT2JqZWN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBDMkE3RjY4NzE2MDQzMkQ0MDBGNzZCOTggLyogSlNEZXN0cnVjdGlibGVPYmpl
Y3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotICAg
ICAgIEMyQjZENzUzMThBMzM3OTMwMDRBOTMwMSAvKiBXcml0ZUJhcnJpZXJJbmxpbmVzLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMkI2RDc1MjE4QTMz
NzkzMDA0QTkzMDEgLyogV3JpdGVCYXJyaWVySW5saW5lcy5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUMyQjZENzUzMThBMzM3OTMwMDRBOTMwMSAv
KiBXcml0ZUJhcnJpZXJJbmxpbmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBDMkI2RDc1MjE4QTMzNzkzMDA0QTkzMDEgLyogV3JpdGVCYXJyaWVySW5s
aW5lcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CUMyQjkxNkMyMTREQTAxNEUwMENCQUM4NiAvKiBNYXJrZWRBbGxvY2F0b3IuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyQjkxNkMxMTREQTAxNEUwMENC
QUM4NiAvKiBNYXJrZWRBbGxvY2F0b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQlDMkI5MTZDNTE0REEwNDBDMDBDQkFDODYgLyogTWFya2VkQWxs
b2NhdG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEMyQjkxNkM0MTREQTA0MEMwMENCQUM4NiAvKiBNYXJrZWRBbGxvY2F0b3IuY3BwICovOyB9Owog
CQlDMkMwRjdDRDE3QkJGQzVCMDA0NjRGRTQgLyogREZHRGVzaXJlZFRyYW5zaXRpb25zLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyQzBGN0NCMTdC
QkZDNUIwMDQ2NEZFNCAvKiBERkdEZXNpcmVkVHJhbnNpdGlvbnMuY3BwICovOyB9OwpAQCAtMTY0
NCw2ICsxNjUxLDEzIEBACiAJCTBGMkJEQzUwMTUyMjhGRkEwMENEODkxMCAvKiBERkdWYXJpYWJs
ZUV2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IERGR1Zhcmlh
YmxlRXZlbnQuY3BwOyBwYXRoID0gZGZnL0RGR1ZhcmlhYmxlRXZlbnQuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkwRjJGQzc3MDE2RTEyRjZGMDAzOEQ5NzYgLyogREZHRENFUGhh
c2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gREZHRENFUGhhc2Uu
Y3BwOyBwYXRoID0gZGZnL0RGR0RDRVBoYXNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMEYyRkM3NzExNkUxMkY2RjAwMzhEOTc2IC8qIERGR0RDRVBoYXNlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IERGR0RDRVBoYXNlLmg7IHBhdGggPSBkZmcvREZHRENF
UGhhc2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEYyRkNDRjIxOEE2MDA3MDAw
MUEyN0Y4IC8qIERGR0dyYXBoU2FmZXBvaW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgbmFtZSA9IERGR0dyYXBoU2FmZXBvaW50LmNwcDsgcGF0aCA9IGRmZy9ERkdHcmFwaFNh
ZmVwb2ludC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGMkZDQ0YzMThBNjAw
NzAwMDFBMjdGOCAvKiBERkdHcmFwaFNhZmVwb2ludC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IG5hbWUgPSBERkdHcmFwaFNhZmVwb2ludC5oOyBwYXRoID0gZGZnL0RGR0dyYXBoU2FmZXBv
aW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGMkZDQ0Y0MThBNjAwNzAwMDFB
MjdGOCAvKiBERkdTYWZlcG9pbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBu
YW1lID0gREZHU2FmZXBvaW50LmNwcDsgcGF0aCA9IGRmZy9ERkdTYWZlcG9pbnQuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRjJGQ0NGNTE4QTYwMDcwMDAxQTI3RjggLyogREZH
U2FmZXBvaW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IERGR1NhZmVwb2lu
dC5oOyBwYXRoID0gZGZnL0RGR1NhZmVwb2ludC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQkwRjJGQ0NGNjE4QTYwMDcwMDAxQTI3RjggLyogREZHU2Nhbm5hYmxlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IERGR1NjYW5uYWJsZS5oOyBwYXRoID0gZGZnL0RGR1Nj
YW5uYWJsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRjJGQ0NGNzE4QTYwMDcw
MDAxQTI3RjggLyogREZHVGhyZWFkRGF0YS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IG5hbWUgPSBERkdUaHJlYWREYXRhLmNwcDsgcGF0aCA9IGRmZy9ERkdUaHJlYWREYXRhLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEYyRkNDRjgxOEE2MDA3MDAwMUEyN0Y4
IC8qIERGR1RocmVhZERhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gREZH
VGhyZWFkRGF0YS5oOyBwYXRoID0gZGZnL0RGR1RocmVhZERhdGEuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMEYzNEIxNDcxNkQ0MjAwRTAwMUNEQTVBIC8qIERGR1VzZUtpbmQuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gREZHVXNlS2luZC5jcHA7IHBh
dGggPSBkZmcvREZHVXNlS2luZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBG
MzRCMTQ4MTZENDIwMEUwMDFDREE1QSAvKiBERkdVc2VLaW5kLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgbmFtZSA9IERGR1VzZUtpbmQuaDsgcGF0aCA9IGRmZy9ERkdVc2VLaW5kLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGMzRCMTRCMTZENDNFMEMwMDFDREE1QSAvKiBQ
b2x5bW9ycGhpY0FjY2Vzc1N0cnVjdHVyZUxpc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gUG9seW1vcnBoaWNBY2Nlc3NTdHJ1Y3R1cmVMaXN0Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0yODAyLDcgKzI4MTYsNyBAQAogCQlDMjlFQ0IwMTE4MDREMEVEMDBE
MkNCQjQgLyogQ3VycmVudFRoaXNJbnNpZGVCbG9ja0dldHRlclRlc3QubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBDdXJyZW50VGhpc0luc2lkZUJsb2NrR2V0dGVy
VGVzdC5tbTsgcGF0aCA9IEFQSS90ZXN0cy9DdXJyZW50VGhpc0luc2lkZUJsb2NrR2V0dGVyVGVz
dC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzI5RUNCMDIxODA0RDBFRDAwRDJD
QkI0IC8qIEN1cnJlbnRUaGlzSW5zaWRlQmxvY2tHZXR0ZXJUZXN0LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgbmFtZSA9IEN1cnJlbnRUaGlzSW5zaWRlQmxvY2tHZXR0ZXJUZXN0Lmg7IHBh
dGggPSBBUEkvdGVzdHMvQ3VycmVudFRoaXNJbnNpZGVCbG9ja0dldHRlclRlc3QuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzJBN0Y2ODcxNjA0MzJENDAwRjc2Qjk4IC8qIEpTRGVz
dHJ1Y3RpYmxlT2JqZWN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTRGVz
dHJ1Y3RpYmxlT2JqZWN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0gICAgICAgQzJC
NkQ3NTIxOEEzMzc5MzAwNEE5MzAxIC8qIFdyaXRlQmFycmllcklubGluZXMuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV3JpdGVCYXJyaWVySW5saW5lcy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlDMkI2RDc1MjE4QTMzNzkzMDA0QTkzMDEgLyogV3JpdGVCYXJy
aWVySW5saW5lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXcml0ZUJhcnJp
ZXJJbmxpbmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMyQjkxNkMxMTREQTAx
NEUwMENCQUM4NiAvKiBNYXJrZWRBbGxvY2F0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gTWFya2VkQWxsb2NhdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUMyQjkxNkM0MTREQTA0MEMwMENCQUM4NiAvKiBNYXJrZWRBbGxvY2F0b3IuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWFya2VkQWxsb2NhdG9yLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzJDMEY3Q0IxN0JCRkM1QjAwNDY0RkU0IC8qIERGR0Rl
c2lyZWRUcmFuc2l0aW9ucy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUg
PSBERkdEZXNpcmVkVHJhbnNpdGlvbnMuY3BwOyBwYXRoID0gZGZnL0RGR0Rlc2lyZWRUcmFuc2l0
aW9ucy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zNjYzLDcgKzM2NzcsNyBA
QAogCQk3RUY2RTBCQjBFQjdBMUVDMDA3OUFGQUYgLyogcnVudGltZSAqLyA9IHsKIAkJCWlzYSA9
IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCi0gICAgICAgICAgICAgICBDMkI2RDc1MjE4QTMz
NzkzMDA0QTkzMDEgLyogV3JpdGVCYXJyaWVySW5saW5lcy5oICovLAorCQkJCUMyQjZENzUyMThB
MzM3OTMwMDRBOTMwMSAvKiBXcml0ZUJhcnJpZXJJbmxpbmVzLmggKi8sCiAJCQkJQkNGNjA1MTEw
RTIwM0VGODAwQjlBNjREIC8qIEFyZ0xpc3QuY3BwICovLAogCQkJCUJDRjYwNTEyMEUyMDNFRjgw
MEI5QTY0RCAvKiBBcmdMaXN0LmggKi8sCiAJCQkJQkMyNTdERTUwRTFGNTFDNTAwMTZCNkM5IC8q
IEFyZ3VtZW50cy5jcHAgKi8sCkBAIC00MDg3LDggKzQxMDEsNiBAQAogCQk4NkVDOURCMzEzMjhE
RjQ0MDAyQjJBRDcgLyogZGZnICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJl
biA9ICgKLQkJCQkyQUNDRjNEQzE4NUZFMjZCMDA4M0UyQUQgLyogREZHU3RvcmVCYXJyaWVyRWxp
c2lvblBoYXNlLmNwcCAqLywKLQkJCQkyQUNDRjNERDE4NUZFMjZCMDA4M0UyQUQgLyogREZHU3Rv
cmVCYXJyaWVyRWxpc2lvblBoYXNlLmggKi8sCiAJCQkJQTc3QTQyMzYxN0EwQkJGRDAwQThEQjgx
IC8qIERGR0Fic3RyYWN0SGVhcC5jcHAgKi8sCiAJCQkJQTc3QTQyMzcxN0EwQkJGRDAwQThEQjgx
IC8qIERGR0Fic3RyYWN0SGVhcC5oICovLAogCQkJCUE3MDREOEZFMTdBMEJBQTgwMDZCQTU1NCAv
KiBERkdBYnN0cmFjdEludGVycHJldGVyLmggKi8sCkBAIC00MTkwLDYgKzQyMDIsOCBAQAogCQkJ
CTg2RUM5REI2MTMyOERGODIwMDJCMkFENyAvKiBERkdHZW5lcmF0aW9uSW5mby5oICovLAogCQkJ
CTg2RUM5REI3MTMyOERGODIwMDJCMkFENyAvKiBERkdHcmFwaC5jcHAgKi8sCiAJCQkJODZFQzlE
QjgxMzI4REY4MjAwMkIyQUQ3IC8qIERGR0dyYXBoLmggKi8sCisJCQkJMEYyRkNDRjIxOEE2MDA3
MDAwMUEyN0Y4IC8qIERGR0dyYXBoU2FmZXBvaW50LmNwcCAqLywKKwkJCQkwRjJGQ0NGMzE4QTYw
MDcwMDAxQTI3RjggLyogREZHR3JhcGhTYWZlcG9pbnQuaCAqLywKIAkJCQkwRkIxNEUyMDE4MTI1
NzBCMDA5QjZCNEQgLyogREZHSW5saW5lQ2FjaGVXcmFwcGVyLmggKi8sCiAJCQkJMEZCMTRFMjIx
ODEzMDk1NTAwOUI2QjREIC8qIERGR0lubGluZUNhY2hlV3JhcHBlcklubGluZXMuaCAqLywKIAkJ
CQlBNzA0RDkwMDE3QTBCQUE4MDA2QkE1NTQgLyogREZHSW5QbGFjZUFic3RyYWN0U3RhdGUuY3Bw
ICovLApAQCAtNDI2Miw4ICs0Mjc2LDExIEBACiAJCQkJODZFQzlEQzExMzI4REY4MjAwMkIyQUQ3
IC8qIERGR1JlZ2lzdGVyQmFuay5oICovLAogCQkJCTBGNjY2RUNBMTgzNkIzN0UwMEQwMTdGMSAv
KiBERkdSZXN1cnJlY3Rpb25Gb3JWYWxpZGF0aW9uUGhhc2UuY3BwICovLAogCQkJCTBGNjY2RUNC
MTgzNkIzN0UwMEQwMTdGMSAvKiBERkdSZXN1cnJlY3Rpb25Gb3JWYWxpZGF0aW9uUGhhc2UuaCAq
LywKKwkJCQkwRjJGQ0NGNDE4QTYwMDcwMDAxQTI3RjggLyogREZHU2FmZXBvaW50LmNwcCAqLywK
KwkJCQkwRjJGQ0NGNTE4QTYwMDcwMDAxQTI3RjggLyogREZHU2FmZXBvaW50LmggKi8sCiAJCQkJ
QTc3QTQyM0MxN0EwQkJGRDAwQThEQjgxIC8qIERGR1NhZmVUb0V4ZWN1dGUuaCAqLywKIAkJCQlB
NzQxMDE3RTE3OURBRjgwMDAyRUI4QkEgLyogREZHU2FuZVN0cmluZ0dldEJ5VmFsU2xvd1BhdGhH
ZW5lcmF0b3IuaCAqLywKKwkJCQkwRjJGQ0NGNjE4QTYwMDcwMDAxQTI3RjggLyogREZHU2Nhbm5h
YmxlLmggKi8sCiAJCQkJODZFQ0EzRjkxMzJERjI1QTAwMkIyQUQ3IC8qIERGR1Njb3JlQm9hcmQu
aCAqLywKIAkJCQkwRjFFM0E2NTE1M0EyMURGMDAwRjk0NTYgLyogREZHU2lsZW50UmVnaXN0ZXJT
YXZlUGxhbi5oICovLAogCQkJCTBGMUUzQTUwMTUzN0MyQ0IwMDBGOTQ1NiAvKiBERkdTbG93UGF0
aEdlbmVyYXRvci5oICovLApAQCAtNDI3Nyw5ICs0Mjk0LDEzIEBACiAJCQkJMEZDMjBDQjgxODU1
NkEzNTAwQzlFOTU0IC8qIERGR1NTQUxvd2VyaW5nUGhhc2UuaCAqLywKIAkJCQkwRjlGQjRGMjE3
RkNCOTE3MDBDQjY3RjggLyogREZHU3RhY2tMYXlvdXRQaGFzZS5jcHAgKi8sCiAJCQkJMEY5RkI0
RjMxN0ZDQjkxNzAwQ0I2N0Y4IC8qIERGR1N0YWNrTGF5b3V0UGhhc2UuaCAqLywKKwkJCQkyQUND
RjNEQzE4NUZFMjZCMDA4M0UyQUQgLyogREZHU3RvcmVCYXJyaWVyRWxpc2lvblBoYXNlLmNwcCAq
LywKKwkJCQkyQUNDRjNERDE4NUZFMjZCMDA4M0UyQUQgLyogREZHU3RvcmVCYXJyaWVyRWxpc2lv
blBoYXNlLmggKi8sCiAJCQkJMEZDMjBDQjMxODUyRTJDNjAwQzlFOTU0IC8qIERGR1N0cmVuZ3Ro
UmVkdWN0aW9uUGhhc2UuY3BwICovLAogCQkJCTBGQzIwQ0I0MTg1MkUyQzYwMEM5RTk1NCAvKiBE
RkdTdHJlbmd0aFJlZHVjdGlvblBoYXNlLmggKi8sCiAJCQkJMEY2Mzk0NzYxNURDRTM0NzAwNkE1
OTdDIC8qIERGR1N0cnVjdHVyZUFic3RyYWN0VmFsdWUuaCAqLywKKwkJCQkwRjJGQ0NGNzE4QTYw
MDcwMDAxQTI3RjggLyogREZHVGhyZWFkRGF0YS5jcHAgKi8sCisJCQkJMEYyRkNDRjgxOEE2MDA3
MDAwMUEyN0Y4IC8qIERGR1RocmVhZERhdGEuaCAqLywKIAkJCQkwRkMwOTc5RjE0NkIyOEM3MDBD
RjI0NDIgLyogREZHVGh1bmtzLmNwcCAqLywKIAkJCQkwRkMwOTdBMDE0NkIyOEM3MDBDRjI0NDIg
LyogREZHVGh1bmtzLmggKi8sCiAJCQkJMEZEOEEzMUYxN0Q1MUY1NzAwQ0EyQzQwIC8qIERGR1Rp
ZXJVcENoZWNrSW5qZWN0aW9uUGhhc2UuY3BwICovLApAQCAtNDY5OCw3ICs0NzE5LDcgQEAKIAkJ
CQk2NUMwMjg1RDE3MTc5NjY4MDAzNTFFMzUgLyogQVJNdjdET3Bjb2RlLmggaW4gSGVhZGVycyAq
LywKIAkJCQkyQTY4Mjk1QjE4NzVGODA1MDBCNkMzRTIgLyogQ29weVdyaXRlQmFycmllci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMkE0RUM5MEMxODYwRDZDMjAwOTRGNzgyIC8qIFdyaXRlQmFycmll
ckJ1ZmZlci5oIGluIEhlYWRlcnMgKi8sCi0gICAgICAgICAgICAgICBDMkI2RDc1MzE4QTMzNzkz
MDA0QTkzMDEgLyogV3JpdGVCYXJyaWVySW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJQzJC
NkQ3NTMxOEEzMzc5MzAwNEE5MzAxIC8qIFdyaXRlQmFycmllcklubGluZXMuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUZFNTkzMkE4MTgzQzVBMjYwMEExRUNDQyAvKiBWTUVudHJ5U2NvcGUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUE1MzI0MzkzMTg1Njk3MDkwMDJFRDY5MiAvKiBDb2RlR2VuZXJhdG9y
SW5zcGVjdG9yU3RyaW5ncy5weSBpbiBIZWFkZXJzICovLAogCQkJCUE1MzI0MzkyMTg1Njk3MDkw
MDJFRDY5MiAvKiBDb2RlR2VuZXJhdG9ySW5zcGVjdG9yLnB5IGluIEhlYWRlcnMgKi8sCkBAIC01
MDc3LDYgKzUwOTgsNyBAQAogCQkJCUE3OTBERDcwMTgyRjQ5OTcwMDU4ODgwNyAvKiBKU1NldEl0
ZXJhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjI0RTU0RTE3RUUyNzQ5MDBBQkIyMTcgLyog
SklUT3BlcmF0aW9uV3JhcHBlcnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNzY2RDMxMTVBQTgx
MTIwMDhGMzYzRSAvKiBKSVRTdHViUm91dGluZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEYyRkND
RkExOEE2MDA3MDAwMUEyN0Y4IC8qIERGR0dyYXBoU2FmZXBvaW50LmggaW4gSGVhZGVycyAqLywK
IAkJCQkwRjc2NkQyQzE1QThDQzNBMDA4RjM2M0UgLyogSklUU3R1YlJvdXRpbmVTZXQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTE0QzUyNDJCMEY1MzU1RTkwMEJBM0QwNCAvKiBKSVRTdHVicy5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJRkVGNjgzNUUxNzQzNDNDQzAwQTMyRTI1IC8qIEpJVFN0dWJzQVJN
LmggaW4gSGVhZGVycyAqLywKQEAgLTUxMTYsNiArNTEzOCw3IEBACiAJCQkJODZFM0M2MTMxNjdC
QUJENzAwNkQ3NjBBIC8qIEpTQ29udGV4dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODZFM0M2MTcx
NjdCQUJFRTAwNkQ3NjBBIC8qIEpTQ29udGV4dEludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlCQzE4QzQxRTBFMTZGNUNEMDBCMzQ0NjAgLyogSlNDb250ZXh0UmVmLmggaW4gSGVhZGVycyAq
LywKKwkJCQkwRjJGQ0NGRjE4QTYwMDcwMDAxQTI3RjggLyogREZHVGhyZWFkRGF0YS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMTQ4Q0QxRDgxMDhDRjkwMjAwODE2M0M2IC8qIEpTQ29udGV4dFJlZlBy
aXZhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3MjAyOEI4MTc5NzYwMUUwMDk4MDI4QyAvKiBK
U0NUZXN0UnVubmVyVXRpbHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGMkI2NkVDMTdCNkI1QUIw
MEE3QUUzRiAvKiBKU0RhdGFWaWV3LmggaW4gSGVhZGVycyAqLywKQEAgLTUyMzYsNiArNTI1OSw3
IEBACiAJCQkJODZDNTY4RTExMUEyMTNFRTAwMDdGN0YwIC8qIE1hY3JvQXNzZW1ibGVyTUlQUy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJODZBRTY0QTkxMzVFNUUxQzAwOTYzMDEyIC8qIE1hY3JvQXNz
ZW1ibGVyU0g0LmggaW4gSGVhZGVycyAqLywKIAkJCQk4NjAxNjFFNDBGM0E4M0MxMDBGODQ3MTAg
LyogTWFjcm9Bc3NlbWJsZXJYODYuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGMkZDQ0ZDMThBNjAw
NzAwMDFBMjdGOCAvKiBERkdTYWZlcG9pbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTg2MDE2MUU1
MEYzQTgzQzEwMEY4NDcxMCAvKiBNYWNyb0Fzc2VtYmxlclg4Nl82NC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJODYwMTYxRTYwRjNBODNDMTAwRjg0NzEwIC8qIE1hY3JvQXNzZW1ibGVyWDg2Q29tbW9u
LmggaW4gSGVhZGVycyAqLywKIAkJCQlBNzAwODczQTE3Q0JFODUzMDBDM0U2NDMgLyogTWFwQ29u
c3RydWN0b3IuaCBpbiBIZWFkZXJzICovLApAQCAtNTQ0Nyw2ICs1NDcxLDcgQEAKIAkJCQkwRjI0
MkRBNzEzRjNCMUU4MDA3QURENEMgLyogV2Vha1JlZmVyZW5jZUhhcnZlc3Rlci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMTRFODRGQTExNEVFMUFDQzAwRDZENUQ0IC8qIFdlYWtTZXQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTE0MTUwMTMzMTU0QkIxM0YwMDVEOEM5OCAvKiBXZWFrU2V0SW5saW5lcy5o
IGluIEhlYWRlcnMgKi8sCisJCQkJMEYyRkNDRkQxOEE2MDA3MDAwMUEyN0Y4IC8qIERGR1NjYW5u
YWJsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxOEM0N0EwRTE2RjVDRDAwQjM0NDYwIC8qIFdl
YktpdEF2YWlsYWJpbGl0eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTc0REVGOTIxODJEOTkxNDAw
NTIyQzIyIC8qIE1hcEl0ZXJhdG9yQ29uc3RydWN0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3
RENCOTczMTJFNTE5M0YwMDkxMTk0MCAvKiBXcml0ZUJhcnJpZXIuaCBpbiBIZWFkZXJzICovLApA
QCAtNjA0MCw2ICs2MDY1LDcgQEAKIAkJCQlBNzA0NDdFRDE3QTBCRDcwMDBGNTg5OEUgLyogRHVt
cENvbnRleHQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQ3RjM5QzcxMDdFQzM3NjAwNDI3QTQ4
IC8qIEVycm9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0N0YzOUM4MTA3RUMzNzYwMDQyN0E0
OCAvKiBFcnJvckNvbnN0cnVjdG9yLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTBGMkZDQ0Y5MThB
NjAwNzAwMDFBMjdGOCAvKiBERkdHcmFwaFNhZmVwb2ludC5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkxNDdGMzlDOTEwN0VDMzc2MDA0MjdBNDggLyogRXJyb3JJbnN0YW5jZS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkxNDdGMzlDQTEwN0VDMzc2MDA0MjdBNDggLyogRXJyb3JQcm90b3R5cGUuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQTVGRDAwNjcxODlBRkU5QzAwNjMzMjMxIC8qIFNjcmlwdEFy
Z3VtZW50cy5jcHAgaW4gU291cmNlcyAqLywKQEAgLTYyMTAsNiArNjIzNiw3IEBACiAJCQkJQTc0
ODJCOTQxMTY3MTE0NzAwM0IwNzEyIC8qIEpTV2Vha09iamVjdE1hcFJlZlByaXZhdGUuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMTQ0MjU2NjExNUVERTk4RDAwNjZBNDlCIC8qIEpTV2l0aFNjb3Bl
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE1MDNGQTFCMTg4RTBGQjAwMDExMEYxNCAvKiBKU0ph
dmFTY3JpcHRDYWxsRnJhbWUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMEYyRkNDRkUxOEE2MDA3
MDAwMUEyN0Y4IC8qIERGR1RocmVhZERhdGEuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODZFM0M2
MTgxNjdCQUJFRTAwNkQ3NjBBIC8qIEpTV3JhcHBlck1hcC5tbSBpbiBTb3VyY2VzICovLAogCQkJ
CTE0MjgwODcwMTA3RUMxMzQwMDEzRTdCMiAvKiBKU1dyYXBwZXJPYmplY3QuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQTU3RDIzRTkxODkxQjA3NzAwMzFDN0ZBIC8qIEpTR2xvYmFsT2JqZWN0RGVi
dWdnZXJBZ2VudC5jcHAgaW4gU291cmNlcyAqLywKQEAgLTYzMjEsNiArNjM0OCw3IEBACiAJCQkJ
QzIyNTQ5NDMxNUY3REJBQTAwNjVFODk4IC8qIFNsb3RWaXNpdG9yLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTkzMzA0MDJDMEU2QTc2NDAwMDc4NkU2QSAvKiBTbWFsbFN0cmluZ3MuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJMEY4RjJCOUUxNzMwNkM4RDAwN0RCREE1IC8qIFNvdXJjZUNvZGUuY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJMEYyRkNDRkIxOEE2MDA3MDAwMUEyN0Y4IC8qIERGR1NhZmVw
b2ludC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNUZEMDA3OTE4OUIwNTEwMDA2MzMyMzEgLyog
Q29uc29sZU1lc3NhZ2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY0OTNBRkExNkQwQ0FEMzAw
ODQ1MDhCIC8qIFNvdXJjZVByb3ZpZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUU0OURDMTZC
MTJFRjI5M0UwMDE4NEExRiAvKiBTb3VyY2VQcm92aWRlckNhY2hlLmNwcCBpbiBTb3VyY2VzICov
LApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAJ
KHJldmlzaW9uIDE2MzY5NSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2Rl
QmxvY2suY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSAiREZH
Q2FwYWJpbGl0aWVzLmgiCiAjaW5jbHVkZSAiREZHQ29tbW9uLmgiCiAjaW5jbHVkZSAiREZHRHJp
dmVyLmgiCisjaW5jbHVkZSAiREZHSklUQ29kZS5oIgogI2luY2x1ZGUgIkRGR05vZGUuaCIKICNp
bmNsdWRlICJERkdXb3JrbGlzdC5oIgogI2luY2x1ZGUgIkRlYnVnZ2VyLmgiCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RyaXZlci5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEcml2ZXIuY3BwCShyZXZpc2lvbiAxNjM2OTUpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RyaXZlci5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTEyMSw3ICsxMjEsNyBAQCBzdGF0aWMgQ29tcGlsYXRpb25SZXN1bHQgY29tcGlsZUltcGwoCiAg
ICAgICAgIHJldHVybiBDb21waWxhdGlvbkRlZmVycmVkOwogICAgIH0KICAgICAKLSAgICBwbGFu
LT5jb21waWxlSW5UaHJlYWQoKnZtLmRmZ1N0YXRlKTsKKyAgICBwbGFuLT5jb21waWxlSW5UaHJl
YWQoKnZtLmRmZ1N0YXRlLCAwKTsKICAgICByZXR1cm4gcGxhbi0+ZmluYWxpemVXaXRob3V0Tm90
aWZ5aW5nQ2FsbGJhY2soKTsKIH0KICNlbHNlIC8vIEVOQUJMRShERkdfSklUKQpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5jcHAJKHJldmlzaW9uIDE2MzY5NSkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03
OTAsNiArNzkwLDU5IEBAIEpTQXJyYXlCdWZmZXJWaWV3KiBHcmFwaDo6dHJ5R2V0Rm9sZGFibGUK
ICAgICByZXR1cm4gdHJ5R2V0Rm9sZGFibGVWaWV3KGNoaWxkKG5vZGUsIDApLm5vZGUoKSwgbm9k
ZS0+YXJyYXlNb2RlKCkpOwogfQogCit2b2lkIEdyYXBoOjp2aXNpdENoaWxkcmVuKFNsb3RWaXNp
dG9yJiB2aXNpdG9yKQoreworICAgIGZvciAoQmxvY2tJbmRleCBibG9ja0luZGV4ID0gbnVtQmxv
Y2tzKCk7IGJsb2NrSW5kZXgtLTspIHsKKyAgICAgICAgQmFzaWNCbG9jayogYmxvY2sgPSB0aGlz
LT5ibG9jayhibG9ja0luZGV4KTsKKyAgICAgICAgaWYgKCFibG9jaykKKyAgICAgICAgICAgIGNv
bnRpbnVlOworICAgICAgICAKKyAgICAgICAgZm9yICh1bnNpZ25lZCBub2RlSW5kZXggPSAwOyBu
b2RlSW5kZXggPCBibG9jay0+c2l6ZSgpOyArK25vZGVJbmRleCkgeworICAgICAgICAgICAgTm9k
ZSogbm9kZSA9IGJsb2NrLT5hdChub2RlSW5kZXgpOworICAgICAgICAgICAgCisgICAgICAgICAg
ICBzd2l0Y2ggKG5vZGUtPm9wKCkpIHsKKyAgICAgICAgICAgIGNhc2UgSlNDb25zdGFudDoKKyAg
ICAgICAgICAgIGNhc2UgV2Vha0pTQ29uc3RhbnQ6CisgICAgICAgICAgICAgICAgdmlzaXRvci5h
cHBlbmRVbmJhcnJpZXJlZFJlYWRPbmx5VmFsdWUodmFsdWVPZkpTQ29uc3RhbnQobm9kZSkpOwor
ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgY2Fz
ZSBDaGVja0Z1bmN0aW9uOgorICAgICAgICAgICAgICAgIHZpc2l0b3IuYXBwZW5kVW5iYXJyaWVy
ZWRSZWFkT25seVBvaW50ZXIobm9kZS0+ZnVuY3Rpb24oKSk7CisgICAgICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICBjYXNlIENoZWNrRXhlY3V0YWJsZToK
KyAgICAgICAgICAgICAgICB2aXNpdG9yLmFwcGVuZFVuYmFycmllcmVkUmVhZE9ubHlQb2ludGVy
KG5vZGUtPmV4ZWN1dGFibGUoKSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICAgICAgCisgICAgICAgICAgICBjYXNlIENoZWNrU3RydWN0dXJlOgorICAgICAgICAgICAgICAg
IGZvciAodW5zaWduZWQgaSA9IG5vZGUtPnN0cnVjdHVyZVNldCgpLnNpemUoKTsgaS0tOykKKyAg
ICAgICAgICAgICAgICAgICAgdmlzaXRvci5hcHBlbmRVbmJhcnJpZXJlZFJlYWRPbmx5UG9pbnRl
cihub2RlLT5zdHJ1Y3R1cmVTZXQoKVtpXSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgICAgICAgICAgCisgICAgICAgICAgICBjYXNlIFN0cnVjdHVyZVRyYW5zaXRpb25XYXRjaHBv
aW50OgorICAgICAgICAgICAgY2FzZSBOZXdPYmplY3Q6CisgICAgICAgICAgICBjYXNlIEFycmF5
aWZ5VG9TdHJ1Y3R1cmU6CisgICAgICAgICAgICBjYXNlIE5ld1N0cmluZ09iamVjdDoKKyAgICAg
ICAgICAgICAgICB2aXNpdG9yLmFwcGVuZFVuYmFycmllcmVkUmVhZE9ubHlQb2ludGVyKG5vZGUt
PnN0cnVjdHVyZSgpKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAK
KyAgICAgICAgICAgIGNhc2UgUHV0U3RydWN0dXJlOgorICAgICAgICAgICAgY2FzZSBQaGFudG9t
UHV0U3RydWN0dXJlOgorICAgICAgICAgICAgY2FzZSBBbGxvY2F0ZVByb3BlcnR5U3RvcmFnZToK
KyAgICAgICAgICAgIGNhc2UgUmVhbGxvY2F0ZVByb3BlcnR5U3RvcmFnZToKKyAgICAgICAgICAg
ICAgICB2aXNpdG9yLmFwcGVuZFVuYmFycmllcmVkUmVhZE9ubHlQb2ludGVyKAorICAgICAgICAg
ICAgICAgICAgICBub2RlLT5zdHJ1Y3R1cmVUcmFuc2l0aW9uRGF0YSgpLnByZXZpb3VzU3RydWN0
dXJlKTsKKyAgICAgICAgICAgICAgICB2aXNpdG9yLmFwcGVuZFVuYmFycmllcmVkUmVhZE9ubHlQ
b2ludGVyKAorICAgICAgICAgICAgICAgICAgICBub2RlLT5zdHJ1Y3R1cmVUcmFuc2l0aW9uRGF0
YSgpLm5ld1N0cnVjdHVyZSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAg
ICAgCisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICAgICAgfQorICAgICAgICB9CisgICAgfQorfQorCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6REZH
CiAKICNlbmRpZgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguaAkocmV2aXNp
b24gMTYzNjk1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC00MCw2ICs0MCw3IEBACiAjaW5jbHVkZSAiREZHTm9kZS5oIgogI2luY2x1
ZGUgIkRGR05vZGVBbGxvY2F0b3IuaCIKICNpbmNsdWRlICJERkdQbGFuLmgiCisjaW5jbHVkZSAi
REZHU2Nhbm5hYmxlLmgiCiAjaW5jbHVkZSAiREZHVmFyaWFkaWNGdW5jdGlvbi5oIgogI2luY2x1
ZGUgIklubGluZUNhbGxGcmFtZVNldC5oIgogI2luY2x1ZGUgIkpTU3RhY2suaCIKQEAgLTc4LDcg
Kzc5LDcgQEAgZW51bSBBZGRTcGVjdWxhdGlvbk1vZGUgewogLy8KIC8vIFRoZSBvcmRlciBtYXkg
YmUgc2lnbmlmaWNhbnQgZm9yIG5vZGVzIHdpdGggc2lkZS1lZmZlY3RzIChwcm9wZXJ0eSBhY2Nl
c3NlcywgdmFsdWUgY29udmVyc2lvbnMpLgogLy8gTm9kZXMgdGhhdCBhcmUgJ2RlYWQnIHJlbWFp
biBpbiB0aGUgdmVjdG9yIHdpdGggcmVmQ291bnQgMC4KLWNsYXNzIEdyYXBoIHsKK2NsYXNzIEdy
YXBoIDogcHVibGljIHZpcnR1YWwgU2Nhbm5hYmxlIHsKIHB1YmxpYzoKICAgICBHcmFwaChWTSYs
IFBsYW4mLCBMb25nTGl2ZWRTdGF0ZSYpOwogICAgIH5HcmFwaCgpOwpAQCAtNzk5LDYgKzgwMCw4
IEBAIHB1YmxpYzoKICAgICBKU0FycmF5QnVmZmVyVmlldyogdHJ5R2V0Rm9sZGFibGVWaWV3KE5v
ZGUqLCBBcnJheU1vZGUpOwogICAgIEpTQXJyYXlCdWZmZXJWaWV3KiB0cnlHZXRGb2xkYWJsZVZp
ZXdGb3JDaGlsZDEoTm9kZSopOwogICAgIAorICAgIHZpcnR1YWwgdm9pZCB2aXNpdENoaWxkcmVu
KFNsb3RWaXNpdG9yJikgb3ZlcnJpZGU7CisgICAgCiAgICAgVk0mIG1fdm07CiAgICAgUGxhbiYg
bV9wbGFuOwogICAgIENvZGVCbG9jayogbV9jb2RlQmxvY2s7CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0dyYXBoU2FmZXBvaW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoU2FmZXBvaW50LmNwcAkocmV2aXNpb24gMCkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGhTYWZlcG9pbnQuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0wLDAgKzEsNDcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
KyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkRGR0dyYXBoU2Fm
ZXBvaW50LmgiCisKKyNpZiBFTkFCTEUoREZHX0pJVCkKKworI2luY2x1ZGUgIkRGR0dyYXBoLmgi
CisKK25hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKKworR3JhcGhTYWZlcG9pbnQ6Okdy
YXBoU2FmZXBvaW50KEdyYXBoJiBncmFwaCkKKyAgICA6IG1fc2FmZXBvaW50KGdyYXBoLm1fcGxh
bikKK3sKKyAgICBtX3NhZmVwb2ludC5hZGQoJmdyYXBoKTsKKyAgICBtX3NhZmVwb2ludC5iZWdp
bigpOworfQorCitHcmFwaFNhZmVwb2ludDo6fkdyYXBoU2FmZXBvaW50KCkgeyB9CisKK30gfSAv
LyBuYW1lc3BhY2UgSlNDOjpERkcKKworI2VuZGlmIC8vIEVOQUJMRShERkdfSklUKQorCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoU2FmZXBvaW50LmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaFNhZmVwb2ludC5oCShyZXZp
c2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaFNhZmVwb2ludC5o
CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBERkdHcmFwaFNhZmVwb2ludF9oCisjZGVm
aW5lIERGR0dyYXBoU2FmZXBvaW50X2gKKworI2lmIEVOQUJMRShERkdfSklUKQorCisjaW5jbHVk
ZSAiREZHU2FmZXBvaW50LmgiCisKK25hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKKwor
Y2xhc3MgR3JhcGg7CisKK2NsYXNzIEdyYXBoU2FmZXBvaW50IHsKK3B1YmxpYzoKKyAgICBHcmFw
aFNhZmVwb2ludChHcmFwaCYpOworICAgIH5HcmFwaFNhZmVwb2ludCgpOworICAgIAorcHJpdmF0
ZToKKyAgICBTYWZlcG9pbnQgbV9zYWZlcG9pbnQ7Cit9OworCit9IH0gLy8gbmFtZXNwYWNlIEpT
Qzo6REZHCisKKyNlbmRpZiAvLyBFTkFCTEUoREZHX0pJVCkKKworI2VuZGlmIC8vIERGR0dyYXBo
U2FmZXBvaW50X2gKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0
Q29tcGlsZXJDb21tb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHT1NSRXhpdENvbXBpbGVyQ29tbW9uLmNwcAkocmV2aXNpb24gMTYzNjk1KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0Q29tcGlsZXJDb21tb24uY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw3IEBACiAjaWYgRU5BQkxFKERGR19KSVQpCiAKICNpbmNs
dWRlICJBcmd1bWVudHMuaCIKKyNpbmNsdWRlICJERkdKSVRDb2RlLmgiCiAjaW5jbHVkZSAiREZH
T3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIkpJVC5oIgogI2luY2x1ZGUgIkpTQ0pTVmFsdWVJbmxp
bmVzLmgiCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5j
cHAJKHJldmlzaW9uIDE2MzY5NSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3Bl
cmF0aW9ucy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJD
b21tb25TbG93UGF0aHMuaCIKICNpbmNsdWRlICJDb3BpZWRTcGFjZUlubGluZXMuaCIKICNpbmNs
dWRlICJERkdEcml2ZXIuaCIKKyNpbmNsdWRlICJERkdKSVRDb2RlLmgiCiAjaW5jbHVkZSAiREZH
T1NSRXhpdC5oIgogI2luY2x1ZGUgIkRGR1RodW5rcy5oIgogI2luY2x1ZGUgIkRGR1RvRlRMRGVm
ZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrLmgiCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR09wZXJhdGlvbnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR09wZXJhdGlvbnMuaAkocmV2aXNpb24gMTYzNjk1KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBA
CiAvKgotICogQ29weXJpZ2h0IChDKSAyMDExLCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMSwgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI4
LDcgKzI4LDYgQEAKIAogI2lmIEVOQUJMRShERkdfSklUKQogCi0jaW5jbHVkZSAiREZHSklUQ29t
cGlsZXIuaCIKICNpbmNsdWRlICJKSVRPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiUHV0S2luZC5o
IgogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1BsYW4uY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUGxhbi5jcHAJKHJldmlzaW9uIDE2
MzY5NSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUGxhbi5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTQxLDYgKzQxLDcgQEAKICNpbmNsdWRlICJERkdGYWlsZWRGaW5hbGl6ZXIuaCIK
ICNpbmNsdWRlICJERkdGbHVzaExpdmVuZXNzQW5hbHlzaXNQaGFzZS5oIgogI2luY2x1ZGUgIkRG
R0ZpeHVwUGhhc2UuaCIKKyNpbmNsdWRlICJERkdHcmFwaFNhZmVwb2ludC5oIgogI2luY2x1ZGUg
IkRGR0ludmFsaWRhdGlvblBvaW50SW5qZWN0aW9uUGhhc2UuaCIKICNpbmNsdWRlICJERkdKSVRD
b21waWxlci5oIgogI2luY2x1ZGUgIkRGR0xJQ01QaGFzZS5oIgpAQCAtMTM1LDggKzEzNiwxMCBA
QCBib29sIFBsYW46OnJlcG9ydENvbXBpbGVUaW1lcygpIGNvbnN0CiAgICAgICAgIHx8IChPcHRp
b25zOjpyZXBvcnRGVExDb21waWxlVGltZXMoKSAmJiBpc0ZUTChtb2RlKSk7CiB9CiAKLXZvaWQg
UGxhbjo6Y29tcGlsZUluVGhyZWFkKExvbmdMaXZlZFN0YXRlJiBsb25nTGl2ZWRTdGF0ZSkKK3Zv
aWQgUGxhbjo6Y29tcGlsZUluVGhyZWFkKExvbmdMaXZlZFN0YXRlJiBsb25nTGl2ZWRTdGF0ZSwg
VGhyZWFkRGF0YSogdGhyZWFkRGF0YSkKIHsKKyAgICB0aGlzLT50aHJlYWREYXRhID0gdGhyZWFk
RGF0YTsKKyAgICAKICAgICBkb3VibGUgYmVmb3JlID0gMDsKICAgICBpZiAocmVwb3J0Q29tcGls
ZVRpbWVzKCkpCiAgICAgICAgIGJlZm9yZSA9IGN1cnJlbnRUaW1lTVMoKTsKQEAgLTMxMywxMSAr
MzE2LDE0IEBAIFBsYW46OkNvbXBpbGF0aW9uUGF0aCBQbGFuOjpjb21waWxlSW5UaHIKICAgICAg
ICAgCiAgICAgICAgIGR1bXBBbmRWZXJpZnlHcmFwaChkZmcsICJHcmFwaCBqdXN0IGJlZm9yZSBG
VEwgbG93ZXJpbmc6Iik7CiAgICAgICAgIAotICAgICAgICBpbml0aWFsaXplTExWTSgpOwotICAg
ICAgICAKKyAgICAgICAgeworICAgICAgICAgICAgR3JhcGhTYWZlcG9pbnQgc2FmZXBvaW50KGRm
Zyk7CisgICAgICAgICAgICBpbml0aWFsaXplTExWTSgpOworICAgICAgICB9CisgICAgICAgICAg
ICAKICAgICAgICAgRlRMOjpTdGF0ZSBzdGF0ZShkZmcpOwogICAgICAgICBGVEw6Omxvd2VyREZH
VG9MTFZNKHN0YXRlKTsKLSAgICAgICAgCisgICAgICAgICAgICAKICAgICAgICAgaWYgKHJlcG9y
dENvbXBpbGVUaW1lcygpKQogICAgICAgICAgICAgYmVmb3JlRlRMID0gY3VycmVudFRpbWVNUygp
OwogICAgICAgICAKQEAgLTMyNyw3ICszMzMsNyBAQCBQbGFuOjpDb21waWxhdGlvblBhdGggUGxh
bjo6Y29tcGlsZUluVGhyCiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIEZUTDo6Y29tcGls
ZShzdGF0ZSk7Ci0KKyAgICAgICAgICAgIAogICAgICAgICBpZiAoT3B0aW9uczo6bGx2bUFsd2F5
c0ZhaWxzQmVmb3JlTGluaygpKSB7CiAgICAgICAgICAgICBGVEw6OmZhaWwoc3RhdGUpOwogICAg
ICAgICAgICAgcmV0dXJuIEZUTFBhdGg7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1BsYW4uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Bs
YW4uaAkocmV2aXNpb24gMTYzNjk1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQ
bGFuLmgJKHdvcmtpbmcgY29weSkKQEAgLTUyLDYgKzUyLDcgQEAgY2xhc3MgU2xvdFZpc2l0b3I7
CiBuYW1lc3BhY2UgREZHIHsKIAogY2xhc3MgTG9uZ0xpdmVkU3RhdGU7CitjbGFzcyBUaHJlYWRE
YXRhOwogCiAjaWYgRU5BQkxFKERGR19KSVQpCiAKQEAgLTYyLDcgKzYzLDcgQEAgc3RydWN0IFBs
YW4gOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZQogICAgICAgICBjb25zdCBPcGVyYW5kczxK
U1ZhbHVlPiYgbXVzdEhhbmRsZVZhbHVlcyk7CiAgICAgflBsYW4oKTsKICAgICAKLSAgICB2b2lk
IGNvbXBpbGVJblRocmVhZChMb25nTGl2ZWRTdGF0ZSYpOworICAgIHZvaWQgY29tcGlsZUluVGhy
ZWFkKExvbmdMaXZlZFN0YXRlJiwgVGhyZWFkRGF0YSopOwogICAgIAogICAgIENvbXBpbGF0aW9u
UmVzdWx0IGZpbmFsaXplV2l0aG91dE5vdGlmeWluZ0NhbGxiYWNrKCk7CiAgICAgdm9pZCBmaW5h
bGl6ZUFuZE5vdGlmeUNhbGxiYWNrKCk7CkBAIC03OSw2ICs4MCw4IEBAIHN0cnVjdCBQbGFuIDog
cHVibGljIFRocmVhZFNhZmVSZWZDb3VudGUKICAgICBDb21waWxhdGlvbk1vZGUgbW9kZTsKICAg
ICBjb25zdCB1bnNpZ25lZCBvc3JFbnRyeUJ5dGVjb2RlSW5kZXg7CiAgICAgT3BlcmFuZHM8SlNW
YWx1ZT4gbXVzdEhhbmRsZVZhbHVlczsKKyAgICAKKyAgICBUaHJlYWREYXRhKiB0aHJlYWREYXRh
OwogCiAgICAgUmVmUHRyPFByb2ZpbGVyOjpDb21waWxhdGlvbj4gY29tcGlsYXRpb247CiAKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZXBvaW50LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVwb2ludC5jcHAJKHJldmlzaW9u
IDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVwb2ludC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTAsMCArMSw3NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiREZHU2FmZXBv
aW50LmgiCisKKyNpZiBFTkFCTEUoREZHX0pJVCkKKworI2luY2x1ZGUgIkRGR1BsYW4uaCIKKyNp
bmNsdWRlICJERkdTY2FubmFibGUuaCIKKyNpbmNsdWRlICJERkdUaHJlYWREYXRhLmgiCisKK25h
bWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKKworU2FmZXBvaW50OjpTYWZlcG9pbnQoUGxh
biYgcGxhbikKKyAgICA6IG1fcGxhbihwbGFuKQorICAgICwgbV9kaWRDYWxsQmVnaW4oZmFsc2Up
Cit7Cit9CisKK1NhZmVwb2ludDo6flNhZmVwb2ludCgpCit7CisgICAgUkVMRUFTRV9BU1NFUlQo
bV9kaWRDYWxsQmVnaW4pOworICAgIGlmIChUaHJlYWREYXRhKiBkYXRhID0gbV9wbGFuLnRocmVh
ZERhdGEpCisgICAgICAgIGRhdGEtPm1fcmlnaHRUb1J1bi5sb2NrKCk7Cit9CisKK3ZvaWQgU2Fm
ZXBvaW50OjphZGQoU2Nhbm5hYmxlKiBzY2FubmFibGUpCit7CisgICAgUkVMRUFTRV9BU1NFUlQo
IW1fZGlkQ2FsbEJlZ2luKTsKKyAgICBtX3NjYW5uYWJsZXMuYXBwZW5kKHNjYW5uYWJsZSk7Cit9
CisKK3ZvaWQgU2FmZXBvaW50OjpiZWdpbigpCit7CisgICAgUkVMRUFTRV9BU1NFUlQoIW1fZGlk
Q2FsbEJlZ2luKTsKKyAgICBpZiAoVGhyZWFkRGF0YSogZGF0YSA9IG1fcGxhbi50aHJlYWREYXRh
KQorICAgICAgICBkYXRhLT5tX3JpZ2h0VG9SdW4udW5sb2NrKCk7CisgICAgbV9kaWRDYWxsQmVn
aW4gPSB0cnVlOworfQorCit2b2lkIFNhZmVwb2ludDo6dmlzaXRDaGlsZHJlbihTbG90VmlzaXRv
ciYgdmlzaXRvcikKK3sKKyAgICBSRUxFQVNFX0FTU0VSVChtX2RpZENhbGxCZWdpbik7CisgICAg
Zm9yICh1bnNpZ25lZCBpID0gbV9zY2FubmFibGVzLnNpemUoKTsgaS0tOykKKyAgICAgICAgbV9z
Y2FubmFibGVzW2ldLT52aXNpdENoaWxkcmVuKHZpc2l0b3IpOworfQorCit9IH0gLy8gbmFtZXNw
YWNlIEpTQzo6REZHCisKKyNlbmRpZiAvLyBFTkFCTEUoREZHX0pJVCkKKwpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTYWZlcG9pbnQuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVwb2ludC5oCShyZXZpc2lvbiAwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTYWZlcG9pbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMCww
ICsxLDY0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisK
KyNpZm5kZWYgREZHU2FmZXBvaW50X2gKKyNkZWZpbmUgREZHU2FmZXBvaW50X2gKKworI2lmIEVO
QUJMRShERkdfSklUKQorCisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorCituYW1lc3BhY2UgSlND
IHsKKworY2xhc3MgU2xvdFZpc2l0b3I7CisKK25hbWVzcGFjZSBERkcgeworCitjbGFzcyBTY2Fu
bmFibGU7CitzdHJ1Y3QgUGxhbjsKKworY2xhc3MgU2FmZXBvaW50IHsKK3B1YmxpYzoKKyAgICBT
YWZlcG9pbnQoUGxhbiYpOworICAgIH5TYWZlcG9pbnQoKTsKKyAgICAKKyAgICB2b2lkIGFkZChT
Y2FubmFibGUqKTsKKyAgICAKKyAgICB2b2lkIGJlZ2luKCk7CisgICAgCisgICAgdm9pZCB2aXNp
dENoaWxkcmVuKFNsb3RWaXNpdG9yJik7CisgICAgCitwcml2YXRlOgorICAgIFBsYW4mIG1fcGxh
bjsKKyAgICBWZWN0b3I8U2Nhbm5hYmxlKj4gbV9zY2FubmFibGVzOworICAgIGJvb2wgbV9kaWRD
YWxsQmVnaW47Cit9OworCit9IH0gLy8gbmFtZXNwYWNlIEpTQzo6REZHCisKKyNlbmRpZiAvLyBF
TkFCTEUoREZHX0pJVCkKKworI2VuZGlmIC8vIERGR1NhZmVwb2ludF9oCisKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2Nhbm5hYmxlLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTY2FubmFibGUuaAkocmV2aXNpb24gMCkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2Nhbm5hYmxlLmgJKHdvcmtpbmcgY29weSkKQEAgLTAs
MCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLwor
CisjaWZuZGVmIERGR1NjYW5uYWJsZV9oCisjZGVmaW5lIERGR1NjYW5uYWJsZV9oCisKKyNpZiBF
TkFCTEUoREZHX0pJVCkKKworbmFtZXNwYWNlIEpTQyB7CisKK2NsYXNzIFNsb3RWaXNpdG9yOwor
CituYW1lc3BhY2UgREZHIHsKKworY2xhc3MgU2Nhbm5hYmxlIHsKK3B1YmxpYzoKKyAgICBTY2Fu
bmFibGUoKSB7IH0KKyAgICB2aXJ0dWFsIH5TY2FubmFibGUoKSB7IH0KKyAgICAKKyAgICB2aXJ0
dWFsIHZvaWQgdmlzaXRDaGlsZHJlbihTbG90VmlzaXRvciYpID0gMDsKK307CisKK30gfSAvLyBu
YW1lc3BhY2UgSlNDOjpERkcKKworI2VuZGlmIC8vIEVOQUJMRShERkdfSklUKQorCisjZW5kaWYg
Ly8gREZHU2Nhbm5hYmxlX2gKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdU
aHJlYWREYXRhLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1RocmVhZERhdGEuY3BwCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdUaHJlYWREYXRhLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDQ3IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJERkdUaHJlYWREYXRhLmgiCisKKyNpZiBFTkFCTEUoREZHX0pJVCkK
KworbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgeworCitUaHJlYWREYXRhOjpUaHJlYWRE
YXRhKFdvcmtsaXN0KiB3b3JrbGlzdCkKKyAgICA6IG1fd29ya2xpc3Qod29ya2xpc3QpCisgICAg
LCBtX2lkZW50aWZpZXIoMCkKKyAgICAsIG1fc2FmZXBvaW50KG51bGxwdHIpCit7Cit9CisKK1Ro
cmVhZERhdGE6On5UaHJlYWREYXRhKCkKK3sKK30KKworfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkRG
RworCisjZW5kaWYgLy8gRU5BQkxFKERGR19KSVQpCisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHVGhyZWFkRGF0YS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHVGhyZWFkRGF0YS5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdUaHJlYWREYXRhLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw1OSBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
KyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVm
IERGR1RocmVhZERhdGFfaAorI2RlZmluZSBERkdUaHJlYWREYXRhX2gKKworI2lmIEVOQUJMRShE
RkdfSklUKQorCisjaW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgorI2luY2x1ZGUgPHd0Zi9UaHJl
YWRpbmdQcmltaXRpdmVzLmg+CisKK25hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKKwor
Y2xhc3MgU2FmZXBvaW50OworY2xhc3MgV29ya2xpc3Q7CisKK2NsYXNzIFRocmVhZERhdGEgewor
cHVibGljOgorICAgIFRocmVhZERhdGEoV29ya2xpc3QqKTsKKyAgICB+VGhyZWFkRGF0YSgpOwor
ICAgIAorcHJpdmF0ZToKKyAgICBmcmllbmQgY2xhc3MgU2FmZXBvaW50OworICAgIGZyaWVuZCBj
bGFzcyBXb3JrbGlzdDsKKyAgICAKKyAgICBXb3JrbGlzdCogbV93b3JrbGlzdDsKKyAgICBUaHJl
YWRJZGVudGlmaWVyIG1faWRlbnRpZmllcjsKKyAgICBNdXRleCBtX3JpZ2h0VG9SdW47CisgICAg
U2FmZXBvaW50KiBtX3NhZmVwb2ludDsKK307CisKK30gfSAvLyBuYW1lc3BhY2UgSlNDOjpERkcK
KworI2VuZGlmIC8vIEVOQUJMRShERkdfSklUKQorCisjZW5kaWYgLy8gREZHVGhyZWFkRGF0YV9o
CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVGh1bmtzLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1RodW5rcy5jcHAJKHJldmlzaW9u
IDE2MzY5NSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVGh1bmtzLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkRGR09TUkV4aXRDb21waWxl
ci5oIgogI2luY2x1ZGUgIkZQUkluZm8uaCIKICNpbmNsdWRlICJHUFJJbmZvLmgiCisjaW5jbHVk
ZSAiTGlua0J1ZmZlci5oIgogI2luY2x1ZGUgIk1hY3JvQXNzZW1ibGVyLmgiCiAKIG5hbWVzcGFj
ZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHV29ya2xpc3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHV29ya2xpc3QuY3BwCShyZXZpc2lvbiAxNjM2OTUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1dvcmtsaXN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzEsNiArMzEsNyBAQAog
I2luY2x1ZGUgIkNvZGVCbG9jay5oIgogI2luY2x1ZGUgIkRlZmVyR0MuaCIKICNpbmNsdWRlICJE
RkdMb25nTGl2ZWRTdGF0ZS5oIgorI2luY2x1ZGUgIkRGR1NhZmVwb2ludC5oIgogI2luY2x1ZGUg
PG11dGV4PgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CkBAIC01Nyw4ICs1OCw3
IEBAIHZvaWQgV29ya2xpc3Q6OmZpbmlzaENyZWF0aW9uKHVuc2lnbmVkIG4KIHsKICAgICBSRUxF
QVNFX0FTU0VSVChudW1iZXJPZlRocmVhZHMpOwogICAgIGZvciAodW5zaWduZWQgaSA9IG51bWJl
ck9mVGhyZWFkczsgaS0tOykgewotICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8VGhyZWFkRGF0YT4g
ZGF0YSA9IHN0ZDo6bWFrZV91bmlxdWU8VGhyZWFkRGF0YT4oKTsKLSAgICAgICAgZGF0YS0+bV93
b3JrbGlzdCA9IHRoaXM7CisgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxUaHJlYWREYXRhPiBkYXRh
ID0gc3RkOjptYWtlX3VuaXF1ZTxUaHJlYWREYXRhPih0aGlzKTsKICAgICAgICAgZGF0YS0+bV9p
ZGVudGlmaWVyID0gY3JlYXRlVGhyZWFkKHRocmVhZEZ1bmN0aW9uLCBkYXRhLmdldCgpLCAiSlND
IENvbXBpbGF0aW9uIFRocmVhZCIpOwogICAgICAgICBtX3RocmVhZHMuYXBwZW5kKHN0ZDo6bW92
ZShkYXRhKSk7CiAgICAgfQpAQCAtMjEwLDYgKzIxMCwxMiBAQCB2b2lkIFdvcmtsaXN0Ojp2aXNp
dENoaWxkcmVuKFNsb3RWaXNpdG9yCiAgICAgICAgIGl0ZXItPmtleS52aXNpdENoaWxkcmVuKGNv
ZGVCbG9ja3MpOwogICAgICAgICBpdGVyLT52YWx1ZS0+dmlzaXRDaGlsZHJlbih2aXNpdG9yLCBj
b2RlQmxvY2tzKTsKICAgICB9CisgICAgCisgICAgZm9yICh1bnNpZ25lZCBpID0gbV90aHJlYWRz
LnNpemUoKTsgaS0tOykgeworICAgICAgICBUaHJlYWREYXRhKiBkYXRhID0gbV90aHJlYWRzW2ld
LmdldCgpOworICAgICAgICBpZiAoU2FmZXBvaW50KiBzYWZlcG9pbnQgPSBkYXRhLT5tX3NhZmVw
b2ludCkKKyAgICAgICAgICAgIHNhZmVwb2ludC0+dmlzaXRDaGlsZHJlbih2aXNpdG9yKTsKKyAg
ICB9CiB9CiAKIHNpemVfdCBXb3JrbGlzdDo6cXVldWVMZW5ndGgoKQpAQCAtMjY1LDcgKzI3MSw3
IEBAIHZvaWQgV29ya2xpc3Q6OnJ1blRocmVhZChUaHJlYWREYXRhKiBkYXQKICAgICAgICAgICAg
IGlmIChPcHRpb25zOjp2ZXJib3NlQ29tcGlsYXRpb25RdWV1ZSgpKQogICAgICAgICAgICAgICAg
IGRhdGFMb2coKnRoaXMsICI6IENvbXBpbGluZyAiLCBwbGFuLT5rZXkoKSwgIiBhc3luY2hyb25v
dXNseVxuIik7CiAgICAgICAgIAotICAgICAgICAgICAgcGxhbi0+Y29tcGlsZUluVGhyZWFkKGxv
bmdMaXZlZFN0YXRlKTsKKyAgICAgICAgICAgIHBsYW4tPmNvbXBpbGVJblRocmVhZChsb25nTGl2
ZWRTdGF0ZSwgZGF0YSk7CiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIHsKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHV29ya2xpc3QuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1dvcmtsaXN0LmgJKHJldmlzaW9uIDE2MzY5NSkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHV29ya2xpc3QuaAkod29ya2luZyBjb3B5KQpA
QCAtMzEsNiArMzEsNyBAQAogI2lmIEVOQUJMRShERkdfSklUKQogCiAjaW5jbHVkZSAiREZHUGxh
bi5oIgorI2luY2x1ZGUgIkRGR1RocmVhZERhdGEuaCIKICNpbmNsdWRlIDx3dGYvRGVxdWUuaD4K
ICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgpA
QCAtNzcsMTIgKzc4LDYgQEAgcHVibGljOgogICAgIHZvaWQgZHVtcChQcmludFN0cmVhbSYpIGNv
bnN0OwogICAgIAogcHJpdmF0ZToKLSAgICBzdHJ1Y3QgVGhyZWFkRGF0YSB7Ci0gICAgICAgIFdv
cmtsaXN0KiBtX3dvcmtsaXN0OwotICAgICAgICBUaHJlYWRJZGVudGlmaWVyIG1faWRlbnRpZmll
cjsKLSAgICAgICAgTXV0ZXggbV9yaWdodFRvUnVuOwotICAgIH07Ci0gICAgCiAgICAgV29ya2xp
c3QoKTsKICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKHVuc2lnbmVkIG51bWJlck9mVGhyZWFkcyk7
CiAgICAgCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENvbXBpbGUuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ29tcGlsZS5jcHAJKHJl
dmlzaW9uIDE2MzY5NSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ29tcGlsZS5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJDb2RlQmxvY2tX
aXRoSklUVHlwZS5oIgogI2luY2x1ZGUgIkNDYWxsSGVscGVycy5oIgogI2luY2x1ZGUgIkRGR0Nv
bW1vbi5oIgorI2luY2x1ZGUgIkRGR0dyYXBoU2FmZXBvaW50LmgiCiAjaW5jbHVkZSAiRGF0YVZp
ZXcuaCIKICNpbmNsdWRlICJEaXNhc3NlbWJsZXIuaCIKICNpbmNsdWRlICJGVExFeGl0VGh1bmtH
ZW5lcmF0b3IuaCIKQEAgLTQ1Miw3MCArNDUzLDc0IEBAIHZvaWQgY29tcGlsZShTdGF0ZSYgc3Rh
dGUpCiB7CiAgICAgY2hhciogZXJyb3IgPSAwOwogICAgIAotICAgIExMVk1NQ0pJVENvbXBpbGVy
T3B0aW9ucyBvcHRpb25zOwotICAgIGxsdm0tPkluaXRpYWxpemVNQ0pJVENvbXBpbGVyT3B0aW9u
cygmb3B0aW9ucywgc2l6ZW9mKG9wdGlvbnMpKTsKLSAgICBvcHRpb25zLk9wdExldmVsID0gT3B0
aW9uczo6bGx2bUJhY2tlbmRPcHRpbWl6YXRpb25MZXZlbCgpOwotICAgIG9wdGlvbnMuTm9GcmFt
ZVBvaW50ZXJFbGltID0gdHJ1ZTsKLSAgICBpZiAoT3B0aW9uczo6dXNlTExWTVNtYWxsQ29kZU1v
ZGVsKCkpCi0gICAgICAgIG9wdGlvbnMuQ29kZU1vZGVsID0gTExWTUNvZGVNb2RlbFNtYWxsOwot
ICAgIG9wdGlvbnMuRW5hYmxlRmFzdElTZWwgPSBPcHRpb25zOjplbmFibGVMTFZNRmFzdElTZWwo
KTsKLSAgICBvcHRpb25zLk1DSk1NID0gbGx2bS0+Q3JlYXRlU2ltcGxlTUNKSVRNZW1vcnlNYW5h
Z2VyKAotICAgICAgICAmc3RhdGUsIG1tQWxsb2NhdGVDb2RlU2VjdGlvbiwgbW1BbGxvY2F0ZURh
dGFTZWN0aW9uLCBtbUFwcGx5UGVybWlzc2lvbnMsIG1tRGVzdHJveSk7Ci0gICAgCi0gICAgTExW
TUV4ZWN1dGlvbkVuZ2luZVJlZiBlbmdpbmU7Ci0gICAgCi0gICAgaWYgKGxsdm0tPkNyZWF0ZU1D
SklUQ29tcGlsZXJGb3JNb2R1bGUoJmVuZ2luZSwgc3RhdGUubW9kdWxlLCAmb3B0aW9ucywgc2l6
ZW9mKG9wdGlvbnMpLCAmZXJyb3IpKSB7Ci0gICAgICAgIGRhdGFMb2coIkZBVEFMOiBDb3VsZCBu
b3QgY3JlYXRlIExMVk0gZXhlY3V0aW9uIGVuZ2luZTogIiwgZXJyb3IsICJcbiIpOwotICAgICAg
ICBDUkFTSCgpOwotICAgIH0KLQotICAgIExMVk1QYXNzTWFuYWdlclJlZiBmdW5jdGlvblBhc3Nl
cyA9IDA7Ci0gICAgTExWTVBhc3NNYW5hZ2VyUmVmIG1vZHVsZVBhc3NlczsKLSAgICAKLSAgICBp
ZiAoT3B0aW9uczo6bGx2bVNpbXBsZU9wdCgpKSB7Ci0gICAgICAgIG1vZHVsZVBhc3NlcyA9IGxs
dm0tPkNyZWF0ZVBhc3NNYW5hZ2VyKCk7Ci0gICAgICAgIGxsdm0tPkFkZFRhcmdldERhdGEobGx2
bS0+R2V0RXhlY3V0aW9uRW5naW5lVGFyZ2V0RGF0YShlbmdpbmUpLCBtb2R1bGVQYXNzZXMpOwot
ICAgICAgICBsbHZtLT5BZGRQcm9tb3RlTWVtb3J5VG9SZWdpc3RlclBhc3MobW9kdWxlUGFzc2Vz
KTsKLSAgICAgICAgbGx2bS0+QWRkQ29uc3RhbnRQcm9wYWdhdGlvblBhc3MobW9kdWxlUGFzc2Vz
KTsKLSAgICAgICAgbGx2bS0+QWRkSW5zdHJ1Y3Rpb25Db21iaW5pbmdQYXNzKG1vZHVsZVBhc3Nl
cyk7Ci0gICAgICAgIGxsdm0tPkFkZEJhc2ljQWxpYXNBbmFseXNpc1Bhc3MobW9kdWxlUGFzc2Vz
KTsKLSAgICAgICAgbGx2bS0+QWRkVHlwZUJhc2VkQWxpYXNBbmFseXNpc1Bhc3MobW9kdWxlUGFz
c2VzKTsKLSAgICAgICAgbGx2bS0+QWRkR1ZOUGFzcyhtb2R1bGVQYXNzZXMpOwotICAgICAgICBs
bHZtLT5BZGRDRkdTaW1wbGlmaWNhdGlvblBhc3MobW9kdWxlUGFzc2VzKTsKLSAgICAgICAgbGx2
bS0+UnVuUGFzc01hbmFnZXIobW9kdWxlUGFzc2VzLCBzdGF0ZS5tb2R1bGUpOwotICAgIH0gZWxz
ZSB7Ci0gICAgICAgIExMVk1QYXNzTWFuYWdlckJ1aWxkZXJSZWYgcGFzc0J1aWxkZXIgPSBsbHZt
LT5QYXNzTWFuYWdlckJ1aWxkZXJDcmVhdGUoKTsKLSAgICAgICAgbGx2bS0+UGFzc01hbmFnZXJC
dWlsZGVyU2V0T3B0TGV2ZWwocGFzc0J1aWxkZXIsIE9wdGlvbnM6Omxsdm1PcHRpbWl6YXRpb25M
ZXZlbCgpKTsKLSAgICAgICAgbGx2bS0+UGFzc01hbmFnZXJCdWlsZGVyU2V0U2l6ZUxldmVsKHBh
c3NCdWlsZGVyLCBPcHRpb25zOjpsbHZtU2l6ZUxldmVsKCkpOwotICAgICAgICAKLSAgICAgICAg
ZnVuY3Rpb25QYXNzZXMgPSBsbHZtLT5DcmVhdGVGdW5jdGlvblBhc3NNYW5hZ2VyRm9yTW9kdWxl
KHN0YXRlLm1vZHVsZSk7Ci0gICAgICAgIG1vZHVsZVBhc3NlcyA9IGxsdm0tPkNyZWF0ZVBhc3NN
YW5hZ2VyKCk7Ci0gICAgICAgIAotICAgICAgICBsbHZtLT5BZGRUYXJnZXREYXRhKGxsdm0tPkdl
dEV4ZWN1dGlvbkVuZ2luZVRhcmdldERhdGEoZW5naW5lKSwgbW9kdWxlUGFzc2VzKTsKLSAgICAg
ICAgCi0gICAgICAgIGxsdm0tPlBhc3NNYW5hZ2VyQnVpbGRlclBvcHVsYXRlRnVuY3Rpb25QYXNz
TWFuYWdlcihwYXNzQnVpbGRlciwgZnVuY3Rpb25QYXNzZXMpOwotICAgICAgICBsbHZtLT5QYXNz
TWFuYWdlckJ1aWxkZXJQb3B1bGF0ZU1vZHVsZVBhc3NNYW5hZ2VyKHBhc3NCdWlsZGVyLCBtb2R1
bGVQYXNzZXMpOwotICAgICAgICAKLSAgICAgICAgbGx2bS0+UGFzc01hbmFnZXJCdWlsZGVyRGlz
cG9zZShwYXNzQnVpbGRlcik7Ci0gICAgICAgIAotICAgICAgICBsbHZtLT5Jbml0aWFsaXplRnVu
Y3Rpb25QYXNzTWFuYWdlcihmdW5jdGlvblBhc3Nlcyk7Ci0gICAgICAgIGZvciAoTFZhbHVlIGZ1
bmN0aW9uID0gbGx2bS0+R2V0Rmlyc3RGdW5jdGlvbihzdGF0ZS5tb2R1bGUpOyBmdW5jdGlvbjsg
ZnVuY3Rpb24gPSBsbHZtLT5HZXROZXh0RnVuY3Rpb24oZnVuY3Rpb24pKQotICAgICAgICAgICAg
bGx2bS0+UnVuRnVuY3Rpb25QYXNzTWFuYWdlcihmdW5jdGlvblBhc3NlcywgZnVuY3Rpb24pOwot
ICAgICAgICBsbHZtLT5GaW5hbGl6ZUZ1bmN0aW9uUGFzc01hbmFnZXIoZnVuY3Rpb25QYXNzZXMp
OwotICAgICAgICAKLSAgICAgICAgbGx2bS0+UnVuUGFzc01hbmFnZXIobW9kdWxlUGFzc2VzLCBz
dGF0ZS5tb2R1bGUpOwotICAgIH0KLQotICAgIGlmIChERkc6OnNob3VsZFNob3dEaXNhc3NlbWJs
eSgpIHx8IERGRzo6dmVyYm9zZUNvbXBpbGF0aW9uRW5hYmxlZCgpKQotICAgICAgICBzdGF0ZS5k
dW1wU3RhdGUoImFmdGVyIG9wdGltaXphdGlvbiIpOwotICAgIAotICAgIC8vIEZJWE1FOiBOZWVk
IHRvIGFkZCBzdXBwb3J0IGZvciB0aGUgY2FzZSB3aGVyZSBKSVQgbWVtb3J5IGFsbG9jYXRpb24g
ZmFpbGVkLgotICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MTM2MjAKLSAgICBzdGF0ZS5nZW5lcmF0ZWRGdW5jdGlvbiA9IHJlaW50ZXJwcmV0X2Nhc3Q8R2Vu
ZXJhdGVkRnVuY3Rpb24+KGxsdm0tPkdldFBvaW50ZXJUb0dsb2JhbChlbmdpbmUsIHN0YXRlLmZ1
bmN0aW9uKSk7Ci0gICAgaWYgKGZ1bmN0aW9uUGFzc2VzKQotICAgICAgICBsbHZtLT5EaXNwb3Nl
UGFzc01hbmFnZXIoZnVuY3Rpb25QYXNzZXMpOwotICAgIGxsdm0tPkRpc3Bvc2VQYXNzTWFuYWdl
cihtb2R1bGVQYXNzZXMpOwotICAgIGxsdm0tPkRpc3Bvc2VFeGVjdXRpb25FbmdpbmUoZW5naW5l
KTsKKyAgICB7CisgICAgICAgIEdyYXBoU2FmZXBvaW50IHNhZmVwb2ludChzdGF0ZS5ncmFwaCk7
CisgICAgICAgIAorICAgICAgICBMTFZNTUNKSVRDb21waWxlck9wdGlvbnMgb3B0aW9uczsKKyAg
ICAgICAgbGx2bS0+SW5pdGlhbGl6ZU1DSklUQ29tcGlsZXJPcHRpb25zKCZvcHRpb25zLCBzaXpl
b2Yob3B0aW9ucykpOworICAgICAgICBvcHRpb25zLk9wdExldmVsID0gT3B0aW9uczo6bGx2bUJh
Y2tlbmRPcHRpbWl6YXRpb25MZXZlbCgpOworICAgICAgICBvcHRpb25zLk5vRnJhbWVQb2ludGVy
RWxpbSA9IHRydWU7CisgICAgICAgIGlmIChPcHRpb25zOjp1c2VMTFZNU21hbGxDb2RlTW9kZWwo
KSkKKyAgICAgICAgICAgIG9wdGlvbnMuQ29kZU1vZGVsID0gTExWTUNvZGVNb2RlbFNtYWxsOwor
ICAgICAgICBvcHRpb25zLkVuYWJsZUZhc3RJU2VsID0gT3B0aW9uczo6ZW5hYmxlTExWTUZhc3RJ
U2VsKCk7CisgICAgICAgIG9wdGlvbnMuTUNKTU0gPSBsbHZtLT5DcmVhdGVTaW1wbGVNQ0pJVE1l
bW9yeU1hbmFnZXIoCisgICAgICAgICAgICAmc3RhdGUsIG1tQWxsb2NhdGVDb2RlU2VjdGlvbiwg
bW1BbGxvY2F0ZURhdGFTZWN0aW9uLCBtbUFwcGx5UGVybWlzc2lvbnMsIG1tRGVzdHJveSk7Cisg
ICAgCisgICAgICAgIExMVk1FeGVjdXRpb25FbmdpbmVSZWYgZW5naW5lOworICAgIAorICAgICAg
ICBpZiAobGx2bS0+Q3JlYXRlTUNKSVRDb21waWxlckZvck1vZHVsZSgmZW5naW5lLCBzdGF0ZS5t
b2R1bGUsICZvcHRpb25zLCBzaXplb2Yob3B0aW9ucyksICZlcnJvcikpIHsKKyAgICAgICAgICAg
IGRhdGFMb2coIkZBVEFMOiBDb3VsZCBub3QgY3JlYXRlIExMVk0gZXhlY3V0aW9uIGVuZ2luZTog
IiwgZXJyb3IsICJcbiIpOworICAgICAgICAgICAgQ1JBU0goKTsKKyAgICAgICAgfQorCisgICAg
ICAgIExMVk1QYXNzTWFuYWdlclJlZiBmdW5jdGlvblBhc3NlcyA9IDA7CisgICAgICAgIExMVk1Q
YXNzTWFuYWdlclJlZiBtb2R1bGVQYXNzZXM7CisgICAgCisgICAgICAgIGlmIChPcHRpb25zOjps
bHZtU2ltcGxlT3B0KCkpIHsKKyAgICAgICAgICAgIG1vZHVsZVBhc3NlcyA9IGxsdm0tPkNyZWF0
ZVBhc3NNYW5hZ2VyKCk7CisgICAgICAgICAgICBsbHZtLT5BZGRUYXJnZXREYXRhKGxsdm0tPkdl
dEV4ZWN1dGlvbkVuZ2luZVRhcmdldERhdGEoZW5naW5lKSwgbW9kdWxlUGFzc2VzKTsKKyAgICAg
ICAgICAgIGxsdm0tPkFkZFByb21vdGVNZW1vcnlUb1JlZ2lzdGVyUGFzcyhtb2R1bGVQYXNzZXMp
OworICAgICAgICAgICAgbGx2bS0+QWRkQ29uc3RhbnRQcm9wYWdhdGlvblBhc3MobW9kdWxlUGFz
c2VzKTsKKyAgICAgICAgICAgIGxsdm0tPkFkZEluc3RydWN0aW9uQ29tYmluaW5nUGFzcyhtb2R1
bGVQYXNzZXMpOworICAgICAgICAgICAgbGx2bS0+QWRkQmFzaWNBbGlhc0FuYWx5c2lzUGFzcyht
b2R1bGVQYXNzZXMpOworICAgICAgICAgICAgbGx2bS0+QWRkVHlwZUJhc2VkQWxpYXNBbmFseXNp
c1Bhc3MobW9kdWxlUGFzc2VzKTsKKyAgICAgICAgICAgIGxsdm0tPkFkZEdWTlBhc3MobW9kdWxl
UGFzc2VzKTsKKyAgICAgICAgICAgIGxsdm0tPkFkZENGR1NpbXBsaWZpY2F0aW9uUGFzcyhtb2R1
bGVQYXNzZXMpOworICAgICAgICAgICAgbGx2bS0+UnVuUGFzc01hbmFnZXIobW9kdWxlUGFzc2Vz
LCBzdGF0ZS5tb2R1bGUpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgTExWTVBhc3NN
YW5hZ2VyQnVpbGRlclJlZiBwYXNzQnVpbGRlciA9IGxsdm0tPlBhc3NNYW5hZ2VyQnVpbGRlckNy
ZWF0ZSgpOworICAgICAgICAgICAgbGx2bS0+UGFzc01hbmFnZXJCdWlsZGVyU2V0T3B0TGV2ZWwo
cGFzc0J1aWxkZXIsIE9wdGlvbnM6Omxsdm1PcHRpbWl6YXRpb25MZXZlbCgpKTsKKyAgICAgICAg
ICAgIGxsdm0tPlBhc3NNYW5hZ2VyQnVpbGRlclNldFNpemVMZXZlbChwYXNzQnVpbGRlciwgT3B0
aW9uczo6bGx2bVNpemVMZXZlbCgpKTsKKyAgICAgICAgCisgICAgICAgICAgICBmdW5jdGlvblBh
c3NlcyA9IGxsdm0tPkNyZWF0ZUZ1bmN0aW9uUGFzc01hbmFnZXJGb3JNb2R1bGUoc3RhdGUubW9k
dWxlKTsKKyAgICAgICAgICAgIG1vZHVsZVBhc3NlcyA9IGxsdm0tPkNyZWF0ZVBhc3NNYW5hZ2Vy
KCk7CisgICAgICAgIAorICAgICAgICAgICAgbGx2bS0+QWRkVGFyZ2V0RGF0YShsbHZtLT5HZXRF
eGVjdXRpb25FbmdpbmVUYXJnZXREYXRhKGVuZ2luZSksIG1vZHVsZVBhc3Nlcyk7CisgICAgICAg
IAorICAgICAgICAgICAgbGx2bS0+UGFzc01hbmFnZXJCdWlsZGVyUG9wdWxhdGVGdW5jdGlvblBh
c3NNYW5hZ2VyKHBhc3NCdWlsZGVyLCBmdW5jdGlvblBhc3Nlcyk7CisgICAgICAgICAgICBsbHZt
LT5QYXNzTWFuYWdlckJ1aWxkZXJQb3B1bGF0ZU1vZHVsZVBhc3NNYW5hZ2VyKHBhc3NCdWlsZGVy
LCBtb2R1bGVQYXNzZXMpOworICAgICAgICAKKyAgICAgICAgICAgIGxsdm0tPlBhc3NNYW5hZ2Vy
QnVpbGRlckRpc3Bvc2UocGFzc0J1aWxkZXIpOworICAgICAgICAKKyAgICAgICAgICAgIGxsdm0t
PkluaXRpYWxpemVGdW5jdGlvblBhc3NNYW5hZ2VyKGZ1bmN0aW9uUGFzc2VzKTsKKyAgICAgICAg
ICAgIGZvciAoTFZhbHVlIGZ1bmN0aW9uID0gbGx2bS0+R2V0Rmlyc3RGdW5jdGlvbihzdGF0ZS5t
b2R1bGUpOyBmdW5jdGlvbjsgZnVuY3Rpb24gPSBsbHZtLT5HZXROZXh0RnVuY3Rpb24oZnVuY3Rp
b24pKQorICAgICAgICAgICAgICAgIGxsdm0tPlJ1bkZ1bmN0aW9uUGFzc01hbmFnZXIoZnVuY3Rp
b25QYXNzZXMsIGZ1bmN0aW9uKTsKKyAgICAgICAgICAgIGxsdm0tPkZpbmFsaXplRnVuY3Rpb25Q
YXNzTWFuYWdlcihmdW5jdGlvblBhc3Nlcyk7CisgICAgICAgIAorICAgICAgICAgICAgbGx2bS0+
UnVuUGFzc01hbmFnZXIobW9kdWxlUGFzc2VzLCBzdGF0ZS5tb2R1bGUpOworICAgICAgICB9CisK
KyAgICAgICAgaWYgKERGRzo6c2hvdWxkU2hvd0Rpc2Fzc2VtYmx5KCkgfHwgREZHOjp2ZXJib3Nl
Q29tcGlsYXRpb25FbmFibGVkKCkpCisgICAgICAgICAgICBzdGF0ZS5kdW1wU3RhdGUoImFmdGVy
IG9wdGltaXphdGlvbiIpOworICAgIAorICAgICAgICAvLyBGSVhNRTogTmVlZCB0byBhZGQgc3Vw
cG9ydCBmb3IgdGhlIGNhc2Ugd2hlcmUgSklUIG1lbW9yeSBhbGxvY2F0aW9uIGZhaWxlZC4KKyAg
ICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMzYyMAor
ICAgICAgICBzdGF0ZS5nZW5lcmF0ZWRGdW5jdGlvbiA9IHJlaW50ZXJwcmV0X2Nhc3Q8R2VuZXJh
dGVkRnVuY3Rpb24+KGxsdm0tPkdldFBvaW50ZXJUb0dsb2JhbChlbmdpbmUsIHN0YXRlLmZ1bmN0
aW9uKSk7CisgICAgICAgIGlmIChmdW5jdGlvblBhc3NlcykKKyAgICAgICAgICAgIGxsdm0tPkRp
c3Bvc2VQYXNzTWFuYWdlcihmdW5jdGlvblBhc3Nlcyk7CisgICAgICAgIGxsdm0tPkRpc3Bvc2VQ
YXNzTWFuYWdlcihtb2R1bGVQYXNzZXMpOworICAgICAgICBsbHZtLT5EaXNwb3NlRXhlY3V0aW9u
RW5naW5lKGVuZ2luZSk7CisgICAgfQogCiAgICAgaWYgKHNob3VsZFNob3dEaXNhc3NlbWJseSgp
KSB7CiAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBzdGF0ZS5qaXRDb2RlLT5oYW5k
bGVzKCkuc2l6ZSgpOyArK2kpIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRM
T1NSRXhpdENvbXBpbGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZnRsL0ZUTE9TUkV4aXRDb21waWxlci5jcHAJKHJldmlzaW9uIDE2MzY5NSkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9mdGwvRlRMT1NSRXhpdENvbXBpbGVyLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIkZUTEpJVENvZGUuaCIKICNpbmNsdWRlICJGVExP
U1JFeGl0LmgiCiAjaW5jbHVkZSAiRlRMU2F2ZVJlc3RvcmUuaCIKKyNpbmNsdWRlICJMaW5rQnVm
ZmVyLmgiCiAjaW5jbHVkZSAiTWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwuaCIKICNpbmNs
dWRlICJPcGVyYW5kc0lubGluZXMuaCIKICNpbmNsdWRlICJPcGVyYXRpb25zLmgiCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFRodW5rcy5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExUaHVua3MuY3BwCShyZXZpc2lvbiAxNjM2OTUpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFRodW5rcy5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTEyNyw3ICsxMjcsNyBAQCBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgc2xvd1BhdGhDYWxsVGh1
bmtHCiAgICAgaml0LnByZXNlcnZlUmV0dXJuQWRkcmVzc0FmdGVyQ2FsbChHUFJJbmZvOjpub25B
cmdHUFIwKTsKICAgICBqaXQuc3RvcmVQdHIoR1BSSW5mbzo6bm9uQXJnR1BSMCwgQXNzZW1ibHlI
ZWxwZXJzOjpBZGRyZXNzKE1hY3JvQXNzZW1ibGVyOjpzdGFja1BvaW50ZXJSZWdpc3Rlciwga2V5
Lm9mZnNldCgpKSk7CiAgICAgCi0gICAgSklUQ29tcGlsZXI6OkNhbGwgY2FsbCA9IGppdC5jYWxs
KCk7CisgICAgQXNzZW1ibHlIZWxwZXJzOjpDYWxsIGNhbGwgPSBqaXQuY2FsbCgpOwogCiAgICAg
Ly8gRklYTUU6IENTdGFjayAtIE5lZWQgdG8gZG8gc29tZXRoaW5nIGxpa2Ugaml0LmVtaXRGdW5j
dGlvbkVwaWxvZ3VlKCk7CiAgICAgaml0LmxvYWRQdHIoQXNzZW1ibHlIZWxwZXJzOjpBZGRyZXNz
KE1hY3JvQXNzZW1ibGVyOjpzdGFja1BvaW50ZXJSZWdpc3Rlciwga2V5Lm9mZnNldCgpKSwgR1BS
SW5mbzo6bm9uUHJlc2VydmVkTm9uUmV0dXJuR1BSKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9oZWFwL1Nsb3RWaXNpdG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2hlYXAvU2xvdFZpc2l0b3IuaAkocmV2aXNpb24gMTYzNjk1KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2hlYXAvU2xvdFZpc2l0b3IuaAkod29ya2luZyBjb3B5KQpAQCAtNjgsNiArNjgs
OSBAQCBwdWJsaWM6CiAgICAgdm9pZCBhcHBlbmRVbmJhcnJpZXJlZFZhbHVlKEpTVmFsdWUqKTsK
ICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgogICAgIHZvaWQgYXBwZW5kVW5iYXJyaWVyZWRXZWFr
KFdlYWs8VD4qKTsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorICAgIHZvaWQgYXBwZW5kVW5i
YXJyaWVyZWRSZWFkT25seVBvaW50ZXIoVCopOworICAgIHZvaWQgYXBwZW5kVW5iYXJyaWVyZWRS
ZWFkT25seVZhbHVlKEpTVmFsdWUpOwogICAgIHZvaWQgdW5jb25kaXRpb25hbGx5QXBwZW5kKEpT
Q2VsbCopOwogICAgIAogICAgIHZvaWQgYWRkT3BhcXVlUm9vdCh2b2lkKik7CkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TbG90VmlzaXRvcklubGluZXMuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TbG90VmlzaXRvcklubGluZXMuaAkocmV2aXNp
b24gMTYzNjk1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvU2xvdFZpc2l0b3JJbmxp
bmVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTUxLDYgKzUxLDEyIEBAIGlubGluZSB2b2lkIFNsb3RW
aXNpdG9yOjphcHBlbmRVbmJhcnJpZXIKICAgICBpbnRlcm5hbEFwcGVuZChzbG90LCBjZWxsKTsK
IH0KIAordGVtcGxhdGU8dHlwZW5hbWUgVD4KK2lubGluZSB2b2lkIFNsb3RWaXNpdG9yOjphcHBl
bmRVbmJhcnJpZXJlZFJlYWRPbmx5UG9pbnRlcihUKiBjZWxsKQoreworICAgIGludGVybmFsQXBw
ZW5kKDAsIGNlbGwpOworfQorCiBBTFdBWVNfSU5MSU5FIHZvaWQgU2xvdFZpc2l0b3I6OmFwcGVu
ZChKU1ZhbHVlKiBzbG90KQogewogICAgIEFTU0VSVChzbG90KTsKQEAgLTYzLDYgKzY5LDExIEBA
IEFMV0FZU19JTkxJTkUgdm9pZCBTbG90VmlzaXRvcjo6YXBwZW5kVW4KICAgICBpbnRlcm5hbEFw
cGVuZChzbG90LCAqc2xvdCk7CiB9CiAKK0FMV0FZU19JTkxJTkUgdm9pZCBTbG90VmlzaXRvcjo6
YXBwZW5kVW5iYXJyaWVyZWRSZWFkT25seVZhbHVlKEpTVmFsdWUgdmFsdWUpCit7CisgICAgaW50
ZXJuYWxBcHBlbmQoMCwgdmFsdWUpOworfQorCiBBTFdBWVNfSU5MSU5FIHZvaWQgU2xvdFZpc2l0
b3I6OmFwcGVuZChKU0NlbGwqKiBzbG90KQogewogICAgIEFTU0VSVChzbG90KTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>223637</attachid>
            <date>2014-02-09 12:11:13 -0800</date>
            <delta_ts>2014-02-09 12:22:29 -0800</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>74848</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTYzNzUyKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEwMyBA
QAorMjAxNC0wMi0wOSAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgorCisgICAgICAg
IEdDIGJsb2NrcyBvbiBGVEwgYW5kIHRoZW4gYmFkbmVzcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI4MjkxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisgICAgICAgIAorICAgICAgICBJbnRyb2R1Y2UgdGhlIG5vdGlvbiBv
ZiBhIERGRzo6U2FmZXBvaW50LCB3aGljaCBhbGxvd3MgeW91IHRvIHVubG9jayB0aGUgcmlnaHRU
b1J1bgorICAgICAgICBtdXRleCBmb3IgeW91ciBKSVQgdGhyZWFkLCB3aGlsZSBzdXBwbHlpbmcg
dGhlIEdDIHdpdGggYWxsIG9mIHRoZSBpbmZvcm1hdGlvbiBpdCB3b3VsZAorICAgICAgICBuZWVk
IHRvIHNjYW4geW91IGF0IHRoYXQgbW9tZW50IGluIHRpbWUuIFRoZSBkZWZhdWx0IHdheSBvZiB1
c2luZyB0aGlzIGlzCisgICAgICAgIERGRzo6R3JhcGhTYWZlcG9pbnQsIHdoZXJlIHlvdSBqdXN0
IHN1cHBseSB0aGUgR3JhcGguIFRoZXJlJ3MgYSBsb3Qgb2YgbWFjaGluZXJ5IGluCisgICAgICAg
IHRoaXMgcGF0Y2gganVzdCB0byBtYWtlIHRoZSBHcmFwaCBzY2FubmFibGUuCisgICAgICAgIAor
ICAgICAgICBXZSB0aGVuIHVzZSBERkc6OkdyYXBoU2FmZXBvaW50IGluIGp1c3QgdHdvIHBsYWNl
cyBmb3Igbm93OiAoMSkgd2hpbGUgaW5pdGlhbGl6aW5nIExMVk0KKyAgICAgICAgYW5kICgyKSB3
aGlsZSBpbnZva2luZyBMTFZNJyBvcHRpbWl6ZXIgYW5kIGJhY2tlbmQuCisgICAgICAgIAorICAg
ICAgICBNYWtpbmcgdGhpcyBjaGFuZ2Ugd2FzIGRpZmZpY3VsdCBiZWNhdXNlIEkgcmFuIGludG8g
dGhlIGxpbWl0cyBvZiBvdXIgbGFjayBvZiBoZWFkZXIKKyAgICAgICAgZmlsZSBkaXNjaXBsaW5l
LiBFdmVuIHRob3VnaCBPcGVyYXRpb25zLmggaXMgbWVhbnQgdG8gYmUgdGhlIHRoaW5nIHRoYXQg
aXMgb25seQorICAgICAgICBpbmNsdWRlZCBmcm9tIC5jcHAgZmlsZXMsIGl0IHdhcyBpbmNsdWRl
ZCBmcm9tIENvZGVCbG9jay5oLiBTaW1pbGFybHksCisgICAgICAgIENhbGxGcmFtZUlubGluZXMu
aCB3YXMgaW5jbHVkZWQgZnJvbSBERkdKSVRDb21waWxlci5oLiBUaGVuLCBDYWxsTGlua0luZm8u
aCBpbmNsdWRlZAorICAgICAgICBERkdHcmFwaC5oLiBJdCB3YXMgYSB0b3RhbCBtZXNzLiBJIHVu
cmF2ZWxlZCB0aGlzIG1lc3MgdG8gZ2V0IG15IGNvZGUgdG8gYnVpbGQuCisKKyAgICAgICAgKiBB
UEkvSlNDb250ZXh0UmVmLmNwcDoKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAg
KiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnZjeHByb2ov
SmF2YVNjcmlwdENvcmUudmN4cHJvajoKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGJ5dGVjb2RlL0NvZGVCbG9jay5jcHA6Cisg
ICAgICAgICogYnl0ZWNvZGUvQ29kZUJsb2NrLmg6CisgICAgICAgICogYnl0ZWNvZGUvUHJvZmls
ZWRDb2RlQmxvY2tKZXR0aXNvbmluZ1dhdGNocG9pbnQuY3BwOgorICAgICAgICAqIGRlYnVnZ2Vy
L0RlYnVnZ2VyQ2FsbEZyYW1lLmNwcDoKKyAgICAgICAgKiBkZmcvREZHRGVzaXJlZFRyYW5zaXRp
b25zLmNwcDoKKyAgICAgICAgKiBkZmcvREZHRHJpdmVyLmNwcDoKKyAgICAgICAgKEpTQzo6REZH
Ojpjb21waWxlSW1wbCk6CisgICAgICAgICogZGZnL0RGR0dyYXBoLmNwcDoKKyAgICAgICAgKEpT
Qzo6REZHOjpHcmFwaDo6dmlzaXRDaGlsZHJlbik6CisgICAgICAgICogZGZnL0RGR0dyYXBoLmg6
CisgICAgICAgICogZGZnL0RGR0dyYXBoU2FmZXBvaW50LmNwcDogQWRkZWQuCisgICAgICAgIChK
U0M6OkRGRzo6R3JhcGhTYWZlcG9pbnQ6OkdyYXBoU2FmZXBvaW50KToKKyAgICAgICAgKEpTQzo6
REZHOjpHcmFwaFNhZmVwb2ludDo6fkdyYXBoU2FmZXBvaW50KToKKyAgICAgICAgKiBkZmcvREZH
R3JhcGhTYWZlcG9pbnQuaDogQWRkZWQuCisgICAgICAgICogZGZnL0RGR0pJVENvZGUuY3BwOgor
ICAgICAgICAqIGRmZy9ERkdKSVRDb21waWxlci5jcHA6CisgICAgICAgICogZGZnL0RGR0pJVENv
bXBpbGVyLmg6CisgICAgICAgICogZGZnL0RGR09TUkV4aXRDb21waWxlckNvbW1vbi5jcHA6Cisg
ICAgICAgICogZGZnL0RGR09wZXJhdGlvbnMuY3BwOgorICAgICAgICAqIGRmZy9ERkdPcGVyYXRp
b25zLmg6CisgICAgICAgICogZGZnL0RGR1BsYW4uY3BwOgorICAgICAgICAoSlNDOjpERkc6OlBs
YW46OmNvbXBpbGVJblRocmVhZCk6CisgICAgICAgIChKU0M6OkRGRzo6UGxhbjo6Y29tcGlsZUlu
VGhyZWFkSW1wbCk6CisgICAgICAgICogZGZnL0RGR1BsYW4uaDoKKyAgICAgICAgKiBkZmcvREZH
U2FmZXBvaW50LmNwcDogQWRkZWQuCisgICAgICAgIChKU0M6OkRGRzo6U2FmZXBvaW50OjpTYWZl
cG9pbnQpOgorICAgICAgICAoSlNDOjpERkc6OlNhZmVwb2ludDo6flNhZmVwb2ludCk6CisgICAg
ICAgIChKU0M6OkRGRzo6U2FmZXBvaW50OjphZGQpOgorICAgICAgICAoSlNDOjpERkc6OlNhZmVw
b2ludDo6YmVnaW4pOgorICAgICAgICAoSlNDOjpERkc6OlNhZmVwb2ludDo6dmlzaXRDaGlsZHJl
bik6CisgICAgICAgICogZGZnL0RGR1NhZmVwb2ludC5oOiBBZGRlZC4KKyAgICAgICAgKiBkZmcv
REZHU2Nhbm5hYmxlLmg6IEFkZGVkLgorICAgICAgICAoSlNDOjpERkc6OlNjYW5uYWJsZTo6U2Nh
bm5hYmxlKToKKyAgICAgICAgKEpTQzo6REZHOjpTY2FubmFibGU6On5TY2FubmFibGUpOgorICAg
ICAgICAqIGRmZy9ERkdUaHJlYWREYXRhLmNwcDogQWRkZWQuCisgICAgICAgIChKU0M6OkRGRzo6
VGhyZWFkRGF0YTo6VGhyZWFkRGF0YSk6CisgICAgICAgIChKU0M6OkRGRzo6VGhyZWFkRGF0YTo6
flRocmVhZERhdGEpOgorICAgICAgICAqIGRmZy9ERkdUaHJlYWREYXRhLmg6IEFkZGVkLgorICAg
ICAgICAqIGRmZy9ERkdUaHVua3MuY3BwOgorICAgICAgICAqIGRmZy9ERkdXb3JrbGlzdC5jcHA6
CisgICAgICAgIChKU0M6OkRGRzo6V29ya2xpc3Q6OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAg
KEpTQzo6REZHOjpXb3JrbGlzdDo6dmlzaXRDaGlsZHJlbik6CisgICAgICAgIChKU0M6OkRGRzo6
V29ya2xpc3Q6OnJ1blRocmVhZCk6CisgICAgICAgICogZGZnL0RGR1dvcmtsaXN0Lmg6CisgICAg
ICAgICogZnRsL0ZUTENvbXBpbGUuY3BwOgorICAgICAgICAoSlNDOjpGVEw6OmNvbXBpbGUpOgor
ICAgICAgICAqIGZ0bC9GVExMaW5rLmNwcDoKKyAgICAgICAgKiBmdGwvRlRMT1NSRXhpdENvbXBp
bGVyLmNwcDoKKyAgICAgICAgKiBmdGwvRlRMU2xvd1BhdGhDYWxsLmNwcDoKKyAgICAgICAgKiBm
dGwvRlRMVGh1bmtzLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpzbG93UGF0aENhbGxUaHVua0dl
bmVyYXRvcik6CisgICAgICAgICogaGVhcC9TbG90VmlzaXRvci5oOgorICAgICAgICAqIGhlYXAv
U2xvdFZpc2l0b3JJbmxpbmVzLmg6CisgICAgICAgIChKU0M6OlNsb3RWaXNpdG9yOjphcHBlbmRV
bmJhcnJpZXJlZFJlYWRPbmx5UG9pbnRlcik6CisgICAgICAgIChKU0M6OlNsb3RWaXNpdG9yOjph
cHBlbmRVbmJhcnJpZXJlZFJlYWRPbmx5VmFsdWUpOgorICAgICAgICAqIGluc3BlY3Rvci9TY3Jp
cHRDYWxsU3RhY2tGYWN0b3J5LmNwcDoKKyAgICAgICAgKiBpbnRlcnByZXRlci9Qcm90b0NhbGxG
cmFtZS5jcHA6CisgICAgICAgICogaml0L0pJVEV4Y2VwdGlvbnMuY3BwOgorICAgICAgICAqIGpp
dC9KSVRJbmxpbmVzLmg6CisgICAgICAgICogaml0L0pJVE9wZXJhdGlvbnMuY3BwOgorICAgICAg
ICAqIGppdC9SZXBhdGNoLmNwcDoKKyAgICAgICAgKiBqc2MuY3BwOgorICAgICAgICAqIHByb2Zp
bGVyL1Byb2ZpbGVHZW5lcmF0b3IuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvQXJndW1lbnRzLmNw
cDoKKyAgICAgICAgKiBydW50aW1lL0FyZ3VtZW50c0l0ZXJhdG9yUHJvdG90eXBlLmNwcDoKKyAg
ICAgICAgKiBydW50aW1lL0NvbW1vblNsb3dQYXRoc0V4Y2VwdGlvbnMuY3BwOgorICAgICAgICAq
IHJ1bnRpbWUvSlNBcmd1bWVudHNJdGVyYXRvci5jcHA6CisgICAgICAgICogcnVudGltZS9KU0Z1
bmN0aW9uLmNwcDoKKyAgICAgICAgKiBydW50aW1lL0pTR2xvYmFsT2JqZWN0RnVuY3Rpb25zLmNw
cDoKKyAgICAgICAgKiBydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKiBy
dW50aW1lL09wZXJhdGlvbnMuaDoKKyAgICAgICAgKiBydW50aW1lL1ZNLmNwcDoKKwogMjAxNC0w
Mi0wOSAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgogCiAgICAgICAgIENv
bnZlcnQgc29tZSBKU0MgY29kZSBvdmVyIHRvIHN0ZDo6bXV0ZXgKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ01ha2VMaXN0cy50eHQJKHJldmlzaW9uIDE2MzY5NSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9DTWFrZUxpc3RzLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMTM4LDYgKzEzOCw3IEBA
IHNldChKYXZhU2NyaXB0Q29yZV9TT1VSQ0VTCiAgICAgZGZnL0RGR0ZsdXNoTGl2ZW5lc3NBbmFs
eXNpc1BoYXNlLmNwcAogICAgIGRmZy9ERkdGbHVzaGVkQXQuY3BwCiAgICAgZGZnL0RGR0dyYXBo
LmNwcAorICAgIGRmZy9ERkdHcmFwaFNhZmVwb2ludC5jcHAKICAgICBkZmcvREZHSW5QbGFjZUFi
c3RyYWN0U3RhdGUuY3BwCiAgICAgZGZnL0RGR0ludmFsaWRhdGlvblBvaW50SW5qZWN0aW9uUGhh
c2UuY3BwCiAgICAgZGZnL0RGR0pJVENvZGUuY3BwCkBAIC0xNzIsMTIgKzE3MywxNCBAQCBzZXQo
SmF2YVNjcmlwdENvcmVfU09VUkNFUwogICAgIGRmZy9ERkdSZXN1cnJlY3Rpb25Gb3JWYWxpZGF0
aW9uUGhhc2UuY3BwCiAgICAgZGZnL0RGR1NTQUNvbnZlcnNpb25QaGFzZS5jcHAKICAgICBkZmcv
REZHU1NBTG93ZXJpbmdQaGFzZS5jcHAKKyAgICBkZmcvREZHU2FmZXBvaW50LmNwcAogICAgIGRm
Zy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKICAgICBkZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5j
cHAKICAgICBkZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKICAgICBkZmcvREZHU3RhY2tMYXlv
dXRQaGFzZS5jcHAKICAgICBkZmcvREZHU3RvcmVCYXJyaWVyRWxpc2lvblBoYXNlLmNwcAogICAg
IGRmZy9ERkdTdHJlbmd0aFJlZHVjdGlvblBoYXNlLmNwcAorICAgIGRmZy9ERkdUaHJlYWREYXRh
LmNwcAogICAgIGRmZy9ERkdUaHVua3MuY3BwCiAgICAgZGZnL0RGR1RpZXJVcENoZWNrSW5qZWN0
aW9uUGhhc2UuY3BwCiAgICAgZGZnL0RGR1R5cGVDaGVja0hvaXN0aW5nUGhhc2UuY3BwCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvR05VbWFrZWZpbGUubGlzdC5hbQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvR05VbWFrZWZpbGUubGlzdC5hbQkocmV2aXNpb24gMTYz
Njk1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0JKHdvcmtp
bmcgY29weSkKQEAgLTMwNCw2ICszMDQsOCBAQCBqYXZhc2NyaXB0Y29yZV9zb3VyY2VzICs9IFwK
IAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dlbmVyYXRpb25JbmZvLmggXAogCVNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguY3BwIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0dyYXBoLmggXAorCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGhT
YWZlcG9pbnQuY3BwIFwKKwlTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoU2FmZXBv
aW50LmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSW5QbGFjZUFic3RyYWN0U3Rh
dGUuY3BwIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0luUGxhY2VBYnN0cmFjdFN0
YXRlLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSW5saW5lQ2FjaGVXcmFwcGVy
LmggXApAQCAtMzc3LDcgKzM3OSwxMCBAQCBqYXZhc2NyaXB0Y29yZV9zb3VyY2VzICs9IFwKIAlT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Jlc3VycmVjdGlvbkZvclZhbGlkYXRpb25QaGFz
ZS5jcHAgXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUmVzdXJyZWN0aW9uRm9yVmFs
aWRhdGlvblBoYXNlLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZVRvRXhl
Y3V0ZS5oIFwKKwlTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVwb2ludC5jcHAgXAor
CVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZXBvaW50LmggXAogCVNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHU2FuZVN0cmluZ0dldEJ5VmFsU2xvd1BhdGhHZW5lcmF0b3IuaCBc
CisJU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTY2FubmFibGUuaCBcCiAJU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdTY29yZUJvYXJkLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHU2lsZW50UmVnaXN0ZXJTYXZlUGxhbi5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1Nsb3dQYXRoR2VuZXJhdG9yLmggXApAQCAtMzk4LDYgKzQwMyw4IEBAIGphdmFz
Y3JpcHRjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3Ry
dWN0dXJlQWJzdHJhY3RWYWx1ZS5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Rp
ZXJVcENoZWNrSW5qZWN0aW9uUGhhc2UuY3BwIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1RpZXJVcENoZWNrSW5qZWN0aW9uUGhhc2UuaCBcCisJU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdUaHJlYWREYXRhLmNwcCBcCisJU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdU
aHJlYWREYXRhLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVGh1bmtzLmNwcCBc
CiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdUaHVua3MuaCBcCiAJU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdUb0ZUTERlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjay5jcHAgXApJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2pzYy5jcHAJKHJldmlzaW9uIDE2MzY5NSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qc2MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNSw3ICsyNSw2IEBACiAjaW5j
bHVkZSAiQVBJU2hpbXMuaCIKICNpbmNsdWRlICJCdXR0ZXJmbHlJbmxpbmVzLmgiCiAjaW5jbHVk
ZSAiQnl0ZWNvZGVHZW5lcmF0b3IuaCIKLSNpbmNsdWRlICJDYWxsRnJhbWVJbmxpbmVzLmgiCiAj
aW5jbHVkZSAiQ29tcGxldGlvbi5oIgogI2luY2x1ZGUgIkNvcGllZFNwYWNlSW5saW5lcy5oIgog
I2luY2x1ZGUgIkV4Y2VwdGlvbkhlbHBlcnMuaCIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9BUEkvSlNDb250ZXh0UmVmLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvQVBJL0pTQ29udGV4dFJlZi5jcHAJKHJldmlzaW9uIDE2MzY5NSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9BUEkvSlNDb250ZXh0UmVmLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjksNyAr
MjksNiBAQAogCiAjaW5jbHVkZSAiQVBJQ2FzdC5oIgogI2luY2x1ZGUgIkNhbGxGcmFtZS5oIgot
I2luY2x1ZGUgIkNhbGxGcmFtZUlubGluZXMuaCIKICNpbmNsdWRlICJJbml0aWFsaXplVGhyZWFk
aW5nLmgiCiAjaW5jbHVkZSAiSlNDYWxsYmFja09iamVjdC5oIgogI2luY2x1ZGUgIkpTQ2xhc3NS
ZWYuaCIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9q
L0phdmFTY3JpcHRDb3JlLnZjeHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL0phdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvagkocmV2aXNp
b24gMTYzNjk1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjeHBy
b2ovSmF2YVNjcmlwdENvcmUudmN4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMzkyLDYgKzM5Miw3
IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxkZmdcREZHRmx1c2hGb3JtYXQuY3BwIiAv
PgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZGZnXERGR0ZsdXNoTGl2ZW5lc3NBbmFseXNp
c1BoYXNlLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGRmZ1xERkdHcmFwaC5j
cHAiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxkZmdcREZHR3JhcGhTYWZlcG9pbnQu
Y3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZGZnXERGR0luUGxhY2VBYnN0cmFj
dFN0YXRlLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGRmZ1xERkdJbnZhbGlk
YXRpb25Qb2ludEluamVjdGlvblBoYXNlLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9
Ii4uXGRmZ1xERkdKSVRDb2RlLmNwcCIgLz4KQEAgLTQyNCw2ICs0MjUsNyBAQAogICAgIDxDbENv
bXBpbGUgSW5jbHVkZT0iLi5cZGZnXERGR1ByZWRpY3Rpb25JbmplY3Rpb25QaGFzZS5jcHAiIC8+
CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxkZmdcREZHUHJlZGljdGlvblByb3BhZ2F0aW9u
UGhhc2UuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZGZnXERGR1Jlc3VycmVj
dGlvbkZvclZhbGlkYXRpb25QaGFzZS5jcHAiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIu
LlxkZmdcREZHU2FmZXBvaW50LmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGRm
Z1xERkdTcGVjdWxhdGl2ZUpJVC5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxk
ZmdcREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRl
PSIuLlxkZmdcREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAiIC8+CkBAIC00MzIsNiArNDM0LDcgQEAK
ICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGRmZ1xERkdTdGFja0xheW91dFBoYXNlLmNwcCIg
Lz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGRmZ1xERkdTdG9yZUJhcnJpZXJFbGlzaW9u
UGhhc2UuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZGZnXERGR1N0cmVuZ3Ro
UmVkdWN0aW9uUGhhc2UuY3BwIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZGZnXERG
R1RocmVhZERhdGEuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZGZnXERGR1Ro
dW5rcy5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxkZmdcREZHVGllclVwQ2hl
Y2tJbmplY3Rpb25QaGFzZS5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxkZmdc
REZHVG9GVExEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2suY3BwIiAvPgpAQCAtOTI5LDYgKzkz
Miw3IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxkZmdcREZHR2VuZXJhdGlvbkluZm8u
aCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGRmZ1xERkdHUFJJbmZvLmgiIC8+CiAg
ICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxkZmdcREZHR3JhcGguaCIgLz4KKyAgICA8Q2xJbmNs
dWRlIEluY2x1ZGU9Ii4uXGRmZ1xERkdHcmFwaFNhZmVwb2ludC5oIiAvPgogICAgIDxDbEluY2x1
ZGUgSW5jbHVkZT0iLi5cZGZnXERGR0luUGxhY2VBYnN0cmFjdFN0YXRlLmgiIC8+CiAgICAgPENs
SW5jbHVkZSBJbmNsdWRlPSIuLlxkZmdcREZHSW5zZXJ0aW9uU2V0LmgiIC8+CiAgICAgPENsSW5j
bHVkZSBJbmNsdWRlPSIuLlxkZmdcREZHSW52YWxpZGF0aW9uUG9pbnRJbmplY3Rpb25QaGFzZS5o
IiAvPgpAQCAtOTY5LDcgKzk3Myw5IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxkZmdc
REZHUmVnaXN0ZXJTZXQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGRmZ1xERkdS
ZXN1cnJlY3Rpb25Gb3JWYWxpZGF0aW9uUGhhc2UuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXGRmZ1xERkdTYWZlVG9FeGVjdXRlLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRl
PSIuLlxkZmdcREZHU2FmZXBvaW50LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxk
ZmdcREZHU2FuZVN0cmluZ0dldEJ5VmFsU2xvd1BhdGhHZW5lcmF0b3IuaCIgLz4KKyAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXGRmZ1xERkdTY2FubmFibGUuaCIgLz4KICAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXGRmZ1xERkdTY29yZUJvYXJkLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlxkZmdcREZHU2NyYXRjaFJlZ2lzdGVyQWxsb2NhdG9yLmgiIC8+CiAgICAgPENsSW5j
bHVkZSBJbmNsdWRlPSIuLlxkZmdcREZHU2lsZW50UmVnaXN0ZXJTYXZlUGxhbi5oIiAvPgpAQCAt
OTgxLDYgKzk4Nyw3IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxkZmdcREZHU3RvcmVC
YXJyaWVyRWxpc2lvblBoYXNlLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxkZmdc
REZHU3RyZW5ndGhSZWR1Y3Rpb25QaGFzZS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0i
Li5cZGZnXERGR1N0cnVjdHVyZUFic3RyYWN0VmFsdWUuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIElu
Y2x1ZGU9Ii4uXGRmZ1xERkdUaHJlYWREYXRhLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRl
PSIuLlxkZmdcREZHVGh1bmtzLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxkZmdc
REZHVGllclVwQ2hlY2tJbmplY3Rpb25QaGFzZS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVk
ZT0iLi5cZGZnXERGR1RvRlRMRGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrLmgiIC8+CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMTYzNjk1KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJ
KHdvcmtpbmcgY29weSkKQEAgLTIwMiw2ICsyMDIsMTMgQEAKIAkJMEYyRTg5MkQxNkQwMkJBRjAw
OUU0RkQyIC8qIERGR01pbmlmaWVkSUQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDBGQjRCNTEwMTZCM0E5NjQwMDNGNjk2QiAvKiBERkdNaW5pZmllZElE
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEYy
RkM3NzIxNkUxMkY3MTAwMzhEOTc2IC8qIERGR0RDRVBoYXNlLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMkZDNzcwMTZFMTJGNkYwMDM4RDk3NiAv
KiBERkdEQ0VQaGFzZS5jcHAgKi87IH07CiAJCTBGMkZDNzczMTZFMTJGNzQwMDM4RDk3NiAvKiBE
RkdEQ0VQaGFzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMEYyRkM3NzExNkUxMkY2RjAwMzhEOTc2IC8qIERGR0RDRVBoYXNlLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMEYyRkNDRjkxOEE2MDA3MDAw
MUEyN0Y4IC8qIERGR0dyYXBoU2FmZXBvaW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMkZDQ0YyMThBNjAwNzAwMDFBMjdGOCAvKiBERkdHcmFw
aFNhZmVwb2ludC5jcHAgKi87IH07CisJCTBGMkZDQ0ZBMThBNjAwNzAwMDFBMjdGOCAvKiBERkdH
cmFwaFNhZmVwb2ludC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMEYyRkNDRjMxOEE2MDA3MDAwMUEyN0Y4IC8qIERGR0dyYXBoU2FmZXBvaW50LmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMEYyRkNDRkIx
OEE2MDA3MDAwMUEyN0Y4IC8qIERGR1NhZmVwb2ludC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjJGQ0NGNDE4QTYwMDcwMDAxQTI3RjggLyogREZH
U2FmZXBvaW50LmNwcCAqLzsgfTsKKwkJMEYyRkNDRkMxOEE2MDA3MDAwMUEyN0Y4IC8qIERGR1Nh
ZmVwb2ludC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MEYyRkNDRjUxOEE2MDA3MDAwMUEyN0Y4IC8qIERGR1NhZmVwb2ludC5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTBGMkZDQ0ZEMThBNjAwNzAwMDFB
MjdGOCAvKiBERkdTY2FubmFibGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDBGMkZDQ0Y2MThBNjAwNzAwMDFBMjdGOCAvKiBERkdTY2FubmFibGUuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkwRjJGQ0NG
RTE4QTYwMDcwMDAxQTI3RjggLyogREZHVGhyZWFkRGF0YS5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjJGQ0NGNzE4QTYwMDcwMDAxQTI3RjggLyog
REZHVGhyZWFkRGF0YS5jcHAgKi87IH07CisJCTBGMkZDQ0ZGMThBNjAwNzAwMDFBMjdGOCAvKiBE
RkdUaHJlYWREYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwRjJGQ0NGODE4QTYwMDcwMDAxQTI3RjggLyogREZHVGhyZWFkRGF0YS5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGMzRCMTQ5MTZENDIw
MTAwMDFDREE1QSAvKiBERkdVc2VLaW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDBGMzRCMTQ3MTZENDIwMEUwMDFDREE1QSAvKiBERkdVc2VLaW5k
LmNwcCAqLzsgfTsKIAkJMEYzNEIxNEExNkQ0MjAxMzAwMUNEQTVBIC8qIERGR1VzZUtpbmQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMzRCMTQ4MTZE
NDIwMEUwMDFDREE1QSAvKiBERkdVc2VLaW5kLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEYzNEIxNEMxNkQ0M0UwRDAwMUNEQTVBIC8qIFBvbHlt
b3JwaGljQWNjZXNzU3RydWN0dXJlTGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMEYzNEIxNEIxNkQ0M0UwQzAwMUNEQTVBIC8qIFBvbHltb3JwaGlj
QWNjZXNzU3RydWN0dXJlTGlzdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CkBAIC0xMzUxLDcgKzEzNTgsNyBAQAogCQlDMjk4MUZERDE3QkFGRjQ0MDBB
M0JDOTggLyogREZHRGVzaXJlZFdyaXRlQmFycmllcnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyOTgxRkRCMTdCQUZGNDQwMEEzQkM5OCAvKiBERkdE
ZXNpcmVkV3JpdGVCYXJyaWVycy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCUMyOUVDQjAzMTgwNEQwRUQwMEQyQ0JCNCAvKiBDdXJyZW50VGhpc0lu
c2lkZUJsb2NrR2V0dGVyVGVzdC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEMyOUVDQjAxMTgwNEQwRUQwMEQyQ0JCNCAvKiBDdXJyZW50VGhpc0luc2lk
ZUJsb2NrR2V0dGVyVGVzdC5tbSAqLzsgfTsKIAkJQzJBN0Y2ODgxNjA0MzJENDAwRjc2Qjk4IC8q
IEpTRGVzdHJ1Y3RpYmxlT2JqZWN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBDMkE3RjY4NzE2MDQzMkQ0MDBGNzZCOTggLyogSlNEZXN0cnVjdGlibGVP
YmplY3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owot
ICAgICAgIEMyQjZENzUzMThBMzM3OTMwMDRBOTMwMSAvKiBXcml0ZUJhcnJpZXJJbmxpbmVzLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMkI2RDc1MjE4
QTMzNzkzMDA0QTkzMDEgLyogV3JpdGVCYXJyaWVySW5saW5lcy5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUMyQjZENzUzMThBMzM3OTMwMDRBOTMw
MSAvKiBXcml0ZUJhcnJpZXJJbmxpbmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBDMkI2RDc1MjE4QTMzNzkzMDA0QTkzMDEgLyogV3JpdGVCYXJyaWVy
SW5saW5lcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCUMyQjkxNkMyMTREQTAxNEUwMENCQUM4NiAvKiBNYXJrZWRBbGxvY2F0b3IuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyQjkxNkMxMTREQTAxNEUw
MENCQUM4NiAvKiBNYXJrZWRBbGxvY2F0b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQlDMkI5MTZDNTE0REEwNDBDMDBDQkFDODYgLyogTWFya2Vk
QWxsb2NhdG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEMyQjkxNkM0MTREQTA0MEMwMENCQUM4NiAvKiBNYXJrZWRBbGxvY2F0b3IuY3BwICovOyB9
OwogCQlDMkMwRjdDRDE3QkJGQzVCMDA0NjRGRTQgLyogREZHRGVzaXJlZFRyYW5zaXRpb25zLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyQzBGN0NC
MTdCQkZDNUIwMDQ2NEZFNCAvKiBERkdEZXNpcmVkVHJhbnNpdGlvbnMuY3BwICovOyB9OwpAQCAt
MTY0NCw2ICsxNjUxLDEzIEBACiAJCTBGMkJEQzUwMTUyMjhGRkEwMENEODkxMCAvKiBERkdWYXJp
YWJsZUV2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IERGR1Zh
cmlhYmxlRXZlbnQuY3BwOyBwYXRoID0gZGZnL0RGR1ZhcmlhYmxlRXZlbnQuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkwRjJGQzc3MDE2RTEyRjZGMDAzOEQ5NzYgLyogREZHRENF
UGhhc2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gREZHRENFUGhh
c2UuY3BwOyBwYXRoID0gZGZnL0RGR0RDRVBoYXNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMEYyRkM3NzExNkUxMkY2RjAwMzhEOTc2IC8qIERGR0RDRVBoYXNlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IERGR0RDRVBoYXNlLmg7IHBhdGggPSBkZmcvREZH
RENFUGhhc2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEYyRkNDRjIxOEE2MDA3
MDAwMUEyN0Y4IC8qIERGR0dyYXBoU2FmZXBvaW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgbmFtZSA9IERGR0dyYXBoU2FmZXBvaW50LmNwcDsgcGF0aCA9IGRmZy9ERkdHcmFw
aFNhZmVwb2ludC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGMkZDQ0YzMThB
NjAwNzAwMDFBMjdGOCAvKiBERkdHcmFwaFNhZmVwb2ludC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IG5hbWUgPSBERkdHcmFwaFNhZmVwb2ludC5oOyBwYXRoID0gZGZnL0RGR0dyYXBoU2Fm
ZXBvaW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGMkZDQ0Y0MThBNjAwNzAw
MDFBMjdGOCAvKiBERkdTYWZlcG9pbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBuYW1lID0gREZHU2FmZXBvaW50LmNwcDsgcGF0aCA9IGRmZy9ERkdTYWZlcG9pbnQuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRjJGQ0NGNTE4QTYwMDcwMDAxQTI3RjggLyog
REZHU2FmZXBvaW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IERGR1NhZmVw
b2ludC5oOyBwYXRoID0gZGZnL0RGR1NhZmVwb2ludC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQkwRjJGQ0NGNjE4QTYwMDcwMDAxQTI3RjggLyogREZHU2Nhbm5hYmxlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IERGR1NjYW5uYWJsZS5oOyBwYXRoID0gZGZnL0RG
R1NjYW5uYWJsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRjJGQ0NGNzE4QTYw
MDcwMDAxQTI3RjggLyogREZHVGhyZWFkRGF0YS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IG5hbWUgPSBERkdUaHJlYWREYXRhLmNwcDsgcGF0aCA9IGRmZy9ERkdUaHJlYWREYXRh
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEYyRkNDRjgxOEE2MDA3MDAwMUEy
N0Y4IC8qIERGR1RocmVhZERhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0g
REZHVGhyZWFkRGF0YS5oOyBwYXRoID0gZGZnL0RGR1RocmVhZERhdGEuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMEYzNEIxNDcxNkQ0MjAwRTAwMUNEQTVBIC8qIERGR1VzZUtpbmQu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gREZHVXNlS2luZC5jcHA7
IHBhdGggPSBkZmcvREZHVXNlS2luZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTBGMzRCMTQ4MTZENDIwMEUwMDFDREE1QSAvKiBERkdVc2VLaW5kLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgbmFtZSA9IERGR1VzZUtpbmQuaDsgcGF0aCA9IGRmZy9ERkdVc2VLaW5kLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGMzRCMTRCMTZENDNFMEMwMDFDREE1QSAv
KiBQb2x5bW9ycGhpY0FjY2Vzc1N0cnVjdHVyZUxpc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gUG9seW1vcnBoaWNBY2Nlc3NTdHJ1Y3R1cmVMaXN0Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC0yODAyLDcgKzI4MTYsNyBAQAogCQlDMjlFQ0IwMTE4MDREMEVE
MDBEMkNCQjQgLyogQ3VycmVudFRoaXNJbnNpZGVCbG9ja0dldHRlclRlc3QubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBDdXJyZW50VGhpc0luc2lkZUJsb2NrR2V0
dGVyVGVzdC5tbTsgcGF0aCA9IEFQSS90ZXN0cy9DdXJyZW50VGhpc0luc2lkZUJsb2NrR2V0dGVy
VGVzdC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzI5RUNCMDIxODA0RDBFRDAw
RDJDQkI0IC8qIEN1cnJlbnRUaGlzSW5zaWRlQmxvY2tHZXR0ZXJUZXN0LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEN1cnJlbnRUaGlzSW5zaWRlQmxvY2tHZXR0ZXJUZXN0Lmg7
IHBhdGggPSBBUEkvdGVzdHMvQ3VycmVudFRoaXNJbnNpZGVCbG9ja0dldHRlclRlc3QuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzJBN0Y2ODcxNjA0MzJENDAwRjc2Qjk4IC8qIEpT
RGVzdHJ1Y3RpYmxlT2JqZWN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpT
RGVzdHJ1Y3RpYmxlT2JqZWN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0gICAgICAg
QzJCNkQ3NTIxOEEzMzc5MzAwNEE5MzAxIC8qIFdyaXRlQmFycmllcklubGluZXMuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV3JpdGVCYXJyaWVySW5saW5lcy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlDMkI2RDc1MjE4QTMzNzkzMDA0QTkzMDEgLyogV3JpdGVC
YXJyaWVySW5saW5lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXcml0ZUJh
cnJpZXJJbmxpbmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMyQjkxNkMxMTRE
QTAxNEUwMENCQUM4NiAvKiBNYXJrZWRBbGxvY2F0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gTWFya2VkQWxsb2NhdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUMyQjkxNkM0MTREQTA0MEMwMENCQUM4NiAvKiBNYXJrZWRBbGxvY2F0b3IuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWFya2VkQWxsb2NhdG9yLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzJDMEY3Q0IxN0JCRkM1QjAwNDY0RkU0IC8qIERG
R0Rlc2lyZWRUcmFuc2l0aW9ucy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5h
bWUgPSBERkdEZXNpcmVkVHJhbnNpdGlvbnMuY3BwOyBwYXRoID0gZGZnL0RGR0Rlc2lyZWRUcmFu
c2l0aW9ucy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zNjYzLDcgKzM2Nzcs
NyBAQAogCQk3RUY2RTBCQjBFQjdBMUVDMDA3OUFGQUYgLyogcnVudGltZSAqLyA9IHsKIAkJCWlz
YSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCi0gICAgICAgICAgICAgICBDMkI2RDc1MjE4
QTMzNzkzMDA0QTkzMDEgLyogV3JpdGVCYXJyaWVySW5saW5lcy5oICovLAorCQkJCUMyQjZENzUy
MThBMzM3OTMwMDRBOTMwMSAvKiBXcml0ZUJhcnJpZXJJbmxpbmVzLmggKi8sCiAJCQkJQkNGNjA1
MTEwRTIwM0VGODAwQjlBNjREIC8qIEFyZ0xpc3QuY3BwICovLAogCQkJCUJDRjYwNTEyMEUyMDNF
RjgwMEI5QTY0RCAvKiBBcmdMaXN0LmggKi8sCiAJCQkJQkMyNTdERTUwRTFGNTFDNTAwMTZCNkM5
IC8qIEFyZ3VtZW50cy5jcHAgKi8sCkBAIC00MDg3LDggKzQxMDEsNiBAQAogCQk4NkVDOURCMzEz
MjhERjQ0MDAyQjJBRDcgLyogZGZnICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGls
ZHJlbiA9ICgKLQkJCQkyQUNDRjNEQzE4NUZFMjZCMDA4M0UyQUQgLyogREZHU3RvcmVCYXJyaWVy
RWxpc2lvblBoYXNlLmNwcCAqLywKLQkJCQkyQUNDRjNERDE4NUZFMjZCMDA4M0UyQUQgLyogREZH
U3RvcmVCYXJyaWVyRWxpc2lvblBoYXNlLmggKi8sCiAJCQkJQTc3QTQyMzYxN0EwQkJGRDAwQThE
QjgxIC8qIERGR0Fic3RyYWN0SGVhcC5jcHAgKi8sCiAJCQkJQTc3QTQyMzcxN0EwQkJGRDAwQThE
QjgxIC8qIERGR0Fic3RyYWN0SGVhcC5oICovLAogCQkJCUE3MDREOEZFMTdBMEJBQTgwMDZCQTU1
NCAvKiBERkdBYnN0cmFjdEludGVycHJldGVyLmggKi8sCkBAIC00MTkwLDYgKzQyMDIsOCBAQAog
CQkJCTg2RUM5REI2MTMyOERGODIwMDJCMkFENyAvKiBERkdHZW5lcmF0aW9uSW5mby5oICovLAog
CQkJCTg2RUM5REI3MTMyOERGODIwMDJCMkFENyAvKiBERkdHcmFwaC5jcHAgKi8sCiAJCQkJODZF
QzlEQjgxMzI4REY4MjAwMkIyQUQ3IC8qIERGR0dyYXBoLmggKi8sCisJCQkJMEYyRkNDRjIxOEE2
MDA3MDAwMUEyN0Y4IC8qIERGR0dyYXBoU2FmZXBvaW50LmNwcCAqLywKKwkJCQkwRjJGQ0NGMzE4
QTYwMDcwMDAxQTI3RjggLyogREZHR3JhcGhTYWZlcG9pbnQuaCAqLywKIAkJCQkwRkIxNEUyMDE4
MTI1NzBCMDA5QjZCNEQgLyogREZHSW5saW5lQ2FjaGVXcmFwcGVyLmggKi8sCiAJCQkJMEZCMTRF
MjIxODEzMDk1NTAwOUI2QjREIC8qIERGR0lubGluZUNhY2hlV3JhcHBlcklubGluZXMuaCAqLywK
IAkJCQlBNzA0RDkwMDE3QTBCQUE4MDA2QkE1NTQgLyogREZHSW5QbGFjZUFic3RyYWN0U3RhdGUu
Y3BwICovLApAQCAtNDI2Miw4ICs0Mjc2LDExIEBACiAJCQkJODZFQzlEQzExMzI4REY4MjAwMkIy
QUQ3IC8qIERGR1JlZ2lzdGVyQmFuay5oICovLAogCQkJCTBGNjY2RUNBMTgzNkIzN0UwMEQwMTdG
MSAvKiBERkdSZXN1cnJlY3Rpb25Gb3JWYWxpZGF0aW9uUGhhc2UuY3BwICovLAogCQkJCTBGNjY2
RUNCMTgzNkIzN0UwMEQwMTdGMSAvKiBERkdSZXN1cnJlY3Rpb25Gb3JWYWxpZGF0aW9uUGhhc2Uu
aCAqLywKKwkJCQkwRjJGQ0NGNDE4QTYwMDcwMDAxQTI3RjggLyogREZHU2FmZXBvaW50LmNwcCAq
LywKKwkJCQkwRjJGQ0NGNTE4QTYwMDcwMDAxQTI3RjggLyogREZHU2FmZXBvaW50LmggKi8sCiAJ
CQkJQTc3QTQyM0MxN0EwQkJGRDAwQThEQjgxIC8qIERGR1NhZmVUb0V4ZWN1dGUuaCAqLywKIAkJ
CQlBNzQxMDE3RTE3OURBRjgwMDAyRUI4QkEgLyogREZHU2FuZVN0cmluZ0dldEJ5VmFsU2xvd1Bh
dGhHZW5lcmF0b3IuaCAqLywKKwkJCQkwRjJGQ0NGNjE4QTYwMDcwMDAxQTI3RjggLyogREZHU2Nh
bm5hYmxlLmggKi8sCiAJCQkJODZFQ0EzRjkxMzJERjI1QTAwMkIyQUQ3IC8qIERGR1Njb3JlQm9h
cmQuaCAqLywKIAkJCQkwRjFFM0E2NTE1M0EyMURGMDAwRjk0NTYgLyogREZHU2lsZW50UmVnaXN0
ZXJTYXZlUGxhbi5oICovLAogCQkJCTBGMUUzQTUwMTUzN0MyQ0IwMDBGOTQ1NiAvKiBERkdTbG93
UGF0aEdlbmVyYXRvci5oICovLApAQCAtNDI3Nyw5ICs0Mjk0LDEzIEBACiAJCQkJMEZDMjBDQjgx
ODU1NkEzNTAwQzlFOTU0IC8qIERGR1NTQUxvd2VyaW5nUGhhc2UuaCAqLywKIAkJCQkwRjlGQjRG
MjE3RkNCOTE3MDBDQjY3RjggLyogREZHU3RhY2tMYXlvdXRQaGFzZS5jcHAgKi8sCiAJCQkJMEY5
RkI0RjMxN0ZDQjkxNzAwQ0I2N0Y4IC8qIERGR1N0YWNrTGF5b3V0UGhhc2UuaCAqLywKKwkJCQky
QUNDRjNEQzE4NUZFMjZCMDA4M0UyQUQgLyogREZHU3RvcmVCYXJyaWVyRWxpc2lvblBoYXNlLmNw
cCAqLywKKwkJCQkyQUNDRjNERDE4NUZFMjZCMDA4M0UyQUQgLyogREZHU3RvcmVCYXJyaWVyRWxp
c2lvblBoYXNlLmggKi8sCiAJCQkJMEZDMjBDQjMxODUyRTJDNjAwQzlFOTU0IC8qIERGR1N0cmVu
Z3RoUmVkdWN0aW9uUGhhc2UuY3BwICovLAogCQkJCTBGQzIwQ0I0MTg1MkUyQzYwMEM5RTk1NCAv
KiBERkdTdHJlbmd0aFJlZHVjdGlvblBoYXNlLmggKi8sCiAJCQkJMEY2Mzk0NzYxNURDRTM0NzAw
NkE1OTdDIC8qIERGR1N0cnVjdHVyZUFic3RyYWN0VmFsdWUuaCAqLywKKwkJCQkwRjJGQ0NGNzE4
QTYwMDcwMDAxQTI3RjggLyogREZHVGhyZWFkRGF0YS5jcHAgKi8sCisJCQkJMEYyRkNDRjgxOEE2
MDA3MDAwMUEyN0Y4IC8qIERGR1RocmVhZERhdGEuaCAqLywKIAkJCQkwRkMwOTc5RjE0NkIyOEM3
MDBDRjI0NDIgLyogREZHVGh1bmtzLmNwcCAqLywKIAkJCQkwRkMwOTdBMDE0NkIyOEM3MDBDRjI0
NDIgLyogREZHVGh1bmtzLmggKi8sCiAJCQkJMEZEOEEzMUYxN0Q1MUY1NzAwQ0EyQzQwIC8qIERG
R1RpZXJVcENoZWNrSW5qZWN0aW9uUGhhc2UuY3BwICovLApAQCAtNDY5OCw3ICs0NzE5LDcgQEAK
IAkJCQk2NUMwMjg1RDE3MTc5NjY4MDAzNTFFMzUgLyogQVJNdjdET3Bjb2RlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkyQTY4Mjk1QjE4NzVGODA1MDBCNkMzRTIgLyogQ29weVdyaXRlQmFycmllci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMkE0RUM5MEMxODYwRDZDMjAwOTRGNzgyIC8qIFdyaXRlQmFy
cmllckJ1ZmZlci5oIGluIEhlYWRlcnMgKi8sCi0gICAgICAgICAgICAgICBDMkI2RDc1MzE4QTMz
NzkzMDA0QTkzMDEgLyogV3JpdGVCYXJyaWVySW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
QzJCNkQ3NTMxOEEzMzc5MzAwNEE5MzAxIC8qIFdyaXRlQmFycmllcklubGluZXMuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUZFNTkzMkE4MTgzQzVBMjYwMEExRUNDQyAvKiBWTUVudHJ5U2NvcGUuaCBp
biBIZWFkZXJzICovLAogCQkJCUE1MzI0MzkzMTg1Njk3MDkwMDJFRDY5MiAvKiBDb2RlR2VuZXJh
dG9ySW5zcGVjdG9yU3RyaW5ncy5weSBpbiBIZWFkZXJzICovLAogCQkJCUE1MzI0MzkyMTg1Njk3
MDkwMDJFRDY5MiAvKiBDb2RlR2VuZXJhdG9ySW5zcGVjdG9yLnB5IGluIEhlYWRlcnMgKi8sCkBA
IC01MDc3LDYgKzUwOTgsNyBAQAogCQkJCUE3OTBERDcwMTgyRjQ5OTcwMDU4ODgwNyAvKiBKU1Nl
dEl0ZXJhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjI0RTU0RTE3RUUyNzQ5MDBBQkIyMTcg
LyogSklUT3BlcmF0aW9uV3JhcHBlcnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNzY2RDMxMTVB
QTgxMTIwMDhGMzYzRSAvKiBKSVRTdHViUm91dGluZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEYy
RkNDRkExOEE2MDA3MDAwMUEyN0Y4IC8qIERGR0dyYXBoU2FmZXBvaW50LmggaW4gSGVhZGVycyAq
LywKIAkJCQkwRjc2NkQyQzE1QThDQzNBMDA4RjM2M0UgLyogSklUU3R1YlJvdXRpbmVTZXQuaCBp
biBIZWFkZXJzICovLAogCQkJCTE0QzUyNDJCMEY1MzU1RTkwMEJBM0QwNCAvKiBKSVRTdHVicy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJRkVGNjgzNUUxNzQzNDNDQzAwQTMyRTI1IC8qIEpJVFN0dWJz
QVJNLmggaW4gSGVhZGVycyAqLywKQEAgLTUxMTYsNiArNTEzOCw3IEBACiAJCQkJODZFM0M2MTMx
NjdCQUJENzAwNkQ3NjBBIC8qIEpTQ29udGV4dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODZFM0M2
MTcxNjdCQUJFRTAwNkQ3NjBBIC8qIEpTQ29udGV4dEludGVybmFsLmggaW4gSGVhZGVycyAqLywK
IAkJCQlCQzE4QzQxRTBFMTZGNUNEMDBCMzQ0NjAgLyogSlNDb250ZXh0UmVmLmggaW4gSGVhZGVy
cyAqLywKKwkJCQkwRjJGQ0NGRjE4QTYwMDcwMDAxQTI3RjggLyogREZHVGhyZWFkRGF0YS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMTQ4Q0QxRDgxMDhDRjkwMjAwODE2M0M2IC8qIEpTQ29udGV4dFJl
ZlByaXZhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3MjAyOEI4MTc5NzYwMUUwMDk4MDI4QyAv
KiBKU0NUZXN0UnVubmVyVXRpbHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGMkI2NkVDMTdCNkI1
QUIwMEE3QUUzRiAvKiBKU0RhdGFWaWV3LmggaW4gSGVhZGVycyAqLywKQEAgLTUyMzYsNiArNTI1
OSw3IEBACiAJCQkJODZDNTY4RTExMUEyMTNFRTAwMDdGN0YwIC8qIE1hY3JvQXNzZW1ibGVyTUlQ
Uy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODZBRTY0QTkxMzVFNUUxQzAwOTYzMDEyIC8qIE1hY3Jv
QXNzZW1ibGVyU0g0LmggaW4gSGVhZGVycyAqLywKIAkJCQk4NjAxNjFFNDBGM0E4M0MxMDBGODQ3
MTAgLyogTWFjcm9Bc3NlbWJsZXJYODYuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGMkZDQ0ZDMThB
NjAwNzAwMDFBMjdGOCAvKiBERkdTYWZlcG9pbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTg2MDE2
MUU1MEYzQTgzQzEwMEY4NDcxMCAvKiBNYWNyb0Fzc2VtYmxlclg4Nl82NC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJODYwMTYxRTYwRjNBODNDMTAwRjg0NzEwIC8qIE1hY3JvQXNzZW1ibGVyWDg2Q29t
bW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNzAwODczQTE3Q0JFODUzMDBDM0U2NDMgLyogTWFw
Q29uc3RydWN0b3IuaCBpbiBIZWFkZXJzICovLApAQCAtNTQ0Nyw2ICs1NDcxLDcgQEAKIAkJCQkw
RjI0MkRBNzEzRjNCMUU4MDA3QURENEMgLyogV2Vha1JlZmVyZW5jZUhhcnZlc3Rlci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMTRFODRGQTExNEVFMUFDQzAwRDZENUQ0IC8qIFdlYWtTZXQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTE0MTUwMTMzMTU0QkIxM0YwMDVEOEM5OCAvKiBXZWFrU2V0SW5saW5l
cy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEYyRkNDRkQxOEE2MDA3MDAwMUEyN0Y4IC8qIERGR1Nj
YW5uYWJsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxOEM0N0EwRTE2RjVDRDAwQjM0NDYwIC8q
IFdlYktpdEF2YWlsYWJpbGl0eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTc0REVGOTIxODJEOTkx
NDAwNTIyQzIyIC8qIE1hcEl0ZXJhdG9yQ29uc3RydWN0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUE3RENCOTczMTJFNTE5M0YwMDkxMTk0MCAvKiBXcml0ZUJhcnJpZXIuaCBpbiBIZWFkZXJzICov
LApAQCAtNjA0MCw2ICs2MDY1LDcgQEAKIAkJCQlBNzA0NDdFRDE3QTBCRDcwMDBGNTg5OEUgLyog
RHVtcENvbnRleHQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQ3RjM5QzcxMDdFQzM3NjAwNDI3
QTQ4IC8qIEVycm9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0N0YzOUM4MTA3RUMzNzYwMDQy
N0E0OCAvKiBFcnJvckNvbnN0cnVjdG9yLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTBGMkZDQ0Y5
MThBNjAwNzAwMDFBMjdGOCAvKiBERkdHcmFwaFNhZmVwb2ludC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkxNDdGMzlDOTEwN0VDMzc2MDA0MjdBNDggLyogRXJyb3JJbnN0YW5jZS5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQkxNDdGMzlDQTEwN0VDMzc2MDA0MjdBNDggLyogRXJyb3JQcm90b3R5cGUu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTVGRDAwNjcxODlBRkU5QzAwNjMzMjMxIC8qIFNjcmlw
dEFyZ3VtZW50cy5jcHAgaW4gU291cmNlcyAqLywKQEAgLTYyMTAsNiArNjIzNiw3IEBACiAJCQkJ
QTc0ODJCOTQxMTY3MTE0NzAwM0IwNzEyIC8qIEpTV2Vha09iamVjdE1hcFJlZlByaXZhdGUuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMTQ0MjU2NjExNUVERTk4RDAwNjZBNDlCIC8qIEpTV2l0aFNj
b3BlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE1MDNGQTFCMTg4RTBGQjAwMDExMEYxNCAvKiBK
U0phdmFTY3JpcHRDYWxsRnJhbWUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMEYyRkNDRkUxOEE2
MDA3MDAwMUEyN0Y4IC8qIERGR1RocmVhZERhdGEuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODZF
M0M2MTgxNjdCQUJFRTAwNkQ3NjBBIC8qIEpTV3JhcHBlck1hcC5tbSBpbiBTb3VyY2VzICovLAog
CQkJCTE0MjgwODcwMTA3RUMxMzQwMDEzRTdCMiAvKiBKU1dyYXBwZXJPYmplY3QuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJQTU3RDIzRTkxODkxQjA3NzAwMzFDN0ZBIC8qIEpTR2xvYmFsT2JqZWN0
RGVidWdnZXJBZ2VudC5jcHAgaW4gU291cmNlcyAqLywKQEAgLTYzMjEsNiArNjM0OCw3IEBACiAJ
CQkJQzIyNTQ5NDMxNUY3REJBQTAwNjVFODk4IC8qIFNsb3RWaXNpdG9yLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTkzMzA0MDJDMEU2QTc2NDAwMDc4NkU2QSAvKiBTbWFsbFN0cmluZ3MuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMEY4RjJCOUUxNzMwNkM4RDAwN0RCREE1IC8qIFNvdXJjZUNvZGUu
Y3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMEYyRkNDRkIxOEE2MDA3MDAwMUEyN0Y4IC8qIERGR1Nh
ZmVwb2ludC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNUZEMDA3OTE4OUIwNTEwMDA2MzMyMzEg
LyogQ29uc29sZU1lc3NhZ2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY0OTNBRkExNkQwQ0FE
MzAwODQ1MDhCIC8qIFNvdXJjZVByb3ZpZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUU0OURD
MTZCMTJFRjI5M0UwMDE4NEExRiAvKiBTb3VyY2VQcm92aWRlckNhY2hlLmNwcCBpbiBTb3VyY2Vz
ICovLApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5j
cHAJKHJldmlzaW9uIDE2MzY5NSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9D
b2RlQmxvY2suY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSAi
REZHQ2FwYWJpbGl0aWVzLmgiCiAjaW5jbHVkZSAiREZHQ29tbW9uLmgiCiAjaW5jbHVkZSAiREZH
RHJpdmVyLmgiCisjaW5jbHVkZSAiREZHSklUQ29kZS5oIgogI2luY2x1ZGUgIkRGR05vZGUuaCIK
ICNpbmNsdWRlICJERkdXb3JrbGlzdC5oIgogI2luY2x1ZGUgIkRlYnVnZ2VyLmgiCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5oCShyZXZpc2lvbiAxNjM2
OTUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmgJKHdvcmtp
bmcgY29weSkKQEAgLTU2LDcgKzU2LDYgQEAKICNpbmNsdWRlICJIYW5kbGVySW5mby5oIgogI2lu
Y2x1ZGUgIk9iamVjdEFsbG9jYXRpb25Qcm9maWxlLmgiCiAjaW5jbHVkZSAiT3B0aW9ucy5oIgot
I2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJQdXRQcm9wZXJ0eVNsb3QuaCIKICNp
bmNsdWRlICJJbnN0cnVjdGlvbi5oIgogI2luY2x1ZGUgIkpJVENvZGUuaCIKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Qcm9maWxlZENvZGVCbG9ja0pldHRpc29uaW5nV2F0
Y2hwb2ludC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L1Byb2ZpbGVkQ29kZUJsb2NrSmV0dGlzb25pbmdXYXRjaHBvaW50LmNwcAkocmV2aXNpb24gMTYz
Njk1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1Byb2ZpbGVkQ29kZUJsb2Nr
SmV0dGlzb25pbmdXYXRjaHBvaW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzEsNiArMzEsNyBA
QAogI2luY2x1ZGUgIkNvZGVCbG9jay5oIgogI2luY2x1ZGUgIkRGR0NvbW1vbi5oIgogI2luY2x1
ZGUgIkRGR0V4aXRQcm9maWxlLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiBuYW1lc3Bh
Y2UgSlNDIHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2Vy
Q2FsbEZyYW1lLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdn
ZXIvRGVidWdnZXJDYWxsRnJhbWUuY3BwCShyZXZpc2lvbiAxNjM2OTUpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJDYWxsRnJhbWUuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0yOSw3ICsyOSw2IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiRGVidWdn
ZXJDYWxsRnJhbWUuaCIKIAotI2luY2x1ZGUgIkNhbGxGcmFtZUlubGluZXMuaCIKICNpbmNsdWRl
ICJDb2RlQmxvY2suaCIKICNpbmNsdWRlICJJbnRlcnByZXRlci5oIgogI2luY2x1ZGUgIkpTQWN0
aXZhdGlvbi5oIgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEZXNpcmVkVHJh
bnNpdGlvbnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
RGVzaXJlZFRyYW5zaXRpb25zLmNwcAkocmV2aXNpb24gMTYzNjk1KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdEZXNpcmVkVHJhbnNpdGlvbnMuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0zMSw2ICszMSw3IEBACiAKICNpbmNsdWRlICJDb2RlQmxvY2suaCIKICNpbmNsdWRlICJERkdD
b21tb25EYXRhLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiBuYW1lc3BhY2UgSlNDIHsg
bmFtZXNwYWNlIERGRyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRHJp
dmVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RyaXZl
ci5jcHAJKHJldmlzaW9uIDE2MzY5NSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
RHJpdmVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTIxLDcgKzEyMSw3IEBAIHN0YXRpYyBDb21w
aWxhdGlvblJlc3VsdCBjb21waWxlSW1wbCgKICAgICAgICAgcmV0dXJuIENvbXBpbGF0aW9uRGVm
ZXJyZWQ7CiAgICAgfQogICAgIAotICAgIHBsYW4tPmNvbXBpbGVJblRocmVhZCgqdm0uZGZnU3Rh
dGUpOworICAgIHBsYW4tPmNvbXBpbGVJblRocmVhZCgqdm0uZGZnU3RhdGUsIDApOwogICAgIHJl
dHVybiBwbGFuLT5maW5hbGl6ZVdpdGhvdXROb3RpZnlpbmdDYWxsYmFjaygpOwogfQogI2Vsc2Ug
Ly8gRU5BQkxFKERGR19KSVQpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dy
YXBoLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBo
LmNwcAkocmV2aXNpb24gMTYzNjk1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdH
cmFwaC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc5MCw2ICs3OTAsNTkgQEAgSlNBcnJheUJ1ZmZl
clZpZXcqIEdyYXBoOjp0cnlHZXRGb2xkYWJsZQogICAgIHJldHVybiB0cnlHZXRGb2xkYWJsZVZp
ZXcoY2hpbGQobm9kZSwgMCkubm9kZSgpLCBub2RlLT5hcnJheU1vZGUoKSk7CiB9CiAKK3ZvaWQg
R3JhcGg6OnZpc2l0Q2hpbGRyZW4oU2xvdFZpc2l0b3ImIHZpc2l0b3IpCit7CisgICAgZm9yIChC
bG9ja0luZGV4IGJsb2NrSW5kZXggPSBudW1CbG9ja3MoKTsgYmxvY2tJbmRleC0tOykgeworICAg
ICAgICBCYXNpY0Jsb2NrKiBibG9jayA9IHRoaXMtPmJsb2NrKGJsb2NrSW5kZXgpOworICAgICAg
ICBpZiAoIWJsb2NrKQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIAorICAgICAgICBm
b3IgKHVuc2lnbmVkIG5vZGVJbmRleCA9IDA7IG5vZGVJbmRleCA8IGJsb2NrLT5zaXplKCk7ICsr
bm9kZUluZGV4KSB7CisgICAgICAgICAgICBOb2RlKiBub2RlID0gYmxvY2stPmF0KG5vZGVJbmRl
eCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHN3aXRjaCAobm9kZS0+b3AoKSkgeworICAg
ICAgICAgICAgY2FzZSBKU0NvbnN0YW50OgorICAgICAgICAgICAgY2FzZSBXZWFrSlNDb25zdGFu
dDoKKyAgICAgICAgICAgICAgICB2aXNpdG9yLmFwcGVuZFVuYmFycmllcmVkUmVhZE9ubHlWYWx1
ZSh2YWx1ZU9mSlNDb25zdGFudChub2RlKSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgICAgICAgICAgCisgICAgICAgICAgICBjYXNlIENoZWNrRnVuY3Rpb246CisgICAgICAgICAg
ICAgICAgdmlzaXRvci5hcHBlbmRVbmJhcnJpZXJlZFJlYWRPbmx5UG9pbnRlcihub2RlLT5mdW5j
dGlvbigpKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAKKyAgICAg
ICAgICAgIGNhc2UgQ2hlY2tFeGVjdXRhYmxlOgorICAgICAgICAgICAgICAgIHZpc2l0b3IuYXBw
ZW5kVW5iYXJyaWVyZWRSZWFkT25seVBvaW50ZXIobm9kZS0+ZXhlY3V0YWJsZSgpKTsKKyAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIGNhc2UgQ2hl
Y2tTdHJ1Y3R1cmU6CisgICAgICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gbm9kZS0+c3Ry
dWN0dXJlU2V0KCkuc2l6ZSgpOyBpLS07KQorICAgICAgICAgICAgICAgICAgICB2aXNpdG9yLmFw
cGVuZFVuYmFycmllcmVkUmVhZE9ubHlQb2ludGVyKG5vZGUtPnN0cnVjdHVyZVNldCgpW2ldKTsK
KyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIGNh
c2UgU3RydWN0dXJlVHJhbnNpdGlvbldhdGNocG9pbnQ6CisgICAgICAgICAgICBjYXNlIE5ld09i
amVjdDoKKyAgICAgICAgICAgIGNhc2UgQXJyYXlpZnlUb1N0cnVjdHVyZToKKyAgICAgICAgICAg
IGNhc2UgTmV3U3RyaW5nT2JqZWN0OgorICAgICAgICAgICAgICAgIHZpc2l0b3IuYXBwZW5kVW5i
YXJyaWVyZWRSZWFkT25seVBvaW50ZXIobm9kZS0+c3RydWN0dXJlKCkpOworICAgICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgY2FzZSBQdXRTdHJ1Y3R1
cmU6CisgICAgICAgICAgICBjYXNlIFBoYW50b21QdXRTdHJ1Y3R1cmU6CisgICAgICAgICAgICBj
YXNlIEFsbG9jYXRlUHJvcGVydHlTdG9yYWdlOgorICAgICAgICAgICAgY2FzZSBSZWFsbG9jYXRl
UHJvcGVydHlTdG9yYWdlOgorICAgICAgICAgICAgICAgIHZpc2l0b3IuYXBwZW5kVW5iYXJyaWVy
ZWRSZWFkT25seVBvaW50ZXIoCisgICAgICAgICAgICAgICAgICAgIG5vZGUtPnN0cnVjdHVyZVRy
YW5zaXRpb25EYXRhKCkucHJldmlvdXNTdHJ1Y3R1cmUpOworICAgICAgICAgICAgICAgIHZpc2l0
b3IuYXBwZW5kVW5iYXJyaWVyZWRSZWFkT25seVBvaW50ZXIoCisgICAgICAgICAgICAgICAgICAg
IG5vZGUtPnN0cnVjdHVyZVRyYW5zaXRpb25EYXRhKCkubmV3U3RydWN0dXJlKTsKKyAgICAgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIGRlZmF1bHQ6Cisg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9Cit9
CisKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpERkcKIAogI2VuZGlmCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdHcmFwaC5oCShyZXZpc2lvbiAxNjM2OTUpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0dyYXBoLmgJKHdvcmtpbmcgY29weSkKQEAgLTQwLDYgKzQwLDcgQEAK
ICNpbmNsdWRlICJERkdOb2RlLmgiCiAjaW5jbHVkZSAiREZHTm9kZUFsbG9jYXRvci5oIgogI2lu
Y2x1ZGUgIkRGR1BsYW4uaCIKKyNpbmNsdWRlICJERkdTY2FubmFibGUuaCIKICNpbmNsdWRlICJE
RkdWYXJpYWRpY0Z1bmN0aW9uLmgiCiAjaW5jbHVkZSAiSW5saW5lQ2FsbEZyYW1lU2V0LmgiCiAj
aW5jbHVkZSAiSlNTdGFjay5oIgpAQCAtNzgsNyArNzksNyBAQCBlbnVtIEFkZFNwZWN1bGF0aW9u
TW9kZSB7CiAvLwogLy8gVGhlIG9yZGVyIG1heSBiZSBzaWduaWZpY2FudCBmb3Igbm9kZXMgd2l0
aCBzaWRlLWVmZmVjdHMgKHByb3BlcnR5IGFjY2Vzc2VzLCB2YWx1ZSBjb252ZXJzaW9ucykuCiAv
LyBOb2RlcyB0aGF0IGFyZSAnZGVhZCcgcmVtYWluIGluIHRoZSB2ZWN0b3Igd2l0aCByZWZDb3Vu
dCAwLgotY2xhc3MgR3JhcGggeworY2xhc3MgR3JhcGggOiBwdWJsaWMgdmlydHVhbCBTY2FubmFi
bGUgewogcHVibGljOgogICAgIEdyYXBoKFZNJiwgUGxhbiYsIExvbmdMaXZlZFN0YXRlJik7CiAg
ICAgfkdyYXBoKCk7CkBAIC03OTksNiArODAwLDggQEAgcHVibGljOgogICAgIEpTQXJyYXlCdWZm
ZXJWaWV3KiB0cnlHZXRGb2xkYWJsZVZpZXcoTm9kZSosIEFycmF5TW9kZSk7CiAgICAgSlNBcnJh
eUJ1ZmZlclZpZXcqIHRyeUdldEZvbGRhYmxlVmlld0ZvckNoaWxkMShOb2RlKik7CiAgICAgCisg
ICAgdmlydHVhbCB2b2lkIHZpc2l0Q2hpbGRyZW4oU2xvdFZpc2l0b3ImKSBvdmVycmlkZTsKKyAg
ICAKICAgICBWTSYgbV92bTsKICAgICBQbGFuJiBtX3BsYW47CiAgICAgQ29kZUJsb2NrKiBtX2Nv
ZGVCbG9jazsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGhTYWZlcG9p
bnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGhT
YWZlcG9pbnQuY3BwCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdHcmFwaFNhZmVwb2ludC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0NyBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiREZHR3JhcGhTYWZlcG9pbnQuaCIKKworI2lmIEVOQUJMRShERkdf
SklUKQorCisjaW5jbHVkZSAiREZHR3JhcGguaCIKKworbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFj
ZSBERkcgeworCitHcmFwaFNhZmVwb2ludDo6R3JhcGhTYWZlcG9pbnQoR3JhcGgmIGdyYXBoKQor
ICAgIDogbV9zYWZlcG9pbnQoZ3JhcGgubV9wbGFuKQoreworICAgIG1fc2FmZXBvaW50LmFkZCgm
Z3JhcGgpOworICAgIG1fc2FmZXBvaW50LmJlZ2luKCk7Cit9CisKK0dyYXBoU2FmZXBvaW50Ojp+
R3JhcGhTYWZlcG9pbnQoKSB7IH0KKworfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkRGRworCisjZW5k
aWYgLy8gRU5BQkxFKERGR19KSVQpCisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHR3JhcGhTYWZlcG9pbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0dyYXBoU2FmZXBvaW50LmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0dyYXBoU2FmZXBvaW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw1
MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgor
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZu
ZGVmIERGR0dyYXBoU2FmZXBvaW50X2gKKyNkZWZpbmUgREZHR3JhcGhTYWZlcG9pbnRfaAorCisj
aWYgRU5BQkxFKERGR19KSVQpCisKKyNpbmNsdWRlICJERkdTYWZlcG9pbnQuaCIKKworbmFtZXNw
YWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgeworCitjbGFzcyBHcmFwaDsKKworY2xhc3MgR3JhcGhT
YWZlcG9pbnQgeworcHVibGljOgorICAgIEdyYXBoU2FmZXBvaW50KEdyYXBoJik7CisgICAgfkdy
YXBoU2FmZXBvaW50KCk7CisgICAgCitwcml2YXRlOgorICAgIFNhZmVwb2ludCBtX3NhZmVwb2lu
dDsKK307CisKK30gfSAvLyBuYW1lc3BhY2UgSlNDOjpERkcKKworI2VuZGlmIC8vIEVOQUJMRShE
RkdfSklUKQorCisjZW5kaWYgLy8gREZHR3JhcGhTYWZlcG9pbnRfaAorCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVENvZGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHSklUQ29kZS5jcHAJKHJldmlzaW9uIDE2MzY5NSkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklUQ29kZS5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTI5LDYgKzI5LDcgQEAKICNpZiBFTkFCTEUoREZHX0pJVCkKIAogI2luY2x1ZGUgIkNvZGVCbG9j
ay5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFj
ZSBERkcgewogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVENvbXBpbGVy
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVENvbXBp
bGVyLmNwcAkocmV2aXNpb24gMTYzNjk1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdKSVRDb21waWxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQxLDYgKzQxLDcgQEAKICNpbmNs
dWRlICJERkdTcGVjdWxhdGl2ZUpJVC5oIgogI2luY2x1ZGUgIkRGR1RodW5rcy5oIgogI2luY2x1
ZGUgIkpTQ0pTVmFsdWVJbmxpbmVzLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1
ZGUgIk1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsLmgiCiAjaW5jbHVkZSAiVk0uaCIKICNp
bmNsdWRlICJMaW5rQnVmZmVyLmgiCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0pJVENvbXBpbGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdKSVRDb21waWxlci5oCShyZXZpc2lvbiAxNjM2OTUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0pJVENvbXBpbGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDcgKzI5LDYgQEAK
ICNpZiBFTkFCTEUoREZHX0pJVCkKIAogI2luY2x1ZGUgIkNDYWxsSGVscGVycy5oIgotI2luY2x1
ZGUgIkNhbGxGcmFtZUlubGluZXMuaCIKICNpbmNsdWRlICJDb2RlQmxvY2suaCIKICNpbmNsdWRl
ICJERkdEaXNhc3NlbWJsZXIuaCIKICNpbmNsdWRlICJERkdHcmFwaC5oIgpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0Q29tcGlsZXJDb21tb24uY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdENvbXBpbGVyQ29tbW9u
LmNwcAkocmV2aXNpb24gMTYzNjk1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdP
U1JFeGl0Q29tcGlsZXJDb21tb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw3IEBA
CiAjaWYgRU5BQkxFKERGR19KSVQpCiAKICNpbmNsdWRlICJBcmd1bWVudHMuaCIKKyNpbmNsdWRl
ICJERkdKSVRDb2RlLmgiCiAjaW5jbHVkZSAiREZHT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIkpJ
VC5oIgogI2luY2x1ZGUgIkpTQ0pTVmFsdWVJbmxpbmVzLmgiCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAJKHJldmlzaW9uIDE2MzY5NSkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJDb21tb25TbG93UGF0aHMuaCIKICNpbmNsdWRl
ICJDb3BpZWRTcGFjZUlubGluZXMuaCIKICNpbmNsdWRlICJERkdEcml2ZXIuaCIKKyNpbmNsdWRl
ICJERkdKSVRDb2RlLmgiCiAjaW5jbHVkZSAiREZHT1NSRXhpdC5oIgogI2luY2x1ZGUgIkRGR1Ro
dW5rcy5oIgogI2luY2x1ZGUgIkRGR1RvRlRMRGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrLmgi
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuaAkocmV2aXNp
b24gMTYzNjk1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEx
LCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAxMSwgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI4LDcgKzI4LDYgQEAKIAogI2lmIEVOQUJMRShE
RkdfSklUKQogCi0jaW5jbHVkZSAiREZHSklUQ29tcGlsZXIuaCIKICNpbmNsdWRlICJKSVRPcGVy
YXRpb25zLmgiCiAjaW5jbHVkZSAiUHV0S2luZC5oIgogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1BsYW4uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHUGxhbi5jcHAJKHJldmlzaW9uIDE2MzY5NSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHUGxhbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQxLDYgKzQxLDcgQEAKICNp
bmNsdWRlICJERkdGYWlsZWRGaW5hbGl6ZXIuaCIKICNpbmNsdWRlICJERkdGbHVzaExpdmVuZXNz
QW5hbHlzaXNQaGFzZS5oIgogI2luY2x1ZGUgIkRGR0ZpeHVwUGhhc2UuaCIKKyNpbmNsdWRlICJE
RkdHcmFwaFNhZmVwb2ludC5oIgogI2luY2x1ZGUgIkRGR0ludmFsaWRhdGlvblBvaW50SW5qZWN0
aW9uUGhhc2UuaCIKICNpbmNsdWRlICJERkdKSVRDb21waWxlci5oIgogI2luY2x1ZGUgIkRGR0xJ
Q01QaGFzZS5oIgpAQCAtMTM1LDggKzEzNiwxMCBAQCBib29sIFBsYW46OnJlcG9ydENvbXBpbGVU
aW1lcygpIGNvbnN0CiAgICAgICAgIHx8IChPcHRpb25zOjpyZXBvcnRGVExDb21waWxlVGltZXMo
KSAmJiBpc0ZUTChtb2RlKSk7CiB9CiAKLXZvaWQgUGxhbjo6Y29tcGlsZUluVGhyZWFkKExvbmdM
aXZlZFN0YXRlJiBsb25nTGl2ZWRTdGF0ZSkKK3ZvaWQgUGxhbjo6Y29tcGlsZUluVGhyZWFkKExv
bmdMaXZlZFN0YXRlJiBsb25nTGl2ZWRTdGF0ZSwgVGhyZWFkRGF0YSogdGhyZWFkRGF0YSkKIHsK
KyAgICB0aGlzLT50aHJlYWREYXRhID0gdGhyZWFkRGF0YTsKKyAgICAKICAgICBkb3VibGUgYmVm
b3JlID0gMDsKICAgICBpZiAocmVwb3J0Q29tcGlsZVRpbWVzKCkpCiAgICAgICAgIGJlZm9yZSA9
IGN1cnJlbnRUaW1lTVMoKTsKQEAgLTMxMywxMSArMzE2LDE0IEBAIFBsYW46OkNvbXBpbGF0aW9u
UGF0aCBQbGFuOjpjb21waWxlSW5UaHIKICAgICAgICAgCiAgICAgICAgIGR1bXBBbmRWZXJpZnlH
cmFwaChkZmcsICJHcmFwaCBqdXN0IGJlZm9yZSBGVEwgbG93ZXJpbmc6Iik7CiAgICAgICAgIAot
ICAgICAgICBpbml0aWFsaXplTExWTSgpOwotICAgICAgICAKKyAgICAgICAgeworICAgICAgICAg
ICAgR3JhcGhTYWZlcG9pbnQgc2FmZXBvaW50KGRmZyk7CisgICAgICAgICAgICBpbml0aWFsaXpl
TExWTSgpOworICAgICAgICB9CisgICAgICAgICAgICAKICAgICAgICAgRlRMOjpTdGF0ZSBzdGF0
ZShkZmcpOwogICAgICAgICBGVEw6Omxvd2VyREZHVG9MTFZNKHN0YXRlKTsKLSAgICAgICAgCisg
ICAgICAgICAgICAKICAgICAgICAgaWYgKHJlcG9ydENvbXBpbGVUaW1lcygpKQogICAgICAgICAg
ICAgYmVmb3JlRlRMID0gY3VycmVudFRpbWVNUygpOwogICAgICAgICAKQEAgLTMyNyw3ICszMzMs
NyBAQCBQbGFuOjpDb21waWxhdGlvblBhdGggUGxhbjo6Y29tcGlsZUluVGhyCiAgICAgICAgIH0K
ICAgICAgICAgCiAgICAgICAgIEZUTDo6Y29tcGlsZShzdGF0ZSk7Ci0KKyAgICAgICAgICAgIAog
ICAgICAgICBpZiAoT3B0aW9uczo6bGx2bUFsd2F5c0ZhaWxzQmVmb3JlTGluaygpKSB7CiAgICAg
ICAgICAgICBGVEw6OmZhaWwoc3RhdGUpOwogICAgICAgICAgICAgcmV0dXJuIEZUTFBhdGg7Cklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1BsYW4uaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1BsYW4uaAkocmV2aXNpb24gMTYzNjk1KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQbGFuLmgJKHdvcmtpbmcgY29weSkKQEAgLTUy
LDYgKzUyLDcgQEAgY2xhc3MgU2xvdFZpc2l0b3I7CiBuYW1lc3BhY2UgREZHIHsKIAogY2xhc3Mg
TG9uZ0xpdmVkU3RhdGU7CitjbGFzcyBUaHJlYWREYXRhOwogCiAjaWYgRU5BQkxFKERGR19KSVQp
CiAKQEAgLTYyLDcgKzYzLDcgQEAgc3RydWN0IFBsYW4gOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNv
dW50ZQogICAgICAgICBjb25zdCBPcGVyYW5kczxKU1ZhbHVlPiYgbXVzdEhhbmRsZVZhbHVlcyk7
CiAgICAgflBsYW4oKTsKICAgICAKLSAgICB2b2lkIGNvbXBpbGVJblRocmVhZChMb25nTGl2ZWRT
dGF0ZSYpOworICAgIHZvaWQgY29tcGlsZUluVGhyZWFkKExvbmdMaXZlZFN0YXRlJiwgVGhyZWFk
RGF0YSopOwogICAgIAogICAgIENvbXBpbGF0aW9uUmVzdWx0IGZpbmFsaXplV2l0aG91dE5vdGlm
eWluZ0NhbGxiYWNrKCk7CiAgICAgdm9pZCBmaW5hbGl6ZUFuZE5vdGlmeUNhbGxiYWNrKCk7CkBA
IC03OSw2ICs4MCw4IEBAIHN0cnVjdCBQbGFuIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGUK
ICAgICBDb21waWxhdGlvbk1vZGUgbW9kZTsKICAgICBjb25zdCB1bnNpZ25lZCBvc3JFbnRyeUJ5
dGVjb2RlSW5kZXg7CiAgICAgT3BlcmFuZHM8SlNWYWx1ZT4gbXVzdEhhbmRsZVZhbHVlczsKKyAg
ICAKKyAgICBUaHJlYWREYXRhKiB0aHJlYWREYXRhOwogCiAgICAgUmVmUHRyPFByb2ZpbGVyOjpD
b21waWxhdGlvbj4gY29tcGlsYXRpb247CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHU2FmZXBvaW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1NhZmVwb2ludC5jcHAJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1NhZmVwb2ludC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw3NCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAq
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiREZHU2FmZXBvaW50LmgiCisKKyNpZiBFTkFCTEUoREZHX0pJ
VCkKKworI2luY2x1ZGUgIkRGR1BsYW4uaCIKKyNpbmNsdWRlICJERkdTY2FubmFibGUuaCIKKyNp
bmNsdWRlICJERkdUaHJlYWREYXRhLmgiCisKK25hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZH
IHsKKworU2FmZXBvaW50OjpTYWZlcG9pbnQoUGxhbiYgcGxhbikKKyAgICA6IG1fcGxhbihwbGFu
KQorICAgICwgbV9kaWRDYWxsQmVnaW4oZmFsc2UpCit7Cit9CisKK1NhZmVwb2ludDo6flNhZmVw
b2ludCgpCit7CisgICAgUkVMRUFTRV9BU1NFUlQobV9kaWRDYWxsQmVnaW4pOworICAgIGlmIChU
aHJlYWREYXRhKiBkYXRhID0gbV9wbGFuLnRocmVhZERhdGEpCisgICAgICAgIGRhdGEtPm1fcmln
aHRUb1J1bi5sb2NrKCk7Cit9CisKK3ZvaWQgU2FmZXBvaW50OjphZGQoU2Nhbm5hYmxlKiBzY2Fu
bmFibGUpCit7CisgICAgUkVMRUFTRV9BU1NFUlQoIW1fZGlkQ2FsbEJlZ2luKTsKKyAgICBtX3Nj
YW5uYWJsZXMuYXBwZW5kKHNjYW5uYWJsZSk7Cit9CisKK3ZvaWQgU2FmZXBvaW50OjpiZWdpbigp
Cit7CisgICAgUkVMRUFTRV9BU1NFUlQoIW1fZGlkQ2FsbEJlZ2luKTsKKyAgICBpZiAoVGhyZWFk
RGF0YSogZGF0YSA9IG1fcGxhbi50aHJlYWREYXRhKQorICAgICAgICBkYXRhLT5tX3JpZ2h0VG9S
dW4udW5sb2NrKCk7CisgICAgbV9kaWRDYWxsQmVnaW4gPSB0cnVlOworfQorCit2b2lkIFNhZmVw
b2ludDo6dmlzaXRDaGlsZHJlbihTbG90VmlzaXRvciYgdmlzaXRvcikKK3sKKyAgICBSRUxFQVNF
X0FTU0VSVChtX2RpZENhbGxCZWdpbik7CisgICAgZm9yICh1bnNpZ25lZCBpID0gbV9zY2FubmFi
bGVzLnNpemUoKTsgaS0tOykKKyAgICAgICAgbV9zY2FubmFibGVzW2ldLT52aXNpdENoaWxkcmVu
KHZpc2l0b3IpOworfQorCit9IH0gLy8gbmFtZXNwYWNlIEpTQzo6REZHCisKKyNlbmRpZiAvLyBF
TkFCTEUoREZHX0pJVCkKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTYWZl
cG9pbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVw
b2ludC5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTYWZl
cG9pbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDY0IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBB
TlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgREZHU2FmZXBvaW50X2gKKyNk
ZWZpbmUgREZHU2FmZXBvaW50X2gKKworI2lmIEVOQUJMRShERkdfSklUKQorCisjaW5jbHVkZSA8
d3RmL1ZlY3Rvci5oPgorCituYW1lc3BhY2UgSlNDIHsKKworY2xhc3MgU2xvdFZpc2l0b3I7CisK
K25hbWVzcGFjZSBERkcgeworCitjbGFzcyBTY2FubmFibGU7CitzdHJ1Y3QgUGxhbjsKKworY2xh
c3MgU2FmZXBvaW50IHsKK3B1YmxpYzoKKyAgICBTYWZlcG9pbnQoUGxhbiYpOworICAgIH5TYWZl
cG9pbnQoKTsKKyAgICAKKyAgICB2b2lkIGFkZChTY2FubmFibGUqKTsKKyAgICAKKyAgICB2b2lk
IGJlZ2luKCk7CisgICAgCisgICAgdm9pZCB2aXNpdENoaWxkcmVuKFNsb3RWaXNpdG9yJik7Cisg
ICAgCitwcml2YXRlOgorICAgIFBsYW4mIG1fcGxhbjsKKyAgICBWZWN0b3I8U2Nhbm5hYmxlKj4g
bV9zY2FubmFibGVzOworICAgIGJvb2wgbV9kaWRDYWxsQmVnaW47Cit9OworCit9IH0gLy8gbmFt
ZXNwYWNlIEpTQzo6REZHCisKKyNlbmRpZiAvLyBFTkFCTEUoREZHX0pJVCkKKworI2VuZGlmIC8v
IERGR1NhZmVwb2ludF9oCisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2Nh
bm5hYmxlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTY2Fu
bmFibGUuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2Nh
bm5hYmxlLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIERGR1NjYW5uYWJsZV9oCisj
ZGVmaW5lIERGR1NjYW5uYWJsZV9oCisKKyNpZiBFTkFCTEUoREZHX0pJVCkKKworbmFtZXNwYWNl
IEpTQyB7CisKK2NsYXNzIFNsb3RWaXNpdG9yOworCituYW1lc3BhY2UgREZHIHsKKworY2xhc3Mg
U2Nhbm5hYmxlIHsKK3B1YmxpYzoKKyAgICBTY2FubmFibGUoKSB7IH0KKyAgICB2aXJ0dWFsIH5T
Y2FubmFibGUoKSB7IH0KKyAgICAKKyAgICB2aXJ0dWFsIHZvaWQgdmlzaXRDaGlsZHJlbihTbG90
VmlzaXRvciYpID0gMDsKK307CisKK30gfSAvLyBuYW1lc3BhY2UgSlNDOjpERkcKKworI2VuZGlm
IC8vIEVOQUJMRShERkdfSklUKQorCisjZW5kaWYgLy8gREZHU2Nhbm5hYmxlX2gKKwpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdUaHJlYWREYXRhLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1RocmVhZERhdGEuY3BwCShyZXZpc2lvbiAw
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdUaHJlYWREYXRhLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMCwwICsxLDQ3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJERkdUaHJlYWRE
YXRhLmgiCisKKyNpZiBFTkFCTEUoREZHX0pJVCkKKworbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFj
ZSBERkcgeworCitUaHJlYWREYXRhOjpUaHJlYWREYXRhKFdvcmtsaXN0KiB3b3JrbGlzdCkKKyAg
ICA6IG1fd29ya2xpc3Qod29ya2xpc3QpCisgICAgLCBtX2lkZW50aWZpZXIoMCkKKyAgICAsIG1f
c2FmZXBvaW50KG51bGxwdHIpCit7Cit9CisKK1RocmVhZERhdGE6On5UaHJlYWREYXRhKCkKK3sK
K30KKworfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkRGRworCisjZW5kaWYgLy8gRU5BQkxFKERGR19K
SVQpCisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVGhyZWFkRGF0YS5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVGhyZWFkRGF0YS5oCShy
ZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdUaHJlYWREYXRhLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw1OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
NCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIERGR1RocmVhZERhdGFfaAorI2RlZmluZSBE
RkdUaHJlYWREYXRhX2gKKworI2lmIEVOQUJMRShERkdfSklUKQorCisjaW5jbHVkZSA8d3RmL1Ro
cmVhZGluZy5oPgorI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmdQcmltaXRpdmVzLmg+CisKK25hbWVz
cGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKKworY2xhc3MgU2FmZXBvaW50OworY2xhc3MgV29y
a2xpc3Q7CisKK2NsYXNzIFRocmVhZERhdGEgeworcHVibGljOgorICAgIFRocmVhZERhdGEoV29y
a2xpc3QqKTsKKyAgICB+VGhyZWFkRGF0YSgpOworICAgIAorcHJpdmF0ZToKKyAgICBmcmllbmQg
Y2xhc3MgU2FmZXBvaW50OworICAgIGZyaWVuZCBjbGFzcyBXb3JrbGlzdDsKKyAgICAKKyAgICBX
b3JrbGlzdCogbV93b3JrbGlzdDsKKyAgICBUaHJlYWRJZGVudGlmaWVyIG1faWRlbnRpZmllcjsK
KyAgICBNdXRleCBtX3JpZ2h0VG9SdW47CisgICAgU2FmZXBvaW50KiBtX3NhZmVwb2ludDsKK307
CisKK30gfSAvLyBuYW1lc3BhY2UgSlNDOjpERkcKKworI2VuZGlmIC8vIEVOQUJMRShERkdfSklU
KQorCisjZW5kaWYgLy8gREZHVGhyZWFkRGF0YV9oCisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHVGh1bmtzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1RodW5rcy5jcHAJKHJldmlzaW9uIDE2MzY5NSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHVGh1bmtzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzIsNiArMzIsNyBA
QAogI2luY2x1ZGUgIkRGR09TUkV4aXRDb21waWxlci5oIgogI2luY2x1ZGUgIkZQUkluZm8uaCIK
ICNpbmNsdWRlICJHUFJJbmZvLmgiCisjaW5jbHVkZSAiTGlua0J1ZmZlci5oIgogI2luY2x1ZGUg
Ik1hY3JvQXNzZW1ibGVyLmgiCiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHV29ya2xpc3QuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHV29ya2xpc3QuY3BwCShyZXZpc2lvbiAx
NjM2OTUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1dvcmtsaXN0LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkNvZGVCbG9jay5oIgogI2lu
Y2x1ZGUgIkRlZmVyR0MuaCIKICNpbmNsdWRlICJERkdMb25nTGl2ZWRTdGF0ZS5oIgorI2luY2x1
ZGUgIkRGR1NhZmVwb2ludC5oIgogI2luY2x1ZGUgPG11dGV4PgogCiBuYW1lc3BhY2UgSlNDIHsg
bmFtZXNwYWNlIERGRyB7CkBAIC01Nyw4ICs1OCw3IEBAIHZvaWQgV29ya2xpc3Q6OmZpbmlzaENy
ZWF0aW9uKHVuc2lnbmVkIG4KIHsKICAgICBSRUxFQVNFX0FTU0VSVChudW1iZXJPZlRocmVhZHMp
OwogICAgIGZvciAodW5zaWduZWQgaSA9IG51bWJlck9mVGhyZWFkczsgaS0tOykgewotICAgICAg
ICBzdGQ6OnVuaXF1ZV9wdHI8VGhyZWFkRGF0YT4gZGF0YSA9IHN0ZDo6bWFrZV91bmlxdWU8VGhy
ZWFkRGF0YT4oKTsKLSAgICAgICAgZGF0YS0+bV93b3JrbGlzdCA9IHRoaXM7CisgICAgICAgIHN0
ZDo6dW5pcXVlX3B0cjxUaHJlYWREYXRhPiBkYXRhID0gc3RkOjptYWtlX3VuaXF1ZTxUaHJlYWRE
YXRhPih0aGlzKTsKICAgICAgICAgZGF0YS0+bV9pZGVudGlmaWVyID0gY3JlYXRlVGhyZWFkKHRo
cmVhZEZ1bmN0aW9uLCBkYXRhLmdldCgpLCAiSlNDIENvbXBpbGF0aW9uIFRocmVhZCIpOwogICAg
ICAgICBtX3RocmVhZHMuYXBwZW5kKHN0ZDo6bW92ZShkYXRhKSk7CiAgICAgfQpAQCAtMjEwLDYg
KzIxMCwxMiBAQCB2b2lkIFdvcmtsaXN0Ojp2aXNpdENoaWxkcmVuKFNsb3RWaXNpdG9yCiAgICAg
ICAgIGl0ZXItPmtleS52aXNpdENoaWxkcmVuKGNvZGVCbG9ja3MpOwogICAgICAgICBpdGVyLT52
YWx1ZS0+dmlzaXRDaGlsZHJlbih2aXNpdG9yLCBjb2RlQmxvY2tzKTsKICAgICB9CisgICAgCisg
ICAgZm9yICh1bnNpZ25lZCBpID0gbV90aHJlYWRzLnNpemUoKTsgaS0tOykgeworICAgICAgICBU
aHJlYWREYXRhKiBkYXRhID0gbV90aHJlYWRzW2ldLmdldCgpOworICAgICAgICBpZiAoU2FmZXBv
aW50KiBzYWZlcG9pbnQgPSBkYXRhLT5tX3NhZmVwb2ludCkKKyAgICAgICAgICAgIHNhZmVwb2lu
dC0+dmlzaXRDaGlsZHJlbih2aXNpdG9yKTsKKyAgICB9CiB9CiAKIHNpemVfdCBXb3JrbGlzdDo6
cXVldWVMZW5ndGgoKQpAQCAtMjY1LDcgKzI3MSw3IEBAIHZvaWQgV29ya2xpc3Q6OnJ1blRocmVh
ZChUaHJlYWREYXRhKiBkYXQKICAgICAgICAgICAgIGlmIChPcHRpb25zOjp2ZXJib3NlQ29tcGls
YXRpb25RdWV1ZSgpKQogICAgICAgICAgICAgICAgIGRhdGFMb2coKnRoaXMsICI6IENvbXBpbGlu
ZyAiLCBwbGFuLT5rZXkoKSwgIiBhc3luY2hyb25vdXNseVxuIik7CiAgICAgICAgIAotICAgICAg
ICAgICAgcGxhbi0+Y29tcGlsZUluVGhyZWFkKGxvbmdMaXZlZFN0YXRlKTsKKyAgICAgICAgICAg
IHBsYW4tPmNvbXBpbGVJblRocmVhZChsb25nTGl2ZWRTdGF0ZSwgZGF0YSk7CiAgICAgICAgIH0K
ICAgICAgICAgCiAgICAgICAgIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
V29ya2xpc3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1dv
cmtsaXN0LmgJKHJldmlzaW9uIDE2MzY5NSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHV29ya2xpc3QuaAkod29ya2luZyBjb3B5KQpAQCAtMzEsNiArMzEsNyBAQAogI2lmIEVOQUJM
RShERkdfSklUKQogCiAjaW5jbHVkZSAiREZHUGxhbi5oIgorI2luY2x1ZGUgIkRGR1RocmVhZERh
dGEuaCIKICNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgog
I2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgpAQCAtNzcsMTIgKzc4LDYgQEAgcHVibGljOgog
ICAgIHZvaWQgZHVtcChQcmludFN0cmVhbSYpIGNvbnN0OwogICAgIAogcHJpdmF0ZToKLSAgICBz
dHJ1Y3QgVGhyZWFkRGF0YSB7Ci0gICAgICAgIFdvcmtsaXN0KiBtX3dvcmtsaXN0OwotICAgICAg
ICBUaHJlYWRJZGVudGlmaWVyIG1faWRlbnRpZmllcjsKLSAgICAgICAgTXV0ZXggbV9yaWdodFRv
UnVuOwotICAgIH07Ci0gICAgCiAgICAgV29ya2xpc3QoKTsKICAgICB2b2lkIGZpbmlzaENyZWF0
aW9uKHVuc2lnbmVkIG51bWJlck9mVGhyZWFkcyk7CiAgICAgCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZnRsL0ZUTENvbXBpbGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9mdGwvRlRMQ29tcGlsZS5jcHAJKHJldmlzaW9uIDE2MzY5NSkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9mdGwvRlRMQ29tcGlsZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMxLDYg
KzMxLDcgQEAKICNpbmNsdWRlICJDb2RlQmxvY2tXaXRoSklUVHlwZS5oIgogI2luY2x1ZGUgIkND
YWxsSGVscGVycy5oIgogI2luY2x1ZGUgIkRGR0NvbW1vbi5oIgorI2luY2x1ZGUgIkRGR0dyYXBo
U2FmZXBvaW50LmgiCiAjaW5jbHVkZSAiRGF0YVZpZXcuaCIKICNpbmNsdWRlICJEaXNhc3NlbWJs
ZXIuaCIKICNpbmNsdWRlICJGVExFeGl0VGh1bmtHZW5lcmF0b3IuaCIKQEAgLTQ1Miw3MCArNDUz
LDc0IEBAIHZvaWQgY29tcGlsZShTdGF0ZSYgc3RhdGUpCiB7CiAgICAgY2hhciogZXJyb3IgPSAw
OwogICAgIAotICAgIExMVk1NQ0pJVENvbXBpbGVyT3B0aW9ucyBvcHRpb25zOwotICAgIGxsdm0t
PkluaXRpYWxpemVNQ0pJVENvbXBpbGVyT3B0aW9ucygmb3B0aW9ucywgc2l6ZW9mKG9wdGlvbnMp
KTsKLSAgICBvcHRpb25zLk9wdExldmVsID0gT3B0aW9uczo6bGx2bUJhY2tlbmRPcHRpbWl6YXRp
b25MZXZlbCgpOwotICAgIG9wdGlvbnMuTm9GcmFtZVBvaW50ZXJFbGltID0gdHJ1ZTsKLSAgICBp
ZiAoT3B0aW9uczo6dXNlTExWTVNtYWxsQ29kZU1vZGVsKCkpCi0gICAgICAgIG9wdGlvbnMuQ29k
ZU1vZGVsID0gTExWTUNvZGVNb2RlbFNtYWxsOwotICAgIG9wdGlvbnMuRW5hYmxlRmFzdElTZWwg
PSBPcHRpb25zOjplbmFibGVMTFZNRmFzdElTZWwoKTsKLSAgICBvcHRpb25zLk1DSk1NID0gbGx2
bS0+Q3JlYXRlU2ltcGxlTUNKSVRNZW1vcnlNYW5hZ2VyKAotICAgICAgICAmc3RhdGUsIG1tQWxs
b2NhdGVDb2RlU2VjdGlvbiwgbW1BbGxvY2F0ZURhdGFTZWN0aW9uLCBtbUFwcGx5UGVybWlzc2lv
bnMsIG1tRGVzdHJveSk7Ci0gICAgCi0gICAgTExWTUV4ZWN1dGlvbkVuZ2luZVJlZiBlbmdpbmU7
Ci0gICAgCi0gICAgaWYgKGxsdm0tPkNyZWF0ZU1DSklUQ29tcGlsZXJGb3JNb2R1bGUoJmVuZ2lu
ZSwgc3RhdGUubW9kdWxlLCAmb3B0aW9ucywgc2l6ZW9mKG9wdGlvbnMpLCAmZXJyb3IpKSB7Ci0g
ICAgICAgIGRhdGFMb2coIkZBVEFMOiBDb3VsZCBub3QgY3JlYXRlIExMVk0gZXhlY3V0aW9uIGVu
Z2luZTogIiwgZXJyb3IsICJcbiIpOwotICAgICAgICBDUkFTSCgpOwotICAgIH0KLQotICAgIExM
Vk1QYXNzTWFuYWdlclJlZiBmdW5jdGlvblBhc3NlcyA9IDA7Ci0gICAgTExWTVBhc3NNYW5hZ2Vy
UmVmIG1vZHVsZVBhc3NlczsKLSAgICAKLSAgICBpZiAoT3B0aW9uczo6bGx2bVNpbXBsZU9wdCgp
KSB7Ci0gICAgICAgIG1vZHVsZVBhc3NlcyA9IGxsdm0tPkNyZWF0ZVBhc3NNYW5hZ2VyKCk7Ci0g
ICAgICAgIGxsdm0tPkFkZFRhcmdldERhdGEobGx2bS0+R2V0RXhlY3V0aW9uRW5naW5lVGFyZ2V0
RGF0YShlbmdpbmUpLCBtb2R1bGVQYXNzZXMpOwotICAgICAgICBsbHZtLT5BZGRQcm9tb3RlTWVt
b3J5VG9SZWdpc3RlclBhc3MobW9kdWxlUGFzc2VzKTsKLSAgICAgICAgbGx2bS0+QWRkQ29uc3Rh
bnRQcm9wYWdhdGlvblBhc3MobW9kdWxlUGFzc2VzKTsKLSAgICAgICAgbGx2bS0+QWRkSW5zdHJ1
Y3Rpb25Db21iaW5pbmdQYXNzKG1vZHVsZVBhc3Nlcyk7Ci0gICAgICAgIGxsdm0tPkFkZEJhc2lj
QWxpYXNBbmFseXNpc1Bhc3MobW9kdWxlUGFzc2VzKTsKLSAgICAgICAgbGx2bS0+QWRkVHlwZUJh
c2VkQWxpYXNBbmFseXNpc1Bhc3MobW9kdWxlUGFzc2VzKTsKLSAgICAgICAgbGx2bS0+QWRkR1ZO
UGFzcyhtb2R1bGVQYXNzZXMpOwotICAgICAgICBsbHZtLT5BZGRDRkdTaW1wbGlmaWNhdGlvblBh
c3MobW9kdWxlUGFzc2VzKTsKLSAgICAgICAgbGx2bS0+UnVuUGFzc01hbmFnZXIobW9kdWxlUGFz
c2VzLCBzdGF0ZS5tb2R1bGUpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIExMVk1QYXNzTWFuYWdl
ckJ1aWxkZXJSZWYgcGFzc0J1aWxkZXIgPSBsbHZtLT5QYXNzTWFuYWdlckJ1aWxkZXJDcmVhdGUo
KTsKLSAgICAgICAgbGx2bS0+UGFzc01hbmFnZXJCdWlsZGVyU2V0T3B0TGV2ZWwocGFzc0J1aWxk
ZXIsIE9wdGlvbnM6Omxsdm1PcHRpbWl6YXRpb25MZXZlbCgpKTsKLSAgICAgICAgbGx2bS0+UGFz
c01hbmFnZXJCdWlsZGVyU2V0U2l6ZUxldmVsKHBhc3NCdWlsZGVyLCBPcHRpb25zOjpsbHZtU2l6
ZUxldmVsKCkpOwotICAgICAgICAKLSAgICAgICAgZnVuY3Rpb25QYXNzZXMgPSBsbHZtLT5DcmVh
dGVGdW5jdGlvblBhc3NNYW5hZ2VyRm9yTW9kdWxlKHN0YXRlLm1vZHVsZSk7Ci0gICAgICAgIG1v
ZHVsZVBhc3NlcyA9IGxsdm0tPkNyZWF0ZVBhc3NNYW5hZ2VyKCk7Ci0gICAgICAgIAotICAgICAg
ICBsbHZtLT5BZGRUYXJnZXREYXRhKGxsdm0tPkdldEV4ZWN1dGlvbkVuZ2luZVRhcmdldERhdGEo
ZW5naW5lKSwgbW9kdWxlUGFzc2VzKTsKLSAgICAgICAgCi0gICAgICAgIGxsdm0tPlBhc3NNYW5h
Z2VyQnVpbGRlclBvcHVsYXRlRnVuY3Rpb25QYXNzTWFuYWdlcihwYXNzQnVpbGRlciwgZnVuY3Rp
b25QYXNzZXMpOwotICAgICAgICBsbHZtLT5QYXNzTWFuYWdlckJ1aWxkZXJQb3B1bGF0ZU1vZHVs
ZVBhc3NNYW5hZ2VyKHBhc3NCdWlsZGVyLCBtb2R1bGVQYXNzZXMpOwotICAgICAgICAKLSAgICAg
ICAgbGx2bS0+UGFzc01hbmFnZXJCdWlsZGVyRGlzcG9zZShwYXNzQnVpbGRlcik7Ci0gICAgICAg
IAotICAgICAgICBsbHZtLT5Jbml0aWFsaXplRnVuY3Rpb25QYXNzTWFuYWdlcihmdW5jdGlvblBh
c3Nlcyk7Ci0gICAgICAgIGZvciAoTFZhbHVlIGZ1bmN0aW9uID0gbGx2bS0+R2V0Rmlyc3RGdW5j
dGlvbihzdGF0ZS5tb2R1bGUpOyBmdW5jdGlvbjsgZnVuY3Rpb24gPSBsbHZtLT5HZXROZXh0RnVu
Y3Rpb24oZnVuY3Rpb24pKQotICAgICAgICAgICAgbGx2bS0+UnVuRnVuY3Rpb25QYXNzTWFuYWdl
cihmdW5jdGlvblBhc3NlcywgZnVuY3Rpb24pOwotICAgICAgICBsbHZtLT5GaW5hbGl6ZUZ1bmN0
aW9uUGFzc01hbmFnZXIoZnVuY3Rpb25QYXNzZXMpOwotICAgICAgICAKLSAgICAgICAgbGx2bS0+
UnVuUGFzc01hbmFnZXIobW9kdWxlUGFzc2VzLCBzdGF0ZS5tb2R1bGUpOwotICAgIH0KLQotICAg
IGlmIChERkc6OnNob3VsZFNob3dEaXNhc3NlbWJseSgpIHx8IERGRzo6dmVyYm9zZUNvbXBpbGF0
aW9uRW5hYmxlZCgpKQotICAgICAgICBzdGF0ZS5kdW1wU3RhdGUoImFmdGVyIG9wdGltaXphdGlv
biIpOwotICAgIAotICAgIC8vIEZJWE1FOiBOZWVkIHRvIGFkZCBzdXBwb3J0IGZvciB0aGUgY2Fz
ZSB3aGVyZSBKSVQgbWVtb3J5IGFsbG9jYXRpb24gZmFpbGVkLgotICAgIC8vIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTM2MjAKLSAgICBzdGF0ZS5nZW5lcmF0ZWRG
dW5jdGlvbiA9IHJlaW50ZXJwcmV0X2Nhc3Q8R2VuZXJhdGVkRnVuY3Rpb24+KGxsdm0tPkdldFBv
aW50ZXJUb0dsb2JhbChlbmdpbmUsIHN0YXRlLmZ1bmN0aW9uKSk7Ci0gICAgaWYgKGZ1bmN0aW9u
UGFzc2VzKQotICAgICAgICBsbHZtLT5EaXNwb3NlUGFzc01hbmFnZXIoZnVuY3Rpb25QYXNzZXMp
OwotICAgIGxsdm0tPkRpc3Bvc2VQYXNzTWFuYWdlcihtb2R1bGVQYXNzZXMpOwotICAgIGxsdm0t
PkRpc3Bvc2VFeGVjdXRpb25FbmdpbmUoZW5naW5lKTsKKyAgICB7CisgICAgICAgIEdyYXBoU2Fm
ZXBvaW50IHNhZmVwb2ludChzdGF0ZS5ncmFwaCk7CisgICAgICAgIAorICAgICAgICBMTFZNTUNK
SVRDb21waWxlck9wdGlvbnMgb3B0aW9uczsKKyAgICAgICAgbGx2bS0+SW5pdGlhbGl6ZU1DSklU
Q29tcGlsZXJPcHRpb25zKCZvcHRpb25zLCBzaXplb2Yob3B0aW9ucykpOworICAgICAgICBvcHRp
b25zLk9wdExldmVsID0gT3B0aW9uczo6bGx2bUJhY2tlbmRPcHRpbWl6YXRpb25MZXZlbCgpOwor
ICAgICAgICBvcHRpb25zLk5vRnJhbWVQb2ludGVyRWxpbSA9IHRydWU7CisgICAgICAgIGlmIChP
cHRpb25zOjp1c2VMTFZNU21hbGxDb2RlTW9kZWwoKSkKKyAgICAgICAgICAgIG9wdGlvbnMuQ29k
ZU1vZGVsID0gTExWTUNvZGVNb2RlbFNtYWxsOworICAgICAgICBvcHRpb25zLkVuYWJsZUZhc3RJ
U2VsID0gT3B0aW9uczo6ZW5hYmxlTExWTUZhc3RJU2VsKCk7CisgICAgICAgIG9wdGlvbnMuTUNK
TU0gPSBsbHZtLT5DcmVhdGVTaW1wbGVNQ0pJVE1lbW9yeU1hbmFnZXIoCisgICAgICAgICAgICAm
c3RhdGUsIG1tQWxsb2NhdGVDb2RlU2VjdGlvbiwgbW1BbGxvY2F0ZURhdGFTZWN0aW9uLCBtbUFw
cGx5UGVybWlzc2lvbnMsIG1tRGVzdHJveSk7CisgICAgCisgICAgICAgIExMVk1FeGVjdXRpb25F
bmdpbmVSZWYgZW5naW5lOworICAgIAorICAgICAgICBpZiAobGx2bS0+Q3JlYXRlTUNKSVRDb21w
aWxlckZvck1vZHVsZSgmZW5naW5lLCBzdGF0ZS5tb2R1bGUsICZvcHRpb25zLCBzaXplb2Yob3B0
aW9ucyksICZlcnJvcikpIHsKKyAgICAgICAgICAgIGRhdGFMb2coIkZBVEFMOiBDb3VsZCBub3Qg
Y3JlYXRlIExMVk0gZXhlY3V0aW9uIGVuZ2luZTogIiwgZXJyb3IsICJcbiIpOworICAgICAgICAg
ICAgQ1JBU0goKTsKKyAgICAgICAgfQorCisgICAgICAgIExMVk1QYXNzTWFuYWdlclJlZiBmdW5j
dGlvblBhc3NlcyA9IDA7CisgICAgICAgIExMVk1QYXNzTWFuYWdlclJlZiBtb2R1bGVQYXNzZXM7
CisgICAgCisgICAgICAgIGlmIChPcHRpb25zOjpsbHZtU2ltcGxlT3B0KCkpIHsKKyAgICAgICAg
ICAgIG1vZHVsZVBhc3NlcyA9IGxsdm0tPkNyZWF0ZVBhc3NNYW5hZ2VyKCk7CisgICAgICAgICAg
ICBsbHZtLT5BZGRUYXJnZXREYXRhKGxsdm0tPkdldEV4ZWN1dGlvbkVuZ2luZVRhcmdldERhdGEo
ZW5naW5lKSwgbW9kdWxlUGFzc2VzKTsKKyAgICAgICAgICAgIGxsdm0tPkFkZFByb21vdGVNZW1v
cnlUb1JlZ2lzdGVyUGFzcyhtb2R1bGVQYXNzZXMpOworICAgICAgICAgICAgbGx2bS0+QWRkQ29u
c3RhbnRQcm9wYWdhdGlvblBhc3MobW9kdWxlUGFzc2VzKTsKKyAgICAgICAgICAgIGxsdm0tPkFk
ZEluc3RydWN0aW9uQ29tYmluaW5nUGFzcyhtb2R1bGVQYXNzZXMpOworICAgICAgICAgICAgbGx2
bS0+QWRkQmFzaWNBbGlhc0FuYWx5c2lzUGFzcyhtb2R1bGVQYXNzZXMpOworICAgICAgICAgICAg
bGx2bS0+QWRkVHlwZUJhc2VkQWxpYXNBbmFseXNpc1Bhc3MobW9kdWxlUGFzc2VzKTsKKyAgICAg
ICAgICAgIGxsdm0tPkFkZEdWTlBhc3MobW9kdWxlUGFzc2VzKTsKKyAgICAgICAgICAgIGxsdm0t
PkFkZENGR1NpbXBsaWZpY2F0aW9uUGFzcyhtb2R1bGVQYXNzZXMpOworICAgICAgICAgICAgbGx2
bS0+UnVuUGFzc01hbmFnZXIobW9kdWxlUGFzc2VzLCBzdGF0ZS5tb2R1bGUpOworICAgICAgICB9
IGVsc2UgeworICAgICAgICAgICAgTExWTVBhc3NNYW5hZ2VyQnVpbGRlclJlZiBwYXNzQnVpbGRl
ciA9IGxsdm0tPlBhc3NNYW5hZ2VyQnVpbGRlckNyZWF0ZSgpOworICAgICAgICAgICAgbGx2bS0+
UGFzc01hbmFnZXJCdWlsZGVyU2V0T3B0TGV2ZWwocGFzc0J1aWxkZXIsIE9wdGlvbnM6Omxsdm1P
cHRpbWl6YXRpb25MZXZlbCgpKTsKKyAgICAgICAgICAgIGxsdm0tPlBhc3NNYW5hZ2VyQnVpbGRl
clNldFNpemVMZXZlbChwYXNzQnVpbGRlciwgT3B0aW9uczo6bGx2bVNpemVMZXZlbCgpKTsKKyAg
ICAgICAgCisgICAgICAgICAgICBmdW5jdGlvblBhc3NlcyA9IGxsdm0tPkNyZWF0ZUZ1bmN0aW9u
UGFzc01hbmFnZXJGb3JNb2R1bGUoc3RhdGUubW9kdWxlKTsKKyAgICAgICAgICAgIG1vZHVsZVBh
c3NlcyA9IGxsdm0tPkNyZWF0ZVBhc3NNYW5hZ2VyKCk7CisgICAgICAgIAorICAgICAgICAgICAg
bGx2bS0+QWRkVGFyZ2V0RGF0YShsbHZtLT5HZXRFeGVjdXRpb25FbmdpbmVUYXJnZXREYXRhKGVu
Z2luZSksIG1vZHVsZVBhc3Nlcyk7CisgICAgICAgIAorICAgICAgICAgICAgbGx2bS0+UGFzc01h
bmFnZXJCdWlsZGVyUG9wdWxhdGVGdW5jdGlvblBhc3NNYW5hZ2VyKHBhc3NCdWlsZGVyLCBmdW5j
dGlvblBhc3Nlcyk7CisgICAgICAgICAgICBsbHZtLT5QYXNzTWFuYWdlckJ1aWxkZXJQb3B1bGF0
ZU1vZHVsZVBhc3NNYW5hZ2VyKHBhc3NCdWlsZGVyLCBtb2R1bGVQYXNzZXMpOworICAgICAgICAK
KyAgICAgICAgICAgIGxsdm0tPlBhc3NNYW5hZ2VyQnVpbGRlckRpc3Bvc2UocGFzc0J1aWxkZXIp
OworICAgICAgICAKKyAgICAgICAgICAgIGxsdm0tPkluaXRpYWxpemVGdW5jdGlvblBhc3NNYW5h
Z2VyKGZ1bmN0aW9uUGFzc2VzKTsKKyAgICAgICAgICAgIGZvciAoTFZhbHVlIGZ1bmN0aW9uID0g
bGx2bS0+R2V0Rmlyc3RGdW5jdGlvbihzdGF0ZS5tb2R1bGUpOyBmdW5jdGlvbjsgZnVuY3Rpb24g
PSBsbHZtLT5HZXROZXh0RnVuY3Rpb24oZnVuY3Rpb24pKQorICAgICAgICAgICAgICAgIGxsdm0t
PlJ1bkZ1bmN0aW9uUGFzc01hbmFnZXIoZnVuY3Rpb25QYXNzZXMsIGZ1bmN0aW9uKTsKKyAgICAg
ICAgICAgIGxsdm0tPkZpbmFsaXplRnVuY3Rpb25QYXNzTWFuYWdlcihmdW5jdGlvblBhc3Nlcyk7
CisgICAgICAgIAorICAgICAgICAgICAgbGx2bS0+UnVuUGFzc01hbmFnZXIobW9kdWxlUGFzc2Vz
LCBzdGF0ZS5tb2R1bGUpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKERGRzo6c2hvdWxkU2hv
d0Rpc2Fzc2VtYmx5KCkgfHwgREZHOjp2ZXJib3NlQ29tcGlsYXRpb25FbmFibGVkKCkpCisgICAg
ICAgICAgICBzdGF0ZS5kdW1wU3RhdGUoImFmdGVyIG9wdGltaXphdGlvbiIpOworICAgIAorICAg
ICAgICAvLyBGSVhNRTogTmVlZCB0byBhZGQgc3VwcG9ydCBmb3IgdGhlIGNhc2Ugd2hlcmUgSklU
IG1lbW9yeSBhbGxvY2F0aW9uIGZhaWxlZC4KKyAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTExMzYyMAorICAgICAgICBzdGF0ZS5nZW5lcmF0ZWRGdW5j
dGlvbiA9IHJlaW50ZXJwcmV0X2Nhc3Q8R2VuZXJhdGVkRnVuY3Rpb24+KGxsdm0tPkdldFBvaW50
ZXJUb0dsb2JhbChlbmdpbmUsIHN0YXRlLmZ1bmN0aW9uKSk7CisgICAgICAgIGlmIChmdW5jdGlv
blBhc3NlcykKKyAgICAgICAgICAgIGxsdm0tPkRpc3Bvc2VQYXNzTWFuYWdlcihmdW5jdGlvblBh
c3Nlcyk7CisgICAgICAgIGxsdm0tPkRpc3Bvc2VQYXNzTWFuYWdlcihtb2R1bGVQYXNzZXMpOwor
ICAgICAgICBsbHZtLT5EaXNwb3NlRXhlY3V0aW9uRW5naW5lKGVuZ2luZSk7CisgICAgfQogCiAg
ICAgaWYgKHNob3VsZFNob3dEaXNhc3NlbWJseSgpKSB7CiAgICAgICAgIGZvciAodW5zaWduZWQg
aSA9IDA7IGkgPCBzdGF0ZS5qaXRDb2RlLT5oYW5kbGVzKCkuc2l6ZSgpOyArK2kpIHsKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTGluay5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMaW5rLmNwcAkocmV2aXNpb24gMTYzNjk1KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMaW5rLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MzAsNyArMzAsNiBAQAogCiAjaW5jbHVkZSAiQXJpdHlDaGVja0ZhaWxSZXR1cm5UaHVua3MuaCIK
ICNpbmNsdWRlICJDQ2FsbEhlbHBlcnMuaCIKLSNpbmNsdWRlICJDYWxsRnJhbWVJbmxpbmVzLmgi
CiAjaW5jbHVkZSAiQ29kZUJsb2NrV2l0aEpJVFR5cGUuaCIKICNpbmNsdWRlICJERkdDb21tb24u
aCIKICNpbmNsdWRlICJGVExKSVRDb2RlLmgiCkBAIC0zOCw2ICszNyw3IEBACiAjaW5jbHVkZSAi
SklUU3R1YnMuaCIKICNpbmNsdWRlICJMTFZNQVBJLmgiCiAjaW5jbHVkZSAiTGlua0J1ZmZlci5o
IgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJQcm9maWxlckNvbXBpbGF0aW9u
LmgiCiAjaW5jbHVkZSAiVmlydHVhbFJlZ2lzdGVyLmgiCiAKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9mdGwvRlRMT1NSRXhpdENvbXBpbGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZnRsL0ZUTE9TUkV4aXRDb21waWxlci5jcHAJKHJldmlzaW9uIDE2MzY5
NSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT1NSRXhpdENvbXBpbGVyLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIkZUTEpJVENvZGUuaCIK
ICNpbmNsdWRlICJGVExPU1JFeGl0LmgiCiAjaW5jbHVkZSAiRlRMU2F2ZVJlc3RvcmUuaCIKKyNp
bmNsdWRlICJMaW5rQnVmZmVyLmgiCiAjaW5jbHVkZSAiTWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0
aENhbGwuaCIKICNpbmNsdWRlICJPcGVyYW5kc0lubGluZXMuaCIKICNpbmNsdWRlICJPcGVyYXRp
b25zLmgiCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFNsb3dQYXRoQ2FsbC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExTbG93UGF0aENh
bGwuY3BwCShyZXZpc2lvbiAxNjM2OTUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZU
TFNsb3dQYXRoQ2FsbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5LDkgKzI5LDkgQEAKICNpZiBF
TkFCTEUoRlRMX0pJVCkKIAogI2luY2x1ZGUgIkNDYWxsSGVscGVycy5oIgotI2luY2x1ZGUgIkNh
bGxGcmFtZUlubGluZXMuaCIKICNpbmNsdWRlICJGVExTdGF0ZS5oIgogI2luY2x1ZGUgIkdQUklu
Zm8uaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3Bh
Y2UgRlRMIHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExUaHVua3MuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMVGh1bmtzLmNwcAko
cmV2aXNpb24gMTYzNjk1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExUaHVua3Mu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjcsNyArMTI3LDcgQEAgTWFjcm9Bc3NlbWJsZXJDb2Rl
UmVmIHNsb3dQYXRoQ2FsbFRodW5rRwogICAgIGppdC5wcmVzZXJ2ZVJldHVybkFkZHJlc3NBZnRl
ckNhbGwoR1BSSW5mbzo6bm9uQXJnR1BSMCk7CiAgICAgaml0LnN0b3JlUHRyKEdQUkluZm86Om5v
bkFyZ0dQUjAsIEFzc2VtYmx5SGVscGVyczo6QWRkcmVzcyhNYWNyb0Fzc2VtYmxlcjo6c3RhY2tQ
b2ludGVyUmVnaXN0ZXIsIGtleS5vZmZzZXQoKSkpOwogICAgIAotICAgIEpJVENvbXBpbGVyOjpD
YWxsIGNhbGwgPSBqaXQuY2FsbCgpOworICAgIEFzc2VtYmx5SGVscGVyczo6Q2FsbCBjYWxsID0g
aml0LmNhbGwoKTsKIAogICAgIC8vIEZJWE1FOiBDU3RhY2sgLSBOZWVkIHRvIGRvIHNvbWV0aGlu
ZyBsaWtlIGppdC5lbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwogICAgIGppdC5sb2FkUHRyKEFzc2Vt
Ymx5SGVscGVyczo6QWRkcmVzcyhNYWNyb0Fzc2VtYmxlcjo6c3RhY2tQb2ludGVyUmVnaXN0ZXIs
IGtleS5vZmZzZXQoKSksIEdQUkluZm86Om5vblByZXNlcnZlZE5vblJldHVybkdQUik7CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TbG90VmlzaXRvci5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1Nsb3RWaXNpdG9yLmgJKHJldmlzaW9uIDE2MzY5
NSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1Nsb3RWaXNpdG9yLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTY4LDYgKzY4LDkgQEAgcHVibGljOgogICAgIHZvaWQgYXBwZW5kVW5iYXJyaWVy
ZWRWYWx1ZShKU1ZhbHVlKik7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KICAgICB2b2lkIGFw
cGVuZFVuYmFycmllcmVkV2VhayhXZWFrPFQ+Kik7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4K
KyAgICB2b2lkIGFwcGVuZFVuYmFycmllcmVkUmVhZE9ubHlQb2ludGVyKFQqKTsKKyAgICB2b2lk
IGFwcGVuZFVuYmFycmllcmVkUmVhZE9ubHlWYWx1ZShKU1ZhbHVlKTsKICAgICB2b2lkIHVuY29u
ZGl0aW9uYWxseUFwcGVuZChKU0NlbGwqKTsKICAgICAKICAgICB2b2lkIGFkZE9wYXF1ZVJvb3Qo
dm9pZCopOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvU2xvdFZpc2l0b3JJbmxp
bmVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvU2xvdFZpc2l0
b3JJbmxpbmVzLmgJKHJldmlzaW9uIDE2MzY5NSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9o
ZWFwL1Nsb3RWaXNpdG9ySW5saW5lcy5oCSh3b3JraW5nIGNvcHkpCkBAIC01MSw2ICs1MSwxMiBA
QCBpbmxpbmUgdm9pZCBTbG90VmlzaXRvcjo6YXBwZW5kVW5iYXJyaWVyCiAgICAgaW50ZXJuYWxB
cHBlbmQoc2xvdCwgY2VsbCk7CiB9CiAKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+CitpbmxpbmUgdm9p
ZCBTbG90VmlzaXRvcjo6YXBwZW5kVW5iYXJyaWVyZWRSZWFkT25seVBvaW50ZXIoVCogY2VsbCkK
K3sKKyAgICBpbnRlcm5hbEFwcGVuZCgwLCBjZWxsKTsKK30KKwogQUxXQVlTX0lOTElORSB2b2lk
IFNsb3RWaXNpdG9yOjphcHBlbmQoSlNWYWx1ZSogc2xvdCkKIHsKICAgICBBU1NFUlQoc2xvdCk7
CkBAIC02Myw2ICs2OSwxMSBAQCBBTFdBWVNfSU5MSU5FIHZvaWQgU2xvdFZpc2l0b3I6OmFwcGVu
ZFVuCiAgICAgaW50ZXJuYWxBcHBlbmQoc2xvdCwgKnNsb3QpOwogfQogCitBTFdBWVNfSU5MSU5F
IHZvaWQgU2xvdFZpc2l0b3I6OmFwcGVuZFVuYmFycmllcmVkUmVhZE9ubHlWYWx1ZShKU1ZhbHVl
IHZhbHVlKQoreworICAgIGludGVybmFsQXBwZW5kKDAsIHZhbHVlKTsKK30KKwogQUxXQVlTX0lO
TElORSB2b2lkIFNsb3RWaXNpdG9yOjphcHBlbmQoSlNDZWxsKiogc2xvdCkKIHsKICAgICBBU1NF
UlQoc2xvdCk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL1NjcmlwdENh
bGxTdGFja0ZhY3RvcnkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnNwZWN0b3IvU2NyaXB0Q2FsbFN0YWNrRmFjdG9yeS5jcHAJKHJldmlzaW9uIDE2MzY5NSkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvU2NyaXB0Q2FsbFN0YWNrRmFjdG9yeS5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTM1LDkgKzM1LDkgQEAKIAogI2luY2x1ZGUgIkFyZ0xpc3Qu
aCIKICNpbmNsdWRlICJDYWxsRnJhbWUuaCIKLSNpbmNsdWRlICJDYWxsRnJhbWVJbmxpbmVzLmgi
CiAjaW5jbHVkZSAiSlNDSlNWYWx1ZS5oIgogI2luY2x1ZGUgIkpTRnVuY3Rpb24uaCIKKyNpbmNs
dWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiU2NyaXB0QXJndW1lbnRzLmgiCiAjaW5jbHVk
ZSAiU2NyaXB0Q2FsbEZyYW1lLmgiCiAjaW5jbHVkZSAiU2NyaXB0Q2FsbFN0YWNrLmgiCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvUHJvdG9DYWxsRnJhbWUuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9Qcm90b0NhbGxG
cmFtZS5jcHAJKHJldmlzaW9uIDE2MzY5NSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRl
cnByZXRlci9Qcm90b0NhbGxGcmFtZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI3LDYgKzI3LDcg
QEAKICNpbmNsdWRlICJQcm90b0NhbGxGcmFtZS5oIgogCiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgi
CisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIlN0YWNrQWxpZ25tZW50LmgiCiAK
IG5hbWVzcGFjZSBKU0MgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRFeGNl
cHRpb25zLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVEV4
Y2VwdGlvbnMuY3BwCShyZXZpc2lvbiAxNjM2OTUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVEV4Y2VwdGlvbnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw3ICsyNyw2IEBACiAj
aW5jbHVkZSAiSklURXhjZXB0aW9ucy5oIgogCiAjaW5jbHVkZSAiQ2FsbEZyYW1lLmgiCi0jaW5j
bHVkZSAiQ2FsbEZyYW1lSW5saW5lcy5oIgogI2luY2x1ZGUgIkNvZGVCbG9jay5oIgogI2luY2x1
ZGUgIkludGVycHJldGVyLmgiCiAjaW5jbHVkZSAiSklUU3R1YnMuaCIKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklUSW5saW5lcy5oCShyZXZpc2lvbiAxNjM2OTUpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMjksNyAr
MjksNyBAQAogCiAjaWYgRU5BQkxFKEpJVCkKIAotI2luY2x1ZGUgIkNhbGxGcmFtZUlubGluZXMu
aCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAKIG5hbWVzcGFjZSBKU0MgewogCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAJKHJldmlzaW9uIDE2
MzY5NSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTI5LDcgKzI5LDYgQEAKIAogI2luY2x1ZGUgIkFyZ3VtZW50cy5oIgog
I2luY2x1ZGUgIkFycmF5Q29uc3RydWN0b3IuaCIKLSNpbmNsdWRlICJDYWxsRnJhbWVJbmxpbmVz
LmgiCiAjaW5jbHVkZSAiREZHQ29tcGlsYXRpb25Nb2RlLmgiCiAjaW5jbHVkZSAiREZHRHJpdmVy
LmgiCiAjaW5jbHVkZSAiREZHT1NSRW50cnkuaCIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvUmVwYXRjaC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9SZXBhdGNoLmNwcAkocmV2aXNpb24gMTYzNjk1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9SZXBhdGNoLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjksNyArMjksNiBAQAogI2lmIEVO
QUJMRShKSVQpCiAKICNpbmNsdWRlICJDQ2FsbEhlbHBlcnMuaCIKLSNpbmNsdWRlICJDYWxsRnJh
bWVJbmxpbmVzLmgiCiAjaW5jbHVkZSAiREZHT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIkRGR1Nw
ZWN1bGF0aXZlSklULmgiCiAjaW5jbHVkZSAiRlRMVGh1bmtzLmgiCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZUdlbmVyYXRvci5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVHZW5lcmF0b3IuY3BwCShyZXZp
c2lvbiAxNjM2OTUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZUdl
bmVyYXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI3LDcgKzI3LDYgQEAKICNpbmNsdWRlICJQ
cm9maWxlR2VuZXJhdG9yLmgiCiAKICNpbmNsdWRlICJDYWxsRnJhbWUuaCIKLSNpbmNsdWRlICJD
YWxsRnJhbWVJbmxpbmVzLmgiCiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgiCiAjaW5jbHVkZSAiSlNH
bG9iYWxPYmplY3QuaCIKICNpbmNsdWRlICJKU1N0cmluZ1JlZi5oIgpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJndW1lbnRzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHMuY3BwCShyZXZpc2lvbiAxNjM2OTUpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHMuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0yNSw3ICsyNSw2IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiQXJn
dW1lbnRzLmgiCiAKLSNpbmNsdWRlICJDYWxsRnJhbWVJbmxpbmVzLmgiCiAjaW5jbHVkZSAiSlNB
Y3RpdmF0aW9uLmgiCiAjaW5jbHVkZSAiSlNBcmd1bWVudHNJdGVyYXRvci5oIgogI2luY2x1ZGUg
IkpTRnVuY3Rpb24uaCIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ3Vt
ZW50c0l0ZXJhdG9yUHJvdG90eXBlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9Bcmd1bWVudHNJdGVyYXRvclByb3RvdHlwZS5jcHAJKHJldmlzaW9uIDE2
MzY5NSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ3VtZW50c0l0ZXJhdG9y
UHJvdG90eXBlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUg
IkFyZ3VtZW50c0l0ZXJhdG9yUHJvdG90eXBlLmgiCiAKICNpbmNsdWRlICJKU0FyZ3VtZW50c0l0
ZXJhdG9yLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIApJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzRXhjZXB0
aW9ucy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29t
bW9uU2xvd1BhdGhzRXhjZXB0aW9ucy5jcHAJKHJldmlzaW9uIDE2MzY5NSkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQYXRoc0V4Y2VwdGlvbnMuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgiCiAjaW5j
bHVkZSAiSklURXhjZXB0aW9ucy5oIgogI2luY2x1ZGUgIkxMSW50Q29tbW9uLmgiCisjaW5jbHVk
ZSAiT3BlcmF0aW9ucy5oIgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIENvbW1vblNsb3dQ
YXRocyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJndW1lbnRz
SXRlcmF0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTQXJndW1lbnRzSXRlcmF0b3IuY3BwCShyZXZpc2lvbiAxNjM2OTUpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0FyZ3VtZW50c0l0ZXJhdG9yLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIkpTQXJndW1lbnRzSXRlcmF0b3IuaCIKIAog
I2luY2x1ZGUgIkFyZ3VtZW50cy5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFtZXNw
YWNlIEpTQyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rp
b24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVu
Y3Rpb24uY3BwCShyZXZpc2lvbiAxNjM2OTUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0Z1bmN0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjksNyArMjksNiBAQAogI2lu
Y2x1ZGUgIkNvZGVCbG9jay5oIgogI2luY2x1ZGUgIkNvbW1vbklkZW50aWZpZXJzLmgiCiAjaW5j
bHVkZSAiQ2FsbEZyYW1lLmgiCi0jaW5jbHVkZSAiQ2FsbEZyYW1lSW5saW5lcy5oIgogI2luY2x1
ZGUgIkV4Y2VwdGlvbkhlbHBlcnMuaCIKICNpbmNsdWRlICJGdW5jdGlvblByb3RvdHlwZS5oIgog
I2luY2x1ZGUgIkdldHRlclNldHRlci5oIgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RnVuY3Rpb25zLmNwcAkocmV2aXNp
b24gMTYzNjk1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmpl
Y3RGdW5jdGlvbnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw3ICsyNiw2IEBACiAjaW5jbHVk
ZSAiSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuaCIKIAogI2luY2x1ZGUgIkNhbGxGcmFtZS5oIgot
I2luY2x1ZGUgIkNhbGxGcmFtZUlubGluZXMuaCIKICNpbmNsdWRlICJJbnRlcnByZXRlci5oIgog
I2luY2x1ZGUgIkpTRnVuY3Rpb24uaCIKICNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdENvbnN0cnVj
dG9yLmNwcAkocmV2aXNpb24gMTYzNjk1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvT2JqZWN0Q29uc3RydWN0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMiw3ICsyMiw2IEBA
CiAjaW5jbHVkZSAiT2JqZWN0Q29uc3RydWN0b3IuaCIKIAogI2luY2x1ZGUgIkJ1dHRlcmZseUlu
bGluZXMuaCIKLSNpbmNsdWRlICJDYWxsRnJhbWVJbmxpbmVzLmgiCiAjaW5jbHVkZSAiQ29waWVk
U3BhY2VJbmxpbmVzLmgiCiAjaW5jbHVkZSAiRXJyb3IuaCIKICNpbmNsdWRlICJFeGNlcHRpb25I
ZWxwZXJzLmgiCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcGVyYXRpb25z
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3BlcmF0aW9u
cy5oCShyZXZpc2lvbiAxNjM2OTUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9P
cGVyYXRpb25zLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNiArMSw2IEBACiAvKgogICogIENvcHly
aWdodCAoQykgMTk5OS0yMDAwIEhhcnJpIFBvcnRlbiAocG9ydGVuQGtkZS5vcmcpCi0gKiAgQ29w
eXJpZ2h0IChDKSAyMDAyLCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5LCAyMDEzIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqICBDb3B5cmlnaHQgKEMpIDIwMDIsIDIwMDUs
IDIwMDYsIDIwMDcsIDIwMDgsIDIwMDksIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh
biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTIyLDYgKzIyLDcgQEAKICNpZm5k
ZWYgT3BlcmF0aW9uc19oCiAjZGVmaW5lIE9wZXJhdGlvbnNfaAogCisjaW5jbHVkZSAiQ2FsbEZy
YW1lSW5saW5lcy5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkhlbHBlcnMuaCIKICNpbmNsdWRlICJH
Q0luY29taW5nUmVmQ291bnRlZElubGluZXMuaCIKICNpbmNsdWRlICJJbnRlcnByZXRlci5oIgpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmNwcAkocmV2aXNpb24gMTYzNjk1KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0zMiw3ICszMiw2IEBACiAjaW5jbHVkZSAiQXJnTGlzdC5oIgogI2luY2x1ZGUgIkFyaXR5Q2hl
Y2tGYWlsUmV0dXJuVGh1bmtzLmgiCiAjaW5jbHVkZSAiQXJyYXlCdWZmZXJOZXV0ZXJpbmdXYXRj
aHBvaW50LmgiCi0jaW5jbHVkZSAiQ2FsbEZyYW1lSW5saW5lcy5oIgogI2luY2x1ZGUgIkNvZGVC
bG9jay5oIgogI2luY2x1ZGUgIkNvZGVDYWNoZS5oIgogI2luY2x1ZGUgIkNvbW1vbklkZW50aWZp
ZXJzLmgiCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>223638</attachid>
            <date>2014-02-09 12:22:29 -0800</date>
            <delta_ts>2014-02-09 12:32:25 -0800</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>75330</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTYzNzUyKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEwNCBA
QAorMjAxNC0wMi0wOSAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgorCisgICAgICAg
IEdDIGJsb2NrcyBvbiBGVEwgYW5kIHRoZW4gYmFkbmVzcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI4MjkxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisgICAgICAgIAorICAgICAgICBJbnRyb2R1Y2UgdGhlIG5vdGlvbiBv
ZiBhIERGRzo6U2FmZXBvaW50LCB3aGljaCBhbGxvd3MgeW91IHRvIHVubG9jayB0aGUgcmlnaHRU
b1J1bgorICAgICAgICBtdXRleCBmb3IgeW91ciBKSVQgdGhyZWFkLCB3aGlsZSBzdXBwbHlpbmcg
dGhlIEdDIHdpdGggYWxsIG9mIHRoZSBpbmZvcm1hdGlvbiBpdCB3b3VsZAorICAgICAgICBuZWVk
IHRvIHNjYW4geW91IGF0IHRoYXQgbW9tZW50IGluIHRpbWUuIFRoZSBkZWZhdWx0IHdheSBvZiB1
c2luZyB0aGlzIGlzCisgICAgICAgIERGRzo6R3JhcGhTYWZlcG9pbnQsIHdoZXJlIHlvdSBqdXN0
IHN1cHBseSB0aGUgR3JhcGguIFRoZXJlJ3MgYSBsb3Qgb2YgbWFjaGluZXJ5IGluCisgICAgICAg
IHRoaXMgcGF0Y2gganVzdCB0byBtYWtlIHRoZSBHcmFwaCBzY2FubmFibGUuCisgICAgICAgIAor
ICAgICAgICBXZSB0aGVuIHVzZSBERkc6OkdyYXBoU2FmZXBvaW50IGluIGp1c3QgdHdvIHBsYWNl
cyBmb3Igbm93OiAoMSkgd2hpbGUgaW5pdGlhbGl6aW5nIExMVk0KKyAgICAgICAgYW5kICgyKSB3
aGlsZSBpbnZva2luZyBMTFZNJyBvcHRpbWl6ZXIgYW5kIGJhY2tlbmQuCisgICAgICAgIAorICAg
ICAgICBNYWtpbmcgdGhpcyBjaGFuZ2Ugd2FzIGRpZmZpY3VsdCBiZWNhdXNlIEkgcmFuIGludG8g
dGhlIGxpbWl0cyBvZiBvdXIgbGFjayBvZiBoZWFkZXIKKyAgICAgICAgZmlsZSBkaXNjaXBsaW5l
LiBFdmVuIHRob3VnaCBPcGVyYXRpb25zLmggaXMgbWVhbnQgdG8gYmUgdGhlIHRoaW5nIHRoYXQg
aXMgb25seQorICAgICAgICBpbmNsdWRlZCBmcm9tIC5jcHAgZmlsZXMsIGl0IHdhcyBpbmNsdWRl
ZCBmcm9tIENvZGVCbG9jay5oLiBTaW1pbGFybHksCisgICAgICAgIENhbGxGcmFtZUlubGluZXMu
aCB3YXMgaW5jbHVkZWQgZnJvbSBERkdKSVRDb21waWxlci5oLiBUaGVuLCBDYWxsTGlua0luZm8u
aCBpbmNsdWRlZAorICAgICAgICBERkdHcmFwaC5oLiBJdCB3YXMgYSB0b3RhbCBtZXNzLiBJIHVu
cmF2ZWxlZCB0aGlzIG1lc3MgdG8gZ2V0IG15IGNvZGUgdG8gYnVpbGQuCisKKyAgICAgICAgKiBB
UEkvSlNDb250ZXh0UmVmLmNwcDoKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAg
KiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnZjeHByb2ov
SmF2YVNjcmlwdENvcmUudmN4cHJvajoKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGFzc2VtYmxlci9MaW5rQnVmZmVyLmNwcDoK
KyAgICAgICAgKiBieXRlY29kZS9Db2RlQmxvY2suY3BwOgorICAgICAgICAqIGJ5dGVjb2RlL0Nv
ZGVCbG9jay5oOgorICAgICAgICAqIGJ5dGVjb2RlL1Byb2ZpbGVkQ29kZUJsb2NrSmV0dGlzb25p
bmdXYXRjaHBvaW50LmNwcDoKKyAgICAgICAgKiBkZWJ1Z2dlci9EZWJ1Z2dlckNhbGxGcmFtZS5j
cHA6CisgICAgICAgICogZGZnL0RGR0Rlc2lyZWRUcmFuc2l0aW9ucy5jcHA6CisgICAgICAgICog
ZGZnL0RGR0RyaXZlci5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Y29tcGlsZUltcGwpOgorICAg
ICAgICAqIGRmZy9ERkdHcmFwaC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6R3JhcGg6OnZpc2l0
Q2hpbGRyZW4pOgorICAgICAgICAqIGRmZy9ERkdHcmFwaC5oOgorICAgICAgICAqIGRmZy9ERkdH
cmFwaFNhZmVwb2ludC5jcHA6IEFkZGVkLgorICAgICAgICAoSlNDOjpERkc6OkdyYXBoU2FmZXBv
aW50OjpHcmFwaFNhZmVwb2ludCk6CisgICAgICAgIChKU0M6OkRGRzo6R3JhcGhTYWZlcG9pbnQ6
On5HcmFwaFNhZmVwb2ludCk6CisgICAgICAgICogZGZnL0RGR0dyYXBoU2FmZXBvaW50Lmg6IEFk
ZGVkLgorICAgICAgICAqIGRmZy9ERkdKSVRDb2RlLmNwcDoKKyAgICAgICAgKiBkZmcvREZHSklU
Q29tcGlsZXIuY3BwOgorICAgICAgICAqIGRmZy9ERkdKSVRDb21waWxlci5oOgorICAgICAgICAq
IGRmZy9ERkdPU1JFeGl0Q29tcGlsZXJDb21tb24uY3BwOgorICAgICAgICAqIGRmZy9ERkdPcGVy
YXRpb25zLmNwcDoKKyAgICAgICAgKiBkZmcvREZHT3BlcmF0aW9ucy5oOgorICAgICAgICAqIGRm
Zy9ERkdQbGFuLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpQbGFuOjpjb21waWxlSW5UaHJlYWQp
OgorICAgICAgICAoSlNDOjpERkc6OlBsYW46OmNvbXBpbGVJblRocmVhZEltcGwpOgorICAgICAg
ICAqIGRmZy9ERkdQbGFuLmg6CisgICAgICAgICogZGZnL0RGR1NhZmVwb2ludC5jcHA6IEFkZGVk
LgorICAgICAgICAoSlNDOjpERkc6OlNhZmVwb2ludDo6U2FmZXBvaW50KToKKyAgICAgICAgKEpT
Qzo6REZHOjpTYWZlcG9pbnQ6On5TYWZlcG9pbnQpOgorICAgICAgICAoSlNDOjpERkc6OlNhZmVw
b2ludDo6YWRkKToKKyAgICAgICAgKEpTQzo6REZHOjpTYWZlcG9pbnQ6OmJlZ2luKToKKyAgICAg
ICAgKEpTQzo6REZHOjpTYWZlcG9pbnQ6OnZpc2l0Q2hpbGRyZW4pOgorICAgICAgICAqIGRmZy9E
RkdTYWZlcG9pbnQuaDogQWRkZWQuCisgICAgICAgICogZGZnL0RGR1NjYW5uYWJsZS5oOiBBZGRl
ZC4KKyAgICAgICAgKEpTQzo6REZHOjpTY2FubmFibGU6OlNjYW5uYWJsZSk6CisgICAgICAgIChK
U0M6OkRGRzo6U2Nhbm5hYmxlOjp+U2Nhbm5hYmxlKToKKyAgICAgICAgKiBkZmcvREZHVGhyZWFk
RGF0YS5jcHA6IEFkZGVkLgorICAgICAgICAoSlNDOjpERkc6OlRocmVhZERhdGE6OlRocmVhZERh
dGEpOgorICAgICAgICAoSlNDOjpERkc6OlRocmVhZERhdGE6On5UaHJlYWREYXRhKToKKyAgICAg
ICAgKiBkZmcvREZHVGhyZWFkRGF0YS5oOiBBZGRlZC4KKyAgICAgICAgKiBkZmcvREZHVGh1bmtz
LmNwcDoKKyAgICAgICAgKiBkZmcvREZHV29ya2xpc3QuY3BwOgorICAgICAgICAoSlNDOjpERkc6
OldvcmtsaXN0OjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgIChKU0M6OkRGRzo6V29ya2xpc3Q6
OnZpc2l0Q2hpbGRyZW4pOgorICAgICAgICAoSlNDOjpERkc6OldvcmtsaXN0OjpydW5UaHJlYWQp
OgorICAgICAgICAqIGRmZy9ERkdXb3JrbGlzdC5oOgorICAgICAgICAqIGZ0bC9GVExDb21waWxl
LmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpjb21waWxlKToKKyAgICAgICAgKiBmdGwvRlRMTGlu
ay5jcHA6CisgICAgICAgICogZnRsL0ZUTE9TUkV4aXRDb21waWxlci5jcHA6CisgICAgICAgICog
ZnRsL0ZUTFNsb3dQYXRoQ2FsbC5jcHA6CisgICAgICAgICogZnRsL0ZUTFRodW5rcy5jcHA6Cisg
ICAgICAgIChKU0M6OkZUTDo6c2xvd1BhdGhDYWxsVGh1bmtHZW5lcmF0b3IpOgorICAgICAgICAq
IGhlYXAvU2xvdFZpc2l0b3IuaDoKKyAgICAgICAgKiBoZWFwL1Nsb3RWaXNpdG9ySW5saW5lcy5o
OgorICAgICAgICAoSlNDOjpTbG90VmlzaXRvcjo6YXBwZW5kVW5iYXJyaWVyZWRSZWFkT25seVBv
aW50ZXIpOgorICAgICAgICAoSlNDOjpTbG90VmlzaXRvcjo6YXBwZW5kVW5iYXJyaWVyZWRSZWFk
T25seVZhbHVlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvU2NyaXB0Q2FsbFN0YWNrRmFjdG9yeS5j
cHA6CisgICAgICAgICogaW50ZXJwcmV0ZXIvUHJvdG9DYWxsRnJhbWUuY3BwOgorICAgICAgICAq
IGppdC9KSVRFeGNlcHRpb25zLmNwcDoKKyAgICAgICAgKiBqaXQvSklUSW5saW5lcy5oOgorICAg
ICAgICAqIGppdC9KSVRPcGVyYXRpb25zLmNwcDoKKyAgICAgICAgKiBqaXQvUmVwYXRjaC5jcHA6
CisgICAgICAgICoganNjLmNwcDoKKyAgICAgICAgKiBwcm9maWxlci9Qcm9maWxlR2VuZXJhdG9y
LmNwcDoKKyAgICAgICAgKiBydW50aW1lL0FyZ3VtZW50cy5jcHA6CisgICAgICAgICogcnVudGlt
ZS9Bcmd1bWVudHNJdGVyYXRvclByb3RvdHlwZS5jcHA6CisgICAgICAgICogcnVudGltZS9Db21t
b25TbG93UGF0aHNFeGNlcHRpb25zLmNwcDoKKyAgICAgICAgKiBydW50aW1lL0pTQXJndW1lbnRz
SXRlcmF0b3IuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvSlNGdW5jdGlvbi5jcHA6CisgICAgICAg
ICogcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5jcHA6CisgICAgICAgICogcnVudGlt
ZS9PYmplY3RDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgICogcnVudGltZS9PcGVyYXRpb25zLmg6
CisgICAgICAgICogcnVudGltZS9WTS5jcHA6CisKIDIwMTQtMDItMDkgIEFuZGVycyBDYXJsc3Nv
biAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAgICAgICBDb252ZXJ0IHNvbWUgSlNDIGNvZGUg
b3ZlciB0byBzdGQ6Om11dGV4CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0
cy50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0
CShyZXZpc2lvbiAxNjM3NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50
eHQJKHdvcmtpbmcgY29weSkKQEAgLTEzOCw2ICsxMzgsNyBAQCBzZXQoSmF2YVNjcmlwdENvcmVf
U09VUkNFUwogICAgIGRmZy9ERkdGbHVzaExpdmVuZXNzQW5hbHlzaXNQaGFzZS5jcHAKICAgICBk
ZmcvREZHRmx1c2hlZEF0LmNwcAogICAgIGRmZy9ERkdHcmFwaC5jcHAKKyAgICBkZmcvREZHR3Jh
cGhTYWZlcG9pbnQuY3BwCiAgICAgZGZnL0RGR0luUGxhY2VBYnN0cmFjdFN0YXRlLmNwcAogICAg
IGRmZy9ERkdJbnZhbGlkYXRpb25Qb2ludEluamVjdGlvblBoYXNlLmNwcAogICAgIGRmZy9ERkdK
SVRDb2RlLmNwcApAQCAtMTcyLDEyICsxNzMsMTQgQEAgc2V0KEphdmFTY3JpcHRDb3JlX1NPVVJD
RVMKICAgICBkZmcvREZHUmVzdXJyZWN0aW9uRm9yVmFsaWRhdGlvblBoYXNlLmNwcAogICAgIGRm
Zy9ERkdTU0FDb252ZXJzaW9uUGhhc2UuY3BwCiAgICAgZGZnL0RGR1NTQUxvd2VyaW5nUGhhc2Uu
Y3BwCisgICAgZGZnL0RGR1NhZmVwb2ludC5jcHAKICAgICBkZmcvREZHU3BlY3VsYXRpdmVKSVQu
Y3BwCiAgICAgZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCiAgICAgZGZnL0RGR1NwZWN1
bGF0aXZlSklUNjQuY3BwCiAgICAgZGZnL0RGR1N0YWNrTGF5b3V0UGhhc2UuY3BwCiAgICAgZGZn
L0RGR1N0b3JlQmFycmllckVsaXNpb25QaGFzZS5jcHAKICAgICBkZmcvREZHU3RyZW5ndGhSZWR1
Y3Rpb25QaGFzZS5jcHAKKyAgICBkZmcvREZHVGhyZWFkRGF0YS5jcHAKICAgICBkZmcvREZHVGh1
bmtzLmNwcAogICAgIGRmZy9ERkdUaWVyVXBDaGVja0luamVjdGlvblBoYXNlLmNwcAogICAgIGRm
Zy9ERkdUeXBlQ2hlY2tIb2lzdGluZ1BoYXNlLmNwcApJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0JKHJldmlzaW9uIDE2Mzc1MikKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCSh3b3JraW5nIGNvcHkpCkBAIC0zMDQsNiAr
MzA0LDggQEAgamF2YXNjcmlwdGNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdHZW5lcmF0aW9uSW5mby5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0dyYXBoLmNwcCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5oIFwK
KwlTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoU2FmZXBvaW50LmNwcCBcCisJU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaFNhZmVwb2ludC5oIFwKIAlTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0luUGxhY2VBYnN0cmFjdFN0YXRlLmNwcCBcCiAJU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdJblBsYWNlQWJzdHJhY3RTdGF0ZS5oIFwKIAlTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0lubGluZUNhY2hlV3JhcHBlci5oIFwKQEAgLTM3Nyw3ICszNzks
MTAgQEAgamF2YXNjcmlwdGNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdSZXN1cnJlY3Rpb25Gb3JWYWxpZGF0aW9uUGhhc2UuY3BwIFwKIAlTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1Jlc3VycmVjdGlvbkZvclZhbGlkYXRpb25QaGFzZS5oIFwKIAlT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaCBcCisJU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdTYWZlcG9pbnQuY3BwIFwKKwlTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1NhZmVwb2ludC5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nh
bmVTdHJpbmdHZXRCeVZhbFNsb3dQYXRoR2VuZXJhdG9yLmggXAorCVNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHU2Nhbm5hYmxlLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
U2NvcmVCb2FyZC5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NpbGVudFJlZ2lz
dGVyU2F2ZVBsYW4uaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTbG93UGF0aEdl
bmVyYXRvci5oIFwKQEAgLTM5OCw2ICs0MDMsOCBAQCBqYXZhc2NyaXB0Y29yZV9zb3VyY2VzICs9
IFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1N0cnVjdHVyZUFic3RyYWN0VmFsdWUu
aCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdUaWVyVXBDaGVja0luamVjdGlvblBo
YXNlLmNwcCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdUaWVyVXBDaGVja0luamVj
dGlvblBoYXNlLmggXAorCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVGhyZWFkRGF0YS5j
cHAgXAorCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVGhyZWFkRGF0YS5oIFwKIAlTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1RodW5rcy5jcHAgXAogCVNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHVGh1bmtzLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVG9G
VExEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2suY3BwIFwKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qc2MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2Mu
Y3BwCShyZXZpc2lvbiAxNjM3NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMjUsNyArMjUsNiBAQAogI2luY2x1ZGUgIkFQSVNoaW1zLmgiCiAj
aW5jbHVkZSAiQnV0dGVyZmx5SW5saW5lcy5oIgogI2luY2x1ZGUgIkJ5dGVjb2RlR2VuZXJhdG9y
LmgiCi0jaW5jbHVkZSAiQ2FsbEZyYW1lSW5saW5lcy5oIgogI2luY2x1ZGUgIkNvbXBsZXRpb24u
aCIKICNpbmNsdWRlICJDb3BpZWRTcGFjZUlubGluZXMuaCIKICNpbmNsdWRlICJFeGNlcHRpb25I
ZWxwZXJzLmgiCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ29udGV4dFJlZi5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NvbnRleHRSZWYu
Y3BwCShyZXZpc2lvbiAxNjM3NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ29u
dGV4dFJlZi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5LDcgKzI5LDYgQEAKIAogI2luY2x1ZGUg
IkFQSUNhc3QuaCIKICNpbmNsdWRlICJDYWxsRnJhbWUuaCIKLSNpbmNsdWRlICJDYWxsRnJhbWVJ
bmxpbmVzLmgiCiAjaW5jbHVkZSAiSW5pdGlhbGl6ZVRocmVhZGluZy5oIgogI2luY2x1ZGUgIkpT
Q2FsbGJhY2tPYmplY3QuaCIKICNpbmNsdWRlICJKU0NsYXNzUmVmLmgiCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hw
cm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52
Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2oJKHJldmlzaW9uIDE2Mzc1MikKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZj
eHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTM5Miw2ICszOTIsNyBAQAogICAgIDxDbENvbXBpbGUg
SW5jbHVkZT0iLi5cZGZnXERGR0ZsdXNoRm9ybWF0LmNwcCIgLz4KICAgICA8Q2xDb21waWxlIElu
Y2x1ZGU9Ii4uXGRmZ1xERkdGbHVzaExpdmVuZXNzQW5hbHlzaXNQaGFzZS5jcHAiIC8+CiAgICAg
PENsQ29tcGlsZSBJbmNsdWRlPSIuLlxkZmdcREZHR3JhcGguY3BwIiAvPgorICAgIDxDbENvbXBp
bGUgSW5jbHVkZT0iLi5cZGZnXERGR0dyYXBoU2FmZXBvaW50LmNwcCIgLz4KICAgICA8Q2xDb21w
aWxlIEluY2x1ZGU9Ii4uXGRmZ1xERkdJblBsYWNlQWJzdHJhY3RTdGF0ZS5jcHAiIC8+CiAgICAg
PENsQ29tcGlsZSBJbmNsdWRlPSIuLlxkZmdcREZHSW52YWxpZGF0aW9uUG9pbnRJbmplY3Rpb25Q
aGFzZS5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxkZmdcREZHSklUQ29kZS5j
cHAiIC8+CkBAIC00MjQsNiArNDI1LDcgQEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGRm
Z1xERkdQcmVkaWN0aW9uSW5qZWN0aW9uUGhhc2UuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5j
bHVkZT0iLi5cZGZnXERGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcCIgLz4KICAgICA8
Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGRmZ1xERkdSZXN1cnJlY3Rpb25Gb3JWYWxpZGF0aW9uUGhh
c2UuY3BwIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZGZnXERGR1NhZmVwb2ludC5j
cHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxkZmdcREZHU3BlY3VsYXRpdmVKSVQu
Y3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZGZnXERGR1NwZWN1bGF0aXZlSklU
MzJfNjQuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZGZnXERGR1NwZWN1bGF0
aXZlSklUNjQuY3BwIiAvPgpAQCAtNDMyLDYgKzQzNCw3IEBACiAgICAgPENsQ29tcGlsZSBJbmNs
dWRlPSIuLlxkZmdcREZHU3RhY2tMYXlvdXRQaGFzZS5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJ
bmNsdWRlPSIuLlxkZmdcREZHU3RvcmVCYXJyaWVyRWxpc2lvblBoYXNlLmNwcCIgLz4KICAgICA8
Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGRmZ1xERkdTdHJlbmd0aFJlZHVjdGlvblBoYXNlLmNwcCIg
Lz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGRmZ1xERkdUaHJlYWREYXRhLmNwcCIgLz4K
ICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGRmZ1xERkdUaHVua3MuY3BwIiAvPgogICAgIDxD
bENvbXBpbGUgSW5jbHVkZT0iLi5cZGZnXERGR1RpZXJVcENoZWNrSW5qZWN0aW9uUGhhc2UuY3Bw
IiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZGZnXERGR1RvRlRMRGVmZXJyZWRDb21w
aWxhdGlvbkNhbGxiYWNrLmNwcCIgLz4KQEAgLTkyOSw2ICs5MzIsNyBAQAogICAgIDxDbEluY2x1
ZGUgSW5jbHVkZT0iLi5cZGZnXERGR0dlbmVyYXRpb25JbmZvLmgiIC8+CiAgICAgPENsSW5jbHVk
ZSBJbmNsdWRlPSIuLlxkZmdcREZHR1BSSW5mby5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVk
ZT0iLi5cZGZnXERGR0dyYXBoLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxkZmdc
REZHR3JhcGhTYWZlcG9pbnQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGRmZ1xE
RkdJblBsYWNlQWJzdHJhY3RTdGF0ZS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
ZGZnXERGR0luc2VydGlvblNldC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZGZn
XERGR0ludmFsaWRhdGlvblBvaW50SW5qZWN0aW9uUGhhc2UuaCIgLz4KQEAgLTk2OSw3ICs5NzMs
OSBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZGZnXERGR1JlZ2lzdGVyU2V0LmgiIC8+
CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxkZmdcREZHUmVzdXJyZWN0aW9uRm9yVmFsaWRh
dGlvblBoYXNlLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxkZmdcREZHU2FmZVRv
RXhlY3V0ZS5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZGZnXERGR1NhZmVwb2lu
dC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZGZnXERGR1NhbmVTdHJpbmdHZXRC
eVZhbFNsb3dQYXRoR2VuZXJhdG9yLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxk
ZmdcREZHU2Nhbm5hYmxlLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxkZmdcREZH
U2NvcmVCb2FyZC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZGZnXERGR1NjcmF0
Y2hSZWdpc3RlckFsbG9jYXRvci5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZGZn
XERGR1NpbGVudFJlZ2lzdGVyU2F2ZVBsYW4uaCIgLz4KQEAgLTk4MSw2ICs5ODcsNyBAQAogICAg
IDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZGZnXERGR1N0b3JlQmFycmllckVsaXNpb25QaGFzZS5o
IiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZGZnXERGR1N0cmVuZ3RoUmVkdWN0aW9u
UGhhc2UuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGRmZ1xERkdTdHJ1Y3R1cmVB
YnN0cmFjdFZhbHVlLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxkZmdcREZHVGhy
ZWFkRGF0YS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZGZnXERGR1RodW5rcy5o
IiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZGZnXERGR1RpZXJVcENoZWNrSW5qZWN0
aW9uUGhhc2UuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGRmZ1xERkdUb0ZUTERl
ZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjay5oIiAvPgpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oJKHJldmlzaW9uIDE2Mzc1MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZh
U2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0y
MDIsNiArMjAyLDEzIEBACiAJCTBGMkU4OTJEMTZEMDJCQUYwMDlFNEZEMiAvKiBERkdNaW5pZmll
ZElELmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkI0
QjUxMDE2QjNBOTY0MDAzRjY5NkIgLyogREZHTWluaWZpZWRJRC5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGMkZDNzcyMTZFMTJGNzEwMDM4RDk3
NiAvKiBERkdEQ0VQaGFzZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwRjJGQzc3MDE2RTEyRjZGMDAzOEQ5NzYgLyogREZHRENFUGhhc2UuY3BwICov
OyB9OwogCQkwRjJGQzc3MzE2RTEyRjc0MDAzOEQ5NzYgLyogREZHRENFUGhhc2UuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMkZDNzcxMTZFMTJGNkYw
MDM4RDk3NiAvKiBERkdEQ0VQaGFzZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CisJCTBGMkZDQ0Y5MThBNjAwNzAwMDFBMjdGOCAvKiBERkdHcmFwaFNh
ZmVwb2ludC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwRjJGQ0NGMjE4QTYwMDcwMDAxQTI3RjggLyogREZHR3JhcGhTYWZlcG9pbnQuY3BwICovOyB9
OworCQkwRjJGQ0NGQTE4QTYwMDcwMDAxQTI3RjggLyogREZHR3JhcGhTYWZlcG9pbnQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMkZDQ0YzMThBNjAw
NzAwMDFBMjdGOCAvKiBERkdHcmFwaFNhZmVwb2ludC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTBGMkZDQ0ZCMThBNjAwNzAwMDFBMjdGOCAvKiBE
RkdTYWZlcG9pbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMEYyRkNDRjQxOEE2MDA3MDAwMUEyN0Y4IC8qIERGR1NhZmVwb2ludC5jcHAgKi87IH07
CisJCTBGMkZDQ0ZDMThBNjAwNzAwMDFBMjdGOCAvKiBERkdTYWZlcG9pbnQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMkZDQ0Y1MThBNjAwNzAwMDFB
MjdGOCAvKiBERkdTYWZlcG9pbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OworCQkwRjJGQ0NGRDE4QTYwMDcwMDAxQTI3RjggLyogREZHU2Nhbm5hYmxl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjJGQ0NG
NjE4QTYwMDcwMDAxQTI3RjggLyogREZHU2Nhbm5hYmxlLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMEYyRkNDRkUxOEE2MDA3MDAwMUEyN0Y4IC8q
IERGR1RocmVhZERhdGEuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMEYyRkNDRjcxOEE2MDA3MDAwMUEyN0Y4IC8qIERGR1RocmVhZERhdGEuY3BwICov
OyB9OworCQkwRjJGQ0NGRjE4QTYwMDcwMDAxQTI3RjggLyogREZHVGhyZWFkRGF0YS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYyRkNDRjgxOEE2MDA3
MDAwMUEyN0Y4IC8qIERGR1RocmVhZERhdGEuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjM0QjE0OTE2RDQyMDEwMDAxQ0RBNUEgLyogREZHVXNl
S2luZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAw
RjM0QjE0NzE2RDQyMDBFMDAxQ0RBNUEgLyogREZHVXNlS2luZC5jcHAgKi87IH07CiAJCTBGMzRC
MTRBMTZENDIwMTMwMDFDREE1QSAvKiBERkdVc2VLaW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjM0QjE0ODE2RDQyMDBFMDAxQ0RBNUEgLyogREZH
VXNlS2luZC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTBGMzRCMTRDMTZENDNFMEQwMDFDREE1QSAvKiBQb2x5bW9ycGhpY0FjY2Vzc1N0cnVjdHVy
ZUxpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBG
MzRCMTRCMTZENDNFMEMwMDFDREE1QSAvKiBQb2x5bW9ycGhpY0FjY2Vzc1N0cnVjdHVyZUxpc3Qu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTM1
MSw3ICsxMzU4LDcgQEAKIAkJQzI5ODFGREQxN0JBRkY0NDAwQTNCQzk4IC8qIERGR0Rlc2lyZWRX
cml0ZUJhcnJpZXJzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBDMjk4MUZEQjE3QkFGRjQ0MDBBM0JDOTggLyogREZHRGVzaXJlZFdyaXRlQmFycmllcnMu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDMjlF
Q0IwMzE4MDREMEVEMDBEMkNCQjQgLyogQ3VycmVudFRoaXNJbnNpZGVCbG9ja0dldHRlclRlc3Qu
bW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMjlFQ0Iw
MTE4MDREMEVEMDBEMkNCQjQgLyogQ3VycmVudFRoaXNJbnNpZGVCbG9ja0dldHRlclRlc3QubW0g
Ki87IH07CiAJCUMyQTdGNjg4MTYwNDMyRDQwMEY3NkI5OCAvKiBKU0Rlc3RydWN0aWJsZU9iamVj
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzJBN0Y2
ODcxNjA0MzJENDAwRjc2Qjk4IC8qIEpTRGVzdHJ1Y3RpYmxlT2JqZWN0LmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLSAgICAgICBDMkI2RDc1MzE4QTMz
NzkzMDA0QTkzMDEgLyogV3JpdGVCYXJyaWVySW5saW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzJCNkQ3NTIxOEEzMzc5MzAwNEE5MzAxIC8qIFdy
aXRlQmFycmllcklubGluZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OworCQlDMkI2RDc1MzE4QTMzNzkzMDA0QTkzMDEgLyogV3JpdGVCYXJyaWVySW5s
aW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzJC
NkQ3NTIxOEEzMzc5MzAwNEE5MzAxIC8qIFdyaXRlQmFycmllcklubGluZXMuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDMkI5MTZDMjE0REEwMTRF
MDBDQkFDODYgLyogTWFya2VkQWxsb2NhdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBDMkI5MTZDMTE0REEwMTRFMDBDQkFDODYgLyogTWFya2VkQWxs
b2NhdG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJQzJCOTE2QzUxNERBMDQwQzAwQ0JBQzg2IC8qIE1hcmtlZEFsbG9jYXRvci5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMkI5MTZDNDE0REEwNDBD
MDBDQkFDODYgLyogTWFya2VkQWxsb2NhdG9yLmNwcCAqLzsgfTsKIAkJQzJDMEY3Q0QxN0JCRkM1
QjAwNDY0RkU0IC8qIERGR0Rlc2lyZWRUcmFuc2l0aW9ucy5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMkMwRjdDQjE3QkJGQzVCMDA0NjRGRTQgLyog
REZHRGVzaXJlZFRyYW5zaXRpb25zLmNwcCAqLzsgfTsKQEAgLTE2NDQsNiArMTY1MSwxMyBAQAog
CQkwRjJCREM1MDE1MjI4RkZBMDBDRDg5MTAgLyogREZHVmFyaWFibGVFdmVudC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBERkdWYXJpYWJsZUV2ZW50LmNwcDsgcGF0
aCA9IGRmZy9ERkdWYXJpYWJsZUV2ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMEYyRkM3NzAxNkUxMkY2RjAwMzhEOTc2IC8qIERGR0RDRVBoYXNlLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IERGR0RDRVBoYXNlLmNwcDsgcGF0aCA9IGRmZy9E
RkdEQ0VQaGFzZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGMkZDNzcxMTZF
MTJGNkYwMDM4RDk3NiAvKiBERkdEQ0VQaGFzZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IG5hbWUgPSBERkdEQ0VQaGFzZS5oOyBwYXRoID0gZGZnL0RGR0RDRVBoYXNlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGMkZDQ0YyMThBNjAwNzAwMDFBMjdGOCAvKiBERkdHcmFw
aFNhZmVwb2ludC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBERkdH
cmFwaFNhZmVwb2ludC5jcHA7IHBhdGggPSBkZmcvREZHR3JhcGhTYWZlcG9pbnQuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRjJGQ0NGMzE4QTYwMDcwMDAxQTI3RjggLyogREZH
R3JhcGhTYWZlcG9pbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gREZHR3Jh
cGhTYWZlcG9pbnQuaDsgcGF0aCA9IGRmZy9ERkdHcmFwaFNhZmVwb2ludC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQkwRjJGQ0NGNDE4QTYwMDcwMDAxQTI3RjggLyogREZHU2FmZXBv
aW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IERGR1NhZmVwb2lu
dC5jcHA7IHBhdGggPSBkZmcvREZHU2FmZXBvaW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJMEYyRkNDRjUxOEE2MDA3MDAwMUEyN0Y4IC8qIERGR1NhZmVwb2ludC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBERkdTYWZlcG9pbnQuaDsgcGF0aCA9IGRmZy9E
RkdTYWZlcG9pbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEYyRkNDRjYxOEE2
MDA3MDAwMUEyN0Y4IC8qIERGR1NjYW5uYWJsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IG5hbWUgPSBERkdTY2FubmFibGUuaDsgcGF0aCA9IGRmZy9ERkdTY2FubmFibGUuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEYyRkNDRjcxOEE2MDA3MDAwMUEyN0Y4IC8qIERGR1Ro
cmVhZERhdGEuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gREZHVGhy
ZWFkRGF0YS5jcHA7IHBhdGggPSBkZmcvREZHVGhyZWFkRGF0YS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTBGMkZDQ0Y4MThBNjAwNzAwMDFBMjdGOCAvKiBERkdUaHJlYWREYXRh
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IERGR1RocmVhZERhdGEuaDsgcGF0
aCA9IGRmZy9ERkdUaHJlYWREYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBG
MzRCMTQ3MTZENDIwMEUwMDFDREE1QSAvKiBERkdVc2VLaW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgbmFtZSA9IERGR1VzZUtpbmQuY3BwOyBwYXRoID0gZGZnL0RGR1VzZUtp
bmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjM0QjE0ODE2RDQyMDBFMDAx
Q0RBNUEgLyogREZHVXNlS2luZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBE
RkdVc2VLaW5kLmg7IHBhdGggPSBkZmcvREZHVXNlS2luZC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkwRjM0QjE0QjE2RDQzRTBDMDAxQ0RBNUEgLyogUG9seW1vcnBoaWNBY2Nlc3NT
dHJ1Y3R1cmVMaXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBvbHltb3Jw
aGljQWNjZXNzU3RydWN0dXJlTGlzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MjgwMiw3ICsyODE2LDcgQEAKIAkJQzI5RUNCMDExODA0RDBFRDAwRDJDQkI0IC8qIEN1cnJlbnRU
aGlzSW5zaWRlQmxvY2tHZXR0ZXJUZXN0Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBuYW1lID0gQ3VycmVudFRoaXNJbnNpZGVCbG9ja0dldHRlclRlc3QubW07IHBhdGggPSBB
UEkvdGVzdHMvQ3VycmVudFRoaXNJbnNpZGVCbG9ja0dldHRlclRlc3QubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUMyOUVDQjAyMTgwNEQwRUQwMEQyQ0JCNCAvKiBDdXJyZW50VGhp
c0luc2lkZUJsb2NrR2V0dGVyVGVzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUg
PSBDdXJyZW50VGhpc0luc2lkZUJsb2NrR2V0dGVyVGVzdC5oOyBwYXRoID0gQVBJL3Rlc3RzL0N1
cnJlbnRUaGlzSW5zaWRlQmxvY2tHZXR0ZXJUZXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUMyQTdGNjg3MTYwNDMyRDQwMEY3NkI5OCAvKiBKU0Rlc3RydWN0aWJsZU9iamVjdC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0Rlc3RydWN0aWJsZU9iamVjdC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotICAgICAgIEMyQjZENzUyMThBMzM3OTMwMDRB
OTMwMSAvKiBXcml0ZUJhcnJpZXJJbmxpbmVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFdyaXRlQmFycmllcklubGluZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJQzJCNkQ3NTIxOEEzMzc5MzAwNEE5MzAxIC8qIFdyaXRlQmFycmllcklubGluZXMuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV3JpdGVCYXJyaWVySW5saW5lcy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDMkI5MTZDMTE0REEwMTRFMDBDQkFDODYgLyogTWFy
a2VkQWxsb2NhdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1hcmtlZEFs
bG9jYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDMkI5MTZDNDE0REEwNDBD
MDBDQkFDODYgLyogTWFya2VkQWxsb2NhdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IE1hcmtlZEFsbG9jYXRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUMyQzBGN0NCMTdCQkZDNUIwMDQ2NEZFNCAvKiBERkdEZXNpcmVkVHJhbnNpdGlvbnMu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gREZHRGVzaXJlZFRyYW5z
aXRpb25zLmNwcDsgcGF0aCA9IGRmZy9ERkdEZXNpcmVkVHJhbnNpdGlvbnMuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzY2Myw3ICszNjc3LDcgQEAKIAkJN0VGNkUwQkIwRUI3
QTFFQzAwNzlBRkFGIC8qIHJ1bnRpbWUgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNo
aWxkcmVuID0gKAotICAgICAgICAgICAgICAgQzJCNkQ3NTIxOEEzMzc5MzAwNEE5MzAxIC8qIFdy
aXRlQmFycmllcklubGluZXMuaCAqLywKKwkJCQlDMkI2RDc1MjE4QTMzNzkzMDA0QTkzMDEgLyog
V3JpdGVCYXJyaWVySW5saW5lcy5oICovLAogCQkJCUJDRjYwNTExMEUyMDNFRjgwMEI5QTY0RCAv
KiBBcmdMaXN0LmNwcCAqLywKIAkJCQlCQ0Y2MDUxMjBFMjAzRUY4MDBCOUE2NEQgLyogQXJnTGlz
dC5oICovLAogCQkJCUJDMjU3REU1MEUxRjUxQzUwMDE2QjZDOSAvKiBBcmd1bWVudHMuY3BwICov
LApAQCAtNDA4Nyw4ICs0MTAxLDYgQEAKIAkJODZFQzlEQjMxMzI4REY0NDAwMkIyQUQ3IC8qIGRm
ZyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCi0JCQkJMkFDQ0Yz
REMxODVGRTI2QjAwODNFMkFEIC8qIERGR1N0b3JlQmFycmllckVsaXNpb25QaGFzZS5jcHAgKi8s
Ci0JCQkJMkFDQ0YzREQxODVGRTI2QjAwODNFMkFEIC8qIERGR1N0b3JlQmFycmllckVsaXNpb25Q
aGFzZS5oICovLAogCQkJCUE3N0E0MjM2MTdBMEJCRkQwMEE4REI4MSAvKiBERkdBYnN0cmFjdEhl
YXAuY3BwICovLAogCQkJCUE3N0E0MjM3MTdBMEJCRkQwMEE4REI4MSAvKiBERkdBYnN0cmFjdEhl
YXAuaCAqLywKIAkJCQlBNzA0RDhGRTE3QTBCQUE4MDA2QkE1NTQgLyogREZHQWJzdHJhY3RJbnRl
cnByZXRlci5oICovLApAQCAtNDE5MCw2ICs0MjAyLDggQEAKIAkJCQk4NkVDOURCNjEzMjhERjgy
MDAyQjJBRDcgLyogREZHR2VuZXJhdGlvbkluZm8uaCAqLywKIAkJCQk4NkVDOURCNzEzMjhERjgy
MDAyQjJBRDcgLyogREZHR3JhcGguY3BwICovLAogCQkJCTg2RUM5REI4MTMyOERGODIwMDJCMkFE
NyAvKiBERkdHcmFwaC5oICovLAorCQkJCTBGMkZDQ0YyMThBNjAwNzAwMDFBMjdGOCAvKiBERkdH
cmFwaFNhZmVwb2ludC5jcHAgKi8sCisJCQkJMEYyRkNDRjMxOEE2MDA3MDAwMUEyN0Y4IC8qIERG
R0dyYXBoU2FmZXBvaW50LmggKi8sCiAJCQkJMEZCMTRFMjAxODEyNTcwQjAwOUI2QjREIC8qIERG
R0lubGluZUNhY2hlV3JhcHBlci5oICovLAogCQkJCTBGQjE0RTIyMTgxMzA5NTUwMDlCNkI0RCAv
KiBERkdJbmxpbmVDYWNoZVdyYXBwZXJJbmxpbmVzLmggKi8sCiAJCQkJQTcwNEQ5MDAxN0EwQkFB
ODAwNkJBNTU0IC8qIERGR0luUGxhY2VBYnN0cmFjdFN0YXRlLmNwcCAqLywKQEAgLTQyNjIsOCAr
NDI3NiwxMSBAQAogCQkJCTg2RUM5REMxMTMyOERGODIwMDJCMkFENyAvKiBERkdSZWdpc3RlckJh
bmsuaCAqLywKIAkJCQkwRjY2NkVDQTE4MzZCMzdFMDBEMDE3RjEgLyogREZHUmVzdXJyZWN0aW9u
Rm9yVmFsaWRhdGlvblBoYXNlLmNwcCAqLywKIAkJCQkwRjY2NkVDQjE4MzZCMzdFMDBEMDE3RjEg
LyogREZHUmVzdXJyZWN0aW9uRm9yVmFsaWRhdGlvblBoYXNlLmggKi8sCisJCQkJMEYyRkNDRjQx
OEE2MDA3MDAwMUEyN0Y4IC8qIERGR1NhZmVwb2ludC5jcHAgKi8sCisJCQkJMEYyRkNDRjUxOEE2
MDA3MDAwMUEyN0Y4IC8qIERGR1NhZmVwb2ludC5oICovLAogCQkJCUE3N0E0MjNDMTdBMEJCRkQw
MEE4REI4MSAvKiBERkdTYWZlVG9FeGVjdXRlLmggKi8sCiAJCQkJQTc0MTAxN0UxNzlEQUY4MDAw
MkVCOEJBIC8qIERGR1NhbmVTdHJpbmdHZXRCeVZhbFNsb3dQYXRoR2VuZXJhdG9yLmggKi8sCisJ
CQkJMEYyRkNDRjYxOEE2MDA3MDAwMUEyN0Y4IC8qIERGR1NjYW5uYWJsZS5oICovLAogCQkJCTg2
RUNBM0Y5MTMyREYyNUEwMDJCMkFENyAvKiBERkdTY29yZUJvYXJkLmggKi8sCiAJCQkJMEYxRTNB
NjUxNTNBMjFERjAwMEY5NDU2IC8qIERGR1NpbGVudFJlZ2lzdGVyU2F2ZVBsYW4uaCAqLywKIAkJ
CQkwRjFFM0E1MDE1MzdDMkNCMDAwRjk0NTYgLyogREZHU2xvd1BhdGhHZW5lcmF0b3IuaCAqLywK
QEAgLTQyNzcsOSArNDI5NCwxMyBAQAogCQkJCTBGQzIwQ0I4MTg1NTZBMzUwMEM5RTk1NCAvKiBE
RkdTU0FMb3dlcmluZ1BoYXNlLmggKi8sCiAJCQkJMEY5RkI0RjIxN0ZDQjkxNzAwQ0I2N0Y4IC8q
IERGR1N0YWNrTGF5b3V0UGhhc2UuY3BwICovLAogCQkJCTBGOUZCNEYzMTdGQ0I5MTcwMENCNjdG
OCAvKiBERkdTdGFja0xheW91dFBoYXNlLmggKi8sCisJCQkJMkFDQ0YzREMxODVGRTI2QjAwODNF
MkFEIC8qIERGR1N0b3JlQmFycmllckVsaXNpb25QaGFzZS5jcHAgKi8sCisJCQkJMkFDQ0YzREQx
ODVGRTI2QjAwODNFMkFEIC8qIERGR1N0b3JlQmFycmllckVsaXNpb25QaGFzZS5oICovLAogCQkJ
CTBGQzIwQ0IzMTg1MkUyQzYwMEM5RTk1NCAvKiBERkdTdHJlbmd0aFJlZHVjdGlvblBoYXNlLmNw
cCAqLywKIAkJCQkwRkMyMENCNDE4NTJFMkM2MDBDOUU5NTQgLyogREZHU3RyZW5ndGhSZWR1Y3Rp
b25QaGFzZS5oICovLAogCQkJCTBGNjM5NDc2MTVEQ0UzNDcwMDZBNTk3QyAvKiBERkdTdHJ1Y3R1
cmVBYnN0cmFjdFZhbHVlLmggKi8sCisJCQkJMEYyRkNDRjcxOEE2MDA3MDAwMUEyN0Y4IC8qIERG
R1RocmVhZERhdGEuY3BwICovLAorCQkJCTBGMkZDQ0Y4MThBNjAwNzAwMDFBMjdGOCAvKiBERkdU
aHJlYWREYXRhLmggKi8sCiAJCQkJMEZDMDk3OUYxNDZCMjhDNzAwQ0YyNDQyIC8qIERGR1RodW5r
cy5jcHAgKi8sCiAJCQkJMEZDMDk3QTAxNDZCMjhDNzAwQ0YyNDQyIC8qIERGR1RodW5rcy5oICov
LAogCQkJCTBGRDhBMzFGMTdENTFGNTcwMENBMkM0MCAvKiBERkdUaWVyVXBDaGVja0luamVjdGlv
blBoYXNlLmNwcCAqLywKQEAgLTQ2OTgsNyArNDcxOSw3IEBACiAJCQkJNjVDMDI4NUQxNzE3OTY2
ODAwMzUxRTM1IC8qIEFSTXY3RE9wY29kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkE2ODI5NUIx
ODc1RjgwNTAwQjZDM0UyIC8qIENvcHlXcml0ZUJhcnJpZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTJBNEVDOTBDMTg2MEQ2QzIwMDk0Rjc4MiAvKiBXcml0ZUJhcnJpZXJCdWZmZXIuaCBpbiBIZWFk
ZXJzICovLAotICAgICAgICAgICAgICAgQzJCNkQ3NTMxOEEzMzc5MzAwNEE5MzAxIC8qIFdyaXRl
QmFycmllcklubGluZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCUMyQjZENzUzMThBMzM3OTMwMDRB
OTMwMSAvKiBXcml0ZUJhcnJpZXJJbmxpbmVzLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRTU5MzJB
ODE4M0M1QTI2MDBBMUVDQ0MgLyogVk1FbnRyeVNjb3BlLmggaW4gSGVhZGVycyAqLywKIAkJCQlB
NTMyNDM5MzE4NTY5NzA5MDAyRUQ2OTIgLyogQ29kZUdlbmVyYXRvckluc3BlY3RvclN0cmluZ3Mu
cHkgaW4gSGVhZGVycyAqLywKIAkJCQlBNTMyNDM5MjE4NTY5NzA5MDAyRUQ2OTIgLyogQ29kZUdl
bmVyYXRvckluc3BlY3Rvci5weSBpbiBIZWFkZXJzICovLApAQCAtNTA3Nyw2ICs1MDk4LDcgQEAK
IAkJCQlBNzkwREQ3MDE4MkY0OTk3MDA1ODg4MDcgLyogSlNTZXRJdGVyYXRvci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMEYyNEU1NEUxN0VFMjc0OTAwQUJCMjE3IC8qIEpJVE9wZXJhdGlvbldyYXBw
ZXJzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjc2NkQzMTE1QUE4MTEyMDA4RjM2M0UgLyogSklU
U3R1YlJvdXRpbmUuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGMkZDQ0ZBMThBNjAwNzAwMDFBMjdG
OCAvKiBERkdHcmFwaFNhZmVwb2ludC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY3NjZEMkMxNUE4
Q0MzQTAwOEYzNjNFIC8qIEpJVFN0dWJSb3V0aW5lU2V0LmggaW4gSGVhZGVycyAqLywKIAkJCQkx
NEM1MjQyQjBGNTM1NUU5MDBCQTNEMDQgLyogSklUU3R1YnMuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUZFRjY4MzVFMTc0MzQzQ0MwMEEzMkUyNSAvKiBKSVRTdHVic0FSTS5oIGluIEhlYWRlcnMgKi8s
CkBAIC01MTE2LDYgKzUxMzgsNyBAQAogCQkJCTg2RTNDNjEzMTY3QkFCRDcwMDZENzYwQSAvKiBK
U0NvbnRleHQuaCBpbiBIZWFkZXJzICovLAogCQkJCTg2RTNDNjE3MTY3QkFCRUUwMDZENzYwQSAv
KiBKU0NvbnRleHRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxOEM0MUUwRTE2RjVD
RDAwQjM0NDYwIC8qIEpTQ29udGV4dFJlZi5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEYyRkNDRkYx
OEE2MDA3MDAwMUEyN0Y4IC8qIERGR1RocmVhZERhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCTE0
OENEMUQ4MTA4Q0Y5MDIwMDgxNjNDNiAvKiBKU0NvbnRleHRSZWZQcml2YXRlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlBNzIwMjhCODE3OTc2MDFFMDA5ODAyOEMgLyogSlNDVGVzdFJ1bm5lclV0aWxz
LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjJCNjZFQzE3QjZCNUFCMDBBN0FFM0YgLyogSlNEYXRh
Vmlldy5oIGluIEhlYWRlcnMgKi8sCkBAIC01MjM2LDYgKzUyNTksNyBAQAogCQkJCTg2QzU2OEUx
MTFBMjEzRUUwMDA3RjdGMCAvKiBNYWNyb0Fzc2VtYmxlck1JUFMuaCBpbiBIZWFkZXJzICovLAog
CQkJCTg2QUU2NEE5MTM1RTVFMUMwMDk2MzAxMiAvKiBNYWNyb0Fzc2VtYmxlclNINC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJODYwMTYxRTQwRjNBODNDMTAwRjg0NzEwIC8qIE1hY3JvQXNzZW1ibGVy
WDg2LmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjJGQ0NGQzE4QTYwMDcwMDAxQTI3RjggLyogREZH
U2FmZXBvaW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk4NjAxNjFFNTBGM0E4M0MxMDBGODQ3MTAg
LyogTWFjcm9Bc3NlbWJsZXJYODZfNjQuaCBpbiBIZWFkZXJzICovLAogCQkJCTg2MDE2MUU2MEYz
QTgzQzEwMEY4NDcxMCAvKiBNYWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQTcwMDg3M0ExN0NCRTg1MzAwQzNFNjQzIC8qIE1hcENvbnN0cnVjdG9yLmggaW4gSGVh
ZGVycyAqLywKQEAgLTU0NDcsNiArNTQ3MSw3IEBACiAJCQkJMEYyNDJEQTcxM0YzQjFFODAwN0FE
RDRDIC8qIFdlYWtSZWZlcmVuY2VIYXJ2ZXN0ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTE0RTg0
RkExMTRFRTFBQ0MwMEQ2RDVENCAvKiBXZWFrU2V0LmggaW4gSGVhZGVycyAqLywKIAkJCQkxNDE1
MDEzMzE1NEJCMTNGMDA1RDhDOTggLyogV2Vha1NldElubGluZXMuaCBpbiBIZWFkZXJzICovLAor
CQkJCTBGMkZDQ0ZEMThBNjAwNzAwMDFBMjdGOCAvKiBERkdTY2FubmFibGUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUJDMThDNDdBMEUxNkY1Q0QwMEIzNDQ2MCAvKiBXZWJLaXRBdmFpbGFiaWxpdHku
aCBpbiBIZWFkZXJzICovLAogCQkJCUE3NERFRjkyMTgyRDk5MTQwMDUyMkMyMiAvKiBNYXBJdGVy
YXRvckNvbnN0cnVjdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlBN0RDQjk3MzEyRTUxOTNGMDA5
MTE5NDAgLyogV3JpdGVCYXJyaWVyLmggaW4gSGVhZGVycyAqLywKQEAgLTYwNDEsNiArNjA2Niw3
IEBACiAJCQkJQTcwNDQ3RUQxN0EwQkQ3MDAwRjU4OThFIC8qIER1bXBDb250ZXh0LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTE0N0YzOUM3MTA3RUMzNzYwMDQyN0E0OCAvKiBFcnJvci5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkxNDdGMzlDODEwN0VDMzc2MDA0MjdBNDggLyogRXJyb3JDb25zdHJ1
Y3Rvci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkwRjJGQ0NGOTE4QTYwMDcwMDAxQTI3RjggLyog
REZHR3JhcGhTYWZlcG9pbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQ3RjM5QzkxMDdFQzM3
NjAwNDI3QTQ4IC8qIEVycm9ySW5zdGFuY2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQ3RjM5
Q0ExMDdFQzM3NjAwNDI3QTQ4IC8qIEVycm9yUHJvdG90eXBlLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUE1RkQwMDY3MTg5QUZFOUMwMDYzMzIzMSAvKiBTY3JpcHRBcmd1bWVudHMuY3BwIGluIFNv
dXJjZXMgKi8sCkBAIC02MjExLDYgKzYyMzcsNyBAQAogCQkJCUE3NDgyQjk0MTE2NzExNDcwMDNC
MDcxMiAvKiBKU1dlYWtPYmplY3RNYXBSZWZQcml2YXRlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTE0NDI1NjYxMTVFREU5OEQwMDY2QTQ5QiAvKiBKU1dpdGhTY29wZS5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlBNTAzRkExQjE4OEUwRkIwMDAxMTBGMTQgLyogSlNKYXZhU2NyaXB0Q2FsbEZyYW1l
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTBGMkZDQ0ZFMThBNjAwNzAwMDFBMjdGOCAvKiBERkdU
aHJlYWREYXRhLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg2RTNDNjE4MTY3QkFCRUUwMDZENzYw
QSAvKiBKU1dyYXBwZXJNYXAubW0gaW4gU291cmNlcyAqLywKIAkJCQkxNDI4MDg3MDEwN0VDMTM0
MDAxM0U3QjIgLyogSlNXcmFwcGVyT2JqZWN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE1N0Qy
M0U5MTg5MUIwNzcwMDMxQzdGQSAvKiBKU0dsb2JhbE9iamVjdERlYnVnZ2VyQWdlbnQuY3BwIGlu
IFNvdXJjZXMgKi8sCkBAIC02MzIyLDYgKzYzNDksNyBAQAogCQkJCUMyMjU0OTQzMTVGN0RCQUEw
MDY1RTg5OCAvKiBTbG90VmlzaXRvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5MzMwNDAyQzBF
NkE3NjQwMDA3ODZFNkEgLyogU21hbGxTdHJpbmdzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBG
OEYyQjlFMTczMDZDOEQwMDdEQkRBNSAvKiBTb3VyY2VDb2RlLmNwcCBpbiBTb3VyY2VzICovLAor
CQkJCTBGMkZDQ0ZCMThBNjAwNzAwMDFBMjdGOCAvKiBERkdTYWZlcG9pbnQuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQTVGRDAwNzkxODlCMDUxMDAwNjMzMjMxIC8qIENvbnNvbGVNZXNzYWdlLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTBGNDkzQUZBMTZEMENBRDMwMDg0NTA4QiAvKiBTb3VyY2VQ
cm92aWRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFNDlEQzE2QjEyRUYyOTNFMDAxODRBMUYg
LyogU291cmNlUHJvdmlkZXJDYWNoZS5jcHAgaW4gU291cmNlcyAqLywKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTGlua0J1ZmZlci5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9MaW5rQnVmZmVyLmNwcAkocmV2aXNpb24gMTYz
NzUyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9MaW5rQnVmZmVyLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMzAsNiArMzAsNyBAQAogCiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgi
CiAjaW5jbHVkZSAiSklUQ29kZS5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRl
ICJPcHRpb25zLmgiCiAjaW5jbHVkZSAiVk0uaCIKICNpbmNsdWRlIDx3dGYvQ29tcGlsYXRpb25U
aHJlYWQuaD4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2su
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxv
Y2suY3BwCShyZXZpc2lvbiAxNjM3NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvQ29kZUJsb2NrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1
ZGUgIkRGR0NhcGFiaWxpdGllcy5oIgogI2luY2x1ZGUgIkRGR0NvbW1vbi5oIgogI2luY2x1ZGUg
IkRGR0RyaXZlci5oIgorI2luY2x1ZGUgIkRGR0pJVENvZGUuaCIKICNpbmNsdWRlICJERkdOb2Rl
LmgiCiAjaW5jbHVkZSAiREZHV29ya2xpc3QuaCIKICNpbmNsdWRlICJEZWJ1Z2dlci5oIgpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suaAkocmV2aXNpb24g
MTYzNzUyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5oCSh3
b3JraW5nIGNvcHkpCkBAIC01Niw3ICs1Niw2IEBACiAjaW5jbHVkZSAiSGFuZGxlckluZm8uaCIK
ICNpbmNsdWRlICJPYmplY3RBbGxvY2F0aW9uUHJvZmlsZS5oIgogI2luY2x1ZGUgIk9wdGlvbnMu
aCIKLSNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiUHV0UHJvcGVydHlTbG90Lmgi
CiAjaW5jbHVkZSAiSW5zdHJ1Y3Rpb24uaCIKICNpbmNsdWRlICJKSVRDb2RlLmgiCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUHJvZmlsZWRDb2RlQmxvY2tKZXR0aXNvbmlu
Z1dhdGNocG9pbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9Qcm9maWxlZENvZGVCbG9ja0pldHRpc29uaW5nV2F0Y2hwb2ludC5jcHAJKHJldmlzaW9u
IDE2Mzc1MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Qcm9maWxlZENvZGVC
bG9ja0pldHRpc29uaW5nV2F0Y2hwb2ludC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMxLDYgKzMx
LDcgQEAKICNpbmNsdWRlICJDb2RlQmxvY2suaCIKICNpbmNsdWRlICJERkdDb21tb24uaCIKICNp
bmNsdWRlICJERkdFeGl0UHJvZmlsZS5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFt
ZXNwYWNlIEpTQyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1
Z2dlckNhbGxGcmFtZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Rl
YnVnZ2VyL0RlYnVnZ2VyQ2FsbEZyYW1lLmNwcAkocmV2aXNpb24gMTYzNzUyKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQ2FsbEZyYW1lLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMjksNyArMjksNiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkRl
YnVnZ2VyQ2FsbEZyYW1lLmgiCiAKLSNpbmNsdWRlICJDYWxsRnJhbWVJbmxpbmVzLmgiCiAjaW5j
bHVkZSAiQ29kZUJsb2NrLmgiCiAjaW5jbHVkZSAiSW50ZXJwcmV0ZXIuaCIKICNpbmNsdWRlICJK
U0FjdGl2YXRpb24uaCIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRGVzaXJl
ZFRyYW5zaXRpb25zLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0Rlc2lyZWRUcmFuc2l0aW9ucy5jcHAJKHJldmlzaW9uIDE2Mzc1MikKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHRGVzaXJlZFRyYW5zaXRpb25zLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMzEsNiArMzEsNyBAQAogCiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgiCiAjaW5jbHVkZSAi
REZHQ29tbW9uRGF0YS5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpT
QyB7IG5hbWVzcGFjZSBERkcgewogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0RyaXZlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdE
cml2ZXIuY3BwCShyZXZpc2lvbiAxNjM3NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0RyaXZlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEyMSw3ICsxMjEsNyBAQCBzdGF0aWMg
Q29tcGlsYXRpb25SZXN1bHQgY29tcGlsZUltcGwoCiAgICAgICAgIHJldHVybiBDb21waWxhdGlv
bkRlZmVycmVkOwogICAgIH0KICAgICAKLSAgICBwbGFuLT5jb21waWxlSW5UaHJlYWQoKnZtLmRm
Z1N0YXRlKTsKKyAgICBwbGFuLT5jb21waWxlSW5UaHJlYWQoKnZtLmRmZ1N0YXRlLCAwKTsKICAg
ICByZXR1cm4gcGxhbi0+ZmluYWxpemVXaXRob3V0Tm90aWZ5aW5nQ2FsbGJhY2soKTsKIH0KICNl
bHNlIC8vIEVOQUJMRShERkdfSklUKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdHcmFwaC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdH
cmFwaC5jcHAJKHJldmlzaW9uIDE2Mzc1MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHR3JhcGguY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03OTAsNiArNzkwLDU5IEBAIEpTQXJyYXlC
dWZmZXJWaWV3KiBHcmFwaDo6dHJ5R2V0Rm9sZGFibGUKICAgICByZXR1cm4gdHJ5R2V0Rm9sZGFi
bGVWaWV3KGNoaWxkKG5vZGUsIDApLm5vZGUoKSwgbm9kZS0+YXJyYXlNb2RlKCkpOwogfQogCit2
b2lkIEdyYXBoOjp2aXNpdENoaWxkcmVuKFNsb3RWaXNpdG9yJiB2aXNpdG9yKQoreworICAgIGZv
ciAoQmxvY2tJbmRleCBibG9ja0luZGV4ID0gbnVtQmxvY2tzKCk7IGJsb2NrSW5kZXgtLTspIHsK
KyAgICAgICAgQmFzaWNCbG9jayogYmxvY2sgPSB0aGlzLT5ibG9jayhibG9ja0luZGV4KTsKKyAg
ICAgICAgaWYgKCFibG9jaykKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAKKyAgICAg
ICAgZm9yICh1bnNpZ25lZCBub2RlSW5kZXggPSAwOyBub2RlSW5kZXggPCBibG9jay0+c2l6ZSgp
OyArK25vZGVJbmRleCkgeworICAgICAgICAgICAgTm9kZSogbm9kZSA9IGJsb2NrLT5hdChub2Rl
SW5kZXgpOworICAgICAgICAgICAgCisgICAgICAgICAgICBzd2l0Y2ggKG5vZGUtPm9wKCkpIHsK
KyAgICAgICAgICAgIGNhc2UgSlNDb25zdGFudDoKKyAgICAgICAgICAgIGNhc2UgV2Vha0pTQ29u
c3RhbnQ6CisgICAgICAgICAgICAgICAgdmlzaXRvci5hcHBlbmRVbmJhcnJpZXJlZFJlYWRPbmx5
VmFsdWUodmFsdWVPZkpTQ29uc3RhbnQobm9kZSkpOworICAgICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgY2FzZSBDaGVja0Z1bmN0aW9uOgorICAgICAg
ICAgICAgICAgIHZpc2l0b3IuYXBwZW5kVW5iYXJyaWVyZWRSZWFkT25seVBvaW50ZXIobm9kZS0+
ZnVuY3Rpb24oKSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgCisg
ICAgICAgICAgICBjYXNlIENoZWNrRXhlY3V0YWJsZToKKyAgICAgICAgICAgICAgICB2aXNpdG9y
LmFwcGVuZFVuYmFycmllcmVkUmVhZE9ubHlQb2ludGVyKG5vZGUtPmV4ZWN1dGFibGUoKSk7Cisg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICBjYXNl
IENoZWNrU3RydWN0dXJlOgorICAgICAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IG5vZGUt
PnN0cnVjdHVyZVNldCgpLnNpemUoKTsgaS0tOykKKyAgICAgICAgICAgICAgICAgICAgdmlzaXRv
ci5hcHBlbmRVbmJhcnJpZXJlZFJlYWRPbmx5UG9pbnRlcihub2RlLT5zdHJ1Y3R1cmVTZXQoKVtp
XSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAg
ICBjYXNlIFN0cnVjdHVyZVRyYW5zaXRpb25XYXRjaHBvaW50OgorICAgICAgICAgICAgY2FzZSBO
ZXdPYmplY3Q6CisgICAgICAgICAgICBjYXNlIEFycmF5aWZ5VG9TdHJ1Y3R1cmU6CisgICAgICAg
ICAgICBjYXNlIE5ld1N0cmluZ09iamVjdDoKKyAgICAgICAgICAgICAgICB2aXNpdG9yLmFwcGVu
ZFVuYmFycmllcmVkUmVhZE9ubHlQb2ludGVyKG5vZGUtPnN0cnVjdHVyZSgpKTsKKyAgICAgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIGNhc2UgUHV0U3Ry
dWN0dXJlOgorICAgICAgICAgICAgY2FzZSBQaGFudG9tUHV0U3RydWN0dXJlOgorICAgICAgICAg
ICAgY2FzZSBBbGxvY2F0ZVByb3BlcnR5U3RvcmFnZToKKyAgICAgICAgICAgIGNhc2UgUmVhbGxv
Y2F0ZVByb3BlcnR5U3RvcmFnZToKKyAgICAgICAgICAgICAgICB2aXNpdG9yLmFwcGVuZFVuYmFy
cmllcmVkUmVhZE9ubHlQb2ludGVyKAorICAgICAgICAgICAgICAgICAgICBub2RlLT5zdHJ1Y3R1
cmVUcmFuc2l0aW9uRGF0YSgpLnByZXZpb3VzU3RydWN0dXJlKTsKKyAgICAgICAgICAgICAgICB2
aXNpdG9yLmFwcGVuZFVuYmFycmllcmVkUmVhZE9ubHlQb2ludGVyKAorICAgICAgICAgICAgICAg
ICAgICBub2RlLT5zdHJ1Y3R1cmVUcmFuc2l0aW9uRGF0YSgpLm5ld1N0cnVjdHVyZSk7CisgICAg
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICBkZWZhdWx0
OgorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAg
fQorfQorCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6REZHCiAKICNlbmRpZgpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHR3JhcGguaAkocmV2aXNpb24gMTYzNzUyKQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5oCSh3b3JraW5nIGNvcHkpCkBAIC00MCw2ICs0MCw3
IEBACiAjaW5jbHVkZSAiREZHTm9kZS5oIgogI2luY2x1ZGUgIkRGR05vZGVBbGxvY2F0b3IuaCIK
ICNpbmNsdWRlICJERkdQbGFuLmgiCisjaW5jbHVkZSAiREZHU2Nhbm5hYmxlLmgiCiAjaW5jbHVk
ZSAiREZHVmFyaWFkaWNGdW5jdGlvbi5oIgogI2luY2x1ZGUgIklubGluZUNhbGxGcmFtZVNldC5o
IgogI2luY2x1ZGUgIkpTU3RhY2suaCIKQEAgLTc4LDcgKzc5LDcgQEAgZW51bSBBZGRTcGVjdWxh
dGlvbk1vZGUgewogLy8KIC8vIFRoZSBvcmRlciBtYXkgYmUgc2lnbmlmaWNhbnQgZm9yIG5vZGVz
IHdpdGggc2lkZS1lZmZlY3RzIChwcm9wZXJ0eSBhY2Nlc3NlcywgdmFsdWUgY29udmVyc2lvbnMp
LgogLy8gTm9kZXMgdGhhdCBhcmUgJ2RlYWQnIHJlbWFpbiBpbiB0aGUgdmVjdG9yIHdpdGggcmVm
Q291bnQgMC4KLWNsYXNzIEdyYXBoIHsKK2NsYXNzIEdyYXBoIDogcHVibGljIHZpcnR1YWwgU2Nh
bm5hYmxlIHsKIHB1YmxpYzoKICAgICBHcmFwaChWTSYsIFBsYW4mLCBMb25nTGl2ZWRTdGF0ZSYp
OwogICAgIH5HcmFwaCgpOwpAQCAtNzk5LDYgKzgwMCw4IEBAIHB1YmxpYzoKICAgICBKU0FycmF5
QnVmZmVyVmlldyogdHJ5R2V0Rm9sZGFibGVWaWV3KE5vZGUqLCBBcnJheU1vZGUpOwogICAgIEpT
QXJyYXlCdWZmZXJWaWV3KiB0cnlHZXRGb2xkYWJsZVZpZXdGb3JDaGlsZDEoTm9kZSopOwogICAg
IAorICAgIHZpcnR1YWwgdm9pZCB2aXNpdENoaWxkcmVuKFNsb3RWaXNpdG9yJikgb3ZlcnJpZGU7
CisgICAgCiAgICAgVk0mIG1fdm07CiAgICAgUGxhbiYgbV9wbGFuOwogICAgIENvZGVCbG9jayog
bV9jb2RlQmxvY2s7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoU2Fm
ZXBvaW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dy
YXBoU2FmZXBvaW50LmNwcAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHR3JhcGhTYWZlcG9pbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNDcgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisg
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIkRGR0dyYXBoU2FmZXBvaW50LmgiCisKKyNpZiBFTkFCTEUo
REZHX0pJVCkKKworI2luY2x1ZGUgIkRGR0dyYXBoLmgiCisKK25hbWVzcGFjZSBKU0MgeyBuYW1l
c3BhY2UgREZHIHsKKworR3JhcGhTYWZlcG9pbnQ6OkdyYXBoU2FmZXBvaW50KEdyYXBoJiBncmFw
aCkKKyAgICA6IG1fc2FmZXBvaW50KGdyYXBoLm1fcGxhbikKK3sKKyAgICBtX3NhZmVwb2ludC5h
ZGQoJmdyYXBoKTsKKyAgICBtX3NhZmVwb2ludC5iZWdpbigpOworfQorCitHcmFwaFNhZmVwb2lu
dDo6fkdyYXBoU2FmZXBvaW50KCkgeyB9CisKK30gfSAvLyBuYW1lc3BhY2UgSlNDOjpERkcKKwor
I2VuZGlmIC8vIEVOQUJMRShERkdfSklUKQorCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0dyYXBoU2FmZXBvaW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdHcmFwaFNhZmVwb2ludC5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdHcmFwaFNhZmVwb2ludC5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAg
KzEsNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKwor
I2lmbmRlZiBERkdHcmFwaFNhZmVwb2ludF9oCisjZGVmaW5lIERGR0dyYXBoU2FmZXBvaW50X2gK
KworI2lmIEVOQUJMRShERkdfSklUKQorCisjaW5jbHVkZSAiREZHU2FmZXBvaW50LmgiCisKK25h
bWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKKworY2xhc3MgR3JhcGg7CisKK2NsYXNzIEdy
YXBoU2FmZXBvaW50IHsKK3B1YmxpYzoKKyAgICBHcmFwaFNhZmVwb2ludChHcmFwaCYpOworICAg
IH5HcmFwaFNhZmVwb2ludCgpOworICAgIAorcHJpdmF0ZToKKyAgICBTYWZlcG9pbnQgbV9zYWZl
cG9pbnQ7Cit9OworCit9IH0gLy8gbmFtZXNwYWNlIEpTQzo6REZHCisKKyNlbmRpZiAvLyBFTkFC
TEUoREZHX0pJVCkKKworI2VuZGlmIC8vIERGR0dyYXBoU2FmZXBvaW50X2gKKwpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb2RlLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVENvZGUuY3BwCShyZXZpc2lvbiAxNjM3NTIpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVENvZGUuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0yOSw2ICsyOSw3IEBACiAjaWYgRU5BQkxFKERGR19KSVQpCiAKICNpbmNsdWRlICJDb2Rl
QmxvY2suaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1l
c3BhY2UgREZHIHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb21w
aWxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRD
b21waWxlci5jcHAJKHJldmlzaW9uIDE2Mzc1MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHSklUQ29tcGlsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00Miw4ICs0Miw5IEBACiAj
aW5jbHVkZSAiREZHVGh1bmtzLmgiCiAjaW5jbHVkZSAiSlNDSlNWYWx1ZUlubGluZXMuaCIKICNp
bmNsdWRlICJNYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbC5oIgotI2luY2x1ZGUgIlZNLmgi
CisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIkxpbmtCdWZmZXIuaCIKKyNpbmNs
dWRlICJWTS5oIgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklUQ29tcGlsZXIuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVENvbXBpbGVyLmgJKHJldmlzaW9uIDE2Mzc1
MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklUQ29tcGlsZXIuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMjksNyArMjksNiBAQAogI2lmIEVOQUJMRShERkdfSklUKQogCiAjaW5jbHVk
ZSAiQ0NhbGxIZWxwZXJzLmgiCi0jaW5jbHVkZSAiQ2FsbEZyYW1lSW5saW5lcy5oIgogI2luY2x1
ZGUgIkNvZGVCbG9jay5oIgogI2luY2x1ZGUgIkRGR0Rpc2Fzc2VtYmxlci5oIgogI2luY2x1ZGUg
IkRGR0dyYXBoLmgiCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXRD
b21waWxlckNvbW1vbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdPU1JFeGl0Q29tcGlsZXJDb21tb24uY3BwCShyZXZpc2lvbiAxNjM3NTIpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXRDb21waWxlckNvbW1vbi5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTI5LDYgKzI5LDcgQEAKICNpZiBFTkFCTEUoREZHX0pJVCkKIAogI2luY2x1
ZGUgIkFyZ3VtZW50cy5oIgorI2luY2x1ZGUgIkRGR0pJVENvZGUuaCIKICNpbmNsdWRlICJERkdP
cGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiSklULmgiCiAjaW5jbHVkZSAiSlNDSlNWYWx1ZUlubGlu
ZXMuaCIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNw
cAkocmV2aXNpb24gMTYzNzUyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVy
YXRpb25zLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkNv
bW1vblNsb3dQYXRocy5oIgogI2luY2x1ZGUgIkNvcGllZFNwYWNlSW5saW5lcy5oIgogI2luY2x1
ZGUgIkRGR0RyaXZlci5oIgorI2luY2x1ZGUgIkRGR0pJVENvZGUuaCIKICNpbmNsdWRlICJERkdP
U1JFeGl0LmgiCiAjaW5jbHVkZSAiREZHVGh1bmtzLmgiCiAjaW5jbHVkZSAiREZHVG9GVExEZWZl
cnJlZENvbXBpbGF0aW9uQ2FsbGJhY2suaCIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHT3BlcmF0aW9ucy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHT3BlcmF0aW9ucy5oCShyZXZpc2lvbiAxNjM3NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR09wZXJhdGlvbnMuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAK
IC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExLCAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjgs
NyArMjgsNiBAQAogCiAjaWYgRU5BQkxFKERGR19KSVQpCiAKLSNpbmNsdWRlICJERkdKSVRDb21w
aWxlci5oIgogI2luY2x1ZGUgIkpJVE9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJQdXRLaW5kLmgi
CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUGxhbi5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQbGFuLmNwcAkocmV2aXNpb24gMTYz
NzUyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQbGFuLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNDEsNiArNDEsNyBAQAogI2luY2x1ZGUgIkRGR0ZhaWxlZEZpbmFsaXplci5oIgog
I2luY2x1ZGUgIkRGR0ZsdXNoTGl2ZW5lc3NBbmFseXNpc1BoYXNlLmgiCiAjaW5jbHVkZSAiREZH
Rml4dXBQaGFzZS5oIgorI2luY2x1ZGUgIkRGR0dyYXBoU2FmZXBvaW50LmgiCiAjaW5jbHVkZSAi
REZHSW52YWxpZGF0aW9uUG9pbnRJbmplY3Rpb25QaGFzZS5oIgogI2luY2x1ZGUgIkRGR0pJVENv
bXBpbGVyLmgiCiAjaW5jbHVkZSAiREZHTElDTVBoYXNlLmgiCkBAIC0xMzUsOCArMTM2LDEwIEBA
IGJvb2wgUGxhbjo6cmVwb3J0Q29tcGlsZVRpbWVzKCkgY29uc3QKICAgICAgICAgfHwgKE9wdGlv
bnM6OnJlcG9ydEZUTENvbXBpbGVUaW1lcygpICYmIGlzRlRMKG1vZGUpKTsKIH0KIAotdm9pZCBQ
bGFuOjpjb21waWxlSW5UaHJlYWQoTG9uZ0xpdmVkU3RhdGUmIGxvbmdMaXZlZFN0YXRlKQordm9p
ZCBQbGFuOjpjb21waWxlSW5UaHJlYWQoTG9uZ0xpdmVkU3RhdGUmIGxvbmdMaXZlZFN0YXRlLCBU
aHJlYWREYXRhKiB0aHJlYWREYXRhKQogeworICAgIHRoaXMtPnRocmVhZERhdGEgPSB0aHJlYWRE
YXRhOworICAgIAogICAgIGRvdWJsZSBiZWZvcmUgPSAwOwogICAgIGlmIChyZXBvcnRDb21waWxl
VGltZXMoKSkKICAgICAgICAgYmVmb3JlID0gY3VycmVudFRpbWVNUygpOwpAQCAtMzEzLDExICsz
MTYsMTQgQEAgUGxhbjo6Q29tcGlsYXRpb25QYXRoIFBsYW46OmNvbXBpbGVJblRocgogICAgICAg
ICAKICAgICAgICAgZHVtcEFuZFZlcmlmeUdyYXBoKGRmZywgIkdyYXBoIGp1c3QgYmVmb3JlIEZU
TCBsb3dlcmluZzoiKTsKICAgICAgICAgCi0gICAgICAgIGluaXRpYWxpemVMTFZNKCk7Ci0gICAg
ICAgIAorICAgICAgICB7CisgICAgICAgICAgICBHcmFwaFNhZmVwb2ludCBzYWZlcG9pbnQoZGZn
KTsKKyAgICAgICAgICAgIGluaXRpYWxpemVMTFZNKCk7CisgICAgICAgIH0KKyAgICAgICAgICAg
IAogICAgICAgICBGVEw6OlN0YXRlIHN0YXRlKGRmZyk7CiAgICAgICAgIEZUTDo6bG93ZXJERkdU
b0xMVk0oc3RhdGUpOwotICAgICAgICAKKyAgICAgICAgICAgIAogICAgICAgICBpZiAocmVwb3J0
Q29tcGlsZVRpbWVzKCkpCiAgICAgICAgICAgICBiZWZvcmVGVEwgPSBjdXJyZW50VGltZU1TKCk7
CiAgICAgICAgIApAQCAtMzI3LDcgKzMzMyw3IEBAIFBsYW46OkNvbXBpbGF0aW9uUGF0aCBQbGFu
Ojpjb21waWxlSW5UaHIKICAgICAgICAgfQogICAgICAgICAKICAgICAgICAgRlRMOjpjb21waWxl
KHN0YXRlKTsKLQorICAgICAgICAgICAgCiAgICAgICAgIGlmIChPcHRpb25zOjpsbHZtQWx3YXlz
RmFpbHNCZWZvcmVMaW5rKCkpIHsKICAgICAgICAgICAgIEZUTDo6ZmFpbChzdGF0ZSk7CiAgICAg
ICAgICAgICByZXR1cm4gRlRMUGF0aDsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHUGxhbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUGxh
bi5oCShyZXZpc2lvbiAxNjM3NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Bs
YW4uaAkod29ya2luZyBjb3B5KQpAQCAtNTIsNiArNTIsNyBAQCBjbGFzcyBTbG90VmlzaXRvcjsK
IG5hbWVzcGFjZSBERkcgewogCiBjbGFzcyBMb25nTGl2ZWRTdGF0ZTsKK2NsYXNzIFRocmVhZERh
dGE7CiAKICNpZiBFTkFCTEUoREZHX0pJVCkKIApAQCAtNjIsNyArNjMsNyBAQCBzdHJ1Y3QgUGxh
biA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlCiAgICAgICAgIGNvbnN0IE9wZXJhbmRzPEpT
VmFsdWU+JiBtdXN0SGFuZGxlVmFsdWVzKTsKICAgICB+UGxhbigpOwogICAgIAotICAgIHZvaWQg
Y29tcGlsZUluVGhyZWFkKExvbmdMaXZlZFN0YXRlJik7CisgICAgdm9pZCBjb21waWxlSW5UaHJl
YWQoTG9uZ0xpdmVkU3RhdGUmLCBUaHJlYWREYXRhKik7CiAgICAgCiAgICAgQ29tcGlsYXRpb25S
ZXN1bHQgZmluYWxpemVXaXRob3V0Tm90aWZ5aW5nQ2FsbGJhY2soKTsKICAgICB2b2lkIGZpbmFs
aXplQW5kTm90aWZ5Q2FsbGJhY2soKTsKQEAgLTc5LDYgKzgwLDggQEAgc3RydWN0IFBsYW4gOiBw
dWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZQogICAgIENvbXBpbGF0aW9uTW9kZSBtb2RlOwogICAg
IGNvbnN0IHVuc2lnbmVkIG9zckVudHJ5Qnl0ZWNvZGVJbmRleDsKICAgICBPcGVyYW5kczxKU1Zh
bHVlPiBtdXN0SGFuZGxlVmFsdWVzOworICAgIAorICAgIFRocmVhZERhdGEqIHRocmVhZERhdGE7
CiAKICAgICBSZWZQdHI8UHJvZmlsZXI6OkNvbXBpbGF0aW9uPiBjb21waWxhdGlvbjsKIApJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTYWZlcG9pbnQuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZXBvaW50LmNwcAkocmV2aXNpb24g
MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZXBvaW50LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMCwwICsxLDc0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJERkdTYWZlcG9p
bnQuaCIKKworI2lmIEVOQUJMRShERkdfSklUKQorCisjaW5jbHVkZSAiREZHUGxhbi5oIgorI2lu
Y2x1ZGUgIkRGR1NjYW5uYWJsZS5oIgorI2luY2x1ZGUgIkRGR1RocmVhZERhdGEuaCIKKworbmFt
ZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgeworCitTYWZlcG9pbnQ6OlNhZmVwb2ludChQbGFu
JiBwbGFuKQorICAgIDogbV9wbGFuKHBsYW4pCisgICAgLCBtX2RpZENhbGxCZWdpbihmYWxzZSkK
K3sKK30KKworU2FmZXBvaW50Ojp+U2FmZXBvaW50KCkKK3sKKyAgICBSRUxFQVNFX0FTU0VSVCht
X2RpZENhbGxCZWdpbik7CisgICAgaWYgKFRocmVhZERhdGEqIGRhdGEgPSBtX3BsYW4udGhyZWFk
RGF0YSkKKyAgICAgICAgZGF0YS0+bV9yaWdodFRvUnVuLmxvY2soKTsKK30KKwordm9pZCBTYWZl
cG9pbnQ6OmFkZChTY2FubmFibGUqIHNjYW5uYWJsZSkKK3sKKyAgICBSRUxFQVNFX0FTU0VSVCgh
bV9kaWRDYWxsQmVnaW4pOworICAgIG1fc2Nhbm5hYmxlcy5hcHBlbmQoc2Nhbm5hYmxlKTsKK30K
Kwordm9pZCBTYWZlcG9pbnQ6OmJlZ2luKCkKK3sKKyAgICBSRUxFQVNFX0FTU0VSVCghbV9kaWRD
YWxsQmVnaW4pOworICAgIGlmIChUaHJlYWREYXRhKiBkYXRhID0gbV9wbGFuLnRocmVhZERhdGEp
CisgICAgICAgIGRhdGEtPm1fcmlnaHRUb1J1bi51bmxvY2soKTsKKyAgICBtX2RpZENhbGxCZWdp
biA9IHRydWU7Cit9CisKK3ZvaWQgU2FmZXBvaW50Ojp2aXNpdENoaWxkcmVuKFNsb3RWaXNpdG9y
JiB2aXNpdG9yKQoreworICAgIFJFTEVBU0VfQVNTRVJUKG1fZGlkQ2FsbEJlZ2luKTsKKyAgICBm
b3IgKHVuc2lnbmVkIGkgPSBtX3NjYW5uYWJsZXMuc2l6ZSgpOyBpLS07KQorICAgICAgICBtX3Nj
YW5uYWJsZXNbaV0tPnZpc2l0Q2hpbGRyZW4odmlzaXRvcik7Cit9CisKK30gfSAvLyBuYW1lc3Bh
Y2UgSlNDOjpERkcKKworI2VuZGlmIC8vIEVOQUJMRShERkdfSklUKQorCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVwb2ludC5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZXBvaW50LmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVwb2ludC5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAg
KzEsNjQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKwor
I2lmbmRlZiBERkdTYWZlcG9pbnRfaAorI2RlZmluZSBERkdTYWZlcG9pbnRfaAorCisjaWYgRU5B
QkxFKERGR19KSVQpCisKKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisKK25hbWVzcGFjZSBKU0Mg
eworCitjbGFzcyBTbG90VmlzaXRvcjsKKworbmFtZXNwYWNlIERGRyB7CisKK2NsYXNzIFNjYW5u
YWJsZTsKK3N0cnVjdCBQbGFuOworCitjbGFzcyBTYWZlcG9pbnQgeworcHVibGljOgorICAgIFNh
ZmVwb2ludChQbGFuJik7CisgICAgflNhZmVwb2ludCgpOworICAgIAorICAgIHZvaWQgYWRkKFNj
YW5uYWJsZSopOworICAgIAorICAgIHZvaWQgYmVnaW4oKTsKKyAgICAKKyAgICB2b2lkIHZpc2l0
Q2hpbGRyZW4oU2xvdFZpc2l0b3ImKTsKKyAgICAKK3ByaXZhdGU6CisgICAgUGxhbiYgbV9wbGFu
OworICAgIFZlY3RvcjxTY2FubmFibGUqPiBtX3NjYW5uYWJsZXM7CisgICAgYm9vbCBtX2RpZENh
bGxCZWdpbjsKK307CisKK30gfSAvLyBuYW1lc3BhY2UgSlNDOjpERkcKKworI2VuZGlmIC8vIEVO
QUJMRShERkdfSklUKQorCisjZW5kaWYgLy8gREZHU2FmZXBvaW50X2gKKwpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTY2FubmFibGUuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1NjYW5uYWJsZS5oCShyZXZpc2lvbiAwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTY2FubmFibGUuaAkod29ya2luZyBjb3B5KQpAQCAtMCww
ICsxLDUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisK
KyNpZm5kZWYgREZHU2Nhbm5hYmxlX2gKKyNkZWZpbmUgREZHU2Nhbm5hYmxlX2gKKworI2lmIEVO
QUJMRShERkdfSklUKQorCituYW1lc3BhY2UgSlNDIHsKKworY2xhc3MgU2xvdFZpc2l0b3I7CisK
K25hbWVzcGFjZSBERkcgeworCitjbGFzcyBTY2FubmFibGUgeworcHVibGljOgorICAgIFNjYW5u
YWJsZSgpIHsgfQorICAgIHZpcnR1YWwgflNjYW5uYWJsZSgpIHsgfQorICAgIAorICAgIHZpcnR1
YWwgdm9pZCB2aXNpdENoaWxkcmVuKFNsb3RWaXNpdG9yJikgPSAwOworfTsKKworfSB9IC8vIG5h
bWVzcGFjZSBKU0M6OkRGRworCisjZW5kaWYgLy8gRU5BQkxFKERGR19KSVQpCisKKyNlbmRpZiAv
LyBERkdTY2FubmFibGVfaAorCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Ro
cmVhZERhdGEuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
VGhyZWFkRGF0YS5jcHAJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1RocmVhZERhdGEuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNDcgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIkRGR1RocmVhZERhdGEuaCIKKworI2lmIEVOQUJMRShERkdfSklUKQor
CituYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CisKK1RocmVhZERhdGE6OlRocmVhZERh
dGEoV29ya2xpc3QqIHdvcmtsaXN0KQorICAgIDogbV93b3JrbGlzdCh3b3JrbGlzdCkKKyAgICAs
IG1faWRlbnRpZmllcigwKQorICAgICwgbV9zYWZlcG9pbnQobnVsbHB0cikKK3sKK30KKworVGhy
ZWFkRGF0YTo6flRocmVhZERhdGEoKQoreworfQorCit9IH0gLy8gbmFtZXNwYWNlIEpTQzo6REZH
CisKKyNlbmRpZiAvLyBFTkFCTEUoREZHX0pJVCkKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdUaHJlYWREYXRhLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdUaHJlYWREYXRhLmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1RocmVhZERhdGEuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDU5IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQor
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYg
REZHVGhyZWFkRGF0YV9oCisjZGVmaW5lIERGR1RocmVhZERhdGFfaAorCisjaWYgRU5BQkxFKERG
R19KSVQpCisKKyNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+CisjaW5jbHVkZSA8d3RmL1RocmVh
ZGluZ1ByaW1pdGl2ZXMuaD4KKworbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgeworCitj
bGFzcyBTYWZlcG9pbnQ7CitjbGFzcyBXb3JrbGlzdDsKKworY2xhc3MgVGhyZWFkRGF0YSB7Citw
dWJsaWM6CisgICAgVGhyZWFkRGF0YShXb3JrbGlzdCopOworICAgIH5UaHJlYWREYXRhKCk7Cisg
ICAgCitwcml2YXRlOgorICAgIGZyaWVuZCBjbGFzcyBTYWZlcG9pbnQ7CisgICAgZnJpZW5kIGNs
YXNzIFdvcmtsaXN0OworICAgIAorICAgIFdvcmtsaXN0KiBtX3dvcmtsaXN0OworICAgIFRocmVh
ZElkZW50aWZpZXIgbV9pZGVudGlmaWVyOworICAgIE11dGV4IG1fcmlnaHRUb1J1bjsKKyAgICBT
YWZlcG9pbnQqIG1fc2FmZXBvaW50OworfTsKKworfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkRGRwor
CisjZW5kaWYgLy8gRU5BQkxFKERGR19KSVQpCisKKyNlbmRpZiAvLyBERkdUaHJlYWREYXRhX2gK
KwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdUaHVua3MuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVGh1bmtzLmNwcAkocmV2aXNpb24g
MTYzNzUyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdUaHVua3MuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiREZHT1NSRXhpdENvbXBpbGVy
LmgiCiAjaW5jbHVkZSAiRlBSSW5mby5oIgogI2luY2x1ZGUgIkdQUkluZm8uaCIKKyNpbmNsdWRl
ICJMaW5rQnVmZmVyLmgiCiAjaW5jbHVkZSAiTWFjcm9Bc3NlbWJsZXIuaCIKIAogbmFtZXNwYWNl
IEpTQyB7IG5hbWVzcGFjZSBERkcgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdXb3JrbGlzdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdXb3JrbGlzdC5jcHAJKHJldmlzaW9uIDE2Mzc1MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHV29ya2xpc3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2ICszMSw3IEBACiAj
aW5jbHVkZSAiQ29kZUJsb2NrLmgiCiAjaW5jbHVkZSAiRGVmZXJHQy5oIgogI2luY2x1ZGUgIkRG
R0xvbmdMaXZlZFN0YXRlLmgiCisjaW5jbHVkZSAiREZHU2FmZXBvaW50LmgiCiAjaW5jbHVkZSA8
bXV0ZXg+CiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKQEAgLTU3LDggKzU4LDcg
QEAgdm9pZCBXb3JrbGlzdDo6ZmluaXNoQ3JlYXRpb24odW5zaWduZWQgbgogewogICAgIFJFTEVB
U0VfQVNTRVJUKG51bWJlck9mVGhyZWFkcyk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gbnVtYmVy
T2ZUaHJlYWRzOyBpLS07KSB7Ci0gICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxUaHJlYWREYXRhPiBk
YXRhID0gc3RkOjptYWtlX3VuaXF1ZTxUaHJlYWREYXRhPigpOwotICAgICAgICBkYXRhLT5tX3dv
cmtsaXN0ID0gdGhpczsKKyAgICAgICAgc3RkOjp1bmlxdWVfcHRyPFRocmVhZERhdGE+IGRhdGEg
PSBzdGQ6Om1ha2VfdW5pcXVlPFRocmVhZERhdGE+KHRoaXMpOwogICAgICAgICBkYXRhLT5tX2lk
ZW50aWZpZXIgPSBjcmVhdGVUaHJlYWQodGhyZWFkRnVuY3Rpb24sIGRhdGEuZ2V0KCksICJKU0Mg
Q29tcGlsYXRpb24gVGhyZWFkIik7CiAgICAgICAgIG1fdGhyZWFkcy5hcHBlbmQoc3RkOjptb3Zl
KGRhdGEpKTsKICAgICB9CkBAIC0yMTAsNiArMjEwLDEyIEBAIHZvaWQgV29ya2xpc3Q6OnZpc2l0
Q2hpbGRyZW4oU2xvdFZpc2l0b3IKICAgICAgICAgaXRlci0+a2V5LnZpc2l0Q2hpbGRyZW4oY29k
ZUJsb2Nrcyk7CiAgICAgICAgIGl0ZXItPnZhbHVlLT52aXNpdENoaWxkcmVuKHZpc2l0b3IsIGNv
ZGVCbG9ja3MpOwogICAgIH0KKyAgICAKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSBtX3RocmVhZHMu
c2l6ZSgpOyBpLS07KSB7CisgICAgICAgIFRocmVhZERhdGEqIGRhdGEgPSBtX3RocmVhZHNbaV0u
Z2V0KCk7CisgICAgICAgIGlmIChTYWZlcG9pbnQqIHNhZmVwb2ludCA9IGRhdGEtPm1fc2FmZXBv
aW50KQorICAgICAgICAgICAgc2FmZXBvaW50LT52aXNpdENoaWxkcmVuKHZpc2l0b3IpOworICAg
IH0KIH0KIAogc2l6ZV90IFdvcmtsaXN0OjpxdWV1ZUxlbmd0aCgpCkBAIC0yNjUsNyArMjcxLDcg
QEAgdm9pZCBXb3JrbGlzdDo6cnVuVGhyZWFkKFRocmVhZERhdGEqIGRhdAogICAgICAgICAgICAg
aWYgKE9wdGlvbnM6OnZlcmJvc2VDb21waWxhdGlvblF1ZXVlKCkpCiAgICAgICAgICAgICAgICAg
ZGF0YUxvZygqdGhpcywgIjogQ29tcGlsaW5nICIsIHBsYW4tPmtleSgpLCAiIGFzeW5jaHJvbm91
c2x5XG4iKTsKICAgICAgICAgCi0gICAgICAgICAgICBwbGFuLT5jb21waWxlSW5UaHJlYWQobG9u
Z0xpdmVkU3RhdGUpOworICAgICAgICAgICAgcGxhbi0+Y29tcGlsZUluVGhyZWFkKGxvbmdMaXZl
ZFN0YXRlLCBkYXRhKTsKICAgICAgICAgfQogICAgICAgICAKICAgICAgICAgewpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdXb3JrbGlzdC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHV29ya2xpc3QuaAkocmV2aXNpb24gMTYzNzUyKQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdXb3JrbGlzdC5oCSh3b3JraW5nIGNvcHkpCkBA
IC0zMSw2ICszMSw3IEBACiAjaWYgRU5BQkxFKERGR19KSVQpCiAKICNpbmNsdWRlICJERkdQbGFu
LmgiCisjaW5jbHVkZSAiREZHVGhyZWFkRGF0YS5oIgogI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgog
I2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CkBA
IC03NywxMiArNzgsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBkdW1wKFByaW50U3RyZWFtJikgY29u
c3Q7CiAgICAgCiBwcml2YXRlOgotICAgIHN0cnVjdCBUaHJlYWREYXRhIHsKLSAgICAgICAgV29y
a2xpc3QqIG1fd29ya2xpc3Q7Ci0gICAgICAgIFRocmVhZElkZW50aWZpZXIgbV9pZGVudGlmaWVy
OwotICAgICAgICBNdXRleCBtX3JpZ2h0VG9SdW47Ci0gICAgfTsKLSAgICAKICAgICBXb3JrbGlz
dCgpOwogICAgIHZvaWQgZmluaXNoQ3JlYXRpb24odW5zaWduZWQgbnVtYmVyT2ZUaHJlYWRzKTsK
ICAgICAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ29tcGlsZS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDb21waWxlLmNwcAkocmV2
aXNpb24gMTYzNzUyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDb21waWxlLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkNvZGVCbG9ja1dp
dGhKSVRUeXBlLmgiCiAjaW5jbHVkZSAiQ0NhbGxIZWxwZXJzLmgiCiAjaW5jbHVkZSAiREZHQ29t
bW9uLmgiCisjaW5jbHVkZSAiREZHR3JhcGhTYWZlcG9pbnQuaCIKICNpbmNsdWRlICJEYXRhVmll
dy5oIgogI2luY2x1ZGUgIkRpc2Fzc2VtYmxlci5oIgogI2luY2x1ZGUgIkZUTEV4aXRUaHVua0dl
bmVyYXRvci5oIgpAQCAtNDUyLDcwICs0NTMsNzQgQEAgdm9pZCBjb21waWxlKFN0YXRlJiBzdGF0
ZSkKIHsKICAgICBjaGFyKiBlcnJvciA9IDA7CiAgICAgCi0gICAgTExWTU1DSklUQ29tcGlsZXJP
cHRpb25zIG9wdGlvbnM7Ci0gICAgbGx2bS0+SW5pdGlhbGl6ZU1DSklUQ29tcGlsZXJPcHRpb25z
KCZvcHRpb25zLCBzaXplb2Yob3B0aW9ucykpOwotICAgIG9wdGlvbnMuT3B0TGV2ZWwgPSBPcHRp
b25zOjpsbHZtQmFja2VuZE9wdGltaXphdGlvbkxldmVsKCk7Ci0gICAgb3B0aW9ucy5Ob0ZyYW1l
UG9pbnRlckVsaW0gPSB0cnVlOwotICAgIGlmIChPcHRpb25zOjp1c2VMTFZNU21hbGxDb2RlTW9k
ZWwoKSkKLSAgICAgICAgb3B0aW9ucy5Db2RlTW9kZWwgPSBMTFZNQ29kZU1vZGVsU21hbGw7Ci0g
ICAgb3B0aW9ucy5FbmFibGVGYXN0SVNlbCA9IE9wdGlvbnM6OmVuYWJsZUxMVk1GYXN0SVNlbCgp
OwotICAgIG9wdGlvbnMuTUNKTU0gPSBsbHZtLT5DcmVhdGVTaW1wbGVNQ0pJVE1lbW9yeU1hbmFn
ZXIoCi0gICAgICAgICZzdGF0ZSwgbW1BbGxvY2F0ZUNvZGVTZWN0aW9uLCBtbUFsbG9jYXRlRGF0
YVNlY3Rpb24sIG1tQXBwbHlQZXJtaXNzaW9ucywgbW1EZXN0cm95KTsKLSAgICAKLSAgICBMTFZN
RXhlY3V0aW9uRW5naW5lUmVmIGVuZ2luZTsKLSAgICAKLSAgICBpZiAobGx2bS0+Q3JlYXRlTUNK
SVRDb21waWxlckZvck1vZHVsZSgmZW5naW5lLCBzdGF0ZS5tb2R1bGUsICZvcHRpb25zLCBzaXpl
b2Yob3B0aW9ucyksICZlcnJvcikpIHsKLSAgICAgICAgZGF0YUxvZygiRkFUQUw6IENvdWxkIG5v
dCBjcmVhdGUgTExWTSBleGVjdXRpb24gZW5naW5lOiAiLCBlcnJvciwgIlxuIik7Ci0gICAgICAg
IENSQVNIKCk7Ci0gICAgfQotCi0gICAgTExWTVBhc3NNYW5hZ2VyUmVmIGZ1bmN0aW9uUGFzc2Vz
ID0gMDsKLSAgICBMTFZNUGFzc01hbmFnZXJSZWYgbW9kdWxlUGFzc2VzOwotICAgIAotICAgIGlm
IChPcHRpb25zOjpsbHZtU2ltcGxlT3B0KCkpIHsKLSAgICAgICAgbW9kdWxlUGFzc2VzID0gbGx2
bS0+Q3JlYXRlUGFzc01hbmFnZXIoKTsKLSAgICAgICAgbGx2bS0+QWRkVGFyZ2V0RGF0YShsbHZt
LT5HZXRFeGVjdXRpb25FbmdpbmVUYXJnZXREYXRhKGVuZ2luZSksIG1vZHVsZVBhc3Nlcyk7Ci0g
ICAgICAgIGxsdm0tPkFkZFByb21vdGVNZW1vcnlUb1JlZ2lzdGVyUGFzcyhtb2R1bGVQYXNzZXMp
OwotICAgICAgICBsbHZtLT5BZGRDb25zdGFudFByb3BhZ2F0aW9uUGFzcyhtb2R1bGVQYXNzZXMp
OwotICAgICAgICBsbHZtLT5BZGRJbnN0cnVjdGlvbkNvbWJpbmluZ1Bhc3MobW9kdWxlUGFzc2Vz
KTsKLSAgICAgICAgbGx2bS0+QWRkQmFzaWNBbGlhc0FuYWx5c2lzUGFzcyhtb2R1bGVQYXNzZXMp
OwotICAgICAgICBsbHZtLT5BZGRUeXBlQmFzZWRBbGlhc0FuYWx5c2lzUGFzcyhtb2R1bGVQYXNz
ZXMpOwotICAgICAgICBsbHZtLT5BZGRHVk5QYXNzKG1vZHVsZVBhc3Nlcyk7Ci0gICAgICAgIGxs
dm0tPkFkZENGR1NpbXBsaWZpY2F0aW9uUGFzcyhtb2R1bGVQYXNzZXMpOwotICAgICAgICBsbHZt
LT5SdW5QYXNzTWFuYWdlcihtb2R1bGVQYXNzZXMsIHN0YXRlLm1vZHVsZSk7Ci0gICAgfSBlbHNl
IHsKLSAgICAgICAgTExWTVBhc3NNYW5hZ2VyQnVpbGRlclJlZiBwYXNzQnVpbGRlciA9IGxsdm0t
PlBhc3NNYW5hZ2VyQnVpbGRlckNyZWF0ZSgpOwotICAgICAgICBsbHZtLT5QYXNzTWFuYWdlckJ1
aWxkZXJTZXRPcHRMZXZlbChwYXNzQnVpbGRlciwgT3B0aW9uczo6bGx2bU9wdGltaXphdGlvbkxl
dmVsKCkpOwotICAgICAgICBsbHZtLT5QYXNzTWFuYWdlckJ1aWxkZXJTZXRTaXplTGV2ZWwocGFz
c0J1aWxkZXIsIE9wdGlvbnM6Omxsdm1TaXplTGV2ZWwoKSk7Ci0gICAgICAgIAotICAgICAgICBm
dW5jdGlvblBhc3NlcyA9IGxsdm0tPkNyZWF0ZUZ1bmN0aW9uUGFzc01hbmFnZXJGb3JNb2R1bGUo
c3RhdGUubW9kdWxlKTsKLSAgICAgICAgbW9kdWxlUGFzc2VzID0gbGx2bS0+Q3JlYXRlUGFzc01h
bmFnZXIoKTsKLSAgICAgICAgCi0gICAgICAgIGxsdm0tPkFkZFRhcmdldERhdGEobGx2bS0+R2V0
RXhlY3V0aW9uRW5naW5lVGFyZ2V0RGF0YShlbmdpbmUpLCBtb2R1bGVQYXNzZXMpOwotICAgICAg
ICAKLSAgICAgICAgbGx2bS0+UGFzc01hbmFnZXJCdWlsZGVyUG9wdWxhdGVGdW5jdGlvblBhc3NN
YW5hZ2VyKHBhc3NCdWlsZGVyLCBmdW5jdGlvblBhc3Nlcyk7Ci0gICAgICAgIGxsdm0tPlBhc3NN
YW5hZ2VyQnVpbGRlclBvcHVsYXRlTW9kdWxlUGFzc01hbmFnZXIocGFzc0J1aWxkZXIsIG1vZHVs
ZVBhc3Nlcyk7Ci0gICAgICAgIAotICAgICAgICBsbHZtLT5QYXNzTWFuYWdlckJ1aWxkZXJEaXNw
b3NlKHBhc3NCdWlsZGVyKTsKLSAgICAgICAgCi0gICAgICAgIGxsdm0tPkluaXRpYWxpemVGdW5j
dGlvblBhc3NNYW5hZ2VyKGZ1bmN0aW9uUGFzc2VzKTsKLSAgICAgICAgZm9yIChMVmFsdWUgZnVu
Y3Rpb24gPSBsbHZtLT5HZXRGaXJzdEZ1bmN0aW9uKHN0YXRlLm1vZHVsZSk7IGZ1bmN0aW9uOyBm
dW5jdGlvbiA9IGxsdm0tPkdldE5leHRGdW5jdGlvbihmdW5jdGlvbikpCi0gICAgICAgICAgICBs
bHZtLT5SdW5GdW5jdGlvblBhc3NNYW5hZ2VyKGZ1bmN0aW9uUGFzc2VzLCBmdW5jdGlvbik7Ci0g
ICAgICAgIGxsdm0tPkZpbmFsaXplRnVuY3Rpb25QYXNzTWFuYWdlcihmdW5jdGlvblBhc3Nlcyk7
Ci0gICAgICAgIAotICAgICAgICBsbHZtLT5SdW5QYXNzTWFuYWdlcihtb2R1bGVQYXNzZXMsIHN0
YXRlLm1vZHVsZSk7Ci0gICAgfQotCi0gICAgaWYgKERGRzo6c2hvdWxkU2hvd0Rpc2Fzc2VtYmx5
KCkgfHwgREZHOjp2ZXJib3NlQ29tcGlsYXRpb25FbmFibGVkKCkpCi0gICAgICAgIHN0YXRlLmR1
bXBTdGF0ZSgiYWZ0ZXIgb3B0aW1pemF0aW9uIik7Ci0gICAgCi0gICAgLy8gRklYTUU6IE5lZWQg
dG8gYWRkIHN1cHBvcnQgZm9yIHRoZSBjYXNlIHdoZXJlIEpJVCBtZW1vcnkgYWxsb2NhdGlvbiBm
YWlsZWQuCi0gICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEx
MzYyMAotICAgIHN0YXRlLmdlbmVyYXRlZEZ1bmN0aW9uID0gcmVpbnRlcnByZXRfY2FzdDxHZW5l
cmF0ZWRGdW5jdGlvbj4obGx2bS0+R2V0UG9pbnRlclRvR2xvYmFsKGVuZ2luZSwgc3RhdGUuZnVu
Y3Rpb24pKTsKLSAgICBpZiAoZnVuY3Rpb25QYXNzZXMpCi0gICAgICAgIGxsdm0tPkRpc3Bvc2VQ
YXNzTWFuYWdlcihmdW5jdGlvblBhc3Nlcyk7Ci0gICAgbGx2bS0+RGlzcG9zZVBhc3NNYW5hZ2Vy
KG1vZHVsZVBhc3Nlcyk7Ci0gICAgbGx2bS0+RGlzcG9zZUV4ZWN1dGlvbkVuZ2luZShlbmdpbmUp
OworICAgIHsKKyAgICAgICAgR3JhcGhTYWZlcG9pbnQgc2FmZXBvaW50KHN0YXRlLmdyYXBoKTsK
KyAgICAgICAgCisgICAgICAgIExMVk1NQ0pJVENvbXBpbGVyT3B0aW9ucyBvcHRpb25zOworICAg
ICAgICBsbHZtLT5Jbml0aWFsaXplTUNKSVRDb21waWxlck9wdGlvbnMoJm9wdGlvbnMsIHNpemVv
ZihvcHRpb25zKSk7CisgICAgICAgIG9wdGlvbnMuT3B0TGV2ZWwgPSBPcHRpb25zOjpsbHZtQmFj
a2VuZE9wdGltaXphdGlvbkxldmVsKCk7CisgICAgICAgIG9wdGlvbnMuTm9GcmFtZVBvaW50ZXJF
bGltID0gdHJ1ZTsKKyAgICAgICAgaWYgKE9wdGlvbnM6OnVzZUxMVk1TbWFsbENvZGVNb2RlbCgp
KQorICAgICAgICAgICAgb3B0aW9ucy5Db2RlTW9kZWwgPSBMTFZNQ29kZU1vZGVsU21hbGw7Cisg
ICAgICAgIG9wdGlvbnMuRW5hYmxlRmFzdElTZWwgPSBPcHRpb25zOjplbmFibGVMTFZNRmFzdElT
ZWwoKTsKKyAgICAgICAgb3B0aW9ucy5NQ0pNTSA9IGxsdm0tPkNyZWF0ZVNpbXBsZU1DSklUTWVt
b3J5TWFuYWdlcigKKyAgICAgICAgICAgICZzdGF0ZSwgbW1BbGxvY2F0ZUNvZGVTZWN0aW9uLCBt
bUFsbG9jYXRlRGF0YVNlY3Rpb24sIG1tQXBwbHlQZXJtaXNzaW9ucywgbW1EZXN0cm95KTsKKyAg
ICAKKyAgICAgICAgTExWTUV4ZWN1dGlvbkVuZ2luZVJlZiBlbmdpbmU7CisgICAgCisgICAgICAg
IGlmIChsbHZtLT5DcmVhdGVNQ0pJVENvbXBpbGVyRm9yTW9kdWxlKCZlbmdpbmUsIHN0YXRlLm1v
ZHVsZSwgJm9wdGlvbnMsIHNpemVvZihvcHRpb25zKSwgJmVycm9yKSkgeworICAgICAgICAgICAg
ZGF0YUxvZygiRkFUQUw6IENvdWxkIG5vdCBjcmVhdGUgTExWTSBleGVjdXRpb24gZW5naW5lOiAi
LCBlcnJvciwgIlxuIik7CisgICAgICAgICAgICBDUkFTSCgpOworICAgICAgICB9CisKKyAgICAg
ICAgTExWTVBhc3NNYW5hZ2VyUmVmIGZ1bmN0aW9uUGFzc2VzID0gMDsKKyAgICAgICAgTExWTVBh
c3NNYW5hZ2VyUmVmIG1vZHVsZVBhc3NlczsKKyAgICAKKyAgICAgICAgaWYgKE9wdGlvbnM6Omxs
dm1TaW1wbGVPcHQoKSkgeworICAgICAgICAgICAgbW9kdWxlUGFzc2VzID0gbGx2bS0+Q3JlYXRl
UGFzc01hbmFnZXIoKTsKKyAgICAgICAgICAgIGxsdm0tPkFkZFRhcmdldERhdGEobGx2bS0+R2V0
RXhlY3V0aW9uRW5naW5lVGFyZ2V0RGF0YShlbmdpbmUpLCBtb2R1bGVQYXNzZXMpOworICAgICAg
ICAgICAgbGx2bS0+QWRkUHJvbW90ZU1lbW9yeVRvUmVnaXN0ZXJQYXNzKG1vZHVsZVBhc3Nlcyk7
CisgICAgICAgICAgICBsbHZtLT5BZGRDb25zdGFudFByb3BhZ2F0aW9uUGFzcyhtb2R1bGVQYXNz
ZXMpOworICAgICAgICAgICAgbGx2bS0+QWRkSW5zdHJ1Y3Rpb25Db21iaW5pbmdQYXNzKG1vZHVs
ZVBhc3Nlcyk7CisgICAgICAgICAgICBsbHZtLT5BZGRCYXNpY0FsaWFzQW5hbHlzaXNQYXNzKG1v
ZHVsZVBhc3Nlcyk7CisgICAgICAgICAgICBsbHZtLT5BZGRUeXBlQmFzZWRBbGlhc0FuYWx5c2lz
UGFzcyhtb2R1bGVQYXNzZXMpOworICAgICAgICAgICAgbGx2bS0+QWRkR1ZOUGFzcyhtb2R1bGVQ
YXNzZXMpOworICAgICAgICAgICAgbGx2bS0+QWRkQ0ZHU2ltcGxpZmljYXRpb25QYXNzKG1vZHVs
ZVBhc3Nlcyk7CisgICAgICAgICAgICBsbHZtLT5SdW5QYXNzTWFuYWdlcihtb2R1bGVQYXNzZXMs
IHN0YXRlLm1vZHVsZSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBMTFZNUGFzc01h
bmFnZXJCdWlsZGVyUmVmIHBhc3NCdWlsZGVyID0gbGx2bS0+UGFzc01hbmFnZXJCdWlsZGVyQ3Jl
YXRlKCk7CisgICAgICAgICAgICBsbHZtLT5QYXNzTWFuYWdlckJ1aWxkZXJTZXRPcHRMZXZlbChw
YXNzQnVpbGRlciwgT3B0aW9uczo6bGx2bU9wdGltaXphdGlvbkxldmVsKCkpOworICAgICAgICAg
ICAgbGx2bS0+UGFzc01hbmFnZXJCdWlsZGVyU2V0U2l6ZUxldmVsKHBhc3NCdWlsZGVyLCBPcHRp
b25zOjpsbHZtU2l6ZUxldmVsKCkpOworICAgICAgICAKKyAgICAgICAgICAgIGZ1bmN0aW9uUGFz
c2VzID0gbGx2bS0+Q3JlYXRlRnVuY3Rpb25QYXNzTWFuYWdlckZvck1vZHVsZShzdGF0ZS5tb2R1
bGUpOworICAgICAgICAgICAgbW9kdWxlUGFzc2VzID0gbGx2bS0+Q3JlYXRlUGFzc01hbmFnZXIo
KTsKKyAgICAgICAgCisgICAgICAgICAgICBsbHZtLT5BZGRUYXJnZXREYXRhKGxsdm0tPkdldEV4
ZWN1dGlvbkVuZ2luZVRhcmdldERhdGEoZW5naW5lKSwgbW9kdWxlUGFzc2VzKTsKKyAgICAgICAg
CisgICAgICAgICAgICBsbHZtLT5QYXNzTWFuYWdlckJ1aWxkZXJQb3B1bGF0ZUZ1bmN0aW9uUGFz
c01hbmFnZXIocGFzc0J1aWxkZXIsIGZ1bmN0aW9uUGFzc2VzKTsKKyAgICAgICAgICAgIGxsdm0t
PlBhc3NNYW5hZ2VyQnVpbGRlclBvcHVsYXRlTW9kdWxlUGFzc01hbmFnZXIocGFzc0J1aWxkZXIs
IG1vZHVsZVBhc3Nlcyk7CisgICAgICAgIAorICAgICAgICAgICAgbGx2bS0+UGFzc01hbmFnZXJC
dWlsZGVyRGlzcG9zZShwYXNzQnVpbGRlcik7CisgICAgICAgIAorICAgICAgICAgICAgbGx2bS0+
SW5pdGlhbGl6ZUZ1bmN0aW9uUGFzc01hbmFnZXIoZnVuY3Rpb25QYXNzZXMpOworICAgICAgICAg
ICAgZm9yIChMVmFsdWUgZnVuY3Rpb24gPSBsbHZtLT5HZXRGaXJzdEZ1bmN0aW9uKHN0YXRlLm1v
ZHVsZSk7IGZ1bmN0aW9uOyBmdW5jdGlvbiA9IGxsdm0tPkdldE5leHRGdW5jdGlvbihmdW5jdGlv
bikpCisgICAgICAgICAgICAgICAgbGx2bS0+UnVuRnVuY3Rpb25QYXNzTWFuYWdlcihmdW5jdGlv
blBhc3NlcywgZnVuY3Rpb24pOworICAgICAgICAgICAgbGx2bS0+RmluYWxpemVGdW5jdGlvblBh
c3NNYW5hZ2VyKGZ1bmN0aW9uUGFzc2VzKTsKKyAgICAgICAgCisgICAgICAgICAgICBsbHZtLT5S
dW5QYXNzTWFuYWdlcihtb2R1bGVQYXNzZXMsIHN0YXRlLm1vZHVsZSk7CisgICAgICAgIH0KKwor
ICAgICAgICBpZiAoREZHOjpzaG91bGRTaG93RGlzYXNzZW1ibHkoKSB8fCBERkc6OnZlcmJvc2VD
b21waWxhdGlvbkVuYWJsZWQoKSkKKyAgICAgICAgICAgIHN0YXRlLmR1bXBTdGF0ZSgiYWZ0ZXIg
b3B0aW1pemF0aW9uIik7CisgICAgCisgICAgICAgIC8vIEZJWE1FOiBOZWVkIHRvIGFkZCBzdXBw
b3J0IGZvciB0aGUgY2FzZSB3aGVyZSBKSVQgbWVtb3J5IGFsbG9jYXRpb24gZmFpbGVkLgorICAg
ICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEzNjIwCisg
ICAgICAgIHN0YXRlLmdlbmVyYXRlZEZ1bmN0aW9uID0gcmVpbnRlcnByZXRfY2FzdDxHZW5lcmF0
ZWRGdW5jdGlvbj4obGx2bS0+R2V0UG9pbnRlclRvR2xvYmFsKGVuZ2luZSwgc3RhdGUuZnVuY3Rp
b24pKTsKKyAgICAgICAgaWYgKGZ1bmN0aW9uUGFzc2VzKQorICAgICAgICAgICAgbGx2bS0+RGlz
cG9zZVBhc3NNYW5hZ2VyKGZ1bmN0aW9uUGFzc2VzKTsKKyAgICAgICAgbGx2bS0+RGlzcG9zZVBh
c3NNYW5hZ2VyKG1vZHVsZVBhc3Nlcyk7CisgICAgICAgIGxsdm0tPkRpc3Bvc2VFeGVjdXRpb25F
bmdpbmUoZW5naW5lKTsKKyAgICB9CiAKICAgICBpZiAoc2hvdWxkU2hvd0Rpc2Fzc2VtYmx5KCkp
IHsKICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHN0YXRlLmppdENvZGUtPmhhbmRs
ZXMoKS5zaXplKCk7ICsraSkgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExM
aW5rLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExpbmsu
Y3BwCShyZXZpc2lvbiAxNjM3NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExp
bmsuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw3ICszMCw2IEBACiAKICNpbmNsdWRlICJBcml0
eUNoZWNrRmFpbFJldHVyblRodW5rcy5oIgogI2luY2x1ZGUgIkNDYWxsSGVscGVycy5oIgotI2lu
Y2x1ZGUgIkNhbGxGcmFtZUlubGluZXMuaCIKICNpbmNsdWRlICJDb2RlQmxvY2tXaXRoSklUVHlw
ZS5oIgogI2luY2x1ZGUgIkRGR0NvbW1vbi5oIgogI2luY2x1ZGUgIkZUTEpJVENvZGUuaCIKQEAg
LTM4LDYgKzM3LDcgQEAKICNpbmNsdWRlICJKSVRTdHVicy5oIgogI2luY2x1ZGUgIkxMVk1BUEku
aCIKICNpbmNsdWRlICJMaW5rQnVmZmVyLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2lu
Y2x1ZGUgIlByb2ZpbGVyQ29tcGlsYXRpb24uaCIKICNpbmNsdWRlICJWaXJ0dWFsUmVnaXN0ZXIu
aCIKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPU1JFeGl0Q29tcGlsZXIu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT1NSRXhpdENv
bXBpbGVyLmNwcAkocmV2aXNpb24gMTYzNzUyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0
bC9GVExPU1JFeGl0Q29tcGlsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw2ICszNCw3IEBA
CiAjaW5jbHVkZSAiRlRMSklUQ29kZS5oIgogI2luY2x1ZGUgIkZUTE9TUkV4aXQuaCIKICNpbmNs
dWRlICJGVExTYXZlUmVzdG9yZS5oIgorI2luY2x1ZGUgIkxpbmtCdWZmZXIuaCIKICNpbmNsdWRl
ICJNYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbC5oIgogI2luY2x1ZGUgIk9wZXJhbmRzSW5s
aW5lcy5oIgogI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9mdGwvRlRMU2xvd1BhdGhDYWxsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZnRsL0ZUTFNsb3dQYXRoQ2FsbC5jcHAJKHJldmlzaW9uIDE2Mzc1MikKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMU2xvd1BhdGhDYWxsLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMjksOSArMjksOSBAQAogI2lmIEVOQUJMRShGVExfSklUKQogCiAjaW5jbHVkZSAiQ0Nh
bGxIZWxwZXJzLmgiCi0jaW5jbHVkZSAiQ2FsbEZyYW1lSW5saW5lcy5oIgogI2luY2x1ZGUgIkZU
TFN0YXRlLmgiCiAjaW5jbHVkZSAiR1BSSW5mby5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIK
IAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBGVEwgewogCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZnRsL0ZUTFRodW5rcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Z0bC9GVExUaHVua3MuY3BwCShyZXZpc2lvbiAxNjM3NTIpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZnRsL0ZUTFRodW5rcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEyNyw3ICsx
MjcsNyBAQCBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgc2xvd1BhdGhDYWxsVGh1bmtHCiAgICAgaml0
LnByZXNlcnZlUmV0dXJuQWRkcmVzc0FmdGVyQ2FsbChHUFJJbmZvOjpub25BcmdHUFIwKTsKICAg
ICBqaXQuc3RvcmVQdHIoR1BSSW5mbzo6bm9uQXJnR1BSMCwgQXNzZW1ibHlIZWxwZXJzOjpBZGRy
ZXNzKE1hY3JvQXNzZW1ibGVyOjpzdGFja1BvaW50ZXJSZWdpc3Rlciwga2V5Lm9mZnNldCgpKSk7
CiAgICAgCi0gICAgSklUQ29tcGlsZXI6OkNhbGwgY2FsbCA9IGppdC5jYWxsKCk7CisgICAgQXNz
ZW1ibHlIZWxwZXJzOjpDYWxsIGNhbGwgPSBqaXQuY2FsbCgpOwogCiAgICAgLy8gRklYTUU6IENT
dGFjayAtIE5lZWQgdG8gZG8gc29tZXRoaW5nIGxpa2Ugaml0LmVtaXRGdW5jdGlvbkVwaWxvZ3Vl
KCk7CiAgICAgaml0LmxvYWRQdHIoQXNzZW1ibHlIZWxwZXJzOjpBZGRyZXNzKE1hY3JvQXNzZW1i
bGVyOjpzdGFja1BvaW50ZXJSZWdpc3Rlciwga2V5Lm9mZnNldCgpKSwgR1BSSW5mbzo6bm9uUHJl
c2VydmVkTm9uUmV0dXJuR1BSKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1Ns
b3RWaXNpdG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvU2xv
dFZpc2l0b3IuaAkocmV2aXNpb24gMTYzNzUyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hl
YXAvU2xvdFZpc2l0b3IuaAkod29ya2luZyBjb3B5KQpAQCAtNjgsNiArNjgsOSBAQCBwdWJsaWM6
CiAgICAgdm9pZCBhcHBlbmRVbmJhcnJpZXJlZFZhbHVlKEpTVmFsdWUqKTsKICAgICB0ZW1wbGF0
ZTx0eXBlbmFtZSBUPgogICAgIHZvaWQgYXBwZW5kVW5iYXJyaWVyZWRXZWFrKFdlYWs8VD4qKTsK
KyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorICAgIHZvaWQgYXBwZW5kVW5iYXJyaWVyZWRSZWFk
T25seVBvaW50ZXIoVCopOworICAgIHZvaWQgYXBwZW5kVW5iYXJyaWVyZWRSZWFkT25seVZhbHVl
KEpTVmFsdWUpOwogICAgIHZvaWQgdW5jb25kaXRpb25hbGx5QXBwZW5kKEpTQ2VsbCopOwogICAg
IAogICAgIHZvaWQgYWRkT3BhcXVlUm9vdCh2b2lkKik7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvaGVhcC9TbG90VmlzaXRvcklubGluZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaGVhcC9TbG90VmlzaXRvcklubGluZXMuaAkocmV2aXNpb24gMTYzNzUyKQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvU2xvdFZpc2l0b3JJbmxpbmVzLmgJKHdvcmtp
bmcgY29weSkKQEAgLTUxLDYgKzUxLDEyIEBAIGlubGluZSB2b2lkIFNsb3RWaXNpdG9yOjphcHBl
bmRVbmJhcnJpZXIKICAgICBpbnRlcm5hbEFwcGVuZChzbG90LCBjZWxsKTsKIH0KIAordGVtcGxh
dGU8dHlwZW5hbWUgVD4KK2lubGluZSB2b2lkIFNsb3RWaXNpdG9yOjphcHBlbmRVbmJhcnJpZXJl
ZFJlYWRPbmx5UG9pbnRlcihUKiBjZWxsKQoreworICAgIGludGVybmFsQXBwZW5kKDAsIGNlbGwp
OworfQorCiBBTFdBWVNfSU5MSU5FIHZvaWQgU2xvdFZpc2l0b3I6OmFwcGVuZChKU1ZhbHVlKiBz
bG90KQogewogICAgIEFTU0VSVChzbG90KTsKQEAgLTYzLDYgKzY5LDExIEBAIEFMV0FZU19JTkxJ
TkUgdm9pZCBTbG90VmlzaXRvcjo6YXBwZW5kVW4KICAgICBpbnRlcm5hbEFwcGVuZChzbG90LCAq
c2xvdCk7CiB9CiAKK0FMV0FZU19JTkxJTkUgdm9pZCBTbG90VmlzaXRvcjo6YXBwZW5kVW5iYXJy
aWVyZWRSZWFkT25seVZhbHVlKEpTVmFsdWUgdmFsdWUpCit7CisgICAgaW50ZXJuYWxBcHBlbmQo
MCwgdmFsdWUpOworfQorCiBBTFdBWVNfSU5MSU5FIHZvaWQgU2xvdFZpc2l0b3I6OmFwcGVuZChK
U0NlbGwqKiBzbG90KQogewogICAgIEFTU0VSVChzbG90KTsKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnNwZWN0b3IvU2NyaXB0Q2FsbFN0YWNrRmFjdG9yeS5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9TY3JpcHRDYWxsU3RhY2tGYWN0b3J5
LmNwcAkocmV2aXNpb24gMTYzNzUyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rv
ci9TY3JpcHRDYWxsU3RhY2tGYWN0b3J5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzUsOSArMzUs
OSBAQAogCiAjaW5jbHVkZSAiQXJnTGlzdC5oIgogI2luY2x1ZGUgIkNhbGxGcmFtZS5oIgotI2lu
Y2x1ZGUgIkNhbGxGcmFtZUlubGluZXMuaCIKICNpbmNsdWRlICJKU0NKU1ZhbHVlLmgiCiAjaW5j
bHVkZSAiSlNGdW5jdGlvbi5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJT
Y3JpcHRBcmd1bWVudHMuaCIKICNpbmNsdWRlICJTY3JpcHRDYWxsRnJhbWUuaCIKICNpbmNsdWRl
ICJTY3JpcHRDYWxsU3RhY2suaCIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnBy
ZXRlci9Qcm90b0NhbGxGcmFtZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2ludGVycHJldGVyL1Byb3RvQ2FsbEZyYW1lLmNwcAkocmV2aXNpb24gMTYzNzUyKQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL1Byb3RvQ2FsbEZyYW1lLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIlByb3RvQ2FsbEZyYW1lLmgi
CiAKICNpbmNsdWRlICJDb2RlQmxvY2suaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5j
bHVkZSAiU3RhY2tBbGlnbm1lbnQuaCIKIAogbmFtZXNwYWNlIEpTQyB7CkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVEV4Y2VwdGlvbnMuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklURXhjZXB0aW9ucy5jcHAJKHJldmlzaW9uIDE2Mzc1MikK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklURXhjZXB0aW9ucy5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTI3LDcgKzI3LDYgQEAKICNpbmNsdWRlICJKSVRFeGNlcHRpb25zLmgiCiAKICNp
bmNsdWRlICJDYWxsRnJhbWUuaCIKLSNpbmNsdWRlICJDYWxsRnJhbWVJbmxpbmVzLmgiCiAjaW5j
bHVkZSAiQ29kZUJsb2NrLmgiCiAjaW5jbHVkZSAiSW50ZXJwcmV0ZXIuaCIKICNpbmNsdWRlICJK
SVRTdHVicy5oIgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVzLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVzLmgJKHJl
dmlzaW9uIDE2Mzc1MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lcy5o
CSh3b3JraW5nIGNvcHkpCkBAIC0yOSw3ICsyOSw3IEBACiAKICNpZiBFTkFCTEUoSklUKQogCi0j
aW5jbHVkZSAiQ2FsbEZyYW1lSW5saW5lcy5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAog
bmFtZXNwYWNlIEpTQyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bl
cmF0aW9ucy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRP
cGVyYXRpb25zLmNwcAkocmV2aXNpb24gMTYzNzUyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRPcGVyYXRpb25zLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjksNyArMjksNiBAQAog
CiAjaW5jbHVkZSAiQXJndW1lbnRzLmgiCiAjaW5jbHVkZSAiQXJyYXlDb25zdHJ1Y3Rvci5oIgot
I2luY2x1ZGUgIkNhbGxGcmFtZUlubGluZXMuaCIKICNpbmNsdWRlICJERkdDb21waWxhdGlvbk1v
ZGUuaCIKICNpbmNsdWRlICJERkdEcml2ZXIuaCIKICNpbmNsdWRlICJERkdPU1JFbnRyeS5oIgpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZXBhdGNoLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlcGF0Y2guY3BwCShyZXZpc2lvbiAxNjM3NTIp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlcGF0Y2guY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0yOSw3ICsyOSw2IEBACiAjaWYgRU5BQkxFKEpJVCkKIAogI2luY2x1ZGUgIkNDYWxsSGVs
cGVycy5oIgotI2luY2x1ZGUgIkNhbGxGcmFtZUlubGluZXMuaCIKICNpbmNsdWRlICJERkdPcGVy
YXRpb25zLmgiCiAjaW5jbHVkZSAiREZHU3BlY3VsYXRpdmVKSVQuaCIKICNpbmNsdWRlICJGVExU
aHVua3MuaCIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlR2Vu
ZXJhdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIv
UHJvZmlsZUdlbmVyYXRvci5jcHAJKHJldmlzaW9uIDE2Mzc1MikKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9wcm9maWxlci9Qcm9maWxlR2VuZXJhdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MjcsNyArMjcsNiBAQAogI2luY2x1ZGUgIlByb2ZpbGVHZW5lcmF0b3IuaCIKIAogI2luY2x1ZGUg
IkNhbGxGcmFtZS5oIgotI2luY2x1ZGUgIkNhbGxGcmFtZUlubGluZXMuaCIKICNpbmNsdWRlICJD
b2RlQmxvY2suaCIKICNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgogI2luY2x1ZGUgIkpTU3Ry
aW5nUmVmLmgiCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHMu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ3VtZW50
cy5jcHAJKHJldmlzaW9uIDE2Mzc1MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0FyZ3VtZW50cy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI1LDcgKzI1LDYgQEAKICNpbmNsdWRl
ICJjb25maWcuaCIKICNpbmNsdWRlICJBcmd1bWVudHMuaCIKIAotI2luY2x1ZGUgIkNhbGxGcmFt
ZUlubGluZXMuaCIKICNpbmNsdWRlICJKU0FjdGl2YXRpb24uaCIKICNpbmNsdWRlICJKU0FyZ3Vt
ZW50c0l0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiSlNGdW5jdGlvbi5oIgpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJndW1lbnRzSXRlcmF0b3JQcm90b3R5cGUuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ3VtZW50c0l0ZXJhdG9y
UHJvdG90eXBlLmNwcAkocmV2aXNpb24gMTYzNzUyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvQXJndW1lbnRzSXRlcmF0b3JQcm90b3R5cGUuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiQXJndW1lbnRzSXRlcmF0b3JQcm90b3R5cGUuaCIK
IAogI2luY2x1ZGUgIkpTQXJndW1lbnRzSXRlcmF0b3IuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25z
LmgiCiAKIG5hbWVzcGFjZSBKU0MgewogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9Db21tb25TbG93UGF0aHNFeGNlcHRpb25zLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25TbG93UGF0aHNFeGNlcHRpb25zLmNwcAkocmV2
aXNpb24gMTYzNzUyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xv
d1BhdGhzRXhjZXB0aW9ucy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMwLDYgKzMwLDcgQEAKICNp
bmNsdWRlICJDb2RlQmxvY2suaCIKICNpbmNsdWRlICJKSVRFeGNlcHRpb25zLmgiCiAjaW5jbHVk
ZSAiTExJbnRDb21tb24uaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAKIG5hbWVzcGFjZSBK
U0MgeyBuYW1lc3BhY2UgQ29tbW9uU2xvd1BhdGhzIHsKIApJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNBcmd1bWVudHNJdGVyYXRvci5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcmd1bWVudHNJdGVyYXRvci5jcHAJKHJldmlz
aW9uIDE2Mzc1MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJndW1lbnRz
SXRlcmF0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAi
SlNBcmd1bWVudHNJdGVyYXRvci5oIgogCiAjaW5jbHVkZSAiQXJndW1lbnRzLmgiCisjaW5jbHVk
ZSAiT3BlcmF0aW9ucy5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIApJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAJKHJldmlzaW9uIDE2Mzc1MikKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0yOSw3ICsyOSw2IEBACiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgiCiAjaW5jbHVkZSAi
Q29tbW9uSWRlbnRpZmllcnMuaCIKICNpbmNsdWRlICJDYWxsRnJhbWUuaCIKLSNpbmNsdWRlICJD
YWxsRnJhbWVJbmxpbmVzLmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uSGVscGVycy5oIgogI2luY2x1
ZGUgIkZ1bmN0aW9uUHJvdG90eXBlLmgiCiAjaW5jbHVkZSAiR2V0dGVyU2V0dGVyLmgiCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxP
YmplY3RGdW5jdGlvbnMuY3BwCShyZXZpc2lvbiAxNjM3NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTI2LDcgKzI2LDYgQEAKICNpbmNsdWRlICJKU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5oIgog
CiAjaW5jbHVkZSAiQ2FsbEZyYW1lLmgiCi0jaW5jbHVkZSAiQ2FsbEZyYW1lSW5saW5lcy5oIgog
I2luY2x1ZGUgIkludGVycHJldGVyLmgiCiAjaW5jbHVkZSAiSlNGdW5jdGlvbi5oIgogI2luY2x1
ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9PYmplY3RDb25zdHJ1Y3Rvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuY3BwCShyZXZpc2lvbiAxNjM3NTIpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTIyLDcgKzIyLDYgQEAKICNpbmNsdWRlICJPYmplY3RDb25zdHJ1Y3Rvci5o
IgogCiAjaW5jbHVkZSAiQnV0dGVyZmx5SW5saW5lcy5oIgotI2luY2x1ZGUgIkNhbGxGcmFtZUlu
bGluZXMuaCIKICNpbmNsdWRlICJDb3BpZWRTcGFjZUlubGluZXMuaCIKICNpbmNsdWRlICJFcnJv
ci5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkhlbHBlcnMuaCIKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL09wZXJhdGlvbnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9PcGVyYXRpb25zLmgJKHJldmlzaW9uIDE2Mzc1MikKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wZXJhdGlvbnMuaAkod29ya2luZyBjb3B5KQpAQCAt
MSw2ICsxLDYgQEAKIC8qCiAgKiAgQ29weXJpZ2h0IChDKSAxOTk5LTIwMDAgSGFycmkgUG9ydGVu
IChwb3J0ZW5Aa2RlLm9yZykKLSAqICBDb3B5cmlnaHQgKEMpIDIwMDIsIDIwMDUsIDIwMDYsIDIw
MDcsIDIwMDgsIDIwMDksIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
IENvcHlyaWdodCAoQykgMjAwMiwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSwgMjAxMywg
MjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogIFRoaXMgbGlicmFy
eSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqICBt
b2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YwpAQCAtMjIsNiArMjIsNyBAQAogI2lmbmRlZiBPcGVyYXRpb25zX2gKICNkZWZpbmUgT3BlcmF0
aW9uc19oCiAKKyNpbmNsdWRlICJDYWxsRnJhbWVJbmxpbmVzLmgiCiAjaW5jbHVkZSAiRXhjZXB0
aW9uSGVscGVycy5oIgogI2luY2x1ZGUgIkdDSW5jb21pbmdSZWZDb3VudGVkSW5saW5lcy5oIgog
I2luY2x1ZGUgIkludGVycHJldGVyLmgiCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9WTS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
Vk0uY3BwCShyZXZpc2lvbiAxNjM3NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9WTS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMyLDcgKzMyLDYgQEAKICNpbmNsdWRlICJBcmdM
aXN0LmgiCiAjaW5jbHVkZSAiQXJpdHlDaGVja0ZhaWxSZXR1cm5UaHVua3MuaCIKICNpbmNsdWRl
ICJBcnJheUJ1ZmZlck5ldXRlcmluZ1dhdGNocG9pbnQuaCIKLSNpbmNsdWRlICJDYWxsRnJhbWVJ
bmxpbmVzLmgiCiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgiCiAjaW5jbHVkZSAiQ29kZUNhY2hlLmgi
CiAjaW5jbHVkZSAiQ29tbW9uSWRlbnRpZmllcnMuaCIK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>223639</attachid>
            <date>2014-02-09 12:32:25 -0800</date>
            <delta_ts>2014-02-09 12:39:41 -0800</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>76693</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTYzNzUyKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEwNCBA
QAorMjAxNC0wMi0wOSAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgorCisgICAgICAg
IEdDIGJsb2NrcyBvbiBGVEwgYW5kIHRoZW4gYmFkbmVzcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI4MjkxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisgICAgICAgIAorICAgICAgICBJbnRyb2R1Y2UgdGhlIG5vdGlvbiBv
ZiBhIERGRzo6U2FmZXBvaW50LCB3aGljaCBhbGxvd3MgeW91IHRvIHVubG9jayB0aGUgcmlnaHRU
b1J1bgorICAgICAgICBtdXRleCBmb3IgeW91ciBKSVQgdGhyZWFkLCB3aGlsZSBzdXBwbHlpbmcg
dGhlIEdDIHdpdGggYWxsIG9mIHRoZSBpbmZvcm1hdGlvbiBpdCB3b3VsZAorICAgICAgICBuZWVk
IHRvIHNjYW4geW91IGF0IHRoYXQgbW9tZW50IGluIHRpbWUuIFRoZSBkZWZhdWx0IHdheSBvZiB1
c2luZyB0aGlzIGlzCisgICAgICAgIERGRzo6R3JhcGhTYWZlcG9pbnQsIHdoZXJlIHlvdSBqdXN0
IHN1cHBseSB0aGUgR3JhcGguIFRoZXJlJ3MgYSBsb3Qgb2YgbWFjaGluZXJ5IGluCisgICAgICAg
IHRoaXMgcGF0Y2gganVzdCB0byBtYWtlIHRoZSBHcmFwaCBzY2FubmFibGUuCisgICAgICAgIAor
ICAgICAgICBXZSB0aGVuIHVzZSBERkc6OkdyYXBoU2FmZXBvaW50IGluIGp1c3QgdHdvIHBsYWNl
cyBmb3Igbm93OiAoMSkgd2hpbGUgaW5pdGlhbGl6aW5nIExMVk0KKyAgICAgICAgYW5kICgyKSB3
aGlsZSBpbnZva2luZyBMTFZNJyBvcHRpbWl6ZXIgYW5kIGJhY2tlbmQuCisgICAgICAgIAorICAg
ICAgICBNYWtpbmcgdGhpcyBjaGFuZ2Ugd2FzIGRpZmZpY3VsdCBiZWNhdXNlIEkgcmFuIGludG8g
dGhlIGxpbWl0cyBvZiBvdXIgbGFjayBvZiBoZWFkZXIKKyAgICAgICAgZmlsZSBkaXNjaXBsaW5l
LiBFdmVuIHRob3VnaCBPcGVyYXRpb25zLmggaXMgbWVhbnQgdG8gYmUgdGhlIHRoaW5nIHRoYXQg
aXMgb25seQorICAgICAgICBpbmNsdWRlZCBmcm9tIC5jcHAgZmlsZXMsIGl0IHdhcyBpbmNsdWRl
ZCBmcm9tIENvZGVCbG9jay5oLiBTaW1pbGFybHksCisgICAgICAgIENhbGxGcmFtZUlubGluZXMu
aCB3YXMgaW5jbHVkZWQgZnJvbSBERkdKSVRDb21waWxlci5oLiBUaGVuLCBDYWxsTGlua0luZm8u
aCBpbmNsdWRlZAorICAgICAgICBERkdHcmFwaC5oLiBJdCB3YXMgYSB0b3RhbCBtZXNzLiBJIHVu
cmF2ZWxlZCB0aGlzIG1lc3MgdG8gZ2V0IG15IGNvZGUgdG8gYnVpbGQuCisKKyAgICAgICAgKiBB
UEkvSlNDb250ZXh0UmVmLmNwcDoKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAg
KiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnZjeHByb2ov
SmF2YVNjcmlwdENvcmUudmN4cHJvajoKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGFzc2VtYmxlci9MaW5rQnVmZmVyLmNwcDoK
KyAgICAgICAgKiBieXRlY29kZS9Db2RlQmxvY2suY3BwOgorICAgICAgICAqIGJ5dGVjb2RlL0Nv
ZGVCbG9jay5oOgorICAgICAgICAqIGJ5dGVjb2RlL1Byb2ZpbGVkQ29kZUJsb2NrSmV0dGlzb25p
bmdXYXRjaHBvaW50LmNwcDoKKyAgICAgICAgKiBkZWJ1Z2dlci9EZWJ1Z2dlckNhbGxGcmFtZS5j
cHA6CisgICAgICAgICogZGZnL0RGR0Rlc2lyZWRUcmFuc2l0aW9ucy5jcHA6CisgICAgICAgICog
ZGZnL0RGR0RyaXZlci5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Y29tcGlsZUltcGwpOgorICAg
ICAgICAqIGRmZy9ERkdHcmFwaC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6R3JhcGg6OnZpc2l0
Q2hpbGRyZW4pOgorICAgICAgICAqIGRmZy9ERkdHcmFwaC5oOgorICAgICAgICAqIGRmZy9ERkdH
cmFwaFNhZmVwb2ludC5jcHA6IEFkZGVkLgorICAgICAgICAoSlNDOjpERkc6OkdyYXBoU2FmZXBv
aW50OjpHcmFwaFNhZmVwb2ludCk6CisgICAgICAgIChKU0M6OkRGRzo6R3JhcGhTYWZlcG9pbnQ6
On5HcmFwaFNhZmVwb2ludCk6CisgICAgICAgICogZGZnL0RGR0dyYXBoU2FmZXBvaW50Lmg6IEFk
ZGVkLgorICAgICAgICAqIGRmZy9ERkdKSVRDb2RlLmNwcDoKKyAgICAgICAgKiBkZmcvREZHSklU
Q29tcGlsZXIuY3BwOgorICAgICAgICAqIGRmZy9ERkdKSVRDb21waWxlci5oOgorICAgICAgICAq
IGRmZy9ERkdPU1JFeGl0Q29tcGlsZXJDb21tb24uY3BwOgorICAgICAgICAqIGRmZy9ERkdPcGVy
YXRpb25zLmNwcDoKKyAgICAgICAgKiBkZmcvREZHT3BlcmF0aW9ucy5oOgorICAgICAgICAqIGRm
Zy9ERkdQbGFuLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpQbGFuOjpjb21waWxlSW5UaHJlYWQp
OgorICAgICAgICAoSlNDOjpERkc6OlBsYW46OmNvbXBpbGVJblRocmVhZEltcGwpOgorICAgICAg
ICAqIGRmZy9ERkdQbGFuLmg6CisgICAgICAgICogZGZnL0RGR1NhZmVwb2ludC5jcHA6IEFkZGVk
LgorICAgICAgICAoSlNDOjpERkc6OlNhZmVwb2ludDo6U2FmZXBvaW50KToKKyAgICAgICAgKEpT
Qzo6REZHOjpTYWZlcG9pbnQ6On5TYWZlcG9pbnQpOgorICAgICAgICAoSlNDOjpERkc6OlNhZmVw
b2ludDo6YWRkKToKKyAgICAgICAgKEpTQzo6REZHOjpTYWZlcG9pbnQ6OmJlZ2luKToKKyAgICAg
ICAgKEpTQzo6REZHOjpTYWZlcG9pbnQ6OnZpc2l0Q2hpbGRyZW4pOgorICAgICAgICAqIGRmZy9E
RkdTYWZlcG9pbnQuaDogQWRkZWQuCisgICAgICAgICogZGZnL0RGR1NjYW5uYWJsZS5oOiBBZGRl
ZC4KKyAgICAgICAgKEpTQzo6REZHOjpTY2FubmFibGU6OlNjYW5uYWJsZSk6CisgICAgICAgIChK
U0M6OkRGRzo6U2Nhbm5hYmxlOjp+U2Nhbm5hYmxlKToKKyAgICAgICAgKiBkZmcvREZHVGhyZWFk
RGF0YS5jcHA6IEFkZGVkLgorICAgICAgICAoSlNDOjpERkc6OlRocmVhZERhdGE6OlRocmVhZERh
dGEpOgorICAgICAgICAoSlNDOjpERkc6OlRocmVhZERhdGE6On5UaHJlYWREYXRhKToKKyAgICAg
ICAgKiBkZmcvREZHVGhyZWFkRGF0YS5oOiBBZGRlZC4KKyAgICAgICAgKiBkZmcvREZHVGh1bmtz
LmNwcDoKKyAgICAgICAgKiBkZmcvREZHV29ya2xpc3QuY3BwOgorICAgICAgICAoSlNDOjpERkc6
OldvcmtsaXN0OjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgIChKU0M6OkRGRzo6V29ya2xpc3Q6
OnZpc2l0Q2hpbGRyZW4pOgorICAgICAgICAoSlNDOjpERkc6OldvcmtsaXN0OjpydW5UaHJlYWQp
OgorICAgICAgICAqIGRmZy9ERkdXb3JrbGlzdC5oOgorICAgICAgICAqIGZ0bC9GVExDb21waWxl
LmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpjb21waWxlKToKKyAgICAgICAgKiBmdGwvRlRMTGlu
ay5jcHA6CisgICAgICAgICogZnRsL0ZUTE9TUkV4aXRDb21waWxlci5jcHA6CisgICAgICAgICog
ZnRsL0ZUTFNsb3dQYXRoQ2FsbC5jcHA6CisgICAgICAgICogZnRsL0ZUTFRodW5rcy5jcHA6Cisg
ICAgICAgIChKU0M6OkZUTDo6c2xvd1BhdGhDYWxsVGh1bmtHZW5lcmF0b3IpOgorICAgICAgICAq
IGhlYXAvU2xvdFZpc2l0b3IuaDoKKyAgICAgICAgKiBoZWFwL1Nsb3RWaXNpdG9ySW5saW5lcy5o
OgorICAgICAgICAoSlNDOjpTbG90VmlzaXRvcjo6YXBwZW5kVW5iYXJyaWVyZWRSZWFkT25seVBv
aW50ZXIpOgorICAgICAgICAoSlNDOjpTbG90VmlzaXRvcjo6YXBwZW5kVW5iYXJyaWVyZWRSZWFk
T25seVZhbHVlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvU2NyaXB0Q2FsbFN0YWNrRmFjdG9yeS5j
cHA6CisgICAgICAgICogaW50ZXJwcmV0ZXIvUHJvdG9DYWxsRnJhbWUuY3BwOgorICAgICAgICAq
IGppdC9KSVRFeGNlcHRpb25zLmNwcDoKKyAgICAgICAgKiBqaXQvSklUSW5saW5lcy5oOgorICAg
ICAgICAqIGppdC9KSVRPcGVyYXRpb25zLmNwcDoKKyAgICAgICAgKiBqaXQvUmVwYXRjaC5jcHA6
CisgICAgICAgICoganNjLmNwcDoKKyAgICAgICAgKiBwcm9maWxlci9Qcm9maWxlR2VuZXJhdG9y
LmNwcDoKKyAgICAgICAgKiBydW50aW1lL0FyZ3VtZW50cy5jcHA6CisgICAgICAgICogcnVudGlt
ZS9Bcmd1bWVudHNJdGVyYXRvclByb3RvdHlwZS5jcHA6CisgICAgICAgICogcnVudGltZS9Db21t
b25TbG93UGF0aHNFeGNlcHRpb25zLmNwcDoKKyAgICAgICAgKiBydW50aW1lL0pTQXJndW1lbnRz
SXRlcmF0b3IuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvSlNGdW5jdGlvbi5jcHA6CisgICAgICAg
ICogcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5jcHA6CisgICAgICAgICogcnVudGlt
ZS9PYmplY3RDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgICogcnVudGltZS9PcGVyYXRpb25zLmg6
CisgICAgICAgICogcnVudGltZS9WTS5jcHA6CisKIDIwMTQtMDItMDkgIEFuZGVycyBDYXJsc3Nv
biAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAgICAgICBDb252ZXJ0IHNvbWUgSlNDIGNvZGUg
b3ZlciB0byBzdGQ6Om11dGV4CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0
cy50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0
CShyZXZpc2lvbiAxNjM3NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50
eHQJKHdvcmtpbmcgY29weSkKQEAgLTEzOCw2ICsxMzgsNyBAQCBzZXQoSmF2YVNjcmlwdENvcmVf
U09VUkNFUwogICAgIGRmZy9ERkdGbHVzaExpdmVuZXNzQW5hbHlzaXNQaGFzZS5jcHAKICAgICBk
ZmcvREZHRmx1c2hlZEF0LmNwcAogICAgIGRmZy9ERkdHcmFwaC5jcHAKKyAgICBkZmcvREZHR3Jh
cGhTYWZlcG9pbnQuY3BwCiAgICAgZGZnL0RGR0luUGxhY2VBYnN0cmFjdFN0YXRlLmNwcAogICAg
IGRmZy9ERkdJbnZhbGlkYXRpb25Qb2ludEluamVjdGlvblBoYXNlLmNwcAogICAgIGRmZy9ERkdK
SVRDb2RlLmNwcApAQCAtMTcyLDEyICsxNzMsMTQgQEAgc2V0KEphdmFTY3JpcHRDb3JlX1NPVVJD
RVMKICAgICBkZmcvREZHUmVzdXJyZWN0aW9uRm9yVmFsaWRhdGlvblBoYXNlLmNwcAogICAgIGRm
Zy9ERkdTU0FDb252ZXJzaW9uUGhhc2UuY3BwCiAgICAgZGZnL0RGR1NTQUxvd2VyaW5nUGhhc2Uu
Y3BwCisgICAgZGZnL0RGR1NhZmVwb2ludC5jcHAKICAgICBkZmcvREZHU3BlY3VsYXRpdmVKSVQu
Y3BwCiAgICAgZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCiAgICAgZGZnL0RGR1NwZWN1
bGF0aXZlSklUNjQuY3BwCiAgICAgZGZnL0RGR1N0YWNrTGF5b3V0UGhhc2UuY3BwCiAgICAgZGZn
L0RGR1N0b3JlQmFycmllckVsaXNpb25QaGFzZS5jcHAKICAgICBkZmcvREZHU3RyZW5ndGhSZWR1
Y3Rpb25QaGFzZS5jcHAKKyAgICBkZmcvREZHVGhyZWFkRGF0YS5jcHAKICAgICBkZmcvREZHVGh1
bmtzLmNwcAogICAgIGRmZy9ERkdUaWVyVXBDaGVja0luamVjdGlvblBoYXNlLmNwcAogICAgIGRm
Zy9ERkdUeXBlQ2hlY2tIb2lzdGluZ1BoYXNlLmNwcApJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0JKHJldmlzaW9uIDE2Mzc1MikKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCSh3b3JraW5nIGNvcHkpCkBAIC0zMDQsNiAr
MzA0LDggQEAgamF2YXNjcmlwdGNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdHZW5lcmF0aW9uSW5mby5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0dyYXBoLmNwcCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5oIFwK
KwlTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoU2FmZXBvaW50LmNwcCBcCisJU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaFNhZmVwb2ludC5oIFwKIAlTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0luUGxhY2VBYnN0cmFjdFN0YXRlLmNwcCBcCiAJU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdJblBsYWNlQWJzdHJhY3RTdGF0ZS5oIFwKIAlTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0lubGluZUNhY2hlV3JhcHBlci5oIFwKQEAgLTM3Nyw3ICszNzks
MTAgQEAgamF2YXNjcmlwdGNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdSZXN1cnJlY3Rpb25Gb3JWYWxpZGF0aW9uUGhhc2UuY3BwIFwKIAlTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1Jlc3VycmVjdGlvbkZvclZhbGlkYXRpb25QaGFzZS5oIFwKIAlT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaCBcCisJU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdTYWZlcG9pbnQuY3BwIFwKKwlTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1NhZmVwb2ludC5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nh
bmVTdHJpbmdHZXRCeVZhbFNsb3dQYXRoR2VuZXJhdG9yLmggXAorCVNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHU2Nhbm5hYmxlLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
U2NvcmVCb2FyZC5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NpbGVudFJlZ2lz
dGVyU2F2ZVBsYW4uaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTbG93UGF0aEdl
bmVyYXRvci5oIFwKQEAgLTM5OCw2ICs0MDMsOCBAQCBqYXZhc2NyaXB0Y29yZV9zb3VyY2VzICs9
IFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1N0cnVjdHVyZUFic3RyYWN0VmFsdWUu
aCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdUaWVyVXBDaGVja0luamVjdGlvblBo
YXNlLmNwcCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdUaWVyVXBDaGVja0luamVj
dGlvblBoYXNlLmggXAorCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVGhyZWFkRGF0YS5j
cHAgXAorCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVGhyZWFkRGF0YS5oIFwKIAlTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1RodW5rcy5jcHAgXAogCVNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHVGh1bmtzLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVG9G
VExEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2suY3BwIFwKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qc2MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2Mu
Y3BwCShyZXZpc2lvbiAxNjM3NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMjUsNyArMjUsNiBAQAogI2luY2x1ZGUgIkFQSVNoaW1zLmgiCiAj
aW5jbHVkZSAiQnV0dGVyZmx5SW5saW5lcy5oIgogI2luY2x1ZGUgIkJ5dGVjb2RlR2VuZXJhdG9y
LmgiCi0jaW5jbHVkZSAiQ2FsbEZyYW1lSW5saW5lcy5oIgogI2luY2x1ZGUgIkNvbXBsZXRpb24u
aCIKICNpbmNsdWRlICJDb3BpZWRTcGFjZUlubGluZXMuaCIKICNpbmNsdWRlICJFeGNlcHRpb25I
ZWxwZXJzLmgiCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ29udGV4dFJlZi5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NvbnRleHRSZWYu
Y3BwCShyZXZpc2lvbiAxNjM3NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ29u
dGV4dFJlZi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5LDcgKzI5LDYgQEAKIAogI2luY2x1ZGUg
IkFQSUNhc3QuaCIKICNpbmNsdWRlICJDYWxsRnJhbWUuaCIKLSNpbmNsdWRlICJDYWxsRnJhbWVJ
bmxpbmVzLmgiCiAjaW5jbHVkZSAiSW5pdGlhbGl6ZVRocmVhZGluZy5oIgogI2luY2x1ZGUgIkpT
Q2FsbGJhY2tPYmplY3QuaCIKICNpbmNsdWRlICJKU0NsYXNzUmVmLmgiCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hw
cm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52
Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2oJKHJldmlzaW9uIDE2Mzc1MikKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZj
eHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTM5Miw2ICszOTIsNyBAQAogICAgIDxDbENvbXBpbGUg
SW5jbHVkZT0iLi5cZGZnXERGR0ZsdXNoRm9ybWF0LmNwcCIgLz4KICAgICA8Q2xDb21waWxlIElu
Y2x1ZGU9Ii4uXGRmZ1xERkdGbHVzaExpdmVuZXNzQW5hbHlzaXNQaGFzZS5jcHAiIC8+CiAgICAg
PENsQ29tcGlsZSBJbmNsdWRlPSIuLlxkZmdcREZHR3JhcGguY3BwIiAvPgorICAgIDxDbENvbXBp
bGUgSW5jbHVkZT0iLi5cZGZnXERGR0dyYXBoU2FmZXBvaW50LmNwcCIgLz4KICAgICA8Q2xDb21w
aWxlIEluY2x1ZGU9Ii4uXGRmZ1xERkdJblBsYWNlQWJzdHJhY3RTdGF0ZS5jcHAiIC8+CiAgICAg
PENsQ29tcGlsZSBJbmNsdWRlPSIuLlxkZmdcREZHSW52YWxpZGF0aW9uUG9pbnRJbmplY3Rpb25Q
aGFzZS5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxkZmdcREZHSklUQ29kZS5j
cHAiIC8+CkBAIC00MjQsNiArNDI1LDcgQEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGRm
Z1xERkdQcmVkaWN0aW9uSW5qZWN0aW9uUGhhc2UuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5j
bHVkZT0iLi5cZGZnXERGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcCIgLz4KICAgICA8
Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGRmZ1xERkdSZXN1cnJlY3Rpb25Gb3JWYWxpZGF0aW9uUGhh
c2UuY3BwIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZGZnXERGR1NhZmVwb2ludC5j
cHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxkZmdcREZHU3BlY3VsYXRpdmVKSVQu
Y3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZGZnXERGR1NwZWN1bGF0aXZlSklU
MzJfNjQuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZGZnXERGR1NwZWN1bGF0
aXZlSklUNjQuY3BwIiAvPgpAQCAtNDMyLDYgKzQzNCw3IEBACiAgICAgPENsQ29tcGlsZSBJbmNs
dWRlPSIuLlxkZmdcREZHU3RhY2tMYXlvdXRQaGFzZS5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJ
bmNsdWRlPSIuLlxkZmdcREZHU3RvcmVCYXJyaWVyRWxpc2lvblBoYXNlLmNwcCIgLz4KICAgICA8
Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGRmZ1xERkdTdHJlbmd0aFJlZHVjdGlvblBoYXNlLmNwcCIg
Lz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGRmZ1xERkdUaHJlYWREYXRhLmNwcCIgLz4K
ICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGRmZ1xERkdUaHVua3MuY3BwIiAvPgogICAgIDxD
bENvbXBpbGUgSW5jbHVkZT0iLi5cZGZnXERGR1RpZXJVcENoZWNrSW5qZWN0aW9uUGhhc2UuY3Bw
IiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZGZnXERGR1RvRlRMRGVmZXJyZWRDb21w
aWxhdGlvbkNhbGxiYWNrLmNwcCIgLz4KQEAgLTkyOSw2ICs5MzIsNyBAQAogICAgIDxDbEluY2x1
ZGUgSW5jbHVkZT0iLi5cZGZnXERGR0dlbmVyYXRpb25JbmZvLmgiIC8+CiAgICAgPENsSW5jbHVk
ZSBJbmNsdWRlPSIuLlxkZmdcREZHR1BSSW5mby5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVk
ZT0iLi5cZGZnXERGR0dyYXBoLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxkZmdc
REZHR3JhcGhTYWZlcG9pbnQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGRmZ1xE
RkdJblBsYWNlQWJzdHJhY3RTdGF0ZS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
ZGZnXERGR0luc2VydGlvblNldC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZGZn
XERGR0ludmFsaWRhdGlvblBvaW50SW5qZWN0aW9uUGhhc2UuaCIgLz4KQEAgLTk2OSw3ICs5NzMs
OSBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZGZnXERGR1JlZ2lzdGVyU2V0LmgiIC8+
CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxkZmdcREZHUmVzdXJyZWN0aW9uRm9yVmFsaWRh
dGlvblBoYXNlLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxkZmdcREZHU2FmZVRv
RXhlY3V0ZS5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZGZnXERGR1NhZmVwb2lu
dC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZGZnXERGR1NhbmVTdHJpbmdHZXRC
eVZhbFNsb3dQYXRoR2VuZXJhdG9yLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxk
ZmdcREZHU2Nhbm5hYmxlLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxkZmdcREZH
U2NvcmVCb2FyZC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZGZnXERGR1NjcmF0
Y2hSZWdpc3RlckFsbG9jYXRvci5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZGZn
XERGR1NpbGVudFJlZ2lzdGVyU2F2ZVBsYW4uaCIgLz4KQEAgLTk4MSw2ICs5ODcsNyBAQAogICAg
IDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZGZnXERGR1N0b3JlQmFycmllckVsaXNpb25QaGFzZS5o
IiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZGZnXERGR1N0cmVuZ3RoUmVkdWN0aW9u
UGhhc2UuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGRmZ1xERkdTdHJ1Y3R1cmVB
YnN0cmFjdFZhbHVlLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxkZmdcREZHVGhy
ZWFkRGF0YS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZGZnXERGR1RodW5rcy5o
IiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZGZnXERGR1RpZXJVcENoZWNrSW5qZWN0
aW9uUGhhc2UuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGRmZ1xERkdUb0ZUTERl
ZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjay5oIiAvPgpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oJKHJldmlzaW9uIDE2Mzc1MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZh
U2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0y
MDIsNiArMjAyLDEzIEBACiAJCTBGMkU4OTJEMTZEMDJCQUYwMDlFNEZEMiAvKiBERkdNaW5pZmll
ZElELmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkI0
QjUxMDE2QjNBOTY0MDAzRjY5NkIgLyogREZHTWluaWZpZWRJRC5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGMkZDNzcyMTZFMTJGNzEwMDM4RDk3
NiAvKiBERkdEQ0VQaGFzZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwRjJGQzc3MDE2RTEyRjZGMDAzOEQ5NzYgLyogREZHRENFUGhhc2UuY3BwICov
OyB9OwogCQkwRjJGQzc3MzE2RTEyRjc0MDAzOEQ5NzYgLyogREZHRENFUGhhc2UuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMkZDNzcxMTZFMTJGNkYw
MDM4RDk3NiAvKiBERkdEQ0VQaGFzZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CisJCTBGMkZDQ0Y5MThBNjAwNzAwMDFBMjdGOCAvKiBERkdHcmFwaFNh
ZmVwb2ludC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwRjJGQ0NGMjE4QTYwMDcwMDAxQTI3RjggLyogREZHR3JhcGhTYWZlcG9pbnQuY3BwICovOyB9
OworCQkwRjJGQ0NGQTE4QTYwMDcwMDAxQTI3RjggLyogREZHR3JhcGhTYWZlcG9pbnQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMkZDQ0YzMThBNjAw
NzAwMDFBMjdGOCAvKiBERkdHcmFwaFNhZmVwb2ludC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTBGMkZDQ0ZCMThBNjAwNzAwMDFBMjdGOCAvKiBE
RkdTYWZlcG9pbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMEYyRkNDRjQxOEE2MDA3MDAwMUEyN0Y4IC8qIERGR1NhZmVwb2ludC5jcHAgKi87IH07
CisJCTBGMkZDQ0ZDMThBNjAwNzAwMDFBMjdGOCAvKiBERkdTYWZlcG9pbnQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMkZDQ0Y1MThBNjAwNzAwMDFB
MjdGOCAvKiBERkdTYWZlcG9pbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OworCQkwRjJGQ0NGRDE4QTYwMDcwMDAxQTI3RjggLyogREZHU2Nhbm5hYmxl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjJGQ0NG
NjE4QTYwMDcwMDAxQTI3RjggLyogREZHU2Nhbm5hYmxlLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMEYyRkNDRkUxOEE2MDA3MDAwMUEyN0Y4IC8q
IERGR1RocmVhZERhdGEuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMEYyRkNDRjcxOEE2MDA3MDAwMUEyN0Y4IC8qIERGR1RocmVhZERhdGEuY3BwICov
OyB9OworCQkwRjJGQ0NGRjE4QTYwMDcwMDAxQTI3RjggLyogREZHVGhyZWFkRGF0YS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYyRkNDRjgxOEE2MDA3
MDAwMUEyN0Y4IC8qIERGR1RocmVhZERhdGEuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjM0QjE0OTE2RDQyMDEwMDAxQ0RBNUEgLyogREZHVXNl
S2luZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAw
RjM0QjE0NzE2RDQyMDBFMDAxQ0RBNUEgLyogREZHVXNlS2luZC5jcHAgKi87IH07CiAJCTBGMzRC
MTRBMTZENDIwMTMwMDFDREE1QSAvKiBERkdVc2VLaW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjM0QjE0ODE2RDQyMDBFMDAxQ0RBNUEgLyogREZH
VXNlS2luZC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTBGMzRCMTRDMTZENDNFMEQwMDFDREE1QSAvKiBQb2x5bW9ycGhpY0FjY2Vzc1N0cnVjdHVy
ZUxpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBG
MzRCMTRCMTZENDNFMEMwMDFDREE1QSAvKiBQb2x5bW9ycGhpY0FjY2Vzc1N0cnVjdHVyZUxpc3Qu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTM1
MSw3ICsxMzU4LDcgQEAKIAkJQzI5ODFGREQxN0JBRkY0NDAwQTNCQzk4IC8qIERGR0Rlc2lyZWRX
cml0ZUJhcnJpZXJzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBDMjk4MUZEQjE3QkFGRjQ0MDBBM0JDOTggLyogREZHRGVzaXJlZFdyaXRlQmFycmllcnMu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDMjlF
Q0IwMzE4MDREMEVEMDBEMkNCQjQgLyogQ3VycmVudFRoaXNJbnNpZGVCbG9ja0dldHRlclRlc3Qu
bW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMjlFQ0Iw
MTE4MDREMEVEMDBEMkNCQjQgLyogQ3VycmVudFRoaXNJbnNpZGVCbG9ja0dldHRlclRlc3QubW0g
Ki87IH07CiAJCUMyQTdGNjg4MTYwNDMyRDQwMEY3NkI5OCAvKiBKU0Rlc3RydWN0aWJsZU9iamVj
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzJBN0Y2
ODcxNjA0MzJENDAwRjc2Qjk4IC8qIEpTRGVzdHJ1Y3RpYmxlT2JqZWN0LmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLSAgICAgICBDMkI2RDc1MzE4QTMz
NzkzMDA0QTkzMDEgLyogV3JpdGVCYXJyaWVySW5saW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzJCNkQ3NTIxOEEzMzc5MzAwNEE5MzAxIC8qIFdy
aXRlQmFycmllcklubGluZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OworCQlDMkI2RDc1MzE4QTMzNzkzMDA0QTkzMDEgLyogV3JpdGVCYXJyaWVySW5s
aW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzJC
NkQ3NTIxOEEzMzc5MzAwNEE5MzAxIC8qIFdyaXRlQmFycmllcklubGluZXMuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDMkI5MTZDMjE0REEwMTRF
MDBDQkFDODYgLyogTWFya2VkQWxsb2NhdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBDMkI5MTZDMTE0REEwMTRFMDBDQkFDODYgLyogTWFya2VkQWxs
b2NhdG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJQzJCOTE2QzUxNERBMDQwQzAwQ0JBQzg2IC8qIE1hcmtlZEFsbG9jYXRvci5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMkI5MTZDNDE0REEwNDBD
MDBDQkFDODYgLyogTWFya2VkQWxsb2NhdG9yLmNwcCAqLzsgfTsKIAkJQzJDMEY3Q0QxN0JCRkM1
QjAwNDY0RkU0IC8qIERGR0Rlc2lyZWRUcmFuc2l0aW9ucy5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMkMwRjdDQjE3QkJGQzVCMDA0NjRGRTQgLyog
REZHRGVzaXJlZFRyYW5zaXRpb25zLmNwcCAqLzsgfTsKQEAgLTE2NDQsNiArMTY1MSwxMyBAQAog
CQkwRjJCREM1MDE1MjI4RkZBMDBDRDg5MTAgLyogREZHVmFyaWFibGVFdmVudC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBERkdWYXJpYWJsZUV2ZW50LmNwcDsgcGF0
aCA9IGRmZy9ERkdWYXJpYWJsZUV2ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMEYyRkM3NzAxNkUxMkY2RjAwMzhEOTc2IC8qIERGR0RDRVBoYXNlLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IERGR0RDRVBoYXNlLmNwcDsgcGF0aCA9IGRmZy9E
RkdEQ0VQaGFzZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGMkZDNzcxMTZF
MTJGNkYwMDM4RDk3NiAvKiBERkdEQ0VQaGFzZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IG5hbWUgPSBERkdEQ0VQaGFzZS5oOyBwYXRoID0gZGZnL0RGR0RDRVBoYXNlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGMkZDQ0YyMThBNjAwNzAwMDFBMjdGOCAvKiBERkdHcmFw
aFNhZmVwb2ludC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBERkdH
cmFwaFNhZmVwb2ludC5jcHA7IHBhdGggPSBkZmcvREZHR3JhcGhTYWZlcG9pbnQuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRjJGQ0NGMzE4QTYwMDcwMDAxQTI3RjggLyogREZH
R3JhcGhTYWZlcG9pbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gREZHR3Jh
cGhTYWZlcG9pbnQuaDsgcGF0aCA9IGRmZy9ERkdHcmFwaFNhZmVwb2ludC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQkwRjJGQ0NGNDE4QTYwMDcwMDAxQTI3RjggLyogREZHU2FmZXBv
aW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IERGR1NhZmVwb2lu
dC5jcHA7IHBhdGggPSBkZmcvREZHU2FmZXBvaW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJMEYyRkNDRjUxOEE2MDA3MDAwMUEyN0Y4IC8qIERGR1NhZmVwb2ludC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBERkdTYWZlcG9pbnQuaDsgcGF0aCA9IGRmZy9E
RkdTYWZlcG9pbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEYyRkNDRjYxOEE2
MDA3MDAwMUEyN0Y4IC8qIERGR1NjYW5uYWJsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IG5hbWUgPSBERkdTY2FubmFibGUuaDsgcGF0aCA9IGRmZy9ERkdTY2FubmFibGUuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEYyRkNDRjcxOEE2MDA3MDAwMUEyN0Y4IC8qIERGR1Ro
cmVhZERhdGEuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gREZHVGhy
ZWFkRGF0YS5jcHA7IHBhdGggPSBkZmcvREZHVGhyZWFkRGF0YS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTBGMkZDQ0Y4MThBNjAwNzAwMDFBMjdGOCAvKiBERkdUaHJlYWREYXRh
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IERGR1RocmVhZERhdGEuaDsgcGF0
aCA9IGRmZy9ERkdUaHJlYWREYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBG
MzRCMTQ3MTZENDIwMEUwMDFDREE1QSAvKiBERkdVc2VLaW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgbmFtZSA9IERGR1VzZUtpbmQuY3BwOyBwYXRoID0gZGZnL0RGR1VzZUtp
bmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjM0QjE0ODE2RDQyMDBFMDAx
Q0RBNUEgLyogREZHVXNlS2luZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBE
RkdVc2VLaW5kLmg7IHBhdGggPSBkZmcvREZHVXNlS2luZC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkwRjM0QjE0QjE2RDQzRTBDMDAxQ0RBNUEgLyogUG9seW1vcnBoaWNBY2Nlc3NT
dHJ1Y3R1cmVMaXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBvbHltb3Jw
aGljQWNjZXNzU3RydWN0dXJlTGlzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MjgwMiw3ICsyODE2LDcgQEAKIAkJQzI5RUNCMDExODA0RDBFRDAwRDJDQkI0IC8qIEN1cnJlbnRU
aGlzSW5zaWRlQmxvY2tHZXR0ZXJUZXN0Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBuYW1lID0gQ3VycmVudFRoaXNJbnNpZGVCbG9ja0dldHRlclRlc3QubW07IHBhdGggPSBB
UEkvdGVzdHMvQ3VycmVudFRoaXNJbnNpZGVCbG9ja0dldHRlclRlc3QubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUMyOUVDQjAyMTgwNEQwRUQwMEQyQ0JCNCAvKiBDdXJyZW50VGhp
c0luc2lkZUJsb2NrR2V0dGVyVGVzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUg
PSBDdXJyZW50VGhpc0luc2lkZUJsb2NrR2V0dGVyVGVzdC5oOyBwYXRoID0gQVBJL3Rlc3RzL0N1
cnJlbnRUaGlzSW5zaWRlQmxvY2tHZXR0ZXJUZXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUMyQTdGNjg3MTYwNDMyRDQwMEY3NkI5OCAvKiBKU0Rlc3RydWN0aWJsZU9iamVjdC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0Rlc3RydWN0aWJsZU9iamVjdC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotICAgICAgIEMyQjZENzUyMThBMzM3OTMwMDRB
OTMwMSAvKiBXcml0ZUJhcnJpZXJJbmxpbmVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFdyaXRlQmFycmllcklubGluZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJQzJCNkQ3NTIxOEEzMzc5MzAwNEE5MzAxIC8qIFdyaXRlQmFycmllcklubGluZXMuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV3JpdGVCYXJyaWVySW5saW5lcy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDMkI5MTZDMTE0REEwMTRFMDBDQkFDODYgLyogTWFy
a2VkQWxsb2NhdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1hcmtlZEFs
bG9jYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDMkI5MTZDNDE0REEwNDBD
MDBDQkFDODYgLyogTWFya2VkQWxsb2NhdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IE1hcmtlZEFsbG9jYXRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUMyQzBGN0NCMTdCQkZDNUIwMDQ2NEZFNCAvKiBERkdEZXNpcmVkVHJhbnNpdGlvbnMu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gREZHRGVzaXJlZFRyYW5z
aXRpb25zLmNwcDsgcGF0aCA9IGRmZy9ERkdEZXNpcmVkVHJhbnNpdGlvbnMuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzY2Myw3ICszNjc3LDcgQEAKIAkJN0VGNkUwQkIwRUI3
QTFFQzAwNzlBRkFGIC8qIHJ1bnRpbWUgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNo
aWxkcmVuID0gKAotICAgICAgICAgICAgICAgQzJCNkQ3NTIxOEEzMzc5MzAwNEE5MzAxIC8qIFdy
aXRlQmFycmllcklubGluZXMuaCAqLywKKwkJCQlDMkI2RDc1MjE4QTMzNzkzMDA0QTkzMDEgLyog
V3JpdGVCYXJyaWVySW5saW5lcy5oICovLAogCQkJCUJDRjYwNTExMEUyMDNFRjgwMEI5QTY0RCAv
KiBBcmdMaXN0LmNwcCAqLywKIAkJCQlCQ0Y2MDUxMjBFMjAzRUY4MDBCOUE2NEQgLyogQXJnTGlz
dC5oICovLAogCQkJCUJDMjU3REU1MEUxRjUxQzUwMDE2QjZDOSAvKiBBcmd1bWVudHMuY3BwICov
LApAQCAtNDA4Nyw4ICs0MTAxLDYgQEAKIAkJODZFQzlEQjMxMzI4REY0NDAwMkIyQUQ3IC8qIGRm
ZyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCi0JCQkJMkFDQ0Yz
REMxODVGRTI2QjAwODNFMkFEIC8qIERGR1N0b3JlQmFycmllckVsaXNpb25QaGFzZS5jcHAgKi8s
Ci0JCQkJMkFDQ0YzREQxODVGRTI2QjAwODNFMkFEIC8qIERGR1N0b3JlQmFycmllckVsaXNpb25Q
aGFzZS5oICovLAogCQkJCUE3N0E0MjM2MTdBMEJCRkQwMEE4REI4MSAvKiBERkdBYnN0cmFjdEhl
YXAuY3BwICovLAogCQkJCUE3N0E0MjM3MTdBMEJCRkQwMEE4REI4MSAvKiBERkdBYnN0cmFjdEhl
YXAuaCAqLywKIAkJCQlBNzA0RDhGRTE3QTBCQUE4MDA2QkE1NTQgLyogREZHQWJzdHJhY3RJbnRl
cnByZXRlci5oICovLApAQCAtNDE5MCw2ICs0MjAyLDggQEAKIAkJCQk4NkVDOURCNjEzMjhERjgy
MDAyQjJBRDcgLyogREZHR2VuZXJhdGlvbkluZm8uaCAqLywKIAkJCQk4NkVDOURCNzEzMjhERjgy
MDAyQjJBRDcgLyogREZHR3JhcGguY3BwICovLAogCQkJCTg2RUM5REI4MTMyOERGODIwMDJCMkFE
NyAvKiBERkdHcmFwaC5oICovLAorCQkJCTBGMkZDQ0YyMThBNjAwNzAwMDFBMjdGOCAvKiBERkdH
cmFwaFNhZmVwb2ludC5jcHAgKi8sCisJCQkJMEYyRkNDRjMxOEE2MDA3MDAwMUEyN0Y4IC8qIERG
R0dyYXBoU2FmZXBvaW50LmggKi8sCiAJCQkJMEZCMTRFMjAxODEyNTcwQjAwOUI2QjREIC8qIERG
R0lubGluZUNhY2hlV3JhcHBlci5oICovLAogCQkJCTBGQjE0RTIyMTgxMzA5NTUwMDlCNkI0RCAv
KiBERkdJbmxpbmVDYWNoZVdyYXBwZXJJbmxpbmVzLmggKi8sCiAJCQkJQTcwNEQ5MDAxN0EwQkFB
ODAwNkJBNTU0IC8qIERGR0luUGxhY2VBYnN0cmFjdFN0YXRlLmNwcCAqLywKQEAgLTQyNjIsOCAr
NDI3NiwxMSBAQAogCQkJCTg2RUM5REMxMTMyOERGODIwMDJCMkFENyAvKiBERkdSZWdpc3RlckJh
bmsuaCAqLywKIAkJCQkwRjY2NkVDQTE4MzZCMzdFMDBEMDE3RjEgLyogREZHUmVzdXJyZWN0aW9u
Rm9yVmFsaWRhdGlvblBoYXNlLmNwcCAqLywKIAkJCQkwRjY2NkVDQjE4MzZCMzdFMDBEMDE3RjEg
LyogREZHUmVzdXJyZWN0aW9uRm9yVmFsaWRhdGlvblBoYXNlLmggKi8sCisJCQkJMEYyRkNDRjQx
OEE2MDA3MDAwMUEyN0Y4IC8qIERGR1NhZmVwb2ludC5jcHAgKi8sCisJCQkJMEYyRkNDRjUxOEE2
MDA3MDAwMUEyN0Y4IC8qIERGR1NhZmVwb2ludC5oICovLAogCQkJCUE3N0E0MjNDMTdBMEJCRkQw
MEE4REI4MSAvKiBERkdTYWZlVG9FeGVjdXRlLmggKi8sCiAJCQkJQTc0MTAxN0UxNzlEQUY4MDAw
MkVCOEJBIC8qIERGR1NhbmVTdHJpbmdHZXRCeVZhbFNsb3dQYXRoR2VuZXJhdG9yLmggKi8sCisJ
CQkJMEYyRkNDRjYxOEE2MDA3MDAwMUEyN0Y4IC8qIERGR1NjYW5uYWJsZS5oICovLAogCQkJCTg2
RUNBM0Y5MTMyREYyNUEwMDJCMkFENyAvKiBERkdTY29yZUJvYXJkLmggKi8sCiAJCQkJMEYxRTNB
NjUxNTNBMjFERjAwMEY5NDU2IC8qIERGR1NpbGVudFJlZ2lzdGVyU2F2ZVBsYW4uaCAqLywKIAkJ
CQkwRjFFM0E1MDE1MzdDMkNCMDAwRjk0NTYgLyogREZHU2xvd1BhdGhHZW5lcmF0b3IuaCAqLywK
QEAgLTQyNzcsOSArNDI5NCwxMyBAQAogCQkJCTBGQzIwQ0I4MTg1NTZBMzUwMEM5RTk1NCAvKiBE
RkdTU0FMb3dlcmluZ1BoYXNlLmggKi8sCiAJCQkJMEY5RkI0RjIxN0ZDQjkxNzAwQ0I2N0Y4IC8q
IERGR1N0YWNrTGF5b3V0UGhhc2UuY3BwICovLAogCQkJCTBGOUZCNEYzMTdGQ0I5MTcwMENCNjdG
OCAvKiBERkdTdGFja0xheW91dFBoYXNlLmggKi8sCisJCQkJMkFDQ0YzREMxODVGRTI2QjAwODNF
MkFEIC8qIERGR1N0b3JlQmFycmllckVsaXNpb25QaGFzZS5jcHAgKi8sCisJCQkJMkFDQ0YzREQx
ODVGRTI2QjAwODNFMkFEIC8qIERGR1N0b3JlQmFycmllckVsaXNpb25QaGFzZS5oICovLAogCQkJ
CTBGQzIwQ0IzMTg1MkUyQzYwMEM5RTk1NCAvKiBERkdTdHJlbmd0aFJlZHVjdGlvblBoYXNlLmNw
cCAqLywKIAkJCQkwRkMyMENCNDE4NTJFMkM2MDBDOUU5NTQgLyogREZHU3RyZW5ndGhSZWR1Y3Rp
b25QaGFzZS5oICovLAogCQkJCTBGNjM5NDc2MTVEQ0UzNDcwMDZBNTk3QyAvKiBERkdTdHJ1Y3R1
cmVBYnN0cmFjdFZhbHVlLmggKi8sCisJCQkJMEYyRkNDRjcxOEE2MDA3MDAwMUEyN0Y4IC8qIERG
R1RocmVhZERhdGEuY3BwICovLAorCQkJCTBGMkZDQ0Y4MThBNjAwNzAwMDFBMjdGOCAvKiBERkdU
aHJlYWREYXRhLmggKi8sCiAJCQkJMEZDMDk3OUYxNDZCMjhDNzAwQ0YyNDQyIC8qIERGR1RodW5r
cy5jcHAgKi8sCiAJCQkJMEZDMDk3QTAxNDZCMjhDNzAwQ0YyNDQyIC8qIERGR1RodW5rcy5oICov
LAogCQkJCTBGRDhBMzFGMTdENTFGNTcwMENBMkM0MCAvKiBERkdUaWVyVXBDaGVja0luamVjdGlv
blBoYXNlLmNwcCAqLywKQEAgLTQ2OTgsNyArNDcxOSw3IEBACiAJCQkJNjVDMDI4NUQxNzE3OTY2
ODAwMzUxRTM1IC8qIEFSTXY3RE9wY29kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkE2ODI5NUIx
ODc1RjgwNTAwQjZDM0UyIC8qIENvcHlXcml0ZUJhcnJpZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTJBNEVDOTBDMTg2MEQ2QzIwMDk0Rjc4MiAvKiBXcml0ZUJhcnJpZXJCdWZmZXIuaCBpbiBIZWFk
ZXJzICovLAotICAgICAgICAgICAgICAgQzJCNkQ3NTMxOEEzMzc5MzAwNEE5MzAxIC8qIFdyaXRl
QmFycmllcklubGluZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCUMyQjZENzUzMThBMzM3OTMwMDRB
OTMwMSAvKiBXcml0ZUJhcnJpZXJJbmxpbmVzLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRTU5MzJB
ODE4M0M1QTI2MDBBMUVDQ0MgLyogVk1FbnRyeVNjb3BlLmggaW4gSGVhZGVycyAqLywKIAkJCQlB
NTMyNDM5MzE4NTY5NzA5MDAyRUQ2OTIgLyogQ29kZUdlbmVyYXRvckluc3BlY3RvclN0cmluZ3Mu
cHkgaW4gSGVhZGVycyAqLywKIAkJCQlBNTMyNDM5MjE4NTY5NzA5MDAyRUQ2OTIgLyogQ29kZUdl
bmVyYXRvckluc3BlY3Rvci5weSBpbiBIZWFkZXJzICovLApAQCAtNTA3Nyw2ICs1MDk4LDcgQEAK
IAkJCQlBNzkwREQ3MDE4MkY0OTk3MDA1ODg4MDcgLyogSlNTZXRJdGVyYXRvci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMEYyNEU1NEUxN0VFMjc0OTAwQUJCMjE3IC8qIEpJVE9wZXJhdGlvbldyYXBw
ZXJzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjc2NkQzMTE1QUE4MTEyMDA4RjM2M0UgLyogSklU
U3R1YlJvdXRpbmUuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGMkZDQ0ZBMThBNjAwNzAwMDFBMjdG
OCAvKiBERkdHcmFwaFNhZmVwb2ludC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY3NjZEMkMxNUE4
Q0MzQTAwOEYzNjNFIC8qIEpJVFN0dWJSb3V0aW5lU2V0LmggaW4gSGVhZGVycyAqLywKIAkJCQkx
NEM1MjQyQjBGNTM1NUU5MDBCQTNEMDQgLyogSklUU3R1YnMuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUZFRjY4MzVFMTc0MzQzQ0MwMEEzMkUyNSAvKiBKSVRTdHVic0FSTS5oIGluIEhlYWRlcnMgKi8s
CkBAIC01MTE2LDYgKzUxMzgsNyBAQAogCQkJCTg2RTNDNjEzMTY3QkFCRDcwMDZENzYwQSAvKiBK
U0NvbnRleHQuaCBpbiBIZWFkZXJzICovLAogCQkJCTg2RTNDNjE3MTY3QkFCRUUwMDZENzYwQSAv
KiBKU0NvbnRleHRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxOEM0MUUwRTE2RjVD
RDAwQjM0NDYwIC8qIEpTQ29udGV4dFJlZi5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEYyRkNDRkYx
OEE2MDA3MDAwMUEyN0Y4IC8qIERGR1RocmVhZERhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCTE0
OENEMUQ4MTA4Q0Y5MDIwMDgxNjNDNiAvKiBKU0NvbnRleHRSZWZQcml2YXRlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlBNzIwMjhCODE3OTc2MDFFMDA5ODAyOEMgLyogSlNDVGVzdFJ1bm5lclV0aWxz
LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjJCNjZFQzE3QjZCNUFCMDBBN0FFM0YgLyogSlNEYXRh
Vmlldy5oIGluIEhlYWRlcnMgKi8sCkBAIC01MjM2LDYgKzUyNTksNyBAQAogCQkJCTg2QzU2OEUx
MTFBMjEzRUUwMDA3RjdGMCAvKiBNYWNyb0Fzc2VtYmxlck1JUFMuaCBpbiBIZWFkZXJzICovLAog
CQkJCTg2QUU2NEE5MTM1RTVFMUMwMDk2MzAxMiAvKiBNYWNyb0Fzc2VtYmxlclNINC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJODYwMTYxRTQwRjNBODNDMTAwRjg0NzEwIC8qIE1hY3JvQXNzZW1ibGVy
WDg2LmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjJGQ0NGQzE4QTYwMDcwMDAxQTI3RjggLyogREZH
U2FmZXBvaW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk4NjAxNjFFNTBGM0E4M0MxMDBGODQ3MTAg
LyogTWFjcm9Bc3NlbWJsZXJYODZfNjQuaCBpbiBIZWFkZXJzICovLAogCQkJCTg2MDE2MUU2MEYz
QTgzQzEwMEY4NDcxMCAvKiBNYWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQTcwMDg3M0ExN0NCRTg1MzAwQzNFNjQzIC8qIE1hcENvbnN0cnVjdG9yLmggaW4gSGVh
ZGVycyAqLywKQEAgLTU0NDcsNiArNTQ3MSw3IEBACiAJCQkJMEYyNDJEQTcxM0YzQjFFODAwN0FE
RDRDIC8qIFdlYWtSZWZlcmVuY2VIYXJ2ZXN0ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTE0RTg0
RkExMTRFRTFBQ0MwMEQ2RDVENCAvKiBXZWFrU2V0LmggaW4gSGVhZGVycyAqLywKIAkJCQkxNDE1
MDEzMzE1NEJCMTNGMDA1RDhDOTggLyogV2Vha1NldElubGluZXMuaCBpbiBIZWFkZXJzICovLAor
CQkJCTBGMkZDQ0ZEMThBNjAwNzAwMDFBMjdGOCAvKiBERkdTY2FubmFibGUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUJDMThDNDdBMEUxNkY1Q0QwMEIzNDQ2MCAvKiBXZWJLaXRBdmFpbGFiaWxpdHku
aCBpbiBIZWFkZXJzICovLAogCQkJCUE3NERFRjkyMTgyRDk5MTQwMDUyMkMyMiAvKiBNYXBJdGVy
YXRvckNvbnN0cnVjdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlBN0RDQjk3MzEyRTUxOTNGMDA5
MTE5NDAgLyogV3JpdGVCYXJyaWVyLmggaW4gSGVhZGVycyAqLywKQEAgLTYwNDEsNiArNjA2Niw3
IEBACiAJCQkJQTcwNDQ3RUQxN0EwQkQ3MDAwRjU4OThFIC8qIER1bXBDb250ZXh0LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTE0N0YzOUM3MTA3RUMzNzYwMDQyN0E0OCAvKiBFcnJvci5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkxNDdGMzlDODEwN0VDMzc2MDA0MjdBNDggLyogRXJyb3JDb25zdHJ1
Y3Rvci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkwRjJGQ0NGOTE4QTYwMDcwMDAxQTI3RjggLyog
REZHR3JhcGhTYWZlcG9pbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQ3RjM5QzkxMDdFQzM3
NjAwNDI3QTQ4IC8qIEVycm9ySW5zdGFuY2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQ3RjM5
Q0ExMDdFQzM3NjAwNDI3QTQ4IC8qIEVycm9yUHJvdG90eXBlLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUE1RkQwMDY3MTg5QUZFOUMwMDYzMzIzMSAvKiBTY3JpcHRBcmd1bWVudHMuY3BwIGluIFNv
dXJjZXMgKi8sCkBAIC02MjExLDYgKzYyMzcsNyBAQAogCQkJCUE3NDgyQjk0MTE2NzExNDcwMDNC
MDcxMiAvKiBKU1dlYWtPYmplY3RNYXBSZWZQcml2YXRlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTE0NDI1NjYxMTVFREU5OEQwMDY2QTQ5QiAvKiBKU1dpdGhTY29wZS5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlBNTAzRkExQjE4OEUwRkIwMDAxMTBGMTQgLyogSlNKYXZhU2NyaXB0Q2FsbEZyYW1l
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTBGMkZDQ0ZFMThBNjAwNzAwMDFBMjdGOCAvKiBERkdU
aHJlYWREYXRhLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg2RTNDNjE4MTY3QkFCRUUwMDZENzYw
QSAvKiBKU1dyYXBwZXJNYXAubW0gaW4gU291cmNlcyAqLywKIAkJCQkxNDI4MDg3MDEwN0VDMTM0
MDAxM0U3QjIgLyogSlNXcmFwcGVyT2JqZWN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE1N0Qy
M0U5MTg5MUIwNzcwMDMxQzdGQSAvKiBKU0dsb2JhbE9iamVjdERlYnVnZ2VyQWdlbnQuY3BwIGlu
IFNvdXJjZXMgKi8sCkBAIC02MzIyLDYgKzYzNDksNyBAQAogCQkJCUMyMjU0OTQzMTVGN0RCQUEw
MDY1RTg5OCAvKiBTbG90VmlzaXRvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5MzMwNDAyQzBF
NkE3NjQwMDA3ODZFNkEgLyogU21hbGxTdHJpbmdzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBG
OEYyQjlFMTczMDZDOEQwMDdEQkRBNSAvKiBTb3VyY2VDb2RlLmNwcCBpbiBTb3VyY2VzICovLAor
CQkJCTBGMkZDQ0ZCMThBNjAwNzAwMDFBMjdGOCAvKiBERkdTYWZlcG9pbnQuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQTVGRDAwNzkxODlCMDUxMDAwNjMzMjMxIC8qIENvbnNvbGVNZXNzYWdlLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTBGNDkzQUZBMTZEMENBRDMwMDg0NTA4QiAvKiBTb3VyY2VQ
cm92aWRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFNDlEQzE2QjEyRUYyOTNFMDAxODRBMUYg
LyogU291cmNlUHJvdmlkZXJDYWNoZS5jcHAgaW4gU291cmNlcyAqLywKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTGlua0J1ZmZlci5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9MaW5rQnVmZmVyLmNwcAkocmV2aXNpb24gMTYz
NzUyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9MaW5rQnVmZmVyLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMzAsNiArMzAsNyBAQAogCiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgi
CiAjaW5jbHVkZSAiSklUQ29kZS5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRl
ICJPcHRpb25zLmgiCiAjaW5jbHVkZSAiVk0uaCIKICNpbmNsdWRlIDx3dGYvQ29tcGlsYXRpb25U
aHJlYWQuaD4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9BcnJheVByb2Zp
bGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9BcnJh
eVByb2ZpbGUuY3BwCShyZXZpc2lvbiAxNjM3NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvQXJyYXlQcm9maWxlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcsNyBA
QAogI2luY2x1ZGUgIkFycmF5UHJvZmlsZS5oIgogCiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgiCisj
aW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgPHd0Zi9Db21tYVByaW50ZXIuaD4KICNp
bmNsdWRlIDx3dGYvU3RyaW5nRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL1N0cmluZ1ByaW50U3Ry
ZWFtLmg+CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVMaXZl
bmVzc0FuYWx5c2lzSW5saW5lcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9CeXRlY29kZUxpdmVuZXNzQW5hbHlzaXNJbmxpbmVzLmgJKHJldmlzaW9uIDE2
Mzc1MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUxpdmVuZXNz
QW5hbHlzaXNJbmxpbmVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2lu
Y2x1ZGUgIkJ5dGVjb2RlTGl2ZW5lc3NBbmFseXNpcy5oIgogI2luY2x1ZGUgIkNvZGVCbG9jay5o
IgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCShyZXZpc2lvbiAx
NjM3NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgIkRGR0NhcGFiaWxpdGll
cy5oIgogI2luY2x1ZGUgIkRGR0NvbW1vbi5oIgogI2luY2x1ZGUgIkRGR0RyaXZlci5oIgorI2lu
Y2x1ZGUgIkRGR0pJVENvZGUuaCIKICNpbmNsdWRlICJERkdOb2RlLmgiCiAjaW5jbHVkZSAiREZH
V29ya2xpc3QuaCIKICNpbmNsdWRlICJEZWJ1Z2dlci5oIgpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suaAkocmV2aXNpb24gMTYzNzUyKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5oCSh3b3JraW5nIGNvcHkpCkBAIC01
Niw3ICs1Niw2IEBACiAjaW5jbHVkZSAiSGFuZGxlckluZm8uaCIKICNpbmNsdWRlICJPYmplY3RB
bGxvY2F0aW9uUHJvZmlsZS5oIgogI2luY2x1ZGUgIk9wdGlvbnMuaCIKLSNpbmNsdWRlICJPcGVy
YXRpb25zLmgiCiAjaW5jbHVkZSAiUHV0UHJvcGVydHlTbG90LmgiCiAjaW5jbHVkZSAiSW5zdHJ1
Y3Rpb24uaCIKICNpbmNsdWRlICJKSVRDb2RlLmgiCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvQ29kZUJsb2NrSmV0dGlzb25pbmdXYXRjaHBvaW50LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrSmV0dGlzb25pbmdX
YXRjaHBvaW50LmNwcAkocmV2aXNpb24gMTYzNzUyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL0NvZGVCbG9ja0pldHRpc29uaW5nV2F0Y2hwb2ludC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkNvZGVCbG9jay5oIgogI2luY2x1ZGUg
IkRGR0NvbW1vbi5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7
CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Qcm9maWxlZENvZGVCbG9j
a0pldHRpc29uaW5nV2F0Y2hwb2ludC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL1Byb2ZpbGVkQ29kZUJsb2NrSmV0dGlzb25pbmdXYXRjaHBvaW50LmNw
cAkocmV2aXNpb24gMTYzNzUyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1By
b2ZpbGVkQ29kZUJsb2NrSmV0dGlzb25pbmdXYXRjaHBvaW50LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkNvZGVCbG9jay5oIgogI2luY2x1ZGUgIkRGR0Nv
bW1vbi5oIgogI2luY2x1ZGUgIkRGR0V4aXRQcm9maWxlLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9u
cy5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Rl
YnVnZ2VyL0RlYnVnZ2VyQ2FsbEZyYW1lLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJDYWxsRnJhbWUuY3BwCShyZXZpc2lvbiAxNjM3NTIp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJDYWxsRnJhbWUuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0yOSw3ICsyOSw2IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAj
aW5jbHVkZSAiRGVidWdnZXJDYWxsRnJhbWUuaCIKIAotI2luY2x1ZGUgIkNhbGxGcmFtZUlubGlu
ZXMuaCIKICNpbmNsdWRlICJDb2RlQmxvY2suaCIKICNpbmNsdWRlICJJbnRlcnByZXRlci5oIgog
I2luY2x1ZGUgIkpTQWN0aXZhdGlvbi5oIgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdEZXNpcmVkVHJhbnNpdGlvbnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHRGVzaXJlZFRyYW5zaXRpb25zLmNwcAkocmV2aXNpb24gMTYzNzUyKQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEZXNpcmVkVHJhbnNpdGlvbnMuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0zMSw2ICszMSw3IEBACiAKICNpbmNsdWRlICJDb2RlQmxvY2suaCIK
ICNpbmNsdWRlICJERkdDb21tb25EYXRhLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiBu
YW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHRHJpdmVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0RyaXZlci5jcHAJKHJldmlzaW9uIDE2Mzc1MikKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHRHJpdmVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTIxLDcgKzEyMSw3
IEBAIHN0YXRpYyBDb21waWxhdGlvblJlc3VsdCBjb21waWxlSW1wbCgKICAgICAgICAgcmV0dXJu
IENvbXBpbGF0aW9uRGVmZXJyZWQ7CiAgICAgfQogICAgIAotICAgIHBsYW4tPmNvbXBpbGVJblRo
cmVhZCgqdm0uZGZnU3RhdGUpOworICAgIHBsYW4tPmNvbXBpbGVJblRocmVhZCgqdm0uZGZnU3Rh
dGUsIDApOwogICAgIHJldHVybiBwbGFuLT5maW5hbGl6ZVdpdGhvdXROb3RpZnlpbmdDYWxsYmFj
aygpOwogfQogI2Vsc2UgLy8gRU5BQkxFKERGR19KSVQpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0dyYXBoLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0dyYXBoLmNwcAkocmV2aXNpb24gMTYzNzUyKQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdHcmFwaC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc5MCw2ICs3OTAsNTkg
QEAgSlNBcnJheUJ1ZmZlclZpZXcqIEdyYXBoOjp0cnlHZXRGb2xkYWJsZQogICAgIHJldHVybiB0
cnlHZXRGb2xkYWJsZVZpZXcoY2hpbGQobm9kZSwgMCkubm9kZSgpLCBub2RlLT5hcnJheU1vZGUo
KSk7CiB9CiAKK3ZvaWQgR3JhcGg6OnZpc2l0Q2hpbGRyZW4oU2xvdFZpc2l0b3ImIHZpc2l0b3Ip
Cit7CisgICAgZm9yIChCbG9ja0luZGV4IGJsb2NrSW5kZXggPSBudW1CbG9ja3MoKTsgYmxvY2tJ
bmRleC0tOykgeworICAgICAgICBCYXNpY0Jsb2NrKiBibG9jayA9IHRoaXMtPmJsb2NrKGJsb2Nr
SW5kZXgpOworICAgICAgICBpZiAoIWJsb2NrKQorICAgICAgICAgICAgY29udGludWU7CisgICAg
ICAgIAorICAgICAgICBmb3IgKHVuc2lnbmVkIG5vZGVJbmRleCA9IDA7IG5vZGVJbmRleCA8IGJs
b2NrLT5zaXplKCk7ICsrbm9kZUluZGV4KSB7CisgICAgICAgICAgICBOb2RlKiBub2RlID0gYmxv
Y2stPmF0KG5vZGVJbmRleCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHN3aXRjaCAobm9k
ZS0+b3AoKSkgeworICAgICAgICAgICAgY2FzZSBKU0NvbnN0YW50OgorICAgICAgICAgICAgY2Fz
ZSBXZWFrSlNDb25zdGFudDoKKyAgICAgICAgICAgICAgICB2aXNpdG9yLmFwcGVuZFVuYmFycmll
cmVkUmVhZE9ubHlWYWx1ZSh2YWx1ZU9mSlNDb25zdGFudChub2RlKSk7CisgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICBjYXNlIENoZWNrRnVuY3Rp
b246CisgICAgICAgICAgICAgICAgdmlzaXRvci5hcHBlbmRVbmJhcnJpZXJlZFJlYWRPbmx5UG9p
bnRlcihub2RlLT5mdW5jdGlvbigpKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
ICAgICAgICAKKyAgICAgICAgICAgIGNhc2UgQ2hlY2tFeGVjdXRhYmxlOgorICAgICAgICAgICAg
ICAgIHZpc2l0b3IuYXBwZW5kVW5iYXJyaWVyZWRSZWFkT25seVBvaW50ZXIobm9kZS0+ZXhlY3V0
YWJsZSgpKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAKKyAgICAg
ICAgICAgIGNhc2UgQ2hlY2tTdHJ1Y3R1cmU6CisgICAgICAgICAgICAgICAgZm9yICh1bnNpZ25l
ZCBpID0gbm9kZS0+c3RydWN0dXJlU2V0KCkuc2l6ZSgpOyBpLS07KQorICAgICAgICAgICAgICAg
ICAgICB2aXNpdG9yLmFwcGVuZFVuYmFycmllcmVkUmVhZE9ubHlQb2ludGVyKG5vZGUtPnN0cnVj
dHVyZVNldCgpW2ldKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAK
KyAgICAgICAgICAgIGNhc2UgU3RydWN0dXJlVHJhbnNpdGlvbldhdGNocG9pbnQ6CisgICAgICAg
ICAgICBjYXNlIE5ld09iamVjdDoKKyAgICAgICAgICAgIGNhc2UgQXJyYXlpZnlUb1N0cnVjdHVy
ZToKKyAgICAgICAgICAgIGNhc2UgTmV3U3RyaW5nT2JqZWN0OgorICAgICAgICAgICAgICAgIHZp
c2l0b3IuYXBwZW5kVW5iYXJyaWVyZWRSZWFkT25seVBvaW50ZXIobm9kZS0+c3RydWN0dXJlKCkp
OworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAg
Y2FzZSBQdXRTdHJ1Y3R1cmU6CisgICAgICAgICAgICBjYXNlIFBoYW50b21QdXRTdHJ1Y3R1cmU6
CisgICAgICAgICAgICBjYXNlIEFsbG9jYXRlUHJvcGVydHlTdG9yYWdlOgorICAgICAgICAgICAg
Y2FzZSBSZWFsbG9jYXRlUHJvcGVydHlTdG9yYWdlOgorICAgICAgICAgICAgICAgIHZpc2l0b3Iu
YXBwZW5kVW5iYXJyaWVyZWRSZWFkT25seVBvaW50ZXIoCisgICAgICAgICAgICAgICAgICAgIG5v
ZGUtPnN0cnVjdHVyZVRyYW5zaXRpb25EYXRhKCkucHJldmlvdXNTdHJ1Y3R1cmUpOworICAgICAg
ICAgICAgICAgIHZpc2l0b3IuYXBwZW5kVW5iYXJyaWVyZWRSZWFkT25seVBvaW50ZXIoCisgICAg
ICAgICAgICAgICAgICAgIG5vZGUtPnN0cnVjdHVyZVRyYW5zaXRpb25EYXRhKCkubmV3U3RydWN0
dXJlKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAg
ICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAg
ICAgIH0KKyAgICB9Cit9CisKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpERkcKIAogI2VuZGlmCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5oCShyZXZpc2lvbiAxNjM3NTIpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmgJKHdvcmtpbmcgY29weSkKQEAg
LTQwLDYgKzQwLDcgQEAKICNpbmNsdWRlICJERkdOb2RlLmgiCiAjaW5jbHVkZSAiREZHTm9kZUFs
bG9jYXRvci5oIgogI2luY2x1ZGUgIkRGR1BsYW4uaCIKKyNpbmNsdWRlICJERkdTY2FubmFibGUu
aCIKICNpbmNsdWRlICJERkdWYXJpYWRpY0Z1bmN0aW9uLmgiCiAjaW5jbHVkZSAiSW5saW5lQ2Fs
bEZyYW1lU2V0LmgiCiAjaW5jbHVkZSAiSlNTdGFjay5oIgpAQCAtNzgsNyArNzksNyBAQCBlbnVt
IEFkZFNwZWN1bGF0aW9uTW9kZSB7CiAvLwogLy8gVGhlIG9yZGVyIG1heSBiZSBzaWduaWZpY2Fu
dCBmb3Igbm9kZXMgd2l0aCBzaWRlLWVmZmVjdHMgKHByb3BlcnR5IGFjY2Vzc2VzLCB2YWx1ZSBj
b252ZXJzaW9ucykuCiAvLyBOb2RlcyB0aGF0IGFyZSAnZGVhZCcgcmVtYWluIGluIHRoZSB2ZWN0
b3Igd2l0aCByZWZDb3VudCAwLgotY2xhc3MgR3JhcGggeworY2xhc3MgR3JhcGggOiBwdWJsaWMg
dmlydHVhbCBTY2FubmFibGUgewogcHVibGljOgogICAgIEdyYXBoKFZNJiwgUGxhbiYsIExvbmdM
aXZlZFN0YXRlJik7CiAgICAgfkdyYXBoKCk7CkBAIC03OTksNiArODAwLDggQEAgcHVibGljOgog
ICAgIEpTQXJyYXlCdWZmZXJWaWV3KiB0cnlHZXRGb2xkYWJsZVZpZXcoTm9kZSosIEFycmF5TW9k
ZSk7CiAgICAgSlNBcnJheUJ1ZmZlclZpZXcqIHRyeUdldEZvbGRhYmxlVmlld0ZvckNoaWxkMShO
b2RlKik7CiAgICAgCisgICAgdmlydHVhbCB2b2lkIHZpc2l0Q2hpbGRyZW4oU2xvdFZpc2l0b3Im
KSBvdmVycmlkZTsKKyAgICAKICAgICBWTSYgbV92bTsKICAgICBQbGFuJiBtX3BsYW47CiAgICAg
Q29kZUJsb2NrKiBtX2NvZGVCbG9jazsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHR3JhcGhTYWZlcG9pbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHR3JhcGhTYWZlcG9pbnQuY3BwCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdHcmFwaFNhZmVwb2ludC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAs
MCArMSw0NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiREZHR3JhcGhTYWZlcG9pbnQuaCIKKwor
I2lmIEVOQUJMRShERkdfSklUKQorCisjaW5jbHVkZSAiREZHR3JhcGguaCIKKworbmFtZXNwYWNl
IEpTQyB7IG5hbWVzcGFjZSBERkcgeworCitHcmFwaFNhZmVwb2ludDo6R3JhcGhTYWZlcG9pbnQo
R3JhcGgmIGdyYXBoKQorICAgIDogbV9zYWZlcG9pbnQoZ3JhcGgubV9wbGFuKQoreworICAgIG1f
c2FmZXBvaW50LmFkZCgmZ3JhcGgpOworICAgIG1fc2FmZXBvaW50LmJlZ2luKCk7Cit9CisKK0dy
YXBoU2FmZXBvaW50Ojp+R3JhcGhTYWZlcG9pbnQoKSB7IH0KKworfSB9IC8vIG5hbWVzcGFjZSBK
U0M6OkRGRworCisjZW5kaWYgLy8gRU5BQkxFKERGR19KSVQpCisKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHR3JhcGhTYWZlcG9pbnQuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoU2FmZXBvaW50LmgJKHJldmlzaW9uIDApCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoU2FmZXBvaW50LmgJKHdvcmtpbmcgY29w
eSkKQEAgLTAsMCArMSw1MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LiAKKyAqLworCisjaWZuZGVmIERGR0dyYXBoU2FmZXBvaW50X2gKKyNkZWZpbmUgREZHR3JhcGhT
YWZlcG9pbnRfaAorCisjaWYgRU5BQkxFKERGR19KSVQpCisKKyNpbmNsdWRlICJERkdTYWZlcG9p
bnQuaCIKKworbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgeworCitjbGFzcyBHcmFwaDsK
KworY2xhc3MgR3JhcGhTYWZlcG9pbnQgeworcHVibGljOgorICAgIEdyYXBoU2FmZXBvaW50KEdy
YXBoJik7CisgICAgfkdyYXBoU2FmZXBvaW50KCk7CisgICAgCitwcml2YXRlOgorICAgIFNhZmVw
b2ludCBtX3NhZmVwb2ludDsKK307CisKK30gfSAvLyBuYW1lc3BhY2UgSlNDOjpERkcKKworI2Vu
ZGlmIC8vIEVOQUJMRShERkdfSklUKQorCisjZW5kaWYgLy8gREZHR3JhcGhTYWZlcG9pbnRfaAor
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVENvZGUuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklUQ29kZS5jcHAJKHJldmlzaW9u
IDE2Mzc1MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklUQ29kZS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTI5LDYgKzI5LDcgQEAKICNpZiBFTkFCTEUoREZHX0pJVCkKIAogI2lu
Y2x1ZGUgIkNvZGVCbG9jay5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNl
IEpTQyB7IG5hbWVzcGFjZSBERkcgewogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0pJVENvbXBpbGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0pJVENvbXBpbGVyLmNwcAkocmV2aXNpb24gMTYzNzUyKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdKSVRDb21waWxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQxLDkg
KzQxLDEwIEBACiAjaW5jbHVkZSAiREZHU3BlY3VsYXRpdmVKSVQuaCIKICNpbmNsdWRlICJERkdU
aHVua3MuaCIKICNpbmNsdWRlICJKU0NKU1ZhbHVlSW5saW5lcy5oIgorI2luY2x1ZGUgIkxpbmtC
dWZmZXIuaCIKICNpbmNsdWRlICJNYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbC5oIgorI2lu
Y2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJWTS5oIgotI2luY2x1ZGUgIkxpbmtCdWZm
ZXIuaCIKIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgewogCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVENvbXBpbGVyLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb21waWxlci5oCShyZXZpc2lvbiAxNjM3NTIpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVENvbXBpbGVyLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTI5LDcgKzI5LDYgQEAKICNpZiBFTkFCTEUoREZHX0pJVCkKIAogI2luY2x1ZGUgIkND
YWxsSGVscGVycy5oIgotI2luY2x1ZGUgIkNhbGxGcmFtZUlubGluZXMuaCIKICNpbmNsdWRlICJD
b2RlQmxvY2suaCIKICNpbmNsdWRlICJERkdEaXNhc3NlbWJsZXIuaCIKICNpbmNsdWRlICJERkdH
cmFwaC5oIgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0Q29tcGls
ZXJDb21tb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
T1NSRXhpdENvbXBpbGVyQ29tbW9uLmNwcAkocmV2aXNpb24gMTYzNzUyKQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0Q29tcGlsZXJDb21tb24uY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0yOSw2ICsyOSw3IEBACiAjaWYgRU5BQkxFKERGR19KSVQpCiAKICNpbmNsdWRlICJB
cmd1bWVudHMuaCIKKyNpbmNsdWRlICJERkdKSVRDb2RlLmgiCiAjaW5jbHVkZSAiREZHT3BlcmF0
aW9ucy5oIgogI2luY2x1ZGUgIkpJVC5oIgogI2luY2x1ZGUgIkpTQ0pTVmFsdWVJbmxpbmVzLmgi
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAJKHJl
dmlzaW9uIDE2Mzc1MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9u
cy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJDb21tb25T
bG93UGF0aHMuaCIKICNpbmNsdWRlICJDb3BpZWRTcGFjZUlubGluZXMuaCIKICNpbmNsdWRlICJE
RkdEcml2ZXIuaCIKKyNpbmNsdWRlICJERkdKSVRDb2RlLmgiCiAjaW5jbHVkZSAiREZHT1NSRXhp
dC5oIgogI2luY2x1ZGUgIkRGR1RodW5rcy5oIgogI2luY2x1ZGUgIkRGR1RvRlRMRGVmZXJyZWRD
b21waWxhdGlvbkNhbGxiYWNrLmgiCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R09wZXJhdGlvbnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R09wZXJhdGlvbnMuaAkocmV2aXNpb24gMTYzNzUyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdPcGVyYXRpb25zLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgot
ICogQ29weXJpZ2h0IChDKSAyMDExLCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMSwgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI4LDcgKzI4
LDYgQEAKIAogI2lmIEVOQUJMRShERkdfSklUKQogCi0jaW5jbHVkZSAiREZHSklUQ29tcGlsZXIu
aCIKICNpbmNsdWRlICJKSVRPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiUHV0S2luZC5oIgogCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1BsYW4uY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUGxhbi5jcHAJKHJldmlzaW9uIDE2Mzc1MikK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUGxhbi5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTQxLDYgKzQxLDcgQEAKICNpbmNsdWRlICJERkdGYWlsZWRGaW5hbGl6ZXIuaCIKICNpbmNs
dWRlICJERkdGbHVzaExpdmVuZXNzQW5hbHlzaXNQaGFzZS5oIgogI2luY2x1ZGUgIkRGR0ZpeHVw
UGhhc2UuaCIKKyNpbmNsdWRlICJERkdHcmFwaFNhZmVwb2ludC5oIgogI2luY2x1ZGUgIkRGR0lu
dmFsaWRhdGlvblBvaW50SW5qZWN0aW9uUGhhc2UuaCIKICNpbmNsdWRlICJERkdKSVRDb21waWxl
ci5oIgogI2luY2x1ZGUgIkRGR0xJQ01QaGFzZS5oIgpAQCAtMTM1LDggKzEzNiwxMCBAQCBib29s
IFBsYW46OnJlcG9ydENvbXBpbGVUaW1lcygpIGNvbnN0CiAgICAgICAgIHx8IChPcHRpb25zOjpy
ZXBvcnRGVExDb21waWxlVGltZXMoKSAmJiBpc0ZUTChtb2RlKSk7CiB9CiAKLXZvaWQgUGxhbjo6
Y29tcGlsZUluVGhyZWFkKExvbmdMaXZlZFN0YXRlJiBsb25nTGl2ZWRTdGF0ZSkKK3ZvaWQgUGxh
bjo6Y29tcGlsZUluVGhyZWFkKExvbmdMaXZlZFN0YXRlJiBsb25nTGl2ZWRTdGF0ZSwgVGhyZWFk
RGF0YSogdGhyZWFkRGF0YSkKIHsKKyAgICB0aGlzLT50aHJlYWREYXRhID0gdGhyZWFkRGF0YTsK
KyAgICAKICAgICBkb3VibGUgYmVmb3JlID0gMDsKICAgICBpZiAocmVwb3J0Q29tcGlsZVRpbWVz
KCkpCiAgICAgICAgIGJlZm9yZSA9IGN1cnJlbnRUaW1lTVMoKTsKQEAgLTMxMywxMSArMzE2LDE0
IEBAIFBsYW46OkNvbXBpbGF0aW9uUGF0aCBQbGFuOjpjb21waWxlSW5UaHIKICAgICAgICAgCiAg
ICAgICAgIGR1bXBBbmRWZXJpZnlHcmFwaChkZmcsICJHcmFwaCBqdXN0IGJlZm9yZSBGVEwgbG93
ZXJpbmc6Iik7CiAgICAgICAgIAotICAgICAgICBpbml0aWFsaXplTExWTSgpOwotICAgICAgICAK
KyAgICAgICAgeworICAgICAgICAgICAgR3JhcGhTYWZlcG9pbnQgc2FmZXBvaW50KGRmZyk7Cisg
ICAgICAgICAgICBpbml0aWFsaXplTExWTSgpOworICAgICAgICB9CisgICAgICAgICAgICAKICAg
ICAgICAgRlRMOjpTdGF0ZSBzdGF0ZShkZmcpOwogICAgICAgICBGVEw6Omxvd2VyREZHVG9MTFZN
KHN0YXRlKTsKLSAgICAgICAgCisgICAgICAgICAgICAKICAgICAgICAgaWYgKHJlcG9ydENvbXBp
bGVUaW1lcygpKQogICAgICAgICAgICAgYmVmb3JlRlRMID0gY3VycmVudFRpbWVNUygpOwogICAg
ICAgICAKQEAgLTMyNyw3ICszMzMsNyBAQCBQbGFuOjpDb21waWxhdGlvblBhdGggUGxhbjo6Y29t
cGlsZUluVGhyCiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIEZUTDo6Y29tcGlsZShzdGF0
ZSk7Ci0KKyAgICAgICAgICAgIAogICAgICAgICBpZiAoT3B0aW9uczo6bGx2bUFsd2F5c0ZhaWxz
QmVmb3JlTGluaygpKSB7CiAgICAgICAgICAgICBGVEw6OmZhaWwoc3RhdGUpOwogICAgICAgICAg
ICAgcmV0dXJuIEZUTFBhdGg7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Bs
YW4uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1BsYW4uaAko
cmV2aXNpb24gMTYzNzUyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQbGFuLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTUyLDYgKzUyLDcgQEAgY2xhc3MgU2xvdFZpc2l0b3I7CiBuYW1l
c3BhY2UgREZHIHsKIAogY2xhc3MgTG9uZ0xpdmVkU3RhdGU7CitjbGFzcyBUaHJlYWREYXRhOwog
CiAjaWYgRU5BQkxFKERGR19KSVQpCiAKQEAgLTYyLDcgKzYzLDcgQEAgc3RydWN0IFBsYW4gOiBw
dWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZQogICAgICAgICBjb25zdCBPcGVyYW5kczxKU1ZhbHVl
PiYgbXVzdEhhbmRsZVZhbHVlcyk7CiAgICAgflBsYW4oKTsKICAgICAKLSAgICB2b2lkIGNvbXBp
bGVJblRocmVhZChMb25nTGl2ZWRTdGF0ZSYpOworICAgIHZvaWQgY29tcGlsZUluVGhyZWFkKExv
bmdMaXZlZFN0YXRlJiwgVGhyZWFkRGF0YSopOwogICAgIAogICAgIENvbXBpbGF0aW9uUmVzdWx0
IGZpbmFsaXplV2l0aG91dE5vdGlmeWluZ0NhbGxiYWNrKCk7CiAgICAgdm9pZCBmaW5hbGl6ZUFu
ZE5vdGlmeUNhbGxiYWNrKCk7CkBAIC03OSw2ICs4MCw4IEBAIHN0cnVjdCBQbGFuIDogcHVibGlj
IFRocmVhZFNhZmVSZWZDb3VudGUKICAgICBDb21waWxhdGlvbk1vZGUgbW9kZTsKICAgICBjb25z
dCB1bnNpZ25lZCBvc3JFbnRyeUJ5dGVjb2RlSW5kZXg7CiAgICAgT3BlcmFuZHM8SlNWYWx1ZT4g
bXVzdEhhbmRsZVZhbHVlczsKKyAgICAKKyAgICBUaHJlYWREYXRhKiB0aHJlYWREYXRhOwogCiAg
ICAgUmVmUHRyPFByb2ZpbGVyOjpDb21waWxhdGlvbj4gY29tcGlsYXRpb247CiAKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZXBvaW50LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVwb2ludC5jcHAJKHJldmlzaW9uIDApCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVwb2ludC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTAsMCArMSw3NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiREZHU2FmZXBvaW50Lmgi
CisKKyNpZiBFTkFCTEUoREZHX0pJVCkKKworI2luY2x1ZGUgIkRGR1BsYW4uaCIKKyNpbmNsdWRl
ICJERkdTY2FubmFibGUuaCIKKyNpbmNsdWRlICJERkdUaHJlYWREYXRhLmgiCisKK25hbWVzcGFj
ZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKKworU2FmZXBvaW50OjpTYWZlcG9pbnQoUGxhbiYgcGxh
bikKKyAgICA6IG1fcGxhbihwbGFuKQorICAgICwgbV9kaWRDYWxsQmVnaW4oZmFsc2UpCit7Cit9
CisKK1NhZmVwb2ludDo6flNhZmVwb2ludCgpCit7CisgICAgUkVMRUFTRV9BU1NFUlQobV9kaWRD
YWxsQmVnaW4pOworICAgIGlmIChUaHJlYWREYXRhKiBkYXRhID0gbV9wbGFuLnRocmVhZERhdGEp
CisgICAgICAgIGRhdGEtPm1fcmlnaHRUb1J1bi5sb2NrKCk7Cit9CisKK3ZvaWQgU2FmZXBvaW50
OjphZGQoU2Nhbm5hYmxlKiBzY2FubmFibGUpCit7CisgICAgUkVMRUFTRV9BU1NFUlQoIW1fZGlk
Q2FsbEJlZ2luKTsKKyAgICBtX3NjYW5uYWJsZXMuYXBwZW5kKHNjYW5uYWJsZSk7Cit9CisKK3Zv
aWQgU2FmZXBvaW50OjpiZWdpbigpCit7CisgICAgUkVMRUFTRV9BU1NFUlQoIW1fZGlkQ2FsbEJl
Z2luKTsKKyAgICBpZiAoVGhyZWFkRGF0YSogZGF0YSA9IG1fcGxhbi50aHJlYWREYXRhKQorICAg
ICAgICBkYXRhLT5tX3JpZ2h0VG9SdW4udW5sb2NrKCk7CisgICAgbV9kaWRDYWxsQmVnaW4gPSB0
cnVlOworfQorCit2b2lkIFNhZmVwb2ludDo6dmlzaXRDaGlsZHJlbihTbG90VmlzaXRvciYgdmlz
aXRvcikKK3sKKyAgICBSRUxFQVNFX0FTU0VSVChtX2RpZENhbGxCZWdpbik7CisgICAgZm9yICh1
bnNpZ25lZCBpID0gbV9zY2FubmFibGVzLnNpemUoKTsgaS0tOykKKyAgICAgICAgbV9zY2FubmFi
bGVzW2ldLT52aXNpdENoaWxkcmVuKHZpc2l0b3IpOworfQorCit9IH0gLy8gbmFtZXNwYWNlIEpT
Qzo6REZHCisKKyNlbmRpZiAvLyBFTkFCTEUoREZHX0pJVCkKKwpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdTYWZlcG9pbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1NhZmVwb2ludC5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdTYWZlcG9pbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDY0
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisg
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5k
ZWYgREZHU2FmZXBvaW50X2gKKyNkZWZpbmUgREZHU2FmZXBvaW50X2gKKworI2lmIEVOQUJMRShE
RkdfSklUKQorCisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorCituYW1lc3BhY2UgSlNDIHsKKwor
Y2xhc3MgU2xvdFZpc2l0b3I7CisKK25hbWVzcGFjZSBERkcgeworCitjbGFzcyBTY2FubmFibGU7
CitzdHJ1Y3QgUGxhbjsKKworY2xhc3MgU2FmZXBvaW50IHsKK3B1YmxpYzoKKyAgICBTYWZlcG9p
bnQoUGxhbiYpOworICAgIH5TYWZlcG9pbnQoKTsKKyAgICAKKyAgICB2b2lkIGFkZChTY2FubmFi
bGUqKTsKKyAgICAKKyAgICB2b2lkIGJlZ2luKCk7CisgICAgCisgICAgdm9pZCB2aXNpdENoaWxk
cmVuKFNsb3RWaXNpdG9yJik7CisgICAgCitwcml2YXRlOgorICAgIFBsYW4mIG1fcGxhbjsKKyAg
ICBWZWN0b3I8U2Nhbm5hYmxlKj4gbV9zY2FubmFibGVzOworICAgIGJvb2wgbV9kaWRDYWxsQmVn
aW47Cit9OworCit9IH0gLy8gbmFtZXNwYWNlIEpTQzo6REZHCisKKyNlbmRpZiAvLyBFTkFCTEUo
REZHX0pJVCkKKworI2VuZGlmIC8vIERGR1NhZmVwb2ludF9oCisKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHU2Nhbm5hYmxlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdTY2FubmFibGUuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHU2Nhbm5hYmxlLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw1
MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgor
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZu
ZGVmIERGR1NjYW5uYWJsZV9oCisjZGVmaW5lIERGR1NjYW5uYWJsZV9oCisKKyNpZiBFTkFCTEUo
REZHX0pJVCkKKworbmFtZXNwYWNlIEpTQyB7CisKK2NsYXNzIFNsb3RWaXNpdG9yOworCituYW1l
c3BhY2UgREZHIHsKKworY2xhc3MgU2Nhbm5hYmxlIHsKK3B1YmxpYzoKKyAgICBTY2FubmFibGUo
KSB7IH0KKyAgICB2aXJ0dWFsIH5TY2FubmFibGUoKSB7IH0KKyAgICAKKyAgICB2aXJ0dWFsIHZv
aWQgdmlzaXRDaGlsZHJlbihTbG90VmlzaXRvciYpID0gMDsKK307CisKK30gfSAvLyBuYW1lc3Bh
Y2UgSlNDOjpERkcKKworI2VuZGlmIC8vIEVOQUJMRShERkdfSklUKQorCisjZW5kaWYgLy8gREZH
U2Nhbm5hYmxlX2gKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdUaHJlYWRE
YXRhLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1RocmVh
ZERhdGEuY3BwCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdU
aHJlYWREYXRhLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDQ3IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycn
IEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
KyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJERkdUaHJlYWREYXRhLmgiCisKKyNpZiBFTkFCTEUoREZHX0pJVCkKKworbmFt
ZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgeworCitUaHJlYWREYXRhOjpUaHJlYWREYXRhKFdv
cmtsaXN0KiB3b3JrbGlzdCkKKyAgICA6IG1fd29ya2xpc3Qod29ya2xpc3QpCisgICAgLCBtX2lk
ZW50aWZpZXIoMCkKKyAgICAsIG1fc2FmZXBvaW50KG51bGxwdHIpCit7Cit9CisKK1RocmVhZERh
dGE6On5UaHJlYWREYXRhKCkKK3sKK30KKworfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkRGRworCisj
ZW5kaWYgLy8gRU5BQkxFKERGR19KSVQpCisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHVGhyZWFkRGF0YS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHVGhyZWFkRGF0YS5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdUaHJlYWREYXRhLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw1OSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIERGR1Ro
cmVhZERhdGFfaAorI2RlZmluZSBERkdUaHJlYWREYXRhX2gKKworI2lmIEVOQUJMRShERkdfSklU
KQorCisjaW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgorI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmdQ
cmltaXRpdmVzLmg+CisKK25hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKKworY2xhc3Mg
U2FmZXBvaW50OworY2xhc3MgV29ya2xpc3Q7CisKK2NsYXNzIFRocmVhZERhdGEgeworcHVibGlj
OgorICAgIFRocmVhZERhdGEoV29ya2xpc3QqKTsKKyAgICB+VGhyZWFkRGF0YSgpOworICAgIAor
cHJpdmF0ZToKKyAgICBmcmllbmQgY2xhc3MgU2FmZXBvaW50OworICAgIGZyaWVuZCBjbGFzcyBX
b3JrbGlzdDsKKyAgICAKKyAgICBXb3JrbGlzdCogbV93b3JrbGlzdDsKKyAgICBUaHJlYWRJZGVu
dGlmaWVyIG1faWRlbnRpZmllcjsKKyAgICBNdXRleCBtX3JpZ2h0VG9SdW47CisgICAgU2FmZXBv
aW50KiBtX3NhZmVwb2ludDsKK307CisKK30gfSAvLyBuYW1lc3BhY2UgSlNDOjpERkcKKworI2Vu
ZGlmIC8vIEVOQUJMRShERkdfSklUKQorCisjZW5kaWYgLy8gREZHVGhyZWFkRGF0YV9oCisKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVGh1bmtzLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1RodW5rcy5jcHAJKHJldmlzaW9uIDE2Mzc1
MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVGh1bmtzLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkRGR09TUkV4aXRDb21waWxlci5oIgog
I2luY2x1ZGUgIkZQUkluZm8uaCIKICNpbmNsdWRlICJHUFJJbmZvLmgiCisjaW5jbHVkZSAiTGlu
a0J1ZmZlci5oIgogI2luY2x1ZGUgIk1hY3JvQXNzZW1ibGVyLmgiCiAKIG5hbWVzcGFjZSBKU0Mg
eyBuYW1lc3BhY2UgREZHIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHV29y
a2xpc3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHV29y
a2xpc3QuY3BwCShyZXZpc2lvbiAxNjM3NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1dvcmtsaXN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1
ZGUgIkNvZGVCbG9jay5oIgogI2luY2x1ZGUgIkRlZmVyR0MuaCIKICNpbmNsdWRlICJERkdMb25n
TGl2ZWRTdGF0ZS5oIgorI2luY2x1ZGUgIkRGR1NhZmVwb2ludC5oIgogI2luY2x1ZGUgPG11dGV4
PgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CkBAIC01Nyw4ICs1OCw3IEBAIHZv
aWQgV29ya2xpc3Q6OmZpbmlzaENyZWF0aW9uKHVuc2lnbmVkIG4KIHsKICAgICBSRUxFQVNFX0FT
U0VSVChudW1iZXJPZlRocmVhZHMpOwogICAgIGZvciAodW5zaWduZWQgaSA9IG51bWJlck9mVGhy
ZWFkczsgaS0tOykgewotICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8VGhyZWFkRGF0YT4gZGF0YSA9
IHN0ZDo6bWFrZV91bmlxdWU8VGhyZWFkRGF0YT4oKTsKLSAgICAgICAgZGF0YS0+bV93b3JrbGlz
dCA9IHRoaXM7CisgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxUaHJlYWREYXRhPiBkYXRhID0gc3Rk
OjptYWtlX3VuaXF1ZTxUaHJlYWREYXRhPih0aGlzKTsKICAgICAgICAgZGF0YS0+bV9pZGVudGlm
aWVyID0gY3JlYXRlVGhyZWFkKHRocmVhZEZ1bmN0aW9uLCBkYXRhLmdldCgpLCAiSlNDIENvbXBp
bGF0aW9uIFRocmVhZCIpOwogICAgICAgICBtX3RocmVhZHMuYXBwZW5kKHN0ZDo6bW92ZShkYXRh
KSk7CiAgICAgfQpAQCAtMjEwLDYgKzIxMCwxMiBAQCB2b2lkIFdvcmtsaXN0Ojp2aXNpdENoaWxk
cmVuKFNsb3RWaXNpdG9yCiAgICAgICAgIGl0ZXItPmtleS52aXNpdENoaWxkcmVuKGNvZGVCbG9j
a3MpOwogICAgICAgICBpdGVyLT52YWx1ZS0+dmlzaXRDaGlsZHJlbih2aXNpdG9yLCBjb2RlQmxv
Y2tzKTsKICAgICB9CisgICAgCisgICAgZm9yICh1bnNpZ25lZCBpID0gbV90aHJlYWRzLnNpemUo
KTsgaS0tOykgeworICAgICAgICBUaHJlYWREYXRhKiBkYXRhID0gbV90aHJlYWRzW2ldLmdldCgp
OworICAgICAgICBpZiAoU2FmZXBvaW50KiBzYWZlcG9pbnQgPSBkYXRhLT5tX3NhZmVwb2ludCkK
KyAgICAgICAgICAgIHNhZmVwb2ludC0+dmlzaXRDaGlsZHJlbih2aXNpdG9yKTsKKyAgICB9CiB9
CiAKIHNpemVfdCBXb3JrbGlzdDo6cXVldWVMZW5ndGgoKQpAQCAtMjY1LDcgKzI3MSw3IEBAIHZv
aWQgV29ya2xpc3Q6OnJ1blRocmVhZChUaHJlYWREYXRhKiBkYXQKICAgICAgICAgICAgIGlmIChP
cHRpb25zOjp2ZXJib3NlQ29tcGlsYXRpb25RdWV1ZSgpKQogICAgICAgICAgICAgICAgIGRhdGFM
b2coKnRoaXMsICI6IENvbXBpbGluZyAiLCBwbGFuLT5rZXkoKSwgIiBhc3luY2hyb25vdXNseVxu
Iik7CiAgICAgICAgIAotICAgICAgICAgICAgcGxhbi0+Y29tcGlsZUluVGhyZWFkKGxvbmdMaXZl
ZFN0YXRlKTsKKyAgICAgICAgICAgIHBsYW4tPmNvbXBpbGVJblRocmVhZChsb25nTGl2ZWRTdGF0
ZSwgZGF0YSk7CiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIHsKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHV29ya2xpc3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1dvcmtsaXN0LmgJKHJldmlzaW9uIDE2Mzc1MikKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHV29ya2xpc3QuaAkod29ya2luZyBjb3B5KQpAQCAtMzEs
NiArMzEsNyBAQAogI2lmIEVOQUJMRShERkdfSklUKQogCiAjaW5jbHVkZSAiREZHUGxhbi5oIgor
I2luY2x1ZGUgIkRGR1RocmVhZERhdGEuaCIKICNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KICNpbmNs
dWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgpAQCAtNzcs
MTIgKzc4LDYgQEAgcHVibGljOgogICAgIHZvaWQgZHVtcChQcmludFN0cmVhbSYpIGNvbnN0Owog
ICAgIAogcHJpdmF0ZToKLSAgICBzdHJ1Y3QgVGhyZWFkRGF0YSB7Ci0gICAgICAgIFdvcmtsaXN0
KiBtX3dvcmtsaXN0OwotICAgICAgICBUaHJlYWRJZGVudGlmaWVyIG1faWRlbnRpZmllcjsKLSAg
ICAgICAgTXV0ZXggbV9yaWdodFRvUnVuOwotICAgIH07Ci0gICAgCiAgICAgV29ya2xpc3QoKTsK
ICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKHVuc2lnbmVkIG51bWJlck9mVGhyZWFkcyk7CiAgICAg
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENvbXBpbGUuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ29tcGlsZS5jcHAJKHJldmlzaW9u
IDE2Mzc1MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ29tcGlsZS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJDb2RlQmxvY2tXaXRoSklU
VHlwZS5oIgogI2luY2x1ZGUgIkNDYWxsSGVscGVycy5oIgogI2luY2x1ZGUgIkRGR0NvbW1vbi5o
IgorI2luY2x1ZGUgIkRGR0dyYXBoU2FmZXBvaW50LmgiCiAjaW5jbHVkZSAiRGF0YVZpZXcuaCIK
ICNpbmNsdWRlICJEaXNhc3NlbWJsZXIuaCIKICNpbmNsdWRlICJGVExFeGl0VGh1bmtHZW5lcmF0
b3IuaCIKQEAgLTQ1Miw3MCArNDUzLDc0IEBAIHZvaWQgY29tcGlsZShTdGF0ZSYgc3RhdGUpCiB7
CiAgICAgY2hhciogZXJyb3IgPSAwOwogICAgIAotICAgIExMVk1NQ0pJVENvbXBpbGVyT3B0aW9u
cyBvcHRpb25zOwotICAgIGxsdm0tPkluaXRpYWxpemVNQ0pJVENvbXBpbGVyT3B0aW9ucygmb3B0
aW9ucywgc2l6ZW9mKG9wdGlvbnMpKTsKLSAgICBvcHRpb25zLk9wdExldmVsID0gT3B0aW9uczo6
bGx2bUJhY2tlbmRPcHRpbWl6YXRpb25MZXZlbCgpOwotICAgIG9wdGlvbnMuTm9GcmFtZVBvaW50
ZXJFbGltID0gdHJ1ZTsKLSAgICBpZiAoT3B0aW9uczo6dXNlTExWTVNtYWxsQ29kZU1vZGVsKCkp
Ci0gICAgICAgIG9wdGlvbnMuQ29kZU1vZGVsID0gTExWTUNvZGVNb2RlbFNtYWxsOwotICAgIG9w
dGlvbnMuRW5hYmxlRmFzdElTZWwgPSBPcHRpb25zOjplbmFibGVMTFZNRmFzdElTZWwoKTsKLSAg
ICBvcHRpb25zLk1DSk1NID0gbGx2bS0+Q3JlYXRlU2ltcGxlTUNKSVRNZW1vcnlNYW5hZ2VyKAot
ICAgICAgICAmc3RhdGUsIG1tQWxsb2NhdGVDb2RlU2VjdGlvbiwgbW1BbGxvY2F0ZURhdGFTZWN0
aW9uLCBtbUFwcGx5UGVybWlzc2lvbnMsIG1tRGVzdHJveSk7Ci0gICAgCi0gICAgTExWTUV4ZWN1
dGlvbkVuZ2luZVJlZiBlbmdpbmU7Ci0gICAgCi0gICAgaWYgKGxsdm0tPkNyZWF0ZU1DSklUQ29t
cGlsZXJGb3JNb2R1bGUoJmVuZ2luZSwgc3RhdGUubW9kdWxlLCAmb3B0aW9ucywgc2l6ZW9mKG9w
dGlvbnMpLCAmZXJyb3IpKSB7Ci0gICAgICAgIGRhdGFMb2coIkZBVEFMOiBDb3VsZCBub3QgY3Jl
YXRlIExMVk0gZXhlY3V0aW9uIGVuZ2luZTogIiwgZXJyb3IsICJcbiIpOwotICAgICAgICBDUkFT
SCgpOwotICAgIH0KLQotICAgIExMVk1QYXNzTWFuYWdlclJlZiBmdW5jdGlvblBhc3NlcyA9IDA7
Ci0gICAgTExWTVBhc3NNYW5hZ2VyUmVmIG1vZHVsZVBhc3NlczsKLSAgICAKLSAgICBpZiAoT3B0
aW9uczo6bGx2bVNpbXBsZU9wdCgpKSB7Ci0gICAgICAgIG1vZHVsZVBhc3NlcyA9IGxsdm0tPkNy
ZWF0ZVBhc3NNYW5hZ2VyKCk7Ci0gICAgICAgIGxsdm0tPkFkZFRhcmdldERhdGEobGx2bS0+R2V0
RXhlY3V0aW9uRW5naW5lVGFyZ2V0RGF0YShlbmdpbmUpLCBtb2R1bGVQYXNzZXMpOwotICAgICAg
ICBsbHZtLT5BZGRQcm9tb3RlTWVtb3J5VG9SZWdpc3RlclBhc3MobW9kdWxlUGFzc2VzKTsKLSAg
ICAgICAgbGx2bS0+QWRkQ29uc3RhbnRQcm9wYWdhdGlvblBhc3MobW9kdWxlUGFzc2VzKTsKLSAg
ICAgICAgbGx2bS0+QWRkSW5zdHJ1Y3Rpb25Db21iaW5pbmdQYXNzKG1vZHVsZVBhc3Nlcyk7Ci0g
ICAgICAgIGxsdm0tPkFkZEJhc2ljQWxpYXNBbmFseXNpc1Bhc3MobW9kdWxlUGFzc2VzKTsKLSAg
ICAgICAgbGx2bS0+QWRkVHlwZUJhc2VkQWxpYXNBbmFseXNpc1Bhc3MobW9kdWxlUGFzc2VzKTsK
LSAgICAgICAgbGx2bS0+QWRkR1ZOUGFzcyhtb2R1bGVQYXNzZXMpOwotICAgICAgICBsbHZtLT5B
ZGRDRkdTaW1wbGlmaWNhdGlvblBhc3MobW9kdWxlUGFzc2VzKTsKLSAgICAgICAgbGx2bS0+UnVu
UGFzc01hbmFnZXIobW9kdWxlUGFzc2VzLCBzdGF0ZS5tb2R1bGUpOwotICAgIH0gZWxzZSB7Ci0g
ICAgICAgIExMVk1QYXNzTWFuYWdlckJ1aWxkZXJSZWYgcGFzc0J1aWxkZXIgPSBsbHZtLT5QYXNz
TWFuYWdlckJ1aWxkZXJDcmVhdGUoKTsKLSAgICAgICAgbGx2bS0+UGFzc01hbmFnZXJCdWlsZGVy
U2V0T3B0TGV2ZWwocGFzc0J1aWxkZXIsIE9wdGlvbnM6Omxsdm1PcHRpbWl6YXRpb25MZXZlbCgp
KTsKLSAgICAgICAgbGx2bS0+UGFzc01hbmFnZXJCdWlsZGVyU2V0U2l6ZUxldmVsKHBhc3NCdWls
ZGVyLCBPcHRpb25zOjpsbHZtU2l6ZUxldmVsKCkpOwotICAgICAgICAKLSAgICAgICAgZnVuY3Rp
b25QYXNzZXMgPSBsbHZtLT5DcmVhdGVGdW5jdGlvblBhc3NNYW5hZ2VyRm9yTW9kdWxlKHN0YXRl
Lm1vZHVsZSk7Ci0gICAgICAgIG1vZHVsZVBhc3NlcyA9IGxsdm0tPkNyZWF0ZVBhc3NNYW5hZ2Vy
KCk7Ci0gICAgICAgIAotICAgICAgICBsbHZtLT5BZGRUYXJnZXREYXRhKGxsdm0tPkdldEV4ZWN1
dGlvbkVuZ2luZVRhcmdldERhdGEoZW5naW5lKSwgbW9kdWxlUGFzc2VzKTsKLSAgICAgICAgCi0g
ICAgICAgIGxsdm0tPlBhc3NNYW5hZ2VyQnVpbGRlclBvcHVsYXRlRnVuY3Rpb25QYXNzTWFuYWdl
cihwYXNzQnVpbGRlciwgZnVuY3Rpb25QYXNzZXMpOwotICAgICAgICBsbHZtLT5QYXNzTWFuYWdl
ckJ1aWxkZXJQb3B1bGF0ZU1vZHVsZVBhc3NNYW5hZ2VyKHBhc3NCdWlsZGVyLCBtb2R1bGVQYXNz
ZXMpOwotICAgICAgICAKLSAgICAgICAgbGx2bS0+UGFzc01hbmFnZXJCdWlsZGVyRGlzcG9zZShw
YXNzQnVpbGRlcik7Ci0gICAgICAgIAotICAgICAgICBsbHZtLT5Jbml0aWFsaXplRnVuY3Rpb25Q
YXNzTWFuYWdlcihmdW5jdGlvblBhc3Nlcyk7Ci0gICAgICAgIGZvciAoTFZhbHVlIGZ1bmN0aW9u
ID0gbGx2bS0+R2V0Rmlyc3RGdW5jdGlvbihzdGF0ZS5tb2R1bGUpOyBmdW5jdGlvbjsgZnVuY3Rp
b24gPSBsbHZtLT5HZXROZXh0RnVuY3Rpb24oZnVuY3Rpb24pKQotICAgICAgICAgICAgbGx2bS0+
UnVuRnVuY3Rpb25QYXNzTWFuYWdlcihmdW5jdGlvblBhc3NlcywgZnVuY3Rpb24pOwotICAgICAg
ICBsbHZtLT5GaW5hbGl6ZUZ1bmN0aW9uUGFzc01hbmFnZXIoZnVuY3Rpb25QYXNzZXMpOwotICAg
ICAgICAKLSAgICAgICAgbGx2bS0+UnVuUGFzc01hbmFnZXIobW9kdWxlUGFzc2VzLCBzdGF0ZS5t
b2R1bGUpOwotICAgIH0KLQotICAgIGlmIChERkc6OnNob3VsZFNob3dEaXNhc3NlbWJseSgpIHx8
IERGRzo6dmVyYm9zZUNvbXBpbGF0aW9uRW5hYmxlZCgpKQotICAgICAgICBzdGF0ZS5kdW1wU3Rh
dGUoImFmdGVyIG9wdGltaXphdGlvbiIpOwotICAgIAotICAgIC8vIEZJWE1FOiBOZWVkIHRvIGFk
ZCBzdXBwb3J0IGZvciB0aGUgY2FzZSB3aGVyZSBKSVQgbWVtb3J5IGFsbG9jYXRpb24gZmFpbGVk
LgotICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTM2MjAK
LSAgICBzdGF0ZS5nZW5lcmF0ZWRGdW5jdGlvbiA9IHJlaW50ZXJwcmV0X2Nhc3Q8R2VuZXJhdGVk
RnVuY3Rpb24+KGxsdm0tPkdldFBvaW50ZXJUb0dsb2JhbChlbmdpbmUsIHN0YXRlLmZ1bmN0aW9u
KSk7Ci0gICAgaWYgKGZ1bmN0aW9uUGFzc2VzKQotICAgICAgICBsbHZtLT5EaXNwb3NlUGFzc01h
bmFnZXIoZnVuY3Rpb25QYXNzZXMpOwotICAgIGxsdm0tPkRpc3Bvc2VQYXNzTWFuYWdlcihtb2R1
bGVQYXNzZXMpOwotICAgIGxsdm0tPkRpc3Bvc2VFeGVjdXRpb25FbmdpbmUoZW5naW5lKTsKKyAg
ICB7CisgICAgICAgIEdyYXBoU2FmZXBvaW50IHNhZmVwb2ludChzdGF0ZS5ncmFwaCk7CisgICAg
ICAgIAorICAgICAgICBMTFZNTUNKSVRDb21waWxlck9wdGlvbnMgb3B0aW9uczsKKyAgICAgICAg
bGx2bS0+SW5pdGlhbGl6ZU1DSklUQ29tcGlsZXJPcHRpb25zKCZvcHRpb25zLCBzaXplb2Yob3B0
aW9ucykpOworICAgICAgICBvcHRpb25zLk9wdExldmVsID0gT3B0aW9uczo6bGx2bUJhY2tlbmRP
cHRpbWl6YXRpb25MZXZlbCgpOworICAgICAgICBvcHRpb25zLk5vRnJhbWVQb2ludGVyRWxpbSA9
IHRydWU7CisgICAgICAgIGlmIChPcHRpb25zOjp1c2VMTFZNU21hbGxDb2RlTW9kZWwoKSkKKyAg
ICAgICAgICAgIG9wdGlvbnMuQ29kZU1vZGVsID0gTExWTUNvZGVNb2RlbFNtYWxsOworICAgICAg
ICBvcHRpb25zLkVuYWJsZUZhc3RJU2VsID0gT3B0aW9uczo6ZW5hYmxlTExWTUZhc3RJU2VsKCk7
CisgICAgICAgIG9wdGlvbnMuTUNKTU0gPSBsbHZtLT5DcmVhdGVTaW1wbGVNQ0pJVE1lbW9yeU1h
bmFnZXIoCisgICAgICAgICAgICAmc3RhdGUsIG1tQWxsb2NhdGVDb2RlU2VjdGlvbiwgbW1BbGxv
Y2F0ZURhdGFTZWN0aW9uLCBtbUFwcGx5UGVybWlzc2lvbnMsIG1tRGVzdHJveSk7CisgICAgCisg
ICAgICAgIExMVk1FeGVjdXRpb25FbmdpbmVSZWYgZW5naW5lOworICAgIAorICAgICAgICBpZiAo
bGx2bS0+Q3JlYXRlTUNKSVRDb21waWxlckZvck1vZHVsZSgmZW5naW5lLCBzdGF0ZS5tb2R1bGUs
ICZvcHRpb25zLCBzaXplb2Yob3B0aW9ucyksICZlcnJvcikpIHsKKyAgICAgICAgICAgIGRhdGFM
b2coIkZBVEFMOiBDb3VsZCBub3QgY3JlYXRlIExMVk0gZXhlY3V0aW9uIGVuZ2luZTogIiwgZXJy
b3IsICJcbiIpOworICAgICAgICAgICAgQ1JBU0goKTsKKyAgICAgICAgfQorCisgICAgICAgIExM
Vk1QYXNzTWFuYWdlclJlZiBmdW5jdGlvblBhc3NlcyA9IDA7CisgICAgICAgIExMVk1QYXNzTWFu
YWdlclJlZiBtb2R1bGVQYXNzZXM7CisgICAgCisgICAgICAgIGlmIChPcHRpb25zOjpsbHZtU2lt
cGxlT3B0KCkpIHsKKyAgICAgICAgICAgIG1vZHVsZVBhc3NlcyA9IGxsdm0tPkNyZWF0ZVBhc3NN
YW5hZ2VyKCk7CisgICAgICAgICAgICBsbHZtLT5BZGRUYXJnZXREYXRhKGxsdm0tPkdldEV4ZWN1
dGlvbkVuZ2luZVRhcmdldERhdGEoZW5naW5lKSwgbW9kdWxlUGFzc2VzKTsKKyAgICAgICAgICAg
IGxsdm0tPkFkZFByb21vdGVNZW1vcnlUb1JlZ2lzdGVyUGFzcyhtb2R1bGVQYXNzZXMpOworICAg
ICAgICAgICAgbGx2bS0+QWRkQ29uc3RhbnRQcm9wYWdhdGlvblBhc3MobW9kdWxlUGFzc2VzKTsK
KyAgICAgICAgICAgIGxsdm0tPkFkZEluc3RydWN0aW9uQ29tYmluaW5nUGFzcyhtb2R1bGVQYXNz
ZXMpOworICAgICAgICAgICAgbGx2bS0+QWRkQmFzaWNBbGlhc0FuYWx5c2lzUGFzcyhtb2R1bGVQ
YXNzZXMpOworICAgICAgICAgICAgbGx2bS0+QWRkVHlwZUJhc2VkQWxpYXNBbmFseXNpc1Bhc3Mo
bW9kdWxlUGFzc2VzKTsKKyAgICAgICAgICAgIGxsdm0tPkFkZEdWTlBhc3MobW9kdWxlUGFzc2Vz
KTsKKyAgICAgICAgICAgIGxsdm0tPkFkZENGR1NpbXBsaWZpY2F0aW9uUGFzcyhtb2R1bGVQYXNz
ZXMpOworICAgICAgICAgICAgbGx2bS0+UnVuUGFzc01hbmFnZXIobW9kdWxlUGFzc2VzLCBzdGF0
ZS5tb2R1bGUpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgTExWTVBhc3NNYW5hZ2Vy
QnVpbGRlclJlZiBwYXNzQnVpbGRlciA9IGxsdm0tPlBhc3NNYW5hZ2VyQnVpbGRlckNyZWF0ZSgp
OworICAgICAgICAgICAgbGx2bS0+UGFzc01hbmFnZXJCdWlsZGVyU2V0T3B0TGV2ZWwocGFzc0J1
aWxkZXIsIE9wdGlvbnM6Omxsdm1PcHRpbWl6YXRpb25MZXZlbCgpKTsKKyAgICAgICAgICAgIGxs
dm0tPlBhc3NNYW5hZ2VyQnVpbGRlclNldFNpemVMZXZlbChwYXNzQnVpbGRlciwgT3B0aW9uczo6
bGx2bVNpemVMZXZlbCgpKTsKKyAgICAgICAgCisgICAgICAgICAgICBmdW5jdGlvblBhc3NlcyA9
IGxsdm0tPkNyZWF0ZUZ1bmN0aW9uUGFzc01hbmFnZXJGb3JNb2R1bGUoc3RhdGUubW9kdWxlKTsK
KyAgICAgICAgICAgIG1vZHVsZVBhc3NlcyA9IGxsdm0tPkNyZWF0ZVBhc3NNYW5hZ2VyKCk7Cisg
ICAgICAgIAorICAgICAgICAgICAgbGx2bS0+QWRkVGFyZ2V0RGF0YShsbHZtLT5HZXRFeGVjdXRp
b25FbmdpbmVUYXJnZXREYXRhKGVuZ2luZSksIG1vZHVsZVBhc3Nlcyk7CisgICAgICAgIAorICAg
ICAgICAgICAgbGx2bS0+UGFzc01hbmFnZXJCdWlsZGVyUG9wdWxhdGVGdW5jdGlvblBhc3NNYW5h
Z2VyKHBhc3NCdWlsZGVyLCBmdW5jdGlvblBhc3Nlcyk7CisgICAgICAgICAgICBsbHZtLT5QYXNz
TWFuYWdlckJ1aWxkZXJQb3B1bGF0ZU1vZHVsZVBhc3NNYW5hZ2VyKHBhc3NCdWlsZGVyLCBtb2R1
bGVQYXNzZXMpOworICAgICAgICAKKyAgICAgICAgICAgIGxsdm0tPlBhc3NNYW5hZ2VyQnVpbGRl
ckRpc3Bvc2UocGFzc0J1aWxkZXIpOworICAgICAgICAKKyAgICAgICAgICAgIGxsdm0tPkluaXRp
YWxpemVGdW5jdGlvblBhc3NNYW5hZ2VyKGZ1bmN0aW9uUGFzc2VzKTsKKyAgICAgICAgICAgIGZv
ciAoTFZhbHVlIGZ1bmN0aW9uID0gbGx2bS0+R2V0Rmlyc3RGdW5jdGlvbihzdGF0ZS5tb2R1bGUp
OyBmdW5jdGlvbjsgZnVuY3Rpb24gPSBsbHZtLT5HZXROZXh0RnVuY3Rpb24oZnVuY3Rpb24pKQor
ICAgICAgICAgICAgICAgIGxsdm0tPlJ1bkZ1bmN0aW9uUGFzc01hbmFnZXIoZnVuY3Rpb25QYXNz
ZXMsIGZ1bmN0aW9uKTsKKyAgICAgICAgICAgIGxsdm0tPkZpbmFsaXplRnVuY3Rpb25QYXNzTWFu
YWdlcihmdW5jdGlvblBhc3Nlcyk7CisgICAgICAgIAorICAgICAgICAgICAgbGx2bS0+UnVuUGFz
c01hbmFnZXIobW9kdWxlUGFzc2VzLCBzdGF0ZS5tb2R1bGUpOworICAgICAgICB9CisKKyAgICAg
ICAgaWYgKERGRzo6c2hvdWxkU2hvd0Rpc2Fzc2VtYmx5KCkgfHwgREZHOjp2ZXJib3NlQ29tcGls
YXRpb25FbmFibGVkKCkpCisgICAgICAgICAgICBzdGF0ZS5kdW1wU3RhdGUoImFmdGVyIG9wdGlt
aXphdGlvbiIpOworICAgIAorICAgICAgICAvLyBGSVhNRTogTmVlZCB0byBhZGQgc3VwcG9ydCBm
b3IgdGhlIGNhc2Ugd2hlcmUgSklUIG1lbW9yeSBhbGxvY2F0aW9uIGZhaWxlZC4KKyAgICAgICAg
Ly8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMzYyMAorICAgICAg
ICBzdGF0ZS5nZW5lcmF0ZWRGdW5jdGlvbiA9IHJlaW50ZXJwcmV0X2Nhc3Q8R2VuZXJhdGVkRnVu
Y3Rpb24+KGxsdm0tPkdldFBvaW50ZXJUb0dsb2JhbChlbmdpbmUsIHN0YXRlLmZ1bmN0aW9uKSk7
CisgICAgICAgIGlmIChmdW5jdGlvblBhc3NlcykKKyAgICAgICAgICAgIGxsdm0tPkRpc3Bvc2VQ
YXNzTWFuYWdlcihmdW5jdGlvblBhc3Nlcyk7CisgICAgICAgIGxsdm0tPkRpc3Bvc2VQYXNzTWFu
YWdlcihtb2R1bGVQYXNzZXMpOworICAgICAgICBsbHZtLT5EaXNwb3NlRXhlY3V0aW9uRW5naW5l
KGVuZ2luZSk7CisgICAgfQogCiAgICAgaWYgKHNob3VsZFNob3dEaXNhc3NlbWJseSgpKSB7CiAg
ICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBzdGF0ZS5qaXRDb2RlLT5oYW5kbGVzKCku
c2l6ZSgpOyArK2kpIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTGluay5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMaW5rLmNwcAko
cmV2aXNpb24gMTYzNzUyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMaW5rLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMzAsNyArMzAsNiBAQAogCiAjaW5jbHVkZSAiQXJpdHlDaGVj
a0ZhaWxSZXR1cm5UaHVua3MuaCIKICNpbmNsdWRlICJDQ2FsbEhlbHBlcnMuaCIKLSNpbmNsdWRl
ICJDYWxsRnJhbWVJbmxpbmVzLmgiCiAjaW5jbHVkZSAiQ29kZUJsb2NrV2l0aEpJVFR5cGUuaCIK
ICNpbmNsdWRlICJERkdDb21tb24uaCIKICNpbmNsdWRlICJGVExKSVRDb2RlLmgiCkBAIC0zOCw2
ICszNyw3IEBACiAjaW5jbHVkZSAiSklUU3R1YnMuaCIKICNpbmNsdWRlICJMTFZNQVBJLmgiCiAj
aW5jbHVkZSAiTGlua0J1ZmZlci5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRl
ICJQcm9maWxlckNvbXBpbGF0aW9uLmgiCiAjaW5jbHVkZSAiVmlydHVhbFJlZ2lzdGVyLmgiCiAK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT1NSRXhpdENvbXBpbGVyLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE9TUkV4aXRDb21waWxl
ci5jcHAJKHJldmlzaW9uIDE2Mzc1MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRM
T1NSRXhpdENvbXBpbGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzQsNiArMzQsNyBAQAogI2lu
Y2x1ZGUgIkZUTEpJVENvZGUuaCIKICNpbmNsdWRlICJGVExPU1JFeGl0LmgiCiAjaW5jbHVkZSAi
RlRMU2F2ZVJlc3RvcmUuaCIKKyNpbmNsdWRlICJMaW5rQnVmZmVyLmgiCiAjaW5jbHVkZSAiTWF4
RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwuaCIKICNpbmNsdWRlICJPcGVyYW5kc0lubGluZXMu
aCIKICNpbmNsdWRlICJPcGVyYXRpb25zLmgiCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZnRsL0ZUTFNsb3dQYXRoQ2FsbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2Z0bC9GVExTbG93UGF0aENhbGwuY3BwCShyZXZpc2lvbiAxNjM3NTIpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZnRsL0ZUTFNsb3dQYXRoQ2FsbC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTI5LDkgKzI5LDkgQEAKICNpZiBFTkFCTEUoRlRMX0pJVCkKIAogI2luY2x1ZGUgIkNDYWxsSGVs
cGVycy5oIgotI2luY2x1ZGUgIkNhbGxGcmFtZUlubGluZXMuaCIKICNpbmNsdWRlICJGVExTdGF0
ZS5oIgogI2luY2x1ZGUgIkdQUkluZm8uaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAKIG5h
bWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgRlRMIHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2Z0bC9GVExUaHVua3MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9mdGwvRlRMVGh1bmtzLmNwcAkocmV2aXNpb24gMTYzNzUyKQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Z0bC9GVExUaHVua3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjcsNyArMTI3LDcg
QEAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIHNsb3dQYXRoQ2FsbFRodW5rRwogICAgIGppdC5wcmVz
ZXJ2ZVJldHVybkFkZHJlc3NBZnRlckNhbGwoR1BSSW5mbzo6bm9uQXJnR1BSMCk7CiAgICAgaml0
LnN0b3JlUHRyKEdQUkluZm86Om5vbkFyZ0dQUjAsIEFzc2VtYmx5SGVscGVyczo6QWRkcmVzcyhN
YWNyb0Fzc2VtYmxlcjo6c3RhY2tQb2ludGVyUmVnaXN0ZXIsIGtleS5vZmZzZXQoKSkpOwogICAg
IAotICAgIEpJVENvbXBpbGVyOjpDYWxsIGNhbGwgPSBqaXQuY2FsbCgpOworICAgIEFzc2VtYmx5
SGVscGVyczo6Q2FsbCBjYWxsID0gaml0LmNhbGwoKTsKIAogICAgIC8vIEZJWE1FOiBDU3RhY2sg
LSBOZWVkIHRvIGRvIHNvbWV0aGluZyBsaWtlIGppdC5lbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwog
ICAgIGppdC5sb2FkUHRyKEFzc2VtYmx5SGVscGVyczo6QWRkcmVzcyhNYWNyb0Fzc2VtYmxlcjo6
c3RhY2tQb2ludGVyUmVnaXN0ZXIsIGtleS5vZmZzZXQoKSksIEdQUkluZm86Om5vblByZXNlcnZl
ZE5vblJldHVybkdQUik7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TbG90Vmlz
aXRvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1Nsb3RWaXNp
dG9yLmgJKHJldmlzaW9uIDE2Mzc1MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1Ns
b3RWaXNpdG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTY4LDYgKzY4LDkgQEAgcHVibGljOgogICAg
IHZvaWQgYXBwZW5kVW5iYXJyaWVyZWRWYWx1ZShKU1ZhbHVlKik7CiAgICAgdGVtcGxhdGU8dHlw
ZW5hbWUgVD4KICAgICB2b2lkIGFwcGVuZFVuYmFycmllcmVkV2VhayhXZWFrPFQ+Kik7CisgICAg
dGVtcGxhdGU8dHlwZW5hbWUgVD4KKyAgICB2b2lkIGFwcGVuZFVuYmFycmllcmVkUmVhZE9ubHlQ
b2ludGVyKFQqKTsKKyAgICB2b2lkIGFwcGVuZFVuYmFycmllcmVkUmVhZE9ubHlWYWx1ZShKU1Zh
bHVlKTsKICAgICB2b2lkIHVuY29uZGl0aW9uYWxseUFwcGVuZChKU0NlbGwqKTsKICAgICAKICAg
ICB2b2lkIGFkZE9wYXF1ZVJvb3Qodm9pZCopOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2hlYXAvU2xvdFZpc2l0b3JJbmxpbmVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2hlYXAvU2xvdFZpc2l0b3JJbmxpbmVzLmgJKHJldmlzaW9uIDE2Mzc1MikKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1Nsb3RWaXNpdG9ySW5saW5lcy5oCSh3b3JraW5nIGNv
cHkpCkBAIC01MSw2ICs1MSwxMiBAQCBpbmxpbmUgdm9pZCBTbG90VmlzaXRvcjo6YXBwZW5kVW5i
YXJyaWVyCiAgICAgaW50ZXJuYWxBcHBlbmQoc2xvdCwgY2VsbCk7CiB9CiAKK3RlbXBsYXRlPHR5
cGVuYW1lIFQ+CitpbmxpbmUgdm9pZCBTbG90VmlzaXRvcjo6YXBwZW5kVW5iYXJyaWVyZWRSZWFk
T25seVBvaW50ZXIoVCogY2VsbCkKK3sKKyAgICBpbnRlcm5hbEFwcGVuZCgwLCBjZWxsKTsKK30K
KwogQUxXQVlTX0lOTElORSB2b2lkIFNsb3RWaXNpdG9yOjphcHBlbmQoSlNWYWx1ZSogc2xvdCkK
IHsKICAgICBBU1NFUlQoc2xvdCk7CkBAIC02Myw2ICs2OSwxMSBAQCBBTFdBWVNfSU5MSU5FIHZv
aWQgU2xvdFZpc2l0b3I6OmFwcGVuZFVuCiAgICAgaW50ZXJuYWxBcHBlbmQoc2xvdCwgKnNsb3Qp
OwogfQogCitBTFdBWVNfSU5MSU5FIHZvaWQgU2xvdFZpc2l0b3I6OmFwcGVuZFVuYmFycmllcmVk
UmVhZE9ubHlWYWx1ZShKU1ZhbHVlIHZhbHVlKQoreworICAgIGludGVybmFsQXBwZW5kKDAsIHZh
bHVlKTsKK30KKwogQUxXQVlTX0lOTElORSB2b2lkIFNsb3RWaXNpdG9yOjphcHBlbmQoSlNDZWxs
Kiogc2xvdCkKIHsKICAgICBBU1NFUlQoc2xvdCk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvaW5zcGVjdG9yL1NjcmlwdENhbGxTdGFja0ZhY3RvcnkuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvU2NyaXB0Q2FsbFN0YWNrRmFjdG9yeS5jcHAJ
KHJldmlzaW9uIDE2Mzc1MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvU2Ny
aXB0Q2FsbFN0YWNrRmFjdG9yeS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM1LDkgKzM1LDkgQEAK
IAogI2luY2x1ZGUgIkFyZ0xpc3QuaCIKICNpbmNsdWRlICJDYWxsRnJhbWUuaCIKLSNpbmNsdWRl
ICJDYWxsRnJhbWVJbmxpbmVzLmgiCiAjaW5jbHVkZSAiSlNDSlNWYWx1ZS5oIgogI2luY2x1ZGUg
IkpTRnVuY3Rpb24uaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiU2NyaXB0
QXJndW1lbnRzLmgiCiAjaW5jbHVkZSAiU2NyaXB0Q2FsbEZyYW1lLmgiCiAjaW5jbHVkZSAiU2Ny
aXB0Q2FsbFN0YWNrLmgiCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIv
UHJvdG9DYWxsRnJhbWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnRlcnByZXRlci9Qcm90b0NhbGxGcmFtZS5jcHAJKHJldmlzaW9uIDE2Mzc1MikKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9Qcm90b0NhbGxGcmFtZS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJQcm90b0NhbGxGcmFtZS5oIgogCiAj
aW5jbHVkZSAiQ29kZUJsb2NrLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUg
IlN0YWNrQWxpZ25tZW50LmgiCiAKIG5hbWVzcGFjZSBKU0MgewpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVRFeGNlcHRpb25zLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVEV4Y2VwdGlvbnMuY3BwCShyZXZpc2lvbiAxNjM3NTIpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVEV4Y2VwdGlvbnMuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0yNyw3ICsyNyw2IEBACiAjaW5jbHVkZSAiSklURXhjZXB0aW9ucy5oIgogCiAjaW5jbHVk
ZSAiQ2FsbEZyYW1lLmgiCi0jaW5jbHVkZSAiQ2FsbEZyYW1lSW5saW5lcy5oIgogI2luY2x1ZGUg
IkNvZGVCbG9jay5oIgogI2luY2x1ZGUgIkludGVycHJldGVyLmgiCiAjaW5jbHVkZSAiSklUU3R1
YnMuaCIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lcy5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lcy5oCShyZXZpc2lv
biAxNjM3NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZXMuaAkod29y
a2luZyBjb3B5KQpAQCAtMjksNyArMjksNyBAQAogCiAjaWYgRU5BQkxFKEpJVCkKIAotI2luY2x1
ZGUgIkNhbGxGcmFtZUlubGluZXMuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAKIG5hbWVz
cGFjZSBKU0MgewogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlv
bnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0
aW9ucy5jcHAJKHJldmlzaW9uIDE2Mzc1MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklUT3BlcmF0aW9ucy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5LDcgKzI5LDYgQEAKIAogI2lu
Y2x1ZGUgIkFyZ3VtZW50cy5oIgogI2luY2x1ZGUgIkFycmF5Q29uc3RydWN0b3IuaCIKLSNpbmNs
dWRlICJDYWxsRnJhbWVJbmxpbmVzLmgiCiAjaW5jbHVkZSAiREZHQ29tcGlsYXRpb25Nb2RlLmgi
CiAjaW5jbHVkZSAiREZHRHJpdmVyLmgiCiAjaW5jbHVkZSAiREZHT1NSRW50cnkuaCIKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVwYXRjaC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZXBhdGNoLmNwcAkocmV2aXNpb24gMTYzNzUyKQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZXBhdGNoLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MjksNyArMjksNiBAQAogI2lmIEVOQUJMRShKSVQpCiAKICNpbmNsdWRlICJDQ2FsbEhlbHBlcnMu
aCIKLSNpbmNsdWRlICJDYWxsRnJhbWVJbmxpbmVzLmgiCiAjaW5jbHVkZSAiREZHT3BlcmF0aW9u
cy5oIgogI2luY2x1ZGUgIkRGR1NwZWN1bGF0aXZlSklULmgiCiAjaW5jbHVkZSAiRlRMVGh1bmtz
LmgiCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZUdlbmVyYXRv
ci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2Zp
bGVHZW5lcmF0b3IuY3BwCShyZXZpc2lvbiAxNjM3NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcHJvZmlsZXIvUHJvZmlsZUdlbmVyYXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI3LDcg
KzI3LDYgQEAKICNpbmNsdWRlICJQcm9maWxlR2VuZXJhdG9yLmgiCiAKICNpbmNsdWRlICJDYWxs
RnJhbWUuaCIKLSNpbmNsdWRlICJDYWxsRnJhbWVJbmxpbmVzLmgiCiAjaW5jbHVkZSAiQ29kZUJs
b2NrLmgiCiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKICNpbmNsdWRlICJKU1N0cmluZ1Jl
Zi5oIgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJndW1lbnRzLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHMuY3Bw
CShyZXZpc2lvbiAxNjM3NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1
bWVudHMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNSw3ICsyNSw2IEBACiAjaW5jbHVkZSAiY29u
ZmlnLmgiCiAjaW5jbHVkZSAiQXJndW1lbnRzLmgiCiAKLSNpbmNsdWRlICJDYWxsRnJhbWVJbmxp
bmVzLmgiCiAjaW5jbHVkZSAiSlNBY3RpdmF0aW9uLmgiCiAjaW5jbHVkZSAiSlNBcmd1bWVudHNJ
dGVyYXRvci5oIgogI2luY2x1ZGUgIkpTRnVuY3Rpb24uaCIKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0FyZ3VtZW50c0l0ZXJhdG9yUHJvdG90eXBlLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHNJdGVyYXRvclByb3Rv
dHlwZS5jcHAJKHJldmlzaW9uIDE2Mzc1MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0FyZ3VtZW50c0l0ZXJhdG9yUHJvdG90eXBlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcs
NiArMjcsNyBAQAogI2luY2x1ZGUgIkFyZ3VtZW50c0l0ZXJhdG9yUHJvdG90eXBlLmgiCiAKICNp
bmNsdWRlICJKU0FyZ3VtZW50c0l0ZXJhdG9yLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgog
CiBuYW1lc3BhY2UgSlNDIHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
Q29tbW9uU2xvd1BhdGhzRXhjZXB0aW9ucy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzRXhjZXB0aW9ucy5jcHAJKHJldmlzaW9u
IDE2Mzc1MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQYXRo
c0V4Y2VwdGlvbnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVk
ZSAiQ29kZUJsb2NrLmgiCiAjaW5jbHVkZSAiSklURXhjZXB0aW9ucy5oIgogI2luY2x1ZGUgIkxM
SW50Q29tbW9uLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiBuYW1lc3BhY2UgSlNDIHsg
bmFtZXNwYWNlIENvbW1vblNsb3dQYXRocyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTQXJndW1lbnRzSXRlcmF0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJndW1lbnRzSXRlcmF0b3IuY3BwCShyZXZpc2lvbiAx
NjM3NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FyZ3VtZW50c0l0ZXJh
dG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIkpTQXJn
dW1lbnRzSXRlcmF0b3IuaCIKIAogI2luY2x1ZGUgIkFyZ3VtZW50cy5oIgorI2luY2x1ZGUgIk9w
ZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uY3BwCShyZXZpc2lvbiAxNjM3NTIpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMjksNyArMjksNiBAQAogI2luY2x1ZGUgIkNvZGVCbG9jay5oIgogI2luY2x1ZGUgIkNvbW1v
bklkZW50aWZpZXJzLmgiCiAjaW5jbHVkZSAiQ2FsbEZyYW1lLmgiCi0jaW5jbHVkZSAiQ2FsbEZy
YW1lSW5saW5lcy5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkhlbHBlcnMuaCIKICNpbmNsdWRlICJG
dW5jdGlvblByb3RvdHlwZS5oIgogI2luY2x1ZGUgIkdldHRlclNldHRlci5oIgpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0
RnVuY3Rpb25zLmNwcAkocmV2aXNpb24gMTYzNzUyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0y
Niw3ICsyNiw2IEBACiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuaCIKIAogI2lu
Y2x1ZGUgIkNhbGxGcmFtZS5oIgotI2luY2x1ZGUgIkNhbGxGcmFtZUlubGluZXMuaCIKICNpbmNs
dWRlICJJbnRlcnByZXRlci5oIgogI2luY2x1ZGUgIkpTRnVuY3Rpb24uaCIKICNpbmNsdWRlICJK
U0dsb2JhbE9iamVjdC5oIgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2Jq
ZWN0Q29uc3RydWN0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL09iamVjdENvbnN0cnVjdG9yLmNwcAkocmV2aXNpb24gMTYzNzUyKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0yMiw3ICsyMiw2IEBACiAjaW5jbHVkZSAiT2JqZWN0Q29uc3RydWN0b3IuaCIKIAog
I2luY2x1ZGUgIkJ1dHRlcmZseUlubGluZXMuaCIKLSNpbmNsdWRlICJDYWxsRnJhbWVJbmxpbmVz
LmgiCiAjaW5jbHVkZSAiQ29waWVkU3BhY2VJbmxpbmVzLmgiCiAjaW5jbHVkZSAiRXJyb3IuaCIK
ICNpbmNsdWRlICJFeGNlcHRpb25IZWxwZXJzLmgiCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9PcGVyYXRpb25zLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvT3BlcmF0aW9ucy5oCShyZXZpc2lvbiAxNjM3NTIpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9PcGVyYXRpb25zLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNiAr
MSw2IEBACiAvKgogICogIENvcHlyaWdodCAoQykgMTk5OS0yMDAwIEhhcnJpIFBvcnRlbiAocG9y
dGVuQGtkZS5vcmcpCi0gKiAgQ29weXJpZ2h0IChDKSAyMDAyLCAyMDA1LCAyMDA2LCAyMDA3LCAy
MDA4LCAyMDA5LCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqICBDb3B5
cmlnaHQgKEMpIDIwMDIsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDksIDIwMTMsIDIwMTQg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqICBUaGlzIGxpYnJhcnkgaXMg
ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiAgbW9kaWZ5
IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAg
LTIyLDYgKzIyLDcgQEAKICNpZm5kZWYgT3BlcmF0aW9uc19oCiAjZGVmaW5lIE9wZXJhdGlvbnNf
aAogCisjaW5jbHVkZSAiQ2FsbEZyYW1lSW5saW5lcy5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkhl
bHBlcnMuaCIKICNpbmNsdWRlICJHQ0luY29taW5nUmVmQ291bnRlZElubGluZXMuaCIKICNpbmNs
dWRlICJJbnRlcnByZXRlci5oIgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
Vk0uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmNw
cAkocmV2aXNpb24gMTYzNzUyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0u
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw3ICszMiw2IEBACiAjaW5jbHVkZSAiQXJnTGlzdC5o
IgogI2luY2x1ZGUgIkFyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzLmgiCiAjaW5jbHVkZSAiQXJy
YXlCdWZmZXJOZXV0ZXJpbmdXYXRjaHBvaW50LmgiCi0jaW5jbHVkZSAiQ2FsbEZyYW1lSW5saW5l
cy5oIgogI2luY2x1ZGUgIkNvZGVCbG9jay5oIgogI2luY2x1ZGUgIkNvZGVDYWNoZS5oIgogI2lu
Y2x1ZGUgIkNvbW1vbklkZW50aWZpZXJzLmgiCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>223640</attachid>
            <date>2014-02-09 12:39:41 -0800</date>
            <delta_ts>2014-02-09 12:47:01 -0800</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>77954</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTYzNzUyKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEwNCBA
QAorMjAxNC0wMi0wOSAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgorCisgICAgICAg
IEdDIGJsb2NrcyBvbiBGVEwgYW5kIHRoZW4gYmFkbmVzcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI4MjkxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisgICAgICAgIAorICAgICAgICBJbnRyb2R1Y2UgdGhlIG5vdGlvbiBv
ZiBhIERGRzo6U2FmZXBvaW50LCB3aGljaCBhbGxvd3MgeW91IHRvIHVubG9jayB0aGUgcmlnaHRU
b1J1bgorICAgICAgICBtdXRleCBmb3IgeW91ciBKSVQgdGhyZWFkLCB3aGlsZSBzdXBwbHlpbmcg
dGhlIEdDIHdpdGggYWxsIG9mIHRoZSBpbmZvcm1hdGlvbiBpdCB3b3VsZAorICAgICAgICBuZWVk
IHRvIHNjYW4geW91IGF0IHRoYXQgbW9tZW50IGluIHRpbWUuIFRoZSBkZWZhdWx0IHdheSBvZiB1
c2luZyB0aGlzIGlzCisgICAgICAgIERGRzo6R3JhcGhTYWZlcG9pbnQsIHdoZXJlIHlvdSBqdXN0
IHN1cHBseSB0aGUgR3JhcGguIFRoZXJlJ3MgYSBsb3Qgb2YgbWFjaGluZXJ5IGluCisgICAgICAg
IHRoaXMgcGF0Y2gganVzdCB0byBtYWtlIHRoZSBHcmFwaCBzY2FubmFibGUuCisgICAgICAgIAor
ICAgICAgICBXZSB0aGVuIHVzZSBERkc6OkdyYXBoU2FmZXBvaW50IGluIGp1c3QgdHdvIHBsYWNl
cyBmb3Igbm93OiAoMSkgd2hpbGUgaW5pdGlhbGl6aW5nIExMVk0KKyAgICAgICAgYW5kICgyKSB3
aGlsZSBpbnZva2luZyBMTFZNJyBvcHRpbWl6ZXIgYW5kIGJhY2tlbmQuCisgICAgICAgIAorICAg
ICAgICBNYWtpbmcgdGhpcyBjaGFuZ2Ugd2FzIGRpZmZpY3VsdCBiZWNhdXNlIEkgcmFuIGludG8g
dGhlIGxpbWl0cyBvZiBvdXIgbGFjayBvZiBoZWFkZXIKKyAgICAgICAgZmlsZSBkaXNjaXBsaW5l
LiBFdmVuIHRob3VnaCBPcGVyYXRpb25zLmggaXMgbWVhbnQgdG8gYmUgdGhlIHRoaW5nIHRoYXQg
aXMgb25seQorICAgICAgICBpbmNsdWRlZCBmcm9tIC5jcHAgZmlsZXMsIGl0IHdhcyBpbmNsdWRl
ZCBmcm9tIENvZGVCbG9jay5oLiBTaW1pbGFybHksCisgICAgICAgIENhbGxGcmFtZUlubGluZXMu
aCB3YXMgaW5jbHVkZWQgZnJvbSBERkdKSVRDb21waWxlci5oLiBUaGVuLCBDYWxsTGlua0luZm8u
aCBpbmNsdWRlZAorICAgICAgICBERkdHcmFwaC5oLiBJdCB3YXMgYSB0b3RhbCBtZXNzLiBJIHVu
cmF2ZWxlZCB0aGlzIG1lc3MgdG8gZ2V0IG15IGNvZGUgdG8gYnVpbGQuCisKKyAgICAgICAgKiBB
UEkvSlNDb250ZXh0UmVmLmNwcDoKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAg
KiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnZjeHByb2ov
SmF2YVNjcmlwdENvcmUudmN4cHJvajoKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGFzc2VtYmxlci9MaW5rQnVmZmVyLmNwcDoK
KyAgICAgICAgKiBieXRlY29kZS9Db2RlQmxvY2suY3BwOgorICAgICAgICAqIGJ5dGVjb2RlL0Nv
ZGVCbG9jay5oOgorICAgICAgICAqIGJ5dGVjb2RlL1Byb2ZpbGVkQ29kZUJsb2NrSmV0dGlzb25p
bmdXYXRjaHBvaW50LmNwcDoKKyAgICAgICAgKiBkZWJ1Z2dlci9EZWJ1Z2dlckNhbGxGcmFtZS5j
cHA6CisgICAgICAgICogZGZnL0RGR0Rlc2lyZWRUcmFuc2l0aW9ucy5jcHA6CisgICAgICAgICog
ZGZnL0RGR0RyaXZlci5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Y29tcGlsZUltcGwpOgorICAg
ICAgICAqIGRmZy9ERkdHcmFwaC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6R3JhcGg6OnZpc2l0
Q2hpbGRyZW4pOgorICAgICAgICAqIGRmZy9ERkdHcmFwaC5oOgorICAgICAgICAqIGRmZy9ERkdH
cmFwaFNhZmVwb2ludC5jcHA6IEFkZGVkLgorICAgICAgICAoSlNDOjpERkc6OkdyYXBoU2FmZXBv
aW50OjpHcmFwaFNhZmVwb2ludCk6CisgICAgICAgIChKU0M6OkRGRzo6R3JhcGhTYWZlcG9pbnQ6
On5HcmFwaFNhZmVwb2ludCk6CisgICAgICAgICogZGZnL0RGR0dyYXBoU2FmZXBvaW50Lmg6IEFk
ZGVkLgorICAgICAgICAqIGRmZy9ERkdKSVRDb2RlLmNwcDoKKyAgICAgICAgKiBkZmcvREZHSklU
Q29tcGlsZXIuY3BwOgorICAgICAgICAqIGRmZy9ERkdKSVRDb21waWxlci5oOgorICAgICAgICAq
IGRmZy9ERkdPU1JFeGl0Q29tcGlsZXJDb21tb24uY3BwOgorICAgICAgICAqIGRmZy9ERkdPcGVy
YXRpb25zLmNwcDoKKyAgICAgICAgKiBkZmcvREZHT3BlcmF0aW9ucy5oOgorICAgICAgICAqIGRm
Zy9ERkdQbGFuLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpQbGFuOjpjb21waWxlSW5UaHJlYWQp
OgorICAgICAgICAoSlNDOjpERkc6OlBsYW46OmNvbXBpbGVJblRocmVhZEltcGwpOgorICAgICAg
ICAqIGRmZy9ERkdQbGFuLmg6CisgICAgICAgICogZGZnL0RGR1NhZmVwb2ludC5jcHA6IEFkZGVk
LgorICAgICAgICAoSlNDOjpERkc6OlNhZmVwb2ludDo6U2FmZXBvaW50KToKKyAgICAgICAgKEpT
Qzo6REZHOjpTYWZlcG9pbnQ6On5TYWZlcG9pbnQpOgorICAgICAgICAoSlNDOjpERkc6OlNhZmVw
b2ludDo6YWRkKToKKyAgICAgICAgKEpTQzo6REZHOjpTYWZlcG9pbnQ6OmJlZ2luKToKKyAgICAg
ICAgKEpTQzo6REZHOjpTYWZlcG9pbnQ6OnZpc2l0Q2hpbGRyZW4pOgorICAgICAgICAqIGRmZy9E
RkdTYWZlcG9pbnQuaDogQWRkZWQuCisgICAgICAgICogZGZnL0RGR1NjYW5uYWJsZS5oOiBBZGRl
ZC4KKyAgICAgICAgKEpTQzo6REZHOjpTY2FubmFibGU6OlNjYW5uYWJsZSk6CisgICAgICAgIChK
U0M6OkRGRzo6U2Nhbm5hYmxlOjp+U2Nhbm5hYmxlKToKKyAgICAgICAgKiBkZmcvREZHVGhyZWFk
RGF0YS5jcHA6IEFkZGVkLgorICAgICAgICAoSlNDOjpERkc6OlRocmVhZERhdGE6OlRocmVhZERh
dGEpOgorICAgICAgICAoSlNDOjpERkc6OlRocmVhZERhdGE6On5UaHJlYWREYXRhKToKKyAgICAg
ICAgKiBkZmcvREZHVGhyZWFkRGF0YS5oOiBBZGRlZC4KKyAgICAgICAgKiBkZmcvREZHVGh1bmtz
LmNwcDoKKyAgICAgICAgKiBkZmcvREZHV29ya2xpc3QuY3BwOgorICAgICAgICAoSlNDOjpERkc6
OldvcmtsaXN0OjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgIChKU0M6OkRGRzo6V29ya2xpc3Q6
OnZpc2l0Q2hpbGRyZW4pOgorICAgICAgICAoSlNDOjpERkc6OldvcmtsaXN0OjpydW5UaHJlYWQp
OgorICAgICAgICAqIGRmZy9ERkdXb3JrbGlzdC5oOgorICAgICAgICAqIGZ0bC9GVExDb21waWxl
LmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpjb21waWxlKToKKyAgICAgICAgKiBmdGwvRlRMTGlu
ay5jcHA6CisgICAgICAgICogZnRsL0ZUTE9TUkV4aXRDb21waWxlci5jcHA6CisgICAgICAgICog
ZnRsL0ZUTFNsb3dQYXRoQ2FsbC5jcHA6CisgICAgICAgICogZnRsL0ZUTFRodW5rcy5jcHA6Cisg
ICAgICAgIChKU0M6OkZUTDo6c2xvd1BhdGhDYWxsVGh1bmtHZW5lcmF0b3IpOgorICAgICAgICAq
IGhlYXAvU2xvdFZpc2l0b3IuaDoKKyAgICAgICAgKiBoZWFwL1Nsb3RWaXNpdG9ySW5saW5lcy5o
OgorICAgICAgICAoSlNDOjpTbG90VmlzaXRvcjo6YXBwZW5kVW5iYXJyaWVyZWRSZWFkT25seVBv
aW50ZXIpOgorICAgICAgICAoSlNDOjpTbG90VmlzaXRvcjo6YXBwZW5kVW5iYXJyaWVyZWRSZWFk
T25seVZhbHVlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvU2NyaXB0Q2FsbFN0YWNrRmFjdG9yeS5j
cHA6CisgICAgICAgICogaW50ZXJwcmV0ZXIvUHJvdG9DYWxsRnJhbWUuY3BwOgorICAgICAgICAq
IGppdC9KSVRFeGNlcHRpb25zLmNwcDoKKyAgICAgICAgKiBqaXQvSklUSW5saW5lcy5oOgorICAg
ICAgICAqIGppdC9KSVRPcGVyYXRpb25zLmNwcDoKKyAgICAgICAgKiBqaXQvUmVwYXRjaC5jcHA6
CisgICAgICAgICoganNjLmNwcDoKKyAgICAgICAgKiBwcm9maWxlci9Qcm9maWxlR2VuZXJhdG9y
LmNwcDoKKyAgICAgICAgKiBydW50aW1lL0FyZ3VtZW50cy5jcHA6CisgICAgICAgICogcnVudGlt
ZS9Bcmd1bWVudHNJdGVyYXRvclByb3RvdHlwZS5jcHA6CisgICAgICAgICogcnVudGltZS9Db21t
b25TbG93UGF0aHNFeGNlcHRpb25zLmNwcDoKKyAgICAgICAgKiBydW50aW1lL0pTQXJndW1lbnRz
SXRlcmF0b3IuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvSlNGdW5jdGlvbi5jcHA6CisgICAgICAg
ICogcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5jcHA6CisgICAgICAgICogcnVudGlt
ZS9PYmplY3RDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgICogcnVudGltZS9PcGVyYXRpb25zLmg6
CisgICAgICAgICogcnVudGltZS9WTS5jcHA6CisKIDIwMTQtMDItMDkgIEFuZGVycyBDYXJsc3Nv
biAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAgICAgICBDb252ZXJ0IHNvbWUgSlNDIGNvZGUg
b3ZlciB0byBzdGQ6Om11dGV4CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0
cy50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0
CShyZXZpc2lvbiAxNjM3NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50
eHQJKHdvcmtpbmcgY29weSkKQEAgLTEzOCw2ICsxMzgsNyBAQCBzZXQoSmF2YVNjcmlwdENvcmVf
U09VUkNFUwogICAgIGRmZy9ERkdGbHVzaExpdmVuZXNzQW5hbHlzaXNQaGFzZS5jcHAKICAgICBk
ZmcvREZHRmx1c2hlZEF0LmNwcAogICAgIGRmZy9ERkdHcmFwaC5jcHAKKyAgICBkZmcvREZHR3Jh
cGhTYWZlcG9pbnQuY3BwCiAgICAgZGZnL0RGR0luUGxhY2VBYnN0cmFjdFN0YXRlLmNwcAogICAg
IGRmZy9ERkdJbnZhbGlkYXRpb25Qb2ludEluamVjdGlvblBoYXNlLmNwcAogICAgIGRmZy9ERkdK
SVRDb2RlLmNwcApAQCAtMTcyLDEyICsxNzMsMTQgQEAgc2V0KEphdmFTY3JpcHRDb3JlX1NPVVJD
RVMKICAgICBkZmcvREZHUmVzdXJyZWN0aW9uRm9yVmFsaWRhdGlvblBoYXNlLmNwcAogICAgIGRm
Zy9ERkdTU0FDb252ZXJzaW9uUGhhc2UuY3BwCiAgICAgZGZnL0RGR1NTQUxvd2VyaW5nUGhhc2Uu
Y3BwCisgICAgZGZnL0RGR1NhZmVwb2ludC5jcHAKICAgICBkZmcvREZHU3BlY3VsYXRpdmVKSVQu
Y3BwCiAgICAgZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCiAgICAgZGZnL0RGR1NwZWN1
bGF0aXZlSklUNjQuY3BwCiAgICAgZGZnL0RGR1N0YWNrTGF5b3V0UGhhc2UuY3BwCiAgICAgZGZn
L0RGR1N0b3JlQmFycmllckVsaXNpb25QaGFzZS5jcHAKICAgICBkZmcvREZHU3RyZW5ndGhSZWR1
Y3Rpb25QaGFzZS5jcHAKKyAgICBkZmcvREZHVGhyZWFkRGF0YS5jcHAKICAgICBkZmcvREZHVGh1
bmtzLmNwcAogICAgIGRmZy9ERkdUaWVyVXBDaGVja0luamVjdGlvblBoYXNlLmNwcAogICAgIGRm
Zy9ERkdUeXBlQ2hlY2tIb2lzdGluZ1BoYXNlLmNwcApJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0JKHJldmlzaW9uIDE2Mzc1MikKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCSh3b3JraW5nIGNvcHkpCkBAIC0zMDQsNiAr
MzA0LDggQEAgamF2YXNjcmlwdGNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdHZW5lcmF0aW9uSW5mby5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0dyYXBoLmNwcCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5oIFwK
KwlTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoU2FmZXBvaW50LmNwcCBcCisJU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaFNhZmVwb2ludC5oIFwKIAlTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0luUGxhY2VBYnN0cmFjdFN0YXRlLmNwcCBcCiAJU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdJblBsYWNlQWJzdHJhY3RTdGF0ZS5oIFwKIAlTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0lubGluZUNhY2hlV3JhcHBlci5oIFwKQEAgLTM3Nyw3ICszNzks
MTAgQEAgamF2YXNjcmlwdGNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdSZXN1cnJlY3Rpb25Gb3JWYWxpZGF0aW9uUGhhc2UuY3BwIFwKIAlTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1Jlc3VycmVjdGlvbkZvclZhbGlkYXRpb25QaGFzZS5oIFwKIAlT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaCBcCisJU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdTYWZlcG9pbnQuY3BwIFwKKwlTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1NhZmVwb2ludC5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nh
bmVTdHJpbmdHZXRCeVZhbFNsb3dQYXRoR2VuZXJhdG9yLmggXAorCVNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHU2Nhbm5hYmxlLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
U2NvcmVCb2FyZC5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NpbGVudFJlZ2lz
dGVyU2F2ZVBsYW4uaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTbG93UGF0aEdl
bmVyYXRvci5oIFwKQEAgLTM5OCw2ICs0MDMsOCBAQCBqYXZhc2NyaXB0Y29yZV9zb3VyY2VzICs9
IFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1N0cnVjdHVyZUFic3RyYWN0VmFsdWUu
aCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdUaWVyVXBDaGVja0luamVjdGlvblBo
YXNlLmNwcCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdUaWVyVXBDaGVja0luamVj
dGlvblBoYXNlLmggXAorCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVGhyZWFkRGF0YS5j
cHAgXAorCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVGhyZWFkRGF0YS5oIFwKIAlTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1RodW5rcy5jcHAgXAogCVNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHVGh1bmtzLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVG9G
VExEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2suY3BwIFwKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qc2MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2Mu
Y3BwCShyZXZpc2lvbiAxNjM3NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMjUsNyArMjUsNiBAQAogI2luY2x1ZGUgIkFQSVNoaW1zLmgiCiAj
aW5jbHVkZSAiQnV0dGVyZmx5SW5saW5lcy5oIgogI2luY2x1ZGUgIkJ5dGVjb2RlR2VuZXJhdG9y
LmgiCi0jaW5jbHVkZSAiQ2FsbEZyYW1lSW5saW5lcy5oIgogI2luY2x1ZGUgIkNvbXBsZXRpb24u
aCIKICNpbmNsdWRlICJDb3BpZWRTcGFjZUlubGluZXMuaCIKICNpbmNsdWRlICJFeGNlcHRpb25I
ZWxwZXJzLmgiCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ29udGV4dFJlZi5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NvbnRleHRSZWYu
Y3BwCShyZXZpc2lvbiAxNjM3NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ29u
dGV4dFJlZi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5LDcgKzI5LDYgQEAKIAogI2luY2x1ZGUg
IkFQSUNhc3QuaCIKICNpbmNsdWRlICJDYWxsRnJhbWUuaCIKLSNpbmNsdWRlICJDYWxsRnJhbWVJ
bmxpbmVzLmgiCiAjaW5jbHVkZSAiSW5pdGlhbGl6ZVRocmVhZGluZy5oIgogI2luY2x1ZGUgIkpT
Q2FsbGJhY2tPYmplY3QuaCIKICNpbmNsdWRlICJKU0NsYXNzUmVmLmgiCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hw
cm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52
Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2oJKHJldmlzaW9uIDE2Mzc1MikKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZj
eHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTM5Miw2ICszOTIsNyBAQAogICAgIDxDbENvbXBpbGUg
SW5jbHVkZT0iLi5cZGZnXERGR0ZsdXNoRm9ybWF0LmNwcCIgLz4KICAgICA8Q2xDb21waWxlIElu
Y2x1ZGU9Ii4uXGRmZ1xERkdGbHVzaExpdmVuZXNzQW5hbHlzaXNQaGFzZS5jcHAiIC8+CiAgICAg
PENsQ29tcGlsZSBJbmNsdWRlPSIuLlxkZmdcREZHR3JhcGguY3BwIiAvPgorICAgIDxDbENvbXBp
bGUgSW5jbHVkZT0iLi5cZGZnXERGR0dyYXBoU2FmZXBvaW50LmNwcCIgLz4KICAgICA8Q2xDb21w
aWxlIEluY2x1ZGU9Ii4uXGRmZ1xERkdJblBsYWNlQWJzdHJhY3RTdGF0ZS5jcHAiIC8+CiAgICAg
PENsQ29tcGlsZSBJbmNsdWRlPSIuLlxkZmdcREZHSW52YWxpZGF0aW9uUG9pbnRJbmplY3Rpb25Q
aGFzZS5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxkZmdcREZHSklUQ29kZS5j
cHAiIC8+CkBAIC00MjQsNiArNDI1LDcgQEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGRm
Z1xERkdQcmVkaWN0aW9uSW5qZWN0aW9uUGhhc2UuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5j
bHVkZT0iLi5cZGZnXERGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcCIgLz4KICAgICA8
Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGRmZ1xERkdSZXN1cnJlY3Rpb25Gb3JWYWxpZGF0aW9uUGhh
c2UuY3BwIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZGZnXERGR1NhZmVwb2ludC5j
cHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxkZmdcREZHU3BlY3VsYXRpdmVKSVQu
Y3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZGZnXERGR1NwZWN1bGF0aXZlSklU
MzJfNjQuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZGZnXERGR1NwZWN1bGF0
aXZlSklUNjQuY3BwIiAvPgpAQCAtNDMyLDYgKzQzNCw3IEBACiAgICAgPENsQ29tcGlsZSBJbmNs
dWRlPSIuLlxkZmdcREZHU3RhY2tMYXlvdXRQaGFzZS5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJ
bmNsdWRlPSIuLlxkZmdcREZHU3RvcmVCYXJyaWVyRWxpc2lvblBoYXNlLmNwcCIgLz4KICAgICA8
Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGRmZ1xERkdTdHJlbmd0aFJlZHVjdGlvblBoYXNlLmNwcCIg
Lz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGRmZ1xERkdUaHJlYWREYXRhLmNwcCIgLz4K
ICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGRmZ1xERkdUaHVua3MuY3BwIiAvPgogICAgIDxD
bENvbXBpbGUgSW5jbHVkZT0iLi5cZGZnXERGR1RpZXJVcENoZWNrSW5qZWN0aW9uUGhhc2UuY3Bw
IiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZGZnXERGR1RvRlRMRGVmZXJyZWRDb21w
aWxhdGlvbkNhbGxiYWNrLmNwcCIgLz4KQEAgLTkyOSw2ICs5MzIsNyBAQAogICAgIDxDbEluY2x1
ZGUgSW5jbHVkZT0iLi5cZGZnXERGR0dlbmVyYXRpb25JbmZvLmgiIC8+CiAgICAgPENsSW5jbHVk
ZSBJbmNsdWRlPSIuLlxkZmdcREZHR1BSSW5mby5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVk
ZT0iLi5cZGZnXERGR0dyYXBoLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxkZmdc
REZHR3JhcGhTYWZlcG9pbnQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGRmZ1xE
RkdJblBsYWNlQWJzdHJhY3RTdGF0ZS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
ZGZnXERGR0luc2VydGlvblNldC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZGZn
XERGR0ludmFsaWRhdGlvblBvaW50SW5qZWN0aW9uUGhhc2UuaCIgLz4KQEAgLTk2OSw3ICs5NzMs
OSBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZGZnXERGR1JlZ2lzdGVyU2V0LmgiIC8+
CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxkZmdcREZHUmVzdXJyZWN0aW9uRm9yVmFsaWRh
dGlvblBoYXNlLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxkZmdcREZHU2FmZVRv
RXhlY3V0ZS5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZGZnXERGR1NhZmVwb2lu
dC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZGZnXERGR1NhbmVTdHJpbmdHZXRC
eVZhbFNsb3dQYXRoR2VuZXJhdG9yLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxk
ZmdcREZHU2Nhbm5hYmxlLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxkZmdcREZH
U2NvcmVCb2FyZC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZGZnXERGR1NjcmF0
Y2hSZWdpc3RlckFsbG9jYXRvci5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZGZn
XERGR1NpbGVudFJlZ2lzdGVyU2F2ZVBsYW4uaCIgLz4KQEAgLTk4MSw2ICs5ODcsNyBAQAogICAg
IDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZGZnXERGR1N0b3JlQmFycmllckVsaXNpb25QaGFzZS5o
IiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZGZnXERGR1N0cmVuZ3RoUmVkdWN0aW9u
UGhhc2UuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGRmZ1xERkdTdHJ1Y3R1cmVB
YnN0cmFjdFZhbHVlLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxkZmdcREZHVGhy
ZWFkRGF0YS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZGZnXERGR1RodW5rcy5o
IiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZGZnXERGR1RpZXJVcENoZWNrSW5qZWN0
aW9uUGhhc2UuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGRmZ1xERkdUb0ZUTERl
ZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjay5oIiAvPgpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oJKHJldmlzaW9uIDE2Mzc1MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZh
U2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0y
MDIsNiArMjAyLDEzIEBACiAJCTBGMkU4OTJEMTZEMDJCQUYwMDlFNEZEMiAvKiBERkdNaW5pZmll
ZElELmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkI0
QjUxMDE2QjNBOTY0MDAzRjY5NkIgLyogREZHTWluaWZpZWRJRC5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGMkZDNzcyMTZFMTJGNzEwMDM4RDk3
NiAvKiBERkdEQ0VQaGFzZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwRjJGQzc3MDE2RTEyRjZGMDAzOEQ5NzYgLyogREZHRENFUGhhc2UuY3BwICov
OyB9OwogCQkwRjJGQzc3MzE2RTEyRjc0MDAzOEQ5NzYgLyogREZHRENFUGhhc2UuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMkZDNzcxMTZFMTJGNkYw
MDM4RDk3NiAvKiBERkdEQ0VQaGFzZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CisJCTBGMkZDQ0Y5MThBNjAwNzAwMDFBMjdGOCAvKiBERkdHcmFwaFNh
ZmVwb2ludC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwRjJGQ0NGMjE4QTYwMDcwMDAxQTI3RjggLyogREZHR3JhcGhTYWZlcG9pbnQuY3BwICovOyB9
OworCQkwRjJGQ0NGQTE4QTYwMDcwMDAxQTI3RjggLyogREZHR3JhcGhTYWZlcG9pbnQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMkZDQ0YzMThBNjAw
NzAwMDFBMjdGOCAvKiBERkdHcmFwaFNhZmVwb2ludC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTBGMkZDQ0ZCMThBNjAwNzAwMDFBMjdGOCAvKiBE
RkdTYWZlcG9pbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMEYyRkNDRjQxOEE2MDA3MDAwMUEyN0Y4IC8qIERGR1NhZmVwb2ludC5jcHAgKi87IH07
CisJCTBGMkZDQ0ZDMThBNjAwNzAwMDFBMjdGOCAvKiBERkdTYWZlcG9pbnQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMkZDQ0Y1MThBNjAwNzAwMDFB
MjdGOCAvKiBERkdTYWZlcG9pbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OworCQkwRjJGQ0NGRDE4QTYwMDcwMDAxQTI3RjggLyogREZHU2Nhbm5hYmxl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjJGQ0NG
NjE4QTYwMDcwMDAxQTI3RjggLyogREZHU2Nhbm5hYmxlLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMEYyRkNDRkUxOEE2MDA3MDAwMUEyN0Y4IC8q
IERGR1RocmVhZERhdGEuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMEYyRkNDRjcxOEE2MDA3MDAwMUEyN0Y4IC8qIERGR1RocmVhZERhdGEuY3BwICov
OyB9OworCQkwRjJGQ0NGRjE4QTYwMDcwMDAxQTI3RjggLyogREZHVGhyZWFkRGF0YS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYyRkNDRjgxOEE2MDA3
MDAwMUEyN0Y4IC8qIERGR1RocmVhZERhdGEuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjM0QjE0OTE2RDQyMDEwMDAxQ0RBNUEgLyogREZHVXNl
S2luZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAw
RjM0QjE0NzE2RDQyMDBFMDAxQ0RBNUEgLyogREZHVXNlS2luZC5jcHAgKi87IH07CiAJCTBGMzRC
MTRBMTZENDIwMTMwMDFDREE1QSAvKiBERkdVc2VLaW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjM0QjE0ODE2RDQyMDBFMDAxQ0RBNUEgLyogREZH
VXNlS2luZC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTBGMzRCMTRDMTZENDNFMEQwMDFDREE1QSAvKiBQb2x5bW9ycGhpY0FjY2Vzc1N0cnVjdHVy
ZUxpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBG
MzRCMTRCMTZENDNFMEMwMDFDREE1QSAvKiBQb2x5bW9ycGhpY0FjY2Vzc1N0cnVjdHVyZUxpc3Qu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTM1
MSw3ICsxMzU4LDcgQEAKIAkJQzI5ODFGREQxN0JBRkY0NDAwQTNCQzk4IC8qIERGR0Rlc2lyZWRX
cml0ZUJhcnJpZXJzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBDMjk4MUZEQjE3QkFGRjQ0MDBBM0JDOTggLyogREZHRGVzaXJlZFdyaXRlQmFycmllcnMu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDMjlF
Q0IwMzE4MDREMEVEMDBEMkNCQjQgLyogQ3VycmVudFRoaXNJbnNpZGVCbG9ja0dldHRlclRlc3Qu
bW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMjlFQ0Iw
MTE4MDREMEVEMDBEMkNCQjQgLyogQ3VycmVudFRoaXNJbnNpZGVCbG9ja0dldHRlclRlc3QubW0g
Ki87IH07CiAJCUMyQTdGNjg4MTYwNDMyRDQwMEY3NkI5OCAvKiBKU0Rlc3RydWN0aWJsZU9iamVj
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzJBN0Y2
ODcxNjA0MzJENDAwRjc2Qjk4IC8qIEpTRGVzdHJ1Y3RpYmxlT2JqZWN0LmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLSAgICAgICBDMkI2RDc1MzE4QTMz
NzkzMDA0QTkzMDEgLyogV3JpdGVCYXJyaWVySW5saW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzJCNkQ3NTIxOEEzMzc5MzAwNEE5MzAxIC8qIFdy
aXRlQmFycmllcklubGluZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OworCQlDMkI2RDc1MzE4QTMzNzkzMDA0QTkzMDEgLyogV3JpdGVCYXJyaWVySW5s
aW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzJC
NkQ3NTIxOEEzMzc5MzAwNEE5MzAxIC8qIFdyaXRlQmFycmllcklubGluZXMuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDMkI5MTZDMjE0REEwMTRF
MDBDQkFDODYgLyogTWFya2VkQWxsb2NhdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBDMkI5MTZDMTE0REEwMTRFMDBDQkFDODYgLyogTWFya2VkQWxs
b2NhdG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJQzJCOTE2QzUxNERBMDQwQzAwQ0JBQzg2IC8qIE1hcmtlZEFsbG9jYXRvci5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMkI5MTZDNDE0REEwNDBD
MDBDQkFDODYgLyogTWFya2VkQWxsb2NhdG9yLmNwcCAqLzsgfTsKIAkJQzJDMEY3Q0QxN0JCRkM1
QjAwNDY0RkU0IC8qIERGR0Rlc2lyZWRUcmFuc2l0aW9ucy5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMkMwRjdDQjE3QkJGQzVCMDA0NjRGRTQgLyog
REZHRGVzaXJlZFRyYW5zaXRpb25zLmNwcCAqLzsgfTsKQEAgLTE2NDQsNiArMTY1MSwxMyBAQAog
CQkwRjJCREM1MDE1MjI4RkZBMDBDRDg5MTAgLyogREZHVmFyaWFibGVFdmVudC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBERkdWYXJpYWJsZUV2ZW50LmNwcDsgcGF0
aCA9IGRmZy9ERkdWYXJpYWJsZUV2ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMEYyRkM3NzAxNkUxMkY2RjAwMzhEOTc2IC8qIERGR0RDRVBoYXNlLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IERGR0RDRVBoYXNlLmNwcDsgcGF0aCA9IGRmZy9E
RkdEQ0VQaGFzZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGMkZDNzcxMTZF
MTJGNkYwMDM4RDk3NiAvKiBERkdEQ0VQaGFzZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IG5hbWUgPSBERkdEQ0VQaGFzZS5oOyBwYXRoID0gZGZnL0RGR0RDRVBoYXNlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGMkZDQ0YyMThBNjAwNzAwMDFBMjdGOCAvKiBERkdHcmFw
aFNhZmVwb2ludC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBERkdH
cmFwaFNhZmVwb2ludC5jcHA7IHBhdGggPSBkZmcvREZHR3JhcGhTYWZlcG9pbnQuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRjJGQ0NGMzE4QTYwMDcwMDAxQTI3RjggLyogREZH
R3JhcGhTYWZlcG9pbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gREZHR3Jh
cGhTYWZlcG9pbnQuaDsgcGF0aCA9IGRmZy9ERkdHcmFwaFNhZmVwb2ludC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQkwRjJGQ0NGNDE4QTYwMDcwMDAxQTI3RjggLyogREZHU2FmZXBv
aW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IERGR1NhZmVwb2lu
dC5jcHA7IHBhdGggPSBkZmcvREZHU2FmZXBvaW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJMEYyRkNDRjUxOEE2MDA3MDAwMUEyN0Y4IC8qIERGR1NhZmVwb2ludC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBERkdTYWZlcG9pbnQuaDsgcGF0aCA9IGRmZy9E
RkdTYWZlcG9pbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEYyRkNDRjYxOEE2
MDA3MDAwMUEyN0Y4IC8qIERGR1NjYW5uYWJsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IG5hbWUgPSBERkdTY2FubmFibGUuaDsgcGF0aCA9IGRmZy9ERkdTY2FubmFibGUuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEYyRkNDRjcxOEE2MDA3MDAwMUEyN0Y4IC8qIERGR1Ro
cmVhZERhdGEuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gREZHVGhy
ZWFkRGF0YS5jcHA7IHBhdGggPSBkZmcvREZHVGhyZWFkRGF0YS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTBGMkZDQ0Y4MThBNjAwNzAwMDFBMjdGOCAvKiBERkdUaHJlYWREYXRh
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IERGR1RocmVhZERhdGEuaDsgcGF0
aCA9IGRmZy9ERkdUaHJlYWREYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBG
MzRCMTQ3MTZENDIwMEUwMDFDREE1QSAvKiBERkdVc2VLaW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgbmFtZSA9IERGR1VzZUtpbmQuY3BwOyBwYXRoID0gZGZnL0RGR1VzZUtp
bmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjM0QjE0ODE2RDQyMDBFMDAx
Q0RBNUEgLyogREZHVXNlS2luZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBE
RkdVc2VLaW5kLmg7IHBhdGggPSBkZmcvREZHVXNlS2luZC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkwRjM0QjE0QjE2RDQzRTBDMDAxQ0RBNUEgLyogUG9seW1vcnBoaWNBY2Nlc3NT
dHJ1Y3R1cmVMaXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBvbHltb3Jw
aGljQWNjZXNzU3RydWN0dXJlTGlzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MjgwMiw3ICsyODE2LDcgQEAKIAkJQzI5RUNCMDExODA0RDBFRDAwRDJDQkI0IC8qIEN1cnJlbnRU
aGlzSW5zaWRlQmxvY2tHZXR0ZXJUZXN0Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBuYW1lID0gQ3VycmVudFRoaXNJbnNpZGVCbG9ja0dldHRlclRlc3QubW07IHBhdGggPSBB
UEkvdGVzdHMvQ3VycmVudFRoaXNJbnNpZGVCbG9ja0dldHRlclRlc3QubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUMyOUVDQjAyMTgwNEQwRUQwMEQyQ0JCNCAvKiBDdXJyZW50VGhp
c0luc2lkZUJsb2NrR2V0dGVyVGVzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUg
PSBDdXJyZW50VGhpc0luc2lkZUJsb2NrR2V0dGVyVGVzdC5oOyBwYXRoID0gQVBJL3Rlc3RzL0N1
cnJlbnRUaGlzSW5zaWRlQmxvY2tHZXR0ZXJUZXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUMyQTdGNjg3MTYwNDMyRDQwMEY3NkI5OCAvKiBKU0Rlc3RydWN0aWJsZU9iamVjdC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0Rlc3RydWN0aWJsZU9iamVjdC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotICAgICAgIEMyQjZENzUyMThBMzM3OTMwMDRB
OTMwMSAvKiBXcml0ZUJhcnJpZXJJbmxpbmVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFdyaXRlQmFycmllcklubGluZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJQzJCNkQ3NTIxOEEzMzc5MzAwNEE5MzAxIC8qIFdyaXRlQmFycmllcklubGluZXMuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV3JpdGVCYXJyaWVySW5saW5lcy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDMkI5MTZDMTE0REEwMTRFMDBDQkFDODYgLyogTWFy
a2VkQWxsb2NhdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1hcmtlZEFs
bG9jYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDMkI5MTZDNDE0REEwNDBD
MDBDQkFDODYgLyogTWFya2VkQWxsb2NhdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IE1hcmtlZEFsbG9jYXRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUMyQzBGN0NCMTdCQkZDNUIwMDQ2NEZFNCAvKiBERkdEZXNpcmVkVHJhbnNpdGlvbnMu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gREZHRGVzaXJlZFRyYW5z
aXRpb25zLmNwcDsgcGF0aCA9IGRmZy9ERkdEZXNpcmVkVHJhbnNpdGlvbnMuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzY2Myw3ICszNjc3LDcgQEAKIAkJN0VGNkUwQkIwRUI3
QTFFQzAwNzlBRkFGIC8qIHJ1bnRpbWUgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNo
aWxkcmVuID0gKAotICAgICAgICAgICAgICAgQzJCNkQ3NTIxOEEzMzc5MzAwNEE5MzAxIC8qIFdy
aXRlQmFycmllcklubGluZXMuaCAqLywKKwkJCQlDMkI2RDc1MjE4QTMzNzkzMDA0QTkzMDEgLyog
V3JpdGVCYXJyaWVySW5saW5lcy5oICovLAogCQkJCUJDRjYwNTExMEUyMDNFRjgwMEI5QTY0RCAv
KiBBcmdMaXN0LmNwcCAqLywKIAkJCQlCQ0Y2MDUxMjBFMjAzRUY4MDBCOUE2NEQgLyogQXJnTGlz
dC5oICovLAogCQkJCUJDMjU3REU1MEUxRjUxQzUwMDE2QjZDOSAvKiBBcmd1bWVudHMuY3BwICov
LApAQCAtNDA4Nyw4ICs0MTAxLDYgQEAKIAkJODZFQzlEQjMxMzI4REY0NDAwMkIyQUQ3IC8qIGRm
ZyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCi0JCQkJMkFDQ0Yz
REMxODVGRTI2QjAwODNFMkFEIC8qIERGR1N0b3JlQmFycmllckVsaXNpb25QaGFzZS5jcHAgKi8s
Ci0JCQkJMkFDQ0YzREQxODVGRTI2QjAwODNFMkFEIC8qIERGR1N0b3JlQmFycmllckVsaXNpb25Q
aGFzZS5oICovLAogCQkJCUE3N0E0MjM2MTdBMEJCRkQwMEE4REI4MSAvKiBERkdBYnN0cmFjdEhl
YXAuY3BwICovLAogCQkJCUE3N0E0MjM3MTdBMEJCRkQwMEE4REI4MSAvKiBERkdBYnN0cmFjdEhl
YXAuaCAqLywKIAkJCQlBNzA0RDhGRTE3QTBCQUE4MDA2QkE1NTQgLyogREZHQWJzdHJhY3RJbnRl
cnByZXRlci5oICovLApAQCAtNDE5MCw2ICs0MjAyLDggQEAKIAkJCQk4NkVDOURCNjEzMjhERjgy
MDAyQjJBRDcgLyogREZHR2VuZXJhdGlvbkluZm8uaCAqLywKIAkJCQk4NkVDOURCNzEzMjhERjgy
MDAyQjJBRDcgLyogREZHR3JhcGguY3BwICovLAogCQkJCTg2RUM5REI4MTMyOERGODIwMDJCMkFE
NyAvKiBERkdHcmFwaC5oICovLAorCQkJCTBGMkZDQ0YyMThBNjAwNzAwMDFBMjdGOCAvKiBERkdH
cmFwaFNhZmVwb2ludC5jcHAgKi8sCisJCQkJMEYyRkNDRjMxOEE2MDA3MDAwMUEyN0Y4IC8qIERG
R0dyYXBoU2FmZXBvaW50LmggKi8sCiAJCQkJMEZCMTRFMjAxODEyNTcwQjAwOUI2QjREIC8qIERG
R0lubGluZUNhY2hlV3JhcHBlci5oICovLAogCQkJCTBGQjE0RTIyMTgxMzA5NTUwMDlCNkI0RCAv
KiBERkdJbmxpbmVDYWNoZVdyYXBwZXJJbmxpbmVzLmggKi8sCiAJCQkJQTcwNEQ5MDAxN0EwQkFB
ODAwNkJBNTU0IC8qIERGR0luUGxhY2VBYnN0cmFjdFN0YXRlLmNwcCAqLywKQEAgLTQyNjIsOCAr
NDI3NiwxMSBAQAogCQkJCTg2RUM5REMxMTMyOERGODIwMDJCMkFENyAvKiBERkdSZWdpc3RlckJh
bmsuaCAqLywKIAkJCQkwRjY2NkVDQTE4MzZCMzdFMDBEMDE3RjEgLyogREZHUmVzdXJyZWN0aW9u
Rm9yVmFsaWRhdGlvblBoYXNlLmNwcCAqLywKIAkJCQkwRjY2NkVDQjE4MzZCMzdFMDBEMDE3RjEg
LyogREZHUmVzdXJyZWN0aW9uRm9yVmFsaWRhdGlvblBoYXNlLmggKi8sCisJCQkJMEYyRkNDRjQx
OEE2MDA3MDAwMUEyN0Y4IC8qIERGR1NhZmVwb2ludC5jcHAgKi8sCisJCQkJMEYyRkNDRjUxOEE2
MDA3MDAwMUEyN0Y4IC8qIERGR1NhZmVwb2ludC5oICovLAogCQkJCUE3N0E0MjNDMTdBMEJCRkQw
MEE4REI4MSAvKiBERkdTYWZlVG9FeGVjdXRlLmggKi8sCiAJCQkJQTc0MTAxN0UxNzlEQUY4MDAw
MkVCOEJBIC8qIERGR1NhbmVTdHJpbmdHZXRCeVZhbFNsb3dQYXRoR2VuZXJhdG9yLmggKi8sCisJ
CQkJMEYyRkNDRjYxOEE2MDA3MDAwMUEyN0Y4IC8qIERGR1NjYW5uYWJsZS5oICovLAogCQkJCTg2
RUNBM0Y5MTMyREYyNUEwMDJCMkFENyAvKiBERkdTY29yZUJvYXJkLmggKi8sCiAJCQkJMEYxRTNB
NjUxNTNBMjFERjAwMEY5NDU2IC8qIERGR1NpbGVudFJlZ2lzdGVyU2F2ZVBsYW4uaCAqLywKIAkJ
CQkwRjFFM0E1MDE1MzdDMkNCMDAwRjk0NTYgLyogREZHU2xvd1BhdGhHZW5lcmF0b3IuaCAqLywK
QEAgLTQyNzcsOSArNDI5NCwxMyBAQAogCQkJCTBGQzIwQ0I4MTg1NTZBMzUwMEM5RTk1NCAvKiBE
RkdTU0FMb3dlcmluZ1BoYXNlLmggKi8sCiAJCQkJMEY5RkI0RjIxN0ZDQjkxNzAwQ0I2N0Y4IC8q
IERGR1N0YWNrTGF5b3V0UGhhc2UuY3BwICovLAogCQkJCTBGOUZCNEYzMTdGQ0I5MTcwMENCNjdG
OCAvKiBERkdTdGFja0xheW91dFBoYXNlLmggKi8sCisJCQkJMkFDQ0YzREMxODVGRTI2QjAwODNF
MkFEIC8qIERGR1N0b3JlQmFycmllckVsaXNpb25QaGFzZS5jcHAgKi8sCisJCQkJMkFDQ0YzREQx
ODVGRTI2QjAwODNFMkFEIC8qIERGR1N0b3JlQmFycmllckVsaXNpb25QaGFzZS5oICovLAogCQkJ
CTBGQzIwQ0IzMTg1MkUyQzYwMEM5RTk1NCAvKiBERkdTdHJlbmd0aFJlZHVjdGlvblBoYXNlLmNw
cCAqLywKIAkJCQkwRkMyMENCNDE4NTJFMkM2MDBDOUU5NTQgLyogREZHU3RyZW5ndGhSZWR1Y3Rp
b25QaGFzZS5oICovLAogCQkJCTBGNjM5NDc2MTVEQ0UzNDcwMDZBNTk3QyAvKiBERkdTdHJ1Y3R1
cmVBYnN0cmFjdFZhbHVlLmggKi8sCisJCQkJMEYyRkNDRjcxOEE2MDA3MDAwMUEyN0Y4IC8qIERG
R1RocmVhZERhdGEuY3BwICovLAorCQkJCTBGMkZDQ0Y4MThBNjAwNzAwMDFBMjdGOCAvKiBERkdU
aHJlYWREYXRhLmggKi8sCiAJCQkJMEZDMDk3OUYxNDZCMjhDNzAwQ0YyNDQyIC8qIERGR1RodW5r
cy5jcHAgKi8sCiAJCQkJMEZDMDk3QTAxNDZCMjhDNzAwQ0YyNDQyIC8qIERGR1RodW5rcy5oICov
LAogCQkJCTBGRDhBMzFGMTdENTFGNTcwMENBMkM0MCAvKiBERkdUaWVyVXBDaGVja0luamVjdGlv
blBoYXNlLmNwcCAqLywKQEAgLTQ2OTgsNyArNDcxOSw3IEBACiAJCQkJNjVDMDI4NUQxNzE3OTY2
ODAwMzUxRTM1IC8qIEFSTXY3RE9wY29kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkE2ODI5NUIx
ODc1RjgwNTAwQjZDM0UyIC8qIENvcHlXcml0ZUJhcnJpZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTJBNEVDOTBDMTg2MEQ2QzIwMDk0Rjc4MiAvKiBXcml0ZUJhcnJpZXJCdWZmZXIuaCBpbiBIZWFk
ZXJzICovLAotICAgICAgICAgICAgICAgQzJCNkQ3NTMxOEEzMzc5MzAwNEE5MzAxIC8qIFdyaXRl
QmFycmllcklubGluZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCUMyQjZENzUzMThBMzM3OTMwMDRB
OTMwMSAvKiBXcml0ZUJhcnJpZXJJbmxpbmVzLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRTU5MzJB
ODE4M0M1QTI2MDBBMUVDQ0MgLyogVk1FbnRyeVNjb3BlLmggaW4gSGVhZGVycyAqLywKIAkJCQlB
NTMyNDM5MzE4NTY5NzA5MDAyRUQ2OTIgLyogQ29kZUdlbmVyYXRvckluc3BlY3RvclN0cmluZ3Mu
cHkgaW4gSGVhZGVycyAqLywKIAkJCQlBNTMyNDM5MjE4NTY5NzA5MDAyRUQ2OTIgLyogQ29kZUdl
bmVyYXRvckluc3BlY3Rvci5weSBpbiBIZWFkZXJzICovLApAQCAtNTA3Nyw2ICs1MDk4LDcgQEAK
IAkJCQlBNzkwREQ3MDE4MkY0OTk3MDA1ODg4MDcgLyogSlNTZXRJdGVyYXRvci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMEYyNEU1NEUxN0VFMjc0OTAwQUJCMjE3IC8qIEpJVE9wZXJhdGlvbldyYXBw
ZXJzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjc2NkQzMTE1QUE4MTEyMDA4RjM2M0UgLyogSklU
U3R1YlJvdXRpbmUuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGMkZDQ0ZBMThBNjAwNzAwMDFBMjdG
OCAvKiBERkdHcmFwaFNhZmVwb2ludC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY3NjZEMkMxNUE4
Q0MzQTAwOEYzNjNFIC8qIEpJVFN0dWJSb3V0aW5lU2V0LmggaW4gSGVhZGVycyAqLywKIAkJCQkx
NEM1MjQyQjBGNTM1NUU5MDBCQTNEMDQgLyogSklUU3R1YnMuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUZFRjY4MzVFMTc0MzQzQ0MwMEEzMkUyNSAvKiBKSVRTdHVic0FSTS5oIGluIEhlYWRlcnMgKi8s
CkBAIC01MTE2LDYgKzUxMzgsNyBAQAogCQkJCTg2RTNDNjEzMTY3QkFCRDcwMDZENzYwQSAvKiBK
U0NvbnRleHQuaCBpbiBIZWFkZXJzICovLAogCQkJCTg2RTNDNjE3MTY3QkFCRUUwMDZENzYwQSAv
KiBKU0NvbnRleHRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxOEM0MUUwRTE2RjVD
RDAwQjM0NDYwIC8qIEpTQ29udGV4dFJlZi5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEYyRkNDRkYx
OEE2MDA3MDAwMUEyN0Y4IC8qIERGR1RocmVhZERhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCTE0
OENEMUQ4MTA4Q0Y5MDIwMDgxNjNDNiAvKiBKU0NvbnRleHRSZWZQcml2YXRlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlBNzIwMjhCODE3OTc2MDFFMDA5ODAyOEMgLyogSlNDVGVzdFJ1bm5lclV0aWxz
LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjJCNjZFQzE3QjZCNUFCMDBBN0FFM0YgLyogSlNEYXRh
Vmlldy5oIGluIEhlYWRlcnMgKi8sCkBAIC01MjM2LDYgKzUyNTksNyBAQAogCQkJCTg2QzU2OEUx
MTFBMjEzRUUwMDA3RjdGMCAvKiBNYWNyb0Fzc2VtYmxlck1JUFMuaCBpbiBIZWFkZXJzICovLAog
CQkJCTg2QUU2NEE5MTM1RTVFMUMwMDk2MzAxMiAvKiBNYWNyb0Fzc2VtYmxlclNINC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJODYwMTYxRTQwRjNBODNDMTAwRjg0NzEwIC8qIE1hY3JvQXNzZW1ibGVy
WDg2LmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjJGQ0NGQzE4QTYwMDcwMDAxQTI3RjggLyogREZH
U2FmZXBvaW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk4NjAxNjFFNTBGM0E4M0MxMDBGODQ3MTAg
LyogTWFjcm9Bc3NlbWJsZXJYODZfNjQuaCBpbiBIZWFkZXJzICovLAogCQkJCTg2MDE2MUU2MEYz
QTgzQzEwMEY4NDcxMCAvKiBNYWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQTcwMDg3M0ExN0NCRTg1MzAwQzNFNjQzIC8qIE1hcENvbnN0cnVjdG9yLmggaW4gSGVh
ZGVycyAqLywKQEAgLTU0NDcsNiArNTQ3MSw3IEBACiAJCQkJMEYyNDJEQTcxM0YzQjFFODAwN0FE
RDRDIC8qIFdlYWtSZWZlcmVuY2VIYXJ2ZXN0ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTE0RTg0
RkExMTRFRTFBQ0MwMEQ2RDVENCAvKiBXZWFrU2V0LmggaW4gSGVhZGVycyAqLywKIAkJCQkxNDE1
MDEzMzE1NEJCMTNGMDA1RDhDOTggLyogV2Vha1NldElubGluZXMuaCBpbiBIZWFkZXJzICovLAor
CQkJCTBGMkZDQ0ZEMThBNjAwNzAwMDFBMjdGOCAvKiBERkdTY2FubmFibGUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUJDMThDNDdBMEUxNkY1Q0QwMEIzNDQ2MCAvKiBXZWJLaXRBdmFpbGFiaWxpdHku
aCBpbiBIZWFkZXJzICovLAogCQkJCUE3NERFRjkyMTgyRDk5MTQwMDUyMkMyMiAvKiBNYXBJdGVy
YXRvckNvbnN0cnVjdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlBN0RDQjk3MzEyRTUxOTNGMDA5
MTE5NDAgLyogV3JpdGVCYXJyaWVyLmggaW4gSGVhZGVycyAqLywKQEAgLTYwNDEsNiArNjA2Niw3
IEBACiAJCQkJQTcwNDQ3RUQxN0EwQkQ3MDAwRjU4OThFIC8qIER1bXBDb250ZXh0LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTE0N0YzOUM3MTA3RUMzNzYwMDQyN0E0OCAvKiBFcnJvci5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkxNDdGMzlDODEwN0VDMzc2MDA0MjdBNDggLyogRXJyb3JDb25zdHJ1
Y3Rvci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkwRjJGQ0NGOTE4QTYwMDcwMDAxQTI3RjggLyog
REZHR3JhcGhTYWZlcG9pbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQ3RjM5QzkxMDdFQzM3
NjAwNDI3QTQ4IC8qIEVycm9ySW5zdGFuY2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQ3RjM5
Q0ExMDdFQzM3NjAwNDI3QTQ4IC8qIEVycm9yUHJvdG90eXBlLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUE1RkQwMDY3MTg5QUZFOUMwMDYzMzIzMSAvKiBTY3JpcHRBcmd1bWVudHMuY3BwIGluIFNv
dXJjZXMgKi8sCkBAIC02MjExLDYgKzYyMzcsNyBAQAogCQkJCUE3NDgyQjk0MTE2NzExNDcwMDNC
MDcxMiAvKiBKU1dlYWtPYmplY3RNYXBSZWZQcml2YXRlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTE0NDI1NjYxMTVFREU5OEQwMDY2QTQ5QiAvKiBKU1dpdGhTY29wZS5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlBNTAzRkExQjE4OEUwRkIwMDAxMTBGMTQgLyogSlNKYXZhU2NyaXB0Q2FsbEZyYW1l
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTBGMkZDQ0ZFMThBNjAwNzAwMDFBMjdGOCAvKiBERkdU
aHJlYWREYXRhLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg2RTNDNjE4MTY3QkFCRUUwMDZENzYw
QSAvKiBKU1dyYXBwZXJNYXAubW0gaW4gU291cmNlcyAqLywKIAkJCQkxNDI4MDg3MDEwN0VDMTM0
MDAxM0U3QjIgLyogSlNXcmFwcGVyT2JqZWN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE1N0Qy
M0U5MTg5MUIwNzcwMDMxQzdGQSAvKiBKU0dsb2JhbE9iamVjdERlYnVnZ2VyQWdlbnQuY3BwIGlu
IFNvdXJjZXMgKi8sCkBAIC02MzIyLDYgKzYzNDksNyBAQAogCQkJCUMyMjU0OTQzMTVGN0RCQUEw
MDY1RTg5OCAvKiBTbG90VmlzaXRvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5MzMwNDAyQzBF
NkE3NjQwMDA3ODZFNkEgLyogU21hbGxTdHJpbmdzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBG
OEYyQjlFMTczMDZDOEQwMDdEQkRBNSAvKiBTb3VyY2VDb2RlLmNwcCBpbiBTb3VyY2VzICovLAor
CQkJCTBGMkZDQ0ZCMThBNjAwNzAwMDFBMjdGOCAvKiBERkdTYWZlcG9pbnQuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQTVGRDAwNzkxODlCMDUxMDAwNjMzMjMxIC8qIENvbnNvbGVNZXNzYWdlLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTBGNDkzQUZBMTZEMENBRDMwMDg0NTA4QiAvKiBTb3VyY2VQ
cm92aWRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFNDlEQzE2QjEyRUYyOTNFMDAxODRBMUYg
LyogU291cmNlUHJvdmlkZXJDYWNoZS5jcHAgaW4gU291cmNlcyAqLywKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTGlua0J1ZmZlci5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9MaW5rQnVmZmVyLmNwcAkocmV2aXNpb24gMTYz
NzUyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9MaW5rQnVmZmVyLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMzAsNiArMzAsNyBAQAogCiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgi
CiAjaW5jbHVkZSAiSklUQ29kZS5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRl
ICJPcHRpb25zLmgiCiAjaW5jbHVkZSAiVk0uaCIKICNpbmNsdWRlIDx3dGYvQ29tcGlsYXRpb25U
aHJlYWQuaD4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9BcnJheVByb2Zp
bGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9BcnJh
eVByb2ZpbGUuY3BwCShyZXZpc2lvbiAxNjM3NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvQXJyYXlQcm9maWxlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcsNyBA
QAogI2luY2x1ZGUgIkFycmF5UHJvZmlsZS5oIgogCiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgiCisj
aW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgPHd0Zi9Db21tYVByaW50ZXIuaD4KICNp
bmNsdWRlIDx3dGYvU3RyaW5nRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL1N0cmluZ1ByaW50U3Ry
ZWFtLmg+CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVCYXNp
Y0Jsb2NrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
Qnl0ZWNvZGVCYXNpY0Jsb2NrLmNwcAkocmV2aXNpb24gMTYzNzUyKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlQmFzaWNCbG9jay5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJCeXRlY29kZUJhc2ljQmxvY2suaCIKIAogI2lu
Y2x1ZGUgIkNvZGVCbG9jay5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJQ
cmVjaXNlSnVtcFRhcmdldHMuaCIKIAogbmFtZXNwYWNlIEpTQyB7CkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVMaXZlbmVzc0FuYWx5c2lzSW5saW5lcy5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUxpdmVu
ZXNzQW5hbHlzaXNJbmxpbmVzLmgJKHJldmlzaW9uIDE2Mzc1MikKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUxpdmVuZXNzQW5hbHlzaXNJbmxpbmVzLmgJKHdvcmtp
bmcgY29weSkKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkJ5dGVjb2RlTGl2ZW5lc3NB
bmFseXNpcy5oIgogI2luY2x1ZGUgIkNvZGVCbG9jay5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMu
aCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9DYWxsTGlua0luZm8uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9DYWxsTGlua0luZm8uY3BwCShyZXZpc2lvbiAxNjM3NTIpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ2FsbExpbmtJbmZvLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMjgsNiArMjgsNyBAQAogCiAjaW5jbHVkZSAiREZHT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUg
IkRGR1RodW5rcy5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJSZXBhdGNo
QnVmZmVyLmgiCiAKICNpZiBFTkFCTEUoSklUKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL0NvZGVCbG9jay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAJKHJldmlzaW9uIDE2Mzc1MikKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0z
Niw2ICszNiw3IEBACiAjaW5jbHVkZSAiREZHQ2FwYWJpbGl0aWVzLmgiCiAjaW5jbHVkZSAiREZH
Q29tbW9uLmgiCiAjaW5jbHVkZSAiREZHRHJpdmVyLmgiCisjaW5jbHVkZSAiREZHSklUQ29kZS5o
IgogI2luY2x1ZGUgIkRGR05vZGUuaCIKICNpbmNsdWRlICJERkdXb3JrbGlzdC5oIgogI2luY2x1
ZGUgIkRlYnVnZ2VyLmgiCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29k
ZUJsb2NrLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0Nv
ZGVCbG9jay5oCShyZXZpc2lvbiAxNjM3NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvQ29kZUJsb2NrLmgJKHdvcmtpbmcgY29weSkKQEAgLTU2LDcgKzU2LDYgQEAKICNpbmNs
dWRlICJIYW5kbGVySW5mby5oIgogI2luY2x1ZGUgIk9iamVjdEFsbG9jYXRpb25Qcm9maWxlLmgi
CiAjaW5jbHVkZSAiT3B0aW9ucy5oIgotI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRl
ICJQdXRQcm9wZXJ0eVNsb3QuaCIKICNpbmNsdWRlICJJbnN0cnVjdGlvbi5oIgogI2luY2x1ZGUg
IkpJVENvZGUuaCIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxv
Y2tKZXR0aXNvbmluZ1dhdGNocG9pbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2tKZXR0aXNvbmluZ1dhdGNocG9pbnQuY3BwCShyZXZp
c2lvbiAxNjM3NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2Nr
SmV0dGlzb25pbmdXYXRjaHBvaW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBA
QAogCiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgiCiAjaW5jbHVkZSAiREZHQ29tbW9uLmgiCisjaW5j
bHVkZSAiT3BlcmF0aW9ucy5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIApJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL0V4ZWN1dGlvbkNvdW50ZXIuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9FeGVjdXRpb25Db3VudGVyLmNwcAkocmV2
aXNpb24gMTYzNzUyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0V4ZWN1dGlv
bkNvdW50ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRl
ICJDb2RlQmxvY2suaCIKICNpbmNsdWRlICJFeGVjdXRhYmxlQWxsb2NhdG9yLmgiCisjaW5jbHVk
ZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgPHd0Zi9TdHJpbmdFeHRyYXMuaD4KIAogbmFtZXNw
YWNlIEpTQyB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUHJvZmlsZWRD
b2RlQmxvY2tKZXR0aXNvbmluZ1dhdGNocG9pbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Qcm9maWxlZENvZGVCbG9ja0pldHRpc29uaW5nV2F0Y2hw
b2ludC5jcHAJKHJldmlzaW9uIDE2Mzc1MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9Qcm9maWxlZENvZGVCbG9ja0pldHRpc29uaW5nV2F0Y2hwb2ludC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJDb2RlQmxvY2suaCIKICNpbmNsdWRl
ICJERkdDb21tb24uaCIKICNpbmNsdWRlICJERkdFeGl0UHJvZmlsZS5oIgorI2luY2x1ZGUgIk9w
ZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckNhbGxGcmFtZS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQ2FsbEZyYW1lLmNwcAkocmV2aXNpb24g
MTYzNzUyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQ2FsbEZy
YW1lLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjksNyArMjksNiBAQAogI2luY2x1ZGUgImNvbmZp
Zy5oIgogI2luY2x1ZGUgIkRlYnVnZ2VyQ2FsbEZyYW1lLmgiCiAKLSNpbmNsdWRlICJDYWxsRnJh
bWVJbmxpbmVzLmgiCiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgiCiAjaW5jbHVkZSAiSW50ZXJwcmV0
ZXIuaCIKICNpbmNsdWRlICJKU0FjdGl2YXRpb24uaCIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHRGVzaXJlZFRyYW5zaXRpb25zLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0Rlc2lyZWRUcmFuc2l0aW9ucy5jcHAJKHJldmlzaW9uIDE2
Mzc1MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRGVzaXJlZFRyYW5zaXRpb25z
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzEsNiArMzEsNyBAQAogCiAjaW5jbHVkZSAiQ29kZUJs
b2NrLmgiCiAjaW5jbHVkZSAiREZHQ29tbW9uRGF0YS5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMu
aCIKIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgewogCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0RyaXZlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdEcml2ZXIuY3BwCShyZXZpc2lvbiAxNjM3NTIpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0RyaXZlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEyMSw3
ICsxMjEsNyBAQCBzdGF0aWMgQ29tcGlsYXRpb25SZXN1bHQgY29tcGlsZUltcGwoCiAgICAgICAg
IHJldHVybiBDb21waWxhdGlvbkRlZmVycmVkOwogICAgIH0KICAgICAKLSAgICBwbGFuLT5jb21w
aWxlSW5UaHJlYWQoKnZtLmRmZ1N0YXRlKTsKKyAgICBwbGFuLT5jb21waWxlSW5UaHJlYWQoKnZt
LmRmZ1N0YXRlLCAwKTsKICAgICByZXR1cm4gcGxhbi0+ZmluYWxpemVXaXRob3V0Tm90aWZ5aW5n
Q2FsbGJhY2soKTsKIH0KICNlbHNlIC8vIEVOQUJMRShERkdfSklUKQpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5jcHAJKHJldmlzaW9uIDE2Mzc1MikKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03OTAsNiAr
NzkwLDU5IEBAIEpTQXJyYXlCdWZmZXJWaWV3KiBHcmFwaDo6dHJ5R2V0Rm9sZGFibGUKICAgICBy
ZXR1cm4gdHJ5R2V0Rm9sZGFibGVWaWV3KGNoaWxkKG5vZGUsIDApLm5vZGUoKSwgbm9kZS0+YXJy
YXlNb2RlKCkpOwogfQogCit2b2lkIEdyYXBoOjp2aXNpdENoaWxkcmVuKFNsb3RWaXNpdG9yJiB2
aXNpdG9yKQoreworICAgIGZvciAoQmxvY2tJbmRleCBibG9ja0luZGV4ID0gbnVtQmxvY2tzKCk7
IGJsb2NrSW5kZXgtLTspIHsKKyAgICAgICAgQmFzaWNCbG9jayogYmxvY2sgPSB0aGlzLT5ibG9j
ayhibG9ja0luZGV4KTsKKyAgICAgICAgaWYgKCFibG9jaykKKyAgICAgICAgICAgIGNvbnRpbnVl
OworICAgICAgICAKKyAgICAgICAgZm9yICh1bnNpZ25lZCBub2RlSW5kZXggPSAwOyBub2RlSW5k
ZXggPCBibG9jay0+c2l6ZSgpOyArK25vZGVJbmRleCkgeworICAgICAgICAgICAgTm9kZSogbm9k
ZSA9IGJsb2NrLT5hdChub2RlSW5kZXgpOworICAgICAgICAgICAgCisgICAgICAgICAgICBzd2l0
Y2ggKG5vZGUtPm9wKCkpIHsKKyAgICAgICAgICAgIGNhc2UgSlNDb25zdGFudDoKKyAgICAgICAg
ICAgIGNhc2UgV2Vha0pTQ29uc3RhbnQ6CisgICAgICAgICAgICAgICAgdmlzaXRvci5hcHBlbmRV
bmJhcnJpZXJlZFJlYWRPbmx5VmFsdWUodmFsdWVPZkpTQ29uc3RhbnQobm9kZSkpOworICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgY2FzZSBDaGVj
a0Z1bmN0aW9uOgorICAgICAgICAgICAgICAgIHZpc2l0b3IuYXBwZW5kVW5iYXJyaWVyZWRSZWFk
T25seVBvaW50ZXIobm9kZS0+ZnVuY3Rpb24oKSk7CisgICAgICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgICAgICAgICAgCisgICAgICAgICAgICBjYXNlIENoZWNrRXhlY3V0YWJsZToKKyAgICAg
ICAgICAgICAgICB2aXNpdG9yLmFwcGVuZFVuYmFycmllcmVkUmVhZE9ubHlQb2ludGVyKG5vZGUt
PmV4ZWN1dGFibGUoKSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAg
CisgICAgICAgICAgICBjYXNlIENoZWNrU3RydWN0dXJlOgorICAgICAgICAgICAgICAgIGZvciAo
dW5zaWduZWQgaSA9IG5vZGUtPnN0cnVjdHVyZVNldCgpLnNpemUoKTsgaS0tOykKKyAgICAgICAg
ICAgICAgICAgICAgdmlzaXRvci5hcHBlbmRVbmJhcnJpZXJlZFJlYWRPbmx5UG9pbnRlcihub2Rl
LT5zdHJ1Y3R1cmVTZXQoKVtpXSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICAgICAgCisgICAgICAgICAgICBjYXNlIFN0cnVjdHVyZVRyYW5zaXRpb25XYXRjaHBvaW50Ogor
ICAgICAgICAgICAgY2FzZSBOZXdPYmplY3Q6CisgICAgICAgICAgICBjYXNlIEFycmF5aWZ5VG9T
dHJ1Y3R1cmU6CisgICAgICAgICAgICBjYXNlIE5ld1N0cmluZ09iamVjdDoKKyAgICAgICAgICAg
ICAgICB2aXNpdG9yLmFwcGVuZFVuYmFycmllcmVkUmVhZE9ubHlQb2ludGVyKG5vZGUtPnN0cnVj
dHVyZSgpKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAKKyAgICAg
ICAgICAgIGNhc2UgUHV0U3RydWN0dXJlOgorICAgICAgICAgICAgY2FzZSBQaGFudG9tUHV0U3Ry
dWN0dXJlOgorICAgICAgICAgICAgY2FzZSBBbGxvY2F0ZVByb3BlcnR5U3RvcmFnZToKKyAgICAg
ICAgICAgIGNhc2UgUmVhbGxvY2F0ZVByb3BlcnR5U3RvcmFnZToKKyAgICAgICAgICAgICAgICB2
aXNpdG9yLmFwcGVuZFVuYmFycmllcmVkUmVhZE9ubHlQb2ludGVyKAorICAgICAgICAgICAgICAg
ICAgICBub2RlLT5zdHJ1Y3R1cmVUcmFuc2l0aW9uRGF0YSgpLnByZXZpb3VzU3RydWN0dXJlKTsK
KyAgICAgICAgICAgICAgICB2aXNpdG9yLmFwcGVuZFVuYmFycmllcmVkUmVhZE9ubHlQb2ludGVy
KAorICAgICAgICAgICAgICAgICAgICBub2RlLT5zdHJ1Y3R1cmVUcmFuc2l0aW9uRGF0YSgpLm5l
d1N0cnVjdHVyZSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgCisg
ICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
fQorICAgICAgICB9CisgICAgfQorfQorCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6REZHCiAKICNl
bmRpZgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguaAkocmV2aXNpb24gMTYz
NzUyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5oCSh3b3JraW5nIGNv
cHkpCkBAIC00MCw2ICs0MCw3IEBACiAjaW5jbHVkZSAiREZHTm9kZS5oIgogI2luY2x1ZGUgIkRG
R05vZGVBbGxvY2F0b3IuaCIKICNpbmNsdWRlICJERkdQbGFuLmgiCisjaW5jbHVkZSAiREZHU2Nh
bm5hYmxlLmgiCiAjaW5jbHVkZSAiREZHVmFyaWFkaWNGdW5jdGlvbi5oIgogI2luY2x1ZGUgIklu
bGluZUNhbGxGcmFtZVNldC5oIgogI2luY2x1ZGUgIkpTU3RhY2suaCIKQEAgLTc4LDcgKzc5LDcg
QEAgZW51bSBBZGRTcGVjdWxhdGlvbk1vZGUgewogLy8KIC8vIFRoZSBvcmRlciBtYXkgYmUgc2ln
bmlmaWNhbnQgZm9yIG5vZGVzIHdpdGggc2lkZS1lZmZlY3RzIChwcm9wZXJ0eSBhY2Nlc3Nlcywg
dmFsdWUgY29udmVyc2lvbnMpLgogLy8gTm9kZXMgdGhhdCBhcmUgJ2RlYWQnIHJlbWFpbiBpbiB0
aGUgdmVjdG9yIHdpdGggcmVmQ291bnQgMC4KLWNsYXNzIEdyYXBoIHsKK2NsYXNzIEdyYXBoIDog
cHVibGljIHZpcnR1YWwgU2Nhbm5hYmxlIHsKIHB1YmxpYzoKICAgICBHcmFwaChWTSYsIFBsYW4m
LCBMb25nTGl2ZWRTdGF0ZSYpOwogICAgIH5HcmFwaCgpOwpAQCAtNzk5LDYgKzgwMCw4IEBAIHB1
YmxpYzoKICAgICBKU0FycmF5QnVmZmVyVmlldyogdHJ5R2V0Rm9sZGFibGVWaWV3KE5vZGUqLCBB
cnJheU1vZGUpOwogICAgIEpTQXJyYXlCdWZmZXJWaWV3KiB0cnlHZXRGb2xkYWJsZVZpZXdGb3JD
aGlsZDEoTm9kZSopOwogICAgIAorICAgIHZpcnR1YWwgdm9pZCB2aXNpdENoaWxkcmVuKFNsb3RW
aXNpdG9yJikgb3ZlcnJpZGU7CisgICAgCiAgICAgVk0mIG1fdm07CiAgICAgUGxhbiYgbV9wbGFu
OwogICAgIENvZGVCbG9jayogbV9jb2RlQmxvY2s7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0dyYXBoU2FmZXBvaW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0dyYXBoU2FmZXBvaW50LmNwcAkocmV2aXNpb24gMCkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGhTYWZlcG9pbnQuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0wLDAgKzEsNDcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
CisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4g
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkRGR0dyYXBoU2FmZXBvaW50
LmgiCisKKyNpZiBFTkFCTEUoREZHX0pJVCkKKworI2luY2x1ZGUgIkRGR0dyYXBoLmgiCisKK25h
bWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKKworR3JhcGhTYWZlcG9pbnQ6OkdyYXBoU2Fm
ZXBvaW50KEdyYXBoJiBncmFwaCkKKyAgICA6IG1fc2FmZXBvaW50KGdyYXBoLm1fcGxhbikKK3sK
KyAgICBtX3NhZmVwb2ludC5hZGQoJmdyYXBoKTsKKyAgICBtX3NhZmVwb2ludC5iZWdpbigpOwor
fQorCitHcmFwaFNhZmVwb2ludDo6fkdyYXBoU2FmZXBvaW50KCkgeyB9CisKK30gfSAvLyBuYW1l
c3BhY2UgSlNDOjpERkcKKworI2VuZGlmIC8vIEVOQUJMRShERkdfSklUKQorCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoU2FmZXBvaW50LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaFNhZmVwb2ludC5oCShyZXZpc2lvbiAw
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaFNhZmVwb2ludC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBERkdHcmFwaFNhZmVwb2ludF9oCisjZGVmaW5lIERG
R0dyYXBoU2FmZXBvaW50X2gKKworI2lmIEVOQUJMRShERkdfSklUKQorCisjaW5jbHVkZSAiREZH
U2FmZXBvaW50LmgiCisKK25hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKKworY2xhc3Mg
R3JhcGg7CisKK2NsYXNzIEdyYXBoU2FmZXBvaW50IHsKK3B1YmxpYzoKKyAgICBHcmFwaFNhZmVw
b2ludChHcmFwaCYpOworICAgIH5HcmFwaFNhZmVwb2ludCgpOworICAgIAorcHJpdmF0ZToKKyAg
ICBTYWZlcG9pbnQgbV9zYWZlcG9pbnQ7Cit9OworCit9IH0gLy8gbmFtZXNwYWNlIEpTQzo6REZH
CisKKyNlbmRpZiAvLyBFTkFCTEUoREZHX0pJVCkKKworI2VuZGlmIC8vIERGR0dyYXBoU2FmZXBv
aW50X2gKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb2RlLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVENvZGUuY3BwCShy
ZXZpc2lvbiAxNjM3NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVENvZGUu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw3IEBACiAjaWYgRU5BQkxFKERGR19KSVQp
CiAKICNpbmNsdWRlICJDb2RlQmxvY2suaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAKIG5h
bWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdKSVRDb21waWxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdKSVRDb21waWxlci5jcHAJKHJldmlzaW9uIDE2Mzc1MikKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklUQ29tcGlsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC00MSw5ICs0MSwxMCBAQAogI2luY2x1ZGUgIkRGR1NwZWN1bGF0aXZlSklULmgiCiAjaW5jbHVk
ZSAiREZHVGh1bmtzLmgiCiAjaW5jbHVkZSAiSlNDSlNWYWx1ZUlubGluZXMuaCIKKyNpbmNsdWRl
ICJMaW5rQnVmZmVyLmgiCiAjaW5jbHVkZSAiTWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwu
aCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiVk0uaCIKLSNpbmNsdWRlICJM
aW5rQnVmZmVyLmgiCiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKIApJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb21waWxlci5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklUQ29tcGlsZXIuaAkocmV2aXNpb24gMTYz
NzUyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb21waWxlci5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yOSw3ICsyOSw2IEBACiAjaWYgRU5BQkxFKERGR19KSVQpCiAKICNpbmNs
dWRlICJDQ2FsbEhlbHBlcnMuaCIKLSNpbmNsdWRlICJDYWxsRnJhbWVJbmxpbmVzLmgiCiAjaW5j
bHVkZSAiQ29kZUJsb2NrLmgiCiAjaW5jbHVkZSAiREZHRGlzYXNzZW1ibGVyLmgiCiAjaW5jbHVk
ZSAiREZHR3JhcGguaCIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhp
dENvbXBpbGVyQ29tbW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR09TUkV4aXRDb21waWxlckNvbW1vbi5jcHAJKHJldmlzaW9uIDE2Mzc1MikKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdENvbXBpbGVyQ29tbW9uLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMjksNiArMjksNyBAQAogI2lmIEVOQUJMRShERkdfSklUKQogCiAjaW5j
bHVkZSAiQXJndW1lbnRzLmgiCisjaW5jbHVkZSAiREZHSklUQ29kZS5oIgogI2luY2x1ZGUgIkRG
R09wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJKSVQuaCIKICNpbmNsdWRlICJKU0NKU1ZhbHVlSW5s
aW5lcy5oIgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMu
Y3BwCShyZXZpc2lvbiAxNjM3NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09w
ZXJhdGlvbnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAi
Q29tbW9uU2xvd1BhdGhzLmgiCiAjaW5jbHVkZSAiQ29waWVkU3BhY2VJbmxpbmVzLmgiCiAjaW5j
bHVkZSAiREZHRHJpdmVyLmgiCisjaW5jbHVkZSAiREZHSklUQ29kZS5oIgogI2luY2x1ZGUgIkRG
R09TUkV4aXQuaCIKICNpbmNsdWRlICJERkdUaHVua3MuaCIKICNpbmNsdWRlICJERkdUb0ZUTERl
ZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjay5oIgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdPcGVyYXRpb25zLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdPcGVyYXRpb25zLmgJKHJldmlzaW9uIDE2Mzc1MikKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBA
QAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0y
OCw3ICsyOCw2IEBACiAKICNpZiBFTkFCTEUoREZHX0pJVCkKIAotI2luY2x1ZGUgIkRGR0pJVENv
bXBpbGVyLmgiCiAjaW5jbHVkZSAiSklUT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIlB1dEtpbmQu
aCIKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQbGFuLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1BsYW4uY3BwCShyZXZpc2lvbiAx
NjM3NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1BsYW4uY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC00MSw2ICs0MSw3IEBACiAjaW5jbHVkZSAiREZHRmFpbGVkRmluYWxpemVyLmgi
CiAjaW5jbHVkZSAiREZHRmx1c2hMaXZlbmVzc0FuYWx5c2lzUGhhc2UuaCIKICNpbmNsdWRlICJE
RkdGaXh1cFBoYXNlLmgiCisjaW5jbHVkZSAiREZHR3JhcGhTYWZlcG9pbnQuaCIKICNpbmNsdWRl
ICJERkdJbnZhbGlkYXRpb25Qb2ludEluamVjdGlvblBoYXNlLmgiCiAjaW5jbHVkZSAiREZHSklU
Q29tcGlsZXIuaCIKICNpbmNsdWRlICJERkdMSUNNUGhhc2UuaCIKQEAgLTEzNSw4ICsxMzYsMTAg
QEAgYm9vbCBQbGFuOjpyZXBvcnRDb21waWxlVGltZXMoKSBjb25zdAogICAgICAgICB8fCAoT3B0
aW9uczo6cmVwb3J0RlRMQ29tcGlsZVRpbWVzKCkgJiYgaXNGVEwobW9kZSkpOwogfQogCi12b2lk
IFBsYW46OmNvbXBpbGVJblRocmVhZChMb25nTGl2ZWRTdGF0ZSYgbG9uZ0xpdmVkU3RhdGUpCit2
b2lkIFBsYW46OmNvbXBpbGVJblRocmVhZChMb25nTGl2ZWRTdGF0ZSYgbG9uZ0xpdmVkU3RhdGUs
IFRocmVhZERhdGEqIHRocmVhZERhdGEpCiB7CisgICAgdGhpcy0+dGhyZWFkRGF0YSA9IHRocmVh
ZERhdGE7CisgICAgCiAgICAgZG91YmxlIGJlZm9yZSA9IDA7CiAgICAgaWYgKHJlcG9ydENvbXBp
bGVUaW1lcygpKQogICAgICAgICBiZWZvcmUgPSBjdXJyZW50VGltZU1TKCk7CkBAIC0zMTMsMTEg
KzMxNiwxNCBAQCBQbGFuOjpDb21waWxhdGlvblBhdGggUGxhbjo6Y29tcGlsZUluVGhyCiAgICAg
ICAgIAogICAgICAgICBkdW1wQW5kVmVyaWZ5R3JhcGgoZGZnLCAiR3JhcGgganVzdCBiZWZvcmUg
RlRMIGxvd2VyaW5nOiIpOwogICAgICAgICAKLSAgICAgICAgaW5pdGlhbGl6ZUxMVk0oKTsKLSAg
ICAgICAgCisgICAgICAgIHsKKyAgICAgICAgICAgIEdyYXBoU2FmZXBvaW50IHNhZmVwb2ludChk
ZmcpOworICAgICAgICAgICAgaW5pdGlhbGl6ZUxMVk0oKTsKKyAgICAgICAgfQorICAgICAgICAg
ICAgCiAgICAgICAgIEZUTDo6U3RhdGUgc3RhdGUoZGZnKTsKICAgICAgICAgRlRMOjpsb3dlckRG
R1RvTExWTShzdGF0ZSk7Ci0gICAgICAgIAorICAgICAgICAgICAgCiAgICAgICAgIGlmIChyZXBv
cnRDb21waWxlVGltZXMoKSkKICAgICAgICAgICAgIGJlZm9yZUZUTCA9IGN1cnJlbnRUaW1lTVMo
KTsKICAgICAgICAgCkBAIC0zMjcsNyArMzMzLDcgQEAgUGxhbjo6Q29tcGlsYXRpb25QYXRoIFBs
YW46OmNvbXBpbGVJblRocgogICAgICAgICB9CiAgICAgICAgIAogICAgICAgICBGVEw6OmNvbXBp
bGUoc3RhdGUpOwotCisgICAgICAgICAgICAKICAgICAgICAgaWYgKE9wdGlvbnM6Omxsdm1BbHdh
eXNGYWlsc0JlZm9yZUxpbmsoKSkgewogICAgICAgICAgICAgRlRMOjpmYWlsKHN0YXRlKTsKICAg
ICAgICAgICAgIHJldHVybiBGVExQYXRoOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdQbGFuLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQ
bGFuLmgJKHJldmlzaW9uIDE2Mzc1MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
UGxhbi5oCSh3b3JraW5nIGNvcHkpCkBAIC01Miw2ICs1Miw3IEBAIGNsYXNzIFNsb3RWaXNpdG9y
OwogbmFtZXNwYWNlIERGRyB7CiAKIGNsYXNzIExvbmdMaXZlZFN0YXRlOworY2xhc3MgVGhyZWFk
RGF0YTsKIAogI2lmIEVOQUJMRShERkdfSklUKQogCkBAIC02Miw3ICs2Myw3IEBAIHN0cnVjdCBQ
bGFuIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGUKICAgICAgICAgY29uc3QgT3BlcmFuZHM8
SlNWYWx1ZT4mIG11c3RIYW5kbGVWYWx1ZXMpOwogICAgIH5QbGFuKCk7CiAgICAgCi0gICAgdm9p
ZCBjb21waWxlSW5UaHJlYWQoTG9uZ0xpdmVkU3RhdGUmKTsKKyAgICB2b2lkIGNvbXBpbGVJblRo
cmVhZChMb25nTGl2ZWRTdGF0ZSYsIFRocmVhZERhdGEqKTsKICAgICAKICAgICBDb21waWxhdGlv
blJlc3VsdCBmaW5hbGl6ZVdpdGhvdXROb3RpZnlpbmdDYWxsYmFjaygpOwogICAgIHZvaWQgZmlu
YWxpemVBbmROb3RpZnlDYWxsYmFjaygpOwpAQCAtNzksNiArODAsOCBAQCBzdHJ1Y3QgUGxhbiA6
IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlCiAgICAgQ29tcGlsYXRpb25Nb2RlIG1vZGU7CiAg
ICAgY29uc3QgdW5zaWduZWQgb3NyRW50cnlCeXRlY29kZUluZGV4OwogICAgIE9wZXJhbmRzPEpT
VmFsdWU+IG11c3RIYW5kbGVWYWx1ZXM7CisgICAgCisgICAgVGhyZWFkRGF0YSogdGhyZWFkRGF0
YTsKIAogICAgIFJlZlB0cjxQcm9maWxlcjo6Q29tcGlsYXRpb24+IGNvbXBpbGF0aW9uOwogCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVwb2ludC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTYWZlcG9pbnQuY3BwCShyZXZpc2lv
biAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTYWZlcG9pbnQuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0wLDAgKzEsNzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkRGR1NhZmVw
b2ludC5oIgorCisjaWYgRU5BQkxFKERGR19KSVQpCisKKyNpbmNsdWRlICJERkdQbGFuLmgiCisj
aW5jbHVkZSAiREZHU2Nhbm5hYmxlLmgiCisjaW5jbHVkZSAiREZHVGhyZWFkRGF0YS5oIgorCitu
YW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CisKK1NhZmVwb2ludDo6U2FmZXBvaW50KFBs
YW4mIHBsYW4pCisgICAgOiBtX3BsYW4ocGxhbikKKyAgICAsIG1fZGlkQ2FsbEJlZ2luKGZhbHNl
KQoreworfQorCitTYWZlcG9pbnQ6On5TYWZlcG9pbnQoKQoreworICAgIFJFTEVBU0VfQVNTRVJU
KG1fZGlkQ2FsbEJlZ2luKTsKKyAgICBpZiAoVGhyZWFkRGF0YSogZGF0YSA9IG1fcGxhbi50aHJl
YWREYXRhKQorICAgICAgICBkYXRhLT5tX3JpZ2h0VG9SdW4ubG9jaygpOworfQorCit2b2lkIFNh
ZmVwb2ludDo6YWRkKFNjYW5uYWJsZSogc2Nhbm5hYmxlKQoreworICAgIFJFTEVBU0VfQVNTRVJU
KCFtX2RpZENhbGxCZWdpbik7CisgICAgbV9zY2FubmFibGVzLmFwcGVuZChzY2FubmFibGUpOwor
fQorCit2b2lkIFNhZmVwb2ludDo6YmVnaW4oKQoreworICAgIFJFTEVBU0VfQVNTRVJUKCFtX2Rp
ZENhbGxCZWdpbik7CisgICAgaWYgKFRocmVhZERhdGEqIGRhdGEgPSBtX3BsYW4udGhyZWFkRGF0
YSkKKyAgICAgICAgZGF0YS0+bV9yaWdodFRvUnVuLnVubG9jaygpOworICAgIG1fZGlkQ2FsbEJl
Z2luID0gdHJ1ZTsKK30KKwordm9pZCBTYWZlcG9pbnQ6OnZpc2l0Q2hpbGRyZW4oU2xvdFZpc2l0
b3ImIHZpc2l0b3IpCit7CisgICAgUkVMRUFTRV9BU1NFUlQobV9kaWRDYWxsQmVnaW4pOworICAg
IGZvciAodW5zaWduZWQgaSA9IG1fc2Nhbm5hYmxlcy5zaXplKCk7IGktLTspCisgICAgICAgIG1f
c2Nhbm5hYmxlc1tpXS0+dmlzaXRDaGlsZHJlbih2aXNpdG9yKTsKK30KKworfSB9IC8vIG5hbWVz
cGFjZSBKU0M6OkRGRworCisjZW5kaWYgLy8gRU5BQkxFKERGR19KSVQpCisKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZXBvaW50LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTYWZlcG9pbnQuaAkocmV2aXNpb24gMCkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZXBvaW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTAs
MCArMSw2NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLwor
CisjaWZuZGVmIERGR1NhZmVwb2ludF9oCisjZGVmaW5lIERGR1NhZmVwb2ludF9oCisKKyNpZiBF
TkFCTEUoREZHX0pJVCkKKworI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIEpT
QyB7CisKK2NsYXNzIFNsb3RWaXNpdG9yOworCituYW1lc3BhY2UgREZHIHsKKworY2xhc3MgU2Nh
bm5hYmxlOworc3RydWN0IFBsYW47CisKK2NsYXNzIFNhZmVwb2ludCB7CitwdWJsaWM6CisgICAg
U2FmZXBvaW50KFBsYW4mKTsKKyAgICB+U2FmZXBvaW50KCk7CisgICAgCisgICAgdm9pZCBhZGQo
U2Nhbm5hYmxlKik7CisgICAgCisgICAgdm9pZCBiZWdpbigpOworICAgIAorICAgIHZvaWQgdmlz
aXRDaGlsZHJlbihTbG90VmlzaXRvciYpOworICAgIAorcHJpdmF0ZToKKyAgICBQbGFuJiBtX3Bs
YW47CisgICAgVmVjdG9yPFNjYW5uYWJsZSo+IG1fc2Nhbm5hYmxlczsKKyAgICBib29sIG1fZGlk
Q2FsbEJlZ2luOworfTsKKworfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkRGRworCisjZW5kaWYgLy8g
RU5BQkxFKERGR19KSVQpCisKKyNlbmRpZiAvLyBERkdTYWZlcG9pbnRfaAorCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NjYW5uYWJsZS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2Nhbm5hYmxlLmgJKHJldmlzaW9uIDApCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NjYW5uYWJsZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0w
LDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8K
KworI2lmbmRlZiBERkdTY2FubmFibGVfaAorI2RlZmluZSBERkdTY2FubmFibGVfaAorCisjaWYg
RU5BQkxFKERGR19KSVQpCisKK25hbWVzcGFjZSBKU0MgeworCitjbGFzcyBTbG90VmlzaXRvcjsK
KworbmFtZXNwYWNlIERGRyB7CisKK2NsYXNzIFNjYW5uYWJsZSB7CitwdWJsaWM6CisgICAgU2Nh
bm5hYmxlKCkgeyB9CisgICAgdmlydHVhbCB+U2Nhbm5hYmxlKCkgeyB9CisgICAgCisgICAgdmly
dHVhbCB2b2lkIHZpc2l0Q2hpbGRyZW4oU2xvdFZpc2l0b3ImKSA9IDA7Cit9OworCit9IH0gLy8g
bmFtZXNwYWNlIEpTQzo6REZHCisKKyNlbmRpZiAvLyBFTkFCTEUoREZHX0pJVCkKKworI2VuZGlm
IC8vIERGR1NjYW5uYWJsZV9oCisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
VGhyZWFkRGF0YS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdUaHJlYWREYXRhLmNwcAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHVGhyZWFkRGF0YS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0NyBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiREZHVGhyZWFkRGF0YS5oIgorCisjaWYgRU5BQkxFKERGR19KSVQp
CisKK25hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKKworVGhyZWFkRGF0YTo6VGhyZWFk
RGF0YShXb3JrbGlzdCogd29ya2xpc3QpCisgICAgOiBtX3dvcmtsaXN0KHdvcmtsaXN0KQorICAg
ICwgbV9pZGVudGlmaWVyKDApCisgICAgLCBtX3NhZmVwb2ludChudWxscHRyKQoreworfQorCitU
aHJlYWREYXRhOjp+VGhyZWFkRGF0YSgpCit7Cit9CisKK30gfSAvLyBuYW1lc3BhY2UgSlNDOjpE
RkcKKworI2VuZGlmIC8vIEVOQUJMRShERkdfSklUKQorCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1RocmVhZERhdGEuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1RocmVhZERhdGEuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHVGhyZWFkRGF0YS5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNTkg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRl
ZiBERkdUaHJlYWREYXRhX2gKKyNkZWZpbmUgREZHVGhyZWFkRGF0YV9oCisKKyNpZiBFTkFCTEUo
REZHX0pJVCkKKworI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KKyNpbmNsdWRlIDx3dGYvVGhy
ZWFkaW5nUHJpbWl0aXZlcy5oPgorCituYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CisK
K2NsYXNzIFNhZmVwb2ludDsKK2NsYXNzIFdvcmtsaXN0OworCitjbGFzcyBUaHJlYWREYXRhIHsK
K3B1YmxpYzoKKyAgICBUaHJlYWREYXRhKFdvcmtsaXN0Kik7CisgICAgflRocmVhZERhdGEoKTsK
KyAgICAKK3ByaXZhdGU6CisgICAgZnJpZW5kIGNsYXNzIFNhZmVwb2ludDsKKyAgICBmcmllbmQg
Y2xhc3MgV29ya2xpc3Q7CisgICAgCisgICAgV29ya2xpc3QqIG1fd29ya2xpc3Q7CisgICAgVGhy
ZWFkSWRlbnRpZmllciBtX2lkZW50aWZpZXI7CisgICAgTXV0ZXggbV9yaWdodFRvUnVuOworICAg
IFNhZmVwb2ludCogbV9zYWZlcG9pbnQ7Cit9OworCit9IH0gLy8gbmFtZXNwYWNlIEpTQzo6REZH
CisKKyNlbmRpZiAvLyBFTkFCTEUoREZHX0pJVCkKKworI2VuZGlmIC8vIERGR1RocmVhZERhdGFf
aAorCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1RodW5rcy5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdUaHVua3MuY3BwCShyZXZpc2lv
biAxNjM3NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1RodW5rcy5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJERkdPU1JFeGl0Q29tcGls
ZXIuaCIKICNpbmNsdWRlICJGUFJJbmZvLmgiCiAjaW5jbHVkZSAiR1BSSW5mby5oIgorI2luY2x1
ZGUgIkxpbmtCdWZmZXIuaCIKICNpbmNsdWRlICJNYWNyb0Fzc2VtYmxlci5oIgogCiBuYW1lc3Bh
Y2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1dvcmtsaXN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1dvcmtsaXN0LmNwcAkocmV2aXNpb24gMTYzNzUyKQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdXb3JrbGlzdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMxLDYgKzMxLDcgQEAK
ICNpbmNsdWRlICJDb2RlQmxvY2suaCIKICNpbmNsdWRlICJEZWZlckdDLmgiCiAjaW5jbHVkZSAi
REZHTG9uZ0xpdmVkU3RhdGUuaCIKKyNpbmNsdWRlICJERkdTYWZlcG9pbnQuaCIKICNpbmNsdWRl
IDxtdXRleD4KIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgewpAQCAtNTcsOCArNTgs
NyBAQCB2b2lkIFdvcmtsaXN0OjpmaW5pc2hDcmVhdGlvbih1bnNpZ25lZCBuCiB7CiAgICAgUkVM
RUFTRV9BU1NFUlQobnVtYmVyT2ZUaHJlYWRzKTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSBudW1i
ZXJPZlRocmVhZHM7IGktLTspIHsKLSAgICAgICAgc3RkOjp1bmlxdWVfcHRyPFRocmVhZERhdGE+
IGRhdGEgPSBzdGQ6Om1ha2VfdW5pcXVlPFRocmVhZERhdGE+KCk7Ci0gICAgICAgIGRhdGEtPm1f
d29ya2xpc3QgPSB0aGlzOworICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8VGhyZWFkRGF0YT4gZGF0
YSA9IHN0ZDo6bWFrZV91bmlxdWU8VGhyZWFkRGF0YT4odGhpcyk7CiAgICAgICAgIGRhdGEtPm1f
aWRlbnRpZmllciA9IGNyZWF0ZVRocmVhZCh0aHJlYWRGdW5jdGlvbiwgZGF0YS5nZXQoKSwgIkpT
QyBDb21waWxhdGlvbiBUaHJlYWQiKTsKICAgICAgICAgbV90aHJlYWRzLmFwcGVuZChzdGQ6Om1v
dmUoZGF0YSkpOwogICAgIH0KQEAgLTIxMCw2ICsyMTAsMTIgQEAgdm9pZCBXb3JrbGlzdDo6dmlz
aXRDaGlsZHJlbihTbG90VmlzaXRvcgogICAgICAgICBpdGVyLT5rZXkudmlzaXRDaGlsZHJlbihj
b2RlQmxvY2tzKTsKICAgICAgICAgaXRlci0+dmFsdWUtPnZpc2l0Q2hpbGRyZW4odmlzaXRvciwg
Y29kZUJsb2Nrcyk7CiAgICAgfQorICAgIAorICAgIGZvciAodW5zaWduZWQgaSA9IG1fdGhyZWFk
cy5zaXplKCk7IGktLTspIHsKKyAgICAgICAgVGhyZWFkRGF0YSogZGF0YSA9IG1fdGhyZWFkc1tp
XS5nZXQoKTsKKyAgICAgICAgaWYgKFNhZmVwb2ludCogc2FmZXBvaW50ID0gZGF0YS0+bV9zYWZl
cG9pbnQpCisgICAgICAgICAgICBzYWZlcG9pbnQtPnZpc2l0Q2hpbGRyZW4odmlzaXRvcik7Cisg
ICAgfQogfQogCiBzaXplX3QgV29ya2xpc3Q6OnF1ZXVlTGVuZ3RoKCkKQEAgLTI2NSw3ICsyNzEs
NyBAQCB2b2lkIFdvcmtsaXN0OjpydW5UaHJlYWQoVGhyZWFkRGF0YSogZGF0CiAgICAgICAgICAg
ICBpZiAoT3B0aW9uczo6dmVyYm9zZUNvbXBpbGF0aW9uUXVldWUoKSkKICAgICAgICAgICAgICAg
ICBkYXRhTG9nKCp0aGlzLCAiOiBDb21waWxpbmcgIiwgcGxhbi0+a2V5KCksICIgYXN5bmNocm9u
b3VzbHlcbiIpOwogICAgICAgICAKLSAgICAgICAgICAgIHBsYW4tPmNvbXBpbGVJblRocmVhZChs
b25nTGl2ZWRTdGF0ZSk7CisgICAgICAgICAgICBwbGFuLT5jb21waWxlSW5UaHJlYWQobG9uZ0xp
dmVkU3RhdGUsIGRhdGEpOwogICAgICAgICB9CiAgICAgICAgIAogICAgICAgICB7CkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1dvcmtsaXN0LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdXb3JrbGlzdC5oCShyZXZpc2lvbiAxNjM3NTIpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1dvcmtsaXN0LmgJKHdvcmtpbmcgY29weSkK
QEAgLTMxLDYgKzMxLDcgQEAKICNpZiBFTkFCTEUoREZHX0pJVCkKIAogI2luY2x1ZGUgIkRGR1Bs
YW4uaCIKKyNpbmNsdWRlICJERkdUaHJlYWREYXRhLmgiCiAjaW5jbHVkZSA8d3RmL0RlcXVlLmg+
CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4K
QEAgLTc3LDEyICs3OCw2IEBAIHB1YmxpYzoKICAgICB2b2lkIGR1bXAoUHJpbnRTdHJlYW0mKSBj
b25zdDsKICAgICAKIHByaXZhdGU6Ci0gICAgc3RydWN0IFRocmVhZERhdGEgewotICAgICAgICBX
b3JrbGlzdCogbV93b3JrbGlzdDsKLSAgICAgICAgVGhyZWFkSWRlbnRpZmllciBtX2lkZW50aWZp
ZXI7Ci0gICAgICAgIE11dGV4IG1fcmlnaHRUb1J1bjsKLSAgICB9OwotICAgIAogICAgIFdvcmts
aXN0KCk7CiAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbih1bnNpZ25lZCBudW1iZXJPZlRocmVhZHMp
OwogICAgIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDb21waWxlLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENvbXBpbGUuY3BwCShy
ZXZpc2lvbiAxNjM3NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENvbXBpbGUu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiQ29kZUJsb2Nr
V2l0aEpJVFR5cGUuaCIKICNpbmNsdWRlICJDQ2FsbEhlbHBlcnMuaCIKICNpbmNsdWRlICJERkdD
b21tb24uaCIKKyNpbmNsdWRlICJERkdHcmFwaFNhZmVwb2ludC5oIgogI2luY2x1ZGUgIkRhdGFW
aWV3LmgiCiAjaW5jbHVkZSAiRGlzYXNzZW1ibGVyLmgiCiAjaW5jbHVkZSAiRlRMRXhpdFRodW5r
R2VuZXJhdG9yLmgiCkBAIC00NTIsNzAgKzQ1Myw3NCBAQCB2b2lkIGNvbXBpbGUoU3RhdGUmIHN0
YXRlKQogewogICAgIGNoYXIqIGVycm9yID0gMDsKICAgICAKLSAgICBMTFZNTUNKSVRDb21waWxl
ck9wdGlvbnMgb3B0aW9uczsKLSAgICBsbHZtLT5Jbml0aWFsaXplTUNKSVRDb21waWxlck9wdGlv
bnMoJm9wdGlvbnMsIHNpemVvZihvcHRpb25zKSk7Ci0gICAgb3B0aW9ucy5PcHRMZXZlbCA9IE9w
dGlvbnM6Omxsdm1CYWNrZW5kT3B0aW1pemF0aW9uTGV2ZWwoKTsKLSAgICBvcHRpb25zLk5vRnJh
bWVQb2ludGVyRWxpbSA9IHRydWU7Ci0gICAgaWYgKE9wdGlvbnM6OnVzZUxMVk1TbWFsbENvZGVN
b2RlbCgpKQotICAgICAgICBvcHRpb25zLkNvZGVNb2RlbCA9IExMVk1Db2RlTW9kZWxTbWFsbDsK
LSAgICBvcHRpb25zLkVuYWJsZUZhc3RJU2VsID0gT3B0aW9uczo6ZW5hYmxlTExWTUZhc3RJU2Vs
KCk7Ci0gICAgb3B0aW9ucy5NQ0pNTSA9IGxsdm0tPkNyZWF0ZVNpbXBsZU1DSklUTWVtb3J5TWFu
YWdlcigKLSAgICAgICAgJnN0YXRlLCBtbUFsbG9jYXRlQ29kZVNlY3Rpb24sIG1tQWxsb2NhdGVE
YXRhU2VjdGlvbiwgbW1BcHBseVBlcm1pc3Npb25zLCBtbURlc3Ryb3kpOwotICAgIAotICAgIExM
Vk1FeGVjdXRpb25FbmdpbmVSZWYgZW5naW5lOwotICAgIAotICAgIGlmIChsbHZtLT5DcmVhdGVN
Q0pJVENvbXBpbGVyRm9yTW9kdWxlKCZlbmdpbmUsIHN0YXRlLm1vZHVsZSwgJm9wdGlvbnMsIHNp
emVvZihvcHRpb25zKSwgJmVycm9yKSkgewotICAgICAgICBkYXRhTG9nKCJGQVRBTDogQ291bGQg
bm90IGNyZWF0ZSBMTFZNIGV4ZWN1dGlvbiBlbmdpbmU6ICIsIGVycm9yLCAiXG4iKTsKLSAgICAg
ICAgQ1JBU0goKTsKLSAgICB9Ci0KLSAgICBMTFZNUGFzc01hbmFnZXJSZWYgZnVuY3Rpb25QYXNz
ZXMgPSAwOwotICAgIExMVk1QYXNzTWFuYWdlclJlZiBtb2R1bGVQYXNzZXM7Ci0gICAgCi0gICAg
aWYgKE9wdGlvbnM6Omxsdm1TaW1wbGVPcHQoKSkgewotICAgICAgICBtb2R1bGVQYXNzZXMgPSBs
bHZtLT5DcmVhdGVQYXNzTWFuYWdlcigpOwotICAgICAgICBsbHZtLT5BZGRUYXJnZXREYXRhKGxs
dm0tPkdldEV4ZWN1dGlvbkVuZ2luZVRhcmdldERhdGEoZW5naW5lKSwgbW9kdWxlUGFzc2VzKTsK
LSAgICAgICAgbGx2bS0+QWRkUHJvbW90ZU1lbW9yeVRvUmVnaXN0ZXJQYXNzKG1vZHVsZVBhc3Nl
cyk7Ci0gICAgICAgIGxsdm0tPkFkZENvbnN0YW50UHJvcGFnYXRpb25QYXNzKG1vZHVsZVBhc3Nl
cyk7Ci0gICAgICAgIGxsdm0tPkFkZEluc3RydWN0aW9uQ29tYmluaW5nUGFzcyhtb2R1bGVQYXNz
ZXMpOwotICAgICAgICBsbHZtLT5BZGRCYXNpY0FsaWFzQW5hbHlzaXNQYXNzKG1vZHVsZVBhc3Nl
cyk7Ci0gICAgICAgIGxsdm0tPkFkZFR5cGVCYXNlZEFsaWFzQW5hbHlzaXNQYXNzKG1vZHVsZVBh
c3Nlcyk7Ci0gICAgICAgIGxsdm0tPkFkZEdWTlBhc3MobW9kdWxlUGFzc2VzKTsKLSAgICAgICAg
bGx2bS0+QWRkQ0ZHU2ltcGxpZmljYXRpb25QYXNzKG1vZHVsZVBhc3Nlcyk7Ci0gICAgICAgIGxs
dm0tPlJ1blBhc3NNYW5hZ2VyKG1vZHVsZVBhc3Nlcywgc3RhdGUubW9kdWxlKTsKLSAgICB9IGVs
c2UgewotICAgICAgICBMTFZNUGFzc01hbmFnZXJCdWlsZGVyUmVmIHBhc3NCdWlsZGVyID0gbGx2
bS0+UGFzc01hbmFnZXJCdWlsZGVyQ3JlYXRlKCk7Ci0gICAgICAgIGxsdm0tPlBhc3NNYW5hZ2Vy
QnVpbGRlclNldE9wdExldmVsKHBhc3NCdWlsZGVyLCBPcHRpb25zOjpsbHZtT3B0aW1pemF0aW9u
TGV2ZWwoKSk7Ci0gICAgICAgIGxsdm0tPlBhc3NNYW5hZ2VyQnVpbGRlclNldFNpemVMZXZlbChw
YXNzQnVpbGRlciwgT3B0aW9uczo6bGx2bVNpemVMZXZlbCgpKTsKLSAgICAgICAgCi0gICAgICAg
IGZ1bmN0aW9uUGFzc2VzID0gbGx2bS0+Q3JlYXRlRnVuY3Rpb25QYXNzTWFuYWdlckZvck1vZHVs
ZShzdGF0ZS5tb2R1bGUpOwotICAgICAgICBtb2R1bGVQYXNzZXMgPSBsbHZtLT5DcmVhdGVQYXNz
TWFuYWdlcigpOwotICAgICAgICAKLSAgICAgICAgbGx2bS0+QWRkVGFyZ2V0RGF0YShsbHZtLT5H
ZXRFeGVjdXRpb25FbmdpbmVUYXJnZXREYXRhKGVuZ2luZSksIG1vZHVsZVBhc3Nlcyk7Ci0gICAg
ICAgIAotICAgICAgICBsbHZtLT5QYXNzTWFuYWdlckJ1aWxkZXJQb3B1bGF0ZUZ1bmN0aW9uUGFz
c01hbmFnZXIocGFzc0J1aWxkZXIsIGZ1bmN0aW9uUGFzc2VzKTsKLSAgICAgICAgbGx2bS0+UGFz
c01hbmFnZXJCdWlsZGVyUG9wdWxhdGVNb2R1bGVQYXNzTWFuYWdlcihwYXNzQnVpbGRlciwgbW9k
dWxlUGFzc2VzKTsKLSAgICAgICAgCi0gICAgICAgIGxsdm0tPlBhc3NNYW5hZ2VyQnVpbGRlckRp
c3Bvc2UocGFzc0J1aWxkZXIpOwotICAgICAgICAKLSAgICAgICAgbGx2bS0+SW5pdGlhbGl6ZUZ1
bmN0aW9uUGFzc01hbmFnZXIoZnVuY3Rpb25QYXNzZXMpOwotICAgICAgICBmb3IgKExWYWx1ZSBm
dW5jdGlvbiA9IGxsdm0tPkdldEZpcnN0RnVuY3Rpb24oc3RhdGUubW9kdWxlKTsgZnVuY3Rpb247
IGZ1bmN0aW9uID0gbGx2bS0+R2V0TmV4dEZ1bmN0aW9uKGZ1bmN0aW9uKSkKLSAgICAgICAgICAg
IGxsdm0tPlJ1bkZ1bmN0aW9uUGFzc01hbmFnZXIoZnVuY3Rpb25QYXNzZXMsIGZ1bmN0aW9uKTsK
LSAgICAgICAgbGx2bS0+RmluYWxpemVGdW5jdGlvblBhc3NNYW5hZ2VyKGZ1bmN0aW9uUGFzc2Vz
KTsKLSAgICAgICAgCi0gICAgICAgIGxsdm0tPlJ1blBhc3NNYW5hZ2VyKG1vZHVsZVBhc3Nlcywg
c3RhdGUubW9kdWxlKTsKLSAgICB9Ci0KLSAgICBpZiAoREZHOjpzaG91bGRTaG93RGlzYXNzZW1i
bHkoKSB8fCBERkc6OnZlcmJvc2VDb21waWxhdGlvbkVuYWJsZWQoKSkKLSAgICAgICAgc3RhdGUu
ZHVtcFN0YXRlKCJhZnRlciBvcHRpbWl6YXRpb24iKTsKLSAgICAKLSAgICAvLyBGSVhNRTogTmVl
ZCB0byBhZGQgc3VwcG9ydCBmb3IgdGhlIGNhc2Ugd2hlcmUgSklUIG1lbW9yeSBhbGxvY2F0aW9u
IGZhaWxlZC4KLSAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTEzNjIwCi0gICAgc3RhdGUuZ2VuZXJhdGVkRnVuY3Rpb24gPSByZWludGVycHJldF9jYXN0PEdl
bmVyYXRlZEZ1bmN0aW9uPihsbHZtLT5HZXRQb2ludGVyVG9HbG9iYWwoZW5naW5lLCBzdGF0ZS5m
dW5jdGlvbikpOwotICAgIGlmIChmdW5jdGlvblBhc3NlcykKLSAgICAgICAgbGx2bS0+RGlzcG9z
ZVBhc3NNYW5hZ2VyKGZ1bmN0aW9uUGFzc2VzKTsKLSAgICBsbHZtLT5EaXNwb3NlUGFzc01hbmFn
ZXIobW9kdWxlUGFzc2VzKTsKLSAgICBsbHZtLT5EaXNwb3NlRXhlY3V0aW9uRW5naW5lKGVuZ2lu
ZSk7CisgICAgeworICAgICAgICBHcmFwaFNhZmVwb2ludCBzYWZlcG9pbnQoc3RhdGUuZ3JhcGgp
OworICAgICAgICAKKyAgICAgICAgTExWTU1DSklUQ29tcGlsZXJPcHRpb25zIG9wdGlvbnM7Cisg
ICAgICAgIGxsdm0tPkluaXRpYWxpemVNQ0pJVENvbXBpbGVyT3B0aW9ucygmb3B0aW9ucywgc2l6
ZW9mKG9wdGlvbnMpKTsKKyAgICAgICAgb3B0aW9ucy5PcHRMZXZlbCA9IE9wdGlvbnM6Omxsdm1C
YWNrZW5kT3B0aW1pemF0aW9uTGV2ZWwoKTsKKyAgICAgICAgb3B0aW9ucy5Ob0ZyYW1lUG9pbnRl
ckVsaW0gPSB0cnVlOworICAgICAgICBpZiAoT3B0aW9uczo6dXNlTExWTVNtYWxsQ29kZU1vZGVs
KCkpCisgICAgICAgICAgICBvcHRpb25zLkNvZGVNb2RlbCA9IExMVk1Db2RlTW9kZWxTbWFsbDsK
KyAgICAgICAgb3B0aW9ucy5FbmFibGVGYXN0SVNlbCA9IE9wdGlvbnM6OmVuYWJsZUxMVk1GYXN0
SVNlbCgpOworICAgICAgICBvcHRpb25zLk1DSk1NID0gbGx2bS0+Q3JlYXRlU2ltcGxlTUNKSVRN
ZW1vcnlNYW5hZ2VyKAorICAgICAgICAgICAgJnN0YXRlLCBtbUFsbG9jYXRlQ29kZVNlY3Rpb24s
IG1tQWxsb2NhdGVEYXRhU2VjdGlvbiwgbW1BcHBseVBlcm1pc3Npb25zLCBtbURlc3Ryb3kpOwor
ICAgIAorICAgICAgICBMTFZNRXhlY3V0aW9uRW5naW5lUmVmIGVuZ2luZTsKKyAgICAKKyAgICAg
ICAgaWYgKGxsdm0tPkNyZWF0ZU1DSklUQ29tcGlsZXJGb3JNb2R1bGUoJmVuZ2luZSwgc3RhdGUu
bW9kdWxlLCAmb3B0aW9ucywgc2l6ZW9mKG9wdGlvbnMpLCAmZXJyb3IpKSB7CisgICAgICAgICAg
ICBkYXRhTG9nKCJGQVRBTDogQ291bGQgbm90IGNyZWF0ZSBMTFZNIGV4ZWN1dGlvbiBlbmdpbmU6
ICIsIGVycm9yLCAiXG4iKTsKKyAgICAgICAgICAgIENSQVNIKCk7CisgICAgICAgIH0KKworICAg
ICAgICBMTFZNUGFzc01hbmFnZXJSZWYgZnVuY3Rpb25QYXNzZXMgPSAwOworICAgICAgICBMTFZN
UGFzc01hbmFnZXJSZWYgbW9kdWxlUGFzc2VzOworICAgIAorICAgICAgICBpZiAoT3B0aW9uczo6
bGx2bVNpbXBsZU9wdCgpKSB7CisgICAgICAgICAgICBtb2R1bGVQYXNzZXMgPSBsbHZtLT5DcmVh
dGVQYXNzTWFuYWdlcigpOworICAgICAgICAgICAgbGx2bS0+QWRkVGFyZ2V0RGF0YShsbHZtLT5H
ZXRFeGVjdXRpb25FbmdpbmVUYXJnZXREYXRhKGVuZ2luZSksIG1vZHVsZVBhc3Nlcyk7CisgICAg
ICAgICAgICBsbHZtLT5BZGRQcm9tb3RlTWVtb3J5VG9SZWdpc3RlclBhc3MobW9kdWxlUGFzc2Vz
KTsKKyAgICAgICAgICAgIGxsdm0tPkFkZENvbnN0YW50UHJvcGFnYXRpb25QYXNzKG1vZHVsZVBh
c3Nlcyk7CisgICAgICAgICAgICBsbHZtLT5BZGRJbnN0cnVjdGlvbkNvbWJpbmluZ1Bhc3MobW9k
dWxlUGFzc2VzKTsKKyAgICAgICAgICAgIGxsdm0tPkFkZEJhc2ljQWxpYXNBbmFseXNpc1Bhc3Mo
bW9kdWxlUGFzc2VzKTsKKyAgICAgICAgICAgIGxsdm0tPkFkZFR5cGVCYXNlZEFsaWFzQW5hbHlz
aXNQYXNzKG1vZHVsZVBhc3Nlcyk7CisgICAgICAgICAgICBsbHZtLT5BZGRHVk5QYXNzKG1vZHVs
ZVBhc3Nlcyk7CisgICAgICAgICAgICBsbHZtLT5BZGRDRkdTaW1wbGlmaWNhdGlvblBhc3MobW9k
dWxlUGFzc2VzKTsKKyAgICAgICAgICAgIGxsdm0tPlJ1blBhc3NNYW5hZ2VyKG1vZHVsZVBhc3Nl
cywgc3RhdGUubW9kdWxlKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIExMVk1QYXNz
TWFuYWdlckJ1aWxkZXJSZWYgcGFzc0J1aWxkZXIgPSBsbHZtLT5QYXNzTWFuYWdlckJ1aWxkZXJD
cmVhdGUoKTsKKyAgICAgICAgICAgIGxsdm0tPlBhc3NNYW5hZ2VyQnVpbGRlclNldE9wdExldmVs
KHBhc3NCdWlsZGVyLCBPcHRpb25zOjpsbHZtT3B0aW1pemF0aW9uTGV2ZWwoKSk7CisgICAgICAg
ICAgICBsbHZtLT5QYXNzTWFuYWdlckJ1aWxkZXJTZXRTaXplTGV2ZWwocGFzc0J1aWxkZXIsIE9w
dGlvbnM6Omxsdm1TaXplTGV2ZWwoKSk7CisgICAgICAgIAorICAgICAgICAgICAgZnVuY3Rpb25Q
YXNzZXMgPSBsbHZtLT5DcmVhdGVGdW5jdGlvblBhc3NNYW5hZ2VyRm9yTW9kdWxlKHN0YXRlLm1v
ZHVsZSk7CisgICAgICAgICAgICBtb2R1bGVQYXNzZXMgPSBsbHZtLT5DcmVhdGVQYXNzTWFuYWdl
cigpOworICAgICAgICAKKyAgICAgICAgICAgIGxsdm0tPkFkZFRhcmdldERhdGEobGx2bS0+R2V0
RXhlY3V0aW9uRW5naW5lVGFyZ2V0RGF0YShlbmdpbmUpLCBtb2R1bGVQYXNzZXMpOworICAgICAg
ICAKKyAgICAgICAgICAgIGxsdm0tPlBhc3NNYW5hZ2VyQnVpbGRlclBvcHVsYXRlRnVuY3Rpb25Q
YXNzTWFuYWdlcihwYXNzQnVpbGRlciwgZnVuY3Rpb25QYXNzZXMpOworICAgICAgICAgICAgbGx2
bS0+UGFzc01hbmFnZXJCdWlsZGVyUG9wdWxhdGVNb2R1bGVQYXNzTWFuYWdlcihwYXNzQnVpbGRl
ciwgbW9kdWxlUGFzc2VzKTsKKyAgICAgICAgCisgICAgICAgICAgICBsbHZtLT5QYXNzTWFuYWdl
ckJ1aWxkZXJEaXNwb3NlKHBhc3NCdWlsZGVyKTsKKyAgICAgICAgCisgICAgICAgICAgICBsbHZt
LT5Jbml0aWFsaXplRnVuY3Rpb25QYXNzTWFuYWdlcihmdW5jdGlvblBhc3Nlcyk7CisgICAgICAg
ICAgICBmb3IgKExWYWx1ZSBmdW5jdGlvbiA9IGxsdm0tPkdldEZpcnN0RnVuY3Rpb24oc3RhdGUu
bW9kdWxlKTsgZnVuY3Rpb247IGZ1bmN0aW9uID0gbGx2bS0+R2V0TmV4dEZ1bmN0aW9uKGZ1bmN0
aW9uKSkKKyAgICAgICAgICAgICAgICBsbHZtLT5SdW5GdW5jdGlvblBhc3NNYW5hZ2VyKGZ1bmN0
aW9uUGFzc2VzLCBmdW5jdGlvbik7CisgICAgICAgICAgICBsbHZtLT5GaW5hbGl6ZUZ1bmN0aW9u
UGFzc01hbmFnZXIoZnVuY3Rpb25QYXNzZXMpOworICAgICAgICAKKyAgICAgICAgICAgIGxsdm0t
PlJ1blBhc3NNYW5hZ2VyKG1vZHVsZVBhc3Nlcywgc3RhdGUubW9kdWxlKTsKKyAgICAgICAgfQor
CisgICAgICAgIGlmIChERkc6OnNob3VsZFNob3dEaXNhc3NlbWJseSgpIHx8IERGRzo6dmVyYm9z
ZUNvbXBpbGF0aW9uRW5hYmxlZCgpKQorICAgICAgICAgICAgc3RhdGUuZHVtcFN0YXRlKCJhZnRl
ciBvcHRpbWl6YXRpb24iKTsKKyAgICAKKyAgICAgICAgLy8gRklYTUU6IE5lZWQgdG8gYWRkIHN1
cHBvcnQgZm9yIHRoZSBjYXNlIHdoZXJlIEpJVCBtZW1vcnkgYWxsb2NhdGlvbiBmYWlsZWQuCisg
ICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTM2MjAK
KyAgICAgICAgc3RhdGUuZ2VuZXJhdGVkRnVuY3Rpb24gPSByZWludGVycHJldF9jYXN0PEdlbmVy
YXRlZEZ1bmN0aW9uPihsbHZtLT5HZXRQb2ludGVyVG9HbG9iYWwoZW5naW5lLCBzdGF0ZS5mdW5j
dGlvbikpOworICAgICAgICBpZiAoZnVuY3Rpb25QYXNzZXMpCisgICAgICAgICAgICBsbHZtLT5E
aXNwb3NlUGFzc01hbmFnZXIoZnVuY3Rpb25QYXNzZXMpOworICAgICAgICBsbHZtLT5EaXNwb3Nl
UGFzc01hbmFnZXIobW9kdWxlUGFzc2VzKTsKKyAgICAgICAgbGx2bS0+RGlzcG9zZUV4ZWN1dGlv
bkVuZ2luZShlbmdpbmUpOworICAgIH0KIAogICAgIGlmIChzaG91bGRTaG93RGlzYXNzZW1ibHko
KSkgewogICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgc3RhdGUuaml0Q29kZS0+aGFu
ZGxlcygpLnNpemUoKTsgKytpKSB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZU
TExpbmsuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTGlu
ay5jcHAJKHJldmlzaW9uIDE2Mzc1MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRM
TGluay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMwLDcgKzMwLDYgQEAKIAogI2luY2x1ZGUgIkFy
aXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzLmgiCiAjaW5jbHVkZSAiQ0NhbGxIZWxwZXJzLmgiCi0j
aW5jbHVkZSAiQ2FsbEZyYW1lSW5saW5lcy5oIgogI2luY2x1ZGUgIkNvZGVCbG9ja1dpdGhKSVRU
eXBlLmgiCiAjaW5jbHVkZSAiREZHQ29tbW9uLmgiCiAjaW5jbHVkZSAiRlRMSklUQ29kZS5oIgpA
QCAtMzgsNiArMzcsNyBAQAogI2luY2x1ZGUgIkpJVFN0dWJzLmgiCiAjaW5jbHVkZSAiTExWTUFQ
SS5oIgogI2luY2x1ZGUgIkxpbmtCdWZmZXIuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAj
aW5jbHVkZSAiUHJvZmlsZXJDb21waWxhdGlvbi5oIgogI2luY2x1ZGUgIlZpcnR1YWxSZWdpc3Rl
ci5oIgogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE9TUkV4aXRDb21waWxl
ci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPU1JFeGl0
Q29tcGlsZXIuY3BwCShyZXZpc2lvbiAxNjM3NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZnRsL0ZUTE9TUkV4aXRDb21waWxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0LDYgKzM0LDcg
QEAKICNpbmNsdWRlICJGVExKSVRDb2RlLmgiCiAjaW5jbHVkZSAiRlRMT1NSRXhpdC5oIgogI2lu
Y2x1ZGUgIkZUTFNhdmVSZXN0b3JlLmgiCisjaW5jbHVkZSAiTGlua0J1ZmZlci5oIgogI2luY2x1
ZGUgIk1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsLmgiCiAjaW5jbHVkZSAiT3BlcmFuZHNJ
bmxpbmVzLmgiCiAjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Z0bC9GVExTbG93UGF0aENhbGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9mdGwvRlRMU2xvd1BhdGhDYWxsLmNwcAkocmV2aXNpb24gMTYzNzUyKQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExTbG93UGF0aENhbGwuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0yOSw5ICsyOSw5IEBACiAjaWYgRU5BQkxFKEZUTF9KSVQpCiAKICNpbmNsdWRlICJD
Q2FsbEhlbHBlcnMuaCIKLSNpbmNsdWRlICJDYWxsRnJhbWVJbmxpbmVzLmgiCiAjaW5jbHVkZSAi
RlRMU3RhdGUuaCIKICNpbmNsdWRlICJHUFJJbmZvLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5o
IgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEZUTCB7CiAKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9mdGwvRlRMVGh1bmtzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZnRsL0ZUTFRodW5rcy5jcHAJKHJldmlzaW9uIDE2Mzc1MikKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9mdGwvRlRMVGh1bmtzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTI3LDcg
KzEyNyw3IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBzbG93UGF0aENhbGxUaHVua0cKICAgICBq
aXQucHJlc2VydmVSZXR1cm5BZGRyZXNzQWZ0ZXJDYWxsKEdQUkluZm86Om5vbkFyZ0dQUjApOwog
ICAgIGppdC5zdG9yZVB0cihHUFJJbmZvOjpub25BcmdHUFIwLCBBc3NlbWJseUhlbHBlcnM6OkFk
ZHJlc3MoTWFjcm9Bc3NlbWJsZXI6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCBrZXkub2Zmc2V0KCkp
KTsKICAgICAKLSAgICBKSVRDb21waWxlcjo6Q2FsbCBjYWxsID0gaml0LmNhbGwoKTsKKyAgICBB
c3NlbWJseUhlbHBlcnM6OkNhbGwgY2FsbCA9IGppdC5jYWxsKCk7CiAKICAgICAvLyBGSVhNRTog
Q1N0YWNrIC0gTmVlZCB0byBkbyBzb21ldGhpbmcgbGlrZSBqaXQuZW1pdEZ1bmN0aW9uRXBpbG9n
dWUoKTsKICAgICBqaXQubG9hZFB0cihBc3NlbWJseUhlbHBlcnM6OkFkZHJlc3MoTWFjcm9Bc3Nl
bWJsZXI6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCBrZXkub2Zmc2V0KCkpLCBHUFJJbmZvOjpub25Q
cmVzZXJ2ZWROb25SZXR1cm5HUFIpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAv
U2xvdFZpc2l0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9T
bG90VmlzaXRvci5oCShyZXZpc2lvbiAxNjM3NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aGVhcC9TbG90VmlzaXRvci5oCSh3b3JraW5nIGNvcHkpCkBAIC02OCw2ICs2OCw5IEBAIHB1Ymxp
YzoKICAgICB2b2lkIGFwcGVuZFVuYmFycmllcmVkVmFsdWUoSlNWYWx1ZSopOwogICAgIHRlbXBs
YXRlPHR5cGVuYW1lIFQ+CiAgICAgdm9pZCBhcHBlbmRVbmJhcnJpZXJlZFdlYWsoV2VhazxUPiop
OworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CisgICAgdm9pZCBhcHBlbmRVbmJhcnJpZXJlZFJl
YWRPbmx5UG9pbnRlcihUKik7CisgICAgdm9pZCBhcHBlbmRVbmJhcnJpZXJlZFJlYWRPbmx5VmFs
dWUoSlNWYWx1ZSk7CiAgICAgdm9pZCB1bmNvbmRpdGlvbmFsbHlBcHBlbmQoSlNDZWxsKik7CiAg
ICAgCiAgICAgdm9pZCBhZGRPcGFxdWVSb290KHZvaWQqKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9oZWFwL1Nsb3RWaXNpdG9ySW5saW5lcy5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9oZWFwL1Nsb3RWaXNpdG9ySW5saW5lcy5oCShyZXZpc2lvbiAxNjM3NTIp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TbG90VmlzaXRvcklubGluZXMuaAkod29y
a2luZyBjb3B5KQpAQCAtNTEsNiArNTEsMTIgQEAgaW5saW5lIHZvaWQgU2xvdFZpc2l0b3I6OmFw
cGVuZFVuYmFycmllcgogICAgIGludGVybmFsQXBwZW5kKHNsb3QsIGNlbGwpOwogfQogCit0ZW1w
bGF0ZTx0eXBlbmFtZSBUPgoraW5saW5lIHZvaWQgU2xvdFZpc2l0b3I6OmFwcGVuZFVuYmFycmll
cmVkUmVhZE9ubHlQb2ludGVyKFQqIGNlbGwpCit7CisgICAgaW50ZXJuYWxBcHBlbmQoMCwgY2Vs
bCk7Cit9CisKIEFMV0FZU19JTkxJTkUgdm9pZCBTbG90VmlzaXRvcjo6YXBwZW5kKEpTVmFsdWUq
IHNsb3QpCiB7CiAgICAgQVNTRVJUKHNsb3QpOwpAQCAtNjMsNiArNjksMTEgQEAgQUxXQVlTX0lO
TElORSB2b2lkIFNsb3RWaXNpdG9yOjphcHBlbmRVbgogICAgIGludGVybmFsQXBwZW5kKHNsb3Qs
ICpzbG90KTsKIH0KIAorQUxXQVlTX0lOTElORSB2b2lkIFNsb3RWaXNpdG9yOjphcHBlbmRVbmJh
cnJpZXJlZFJlYWRPbmx5VmFsdWUoSlNWYWx1ZSB2YWx1ZSkKK3sKKyAgICBpbnRlcm5hbEFwcGVu
ZCgwLCB2YWx1ZSk7Cit9CisKIEFMV0FZU19JTkxJTkUgdm9pZCBTbG90VmlzaXRvcjo6YXBwZW5k
KEpTQ2VsbCoqIHNsb3QpCiB7CiAgICAgQVNTRVJUKHNsb3QpOwpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2luc3BlY3Rvci9TY3JpcHRDYWxsU3RhY2tGYWN0b3J5LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL1NjcmlwdENhbGxTdGFja0ZhY3Rv
cnkuY3BwCShyZXZpc2lvbiAxNjM3NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVj
dG9yL1NjcmlwdENhbGxTdGFja0ZhY3RvcnkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw5ICsz
NSw5IEBACiAKICNpbmNsdWRlICJBcmdMaXN0LmgiCiAjaW5jbHVkZSAiQ2FsbEZyYW1lLmgiCi0j
aW5jbHVkZSAiQ2FsbEZyYW1lSW5saW5lcy5oIgogI2luY2x1ZGUgIkpTQ0pTVmFsdWUuaCIKICNp
bmNsdWRlICJKU0Z1bmN0aW9uLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUg
IlNjcmlwdEFyZ3VtZW50cy5oIgogI2luY2x1ZGUgIlNjcmlwdENhbGxGcmFtZS5oIgogI2luY2x1
ZGUgIlNjcmlwdENhbGxTdGFjay5oIgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVy
cHJldGVyL1Byb3RvQ2FsbEZyYW1lLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvaW50ZXJwcmV0ZXIvUHJvdG9DYWxsRnJhbWUuY3BwCShyZXZpc2lvbiAxNjM3NTIpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvUHJvdG9DYWxsRnJhbWUuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiUHJvdG9DYWxsRnJhbWUu
aCIKIAogI2luY2x1ZGUgIkNvZGVCbG9jay5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNp
bmNsdWRlICJTdGFja0FsaWdubWVudC5oIgogCiBuYW1lc3BhY2UgSlNDIHsKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklURXhjZXB0aW9ucy5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRFeGNlcHRpb25zLmNwcAkocmV2aXNpb24gMTYzNzUy
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRFeGNlcHRpb25zLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMjcsNyArMjcsNiBAQAogI2luY2x1ZGUgIkpJVEV4Y2VwdGlvbnMuaCIKIAog
I2luY2x1ZGUgIkNhbGxGcmFtZS5oIgotI2luY2x1ZGUgIkNhbGxGcmFtZUlubGluZXMuaCIKICNp
bmNsdWRlICJDb2RlQmxvY2suaCIKICNpbmNsdWRlICJJbnRlcnByZXRlci5oIgogI2luY2x1ZGUg
IkpJVFN0dWJzLmgiCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZXMu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZXMuaAko
cmV2aXNpb24gMTYzNzUyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVz
LmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDcgKzI5LDcgQEAKIAogI2lmIEVOQUJMRShKSVQpCiAK
LSNpbmNsdWRlICJDYWxsRnJhbWVJbmxpbmVzLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgog
CiBuYW1lc3BhY2UgSlNDIHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRP
cGVyYXRpb25zLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VE9wZXJhdGlvbnMuY3BwCShyZXZpc2lvbiAxNjM3NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw3ICsyOSw2IEBA
CiAKICNpbmNsdWRlICJBcmd1bWVudHMuaCIKICNpbmNsdWRlICJBcnJheUNvbnN0cnVjdG9yLmgi
Ci0jaW5jbHVkZSAiQ2FsbEZyYW1lSW5saW5lcy5oIgogI2luY2x1ZGUgIkRGR0NvbXBpbGF0aW9u
TW9kZS5oIgogI2luY2x1ZGUgIkRGR0RyaXZlci5oIgogI2luY2x1ZGUgIkRGR09TUkVudHJ5Lmgi
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlcGF0Y2guY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVwYXRjaC5jcHAJKHJldmlzaW9uIDE2Mzc1
MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVwYXRjaC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTI5LDcgKzI5LDYgQEAKICNpZiBFTkFCTEUoSklUKQogCiAjaW5jbHVkZSAiQ0NhbGxI
ZWxwZXJzLmgiCi0jaW5jbHVkZSAiQ2FsbEZyYW1lSW5saW5lcy5oIgogI2luY2x1ZGUgIkRGR09w
ZXJhdGlvbnMuaCIKICNpbmNsdWRlICJERkdTcGVjdWxhdGl2ZUpJVC5oIgogI2luY2x1ZGUgIkZU
TFRodW5rcy5oIgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVH
ZW5lcmF0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxl
ci9Qcm9maWxlR2VuZXJhdG9yLmNwcAkocmV2aXNpb24gMTYzNzUyKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVHZW5lcmF0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0yNyw3ICsyNyw2IEBACiAjaW5jbHVkZSAiUHJvZmlsZUdlbmVyYXRvci5oIgogCiAjaW5jbHVk
ZSAiQ2FsbEZyYW1lLmgiCi0jaW5jbHVkZSAiQ2FsbEZyYW1lSW5saW5lcy5oIgogI2luY2x1ZGUg
IkNvZGVCbG9jay5oIgogI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCiAjaW5jbHVkZSAiSlNT
dHJpbmdSZWYuaCIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ3VtZW50
cy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJndW1l
bnRzLmNwcAkocmV2aXNpb24gMTYzNzUyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvQXJndW1lbnRzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjUsNyArMjUsNiBAQAogI2luY2x1
ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkFyZ3VtZW50cy5oIgogCi0jaW5jbHVkZSAiQ2FsbEZy
YW1lSW5saW5lcy5oIgogI2luY2x1ZGUgIkpTQWN0aXZhdGlvbi5oIgogI2luY2x1ZGUgIkpTQXJn
dW1lbnRzSXRlcmF0b3IuaCIKICNpbmNsdWRlICJKU0Z1bmN0aW9uLmgiCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHNJdGVyYXRvclByb3RvdHlwZS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJndW1lbnRzSXRlcmF0
b3JQcm90b3R5cGUuY3BwCShyZXZpc2lvbiAxNjM3NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9Bcmd1bWVudHNJdGVyYXRvclByb3RvdHlwZS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJBcmd1bWVudHNJdGVyYXRvclByb3RvdHlwZS5o
IgogCiAjaW5jbHVkZSAiSlNBcmd1bWVudHNJdGVyYXRvci5oIgorI2luY2x1ZGUgIk9wZXJhdGlv
bnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0NvbW1vblNsb3dQYXRoc0V4Y2VwdGlvbnMuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQYXRoc0V4Y2VwdGlvbnMuY3BwCShy
ZXZpc2lvbiAxNjM3NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25T
bG93UGF0aHNFeGNlcHRpb25zLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAsNiArMzAsNyBAQAog
I2luY2x1ZGUgIkNvZGVCbG9jay5oIgogI2luY2x1ZGUgIkpJVEV4Y2VwdGlvbnMuaCIKICNpbmNs
dWRlICJMTEludENvbW1vbi5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNl
IEpTQyB7IG5hbWVzcGFjZSBDb21tb25TbG93UGF0aHMgewogCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0FyZ3VtZW50c0l0ZXJhdG9yLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FyZ3VtZW50c0l0ZXJhdG9yLmNwcAkocmV2
aXNpb24gMTYzNzUyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcmd1bWVu
dHNJdGVyYXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRl
ICJKU0FyZ3VtZW50c0l0ZXJhdG9yLmgiCiAKICNpbmNsdWRlICJBcmd1bWVudHMuaCIKKyNpbmNs
dWRlICJPcGVyYXRpb25zLmgiCiAKIG5hbWVzcGFjZSBKU0MgewogCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmNwcAkocmV2aXNpb24gMTYzNzUyKQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTI5LDcgKzI5LDYgQEAKICNpbmNsdWRlICJDb2RlQmxvY2suaCIKICNpbmNsdWRl
ICJDb21tb25JZGVudGlmaWVycy5oIgogI2luY2x1ZGUgIkNhbGxGcmFtZS5oIgotI2luY2x1ZGUg
IkNhbGxGcmFtZUlubGluZXMuaCIKICNpbmNsdWRlICJFeGNlcHRpb25IZWxwZXJzLmgiCiAjaW5j
bHVkZSAiRnVuY3Rpb25Qcm90b3R5cGUuaCIKICNpbmNsdWRlICJHZXR0ZXJTZXR0ZXIuaCIKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RnVuY3Rpb25z
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2Jh
bE9iamVjdEZ1bmN0aW9ucy5jcHAJKHJldmlzaW9uIDE2Mzc1MikKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RnVuY3Rpb25zLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMjYsNyArMjYsNiBAQAogI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0RnVuY3Rpb25zLmgi
CiAKICNpbmNsdWRlICJDYWxsRnJhbWUuaCIKLSNpbmNsdWRlICJDYWxsRnJhbWVJbmxpbmVzLmgi
CiAjaW5jbHVkZSAiSW50ZXJwcmV0ZXIuaCIKICNpbmNsdWRlICJKU0Z1bmN0aW9uLmgiCiAjaW5j
bHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL09iamVjdENvbnN0cnVjdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5jcHAJKHJldmlzaW9uIDE2Mzc1MikKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMjIsNyArMjIsNiBAQAogI2luY2x1ZGUgIk9iamVjdENvbnN0cnVjdG9y
LmgiCiAKICNpbmNsdWRlICJCdXR0ZXJmbHlJbmxpbmVzLmgiCi0jaW5jbHVkZSAiQ2FsbEZyYW1l
SW5saW5lcy5oIgogI2luY2x1ZGUgIkNvcGllZFNwYWNlSW5saW5lcy5oIgogI2luY2x1ZGUgIkVy
cm9yLmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uSGVscGVycy5oIgpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvT3BlcmF0aW9ucy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL09wZXJhdGlvbnMuaAkocmV2aXNpb24gMTYzNzUyKQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3BlcmF0aW9ucy5oCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDYgKzEsNiBAQAogLyoKICAqICBDb3B5cmlnaHQgKEMpIDE5OTktMjAwMCBIYXJyaSBQb3J0
ZW4gKHBvcnRlbkBrZGUub3JnKQotICogIENvcHlyaWdodCAoQykgMjAwMiwgMjAwNSwgMjAwNiwg
MjAwNywgMjAwOCwgMjAwOSwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiAgQ29weXJpZ2h0IChDKSAyMDAyLCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5LCAyMDEz
LCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiAgVGhpcyBsaWJy
YXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICog
IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljCkBAIC0yMiw2ICsyMiw3IEBACiAjaWZuZGVmIE9wZXJhdGlvbnNfaAogI2RlZmluZSBPcGVy
YXRpb25zX2gKIAorI2luY2x1ZGUgIkNhbGxGcmFtZUlubGluZXMuaCIKICNpbmNsdWRlICJFeGNl
cHRpb25IZWxwZXJzLmgiCiAjaW5jbHVkZSAiR0NJbmNvbWluZ1JlZkNvdW50ZWRJbmxpbmVzLmgi
CiAjaW5jbHVkZSAiSW50ZXJwcmV0ZXIuaCIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1ZNLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9WTS5jcHAJKHJldmlzaW9uIDE2Mzc1MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1ZNLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzIsNyArMzIsNiBAQAogI2luY2x1ZGUgIkFy
Z0xpc3QuaCIKICNpbmNsdWRlICJBcml0eUNoZWNrRmFpbFJldHVyblRodW5rcy5oIgogI2luY2x1
ZGUgIkFycmF5QnVmZmVyTmV1dGVyaW5nV2F0Y2hwb2ludC5oIgotI2luY2x1ZGUgIkNhbGxGcmFt
ZUlubGluZXMuaCIKICNpbmNsdWRlICJDb2RlQmxvY2suaCIKICNpbmNsdWRlICJDb2RlQ2FjaGUu
aCIKICNpbmNsdWRlICJDb21tb25JZGVudGlmaWVycy5oIgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>223642</attachid>
            <date>2014-02-09 12:47:01 -0800</date>
            <delta_ts>2014-02-09 12:53:49 -0800</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>78801</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTYzNzUyKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEwNCBA
QAorMjAxNC0wMi0wOSAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgorCisgICAgICAg
IEdDIGJsb2NrcyBvbiBGVEwgYW5kIHRoZW4gYmFkbmVzcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI4MjkxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisgICAgICAgIAorICAgICAgICBJbnRyb2R1Y2UgdGhlIG5vdGlvbiBv
ZiBhIERGRzo6U2FmZXBvaW50LCB3aGljaCBhbGxvd3MgeW91IHRvIHVubG9jayB0aGUgcmlnaHRU
b1J1bgorICAgICAgICBtdXRleCBmb3IgeW91ciBKSVQgdGhyZWFkLCB3aGlsZSBzdXBwbHlpbmcg
dGhlIEdDIHdpdGggYWxsIG9mIHRoZSBpbmZvcm1hdGlvbiBpdCB3b3VsZAorICAgICAgICBuZWVk
IHRvIHNjYW4geW91IGF0IHRoYXQgbW9tZW50IGluIHRpbWUuIFRoZSBkZWZhdWx0IHdheSBvZiB1
c2luZyB0aGlzIGlzCisgICAgICAgIERGRzo6R3JhcGhTYWZlcG9pbnQsIHdoZXJlIHlvdSBqdXN0
IHN1cHBseSB0aGUgR3JhcGguIFRoZXJlJ3MgYSBsb3Qgb2YgbWFjaGluZXJ5IGluCisgICAgICAg
IHRoaXMgcGF0Y2gganVzdCB0byBtYWtlIHRoZSBHcmFwaCBzY2FubmFibGUuCisgICAgICAgIAor
ICAgICAgICBXZSB0aGVuIHVzZSBERkc6OkdyYXBoU2FmZXBvaW50IGluIGp1c3QgdHdvIHBsYWNl
cyBmb3Igbm93OiAoMSkgd2hpbGUgaW5pdGlhbGl6aW5nIExMVk0KKyAgICAgICAgYW5kICgyKSB3
aGlsZSBpbnZva2luZyBMTFZNJyBvcHRpbWl6ZXIgYW5kIGJhY2tlbmQuCisgICAgICAgIAorICAg
ICAgICBNYWtpbmcgdGhpcyBjaGFuZ2Ugd2FzIGRpZmZpY3VsdCBiZWNhdXNlIEkgcmFuIGludG8g
dGhlIGxpbWl0cyBvZiBvdXIgbGFjayBvZiBoZWFkZXIKKyAgICAgICAgZmlsZSBkaXNjaXBsaW5l
LiBFdmVuIHRob3VnaCBPcGVyYXRpb25zLmggaXMgbWVhbnQgdG8gYmUgdGhlIHRoaW5nIHRoYXQg
aXMgb25seQorICAgICAgICBpbmNsdWRlZCBmcm9tIC5jcHAgZmlsZXMsIGl0IHdhcyBpbmNsdWRl
ZCBmcm9tIENvZGVCbG9jay5oLiBTaW1pbGFybHksCisgICAgICAgIENhbGxGcmFtZUlubGluZXMu
aCB3YXMgaW5jbHVkZWQgZnJvbSBERkdKSVRDb21waWxlci5oLiBUaGVuLCBDYWxsTGlua0luZm8u
aCBpbmNsdWRlZAorICAgICAgICBERkdHcmFwaC5oLiBJdCB3YXMgYSB0b3RhbCBtZXNzLiBJIHVu
cmF2ZWxlZCB0aGlzIG1lc3MgdG8gZ2V0IG15IGNvZGUgdG8gYnVpbGQuCisKKyAgICAgICAgKiBB
UEkvSlNDb250ZXh0UmVmLmNwcDoKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAg
KiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnZjeHByb2ov
SmF2YVNjcmlwdENvcmUudmN4cHJvajoKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGFzc2VtYmxlci9MaW5rQnVmZmVyLmNwcDoK
KyAgICAgICAgKiBieXRlY29kZS9Db2RlQmxvY2suY3BwOgorICAgICAgICAqIGJ5dGVjb2RlL0Nv
ZGVCbG9jay5oOgorICAgICAgICAqIGJ5dGVjb2RlL1Byb2ZpbGVkQ29kZUJsb2NrSmV0dGlzb25p
bmdXYXRjaHBvaW50LmNwcDoKKyAgICAgICAgKiBkZWJ1Z2dlci9EZWJ1Z2dlckNhbGxGcmFtZS5j
cHA6CisgICAgICAgICogZGZnL0RGR0Rlc2lyZWRUcmFuc2l0aW9ucy5jcHA6CisgICAgICAgICog
ZGZnL0RGR0RyaXZlci5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Y29tcGlsZUltcGwpOgorICAg
ICAgICAqIGRmZy9ERkdHcmFwaC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6R3JhcGg6OnZpc2l0
Q2hpbGRyZW4pOgorICAgICAgICAqIGRmZy9ERkdHcmFwaC5oOgorICAgICAgICAqIGRmZy9ERkdH
cmFwaFNhZmVwb2ludC5jcHA6IEFkZGVkLgorICAgICAgICAoSlNDOjpERkc6OkdyYXBoU2FmZXBv
aW50OjpHcmFwaFNhZmVwb2ludCk6CisgICAgICAgIChKU0M6OkRGRzo6R3JhcGhTYWZlcG9pbnQ6
On5HcmFwaFNhZmVwb2ludCk6CisgICAgICAgICogZGZnL0RGR0dyYXBoU2FmZXBvaW50Lmg6IEFk
ZGVkLgorICAgICAgICAqIGRmZy9ERkdKSVRDb2RlLmNwcDoKKyAgICAgICAgKiBkZmcvREZHSklU
Q29tcGlsZXIuY3BwOgorICAgICAgICAqIGRmZy9ERkdKSVRDb21waWxlci5oOgorICAgICAgICAq
IGRmZy9ERkdPU1JFeGl0Q29tcGlsZXJDb21tb24uY3BwOgorICAgICAgICAqIGRmZy9ERkdPcGVy
YXRpb25zLmNwcDoKKyAgICAgICAgKiBkZmcvREZHT3BlcmF0aW9ucy5oOgorICAgICAgICAqIGRm
Zy9ERkdQbGFuLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpQbGFuOjpjb21waWxlSW5UaHJlYWQp
OgorICAgICAgICAoSlNDOjpERkc6OlBsYW46OmNvbXBpbGVJblRocmVhZEltcGwpOgorICAgICAg
ICAqIGRmZy9ERkdQbGFuLmg6CisgICAgICAgICogZGZnL0RGR1NhZmVwb2ludC5jcHA6IEFkZGVk
LgorICAgICAgICAoSlNDOjpERkc6OlNhZmVwb2ludDo6U2FmZXBvaW50KToKKyAgICAgICAgKEpT
Qzo6REZHOjpTYWZlcG9pbnQ6On5TYWZlcG9pbnQpOgorICAgICAgICAoSlNDOjpERkc6OlNhZmVw
b2ludDo6YWRkKToKKyAgICAgICAgKEpTQzo6REZHOjpTYWZlcG9pbnQ6OmJlZ2luKToKKyAgICAg
ICAgKEpTQzo6REZHOjpTYWZlcG9pbnQ6OnZpc2l0Q2hpbGRyZW4pOgorICAgICAgICAqIGRmZy9E
RkdTYWZlcG9pbnQuaDogQWRkZWQuCisgICAgICAgICogZGZnL0RGR1NjYW5uYWJsZS5oOiBBZGRl
ZC4KKyAgICAgICAgKEpTQzo6REZHOjpTY2FubmFibGU6OlNjYW5uYWJsZSk6CisgICAgICAgIChK
U0M6OkRGRzo6U2Nhbm5hYmxlOjp+U2Nhbm5hYmxlKToKKyAgICAgICAgKiBkZmcvREZHVGhyZWFk
RGF0YS5jcHA6IEFkZGVkLgorICAgICAgICAoSlNDOjpERkc6OlRocmVhZERhdGE6OlRocmVhZERh
dGEpOgorICAgICAgICAoSlNDOjpERkc6OlRocmVhZERhdGE6On5UaHJlYWREYXRhKToKKyAgICAg
ICAgKiBkZmcvREZHVGhyZWFkRGF0YS5oOiBBZGRlZC4KKyAgICAgICAgKiBkZmcvREZHVGh1bmtz
LmNwcDoKKyAgICAgICAgKiBkZmcvREZHV29ya2xpc3QuY3BwOgorICAgICAgICAoSlNDOjpERkc6
OldvcmtsaXN0OjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgIChKU0M6OkRGRzo6V29ya2xpc3Q6
OnZpc2l0Q2hpbGRyZW4pOgorICAgICAgICAoSlNDOjpERkc6OldvcmtsaXN0OjpydW5UaHJlYWQp
OgorICAgICAgICAqIGRmZy9ERkdXb3JrbGlzdC5oOgorICAgICAgICAqIGZ0bC9GVExDb21waWxl
LmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpjb21waWxlKToKKyAgICAgICAgKiBmdGwvRlRMTGlu
ay5jcHA6CisgICAgICAgICogZnRsL0ZUTE9TUkV4aXRDb21waWxlci5jcHA6CisgICAgICAgICog
ZnRsL0ZUTFNsb3dQYXRoQ2FsbC5jcHA6CisgICAgICAgICogZnRsL0ZUTFRodW5rcy5jcHA6Cisg
ICAgICAgIChKU0M6OkZUTDo6c2xvd1BhdGhDYWxsVGh1bmtHZW5lcmF0b3IpOgorICAgICAgICAq
IGhlYXAvU2xvdFZpc2l0b3IuaDoKKyAgICAgICAgKiBoZWFwL1Nsb3RWaXNpdG9ySW5saW5lcy5o
OgorICAgICAgICAoSlNDOjpTbG90VmlzaXRvcjo6YXBwZW5kVW5iYXJyaWVyZWRSZWFkT25seVBv
aW50ZXIpOgorICAgICAgICAoSlNDOjpTbG90VmlzaXRvcjo6YXBwZW5kVW5iYXJyaWVyZWRSZWFk
T25seVZhbHVlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvU2NyaXB0Q2FsbFN0YWNrRmFjdG9yeS5j
cHA6CisgICAgICAgICogaW50ZXJwcmV0ZXIvUHJvdG9DYWxsRnJhbWUuY3BwOgorICAgICAgICAq
IGppdC9KSVRFeGNlcHRpb25zLmNwcDoKKyAgICAgICAgKiBqaXQvSklUSW5saW5lcy5oOgorICAg
ICAgICAqIGppdC9KSVRPcGVyYXRpb25zLmNwcDoKKyAgICAgICAgKiBqaXQvUmVwYXRjaC5jcHA6
CisgICAgICAgICoganNjLmNwcDoKKyAgICAgICAgKiBwcm9maWxlci9Qcm9maWxlR2VuZXJhdG9y
LmNwcDoKKyAgICAgICAgKiBydW50aW1lL0FyZ3VtZW50cy5jcHA6CisgICAgICAgICogcnVudGlt
ZS9Bcmd1bWVudHNJdGVyYXRvclByb3RvdHlwZS5jcHA6CisgICAgICAgICogcnVudGltZS9Db21t
b25TbG93UGF0aHNFeGNlcHRpb25zLmNwcDoKKyAgICAgICAgKiBydW50aW1lL0pTQXJndW1lbnRz
SXRlcmF0b3IuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvSlNGdW5jdGlvbi5jcHA6CisgICAgICAg
ICogcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5jcHA6CisgICAgICAgICogcnVudGlt
ZS9PYmplY3RDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgICogcnVudGltZS9PcGVyYXRpb25zLmg6
CisgICAgICAgICogcnVudGltZS9WTS5jcHA6CisKIDIwMTQtMDItMDkgIEFuZGVycyBDYXJsc3Nv
biAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAgICAgICBDb252ZXJ0IHNvbWUgSlNDIGNvZGUg
b3ZlciB0byBzdGQ6Om11dGV4CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0
cy50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0
CShyZXZpc2lvbiAxNjM3NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50
eHQJKHdvcmtpbmcgY29weSkKQEAgLTEzOCw2ICsxMzgsNyBAQCBzZXQoSmF2YVNjcmlwdENvcmVf
U09VUkNFUwogICAgIGRmZy9ERkdGbHVzaExpdmVuZXNzQW5hbHlzaXNQaGFzZS5jcHAKICAgICBk
ZmcvREZHRmx1c2hlZEF0LmNwcAogICAgIGRmZy9ERkdHcmFwaC5jcHAKKyAgICBkZmcvREZHR3Jh
cGhTYWZlcG9pbnQuY3BwCiAgICAgZGZnL0RGR0luUGxhY2VBYnN0cmFjdFN0YXRlLmNwcAogICAg
IGRmZy9ERkdJbnZhbGlkYXRpb25Qb2ludEluamVjdGlvblBoYXNlLmNwcAogICAgIGRmZy9ERkdK
SVRDb2RlLmNwcApAQCAtMTcyLDEyICsxNzMsMTQgQEAgc2V0KEphdmFTY3JpcHRDb3JlX1NPVVJD
RVMKICAgICBkZmcvREZHUmVzdXJyZWN0aW9uRm9yVmFsaWRhdGlvblBoYXNlLmNwcAogICAgIGRm
Zy9ERkdTU0FDb252ZXJzaW9uUGhhc2UuY3BwCiAgICAgZGZnL0RGR1NTQUxvd2VyaW5nUGhhc2Uu
Y3BwCisgICAgZGZnL0RGR1NhZmVwb2ludC5jcHAKICAgICBkZmcvREZHU3BlY3VsYXRpdmVKSVQu
Y3BwCiAgICAgZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCiAgICAgZGZnL0RGR1NwZWN1
bGF0aXZlSklUNjQuY3BwCiAgICAgZGZnL0RGR1N0YWNrTGF5b3V0UGhhc2UuY3BwCiAgICAgZGZn
L0RGR1N0b3JlQmFycmllckVsaXNpb25QaGFzZS5jcHAKICAgICBkZmcvREZHU3RyZW5ndGhSZWR1
Y3Rpb25QaGFzZS5jcHAKKyAgICBkZmcvREZHVGhyZWFkRGF0YS5jcHAKICAgICBkZmcvREZHVGh1
bmtzLmNwcAogICAgIGRmZy9ERkdUaWVyVXBDaGVja0luamVjdGlvblBoYXNlLmNwcAogICAgIGRm
Zy9ERkdUeXBlQ2hlY2tIb2lzdGluZ1BoYXNlLmNwcApJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0JKHJldmlzaW9uIDE2Mzc1MikKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCSh3b3JraW5nIGNvcHkpCkBAIC0zMDQsNiAr
MzA0LDggQEAgamF2YXNjcmlwdGNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdHZW5lcmF0aW9uSW5mby5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0dyYXBoLmNwcCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5oIFwK
KwlTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoU2FmZXBvaW50LmNwcCBcCisJU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaFNhZmVwb2ludC5oIFwKIAlTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0luUGxhY2VBYnN0cmFjdFN0YXRlLmNwcCBcCiAJU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdJblBsYWNlQWJzdHJhY3RTdGF0ZS5oIFwKIAlTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0lubGluZUNhY2hlV3JhcHBlci5oIFwKQEAgLTM3Nyw3ICszNzks
MTAgQEAgamF2YXNjcmlwdGNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdSZXN1cnJlY3Rpb25Gb3JWYWxpZGF0aW9uUGhhc2UuY3BwIFwKIAlTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1Jlc3VycmVjdGlvbkZvclZhbGlkYXRpb25QaGFzZS5oIFwKIAlT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaCBcCisJU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdTYWZlcG9pbnQuY3BwIFwKKwlTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1NhZmVwb2ludC5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nh
bmVTdHJpbmdHZXRCeVZhbFNsb3dQYXRoR2VuZXJhdG9yLmggXAorCVNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHU2Nhbm5hYmxlLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
U2NvcmVCb2FyZC5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NpbGVudFJlZ2lz
dGVyU2F2ZVBsYW4uaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTbG93UGF0aEdl
bmVyYXRvci5oIFwKQEAgLTM5OCw2ICs0MDMsOCBAQCBqYXZhc2NyaXB0Y29yZV9zb3VyY2VzICs9
IFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1N0cnVjdHVyZUFic3RyYWN0VmFsdWUu
aCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdUaWVyVXBDaGVja0luamVjdGlvblBo
YXNlLmNwcCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdUaWVyVXBDaGVja0luamVj
dGlvblBoYXNlLmggXAorCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVGhyZWFkRGF0YS5j
cHAgXAorCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVGhyZWFkRGF0YS5oIFwKIAlTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1RodW5rcy5jcHAgXAogCVNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHVGh1bmtzLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVG9G
VExEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2suY3BwIFwKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qc2MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2Mu
Y3BwCShyZXZpc2lvbiAxNjM3NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMjUsNyArMjUsNiBAQAogI2luY2x1ZGUgIkFQSVNoaW1zLmgiCiAj
aW5jbHVkZSAiQnV0dGVyZmx5SW5saW5lcy5oIgogI2luY2x1ZGUgIkJ5dGVjb2RlR2VuZXJhdG9y
LmgiCi0jaW5jbHVkZSAiQ2FsbEZyYW1lSW5saW5lcy5oIgogI2luY2x1ZGUgIkNvbXBsZXRpb24u
aCIKICNpbmNsdWRlICJDb3BpZWRTcGFjZUlubGluZXMuaCIKICNpbmNsdWRlICJFeGNlcHRpb25I
ZWxwZXJzLmgiCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ29udGV4dFJlZi5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NvbnRleHRSZWYu
Y3BwCShyZXZpc2lvbiAxNjM3NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ29u
dGV4dFJlZi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5LDcgKzI5LDYgQEAKIAogI2luY2x1ZGUg
IkFQSUNhc3QuaCIKICNpbmNsdWRlICJDYWxsRnJhbWUuaCIKLSNpbmNsdWRlICJDYWxsRnJhbWVJ
bmxpbmVzLmgiCiAjaW5jbHVkZSAiSW5pdGlhbGl6ZVRocmVhZGluZy5oIgogI2luY2x1ZGUgIkpT
Q2FsbGJhY2tPYmplY3QuaCIKICNpbmNsdWRlICJKU0NsYXNzUmVmLmgiCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hw
cm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52
Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2oJKHJldmlzaW9uIDE2Mzc1MikKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZj
eHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTM5Miw2ICszOTIsNyBAQAogICAgIDxDbENvbXBpbGUg
SW5jbHVkZT0iLi5cZGZnXERGR0ZsdXNoRm9ybWF0LmNwcCIgLz4KICAgICA8Q2xDb21waWxlIElu
Y2x1ZGU9Ii4uXGRmZ1xERkdGbHVzaExpdmVuZXNzQW5hbHlzaXNQaGFzZS5jcHAiIC8+CiAgICAg
PENsQ29tcGlsZSBJbmNsdWRlPSIuLlxkZmdcREZHR3JhcGguY3BwIiAvPgorICAgIDxDbENvbXBp
bGUgSW5jbHVkZT0iLi5cZGZnXERGR0dyYXBoU2FmZXBvaW50LmNwcCIgLz4KICAgICA8Q2xDb21w
aWxlIEluY2x1ZGU9Ii4uXGRmZ1xERkdJblBsYWNlQWJzdHJhY3RTdGF0ZS5jcHAiIC8+CiAgICAg
PENsQ29tcGlsZSBJbmNsdWRlPSIuLlxkZmdcREZHSW52YWxpZGF0aW9uUG9pbnRJbmplY3Rpb25Q
aGFzZS5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxkZmdcREZHSklUQ29kZS5j
cHAiIC8+CkBAIC00MjQsNiArNDI1LDcgQEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGRm
Z1xERkdQcmVkaWN0aW9uSW5qZWN0aW9uUGhhc2UuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5j
bHVkZT0iLi5cZGZnXERGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcCIgLz4KICAgICA8
Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGRmZ1xERkdSZXN1cnJlY3Rpb25Gb3JWYWxpZGF0aW9uUGhh
c2UuY3BwIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZGZnXERGR1NhZmVwb2ludC5j
cHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxkZmdcREZHU3BlY3VsYXRpdmVKSVQu
Y3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZGZnXERGR1NwZWN1bGF0aXZlSklU
MzJfNjQuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZGZnXERGR1NwZWN1bGF0
aXZlSklUNjQuY3BwIiAvPgpAQCAtNDMyLDYgKzQzNCw3IEBACiAgICAgPENsQ29tcGlsZSBJbmNs
dWRlPSIuLlxkZmdcREZHU3RhY2tMYXlvdXRQaGFzZS5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJ
bmNsdWRlPSIuLlxkZmdcREZHU3RvcmVCYXJyaWVyRWxpc2lvblBoYXNlLmNwcCIgLz4KICAgICA8
Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGRmZ1xERkdTdHJlbmd0aFJlZHVjdGlvblBoYXNlLmNwcCIg
Lz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGRmZ1xERkdUaHJlYWREYXRhLmNwcCIgLz4K
ICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGRmZ1xERkdUaHVua3MuY3BwIiAvPgogICAgIDxD
bENvbXBpbGUgSW5jbHVkZT0iLi5cZGZnXERGR1RpZXJVcENoZWNrSW5qZWN0aW9uUGhhc2UuY3Bw
IiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZGZnXERGR1RvRlRMRGVmZXJyZWRDb21w
aWxhdGlvbkNhbGxiYWNrLmNwcCIgLz4KQEAgLTkyOSw2ICs5MzIsNyBAQAogICAgIDxDbEluY2x1
ZGUgSW5jbHVkZT0iLi5cZGZnXERGR0dlbmVyYXRpb25JbmZvLmgiIC8+CiAgICAgPENsSW5jbHVk
ZSBJbmNsdWRlPSIuLlxkZmdcREZHR1BSSW5mby5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVk
ZT0iLi5cZGZnXERGR0dyYXBoLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxkZmdc
REZHR3JhcGhTYWZlcG9pbnQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGRmZ1xE
RkdJblBsYWNlQWJzdHJhY3RTdGF0ZS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
ZGZnXERGR0luc2VydGlvblNldC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZGZn
XERGR0ludmFsaWRhdGlvblBvaW50SW5qZWN0aW9uUGhhc2UuaCIgLz4KQEAgLTk2OSw3ICs5NzMs
OSBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZGZnXERGR1JlZ2lzdGVyU2V0LmgiIC8+
CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxkZmdcREZHUmVzdXJyZWN0aW9uRm9yVmFsaWRh
dGlvblBoYXNlLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxkZmdcREZHU2FmZVRv
RXhlY3V0ZS5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZGZnXERGR1NhZmVwb2lu
dC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZGZnXERGR1NhbmVTdHJpbmdHZXRC
eVZhbFNsb3dQYXRoR2VuZXJhdG9yLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxk
ZmdcREZHU2Nhbm5hYmxlLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxkZmdcREZH
U2NvcmVCb2FyZC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZGZnXERGR1NjcmF0
Y2hSZWdpc3RlckFsbG9jYXRvci5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZGZn
XERGR1NpbGVudFJlZ2lzdGVyU2F2ZVBsYW4uaCIgLz4KQEAgLTk4MSw2ICs5ODcsNyBAQAogICAg
IDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZGZnXERGR1N0b3JlQmFycmllckVsaXNpb25QaGFzZS5o
IiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZGZnXERGR1N0cmVuZ3RoUmVkdWN0aW9u
UGhhc2UuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGRmZ1xERkdTdHJ1Y3R1cmVB
YnN0cmFjdFZhbHVlLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxkZmdcREZHVGhy
ZWFkRGF0YS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZGZnXERGR1RodW5rcy5o
IiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZGZnXERGR1RpZXJVcENoZWNrSW5qZWN0
aW9uUGhhc2UuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGRmZ1xERkdUb0ZUTERl
ZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjay5oIiAvPgpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oJKHJldmlzaW9uIDE2Mzc1MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZh
U2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0y
MDIsNiArMjAyLDEzIEBACiAJCTBGMkU4OTJEMTZEMDJCQUYwMDlFNEZEMiAvKiBERkdNaW5pZmll
ZElELmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkI0
QjUxMDE2QjNBOTY0MDAzRjY5NkIgLyogREZHTWluaWZpZWRJRC5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGMkZDNzcyMTZFMTJGNzEwMDM4RDk3
NiAvKiBERkdEQ0VQaGFzZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwRjJGQzc3MDE2RTEyRjZGMDAzOEQ5NzYgLyogREZHRENFUGhhc2UuY3BwICov
OyB9OwogCQkwRjJGQzc3MzE2RTEyRjc0MDAzOEQ5NzYgLyogREZHRENFUGhhc2UuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMkZDNzcxMTZFMTJGNkYw
MDM4RDk3NiAvKiBERkdEQ0VQaGFzZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CisJCTBGMkZDQ0Y5MThBNjAwNzAwMDFBMjdGOCAvKiBERkdHcmFwaFNh
ZmVwb2ludC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwRjJGQ0NGMjE4QTYwMDcwMDAxQTI3RjggLyogREZHR3JhcGhTYWZlcG9pbnQuY3BwICovOyB9
OworCQkwRjJGQ0NGQTE4QTYwMDcwMDAxQTI3RjggLyogREZHR3JhcGhTYWZlcG9pbnQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMkZDQ0YzMThBNjAw
NzAwMDFBMjdGOCAvKiBERkdHcmFwaFNhZmVwb2ludC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTBGMkZDQ0ZCMThBNjAwNzAwMDFBMjdGOCAvKiBE
RkdTYWZlcG9pbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMEYyRkNDRjQxOEE2MDA3MDAwMUEyN0Y4IC8qIERGR1NhZmVwb2ludC5jcHAgKi87IH07
CisJCTBGMkZDQ0ZDMThBNjAwNzAwMDFBMjdGOCAvKiBERkdTYWZlcG9pbnQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMkZDQ0Y1MThBNjAwNzAwMDFB
MjdGOCAvKiBERkdTYWZlcG9pbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OworCQkwRjJGQ0NGRDE4QTYwMDcwMDAxQTI3RjggLyogREZHU2Nhbm5hYmxl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjJGQ0NG
NjE4QTYwMDcwMDAxQTI3RjggLyogREZHU2Nhbm5hYmxlLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMEYyRkNDRkUxOEE2MDA3MDAwMUEyN0Y4IC8q
IERGR1RocmVhZERhdGEuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMEYyRkNDRjcxOEE2MDA3MDAwMUEyN0Y4IC8qIERGR1RocmVhZERhdGEuY3BwICov
OyB9OworCQkwRjJGQ0NGRjE4QTYwMDcwMDAxQTI3RjggLyogREZHVGhyZWFkRGF0YS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYyRkNDRjgxOEE2MDA3
MDAwMUEyN0Y4IC8qIERGR1RocmVhZERhdGEuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjM0QjE0OTE2RDQyMDEwMDAxQ0RBNUEgLyogREZHVXNl
S2luZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAw
RjM0QjE0NzE2RDQyMDBFMDAxQ0RBNUEgLyogREZHVXNlS2luZC5jcHAgKi87IH07CiAJCTBGMzRC
MTRBMTZENDIwMTMwMDFDREE1QSAvKiBERkdVc2VLaW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjM0QjE0ODE2RDQyMDBFMDAxQ0RBNUEgLyogREZH
VXNlS2luZC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTBGMzRCMTRDMTZENDNFMEQwMDFDREE1QSAvKiBQb2x5bW9ycGhpY0FjY2Vzc1N0cnVjdHVy
ZUxpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBG
MzRCMTRCMTZENDNFMEMwMDFDREE1QSAvKiBQb2x5bW9ycGhpY0FjY2Vzc1N0cnVjdHVyZUxpc3Qu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTM1
MSw3ICsxMzU4LDcgQEAKIAkJQzI5ODFGREQxN0JBRkY0NDAwQTNCQzk4IC8qIERGR0Rlc2lyZWRX
cml0ZUJhcnJpZXJzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBDMjk4MUZEQjE3QkFGRjQ0MDBBM0JDOTggLyogREZHRGVzaXJlZFdyaXRlQmFycmllcnMu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDMjlF
Q0IwMzE4MDREMEVEMDBEMkNCQjQgLyogQ3VycmVudFRoaXNJbnNpZGVCbG9ja0dldHRlclRlc3Qu
bW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMjlFQ0Iw
MTE4MDREMEVEMDBEMkNCQjQgLyogQ3VycmVudFRoaXNJbnNpZGVCbG9ja0dldHRlclRlc3QubW0g
Ki87IH07CiAJCUMyQTdGNjg4MTYwNDMyRDQwMEY3NkI5OCAvKiBKU0Rlc3RydWN0aWJsZU9iamVj
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzJBN0Y2
ODcxNjA0MzJENDAwRjc2Qjk4IC8qIEpTRGVzdHJ1Y3RpYmxlT2JqZWN0LmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLSAgICAgICBDMkI2RDc1MzE4QTMz
NzkzMDA0QTkzMDEgLyogV3JpdGVCYXJyaWVySW5saW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzJCNkQ3NTIxOEEzMzc5MzAwNEE5MzAxIC8qIFdy
aXRlQmFycmllcklubGluZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OworCQlDMkI2RDc1MzE4QTMzNzkzMDA0QTkzMDEgLyogV3JpdGVCYXJyaWVySW5s
aW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzJC
NkQ3NTIxOEEzMzc5MzAwNEE5MzAxIC8qIFdyaXRlQmFycmllcklubGluZXMuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDMkI5MTZDMjE0REEwMTRF
MDBDQkFDODYgLyogTWFya2VkQWxsb2NhdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBDMkI5MTZDMTE0REEwMTRFMDBDQkFDODYgLyogTWFya2VkQWxs
b2NhdG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJQzJCOTE2QzUxNERBMDQwQzAwQ0JBQzg2IC8qIE1hcmtlZEFsbG9jYXRvci5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMkI5MTZDNDE0REEwNDBD
MDBDQkFDODYgLyogTWFya2VkQWxsb2NhdG9yLmNwcCAqLzsgfTsKIAkJQzJDMEY3Q0QxN0JCRkM1
QjAwNDY0RkU0IC8qIERGR0Rlc2lyZWRUcmFuc2l0aW9ucy5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMkMwRjdDQjE3QkJGQzVCMDA0NjRGRTQgLyog
REZHRGVzaXJlZFRyYW5zaXRpb25zLmNwcCAqLzsgfTsKQEAgLTE2NDQsNiArMTY1MSwxMyBAQAog
CQkwRjJCREM1MDE1MjI4RkZBMDBDRDg5MTAgLyogREZHVmFyaWFibGVFdmVudC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBERkdWYXJpYWJsZUV2ZW50LmNwcDsgcGF0
aCA9IGRmZy9ERkdWYXJpYWJsZUV2ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMEYyRkM3NzAxNkUxMkY2RjAwMzhEOTc2IC8qIERGR0RDRVBoYXNlLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IERGR0RDRVBoYXNlLmNwcDsgcGF0aCA9IGRmZy9E
RkdEQ0VQaGFzZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGMkZDNzcxMTZF
MTJGNkYwMDM4RDk3NiAvKiBERkdEQ0VQaGFzZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IG5hbWUgPSBERkdEQ0VQaGFzZS5oOyBwYXRoID0gZGZnL0RGR0RDRVBoYXNlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGMkZDQ0YyMThBNjAwNzAwMDFBMjdGOCAvKiBERkdHcmFw
aFNhZmVwb2ludC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBERkdH
cmFwaFNhZmVwb2ludC5jcHA7IHBhdGggPSBkZmcvREZHR3JhcGhTYWZlcG9pbnQuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRjJGQ0NGMzE4QTYwMDcwMDAxQTI3RjggLyogREZH
R3JhcGhTYWZlcG9pbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gREZHR3Jh
cGhTYWZlcG9pbnQuaDsgcGF0aCA9IGRmZy9ERkdHcmFwaFNhZmVwb2ludC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQkwRjJGQ0NGNDE4QTYwMDcwMDAxQTI3RjggLyogREZHU2FmZXBv
aW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IERGR1NhZmVwb2lu
dC5jcHA7IHBhdGggPSBkZmcvREZHU2FmZXBvaW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJMEYyRkNDRjUxOEE2MDA3MDAwMUEyN0Y4IC8qIERGR1NhZmVwb2ludC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBERkdTYWZlcG9pbnQuaDsgcGF0aCA9IGRmZy9E
RkdTYWZlcG9pbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEYyRkNDRjYxOEE2
MDA3MDAwMUEyN0Y4IC8qIERGR1NjYW5uYWJsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IG5hbWUgPSBERkdTY2FubmFibGUuaDsgcGF0aCA9IGRmZy9ERkdTY2FubmFibGUuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEYyRkNDRjcxOEE2MDA3MDAwMUEyN0Y4IC8qIERGR1Ro
cmVhZERhdGEuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gREZHVGhy
ZWFkRGF0YS5jcHA7IHBhdGggPSBkZmcvREZHVGhyZWFkRGF0YS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTBGMkZDQ0Y4MThBNjAwNzAwMDFBMjdGOCAvKiBERkdUaHJlYWREYXRh
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IERGR1RocmVhZERhdGEuaDsgcGF0
aCA9IGRmZy9ERkdUaHJlYWREYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBG
MzRCMTQ3MTZENDIwMEUwMDFDREE1QSAvKiBERkdVc2VLaW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgbmFtZSA9IERGR1VzZUtpbmQuY3BwOyBwYXRoID0gZGZnL0RGR1VzZUtp
bmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjM0QjE0ODE2RDQyMDBFMDAx
Q0RBNUEgLyogREZHVXNlS2luZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBE
RkdVc2VLaW5kLmg7IHBhdGggPSBkZmcvREZHVXNlS2luZC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkwRjM0QjE0QjE2RDQzRTBDMDAxQ0RBNUEgLyogUG9seW1vcnBoaWNBY2Nlc3NT
dHJ1Y3R1cmVMaXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBvbHltb3Jw
aGljQWNjZXNzU3RydWN0dXJlTGlzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MjgwMiw3ICsyODE2LDcgQEAKIAkJQzI5RUNCMDExODA0RDBFRDAwRDJDQkI0IC8qIEN1cnJlbnRU
aGlzSW5zaWRlQmxvY2tHZXR0ZXJUZXN0Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBuYW1lID0gQ3VycmVudFRoaXNJbnNpZGVCbG9ja0dldHRlclRlc3QubW07IHBhdGggPSBB
UEkvdGVzdHMvQ3VycmVudFRoaXNJbnNpZGVCbG9ja0dldHRlclRlc3QubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUMyOUVDQjAyMTgwNEQwRUQwMEQyQ0JCNCAvKiBDdXJyZW50VGhp
c0luc2lkZUJsb2NrR2V0dGVyVGVzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUg
PSBDdXJyZW50VGhpc0luc2lkZUJsb2NrR2V0dGVyVGVzdC5oOyBwYXRoID0gQVBJL3Rlc3RzL0N1
cnJlbnRUaGlzSW5zaWRlQmxvY2tHZXR0ZXJUZXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUMyQTdGNjg3MTYwNDMyRDQwMEY3NkI5OCAvKiBKU0Rlc3RydWN0aWJsZU9iamVjdC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0Rlc3RydWN0aWJsZU9iamVjdC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotICAgICAgIEMyQjZENzUyMThBMzM3OTMwMDRB
OTMwMSAvKiBXcml0ZUJhcnJpZXJJbmxpbmVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFdyaXRlQmFycmllcklubGluZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJQzJCNkQ3NTIxOEEzMzc5MzAwNEE5MzAxIC8qIFdyaXRlQmFycmllcklubGluZXMuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV3JpdGVCYXJyaWVySW5saW5lcy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDMkI5MTZDMTE0REEwMTRFMDBDQkFDODYgLyogTWFy
a2VkQWxsb2NhdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1hcmtlZEFs
bG9jYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDMkI5MTZDNDE0REEwNDBD
MDBDQkFDODYgLyogTWFya2VkQWxsb2NhdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IE1hcmtlZEFsbG9jYXRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUMyQzBGN0NCMTdCQkZDNUIwMDQ2NEZFNCAvKiBERkdEZXNpcmVkVHJhbnNpdGlvbnMu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gREZHRGVzaXJlZFRyYW5z
aXRpb25zLmNwcDsgcGF0aCA9IGRmZy9ERkdEZXNpcmVkVHJhbnNpdGlvbnMuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzY2Myw3ICszNjc3LDcgQEAKIAkJN0VGNkUwQkIwRUI3
QTFFQzAwNzlBRkFGIC8qIHJ1bnRpbWUgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNo
aWxkcmVuID0gKAotICAgICAgICAgICAgICAgQzJCNkQ3NTIxOEEzMzc5MzAwNEE5MzAxIC8qIFdy
aXRlQmFycmllcklubGluZXMuaCAqLywKKwkJCQlDMkI2RDc1MjE4QTMzNzkzMDA0QTkzMDEgLyog
V3JpdGVCYXJyaWVySW5saW5lcy5oICovLAogCQkJCUJDRjYwNTExMEUyMDNFRjgwMEI5QTY0RCAv
KiBBcmdMaXN0LmNwcCAqLywKIAkJCQlCQ0Y2MDUxMjBFMjAzRUY4MDBCOUE2NEQgLyogQXJnTGlz
dC5oICovLAogCQkJCUJDMjU3REU1MEUxRjUxQzUwMDE2QjZDOSAvKiBBcmd1bWVudHMuY3BwICov
LApAQCAtNDA4Nyw4ICs0MTAxLDYgQEAKIAkJODZFQzlEQjMxMzI4REY0NDAwMkIyQUQ3IC8qIGRm
ZyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCi0JCQkJMkFDQ0Yz
REMxODVGRTI2QjAwODNFMkFEIC8qIERGR1N0b3JlQmFycmllckVsaXNpb25QaGFzZS5jcHAgKi8s
Ci0JCQkJMkFDQ0YzREQxODVGRTI2QjAwODNFMkFEIC8qIERGR1N0b3JlQmFycmllckVsaXNpb25Q
aGFzZS5oICovLAogCQkJCUE3N0E0MjM2MTdBMEJCRkQwMEE4REI4MSAvKiBERkdBYnN0cmFjdEhl
YXAuY3BwICovLAogCQkJCUE3N0E0MjM3MTdBMEJCRkQwMEE4REI4MSAvKiBERkdBYnN0cmFjdEhl
YXAuaCAqLywKIAkJCQlBNzA0RDhGRTE3QTBCQUE4MDA2QkE1NTQgLyogREZHQWJzdHJhY3RJbnRl
cnByZXRlci5oICovLApAQCAtNDE5MCw2ICs0MjAyLDggQEAKIAkJCQk4NkVDOURCNjEzMjhERjgy
MDAyQjJBRDcgLyogREZHR2VuZXJhdGlvbkluZm8uaCAqLywKIAkJCQk4NkVDOURCNzEzMjhERjgy
MDAyQjJBRDcgLyogREZHR3JhcGguY3BwICovLAogCQkJCTg2RUM5REI4MTMyOERGODIwMDJCMkFE
NyAvKiBERkdHcmFwaC5oICovLAorCQkJCTBGMkZDQ0YyMThBNjAwNzAwMDFBMjdGOCAvKiBERkdH
cmFwaFNhZmVwb2ludC5jcHAgKi8sCisJCQkJMEYyRkNDRjMxOEE2MDA3MDAwMUEyN0Y4IC8qIERG
R0dyYXBoU2FmZXBvaW50LmggKi8sCiAJCQkJMEZCMTRFMjAxODEyNTcwQjAwOUI2QjREIC8qIERG
R0lubGluZUNhY2hlV3JhcHBlci5oICovLAogCQkJCTBGQjE0RTIyMTgxMzA5NTUwMDlCNkI0RCAv
KiBERkdJbmxpbmVDYWNoZVdyYXBwZXJJbmxpbmVzLmggKi8sCiAJCQkJQTcwNEQ5MDAxN0EwQkFB
ODAwNkJBNTU0IC8qIERGR0luUGxhY2VBYnN0cmFjdFN0YXRlLmNwcCAqLywKQEAgLTQyNjIsOCAr
NDI3NiwxMSBAQAogCQkJCTg2RUM5REMxMTMyOERGODIwMDJCMkFENyAvKiBERkdSZWdpc3RlckJh
bmsuaCAqLywKIAkJCQkwRjY2NkVDQTE4MzZCMzdFMDBEMDE3RjEgLyogREZHUmVzdXJyZWN0aW9u
Rm9yVmFsaWRhdGlvblBoYXNlLmNwcCAqLywKIAkJCQkwRjY2NkVDQjE4MzZCMzdFMDBEMDE3RjEg
LyogREZHUmVzdXJyZWN0aW9uRm9yVmFsaWRhdGlvblBoYXNlLmggKi8sCisJCQkJMEYyRkNDRjQx
OEE2MDA3MDAwMUEyN0Y4IC8qIERGR1NhZmVwb2ludC5jcHAgKi8sCisJCQkJMEYyRkNDRjUxOEE2
MDA3MDAwMUEyN0Y4IC8qIERGR1NhZmVwb2ludC5oICovLAogCQkJCUE3N0E0MjNDMTdBMEJCRkQw
MEE4REI4MSAvKiBERkdTYWZlVG9FeGVjdXRlLmggKi8sCiAJCQkJQTc0MTAxN0UxNzlEQUY4MDAw
MkVCOEJBIC8qIERGR1NhbmVTdHJpbmdHZXRCeVZhbFNsb3dQYXRoR2VuZXJhdG9yLmggKi8sCisJ
CQkJMEYyRkNDRjYxOEE2MDA3MDAwMUEyN0Y4IC8qIERGR1NjYW5uYWJsZS5oICovLAogCQkJCTg2
RUNBM0Y5MTMyREYyNUEwMDJCMkFENyAvKiBERkdTY29yZUJvYXJkLmggKi8sCiAJCQkJMEYxRTNB
NjUxNTNBMjFERjAwMEY5NDU2IC8qIERGR1NpbGVudFJlZ2lzdGVyU2F2ZVBsYW4uaCAqLywKIAkJ
CQkwRjFFM0E1MDE1MzdDMkNCMDAwRjk0NTYgLyogREZHU2xvd1BhdGhHZW5lcmF0b3IuaCAqLywK
QEAgLTQyNzcsOSArNDI5NCwxMyBAQAogCQkJCTBGQzIwQ0I4MTg1NTZBMzUwMEM5RTk1NCAvKiBE
RkdTU0FMb3dlcmluZ1BoYXNlLmggKi8sCiAJCQkJMEY5RkI0RjIxN0ZDQjkxNzAwQ0I2N0Y4IC8q
IERGR1N0YWNrTGF5b3V0UGhhc2UuY3BwICovLAogCQkJCTBGOUZCNEYzMTdGQ0I5MTcwMENCNjdG
OCAvKiBERkdTdGFja0xheW91dFBoYXNlLmggKi8sCisJCQkJMkFDQ0YzREMxODVGRTI2QjAwODNF
MkFEIC8qIERGR1N0b3JlQmFycmllckVsaXNpb25QaGFzZS5jcHAgKi8sCisJCQkJMkFDQ0YzREQx
ODVGRTI2QjAwODNFMkFEIC8qIERGR1N0b3JlQmFycmllckVsaXNpb25QaGFzZS5oICovLAogCQkJ
CTBGQzIwQ0IzMTg1MkUyQzYwMEM5RTk1NCAvKiBERkdTdHJlbmd0aFJlZHVjdGlvblBoYXNlLmNw
cCAqLywKIAkJCQkwRkMyMENCNDE4NTJFMkM2MDBDOUU5NTQgLyogREZHU3RyZW5ndGhSZWR1Y3Rp
b25QaGFzZS5oICovLAogCQkJCTBGNjM5NDc2MTVEQ0UzNDcwMDZBNTk3QyAvKiBERkdTdHJ1Y3R1
cmVBYnN0cmFjdFZhbHVlLmggKi8sCisJCQkJMEYyRkNDRjcxOEE2MDA3MDAwMUEyN0Y4IC8qIERG
R1RocmVhZERhdGEuY3BwICovLAorCQkJCTBGMkZDQ0Y4MThBNjAwNzAwMDFBMjdGOCAvKiBERkdU
aHJlYWREYXRhLmggKi8sCiAJCQkJMEZDMDk3OUYxNDZCMjhDNzAwQ0YyNDQyIC8qIERGR1RodW5r
cy5jcHAgKi8sCiAJCQkJMEZDMDk3QTAxNDZCMjhDNzAwQ0YyNDQyIC8qIERGR1RodW5rcy5oICov
LAogCQkJCTBGRDhBMzFGMTdENTFGNTcwMENBMkM0MCAvKiBERkdUaWVyVXBDaGVja0luamVjdGlv
blBoYXNlLmNwcCAqLywKQEAgLTQ2OTgsNyArNDcxOSw3IEBACiAJCQkJNjVDMDI4NUQxNzE3OTY2
ODAwMzUxRTM1IC8qIEFSTXY3RE9wY29kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkE2ODI5NUIx
ODc1RjgwNTAwQjZDM0UyIC8qIENvcHlXcml0ZUJhcnJpZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTJBNEVDOTBDMTg2MEQ2QzIwMDk0Rjc4MiAvKiBXcml0ZUJhcnJpZXJCdWZmZXIuaCBpbiBIZWFk
ZXJzICovLAotICAgICAgICAgICAgICAgQzJCNkQ3NTMxOEEzMzc5MzAwNEE5MzAxIC8qIFdyaXRl
QmFycmllcklubGluZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCUMyQjZENzUzMThBMzM3OTMwMDRB
OTMwMSAvKiBXcml0ZUJhcnJpZXJJbmxpbmVzLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRTU5MzJB
ODE4M0M1QTI2MDBBMUVDQ0MgLyogVk1FbnRyeVNjb3BlLmggaW4gSGVhZGVycyAqLywKIAkJCQlB
NTMyNDM5MzE4NTY5NzA5MDAyRUQ2OTIgLyogQ29kZUdlbmVyYXRvckluc3BlY3RvclN0cmluZ3Mu
cHkgaW4gSGVhZGVycyAqLywKIAkJCQlBNTMyNDM5MjE4NTY5NzA5MDAyRUQ2OTIgLyogQ29kZUdl
bmVyYXRvckluc3BlY3Rvci5weSBpbiBIZWFkZXJzICovLApAQCAtNTA3Nyw2ICs1MDk4LDcgQEAK
IAkJCQlBNzkwREQ3MDE4MkY0OTk3MDA1ODg4MDcgLyogSlNTZXRJdGVyYXRvci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMEYyNEU1NEUxN0VFMjc0OTAwQUJCMjE3IC8qIEpJVE9wZXJhdGlvbldyYXBw
ZXJzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjc2NkQzMTE1QUE4MTEyMDA4RjM2M0UgLyogSklU
U3R1YlJvdXRpbmUuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGMkZDQ0ZBMThBNjAwNzAwMDFBMjdG
OCAvKiBERkdHcmFwaFNhZmVwb2ludC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY3NjZEMkMxNUE4
Q0MzQTAwOEYzNjNFIC8qIEpJVFN0dWJSb3V0aW5lU2V0LmggaW4gSGVhZGVycyAqLywKIAkJCQkx
NEM1MjQyQjBGNTM1NUU5MDBCQTNEMDQgLyogSklUU3R1YnMuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUZFRjY4MzVFMTc0MzQzQ0MwMEEzMkUyNSAvKiBKSVRTdHVic0FSTS5oIGluIEhlYWRlcnMgKi8s
CkBAIC01MTE2LDYgKzUxMzgsNyBAQAogCQkJCTg2RTNDNjEzMTY3QkFCRDcwMDZENzYwQSAvKiBK
U0NvbnRleHQuaCBpbiBIZWFkZXJzICovLAogCQkJCTg2RTNDNjE3MTY3QkFCRUUwMDZENzYwQSAv
KiBKU0NvbnRleHRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxOEM0MUUwRTE2RjVD
RDAwQjM0NDYwIC8qIEpTQ29udGV4dFJlZi5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEYyRkNDRkYx
OEE2MDA3MDAwMUEyN0Y4IC8qIERGR1RocmVhZERhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCTE0
OENEMUQ4MTA4Q0Y5MDIwMDgxNjNDNiAvKiBKU0NvbnRleHRSZWZQcml2YXRlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlBNzIwMjhCODE3OTc2MDFFMDA5ODAyOEMgLyogSlNDVGVzdFJ1bm5lclV0aWxz
LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjJCNjZFQzE3QjZCNUFCMDBBN0FFM0YgLyogSlNEYXRh
Vmlldy5oIGluIEhlYWRlcnMgKi8sCkBAIC01MjM2LDYgKzUyNTksNyBAQAogCQkJCTg2QzU2OEUx
MTFBMjEzRUUwMDA3RjdGMCAvKiBNYWNyb0Fzc2VtYmxlck1JUFMuaCBpbiBIZWFkZXJzICovLAog
CQkJCTg2QUU2NEE5MTM1RTVFMUMwMDk2MzAxMiAvKiBNYWNyb0Fzc2VtYmxlclNINC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJODYwMTYxRTQwRjNBODNDMTAwRjg0NzEwIC8qIE1hY3JvQXNzZW1ibGVy
WDg2LmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjJGQ0NGQzE4QTYwMDcwMDAxQTI3RjggLyogREZH
U2FmZXBvaW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk4NjAxNjFFNTBGM0E4M0MxMDBGODQ3MTAg
LyogTWFjcm9Bc3NlbWJsZXJYODZfNjQuaCBpbiBIZWFkZXJzICovLAogCQkJCTg2MDE2MUU2MEYz
QTgzQzEwMEY4NDcxMCAvKiBNYWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQTcwMDg3M0ExN0NCRTg1MzAwQzNFNjQzIC8qIE1hcENvbnN0cnVjdG9yLmggaW4gSGVh
ZGVycyAqLywKQEAgLTU0NDcsNiArNTQ3MSw3IEBACiAJCQkJMEYyNDJEQTcxM0YzQjFFODAwN0FE
RDRDIC8qIFdlYWtSZWZlcmVuY2VIYXJ2ZXN0ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTE0RTg0
RkExMTRFRTFBQ0MwMEQ2RDVENCAvKiBXZWFrU2V0LmggaW4gSGVhZGVycyAqLywKIAkJCQkxNDE1
MDEzMzE1NEJCMTNGMDA1RDhDOTggLyogV2Vha1NldElubGluZXMuaCBpbiBIZWFkZXJzICovLAor
CQkJCTBGMkZDQ0ZEMThBNjAwNzAwMDFBMjdGOCAvKiBERkdTY2FubmFibGUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUJDMThDNDdBMEUxNkY1Q0QwMEIzNDQ2MCAvKiBXZWJLaXRBdmFpbGFiaWxpdHku
aCBpbiBIZWFkZXJzICovLAogCQkJCUE3NERFRjkyMTgyRDk5MTQwMDUyMkMyMiAvKiBNYXBJdGVy
YXRvckNvbnN0cnVjdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlBN0RDQjk3MzEyRTUxOTNGMDA5
MTE5NDAgLyogV3JpdGVCYXJyaWVyLmggaW4gSGVhZGVycyAqLywKQEAgLTYwNDEsNiArNjA2Niw3
IEBACiAJCQkJQTcwNDQ3RUQxN0EwQkQ3MDAwRjU4OThFIC8qIER1bXBDb250ZXh0LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTE0N0YzOUM3MTA3RUMzNzYwMDQyN0E0OCAvKiBFcnJvci5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkxNDdGMzlDODEwN0VDMzc2MDA0MjdBNDggLyogRXJyb3JDb25zdHJ1
Y3Rvci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkwRjJGQ0NGOTE4QTYwMDcwMDAxQTI3RjggLyog
REZHR3JhcGhTYWZlcG9pbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQ3RjM5QzkxMDdFQzM3
NjAwNDI3QTQ4IC8qIEVycm9ySW5zdGFuY2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQ3RjM5
Q0ExMDdFQzM3NjAwNDI3QTQ4IC8qIEVycm9yUHJvdG90eXBlLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUE1RkQwMDY3MTg5QUZFOUMwMDYzMzIzMSAvKiBTY3JpcHRBcmd1bWVudHMuY3BwIGluIFNv
dXJjZXMgKi8sCkBAIC02MjExLDYgKzYyMzcsNyBAQAogCQkJCUE3NDgyQjk0MTE2NzExNDcwMDNC
MDcxMiAvKiBKU1dlYWtPYmplY3RNYXBSZWZQcml2YXRlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTE0NDI1NjYxMTVFREU5OEQwMDY2QTQ5QiAvKiBKU1dpdGhTY29wZS5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlBNTAzRkExQjE4OEUwRkIwMDAxMTBGMTQgLyogSlNKYXZhU2NyaXB0Q2FsbEZyYW1l
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTBGMkZDQ0ZFMThBNjAwNzAwMDFBMjdGOCAvKiBERkdU
aHJlYWREYXRhLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg2RTNDNjE4MTY3QkFCRUUwMDZENzYw
QSAvKiBKU1dyYXBwZXJNYXAubW0gaW4gU291cmNlcyAqLywKIAkJCQkxNDI4MDg3MDEwN0VDMTM0
MDAxM0U3QjIgLyogSlNXcmFwcGVyT2JqZWN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE1N0Qy
M0U5MTg5MUIwNzcwMDMxQzdGQSAvKiBKU0dsb2JhbE9iamVjdERlYnVnZ2VyQWdlbnQuY3BwIGlu
IFNvdXJjZXMgKi8sCkBAIC02MzIyLDYgKzYzNDksNyBAQAogCQkJCUMyMjU0OTQzMTVGN0RCQUEw
MDY1RTg5OCAvKiBTbG90VmlzaXRvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5MzMwNDAyQzBF
NkE3NjQwMDA3ODZFNkEgLyogU21hbGxTdHJpbmdzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBG
OEYyQjlFMTczMDZDOEQwMDdEQkRBNSAvKiBTb3VyY2VDb2RlLmNwcCBpbiBTb3VyY2VzICovLAor
CQkJCTBGMkZDQ0ZCMThBNjAwNzAwMDFBMjdGOCAvKiBERkdTYWZlcG9pbnQuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQTVGRDAwNzkxODlCMDUxMDAwNjMzMjMxIC8qIENvbnNvbGVNZXNzYWdlLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTBGNDkzQUZBMTZEMENBRDMwMDg0NTA4QiAvKiBTb3VyY2VQ
cm92aWRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFNDlEQzE2QjEyRUYyOTNFMDAxODRBMUYg
LyogU291cmNlUHJvdmlkZXJDYWNoZS5jcHAgaW4gU291cmNlcyAqLywKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTGlua0J1ZmZlci5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9MaW5rQnVmZmVyLmNwcAkocmV2aXNpb24gMTYz
NzUyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9MaW5rQnVmZmVyLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMzAsNiArMzAsNyBAQAogCiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgi
CiAjaW5jbHVkZSAiSklUQ29kZS5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRl
ICJPcHRpb25zLmgiCiAjaW5jbHVkZSAiVk0uaCIKICNpbmNsdWRlIDx3dGYvQ29tcGlsYXRpb25U
aHJlYWQuaD4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9BcnJheVByb2Zp
bGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9BcnJh
eVByb2ZpbGUuY3BwCShyZXZpc2lvbiAxNjM3NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvQXJyYXlQcm9maWxlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcsNyBA
QAogI2luY2x1ZGUgIkFycmF5UHJvZmlsZS5oIgogCiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgiCisj
aW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgPHd0Zi9Db21tYVByaW50ZXIuaD4KICNp
bmNsdWRlIDx3dGYvU3RyaW5nRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL1N0cmluZ1ByaW50U3Ry
ZWFtLmg+CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVCYXNp
Y0Jsb2NrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
Qnl0ZWNvZGVCYXNpY0Jsb2NrLmNwcAkocmV2aXNpb24gMTYzNzUyKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlQmFzaWNCbG9jay5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJCeXRlY29kZUJhc2ljQmxvY2suaCIKIAogI2lu
Y2x1ZGUgIkNvZGVCbG9jay5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJQ
cmVjaXNlSnVtcFRhcmdldHMuaCIKIAogbmFtZXNwYWNlIEpTQyB7CkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVMaXZlbmVzc0FuYWx5c2lzSW5saW5lcy5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUxpdmVu
ZXNzQW5hbHlzaXNJbmxpbmVzLmgJKHJldmlzaW9uIDE2Mzc1MikKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUxpdmVuZXNzQW5hbHlzaXNJbmxpbmVzLmgJKHdvcmtp
bmcgY29weSkKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkJ5dGVjb2RlTGl2ZW5lc3NB
bmFseXNpcy5oIgogI2luY2x1ZGUgIkNvZGVCbG9jay5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMu
aCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9DYWxsTGlua0luZm8uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9DYWxsTGlua0luZm8uY3BwCShyZXZpc2lvbiAxNjM3NTIpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ2FsbExpbmtJbmZvLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMjgsNiArMjgsNyBAQAogCiAjaW5jbHVkZSAiREZHT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUg
IkRGR1RodW5rcy5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJSZXBhdGNo
QnVmZmVyLmgiCiAKICNpZiBFTkFCTEUoSklUKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL0NvZGVCbG9jay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAJKHJldmlzaW9uIDE2Mzc1MikKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0z
Niw2ICszNiw3IEBACiAjaW5jbHVkZSAiREZHQ2FwYWJpbGl0aWVzLmgiCiAjaW5jbHVkZSAiREZH
Q29tbW9uLmgiCiAjaW5jbHVkZSAiREZHRHJpdmVyLmgiCisjaW5jbHVkZSAiREZHSklUQ29kZS5o
IgogI2luY2x1ZGUgIkRGR05vZGUuaCIKICNpbmNsdWRlICJERkdXb3JrbGlzdC5oIgogI2luY2x1
ZGUgIkRlYnVnZ2VyLmgiCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29k
ZUJsb2NrLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0Nv
ZGVCbG9jay5oCShyZXZpc2lvbiAxNjM3NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvQ29kZUJsb2NrLmgJKHdvcmtpbmcgY29weSkKQEAgLTU2LDcgKzU2LDYgQEAKICNpbmNs
dWRlICJIYW5kbGVySW5mby5oIgogI2luY2x1ZGUgIk9iamVjdEFsbG9jYXRpb25Qcm9maWxlLmgi
CiAjaW5jbHVkZSAiT3B0aW9ucy5oIgotI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRl
ICJQdXRQcm9wZXJ0eVNsb3QuaCIKICNpbmNsdWRlICJJbnN0cnVjdGlvbi5oIgogI2luY2x1ZGUg
IkpJVENvZGUuaCIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxv
Y2tKZXR0aXNvbmluZ1dhdGNocG9pbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2tKZXR0aXNvbmluZ1dhdGNocG9pbnQuY3BwCShyZXZp
c2lvbiAxNjM3NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2Nr
SmV0dGlzb25pbmdXYXRjaHBvaW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBA
QAogCiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgiCiAjaW5jbHVkZSAiREZHQ29tbW9uLmgiCisjaW5j
bHVkZSAiT3BlcmF0aW9ucy5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIApJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL0V4ZWN1dGlvbkNvdW50ZXIuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9FeGVjdXRpb25Db3VudGVyLmNwcAkocmV2
aXNpb24gMTYzNzUyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0V4ZWN1dGlv
bkNvdW50ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRl
ICJDb2RlQmxvY2suaCIKICNpbmNsdWRlICJFeGVjdXRhYmxlQWxsb2NhdG9yLmgiCisjaW5jbHVk
ZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgPHd0Zi9TdHJpbmdFeHRyYXMuaD4KIAogbmFtZXNw
YWNlIEpTQyB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvTWV0aG9kT2ZH
ZXR0aW5nQVZhbHVlUHJvZmlsZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL01ldGhvZE9mR2V0dGluZ0FWYWx1ZVByb2ZpbGUuY3BwCShyZXZpc2lvbiAx
NjM3NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvTWV0aG9kT2ZHZXR0aW5n
QVZhbHVlUHJvZmlsZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5LDYgKzI5LDcgQEAKICNpZiBF
TkFCTEUoREZHX0pJVCkKIAogI2luY2x1ZGUgIkNvZGVCbG9jay5oIgorI2luY2x1ZGUgIk9wZXJh
dGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9QcmVjaXNlSnVtcFRhcmdldHMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9QcmVjaXNlSnVtcFRhcmdldHMuY3BwCShyZXZpc2lvbiAx
NjM3NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUHJlY2lzZUp1bXBUYXJn
ZXRzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjYsNiArMjYsOCBAQAogI2luY2x1ZGUgImNvbmZp
Zy5oIgogI2luY2x1ZGUgIlByZWNpc2VKdW1wVGFyZ2V0cy5oIgogCisjaW5jbHVkZSAiT3BlcmF0
aW9ucy5oIgorCiBuYW1lc3BhY2UgSlNDIHsKIAogdGVtcGxhdGUgPHNpemVfdCB2ZWN0b3JTaXpl
PgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1Byb2ZpbGVkQ29kZUJsb2Nr
SmV0dGlzb25pbmdXYXRjaHBvaW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvUHJvZmlsZWRDb2RlQmxvY2tKZXR0aXNvbmluZ1dhdGNocG9pbnQuY3Bw
CShyZXZpc2lvbiAxNjM3NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUHJv
ZmlsZWRDb2RlQmxvY2tKZXR0aXNvbmluZ1dhdGNocG9pbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgiCiAjaW5jbHVkZSAiREZHQ29t
bW9uLmgiCiAjaW5jbHVkZSAiREZHRXhpdFByb2ZpbGUuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25z
LmgiCiAKIG5hbWVzcGFjZSBKU0MgewogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVi
dWdnZXIvRGVidWdnZXJDYWxsRnJhbWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckNhbGxGcmFtZS5jcHAJKHJldmlzaW9uIDE2Mzc1MikK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckNhbGxGcmFtZS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTI5LDcgKzI5LDYgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNp
bmNsdWRlICJEZWJ1Z2dlckNhbGxGcmFtZS5oIgogCi0jaW5jbHVkZSAiQ2FsbEZyYW1lSW5saW5l
cy5oIgogI2luY2x1ZGUgIkNvZGVCbG9jay5oIgogI2luY2x1ZGUgIkludGVycHJldGVyLmgiCiAj
aW5jbHVkZSAiSlNBY3RpdmF0aW9uLmgiCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0Rlc2lyZWRUcmFuc2l0aW9ucy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdEZXNpcmVkVHJhbnNpdGlvbnMuY3BwCShyZXZpc2lvbiAxNjM3NTIpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Rlc2lyZWRUcmFuc2l0aW9ucy5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTMxLDYgKzMxLDcgQEAKIAogI2luY2x1ZGUgIkNvZGVCbG9jay5oIgog
I2luY2x1ZGUgIkRGR0NvbW1vbkRhdGEuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAKIG5h
bWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdEcml2ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHRHJpdmVyLmNwcAkocmV2aXNpb24gMTYzNzUyKQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdEcml2ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjEsNyArMTIxLDcg
QEAgc3RhdGljIENvbXBpbGF0aW9uUmVzdWx0IGNvbXBpbGVJbXBsKAogICAgICAgICByZXR1cm4g
Q29tcGlsYXRpb25EZWZlcnJlZDsKICAgICB9CiAgICAgCi0gICAgcGxhbi0+Y29tcGlsZUluVGhy
ZWFkKCp2bS5kZmdTdGF0ZSk7CisgICAgcGxhbi0+Y29tcGlsZUluVGhyZWFkKCp2bS5kZmdTdGF0
ZSwgMCk7CiAgICAgcmV0dXJuIHBsYW4tPmZpbmFsaXplV2l0aG91dE5vdGlmeWluZ0NhbGxiYWNr
KCk7CiB9CiAjZWxzZSAvLyBFTkFCTEUoREZHX0pJVCkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHR3JhcGguY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHR3JhcGguY3BwCShyZXZpc2lvbiAxNjM3NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0dyYXBoLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzkwLDYgKzc5MCw1OSBA
QCBKU0FycmF5QnVmZmVyVmlldyogR3JhcGg6OnRyeUdldEZvbGRhYmxlCiAgICAgcmV0dXJuIHRy
eUdldEZvbGRhYmxlVmlldyhjaGlsZChub2RlLCAwKS5ub2RlKCksIG5vZGUtPmFycmF5TW9kZSgp
KTsKIH0KIAordm9pZCBHcmFwaDo6dmlzaXRDaGlsZHJlbihTbG90VmlzaXRvciYgdmlzaXRvcikK
K3sKKyAgICBmb3IgKEJsb2NrSW5kZXggYmxvY2tJbmRleCA9IG51bUJsb2NrcygpOyBibG9ja0lu
ZGV4LS07KSB7CisgICAgICAgIEJhc2ljQmxvY2sqIGJsb2NrID0gdGhpcy0+YmxvY2soYmxvY2tJ
bmRleCk7CisgICAgICAgIGlmICghYmxvY2spCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAg
ICAgCisgICAgICAgIGZvciAodW5zaWduZWQgbm9kZUluZGV4ID0gMDsgbm9kZUluZGV4IDwgYmxv
Y2stPnNpemUoKTsgKytub2RlSW5kZXgpIHsKKyAgICAgICAgICAgIE5vZGUqIG5vZGUgPSBibG9j
ay0+YXQobm9kZUluZGV4KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgc3dpdGNoIChub2Rl
LT5vcCgpKSB7CisgICAgICAgICAgICBjYXNlIEpTQ29uc3RhbnQ6CisgICAgICAgICAgICBjYXNl
IFdlYWtKU0NvbnN0YW50OgorICAgICAgICAgICAgICAgIHZpc2l0b3IuYXBwZW5kVW5iYXJyaWVy
ZWRSZWFkT25seVZhbHVlKHZhbHVlT2ZKU0NvbnN0YW50KG5vZGUpKTsKKyAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIGNhc2UgQ2hlY2tGdW5jdGlv
bjoKKyAgICAgICAgICAgICAgICB2aXNpdG9yLmFwcGVuZFVuYmFycmllcmVkUmVhZE9ubHlQb2lu
dGVyKG5vZGUtPmZ1bmN0aW9uKCkpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg
ICAgICAgIAorICAgICAgICAgICAgY2FzZSBDaGVja0V4ZWN1dGFibGU6CisgICAgICAgICAgICAg
ICAgdmlzaXRvci5hcHBlbmRVbmJhcnJpZXJlZFJlYWRPbmx5UG9pbnRlcihub2RlLT5leGVjdXRh
YmxlKCkpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIAorICAgICAg
ICAgICAgY2FzZSBDaGVja1N0cnVjdHVyZToKKyAgICAgICAgICAgICAgICBmb3IgKHVuc2lnbmVk
IGkgPSBub2RlLT5zdHJ1Y3R1cmVTZXQoKS5zaXplKCk7IGktLTspCisgICAgICAgICAgICAgICAg
ICAgIHZpc2l0b3IuYXBwZW5kVW5iYXJyaWVyZWRSZWFkT25seVBvaW50ZXIobm9kZS0+c3RydWN0
dXJlU2V0KClbaV0pOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIAor
ICAgICAgICAgICAgY2FzZSBTdHJ1Y3R1cmVUcmFuc2l0aW9uV2F0Y2hwb2ludDoKKyAgICAgICAg
ICAgIGNhc2UgTmV3T2JqZWN0OgorICAgICAgICAgICAgY2FzZSBBcnJheWlmeVRvU3RydWN0dXJl
OgorICAgICAgICAgICAgY2FzZSBOZXdTdHJpbmdPYmplY3Q6CisgICAgICAgICAgICAgICAgdmlz
aXRvci5hcHBlbmRVbmJhcnJpZXJlZFJlYWRPbmx5UG9pbnRlcihub2RlLT5zdHJ1Y3R1cmUoKSk7
CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICBj
YXNlIFB1dFN0cnVjdHVyZToKKyAgICAgICAgICAgIGNhc2UgUGhhbnRvbVB1dFN0cnVjdHVyZToK
KyAgICAgICAgICAgIGNhc2UgQWxsb2NhdGVQcm9wZXJ0eVN0b3JhZ2U6CisgICAgICAgICAgICBj
YXNlIFJlYWxsb2NhdGVQcm9wZXJ0eVN0b3JhZ2U6CisgICAgICAgICAgICAgICAgdmlzaXRvci5h
cHBlbmRVbmJhcnJpZXJlZFJlYWRPbmx5UG9pbnRlcigKKyAgICAgICAgICAgICAgICAgICAgbm9k
ZS0+c3RydWN0dXJlVHJhbnNpdGlvbkRhdGEoKS5wcmV2aW91c1N0cnVjdHVyZSk7CisgICAgICAg
ICAgICAgICAgdmlzaXRvci5hcHBlbmRVbmJhcnJpZXJlZFJlYWRPbmx5UG9pbnRlcigKKyAgICAg
ICAgICAgICAgICAgICAgbm9kZS0+c3RydWN0dXJlVHJhbnNpdGlvbkRhdGEoKS5uZXdTdHJ1Y3R1
cmUpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIAorICAgICAgICAg
ICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgfQorICAgIH0KK30KKwogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkRGRwogCiAjZW5kaWYKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmgJKHJldmlzaW9uIDE2Mzc1MikKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguaAkod29ya2luZyBjb3B5KQpAQCAt
NDAsNiArNDAsNyBAQAogI2luY2x1ZGUgIkRGR05vZGUuaCIKICNpbmNsdWRlICJERkdOb2RlQWxs
b2NhdG9yLmgiCiAjaW5jbHVkZSAiREZHUGxhbi5oIgorI2luY2x1ZGUgIkRGR1NjYW5uYWJsZS5o
IgogI2luY2x1ZGUgIkRGR1ZhcmlhZGljRnVuY3Rpb24uaCIKICNpbmNsdWRlICJJbmxpbmVDYWxs
RnJhbWVTZXQuaCIKICNpbmNsdWRlICJKU1N0YWNrLmgiCkBAIC03OCw3ICs3OSw3IEBAIGVudW0g
QWRkU3BlY3VsYXRpb25Nb2RlIHsKIC8vCiAvLyBUaGUgb3JkZXIgbWF5IGJlIHNpZ25pZmljYW50
IGZvciBub2RlcyB3aXRoIHNpZGUtZWZmZWN0cyAocHJvcGVydHkgYWNjZXNzZXMsIHZhbHVlIGNv
bnZlcnNpb25zKS4KIC8vIE5vZGVzIHRoYXQgYXJlICdkZWFkJyByZW1haW4gaW4gdGhlIHZlY3Rv
ciB3aXRoIHJlZkNvdW50IDAuCi1jbGFzcyBHcmFwaCB7CitjbGFzcyBHcmFwaCA6IHB1YmxpYyB2
aXJ0dWFsIFNjYW5uYWJsZSB7CiBwdWJsaWM6CiAgICAgR3JhcGgoVk0mLCBQbGFuJiwgTG9uZ0xp
dmVkU3RhdGUmKTsKICAgICB+R3JhcGgoKTsKQEAgLTc5OSw2ICs4MDAsOCBAQCBwdWJsaWM6CiAg
ICAgSlNBcnJheUJ1ZmZlclZpZXcqIHRyeUdldEZvbGRhYmxlVmlldyhOb2RlKiwgQXJyYXlNb2Rl
KTsKICAgICBKU0FycmF5QnVmZmVyVmlldyogdHJ5R2V0Rm9sZGFibGVWaWV3Rm9yQ2hpbGQxKE5v
ZGUqKTsKICAgICAKKyAgICB2aXJ0dWFsIHZvaWQgdmlzaXRDaGlsZHJlbihTbG90VmlzaXRvciYp
IG92ZXJyaWRlOworICAgIAogICAgIFZNJiBtX3ZtOwogICAgIFBsYW4mIG1fcGxhbjsKICAgICBD
b2RlQmxvY2sqIG1fY29kZUJsb2NrOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdHcmFwaFNhZmVwb2ludC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdHcmFwaFNhZmVwb2ludC5jcHAJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0dyYXBoU2FmZXBvaW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMCww
ICsxLDQ3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJERkdHcmFwaFNhZmVwb2ludC5oIgorCisj
aWYgRU5BQkxFKERGR19KSVQpCisKKyNpbmNsdWRlICJERkdHcmFwaC5oIgorCituYW1lc3BhY2Ug
SlNDIHsgbmFtZXNwYWNlIERGRyB7CisKK0dyYXBoU2FmZXBvaW50OjpHcmFwaFNhZmVwb2ludChH
cmFwaCYgZ3JhcGgpCisgICAgOiBtX3NhZmVwb2ludChncmFwaC5tX3BsYW4pCit7CisgICAgbV9z
YWZlcG9pbnQuYWRkKCZncmFwaCk7CisgICAgbV9zYWZlcG9pbnQuYmVnaW4oKTsKK30KKworR3Jh
cGhTYWZlcG9pbnQ6On5HcmFwaFNhZmVwb2ludCgpIHsgfQorCit9IH0gLy8gbmFtZXNwYWNlIEpT
Qzo6REZHCisKKyNlbmRpZiAvLyBFTkFCTEUoREZHX0pJVCkKKwpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdHcmFwaFNhZmVwb2ludC5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGhTYWZlcG9pbnQuaAkocmV2aXNpb24gMCkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGhTYWZlcG9pbnQuaAkod29ya2luZyBjb3B5
KQpAQCAtMCwwICsxLDUxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
IAorICovCisKKyNpZm5kZWYgREZHR3JhcGhTYWZlcG9pbnRfaAorI2RlZmluZSBERkdHcmFwaFNh
ZmVwb2ludF9oCisKKyNpZiBFTkFCTEUoREZHX0pJVCkKKworI2luY2x1ZGUgIkRGR1NhZmVwb2lu
dC5oIgorCituYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CisKK2NsYXNzIEdyYXBoOwor
CitjbGFzcyBHcmFwaFNhZmVwb2ludCB7CitwdWJsaWM6CisgICAgR3JhcGhTYWZlcG9pbnQoR3Jh
cGgmKTsKKyAgICB+R3JhcGhTYWZlcG9pbnQoKTsKKyAgICAKK3ByaXZhdGU6CisgICAgU2FmZXBv
aW50IG1fc2FmZXBvaW50OworfTsKKworfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkRGRworCisjZW5k
aWYgLy8gRU5BQkxFKERGR19KSVQpCisKKyNlbmRpZiAvLyBERkdHcmFwaFNhZmVwb2ludF9oCisK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklUQ29kZS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb2RlLmNwcAkocmV2aXNpb24g
MTYzNzUyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb2RlLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMjksNiArMjksNyBAQAogI2lmIEVOQUJMRShERkdfSklUKQogCiAjaW5j
bHVkZSAiQ29kZUJsb2NrLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiBuYW1lc3BhY2Ug
SlNDIHsgbmFtZXNwYWNlIERGRyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHSklUQ29tcGlsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHSklUQ29tcGlsZXIuY3BwCShyZXZpc2lvbiAxNjM3NTIpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0pJVENvbXBpbGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDEsOSAr
NDEsMTAgQEAKICNpbmNsdWRlICJERkdTcGVjdWxhdGl2ZUpJVC5oIgogI2luY2x1ZGUgIkRGR1Ro
dW5rcy5oIgogI2luY2x1ZGUgIkpTQ0pTVmFsdWVJbmxpbmVzLmgiCisjaW5jbHVkZSAiTGlua0J1
ZmZlci5oIgogI2luY2x1ZGUgIk1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsLmgiCisjaW5j
bHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIlZNLmgiCi0jaW5jbHVkZSAiTGlua0J1ZmZl
ci5oIgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHSklUQ29tcGlsZXIuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVENvbXBpbGVyLmgJKHJldmlzaW9uIDE2Mzc1MikKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklUQ29tcGlsZXIuaAkod29ya2luZyBjb3B5
KQpAQCAtMjksNyArMjksNiBAQAogI2lmIEVOQUJMRShERkdfSklUKQogCiAjaW5jbHVkZSAiQ0Nh
bGxIZWxwZXJzLmgiCi0jaW5jbHVkZSAiQ2FsbEZyYW1lSW5saW5lcy5oIgogI2luY2x1ZGUgIkNv
ZGVCbG9jay5oIgogI2luY2x1ZGUgIkRGR0Rpc2Fzc2VtYmxlci5oIgogI2luY2x1ZGUgIkRGR0dy
YXBoLmgiCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXRDb21waWxl
ckNvbW1vbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdP
U1JFeGl0Q29tcGlsZXJDb21tb24uY3BwCShyZXZpc2lvbiAxNjM3NTIpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXRDb21waWxlckNvbW1vbi5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTI5LDYgKzI5LDcgQEAKICNpZiBFTkFCTEUoREZHX0pJVCkKIAogI2luY2x1ZGUgIkFy
Z3VtZW50cy5oIgorI2luY2x1ZGUgIkRGR0pJVENvZGUuaCIKICNpbmNsdWRlICJERkdPcGVyYXRp
b25zLmgiCiAjaW5jbHVkZSAiSklULmgiCiAjaW5jbHVkZSAiSlNDSlNWYWx1ZUlubGluZXMuaCIK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcAkocmV2
aXNpb24gMTYzNzUyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25z
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkNvbW1vblNs
b3dQYXRocy5oIgogI2luY2x1ZGUgIkNvcGllZFNwYWNlSW5saW5lcy5oIgogI2luY2x1ZGUgIkRG
R0RyaXZlci5oIgorI2luY2x1ZGUgIkRGR0pJVENvZGUuaCIKICNpbmNsdWRlICJERkdPU1JFeGl0
LmgiCiAjaW5jbHVkZSAiREZHVGh1bmtzLmgiCiAjaW5jbHVkZSAiREZHVG9GVExEZWZlcnJlZENv
bXBpbGF0aW9uQ2FsbGJhY2suaCIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
T3BlcmF0aW9ucy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
T3BlcmF0aW9ucy5oCShyZXZpc2lvbiAxNjM3NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR09wZXJhdGlvbnMuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDExLCAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjgsNyArMjgs
NiBAQAogCiAjaWYgRU5BQkxFKERGR19KSVQpCiAKLSNpbmNsdWRlICJERkdKSVRDb21waWxlci5o
IgogI2luY2x1ZGUgIkpJVE9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJQdXRLaW5kLmgiCiAKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUGxhbi5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQbGFuLmNwcAkocmV2aXNpb24gMTYzNzUyKQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQbGFuLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNDEsNiArNDEsNyBAQAogI2luY2x1ZGUgIkRGR0ZhaWxlZEZpbmFsaXplci5oIgogI2luY2x1
ZGUgIkRGR0ZsdXNoTGl2ZW5lc3NBbmFseXNpc1BoYXNlLmgiCiAjaW5jbHVkZSAiREZHRml4dXBQ
aGFzZS5oIgorI2luY2x1ZGUgIkRGR0dyYXBoU2FmZXBvaW50LmgiCiAjaW5jbHVkZSAiREZHSW52
YWxpZGF0aW9uUG9pbnRJbmplY3Rpb25QaGFzZS5oIgogI2luY2x1ZGUgIkRGR0pJVENvbXBpbGVy
LmgiCiAjaW5jbHVkZSAiREZHTElDTVBoYXNlLmgiCkBAIC0xMzUsOCArMTM2LDEwIEBAIGJvb2wg
UGxhbjo6cmVwb3J0Q29tcGlsZVRpbWVzKCkgY29uc3QKICAgICAgICAgfHwgKE9wdGlvbnM6OnJl
cG9ydEZUTENvbXBpbGVUaW1lcygpICYmIGlzRlRMKG1vZGUpKTsKIH0KIAotdm9pZCBQbGFuOjpj
b21waWxlSW5UaHJlYWQoTG9uZ0xpdmVkU3RhdGUmIGxvbmdMaXZlZFN0YXRlKQordm9pZCBQbGFu
Ojpjb21waWxlSW5UaHJlYWQoTG9uZ0xpdmVkU3RhdGUmIGxvbmdMaXZlZFN0YXRlLCBUaHJlYWRE
YXRhKiB0aHJlYWREYXRhKQogeworICAgIHRoaXMtPnRocmVhZERhdGEgPSB0aHJlYWREYXRhOwor
ICAgIAogICAgIGRvdWJsZSBiZWZvcmUgPSAwOwogICAgIGlmIChyZXBvcnRDb21waWxlVGltZXMo
KSkKICAgICAgICAgYmVmb3JlID0gY3VycmVudFRpbWVNUygpOwpAQCAtMzEzLDExICszMTYsMTQg
QEAgUGxhbjo6Q29tcGlsYXRpb25QYXRoIFBsYW46OmNvbXBpbGVJblRocgogICAgICAgICAKICAg
ICAgICAgZHVtcEFuZFZlcmlmeUdyYXBoKGRmZywgIkdyYXBoIGp1c3QgYmVmb3JlIEZUTCBsb3dl
cmluZzoiKTsKICAgICAgICAgCi0gICAgICAgIGluaXRpYWxpemVMTFZNKCk7Ci0gICAgICAgIAor
ICAgICAgICB7CisgICAgICAgICAgICBHcmFwaFNhZmVwb2ludCBzYWZlcG9pbnQoZGZnKTsKKyAg
ICAgICAgICAgIGluaXRpYWxpemVMTFZNKCk7CisgICAgICAgIH0KKyAgICAgICAgICAgIAogICAg
ICAgICBGVEw6OlN0YXRlIHN0YXRlKGRmZyk7CiAgICAgICAgIEZUTDo6bG93ZXJERkdUb0xMVk0o
c3RhdGUpOwotICAgICAgICAKKyAgICAgICAgICAgIAogICAgICAgICBpZiAocmVwb3J0Q29tcGls
ZVRpbWVzKCkpCiAgICAgICAgICAgICBiZWZvcmVGVEwgPSBjdXJyZW50VGltZU1TKCk7CiAgICAg
ICAgIApAQCAtMzI3LDcgKzMzMyw3IEBAIFBsYW46OkNvbXBpbGF0aW9uUGF0aCBQbGFuOjpjb21w
aWxlSW5UaHIKICAgICAgICAgfQogICAgICAgICAKICAgICAgICAgRlRMOjpjb21waWxlKHN0YXRl
KTsKLQorICAgICAgICAgICAgCiAgICAgICAgIGlmIChPcHRpb25zOjpsbHZtQWx3YXlzRmFpbHNC
ZWZvcmVMaW5rKCkpIHsKICAgICAgICAgICAgIEZUTDo6ZmFpbChzdGF0ZSk7CiAgICAgICAgICAg
ICByZXR1cm4gRlRMUGF0aDsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUGxh
bi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUGxhbi5oCShy
ZXZpc2lvbiAxNjM3NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1BsYW4uaAko
d29ya2luZyBjb3B5KQpAQCAtNTIsNiArNTIsNyBAQCBjbGFzcyBTbG90VmlzaXRvcjsKIG5hbWVz
cGFjZSBERkcgewogCiBjbGFzcyBMb25nTGl2ZWRTdGF0ZTsKK2NsYXNzIFRocmVhZERhdGE7CiAK
ICNpZiBFTkFCTEUoREZHX0pJVCkKIApAQCAtNjIsNyArNjMsNyBAQCBzdHJ1Y3QgUGxhbiA6IHB1
YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlCiAgICAgICAgIGNvbnN0IE9wZXJhbmRzPEpTVmFsdWU+
JiBtdXN0SGFuZGxlVmFsdWVzKTsKICAgICB+UGxhbigpOwogICAgIAotICAgIHZvaWQgY29tcGls
ZUluVGhyZWFkKExvbmdMaXZlZFN0YXRlJik7CisgICAgdm9pZCBjb21waWxlSW5UaHJlYWQoTG9u
Z0xpdmVkU3RhdGUmLCBUaHJlYWREYXRhKik7CiAgICAgCiAgICAgQ29tcGlsYXRpb25SZXN1bHQg
ZmluYWxpemVXaXRob3V0Tm90aWZ5aW5nQ2FsbGJhY2soKTsKICAgICB2b2lkIGZpbmFsaXplQW5k
Tm90aWZ5Q2FsbGJhY2soKTsKQEAgLTc5LDYgKzgwLDggQEAgc3RydWN0IFBsYW4gOiBwdWJsaWMg
VGhyZWFkU2FmZVJlZkNvdW50ZQogICAgIENvbXBpbGF0aW9uTW9kZSBtb2RlOwogICAgIGNvbnN0
IHVuc2lnbmVkIG9zckVudHJ5Qnl0ZWNvZGVJbmRleDsKICAgICBPcGVyYW5kczxKU1ZhbHVlPiBt
dXN0SGFuZGxlVmFsdWVzOworICAgIAorICAgIFRocmVhZERhdGEqIHRocmVhZERhdGE7CiAKICAg
ICBSZWZQdHI8UHJvZmlsZXI6OkNvbXBpbGF0aW9uPiBjb21waWxhdGlvbjsKIApJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTYWZlcG9pbnQuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZXBvaW50LmNwcAkocmV2aXNpb24gMCkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZXBvaW50LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMCwwICsxLDc0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
IAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJERkdTYWZlcG9pbnQuaCIK
KworI2lmIEVOQUJMRShERkdfSklUKQorCisjaW5jbHVkZSAiREZHUGxhbi5oIgorI2luY2x1ZGUg
IkRGR1NjYW5uYWJsZS5oIgorI2luY2x1ZGUgIkRGR1RocmVhZERhdGEuaCIKKworbmFtZXNwYWNl
IEpTQyB7IG5hbWVzcGFjZSBERkcgeworCitTYWZlcG9pbnQ6OlNhZmVwb2ludChQbGFuJiBwbGFu
KQorICAgIDogbV9wbGFuKHBsYW4pCisgICAgLCBtX2RpZENhbGxCZWdpbihmYWxzZSkKK3sKK30K
KworU2FmZXBvaW50Ojp+U2FmZXBvaW50KCkKK3sKKyAgICBSRUxFQVNFX0FTU0VSVChtX2RpZENh
bGxCZWdpbik7CisgICAgaWYgKFRocmVhZERhdGEqIGRhdGEgPSBtX3BsYW4udGhyZWFkRGF0YSkK
KyAgICAgICAgZGF0YS0+bV9yaWdodFRvUnVuLmxvY2soKTsKK30KKwordm9pZCBTYWZlcG9pbnQ6
OmFkZChTY2FubmFibGUqIHNjYW5uYWJsZSkKK3sKKyAgICBSRUxFQVNFX0FTU0VSVCghbV9kaWRD
YWxsQmVnaW4pOworICAgIG1fc2Nhbm5hYmxlcy5hcHBlbmQoc2Nhbm5hYmxlKTsKK30KKwordm9p
ZCBTYWZlcG9pbnQ6OmJlZ2luKCkKK3sKKyAgICBSRUxFQVNFX0FTU0VSVCghbV9kaWRDYWxsQmVn
aW4pOworICAgIGlmIChUaHJlYWREYXRhKiBkYXRhID0gbV9wbGFuLnRocmVhZERhdGEpCisgICAg
ICAgIGRhdGEtPm1fcmlnaHRUb1J1bi51bmxvY2soKTsKKyAgICBtX2RpZENhbGxCZWdpbiA9IHRy
dWU7Cit9CisKK3ZvaWQgU2FmZXBvaW50Ojp2aXNpdENoaWxkcmVuKFNsb3RWaXNpdG9yJiB2aXNp
dG9yKQoreworICAgIFJFTEVBU0VfQVNTRVJUKG1fZGlkQ2FsbEJlZ2luKTsKKyAgICBmb3IgKHVu
c2lnbmVkIGkgPSBtX3NjYW5uYWJsZXMuc2l6ZSgpOyBpLS07KQorICAgICAgICBtX3NjYW5uYWJs
ZXNbaV0tPnZpc2l0Q2hpbGRyZW4odmlzaXRvcik7Cit9CisKK30gfSAvLyBuYW1lc3BhY2UgSlND
OjpERkcKKworI2VuZGlmIC8vIEVOQUJMRShERkdfSklUKQorCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1NhZmVwb2ludC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHU2FmZXBvaW50LmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1NhZmVwb2ludC5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNjQg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRl
ZiBERkdTYWZlcG9pbnRfaAorI2RlZmluZSBERkdTYWZlcG9pbnRfaAorCisjaWYgRU5BQkxFKERG
R19KSVQpCisKKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisKK25hbWVzcGFjZSBKU0MgeworCitj
bGFzcyBTbG90VmlzaXRvcjsKKworbmFtZXNwYWNlIERGRyB7CisKK2NsYXNzIFNjYW5uYWJsZTsK
K3N0cnVjdCBQbGFuOworCitjbGFzcyBTYWZlcG9pbnQgeworcHVibGljOgorICAgIFNhZmVwb2lu
dChQbGFuJik7CisgICAgflNhZmVwb2ludCgpOworICAgIAorICAgIHZvaWQgYWRkKFNjYW5uYWJs
ZSopOworICAgIAorICAgIHZvaWQgYmVnaW4oKTsKKyAgICAKKyAgICB2b2lkIHZpc2l0Q2hpbGRy
ZW4oU2xvdFZpc2l0b3ImKTsKKyAgICAKK3ByaXZhdGU6CisgICAgUGxhbiYgbV9wbGFuOworICAg
IFZlY3RvcjxTY2FubmFibGUqPiBtX3NjYW5uYWJsZXM7CisgICAgYm9vbCBtX2RpZENhbGxCZWdp
bjsKK307CisKK30gfSAvLyBuYW1lc3BhY2UgSlNDOjpERkcKKworI2VuZGlmIC8vIEVOQUJMRShE
RkdfSklUKQorCisjZW5kaWYgLy8gREZHU2FmZXBvaW50X2gKKwpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdTY2FubmFibGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1NjYW5uYWJsZS5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdTY2FubmFibGUuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDUw
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisg
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5k
ZWYgREZHU2Nhbm5hYmxlX2gKKyNkZWZpbmUgREZHU2Nhbm5hYmxlX2gKKworI2lmIEVOQUJMRShE
RkdfSklUKQorCituYW1lc3BhY2UgSlNDIHsKKworY2xhc3MgU2xvdFZpc2l0b3I7CisKK25hbWVz
cGFjZSBERkcgeworCitjbGFzcyBTY2FubmFibGUgeworcHVibGljOgorICAgIFNjYW5uYWJsZSgp
IHsgfQorICAgIHZpcnR1YWwgflNjYW5uYWJsZSgpIHsgfQorICAgIAorICAgIHZpcnR1YWwgdm9p
ZCB2aXNpdENoaWxkcmVuKFNsb3RWaXNpdG9yJikgPSAwOworfTsKKworfSB9IC8vIG5hbWVzcGFj
ZSBKU0M6OkRGRworCisjZW5kaWYgLy8gRU5BQkxFKERGR19KSVQpCisKKyNlbmRpZiAvLyBERkdT
Y2FubmFibGVfaAorCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1RocmVhZERh
dGEuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVGhyZWFk
RGF0YS5jcHAJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Ro
cmVhZERhdGEuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNDcgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAor
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIkRGR1RocmVhZERhdGEuaCIKKworI2lmIEVOQUJMRShERkdfSklUKQorCituYW1l
c3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CisKK1RocmVhZERhdGE6OlRocmVhZERhdGEoV29y
a2xpc3QqIHdvcmtsaXN0KQorICAgIDogbV93b3JrbGlzdCh3b3JrbGlzdCkKKyAgICAsIG1faWRl
bnRpZmllcigwKQorICAgICwgbV9zYWZlcG9pbnQobnVsbHB0cikKK3sKK30KKworVGhyZWFkRGF0
YTo6flRocmVhZERhdGEoKQoreworfQorCit9IH0gLy8gbmFtZXNwYWNlIEpTQzo6REZHCisKKyNl
bmRpZiAvLyBFTkFCTEUoREZHX0pJVCkKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdUaHJlYWREYXRhLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdUaHJlYWREYXRhLmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1RocmVhZERhdGEuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDU5IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgREZHVGhy
ZWFkRGF0YV9oCisjZGVmaW5lIERGR1RocmVhZERhdGFfaAorCisjaWYgRU5BQkxFKERGR19KSVQp
CisKKyNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+CisjaW5jbHVkZSA8d3RmL1RocmVhZGluZ1By
aW1pdGl2ZXMuaD4KKworbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgeworCitjbGFzcyBT
YWZlcG9pbnQ7CitjbGFzcyBXb3JrbGlzdDsKKworY2xhc3MgVGhyZWFkRGF0YSB7CitwdWJsaWM6
CisgICAgVGhyZWFkRGF0YShXb3JrbGlzdCopOworICAgIH5UaHJlYWREYXRhKCk7CisgICAgCitw
cml2YXRlOgorICAgIGZyaWVuZCBjbGFzcyBTYWZlcG9pbnQ7CisgICAgZnJpZW5kIGNsYXNzIFdv
cmtsaXN0OworICAgIAorICAgIFdvcmtsaXN0KiBtX3dvcmtsaXN0OworICAgIFRocmVhZElkZW50
aWZpZXIgbV9pZGVudGlmaWVyOworICAgIE11dGV4IG1fcmlnaHRUb1J1bjsKKyAgICBTYWZlcG9p
bnQqIG1fc2FmZXBvaW50OworfTsKKworfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkRGRworCisjZW5k
aWYgLy8gRU5BQkxFKERGR19KSVQpCisKKyNlbmRpZiAvLyBERkdUaHJlYWREYXRhX2gKKwpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdUaHVua3MuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVGh1bmtzLmNwcAkocmV2aXNpb24gMTYzNzUy
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdUaHVua3MuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiREZHT1NSRXhpdENvbXBpbGVyLmgiCiAj
aW5jbHVkZSAiRlBSSW5mby5oIgogI2luY2x1ZGUgIkdQUkluZm8uaCIKKyNpbmNsdWRlICJMaW5r
QnVmZmVyLmgiCiAjaW5jbHVkZSAiTWFjcm9Bc3NlbWJsZXIuaCIKIAogbmFtZXNwYWNlIEpTQyB7
IG5hbWVzcGFjZSBERkcgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdXb3Jr
bGlzdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdXb3Jr
bGlzdC5jcHAJKHJldmlzaW9uIDE2Mzc1MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHV29ya2xpc3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVk
ZSAiQ29kZUJsb2NrLmgiCiAjaW5jbHVkZSAiRGVmZXJHQy5oIgogI2luY2x1ZGUgIkRGR0xvbmdM
aXZlZFN0YXRlLmgiCisjaW5jbHVkZSAiREZHU2FmZXBvaW50LmgiCiAjaW5jbHVkZSA8bXV0ZXg+
CiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKQEAgLTU3LDggKzU4LDcgQEAgdm9p
ZCBXb3JrbGlzdDo6ZmluaXNoQ3JlYXRpb24odW5zaWduZWQgbgogewogICAgIFJFTEVBU0VfQVNT
RVJUKG51bWJlck9mVGhyZWFkcyk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gbnVtYmVyT2ZUaHJl
YWRzOyBpLS07KSB7Ci0gICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxUaHJlYWREYXRhPiBkYXRhID0g
c3RkOjptYWtlX3VuaXF1ZTxUaHJlYWREYXRhPigpOwotICAgICAgICBkYXRhLT5tX3dvcmtsaXN0
ID0gdGhpczsKKyAgICAgICAgc3RkOjp1bmlxdWVfcHRyPFRocmVhZERhdGE+IGRhdGEgPSBzdGQ6
Om1ha2VfdW5pcXVlPFRocmVhZERhdGE+KHRoaXMpOwogICAgICAgICBkYXRhLT5tX2lkZW50aWZp
ZXIgPSBjcmVhdGVUaHJlYWQodGhyZWFkRnVuY3Rpb24sIGRhdGEuZ2V0KCksICJKU0MgQ29tcGls
YXRpb24gVGhyZWFkIik7CiAgICAgICAgIG1fdGhyZWFkcy5hcHBlbmQoc3RkOjptb3ZlKGRhdGEp
KTsKICAgICB9CkBAIC0yMTAsNiArMjEwLDEyIEBAIHZvaWQgV29ya2xpc3Q6OnZpc2l0Q2hpbGRy
ZW4oU2xvdFZpc2l0b3IKICAgICAgICAgaXRlci0+a2V5LnZpc2l0Q2hpbGRyZW4oY29kZUJsb2Nr
cyk7CiAgICAgICAgIGl0ZXItPnZhbHVlLT52aXNpdENoaWxkcmVuKHZpc2l0b3IsIGNvZGVCbG9j
a3MpOwogICAgIH0KKyAgICAKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSBtX3RocmVhZHMuc2l6ZSgp
OyBpLS07KSB7CisgICAgICAgIFRocmVhZERhdGEqIGRhdGEgPSBtX3RocmVhZHNbaV0uZ2V0KCk7
CisgICAgICAgIGlmIChTYWZlcG9pbnQqIHNhZmVwb2ludCA9IGRhdGEtPm1fc2FmZXBvaW50KQor
ICAgICAgICAgICAgc2FmZXBvaW50LT52aXNpdENoaWxkcmVuKHZpc2l0b3IpOworICAgIH0KIH0K
IAogc2l6ZV90IFdvcmtsaXN0OjpxdWV1ZUxlbmd0aCgpCkBAIC0yNjUsNyArMjcxLDcgQEAgdm9p
ZCBXb3JrbGlzdDo6cnVuVGhyZWFkKFRocmVhZERhdGEqIGRhdAogICAgICAgICAgICAgaWYgKE9w
dGlvbnM6OnZlcmJvc2VDb21waWxhdGlvblF1ZXVlKCkpCiAgICAgICAgICAgICAgICAgZGF0YUxv
ZygqdGhpcywgIjogQ29tcGlsaW5nICIsIHBsYW4tPmtleSgpLCAiIGFzeW5jaHJvbm91c2x5XG4i
KTsKICAgICAgICAgCi0gICAgICAgICAgICBwbGFuLT5jb21waWxlSW5UaHJlYWQobG9uZ0xpdmVk
U3RhdGUpOworICAgICAgICAgICAgcGxhbi0+Y29tcGlsZUluVGhyZWFkKGxvbmdMaXZlZFN0YXRl
LCBkYXRhKTsKICAgICAgICAgfQogICAgICAgICAKICAgICAgICAgewpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdXb3JrbGlzdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHV29ya2xpc3QuaAkocmV2aXNpb24gMTYzNzUyKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdXb3JrbGlzdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2
ICszMSw3IEBACiAjaWYgRU5BQkxFKERGR19KSVQpCiAKICNpbmNsdWRlICJERkdQbGFuLmgiCisj
aW5jbHVkZSAiREZHVGhyZWFkRGF0YS5oIgogI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgogI2luY2x1
ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CkBAIC03Nywx
MiArNzgsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBkdW1wKFByaW50U3RyZWFtJikgY29uc3Q7CiAg
ICAgCiBwcml2YXRlOgotICAgIHN0cnVjdCBUaHJlYWREYXRhIHsKLSAgICAgICAgV29ya2xpc3Qq
IG1fd29ya2xpc3Q7Ci0gICAgICAgIFRocmVhZElkZW50aWZpZXIgbV9pZGVudGlmaWVyOwotICAg
ICAgICBNdXRleCBtX3JpZ2h0VG9SdW47Ci0gICAgfTsKLSAgICAKICAgICBXb3JrbGlzdCgpOwog
ICAgIHZvaWQgZmluaXNoQ3JlYXRpb24odW5zaWduZWQgbnVtYmVyT2ZUaHJlYWRzKTsKICAgICAK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ29tcGlsZS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDb21waWxlLmNwcAkocmV2aXNpb24g
MTYzNzUyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDb21waWxlLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkNvZGVCbG9ja1dpdGhKSVRU
eXBlLmgiCiAjaW5jbHVkZSAiQ0NhbGxIZWxwZXJzLmgiCiAjaW5jbHVkZSAiREZHQ29tbW9uLmgi
CisjaW5jbHVkZSAiREZHR3JhcGhTYWZlcG9pbnQuaCIKICNpbmNsdWRlICJEYXRhVmlldy5oIgog
I2luY2x1ZGUgIkRpc2Fzc2VtYmxlci5oIgogI2luY2x1ZGUgIkZUTEV4aXRUaHVua0dlbmVyYXRv
ci5oIgpAQCAtNDUyLDcwICs0NTMsNzQgQEAgdm9pZCBjb21waWxlKFN0YXRlJiBzdGF0ZSkKIHsK
ICAgICBjaGFyKiBlcnJvciA9IDA7CiAgICAgCi0gICAgTExWTU1DSklUQ29tcGlsZXJPcHRpb25z
IG9wdGlvbnM7Ci0gICAgbGx2bS0+SW5pdGlhbGl6ZU1DSklUQ29tcGlsZXJPcHRpb25zKCZvcHRp
b25zLCBzaXplb2Yob3B0aW9ucykpOwotICAgIG9wdGlvbnMuT3B0TGV2ZWwgPSBPcHRpb25zOjps
bHZtQmFja2VuZE9wdGltaXphdGlvbkxldmVsKCk7Ci0gICAgb3B0aW9ucy5Ob0ZyYW1lUG9pbnRl
ckVsaW0gPSB0cnVlOwotICAgIGlmIChPcHRpb25zOjp1c2VMTFZNU21hbGxDb2RlTW9kZWwoKSkK
LSAgICAgICAgb3B0aW9ucy5Db2RlTW9kZWwgPSBMTFZNQ29kZU1vZGVsU21hbGw7Ci0gICAgb3B0
aW9ucy5FbmFibGVGYXN0SVNlbCA9IE9wdGlvbnM6OmVuYWJsZUxMVk1GYXN0SVNlbCgpOwotICAg
IG9wdGlvbnMuTUNKTU0gPSBsbHZtLT5DcmVhdGVTaW1wbGVNQ0pJVE1lbW9yeU1hbmFnZXIoCi0g
ICAgICAgICZzdGF0ZSwgbW1BbGxvY2F0ZUNvZGVTZWN0aW9uLCBtbUFsbG9jYXRlRGF0YVNlY3Rp
b24sIG1tQXBwbHlQZXJtaXNzaW9ucywgbW1EZXN0cm95KTsKLSAgICAKLSAgICBMTFZNRXhlY3V0
aW9uRW5naW5lUmVmIGVuZ2luZTsKLSAgICAKLSAgICBpZiAobGx2bS0+Q3JlYXRlTUNKSVRDb21w
aWxlckZvck1vZHVsZSgmZW5naW5lLCBzdGF0ZS5tb2R1bGUsICZvcHRpb25zLCBzaXplb2Yob3B0
aW9ucyksICZlcnJvcikpIHsKLSAgICAgICAgZGF0YUxvZygiRkFUQUw6IENvdWxkIG5vdCBjcmVh
dGUgTExWTSBleGVjdXRpb24gZW5naW5lOiAiLCBlcnJvciwgIlxuIik7Ci0gICAgICAgIENSQVNI
KCk7Ci0gICAgfQotCi0gICAgTExWTVBhc3NNYW5hZ2VyUmVmIGZ1bmN0aW9uUGFzc2VzID0gMDsK
LSAgICBMTFZNUGFzc01hbmFnZXJSZWYgbW9kdWxlUGFzc2VzOwotICAgIAotICAgIGlmIChPcHRp
b25zOjpsbHZtU2ltcGxlT3B0KCkpIHsKLSAgICAgICAgbW9kdWxlUGFzc2VzID0gbGx2bS0+Q3Jl
YXRlUGFzc01hbmFnZXIoKTsKLSAgICAgICAgbGx2bS0+QWRkVGFyZ2V0RGF0YShsbHZtLT5HZXRF
eGVjdXRpb25FbmdpbmVUYXJnZXREYXRhKGVuZ2luZSksIG1vZHVsZVBhc3Nlcyk7Ci0gICAgICAg
IGxsdm0tPkFkZFByb21vdGVNZW1vcnlUb1JlZ2lzdGVyUGFzcyhtb2R1bGVQYXNzZXMpOwotICAg
ICAgICBsbHZtLT5BZGRDb25zdGFudFByb3BhZ2F0aW9uUGFzcyhtb2R1bGVQYXNzZXMpOwotICAg
ICAgICBsbHZtLT5BZGRJbnN0cnVjdGlvbkNvbWJpbmluZ1Bhc3MobW9kdWxlUGFzc2VzKTsKLSAg
ICAgICAgbGx2bS0+QWRkQmFzaWNBbGlhc0FuYWx5c2lzUGFzcyhtb2R1bGVQYXNzZXMpOwotICAg
ICAgICBsbHZtLT5BZGRUeXBlQmFzZWRBbGlhc0FuYWx5c2lzUGFzcyhtb2R1bGVQYXNzZXMpOwot
ICAgICAgICBsbHZtLT5BZGRHVk5QYXNzKG1vZHVsZVBhc3Nlcyk7Ci0gICAgICAgIGxsdm0tPkFk
ZENGR1NpbXBsaWZpY2F0aW9uUGFzcyhtb2R1bGVQYXNzZXMpOwotICAgICAgICBsbHZtLT5SdW5Q
YXNzTWFuYWdlcihtb2R1bGVQYXNzZXMsIHN0YXRlLm1vZHVsZSk7Ci0gICAgfSBlbHNlIHsKLSAg
ICAgICAgTExWTVBhc3NNYW5hZ2VyQnVpbGRlclJlZiBwYXNzQnVpbGRlciA9IGxsdm0tPlBhc3NN
YW5hZ2VyQnVpbGRlckNyZWF0ZSgpOwotICAgICAgICBsbHZtLT5QYXNzTWFuYWdlckJ1aWxkZXJT
ZXRPcHRMZXZlbChwYXNzQnVpbGRlciwgT3B0aW9uczo6bGx2bU9wdGltaXphdGlvbkxldmVsKCkp
OwotICAgICAgICBsbHZtLT5QYXNzTWFuYWdlckJ1aWxkZXJTZXRTaXplTGV2ZWwocGFzc0J1aWxk
ZXIsIE9wdGlvbnM6Omxsdm1TaXplTGV2ZWwoKSk7Ci0gICAgICAgIAotICAgICAgICBmdW5jdGlv
blBhc3NlcyA9IGxsdm0tPkNyZWF0ZUZ1bmN0aW9uUGFzc01hbmFnZXJGb3JNb2R1bGUoc3RhdGUu
bW9kdWxlKTsKLSAgICAgICAgbW9kdWxlUGFzc2VzID0gbGx2bS0+Q3JlYXRlUGFzc01hbmFnZXIo
KTsKLSAgICAgICAgCi0gICAgICAgIGxsdm0tPkFkZFRhcmdldERhdGEobGx2bS0+R2V0RXhlY3V0
aW9uRW5naW5lVGFyZ2V0RGF0YShlbmdpbmUpLCBtb2R1bGVQYXNzZXMpOwotICAgICAgICAKLSAg
ICAgICAgbGx2bS0+UGFzc01hbmFnZXJCdWlsZGVyUG9wdWxhdGVGdW5jdGlvblBhc3NNYW5hZ2Vy
KHBhc3NCdWlsZGVyLCBmdW5jdGlvblBhc3Nlcyk7Ci0gICAgICAgIGxsdm0tPlBhc3NNYW5hZ2Vy
QnVpbGRlclBvcHVsYXRlTW9kdWxlUGFzc01hbmFnZXIocGFzc0J1aWxkZXIsIG1vZHVsZVBhc3Nl
cyk7Ci0gICAgICAgIAotICAgICAgICBsbHZtLT5QYXNzTWFuYWdlckJ1aWxkZXJEaXNwb3NlKHBh
c3NCdWlsZGVyKTsKLSAgICAgICAgCi0gICAgICAgIGxsdm0tPkluaXRpYWxpemVGdW5jdGlvblBh
c3NNYW5hZ2VyKGZ1bmN0aW9uUGFzc2VzKTsKLSAgICAgICAgZm9yIChMVmFsdWUgZnVuY3Rpb24g
PSBsbHZtLT5HZXRGaXJzdEZ1bmN0aW9uKHN0YXRlLm1vZHVsZSk7IGZ1bmN0aW9uOyBmdW5jdGlv
biA9IGxsdm0tPkdldE5leHRGdW5jdGlvbihmdW5jdGlvbikpCi0gICAgICAgICAgICBsbHZtLT5S
dW5GdW5jdGlvblBhc3NNYW5hZ2VyKGZ1bmN0aW9uUGFzc2VzLCBmdW5jdGlvbik7Ci0gICAgICAg
IGxsdm0tPkZpbmFsaXplRnVuY3Rpb25QYXNzTWFuYWdlcihmdW5jdGlvblBhc3Nlcyk7Ci0gICAg
ICAgIAotICAgICAgICBsbHZtLT5SdW5QYXNzTWFuYWdlcihtb2R1bGVQYXNzZXMsIHN0YXRlLm1v
ZHVsZSk7Ci0gICAgfQotCi0gICAgaWYgKERGRzo6c2hvdWxkU2hvd0Rpc2Fzc2VtYmx5KCkgfHwg
REZHOjp2ZXJib3NlQ29tcGlsYXRpb25FbmFibGVkKCkpCi0gICAgICAgIHN0YXRlLmR1bXBTdGF0
ZSgiYWZ0ZXIgb3B0aW1pemF0aW9uIik7Ci0gICAgCi0gICAgLy8gRklYTUU6IE5lZWQgdG8gYWRk
IHN1cHBvcnQgZm9yIHRoZSBjYXNlIHdoZXJlIEpJVCBtZW1vcnkgYWxsb2NhdGlvbiBmYWlsZWQu
Ci0gICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMzYyMAot
ICAgIHN0YXRlLmdlbmVyYXRlZEZ1bmN0aW9uID0gcmVpbnRlcnByZXRfY2FzdDxHZW5lcmF0ZWRG
dW5jdGlvbj4obGx2bS0+R2V0UG9pbnRlclRvR2xvYmFsKGVuZ2luZSwgc3RhdGUuZnVuY3Rpb24p
KTsKLSAgICBpZiAoZnVuY3Rpb25QYXNzZXMpCi0gICAgICAgIGxsdm0tPkRpc3Bvc2VQYXNzTWFu
YWdlcihmdW5jdGlvblBhc3Nlcyk7Ci0gICAgbGx2bS0+RGlzcG9zZVBhc3NNYW5hZ2VyKG1vZHVs
ZVBhc3Nlcyk7Ci0gICAgbGx2bS0+RGlzcG9zZUV4ZWN1dGlvbkVuZ2luZShlbmdpbmUpOworICAg
IHsKKyAgICAgICAgR3JhcGhTYWZlcG9pbnQgc2FmZXBvaW50KHN0YXRlLmdyYXBoKTsKKyAgICAg
ICAgCisgICAgICAgIExMVk1NQ0pJVENvbXBpbGVyT3B0aW9ucyBvcHRpb25zOworICAgICAgICBs
bHZtLT5Jbml0aWFsaXplTUNKSVRDb21waWxlck9wdGlvbnMoJm9wdGlvbnMsIHNpemVvZihvcHRp
b25zKSk7CisgICAgICAgIG9wdGlvbnMuT3B0TGV2ZWwgPSBPcHRpb25zOjpsbHZtQmFja2VuZE9w
dGltaXphdGlvbkxldmVsKCk7CisgICAgICAgIG9wdGlvbnMuTm9GcmFtZVBvaW50ZXJFbGltID0g
dHJ1ZTsKKyAgICAgICAgaWYgKE9wdGlvbnM6OnVzZUxMVk1TbWFsbENvZGVNb2RlbCgpKQorICAg
ICAgICAgICAgb3B0aW9ucy5Db2RlTW9kZWwgPSBMTFZNQ29kZU1vZGVsU21hbGw7CisgICAgICAg
IG9wdGlvbnMuRW5hYmxlRmFzdElTZWwgPSBPcHRpb25zOjplbmFibGVMTFZNRmFzdElTZWwoKTsK
KyAgICAgICAgb3B0aW9ucy5NQ0pNTSA9IGxsdm0tPkNyZWF0ZVNpbXBsZU1DSklUTWVtb3J5TWFu
YWdlcigKKyAgICAgICAgICAgICZzdGF0ZSwgbW1BbGxvY2F0ZUNvZGVTZWN0aW9uLCBtbUFsbG9j
YXRlRGF0YVNlY3Rpb24sIG1tQXBwbHlQZXJtaXNzaW9ucywgbW1EZXN0cm95KTsKKyAgICAKKyAg
ICAgICAgTExWTUV4ZWN1dGlvbkVuZ2luZVJlZiBlbmdpbmU7CisgICAgCisgICAgICAgIGlmIChs
bHZtLT5DcmVhdGVNQ0pJVENvbXBpbGVyRm9yTW9kdWxlKCZlbmdpbmUsIHN0YXRlLm1vZHVsZSwg
Jm9wdGlvbnMsIHNpemVvZihvcHRpb25zKSwgJmVycm9yKSkgeworICAgICAgICAgICAgZGF0YUxv
ZygiRkFUQUw6IENvdWxkIG5vdCBjcmVhdGUgTExWTSBleGVjdXRpb24gZW5naW5lOiAiLCBlcnJv
ciwgIlxuIik7CisgICAgICAgICAgICBDUkFTSCgpOworICAgICAgICB9CisKKyAgICAgICAgTExW
TVBhc3NNYW5hZ2VyUmVmIGZ1bmN0aW9uUGFzc2VzID0gMDsKKyAgICAgICAgTExWTVBhc3NNYW5h
Z2VyUmVmIG1vZHVsZVBhc3NlczsKKyAgICAKKyAgICAgICAgaWYgKE9wdGlvbnM6Omxsdm1TaW1w
bGVPcHQoKSkgeworICAgICAgICAgICAgbW9kdWxlUGFzc2VzID0gbGx2bS0+Q3JlYXRlUGFzc01h
bmFnZXIoKTsKKyAgICAgICAgICAgIGxsdm0tPkFkZFRhcmdldERhdGEobGx2bS0+R2V0RXhlY3V0
aW9uRW5naW5lVGFyZ2V0RGF0YShlbmdpbmUpLCBtb2R1bGVQYXNzZXMpOworICAgICAgICAgICAg
bGx2bS0+QWRkUHJvbW90ZU1lbW9yeVRvUmVnaXN0ZXJQYXNzKG1vZHVsZVBhc3Nlcyk7CisgICAg
ICAgICAgICBsbHZtLT5BZGRDb25zdGFudFByb3BhZ2F0aW9uUGFzcyhtb2R1bGVQYXNzZXMpOwor
ICAgICAgICAgICAgbGx2bS0+QWRkSW5zdHJ1Y3Rpb25Db21iaW5pbmdQYXNzKG1vZHVsZVBhc3Nl
cyk7CisgICAgICAgICAgICBsbHZtLT5BZGRCYXNpY0FsaWFzQW5hbHlzaXNQYXNzKG1vZHVsZVBh
c3Nlcyk7CisgICAgICAgICAgICBsbHZtLT5BZGRUeXBlQmFzZWRBbGlhc0FuYWx5c2lzUGFzcyht
b2R1bGVQYXNzZXMpOworICAgICAgICAgICAgbGx2bS0+QWRkR1ZOUGFzcyhtb2R1bGVQYXNzZXMp
OworICAgICAgICAgICAgbGx2bS0+QWRkQ0ZHU2ltcGxpZmljYXRpb25QYXNzKG1vZHVsZVBhc3Nl
cyk7CisgICAgICAgICAgICBsbHZtLT5SdW5QYXNzTWFuYWdlcihtb2R1bGVQYXNzZXMsIHN0YXRl
Lm1vZHVsZSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBMTFZNUGFzc01hbmFnZXJC
dWlsZGVyUmVmIHBhc3NCdWlsZGVyID0gbGx2bS0+UGFzc01hbmFnZXJCdWlsZGVyQ3JlYXRlKCk7
CisgICAgICAgICAgICBsbHZtLT5QYXNzTWFuYWdlckJ1aWxkZXJTZXRPcHRMZXZlbChwYXNzQnVp
bGRlciwgT3B0aW9uczo6bGx2bU9wdGltaXphdGlvbkxldmVsKCkpOworICAgICAgICAgICAgbGx2
bS0+UGFzc01hbmFnZXJCdWlsZGVyU2V0U2l6ZUxldmVsKHBhc3NCdWlsZGVyLCBPcHRpb25zOjps
bHZtU2l6ZUxldmVsKCkpOworICAgICAgICAKKyAgICAgICAgICAgIGZ1bmN0aW9uUGFzc2VzID0g
bGx2bS0+Q3JlYXRlRnVuY3Rpb25QYXNzTWFuYWdlckZvck1vZHVsZShzdGF0ZS5tb2R1bGUpOwor
ICAgICAgICAgICAgbW9kdWxlUGFzc2VzID0gbGx2bS0+Q3JlYXRlUGFzc01hbmFnZXIoKTsKKyAg
ICAgICAgCisgICAgICAgICAgICBsbHZtLT5BZGRUYXJnZXREYXRhKGxsdm0tPkdldEV4ZWN1dGlv
bkVuZ2luZVRhcmdldERhdGEoZW5naW5lKSwgbW9kdWxlUGFzc2VzKTsKKyAgICAgICAgCisgICAg
ICAgICAgICBsbHZtLT5QYXNzTWFuYWdlckJ1aWxkZXJQb3B1bGF0ZUZ1bmN0aW9uUGFzc01hbmFn
ZXIocGFzc0J1aWxkZXIsIGZ1bmN0aW9uUGFzc2VzKTsKKyAgICAgICAgICAgIGxsdm0tPlBhc3NN
YW5hZ2VyQnVpbGRlclBvcHVsYXRlTW9kdWxlUGFzc01hbmFnZXIocGFzc0J1aWxkZXIsIG1vZHVs
ZVBhc3Nlcyk7CisgICAgICAgIAorICAgICAgICAgICAgbGx2bS0+UGFzc01hbmFnZXJCdWlsZGVy
RGlzcG9zZShwYXNzQnVpbGRlcik7CisgICAgICAgIAorICAgICAgICAgICAgbGx2bS0+SW5pdGlh
bGl6ZUZ1bmN0aW9uUGFzc01hbmFnZXIoZnVuY3Rpb25QYXNzZXMpOworICAgICAgICAgICAgZm9y
IChMVmFsdWUgZnVuY3Rpb24gPSBsbHZtLT5HZXRGaXJzdEZ1bmN0aW9uKHN0YXRlLm1vZHVsZSk7
IGZ1bmN0aW9uOyBmdW5jdGlvbiA9IGxsdm0tPkdldE5leHRGdW5jdGlvbihmdW5jdGlvbikpCisg
ICAgICAgICAgICAgICAgbGx2bS0+UnVuRnVuY3Rpb25QYXNzTWFuYWdlcihmdW5jdGlvblBhc3Nl
cywgZnVuY3Rpb24pOworICAgICAgICAgICAgbGx2bS0+RmluYWxpemVGdW5jdGlvblBhc3NNYW5h
Z2VyKGZ1bmN0aW9uUGFzc2VzKTsKKyAgICAgICAgCisgICAgICAgICAgICBsbHZtLT5SdW5QYXNz
TWFuYWdlcihtb2R1bGVQYXNzZXMsIHN0YXRlLm1vZHVsZSk7CisgICAgICAgIH0KKworICAgICAg
ICBpZiAoREZHOjpzaG91bGRTaG93RGlzYXNzZW1ibHkoKSB8fCBERkc6OnZlcmJvc2VDb21waWxh
dGlvbkVuYWJsZWQoKSkKKyAgICAgICAgICAgIHN0YXRlLmR1bXBTdGF0ZSgiYWZ0ZXIgb3B0aW1p
emF0aW9uIik7CisgICAgCisgICAgICAgIC8vIEZJWE1FOiBOZWVkIHRvIGFkZCBzdXBwb3J0IGZv
ciB0aGUgY2FzZSB3aGVyZSBKSVQgbWVtb3J5IGFsbG9jYXRpb24gZmFpbGVkLgorICAgICAgICAv
LyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEzNjIwCisgICAgICAg
IHN0YXRlLmdlbmVyYXRlZEZ1bmN0aW9uID0gcmVpbnRlcnByZXRfY2FzdDxHZW5lcmF0ZWRGdW5j
dGlvbj4obGx2bS0+R2V0UG9pbnRlclRvR2xvYmFsKGVuZ2luZSwgc3RhdGUuZnVuY3Rpb24pKTsK
KyAgICAgICAgaWYgKGZ1bmN0aW9uUGFzc2VzKQorICAgICAgICAgICAgbGx2bS0+RGlzcG9zZVBh
c3NNYW5hZ2VyKGZ1bmN0aW9uUGFzc2VzKTsKKyAgICAgICAgbGx2bS0+RGlzcG9zZVBhc3NNYW5h
Z2VyKG1vZHVsZVBhc3Nlcyk7CisgICAgICAgIGxsdm0tPkRpc3Bvc2VFeGVjdXRpb25FbmdpbmUo
ZW5naW5lKTsKKyAgICB9CiAKICAgICBpZiAoc2hvdWxkU2hvd0Rpc2Fzc2VtYmx5KCkpIHsKICAg
ICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHN0YXRlLmppdENvZGUtPmhhbmRsZXMoKS5z
aXplKCk7ICsraSkgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMaW5rLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExpbmsuY3BwCShy
ZXZpc2lvbiAxNjM3NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExpbmsuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0zMCw3ICszMCw2IEBACiAKICNpbmNsdWRlICJBcml0eUNoZWNr
RmFpbFJldHVyblRodW5rcy5oIgogI2luY2x1ZGUgIkNDYWxsSGVscGVycy5oIgotI2luY2x1ZGUg
IkNhbGxGcmFtZUlubGluZXMuaCIKICNpbmNsdWRlICJDb2RlQmxvY2tXaXRoSklUVHlwZS5oIgog
I2luY2x1ZGUgIkRGR0NvbW1vbi5oIgogI2luY2x1ZGUgIkZUTEpJVENvZGUuaCIKQEAgLTM4LDYg
KzM3LDcgQEAKICNpbmNsdWRlICJKSVRTdHVicy5oIgogI2luY2x1ZGUgIkxMVk1BUEkuaCIKICNp
bmNsdWRlICJMaW5rQnVmZmVyLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUg
IlByb2ZpbGVyQ29tcGlsYXRpb24uaCIKICNpbmNsdWRlICJWaXJ0dWFsUmVnaXN0ZXIuaCIKIApJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPU1JFeGl0Q29tcGlsZXIuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT1NSRXhpdENvbXBpbGVy
LmNwcAkocmV2aXNpb24gMTYzNzUyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExP
U1JFeGl0Q29tcGlsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw2ICszNCw3IEBACiAjaW5j
bHVkZSAiRlRMSklUQ29kZS5oIgogI2luY2x1ZGUgIkZUTE9TUkV4aXQuaCIKICNpbmNsdWRlICJG
VExTYXZlUmVzdG9yZS5oIgorI2luY2x1ZGUgIkxpbmtCdWZmZXIuaCIKICNpbmNsdWRlICJNYXhG
cmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbC5oIgogI2luY2x1ZGUgIk9wZXJhbmRzSW5saW5lcy5o
IgogI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9m
dGwvRlRMU2xvd1BhdGhDYWxsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZnRsL0ZUTFNsb3dQYXRoQ2FsbC5jcHAJKHJldmlzaW9uIDE2Mzc1MikKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9mdGwvRlRMU2xvd1BhdGhDYWxsLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MjksOSArMjksOSBAQAogI2lmIEVOQUJMRShGVExfSklUKQogCiAjaW5jbHVkZSAiQ0NhbGxIZWxw
ZXJzLmgiCi0jaW5jbHVkZSAiQ2FsbEZyYW1lSW5saW5lcy5oIgogI2luY2x1ZGUgIkZUTFN0YXRl
LmgiCiAjaW5jbHVkZSAiR1BSSW5mby5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFt
ZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBGVEwgewogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZnRsL0ZUTFRodW5rcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Z0bC9GVExUaHVua3MuY3BwCShyZXZpc2lvbiAxNjM3NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZnRsL0ZUTFRodW5rcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEyNyw3ICsxMjcsNyBA
QCBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgc2xvd1BhdGhDYWxsVGh1bmtHCiAgICAgaml0LnByZXNl
cnZlUmV0dXJuQWRkcmVzc0FmdGVyQ2FsbChHUFJJbmZvOjpub25BcmdHUFIwKTsKICAgICBqaXQu
c3RvcmVQdHIoR1BSSW5mbzo6bm9uQXJnR1BSMCwgQXNzZW1ibHlIZWxwZXJzOjpBZGRyZXNzKE1h
Y3JvQXNzZW1ibGVyOjpzdGFja1BvaW50ZXJSZWdpc3Rlciwga2V5Lm9mZnNldCgpKSk7CiAgICAg
Ci0gICAgSklUQ29tcGlsZXI6OkNhbGwgY2FsbCA9IGppdC5jYWxsKCk7CisgICAgQXNzZW1ibHlI
ZWxwZXJzOjpDYWxsIGNhbGwgPSBqaXQuY2FsbCgpOwogCiAgICAgLy8gRklYTUU6IENTdGFjayAt
IE5lZWQgdG8gZG8gc29tZXRoaW5nIGxpa2Ugaml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAg
ICAgaml0LmxvYWRQdHIoQXNzZW1ibHlIZWxwZXJzOjpBZGRyZXNzKE1hY3JvQXNzZW1ibGVyOjpz
dGFja1BvaW50ZXJSZWdpc3Rlciwga2V5Lm9mZnNldCgpKSwgR1BSSW5mbzo6bm9uUHJlc2VydmVk
Tm9uUmV0dXJuR1BSKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1Nsb3RWaXNp
dG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvU2xvdFZpc2l0
b3IuaAkocmV2aXNpb24gMTYzNzUyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvU2xv
dFZpc2l0b3IuaAkod29ya2luZyBjb3B5KQpAQCAtNjgsNiArNjgsOSBAQCBwdWJsaWM6CiAgICAg
dm9pZCBhcHBlbmRVbmJhcnJpZXJlZFZhbHVlKEpTVmFsdWUqKTsKICAgICB0ZW1wbGF0ZTx0eXBl
bmFtZSBUPgogICAgIHZvaWQgYXBwZW5kVW5iYXJyaWVyZWRXZWFrKFdlYWs8VD4qKTsKKyAgICB0
ZW1wbGF0ZTx0eXBlbmFtZSBUPgorICAgIHZvaWQgYXBwZW5kVW5iYXJyaWVyZWRSZWFkT25seVBv
aW50ZXIoVCopOworICAgIHZvaWQgYXBwZW5kVW5iYXJyaWVyZWRSZWFkT25seVZhbHVlKEpTVmFs
dWUpOwogICAgIHZvaWQgdW5jb25kaXRpb25hbGx5QXBwZW5kKEpTQ2VsbCopOwogICAgIAogICAg
IHZvaWQgYWRkT3BhcXVlUm9vdCh2b2lkKik7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aGVhcC9TbG90VmlzaXRvcklubGluZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvaGVhcC9TbG90VmlzaXRvcklubGluZXMuaAkocmV2aXNpb24gMTYzNzUyKQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvU2xvdFZpc2l0b3JJbmxpbmVzLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTUxLDYgKzUxLDEyIEBAIGlubGluZSB2b2lkIFNsb3RWaXNpdG9yOjphcHBlbmRVbmJh
cnJpZXIKICAgICBpbnRlcm5hbEFwcGVuZChzbG90LCBjZWxsKTsKIH0KIAordGVtcGxhdGU8dHlw
ZW5hbWUgVD4KK2lubGluZSB2b2lkIFNsb3RWaXNpdG9yOjphcHBlbmRVbmJhcnJpZXJlZFJlYWRP
bmx5UG9pbnRlcihUKiBjZWxsKQoreworICAgIGludGVybmFsQXBwZW5kKDAsIGNlbGwpOworfQor
CiBBTFdBWVNfSU5MSU5FIHZvaWQgU2xvdFZpc2l0b3I6OmFwcGVuZChKU1ZhbHVlKiBzbG90KQog
ewogICAgIEFTU0VSVChzbG90KTsKQEAgLTYzLDYgKzY5LDExIEBAIEFMV0FZU19JTkxJTkUgdm9p
ZCBTbG90VmlzaXRvcjo6YXBwZW5kVW4KICAgICBpbnRlcm5hbEFwcGVuZChzbG90LCAqc2xvdCk7
CiB9CiAKK0FMV0FZU19JTkxJTkUgdm9pZCBTbG90VmlzaXRvcjo6YXBwZW5kVW5iYXJyaWVyZWRS
ZWFkT25seVZhbHVlKEpTVmFsdWUgdmFsdWUpCit7CisgICAgaW50ZXJuYWxBcHBlbmQoMCwgdmFs
dWUpOworfQorCiBBTFdBWVNfSU5MSU5FIHZvaWQgU2xvdFZpc2l0b3I6OmFwcGVuZChKU0NlbGwq
KiBzbG90KQogewogICAgIEFTU0VSVChzbG90KTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3IvU2NyaXB0Q2FsbFN0YWNrRmFjdG9yeS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9TY3JpcHRDYWxsU3RhY2tGYWN0b3J5LmNwcAko
cmV2aXNpb24gMTYzNzUyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9TY3Jp
cHRDYWxsU3RhY2tGYWN0b3J5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzUsOSArMzUsOSBAQAog
CiAjaW5jbHVkZSAiQXJnTGlzdC5oIgogI2luY2x1ZGUgIkNhbGxGcmFtZS5oIgotI2luY2x1ZGUg
IkNhbGxGcmFtZUlubGluZXMuaCIKICNpbmNsdWRlICJKU0NKU1ZhbHVlLmgiCiAjaW5jbHVkZSAi
SlNGdW5jdGlvbi5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJTY3JpcHRB
cmd1bWVudHMuaCIKICNpbmNsdWRlICJTY3JpcHRDYWxsRnJhbWUuaCIKICNpbmNsdWRlICJTY3Jp
cHRDYWxsU3RhY2suaCIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9Q
cm90b0NhbGxGcmFtZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2lu
dGVycHJldGVyL1Byb3RvQ2FsbEZyYW1lLmNwcAkocmV2aXNpb24gMTYzNzUyKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL1Byb3RvQ2FsbEZyYW1lLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIlByb3RvQ2FsbEZyYW1lLmgiCiAKICNp
bmNsdWRlICJDb2RlQmxvY2suaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAi
U3RhY2tBbGlnbm1lbnQuaCIKIAogbmFtZXNwYWNlIEpTQyB7CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVEV4Y2VwdGlvbnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklURXhjZXB0aW9ucy5jcHAJKHJldmlzaW9uIDE2Mzc1MikKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklURXhjZXB0aW9ucy5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTI3LDcgKzI3LDYgQEAKICNpbmNsdWRlICJKSVRFeGNlcHRpb25zLmgiCiAKICNpbmNsdWRl
ICJDYWxsRnJhbWUuaCIKLSNpbmNsdWRlICJDYWxsRnJhbWVJbmxpbmVzLmgiCiAjaW5jbHVkZSAi
Q29kZUJsb2NrLmgiCiAjaW5jbHVkZSAiSW50ZXJwcmV0ZXIuaCIKICNpbmNsdWRlICJKSVRTdHVi
cy5oIgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVzLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVzLmgJKHJldmlzaW9u
IDE2Mzc1MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lcy5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yOSw3ICsyOSw3IEBACiAKICNpZiBFTkFCTEUoSklUKQogCi0jaW5jbHVk
ZSAiQ2FsbEZyYW1lSW5saW5lcy5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFtZXNw
YWNlIEpTQyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9u
cy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRp
b25zLmNwcAkocmV2aXNpb24gMTYzNzUyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVRPcGVyYXRpb25zLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjksNyArMjksNiBAQAogCiAjaW5j
bHVkZSAiQXJndW1lbnRzLmgiCiAjaW5jbHVkZSAiQXJyYXlDb25zdHJ1Y3Rvci5oIgotI2luY2x1
ZGUgIkNhbGxGcmFtZUlubGluZXMuaCIKICNpbmNsdWRlICJERkdDb21waWxhdGlvbk1vZGUuaCIK
ICNpbmNsdWRlICJERkdEcml2ZXIuaCIKICNpbmNsdWRlICJERkdPU1JFbnRyeS5oIgpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZXBhdGNoLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L1JlcGF0Y2guY3BwCShyZXZpc2lvbiAxNjM3NTIpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlcGF0Y2guY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0y
OSw3ICsyOSw2IEBACiAjaWYgRU5BQkxFKEpJVCkKIAogI2luY2x1ZGUgIkNDYWxsSGVscGVycy5o
IgotI2luY2x1ZGUgIkNhbGxGcmFtZUlubGluZXMuaCIKICNpbmNsdWRlICJERkdPcGVyYXRpb25z
LmgiCiAjaW5jbHVkZSAiREZHU3BlY3VsYXRpdmVKSVQuaCIKICNpbmNsdWRlICJGVExUaHVua3Mu
aCIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlR2VuZXJhdG9y
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmls
ZUdlbmVyYXRvci5jcHAJKHJldmlzaW9uIDE2Mzc1MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9wcm9maWxlci9Qcm9maWxlR2VuZXJhdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcsNyAr
MjcsNiBAQAogI2luY2x1ZGUgIlByb2ZpbGVHZW5lcmF0b3IuaCIKIAogI2luY2x1ZGUgIkNhbGxG
cmFtZS5oIgotI2luY2x1ZGUgIkNhbGxGcmFtZUlubGluZXMuaCIKICNpbmNsdWRlICJDb2RlQmxv
Y2suaCIKICNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgogI2luY2x1ZGUgIkpTU3RyaW5nUmVm
LmgiCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHMuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ3VtZW50cy5jcHAJ
KHJldmlzaW9uIDE2Mzc1MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ3Vt
ZW50cy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI1LDcgKzI1LDYgQEAKICNpbmNsdWRlICJjb25m
aWcuaCIKICNpbmNsdWRlICJBcmd1bWVudHMuaCIKIAotI2luY2x1ZGUgIkNhbGxGcmFtZUlubGlu
ZXMuaCIKICNpbmNsdWRlICJKU0FjdGl2YXRpb24uaCIKICNpbmNsdWRlICJKU0FyZ3VtZW50c0l0
ZXJhdG9yLmgiCiAjaW5jbHVkZSAiSlNGdW5jdGlvbi5oIgpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvQXJndW1lbnRzSXRlcmF0b3JQcm90b3R5cGUuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ3VtZW50c0l0ZXJhdG9yUHJvdG90
eXBlLmNwcAkocmV2aXNpb24gMTYzNzUyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvQXJndW1lbnRzSXRlcmF0b3JQcm90b3R5cGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw2
ICsyNyw3IEBACiAjaW5jbHVkZSAiQXJndW1lbnRzSXRlcmF0b3JQcm90b3R5cGUuaCIKIAogI2lu
Y2x1ZGUgIkpTQXJndW1lbnRzSXRlcmF0b3IuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAK
IG5hbWVzcGFjZSBKU0MgewogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9D
b21tb25TbG93UGF0aHNFeGNlcHRpb25zLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9Db21tb25TbG93UGF0aHNFeGNlcHRpb25zLmNwcAkocmV2aXNpb24g
MTYzNzUyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhz
RXhjZXB0aW9ucy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRl
ICJDb2RlQmxvY2suaCIKICNpbmNsdWRlICJKSVRFeGNlcHRpb25zLmgiCiAjaW5jbHVkZSAiTExJ
bnRDb21tb24uaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAKIG5hbWVzcGFjZSBKU0MgeyBu
YW1lc3BhY2UgQ29tbW9uU2xvd1BhdGhzIHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNBcmd1bWVudHNJdGVyYXRvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcmd1bWVudHNJdGVyYXRvci5jcHAJKHJldmlzaW9uIDE2
Mzc1MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJndW1lbnRzSXRlcmF0
b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiSlNBcmd1
bWVudHNJdGVyYXRvci5oIgogCiAjaW5jbHVkZSAiQXJndW1lbnRzLmgiCisjaW5jbHVkZSAiT3Bl
cmF0aW9ucy5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAJKHJldmlzaW9uIDE2Mzc1MikKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0yOSw3ICsyOSw2IEBACiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgiCiAjaW5jbHVkZSAiQ29tbW9u
SWRlbnRpZmllcnMuaCIKICNpbmNsdWRlICJDYWxsRnJhbWUuaCIKLSNpbmNsdWRlICJDYWxsRnJh
bWVJbmxpbmVzLmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uSGVscGVycy5oIgogI2luY2x1ZGUgIkZ1
bmN0aW9uUHJvdG90eXBlLmgiCiAjaW5jbHVkZSAiR2V0dGVyU2V0dGVyLmgiCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3RG
dW5jdGlvbnMuY3BwCShyZXZpc2lvbiAxNjM3NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2
LDcgKzI2LDYgQEAKICNpbmNsdWRlICJKU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5oIgogCiAjaW5j
bHVkZSAiQ2FsbEZyYW1lLmgiCi0jaW5jbHVkZSAiQ2FsbEZyYW1lSW5saW5lcy5oIgogI2luY2x1
ZGUgIkludGVycHJldGVyLmgiCiAjaW5jbHVkZSAiSlNGdW5jdGlvbi5oIgogI2luY2x1ZGUgIkpT
R2xvYmFsT2JqZWN0LmgiCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmpl
Y3RDb25zdHJ1Y3Rvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuY3BwCShyZXZpc2lvbiAxNjM3NTIpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTIyLDcgKzIyLDYgQEAKICNpbmNsdWRlICJPYmplY3RDb25zdHJ1Y3Rvci5oIgogCiAj
aW5jbHVkZSAiQnV0dGVyZmx5SW5saW5lcy5oIgotI2luY2x1ZGUgIkNhbGxGcmFtZUlubGluZXMu
aCIKICNpbmNsdWRlICJDb3BpZWRTcGFjZUlubGluZXMuaCIKICNpbmNsdWRlICJFcnJvci5oIgog
I2luY2x1ZGUgIkV4Y2VwdGlvbkhlbHBlcnMuaCIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL09wZXJhdGlvbnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9PcGVyYXRpb25zLmgJKHJldmlzaW9uIDE2Mzc1MikKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL09wZXJhdGlvbnMuaAkod29ya2luZyBjb3B5KQpAQCAtMSw2ICsx
LDYgQEAKIC8qCiAgKiAgQ29weXJpZ2h0IChDKSAxOTk5LTIwMDAgSGFycmkgUG9ydGVuIChwb3J0
ZW5Aa2RlLm9yZykKLSAqICBDb3B5cmlnaHQgKEMpIDIwMDIsIDIwMDUsIDIwMDYsIDIwMDcsIDIw
MDgsIDIwMDksIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogIENvcHly
aWdodCAoQykgMjAwMiwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSwgMjAxMywgMjAxNCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogIFRoaXMgbGlicmFyeSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqICBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAt
MjIsNiArMjIsNyBAQAogI2lmbmRlZiBPcGVyYXRpb25zX2gKICNkZWZpbmUgT3BlcmF0aW9uc19o
CiAKKyNpbmNsdWRlICJDYWxsRnJhbWVJbmxpbmVzLmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uSGVs
cGVycy5oIgogI2luY2x1ZGUgIkdDSW5jb21pbmdSZWZDb3VudGVkSW5saW5lcy5oIgogI2luY2x1
ZGUgIkludGVycHJldGVyLmgiCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9W
TS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uY3Bw
CShyZXZpc2lvbiAxNjM3NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTMyLDcgKzMyLDYgQEAKICNpbmNsdWRlICJBcmdMaXN0Lmgi
CiAjaW5jbHVkZSAiQXJpdHlDaGVja0ZhaWxSZXR1cm5UaHVua3MuaCIKICNpbmNsdWRlICJBcnJh
eUJ1ZmZlck5ldXRlcmluZ1dhdGNocG9pbnQuaCIKLSNpbmNsdWRlICJDYWxsRnJhbWVJbmxpbmVz
LmgiCiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgiCiAjaW5jbHVkZSAiQ29kZUNhY2hlLmgiCiAjaW5j
bHVkZSAiQ29tbW9uSWRlbnRpZmllcnMuaCIK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>223643</attachid>
            <date>2014-02-09 12:53:49 -0800</date>
            <delta_ts>2014-02-09 13:00:40 -0800</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>80036</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTYzNzUyKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEwNCBA
QAorMjAxNC0wMi0wOSAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgorCisgICAgICAg
IEdDIGJsb2NrcyBvbiBGVEwgYW5kIHRoZW4gYmFkbmVzcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI4MjkxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisgICAgICAgIAorICAgICAgICBJbnRyb2R1Y2UgdGhlIG5vdGlvbiBv
ZiBhIERGRzo6U2FmZXBvaW50LCB3aGljaCBhbGxvd3MgeW91IHRvIHVubG9jayB0aGUgcmlnaHRU
b1J1bgorICAgICAgICBtdXRleCBmb3IgeW91ciBKSVQgdGhyZWFkLCB3aGlsZSBzdXBwbHlpbmcg
dGhlIEdDIHdpdGggYWxsIG9mIHRoZSBpbmZvcm1hdGlvbiBpdCB3b3VsZAorICAgICAgICBuZWVk
IHRvIHNjYW4geW91IGF0IHRoYXQgbW9tZW50IGluIHRpbWUuIFRoZSBkZWZhdWx0IHdheSBvZiB1
c2luZyB0aGlzIGlzCisgICAgICAgIERGRzo6R3JhcGhTYWZlcG9pbnQsIHdoZXJlIHlvdSBqdXN0
IHN1cHBseSB0aGUgR3JhcGguIFRoZXJlJ3MgYSBsb3Qgb2YgbWFjaGluZXJ5IGluCisgICAgICAg
IHRoaXMgcGF0Y2gganVzdCB0byBtYWtlIHRoZSBHcmFwaCBzY2FubmFibGUuCisgICAgICAgIAor
ICAgICAgICBXZSB0aGVuIHVzZSBERkc6OkdyYXBoU2FmZXBvaW50IGluIGp1c3QgdHdvIHBsYWNl
cyBmb3Igbm93OiAoMSkgd2hpbGUgaW5pdGlhbGl6aW5nIExMVk0KKyAgICAgICAgYW5kICgyKSB3
aGlsZSBpbnZva2luZyBMTFZNJyBvcHRpbWl6ZXIgYW5kIGJhY2tlbmQuCisgICAgICAgIAorICAg
ICAgICBNYWtpbmcgdGhpcyBjaGFuZ2Ugd2FzIGRpZmZpY3VsdCBiZWNhdXNlIEkgcmFuIGludG8g
dGhlIGxpbWl0cyBvZiBvdXIgbGFjayBvZiBoZWFkZXIKKyAgICAgICAgZmlsZSBkaXNjaXBsaW5l
LiBFdmVuIHRob3VnaCBPcGVyYXRpb25zLmggaXMgbWVhbnQgdG8gYmUgdGhlIHRoaW5nIHRoYXQg
aXMgb25seQorICAgICAgICBpbmNsdWRlZCBmcm9tIC5jcHAgZmlsZXMsIGl0IHdhcyBpbmNsdWRl
ZCBmcm9tIENvZGVCbG9jay5oLiBTaW1pbGFybHksCisgICAgICAgIENhbGxGcmFtZUlubGluZXMu
aCB3YXMgaW5jbHVkZWQgZnJvbSBERkdKSVRDb21waWxlci5oLiBUaGVuLCBDYWxsTGlua0luZm8u
aCBpbmNsdWRlZAorICAgICAgICBERkdHcmFwaC5oLiBJdCB3YXMgYSB0b3RhbCBtZXNzLiBJIHVu
cmF2ZWxlZCB0aGlzIG1lc3MgdG8gZ2V0IG15IGNvZGUgdG8gYnVpbGQuCisKKyAgICAgICAgKiBB
UEkvSlNDb250ZXh0UmVmLmNwcDoKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAg
KiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnZjeHByb2ov
SmF2YVNjcmlwdENvcmUudmN4cHJvajoKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGFzc2VtYmxlci9MaW5rQnVmZmVyLmNwcDoK
KyAgICAgICAgKiBieXRlY29kZS9Db2RlQmxvY2suY3BwOgorICAgICAgICAqIGJ5dGVjb2RlL0Nv
ZGVCbG9jay5oOgorICAgICAgICAqIGJ5dGVjb2RlL1Byb2ZpbGVkQ29kZUJsb2NrSmV0dGlzb25p
bmdXYXRjaHBvaW50LmNwcDoKKyAgICAgICAgKiBkZWJ1Z2dlci9EZWJ1Z2dlckNhbGxGcmFtZS5j
cHA6CisgICAgICAgICogZGZnL0RGR0Rlc2lyZWRUcmFuc2l0aW9ucy5jcHA6CisgICAgICAgICog
ZGZnL0RGR0RyaXZlci5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Y29tcGlsZUltcGwpOgorICAg
ICAgICAqIGRmZy9ERkdHcmFwaC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6R3JhcGg6OnZpc2l0
Q2hpbGRyZW4pOgorICAgICAgICAqIGRmZy9ERkdHcmFwaC5oOgorICAgICAgICAqIGRmZy9ERkdH
cmFwaFNhZmVwb2ludC5jcHA6IEFkZGVkLgorICAgICAgICAoSlNDOjpERkc6OkdyYXBoU2FmZXBv
aW50OjpHcmFwaFNhZmVwb2ludCk6CisgICAgICAgIChKU0M6OkRGRzo6R3JhcGhTYWZlcG9pbnQ6
On5HcmFwaFNhZmVwb2ludCk6CisgICAgICAgICogZGZnL0RGR0dyYXBoU2FmZXBvaW50Lmg6IEFk
ZGVkLgorICAgICAgICAqIGRmZy9ERkdKSVRDb2RlLmNwcDoKKyAgICAgICAgKiBkZmcvREZHSklU
Q29tcGlsZXIuY3BwOgorICAgICAgICAqIGRmZy9ERkdKSVRDb21waWxlci5oOgorICAgICAgICAq
IGRmZy9ERkdPU1JFeGl0Q29tcGlsZXJDb21tb24uY3BwOgorICAgICAgICAqIGRmZy9ERkdPcGVy
YXRpb25zLmNwcDoKKyAgICAgICAgKiBkZmcvREZHT3BlcmF0aW9ucy5oOgorICAgICAgICAqIGRm
Zy9ERkdQbGFuLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpQbGFuOjpjb21waWxlSW5UaHJlYWQp
OgorICAgICAgICAoSlNDOjpERkc6OlBsYW46OmNvbXBpbGVJblRocmVhZEltcGwpOgorICAgICAg
ICAqIGRmZy9ERkdQbGFuLmg6CisgICAgICAgICogZGZnL0RGR1NhZmVwb2ludC5jcHA6IEFkZGVk
LgorICAgICAgICAoSlNDOjpERkc6OlNhZmVwb2ludDo6U2FmZXBvaW50KToKKyAgICAgICAgKEpT
Qzo6REZHOjpTYWZlcG9pbnQ6On5TYWZlcG9pbnQpOgorICAgICAgICAoSlNDOjpERkc6OlNhZmVw
b2ludDo6YWRkKToKKyAgICAgICAgKEpTQzo6REZHOjpTYWZlcG9pbnQ6OmJlZ2luKToKKyAgICAg
ICAgKEpTQzo6REZHOjpTYWZlcG9pbnQ6OnZpc2l0Q2hpbGRyZW4pOgorICAgICAgICAqIGRmZy9E
RkdTYWZlcG9pbnQuaDogQWRkZWQuCisgICAgICAgICogZGZnL0RGR1NjYW5uYWJsZS5oOiBBZGRl
ZC4KKyAgICAgICAgKEpTQzo6REZHOjpTY2FubmFibGU6OlNjYW5uYWJsZSk6CisgICAgICAgIChK
U0M6OkRGRzo6U2Nhbm5hYmxlOjp+U2Nhbm5hYmxlKToKKyAgICAgICAgKiBkZmcvREZHVGhyZWFk
RGF0YS5jcHA6IEFkZGVkLgorICAgICAgICAoSlNDOjpERkc6OlRocmVhZERhdGE6OlRocmVhZERh
dGEpOgorICAgICAgICAoSlNDOjpERkc6OlRocmVhZERhdGE6On5UaHJlYWREYXRhKToKKyAgICAg
ICAgKiBkZmcvREZHVGhyZWFkRGF0YS5oOiBBZGRlZC4KKyAgICAgICAgKiBkZmcvREZHVGh1bmtz
LmNwcDoKKyAgICAgICAgKiBkZmcvREZHV29ya2xpc3QuY3BwOgorICAgICAgICAoSlNDOjpERkc6
OldvcmtsaXN0OjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgIChKU0M6OkRGRzo6V29ya2xpc3Q6
OnZpc2l0Q2hpbGRyZW4pOgorICAgICAgICAoSlNDOjpERkc6OldvcmtsaXN0OjpydW5UaHJlYWQp
OgorICAgICAgICAqIGRmZy9ERkdXb3JrbGlzdC5oOgorICAgICAgICAqIGZ0bC9GVExDb21waWxl
LmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpjb21waWxlKToKKyAgICAgICAgKiBmdGwvRlRMTGlu
ay5jcHA6CisgICAgICAgICogZnRsL0ZUTE9TUkV4aXRDb21waWxlci5jcHA6CisgICAgICAgICog
ZnRsL0ZUTFNsb3dQYXRoQ2FsbC5jcHA6CisgICAgICAgICogZnRsL0ZUTFRodW5rcy5jcHA6Cisg
ICAgICAgIChKU0M6OkZUTDo6c2xvd1BhdGhDYWxsVGh1bmtHZW5lcmF0b3IpOgorICAgICAgICAq
IGhlYXAvU2xvdFZpc2l0b3IuaDoKKyAgICAgICAgKiBoZWFwL1Nsb3RWaXNpdG9ySW5saW5lcy5o
OgorICAgICAgICAoSlNDOjpTbG90VmlzaXRvcjo6YXBwZW5kVW5iYXJyaWVyZWRSZWFkT25seVBv
aW50ZXIpOgorICAgICAgICAoSlNDOjpTbG90VmlzaXRvcjo6YXBwZW5kVW5iYXJyaWVyZWRSZWFk
T25seVZhbHVlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvU2NyaXB0Q2FsbFN0YWNrRmFjdG9yeS5j
cHA6CisgICAgICAgICogaW50ZXJwcmV0ZXIvUHJvdG9DYWxsRnJhbWUuY3BwOgorICAgICAgICAq
IGppdC9KSVRFeGNlcHRpb25zLmNwcDoKKyAgICAgICAgKiBqaXQvSklUSW5saW5lcy5oOgorICAg
ICAgICAqIGppdC9KSVRPcGVyYXRpb25zLmNwcDoKKyAgICAgICAgKiBqaXQvUmVwYXRjaC5jcHA6
CisgICAgICAgICoganNjLmNwcDoKKyAgICAgICAgKiBwcm9maWxlci9Qcm9maWxlR2VuZXJhdG9y
LmNwcDoKKyAgICAgICAgKiBydW50aW1lL0FyZ3VtZW50cy5jcHA6CisgICAgICAgICogcnVudGlt
ZS9Bcmd1bWVudHNJdGVyYXRvclByb3RvdHlwZS5jcHA6CisgICAgICAgICogcnVudGltZS9Db21t
b25TbG93UGF0aHNFeGNlcHRpb25zLmNwcDoKKyAgICAgICAgKiBydW50aW1lL0pTQXJndW1lbnRz
SXRlcmF0b3IuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvSlNGdW5jdGlvbi5jcHA6CisgICAgICAg
ICogcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5jcHA6CisgICAgICAgICogcnVudGlt
ZS9PYmplY3RDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgICogcnVudGltZS9PcGVyYXRpb25zLmg6
CisgICAgICAgICogcnVudGltZS9WTS5jcHA6CisKIDIwMTQtMDItMDkgIEFuZGVycyBDYXJsc3Nv
biAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAgICAgICBDb252ZXJ0IHNvbWUgSlNDIGNvZGUg
b3ZlciB0byBzdGQ6Om11dGV4CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0
cy50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0
CShyZXZpc2lvbiAxNjM3NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50
eHQJKHdvcmtpbmcgY29weSkKQEAgLTEzOCw2ICsxMzgsNyBAQCBzZXQoSmF2YVNjcmlwdENvcmVf
U09VUkNFUwogICAgIGRmZy9ERkdGbHVzaExpdmVuZXNzQW5hbHlzaXNQaGFzZS5jcHAKICAgICBk
ZmcvREZHRmx1c2hlZEF0LmNwcAogICAgIGRmZy9ERkdHcmFwaC5jcHAKKyAgICBkZmcvREZHR3Jh
cGhTYWZlcG9pbnQuY3BwCiAgICAgZGZnL0RGR0luUGxhY2VBYnN0cmFjdFN0YXRlLmNwcAogICAg
IGRmZy9ERkdJbnZhbGlkYXRpb25Qb2ludEluamVjdGlvblBoYXNlLmNwcAogICAgIGRmZy9ERkdK
SVRDb2RlLmNwcApAQCAtMTcyLDEyICsxNzMsMTQgQEAgc2V0KEphdmFTY3JpcHRDb3JlX1NPVVJD
RVMKICAgICBkZmcvREZHUmVzdXJyZWN0aW9uRm9yVmFsaWRhdGlvblBoYXNlLmNwcAogICAgIGRm
Zy9ERkdTU0FDb252ZXJzaW9uUGhhc2UuY3BwCiAgICAgZGZnL0RGR1NTQUxvd2VyaW5nUGhhc2Uu
Y3BwCisgICAgZGZnL0RGR1NhZmVwb2ludC5jcHAKICAgICBkZmcvREZHU3BlY3VsYXRpdmVKSVQu
Y3BwCiAgICAgZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCiAgICAgZGZnL0RGR1NwZWN1
bGF0aXZlSklUNjQuY3BwCiAgICAgZGZnL0RGR1N0YWNrTGF5b3V0UGhhc2UuY3BwCiAgICAgZGZn
L0RGR1N0b3JlQmFycmllckVsaXNpb25QaGFzZS5jcHAKICAgICBkZmcvREZHU3RyZW5ndGhSZWR1
Y3Rpb25QaGFzZS5jcHAKKyAgICBkZmcvREZHVGhyZWFkRGF0YS5jcHAKICAgICBkZmcvREZHVGh1
bmtzLmNwcAogICAgIGRmZy9ERkdUaWVyVXBDaGVja0luamVjdGlvblBoYXNlLmNwcAogICAgIGRm
Zy9ERkdUeXBlQ2hlY2tIb2lzdGluZ1BoYXNlLmNwcApJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0JKHJldmlzaW9uIDE2Mzc1MikKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCSh3b3JraW5nIGNvcHkpCkBAIC0zMDQsNiAr
MzA0LDggQEAgamF2YXNjcmlwdGNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdHZW5lcmF0aW9uSW5mby5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0dyYXBoLmNwcCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5oIFwK
KwlTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoU2FmZXBvaW50LmNwcCBcCisJU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaFNhZmVwb2ludC5oIFwKIAlTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0luUGxhY2VBYnN0cmFjdFN0YXRlLmNwcCBcCiAJU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdJblBsYWNlQWJzdHJhY3RTdGF0ZS5oIFwKIAlTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0lubGluZUNhY2hlV3JhcHBlci5oIFwKQEAgLTM3Nyw3ICszNzks
MTAgQEAgamF2YXNjcmlwdGNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdSZXN1cnJlY3Rpb25Gb3JWYWxpZGF0aW9uUGhhc2UuY3BwIFwKIAlTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1Jlc3VycmVjdGlvbkZvclZhbGlkYXRpb25QaGFzZS5oIFwKIAlT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaCBcCisJU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdTYWZlcG9pbnQuY3BwIFwKKwlTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1NhZmVwb2ludC5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nh
bmVTdHJpbmdHZXRCeVZhbFNsb3dQYXRoR2VuZXJhdG9yLmggXAorCVNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHU2Nhbm5hYmxlLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
U2NvcmVCb2FyZC5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NpbGVudFJlZ2lz
dGVyU2F2ZVBsYW4uaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTbG93UGF0aEdl
bmVyYXRvci5oIFwKQEAgLTM5OCw2ICs0MDMsOCBAQCBqYXZhc2NyaXB0Y29yZV9zb3VyY2VzICs9
IFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1N0cnVjdHVyZUFic3RyYWN0VmFsdWUu
aCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdUaWVyVXBDaGVja0luamVjdGlvblBo
YXNlLmNwcCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdUaWVyVXBDaGVja0luamVj
dGlvblBoYXNlLmggXAorCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVGhyZWFkRGF0YS5j
cHAgXAorCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVGhyZWFkRGF0YS5oIFwKIAlTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1RodW5rcy5jcHAgXAogCVNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHVGh1bmtzLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVG9G
VExEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2suY3BwIFwKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qc2MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2Mu
Y3BwCShyZXZpc2lvbiAxNjM3NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMjUsNyArMjUsNiBAQAogI2luY2x1ZGUgIkFQSVNoaW1zLmgiCiAj
aW5jbHVkZSAiQnV0dGVyZmx5SW5saW5lcy5oIgogI2luY2x1ZGUgIkJ5dGVjb2RlR2VuZXJhdG9y
LmgiCi0jaW5jbHVkZSAiQ2FsbEZyYW1lSW5saW5lcy5oIgogI2luY2x1ZGUgIkNvbXBsZXRpb24u
aCIKICNpbmNsdWRlICJDb3BpZWRTcGFjZUlubGluZXMuaCIKICNpbmNsdWRlICJFeGNlcHRpb25I
ZWxwZXJzLmgiCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ29udGV4dFJlZi5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NvbnRleHRSZWYu
Y3BwCShyZXZpc2lvbiAxNjM3NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ29u
dGV4dFJlZi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5LDcgKzI5LDYgQEAKIAogI2luY2x1ZGUg
IkFQSUNhc3QuaCIKICNpbmNsdWRlICJDYWxsRnJhbWUuaCIKLSNpbmNsdWRlICJDYWxsRnJhbWVJ
bmxpbmVzLmgiCiAjaW5jbHVkZSAiSW5pdGlhbGl6ZVRocmVhZGluZy5oIgogI2luY2x1ZGUgIkpT
Q2FsbGJhY2tPYmplY3QuaCIKICNpbmNsdWRlICJKU0NsYXNzUmVmLmgiCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hw
cm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52
Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2oJKHJldmlzaW9uIDE2Mzc1MikKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZj
eHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTM5Miw2ICszOTIsNyBAQAogICAgIDxDbENvbXBpbGUg
SW5jbHVkZT0iLi5cZGZnXERGR0ZsdXNoRm9ybWF0LmNwcCIgLz4KICAgICA8Q2xDb21waWxlIElu
Y2x1ZGU9Ii4uXGRmZ1xERkdGbHVzaExpdmVuZXNzQW5hbHlzaXNQaGFzZS5jcHAiIC8+CiAgICAg
PENsQ29tcGlsZSBJbmNsdWRlPSIuLlxkZmdcREZHR3JhcGguY3BwIiAvPgorICAgIDxDbENvbXBp
bGUgSW5jbHVkZT0iLi5cZGZnXERGR0dyYXBoU2FmZXBvaW50LmNwcCIgLz4KICAgICA8Q2xDb21w
aWxlIEluY2x1ZGU9Ii4uXGRmZ1xERkdJblBsYWNlQWJzdHJhY3RTdGF0ZS5jcHAiIC8+CiAgICAg
PENsQ29tcGlsZSBJbmNsdWRlPSIuLlxkZmdcREZHSW52YWxpZGF0aW9uUG9pbnRJbmplY3Rpb25Q
aGFzZS5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxkZmdcREZHSklUQ29kZS5j
cHAiIC8+CkBAIC00MjQsNiArNDI1LDcgQEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGRm
Z1xERkdQcmVkaWN0aW9uSW5qZWN0aW9uUGhhc2UuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5j
bHVkZT0iLi5cZGZnXERGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcCIgLz4KICAgICA8
Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGRmZ1xERkdSZXN1cnJlY3Rpb25Gb3JWYWxpZGF0aW9uUGhh
c2UuY3BwIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZGZnXERGR1NhZmVwb2ludC5j
cHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxkZmdcREZHU3BlY3VsYXRpdmVKSVQu
Y3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZGZnXERGR1NwZWN1bGF0aXZlSklU
MzJfNjQuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZGZnXERGR1NwZWN1bGF0
aXZlSklUNjQuY3BwIiAvPgpAQCAtNDMyLDYgKzQzNCw3IEBACiAgICAgPENsQ29tcGlsZSBJbmNs
dWRlPSIuLlxkZmdcREZHU3RhY2tMYXlvdXRQaGFzZS5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJ
bmNsdWRlPSIuLlxkZmdcREZHU3RvcmVCYXJyaWVyRWxpc2lvblBoYXNlLmNwcCIgLz4KICAgICA8
Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGRmZ1xERkdTdHJlbmd0aFJlZHVjdGlvblBoYXNlLmNwcCIg
Lz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGRmZ1xERkdUaHJlYWREYXRhLmNwcCIgLz4K
ICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGRmZ1xERkdUaHVua3MuY3BwIiAvPgogICAgIDxD
bENvbXBpbGUgSW5jbHVkZT0iLi5cZGZnXERGR1RpZXJVcENoZWNrSW5qZWN0aW9uUGhhc2UuY3Bw
IiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZGZnXERGR1RvRlRMRGVmZXJyZWRDb21w
aWxhdGlvbkNhbGxiYWNrLmNwcCIgLz4KQEAgLTkyOSw2ICs5MzIsNyBAQAogICAgIDxDbEluY2x1
ZGUgSW5jbHVkZT0iLi5cZGZnXERGR0dlbmVyYXRpb25JbmZvLmgiIC8+CiAgICAgPENsSW5jbHVk
ZSBJbmNsdWRlPSIuLlxkZmdcREZHR1BSSW5mby5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVk
ZT0iLi5cZGZnXERGR0dyYXBoLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxkZmdc
REZHR3JhcGhTYWZlcG9pbnQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGRmZ1xE
RkdJblBsYWNlQWJzdHJhY3RTdGF0ZS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
ZGZnXERGR0luc2VydGlvblNldC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZGZn
XERGR0ludmFsaWRhdGlvblBvaW50SW5qZWN0aW9uUGhhc2UuaCIgLz4KQEAgLTk2OSw3ICs5NzMs
OSBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZGZnXERGR1JlZ2lzdGVyU2V0LmgiIC8+
CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxkZmdcREZHUmVzdXJyZWN0aW9uRm9yVmFsaWRh
dGlvblBoYXNlLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxkZmdcREZHU2FmZVRv
RXhlY3V0ZS5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZGZnXERGR1NhZmVwb2lu
dC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZGZnXERGR1NhbmVTdHJpbmdHZXRC
eVZhbFNsb3dQYXRoR2VuZXJhdG9yLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxk
ZmdcREZHU2Nhbm5hYmxlLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxkZmdcREZH
U2NvcmVCb2FyZC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZGZnXERGR1NjcmF0
Y2hSZWdpc3RlckFsbG9jYXRvci5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZGZn
XERGR1NpbGVudFJlZ2lzdGVyU2F2ZVBsYW4uaCIgLz4KQEAgLTk4MSw2ICs5ODcsNyBAQAogICAg
IDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZGZnXERGR1N0b3JlQmFycmllckVsaXNpb25QaGFzZS5o
IiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZGZnXERGR1N0cmVuZ3RoUmVkdWN0aW9u
UGhhc2UuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGRmZ1xERkdTdHJ1Y3R1cmVB
YnN0cmFjdFZhbHVlLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxkZmdcREZHVGhy
ZWFkRGF0YS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZGZnXERGR1RodW5rcy5o
IiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZGZnXERGR1RpZXJVcENoZWNrSW5qZWN0
aW9uUGhhc2UuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGRmZ1xERkdUb0ZUTERl
ZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjay5oIiAvPgpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oJKHJldmlzaW9uIDE2Mzc1MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZh
U2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0y
MDIsNiArMjAyLDEzIEBACiAJCTBGMkU4OTJEMTZEMDJCQUYwMDlFNEZEMiAvKiBERkdNaW5pZmll
ZElELmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkI0
QjUxMDE2QjNBOTY0MDAzRjY5NkIgLyogREZHTWluaWZpZWRJRC5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGMkZDNzcyMTZFMTJGNzEwMDM4RDk3
NiAvKiBERkdEQ0VQaGFzZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwRjJGQzc3MDE2RTEyRjZGMDAzOEQ5NzYgLyogREZHRENFUGhhc2UuY3BwICov
OyB9OwogCQkwRjJGQzc3MzE2RTEyRjc0MDAzOEQ5NzYgLyogREZHRENFUGhhc2UuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMkZDNzcxMTZFMTJGNkYw
MDM4RDk3NiAvKiBERkdEQ0VQaGFzZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CisJCTBGMkZDQ0Y5MThBNjAwNzAwMDFBMjdGOCAvKiBERkdHcmFwaFNh
ZmVwb2ludC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwRjJGQ0NGMjE4QTYwMDcwMDAxQTI3RjggLyogREZHR3JhcGhTYWZlcG9pbnQuY3BwICovOyB9
OworCQkwRjJGQ0NGQTE4QTYwMDcwMDAxQTI3RjggLyogREZHR3JhcGhTYWZlcG9pbnQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMkZDQ0YzMThBNjAw
NzAwMDFBMjdGOCAvKiBERkdHcmFwaFNhZmVwb2ludC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTBGMkZDQ0ZCMThBNjAwNzAwMDFBMjdGOCAvKiBE
RkdTYWZlcG9pbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMEYyRkNDRjQxOEE2MDA3MDAwMUEyN0Y4IC8qIERGR1NhZmVwb2ludC5jcHAgKi87IH07
CisJCTBGMkZDQ0ZDMThBNjAwNzAwMDFBMjdGOCAvKiBERkdTYWZlcG9pbnQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMkZDQ0Y1MThBNjAwNzAwMDFB
MjdGOCAvKiBERkdTYWZlcG9pbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OworCQkwRjJGQ0NGRDE4QTYwMDcwMDAxQTI3RjggLyogREZHU2Nhbm5hYmxl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjJGQ0NG
NjE4QTYwMDcwMDAxQTI3RjggLyogREZHU2Nhbm5hYmxlLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMEYyRkNDRkUxOEE2MDA3MDAwMUEyN0Y4IC8q
IERGR1RocmVhZERhdGEuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMEYyRkNDRjcxOEE2MDA3MDAwMUEyN0Y4IC8qIERGR1RocmVhZERhdGEuY3BwICov
OyB9OworCQkwRjJGQ0NGRjE4QTYwMDcwMDAxQTI3RjggLyogREZHVGhyZWFkRGF0YS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYyRkNDRjgxOEE2MDA3
MDAwMUEyN0Y4IC8qIERGR1RocmVhZERhdGEuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjM0QjE0OTE2RDQyMDEwMDAxQ0RBNUEgLyogREZHVXNl
S2luZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAw
RjM0QjE0NzE2RDQyMDBFMDAxQ0RBNUEgLyogREZHVXNlS2luZC5jcHAgKi87IH07CiAJCTBGMzRC
MTRBMTZENDIwMTMwMDFDREE1QSAvKiBERkdVc2VLaW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjM0QjE0ODE2RDQyMDBFMDAxQ0RBNUEgLyogREZH
VXNlS2luZC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTBGMzRCMTRDMTZENDNFMEQwMDFDREE1QSAvKiBQb2x5bW9ycGhpY0FjY2Vzc1N0cnVjdHVy
ZUxpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBG
MzRCMTRCMTZENDNFMEMwMDFDREE1QSAvKiBQb2x5bW9ycGhpY0FjY2Vzc1N0cnVjdHVyZUxpc3Qu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTM1
MSw3ICsxMzU4LDcgQEAKIAkJQzI5ODFGREQxN0JBRkY0NDAwQTNCQzk4IC8qIERGR0Rlc2lyZWRX
cml0ZUJhcnJpZXJzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBDMjk4MUZEQjE3QkFGRjQ0MDBBM0JDOTggLyogREZHRGVzaXJlZFdyaXRlQmFycmllcnMu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDMjlF
Q0IwMzE4MDREMEVEMDBEMkNCQjQgLyogQ3VycmVudFRoaXNJbnNpZGVCbG9ja0dldHRlclRlc3Qu
bW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMjlFQ0Iw
MTE4MDREMEVEMDBEMkNCQjQgLyogQ3VycmVudFRoaXNJbnNpZGVCbG9ja0dldHRlclRlc3QubW0g
Ki87IH07CiAJCUMyQTdGNjg4MTYwNDMyRDQwMEY3NkI5OCAvKiBKU0Rlc3RydWN0aWJsZU9iamVj
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzJBN0Y2
ODcxNjA0MzJENDAwRjc2Qjk4IC8qIEpTRGVzdHJ1Y3RpYmxlT2JqZWN0LmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLSAgICAgICBDMkI2RDc1MzE4QTMz
NzkzMDA0QTkzMDEgLyogV3JpdGVCYXJyaWVySW5saW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzJCNkQ3NTIxOEEzMzc5MzAwNEE5MzAxIC8qIFdy
aXRlQmFycmllcklubGluZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OworCQlDMkI2RDc1MzE4QTMzNzkzMDA0QTkzMDEgLyogV3JpdGVCYXJyaWVySW5s
aW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzJC
NkQ3NTIxOEEzMzc5MzAwNEE5MzAxIC8qIFdyaXRlQmFycmllcklubGluZXMuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDMkI5MTZDMjE0REEwMTRF
MDBDQkFDODYgLyogTWFya2VkQWxsb2NhdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBDMkI5MTZDMTE0REEwMTRFMDBDQkFDODYgLyogTWFya2VkQWxs
b2NhdG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJQzJCOTE2QzUxNERBMDQwQzAwQ0JBQzg2IC8qIE1hcmtlZEFsbG9jYXRvci5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMkI5MTZDNDE0REEwNDBD
MDBDQkFDODYgLyogTWFya2VkQWxsb2NhdG9yLmNwcCAqLzsgfTsKIAkJQzJDMEY3Q0QxN0JCRkM1
QjAwNDY0RkU0IC8qIERGR0Rlc2lyZWRUcmFuc2l0aW9ucy5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMkMwRjdDQjE3QkJGQzVCMDA0NjRGRTQgLyog
REZHRGVzaXJlZFRyYW5zaXRpb25zLmNwcCAqLzsgfTsKQEAgLTE2NDQsNiArMTY1MSwxMyBAQAog
CQkwRjJCREM1MDE1MjI4RkZBMDBDRDg5MTAgLyogREZHVmFyaWFibGVFdmVudC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBERkdWYXJpYWJsZUV2ZW50LmNwcDsgcGF0
aCA9IGRmZy9ERkdWYXJpYWJsZUV2ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMEYyRkM3NzAxNkUxMkY2RjAwMzhEOTc2IC8qIERGR0RDRVBoYXNlLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IERGR0RDRVBoYXNlLmNwcDsgcGF0aCA9IGRmZy9E
RkdEQ0VQaGFzZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGMkZDNzcxMTZF
MTJGNkYwMDM4RDk3NiAvKiBERkdEQ0VQaGFzZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IG5hbWUgPSBERkdEQ0VQaGFzZS5oOyBwYXRoID0gZGZnL0RGR0RDRVBoYXNlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGMkZDQ0YyMThBNjAwNzAwMDFBMjdGOCAvKiBERkdHcmFw
aFNhZmVwb2ludC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBERkdH
cmFwaFNhZmVwb2ludC5jcHA7IHBhdGggPSBkZmcvREZHR3JhcGhTYWZlcG9pbnQuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRjJGQ0NGMzE4QTYwMDcwMDAxQTI3RjggLyogREZH
R3JhcGhTYWZlcG9pbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gREZHR3Jh
cGhTYWZlcG9pbnQuaDsgcGF0aCA9IGRmZy9ERkdHcmFwaFNhZmVwb2ludC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQkwRjJGQ0NGNDE4QTYwMDcwMDAxQTI3RjggLyogREZHU2FmZXBv
aW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IERGR1NhZmVwb2lu
dC5jcHA7IHBhdGggPSBkZmcvREZHU2FmZXBvaW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJMEYyRkNDRjUxOEE2MDA3MDAwMUEyN0Y4IC8qIERGR1NhZmVwb2ludC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBERkdTYWZlcG9pbnQuaDsgcGF0aCA9IGRmZy9E
RkdTYWZlcG9pbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEYyRkNDRjYxOEE2
MDA3MDAwMUEyN0Y4IC8qIERGR1NjYW5uYWJsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IG5hbWUgPSBERkdTY2FubmFibGUuaDsgcGF0aCA9IGRmZy9ERkdTY2FubmFibGUuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEYyRkNDRjcxOEE2MDA3MDAwMUEyN0Y4IC8qIERGR1Ro
cmVhZERhdGEuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gREZHVGhy
ZWFkRGF0YS5jcHA7IHBhdGggPSBkZmcvREZHVGhyZWFkRGF0YS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTBGMkZDQ0Y4MThBNjAwNzAwMDFBMjdGOCAvKiBERkdUaHJlYWREYXRh
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IERGR1RocmVhZERhdGEuaDsgcGF0
aCA9IGRmZy9ERkdUaHJlYWREYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBG
MzRCMTQ3MTZENDIwMEUwMDFDREE1QSAvKiBERkdVc2VLaW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgbmFtZSA9IERGR1VzZUtpbmQuY3BwOyBwYXRoID0gZGZnL0RGR1VzZUtp
bmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjM0QjE0ODE2RDQyMDBFMDAx
Q0RBNUEgLyogREZHVXNlS2luZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBE
RkdVc2VLaW5kLmg7IHBhdGggPSBkZmcvREZHVXNlS2luZC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkwRjM0QjE0QjE2RDQzRTBDMDAxQ0RBNUEgLyogUG9seW1vcnBoaWNBY2Nlc3NT
dHJ1Y3R1cmVMaXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBvbHltb3Jw
aGljQWNjZXNzU3RydWN0dXJlTGlzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MjgwMiw3ICsyODE2LDcgQEAKIAkJQzI5RUNCMDExODA0RDBFRDAwRDJDQkI0IC8qIEN1cnJlbnRU
aGlzSW5zaWRlQmxvY2tHZXR0ZXJUZXN0Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBuYW1lID0gQ3VycmVudFRoaXNJbnNpZGVCbG9ja0dldHRlclRlc3QubW07IHBhdGggPSBB
UEkvdGVzdHMvQ3VycmVudFRoaXNJbnNpZGVCbG9ja0dldHRlclRlc3QubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUMyOUVDQjAyMTgwNEQwRUQwMEQyQ0JCNCAvKiBDdXJyZW50VGhp
c0luc2lkZUJsb2NrR2V0dGVyVGVzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUg
PSBDdXJyZW50VGhpc0luc2lkZUJsb2NrR2V0dGVyVGVzdC5oOyBwYXRoID0gQVBJL3Rlc3RzL0N1
cnJlbnRUaGlzSW5zaWRlQmxvY2tHZXR0ZXJUZXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUMyQTdGNjg3MTYwNDMyRDQwMEY3NkI5OCAvKiBKU0Rlc3RydWN0aWJsZU9iamVjdC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0Rlc3RydWN0aWJsZU9iamVjdC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotICAgICAgIEMyQjZENzUyMThBMzM3OTMwMDRB
OTMwMSAvKiBXcml0ZUJhcnJpZXJJbmxpbmVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFdyaXRlQmFycmllcklubGluZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJQzJCNkQ3NTIxOEEzMzc5MzAwNEE5MzAxIC8qIFdyaXRlQmFycmllcklubGluZXMuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV3JpdGVCYXJyaWVySW5saW5lcy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDMkI5MTZDMTE0REEwMTRFMDBDQkFDODYgLyogTWFy
a2VkQWxsb2NhdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1hcmtlZEFs
bG9jYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDMkI5MTZDNDE0REEwNDBD
MDBDQkFDODYgLyogTWFya2VkQWxsb2NhdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IE1hcmtlZEFsbG9jYXRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUMyQzBGN0NCMTdCQkZDNUIwMDQ2NEZFNCAvKiBERkdEZXNpcmVkVHJhbnNpdGlvbnMu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gREZHRGVzaXJlZFRyYW5z
aXRpb25zLmNwcDsgcGF0aCA9IGRmZy9ERkdEZXNpcmVkVHJhbnNpdGlvbnMuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzY2Myw3ICszNjc3LDcgQEAKIAkJN0VGNkUwQkIwRUI3
QTFFQzAwNzlBRkFGIC8qIHJ1bnRpbWUgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNo
aWxkcmVuID0gKAotICAgICAgICAgICAgICAgQzJCNkQ3NTIxOEEzMzc5MzAwNEE5MzAxIC8qIFdy
aXRlQmFycmllcklubGluZXMuaCAqLywKKwkJCQlDMkI2RDc1MjE4QTMzNzkzMDA0QTkzMDEgLyog
V3JpdGVCYXJyaWVySW5saW5lcy5oICovLAogCQkJCUJDRjYwNTExMEUyMDNFRjgwMEI5QTY0RCAv
KiBBcmdMaXN0LmNwcCAqLywKIAkJCQlCQ0Y2MDUxMjBFMjAzRUY4MDBCOUE2NEQgLyogQXJnTGlz
dC5oICovLAogCQkJCUJDMjU3REU1MEUxRjUxQzUwMDE2QjZDOSAvKiBBcmd1bWVudHMuY3BwICov
LApAQCAtNDA4Nyw4ICs0MTAxLDYgQEAKIAkJODZFQzlEQjMxMzI4REY0NDAwMkIyQUQ3IC8qIGRm
ZyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCi0JCQkJMkFDQ0Yz
REMxODVGRTI2QjAwODNFMkFEIC8qIERGR1N0b3JlQmFycmllckVsaXNpb25QaGFzZS5jcHAgKi8s
Ci0JCQkJMkFDQ0YzREQxODVGRTI2QjAwODNFMkFEIC8qIERGR1N0b3JlQmFycmllckVsaXNpb25Q
aGFzZS5oICovLAogCQkJCUE3N0E0MjM2MTdBMEJCRkQwMEE4REI4MSAvKiBERkdBYnN0cmFjdEhl
YXAuY3BwICovLAogCQkJCUE3N0E0MjM3MTdBMEJCRkQwMEE4REI4MSAvKiBERkdBYnN0cmFjdEhl
YXAuaCAqLywKIAkJCQlBNzA0RDhGRTE3QTBCQUE4MDA2QkE1NTQgLyogREZHQWJzdHJhY3RJbnRl
cnByZXRlci5oICovLApAQCAtNDE5MCw2ICs0MjAyLDggQEAKIAkJCQk4NkVDOURCNjEzMjhERjgy
MDAyQjJBRDcgLyogREZHR2VuZXJhdGlvbkluZm8uaCAqLywKIAkJCQk4NkVDOURCNzEzMjhERjgy
MDAyQjJBRDcgLyogREZHR3JhcGguY3BwICovLAogCQkJCTg2RUM5REI4MTMyOERGODIwMDJCMkFE
NyAvKiBERkdHcmFwaC5oICovLAorCQkJCTBGMkZDQ0YyMThBNjAwNzAwMDFBMjdGOCAvKiBERkdH
cmFwaFNhZmVwb2ludC5jcHAgKi8sCisJCQkJMEYyRkNDRjMxOEE2MDA3MDAwMUEyN0Y4IC8qIERG
R0dyYXBoU2FmZXBvaW50LmggKi8sCiAJCQkJMEZCMTRFMjAxODEyNTcwQjAwOUI2QjREIC8qIERG
R0lubGluZUNhY2hlV3JhcHBlci5oICovLAogCQkJCTBGQjE0RTIyMTgxMzA5NTUwMDlCNkI0RCAv
KiBERkdJbmxpbmVDYWNoZVdyYXBwZXJJbmxpbmVzLmggKi8sCiAJCQkJQTcwNEQ5MDAxN0EwQkFB
ODAwNkJBNTU0IC8qIERGR0luUGxhY2VBYnN0cmFjdFN0YXRlLmNwcCAqLywKQEAgLTQyNjIsOCAr
NDI3NiwxMSBAQAogCQkJCTg2RUM5REMxMTMyOERGODIwMDJCMkFENyAvKiBERkdSZWdpc3RlckJh
bmsuaCAqLywKIAkJCQkwRjY2NkVDQTE4MzZCMzdFMDBEMDE3RjEgLyogREZHUmVzdXJyZWN0aW9u
Rm9yVmFsaWRhdGlvblBoYXNlLmNwcCAqLywKIAkJCQkwRjY2NkVDQjE4MzZCMzdFMDBEMDE3RjEg
LyogREZHUmVzdXJyZWN0aW9uRm9yVmFsaWRhdGlvblBoYXNlLmggKi8sCisJCQkJMEYyRkNDRjQx
OEE2MDA3MDAwMUEyN0Y4IC8qIERGR1NhZmVwb2ludC5jcHAgKi8sCisJCQkJMEYyRkNDRjUxOEE2
MDA3MDAwMUEyN0Y4IC8qIERGR1NhZmVwb2ludC5oICovLAogCQkJCUE3N0E0MjNDMTdBMEJCRkQw
MEE4REI4MSAvKiBERkdTYWZlVG9FeGVjdXRlLmggKi8sCiAJCQkJQTc0MTAxN0UxNzlEQUY4MDAw
MkVCOEJBIC8qIERGR1NhbmVTdHJpbmdHZXRCeVZhbFNsb3dQYXRoR2VuZXJhdG9yLmggKi8sCisJ
CQkJMEYyRkNDRjYxOEE2MDA3MDAwMUEyN0Y4IC8qIERGR1NjYW5uYWJsZS5oICovLAogCQkJCTg2
RUNBM0Y5MTMyREYyNUEwMDJCMkFENyAvKiBERkdTY29yZUJvYXJkLmggKi8sCiAJCQkJMEYxRTNB
NjUxNTNBMjFERjAwMEY5NDU2IC8qIERGR1NpbGVudFJlZ2lzdGVyU2F2ZVBsYW4uaCAqLywKIAkJ
CQkwRjFFM0E1MDE1MzdDMkNCMDAwRjk0NTYgLyogREZHU2xvd1BhdGhHZW5lcmF0b3IuaCAqLywK
QEAgLTQyNzcsOSArNDI5NCwxMyBAQAogCQkJCTBGQzIwQ0I4MTg1NTZBMzUwMEM5RTk1NCAvKiBE
RkdTU0FMb3dlcmluZ1BoYXNlLmggKi8sCiAJCQkJMEY5RkI0RjIxN0ZDQjkxNzAwQ0I2N0Y4IC8q
IERGR1N0YWNrTGF5b3V0UGhhc2UuY3BwICovLAogCQkJCTBGOUZCNEYzMTdGQ0I5MTcwMENCNjdG
OCAvKiBERkdTdGFja0xheW91dFBoYXNlLmggKi8sCisJCQkJMkFDQ0YzREMxODVGRTI2QjAwODNF
MkFEIC8qIERGR1N0b3JlQmFycmllckVsaXNpb25QaGFzZS5jcHAgKi8sCisJCQkJMkFDQ0YzREQx
ODVGRTI2QjAwODNFMkFEIC8qIERGR1N0b3JlQmFycmllckVsaXNpb25QaGFzZS5oICovLAogCQkJ
CTBGQzIwQ0IzMTg1MkUyQzYwMEM5RTk1NCAvKiBERkdTdHJlbmd0aFJlZHVjdGlvblBoYXNlLmNw
cCAqLywKIAkJCQkwRkMyMENCNDE4NTJFMkM2MDBDOUU5NTQgLyogREZHU3RyZW5ndGhSZWR1Y3Rp
b25QaGFzZS5oICovLAogCQkJCTBGNjM5NDc2MTVEQ0UzNDcwMDZBNTk3QyAvKiBERkdTdHJ1Y3R1
cmVBYnN0cmFjdFZhbHVlLmggKi8sCisJCQkJMEYyRkNDRjcxOEE2MDA3MDAwMUEyN0Y4IC8qIERG
R1RocmVhZERhdGEuY3BwICovLAorCQkJCTBGMkZDQ0Y4MThBNjAwNzAwMDFBMjdGOCAvKiBERkdU
aHJlYWREYXRhLmggKi8sCiAJCQkJMEZDMDk3OUYxNDZCMjhDNzAwQ0YyNDQyIC8qIERGR1RodW5r
cy5jcHAgKi8sCiAJCQkJMEZDMDk3QTAxNDZCMjhDNzAwQ0YyNDQyIC8qIERGR1RodW5rcy5oICov
LAogCQkJCTBGRDhBMzFGMTdENTFGNTcwMENBMkM0MCAvKiBERkdUaWVyVXBDaGVja0luamVjdGlv
blBoYXNlLmNwcCAqLywKQEAgLTQ2OTgsNyArNDcxOSw3IEBACiAJCQkJNjVDMDI4NUQxNzE3OTY2
ODAwMzUxRTM1IC8qIEFSTXY3RE9wY29kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkE2ODI5NUIx
ODc1RjgwNTAwQjZDM0UyIC8qIENvcHlXcml0ZUJhcnJpZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTJBNEVDOTBDMTg2MEQ2QzIwMDk0Rjc4MiAvKiBXcml0ZUJhcnJpZXJCdWZmZXIuaCBpbiBIZWFk
ZXJzICovLAotICAgICAgICAgICAgICAgQzJCNkQ3NTMxOEEzMzc5MzAwNEE5MzAxIC8qIFdyaXRl
QmFycmllcklubGluZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCUMyQjZENzUzMThBMzM3OTMwMDRB
OTMwMSAvKiBXcml0ZUJhcnJpZXJJbmxpbmVzLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRTU5MzJB
ODE4M0M1QTI2MDBBMUVDQ0MgLyogVk1FbnRyeVNjb3BlLmggaW4gSGVhZGVycyAqLywKIAkJCQlB
NTMyNDM5MzE4NTY5NzA5MDAyRUQ2OTIgLyogQ29kZUdlbmVyYXRvckluc3BlY3RvclN0cmluZ3Mu
cHkgaW4gSGVhZGVycyAqLywKIAkJCQlBNTMyNDM5MjE4NTY5NzA5MDAyRUQ2OTIgLyogQ29kZUdl
bmVyYXRvckluc3BlY3Rvci5weSBpbiBIZWFkZXJzICovLApAQCAtNTA3Nyw2ICs1MDk4LDcgQEAK
IAkJCQlBNzkwREQ3MDE4MkY0OTk3MDA1ODg4MDcgLyogSlNTZXRJdGVyYXRvci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMEYyNEU1NEUxN0VFMjc0OTAwQUJCMjE3IC8qIEpJVE9wZXJhdGlvbldyYXBw
ZXJzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjc2NkQzMTE1QUE4MTEyMDA4RjM2M0UgLyogSklU
U3R1YlJvdXRpbmUuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGMkZDQ0ZBMThBNjAwNzAwMDFBMjdG
OCAvKiBERkdHcmFwaFNhZmVwb2ludC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY3NjZEMkMxNUE4
Q0MzQTAwOEYzNjNFIC8qIEpJVFN0dWJSb3V0aW5lU2V0LmggaW4gSGVhZGVycyAqLywKIAkJCQkx
NEM1MjQyQjBGNTM1NUU5MDBCQTNEMDQgLyogSklUU3R1YnMuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUZFRjY4MzVFMTc0MzQzQ0MwMEEzMkUyNSAvKiBKSVRTdHVic0FSTS5oIGluIEhlYWRlcnMgKi8s
CkBAIC01MTE2LDYgKzUxMzgsNyBAQAogCQkJCTg2RTNDNjEzMTY3QkFCRDcwMDZENzYwQSAvKiBK
U0NvbnRleHQuaCBpbiBIZWFkZXJzICovLAogCQkJCTg2RTNDNjE3MTY3QkFCRUUwMDZENzYwQSAv
KiBKU0NvbnRleHRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxOEM0MUUwRTE2RjVD
RDAwQjM0NDYwIC8qIEpTQ29udGV4dFJlZi5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEYyRkNDRkYx
OEE2MDA3MDAwMUEyN0Y4IC8qIERGR1RocmVhZERhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCTE0
OENEMUQ4MTA4Q0Y5MDIwMDgxNjNDNiAvKiBKU0NvbnRleHRSZWZQcml2YXRlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlBNzIwMjhCODE3OTc2MDFFMDA5ODAyOEMgLyogSlNDVGVzdFJ1bm5lclV0aWxz
LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjJCNjZFQzE3QjZCNUFCMDBBN0FFM0YgLyogSlNEYXRh
Vmlldy5oIGluIEhlYWRlcnMgKi8sCkBAIC01MjM2LDYgKzUyNTksNyBAQAogCQkJCTg2QzU2OEUx
MTFBMjEzRUUwMDA3RjdGMCAvKiBNYWNyb0Fzc2VtYmxlck1JUFMuaCBpbiBIZWFkZXJzICovLAog
CQkJCTg2QUU2NEE5MTM1RTVFMUMwMDk2MzAxMiAvKiBNYWNyb0Fzc2VtYmxlclNINC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJODYwMTYxRTQwRjNBODNDMTAwRjg0NzEwIC8qIE1hY3JvQXNzZW1ibGVy
WDg2LmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjJGQ0NGQzE4QTYwMDcwMDAxQTI3RjggLyogREZH
U2FmZXBvaW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk4NjAxNjFFNTBGM0E4M0MxMDBGODQ3MTAg
LyogTWFjcm9Bc3NlbWJsZXJYODZfNjQuaCBpbiBIZWFkZXJzICovLAogCQkJCTg2MDE2MUU2MEYz
QTgzQzEwMEY4NDcxMCAvKiBNYWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQTcwMDg3M0ExN0NCRTg1MzAwQzNFNjQzIC8qIE1hcENvbnN0cnVjdG9yLmggaW4gSGVh
ZGVycyAqLywKQEAgLTU0NDcsNiArNTQ3MSw3IEBACiAJCQkJMEYyNDJEQTcxM0YzQjFFODAwN0FE
RDRDIC8qIFdlYWtSZWZlcmVuY2VIYXJ2ZXN0ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTE0RTg0
RkExMTRFRTFBQ0MwMEQ2RDVENCAvKiBXZWFrU2V0LmggaW4gSGVhZGVycyAqLywKIAkJCQkxNDE1
MDEzMzE1NEJCMTNGMDA1RDhDOTggLyogV2Vha1NldElubGluZXMuaCBpbiBIZWFkZXJzICovLAor
CQkJCTBGMkZDQ0ZEMThBNjAwNzAwMDFBMjdGOCAvKiBERkdTY2FubmFibGUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUJDMThDNDdBMEUxNkY1Q0QwMEIzNDQ2MCAvKiBXZWJLaXRBdmFpbGFiaWxpdHku
aCBpbiBIZWFkZXJzICovLAogCQkJCUE3NERFRjkyMTgyRDk5MTQwMDUyMkMyMiAvKiBNYXBJdGVy
YXRvckNvbnN0cnVjdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlBN0RDQjk3MzEyRTUxOTNGMDA5
MTE5NDAgLyogV3JpdGVCYXJyaWVyLmggaW4gSGVhZGVycyAqLywKQEAgLTYwNDEsNiArNjA2Niw3
IEBACiAJCQkJQTcwNDQ3RUQxN0EwQkQ3MDAwRjU4OThFIC8qIER1bXBDb250ZXh0LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTE0N0YzOUM3MTA3RUMzNzYwMDQyN0E0OCAvKiBFcnJvci5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkxNDdGMzlDODEwN0VDMzc2MDA0MjdBNDggLyogRXJyb3JDb25zdHJ1
Y3Rvci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkwRjJGQ0NGOTE4QTYwMDcwMDAxQTI3RjggLyog
REZHR3JhcGhTYWZlcG9pbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQ3RjM5QzkxMDdFQzM3
NjAwNDI3QTQ4IC8qIEVycm9ySW5zdGFuY2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQ3RjM5
Q0ExMDdFQzM3NjAwNDI3QTQ4IC8qIEVycm9yUHJvdG90eXBlLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUE1RkQwMDY3MTg5QUZFOUMwMDYzMzIzMSAvKiBTY3JpcHRBcmd1bWVudHMuY3BwIGluIFNv
dXJjZXMgKi8sCkBAIC02MjExLDYgKzYyMzcsNyBAQAogCQkJCUE3NDgyQjk0MTE2NzExNDcwMDNC
MDcxMiAvKiBKU1dlYWtPYmplY3RNYXBSZWZQcml2YXRlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTE0NDI1NjYxMTVFREU5OEQwMDY2QTQ5QiAvKiBKU1dpdGhTY29wZS5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlBNTAzRkExQjE4OEUwRkIwMDAxMTBGMTQgLyogSlNKYXZhU2NyaXB0Q2FsbEZyYW1l
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTBGMkZDQ0ZFMThBNjAwNzAwMDFBMjdGOCAvKiBERkdU
aHJlYWREYXRhLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg2RTNDNjE4MTY3QkFCRUUwMDZENzYw
QSAvKiBKU1dyYXBwZXJNYXAubW0gaW4gU291cmNlcyAqLywKIAkJCQkxNDI4MDg3MDEwN0VDMTM0
MDAxM0U3QjIgLyogSlNXcmFwcGVyT2JqZWN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE1N0Qy
M0U5MTg5MUIwNzcwMDMxQzdGQSAvKiBKU0dsb2JhbE9iamVjdERlYnVnZ2VyQWdlbnQuY3BwIGlu
IFNvdXJjZXMgKi8sCkBAIC02MzIyLDYgKzYzNDksNyBAQAogCQkJCUMyMjU0OTQzMTVGN0RCQUEw
MDY1RTg5OCAvKiBTbG90VmlzaXRvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5MzMwNDAyQzBF
NkE3NjQwMDA3ODZFNkEgLyogU21hbGxTdHJpbmdzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBG
OEYyQjlFMTczMDZDOEQwMDdEQkRBNSAvKiBTb3VyY2VDb2RlLmNwcCBpbiBTb3VyY2VzICovLAor
CQkJCTBGMkZDQ0ZCMThBNjAwNzAwMDFBMjdGOCAvKiBERkdTYWZlcG9pbnQuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQTVGRDAwNzkxODlCMDUxMDAwNjMzMjMxIC8qIENvbnNvbGVNZXNzYWdlLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTBGNDkzQUZBMTZEMENBRDMwMDg0NTA4QiAvKiBTb3VyY2VQ
cm92aWRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFNDlEQzE2QjEyRUYyOTNFMDAxODRBMUYg
LyogU291cmNlUHJvdmlkZXJDYWNoZS5jcHAgaW4gU291cmNlcyAqLywKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTGlua0J1ZmZlci5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9MaW5rQnVmZmVyLmNwcAkocmV2aXNpb24gMTYz
NzUyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9MaW5rQnVmZmVyLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMzAsNiArMzAsNyBAQAogCiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgi
CiAjaW5jbHVkZSAiSklUQ29kZS5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRl
ICJPcHRpb25zLmgiCiAjaW5jbHVkZSAiVk0uaCIKICNpbmNsdWRlIDx3dGYvQ29tcGlsYXRpb25U
aHJlYWQuaD4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9BcnJheVByb2Zp
bGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9BcnJh
eVByb2ZpbGUuY3BwCShyZXZpc2lvbiAxNjM3NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvQXJyYXlQcm9maWxlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcsNyBA
QAogI2luY2x1ZGUgIkFycmF5UHJvZmlsZS5oIgogCiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgiCisj
aW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgPHd0Zi9Db21tYVByaW50ZXIuaD4KICNp
bmNsdWRlIDx3dGYvU3RyaW5nRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL1N0cmluZ1ByaW50U3Ry
ZWFtLmg+CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVCYXNp
Y0Jsb2NrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
Qnl0ZWNvZGVCYXNpY0Jsb2NrLmNwcAkocmV2aXNpb24gMTYzNzUyKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlQmFzaWNCbG9jay5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJCeXRlY29kZUJhc2ljQmxvY2suaCIKIAogI2lu
Y2x1ZGUgIkNvZGVCbG9jay5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJQ
cmVjaXNlSnVtcFRhcmdldHMuaCIKIAogbmFtZXNwYWNlIEpTQyB7CkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVMaXZlbmVzc0FuYWx5c2lzSW5saW5lcy5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUxpdmVu
ZXNzQW5hbHlzaXNJbmxpbmVzLmgJKHJldmlzaW9uIDE2Mzc1MikKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUxpdmVuZXNzQW5hbHlzaXNJbmxpbmVzLmgJKHdvcmtp
bmcgY29weSkKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkJ5dGVjb2RlTGl2ZW5lc3NB
bmFseXNpcy5oIgogI2luY2x1ZGUgIkNvZGVCbG9jay5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMu
aCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9DYWxsTGlua0luZm8uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9DYWxsTGlua0luZm8uY3BwCShyZXZpc2lvbiAxNjM3NTIpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ2FsbExpbmtJbmZvLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMjgsNiArMjgsNyBAQAogCiAjaW5jbHVkZSAiREZHT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUg
IkRGR1RodW5rcy5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJSZXBhdGNo
QnVmZmVyLmgiCiAKICNpZiBFTkFCTEUoSklUKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL0NvZGVCbG9jay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAJKHJldmlzaW9uIDE2Mzc1MikKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0z
Niw2ICszNiw3IEBACiAjaW5jbHVkZSAiREZHQ2FwYWJpbGl0aWVzLmgiCiAjaW5jbHVkZSAiREZH
Q29tbW9uLmgiCiAjaW5jbHVkZSAiREZHRHJpdmVyLmgiCisjaW5jbHVkZSAiREZHSklUQ29kZS5o
IgogI2luY2x1ZGUgIkRGR05vZGUuaCIKICNpbmNsdWRlICJERkdXb3JrbGlzdC5oIgogI2luY2x1
ZGUgIkRlYnVnZ2VyLmgiCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29k
ZUJsb2NrLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0Nv
ZGVCbG9jay5oCShyZXZpc2lvbiAxNjM3NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvQ29kZUJsb2NrLmgJKHdvcmtpbmcgY29weSkKQEAgLTU2LDcgKzU2LDYgQEAKICNpbmNs
dWRlICJIYW5kbGVySW5mby5oIgogI2luY2x1ZGUgIk9iamVjdEFsbG9jYXRpb25Qcm9maWxlLmgi
CiAjaW5jbHVkZSAiT3B0aW9ucy5oIgotI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRl
ICJQdXRQcm9wZXJ0eVNsb3QuaCIKICNpbmNsdWRlICJJbnN0cnVjdGlvbi5oIgogI2luY2x1ZGUg
IkpJVENvZGUuaCIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxv
Y2tKZXR0aXNvbmluZ1dhdGNocG9pbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2tKZXR0aXNvbmluZ1dhdGNocG9pbnQuY3BwCShyZXZp
c2lvbiAxNjM3NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2Nr
SmV0dGlzb25pbmdXYXRjaHBvaW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBA
QAogCiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgiCiAjaW5jbHVkZSAiREZHQ29tbW9uLmgiCisjaW5j
bHVkZSAiT3BlcmF0aW9ucy5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIApJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL0V4ZWN1dGlvbkNvdW50ZXIuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9FeGVjdXRpb25Db3VudGVyLmNwcAkocmV2
aXNpb24gMTYzNzUyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0V4ZWN1dGlv
bkNvdW50ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRl
ICJDb2RlQmxvY2suaCIKICNpbmNsdWRlICJFeGVjdXRhYmxlQWxsb2NhdG9yLmgiCisjaW5jbHVk
ZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgPHd0Zi9TdHJpbmdFeHRyYXMuaD4KIAogbmFtZXNw
YWNlIEpTQyB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvTWV0aG9kT2ZH
ZXR0aW5nQVZhbHVlUHJvZmlsZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL01ldGhvZE9mR2V0dGluZ0FWYWx1ZVByb2ZpbGUuY3BwCShyZXZpc2lvbiAx
NjM3NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvTWV0aG9kT2ZHZXR0aW5n
QVZhbHVlUHJvZmlsZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5LDYgKzI5LDcgQEAKICNpZiBF
TkFCTEUoREZHX0pJVCkKIAogI2luY2x1ZGUgIkNvZGVCbG9jay5oIgorI2luY2x1ZGUgIk9wZXJh
dGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9QcmVjaXNlSnVtcFRhcmdldHMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9QcmVjaXNlSnVtcFRhcmdldHMuY3BwCShyZXZpc2lvbiAx
NjM3NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUHJlY2lzZUp1bXBUYXJn
ZXRzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjYsNiArMjYsOCBAQAogI2luY2x1ZGUgImNvbmZp
Zy5oIgogI2luY2x1ZGUgIlByZWNpc2VKdW1wVGFyZ2V0cy5oIgogCisjaW5jbHVkZSAiT3BlcmF0
aW9ucy5oIgorCiBuYW1lc3BhY2UgSlNDIHsKIAogdGVtcGxhdGUgPHNpemVfdCB2ZWN0b3JTaXpl
PgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1Byb2ZpbGVkQ29kZUJsb2Nr
SmV0dGlzb25pbmdXYXRjaHBvaW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvUHJvZmlsZWRDb2RlQmxvY2tKZXR0aXNvbmluZ1dhdGNocG9pbnQuY3Bw
CShyZXZpc2lvbiAxNjM3NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUHJv
ZmlsZWRDb2RlQmxvY2tKZXR0aXNvbmluZ1dhdGNocG9pbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgiCiAjaW5jbHVkZSAiREZHQ29t
bW9uLmgiCiAjaW5jbHVkZSAiREZHRXhpdFByb2ZpbGUuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25z
LmgiCiAKIG5hbWVzcGFjZSBKU0MgewogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvU2FtcGxpbmdUb29sLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvU2FtcGxpbmdUb29sLmNwcAkocmV2aXNpb24gMTYzNzUyKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1NhbXBsaW5nVG9vbC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTMxLDYgKzMxLDcgQEAKIAogI2luY2x1ZGUgIkNvZGVCbG9jay5oIgogI2luY2x1ZGUgIklu
dGVycHJldGVyLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIk9wY29kZS5o
IgogCiAjaWYgIU9TKFdJTkRPV1MpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvU3BlY2lhbFBvaW50ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9TcGVjaWFsUG9pbnRlci5jcHAJKHJldmlzaW9uIDE2Mzc1MikKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TcGVjaWFsUG9pbnRlci5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkNvZGVCbG9jay5oIgogI2luY2x1ZGUg
IkpTR2xvYmFsT2JqZWN0LmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiBuYW1lc3BhY2Ug
SlNDIHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1N0cnVjdHVyZVN0
dWJDbGVhcmluZ1dhdGNocG9pbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9TdHJ1Y3R1cmVTdHViQ2xlYXJpbmdXYXRjaHBvaW50LmNwcAkocmV2aXNp
b24gMTYzNzUyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1N0cnVjdHVyZVN0
dWJDbGVhcmluZ1dhdGNocG9pbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw3IEBA
CiAjaWYgRU5BQkxFKEpJVCkKIAogI2luY2x1ZGUgIkNvZGVCbG9jay5oIgorI2luY2x1ZGUgIk9w
ZXJhdGlvbnMuaCIKICNpbmNsdWRlICJTdHJ1Y3R1cmVTdHViSW5mby5oIgogCiBuYW1lc3BhY2Ug
SlNDIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckNhbGxG
cmFtZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0Rl
YnVnZ2VyQ2FsbEZyYW1lLmNwcAkocmV2aXNpb24gMTYzNzUyKQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQ2FsbEZyYW1lLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MjksNyArMjksNiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkRlYnVnZ2VyQ2Fs
bEZyYW1lLmgiCiAKLSNpbmNsdWRlICJDYWxsRnJhbWVJbmxpbmVzLmgiCiAjaW5jbHVkZSAiQ29k
ZUJsb2NrLmgiCiAjaW5jbHVkZSAiSW50ZXJwcmV0ZXIuaCIKICNpbmNsdWRlICJKU0FjdGl2YXRp
b24uaCIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRGVzaXJlZFRyYW5zaXRp
b25zLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Rlc2ly
ZWRUcmFuc2l0aW9ucy5jcHAJKHJldmlzaW9uIDE2Mzc1MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHRGVzaXJlZFRyYW5zaXRpb25zLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzEs
NiArMzEsNyBAQAogCiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgiCiAjaW5jbHVkZSAiREZHQ29tbW9u
RGF0YS5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVz
cGFjZSBERkcgewogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RyaXZlci5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEcml2ZXIuY3Bw
CShyZXZpc2lvbiAxNjM3NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RyaXZl
ci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEyMSw3ICsxMjEsNyBAQCBzdGF0aWMgQ29tcGlsYXRp
b25SZXN1bHQgY29tcGlsZUltcGwoCiAgICAgICAgIHJldHVybiBDb21waWxhdGlvbkRlZmVycmVk
OwogICAgIH0KICAgICAKLSAgICBwbGFuLT5jb21waWxlSW5UaHJlYWQoKnZtLmRmZ1N0YXRlKTsK
KyAgICBwbGFuLT5jb21waWxlSW5UaHJlYWQoKnZtLmRmZ1N0YXRlLCAwKTsKICAgICByZXR1cm4g
cGxhbi0+ZmluYWxpemVXaXRob3V0Tm90aWZ5aW5nQ2FsbGJhY2soKTsKIH0KICNlbHNlIC8vIEVO
QUJMRShERkdfSklUKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5jcHAJ
KHJldmlzaW9uIDE2Mzc1MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGgu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC03OTAsNiArNzkwLDU5IEBAIEpTQXJyYXlCdWZmZXJWaWV3
KiBHcmFwaDo6dHJ5R2V0Rm9sZGFibGUKICAgICByZXR1cm4gdHJ5R2V0Rm9sZGFibGVWaWV3KGNo
aWxkKG5vZGUsIDApLm5vZGUoKSwgbm9kZS0+YXJyYXlNb2RlKCkpOwogfQogCit2b2lkIEdyYXBo
Ojp2aXNpdENoaWxkcmVuKFNsb3RWaXNpdG9yJiB2aXNpdG9yKQoreworICAgIGZvciAoQmxvY2tJ
bmRleCBibG9ja0luZGV4ID0gbnVtQmxvY2tzKCk7IGJsb2NrSW5kZXgtLTspIHsKKyAgICAgICAg
QmFzaWNCbG9jayogYmxvY2sgPSB0aGlzLT5ibG9jayhibG9ja0luZGV4KTsKKyAgICAgICAgaWYg
KCFibG9jaykKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAKKyAgICAgICAgZm9yICh1
bnNpZ25lZCBub2RlSW5kZXggPSAwOyBub2RlSW5kZXggPCBibG9jay0+c2l6ZSgpOyArK25vZGVJ
bmRleCkgeworICAgICAgICAgICAgTm9kZSogbm9kZSA9IGJsb2NrLT5hdChub2RlSW5kZXgpOwor
ICAgICAgICAgICAgCisgICAgICAgICAgICBzd2l0Y2ggKG5vZGUtPm9wKCkpIHsKKyAgICAgICAg
ICAgIGNhc2UgSlNDb25zdGFudDoKKyAgICAgICAgICAgIGNhc2UgV2Vha0pTQ29uc3RhbnQ6Cisg
ICAgICAgICAgICAgICAgdmlzaXRvci5hcHBlbmRVbmJhcnJpZXJlZFJlYWRPbmx5VmFsdWUodmFs
dWVPZkpTQ29uc3RhbnQobm9kZSkpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg
ICAgICAgIAorICAgICAgICAgICAgY2FzZSBDaGVja0Z1bmN0aW9uOgorICAgICAgICAgICAgICAg
IHZpc2l0b3IuYXBwZW5kVW5iYXJyaWVyZWRSZWFkT25seVBvaW50ZXIobm9kZS0+ZnVuY3Rpb24o
KSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAg
ICBjYXNlIENoZWNrRXhlY3V0YWJsZToKKyAgICAgICAgICAgICAgICB2aXNpdG9yLmFwcGVuZFVu
YmFycmllcmVkUmVhZE9ubHlQb2ludGVyKG5vZGUtPmV4ZWN1dGFibGUoKSk7CisgICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICBjYXNlIENoZWNrU3Ry
dWN0dXJlOgorICAgICAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IG5vZGUtPnN0cnVjdHVy
ZVNldCgpLnNpemUoKTsgaS0tOykKKyAgICAgICAgICAgICAgICAgICAgdmlzaXRvci5hcHBlbmRV
bmJhcnJpZXJlZFJlYWRPbmx5UG9pbnRlcihub2RlLT5zdHJ1Y3R1cmVTZXQoKVtpXSk7CisgICAg
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICBjYXNlIFN0
cnVjdHVyZVRyYW5zaXRpb25XYXRjaHBvaW50OgorICAgICAgICAgICAgY2FzZSBOZXdPYmplY3Q6
CisgICAgICAgICAgICBjYXNlIEFycmF5aWZ5VG9TdHJ1Y3R1cmU6CisgICAgICAgICAgICBjYXNl
IE5ld1N0cmluZ09iamVjdDoKKyAgICAgICAgICAgICAgICB2aXNpdG9yLmFwcGVuZFVuYmFycmll
cmVkUmVhZE9ubHlQb2ludGVyKG5vZGUtPnN0cnVjdHVyZSgpKTsKKyAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIGNhc2UgUHV0U3RydWN0dXJlOgor
ICAgICAgICAgICAgY2FzZSBQaGFudG9tUHV0U3RydWN0dXJlOgorICAgICAgICAgICAgY2FzZSBB
bGxvY2F0ZVByb3BlcnR5U3RvcmFnZToKKyAgICAgICAgICAgIGNhc2UgUmVhbGxvY2F0ZVByb3Bl
cnR5U3RvcmFnZToKKyAgICAgICAgICAgICAgICB2aXNpdG9yLmFwcGVuZFVuYmFycmllcmVkUmVh
ZE9ubHlQb2ludGVyKAorICAgICAgICAgICAgICAgICAgICBub2RlLT5zdHJ1Y3R1cmVUcmFuc2l0
aW9uRGF0YSgpLnByZXZpb3VzU3RydWN0dXJlKTsKKyAgICAgICAgICAgICAgICB2aXNpdG9yLmFw
cGVuZFVuYmFycmllcmVkUmVhZE9ubHlQb2ludGVyKAorICAgICAgICAgICAgICAgICAgICBub2Rl
LT5zdHJ1Y3R1cmVUcmFuc2l0aW9uRGF0YSgpLm5ld1N0cnVjdHVyZSk7CisgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorfQorCiB9
IH0gLy8gbmFtZXNwYWNlIEpTQzo6REZHCiAKICNlbmRpZgpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdHcmFwaC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHR3JhcGguaAkocmV2aXNpb24gMTYzNzUyKQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdHcmFwaC5oCSh3b3JraW5nIGNvcHkpCkBAIC00MCw2ICs0MCw3IEBACiAjaW5j
bHVkZSAiREZHTm9kZS5oIgogI2luY2x1ZGUgIkRGR05vZGVBbGxvY2F0b3IuaCIKICNpbmNsdWRl
ICJERkdQbGFuLmgiCisjaW5jbHVkZSAiREZHU2Nhbm5hYmxlLmgiCiAjaW5jbHVkZSAiREZHVmFy
aWFkaWNGdW5jdGlvbi5oIgogI2luY2x1ZGUgIklubGluZUNhbGxGcmFtZVNldC5oIgogI2luY2x1
ZGUgIkpTU3RhY2suaCIKQEAgLTc4LDcgKzc5LDcgQEAgZW51bSBBZGRTcGVjdWxhdGlvbk1vZGUg
ewogLy8KIC8vIFRoZSBvcmRlciBtYXkgYmUgc2lnbmlmaWNhbnQgZm9yIG5vZGVzIHdpdGggc2lk
ZS1lZmZlY3RzIChwcm9wZXJ0eSBhY2Nlc3NlcywgdmFsdWUgY29udmVyc2lvbnMpLgogLy8gTm9k
ZXMgdGhhdCBhcmUgJ2RlYWQnIHJlbWFpbiBpbiB0aGUgdmVjdG9yIHdpdGggcmVmQ291bnQgMC4K
LWNsYXNzIEdyYXBoIHsKK2NsYXNzIEdyYXBoIDogcHVibGljIHZpcnR1YWwgU2Nhbm5hYmxlIHsK
IHB1YmxpYzoKICAgICBHcmFwaChWTSYsIFBsYW4mLCBMb25nTGl2ZWRTdGF0ZSYpOwogICAgIH5H
cmFwaCgpOwpAQCAtNzk5LDYgKzgwMCw4IEBAIHB1YmxpYzoKICAgICBKU0FycmF5QnVmZmVyVmll
dyogdHJ5R2V0Rm9sZGFibGVWaWV3KE5vZGUqLCBBcnJheU1vZGUpOwogICAgIEpTQXJyYXlCdWZm
ZXJWaWV3KiB0cnlHZXRGb2xkYWJsZVZpZXdGb3JDaGlsZDEoTm9kZSopOwogICAgIAorICAgIHZp
cnR1YWwgdm9pZCB2aXNpdENoaWxkcmVuKFNsb3RWaXNpdG9yJikgb3ZlcnJpZGU7CisgICAgCiAg
ICAgVk0mIG1fdm07CiAgICAgUGxhbiYgbV9wbGFuOwogICAgIENvZGVCbG9jayogbV9jb2RlQmxv
Y2s7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoU2FmZXBvaW50LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoU2FmZXBv
aW50LmNwcAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3Jh
cGhTYWZlcG9pbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNDcgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIkRGR0dyYXBoU2FmZXBvaW50LmgiCisKKyNpZiBFTkFCTEUoREZHX0pJVCkK
KworI2luY2x1ZGUgIkRGR0dyYXBoLmgiCisKK25hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZH
IHsKKworR3JhcGhTYWZlcG9pbnQ6OkdyYXBoU2FmZXBvaW50KEdyYXBoJiBncmFwaCkKKyAgICA6
IG1fc2FmZXBvaW50KGdyYXBoLm1fcGxhbikKK3sKKyAgICBtX3NhZmVwb2ludC5hZGQoJmdyYXBo
KTsKKyAgICBtX3NhZmVwb2ludC5iZWdpbigpOworfQorCitHcmFwaFNhZmVwb2ludDo6fkdyYXBo
U2FmZXBvaW50KCkgeyB9CisKK30gfSAvLyBuYW1lc3BhY2UgSlNDOjpERkcKKworI2VuZGlmIC8v
IEVOQUJMRShERkdfSklUKQorCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dy
YXBoU2FmZXBvaW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdHcmFwaFNhZmVwb2ludC5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdHcmFwaFNhZmVwb2ludC5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNTEgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisg
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBE
RkdHcmFwaFNhZmVwb2ludF9oCisjZGVmaW5lIERGR0dyYXBoU2FmZXBvaW50X2gKKworI2lmIEVO
QUJMRShERkdfSklUKQorCisjaW5jbHVkZSAiREZHU2FmZXBvaW50LmgiCisKK25hbWVzcGFjZSBK
U0MgeyBuYW1lc3BhY2UgREZHIHsKKworY2xhc3MgR3JhcGg7CisKK2NsYXNzIEdyYXBoU2FmZXBv
aW50IHsKK3B1YmxpYzoKKyAgICBHcmFwaFNhZmVwb2ludChHcmFwaCYpOworICAgIH5HcmFwaFNh
ZmVwb2ludCgpOworICAgIAorcHJpdmF0ZToKKyAgICBTYWZlcG9pbnQgbV9zYWZlcG9pbnQ7Cit9
OworCit9IH0gLy8gbmFtZXNwYWNlIEpTQzo6REZHCisKKyNlbmRpZiAvLyBFTkFCTEUoREZHX0pJ
VCkKKworI2VuZGlmIC8vIERGR0dyYXBoU2FmZXBvaW50X2gKKwpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdKSVRDb2RlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0pJVENvZGUuY3BwCShyZXZpc2lvbiAxNjM3NTIpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVENvZGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2
ICsyOSw3IEBACiAjaWYgRU5BQkxFKERGR19KSVQpCiAKICNpbmNsdWRlICJDb2RlQmxvY2suaCIK
KyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZH
IHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb21waWxlci5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb21waWxlci5j
cHAJKHJldmlzaW9uIDE2Mzc1MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklU
Q29tcGlsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MSw5ICs0MSwxMCBAQAogI2luY2x1ZGUg
IkRGR1NwZWN1bGF0aXZlSklULmgiCiAjaW5jbHVkZSAiREZHVGh1bmtzLmgiCiAjaW5jbHVkZSAi
SlNDSlNWYWx1ZUlubGluZXMuaCIKKyNpbmNsdWRlICJMaW5rQnVmZmVyLmgiCiAjaW5jbHVkZSAi
TWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgi
CiAjaW5jbHVkZSAiVk0uaCIKLSNpbmNsdWRlICJMaW5rQnVmZmVyLmgiCiAKIG5hbWVzcGFjZSBK
U0MgeyBuYW1lc3BhY2UgREZHIHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdKSVRDb21waWxlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHSklUQ29tcGlsZXIuaAkocmV2aXNpb24gMTYzNzUyKQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdKSVRDb21waWxlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw3ICsyOSw2IEBA
CiAjaWYgRU5BQkxFKERGR19KSVQpCiAKICNpbmNsdWRlICJDQ2FsbEhlbHBlcnMuaCIKLSNpbmNs
dWRlICJDYWxsRnJhbWVJbmxpbmVzLmgiCiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgiCiAjaW5jbHVk
ZSAiREZHRGlzYXNzZW1ibGVyLmgiCiAjaW5jbHVkZSAiREZHR3JhcGguaCIKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdENvbXBpbGVyQ29tbW9uLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXRDb21waWxlckNvbW1v
bi5jcHAJKHJldmlzaW9uIDE2Mzc1MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
T1NSRXhpdENvbXBpbGVyQ29tbW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjksNiArMjksNyBA
QAogI2lmIEVOQUJMRShERkdfSklUKQogCiAjaW5jbHVkZSAiQXJndW1lbnRzLmgiCisjaW5jbHVk
ZSAiREZHSklUQ29kZS5oIgogI2luY2x1ZGUgIkRGR09wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJK
SVQuaCIKICNpbmNsdWRlICJKU0NKU1ZhbHVlSW5saW5lcy5oIgpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCShyZXZpc2lvbiAxNjM3NTIpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiQ29tbW9uU2xvd1BhdGhzLmgiCiAjaW5jbHVk
ZSAiQ29waWVkU3BhY2VJbmxpbmVzLmgiCiAjaW5jbHVkZSAiREZHRHJpdmVyLmgiCisjaW5jbHVk
ZSAiREZHSklUQ29kZS5oIgogI2luY2x1ZGUgIkRGR09TUkV4aXQuaCIKICNpbmNsdWRlICJERkdU
aHVua3MuaCIKICNpbmNsdWRlICJERkdUb0ZUTERlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjay5o
IgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmgJKHJldmlz
aW9uIDE2Mzc1MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5o
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
MSwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTEsIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yOCw3ICsyOCw2IEBACiAKICNpZiBFTkFCTEUo
REZHX0pJVCkKIAotI2luY2x1ZGUgIkRGR0pJVENvbXBpbGVyLmgiCiAjaW5jbHVkZSAiSklUT3Bl
cmF0aW9ucy5oIgogI2luY2x1ZGUgIlB1dEtpbmQuaCIKIApJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdQbGFuLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1BsYW4uY3BwCShyZXZpc2lvbiAxNjM3NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1BsYW4uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MSw2ICs0MSw3IEBACiAj
aW5jbHVkZSAiREZHRmFpbGVkRmluYWxpemVyLmgiCiAjaW5jbHVkZSAiREZHRmx1c2hMaXZlbmVz
c0FuYWx5c2lzUGhhc2UuaCIKICNpbmNsdWRlICJERkdGaXh1cFBoYXNlLmgiCisjaW5jbHVkZSAi
REZHR3JhcGhTYWZlcG9pbnQuaCIKICNpbmNsdWRlICJERkdJbnZhbGlkYXRpb25Qb2ludEluamVj
dGlvblBoYXNlLmgiCiAjaW5jbHVkZSAiREZHSklUQ29tcGlsZXIuaCIKICNpbmNsdWRlICJERkdM
SUNNUGhhc2UuaCIKQEAgLTEzNSw4ICsxMzYsMTAgQEAgYm9vbCBQbGFuOjpyZXBvcnRDb21waWxl
VGltZXMoKSBjb25zdAogICAgICAgICB8fCAoT3B0aW9uczo6cmVwb3J0RlRMQ29tcGlsZVRpbWVz
KCkgJiYgaXNGVEwobW9kZSkpOwogfQogCi12b2lkIFBsYW46OmNvbXBpbGVJblRocmVhZChMb25n
TGl2ZWRTdGF0ZSYgbG9uZ0xpdmVkU3RhdGUpCit2b2lkIFBsYW46OmNvbXBpbGVJblRocmVhZChM
b25nTGl2ZWRTdGF0ZSYgbG9uZ0xpdmVkU3RhdGUsIFRocmVhZERhdGEqIHRocmVhZERhdGEpCiB7
CisgICAgdGhpcy0+dGhyZWFkRGF0YSA9IHRocmVhZERhdGE7CisgICAgCiAgICAgZG91YmxlIGJl
Zm9yZSA9IDA7CiAgICAgaWYgKHJlcG9ydENvbXBpbGVUaW1lcygpKQogICAgICAgICBiZWZvcmUg
PSBjdXJyZW50VGltZU1TKCk7CkBAIC0zMTMsMTEgKzMxNiwxNCBAQCBQbGFuOjpDb21waWxhdGlv
blBhdGggUGxhbjo6Y29tcGlsZUluVGhyCiAgICAgICAgIAogICAgICAgICBkdW1wQW5kVmVyaWZ5
R3JhcGgoZGZnLCAiR3JhcGgganVzdCBiZWZvcmUgRlRMIGxvd2VyaW5nOiIpOwogICAgICAgICAK
LSAgICAgICAgaW5pdGlhbGl6ZUxMVk0oKTsKLSAgICAgICAgCisgICAgICAgIHsKKyAgICAgICAg
ICAgIEdyYXBoU2FmZXBvaW50IHNhZmVwb2ludChkZmcpOworICAgICAgICAgICAgaW5pdGlhbGl6
ZUxMVk0oKTsKKyAgICAgICAgfQorICAgICAgICAgICAgCiAgICAgICAgIEZUTDo6U3RhdGUgc3Rh
dGUoZGZnKTsKICAgICAgICAgRlRMOjpsb3dlckRGR1RvTExWTShzdGF0ZSk7Ci0gICAgICAgIAor
ICAgICAgICAgICAgCiAgICAgICAgIGlmIChyZXBvcnRDb21waWxlVGltZXMoKSkKICAgICAgICAg
ICAgIGJlZm9yZUZUTCA9IGN1cnJlbnRUaW1lTVMoKTsKICAgICAgICAgCkBAIC0zMjcsNyArMzMz
LDcgQEAgUGxhbjo6Q29tcGlsYXRpb25QYXRoIFBsYW46OmNvbXBpbGVJblRocgogICAgICAgICB9
CiAgICAgICAgIAogICAgICAgICBGVEw6OmNvbXBpbGUoc3RhdGUpOwotCisgICAgICAgICAgICAK
ICAgICAgICAgaWYgKE9wdGlvbnM6Omxsdm1BbHdheXNGYWlsc0JlZm9yZUxpbmsoKSkgewogICAg
ICAgICAgICAgRlRMOjpmYWlsKHN0YXRlKTsKICAgICAgICAgICAgIHJldHVybiBGVExQYXRoOwpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQbGFuLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQbGFuLmgJKHJldmlzaW9uIDE2Mzc1MikKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUGxhbi5oCSh3b3JraW5nIGNvcHkpCkBAIC01
Miw2ICs1Miw3IEBAIGNsYXNzIFNsb3RWaXNpdG9yOwogbmFtZXNwYWNlIERGRyB7CiAKIGNsYXNz
IExvbmdMaXZlZFN0YXRlOworY2xhc3MgVGhyZWFkRGF0YTsKIAogI2lmIEVOQUJMRShERkdfSklU
KQogCkBAIC02Miw3ICs2Myw3IEBAIHN0cnVjdCBQbGFuIDogcHVibGljIFRocmVhZFNhZmVSZWZD
b3VudGUKICAgICAgICAgY29uc3QgT3BlcmFuZHM8SlNWYWx1ZT4mIG11c3RIYW5kbGVWYWx1ZXMp
OwogICAgIH5QbGFuKCk7CiAgICAgCi0gICAgdm9pZCBjb21waWxlSW5UaHJlYWQoTG9uZ0xpdmVk
U3RhdGUmKTsKKyAgICB2b2lkIGNvbXBpbGVJblRocmVhZChMb25nTGl2ZWRTdGF0ZSYsIFRocmVh
ZERhdGEqKTsKICAgICAKICAgICBDb21waWxhdGlvblJlc3VsdCBmaW5hbGl6ZVdpdGhvdXROb3Rp
ZnlpbmdDYWxsYmFjaygpOwogICAgIHZvaWQgZmluYWxpemVBbmROb3RpZnlDYWxsYmFjaygpOwpA
QCAtNzksNiArODAsOCBAQCBzdHJ1Y3QgUGxhbiA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRl
CiAgICAgQ29tcGlsYXRpb25Nb2RlIG1vZGU7CiAgICAgY29uc3QgdW5zaWduZWQgb3NyRW50cnlC
eXRlY29kZUluZGV4OwogICAgIE9wZXJhbmRzPEpTVmFsdWU+IG11c3RIYW5kbGVWYWx1ZXM7Cisg
ICAgCisgICAgVGhyZWFkRGF0YSogdGhyZWFkRGF0YTsKIAogICAgIFJlZlB0cjxQcm9maWxlcjo6
Q29tcGlsYXRpb24+IGNvbXBpbGF0aW9uOwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1NhZmVwb2ludC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdTYWZlcG9pbnQuY3BwCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdTYWZlcG9pbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNzQgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisg
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIkRGR1NhZmVwb2ludC5oIgorCisjaWYgRU5BQkxFKERGR19K
SVQpCisKKyNpbmNsdWRlICJERkdQbGFuLmgiCisjaW5jbHVkZSAiREZHU2Nhbm5hYmxlLmgiCisj
aW5jbHVkZSAiREZHVGhyZWFkRGF0YS5oIgorCituYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERG
RyB7CisKK1NhZmVwb2ludDo6U2FmZXBvaW50KFBsYW4mIHBsYW4pCisgICAgOiBtX3BsYW4ocGxh
bikKKyAgICAsIG1fZGlkQ2FsbEJlZ2luKGZhbHNlKQoreworfQorCitTYWZlcG9pbnQ6On5TYWZl
cG9pbnQoKQoreworICAgIFJFTEVBU0VfQVNTRVJUKG1fZGlkQ2FsbEJlZ2luKTsKKyAgICBpZiAo
VGhyZWFkRGF0YSogZGF0YSA9IG1fcGxhbi50aHJlYWREYXRhKQorICAgICAgICBkYXRhLT5tX3Jp
Z2h0VG9SdW4ubG9jaygpOworfQorCit2b2lkIFNhZmVwb2ludDo6YWRkKFNjYW5uYWJsZSogc2Nh
bm5hYmxlKQoreworICAgIFJFTEVBU0VfQVNTRVJUKCFtX2RpZENhbGxCZWdpbik7CisgICAgbV9z
Y2FubmFibGVzLmFwcGVuZChzY2FubmFibGUpOworfQorCit2b2lkIFNhZmVwb2ludDo6YmVnaW4o
KQoreworICAgIFJFTEVBU0VfQVNTRVJUKCFtX2RpZENhbGxCZWdpbik7CisgICAgaWYgKFRocmVh
ZERhdGEqIGRhdGEgPSBtX3BsYW4udGhyZWFkRGF0YSkKKyAgICAgICAgZGF0YS0+bV9yaWdodFRv
UnVuLnVubG9jaygpOworICAgIG1fZGlkQ2FsbEJlZ2luID0gdHJ1ZTsKK30KKwordm9pZCBTYWZl
cG9pbnQ6OnZpc2l0Q2hpbGRyZW4oU2xvdFZpc2l0b3ImIHZpc2l0b3IpCit7CisgICAgUkVMRUFT
RV9BU1NFUlQobV9kaWRDYWxsQmVnaW4pOworICAgIGZvciAodW5zaWduZWQgaSA9IG1fc2Nhbm5h
Ymxlcy5zaXplKCk7IGktLTspCisgICAgICAgIG1fc2Nhbm5hYmxlc1tpXS0+dmlzaXRDaGlsZHJl
bih2aXNpdG9yKTsKK30KKworfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkRGRworCisjZW5kaWYgLy8g
RU5BQkxFKERGR19KSVQpCisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2Fm
ZXBvaW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTYWZl
cG9pbnQuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2Fm
ZXBvaW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw2NCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIERGR1NhZmVwb2ludF9oCisj
ZGVmaW5lIERGR1NhZmVwb2ludF9oCisKKyNpZiBFTkFCTEUoREZHX0pJVCkKKworI2luY2x1ZGUg
PHd0Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIEpTQyB7CisKK2NsYXNzIFNsb3RWaXNpdG9yOwor
CituYW1lc3BhY2UgREZHIHsKKworY2xhc3MgU2Nhbm5hYmxlOworc3RydWN0IFBsYW47CisKK2Ns
YXNzIFNhZmVwb2ludCB7CitwdWJsaWM6CisgICAgU2FmZXBvaW50KFBsYW4mKTsKKyAgICB+U2Fm
ZXBvaW50KCk7CisgICAgCisgICAgdm9pZCBhZGQoU2Nhbm5hYmxlKik7CisgICAgCisgICAgdm9p
ZCBiZWdpbigpOworICAgIAorICAgIHZvaWQgdmlzaXRDaGlsZHJlbihTbG90VmlzaXRvciYpOwor
ICAgIAorcHJpdmF0ZToKKyAgICBQbGFuJiBtX3BsYW47CisgICAgVmVjdG9yPFNjYW5uYWJsZSo+
IG1fc2Nhbm5hYmxlczsKKyAgICBib29sIG1fZGlkQ2FsbEJlZ2luOworfTsKKworfSB9IC8vIG5h
bWVzcGFjZSBKU0M6OkRGRworCisjZW5kaWYgLy8gRU5BQkxFKERGR19KSVQpCisKKyNlbmRpZiAv
LyBERkdTYWZlcG9pbnRfaAorCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nj
YW5uYWJsZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2Nh
bm5hYmxlLmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nj
YW5uYWJsZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBERkdTY2FubmFibGVfaAor
I2RlZmluZSBERkdTY2FubmFibGVfaAorCisjaWYgRU5BQkxFKERGR19KSVQpCisKK25hbWVzcGFj
ZSBKU0MgeworCitjbGFzcyBTbG90VmlzaXRvcjsKKworbmFtZXNwYWNlIERGRyB7CisKK2NsYXNz
IFNjYW5uYWJsZSB7CitwdWJsaWM6CisgICAgU2Nhbm5hYmxlKCkgeyB9CisgICAgdmlydHVhbCB+
U2Nhbm5hYmxlKCkgeyB9CisgICAgCisgICAgdmlydHVhbCB2b2lkIHZpc2l0Q2hpbGRyZW4oU2xv
dFZpc2l0b3ImKSA9IDA7Cit9OworCit9IH0gLy8gbmFtZXNwYWNlIEpTQzo6REZHCisKKyNlbmRp
ZiAvLyBFTkFCTEUoREZHX0pJVCkKKworI2VuZGlmIC8vIERGR1NjYW5uYWJsZV9oCisKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVGhyZWFkRGF0YS5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdUaHJlYWREYXRhLmNwcAkocmV2aXNpb24g
MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVGhyZWFkRGF0YS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTAsMCArMSw0NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiREZHVGhyZWFk
RGF0YS5oIgorCisjaWYgRU5BQkxFKERGR19KSVQpCisKK25hbWVzcGFjZSBKU0MgeyBuYW1lc3Bh
Y2UgREZHIHsKKworVGhyZWFkRGF0YTo6VGhyZWFkRGF0YShXb3JrbGlzdCogd29ya2xpc3QpCisg
ICAgOiBtX3dvcmtsaXN0KHdvcmtsaXN0KQorICAgICwgbV9pZGVudGlmaWVyKDApCisgICAgLCBt
X3NhZmVwb2ludChudWxscHRyKQoreworfQorCitUaHJlYWREYXRhOjp+VGhyZWFkRGF0YSgpCit7
Cit9CisKK30gfSAvLyBuYW1lc3BhY2UgSlNDOjpERkcKKworI2VuZGlmIC8vIEVOQUJMRShERkdf
SklUKQorCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1RocmVhZERhdGEuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1RocmVhZERhdGEuaAko
cmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVGhyZWFkRGF0YS5o
CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBERkdUaHJlYWREYXRhX2gKKyNkZWZpbmUg
REZHVGhyZWFkRGF0YV9oCisKKyNpZiBFTkFCTEUoREZHX0pJVCkKKworI2luY2x1ZGUgPHd0Zi9U
aHJlYWRpbmcuaD4KKyNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nUHJpbWl0aXZlcy5oPgorCituYW1l
c3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CisKK2NsYXNzIFNhZmVwb2ludDsKK2NsYXNzIFdv
cmtsaXN0OworCitjbGFzcyBUaHJlYWREYXRhIHsKK3B1YmxpYzoKKyAgICBUaHJlYWREYXRhKFdv
cmtsaXN0Kik7CisgICAgflRocmVhZERhdGEoKTsKKyAgICAKK3ByaXZhdGU6CisgICAgZnJpZW5k
IGNsYXNzIFNhZmVwb2ludDsKKyAgICBmcmllbmQgY2xhc3MgV29ya2xpc3Q7CisgICAgCisgICAg
V29ya2xpc3QqIG1fd29ya2xpc3Q7CisgICAgVGhyZWFkSWRlbnRpZmllciBtX2lkZW50aWZpZXI7
CisgICAgTXV0ZXggbV9yaWdodFRvUnVuOworICAgIFNhZmVwb2ludCogbV9zYWZlcG9pbnQ7Cit9
OworCit9IH0gLy8gbmFtZXNwYWNlIEpTQzo6REZHCisKKyNlbmRpZiAvLyBFTkFCTEUoREZHX0pJ
VCkKKworI2VuZGlmIC8vIERGR1RocmVhZERhdGFfaAorCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1RodW5rcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdUaHVua3MuY3BwCShyZXZpc2lvbiAxNjM3NTIpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1RodW5rcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMyLDYgKzMyLDcg
QEAKICNpbmNsdWRlICJERkdPU1JFeGl0Q29tcGlsZXIuaCIKICNpbmNsdWRlICJGUFJJbmZvLmgi
CiAjaW5jbHVkZSAiR1BSSW5mby5oIgorI2luY2x1ZGUgIkxpbmtCdWZmZXIuaCIKICNpbmNsdWRl
ICJNYWNyb0Fzc2VtYmxlci5oIgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7Cklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1dvcmtsaXN0LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1dvcmtsaXN0LmNwcAkocmV2aXNpb24g
MTYzNzUyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdXb3JrbGlzdC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJDb2RlQmxvY2suaCIKICNp
bmNsdWRlICJEZWZlckdDLmgiCiAjaW5jbHVkZSAiREZHTG9uZ0xpdmVkU3RhdGUuaCIKKyNpbmNs
dWRlICJERkdTYWZlcG9pbnQuaCIKICNpbmNsdWRlIDxtdXRleD4KIAogbmFtZXNwYWNlIEpTQyB7
IG5hbWVzcGFjZSBERkcgewpAQCAtNTcsOCArNTgsNyBAQCB2b2lkIFdvcmtsaXN0OjpmaW5pc2hD
cmVhdGlvbih1bnNpZ25lZCBuCiB7CiAgICAgUkVMRUFTRV9BU1NFUlQobnVtYmVyT2ZUaHJlYWRz
KTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSBudW1iZXJPZlRocmVhZHM7IGktLTspIHsKLSAgICAg
ICAgc3RkOjp1bmlxdWVfcHRyPFRocmVhZERhdGE+IGRhdGEgPSBzdGQ6Om1ha2VfdW5pcXVlPFRo
cmVhZERhdGE+KCk7Ci0gICAgICAgIGRhdGEtPm1fd29ya2xpc3QgPSB0aGlzOworICAgICAgICBz
dGQ6OnVuaXF1ZV9wdHI8VGhyZWFkRGF0YT4gZGF0YSA9IHN0ZDo6bWFrZV91bmlxdWU8VGhyZWFk
RGF0YT4odGhpcyk7CiAgICAgICAgIGRhdGEtPm1faWRlbnRpZmllciA9IGNyZWF0ZVRocmVhZCh0
aHJlYWRGdW5jdGlvbiwgZGF0YS5nZXQoKSwgIkpTQyBDb21waWxhdGlvbiBUaHJlYWQiKTsKICAg
ICAgICAgbV90aHJlYWRzLmFwcGVuZChzdGQ6Om1vdmUoZGF0YSkpOwogICAgIH0KQEAgLTIxMCw2
ICsyMTAsMTIgQEAgdm9pZCBXb3JrbGlzdDo6dmlzaXRDaGlsZHJlbihTbG90VmlzaXRvcgogICAg
ICAgICBpdGVyLT5rZXkudmlzaXRDaGlsZHJlbihjb2RlQmxvY2tzKTsKICAgICAgICAgaXRlci0+
dmFsdWUtPnZpc2l0Q2hpbGRyZW4odmlzaXRvciwgY29kZUJsb2Nrcyk7CiAgICAgfQorICAgIAor
ICAgIGZvciAodW5zaWduZWQgaSA9IG1fdGhyZWFkcy5zaXplKCk7IGktLTspIHsKKyAgICAgICAg
VGhyZWFkRGF0YSogZGF0YSA9IG1fdGhyZWFkc1tpXS5nZXQoKTsKKyAgICAgICAgaWYgKFNhZmVw
b2ludCogc2FmZXBvaW50ID0gZGF0YS0+bV9zYWZlcG9pbnQpCisgICAgICAgICAgICBzYWZlcG9p
bnQtPnZpc2l0Q2hpbGRyZW4odmlzaXRvcik7CisgICAgfQogfQogCiBzaXplX3QgV29ya2xpc3Q6
OnF1ZXVlTGVuZ3RoKCkKQEAgLTI2NSw3ICsyNzEsNyBAQCB2b2lkIFdvcmtsaXN0OjpydW5UaHJl
YWQoVGhyZWFkRGF0YSogZGF0CiAgICAgICAgICAgICBpZiAoT3B0aW9uczo6dmVyYm9zZUNvbXBp
bGF0aW9uUXVldWUoKSkKICAgICAgICAgICAgICAgICBkYXRhTG9nKCp0aGlzLCAiOiBDb21waWxp
bmcgIiwgcGxhbi0+a2V5KCksICIgYXN5bmNocm9ub3VzbHlcbiIpOwogICAgICAgICAKLSAgICAg
ICAgICAgIHBsYW4tPmNvbXBpbGVJblRocmVhZChsb25nTGl2ZWRTdGF0ZSk7CisgICAgICAgICAg
ICBwbGFuLT5jb21waWxlSW5UaHJlYWQobG9uZ0xpdmVkU3RhdGUsIGRhdGEpOwogICAgICAgICB9
CiAgICAgICAgIAogICAgICAgICB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1dvcmtsaXN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdX
b3JrbGlzdC5oCShyZXZpc2lvbiAxNjM3NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1dvcmtsaXN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTMxLDYgKzMxLDcgQEAKICNpZiBFTkFC
TEUoREZHX0pJVCkKIAogI2luY2x1ZGUgIkRGR1BsYW4uaCIKKyNpbmNsdWRlICJERkdUaHJlYWRE
YXRhLmgiCiAjaW5jbHVkZSA8d3RmL0RlcXVlLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4K
ICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KQEAgLTc3LDEyICs3OCw2IEBAIHB1YmxpYzoK
ICAgICB2b2lkIGR1bXAoUHJpbnRTdHJlYW0mKSBjb25zdDsKICAgICAKIHByaXZhdGU6Ci0gICAg
c3RydWN0IFRocmVhZERhdGEgewotICAgICAgICBXb3JrbGlzdCogbV93b3JrbGlzdDsKLSAgICAg
ICAgVGhyZWFkSWRlbnRpZmllciBtX2lkZW50aWZpZXI7Ci0gICAgICAgIE11dGV4IG1fcmlnaHRU
b1J1bjsKLSAgICB9OwotICAgIAogICAgIFdvcmtsaXN0KCk7CiAgICAgdm9pZCBmaW5pc2hDcmVh
dGlvbih1bnNpZ25lZCBudW1iZXJPZlRocmVhZHMpOwogICAgIApJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Z0bC9GVExDb21waWxlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZnRsL0ZUTENvbXBpbGUuY3BwCShyZXZpc2lvbiAxNjM3NTIpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZnRsL0ZUTENvbXBpbGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2
ICszMSw3IEBACiAjaW5jbHVkZSAiQ29kZUJsb2NrV2l0aEpJVFR5cGUuaCIKICNpbmNsdWRlICJD
Q2FsbEhlbHBlcnMuaCIKICNpbmNsdWRlICJERkdDb21tb24uaCIKKyNpbmNsdWRlICJERkdHcmFw
aFNhZmVwb2ludC5oIgogI2luY2x1ZGUgIkRhdGFWaWV3LmgiCiAjaW5jbHVkZSAiRGlzYXNzZW1i
bGVyLmgiCiAjaW5jbHVkZSAiRlRMRXhpdFRodW5rR2VuZXJhdG9yLmgiCkBAIC00NTIsNzAgKzQ1
Myw3NCBAQCB2b2lkIGNvbXBpbGUoU3RhdGUmIHN0YXRlKQogewogICAgIGNoYXIqIGVycm9yID0g
MDsKICAgICAKLSAgICBMTFZNTUNKSVRDb21waWxlck9wdGlvbnMgb3B0aW9uczsKLSAgICBsbHZt
LT5Jbml0aWFsaXplTUNKSVRDb21waWxlck9wdGlvbnMoJm9wdGlvbnMsIHNpemVvZihvcHRpb25z
KSk7Ci0gICAgb3B0aW9ucy5PcHRMZXZlbCA9IE9wdGlvbnM6Omxsdm1CYWNrZW5kT3B0aW1pemF0
aW9uTGV2ZWwoKTsKLSAgICBvcHRpb25zLk5vRnJhbWVQb2ludGVyRWxpbSA9IHRydWU7Ci0gICAg
aWYgKE9wdGlvbnM6OnVzZUxMVk1TbWFsbENvZGVNb2RlbCgpKQotICAgICAgICBvcHRpb25zLkNv
ZGVNb2RlbCA9IExMVk1Db2RlTW9kZWxTbWFsbDsKLSAgICBvcHRpb25zLkVuYWJsZUZhc3RJU2Vs
ID0gT3B0aW9uczo6ZW5hYmxlTExWTUZhc3RJU2VsKCk7Ci0gICAgb3B0aW9ucy5NQ0pNTSA9IGxs
dm0tPkNyZWF0ZVNpbXBsZU1DSklUTWVtb3J5TWFuYWdlcigKLSAgICAgICAgJnN0YXRlLCBtbUFs
bG9jYXRlQ29kZVNlY3Rpb24sIG1tQWxsb2NhdGVEYXRhU2VjdGlvbiwgbW1BcHBseVBlcm1pc3Np
b25zLCBtbURlc3Ryb3kpOwotICAgIAotICAgIExMVk1FeGVjdXRpb25FbmdpbmVSZWYgZW5naW5l
OwotICAgIAotICAgIGlmIChsbHZtLT5DcmVhdGVNQ0pJVENvbXBpbGVyRm9yTW9kdWxlKCZlbmdp
bmUsIHN0YXRlLm1vZHVsZSwgJm9wdGlvbnMsIHNpemVvZihvcHRpb25zKSwgJmVycm9yKSkgewot
ICAgICAgICBkYXRhTG9nKCJGQVRBTDogQ291bGQgbm90IGNyZWF0ZSBMTFZNIGV4ZWN1dGlvbiBl
bmdpbmU6ICIsIGVycm9yLCAiXG4iKTsKLSAgICAgICAgQ1JBU0goKTsKLSAgICB9Ci0KLSAgICBM
TFZNUGFzc01hbmFnZXJSZWYgZnVuY3Rpb25QYXNzZXMgPSAwOwotICAgIExMVk1QYXNzTWFuYWdl
clJlZiBtb2R1bGVQYXNzZXM7Ci0gICAgCi0gICAgaWYgKE9wdGlvbnM6Omxsdm1TaW1wbGVPcHQo
KSkgewotICAgICAgICBtb2R1bGVQYXNzZXMgPSBsbHZtLT5DcmVhdGVQYXNzTWFuYWdlcigpOwot
ICAgICAgICBsbHZtLT5BZGRUYXJnZXREYXRhKGxsdm0tPkdldEV4ZWN1dGlvbkVuZ2luZVRhcmdl
dERhdGEoZW5naW5lKSwgbW9kdWxlUGFzc2VzKTsKLSAgICAgICAgbGx2bS0+QWRkUHJvbW90ZU1l
bW9yeVRvUmVnaXN0ZXJQYXNzKG1vZHVsZVBhc3Nlcyk7Ci0gICAgICAgIGxsdm0tPkFkZENvbnN0
YW50UHJvcGFnYXRpb25QYXNzKG1vZHVsZVBhc3Nlcyk7Ci0gICAgICAgIGxsdm0tPkFkZEluc3Ry
dWN0aW9uQ29tYmluaW5nUGFzcyhtb2R1bGVQYXNzZXMpOwotICAgICAgICBsbHZtLT5BZGRCYXNp
Y0FsaWFzQW5hbHlzaXNQYXNzKG1vZHVsZVBhc3Nlcyk7Ci0gICAgICAgIGxsdm0tPkFkZFR5cGVC
YXNlZEFsaWFzQW5hbHlzaXNQYXNzKG1vZHVsZVBhc3Nlcyk7Ci0gICAgICAgIGxsdm0tPkFkZEdW
TlBhc3MobW9kdWxlUGFzc2VzKTsKLSAgICAgICAgbGx2bS0+QWRkQ0ZHU2ltcGxpZmljYXRpb25Q
YXNzKG1vZHVsZVBhc3Nlcyk7Ci0gICAgICAgIGxsdm0tPlJ1blBhc3NNYW5hZ2VyKG1vZHVsZVBh
c3Nlcywgc3RhdGUubW9kdWxlKTsKLSAgICB9IGVsc2UgewotICAgICAgICBMTFZNUGFzc01hbmFn
ZXJCdWlsZGVyUmVmIHBhc3NCdWlsZGVyID0gbGx2bS0+UGFzc01hbmFnZXJCdWlsZGVyQ3JlYXRl
KCk7Ci0gICAgICAgIGxsdm0tPlBhc3NNYW5hZ2VyQnVpbGRlclNldE9wdExldmVsKHBhc3NCdWls
ZGVyLCBPcHRpb25zOjpsbHZtT3B0aW1pemF0aW9uTGV2ZWwoKSk7Ci0gICAgICAgIGxsdm0tPlBh
c3NNYW5hZ2VyQnVpbGRlclNldFNpemVMZXZlbChwYXNzQnVpbGRlciwgT3B0aW9uczo6bGx2bVNp
emVMZXZlbCgpKTsKLSAgICAgICAgCi0gICAgICAgIGZ1bmN0aW9uUGFzc2VzID0gbGx2bS0+Q3Jl
YXRlRnVuY3Rpb25QYXNzTWFuYWdlckZvck1vZHVsZShzdGF0ZS5tb2R1bGUpOwotICAgICAgICBt
b2R1bGVQYXNzZXMgPSBsbHZtLT5DcmVhdGVQYXNzTWFuYWdlcigpOwotICAgICAgICAKLSAgICAg
ICAgbGx2bS0+QWRkVGFyZ2V0RGF0YShsbHZtLT5HZXRFeGVjdXRpb25FbmdpbmVUYXJnZXREYXRh
KGVuZ2luZSksIG1vZHVsZVBhc3Nlcyk7Ci0gICAgICAgIAotICAgICAgICBsbHZtLT5QYXNzTWFu
YWdlckJ1aWxkZXJQb3B1bGF0ZUZ1bmN0aW9uUGFzc01hbmFnZXIocGFzc0J1aWxkZXIsIGZ1bmN0
aW9uUGFzc2VzKTsKLSAgICAgICAgbGx2bS0+UGFzc01hbmFnZXJCdWlsZGVyUG9wdWxhdGVNb2R1
bGVQYXNzTWFuYWdlcihwYXNzQnVpbGRlciwgbW9kdWxlUGFzc2VzKTsKLSAgICAgICAgCi0gICAg
ICAgIGxsdm0tPlBhc3NNYW5hZ2VyQnVpbGRlckRpc3Bvc2UocGFzc0J1aWxkZXIpOwotICAgICAg
ICAKLSAgICAgICAgbGx2bS0+SW5pdGlhbGl6ZUZ1bmN0aW9uUGFzc01hbmFnZXIoZnVuY3Rpb25Q
YXNzZXMpOwotICAgICAgICBmb3IgKExWYWx1ZSBmdW5jdGlvbiA9IGxsdm0tPkdldEZpcnN0RnVu
Y3Rpb24oc3RhdGUubW9kdWxlKTsgZnVuY3Rpb247IGZ1bmN0aW9uID0gbGx2bS0+R2V0TmV4dEZ1
bmN0aW9uKGZ1bmN0aW9uKSkKLSAgICAgICAgICAgIGxsdm0tPlJ1bkZ1bmN0aW9uUGFzc01hbmFn
ZXIoZnVuY3Rpb25QYXNzZXMsIGZ1bmN0aW9uKTsKLSAgICAgICAgbGx2bS0+RmluYWxpemVGdW5j
dGlvblBhc3NNYW5hZ2VyKGZ1bmN0aW9uUGFzc2VzKTsKLSAgICAgICAgCi0gICAgICAgIGxsdm0t
PlJ1blBhc3NNYW5hZ2VyKG1vZHVsZVBhc3Nlcywgc3RhdGUubW9kdWxlKTsKLSAgICB9Ci0KLSAg
ICBpZiAoREZHOjpzaG91bGRTaG93RGlzYXNzZW1ibHkoKSB8fCBERkc6OnZlcmJvc2VDb21waWxh
dGlvbkVuYWJsZWQoKSkKLSAgICAgICAgc3RhdGUuZHVtcFN0YXRlKCJhZnRlciBvcHRpbWl6YXRp
b24iKTsKLSAgICAKLSAgICAvLyBGSVhNRTogTmVlZCB0byBhZGQgc3VwcG9ydCBmb3IgdGhlIGNh
c2Ugd2hlcmUgSklUIG1lbW9yeSBhbGxvY2F0aW9uIGZhaWxlZC4KLSAgICAvLyBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEzNjIwCi0gICAgc3RhdGUuZ2VuZXJhdGVk
RnVuY3Rpb24gPSByZWludGVycHJldF9jYXN0PEdlbmVyYXRlZEZ1bmN0aW9uPihsbHZtLT5HZXRQ
b2ludGVyVG9HbG9iYWwoZW5naW5lLCBzdGF0ZS5mdW5jdGlvbikpOwotICAgIGlmIChmdW5jdGlv
blBhc3NlcykKLSAgICAgICAgbGx2bS0+RGlzcG9zZVBhc3NNYW5hZ2VyKGZ1bmN0aW9uUGFzc2Vz
KTsKLSAgICBsbHZtLT5EaXNwb3NlUGFzc01hbmFnZXIobW9kdWxlUGFzc2VzKTsKLSAgICBsbHZt
LT5EaXNwb3NlRXhlY3V0aW9uRW5naW5lKGVuZ2luZSk7CisgICAgeworICAgICAgICBHcmFwaFNh
ZmVwb2ludCBzYWZlcG9pbnQoc3RhdGUuZ3JhcGgpOworICAgICAgICAKKyAgICAgICAgTExWTU1D
SklUQ29tcGlsZXJPcHRpb25zIG9wdGlvbnM7CisgICAgICAgIGxsdm0tPkluaXRpYWxpemVNQ0pJ
VENvbXBpbGVyT3B0aW9ucygmb3B0aW9ucywgc2l6ZW9mKG9wdGlvbnMpKTsKKyAgICAgICAgb3B0
aW9ucy5PcHRMZXZlbCA9IE9wdGlvbnM6Omxsdm1CYWNrZW5kT3B0aW1pemF0aW9uTGV2ZWwoKTsK
KyAgICAgICAgb3B0aW9ucy5Ob0ZyYW1lUG9pbnRlckVsaW0gPSB0cnVlOworICAgICAgICBpZiAo
T3B0aW9uczo6dXNlTExWTVNtYWxsQ29kZU1vZGVsKCkpCisgICAgICAgICAgICBvcHRpb25zLkNv
ZGVNb2RlbCA9IExMVk1Db2RlTW9kZWxTbWFsbDsKKyAgICAgICAgb3B0aW9ucy5FbmFibGVGYXN0
SVNlbCA9IE9wdGlvbnM6OmVuYWJsZUxMVk1GYXN0SVNlbCgpOworICAgICAgICBvcHRpb25zLk1D
Sk1NID0gbGx2bS0+Q3JlYXRlU2ltcGxlTUNKSVRNZW1vcnlNYW5hZ2VyKAorICAgICAgICAgICAg
JnN0YXRlLCBtbUFsbG9jYXRlQ29kZVNlY3Rpb24sIG1tQWxsb2NhdGVEYXRhU2VjdGlvbiwgbW1B
cHBseVBlcm1pc3Npb25zLCBtbURlc3Ryb3kpOworICAgIAorICAgICAgICBMTFZNRXhlY3V0aW9u
RW5naW5lUmVmIGVuZ2luZTsKKyAgICAKKyAgICAgICAgaWYgKGxsdm0tPkNyZWF0ZU1DSklUQ29t
cGlsZXJGb3JNb2R1bGUoJmVuZ2luZSwgc3RhdGUubW9kdWxlLCAmb3B0aW9ucywgc2l6ZW9mKG9w
dGlvbnMpLCAmZXJyb3IpKSB7CisgICAgICAgICAgICBkYXRhTG9nKCJGQVRBTDogQ291bGQgbm90
IGNyZWF0ZSBMTFZNIGV4ZWN1dGlvbiBlbmdpbmU6ICIsIGVycm9yLCAiXG4iKTsKKyAgICAgICAg
ICAgIENSQVNIKCk7CisgICAgICAgIH0KKworICAgICAgICBMTFZNUGFzc01hbmFnZXJSZWYgZnVu
Y3Rpb25QYXNzZXMgPSAwOworICAgICAgICBMTFZNUGFzc01hbmFnZXJSZWYgbW9kdWxlUGFzc2Vz
OworICAgIAorICAgICAgICBpZiAoT3B0aW9uczo6bGx2bVNpbXBsZU9wdCgpKSB7CisgICAgICAg
ICAgICBtb2R1bGVQYXNzZXMgPSBsbHZtLT5DcmVhdGVQYXNzTWFuYWdlcigpOworICAgICAgICAg
ICAgbGx2bS0+QWRkVGFyZ2V0RGF0YShsbHZtLT5HZXRFeGVjdXRpb25FbmdpbmVUYXJnZXREYXRh
KGVuZ2luZSksIG1vZHVsZVBhc3Nlcyk7CisgICAgICAgICAgICBsbHZtLT5BZGRQcm9tb3RlTWVt
b3J5VG9SZWdpc3RlclBhc3MobW9kdWxlUGFzc2VzKTsKKyAgICAgICAgICAgIGxsdm0tPkFkZENv
bnN0YW50UHJvcGFnYXRpb25QYXNzKG1vZHVsZVBhc3Nlcyk7CisgICAgICAgICAgICBsbHZtLT5B
ZGRJbnN0cnVjdGlvbkNvbWJpbmluZ1Bhc3MobW9kdWxlUGFzc2VzKTsKKyAgICAgICAgICAgIGxs
dm0tPkFkZEJhc2ljQWxpYXNBbmFseXNpc1Bhc3MobW9kdWxlUGFzc2VzKTsKKyAgICAgICAgICAg
IGxsdm0tPkFkZFR5cGVCYXNlZEFsaWFzQW5hbHlzaXNQYXNzKG1vZHVsZVBhc3Nlcyk7CisgICAg
ICAgICAgICBsbHZtLT5BZGRHVk5QYXNzKG1vZHVsZVBhc3Nlcyk7CisgICAgICAgICAgICBsbHZt
LT5BZGRDRkdTaW1wbGlmaWNhdGlvblBhc3MobW9kdWxlUGFzc2VzKTsKKyAgICAgICAgICAgIGxs
dm0tPlJ1blBhc3NNYW5hZ2VyKG1vZHVsZVBhc3Nlcywgc3RhdGUubW9kdWxlKTsKKyAgICAgICAg
fSBlbHNlIHsKKyAgICAgICAgICAgIExMVk1QYXNzTWFuYWdlckJ1aWxkZXJSZWYgcGFzc0J1aWxk
ZXIgPSBsbHZtLT5QYXNzTWFuYWdlckJ1aWxkZXJDcmVhdGUoKTsKKyAgICAgICAgICAgIGxsdm0t
PlBhc3NNYW5hZ2VyQnVpbGRlclNldE9wdExldmVsKHBhc3NCdWlsZGVyLCBPcHRpb25zOjpsbHZt
T3B0aW1pemF0aW9uTGV2ZWwoKSk7CisgICAgICAgICAgICBsbHZtLT5QYXNzTWFuYWdlckJ1aWxk
ZXJTZXRTaXplTGV2ZWwocGFzc0J1aWxkZXIsIE9wdGlvbnM6Omxsdm1TaXplTGV2ZWwoKSk7Cisg
ICAgICAgIAorICAgICAgICAgICAgZnVuY3Rpb25QYXNzZXMgPSBsbHZtLT5DcmVhdGVGdW5jdGlv
blBhc3NNYW5hZ2VyRm9yTW9kdWxlKHN0YXRlLm1vZHVsZSk7CisgICAgICAgICAgICBtb2R1bGVQ
YXNzZXMgPSBsbHZtLT5DcmVhdGVQYXNzTWFuYWdlcigpOworICAgICAgICAKKyAgICAgICAgICAg
IGxsdm0tPkFkZFRhcmdldERhdGEobGx2bS0+R2V0RXhlY3V0aW9uRW5naW5lVGFyZ2V0RGF0YShl
bmdpbmUpLCBtb2R1bGVQYXNzZXMpOworICAgICAgICAKKyAgICAgICAgICAgIGxsdm0tPlBhc3NN
YW5hZ2VyQnVpbGRlclBvcHVsYXRlRnVuY3Rpb25QYXNzTWFuYWdlcihwYXNzQnVpbGRlciwgZnVu
Y3Rpb25QYXNzZXMpOworICAgICAgICAgICAgbGx2bS0+UGFzc01hbmFnZXJCdWlsZGVyUG9wdWxh
dGVNb2R1bGVQYXNzTWFuYWdlcihwYXNzQnVpbGRlciwgbW9kdWxlUGFzc2VzKTsKKyAgICAgICAg
CisgICAgICAgICAgICBsbHZtLT5QYXNzTWFuYWdlckJ1aWxkZXJEaXNwb3NlKHBhc3NCdWlsZGVy
KTsKKyAgICAgICAgCisgICAgICAgICAgICBsbHZtLT5Jbml0aWFsaXplRnVuY3Rpb25QYXNzTWFu
YWdlcihmdW5jdGlvblBhc3Nlcyk7CisgICAgICAgICAgICBmb3IgKExWYWx1ZSBmdW5jdGlvbiA9
IGxsdm0tPkdldEZpcnN0RnVuY3Rpb24oc3RhdGUubW9kdWxlKTsgZnVuY3Rpb247IGZ1bmN0aW9u
ID0gbGx2bS0+R2V0TmV4dEZ1bmN0aW9uKGZ1bmN0aW9uKSkKKyAgICAgICAgICAgICAgICBsbHZt
LT5SdW5GdW5jdGlvblBhc3NNYW5hZ2VyKGZ1bmN0aW9uUGFzc2VzLCBmdW5jdGlvbik7CisgICAg
ICAgICAgICBsbHZtLT5GaW5hbGl6ZUZ1bmN0aW9uUGFzc01hbmFnZXIoZnVuY3Rpb25QYXNzZXMp
OworICAgICAgICAKKyAgICAgICAgICAgIGxsdm0tPlJ1blBhc3NNYW5hZ2VyKG1vZHVsZVBhc3Nl
cywgc3RhdGUubW9kdWxlKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChERkc6OnNob3VsZFNo
b3dEaXNhc3NlbWJseSgpIHx8IERGRzo6dmVyYm9zZUNvbXBpbGF0aW9uRW5hYmxlZCgpKQorICAg
ICAgICAgICAgc3RhdGUuZHVtcFN0YXRlKCJhZnRlciBvcHRpbWl6YXRpb24iKTsKKyAgICAKKyAg
ICAgICAgLy8gRklYTUU6IE5lZWQgdG8gYWRkIHN1cHBvcnQgZm9yIHRoZSBjYXNlIHdoZXJlIEpJ
VCBtZW1vcnkgYWxsb2NhdGlvbiBmYWlsZWQuCisgICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTM2MjAKKyAgICAgICAgc3RhdGUuZ2VuZXJhdGVkRnVu
Y3Rpb24gPSByZWludGVycHJldF9jYXN0PEdlbmVyYXRlZEZ1bmN0aW9uPihsbHZtLT5HZXRQb2lu
dGVyVG9HbG9iYWwoZW5naW5lLCBzdGF0ZS5mdW5jdGlvbikpOworICAgICAgICBpZiAoZnVuY3Rp
b25QYXNzZXMpCisgICAgICAgICAgICBsbHZtLT5EaXNwb3NlUGFzc01hbmFnZXIoZnVuY3Rpb25Q
YXNzZXMpOworICAgICAgICBsbHZtLT5EaXNwb3NlUGFzc01hbmFnZXIobW9kdWxlUGFzc2VzKTsK
KyAgICAgICAgbGx2bS0+RGlzcG9zZUV4ZWN1dGlvbkVuZ2luZShlbmdpbmUpOworICAgIH0KIAog
ICAgIGlmIChzaG91bGRTaG93RGlzYXNzZW1ibHkoKSkgewogICAgICAgICBmb3IgKHVuc2lnbmVk
IGkgPSAwOyBpIDwgc3RhdGUuaml0Q29kZS0+aGFuZGxlcygpLnNpemUoKTsgKytpKSB7CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExpbmsuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTGluay5jcHAJKHJldmlzaW9uIDE2Mzc1MikKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTGluay5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTMwLDcgKzMwLDYgQEAKIAogI2luY2x1ZGUgIkFyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzLmgi
CiAjaW5jbHVkZSAiQ0NhbGxIZWxwZXJzLmgiCi0jaW5jbHVkZSAiQ2FsbEZyYW1lSW5saW5lcy5o
IgogI2luY2x1ZGUgIkNvZGVCbG9ja1dpdGhKSVRUeXBlLmgiCiAjaW5jbHVkZSAiREZHQ29tbW9u
LmgiCiAjaW5jbHVkZSAiRlRMSklUQ29kZS5oIgpAQCAtMzgsNiArMzcsNyBAQAogI2luY2x1ZGUg
IkpJVFN0dWJzLmgiCiAjaW5jbHVkZSAiTExWTUFQSS5oIgogI2luY2x1ZGUgIkxpbmtCdWZmZXIu
aCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiUHJvZmlsZXJDb21waWxhdGlv
bi5oIgogI2luY2x1ZGUgIlZpcnR1YWxSZWdpc3Rlci5oIgogCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZnRsL0ZUTE9TUkV4aXRDb21waWxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPU1JFeGl0Q29tcGlsZXIuY3BwCShyZXZpc2lvbiAxNjM3
NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE9TUkV4aXRDb21waWxlci5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJGVExKSVRDb2RlLmgi
CiAjaW5jbHVkZSAiRlRMT1NSRXhpdC5oIgogI2luY2x1ZGUgIkZUTFNhdmVSZXN0b3JlLmgiCisj
aW5jbHVkZSAiTGlua0J1ZmZlci5oIgogI2luY2x1ZGUgIk1heEZyYW1lRXh0ZW50Rm9yU2xvd1Bh
dGhDYWxsLmgiCiAjaW5jbHVkZSAiT3BlcmFuZHNJbmxpbmVzLmgiCiAjaW5jbHVkZSAiT3BlcmF0
aW9ucy5oIgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExTbG93UGF0aENhbGwu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMU2xvd1BhdGhD
YWxsLmNwcAkocmV2aXNpb24gMTYzNzUyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9G
VExTbG93UGF0aENhbGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw5ICsyOSw5IEBACiAjaWYg
RU5BQkxFKEZUTF9KSVQpCiAKICNpbmNsdWRlICJDQ2FsbEhlbHBlcnMuaCIKLSNpbmNsdWRlICJD
YWxsRnJhbWVJbmxpbmVzLmgiCiAjaW5jbHVkZSAiRlRMU3RhdGUuaCIKICNpbmNsdWRlICJHUFJJ
bmZvLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNw
YWNlIEZUTCB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMVGh1bmtzLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFRodW5rcy5jcHAJ
KHJldmlzaW9uIDE2Mzc1MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMVGh1bmtz
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTI3LDcgKzEyNyw3IEBAIE1hY3JvQXNzZW1ibGVyQ29k
ZVJlZiBzbG93UGF0aENhbGxUaHVua0cKICAgICBqaXQucHJlc2VydmVSZXR1cm5BZGRyZXNzQWZ0
ZXJDYWxsKEdQUkluZm86Om5vbkFyZ0dQUjApOwogICAgIGppdC5zdG9yZVB0cihHUFJJbmZvOjpu
b25BcmdHUFIwLCBBc3NlbWJseUhlbHBlcnM6OkFkZHJlc3MoTWFjcm9Bc3NlbWJsZXI6OnN0YWNr
UG9pbnRlclJlZ2lzdGVyLCBrZXkub2Zmc2V0KCkpKTsKICAgICAKLSAgICBKSVRDb21waWxlcjo6
Q2FsbCBjYWxsID0gaml0LmNhbGwoKTsKKyAgICBBc3NlbWJseUhlbHBlcnM6OkNhbGwgY2FsbCA9
IGppdC5jYWxsKCk7CiAKICAgICAvLyBGSVhNRTogQ1N0YWNrIC0gTmVlZCB0byBkbyBzb21ldGhp
bmcgbGlrZSBqaXQuZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAgICBqaXQubG9hZFB0cihBc3Nl
bWJseUhlbHBlcnM6OkFkZHJlc3MoTWFjcm9Bc3NlbWJsZXI6OnN0YWNrUG9pbnRlclJlZ2lzdGVy
LCBrZXkub2Zmc2V0KCkpLCBHUFJJbmZvOjpub25QcmVzZXJ2ZWROb25SZXR1cm5HUFIpOwpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvU2xvdFZpc2l0b3IuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TbG90VmlzaXRvci5oCShyZXZpc2lvbiAxNjM3
NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TbG90VmlzaXRvci5oCSh3b3JraW5n
IGNvcHkpCkBAIC02OCw2ICs2OCw5IEBAIHB1YmxpYzoKICAgICB2b2lkIGFwcGVuZFVuYmFycmll
cmVkVmFsdWUoSlNWYWx1ZSopOwogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CiAgICAgdm9pZCBh
cHBlbmRVbmJhcnJpZXJlZFdlYWsoV2VhazxUPiopOworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+
CisgICAgdm9pZCBhcHBlbmRVbmJhcnJpZXJlZFJlYWRPbmx5UG9pbnRlcihUKik7CisgICAgdm9p
ZCBhcHBlbmRVbmJhcnJpZXJlZFJlYWRPbmx5VmFsdWUoSlNWYWx1ZSk7CiAgICAgdm9pZCB1bmNv
bmRpdGlvbmFsbHlBcHBlbmQoSlNDZWxsKik7CiAgICAgCiAgICAgdm9pZCBhZGRPcGFxdWVSb290
KHZvaWQqKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1Nsb3RWaXNpdG9ySW5s
aW5lcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1Nsb3RWaXNp
dG9ySW5saW5lcy5oCShyZXZpc2lvbiAxNjM3NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aGVhcC9TbG90VmlzaXRvcklubGluZXMuaAkod29ya2luZyBjb3B5KQpAQCAtNTEsNiArNTEsMTIg
QEAgaW5saW5lIHZvaWQgU2xvdFZpc2l0b3I6OmFwcGVuZFVuYmFycmllcgogICAgIGludGVybmFs
QXBwZW5kKHNsb3QsIGNlbGwpOwogfQogCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPgoraW5saW5lIHZv
aWQgU2xvdFZpc2l0b3I6OmFwcGVuZFVuYmFycmllcmVkUmVhZE9ubHlQb2ludGVyKFQqIGNlbGwp
Cit7CisgICAgaW50ZXJuYWxBcHBlbmQoMCwgY2VsbCk7Cit9CisKIEFMV0FZU19JTkxJTkUgdm9p
ZCBTbG90VmlzaXRvcjo6YXBwZW5kKEpTVmFsdWUqIHNsb3QpCiB7CiAgICAgQVNTRVJUKHNsb3Qp
OwpAQCAtNjMsNiArNjksMTEgQEAgQUxXQVlTX0lOTElORSB2b2lkIFNsb3RWaXNpdG9yOjphcHBl
bmRVbgogICAgIGludGVybmFsQXBwZW5kKHNsb3QsICpzbG90KTsKIH0KIAorQUxXQVlTX0lOTElO
RSB2b2lkIFNsb3RWaXNpdG9yOjphcHBlbmRVbmJhcnJpZXJlZFJlYWRPbmx5VmFsdWUoSlNWYWx1
ZSB2YWx1ZSkKK3sKKyAgICBpbnRlcm5hbEFwcGVuZCgwLCB2YWx1ZSk7Cit9CisKIEFMV0FZU19J
TkxJTkUgdm9pZCBTbG90VmlzaXRvcjo6YXBwZW5kKEpTQ2VsbCoqIHNsb3QpCiB7CiAgICAgQVNT
RVJUKHNsb3QpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9TY3JpcHRD
YWxsU3RhY2tGYWN0b3J5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW5zcGVjdG9yL1NjcmlwdENhbGxTdGFja0ZhY3RvcnkuY3BwCShyZXZpc2lvbiAxNjM3NTIpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL1NjcmlwdENhbGxTdGFja0ZhY3Rvcnku
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw5ICszNSw5IEBACiAKICNpbmNsdWRlICJBcmdMaXN0
LmgiCiAjaW5jbHVkZSAiQ2FsbEZyYW1lLmgiCi0jaW5jbHVkZSAiQ2FsbEZyYW1lSW5saW5lcy5o
IgogI2luY2x1ZGUgIkpTQ0pTVmFsdWUuaCIKICNpbmNsdWRlICJKU0Z1bmN0aW9uLmgiCisjaW5j
bHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIlNjcmlwdEFyZ3VtZW50cy5oIgogI2luY2x1
ZGUgIlNjcmlwdENhbGxGcmFtZS5oIgogI2luY2x1ZGUgIlNjcmlwdENhbGxTdGFjay5oIgpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL1Byb3RvQ2FsbEZyYW1lLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvUHJvdG9DYWxs
RnJhbWUuY3BwCShyZXZpc2lvbiAxNjM3NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50
ZXJwcmV0ZXIvUHJvdG9DYWxsRnJhbWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw2ICsyNyw3
IEBACiAjaW5jbHVkZSAiUHJvdG9DYWxsRnJhbWUuaCIKIAogI2luY2x1ZGUgIkNvZGVCbG9jay5o
IgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJTdGFja0FsaWdubWVudC5oIgog
CiBuYW1lc3BhY2UgSlNDIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklURXhj
ZXB0aW9ucy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRF
eGNlcHRpb25zLmNwcAkocmV2aXNpb24gMTYzNzUyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRFeGNlcHRpb25zLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcsNyArMjcsNiBAQAog
I2luY2x1ZGUgIkpJVEV4Y2VwdGlvbnMuaCIKIAogI2luY2x1ZGUgIkNhbGxGcmFtZS5oIgotI2lu
Y2x1ZGUgIkNhbGxGcmFtZUlubGluZXMuaCIKICNpbmNsdWRlICJDb2RlQmxvY2suaCIKICNpbmNs
dWRlICJJbnRlcnByZXRlci5oIgogI2luY2x1ZGUgIkpJVFN0dWJzLmgiCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVElubGluZXMuaAkocmV2aXNpb24gMTYzNzUyKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDcg
KzI5LDcgQEAKIAogI2lmIEVOQUJMRShKSVQpCiAKLSNpbmNsdWRlICJDYWxsRnJhbWVJbmxpbmVz
LmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIApJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwCShyZXZpc2lvbiAx
NjM3NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0yOSw3ICsyOSw2IEBACiAKICNpbmNsdWRlICJBcmd1bWVudHMuaCIK
ICNpbmNsdWRlICJBcnJheUNvbnN0cnVjdG9yLmgiCi0jaW5jbHVkZSAiQ2FsbEZyYW1lSW5saW5l
cy5oIgogI2luY2x1ZGUgIkRGR0NvbXBpbGF0aW9uTW9kZS5oIgogI2luY2x1ZGUgIkRGR0RyaXZl
ci5oIgogI2luY2x1ZGUgIkRGR09TUkVudHJ5LmgiCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L1JlcGF0Y2guY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvUmVwYXRjaC5jcHAJKHJldmlzaW9uIDE2Mzc1MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvUmVwYXRjaC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5LDcgKzI5LDYgQEAKICNpZiBF
TkFCTEUoSklUKQogCiAjaW5jbHVkZSAiQ0NhbGxIZWxwZXJzLmgiCi0jaW5jbHVkZSAiQ2FsbEZy
YW1lSW5saW5lcy5oIgogI2luY2x1ZGUgIkRGR09wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJERkdT
cGVjdWxhdGl2ZUpJVC5oIgogI2luY2x1ZGUgIkZUTFRodW5rcy5oIgpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVHZW5lcmF0b3IuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlR2VuZXJhdG9yLmNwcAkocmV2
aXNpb24gMTYzNzUyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVH
ZW5lcmF0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw3ICsyNyw2IEBACiAjaW5jbHVkZSAi
UHJvZmlsZUdlbmVyYXRvci5oIgogCiAjaW5jbHVkZSAiQ2FsbEZyYW1lLmgiCi0jaW5jbHVkZSAi
Q2FsbEZyYW1lSW5saW5lcy5oIgogI2luY2x1ZGUgIkNvZGVCbG9jay5oIgogI2luY2x1ZGUgIkpT
R2xvYmFsT2JqZWN0LmgiCiAjaW5jbHVkZSAiSlNTdHJpbmdSZWYuaCIKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ3VtZW50cy5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJndW1lbnRzLmNwcAkocmV2aXNpb24gMTYzNzUyKQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJndW1lbnRzLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMjUsNyArMjUsNiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkFy
Z3VtZW50cy5oIgogCi0jaW5jbHVkZSAiQ2FsbEZyYW1lSW5saW5lcy5oIgogI2luY2x1ZGUgIkpT
QWN0aXZhdGlvbi5oIgogI2luY2x1ZGUgIkpTQXJndW1lbnRzSXRlcmF0b3IuaCIKICNpbmNsdWRl
ICJKU0Z1bmN0aW9uLmgiCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1
bWVudHNJdGVyYXRvclByb3RvdHlwZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvQXJndW1lbnRzSXRlcmF0b3JQcm90b3R5cGUuY3BwCShyZXZpc2lvbiAx
NjM3NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHNJdGVyYXRv
clByb3RvdHlwZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRl
ICJBcmd1bWVudHNJdGVyYXRvclByb3RvdHlwZS5oIgogCiAjaW5jbHVkZSAiSlNBcmd1bWVudHNJ
dGVyYXRvci5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQYXRoc0V4Y2Vw
dGlvbnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Nv
bW1vblNsb3dQYXRoc0V4Y2VwdGlvbnMuY3BwCShyZXZpc2lvbiAxNjM3NTIpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25TbG93UGF0aHNFeGNlcHRpb25zLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIkNvZGVCbG9jay5oIgogI2lu
Y2x1ZGUgIkpJVEV4Y2VwdGlvbnMuaCIKICNpbmNsdWRlICJMTEludENvbW1vbi5oIgorI2luY2x1
ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBDb21tb25TbG93
UGF0aHMgewogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FyZ3VtZW50
c0l0ZXJhdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0FyZ3VtZW50c0l0ZXJhdG9yLmNwcAkocmV2aXNpb24gMTYzNzUyKQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcmd1bWVudHNJdGVyYXRvci5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJKU0FyZ3VtZW50c0l0ZXJhdG9yLmgiCiAK
ICNpbmNsdWRlICJBcmd1bWVudHMuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAKIG5hbWVz
cGFjZSBKU0MgewogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0
aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1
bmN0aW9uLmNwcAkocmV2aXNpb24gMTYzNzUyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNGdW5jdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5LDcgKzI5LDYgQEAKICNp
bmNsdWRlICJDb2RlQmxvY2suaCIKICNpbmNsdWRlICJDb21tb25JZGVudGlmaWVycy5oIgogI2lu
Y2x1ZGUgIkNhbGxGcmFtZS5oIgotI2luY2x1ZGUgIkNhbGxGcmFtZUlubGluZXMuaCIKICNpbmNs
dWRlICJFeGNlcHRpb25IZWxwZXJzLmgiCiAjaW5jbHVkZSAiRnVuY3Rpb25Qcm90b3R5cGUuaCIK
ICNpbmNsdWRlICJHZXR0ZXJTZXR0ZXIuaCIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTR2xvYmFsT2JqZWN0RnVuY3Rpb25zLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5jcHAJKHJldmlz
aW9uIDE2Mzc1MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2Jq
ZWN0RnVuY3Rpb25zLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjYsNyArMjYsNiBAQAogI2luY2x1
ZGUgIkpTR2xvYmFsT2JqZWN0RnVuY3Rpb25zLmgiCiAKICNpbmNsdWRlICJDYWxsRnJhbWUuaCIK
LSNpbmNsdWRlICJDYWxsRnJhbWVJbmxpbmVzLmgiCiAjaW5jbHVkZSAiSW50ZXJwcmV0ZXIuaCIK
ICNpbmNsdWRlICJKU0Z1bmN0aW9uLmgiCiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1
Y3Rvci5jcHAJKHJldmlzaW9uIDE2Mzc1MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL09iamVjdENvbnN0cnVjdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjIsNyArMjIsNiBA
QAogI2luY2x1ZGUgIk9iamVjdENvbnN0cnVjdG9yLmgiCiAKICNpbmNsdWRlICJCdXR0ZXJmbHlJ
bmxpbmVzLmgiCi0jaW5jbHVkZSAiQ2FsbEZyYW1lSW5saW5lcy5oIgogI2luY2x1ZGUgIkNvcGll
ZFNwYWNlSW5saW5lcy5oIgogI2luY2x1ZGUgIkVycm9yLmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9u
SGVscGVycy5oIgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3BlcmF0aW9u
cy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wZXJhdGlv
bnMuaAkocmV2aXNpb24gMTYzNzUyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
T3BlcmF0aW9ucy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDYgKzEsNiBAQAogLyoKICAqICBDb3B5
cmlnaHQgKEMpIDE5OTktMjAwMCBIYXJyaSBQb3J0ZW4gKHBvcnRlbkBrZGUub3JnKQotICogIENv
cHlyaWdodCAoQykgMjAwMiwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSwgMjAxMyBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiAgQ29weXJpZ2h0IChDKSAyMDAyLCAyMDA1
LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5LCAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqCiAgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0yMiw2ICsyMiw3IEBACiAjaWZu
ZGVmIE9wZXJhdGlvbnNfaAogI2RlZmluZSBPcGVyYXRpb25zX2gKIAorI2luY2x1ZGUgIkNhbGxG
cmFtZUlubGluZXMuaCIKICNpbmNsdWRlICJFeGNlcHRpb25IZWxwZXJzLmgiCiAjaW5jbHVkZSAi
R0NJbmNvbWluZ1JlZkNvdW50ZWRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiSW50ZXJwcmV0ZXIuaCIK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5jcHAJKHJldmlzaW9uIDE2Mzc1MikK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMzIsNyArMzIsNiBAQAogI2luY2x1ZGUgIkFyZ0xpc3QuaCIKICNpbmNsdWRlICJBcml0eUNo
ZWNrRmFpbFJldHVyblRodW5rcy5oIgogI2luY2x1ZGUgIkFycmF5QnVmZmVyTmV1dGVyaW5nV2F0
Y2hwb2ludC5oIgotI2luY2x1ZGUgIkNhbGxGcmFtZUlubGluZXMuaCIKICNpbmNsdWRlICJDb2Rl
QmxvY2suaCIKICNpbmNsdWRlICJDb2RlQ2FjaGUuaCIKICNpbmNsdWRlICJDb21tb25JZGVudGlm
aWVycy5oIgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>223644</attachid>
            <date>2014-02-09 13:00:40 -0800</date>
            <delta_ts>2014-02-09 13:08:49 -0800</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>80860</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTYzNzUyKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEwNCBA
QAorMjAxNC0wMi0wOSAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgorCisgICAgICAg
IEdDIGJsb2NrcyBvbiBGVEwgYW5kIHRoZW4gYmFkbmVzcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI4MjkxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisgICAgICAgIAorICAgICAgICBJbnRyb2R1Y2UgdGhlIG5vdGlvbiBv
ZiBhIERGRzo6U2FmZXBvaW50LCB3aGljaCBhbGxvd3MgeW91IHRvIHVubG9jayB0aGUgcmlnaHRU
b1J1bgorICAgICAgICBtdXRleCBmb3IgeW91ciBKSVQgdGhyZWFkLCB3aGlsZSBzdXBwbHlpbmcg
dGhlIEdDIHdpdGggYWxsIG9mIHRoZSBpbmZvcm1hdGlvbiBpdCB3b3VsZAorICAgICAgICBuZWVk
IHRvIHNjYW4geW91IGF0IHRoYXQgbW9tZW50IGluIHRpbWUuIFRoZSBkZWZhdWx0IHdheSBvZiB1
c2luZyB0aGlzIGlzCisgICAgICAgIERGRzo6R3JhcGhTYWZlcG9pbnQsIHdoZXJlIHlvdSBqdXN0
IHN1cHBseSB0aGUgR3JhcGguIFRoZXJlJ3MgYSBsb3Qgb2YgbWFjaGluZXJ5IGluCisgICAgICAg
IHRoaXMgcGF0Y2gganVzdCB0byBtYWtlIHRoZSBHcmFwaCBzY2FubmFibGUuCisgICAgICAgIAor
ICAgICAgICBXZSB0aGVuIHVzZSBERkc6OkdyYXBoU2FmZXBvaW50IGluIGp1c3QgdHdvIHBsYWNl
cyBmb3Igbm93OiAoMSkgd2hpbGUgaW5pdGlhbGl6aW5nIExMVk0KKyAgICAgICAgYW5kICgyKSB3
aGlsZSBpbnZva2luZyBMTFZNJyBvcHRpbWl6ZXIgYW5kIGJhY2tlbmQuCisgICAgICAgIAorICAg
ICAgICBNYWtpbmcgdGhpcyBjaGFuZ2Ugd2FzIGRpZmZpY3VsdCBiZWNhdXNlIEkgcmFuIGludG8g
dGhlIGxpbWl0cyBvZiBvdXIgbGFjayBvZiBoZWFkZXIKKyAgICAgICAgZmlsZSBkaXNjaXBsaW5l
LiBFdmVuIHRob3VnaCBPcGVyYXRpb25zLmggaXMgbWVhbnQgdG8gYmUgdGhlIHRoaW5nIHRoYXQg
aXMgb25seQorICAgICAgICBpbmNsdWRlZCBmcm9tIC5jcHAgZmlsZXMsIGl0IHdhcyBpbmNsdWRl
ZCBmcm9tIENvZGVCbG9jay5oLiBTaW1pbGFybHksCisgICAgICAgIENhbGxGcmFtZUlubGluZXMu
aCB3YXMgaW5jbHVkZWQgZnJvbSBERkdKSVRDb21waWxlci5oLiBUaGVuLCBDYWxsTGlua0luZm8u
aCBpbmNsdWRlZAorICAgICAgICBERkdHcmFwaC5oLiBJdCB3YXMgYSB0b3RhbCBtZXNzLiBJIHVu
cmF2ZWxlZCB0aGlzIG1lc3MgdG8gZ2V0IG15IGNvZGUgdG8gYnVpbGQuCisKKyAgICAgICAgKiBB
UEkvSlNDb250ZXh0UmVmLmNwcDoKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAg
KiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnZjeHByb2ov
SmF2YVNjcmlwdENvcmUudmN4cHJvajoKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGFzc2VtYmxlci9MaW5rQnVmZmVyLmNwcDoK
KyAgICAgICAgKiBieXRlY29kZS9Db2RlQmxvY2suY3BwOgorICAgICAgICAqIGJ5dGVjb2RlL0Nv
ZGVCbG9jay5oOgorICAgICAgICAqIGJ5dGVjb2RlL1Byb2ZpbGVkQ29kZUJsb2NrSmV0dGlzb25p
bmdXYXRjaHBvaW50LmNwcDoKKyAgICAgICAgKiBkZWJ1Z2dlci9EZWJ1Z2dlckNhbGxGcmFtZS5j
cHA6CisgICAgICAgICogZGZnL0RGR0Rlc2lyZWRUcmFuc2l0aW9ucy5jcHA6CisgICAgICAgICog
ZGZnL0RGR0RyaXZlci5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Y29tcGlsZUltcGwpOgorICAg
ICAgICAqIGRmZy9ERkdHcmFwaC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6R3JhcGg6OnZpc2l0
Q2hpbGRyZW4pOgorICAgICAgICAqIGRmZy9ERkdHcmFwaC5oOgorICAgICAgICAqIGRmZy9ERkdH
cmFwaFNhZmVwb2ludC5jcHA6IEFkZGVkLgorICAgICAgICAoSlNDOjpERkc6OkdyYXBoU2FmZXBv
aW50OjpHcmFwaFNhZmVwb2ludCk6CisgICAgICAgIChKU0M6OkRGRzo6R3JhcGhTYWZlcG9pbnQ6
On5HcmFwaFNhZmVwb2ludCk6CisgICAgICAgICogZGZnL0RGR0dyYXBoU2FmZXBvaW50Lmg6IEFk
ZGVkLgorICAgICAgICAqIGRmZy9ERkdKSVRDb2RlLmNwcDoKKyAgICAgICAgKiBkZmcvREZHSklU
Q29tcGlsZXIuY3BwOgorICAgICAgICAqIGRmZy9ERkdKSVRDb21waWxlci5oOgorICAgICAgICAq
IGRmZy9ERkdPU1JFeGl0Q29tcGlsZXJDb21tb24uY3BwOgorICAgICAgICAqIGRmZy9ERkdPcGVy
YXRpb25zLmNwcDoKKyAgICAgICAgKiBkZmcvREZHT3BlcmF0aW9ucy5oOgorICAgICAgICAqIGRm
Zy9ERkdQbGFuLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpQbGFuOjpjb21waWxlSW5UaHJlYWQp
OgorICAgICAgICAoSlNDOjpERkc6OlBsYW46OmNvbXBpbGVJblRocmVhZEltcGwpOgorICAgICAg
ICAqIGRmZy9ERkdQbGFuLmg6CisgICAgICAgICogZGZnL0RGR1NhZmVwb2ludC5jcHA6IEFkZGVk
LgorICAgICAgICAoSlNDOjpERkc6OlNhZmVwb2ludDo6U2FmZXBvaW50KToKKyAgICAgICAgKEpT
Qzo6REZHOjpTYWZlcG9pbnQ6On5TYWZlcG9pbnQpOgorICAgICAgICAoSlNDOjpERkc6OlNhZmVw
b2ludDo6YWRkKToKKyAgICAgICAgKEpTQzo6REZHOjpTYWZlcG9pbnQ6OmJlZ2luKToKKyAgICAg
ICAgKEpTQzo6REZHOjpTYWZlcG9pbnQ6OnZpc2l0Q2hpbGRyZW4pOgorICAgICAgICAqIGRmZy9E
RkdTYWZlcG9pbnQuaDogQWRkZWQuCisgICAgICAgICogZGZnL0RGR1NjYW5uYWJsZS5oOiBBZGRl
ZC4KKyAgICAgICAgKEpTQzo6REZHOjpTY2FubmFibGU6OlNjYW5uYWJsZSk6CisgICAgICAgIChK
U0M6OkRGRzo6U2Nhbm5hYmxlOjp+U2Nhbm5hYmxlKToKKyAgICAgICAgKiBkZmcvREZHVGhyZWFk
RGF0YS5jcHA6IEFkZGVkLgorICAgICAgICAoSlNDOjpERkc6OlRocmVhZERhdGE6OlRocmVhZERh
dGEpOgorICAgICAgICAoSlNDOjpERkc6OlRocmVhZERhdGE6On5UaHJlYWREYXRhKToKKyAgICAg
ICAgKiBkZmcvREZHVGhyZWFkRGF0YS5oOiBBZGRlZC4KKyAgICAgICAgKiBkZmcvREZHVGh1bmtz
LmNwcDoKKyAgICAgICAgKiBkZmcvREZHV29ya2xpc3QuY3BwOgorICAgICAgICAoSlNDOjpERkc6
OldvcmtsaXN0OjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgIChKU0M6OkRGRzo6V29ya2xpc3Q6
OnZpc2l0Q2hpbGRyZW4pOgorICAgICAgICAoSlNDOjpERkc6OldvcmtsaXN0OjpydW5UaHJlYWQp
OgorICAgICAgICAqIGRmZy9ERkdXb3JrbGlzdC5oOgorICAgICAgICAqIGZ0bC9GVExDb21waWxl
LmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpjb21waWxlKToKKyAgICAgICAgKiBmdGwvRlRMTGlu
ay5jcHA6CisgICAgICAgICogZnRsL0ZUTE9TUkV4aXRDb21waWxlci5jcHA6CisgICAgICAgICog
ZnRsL0ZUTFNsb3dQYXRoQ2FsbC5jcHA6CisgICAgICAgICogZnRsL0ZUTFRodW5rcy5jcHA6Cisg
ICAgICAgIChKU0M6OkZUTDo6c2xvd1BhdGhDYWxsVGh1bmtHZW5lcmF0b3IpOgorICAgICAgICAq
IGhlYXAvU2xvdFZpc2l0b3IuaDoKKyAgICAgICAgKiBoZWFwL1Nsb3RWaXNpdG9ySW5saW5lcy5o
OgorICAgICAgICAoSlNDOjpTbG90VmlzaXRvcjo6YXBwZW5kVW5iYXJyaWVyZWRSZWFkT25seVBv
aW50ZXIpOgorICAgICAgICAoSlNDOjpTbG90VmlzaXRvcjo6YXBwZW5kVW5iYXJyaWVyZWRSZWFk
T25seVZhbHVlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvU2NyaXB0Q2FsbFN0YWNrRmFjdG9yeS5j
cHA6CisgICAgICAgICogaW50ZXJwcmV0ZXIvUHJvdG9DYWxsRnJhbWUuY3BwOgorICAgICAgICAq
IGppdC9KSVRFeGNlcHRpb25zLmNwcDoKKyAgICAgICAgKiBqaXQvSklUSW5saW5lcy5oOgorICAg
ICAgICAqIGppdC9KSVRPcGVyYXRpb25zLmNwcDoKKyAgICAgICAgKiBqaXQvUmVwYXRjaC5jcHA6
CisgICAgICAgICoganNjLmNwcDoKKyAgICAgICAgKiBwcm9maWxlci9Qcm9maWxlR2VuZXJhdG9y
LmNwcDoKKyAgICAgICAgKiBydW50aW1lL0FyZ3VtZW50cy5jcHA6CisgICAgICAgICogcnVudGlt
ZS9Bcmd1bWVudHNJdGVyYXRvclByb3RvdHlwZS5jcHA6CisgICAgICAgICogcnVudGltZS9Db21t
b25TbG93UGF0aHNFeGNlcHRpb25zLmNwcDoKKyAgICAgICAgKiBydW50aW1lL0pTQXJndW1lbnRz
SXRlcmF0b3IuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvSlNGdW5jdGlvbi5jcHA6CisgICAgICAg
ICogcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5jcHA6CisgICAgICAgICogcnVudGlt
ZS9PYmplY3RDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgICogcnVudGltZS9PcGVyYXRpb25zLmg6
CisgICAgICAgICogcnVudGltZS9WTS5jcHA6CisKIDIwMTQtMDItMDkgIEFuZGVycyBDYXJsc3Nv
biAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAgICAgICBDb252ZXJ0IHNvbWUgSlNDIGNvZGUg
b3ZlciB0byBzdGQ6Om11dGV4CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0
cy50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0
CShyZXZpc2lvbiAxNjM3NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50
eHQJKHdvcmtpbmcgY29weSkKQEAgLTEzOCw2ICsxMzgsNyBAQCBzZXQoSmF2YVNjcmlwdENvcmVf
U09VUkNFUwogICAgIGRmZy9ERkdGbHVzaExpdmVuZXNzQW5hbHlzaXNQaGFzZS5jcHAKICAgICBk
ZmcvREZHRmx1c2hlZEF0LmNwcAogICAgIGRmZy9ERkdHcmFwaC5jcHAKKyAgICBkZmcvREZHR3Jh
cGhTYWZlcG9pbnQuY3BwCiAgICAgZGZnL0RGR0luUGxhY2VBYnN0cmFjdFN0YXRlLmNwcAogICAg
IGRmZy9ERkdJbnZhbGlkYXRpb25Qb2ludEluamVjdGlvblBoYXNlLmNwcAogICAgIGRmZy9ERkdK
SVRDb2RlLmNwcApAQCAtMTcyLDEyICsxNzMsMTQgQEAgc2V0KEphdmFTY3JpcHRDb3JlX1NPVVJD
RVMKICAgICBkZmcvREZHUmVzdXJyZWN0aW9uRm9yVmFsaWRhdGlvblBoYXNlLmNwcAogICAgIGRm
Zy9ERkdTU0FDb252ZXJzaW9uUGhhc2UuY3BwCiAgICAgZGZnL0RGR1NTQUxvd2VyaW5nUGhhc2Uu
Y3BwCisgICAgZGZnL0RGR1NhZmVwb2ludC5jcHAKICAgICBkZmcvREZHU3BlY3VsYXRpdmVKSVQu
Y3BwCiAgICAgZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCiAgICAgZGZnL0RGR1NwZWN1
bGF0aXZlSklUNjQuY3BwCiAgICAgZGZnL0RGR1N0YWNrTGF5b3V0UGhhc2UuY3BwCiAgICAgZGZn
L0RGR1N0b3JlQmFycmllckVsaXNpb25QaGFzZS5jcHAKICAgICBkZmcvREZHU3RyZW5ndGhSZWR1
Y3Rpb25QaGFzZS5jcHAKKyAgICBkZmcvREZHVGhyZWFkRGF0YS5jcHAKICAgICBkZmcvREZHVGh1
bmtzLmNwcAogICAgIGRmZy9ERkdUaWVyVXBDaGVja0luamVjdGlvblBoYXNlLmNwcAogICAgIGRm
Zy9ERkdUeXBlQ2hlY2tIb2lzdGluZ1BoYXNlLmNwcApJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0JKHJldmlzaW9uIDE2Mzc1MikKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCSh3b3JraW5nIGNvcHkpCkBAIC0zMDQsNiAr
MzA0LDggQEAgamF2YXNjcmlwdGNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdHZW5lcmF0aW9uSW5mby5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0dyYXBoLmNwcCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5oIFwK
KwlTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoU2FmZXBvaW50LmNwcCBcCisJU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaFNhZmVwb2ludC5oIFwKIAlTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0luUGxhY2VBYnN0cmFjdFN0YXRlLmNwcCBcCiAJU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdJblBsYWNlQWJzdHJhY3RTdGF0ZS5oIFwKIAlTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0lubGluZUNhY2hlV3JhcHBlci5oIFwKQEAgLTM3Nyw3ICszNzks
MTAgQEAgamF2YXNjcmlwdGNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdSZXN1cnJlY3Rpb25Gb3JWYWxpZGF0aW9uUGhhc2UuY3BwIFwKIAlTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1Jlc3VycmVjdGlvbkZvclZhbGlkYXRpb25QaGFzZS5oIFwKIAlT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaCBcCisJU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdTYWZlcG9pbnQuY3BwIFwKKwlTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1NhZmVwb2ludC5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nh
bmVTdHJpbmdHZXRCeVZhbFNsb3dQYXRoR2VuZXJhdG9yLmggXAorCVNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHU2Nhbm5hYmxlLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
U2NvcmVCb2FyZC5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NpbGVudFJlZ2lz
dGVyU2F2ZVBsYW4uaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTbG93UGF0aEdl
bmVyYXRvci5oIFwKQEAgLTM5OCw2ICs0MDMsOCBAQCBqYXZhc2NyaXB0Y29yZV9zb3VyY2VzICs9
IFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1N0cnVjdHVyZUFic3RyYWN0VmFsdWUu
aCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdUaWVyVXBDaGVja0luamVjdGlvblBo
YXNlLmNwcCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdUaWVyVXBDaGVja0luamVj
dGlvblBoYXNlLmggXAorCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVGhyZWFkRGF0YS5j
cHAgXAorCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVGhyZWFkRGF0YS5oIFwKIAlTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1RodW5rcy5jcHAgXAogCVNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHVGh1bmtzLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVG9G
VExEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2suY3BwIFwKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qc2MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2Mu
Y3BwCShyZXZpc2lvbiAxNjM3NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMjUsNyArMjUsNiBAQAogI2luY2x1ZGUgIkFQSVNoaW1zLmgiCiAj
aW5jbHVkZSAiQnV0dGVyZmx5SW5saW5lcy5oIgogI2luY2x1ZGUgIkJ5dGVjb2RlR2VuZXJhdG9y
LmgiCi0jaW5jbHVkZSAiQ2FsbEZyYW1lSW5saW5lcy5oIgogI2luY2x1ZGUgIkNvbXBsZXRpb24u
aCIKICNpbmNsdWRlICJDb3BpZWRTcGFjZUlubGluZXMuaCIKICNpbmNsdWRlICJFeGNlcHRpb25I
ZWxwZXJzLmgiCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ29udGV4dFJlZi5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NvbnRleHRSZWYu
Y3BwCShyZXZpc2lvbiAxNjM3NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ29u
dGV4dFJlZi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5LDcgKzI5LDYgQEAKIAogI2luY2x1ZGUg
IkFQSUNhc3QuaCIKICNpbmNsdWRlICJDYWxsRnJhbWUuaCIKLSNpbmNsdWRlICJDYWxsRnJhbWVJ
bmxpbmVzLmgiCiAjaW5jbHVkZSAiSW5pdGlhbGl6ZVRocmVhZGluZy5oIgogI2luY2x1ZGUgIkpT
Q2FsbGJhY2tPYmplY3QuaCIKICNpbmNsdWRlICJKU0NsYXNzUmVmLmgiCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hw
cm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52
Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2oJKHJldmlzaW9uIDE2Mzc1MikKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZj
eHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTM5Miw2ICszOTIsNyBAQAogICAgIDxDbENvbXBpbGUg
SW5jbHVkZT0iLi5cZGZnXERGR0ZsdXNoRm9ybWF0LmNwcCIgLz4KICAgICA8Q2xDb21waWxlIElu
Y2x1ZGU9Ii4uXGRmZ1xERkdGbHVzaExpdmVuZXNzQW5hbHlzaXNQaGFzZS5jcHAiIC8+CiAgICAg
PENsQ29tcGlsZSBJbmNsdWRlPSIuLlxkZmdcREZHR3JhcGguY3BwIiAvPgorICAgIDxDbENvbXBp
bGUgSW5jbHVkZT0iLi5cZGZnXERGR0dyYXBoU2FmZXBvaW50LmNwcCIgLz4KICAgICA8Q2xDb21w
aWxlIEluY2x1ZGU9Ii4uXGRmZ1xERkdJblBsYWNlQWJzdHJhY3RTdGF0ZS5jcHAiIC8+CiAgICAg
PENsQ29tcGlsZSBJbmNsdWRlPSIuLlxkZmdcREZHSW52YWxpZGF0aW9uUG9pbnRJbmplY3Rpb25Q
aGFzZS5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxkZmdcREZHSklUQ29kZS5j
cHAiIC8+CkBAIC00MjQsNiArNDI1LDcgQEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGRm
Z1xERkdQcmVkaWN0aW9uSW5qZWN0aW9uUGhhc2UuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5j
bHVkZT0iLi5cZGZnXERGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcCIgLz4KICAgICA8
Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGRmZ1xERkdSZXN1cnJlY3Rpb25Gb3JWYWxpZGF0aW9uUGhh
c2UuY3BwIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZGZnXERGR1NhZmVwb2ludC5j
cHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxkZmdcREZHU3BlY3VsYXRpdmVKSVQu
Y3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZGZnXERGR1NwZWN1bGF0aXZlSklU
MzJfNjQuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZGZnXERGR1NwZWN1bGF0
aXZlSklUNjQuY3BwIiAvPgpAQCAtNDMyLDYgKzQzNCw3IEBACiAgICAgPENsQ29tcGlsZSBJbmNs
dWRlPSIuLlxkZmdcREZHU3RhY2tMYXlvdXRQaGFzZS5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJ
bmNsdWRlPSIuLlxkZmdcREZHU3RvcmVCYXJyaWVyRWxpc2lvblBoYXNlLmNwcCIgLz4KICAgICA8
Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGRmZ1xERkdTdHJlbmd0aFJlZHVjdGlvblBoYXNlLmNwcCIg
Lz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGRmZ1xERkdUaHJlYWREYXRhLmNwcCIgLz4K
ICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGRmZ1xERkdUaHVua3MuY3BwIiAvPgogICAgIDxD
bENvbXBpbGUgSW5jbHVkZT0iLi5cZGZnXERGR1RpZXJVcENoZWNrSW5qZWN0aW9uUGhhc2UuY3Bw
IiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZGZnXERGR1RvRlRMRGVmZXJyZWRDb21w
aWxhdGlvbkNhbGxiYWNrLmNwcCIgLz4KQEAgLTkyOSw2ICs5MzIsNyBAQAogICAgIDxDbEluY2x1
ZGUgSW5jbHVkZT0iLi5cZGZnXERGR0dlbmVyYXRpb25JbmZvLmgiIC8+CiAgICAgPENsSW5jbHVk
ZSBJbmNsdWRlPSIuLlxkZmdcREZHR1BSSW5mby5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVk
ZT0iLi5cZGZnXERGR0dyYXBoLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxkZmdc
REZHR3JhcGhTYWZlcG9pbnQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGRmZ1xE
RkdJblBsYWNlQWJzdHJhY3RTdGF0ZS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
ZGZnXERGR0luc2VydGlvblNldC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZGZn
XERGR0ludmFsaWRhdGlvblBvaW50SW5qZWN0aW9uUGhhc2UuaCIgLz4KQEAgLTk2OSw3ICs5NzMs
OSBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZGZnXERGR1JlZ2lzdGVyU2V0LmgiIC8+
CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxkZmdcREZHUmVzdXJyZWN0aW9uRm9yVmFsaWRh
dGlvblBoYXNlLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxkZmdcREZHU2FmZVRv
RXhlY3V0ZS5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZGZnXERGR1NhZmVwb2lu
dC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZGZnXERGR1NhbmVTdHJpbmdHZXRC
eVZhbFNsb3dQYXRoR2VuZXJhdG9yLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxk
ZmdcREZHU2Nhbm5hYmxlLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxkZmdcREZH
U2NvcmVCb2FyZC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZGZnXERGR1NjcmF0
Y2hSZWdpc3RlckFsbG9jYXRvci5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZGZn
XERGR1NpbGVudFJlZ2lzdGVyU2F2ZVBsYW4uaCIgLz4KQEAgLTk4MSw2ICs5ODcsNyBAQAogICAg
IDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZGZnXERGR1N0b3JlQmFycmllckVsaXNpb25QaGFzZS5o
IiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZGZnXERGR1N0cmVuZ3RoUmVkdWN0aW9u
UGhhc2UuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGRmZ1xERkdTdHJ1Y3R1cmVB
YnN0cmFjdFZhbHVlLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxkZmdcREZHVGhy
ZWFkRGF0YS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZGZnXERGR1RodW5rcy5o
IiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZGZnXERGR1RpZXJVcENoZWNrSW5qZWN0
aW9uUGhhc2UuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGRmZ1xERkdUb0ZUTERl
ZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjay5oIiAvPgpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oJKHJldmlzaW9uIDE2Mzc1MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZh
U2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0y
MDIsNiArMjAyLDEzIEBACiAJCTBGMkU4OTJEMTZEMDJCQUYwMDlFNEZEMiAvKiBERkdNaW5pZmll
ZElELmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkI0
QjUxMDE2QjNBOTY0MDAzRjY5NkIgLyogREZHTWluaWZpZWRJRC5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGMkZDNzcyMTZFMTJGNzEwMDM4RDk3
NiAvKiBERkdEQ0VQaGFzZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwRjJGQzc3MDE2RTEyRjZGMDAzOEQ5NzYgLyogREZHRENFUGhhc2UuY3BwICov
OyB9OwogCQkwRjJGQzc3MzE2RTEyRjc0MDAzOEQ5NzYgLyogREZHRENFUGhhc2UuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMkZDNzcxMTZFMTJGNkYw
MDM4RDk3NiAvKiBERkdEQ0VQaGFzZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CisJCTBGMkZDQ0Y5MThBNjAwNzAwMDFBMjdGOCAvKiBERkdHcmFwaFNh
ZmVwb2ludC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwRjJGQ0NGMjE4QTYwMDcwMDAxQTI3RjggLyogREZHR3JhcGhTYWZlcG9pbnQuY3BwICovOyB9
OworCQkwRjJGQ0NGQTE4QTYwMDcwMDAxQTI3RjggLyogREZHR3JhcGhTYWZlcG9pbnQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMkZDQ0YzMThBNjAw
NzAwMDFBMjdGOCAvKiBERkdHcmFwaFNhZmVwb2ludC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTBGMkZDQ0ZCMThBNjAwNzAwMDFBMjdGOCAvKiBE
RkdTYWZlcG9pbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMEYyRkNDRjQxOEE2MDA3MDAwMUEyN0Y4IC8qIERGR1NhZmVwb2ludC5jcHAgKi87IH07
CisJCTBGMkZDQ0ZDMThBNjAwNzAwMDFBMjdGOCAvKiBERkdTYWZlcG9pbnQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMkZDQ0Y1MThBNjAwNzAwMDFB
MjdGOCAvKiBERkdTYWZlcG9pbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OworCQkwRjJGQ0NGRDE4QTYwMDcwMDAxQTI3RjggLyogREZHU2Nhbm5hYmxl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjJGQ0NG
NjE4QTYwMDcwMDAxQTI3RjggLyogREZHU2Nhbm5hYmxlLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMEYyRkNDRkUxOEE2MDA3MDAwMUEyN0Y4IC8q
IERGR1RocmVhZERhdGEuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMEYyRkNDRjcxOEE2MDA3MDAwMUEyN0Y4IC8qIERGR1RocmVhZERhdGEuY3BwICov
OyB9OworCQkwRjJGQ0NGRjE4QTYwMDcwMDAxQTI3RjggLyogREZHVGhyZWFkRGF0YS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYyRkNDRjgxOEE2MDA3
MDAwMUEyN0Y4IC8qIERGR1RocmVhZERhdGEuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjM0QjE0OTE2RDQyMDEwMDAxQ0RBNUEgLyogREZHVXNl
S2luZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAw
RjM0QjE0NzE2RDQyMDBFMDAxQ0RBNUEgLyogREZHVXNlS2luZC5jcHAgKi87IH07CiAJCTBGMzRC
MTRBMTZENDIwMTMwMDFDREE1QSAvKiBERkdVc2VLaW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjM0QjE0ODE2RDQyMDBFMDAxQ0RBNUEgLyogREZH
VXNlS2luZC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTBGMzRCMTRDMTZENDNFMEQwMDFDREE1QSAvKiBQb2x5bW9ycGhpY0FjY2Vzc1N0cnVjdHVy
ZUxpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBG
MzRCMTRCMTZENDNFMEMwMDFDREE1QSAvKiBQb2x5bW9ycGhpY0FjY2Vzc1N0cnVjdHVyZUxpc3Qu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTM1
MSw3ICsxMzU4LDcgQEAKIAkJQzI5ODFGREQxN0JBRkY0NDAwQTNCQzk4IC8qIERGR0Rlc2lyZWRX
cml0ZUJhcnJpZXJzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBDMjk4MUZEQjE3QkFGRjQ0MDBBM0JDOTggLyogREZHRGVzaXJlZFdyaXRlQmFycmllcnMu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDMjlF
Q0IwMzE4MDREMEVEMDBEMkNCQjQgLyogQ3VycmVudFRoaXNJbnNpZGVCbG9ja0dldHRlclRlc3Qu
bW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMjlFQ0Iw
MTE4MDREMEVEMDBEMkNCQjQgLyogQ3VycmVudFRoaXNJbnNpZGVCbG9ja0dldHRlclRlc3QubW0g
Ki87IH07CiAJCUMyQTdGNjg4MTYwNDMyRDQwMEY3NkI5OCAvKiBKU0Rlc3RydWN0aWJsZU9iamVj
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzJBN0Y2
ODcxNjA0MzJENDAwRjc2Qjk4IC8qIEpTRGVzdHJ1Y3RpYmxlT2JqZWN0LmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLSAgICAgICBDMkI2RDc1MzE4QTMz
NzkzMDA0QTkzMDEgLyogV3JpdGVCYXJyaWVySW5saW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzJCNkQ3NTIxOEEzMzc5MzAwNEE5MzAxIC8qIFdy
aXRlQmFycmllcklubGluZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OworCQlDMkI2RDc1MzE4QTMzNzkzMDA0QTkzMDEgLyogV3JpdGVCYXJyaWVySW5s
aW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzJC
NkQ3NTIxOEEzMzc5MzAwNEE5MzAxIC8qIFdyaXRlQmFycmllcklubGluZXMuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDMkI5MTZDMjE0REEwMTRF
MDBDQkFDODYgLyogTWFya2VkQWxsb2NhdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBDMkI5MTZDMTE0REEwMTRFMDBDQkFDODYgLyogTWFya2VkQWxs
b2NhdG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJQzJCOTE2QzUxNERBMDQwQzAwQ0JBQzg2IC8qIE1hcmtlZEFsbG9jYXRvci5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMkI5MTZDNDE0REEwNDBD
MDBDQkFDODYgLyogTWFya2VkQWxsb2NhdG9yLmNwcCAqLzsgfTsKIAkJQzJDMEY3Q0QxN0JCRkM1
QjAwNDY0RkU0IC8qIERGR0Rlc2lyZWRUcmFuc2l0aW9ucy5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMkMwRjdDQjE3QkJGQzVCMDA0NjRGRTQgLyog
REZHRGVzaXJlZFRyYW5zaXRpb25zLmNwcCAqLzsgfTsKQEAgLTE2NDQsNiArMTY1MSwxMyBAQAog
CQkwRjJCREM1MDE1MjI4RkZBMDBDRDg5MTAgLyogREZHVmFyaWFibGVFdmVudC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBERkdWYXJpYWJsZUV2ZW50LmNwcDsgcGF0
aCA9IGRmZy9ERkdWYXJpYWJsZUV2ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMEYyRkM3NzAxNkUxMkY2RjAwMzhEOTc2IC8qIERGR0RDRVBoYXNlLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IERGR0RDRVBoYXNlLmNwcDsgcGF0aCA9IGRmZy9E
RkdEQ0VQaGFzZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGMkZDNzcxMTZF
MTJGNkYwMDM4RDk3NiAvKiBERkdEQ0VQaGFzZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IG5hbWUgPSBERkdEQ0VQaGFzZS5oOyBwYXRoID0gZGZnL0RGR0RDRVBoYXNlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGMkZDQ0YyMThBNjAwNzAwMDFBMjdGOCAvKiBERkdHcmFw
aFNhZmVwb2ludC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBERkdH
cmFwaFNhZmVwb2ludC5jcHA7IHBhdGggPSBkZmcvREZHR3JhcGhTYWZlcG9pbnQuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRjJGQ0NGMzE4QTYwMDcwMDAxQTI3RjggLyogREZH
R3JhcGhTYWZlcG9pbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gREZHR3Jh
cGhTYWZlcG9pbnQuaDsgcGF0aCA9IGRmZy9ERkdHcmFwaFNhZmVwb2ludC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQkwRjJGQ0NGNDE4QTYwMDcwMDAxQTI3RjggLyogREZHU2FmZXBv
aW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IERGR1NhZmVwb2lu
dC5jcHA7IHBhdGggPSBkZmcvREZHU2FmZXBvaW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJMEYyRkNDRjUxOEE2MDA3MDAwMUEyN0Y4IC8qIERGR1NhZmVwb2ludC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBERkdTYWZlcG9pbnQuaDsgcGF0aCA9IGRmZy9E
RkdTYWZlcG9pbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEYyRkNDRjYxOEE2
MDA3MDAwMUEyN0Y4IC8qIERGR1NjYW5uYWJsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IG5hbWUgPSBERkdTY2FubmFibGUuaDsgcGF0aCA9IGRmZy9ERkdTY2FubmFibGUuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEYyRkNDRjcxOEE2MDA3MDAwMUEyN0Y4IC8qIERGR1Ro
cmVhZERhdGEuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gREZHVGhy
ZWFkRGF0YS5jcHA7IHBhdGggPSBkZmcvREZHVGhyZWFkRGF0YS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTBGMkZDQ0Y4MThBNjAwNzAwMDFBMjdGOCAvKiBERkdUaHJlYWREYXRh
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IERGR1RocmVhZERhdGEuaDsgcGF0
aCA9IGRmZy9ERkdUaHJlYWREYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBG
MzRCMTQ3MTZENDIwMEUwMDFDREE1QSAvKiBERkdVc2VLaW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgbmFtZSA9IERGR1VzZUtpbmQuY3BwOyBwYXRoID0gZGZnL0RGR1VzZUtp
bmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjM0QjE0ODE2RDQyMDBFMDAx
Q0RBNUEgLyogREZHVXNlS2luZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBE
RkdVc2VLaW5kLmg7IHBhdGggPSBkZmcvREZHVXNlS2luZC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkwRjM0QjE0QjE2RDQzRTBDMDAxQ0RBNUEgLyogUG9seW1vcnBoaWNBY2Nlc3NT
dHJ1Y3R1cmVMaXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBvbHltb3Jw
aGljQWNjZXNzU3RydWN0dXJlTGlzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MjgwMiw3ICsyODE2LDcgQEAKIAkJQzI5RUNCMDExODA0RDBFRDAwRDJDQkI0IC8qIEN1cnJlbnRU
aGlzSW5zaWRlQmxvY2tHZXR0ZXJUZXN0Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBuYW1lID0gQ3VycmVudFRoaXNJbnNpZGVCbG9ja0dldHRlclRlc3QubW07IHBhdGggPSBB
UEkvdGVzdHMvQ3VycmVudFRoaXNJbnNpZGVCbG9ja0dldHRlclRlc3QubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUMyOUVDQjAyMTgwNEQwRUQwMEQyQ0JCNCAvKiBDdXJyZW50VGhp
c0luc2lkZUJsb2NrR2V0dGVyVGVzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUg
PSBDdXJyZW50VGhpc0luc2lkZUJsb2NrR2V0dGVyVGVzdC5oOyBwYXRoID0gQVBJL3Rlc3RzL0N1
cnJlbnRUaGlzSW5zaWRlQmxvY2tHZXR0ZXJUZXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUMyQTdGNjg3MTYwNDMyRDQwMEY3NkI5OCAvKiBKU0Rlc3RydWN0aWJsZU9iamVjdC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0Rlc3RydWN0aWJsZU9iamVjdC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotICAgICAgIEMyQjZENzUyMThBMzM3OTMwMDRB
OTMwMSAvKiBXcml0ZUJhcnJpZXJJbmxpbmVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFdyaXRlQmFycmllcklubGluZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJQzJCNkQ3NTIxOEEzMzc5MzAwNEE5MzAxIC8qIFdyaXRlQmFycmllcklubGluZXMuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV3JpdGVCYXJyaWVySW5saW5lcy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDMkI5MTZDMTE0REEwMTRFMDBDQkFDODYgLyogTWFy
a2VkQWxsb2NhdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1hcmtlZEFs
bG9jYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDMkI5MTZDNDE0REEwNDBD
MDBDQkFDODYgLyogTWFya2VkQWxsb2NhdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IE1hcmtlZEFsbG9jYXRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUMyQzBGN0NCMTdCQkZDNUIwMDQ2NEZFNCAvKiBERkdEZXNpcmVkVHJhbnNpdGlvbnMu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gREZHRGVzaXJlZFRyYW5z
aXRpb25zLmNwcDsgcGF0aCA9IGRmZy9ERkdEZXNpcmVkVHJhbnNpdGlvbnMuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzY2Myw3ICszNjc3LDcgQEAKIAkJN0VGNkUwQkIwRUI3
QTFFQzAwNzlBRkFGIC8qIHJ1bnRpbWUgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNo
aWxkcmVuID0gKAotICAgICAgICAgICAgICAgQzJCNkQ3NTIxOEEzMzc5MzAwNEE5MzAxIC8qIFdy
aXRlQmFycmllcklubGluZXMuaCAqLywKKwkJCQlDMkI2RDc1MjE4QTMzNzkzMDA0QTkzMDEgLyog
V3JpdGVCYXJyaWVySW5saW5lcy5oICovLAogCQkJCUJDRjYwNTExMEUyMDNFRjgwMEI5QTY0RCAv
KiBBcmdMaXN0LmNwcCAqLywKIAkJCQlCQ0Y2MDUxMjBFMjAzRUY4MDBCOUE2NEQgLyogQXJnTGlz
dC5oICovLAogCQkJCUJDMjU3REU1MEUxRjUxQzUwMDE2QjZDOSAvKiBBcmd1bWVudHMuY3BwICov
LApAQCAtNDA4Nyw4ICs0MTAxLDYgQEAKIAkJODZFQzlEQjMxMzI4REY0NDAwMkIyQUQ3IC8qIGRm
ZyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCi0JCQkJMkFDQ0Yz
REMxODVGRTI2QjAwODNFMkFEIC8qIERGR1N0b3JlQmFycmllckVsaXNpb25QaGFzZS5jcHAgKi8s
Ci0JCQkJMkFDQ0YzREQxODVGRTI2QjAwODNFMkFEIC8qIERGR1N0b3JlQmFycmllckVsaXNpb25Q
aGFzZS5oICovLAogCQkJCUE3N0E0MjM2MTdBMEJCRkQwMEE4REI4MSAvKiBERkdBYnN0cmFjdEhl
YXAuY3BwICovLAogCQkJCUE3N0E0MjM3MTdBMEJCRkQwMEE4REI4MSAvKiBERkdBYnN0cmFjdEhl
YXAuaCAqLywKIAkJCQlBNzA0RDhGRTE3QTBCQUE4MDA2QkE1NTQgLyogREZHQWJzdHJhY3RJbnRl
cnByZXRlci5oICovLApAQCAtNDE5MCw2ICs0MjAyLDggQEAKIAkJCQk4NkVDOURCNjEzMjhERjgy
MDAyQjJBRDcgLyogREZHR2VuZXJhdGlvbkluZm8uaCAqLywKIAkJCQk4NkVDOURCNzEzMjhERjgy
MDAyQjJBRDcgLyogREZHR3JhcGguY3BwICovLAogCQkJCTg2RUM5REI4MTMyOERGODIwMDJCMkFE
NyAvKiBERkdHcmFwaC5oICovLAorCQkJCTBGMkZDQ0YyMThBNjAwNzAwMDFBMjdGOCAvKiBERkdH
cmFwaFNhZmVwb2ludC5jcHAgKi8sCisJCQkJMEYyRkNDRjMxOEE2MDA3MDAwMUEyN0Y4IC8qIERG
R0dyYXBoU2FmZXBvaW50LmggKi8sCiAJCQkJMEZCMTRFMjAxODEyNTcwQjAwOUI2QjREIC8qIERG
R0lubGluZUNhY2hlV3JhcHBlci5oICovLAogCQkJCTBGQjE0RTIyMTgxMzA5NTUwMDlCNkI0RCAv
KiBERkdJbmxpbmVDYWNoZVdyYXBwZXJJbmxpbmVzLmggKi8sCiAJCQkJQTcwNEQ5MDAxN0EwQkFB
ODAwNkJBNTU0IC8qIERGR0luUGxhY2VBYnN0cmFjdFN0YXRlLmNwcCAqLywKQEAgLTQyNjIsOCAr
NDI3NiwxMSBAQAogCQkJCTg2RUM5REMxMTMyOERGODIwMDJCMkFENyAvKiBERkdSZWdpc3RlckJh
bmsuaCAqLywKIAkJCQkwRjY2NkVDQTE4MzZCMzdFMDBEMDE3RjEgLyogREZHUmVzdXJyZWN0aW9u
Rm9yVmFsaWRhdGlvblBoYXNlLmNwcCAqLywKIAkJCQkwRjY2NkVDQjE4MzZCMzdFMDBEMDE3RjEg
LyogREZHUmVzdXJyZWN0aW9uRm9yVmFsaWRhdGlvblBoYXNlLmggKi8sCisJCQkJMEYyRkNDRjQx
OEE2MDA3MDAwMUEyN0Y4IC8qIERGR1NhZmVwb2ludC5jcHAgKi8sCisJCQkJMEYyRkNDRjUxOEE2
MDA3MDAwMUEyN0Y4IC8qIERGR1NhZmVwb2ludC5oICovLAogCQkJCUE3N0E0MjNDMTdBMEJCRkQw
MEE4REI4MSAvKiBERkdTYWZlVG9FeGVjdXRlLmggKi8sCiAJCQkJQTc0MTAxN0UxNzlEQUY4MDAw
MkVCOEJBIC8qIERGR1NhbmVTdHJpbmdHZXRCeVZhbFNsb3dQYXRoR2VuZXJhdG9yLmggKi8sCisJ
CQkJMEYyRkNDRjYxOEE2MDA3MDAwMUEyN0Y4IC8qIERGR1NjYW5uYWJsZS5oICovLAogCQkJCTg2
RUNBM0Y5MTMyREYyNUEwMDJCMkFENyAvKiBERkdTY29yZUJvYXJkLmggKi8sCiAJCQkJMEYxRTNB
NjUxNTNBMjFERjAwMEY5NDU2IC8qIERGR1NpbGVudFJlZ2lzdGVyU2F2ZVBsYW4uaCAqLywKIAkJ
CQkwRjFFM0E1MDE1MzdDMkNCMDAwRjk0NTYgLyogREZHU2xvd1BhdGhHZW5lcmF0b3IuaCAqLywK
QEAgLTQyNzcsOSArNDI5NCwxMyBAQAogCQkJCTBGQzIwQ0I4MTg1NTZBMzUwMEM5RTk1NCAvKiBE
RkdTU0FMb3dlcmluZ1BoYXNlLmggKi8sCiAJCQkJMEY5RkI0RjIxN0ZDQjkxNzAwQ0I2N0Y4IC8q
IERGR1N0YWNrTGF5b3V0UGhhc2UuY3BwICovLAogCQkJCTBGOUZCNEYzMTdGQ0I5MTcwMENCNjdG
OCAvKiBERkdTdGFja0xheW91dFBoYXNlLmggKi8sCisJCQkJMkFDQ0YzREMxODVGRTI2QjAwODNF
MkFEIC8qIERGR1N0b3JlQmFycmllckVsaXNpb25QaGFzZS5jcHAgKi8sCisJCQkJMkFDQ0YzREQx
ODVGRTI2QjAwODNFMkFEIC8qIERGR1N0b3JlQmFycmllckVsaXNpb25QaGFzZS5oICovLAogCQkJ
CTBGQzIwQ0IzMTg1MkUyQzYwMEM5RTk1NCAvKiBERkdTdHJlbmd0aFJlZHVjdGlvblBoYXNlLmNw
cCAqLywKIAkJCQkwRkMyMENCNDE4NTJFMkM2MDBDOUU5NTQgLyogREZHU3RyZW5ndGhSZWR1Y3Rp
b25QaGFzZS5oICovLAogCQkJCTBGNjM5NDc2MTVEQ0UzNDcwMDZBNTk3QyAvKiBERkdTdHJ1Y3R1
cmVBYnN0cmFjdFZhbHVlLmggKi8sCisJCQkJMEYyRkNDRjcxOEE2MDA3MDAwMUEyN0Y4IC8qIERG
R1RocmVhZERhdGEuY3BwICovLAorCQkJCTBGMkZDQ0Y4MThBNjAwNzAwMDFBMjdGOCAvKiBERkdU
aHJlYWREYXRhLmggKi8sCiAJCQkJMEZDMDk3OUYxNDZCMjhDNzAwQ0YyNDQyIC8qIERGR1RodW5r
cy5jcHAgKi8sCiAJCQkJMEZDMDk3QTAxNDZCMjhDNzAwQ0YyNDQyIC8qIERGR1RodW5rcy5oICov
LAogCQkJCTBGRDhBMzFGMTdENTFGNTcwMENBMkM0MCAvKiBERkdUaWVyVXBDaGVja0luamVjdGlv
blBoYXNlLmNwcCAqLywKQEAgLTQ2OTgsNyArNDcxOSw3IEBACiAJCQkJNjVDMDI4NUQxNzE3OTY2
ODAwMzUxRTM1IC8qIEFSTXY3RE9wY29kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkE2ODI5NUIx
ODc1RjgwNTAwQjZDM0UyIC8qIENvcHlXcml0ZUJhcnJpZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTJBNEVDOTBDMTg2MEQ2QzIwMDk0Rjc4MiAvKiBXcml0ZUJhcnJpZXJCdWZmZXIuaCBpbiBIZWFk
ZXJzICovLAotICAgICAgICAgICAgICAgQzJCNkQ3NTMxOEEzMzc5MzAwNEE5MzAxIC8qIFdyaXRl
QmFycmllcklubGluZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCUMyQjZENzUzMThBMzM3OTMwMDRB
OTMwMSAvKiBXcml0ZUJhcnJpZXJJbmxpbmVzLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRTU5MzJB
ODE4M0M1QTI2MDBBMUVDQ0MgLyogVk1FbnRyeVNjb3BlLmggaW4gSGVhZGVycyAqLywKIAkJCQlB
NTMyNDM5MzE4NTY5NzA5MDAyRUQ2OTIgLyogQ29kZUdlbmVyYXRvckluc3BlY3RvclN0cmluZ3Mu
cHkgaW4gSGVhZGVycyAqLywKIAkJCQlBNTMyNDM5MjE4NTY5NzA5MDAyRUQ2OTIgLyogQ29kZUdl
bmVyYXRvckluc3BlY3Rvci5weSBpbiBIZWFkZXJzICovLApAQCAtNTA3Nyw2ICs1MDk4LDcgQEAK
IAkJCQlBNzkwREQ3MDE4MkY0OTk3MDA1ODg4MDcgLyogSlNTZXRJdGVyYXRvci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMEYyNEU1NEUxN0VFMjc0OTAwQUJCMjE3IC8qIEpJVE9wZXJhdGlvbldyYXBw
ZXJzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjc2NkQzMTE1QUE4MTEyMDA4RjM2M0UgLyogSklU
U3R1YlJvdXRpbmUuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGMkZDQ0ZBMThBNjAwNzAwMDFBMjdG
OCAvKiBERkdHcmFwaFNhZmVwb2ludC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY3NjZEMkMxNUE4
Q0MzQTAwOEYzNjNFIC8qIEpJVFN0dWJSb3V0aW5lU2V0LmggaW4gSGVhZGVycyAqLywKIAkJCQkx
NEM1MjQyQjBGNTM1NUU5MDBCQTNEMDQgLyogSklUU3R1YnMuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUZFRjY4MzVFMTc0MzQzQ0MwMEEzMkUyNSAvKiBKSVRTdHVic0FSTS5oIGluIEhlYWRlcnMgKi8s
CkBAIC01MTE2LDYgKzUxMzgsNyBAQAogCQkJCTg2RTNDNjEzMTY3QkFCRDcwMDZENzYwQSAvKiBK
U0NvbnRleHQuaCBpbiBIZWFkZXJzICovLAogCQkJCTg2RTNDNjE3MTY3QkFCRUUwMDZENzYwQSAv
KiBKU0NvbnRleHRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxOEM0MUUwRTE2RjVD
RDAwQjM0NDYwIC8qIEpTQ29udGV4dFJlZi5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEYyRkNDRkYx
OEE2MDA3MDAwMUEyN0Y4IC8qIERGR1RocmVhZERhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCTE0
OENEMUQ4MTA4Q0Y5MDIwMDgxNjNDNiAvKiBKU0NvbnRleHRSZWZQcml2YXRlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlBNzIwMjhCODE3OTc2MDFFMDA5ODAyOEMgLyogSlNDVGVzdFJ1bm5lclV0aWxz
LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjJCNjZFQzE3QjZCNUFCMDBBN0FFM0YgLyogSlNEYXRh
Vmlldy5oIGluIEhlYWRlcnMgKi8sCkBAIC01MjM2LDYgKzUyNTksNyBAQAogCQkJCTg2QzU2OEUx
MTFBMjEzRUUwMDA3RjdGMCAvKiBNYWNyb0Fzc2VtYmxlck1JUFMuaCBpbiBIZWFkZXJzICovLAog
CQkJCTg2QUU2NEE5MTM1RTVFMUMwMDk2MzAxMiAvKiBNYWNyb0Fzc2VtYmxlclNINC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJODYwMTYxRTQwRjNBODNDMTAwRjg0NzEwIC8qIE1hY3JvQXNzZW1ibGVy
WDg2LmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjJGQ0NGQzE4QTYwMDcwMDAxQTI3RjggLyogREZH
U2FmZXBvaW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk4NjAxNjFFNTBGM0E4M0MxMDBGODQ3MTAg
LyogTWFjcm9Bc3NlbWJsZXJYODZfNjQuaCBpbiBIZWFkZXJzICovLAogCQkJCTg2MDE2MUU2MEYz
QTgzQzEwMEY4NDcxMCAvKiBNYWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQTcwMDg3M0ExN0NCRTg1MzAwQzNFNjQzIC8qIE1hcENvbnN0cnVjdG9yLmggaW4gSGVh
ZGVycyAqLywKQEAgLTU0NDcsNiArNTQ3MSw3IEBACiAJCQkJMEYyNDJEQTcxM0YzQjFFODAwN0FE
RDRDIC8qIFdlYWtSZWZlcmVuY2VIYXJ2ZXN0ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTE0RTg0
RkExMTRFRTFBQ0MwMEQ2RDVENCAvKiBXZWFrU2V0LmggaW4gSGVhZGVycyAqLywKIAkJCQkxNDE1
MDEzMzE1NEJCMTNGMDA1RDhDOTggLyogV2Vha1NldElubGluZXMuaCBpbiBIZWFkZXJzICovLAor
CQkJCTBGMkZDQ0ZEMThBNjAwNzAwMDFBMjdGOCAvKiBERkdTY2FubmFibGUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUJDMThDNDdBMEUxNkY1Q0QwMEIzNDQ2MCAvKiBXZWJLaXRBdmFpbGFiaWxpdHku
aCBpbiBIZWFkZXJzICovLAogCQkJCUE3NERFRjkyMTgyRDk5MTQwMDUyMkMyMiAvKiBNYXBJdGVy
YXRvckNvbnN0cnVjdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlBN0RDQjk3MzEyRTUxOTNGMDA5
MTE5NDAgLyogV3JpdGVCYXJyaWVyLmggaW4gSGVhZGVycyAqLywKQEAgLTYwNDEsNiArNjA2Niw3
IEBACiAJCQkJQTcwNDQ3RUQxN0EwQkQ3MDAwRjU4OThFIC8qIER1bXBDb250ZXh0LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTE0N0YzOUM3MTA3RUMzNzYwMDQyN0E0OCAvKiBFcnJvci5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkxNDdGMzlDODEwN0VDMzc2MDA0MjdBNDggLyogRXJyb3JDb25zdHJ1
Y3Rvci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkwRjJGQ0NGOTE4QTYwMDcwMDAxQTI3RjggLyog
REZHR3JhcGhTYWZlcG9pbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQ3RjM5QzkxMDdFQzM3
NjAwNDI3QTQ4IC8qIEVycm9ySW5zdGFuY2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQ3RjM5
Q0ExMDdFQzM3NjAwNDI3QTQ4IC8qIEVycm9yUHJvdG90eXBlLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUE1RkQwMDY3MTg5QUZFOUMwMDYzMzIzMSAvKiBTY3JpcHRBcmd1bWVudHMuY3BwIGluIFNv
dXJjZXMgKi8sCkBAIC02MjExLDYgKzYyMzcsNyBAQAogCQkJCUE3NDgyQjk0MTE2NzExNDcwMDNC
MDcxMiAvKiBKU1dlYWtPYmplY3RNYXBSZWZQcml2YXRlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTE0NDI1NjYxMTVFREU5OEQwMDY2QTQ5QiAvKiBKU1dpdGhTY29wZS5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlBNTAzRkExQjE4OEUwRkIwMDAxMTBGMTQgLyogSlNKYXZhU2NyaXB0Q2FsbEZyYW1l
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTBGMkZDQ0ZFMThBNjAwNzAwMDFBMjdGOCAvKiBERkdU
aHJlYWREYXRhLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg2RTNDNjE4MTY3QkFCRUUwMDZENzYw
QSAvKiBKU1dyYXBwZXJNYXAubW0gaW4gU291cmNlcyAqLywKIAkJCQkxNDI4MDg3MDEwN0VDMTM0
MDAxM0U3QjIgLyogSlNXcmFwcGVyT2JqZWN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE1N0Qy
M0U5MTg5MUIwNzcwMDMxQzdGQSAvKiBKU0dsb2JhbE9iamVjdERlYnVnZ2VyQWdlbnQuY3BwIGlu
IFNvdXJjZXMgKi8sCkBAIC02MzIyLDYgKzYzNDksNyBAQAogCQkJCUMyMjU0OTQzMTVGN0RCQUEw
MDY1RTg5OCAvKiBTbG90VmlzaXRvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5MzMwNDAyQzBF
NkE3NjQwMDA3ODZFNkEgLyogU21hbGxTdHJpbmdzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBG
OEYyQjlFMTczMDZDOEQwMDdEQkRBNSAvKiBTb3VyY2VDb2RlLmNwcCBpbiBTb3VyY2VzICovLAor
CQkJCTBGMkZDQ0ZCMThBNjAwNzAwMDFBMjdGOCAvKiBERkdTYWZlcG9pbnQuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQTVGRDAwNzkxODlCMDUxMDAwNjMzMjMxIC8qIENvbnNvbGVNZXNzYWdlLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTBGNDkzQUZBMTZEMENBRDMwMDg0NTA4QiAvKiBTb3VyY2VQ
cm92aWRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFNDlEQzE2QjEyRUYyOTNFMDAxODRBMUYg
LyogU291cmNlUHJvdmlkZXJDYWNoZS5jcHAgaW4gU291cmNlcyAqLywKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTGlua0J1ZmZlci5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9MaW5rQnVmZmVyLmNwcAkocmV2aXNpb24gMTYz
NzUyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9MaW5rQnVmZmVyLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMzAsNiArMzAsNyBAQAogCiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgi
CiAjaW5jbHVkZSAiSklUQ29kZS5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRl
ICJPcHRpb25zLmgiCiAjaW5jbHVkZSAiVk0uaCIKICNpbmNsdWRlIDx3dGYvQ29tcGlsYXRpb25U
aHJlYWQuaD4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9BcnJheVByb2Zp
bGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9BcnJh
eVByb2ZpbGUuY3BwCShyZXZpc2lvbiAxNjM3NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvQXJyYXlQcm9maWxlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcsNyBA
QAogI2luY2x1ZGUgIkFycmF5UHJvZmlsZS5oIgogCiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgiCisj
aW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgPHd0Zi9Db21tYVByaW50ZXIuaD4KICNp
bmNsdWRlIDx3dGYvU3RyaW5nRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL1N0cmluZ1ByaW50U3Ry
ZWFtLmg+CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVCYXNp
Y0Jsb2NrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
Qnl0ZWNvZGVCYXNpY0Jsb2NrLmNwcAkocmV2aXNpb24gMTYzNzUyKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlQmFzaWNCbG9jay5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJCeXRlY29kZUJhc2ljQmxvY2suaCIKIAogI2lu
Y2x1ZGUgIkNvZGVCbG9jay5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJQ
cmVjaXNlSnVtcFRhcmdldHMuaCIKIAogbmFtZXNwYWNlIEpTQyB7CkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVMaXZlbmVzc0FuYWx5c2lzSW5saW5lcy5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUxpdmVu
ZXNzQW5hbHlzaXNJbmxpbmVzLmgJKHJldmlzaW9uIDE2Mzc1MikKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUxpdmVuZXNzQW5hbHlzaXNJbmxpbmVzLmgJKHdvcmtp
bmcgY29weSkKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkJ5dGVjb2RlTGl2ZW5lc3NB
bmFseXNpcy5oIgogI2luY2x1ZGUgIkNvZGVCbG9jay5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMu
aCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9DYWxsTGlua0luZm8uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9DYWxsTGlua0luZm8uY3BwCShyZXZpc2lvbiAxNjM3NTIpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ2FsbExpbmtJbmZvLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMjgsNiArMjgsNyBAQAogCiAjaW5jbHVkZSAiREZHT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUg
IkRGR1RodW5rcy5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJSZXBhdGNo
QnVmZmVyLmgiCiAKICNpZiBFTkFCTEUoSklUKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL0NvZGVCbG9jay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAJKHJldmlzaW9uIDE2Mzc1MikKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0z
Niw2ICszNiw3IEBACiAjaW5jbHVkZSAiREZHQ2FwYWJpbGl0aWVzLmgiCiAjaW5jbHVkZSAiREZH
Q29tbW9uLmgiCiAjaW5jbHVkZSAiREZHRHJpdmVyLmgiCisjaW5jbHVkZSAiREZHSklUQ29kZS5o
IgogI2luY2x1ZGUgIkRGR05vZGUuaCIKICNpbmNsdWRlICJERkdXb3JrbGlzdC5oIgogI2luY2x1
ZGUgIkRlYnVnZ2VyLmgiCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29k
ZUJsb2NrLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0Nv
ZGVCbG9jay5oCShyZXZpc2lvbiAxNjM3NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvQ29kZUJsb2NrLmgJKHdvcmtpbmcgY29weSkKQEAgLTU2LDcgKzU2LDYgQEAKICNpbmNs
dWRlICJIYW5kbGVySW5mby5oIgogI2luY2x1ZGUgIk9iamVjdEFsbG9jYXRpb25Qcm9maWxlLmgi
CiAjaW5jbHVkZSAiT3B0aW9ucy5oIgotI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRl
ICJQdXRQcm9wZXJ0eVNsb3QuaCIKICNpbmNsdWRlICJJbnN0cnVjdGlvbi5oIgogI2luY2x1ZGUg
IkpJVENvZGUuaCIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxv
Y2tKZXR0aXNvbmluZ1dhdGNocG9pbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2tKZXR0aXNvbmluZ1dhdGNocG9pbnQuY3BwCShyZXZp
c2lvbiAxNjM3NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2Nr
SmV0dGlzb25pbmdXYXRjaHBvaW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBA
QAogCiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgiCiAjaW5jbHVkZSAiREZHQ29tbW9uLmgiCisjaW5j
bHVkZSAiT3BlcmF0aW9ucy5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIApJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL0V4ZWN1dGlvbkNvdW50ZXIuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9FeGVjdXRpb25Db3VudGVyLmNwcAkocmV2
aXNpb24gMTYzNzUyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0V4ZWN1dGlv
bkNvdW50ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRl
ICJDb2RlQmxvY2suaCIKICNpbmNsdWRlICJFeGVjdXRhYmxlQWxsb2NhdG9yLmgiCisjaW5jbHVk
ZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgPHd0Zi9TdHJpbmdFeHRyYXMuaD4KIAogbmFtZXNw
YWNlIEpTQyB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvTWV0aG9kT2ZH
ZXR0aW5nQVZhbHVlUHJvZmlsZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL01ldGhvZE9mR2V0dGluZ0FWYWx1ZVByb2ZpbGUuY3BwCShyZXZpc2lvbiAx
NjM3NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvTWV0aG9kT2ZHZXR0aW5n
QVZhbHVlUHJvZmlsZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5LDYgKzI5LDcgQEAKICNpZiBF
TkFCTEUoREZHX0pJVCkKIAogI2luY2x1ZGUgIkNvZGVCbG9jay5oIgorI2luY2x1ZGUgIk9wZXJh
dGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9QcmVjaXNlSnVtcFRhcmdldHMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9QcmVjaXNlSnVtcFRhcmdldHMuY3BwCShyZXZpc2lvbiAx
NjM3NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUHJlY2lzZUp1bXBUYXJn
ZXRzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjYsNiArMjYsOCBAQAogI2luY2x1ZGUgImNvbmZp
Zy5oIgogI2luY2x1ZGUgIlByZWNpc2VKdW1wVGFyZ2V0cy5oIgogCisjaW5jbHVkZSAiT3BlcmF0
aW9ucy5oIgorCiBuYW1lc3BhY2UgSlNDIHsKIAogdGVtcGxhdGUgPHNpemVfdCB2ZWN0b3JTaXpl
PgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1Byb2ZpbGVkQ29kZUJsb2Nr
SmV0dGlzb25pbmdXYXRjaHBvaW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvUHJvZmlsZWRDb2RlQmxvY2tKZXR0aXNvbmluZ1dhdGNocG9pbnQuY3Bw
CShyZXZpc2lvbiAxNjM3NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUHJv
ZmlsZWRDb2RlQmxvY2tKZXR0aXNvbmluZ1dhdGNocG9pbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgiCiAjaW5jbHVkZSAiREZHQ29t
bW9uLmgiCiAjaW5jbHVkZSAiREZHRXhpdFByb2ZpbGUuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25z
LmgiCiAKIG5hbWVzcGFjZSBKU0MgewogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvU2FtcGxpbmdUb29sLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvU2FtcGxpbmdUb29sLmNwcAkocmV2aXNpb24gMTYzNzUyKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1NhbXBsaW5nVG9vbC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJDb2RlQmxvY2suaCIKICNpbmNsdWRlICJJbnRl
cnByZXRlci5oIgogI2luY2x1ZGUgIk9wY29kZS5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIK
IAogI2lmICFPUyhXSU5ET1dTKQogI2luY2x1ZGUgPHVuaXN0ZC5oPgpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL1NwZWNpYWxQb2ludGVyLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3BlY2lhbFBvaW50ZXIuY3BwCShyZXZpc2lv
biAxNjM3NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3BlY2lhbFBvaW50
ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJDb2Rl
QmxvY2suaCIKICNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgorI2luY2x1ZGUgIk9wZXJhdGlv
bnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9TdHJ1Y3R1cmVTdHViQ2xlYXJpbmdXYXRjaHBvaW50LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3RydWN0dXJlU3R1YkNsZWFyaW5nV2F0
Y2hwb2ludC5jcHAJKHJldmlzaW9uIDE2Mzc1MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9TdHJ1Y3R1cmVTdHViQ2xlYXJpbmdXYXRjaHBvaW50LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMjksNiArMjksNyBAQAogI2lmIEVOQUJMRShKSVQpCiAKICNpbmNsdWRlICJDb2RlQmxv
Y2suaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiU3RydWN0dXJlU3R1Yklu
Zm8uaCIKIAogbmFtZXNwYWNlIEpTQyB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVi
dWdnZXIvRGVidWdnZXJDYWxsRnJhbWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckNhbGxGcmFtZS5jcHAJKHJldmlzaW9uIDE2Mzc1MikK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckNhbGxGcmFtZS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTI5LDcgKzI5LDYgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNp
bmNsdWRlICJEZWJ1Z2dlckNhbGxGcmFtZS5oIgogCi0jaW5jbHVkZSAiQ2FsbEZyYW1lSW5saW5l
cy5oIgogI2luY2x1ZGUgIkNvZGVCbG9jay5oIgogI2luY2x1ZGUgIkludGVycHJldGVyLmgiCiAj
aW5jbHVkZSAiSlNBY3RpdmF0aW9uLmgiCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0F2YWlsYWJpbGl0eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdBdmFpbGFiaWxpdHkuY3BwCShyZXZpc2lvbiAxNjM3NTIpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0F2YWlsYWJpbGl0eS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5
LDYgKzI5LDcgQEAKICNpZiBFTkFCTEUoREZHX0pJVCkKIAogI2luY2x1ZGUgIkRGR05vZGUuaCIK
KyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZH
IHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCbG9ja0luc2VydGlvblNl
dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCbG9ja0lu
c2VydGlvblNldC5jcHAJKHJldmlzaW9uIDE2Mzc1MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHQmxvY2tJbnNlcnRpb25TZXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsy
OCw4IEBACiAKICNpZiBFTkFCTEUoREZHX0pJVCkKIAorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIK
KwogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgewogCiBCbG9ja0luc2VydGlvblNldDo6
QmxvY2tJbnNlcnRpb25TZXQoR3JhcGgmIGdyYXBoKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdEZXNpcmVkVHJhbnNpdGlvbnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHRGVzaXJlZFRyYW5zaXRpb25zLmNwcAkocmV2aXNpb24gMTYz
NzUyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEZXNpcmVkVHJhbnNpdGlvbnMu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2ICszMSw3IEBACiAKICNpbmNsdWRlICJDb2RlQmxv
Y2suaCIKICNpbmNsdWRlICJERkdDb21tb25EYXRhLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5o
IgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHRHJpdmVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0RyaXZlci5jcHAJKHJldmlzaW9uIDE2Mzc1MikKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHRHJpdmVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTIxLDcg
KzEyMSw3IEBAIHN0YXRpYyBDb21waWxhdGlvblJlc3VsdCBjb21waWxlSW1wbCgKICAgICAgICAg
cmV0dXJuIENvbXBpbGF0aW9uRGVmZXJyZWQ7CiAgICAgfQogICAgIAotICAgIHBsYW4tPmNvbXBp
bGVJblRocmVhZCgqdm0uZGZnU3RhdGUpOworICAgIHBsYW4tPmNvbXBpbGVJblRocmVhZCgqdm0u
ZGZnU3RhdGUsIDApOwogICAgIHJldHVybiBwbGFuLT5maW5hbGl6ZVdpdGhvdXROb3RpZnlpbmdD
YWxsYmFjaygpOwogfQogI2Vsc2UgLy8gRU5BQkxFKERGR19KSVQpCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0dyYXBoLmNwcAkocmV2aXNpb24gMTYzNzUyKQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc5MCw2ICs3
OTAsNTkgQEAgSlNBcnJheUJ1ZmZlclZpZXcqIEdyYXBoOjp0cnlHZXRGb2xkYWJsZQogICAgIHJl
dHVybiB0cnlHZXRGb2xkYWJsZVZpZXcoY2hpbGQobm9kZSwgMCkubm9kZSgpLCBub2RlLT5hcnJh
eU1vZGUoKSk7CiB9CiAKK3ZvaWQgR3JhcGg6OnZpc2l0Q2hpbGRyZW4oU2xvdFZpc2l0b3ImIHZp
c2l0b3IpCit7CisgICAgZm9yIChCbG9ja0luZGV4IGJsb2NrSW5kZXggPSBudW1CbG9ja3MoKTsg
YmxvY2tJbmRleC0tOykgeworICAgICAgICBCYXNpY0Jsb2NrKiBibG9jayA9IHRoaXMtPmJsb2Nr
KGJsb2NrSW5kZXgpOworICAgICAgICBpZiAoIWJsb2NrKQorICAgICAgICAgICAgY29udGludWU7
CisgICAgICAgIAorICAgICAgICBmb3IgKHVuc2lnbmVkIG5vZGVJbmRleCA9IDA7IG5vZGVJbmRl
eCA8IGJsb2NrLT5zaXplKCk7ICsrbm9kZUluZGV4KSB7CisgICAgICAgICAgICBOb2RlKiBub2Rl
ID0gYmxvY2stPmF0KG5vZGVJbmRleCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHN3aXRj
aCAobm9kZS0+b3AoKSkgeworICAgICAgICAgICAgY2FzZSBKU0NvbnN0YW50OgorICAgICAgICAg
ICAgY2FzZSBXZWFrSlNDb25zdGFudDoKKyAgICAgICAgICAgICAgICB2aXNpdG9yLmFwcGVuZFVu
YmFycmllcmVkUmVhZE9ubHlWYWx1ZSh2YWx1ZU9mSlNDb25zdGFudChub2RlKSk7CisgICAgICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICBjYXNlIENoZWNr
RnVuY3Rpb246CisgICAgICAgICAgICAgICAgdmlzaXRvci5hcHBlbmRVbmJhcnJpZXJlZFJlYWRP
bmx5UG9pbnRlcihub2RlLT5mdW5jdGlvbigpKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgICAgICAgICAKKyAgICAgICAgICAgIGNhc2UgQ2hlY2tFeGVjdXRhYmxlOgorICAgICAg
ICAgICAgICAgIHZpc2l0b3IuYXBwZW5kVW5iYXJyaWVyZWRSZWFkT25seVBvaW50ZXIobm9kZS0+
ZXhlY3V0YWJsZSgpKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAK
KyAgICAgICAgICAgIGNhc2UgQ2hlY2tTdHJ1Y3R1cmU6CisgICAgICAgICAgICAgICAgZm9yICh1
bnNpZ25lZCBpID0gbm9kZS0+c3RydWN0dXJlU2V0KCkuc2l6ZSgpOyBpLS07KQorICAgICAgICAg
ICAgICAgICAgICB2aXNpdG9yLmFwcGVuZFVuYmFycmllcmVkUmVhZE9ubHlQb2ludGVyKG5vZGUt
PnN0cnVjdHVyZVNldCgpW2ldKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
ICAgICAKKyAgICAgICAgICAgIGNhc2UgU3RydWN0dXJlVHJhbnNpdGlvbldhdGNocG9pbnQ6Cisg
ICAgICAgICAgICBjYXNlIE5ld09iamVjdDoKKyAgICAgICAgICAgIGNhc2UgQXJyYXlpZnlUb1N0
cnVjdHVyZToKKyAgICAgICAgICAgIGNhc2UgTmV3U3RyaW5nT2JqZWN0OgorICAgICAgICAgICAg
ICAgIHZpc2l0b3IuYXBwZW5kVW5iYXJyaWVyZWRSZWFkT25seVBvaW50ZXIobm9kZS0+c3RydWN0
dXJlKCkpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIAorICAgICAg
ICAgICAgY2FzZSBQdXRTdHJ1Y3R1cmU6CisgICAgICAgICAgICBjYXNlIFBoYW50b21QdXRTdHJ1
Y3R1cmU6CisgICAgICAgICAgICBjYXNlIEFsbG9jYXRlUHJvcGVydHlTdG9yYWdlOgorICAgICAg
ICAgICAgY2FzZSBSZWFsbG9jYXRlUHJvcGVydHlTdG9yYWdlOgorICAgICAgICAgICAgICAgIHZp
c2l0b3IuYXBwZW5kVW5iYXJyaWVyZWRSZWFkT25seVBvaW50ZXIoCisgICAgICAgICAgICAgICAg
ICAgIG5vZGUtPnN0cnVjdHVyZVRyYW5zaXRpb25EYXRhKCkucHJldmlvdXNTdHJ1Y3R1cmUpOwor
ICAgICAgICAgICAgICAgIHZpc2l0b3IuYXBwZW5kVW5iYXJyaWVyZWRSZWFkT25seVBvaW50ZXIo
CisgICAgICAgICAgICAgICAgICAgIG5vZGUtPnN0cnVjdHVyZVRyYW5zaXRpb25EYXRhKCkubmV3
U3RydWN0dXJlKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAKKyAg
ICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9
CisgICAgICAgIH0KKyAgICB9Cit9CisKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpERkcKIAogI2Vu
ZGlmCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5oCShyZXZpc2lvbiAxNjM3
NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTQwLDYgKzQwLDcgQEAKICNpbmNsdWRlICJERkdOb2RlLmgiCiAjaW5jbHVkZSAiREZH
Tm9kZUFsbG9jYXRvci5oIgogI2luY2x1ZGUgIkRGR1BsYW4uaCIKKyNpbmNsdWRlICJERkdTY2Fu
bmFibGUuaCIKICNpbmNsdWRlICJERkdWYXJpYWRpY0Z1bmN0aW9uLmgiCiAjaW5jbHVkZSAiSW5s
aW5lQ2FsbEZyYW1lU2V0LmgiCiAjaW5jbHVkZSAiSlNTdGFjay5oIgpAQCAtNzgsNyArNzksNyBA
QCBlbnVtIEFkZFNwZWN1bGF0aW9uTW9kZSB7CiAvLwogLy8gVGhlIG9yZGVyIG1heSBiZSBzaWdu
aWZpY2FudCBmb3Igbm9kZXMgd2l0aCBzaWRlLWVmZmVjdHMgKHByb3BlcnR5IGFjY2Vzc2VzLCB2
YWx1ZSBjb252ZXJzaW9ucykuCiAvLyBOb2RlcyB0aGF0IGFyZSAnZGVhZCcgcmVtYWluIGluIHRo
ZSB2ZWN0b3Igd2l0aCByZWZDb3VudCAwLgotY2xhc3MgR3JhcGggeworY2xhc3MgR3JhcGggOiBw
dWJsaWMgdmlydHVhbCBTY2FubmFibGUgewogcHVibGljOgogICAgIEdyYXBoKFZNJiwgUGxhbiYs
IExvbmdMaXZlZFN0YXRlJik7CiAgICAgfkdyYXBoKCk7CkBAIC03OTksNiArODAwLDggQEAgcHVi
bGljOgogICAgIEpTQXJyYXlCdWZmZXJWaWV3KiB0cnlHZXRGb2xkYWJsZVZpZXcoTm9kZSosIEFy
cmF5TW9kZSk7CiAgICAgSlNBcnJheUJ1ZmZlclZpZXcqIHRyeUdldEZvbGRhYmxlVmlld0ZvckNo
aWxkMShOb2RlKik7CiAgICAgCisgICAgdmlydHVhbCB2b2lkIHZpc2l0Q2hpbGRyZW4oU2xvdFZp
c2l0b3ImKSBvdmVycmlkZTsKKyAgICAKICAgICBWTSYgbV92bTsKICAgICBQbGFuJiBtX3BsYW47
CiAgICAgQ29kZUJsb2NrKiBtX2NvZGVCbG9jazsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHR3JhcGhTYWZlcG9pbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHR3JhcGhTYWZlcG9pbnQuY3BwCShyZXZpc2lvbiAwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaFNhZmVwb2ludC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTAsMCArMSw0NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAK
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiREZHR3JhcGhTYWZlcG9pbnQu
aCIKKworI2lmIEVOQUJMRShERkdfSklUKQorCisjaW5jbHVkZSAiREZHR3JhcGguaCIKKworbmFt
ZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgeworCitHcmFwaFNhZmVwb2ludDo6R3JhcGhTYWZl
cG9pbnQoR3JhcGgmIGdyYXBoKQorICAgIDogbV9zYWZlcG9pbnQoZ3JhcGgubV9wbGFuKQorewor
ICAgIG1fc2FmZXBvaW50LmFkZCgmZ3JhcGgpOworICAgIG1fc2FmZXBvaW50LmJlZ2luKCk7Cit9
CisKK0dyYXBoU2FmZXBvaW50Ojp+R3JhcGhTYWZlcG9pbnQoKSB7IH0KKworfSB9IC8vIG5hbWVz
cGFjZSBKU0M6OkRGRworCisjZW5kaWYgLy8gRU5BQkxFKERGR19KSVQpCisKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGhTYWZlcG9pbnQuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoU2FmZXBvaW50LmgJKHJldmlzaW9uIDAp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoU2FmZXBvaW50LmgJKHdvcmtp
bmcgY29weSkKQEAgLTAsMCArMSw1MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLiAKKyAqLworCisjaWZuZGVmIERGR0dyYXBoU2FmZXBvaW50X2gKKyNkZWZpbmUgREZH
R3JhcGhTYWZlcG9pbnRfaAorCisjaWYgRU5BQkxFKERGR19KSVQpCisKKyNpbmNsdWRlICJERkdT
YWZlcG9pbnQuaCIKKworbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgeworCitjbGFzcyBH
cmFwaDsKKworY2xhc3MgR3JhcGhTYWZlcG9pbnQgeworcHVibGljOgorICAgIEdyYXBoU2FmZXBv
aW50KEdyYXBoJik7CisgICAgfkdyYXBoU2FmZXBvaW50KCk7CisgICAgCitwcml2YXRlOgorICAg
IFNhZmVwb2ludCBtX3NhZmVwb2ludDsKK307CisKK30gfSAvLyBuYW1lc3BhY2UgSlNDOjpERkcK
KworI2VuZGlmIC8vIEVOQUJMRShERkdfSklUKQorCisjZW5kaWYgLy8gREZHR3JhcGhTYWZlcG9p
bnRfaAorCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVENvZGUuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklUQ29kZS5jcHAJKHJl
dmlzaW9uIDE2Mzc1MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklUQ29kZS5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTI5LDYgKzI5LDcgQEAKICNpZiBFTkFCTEUoREZHX0pJVCkK
IAogI2luY2x1ZGUgIkNvZGVCbG9jay5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFt
ZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgewogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0pJVENvbXBpbGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0pJVENvbXBpbGVyLmNwcAkocmV2aXNpb24gMTYzNzUyKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb21waWxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTQxLDkgKzQxLDEwIEBACiAjaW5jbHVkZSAiREZHU3BlY3VsYXRpdmVKSVQuaCIKICNpbmNsdWRl
ICJERkdUaHVua3MuaCIKICNpbmNsdWRlICJKU0NKU1ZhbHVlSW5saW5lcy5oIgorI2luY2x1ZGUg
IkxpbmtCdWZmZXIuaCIKICNpbmNsdWRlICJNYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbC5o
IgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJWTS5oIgotI2luY2x1ZGUgIkxp
bmtCdWZmZXIuaCIKIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgewogCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVENvbXBpbGVyLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb21waWxlci5oCShyZXZpc2lvbiAxNjM3
NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVENvbXBpbGVyLmgJKHdvcmtp
bmcgY29weSkKQEAgLTI5LDcgKzI5LDYgQEAKICNpZiBFTkFCTEUoREZHX0pJVCkKIAogI2luY2x1
ZGUgIkNDYWxsSGVscGVycy5oIgotI2luY2x1ZGUgIkNhbGxGcmFtZUlubGluZXMuaCIKICNpbmNs
dWRlICJDb2RlQmxvY2suaCIKICNpbmNsdWRlICJERkdEaXNhc3NlbWJsZXIuaCIKICNpbmNsdWRl
ICJERkdHcmFwaC5oIgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0
Q29tcGlsZXJDb21tb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHT1NSRXhpdENvbXBpbGVyQ29tbW9uLmNwcAkocmV2aXNpb24gMTYzNzUyKQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0Q29tcGlsZXJDb21tb24uY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw3IEBACiAjaWYgRU5BQkxFKERGR19KSVQpCiAKICNpbmNs
dWRlICJBcmd1bWVudHMuaCIKKyNpbmNsdWRlICJERkdKSVRDb2RlLmgiCiAjaW5jbHVkZSAiREZH
T3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIkpJVC5oIgogI2luY2x1ZGUgIkpTQ0pTVmFsdWVJbmxp
bmVzLmgiCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5j
cHAJKHJldmlzaW9uIDE2Mzc1MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3Bl
cmF0aW9ucy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJD
b21tb25TbG93UGF0aHMuaCIKICNpbmNsdWRlICJDb3BpZWRTcGFjZUlubGluZXMuaCIKICNpbmNs
dWRlICJERkdEcml2ZXIuaCIKKyNpbmNsdWRlICJERkdKSVRDb2RlLmgiCiAjaW5jbHVkZSAiREZH
T1NSRXhpdC5oIgogI2luY2x1ZGUgIkRGR1RodW5rcy5oIgogI2luY2x1ZGUgIkRGR1RvRlRMRGVm
ZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrLmgiCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR09wZXJhdGlvbnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR09wZXJhdGlvbnMuaAkocmV2aXNpb24gMTYzNzUyKQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBA
CiAvKgotICogQ29weXJpZ2h0IChDKSAyMDExLCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMSwgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI4
LDcgKzI4LDYgQEAKIAogI2lmIEVOQUJMRShERkdfSklUKQogCi0jaW5jbHVkZSAiREZHSklUQ29t
cGlsZXIuaCIKICNpbmNsdWRlICJKSVRPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiUHV0S2luZC5o
IgogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1BsYW4uY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUGxhbi5jcHAJKHJldmlzaW9uIDE2
Mzc1MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUGxhbi5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTQxLDYgKzQxLDcgQEAKICNpbmNsdWRlICJERkdGYWlsZWRGaW5hbGl6ZXIuaCIK
ICNpbmNsdWRlICJERkdGbHVzaExpdmVuZXNzQW5hbHlzaXNQaGFzZS5oIgogI2luY2x1ZGUgIkRG
R0ZpeHVwUGhhc2UuaCIKKyNpbmNsdWRlICJERkdHcmFwaFNhZmVwb2ludC5oIgogI2luY2x1ZGUg
IkRGR0ludmFsaWRhdGlvblBvaW50SW5qZWN0aW9uUGhhc2UuaCIKICNpbmNsdWRlICJERkdKSVRD
b21waWxlci5oIgogI2luY2x1ZGUgIkRGR0xJQ01QaGFzZS5oIgpAQCAtMTM1LDggKzEzNiwxMCBA
QCBib29sIFBsYW46OnJlcG9ydENvbXBpbGVUaW1lcygpIGNvbnN0CiAgICAgICAgIHx8IChPcHRp
b25zOjpyZXBvcnRGVExDb21waWxlVGltZXMoKSAmJiBpc0ZUTChtb2RlKSk7CiB9CiAKLXZvaWQg
UGxhbjo6Y29tcGlsZUluVGhyZWFkKExvbmdMaXZlZFN0YXRlJiBsb25nTGl2ZWRTdGF0ZSkKK3Zv
aWQgUGxhbjo6Y29tcGlsZUluVGhyZWFkKExvbmdMaXZlZFN0YXRlJiBsb25nTGl2ZWRTdGF0ZSwg
VGhyZWFkRGF0YSogdGhyZWFkRGF0YSkKIHsKKyAgICB0aGlzLT50aHJlYWREYXRhID0gdGhyZWFk
RGF0YTsKKyAgICAKICAgICBkb3VibGUgYmVmb3JlID0gMDsKICAgICBpZiAocmVwb3J0Q29tcGls
ZVRpbWVzKCkpCiAgICAgICAgIGJlZm9yZSA9IGN1cnJlbnRUaW1lTVMoKTsKQEAgLTMxMywxMSAr
MzE2LDE0IEBAIFBsYW46OkNvbXBpbGF0aW9uUGF0aCBQbGFuOjpjb21waWxlSW5UaHIKICAgICAg
ICAgCiAgICAgICAgIGR1bXBBbmRWZXJpZnlHcmFwaChkZmcsICJHcmFwaCBqdXN0IGJlZm9yZSBG
VEwgbG93ZXJpbmc6Iik7CiAgICAgICAgIAotICAgICAgICBpbml0aWFsaXplTExWTSgpOwotICAg
ICAgICAKKyAgICAgICAgeworICAgICAgICAgICAgR3JhcGhTYWZlcG9pbnQgc2FmZXBvaW50KGRm
Zyk7CisgICAgICAgICAgICBpbml0aWFsaXplTExWTSgpOworICAgICAgICB9CisgICAgICAgICAg
ICAKICAgICAgICAgRlRMOjpTdGF0ZSBzdGF0ZShkZmcpOwogICAgICAgICBGVEw6Omxvd2VyREZH
VG9MTFZNKHN0YXRlKTsKLSAgICAgICAgCisgICAgICAgICAgICAKICAgICAgICAgaWYgKHJlcG9y
dENvbXBpbGVUaW1lcygpKQogICAgICAgICAgICAgYmVmb3JlRlRMID0gY3VycmVudFRpbWVNUygp
OwogICAgICAgICAKQEAgLTMyNyw3ICszMzMsNyBAQCBQbGFuOjpDb21waWxhdGlvblBhdGggUGxh
bjo6Y29tcGlsZUluVGhyCiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIEZUTDo6Y29tcGls
ZShzdGF0ZSk7Ci0KKyAgICAgICAgICAgIAogICAgICAgICBpZiAoT3B0aW9uczo6bGx2bUFsd2F5
c0ZhaWxzQmVmb3JlTGluaygpKSB7CiAgICAgICAgICAgICBGVEw6OmZhaWwoc3RhdGUpOwogICAg
ICAgICAgICAgcmV0dXJuIEZUTFBhdGg7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1BsYW4uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Bs
YW4uaAkocmV2aXNpb24gMTYzNzUyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQ
bGFuLmgJKHdvcmtpbmcgY29weSkKQEAgLTUyLDYgKzUyLDcgQEAgY2xhc3MgU2xvdFZpc2l0b3I7
CiBuYW1lc3BhY2UgREZHIHsKIAogY2xhc3MgTG9uZ0xpdmVkU3RhdGU7CitjbGFzcyBUaHJlYWRE
YXRhOwogCiAjaWYgRU5BQkxFKERGR19KSVQpCiAKQEAgLTYyLDcgKzYzLDcgQEAgc3RydWN0IFBs
YW4gOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZQogICAgICAgICBjb25zdCBPcGVyYW5kczxK
U1ZhbHVlPiYgbXVzdEhhbmRsZVZhbHVlcyk7CiAgICAgflBsYW4oKTsKICAgICAKLSAgICB2b2lk
IGNvbXBpbGVJblRocmVhZChMb25nTGl2ZWRTdGF0ZSYpOworICAgIHZvaWQgY29tcGlsZUluVGhy
ZWFkKExvbmdMaXZlZFN0YXRlJiwgVGhyZWFkRGF0YSopOwogICAgIAogICAgIENvbXBpbGF0aW9u
UmVzdWx0IGZpbmFsaXplV2l0aG91dE5vdGlmeWluZ0NhbGxiYWNrKCk7CiAgICAgdm9pZCBmaW5h
bGl6ZUFuZE5vdGlmeUNhbGxiYWNrKCk7CkBAIC03OSw2ICs4MCw4IEBAIHN0cnVjdCBQbGFuIDog
cHVibGljIFRocmVhZFNhZmVSZWZDb3VudGUKICAgICBDb21waWxhdGlvbk1vZGUgbW9kZTsKICAg
ICBjb25zdCB1bnNpZ25lZCBvc3JFbnRyeUJ5dGVjb2RlSW5kZXg7CiAgICAgT3BlcmFuZHM8SlNW
YWx1ZT4gbXVzdEhhbmRsZVZhbHVlczsKKyAgICAKKyAgICBUaHJlYWREYXRhKiB0aHJlYWREYXRh
OwogCiAgICAgUmVmUHRyPFByb2ZpbGVyOjpDb21waWxhdGlvbj4gY29tcGlsYXRpb247CiAKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZXBvaW50LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVwb2ludC5jcHAJKHJldmlzaW9u
IDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVwb2ludC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTAsMCArMSw3NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiREZHU2FmZXBv
aW50LmgiCisKKyNpZiBFTkFCTEUoREZHX0pJVCkKKworI2luY2x1ZGUgIkRGR1BsYW4uaCIKKyNp
bmNsdWRlICJERkdTY2FubmFibGUuaCIKKyNpbmNsdWRlICJERkdUaHJlYWREYXRhLmgiCisKK25h
bWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKKworU2FmZXBvaW50OjpTYWZlcG9pbnQoUGxh
biYgcGxhbikKKyAgICA6IG1fcGxhbihwbGFuKQorICAgICwgbV9kaWRDYWxsQmVnaW4oZmFsc2Up
Cit7Cit9CisKK1NhZmVwb2ludDo6flNhZmVwb2ludCgpCit7CisgICAgUkVMRUFTRV9BU1NFUlQo
bV9kaWRDYWxsQmVnaW4pOworICAgIGlmIChUaHJlYWREYXRhKiBkYXRhID0gbV9wbGFuLnRocmVh
ZERhdGEpCisgICAgICAgIGRhdGEtPm1fcmlnaHRUb1J1bi5sb2NrKCk7Cit9CisKK3ZvaWQgU2Fm
ZXBvaW50OjphZGQoU2Nhbm5hYmxlKiBzY2FubmFibGUpCit7CisgICAgUkVMRUFTRV9BU1NFUlQo
IW1fZGlkQ2FsbEJlZ2luKTsKKyAgICBtX3NjYW5uYWJsZXMuYXBwZW5kKHNjYW5uYWJsZSk7Cit9
CisKK3ZvaWQgU2FmZXBvaW50OjpiZWdpbigpCit7CisgICAgUkVMRUFTRV9BU1NFUlQoIW1fZGlk
Q2FsbEJlZ2luKTsKKyAgICBpZiAoVGhyZWFkRGF0YSogZGF0YSA9IG1fcGxhbi50aHJlYWREYXRh
KQorICAgICAgICBkYXRhLT5tX3JpZ2h0VG9SdW4udW5sb2NrKCk7CisgICAgbV9kaWRDYWxsQmVn
aW4gPSB0cnVlOworfQorCit2b2lkIFNhZmVwb2ludDo6dmlzaXRDaGlsZHJlbihTbG90VmlzaXRv
ciYgdmlzaXRvcikKK3sKKyAgICBSRUxFQVNFX0FTU0VSVChtX2RpZENhbGxCZWdpbik7CisgICAg
Zm9yICh1bnNpZ25lZCBpID0gbV9zY2FubmFibGVzLnNpemUoKTsgaS0tOykKKyAgICAgICAgbV9z
Y2FubmFibGVzW2ldLT52aXNpdENoaWxkcmVuKHZpc2l0b3IpOworfQorCit9IH0gLy8gbmFtZXNw
YWNlIEpTQzo6REZHCisKKyNlbmRpZiAvLyBFTkFCTEUoREZHX0pJVCkKKwpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTYWZlcG9pbnQuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVwb2ludC5oCShyZXZpc2lvbiAwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTYWZlcG9pbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMCww
ICsxLDY0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisK
KyNpZm5kZWYgREZHU2FmZXBvaW50X2gKKyNkZWZpbmUgREZHU2FmZXBvaW50X2gKKworI2lmIEVO
QUJMRShERkdfSklUKQorCisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorCituYW1lc3BhY2UgSlND
IHsKKworY2xhc3MgU2xvdFZpc2l0b3I7CisKK25hbWVzcGFjZSBERkcgeworCitjbGFzcyBTY2Fu
bmFibGU7CitzdHJ1Y3QgUGxhbjsKKworY2xhc3MgU2FmZXBvaW50IHsKK3B1YmxpYzoKKyAgICBT
YWZlcG9pbnQoUGxhbiYpOworICAgIH5TYWZlcG9pbnQoKTsKKyAgICAKKyAgICB2b2lkIGFkZChT
Y2FubmFibGUqKTsKKyAgICAKKyAgICB2b2lkIGJlZ2luKCk7CisgICAgCisgICAgdm9pZCB2aXNp
dENoaWxkcmVuKFNsb3RWaXNpdG9yJik7CisgICAgCitwcml2YXRlOgorICAgIFBsYW4mIG1fcGxh
bjsKKyAgICBWZWN0b3I8U2Nhbm5hYmxlKj4gbV9zY2FubmFibGVzOworICAgIGJvb2wgbV9kaWRD
YWxsQmVnaW47Cit9OworCit9IH0gLy8gbmFtZXNwYWNlIEpTQzo6REZHCisKKyNlbmRpZiAvLyBF
TkFCTEUoREZHX0pJVCkKKworI2VuZGlmIC8vIERGR1NhZmVwb2ludF9oCisKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2Nhbm5hYmxlLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTY2FubmFibGUuaAkocmV2aXNpb24gMCkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2Nhbm5hYmxlLmgJKHdvcmtpbmcgY29weSkKQEAgLTAs
MCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLwor
CisjaWZuZGVmIERGR1NjYW5uYWJsZV9oCisjZGVmaW5lIERGR1NjYW5uYWJsZV9oCisKKyNpZiBF
TkFCTEUoREZHX0pJVCkKKworbmFtZXNwYWNlIEpTQyB7CisKK2NsYXNzIFNsb3RWaXNpdG9yOwor
CituYW1lc3BhY2UgREZHIHsKKworY2xhc3MgU2Nhbm5hYmxlIHsKK3B1YmxpYzoKKyAgICBTY2Fu
bmFibGUoKSB7IH0KKyAgICB2aXJ0dWFsIH5TY2FubmFibGUoKSB7IH0KKyAgICAKKyAgICB2aXJ0
dWFsIHZvaWQgdmlzaXRDaGlsZHJlbihTbG90VmlzaXRvciYpID0gMDsKK307CisKK30gfSAvLyBu
YW1lc3BhY2UgSlNDOjpERkcKKworI2VuZGlmIC8vIEVOQUJMRShERkdfSklUKQorCisjZW5kaWYg
Ly8gREZHU2Nhbm5hYmxlX2gKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdU
aHJlYWREYXRhLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1RocmVhZERhdGEuY3BwCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdUaHJlYWREYXRhLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDQ3IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJERkdUaHJlYWREYXRhLmgiCisKKyNpZiBFTkFCTEUoREZHX0pJVCkK
KworbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgeworCitUaHJlYWREYXRhOjpUaHJlYWRE
YXRhKFdvcmtsaXN0KiB3b3JrbGlzdCkKKyAgICA6IG1fd29ya2xpc3Qod29ya2xpc3QpCisgICAg
LCBtX2lkZW50aWZpZXIoMCkKKyAgICAsIG1fc2FmZXBvaW50KG51bGxwdHIpCit7Cit9CisKK1Ro
cmVhZERhdGE6On5UaHJlYWREYXRhKCkKK3sKK30KKworfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkRG
RworCisjZW5kaWYgLy8gRU5BQkxFKERGR19KSVQpCisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHVGhyZWFkRGF0YS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHVGhyZWFkRGF0YS5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdUaHJlYWREYXRhLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw1OSBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
KyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVm
IERGR1RocmVhZERhdGFfaAorI2RlZmluZSBERkdUaHJlYWREYXRhX2gKKworI2lmIEVOQUJMRShE
RkdfSklUKQorCisjaW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgorI2luY2x1ZGUgPHd0Zi9UaHJl
YWRpbmdQcmltaXRpdmVzLmg+CisKK25hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKKwor
Y2xhc3MgU2FmZXBvaW50OworY2xhc3MgV29ya2xpc3Q7CisKK2NsYXNzIFRocmVhZERhdGEgewor
cHVibGljOgorICAgIFRocmVhZERhdGEoV29ya2xpc3QqKTsKKyAgICB+VGhyZWFkRGF0YSgpOwor
ICAgIAorcHJpdmF0ZToKKyAgICBmcmllbmQgY2xhc3MgU2FmZXBvaW50OworICAgIGZyaWVuZCBj
bGFzcyBXb3JrbGlzdDsKKyAgICAKKyAgICBXb3JrbGlzdCogbV93b3JrbGlzdDsKKyAgICBUaHJl
YWRJZGVudGlmaWVyIG1faWRlbnRpZmllcjsKKyAgICBNdXRleCBtX3JpZ2h0VG9SdW47CisgICAg
U2FmZXBvaW50KiBtX3NhZmVwb2ludDsKK307CisKK30gfSAvLyBuYW1lc3BhY2UgSlNDOjpERkcK
KworI2VuZGlmIC8vIEVOQUJMRShERkdfSklUKQorCisjZW5kaWYgLy8gREZHVGhyZWFkRGF0YV9o
CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVGh1bmtzLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1RodW5rcy5jcHAJKHJldmlzaW9u
IDE2Mzc1MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVGh1bmtzLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkRGR09TUkV4aXRDb21waWxl
ci5oIgogI2luY2x1ZGUgIkZQUkluZm8uaCIKICNpbmNsdWRlICJHUFJJbmZvLmgiCisjaW5jbHVk
ZSAiTGlua0J1ZmZlci5oIgogI2luY2x1ZGUgIk1hY3JvQXNzZW1ibGVyLmgiCiAKIG5hbWVzcGFj
ZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHV29ya2xpc3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHV29ya2xpc3QuY3BwCShyZXZpc2lvbiAxNjM3NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1dvcmtsaXN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzEsNiArMzEsNyBAQAog
I2luY2x1ZGUgIkNvZGVCbG9jay5oIgogI2luY2x1ZGUgIkRlZmVyR0MuaCIKICNpbmNsdWRlICJE
RkdMb25nTGl2ZWRTdGF0ZS5oIgorI2luY2x1ZGUgIkRGR1NhZmVwb2ludC5oIgogI2luY2x1ZGUg
PG11dGV4PgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CkBAIC01Nyw4ICs1OCw3
IEBAIHZvaWQgV29ya2xpc3Q6OmZpbmlzaENyZWF0aW9uKHVuc2lnbmVkIG4KIHsKICAgICBSRUxF
QVNFX0FTU0VSVChudW1iZXJPZlRocmVhZHMpOwogICAgIGZvciAodW5zaWduZWQgaSA9IG51bWJl
ck9mVGhyZWFkczsgaS0tOykgewotICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8VGhyZWFkRGF0YT4g
ZGF0YSA9IHN0ZDo6bWFrZV91bmlxdWU8VGhyZWFkRGF0YT4oKTsKLSAgICAgICAgZGF0YS0+bV93
b3JrbGlzdCA9IHRoaXM7CisgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxUaHJlYWREYXRhPiBkYXRh
ID0gc3RkOjptYWtlX3VuaXF1ZTxUaHJlYWREYXRhPih0aGlzKTsKICAgICAgICAgZGF0YS0+bV9p
ZGVudGlmaWVyID0gY3JlYXRlVGhyZWFkKHRocmVhZEZ1bmN0aW9uLCBkYXRhLmdldCgpLCAiSlND
IENvbXBpbGF0aW9uIFRocmVhZCIpOwogICAgICAgICBtX3RocmVhZHMuYXBwZW5kKHN0ZDo6bW92
ZShkYXRhKSk7CiAgICAgfQpAQCAtMjEwLDYgKzIxMCwxMiBAQCB2b2lkIFdvcmtsaXN0Ojp2aXNp
dENoaWxkcmVuKFNsb3RWaXNpdG9yCiAgICAgICAgIGl0ZXItPmtleS52aXNpdENoaWxkcmVuKGNv
ZGVCbG9ja3MpOwogICAgICAgICBpdGVyLT52YWx1ZS0+dmlzaXRDaGlsZHJlbih2aXNpdG9yLCBj
b2RlQmxvY2tzKTsKICAgICB9CisgICAgCisgICAgZm9yICh1bnNpZ25lZCBpID0gbV90aHJlYWRz
LnNpemUoKTsgaS0tOykgeworICAgICAgICBUaHJlYWREYXRhKiBkYXRhID0gbV90aHJlYWRzW2ld
LmdldCgpOworICAgICAgICBpZiAoU2FmZXBvaW50KiBzYWZlcG9pbnQgPSBkYXRhLT5tX3NhZmVw
b2ludCkKKyAgICAgICAgICAgIHNhZmVwb2ludC0+dmlzaXRDaGlsZHJlbih2aXNpdG9yKTsKKyAg
ICB9CiB9CiAKIHNpemVfdCBXb3JrbGlzdDo6cXVldWVMZW5ndGgoKQpAQCAtMjY1LDcgKzI3MSw3
IEBAIHZvaWQgV29ya2xpc3Q6OnJ1blRocmVhZChUaHJlYWREYXRhKiBkYXQKICAgICAgICAgICAg
IGlmIChPcHRpb25zOjp2ZXJib3NlQ29tcGlsYXRpb25RdWV1ZSgpKQogICAgICAgICAgICAgICAg
IGRhdGFMb2coKnRoaXMsICI6IENvbXBpbGluZyAiLCBwbGFuLT5rZXkoKSwgIiBhc3luY2hyb25v
dXNseVxuIik7CiAgICAgICAgIAotICAgICAgICAgICAgcGxhbi0+Y29tcGlsZUluVGhyZWFkKGxv
bmdMaXZlZFN0YXRlKTsKKyAgICAgICAgICAgIHBsYW4tPmNvbXBpbGVJblRocmVhZChsb25nTGl2
ZWRTdGF0ZSwgZGF0YSk7CiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIHsKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHV29ya2xpc3QuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1dvcmtsaXN0LmgJKHJldmlzaW9uIDE2Mzc1MikKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHV29ya2xpc3QuaAkod29ya2luZyBjb3B5KQpA
QCAtMzEsNiArMzEsNyBAQAogI2lmIEVOQUJMRShERkdfSklUKQogCiAjaW5jbHVkZSAiREZHUGxh
bi5oIgorI2luY2x1ZGUgIkRGR1RocmVhZERhdGEuaCIKICNpbmNsdWRlIDx3dGYvRGVxdWUuaD4K
ICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgpA
QCAtNzcsMTIgKzc4LDYgQEAgcHVibGljOgogICAgIHZvaWQgZHVtcChQcmludFN0cmVhbSYpIGNv
bnN0OwogICAgIAogcHJpdmF0ZToKLSAgICBzdHJ1Y3QgVGhyZWFkRGF0YSB7Ci0gICAgICAgIFdv
cmtsaXN0KiBtX3dvcmtsaXN0OwotICAgICAgICBUaHJlYWRJZGVudGlmaWVyIG1faWRlbnRpZmll
cjsKLSAgICAgICAgTXV0ZXggbV9yaWdodFRvUnVuOwotICAgIH07Ci0gICAgCiAgICAgV29ya2xp
c3QoKTsKICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKHVuc2lnbmVkIG51bWJlck9mVGhyZWFkcyk7
CiAgICAgCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENvbXBpbGUuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ29tcGlsZS5jcHAJKHJl
dmlzaW9uIDE2Mzc1MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ29tcGlsZS5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJDb2RlQmxvY2tX
aXRoSklUVHlwZS5oIgogI2luY2x1ZGUgIkNDYWxsSGVscGVycy5oIgogI2luY2x1ZGUgIkRGR0Nv
bW1vbi5oIgorI2luY2x1ZGUgIkRGR0dyYXBoU2FmZXBvaW50LmgiCiAjaW5jbHVkZSAiRGF0YVZp
ZXcuaCIKICNpbmNsdWRlICJEaXNhc3NlbWJsZXIuaCIKICNpbmNsdWRlICJGVExFeGl0VGh1bmtH
ZW5lcmF0b3IuaCIKQEAgLTQ1Miw3MCArNDUzLDc0IEBAIHZvaWQgY29tcGlsZShTdGF0ZSYgc3Rh
dGUpCiB7CiAgICAgY2hhciogZXJyb3IgPSAwOwogICAgIAotICAgIExMVk1NQ0pJVENvbXBpbGVy
T3B0aW9ucyBvcHRpb25zOwotICAgIGxsdm0tPkluaXRpYWxpemVNQ0pJVENvbXBpbGVyT3B0aW9u
cygmb3B0aW9ucywgc2l6ZW9mKG9wdGlvbnMpKTsKLSAgICBvcHRpb25zLk9wdExldmVsID0gT3B0
aW9uczo6bGx2bUJhY2tlbmRPcHRpbWl6YXRpb25MZXZlbCgpOwotICAgIG9wdGlvbnMuTm9GcmFt
ZVBvaW50ZXJFbGltID0gdHJ1ZTsKLSAgICBpZiAoT3B0aW9uczo6dXNlTExWTVNtYWxsQ29kZU1v
ZGVsKCkpCi0gICAgICAgIG9wdGlvbnMuQ29kZU1vZGVsID0gTExWTUNvZGVNb2RlbFNtYWxsOwot
ICAgIG9wdGlvbnMuRW5hYmxlRmFzdElTZWwgPSBPcHRpb25zOjplbmFibGVMTFZNRmFzdElTZWwo
KTsKLSAgICBvcHRpb25zLk1DSk1NID0gbGx2bS0+Q3JlYXRlU2ltcGxlTUNKSVRNZW1vcnlNYW5h
Z2VyKAotICAgICAgICAmc3RhdGUsIG1tQWxsb2NhdGVDb2RlU2VjdGlvbiwgbW1BbGxvY2F0ZURh
dGFTZWN0aW9uLCBtbUFwcGx5UGVybWlzc2lvbnMsIG1tRGVzdHJveSk7Ci0gICAgCi0gICAgTExW
TUV4ZWN1dGlvbkVuZ2luZVJlZiBlbmdpbmU7Ci0gICAgCi0gICAgaWYgKGxsdm0tPkNyZWF0ZU1D
SklUQ29tcGlsZXJGb3JNb2R1bGUoJmVuZ2luZSwgc3RhdGUubW9kdWxlLCAmb3B0aW9ucywgc2l6
ZW9mKG9wdGlvbnMpLCAmZXJyb3IpKSB7Ci0gICAgICAgIGRhdGFMb2coIkZBVEFMOiBDb3VsZCBu
b3QgY3JlYXRlIExMVk0gZXhlY3V0aW9uIGVuZ2luZTogIiwgZXJyb3IsICJcbiIpOwotICAgICAg
ICBDUkFTSCgpOwotICAgIH0KLQotICAgIExMVk1QYXNzTWFuYWdlclJlZiBmdW5jdGlvblBhc3Nl
cyA9IDA7Ci0gICAgTExWTVBhc3NNYW5hZ2VyUmVmIG1vZHVsZVBhc3NlczsKLSAgICAKLSAgICBp
ZiAoT3B0aW9uczo6bGx2bVNpbXBsZU9wdCgpKSB7Ci0gICAgICAgIG1vZHVsZVBhc3NlcyA9IGxs
dm0tPkNyZWF0ZVBhc3NNYW5hZ2VyKCk7Ci0gICAgICAgIGxsdm0tPkFkZFRhcmdldERhdGEobGx2
bS0+R2V0RXhlY3V0aW9uRW5naW5lVGFyZ2V0RGF0YShlbmdpbmUpLCBtb2R1bGVQYXNzZXMpOwot
ICAgICAgICBsbHZtLT5BZGRQcm9tb3RlTWVtb3J5VG9SZWdpc3RlclBhc3MobW9kdWxlUGFzc2Vz
KTsKLSAgICAgICAgbGx2bS0+QWRkQ29uc3RhbnRQcm9wYWdhdGlvblBhc3MobW9kdWxlUGFzc2Vz
KTsKLSAgICAgICAgbGx2bS0+QWRkSW5zdHJ1Y3Rpb25Db21iaW5pbmdQYXNzKG1vZHVsZVBhc3Nl
cyk7Ci0gICAgICAgIGxsdm0tPkFkZEJhc2ljQWxpYXNBbmFseXNpc1Bhc3MobW9kdWxlUGFzc2Vz
KTsKLSAgICAgICAgbGx2bS0+QWRkVHlwZUJhc2VkQWxpYXNBbmFseXNpc1Bhc3MobW9kdWxlUGFz
c2VzKTsKLSAgICAgICAgbGx2bS0+QWRkR1ZOUGFzcyhtb2R1bGVQYXNzZXMpOwotICAgICAgICBs
bHZtLT5BZGRDRkdTaW1wbGlmaWNhdGlvblBhc3MobW9kdWxlUGFzc2VzKTsKLSAgICAgICAgbGx2
bS0+UnVuUGFzc01hbmFnZXIobW9kdWxlUGFzc2VzLCBzdGF0ZS5tb2R1bGUpOwotICAgIH0gZWxz
ZSB7Ci0gICAgICAgIExMVk1QYXNzTWFuYWdlckJ1aWxkZXJSZWYgcGFzc0J1aWxkZXIgPSBsbHZt
LT5QYXNzTWFuYWdlckJ1aWxkZXJDcmVhdGUoKTsKLSAgICAgICAgbGx2bS0+UGFzc01hbmFnZXJC
dWlsZGVyU2V0T3B0TGV2ZWwocGFzc0J1aWxkZXIsIE9wdGlvbnM6Omxsdm1PcHRpbWl6YXRpb25M
ZXZlbCgpKTsKLSAgICAgICAgbGx2bS0+UGFzc01hbmFnZXJCdWlsZGVyU2V0U2l6ZUxldmVsKHBh
c3NCdWlsZGVyLCBPcHRpb25zOjpsbHZtU2l6ZUxldmVsKCkpOwotICAgICAgICAKLSAgICAgICAg
ZnVuY3Rpb25QYXNzZXMgPSBsbHZtLT5DcmVhdGVGdW5jdGlvblBhc3NNYW5hZ2VyRm9yTW9kdWxl
KHN0YXRlLm1vZHVsZSk7Ci0gICAgICAgIG1vZHVsZVBhc3NlcyA9IGxsdm0tPkNyZWF0ZVBhc3NN
YW5hZ2VyKCk7Ci0gICAgICAgIAotICAgICAgICBsbHZtLT5BZGRUYXJnZXREYXRhKGxsdm0tPkdl
dEV4ZWN1dGlvbkVuZ2luZVRhcmdldERhdGEoZW5naW5lKSwgbW9kdWxlUGFzc2VzKTsKLSAgICAg
ICAgCi0gICAgICAgIGxsdm0tPlBhc3NNYW5hZ2VyQnVpbGRlclBvcHVsYXRlRnVuY3Rpb25QYXNz
TWFuYWdlcihwYXNzQnVpbGRlciwgZnVuY3Rpb25QYXNzZXMpOwotICAgICAgICBsbHZtLT5QYXNz
TWFuYWdlckJ1aWxkZXJQb3B1bGF0ZU1vZHVsZVBhc3NNYW5hZ2VyKHBhc3NCdWlsZGVyLCBtb2R1
bGVQYXNzZXMpOwotICAgICAgICAKLSAgICAgICAgbGx2bS0+UGFzc01hbmFnZXJCdWlsZGVyRGlz
cG9zZShwYXNzQnVpbGRlcik7Ci0gICAgICAgIAotICAgICAgICBsbHZtLT5Jbml0aWFsaXplRnVu
Y3Rpb25QYXNzTWFuYWdlcihmdW5jdGlvblBhc3Nlcyk7Ci0gICAgICAgIGZvciAoTFZhbHVlIGZ1
bmN0aW9uID0gbGx2bS0+R2V0Rmlyc3RGdW5jdGlvbihzdGF0ZS5tb2R1bGUpOyBmdW5jdGlvbjsg
ZnVuY3Rpb24gPSBsbHZtLT5HZXROZXh0RnVuY3Rpb24oZnVuY3Rpb24pKQotICAgICAgICAgICAg
bGx2bS0+UnVuRnVuY3Rpb25QYXNzTWFuYWdlcihmdW5jdGlvblBhc3NlcywgZnVuY3Rpb24pOwot
ICAgICAgICBsbHZtLT5GaW5hbGl6ZUZ1bmN0aW9uUGFzc01hbmFnZXIoZnVuY3Rpb25QYXNzZXMp
OwotICAgICAgICAKLSAgICAgICAgbGx2bS0+UnVuUGFzc01hbmFnZXIobW9kdWxlUGFzc2VzLCBz
dGF0ZS5tb2R1bGUpOwotICAgIH0KLQotICAgIGlmIChERkc6OnNob3VsZFNob3dEaXNhc3NlbWJs
eSgpIHx8IERGRzo6dmVyYm9zZUNvbXBpbGF0aW9uRW5hYmxlZCgpKQotICAgICAgICBzdGF0ZS5k
dW1wU3RhdGUoImFmdGVyIG9wdGltaXphdGlvbiIpOwotICAgIAotICAgIC8vIEZJWE1FOiBOZWVk
IHRvIGFkZCBzdXBwb3J0IGZvciB0aGUgY2FzZSB3aGVyZSBKSVQgbWVtb3J5IGFsbG9jYXRpb24g
ZmFpbGVkLgotICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MTM2MjAKLSAgICBzdGF0ZS5nZW5lcmF0ZWRGdW5jdGlvbiA9IHJlaW50ZXJwcmV0X2Nhc3Q8R2Vu
ZXJhdGVkRnVuY3Rpb24+KGxsdm0tPkdldFBvaW50ZXJUb0dsb2JhbChlbmdpbmUsIHN0YXRlLmZ1
bmN0aW9uKSk7Ci0gICAgaWYgKGZ1bmN0aW9uUGFzc2VzKQotICAgICAgICBsbHZtLT5EaXNwb3Nl
UGFzc01hbmFnZXIoZnVuY3Rpb25QYXNzZXMpOwotICAgIGxsdm0tPkRpc3Bvc2VQYXNzTWFuYWdl
cihtb2R1bGVQYXNzZXMpOwotICAgIGxsdm0tPkRpc3Bvc2VFeGVjdXRpb25FbmdpbmUoZW5naW5l
KTsKKyAgICB7CisgICAgICAgIEdyYXBoU2FmZXBvaW50IHNhZmVwb2ludChzdGF0ZS5ncmFwaCk7
CisgICAgICAgIAorICAgICAgICBMTFZNTUNKSVRDb21waWxlck9wdGlvbnMgb3B0aW9uczsKKyAg
ICAgICAgbGx2bS0+SW5pdGlhbGl6ZU1DSklUQ29tcGlsZXJPcHRpb25zKCZvcHRpb25zLCBzaXpl
b2Yob3B0aW9ucykpOworICAgICAgICBvcHRpb25zLk9wdExldmVsID0gT3B0aW9uczo6bGx2bUJh
Y2tlbmRPcHRpbWl6YXRpb25MZXZlbCgpOworICAgICAgICBvcHRpb25zLk5vRnJhbWVQb2ludGVy
RWxpbSA9IHRydWU7CisgICAgICAgIGlmIChPcHRpb25zOjp1c2VMTFZNU21hbGxDb2RlTW9kZWwo
KSkKKyAgICAgICAgICAgIG9wdGlvbnMuQ29kZU1vZGVsID0gTExWTUNvZGVNb2RlbFNtYWxsOwor
ICAgICAgICBvcHRpb25zLkVuYWJsZUZhc3RJU2VsID0gT3B0aW9uczo6ZW5hYmxlTExWTUZhc3RJ
U2VsKCk7CisgICAgICAgIG9wdGlvbnMuTUNKTU0gPSBsbHZtLT5DcmVhdGVTaW1wbGVNQ0pJVE1l
bW9yeU1hbmFnZXIoCisgICAgICAgICAgICAmc3RhdGUsIG1tQWxsb2NhdGVDb2RlU2VjdGlvbiwg
bW1BbGxvY2F0ZURhdGFTZWN0aW9uLCBtbUFwcGx5UGVybWlzc2lvbnMsIG1tRGVzdHJveSk7Cisg
ICAgCisgICAgICAgIExMVk1FeGVjdXRpb25FbmdpbmVSZWYgZW5naW5lOworICAgIAorICAgICAg
ICBpZiAobGx2bS0+Q3JlYXRlTUNKSVRDb21waWxlckZvck1vZHVsZSgmZW5naW5lLCBzdGF0ZS5t
b2R1bGUsICZvcHRpb25zLCBzaXplb2Yob3B0aW9ucyksICZlcnJvcikpIHsKKyAgICAgICAgICAg
IGRhdGFMb2coIkZBVEFMOiBDb3VsZCBub3QgY3JlYXRlIExMVk0gZXhlY3V0aW9uIGVuZ2luZTog
IiwgZXJyb3IsICJcbiIpOworICAgICAgICAgICAgQ1JBU0goKTsKKyAgICAgICAgfQorCisgICAg
ICAgIExMVk1QYXNzTWFuYWdlclJlZiBmdW5jdGlvblBhc3NlcyA9IDA7CisgICAgICAgIExMVk1Q
YXNzTWFuYWdlclJlZiBtb2R1bGVQYXNzZXM7CisgICAgCisgICAgICAgIGlmIChPcHRpb25zOjps
bHZtU2ltcGxlT3B0KCkpIHsKKyAgICAgICAgICAgIG1vZHVsZVBhc3NlcyA9IGxsdm0tPkNyZWF0
ZVBhc3NNYW5hZ2VyKCk7CisgICAgICAgICAgICBsbHZtLT5BZGRUYXJnZXREYXRhKGxsdm0tPkdl
dEV4ZWN1dGlvbkVuZ2luZVRhcmdldERhdGEoZW5naW5lKSwgbW9kdWxlUGFzc2VzKTsKKyAgICAg
ICAgICAgIGxsdm0tPkFkZFByb21vdGVNZW1vcnlUb1JlZ2lzdGVyUGFzcyhtb2R1bGVQYXNzZXMp
OworICAgICAgICAgICAgbGx2bS0+QWRkQ29uc3RhbnRQcm9wYWdhdGlvblBhc3MobW9kdWxlUGFz
c2VzKTsKKyAgICAgICAgICAgIGxsdm0tPkFkZEluc3RydWN0aW9uQ29tYmluaW5nUGFzcyhtb2R1
bGVQYXNzZXMpOworICAgICAgICAgICAgbGx2bS0+QWRkQmFzaWNBbGlhc0FuYWx5c2lzUGFzcyht
b2R1bGVQYXNzZXMpOworICAgICAgICAgICAgbGx2bS0+QWRkVHlwZUJhc2VkQWxpYXNBbmFseXNp
c1Bhc3MobW9kdWxlUGFzc2VzKTsKKyAgICAgICAgICAgIGxsdm0tPkFkZEdWTlBhc3MobW9kdWxl
UGFzc2VzKTsKKyAgICAgICAgICAgIGxsdm0tPkFkZENGR1NpbXBsaWZpY2F0aW9uUGFzcyhtb2R1
bGVQYXNzZXMpOworICAgICAgICAgICAgbGx2bS0+UnVuUGFzc01hbmFnZXIobW9kdWxlUGFzc2Vz
LCBzdGF0ZS5tb2R1bGUpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgTExWTVBhc3NN
YW5hZ2VyQnVpbGRlclJlZiBwYXNzQnVpbGRlciA9IGxsdm0tPlBhc3NNYW5hZ2VyQnVpbGRlckNy
ZWF0ZSgpOworICAgICAgICAgICAgbGx2bS0+UGFzc01hbmFnZXJCdWlsZGVyU2V0T3B0TGV2ZWwo
cGFzc0J1aWxkZXIsIE9wdGlvbnM6Omxsdm1PcHRpbWl6YXRpb25MZXZlbCgpKTsKKyAgICAgICAg
ICAgIGxsdm0tPlBhc3NNYW5hZ2VyQnVpbGRlclNldFNpemVMZXZlbChwYXNzQnVpbGRlciwgT3B0
aW9uczo6bGx2bVNpemVMZXZlbCgpKTsKKyAgICAgICAgCisgICAgICAgICAgICBmdW5jdGlvblBh
c3NlcyA9IGxsdm0tPkNyZWF0ZUZ1bmN0aW9uUGFzc01hbmFnZXJGb3JNb2R1bGUoc3RhdGUubW9k
dWxlKTsKKyAgICAgICAgICAgIG1vZHVsZVBhc3NlcyA9IGxsdm0tPkNyZWF0ZVBhc3NNYW5hZ2Vy
KCk7CisgICAgICAgIAorICAgICAgICAgICAgbGx2bS0+QWRkVGFyZ2V0RGF0YShsbHZtLT5HZXRF
eGVjdXRpb25FbmdpbmVUYXJnZXREYXRhKGVuZ2luZSksIG1vZHVsZVBhc3Nlcyk7CisgICAgICAg
IAorICAgICAgICAgICAgbGx2bS0+UGFzc01hbmFnZXJCdWlsZGVyUG9wdWxhdGVGdW5jdGlvblBh
c3NNYW5hZ2VyKHBhc3NCdWlsZGVyLCBmdW5jdGlvblBhc3Nlcyk7CisgICAgICAgICAgICBsbHZt
LT5QYXNzTWFuYWdlckJ1aWxkZXJQb3B1bGF0ZU1vZHVsZVBhc3NNYW5hZ2VyKHBhc3NCdWlsZGVy
LCBtb2R1bGVQYXNzZXMpOworICAgICAgICAKKyAgICAgICAgICAgIGxsdm0tPlBhc3NNYW5hZ2Vy
QnVpbGRlckRpc3Bvc2UocGFzc0J1aWxkZXIpOworICAgICAgICAKKyAgICAgICAgICAgIGxsdm0t
PkluaXRpYWxpemVGdW5jdGlvblBhc3NNYW5hZ2VyKGZ1bmN0aW9uUGFzc2VzKTsKKyAgICAgICAg
ICAgIGZvciAoTFZhbHVlIGZ1bmN0aW9uID0gbGx2bS0+R2V0Rmlyc3RGdW5jdGlvbihzdGF0ZS5t
b2R1bGUpOyBmdW5jdGlvbjsgZnVuY3Rpb24gPSBsbHZtLT5HZXROZXh0RnVuY3Rpb24oZnVuY3Rp
b24pKQorICAgICAgICAgICAgICAgIGxsdm0tPlJ1bkZ1bmN0aW9uUGFzc01hbmFnZXIoZnVuY3Rp
b25QYXNzZXMsIGZ1bmN0aW9uKTsKKyAgICAgICAgICAgIGxsdm0tPkZpbmFsaXplRnVuY3Rpb25Q
YXNzTWFuYWdlcihmdW5jdGlvblBhc3Nlcyk7CisgICAgICAgIAorICAgICAgICAgICAgbGx2bS0+
UnVuUGFzc01hbmFnZXIobW9kdWxlUGFzc2VzLCBzdGF0ZS5tb2R1bGUpOworICAgICAgICB9CisK
KyAgICAgICAgaWYgKERGRzo6c2hvdWxkU2hvd0Rpc2Fzc2VtYmx5KCkgfHwgREZHOjp2ZXJib3Nl
Q29tcGlsYXRpb25FbmFibGVkKCkpCisgICAgICAgICAgICBzdGF0ZS5kdW1wU3RhdGUoImFmdGVy
IG9wdGltaXphdGlvbiIpOworICAgIAorICAgICAgICAvLyBGSVhNRTogTmVlZCB0byBhZGQgc3Vw
cG9ydCBmb3IgdGhlIGNhc2Ugd2hlcmUgSklUIG1lbW9yeSBhbGxvY2F0aW9uIGZhaWxlZC4KKyAg
ICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMzYyMAor
ICAgICAgICBzdGF0ZS5nZW5lcmF0ZWRGdW5jdGlvbiA9IHJlaW50ZXJwcmV0X2Nhc3Q8R2VuZXJh
dGVkRnVuY3Rpb24+KGxsdm0tPkdldFBvaW50ZXJUb0dsb2JhbChlbmdpbmUsIHN0YXRlLmZ1bmN0
aW9uKSk7CisgICAgICAgIGlmIChmdW5jdGlvblBhc3NlcykKKyAgICAgICAgICAgIGxsdm0tPkRp
c3Bvc2VQYXNzTWFuYWdlcihmdW5jdGlvblBhc3Nlcyk7CisgICAgICAgIGxsdm0tPkRpc3Bvc2VQ
YXNzTWFuYWdlcihtb2R1bGVQYXNzZXMpOworICAgICAgICBsbHZtLT5EaXNwb3NlRXhlY3V0aW9u
RW5naW5lKGVuZ2luZSk7CisgICAgfQogCiAgICAgaWYgKHNob3VsZFNob3dEaXNhc3NlbWJseSgp
KSB7CiAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBzdGF0ZS5qaXRDb2RlLT5oYW5k
bGVzKCkuc2l6ZSgpOyArK2kpIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRM
TGluay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMaW5r
LmNwcAkocmV2aXNpb24gMTYzNzUyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExM
aW5rLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAsNyArMzAsNiBAQAogCiAjaW5jbHVkZSAiQXJp
dHlDaGVja0ZhaWxSZXR1cm5UaHVua3MuaCIKICNpbmNsdWRlICJDQ2FsbEhlbHBlcnMuaCIKLSNp
bmNsdWRlICJDYWxsRnJhbWVJbmxpbmVzLmgiCiAjaW5jbHVkZSAiQ29kZUJsb2NrV2l0aEpJVFR5
cGUuaCIKICNpbmNsdWRlICJERkdDb21tb24uaCIKICNpbmNsdWRlICJGVExKSVRDb2RlLmgiCkBA
IC0zOCw2ICszNyw3IEBACiAjaW5jbHVkZSAiSklUU3R1YnMuaCIKICNpbmNsdWRlICJMTFZNQVBJ
LmgiCiAjaW5jbHVkZSAiTGlua0J1ZmZlci5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNp
bmNsdWRlICJQcm9maWxlckNvbXBpbGF0aW9uLmgiCiAjaW5jbHVkZSAiVmlydHVhbFJlZ2lzdGVy
LmgiCiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT1NSRXhpdENvbXBpbGVy
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE9TUkV4aXRD
b21waWxlci5jcHAJKHJldmlzaW9uIDE2Mzc1MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9m
dGwvRlRMT1NSRXhpdENvbXBpbGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzQsNiArMzQsNyBA
QAogI2luY2x1ZGUgIkZUTEpJVENvZGUuaCIKICNpbmNsdWRlICJGVExPU1JFeGl0LmgiCiAjaW5j
bHVkZSAiRlRMU2F2ZVJlc3RvcmUuaCIKKyNpbmNsdWRlICJMaW5rQnVmZmVyLmgiCiAjaW5jbHVk
ZSAiTWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwuaCIKICNpbmNsdWRlICJPcGVyYW5kc0lu
bGluZXMuaCIKICNpbmNsdWRlICJPcGVyYXRpb25zLmgiCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZnRsL0ZUTFNsb3dQYXRoQ2FsbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Z0bC9GVExTbG93UGF0aENhbGwuY3BwCShyZXZpc2lvbiAxNjM3NTIpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFNsb3dQYXRoQ2FsbC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTI5LDkgKzI5LDkgQEAKICNpZiBFTkFCTEUoRlRMX0pJVCkKIAogI2luY2x1ZGUgIkND
YWxsSGVscGVycy5oIgotI2luY2x1ZGUgIkNhbGxGcmFtZUlubGluZXMuaCIKICNpbmNsdWRlICJG
VExTdGF0ZS5oIgogI2luY2x1ZGUgIkdQUkluZm8uaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgi
CiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgRlRMIHsKIApJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Z0bC9GVExUaHVua3MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9mdGwvRlRMVGh1bmtzLmNwcAkocmV2aXNpb24gMTYzNzUyKQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Z0bC9GVExUaHVua3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjcsNyAr
MTI3LDcgQEAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIHNsb3dQYXRoQ2FsbFRodW5rRwogICAgIGpp
dC5wcmVzZXJ2ZVJldHVybkFkZHJlc3NBZnRlckNhbGwoR1BSSW5mbzo6bm9uQXJnR1BSMCk7CiAg
ICAgaml0LnN0b3JlUHRyKEdQUkluZm86Om5vbkFyZ0dQUjAsIEFzc2VtYmx5SGVscGVyczo6QWRk
cmVzcyhNYWNyb0Fzc2VtYmxlcjo6c3RhY2tQb2ludGVyUmVnaXN0ZXIsIGtleS5vZmZzZXQoKSkp
OwogICAgIAotICAgIEpJVENvbXBpbGVyOjpDYWxsIGNhbGwgPSBqaXQuY2FsbCgpOworICAgIEFz
c2VtYmx5SGVscGVyczo6Q2FsbCBjYWxsID0gaml0LmNhbGwoKTsKIAogICAgIC8vIEZJWE1FOiBD
U3RhY2sgLSBOZWVkIHRvIGRvIHNvbWV0aGluZyBsaWtlIGppdC5lbWl0RnVuY3Rpb25FcGlsb2d1
ZSgpOwogICAgIGppdC5sb2FkUHRyKEFzc2VtYmx5SGVscGVyczo6QWRkcmVzcyhNYWNyb0Fzc2Vt
Ymxlcjo6c3RhY2tQb2ludGVyUmVnaXN0ZXIsIGtleS5vZmZzZXQoKSksIEdQUkluZm86Om5vblBy
ZXNlcnZlZE5vblJldHVybkdQUik7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9T
bG90VmlzaXRvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1Ns
b3RWaXNpdG9yLmgJKHJldmlzaW9uIDE2Mzc1MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9o
ZWFwL1Nsb3RWaXNpdG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTY4LDYgKzY4LDkgQEAgcHVibGlj
OgogICAgIHZvaWQgYXBwZW5kVW5iYXJyaWVyZWRWYWx1ZShKU1ZhbHVlKik7CiAgICAgdGVtcGxh
dGU8dHlwZW5hbWUgVD4KICAgICB2b2lkIGFwcGVuZFVuYmFycmllcmVkV2VhayhXZWFrPFQ+Kik7
CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KKyAgICB2b2lkIGFwcGVuZFVuYmFycmllcmVkUmVh
ZE9ubHlQb2ludGVyKFQqKTsKKyAgICB2b2lkIGFwcGVuZFVuYmFycmllcmVkUmVhZE9ubHlWYWx1
ZShKU1ZhbHVlKTsKICAgICB2b2lkIHVuY29uZGl0aW9uYWxseUFwcGVuZChKU0NlbGwqKTsKICAg
ICAKICAgICB2b2lkIGFkZE9wYXF1ZVJvb3Qodm9pZCopOwpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2hlYXAvU2xvdFZpc2l0b3JJbmxpbmVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2hlYXAvU2xvdFZpc2l0b3JJbmxpbmVzLmgJKHJldmlzaW9uIDE2Mzc1MikK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1Nsb3RWaXNpdG9ySW5saW5lcy5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC01MSw2ICs1MSwxMiBAQCBpbmxpbmUgdm9pZCBTbG90VmlzaXRvcjo6YXBw
ZW5kVW5iYXJyaWVyCiAgICAgaW50ZXJuYWxBcHBlbmQoc2xvdCwgY2VsbCk7CiB9CiAKK3RlbXBs
YXRlPHR5cGVuYW1lIFQ+CitpbmxpbmUgdm9pZCBTbG90VmlzaXRvcjo6YXBwZW5kVW5iYXJyaWVy
ZWRSZWFkT25seVBvaW50ZXIoVCogY2VsbCkKK3sKKyAgICBpbnRlcm5hbEFwcGVuZCgwLCBjZWxs
KTsKK30KKwogQUxXQVlTX0lOTElORSB2b2lkIFNsb3RWaXNpdG9yOjphcHBlbmQoSlNWYWx1ZSog
c2xvdCkKIHsKICAgICBBU1NFUlQoc2xvdCk7CkBAIC02Myw2ICs2OSwxMSBAQCBBTFdBWVNfSU5M
SU5FIHZvaWQgU2xvdFZpc2l0b3I6OmFwcGVuZFVuCiAgICAgaW50ZXJuYWxBcHBlbmQoc2xvdCwg
KnNsb3QpOwogfQogCitBTFdBWVNfSU5MSU5FIHZvaWQgU2xvdFZpc2l0b3I6OmFwcGVuZFVuYmFy
cmllcmVkUmVhZE9ubHlWYWx1ZShKU1ZhbHVlIHZhbHVlKQoreworICAgIGludGVybmFsQXBwZW5k
KDAsIHZhbHVlKTsKK30KKwogQUxXQVlTX0lOTElORSB2b2lkIFNsb3RWaXNpdG9yOjphcHBlbmQo
SlNDZWxsKiogc2xvdCkKIHsKICAgICBBU1NFUlQoc2xvdCk7CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaW5zcGVjdG9yL1NjcmlwdENhbGxTdGFja0ZhY3RvcnkuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvU2NyaXB0Q2FsbFN0YWNrRmFjdG9y
eS5jcHAJKHJldmlzaW9uIDE2Mzc1MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0
b3IvU2NyaXB0Q2FsbFN0YWNrRmFjdG9yeS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM1LDkgKzM1
LDkgQEAKIAogI2luY2x1ZGUgIkFyZ0xpc3QuaCIKICNpbmNsdWRlICJDYWxsRnJhbWUuaCIKLSNp
bmNsdWRlICJDYWxsRnJhbWVJbmxpbmVzLmgiCiAjaW5jbHVkZSAiSlNDSlNWYWx1ZS5oIgogI2lu
Y2x1ZGUgIkpTRnVuY3Rpb24uaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAi
U2NyaXB0QXJndW1lbnRzLmgiCiAjaW5jbHVkZSAiU2NyaXB0Q2FsbEZyYW1lLmgiCiAjaW5jbHVk
ZSAiU2NyaXB0Q2FsbFN0YWNrLmgiCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJw
cmV0ZXIvUHJvdG9DYWxsRnJhbWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnRlcnByZXRlci9Qcm90b0NhbGxGcmFtZS5jcHAJKHJldmlzaW9uIDE2Mzc1MikKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9Qcm90b0NhbGxGcmFtZS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJQcm90b0NhbGxGcmFtZS5o
IgogCiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2lu
Y2x1ZGUgIlN0YWNrQWxpZ25tZW50LmgiCiAKIG5hbWVzcGFjZSBKU0MgewpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRFeGNlcHRpb25zLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVEV4Y2VwdGlvbnMuY3BwCShyZXZpc2lvbiAxNjM3NTIp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVEV4Y2VwdGlvbnMuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0yNyw3ICsyNyw2IEBACiAjaW5jbHVkZSAiSklURXhjZXB0aW9ucy5oIgogCiAj
aW5jbHVkZSAiQ2FsbEZyYW1lLmgiCi0jaW5jbHVkZSAiQ2FsbEZyYW1lSW5saW5lcy5oIgogI2lu
Y2x1ZGUgIkNvZGVCbG9jay5oIgogI2luY2x1ZGUgIkludGVycHJldGVyLmgiCiAjaW5jbHVkZSAi
SklUU3R1YnMuaCIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lcy5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lcy5oCShy
ZXZpc2lvbiAxNjM3NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZXMu
aAkod29ya2luZyBjb3B5KQpAQCAtMjksNyArMjksNyBAQAogCiAjaWYgRU5BQkxFKEpJVCkKIAot
I2luY2x1ZGUgIkNhbGxGcmFtZUlubGluZXMuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAK
IG5hbWVzcGFjZSBKU0MgewogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9w
ZXJhdGlvbnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
T3BlcmF0aW9ucy5jcHAJKHJldmlzaW9uIDE2Mzc1MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5LDcgKzI5LDYgQEAK
IAogI2luY2x1ZGUgIkFyZ3VtZW50cy5oIgogI2luY2x1ZGUgIkFycmF5Q29uc3RydWN0b3IuaCIK
LSNpbmNsdWRlICJDYWxsRnJhbWVJbmxpbmVzLmgiCiAjaW5jbHVkZSAiREZHQ29tcGlsYXRpb25N
b2RlLmgiCiAjaW5jbHVkZSAiREZHRHJpdmVyLmgiCiAjaW5jbHVkZSAiREZHT1NSRW50cnkuaCIK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVwYXRjaC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZXBhdGNoLmNwcAkocmV2aXNpb24gMTYzNzUy
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZXBhdGNoLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMjksNyArMjksNiBAQAogI2lmIEVOQUJMRShKSVQpCiAKICNpbmNsdWRlICJDQ2FsbEhl
bHBlcnMuaCIKLSNpbmNsdWRlICJDYWxsRnJhbWVJbmxpbmVzLmgiCiAjaW5jbHVkZSAiREZHT3Bl
cmF0aW9ucy5oIgogI2luY2x1ZGUgIkRGR1NwZWN1bGF0aXZlSklULmgiCiAjaW5jbHVkZSAiRlRM
VGh1bmtzLmgiCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZUdl
bmVyYXRvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVy
L1Byb2ZpbGVHZW5lcmF0b3IuY3BwCShyZXZpc2lvbiAxNjM3NTIpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZUdlbmVyYXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTI3LDcgKzI3LDYgQEAKICNpbmNsdWRlICJQcm9maWxlR2VuZXJhdG9yLmgiCiAKICNpbmNsdWRl
ICJDYWxsRnJhbWUuaCIKLSNpbmNsdWRlICJDYWxsRnJhbWVJbmxpbmVzLmgiCiAjaW5jbHVkZSAi
Q29kZUJsb2NrLmgiCiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKICNpbmNsdWRlICJKU1N0
cmluZ1JlZi5oIgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJndW1lbnRz
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVu
dHMuY3BwCShyZXZpc2lvbiAxNjM3NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9Bcmd1bWVudHMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNSw3ICsyNSw2IEBACiAjaW5jbHVk
ZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiQXJndW1lbnRzLmgiCiAKLSNpbmNsdWRlICJDYWxsRnJh
bWVJbmxpbmVzLmgiCiAjaW5jbHVkZSAiSlNBY3RpdmF0aW9uLmgiCiAjaW5jbHVkZSAiSlNBcmd1
bWVudHNJdGVyYXRvci5oIgogI2luY2x1ZGUgIkpTRnVuY3Rpb24uaCIKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ3VtZW50c0l0ZXJhdG9yUHJvdG90eXBlLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHNJdGVyYXRv
clByb3RvdHlwZS5jcHAJKHJldmlzaW9uIDE2Mzc1MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0FyZ3VtZW50c0l0ZXJhdG9yUHJvdG90eXBlLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIkFyZ3VtZW50c0l0ZXJhdG9yUHJvdG90eXBlLmgi
CiAKICNpbmNsdWRlICJKU0FyZ3VtZW50c0l0ZXJhdG9yLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9u
cy5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvQ29tbW9uU2xvd1BhdGhzRXhjZXB0aW9ucy5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzRXhjZXB0aW9ucy5jcHAJKHJl
dmlzaW9uIDE2Mzc1MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNs
b3dQYXRoc0V4Y2VwdGlvbnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw2ICszMCw3IEBACiAj
aW5jbHVkZSAiQ29kZUJsb2NrLmgiCiAjaW5jbHVkZSAiSklURXhjZXB0aW9ucy5oIgogI2luY2x1
ZGUgIkxMSW50Q29tbW9uLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiBuYW1lc3BhY2Ug
SlNDIHsgbmFtZXNwYWNlIENvbW1vblNsb3dQYXRocyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTQXJndW1lbnRzSXRlcmF0b3IuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJndW1lbnRzSXRlcmF0b3IuY3BwCShyZXZp
c2lvbiAxNjM3NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FyZ3VtZW50
c0l0ZXJhdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUg
IkpTQXJndW1lbnRzSXRlcmF0b3IuaCIKIAogI2luY2x1ZGUgIkFyZ3VtZW50cy5oIgorI2luY2x1
ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uY3BwCShyZXZpc2lvbiAxNjM3NTIpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMjksNyArMjksNiBAQAogI2luY2x1ZGUgIkNvZGVCbG9jay5oIgogI2luY2x1ZGUg
IkNvbW1vbklkZW50aWZpZXJzLmgiCiAjaW5jbHVkZSAiQ2FsbEZyYW1lLmgiCi0jaW5jbHVkZSAi
Q2FsbEZyYW1lSW5saW5lcy5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkhlbHBlcnMuaCIKICNpbmNs
dWRlICJGdW5jdGlvblByb3RvdHlwZS5oIgogI2luY2x1ZGUgIkdldHRlclNldHRlci5oIgpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFs
T2JqZWN0RnVuY3Rpb25zLmNwcAkocmV2aXNpb24gMTYzNzUyKQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0yNiw3ICsyNiw2IEBACiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuaCIK
IAogI2luY2x1ZGUgIkNhbGxGcmFtZS5oIgotI2luY2x1ZGUgIkNhbGxGcmFtZUlubGluZXMuaCIK
ICNpbmNsdWRlICJJbnRlcnByZXRlci5oIgogI2luY2x1ZGUgIkpTRnVuY3Rpb24uaCIKICNpbmNs
dWRlICJKU0dsb2JhbE9iamVjdC5oIgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvT2JqZWN0Q29uc3RydWN0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmNwcAkocmV2aXNpb24gMTYzNzUyKQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yMiw3ICsyMiw2IEBACiAjaW5jbHVkZSAiT2JqZWN0Q29uc3RydWN0b3Iu
aCIKIAogI2luY2x1ZGUgIkJ1dHRlcmZseUlubGluZXMuaCIKLSNpbmNsdWRlICJDYWxsRnJhbWVJ
bmxpbmVzLmgiCiAjaW5jbHVkZSAiQ29waWVkU3BhY2VJbmxpbmVzLmgiCiAjaW5jbHVkZSAiRXJy
b3IuaCIKICNpbmNsdWRlICJFeGNlcHRpb25IZWxwZXJzLmgiCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9PcGVyYXRpb25zLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvT3BlcmF0aW9ucy5oCShyZXZpc2lvbiAxNjM3NTIpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcGVyYXRpb25zLmgJKHdvcmtpbmcgY29weSkKQEAg
LTEsNiArMSw2IEBACiAvKgogICogIENvcHlyaWdodCAoQykgMTk5OS0yMDAwIEhhcnJpIFBvcnRl
biAocG9ydGVuQGtkZS5vcmcpCi0gKiAgQ29weXJpZ2h0IChDKSAyMDAyLCAyMDA1LCAyMDA2LCAy
MDA3LCAyMDA4LCAyMDA5LCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
ICBDb3B5cmlnaHQgKEMpIDIwMDIsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDksIDIwMTMs
IDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqICBUaGlzIGxpYnJh
cnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiAg
bW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMKQEAgLTIyLDYgKzIyLDcgQEAKICNpZm5kZWYgT3BlcmF0aW9uc19oCiAjZGVmaW5lIE9wZXJh
dGlvbnNfaAogCisjaW5jbHVkZSAiQ2FsbEZyYW1lSW5saW5lcy5oIgogI2luY2x1ZGUgIkV4Y2Vw
dGlvbkhlbHBlcnMuaCIKICNpbmNsdWRlICJHQ0luY29taW5nUmVmQ291bnRlZElubGluZXMuaCIK
ICNpbmNsdWRlICJJbnRlcnByZXRlci5oIgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvVk0uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1ZNLmNwcAkocmV2aXNpb24gMTYzNzUyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvVk0uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw3ICszMiw2IEBACiAjaW5jbHVkZSAiQXJn
TGlzdC5oIgogI2luY2x1ZGUgIkFyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzLmgiCiAjaW5jbHVk
ZSAiQXJyYXlCdWZmZXJOZXV0ZXJpbmdXYXRjaHBvaW50LmgiCi0jaW5jbHVkZSAiQ2FsbEZyYW1l
SW5saW5lcy5oIgogI2luY2x1ZGUgIkNvZGVCbG9jay5oIgogI2luY2x1ZGUgIkNvZGVDYWNoZS5o
IgogI2luY2x1ZGUgIkNvbW1vbklkZW50aWZpZXJzLmgiCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>223645</attachid>
            <date>2014-02-09 13:08:49 -0800</date>
            <delta_ts>2014-02-09 13:13:14 -0800</delta_ts>
            <desc>the ptch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>81714</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTYzNzUyKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEwNCBA
QAorMjAxNC0wMi0wOSAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgorCisgICAgICAg
IEdDIGJsb2NrcyBvbiBGVEwgYW5kIHRoZW4gYmFkbmVzcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI4MjkxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisgICAgICAgIAorICAgICAgICBJbnRyb2R1Y2UgdGhlIG5vdGlvbiBv
ZiBhIERGRzo6U2FmZXBvaW50LCB3aGljaCBhbGxvd3MgeW91IHRvIHVubG9jayB0aGUgcmlnaHRU
b1J1bgorICAgICAgICBtdXRleCBmb3IgeW91ciBKSVQgdGhyZWFkLCB3aGlsZSBzdXBwbHlpbmcg
dGhlIEdDIHdpdGggYWxsIG9mIHRoZSBpbmZvcm1hdGlvbiBpdCB3b3VsZAorICAgICAgICBuZWVk
IHRvIHNjYW4geW91IGF0IHRoYXQgbW9tZW50IGluIHRpbWUuIFRoZSBkZWZhdWx0IHdheSBvZiB1
c2luZyB0aGlzIGlzCisgICAgICAgIERGRzo6R3JhcGhTYWZlcG9pbnQsIHdoZXJlIHlvdSBqdXN0
IHN1cHBseSB0aGUgR3JhcGguIFRoZXJlJ3MgYSBsb3Qgb2YgbWFjaGluZXJ5IGluCisgICAgICAg
IHRoaXMgcGF0Y2gganVzdCB0byBtYWtlIHRoZSBHcmFwaCBzY2FubmFibGUuCisgICAgICAgIAor
ICAgICAgICBXZSB0aGVuIHVzZSBERkc6OkdyYXBoU2FmZXBvaW50IGluIGp1c3QgdHdvIHBsYWNl
cyBmb3Igbm93OiAoMSkgd2hpbGUgaW5pdGlhbGl6aW5nIExMVk0KKyAgICAgICAgYW5kICgyKSB3
aGlsZSBpbnZva2luZyBMTFZNJyBvcHRpbWl6ZXIgYW5kIGJhY2tlbmQuCisgICAgICAgIAorICAg
ICAgICBNYWtpbmcgdGhpcyBjaGFuZ2Ugd2FzIGRpZmZpY3VsdCBiZWNhdXNlIEkgcmFuIGludG8g
dGhlIGxpbWl0cyBvZiBvdXIgbGFjayBvZiBoZWFkZXIKKyAgICAgICAgZmlsZSBkaXNjaXBsaW5l
LiBFdmVuIHRob3VnaCBPcGVyYXRpb25zLmggaXMgbWVhbnQgdG8gYmUgdGhlIHRoaW5nIHRoYXQg
aXMgb25seQorICAgICAgICBpbmNsdWRlZCBmcm9tIC5jcHAgZmlsZXMsIGl0IHdhcyBpbmNsdWRl
ZCBmcm9tIENvZGVCbG9jay5oLiBTaW1pbGFybHksCisgICAgICAgIENhbGxGcmFtZUlubGluZXMu
aCB3YXMgaW5jbHVkZWQgZnJvbSBERkdKSVRDb21waWxlci5oLiBUaGVuLCBDYWxsTGlua0luZm8u
aCBpbmNsdWRlZAorICAgICAgICBERkdHcmFwaC5oLiBJdCB3YXMgYSB0b3RhbCBtZXNzLiBJIHVu
cmF2ZWxlZCB0aGlzIG1lc3MgdG8gZ2V0IG15IGNvZGUgdG8gYnVpbGQuCisKKyAgICAgICAgKiBB
UEkvSlNDb250ZXh0UmVmLmNwcDoKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAg
KiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnZjeHByb2ov
SmF2YVNjcmlwdENvcmUudmN4cHJvajoKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGFzc2VtYmxlci9MaW5rQnVmZmVyLmNwcDoK
KyAgICAgICAgKiBieXRlY29kZS9Db2RlQmxvY2suY3BwOgorICAgICAgICAqIGJ5dGVjb2RlL0Nv
ZGVCbG9jay5oOgorICAgICAgICAqIGJ5dGVjb2RlL1Byb2ZpbGVkQ29kZUJsb2NrSmV0dGlzb25p
bmdXYXRjaHBvaW50LmNwcDoKKyAgICAgICAgKiBkZWJ1Z2dlci9EZWJ1Z2dlckNhbGxGcmFtZS5j
cHA6CisgICAgICAgICogZGZnL0RGR0Rlc2lyZWRUcmFuc2l0aW9ucy5jcHA6CisgICAgICAgICog
ZGZnL0RGR0RyaXZlci5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Y29tcGlsZUltcGwpOgorICAg
ICAgICAqIGRmZy9ERkdHcmFwaC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6R3JhcGg6OnZpc2l0
Q2hpbGRyZW4pOgorICAgICAgICAqIGRmZy9ERkdHcmFwaC5oOgorICAgICAgICAqIGRmZy9ERkdH
cmFwaFNhZmVwb2ludC5jcHA6IEFkZGVkLgorICAgICAgICAoSlNDOjpERkc6OkdyYXBoU2FmZXBv
aW50OjpHcmFwaFNhZmVwb2ludCk6CisgICAgICAgIChKU0M6OkRGRzo6R3JhcGhTYWZlcG9pbnQ6
On5HcmFwaFNhZmVwb2ludCk6CisgICAgICAgICogZGZnL0RGR0dyYXBoU2FmZXBvaW50Lmg6IEFk
ZGVkLgorICAgICAgICAqIGRmZy9ERkdKSVRDb2RlLmNwcDoKKyAgICAgICAgKiBkZmcvREZHSklU
Q29tcGlsZXIuY3BwOgorICAgICAgICAqIGRmZy9ERkdKSVRDb21waWxlci5oOgorICAgICAgICAq
IGRmZy9ERkdPU1JFeGl0Q29tcGlsZXJDb21tb24uY3BwOgorICAgICAgICAqIGRmZy9ERkdPcGVy
YXRpb25zLmNwcDoKKyAgICAgICAgKiBkZmcvREZHT3BlcmF0aW9ucy5oOgorICAgICAgICAqIGRm
Zy9ERkdQbGFuLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpQbGFuOjpjb21waWxlSW5UaHJlYWQp
OgorICAgICAgICAoSlNDOjpERkc6OlBsYW46OmNvbXBpbGVJblRocmVhZEltcGwpOgorICAgICAg
ICAqIGRmZy9ERkdQbGFuLmg6CisgICAgICAgICogZGZnL0RGR1NhZmVwb2ludC5jcHA6IEFkZGVk
LgorICAgICAgICAoSlNDOjpERkc6OlNhZmVwb2ludDo6U2FmZXBvaW50KToKKyAgICAgICAgKEpT
Qzo6REZHOjpTYWZlcG9pbnQ6On5TYWZlcG9pbnQpOgorICAgICAgICAoSlNDOjpERkc6OlNhZmVw
b2ludDo6YWRkKToKKyAgICAgICAgKEpTQzo6REZHOjpTYWZlcG9pbnQ6OmJlZ2luKToKKyAgICAg
ICAgKEpTQzo6REZHOjpTYWZlcG9pbnQ6OnZpc2l0Q2hpbGRyZW4pOgorICAgICAgICAqIGRmZy9E
RkdTYWZlcG9pbnQuaDogQWRkZWQuCisgICAgICAgICogZGZnL0RGR1NjYW5uYWJsZS5oOiBBZGRl
ZC4KKyAgICAgICAgKEpTQzo6REZHOjpTY2FubmFibGU6OlNjYW5uYWJsZSk6CisgICAgICAgIChK
U0M6OkRGRzo6U2Nhbm5hYmxlOjp+U2Nhbm5hYmxlKToKKyAgICAgICAgKiBkZmcvREZHVGhyZWFk
RGF0YS5jcHA6IEFkZGVkLgorICAgICAgICAoSlNDOjpERkc6OlRocmVhZERhdGE6OlRocmVhZERh
dGEpOgorICAgICAgICAoSlNDOjpERkc6OlRocmVhZERhdGE6On5UaHJlYWREYXRhKToKKyAgICAg
ICAgKiBkZmcvREZHVGhyZWFkRGF0YS5oOiBBZGRlZC4KKyAgICAgICAgKiBkZmcvREZHVGh1bmtz
LmNwcDoKKyAgICAgICAgKiBkZmcvREZHV29ya2xpc3QuY3BwOgorICAgICAgICAoSlNDOjpERkc6
OldvcmtsaXN0OjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgIChKU0M6OkRGRzo6V29ya2xpc3Q6
OnZpc2l0Q2hpbGRyZW4pOgorICAgICAgICAoSlNDOjpERkc6OldvcmtsaXN0OjpydW5UaHJlYWQp
OgorICAgICAgICAqIGRmZy9ERkdXb3JrbGlzdC5oOgorICAgICAgICAqIGZ0bC9GVExDb21waWxl
LmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpjb21waWxlKToKKyAgICAgICAgKiBmdGwvRlRMTGlu
ay5jcHA6CisgICAgICAgICogZnRsL0ZUTE9TUkV4aXRDb21waWxlci5jcHA6CisgICAgICAgICog
ZnRsL0ZUTFNsb3dQYXRoQ2FsbC5jcHA6CisgICAgICAgICogZnRsL0ZUTFRodW5rcy5jcHA6Cisg
ICAgICAgIChKU0M6OkZUTDo6c2xvd1BhdGhDYWxsVGh1bmtHZW5lcmF0b3IpOgorICAgICAgICAq
IGhlYXAvU2xvdFZpc2l0b3IuaDoKKyAgICAgICAgKiBoZWFwL1Nsb3RWaXNpdG9ySW5saW5lcy5o
OgorICAgICAgICAoSlNDOjpTbG90VmlzaXRvcjo6YXBwZW5kVW5iYXJyaWVyZWRSZWFkT25seVBv
aW50ZXIpOgorICAgICAgICAoSlNDOjpTbG90VmlzaXRvcjo6YXBwZW5kVW5iYXJyaWVyZWRSZWFk
T25seVZhbHVlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvU2NyaXB0Q2FsbFN0YWNrRmFjdG9yeS5j
cHA6CisgICAgICAgICogaW50ZXJwcmV0ZXIvUHJvdG9DYWxsRnJhbWUuY3BwOgorICAgICAgICAq
IGppdC9KSVRFeGNlcHRpb25zLmNwcDoKKyAgICAgICAgKiBqaXQvSklUSW5saW5lcy5oOgorICAg
ICAgICAqIGppdC9KSVRPcGVyYXRpb25zLmNwcDoKKyAgICAgICAgKiBqaXQvUmVwYXRjaC5jcHA6
CisgICAgICAgICoganNjLmNwcDoKKyAgICAgICAgKiBwcm9maWxlci9Qcm9maWxlR2VuZXJhdG9y
LmNwcDoKKyAgICAgICAgKiBydW50aW1lL0FyZ3VtZW50cy5jcHA6CisgICAgICAgICogcnVudGlt
ZS9Bcmd1bWVudHNJdGVyYXRvclByb3RvdHlwZS5jcHA6CisgICAgICAgICogcnVudGltZS9Db21t
b25TbG93UGF0aHNFeGNlcHRpb25zLmNwcDoKKyAgICAgICAgKiBydW50aW1lL0pTQXJndW1lbnRz
SXRlcmF0b3IuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvSlNGdW5jdGlvbi5jcHA6CisgICAgICAg
ICogcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5jcHA6CisgICAgICAgICogcnVudGlt
ZS9PYmplY3RDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgICogcnVudGltZS9PcGVyYXRpb25zLmg6
CisgICAgICAgICogcnVudGltZS9WTS5jcHA6CisKIDIwMTQtMDItMDkgIEFuZGVycyBDYXJsc3Nv
biAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAgICAgICBDb252ZXJ0IHNvbWUgSlNDIGNvZGUg
b3ZlciB0byBzdGQ6Om11dGV4CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0
cy50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0
CShyZXZpc2lvbiAxNjM3NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50
eHQJKHdvcmtpbmcgY29weSkKQEAgLTEzOCw2ICsxMzgsNyBAQCBzZXQoSmF2YVNjcmlwdENvcmVf
U09VUkNFUwogICAgIGRmZy9ERkdGbHVzaExpdmVuZXNzQW5hbHlzaXNQaGFzZS5jcHAKICAgICBk
ZmcvREZHRmx1c2hlZEF0LmNwcAogICAgIGRmZy9ERkdHcmFwaC5jcHAKKyAgICBkZmcvREZHR3Jh
cGhTYWZlcG9pbnQuY3BwCiAgICAgZGZnL0RGR0luUGxhY2VBYnN0cmFjdFN0YXRlLmNwcAogICAg
IGRmZy9ERkdJbnZhbGlkYXRpb25Qb2ludEluamVjdGlvblBoYXNlLmNwcAogICAgIGRmZy9ERkdK
SVRDb2RlLmNwcApAQCAtMTcyLDEyICsxNzMsMTQgQEAgc2V0KEphdmFTY3JpcHRDb3JlX1NPVVJD
RVMKICAgICBkZmcvREZHUmVzdXJyZWN0aW9uRm9yVmFsaWRhdGlvblBoYXNlLmNwcAogICAgIGRm
Zy9ERkdTU0FDb252ZXJzaW9uUGhhc2UuY3BwCiAgICAgZGZnL0RGR1NTQUxvd2VyaW5nUGhhc2Uu
Y3BwCisgICAgZGZnL0RGR1NhZmVwb2ludC5jcHAKICAgICBkZmcvREZHU3BlY3VsYXRpdmVKSVQu
Y3BwCiAgICAgZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCiAgICAgZGZnL0RGR1NwZWN1
bGF0aXZlSklUNjQuY3BwCiAgICAgZGZnL0RGR1N0YWNrTGF5b3V0UGhhc2UuY3BwCiAgICAgZGZn
L0RGR1N0b3JlQmFycmllckVsaXNpb25QaGFzZS5jcHAKICAgICBkZmcvREZHU3RyZW5ndGhSZWR1
Y3Rpb25QaGFzZS5jcHAKKyAgICBkZmcvREZHVGhyZWFkRGF0YS5jcHAKICAgICBkZmcvREZHVGh1
bmtzLmNwcAogICAgIGRmZy9ERkdUaWVyVXBDaGVja0luamVjdGlvblBoYXNlLmNwcAogICAgIGRm
Zy9ERkdUeXBlQ2hlY2tIb2lzdGluZ1BoYXNlLmNwcApJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0JKHJldmlzaW9uIDE2Mzc1MikKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCSh3b3JraW5nIGNvcHkpCkBAIC0zMDQsNiAr
MzA0LDggQEAgamF2YXNjcmlwdGNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdHZW5lcmF0aW9uSW5mby5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0dyYXBoLmNwcCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5oIFwK
KwlTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoU2FmZXBvaW50LmNwcCBcCisJU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaFNhZmVwb2ludC5oIFwKIAlTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0luUGxhY2VBYnN0cmFjdFN0YXRlLmNwcCBcCiAJU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdJblBsYWNlQWJzdHJhY3RTdGF0ZS5oIFwKIAlTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0lubGluZUNhY2hlV3JhcHBlci5oIFwKQEAgLTM3Nyw3ICszNzks
MTAgQEAgamF2YXNjcmlwdGNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdSZXN1cnJlY3Rpb25Gb3JWYWxpZGF0aW9uUGhhc2UuY3BwIFwKIAlTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1Jlc3VycmVjdGlvbkZvclZhbGlkYXRpb25QaGFzZS5oIFwKIAlT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaCBcCisJU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdTYWZlcG9pbnQuY3BwIFwKKwlTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1NhZmVwb2ludC5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nh
bmVTdHJpbmdHZXRCeVZhbFNsb3dQYXRoR2VuZXJhdG9yLmggXAorCVNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHU2Nhbm5hYmxlLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
U2NvcmVCb2FyZC5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NpbGVudFJlZ2lz
dGVyU2F2ZVBsYW4uaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTbG93UGF0aEdl
bmVyYXRvci5oIFwKQEAgLTM5OCw2ICs0MDMsOCBAQCBqYXZhc2NyaXB0Y29yZV9zb3VyY2VzICs9
IFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1N0cnVjdHVyZUFic3RyYWN0VmFsdWUu
aCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdUaWVyVXBDaGVja0luamVjdGlvblBo
YXNlLmNwcCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdUaWVyVXBDaGVja0luamVj
dGlvblBoYXNlLmggXAorCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVGhyZWFkRGF0YS5j
cHAgXAorCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVGhyZWFkRGF0YS5oIFwKIAlTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1RodW5rcy5jcHAgXAogCVNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHVGh1bmtzLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVG9G
VExEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2suY3BwIFwKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qc2MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2Mu
Y3BwCShyZXZpc2lvbiAxNjM3NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMjUsNyArMjUsNiBAQAogI2luY2x1ZGUgIkFQSVNoaW1zLmgiCiAj
aW5jbHVkZSAiQnV0dGVyZmx5SW5saW5lcy5oIgogI2luY2x1ZGUgIkJ5dGVjb2RlR2VuZXJhdG9y
LmgiCi0jaW5jbHVkZSAiQ2FsbEZyYW1lSW5saW5lcy5oIgogI2luY2x1ZGUgIkNvbXBsZXRpb24u
aCIKICNpbmNsdWRlICJDb3BpZWRTcGFjZUlubGluZXMuaCIKICNpbmNsdWRlICJFeGNlcHRpb25I
ZWxwZXJzLmgiCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ29udGV4dFJlZi5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NvbnRleHRSZWYu
Y3BwCShyZXZpc2lvbiAxNjM3NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ29u
dGV4dFJlZi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5LDcgKzI5LDYgQEAKIAogI2luY2x1ZGUg
IkFQSUNhc3QuaCIKICNpbmNsdWRlICJDYWxsRnJhbWUuaCIKLSNpbmNsdWRlICJDYWxsRnJhbWVJ
bmxpbmVzLmgiCiAjaW5jbHVkZSAiSW5pdGlhbGl6ZVRocmVhZGluZy5oIgogI2luY2x1ZGUgIkpT
Q2FsbGJhY2tPYmplY3QuaCIKICNpbmNsdWRlICJKU0NsYXNzUmVmLmgiCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hw
cm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52
Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2oJKHJldmlzaW9uIDE2Mzc1MikKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZj
eHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTM5Miw2ICszOTIsNyBAQAogICAgIDxDbENvbXBpbGUg
SW5jbHVkZT0iLi5cZGZnXERGR0ZsdXNoRm9ybWF0LmNwcCIgLz4KICAgICA8Q2xDb21waWxlIElu
Y2x1ZGU9Ii4uXGRmZ1xERkdGbHVzaExpdmVuZXNzQW5hbHlzaXNQaGFzZS5jcHAiIC8+CiAgICAg
PENsQ29tcGlsZSBJbmNsdWRlPSIuLlxkZmdcREZHR3JhcGguY3BwIiAvPgorICAgIDxDbENvbXBp
bGUgSW5jbHVkZT0iLi5cZGZnXERGR0dyYXBoU2FmZXBvaW50LmNwcCIgLz4KICAgICA8Q2xDb21w
aWxlIEluY2x1ZGU9Ii4uXGRmZ1xERkdJblBsYWNlQWJzdHJhY3RTdGF0ZS5jcHAiIC8+CiAgICAg
PENsQ29tcGlsZSBJbmNsdWRlPSIuLlxkZmdcREZHSW52YWxpZGF0aW9uUG9pbnRJbmplY3Rpb25Q
aGFzZS5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxkZmdcREZHSklUQ29kZS5j
cHAiIC8+CkBAIC00MjQsNiArNDI1LDcgQEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGRm
Z1xERkdQcmVkaWN0aW9uSW5qZWN0aW9uUGhhc2UuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5j
bHVkZT0iLi5cZGZnXERGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcCIgLz4KICAgICA8
Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGRmZ1xERkdSZXN1cnJlY3Rpb25Gb3JWYWxpZGF0aW9uUGhh
c2UuY3BwIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZGZnXERGR1NhZmVwb2ludC5j
cHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxkZmdcREZHU3BlY3VsYXRpdmVKSVQu
Y3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZGZnXERGR1NwZWN1bGF0aXZlSklU
MzJfNjQuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZGZnXERGR1NwZWN1bGF0
aXZlSklUNjQuY3BwIiAvPgpAQCAtNDMyLDYgKzQzNCw3IEBACiAgICAgPENsQ29tcGlsZSBJbmNs
dWRlPSIuLlxkZmdcREZHU3RhY2tMYXlvdXRQaGFzZS5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJ
bmNsdWRlPSIuLlxkZmdcREZHU3RvcmVCYXJyaWVyRWxpc2lvblBoYXNlLmNwcCIgLz4KICAgICA8
Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGRmZ1xERkdTdHJlbmd0aFJlZHVjdGlvblBoYXNlLmNwcCIg
Lz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGRmZ1xERkdUaHJlYWREYXRhLmNwcCIgLz4K
ICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGRmZ1xERkdUaHVua3MuY3BwIiAvPgogICAgIDxD
bENvbXBpbGUgSW5jbHVkZT0iLi5cZGZnXERGR1RpZXJVcENoZWNrSW5qZWN0aW9uUGhhc2UuY3Bw
IiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZGZnXERGR1RvRlRMRGVmZXJyZWRDb21w
aWxhdGlvbkNhbGxiYWNrLmNwcCIgLz4KQEAgLTkyOSw2ICs5MzIsNyBAQAogICAgIDxDbEluY2x1
ZGUgSW5jbHVkZT0iLi5cZGZnXERGR0dlbmVyYXRpb25JbmZvLmgiIC8+CiAgICAgPENsSW5jbHVk
ZSBJbmNsdWRlPSIuLlxkZmdcREZHR1BSSW5mby5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVk
ZT0iLi5cZGZnXERGR0dyYXBoLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxkZmdc
REZHR3JhcGhTYWZlcG9pbnQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGRmZ1xE
RkdJblBsYWNlQWJzdHJhY3RTdGF0ZS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
ZGZnXERGR0luc2VydGlvblNldC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZGZn
XERGR0ludmFsaWRhdGlvblBvaW50SW5qZWN0aW9uUGhhc2UuaCIgLz4KQEAgLTk2OSw3ICs5NzMs
OSBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZGZnXERGR1JlZ2lzdGVyU2V0LmgiIC8+
CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxkZmdcREZHUmVzdXJyZWN0aW9uRm9yVmFsaWRh
dGlvblBoYXNlLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxkZmdcREZHU2FmZVRv
RXhlY3V0ZS5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZGZnXERGR1NhZmVwb2lu
dC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZGZnXERGR1NhbmVTdHJpbmdHZXRC
eVZhbFNsb3dQYXRoR2VuZXJhdG9yLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxk
ZmdcREZHU2Nhbm5hYmxlLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxkZmdcREZH
U2NvcmVCb2FyZC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZGZnXERGR1NjcmF0
Y2hSZWdpc3RlckFsbG9jYXRvci5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZGZn
XERGR1NpbGVudFJlZ2lzdGVyU2F2ZVBsYW4uaCIgLz4KQEAgLTk4MSw2ICs5ODcsNyBAQAogICAg
IDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZGZnXERGR1N0b3JlQmFycmllckVsaXNpb25QaGFzZS5o
IiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZGZnXERGR1N0cmVuZ3RoUmVkdWN0aW9u
UGhhc2UuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGRmZ1xERkdTdHJ1Y3R1cmVB
YnN0cmFjdFZhbHVlLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxkZmdcREZHVGhy
ZWFkRGF0YS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZGZnXERGR1RodW5rcy5o
IiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZGZnXERGR1RpZXJVcENoZWNrSW5qZWN0
aW9uUGhhc2UuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGRmZ1xERkdUb0ZUTERl
ZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjay5oIiAvPgpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oJKHJldmlzaW9uIDE2Mzc1MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZh
U2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0y
MDIsNiArMjAyLDEzIEBACiAJCTBGMkU4OTJEMTZEMDJCQUYwMDlFNEZEMiAvKiBERkdNaW5pZmll
ZElELmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkI0
QjUxMDE2QjNBOTY0MDAzRjY5NkIgLyogREZHTWluaWZpZWRJRC5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGMkZDNzcyMTZFMTJGNzEwMDM4RDk3
NiAvKiBERkdEQ0VQaGFzZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwRjJGQzc3MDE2RTEyRjZGMDAzOEQ5NzYgLyogREZHRENFUGhhc2UuY3BwICov
OyB9OwogCQkwRjJGQzc3MzE2RTEyRjc0MDAzOEQ5NzYgLyogREZHRENFUGhhc2UuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMkZDNzcxMTZFMTJGNkYw
MDM4RDk3NiAvKiBERkdEQ0VQaGFzZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CisJCTBGMkZDQ0Y5MThBNjAwNzAwMDFBMjdGOCAvKiBERkdHcmFwaFNh
ZmVwb2ludC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwRjJGQ0NGMjE4QTYwMDcwMDAxQTI3RjggLyogREZHR3JhcGhTYWZlcG9pbnQuY3BwICovOyB9
OworCQkwRjJGQ0NGQTE4QTYwMDcwMDAxQTI3RjggLyogREZHR3JhcGhTYWZlcG9pbnQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMkZDQ0YzMThBNjAw
NzAwMDFBMjdGOCAvKiBERkdHcmFwaFNhZmVwb2ludC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTBGMkZDQ0ZCMThBNjAwNzAwMDFBMjdGOCAvKiBE
RkdTYWZlcG9pbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMEYyRkNDRjQxOEE2MDA3MDAwMUEyN0Y4IC8qIERGR1NhZmVwb2ludC5jcHAgKi87IH07
CisJCTBGMkZDQ0ZDMThBNjAwNzAwMDFBMjdGOCAvKiBERkdTYWZlcG9pbnQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMkZDQ0Y1MThBNjAwNzAwMDFB
MjdGOCAvKiBERkdTYWZlcG9pbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OworCQkwRjJGQ0NGRDE4QTYwMDcwMDAxQTI3RjggLyogREZHU2Nhbm5hYmxl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjJGQ0NG
NjE4QTYwMDcwMDAxQTI3RjggLyogREZHU2Nhbm5hYmxlLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMEYyRkNDRkUxOEE2MDA3MDAwMUEyN0Y4IC8q
IERGR1RocmVhZERhdGEuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMEYyRkNDRjcxOEE2MDA3MDAwMUEyN0Y4IC8qIERGR1RocmVhZERhdGEuY3BwICov
OyB9OworCQkwRjJGQ0NGRjE4QTYwMDcwMDAxQTI3RjggLyogREZHVGhyZWFkRGF0YS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYyRkNDRjgxOEE2MDA3
MDAwMUEyN0Y4IC8qIERGR1RocmVhZERhdGEuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjM0QjE0OTE2RDQyMDEwMDAxQ0RBNUEgLyogREZHVXNl
S2luZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAw
RjM0QjE0NzE2RDQyMDBFMDAxQ0RBNUEgLyogREZHVXNlS2luZC5jcHAgKi87IH07CiAJCTBGMzRC
MTRBMTZENDIwMTMwMDFDREE1QSAvKiBERkdVc2VLaW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjM0QjE0ODE2RDQyMDBFMDAxQ0RBNUEgLyogREZH
VXNlS2luZC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTBGMzRCMTRDMTZENDNFMEQwMDFDREE1QSAvKiBQb2x5bW9ycGhpY0FjY2Vzc1N0cnVjdHVy
ZUxpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBG
MzRCMTRCMTZENDNFMEMwMDFDREE1QSAvKiBQb2x5bW9ycGhpY0FjY2Vzc1N0cnVjdHVyZUxpc3Qu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTM1
MSw3ICsxMzU4LDcgQEAKIAkJQzI5ODFGREQxN0JBRkY0NDAwQTNCQzk4IC8qIERGR0Rlc2lyZWRX
cml0ZUJhcnJpZXJzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBDMjk4MUZEQjE3QkFGRjQ0MDBBM0JDOTggLyogREZHRGVzaXJlZFdyaXRlQmFycmllcnMu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDMjlF
Q0IwMzE4MDREMEVEMDBEMkNCQjQgLyogQ3VycmVudFRoaXNJbnNpZGVCbG9ja0dldHRlclRlc3Qu
bW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMjlFQ0Iw
MTE4MDREMEVEMDBEMkNCQjQgLyogQ3VycmVudFRoaXNJbnNpZGVCbG9ja0dldHRlclRlc3QubW0g
Ki87IH07CiAJCUMyQTdGNjg4MTYwNDMyRDQwMEY3NkI5OCAvKiBKU0Rlc3RydWN0aWJsZU9iamVj
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzJBN0Y2
ODcxNjA0MzJENDAwRjc2Qjk4IC8qIEpTRGVzdHJ1Y3RpYmxlT2JqZWN0LmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLSAgICAgICBDMkI2RDc1MzE4QTMz
NzkzMDA0QTkzMDEgLyogV3JpdGVCYXJyaWVySW5saW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzJCNkQ3NTIxOEEzMzc5MzAwNEE5MzAxIC8qIFdy
aXRlQmFycmllcklubGluZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OworCQlDMkI2RDc1MzE4QTMzNzkzMDA0QTkzMDEgLyogV3JpdGVCYXJyaWVySW5s
aW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzJC
NkQ3NTIxOEEzMzc5MzAwNEE5MzAxIC8qIFdyaXRlQmFycmllcklubGluZXMuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDMkI5MTZDMjE0REEwMTRF
MDBDQkFDODYgLyogTWFya2VkQWxsb2NhdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBDMkI5MTZDMTE0REEwMTRFMDBDQkFDODYgLyogTWFya2VkQWxs
b2NhdG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJQzJCOTE2QzUxNERBMDQwQzAwQ0JBQzg2IC8qIE1hcmtlZEFsbG9jYXRvci5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMkI5MTZDNDE0REEwNDBD
MDBDQkFDODYgLyogTWFya2VkQWxsb2NhdG9yLmNwcCAqLzsgfTsKIAkJQzJDMEY3Q0QxN0JCRkM1
QjAwNDY0RkU0IC8qIERGR0Rlc2lyZWRUcmFuc2l0aW9ucy5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMkMwRjdDQjE3QkJGQzVCMDA0NjRGRTQgLyog
REZHRGVzaXJlZFRyYW5zaXRpb25zLmNwcCAqLzsgfTsKQEAgLTE2NDQsNiArMTY1MSwxMyBAQAog
CQkwRjJCREM1MDE1MjI4RkZBMDBDRDg5MTAgLyogREZHVmFyaWFibGVFdmVudC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBERkdWYXJpYWJsZUV2ZW50LmNwcDsgcGF0
aCA9IGRmZy9ERkdWYXJpYWJsZUV2ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMEYyRkM3NzAxNkUxMkY2RjAwMzhEOTc2IC8qIERGR0RDRVBoYXNlLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IERGR0RDRVBoYXNlLmNwcDsgcGF0aCA9IGRmZy9E
RkdEQ0VQaGFzZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGMkZDNzcxMTZF
MTJGNkYwMDM4RDk3NiAvKiBERkdEQ0VQaGFzZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IG5hbWUgPSBERkdEQ0VQaGFzZS5oOyBwYXRoID0gZGZnL0RGR0RDRVBoYXNlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGMkZDQ0YyMThBNjAwNzAwMDFBMjdGOCAvKiBERkdHcmFw
aFNhZmVwb2ludC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBERkdH
cmFwaFNhZmVwb2ludC5jcHA7IHBhdGggPSBkZmcvREZHR3JhcGhTYWZlcG9pbnQuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRjJGQ0NGMzE4QTYwMDcwMDAxQTI3RjggLyogREZH
R3JhcGhTYWZlcG9pbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gREZHR3Jh
cGhTYWZlcG9pbnQuaDsgcGF0aCA9IGRmZy9ERkdHcmFwaFNhZmVwb2ludC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQkwRjJGQ0NGNDE4QTYwMDcwMDAxQTI3RjggLyogREZHU2FmZXBv
aW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IERGR1NhZmVwb2lu
dC5jcHA7IHBhdGggPSBkZmcvREZHU2FmZXBvaW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJMEYyRkNDRjUxOEE2MDA3MDAwMUEyN0Y4IC8qIERGR1NhZmVwb2ludC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBERkdTYWZlcG9pbnQuaDsgcGF0aCA9IGRmZy9E
RkdTYWZlcG9pbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEYyRkNDRjYxOEE2
MDA3MDAwMUEyN0Y4IC8qIERGR1NjYW5uYWJsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IG5hbWUgPSBERkdTY2FubmFibGUuaDsgcGF0aCA9IGRmZy9ERkdTY2FubmFibGUuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEYyRkNDRjcxOEE2MDA3MDAwMUEyN0Y4IC8qIERGR1Ro
cmVhZERhdGEuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gREZHVGhy
ZWFkRGF0YS5jcHA7IHBhdGggPSBkZmcvREZHVGhyZWFkRGF0YS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTBGMkZDQ0Y4MThBNjAwNzAwMDFBMjdGOCAvKiBERkdUaHJlYWREYXRh
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IERGR1RocmVhZERhdGEuaDsgcGF0
aCA9IGRmZy9ERkdUaHJlYWREYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBG
MzRCMTQ3MTZENDIwMEUwMDFDREE1QSAvKiBERkdVc2VLaW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgbmFtZSA9IERGR1VzZUtpbmQuY3BwOyBwYXRoID0gZGZnL0RGR1VzZUtp
bmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjM0QjE0ODE2RDQyMDBFMDAx
Q0RBNUEgLyogREZHVXNlS2luZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBE
RkdVc2VLaW5kLmg7IHBhdGggPSBkZmcvREZHVXNlS2luZC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkwRjM0QjE0QjE2RDQzRTBDMDAxQ0RBNUEgLyogUG9seW1vcnBoaWNBY2Nlc3NT
dHJ1Y3R1cmVMaXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBvbHltb3Jw
aGljQWNjZXNzU3RydWN0dXJlTGlzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MjgwMiw3ICsyODE2LDcgQEAKIAkJQzI5RUNCMDExODA0RDBFRDAwRDJDQkI0IC8qIEN1cnJlbnRU
aGlzSW5zaWRlQmxvY2tHZXR0ZXJUZXN0Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBuYW1lID0gQ3VycmVudFRoaXNJbnNpZGVCbG9ja0dldHRlclRlc3QubW07IHBhdGggPSBB
UEkvdGVzdHMvQ3VycmVudFRoaXNJbnNpZGVCbG9ja0dldHRlclRlc3QubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUMyOUVDQjAyMTgwNEQwRUQwMEQyQ0JCNCAvKiBDdXJyZW50VGhp
c0luc2lkZUJsb2NrR2V0dGVyVGVzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUg
PSBDdXJyZW50VGhpc0luc2lkZUJsb2NrR2V0dGVyVGVzdC5oOyBwYXRoID0gQVBJL3Rlc3RzL0N1
cnJlbnRUaGlzSW5zaWRlQmxvY2tHZXR0ZXJUZXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUMyQTdGNjg3MTYwNDMyRDQwMEY3NkI5OCAvKiBKU0Rlc3RydWN0aWJsZU9iamVjdC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0Rlc3RydWN0aWJsZU9iamVjdC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotICAgICAgIEMyQjZENzUyMThBMzM3OTMwMDRB
OTMwMSAvKiBXcml0ZUJhcnJpZXJJbmxpbmVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFdyaXRlQmFycmllcklubGluZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJQzJCNkQ3NTIxOEEzMzc5MzAwNEE5MzAxIC8qIFdyaXRlQmFycmllcklubGluZXMuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV3JpdGVCYXJyaWVySW5saW5lcy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDMkI5MTZDMTE0REEwMTRFMDBDQkFDODYgLyogTWFy
a2VkQWxsb2NhdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1hcmtlZEFs
bG9jYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDMkI5MTZDNDE0REEwNDBD
MDBDQkFDODYgLyogTWFya2VkQWxsb2NhdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IE1hcmtlZEFsbG9jYXRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUMyQzBGN0NCMTdCQkZDNUIwMDQ2NEZFNCAvKiBERkdEZXNpcmVkVHJhbnNpdGlvbnMu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gREZHRGVzaXJlZFRyYW5z
aXRpb25zLmNwcDsgcGF0aCA9IGRmZy9ERkdEZXNpcmVkVHJhbnNpdGlvbnMuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzY2Myw3ICszNjc3LDcgQEAKIAkJN0VGNkUwQkIwRUI3
QTFFQzAwNzlBRkFGIC8qIHJ1bnRpbWUgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNo
aWxkcmVuID0gKAotICAgICAgICAgICAgICAgQzJCNkQ3NTIxOEEzMzc5MzAwNEE5MzAxIC8qIFdy
aXRlQmFycmllcklubGluZXMuaCAqLywKKwkJCQlDMkI2RDc1MjE4QTMzNzkzMDA0QTkzMDEgLyog
V3JpdGVCYXJyaWVySW5saW5lcy5oICovLAogCQkJCUJDRjYwNTExMEUyMDNFRjgwMEI5QTY0RCAv
KiBBcmdMaXN0LmNwcCAqLywKIAkJCQlCQ0Y2MDUxMjBFMjAzRUY4MDBCOUE2NEQgLyogQXJnTGlz
dC5oICovLAogCQkJCUJDMjU3REU1MEUxRjUxQzUwMDE2QjZDOSAvKiBBcmd1bWVudHMuY3BwICov
LApAQCAtNDA4Nyw4ICs0MTAxLDYgQEAKIAkJODZFQzlEQjMxMzI4REY0NDAwMkIyQUQ3IC8qIGRm
ZyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCi0JCQkJMkFDQ0Yz
REMxODVGRTI2QjAwODNFMkFEIC8qIERGR1N0b3JlQmFycmllckVsaXNpb25QaGFzZS5jcHAgKi8s
Ci0JCQkJMkFDQ0YzREQxODVGRTI2QjAwODNFMkFEIC8qIERGR1N0b3JlQmFycmllckVsaXNpb25Q
aGFzZS5oICovLAogCQkJCUE3N0E0MjM2MTdBMEJCRkQwMEE4REI4MSAvKiBERkdBYnN0cmFjdEhl
YXAuY3BwICovLAogCQkJCUE3N0E0MjM3MTdBMEJCRkQwMEE4REI4MSAvKiBERkdBYnN0cmFjdEhl
YXAuaCAqLywKIAkJCQlBNzA0RDhGRTE3QTBCQUE4MDA2QkE1NTQgLyogREZHQWJzdHJhY3RJbnRl
cnByZXRlci5oICovLApAQCAtNDE5MCw2ICs0MjAyLDggQEAKIAkJCQk4NkVDOURCNjEzMjhERjgy
MDAyQjJBRDcgLyogREZHR2VuZXJhdGlvbkluZm8uaCAqLywKIAkJCQk4NkVDOURCNzEzMjhERjgy
MDAyQjJBRDcgLyogREZHR3JhcGguY3BwICovLAogCQkJCTg2RUM5REI4MTMyOERGODIwMDJCMkFE
NyAvKiBERkdHcmFwaC5oICovLAorCQkJCTBGMkZDQ0YyMThBNjAwNzAwMDFBMjdGOCAvKiBERkdH
cmFwaFNhZmVwb2ludC5jcHAgKi8sCisJCQkJMEYyRkNDRjMxOEE2MDA3MDAwMUEyN0Y4IC8qIERG
R0dyYXBoU2FmZXBvaW50LmggKi8sCiAJCQkJMEZCMTRFMjAxODEyNTcwQjAwOUI2QjREIC8qIERG
R0lubGluZUNhY2hlV3JhcHBlci5oICovLAogCQkJCTBGQjE0RTIyMTgxMzA5NTUwMDlCNkI0RCAv
KiBERkdJbmxpbmVDYWNoZVdyYXBwZXJJbmxpbmVzLmggKi8sCiAJCQkJQTcwNEQ5MDAxN0EwQkFB
ODAwNkJBNTU0IC8qIERGR0luUGxhY2VBYnN0cmFjdFN0YXRlLmNwcCAqLywKQEAgLTQyNjIsOCAr
NDI3NiwxMSBAQAogCQkJCTg2RUM5REMxMTMyOERGODIwMDJCMkFENyAvKiBERkdSZWdpc3RlckJh
bmsuaCAqLywKIAkJCQkwRjY2NkVDQTE4MzZCMzdFMDBEMDE3RjEgLyogREZHUmVzdXJyZWN0aW9u
Rm9yVmFsaWRhdGlvblBoYXNlLmNwcCAqLywKIAkJCQkwRjY2NkVDQjE4MzZCMzdFMDBEMDE3RjEg
LyogREZHUmVzdXJyZWN0aW9uRm9yVmFsaWRhdGlvblBoYXNlLmggKi8sCisJCQkJMEYyRkNDRjQx
OEE2MDA3MDAwMUEyN0Y4IC8qIERGR1NhZmVwb2ludC5jcHAgKi8sCisJCQkJMEYyRkNDRjUxOEE2
MDA3MDAwMUEyN0Y4IC8qIERGR1NhZmVwb2ludC5oICovLAogCQkJCUE3N0E0MjNDMTdBMEJCRkQw
MEE4REI4MSAvKiBERkdTYWZlVG9FeGVjdXRlLmggKi8sCiAJCQkJQTc0MTAxN0UxNzlEQUY4MDAw
MkVCOEJBIC8qIERGR1NhbmVTdHJpbmdHZXRCeVZhbFNsb3dQYXRoR2VuZXJhdG9yLmggKi8sCisJ
CQkJMEYyRkNDRjYxOEE2MDA3MDAwMUEyN0Y4IC8qIERGR1NjYW5uYWJsZS5oICovLAogCQkJCTg2
RUNBM0Y5MTMyREYyNUEwMDJCMkFENyAvKiBERkdTY29yZUJvYXJkLmggKi8sCiAJCQkJMEYxRTNB
NjUxNTNBMjFERjAwMEY5NDU2IC8qIERGR1NpbGVudFJlZ2lzdGVyU2F2ZVBsYW4uaCAqLywKIAkJ
CQkwRjFFM0E1MDE1MzdDMkNCMDAwRjk0NTYgLyogREZHU2xvd1BhdGhHZW5lcmF0b3IuaCAqLywK
QEAgLTQyNzcsOSArNDI5NCwxMyBAQAogCQkJCTBGQzIwQ0I4MTg1NTZBMzUwMEM5RTk1NCAvKiBE
RkdTU0FMb3dlcmluZ1BoYXNlLmggKi8sCiAJCQkJMEY5RkI0RjIxN0ZDQjkxNzAwQ0I2N0Y4IC8q
IERGR1N0YWNrTGF5b3V0UGhhc2UuY3BwICovLAogCQkJCTBGOUZCNEYzMTdGQ0I5MTcwMENCNjdG
OCAvKiBERkdTdGFja0xheW91dFBoYXNlLmggKi8sCisJCQkJMkFDQ0YzREMxODVGRTI2QjAwODNF
MkFEIC8qIERGR1N0b3JlQmFycmllckVsaXNpb25QaGFzZS5jcHAgKi8sCisJCQkJMkFDQ0YzREQx
ODVGRTI2QjAwODNFMkFEIC8qIERGR1N0b3JlQmFycmllckVsaXNpb25QaGFzZS5oICovLAogCQkJ
CTBGQzIwQ0IzMTg1MkUyQzYwMEM5RTk1NCAvKiBERkdTdHJlbmd0aFJlZHVjdGlvblBoYXNlLmNw
cCAqLywKIAkJCQkwRkMyMENCNDE4NTJFMkM2MDBDOUU5NTQgLyogREZHU3RyZW5ndGhSZWR1Y3Rp
b25QaGFzZS5oICovLAogCQkJCTBGNjM5NDc2MTVEQ0UzNDcwMDZBNTk3QyAvKiBERkdTdHJ1Y3R1
cmVBYnN0cmFjdFZhbHVlLmggKi8sCisJCQkJMEYyRkNDRjcxOEE2MDA3MDAwMUEyN0Y4IC8qIERG
R1RocmVhZERhdGEuY3BwICovLAorCQkJCTBGMkZDQ0Y4MThBNjAwNzAwMDFBMjdGOCAvKiBERkdU
aHJlYWREYXRhLmggKi8sCiAJCQkJMEZDMDk3OUYxNDZCMjhDNzAwQ0YyNDQyIC8qIERGR1RodW5r
cy5jcHAgKi8sCiAJCQkJMEZDMDk3QTAxNDZCMjhDNzAwQ0YyNDQyIC8qIERGR1RodW5rcy5oICov
LAogCQkJCTBGRDhBMzFGMTdENTFGNTcwMENBMkM0MCAvKiBERkdUaWVyVXBDaGVja0luamVjdGlv
blBoYXNlLmNwcCAqLywKQEAgLTQ2OTgsNyArNDcxOSw3IEBACiAJCQkJNjVDMDI4NUQxNzE3OTY2
ODAwMzUxRTM1IC8qIEFSTXY3RE9wY29kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkE2ODI5NUIx
ODc1RjgwNTAwQjZDM0UyIC8qIENvcHlXcml0ZUJhcnJpZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTJBNEVDOTBDMTg2MEQ2QzIwMDk0Rjc4MiAvKiBXcml0ZUJhcnJpZXJCdWZmZXIuaCBpbiBIZWFk
ZXJzICovLAotICAgICAgICAgICAgICAgQzJCNkQ3NTMxOEEzMzc5MzAwNEE5MzAxIC8qIFdyaXRl
QmFycmllcklubGluZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCUMyQjZENzUzMThBMzM3OTMwMDRB
OTMwMSAvKiBXcml0ZUJhcnJpZXJJbmxpbmVzLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRTU5MzJB
ODE4M0M1QTI2MDBBMUVDQ0MgLyogVk1FbnRyeVNjb3BlLmggaW4gSGVhZGVycyAqLywKIAkJCQlB
NTMyNDM5MzE4NTY5NzA5MDAyRUQ2OTIgLyogQ29kZUdlbmVyYXRvckluc3BlY3RvclN0cmluZ3Mu
cHkgaW4gSGVhZGVycyAqLywKIAkJCQlBNTMyNDM5MjE4NTY5NzA5MDAyRUQ2OTIgLyogQ29kZUdl
bmVyYXRvckluc3BlY3Rvci5weSBpbiBIZWFkZXJzICovLApAQCAtNTA3Nyw2ICs1MDk4LDcgQEAK
IAkJCQlBNzkwREQ3MDE4MkY0OTk3MDA1ODg4MDcgLyogSlNTZXRJdGVyYXRvci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMEYyNEU1NEUxN0VFMjc0OTAwQUJCMjE3IC8qIEpJVE9wZXJhdGlvbldyYXBw
ZXJzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjc2NkQzMTE1QUE4MTEyMDA4RjM2M0UgLyogSklU
U3R1YlJvdXRpbmUuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGMkZDQ0ZBMThBNjAwNzAwMDFBMjdG
OCAvKiBERkdHcmFwaFNhZmVwb2ludC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY3NjZEMkMxNUE4
Q0MzQTAwOEYzNjNFIC8qIEpJVFN0dWJSb3V0aW5lU2V0LmggaW4gSGVhZGVycyAqLywKIAkJCQkx
NEM1MjQyQjBGNTM1NUU5MDBCQTNEMDQgLyogSklUU3R1YnMuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUZFRjY4MzVFMTc0MzQzQ0MwMEEzMkUyNSAvKiBKSVRTdHVic0FSTS5oIGluIEhlYWRlcnMgKi8s
CkBAIC01MTE2LDYgKzUxMzgsNyBAQAogCQkJCTg2RTNDNjEzMTY3QkFCRDcwMDZENzYwQSAvKiBK
U0NvbnRleHQuaCBpbiBIZWFkZXJzICovLAogCQkJCTg2RTNDNjE3MTY3QkFCRUUwMDZENzYwQSAv
KiBKU0NvbnRleHRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxOEM0MUUwRTE2RjVD
RDAwQjM0NDYwIC8qIEpTQ29udGV4dFJlZi5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEYyRkNDRkYx
OEE2MDA3MDAwMUEyN0Y4IC8qIERGR1RocmVhZERhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCTE0
OENEMUQ4MTA4Q0Y5MDIwMDgxNjNDNiAvKiBKU0NvbnRleHRSZWZQcml2YXRlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlBNzIwMjhCODE3OTc2MDFFMDA5ODAyOEMgLyogSlNDVGVzdFJ1bm5lclV0aWxz
LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjJCNjZFQzE3QjZCNUFCMDBBN0FFM0YgLyogSlNEYXRh
Vmlldy5oIGluIEhlYWRlcnMgKi8sCkBAIC01MjM2LDYgKzUyNTksNyBAQAogCQkJCTg2QzU2OEUx
MTFBMjEzRUUwMDA3RjdGMCAvKiBNYWNyb0Fzc2VtYmxlck1JUFMuaCBpbiBIZWFkZXJzICovLAog
CQkJCTg2QUU2NEE5MTM1RTVFMUMwMDk2MzAxMiAvKiBNYWNyb0Fzc2VtYmxlclNINC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJODYwMTYxRTQwRjNBODNDMTAwRjg0NzEwIC8qIE1hY3JvQXNzZW1ibGVy
WDg2LmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjJGQ0NGQzE4QTYwMDcwMDAxQTI3RjggLyogREZH
U2FmZXBvaW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk4NjAxNjFFNTBGM0E4M0MxMDBGODQ3MTAg
LyogTWFjcm9Bc3NlbWJsZXJYODZfNjQuaCBpbiBIZWFkZXJzICovLAogCQkJCTg2MDE2MUU2MEYz
QTgzQzEwMEY4NDcxMCAvKiBNYWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQTcwMDg3M0ExN0NCRTg1MzAwQzNFNjQzIC8qIE1hcENvbnN0cnVjdG9yLmggaW4gSGVh
ZGVycyAqLywKQEAgLTU0NDcsNiArNTQ3MSw3IEBACiAJCQkJMEYyNDJEQTcxM0YzQjFFODAwN0FE
RDRDIC8qIFdlYWtSZWZlcmVuY2VIYXJ2ZXN0ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTE0RTg0
RkExMTRFRTFBQ0MwMEQ2RDVENCAvKiBXZWFrU2V0LmggaW4gSGVhZGVycyAqLywKIAkJCQkxNDE1
MDEzMzE1NEJCMTNGMDA1RDhDOTggLyogV2Vha1NldElubGluZXMuaCBpbiBIZWFkZXJzICovLAor
CQkJCTBGMkZDQ0ZEMThBNjAwNzAwMDFBMjdGOCAvKiBERkdTY2FubmFibGUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUJDMThDNDdBMEUxNkY1Q0QwMEIzNDQ2MCAvKiBXZWJLaXRBdmFpbGFiaWxpdHku
aCBpbiBIZWFkZXJzICovLAogCQkJCUE3NERFRjkyMTgyRDk5MTQwMDUyMkMyMiAvKiBNYXBJdGVy
YXRvckNvbnN0cnVjdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlBN0RDQjk3MzEyRTUxOTNGMDA5
MTE5NDAgLyogV3JpdGVCYXJyaWVyLmggaW4gSGVhZGVycyAqLywKQEAgLTYwNDEsNiArNjA2Niw3
IEBACiAJCQkJQTcwNDQ3RUQxN0EwQkQ3MDAwRjU4OThFIC8qIER1bXBDb250ZXh0LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTE0N0YzOUM3MTA3RUMzNzYwMDQyN0E0OCAvKiBFcnJvci5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkxNDdGMzlDODEwN0VDMzc2MDA0MjdBNDggLyogRXJyb3JDb25zdHJ1
Y3Rvci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkwRjJGQ0NGOTE4QTYwMDcwMDAxQTI3RjggLyog
REZHR3JhcGhTYWZlcG9pbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQ3RjM5QzkxMDdFQzM3
NjAwNDI3QTQ4IC8qIEVycm9ySW5zdGFuY2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQ3RjM5
Q0ExMDdFQzM3NjAwNDI3QTQ4IC8qIEVycm9yUHJvdG90eXBlLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUE1RkQwMDY3MTg5QUZFOUMwMDYzMzIzMSAvKiBTY3JpcHRBcmd1bWVudHMuY3BwIGluIFNv
dXJjZXMgKi8sCkBAIC02MjExLDYgKzYyMzcsNyBAQAogCQkJCUE3NDgyQjk0MTE2NzExNDcwMDNC
MDcxMiAvKiBKU1dlYWtPYmplY3RNYXBSZWZQcml2YXRlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTE0NDI1NjYxMTVFREU5OEQwMDY2QTQ5QiAvKiBKU1dpdGhTY29wZS5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlBNTAzRkExQjE4OEUwRkIwMDAxMTBGMTQgLyogSlNKYXZhU2NyaXB0Q2FsbEZyYW1l
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTBGMkZDQ0ZFMThBNjAwNzAwMDFBMjdGOCAvKiBERkdU
aHJlYWREYXRhLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg2RTNDNjE4MTY3QkFCRUUwMDZENzYw
QSAvKiBKU1dyYXBwZXJNYXAubW0gaW4gU291cmNlcyAqLywKIAkJCQkxNDI4MDg3MDEwN0VDMTM0
MDAxM0U3QjIgLyogSlNXcmFwcGVyT2JqZWN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE1N0Qy
M0U5MTg5MUIwNzcwMDMxQzdGQSAvKiBKU0dsb2JhbE9iamVjdERlYnVnZ2VyQWdlbnQuY3BwIGlu
IFNvdXJjZXMgKi8sCkBAIC02MzIyLDYgKzYzNDksNyBAQAogCQkJCUMyMjU0OTQzMTVGN0RCQUEw
MDY1RTg5OCAvKiBTbG90VmlzaXRvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5MzMwNDAyQzBF
NkE3NjQwMDA3ODZFNkEgLyogU21hbGxTdHJpbmdzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBG
OEYyQjlFMTczMDZDOEQwMDdEQkRBNSAvKiBTb3VyY2VDb2RlLmNwcCBpbiBTb3VyY2VzICovLAor
CQkJCTBGMkZDQ0ZCMThBNjAwNzAwMDFBMjdGOCAvKiBERkdTYWZlcG9pbnQuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQTVGRDAwNzkxODlCMDUxMDAwNjMzMjMxIC8qIENvbnNvbGVNZXNzYWdlLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTBGNDkzQUZBMTZEMENBRDMwMDg0NTA4QiAvKiBTb3VyY2VQ
cm92aWRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFNDlEQzE2QjEyRUYyOTNFMDAxODRBMUYg
LyogU291cmNlUHJvdmlkZXJDYWNoZS5jcHAgaW4gU291cmNlcyAqLywKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTGlua0J1ZmZlci5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9MaW5rQnVmZmVyLmNwcAkocmV2aXNpb24gMTYz
NzUyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9MaW5rQnVmZmVyLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMzAsNiArMzAsNyBAQAogCiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgi
CiAjaW5jbHVkZSAiSklUQ29kZS5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRl
ICJPcHRpb25zLmgiCiAjaW5jbHVkZSAiVk0uaCIKICNpbmNsdWRlIDx3dGYvQ29tcGlsYXRpb25U
aHJlYWQuaD4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9BcnJheVByb2Zp
bGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9BcnJh
eVByb2ZpbGUuY3BwCShyZXZpc2lvbiAxNjM3NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvQXJyYXlQcm9maWxlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcsNyBA
QAogI2luY2x1ZGUgIkFycmF5UHJvZmlsZS5oIgogCiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgiCisj
aW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgPHd0Zi9Db21tYVByaW50ZXIuaD4KICNp
bmNsdWRlIDx3dGYvU3RyaW5nRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL1N0cmluZ1ByaW50U3Ry
ZWFtLmg+CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVCYXNp
Y0Jsb2NrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
Qnl0ZWNvZGVCYXNpY0Jsb2NrLmNwcAkocmV2aXNpb24gMTYzNzUyKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlQmFzaWNCbG9jay5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJCeXRlY29kZUJhc2ljQmxvY2suaCIKIAogI2lu
Y2x1ZGUgIkNvZGVCbG9jay5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJQ
cmVjaXNlSnVtcFRhcmdldHMuaCIKIAogbmFtZXNwYWNlIEpTQyB7CkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVMaXZlbmVzc0FuYWx5c2lzSW5saW5lcy5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUxpdmVu
ZXNzQW5hbHlzaXNJbmxpbmVzLmgJKHJldmlzaW9uIDE2Mzc1MikKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUxpdmVuZXNzQW5hbHlzaXNJbmxpbmVzLmgJKHdvcmtp
bmcgY29weSkKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkJ5dGVjb2RlTGl2ZW5lc3NB
bmFseXNpcy5oIgogI2luY2x1ZGUgIkNvZGVCbG9jay5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMu
aCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9DYWxsTGlua0luZm8uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9DYWxsTGlua0luZm8uY3BwCShyZXZpc2lvbiAxNjM3NTIpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ2FsbExpbmtJbmZvLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMjgsNiArMjgsNyBAQAogCiAjaW5jbHVkZSAiREZHT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUg
IkRGR1RodW5rcy5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJSZXBhdGNo
QnVmZmVyLmgiCiAKICNpZiBFTkFCTEUoSklUKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL0NvZGVCbG9jay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAJKHJldmlzaW9uIDE2Mzc1MikKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0z
Niw2ICszNiw3IEBACiAjaW5jbHVkZSAiREZHQ2FwYWJpbGl0aWVzLmgiCiAjaW5jbHVkZSAiREZH
Q29tbW9uLmgiCiAjaW5jbHVkZSAiREZHRHJpdmVyLmgiCisjaW5jbHVkZSAiREZHSklUQ29kZS5o
IgogI2luY2x1ZGUgIkRGR05vZGUuaCIKICNpbmNsdWRlICJERkdXb3JrbGlzdC5oIgogI2luY2x1
ZGUgIkRlYnVnZ2VyLmgiCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29k
ZUJsb2NrLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0Nv
ZGVCbG9jay5oCShyZXZpc2lvbiAxNjM3NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvQ29kZUJsb2NrLmgJKHdvcmtpbmcgY29weSkKQEAgLTU2LDcgKzU2LDYgQEAKICNpbmNs
dWRlICJIYW5kbGVySW5mby5oIgogI2luY2x1ZGUgIk9iamVjdEFsbG9jYXRpb25Qcm9maWxlLmgi
CiAjaW5jbHVkZSAiT3B0aW9ucy5oIgotI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRl
ICJQdXRQcm9wZXJ0eVNsb3QuaCIKICNpbmNsdWRlICJJbnN0cnVjdGlvbi5oIgogI2luY2x1ZGUg
IkpJVENvZGUuaCIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxv
Y2tKZXR0aXNvbmluZ1dhdGNocG9pbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2tKZXR0aXNvbmluZ1dhdGNocG9pbnQuY3BwCShyZXZp
c2lvbiAxNjM3NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2Nr
SmV0dGlzb25pbmdXYXRjaHBvaW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBA
QAogCiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgiCiAjaW5jbHVkZSAiREZHQ29tbW9uLmgiCisjaW5j
bHVkZSAiT3BlcmF0aW9ucy5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIApJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL0V4ZWN1dGlvbkNvdW50ZXIuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9FeGVjdXRpb25Db3VudGVyLmNwcAkocmV2
aXNpb24gMTYzNzUyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0V4ZWN1dGlv
bkNvdW50ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRl
ICJDb2RlQmxvY2suaCIKICNpbmNsdWRlICJFeGVjdXRhYmxlQWxsb2NhdG9yLmgiCisjaW5jbHVk
ZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgPHd0Zi9TdHJpbmdFeHRyYXMuaD4KIAogbmFtZXNw
YWNlIEpTQyB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvTWV0aG9kT2ZH
ZXR0aW5nQVZhbHVlUHJvZmlsZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL01ldGhvZE9mR2V0dGluZ0FWYWx1ZVByb2ZpbGUuY3BwCShyZXZpc2lvbiAx
NjM3NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvTWV0aG9kT2ZHZXR0aW5n
QVZhbHVlUHJvZmlsZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5LDYgKzI5LDcgQEAKICNpZiBF
TkFCTEUoREZHX0pJVCkKIAogI2luY2x1ZGUgIkNvZGVCbG9jay5oIgorI2luY2x1ZGUgIk9wZXJh
dGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9QcmVjaXNlSnVtcFRhcmdldHMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9QcmVjaXNlSnVtcFRhcmdldHMuY3BwCShyZXZpc2lvbiAx
NjM3NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUHJlY2lzZUp1bXBUYXJn
ZXRzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjYsNiArMjYsOCBAQAogI2luY2x1ZGUgImNvbmZp
Zy5oIgogI2luY2x1ZGUgIlByZWNpc2VKdW1wVGFyZ2V0cy5oIgogCisjaW5jbHVkZSAiT3BlcmF0
aW9ucy5oIgorCiBuYW1lc3BhY2UgSlNDIHsKIAogdGVtcGxhdGUgPHNpemVfdCB2ZWN0b3JTaXpl
PgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1Byb2ZpbGVkQ29kZUJsb2Nr
SmV0dGlzb25pbmdXYXRjaHBvaW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvUHJvZmlsZWRDb2RlQmxvY2tKZXR0aXNvbmluZ1dhdGNocG9pbnQuY3Bw
CShyZXZpc2lvbiAxNjM3NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUHJv
ZmlsZWRDb2RlQmxvY2tKZXR0aXNvbmluZ1dhdGNocG9pbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgiCiAjaW5jbHVkZSAiREZHQ29t
bW9uLmgiCiAjaW5jbHVkZSAiREZHRXhpdFByb2ZpbGUuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25z
LmgiCiAKIG5hbWVzcGFjZSBKU0MgewogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvU2FtcGxpbmdUb29sLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvU2FtcGxpbmdUb29sLmNwcAkocmV2aXNpb24gMTYzNzUyKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1NhbXBsaW5nVG9vbC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJDb2RlQmxvY2suaCIKICNpbmNsdWRlICJJbnRl
cnByZXRlci5oIgogI2luY2x1ZGUgIk9wY29kZS5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIK
IAogI2lmICFPUyhXSU5ET1dTKQogI2luY2x1ZGUgPHVuaXN0ZC5oPgpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL1NwZWNpYWxQb2ludGVyLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3BlY2lhbFBvaW50ZXIuY3BwCShyZXZpc2lv
biAxNjM3NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3BlY2lhbFBvaW50
ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJDb2Rl
QmxvY2suaCIKICNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgorI2luY2x1ZGUgIk9wZXJhdGlv
bnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9TdHJ1Y3R1cmVTdHViQ2xlYXJpbmdXYXRjaHBvaW50LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3RydWN0dXJlU3R1YkNsZWFyaW5nV2F0
Y2hwb2ludC5jcHAJKHJldmlzaW9uIDE2Mzc1MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9TdHJ1Y3R1cmVTdHViQ2xlYXJpbmdXYXRjaHBvaW50LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMjksNiArMjksNyBAQAogI2lmIEVOQUJMRShKSVQpCiAKICNpbmNsdWRlICJDb2RlQmxv
Y2suaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiU3RydWN0dXJlU3R1Yklu
Zm8uaCIKIAogbmFtZXNwYWNlIEpTQyB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVi
dWdnZXIvRGVidWdnZXJDYWxsRnJhbWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckNhbGxGcmFtZS5jcHAJKHJldmlzaW9uIDE2Mzc1MikK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckNhbGxGcmFtZS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTI5LDcgKzI5LDYgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNp
bmNsdWRlICJEZWJ1Z2dlckNhbGxGcmFtZS5oIgogCi0jaW5jbHVkZSAiQ2FsbEZyYW1lSW5saW5l
cy5oIgogI2luY2x1ZGUgIkNvZGVCbG9jay5oIgogI2luY2x1ZGUgIkludGVycHJldGVyLmgiCiAj
aW5jbHVkZSAiSlNBY3RpdmF0aW9uLmgiCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0F2YWlsYWJpbGl0eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdBdmFpbGFiaWxpdHkuY3BwCShyZXZpc2lvbiAxNjM3NTIpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0F2YWlsYWJpbGl0eS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5
LDYgKzI5LDcgQEAKICNpZiBFTkFCTEUoREZHX0pJVCkKIAogI2luY2x1ZGUgIkRGR05vZGUuaCIK
KyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZH
IHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCbG9ja0luc2VydGlvblNl
dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCbG9ja0lu
c2VydGlvblNldC5jcHAJKHJldmlzaW9uIDE2Mzc1MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHQmxvY2tJbnNlcnRpb25TZXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsy
OCw4IEBACiAKICNpZiBFTkFCTEUoREZHX0pJVCkKIAorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIK
KwogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgewogCiBCbG9ja0luc2VydGlvblNldDo6
QmxvY2tJbnNlcnRpb25TZXQoR3JhcGgmIGdyYXBoKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdDU0VQaGFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdDU0VQaGFzZS5jcHAJKHJldmlzaW9uIDE2Mzc1MikKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHQ1NFUGhhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw3ICsz
Myw3IEBACiAjaW5jbHVkZSAiREZHRWRnZVVzZXNTdHJ1Y3R1cmUuaCIKICNpbmNsdWRlICJERkdH
cmFwaC5oIgogI2luY2x1ZGUgIkRGR1BoYXNlLmgiCi0jaW5jbHVkZSAiSlNDZWxsSW5saW5lcy5o
IgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlIDxhcnJheT4KICNpbmNsdWRlIDx3
dGYvRmFzdEJpdFZlY3Rvci5oPgogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0NhcGFiaWxpdGllcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdDYXBhYmlsaXRpZXMuY3BwCShyZXZpc2lvbiAxNjM3NTIpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0NhcGFiaWxpdGllcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMxLDYg
KzMxLDcgQEAKICNpbmNsdWRlICJDb2RlQmxvY2suaCIKICNpbmNsdWRlICJERkdDb21tb24uaCIK
ICNpbmNsdWRlICJJbnRlcnByZXRlci5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFt
ZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgewogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0Rlc2lyZWRUcmFuc2l0aW9ucy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdEZXNpcmVkVHJhbnNpdGlvbnMuY3BwCShyZXZpc2lvbiAxNjM3
NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Rlc2lyZWRUcmFuc2l0aW9ucy5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTMxLDYgKzMxLDcgQEAKIAogI2luY2x1ZGUgIkNvZGVCbG9j
ay5oIgogI2luY2x1ZGUgIkRGR0NvbW1vbkRhdGEuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgi
CiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKIApJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdEcml2ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHRHJpdmVyLmNwcAkocmV2aXNpb24gMTYzNzUyKQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdEcml2ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjEsNyAr
MTIxLDcgQEAgc3RhdGljIENvbXBpbGF0aW9uUmVzdWx0IGNvbXBpbGVJbXBsKAogICAgICAgICBy
ZXR1cm4gQ29tcGlsYXRpb25EZWZlcnJlZDsKICAgICB9CiAgICAgCi0gICAgcGxhbi0+Y29tcGls
ZUluVGhyZWFkKCp2bS5kZmdTdGF0ZSk7CisgICAgcGxhbi0+Y29tcGlsZUluVGhyZWFkKCp2bS5k
ZmdTdGF0ZSwgMCk7CiAgICAgcmV0dXJuIHBsYW4tPmZpbmFsaXplV2l0aG91dE5vdGlmeWluZ0Nh
bGxiYWNrKCk7CiB9CiAjZWxzZSAvLyBFTkFCTEUoREZHX0pJVCkKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHR3JhcGguY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHR3JhcGguY3BwCShyZXZpc2lvbiAxNjM3NTIpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzkwLDYgKzc5
MCw1OSBAQCBKU0FycmF5QnVmZmVyVmlldyogR3JhcGg6OnRyeUdldEZvbGRhYmxlCiAgICAgcmV0
dXJuIHRyeUdldEZvbGRhYmxlVmlldyhjaGlsZChub2RlLCAwKS5ub2RlKCksIG5vZGUtPmFycmF5
TW9kZSgpKTsKIH0KIAordm9pZCBHcmFwaDo6dmlzaXRDaGlsZHJlbihTbG90VmlzaXRvciYgdmlz
aXRvcikKK3sKKyAgICBmb3IgKEJsb2NrSW5kZXggYmxvY2tJbmRleCA9IG51bUJsb2NrcygpOyBi
bG9ja0luZGV4LS07KSB7CisgICAgICAgIEJhc2ljQmxvY2sqIGJsb2NrID0gdGhpcy0+YmxvY2so
YmxvY2tJbmRleCk7CisgICAgICAgIGlmICghYmxvY2spCisgICAgICAgICAgICBjb250aW51ZTsK
KyAgICAgICAgCisgICAgICAgIGZvciAodW5zaWduZWQgbm9kZUluZGV4ID0gMDsgbm9kZUluZGV4
IDwgYmxvY2stPnNpemUoKTsgKytub2RlSW5kZXgpIHsKKyAgICAgICAgICAgIE5vZGUqIG5vZGUg
PSBibG9jay0+YXQobm9kZUluZGV4KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgc3dpdGNo
IChub2RlLT5vcCgpKSB7CisgICAgICAgICAgICBjYXNlIEpTQ29uc3RhbnQ6CisgICAgICAgICAg
ICBjYXNlIFdlYWtKU0NvbnN0YW50OgorICAgICAgICAgICAgICAgIHZpc2l0b3IuYXBwZW5kVW5i
YXJyaWVyZWRSZWFkT25seVZhbHVlKHZhbHVlT2ZKU0NvbnN0YW50KG5vZGUpKTsKKyAgICAgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIGNhc2UgQ2hlY2tG
dW5jdGlvbjoKKyAgICAgICAgICAgICAgICB2aXNpdG9yLmFwcGVuZFVuYmFycmllcmVkUmVhZE9u
bHlQb2ludGVyKG5vZGUtPmZ1bmN0aW9uKCkpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICAgICAgICAgIAorICAgICAgICAgICAgY2FzZSBDaGVja0V4ZWN1dGFibGU6CisgICAgICAg
ICAgICAgICAgdmlzaXRvci5hcHBlbmRVbmJhcnJpZXJlZFJlYWRPbmx5UG9pbnRlcihub2RlLT5l
eGVjdXRhYmxlKCkpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIAor
ICAgICAgICAgICAgY2FzZSBDaGVja1N0cnVjdHVyZToKKyAgICAgICAgICAgICAgICBmb3IgKHVu
c2lnbmVkIGkgPSBub2RlLT5zdHJ1Y3R1cmVTZXQoKS5zaXplKCk7IGktLTspCisgICAgICAgICAg
ICAgICAgICAgIHZpc2l0b3IuYXBwZW5kVW5iYXJyaWVyZWRSZWFkT25seVBvaW50ZXIobm9kZS0+
c3RydWN0dXJlU2V0KClbaV0pOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
ICAgIAorICAgICAgICAgICAgY2FzZSBTdHJ1Y3R1cmVUcmFuc2l0aW9uV2F0Y2hwb2ludDoKKyAg
ICAgICAgICAgIGNhc2UgTmV3T2JqZWN0OgorICAgICAgICAgICAgY2FzZSBBcnJheWlmeVRvU3Ry
dWN0dXJlOgorICAgICAgICAgICAgY2FzZSBOZXdTdHJpbmdPYmplY3Q6CisgICAgICAgICAgICAg
ICAgdmlzaXRvci5hcHBlbmRVbmJhcnJpZXJlZFJlYWRPbmx5UG9pbnRlcihub2RlLT5zdHJ1Y3R1
cmUoKSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgCisgICAgICAg
ICAgICBjYXNlIFB1dFN0cnVjdHVyZToKKyAgICAgICAgICAgIGNhc2UgUGhhbnRvbVB1dFN0cnVj
dHVyZToKKyAgICAgICAgICAgIGNhc2UgQWxsb2NhdGVQcm9wZXJ0eVN0b3JhZ2U6CisgICAgICAg
ICAgICBjYXNlIFJlYWxsb2NhdGVQcm9wZXJ0eVN0b3JhZ2U6CisgICAgICAgICAgICAgICAgdmlz
aXRvci5hcHBlbmRVbmJhcnJpZXJlZFJlYWRPbmx5UG9pbnRlcigKKyAgICAgICAgICAgICAgICAg
ICAgbm9kZS0+c3RydWN0dXJlVHJhbnNpdGlvbkRhdGEoKS5wcmV2aW91c1N0cnVjdHVyZSk7Cisg
ICAgICAgICAgICAgICAgdmlzaXRvci5hcHBlbmRVbmJhcnJpZXJlZFJlYWRPbmx5UG9pbnRlcigK
KyAgICAgICAgICAgICAgICAgICAgbm9kZS0+c3RydWN0dXJlVHJhbnNpdGlvbkRhdGEoKS5uZXdT
dHJ1Y3R1cmUpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIAorICAg
ICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgfQorICAgIH0KK30KKwogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkRGRwogCiAjZW5k
aWYKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmgJKHJldmlzaW9uIDE2Mzc1
MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguaAkod29ya2luZyBjb3B5
KQpAQCAtNDAsNiArNDAsNyBAQAogI2luY2x1ZGUgIkRGR05vZGUuaCIKICNpbmNsdWRlICJERkdO
b2RlQWxsb2NhdG9yLmgiCiAjaW5jbHVkZSAiREZHUGxhbi5oIgorI2luY2x1ZGUgIkRGR1NjYW5u
YWJsZS5oIgogI2luY2x1ZGUgIkRGR1ZhcmlhZGljRnVuY3Rpb24uaCIKICNpbmNsdWRlICJJbmxp
bmVDYWxsRnJhbWVTZXQuaCIKICNpbmNsdWRlICJKU1N0YWNrLmgiCkBAIC03OCw3ICs3OSw3IEBA
IGVudW0gQWRkU3BlY3VsYXRpb25Nb2RlIHsKIC8vCiAvLyBUaGUgb3JkZXIgbWF5IGJlIHNpZ25p
ZmljYW50IGZvciBub2RlcyB3aXRoIHNpZGUtZWZmZWN0cyAocHJvcGVydHkgYWNjZXNzZXMsIHZh
bHVlIGNvbnZlcnNpb25zKS4KIC8vIE5vZGVzIHRoYXQgYXJlICdkZWFkJyByZW1haW4gaW4gdGhl
IHZlY3RvciB3aXRoIHJlZkNvdW50IDAuCi1jbGFzcyBHcmFwaCB7CitjbGFzcyBHcmFwaCA6IHB1
YmxpYyB2aXJ0dWFsIFNjYW5uYWJsZSB7CiBwdWJsaWM6CiAgICAgR3JhcGgoVk0mLCBQbGFuJiwg
TG9uZ0xpdmVkU3RhdGUmKTsKICAgICB+R3JhcGgoKTsKQEAgLTc5OSw2ICs4MDAsOCBAQCBwdWJs
aWM6CiAgICAgSlNBcnJheUJ1ZmZlclZpZXcqIHRyeUdldEZvbGRhYmxlVmlldyhOb2RlKiwgQXJy
YXlNb2RlKTsKICAgICBKU0FycmF5QnVmZmVyVmlldyogdHJ5R2V0Rm9sZGFibGVWaWV3Rm9yQ2hp
bGQxKE5vZGUqKTsKICAgICAKKyAgICB2aXJ0dWFsIHZvaWQgdmlzaXRDaGlsZHJlbihTbG90Vmlz
aXRvciYpIG92ZXJyaWRlOworICAgIAogICAgIFZNJiBtX3ZtOwogICAgIFBsYW4mIG1fcGxhbjsK
ICAgICBDb2RlQmxvY2sqIG1fY29kZUJsb2NrOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdHcmFwaFNhZmVwb2ludC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdHcmFwaFNhZmVwb2ludC5jcHAJKHJldmlzaW9uIDApCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoU2FmZXBvaW50LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMCwwICsxLDQ3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgor
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJERkdHcmFwaFNhZmVwb2ludC5o
IgorCisjaWYgRU5BQkxFKERGR19KSVQpCisKKyNpbmNsdWRlICJERkdHcmFwaC5oIgorCituYW1l
c3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CisKK0dyYXBoU2FmZXBvaW50OjpHcmFwaFNhZmVw
b2ludChHcmFwaCYgZ3JhcGgpCisgICAgOiBtX3NhZmVwb2ludChncmFwaC5tX3BsYW4pCit7Cisg
ICAgbV9zYWZlcG9pbnQuYWRkKCZncmFwaCk7CisgICAgbV9zYWZlcG9pbnQuYmVnaW4oKTsKK30K
KworR3JhcGhTYWZlcG9pbnQ6On5HcmFwaFNhZmVwb2ludCgpIHsgfQorCit9IH0gLy8gbmFtZXNw
YWNlIEpTQzo6REZHCisKKyNlbmRpZiAvLyBFTkFCTEUoREZHX0pJVCkKKwpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaFNhZmVwb2ludC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGhTYWZlcG9pbnQuaAkocmV2aXNpb24gMCkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGhTYWZlcG9pbnQuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMCwwICsxLDUxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuIAorICovCisKKyNpZm5kZWYgREZHR3JhcGhTYWZlcG9pbnRfaAorI2RlZmluZSBERkdH
cmFwaFNhZmVwb2ludF9oCisKKyNpZiBFTkFCTEUoREZHX0pJVCkKKworI2luY2x1ZGUgIkRGR1Nh
ZmVwb2ludC5oIgorCituYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CisKK2NsYXNzIEdy
YXBoOworCitjbGFzcyBHcmFwaFNhZmVwb2ludCB7CitwdWJsaWM6CisgICAgR3JhcGhTYWZlcG9p
bnQoR3JhcGgmKTsKKyAgICB+R3JhcGhTYWZlcG9pbnQoKTsKKyAgICAKK3ByaXZhdGU6CisgICAg
U2FmZXBvaW50IG1fc2FmZXBvaW50OworfTsKKworfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkRGRwor
CisjZW5kaWYgLy8gRU5BQkxFKERGR19KSVQpCisKKyNlbmRpZiAvLyBERkdHcmFwaFNhZmVwb2lu
dF9oCisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklUQ29kZS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb2RlLmNwcAkocmV2
aXNpb24gMTYzNzUyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb2RlLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMjksNiArMjksNyBAQAogI2lmIEVOQUJMRShERkdfSklUKQog
CiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiBuYW1l
c3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHSklUQ29tcGlsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHSklUQ29tcGlsZXIuY3BwCShyZXZpc2lvbiAxNjM3NTIpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVENvbXBpbGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
NDEsOSArNDEsMTAgQEAKICNpbmNsdWRlICJERkdTcGVjdWxhdGl2ZUpJVC5oIgogI2luY2x1ZGUg
IkRGR1RodW5rcy5oIgogI2luY2x1ZGUgIkpTQ0pTVmFsdWVJbmxpbmVzLmgiCisjaW5jbHVkZSAi
TGlua0J1ZmZlci5oIgogI2luY2x1ZGUgIk1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsLmgi
CisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIlZNLmgiCi0jaW5jbHVkZSAiTGlu
a0J1ZmZlci5oIgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklUQ29tcGlsZXIuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVENvbXBpbGVyLmgJKHJldmlzaW9uIDE2Mzc1
MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklUQ29tcGlsZXIuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMjksNyArMjksNiBAQAogI2lmIEVOQUJMRShERkdfSklUKQogCiAjaW5jbHVk
ZSAiQ0NhbGxIZWxwZXJzLmgiCi0jaW5jbHVkZSAiQ2FsbEZyYW1lSW5saW5lcy5oIgogI2luY2x1
ZGUgIkNvZGVCbG9jay5oIgogI2luY2x1ZGUgIkRGR0Rpc2Fzc2VtYmxlci5oIgogI2luY2x1ZGUg
IkRGR0dyYXBoLmgiCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXRD
b21waWxlckNvbW1vbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdPU1JFeGl0Q29tcGlsZXJDb21tb24uY3BwCShyZXZpc2lvbiAxNjM3NTIpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXRDb21waWxlckNvbW1vbi5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTI5LDYgKzI5LDcgQEAKICNpZiBFTkFCTEUoREZHX0pJVCkKIAogI2luY2x1
ZGUgIkFyZ3VtZW50cy5oIgorI2luY2x1ZGUgIkRGR0pJVENvZGUuaCIKICNpbmNsdWRlICJERkdP
cGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiSklULmgiCiAjaW5jbHVkZSAiSlNDSlNWYWx1ZUlubGlu
ZXMuaCIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNw
cAkocmV2aXNpb24gMTYzNzUyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVy
YXRpb25zLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkNv
bW1vblNsb3dQYXRocy5oIgogI2luY2x1ZGUgIkNvcGllZFNwYWNlSW5saW5lcy5oIgogI2luY2x1
ZGUgIkRGR0RyaXZlci5oIgorI2luY2x1ZGUgIkRGR0pJVENvZGUuaCIKICNpbmNsdWRlICJERkdP
U1JFeGl0LmgiCiAjaW5jbHVkZSAiREZHVGh1bmtzLmgiCiAjaW5jbHVkZSAiREZHVG9GVExEZWZl
cnJlZENvbXBpbGF0aW9uQ2FsbGJhY2suaCIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHT3BlcmF0aW9ucy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHT3BlcmF0aW9ucy5oCShyZXZpc2lvbiAxNjM3NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR09wZXJhdGlvbnMuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAK
IC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExLCAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjgs
NyArMjgsNiBAQAogCiAjaWYgRU5BQkxFKERGR19KSVQpCiAKLSNpbmNsdWRlICJERkdKSVRDb21w
aWxlci5oIgogI2luY2x1ZGUgIkpJVE9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJQdXRLaW5kLmgi
CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUGxhbi5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQbGFuLmNwcAkocmV2aXNpb24gMTYz
NzUyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQbGFuLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNDEsNiArNDEsNyBAQAogI2luY2x1ZGUgIkRGR0ZhaWxlZEZpbmFsaXplci5oIgog
I2luY2x1ZGUgIkRGR0ZsdXNoTGl2ZW5lc3NBbmFseXNpc1BoYXNlLmgiCiAjaW5jbHVkZSAiREZH
Rml4dXBQaGFzZS5oIgorI2luY2x1ZGUgIkRGR0dyYXBoU2FmZXBvaW50LmgiCiAjaW5jbHVkZSAi
REZHSW52YWxpZGF0aW9uUG9pbnRJbmplY3Rpb25QaGFzZS5oIgogI2luY2x1ZGUgIkRGR0pJVENv
bXBpbGVyLmgiCiAjaW5jbHVkZSAiREZHTElDTVBoYXNlLmgiCkBAIC0xMzUsOCArMTM2LDEwIEBA
IGJvb2wgUGxhbjo6cmVwb3J0Q29tcGlsZVRpbWVzKCkgY29uc3QKICAgICAgICAgfHwgKE9wdGlv
bnM6OnJlcG9ydEZUTENvbXBpbGVUaW1lcygpICYmIGlzRlRMKG1vZGUpKTsKIH0KIAotdm9pZCBQ
bGFuOjpjb21waWxlSW5UaHJlYWQoTG9uZ0xpdmVkU3RhdGUmIGxvbmdMaXZlZFN0YXRlKQordm9p
ZCBQbGFuOjpjb21waWxlSW5UaHJlYWQoTG9uZ0xpdmVkU3RhdGUmIGxvbmdMaXZlZFN0YXRlLCBU
aHJlYWREYXRhKiB0aHJlYWREYXRhKQogeworICAgIHRoaXMtPnRocmVhZERhdGEgPSB0aHJlYWRE
YXRhOworICAgIAogICAgIGRvdWJsZSBiZWZvcmUgPSAwOwogICAgIGlmIChyZXBvcnRDb21waWxl
VGltZXMoKSkKICAgICAgICAgYmVmb3JlID0gY3VycmVudFRpbWVNUygpOwpAQCAtMzEzLDExICsz
MTYsMTQgQEAgUGxhbjo6Q29tcGlsYXRpb25QYXRoIFBsYW46OmNvbXBpbGVJblRocgogICAgICAg
ICAKICAgICAgICAgZHVtcEFuZFZlcmlmeUdyYXBoKGRmZywgIkdyYXBoIGp1c3QgYmVmb3JlIEZU
TCBsb3dlcmluZzoiKTsKICAgICAgICAgCi0gICAgICAgIGluaXRpYWxpemVMTFZNKCk7Ci0gICAg
ICAgIAorICAgICAgICB7CisgICAgICAgICAgICBHcmFwaFNhZmVwb2ludCBzYWZlcG9pbnQoZGZn
KTsKKyAgICAgICAgICAgIGluaXRpYWxpemVMTFZNKCk7CisgICAgICAgIH0KKyAgICAgICAgICAg
IAogICAgICAgICBGVEw6OlN0YXRlIHN0YXRlKGRmZyk7CiAgICAgICAgIEZUTDo6bG93ZXJERkdU
b0xMVk0oc3RhdGUpOwotICAgICAgICAKKyAgICAgICAgICAgIAogICAgICAgICBpZiAocmVwb3J0
Q29tcGlsZVRpbWVzKCkpCiAgICAgICAgICAgICBiZWZvcmVGVEwgPSBjdXJyZW50VGltZU1TKCk7
CiAgICAgICAgIApAQCAtMzI3LDcgKzMzMyw3IEBAIFBsYW46OkNvbXBpbGF0aW9uUGF0aCBQbGFu
Ojpjb21waWxlSW5UaHIKICAgICAgICAgfQogICAgICAgICAKICAgICAgICAgRlRMOjpjb21waWxl
KHN0YXRlKTsKLQorICAgICAgICAgICAgCiAgICAgICAgIGlmIChPcHRpb25zOjpsbHZtQWx3YXlz
RmFpbHNCZWZvcmVMaW5rKCkpIHsKICAgICAgICAgICAgIEZUTDo6ZmFpbChzdGF0ZSk7CiAgICAg
ICAgICAgICByZXR1cm4gRlRMUGF0aDsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHUGxhbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUGxh
bi5oCShyZXZpc2lvbiAxNjM3NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Bs
YW4uaAkod29ya2luZyBjb3B5KQpAQCAtNTIsNiArNTIsNyBAQCBjbGFzcyBTbG90VmlzaXRvcjsK
IG5hbWVzcGFjZSBERkcgewogCiBjbGFzcyBMb25nTGl2ZWRTdGF0ZTsKK2NsYXNzIFRocmVhZERh
dGE7CiAKICNpZiBFTkFCTEUoREZHX0pJVCkKIApAQCAtNjIsNyArNjMsNyBAQCBzdHJ1Y3QgUGxh
biA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlCiAgICAgICAgIGNvbnN0IE9wZXJhbmRzPEpT
VmFsdWU+JiBtdXN0SGFuZGxlVmFsdWVzKTsKICAgICB+UGxhbigpOwogICAgIAotICAgIHZvaWQg
Y29tcGlsZUluVGhyZWFkKExvbmdMaXZlZFN0YXRlJik7CisgICAgdm9pZCBjb21waWxlSW5UaHJl
YWQoTG9uZ0xpdmVkU3RhdGUmLCBUaHJlYWREYXRhKik7CiAgICAgCiAgICAgQ29tcGlsYXRpb25S
ZXN1bHQgZmluYWxpemVXaXRob3V0Tm90aWZ5aW5nQ2FsbGJhY2soKTsKICAgICB2b2lkIGZpbmFs
aXplQW5kTm90aWZ5Q2FsbGJhY2soKTsKQEAgLTc5LDYgKzgwLDggQEAgc3RydWN0IFBsYW4gOiBw
dWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZQogICAgIENvbXBpbGF0aW9uTW9kZSBtb2RlOwogICAg
IGNvbnN0IHVuc2lnbmVkIG9zckVudHJ5Qnl0ZWNvZGVJbmRleDsKICAgICBPcGVyYW5kczxKU1Zh
bHVlPiBtdXN0SGFuZGxlVmFsdWVzOworICAgIAorICAgIFRocmVhZERhdGEqIHRocmVhZERhdGE7
CiAKICAgICBSZWZQdHI8UHJvZmlsZXI6OkNvbXBpbGF0aW9uPiBjb21waWxhdGlvbjsKIApJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTYWZlcG9pbnQuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZXBvaW50LmNwcAkocmV2aXNpb24g
MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZXBvaW50LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMCwwICsxLDc0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJERkdTYWZlcG9p
bnQuaCIKKworI2lmIEVOQUJMRShERkdfSklUKQorCisjaW5jbHVkZSAiREZHUGxhbi5oIgorI2lu
Y2x1ZGUgIkRGR1NjYW5uYWJsZS5oIgorI2luY2x1ZGUgIkRGR1RocmVhZERhdGEuaCIKKworbmFt
ZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgeworCitTYWZlcG9pbnQ6OlNhZmVwb2ludChQbGFu
JiBwbGFuKQorICAgIDogbV9wbGFuKHBsYW4pCisgICAgLCBtX2RpZENhbGxCZWdpbihmYWxzZSkK
K3sKK30KKworU2FmZXBvaW50Ojp+U2FmZXBvaW50KCkKK3sKKyAgICBSRUxFQVNFX0FTU0VSVCht
X2RpZENhbGxCZWdpbik7CisgICAgaWYgKFRocmVhZERhdGEqIGRhdGEgPSBtX3BsYW4udGhyZWFk
RGF0YSkKKyAgICAgICAgZGF0YS0+bV9yaWdodFRvUnVuLmxvY2soKTsKK30KKwordm9pZCBTYWZl
cG9pbnQ6OmFkZChTY2FubmFibGUqIHNjYW5uYWJsZSkKK3sKKyAgICBSRUxFQVNFX0FTU0VSVCgh
bV9kaWRDYWxsQmVnaW4pOworICAgIG1fc2Nhbm5hYmxlcy5hcHBlbmQoc2Nhbm5hYmxlKTsKK30K
Kwordm9pZCBTYWZlcG9pbnQ6OmJlZ2luKCkKK3sKKyAgICBSRUxFQVNFX0FTU0VSVCghbV9kaWRD
YWxsQmVnaW4pOworICAgIGlmIChUaHJlYWREYXRhKiBkYXRhID0gbV9wbGFuLnRocmVhZERhdGEp
CisgICAgICAgIGRhdGEtPm1fcmlnaHRUb1J1bi51bmxvY2soKTsKKyAgICBtX2RpZENhbGxCZWdp
biA9IHRydWU7Cit9CisKK3ZvaWQgU2FmZXBvaW50Ojp2aXNpdENoaWxkcmVuKFNsb3RWaXNpdG9y
JiB2aXNpdG9yKQoreworICAgIFJFTEVBU0VfQVNTRVJUKG1fZGlkQ2FsbEJlZ2luKTsKKyAgICBm
b3IgKHVuc2lnbmVkIGkgPSBtX3NjYW5uYWJsZXMuc2l6ZSgpOyBpLS07KQorICAgICAgICBtX3Nj
YW5uYWJsZXNbaV0tPnZpc2l0Q2hpbGRyZW4odmlzaXRvcik7Cit9CisKK30gfSAvLyBuYW1lc3Bh
Y2UgSlNDOjpERkcKKworI2VuZGlmIC8vIEVOQUJMRShERkdfSklUKQorCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVwb2ludC5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZXBvaW50LmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVwb2ludC5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAg
KzEsNjQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKwor
I2lmbmRlZiBERkdTYWZlcG9pbnRfaAorI2RlZmluZSBERkdTYWZlcG9pbnRfaAorCisjaWYgRU5B
QkxFKERGR19KSVQpCisKKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisKK25hbWVzcGFjZSBKU0Mg
eworCitjbGFzcyBTbG90VmlzaXRvcjsKKworbmFtZXNwYWNlIERGRyB7CisKK2NsYXNzIFNjYW5u
YWJsZTsKK3N0cnVjdCBQbGFuOworCitjbGFzcyBTYWZlcG9pbnQgeworcHVibGljOgorICAgIFNh
ZmVwb2ludChQbGFuJik7CisgICAgflNhZmVwb2ludCgpOworICAgIAorICAgIHZvaWQgYWRkKFNj
YW5uYWJsZSopOworICAgIAorICAgIHZvaWQgYmVnaW4oKTsKKyAgICAKKyAgICB2b2lkIHZpc2l0
Q2hpbGRyZW4oU2xvdFZpc2l0b3ImKTsKKyAgICAKK3ByaXZhdGU6CisgICAgUGxhbiYgbV9wbGFu
OworICAgIFZlY3RvcjxTY2FubmFibGUqPiBtX3NjYW5uYWJsZXM7CisgICAgYm9vbCBtX2RpZENh
bGxCZWdpbjsKK307CisKK30gfSAvLyBuYW1lc3BhY2UgSlNDOjpERkcKKworI2VuZGlmIC8vIEVO
QUJMRShERkdfSklUKQorCisjZW5kaWYgLy8gREZHU2FmZXBvaW50X2gKKwpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTY2FubmFibGUuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1NjYW5uYWJsZS5oCShyZXZpc2lvbiAwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTY2FubmFibGUuaAkod29ya2luZyBjb3B5KQpAQCAtMCww
ICsxLDUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisK
KyNpZm5kZWYgREZHU2Nhbm5hYmxlX2gKKyNkZWZpbmUgREZHU2Nhbm5hYmxlX2gKKworI2lmIEVO
QUJMRShERkdfSklUKQorCituYW1lc3BhY2UgSlNDIHsKKworY2xhc3MgU2xvdFZpc2l0b3I7CisK
K25hbWVzcGFjZSBERkcgeworCitjbGFzcyBTY2FubmFibGUgeworcHVibGljOgorICAgIFNjYW5u
YWJsZSgpIHsgfQorICAgIHZpcnR1YWwgflNjYW5uYWJsZSgpIHsgfQorICAgIAorICAgIHZpcnR1
YWwgdm9pZCB2aXNpdENoaWxkcmVuKFNsb3RWaXNpdG9yJikgPSAwOworfTsKKworfSB9IC8vIG5h
bWVzcGFjZSBKU0M6OkRGRworCisjZW5kaWYgLy8gRU5BQkxFKERGR19KSVQpCisKKyNlbmRpZiAv
LyBERkdTY2FubmFibGVfaAorCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Ro
cmVhZERhdGEuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
VGhyZWFkRGF0YS5jcHAJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1RocmVhZERhdGEuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNDcgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIkRGR1RocmVhZERhdGEuaCIKKworI2lmIEVOQUJMRShERkdfSklUKQor
CituYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CisKK1RocmVhZERhdGE6OlRocmVhZERh
dGEoV29ya2xpc3QqIHdvcmtsaXN0KQorICAgIDogbV93b3JrbGlzdCh3b3JrbGlzdCkKKyAgICAs
IG1faWRlbnRpZmllcigwKQorICAgICwgbV9zYWZlcG9pbnQobnVsbHB0cikKK3sKK30KKworVGhy
ZWFkRGF0YTo6flRocmVhZERhdGEoKQoreworfQorCit9IH0gLy8gbmFtZXNwYWNlIEpTQzo6REZH
CisKKyNlbmRpZiAvLyBFTkFCTEUoREZHX0pJVCkKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdUaHJlYWREYXRhLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdUaHJlYWREYXRhLmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1RocmVhZERhdGEuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDU5IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQor
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYg
REZHVGhyZWFkRGF0YV9oCisjZGVmaW5lIERGR1RocmVhZERhdGFfaAorCisjaWYgRU5BQkxFKERG
R19KSVQpCisKKyNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+CisjaW5jbHVkZSA8d3RmL1RocmVh
ZGluZ1ByaW1pdGl2ZXMuaD4KKworbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgeworCitj
bGFzcyBTYWZlcG9pbnQ7CitjbGFzcyBXb3JrbGlzdDsKKworY2xhc3MgVGhyZWFkRGF0YSB7Citw
dWJsaWM6CisgICAgVGhyZWFkRGF0YShXb3JrbGlzdCopOworICAgIH5UaHJlYWREYXRhKCk7Cisg
ICAgCitwcml2YXRlOgorICAgIGZyaWVuZCBjbGFzcyBTYWZlcG9pbnQ7CisgICAgZnJpZW5kIGNs
YXNzIFdvcmtsaXN0OworICAgIAorICAgIFdvcmtsaXN0KiBtX3dvcmtsaXN0OworICAgIFRocmVh
ZElkZW50aWZpZXIgbV9pZGVudGlmaWVyOworICAgIE11dGV4IG1fcmlnaHRUb1J1bjsKKyAgICBT
YWZlcG9pbnQqIG1fc2FmZXBvaW50OworfTsKKworfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkRGRwor
CisjZW5kaWYgLy8gRU5BQkxFKERGR19KSVQpCisKKyNlbmRpZiAvLyBERkdUaHJlYWREYXRhX2gK
KwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdUaHVua3MuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVGh1bmtzLmNwcAkocmV2aXNpb24g
MTYzNzUyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdUaHVua3MuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiREZHT1NSRXhpdENvbXBpbGVy
LmgiCiAjaW5jbHVkZSAiRlBSSW5mby5oIgogI2luY2x1ZGUgIkdQUkluZm8uaCIKKyNpbmNsdWRl
ICJMaW5rQnVmZmVyLmgiCiAjaW5jbHVkZSAiTWFjcm9Bc3NlbWJsZXIuaCIKIAogbmFtZXNwYWNl
IEpTQyB7IG5hbWVzcGFjZSBERkcgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdXb3JrbGlzdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdXb3JrbGlzdC5jcHAJKHJldmlzaW9uIDE2Mzc1MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHV29ya2xpc3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2ICszMSw3IEBACiAj
aW5jbHVkZSAiQ29kZUJsb2NrLmgiCiAjaW5jbHVkZSAiRGVmZXJHQy5oIgogI2luY2x1ZGUgIkRG
R0xvbmdMaXZlZFN0YXRlLmgiCisjaW5jbHVkZSAiREZHU2FmZXBvaW50LmgiCiAjaW5jbHVkZSA8
bXV0ZXg+CiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKQEAgLTU3LDggKzU4LDcg
QEAgdm9pZCBXb3JrbGlzdDo6ZmluaXNoQ3JlYXRpb24odW5zaWduZWQgbgogewogICAgIFJFTEVB
U0VfQVNTRVJUKG51bWJlck9mVGhyZWFkcyk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gbnVtYmVy
T2ZUaHJlYWRzOyBpLS07KSB7Ci0gICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxUaHJlYWREYXRhPiBk
YXRhID0gc3RkOjptYWtlX3VuaXF1ZTxUaHJlYWREYXRhPigpOwotICAgICAgICBkYXRhLT5tX3dv
cmtsaXN0ID0gdGhpczsKKyAgICAgICAgc3RkOjp1bmlxdWVfcHRyPFRocmVhZERhdGE+IGRhdGEg
PSBzdGQ6Om1ha2VfdW5pcXVlPFRocmVhZERhdGE+KHRoaXMpOwogICAgICAgICBkYXRhLT5tX2lk
ZW50aWZpZXIgPSBjcmVhdGVUaHJlYWQodGhyZWFkRnVuY3Rpb24sIGRhdGEuZ2V0KCksICJKU0Mg
Q29tcGlsYXRpb24gVGhyZWFkIik7CiAgICAgICAgIG1fdGhyZWFkcy5hcHBlbmQoc3RkOjptb3Zl
KGRhdGEpKTsKICAgICB9CkBAIC0yMTAsNiArMjEwLDEyIEBAIHZvaWQgV29ya2xpc3Q6OnZpc2l0
Q2hpbGRyZW4oU2xvdFZpc2l0b3IKICAgICAgICAgaXRlci0+a2V5LnZpc2l0Q2hpbGRyZW4oY29k
ZUJsb2Nrcyk7CiAgICAgICAgIGl0ZXItPnZhbHVlLT52aXNpdENoaWxkcmVuKHZpc2l0b3IsIGNv
ZGVCbG9ja3MpOwogICAgIH0KKyAgICAKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSBtX3RocmVhZHMu
c2l6ZSgpOyBpLS07KSB7CisgICAgICAgIFRocmVhZERhdGEqIGRhdGEgPSBtX3RocmVhZHNbaV0u
Z2V0KCk7CisgICAgICAgIGlmIChTYWZlcG9pbnQqIHNhZmVwb2ludCA9IGRhdGEtPm1fc2FmZXBv
aW50KQorICAgICAgICAgICAgc2FmZXBvaW50LT52aXNpdENoaWxkcmVuKHZpc2l0b3IpOworICAg
IH0KIH0KIAogc2l6ZV90IFdvcmtsaXN0OjpxdWV1ZUxlbmd0aCgpCkBAIC0yNjUsNyArMjcxLDcg
QEAgdm9pZCBXb3JrbGlzdDo6cnVuVGhyZWFkKFRocmVhZERhdGEqIGRhdAogICAgICAgICAgICAg
aWYgKE9wdGlvbnM6OnZlcmJvc2VDb21waWxhdGlvblF1ZXVlKCkpCiAgICAgICAgICAgICAgICAg
ZGF0YUxvZygqdGhpcywgIjogQ29tcGlsaW5nICIsIHBsYW4tPmtleSgpLCAiIGFzeW5jaHJvbm91
c2x5XG4iKTsKICAgICAgICAgCi0gICAgICAgICAgICBwbGFuLT5jb21waWxlSW5UaHJlYWQobG9u
Z0xpdmVkU3RhdGUpOworICAgICAgICAgICAgcGxhbi0+Y29tcGlsZUluVGhyZWFkKGxvbmdMaXZl
ZFN0YXRlLCBkYXRhKTsKICAgICAgICAgfQogICAgICAgICAKICAgICAgICAgewpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdXb3JrbGlzdC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHV29ya2xpc3QuaAkocmV2aXNpb24gMTYzNzUyKQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdXb3JrbGlzdC5oCSh3b3JraW5nIGNvcHkpCkBA
IC0zMSw2ICszMSw3IEBACiAjaWYgRU5BQkxFKERGR19KSVQpCiAKICNpbmNsdWRlICJERkdQbGFu
LmgiCisjaW5jbHVkZSAiREZHVGhyZWFkRGF0YS5oIgogI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgog
I2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CkBA
IC03NywxMiArNzgsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBkdW1wKFByaW50U3RyZWFtJikgY29u
c3Q7CiAgICAgCiBwcml2YXRlOgotICAgIHN0cnVjdCBUaHJlYWREYXRhIHsKLSAgICAgICAgV29y
a2xpc3QqIG1fd29ya2xpc3Q7Ci0gICAgICAgIFRocmVhZElkZW50aWZpZXIgbV9pZGVudGlmaWVy
OwotICAgICAgICBNdXRleCBtX3JpZ2h0VG9SdW47Ci0gICAgfTsKLSAgICAKICAgICBXb3JrbGlz
dCgpOwogICAgIHZvaWQgZmluaXNoQ3JlYXRpb24odW5zaWduZWQgbnVtYmVyT2ZUaHJlYWRzKTsK
ICAgICAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ29tcGlsZS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDb21waWxlLmNwcAkocmV2
aXNpb24gMTYzNzUyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDb21waWxlLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkNvZGVCbG9ja1dp
dGhKSVRUeXBlLmgiCiAjaW5jbHVkZSAiQ0NhbGxIZWxwZXJzLmgiCiAjaW5jbHVkZSAiREZHQ29t
bW9uLmgiCisjaW5jbHVkZSAiREZHR3JhcGhTYWZlcG9pbnQuaCIKICNpbmNsdWRlICJEYXRhVmll
dy5oIgogI2luY2x1ZGUgIkRpc2Fzc2VtYmxlci5oIgogI2luY2x1ZGUgIkZUTEV4aXRUaHVua0dl
bmVyYXRvci5oIgpAQCAtNDUyLDcwICs0NTMsNzQgQEAgdm9pZCBjb21waWxlKFN0YXRlJiBzdGF0
ZSkKIHsKICAgICBjaGFyKiBlcnJvciA9IDA7CiAgICAgCi0gICAgTExWTU1DSklUQ29tcGlsZXJP
cHRpb25zIG9wdGlvbnM7Ci0gICAgbGx2bS0+SW5pdGlhbGl6ZU1DSklUQ29tcGlsZXJPcHRpb25z
KCZvcHRpb25zLCBzaXplb2Yob3B0aW9ucykpOwotICAgIG9wdGlvbnMuT3B0TGV2ZWwgPSBPcHRp
b25zOjpsbHZtQmFja2VuZE9wdGltaXphdGlvbkxldmVsKCk7Ci0gICAgb3B0aW9ucy5Ob0ZyYW1l
UG9pbnRlckVsaW0gPSB0cnVlOwotICAgIGlmIChPcHRpb25zOjp1c2VMTFZNU21hbGxDb2RlTW9k
ZWwoKSkKLSAgICAgICAgb3B0aW9ucy5Db2RlTW9kZWwgPSBMTFZNQ29kZU1vZGVsU21hbGw7Ci0g
ICAgb3B0aW9ucy5FbmFibGVGYXN0SVNlbCA9IE9wdGlvbnM6OmVuYWJsZUxMVk1GYXN0SVNlbCgp
OwotICAgIG9wdGlvbnMuTUNKTU0gPSBsbHZtLT5DcmVhdGVTaW1wbGVNQ0pJVE1lbW9yeU1hbmFn
ZXIoCi0gICAgICAgICZzdGF0ZSwgbW1BbGxvY2F0ZUNvZGVTZWN0aW9uLCBtbUFsbG9jYXRlRGF0
YVNlY3Rpb24sIG1tQXBwbHlQZXJtaXNzaW9ucywgbW1EZXN0cm95KTsKLSAgICAKLSAgICBMTFZN
RXhlY3V0aW9uRW5naW5lUmVmIGVuZ2luZTsKLSAgICAKLSAgICBpZiAobGx2bS0+Q3JlYXRlTUNK
SVRDb21waWxlckZvck1vZHVsZSgmZW5naW5lLCBzdGF0ZS5tb2R1bGUsICZvcHRpb25zLCBzaXpl
b2Yob3B0aW9ucyksICZlcnJvcikpIHsKLSAgICAgICAgZGF0YUxvZygiRkFUQUw6IENvdWxkIG5v
dCBjcmVhdGUgTExWTSBleGVjdXRpb24gZW5naW5lOiAiLCBlcnJvciwgIlxuIik7Ci0gICAgICAg
IENSQVNIKCk7Ci0gICAgfQotCi0gICAgTExWTVBhc3NNYW5hZ2VyUmVmIGZ1bmN0aW9uUGFzc2Vz
ID0gMDsKLSAgICBMTFZNUGFzc01hbmFnZXJSZWYgbW9kdWxlUGFzc2VzOwotICAgIAotICAgIGlm
IChPcHRpb25zOjpsbHZtU2ltcGxlT3B0KCkpIHsKLSAgICAgICAgbW9kdWxlUGFzc2VzID0gbGx2
bS0+Q3JlYXRlUGFzc01hbmFnZXIoKTsKLSAgICAgICAgbGx2bS0+QWRkVGFyZ2V0RGF0YShsbHZt
LT5HZXRFeGVjdXRpb25FbmdpbmVUYXJnZXREYXRhKGVuZ2luZSksIG1vZHVsZVBhc3Nlcyk7Ci0g
ICAgICAgIGxsdm0tPkFkZFByb21vdGVNZW1vcnlUb1JlZ2lzdGVyUGFzcyhtb2R1bGVQYXNzZXMp
OwotICAgICAgICBsbHZtLT5BZGRDb25zdGFudFByb3BhZ2F0aW9uUGFzcyhtb2R1bGVQYXNzZXMp
OwotICAgICAgICBsbHZtLT5BZGRJbnN0cnVjdGlvbkNvbWJpbmluZ1Bhc3MobW9kdWxlUGFzc2Vz
KTsKLSAgICAgICAgbGx2bS0+QWRkQmFzaWNBbGlhc0FuYWx5c2lzUGFzcyhtb2R1bGVQYXNzZXMp
OwotICAgICAgICBsbHZtLT5BZGRUeXBlQmFzZWRBbGlhc0FuYWx5c2lzUGFzcyhtb2R1bGVQYXNz
ZXMpOwotICAgICAgICBsbHZtLT5BZGRHVk5QYXNzKG1vZHVsZVBhc3Nlcyk7Ci0gICAgICAgIGxs
dm0tPkFkZENGR1NpbXBsaWZpY2F0aW9uUGFzcyhtb2R1bGVQYXNzZXMpOwotICAgICAgICBsbHZt
LT5SdW5QYXNzTWFuYWdlcihtb2R1bGVQYXNzZXMsIHN0YXRlLm1vZHVsZSk7Ci0gICAgfSBlbHNl
IHsKLSAgICAgICAgTExWTVBhc3NNYW5hZ2VyQnVpbGRlclJlZiBwYXNzQnVpbGRlciA9IGxsdm0t
PlBhc3NNYW5hZ2VyQnVpbGRlckNyZWF0ZSgpOwotICAgICAgICBsbHZtLT5QYXNzTWFuYWdlckJ1
aWxkZXJTZXRPcHRMZXZlbChwYXNzQnVpbGRlciwgT3B0aW9uczo6bGx2bU9wdGltaXphdGlvbkxl
dmVsKCkpOwotICAgICAgICBsbHZtLT5QYXNzTWFuYWdlckJ1aWxkZXJTZXRTaXplTGV2ZWwocGFz
c0J1aWxkZXIsIE9wdGlvbnM6Omxsdm1TaXplTGV2ZWwoKSk7Ci0gICAgICAgIAotICAgICAgICBm
dW5jdGlvblBhc3NlcyA9IGxsdm0tPkNyZWF0ZUZ1bmN0aW9uUGFzc01hbmFnZXJGb3JNb2R1bGUo
c3RhdGUubW9kdWxlKTsKLSAgICAgICAgbW9kdWxlUGFzc2VzID0gbGx2bS0+Q3JlYXRlUGFzc01h
bmFnZXIoKTsKLSAgICAgICAgCi0gICAgICAgIGxsdm0tPkFkZFRhcmdldERhdGEobGx2bS0+R2V0
RXhlY3V0aW9uRW5naW5lVGFyZ2V0RGF0YShlbmdpbmUpLCBtb2R1bGVQYXNzZXMpOwotICAgICAg
ICAKLSAgICAgICAgbGx2bS0+UGFzc01hbmFnZXJCdWlsZGVyUG9wdWxhdGVGdW5jdGlvblBhc3NN
YW5hZ2VyKHBhc3NCdWlsZGVyLCBmdW5jdGlvblBhc3Nlcyk7Ci0gICAgICAgIGxsdm0tPlBhc3NN
YW5hZ2VyQnVpbGRlclBvcHVsYXRlTW9kdWxlUGFzc01hbmFnZXIocGFzc0J1aWxkZXIsIG1vZHVs
ZVBhc3Nlcyk7Ci0gICAgICAgIAotICAgICAgICBsbHZtLT5QYXNzTWFuYWdlckJ1aWxkZXJEaXNw
b3NlKHBhc3NCdWlsZGVyKTsKLSAgICAgICAgCi0gICAgICAgIGxsdm0tPkluaXRpYWxpemVGdW5j
dGlvblBhc3NNYW5hZ2VyKGZ1bmN0aW9uUGFzc2VzKTsKLSAgICAgICAgZm9yIChMVmFsdWUgZnVu
Y3Rpb24gPSBsbHZtLT5HZXRGaXJzdEZ1bmN0aW9uKHN0YXRlLm1vZHVsZSk7IGZ1bmN0aW9uOyBm
dW5jdGlvbiA9IGxsdm0tPkdldE5leHRGdW5jdGlvbihmdW5jdGlvbikpCi0gICAgICAgICAgICBs
bHZtLT5SdW5GdW5jdGlvblBhc3NNYW5hZ2VyKGZ1bmN0aW9uUGFzc2VzLCBmdW5jdGlvbik7Ci0g
ICAgICAgIGxsdm0tPkZpbmFsaXplRnVuY3Rpb25QYXNzTWFuYWdlcihmdW5jdGlvblBhc3Nlcyk7
Ci0gICAgICAgIAotICAgICAgICBsbHZtLT5SdW5QYXNzTWFuYWdlcihtb2R1bGVQYXNzZXMsIHN0
YXRlLm1vZHVsZSk7Ci0gICAgfQotCi0gICAgaWYgKERGRzo6c2hvdWxkU2hvd0Rpc2Fzc2VtYmx5
KCkgfHwgREZHOjp2ZXJib3NlQ29tcGlsYXRpb25FbmFibGVkKCkpCi0gICAgICAgIHN0YXRlLmR1
bXBTdGF0ZSgiYWZ0ZXIgb3B0aW1pemF0aW9uIik7Ci0gICAgCi0gICAgLy8gRklYTUU6IE5lZWQg
dG8gYWRkIHN1cHBvcnQgZm9yIHRoZSBjYXNlIHdoZXJlIEpJVCBtZW1vcnkgYWxsb2NhdGlvbiBm
YWlsZWQuCi0gICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEx
MzYyMAotICAgIHN0YXRlLmdlbmVyYXRlZEZ1bmN0aW9uID0gcmVpbnRlcnByZXRfY2FzdDxHZW5l
cmF0ZWRGdW5jdGlvbj4obGx2bS0+R2V0UG9pbnRlclRvR2xvYmFsKGVuZ2luZSwgc3RhdGUuZnVu
Y3Rpb24pKTsKLSAgICBpZiAoZnVuY3Rpb25QYXNzZXMpCi0gICAgICAgIGxsdm0tPkRpc3Bvc2VQ
YXNzTWFuYWdlcihmdW5jdGlvblBhc3Nlcyk7Ci0gICAgbGx2bS0+RGlzcG9zZVBhc3NNYW5hZ2Vy
KG1vZHVsZVBhc3Nlcyk7Ci0gICAgbGx2bS0+RGlzcG9zZUV4ZWN1dGlvbkVuZ2luZShlbmdpbmUp
OworICAgIHsKKyAgICAgICAgR3JhcGhTYWZlcG9pbnQgc2FmZXBvaW50KHN0YXRlLmdyYXBoKTsK
KyAgICAgICAgCisgICAgICAgIExMVk1NQ0pJVENvbXBpbGVyT3B0aW9ucyBvcHRpb25zOworICAg
ICAgICBsbHZtLT5Jbml0aWFsaXplTUNKSVRDb21waWxlck9wdGlvbnMoJm9wdGlvbnMsIHNpemVv
ZihvcHRpb25zKSk7CisgICAgICAgIG9wdGlvbnMuT3B0TGV2ZWwgPSBPcHRpb25zOjpsbHZtQmFj
a2VuZE9wdGltaXphdGlvbkxldmVsKCk7CisgICAgICAgIG9wdGlvbnMuTm9GcmFtZVBvaW50ZXJF
bGltID0gdHJ1ZTsKKyAgICAgICAgaWYgKE9wdGlvbnM6OnVzZUxMVk1TbWFsbENvZGVNb2RlbCgp
KQorICAgICAgICAgICAgb3B0aW9ucy5Db2RlTW9kZWwgPSBMTFZNQ29kZU1vZGVsU21hbGw7Cisg
ICAgICAgIG9wdGlvbnMuRW5hYmxlRmFzdElTZWwgPSBPcHRpb25zOjplbmFibGVMTFZNRmFzdElT
ZWwoKTsKKyAgICAgICAgb3B0aW9ucy5NQ0pNTSA9IGxsdm0tPkNyZWF0ZVNpbXBsZU1DSklUTWVt
b3J5TWFuYWdlcigKKyAgICAgICAgICAgICZzdGF0ZSwgbW1BbGxvY2F0ZUNvZGVTZWN0aW9uLCBt
bUFsbG9jYXRlRGF0YVNlY3Rpb24sIG1tQXBwbHlQZXJtaXNzaW9ucywgbW1EZXN0cm95KTsKKyAg
ICAKKyAgICAgICAgTExWTUV4ZWN1dGlvbkVuZ2luZVJlZiBlbmdpbmU7CisgICAgCisgICAgICAg
IGlmIChsbHZtLT5DcmVhdGVNQ0pJVENvbXBpbGVyRm9yTW9kdWxlKCZlbmdpbmUsIHN0YXRlLm1v
ZHVsZSwgJm9wdGlvbnMsIHNpemVvZihvcHRpb25zKSwgJmVycm9yKSkgeworICAgICAgICAgICAg
ZGF0YUxvZygiRkFUQUw6IENvdWxkIG5vdCBjcmVhdGUgTExWTSBleGVjdXRpb24gZW5naW5lOiAi
LCBlcnJvciwgIlxuIik7CisgICAgICAgICAgICBDUkFTSCgpOworICAgICAgICB9CisKKyAgICAg
ICAgTExWTVBhc3NNYW5hZ2VyUmVmIGZ1bmN0aW9uUGFzc2VzID0gMDsKKyAgICAgICAgTExWTVBh
c3NNYW5hZ2VyUmVmIG1vZHVsZVBhc3NlczsKKyAgICAKKyAgICAgICAgaWYgKE9wdGlvbnM6Omxs
dm1TaW1wbGVPcHQoKSkgeworICAgICAgICAgICAgbW9kdWxlUGFzc2VzID0gbGx2bS0+Q3JlYXRl
UGFzc01hbmFnZXIoKTsKKyAgICAgICAgICAgIGxsdm0tPkFkZFRhcmdldERhdGEobGx2bS0+R2V0
RXhlY3V0aW9uRW5naW5lVGFyZ2V0RGF0YShlbmdpbmUpLCBtb2R1bGVQYXNzZXMpOworICAgICAg
ICAgICAgbGx2bS0+QWRkUHJvbW90ZU1lbW9yeVRvUmVnaXN0ZXJQYXNzKG1vZHVsZVBhc3Nlcyk7
CisgICAgICAgICAgICBsbHZtLT5BZGRDb25zdGFudFByb3BhZ2F0aW9uUGFzcyhtb2R1bGVQYXNz
ZXMpOworICAgICAgICAgICAgbGx2bS0+QWRkSW5zdHJ1Y3Rpb25Db21iaW5pbmdQYXNzKG1vZHVs
ZVBhc3Nlcyk7CisgICAgICAgICAgICBsbHZtLT5BZGRCYXNpY0FsaWFzQW5hbHlzaXNQYXNzKG1v
ZHVsZVBhc3Nlcyk7CisgICAgICAgICAgICBsbHZtLT5BZGRUeXBlQmFzZWRBbGlhc0FuYWx5c2lz
UGFzcyhtb2R1bGVQYXNzZXMpOworICAgICAgICAgICAgbGx2bS0+QWRkR1ZOUGFzcyhtb2R1bGVQ
YXNzZXMpOworICAgICAgICAgICAgbGx2bS0+QWRkQ0ZHU2ltcGxpZmljYXRpb25QYXNzKG1vZHVs
ZVBhc3Nlcyk7CisgICAgICAgICAgICBsbHZtLT5SdW5QYXNzTWFuYWdlcihtb2R1bGVQYXNzZXMs
IHN0YXRlLm1vZHVsZSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBMTFZNUGFzc01h
bmFnZXJCdWlsZGVyUmVmIHBhc3NCdWlsZGVyID0gbGx2bS0+UGFzc01hbmFnZXJCdWlsZGVyQ3Jl
YXRlKCk7CisgICAgICAgICAgICBsbHZtLT5QYXNzTWFuYWdlckJ1aWxkZXJTZXRPcHRMZXZlbChw
YXNzQnVpbGRlciwgT3B0aW9uczo6bGx2bU9wdGltaXphdGlvbkxldmVsKCkpOworICAgICAgICAg
ICAgbGx2bS0+UGFzc01hbmFnZXJCdWlsZGVyU2V0U2l6ZUxldmVsKHBhc3NCdWlsZGVyLCBPcHRp
b25zOjpsbHZtU2l6ZUxldmVsKCkpOworICAgICAgICAKKyAgICAgICAgICAgIGZ1bmN0aW9uUGFz
c2VzID0gbGx2bS0+Q3JlYXRlRnVuY3Rpb25QYXNzTWFuYWdlckZvck1vZHVsZShzdGF0ZS5tb2R1
bGUpOworICAgICAgICAgICAgbW9kdWxlUGFzc2VzID0gbGx2bS0+Q3JlYXRlUGFzc01hbmFnZXIo
KTsKKyAgICAgICAgCisgICAgICAgICAgICBsbHZtLT5BZGRUYXJnZXREYXRhKGxsdm0tPkdldEV4
ZWN1dGlvbkVuZ2luZVRhcmdldERhdGEoZW5naW5lKSwgbW9kdWxlUGFzc2VzKTsKKyAgICAgICAg
CisgICAgICAgICAgICBsbHZtLT5QYXNzTWFuYWdlckJ1aWxkZXJQb3B1bGF0ZUZ1bmN0aW9uUGFz
c01hbmFnZXIocGFzc0J1aWxkZXIsIGZ1bmN0aW9uUGFzc2VzKTsKKyAgICAgICAgICAgIGxsdm0t
PlBhc3NNYW5hZ2VyQnVpbGRlclBvcHVsYXRlTW9kdWxlUGFzc01hbmFnZXIocGFzc0J1aWxkZXIs
IG1vZHVsZVBhc3Nlcyk7CisgICAgICAgIAorICAgICAgICAgICAgbGx2bS0+UGFzc01hbmFnZXJC
dWlsZGVyRGlzcG9zZShwYXNzQnVpbGRlcik7CisgICAgICAgIAorICAgICAgICAgICAgbGx2bS0+
SW5pdGlhbGl6ZUZ1bmN0aW9uUGFzc01hbmFnZXIoZnVuY3Rpb25QYXNzZXMpOworICAgICAgICAg
ICAgZm9yIChMVmFsdWUgZnVuY3Rpb24gPSBsbHZtLT5HZXRGaXJzdEZ1bmN0aW9uKHN0YXRlLm1v
ZHVsZSk7IGZ1bmN0aW9uOyBmdW5jdGlvbiA9IGxsdm0tPkdldE5leHRGdW5jdGlvbihmdW5jdGlv
bikpCisgICAgICAgICAgICAgICAgbGx2bS0+UnVuRnVuY3Rpb25QYXNzTWFuYWdlcihmdW5jdGlv
blBhc3NlcywgZnVuY3Rpb24pOworICAgICAgICAgICAgbGx2bS0+RmluYWxpemVGdW5jdGlvblBh
c3NNYW5hZ2VyKGZ1bmN0aW9uUGFzc2VzKTsKKyAgICAgICAgCisgICAgICAgICAgICBsbHZtLT5S
dW5QYXNzTWFuYWdlcihtb2R1bGVQYXNzZXMsIHN0YXRlLm1vZHVsZSk7CisgICAgICAgIH0KKwor
ICAgICAgICBpZiAoREZHOjpzaG91bGRTaG93RGlzYXNzZW1ibHkoKSB8fCBERkc6OnZlcmJvc2VD
b21waWxhdGlvbkVuYWJsZWQoKSkKKyAgICAgICAgICAgIHN0YXRlLmR1bXBTdGF0ZSgiYWZ0ZXIg
b3B0aW1pemF0aW9uIik7CisgICAgCisgICAgICAgIC8vIEZJWE1FOiBOZWVkIHRvIGFkZCBzdXBw
b3J0IGZvciB0aGUgY2FzZSB3aGVyZSBKSVQgbWVtb3J5IGFsbG9jYXRpb24gZmFpbGVkLgorICAg
ICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEzNjIwCisg
ICAgICAgIHN0YXRlLmdlbmVyYXRlZEZ1bmN0aW9uID0gcmVpbnRlcnByZXRfY2FzdDxHZW5lcmF0
ZWRGdW5jdGlvbj4obGx2bS0+R2V0UG9pbnRlclRvR2xvYmFsKGVuZ2luZSwgc3RhdGUuZnVuY3Rp
b24pKTsKKyAgICAgICAgaWYgKGZ1bmN0aW9uUGFzc2VzKQorICAgICAgICAgICAgbGx2bS0+RGlz
cG9zZVBhc3NNYW5hZ2VyKGZ1bmN0aW9uUGFzc2VzKTsKKyAgICAgICAgbGx2bS0+RGlzcG9zZVBh
c3NNYW5hZ2VyKG1vZHVsZVBhc3Nlcyk7CisgICAgICAgIGxsdm0tPkRpc3Bvc2VFeGVjdXRpb25F
bmdpbmUoZW5naW5lKTsKKyAgICB9CiAKICAgICBpZiAoc2hvdWxkU2hvd0Rpc2Fzc2VtYmx5KCkp
IHsKICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHN0YXRlLmppdENvZGUtPmhhbmRs
ZXMoKS5zaXplKCk7ICsraSkgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExM
aW5rLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExpbmsu
Y3BwCShyZXZpc2lvbiAxNjM3NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExp
bmsuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw3ICszMCw2IEBACiAKICNpbmNsdWRlICJBcml0
eUNoZWNrRmFpbFJldHVyblRodW5rcy5oIgogI2luY2x1ZGUgIkNDYWxsSGVscGVycy5oIgotI2lu
Y2x1ZGUgIkNhbGxGcmFtZUlubGluZXMuaCIKICNpbmNsdWRlICJDb2RlQmxvY2tXaXRoSklUVHlw
ZS5oIgogI2luY2x1ZGUgIkRGR0NvbW1vbi5oIgogI2luY2x1ZGUgIkZUTEpJVENvZGUuaCIKQEAg
LTM4LDYgKzM3LDcgQEAKICNpbmNsdWRlICJKSVRTdHVicy5oIgogI2luY2x1ZGUgIkxMVk1BUEku
aCIKICNpbmNsdWRlICJMaW5rQnVmZmVyLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2lu
Y2x1ZGUgIlByb2ZpbGVyQ29tcGlsYXRpb24uaCIKICNpbmNsdWRlICJWaXJ0dWFsUmVnaXN0ZXIu
aCIKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPU1JFeGl0Q29tcGlsZXIu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT1NSRXhpdENv
bXBpbGVyLmNwcAkocmV2aXNpb24gMTYzNzUyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0
bC9GVExPU1JFeGl0Q29tcGlsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw2ICszNCw3IEBA
CiAjaW5jbHVkZSAiRlRMSklUQ29kZS5oIgogI2luY2x1ZGUgIkZUTE9TUkV4aXQuaCIKICNpbmNs
dWRlICJGVExTYXZlUmVzdG9yZS5oIgorI2luY2x1ZGUgIkxpbmtCdWZmZXIuaCIKICNpbmNsdWRl
ICJNYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbC5oIgogI2luY2x1ZGUgIk9wZXJhbmRzSW5s
aW5lcy5oIgogI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9mdGwvRlRMU2xvd1BhdGhDYWxsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZnRsL0ZUTFNsb3dQYXRoQ2FsbC5jcHAJKHJldmlzaW9uIDE2Mzc1MikKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMU2xvd1BhdGhDYWxsLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMjksOSArMjksOSBAQAogI2lmIEVOQUJMRShGVExfSklUKQogCiAjaW5jbHVkZSAiQ0Nh
bGxIZWxwZXJzLmgiCi0jaW5jbHVkZSAiQ2FsbEZyYW1lSW5saW5lcy5oIgogI2luY2x1ZGUgIkZU
TFN0YXRlLmgiCiAjaW5jbHVkZSAiR1BSSW5mby5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIK
IAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBGVEwgewogCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZnRsL0ZUTFRodW5rcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Z0bC9GVExUaHVua3MuY3BwCShyZXZpc2lvbiAxNjM3NTIpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZnRsL0ZUTFRodW5rcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEyNyw3ICsx
MjcsNyBAQCBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgc2xvd1BhdGhDYWxsVGh1bmtHCiAgICAgaml0
LnByZXNlcnZlUmV0dXJuQWRkcmVzc0FmdGVyQ2FsbChHUFJJbmZvOjpub25BcmdHUFIwKTsKICAg
ICBqaXQuc3RvcmVQdHIoR1BSSW5mbzo6bm9uQXJnR1BSMCwgQXNzZW1ibHlIZWxwZXJzOjpBZGRy
ZXNzKE1hY3JvQXNzZW1ibGVyOjpzdGFja1BvaW50ZXJSZWdpc3Rlciwga2V5Lm9mZnNldCgpKSk7
CiAgICAgCi0gICAgSklUQ29tcGlsZXI6OkNhbGwgY2FsbCA9IGppdC5jYWxsKCk7CisgICAgQXNz
ZW1ibHlIZWxwZXJzOjpDYWxsIGNhbGwgPSBqaXQuY2FsbCgpOwogCiAgICAgLy8gRklYTUU6IENT
dGFjayAtIE5lZWQgdG8gZG8gc29tZXRoaW5nIGxpa2Ugaml0LmVtaXRGdW5jdGlvbkVwaWxvZ3Vl
KCk7CiAgICAgaml0LmxvYWRQdHIoQXNzZW1ibHlIZWxwZXJzOjpBZGRyZXNzKE1hY3JvQXNzZW1i
bGVyOjpzdGFja1BvaW50ZXJSZWdpc3Rlciwga2V5Lm9mZnNldCgpKSwgR1BSSW5mbzo6bm9uUHJl
c2VydmVkTm9uUmV0dXJuR1BSKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1Ns
b3RWaXNpdG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvU2xv
dFZpc2l0b3IuaAkocmV2aXNpb24gMTYzNzUyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hl
YXAvU2xvdFZpc2l0b3IuaAkod29ya2luZyBjb3B5KQpAQCAtNjgsNiArNjgsOSBAQCBwdWJsaWM6
CiAgICAgdm9pZCBhcHBlbmRVbmJhcnJpZXJlZFZhbHVlKEpTVmFsdWUqKTsKICAgICB0ZW1wbGF0
ZTx0eXBlbmFtZSBUPgogICAgIHZvaWQgYXBwZW5kVW5iYXJyaWVyZWRXZWFrKFdlYWs8VD4qKTsK
KyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorICAgIHZvaWQgYXBwZW5kVW5iYXJyaWVyZWRSZWFk
T25seVBvaW50ZXIoVCopOworICAgIHZvaWQgYXBwZW5kVW5iYXJyaWVyZWRSZWFkT25seVZhbHVl
KEpTVmFsdWUpOwogICAgIHZvaWQgdW5jb25kaXRpb25hbGx5QXBwZW5kKEpTQ2VsbCopOwogICAg
IAogICAgIHZvaWQgYWRkT3BhcXVlUm9vdCh2b2lkKik7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvaGVhcC9TbG90VmlzaXRvcklubGluZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaGVhcC9TbG90VmlzaXRvcklubGluZXMuaAkocmV2aXNpb24gMTYzNzUyKQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvU2xvdFZpc2l0b3JJbmxpbmVzLmgJKHdvcmtp
bmcgY29weSkKQEAgLTUxLDYgKzUxLDEyIEBAIGlubGluZSB2b2lkIFNsb3RWaXNpdG9yOjphcHBl
bmRVbmJhcnJpZXIKICAgICBpbnRlcm5hbEFwcGVuZChzbG90LCBjZWxsKTsKIH0KIAordGVtcGxh
dGU8dHlwZW5hbWUgVD4KK2lubGluZSB2b2lkIFNsb3RWaXNpdG9yOjphcHBlbmRVbmJhcnJpZXJl
ZFJlYWRPbmx5UG9pbnRlcihUKiBjZWxsKQoreworICAgIGludGVybmFsQXBwZW5kKDAsIGNlbGwp
OworfQorCiBBTFdBWVNfSU5MSU5FIHZvaWQgU2xvdFZpc2l0b3I6OmFwcGVuZChKU1ZhbHVlKiBz
bG90KQogewogICAgIEFTU0VSVChzbG90KTsKQEAgLTYzLDYgKzY5LDExIEBAIEFMV0FZU19JTkxJ
TkUgdm9pZCBTbG90VmlzaXRvcjo6YXBwZW5kVW4KICAgICBpbnRlcm5hbEFwcGVuZChzbG90LCAq
c2xvdCk7CiB9CiAKK0FMV0FZU19JTkxJTkUgdm9pZCBTbG90VmlzaXRvcjo6YXBwZW5kVW5iYXJy
aWVyZWRSZWFkT25seVZhbHVlKEpTVmFsdWUgdmFsdWUpCit7CisgICAgaW50ZXJuYWxBcHBlbmQo
MCwgdmFsdWUpOworfQorCiBBTFdBWVNfSU5MSU5FIHZvaWQgU2xvdFZpc2l0b3I6OmFwcGVuZChK
U0NlbGwqKiBzbG90KQogewogICAgIEFTU0VSVChzbG90KTsKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnNwZWN0b3IvU2NyaXB0Q2FsbFN0YWNrRmFjdG9yeS5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9TY3JpcHRDYWxsU3RhY2tGYWN0b3J5
LmNwcAkocmV2aXNpb24gMTYzNzUyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rv
ci9TY3JpcHRDYWxsU3RhY2tGYWN0b3J5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzUsOSArMzUs
OSBAQAogCiAjaW5jbHVkZSAiQXJnTGlzdC5oIgogI2luY2x1ZGUgIkNhbGxGcmFtZS5oIgotI2lu
Y2x1ZGUgIkNhbGxGcmFtZUlubGluZXMuaCIKICNpbmNsdWRlICJKU0NKU1ZhbHVlLmgiCiAjaW5j
bHVkZSAiSlNGdW5jdGlvbi5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJT
Y3JpcHRBcmd1bWVudHMuaCIKICNpbmNsdWRlICJTY3JpcHRDYWxsRnJhbWUuaCIKICNpbmNsdWRl
ICJTY3JpcHRDYWxsU3RhY2suaCIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnBy
ZXRlci9Qcm90b0NhbGxGcmFtZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2ludGVycHJldGVyL1Byb3RvQ2FsbEZyYW1lLmNwcAkocmV2aXNpb24gMTYzNzUyKQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL1Byb3RvQ2FsbEZyYW1lLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIlByb3RvQ2FsbEZyYW1lLmgi
CiAKICNpbmNsdWRlICJDb2RlQmxvY2suaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5j
bHVkZSAiU3RhY2tBbGlnbm1lbnQuaCIKIAogbmFtZXNwYWNlIEpTQyB7CkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVEV4Y2VwdGlvbnMuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklURXhjZXB0aW9ucy5jcHAJKHJldmlzaW9uIDE2Mzc1MikK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklURXhjZXB0aW9ucy5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTI3LDcgKzI3LDYgQEAKICNpbmNsdWRlICJKSVRFeGNlcHRpb25zLmgiCiAKICNp
bmNsdWRlICJDYWxsRnJhbWUuaCIKLSNpbmNsdWRlICJDYWxsRnJhbWVJbmxpbmVzLmgiCiAjaW5j
bHVkZSAiQ29kZUJsb2NrLmgiCiAjaW5jbHVkZSAiSW50ZXJwcmV0ZXIuaCIKICNpbmNsdWRlICJK
SVRTdHVicy5oIgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVzLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVzLmgJKHJl
dmlzaW9uIDE2Mzc1MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lcy5o
CSh3b3JraW5nIGNvcHkpCkBAIC0yOSw3ICsyOSw3IEBACiAKICNpZiBFTkFCTEUoSklUKQogCi0j
aW5jbHVkZSAiQ2FsbEZyYW1lSW5saW5lcy5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAog
bmFtZXNwYWNlIEpTQyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bl
cmF0aW9ucy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRP
cGVyYXRpb25zLmNwcAkocmV2aXNpb24gMTYzNzUyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRPcGVyYXRpb25zLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjksNyArMjksNiBAQAog
CiAjaW5jbHVkZSAiQXJndW1lbnRzLmgiCiAjaW5jbHVkZSAiQXJyYXlDb25zdHJ1Y3Rvci5oIgot
I2luY2x1ZGUgIkNhbGxGcmFtZUlubGluZXMuaCIKICNpbmNsdWRlICJERkdDb21waWxhdGlvbk1v
ZGUuaCIKICNpbmNsdWRlICJERkdEcml2ZXIuaCIKICNpbmNsdWRlICJERkdPU1JFbnRyeS5oIgpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZXBhdGNoLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlcGF0Y2guY3BwCShyZXZpc2lvbiAxNjM3NTIp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlcGF0Y2guY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0yOSw3ICsyOSw2IEBACiAjaWYgRU5BQkxFKEpJVCkKIAogI2luY2x1ZGUgIkNDYWxsSGVs
cGVycy5oIgotI2luY2x1ZGUgIkNhbGxGcmFtZUlubGluZXMuaCIKICNpbmNsdWRlICJERkdPcGVy
YXRpb25zLmgiCiAjaW5jbHVkZSAiREZHU3BlY3VsYXRpdmVKSVQuaCIKICNpbmNsdWRlICJGVExU
aHVua3MuaCIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlR2Vu
ZXJhdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIv
UHJvZmlsZUdlbmVyYXRvci5jcHAJKHJldmlzaW9uIDE2Mzc1MikKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9wcm9maWxlci9Qcm9maWxlR2VuZXJhdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MjcsNyArMjcsNiBAQAogI2luY2x1ZGUgIlByb2ZpbGVHZW5lcmF0b3IuaCIKIAogI2luY2x1ZGUg
IkNhbGxGcmFtZS5oIgotI2luY2x1ZGUgIkNhbGxGcmFtZUlubGluZXMuaCIKICNpbmNsdWRlICJD
b2RlQmxvY2suaCIKICNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgogI2luY2x1ZGUgIkpTU3Ry
aW5nUmVmLmgiCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHMu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ3VtZW50
cy5jcHAJKHJldmlzaW9uIDE2Mzc1MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0FyZ3VtZW50cy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI1LDcgKzI1LDYgQEAKICNpbmNsdWRl
ICJjb25maWcuaCIKICNpbmNsdWRlICJBcmd1bWVudHMuaCIKIAotI2luY2x1ZGUgIkNhbGxGcmFt
ZUlubGluZXMuaCIKICNpbmNsdWRlICJKU0FjdGl2YXRpb24uaCIKICNpbmNsdWRlICJKU0FyZ3Vt
ZW50c0l0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiSlNGdW5jdGlvbi5oIgpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJndW1lbnRzSXRlcmF0b3JQcm90b3R5cGUuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ3VtZW50c0l0ZXJhdG9y
UHJvdG90eXBlLmNwcAkocmV2aXNpb24gMTYzNzUyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvQXJndW1lbnRzSXRlcmF0b3JQcm90b3R5cGUuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiQXJndW1lbnRzSXRlcmF0b3JQcm90b3R5cGUuaCIK
IAogI2luY2x1ZGUgIkpTQXJndW1lbnRzSXRlcmF0b3IuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25z
LmgiCiAKIG5hbWVzcGFjZSBKU0MgewogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9Db21tb25TbG93UGF0aHNFeGNlcHRpb25zLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25TbG93UGF0aHNFeGNlcHRpb25zLmNwcAkocmV2
aXNpb24gMTYzNzUyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xv
d1BhdGhzRXhjZXB0aW9ucy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMwLDYgKzMwLDcgQEAKICNp
bmNsdWRlICJDb2RlQmxvY2suaCIKICNpbmNsdWRlICJKSVRFeGNlcHRpb25zLmgiCiAjaW5jbHVk
ZSAiTExJbnRDb21tb24uaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAKIG5hbWVzcGFjZSBK
U0MgeyBuYW1lc3BhY2UgQ29tbW9uU2xvd1BhdGhzIHsKIApJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNBcmd1bWVudHNJdGVyYXRvci5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcmd1bWVudHNJdGVyYXRvci5jcHAJKHJldmlz
aW9uIDE2Mzc1MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJndW1lbnRz
SXRlcmF0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAi
SlNBcmd1bWVudHNJdGVyYXRvci5oIgogCiAjaW5jbHVkZSAiQXJndW1lbnRzLmgiCisjaW5jbHVk
ZSAiT3BlcmF0aW9ucy5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIApJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAJKHJldmlzaW9uIDE2Mzc1MikKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0yOSw3ICsyOSw2IEBACiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgiCiAjaW5jbHVkZSAi
Q29tbW9uSWRlbnRpZmllcnMuaCIKICNpbmNsdWRlICJDYWxsRnJhbWUuaCIKLSNpbmNsdWRlICJD
YWxsRnJhbWVJbmxpbmVzLmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uSGVscGVycy5oIgogI2luY2x1
ZGUgIkZ1bmN0aW9uUHJvdG90eXBlLmgiCiAjaW5jbHVkZSAiR2V0dGVyU2V0dGVyLmgiCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxP
YmplY3RGdW5jdGlvbnMuY3BwCShyZXZpc2lvbiAxNjM3NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTI2LDcgKzI2LDYgQEAKICNpbmNsdWRlICJKU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5oIgog
CiAjaW5jbHVkZSAiQ2FsbEZyYW1lLmgiCi0jaW5jbHVkZSAiQ2FsbEZyYW1lSW5saW5lcy5oIgog
I2luY2x1ZGUgIkludGVycHJldGVyLmgiCiAjaW5jbHVkZSAiSlNGdW5jdGlvbi5oIgogI2luY2x1
ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9PYmplY3RDb25zdHJ1Y3Rvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuY3BwCShyZXZpc2lvbiAxNjM3NTIpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTIyLDcgKzIyLDYgQEAKICNpbmNsdWRlICJPYmplY3RDb25zdHJ1Y3Rvci5o
IgogCiAjaW5jbHVkZSAiQnV0dGVyZmx5SW5saW5lcy5oIgotI2luY2x1ZGUgIkNhbGxGcmFtZUlu
bGluZXMuaCIKICNpbmNsdWRlICJDb3BpZWRTcGFjZUlubGluZXMuaCIKICNpbmNsdWRlICJFcnJv
ci5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkhlbHBlcnMuaCIKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL09wZXJhdGlvbnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9PcGVyYXRpb25zLmgJKHJldmlzaW9uIDE2Mzc1MikKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wZXJhdGlvbnMuaAkod29ya2luZyBjb3B5KQpAQCAt
MSw2ICsxLDYgQEAKIC8qCiAgKiAgQ29weXJpZ2h0IChDKSAxOTk5LTIwMDAgSGFycmkgUG9ydGVu
IChwb3J0ZW5Aa2RlLm9yZykKLSAqICBDb3B5cmlnaHQgKEMpIDIwMDIsIDIwMDUsIDIwMDYsIDIw
MDcsIDIwMDgsIDIwMDksIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
IENvcHlyaWdodCAoQykgMjAwMiwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSwgMjAxMywg
MjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogIFRoaXMgbGlicmFy
eSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqICBt
b2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YwpAQCAtMjIsNiArMjIsNyBAQAogI2lmbmRlZiBPcGVyYXRpb25zX2gKICNkZWZpbmUgT3BlcmF0
aW9uc19oCiAKKyNpbmNsdWRlICJDYWxsRnJhbWVJbmxpbmVzLmgiCiAjaW5jbHVkZSAiRXhjZXB0
aW9uSGVscGVycy5oIgogI2luY2x1ZGUgIkdDSW5jb21pbmdSZWZDb3VudGVkSW5saW5lcy5oIgog
I2luY2x1ZGUgIkludGVycHJldGVyLmgiCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9WTS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
Vk0uY3BwCShyZXZpc2lvbiAxNjM3NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9WTS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMyLDcgKzMyLDYgQEAKICNpbmNsdWRlICJBcmdM
aXN0LmgiCiAjaW5jbHVkZSAiQXJpdHlDaGVja0ZhaWxSZXR1cm5UaHVua3MuaCIKICNpbmNsdWRl
ICJBcnJheUJ1ZmZlck5ldXRlcmluZ1dhdGNocG9pbnQuaCIKLSNpbmNsdWRlICJDYWxsRnJhbWVJ
bmxpbmVzLmgiCiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgiCiAjaW5jbHVkZSAiQ29kZUNhY2hlLmgi
CiAjaW5jbHVkZSAiQ29tbW9uSWRlbnRpZmllcnMuaCIK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>223646</attachid>
            <date>2014-02-09 13:13:14 -0800</date>
            <delta_ts>2014-02-09 18:58:37 -0800</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>82440</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTYzNzUyKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEwNCBA
QAorMjAxNC0wMi0wOSAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgorCisgICAgICAg
IEdDIGJsb2NrcyBvbiBGVEwgYW5kIHRoZW4gYmFkbmVzcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI4MjkxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisgICAgICAgIAorICAgICAgICBJbnRyb2R1Y2UgdGhlIG5vdGlvbiBv
ZiBhIERGRzo6U2FmZXBvaW50LCB3aGljaCBhbGxvd3MgeW91IHRvIHVubG9jayB0aGUgcmlnaHRU
b1J1bgorICAgICAgICBtdXRleCBmb3IgeW91ciBKSVQgdGhyZWFkLCB3aGlsZSBzdXBwbHlpbmcg
dGhlIEdDIHdpdGggYWxsIG9mIHRoZSBpbmZvcm1hdGlvbiBpdCB3b3VsZAorICAgICAgICBuZWVk
IHRvIHNjYW4geW91IGF0IHRoYXQgbW9tZW50IGluIHRpbWUuIFRoZSBkZWZhdWx0IHdheSBvZiB1
c2luZyB0aGlzIGlzCisgICAgICAgIERGRzo6R3JhcGhTYWZlcG9pbnQsIHdoZXJlIHlvdSBqdXN0
IHN1cHBseSB0aGUgR3JhcGguIFRoZXJlJ3MgYSBsb3Qgb2YgbWFjaGluZXJ5IGluCisgICAgICAg
IHRoaXMgcGF0Y2gganVzdCB0byBtYWtlIHRoZSBHcmFwaCBzY2FubmFibGUuCisgICAgICAgIAor
ICAgICAgICBXZSB0aGVuIHVzZSBERkc6OkdyYXBoU2FmZXBvaW50IGluIGp1c3QgdHdvIHBsYWNl
cyBmb3Igbm93OiAoMSkgd2hpbGUgaW5pdGlhbGl6aW5nIExMVk0KKyAgICAgICAgYW5kICgyKSB3
aGlsZSBpbnZva2luZyBMTFZNJyBvcHRpbWl6ZXIgYW5kIGJhY2tlbmQuCisgICAgICAgIAorICAg
ICAgICBNYWtpbmcgdGhpcyBjaGFuZ2Ugd2FzIGRpZmZpY3VsdCBiZWNhdXNlIEkgcmFuIGludG8g
dGhlIGxpbWl0cyBvZiBvdXIgbGFjayBvZiBoZWFkZXIKKyAgICAgICAgZmlsZSBkaXNjaXBsaW5l
LiBFdmVuIHRob3VnaCBPcGVyYXRpb25zLmggaXMgbWVhbnQgdG8gYmUgdGhlIHRoaW5nIHRoYXQg
aXMgb25seQorICAgICAgICBpbmNsdWRlZCBmcm9tIC5jcHAgZmlsZXMsIGl0IHdhcyBpbmNsdWRl
ZCBmcm9tIENvZGVCbG9jay5oLiBTaW1pbGFybHksCisgICAgICAgIENhbGxGcmFtZUlubGluZXMu
aCB3YXMgaW5jbHVkZWQgZnJvbSBERkdKSVRDb21waWxlci5oLiBUaGVuLCBDYWxsTGlua0luZm8u
aCBpbmNsdWRlZAorICAgICAgICBERkdHcmFwaC5oLiBJdCB3YXMgYSB0b3RhbCBtZXNzLiBJIHVu
cmF2ZWxlZCB0aGlzIG1lc3MgdG8gZ2V0IG15IGNvZGUgdG8gYnVpbGQuCisKKyAgICAgICAgKiBB
UEkvSlNDb250ZXh0UmVmLmNwcDoKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAg
KiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnZjeHByb2ov
SmF2YVNjcmlwdENvcmUudmN4cHJvajoKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGFzc2VtYmxlci9MaW5rQnVmZmVyLmNwcDoK
KyAgICAgICAgKiBieXRlY29kZS9Db2RlQmxvY2suY3BwOgorICAgICAgICAqIGJ5dGVjb2RlL0Nv
ZGVCbG9jay5oOgorICAgICAgICAqIGJ5dGVjb2RlL1Byb2ZpbGVkQ29kZUJsb2NrSmV0dGlzb25p
bmdXYXRjaHBvaW50LmNwcDoKKyAgICAgICAgKiBkZWJ1Z2dlci9EZWJ1Z2dlckNhbGxGcmFtZS5j
cHA6CisgICAgICAgICogZGZnL0RGR0Rlc2lyZWRUcmFuc2l0aW9ucy5jcHA6CisgICAgICAgICog
ZGZnL0RGR0RyaXZlci5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Y29tcGlsZUltcGwpOgorICAg
ICAgICAqIGRmZy9ERkdHcmFwaC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6R3JhcGg6OnZpc2l0
Q2hpbGRyZW4pOgorICAgICAgICAqIGRmZy9ERkdHcmFwaC5oOgorICAgICAgICAqIGRmZy9ERkdH
cmFwaFNhZmVwb2ludC5jcHA6IEFkZGVkLgorICAgICAgICAoSlNDOjpERkc6OkdyYXBoU2FmZXBv
aW50OjpHcmFwaFNhZmVwb2ludCk6CisgICAgICAgIChKU0M6OkRGRzo6R3JhcGhTYWZlcG9pbnQ6
On5HcmFwaFNhZmVwb2ludCk6CisgICAgICAgICogZGZnL0RGR0dyYXBoU2FmZXBvaW50Lmg6IEFk
ZGVkLgorICAgICAgICAqIGRmZy9ERkdKSVRDb2RlLmNwcDoKKyAgICAgICAgKiBkZmcvREZHSklU
Q29tcGlsZXIuY3BwOgorICAgICAgICAqIGRmZy9ERkdKSVRDb21waWxlci5oOgorICAgICAgICAq
IGRmZy9ERkdPU1JFeGl0Q29tcGlsZXJDb21tb24uY3BwOgorICAgICAgICAqIGRmZy9ERkdPcGVy
YXRpb25zLmNwcDoKKyAgICAgICAgKiBkZmcvREZHT3BlcmF0aW9ucy5oOgorICAgICAgICAqIGRm
Zy9ERkdQbGFuLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpQbGFuOjpjb21waWxlSW5UaHJlYWQp
OgorICAgICAgICAoSlNDOjpERkc6OlBsYW46OmNvbXBpbGVJblRocmVhZEltcGwpOgorICAgICAg
ICAqIGRmZy9ERkdQbGFuLmg6CisgICAgICAgICogZGZnL0RGR1NhZmVwb2ludC5jcHA6IEFkZGVk
LgorICAgICAgICAoSlNDOjpERkc6OlNhZmVwb2ludDo6U2FmZXBvaW50KToKKyAgICAgICAgKEpT
Qzo6REZHOjpTYWZlcG9pbnQ6On5TYWZlcG9pbnQpOgorICAgICAgICAoSlNDOjpERkc6OlNhZmVw
b2ludDo6YWRkKToKKyAgICAgICAgKEpTQzo6REZHOjpTYWZlcG9pbnQ6OmJlZ2luKToKKyAgICAg
ICAgKEpTQzo6REZHOjpTYWZlcG9pbnQ6OnZpc2l0Q2hpbGRyZW4pOgorICAgICAgICAqIGRmZy9E
RkdTYWZlcG9pbnQuaDogQWRkZWQuCisgICAgICAgICogZGZnL0RGR1NjYW5uYWJsZS5oOiBBZGRl
ZC4KKyAgICAgICAgKEpTQzo6REZHOjpTY2FubmFibGU6OlNjYW5uYWJsZSk6CisgICAgICAgIChK
U0M6OkRGRzo6U2Nhbm5hYmxlOjp+U2Nhbm5hYmxlKToKKyAgICAgICAgKiBkZmcvREZHVGhyZWFk
RGF0YS5jcHA6IEFkZGVkLgorICAgICAgICAoSlNDOjpERkc6OlRocmVhZERhdGE6OlRocmVhZERh
dGEpOgorICAgICAgICAoSlNDOjpERkc6OlRocmVhZERhdGE6On5UaHJlYWREYXRhKToKKyAgICAg
ICAgKiBkZmcvREZHVGhyZWFkRGF0YS5oOiBBZGRlZC4KKyAgICAgICAgKiBkZmcvREZHVGh1bmtz
LmNwcDoKKyAgICAgICAgKiBkZmcvREZHV29ya2xpc3QuY3BwOgorICAgICAgICAoSlNDOjpERkc6
OldvcmtsaXN0OjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgIChKU0M6OkRGRzo6V29ya2xpc3Q6
OnZpc2l0Q2hpbGRyZW4pOgorICAgICAgICAoSlNDOjpERkc6OldvcmtsaXN0OjpydW5UaHJlYWQp
OgorICAgICAgICAqIGRmZy9ERkdXb3JrbGlzdC5oOgorICAgICAgICAqIGZ0bC9GVExDb21waWxl
LmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpjb21waWxlKToKKyAgICAgICAgKiBmdGwvRlRMTGlu
ay5jcHA6CisgICAgICAgICogZnRsL0ZUTE9TUkV4aXRDb21waWxlci5jcHA6CisgICAgICAgICog
ZnRsL0ZUTFNsb3dQYXRoQ2FsbC5jcHA6CisgICAgICAgICogZnRsL0ZUTFRodW5rcy5jcHA6Cisg
ICAgICAgIChKU0M6OkZUTDo6c2xvd1BhdGhDYWxsVGh1bmtHZW5lcmF0b3IpOgorICAgICAgICAq
IGhlYXAvU2xvdFZpc2l0b3IuaDoKKyAgICAgICAgKiBoZWFwL1Nsb3RWaXNpdG9ySW5saW5lcy5o
OgorICAgICAgICAoSlNDOjpTbG90VmlzaXRvcjo6YXBwZW5kVW5iYXJyaWVyZWRSZWFkT25seVBv
aW50ZXIpOgorICAgICAgICAoSlNDOjpTbG90VmlzaXRvcjo6YXBwZW5kVW5iYXJyaWVyZWRSZWFk
T25seVZhbHVlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvU2NyaXB0Q2FsbFN0YWNrRmFjdG9yeS5j
cHA6CisgICAgICAgICogaW50ZXJwcmV0ZXIvUHJvdG9DYWxsRnJhbWUuY3BwOgorICAgICAgICAq
IGppdC9KSVRFeGNlcHRpb25zLmNwcDoKKyAgICAgICAgKiBqaXQvSklUSW5saW5lcy5oOgorICAg
ICAgICAqIGppdC9KSVRPcGVyYXRpb25zLmNwcDoKKyAgICAgICAgKiBqaXQvUmVwYXRjaC5jcHA6
CisgICAgICAgICoganNjLmNwcDoKKyAgICAgICAgKiBwcm9maWxlci9Qcm9maWxlR2VuZXJhdG9y
LmNwcDoKKyAgICAgICAgKiBydW50aW1lL0FyZ3VtZW50cy5jcHA6CisgICAgICAgICogcnVudGlt
ZS9Bcmd1bWVudHNJdGVyYXRvclByb3RvdHlwZS5jcHA6CisgICAgICAgICogcnVudGltZS9Db21t
b25TbG93UGF0aHNFeGNlcHRpb25zLmNwcDoKKyAgICAgICAgKiBydW50aW1lL0pTQXJndW1lbnRz
SXRlcmF0b3IuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvSlNGdW5jdGlvbi5jcHA6CisgICAgICAg
ICogcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5jcHA6CisgICAgICAgICogcnVudGlt
ZS9PYmplY3RDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgICogcnVudGltZS9PcGVyYXRpb25zLmg6
CisgICAgICAgICogcnVudGltZS9WTS5jcHA6CisKIDIwMTQtMDItMDkgIEFuZGVycyBDYXJsc3Nv
biAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAgICAgICBDb252ZXJ0IHNvbWUgSlNDIGNvZGUg
b3ZlciB0byBzdGQ6Om11dGV4CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0
cy50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0
CShyZXZpc2lvbiAxNjM3NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50
eHQJKHdvcmtpbmcgY29weSkKQEAgLTEzOCw2ICsxMzgsNyBAQCBzZXQoSmF2YVNjcmlwdENvcmVf
U09VUkNFUwogICAgIGRmZy9ERkdGbHVzaExpdmVuZXNzQW5hbHlzaXNQaGFzZS5jcHAKICAgICBk
ZmcvREZHRmx1c2hlZEF0LmNwcAogICAgIGRmZy9ERkdHcmFwaC5jcHAKKyAgICBkZmcvREZHR3Jh
cGhTYWZlcG9pbnQuY3BwCiAgICAgZGZnL0RGR0luUGxhY2VBYnN0cmFjdFN0YXRlLmNwcAogICAg
IGRmZy9ERkdJbnZhbGlkYXRpb25Qb2ludEluamVjdGlvblBoYXNlLmNwcAogICAgIGRmZy9ERkdK
SVRDb2RlLmNwcApAQCAtMTcyLDEyICsxNzMsMTQgQEAgc2V0KEphdmFTY3JpcHRDb3JlX1NPVVJD
RVMKICAgICBkZmcvREZHUmVzdXJyZWN0aW9uRm9yVmFsaWRhdGlvblBoYXNlLmNwcAogICAgIGRm
Zy9ERkdTU0FDb252ZXJzaW9uUGhhc2UuY3BwCiAgICAgZGZnL0RGR1NTQUxvd2VyaW5nUGhhc2Uu
Y3BwCisgICAgZGZnL0RGR1NhZmVwb2ludC5jcHAKICAgICBkZmcvREZHU3BlY3VsYXRpdmVKSVQu
Y3BwCiAgICAgZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCiAgICAgZGZnL0RGR1NwZWN1
bGF0aXZlSklUNjQuY3BwCiAgICAgZGZnL0RGR1N0YWNrTGF5b3V0UGhhc2UuY3BwCiAgICAgZGZn
L0RGR1N0b3JlQmFycmllckVsaXNpb25QaGFzZS5jcHAKICAgICBkZmcvREZHU3RyZW5ndGhSZWR1
Y3Rpb25QaGFzZS5jcHAKKyAgICBkZmcvREZHVGhyZWFkRGF0YS5jcHAKICAgICBkZmcvREZHVGh1
bmtzLmNwcAogICAgIGRmZy9ERkdUaWVyVXBDaGVja0luamVjdGlvblBoYXNlLmNwcAogICAgIGRm
Zy9ERkdUeXBlQ2hlY2tIb2lzdGluZ1BoYXNlLmNwcApJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0JKHJldmlzaW9uIDE2Mzc1MikKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCSh3b3JraW5nIGNvcHkpCkBAIC0zMDQsNiAr
MzA0LDggQEAgamF2YXNjcmlwdGNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdHZW5lcmF0aW9uSW5mby5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0dyYXBoLmNwcCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5oIFwK
KwlTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoU2FmZXBvaW50LmNwcCBcCisJU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaFNhZmVwb2ludC5oIFwKIAlTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0luUGxhY2VBYnN0cmFjdFN0YXRlLmNwcCBcCiAJU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdJblBsYWNlQWJzdHJhY3RTdGF0ZS5oIFwKIAlTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0lubGluZUNhY2hlV3JhcHBlci5oIFwKQEAgLTM3Nyw3ICszNzks
MTAgQEAgamF2YXNjcmlwdGNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdSZXN1cnJlY3Rpb25Gb3JWYWxpZGF0aW9uUGhhc2UuY3BwIFwKIAlTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1Jlc3VycmVjdGlvbkZvclZhbGlkYXRpb25QaGFzZS5oIFwKIAlT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaCBcCisJU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdTYWZlcG9pbnQuY3BwIFwKKwlTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1NhZmVwb2ludC5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nh
bmVTdHJpbmdHZXRCeVZhbFNsb3dQYXRoR2VuZXJhdG9yLmggXAorCVNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHU2Nhbm5hYmxlLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
U2NvcmVCb2FyZC5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NpbGVudFJlZ2lz
dGVyU2F2ZVBsYW4uaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTbG93UGF0aEdl
bmVyYXRvci5oIFwKQEAgLTM5OCw2ICs0MDMsOCBAQCBqYXZhc2NyaXB0Y29yZV9zb3VyY2VzICs9
IFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1N0cnVjdHVyZUFic3RyYWN0VmFsdWUu
aCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdUaWVyVXBDaGVja0luamVjdGlvblBo
YXNlLmNwcCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdUaWVyVXBDaGVja0luamVj
dGlvblBoYXNlLmggXAorCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVGhyZWFkRGF0YS5j
cHAgXAorCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVGhyZWFkRGF0YS5oIFwKIAlTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1RodW5rcy5jcHAgXAogCVNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHVGh1bmtzLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVG9G
VExEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2suY3BwIFwKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qc2MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2Mu
Y3BwCShyZXZpc2lvbiAxNjM3NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMjUsNyArMjUsNiBAQAogI2luY2x1ZGUgIkFQSVNoaW1zLmgiCiAj
aW5jbHVkZSAiQnV0dGVyZmx5SW5saW5lcy5oIgogI2luY2x1ZGUgIkJ5dGVjb2RlR2VuZXJhdG9y
LmgiCi0jaW5jbHVkZSAiQ2FsbEZyYW1lSW5saW5lcy5oIgogI2luY2x1ZGUgIkNvbXBsZXRpb24u
aCIKICNpbmNsdWRlICJDb3BpZWRTcGFjZUlubGluZXMuaCIKICNpbmNsdWRlICJFeGNlcHRpb25I
ZWxwZXJzLmgiCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ29udGV4dFJlZi5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NvbnRleHRSZWYu
Y3BwCShyZXZpc2lvbiAxNjM3NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ29u
dGV4dFJlZi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5LDcgKzI5LDYgQEAKIAogI2luY2x1ZGUg
IkFQSUNhc3QuaCIKICNpbmNsdWRlICJDYWxsRnJhbWUuaCIKLSNpbmNsdWRlICJDYWxsRnJhbWVJ
bmxpbmVzLmgiCiAjaW5jbHVkZSAiSW5pdGlhbGl6ZVRocmVhZGluZy5oIgogI2luY2x1ZGUgIkpT
Q2FsbGJhY2tPYmplY3QuaCIKICNpbmNsdWRlICJKU0NsYXNzUmVmLmgiCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hw
cm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52
Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2oJKHJldmlzaW9uIDE2Mzc1MikKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZj
eHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTM5Miw2ICszOTIsNyBAQAogICAgIDxDbENvbXBpbGUg
SW5jbHVkZT0iLi5cZGZnXERGR0ZsdXNoRm9ybWF0LmNwcCIgLz4KICAgICA8Q2xDb21waWxlIElu
Y2x1ZGU9Ii4uXGRmZ1xERkdGbHVzaExpdmVuZXNzQW5hbHlzaXNQaGFzZS5jcHAiIC8+CiAgICAg
PENsQ29tcGlsZSBJbmNsdWRlPSIuLlxkZmdcREZHR3JhcGguY3BwIiAvPgorICAgIDxDbENvbXBp
bGUgSW5jbHVkZT0iLi5cZGZnXERGR0dyYXBoU2FmZXBvaW50LmNwcCIgLz4KICAgICA8Q2xDb21w
aWxlIEluY2x1ZGU9Ii4uXGRmZ1xERkdJblBsYWNlQWJzdHJhY3RTdGF0ZS5jcHAiIC8+CiAgICAg
PENsQ29tcGlsZSBJbmNsdWRlPSIuLlxkZmdcREZHSW52YWxpZGF0aW9uUG9pbnRJbmplY3Rpb25Q
aGFzZS5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxkZmdcREZHSklUQ29kZS5j
cHAiIC8+CkBAIC00MjQsNiArNDI1LDcgQEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGRm
Z1xERkdQcmVkaWN0aW9uSW5qZWN0aW9uUGhhc2UuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5j
bHVkZT0iLi5cZGZnXERGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcCIgLz4KICAgICA8
Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGRmZ1xERkdSZXN1cnJlY3Rpb25Gb3JWYWxpZGF0aW9uUGhh
c2UuY3BwIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZGZnXERGR1NhZmVwb2ludC5j
cHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxkZmdcREZHU3BlY3VsYXRpdmVKSVQu
Y3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZGZnXERGR1NwZWN1bGF0aXZlSklU
MzJfNjQuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZGZnXERGR1NwZWN1bGF0
aXZlSklUNjQuY3BwIiAvPgpAQCAtNDMyLDYgKzQzNCw3IEBACiAgICAgPENsQ29tcGlsZSBJbmNs
dWRlPSIuLlxkZmdcREZHU3RhY2tMYXlvdXRQaGFzZS5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJ
bmNsdWRlPSIuLlxkZmdcREZHU3RvcmVCYXJyaWVyRWxpc2lvblBoYXNlLmNwcCIgLz4KICAgICA8
Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGRmZ1xERkdTdHJlbmd0aFJlZHVjdGlvblBoYXNlLmNwcCIg
Lz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGRmZ1xERkdUaHJlYWREYXRhLmNwcCIgLz4K
ICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGRmZ1xERkdUaHVua3MuY3BwIiAvPgogICAgIDxD
bENvbXBpbGUgSW5jbHVkZT0iLi5cZGZnXERGR1RpZXJVcENoZWNrSW5qZWN0aW9uUGhhc2UuY3Bw
IiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZGZnXERGR1RvRlRMRGVmZXJyZWRDb21w
aWxhdGlvbkNhbGxiYWNrLmNwcCIgLz4KQEAgLTkyOSw2ICs5MzIsNyBAQAogICAgIDxDbEluY2x1
ZGUgSW5jbHVkZT0iLi5cZGZnXERGR0dlbmVyYXRpb25JbmZvLmgiIC8+CiAgICAgPENsSW5jbHVk
ZSBJbmNsdWRlPSIuLlxkZmdcREZHR1BSSW5mby5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVk
ZT0iLi5cZGZnXERGR0dyYXBoLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxkZmdc
REZHR3JhcGhTYWZlcG9pbnQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGRmZ1xE
RkdJblBsYWNlQWJzdHJhY3RTdGF0ZS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
ZGZnXERGR0luc2VydGlvblNldC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZGZn
XERGR0ludmFsaWRhdGlvblBvaW50SW5qZWN0aW9uUGhhc2UuaCIgLz4KQEAgLTk2OSw3ICs5NzMs
OSBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZGZnXERGR1JlZ2lzdGVyU2V0LmgiIC8+
CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxkZmdcREZHUmVzdXJyZWN0aW9uRm9yVmFsaWRh
dGlvblBoYXNlLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxkZmdcREZHU2FmZVRv
RXhlY3V0ZS5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZGZnXERGR1NhZmVwb2lu
dC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZGZnXERGR1NhbmVTdHJpbmdHZXRC
eVZhbFNsb3dQYXRoR2VuZXJhdG9yLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxk
ZmdcREZHU2Nhbm5hYmxlLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxkZmdcREZH
U2NvcmVCb2FyZC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZGZnXERGR1NjcmF0
Y2hSZWdpc3RlckFsbG9jYXRvci5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZGZn
XERGR1NpbGVudFJlZ2lzdGVyU2F2ZVBsYW4uaCIgLz4KQEAgLTk4MSw2ICs5ODcsNyBAQAogICAg
IDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZGZnXERGR1N0b3JlQmFycmllckVsaXNpb25QaGFzZS5o
IiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZGZnXERGR1N0cmVuZ3RoUmVkdWN0aW9u
UGhhc2UuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGRmZ1xERkdTdHJ1Y3R1cmVB
YnN0cmFjdFZhbHVlLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxkZmdcREZHVGhy
ZWFkRGF0YS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZGZnXERGR1RodW5rcy5o
IiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZGZnXERGR1RpZXJVcENoZWNrSW5qZWN0
aW9uUGhhc2UuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGRmZ1xERkdUb0ZUTERl
ZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjay5oIiAvPgpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oJKHJldmlzaW9uIDE2Mzc1MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZh
U2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0y
MDIsNiArMjAyLDEzIEBACiAJCTBGMkU4OTJEMTZEMDJCQUYwMDlFNEZEMiAvKiBERkdNaW5pZmll
ZElELmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkI0
QjUxMDE2QjNBOTY0MDAzRjY5NkIgLyogREZHTWluaWZpZWRJRC5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGMkZDNzcyMTZFMTJGNzEwMDM4RDk3
NiAvKiBERkdEQ0VQaGFzZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwRjJGQzc3MDE2RTEyRjZGMDAzOEQ5NzYgLyogREZHRENFUGhhc2UuY3BwICov
OyB9OwogCQkwRjJGQzc3MzE2RTEyRjc0MDAzOEQ5NzYgLyogREZHRENFUGhhc2UuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMkZDNzcxMTZFMTJGNkYw
MDM4RDk3NiAvKiBERkdEQ0VQaGFzZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CisJCTBGMkZDQ0Y5MThBNjAwNzAwMDFBMjdGOCAvKiBERkdHcmFwaFNh
ZmVwb2ludC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwRjJGQ0NGMjE4QTYwMDcwMDAxQTI3RjggLyogREZHR3JhcGhTYWZlcG9pbnQuY3BwICovOyB9
OworCQkwRjJGQ0NGQTE4QTYwMDcwMDAxQTI3RjggLyogREZHR3JhcGhTYWZlcG9pbnQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMkZDQ0YzMThBNjAw
NzAwMDFBMjdGOCAvKiBERkdHcmFwaFNhZmVwb2ludC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTBGMkZDQ0ZCMThBNjAwNzAwMDFBMjdGOCAvKiBE
RkdTYWZlcG9pbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMEYyRkNDRjQxOEE2MDA3MDAwMUEyN0Y4IC8qIERGR1NhZmVwb2ludC5jcHAgKi87IH07
CisJCTBGMkZDQ0ZDMThBNjAwNzAwMDFBMjdGOCAvKiBERkdTYWZlcG9pbnQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMkZDQ0Y1MThBNjAwNzAwMDFB
MjdGOCAvKiBERkdTYWZlcG9pbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OworCQkwRjJGQ0NGRDE4QTYwMDcwMDAxQTI3RjggLyogREZHU2Nhbm5hYmxl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjJGQ0NG
NjE4QTYwMDcwMDAxQTI3RjggLyogREZHU2Nhbm5hYmxlLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMEYyRkNDRkUxOEE2MDA3MDAwMUEyN0Y4IC8q
IERGR1RocmVhZERhdGEuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMEYyRkNDRjcxOEE2MDA3MDAwMUEyN0Y4IC8qIERGR1RocmVhZERhdGEuY3BwICov
OyB9OworCQkwRjJGQ0NGRjE4QTYwMDcwMDAxQTI3RjggLyogREZHVGhyZWFkRGF0YS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYyRkNDRjgxOEE2MDA3
MDAwMUEyN0Y4IC8qIERGR1RocmVhZERhdGEuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjM0QjE0OTE2RDQyMDEwMDAxQ0RBNUEgLyogREZHVXNl
S2luZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAw
RjM0QjE0NzE2RDQyMDBFMDAxQ0RBNUEgLyogREZHVXNlS2luZC5jcHAgKi87IH07CiAJCTBGMzRC
MTRBMTZENDIwMTMwMDFDREE1QSAvKiBERkdVc2VLaW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjM0QjE0ODE2RDQyMDBFMDAxQ0RBNUEgLyogREZH
VXNlS2luZC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTBGMzRCMTRDMTZENDNFMEQwMDFDREE1QSAvKiBQb2x5bW9ycGhpY0FjY2Vzc1N0cnVjdHVy
ZUxpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBG
MzRCMTRCMTZENDNFMEMwMDFDREE1QSAvKiBQb2x5bW9ycGhpY0FjY2Vzc1N0cnVjdHVyZUxpc3Qu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTM1
MSw3ICsxMzU4LDcgQEAKIAkJQzI5ODFGREQxN0JBRkY0NDAwQTNCQzk4IC8qIERGR0Rlc2lyZWRX
cml0ZUJhcnJpZXJzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBDMjk4MUZEQjE3QkFGRjQ0MDBBM0JDOTggLyogREZHRGVzaXJlZFdyaXRlQmFycmllcnMu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDMjlF
Q0IwMzE4MDREMEVEMDBEMkNCQjQgLyogQ3VycmVudFRoaXNJbnNpZGVCbG9ja0dldHRlclRlc3Qu
bW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMjlFQ0Iw
MTE4MDREMEVEMDBEMkNCQjQgLyogQ3VycmVudFRoaXNJbnNpZGVCbG9ja0dldHRlclRlc3QubW0g
Ki87IH07CiAJCUMyQTdGNjg4MTYwNDMyRDQwMEY3NkI5OCAvKiBKU0Rlc3RydWN0aWJsZU9iamVj
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzJBN0Y2
ODcxNjA0MzJENDAwRjc2Qjk4IC8qIEpTRGVzdHJ1Y3RpYmxlT2JqZWN0LmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLSAgICAgICBDMkI2RDc1MzE4QTMz
NzkzMDA0QTkzMDEgLyogV3JpdGVCYXJyaWVySW5saW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzJCNkQ3NTIxOEEzMzc5MzAwNEE5MzAxIC8qIFdy
aXRlQmFycmllcklubGluZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OworCQlDMkI2RDc1MzE4QTMzNzkzMDA0QTkzMDEgLyogV3JpdGVCYXJyaWVySW5s
aW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzJC
NkQ3NTIxOEEzMzc5MzAwNEE5MzAxIC8qIFdyaXRlQmFycmllcklubGluZXMuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDMkI5MTZDMjE0REEwMTRF
MDBDQkFDODYgLyogTWFya2VkQWxsb2NhdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBDMkI5MTZDMTE0REEwMTRFMDBDQkFDODYgLyogTWFya2VkQWxs
b2NhdG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJQzJCOTE2QzUxNERBMDQwQzAwQ0JBQzg2IC8qIE1hcmtlZEFsbG9jYXRvci5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMkI5MTZDNDE0REEwNDBD
MDBDQkFDODYgLyogTWFya2VkQWxsb2NhdG9yLmNwcCAqLzsgfTsKIAkJQzJDMEY3Q0QxN0JCRkM1
QjAwNDY0RkU0IC8qIERGR0Rlc2lyZWRUcmFuc2l0aW9ucy5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMkMwRjdDQjE3QkJGQzVCMDA0NjRGRTQgLyog
REZHRGVzaXJlZFRyYW5zaXRpb25zLmNwcCAqLzsgfTsKQEAgLTE2NDQsNiArMTY1MSwxMyBAQAog
CQkwRjJCREM1MDE1MjI4RkZBMDBDRDg5MTAgLyogREZHVmFyaWFibGVFdmVudC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBERkdWYXJpYWJsZUV2ZW50LmNwcDsgcGF0
aCA9IGRmZy9ERkdWYXJpYWJsZUV2ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMEYyRkM3NzAxNkUxMkY2RjAwMzhEOTc2IC8qIERGR0RDRVBoYXNlLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IERGR0RDRVBoYXNlLmNwcDsgcGF0aCA9IGRmZy9E
RkdEQ0VQaGFzZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGMkZDNzcxMTZF
MTJGNkYwMDM4RDk3NiAvKiBERkdEQ0VQaGFzZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IG5hbWUgPSBERkdEQ0VQaGFzZS5oOyBwYXRoID0gZGZnL0RGR0RDRVBoYXNlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGMkZDQ0YyMThBNjAwNzAwMDFBMjdGOCAvKiBERkdHcmFw
aFNhZmVwb2ludC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBERkdH
cmFwaFNhZmVwb2ludC5jcHA7IHBhdGggPSBkZmcvREZHR3JhcGhTYWZlcG9pbnQuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRjJGQ0NGMzE4QTYwMDcwMDAxQTI3RjggLyogREZH
R3JhcGhTYWZlcG9pbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gREZHR3Jh
cGhTYWZlcG9pbnQuaDsgcGF0aCA9IGRmZy9ERkdHcmFwaFNhZmVwb2ludC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQkwRjJGQ0NGNDE4QTYwMDcwMDAxQTI3RjggLyogREZHU2FmZXBv
aW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IERGR1NhZmVwb2lu
dC5jcHA7IHBhdGggPSBkZmcvREZHU2FmZXBvaW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJMEYyRkNDRjUxOEE2MDA3MDAwMUEyN0Y4IC8qIERGR1NhZmVwb2ludC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBERkdTYWZlcG9pbnQuaDsgcGF0aCA9IGRmZy9E
RkdTYWZlcG9pbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEYyRkNDRjYxOEE2
MDA3MDAwMUEyN0Y4IC8qIERGR1NjYW5uYWJsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IG5hbWUgPSBERkdTY2FubmFibGUuaDsgcGF0aCA9IGRmZy9ERkdTY2FubmFibGUuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEYyRkNDRjcxOEE2MDA3MDAwMUEyN0Y4IC8qIERGR1Ro
cmVhZERhdGEuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gREZHVGhy
ZWFkRGF0YS5jcHA7IHBhdGggPSBkZmcvREZHVGhyZWFkRGF0YS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTBGMkZDQ0Y4MThBNjAwNzAwMDFBMjdGOCAvKiBERkdUaHJlYWREYXRh
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IERGR1RocmVhZERhdGEuaDsgcGF0
aCA9IGRmZy9ERkdUaHJlYWREYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBG
MzRCMTQ3MTZENDIwMEUwMDFDREE1QSAvKiBERkdVc2VLaW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgbmFtZSA9IERGR1VzZUtpbmQuY3BwOyBwYXRoID0gZGZnL0RGR1VzZUtp
bmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjM0QjE0ODE2RDQyMDBFMDAx
Q0RBNUEgLyogREZHVXNlS2luZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBE
RkdVc2VLaW5kLmg7IHBhdGggPSBkZmcvREZHVXNlS2luZC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkwRjM0QjE0QjE2RDQzRTBDMDAxQ0RBNUEgLyogUG9seW1vcnBoaWNBY2Nlc3NT
dHJ1Y3R1cmVMaXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBvbHltb3Jw
aGljQWNjZXNzU3RydWN0dXJlTGlzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MjgwMiw3ICsyODE2LDcgQEAKIAkJQzI5RUNCMDExODA0RDBFRDAwRDJDQkI0IC8qIEN1cnJlbnRU
aGlzSW5zaWRlQmxvY2tHZXR0ZXJUZXN0Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBuYW1lID0gQ3VycmVudFRoaXNJbnNpZGVCbG9ja0dldHRlclRlc3QubW07IHBhdGggPSBB
UEkvdGVzdHMvQ3VycmVudFRoaXNJbnNpZGVCbG9ja0dldHRlclRlc3QubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUMyOUVDQjAyMTgwNEQwRUQwMEQyQ0JCNCAvKiBDdXJyZW50VGhp
c0luc2lkZUJsb2NrR2V0dGVyVGVzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUg
PSBDdXJyZW50VGhpc0luc2lkZUJsb2NrR2V0dGVyVGVzdC5oOyBwYXRoID0gQVBJL3Rlc3RzL0N1
cnJlbnRUaGlzSW5zaWRlQmxvY2tHZXR0ZXJUZXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUMyQTdGNjg3MTYwNDMyRDQwMEY3NkI5OCAvKiBKU0Rlc3RydWN0aWJsZU9iamVjdC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0Rlc3RydWN0aWJsZU9iamVjdC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotICAgICAgIEMyQjZENzUyMThBMzM3OTMwMDRB
OTMwMSAvKiBXcml0ZUJhcnJpZXJJbmxpbmVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFdyaXRlQmFycmllcklubGluZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJQzJCNkQ3NTIxOEEzMzc5MzAwNEE5MzAxIC8qIFdyaXRlQmFycmllcklubGluZXMuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV3JpdGVCYXJyaWVySW5saW5lcy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDMkI5MTZDMTE0REEwMTRFMDBDQkFDODYgLyogTWFy
a2VkQWxsb2NhdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1hcmtlZEFs
bG9jYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDMkI5MTZDNDE0REEwNDBD
MDBDQkFDODYgLyogTWFya2VkQWxsb2NhdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IE1hcmtlZEFsbG9jYXRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUMyQzBGN0NCMTdCQkZDNUIwMDQ2NEZFNCAvKiBERkdEZXNpcmVkVHJhbnNpdGlvbnMu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gREZHRGVzaXJlZFRyYW5z
aXRpb25zLmNwcDsgcGF0aCA9IGRmZy9ERkdEZXNpcmVkVHJhbnNpdGlvbnMuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzY2Myw3ICszNjc3LDcgQEAKIAkJN0VGNkUwQkIwRUI3
QTFFQzAwNzlBRkFGIC8qIHJ1bnRpbWUgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNo
aWxkcmVuID0gKAotICAgICAgICAgICAgICAgQzJCNkQ3NTIxOEEzMzc5MzAwNEE5MzAxIC8qIFdy
aXRlQmFycmllcklubGluZXMuaCAqLywKKwkJCQlDMkI2RDc1MjE4QTMzNzkzMDA0QTkzMDEgLyog
V3JpdGVCYXJyaWVySW5saW5lcy5oICovLAogCQkJCUJDRjYwNTExMEUyMDNFRjgwMEI5QTY0RCAv
KiBBcmdMaXN0LmNwcCAqLywKIAkJCQlCQ0Y2MDUxMjBFMjAzRUY4MDBCOUE2NEQgLyogQXJnTGlz
dC5oICovLAogCQkJCUJDMjU3REU1MEUxRjUxQzUwMDE2QjZDOSAvKiBBcmd1bWVudHMuY3BwICov
LApAQCAtNDA4Nyw4ICs0MTAxLDYgQEAKIAkJODZFQzlEQjMxMzI4REY0NDAwMkIyQUQ3IC8qIGRm
ZyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCi0JCQkJMkFDQ0Yz
REMxODVGRTI2QjAwODNFMkFEIC8qIERGR1N0b3JlQmFycmllckVsaXNpb25QaGFzZS5jcHAgKi8s
Ci0JCQkJMkFDQ0YzREQxODVGRTI2QjAwODNFMkFEIC8qIERGR1N0b3JlQmFycmllckVsaXNpb25Q
aGFzZS5oICovLAogCQkJCUE3N0E0MjM2MTdBMEJCRkQwMEE4REI4MSAvKiBERkdBYnN0cmFjdEhl
YXAuY3BwICovLAogCQkJCUE3N0E0MjM3MTdBMEJCRkQwMEE4REI4MSAvKiBERkdBYnN0cmFjdEhl
YXAuaCAqLywKIAkJCQlBNzA0RDhGRTE3QTBCQUE4MDA2QkE1NTQgLyogREZHQWJzdHJhY3RJbnRl
cnByZXRlci5oICovLApAQCAtNDE5MCw2ICs0MjAyLDggQEAKIAkJCQk4NkVDOURCNjEzMjhERjgy
MDAyQjJBRDcgLyogREZHR2VuZXJhdGlvbkluZm8uaCAqLywKIAkJCQk4NkVDOURCNzEzMjhERjgy
MDAyQjJBRDcgLyogREZHR3JhcGguY3BwICovLAogCQkJCTg2RUM5REI4MTMyOERGODIwMDJCMkFE
NyAvKiBERkdHcmFwaC5oICovLAorCQkJCTBGMkZDQ0YyMThBNjAwNzAwMDFBMjdGOCAvKiBERkdH
cmFwaFNhZmVwb2ludC5jcHAgKi8sCisJCQkJMEYyRkNDRjMxOEE2MDA3MDAwMUEyN0Y4IC8qIERG
R0dyYXBoU2FmZXBvaW50LmggKi8sCiAJCQkJMEZCMTRFMjAxODEyNTcwQjAwOUI2QjREIC8qIERG
R0lubGluZUNhY2hlV3JhcHBlci5oICovLAogCQkJCTBGQjE0RTIyMTgxMzA5NTUwMDlCNkI0RCAv
KiBERkdJbmxpbmVDYWNoZVdyYXBwZXJJbmxpbmVzLmggKi8sCiAJCQkJQTcwNEQ5MDAxN0EwQkFB
ODAwNkJBNTU0IC8qIERGR0luUGxhY2VBYnN0cmFjdFN0YXRlLmNwcCAqLywKQEAgLTQyNjIsOCAr
NDI3NiwxMSBAQAogCQkJCTg2RUM5REMxMTMyOERGODIwMDJCMkFENyAvKiBERkdSZWdpc3RlckJh
bmsuaCAqLywKIAkJCQkwRjY2NkVDQTE4MzZCMzdFMDBEMDE3RjEgLyogREZHUmVzdXJyZWN0aW9u
Rm9yVmFsaWRhdGlvblBoYXNlLmNwcCAqLywKIAkJCQkwRjY2NkVDQjE4MzZCMzdFMDBEMDE3RjEg
LyogREZHUmVzdXJyZWN0aW9uRm9yVmFsaWRhdGlvblBoYXNlLmggKi8sCisJCQkJMEYyRkNDRjQx
OEE2MDA3MDAwMUEyN0Y4IC8qIERGR1NhZmVwb2ludC5jcHAgKi8sCisJCQkJMEYyRkNDRjUxOEE2
MDA3MDAwMUEyN0Y4IC8qIERGR1NhZmVwb2ludC5oICovLAogCQkJCUE3N0E0MjNDMTdBMEJCRkQw
MEE4REI4MSAvKiBERkdTYWZlVG9FeGVjdXRlLmggKi8sCiAJCQkJQTc0MTAxN0UxNzlEQUY4MDAw
MkVCOEJBIC8qIERGR1NhbmVTdHJpbmdHZXRCeVZhbFNsb3dQYXRoR2VuZXJhdG9yLmggKi8sCisJ
CQkJMEYyRkNDRjYxOEE2MDA3MDAwMUEyN0Y4IC8qIERGR1NjYW5uYWJsZS5oICovLAogCQkJCTg2
RUNBM0Y5MTMyREYyNUEwMDJCMkFENyAvKiBERkdTY29yZUJvYXJkLmggKi8sCiAJCQkJMEYxRTNB
NjUxNTNBMjFERjAwMEY5NDU2IC8qIERGR1NpbGVudFJlZ2lzdGVyU2F2ZVBsYW4uaCAqLywKIAkJ
CQkwRjFFM0E1MDE1MzdDMkNCMDAwRjk0NTYgLyogREZHU2xvd1BhdGhHZW5lcmF0b3IuaCAqLywK
QEAgLTQyNzcsOSArNDI5NCwxMyBAQAogCQkJCTBGQzIwQ0I4MTg1NTZBMzUwMEM5RTk1NCAvKiBE
RkdTU0FMb3dlcmluZ1BoYXNlLmggKi8sCiAJCQkJMEY5RkI0RjIxN0ZDQjkxNzAwQ0I2N0Y4IC8q
IERGR1N0YWNrTGF5b3V0UGhhc2UuY3BwICovLAogCQkJCTBGOUZCNEYzMTdGQ0I5MTcwMENCNjdG
OCAvKiBERkdTdGFja0xheW91dFBoYXNlLmggKi8sCisJCQkJMkFDQ0YzREMxODVGRTI2QjAwODNF
MkFEIC8qIERGR1N0b3JlQmFycmllckVsaXNpb25QaGFzZS5jcHAgKi8sCisJCQkJMkFDQ0YzREQx
ODVGRTI2QjAwODNFMkFEIC8qIERGR1N0b3JlQmFycmllckVsaXNpb25QaGFzZS5oICovLAogCQkJ
CTBGQzIwQ0IzMTg1MkUyQzYwMEM5RTk1NCAvKiBERkdTdHJlbmd0aFJlZHVjdGlvblBoYXNlLmNw
cCAqLywKIAkJCQkwRkMyMENCNDE4NTJFMkM2MDBDOUU5NTQgLyogREZHU3RyZW5ndGhSZWR1Y3Rp
b25QaGFzZS5oICovLAogCQkJCTBGNjM5NDc2MTVEQ0UzNDcwMDZBNTk3QyAvKiBERkdTdHJ1Y3R1
cmVBYnN0cmFjdFZhbHVlLmggKi8sCisJCQkJMEYyRkNDRjcxOEE2MDA3MDAwMUEyN0Y4IC8qIERG
R1RocmVhZERhdGEuY3BwICovLAorCQkJCTBGMkZDQ0Y4MThBNjAwNzAwMDFBMjdGOCAvKiBERkdU
aHJlYWREYXRhLmggKi8sCiAJCQkJMEZDMDk3OUYxNDZCMjhDNzAwQ0YyNDQyIC8qIERGR1RodW5r
cy5jcHAgKi8sCiAJCQkJMEZDMDk3QTAxNDZCMjhDNzAwQ0YyNDQyIC8qIERGR1RodW5rcy5oICov
LAogCQkJCTBGRDhBMzFGMTdENTFGNTcwMENBMkM0MCAvKiBERkdUaWVyVXBDaGVja0luamVjdGlv
blBoYXNlLmNwcCAqLywKQEAgLTQ2OTgsNyArNDcxOSw3IEBACiAJCQkJNjVDMDI4NUQxNzE3OTY2
ODAwMzUxRTM1IC8qIEFSTXY3RE9wY29kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkE2ODI5NUIx
ODc1RjgwNTAwQjZDM0UyIC8qIENvcHlXcml0ZUJhcnJpZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTJBNEVDOTBDMTg2MEQ2QzIwMDk0Rjc4MiAvKiBXcml0ZUJhcnJpZXJCdWZmZXIuaCBpbiBIZWFk
ZXJzICovLAotICAgICAgICAgICAgICAgQzJCNkQ3NTMxOEEzMzc5MzAwNEE5MzAxIC8qIFdyaXRl
QmFycmllcklubGluZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCUMyQjZENzUzMThBMzM3OTMwMDRB
OTMwMSAvKiBXcml0ZUJhcnJpZXJJbmxpbmVzLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRTU5MzJB
ODE4M0M1QTI2MDBBMUVDQ0MgLyogVk1FbnRyeVNjb3BlLmggaW4gSGVhZGVycyAqLywKIAkJCQlB
NTMyNDM5MzE4NTY5NzA5MDAyRUQ2OTIgLyogQ29kZUdlbmVyYXRvckluc3BlY3RvclN0cmluZ3Mu
cHkgaW4gSGVhZGVycyAqLywKIAkJCQlBNTMyNDM5MjE4NTY5NzA5MDAyRUQ2OTIgLyogQ29kZUdl
bmVyYXRvckluc3BlY3Rvci5weSBpbiBIZWFkZXJzICovLApAQCAtNTA3Nyw2ICs1MDk4LDcgQEAK
IAkJCQlBNzkwREQ3MDE4MkY0OTk3MDA1ODg4MDcgLyogSlNTZXRJdGVyYXRvci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMEYyNEU1NEUxN0VFMjc0OTAwQUJCMjE3IC8qIEpJVE9wZXJhdGlvbldyYXBw
ZXJzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjc2NkQzMTE1QUE4MTEyMDA4RjM2M0UgLyogSklU
U3R1YlJvdXRpbmUuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGMkZDQ0ZBMThBNjAwNzAwMDFBMjdG
OCAvKiBERkdHcmFwaFNhZmVwb2ludC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY3NjZEMkMxNUE4
Q0MzQTAwOEYzNjNFIC8qIEpJVFN0dWJSb3V0aW5lU2V0LmggaW4gSGVhZGVycyAqLywKIAkJCQkx
NEM1MjQyQjBGNTM1NUU5MDBCQTNEMDQgLyogSklUU3R1YnMuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUZFRjY4MzVFMTc0MzQzQ0MwMEEzMkUyNSAvKiBKSVRTdHVic0FSTS5oIGluIEhlYWRlcnMgKi8s
CkBAIC01MTE2LDYgKzUxMzgsNyBAQAogCQkJCTg2RTNDNjEzMTY3QkFCRDcwMDZENzYwQSAvKiBK
U0NvbnRleHQuaCBpbiBIZWFkZXJzICovLAogCQkJCTg2RTNDNjE3MTY3QkFCRUUwMDZENzYwQSAv
KiBKU0NvbnRleHRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxOEM0MUUwRTE2RjVD
RDAwQjM0NDYwIC8qIEpTQ29udGV4dFJlZi5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEYyRkNDRkYx
OEE2MDA3MDAwMUEyN0Y4IC8qIERGR1RocmVhZERhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCTE0
OENEMUQ4MTA4Q0Y5MDIwMDgxNjNDNiAvKiBKU0NvbnRleHRSZWZQcml2YXRlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlBNzIwMjhCODE3OTc2MDFFMDA5ODAyOEMgLyogSlNDVGVzdFJ1bm5lclV0aWxz
LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjJCNjZFQzE3QjZCNUFCMDBBN0FFM0YgLyogSlNEYXRh
Vmlldy5oIGluIEhlYWRlcnMgKi8sCkBAIC01MjM2LDYgKzUyNTksNyBAQAogCQkJCTg2QzU2OEUx
MTFBMjEzRUUwMDA3RjdGMCAvKiBNYWNyb0Fzc2VtYmxlck1JUFMuaCBpbiBIZWFkZXJzICovLAog
CQkJCTg2QUU2NEE5MTM1RTVFMUMwMDk2MzAxMiAvKiBNYWNyb0Fzc2VtYmxlclNINC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJODYwMTYxRTQwRjNBODNDMTAwRjg0NzEwIC8qIE1hY3JvQXNzZW1ibGVy
WDg2LmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjJGQ0NGQzE4QTYwMDcwMDAxQTI3RjggLyogREZH
U2FmZXBvaW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk4NjAxNjFFNTBGM0E4M0MxMDBGODQ3MTAg
LyogTWFjcm9Bc3NlbWJsZXJYODZfNjQuaCBpbiBIZWFkZXJzICovLAogCQkJCTg2MDE2MUU2MEYz
QTgzQzEwMEY4NDcxMCAvKiBNYWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQTcwMDg3M0ExN0NCRTg1MzAwQzNFNjQzIC8qIE1hcENvbnN0cnVjdG9yLmggaW4gSGVh
ZGVycyAqLywKQEAgLTU0NDcsNiArNTQ3MSw3IEBACiAJCQkJMEYyNDJEQTcxM0YzQjFFODAwN0FE
RDRDIC8qIFdlYWtSZWZlcmVuY2VIYXJ2ZXN0ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTE0RTg0
RkExMTRFRTFBQ0MwMEQ2RDVENCAvKiBXZWFrU2V0LmggaW4gSGVhZGVycyAqLywKIAkJCQkxNDE1
MDEzMzE1NEJCMTNGMDA1RDhDOTggLyogV2Vha1NldElubGluZXMuaCBpbiBIZWFkZXJzICovLAor
CQkJCTBGMkZDQ0ZEMThBNjAwNzAwMDFBMjdGOCAvKiBERkdTY2FubmFibGUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUJDMThDNDdBMEUxNkY1Q0QwMEIzNDQ2MCAvKiBXZWJLaXRBdmFpbGFiaWxpdHku
aCBpbiBIZWFkZXJzICovLAogCQkJCUE3NERFRjkyMTgyRDk5MTQwMDUyMkMyMiAvKiBNYXBJdGVy
YXRvckNvbnN0cnVjdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlBN0RDQjk3MzEyRTUxOTNGMDA5
MTE5NDAgLyogV3JpdGVCYXJyaWVyLmggaW4gSGVhZGVycyAqLywKQEAgLTYwNDEsNiArNjA2Niw3
IEBACiAJCQkJQTcwNDQ3RUQxN0EwQkQ3MDAwRjU4OThFIC8qIER1bXBDb250ZXh0LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTE0N0YzOUM3MTA3RUMzNzYwMDQyN0E0OCAvKiBFcnJvci5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkxNDdGMzlDODEwN0VDMzc2MDA0MjdBNDggLyogRXJyb3JDb25zdHJ1
Y3Rvci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkwRjJGQ0NGOTE4QTYwMDcwMDAxQTI3RjggLyog
REZHR3JhcGhTYWZlcG9pbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQ3RjM5QzkxMDdFQzM3
NjAwNDI3QTQ4IC8qIEVycm9ySW5zdGFuY2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQ3RjM5
Q0ExMDdFQzM3NjAwNDI3QTQ4IC8qIEVycm9yUHJvdG90eXBlLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUE1RkQwMDY3MTg5QUZFOUMwMDYzMzIzMSAvKiBTY3JpcHRBcmd1bWVudHMuY3BwIGluIFNv
dXJjZXMgKi8sCkBAIC02MjExLDYgKzYyMzcsNyBAQAogCQkJCUE3NDgyQjk0MTE2NzExNDcwMDNC
MDcxMiAvKiBKU1dlYWtPYmplY3RNYXBSZWZQcml2YXRlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTE0NDI1NjYxMTVFREU5OEQwMDY2QTQ5QiAvKiBKU1dpdGhTY29wZS5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlBNTAzRkExQjE4OEUwRkIwMDAxMTBGMTQgLyogSlNKYXZhU2NyaXB0Q2FsbEZyYW1l
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTBGMkZDQ0ZFMThBNjAwNzAwMDFBMjdGOCAvKiBERkdU
aHJlYWREYXRhLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg2RTNDNjE4MTY3QkFCRUUwMDZENzYw
QSAvKiBKU1dyYXBwZXJNYXAubW0gaW4gU291cmNlcyAqLywKIAkJCQkxNDI4MDg3MDEwN0VDMTM0
MDAxM0U3QjIgLyogSlNXcmFwcGVyT2JqZWN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE1N0Qy
M0U5MTg5MUIwNzcwMDMxQzdGQSAvKiBKU0dsb2JhbE9iamVjdERlYnVnZ2VyQWdlbnQuY3BwIGlu
IFNvdXJjZXMgKi8sCkBAIC02MzIyLDYgKzYzNDksNyBAQAogCQkJCUMyMjU0OTQzMTVGN0RCQUEw
MDY1RTg5OCAvKiBTbG90VmlzaXRvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5MzMwNDAyQzBF
NkE3NjQwMDA3ODZFNkEgLyogU21hbGxTdHJpbmdzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBG
OEYyQjlFMTczMDZDOEQwMDdEQkRBNSAvKiBTb3VyY2VDb2RlLmNwcCBpbiBTb3VyY2VzICovLAor
CQkJCTBGMkZDQ0ZCMThBNjAwNzAwMDFBMjdGOCAvKiBERkdTYWZlcG9pbnQuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQTVGRDAwNzkxODlCMDUxMDAwNjMzMjMxIC8qIENvbnNvbGVNZXNzYWdlLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTBGNDkzQUZBMTZEMENBRDMwMDg0NTA4QiAvKiBTb3VyY2VQ
cm92aWRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFNDlEQzE2QjEyRUYyOTNFMDAxODRBMUYg
LyogU291cmNlUHJvdmlkZXJDYWNoZS5jcHAgaW4gU291cmNlcyAqLywKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTGlua0J1ZmZlci5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9MaW5rQnVmZmVyLmNwcAkocmV2aXNpb24gMTYz
NzUyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9MaW5rQnVmZmVyLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMzAsNiArMzAsNyBAQAogCiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgi
CiAjaW5jbHVkZSAiSklUQ29kZS5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRl
ICJPcHRpb25zLmgiCiAjaW5jbHVkZSAiVk0uaCIKICNpbmNsdWRlIDx3dGYvQ29tcGlsYXRpb25U
aHJlYWQuaD4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9BcnJheVByb2Zp
bGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9BcnJh
eVByb2ZpbGUuY3BwCShyZXZpc2lvbiAxNjM3NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvQXJyYXlQcm9maWxlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcsNyBA
QAogI2luY2x1ZGUgIkFycmF5UHJvZmlsZS5oIgogCiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgiCisj
aW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgPHd0Zi9Db21tYVByaW50ZXIuaD4KICNp
bmNsdWRlIDx3dGYvU3RyaW5nRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL1N0cmluZ1ByaW50U3Ry
ZWFtLmg+CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVCYXNp
Y0Jsb2NrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
Qnl0ZWNvZGVCYXNpY0Jsb2NrLmNwcAkocmV2aXNpb24gMTYzNzUyKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlQmFzaWNCbG9jay5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJCeXRlY29kZUJhc2ljQmxvY2suaCIKIAogI2lu
Y2x1ZGUgIkNvZGVCbG9jay5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJQ
cmVjaXNlSnVtcFRhcmdldHMuaCIKIAogbmFtZXNwYWNlIEpTQyB7CkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVMaXZlbmVzc0FuYWx5c2lzSW5saW5lcy5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUxpdmVu
ZXNzQW5hbHlzaXNJbmxpbmVzLmgJKHJldmlzaW9uIDE2Mzc1MikKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUxpdmVuZXNzQW5hbHlzaXNJbmxpbmVzLmgJKHdvcmtp
bmcgY29weSkKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkJ5dGVjb2RlTGl2ZW5lc3NB
bmFseXNpcy5oIgogI2luY2x1ZGUgIkNvZGVCbG9jay5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMu
aCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9DYWxsTGlua0luZm8uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9DYWxsTGlua0luZm8uY3BwCShyZXZpc2lvbiAxNjM3NTIpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ2FsbExpbmtJbmZvLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMjgsNiArMjgsNyBAQAogCiAjaW5jbHVkZSAiREZHT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUg
IkRGR1RodW5rcy5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJSZXBhdGNo
QnVmZmVyLmgiCiAKICNpZiBFTkFCTEUoSklUKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL0NvZGVCbG9jay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAJKHJldmlzaW9uIDE2Mzc1MikKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0z
Niw2ICszNiw3IEBACiAjaW5jbHVkZSAiREZHQ2FwYWJpbGl0aWVzLmgiCiAjaW5jbHVkZSAiREZH
Q29tbW9uLmgiCiAjaW5jbHVkZSAiREZHRHJpdmVyLmgiCisjaW5jbHVkZSAiREZHSklUQ29kZS5o
IgogI2luY2x1ZGUgIkRGR05vZGUuaCIKICNpbmNsdWRlICJERkdXb3JrbGlzdC5oIgogI2luY2x1
ZGUgIkRlYnVnZ2VyLmgiCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29k
ZUJsb2NrLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0Nv
ZGVCbG9jay5oCShyZXZpc2lvbiAxNjM3NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvQ29kZUJsb2NrLmgJKHdvcmtpbmcgY29weSkKQEAgLTU2LDcgKzU2LDYgQEAKICNpbmNs
dWRlICJIYW5kbGVySW5mby5oIgogI2luY2x1ZGUgIk9iamVjdEFsbG9jYXRpb25Qcm9maWxlLmgi
CiAjaW5jbHVkZSAiT3B0aW9ucy5oIgotI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRl
ICJQdXRQcm9wZXJ0eVNsb3QuaCIKICNpbmNsdWRlICJJbnN0cnVjdGlvbi5oIgogI2luY2x1ZGUg
IkpJVENvZGUuaCIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxv
Y2tKZXR0aXNvbmluZ1dhdGNocG9pbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2tKZXR0aXNvbmluZ1dhdGNocG9pbnQuY3BwCShyZXZp
c2lvbiAxNjM3NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2Nr
SmV0dGlzb25pbmdXYXRjaHBvaW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBA
QAogCiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgiCiAjaW5jbHVkZSAiREZHQ29tbW9uLmgiCisjaW5j
bHVkZSAiT3BlcmF0aW9ucy5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIApJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL0V4ZWN1dGlvbkNvdW50ZXIuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9FeGVjdXRpb25Db3VudGVyLmNwcAkocmV2
aXNpb24gMTYzNzUyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0V4ZWN1dGlv
bkNvdW50ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRl
ICJDb2RlQmxvY2suaCIKICNpbmNsdWRlICJFeGVjdXRhYmxlQWxsb2NhdG9yLmgiCisjaW5jbHVk
ZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgPHd0Zi9TdHJpbmdFeHRyYXMuaD4KIAogbmFtZXNw
YWNlIEpTQyB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvTWV0aG9kT2ZH
ZXR0aW5nQVZhbHVlUHJvZmlsZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL01ldGhvZE9mR2V0dGluZ0FWYWx1ZVByb2ZpbGUuY3BwCShyZXZpc2lvbiAx
NjM3NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvTWV0aG9kT2ZHZXR0aW5n
QVZhbHVlUHJvZmlsZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5LDYgKzI5LDcgQEAKICNpZiBF
TkFCTEUoREZHX0pJVCkKIAogI2luY2x1ZGUgIkNvZGVCbG9jay5oIgorI2luY2x1ZGUgIk9wZXJh
dGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9QcmVjaXNlSnVtcFRhcmdldHMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9QcmVjaXNlSnVtcFRhcmdldHMuY3BwCShyZXZpc2lvbiAx
NjM3NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUHJlY2lzZUp1bXBUYXJn
ZXRzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjYsNiArMjYsOCBAQAogI2luY2x1ZGUgImNvbmZp
Zy5oIgogI2luY2x1ZGUgIlByZWNpc2VKdW1wVGFyZ2V0cy5oIgogCisjaW5jbHVkZSAiT3BlcmF0
aW9ucy5oIgorCiBuYW1lc3BhY2UgSlNDIHsKIAogdGVtcGxhdGUgPHNpemVfdCB2ZWN0b3JTaXpl
PgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1Byb2ZpbGVkQ29kZUJsb2Nr
SmV0dGlzb25pbmdXYXRjaHBvaW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvUHJvZmlsZWRDb2RlQmxvY2tKZXR0aXNvbmluZ1dhdGNocG9pbnQuY3Bw
CShyZXZpc2lvbiAxNjM3NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUHJv
ZmlsZWRDb2RlQmxvY2tKZXR0aXNvbmluZ1dhdGNocG9pbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgiCiAjaW5jbHVkZSAiREZHQ29t
bW9uLmgiCiAjaW5jbHVkZSAiREZHRXhpdFByb2ZpbGUuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25z
LmgiCiAKIG5hbWVzcGFjZSBKU0MgewogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvU2FtcGxpbmdUb29sLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvU2FtcGxpbmdUb29sLmNwcAkocmV2aXNpb24gMTYzNzUyKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1NhbXBsaW5nVG9vbC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJDb2RlQmxvY2suaCIKICNpbmNsdWRlICJJbnRl
cnByZXRlci5oIgogI2luY2x1ZGUgIk9wY29kZS5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIK
IAogI2lmICFPUyhXSU5ET1dTKQogI2luY2x1ZGUgPHVuaXN0ZC5oPgpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL1NwZWNpYWxQb2ludGVyLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3BlY2lhbFBvaW50ZXIuY3BwCShyZXZpc2lv
biAxNjM3NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3BlY2lhbFBvaW50
ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJDb2Rl
QmxvY2suaCIKICNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgorI2luY2x1ZGUgIk9wZXJhdGlv
bnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9TdHJ1Y3R1cmVTdHViQ2xlYXJpbmdXYXRjaHBvaW50LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3RydWN0dXJlU3R1YkNsZWFyaW5nV2F0
Y2hwb2ludC5jcHAJKHJldmlzaW9uIDE2Mzc1MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9TdHJ1Y3R1cmVTdHViQ2xlYXJpbmdXYXRjaHBvaW50LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMjksNiArMjksNyBAQAogI2lmIEVOQUJMRShKSVQpCiAKICNpbmNsdWRlICJDb2RlQmxv
Y2suaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiU3RydWN0dXJlU3R1Yklu
Zm8uaCIKIAogbmFtZXNwYWNlIEpTQyB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVi
dWdnZXIvRGVidWdnZXJDYWxsRnJhbWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckNhbGxGcmFtZS5jcHAJKHJldmlzaW9uIDE2Mzc1MikK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckNhbGxGcmFtZS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTI5LDcgKzI5LDYgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNp
bmNsdWRlICJEZWJ1Z2dlckNhbGxGcmFtZS5oIgogCi0jaW5jbHVkZSAiQ2FsbEZyYW1lSW5saW5l
cy5oIgogI2luY2x1ZGUgIkNvZGVCbG9jay5oIgogI2luY2x1ZGUgIkludGVycHJldGVyLmgiCiAj
aW5jbHVkZSAiSlNBY3RpdmF0aW9uLmgiCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0F2YWlsYWJpbGl0eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdBdmFpbGFiaWxpdHkuY3BwCShyZXZpc2lvbiAxNjM3NTIpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0F2YWlsYWJpbGl0eS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5
LDYgKzI5LDcgQEAKICNpZiBFTkFCTEUoREZHX0pJVCkKIAogI2luY2x1ZGUgIkRGR05vZGUuaCIK
KyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZH
IHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCbG9ja0luc2VydGlvblNl
dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCbG9ja0lu
c2VydGlvblNldC5jcHAJKHJldmlzaW9uIDE2Mzc1MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHQmxvY2tJbnNlcnRpb25TZXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsy
OCw4IEBACiAKICNpZiBFTkFCTEUoREZHX0pJVCkKIAorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIK
KwogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgewogCiBCbG9ja0luc2VydGlvblNldDo6
QmxvY2tJbnNlcnRpb25TZXQoR3JhcGgmIGdyYXBoKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdDU0VQaGFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdDU0VQaGFzZS5jcHAJKHJldmlzaW9uIDE2Mzc1MikKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHQ1NFUGhhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw3ICsz
Myw3IEBACiAjaW5jbHVkZSAiREZHRWRnZVVzZXNTdHJ1Y3R1cmUuaCIKICNpbmNsdWRlICJERkdH
cmFwaC5oIgogI2luY2x1ZGUgIkRGR1BoYXNlLmgiCi0jaW5jbHVkZSAiSlNDZWxsSW5saW5lcy5o
IgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlIDxhcnJheT4KICNpbmNsdWRlIDx3
dGYvRmFzdEJpdFZlY3Rvci5oPgogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0NhcGFiaWxpdGllcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdDYXBhYmlsaXRpZXMuY3BwCShyZXZpc2lvbiAxNjM3NTIpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0NhcGFiaWxpdGllcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMxLDYg
KzMxLDcgQEAKICNpbmNsdWRlICJDb2RlQmxvY2suaCIKICNpbmNsdWRlICJERkdDb21tb24uaCIK
ICNpbmNsdWRlICJJbnRlcnByZXRlci5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFt
ZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgewogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0NvbW1vbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdDb21tb24uY3BwCShyZXZpc2lvbiAxNjM3NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0NvbW1vbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5LDYgKzI5LDcgQEAK
ICNpZiBFTkFCTEUoREZHX0pJVCkKIAogI2luY2x1ZGUgIkRGR05vZGUuaCIKKyNpbmNsdWRlICJP
cGVyYXRpb25zLmgiCiAKIG5hbWVzcGFjZSBXVEYgewogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0NvbXBpbGF0aW9uS2V5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0NvbXBpbGF0aW9uS2V5LmNwcAkocmV2aXNpb24gMTYzNzUyKQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb21waWxhdGlvbktleS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkNvZGVCbG9jay5oIgogI2lu
Y2x1ZGUgIkNvZGVCbG9ja1NldC5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogI2lmIEVO
QUJMRShERkdfSklUKQogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Rlc2ly
ZWRUcmFuc2l0aW9ucy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdEZXNpcmVkVHJhbnNpdGlvbnMuY3BwCShyZXZpc2lvbiAxNjM3NTIpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0Rlc2lyZWRUcmFuc2l0aW9ucy5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTMxLDYgKzMxLDcgQEAKIAogI2luY2x1ZGUgIkNvZGVCbG9jay5oIgogI2luY2x1ZGUg
IkRGR0NvbW1vbkRhdGEuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAKIG5hbWVzcGFjZSBK
U0MgeyBuYW1lc3BhY2UgREZHIHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdEcml2ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
RHJpdmVyLmNwcAkocmV2aXNpb24gMTYzNzUyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdEcml2ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjEsNyArMTIxLDcgQEAgc3RhdGlj
IENvbXBpbGF0aW9uUmVzdWx0IGNvbXBpbGVJbXBsKAogICAgICAgICByZXR1cm4gQ29tcGlsYXRp
b25EZWZlcnJlZDsKICAgICB9CiAgICAgCi0gICAgcGxhbi0+Y29tcGlsZUluVGhyZWFkKCp2bS5k
ZmdTdGF0ZSk7CisgICAgcGxhbi0+Y29tcGlsZUluVGhyZWFkKCp2bS5kZmdTdGF0ZSwgMCk7CiAg
ICAgcmV0dXJuIHBsYW4tPmZpbmFsaXplV2l0aG91dE5vdGlmeWluZ0NhbGxiYWNrKCk7CiB9CiAj
ZWxzZSAvLyBFTkFCTEUoREZHX0pJVCkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHR3JhcGguY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
R3JhcGguY3BwCShyZXZpc2lvbiAxNjM3NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0dyYXBoLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzkwLDYgKzc5MCw1OSBAQCBKU0FycmF5
QnVmZmVyVmlldyogR3JhcGg6OnRyeUdldEZvbGRhYmxlCiAgICAgcmV0dXJuIHRyeUdldEZvbGRh
YmxlVmlldyhjaGlsZChub2RlLCAwKS5ub2RlKCksIG5vZGUtPmFycmF5TW9kZSgpKTsKIH0KIAor
dm9pZCBHcmFwaDo6dmlzaXRDaGlsZHJlbihTbG90VmlzaXRvciYgdmlzaXRvcikKK3sKKyAgICBm
b3IgKEJsb2NrSW5kZXggYmxvY2tJbmRleCA9IG51bUJsb2NrcygpOyBibG9ja0luZGV4LS07KSB7
CisgICAgICAgIEJhc2ljQmxvY2sqIGJsb2NrID0gdGhpcy0+YmxvY2soYmxvY2tJbmRleCk7Cisg
ICAgICAgIGlmICghYmxvY2spCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgCisgICAg
ICAgIGZvciAodW5zaWduZWQgbm9kZUluZGV4ID0gMDsgbm9kZUluZGV4IDwgYmxvY2stPnNpemUo
KTsgKytub2RlSW5kZXgpIHsKKyAgICAgICAgICAgIE5vZGUqIG5vZGUgPSBibG9jay0+YXQobm9k
ZUluZGV4KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgc3dpdGNoIChub2RlLT5vcCgpKSB7
CisgICAgICAgICAgICBjYXNlIEpTQ29uc3RhbnQ6CisgICAgICAgICAgICBjYXNlIFdlYWtKU0Nv
bnN0YW50OgorICAgICAgICAgICAgICAgIHZpc2l0b3IuYXBwZW5kVW5iYXJyaWVyZWRSZWFkT25s
eVZhbHVlKHZhbHVlT2ZKU0NvbnN0YW50KG5vZGUpKTsKKyAgICAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIGNhc2UgQ2hlY2tGdW5jdGlvbjoKKyAgICAg
ICAgICAgICAgICB2aXNpdG9yLmFwcGVuZFVuYmFycmllcmVkUmVhZE9ubHlQb2ludGVyKG5vZGUt
PmZ1bmN0aW9uKCkpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIAor
ICAgICAgICAgICAgY2FzZSBDaGVja0V4ZWN1dGFibGU6CisgICAgICAgICAgICAgICAgdmlzaXRv
ci5hcHBlbmRVbmJhcnJpZXJlZFJlYWRPbmx5UG9pbnRlcihub2RlLT5leGVjdXRhYmxlKCkpOwor
ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgY2Fz
ZSBDaGVja1N0cnVjdHVyZToKKyAgICAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSBub2Rl
LT5zdHJ1Y3R1cmVTZXQoKS5zaXplKCk7IGktLTspCisgICAgICAgICAgICAgICAgICAgIHZpc2l0
b3IuYXBwZW5kVW5iYXJyaWVyZWRSZWFkT25seVBvaW50ZXIobm9kZS0+c3RydWN0dXJlU2V0KClb
aV0pOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIAorICAgICAgICAg
ICAgY2FzZSBTdHJ1Y3R1cmVUcmFuc2l0aW9uV2F0Y2hwb2ludDoKKyAgICAgICAgICAgIGNhc2Ug
TmV3T2JqZWN0OgorICAgICAgICAgICAgY2FzZSBBcnJheWlmeVRvU3RydWN0dXJlOgorICAgICAg
ICAgICAgY2FzZSBOZXdTdHJpbmdPYmplY3Q6CisgICAgICAgICAgICAgICAgdmlzaXRvci5hcHBl
bmRVbmJhcnJpZXJlZFJlYWRPbmx5UG9pbnRlcihub2RlLT5zdHJ1Y3R1cmUoKSk7CisgICAgICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICBjYXNlIFB1dFN0
cnVjdHVyZToKKyAgICAgICAgICAgIGNhc2UgUGhhbnRvbVB1dFN0cnVjdHVyZToKKyAgICAgICAg
ICAgIGNhc2UgQWxsb2NhdGVQcm9wZXJ0eVN0b3JhZ2U6CisgICAgICAgICAgICBjYXNlIFJlYWxs
b2NhdGVQcm9wZXJ0eVN0b3JhZ2U6CisgICAgICAgICAgICAgICAgdmlzaXRvci5hcHBlbmRVbmJh
cnJpZXJlZFJlYWRPbmx5UG9pbnRlcigKKyAgICAgICAgICAgICAgICAgICAgbm9kZS0+c3RydWN0
dXJlVHJhbnNpdGlvbkRhdGEoKS5wcmV2aW91c1N0cnVjdHVyZSk7CisgICAgICAgICAgICAgICAg
dmlzaXRvci5hcHBlbmRVbmJhcnJpZXJlZFJlYWRPbmx5UG9pbnRlcigKKyAgICAgICAgICAgICAg
ICAgICAgbm9kZS0+c3RydWN0dXJlVHJhbnNpdGlvbkRhdGEoKS5uZXdTdHJ1Y3R1cmUpOworICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgZGVmYXVs
dDoKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAg
IH0KK30KKwogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkRGRwogCiAjZW5kaWYKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmgJKHJldmlzaW9uIDE2Mzc1MikKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguaAkod29ya2luZyBjb3B5KQpAQCAtNDAsNiArNDAs
NyBAQAogI2luY2x1ZGUgIkRGR05vZGUuaCIKICNpbmNsdWRlICJERkdOb2RlQWxsb2NhdG9yLmgi
CiAjaW5jbHVkZSAiREZHUGxhbi5oIgorI2luY2x1ZGUgIkRGR1NjYW5uYWJsZS5oIgogI2luY2x1
ZGUgIkRGR1ZhcmlhZGljRnVuY3Rpb24uaCIKICNpbmNsdWRlICJJbmxpbmVDYWxsRnJhbWVTZXQu
aCIKICNpbmNsdWRlICJKU1N0YWNrLmgiCkBAIC03OCw3ICs3OSw3IEBAIGVudW0gQWRkU3BlY3Vs
YXRpb25Nb2RlIHsKIC8vCiAvLyBUaGUgb3JkZXIgbWF5IGJlIHNpZ25pZmljYW50IGZvciBub2Rl
cyB3aXRoIHNpZGUtZWZmZWN0cyAocHJvcGVydHkgYWNjZXNzZXMsIHZhbHVlIGNvbnZlcnNpb25z
KS4KIC8vIE5vZGVzIHRoYXQgYXJlICdkZWFkJyByZW1haW4gaW4gdGhlIHZlY3RvciB3aXRoIHJl
ZkNvdW50IDAuCi1jbGFzcyBHcmFwaCB7CitjbGFzcyBHcmFwaCA6IHB1YmxpYyB2aXJ0dWFsIFNj
YW5uYWJsZSB7CiBwdWJsaWM6CiAgICAgR3JhcGgoVk0mLCBQbGFuJiwgTG9uZ0xpdmVkU3RhdGUm
KTsKICAgICB+R3JhcGgoKTsKQEAgLTc5OSw2ICs4MDAsOCBAQCBwdWJsaWM6CiAgICAgSlNBcnJh
eUJ1ZmZlclZpZXcqIHRyeUdldEZvbGRhYmxlVmlldyhOb2RlKiwgQXJyYXlNb2RlKTsKICAgICBK
U0FycmF5QnVmZmVyVmlldyogdHJ5R2V0Rm9sZGFibGVWaWV3Rm9yQ2hpbGQxKE5vZGUqKTsKICAg
ICAKKyAgICB2aXJ0dWFsIHZvaWQgdmlzaXRDaGlsZHJlbihTbG90VmlzaXRvciYpIG92ZXJyaWRl
OworICAgIAogICAgIFZNJiBtX3ZtOwogICAgIFBsYW4mIG1fcGxhbjsKICAgICBDb2RlQmxvY2sq
IG1fY29kZUJsb2NrOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaFNh
ZmVwb2ludC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdH
cmFwaFNhZmVwb2ludC5jcHAJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0dyYXBoU2FmZXBvaW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDQ3IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQor
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJERkdHcmFwaFNhZmVwb2ludC5oIgorCisjaWYgRU5BQkxF
KERGR19KSVQpCisKKyNpbmNsdWRlICJERkdHcmFwaC5oIgorCituYW1lc3BhY2UgSlNDIHsgbmFt
ZXNwYWNlIERGRyB7CisKK0dyYXBoU2FmZXBvaW50OjpHcmFwaFNhZmVwb2ludChHcmFwaCYgZ3Jh
cGgpCisgICAgOiBtX3NhZmVwb2ludChncmFwaC5tX3BsYW4pCit7CisgICAgbV9zYWZlcG9pbnQu
YWRkKCZncmFwaCk7CisgICAgbV9zYWZlcG9pbnQuYmVnaW4oKTsKK30KKworR3JhcGhTYWZlcG9p
bnQ6On5HcmFwaFNhZmVwb2ludCgpIHsgfQorCit9IH0gLy8gbmFtZXNwYWNlIEpTQzo6REZHCisK
KyNlbmRpZiAvLyBFTkFCTEUoREZHX0pJVCkKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdHcmFwaFNhZmVwb2ludC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHR3JhcGhTYWZlcG9pbnQuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHR3JhcGhTYWZlcG9pbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMCww
ICsxLDUxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisK
KyNpZm5kZWYgREZHR3JhcGhTYWZlcG9pbnRfaAorI2RlZmluZSBERkdHcmFwaFNhZmVwb2ludF9o
CisKKyNpZiBFTkFCTEUoREZHX0pJVCkKKworI2luY2x1ZGUgIkRGR1NhZmVwb2ludC5oIgorCitu
YW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CisKK2NsYXNzIEdyYXBoOworCitjbGFzcyBH
cmFwaFNhZmVwb2ludCB7CitwdWJsaWM6CisgICAgR3JhcGhTYWZlcG9pbnQoR3JhcGgmKTsKKyAg
ICB+R3JhcGhTYWZlcG9pbnQoKTsKKyAgICAKK3ByaXZhdGU6CisgICAgU2FmZXBvaW50IG1fc2Fm
ZXBvaW50OworfTsKKworfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkRGRworCisjZW5kaWYgLy8gRU5B
QkxFKERGR19KSVQpCisKKyNlbmRpZiAvLyBERkdHcmFwaFNhZmVwb2ludF9oCisKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklUQ29kZS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb2RlLmNwcAkocmV2aXNpb24gMTYzNzUyKQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb2RlLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMjksNiArMjksNyBAQAogI2lmIEVOQUJMRShERkdfSklUKQogCiAjaW5jbHVkZSAiQ29k
ZUJsb2NrLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiBuYW1lc3BhY2UgSlNDIHsgbmFt
ZXNwYWNlIERGRyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklUQ29t
cGlsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklU
Q29tcGlsZXIuY3BwCShyZXZpc2lvbiAxNjM3NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0pJVENvbXBpbGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDEsOSArNDEsMTAgQEAK
ICNpbmNsdWRlICJERkdTcGVjdWxhdGl2ZUpJVC5oIgogI2luY2x1ZGUgIkRGR1RodW5rcy5oIgog
I2luY2x1ZGUgIkpTQ0pTVmFsdWVJbmxpbmVzLmgiCisjaW5jbHVkZSAiTGlua0J1ZmZlci5oIgog
I2luY2x1ZGUgIk1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsLmgiCisjaW5jbHVkZSAiT3Bl
cmF0aW9ucy5oIgogI2luY2x1ZGUgIlZNLmgiCi0jaW5jbHVkZSAiTGlua0J1ZmZlci5oIgogCiBu
YW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHSklUQ29tcGlsZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0pJVENvbXBpbGVyLmgJKHJldmlzaW9uIDE2Mzc1MikKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHSklUQ29tcGlsZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMjks
NyArMjksNiBAQAogI2lmIEVOQUJMRShERkdfSklUKQogCiAjaW5jbHVkZSAiQ0NhbGxIZWxwZXJz
LmgiCi0jaW5jbHVkZSAiQ2FsbEZyYW1lSW5saW5lcy5oIgogI2luY2x1ZGUgIkNvZGVCbG9jay5o
IgogI2luY2x1ZGUgIkRGR0Rpc2Fzc2VtYmxlci5oIgogI2luY2x1ZGUgIkRGR0dyYXBoLmgiCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXRDb21waWxlckNvbW1vbi5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0Q29t
cGlsZXJDb21tb24uY3BwCShyZXZpc2lvbiAxNjM3NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR09TUkV4aXRDb21waWxlckNvbW1vbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5
LDYgKzI5LDcgQEAKICNpZiBFTkFCTEUoREZHX0pJVCkKIAogI2luY2x1ZGUgIkFyZ3VtZW50cy5o
IgorI2luY2x1ZGUgIkRGR0pJVENvZGUuaCIKICNpbmNsdWRlICJERkdPcGVyYXRpb25zLmgiCiAj
aW5jbHVkZSAiSklULmgiCiAjaW5jbHVkZSAiSlNDSlNWYWx1ZUlubGluZXMuaCIKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcAkocmV2aXNpb24gMTYz
NzUyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkNvbW1vblNsb3dQYXRocy5o
IgogI2luY2x1ZGUgIkNvcGllZFNwYWNlSW5saW5lcy5oIgogI2luY2x1ZGUgIkRGR0RyaXZlci5o
IgorI2luY2x1ZGUgIkRGR0pJVENvZGUuaCIKICNpbmNsdWRlICJERkdPU1JFeGl0LmgiCiAjaW5j
bHVkZSAiREZHVGh1bmtzLmgiCiAjaW5jbHVkZSAiREZHVG9GVExEZWZlcnJlZENvbXBpbGF0aW9u
Q2FsbGJhY2suaCIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9u
cy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9u
cy5oCShyZXZpc2lvbiAxNjM3NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09w
ZXJhdGlvbnMuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTEsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDExLCAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjgsNyArMjgsNiBAQAogCiAj
aWYgRU5BQkxFKERGR19KSVQpCiAKLSNpbmNsdWRlICJERkdKSVRDb21waWxlci5oIgogI2luY2x1
ZGUgIkpJVE9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJQdXRLaW5kLmgiCiAKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUGxhbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdQbGFuLmNwcAkocmV2aXNpb24gMTYzNzUyKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQbGFuLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDEsNiAr
NDEsNyBAQAogI2luY2x1ZGUgIkRGR0ZhaWxlZEZpbmFsaXplci5oIgogI2luY2x1ZGUgIkRGR0Zs
dXNoTGl2ZW5lc3NBbmFseXNpc1BoYXNlLmgiCiAjaW5jbHVkZSAiREZHRml4dXBQaGFzZS5oIgor
I2luY2x1ZGUgIkRGR0dyYXBoU2FmZXBvaW50LmgiCiAjaW5jbHVkZSAiREZHSW52YWxpZGF0aW9u
UG9pbnRJbmplY3Rpb25QaGFzZS5oIgogI2luY2x1ZGUgIkRGR0pJVENvbXBpbGVyLmgiCiAjaW5j
bHVkZSAiREZHTElDTVBoYXNlLmgiCkBAIC0xMzUsOCArMTM2LDEwIEBAIGJvb2wgUGxhbjo6cmVw
b3J0Q29tcGlsZVRpbWVzKCkgY29uc3QKICAgICAgICAgfHwgKE9wdGlvbnM6OnJlcG9ydEZUTENv
bXBpbGVUaW1lcygpICYmIGlzRlRMKG1vZGUpKTsKIH0KIAotdm9pZCBQbGFuOjpjb21waWxlSW5U
aHJlYWQoTG9uZ0xpdmVkU3RhdGUmIGxvbmdMaXZlZFN0YXRlKQordm9pZCBQbGFuOjpjb21waWxl
SW5UaHJlYWQoTG9uZ0xpdmVkU3RhdGUmIGxvbmdMaXZlZFN0YXRlLCBUaHJlYWREYXRhKiB0aHJl
YWREYXRhKQogeworICAgIHRoaXMtPnRocmVhZERhdGEgPSB0aHJlYWREYXRhOworICAgIAogICAg
IGRvdWJsZSBiZWZvcmUgPSAwOwogICAgIGlmIChyZXBvcnRDb21waWxlVGltZXMoKSkKICAgICAg
ICAgYmVmb3JlID0gY3VycmVudFRpbWVNUygpOwpAQCAtMzEzLDExICszMTYsMTQgQEAgUGxhbjo6
Q29tcGlsYXRpb25QYXRoIFBsYW46OmNvbXBpbGVJblRocgogICAgICAgICAKICAgICAgICAgZHVt
cEFuZFZlcmlmeUdyYXBoKGRmZywgIkdyYXBoIGp1c3QgYmVmb3JlIEZUTCBsb3dlcmluZzoiKTsK
ICAgICAgICAgCi0gICAgICAgIGluaXRpYWxpemVMTFZNKCk7Ci0gICAgICAgIAorICAgICAgICB7
CisgICAgICAgICAgICBHcmFwaFNhZmVwb2ludCBzYWZlcG9pbnQoZGZnKTsKKyAgICAgICAgICAg
IGluaXRpYWxpemVMTFZNKCk7CisgICAgICAgIH0KKyAgICAgICAgICAgIAogICAgICAgICBGVEw6
OlN0YXRlIHN0YXRlKGRmZyk7CiAgICAgICAgIEZUTDo6bG93ZXJERkdUb0xMVk0oc3RhdGUpOwot
ICAgICAgICAKKyAgICAgICAgICAgIAogICAgICAgICBpZiAocmVwb3J0Q29tcGlsZVRpbWVzKCkp
CiAgICAgICAgICAgICBiZWZvcmVGVEwgPSBjdXJyZW50VGltZU1TKCk7CiAgICAgICAgIApAQCAt
MzI3LDcgKzMzMyw3IEBAIFBsYW46OkNvbXBpbGF0aW9uUGF0aCBQbGFuOjpjb21waWxlSW5UaHIK
ICAgICAgICAgfQogICAgICAgICAKICAgICAgICAgRlRMOjpjb21waWxlKHN0YXRlKTsKLQorICAg
ICAgICAgICAgCiAgICAgICAgIGlmIChPcHRpb25zOjpsbHZtQWx3YXlzRmFpbHNCZWZvcmVMaW5r
KCkpIHsKICAgICAgICAgICAgIEZUTDo6ZmFpbChzdGF0ZSk7CiAgICAgICAgICAgICByZXR1cm4g
RlRMUGF0aDsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUGxhbi5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUGxhbi5oCShyZXZpc2lvbiAx
NjM3NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1BsYW4uaAkod29ya2luZyBj
b3B5KQpAQCAtNTIsNiArNTIsNyBAQCBjbGFzcyBTbG90VmlzaXRvcjsKIG5hbWVzcGFjZSBERkcg
ewogCiBjbGFzcyBMb25nTGl2ZWRTdGF0ZTsKK2NsYXNzIFRocmVhZERhdGE7CiAKICNpZiBFTkFC
TEUoREZHX0pJVCkKIApAQCAtNjIsNyArNjMsNyBAQCBzdHJ1Y3QgUGxhbiA6IHB1YmxpYyBUaHJl
YWRTYWZlUmVmQ291bnRlCiAgICAgICAgIGNvbnN0IE9wZXJhbmRzPEpTVmFsdWU+JiBtdXN0SGFu
ZGxlVmFsdWVzKTsKICAgICB+UGxhbigpOwogICAgIAotICAgIHZvaWQgY29tcGlsZUluVGhyZWFk
KExvbmdMaXZlZFN0YXRlJik7CisgICAgdm9pZCBjb21waWxlSW5UaHJlYWQoTG9uZ0xpdmVkU3Rh
dGUmLCBUaHJlYWREYXRhKik7CiAgICAgCiAgICAgQ29tcGlsYXRpb25SZXN1bHQgZmluYWxpemVX
aXRob3V0Tm90aWZ5aW5nQ2FsbGJhY2soKTsKICAgICB2b2lkIGZpbmFsaXplQW5kTm90aWZ5Q2Fs
bGJhY2soKTsKQEAgLTc5LDYgKzgwLDggQEAgc3RydWN0IFBsYW4gOiBwdWJsaWMgVGhyZWFkU2Fm
ZVJlZkNvdW50ZQogICAgIENvbXBpbGF0aW9uTW9kZSBtb2RlOwogICAgIGNvbnN0IHVuc2lnbmVk
IG9zckVudHJ5Qnl0ZWNvZGVJbmRleDsKICAgICBPcGVyYW5kczxKU1ZhbHVlPiBtdXN0SGFuZGxl
VmFsdWVzOworICAgIAorICAgIFRocmVhZERhdGEqIHRocmVhZERhdGE7CiAKICAgICBSZWZQdHI8
UHJvZmlsZXI6OkNvbXBpbGF0aW9uPiBjb21waWxhdGlvbjsKIApJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdTYWZlcG9pbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHU2FmZXBvaW50LmNwcAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZXBvaW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMCww
ICsxLDc0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJERkdTYWZlcG9pbnQuaCIKKworI2lmIEVO
QUJMRShERkdfSklUKQorCisjaW5jbHVkZSAiREZHUGxhbi5oIgorI2luY2x1ZGUgIkRGR1NjYW5u
YWJsZS5oIgorI2luY2x1ZGUgIkRGR1RocmVhZERhdGEuaCIKKworbmFtZXNwYWNlIEpTQyB7IG5h
bWVzcGFjZSBERkcgeworCitTYWZlcG9pbnQ6OlNhZmVwb2ludChQbGFuJiBwbGFuKQorICAgIDog
bV9wbGFuKHBsYW4pCisgICAgLCBtX2RpZENhbGxCZWdpbihmYWxzZSkKK3sKK30KKworU2FmZXBv
aW50Ojp+U2FmZXBvaW50KCkKK3sKKyAgICBSRUxFQVNFX0FTU0VSVChtX2RpZENhbGxCZWdpbik7
CisgICAgaWYgKFRocmVhZERhdGEqIGRhdGEgPSBtX3BsYW4udGhyZWFkRGF0YSkKKyAgICAgICAg
ZGF0YS0+bV9yaWdodFRvUnVuLmxvY2soKTsKK30KKwordm9pZCBTYWZlcG9pbnQ6OmFkZChTY2Fu
bmFibGUqIHNjYW5uYWJsZSkKK3sKKyAgICBSRUxFQVNFX0FTU0VSVCghbV9kaWRDYWxsQmVnaW4p
OworICAgIG1fc2Nhbm5hYmxlcy5hcHBlbmQoc2Nhbm5hYmxlKTsKK30KKwordm9pZCBTYWZlcG9p
bnQ6OmJlZ2luKCkKK3sKKyAgICBSRUxFQVNFX0FTU0VSVCghbV9kaWRDYWxsQmVnaW4pOworICAg
IGlmIChUaHJlYWREYXRhKiBkYXRhID0gbV9wbGFuLnRocmVhZERhdGEpCisgICAgICAgIGRhdGEt
Pm1fcmlnaHRUb1J1bi51bmxvY2soKTsKKyAgICBtX2RpZENhbGxCZWdpbiA9IHRydWU7Cit9CisK
K3ZvaWQgU2FmZXBvaW50Ojp2aXNpdENoaWxkcmVuKFNsb3RWaXNpdG9yJiB2aXNpdG9yKQorewor
ICAgIFJFTEVBU0VfQVNTRVJUKG1fZGlkQ2FsbEJlZ2luKTsKKyAgICBmb3IgKHVuc2lnbmVkIGkg
PSBtX3NjYW5uYWJsZXMuc2l6ZSgpOyBpLS07KQorICAgICAgICBtX3NjYW5uYWJsZXNbaV0tPnZp
c2l0Q2hpbGRyZW4odmlzaXRvcik7Cit9CisKK30gfSAvLyBuYW1lc3BhY2UgSlNDOjpERkcKKwor
I2VuZGlmIC8vIEVOQUJMRShERkdfSklUKQorCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1NhZmVwb2ludC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHU2FmZXBvaW50LmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1NhZmVwb2ludC5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNjQgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBERkdTYWZl
cG9pbnRfaAorI2RlZmluZSBERkdTYWZlcG9pbnRfaAorCisjaWYgRU5BQkxFKERGR19KSVQpCisK
KyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisKK25hbWVzcGFjZSBKU0MgeworCitjbGFzcyBTbG90
VmlzaXRvcjsKKworbmFtZXNwYWNlIERGRyB7CisKK2NsYXNzIFNjYW5uYWJsZTsKK3N0cnVjdCBQ
bGFuOworCitjbGFzcyBTYWZlcG9pbnQgeworcHVibGljOgorICAgIFNhZmVwb2ludChQbGFuJik7
CisgICAgflNhZmVwb2ludCgpOworICAgIAorICAgIHZvaWQgYWRkKFNjYW5uYWJsZSopOworICAg
IAorICAgIHZvaWQgYmVnaW4oKTsKKyAgICAKKyAgICB2b2lkIHZpc2l0Q2hpbGRyZW4oU2xvdFZp
c2l0b3ImKTsKKyAgICAKK3ByaXZhdGU6CisgICAgUGxhbiYgbV9wbGFuOworICAgIFZlY3RvcjxT
Y2FubmFibGUqPiBtX3NjYW5uYWJsZXM7CisgICAgYm9vbCBtX2RpZENhbGxCZWdpbjsKK307CisK
K30gfSAvLyBuYW1lc3BhY2UgSlNDOjpERkcKKworI2VuZGlmIC8vIEVOQUJMRShERkdfSklUKQor
CisjZW5kaWYgLy8gREZHU2FmZXBvaW50X2gKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdTY2FubmFibGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1NjYW5uYWJsZS5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdTY2FubmFibGUuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDUwIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgREZHU2Nh
bm5hYmxlX2gKKyNkZWZpbmUgREZHU2Nhbm5hYmxlX2gKKworI2lmIEVOQUJMRShERkdfSklUKQor
CituYW1lc3BhY2UgSlNDIHsKKworY2xhc3MgU2xvdFZpc2l0b3I7CisKK25hbWVzcGFjZSBERkcg
eworCitjbGFzcyBTY2FubmFibGUgeworcHVibGljOgorICAgIFNjYW5uYWJsZSgpIHsgfQorICAg
IHZpcnR1YWwgflNjYW5uYWJsZSgpIHsgfQorICAgIAorICAgIHZpcnR1YWwgdm9pZCB2aXNpdENo
aWxkcmVuKFNsb3RWaXNpdG9yJikgPSAwOworfTsKKworfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkRG
RworCisjZW5kaWYgLy8gRU5BQkxFKERGR19KSVQpCisKKyNlbmRpZiAvLyBERkdTY2FubmFibGVf
aAorCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1RocmVhZERhdGEuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVGhyZWFkRGF0YS5jcHAJ
KHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1RocmVhZERhdGEu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNDcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IkRGR1RocmVhZERhdGEuaCIKKworI2lmIEVOQUJMRShERkdfSklUKQorCituYW1lc3BhY2UgSlND
IHsgbmFtZXNwYWNlIERGRyB7CisKK1RocmVhZERhdGE6OlRocmVhZERhdGEoV29ya2xpc3QqIHdv
cmtsaXN0KQorICAgIDogbV93b3JrbGlzdCh3b3JrbGlzdCkKKyAgICAsIG1faWRlbnRpZmllcigw
KQorICAgICwgbV9zYWZlcG9pbnQobnVsbHB0cikKK3sKK30KKworVGhyZWFkRGF0YTo6flRocmVh
ZERhdGEoKQoreworfQorCit9IH0gLy8gbmFtZXNwYWNlIEpTQzo6REZHCisKKyNlbmRpZiAvLyBF
TkFCTEUoREZHX0pJVCkKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdUaHJl
YWREYXRhLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdUaHJl
YWREYXRhLmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Ro
cmVhZERhdGEuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDU5IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgREZHVGhyZWFkRGF0YV9o
CisjZGVmaW5lIERGR1RocmVhZERhdGFfaAorCisjaWYgRU5BQkxFKERGR19KSVQpCisKKyNpbmNs
dWRlIDx3dGYvVGhyZWFkaW5nLmg+CisjaW5jbHVkZSA8d3RmL1RocmVhZGluZ1ByaW1pdGl2ZXMu
aD4KKworbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgeworCitjbGFzcyBTYWZlcG9pbnQ7
CitjbGFzcyBXb3JrbGlzdDsKKworY2xhc3MgVGhyZWFkRGF0YSB7CitwdWJsaWM6CisgICAgVGhy
ZWFkRGF0YShXb3JrbGlzdCopOworICAgIH5UaHJlYWREYXRhKCk7CisgICAgCitwcml2YXRlOgor
ICAgIGZyaWVuZCBjbGFzcyBTYWZlcG9pbnQ7CisgICAgZnJpZW5kIGNsYXNzIFdvcmtsaXN0Owor
ICAgIAorICAgIFdvcmtsaXN0KiBtX3dvcmtsaXN0OworICAgIFRocmVhZElkZW50aWZpZXIgbV9p
ZGVudGlmaWVyOworICAgIE11dGV4IG1fcmlnaHRUb1J1bjsKKyAgICBTYWZlcG9pbnQqIG1fc2Fm
ZXBvaW50OworfTsKKworfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkRGRworCisjZW5kaWYgLy8gRU5B
QkxFKERGR19KSVQpCisKKyNlbmRpZiAvLyBERkdUaHJlYWREYXRhX2gKKwpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdUaHVua3MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHVGh1bmtzLmNwcAkocmV2aXNpb24gMTYzNzUyKQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdUaHVua3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0z
Miw2ICszMiw3IEBACiAjaW5jbHVkZSAiREZHT1NSRXhpdENvbXBpbGVyLmgiCiAjaW5jbHVkZSAi
RlBSSW5mby5oIgogI2luY2x1ZGUgIkdQUkluZm8uaCIKKyNpbmNsdWRlICJMaW5rQnVmZmVyLmgi
CiAjaW5jbHVkZSAiTWFjcm9Bc3NlbWJsZXIuaCIKIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFj
ZSBERkcgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdXb3JrbGlzdC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdXb3JrbGlzdC5jcHAJ
KHJldmlzaW9uIDE2Mzc1MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHV29ya2xp
c3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiQ29kZUJs
b2NrLmgiCiAjaW5jbHVkZSAiRGVmZXJHQy5oIgogI2luY2x1ZGUgIkRGR0xvbmdMaXZlZFN0YXRl
LmgiCisjaW5jbHVkZSAiREZHU2FmZXBvaW50LmgiCiAjaW5jbHVkZSA8bXV0ZXg+CiAKIG5hbWVz
cGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKQEAgLTU3LDggKzU4LDcgQEAgdm9pZCBXb3JrbGlz
dDo6ZmluaXNoQ3JlYXRpb24odW5zaWduZWQgbgogewogICAgIFJFTEVBU0VfQVNTRVJUKG51bWJl
ck9mVGhyZWFkcyk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gbnVtYmVyT2ZUaHJlYWRzOyBpLS07
KSB7Ci0gICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxUaHJlYWREYXRhPiBkYXRhID0gc3RkOjptYWtl
X3VuaXF1ZTxUaHJlYWREYXRhPigpOwotICAgICAgICBkYXRhLT5tX3dvcmtsaXN0ID0gdGhpczsK
KyAgICAgICAgc3RkOjp1bmlxdWVfcHRyPFRocmVhZERhdGE+IGRhdGEgPSBzdGQ6Om1ha2VfdW5p
cXVlPFRocmVhZERhdGE+KHRoaXMpOwogICAgICAgICBkYXRhLT5tX2lkZW50aWZpZXIgPSBjcmVh
dGVUaHJlYWQodGhyZWFkRnVuY3Rpb24sIGRhdGEuZ2V0KCksICJKU0MgQ29tcGlsYXRpb24gVGhy
ZWFkIik7CiAgICAgICAgIG1fdGhyZWFkcy5hcHBlbmQoc3RkOjptb3ZlKGRhdGEpKTsKICAgICB9
CkBAIC0yMTAsNiArMjEwLDEyIEBAIHZvaWQgV29ya2xpc3Q6OnZpc2l0Q2hpbGRyZW4oU2xvdFZp
c2l0b3IKICAgICAgICAgaXRlci0+a2V5LnZpc2l0Q2hpbGRyZW4oY29kZUJsb2Nrcyk7CiAgICAg
ICAgIGl0ZXItPnZhbHVlLT52aXNpdENoaWxkcmVuKHZpc2l0b3IsIGNvZGVCbG9ja3MpOwogICAg
IH0KKyAgICAKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSBtX3RocmVhZHMuc2l6ZSgpOyBpLS07KSB7
CisgICAgICAgIFRocmVhZERhdGEqIGRhdGEgPSBtX3RocmVhZHNbaV0uZ2V0KCk7CisgICAgICAg
IGlmIChTYWZlcG9pbnQqIHNhZmVwb2ludCA9IGRhdGEtPm1fc2FmZXBvaW50KQorICAgICAgICAg
ICAgc2FmZXBvaW50LT52aXNpdENoaWxkcmVuKHZpc2l0b3IpOworICAgIH0KIH0KIAogc2l6ZV90
IFdvcmtsaXN0OjpxdWV1ZUxlbmd0aCgpCkBAIC0yNjUsNyArMjcxLDcgQEAgdm9pZCBXb3JrbGlz
dDo6cnVuVGhyZWFkKFRocmVhZERhdGEqIGRhdAogICAgICAgICAgICAgaWYgKE9wdGlvbnM6OnZl
cmJvc2VDb21waWxhdGlvblF1ZXVlKCkpCiAgICAgICAgICAgICAgICAgZGF0YUxvZygqdGhpcywg
IjogQ29tcGlsaW5nICIsIHBsYW4tPmtleSgpLCAiIGFzeW5jaHJvbm91c2x5XG4iKTsKICAgICAg
ICAgCi0gICAgICAgICAgICBwbGFuLT5jb21waWxlSW5UaHJlYWQobG9uZ0xpdmVkU3RhdGUpOwor
ICAgICAgICAgICAgcGxhbi0+Y29tcGlsZUluVGhyZWFkKGxvbmdMaXZlZFN0YXRlLCBkYXRhKTsK
ICAgICAgICAgfQogICAgICAgICAKICAgICAgICAgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdXb3JrbGlzdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHV29ya2xpc3QuaAkocmV2aXNpb24gMTYzNzUyKQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdXb3JrbGlzdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2ICszMSw3IEBA
CiAjaWYgRU5BQkxFKERGR19KSVQpCiAKICNpbmNsdWRlICJERkdQbGFuLmgiCisjaW5jbHVkZSAi
REZHVGhyZWFkRGF0YS5oIgogI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgogI2luY2x1ZGUgPHd0Zi9I
YXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CkBAIC03NywxMiArNzgsNiBA
QCBwdWJsaWM6CiAgICAgdm9pZCBkdW1wKFByaW50U3RyZWFtJikgY29uc3Q7CiAgICAgCiBwcml2
YXRlOgotICAgIHN0cnVjdCBUaHJlYWREYXRhIHsKLSAgICAgICAgV29ya2xpc3QqIG1fd29ya2xp
c3Q7Ci0gICAgICAgIFRocmVhZElkZW50aWZpZXIgbV9pZGVudGlmaWVyOwotICAgICAgICBNdXRl
eCBtX3JpZ2h0VG9SdW47Ci0gICAgfTsKLSAgICAKICAgICBXb3JrbGlzdCgpOwogICAgIHZvaWQg
ZmluaXNoQ3JlYXRpb24odW5zaWduZWQgbnVtYmVyT2ZUaHJlYWRzKTsKICAgICAKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ29tcGlsZS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDb21waWxlLmNwcAkocmV2aXNpb24gMTYzNzUyKQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDb21waWxlLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkNvZGVCbG9ja1dpdGhKSVRUeXBlLmgiCiAj
aW5jbHVkZSAiQ0NhbGxIZWxwZXJzLmgiCiAjaW5jbHVkZSAiREZHQ29tbW9uLmgiCisjaW5jbHVk
ZSAiREZHR3JhcGhTYWZlcG9pbnQuaCIKICNpbmNsdWRlICJEYXRhVmlldy5oIgogI2luY2x1ZGUg
IkRpc2Fzc2VtYmxlci5oIgogI2luY2x1ZGUgIkZUTEV4aXRUaHVua0dlbmVyYXRvci5oIgpAQCAt
NDUyLDcwICs0NTMsNzQgQEAgdm9pZCBjb21waWxlKFN0YXRlJiBzdGF0ZSkKIHsKICAgICBjaGFy
KiBlcnJvciA9IDA7CiAgICAgCi0gICAgTExWTU1DSklUQ29tcGlsZXJPcHRpb25zIG9wdGlvbnM7
Ci0gICAgbGx2bS0+SW5pdGlhbGl6ZU1DSklUQ29tcGlsZXJPcHRpb25zKCZvcHRpb25zLCBzaXpl
b2Yob3B0aW9ucykpOwotICAgIG9wdGlvbnMuT3B0TGV2ZWwgPSBPcHRpb25zOjpsbHZtQmFja2Vu
ZE9wdGltaXphdGlvbkxldmVsKCk7Ci0gICAgb3B0aW9ucy5Ob0ZyYW1lUG9pbnRlckVsaW0gPSB0
cnVlOwotICAgIGlmIChPcHRpb25zOjp1c2VMTFZNU21hbGxDb2RlTW9kZWwoKSkKLSAgICAgICAg
b3B0aW9ucy5Db2RlTW9kZWwgPSBMTFZNQ29kZU1vZGVsU21hbGw7Ci0gICAgb3B0aW9ucy5FbmFi
bGVGYXN0SVNlbCA9IE9wdGlvbnM6OmVuYWJsZUxMVk1GYXN0SVNlbCgpOwotICAgIG9wdGlvbnMu
TUNKTU0gPSBsbHZtLT5DcmVhdGVTaW1wbGVNQ0pJVE1lbW9yeU1hbmFnZXIoCi0gICAgICAgICZz
dGF0ZSwgbW1BbGxvY2F0ZUNvZGVTZWN0aW9uLCBtbUFsbG9jYXRlRGF0YVNlY3Rpb24sIG1tQXBw
bHlQZXJtaXNzaW9ucywgbW1EZXN0cm95KTsKLSAgICAKLSAgICBMTFZNRXhlY3V0aW9uRW5naW5l
UmVmIGVuZ2luZTsKLSAgICAKLSAgICBpZiAobGx2bS0+Q3JlYXRlTUNKSVRDb21waWxlckZvck1v
ZHVsZSgmZW5naW5lLCBzdGF0ZS5tb2R1bGUsICZvcHRpb25zLCBzaXplb2Yob3B0aW9ucyksICZl
cnJvcikpIHsKLSAgICAgICAgZGF0YUxvZygiRkFUQUw6IENvdWxkIG5vdCBjcmVhdGUgTExWTSBl
eGVjdXRpb24gZW5naW5lOiAiLCBlcnJvciwgIlxuIik7Ci0gICAgICAgIENSQVNIKCk7Ci0gICAg
fQotCi0gICAgTExWTVBhc3NNYW5hZ2VyUmVmIGZ1bmN0aW9uUGFzc2VzID0gMDsKLSAgICBMTFZN
UGFzc01hbmFnZXJSZWYgbW9kdWxlUGFzc2VzOwotICAgIAotICAgIGlmIChPcHRpb25zOjpsbHZt
U2ltcGxlT3B0KCkpIHsKLSAgICAgICAgbW9kdWxlUGFzc2VzID0gbGx2bS0+Q3JlYXRlUGFzc01h
bmFnZXIoKTsKLSAgICAgICAgbGx2bS0+QWRkVGFyZ2V0RGF0YShsbHZtLT5HZXRFeGVjdXRpb25F
bmdpbmVUYXJnZXREYXRhKGVuZ2luZSksIG1vZHVsZVBhc3Nlcyk7Ci0gICAgICAgIGxsdm0tPkFk
ZFByb21vdGVNZW1vcnlUb1JlZ2lzdGVyUGFzcyhtb2R1bGVQYXNzZXMpOwotICAgICAgICBsbHZt
LT5BZGRDb25zdGFudFByb3BhZ2F0aW9uUGFzcyhtb2R1bGVQYXNzZXMpOwotICAgICAgICBsbHZt
LT5BZGRJbnN0cnVjdGlvbkNvbWJpbmluZ1Bhc3MobW9kdWxlUGFzc2VzKTsKLSAgICAgICAgbGx2
bS0+QWRkQmFzaWNBbGlhc0FuYWx5c2lzUGFzcyhtb2R1bGVQYXNzZXMpOwotICAgICAgICBsbHZt
LT5BZGRUeXBlQmFzZWRBbGlhc0FuYWx5c2lzUGFzcyhtb2R1bGVQYXNzZXMpOwotICAgICAgICBs
bHZtLT5BZGRHVk5QYXNzKG1vZHVsZVBhc3Nlcyk7Ci0gICAgICAgIGxsdm0tPkFkZENGR1NpbXBs
aWZpY2F0aW9uUGFzcyhtb2R1bGVQYXNzZXMpOwotICAgICAgICBsbHZtLT5SdW5QYXNzTWFuYWdl
cihtb2R1bGVQYXNzZXMsIHN0YXRlLm1vZHVsZSk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgTExW
TVBhc3NNYW5hZ2VyQnVpbGRlclJlZiBwYXNzQnVpbGRlciA9IGxsdm0tPlBhc3NNYW5hZ2VyQnVp
bGRlckNyZWF0ZSgpOwotICAgICAgICBsbHZtLT5QYXNzTWFuYWdlckJ1aWxkZXJTZXRPcHRMZXZl
bChwYXNzQnVpbGRlciwgT3B0aW9uczo6bGx2bU9wdGltaXphdGlvbkxldmVsKCkpOwotICAgICAg
ICBsbHZtLT5QYXNzTWFuYWdlckJ1aWxkZXJTZXRTaXplTGV2ZWwocGFzc0J1aWxkZXIsIE9wdGlv
bnM6Omxsdm1TaXplTGV2ZWwoKSk7Ci0gICAgICAgIAotICAgICAgICBmdW5jdGlvblBhc3NlcyA9
IGxsdm0tPkNyZWF0ZUZ1bmN0aW9uUGFzc01hbmFnZXJGb3JNb2R1bGUoc3RhdGUubW9kdWxlKTsK
LSAgICAgICAgbW9kdWxlUGFzc2VzID0gbGx2bS0+Q3JlYXRlUGFzc01hbmFnZXIoKTsKLSAgICAg
ICAgCi0gICAgICAgIGxsdm0tPkFkZFRhcmdldERhdGEobGx2bS0+R2V0RXhlY3V0aW9uRW5naW5l
VGFyZ2V0RGF0YShlbmdpbmUpLCBtb2R1bGVQYXNzZXMpOwotICAgICAgICAKLSAgICAgICAgbGx2
bS0+UGFzc01hbmFnZXJCdWlsZGVyUG9wdWxhdGVGdW5jdGlvblBhc3NNYW5hZ2VyKHBhc3NCdWls
ZGVyLCBmdW5jdGlvblBhc3Nlcyk7Ci0gICAgICAgIGxsdm0tPlBhc3NNYW5hZ2VyQnVpbGRlclBv
cHVsYXRlTW9kdWxlUGFzc01hbmFnZXIocGFzc0J1aWxkZXIsIG1vZHVsZVBhc3Nlcyk7Ci0gICAg
ICAgIAotICAgICAgICBsbHZtLT5QYXNzTWFuYWdlckJ1aWxkZXJEaXNwb3NlKHBhc3NCdWlsZGVy
KTsKLSAgICAgICAgCi0gICAgICAgIGxsdm0tPkluaXRpYWxpemVGdW5jdGlvblBhc3NNYW5hZ2Vy
KGZ1bmN0aW9uUGFzc2VzKTsKLSAgICAgICAgZm9yIChMVmFsdWUgZnVuY3Rpb24gPSBsbHZtLT5H
ZXRGaXJzdEZ1bmN0aW9uKHN0YXRlLm1vZHVsZSk7IGZ1bmN0aW9uOyBmdW5jdGlvbiA9IGxsdm0t
PkdldE5leHRGdW5jdGlvbihmdW5jdGlvbikpCi0gICAgICAgICAgICBsbHZtLT5SdW5GdW5jdGlv
blBhc3NNYW5hZ2VyKGZ1bmN0aW9uUGFzc2VzLCBmdW5jdGlvbik7Ci0gICAgICAgIGxsdm0tPkZp
bmFsaXplRnVuY3Rpb25QYXNzTWFuYWdlcihmdW5jdGlvblBhc3Nlcyk7Ci0gICAgICAgIAotICAg
ICAgICBsbHZtLT5SdW5QYXNzTWFuYWdlcihtb2R1bGVQYXNzZXMsIHN0YXRlLm1vZHVsZSk7Ci0g
ICAgfQotCi0gICAgaWYgKERGRzo6c2hvdWxkU2hvd0Rpc2Fzc2VtYmx5KCkgfHwgREZHOjp2ZXJi
b3NlQ29tcGlsYXRpb25FbmFibGVkKCkpCi0gICAgICAgIHN0YXRlLmR1bXBTdGF0ZSgiYWZ0ZXIg
b3B0aW1pemF0aW9uIik7Ci0gICAgCi0gICAgLy8gRklYTUU6IE5lZWQgdG8gYWRkIHN1cHBvcnQg
Zm9yIHRoZSBjYXNlIHdoZXJlIEpJVCBtZW1vcnkgYWxsb2NhdGlvbiBmYWlsZWQuCi0gICAgLy8g
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMzYyMAotICAgIHN0YXRl
LmdlbmVyYXRlZEZ1bmN0aW9uID0gcmVpbnRlcnByZXRfY2FzdDxHZW5lcmF0ZWRGdW5jdGlvbj4o
bGx2bS0+R2V0UG9pbnRlclRvR2xvYmFsKGVuZ2luZSwgc3RhdGUuZnVuY3Rpb24pKTsKLSAgICBp
ZiAoZnVuY3Rpb25QYXNzZXMpCi0gICAgICAgIGxsdm0tPkRpc3Bvc2VQYXNzTWFuYWdlcihmdW5j
dGlvblBhc3Nlcyk7Ci0gICAgbGx2bS0+RGlzcG9zZVBhc3NNYW5hZ2VyKG1vZHVsZVBhc3Nlcyk7
Ci0gICAgbGx2bS0+RGlzcG9zZUV4ZWN1dGlvbkVuZ2luZShlbmdpbmUpOworICAgIHsKKyAgICAg
ICAgR3JhcGhTYWZlcG9pbnQgc2FmZXBvaW50KHN0YXRlLmdyYXBoKTsKKyAgICAgICAgCisgICAg
ICAgIExMVk1NQ0pJVENvbXBpbGVyT3B0aW9ucyBvcHRpb25zOworICAgICAgICBsbHZtLT5Jbml0
aWFsaXplTUNKSVRDb21waWxlck9wdGlvbnMoJm9wdGlvbnMsIHNpemVvZihvcHRpb25zKSk7Cisg
ICAgICAgIG9wdGlvbnMuT3B0TGV2ZWwgPSBPcHRpb25zOjpsbHZtQmFja2VuZE9wdGltaXphdGlv
bkxldmVsKCk7CisgICAgICAgIG9wdGlvbnMuTm9GcmFtZVBvaW50ZXJFbGltID0gdHJ1ZTsKKyAg
ICAgICAgaWYgKE9wdGlvbnM6OnVzZUxMVk1TbWFsbENvZGVNb2RlbCgpKQorICAgICAgICAgICAg
b3B0aW9ucy5Db2RlTW9kZWwgPSBMTFZNQ29kZU1vZGVsU21hbGw7CisgICAgICAgIG9wdGlvbnMu
RW5hYmxlRmFzdElTZWwgPSBPcHRpb25zOjplbmFibGVMTFZNRmFzdElTZWwoKTsKKyAgICAgICAg
b3B0aW9ucy5NQ0pNTSA9IGxsdm0tPkNyZWF0ZVNpbXBsZU1DSklUTWVtb3J5TWFuYWdlcigKKyAg
ICAgICAgICAgICZzdGF0ZSwgbW1BbGxvY2F0ZUNvZGVTZWN0aW9uLCBtbUFsbG9jYXRlRGF0YVNl
Y3Rpb24sIG1tQXBwbHlQZXJtaXNzaW9ucywgbW1EZXN0cm95KTsKKyAgICAKKyAgICAgICAgTExW
TUV4ZWN1dGlvbkVuZ2luZVJlZiBlbmdpbmU7CisgICAgCisgICAgICAgIGlmIChsbHZtLT5DcmVh
dGVNQ0pJVENvbXBpbGVyRm9yTW9kdWxlKCZlbmdpbmUsIHN0YXRlLm1vZHVsZSwgJm9wdGlvbnMs
IHNpemVvZihvcHRpb25zKSwgJmVycm9yKSkgeworICAgICAgICAgICAgZGF0YUxvZygiRkFUQUw6
IENvdWxkIG5vdCBjcmVhdGUgTExWTSBleGVjdXRpb24gZW5naW5lOiAiLCBlcnJvciwgIlxuIik7
CisgICAgICAgICAgICBDUkFTSCgpOworICAgICAgICB9CisKKyAgICAgICAgTExWTVBhc3NNYW5h
Z2VyUmVmIGZ1bmN0aW9uUGFzc2VzID0gMDsKKyAgICAgICAgTExWTVBhc3NNYW5hZ2VyUmVmIG1v
ZHVsZVBhc3NlczsKKyAgICAKKyAgICAgICAgaWYgKE9wdGlvbnM6Omxsdm1TaW1wbGVPcHQoKSkg
eworICAgICAgICAgICAgbW9kdWxlUGFzc2VzID0gbGx2bS0+Q3JlYXRlUGFzc01hbmFnZXIoKTsK
KyAgICAgICAgICAgIGxsdm0tPkFkZFRhcmdldERhdGEobGx2bS0+R2V0RXhlY3V0aW9uRW5naW5l
VGFyZ2V0RGF0YShlbmdpbmUpLCBtb2R1bGVQYXNzZXMpOworICAgICAgICAgICAgbGx2bS0+QWRk
UHJvbW90ZU1lbW9yeVRvUmVnaXN0ZXJQYXNzKG1vZHVsZVBhc3Nlcyk7CisgICAgICAgICAgICBs
bHZtLT5BZGRDb25zdGFudFByb3BhZ2F0aW9uUGFzcyhtb2R1bGVQYXNzZXMpOworICAgICAgICAg
ICAgbGx2bS0+QWRkSW5zdHJ1Y3Rpb25Db21iaW5pbmdQYXNzKG1vZHVsZVBhc3Nlcyk7CisgICAg
ICAgICAgICBsbHZtLT5BZGRCYXNpY0FsaWFzQW5hbHlzaXNQYXNzKG1vZHVsZVBhc3Nlcyk7Cisg
ICAgICAgICAgICBsbHZtLT5BZGRUeXBlQmFzZWRBbGlhc0FuYWx5c2lzUGFzcyhtb2R1bGVQYXNz
ZXMpOworICAgICAgICAgICAgbGx2bS0+QWRkR1ZOUGFzcyhtb2R1bGVQYXNzZXMpOworICAgICAg
ICAgICAgbGx2bS0+QWRkQ0ZHU2ltcGxpZmljYXRpb25QYXNzKG1vZHVsZVBhc3Nlcyk7CisgICAg
ICAgICAgICBsbHZtLT5SdW5QYXNzTWFuYWdlcihtb2R1bGVQYXNzZXMsIHN0YXRlLm1vZHVsZSk7
CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBMTFZNUGFzc01hbmFnZXJCdWlsZGVyUmVm
IHBhc3NCdWlsZGVyID0gbGx2bS0+UGFzc01hbmFnZXJCdWlsZGVyQ3JlYXRlKCk7CisgICAgICAg
ICAgICBsbHZtLT5QYXNzTWFuYWdlckJ1aWxkZXJTZXRPcHRMZXZlbChwYXNzQnVpbGRlciwgT3B0
aW9uczo6bGx2bU9wdGltaXphdGlvbkxldmVsKCkpOworICAgICAgICAgICAgbGx2bS0+UGFzc01h
bmFnZXJCdWlsZGVyU2V0U2l6ZUxldmVsKHBhc3NCdWlsZGVyLCBPcHRpb25zOjpsbHZtU2l6ZUxl
dmVsKCkpOworICAgICAgICAKKyAgICAgICAgICAgIGZ1bmN0aW9uUGFzc2VzID0gbGx2bS0+Q3Jl
YXRlRnVuY3Rpb25QYXNzTWFuYWdlckZvck1vZHVsZShzdGF0ZS5tb2R1bGUpOworICAgICAgICAg
ICAgbW9kdWxlUGFzc2VzID0gbGx2bS0+Q3JlYXRlUGFzc01hbmFnZXIoKTsKKyAgICAgICAgCisg
ICAgICAgICAgICBsbHZtLT5BZGRUYXJnZXREYXRhKGxsdm0tPkdldEV4ZWN1dGlvbkVuZ2luZVRh
cmdldERhdGEoZW5naW5lKSwgbW9kdWxlUGFzc2VzKTsKKyAgICAgICAgCisgICAgICAgICAgICBs
bHZtLT5QYXNzTWFuYWdlckJ1aWxkZXJQb3B1bGF0ZUZ1bmN0aW9uUGFzc01hbmFnZXIocGFzc0J1
aWxkZXIsIGZ1bmN0aW9uUGFzc2VzKTsKKyAgICAgICAgICAgIGxsdm0tPlBhc3NNYW5hZ2VyQnVp
bGRlclBvcHVsYXRlTW9kdWxlUGFzc01hbmFnZXIocGFzc0J1aWxkZXIsIG1vZHVsZVBhc3Nlcyk7
CisgICAgICAgIAorICAgICAgICAgICAgbGx2bS0+UGFzc01hbmFnZXJCdWlsZGVyRGlzcG9zZShw
YXNzQnVpbGRlcik7CisgICAgICAgIAorICAgICAgICAgICAgbGx2bS0+SW5pdGlhbGl6ZUZ1bmN0
aW9uUGFzc01hbmFnZXIoZnVuY3Rpb25QYXNzZXMpOworICAgICAgICAgICAgZm9yIChMVmFsdWUg
ZnVuY3Rpb24gPSBsbHZtLT5HZXRGaXJzdEZ1bmN0aW9uKHN0YXRlLm1vZHVsZSk7IGZ1bmN0aW9u
OyBmdW5jdGlvbiA9IGxsdm0tPkdldE5leHRGdW5jdGlvbihmdW5jdGlvbikpCisgICAgICAgICAg
ICAgICAgbGx2bS0+UnVuRnVuY3Rpb25QYXNzTWFuYWdlcihmdW5jdGlvblBhc3NlcywgZnVuY3Rp
b24pOworICAgICAgICAgICAgbGx2bS0+RmluYWxpemVGdW5jdGlvblBhc3NNYW5hZ2VyKGZ1bmN0
aW9uUGFzc2VzKTsKKyAgICAgICAgCisgICAgICAgICAgICBsbHZtLT5SdW5QYXNzTWFuYWdlciht
b2R1bGVQYXNzZXMsIHN0YXRlLm1vZHVsZSk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoREZH
OjpzaG91bGRTaG93RGlzYXNzZW1ibHkoKSB8fCBERkc6OnZlcmJvc2VDb21waWxhdGlvbkVuYWJs
ZWQoKSkKKyAgICAgICAgICAgIHN0YXRlLmR1bXBTdGF0ZSgiYWZ0ZXIgb3B0aW1pemF0aW9uIik7
CisgICAgCisgICAgICAgIC8vIEZJWE1FOiBOZWVkIHRvIGFkZCBzdXBwb3J0IGZvciB0aGUgY2Fz
ZSB3aGVyZSBKSVQgbWVtb3J5IGFsbG9jYXRpb24gZmFpbGVkLgorICAgICAgICAvLyBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEzNjIwCisgICAgICAgIHN0YXRlLmdl
bmVyYXRlZEZ1bmN0aW9uID0gcmVpbnRlcnByZXRfY2FzdDxHZW5lcmF0ZWRGdW5jdGlvbj4obGx2
bS0+R2V0UG9pbnRlclRvR2xvYmFsKGVuZ2luZSwgc3RhdGUuZnVuY3Rpb24pKTsKKyAgICAgICAg
aWYgKGZ1bmN0aW9uUGFzc2VzKQorICAgICAgICAgICAgbGx2bS0+RGlzcG9zZVBhc3NNYW5hZ2Vy
KGZ1bmN0aW9uUGFzc2VzKTsKKyAgICAgICAgbGx2bS0+RGlzcG9zZVBhc3NNYW5hZ2VyKG1vZHVs
ZVBhc3Nlcyk7CisgICAgICAgIGxsdm0tPkRpc3Bvc2VFeGVjdXRpb25FbmdpbmUoZW5naW5lKTsK
KyAgICB9CiAKICAgICBpZiAoc2hvdWxkU2hvd0Rpc2Fzc2VtYmx5KCkpIHsKICAgICAgICAgZm9y
ICh1bnNpZ25lZCBpID0gMDsgaSA8IHN0YXRlLmppdENvZGUtPmhhbmRsZXMoKS5zaXplKCk7ICsr
aSkgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMaW5rLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExpbmsuY3BwCShyZXZpc2lvbiAx
NjM3NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExpbmsuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0zMCw3ICszMCw2IEBACiAKICNpbmNsdWRlICJBcml0eUNoZWNrRmFpbFJldHVy
blRodW5rcy5oIgogI2luY2x1ZGUgIkNDYWxsSGVscGVycy5oIgotI2luY2x1ZGUgIkNhbGxGcmFt
ZUlubGluZXMuaCIKICNpbmNsdWRlICJDb2RlQmxvY2tXaXRoSklUVHlwZS5oIgogI2luY2x1ZGUg
IkRGR0NvbW1vbi5oIgogI2luY2x1ZGUgIkZUTEpJVENvZGUuaCIKQEAgLTM4LDYgKzM3LDcgQEAK
ICNpbmNsdWRlICJKSVRTdHVicy5oIgogI2luY2x1ZGUgIkxMVk1BUEkuaCIKICNpbmNsdWRlICJM
aW5rQnVmZmVyLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIlByb2ZpbGVy
Q29tcGlsYXRpb24uaCIKICNpbmNsdWRlICJWaXJ0dWFsUmVnaXN0ZXIuaCIKIApJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPU1JFeGl0Q29tcGlsZXIuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT1NSRXhpdENvbXBpbGVyLmNwcAkocmV2
aXNpb24gMTYzNzUyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPU1JFeGl0Q29t
cGlsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiRlRM
SklUQ29kZS5oIgogI2luY2x1ZGUgIkZUTE9TUkV4aXQuaCIKICNpbmNsdWRlICJGVExTYXZlUmVz
dG9yZS5oIgorI2luY2x1ZGUgIkxpbmtCdWZmZXIuaCIKICNpbmNsdWRlICJNYXhGcmFtZUV4dGVu
dEZvclNsb3dQYXRoQ2FsbC5oIgogI2luY2x1ZGUgIk9wZXJhbmRzSW5saW5lcy5oIgogI2luY2x1
ZGUgIk9wZXJhdGlvbnMuaCIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMU2xv
d1BhdGhDYWxsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZU
TFNsb3dQYXRoQ2FsbC5jcHAJKHJldmlzaW9uIDE2Mzc1MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9mdGwvRlRMU2xvd1BhdGhDYWxsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjksOSArMjks
OSBAQAogI2lmIEVOQUJMRShGVExfSklUKQogCiAjaW5jbHVkZSAiQ0NhbGxIZWxwZXJzLmgiCi0j
aW5jbHVkZSAiQ2FsbEZyYW1lSW5saW5lcy5oIgogI2luY2x1ZGUgIkZUTFN0YXRlLmgiCiAjaW5j
bHVkZSAiR1BSSW5mby5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpT
QyB7IG5hbWVzcGFjZSBGVEwgewogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZU
TFRodW5rcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExU
aHVua3MuY3BwCShyZXZpc2lvbiAxNjM3NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRs
L0ZUTFRodW5rcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEyNyw3ICsxMjcsNyBAQCBNYWNyb0Fz
c2VtYmxlckNvZGVSZWYgc2xvd1BhdGhDYWxsVGh1bmtHCiAgICAgaml0LnByZXNlcnZlUmV0dXJu
QWRkcmVzc0FmdGVyQ2FsbChHUFJJbmZvOjpub25BcmdHUFIwKTsKICAgICBqaXQuc3RvcmVQdHIo
R1BSSW5mbzo6bm9uQXJnR1BSMCwgQXNzZW1ibHlIZWxwZXJzOjpBZGRyZXNzKE1hY3JvQXNzZW1i
bGVyOjpzdGFja1BvaW50ZXJSZWdpc3Rlciwga2V5Lm9mZnNldCgpKSk7CiAgICAgCi0gICAgSklU
Q29tcGlsZXI6OkNhbGwgY2FsbCA9IGppdC5jYWxsKCk7CisgICAgQXNzZW1ibHlIZWxwZXJzOjpD
YWxsIGNhbGwgPSBqaXQuY2FsbCgpOwogCiAgICAgLy8gRklYTUU6IENTdGFjayAtIE5lZWQgdG8g
ZG8gc29tZXRoaW5nIGxpa2Ugaml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAgaml0Lmxv
YWRQdHIoQXNzZW1ibHlIZWxwZXJzOjpBZGRyZXNzKE1hY3JvQXNzZW1ibGVyOjpzdGFja1BvaW50
ZXJSZWdpc3Rlciwga2V5Lm9mZnNldCgpKSwgR1BSSW5mbzo6bm9uUHJlc2VydmVkTm9uUmV0dXJu
R1BSKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1Nsb3RWaXNpdG9yLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvU2xvdFZpc2l0b3IuaAkocmV2
aXNpb24gMTYzNzUyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvU2xvdFZpc2l0b3Iu
aAkod29ya2luZyBjb3B5KQpAQCAtNjgsNiArNjgsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBhcHBl
bmRVbmJhcnJpZXJlZFZhbHVlKEpTVmFsdWUqKTsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgog
ICAgIHZvaWQgYXBwZW5kVW5iYXJyaWVyZWRXZWFrKFdlYWs8VD4qKTsKKyAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBUPgorICAgIHZvaWQgYXBwZW5kVW5iYXJyaWVyZWRSZWFkT25seVBvaW50ZXIoVCop
OworICAgIHZvaWQgYXBwZW5kVW5iYXJyaWVyZWRSZWFkT25seVZhbHVlKEpTVmFsdWUpOwogICAg
IHZvaWQgdW5jb25kaXRpb25hbGx5QXBwZW5kKEpTQ2VsbCopOwogICAgIAogICAgIHZvaWQgYWRk
T3BhcXVlUm9vdCh2b2lkKik7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TbG90
VmlzaXRvcklubGluZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVh
cC9TbG90VmlzaXRvcklubGluZXMuaAkocmV2aXNpb24gMTYzNzUyKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2hlYXAvU2xvdFZpc2l0b3JJbmxpbmVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTUx
LDYgKzUxLDEyIEBAIGlubGluZSB2b2lkIFNsb3RWaXNpdG9yOjphcHBlbmRVbmJhcnJpZXIKICAg
ICBpbnRlcm5hbEFwcGVuZChzbG90LCBjZWxsKTsKIH0KIAordGVtcGxhdGU8dHlwZW5hbWUgVD4K
K2lubGluZSB2b2lkIFNsb3RWaXNpdG9yOjphcHBlbmRVbmJhcnJpZXJlZFJlYWRPbmx5UG9pbnRl
cihUKiBjZWxsKQoreworICAgIGludGVybmFsQXBwZW5kKDAsIGNlbGwpOworfQorCiBBTFdBWVNf
SU5MSU5FIHZvaWQgU2xvdFZpc2l0b3I6OmFwcGVuZChKU1ZhbHVlKiBzbG90KQogewogICAgIEFT
U0VSVChzbG90KTsKQEAgLTYzLDYgKzY5LDExIEBAIEFMV0FZU19JTkxJTkUgdm9pZCBTbG90Vmlz
aXRvcjo6YXBwZW5kVW4KICAgICBpbnRlcm5hbEFwcGVuZChzbG90LCAqc2xvdCk7CiB9CiAKK0FM
V0FZU19JTkxJTkUgdm9pZCBTbG90VmlzaXRvcjo6YXBwZW5kVW5iYXJyaWVyZWRSZWFkT25seVZh
bHVlKEpTVmFsdWUgdmFsdWUpCit7CisgICAgaW50ZXJuYWxBcHBlbmQoMCwgdmFsdWUpOworfQor
CiBBTFdBWVNfSU5MSU5FIHZvaWQgU2xvdFZpc2l0b3I6OmFwcGVuZChKU0NlbGwqKiBzbG90KQog
ewogICAgIEFTU0VSVChzbG90KTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0
b3IvU2NyaXB0Q2FsbFN0YWNrRmFjdG9yeS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2luc3BlY3Rvci9TY3JpcHRDYWxsU3RhY2tGYWN0b3J5LmNwcAkocmV2aXNpb24g
MTYzNzUyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9TY3JpcHRDYWxsU3Rh
Y2tGYWN0b3J5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzUsOSArMzUsOSBAQAogCiAjaW5jbHVk
ZSAiQXJnTGlzdC5oIgogI2luY2x1ZGUgIkNhbGxGcmFtZS5oIgotI2luY2x1ZGUgIkNhbGxGcmFt
ZUlubGluZXMuaCIKICNpbmNsdWRlICJKU0NKU1ZhbHVlLmgiCiAjaW5jbHVkZSAiSlNGdW5jdGlv
bi5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJTY3JpcHRBcmd1bWVudHMu
aCIKICNpbmNsdWRlICJTY3JpcHRDYWxsRnJhbWUuaCIKICNpbmNsdWRlICJTY3JpcHRDYWxsU3Rh
Y2suaCIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9Qcm90b0NhbGxG
cmFtZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVy
L1Byb3RvQ2FsbEZyYW1lLmNwcAkocmV2aXNpb24gMTYzNzUyKQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ludGVycHJldGVyL1Byb3RvQ2FsbEZyYW1lLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIlByb3RvQ2FsbEZyYW1lLmgiCiAKICNpbmNsdWRlICJD
b2RlQmxvY2suaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiU3RhY2tBbGln
bm1lbnQuaCIKIAogbmFtZXNwYWNlIEpTQyB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVEV4Y2VwdGlvbnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklURXhjZXB0aW9ucy5jcHAJKHJldmlzaW9uIDE2Mzc1MikKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklURXhjZXB0aW9ucy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI3LDcg
KzI3LDYgQEAKICNpbmNsdWRlICJKSVRFeGNlcHRpb25zLmgiCiAKICNpbmNsdWRlICJDYWxsRnJh
bWUuaCIKLSNpbmNsdWRlICJDYWxsRnJhbWVJbmxpbmVzLmgiCiAjaW5jbHVkZSAiQ29kZUJsb2Nr
LmgiCiAjaW5jbHVkZSAiSW50ZXJwcmV0ZXIuaCIKICNpbmNsdWRlICJKSVRTdHVicy5oIgpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVzLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVzLmgJKHJldmlzaW9uIDE2Mzc1MikK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lcy5oCSh3b3JraW5nIGNvcHkp
CkBAIC0yOSw3ICsyOSw3IEBACiAKICNpZiBFTkFCTEUoSklUKQogCi0jaW5jbHVkZSAiQ2FsbEZy
YW1lSW5saW5lcy5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7
CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcAko
cmV2aXNpb24gMTYzNzUyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRp
b25zLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjksNyArMjksNiBAQAogCiAjaW5jbHVkZSAiQXJn
dW1lbnRzLmgiCiAjaW5jbHVkZSAiQXJyYXlDb25zdHJ1Y3Rvci5oIgotI2luY2x1ZGUgIkNhbGxG
cmFtZUlubGluZXMuaCIKICNpbmNsdWRlICJERkdDb21waWxhdGlvbk1vZGUuaCIKICNpbmNsdWRl
ICJERkdEcml2ZXIuaCIKICNpbmNsdWRlICJERkdPU1JFbnRyeS5oIgpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9SZXBhdGNoLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L1JlcGF0Y2guY3BwCShyZXZpc2lvbiAxNjM3NTIpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L1JlcGF0Y2guY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw3ICsyOSw2
IEBACiAjaWYgRU5BQkxFKEpJVCkKIAogI2luY2x1ZGUgIkNDYWxsSGVscGVycy5oIgotI2luY2x1
ZGUgIkNhbGxGcmFtZUlubGluZXMuaCIKICNpbmNsdWRlICJERkdPcGVyYXRpb25zLmgiCiAjaW5j
bHVkZSAiREZHU3BlY3VsYXRpdmVKSVQuaCIKICNpbmNsdWRlICJGVExUaHVua3MuaCIKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlR2VuZXJhdG9yLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZUdlbmVyYXRv
ci5jcHAJKHJldmlzaW9uIDE2Mzc1MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxl
ci9Qcm9maWxlR2VuZXJhdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcsNyArMjcsNiBAQAog
I2luY2x1ZGUgIlByb2ZpbGVHZW5lcmF0b3IuaCIKIAogI2luY2x1ZGUgIkNhbGxGcmFtZS5oIgot
I2luY2x1ZGUgIkNhbGxGcmFtZUlubGluZXMuaCIKICNpbmNsdWRlICJDb2RlQmxvY2suaCIKICNp
bmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgogI2luY2x1ZGUgIkpTU3RyaW5nUmVmLmgiCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHMuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ3VtZW50cy5jcHAJKHJldmlzaW9u
IDE2Mzc1MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ3VtZW50cy5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTI1LDcgKzI1LDYgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNp
bmNsdWRlICJBcmd1bWVudHMuaCIKIAotI2luY2x1ZGUgIkNhbGxGcmFtZUlubGluZXMuaCIKICNp
bmNsdWRlICJKU0FjdGl2YXRpb24uaCIKICNpbmNsdWRlICJKU0FyZ3VtZW50c0l0ZXJhdG9yLmgi
CiAjaW5jbHVkZSAiSlNGdW5jdGlvbi5oIgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvQXJndW1lbnRzSXRlcmF0b3JQcm90b3R5cGUuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ3VtZW50c0l0ZXJhdG9yUHJvdG90eXBlLmNwcAko
cmV2aXNpb24gMTYzNzUyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJndW1l
bnRzSXRlcmF0b3JQcm90b3R5cGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw2ICsyNyw3IEBA
CiAjaW5jbHVkZSAiQXJndW1lbnRzSXRlcmF0b3JQcm90b3R5cGUuaCIKIAogI2luY2x1ZGUgIkpT
QXJndW1lbnRzSXRlcmF0b3IuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAKIG5hbWVzcGFj
ZSBKU0MgewogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25TbG93
UGF0aHNFeGNlcHRpb25zLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9Db21tb25TbG93UGF0aHNFeGNlcHRpb25zLmNwcAkocmV2aXNpb24gMTYzNzUyKQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzRXhjZXB0aW9u
cy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJDb2RlQmxv
Y2suaCIKICNpbmNsdWRlICJKSVRFeGNlcHRpb25zLmgiCiAjaW5jbHVkZSAiTExJbnRDb21tb24u
aCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2Ug
Q29tbW9uU2xvd1BhdGhzIHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNBcmd1bWVudHNJdGVyYXRvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNBcmd1bWVudHNJdGVyYXRvci5jcHAJKHJldmlzaW9uIDE2Mzc1MikKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJndW1lbnRzSXRlcmF0b3IuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiSlNBcmd1bWVudHNJdGVy
YXRvci5oIgogCiAjaW5jbHVkZSAiQXJndW1lbnRzLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5o
IgogCiBuYW1lc3BhY2UgSlNDIHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNGdW5jdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNGdW5jdGlvbi5jcHAJKHJldmlzaW9uIDE2Mzc1MikKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw3ICsy
OSw2IEBACiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgiCiAjaW5jbHVkZSAiQ29tbW9uSWRlbnRpZmll
cnMuaCIKICNpbmNsdWRlICJDYWxsRnJhbWUuaCIKLSNpbmNsdWRlICJDYWxsRnJhbWVJbmxpbmVz
LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uSGVscGVycy5oIgogI2luY2x1ZGUgIkZ1bmN0aW9uUHJv
dG90eXBlLmgiCiAjaW5jbHVkZSAiR2V0dGVyU2V0dGVyLmgiCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMu
Y3BwCShyZXZpc2lvbiAxNjM3NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2LDcgKzI2LDYg
QEAKICNpbmNsdWRlICJKU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5oIgogCiAjaW5jbHVkZSAiQ2Fs
bEZyYW1lLmgiCi0jaW5jbHVkZSAiQ2FsbEZyYW1lSW5saW5lcy5oIgogI2luY2x1ZGUgIkludGVy
cHJldGVyLmgiCiAjaW5jbHVkZSAiSlNGdW5jdGlvbi5oIgogI2luY2x1ZGUgIkpTR2xvYmFsT2Jq
ZWN0LmgiCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1
Y3Rvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2Jq
ZWN0Q29uc3RydWN0b3IuY3BwCShyZXZpc2lvbiAxNjM3NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIy
LDcgKzIyLDYgQEAKICNpbmNsdWRlICJPYmplY3RDb25zdHJ1Y3Rvci5oIgogCiAjaW5jbHVkZSAi
QnV0dGVyZmx5SW5saW5lcy5oIgotI2luY2x1ZGUgIkNhbGxGcmFtZUlubGluZXMuaCIKICNpbmNs
dWRlICJDb3BpZWRTcGFjZUlubGluZXMuaCIKICNpbmNsdWRlICJFcnJvci5oIgogI2luY2x1ZGUg
IkV4Y2VwdGlvbkhlbHBlcnMuaCIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L09wZXJhdGlvbnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9PcGVyYXRpb25zLmgJKHJldmlzaW9uIDE2Mzc1MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL09wZXJhdGlvbnMuaAkod29ya2luZyBjb3B5KQpAQCAtMSw2ICsxLDYgQEAKIC8q
CiAgKiAgQ29weXJpZ2h0IChDKSAxOTk5LTIwMDAgSGFycmkgUG9ydGVuIChwb3J0ZW5Aa2RlLm9y
ZykKLSAqICBDb3B5cmlnaHQgKEMpIDIwMDIsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDks
IDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogIENvcHlyaWdodCAoQykg
MjAwMiwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSwgMjAxMywgMjAxNCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3
YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqICBtb2RpZnkgaXQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMjIsNiArMjIs
NyBAQAogI2lmbmRlZiBPcGVyYXRpb25zX2gKICNkZWZpbmUgT3BlcmF0aW9uc19oCiAKKyNpbmNs
dWRlICJDYWxsRnJhbWVJbmxpbmVzLmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uSGVscGVycy5oIgog
I2luY2x1ZGUgIkdDSW5jb21pbmdSZWZDb3VudGVkSW5saW5lcy5oIgogI2luY2x1ZGUgIkludGVy
cHJldGVyLmgiCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uY3BwCShyZXZpc2lv
biAxNjM3NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTMyLDcgKzMyLDYgQEAKICNpbmNsdWRlICJBcmdMaXN0LmgiCiAjaW5jbHVk
ZSAiQXJpdHlDaGVja0ZhaWxSZXR1cm5UaHVua3MuaCIKICNpbmNsdWRlICJBcnJheUJ1ZmZlck5l
dXRlcmluZ1dhdGNocG9pbnQuaCIKLSNpbmNsdWRlICJDYWxsRnJhbWVJbmxpbmVzLmgiCiAjaW5j
bHVkZSAiQ29kZUJsb2NrLmgiCiAjaW5jbHVkZSAiQ29kZUNhY2hlLmgiCiAjaW5jbHVkZSAiQ29t
bW9uSWRlbnRpZmllcnMuaCIK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>223663</attachid>
            <date>2014-02-09 18:58:37 -0800</date>
            <delta_ts>2014-02-09 19:01:22 -0800</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>53381</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTYzNzYwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDY2IEBA
CisyMDE0LTAyLTA5ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
R0MgYmxvY2tzIG9uIEZUTCBhbmQgdGhlbiBiYWRuZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjgyOTEKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIEludHJvZHVjZSB0aGUgbm90aW9uIG9m
IGEgREZHOjpTYWZlcG9pbnQsIHdoaWNoIGFsbG93cyB5b3UgdG8gdW5sb2NrIHRoZSByaWdodFRv
UnVuCisgICAgICAgIG11dGV4IGZvciB5b3VyIEpJVCB0aHJlYWQsIHdoaWxlIHN1cHBseWluZyB0
aGUgR0Mgd2l0aCBhbGwgb2YgdGhlIGluZm9ybWF0aW9uIGl0IHdvdWxkCisgICAgICAgIG5lZWQg
dG8gc2NhbiB5b3UgYXQgdGhhdCBtb21lbnQgaW4gdGltZS4gVGhlIGRlZmF1bHQgd2F5IG9mIHVz
aW5nIHRoaXMgaXMKKyAgICAgICAgREZHOjpHcmFwaFNhZmVwb2ludCwgd2hlcmUgeW91IGp1c3Qg
c3VwcGx5IHRoZSBHcmFwaC4gVGhlcmUncyBhIGxvdCBvZiBtYWNoaW5lcnkgaW4KKyAgICAgICAg
dGhpcyBwYXRjaCBqdXN0IHRvIG1ha2UgdGhlIEdyYXBoIHNjYW5uYWJsZS4KKyAgICAgICAgCisg
ICAgICAgIFdlIHRoZW4gdXNlIERGRzo6R3JhcGhTYWZlcG9pbnQgaW4ganVzdCB0d28gcGxhY2Vz
IGZvciBub3c6ICgxKSB3aGlsZSBpbml0aWFsaXppbmcgTExWTQorICAgICAgICBhbmQgKDIpIHdo
aWxlIGludm9raW5nIExMVk0nIG9wdGltaXplciBhbmQgYmFja2VuZC4KKyAgICAgICAgCisgICAg
ICAgIFRoaXMgaXMgYSAzMCUgc3BlZWQtdXAgb24gT2N0YW5lL3R5cGVzY3JpcHQgYW5kIGEgMTAl
IHNwZWVkLXVwIG9uIE9jdGFuZS9nYmVtdS4gMi0zJQorICAgICAgICBzcGVlZC11cCBvdmVyYWxs
IG9uIE9jdGFuZS4KKyAgICAgICAgCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAg
ICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS52Y3hwcm9q
L0phdmFTY3JpcHRDb3JlLnZjeHByb2o6CisgICAgICAgICogSmF2YVNjcmlwdENvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBkZmcvREZHRHJpdmVyLmNwcDoKKyAgICAg
ICAgKEpTQzo6REZHOjpjb21waWxlSW1wbCk6CisgICAgICAgICogZGZnL0RGR0dyYXBoLmNwcDoK
KyAgICAgICAgKEpTQzo6REZHOjpHcmFwaDo6dmlzaXRDaGlsZHJlbik6CisgICAgICAgICogZGZn
L0RGR0dyYXBoLmg6CisgICAgICAgICogZGZnL0RGR0dyYXBoU2FmZXBvaW50LmNwcDogQWRkZWQu
CisgICAgICAgIChKU0M6OkRGRzo6R3JhcGhTYWZlcG9pbnQ6OkdyYXBoU2FmZXBvaW50KToKKyAg
ICAgICAgKEpTQzo6REZHOjpHcmFwaFNhZmVwb2ludDo6fkdyYXBoU2FmZXBvaW50KToKKyAgICAg
ICAgKiBkZmcvREZHR3JhcGhTYWZlcG9pbnQuaDogQWRkZWQuCisgICAgICAgICogZGZnL0RGR09w
ZXJhdGlvbnMuaDoKKyAgICAgICAgKiBkZmcvREZHUGxhbi5jcHA6CisgICAgICAgIChKU0M6OkRG
Rzo6UGxhbjo6Y29tcGlsZUluVGhyZWFkKToKKyAgICAgICAgKEpTQzo6REZHOjpQbGFuOjpjb21w
aWxlSW5UaHJlYWRJbXBsKToKKyAgICAgICAgKiBkZmcvREZHUGxhbi5oOgorICAgICAgICAqIGRm
Zy9ERkdTYWZlcG9pbnQuY3BwOiBBZGRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTYWZlcG9pbnQ6
OlNhZmVwb2ludCk6CisgICAgICAgIChKU0M6OkRGRzo6U2FmZXBvaW50Ojp+U2FmZXBvaW50KToK
KyAgICAgICAgKEpTQzo6REZHOjpTYWZlcG9pbnQ6OmFkZCk6CisgICAgICAgIChKU0M6OkRGRzo6
U2FmZXBvaW50OjpiZWdpbik6CisgICAgICAgIChKU0M6OkRGRzo6U2FmZXBvaW50Ojp2aXNpdENo
aWxkcmVuKToKKyAgICAgICAgKiBkZmcvREZHU2FmZXBvaW50Lmg6IEFkZGVkLgorICAgICAgICAq
IGRmZy9ERkdTY2FubmFibGUuaDogQWRkZWQuCisgICAgICAgIChKU0M6OkRGRzo6U2Nhbm5hYmxl
OjpTY2FubmFibGUpOgorICAgICAgICAoSlNDOjpERkc6OlNjYW5uYWJsZTo6flNjYW5uYWJsZSk6
CisgICAgICAgICogZGZnL0RGR1RocmVhZERhdGEuY3BwOiBBZGRlZC4KKyAgICAgICAgKEpTQzo6
REZHOjpUaHJlYWREYXRhOjpUaHJlYWREYXRhKToKKyAgICAgICAgKEpTQzo6REZHOjpUaHJlYWRE
YXRhOjp+VGhyZWFkRGF0YSk6CisgICAgICAgICogZGZnL0RGR1RocmVhZERhdGEuaDogQWRkZWQu
CisgICAgICAgICogZGZnL0RGR1dvcmtsaXN0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpXb3Jr
bGlzdDo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAoSlNDOjpERkc6OldvcmtsaXN0Ojp2aXNp
dENoaWxkcmVuKToKKyAgICAgICAgKEpTQzo6REZHOjpXb3JrbGlzdDo6cnVuVGhyZWFkKToKKyAg
ICAgICAgKiBkZmcvREZHV29ya2xpc3QuaDoKKyAgICAgICAgKiBmdGwvRlRMQ29tcGlsZS5jcHA6
CisgICAgICAgIChKU0M6OkZUTDo6Y29tcGlsZSk6CisgICAgICAgICogaGVhcC9TbG90VmlzaXRv
ci5oOgorICAgICAgICAqIGhlYXAvU2xvdFZpc2l0b3JJbmxpbmVzLmg6CisgICAgICAgIChKU0M6
OlNsb3RWaXNpdG9yOjphcHBlbmRVbmJhcnJpZXJlZFJlYWRPbmx5UG9pbnRlcik6CisgICAgICAg
IChKU0M6OlNsb3RWaXNpdG9yOjphcHBlbmRVbmJhcnJpZXJlZFJlYWRPbmx5VmFsdWUpOgorCiAy
MDE0LTAyLTA5ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CiAKICAgICAgICAgTmV2
ZXIgaW5jbHVkZSAqSW5saW5lcy5oIGZpbGVzIGluIGludGVyZmFjZSBoZWFkZXJzLCBhbmQgbmV2
ZXIgaW5jbHVkZSAqSW5saW5lcy5oIHdoZW4geW91IGNvdWxkIGluY2x1ZGUgT3BlcmF0aW9ucy5o
IGluc3RlYWQKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQJKHJldmlzaW9u
IDE2Mzc2MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAkod29ya2lu
ZyBjb3B5KQpAQCAtMTM4LDYgKzEzOCw3IEBAIHNldChKYXZhU2NyaXB0Q29yZV9TT1VSQ0VTCiAg
ICAgZGZnL0RGR0ZsdXNoTGl2ZW5lc3NBbmFseXNpc1BoYXNlLmNwcAogICAgIGRmZy9ERkdGbHVz
aGVkQXQuY3BwCiAgICAgZGZnL0RGR0dyYXBoLmNwcAorICAgIGRmZy9ERkdHcmFwaFNhZmVwb2lu
dC5jcHAKICAgICBkZmcvREZHSW5QbGFjZUFic3RyYWN0U3RhdGUuY3BwCiAgICAgZGZnL0RGR0lu
dmFsaWRhdGlvblBvaW50SW5qZWN0aW9uUGhhc2UuY3BwCiAgICAgZGZnL0RGR0pJVENvZGUuY3Bw
CkBAIC0xNzIsMTIgKzE3MywxNCBAQCBzZXQoSmF2YVNjcmlwdENvcmVfU09VUkNFUwogICAgIGRm
Zy9ERkdSZXN1cnJlY3Rpb25Gb3JWYWxpZGF0aW9uUGhhc2UuY3BwCiAgICAgZGZnL0RGR1NTQUNv
bnZlcnNpb25QaGFzZS5jcHAKICAgICBkZmcvREZHU1NBTG93ZXJpbmdQaGFzZS5jcHAKKyAgICBk
ZmcvREZHU2FmZXBvaW50LmNwcAogICAgIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKICAgICBk
ZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKICAgICBkZmcvREZHU3BlY3VsYXRpdmVKSVQ2
NC5jcHAKICAgICBkZmcvREZHU3RhY2tMYXlvdXRQaGFzZS5jcHAKICAgICBkZmcvREZHU3RvcmVC
YXJyaWVyRWxpc2lvblBoYXNlLmNwcAogICAgIGRmZy9ERkdTdHJlbmd0aFJlZHVjdGlvblBoYXNl
LmNwcAorICAgIGRmZy9ERkdUaHJlYWREYXRhLmNwcAogICAgIGRmZy9ERkdUaHVua3MuY3BwCiAg
ICAgZGZnL0RGR1RpZXJVcENoZWNrSW5qZWN0aW9uUGhhc2UuY3BwCiAgICAgZGZnL0RGR1R5cGVD
aGVja0hvaXN0aW5nUGhhc2UuY3BwCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvR05VbWFr
ZWZpbGUubGlzdC5hbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvR05VbWFr
ZWZpbGUubGlzdC5hbQkocmV2aXNpb24gMTYzNzYwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L0dOVW1ha2VmaWxlLmxpc3QuYW0JKHdvcmtpbmcgY29weSkKQEAgLTMwNCw2ICszMDQsOCBAQCBq
YXZhc2NyaXB0Y29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0dlbmVyYXRpb25JbmZvLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGgu
Y3BwIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmggXAorCVNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGhTYWZlcG9pbnQuY3BwIFwKKwlTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0dyYXBoU2FmZXBvaW50LmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHSW5QbGFjZUFic3RyYWN0U3RhdGUuY3BwIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0luUGxhY2VBYnN0cmFjdFN0YXRlLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHSW5saW5lQ2FjaGVXcmFwcGVyLmggXApAQCAtMzc3LDcgKzM3OSwxMCBAQCBqYXZh
c2NyaXB0Y29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Jl
c3VycmVjdGlvbkZvclZhbGlkYXRpb25QaGFzZS5jcHAgXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHUmVzdXJyZWN0aW9uRm9yVmFsaWRhdGlvblBoYXNlLmggXAogCVNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHU2FmZVRvRXhlY3V0ZS5oIFwKKwlTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1NhZmVwb2ludC5jcHAgXAorCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
U2FmZXBvaW50LmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FuZVN0cmluZ0dl
dEJ5VmFsU2xvd1BhdGhHZW5lcmF0b3IuaCBcCisJU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdTY2FubmFibGUuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTY29yZUJvYXJk
LmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2lsZW50UmVnaXN0ZXJTYXZlUGxh
bi5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nsb3dQYXRoR2VuZXJhdG9yLmgg
XApAQCAtMzk4LDYgKzQwMyw4IEBAIGphdmFzY3JpcHRjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3RydWN0dXJlQWJzdHJhY3RWYWx1ZS5oIFwKIAlTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1RpZXJVcENoZWNrSW5qZWN0aW9uUGhhc2UuY3BwIFwK
IAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1RpZXJVcENoZWNrSW5qZWN0aW9uUGhhc2Uu
aCBcCisJU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdUaHJlYWREYXRhLmNwcCBcCisJU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdUaHJlYWREYXRhLmggXAogCVNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHVGh1bmtzLmNwcCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdUaHVua3MuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdUb0ZUTERlZmVycmVk
Q29tcGlsYXRpb25DYWxsYmFjay5jcHAgXApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0ph
dmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvago9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0
Q29yZS52Y3hwcm9qCShyZXZpc2lvbiAxNjM3NjApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
SmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qCSh3b3JraW5nIGNv
cHkpCkBAIC0zOTIsNiArMzkyLDcgQEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGRmZ1xE
RkdGbHVzaEZvcm1hdC5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxkZmdcREZH
Rmx1c2hMaXZlbmVzc0FuYWx5c2lzUGhhc2UuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVk
ZT0iLi5cZGZnXERGR0dyYXBoLmNwcCIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGRm
Z1xERkdHcmFwaFNhZmVwb2ludC5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxk
ZmdcREZHSW5QbGFjZUFic3RyYWN0U3RhdGUuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVk
ZT0iLi5cZGZnXERGR0ludmFsaWRhdGlvblBvaW50SW5qZWN0aW9uUGhhc2UuY3BwIiAvPgogICAg
IDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZGZnXERGR0pJVENvZGUuY3BwIiAvPgpAQCAtNDI0LDYg
KzQyNSw3IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxkZmdcREZHUHJlZGljdGlvbklu
amVjdGlvblBoYXNlLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGRmZ1xERkdQ
cmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRl
PSIuLlxkZmdcREZHUmVzdXJyZWN0aW9uRm9yVmFsaWRhdGlvblBoYXNlLmNwcCIgLz4KKyAgICA8
Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGRmZ1xERkdTYWZlcG9pbnQuY3BwIiAvPgogICAgIDxDbENv
bXBpbGUgSW5jbHVkZT0iLi5cZGZnXERGR1NwZWN1bGF0aXZlSklULmNwcCIgLz4KICAgICA8Q2xD
b21waWxlIEluY2x1ZGU9Ii4uXGRmZ1xERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcCIgLz4KICAg
ICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGRmZ1xERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcCIgLz4K
QEAgLTQzMiw2ICs0MzQsNyBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZGZnXERGR1N0
YWNrTGF5b3V0UGhhc2UuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZGZnXERG
R1N0b3JlQmFycmllckVsaXNpb25QaGFzZS5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRl
PSIuLlxkZmdcREZHU3RyZW5ndGhSZWR1Y3Rpb25QaGFzZS5jcHAiIC8+CisgICAgPENsQ29tcGls
ZSBJbmNsdWRlPSIuLlxkZmdcREZHVGhyZWFkRGF0YS5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJ
bmNsdWRlPSIuLlxkZmdcREZHVGh1bmtzLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9
Ii4uXGRmZ1xERkdUaWVyVXBDaGVja0luamVjdGlvblBoYXNlLmNwcCIgLz4KICAgICA8Q2xDb21w
aWxlIEluY2x1ZGU9Ii4uXGRmZ1xERkdUb0ZUTERlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjay5j
cHAiIC8+CkBAIC05MjksNiArOTMyLDcgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGRm
Z1xERkdHZW5lcmF0aW9uSW5mby5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZGZn
XERGR0dQUkluZm8uaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGRmZ1xERkdHcmFw
aC5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZGZnXERGR0dyYXBoU2FmZXBvaW50
LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxkZmdcREZHSW5QbGFjZUFic3RyYWN0
U3RhdGUuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGRmZ1xERkdJbnNlcnRpb25T
ZXQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGRmZ1xERkdJbnZhbGlkYXRpb25Q
b2ludEluamVjdGlvblBoYXNlLmgiIC8+CkBAIC05NjksNyArOTczLDkgQEAKICAgICA8Q2xJbmNs
dWRlIEluY2x1ZGU9Ii4uXGRmZ1xERkdSZWdpc3RlclNldC5oIiAvPgogICAgIDxDbEluY2x1ZGUg
SW5jbHVkZT0iLi5cZGZnXERGR1Jlc3VycmVjdGlvbkZvclZhbGlkYXRpb25QaGFzZS5oIiAvPgog
ICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZGZnXERGR1NhZmVUb0V4ZWN1dGUuaCIgLz4KKyAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGRmZ1xERkdTYWZlcG9pbnQuaCIgLz4KICAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXGRmZ1xERkdTYW5lU3RyaW5nR2V0QnlWYWxTbG93UGF0aEdlbmVy
YXRvci5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZGZnXERGR1NjYW5uYWJsZS5o
IiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZGZnXERGR1Njb3JlQm9hcmQuaCIgLz4K
ICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGRmZ1xERkdTY3JhdGNoUmVnaXN0ZXJBbGxvY2F0
b3IuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGRmZ1xERkdTaWxlbnRSZWdpc3Rl
clNhdmVQbGFuLmgiIC8+CkBAIC05ODEsNiArOTg3LDcgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXGRmZ1xERkdTdG9yZUJhcnJpZXJFbGlzaW9uUGhhc2UuaCIgLz4KICAgICA8Q2xJbmNs
dWRlIEluY2x1ZGU9Ii4uXGRmZ1xERkdTdHJlbmd0aFJlZHVjdGlvblBoYXNlLmgiIC8+CiAgICAg
PENsSW5jbHVkZSBJbmNsdWRlPSIuLlxkZmdcREZHU3RydWN0dXJlQWJzdHJhY3RWYWx1ZS5oIiAv
PgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZGZnXERGR1RocmVhZERhdGEuaCIgLz4KICAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGRmZ1xERkdUaHVua3MuaCIgLz4KICAgICA8Q2xJbmNs
dWRlIEluY2x1ZGU9Ii4uXGRmZ1xERkdUaWVyVXBDaGVja0luamVjdGlvblBoYXNlLmgiIC8+CiAg
ICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxkZmdcREZHVG9GVExEZWZlcnJlZENvbXBpbGF0aW9u
Q2FsbGJhY2suaCIgLz4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lv
biAxNjM3NjApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMjAyLDYgKzIwMiwxMyBAQAog
CQkwRjJFODkyRDE2RDAyQkFGMDA5RTRGRDIgLyogREZHTWluaWZpZWRJRC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZCNEI1MTAxNkIzQTk2NDAwM0Y2
OTZCIC8qIERGR01pbmlmaWVkSUQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQkwRjJGQzc3MjE2RTEyRjcxMDAzOEQ5NzYgLyogREZHRENFUGhhc2Uu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYyRkM3
NzAxNkUxMkY2RjAwMzhEOTc2IC8qIERGR0RDRVBoYXNlLmNwcCAqLzsgfTsKIAkJMEYyRkM3NzMx
NkUxMkY3NDAwMzhEOTc2IC8qIERGR0RDRVBoYXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjJGQzc3MTE2RTEyRjZGMDAzOEQ5NzYgLyogREZHRENF
UGhhc2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owor
CQkwRjJGQ0NGOTE4QTYwMDcwMDAxQTI3RjggLyogREZHR3JhcGhTYWZlcG9pbnQuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYyRkNDRjIxOEE2MDA3
MDAwMUEyN0Y4IC8qIERGR0dyYXBoU2FmZXBvaW50LmNwcCAqLzsgfTsKKwkJMEYyRkNDRkExOEE2
MDA3MDAwMUEyN0Y4IC8qIERGR0dyYXBoU2FmZXBvaW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjJGQ0NGMzE4QTYwMDcwMDAxQTI3RjggLyogREZH
R3JhcGhTYWZlcG9pbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OworCQkwRjJGQ0NGQjE4QTYwMDcwMDAxQTI3RjggLyogREZHU2FmZXBvaW50LmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMkZDQ0Y0MThB
NjAwNzAwMDFBMjdGOCAvKiBERkdTYWZlcG9pbnQuY3BwICovOyB9OworCQkwRjJGQ0NGQzE4QTYw
MDcwMDAxQTI3RjggLyogREZHU2FmZXBvaW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwRjJGQ0NGNTE4QTYwMDcwMDAxQTI3RjggLyogREZHU2FmZXBv
aW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJ
MEYyRkNDRkQxOEE2MDA3MDAwMUEyN0Y4IC8qIERGR1NjYW5uYWJsZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYyRkNDRjYxOEE2MDA3MDAwMUEyN0Y4
IC8qIERGR1NjYW5uYWJsZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CisJCTBGMkZDQ0ZFMThBNjAwNzAwMDFBMjdGOCAvKiBERkdUaHJlYWREYXRhLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMkZDQ0Y3
MThBNjAwNzAwMDFBMjdGOCAvKiBERkdUaHJlYWREYXRhLmNwcCAqLzsgfTsKKwkJMEYyRkNDRkYx
OEE2MDA3MDAwMUEyN0Y4IC8qIERGR1RocmVhZERhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMkZDQ0Y4MThBNjAwNzAwMDFBMjdGOCAvKiBERkdU
aHJlYWREYXRhLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJMEYzNEIxNDkxNkQ0MjAxMDAwMUNEQTVBIC8qIERGR1VzZUtpbmQuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYzNEIxNDcxNkQ0MjAwRTAw
MUNEQTVBIC8qIERGR1VzZUtpbmQuY3BwICovOyB9OwogCQkwRjM0QjE0QTE2RDQyMDEzMDAxQ0RB
NUEgLyogREZHVXNlS2luZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMEYzNEIxNDgxNkQ0MjAwRTAwMUNEQTVBIC8qIERGR1VzZUtpbmQuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjM0QjE0QzE2RDQz
RTBEMDAxQ0RBNUEgLyogUG9seW1vcnBoaWNBY2Nlc3NTdHJ1Y3R1cmVMaXN0LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjM0QjE0QjE2RDQzRTBDMDAx
Q0RBNUEgLyogUG9seW1vcnBoaWNBY2Nlc3NTdHJ1Y3R1cmVMaXN0LmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTE2NDUsNiArMTY1MiwxMyBAQAog
CQkwRjJCREM1MDE1MjI4RkZBMDBDRDg5MTAgLyogREZHVmFyaWFibGVFdmVudC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBERkdWYXJpYWJsZUV2ZW50LmNwcDsgcGF0
aCA9IGRmZy9ERkdWYXJpYWJsZUV2ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMEYyRkM3NzAxNkUxMkY2RjAwMzhEOTc2IC8qIERGR0RDRVBoYXNlLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IERGR0RDRVBoYXNlLmNwcDsgcGF0aCA9IGRmZy9E
RkdEQ0VQaGFzZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGMkZDNzcxMTZF
MTJGNkYwMDM4RDk3NiAvKiBERkdEQ0VQaGFzZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IG5hbWUgPSBERkdEQ0VQaGFzZS5oOyBwYXRoID0gZGZnL0RGR0RDRVBoYXNlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGMkZDQ0YyMThBNjAwNzAwMDFBMjdGOCAvKiBERkdHcmFw
aFNhZmVwb2ludC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBERkdH
cmFwaFNhZmVwb2ludC5jcHA7IHBhdGggPSBkZmcvREZHR3JhcGhTYWZlcG9pbnQuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRjJGQ0NGMzE4QTYwMDcwMDAxQTI3RjggLyogREZH
R3JhcGhTYWZlcG9pbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gREZHR3Jh
cGhTYWZlcG9pbnQuaDsgcGF0aCA9IGRmZy9ERkdHcmFwaFNhZmVwb2ludC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQkwRjJGQ0NGNDE4QTYwMDcwMDAxQTI3RjggLyogREZHU2FmZXBv
aW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IERGR1NhZmVwb2lu
dC5jcHA7IHBhdGggPSBkZmcvREZHU2FmZXBvaW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJMEYyRkNDRjUxOEE2MDA3MDAwMUEyN0Y4IC8qIERGR1NhZmVwb2ludC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBERkdTYWZlcG9pbnQuaDsgcGF0aCA9IGRmZy9E
RkdTYWZlcG9pbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEYyRkNDRjYxOEE2
MDA3MDAwMUEyN0Y4IC8qIERGR1NjYW5uYWJsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IG5hbWUgPSBERkdTY2FubmFibGUuaDsgcGF0aCA9IGRmZy9ERkdTY2FubmFibGUuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEYyRkNDRjcxOEE2MDA3MDAwMUEyN0Y4IC8qIERGR1Ro
cmVhZERhdGEuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gREZHVGhy
ZWFkRGF0YS5jcHA7IHBhdGggPSBkZmcvREZHVGhyZWFkRGF0YS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTBGMkZDQ0Y4MThBNjAwNzAwMDFBMjdGOCAvKiBERkdUaHJlYWREYXRh
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IERGR1RocmVhZERhdGEuaDsgcGF0
aCA9IGRmZy9ERkdUaHJlYWREYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBG
MzRCMTQ3MTZENDIwMEUwMDFDREE1QSAvKiBERkdVc2VLaW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgbmFtZSA9IERGR1VzZUtpbmQuY3BwOyBwYXRoID0gZGZnL0RGR1VzZUtp
bmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjM0QjE0ODE2RDQyMDBFMDAx
Q0RBNUEgLyogREZHVXNlS2luZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBE
RkdVc2VLaW5kLmg7IHBhdGggPSBkZmcvREZHVXNlS2luZC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkwRjM0QjE0QjE2RDQzRTBDMDAxQ0RBNUEgLyogUG9seW1vcnBoaWNBY2Nlc3NT
dHJ1Y3R1cmVMaXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBvbHltb3Jw
aGljQWNjZXNzU3RydWN0dXJlTGlzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
NDA5Miw4ICs0MTA2LDYgQEAKIAkJODZFQzlEQjMxMzI4REY0NDAwMkIyQUQ3IC8qIGRmZyAqLyA9
IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCi0JCQkJMkFDQ0YzREMxODVG
RTI2QjAwODNFMkFEIC8qIERGR1N0b3JlQmFycmllckVsaXNpb25QaGFzZS5jcHAgKi8sCi0JCQkJ
MkFDQ0YzREQxODVGRTI2QjAwODNFMkFEIC8qIERGR1N0b3JlQmFycmllckVsaXNpb25QaGFzZS5o
ICovLAogCQkJCUE3N0E0MjM2MTdBMEJCRkQwMEE4REI4MSAvKiBERkdBYnN0cmFjdEhlYXAuY3Bw
ICovLAogCQkJCUE3N0E0MjM3MTdBMEJCRkQwMEE4REI4MSAvKiBERkdBYnN0cmFjdEhlYXAuaCAq
LywKIAkJCQlBNzA0RDhGRTE3QTBCQUE4MDA2QkE1NTQgLyogREZHQWJzdHJhY3RJbnRlcnByZXRl
ci5oICovLApAQCAtNDE5NSw2ICs0MjA3LDggQEAKIAkJCQk4NkVDOURCNjEzMjhERjgyMDAyQjJB
RDcgLyogREZHR2VuZXJhdGlvbkluZm8uaCAqLywKIAkJCQk4NkVDOURCNzEzMjhERjgyMDAyQjJB
RDcgLyogREZHR3JhcGguY3BwICovLAogCQkJCTg2RUM5REI4MTMyOERGODIwMDJCMkFENyAvKiBE
RkdHcmFwaC5oICovLAorCQkJCTBGMkZDQ0YyMThBNjAwNzAwMDFBMjdGOCAvKiBERkdHcmFwaFNh
ZmVwb2ludC5jcHAgKi8sCisJCQkJMEYyRkNDRjMxOEE2MDA3MDAwMUEyN0Y4IC8qIERGR0dyYXBo
U2FmZXBvaW50LmggKi8sCiAJCQkJMEZCMTRFMjAxODEyNTcwQjAwOUI2QjREIC8qIERGR0lubGlu
ZUNhY2hlV3JhcHBlci5oICovLAogCQkJCTBGQjE0RTIyMTgxMzA5NTUwMDlCNkI0RCAvKiBERkdJ
bmxpbmVDYWNoZVdyYXBwZXJJbmxpbmVzLmggKi8sCiAJCQkJQTcwNEQ5MDAxN0EwQkFBODAwNkJB
NTU0IC8qIERGR0luUGxhY2VBYnN0cmFjdFN0YXRlLmNwcCAqLywKQEAgLTQyNjcsOCArNDI4MSwx
MSBAQAogCQkJCTg2RUM5REMxMTMyOERGODIwMDJCMkFENyAvKiBERkdSZWdpc3RlckJhbmsuaCAq
LywKIAkJCQkwRjY2NkVDQTE4MzZCMzdFMDBEMDE3RjEgLyogREZHUmVzdXJyZWN0aW9uRm9yVmFs
aWRhdGlvblBoYXNlLmNwcCAqLywKIAkJCQkwRjY2NkVDQjE4MzZCMzdFMDBEMDE3RjEgLyogREZH
UmVzdXJyZWN0aW9uRm9yVmFsaWRhdGlvblBoYXNlLmggKi8sCisJCQkJMEYyRkNDRjQxOEE2MDA3
MDAwMUEyN0Y4IC8qIERGR1NhZmVwb2ludC5jcHAgKi8sCisJCQkJMEYyRkNDRjUxOEE2MDA3MDAw
MUEyN0Y4IC8qIERGR1NhZmVwb2ludC5oICovLAogCQkJCUE3N0E0MjNDMTdBMEJCRkQwMEE4REI4
MSAvKiBERkdTYWZlVG9FeGVjdXRlLmggKi8sCiAJCQkJQTc0MTAxN0UxNzlEQUY4MDAwMkVCOEJB
IC8qIERGR1NhbmVTdHJpbmdHZXRCeVZhbFNsb3dQYXRoR2VuZXJhdG9yLmggKi8sCisJCQkJMEYy
RkNDRjYxOEE2MDA3MDAwMUEyN0Y4IC8qIERGR1NjYW5uYWJsZS5oICovLAogCQkJCTg2RUNBM0Y5
MTMyREYyNUEwMDJCMkFENyAvKiBERkdTY29yZUJvYXJkLmggKi8sCiAJCQkJMEYxRTNBNjUxNTNB
MjFERjAwMEY5NDU2IC8qIERGR1NpbGVudFJlZ2lzdGVyU2F2ZVBsYW4uaCAqLywKIAkJCQkwRjFF
M0E1MDE1MzdDMkNCMDAwRjk0NTYgLyogREZHU2xvd1BhdGhHZW5lcmF0b3IuaCAqLywKQEAgLTQy
ODIsOSArNDI5OSwxMyBAQAogCQkJCTBGQzIwQ0I4MTg1NTZBMzUwMEM5RTk1NCAvKiBERkdTU0FM
b3dlcmluZ1BoYXNlLmggKi8sCiAJCQkJMEY5RkI0RjIxN0ZDQjkxNzAwQ0I2N0Y4IC8qIERGR1N0
YWNrTGF5b3V0UGhhc2UuY3BwICovLAogCQkJCTBGOUZCNEYzMTdGQ0I5MTcwMENCNjdGOCAvKiBE
RkdTdGFja0xheW91dFBoYXNlLmggKi8sCisJCQkJMkFDQ0YzREMxODVGRTI2QjAwODNFMkFEIC8q
IERGR1N0b3JlQmFycmllckVsaXNpb25QaGFzZS5jcHAgKi8sCisJCQkJMkFDQ0YzREQxODVGRTI2
QjAwODNFMkFEIC8qIERGR1N0b3JlQmFycmllckVsaXNpb25QaGFzZS5oICovLAogCQkJCTBGQzIw
Q0IzMTg1MkUyQzYwMEM5RTk1NCAvKiBERkdTdHJlbmd0aFJlZHVjdGlvblBoYXNlLmNwcCAqLywK
IAkJCQkwRkMyMENCNDE4NTJFMkM2MDBDOUU5NTQgLyogREZHU3RyZW5ndGhSZWR1Y3Rpb25QaGFz
ZS5oICovLAogCQkJCTBGNjM5NDc2MTVEQ0UzNDcwMDZBNTk3QyAvKiBERkdTdHJ1Y3R1cmVBYnN0
cmFjdFZhbHVlLmggKi8sCisJCQkJMEYyRkNDRjcxOEE2MDA3MDAwMUEyN0Y4IC8qIERGR1RocmVh
ZERhdGEuY3BwICovLAorCQkJCTBGMkZDQ0Y4MThBNjAwNzAwMDFBMjdGOCAvKiBERkdUaHJlYWRE
YXRhLmggKi8sCiAJCQkJMEZDMDk3OUYxNDZCMjhDNzAwQ0YyNDQyIC8qIERGR1RodW5rcy5jcHAg
Ki8sCiAJCQkJMEZDMDk3QTAxNDZCMjhDNzAwQ0YyNDQyIC8qIERGR1RodW5rcy5oICovLAogCQkJ
CTBGRDhBMzFGMTdENTFGNTcwMENBMkM0MCAvKiBERkdUaWVyVXBDaGVja0luamVjdGlvblBoYXNl
LmNwcCAqLywKQEAgLTUwODIsNiArNTEwMyw3IEBACiAJCQkJQTc5MERENzAxODJGNDk5NzAwNTg4
ODA3IC8qIEpTU2V0SXRlcmF0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGMjRFNTRFMTdFRTI3
NDkwMEFCQjIxNyAvKiBKSVRPcGVyYXRpb25XcmFwcGVycy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MEY3NjZEMzExNUFBODExMjAwOEYzNjNFIC8qIEpJVFN0dWJSb3V0aW5lLmggaW4gSGVhZGVycyAq
LywKKwkJCQkwRjJGQ0NGQTE4QTYwMDcwMDAxQTI3RjggLyogREZHR3JhcGhTYWZlcG9pbnQuaCBp
biBIZWFkZXJzICovLAogCQkJCTBGNzY2RDJDMTVBOENDM0EwMDhGMzYzRSAvKiBKSVRTdHViUm91
dGluZVNldC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTRDNTI0MkIwRjUzNTVFOTAwQkEzRDA0IC8q
IEpJVFN0dWJzLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRUY2ODM1RTE3NDM0M0NDMDBBMzJFMjUg
LyogSklUU3R1YnNBUk0uaCBpbiBIZWFkZXJzICovLApAQCAtNTEyMSw2ICs1MTQzLDcgQEAKIAkJ
CQk4NkUzQzYxMzE2N0JBQkQ3MDA2RDc2MEEgLyogSlNDb250ZXh0LmggaW4gSGVhZGVycyAqLywK
IAkJCQk4NkUzQzYxNzE2N0JBQkVFMDA2RDc2MEEgLyogSlNDb250ZXh0SW50ZXJuYWwuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUJDMThDNDFFMEUxNkY1Q0QwMEIzNDQ2MCAvKiBKU0NvbnRleHRSZWYu
aCBpbiBIZWFkZXJzICovLAorCQkJCTBGMkZDQ0ZGMThBNjAwNzAwMDFBMjdGOCAvKiBERkdUaHJl
YWREYXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQkxNDhDRDFEODEwOENGOTAyMDA4MTYzQzYgLyog
SlNDb250ZXh0UmVmUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTcyMDI4QjgxNzk3NjAx
RTAwOTgwMjhDIC8qIEpTQ1Rlc3RSdW5uZXJVdGlscy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYy
QjY2RUMxN0I2QjVBQjAwQTdBRTNGIC8qIEpTRGF0YVZpZXcuaCBpbiBIZWFkZXJzICovLApAQCAt
NTI0MSw2ICs1MjY0LDcgQEAKIAkJCQk4NkM1NjhFMTExQTIxM0VFMDAwN0Y3RjAgLyogTWFjcm9B
c3NlbWJsZXJNSVBTLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NkFFNjRBOTEzNUU1RTFDMDA5NjMw
MTIgLyogTWFjcm9Bc3NlbWJsZXJTSDQuaCBpbiBIZWFkZXJzICovLAogCQkJCTg2MDE2MUU0MEYz
QTgzQzEwMEY4NDcxMCAvKiBNYWNyb0Fzc2VtYmxlclg4Ni5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
MEYyRkNDRkMxOEE2MDA3MDAwMUEyN0Y4IC8qIERGR1NhZmVwb2ludC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJODYwMTYxRTUwRjNBODNDMTAwRjg0NzEwIC8qIE1hY3JvQXNzZW1ibGVyWDg2XzY0Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQk4NjAxNjFFNjBGM0E4M0MxMDBGODQ3MTAgLyogTWFjcm9Bc3Nl
bWJsZXJYODZDb21tb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUE3MDA4NzNBMTdDQkU4NTMwMEMz
RTY0MyAvKiBNYXBDb25zdHJ1Y3Rvci5oIGluIEhlYWRlcnMgKi8sCkBAIC01NDUyLDYgKzU0NzYs
NyBAQAogCQkJCTBGMjQyREE3MTNGM0IxRTgwMDdBREQ0QyAvKiBXZWFrUmVmZXJlbmNlSGFydmVz
dGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkxNEU4NEZBMTE0RUUxQUNDMDBENkQ1RDQgLyogV2Vh
a1NldC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTQxNTAxMzMxNTRCQjEzRjAwNUQ4Qzk4IC8qIFdl
YWtTZXRJbmxpbmVzLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjJGQ0NGRDE4QTYwMDcwMDAxQTI3
RjggLyogREZHU2Nhbm5hYmxlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzE4QzQ3QTBFMTZGNUNE
MDBCMzQ0NjAgLyogV2ViS2l0QXZhaWxhYmlsaXR5LmggaW4gSGVhZGVycyAqLywKIAkJCQlBNzRE
RUY5MjE4MkQ5OTE0MDA1MjJDMjIgLyogTWFwSXRlcmF0b3JDb25zdHJ1Y3Rvci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQTdEQ0I5NzMxMkU1MTkzRjAwOTExOTQwIC8qIFdyaXRlQmFycmllci5oIGlu
IEhlYWRlcnMgKi8sCkBAIC02MDQ3LDYgKzYwNzIsNyBAQAogCQkJCUE3MDQ0N0VEMTdBMEJENzAw
MEY1ODk4RSAvKiBEdW1wQ29udGV4dC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDdGMzlDNzEw
N0VDMzc2MDA0MjdBNDggLyogRXJyb3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQ3RjM5Qzgx
MDdFQzM3NjAwNDI3QTQ4IC8qIEVycm9yQ29uc3RydWN0b3IuY3BwIGluIFNvdXJjZXMgKi8sCisJ
CQkJMEYyRkNDRjkxOEE2MDA3MDAwMUEyN0Y4IC8qIERGR0dyYXBoU2FmZXBvaW50LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTE0N0YzOUM5MTA3RUMzNzYwMDQyN0E0OCAvKiBFcnJvckluc3RhbmNl
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0N0YzOUNBMTA3RUMzNzYwMDQyN0E0OCAvKiBFcnJv
clByb3RvdHlwZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNUZEMDA2NzE4OUFGRTlDMDA2MzMy
MzEgLyogU2NyaXB0QXJndW1lbnRzLmNwcCBpbiBTb3VyY2VzICovLApAQCAtNjIxNyw2ICs2MjQz
LDcgQEAKIAkJCQlBNzQ4MkI5NDExNjcxMTQ3MDAzQjA3MTIgLyogSlNXZWFrT2JqZWN0TWFwUmVm
UHJpdmF0ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDQyNTY2MTE1RURFOThEMDA2NkE0OUIg
LyogSlNXaXRoU2NvcGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTUwM0ZBMUIxODhFMEZCMDAw
MTEwRjE0IC8qIEpTSmF2YVNjcmlwdENhbGxGcmFtZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkw
RjJGQ0NGRTE4QTYwMDcwMDAxQTI3RjggLyogREZHVGhyZWFkRGF0YS5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk4NkUzQzYxODE2N0JBQkVFMDA2RDc2MEEgLyogSlNXcmFwcGVyTWFwLm1tIGluIFNv
dXJjZXMgKi8sCiAJCQkJMTQyODA4NzAxMDdFQzEzNDAwMTNFN0IyIC8qIEpTV3JhcHBlck9iamVj
dC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNTdEMjNFOTE4OTFCMDc3MDAzMUM3RkEgLyogSlNH
bG9iYWxPYmplY3REZWJ1Z2dlckFnZW50LmNwcCBpbiBTb3VyY2VzICovLApAQCAtNjMyOCw2ICs2
MzU1LDcgQEAKIAkJCQlDMjI1NDk0MzE1RjdEQkFBMDA2NUU4OTggLyogU2xvdFZpc2l0b3IuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJOTMzMDQwMkMwRTZBNzY0MDAwNzg2RTZBIC8qIFNtYWxsU3Ry
aW5ncy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjhGMkI5RTE3MzA2QzhEMDA3REJEQTUgLyog
U291cmNlQ29kZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkwRjJGQ0NGQjE4QTYwMDcwMDAxQTI3
RjggLyogREZHU2FmZXBvaW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE1RkQwMDc5MTg5QjA1
MTAwMDYzMzIzMSAvKiBDb25zb2xlTWVzc2FnZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjQ5
M0FGQTE2RDBDQUQzMDA4NDUwOEIgLyogU291cmNlUHJvdmlkZXIuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJRTQ5REMxNkIxMkVGMjkzRTAwMTg0QTFGIC8qIFNvdXJjZVByb3ZpZGVyQ2FjaGUuY3Bw
IGluIFNvdXJjZXMgKi8sCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RyaXZl
ci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEcml2ZXIu
Y3BwCShyZXZpc2lvbiAxNjM3NjApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Ry
aXZlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEyMSw3ICsxMjEsNyBAQCBzdGF0aWMgQ29tcGls
YXRpb25SZXN1bHQgY29tcGlsZUltcGwoCiAgICAgICAgIHJldHVybiBDb21waWxhdGlvbkRlZmVy
cmVkOwogICAgIH0KICAgICAKLSAgICBwbGFuLT5jb21waWxlSW5UaHJlYWQoKnZtLmRmZ1N0YXRl
KTsKKyAgICBwbGFuLT5jb21waWxlSW5UaHJlYWQoKnZtLmRmZ1N0YXRlLCAwKTsKICAgICByZXR1
cm4gcGxhbi0+ZmluYWxpemVXaXRob3V0Tm90aWZ5aW5nQ2FsbGJhY2soKTsKIH0KICNlbHNlIC8v
IEVOQUJMRShERkdfSklUKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFw
aC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5j
cHAJKHJldmlzaW9uIDE2Mzc2MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3Jh
cGguY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03OTEsNiArNzkxLDU5IEBAIEpTQXJyYXlCdWZmZXJW
aWV3KiBHcmFwaDo6dHJ5R2V0Rm9sZGFibGUKICAgICByZXR1cm4gdHJ5R2V0Rm9sZGFibGVWaWV3
KGNoaWxkKG5vZGUsIDApLm5vZGUoKSwgbm9kZS0+YXJyYXlNb2RlKCkpOwogfQogCit2b2lkIEdy
YXBoOjp2aXNpdENoaWxkcmVuKFNsb3RWaXNpdG9yJiB2aXNpdG9yKQoreworICAgIGZvciAoQmxv
Y2tJbmRleCBibG9ja0luZGV4ID0gbnVtQmxvY2tzKCk7IGJsb2NrSW5kZXgtLTspIHsKKyAgICAg
ICAgQmFzaWNCbG9jayogYmxvY2sgPSB0aGlzLT5ibG9jayhibG9ja0luZGV4KTsKKyAgICAgICAg
aWYgKCFibG9jaykKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAKKyAgICAgICAgZm9y
ICh1bnNpZ25lZCBub2RlSW5kZXggPSAwOyBub2RlSW5kZXggPCBibG9jay0+c2l6ZSgpOyArK25v
ZGVJbmRleCkgeworICAgICAgICAgICAgTm9kZSogbm9kZSA9IGJsb2NrLT5hdChub2RlSW5kZXgp
OworICAgICAgICAgICAgCisgICAgICAgICAgICBzd2l0Y2ggKG5vZGUtPm9wKCkpIHsKKyAgICAg
ICAgICAgIGNhc2UgSlNDb25zdGFudDoKKyAgICAgICAgICAgIGNhc2UgV2Vha0pTQ29uc3RhbnQ6
CisgICAgICAgICAgICAgICAgdmlzaXRvci5hcHBlbmRVbmJhcnJpZXJlZFJlYWRPbmx5VmFsdWUo
dmFsdWVPZkpTQ29uc3RhbnQobm9kZSkpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICAgICAgICAgIAorICAgICAgICAgICAgY2FzZSBDaGVja0Z1bmN0aW9uOgorICAgICAgICAgICAg
ICAgIHZpc2l0b3IuYXBwZW5kVW5iYXJyaWVyZWRSZWFkT25seVBvaW50ZXIobm9kZS0+ZnVuY3Rp
b24oKSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgCisgICAgICAg
ICAgICBjYXNlIENoZWNrRXhlY3V0YWJsZToKKyAgICAgICAgICAgICAgICB2aXNpdG9yLmFwcGVu
ZFVuYmFycmllcmVkUmVhZE9ubHlQb2ludGVyKG5vZGUtPmV4ZWN1dGFibGUoKSk7CisgICAgICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICBjYXNlIENoZWNr
U3RydWN0dXJlOgorICAgICAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IG5vZGUtPnN0cnVj
dHVyZVNldCgpLnNpemUoKTsgaS0tOykKKyAgICAgICAgICAgICAgICAgICAgdmlzaXRvci5hcHBl
bmRVbmJhcnJpZXJlZFJlYWRPbmx5UG9pbnRlcihub2RlLT5zdHJ1Y3R1cmVTZXQoKVtpXSk7Cisg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICBjYXNl
IFN0cnVjdHVyZVRyYW5zaXRpb25XYXRjaHBvaW50OgorICAgICAgICAgICAgY2FzZSBOZXdPYmpl
Y3Q6CisgICAgICAgICAgICBjYXNlIEFycmF5aWZ5VG9TdHJ1Y3R1cmU6CisgICAgICAgICAgICBj
YXNlIE5ld1N0cmluZ09iamVjdDoKKyAgICAgICAgICAgICAgICB2aXNpdG9yLmFwcGVuZFVuYmFy
cmllcmVkUmVhZE9ubHlQb2ludGVyKG5vZGUtPnN0cnVjdHVyZSgpKTsKKyAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIGNhc2UgUHV0U3RydWN0dXJl
OgorICAgICAgICAgICAgY2FzZSBQaGFudG9tUHV0U3RydWN0dXJlOgorICAgICAgICAgICAgY2Fz
ZSBBbGxvY2F0ZVByb3BlcnR5U3RvcmFnZToKKyAgICAgICAgICAgIGNhc2UgUmVhbGxvY2F0ZVBy
b3BlcnR5U3RvcmFnZToKKyAgICAgICAgICAgICAgICB2aXNpdG9yLmFwcGVuZFVuYmFycmllcmVk
UmVhZE9ubHlQb2ludGVyKAorICAgICAgICAgICAgICAgICAgICBub2RlLT5zdHJ1Y3R1cmVUcmFu
c2l0aW9uRGF0YSgpLnByZXZpb3VzU3RydWN0dXJlKTsKKyAgICAgICAgICAgICAgICB2aXNpdG9y
LmFwcGVuZFVuYmFycmllcmVkUmVhZE9ubHlQb2ludGVyKAorICAgICAgICAgICAgICAgICAgICBu
b2RlLT5zdHJ1Y3R1cmVUcmFuc2l0aW9uRGF0YSgpLm5ld1N0cnVjdHVyZSk7CisgICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICBkZWZhdWx0OgorICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorfQor
CiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6REZHCiAKICNlbmRpZiAvLyBFTkFCTEUoREZHX0pJVCkK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmgJKHJldmlzaW9uIDE2Mzc2MCkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguaAkod29ya2luZyBjb3B5KQpA
QCAtNDAsNiArNDAsNyBAQAogI2luY2x1ZGUgIkRGR05vZGUuaCIKICNpbmNsdWRlICJERkdOb2Rl
QWxsb2NhdG9yLmgiCiAjaW5jbHVkZSAiREZHUGxhbi5oIgorI2luY2x1ZGUgIkRGR1NjYW5uYWJs
ZS5oIgogI2luY2x1ZGUgIkRGR1ZhcmlhZGljRnVuY3Rpb24uaCIKICNpbmNsdWRlICJJbmxpbmVD
YWxsRnJhbWVTZXQuaCIKICNpbmNsdWRlICJKU1N0YWNrLmgiCkBAIC03OCw3ICs3OSw3IEBAIGVu
dW0gQWRkU3BlY3VsYXRpb25Nb2RlIHsKIC8vCiAvLyBUaGUgb3JkZXIgbWF5IGJlIHNpZ25pZmlj
YW50IGZvciBub2RlcyB3aXRoIHNpZGUtZWZmZWN0cyAocHJvcGVydHkgYWNjZXNzZXMsIHZhbHVl
IGNvbnZlcnNpb25zKS4KIC8vIE5vZGVzIHRoYXQgYXJlICdkZWFkJyByZW1haW4gaW4gdGhlIHZl
Y3RvciB3aXRoIHJlZkNvdW50IDAuCi1jbGFzcyBHcmFwaCB7CitjbGFzcyBHcmFwaCA6IHB1Ymxp
YyB2aXJ0dWFsIFNjYW5uYWJsZSB7CiBwdWJsaWM6CiAgICAgR3JhcGgoVk0mLCBQbGFuJiwgTG9u
Z0xpdmVkU3RhdGUmKTsKICAgICB+R3JhcGgoKTsKQEAgLTc5OSw2ICs4MDAsOCBAQCBwdWJsaWM6
CiAgICAgSlNBcnJheUJ1ZmZlclZpZXcqIHRyeUdldEZvbGRhYmxlVmlldyhOb2RlKiwgQXJyYXlN
b2RlKTsKICAgICBKU0FycmF5QnVmZmVyVmlldyogdHJ5R2V0Rm9sZGFibGVWaWV3Rm9yQ2hpbGQx
KE5vZGUqKTsKICAgICAKKyAgICB2aXJ0dWFsIHZvaWQgdmlzaXRDaGlsZHJlbihTbG90VmlzaXRv
ciYpIG92ZXJyaWRlOworICAgIAogICAgIFZNJiBtX3ZtOwogICAgIFBsYW4mIG1fcGxhbjsKICAg
ICBDb2RlQmxvY2sqIG1fY29kZUJsb2NrOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdHcmFwaFNhZmVwb2ludC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdHcmFwaFNhZmVwb2ludC5jcHAJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoU2FmZXBvaW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MCwwICsxLDQ3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJERkdHcmFwaFNhZmVwb2ludC5oIgor
CisjaWYgRU5BQkxFKERGR19KSVQpCisKKyNpbmNsdWRlICJERkdHcmFwaC5oIgorCituYW1lc3Bh
Y2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CisKK0dyYXBoU2FmZXBvaW50OjpHcmFwaFNhZmVwb2lu
dChHcmFwaCYgZ3JhcGgpCisgICAgOiBtX3NhZmVwb2ludChncmFwaC5tX3BsYW4pCit7CisgICAg
bV9zYWZlcG9pbnQuYWRkKCZncmFwaCk7CisgICAgbV9zYWZlcG9pbnQuYmVnaW4oKTsKK30KKwor
R3JhcGhTYWZlcG9pbnQ6On5HcmFwaFNhZmVwb2ludCgpIHsgfQorCit9IH0gLy8gbmFtZXNwYWNl
IEpTQzo6REZHCisKKyNlbmRpZiAvLyBFTkFCTEUoREZHX0pJVCkKKwpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaFNhZmVwb2ludC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGhTYWZlcG9pbnQuaAkocmV2aXNpb24gMCkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGhTYWZlcG9pbnQuaAkod29ya2luZyBj
b3B5KQpAQCAtMCwwICsxLDUxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisg
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuIAorICovCisKKyNpZm5kZWYgREZHR3JhcGhTYWZlcG9pbnRfaAorI2RlZmluZSBERkdHcmFw
aFNhZmVwb2ludF9oCisKKyNpZiBFTkFCTEUoREZHX0pJVCkKKworI2luY2x1ZGUgIkRGR1NhZmVw
b2ludC5oIgorCituYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CisKK2NsYXNzIEdyYXBo
OworCitjbGFzcyBHcmFwaFNhZmVwb2ludCB7CitwdWJsaWM6CisgICAgR3JhcGhTYWZlcG9pbnQo
R3JhcGgmKTsKKyAgICB+R3JhcGhTYWZlcG9pbnQoKTsKKyAgICAKK3ByaXZhdGU6CisgICAgU2Fm
ZXBvaW50IG1fc2FmZXBvaW50OworfTsKKworfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkRGRworCisj
ZW5kaWYgLy8gRU5BQkxFKERGR19KSVQpCisKKyNlbmRpZiAvLyBERkdHcmFwaFNhZmVwb2ludF9o
CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5oCShyZXZp
c2lvbiAxNjM3NjApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMu
aAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTEsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDExLCAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdQbGFuLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1BsYW4uY3BwCShyZXZpc2lvbiAxNjM3NjApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1BsYW4uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00Miw2ICs0Miw3IEBACiAjaW5jbHVkZSAi
REZHRmFpbGVkRmluYWxpemVyLmgiCiAjaW5jbHVkZSAiREZHRmx1c2hMaXZlbmVzc0FuYWx5c2lz
UGhhc2UuaCIKICNpbmNsdWRlICJERkdGaXh1cFBoYXNlLmgiCisjaW5jbHVkZSAiREZHR3JhcGhT
YWZlcG9pbnQuaCIKICNpbmNsdWRlICJERkdJbnZhbGlkYXRpb25Qb2ludEluamVjdGlvblBoYXNl
LmgiCiAjaW5jbHVkZSAiREZHSklUQ29tcGlsZXIuaCIKICNpbmNsdWRlICJERkdMSUNNUGhhc2Uu
aCIKQEAgLTEzNiw4ICsxMzcsMTAgQEAgYm9vbCBQbGFuOjpyZXBvcnRDb21waWxlVGltZXMoKSBj
b25zdAogICAgICAgICB8fCAoT3B0aW9uczo6cmVwb3J0RlRMQ29tcGlsZVRpbWVzKCkgJiYgaXNG
VEwobW9kZSkpOwogfQogCi12b2lkIFBsYW46OmNvbXBpbGVJblRocmVhZChMb25nTGl2ZWRTdGF0
ZSYgbG9uZ0xpdmVkU3RhdGUpCit2b2lkIFBsYW46OmNvbXBpbGVJblRocmVhZChMb25nTGl2ZWRT
dGF0ZSYgbG9uZ0xpdmVkU3RhdGUsIFRocmVhZERhdGEqIHRocmVhZERhdGEpCiB7CisgICAgdGhp
cy0+dGhyZWFkRGF0YSA9IHRocmVhZERhdGE7CisgICAgCiAgICAgZG91YmxlIGJlZm9yZSA9IDA7
CiAgICAgaWYgKHJlcG9ydENvbXBpbGVUaW1lcygpKQogICAgICAgICBiZWZvcmUgPSBjdXJyZW50
VGltZU1TKCk7CkBAIC0zMTQsMTEgKzMxNywxNCBAQCBQbGFuOjpDb21waWxhdGlvblBhdGggUGxh
bjo6Y29tcGlsZUluVGhyCiAgICAgICAgIAogICAgICAgICBkdW1wQW5kVmVyaWZ5R3JhcGgoZGZn
LCAiR3JhcGgganVzdCBiZWZvcmUgRlRMIGxvd2VyaW5nOiIpOwogICAgICAgICAKLSAgICAgICAg
aW5pdGlhbGl6ZUxMVk0oKTsKLSAgICAgICAgCisgICAgICAgIHsKKyAgICAgICAgICAgIEdyYXBo
U2FmZXBvaW50IHNhZmVwb2ludChkZmcpOworICAgICAgICAgICAgaW5pdGlhbGl6ZUxMVk0oKTsK
KyAgICAgICAgfQorICAgICAgICAgICAgCiAgICAgICAgIEZUTDo6U3RhdGUgc3RhdGUoZGZnKTsK
ICAgICAgICAgRlRMOjpsb3dlckRGR1RvTExWTShzdGF0ZSk7Ci0gICAgICAgIAorICAgICAgICAg
ICAgCiAgICAgICAgIGlmIChyZXBvcnRDb21waWxlVGltZXMoKSkKICAgICAgICAgICAgIGJlZm9y
ZUZUTCA9IGN1cnJlbnRUaW1lTVMoKTsKICAgICAgICAgCkBAIC0zMjgsNyArMzM0LDcgQEAgUGxh
bjo6Q29tcGlsYXRpb25QYXRoIFBsYW46OmNvbXBpbGVJblRocgogICAgICAgICB9CiAgICAgICAg
IAogICAgICAgICBGVEw6OmNvbXBpbGUoc3RhdGUpOwotCisgICAgICAgICAgICAKICAgICAgICAg
aWYgKE9wdGlvbnM6Omxsdm1BbHdheXNGYWlsc0JlZm9yZUxpbmsoKSkgewogICAgICAgICAgICAg
RlRMOjpmYWlsKHN0YXRlKTsKICAgICAgICAgICAgIHJldHVybiBGVExQYXRoOwpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQbGFuLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdQbGFuLmgJKHJldmlzaW9uIDE2Mzc2MCkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHUGxhbi5oCSh3b3JraW5nIGNvcHkpCkBAIC01Miw2ICs1Miw3
IEBAIGNsYXNzIFNsb3RWaXNpdG9yOwogbmFtZXNwYWNlIERGRyB7CiAKIGNsYXNzIExvbmdMaXZl
ZFN0YXRlOworY2xhc3MgVGhyZWFkRGF0YTsKIAogI2lmIEVOQUJMRShERkdfSklUKQogCkBAIC02
Miw3ICs2Myw3IEBAIHN0cnVjdCBQbGFuIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGUKICAg
ICAgICAgY29uc3QgT3BlcmFuZHM8SlNWYWx1ZT4mIG11c3RIYW5kbGVWYWx1ZXMpOwogICAgIH5Q
bGFuKCk7CiAgICAgCi0gICAgdm9pZCBjb21waWxlSW5UaHJlYWQoTG9uZ0xpdmVkU3RhdGUmKTsK
KyAgICB2b2lkIGNvbXBpbGVJblRocmVhZChMb25nTGl2ZWRTdGF0ZSYsIFRocmVhZERhdGEqKTsK
ICAgICAKICAgICBDb21waWxhdGlvblJlc3VsdCBmaW5hbGl6ZVdpdGhvdXROb3RpZnlpbmdDYWxs
YmFjaygpOwogICAgIHZvaWQgZmluYWxpemVBbmROb3RpZnlDYWxsYmFjaygpOwpAQCAtNzksNiAr
ODAsOCBAQCBzdHJ1Y3QgUGxhbiA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlCiAgICAgQ29t
cGlsYXRpb25Nb2RlIG1vZGU7CiAgICAgY29uc3QgdW5zaWduZWQgb3NyRW50cnlCeXRlY29kZUlu
ZGV4OwogICAgIE9wZXJhbmRzPEpTVmFsdWU+IG11c3RIYW5kbGVWYWx1ZXM7CisgICAgCisgICAg
VGhyZWFkRGF0YSogdGhyZWFkRGF0YTsKIAogICAgIFJlZlB0cjxQcm9maWxlcjo6Q29tcGlsYXRp
b24+IGNvbXBpbGF0aW9uOwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nh
ZmVwb2ludC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdT
YWZlcG9pbnQuY3BwCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdTYWZlcG9pbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNzQgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIkRGR1NhZmVwb2ludC5oIgorCisjaWYgRU5BQkxFKERGR19KSVQpCisKKyNp
bmNsdWRlICJERkdQbGFuLmgiCisjaW5jbHVkZSAiREZHU2Nhbm5hYmxlLmgiCisjaW5jbHVkZSAi
REZHVGhyZWFkRGF0YS5oIgorCituYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CisKK1Nh
ZmVwb2ludDo6U2FmZXBvaW50KFBsYW4mIHBsYW4pCisgICAgOiBtX3BsYW4ocGxhbikKKyAgICAs
IG1fZGlkQ2FsbEJlZ2luKGZhbHNlKQoreworfQorCitTYWZlcG9pbnQ6On5TYWZlcG9pbnQoKQor
eworICAgIFJFTEVBU0VfQVNTRVJUKG1fZGlkQ2FsbEJlZ2luKTsKKyAgICBpZiAoVGhyZWFkRGF0
YSogZGF0YSA9IG1fcGxhbi50aHJlYWREYXRhKQorICAgICAgICBkYXRhLT5tX3JpZ2h0VG9SdW4u
bG9jaygpOworfQorCit2b2lkIFNhZmVwb2ludDo6YWRkKFNjYW5uYWJsZSogc2Nhbm5hYmxlKQor
eworICAgIFJFTEVBU0VfQVNTRVJUKCFtX2RpZENhbGxCZWdpbik7CisgICAgbV9zY2FubmFibGVz
LmFwcGVuZChzY2FubmFibGUpOworfQorCit2b2lkIFNhZmVwb2ludDo6YmVnaW4oKQoreworICAg
IFJFTEVBU0VfQVNTRVJUKCFtX2RpZENhbGxCZWdpbik7CisgICAgaWYgKFRocmVhZERhdGEqIGRh
dGEgPSBtX3BsYW4udGhyZWFkRGF0YSkKKyAgICAgICAgZGF0YS0+bV9yaWdodFRvUnVuLnVubG9j
aygpOworICAgIG1fZGlkQ2FsbEJlZ2luID0gdHJ1ZTsKK30KKwordm9pZCBTYWZlcG9pbnQ6OnZp
c2l0Q2hpbGRyZW4oU2xvdFZpc2l0b3ImIHZpc2l0b3IpCit7CisgICAgUkVMRUFTRV9BU1NFUlQo
bV9kaWRDYWxsQmVnaW4pOworICAgIGZvciAodW5zaWduZWQgaSA9IG1fc2Nhbm5hYmxlcy5zaXpl
KCk7IGktLTspCisgICAgICAgIG1fc2Nhbm5hYmxlc1tpXS0+dmlzaXRDaGlsZHJlbih2aXNpdG9y
KTsKK30KKworfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkRGRworCisjZW5kaWYgLy8gRU5BQkxFKERG
R19KSVQpCisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZXBvaW50LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTYWZlcG9pbnQuaAko
cmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZXBvaW50LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw2NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
NCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIERGR1NhZmVwb2ludF9oCisjZGVmaW5lIERG
R1NhZmVwb2ludF9oCisKKyNpZiBFTkFCTEUoREZHX0pJVCkKKworI2luY2x1ZGUgPHd0Zi9WZWN0
b3IuaD4KKworbmFtZXNwYWNlIEpTQyB7CisKK2NsYXNzIFNsb3RWaXNpdG9yOworCituYW1lc3Bh
Y2UgREZHIHsKKworY2xhc3MgU2Nhbm5hYmxlOworc3RydWN0IFBsYW47CisKK2NsYXNzIFNhZmVw
b2ludCB7CitwdWJsaWM6CisgICAgU2FmZXBvaW50KFBsYW4mKTsKKyAgICB+U2FmZXBvaW50KCk7
CisgICAgCisgICAgdm9pZCBhZGQoU2Nhbm5hYmxlKik7CisgICAgCisgICAgdm9pZCBiZWdpbigp
OworICAgIAorICAgIHZvaWQgdmlzaXRDaGlsZHJlbihTbG90VmlzaXRvciYpOworICAgIAorcHJp
dmF0ZToKKyAgICBQbGFuJiBtX3BsYW47CisgICAgVmVjdG9yPFNjYW5uYWJsZSo+IG1fc2Nhbm5h
YmxlczsKKyAgICBib29sIG1fZGlkQ2FsbEJlZ2luOworfTsKKworfSB9IC8vIG5hbWVzcGFjZSBK
U0M6OkRGRworCisjZW5kaWYgLy8gRU5BQkxFKERGR19KSVQpCisKKyNlbmRpZiAvLyBERkdTYWZl
cG9pbnRfaAorCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NjYW5uYWJsZS5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2Nhbm5hYmxlLmgJ
KHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NjYW5uYWJsZS5o
CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBERkdTY2FubmFibGVfaAorI2RlZmluZSBE
RkdTY2FubmFibGVfaAorCisjaWYgRU5BQkxFKERGR19KSVQpCisKK25hbWVzcGFjZSBKU0Mgewor
CitjbGFzcyBTbG90VmlzaXRvcjsKKworbmFtZXNwYWNlIERGRyB7CisKK2NsYXNzIFNjYW5uYWJs
ZSB7CitwdWJsaWM6CisgICAgU2Nhbm5hYmxlKCkgeyB9CisgICAgdmlydHVhbCB+U2Nhbm5hYmxl
KCkgeyB9CisgICAgCisgICAgdmlydHVhbCB2b2lkIHZpc2l0Q2hpbGRyZW4oU2xvdFZpc2l0b3Im
KSA9IDA7Cit9OworCit9IH0gLy8gbmFtZXNwYWNlIEpTQzo6REZHCisKKyNlbmRpZiAvLyBFTkFC
TEUoREZHX0pJVCkKKworI2VuZGlmIC8vIERGR1NjYW5uYWJsZV9oCisKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHVGhyZWFkRGF0YS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdUaHJlYWREYXRhLmNwcAkocmV2aXNpb24gMCkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVGhyZWFkRGF0YS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTAsMCArMSw0NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAK
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiREZHVGhyZWFkRGF0YS5oIgor
CisjaWYgRU5BQkxFKERGR19KSVQpCisKK25hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsK
KworVGhyZWFkRGF0YTo6VGhyZWFkRGF0YShXb3JrbGlzdCogd29ya2xpc3QpCisgICAgOiBtX3dv
cmtsaXN0KHdvcmtsaXN0KQorICAgICwgbV9pZGVudGlmaWVyKDApCisgICAgLCBtX3NhZmVwb2lu
dChudWxscHRyKQoreworfQorCitUaHJlYWREYXRhOjp+VGhyZWFkRGF0YSgpCit7Cit9CisKK30g
fSAvLyBuYW1lc3BhY2UgSlNDOjpERkcKKworI2VuZGlmIC8vIEVOQUJMRShERkdfSklUKQorCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1RocmVhZERhdGEuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1RocmVhZERhdGEuaAkocmV2aXNpb24g
MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVGhyZWFkRGF0YS5oCSh3b3JraW5n
IGNvcHkpCkBAIC0wLDAgKzEsNTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
KyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4gCisgKi8KKworI2lmbmRlZiBERkdUaHJlYWREYXRhX2gKKyNkZWZpbmUgREZHVGhyZWFk
RGF0YV9oCisKKyNpZiBFTkFCTEUoREZHX0pJVCkKKworI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcu
aD4KKyNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nUHJpbWl0aXZlcy5oPgorCituYW1lc3BhY2UgSlND
IHsgbmFtZXNwYWNlIERGRyB7CisKK2NsYXNzIFNhZmVwb2ludDsKK2NsYXNzIFdvcmtsaXN0Owor
CitjbGFzcyBUaHJlYWREYXRhIHsKK3B1YmxpYzoKKyAgICBUaHJlYWREYXRhKFdvcmtsaXN0Kik7
CisgICAgflRocmVhZERhdGEoKTsKKyAgICAKK3ByaXZhdGU6CisgICAgZnJpZW5kIGNsYXNzIFNh
ZmVwb2ludDsKKyAgICBmcmllbmQgY2xhc3MgV29ya2xpc3Q7CisgICAgCisgICAgV29ya2xpc3Qq
IG1fd29ya2xpc3Q7CisgICAgVGhyZWFkSWRlbnRpZmllciBtX2lkZW50aWZpZXI7CisgICAgTXV0
ZXggbV9yaWdodFRvUnVuOworICAgIFNhZmVwb2ludCogbV9zYWZlcG9pbnQ7Cit9OworCit9IH0g
Ly8gbmFtZXNwYWNlIEpTQzo6REZHCisKKyNlbmRpZiAvLyBFTkFCTEUoREZHX0pJVCkKKworI2Vu
ZGlmIC8vIERGR1RocmVhZERhdGFfaAorCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1dvcmtsaXN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1dvcmtsaXN0LmNwcAkocmV2aXNpb24gMTYzNzYwKQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdXb3JrbGlzdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMyLDYgKzMyLDcgQEAK
ICNpbmNsdWRlICJDb2RlQmxvY2suaCIKICNpbmNsdWRlICJEZWZlckdDLmgiCiAjaW5jbHVkZSAi
REZHTG9uZ0xpdmVkU3RhdGUuaCIKKyNpbmNsdWRlICJERkdTYWZlcG9pbnQuaCIKICNpbmNsdWRl
ICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSA8bXV0ZXg+CiAKQEAgLTU5LDggKzYwLDcgQEAgdm9p
ZCBXb3JrbGlzdDo6ZmluaXNoQ3JlYXRpb24odW5zaWduZWQgbgogewogICAgIFJFTEVBU0VfQVNT
RVJUKG51bWJlck9mVGhyZWFkcyk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gbnVtYmVyT2ZUaHJl
YWRzOyBpLS07KSB7Ci0gICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxUaHJlYWREYXRhPiBkYXRhID0g
c3RkOjptYWtlX3VuaXF1ZTxUaHJlYWREYXRhPigpOwotICAgICAgICBkYXRhLT5tX3dvcmtsaXN0
ID0gdGhpczsKKyAgICAgICAgc3RkOjp1bmlxdWVfcHRyPFRocmVhZERhdGE+IGRhdGEgPSBzdGQ6
Om1ha2VfdW5pcXVlPFRocmVhZERhdGE+KHRoaXMpOwogICAgICAgICBkYXRhLT5tX2lkZW50aWZp
ZXIgPSBjcmVhdGVUaHJlYWQodGhyZWFkRnVuY3Rpb24sIGRhdGEuZ2V0KCksICJKU0MgQ29tcGls
YXRpb24gVGhyZWFkIik7CiAgICAgICAgIG1fdGhyZWFkcy5hcHBlbmQoc3RkOjptb3ZlKGRhdGEp
KTsKICAgICB9CkBAIC0yMTIsNiArMjEyLDEyIEBAIHZvaWQgV29ya2xpc3Q6OnZpc2l0Q2hpbGRy
ZW4oU2xvdFZpc2l0b3IKICAgICAgICAgaXRlci0+a2V5LnZpc2l0Q2hpbGRyZW4oY29kZUJsb2Nr
cyk7CiAgICAgICAgIGl0ZXItPnZhbHVlLT52aXNpdENoaWxkcmVuKHZpc2l0b3IsIGNvZGVCbG9j
a3MpOwogICAgIH0KKyAgICAKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSBtX3RocmVhZHMuc2l6ZSgp
OyBpLS07KSB7CisgICAgICAgIFRocmVhZERhdGEqIGRhdGEgPSBtX3RocmVhZHNbaV0uZ2V0KCk7
CisgICAgICAgIGlmIChTYWZlcG9pbnQqIHNhZmVwb2ludCA9IGRhdGEtPm1fc2FmZXBvaW50KQor
ICAgICAgICAgICAgc2FmZXBvaW50LT52aXNpdENoaWxkcmVuKHZpc2l0b3IpOworICAgIH0KIH0K
IAogc2l6ZV90IFdvcmtsaXN0OjpxdWV1ZUxlbmd0aCgpCkBAIC0yNjcsNyArMjczLDcgQEAgdm9p
ZCBXb3JrbGlzdDo6cnVuVGhyZWFkKFRocmVhZERhdGEqIGRhdAogICAgICAgICAgICAgaWYgKE9w
dGlvbnM6OnZlcmJvc2VDb21waWxhdGlvblF1ZXVlKCkpCiAgICAgICAgICAgICAgICAgZGF0YUxv
ZygqdGhpcywgIjogQ29tcGlsaW5nICIsIHBsYW4tPmtleSgpLCAiIGFzeW5jaHJvbm91c2x5XG4i
KTsKICAgICAgICAgCi0gICAgICAgICAgICBwbGFuLT5jb21waWxlSW5UaHJlYWQobG9uZ0xpdmVk
U3RhdGUpOworICAgICAgICAgICAgcGxhbi0+Y29tcGlsZUluVGhyZWFkKGxvbmdMaXZlZFN0YXRl
LCBkYXRhKTsKICAgICAgICAgfQogICAgICAgICAKICAgICAgICAgewpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdXb3JrbGlzdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHV29ya2xpc3QuaAkocmV2aXNpb24gMTYzNzYwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdXb3JrbGlzdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2
ICszMSw3IEBACiAjaWYgRU5BQkxFKERGR19KSVQpCiAKICNpbmNsdWRlICJERkdQbGFuLmgiCisj
aW5jbHVkZSAiREZHVGhyZWFkRGF0YS5oIgogI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgogI2luY2x1
ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CkBAIC03Nywx
MiArNzgsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBkdW1wKFByaW50U3RyZWFtJikgY29uc3Q7CiAg
ICAgCiBwcml2YXRlOgotICAgIHN0cnVjdCBUaHJlYWREYXRhIHsKLSAgICAgICAgV29ya2xpc3Qq
IG1fd29ya2xpc3Q7Ci0gICAgICAgIFRocmVhZElkZW50aWZpZXIgbV9pZGVudGlmaWVyOwotICAg
ICAgICBNdXRleCBtX3JpZ2h0VG9SdW47Ci0gICAgfTsKLSAgICAKICAgICBXb3JrbGlzdCgpOwog
ICAgIHZvaWQgZmluaXNoQ3JlYXRpb24odW5zaWduZWQgbnVtYmVyT2ZUaHJlYWRzKTsKICAgICAK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ29tcGlsZS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDb21waWxlLmNwcAkocmV2aXNpb24g
MTYzNzYwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDb21waWxlLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkNvZGVCbG9ja1dpdGhKSVRU
eXBlLmgiCiAjaW5jbHVkZSAiQ0NhbGxIZWxwZXJzLmgiCiAjaW5jbHVkZSAiREZHQ29tbW9uLmgi
CisjaW5jbHVkZSAiREZHR3JhcGhTYWZlcG9pbnQuaCIKICNpbmNsdWRlICJEYXRhVmlldy5oIgog
I2luY2x1ZGUgIkRpc2Fzc2VtYmxlci5oIgogI2luY2x1ZGUgIkZUTEV4aXRUaHVua0dlbmVyYXRv
ci5oIgpAQCAtNDUyLDcwICs0NTMsNzQgQEAgdm9pZCBjb21waWxlKFN0YXRlJiBzdGF0ZSkKIHsK
ICAgICBjaGFyKiBlcnJvciA9IDA7CiAgICAgCi0gICAgTExWTU1DSklUQ29tcGlsZXJPcHRpb25z
IG9wdGlvbnM7Ci0gICAgbGx2bS0+SW5pdGlhbGl6ZU1DSklUQ29tcGlsZXJPcHRpb25zKCZvcHRp
b25zLCBzaXplb2Yob3B0aW9ucykpOwotICAgIG9wdGlvbnMuT3B0TGV2ZWwgPSBPcHRpb25zOjps
bHZtQmFja2VuZE9wdGltaXphdGlvbkxldmVsKCk7Ci0gICAgb3B0aW9ucy5Ob0ZyYW1lUG9pbnRl
ckVsaW0gPSB0cnVlOwotICAgIGlmIChPcHRpb25zOjp1c2VMTFZNU21hbGxDb2RlTW9kZWwoKSkK
LSAgICAgICAgb3B0aW9ucy5Db2RlTW9kZWwgPSBMTFZNQ29kZU1vZGVsU21hbGw7Ci0gICAgb3B0
aW9ucy5FbmFibGVGYXN0SVNlbCA9IE9wdGlvbnM6OmVuYWJsZUxMVk1GYXN0SVNlbCgpOwotICAg
IG9wdGlvbnMuTUNKTU0gPSBsbHZtLT5DcmVhdGVTaW1wbGVNQ0pJVE1lbW9yeU1hbmFnZXIoCi0g
ICAgICAgICZzdGF0ZSwgbW1BbGxvY2F0ZUNvZGVTZWN0aW9uLCBtbUFsbG9jYXRlRGF0YVNlY3Rp
b24sIG1tQXBwbHlQZXJtaXNzaW9ucywgbW1EZXN0cm95KTsKLSAgICAKLSAgICBMTFZNRXhlY3V0
aW9uRW5naW5lUmVmIGVuZ2luZTsKLSAgICAKLSAgICBpZiAobGx2bS0+Q3JlYXRlTUNKSVRDb21w
aWxlckZvck1vZHVsZSgmZW5naW5lLCBzdGF0ZS5tb2R1bGUsICZvcHRpb25zLCBzaXplb2Yob3B0
aW9ucyksICZlcnJvcikpIHsKLSAgICAgICAgZGF0YUxvZygiRkFUQUw6IENvdWxkIG5vdCBjcmVh
dGUgTExWTSBleGVjdXRpb24gZW5naW5lOiAiLCBlcnJvciwgIlxuIik7Ci0gICAgICAgIENSQVNI
KCk7Ci0gICAgfQotCi0gICAgTExWTVBhc3NNYW5hZ2VyUmVmIGZ1bmN0aW9uUGFzc2VzID0gMDsK
LSAgICBMTFZNUGFzc01hbmFnZXJSZWYgbW9kdWxlUGFzc2VzOwotICAgIAotICAgIGlmIChPcHRp
b25zOjpsbHZtU2ltcGxlT3B0KCkpIHsKLSAgICAgICAgbW9kdWxlUGFzc2VzID0gbGx2bS0+Q3Jl
YXRlUGFzc01hbmFnZXIoKTsKLSAgICAgICAgbGx2bS0+QWRkVGFyZ2V0RGF0YShsbHZtLT5HZXRF
eGVjdXRpb25FbmdpbmVUYXJnZXREYXRhKGVuZ2luZSksIG1vZHVsZVBhc3Nlcyk7Ci0gICAgICAg
IGxsdm0tPkFkZFByb21vdGVNZW1vcnlUb1JlZ2lzdGVyUGFzcyhtb2R1bGVQYXNzZXMpOwotICAg
ICAgICBsbHZtLT5BZGRDb25zdGFudFByb3BhZ2F0aW9uUGFzcyhtb2R1bGVQYXNzZXMpOwotICAg
ICAgICBsbHZtLT5BZGRJbnN0cnVjdGlvbkNvbWJpbmluZ1Bhc3MobW9kdWxlUGFzc2VzKTsKLSAg
ICAgICAgbGx2bS0+QWRkQmFzaWNBbGlhc0FuYWx5c2lzUGFzcyhtb2R1bGVQYXNzZXMpOwotICAg
ICAgICBsbHZtLT5BZGRUeXBlQmFzZWRBbGlhc0FuYWx5c2lzUGFzcyhtb2R1bGVQYXNzZXMpOwot
ICAgICAgICBsbHZtLT5BZGRHVk5QYXNzKG1vZHVsZVBhc3Nlcyk7Ci0gICAgICAgIGxsdm0tPkFk
ZENGR1NpbXBsaWZpY2F0aW9uUGFzcyhtb2R1bGVQYXNzZXMpOwotICAgICAgICBsbHZtLT5SdW5Q
YXNzTWFuYWdlcihtb2R1bGVQYXNzZXMsIHN0YXRlLm1vZHVsZSk7Ci0gICAgfSBlbHNlIHsKLSAg
ICAgICAgTExWTVBhc3NNYW5hZ2VyQnVpbGRlclJlZiBwYXNzQnVpbGRlciA9IGxsdm0tPlBhc3NN
YW5hZ2VyQnVpbGRlckNyZWF0ZSgpOwotICAgICAgICBsbHZtLT5QYXNzTWFuYWdlckJ1aWxkZXJT
ZXRPcHRMZXZlbChwYXNzQnVpbGRlciwgT3B0aW9uczo6bGx2bU9wdGltaXphdGlvbkxldmVsKCkp
OwotICAgICAgICBsbHZtLT5QYXNzTWFuYWdlckJ1aWxkZXJTZXRTaXplTGV2ZWwocGFzc0J1aWxk
ZXIsIE9wdGlvbnM6Omxsdm1TaXplTGV2ZWwoKSk7Ci0gICAgICAgIAotICAgICAgICBmdW5jdGlv
blBhc3NlcyA9IGxsdm0tPkNyZWF0ZUZ1bmN0aW9uUGFzc01hbmFnZXJGb3JNb2R1bGUoc3RhdGUu
bW9kdWxlKTsKLSAgICAgICAgbW9kdWxlUGFzc2VzID0gbGx2bS0+Q3JlYXRlUGFzc01hbmFnZXIo
KTsKLSAgICAgICAgCi0gICAgICAgIGxsdm0tPkFkZFRhcmdldERhdGEobGx2bS0+R2V0RXhlY3V0
aW9uRW5naW5lVGFyZ2V0RGF0YShlbmdpbmUpLCBtb2R1bGVQYXNzZXMpOwotICAgICAgICAKLSAg
ICAgICAgbGx2bS0+UGFzc01hbmFnZXJCdWlsZGVyUG9wdWxhdGVGdW5jdGlvblBhc3NNYW5hZ2Vy
KHBhc3NCdWlsZGVyLCBmdW5jdGlvblBhc3Nlcyk7Ci0gICAgICAgIGxsdm0tPlBhc3NNYW5hZ2Vy
QnVpbGRlclBvcHVsYXRlTW9kdWxlUGFzc01hbmFnZXIocGFzc0J1aWxkZXIsIG1vZHVsZVBhc3Nl
cyk7Ci0gICAgICAgIAotICAgICAgICBsbHZtLT5QYXNzTWFuYWdlckJ1aWxkZXJEaXNwb3NlKHBh
c3NCdWlsZGVyKTsKLSAgICAgICAgCi0gICAgICAgIGxsdm0tPkluaXRpYWxpemVGdW5jdGlvblBh
c3NNYW5hZ2VyKGZ1bmN0aW9uUGFzc2VzKTsKLSAgICAgICAgZm9yIChMVmFsdWUgZnVuY3Rpb24g
PSBsbHZtLT5HZXRGaXJzdEZ1bmN0aW9uKHN0YXRlLm1vZHVsZSk7IGZ1bmN0aW9uOyBmdW5jdGlv
biA9IGxsdm0tPkdldE5leHRGdW5jdGlvbihmdW5jdGlvbikpCi0gICAgICAgICAgICBsbHZtLT5S
dW5GdW5jdGlvblBhc3NNYW5hZ2VyKGZ1bmN0aW9uUGFzc2VzLCBmdW5jdGlvbik7Ci0gICAgICAg
IGxsdm0tPkZpbmFsaXplRnVuY3Rpb25QYXNzTWFuYWdlcihmdW5jdGlvblBhc3Nlcyk7Ci0gICAg
ICAgIAotICAgICAgICBsbHZtLT5SdW5QYXNzTWFuYWdlcihtb2R1bGVQYXNzZXMsIHN0YXRlLm1v
ZHVsZSk7Ci0gICAgfQotCi0gICAgaWYgKERGRzo6c2hvdWxkU2hvd0Rpc2Fzc2VtYmx5KCkgfHwg
REZHOjp2ZXJib3NlQ29tcGlsYXRpb25FbmFibGVkKCkpCi0gICAgICAgIHN0YXRlLmR1bXBTdGF0
ZSgiYWZ0ZXIgb3B0aW1pemF0aW9uIik7Ci0gICAgCi0gICAgLy8gRklYTUU6IE5lZWQgdG8gYWRk
IHN1cHBvcnQgZm9yIHRoZSBjYXNlIHdoZXJlIEpJVCBtZW1vcnkgYWxsb2NhdGlvbiBmYWlsZWQu
Ci0gICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMzYyMAot
ICAgIHN0YXRlLmdlbmVyYXRlZEZ1bmN0aW9uID0gcmVpbnRlcnByZXRfY2FzdDxHZW5lcmF0ZWRG
dW5jdGlvbj4obGx2bS0+R2V0UG9pbnRlclRvR2xvYmFsKGVuZ2luZSwgc3RhdGUuZnVuY3Rpb24p
KTsKLSAgICBpZiAoZnVuY3Rpb25QYXNzZXMpCi0gICAgICAgIGxsdm0tPkRpc3Bvc2VQYXNzTWFu
YWdlcihmdW5jdGlvblBhc3Nlcyk7Ci0gICAgbGx2bS0+RGlzcG9zZVBhc3NNYW5hZ2VyKG1vZHVs
ZVBhc3Nlcyk7Ci0gICAgbGx2bS0+RGlzcG9zZUV4ZWN1dGlvbkVuZ2luZShlbmdpbmUpOworICAg
IHsKKyAgICAgICAgR3JhcGhTYWZlcG9pbnQgc2FmZXBvaW50KHN0YXRlLmdyYXBoKTsKKyAgICAg
ICAgCisgICAgICAgIExMVk1NQ0pJVENvbXBpbGVyT3B0aW9ucyBvcHRpb25zOworICAgICAgICBs
bHZtLT5Jbml0aWFsaXplTUNKSVRDb21waWxlck9wdGlvbnMoJm9wdGlvbnMsIHNpemVvZihvcHRp
b25zKSk7CisgICAgICAgIG9wdGlvbnMuT3B0TGV2ZWwgPSBPcHRpb25zOjpsbHZtQmFja2VuZE9w
dGltaXphdGlvbkxldmVsKCk7CisgICAgICAgIG9wdGlvbnMuTm9GcmFtZVBvaW50ZXJFbGltID0g
dHJ1ZTsKKyAgICAgICAgaWYgKE9wdGlvbnM6OnVzZUxMVk1TbWFsbENvZGVNb2RlbCgpKQorICAg
ICAgICAgICAgb3B0aW9ucy5Db2RlTW9kZWwgPSBMTFZNQ29kZU1vZGVsU21hbGw7CisgICAgICAg
IG9wdGlvbnMuRW5hYmxlRmFzdElTZWwgPSBPcHRpb25zOjplbmFibGVMTFZNRmFzdElTZWwoKTsK
KyAgICAgICAgb3B0aW9ucy5NQ0pNTSA9IGxsdm0tPkNyZWF0ZVNpbXBsZU1DSklUTWVtb3J5TWFu
YWdlcigKKyAgICAgICAgICAgICZzdGF0ZSwgbW1BbGxvY2F0ZUNvZGVTZWN0aW9uLCBtbUFsbG9j
YXRlRGF0YVNlY3Rpb24sIG1tQXBwbHlQZXJtaXNzaW9ucywgbW1EZXN0cm95KTsKKyAgICAKKyAg
ICAgICAgTExWTUV4ZWN1dGlvbkVuZ2luZVJlZiBlbmdpbmU7CisgICAgCisgICAgICAgIGlmIChs
bHZtLT5DcmVhdGVNQ0pJVENvbXBpbGVyRm9yTW9kdWxlKCZlbmdpbmUsIHN0YXRlLm1vZHVsZSwg
Jm9wdGlvbnMsIHNpemVvZihvcHRpb25zKSwgJmVycm9yKSkgeworICAgICAgICAgICAgZGF0YUxv
ZygiRkFUQUw6IENvdWxkIG5vdCBjcmVhdGUgTExWTSBleGVjdXRpb24gZW5naW5lOiAiLCBlcnJv
ciwgIlxuIik7CisgICAgICAgICAgICBDUkFTSCgpOworICAgICAgICB9CisKKyAgICAgICAgTExW
TVBhc3NNYW5hZ2VyUmVmIGZ1bmN0aW9uUGFzc2VzID0gMDsKKyAgICAgICAgTExWTVBhc3NNYW5h
Z2VyUmVmIG1vZHVsZVBhc3NlczsKKyAgICAKKyAgICAgICAgaWYgKE9wdGlvbnM6Omxsdm1TaW1w
bGVPcHQoKSkgeworICAgICAgICAgICAgbW9kdWxlUGFzc2VzID0gbGx2bS0+Q3JlYXRlUGFzc01h
bmFnZXIoKTsKKyAgICAgICAgICAgIGxsdm0tPkFkZFRhcmdldERhdGEobGx2bS0+R2V0RXhlY3V0
aW9uRW5naW5lVGFyZ2V0RGF0YShlbmdpbmUpLCBtb2R1bGVQYXNzZXMpOworICAgICAgICAgICAg
bGx2bS0+QWRkUHJvbW90ZU1lbW9yeVRvUmVnaXN0ZXJQYXNzKG1vZHVsZVBhc3Nlcyk7CisgICAg
ICAgICAgICBsbHZtLT5BZGRDb25zdGFudFByb3BhZ2F0aW9uUGFzcyhtb2R1bGVQYXNzZXMpOwor
ICAgICAgICAgICAgbGx2bS0+QWRkSW5zdHJ1Y3Rpb25Db21iaW5pbmdQYXNzKG1vZHVsZVBhc3Nl
cyk7CisgICAgICAgICAgICBsbHZtLT5BZGRCYXNpY0FsaWFzQW5hbHlzaXNQYXNzKG1vZHVsZVBh
c3Nlcyk7CisgICAgICAgICAgICBsbHZtLT5BZGRUeXBlQmFzZWRBbGlhc0FuYWx5c2lzUGFzcyht
b2R1bGVQYXNzZXMpOworICAgICAgICAgICAgbGx2bS0+QWRkR1ZOUGFzcyhtb2R1bGVQYXNzZXMp
OworICAgICAgICAgICAgbGx2bS0+QWRkQ0ZHU2ltcGxpZmljYXRpb25QYXNzKG1vZHVsZVBhc3Nl
cyk7CisgICAgICAgICAgICBsbHZtLT5SdW5QYXNzTWFuYWdlcihtb2R1bGVQYXNzZXMsIHN0YXRl
Lm1vZHVsZSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBMTFZNUGFzc01hbmFnZXJC
dWlsZGVyUmVmIHBhc3NCdWlsZGVyID0gbGx2bS0+UGFzc01hbmFnZXJCdWlsZGVyQ3JlYXRlKCk7
CisgICAgICAgICAgICBsbHZtLT5QYXNzTWFuYWdlckJ1aWxkZXJTZXRPcHRMZXZlbChwYXNzQnVp
bGRlciwgT3B0aW9uczo6bGx2bU9wdGltaXphdGlvbkxldmVsKCkpOworICAgICAgICAgICAgbGx2
bS0+UGFzc01hbmFnZXJCdWlsZGVyU2V0U2l6ZUxldmVsKHBhc3NCdWlsZGVyLCBPcHRpb25zOjps
bHZtU2l6ZUxldmVsKCkpOworICAgICAgICAKKyAgICAgICAgICAgIGZ1bmN0aW9uUGFzc2VzID0g
bGx2bS0+Q3JlYXRlRnVuY3Rpb25QYXNzTWFuYWdlckZvck1vZHVsZShzdGF0ZS5tb2R1bGUpOwor
ICAgICAgICAgICAgbW9kdWxlUGFzc2VzID0gbGx2bS0+Q3JlYXRlUGFzc01hbmFnZXIoKTsKKyAg
ICAgICAgCisgICAgICAgICAgICBsbHZtLT5BZGRUYXJnZXREYXRhKGxsdm0tPkdldEV4ZWN1dGlv
bkVuZ2luZVRhcmdldERhdGEoZW5naW5lKSwgbW9kdWxlUGFzc2VzKTsKKyAgICAgICAgCisgICAg
ICAgICAgICBsbHZtLT5QYXNzTWFuYWdlckJ1aWxkZXJQb3B1bGF0ZUZ1bmN0aW9uUGFzc01hbmFn
ZXIocGFzc0J1aWxkZXIsIGZ1bmN0aW9uUGFzc2VzKTsKKyAgICAgICAgICAgIGxsdm0tPlBhc3NN
YW5hZ2VyQnVpbGRlclBvcHVsYXRlTW9kdWxlUGFzc01hbmFnZXIocGFzc0J1aWxkZXIsIG1vZHVs
ZVBhc3Nlcyk7CisgICAgICAgIAorICAgICAgICAgICAgbGx2bS0+UGFzc01hbmFnZXJCdWlsZGVy
RGlzcG9zZShwYXNzQnVpbGRlcik7CisgICAgICAgIAorICAgICAgICAgICAgbGx2bS0+SW5pdGlh
bGl6ZUZ1bmN0aW9uUGFzc01hbmFnZXIoZnVuY3Rpb25QYXNzZXMpOworICAgICAgICAgICAgZm9y
IChMVmFsdWUgZnVuY3Rpb24gPSBsbHZtLT5HZXRGaXJzdEZ1bmN0aW9uKHN0YXRlLm1vZHVsZSk7
IGZ1bmN0aW9uOyBmdW5jdGlvbiA9IGxsdm0tPkdldE5leHRGdW5jdGlvbihmdW5jdGlvbikpCisg
ICAgICAgICAgICAgICAgbGx2bS0+UnVuRnVuY3Rpb25QYXNzTWFuYWdlcihmdW5jdGlvblBhc3Nl
cywgZnVuY3Rpb24pOworICAgICAgICAgICAgbGx2bS0+RmluYWxpemVGdW5jdGlvblBhc3NNYW5h
Z2VyKGZ1bmN0aW9uUGFzc2VzKTsKKyAgICAgICAgCisgICAgICAgICAgICBsbHZtLT5SdW5QYXNz
TWFuYWdlcihtb2R1bGVQYXNzZXMsIHN0YXRlLm1vZHVsZSk7CisgICAgICAgIH0KKworICAgICAg
ICBpZiAoREZHOjpzaG91bGRTaG93RGlzYXNzZW1ibHkoKSB8fCBERkc6OnZlcmJvc2VDb21waWxh
dGlvbkVuYWJsZWQoKSkKKyAgICAgICAgICAgIHN0YXRlLmR1bXBTdGF0ZSgiYWZ0ZXIgb3B0aW1p
emF0aW9uIik7CisgICAgCisgICAgICAgIC8vIEZJWE1FOiBOZWVkIHRvIGFkZCBzdXBwb3J0IGZv
ciB0aGUgY2FzZSB3aGVyZSBKSVQgbWVtb3J5IGFsbG9jYXRpb24gZmFpbGVkLgorICAgICAgICAv
LyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEzNjIwCisgICAgICAg
IHN0YXRlLmdlbmVyYXRlZEZ1bmN0aW9uID0gcmVpbnRlcnByZXRfY2FzdDxHZW5lcmF0ZWRGdW5j
dGlvbj4obGx2bS0+R2V0UG9pbnRlclRvR2xvYmFsKGVuZ2luZSwgc3RhdGUuZnVuY3Rpb24pKTsK
KyAgICAgICAgaWYgKGZ1bmN0aW9uUGFzc2VzKQorICAgICAgICAgICAgbGx2bS0+RGlzcG9zZVBh
c3NNYW5hZ2VyKGZ1bmN0aW9uUGFzc2VzKTsKKyAgICAgICAgbGx2bS0+RGlzcG9zZVBhc3NNYW5h
Z2VyKG1vZHVsZVBhc3Nlcyk7CisgICAgICAgIGxsdm0tPkRpc3Bvc2VFeGVjdXRpb25FbmdpbmUo
ZW5naW5lKTsKKyAgICB9CiAKICAgICBpZiAoc2hvdWxkU2hvd0Rpc2Fzc2VtYmx5KCkpIHsKICAg
ICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHN0YXRlLmppdENvZGUtPmhhbmRsZXMoKS5z
aXplKCk7ICsraSkgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvU2xvdFZpc2l0
b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TbG90VmlzaXRv
ci5oCShyZXZpc2lvbiAxNjM3NjApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TbG90
VmlzaXRvci5oCSh3b3JraW5nIGNvcHkpCkBAIC02OCw2ICs2OCw5IEBAIHB1YmxpYzoKICAgICB2
b2lkIGFwcGVuZFVuYmFycmllcmVkVmFsdWUoSlNWYWx1ZSopOwogICAgIHRlbXBsYXRlPHR5cGVu
YW1lIFQ+CiAgICAgdm9pZCBhcHBlbmRVbmJhcnJpZXJlZFdlYWsoV2VhazxUPiopOworICAgIHRl
bXBsYXRlPHR5cGVuYW1lIFQ+CisgICAgdm9pZCBhcHBlbmRVbmJhcnJpZXJlZFJlYWRPbmx5UG9p
bnRlcihUKik7CisgICAgdm9pZCBhcHBlbmRVbmJhcnJpZXJlZFJlYWRPbmx5VmFsdWUoSlNWYWx1
ZSk7CiAgICAgdm9pZCB1bmNvbmRpdGlvbmFsbHlBcHBlbmQoSlNDZWxsKik7CiAgICAgCiAgICAg
dm9pZCBhZGRPcGFxdWVSb290KHZvaWQqKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9o
ZWFwL1Nsb3RWaXNpdG9ySW5saW5lcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9oZWFwL1Nsb3RWaXNpdG9ySW5saW5lcy5oCShyZXZpc2lvbiAxNjM3NjApCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TbG90VmlzaXRvcklubGluZXMuaAkod29ya2luZyBjb3B5
KQpAQCAtNTEsNiArNTEsMTIgQEAgaW5saW5lIHZvaWQgU2xvdFZpc2l0b3I6OmFwcGVuZFVuYmFy
cmllcgogICAgIGludGVybmFsQXBwZW5kKHNsb3QsIGNlbGwpOwogfQogCit0ZW1wbGF0ZTx0eXBl
bmFtZSBUPgoraW5saW5lIHZvaWQgU2xvdFZpc2l0b3I6OmFwcGVuZFVuYmFycmllcmVkUmVhZE9u
bHlQb2ludGVyKFQqIGNlbGwpCit7CisgICAgaW50ZXJuYWxBcHBlbmQoMCwgY2VsbCk7Cit9CisK
IEFMV0FZU19JTkxJTkUgdm9pZCBTbG90VmlzaXRvcjo6YXBwZW5kKEpTVmFsdWUqIHNsb3QpCiB7
CiAgICAgQVNTRVJUKHNsb3QpOwpAQCAtNjMsNiArNjksMTEgQEAgQUxXQVlTX0lOTElORSB2b2lk
IFNsb3RWaXNpdG9yOjphcHBlbmRVbgogICAgIGludGVybmFsQXBwZW5kKHNsb3QsICpzbG90KTsK
IH0KIAorQUxXQVlTX0lOTElORSB2b2lkIFNsb3RWaXNpdG9yOjphcHBlbmRVbmJhcnJpZXJlZFJl
YWRPbmx5VmFsdWUoSlNWYWx1ZSB2YWx1ZSkKK3sKKyAgICBpbnRlcm5hbEFwcGVuZCgwLCB2YWx1
ZSk7Cit9CisKIEFMV0FZU19JTkxJTkUgdm9pZCBTbG90VmlzaXRvcjo6YXBwZW5kKEpTQ2VsbCoq
IHNsb3QpCiB7CiAgICAgQVNTRVJUKHNsb3QpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>223664</attachid>
            <date>2014-02-09 19:01:22 -0800</date>
            <delta_ts>2014-02-09 21:05:55 -0800</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>53464</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTYzNzYwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDY2IEBA
CisyMDE0LTAyLTA5ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
R0MgYmxvY2tzIG9uIEZUTCBhbmQgdGhlbiBiYWRuZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjgyOTEKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIEludHJvZHVjZSB0aGUgbm90aW9uIG9m
IGEgREZHOjpTYWZlcG9pbnQsIHdoaWNoIGFsbG93cyB5b3UgdG8gdW5sb2NrIHRoZSByaWdodFRv
UnVuCisgICAgICAgIG11dGV4IGZvciB5b3VyIEpJVCB0aHJlYWQsIHdoaWxlIHN1cHBseWluZyB0
aGUgR0Mgd2l0aCBhbGwgb2YgdGhlIGluZm9ybWF0aW9uIGl0IHdvdWxkCisgICAgICAgIG5lZWQg
dG8gc2NhbiB5b3UgYXQgdGhhdCBtb21lbnQgaW4gdGltZS4gVGhlIGRlZmF1bHQgd2F5IG9mIHVz
aW5nIHRoaXMgaXMKKyAgICAgICAgREZHOjpHcmFwaFNhZmVwb2ludCwgd2hlcmUgeW91IGp1c3Qg
c3VwcGx5IHRoZSBHcmFwaC4gVGhlcmUncyBhIGxvdCBvZiBtYWNoaW5lcnkgaW4KKyAgICAgICAg
dGhpcyBwYXRjaCBqdXN0IHRvIG1ha2UgdGhlIEdyYXBoIHNjYW5uYWJsZS4KKyAgICAgICAgCisg
ICAgICAgIFdlIHRoZW4gdXNlIERGRzo6R3JhcGhTYWZlcG9pbnQgaW4ganVzdCB0d28gcGxhY2Vz
IGZvciBub3c6ICgxKSB3aGlsZSBpbml0aWFsaXppbmcgTExWTQorICAgICAgICBhbmQgKDIpIHdo
aWxlIGludm9raW5nIExMVk0nIG9wdGltaXplciBhbmQgYmFja2VuZC4KKyAgICAgICAgCisgICAg
ICAgIFRoaXMgaXMgYSAzMCUgc3BlZWQtdXAgb24gT2N0YW5lL3R5cGVzY3JpcHQgYW5kIGEgMTAl
IHNwZWVkLXVwIG9uIE9jdGFuZS9nYmVtdS4gMi0zJQorICAgICAgICBzcGVlZC11cCBvdmVyYWxs
IG9uIE9jdGFuZS4KKyAgICAgICAgCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAg
ICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS52Y3hwcm9q
L0phdmFTY3JpcHRDb3JlLnZjeHByb2o6CisgICAgICAgICogSmF2YVNjcmlwdENvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBkZmcvREZHRHJpdmVyLmNwcDoKKyAgICAg
ICAgKEpTQzo6REZHOjpjb21waWxlSW1wbCk6CisgICAgICAgICogZGZnL0RGR0dyYXBoLmNwcDoK
KyAgICAgICAgKEpTQzo6REZHOjpHcmFwaDo6dmlzaXRDaGlsZHJlbik6CisgICAgICAgICogZGZn
L0RGR0dyYXBoLmg6CisgICAgICAgICogZGZnL0RGR0dyYXBoU2FmZXBvaW50LmNwcDogQWRkZWQu
CisgICAgICAgIChKU0M6OkRGRzo6R3JhcGhTYWZlcG9pbnQ6OkdyYXBoU2FmZXBvaW50KToKKyAg
ICAgICAgKEpTQzo6REZHOjpHcmFwaFNhZmVwb2ludDo6fkdyYXBoU2FmZXBvaW50KToKKyAgICAg
ICAgKiBkZmcvREZHR3JhcGhTYWZlcG9pbnQuaDogQWRkZWQuCisgICAgICAgICogZGZnL0RGR09w
ZXJhdGlvbnMuaDoKKyAgICAgICAgKiBkZmcvREZHUGxhbi5jcHA6CisgICAgICAgIChKU0M6OkRG
Rzo6UGxhbjo6Y29tcGlsZUluVGhyZWFkKToKKyAgICAgICAgKEpTQzo6REZHOjpQbGFuOjpjb21w
aWxlSW5UaHJlYWRJbXBsKToKKyAgICAgICAgKiBkZmcvREZHUGxhbi5oOgorICAgICAgICAqIGRm
Zy9ERkdTYWZlcG9pbnQuY3BwOiBBZGRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTYWZlcG9pbnQ6
OlNhZmVwb2ludCk6CisgICAgICAgIChKU0M6OkRGRzo6U2FmZXBvaW50Ojp+U2FmZXBvaW50KToK
KyAgICAgICAgKEpTQzo6REZHOjpTYWZlcG9pbnQ6OmFkZCk6CisgICAgICAgIChKU0M6OkRGRzo6
U2FmZXBvaW50OjpiZWdpbik6CisgICAgICAgIChKU0M6OkRGRzo6U2FmZXBvaW50Ojp2aXNpdENo
aWxkcmVuKToKKyAgICAgICAgKiBkZmcvREZHU2FmZXBvaW50Lmg6IEFkZGVkLgorICAgICAgICAq
IGRmZy9ERkdTY2FubmFibGUuaDogQWRkZWQuCisgICAgICAgIChKU0M6OkRGRzo6U2Nhbm5hYmxl
OjpTY2FubmFibGUpOgorICAgICAgICAoSlNDOjpERkc6OlNjYW5uYWJsZTo6flNjYW5uYWJsZSk6
CisgICAgICAgICogZGZnL0RGR1RocmVhZERhdGEuY3BwOiBBZGRlZC4KKyAgICAgICAgKEpTQzo6
REZHOjpUaHJlYWREYXRhOjpUaHJlYWREYXRhKToKKyAgICAgICAgKEpTQzo6REZHOjpUaHJlYWRE
YXRhOjp+VGhyZWFkRGF0YSk6CisgICAgICAgICogZGZnL0RGR1RocmVhZERhdGEuaDogQWRkZWQu
CisgICAgICAgICogZGZnL0RGR1dvcmtsaXN0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpXb3Jr
bGlzdDo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAoSlNDOjpERkc6OldvcmtsaXN0Ojp2aXNp
dENoaWxkcmVuKToKKyAgICAgICAgKEpTQzo6REZHOjpXb3JrbGlzdDo6cnVuVGhyZWFkKToKKyAg
ICAgICAgKiBkZmcvREZHV29ya2xpc3QuaDoKKyAgICAgICAgKiBmdGwvRlRMQ29tcGlsZS5jcHA6
CisgICAgICAgIChKU0M6OkZUTDo6Y29tcGlsZSk6CisgICAgICAgICogaGVhcC9TbG90VmlzaXRv
ci5oOgorICAgICAgICAqIGhlYXAvU2xvdFZpc2l0b3JJbmxpbmVzLmg6CisgICAgICAgIChKU0M6
OlNsb3RWaXNpdG9yOjphcHBlbmRVbmJhcnJpZXJlZFJlYWRPbmx5UG9pbnRlcik6CisgICAgICAg
IChKU0M6OlNsb3RWaXNpdG9yOjphcHBlbmRVbmJhcnJpZXJlZFJlYWRPbmx5VmFsdWUpOgorCiAy
MDE0LTAyLTA5ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CiAKICAgICAgICAgTmV2
ZXIgaW5jbHVkZSAqSW5saW5lcy5oIGZpbGVzIGluIGludGVyZmFjZSBoZWFkZXJzLCBhbmQgbmV2
ZXIgaW5jbHVkZSAqSW5saW5lcy5oIHdoZW4geW91IGNvdWxkIGluY2x1ZGUgT3BlcmF0aW9ucy5o
IGluc3RlYWQKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQJKHJldmlzaW9u
IDE2Mzc2MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAkod29ya2lu
ZyBjb3B5KQpAQCAtMTM4LDYgKzEzOCw3IEBAIHNldChKYXZhU2NyaXB0Q29yZV9TT1VSQ0VTCiAg
ICAgZGZnL0RGR0ZsdXNoTGl2ZW5lc3NBbmFseXNpc1BoYXNlLmNwcAogICAgIGRmZy9ERkdGbHVz
aGVkQXQuY3BwCiAgICAgZGZnL0RGR0dyYXBoLmNwcAorICAgIGRmZy9ERkdHcmFwaFNhZmVwb2lu
dC5jcHAKICAgICBkZmcvREZHSW5QbGFjZUFic3RyYWN0U3RhdGUuY3BwCiAgICAgZGZnL0RGR0lu
dmFsaWRhdGlvblBvaW50SW5qZWN0aW9uUGhhc2UuY3BwCiAgICAgZGZnL0RGR0pJVENvZGUuY3Bw
CkBAIC0xNzIsMTIgKzE3MywxNCBAQCBzZXQoSmF2YVNjcmlwdENvcmVfU09VUkNFUwogICAgIGRm
Zy9ERkdSZXN1cnJlY3Rpb25Gb3JWYWxpZGF0aW9uUGhhc2UuY3BwCiAgICAgZGZnL0RGR1NTQUNv
bnZlcnNpb25QaGFzZS5jcHAKICAgICBkZmcvREZHU1NBTG93ZXJpbmdQaGFzZS5jcHAKKyAgICBk
ZmcvREZHU2FmZXBvaW50LmNwcAogICAgIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKICAgICBk
ZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKICAgICBkZmcvREZHU3BlY3VsYXRpdmVKSVQ2
NC5jcHAKICAgICBkZmcvREZHU3RhY2tMYXlvdXRQaGFzZS5jcHAKICAgICBkZmcvREZHU3RvcmVC
YXJyaWVyRWxpc2lvblBoYXNlLmNwcAogICAgIGRmZy9ERkdTdHJlbmd0aFJlZHVjdGlvblBoYXNl
LmNwcAorICAgIGRmZy9ERkdUaHJlYWREYXRhLmNwcAogICAgIGRmZy9ERkdUaHVua3MuY3BwCiAg
ICAgZGZnL0RGR1RpZXJVcENoZWNrSW5qZWN0aW9uUGhhc2UuY3BwCiAgICAgZGZnL0RGR1R5cGVD
aGVja0hvaXN0aW5nUGhhc2UuY3BwCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvR05VbWFr
ZWZpbGUubGlzdC5hbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvR05VbWFr
ZWZpbGUubGlzdC5hbQkocmV2aXNpb24gMTYzNzYwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L0dOVW1ha2VmaWxlLmxpc3QuYW0JKHdvcmtpbmcgY29weSkKQEAgLTMwNCw2ICszMDQsOCBAQCBq
YXZhc2NyaXB0Y29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0dlbmVyYXRpb25JbmZvLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGgu
Y3BwIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmggXAorCVNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGhTYWZlcG9pbnQuY3BwIFwKKwlTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0dyYXBoU2FmZXBvaW50LmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHSW5QbGFjZUFic3RyYWN0U3RhdGUuY3BwIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0luUGxhY2VBYnN0cmFjdFN0YXRlLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHSW5saW5lQ2FjaGVXcmFwcGVyLmggXApAQCAtMzc3LDcgKzM3OSwxMCBAQCBqYXZh
c2NyaXB0Y29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Jl
c3VycmVjdGlvbkZvclZhbGlkYXRpb25QaGFzZS5jcHAgXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHUmVzdXJyZWN0aW9uRm9yVmFsaWRhdGlvblBoYXNlLmggXAogCVNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHU2FmZVRvRXhlY3V0ZS5oIFwKKwlTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1NhZmVwb2ludC5jcHAgXAorCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
U2FmZXBvaW50LmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FuZVN0cmluZ0dl
dEJ5VmFsU2xvd1BhdGhHZW5lcmF0b3IuaCBcCisJU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdTY2FubmFibGUuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTY29yZUJvYXJk
LmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2lsZW50UmVnaXN0ZXJTYXZlUGxh
bi5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nsb3dQYXRoR2VuZXJhdG9yLmgg
XApAQCAtMzk4LDYgKzQwMyw4IEBAIGphdmFzY3JpcHRjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3RydWN0dXJlQWJzdHJhY3RWYWx1ZS5oIFwKIAlTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1RpZXJVcENoZWNrSW5qZWN0aW9uUGhhc2UuY3BwIFwK
IAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1RpZXJVcENoZWNrSW5qZWN0aW9uUGhhc2Uu
aCBcCisJU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdUaHJlYWREYXRhLmNwcCBcCisJU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdUaHJlYWREYXRhLmggXAogCVNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHVGh1bmtzLmNwcCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdUaHVua3MuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdUb0ZUTERlZmVycmVk
Q29tcGlsYXRpb25DYWxsYmFjay5jcHAgXApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0ph
dmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvago9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0
Q29yZS52Y3hwcm9qCShyZXZpc2lvbiAxNjM3NjApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
SmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qCSh3b3JraW5nIGNv
cHkpCkBAIC0zOTIsNiArMzkyLDcgQEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGRmZ1xE
RkdGbHVzaEZvcm1hdC5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxkZmdcREZH
Rmx1c2hMaXZlbmVzc0FuYWx5c2lzUGhhc2UuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVk
ZT0iLi5cZGZnXERGR0dyYXBoLmNwcCIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGRm
Z1xERkdHcmFwaFNhZmVwb2ludC5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxk
ZmdcREZHSW5QbGFjZUFic3RyYWN0U3RhdGUuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVk
ZT0iLi5cZGZnXERGR0ludmFsaWRhdGlvblBvaW50SW5qZWN0aW9uUGhhc2UuY3BwIiAvPgogICAg
IDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZGZnXERGR0pJVENvZGUuY3BwIiAvPgpAQCAtNDI0LDYg
KzQyNSw3IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxkZmdcREZHUHJlZGljdGlvbklu
amVjdGlvblBoYXNlLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGRmZ1xERkdQ
cmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRl
PSIuLlxkZmdcREZHUmVzdXJyZWN0aW9uRm9yVmFsaWRhdGlvblBoYXNlLmNwcCIgLz4KKyAgICA8
Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGRmZ1xERkdTYWZlcG9pbnQuY3BwIiAvPgogICAgIDxDbENv
bXBpbGUgSW5jbHVkZT0iLi5cZGZnXERGR1NwZWN1bGF0aXZlSklULmNwcCIgLz4KICAgICA8Q2xD
b21waWxlIEluY2x1ZGU9Ii4uXGRmZ1xERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcCIgLz4KICAg
ICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGRmZ1xERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcCIgLz4K
QEAgLTQzMiw2ICs0MzQsNyBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZGZnXERGR1N0
YWNrTGF5b3V0UGhhc2UuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZGZnXERG
R1N0b3JlQmFycmllckVsaXNpb25QaGFzZS5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRl
PSIuLlxkZmdcREZHU3RyZW5ndGhSZWR1Y3Rpb25QaGFzZS5jcHAiIC8+CisgICAgPENsQ29tcGls
ZSBJbmNsdWRlPSIuLlxkZmdcREZHVGhyZWFkRGF0YS5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJ
bmNsdWRlPSIuLlxkZmdcREZHVGh1bmtzLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9
Ii4uXGRmZ1xERkdUaWVyVXBDaGVja0luamVjdGlvblBoYXNlLmNwcCIgLz4KICAgICA8Q2xDb21w
aWxlIEluY2x1ZGU9Ii4uXGRmZ1xERkdUb0ZUTERlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjay5j
cHAiIC8+CkBAIC05MjksNiArOTMyLDcgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGRm
Z1xERkdHZW5lcmF0aW9uSW5mby5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZGZn
XERGR0dQUkluZm8uaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGRmZ1xERkdHcmFw
aC5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZGZnXERGR0dyYXBoU2FmZXBvaW50
LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxkZmdcREZHSW5QbGFjZUFic3RyYWN0
U3RhdGUuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGRmZ1xERkdJbnNlcnRpb25T
ZXQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGRmZ1xERkdJbnZhbGlkYXRpb25Q
b2ludEluamVjdGlvblBoYXNlLmgiIC8+CkBAIC05NjksNyArOTczLDkgQEAKICAgICA8Q2xJbmNs
dWRlIEluY2x1ZGU9Ii4uXGRmZ1xERkdSZWdpc3RlclNldC5oIiAvPgogICAgIDxDbEluY2x1ZGUg
SW5jbHVkZT0iLi5cZGZnXERGR1Jlc3VycmVjdGlvbkZvclZhbGlkYXRpb25QaGFzZS5oIiAvPgog
ICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZGZnXERGR1NhZmVUb0V4ZWN1dGUuaCIgLz4KKyAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGRmZ1xERkdTYWZlcG9pbnQuaCIgLz4KICAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXGRmZ1xERkdTYW5lU3RyaW5nR2V0QnlWYWxTbG93UGF0aEdlbmVy
YXRvci5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZGZnXERGR1NjYW5uYWJsZS5o
IiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZGZnXERGR1Njb3JlQm9hcmQuaCIgLz4K
ICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGRmZ1xERkdTY3JhdGNoUmVnaXN0ZXJBbGxvY2F0
b3IuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGRmZ1xERkdTaWxlbnRSZWdpc3Rl
clNhdmVQbGFuLmgiIC8+CkBAIC05ODEsNiArOTg3LDcgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXGRmZ1xERkdTdG9yZUJhcnJpZXJFbGlzaW9uUGhhc2UuaCIgLz4KICAgICA8Q2xJbmNs
dWRlIEluY2x1ZGU9Ii4uXGRmZ1xERkdTdHJlbmd0aFJlZHVjdGlvblBoYXNlLmgiIC8+CiAgICAg
PENsSW5jbHVkZSBJbmNsdWRlPSIuLlxkZmdcREZHU3RydWN0dXJlQWJzdHJhY3RWYWx1ZS5oIiAv
PgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZGZnXERGR1RocmVhZERhdGEuaCIgLz4KICAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGRmZ1xERkdUaHVua3MuaCIgLz4KICAgICA8Q2xJbmNs
dWRlIEluY2x1ZGU9Ii4uXGRmZ1xERkdUaWVyVXBDaGVja0luamVjdGlvblBoYXNlLmgiIC8+CiAg
ICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxkZmdcREZHVG9GVExEZWZlcnJlZENvbXBpbGF0aW9u
Q2FsbGJhY2suaCIgLz4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lv
biAxNjM3NjApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMjAyLDYgKzIwMiwxMyBAQAog
CQkwRjJFODkyRDE2RDAyQkFGMDA5RTRGRDIgLyogREZHTWluaWZpZWRJRC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZCNEI1MTAxNkIzQTk2NDAwM0Y2
OTZCIC8qIERGR01pbmlmaWVkSUQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQkwRjJGQzc3MjE2RTEyRjcxMDAzOEQ5NzYgLyogREZHRENFUGhhc2Uu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYyRkM3
NzAxNkUxMkY2RjAwMzhEOTc2IC8qIERGR0RDRVBoYXNlLmNwcCAqLzsgfTsKIAkJMEYyRkM3NzMx
NkUxMkY3NDAwMzhEOTc2IC8qIERGR0RDRVBoYXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjJGQzc3MTE2RTEyRjZGMDAzOEQ5NzYgLyogREZHRENF
UGhhc2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owor
CQkwRjJGQ0NGOTE4QTYwMDcwMDAxQTI3RjggLyogREZHR3JhcGhTYWZlcG9pbnQuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYyRkNDRjIxOEE2MDA3
MDAwMUEyN0Y4IC8qIERGR0dyYXBoU2FmZXBvaW50LmNwcCAqLzsgfTsKKwkJMEYyRkNDRkExOEE2
MDA3MDAwMUEyN0Y4IC8qIERGR0dyYXBoU2FmZXBvaW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjJGQ0NGMzE4QTYwMDcwMDAxQTI3RjggLyogREZH
R3JhcGhTYWZlcG9pbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OworCQkwRjJGQ0NGQjE4QTYwMDcwMDAxQTI3RjggLyogREZHU2FmZXBvaW50LmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMkZDQ0Y0MThB
NjAwNzAwMDFBMjdGOCAvKiBERkdTYWZlcG9pbnQuY3BwICovOyB9OworCQkwRjJGQ0NGQzE4QTYw
MDcwMDAxQTI3RjggLyogREZHU2FmZXBvaW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwRjJGQ0NGNTE4QTYwMDcwMDAxQTI3RjggLyogREZHU2FmZXBv
aW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJ
MEYyRkNDRkQxOEE2MDA3MDAwMUEyN0Y4IC8qIERGR1NjYW5uYWJsZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYyRkNDRjYxOEE2MDA3MDAwMUEyN0Y4
IC8qIERGR1NjYW5uYWJsZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CisJCTBGMkZDQ0ZFMThBNjAwNzAwMDFBMjdGOCAvKiBERkdUaHJlYWREYXRhLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMkZDQ0Y3
MThBNjAwNzAwMDFBMjdGOCAvKiBERkdUaHJlYWREYXRhLmNwcCAqLzsgfTsKKwkJMEYyRkNDRkYx
OEE2MDA3MDAwMUEyN0Y4IC8qIERGR1RocmVhZERhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMkZDQ0Y4MThBNjAwNzAwMDFBMjdGOCAvKiBERkdU
aHJlYWREYXRhLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJMEYzNEIxNDkxNkQ0MjAxMDAwMUNEQTVBIC8qIERGR1VzZUtpbmQuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYzNEIxNDcxNkQ0MjAwRTAw
MUNEQTVBIC8qIERGR1VzZUtpbmQuY3BwICovOyB9OwogCQkwRjM0QjE0QTE2RDQyMDEzMDAxQ0RB
NUEgLyogREZHVXNlS2luZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMEYzNEIxNDgxNkQ0MjAwRTAwMUNEQTVBIC8qIERGR1VzZUtpbmQuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjM0QjE0QzE2RDQz
RTBEMDAxQ0RBNUEgLyogUG9seW1vcnBoaWNBY2Nlc3NTdHJ1Y3R1cmVMaXN0LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjM0QjE0QjE2RDQzRTBDMDAx
Q0RBNUEgLyogUG9seW1vcnBoaWNBY2Nlc3NTdHJ1Y3R1cmVMaXN0LmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTE2NDUsNiArMTY1MiwxMyBAQAog
CQkwRjJCREM1MDE1MjI4RkZBMDBDRDg5MTAgLyogREZHVmFyaWFibGVFdmVudC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBERkdWYXJpYWJsZUV2ZW50LmNwcDsgcGF0
aCA9IGRmZy9ERkdWYXJpYWJsZUV2ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMEYyRkM3NzAxNkUxMkY2RjAwMzhEOTc2IC8qIERGR0RDRVBoYXNlLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IERGR0RDRVBoYXNlLmNwcDsgcGF0aCA9IGRmZy9E
RkdEQ0VQaGFzZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGMkZDNzcxMTZF
MTJGNkYwMDM4RDk3NiAvKiBERkdEQ0VQaGFzZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IG5hbWUgPSBERkdEQ0VQaGFzZS5oOyBwYXRoID0gZGZnL0RGR0RDRVBoYXNlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGMkZDQ0YyMThBNjAwNzAwMDFBMjdGOCAvKiBERkdHcmFw
aFNhZmVwb2ludC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBERkdH
cmFwaFNhZmVwb2ludC5jcHA7IHBhdGggPSBkZmcvREZHR3JhcGhTYWZlcG9pbnQuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRjJGQ0NGMzE4QTYwMDcwMDAxQTI3RjggLyogREZH
R3JhcGhTYWZlcG9pbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gREZHR3Jh
cGhTYWZlcG9pbnQuaDsgcGF0aCA9IGRmZy9ERkdHcmFwaFNhZmVwb2ludC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQkwRjJGQ0NGNDE4QTYwMDcwMDAxQTI3RjggLyogREZHU2FmZXBv
aW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IERGR1NhZmVwb2lu
dC5jcHA7IHBhdGggPSBkZmcvREZHU2FmZXBvaW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJMEYyRkNDRjUxOEE2MDA3MDAwMUEyN0Y4IC8qIERGR1NhZmVwb2ludC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBERkdTYWZlcG9pbnQuaDsgcGF0aCA9IGRmZy9E
RkdTYWZlcG9pbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEYyRkNDRjYxOEE2
MDA3MDAwMUEyN0Y4IC8qIERGR1NjYW5uYWJsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IG5hbWUgPSBERkdTY2FubmFibGUuaDsgcGF0aCA9IGRmZy9ERkdTY2FubmFibGUuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEYyRkNDRjcxOEE2MDA3MDAwMUEyN0Y4IC8qIERGR1Ro
cmVhZERhdGEuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gREZHVGhy
ZWFkRGF0YS5jcHA7IHBhdGggPSBkZmcvREZHVGhyZWFkRGF0YS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTBGMkZDQ0Y4MThBNjAwNzAwMDFBMjdGOCAvKiBERkdUaHJlYWREYXRh
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IERGR1RocmVhZERhdGEuaDsgcGF0
aCA9IGRmZy9ERkdUaHJlYWREYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBG
MzRCMTQ3MTZENDIwMEUwMDFDREE1QSAvKiBERkdVc2VLaW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgbmFtZSA9IERGR1VzZUtpbmQuY3BwOyBwYXRoID0gZGZnL0RGR1VzZUtp
bmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjM0QjE0ODE2RDQyMDBFMDAx
Q0RBNUEgLyogREZHVXNlS2luZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBE
RkdVc2VLaW5kLmg7IHBhdGggPSBkZmcvREZHVXNlS2luZC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkwRjM0QjE0QjE2RDQzRTBDMDAxQ0RBNUEgLyogUG9seW1vcnBoaWNBY2Nlc3NT
dHJ1Y3R1cmVMaXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBvbHltb3Jw
aGljQWNjZXNzU3RydWN0dXJlTGlzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
NDA5Miw4ICs0MTA2LDYgQEAKIAkJODZFQzlEQjMxMzI4REY0NDAwMkIyQUQ3IC8qIGRmZyAqLyA9
IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCi0JCQkJMkFDQ0YzREMxODVG
RTI2QjAwODNFMkFEIC8qIERGR1N0b3JlQmFycmllckVsaXNpb25QaGFzZS5jcHAgKi8sCi0JCQkJ
MkFDQ0YzREQxODVGRTI2QjAwODNFMkFEIC8qIERGR1N0b3JlQmFycmllckVsaXNpb25QaGFzZS5o
ICovLAogCQkJCUE3N0E0MjM2MTdBMEJCRkQwMEE4REI4MSAvKiBERkdBYnN0cmFjdEhlYXAuY3Bw
ICovLAogCQkJCUE3N0E0MjM3MTdBMEJCRkQwMEE4REI4MSAvKiBERkdBYnN0cmFjdEhlYXAuaCAq
LywKIAkJCQlBNzA0RDhGRTE3QTBCQUE4MDA2QkE1NTQgLyogREZHQWJzdHJhY3RJbnRlcnByZXRl
ci5oICovLApAQCAtNDE5NSw2ICs0MjA3LDggQEAKIAkJCQk4NkVDOURCNjEzMjhERjgyMDAyQjJB
RDcgLyogREZHR2VuZXJhdGlvbkluZm8uaCAqLywKIAkJCQk4NkVDOURCNzEzMjhERjgyMDAyQjJB
RDcgLyogREZHR3JhcGguY3BwICovLAogCQkJCTg2RUM5REI4MTMyOERGODIwMDJCMkFENyAvKiBE
RkdHcmFwaC5oICovLAorCQkJCTBGMkZDQ0YyMThBNjAwNzAwMDFBMjdGOCAvKiBERkdHcmFwaFNh
ZmVwb2ludC5jcHAgKi8sCisJCQkJMEYyRkNDRjMxOEE2MDA3MDAwMUEyN0Y4IC8qIERGR0dyYXBo
U2FmZXBvaW50LmggKi8sCiAJCQkJMEZCMTRFMjAxODEyNTcwQjAwOUI2QjREIC8qIERGR0lubGlu
ZUNhY2hlV3JhcHBlci5oICovLAogCQkJCTBGQjE0RTIyMTgxMzA5NTUwMDlCNkI0RCAvKiBERkdJ
bmxpbmVDYWNoZVdyYXBwZXJJbmxpbmVzLmggKi8sCiAJCQkJQTcwNEQ5MDAxN0EwQkFBODAwNkJB
NTU0IC8qIERGR0luUGxhY2VBYnN0cmFjdFN0YXRlLmNwcCAqLywKQEAgLTQyNjcsOCArNDI4MSwx
MSBAQAogCQkJCTg2RUM5REMxMTMyOERGODIwMDJCMkFENyAvKiBERkdSZWdpc3RlckJhbmsuaCAq
LywKIAkJCQkwRjY2NkVDQTE4MzZCMzdFMDBEMDE3RjEgLyogREZHUmVzdXJyZWN0aW9uRm9yVmFs
aWRhdGlvblBoYXNlLmNwcCAqLywKIAkJCQkwRjY2NkVDQjE4MzZCMzdFMDBEMDE3RjEgLyogREZH
UmVzdXJyZWN0aW9uRm9yVmFsaWRhdGlvblBoYXNlLmggKi8sCisJCQkJMEYyRkNDRjQxOEE2MDA3
MDAwMUEyN0Y4IC8qIERGR1NhZmVwb2ludC5jcHAgKi8sCisJCQkJMEYyRkNDRjUxOEE2MDA3MDAw
MUEyN0Y4IC8qIERGR1NhZmVwb2ludC5oICovLAogCQkJCUE3N0E0MjNDMTdBMEJCRkQwMEE4REI4
MSAvKiBERkdTYWZlVG9FeGVjdXRlLmggKi8sCiAJCQkJQTc0MTAxN0UxNzlEQUY4MDAwMkVCOEJB
IC8qIERGR1NhbmVTdHJpbmdHZXRCeVZhbFNsb3dQYXRoR2VuZXJhdG9yLmggKi8sCisJCQkJMEYy
RkNDRjYxOEE2MDA3MDAwMUEyN0Y4IC8qIERGR1NjYW5uYWJsZS5oICovLAogCQkJCTg2RUNBM0Y5
MTMyREYyNUEwMDJCMkFENyAvKiBERkdTY29yZUJvYXJkLmggKi8sCiAJCQkJMEYxRTNBNjUxNTNB
MjFERjAwMEY5NDU2IC8qIERGR1NpbGVudFJlZ2lzdGVyU2F2ZVBsYW4uaCAqLywKIAkJCQkwRjFF
M0E1MDE1MzdDMkNCMDAwRjk0NTYgLyogREZHU2xvd1BhdGhHZW5lcmF0b3IuaCAqLywKQEAgLTQy
ODIsOSArNDI5OSwxMyBAQAogCQkJCTBGQzIwQ0I4MTg1NTZBMzUwMEM5RTk1NCAvKiBERkdTU0FM
b3dlcmluZ1BoYXNlLmggKi8sCiAJCQkJMEY5RkI0RjIxN0ZDQjkxNzAwQ0I2N0Y4IC8qIERGR1N0
YWNrTGF5b3V0UGhhc2UuY3BwICovLAogCQkJCTBGOUZCNEYzMTdGQ0I5MTcwMENCNjdGOCAvKiBE
RkdTdGFja0xheW91dFBoYXNlLmggKi8sCisJCQkJMkFDQ0YzREMxODVGRTI2QjAwODNFMkFEIC8q
IERGR1N0b3JlQmFycmllckVsaXNpb25QaGFzZS5jcHAgKi8sCisJCQkJMkFDQ0YzREQxODVGRTI2
QjAwODNFMkFEIC8qIERGR1N0b3JlQmFycmllckVsaXNpb25QaGFzZS5oICovLAogCQkJCTBGQzIw
Q0IzMTg1MkUyQzYwMEM5RTk1NCAvKiBERkdTdHJlbmd0aFJlZHVjdGlvblBoYXNlLmNwcCAqLywK
IAkJCQkwRkMyMENCNDE4NTJFMkM2MDBDOUU5NTQgLyogREZHU3RyZW5ndGhSZWR1Y3Rpb25QaGFz
ZS5oICovLAogCQkJCTBGNjM5NDc2MTVEQ0UzNDcwMDZBNTk3QyAvKiBERkdTdHJ1Y3R1cmVBYnN0
cmFjdFZhbHVlLmggKi8sCisJCQkJMEYyRkNDRjcxOEE2MDA3MDAwMUEyN0Y4IC8qIERGR1RocmVh
ZERhdGEuY3BwICovLAorCQkJCTBGMkZDQ0Y4MThBNjAwNzAwMDFBMjdGOCAvKiBERkdUaHJlYWRE
YXRhLmggKi8sCiAJCQkJMEZDMDk3OUYxNDZCMjhDNzAwQ0YyNDQyIC8qIERGR1RodW5rcy5jcHAg
Ki8sCiAJCQkJMEZDMDk3QTAxNDZCMjhDNzAwQ0YyNDQyIC8qIERGR1RodW5rcy5oICovLAogCQkJ
CTBGRDhBMzFGMTdENTFGNTcwMENBMkM0MCAvKiBERkdUaWVyVXBDaGVja0luamVjdGlvblBoYXNl
LmNwcCAqLywKQEAgLTUwODIsNiArNTEwMyw3IEBACiAJCQkJQTc5MERENzAxODJGNDk5NzAwNTg4
ODA3IC8qIEpTU2V0SXRlcmF0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGMjRFNTRFMTdFRTI3
NDkwMEFCQjIxNyAvKiBKSVRPcGVyYXRpb25XcmFwcGVycy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MEY3NjZEMzExNUFBODExMjAwOEYzNjNFIC8qIEpJVFN0dWJSb3V0aW5lLmggaW4gSGVhZGVycyAq
LywKKwkJCQkwRjJGQ0NGQTE4QTYwMDcwMDAxQTI3RjggLyogREZHR3JhcGhTYWZlcG9pbnQuaCBp
biBIZWFkZXJzICovLAogCQkJCTBGNzY2RDJDMTVBOENDM0EwMDhGMzYzRSAvKiBKSVRTdHViUm91
dGluZVNldC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTRDNTI0MkIwRjUzNTVFOTAwQkEzRDA0IC8q
IEpJVFN0dWJzLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRUY2ODM1RTE3NDM0M0NDMDBBMzJFMjUg
LyogSklUU3R1YnNBUk0uaCBpbiBIZWFkZXJzICovLApAQCAtNTEyMSw2ICs1MTQzLDcgQEAKIAkJ
CQk4NkUzQzYxMzE2N0JBQkQ3MDA2RDc2MEEgLyogSlNDb250ZXh0LmggaW4gSGVhZGVycyAqLywK
IAkJCQk4NkUzQzYxNzE2N0JBQkVFMDA2RDc2MEEgLyogSlNDb250ZXh0SW50ZXJuYWwuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUJDMThDNDFFMEUxNkY1Q0QwMEIzNDQ2MCAvKiBKU0NvbnRleHRSZWYu
aCBpbiBIZWFkZXJzICovLAorCQkJCTBGMkZDQ0ZGMThBNjAwNzAwMDFBMjdGOCAvKiBERkdUaHJl
YWREYXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQkxNDhDRDFEODEwOENGOTAyMDA4MTYzQzYgLyog
SlNDb250ZXh0UmVmUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTcyMDI4QjgxNzk3NjAx
RTAwOTgwMjhDIC8qIEpTQ1Rlc3RSdW5uZXJVdGlscy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYy
QjY2RUMxN0I2QjVBQjAwQTdBRTNGIC8qIEpTRGF0YVZpZXcuaCBpbiBIZWFkZXJzICovLApAQCAt
NTI0MSw2ICs1MjY0LDcgQEAKIAkJCQk4NkM1NjhFMTExQTIxM0VFMDAwN0Y3RjAgLyogTWFjcm9B
c3NlbWJsZXJNSVBTLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NkFFNjRBOTEzNUU1RTFDMDA5NjMw
MTIgLyogTWFjcm9Bc3NlbWJsZXJTSDQuaCBpbiBIZWFkZXJzICovLAogCQkJCTg2MDE2MUU0MEYz
QTgzQzEwMEY4NDcxMCAvKiBNYWNyb0Fzc2VtYmxlclg4Ni5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
MEYyRkNDRkMxOEE2MDA3MDAwMUEyN0Y4IC8qIERGR1NhZmVwb2ludC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJODYwMTYxRTUwRjNBODNDMTAwRjg0NzEwIC8qIE1hY3JvQXNzZW1ibGVyWDg2XzY0Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQk4NjAxNjFFNjBGM0E4M0MxMDBGODQ3MTAgLyogTWFjcm9Bc3Nl
bWJsZXJYODZDb21tb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUE3MDA4NzNBMTdDQkU4NTMwMEMz
RTY0MyAvKiBNYXBDb25zdHJ1Y3Rvci5oIGluIEhlYWRlcnMgKi8sCkBAIC01NDUyLDYgKzU0NzYs
NyBAQAogCQkJCTBGMjQyREE3MTNGM0IxRTgwMDdBREQ0QyAvKiBXZWFrUmVmZXJlbmNlSGFydmVz
dGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkxNEU4NEZBMTE0RUUxQUNDMDBENkQ1RDQgLyogV2Vh
a1NldC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTQxNTAxMzMxNTRCQjEzRjAwNUQ4Qzk4IC8qIFdl
YWtTZXRJbmxpbmVzLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjJGQ0NGRDE4QTYwMDcwMDAxQTI3
RjggLyogREZHU2Nhbm5hYmxlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzE4QzQ3QTBFMTZGNUNE
MDBCMzQ0NjAgLyogV2ViS2l0QXZhaWxhYmlsaXR5LmggaW4gSGVhZGVycyAqLywKIAkJCQlBNzRE
RUY5MjE4MkQ5OTE0MDA1MjJDMjIgLyogTWFwSXRlcmF0b3JDb25zdHJ1Y3Rvci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQTdEQ0I5NzMxMkU1MTkzRjAwOTExOTQwIC8qIFdyaXRlQmFycmllci5oIGlu
IEhlYWRlcnMgKi8sCkBAIC02MDQ3LDYgKzYwNzIsNyBAQAogCQkJCUE3MDQ0N0VEMTdBMEJENzAw
MEY1ODk4RSAvKiBEdW1wQ29udGV4dC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDdGMzlDNzEw
N0VDMzc2MDA0MjdBNDggLyogRXJyb3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQ3RjM5Qzgx
MDdFQzM3NjAwNDI3QTQ4IC8qIEVycm9yQ29uc3RydWN0b3IuY3BwIGluIFNvdXJjZXMgKi8sCisJ
CQkJMEYyRkNDRjkxOEE2MDA3MDAwMUEyN0Y4IC8qIERGR0dyYXBoU2FmZXBvaW50LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTE0N0YzOUM5MTA3RUMzNzYwMDQyN0E0OCAvKiBFcnJvckluc3RhbmNl
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0N0YzOUNBMTA3RUMzNzYwMDQyN0E0OCAvKiBFcnJv
clByb3RvdHlwZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNUZEMDA2NzE4OUFGRTlDMDA2MzMy
MzEgLyogU2NyaXB0QXJndW1lbnRzLmNwcCBpbiBTb3VyY2VzICovLApAQCAtNjIxNyw2ICs2MjQz
LDcgQEAKIAkJCQlBNzQ4MkI5NDExNjcxMTQ3MDAzQjA3MTIgLyogSlNXZWFrT2JqZWN0TWFwUmVm
UHJpdmF0ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDQyNTY2MTE1RURFOThEMDA2NkE0OUIg
LyogSlNXaXRoU2NvcGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTUwM0ZBMUIxODhFMEZCMDAw
MTEwRjE0IC8qIEpTSmF2YVNjcmlwdENhbGxGcmFtZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkw
RjJGQ0NGRTE4QTYwMDcwMDAxQTI3RjggLyogREZHVGhyZWFkRGF0YS5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk4NkUzQzYxODE2N0JBQkVFMDA2RDc2MEEgLyogSlNXcmFwcGVyTWFwLm1tIGluIFNv
dXJjZXMgKi8sCiAJCQkJMTQyODA4NzAxMDdFQzEzNDAwMTNFN0IyIC8qIEpTV3JhcHBlck9iamVj
dC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNTdEMjNFOTE4OTFCMDc3MDAzMUM3RkEgLyogSlNH
bG9iYWxPYmplY3REZWJ1Z2dlckFnZW50LmNwcCBpbiBTb3VyY2VzICovLApAQCAtNjMyOCw2ICs2
MzU1LDcgQEAKIAkJCQlDMjI1NDk0MzE1RjdEQkFBMDA2NUU4OTggLyogU2xvdFZpc2l0b3IuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJOTMzMDQwMkMwRTZBNzY0MDAwNzg2RTZBIC8qIFNtYWxsU3Ry
aW5ncy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjhGMkI5RTE3MzA2QzhEMDA3REJEQTUgLyog
U291cmNlQ29kZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkwRjJGQ0NGQjE4QTYwMDcwMDAxQTI3
RjggLyogREZHU2FmZXBvaW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE1RkQwMDc5MTg5QjA1
MTAwMDYzMzIzMSAvKiBDb25zb2xlTWVzc2FnZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjQ5
M0FGQTE2RDBDQUQzMDA4NDUwOEIgLyogU291cmNlUHJvdmlkZXIuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJRTQ5REMxNkIxMkVGMjkzRTAwMTg0QTFGIC8qIFNvdXJjZVByb3ZpZGVyQ2FjaGUuY3Bw
IGluIFNvdXJjZXMgKi8sCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RyaXZl
ci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEcml2ZXIu
Y3BwCShyZXZpc2lvbiAxNjM3NjApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Ry
aXZlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEyMSw3ICsxMjEsNyBAQCBzdGF0aWMgQ29tcGls
YXRpb25SZXN1bHQgY29tcGlsZUltcGwoCiAgICAgICAgIHJldHVybiBDb21waWxhdGlvbkRlZmVy
cmVkOwogICAgIH0KICAgICAKLSAgICBwbGFuLT5jb21waWxlSW5UaHJlYWQoKnZtLmRmZ1N0YXRl
KTsKKyAgICBwbGFuLT5jb21waWxlSW5UaHJlYWQoKnZtLmRmZ1N0YXRlLCAwKTsKICAgICByZXR1
cm4gcGxhbi0+ZmluYWxpemVXaXRob3V0Tm90aWZ5aW5nQ2FsbGJhY2soKTsKIH0KICNlbHNlIC8v
IEVOQUJMRShERkdfSklUKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFw
aC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5j
cHAJKHJldmlzaW9uIDE2Mzc2MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3Jh
cGguY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03OTEsNiArNzkxLDU5IEBAIEpTQXJyYXlCdWZmZXJW
aWV3KiBHcmFwaDo6dHJ5R2V0Rm9sZGFibGUKICAgICByZXR1cm4gdHJ5R2V0Rm9sZGFibGVWaWV3
KGNoaWxkKG5vZGUsIDApLm5vZGUoKSwgbm9kZS0+YXJyYXlNb2RlKCkpOwogfQogCit2b2lkIEdy
YXBoOjp2aXNpdENoaWxkcmVuKFNsb3RWaXNpdG9yJiB2aXNpdG9yKQoreworICAgIGZvciAoQmxv
Y2tJbmRleCBibG9ja0luZGV4ID0gbnVtQmxvY2tzKCk7IGJsb2NrSW5kZXgtLTspIHsKKyAgICAg
ICAgQmFzaWNCbG9jayogYmxvY2sgPSB0aGlzLT5ibG9jayhibG9ja0luZGV4KTsKKyAgICAgICAg
aWYgKCFibG9jaykKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAKKyAgICAgICAgZm9y
ICh1bnNpZ25lZCBub2RlSW5kZXggPSAwOyBub2RlSW5kZXggPCBibG9jay0+c2l6ZSgpOyArK25v
ZGVJbmRleCkgeworICAgICAgICAgICAgTm9kZSogbm9kZSA9IGJsb2NrLT5hdChub2RlSW5kZXgp
OworICAgICAgICAgICAgCisgICAgICAgICAgICBzd2l0Y2ggKG5vZGUtPm9wKCkpIHsKKyAgICAg
ICAgICAgIGNhc2UgSlNDb25zdGFudDoKKyAgICAgICAgICAgIGNhc2UgV2Vha0pTQ29uc3RhbnQ6
CisgICAgICAgICAgICAgICAgdmlzaXRvci5hcHBlbmRVbmJhcnJpZXJlZFJlYWRPbmx5VmFsdWUo
dmFsdWVPZkpTQ29uc3RhbnQobm9kZSkpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICAgICAgICAgIAorICAgICAgICAgICAgY2FzZSBDaGVja0Z1bmN0aW9uOgorICAgICAgICAgICAg
ICAgIHZpc2l0b3IuYXBwZW5kVW5iYXJyaWVyZWRSZWFkT25seVBvaW50ZXIobm9kZS0+ZnVuY3Rp
b24oKSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgCisgICAgICAg
ICAgICBjYXNlIENoZWNrRXhlY3V0YWJsZToKKyAgICAgICAgICAgICAgICB2aXNpdG9yLmFwcGVu
ZFVuYmFycmllcmVkUmVhZE9ubHlQb2ludGVyKG5vZGUtPmV4ZWN1dGFibGUoKSk7CisgICAgICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICBjYXNlIENoZWNr
U3RydWN0dXJlOgorICAgICAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IG5vZGUtPnN0cnVj
dHVyZVNldCgpLnNpemUoKTsgaS0tOykKKyAgICAgICAgICAgICAgICAgICAgdmlzaXRvci5hcHBl
bmRVbmJhcnJpZXJlZFJlYWRPbmx5UG9pbnRlcihub2RlLT5zdHJ1Y3R1cmVTZXQoKVtpXSk7Cisg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICBjYXNl
IFN0cnVjdHVyZVRyYW5zaXRpb25XYXRjaHBvaW50OgorICAgICAgICAgICAgY2FzZSBOZXdPYmpl
Y3Q6CisgICAgICAgICAgICBjYXNlIEFycmF5aWZ5VG9TdHJ1Y3R1cmU6CisgICAgICAgICAgICBj
YXNlIE5ld1N0cmluZ09iamVjdDoKKyAgICAgICAgICAgICAgICB2aXNpdG9yLmFwcGVuZFVuYmFy
cmllcmVkUmVhZE9ubHlQb2ludGVyKG5vZGUtPnN0cnVjdHVyZSgpKTsKKyAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIGNhc2UgUHV0U3RydWN0dXJl
OgorICAgICAgICAgICAgY2FzZSBQaGFudG9tUHV0U3RydWN0dXJlOgorICAgICAgICAgICAgY2Fz
ZSBBbGxvY2F0ZVByb3BlcnR5U3RvcmFnZToKKyAgICAgICAgICAgIGNhc2UgUmVhbGxvY2F0ZVBy
b3BlcnR5U3RvcmFnZToKKyAgICAgICAgICAgICAgICB2aXNpdG9yLmFwcGVuZFVuYmFycmllcmVk
UmVhZE9ubHlQb2ludGVyKAorICAgICAgICAgICAgICAgICAgICBub2RlLT5zdHJ1Y3R1cmVUcmFu
c2l0aW9uRGF0YSgpLnByZXZpb3VzU3RydWN0dXJlKTsKKyAgICAgICAgICAgICAgICB2aXNpdG9y
LmFwcGVuZFVuYmFycmllcmVkUmVhZE9ubHlQb2ludGVyKAorICAgICAgICAgICAgICAgICAgICBu
b2RlLT5zdHJ1Y3R1cmVUcmFuc2l0aW9uRGF0YSgpLm5ld1N0cnVjdHVyZSk7CisgICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICBkZWZhdWx0OgorICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorfQor
CiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6REZHCiAKICNlbmRpZiAvLyBFTkFCTEUoREZHX0pJVCkK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmgJKHJldmlzaW9uIDE2Mzc2MCkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguaAkod29ya2luZyBjb3B5KQpA
QCAtNDAsNiArNDAsNyBAQAogI2luY2x1ZGUgIkRGR05vZGUuaCIKICNpbmNsdWRlICJERkdOb2Rl
QWxsb2NhdG9yLmgiCiAjaW5jbHVkZSAiREZHUGxhbi5oIgorI2luY2x1ZGUgIkRGR1NjYW5uYWJs
ZS5oIgogI2luY2x1ZGUgIkRGR1ZhcmlhZGljRnVuY3Rpb24uaCIKICNpbmNsdWRlICJJbmxpbmVD
YWxsRnJhbWVTZXQuaCIKICNpbmNsdWRlICJKU1N0YWNrLmgiCkBAIC03OCw3ICs3OSw3IEBAIGVu
dW0gQWRkU3BlY3VsYXRpb25Nb2RlIHsKIC8vCiAvLyBUaGUgb3JkZXIgbWF5IGJlIHNpZ25pZmlj
YW50IGZvciBub2RlcyB3aXRoIHNpZGUtZWZmZWN0cyAocHJvcGVydHkgYWNjZXNzZXMsIHZhbHVl
IGNvbnZlcnNpb25zKS4KIC8vIE5vZGVzIHRoYXQgYXJlICdkZWFkJyByZW1haW4gaW4gdGhlIHZl
Y3RvciB3aXRoIHJlZkNvdW50IDAuCi1jbGFzcyBHcmFwaCB7CitjbGFzcyBHcmFwaCA6IHB1Ymxp
YyB2aXJ0dWFsIFNjYW5uYWJsZSB7CiBwdWJsaWM6CiAgICAgR3JhcGgoVk0mLCBQbGFuJiwgTG9u
Z0xpdmVkU3RhdGUmKTsKICAgICB+R3JhcGgoKTsKQEAgLTc5OSw2ICs4MDAsOCBAQCBwdWJsaWM6
CiAgICAgSlNBcnJheUJ1ZmZlclZpZXcqIHRyeUdldEZvbGRhYmxlVmlldyhOb2RlKiwgQXJyYXlN
b2RlKTsKICAgICBKU0FycmF5QnVmZmVyVmlldyogdHJ5R2V0Rm9sZGFibGVWaWV3Rm9yQ2hpbGQx
KE5vZGUqKTsKICAgICAKKyAgICB2aXJ0dWFsIHZvaWQgdmlzaXRDaGlsZHJlbihTbG90VmlzaXRv
ciYpIG92ZXJyaWRlOworICAgIAogICAgIFZNJiBtX3ZtOwogICAgIFBsYW4mIG1fcGxhbjsKICAg
ICBDb2RlQmxvY2sqIG1fY29kZUJsb2NrOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdHcmFwaFNhZmVwb2ludC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdHcmFwaFNhZmVwb2ludC5jcHAJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoU2FmZXBvaW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MCwwICsxLDQ5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIEVOQUJMRShERkdfSklUKQorCisjaW5jbHVk
ZSAiREZHR3JhcGhTYWZlcG9pbnQuaCIKKworI2luY2x1ZGUgIkRGR0dyYXBoLmgiCisjaW5jbHVk
ZSAiT3BlcmF0aW9ucy5oIgorCituYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CisKK0dy
YXBoU2FmZXBvaW50OjpHcmFwaFNhZmVwb2ludChHcmFwaCYgZ3JhcGgpCisgICAgOiBtX3NhZmVw
b2ludChncmFwaC5tX3BsYW4pCit7CisgICAgbV9zYWZlcG9pbnQuYWRkKCZncmFwaCk7CisgICAg
bV9zYWZlcG9pbnQuYmVnaW4oKTsKK30KKworR3JhcGhTYWZlcG9pbnQ6On5HcmFwaFNhZmVwb2lu
dCgpIHsgfQorCit9IH0gLy8gbmFtZXNwYWNlIEpTQzo6REZHCisKKyNlbmRpZiAvLyBFTkFCTEUo
REZHX0pJVCkKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaFNhZmVw
b2ludC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGhT
YWZlcG9pbnQuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
R3JhcGhTYWZlcG9pbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDUxIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgREZHR3JhcGhT
YWZlcG9pbnRfaAorI2RlZmluZSBERkdHcmFwaFNhZmVwb2ludF9oCisKKyNpZiBFTkFCTEUoREZH
X0pJVCkKKworI2luY2x1ZGUgIkRGR1NhZmVwb2ludC5oIgorCituYW1lc3BhY2UgSlNDIHsgbmFt
ZXNwYWNlIERGRyB7CisKK2NsYXNzIEdyYXBoOworCitjbGFzcyBHcmFwaFNhZmVwb2ludCB7Citw
dWJsaWM6CisgICAgR3JhcGhTYWZlcG9pbnQoR3JhcGgmKTsKKyAgICB+R3JhcGhTYWZlcG9pbnQo
KTsKKyAgICAKK3ByaXZhdGU6CisgICAgU2FmZXBvaW50IG1fc2FmZXBvaW50OworfTsKKworfSB9
IC8vIG5hbWVzcGFjZSBKU0M6OkRGRworCisjZW5kaWYgLy8gRU5BQkxFKERGR19KSVQpCisKKyNl
bmRpZiAvLyBERkdHcmFwaFNhZmVwb2ludF9oCisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHT3BlcmF0aW9ucy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHT3BlcmF0aW9ucy5oCShyZXZpc2lvbiAxNjM3NjApCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUg
QEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExLCAyMDEzLCAyMDE0IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQbGFuLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1BsYW4uY3BwCShyZXZpc2lvbiAxNjM3NjApCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1BsYW4uY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC00Miw2ICs0Miw3IEBACiAjaW5jbHVkZSAiREZHRmFpbGVkRmluYWxpemVyLmgiCiAjaW5jbHVk
ZSAiREZHRmx1c2hMaXZlbmVzc0FuYWx5c2lzUGhhc2UuaCIKICNpbmNsdWRlICJERkdGaXh1cFBo
YXNlLmgiCisjaW5jbHVkZSAiREZHR3JhcGhTYWZlcG9pbnQuaCIKICNpbmNsdWRlICJERkdJbnZh
bGlkYXRpb25Qb2ludEluamVjdGlvblBoYXNlLmgiCiAjaW5jbHVkZSAiREZHSklUQ29tcGlsZXIu
aCIKICNpbmNsdWRlICJERkdMSUNNUGhhc2UuaCIKQEAgLTEzNiw4ICsxMzcsMTAgQEAgYm9vbCBQ
bGFuOjpyZXBvcnRDb21waWxlVGltZXMoKSBjb25zdAogICAgICAgICB8fCAoT3B0aW9uczo6cmVw
b3J0RlRMQ29tcGlsZVRpbWVzKCkgJiYgaXNGVEwobW9kZSkpOwogfQogCi12b2lkIFBsYW46OmNv
bXBpbGVJblRocmVhZChMb25nTGl2ZWRTdGF0ZSYgbG9uZ0xpdmVkU3RhdGUpCit2b2lkIFBsYW46
OmNvbXBpbGVJblRocmVhZChMb25nTGl2ZWRTdGF0ZSYgbG9uZ0xpdmVkU3RhdGUsIFRocmVhZERh
dGEqIHRocmVhZERhdGEpCiB7CisgICAgdGhpcy0+dGhyZWFkRGF0YSA9IHRocmVhZERhdGE7Cisg
ICAgCiAgICAgZG91YmxlIGJlZm9yZSA9IDA7CiAgICAgaWYgKHJlcG9ydENvbXBpbGVUaW1lcygp
KQogICAgICAgICBiZWZvcmUgPSBjdXJyZW50VGltZU1TKCk7CkBAIC0zMTQsMTEgKzMxNywxNCBA
QCBQbGFuOjpDb21waWxhdGlvblBhdGggUGxhbjo6Y29tcGlsZUluVGhyCiAgICAgICAgIAogICAg
ICAgICBkdW1wQW5kVmVyaWZ5R3JhcGgoZGZnLCAiR3JhcGgganVzdCBiZWZvcmUgRlRMIGxvd2Vy
aW5nOiIpOwogICAgICAgICAKLSAgICAgICAgaW5pdGlhbGl6ZUxMVk0oKTsKLSAgICAgICAgCisg
ICAgICAgIHsKKyAgICAgICAgICAgIEdyYXBoU2FmZXBvaW50IHNhZmVwb2ludChkZmcpOworICAg
ICAgICAgICAgaW5pdGlhbGl6ZUxMVk0oKTsKKyAgICAgICAgfQorICAgICAgICAgICAgCiAgICAg
ICAgIEZUTDo6U3RhdGUgc3RhdGUoZGZnKTsKICAgICAgICAgRlRMOjpsb3dlckRGR1RvTExWTShz
dGF0ZSk7Ci0gICAgICAgIAorICAgICAgICAgICAgCiAgICAgICAgIGlmIChyZXBvcnRDb21waWxl
VGltZXMoKSkKICAgICAgICAgICAgIGJlZm9yZUZUTCA9IGN1cnJlbnRUaW1lTVMoKTsKICAgICAg
ICAgCkBAIC0zMjgsNyArMzM0LDcgQEAgUGxhbjo6Q29tcGlsYXRpb25QYXRoIFBsYW46OmNvbXBp
bGVJblRocgogICAgICAgICB9CiAgICAgICAgIAogICAgICAgICBGVEw6OmNvbXBpbGUoc3RhdGUp
OwotCisgICAgICAgICAgICAKICAgICAgICAgaWYgKE9wdGlvbnM6Omxsdm1BbHdheXNGYWlsc0Jl
Zm9yZUxpbmsoKSkgewogICAgICAgICAgICAgRlRMOjpmYWlsKHN0YXRlKTsKICAgICAgICAgICAg
IHJldHVybiBGVExQYXRoOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQbGFu
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQbGFuLmgJKHJl
dmlzaW9uIDE2Mzc2MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUGxhbi5oCSh3
b3JraW5nIGNvcHkpCkBAIC01Miw2ICs1Miw3IEBAIGNsYXNzIFNsb3RWaXNpdG9yOwogbmFtZXNw
YWNlIERGRyB7CiAKIGNsYXNzIExvbmdMaXZlZFN0YXRlOworY2xhc3MgVGhyZWFkRGF0YTsKIAog
I2lmIEVOQUJMRShERkdfSklUKQogCkBAIC02Miw3ICs2Myw3IEBAIHN0cnVjdCBQbGFuIDogcHVi
bGljIFRocmVhZFNhZmVSZWZDb3VudGUKICAgICAgICAgY29uc3QgT3BlcmFuZHM8SlNWYWx1ZT4m
IG11c3RIYW5kbGVWYWx1ZXMpOwogICAgIH5QbGFuKCk7CiAgICAgCi0gICAgdm9pZCBjb21waWxl
SW5UaHJlYWQoTG9uZ0xpdmVkU3RhdGUmKTsKKyAgICB2b2lkIGNvbXBpbGVJblRocmVhZChMb25n
TGl2ZWRTdGF0ZSYsIFRocmVhZERhdGEqKTsKICAgICAKICAgICBDb21waWxhdGlvblJlc3VsdCBm
aW5hbGl6ZVdpdGhvdXROb3RpZnlpbmdDYWxsYmFjaygpOwogICAgIHZvaWQgZmluYWxpemVBbmRO
b3RpZnlDYWxsYmFjaygpOwpAQCAtNzksNiArODAsOCBAQCBzdHJ1Y3QgUGxhbiA6IHB1YmxpYyBU
aHJlYWRTYWZlUmVmQ291bnRlCiAgICAgQ29tcGlsYXRpb25Nb2RlIG1vZGU7CiAgICAgY29uc3Qg
dW5zaWduZWQgb3NyRW50cnlCeXRlY29kZUluZGV4OwogICAgIE9wZXJhbmRzPEpTVmFsdWU+IG11
c3RIYW5kbGVWYWx1ZXM7CisgICAgCisgICAgVGhyZWFkRGF0YSogdGhyZWFkRGF0YTsKIAogICAg
IFJlZlB0cjxQcm9maWxlcjo6Q29tcGlsYXRpb24+IGNvbXBpbGF0aW9uOwogCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVwb2ludC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTYWZlcG9pbnQuY3BwCShyZXZpc2lvbiAwKQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTYWZlcG9pbnQuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0wLDAgKzEsNzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
CisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4g
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKERGR19KSVQpCisKKyNp
bmNsdWRlICJERkdTYWZlcG9pbnQuaCIKKworI2luY2x1ZGUgIkRGR1BsYW4uaCIKKyNpbmNsdWRl
ICJERkdTY2FubmFibGUuaCIKKyNpbmNsdWRlICJERkdUaHJlYWREYXRhLmgiCisjaW5jbHVkZSAi
T3BlcmF0aW9ucy5oIgorCituYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CisKK1NhZmVw
b2ludDo6U2FmZXBvaW50KFBsYW4mIHBsYW4pCisgICAgOiBtX3BsYW4ocGxhbikKKyAgICAsIG1f
ZGlkQ2FsbEJlZ2luKGZhbHNlKQoreworfQorCitTYWZlcG9pbnQ6On5TYWZlcG9pbnQoKQorewor
ICAgIFJFTEVBU0VfQVNTRVJUKG1fZGlkQ2FsbEJlZ2luKTsKKyAgICBpZiAoVGhyZWFkRGF0YSog
ZGF0YSA9IG1fcGxhbi50aHJlYWREYXRhKQorICAgICAgICBkYXRhLT5tX3JpZ2h0VG9SdW4ubG9j
aygpOworfQorCit2b2lkIFNhZmVwb2ludDo6YWRkKFNjYW5uYWJsZSogc2Nhbm5hYmxlKQorewor
ICAgIFJFTEVBU0VfQVNTRVJUKCFtX2RpZENhbGxCZWdpbik7CisgICAgbV9zY2FubmFibGVzLmFw
cGVuZChzY2FubmFibGUpOworfQorCit2b2lkIFNhZmVwb2ludDo6YmVnaW4oKQoreworICAgIFJF
TEVBU0VfQVNTRVJUKCFtX2RpZENhbGxCZWdpbik7CisgICAgaWYgKFRocmVhZERhdGEqIGRhdGEg
PSBtX3BsYW4udGhyZWFkRGF0YSkKKyAgICAgICAgZGF0YS0+bV9yaWdodFRvUnVuLnVubG9jaygp
OworICAgIG1fZGlkQ2FsbEJlZ2luID0gdHJ1ZTsKK30KKwordm9pZCBTYWZlcG9pbnQ6OnZpc2l0
Q2hpbGRyZW4oU2xvdFZpc2l0b3ImIHZpc2l0b3IpCit7CisgICAgUkVMRUFTRV9BU1NFUlQobV9k
aWRDYWxsQmVnaW4pOworICAgIGZvciAodW5zaWduZWQgaSA9IG1fc2Nhbm5hYmxlcy5zaXplKCk7
IGktLTspCisgICAgICAgIG1fc2Nhbm5hYmxlc1tpXS0+dmlzaXRDaGlsZHJlbih2aXNpdG9yKTsK
K30KKworfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkRGRworCisjZW5kaWYgLy8gRU5BQkxFKERGR19K
SVQpCisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZXBvaW50LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTYWZlcG9pbnQuaAkocmV2
aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZXBvaW50LmgJKHdv
cmtpbmcgY29weSkKQEAgLTAsMCArMSw2NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIERGR1NhZmVwb2ludF9oCisjZGVmaW5lIERGR1Nh
ZmVwb2ludF9oCisKKyNpZiBFTkFCTEUoREZHX0pJVCkKKworI2luY2x1ZGUgPHd0Zi9WZWN0b3Iu
aD4KKworbmFtZXNwYWNlIEpTQyB7CisKK2NsYXNzIFNsb3RWaXNpdG9yOworCituYW1lc3BhY2Ug
REZHIHsKKworY2xhc3MgU2Nhbm5hYmxlOworc3RydWN0IFBsYW47CisKK2NsYXNzIFNhZmVwb2lu
dCB7CitwdWJsaWM6CisgICAgU2FmZXBvaW50KFBsYW4mKTsKKyAgICB+U2FmZXBvaW50KCk7Cisg
ICAgCisgICAgdm9pZCBhZGQoU2Nhbm5hYmxlKik7CisgICAgCisgICAgdm9pZCBiZWdpbigpOwor
ICAgIAorICAgIHZvaWQgdmlzaXRDaGlsZHJlbihTbG90VmlzaXRvciYpOworICAgIAorcHJpdmF0
ZToKKyAgICBQbGFuJiBtX3BsYW47CisgICAgVmVjdG9yPFNjYW5uYWJsZSo+IG1fc2Nhbm5hYmxl
czsKKyAgICBib29sIG1fZGlkQ2FsbEJlZ2luOworfTsKKworfSB9IC8vIG5hbWVzcGFjZSBKU0M6
OkRGRworCisjZW5kaWYgLy8gRU5BQkxFKERGR19KSVQpCisKKyNlbmRpZiAvLyBERkdTYWZlcG9p
bnRfaAorCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NjYW5uYWJsZS5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2Nhbm5hYmxlLmgJKHJl
dmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NjYW5uYWJsZS5oCSh3
b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBERkdTY2FubmFibGVfaAorI2RlZmluZSBERkdT
Y2FubmFibGVfaAorCisjaWYgRU5BQkxFKERGR19KSVQpCisKK25hbWVzcGFjZSBKU0MgeworCitj
bGFzcyBTbG90VmlzaXRvcjsKKworbmFtZXNwYWNlIERGRyB7CisKK2NsYXNzIFNjYW5uYWJsZSB7
CitwdWJsaWM6CisgICAgU2Nhbm5hYmxlKCkgeyB9CisgICAgdmlydHVhbCB+U2Nhbm5hYmxlKCkg
eyB9CisgICAgCisgICAgdmlydHVhbCB2b2lkIHZpc2l0Q2hpbGRyZW4oU2xvdFZpc2l0b3ImKSA9
IDA7Cit9OworCit9IH0gLy8gbmFtZXNwYWNlIEpTQzo6REZHCisKKyNlbmRpZiAvLyBFTkFCTEUo
REZHX0pJVCkKKworI2VuZGlmIC8vIERGR1NjYW5uYWJsZV9oCisKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHVGhyZWFkRGF0YS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdUaHJlYWREYXRhLmNwcAkocmV2aXNpb24gMCkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVGhyZWFkRGF0YS5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTAsMCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoREZHX0pJVCkKKworI2luY2x1
ZGUgIkRGR1RocmVhZERhdGEuaCIKKworI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKKworbmFtZXNw
YWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgeworCitUaHJlYWREYXRhOjpUaHJlYWREYXRhKFdvcmts
aXN0KiB3b3JrbGlzdCkKKyAgICA6IG1fd29ya2xpc3Qod29ya2xpc3QpCisgICAgLCBtX2lkZW50
aWZpZXIoMCkKKyAgICAsIG1fc2FmZXBvaW50KG51bGxwdHIpCit7Cit9CisKK1RocmVhZERhdGE6
On5UaHJlYWREYXRhKCkKK3sKK30KKworfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkRGRworCisjZW5k
aWYgLy8gRU5BQkxFKERGR19KSVQpCisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHVGhyZWFkRGF0YS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHVGhyZWFkRGF0YS5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdUaHJlYWREYXRhLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw1OSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIERGR1RocmVh
ZERhdGFfaAorI2RlZmluZSBERkdUaHJlYWREYXRhX2gKKworI2lmIEVOQUJMRShERkdfSklUKQor
CisjaW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgorI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmdQcmlt
aXRpdmVzLmg+CisKK25hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKKworY2xhc3MgU2Fm
ZXBvaW50OworY2xhc3MgV29ya2xpc3Q7CisKK2NsYXNzIFRocmVhZERhdGEgeworcHVibGljOgor
ICAgIFRocmVhZERhdGEoV29ya2xpc3QqKTsKKyAgICB+VGhyZWFkRGF0YSgpOworICAgIAorcHJp
dmF0ZToKKyAgICBmcmllbmQgY2xhc3MgU2FmZXBvaW50OworICAgIGZyaWVuZCBjbGFzcyBXb3Jr
bGlzdDsKKyAgICAKKyAgICBXb3JrbGlzdCogbV93b3JrbGlzdDsKKyAgICBUaHJlYWRJZGVudGlm
aWVyIG1faWRlbnRpZmllcjsKKyAgICBNdXRleCBtX3JpZ2h0VG9SdW47CisgICAgU2FmZXBvaW50
KiBtX3NhZmVwb2ludDsKK307CisKK30gfSAvLyBuYW1lc3BhY2UgSlNDOjpERkcKKworI2VuZGlm
IC8vIEVOQUJMRShERkdfSklUKQorCisjZW5kaWYgLy8gREZHVGhyZWFkRGF0YV9oCisKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHV29ya2xpc3QuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHV29ya2xpc3QuY3BwCShyZXZpc2lvbiAxNjM3
NjApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1dvcmtsaXN0LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkNvZGVCbG9jay5oIgogI2luY2x1
ZGUgIkRlZmVyR0MuaCIKICNpbmNsdWRlICJERkdMb25nTGl2ZWRTdGF0ZS5oIgorI2luY2x1ZGUg
IkRGR1NhZmVwb2ludC5oIgogI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlIDxtdXRl
eD4KIApAQCAtNTksOCArNjAsNyBAQCB2b2lkIFdvcmtsaXN0OjpmaW5pc2hDcmVhdGlvbih1bnNp
Z25lZCBuCiB7CiAgICAgUkVMRUFTRV9BU1NFUlQobnVtYmVyT2ZUaHJlYWRzKTsKICAgICBmb3Ig
KHVuc2lnbmVkIGkgPSBudW1iZXJPZlRocmVhZHM7IGktLTspIHsKLSAgICAgICAgc3RkOjp1bmlx
dWVfcHRyPFRocmVhZERhdGE+IGRhdGEgPSBzdGQ6Om1ha2VfdW5pcXVlPFRocmVhZERhdGE+KCk7
Ci0gICAgICAgIGRhdGEtPm1fd29ya2xpc3QgPSB0aGlzOworICAgICAgICBzdGQ6OnVuaXF1ZV9w
dHI8VGhyZWFkRGF0YT4gZGF0YSA9IHN0ZDo6bWFrZV91bmlxdWU8VGhyZWFkRGF0YT4odGhpcyk7
CiAgICAgICAgIGRhdGEtPm1faWRlbnRpZmllciA9IGNyZWF0ZVRocmVhZCh0aHJlYWRGdW5jdGlv
biwgZGF0YS5nZXQoKSwgIkpTQyBDb21waWxhdGlvbiBUaHJlYWQiKTsKICAgICAgICAgbV90aHJl
YWRzLmFwcGVuZChzdGQ6Om1vdmUoZGF0YSkpOwogICAgIH0KQEAgLTIxMiw2ICsyMTIsMTIgQEAg
dm9pZCBXb3JrbGlzdDo6dmlzaXRDaGlsZHJlbihTbG90VmlzaXRvcgogICAgICAgICBpdGVyLT5r
ZXkudmlzaXRDaGlsZHJlbihjb2RlQmxvY2tzKTsKICAgICAgICAgaXRlci0+dmFsdWUtPnZpc2l0
Q2hpbGRyZW4odmlzaXRvciwgY29kZUJsb2Nrcyk7CiAgICAgfQorICAgIAorICAgIGZvciAodW5z
aWduZWQgaSA9IG1fdGhyZWFkcy5zaXplKCk7IGktLTspIHsKKyAgICAgICAgVGhyZWFkRGF0YSog
ZGF0YSA9IG1fdGhyZWFkc1tpXS5nZXQoKTsKKyAgICAgICAgaWYgKFNhZmVwb2ludCogc2FmZXBv
aW50ID0gZGF0YS0+bV9zYWZlcG9pbnQpCisgICAgICAgICAgICBzYWZlcG9pbnQtPnZpc2l0Q2hp
bGRyZW4odmlzaXRvcik7CisgICAgfQogfQogCiBzaXplX3QgV29ya2xpc3Q6OnF1ZXVlTGVuZ3Ro
KCkKQEAgLTI2Nyw3ICsyNzMsNyBAQCB2b2lkIFdvcmtsaXN0OjpydW5UaHJlYWQoVGhyZWFkRGF0
YSogZGF0CiAgICAgICAgICAgICBpZiAoT3B0aW9uczo6dmVyYm9zZUNvbXBpbGF0aW9uUXVldWUo
KSkKICAgICAgICAgICAgICAgICBkYXRhTG9nKCp0aGlzLCAiOiBDb21waWxpbmcgIiwgcGxhbi0+
a2V5KCksICIgYXN5bmNocm9ub3VzbHlcbiIpOwogICAgICAgICAKLSAgICAgICAgICAgIHBsYW4t
PmNvbXBpbGVJblRocmVhZChsb25nTGl2ZWRTdGF0ZSk7CisgICAgICAgICAgICBwbGFuLT5jb21w
aWxlSW5UaHJlYWQobG9uZ0xpdmVkU3RhdGUsIGRhdGEpOwogICAgICAgICB9CiAgICAgICAgIAog
ICAgICAgICB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1dvcmtsaXN0LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdXb3JrbGlzdC5oCShy
ZXZpc2lvbiAxNjM3NjApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1dvcmtsaXN0
LmgJKHdvcmtpbmcgY29weSkKQEAgLTMxLDYgKzMxLDcgQEAKICNpZiBFTkFCTEUoREZHX0pJVCkK
IAogI2luY2x1ZGUgIkRGR1BsYW4uaCIKKyNpbmNsdWRlICJERkdUaHJlYWREYXRhLmgiCiAjaW5j
bHVkZSA8d3RmL0RlcXVlLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3
dGYvTm9uY29weWFibGUuaD4KQEAgLTc3LDEyICs3OCw2IEBAIHB1YmxpYzoKICAgICB2b2lkIGR1
bXAoUHJpbnRTdHJlYW0mKSBjb25zdDsKICAgICAKIHByaXZhdGU6Ci0gICAgc3RydWN0IFRocmVh
ZERhdGEgewotICAgICAgICBXb3JrbGlzdCogbV93b3JrbGlzdDsKLSAgICAgICAgVGhyZWFkSWRl
bnRpZmllciBtX2lkZW50aWZpZXI7Ci0gICAgICAgIE11dGV4IG1fcmlnaHRUb1J1bjsKLSAgICB9
OwotICAgIAogICAgIFdvcmtsaXN0KCk7CiAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbih1bnNpZ25l
ZCBudW1iZXJPZlRocmVhZHMpOwogICAgIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0
bC9GVExDb21waWxlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRs
L0ZUTENvbXBpbGUuY3BwCShyZXZpc2lvbiAxNjM3NjApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZnRsL0ZUTENvbXBpbGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2ICszMSw3IEBACiAj
aW5jbHVkZSAiQ29kZUJsb2NrV2l0aEpJVFR5cGUuaCIKICNpbmNsdWRlICJDQ2FsbEhlbHBlcnMu
aCIKICNpbmNsdWRlICJERkdDb21tb24uaCIKKyNpbmNsdWRlICJERkdHcmFwaFNhZmVwb2ludC5o
IgogI2luY2x1ZGUgIkRhdGFWaWV3LmgiCiAjaW5jbHVkZSAiRGlzYXNzZW1ibGVyLmgiCiAjaW5j
bHVkZSAiRlRMRXhpdFRodW5rR2VuZXJhdG9yLmgiCkBAIC00NTIsNzAgKzQ1Myw3NCBAQCB2b2lk
IGNvbXBpbGUoU3RhdGUmIHN0YXRlKQogewogICAgIGNoYXIqIGVycm9yID0gMDsKICAgICAKLSAg
ICBMTFZNTUNKSVRDb21waWxlck9wdGlvbnMgb3B0aW9uczsKLSAgICBsbHZtLT5Jbml0aWFsaXpl
TUNKSVRDb21waWxlck9wdGlvbnMoJm9wdGlvbnMsIHNpemVvZihvcHRpb25zKSk7Ci0gICAgb3B0
aW9ucy5PcHRMZXZlbCA9IE9wdGlvbnM6Omxsdm1CYWNrZW5kT3B0aW1pemF0aW9uTGV2ZWwoKTsK
LSAgICBvcHRpb25zLk5vRnJhbWVQb2ludGVyRWxpbSA9IHRydWU7Ci0gICAgaWYgKE9wdGlvbnM6
OnVzZUxMVk1TbWFsbENvZGVNb2RlbCgpKQotICAgICAgICBvcHRpb25zLkNvZGVNb2RlbCA9IExM
Vk1Db2RlTW9kZWxTbWFsbDsKLSAgICBvcHRpb25zLkVuYWJsZUZhc3RJU2VsID0gT3B0aW9uczo6
ZW5hYmxlTExWTUZhc3RJU2VsKCk7Ci0gICAgb3B0aW9ucy5NQ0pNTSA9IGxsdm0tPkNyZWF0ZVNp
bXBsZU1DSklUTWVtb3J5TWFuYWdlcigKLSAgICAgICAgJnN0YXRlLCBtbUFsbG9jYXRlQ29kZVNl
Y3Rpb24sIG1tQWxsb2NhdGVEYXRhU2VjdGlvbiwgbW1BcHBseVBlcm1pc3Npb25zLCBtbURlc3Ry
b3kpOwotICAgIAotICAgIExMVk1FeGVjdXRpb25FbmdpbmVSZWYgZW5naW5lOwotICAgIAotICAg
IGlmIChsbHZtLT5DcmVhdGVNQ0pJVENvbXBpbGVyRm9yTW9kdWxlKCZlbmdpbmUsIHN0YXRlLm1v
ZHVsZSwgJm9wdGlvbnMsIHNpemVvZihvcHRpb25zKSwgJmVycm9yKSkgewotICAgICAgICBkYXRh
TG9nKCJGQVRBTDogQ291bGQgbm90IGNyZWF0ZSBMTFZNIGV4ZWN1dGlvbiBlbmdpbmU6ICIsIGVy
cm9yLCAiXG4iKTsKLSAgICAgICAgQ1JBU0goKTsKLSAgICB9Ci0KLSAgICBMTFZNUGFzc01hbmFn
ZXJSZWYgZnVuY3Rpb25QYXNzZXMgPSAwOwotICAgIExMVk1QYXNzTWFuYWdlclJlZiBtb2R1bGVQ
YXNzZXM7Ci0gICAgCi0gICAgaWYgKE9wdGlvbnM6Omxsdm1TaW1wbGVPcHQoKSkgewotICAgICAg
ICBtb2R1bGVQYXNzZXMgPSBsbHZtLT5DcmVhdGVQYXNzTWFuYWdlcigpOwotICAgICAgICBsbHZt
LT5BZGRUYXJnZXREYXRhKGxsdm0tPkdldEV4ZWN1dGlvbkVuZ2luZVRhcmdldERhdGEoZW5naW5l
KSwgbW9kdWxlUGFzc2VzKTsKLSAgICAgICAgbGx2bS0+QWRkUHJvbW90ZU1lbW9yeVRvUmVnaXN0
ZXJQYXNzKG1vZHVsZVBhc3Nlcyk7Ci0gICAgICAgIGxsdm0tPkFkZENvbnN0YW50UHJvcGFnYXRp
b25QYXNzKG1vZHVsZVBhc3Nlcyk7Ci0gICAgICAgIGxsdm0tPkFkZEluc3RydWN0aW9uQ29tYmlu
aW5nUGFzcyhtb2R1bGVQYXNzZXMpOwotICAgICAgICBsbHZtLT5BZGRCYXNpY0FsaWFzQW5hbHlz
aXNQYXNzKG1vZHVsZVBhc3Nlcyk7Ci0gICAgICAgIGxsdm0tPkFkZFR5cGVCYXNlZEFsaWFzQW5h
bHlzaXNQYXNzKG1vZHVsZVBhc3Nlcyk7Ci0gICAgICAgIGxsdm0tPkFkZEdWTlBhc3MobW9kdWxl
UGFzc2VzKTsKLSAgICAgICAgbGx2bS0+QWRkQ0ZHU2ltcGxpZmljYXRpb25QYXNzKG1vZHVsZVBh
c3Nlcyk7Ci0gICAgICAgIGxsdm0tPlJ1blBhc3NNYW5hZ2VyKG1vZHVsZVBhc3Nlcywgc3RhdGUu
bW9kdWxlKTsKLSAgICB9IGVsc2UgewotICAgICAgICBMTFZNUGFzc01hbmFnZXJCdWlsZGVyUmVm
IHBhc3NCdWlsZGVyID0gbGx2bS0+UGFzc01hbmFnZXJCdWlsZGVyQ3JlYXRlKCk7Ci0gICAgICAg
IGxsdm0tPlBhc3NNYW5hZ2VyQnVpbGRlclNldE9wdExldmVsKHBhc3NCdWlsZGVyLCBPcHRpb25z
OjpsbHZtT3B0aW1pemF0aW9uTGV2ZWwoKSk7Ci0gICAgICAgIGxsdm0tPlBhc3NNYW5hZ2VyQnVp
bGRlclNldFNpemVMZXZlbChwYXNzQnVpbGRlciwgT3B0aW9uczo6bGx2bVNpemVMZXZlbCgpKTsK
LSAgICAgICAgCi0gICAgICAgIGZ1bmN0aW9uUGFzc2VzID0gbGx2bS0+Q3JlYXRlRnVuY3Rpb25Q
YXNzTWFuYWdlckZvck1vZHVsZShzdGF0ZS5tb2R1bGUpOwotICAgICAgICBtb2R1bGVQYXNzZXMg
PSBsbHZtLT5DcmVhdGVQYXNzTWFuYWdlcigpOwotICAgICAgICAKLSAgICAgICAgbGx2bS0+QWRk
VGFyZ2V0RGF0YShsbHZtLT5HZXRFeGVjdXRpb25FbmdpbmVUYXJnZXREYXRhKGVuZ2luZSksIG1v
ZHVsZVBhc3Nlcyk7Ci0gICAgICAgIAotICAgICAgICBsbHZtLT5QYXNzTWFuYWdlckJ1aWxkZXJQ
b3B1bGF0ZUZ1bmN0aW9uUGFzc01hbmFnZXIocGFzc0J1aWxkZXIsIGZ1bmN0aW9uUGFzc2VzKTsK
LSAgICAgICAgbGx2bS0+UGFzc01hbmFnZXJCdWlsZGVyUG9wdWxhdGVNb2R1bGVQYXNzTWFuYWdl
cihwYXNzQnVpbGRlciwgbW9kdWxlUGFzc2VzKTsKLSAgICAgICAgCi0gICAgICAgIGxsdm0tPlBh
c3NNYW5hZ2VyQnVpbGRlckRpc3Bvc2UocGFzc0J1aWxkZXIpOwotICAgICAgICAKLSAgICAgICAg
bGx2bS0+SW5pdGlhbGl6ZUZ1bmN0aW9uUGFzc01hbmFnZXIoZnVuY3Rpb25QYXNzZXMpOwotICAg
ICAgICBmb3IgKExWYWx1ZSBmdW5jdGlvbiA9IGxsdm0tPkdldEZpcnN0RnVuY3Rpb24oc3RhdGUu
bW9kdWxlKTsgZnVuY3Rpb247IGZ1bmN0aW9uID0gbGx2bS0+R2V0TmV4dEZ1bmN0aW9uKGZ1bmN0
aW9uKSkKLSAgICAgICAgICAgIGxsdm0tPlJ1bkZ1bmN0aW9uUGFzc01hbmFnZXIoZnVuY3Rpb25Q
YXNzZXMsIGZ1bmN0aW9uKTsKLSAgICAgICAgbGx2bS0+RmluYWxpemVGdW5jdGlvblBhc3NNYW5h
Z2VyKGZ1bmN0aW9uUGFzc2VzKTsKLSAgICAgICAgCi0gICAgICAgIGxsdm0tPlJ1blBhc3NNYW5h
Z2VyKG1vZHVsZVBhc3Nlcywgc3RhdGUubW9kdWxlKTsKLSAgICB9Ci0KLSAgICBpZiAoREZHOjpz
aG91bGRTaG93RGlzYXNzZW1ibHkoKSB8fCBERkc6OnZlcmJvc2VDb21waWxhdGlvbkVuYWJsZWQo
KSkKLSAgICAgICAgc3RhdGUuZHVtcFN0YXRlKCJhZnRlciBvcHRpbWl6YXRpb24iKTsKLSAgICAK
LSAgICAvLyBGSVhNRTogTmVlZCB0byBhZGQgc3VwcG9ydCBmb3IgdGhlIGNhc2Ugd2hlcmUgSklU
IG1lbW9yeSBhbGxvY2F0aW9uIGZhaWxlZC4KLSAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTEzNjIwCi0gICAgc3RhdGUuZ2VuZXJhdGVkRnVuY3Rpb24gPSBy
ZWludGVycHJldF9jYXN0PEdlbmVyYXRlZEZ1bmN0aW9uPihsbHZtLT5HZXRQb2ludGVyVG9HbG9i
YWwoZW5naW5lLCBzdGF0ZS5mdW5jdGlvbikpOwotICAgIGlmIChmdW5jdGlvblBhc3NlcykKLSAg
ICAgICAgbGx2bS0+RGlzcG9zZVBhc3NNYW5hZ2VyKGZ1bmN0aW9uUGFzc2VzKTsKLSAgICBsbHZt
LT5EaXNwb3NlUGFzc01hbmFnZXIobW9kdWxlUGFzc2VzKTsKLSAgICBsbHZtLT5EaXNwb3NlRXhl
Y3V0aW9uRW5naW5lKGVuZ2luZSk7CisgICAgeworICAgICAgICBHcmFwaFNhZmVwb2ludCBzYWZl
cG9pbnQoc3RhdGUuZ3JhcGgpOworICAgICAgICAKKyAgICAgICAgTExWTU1DSklUQ29tcGlsZXJP
cHRpb25zIG9wdGlvbnM7CisgICAgICAgIGxsdm0tPkluaXRpYWxpemVNQ0pJVENvbXBpbGVyT3B0
aW9ucygmb3B0aW9ucywgc2l6ZW9mKG9wdGlvbnMpKTsKKyAgICAgICAgb3B0aW9ucy5PcHRMZXZl
bCA9IE9wdGlvbnM6Omxsdm1CYWNrZW5kT3B0aW1pemF0aW9uTGV2ZWwoKTsKKyAgICAgICAgb3B0
aW9ucy5Ob0ZyYW1lUG9pbnRlckVsaW0gPSB0cnVlOworICAgICAgICBpZiAoT3B0aW9uczo6dXNl
TExWTVNtYWxsQ29kZU1vZGVsKCkpCisgICAgICAgICAgICBvcHRpb25zLkNvZGVNb2RlbCA9IExM
Vk1Db2RlTW9kZWxTbWFsbDsKKyAgICAgICAgb3B0aW9ucy5FbmFibGVGYXN0SVNlbCA9IE9wdGlv
bnM6OmVuYWJsZUxMVk1GYXN0SVNlbCgpOworICAgICAgICBvcHRpb25zLk1DSk1NID0gbGx2bS0+
Q3JlYXRlU2ltcGxlTUNKSVRNZW1vcnlNYW5hZ2VyKAorICAgICAgICAgICAgJnN0YXRlLCBtbUFs
bG9jYXRlQ29kZVNlY3Rpb24sIG1tQWxsb2NhdGVEYXRhU2VjdGlvbiwgbW1BcHBseVBlcm1pc3Np
b25zLCBtbURlc3Ryb3kpOworICAgIAorICAgICAgICBMTFZNRXhlY3V0aW9uRW5naW5lUmVmIGVu
Z2luZTsKKyAgICAKKyAgICAgICAgaWYgKGxsdm0tPkNyZWF0ZU1DSklUQ29tcGlsZXJGb3JNb2R1
bGUoJmVuZ2luZSwgc3RhdGUubW9kdWxlLCAmb3B0aW9ucywgc2l6ZW9mKG9wdGlvbnMpLCAmZXJy
b3IpKSB7CisgICAgICAgICAgICBkYXRhTG9nKCJGQVRBTDogQ291bGQgbm90IGNyZWF0ZSBMTFZN
IGV4ZWN1dGlvbiBlbmdpbmU6ICIsIGVycm9yLCAiXG4iKTsKKyAgICAgICAgICAgIENSQVNIKCk7
CisgICAgICAgIH0KKworICAgICAgICBMTFZNUGFzc01hbmFnZXJSZWYgZnVuY3Rpb25QYXNzZXMg
PSAwOworICAgICAgICBMTFZNUGFzc01hbmFnZXJSZWYgbW9kdWxlUGFzc2VzOworICAgIAorICAg
ICAgICBpZiAoT3B0aW9uczo6bGx2bVNpbXBsZU9wdCgpKSB7CisgICAgICAgICAgICBtb2R1bGVQ
YXNzZXMgPSBsbHZtLT5DcmVhdGVQYXNzTWFuYWdlcigpOworICAgICAgICAgICAgbGx2bS0+QWRk
VGFyZ2V0RGF0YShsbHZtLT5HZXRFeGVjdXRpb25FbmdpbmVUYXJnZXREYXRhKGVuZ2luZSksIG1v
ZHVsZVBhc3Nlcyk7CisgICAgICAgICAgICBsbHZtLT5BZGRQcm9tb3RlTWVtb3J5VG9SZWdpc3Rl
clBhc3MobW9kdWxlUGFzc2VzKTsKKyAgICAgICAgICAgIGxsdm0tPkFkZENvbnN0YW50UHJvcGFn
YXRpb25QYXNzKG1vZHVsZVBhc3Nlcyk7CisgICAgICAgICAgICBsbHZtLT5BZGRJbnN0cnVjdGlv
bkNvbWJpbmluZ1Bhc3MobW9kdWxlUGFzc2VzKTsKKyAgICAgICAgICAgIGxsdm0tPkFkZEJhc2lj
QWxpYXNBbmFseXNpc1Bhc3MobW9kdWxlUGFzc2VzKTsKKyAgICAgICAgICAgIGxsdm0tPkFkZFR5
cGVCYXNlZEFsaWFzQW5hbHlzaXNQYXNzKG1vZHVsZVBhc3Nlcyk7CisgICAgICAgICAgICBsbHZt
LT5BZGRHVk5QYXNzKG1vZHVsZVBhc3Nlcyk7CisgICAgICAgICAgICBsbHZtLT5BZGRDRkdTaW1w
bGlmaWNhdGlvblBhc3MobW9kdWxlUGFzc2VzKTsKKyAgICAgICAgICAgIGxsdm0tPlJ1blBhc3NN
YW5hZ2VyKG1vZHVsZVBhc3Nlcywgc3RhdGUubW9kdWxlKTsKKyAgICAgICAgfSBlbHNlIHsKKyAg
ICAgICAgICAgIExMVk1QYXNzTWFuYWdlckJ1aWxkZXJSZWYgcGFzc0J1aWxkZXIgPSBsbHZtLT5Q
YXNzTWFuYWdlckJ1aWxkZXJDcmVhdGUoKTsKKyAgICAgICAgICAgIGxsdm0tPlBhc3NNYW5hZ2Vy
QnVpbGRlclNldE9wdExldmVsKHBhc3NCdWlsZGVyLCBPcHRpb25zOjpsbHZtT3B0aW1pemF0aW9u
TGV2ZWwoKSk7CisgICAgICAgICAgICBsbHZtLT5QYXNzTWFuYWdlckJ1aWxkZXJTZXRTaXplTGV2
ZWwocGFzc0J1aWxkZXIsIE9wdGlvbnM6Omxsdm1TaXplTGV2ZWwoKSk7CisgICAgICAgIAorICAg
ICAgICAgICAgZnVuY3Rpb25QYXNzZXMgPSBsbHZtLT5DcmVhdGVGdW5jdGlvblBhc3NNYW5hZ2Vy
Rm9yTW9kdWxlKHN0YXRlLm1vZHVsZSk7CisgICAgICAgICAgICBtb2R1bGVQYXNzZXMgPSBsbHZt
LT5DcmVhdGVQYXNzTWFuYWdlcigpOworICAgICAgICAKKyAgICAgICAgICAgIGxsdm0tPkFkZFRh
cmdldERhdGEobGx2bS0+R2V0RXhlY3V0aW9uRW5naW5lVGFyZ2V0RGF0YShlbmdpbmUpLCBtb2R1
bGVQYXNzZXMpOworICAgICAgICAKKyAgICAgICAgICAgIGxsdm0tPlBhc3NNYW5hZ2VyQnVpbGRl
clBvcHVsYXRlRnVuY3Rpb25QYXNzTWFuYWdlcihwYXNzQnVpbGRlciwgZnVuY3Rpb25QYXNzZXMp
OworICAgICAgICAgICAgbGx2bS0+UGFzc01hbmFnZXJCdWlsZGVyUG9wdWxhdGVNb2R1bGVQYXNz
TWFuYWdlcihwYXNzQnVpbGRlciwgbW9kdWxlUGFzc2VzKTsKKyAgICAgICAgCisgICAgICAgICAg
ICBsbHZtLT5QYXNzTWFuYWdlckJ1aWxkZXJEaXNwb3NlKHBhc3NCdWlsZGVyKTsKKyAgICAgICAg
CisgICAgICAgICAgICBsbHZtLT5Jbml0aWFsaXplRnVuY3Rpb25QYXNzTWFuYWdlcihmdW5jdGlv
blBhc3Nlcyk7CisgICAgICAgICAgICBmb3IgKExWYWx1ZSBmdW5jdGlvbiA9IGxsdm0tPkdldEZp
cnN0RnVuY3Rpb24oc3RhdGUubW9kdWxlKTsgZnVuY3Rpb247IGZ1bmN0aW9uID0gbGx2bS0+R2V0
TmV4dEZ1bmN0aW9uKGZ1bmN0aW9uKSkKKyAgICAgICAgICAgICAgICBsbHZtLT5SdW5GdW5jdGlv
blBhc3NNYW5hZ2VyKGZ1bmN0aW9uUGFzc2VzLCBmdW5jdGlvbik7CisgICAgICAgICAgICBsbHZt
LT5GaW5hbGl6ZUZ1bmN0aW9uUGFzc01hbmFnZXIoZnVuY3Rpb25QYXNzZXMpOworICAgICAgICAK
KyAgICAgICAgICAgIGxsdm0tPlJ1blBhc3NNYW5hZ2VyKG1vZHVsZVBhc3Nlcywgc3RhdGUubW9k
dWxlKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChERkc6OnNob3VsZFNob3dEaXNhc3NlbWJs
eSgpIHx8IERGRzo6dmVyYm9zZUNvbXBpbGF0aW9uRW5hYmxlZCgpKQorICAgICAgICAgICAgc3Rh
dGUuZHVtcFN0YXRlKCJhZnRlciBvcHRpbWl6YXRpb24iKTsKKyAgICAKKyAgICAgICAgLy8gRklY
TUU6IE5lZWQgdG8gYWRkIHN1cHBvcnQgZm9yIHRoZSBjYXNlIHdoZXJlIEpJVCBtZW1vcnkgYWxs
b2NhdGlvbiBmYWlsZWQuCisgICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMTM2MjAKKyAgICAgICAgc3RhdGUuZ2VuZXJhdGVkRnVuY3Rpb24gPSByZWlu
dGVycHJldF9jYXN0PEdlbmVyYXRlZEZ1bmN0aW9uPihsbHZtLT5HZXRQb2ludGVyVG9HbG9iYWwo
ZW5naW5lLCBzdGF0ZS5mdW5jdGlvbikpOworICAgICAgICBpZiAoZnVuY3Rpb25QYXNzZXMpCisg
ICAgICAgICAgICBsbHZtLT5EaXNwb3NlUGFzc01hbmFnZXIoZnVuY3Rpb25QYXNzZXMpOworICAg
ICAgICBsbHZtLT5EaXNwb3NlUGFzc01hbmFnZXIobW9kdWxlUGFzc2VzKTsKKyAgICAgICAgbGx2
bS0+RGlzcG9zZUV4ZWN1dGlvbkVuZ2luZShlbmdpbmUpOworICAgIH0KIAogICAgIGlmIChzaG91
bGRTaG93RGlzYXNzZW1ibHkoKSkgewogICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwg
c3RhdGUuaml0Q29kZS0+aGFuZGxlcygpLnNpemUoKTsgKytpKSB7CkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaGVhcC9TbG90VmlzaXRvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9oZWFwL1Nsb3RWaXNpdG9yLmgJKHJldmlzaW9uIDE2Mzc2MCkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1Nsb3RWaXNpdG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTY4
LDYgKzY4LDkgQEAgcHVibGljOgogICAgIHZvaWQgYXBwZW5kVW5iYXJyaWVyZWRWYWx1ZShKU1Zh
bHVlKik7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KICAgICB2b2lkIGFwcGVuZFVuYmFycmll
cmVkV2VhayhXZWFrPFQ+Kik7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KKyAgICB2b2lkIGFw
cGVuZFVuYmFycmllcmVkUmVhZE9ubHlQb2ludGVyKFQqKTsKKyAgICB2b2lkIGFwcGVuZFVuYmFy
cmllcmVkUmVhZE9ubHlWYWx1ZShKU1ZhbHVlKTsKICAgICB2b2lkIHVuY29uZGl0aW9uYWxseUFw
cGVuZChKU0NlbGwqKTsKICAgICAKICAgICB2b2lkIGFkZE9wYXF1ZVJvb3Qodm9pZCopOwpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvU2xvdFZpc2l0b3JJbmxpbmVzLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvU2xvdFZpc2l0b3JJbmxpbmVzLmgJ
KHJldmlzaW9uIDE2Mzc2MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1Nsb3RWaXNp
dG9ySW5saW5lcy5oCSh3b3JraW5nIGNvcHkpCkBAIC01MSw2ICs1MSwxMiBAQCBpbmxpbmUgdm9p
ZCBTbG90VmlzaXRvcjo6YXBwZW5kVW5iYXJyaWVyCiAgICAgaW50ZXJuYWxBcHBlbmQoc2xvdCwg
Y2VsbCk7CiB9CiAKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+CitpbmxpbmUgdm9pZCBTbG90VmlzaXRv
cjo6YXBwZW5kVW5iYXJyaWVyZWRSZWFkT25seVBvaW50ZXIoVCogY2VsbCkKK3sKKyAgICBpbnRl
cm5hbEFwcGVuZCgwLCBjZWxsKTsKK30KKwogQUxXQVlTX0lOTElORSB2b2lkIFNsb3RWaXNpdG9y
OjphcHBlbmQoSlNWYWx1ZSogc2xvdCkKIHsKICAgICBBU1NFUlQoc2xvdCk7CkBAIC02Myw2ICs2
OSwxMSBAQCBBTFdBWVNfSU5MSU5FIHZvaWQgU2xvdFZpc2l0b3I6OmFwcGVuZFVuCiAgICAgaW50
ZXJuYWxBcHBlbmQoc2xvdCwgKnNsb3QpOwogfQogCitBTFdBWVNfSU5MSU5FIHZvaWQgU2xvdFZp
c2l0b3I6OmFwcGVuZFVuYmFycmllcmVkUmVhZE9ubHlWYWx1ZShKU1ZhbHVlIHZhbHVlKQorewor
ICAgIGludGVybmFsQXBwZW5kKDAsIHZhbHVlKTsKK30KKwogQUxXQVlTX0lOTElORSB2b2lkIFNs
b3RWaXNpdG9yOjphcHBlbmQoSlNDZWxsKiogc2xvdCkKIHsKICAgICBBU1NFUlQoc2xvdCk7Cg==
</data>
<flag name="review"
          id="247720"
          type_id="1"
          status="+"
          setter="oliver"
    />
          </attachment>
      

    </bug>

</bugzilla>