<?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>38503</bug_id>
          
          <creation_ts>2010-05-03 19:41:59 -0700</creation_ts>
          <short_desc>Remove all custom DB callbacks in favor of auto-generated callbacks</short_desc>
          <delta_ts>2010-05-04 20:24:40 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dumitru Daniliuc">dumi</reporter>
          <assigned_to name="Dumitru Daniliuc">dumi</assigned_to>
          <cc>abarth</cc>
    
    <cc>dglazkov</cc>
    
    <cc>ericu</cc>
    
    <cc>gustavo</cc>
    
    <cc>michaeln</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
    
    <cc>yaar</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>220423</commentid>
    <comment_count>0</comment_count>
    <who name="Dumitru Daniliuc">dumi</who>
    <bug_when>2010-05-03 19:41:59 -0700</bug_when>
    <thetext>The JSC and V8 code generators can now generate callbacks. We should take advantage of that and remove all custom DB callbacks we have now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>220542</commentid>
    <comment_count>1</comment_count>
      <attachid>55006</attachid>
    <who name="Dumitru Daniliuc">dumi</who>
    <bug_when>2010-05-04 03:31:31 -0700</bug_when>
    <thetext>Created attachment 55006
patch

The patch is not as big as it might seem: it&apos;s mostly files being removed + build file changes.

Tested in WebKit/Win, WebKit/Mac and Chromium/Win.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>220544</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-05-04 03:35:33 -0700</bug_when>
    <thetext>Attachment 55006 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;, &apos;--no-squash&apos;]&quot; exit_code: 1
WebCore/bindings/js/JSCustomSQLStatementErrorCallback.cpp:30:  Found other header before a header this file implements. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
WebCore/bindings/v8/custom/V8CustomSQLStatementErrorCallback.cpp:35:  Found other header before a header this file implements. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
Total errors found: 2 in 26 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>220545</commentid>
    <comment_count>3</comment_count>
    <who name="Dumitru Daniliuc">dumi</who>
    <bug_when>2010-05-04 03:39:03 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; WebCore/bindings/js/JSCustomSQLStatementErrorCallback.cpp:30:  Found other
&gt; header before a header this file implements. Should be: config.h, primary
&gt; header, blank line, and then alphabetically sorted.  [build/include_order] [4]
&gt; WebCore/bindings/v8/custom/V8CustomSQLStatementErrorCallback.cpp:35:  Found
&gt; other header before a header this file implements. Should be: config.h, primary
&gt; header, blank line, and then alphabetically sorted.  [build/include_order] [4]

The headers are fine: {JS|V8}CustomSQLStatementErrorCallback.cpp implement the custom methods of {JS|V8}SQLStatementErrorCallback. There are no {JS|V8}CustomSQLStatementErrorCallback classes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>220555</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-05-04 04:39:38 -0700</bug_when>
    <thetext>Attachment 55006 did not build on gtk:
Build output: http://webkit-commit-queue.appspot.com/results/2139008</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>220754</commentid>
    <comment_count>5</comment_count>
      <attachid>55006</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-05-04 13:56:17 -0700</bug_when>
    <thetext>Comment on attachment 55006
patch

This change is fantastic.  Please make sure it builds on Gtk before committing.

+  * Copyright (C) 2007 Apple Inc. All rights reserved.

Apple?

+ $implIncludes{&quot;JS${type}.h&quot;} = 1;

This is ugly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>220850</commentid>
    <comment_count>6</comment_count>
      <attachid>55068</attachid>
    <who name="Dumitru Daniliuc">dumi</who>
    <bug_when>2010-05-04 16:07:35 -0700</bug_when>
    <thetext>Created attachment 55068
patch

Should fix the GTK bot problem.

(In reply to comment #5)
&gt; (From update of attachment 55006 [details])
&gt; +  * Copyright (C) 2007 Apple Inc. All rights reserved.
&gt; 
&gt; Apple?

Oops, fixed. I assume you&apos;re referring to the new IDL files?

&gt; + $implIncludes{&quot;JS${type}.h&quot;} = 1;
&gt; 
&gt; This is ugly.

Not sure how to handle this better. Most generated code needs to include ${type}.h, and callbacks need to include JS${type}.h for the toJS() function.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>220852</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-05-04 16:10:38 -0700</bug_when>
    <thetext>Attachment 55068 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;, &apos;--no-squash&apos;]&quot; exit_code: 1
WebCore/bindings/js/JSCustomSQLStatementErrorCallback.cpp:30:  Found other header before a header this file implements. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
WebCore/bindings/v8/custom/V8CustomSQLStatementErrorCallback.cpp:35:  Found other header before a header this file implements. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
Total errors found: 2 in 26 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>220934</commentid>
    <comment_count>8</comment_count>
      <attachid>55068</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-05-04 18:48:14 -0700</bug_when>
    <thetext>Comment on attachment 55068
patch

Yeah.  I think its ok to keep that for now.  That script needs some more love.

Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>220950</commentid>
    <comment_count>9</comment_count>
    <who name="Dumitru Daniliuc">dumi</who>
    <bug_when>2010-05-04 20:24:40 -0700</bug_when>
    <thetext>Landed as r58801.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>55006</attachid>
            <date>2010-05-04 03:31:31 -0700</date>
            <delta_ts>2010-05-04 16:07:35 -0700</delta_ts>
            <desc>patch</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>122011</size>
            <attacher name="Dumitru Daniliuc">dumi</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1ODc0NykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNjcgQEAKKzIwMTAtMDUtMDQgIER1bWl0cnUgRGFuaWxpdWMgIDxkdW1pQGNocm9t
aXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBBdXRvLWdlbmVyYXRlIGFsbCBEYXRhYmFzZSBjYWxsYmFja3MuCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zODUwMworCisgICAgICAgICogRGVyaXZl
ZFNvdXJjZXMuY3BwOgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICog
R05VbWFrZWZpbGUuYW06CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNv
cmUucHJpOgorICAgICAgICAqIFdlYkNvcmUucHJvOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9q
L1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvajoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwOgorICAg
ICAgICAqIGJpbmRpbmdzL2pzL0pTQ3VzdG9tU1FMU3RhdGVtZW50Q2FsbGJhY2suY3BwOiBSZW1v
dmVkLgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTQ3VzdG9tU1FMU3RhdGVtZW50Q2FsbGJhY2su
aDogUmVtb3ZlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0N1c3RvbVNRTFN0YXRlbWVudEVy
cm9yQ2FsbGJhY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNTUUxTdGF0ZW1lbnRFcnJvckNh
bGxiYWNrOjpoYW5kbGVFdmVudCk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNDdXN0b21TUUxT
dGF0ZW1lbnRFcnJvckNhbGxiYWNrLmg6IFJlbW92ZWQuCisgICAgICAgICogYmluZGluZ3MvanMv
SlNDdXN0b21TUUxUcmFuc2FjdGlvbkNhbGxiYWNrLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9KU0N1c3RvbVNRTFRyYW5zYWN0aW9uQ2FsbGJhY2suaDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBiaW5kaW5ncy9qcy9KU0N1c3RvbVNRTFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFjay5j
cHA6IFJlbW92ZWQuCisgICAgICAgICogYmluZGluZ3MvanMvSlNDdXN0b21TUUxUcmFuc2FjdGlv
bkVycm9yQ2FsbGJhY2suaDogUmVtb3ZlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RhdGFi
YXNlQ2FsbGJhY2suY3BwOiBSZW1vdmVkLgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRGF0YWJh
c2VDYWxsYmFjay5oOiBSZW1vdmVkLgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRGF0YWJhc2VD
dXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNEYXRhYmFzZTo6Y2hhbmdlVmVyc2lvbik6
CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVUcmFuc2FjdGlvbik6CisgICAgICAgICogYmluZGlu
Z3MvanMvSlNTUUxUcmFuc2FjdGlvbkN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1NR
TFRyYW5zYWN0aW9uOjpleGVjdXRlU3FsKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0Nv
ZGVHZW5lcmF0b3JKUy5wbToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0Q2FsbGJhY2suY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOEN1c3RvbVNR
TFN0YXRlbWVudENhbGxiYWNrLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBiaW5kaW5ncy92OC9j
dXN0b20vVjhDdXN0b21TUUxTdGF0ZW1lbnRDYWxsYmFjay5oOiBSZW1vdmVkLgorICAgICAgICAq
IGJpbmRpbmdzL3Y4L2N1c3RvbS9WOEN1c3RvbVNRTFN0YXRlbWVudEVycm9yQ2FsbGJhY2suY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6VjhTUUxTdGF0ZW1lbnRFcnJvckNhbGxiYWNrOjpoYW5kbGVF
dmVudCk6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4Q3VzdG9tU1FMU3RhdGVtZW50
RXJyb3JDYWxsYmFjay5oOiBSZW1vdmVkLgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9W
OEN1c3RvbVNRTFRyYW5zYWN0aW9uQ2FsbGJhY2suY3BwOiBSZW1vdmVkLgorICAgICAgICAqIGJp
bmRpbmdzL3Y4L2N1c3RvbS9WOEN1c3RvbVNRTFRyYW5zYWN0aW9uQ2FsbGJhY2suaDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhDdXN0b21TUUxUcmFuc2FjdGlvbkVy
cm9yQ2FsbGJhY2suY3BwOiBSZW1vdmVkLgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9W
OEN1c3RvbVNRTFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFjay5oOiBSZW1vdmVkLgorICAgICAgICAq
IGJpbmRpbmdzL3Y4L2N1c3RvbS9WOERhdGFiYXNlQ2FsbGJhY2suY3BwOiBSZW1vdmVkLgorICAg
ICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOERhdGFiYXNlQ2FsbGJhY2suaDogUmVtb3ZlZC4K
KyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhEYXRhYmFzZUN1c3RvbS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpWOERhdGFiYXNlOjpjaGFuZ2VWZXJzaW9uQ2FsbGJhY2spOgorICAgICAg
ICAoV2ViQ29yZTo6Y3JlYXRlVHJhbnNhY3Rpb24pOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1
c3RvbS9WOFNRTFRyYW5zYWN0aW9uQ3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4U1FM
VHJhbnNhY3Rpb246OmV4ZWN1dGVTcWxDYWxsYmFjayk6CisgICAgICAgICogc3RvcmFnZS9EYXRh
YmFzZUNhbGxiYWNrLmg6CisgICAgICAgICogc3RvcmFnZS9EYXRhYmFzZUNhbGxiYWNrLmlkbDog
QWRkZWQuCisgICAgICAgICogc3RvcmFnZS9TUUxTdGF0ZW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U1FMU3RhdGVtZW50OjpwZXJmb3JtQ2FsbGJhY2spOgorICAgICAgICAqIHN0b3JhZ2Uv
U1FMU3RhdGVtZW50Q2FsbGJhY2suaDoKKyAgICAgICAgKiBzdG9yYWdlL1NRTFN0YXRlbWVudENh
bGxiYWNrLmlkbDogQWRkZWQuCisgICAgICAgICogc3RvcmFnZS9TUUxTdGF0ZW1lbnRFcnJvckNh
bGxiYWNrLmlkbDogQWRkZWQuCisgICAgICAgICogc3RvcmFnZS9TUUxUcmFuc2FjdGlvbi5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTUUxUcmFuc2FjdGlvbjo6ZGVsaXZlclRyYW5zYWN0aW9uQ2Fs
bGJhY2spOgorICAgICAgICAqIHN0b3JhZ2UvU1FMVHJhbnNhY3Rpb25DYWxsYmFjay5oOgorICAg
ICAgICAqIHN0b3JhZ2UvU1FMVHJhbnNhY3Rpb25DYWxsYmFjay5pZGw6IEFkZGVkLgorICAgICAg
ICAqIHN0b3JhZ2UvU1FMVHJhbnNhY3Rpb25FcnJvckNhbGxiYWNrLmg6CisgICAgICAgICogc3Rv
cmFnZS9TUUxUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2suaWRsOiBBZGRlZC4KKwogMjAxMC0wNS0w
NCAgTWlraGFpbCBOYWdhbm92ICA8bW5hZ2Fub3ZAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJl
dmlld2VkIGJ5IFBhdmVsIEZlbGRtYW4uCkluZGV4OiBXZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcAkocmV2aXNpb24gNTg3
NDcpCisrKyBXZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjQs
NiArNjQsNyBAQAogI2luY2x1ZGUgIkpTQ1NTVmFyaWFibGVzUnVsZS5jcHAiCiAjaW5jbHVkZSAi
SlNDdXN0b21FdmVudC5jcHAiCiAjaW5jbHVkZSAiSlNEYXRhYmFzZS5jcHAiCisjaW5jbHVkZSAi
SlNEYXRhYmFzZUNhbGxiYWNrLmNwcCIKICNpbmNsdWRlICJKU0RhdGFHcmlkQ29sdW1uLmNwcCIK
ICNpbmNsdWRlICJKU0RhdGFHcmlkQ29sdW1uTGlzdC5jcHAiCiAjaW5jbHVkZSAiSlNEZWRpY2F0
ZWRXb3JrZXJDb250ZXh0LmNwcCIKQEAgLTIwNCw3ICsyMDUsMTEgQEAKICNpbmNsdWRlICJKU1NR
TEVycm9yLmNwcCIKICNpbmNsdWRlICJKU1NRTFJlc3VsdFNldC5jcHAiCiAjaW5jbHVkZSAiSlNT
UUxSZXN1bHRTZXRSb3dMaXN0LmNwcCIKKyNpbmNsdWRlICJKU1NRTFN0YXRlbWVudENhbGxiYWNr
LmNwcCIKKyNpbmNsdWRlICJKU1NRTFN0YXRlbWVudEVycm9yQ2FsbGJhY2suY3BwIgogI2luY2x1
ZGUgIkpTU1FMVHJhbnNhY3Rpb24uY3BwIgorI2luY2x1ZGUgIkpTU1FMVHJhbnNhY3Rpb25DYWxs
YmFjay5jcHAiCisjaW5jbHVkZSAiSlNTUUxUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2suY3BwIgog
I2luY2x1ZGUgIkpTU3RvcmFnZS5jcHAiCiAjaW5jbHVkZSAiSlNTdG9yYWdlRXZlbnQuY3BwIgog
I2luY2x1ZGUgIkpTU3R5bGVNZWRpYS5jcHAiCkluZGV4OiBXZWJDb3JlL0Rlcml2ZWRTb3VyY2Vz
Lm1ha2UKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCShyZXZpc2lv
biA1ODc0NykKKysrIFdlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQkod29ya2luZyBjb3B5KQpA
QCAtMTE1LDYgKzExNSw3IEBAIERPTV9DTEFTU0VTID0gXAogICAgIERPTVNlbGVjdGlvbiBcCiAg
ICAgRE9NV2luZG93IFwKICAgICBEYXRhYmFzZSBcCisgICAgRGF0YWJhc2VDYWxsYmFjayBcCiAg
ICAgRG9jdW1lbnQgXAogICAgIERvY3VtZW50RnJhZ21lbnQgXAogICAgIERvY3VtZW50VHlwZSBc
CkBAIC0yNDgsNyArMjQ5LDExIEBAIERPTV9DTEFTU0VTID0gXAogICAgIFNRTEVycm9yIFwKICAg
ICBTUUxSZXN1bHRTZXQgXAogICAgIFNRTFJlc3VsdFNldFJvd0xpc3QgXAorICAgIFNRTFN0YXRl
bWVudENhbGxiYWNrIFwKKyAgICBTUUxTdGF0ZW1lbnRFcnJvckNhbGxiYWNrIFwKICAgICBTUUxU
cmFuc2FjdGlvbiBcCisgICAgU1FMVHJhbnNhY3Rpb25DYWxsYmFjayBcCisgICAgU1FMVHJhbnNh
Y3Rpb25FcnJvckNhbGxiYWNrIFwKICAgICBTdG9yYWdlIFwKICAgICBTdG9yYWdlRXZlbnQgXAog
ICAgIFNWR0FFbGVtZW50IFwKSW5kZXg6IFdlYkNvcmUvR05VbWFrZWZpbGUuYW0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQkocmV2aXNpb24gNTg3NDcpCisrKyBXZWJDb3Jl
L0dOVW1ha2VmaWxlLmFtCSh3b3JraW5nIGNvcHkpCkBAIC0yMzAyLDI1ICsyMzAyLDIxIEBAIEZF
QVRVUkVfREVGSU5FUyArPSBFTkFCTEVfREFUQUJBU0U9MQogCiBJRExfQklORElOR1MgKz0gXAog
CVdlYkNvcmUvc3RvcmFnZS9EYXRhYmFzZS5pZGwgXAorCVdlYkNvcmUvc3RvcmFnZS9EYXRhYmFz
ZUNhbGxiYWNrLmlkbCBcCiAJV2ViQ29yZS9zdG9yYWdlL1NRTEVycm9yLmlkbCBcCiAJV2ViQ29y
ZS9zdG9yYWdlL1NRTFJlc3VsdFNldC5pZGwgXAogCVdlYkNvcmUvc3RvcmFnZS9TUUxSZXN1bHRT
ZXRSb3dMaXN0LmlkbCBcCi0JV2ViQ29yZS9zdG9yYWdlL1NRTFRyYW5zYWN0aW9uLmlkbAorCVdl
YkNvcmUvc3RvcmFnZS9TUUxTdGF0ZW1lbnRDYWxsYmFjay5pZGwgXAorCVdlYkNvcmUvc3RvcmFn
ZS9TUUxTdGF0ZW1lbnRFcnJvckNhbGxiYWNrLmlkbCBcCisJV2ViQ29yZS9zdG9yYWdlL1NRTFRy
YW5zYWN0aW9uLmlkbCBcCisJV2ViQ29yZS9zdG9yYWdlL1NRTFRyYW5zYWN0aW9uQ2FsbGJhY2su
aWRsIFwKKwlXZWJDb3JlL3N0b3JhZ2UvU1FMVHJhbnNhY3Rpb25FcnJvckNhbGxiYWNrLmlkbAog
CiB3ZWJjb3JlX2NwcGZsYWdzICs9IFwKIAktREVOQUJMRV9EQVRBQkFTRT0xCiAKIHdlYmNvcmVf
c291cmNlcyArPSBcCi0JV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3RvbVNRTFN0YXRlbWVudENh
bGxiYWNrLmNwcCBcCi0JV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3RvbVNRTFN0YXRlbWVudENh
bGxiYWNrLmggXAogCVdlYkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21TUUxTdGF0ZW1lbnRFcnJv
ckNhbGxiYWNrLmNwcCBcCi0JV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3RvbVNRTFN0YXRlbWVu
dEVycm9yQ2FsbGJhY2suaCBcCi0JV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3RvbVNRTFRyYW5z
YWN0aW9uQ2FsbGJhY2suY3BwIFwKLQlXZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tU1FMVHJh
bnNhY3Rpb25DYWxsYmFjay5oIFwKLQlXZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tU1FMVHJh
bnNhY3Rpb25FcnJvckNhbGxiYWNrLmNwcCBcCi0JV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3Rv
bVNRTFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFjay5oIFwKLQlXZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RGF0YWJhc2VDYWxsYmFjay5jcHAgXAotCVdlYkNvcmUvYmluZGluZ3MvanMvSlNEYXRhYmFzZUNh
bGxiYWNrLmggXAogCVdlYkNvcmUvYmluZGluZ3MvanMvSlNEYXRhYmFzZUN1c3RvbS5jcHAgXAog
CVdlYkNvcmUvYmluZGluZ3MvanMvSlNTUUxSZXN1bHRTZXRSb3dMaXN0Q3VzdG9tLmNwcCBcCiAJ
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU1NRTFRyYW5zYWN0aW9uQ3VzdG9tLmNwcCBcCkBAIC0zOTAy
LDYgKzM4OTgsNyBAQCBJRExfQklORElOR1NfR0RPTSA6PSBcCiAJV2ViQ29yZS9wbHVnaW5zL1Bs
dWdpbi5pZGwgXAogCVdlYkNvcmUvcGx1Z2lucy9QbHVnaW5BcnJheS5pZGwgXAogCVdlYkNvcmUv
c3RvcmFnZS9EYXRhYmFzZS5pZGwgXAorCVdlYkNvcmUvc3RvcmFnZS9EYXRhYmFzZUNhbGxiYWNr
LmlkbCBcCiAJV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2UuaWRsIFwKIAlXZWJDb3JlL3htbC9YUGF0
aEV4cHJlc3Npb24uaWRsIFwKIAlXZWJDb3JlL3htbC9YUGF0aE5TUmVzb2x2ZXIuaWRsIFwKSW5k
ZXg6IFdlYkNvcmUvV2ViQ29yZS5neXBpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS5n
eXBpCShyZXZpc2lvbiA1ODc0NykKKysrIFdlYkNvcmUvV2ViQ29yZS5neXBpCSh3b3JraW5nIGNv
cHkpCkBAIC0yMTgsNiArMjE4LDcgQEAKICAgICAgICAgICAgICdwbHVnaW5zL1BsdWdpbi5pZGwn
LAogICAgICAgICAgICAgJ3BsdWdpbnMvUGx1Z2luQXJyYXkuaWRsJywKICAgICAgICAgICAgICdz
dG9yYWdlL0RhdGFiYXNlLmlkbCcsCisgICAgICAgICAgICAnc3RvcmFnZS9EYXRhYmFzZUNhbGxi
YWNrLmlkbCcsCiAgICAgICAgICAgICAnc3RvcmFnZS9JREJEYXRhYmFzZUVycm9yLmlkbCcsCiAg
ICAgICAgICAgICAnc3RvcmFnZS9JREJEYXRhYmFzZUV4Y2VwdGlvbi5pZGwnLAogICAgICAgICAg
ICAgJ3N0b3JhZ2UvSURCRGF0YWJhc2VSZXF1ZXN0LmlkbCcsCkBAIC0yMjUsNyArMjI2LDExIEBA
CiAgICAgICAgICAgICAnc3RvcmFnZS9TUUxFcnJvci5pZGwnLAogICAgICAgICAgICAgJ3N0b3Jh
Z2UvU1FMUmVzdWx0U2V0LmlkbCcsCiAgICAgICAgICAgICAnc3RvcmFnZS9TUUxSZXN1bHRTZXRS
b3dMaXN0LmlkbCcsCisgICAgICAgICAgICAnc3RvcmFnZS9TUUxTdGF0ZW1lbnRDYWxsYmFjay5p
ZGwnLAorICAgICAgICAgICAgJ3N0b3JhZ2UvU1FMU3RhdGVtZW50RXJyb3JDYWxsYmFjay5pZGwn
LAogICAgICAgICAgICAgJ3N0b3JhZ2UvU1FMVHJhbnNhY3Rpb24uaWRsJywKKyAgICAgICAgICAg
ICdzdG9yYWdlL1NRTFRyYW5zYWN0aW9uQ2FsbGJhY2suaWRsJywKKyAgICAgICAgICAgICdzdG9y
YWdlL1NRTFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFjay5pZGwnLAogICAgICAgICAgICAgJ3N0b3Jh
Z2UvU3RvcmFnZS5pZGwnLAogICAgICAgICAgICAgJ3N0b3JhZ2UvU3RvcmFnZUV2ZW50LmlkbCcs
CiAgICAgICAgICAgICAnd2Vic29ja2V0cy9XZWJTb2NrZXQuaWRsJywKQEAgLTQ5NiwxNCArNTAx
LDcgQEAKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU0N1c3RvbVBvc2l0aW9uQ2FsbGJhY2su
aCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNDdXN0b21Qb3NpdGlvbkVycm9yQ2FsbGJh
Y2suY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU0N1c3RvbVBvc2l0aW9uRXJyb3JD
YWxsYmFjay5oJywKLSAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU0N1c3RvbVNRTFN0YXRlbWVu
dENhbGxiYWNrLmNwcCcsCi0gICAgICAgICAgICAnYmluZGluZ3MvanMvSlNDdXN0b21TUUxTdGF0
ZW1lbnRDYWxsYmFjay5oJywKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU0N1c3RvbVNRTFN0
YXRlbWVudEVycm9yQ2FsbGJhY2suY3BwJywKLSAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU0N1
c3RvbVNRTFN0YXRlbWVudEVycm9yQ2FsbGJhY2suaCcsCi0gICAgICAgICAgICAnYmluZGluZ3Mv
anMvSlNDdXN0b21TUUxUcmFuc2FjdGlvbkNhbGxiYWNrLmNwcCcsCi0gICAgICAgICAgICAnYmlu
ZGluZ3MvanMvSlNDdXN0b21TUUxUcmFuc2FjdGlvbkNhbGxiYWNrLmgnLAotICAgICAgICAgICAg
J2JpbmRpbmdzL2pzL0pTQ3VzdG9tU1FMVHJhbnNhY3Rpb25FcnJvckNhbGxiYWNrLmNwcCcsCi0g
ICAgICAgICAgICAnYmluZGluZ3MvanMvSlNDdXN0b21TUUxUcmFuc2FjdGlvbkVycm9yQ2FsbGJh
Y2suaCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNDdXN0b21Wb2lkQ2FsbGJhY2suY3Bw
JywKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU0N1c3RvbVZvaWRDYWxsYmFjay5oJywKICAg
ICAgICAgICAgICdiaW5kaW5ncy9qcy9KU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5jcHAnLApAQCAt
NzA4LDIwICs3MDYsMTEgQEAKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhDdXN0
b21Qb3NpdGlvbkNhbGxiYWNrLmgnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9W
OEN1c3RvbVBvc2l0aW9uRXJyb3JDYWxsYmFjay5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdz
L3Y4L2N1c3RvbS9WOEN1c3RvbVBvc2l0aW9uRXJyb3JDYWxsYmFjay5oJywKLSAgICAgICAgICAg
ICdiaW5kaW5ncy92OC9jdXN0b20vVjhDdXN0b21TUUxTdGF0ZW1lbnRDYWxsYmFjay5jcHAnLAot
ICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEN1c3RvbVNRTFN0YXRlbWVudENhbGxi
YWNrLmgnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEN1c3RvbVNRTFN0YXRl
bWVudEVycm9yQ2FsbGJhY2suY3BwJywKLSAgICAgICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20v
VjhDdXN0b21TUUxTdGF0ZW1lbnRFcnJvckNhbGxiYWNrLmgnLAotICAgICAgICAgICAgJ2JpbmRp
bmdzL3Y4L2N1c3RvbS9WOEN1c3RvbVNRTFRyYW5zYWN0aW9uQ2FsbGJhY2suY3BwJywKLSAgICAg
ICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhDdXN0b21TUUxUcmFuc2FjdGlvbkNhbGxiYWNr
LmgnLAotICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEN1c3RvbVNRTFRyYW5zYWN0
aW9uRXJyb3JDYWxsYmFjay5jcHAnLAotICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9W
OEN1c3RvbVNRTFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFjay5oJywKICAgICAgICAgICAgICdiaW5k
aW5ncy92OC9jdXN0b20vVjhDdXN0b21Wb2lkQ2FsbGJhY2suY3BwJywKICAgICAgICAgICAgICdi
aW5kaW5ncy92OC9jdXN0b20vVjhDdXN0b21Wb2lkQ2FsbGJhY2suaCcsCiAgICAgICAgICAgICAn
YmluZGluZ3MvdjgvY3VzdG9tL1Y4Q3VzdG9tWFBhdGhOU1Jlc29sdmVyLmNwcCcsCiAgICAgICAg
ICAgICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4Q3VzdG9tWFBhdGhOU1Jlc29sdmVyLmgnLAotICAg
ICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9WOERhdGFiYXNlQ2FsbGJhY2suY3BwJywKLSAg
ICAgICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhEYXRhYmFzZUNhbGxiYWNrLmgnLAogICAg
ICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9WOERhdGFiYXNlQ3VzdG9tLmNwcCcsCiAgICAg
ICAgICAgICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4RGF0YUdyaWRDb2x1bW5MaXN0Q3VzdG9tLmNw
cCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4RGVkaWNhdGVkV29ya2VyQ29u
dGV4dEN1c3RvbS5jcHAnLApJbmRleDogV2ViQ29yZS9XZWJDb3JlLnByaQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL1dlYkNvcmUucHJpCShyZXZpc2lvbiA1ODc0NykKKysrIFdlYkNvcmUvV2ViQ29y
ZS5wcmkJKHdvcmtpbmcgY29weSkKQEAgLTQzNiwxMiArNDM2LDE3IEBAIElETF9CSU5ESU5HUyAr
PSBcCiAgICAgcGx1Z2lucy9QbHVnaW5BcnJheS5pZGwgXAogICAgIHBsdWdpbnMvTWltZVR5cGVB
cnJheS5pZGwgXAogICAgIHN0b3JhZ2UvRGF0YWJhc2UuaWRsIFwKKyAgICBzdG9yYWdlL0RhdGFi
YXNlQ2FsbGJhY2suaWRsIFwKICAgICBzdG9yYWdlL1N0b3JhZ2UuaWRsIFwKICAgICBzdG9yYWdl
L1N0b3JhZ2VFdmVudC5pZGwgXAogICAgIHN0b3JhZ2UvU1FMRXJyb3IuaWRsIFwKICAgICBzdG9y
YWdlL1NRTFJlc3VsdFNldC5pZGwgXAogICAgIHN0b3JhZ2UvU1FMUmVzdWx0U2V0Um93TGlzdC5p
ZGwgXAorICAgIHN0b3JhZ2UvU1FMU3RhdGVtZW50Q2FsbGJhY2suaWRsIFwKKyAgICBzdG9yYWdl
L1NRTFN0YXRlbWVudEVycm9yQ2FsbGJhY2suaWRsIFwKICAgICBzdG9yYWdlL1NRTFRyYW5zYWN0
aW9uLmlkbCBcCisgICAgc3RvcmFnZS9TUUxUcmFuc2FjdGlvbkNhbGxiYWNrLmlkbCBcCisgICAg
c3RvcmFnZS9TUUxUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2suaWRsIFwKICAgICBzdmcvU1ZHWm9v
bUV2ZW50LmlkbCBcCiAgICAgc3ZnL1NWR0FFbGVtZW50LmlkbCBcCiAgICAgc3ZnL1NWR0FsdEds
eXBoRWxlbWVudC5pZGwgXApJbmRleDogV2ViQ29yZS9XZWJDb3JlLnBybwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL1dlYkNvcmUucHJvCShyZXZpc2lvbiA1ODc0NykKKysrIFdlYkNvcmUvV2ViQ29y
ZS5wcm8JKHdvcmtpbmcgY29weSkKQEAgLTEwMjQsMTMgKzEwMjQsOCBAQCBIRUFERVJTICs9IFwK
ICAgICBiaW5kaW5ncy9qcy9KU0NTU1N0eWxlRGVjbGFyYXRpb25DdXN0b20uaCBcCiAgICAgYmlu
ZGluZ3MvanMvSlNDdXN0b21Qb3NpdGlvbkNhbGxiYWNrLmggXAogICAgIGJpbmRpbmdzL2pzL0pT
Q3VzdG9tUG9zaXRpb25FcnJvckNhbGxiYWNrLmggXAotICAgIGJpbmRpbmdzL2pzL0pTQ3VzdG9t
U1FMU3RhdGVtZW50Q2FsbGJhY2suaCBcCi0gICAgYmluZGluZ3MvanMvSlNDdXN0b21TUUxTdGF0
ZW1lbnRFcnJvckNhbGxiYWNrLmggXAotICAgIGJpbmRpbmdzL2pzL0pTQ3VzdG9tU1FMVHJhbnNh
Y3Rpb25DYWxsYmFjay5oIFwKLSAgICBiaW5kaW5ncy9qcy9KU0N1c3RvbVNRTFRyYW5zYWN0aW9u
RXJyb3JDYWxsYmFjay5oIFwKICAgICBiaW5kaW5ncy9qcy9KU0N1c3RvbVZvaWRDYWxsYmFjay5o
IFwKICAgICBiaW5kaW5ncy9qcy9KU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5oIFwKLSAgICBiaW5k
aW5ncy9qcy9KU0RhdGFiYXNlQ2FsbGJhY2suaCBcCiAgICAgYmluZGluZ3MvanMvSlNEYXRhR3Jp
ZERhdGFTb3VyY2UuaCBcCiAgICAgYmluZGluZ3MvanMvSlNEZWJ1Z1dyYXBwZXJTZXQuaCBcCiAg
ICAgYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmggXApAQCAtMjI5NCwxMSArMjI4OSw3IEBAIGNv
bnRhaW5zKERFRklORVMsIEVOQUJMRV9EQVRBQkFTRT0xKSB7CiAgICAgICAgIHN0b3JhZ2UvU1FM
VHJhbnNhY3Rpb25DbGllbnQuY3BwIFwKICAgICAgICAgc3RvcmFnZS9TUUxUcmFuc2FjdGlvbkNv
b3JkaW5hdG9yLmNwcCBcCiAgICAgICAgIHN0b3JhZ2UvU1FMVHJhbnNhY3Rpb25TeW5jLmNwcCBc
Ci0gICAgICAgIGJpbmRpbmdzL2pzL0pTQ3VzdG9tU1FMU3RhdGVtZW50Q2FsbGJhY2suY3BwIFwK
ICAgICAgICAgYmluZGluZ3MvanMvSlNDdXN0b21TUUxTdGF0ZW1lbnRFcnJvckNhbGxiYWNrLmNw
cCBcCi0gICAgICAgIGJpbmRpbmdzL2pzL0pTQ3VzdG9tU1FMVHJhbnNhY3Rpb25DYWxsYmFjay5j
cHAgXAotICAgICAgICBiaW5kaW5ncy9qcy9KU0N1c3RvbVNRTFRyYW5zYWN0aW9uRXJyb3JDYWxs
YmFjay5jcHAgXAotICAgICAgICBiaW5kaW5ncy9qcy9KU0RhdGFiYXNlQ2FsbGJhY2suY3BwIFwK
ICAgICAgICAgYmluZGluZ3MvanMvSlNEYXRhYmFzZUN1c3RvbS5jcHAgXAogICAgICAgICBiaW5k
aW5ncy9qcy9KU1NRTFJlc3VsdFNldFJvd0xpc3RDdXN0b20uY3BwIFwKICAgICAgICAgYmluZGlu
Z3MvanMvSlNTUUxUcmFuc2FjdGlvbkN1c3RvbS5jcHAKSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS52
Y3Byb2ovV2ViQ29yZS52Y3Byb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLnZjcHJv
ai9XZWJDb3JlLnZjcHJvagkocmV2aXNpb24gNTg3NDcpCisrKyBXZWJDb3JlL1dlYkNvcmUudmNw
cm9qL1dlYkNvcmUudmNwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0zNTQ2Myw2MiArMzU0NjMsNiBA
QAogCQkJCQk+DQogCQkJCTwvRmlsZT4NCiAJCQkJPEZpbGUNCi0JCQkJCVJlbGF0aXZlUGF0aD0i
Li5cYmluZGluZ3NcanNcSlNDdXN0b21TUUxTdGF0ZW1lbnRDYWxsYmFjay5jcHAiDQotCQkJCQk+
DQotCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCi0JCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiINCi0J
CQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCi0JCQkJCQk+DQotCQkJCQkJPFRvb2wNCi0J
CQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJCQkvPg0KLQkJCQkJPC9GaWxlQ29u
ZmlndXJhdGlvbj4NCi0JCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KLQkJCQkJCU5hbWU9IlJlbGVh
c2V8V2luMzIiDQotCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQotCQkJCQkJPg0KLQkJ
CQkJCTxUb29sDQotCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJCQkJLz4NCi0J
CQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQotCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCi0JCQkJ
CQlOYW1lPSJEZWJ1Z19JbnRlcm5hbHxXaW4zMiINCi0JCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0i
dHJ1ZSINCi0JCQkJCQk+DQotCQkJCQkJPFRvb2wNCi0JCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVy
VG9vbCINCi0JCQkJCQkvPg0KLQkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCi0JCQkJCTxGaWxl
Q29uZmlndXJhdGlvbg0KLQkJCQkJCU5hbWU9IkRlYnVnX0NhaXJvfFdpbjMyIg0KLQkJCQkJCUV4
Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KLQkJCQkJCT4NCi0JCQkJCQk8VG9vbA0KLQkJCQkJCQlO
YW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQkJCS8+DQotCQkJCQk8L0ZpbGVDb25maWd1cmF0
aW9uPg0KLQkJCQkJPEZpbGVDb25maWd1cmF0aW9uDQotCQkJCQkJTmFtZT0iUmVsZWFzZV9DYWly
b3xXaW4zMiINCi0JCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCi0JCQkJCQk+DQotCQkJ
CQkJPFRvb2wNCi0JCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJCQkvPg0KLQkJ
CQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCi0JCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KLQkJCQkJ
CU5hbWU9IkRlYnVnX0FsbHxXaW4zMiINCi0JCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIN
Ci0JCQkJCQk+DQotCQkJCQkJPFRvb2wNCi0JCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIN
Ci0JCQkJCQkvPg0KLQkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCi0JCQkJPC9GaWxlPg0KLQkJ
CQk8RmlsZQ0KLQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU0N1c3RvbVNRTFN0
YXRlbWVudENhbGxiYWNrLmgiDQotCQkJCQk+DQotCQkJCTwvRmlsZT4NCi0JCQkJPEZpbGUNCiAJ
CQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNDdXN0b21TUUxTdGF0ZW1lbnRFcnJv
ckNhbGxiYWNrLmNwcCINCiAJCQkJCT4NCiAJCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KQEAgLTM1
NTcxLDEyMiArMzU1MTUsNiBAQAogCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KIAkJCQk8L0Zp
bGU+DQogCQkJCTxGaWxlDQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTQ3Vz
dG9tU1FMU3RhdGVtZW50RXJyb3JDYWxsYmFjay5oIg0KLQkJCQkJPg0KLQkJCQk8L0ZpbGU+DQot
CQkJCTxGaWxlDQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTQ3VzdG9tU1FM
VHJhbnNhY3Rpb25DYWxsYmFjay5jcHAiDQotCQkJCQk+DQotCQkJCQk8RmlsZUNvbmZpZ3VyYXRp
b24NCi0JCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiINCi0JCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0i
dHJ1ZSINCi0JCQkJCQk+DQotCQkJCQkJPFRvb2wNCi0JCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVy
VG9vbCINCi0JCQkJCQkvPg0KLQkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCi0JCQkJCTxGaWxl
Q29uZmlndXJhdGlvbg0KLQkJCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiDQotCQkJCQkJRXhjbHVk
ZWRGcm9tQnVpbGQ9InRydWUiDQotCQkJCQkJPg0KLQkJCQkJCTxUb29sDQotCQkJCQkJCU5hbWU9
IlZDQ0xDb21waWxlclRvb2wiDQotCQkJCQkJLz4NCi0JCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+
DQotCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCi0JCQkJCQlOYW1lPSJEZWJ1Z19JbnRlcm5hbHxX
aW4zMiINCi0JCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCi0JCQkJCQk+DQotCQkJCQkJ
PFRvb2wNCi0JCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJCQkvPg0KLQkJCQkJ
PC9GaWxlQ29uZmlndXJhdGlvbj4NCi0JCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KLQkJCQkJCU5h
bWU9IkRlYnVnX0NhaXJvfFdpbjMyIg0KLQkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0K
LQkJCQkJCT4NCi0JCQkJCQk8VG9vbA0KLQkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0K
LQkJCQkJCS8+DQotCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KLQkJCQkJPEZpbGVDb25maWd1
cmF0aW9uDQotCQkJCQkJTmFtZT0iUmVsZWFzZV9DYWlyb3xXaW4zMiINCi0JCQkJCQlFeGNsdWRl
ZEZyb21CdWlsZD0idHJ1ZSINCi0JCQkJCQk+DQotCQkJCQkJPFRvb2wNCi0JCQkJCQkJTmFtZT0i
VkNDTENvbXBpbGVyVG9vbCINCi0JCQkJCQkvPg0KLQkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4N
Ci0JCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KLQkJCQkJCU5hbWU9IkRlYnVnX0FsbHxXaW4zMiIN
Ci0JCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCi0JCQkJCQk+DQotCQkJCQkJPFRvb2wN
Ci0JCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJCQkvPg0KLQkJCQkJPC9GaWxl
Q29uZmlndXJhdGlvbj4NCi0JCQkJPC9GaWxlPg0KLQkJCQk8RmlsZQ0KLQkJCQkJUmVsYXRpdmVQ
YXRoPSIuLlxiaW5kaW5nc1xqc1xKU0N1c3RvbVNRTFRyYW5zYWN0aW9uQ2FsbGJhY2suaCINCi0J
CQkJCT4NCi0JCQkJPC9GaWxlPg0KLQkJCQk8RmlsZQ0KLQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxi
aW5kaW5nc1xqc1xKU0N1c3RvbVNRTFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFjay5jcHAiDQotCQkJ
CQk+DQotCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCi0JCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIN
Ci0JCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCi0JCQkJCQk+DQotCQkJCQkJPFRvb2wN
Ci0JCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJCQkvPg0KLQkJCQkJPC9GaWxl
Q29uZmlndXJhdGlvbj4NCi0JCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KLQkJCQkJCU5hbWU9IlJl
bGVhc2V8V2luMzIiDQotCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQotCQkJCQkJPg0K
LQkJCQkJCTxUb29sDQotCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJCQkJLz4N
Ci0JCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQotCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCi0J
CQkJCQlOYW1lPSJEZWJ1Z19JbnRlcm5hbHxXaW4zMiINCi0JCQkJCQlFeGNsdWRlZEZyb21CdWls
ZD0idHJ1ZSINCi0JCQkJCQk+DQotCQkJCQkJPFRvb2wNCi0JCQkJCQkJTmFtZT0iVkNDTENvbXBp
bGVyVG9vbCINCi0JCQkJCQkvPg0KLQkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCi0JCQkJCTxG
aWxlQ29uZmlndXJhdGlvbg0KLQkJCQkJCU5hbWU9IkRlYnVnX0NhaXJvfFdpbjMyIg0KLQkJCQkJ
CUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KLQkJCQkJCT4NCi0JCQkJCQk8VG9vbA0KLQkJCQkJ
CQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQkJCS8+DQotCQkJCQk8L0ZpbGVDb25maWd1
cmF0aW9uPg0KLQkJCQkJPEZpbGVDb25maWd1cmF0aW9uDQotCQkJCQkJTmFtZT0iUmVsZWFzZV9D
YWlyb3xXaW4zMiINCi0JCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCi0JCQkJCQk+DQot
CQkJCQkJPFRvb2wNCi0JCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJCQkvPg0K
LQkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCi0JCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KLQkJ
CQkJCU5hbWU9IkRlYnVnX0FsbHxXaW4zMiINCi0JCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1
ZSINCi0JCQkJCQk+DQotCQkJCQkJPFRvb2wNCi0JCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9v
bCINCi0JCQkJCQkvPg0KLQkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCi0JCQkJPC9GaWxlPg0K
LQkJCQk8RmlsZQ0KLQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU0N1c3RvbVNR
TFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFjay5oIg0KLQkJCQkJPg0KLQkJCQk8L0ZpbGU+DQotCQkJ
CTxGaWxlDQogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTQ3VzdG9tVm9pZENh
bGxiYWNrLmNwcCINCiAJCQkJCT4NCiAJCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KQEAgLTM1Nzk5
LDE0ICszNTYyNyw2IEBACiAJCQkJCT4NCiAJCQkJPC9GaWxlPg0KIAkJCQk8RmlsZQ0KLQkJCQkJ
UmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU0RhdGFiYXNlQ2FsbGJhY2suY3BwIg0KLQkJ
CQkJPg0KLQkJCQk8L0ZpbGU+DQotCQkJCTxGaWxlDQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJp
bmRpbmdzXGpzXEpTRGF0YWJhc2VDYWxsYmFjay5oIg0KLQkJCQkJPg0KLQkJCQk8L0ZpbGU+DQot
CQkJCTxGaWxlDQogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTRGF0YWJhc2VD
dXN0b20uY3BwIg0KIAkJCQkJPg0KIAkJCQkJPEZpbGVDb25maWd1cmF0aW9uDQpJbmRleDogV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDU4NzQ3KQor
KysgV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29w
eSkKQEAgLTExNDQsMTQgKzExNDQsNyBAQAogCQk1MUU0QURCNjBDNDJCNENGMDA0MkJDNTUgLyog
RlRQRGlyZWN0b3J5RG9jdW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNTFFNEFEQjIwQzQyQjRDRjAwNDJCQzU1IC8qIEZUUERpcmVjdG9yeURv
Y3VtZW50LmNwcCAqLzsgfTsKIAkJNTFFNEFEQjcwQzQyQjRDRjAwNDJCQzU1IC8qIEZUUERpcmVj
dG9yeURvY3VtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA1MUU0QURCMzBDNDJCNENGMDA0MkJDNTUgLyogRlRQRGlyZWN0b3J5RG9jdW1lbnQuaCAq
LzsgfTsKIAkJNTFFQzkyNTkwQ0U5MERCNDAwRjkwMzA4IC8qIFNRTEVycm9yLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUVDOTI1NzBDRTkwREI0MDBG
OTAzMDggLyogU1FMRXJyb3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwotCQk1MUVDOTI2MzBDRTkwREQ0MDBGOTAzMDggLyogSlNDdXN0b21TUUxTdGF0
ZW1lbnRDYWxsYmFjay5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1MUVDOTI1QjBDRTkwREQ0MDBGOTAzMDggLyogSlNDdXN0b21TUUxTdGF0ZW1lbnRD
YWxsYmFjay5jcHAgKi87IH07Ci0JCTUxRUM5MjY0MENFOTBERDQwMEY5MDMwOCAvKiBKU0N1c3Rv
bVNRTFN0YXRlbWVudENhbGxiYWNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1MUVDOTI1QzBDRTkwREQ0MDBGOTAzMDggLyogSlNDdXN0b21TUUxTdGF0
ZW1lbnRDYWxsYmFjay5oICovOyB9OwogCQk1MUVDOTI2NTBDRTkwREQ0MDBGOTAzMDggLyogSlND
dXN0b21TUUxTdGF0ZW1lbnRFcnJvckNhbGxiYWNrLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRUM5MjVEMENFOTBERDQwMEY5MDMwOCAvKiBKU0N1
c3RvbVNRTFN0YXRlbWVudEVycm9yQ2FsbGJhY2suY3BwICovOyB9OwotCQk1MUVDOTI2NjBDRTkw
REQ0MDBGOTAzMDggLyogSlNDdXN0b21TUUxTdGF0ZW1lbnRFcnJvckNhbGxiYWNrLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUVDOTI1RTBDRTkwREQ0
MDBGOTAzMDggLyogSlNDdXN0b21TUUxTdGF0ZW1lbnRFcnJvckNhbGxiYWNrLmggKi87IH07Ci0J
CTUxRUM5MjY3MENFOTBERDQwMEY5MDMwOCAvKiBKU0N1c3RvbVNRTFRyYW5zYWN0aW9uQ2FsbGJh
Y2suY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFF
QzkyNUYwQ0U5MERENDAwRjkwMzA4IC8qIEpTQ3VzdG9tU1FMVHJhbnNhY3Rpb25DYWxsYmFjay5j
cHAgKi87IH07Ci0JCTUxRUM5MjY4MENFOTBERDQwMEY5MDMwOCAvKiBKU0N1c3RvbVNRTFRyYW5z
YWN0aW9uQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDUxRUM5MjYwMENFOTBERDQwMEY5MDMwOCAvKiBKU0N1c3RvbVNRTFRyYW5zYWN0aW9u
Q2FsbGJhY2suaCAqLzsgfTsKLQkJNTFFQzkyNjkwQ0U5MERENDAwRjkwMzA4IC8qIEpTQ3VzdG9t
U1FMVHJhbnNhY3Rpb25FcnJvckNhbGxiYWNrLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRUM5MjYxMENFOTBERDQwMEY5MDMwOCAvKiBKU0N1c3Rv
bVNRTFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFjay5jcHAgKi87IH07Ci0JCTUxRUM5MjZBMENFOTBE
RDQwMEY5MDMwOCAvKiBKU0N1c3RvbVNRTFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFjay5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFFQzkyNjIwQ0U5MERE
NDAwRjkwMzA4IC8qIEpTQ3VzdG9tU1FMVHJhbnNhY3Rpb25FcnJvckNhbGxiYWNrLmggKi87IH07
CiAJCTUxRkFGRTM0MENFQ0JGMkQwMEJCM0YyNCAvKiBEYXRhYmFzZVRyYWNrZXJDbGllbnQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRkFGRTMzMENF
Q0JGMkQwMEJCM0YyNCAvKiBEYXRhYmFzZVRyYWNrZXJDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1NEM1MEY3QjBFODAxREYzMDA5ODMy
QTAgLyogWE1MVG9rZW5pemVyTGlieG1sMi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1NEM1MEY3QTBFODAxREYzMDA5ODMyQTAgLyogWE1MVG9rZW5p
emVyTGlieG1sMi5jcHAgKi87IH07CiAJCTU1MEEwQkM5MDg1RjYwMzkwMDczNTNENiAvKiBRdWFs
aWZpZWROYW1lLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDU1MEEwQkM3MDg1RjYwMzkwMDczNTNENiAvKiBRdWFsaWZpZWROYW1lLmNwcCAqLzsgfTsK
QEAgLTQxNzAsMTMgKzQxNjMsMjEgQEAKIAkJQjUyM0NGMDkxMTgyNjc1NDAwRUJCMjlDIC8qIFNR
TFRyYW5zYWN0aW9uU3luYy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBCNTIzQ0YwMjExODI2NzU0MDBFQkIyOUMgLyogU1FMVHJhbnNhY3Rpb25TeW5j
LmNwcCAqLzsgfTsKIAkJQjUyM0NGMEExMTgyNjc1NDAwRUJCMjlDIC8qIERhdGFiYXNlU3luYy5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCNTIzQ0Yw
MzExODI2NzU0MDBFQkIyOUMgLyogRGF0YWJhc2VTeW5jLmNwcCAqLzsgfTsKIAkJQjUyM0NGMEIx
MTgyNjc1NDAwRUJCMjlDIC8qIERhdGFiYXNlU3luYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjUyM0NGMDQxMTgyNjc1NDAwRUJCMjlDIC8qIERhdGFi
YXNlU3luYy5oICovOyB9OworCQlCNTlERDY5OTExOTAyOUU1MDA3RTk2ODQgLyogSlNEYXRhYmFz
ZUNhbGxiYWNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBCNTlERDY5NzExOTAyOUU1MDA3RTk2ODQgLyogSlNEYXRhYmFzZUNhbGxiYWNrLmggKi87IH07
CisJCUI1OURENjlBMTE5MDI5RTUwMDdFOTY4NCAvKiBKU0RhdGFiYXNlQ2FsbGJhY2suY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjU5REQ2OTgxMTkw
MjlFNTAwN0U5Njg0IC8qIEpTRGF0YWJhc2VDYWxsYmFjay5jcHAgKi87IH07CisJCUI1OURENjlE
MTE5MDJBNDIwMDdFOTY4NCAvKiBKU1NRTFRyYW5zYWN0aW9uQ2FsbGJhY2suaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEI1OURENjlCMTE5MDJBNDIwMDdF
OTY4NCAvKiBKU1NRTFRyYW5zYWN0aW9uQ2FsbGJhY2suaCAqLzsgfTsKKwkJQjU5REQ2OUUxMTkw
MkE0MjAwN0U5Njg0IC8qIEpTU1FMVHJhbnNhY3Rpb25DYWxsYmFjay5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCNTlERDY5QzExOTAyQTQyMDA3RTk2
ODQgLyogSlNTUUxUcmFuc2FjdGlvbkNhbGxiYWNrLmNwcCAqLzsgfTsKKwkJQjU5REQ2QTExMTkw
MkE1MjAwN0U5Njg0IC8qIEpTU1FMVHJhbnNhY3Rpb25FcnJvckNhbGxiYWNrLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCNTlERDY5RjExOTAyQTUyMDA3
RTk2ODQgLyogSlNTUUxUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2suaCAqLzsgfTsKKwkJQjU5REQ2
QTIxMTkwMkE1MjAwN0U5Njg0IC8qIEpTU1FMVHJhbnNhY3Rpb25FcnJvckNhbGxiYWNrLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEI1OURENkEwMTE5
MDJBNTIwMDdFOTY4NCAvKiBKU1NRTFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFjay5jcHAgKi87IH07
CisJCUI1OURENkE1MTE5MDJBNjIwMDdFOTY4NCAvKiBKU1NRTFN0YXRlbWVudENhbGxiYWNrLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCNTlERDZBMzEx
OTAyQTYyMDA3RTk2ODQgLyogSlNTUUxTdGF0ZW1lbnRDYWxsYmFjay5oICovOyB9OworCQlCNTlE
RDZBNjExOTAyQTYyMDA3RTk2ODQgLyogSlNTUUxTdGF0ZW1lbnRDYWxsYmFjay5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCNTlERDZBNDExOTAyQTYy
MDA3RTk2ODQgLyogSlNTUUxTdGF0ZW1lbnRDYWxsYmFjay5jcHAgKi87IH07CisJCUI1OURENkE5
MTE5MDJBNzEwMDdFOTY4NCAvKiBKU1NRTFN0YXRlbWVudEVycm9yQ2FsbGJhY2suaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEI1OURENkE3MTE5MDJBNzEw
MDdFOTY4NCAvKiBKU1NRTFN0YXRlbWVudEVycm9yQ2FsbGJhY2suaCAqLzsgfTsKKwkJQjU5REQ2
QUExMTkwMkE3MTAwN0U5Njg0IC8qIEpTU1FMU3RhdGVtZW50RXJyb3JDYWxsYmFjay5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCNTlERDZBODExOTAy
QTcxMDA3RTk2ODQgLyogSlNTUUxTdGF0ZW1lbnRFcnJvckNhbGxiYWNrLmNwcCAqLzsgfTsKIAkJ
QjVBNjg0MjIwRkZBQkU5ODAwRDI0Njg5IC8qIFNRTGl0ZUZpbGVTeXN0ZW0uaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEI1QTY4NDIxMEZGQUJFOTgwMEQy
NDY4OSAvKiBTUUxpdGVGaWxlU3lzdGVtLmggKi87IH07CiAJCUI1QTY4NDI0MEZGQUJFQUEwMEQy
NDY4OSAvKiBTUUxpdGVGaWxlU3lzdGVtLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEI1QTY4NDIzMEZGQUJFQUEwMEQyNDY4OSAvKiBTUUxpdGVGaWxl
U3lzdGVtLmNwcCAqLzsgfTsKIAkJQjVDMTEyM0IxMDJCNkM0NjAwMDk2NTc4IC8qIFNRTFRyYW5z
YWN0aW9uQ29vcmRpbmF0b3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQjVDMTEyMzkxMDJCNkM0NjAwMDk2NTc4IC8qIFNRTFRyYW5zYWN0aW9uQ29v
cmRpbmF0b3IuY3BwICovOyB9OwogCQlCNUMxMTIzQzEwMkI2QzQ2MDAwOTY1NzggLyogU1FMVHJh
bnNhY3Rpb25Db29yZGluYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQjVDMTEyM0ExMDJCNkM0NjAwMDk2NTc4IC8qIFNRTFRyYW5zYWN0aW9uQ29v
cmRpbmF0b3IuaCAqLzsgfTsKIAkJQjVEMzYwMUExMTJGOEI1NjAwNDhERUE4IC8qIERhdGFiYXNl
Q2FsbGJhY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEI1RDM2MDE5MTEyRjhCNTYwMDQ4REVBOCAvKiBEYXRhYmFzZUNhbGxiYWNrLmggKi87IH07Ci0J
CUI1RDM2MDFEMTEyRjhCQTAwMDQ4REVBOCAvKiBKU0RhdGFiYXNlQ2FsbGJhY2suaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEI1RDM2MDFDMTEyRjhCQTAw
MDQ4REVBOCAvKiBKU0RhdGFiYXNlQ2FsbGJhY2suaCAqLzsgfTsKLQkJQjVEMzYwMUYxMTJGOEJB
ODAwNDhERUE4IC8qIEpTRGF0YWJhc2VDYWxsYmFjay5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCNUQzNjAxRTExMkY4QkE4MDA0OERFQTggLyogSlNE
YXRhYmFzZUNhbGxiYWNrLmNwcCAqLzsgfTsKIAkJQjcxRkU2REYxMTA5MUNCMzAwREFFRjc3IC8q
IFByaW50Q29udGV4dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQjc3NkQ0M0ExMTA0NTI1RDAwQkVCMEVDIC8qIFByaW50Q29udGV4dC5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUI3NzZENDNEMTEwNDUy
NzUwMEJFQjBFQyAvKiBQcmludENvbnRleHQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQjc3NkQ0M0MxMTA0NTI3NTAwQkVCMEVDIC8qIFByaW50Q29u
dGV4dC5jcHAgKi87IH07CiAJCUJDMDBGMDA0MEUwQTE4NTUwMEZEMDRFMyAvKiBET01GaWxlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzAwRUZGRTBF
MEExODU1MDBGRDA0RTMgLyogRE9NRmlsZS5oICovOyB9OwpAQCAtNjY1NSwxNCArNjY1Niw3IEBA
CiAJCTUxRTRBREIzMEM0MkI0Q0YwMDQyQkM1NSAvKiBGVFBEaXJlY3RvcnlEb2N1bWVudC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRlRQRGlyZWN0b3J5RG9jdW1lbnQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFFQzkyNTcwQ0U5MERCNDAwRjkwMzA4IC8q
IFNRTEVycm9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNRTEVycm9yLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxRUM5MjU4MENFOTBEQjQwMEY5MDMwOCAv
KiBTUUxFcnJvci5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU1FMRXJyb3IuaWRsOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1MUVDOTI1QjBDRTkwREQ0MDBGOTAzMDggLyogSlND
dXN0b21TUUxTdGF0ZW1lbnRDYWxsYmFjay5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBKU0N1c3RvbVNRTFN0YXRlbWVudENhbGxiYWNrLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKLQkJNTFFQzkyNUMwQ0U5MERENDAwRjkwMzA4IC8qIEpTQ3VzdG9tU1FM
U3RhdGVtZW50Q2FsbGJhY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlND
dXN0b21TUUxTdGF0ZW1lbnRDYWxsYmFjay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk1MUVDOTI1RDBDRTkwREQ0MDBGOTAzMDggLyogSlNDdXN0b21TUUxTdGF0ZW1lbnRFcnJvckNh
bGxiYWNrLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQ3VzdG9t
U1FMU3RhdGVtZW50RXJyb3JDYWxsYmFjay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCTUxRUM5MjVFMENFOTBERDQwMEY5MDMwOCAvKiBKU0N1c3RvbVNRTFN0YXRlbWVudEVycm9y
Q2FsbGJhY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNDdXN0b21TUUxT
dGF0ZW1lbnRFcnJvckNhbGxiYWNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTUx
RUM5MjVGMENFOTBERDQwMEY5MDMwOCAvKiBKU0N1c3RvbVNRTFRyYW5zYWN0aW9uQ2FsbGJhY2su
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNDdXN0b21TUUxUcmFu
c2FjdGlvbkNhbGxiYWNrLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTFFQzky
NjAwQ0U5MERENDAwRjkwMzA4IC8qIEpTQ3VzdG9tU1FMVHJhbnNhY3Rpb25DYWxsYmFjay5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0N1c3RvbVNRTFRyYW5zYWN0aW9uQ2Fs
bGJhY2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTFFQzkyNjEwQ0U5MERENDAw
RjkwMzA4IC8qIEpTQ3VzdG9tU1FMVHJhbnNhY3Rpb25FcnJvckNhbGxiYWNrLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQ3VzdG9tU1FMVHJhbnNhY3Rpb25FcnJv
ckNhbGxiYWNrLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTFFQzkyNjIwQ0U5
MERENDAwRjkwMzA4IC8qIEpTQ3VzdG9tU1FMVHJhbnNhY3Rpb25FcnJvckNhbGxiYWNrLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTQ3VzdG9tU1FMVHJhbnNhY3Rpb25FcnJv
ckNhbGxiYWNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxRjZBM0Q1MDY2M0JG
MDQwMDREMjkxOSAvKiBIVE1MQ2FudmFzRWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBIVE1MQ2FudmFzRWxlbWVudC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9Owog
CQk1MUY2QTNENjA2NjNCRjA0MDA0RDI5MTkgLyogSFRNTENhbnZhc0VsZW1lbnQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSFRNTENhbnZhc0Vs
ZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9
IDA7IH07CiAJCTUxRkFGRTMzMENFQ0JGMkQwMEJCM0YyNCAvKiBEYXRhYmFzZVRyYWNrZXJDbGll
bnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGF0YWJhc2VUcmFja2VyQ2xp
ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC05NTI0LDEzICs5NTE4LDI2IEBA
CiAJCUI1MjNDRjAyMTE4MjY3NTQwMEVCQjI5QyAvKiBTUUxUcmFuc2FjdGlvblN5bmMuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1FMVHJhbnNhY3Rpb25TeW5jLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjUyM0NGMDMxMTgyNjc1NDAwRUJCMjlD
IC8qIERhdGFiYXNlU3luYy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBEYXRhYmFzZVN5bmMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCNTIzQ0Yw
NDExODI2NzU0MDBFQkIyOUMgLyogRGF0YWJhc2VTeW5jLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IERhdGFiYXNlU3luYy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlCNTlERDY4RDExOTAyOThFMDA3RTk2ODQgLyogRGF0YWJhc2VDYWxsYmFjay5pZGwgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gRGF0YWJhc2VDYWxsYmFjay5pZGw7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUI1OURENjhFMTE5MDI5OEUwMDdFOTY4NCAvKiBTUUxTdGF0ZW1lbnRDYWxs
YmFjay5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU1FMU3RhdGVtZW50Q2FsbGJhY2suaWRs
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCNTlERDY4RjExOTAyOThFMDA3RTk2ODQg
LyogU1FMU3RhdGVtZW50RXJyb3JDYWxsYmFjay5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0g
U1FMU3RhdGVtZW50RXJyb3JDYWxsYmFjay5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUI1OURENjkwMTE5MDI5OEUwMDdFOTY4NCAvKiBTUUxUcmFuc2FjdGlvbkNhbGxiYWNrLmlk
bCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTUUxUcmFuc2FjdGlvbkNhbGxiYWNrLmlkbDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQjU5REQ2OTExMTkwMjk4RTAwN0U5Njg0IC8qIFNR
TFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFjay5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU1FM
VHJhbnNhY3Rpb25FcnJvckNhbGxiYWNrLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJQjU5REQ2OTcxMTkwMjlFNTAwN0U5Njg0IC8qIEpTRGF0YWJhc2VDYWxsYmFjay5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0RhdGFiYXNlQ2FsbGJhY2suaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQjU5REQ2OTgxMTkwMjlFNTAwN0U5Njg0IC8qIEpTRGF0
YWJhc2VDYWxsYmFjay5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBK
U0RhdGFiYXNlQ2FsbGJhY2suY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCNTlE
RDY5QjExOTAyQTQyMDA3RTk2ODQgLyogSlNTUUxUcmFuc2FjdGlvbkNhbGxiYWNrLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTU1FMVHJhbnNhY3Rpb25DYWxsYmFjay5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCNTlERDY5QzExOTAyQTQyMDA3RTk2ODQgLyog
SlNTUUxUcmFuc2FjdGlvbkNhbGxiYWNrLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEpTU1FMVHJhbnNhY3Rpb25DYWxsYmFjay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUI1OURENjlGMTE5MDJBNTIwMDdFOTY4NCAvKiBKU1NRTFRyYW5zYWN0aW9u
RXJyb3JDYWxsYmFjay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1NRTFRy
YW5zYWN0aW9uRXJyb3JDYWxsYmFjay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlC
NTlERDZBMDExOTAyQTUyMDA3RTk2ODQgLyogSlNTUUxUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2su
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNTUUxUcmFuc2FjdGlv
bkVycm9yQ2FsbGJhY2suY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCNTlERDZB
MzExOTAyQTYyMDA3RTk2ODQgLyogSlNTUUxTdGF0ZW1lbnRDYWxsYmFjay5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBKU1NRTFN0YXRlbWVudENhbGxiYWNrLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUI1OURENkE0MTE5MDJBNjIwMDdFOTY4NCAvKiBKU1NRTFN0
YXRlbWVudENhbGxiYWNrLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEpTU1FMU3RhdGVtZW50Q2FsbGJhY2suY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlCNTlERDZBNzExOTAyQTcxMDA3RTk2ODQgLyogSlNTUUxTdGF0ZW1lbnRFcnJvckNhbGxiYWNr
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTU1FMU3RhdGVtZW50RXJyb3JD
YWxsYmFjay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCNTlERDZBODExOTAyQTcx
MDA3RTk2ODQgLyogSlNTUUxTdGF0ZW1lbnRFcnJvckNhbGxiYWNrLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTU1FMU3RhdGVtZW50RXJyb3JDYWxsYmFjay5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUI1QTY4NDIxMEZGQUJFOTgwMEQyNDY4OSAv
KiBTUUxpdGVGaWxlU3lzdGVtLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFNR
TGl0ZUZpbGVTeXN0ZW0uaDsgcGF0aCA9IHNxbC9TUUxpdGVGaWxlU3lzdGVtLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUI1QTY4NDIzMEZGQUJFQUEwMEQyNDY4OSAvKiBTUUxpdGVG
aWxlU3lzdGVtLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFNRTGl0
ZUZpbGVTeXN0ZW0uY3BwOyBwYXRoID0gc3FsL1NRTGl0ZUZpbGVTeXN0ZW0uY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlCNUMxMTIzOTEwMkI2QzQ2MDAwOTY1NzggLyogU1FMVHJh
bnNhY3Rpb25Db29yZGluYXRvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBTUUxUcmFuc2FjdGlvbkNvb3JkaW5hdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQjVDMTEyM0ExMDJCNkM0NjAwMDk2NTc4IC8qIFNRTFRyYW5zYWN0aW9uQ29vcmRp
bmF0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1FMVHJhbnNhY3Rpb25D
b29yZGluYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCNUQzNjAxOTExMkY4
QjU2MDA0OERFQTggLyogRGF0YWJhc2VDYWxsYmFjay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBEYXRhYmFzZUNhbGxiYWNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCUI1RDM2MDFDMTEyRjhCQTAwMDQ4REVBOCAvKiBKU0RhdGFiYXNlQ2FsbGJhY2suaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNEYXRhYmFzZUNhbGxiYWNrLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUI1RDM2MDFFMTEyRjhCQTgwMDQ4REVBOCAvKiBKU0Rh
dGFiYXNlQ2FsbGJhY2suY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
SlNEYXRhYmFzZUNhbGxiYWNrLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjc3
NkQ0M0ExMTA0NTI1RDAwQkVCMEVDIC8qIFByaW50Q29udGV4dC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBQcmludENvbnRleHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQjc3NkQ0M0MxMTA0NTI3NTAwQkVCMEVDIC8qIFByaW50Q29udGV4dC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQcmludENvbnRleHQuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlCQzAwRUZGRTBFMEExODU1MDBGRDA0RTMgLyogRE9NRmls
ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01GaWxlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMDc1Myw2ICsxMDc2MCw3IEBACiAJCQkJNTFBNDVCNTUw
Q0FEN0ZENzAwMEQyQkU5IC8qIERhdGFiYXNlQXV0aG9yaXplci5jcHAgKi8sCiAJCQkJNTFBNDVC
NTQwQ0FEN0ZENzAwMEQyQkU5IC8qIERhdGFiYXNlQXV0aG9yaXplci5oICovLAogCQkJCUI1RDM2
MDE5MTEyRjhCNTYwMDQ4REVBOCAvKiBEYXRhYmFzZUNhbGxiYWNrLmggKi8sCisJCQkJQjU5REQ2
OEQxMTkwMjk4RTAwN0U5Njg0IC8qIERhdGFiYXNlQ2FsbGJhY2suaWRsICovLAogCQkJCTUxMTZE
OTc1MENGMTc3QkQwMEMyQjg0RCAvKiBEYXRhYmFzZURldGFpbHMuaCAqLywKIAkJCQlCNTIzQ0Yw
MzExODI2NzU0MDBFQkIyOUMgLyogRGF0YWJhc2VTeW5jLmNwcCAqLywKIAkJCQlCNTIzQ0YwNDEx
ODI2NzU0MDBFQkIyOUMgLyogRGF0YWJhc2VTeW5jLmggKi8sCkBAIC0xMDc4MiwxNiArMTA3OTAs
MjAgQEAKIAkJCQk1MTVCMDM5ODBDRDE2NDJBMDBCN0VBOUMgLyogU1FMU3RhdGVtZW50LmNwcCAq
LywKIAkJCQk1MTVCMDM5NzBDRDE2NDJBMDBCN0VBOUMgLyogU1FMU3RhdGVtZW50LmggKi8sCiAJ
CQkJMUE3Q0NCMTUwQ0Q5NDY5QTAwQjdCNjRFIC8qIFNRTFN0YXRlbWVudENhbGxiYWNrLmggKi8s
CisJCQkJQjU5REQ2OEUxMTkwMjk4RTAwN0U5Njg0IC8qIFNRTFN0YXRlbWVudENhbGxiYWNrLmlk
bCAqLywKIAkJCQkxQTdDQ0IxNjBDRDk0NjlBMDBCN0I2NEUgLyogU1FMU3RhdGVtZW50RXJyb3JD
YWxsYmFjay5oICovLAorCQkJCUI1OURENjhGMTE5MDI5OEUwMDdFOTY4NCAvKiBTUUxTdGF0ZW1l
bnRFcnJvckNhbGxiYWNrLmlkbCAqLywKIAkJCQkxQUJGRTc1MjBDRDk2OEQwMDBGRTQ4MzQgLyog
U1FMVHJhbnNhY3Rpb24uY3BwICovLAogCQkJCTFBN0NDQjIyMENEOTQ2RkQwMEI3QjY0RSAvKiBT
UUxUcmFuc2FjdGlvbi5oICovLAogCQkJCTFBN0NDQjIzMENEOTQ2RkQwMEI3QjY0RSAvKiBTUUxU
cmFuc2FjdGlvbi5pZGwgKi8sCiAJCQkJMUE3Q0NCMTcwQ0Q5NDY5QTAwQjdCNjRFIC8qIFNRTFRy
YW5zYWN0aW9uQ2FsbGJhY2suaCAqLywKKwkJCQlCNTlERDY5MDExOTAyOThFMDA3RTk2ODQgLyog
U1FMVHJhbnNhY3Rpb25DYWxsYmFjay5pZGwgKi8sCiAJCQkJQjUxQkY2RUUxMDJDOUU1OTAwMDJD
MTVBIC8qIFNRTFRyYW5zYWN0aW9uQ2xpZW50LmNwcCAqLywKIAkJCQlCNTFCRjZFRjEwMkM5RTU5
MDAwMkMxNUEgLyogU1FMVHJhbnNhY3Rpb25DbGllbnQuaCAqLywKIAkJCQlCNUMxMTIzOTEwMkI2
QzQ2MDAwOTY1NzggLyogU1FMVHJhbnNhY3Rpb25Db29yZGluYXRvci5jcHAgKi8sCiAJCQkJQjVD
MTEyM0ExMDJCNkM0NjAwMDk2NTc4IC8qIFNRTFRyYW5zYWN0aW9uQ29vcmRpbmF0b3IuaCAqLywK
IAkJCQkxQTdDQ0IxODBDRDk0NjlBMDBCN0I2NEUgLyogU1FMVHJhbnNhY3Rpb25FcnJvckNhbGxi
YWNrLmggKi8sCisJCQkJQjU5REQ2OTExMTkwMjk4RTAwN0U5Njg0IC8qIFNRTFRyYW5zYWN0aW9u
RXJyb3JDYWxsYmFjay5pZGwgKi8sCiAJCQkJQjUyM0NGMDIxMTgyNjc1NDAwRUJCMjlDIC8qIFNR
TFRyYW5zYWN0aW9uU3luYy5jcHAgKi8sCiAJCQkJQjUyM0NGMDExMTgyNjc1NDAwRUJCMjlDIC8q
IFNRTFRyYW5zYWN0aW9uU3luYy5oICovLAogCQkJCUI1MjNDRUZGMTE4MjY3NTQwMEVCQjI5QyAv
KiBTUUxUcmFuc2FjdGlvblN5bmNDYWxsYmFjay5oICovLApAQCAtMTQwNjcsNiArMTQwNzksMTYg
QEAKIAkJCQk1MUUzRjlENTBEQTA1RTFEMDAyNTA5MTEgLyogSlNTdG9yYWdlLmggKi8sCiAJCQkJ
NTFFMEJBRTgwREE1NUQ0QTAwQTlFNDE3IC8qIEpTU3RvcmFnZUV2ZW50LmNwcCAqLywKIAkJCQk1
MUUwQkFFOTBEQTU1RDRBMDBBOUU0MTcgLyogSlNTdG9yYWdlRXZlbnQuaCAqLywKKwkJCQlCNTlE
RDY5NzExOTAyOUU1MDA3RTk2ODQgLyogSlNEYXRhYmFzZUNhbGxiYWNrLmggKi8sCisJCQkJQjU5
REQ2OTgxMTkwMjlFNTAwN0U5Njg0IC8qIEpTRGF0YWJhc2VDYWxsYmFjay5jcHAgKi8sCisJCQkJ
QjU5REQ2OUIxMTkwMkE0MjAwN0U5Njg0IC8qIEpTU1FMVHJhbnNhY3Rpb25DYWxsYmFjay5oICov
LAorCQkJCUI1OURENjlDMTE5MDJBNDIwMDdFOTY4NCAvKiBKU1NRTFRyYW5zYWN0aW9uQ2FsbGJh
Y2suY3BwICovLAorCQkJCUI1OURENjlGMTE5MDJBNTIwMDdFOTY4NCAvKiBKU1NRTFRyYW5zYWN0
aW9uRXJyb3JDYWxsYmFjay5oICovLAorCQkJCUI1OURENkEwMTE5MDJBNTIwMDdFOTY4NCAvKiBK
U1NRTFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFjay5jcHAgKi8sCisJCQkJQjU5REQ2QTMxMTkwMkE2
MjAwN0U5Njg0IC8qIEpTU1FMU3RhdGVtZW50Q2FsbGJhY2suaCAqLywKKwkJCQlCNTlERDZBNDEx
OTAyQTYyMDA3RTk2ODQgLyogSlNTUUxTdGF0ZW1lbnRDYWxsYmFjay5jcHAgKi8sCisJCQkJQjU5
REQ2QTcxMTkwMkE3MTAwN0U5Njg0IC8qIEpTU1FMU3RhdGVtZW50RXJyb3JDYWxsYmFjay5oICov
LAorCQkJCUI1OURENkE4MTE5MDJBNzEwMDdFOTY4NCAvKiBKU1NRTFN0YXRlbWVudEVycm9yQ2Fs
bGJhY2suY3BwICovLAogCQkJKTsKIAkJCW5hbWUgPSBTdG9yYWdlOwogCQkJc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsKQEAgLTE0ODkyLDggKzE0OTE0LDYgQEAKIAkJCQkxNDMyRTg0NjBDNTE0OTM4
MDBCMTUwMEYgLyogR0NDb250cm9sbGVyLmggKi8sCiAJCQkJMUM4MUJBMDMwRTk3MzQ4MzAwMjY2
RTA3IC8qIEphdmFTY3JpcHRDYWxsRnJhbWUuY3BwICovLAogCQkJCTFDODFCQTA0MEU5NzM0ODMw
MDI2NkUwNyAvKiBKYXZhU2NyaXB0Q2FsbEZyYW1lLmggKi8sCi0JCQkJQjVEMzYwMUUxMTJGOEJB
ODAwNDhERUE4IC8qIEpTRGF0YWJhc2VDYWxsYmFjay5jcHAgKi8sCi0JCQkJQjVEMzYwMUMxMTJG
OEJBMDAwNDhERUE4IC8qIEpTRGF0YWJhc2VDYWxsYmFjay5oICovLAogCQkJCUJDNTNEQUM0MTE0
MzJGRDkwMDBEODE3RSAvKiBKU0RlYnVnV3JhcHBlclNldC5jcHAgKi8sCiAJCQkJQkM1M0RBQzEx
MTQzMkVFRTAwMEQ4MTdFIC8qIEpTRGVidWdXcmFwcGVyU2V0LmggKi8sCiAJCQkJOTNCNzBENDcw
OUVCMEM3QzAwOUQ4NDY4IC8qIEpTRE9NQmluZGluZy5jcHAgKi8sCkBAIC0xNTM0MSwxNCArMTUz
NjEsNyBAQAogCQkJCUZFODBEN0EzMEU5QzFFRDIwMDBENkY3NSAvKiBKU0N1c3RvbVBvc2l0aW9u
Q2FsbGJhY2suaCAqLywKIAkJCQlGRTgwRDdBNDBFOUMxRUQyMDAwRDZGNzUgLyogSlNDdXN0b21Q
b3NpdGlvbkVycm9yQ2FsbGJhY2suY3BwICovLAogCQkJCUZFODBEN0E1MEU5QzFFRDIwMDBENkY3
NSAvKiBKU0N1c3RvbVBvc2l0aW9uRXJyb3JDYWxsYmFjay5oICovLAotCQkJCTUxRUM5MjVCMENF
OTBERDQwMEY5MDMwOCAvKiBKU0N1c3RvbVNRTFN0YXRlbWVudENhbGxiYWNrLmNwcCAqLywKLQkJ
CQk1MUVDOTI1QzBDRTkwREQ0MDBGOTAzMDggLyogSlNDdXN0b21TUUxTdGF0ZW1lbnRDYWxsYmFj
ay5oICovLAogCQkJCTUxRUM5MjVEMENFOTBERDQwMEY5MDMwOCAvKiBKU0N1c3RvbVNRTFN0YXRl
bWVudEVycm9yQ2FsbGJhY2suY3BwICovLAotCQkJCTUxRUM5MjVFMENFOTBERDQwMEY5MDMwOCAv
KiBKU0N1c3RvbVNRTFN0YXRlbWVudEVycm9yQ2FsbGJhY2suaCAqLywKLQkJCQk1MUVDOTI1RjBD
RTkwREQ0MDBGOTAzMDggLyogSlNDdXN0b21TUUxUcmFuc2FjdGlvbkNhbGxiYWNrLmNwcCAqLywK
LQkJCQk1MUVDOTI2MDBDRTkwREQ0MDBGOTAzMDggLyogSlNDdXN0b21TUUxUcmFuc2FjdGlvbkNh
bGxiYWNrLmggKi8sCi0JCQkJNTFFQzkyNjEwQ0U5MERENDAwRjkwMzA4IC8qIEpTQ3VzdG9tU1FM
VHJhbnNhY3Rpb25FcnJvckNhbGxiYWNrLmNwcCAqLywKLQkJCQk1MUVDOTI2MjBDRTkwREQ0MDBG
OTAzMDggLyogSlNDdXN0b21TUUxUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2suaCAqLywKIAkJCQkx
QTM0MTdDODBDRUNGRjI1MDA0OUNCREUgLyogSlNDdXN0b21Wb2lkQ2FsbGJhY2suY3BwICovLAog
CQkJCTFBMzQxN0M3MENFQ0ZGMjUwMDQ5Q0JERSAvKiBKU0N1c3RvbVZvaWRDYWxsYmFjay5oICov
LAogCQkJCUUxMEI5M0MyMEI3M0MyOTEwMDNFRDg5MCAvKiBKU0N1c3RvbVhQYXRoTlNSZXNvbHZl
ci5jcHAgKi8sCkBAIC0xNzcwNSwxNCArMTc3MTgsOSBAQAogCQkJCUU0Nzc4QjgwMTE1QTU4MUEw
MEI1RDM3MiAvKiBKU0N1c3RvbUV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlGRTgwRDdBODBF
OUMxRUQyMDAwRDZGNzUgLyogSlNDdXN0b21Qb3NpdGlvbkNhbGxiYWNrLmggaW4gSGVhZGVycyAq
LywKIAkJCQlGRTgwRDdBQTBFOUMxRUQyMDAwRDZGNzUgLyogSlNDdXN0b21Qb3NpdGlvbkVycm9y
Q2FsbGJhY2suaCBpbiBIZWFkZXJzICovLAotCQkJCTUxRUM5MjY0MENFOTBERDQwMEY5MDMwOCAv
KiBKU0N1c3RvbVNRTFN0YXRlbWVudENhbGxiYWNrLmggaW4gSGVhZGVycyAqLywKLQkJCQk1MUVD
OTI2NjBDRTkwREQ0MDBGOTAzMDggLyogSlNDdXN0b21TUUxTdGF0ZW1lbnRFcnJvckNhbGxiYWNr
LmggaW4gSGVhZGVycyAqLywKLQkJCQk1MUVDOTI2ODBDRTkwREQ0MDBGOTAzMDggLyogSlNDdXN0
b21TUUxUcmFuc2FjdGlvbkNhbGxiYWNrLmggaW4gSGVhZGVycyAqLywKLQkJCQk1MUVDOTI2QTBD
RTkwREQ0MDBGOTAzMDggLyogSlNDdXN0b21TUUxUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2suaCBp
biBIZWFkZXJzICovLAogCQkJCTFBMzQxN0M5MENFQ0ZGMjUwMDQ5Q0JERSAvKiBKU0N1c3RvbVZv
aWRDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTEwQjkzN0MwQjczQzAwQTAwM0VEODkw
IC8qIEpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUU4MkY5
MDBDQUFGQTlEMDAyMjM3QUUgLyogSlNEYXRhYmFzZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQjVE
MzYwMUQxMTJGOEJBMDAwNDhERUE4IC8qIEpTRGF0YWJhc2VDYWxsYmFjay5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQkM3N0QxNkEwRkYxOUY1NjAwNzA4ODdCIC8qIEpTRGF0YUdyaWRDb2x1bW4uaCBp
biBIZWFkZXJzICovLAogCQkJCUJDNzdEMTZDMEZGMTlGNTYwMDcwODg3QiAvKiBKU0RhdGFHcmlk
Q29sdW1uTGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNCQ0FFM0QwRkYxOTM5OTAwMDc2MkFF
IC8qIEpTRGF0YUdyaWREYXRhU291cmNlLmggaW4gSGVhZGVycyAqLywKQEAgLTE4OTE4LDYgKzE4
OTI2LDExIEBACiAJCQkJRTFCRTUxMkUwQ0Y2QzUxMjAwMkVBOTU5IC8qIFhTTFRVbmljb2RlU29y
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTdERDREODcwRkRGNEQ2RTAwRUNGOUE0IC8qIFhTU0F1
ZGl0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUNFMTcyRTAxMTEzNkU4Q0UwMDYyQTUzMyAvKiBa
b29tTW9kZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJQjU5REQ2OTkxMTkwMjlFNTAwN0U5Njg0IC8q
IEpTRGF0YWJhc2VDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8sCisJCQkJQjU5REQ2OUQxMTkwMkE0
MjAwN0U5Njg0IC8qIEpTU1FMVHJhbnNhY3Rpb25DYWxsYmFjay5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJQjU5REQ2QTExMTkwMkE1MjAwN0U5Njg0IC8qIEpTU1FMVHJhbnNhY3Rpb25FcnJvckNhbGxi
YWNrLmggaW4gSGVhZGVycyAqLywKKwkJCQlCNTlERDZBNTExOTAyQTYyMDA3RTk2ODQgLyogSlNT
UUxTdGF0ZW1lbnRDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8sCisJCQkJQjU5REQ2QTkxMTkwMkE3
MTAwN0U5Njg0IC8qIEpTU1FMU3RhdGVtZW50RXJyb3JDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8s
CiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07
CkBAIC0xOTk3MiwxNCArMTk5ODUsMTAgQEAKIAkJCQlFNDc3OEI3RjExNUE1ODFBMDBCNUQzNzIg
LyogSlNDdXN0b21FdmVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGRTgwRDdBNzBFOUMxRUQy
MDAwRDZGNzUgLyogSlNDdXN0b21Qb3NpdGlvbkNhbGxiYWNrLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUZFODBEN0E5MEU5QzFFRDIwMDBENkY3NSAvKiBKU0N1c3RvbVBvc2l0aW9uRXJyb3JDYWxs
YmFjay5jcHAgaW4gU291cmNlcyAqLywKLQkJCQk1MUVDOTI2MzBDRTkwREQ0MDBGOTAzMDggLyog
SlNDdXN0b21TUUxTdGF0ZW1lbnRDYWxsYmFjay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MUVD
OTI2NTBDRTkwREQ0MDBGOTAzMDggLyogSlNDdXN0b21TUUxTdGF0ZW1lbnRFcnJvckNhbGxiYWNr
LmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTUxRUM5MjY3MENFOTBERDQwMEY5MDMwOCAvKiBKU0N1
c3RvbVNRTFRyYW5zYWN0aW9uQ2FsbGJhY2suY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJNTFFQzky
NjkwQ0U5MERENDAwRjkwMzA4IC8qIEpTQ3VzdG9tU1FMVHJhbnNhY3Rpb25FcnJvckNhbGxiYWNr
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBMzQxN0NBMENFQ0ZGMjUwMDQ5Q0JERSAvKiBKU0N1
c3RvbVZvaWRDYWxsYmFjay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFMTBCOTNDMzBCNzNDMjkx
MDAzRUQ4OTAgLyogSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMUFFODJGOEYwQ0FBRkE5RDAwMjIzN0FFIC8qIEpTRGF0YWJhc2UuY3BwIGluIFNvdXJjZXMg
Ki8sCi0JCQkJQjVEMzYwMUYxMTJGOEJBODAwNDhERUE4IC8qIEpTRGF0YWJhc2VDYWxsYmFjay5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0NFNThBQzEwNjFFOENGMDA4RkIzNUEgLyogSlNEYXRh
YmFzZUN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzc3RDE2OTBGRjE5RjU2MDA3MDg4
N0IgLyogSlNEYXRhR3JpZENvbHVtbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzc3RDE2QjBG
RjE5RjU2MDA3MDg4N0IgLyogSlNEYXRhR3JpZENvbHVtbkxpc3QuY3BwIGluIFNvdXJjZXMgKi8s
CkBAIC0yMTE1Nyw2ICsyMTE2NiwxMSBAQAogCQkJCTkzRjE5QjA1MDgyNDVFNTkwMDFFOUFCQyAv
KiBYU0xUUHJvY2Vzc29yTGlieHNsdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFMUJFNTEyRDBD
RjZDNTEyMDAyRUE5NTkgLyogWFNMVFVuaWNvZGVTb3J0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTk3REQ0RDg2MEZERjRENkUwMEVDRjlBNCAvKiBYU1NBdWRpdG9yLmNwcCBpbiBTb3VyY2VzICov
LAorCQkJCUI1OURENjlBMTE5MDI5RTUwMDdFOTY4NCAvKiBKU0RhdGFiYXNlQ2FsbGJhY2suY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJQjU5REQ2OUUxMTkwMkE0MjAwN0U5Njg0IC8qIEpTU1FMVHJh
bnNhY3Rpb25DYWxsYmFjay5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlCNTlERDZBMjExOTAyQTUy
MDA3RTk2ODQgLyogSlNTUUxUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2suY3BwIGluIFNvdXJjZXMg
Ki8sCisJCQkJQjU5REQ2QTYxMTkwMkE2MjAwN0U5Njg0IC8qIEpTU1FMU3RhdGVtZW50Q2FsbGJh
Y2suY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQjU5REQ2QUExMTkwMkE3MTAwN0U5Njg0IC8qIEpT
U1FMU3RhdGVtZW50RXJyb3JDYWxsYmFjay5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQly
dW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKSW5kZXg6IFdlYkNv
cmUvYmluZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25lLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL2JpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHAJKHJldmlzaW9uIDU4NzQ3KQor
KysgV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0zOSwxMCArMzksNyBAQAogI2luY2x1ZGUgIkpTQ2xpcGJvYXJkQ3VzdG9tLmNwcCIK
ICNpbmNsdWRlICJKU0NvbnNvbGVDdXN0b20uY3BwIgogI2luY2x1ZGUgIkpTQ29vcmRpbmF0ZXND
dXN0b20uY3BwIgotI2luY2x1ZGUgIkpTQ3VzdG9tU1FMU3RhdGVtZW50Q2FsbGJhY2suY3BwIgog
I2luY2x1ZGUgIkpTQ3VzdG9tU1FMU3RhdGVtZW50RXJyb3JDYWxsYmFjay5jcHAiCi0jaW5jbHVk
ZSAiSlNDdXN0b21TUUxUcmFuc2FjdGlvbkNhbGxiYWNrLmNwcCIKLSNpbmNsdWRlICJKU0N1c3Rv
bVNRTFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFjay5jcHAiCiAjaW5jbHVkZSAiSlNDdXN0b21Wb2lk
Q2FsbGJhY2suY3BwIgogI2luY2x1ZGUgIkpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmNwcCIKICNp
bmNsdWRlICJKU0RPTUFwcGxpY2F0aW9uQ2FjaGVDdXN0b20uY3BwIgpJbmRleDogV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0N1c3RvbVNRTFN0YXRlbWVudENhbGxiYWNrLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tU1FMU3RhdGVtZW50Q2FsbGJhY2suY3BwCShy
ZXZpc2lvbiA1ODc0NykKKysrIFdlYkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21TUUxTdGF0ZW1l
bnRDYWxsYmFjay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsODEgKzAsMCBAQAotLyoKLSAqIENv
cHlyaWdodCAoQykgMjAwNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKgotICogMS4gIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgotICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCi0gKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBDb21wdXRlciwgSW5j
LiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgotICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5
IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKLSAqICAgICBm
cm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Np
b24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENP
TlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSAqIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBUkUKLSAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKLSAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0gKiAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7Ci0gKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKLSAqIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKLSAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUg
ImNvbmZpZy5oIgotI2luY2x1ZGUgIkpTQ3VzdG9tU1FMU3RhdGVtZW50Q2FsbGJhY2suaCIKLQot
I2lmIEVOQUJMRShEQVRBQkFTRSkKLQotI2luY2x1ZGUgIkZyYW1lLmgiCi0jaW5jbHVkZSAiSlNT
UUxSZXN1bHRTZXQuaCIKLSNpbmNsdWRlICJKU1NRTFRyYW5zYWN0aW9uLmgiCi0jaW5jbHVkZSAi
U2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgotI2luY2x1ZGUgPHJ1bnRpbWUvSlNMb2NrLmg+Ci0j
aW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi11c2lu
ZyBuYW1lc3BhY2UgSlNDOwotCi1KU0N1c3RvbVNRTFN0YXRlbWVudENhbGxiYWNrOjpKU0N1c3Rv
bVNRTFN0YXRlbWVudENhbGxiYWNrKEpTT2JqZWN0KiBjYWxsYmFjaywgSlNET01HbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCkKLSAgICA6IG1fZGF0YShuZXcgSlNDYWxsYmFja0RhdGEoY2FsbGJh
Y2ssIGdsb2JhbE9iamVjdCkpCi0gICAgLCBtX2lzb2xhdGVkV29ybGQoZ2xvYmFsT2JqZWN0LT53
b3JsZCgpKQotewotfQotCi1KU0N1c3RvbVNRTFN0YXRlbWVudENhbGxiYWNrOjp+SlNDdXN0b21T
UUxTdGF0ZW1lbnRDYWxsYmFjaygpCi17Ci0gICAgY2FsbE9uTWFpblRocmVhZChKU0NhbGxiYWNr
RGF0YTo6ZGVsZXRlRGF0YSwgbV9kYXRhKTsKLSNpZm5kZWYgTkRFQlVHCi0gICAgbV9kYXRhID0g
MDsKLSNlbmRpZgotfQotCi12b2lkIEpTQ3VzdG9tU1FMU3RhdGVtZW50Q2FsbGJhY2s6OmhhbmRs
ZUV2ZW50KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFNRTFRyYW5zYWN0aW9uKiB0
cmFuc2FjdGlvbiwgU1FMUmVzdWx0U2V0KiByZXN1bHRTZXQsIGJvb2wmIHJhaXNlZEV4Y2VwdGlv
bikKLXsKLSAgICBBU1NFUlQobV9kYXRhKTsKLSAgICBBU1NFUlQoY29udGV4dCk7Ci0KLSAgICBS
ZWZQdHI8SlNDdXN0b21TUUxTdGF0ZW1lbnRDYWxsYmFjaz4gcHJvdGVjdCh0aGlzKTsKLQotICAg
IEpTQzo6SlNMb2NrIGxvY2soU2lsZW5jZUFzc2VydGlvbnNPbmx5KTsKLSAgICBKU0RPTUdsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gdG9KU0RPTUdsb2JhbE9iamVjdChjb250ZXh0LCBtX2lz
b2xhdGVkV29ybGQuZ2V0KCkpOwotICAgIGlmICghZ2xvYmFsT2JqZWN0KQotICAgICAgICByZXR1
cm47Ci0KLSAgICBFeGVjU3RhdGUqIGV4ZWMgPSBnbG9iYWxPYmplY3QtPmdsb2JhbEV4ZWMoKTsK
LSAgICBNYXJrZWRBcmd1bWVudEJ1ZmZlciBhcmdzOwotICAgIGFyZ3MuYXBwZW5kKHRvSlMoZXhl
YywgZGVwcmVjYXRlZEdsb2JhbE9iamVjdEZvclByb3RvdHlwZShleGVjKSwgdHJhbnNhY3Rpb24p
KTsKLSAgICBhcmdzLmFwcGVuZCh0b0pTKGV4ZWMsIGRlcHJlY2F0ZWRHbG9iYWxPYmplY3RGb3JQ
cm90b3R5cGUoZXhlYyksIHJlc3VsdFNldCkpOwotCi0gICAgbV9kYXRhLT5pbnZva2VDYWxsYmFj
ayhhcmdzLCAmcmFpc2VkRXhjZXB0aW9uKTsKLX0KLQotfQotCi0jZW5kaWYgLy8gRU5BQkxFKERB
VEFCQVNFKQpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3RvbVNRTFN0YXRlbWVudENh
bGxiYWNrLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3RvbVNRTFN0
YXRlbWVudENhbGxiYWNrLmgJKHJldmlzaW9uIDU4NzQ3KQorKysgV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0N1c3RvbVNRTFN0YXRlbWVudENhbGxiYWNrLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNjQg
KzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0g
KgotICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQotICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBB
cHBsZSBDb21wdXRlciwgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgotICogICAgIGl0
cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3Rz
IGRlcml2ZWQKLSAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlv
ciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKLSAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
IElNUExJRUQKLSAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKLSAqIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTCi0gKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci0gKiBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQKLSAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKLSAqIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
Ci0gKi8KLQotI2lmbmRlZiBKU0N1c3RvbVNRTFN0YXRlbWVudENhbGxiYWNrX2gKLSNkZWZpbmUg
SlNDdXN0b21TUUxTdGF0ZW1lbnRDYWxsYmFja19oCi0KLSNpZiBFTkFCTEUoREFUQUJBU0UpCi0K
LSNpbmNsdWRlICJKU0NhbGxiYWNrRGF0YS5oIgotI2luY2x1ZGUgIlNRTFN0YXRlbWVudENhbGxi
YWNrLmgiCi0jaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewot
Ci1jbGFzcyBTUUxSZXN1bHRTZXQ7Ci0KLWNsYXNzIEpTQ3VzdG9tU1FMU3RhdGVtZW50Q2FsbGJh
Y2sgOiBwdWJsaWMgU1FMU3RhdGVtZW50Q2FsbGJhY2sgewotcHVibGljOgotICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPEpTQ3VzdG9tU1FMU3RhdGVtZW50Q2FsbGJhY2s+IGNyZWF0ZShKU0M6OkpTT2Jq
ZWN0KiBjYWxsYmFjaywgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKLSAgICB7Ci0g
ICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgSlNDdXN0b21TUUxTdGF0ZW1lbnRDYWxsYmFjayhj
YWxsYmFjaywgZ2xvYmFsT2JqZWN0KSk7Ci0gICAgfQotCi0gICAgdmlydHVhbCB+SlNDdXN0b21T
UUxTdGF0ZW1lbnRDYWxsYmFjaygpOwotCi0gICAgdmlydHVhbCB2b2lkIGhhbmRsZUV2ZW50KFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBTUUxUcmFuc2FjdGlvbiosIFNRTFJlc3VsdFNldCosIGJv
b2wmIHJhaXNlZEV4Y2VwdGlvbik7Ci0KLXByaXZhdGU6Ci0gICAgSlNDdXN0b21TUUxTdGF0ZW1l
bnRDYWxsYmFjayhKU0M6OkpTT2JqZWN0KiBjYWxsYmFjaywgSlNET01HbG9iYWxPYmplY3QqKTsK
LQotICAgIEpTQ2FsbGJhY2tEYXRhKiBtX2RhdGE7Ci0gICAgUmVmUHRyPERPTVdyYXBwZXJXb3Js
ZD4gbV9pc29sYXRlZFdvcmxkOwotfTsKLQotfQotCi0jZW5kaWYgLy8gRU5BQkxFKERBVEFCQVNF
KQotCi0jZW5kaWYgLy8gSlNDdXN0b21TUUxTdGF0ZW1lbnRDYWxsYmFja19oCkluZGV4OiBXZWJD
b3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tU1FMU3RhdGVtZW50RXJyb3JDYWxsYmFjay5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3RvbVNRTFN0YXRlbWVudEVycm9y
Q2FsbGJhY2suY3BwCShyZXZpc2lvbiA1ODc0NykKKysrIFdlYkNvcmUvYmluZGluZ3MvanMvSlND
dXN0b21TUUxTdGF0ZW1lbnRFcnJvckNhbGxiYWNrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcs
NDIgKzI3LDI2IEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkpTQ3Vz
dG9tU1FMU3RhdGVtZW50RXJyb3JDYWxsYmFjay5oIgorI2luY2x1ZGUgIkpTU1FMU3RhdGVtZW50
RXJyb3JDYWxsYmFjay5oIgogCiAjaWYgRU5BQkxFKERBVEFCQVNFKQogCiAjaW5jbHVkZSAiRnJh
bWUuaCIKLSNpbmNsdWRlICJKU0NhbGxiYWNrRGF0YS5oIgogI2luY2x1ZGUgIkpTU1FMRXJyb3Iu
aCIKICNpbmNsdWRlICJKU1NRTFRyYW5zYWN0aW9uLmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0
aW9uQ29udGV4dC5oIgogI2luY2x1ZGUgPHJ1bnRpbWUvSlNMb2NrLmg+Ci0jaW5jbHVkZSA8d3Rm
L01haW5UaHJlYWQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiB1c2luZyBuYW1lc3BhY2Ug
SlNDOwogCi1KU0N1c3RvbVNRTFN0YXRlbWVudEVycm9yQ2FsbGJhY2s6OkpTQ3VzdG9tU1FMU3Rh
dGVtZW50RXJyb3JDYWxsYmFjayhKU09iamVjdCogY2FsbGJhY2ssIEpTRE9NR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QpCi0gICAgOiBtX2RhdGEobmV3IEpTQ2FsbGJhY2tEYXRhKGNhbGxiYWNr
LCBnbG9iYWxPYmplY3QpKQotICAgICwgbV9pc29sYXRlZFdvcmxkKGdsb2JhbE9iamVjdC0+d29y
bGQoKSkKLXsKLX0KLQotSlNDdXN0b21TUUxTdGF0ZW1lbnRFcnJvckNhbGxiYWNrOjp+SlNDdXN0
b21TUUxTdGF0ZW1lbnRFcnJvckNhbGxiYWNrKCkKLXsKLSAgICBjYWxsT25NYWluVGhyZWFkKEpT
Q2FsbGJhY2tEYXRhOjpkZWxldGVEYXRhLCBtX2RhdGEpOwotI2lmbmRlZiBOREVCVUcKLSAgICBt
X2RhdGEgPSAwOwotI2VuZGlmCi19Ci0KLWJvb2wgSlNDdXN0b21TUUxTdGF0ZW1lbnRFcnJvckNh
bGxiYWNrOjpoYW5kbGVFdmVudChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBTUUxU
cmFuc2FjdGlvbiogdHJhbnNhY3Rpb24sIFNRTEVycm9yKiBlcnJvcikKK2Jvb2wgSlNTUUxTdGF0
ZW1lbnRFcnJvckNhbGxiYWNrOjpoYW5kbGVFdmVudChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBj
b250ZXh0LCBTUUxUcmFuc2FjdGlvbiogdHJhbnNhY3Rpb24sIFNRTEVycm9yKiBlcnJvcikKIHsK
ICAgICBBU1NFUlQobV9kYXRhKTsKICAgICBBU1NFUlQoY29udGV4dCk7CiAKLSAgICBSZWZQdHI8
SlNDdXN0b21TUUxTdGF0ZW1lbnRFcnJvckNhbGxiYWNrPiBwcm90ZWN0KHRoaXMpOworICAgIFJl
ZlB0cjxKU1NRTFN0YXRlbWVudEVycm9yQ2FsbGJhY2s+IHByb3RlY3QodGhpcyk7CiAKICAgICBK
U0M6OkpTTG9jayBsb2NrKFNpbGVuY2VBc3NlcnRpb25zT25seSk7CiAgICAgSlNET01HbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCA9IHRvSlNET01HbG9iYWxPYmplY3QoY29udGV4dCwgbV9pc29s
YXRlZFdvcmxkLmdldCgpKTsKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21TUUxT
dGF0ZW1lbnRFcnJvckNhbGxiYWNrLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0N1c3RvbVNRTFN0YXRlbWVudEVycm9yQ2FsbGJhY2suaAkocmV2aXNpb24gNTg3NDcpCisr
KyBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tU1FMU3RhdGVtZW50RXJyb3JDYWxsYmFjay5o
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDY1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MDcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAq
IDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICog
My4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJBcHBsZSIpIG5v
ciB0aGUgbmFtZXMgb2YKLSAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVu
ZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCi0gKiAgICAgZnJvbSB0aGlzIHNvZnR3
YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFT
IElTIiBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwotICogKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOwotICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECi0gKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GCi0gKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgSlNDdXN0b21TUUxTdGF0
ZW1lbnRFcnJvckNhbGxiYWNrX2gKLSNkZWZpbmUgSlNDdXN0b21TUUxTdGF0ZW1lbnRFcnJvckNh
bGxiYWNrX2gKLQotI2lmIEVOQUJMRShEQVRBQkFTRSkKLQotI2luY2x1ZGUgIkpTQ2FsbGJhY2tE
YXRhLmgiCi0jaW5jbHVkZSAiU1FMU3RhdGVtZW50RXJyb3JDYWxsYmFjay5oIgotI2luY2x1ZGUg
PHd0Zi9Gb3J3YXJkLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgSlNDYWxsYmFj
a0RhdGE7Ci1jbGFzcyBTUUxFcnJvcjsKLQotY2xhc3MgSlNDdXN0b21TUUxTdGF0ZW1lbnRFcnJv
ckNhbGxiYWNrIDogcHVibGljIFNRTFN0YXRlbWVudEVycm9yQ2FsbGJhY2sgewotcHVibGljOgot
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPEpTQ3VzdG9tU1FMU3RhdGVtZW50RXJyb3JDYWxsYmFjaz4g
Y3JlYXRlKEpTQzo6SlNPYmplY3QqIGNhbGxiYWNrLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0KQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBKU0N1c3RvbVNRTFN0
YXRlbWVudEVycm9yQ2FsbGJhY2soY2FsbGJhY2ssIGdsb2JhbE9iamVjdCkpOwotICAgIH0KLQot
ICAgIHZpcnR1YWwgfkpTQ3VzdG9tU1FMU3RhdGVtZW50RXJyb3JDYWxsYmFjaygpOwotCi0gICAg
dmlydHVhbCBib29sIGhhbmRsZUV2ZW50KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBTUUxUcmFu
c2FjdGlvbiosIFNRTEVycm9yKik7Ci0KLXByaXZhdGU6Ci0gICAgSlNDdXN0b21TUUxTdGF0ZW1l
bnRFcnJvckNhbGxiYWNrKEpTQzo6SlNPYmplY3QqIGNhbGxiYWNrLCBKU0RPTUdsb2JhbE9iamVj
dCopOwotCi0gICAgSlNDYWxsYmFja0RhdGEqIG1fZGF0YTsKLSAgICBSZWZQdHI8RE9NV3JhcHBl
cldvcmxkPiBtX2lzb2xhdGVkV29ybGQ7Ci19OwotCi19Ci0KLSNlbmRpZiAvLyBFTkFCTEUoREFU
QUJBU0UpCi0KLSNlbmRpZiAvLyBKU0N1c3RvbVNRTFN0YXRlbWVudEVycm9yQ2FsbGJhY2tfaApJ
bmRleDogV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3RvbVNRTFRyYW5zYWN0aW9uQ2FsbGJhY2su
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21TUUxUcmFuc2Fj
dGlvbkNhbGxiYWNrLmNwcAkocmV2aXNpb24gNTg3NDcpCisrKyBXZWJDb3JlL2JpbmRpbmdzL2pz
L0pTQ3VzdG9tU1FMVHJhbnNhY3Rpb25DYWxsYmFjay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEs
ODggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNywgMjAwOCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFy
ZSBtZXQ6Ci0gKgotICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQotICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKiAzLiAgTmVpdGhlciB0aGUg
bmFtZSBvZiBBcHBsZSBDb21wdXRlciwgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgot
ICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3Rl
IHByb2R1Y3RzIGRlcml2ZWQKLSAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVj
aWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKLSAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFIElNUExJRUQKLSAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSAqIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkK
LSAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTCi0gKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci0gKiBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQKLSAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKLSAq
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkpTQ3VzdG9t
U1FMVHJhbnNhY3Rpb25DYWxsYmFjay5oIgotCi0jaWYgRU5BQkxFKERBVEFCQVNFKQotCi0jaW5j
bHVkZSAiRnJhbWUuaCIKLSNpbmNsdWRlICJKU0NhbGxiYWNrRGF0YS5oIgotI2luY2x1ZGUgIkpT
U1FMVHJhbnNhY3Rpb24uaCIKLSNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCi0j
aW5jbHVkZSA8cnVudGltZS9KU0xvY2suaD4KLSNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgot
I2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkTGVha0NvdW50ZXIuaD4KLQotbmFtZXNwYWNlIFdlYkNv
cmUgewotCi11c2luZyBuYW1lc3BhY2UgSlNDOwotCi0jaWZuZGVmIE5ERUJVRwotc3RhdGljIFdU
Rjo6UmVmQ291bnRlZExlYWtDb3VudGVyIGNvdW50ZXIoIkpTQ3VzdG9tU1FMVHJhbnNhY3Rpb25D
YWxsYmFjayIpOwotI2VuZGlmCi0KLUpTQ3VzdG9tU1FMVHJhbnNhY3Rpb25DYWxsYmFjazo6SlND
dXN0b21TUUxUcmFuc2FjdGlvbkNhbGxiYWNrKEpTT2JqZWN0KiBjYWxsYmFjaywgSlNET01HbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCkKLSAgICA6IG1fZGF0YShuZXcgSlNDYWxsYmFja0RhdGEo
Y2FsbGJhY2ssIGdsb2JhbE9iamVjdCkpCi0gICAgLCBtX2lzb2xhdGVkV29ybGQoZ2xvYmFsT2Jq
ZWN0LT53b3JsZCgpKQotewotI2lmbmRlZiBOREVCVUcKLSAgICBjb3VudGVyLmluY3JlbWVudCgp
OwotI2VuZGlmCi19Ci0KLUpTQ3VzdG9tU1FMVHJhbnNhY3Rpb25DYWxsYmFjazo6fkpTQ3VzdG9t
U1FMVHJhbnNhY3Rpb25DYWxsYmFjaygpCi17Ci0gICAgY2FsbE9uTWFpblRocmVhZChKU0NhbGxi
YWNrRGF0YTo6ZGVsZXRlRGF0YSwgbV9kYXRhKTsKLSNpZm5kZWYgTkRFQlVHCi0gICAgbV9kYXRh
ID0gMDsKLSAgICBjb3VudGVyLmRlY3JlbWVudCgpOwotI2VuZGlmCi19Ci0KLXZvaWQgSlNDdXN0
b21TUUxUcmFuc2FjdGlvbkNhbGxiYWNrOjpoYW5kbGVFdmVudChTY3JpcHRFeGVjdXRpb25Db250
ZXh0KiBjb250ZXh0LCBTUUxUcmFuc2FjdGlvbiogdHJhbnNhY3Rpb24sIGJvb2wmIHJhaXNlZEV4
Y2VwdGlvbikKLXsKLSAgICBBU1NFUlQobV9kYXRhKTsKLSAgICBBU1NFUlQoY29udGV4dCk7Ci0K
LSAgICBSZWZQdHI8SlNDdXN0b21TUUxUcmFuc2FjdGlvbkNhbGxiYWNrPiBwcm90ZWN0KHRoaXMp
OwotCi0gICAgSlNDOjpKU0xvY2sgbG9jayhTaWxlbmNlQXNzZXJ0aW9uc09ubHkpOwotICAgIEpT
RE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSB0b0pTRE9NR2xvYmFsT2JqZWN0KGNvbnRl
eHQsIG1faXNvbGF0ZWRXb3JsZC5nZXQoKSk7Ci0gICAgaWYgKCFnbG9iYWxPYmplY3QpCi0gICAg
ICAgIHJldHVybjsKLQotICAgIEV4ZWNTdGF0ZSogZXhlYyA9IGdsb2JhbE9iamVjdC0+Z2xvYmFs
RXhlYygpOwotICAgIE1hcmtlZEFyZ3VtZW50QnVmZmVyIGFyZ3M7Ci0gICAgYXJncy5hcHBlbmQo
dG9KUyhleGVjLCBkZXByZWNhdGVkR2xvYmFsT2JqZWN0Rm9yUHJvdG90eXBlKGV4ZWMpLCB0cmFu
c2FjdGlvbikpOwotICAgIG1fZGF0YS0+aW52b2tlQ2FsbGJhY2soYXJncywgJnJhaXNlZEV4Y2Vw
dGlvbik7Ci19Ci0KLX0KLQotI2VuZGlmIC8vIEVOQUJMRShEQVRBQkFTRSkKSW5kZXg6IFdlYkNv
cmUvYmluZGluZ3MvanMvSlNDdXN0b21TUUxUcmFuc2FjdGlvbkNhbGxiYWNrLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3RvbVNRTFRyYW5zYWN0aW9uQ2FsbGJhY2su
aAkocmV2aXNpb24gNTg3NDcpCisrKyBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tU1FMVHJh
bnNhY3Rpb25DYWxsYmFjay5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDY2ICswLDAgQEAKLS8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMDcsIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAqIDEu
ICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
LSAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgotICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29t
cHV0ZXIsIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKLSAqICAgICBpdHMgY29udHJp
YnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVk
Ci0gKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRl
biBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
QU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
Ci0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUwotICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECi0gKiBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0gKiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0K
LSNpZm5kZWYgSlNDdXN0b21TUUxUcmFuc2FjdGlvbkNhbGxiYWNrX2gKLSNkZWZpbmUgSlNDdXN0
b21TUUxUcmFuc2FjdGlvbkNhbGxiYWNrX2gKLQotI2lmIEVOQUJMRShEQVRBQkFTRSkKLQotI2lu
Y2x1ZGUgIkpTRE9NR2xvYmFsT2JqZWN0LmgiCi0jaW5jbHVkZSAiU1FMVHJhbnNhY3Rpb25DYWxs
YmFjay5oIgotI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsK
LQotY2xhc3MgRnJhbWU7Ci1jbGFzcyBKU0NhbGxiYWNrRGF0YTsKLWNsYXNzIEpTRE9NR2xvYmFs
T2JqZWN0OwotCi1jbGFzcyBKU0N1c3RvbVNRTFRyYW5zYWN0aW9uQ2FsbGJhY2sgOiBwdWJsaWMg
U1FMVHJhbnNhY3Rpb25DYWxsYmFjayB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8
SlNDdXN0b21TUUxUcmFuc2FjdGlvbkNhbGxiYWNrPiBjcmVhdGUoSlNDOjpKU09iamVjdCogY2Fs
bGJhY2ssIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCi0gICAgewotICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYobmV3IEpTQ3VzdG9tU1FMVHJhbnNhY3Rpb25DYWxsYmFjayhjYWxsYmFj
aywgZ2xvYmFsT2JqZWN0KSk7Ci0gICAgfQotCi0gICAgdmlydHVhbCB+SlNDdXN0b21TUUxUcmFu
c2FjdGlvbkNhbGxiYWNrKCk7Ci0KLSAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlRXZlbnQoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCosIFNRTFRyYW5zYWN0aW9uKiwgYm9vbCYgcmFpc2VkRXhjZXB0aW9u
KTsKLQotcHJpdmF0ZToKLSAgICBKU0N1c3RvbVNRTFRyYW5zYWN0aW9uQ2FsbGJhY2soSlNDOjpK
U09iamVjdCogY2FsbGJhY2ssIEpTRE9NR2xvYmFsT2JqZWN0Kik7Ci0KLSAgICBKU0NhbGxiYWNr
RGF0YSogbV9kYXRhOwotICAgIFJlZlB0cjxET01XcmFwcGVyV29ybGQ+IG1faXNvbGF0ZWRXb3Js
ZDsKLX07Ci0KLX0KLQotI2VuZGlmIC8vIEVOQUJMRShEQVRBQkFTRSkKLQotI2VuZGlmIC8vIEpT
Q3VzdG9tU1FMVHJhbnNhY3Rpb25DYWxsYmFja19oCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2pz
L0pTQ3VzdG9tU1FMVHJhbnNhY3Rpb25FcnJvckNhbGxiYWNrLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tU1FMVHJhbnNhY3Rpb25FcnJvckNhbGxiYWNrLmNw
cAkocmV2aXNpb24gNTg3NDcpCisrKyBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tU1FMVHJh
bnNhY3Rpb25FcnJvckNhbGxiYWNrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw3OSArMCwwIEBA
Ci0vKgotICogQ29weXJpZ2h0IChDKSAyMDA3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqCi0gKiAx
LiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
Ci0gKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIENv
bXB1dGVyLCBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCi0gKiAgICAgaXRzIGNvbnRy
aWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZl
ZAotICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0
ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RAotICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMKLSAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKLSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAotICog
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgotICogVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwot
Ci0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiSlNDdXN0b21TUUxUcmFuc2FjdGlvbkVy
cm9yQ2FsbGJhY2suaCIKLQotI2lmIEVOQUJMRShEQVRBQkFTRSkKLQotI2luY2x1ZGUgIkZyYW1l
LmgiCi0jaW5jbHVkZSAiSlNDYWxsYmFja0RhdGEuaCIKLSNpbmNsdWRlICJKU1NRTEVycm9yLmgi
Ci0jaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgotI2luY2x1ZGUgPHJ1bnRpbWUv
SlNMb2NrLmg+Ci0jaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KLQotbmFtZXNwYWNlIFdlYkNv
cmUgewotCi11c2luZyBuYW1lc3BhY2UgSlNDOwotCi1KU0N1c3RvbVNRTFRyYW5zYWN0aW9uRXJy
b3JDYWxsYmFjazo6SlNDdXN0b21TUUxUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2soSlNPYmplY3Qq
IGNhbGxiYWNrLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQotICAgIDogbV9kYXRh
KG5ldyBKU0NhbGxiYWNrRGF0YShjYWxsYmFjaywgZ2xvYmFsT2JqZWN0KSkKLSAgICAsIG1faXNv
bGF0ZWRXb3JsZChnbG9iYWxPYmplY3QtPndvcmxkKCkpCi17Ci19Ci0KLUpTQ3VzdG9tU1FMVHJh
bnNhY3Rpb25FcnJvckNhbGxiYWNrOjp+SlNDdXN0b21TUUxUcmFuc2FjdGlvbkVycm9yQ2FsbGJh
Y2soKQotewotICAgIGNhbGxPbk1haW5UaHJlYWQoSlNDYWxsYmFja0RhdGE6OmRlbGV0ZURhdGEs
IG1fZGF0YSk7Ci0jaWZuZGVmIE5ERUJVRwotICAgIG1fZGF0YSA9IDA7Ci0jZW5kaWYKLX0KLQot
dm9pZCBKU0N1c3RvbVNRTFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFjazo6aGFuZGxlRXZlbnQoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgU1FMRXJyb3IqIGVycm9yKQotewotICAgIEFT
U0VSVChtX2RhdGEpOwotICAgIEFTU0VSVChjb250ZXh0KTsKLQotICAgIFJlZlB0cjxKU0N1c3Rv
bVNRTFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFjaz4gcHJvdGVjdCh0aGlzKTsKLQotICAgIEpTQzo6
SlNMb2NrIGxvY2soU2lsZW5jZUFzc2VydGlvbnNPbmx5KTsKLSAgICBKU0RPTUdsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0ID0gdG9KU0RPTUdsb2JhbE9iamVjdChjb250ZXh0LCBtX2lzb2xhdGVk
V29ybGQuZ2V0KCkpOwotICAgIGlmICghZ2xvYmFsT2JqZWN0KQotICAgICAgICByZXR1cm47Ci0K
LSAgICBFeGVjU3RhdGUqIGV4ZWMgPSBnbG9iYWxPYmplY3QtPmdsb2JhbEV4ZWMoKTsKLSAgICBN
YXJrZWRBcmd1bWVudEJ1ZmZlciBhcmdzOwotICAgIGFyZ3MuYXBwZW5kKHRvSlMoZXhlYywgZGVw
cmVjYXRlZEdsb2JhbE9iamVjdEZvclByb3RvdHlwZShleGVjKSwgZXJyb3IpKTsKLSAgICBtX2Rh
dGEtPmludm9rZUNhbGxiYWNrKGFyZ3MpOwotfQotCi19Ci0KLSNlbmRpZiAvLyBFTkFCTEUoREFU
QUJBU0UpCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tU1FMVHJhbnNhY3Rpb25F
cnJvckNhbGxiYWNrLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3Rv
bVNRTFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFjay5oCShyZXZpc2lvbiA1ODc0NykKKysrIFdlYkNv
cmUvYmluZGluZ3MvanMvSlNDdXN0b21TUUxUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2suaAkod29y
a2luZyBjb3B5KQpAQCAtMSw2NCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA3IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwotICogYXJlIG1ldDoKLSAqCi0gKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiAg
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqIDMuICBO
ZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIENvbXB1dGVyLCBJbmMuICgiQXBwbGUiKSBub3IgdGhl
IG5hbWVzIG9mCi0gKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNl
IG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAotICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3
aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIg
QU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQotICogRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSAqIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsK
LSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORAotICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRgotICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIEpTQ3VzdG9tU1FMVHJhbnNhY3Rp
b25FcnJvckNhbGxiYWNrX2gKLSNkZWZpbmUgSlNDdXN0b21TUUxUcmFuc2FjdGlvbkVycm9yQ2Fs
bGJhY2tfaAotCi0jaWYgRU5BQkxFKERBVEFCQVNFKQotCi0jaW5jbHVkZSAiSlNDYWxsYmFja0Rh
dGEuaCIKLSNpbmNsdWRlICJTUUxUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2suaCIKLSNpbmNsdWRl
IDx3dGYvRm9yd2FyZC5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIEpTQ2FsbGJh
Y2tEYXRhOwotY2xhc3MgU1FMRXJyb3I7Ci0KLWNsYXNzIEpTQ3VzdG9tU1FMVHJhbnNhY3Rpb25F
cnJvckNhbGxiYWNrIDogcHVibGljIFNRTFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFjayB7Ci1wdWJs
aWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8SlNDdXN0b21TUUxUcmFuc2FjdGlvbkVycm9yQ2Fs
bGJhY2s+IGNyZWF0ZShKU0M6OkpTT2JqZWN0KiBjYWxsYmFjaywgSlNET01HbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgSlNDdXN0
b21TUUxUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2soY2FsbGJhY2ssIGdsb2JhbE9iamVjdCkpOwot
ICAgIH0KLQotICAgIHZpcnR1YWwgfkpTQ3VzdG9tU1FMVHJhbnNhY3Rpb25FcnJvckNhbGxiYWNr
KCk7Ci0KLSAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlRXZlbnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCosIFNRTEVycm9yKik7Ci0KLXByaXZhdGU6Ci0gICAgSlNDdXN0b21TUUxUcmFuc2FjdGlvbkVy
cm9yQ2FsbGJhY2soSlNDOjpKU09iamVjdCogY2FsbGJhY2ssIEpTRE9NR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QpOwotCi0gICAgSlNDYWxsYmFja0RhdGEqIG1fZGF0YTsKLSAgICBSZWZQdHI8
RE9NV3JhcHBlcldvcmxkPiBtX2lzb2xhdGVkV29ybGQ7Ci19OwotCi19Ci0jZW5kaWYgLy8gRU5B
QkxFKERBVEFCQVNFKQotCi0jZW5kaWYgLy8gSlNDdXN0b21TUUxUcmFuc2FjdGlvbkVycm9yQ2Fs
bGJhY2tfaApJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RhdGFiYXNlQ2FsbGJhY2suY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvanMvSlNEYXRhYmFzZUNhbGxiYWNrLmNw
cAkocmV2aXNpb24gNTg3NDcpCisrKyBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTRGF0YWJhc2VDYWxs
YmFjay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsODMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zIGFyZQotICogbWV0OgotICoKLSAqICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0gKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0gKiBkaXN0cmlidXRpb24u
Ci0gKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMg
b2YgaXRzCi0gKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3Rl
IHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmlj
IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMi
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VAotICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotICogT1dORVIgT1IgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAot
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcu
aCIKLSNpbmNsdWRlICJKU0RhdGFiYXNlQ2FsbGJhY2suaCIKLQotI2lmIEVOQUJMRShEQVRBQkFT
RSkKLQotI2luY2x1ZGUgIkZyYW1lLmgiCi0jaW5jbHVkZSAiSlNEYXRhYmFzZS5oIgotI2luY2x1
ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKLSNpbmNsdWRlIDxydW50aW1lL0pTTG9jay5o
PgotI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQot
dXNpbmcgbmFtZXNwYWNlIEpTQzsKLQotSlNEYXRhYmFzZUNhbGxiYWNrOjpKU0RhdGFiYXNlQ2Fs
bGJhY2soSlNPYmplY3QqIGNhbGxiYWNrLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
KQotICAgIDogbV9kYXRhKG5ldyBKU0NhbGxiYWNrRGF0YShjYWxsYmFjaywgZ2xvYmFsT2JqZWN0
KSkKLSAgICAsIG1faXNvbGF0ZWRXb3JsZChnbG9iYWxPYmplY3QtPndvcmxkKCkpCi17Ci19Ci0K
LUpTRGF0YWJhc2VDYWxsYmFjazo6fkpTRGF0YWJhc2VDYWxsYmFjaygpCi17Ci0gICAgY2FsbE9u
TWFpblRocmVhZChKU0NhbGxiYWNrRGF0YTo6ZGVsZXRlRGF0YSwgbV9kYXRhKTsKLSNpZm5kZWYg
TkRFQlVHCi0gICAgbV9kYXRhID0gMDsKLSNlbmRpZgotfQotCi12b2lkIEpTRGF0YWJhc2VDYWxs
YmFjazo6aGFuZGxlRXZlbnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgRGF0YWJh
c2UqIGRhdGFiYXNlKQotewotICAgIEFTU0VSVChtX2RhdGEpOwotICAgIEFTU0VSVChjb250ZXh0
KTsKLQotICAgIFJlZlB0cjxKU0RhdGFiYXNlQ2FsbGJhY2s+IHByb3RlY3QodGhpcyk7Ci0KLSAg
ICBKU0M6OkpTTG9jayBsb2NrKFNpbGVuY2VBc3NlcnRpb25zT25seSk7Ci0KLSAgICBKU0RPTUds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gdG9KU0RPTUdsb2JhbE9iamVjdChjb250ZXh0LCBt
X2lzb2xhdGVkV29ybGQuZ2V0KCkpOwotICAgIGlmICghZ2xvYmFsT2JqZWN0KQotICAgICAgICBy
ZXR1cm47Ci0KLSAgICBFeGVjU3RhdGUqIGV4ZWMgPSBnbG9iYWxPYmplY3QtPmdsb2JhbEV4ZWMo
KTsKLSAgICBNYXJrZWRBcmd1bWVudEJ1ZmZlciBhcmdzOwotICAgIGFyZ3MuYXBwZW5kKHRvSlMo
ZXhlYywgZGF0YWJhc2UpKTsKLQotICAgIGJvb2wgaWdub3JlZDsKLSAgICBtX2RhdGEtPmludm9r
ZUNhbGxiYWNrKGFyZ3MsICZpZ25vcmVkKTsKLX0KLQotfQotCi0jZW5kaWYgLy8gRU5BQkxFKERB
VEFCQVNFKQpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RhdGFiYXNlQ2FsbGJhY2suaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTRGF0YWJhc2VDYWxsYmFjay5oCShy
ZXZpc2lvbiA1ODc0NykKKysrIFdlYkNvcmUvYmluZGluZ3MvanMvSlNEYXRhYmFzZUNhbGxiYWNr
LmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNjYgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAot
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zIGFyZQotICogbWV0OgotICoKLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0g
KiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0gKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0gKiBkaXN0cmlidXRpb24uCi0gKiAg
ICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRz
Ci0gKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1
Y3RzIGRlcml2ZWQgZnJvbQotICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9y
IHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotICog
TElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
Ci0gKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgSlNEYXRhYmFzZUNhbGxi
YWNrX2gKLSNkZWZpbmUgSlNEYXRhYmFzZUNhbGxiYWNrX2gKLQotI2lmIEVOQUJMRShEQVRBQkFT
RSkKLQotI2luY2x1ZGUgIkRhdGFiYXNlQ2FsbGJhY2suaCIKLSNpbmNsdWRlICJKU0NhbGxiYWNr
RGF0YS5oIgotI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsK
LQotY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKLQotY2xhc3MgSlNEYXRhYmFzZUNhbGxi
YWNrIDogcHVibGljIERhdGFiYXNlQ2FsbGJhY2sgewotcHVibGljOgotICAgIHN0YXRpYyBQYXNz
UmVmUHRyPEpTRGF0YWJhc2VDYWxsYmFjaz4gY3JlYXRlKEpTQzo6SlNPYmplY3QqIGNhbGxiYWNr
LCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQotICAgIHsKLSAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKG5ldyBKU0RhdGFiYXNlQ2FsbGJhY2soY2FsbGJhY2ssIGdsb2JhbE9iamVjdCkp
OwotICAgIH0KLQotICAgIHZpcnR1YWwgfkpTRGF0YWJhc2VDYWxsYmFjaygpOwotCi0gICAgdmly
dHVhbCB2b2lkIGhhbmRsZUV2ZW50KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBEYXRhYmFzZSop
OwotCi1wcml2YXRlOgotICAgIEpTRGF0YWJhc2VDYWxsYmFjayhKU0M6OkpTT2JqZWN0KiBjYWxs
YmFjaywgSlNET01HbG9iYWxPYmplY3QqKTsKLQotICAgIEpTQ2FsbGJhY2tEYXRhKiBtX2RhdGE7
Ci0gICAgUmVmUHRyPERPTVdyYXBwZXJXb3JsZD4gbV9pc29sYXRlZFdvcmxkOwotfTsKLQotfQot
Ci0jZW5kaWYgLy8gRU5BQkxFKERBVEFCQVNFKQotCi0jZW5kaWYgLy8gSlNEYXRhYmFzZUNhbGxi
YWNrX2gKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvanMvSlNEYXRhYmFzZUN1c3RvbS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RhdGFiYXNlQ3VzdG9tLmNwcAkocmV2
aXNpb24gNTg3NDcpCisrKyBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTRGF0YWJhc2VDdXN0b20uY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0zNSw4ICszNSw4IEBACiAjaW5jbHVkZSAiRGF0YWJhc2UuaCIK
ICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKLSNpbmNs
dWRlICJKU0N1c3RvbVNRTFRyYW5zYWN0aW9uQ2FsbGJhY2suaCIKLSNpbmNsdWRlICJKU0N1c3Rv
bVNRTFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFjay5oIgorI2luY2x1ZGUgIkpTU1FMVHJhbnNhY3Rp
b25DYWxsYmFjay5oIgorI2luY2x1ZGUgIkpTU1FMVHJhbnNhY3Rpb25FcnJvckNhbGxiYWNrLmgi
CiAjaW5jbHVkZSAiSlNDdXN0b21Wb2lkQ2FsbGJhY2suaCIKICNpbmNsdWRlICJKU0RPTVdpbmRv
d0N1c3RvbS5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCkBAIC01OCw3ICs1OCw3IEBA
IEpTVmFsdWUgSlNEYXRhYmFzZTo6Y2hhbmdlVmVyc2lvbihFeGVjU3QKICAgICAgICAgcmV0dXJu
IGpzVW5kZWZpbmVkKCk7CiAgICAgfQogICAgIAotICAgIFJlZlB0cjxTUUxUcmFuc2FjdGlvbkNh
bGxiYWNrPiBjYWxsYmFjayhKU0N1c3RvbVNRTFRyYW5zYWN0aW9uQ2FsbGJhY2s6OmNyZWF0ZShv
YmplY3QsIHN0YXRpY19jYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZXhlYy0+ZHluYW1pY0dsb2Jh
bE9iamVjdCgpKSkpOworICAgIFJlZlB0cjxTUUxUcmFuc2FjdGlvbkNhbGxiYWNrPiBjYWxsYmFj
ayhKU1NRTFRyYW5zYWN0aW9uQ2FsbGJhY2s6OmNyZWF0ZShvYmplY3QsIHN0YXRpY19jYXN0PEpT
RE9NR2xvYmFsT2JqZWN0Kj4oZXhlYy0+ZHluYW1pY0dsb2JhbE9iamVjdCgpKSkpOwogICAgIAog
ICAgIFJlZlB0cjxTUUxUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2s+IGVycm9yQ2FsbGJhY2s7CiAg
ICAgaWYgKCFhcmdzLmF0KDMpLmlzTnVsbCgpKSB7CkBAIC02Nyw3ICs2Nyw3IEBAIEpTVmFsdWUg
SlNEYXRhYmFzZTo6Y2hhbmdlVmVyc2lvbihFeGVjU3QKICAgICAgICAgICAgIHJldHVybiBqc1Vu
ZGVmaW5lZCgpOwogICAgICAgICB9CiAgICAgICAgIAotICAgICAgICBlcnJvckNhbGxiYWNrID0g
SlNDdXN0b21TUUxUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2s6OmNyZWF0ZShvYmplY3QsIHN0YXRp
Y19jYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZXhlYy0+ZHluYW1pY0dsb2JhbE9iamVjdCgpKSk7
CisgICAgICAgIGVycm9yQ2FsbGJhY2sgPSBKU1NRTFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFjazo6
Y3JlYXRlKG9iamVjdCwgc3RhdGljX2Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihleGVjLT5keW5h
bWljR2xvYmFsT2JqZWN0KCkpKTsKICAgICB9CiAgICAgCiAgICAgUmVmUHRyPFZvaWRDYWxsYmFj
az4gc3VjY2Vzc0NhbGxiYWNrOwpAQCAtOTQsMTYgKzk0LDE1IEBAIHN0YXRpYyBKU1ZhbHVlIGNy
ZWF0ZVRyYW5zYWN0aW9uKEV4ZWNTdGEKICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CiAg
ICAgfSAgICAgICAgCiAgICAgIAotICAgIFJlZlB0cjxTUUxUcmFuc2FjdGlvbkNhbGxiYWNrPiBj
YWxsYmFjayhKU0N1c3RvbVNRTFRyYW5zYWN0aW9uQ2FsbGJhY2s6OmNyZWF0ZShvYmplY3QsIGds
b2JhbE9iamVjdCkpOworICAgIFJlZlB0cjxTUUxUcmFuc2FjdGlvbkNhbGxiYWNrPiBjYWxsYmFj
ayhKU1NRTFRyYW5zYWN0aW9uQ2FsbGJhY2s6OmNyZWF0ZShvYmplY3QsIGdsb2JhbE9iamVjdCkp
OwogICAgIFJlZlB0cjxTUUxUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2s+IGVycm9yQ2FsbGJhY2s7
Ci0gICAgCiAgICAgaWYgKGFyZ3Muc2l6ZSgpID4gMSAmJiAhYXJncy5hdCgxKS5pc051bGwoKSkg
ewogICAgICAgICBpZiAoIShvYmplY3QgPSBhcmdzLmF0KDEpLmdldE9iamVjdCgpKSkgewogICAg
ICAgICAgICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMsIFRZUEVfTUlTTUFUQ0hfRVJSKTsKICAgICAg
ICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwogICAgICAgICB9CiAKLSAgICAgICAgZXJyb3JD
YWxsYmFjayA9IEpTQ3VzdG9tU1FMVHJhbnNhY3Rpb25FcnJvckNhbGxiYWNrOjpjcmVhdGUob2Jq
ZWN0LCBnbG9iYWxPYmplY3QpOworICAgICAgICBlcnJvckNhbGxiYWNrID0gSlNTUUxUcmFuc2Fj
dGlvbkVycm9yQ2FsbGJhY2s6OmNyZWF0ZShvYmplY3QsIGdsb2JhbE9iamVjdCk7CiAgICAgfQog
CiAgICAgUmVmUHRyPFZvaWRDYWxsYmFjaz4gc3VjY2Vzc0NhbGxiYWNrOwpJbmRleDogV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU1NRTFRyYW5zYWN0aW9uQ3VzdG9tLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTU1FMVHJhbnNhY3Rpb25DdXN0b20uY3BwCShyZXZpc2lvbiA1
ODc0NykKKysrIFdlYkNvcmUvYmluZGluZ3MvanMvSlNTUUxUcmFuc2FjdGlvbkN1c3RvbS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTMzLDggKzMzLDggQEAKIAogI2luY2x1ZGUgIkRPTVdpbmRvdy5o
IgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKLSNpbmNsdWRlICJKU0N1c3RvbVNRTFN0YXRl
bWVudENhbGxiYWNrLmgiCi0jaW5jbHVkZSAiSlNDdXN0b21TUUxTdGF0ZW1lbnRFcnJvckNhbGxi
YWNrLmgiCisjaW5jbHVkZSAiSlNTUUxTdGF0ZW1lbnRDYWxsYmFjay5oIgorI2luY2x1ZGUgIkpT
U1FMU3RhdGVtZW50RXJyb3JDYWxsYmFjay5oIgogI2luY2x1ZGUgIkpTRE9NV2luZG93Q3VzdG9t
LmgiCiAjaW5jbHVkZSAiU1FMVHJhbnNhY3Rpb24uaCIKIApAQCAtOTUsNyArOTUsNyBAQCBKU1Zh
bHVlIEpTU1FMVHJhbnNhY3Rpb246OmV4ZWN1dGVTcWwoRXhlCiAgICAgICAgICAgICByZXR1cm4g
anNVbmRlZmluZWQoKTsKICAgICAgICAgfQogICAgICAgICAKLSAgICAgICAgY2FsbGJhY2sgPSBK
U0N1c3RvbVNRTFN0YXRlbWVudENhbGxiYWNrOjpjcmVhdGUob2JqZWN0LCBzdGF0aWNfY2FzdDxK
U0RPTUdsb2JhbE9iamVjdCo+KGV4ZWMtPmR5bmFtaWNHbG9iYWxPYmplY3QoKSkpOworICAgICAg
ICBjYWxsYmFjayA9IEpTU1FMU3RhdGVtZW50Q2FsbGJhY2s6OmNyZWF0ZShvYmplY3QsIHN0YXRp
Y19jYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZXhlYy0+ZHluYW1pY0dsb2JhbE9iamVjdCgpKSk7
CiAgICAgfQogICAgIAogICAgIFJlZlB0cjxTUUxTdGF0ZW1lbnRFcnJvckNhbGxiYWNrPiBlcnJv
ckNhbGxiYWNrOwpAQCAtMTA2LDcgKzEwNiw3IEBAIEpTVmFsdWUgSlNTUUxUcmFuc2FjdGlvbjo6
ZXhlY3V0ZVNxbChFeGUKICAgICAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwogICAgICAg
ICB9CiAgICAgICAgIAotICAgICAgICBlcnJvckNhbGxiYWNrID0gSlNDdXN0b21TUUxTdGF0ZW1l
bnRFcnJvckNhbGxiYWNrOjpjcmVhdGUob2JqZWN0LCBzdGF0aWNfY2FzdDxKU0RPTUdsb2JhbE9i
amVjdCo+KGV4ZWMtPmR5bmFtaWNHbG9iYWxPYmplY3QoKSkpOworICAgICAgICBlcnJvckNhbGxi
YWNrID0gSlNTUUxTdGF0ZW1lbnRFcnJvckNhbGxiYWNrOjpjcmVhdGUob2JqZWN0LCBzdGF0aWNf
Y2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGV4ZWMtPmR5bmFtaWNHbG9iYWxPYmplY3QoKSkpOwog
ICAgIH0KICAgICAKICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKSW5kZXg6IFdlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQkocmV2aXNpb24gNTg3NDcpCisrKyBX
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCSh3b3JraW5nIGNvcHkp
CkBAIC0xOTIsNiArMTkyLDcgQEAgc3ViIEluZGV4R2V0dGVyUmV0dXJuc1N0cmluZ3MKIHN1YiBB
ZGRJbmNsdWRlc0ZvclR5cGUKIHsKICAgICBteSAkdHlwZSA9ICRjb2RlR2VuZXJhdG9yLT5TdHJp
cE1vZHVsZShzaGlmdCk7CisgICAgbXkgJGlzQ2FsbGJhY2sgPSBAXyA/IHNoaWZ0IDogMDsKIAog
ICAgICMgV2hlbiB3ZSdyZSBmaW5pc2hlZCB3aXRoIHRoZSBvbmUtZmlsZS1wZXItY2xhc3MKICAg
ICAjIHJlb3JnYW5pemF0aW9uLCB3ZSB3b24ndCBuZWVkIHRoZXNlIHNwZWNpYWwgY2FzZXMuCkBA
IC0yMDQsNiArMjA1LDggQEAgc3ViIEFkZEluY2x1ZGVzRm9yVHlwZQogICAgIH0gZWxzaWYgKCR0
eXBlIGVxICJYUGF0aE5TUmVzb2x2ZXIiKSB7CiAgICAgICAgICRpbXBsSW5jbHVkZXN7IkpTWFBh
dGhOU1Jlc29sdmVyLmgifSA9IDE7CiAgICAgICAgICRpbXBsSW5jbHVkZXN7IkpTQ3VzdG9tWFBh
dGhOU1Jlc29sdmVyLmgifSA9IDE7CisgICAgfSBlbHNpZiAoJGlzQ2FsbGJhY2spIHsKKyAgICAg
ICAgJGltcGxJbmNsdWRlc3siSlMke3R5cGV9LmgifSA9IDE7CiAgICAgfSBlbHNlIHsKICAgICAg
ICAgIyBkZWZhdWx0LCBpbmNsdWRlIHRoZSBzYW1lIG5hbWVkIGZpbGUKICAgICAgICAgJGltcGxJ
bmNsdWRlc3siJHt0eXBlfS5oIn0gPSAxOwpAQCAtMjAyNyw3ICsyMDMwLDcgQEAgc3ViIEdlbmVy
YXRlQ2FsbGJhY2tJbXBsZW1lbnRhdGlvbgogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICJcbiIgLiBHZXROYXRpdmVUeXBlKCRmdW5jdGlvbi0+c2lnbmF0dXJlLT50eXBlKSAuICIgJHtj
bGFzc05hbWV9OjoiIC4gJGZ1bmN0aW9uLT5zaWduYXR1cmUtPm5hbWUgLiAiKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqIGNvbnRleHQiKTsKIAogICAgICAgICAgICAgZm9yZWFjaCBteSAkcGFyYW0g
KEBwYXJhbXMpIHsKLSAgICAgICAgICAgICAgICBBZGRJbmNsdWRlc0ZvclR5cGUoJHBhcmFtLT50
eXBlKTsKKyAgICAgICAgICAgICAgICBBZGRJbmNsdWRlc0ZvclR5cGUoJHBhcmFtLT50eXBlLCAx
KTsKICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiwgIiAuIEdldE5hdGl2ZVR5
cGUoJHBhcmFtLT50eXBlKSAuICIgIiAuICRwYXJhbS0+bmFtZSk7CiAgICAgICAgICAgICB9CiAK
SW5kZXg6IFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENhbGxiYWNrLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RD
YWxsYmFjay5jcHAJKHJldmlzaW9uIDU4NzQ3KQorKysgV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0Q2FsbGJhY2suY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNCw4ICsyNCw4
IEBACiAKICNpbmNsdWRlICJKU1Rlc3RDYWxsYmFjay5oIgogCi0jaW5jbHVkZSAiQ2xhc3MxLmgi
Ci0jaW5jbHVkZSAiQ2xhc3MyLmgiCisjaW5jbHVkZSAiSlNDbGFzczEuaCIKKyNpbmNsdWRlICJK
U0NsYXNzMi5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKICNpbmNsdWRl
IDxydW50aW1lL0pTTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CkluZGV4OiBX
ZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEN1c3RvbVNRTFN0YXRlbWVudENhbGxiYWNrLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEN1c3RvbVNRTFN0
YXRlbWVudENhbGxiYWNrLmNwcAkocmV2aXNpb24gNTg3NDcpCisrKyBXZWJDb3JlL2JpbmRpbmdz
L3Y4L2N1c3RvbS9WOEN1c3RvbVNRTFN0YXRlbWVudENhbGxiYWNrLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMSw4MSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA5IEdvb2dsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiAKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFy
ZQotICogbWV0OgotICogCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogICAgICogUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotICogY29w
eXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lcgotICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZQotICogZGlzdHJpYnV0aW9uLgotICogICAgICogTmVpdGhlciB0
aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotICogY29udHJpYnV0
b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZy
b20KLSAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1p
c3Npb24uCi0gKiAKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdI
VCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IK
LSAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBUSEUgQ09QWVJJR0hUCi0gKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLAotICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotCi0jaWYgRU5BQkxFKERB
VEFCQVNFKQotCi0jaW5jbHVkZSAiVjhDdXN0b21TUUxTdGF0ZW1lbnRDYWxsYmFjay5oIgotCi0j
aW5jbHVkZSAiRnJhbWUuaCIKLSNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCi0j
aW5jbHVkZSAiVjhDdXN0b21Wb2lkQ2FsbGJhY2suaCIKLSNpbmNsdWRlICJWOFNRTFJlc3VsdFNl
dC5oIgotI2luY2x1ZGUgIlY4U1FMVHJhbnNhY3Rpb24uaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUg
ewotCi1WOEN1c3RvbVNRTFN0YXRlbWVudENhbGxiYWNrOjpWOEN1c3RvbVNRTFN0YXRlbWVudENh
bGxiYWNrKHY4OjpMb2NhbDx2ODo6T2JqZWN0PiBjYWxsYmFjaywgRnJhbWUqIGZyYW1lKQotICAg
IDogbV9jYWxsYmFjayh2ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0Pjo6TmV3KGNhbGxiYWNrKSkK
LSAgICAsIG1fZnJhbWUoZnJhbWUpCi0gICAgLCBtX3dvcmxkQ29udGV4dChVc2VDdXJyZW50V29y
bGQpCi17Ci19Ci0KLVY4Q3VzdG9tU1FMU3RhdGVtZW50Q2FsbGJhY2s6On5WOEN1c3RvbVNRTFN0
YXRlbWVudENhbGxiYWNrKCkKLXsKLSAgICBtX2NhbGxiYWNrLkRpc3Bvc2UoKTsKLX0KLQotdm9p
ZCBWOEN1c3RvbVNRTFN0YXRlbWVudENhbGxiYWNrOjpoYW5kbGVFdmVudChTY3JpcHRFeGVjdXRp
b25Db250ZXh0KiBjb250ZXh0LCBTUUxUcmFuc2FjdGlvbiogdHJhbnNhY3Rpb24sIFNRTFJlc3Vs
dFNldCogcmVzdWx0U2V0LCBib29sJiByYWlzZWRFeGNlcHRpb24pCi17Ci0gICAgdjg6OkhhbmRs
ZVNjb3BlIGhhbmRsZVNjb3BlOwotCi0gICAgdjg6OkhhbmRsZTx2ODo6Q29udGV4dD4gdjhDb250
ZXh0ID0gdG9WOENvbnRleHQoY29udGV4dCwgbV93b3JsZENvbnRleHQpOwotICAgIGlmICh2OENv
bnRleHQuSXNFbXB0eSgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICB2ODo6Q29udGV4dDo6U2Nv
cGUgc2NvcGUodjhDb250ZXh0KTsKLQotICAgIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBhcmd2W10g
PSB7Ci0gICAgICAgIHRvVjgodHJhbnNhY3Rpb24pLAotICAgICAgICB0b1Y4KHJlc3VsdFNldCkK
LSAgICB9OwotCi0gICAgLy8gUHJvdGVjdCB0aGUgZnJhbWUgdW50aWwgdGhlIGNhbGxiYWNrIHJl
dHVybnMuCi0gICAgUmVmUHRyPEZyYW1lPiBwcm90ZWN0b3IobV9mcmFtZSk7Ci0KLSAgICBib29s
IGNhbGxiYWNrUmV0dXJuVmFsdWUgPSBmYWxzZTsKLSAgICByYWlzZWRFeGNlcHRpb24gPSBpbnZv
a2VDYWxsYmFjayhtX2NhbGxiYWNrLCAyLCBhcmd2LCBjYWxsYmFja1JldHVyblZhbHVlKTsKLX0K
LQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYKSW5kZXg6IFdlYkNvcmUvYmluZGlu
Z3MvdjgvY3VzdG9tL1Y4Q3VzdG9tU1FMU3RhdGVtZW50Q2FsbGJhY2suaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEN1c3RvbVNRTFN0YXRlbWVudENhbGxiYWNr
LmgJKHJldmlzaW9uIDU4NzQ3KQorKysgV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhDdXN0
b21TUUxTdGF0ZW1lbnRDYWxsYmFjay5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDY3ICswLDAgQEAK
LS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDkgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KLSAqIAotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0gKiBtZXQ6Ci0gKiAKLSAq
ICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0gKiBpbiB0
aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
Ci0gKiBkaXN0cmlidXRpb24uCi0gKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJ
bmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0gKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8g
ZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotICogdGhpcyBzb2Z0d2Fy
ZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqIAotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRS
SUJVVE9SUwotICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAq
IE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLAotICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwot
Ci0jaWZuZGVmIFY4Q3VzdG9tU1FMU3RhdGVtZW50Q2FsbGJhY2tfaAotI2RlZmluZSBWOEN1c3Rv
bVNRTFN0YXRlbWVudENhbGxiYWNrX2gKLQotI2lmIEVOQUJMRShEQVRBQkFTRSkKLQotI2luY2x1
ZGUgIlNRTFN0YXRlbWVudENhbGxiYWNrLmgiCi0jaW5jbHVkZSAiV29ybGRDb250ZXh0SGFuZGxl
LmgiCi0jaW5jbHVkZSA8djguaD4KLSNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgotCi1uYW1lc3Bh
Y2UgV2ViQ29yZSB7Ci0KLWNsYXNzIEZyYW1lOwotCi1jbGFzcyBWOEN1c3RvbVNRTFN0YXRlbWVu
dENhbGxiYWNrIDogcHVibGljIFNRTFN0YXRlbWVudENhbGxiYWNrIHsKLXB1YmxpYzoKLSAgICBz
dGF0aWMgUGFzc1JlZlB0cjxWOEN1c3RvbVNRTFN0YXRlbWVudENhbGxiYWNrPiBjcmVhdGUodjg6
OkxvY2FsPHY4OjpWYWx1ZT4gdmFsdWUsIEZyYW1lKiBmcmFtZSkKLSAgICB7Ci0gICAgICAgIEFT
U0VSVCh2YWx1ZS0+SXNPYmplY3QoKSk7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgVjhD
dXN0b21TUUxTdGF0ZW1lbnRDYWxsYmFjayh2YWx1ZS0+VG9PYmplY3QoKSwgZnJhbWUpKTsKLSAg
ICB9Ci0gICAgdmlydHVhbCB+VjhDdXN0b21TUUxTdGF0ZW1lbnRDYWxsYmFjaygpOwotCi0gICAg
dmlydHVhbCB2b2lkIGhhbmRsZUV2ZW50KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBTUUxUcmFu
c2FjdGlvbiosIFNRTFJlc3VsdFNldCosIGJvb2wmIHJhaXNlZEV4Y2VwdGlvbik7Ci1wcml2YXRl
OgotICAgIFY4Q3VzdG9tU1FMU3RhdGVtZW50Q2FsbGJhY2sodjg6OkxvY2FsPHY4OjpPYmplY3Q+
LCBGcmFtZSopOwotCi0gICAgdjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD4gbV9jYWxsYmFjazsK
LSAgICBSZWZQdHI8RnJhbWU+IG1fZnJhbWU7Ci0gICAgV29ybGRDb250ZXh0SGFuZGxlIG1fd29y
bGRDb250ZXh0OwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYKLQotI2Vu
ZGlmIC8vIFY4Q3VzdG9tU1FMU3RhdGVtZW50Q2FsbGJhY2tfaApJbmRleDogV2ViQ29yZS9iaW5k
aW5ncy92OC9jdXN0b20vVjhDdXN0b21TUUxTdGF0ZW1lbnRFcnJvckNhbGxiYWNrLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEN1c3RvbVNRTFN0YXRlbWVu
dEVycm9yQ2FsbGJhY2suY3BwCShyZXZpc2lvbiA1ODc0NykKKysrIFdlYkNvcmUvYmluZGluZ3Mv
djgvY3VzdG9tL1Y4Q3VzdG9tU1FMU3RhdGVtZW50RXJyb3JDYWxsYmFjay5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTMyLDcgKzMyLDcgQEAKIAogI2lmIEVOQUJMRShEQVRBQkFTRSkKIAotI2luY2x1
ZGUgIlY4Q3VzdG9tU1FMU3RhdGVtZW50RXJyb3JDYWxsYmFjay5oIgorI2luY2x1ZGUgIlY4U1FM
U3RhdGVtZW50RXJyb3JDYWxsYmFjay5oIgogCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRl
ICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCkBAIC00MiwxOSArNDIsNyBAQAogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKLVY4Q3VzdG9tU1FMU3RhdGVtZW50RXJyb3JDYWxsYmFjazo6VjhDdXN0
b21TUUxTdGF0ZW1lbnRFcnJvckNhbGxiYWNrKHY4OjpMb2NhbDx2ODo6T2JqZWN0PiBjYWxsYmFj
aywgRnJhbWUqIGZyYW1lKQotICAgIDogbV9jYWxsYmFjayh2ODo6UGVyc2lzdGVudDx2ODo6T2Jq
ZWN0Pjo6TmV3KGNhbGxiYWNrKSkKLSAgICAsIG1fZnJhbWUoZnJhbWUpCi0gICAgLCBtX3dvcmxk
Q29udGV4dChVc2VDdXJyZW50V29ybGQpCi17Ci19Ci0KLVY4Q3VzdG9tU1FMU3RhdGVtZW50RXJy
b3JDYWxsYmFjazo6flY4Q3VzdG9tU1FMU3RhdGVtZW50RXJyb3JDYWxsYmFjaygpCi17Ci0gICAg
bV9jYWxsYmFjay5EaXNwb3NlKCk7Ci19Ci0KLWJvb2wgVjhDdXN0b21TUUxTdGF0ZW1lbnRFcnJv
ckNhbGxiYWNrOjpoYW5kbGVFdmVudChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBT
UUxUcmFuc2FjdGlvbiogdHJhbnNhY3Rpb24sIFNRTEVycm9yKiBlcnJvcikKK2Jvb2wgVjhTUUxT
dGF0ZW1lbnRFcnJvckNhbGxiYWNrOjpoYW5kbGVFdmVudChTY3JpcHRFeGVjdXRpb25Db250ZXh0
KiBjb250ZXh0LCBTUUxUcmFuc2FjdGlvbiogdHJhbnNhY3Rpb24sIFNRTEVycm9yKiBlcnJvcikK
IHsKICAgICB2ODo6SGFuZGxlU2NvcGUgaGFuZGxlU2NvcGU7CiAKSW5kZXg6IFdlYkNvcmUvYmlu
ZGluZ3MvdjgvY3VzdG9tL1Y4Q3VzdG9tU1FMU3RhdGVtZW50RXJyb3JDYWxsYmFjay5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4Q3VzdG9tU1FMU3RhdGVtZW50
RXJyb3JDYWxsYmFjay5oCShyZXZpc2lvbiA1ODc0NykKKysrIFdlYkNvcmUvYmluZGluZ3Mvdjgv
Y3VzdG9tL1Y4Q3VzdG9tU1FMU3RhdGVtZW50RXJyb3JDYWxsYmFjay5oCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDY4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDkgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIAotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJl
Ci0gKiBtZXQ6Ci0gKiAKLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiBjb3B5
cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyCi0gKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlCi0gKiBkaXN0cmlidXRpb24uCi0gKiAgICAgKiBOZWl0aGVyIHRo
ZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0gKiBjb250cmlidXRv
cnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJv
bQotICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlz
c2lvbi4KLSAqIAotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hU
IEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgot
ICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIFY4Q3VzdG9tU1FMU3RhdGVtZW50RXJyb3JDYWxs
YmFja19oCi0jZGVmaW5lIFY4Q3VzdG9tU1FMU3RhdGVtZW50RXJyb3JDYWxsYmFja19oCi0KLSNp
ZiBFTkFCTEUoREFUQUJBU0UpCi0KLSNpbmNsdWRlICJTUUxTdGF0ZW1lbnRFcnJvckNhbGxiYWNr
LmgiCi0jaW5jbHVkZSAiV29ybGRDb250ZXh0SGFuZGxlLmgiCi0jaW5jbHVkZSA8djguaD4KLSNp
bmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgotI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KLQotbmFt
ZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBGcmFtZTsKLQotY2xhc3MgVjhDdXN0b21TUUxTdGF0
ZW1lbnRFcnJvckNhbGxiYWNrIDogcHVibGljIFNRTFN0YXRlbWVudEVycm9yQ2FsbGJhY2sgewot
cHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFY4Q3VzdG9tU1FMU3RhdGVtZW50RXJyb3JD
YWxsYmFjaz4gY3JlYXRlKHY4OjpMb2NhbDx2ODo6VmFsdWU+IHZhbHVlLCBGcmFtZSogZnJhbWUp
Ci0gICAgewotICAgICAgICBBU1NFUlQodmFsdWUtPklzT2JqZWN0KCkpOwotICAgICAgICByZXR1
cm4gYWRvcHRSZWYobmV3IFY4Q3VzdG9tU1FMU3RhdGVtZW50RXJyb3JDYWxsYmFjayh2YWx1ZS0+
VG9PYmplY3QoKSwgZnJhbWUpKTsKLSAgICB9Ci0gICAgdmlydHVhbCB+VjhDdXN0b21TUUxTdGF0
ZW1lbnRFcnJvckNhbGxiYWNrKCk7Ci0KLSAgICB2aXJ0dWFsIGJvb2wgaGFuZGxlRXZlbnQoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCosIFNRTFRyYW5zYWN0aW9uKiwgU1FMRXJyb3IqKTsKLXByaXZh
dGU6Ci0gICAgVjhDdXN0b21TUUxTdGF0ZW1lbnRFcnJvckNhbGxiYWNrKHY4OjpMb2NhbDx2ODo6
T2JqZWN0PiwgRnJhbWUqKTsKLQotICAgIHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+IG1fY2Fs
bGJhY2s7Ci0gICAgUmVmUHRyPEZyYW1lPiBtX2ZyYW1lOwotICAgIFdvcmxkQ29udGV4dEhhbmRs
ZSBtX3dvcmxkQ29udGV4dDsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlm
Ci0KLSNlbmRpZiAvLyBWOEN1c3RvbVNRTFN0YXRlbWVudEVycm9yQ2FsbGJhY2tfaApJbmRleDog
V2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhDdXN0b21TUUxUcmFuc2FjdGlvbkNhbGxiYWNr
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEN1c3RvbVNR
TFRyYW5zYWN0aW9uQ2FsbGJhY2suY3BwCShyZXZpc2lvbiA1ODc0NykKKysrIFdlYkNvcmUvYmlu
ZGluZ3MvdjgvY3VzdG9tL1Y4Q3VzdG9tU1FMVHJhbnNhY3Rpb25DYWxsYmFjay5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTEsODMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoYykgMjAwOSwgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIAotICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMgYXJlCi0gKiBtZXQ6Ci0gKiAKLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
Ci0gKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyCi0gKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0gKiBkaXN0cmlidXRpb24uCi0gKiAgICAgKiBO
ZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0gKiBj
b250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRl
cml2ZWQgZnJvbQotICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0
ZW4gcGVybWlzc2lvbi4KLSAqIAotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUg
Q09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFTIElTIiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotICogU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotICog
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0KLSNpZiBF
TkFCTEUoREFUQUJBU0UpCi0KLSNpbmNsdWRlICJWOEN1c3RvbVNRTFRyYW5zYWN0aW9uQ2FsbGJh
Y2suaCIKLQotI2luY2x1ZGUgIkZyYW1lLmgiCi0jaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dC5oIgotI2luY2x1ZGUgIlY4Q3VzdG9tVm9pZENhbGxiYWNrLmgiCi0jaW5jbHVkZSAiVjhT
UUxUcmFuc2FjdGlvbi5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLVY4Q3VzdG9tU1FMVHJh
bnNhY3Rpb25DYWxsYmFjazo6VjhDdXN0b21TUUxUcmFuc2FjdGlvbkNhbGxiYWNrKHY4OjpMb2Nh
bDx2ODo6T2JqZWN0PiBjYWxsYmFjaywgRnJhbWUqIGZyYW1lKQotICAgIDogbV9jYWxsYmFjayh2
ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0Pjo6TmV3KGNhbGxiYWNrKSkKLSAgICAsIG1fZnJhbWUo
ZnJhbWUpCi0gICAgLCBtX3dvcmxkQ29udGV4dChVc2VDdXJyZW50V29ybGQpCi17Ci19Ci0KLVY4
Q3VzdG9tU1FMVHJhbnNhY3Rpb25DYWxsYmFjazo6flY4Q3VzdG9tU1FMVHJhbnNhY3Rpb25DYWxs
YmFjaygpCi17Ci0gICAgbV9jYWxsYmFjay5EaXNwb3NlKCk7Ci19Ci0KLQotdm9pZCBWOEN1c3Rv
bVNRTFRyYW5zYWN0aW9uQ2FsbGJhY2s6OmhhbmRsZUV2ZW50KFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqIGNvbnRleHQsIFNRTFRyYW5zYWN0aW9uKiB0cmFuc2FjdGlvbiwgYm9vbCYgcmFpc2VkRXhj
ZXB0aW9uKQotewotICAgIHY4OjpIYW5kbGVTY29wZSBoYW5kbGVTY29wZTsKLQotICAgIHY4OjpI
YW5kbGU8djg6OkNvbnRleHQ+IHY4Q29udGV4dCA9IHRvVjhDb250ZXh0KGNvbnRleHQsIG1fd29y
bGRDb250ZXh0KTsKLSAgICBpZiAodjhDb250ZXh0LklzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJu
OwotCi0gICAgdjg6OkNvbnRleHQ6OlNjb3BlIHNjb3BlKHY4Q29udGV4dCk7Ci0KLSAgICB2ODo6
SGFuZGxlPHY4OjpWYWx1ZT4gYXJndltdID0gewotICAgICAgICB0b1Y4KHRyYW5zYWN0aW9uKQot
ICAgIH07Ci0KLSAgICAvLyBQcm90ZWN0IHRoZSBmcmFtZSB1bnRpbCB0aGUgY2FsbGJhY2sgcmV0
dXJucy4KLSAgICBSZWZQdHI8RnJhbWU+IHByb3RlY3RvcihtX2ZyYW1lKTsKLQotICAgIC8vIFN0
ZXAgNTogSWYgdGhlIGNhbGxiYWNrIGNvdWxkbid0IGJlIGNhbGxlZCAoZS5nLiBpdCB3YXMgbnVs
bCkgb3IgaWYKLSAgICAvLyB0aGUgY2FsbGJhY2sgd2FzIGludm9rZWQgYW5kIHJhaXNlZCBhbiBl
eGNlcHRpb24sIGp1bXAgdG8gdGhlIGxhc3QKLSAgICAvLyBzdGVwIChyb2xsYmFjayB0cmFuc2Fj
dGlvbikuCi0gICAgYm9vbCBjYWxsYmFja1JldHVyblZhbHVlID0gZmFsc2U7Ci0gICAgcmFpc2Vk
RXhjZXB0aW9uID0gaW52b2tlQ2FsbGJhY2sobV9jYWxsYmFjaywgMSwgYXJndiwgY2FsbGJhY2tS
ZXR1cm5WYWx1ZSk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmCkluZGV4
OiBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEN1c3RvbVNRTFRyYW5zYWN0aW9uQ2FsbGJh
Y2suaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEN1c3RvbVNR
TFRyYW5zYWN0aW9uQ2FsbGJhY2suaAkocmV2aXNpb24gNTg3NDcpCisrKyBXZWJDb3JlL2JpbmRp
bmdzL3Y4L2N1c3RvbS9WOEN1c3RvbVNRTFRyYW5zYWN0aW9uQ2FsbGJhY2suaAkod29ya2luZyBj
b3B5KQpAQCAtMSw2NyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA5IEdvb2dsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiAKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
IGFyZQotICogbWV0OgotICogCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogICAgICogUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotICog
Y29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lcgotICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogZGlzdHJpYnV0aW9uLgotICogICAgICogTmVpdGhl
ciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotICogY29udHJp
YnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVk
IGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBl
cm1pc3Npb24uCi0gKiAKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlS
SUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IKLSAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBUSEUgQ09QWVJJR0hUCi0gKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLAotICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
LSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBWOEN1c3RvbVNRTFRyYW5zYWN0aW9uQ2Fs
bGJhY2tfaAotI2RlZmluZSBWOEN1c3RvbVNRTFRyYW5zYWN0aW9uQ2FsbGJhY2tfaAotCi0jaWYg
RU5BQkxFKERBVEFCQVNFKQotCi0jaW5jbHVkZSAiU1FMVHJhbnNhY3Rpb25DYWxsYmFjay5oIgot
I2luY2x1ZGUgIldvcmxkQ29udGV4dEhhbmRsZS5oIgotI2luY2x1ZGUgPHY4Lmg+Ci0jaW5jbHVk
ZSA8d3RmL0ZvcndhcmQuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBGcmFtZTsK
LQotY2xhc3MgVjhDdXN0b21TUUxUcmFuc2FjdGlvbkNhbGxiYWNrIDogcHVibGljIFNRTFRyYW5z
YWN0aW9uQ2FsbGJhY2sgewotcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFY4Q3VzdG9t
U1FMVHJhbnNhY3Rpb25DYWxsYmFjaz4gY3JlYXRlKHY4OjpMb2NhbDx2ODo6VmFsdWU+IHZhbHVl
LCBGcmFtZSogZnJhbWUpCi0gICAgewotICAgICAgICBBU1NFUlQodmFsdWUtPklzT2JqZWN0KCkp
OwotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFY4Q3VzdG9tU1FMVHJhbnNhY3Rpb25DYWxs
YmFjayh2YWx1ZS0+VG9PYmplY3QoKSwgZnJhbWUpKTsKLSAgICB9Ci0gICAgdmlydHVhbCB+VjhD
dXN0b21TUUxUcmFuc2FjdGlvbkNhbGxiYWNrKCk7Ci0KLSAgICB2aXJ0dWFsIHZvaWQgaGFuZGxl
RXZlbnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFNRTFRyYW5zYWN0aW9uKiwgYm9vbCYgcmFp
c2VkRXhjZXB0aW9uKTsKLXByaXZhdGU6Ci0gICAgVjhDdXN0b21TUUxUcmFuc2FjdGlvbkNhbGxi
YWNrKHY4OjpMb2NhbDx2ODo6T2JqZWN0PiwgRnJhbWUqKTsKLQotICAgIHY4OjpQZXJzaXN0ZW50
PHY4OjpPYmplY3Q+IG1fY2FsbGJhY2s7Ci0gICAgUmVmUHRyPEZyYW1lPiBtX2ZyYW1lOwotICAg
IFdvcmxkQ29udGV4dEhhbmRsZSBtX3dvcmxkQ29udGV4dDsKLX07Ci0KLX0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKLQotI2VuZGlmCi0KLSNlbmRpZiAvLyBWOEN1c3RvbVNRTFRyYW5zYWN0aW9uQ2Fs
bGJhY2tfaApJbmRleDogV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhDdXN0b21TUUxUcmFu
c2FjdGlvbkVycm9yQ2FsbGJhY2suY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3Mv
djgvY3VzdG9tL1Y4Q3VzdG9tU1FMVHJhbnNhY3Rpb25FcnJvckNhbGxiYWNrLmNwcAkocmV2aXNp
b24gNTg3NDcpCisrKyBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEN1c3RvbVNRTFRyYW5z
YWN0aW9uRXJyb3JDYWxsYmFjay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNzkgKzAsMCBAQAot
LyoKLSAqIENvcHlyaWdodCAoYykgMjAwOSwgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KLSAqIAotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0gKiBtZXQ6Ci0gKiAKLSAq
ICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0gKiBpbiB0
aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
Ci0gKiBkaXN0cmlidXRpb24uCi0gKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJ
bmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0gKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8g
ZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotICogdGhpcyBzb2Z0d2Fy
ZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqIAotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRS
SUJVVE9SUwotICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAq
IE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLAotICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwot
Ci0jaW5jbHVkZSAiY29uZmlnLmgiCi0KLSNpZiBFTkFCTEUoREFUQUJBU0UpCi0KLSNpbmNsdWRl
ICJWOEN1c3RvbVNRTFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFjay5oIgotCi0jaW5jbHVkZSAiRnJh
bWUuaCIKLSNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCi0jaW5jbHVkZSAiVjhD
dXN0b21Wb2lkQ2FsbGJhY2suaCIKLSNpbmNsdWRlICJWOFNRTEVycm9yLmgiCi0KLW5hbWVzcGFj
ZSBXZWJDb3JlIHsKLQotVjhDdXN0b21TUUxUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2s6OlY4Q3Vz
dG9tU1FMVHJhbnNhY3Rpb25FcnJvckNhbGxiYWNrKHY4OjpMb2NhbDx2ODo6T2JqZWN0PiBjYWxs
YmFjaywgRnJhbWUqIGZyYW1lKQotICAgIDogbV9jYWxsYmFjayh2ODo6UGVyc2lzdGVudDx2ODo6
T2JqZWN0Pjo6TmV3KGNhbGxiYWNrKSkKLSAgICAsIG1fZnJhbWUoZnJhbWUpCi0gICAgLCBtX3dv
cmxkQ29udGV4dChVc2VDdXJyZW50V29ybGQpCi17Ci19Ci0KLVY4Q3VzdG9tU1FMVHJhbnNhY3Rp
b25FcnJvckNhbGxiYWNrOjp+VjhDdXN0b21TUUxUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2soKQot
ewotICAgIG1fY2FsbGJhY2suRGlzcG9zZSgpOwotfQotCi12b2lkIFY4Q3VzdG9tU1FMVHJhbnNh
Y3Rpb25FcnJvckNhbGxiYWNrOjpoYW5kbGVFdmVudChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBj
b250ZXh0LCBTUUxFcnJvciogZXJyb3IpCi17Ci0gICAgdjg6OkhhbmRsZVNjb3BlIGhhbmRsZVNj
b3BlOwotCi0gICAgdjg6OkhhbmRsZTx2ODo6Q29udGV4dD4gdjhDb250ZXh0ID0gdG9WOENvbnRl
eHQoY29udGV4dCwgbV93b3JsZENvbnRleHQpOwotICAgIGlmICh2OENvbnRleHQuSXNFbXB0eSgp
KQotICAgICAgICByZXR1cm47Ci0KLSAgICB2ODo6Q29udGV4dDo6U2NvcGUgc2NvcGUodjhDb250
ZXh0KTsKLQotICAgIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBhcmd2W10gPSB7Ci0gICAgICAgIHRv
VjgoZXJyb3IpCi0gICAgfTsKLQotICAgIC8vIFByb3RlY3QgdGhlIGZyYW1lIHVudGlsIHRoZSBj
YWxsYmFjayByZXR1cm5zLgotICAgIFJlZlB0cjxGcmFtZT4gcHJvdGVjdG9yKG1fZnJhbWUpOwot
Ci0gICAgYm9vbCBjYWxsYmFja1JldHVyblZhbHVlID0gZmFsc2U7Ci0gICAgaW52b2tlQ2FsbGJh
Y2sobV9jYWxsYmFjaywgMSwgYXJndiwgY2FsbGJhY2tSZXR1cm5WYWx1ZSk7Ci19Ci0KLX0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1
c3RvbS9WOEN1c3RvbVNRTFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFjay5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4Q3VzdG9tU1FMVHJhbnNhY3Rpb25FcnJvckNh
bGxiYWNrLmgJKHJldmlzaW9uIDU4NzQ3KQorKysgV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20v
VjhDdXN0b21TUUxUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2suaAkod29ya2luZyBjb3B5KQpAQCAt
MSw2OCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA5IEdvb2dsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0gKiAKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotICog
bWV0OgotICogCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogICAgICogUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotICogY29weXJpZ2h0
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lcgotICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZQotICogZGlzdHJpYnV0aW9uLgotICogICAgICogTmVpdGhlciB0aGUgbmFt
ZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotICogY29udHJpYnV0b3JzIG1h
eSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSAq
IHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24u
Ci0gKiAKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xE
RVJTIEFORCBDT05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSAqIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUg
Q09QWVJJR0hUCi0gKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAot
ICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCi0gKi8KLQotI2lmbmRlZiBWOEN1c3RvbVNRTFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFj
a19oCi0jZGVmaW5lIFY4Q3VzdG9tU1FMVHJhbnNhY3Rpb25FcnJvckNhbGxiYWNrX2gKLQotI2lm
IEVOQUJMRShEQVRBQkFTRSkKLQotI2luY2x1ZGUgIlNRTFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFj
ay5oIgotI2luY2x1ZGUgIldvcmxkQ29udGV4dEhhbmRsZS5oIgotI2luY2x1ZGUgPHY4Lmg+Ci0j
aW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBG
cmFtZTsKLQotY2xhc3MgVjhDdXN0b21TUUxUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2sgOiBwdWJs
aWMgU1FMVHJhbnNhY3Rpb25FcnJvckNhbGxiYWNrIHsKLXB1YmxpYzoKLSAgICBzdGF0aWMgUGFz
c1JlZlB0cjxWOEN1c3RvbVNRTFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFjaz4gY3JlYXRlKHY4OjpM
b2NhbDx2ODo6VmFsdWU+IHZhbHVlLCBGcmFtZSogZnJhbWUpCi0gICAgewotICAgICAgICBBU1NF
UlQodmFsdWUtPklzT2JqZWN0KCkpOwotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFY4Q3Vz
dG9tU1FMVHJhbnNhY3Rpb25FcnJvckNhbGxiYWNrKHZhbHVlLT5Ub09iamVjdCgpLCBmcmFtZSkp
OwotICAgIH0KLSAgICB2aXJ0dWFsIH5WOEN1c3RvbVNRTFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFj
aygpOwotCi0gICAgdmlydHVhbCB2b2lkIGhhbmRsZUV2ZW50KFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqLCBTUUxFcnJvciopOwotCi1wcml2YXRlOgotICAgIFY4Q3VzdG9tU1FMVHJhbnNhY3Rpb25F
cnJvckNhbGxiYWNrKHY4OjpMb2NhbDx2ODo6T2JqZWN0PiwgRnJhbWUqKTsKLQotICAgIHY4OjpQ
ZXJzaXN0ZW50PHY4OjpPYmplY3Q+IG1fY2FsbGJhY2s7Ci0gICAgUmVmUHRyPEZyYW1lPiBtX2Zy
YW1lOwotICAgIFdvcmxkQ29udGV4dEhhbmRsZSBtX3dvcmxkQ29udGV4dDsKLX07Ci0KLX0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmCi0KLSNlbmRpZiAvLyBWOEN1c3RvbVNRTFRyYW5z
YWN0aW9uRXJyb3JDYWxsYmFja19oCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9W
OERhdGFiYXNlQ2FsbGJhY2suY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3Mvdjgv
Y3VzdG9tL1Y4RGF0YWJhc2VDYWxsYmFjay5jcHAJKHJldmlzaW9uIDU4NzQ3KQorKysgV2ViQ29y
ZS9iaW5kaW5ncy92OC9jdXN0b20vVjhEYXRhYmFzZUNhbGxiYWNrLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMSw3OSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChjKSAyMDEwLCBHb29nbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFy
ZQotICogbWV0OgotICoKLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiBjb3B5
cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyCi0gKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlCi0gKiBkaXN0cmlidXRpb24uCi0gKiAgICAgKiBOZWl0aGVyIHRo
ZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0gKiBjb250cmlidXRv
cnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJv
bQotICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlz
c2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQg
SE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0g
KiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
VEhFIENPUFlSSUdIVAotICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLQotI2lmIEVOQUJMRShEQVRB
QkFTRSkKLQotI2luY2x1ZGUgIlY4RGF0YWJhc2VDYWxsYmFjay5oIgotCi0jaW5jbHVkZSAiRnJh
bWUuaCIKLSNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCi0jaW5jbHVkZSAiVjhD
dXN0b21Wb2lkQ2FsbGJhY2suaCIKLSNpbmNsdWRlICJWOERhdGFiYXNlLmgiCi0KLW5hbWVzcGFj
ZSBXZWJDb3JlIHsKLQotVjhEYXRhYmFzZUNhbGxiYWNrOjpWOERhdGFiYXNlQ2FsbGJhY2sodjg6
OkxvY2FsPHY4OjpPYmplY3Q+IGNhbGxiYWNrLCBGcmFtZSogZnJhbWUpCi0gICAgOiBtX2NhbGxi
YWNrKHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+OjpOZXcoY2FsbGJhY2spKQotICAgICwgbV9m
cmFtZShmcmFtZSkKLSAgICAsIG1fd29ybGRDb250ZXh0KFVzZUN1cnJlbnRXb3JsZCkKLXsKLX0K
LQotVjhEYXRhYmFzZUNhbGxiYWNrOjp+VjhEYXRhYmFzZUNhbGxiYWNrKCkKLXsKLSAgICBtX2Nh
bGxiYWNrLkRpc3Bvc2UoKTsKLX0KLQotdm9pZCBWOERhdGFiYXNlQ2FsbGJhY2s6OmhhbmRsZUV2
ZW50KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIERhdGFiYXNlKiBkYXRhYmFzZSkK
LXsKLSAgICB2ODo6SGFuZGxlU2NvcGUgaGFuZGxlU2NvcGU7Ci0KLSAgICB2ODo6SGFuZGxlPHY4
OjpDb250ZXh0PiB2OENvbnRleHQgPSB0b1Y4Q29udGV4dChjb250ZXh0LCBtX3dvcmxkQ29udGV4
dCk7Ci0gICAgaWYgKHY4Q29udGV4dC5Jc0VtcHR5KCkpCi0gICAgICAgIHJldHVybjsKLQotICAg
IHY4OjpDb250ZXh0OjpTY29wZSBzY29wZSh2OENvbnRleHQpOwotCi0gICAgdjg6OkhhbmRsZTx2
ODo6VmFsdWU+IGFyZ3ZbXSA9IHsKLSAgICAgICAgdG9WOChkYXRhYmFzZSkKLSAgICB9OwotCi0g
ICAgLy8gUHJvdGVjdCB0aGUgZnJhbWUgdW50aWwgdGhlIGNhbGxiYWNrIHJldHVybnMuCi0gICAg
UmVmUHRyPEZyYW1lPiBwcm90ZWN0b3IobV9mcmFtZSk7Ci0KLSAgICBib29sIGNhbGxiYWNrUmV0
dXJuVmFsdWUgPSBmYWxzZTsKLSAgICBpbnZva2VDYWxsYmFjayhtX2NhbGxiYWNrLCAxLCBhcmd2
LCBjYWxsYmFja1JldHVyblZhbHVlKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0j
ZW5kaWYKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4RGF0YWJhc2VDYWxsYmFj
ay5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4RGF0YWJhc2VD
YWxsYmFjay5oCShyZXZpc2lvbiA1ODc0NykKKysrIFdlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9t
L1Y4RGF0YWJhc2VDYWxsYmFjay5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDY4ICswLDAgQEAKLS8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0gKiAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAotICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotICogaW4gdGhlIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICog
ZGlzdHJpYnV0aW9uLgotICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBu
b3IgdGhlIG5hbWVzIG9mIGl0cwotICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9y
c2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0
aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9S
UwotICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVS
IE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLAotICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAq
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZu
ZGVmIFY4RGF0YWJhc2VDYWxsYmFja19oCi0jZGVmaW5lIFY4RGF0YWJhc2VDYWxsYmFja19oCi0K
LSNpZiBFTkFCTEUoREFUQUJBU0UpCi0KLSNpbmNsdWRlICJEYXRhYmFzZUNhbGxiYWNrLmgiCi0j
aW5jbHVkZSAiV29ybGRDb250ZXh0SGFuZGxlLmgiCi0jaW5jbHVkZSA8djguaD4KLSNpbmNsdWRl
IDx3dGYvRm9yd2FyZC5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIEZyYW1lOwot
Ci1jbGFzcyBWOERhdGFiYXNlQ2FsbGJhY2sgOiBwdWJsaWMgRGF0YWJhc2VDYWxsYmFjayB7Ci1w
dWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8VjhEYXRhYmFzZUNhbGxiYWNrPiBjcmVhdGUo
djg6OkxvY2FsPHY4OjpWYWx1ZT4gdmFsdWUsIEZyYW1lKiBmcmFtZSkKLSAgICB7Ci0gICAgICAg
IEFTU0VSVCh2YWx1ZS0+SXNPYmplY3QoKSk7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcg
VjhEYXRhYmFzZUNhbGxiYWNrKHZhbHVlLT5Ub09iamVjdCgpLCBmcmFtZSkpOwotICAgIH0KLSAg
ICB2aXJ0dWFsIH5WOERhdGFiYXNlQ2FsbGJhY2soKTsKLQotICAgIHZpcnR1YWwgdm9pZCBoYW5k
bGVFdmVudChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgRGF0YWJhc2UqKTsKLQotcHJpdmF0ZToK
LSAgICBWOERhdGFiYXNlQ2FsbGJhY2sodjg6OkxvY2FsPHY4OjpPYmplY3Q+LCBGcmFtZSopOwot
Ci0gICAgdjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD4gbV9jYWxsYmFjazsKLSAgICBSZWZQdHI8
RnJhbWU+IG1fZnJhbWU7Ci0gICAgV29ybGRDb250ZXh0SGFuZGxlIG1fd29ybGRDb250ZXh0Owot
fTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYKLQotI2VuZGlmIC8vIFY4RGF0
YWJhc2VDYWxsYmFja19oCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOERhdGFi
YXNlQ3VzdG9tLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9W
OERhdGFiYXNlQ3VzdG9tLmNwcAkocmV2aXNpb24gNTg3NDcpCisrKyBXZWJDb3JlL2JpbmRpbmdz
L3Y4L2N1c3RvbS9WOERhdGFiYXNlQ3VzdG9tLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzUsOCAr
MzUsOCBAQAogCiAjaW5jbHVkZSAiRGF0YWJhc2UuaCIKICNpbmNsdWRlICJWOEJpbmRpbmcuaCIK
LSNpbmNsdWRlICJWOEN1c3RvbVNRTFRyYW5zYWN0aW9uQ2FsbGJhY2suaCIKLSNpbmNsdWRlICJW
OEN1c3RvbVNRTFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFjay5oIgorI2luY2x1ZGUgIlY4U1FMVHJh
bnNhY3Rpb25DYWxsYmFjay5oIgorI2luY2x1ZGUgIlY4U1FMVHJhbnNhY3Rpb25FcnJvckNhbGxi
YWNrLmgiCiAjaW5jbHVkZSAiVjhDdXN0b21Wb2lkQ2FsbGJhY2suaCIKICNpbmNsdWRlICJWOFBy
b3h5LmgiCiAKQEAgLTU4LDIwICs1OCwyMCBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhEYXRh
YmFzZTo6Y2hhbmdlCiAgICAgaWYgKCFmcmFtZSkKICAgICAgICAgcmV0dXJuIHY4OjpVbmRlZmlu
ZWQoKTsKIAotICAgIFJlZlB0cjxWOEN1c3RvbVNRTFRyYW5zYWN0aW9uQ2FsbGJhY2s+IGNhbGxi
YWNrOworICAgIFJlZlB0cjxWOFNRTFRyYW5zYWN0aW9uQ2FsbGJhY2s+IGNhbGxiYWNrOwogICAg
IGlmIChhcmdzLkxlbmd0aCgpID4gMikgewogICAgICAgICBpZiAoIWFyZ3NbMl0tPklzT2JqZWN0
KCkpCiAgICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigiY2hhbmdlVmVyc2lvbiB0cmFuc2Fj
dGlvbiBjYWxsYmFjayBtdXN0IGJlIG9mIHZhbGlkIHR5cGUuIik7CiAKLSAgICAgICAgY2FsbGJh
Y2sgPSBWOEN1c3RvbVNRTFRyYW5zYWN0aW9uQ2FsbGJhY2s6OmNyZWF0ZShhcmdzWzJdLCBmcmFt
ZSk7CisgICAgICAgIGNhbGxiYWNrID0gVjhTUUxUcmFuc2FjdGlvbkNhbGxiYWNrOjpjcmVhdGUo
YXJnc1syXSwgZnJhbWUpOwogICAgIH0KIAotICAgIFJlZlB0cjxWOEN1c3RvbVNRTFRyYW5zYWN0
aW9uRXJyb3JDYWxsYmFjaz4gZXJyb3JDYWxsYmFjazsKKyAgICBSZWZQdHI8VjhTUUxUcmFuc2Fj
dGlvbkVycm9yQ2FsbGJhY2s+IGVycm9yQ2FsbGJhY2s7CiAgICAgaWYgKGFyZ3MuTGVuZ3RoKCkg
PiAzKSB7CiAgICAgICAgIGlmICghYXJnc1szXS0+SXNPYmplY3QoKSkKICAgICAgICAgICAgIHJl
dHVybiB0aHJvd0Vycm9yKCJjaGFuZ2VWZXJzaW9uIGVycm9yIGNhbGxiYWNrIG11c3QgYmUgb2Yg
dmFsaWQgdHlwZS4iKTsKIAotICAgICAgICBlcnJvckNhbGxiYWNrID0gVjhDdXN0b21TUUxUcmFu
c2FjdGlvbkVycm9yQ2FsbGJhY2s6OmNyZWF0ZShhcmdzWzNdLCBmcmFtZSk7CisgICAgICAgIGVy
cm9yQ2FsbGJhY2sgPSBWOFNRTFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFjazo6Y3JlYXRlKGFyZ3Nb
M10sIGZyYW1lKTsKICAgICB9CiAKICAgICBSZWZQdHI8VjhDdXN0b21Wb2lkQ2FsbGJhY2s+IHN1
Y2Nlc3NDYWxsYmFjazsKQEAgLTEwMSwxNCArMTAxLDE0IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4
OjpWYWx1ZT4gY3JlYXRlVHJhbnMKICAgICBpZiAoIWZyYW1lKQogICAgICAgICByZXR1cm4gdjg6
OlVuZGVmaW5lZCgpOwogCi0gICAgUmVmUHRyPFY4Q3VzdG9tU1FMVHJhbnNhY3Rpb25DYWxsYmFj
az4gY2FsbGJhY2sgPSBWOEN1c3RvbVNRTFRyYW5zYWN0aW9uQ2FsbGJhY2s6OmNyZWF0ZShhcmdz
WzBdLCBmcmFtZSk7CisgICAgUmVmUHRyPFY4U1FMVHJhbnNhY3Rpb25DYWxsYmFjaz4gY2FsbGJh
Y2sgPSBWOFNRTFRyYW5zYWN0aW9uQ2FsbGJhY2s6OmNyZWF0ZShhcmdzWzBdLCBmcmFtZSk7CiAK
LSAgICBSZWZQdHI8VjhDdXN0b21TUUxUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2s+IGVycm9yQ2Fs
bGJhY2s7CisgICAgUmVmUHRyPFY4U1FMVHJhbnNhY3Rpb25FcnJvckNhbGxiYWNrPiBlcnJvckNh
bGxiYWNrOwogICAgIGlmIChhcmdzLkxlbmd0aCgpID4gMSAmJiAhaXNVbmRlZmluZWRPck51bGwo
YXJnc1sxXSkpIHsKICAgICAgICAgaWYgKCFhcmdzWzFdLT5Jc09iamVjdCgpKQogICAgICAgICAg
ICAgcmV0dXJuIHRocm93RXJyb3IoIlRyYW5zYWN0aW9uIGVycm9yIGNhbGxiYWNrIG11c3QgYmUg
b2YgdmFsaWQgdHlwZS4iKTsKIAotICAgICAgICBlcnJvckNhbGxiYWNrID0gVjhDdXN0b21TUUxU
cmFuc2FjdGlvbkVycm9yQ2FsbGJhY2s6OmNyZWF0ZShhcmdzWzFdLCBmcmFtZSk7CisgICAgICAg
IGVycm9yQ2FsbGJhY2sgPSBWOFNRTFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFjazo6Y3JlYXRlKGFy
Z3NbMV0sIGZyYW1lKTsKICAgICB9CiAKICAgICBSZWZQdHI8VjhDdXN0b21Wb2lkQ2FsbGJhY2s+
IHN1Y2Nlc3NDYWxsYmFjazsKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4U1FM
VHJhbnNhY3Rpb25DdXN0b20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3Mvdjgv
Y3VzdG9tL1Y4U1FMVHJhbnNhY3Rpb25DdXN0b20uY3BwCShyZXZpc2lvbiA1ODc0NykKKysrIFdl
YkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4U1FMVHJhbnNhY3Rpb25DdXN0b20uY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zNyw4ICszNyw4IEBACiAjaW5jbHVkZSAiRGF0YWJhc2UuaCIKICNpbmNs
dWRlICJTUUxWYWx1ZS5oIgogI2luY2x1ZGUgIlY4QmluZGluZy5oIgotI2luY2x1ZGUgIlY4Q3Vz
dG9tU1FMU3RhdGVtZW50Q2FsbGJhY2suaCIKLSNpbmNsdWRlICJWOEN1c3RvbVNRTFN0YXRlbWVu
dEVycm9yQ2FsbGJhY2suaCIKKyNpbmNsdWRlICJWOFNRTFN0YXRlbWVudENhbGxiYWNrLmgiCisj
aW5jbHVkZSAiVjhTUUxTdGF0ZW1lbnRFcnJvckNhbGxiYWNrLmgiCiAjaW5jbHVkZSAiVjhQcm94
eS5oIgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIApAQCAtMTA1LDcgKzEwNSw3IEBAIHY4OjpI
YW5kbGU8djg6OlZhbHVlPiBWOFNRTFRyYW5zYWN0aW9uOjoKICAgICAgICAgICAgIHJldHVybiB0
aHJvd0Vycm9yKCJTdGF0ZW1lbnQgY2FsbGJhY2sgbXVzdCBiZSBvZiB2YWxpZCB0eXBlLiIsIFY4
UHJveHk6OlR5cGVFcnJvcik7CiAKICAgICAgICAgaWYgKGZyYW1lKQotICAgICAgICAgICAgY2Fs
bGJhY2sgPSBWOEN1c3RvbVNRTFN0YXRlbWVudENhbGxiYWNrOjpjcmVhdGUoYXJnc1syXSwgZnJh
bWUpOworICAgICAgICAgICAgY2FsbGJhY2sgPSBWOFNRTFN0YXRlbWVudENhbGxiYWNrOjpjcmVh
dGUoYXJnc1syXSwgZnJhbWUpOwogICAgIH0KIAogICAgIFJlZlB0cjxTUUxTdGF0ZW1lbnRFcnJv
ckNhbGxiYWNrPiBlcnJvckNhbGxiYWNrOwpAQCAtMTE0LDcgKzExNCw3IEBAIHY4OjpIYW5kbGU8
djg6OlZhbHVlPiBWOFNRTFRyYW5zYWN0aW9uOjoKICAgICAgICAgICAgIHJldHVybiB0aHJvd0Vy
cm9yKCJTdGF0ZW1lbnQgZXJyb3IgY2FsbGJhY2sgbXVzdCBiZSBvZiB2YWxpZCB0eXBlLiIsIFY4
UHJveHk6OlR5cGVFcnJvcik7CiAKICAgICAgICAgaWYgKGZyYW1lKQotICAgICAgICAgICAgZXJy
b3JDYWxsYmFjayA9IFY4Q3VzdG9tU1FMU3RhdGVtZW50RXJyb3JDYWxsYmFjazo6Y3JlYXRlKGFy
Z3NbM10sIGZyYW1lKTsKKyAgICAgICAgICAgIGVycm9yQ2FsbGJhY2sgPSBWOFNRTFN0YXRlbWVu
dEVycm9yQ2FsbGJhY2s6OmNyZWF0ZShhcmdzWzNdLCBmcmFtZSk7CiAgICAgfQogCiAgICAgRXhj
ZXB0aW9uQ29kZSBlYyA9IDA7CkBAIC0xMjcsNCArMTI3LDMgQEAgdjg6OkhhbmRsZTx2ODo6VmFs
dWU+IFY4U1FMVHJhbnNhY3Rpb246OgogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYK
LQpJbmRleDogV2ViQ29yZS9zdG9yYWdlL0RhdGFiYXNlQ2FsbGJhY2suaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL3N0b3JhZ2UvRGF0YWJhc2VDYWxsYmFjay5oCShyZXZpc2lvbiA1ODc0NykKKysr
IFdlYkNvcmUvc3RvcmFnZS9EYXRhYmFzZUNhbGxiYWNrLmgJKHdvcmtpbmcgY29weSkKQEAgLTQz
LDcgKzQzLDcgQEAgY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKIGNsYXNzIERhdGFiYXNl
Q2FsbGJhY2sgOiBwdWJsaWMgVGhyZWFkU2FmZVNoYXJlZDxEYXRhYmFzZUNhbGxiYWNrPiB7CiBw
dWJsaWM6CiAgICAgdmlydHVhbCB+RGF0YWJhc2VDYWxsYmFjaygpIHsgfQotICAgIHZpcnR1YWwg
dm9pZCBoYW5kbGVFdmVudChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgRGF0YWJhc2UqKSA9IDA7
CisgICAgdmlydHVhbCBib29sIGhhbmRsZUV2ZW50KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBE
YXRhYmFzZSopID0gMDsKIH07CiAKIH0KSW5kZXg6IFdlYkNvcmUvc3RvcmFnZS9EYXRhYmFzZUNh
bGxiYWNrLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N0b3JhZ2UvRGF0YWJhc2VDYWxsYmFj
ay5pZGwJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL3N0b3JhZ2UvRGF0YWJhc2VDYWxsYmFjay5p
ZGwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MDcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICog
My4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJBcHBsZSIpIG5v
ciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVu
ZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3
YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFT
IElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK21vZHVsZSBzdG9yYWdlIHsKKyAgICBp
bnRlcmZhY2UgWworICAgICAgICBDb25kaXRpb25hbD1EQVRBQkFTRSwKKyAgICAgICAgQ2FsbGJh
Y2sKKyAgICBdIERhdGFiYXNlQ2FsbGJhY2sgeworICAgICAgICBib29sZWFuIGhhbmRsZUV2ZW50
KGluIERhdGFiYXNlIGRhdGFiYXNlKTsKKyAgICB9OworfQpJbmRleDogV2ViQ29yZS9zdG9yYWdl
L1NRTFN0YXRlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdG9yYWdlL1NRTFN0YXRl
bWVudC5jcHAJKHJldmlzaW9uIDU4NzQ3KQorKysgV2ViQ29yZS9zdG9yYWdlL1NRTFN0YXRlbWVu
dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE3NCw3ICsxNzQsNyBAQCBib29sIFNRTFN0YXRlbWVu
dDo6cGVyZm9ybUNhbGxiYWNrKFNRTFRyCiAgICAgICAgIEFTU0VSVChtX3N0YXRlbWVudEVycm9y
Q2FsbGJhY2spOwogICAgICAgICBjYWxsYmFja0Vycm9yID0gbV9zdGF0ZW1lbnRFcnJvckNhbGxi
YWNrLT5oYW5kbGVFdmVudCh0cmFuc2FjdGlvbi0+ZGF0YWJhc2UoKS0+c2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpLCB0cmFuc2FjdGlvbiwgbV9lcnJvci5nZXQoKSk7CiAgICAgfSBlbHNlIGlmICht
X3N0YXRlbWVudENhbGxiYWNrKQotICAgICAgICBtX3N0YXRlbWVudENhbGxiYWNrLT5oYW5kbGVF
dmVudCh0cmFuc2FjdGlvbi0+ZGF0YWJhc2UoKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCB0
cmFuc2FjdGlvbiwgbV9yZXN1bHRTZXQuZ2V0KCksIGNhbGxiYWNrRXJyb3IpOworICAgICAgICBj
YWxsYmFja0Vycm9yID0gIW1fc3RhdGVtZW50Q2FsbGJhY2stPmhhbmRsZUV2ZW50KHRyYW5zYWN0
aW9uLT5kYXRhYmFzZSgpLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIHRyYW5zYWN0aW9uLCBt
X3Jlc3VsdFNldC5nZXQoKSk7CiAKICAgICAvLyBOb3cgcmVsZWFzZSBvdXIgY2FsbGJhY2tzLCB0
byBicmVhayByZWZlcmVuY2UgY3ljbGVzLgogICAgIG1fc3RhdGVtZW50Q2FsbGJhY2sgPSAwOwpJ
bmRleDogV2ViQ29yZS9zdG9yYWdlL1NRTFN0YXRlbWVudENhbGxiYWNrLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9zdG9yYWdlL1NRTFN0YXRlbWVudENhbGxiYWNrLmgJKHJldmlzaW9uIDU4NzQ3
KQorKysgV2ViQ29yZS9zdG9yYWdlL1NRTFN0YXRlbWVudENhbGxiYWNrLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTQxLDcgKzQxLDcgQEAgY2xhc3MgU1FMUmVzdWx0U2V0OwogY2xhc3MgU1FMU3RhdGVt
ZW50Q2FsbGJhY2sgOiBwdWJsaWMgVGhyZWFkU2FmZVNoYXJlZDxTUUxTdGF0ZW1lbnRDYWxsYmFj
az4gewogcHVibGljOgogICAgIHZpcnR1YWwgflNRTFN0YXRlbWVudENhbGxiYWNrKCkgeyB9Ci0g
ICAgdmlydHVhbCB2b2lkIGhhbmRsZUV2ZW50KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBTUUxU
cmFuc2FjdGlvbiosIFNRTFJlc3VsdFNldCosIGJvb2wmIHJhaXNlZEV4Y2VwdGlvbikgPSAwOwor
ICAgIHZpcnR1YWwgYm9vbCBoYW5kbGVFdmVudChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgU1FM
VHJhbnNhY3Rpb24qLCBTUUxSZXN1bHRTZXQqKSA9IDA7CiB9OwogCiB9CkluZGV4OiBXZWJDb3Jl
L3N0b3JhZ2UvU1FMU3RhdGVtZW50Q2FsbGJhY2suaWRsCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
c3RvcmFnZS9TUUxTdGF0ZW1lbnRDYWxsYmFjay5pZGwJKHJldmlzaW9uIDApCisrKyBXZWJDb3Jl
L3N0b3JhZ2UvU1FMU3RhdGVtZW50Q2FsbGJhY2suaWRsCShyZXZpc2lvbiAwKQpAQCAtMCwwICsx
LDM2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFw
cGxlIENvbXB1dGVyLCBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCisgKiAgICAgaXRz
IGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMg
ZGVyaXZlZAorICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9y
IHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCittb2R1bGUgc3RvcmFnZSB7CisgICAgaW50ZXJmYWNlIFsKKyAgICAgICAgQ29uZGl0
aW9uYWw9REFUQUJBU0UsCisgICAgICAgIENhbGxiYWNrCisgICAgXSBTUUxTdGF0ZW1lbnRDYWxs
YmFjayB7CisgICAgICAgIGJvb2xlYW4gaGFuZGxlRXZlbnQoaW4gU1FMVHJhbnNhY3Rpb24gdHJh
bnNhY3Rpb24sIGluIFNRTFJlc3VsdFNldCByZXN1bHRTZXQpOworICAgIH07Cit9CkluZGV4OiBX
ZWJDb3JlL3N0b3JhZ2UvU1FMU3RhdGVtZW50RXJyb3JDYWxsYmFjay5pZGwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9zdG9yYWdlL1NRTFN0YXRlbWVudEVycm9yQ2FsbGJhY2suaWRsCShyZXZpc2lv
biAwKQorKysgV2ViQ29yZS9zdG9yYWdlL1NRTFN0YXRlbWVudEVycm9yQ2FsbGJhY2suaWRsCShy
ZXZpc2lvbiAwKQpAQCAtMCwwICsxLDM2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA3IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAg
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuICBO
ZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIENvbXB1dGVyLCBJbmMuICgiQXBwbGUiKSBub3IgdGhl
IG5hbWVzIG9mCisgKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNl
IG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAorICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3
aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsK
KyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCittb2R1bGUgc3RvcmFnZSB7CisgICAgaW50ZXJm
YWNlIFsKKyAgICAgICAgQ29uZGl0aW9uYWw9REFUQUJBU0UsCisgICAgICAgIENhbGxiYWNrCisg
ICAgXSBTUUxTdGF0ZW1lbnRFcnJvckNhbGxiYWNrIHsKKyAgICAgICAgW0N1c3RvbV0gYm9vbGVh
biBoYW5kbGVFdmVudChpbiBTUUxUcmFuc2FjdGlvbiB0cmFuc2FjdGlvbiwgaW4gU1FMRXJyb3Ig
ZXJyb3IpOworICAgIH07Cit9CkluZGV4OiBXZWJDb3JlL3N0b3JhZ2UvU1FMVHJhbnNhY3Rpb24u
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3RvcmFnZS9TUUxUcmFuc2FjdGlvbi5jcHAJKHJl
dmlzaW9uIDU4NzQ3KQorKysgV2ViQ29yZS9zdG9yYWdlL1NRTFRyYW5zYWN0aW9uLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMjkwLDcgKzI5MCw3IEBAIHZvaWQgU1FMVHJhbnNhY3Rpb246OmRlbGl2
ZXJUcmFuc2FjdGlvbkMKIAogICAgIGlmIChtX2NhbGxiYWNrKSB7CiAgICAgICAgIG1fZXhlY3V0
ZVNxbEFsbG93ZWQgPSB0cnVlOwotICAgICAgICBtX2NhbGxiYWNrLT5oYW5kbGVFdmVudChtX2Rh
dGFiYXNlLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIHRoaXMsIHNob3VsZERlbGl2ZXJFcnJv
ckNhbGxiYWNrKTsKKyAgICAgICAgc2hvdWxkRGVsaXZlckVycm9yQ2FsbGJhY2sgPSAhbV9jYWxs
YmFjay0+aGFuZGxlRXZlbnQobV9kYXRhYmFzZS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCB0
aGlzKTsKICAgICAgICAgbV9leGVjdXRlU3FsQWxsb3dlZCA9IGZhbHNlOwogICAgIH0gZWxzZQog
ICAgICAgICBzaG91bGREZWxpdmVyRXJyb3JDYWxsYmFjayA9IHRydWU7CkluZGV4OiBXZWJDb3Jl
L3N0b3JhZ2UvU1FMVHJhbnNhY3Rpb25DYWxsYmFjay5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
c3RvcmFnZS9TUUxUcmFuc2FjdGlvbkNhbGxiYWNrLmgJKHJldmlzaW9uIDU4NzQ3KQorKysgV2Vi
Q29yZS9zdG9yYWdlL1NRTFRyYW5zYWN0aW9uQ2FsbGJhY2suaAkod29ya2luZyBjb3B5KQpAQCAt
MzcsMTIgKzM3LDExIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgU2NyaXB0RXhlY3V0
aW9uQ29udGV4dDsKIGNsYXNzIFNRTFRyYW5zYWN0aW9uOwotY2xhc3MgU1FMRXJyb3I7CiAKIGNs
YXNzIFNRTFRyYW5zYWN0aW9uQ2FsbGJhY2sgOiBwdWJsaWMgVGhyZWFkU2FmZVNoYXJlZDxTUUxU
cmFuc2FjdGlvbkNhbGxiYWNrPiB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+U1FMVHJhbnNhY3Rp
b25DYWxsYmFjaygpIHsgfQotICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVFdmVudChTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiwgU1FMVHJhbnNhY3Rpb24qLCBib29sJiByYWlzZWRFeGNlcHRpb24pID0g
MDsKKyAgICB2aXJ0dWFsIGJvb2wgaGFuZGxlRXZlbnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCos
IFNRTFRyYW5zYWN0aW9uKikgPSAwOwogfTsKIAogfQpJbmRleDogV2ViQ29yZS9zdG9yYWdlL1NR
TFRyYW5zYWN0aW9uQ2FsbGJhY2suaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3RvcmFnZS9T
UUxUcmFuc2FjdGlvbkNhbGxiYWNrLmlkbAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvc3RvcmFn
ZS9TUUxUcmFuc2FjdGlvbkNhbGxiYWNrLmlkbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzNiBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICog
MS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBD
b21wdXRlciwgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgorICogICAgIGl0cyBjb250
cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2
ZWQKKyAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0
dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJ
RUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAq
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworbW9kdWxlIHN0b3JhZ2UgeworICAgIGludGVyZmFjZSBbCisgICAgICAgIENvbmRpdGlvbmFs
PURBVEFCQVNFLAorICAgICAgICBDYWxsYmFjaworICAgIF0gU1FMVHJhbnNhY3Rpb25DYWxsYmFj
ayB7CisgICAgICAgIGJvb2xlYW4gaGFuZGxlRXZlbnQoaW4gU1FMVHJhbnNhY3Rpb24gdHJhbnNh
Y3Rpb24pOworICAgIH07Cit9CkluZGV4OiBXZWJDb3JlL3N0b3JhZ2UvU1FMVHJhbnNhY3Rpb25F
cnJvckNhbGxiYWNrLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdG9yYWdlL1NRTFRyYW5zYWN0
aW9uRXJyb3JDYWxsYmFjay5oCShyZXZpc2lvbiA1ODc0NykKKysrIFdlYkNvcmUvc3RvcmFnZS9T
UUxUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2suaAkod29ya2luZyBjb3B5KQpAQCAtNDEsNyArNDEs
NyBAQCBjbGFzcyBTUUxFcnJvcjsKIGNsYXNzIFNRTFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFjayA6
IHB1YmxpYyBUaHJlYWRTYWZlU2hhcmVkPFNRTFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFjaz4gewog
cHVibGljOgogICAgIHZpcnR1YWwgflNRTFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFjaygpIHsgfQot
ICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVFdmVudChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgU1FM
RXJyb3IqKSA9IDA7CisgICAgdmlydHVhbCBib29sIGhhbmRsZUV2ZW50KFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqLCBTUUxFcnJvciopID0gMDsKIH07CiAKIH0KSW5kZXg6IFdlYkNvcmUvc3RvcmFn
ZS9TUUxUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2suaWRsCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
c3RvcmFnZS9TUUxUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2suaWRsCShyZXZpc2lvbiAwKQorKysg
V2ViQ29yZS9zdG9yYWdlL1NRTFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFjay5pZGwJKHJldmlzaW9u
IDApCkBAIC0wLDAgKzEsMzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDcgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gIE5laXRoZXIg
dGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMg
b2YKKyAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJv
bW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQg
c3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
CisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKK21vZHVsZSBzdG9yYWdlIHsKKyAgICBpbnRlcmZhY2UgWwor
ICAgICAgICBDb25kaXRpb25hbD1EQVRBQkFTRSwKKyAgICAgICAgQ2FsbGJhY2sKKyAgICBdIFNR
TFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFjayB7CisgICAgICAgIGJvb2xlYW4gaGFuZGxlRXZlbnQo
aW4gU1FMRXJyb3IgZXJyb3IpOworICAgIH07Cit9Cg==
</data>
<flag name="review"
          id="39098"
          type_id="1"
          status="+"
          setter="abarth"
    />
    <flag name="commit-queue"
          id="39099"
          type_id="3"
          status="-"
          setter="dumi"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>55068</attachid>
            <date>2010-05-04 16:07:35 -0700</date>
            <delta_ts>2010-05-04 18:48:14 -0700</delta_ts>
            <desc>patch</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>121726</size>
            <attacher name="Dumitru Daniliuc">dumi</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1ODc0NykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNjcgQEAKKzIwMTAtMDUtMDQgIER1bWl0cnUgRGFuaWxpdWMgIDxkdW1pQGNocm9t
aXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBBdXRvLWdlbmVyYXRlIGFsbCBEYXRhYmFzZSBjYWxsYmFja3MuCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zODUwMworCisgICAgICAgICogRGVyaXZl
ZFNvdXJjZXMuY3BwOgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICog
R05VbWFrZWZpbGUuYW06CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNv
cmUucHJpOgorICAgICAgICAqIFdlYkNvcmUucHJvOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9q
L1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvajoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwOgorICAg
ICAgICAqIGJpbmRpbmdzL2pzL0pTQ3VzdG9tU1FMU3RhdGVtZW50Q2FsbGJhY2suY3BwOiBSZW1v
dmVkLgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTQ3VzdG9tU1FMU3RhdGVtZW50Q2FsbGJhY2su
aDogUmVtb3ZlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0N1c3RvbVNRTFN0YXRlbWVudEVy
cm9yQ2FsbGJhY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNTUUxTdGF0ZW1lbnRFcnJvckNh
bGxiYWNrOjpoYW5kbGVFdmVudCk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNDdXN0b21TUUxT
dGF0ZW1lbnRFcnJvckNhbGxiYWNrLmg6IFJlbW92ZWQuCisgICAgICAgICogYmluZGluZ3MvanMv
SlNDdXN0b21TUUxUcmFuc2FjdGlvbkNhbGxiYWNrLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9KU0N1c3RvbVNRTFRyYW5zYWN0aW9uQ2FsbGJhY2suaDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBiaW5kaW5ncy9qcy9KU0N1c3RvbVNRTFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFjay5j
cHA6IFJlbW92ZWQuCisgICAgICAgICogYmluZGluZ3MvanMvSlNDdXN0b21TUUxUcmFuc2FjdGlv
bkVycm9yQ2FsbGJhY2suaDogUmVtb3ZlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RhdGFi
YXNlQ2FsbGJhY2suY3BwOiBSZW1vdmVkLgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRGF0YWJh
c2VDYWxsYmFjay5oOiBSZW1vdmVkLgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRGF0YWJhc2VD
dXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNEYXRhYmFzZTo6Y2hhbmdlVmVyc2lvbik6
CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVUcmFuc2FjdGlvbik6CisgICAgICAgICogYmluZGlu
Z3MvanMvSlNTUUxUcmFuc2FjdGlvbkN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1NR
TFRyYW5zYWN0aW9uOjpleGVjdXRlU3FsKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0Nv
ZGVHZW5lcmF0b3JKUy5wbToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0Q2FsbGJhY2suY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOEN1c3RvbVNR
TFN0YXRlbWVudENhbGxiYWNrLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBiaW5kaW5ncy92OC9j
dXN0b20vVjhDdXN0b21TUUxTdGF0ZW1lbnRDYWxsYmFjay5oOiBSZW1vdmVkLgorICAgICAgICAq
IGJpbmRpbmdzL3Y4L2N1c3RvbS9WOEN1c3RvbVNRTFN0YXRlbWVudEVycm9yQ2FsbGJhY2suY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6VjhTUUxTdGF0ZW1lbnRFcnJvckNhbGxiYWNrOjpoYW5kbGVF
dmVudCk6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4Q3VzdG9tU1FMU3RhdGVtZW50
RXJyb3JDYWxsYmFjay5oOiBSZW1vdmVkLgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9W
OEN1c3RvbVNRTFRyYW5zYWN0aW9uQ2FsbGJhY2suY3BwOiBSZW1vdmVkLgorICAgICAgICAqIGJp
bmRpbmdzL3Y4L2N1c3RvbS9WOEN1c3RvbVNRTFRyYW5zYWN0aW9uQ2FsbGJhY2suaDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhDdXN0b21TUUxUcmFuc2FjdGlvbkVy
cm9yQ2FsbGJhY2suY3BwOiBSZW1vdmVkLgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9W
OEN1c3RvbVNRTFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFjay5oOiBSZW1vdmVkLgorICAgICAgICAq
IGJpbmRpbmdzL3Y4L2N1c3RvbS9WOERhdGFiYXNlQ2FsbGJhY2suY3BwOiBSZW1vdmVkLgorICAg
ICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOERhdGFiYXNlQ2FsbGJhY2suaDogUmVtb3ZlZC4K
KyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhEYXRhYmFzZUN1c3RvbS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpWOERhdGFiYXNlOjpjaGFuZ2VWZXJzaW9uQ2FsbGJhY2spOgorICAgICAg
ICAoV2ViQ29yZTo6Y3JlYXRlVHJhbnNhY3Rpb24pOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1
c3RvbS9WOFNRTFRyYW5zYWN0aW9uQ3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4U1FM
VHJhbnNhY3Rpb246OmV4ZWN1dGVTcWxDYWxsYmFjayk6CisgICAgICAgICogc3RvcmFnZS9EYXRh
YmFzZUNhbGxiYWNrLmg6CisgICAgICAgICogc3RvcmFnZS9EYXRhYmFzZUNhbGxiYWNrLmlkbDog
QWRkZWQuCisgICAgICAgICogc3RvcmFnZS9TUUxTdGF0ZW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U1FMU3RhdGVtZW50OjpwZXJmb3JtQ2FsbGJhY2spOgorICAgICAgICAqIHN0b3JhZ2Uv
U1FMU3RhdGVtZW50Q2FsbGJhY2suaDoKKyAgICAgICAgKiBzdG9yYWdlL1NRTFN0YXRlbWVudENh
bGxiYWNrLmlkbDogQWRkZWQuCisgICAgICAgICogc3RvcmFnZS9TUUxTdGF0ZW1lbnRFcnJvckNh
bGxiYWNrLmlkbDogQWRkZWQuCisgICAgICAgICogc3RvcmFnZS9TUUxUcmFuc2FjdGlvbi5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTUUxUcmFuc2FjdGlvbjo6ZGVsaXZlclRyYW5zYWN0aW9uQ2Fs
bGJhY2spOgorICAgICAgICAqIHN0b3JhZ2UvU1FMVHJhbnNhY3Rpb25DYWxsYmFjay5oOgorICAg
ICAgICAqIHN0b3JhZ2UvU1FMVHJhbnNhY3Rpb25DYWxsYmFjay5pZGw6IEFkZGVkLgorICAgICAg
ICAqIHN0b3JhZ2UvU1FMVHJhbnNhY3Rpb25FcnJvckNhbGxiYWNrLmg6CisgICAgICAgICogc3Rv
cmFnZS9TUUxUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2suaWRsOiBBZGRlZC4KKwogMjAxMC0wNS0w
NCAgTWlraGFpbCBOYWdhbm92ICA8bW5hZ2Fub3ZAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJl
dmlld2VkIGJ5IFBhdmVsIEZlbGRtYW4uCkluZGV4OiBXZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcAkocmV2aXNpb24gNTg3
NDcpCisrKyBXZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjQs
NiArNjQsNyBAQAogI2luY2x1ZGUgIkpTQ1NTVmFyaWFibGVzUnVsZS5jcHAiCiAjaW5jbHVkZSAi
SlNDdXN0b21FdmVudC5jcHAiCiAjaW5jbHVkZSAiSlNEYXRhYmFzZS5jcHAiCisjaW5jbHVkZSAi
SlNEYXRhYmFzZUNhbGxiYWNrLmNwcCIKICNpbmNsdWRlICJKU0RhdGFHcmlkQ29sdW1uLmNwcCIK
ICNpbmNsdWRlICJKU0RhdGFHcmlkQ29sdW1uTGlzdC5jcHAiCiAjaW5jbHVkZSAiSlNEZWRpY2F0
ZWRXb3JrZXJDb250ZXh0LmNwcCIKQEAgLTIwNCw3ICsyMDUsMTEgQEAKICNpbmNsdWRlICJKU1NR
TEVycm9yLmNwcCIKICNpbmNsdWRlICJKU1NRTFJlc3VsdFNldC5jcHAiCiAjaW5jbHVkZSAiSlNT
UUxSZXN1bHRTZXRSb3dMaXN0LmNwcCIKKyNpbmNsdWRlICJKU1NRTFN0YXRlbWVudENhbGxiYWNr
LmNwcCIKKyNpbmNsdWRlICJKU1NRTFN0YXRlbWVudEVycm9yQ2FsbGJhY2suY3BwIgogI2luY2x1
ZGUgIkpTU1FMVHJhbnNhY3Rpb24uY3BwIgorI2luY2x1ZGUgIkpTU1FMVHJhbnNhY3Rpb25DYWxs
YmFjay5jcHAiCisjaW5jbHVkZSAiSlNTUUxUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2suY3BwIgog
I2luY2x1ZGUgIkpTU3RvcmFnZS5jcHAiCiAjaW5jbHVkZSAiSlNTdG9yYWdlRXZlbnQuY3BwIgog
I2luY2x1ZGUgIkpTU3R5bGVNZWRpYS5jcHAiCkluZGV4OiBXZWJDb3JlL0Rlcml2ZWRTb3VyY2Vz
Lm1ha2UKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCShyZXZpc2lv
biA1ODc0NykKKysrIFdlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQkod29ya2luZyBjb3B5KQpA
QCAtMTE1LDYgKzExNSw3IEBAIERPTV9DTEFTU0VTID0gXAogICAgIERPTVNlbGVjdGlvbiBcCiAg
ICAgRE9NV2luZG93IFwKICAgICBEYXRhYmFzZSBcCisgICAgRGF0YWJhc2VDYWxsYmFjayBcCiAg
ICAgRG9jdW1lbnQgXAogICAgIERvY3VtZW50RnJhZ21lbnQgXAogICAgIERvY3VtZW50VHlwZSBc
CkBAIC0yNDgsNyArMjQ5LDExIEBAIERPTV9DTEFTU0VTID0gXAogICAgIFNRTEVycm9yIFwKICAg
ICBTUUxSZXN1bHRTZXQgXAogICAgIFNRTFJlc3VsdFNldFJvd0xpc3QgXAorICAgIFNRTFN0YXRl
bWVudENhbGxiYWNrIFwKKyAgICBTUUxTdGF0ZW1lbnRFcnJvckNhbGxiYWNrIFwKICAgICBTUUxU
cmFuc2FjdGlvbiBcCisgICAgU1FMVHJhbnNhY3Rpb25DYWxsYmFjayBcCisgICAgU1FMVHJhbnNh
Y3Rpb25FcnJvckNhbGxiYWNrIFwKICAgICBTdG9yYWdlIFwKICAgICBTdG9yYWdlRXZlbnQgXAog
ICAgIFNWR0FFbGVtZW50IFwKSW5kZXg6IFdlYkNvcmUvR05VbWFrZWZpbGUuYW0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQkocmV2aXNpb24gNTg3NDcpCisrKyBXZWJDb3Jl
L0dOVW1ha2VmaWxlLmFtCSh3b3JraW5nIGNvcHkpCkBAIC0yMzAyLDI1ICsyMzAyLDIxIEBAIEZF
QVRVUkVfREVGSU5FUyArPSBFTkFCTEVfREFUQUJBU0U9MQogCiBJRExfQklORElOR1MgKz0gXAog
CVdlYkNvcmUvc3RvcmFnZS9EYXRhYmFzZS5pZGwgXAorCVdlYkNvcmUvc3RvcmFnZS9EYXRhYmFz
ZUNhbGxiYWNrLmlkbCBcCiAJV2ViQ29yZS9zdG9yYWdlL1NRTEVycm9yLmlkbCBcCiAJV2ViQ29y
ZS9zdG9yYWdlL1NRTFJlc3VsdFNldC5pZGwgXAogCVdlYkNvcmUvc3RvcmFnZS9TUUxSZXN1bHRT
ZXRSb3dMaXN0LmlkbCBcCi0JV2ViQ29yZS9zdG9yYWdlL1NRTFRyYW5zYWN0aW9uLmlkbAorCVdl
YkNvcmUvc3RvcmFnZS9TUUxTdGF0ZW1lbnRDYWxsYmFjay5pZGwgXAorCVdlYkNvcmUvc3RvcmFn
ZS9TUUxTdGF0ZW1lbnRFcnJvckNhbGxiYWNrLmlkbCBcCisJV2ViQ29yZS9zdG9yYWdlL1NRTFRy
YW5zYWN0aW9uLmlkbCBcCisJV2ViQ29yZS9zdG9yYWdlL1NRTFRyYW5zYWN0aW9uQ2FsbGJhY2su
aWRsIFwKKwlXZWJDb3JlL3N0b3JhZ2UvU1FMVHJhbnNhY3Rpb25FcnJvckNhbGxiYWNrLmlkbAog
CiB3ZWJjb3JlX2NwcGZsYWdzICs9IFwKIAktREVOQUJMRV9EQVRBQkFTRT0xCiAKIHdlYmNvcmVf
c291cmNlcyArPSBcCi0JV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3RvbVNRTFN0YXRlbWVudENh
bGxiYWNrLmNwcCBcCi0JV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3RvbVNRTFN0YXRlbWVudENh
bGxiYWNrLmggXAogCVdlYkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21TUUxTdGF0ZW1lbnRFcnJv
ckNhbGxiYWNrLmNwcCBcCi0JV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3RvbVNRTFN0YXRlbWVu
dEVycm9yQ2FsbGJhY2suaCBcCi0JV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3RvbVNRTFRyYW5z
YWN0aW9uQ2FsbGJhY2suY3BwIFwKLQlXZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tU1FMVHJh
bnNhY3Rpb25DYWxsYmFjay5oIFwKLQlXZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tU1FMVHJh
bnNhY3Rpb25FcnJvckNhbGxiYWNrLmNwcCBcCi0JV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3Rv
bVNRTFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFjay5oIFwKLQlXZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RGF0YWJhc2VDYWxsYmFjay5jcHAgXAotCVdlYkNvcmUvYmluZGluZ3MvanMvSlNEYXRhYmFzZUNh
bGxiYWNrLmggXAogCVdlYkNvcmUvYmluZGluZ3MvanMvSlNEYXRhYmFzZUN1c3RvbS5jcHAgXAog
CVdlYkNvcmUvYmluZGluZ3MvanMvSlNTUUxSZXN1bHRTZXRSb3dMaXN0Q3VzdG9tLmNwcCBcCiAJ
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU1NRTFRyYW5zYWN0aW9uQ3VzdG9tLmNwcCBcCkluZGV4OiBX
ZWJDb3JlL1dlYkNvcmUuZ3lwaQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUuZ3lwaQko
cmV2aXNpb24gNTg3NDcpCisrKyBXZWJDb3JlL1dlYkNvcmUuZ3lwaQkod29ya2luZyBjb3B5KQpA
QCAtMjE4LDYgKzIxOCw3IEBACiAgICAgICAgICAgICAncGx1Z2lucy9QbHVnaW4uaWRsJywKICAg
ICAgICAgICAgICdwbHVnaW5zL1BsdWdpbkFycmF5LmlkbCcsCiAgICAgICAgICAgICAnc3RvcmFn
ZS9EYXRhYmFzZS5pZGwnLAorICAgICAgICAgICAgJ3N0b3JhZ2UvRGF0YWJhc2VDYWxsYmFjay5p
ZGwnLAogICAgICAgICAgICAgJ3N0b3JhZ2UvSURCRGF0YWJhc2VFcnJvci5pZGwnLAogICAgICAg
ICAgICAgJ3N0b3JhZ2UvSURCRGF0YWJhc2VFeGNlcHRpb24uaWRsJywKICAgICAgICAgICAgICdz
dG9yYWdlL0lEQkRhdGFiYXNlUmVxdWVzdC5pZGwnLApAQCAtMjI1LDcgKzIyNiwxMSBAQAogICAg
ICAgICAgICAgJ3N0b3JhZ2UvU1FMRXJyb3IuaWRsJywKICAgICAgICAgICAgICdzdG9yYWdlL1NR
TFJlc3VsdFNldC5pZGwnLAogICAgICAgICAgICAgJ3N0b3JhZ2UvU1FMUmVzdWx0U2V0Um93TGlz
dC5pZGwnLAorICAgICAgICAgICAgJ3N0b3JhZ2UvU1FMU3RhdGVtZW50Q2FsbGJhY2suaWRsJywK
KyAgICAgICAgICAgICdzdG9yYWdlL1NRTFN0YXRlbWVudEVycm9yQ2FsbGJhY2suaWRsJywKICAg
ICAgICAgICAgICdzdG9yYWdlL1NRTFRyYW5zYWN0aW9uLmlkbCcsCisgICAgICAgICAgICAnc3Rv
cmFnZS9TUUxUcmFuc2FjdGlvbkNhbGxiYWNrLmlkbCcsCisgICAgICAgICAgICAnc3RvcmFnZS9T
UUxUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2suaWRsJywKICAgICAgICAgICAgICdzdG9yYWdlL1N0
b3JhZ2UuaWRsJywKICAgICAgICAgICAgICdzdG9yYWdlL1N0b3JhZ2VFdmVudC5pZGwnLAogICAg
ICAgICAgICAgJ3dlYnNvY2tldHMvV2ViU29ja2V0LmlkbCcsCkBAIC00OTYsMTQgKzUwMSw3IEBA
CiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNDdXN0b21Qb3NpdGlvbkNhbGxiYWNrLmgnLAog
ICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTQ3VzdG9tUG9zaXRpb25FcnJvckNhbGxiYWNrLmNw
cCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNDdXN0b21Qb3NpdGlvbkVycm9yQ2FsbGJh
Y2suaCcsCi0gICAgICAgICAgICAnYmluZGluZ3MvanMvSlNDdXN0b21TUUxTdGF0ZW1lbnRDYWxs
YmFjay5jcHAnLAotICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTQ3VzdG9tU1FMU3RhdGVtZW50
Q2FsbGJhY2suaCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNDdXN0b21TUUxTdGF0ZW1l
bnRFcnJvckNhbGxiYWNrLmNwcCcsCi0gICAgICAgICAgICAnYmluZGluZ3MvanMvSlNDdXN0b21T
UUxTdGF0ZW1lbnRFcnJvckNhbGxiYWNrLmgnLAotICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pT
Q3VzdG9tU1FMVHJhbnNhY3Rpb25DYWxsYmFjay5jcHAnLAotICAgICAgICAgICAgJ2JpbmRpbmdz
L2pzL0pTQ3VzdG9tU1FMVHJhbnNhY3Rpb25DYWxsYmFjay5oJywKLSAgICAgICAgICAgICdiaW5k
aW5ncy9qcy9KU0N1c3RvbVNRTFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFjay5jcHAnLAotICAgICAg
ICAgICAgJ2JpbmRpbmdzL2pzL0pTQ3VzdG9tU1FMVHJhbnNhY3Rpb25FcnJvckNhbGxiYWNrLmgn
LAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTQ3VzdG9tVm9pZENhbGxiYWNrLmNwcCcsCiAg
ICAgICAgICAgICAnYmluZGluZ3MvanMvSlNDdXN0b21Wb2lkQ2FsbGJhY2suaCcsCiAgICAgICAg
ICAgICAnYmluZGluZ3MvanMvSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuY3BwJywKQEAgLTcwOCwy
MCArNzA2LDExIEBACiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4Q3VzdG9tUG9z
aXRpb25DYWxsYmFjay5oJywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhDdXN0
b21Qb3NpdGlvbkVycm9yQ2FsbGJhY2suY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9j
dXN0b20vVjhDdXN0b21Qb3NpdGlvbkVycm9yQ2FsbGJhY2suaCcsCi0gICAgICAgICAgICAnYmlu
ZGluZ3MvdjgvY3VzdG9tL1Y4Q3VzdG9tU1FMU3RhdGVtZW50Q2FsbGJhY2suY3BwJywKLSAgICAg
ICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhDdXN0b21TUUxTdGF0ZW1lbnRDYWxsYmFjay5o
JywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhDdXN0b21TUUxTdGF0ZW1lbnRF
cnJvckNhbGxiYWNrLmNwcCcsCi0gICAgICAgICAgICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4Q3Vz
dG9tU1FMU3RhdGVtZW50RXJyb3JDYWxsYmFjay5oJywKLSAgICAgICAgICAgICdiaW5kaW5ncy92
OC9jdXN0b20vVjhDdXN0b21TUUxUcmFuc2FjdGlvbkNhbGxiYWNrLmNwcCcsCi0gICAgICAgICAg
ICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4Q3VzdG9tU1FMVHJhbnNhY3Rpb25DYWxsYmFjay5oJywK
LSAgICAgICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhDdXN0b21TUUxUcmFuc2FjdGlvbkVy
cm9yQ2FsbGJhY2suY3BwJywKLSAgICAgICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhDdXN0
b21TUUxUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2suaCcsCiAgICAgICAgICAgICAnYmluZGluZ3Mv
djgvY3VzdG9tL1Y4Q3VzdG9tVm9pZENhbGxiYWNrLmNwcCcsCiAgICAgICAgICAgICAnYmluZGlu
Z3MvdjgvY3VzdG9tL1Y4Q3VzdG9tVm9pZENhbGxiYWNrLmgnLAogICAgICAgICAgICAgJ2JpbmRp
bmdzL3Y4L2N1c3RvbS9WOEN1c3RvbVhQYXRoTlNSZXNvbHZlci5jcHAnLAogICAgICAgICAgICAg
J2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEN1c3RvbVhQYXRoTlNSZXNvbHZlci5oJywKLSAgICAgICAg
ICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhEYXRhYmFzZUNhbGxiYWNrLmNwcCcsCi0gICAgICAg
ICAgICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4RGF0YWJhc2VDYWxsYmFjay5oJywKICAgICAgICAg
ICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhEYXRhYmFzZUN1c3RvbS5jcHAnLAogICAgICAgICAg
ICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9WOERhdGFHcmlkQ29sdW1uTGlzdEN1c3RvbS5jcHAnLAog
ICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9WOERlZGljYXRlZFdvcmtlckNvbnRleHRD
dXN0b20uY3BwJywKSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS5wcmkKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9XZWJDb3JlLnByaQkocmV2aXNpb24gNTg3NDcpCisrKyBXZWJDb3JlL1dlYkNvcmUucHJp
CSh3b3JraW5nIGNvcHkpCkBAIC00MzYsMTIgKzQzNiwxNyBAQCBJRExfQklORElOR1MgKz0gXAog
ICAgIHBsdWdpbnMvUGx1Z2luQXJyYXkuaWRsIFwKICAgICBwbHVnaW5zL01pbWVUeXBlQXJyYXku
aWRsIFwKICAgICBzdG9yYWdlL0RhdGFiYXNlLmlkbCBcCisgICAgc3RvcmFnZS9EYXRhYmFzZUNh
bGxiYWNrLmlkbCBcCiAgICAgc3RvcmFnZS9TdG9yYWdlLmlkbCBcCiAgICAgc3RvcmFnZS9TdG9y
YWdlRXZlbnQuaWRsIFwKICAgICBzdG9yYWdlL1NRTEVycm9yLmlkbCBcCiAgICAgc3RvcmFnZS9T
UUxSZXN1bHRTZXQuaWRsIFwKICAgICBzdG9yYWdlL1NRTFJlc3VsdFNldFJvd0xpc3QuaWRsIFwK
KyAgICBzdG9yYWdlL1NRTFN0YXRlbWVudENhbGxiYWNrLmlkbCBcCisgICAgc3RvcmFnZS9TUUxT
dGF0ZW1lbnRFcnJvckNhbGxiYWNrLmlkbCBcCiAgICAgc3RvcmFnZS9TUUxUcmFuc2FjdGlvbi5p
ZGwgXAorICAgIHN0b3JhZ2UvU1FMVHJhbnNhY3Rpb25DYWxsYmFjay5pZGwgXAorICAgIHN0b3Jh
Z2UvU1FMVHJhbnNhY3Rpb25FcnJvckNhbGxiYWNrLmlkbCBcCiAgICAgc3ZnL1NWR1pvb21FdmVu
dC5pZGwgXAogICAgIHN2Zy9TVkdBRWxlbWVudC5pZGwgXAogICAgIHN2Zy9TVkdBbHRHbHlwaEVs
ZW1lbnQuaWRsIFwKSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS5wcm8KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9XZWJDb3JlLnBybwkocmV2aXNpb24gNTg3NDcpCisrKyBXZWJDb3JlL1dlYkNvcmUucHJv
CSh3b3JraW5nIGNvcHkpCkBAIC0xMDI0LDEzICsxMDI0LDggQEAgSEVBREVSUyArPSBcCiAgICAg
YmluZGluZ3MvanMvSlNDU1NTdHlsZURlY2xhcmF0aW9uQ3VzdG9tLmggXAogICAgIGJpbmRpbmdz
L2pzL0pTQ3VzdG9tUG9zaXRpb25DYWxsYmFjay5oIFwKICAgICBiaW5kaW5ncy9qcy9KU0N1c3Rv
bVBvc2l0aW9uRXJyb3JDYWxsYmFjay5oIFwKLSAgICBiaW5kaW5ncy9qcy9KU0N1c3RvbVNRTFN0
YXRlbWVudENhbGxiYWNrLmggXAotICAgIGJpbmRpbmdzL2pzL0pTQ3VzdG9tU1FMU3RhdGVtZW50
RXJyb3JDYWxsYmFjay5oIFwKLSAgICBiaW5kaW5ncy9qcy9KU0N1c3RvbVNRTFRyYW5zYWN0aW9u
Q2FsbGJhY2suaCBcCi0gICAgYmluZGluZ3MvanMvSlNDdXN0b21TUUxUcmFuc2FjdGlvbkVycm9y
Q2FsbGJhY2suaCBcCiAgICAgYmluZGluZ3MvanMvSlNDdXN0b21Wb2lkQ2FsbGJhY2suaCBcCiAg
ICAgYmluZGluZ3MvanMvSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuaCBcCi0gICAgYmluZGluZ3Mv
anMvSlNEYXRhYmFzZUNhbGxiYWNrLmggXAogICAgIGJpbmRpbmdzL2pzL0pTRGF0YUdyaWREYXRh
U291cmNlLmggXAogICAgIGJpbmRpbmdzL2pzL0pTRGVidWdXcmFwcGVyU2V0LmggXAogICAgIGJp
bmRpbmdzL2pzL0pTRE9NQmluZGluZy5oIFwKQEAgLTIyOTQsMTEgKzIyODksNyBAQCBjb250YWlu
cyhERUZJTkVTLCBFTkFCTEVfREFUQUJBU0U9MSkgewogICAgICAgICBzdG9yYWdlL1NRTFRyYW5z
YWN0aW9uQ2xpZW50LmNwcCBcCiAgICAgICAgIHN0b3JhZ2UvU1FMVHJhbnNhY3Rpb25Db29yZGlu
YXRvci5jcHAgXAogICAgICAgICBzdG9yYWdlL1NRTFRyYW5zYWN0aW9uU3luYy5jcHAgXAotICAg
ICAgICBiaW5kaW5ncy9qcy9KU0N1c3RvbVNRTFN0YXRlbWVudENhbGxiYWNrLmNwcCBcCiAgICAg
ICAgIGJpbmRpbmdzL2pzL0pTQ3VzdG9tU1FMU3RhdGVtZW50RXJyb3JDYWxsYmFjay5jcHAgXAot
ICAgICAgICBiaW5kaW5ncy9qcy9KU0N1c3RvbVNRTFRyYW5zYWN0aW9uQ2FsbGJhY2suY3BwIFwK
LSAgICAgICAgYmluZGluZ3MvanMvSlNDdXN0b21TUUxUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2su
Y3BwIFwKLSAgICAgICAgYmluZGluZ3MvanMvSlNEYXRhYmFzZUNhbGxiYWNrLmNwcCBcCiAgICAg
ICAgIGJpbmRpbmdzL2pzL0pTRGF0YWJhc2VDdXN0b20uY3BwIFwKICAgICAgICAgYmluZGluZ3Mv
anMvSlNTUUxSZXN1bHRTZXRSb3dMaXN0Q3VzdG9tLmNwcCBcCiAgICAgICAgIGJpbmRpbmdzL2pz
L0pTU1FMVHJhbnNhY3Rpb25DdXN0b20uY3BwCkluZGV4OiBXZWJDb3JlL1dlYkNvcmUudmNwcm9q
L1dlYkNvcmUudmNwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2Vi
Q29yZS52Y3Byb2oJKHJldmlzaW9uIDU4NzQ3KQorKysgV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9X
ZWJDb3JlLnZjcHJvagkod29ya2luZyBjb3B5KQpAQCAtMzU0NjMsNjIgKzM1NDYzLDYgQEAKIAkJ
CQkJPg0KIAkJCQk8L0ZpbGU+DQogCQkJCTxGaWxlDQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJp
bmRpbmdzXGpzXEpTQ3VzdG9tU1FMU3RhdGVtZW50Q2FsbGJhY2suY3BwIg0KLQkJCQkJPg0KLQkJ
CQkJPEZpbGVDb25maWd1cmF0aW9uDQotCQkJCQkJTmFtZT0iRGVidWd8V2luMzIiDQotCQkJCQkJ
RXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQotCQkJCQkJPg0KLQkJCQkJCTxUb29sDQotCQkJCQkJ
CU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJCQkJLz4NCi0JCQkJCTwvRmlsZUNvbmZpZ3Vy
YXRpb24+DQotCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCi0JCQkJCQlOYW1lPSJSZWxlYXNlfFdp
bjMyIg0KLQkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KLQkJCQkJCT4NCi0JCQkJCQk8
VG9vbA0KLQkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQkJCS8+DQotCQkJCQk8
L0ZpbGVDb25maWd1cmF0aW9uPg0KLQkJCQkJPEZpbGVDb25maWd1cmF0aW9uDQotCQkJCQkJTmFt
ZT0iRGVidWdfSW50ZXJuYWx8V2luMzIiDQotCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUi
DQotCQkJCQkJPg0KLQkJCQkJCTxUb29sDQotCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wi
DQotCQkJCQkJLz4NCi0JCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQotCQkJCQk8RmlsZUNvbmZp
Z3VyYXRpb24NCi0JCQkJCQlOYW1lPSJEZWJ1Z19DYWlyb3xXaW4zMiINCi0JCQkJCQlFeGNsdWRl
ZEZyb21CdWlsZD0idHJ1ZSINCi0JCQkJCQk+DQotCQkJCQkJPFRvb2wNCi0JCQkJCQkJTmFtZT0i
VkNDTENvbXBpbGVyVG9vbCINCi0JCQkJCQkvPg0KLQkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4N
Ci0JCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KLQkJCQkJCU5hbWU9IlJlbGVhc2VfQ2Fpcm98V2lu
MzIiDQotCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQotCQkJCQkJPg0KLQkJCQkJCTxU
b29sDQotCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJCQkJLz4NCi0JCQkJCTwv
RmlsZUNvbmZpZ3VyYXRpb24+DQotCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCi0JCQkJCQlOYW1l
PSJEZWJ1Z19BbGx8V2luMzIiDQotCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQotCQkJ
CQkJPg0KLQkJCQkJCTxUb29sDQotCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJ
CQkJLz4NCi0JCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQotCQkJCTwvRmlsZT4NCi0JCQkJPEZp
bGUNCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNDdXN0b21TUUxTdGF0ZW1l
bnRDYWxsYmFjay5oIg0KLQkJCQkJPg0KLQkJCQk8L0ZpbGU+DQotCQkJCTxGaWxlDQogCQkJCQlS
ZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTQ3VzdG9tU1FMU3RhdGVtZW50RXJyb3JDYWxs
YmFjay5jcHAiDQogCQkJCQk+DQogCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCkBAIC0zNTU3MSwx
MjIgKzM1NTE1LDYgQEAKIAkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCiAJCQkJPC9GaWxlPg0K
IAkJCQk8RmlsZQ0KLQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU0N1c3RvbVNR
TFN0YXRlbWVudEVycm9yQ2FsbGJhY2suaCINCi0JCQkJCT4NCi0JCQkJPC9GaWxlPg0KLQkJCQk8
RmlsZQ0KLQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU0N1c3RvbVNRTFRyYW5z
YWN0aW9uQ2FsbGJhY2suY3BwIg0KLQkJCQkJPg0KLQkJCQkJPEZpbGVDb25maWd1cmF0aW9uDQot
CQkJCQkJTmFtZT0iRGVidWd8V2luMzIiDQotCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUi
DQotCQkJCQkJPg0KLQkJCQkJCTxUb29sDQotCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wi
DQotCQkJCQkJLz4NCi0JCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQotCQkJCQk8RmlsZUNvbmZp
Z3VyYXRpb24NCi0JCQkJCQlOYW1lPSJSZWxlYXNlfFdpbjMyIg0KLQkJCQkJCUV4Y2x1ZGVkRnJv
bUJ1aWxkPSJ0cnVlIg0KLQkJCQkJCT4NCi0JCQkJCQk8VG9vbA0KLQkJCQkJCQlOYW1lPSJWQ0NM
Q29tcGlsZXJUb29sIg0KLQkJCQkJCS8+DQotCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KLQkJ
CQkJPEZpbGVDb25maWd1cmF0aW9uDQotCQkJCQkJTmFtZT0iRGVidWdfSW50ZXJuYWx8V2luMzIi
DQotCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQotCQkJCQkJPg0KLQkJCQkJCTxUb29s
DQotCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJCQkJLz4NCi0JCQkJCTwvRmls
ZUNvbmZpZ3VyYXRpb24+DQotCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCi0JCQkJCQlOYW1lPSJE
ZWJ1Z19DYWlyb3xXaW4zMiINCi0JCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCi0JCQkJ
CQk+DQotCQkJCQkJPFRvb2wNCi0JCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJ
CQkvPg0KLQkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCi0JCQkJCTxGaWxlQ29uZmlndXJhdGlv
bg0KLQkJCQkJCU5hbWU9IlJlbGVhc2VfQ2Fpcm98V2luMzIiDQotCQkJCQkJRXhjbHVkZWRGcm9t
QnVpbGQ9InRydWUiDQotCQkJCQkJPg0KLQkJCQkJCTxUb29sDQotCQkJCQkJCU5hbWU9IlZDQ0xD
b21waWxlclRvb2wiDQotCQkJCQkJLz4NCi0JCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQotCQkJ
CQk8RmlsZUNvbmZpZ3VyYXRpb24NCi0JCQkJCQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIiDQotCQkJ
CQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQotCQkJCQkJPg0KLQkJCQkJCTxUb29sDQotCQkJ
CQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJCQkJLz4NCi0JCQkJCTwvRmlsZUNvbmZp
Z3VyYXRpb24+DQotCQkJCTwvRmlsZT4NCi0JCQkJPEZpbGUNCi0JCQkJCVJlbGF0aXZlUGF0aD0i
Li5cYmluZGluZ3NcanNcSlNDdXN0b21TUUxUcmFuc2FjdGlvbkNhbGxiYWNrLmgiDQotCQkJCQk+
DQotCQkJCTwvRmlsZT4NCi0JCQkJPEZpbGUNCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGlu
Z3NcanNcSlNDdXN0b21TUUxUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2suY3BwIg0KLQkJCQkJPg0K
LQkJCQkJPEZpbGVDb25maWd1cmF0aW9uDQotCQkJCQkJTmFtZT0iRGVidWd8V2luMzIiDQotCQkJ
CQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQotCQkJCQkJPg0KLQkJCQkJCTxUb29sDQotCQkJ
CQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJCQkJLz4NCi0JCQkJCTwvRmlsZUNvbmZp
Z3VyYXRpb24+DQotCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCi0JCQkJCQlOYW1lPSJSZWxlYXNl
fFdpbjMyIg0KLQkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KLQkJCQkJCT4NCi0JCQkJ
CQk8VG9vbA0KLQkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQkJCS8+DQotCQkJ
CQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KLQkJCQkJPEZpbGVDb25maWd1cmF0aW9uDQotCQkJCQkJ
TmFtZT0iRGVidWdfSW50ZXJuYWx8V2luMzIiDQotCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRy
dWUiDQotCQkJCQkJPg0KLQkJCQkJCTxUb29sDQotCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRv
b2wiDQotCQkJCQkJLz4NCi0JCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQotCQkJCQk8RmlsZUNv
bmZpZ3VyYXRpb24NCi0JCQkJCQlOYW1lPSJEZWJ1Z19DYWlyb3xXaW4zMiINCi0JCQkJCQlFeGNs
dWRlZEZyb21CdWlsZD0idHJ1ZSINCi0JCQkJCQk+DQotCQkJCQkJPFRvb2wNCi0JCQkJCQkJTmFt
ZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJCQkvPg0KLQkJCQkJPC9GaWxlQ29uZmlndXJhdGlv
bj4NCi0JCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KLQkJCQkJCU5hbWU9IlJlbGVhc2VfQ2Fpcm98
V2luMzIiDQotCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQotCQkJCQkJPg0KLQkJCQkJ
CTxUb29sDQotCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJCQkJLz4NCi0JCQkJ
CTwvRmlsZUNvbmZpZ3VyYXRpb24+DQotCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCi0JCQkJCQlO
YW1lPSJEZWJ1Z19BbGx8V2luMzIiDQotCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQot
CQkJCQkJPg0KLQkJCQkJCTxUb29sDQotCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQot
CQkJCQkJLz4NCi0JCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQotCQkJCTwvRmlsZT4NCi0JCQkJ
PEZpbGUNCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNDdXN0b21TUUxUcmFu
c2FjdGlvbkVycm9yQ2FsbGJhY2suaCINCi0JCQkJCT4NCi0JCQkJPC9GaWxlPg0KLQkJCQk8Rmls
ZQ0KIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU0N1c3RvbVZvaWRDYWxsYmFj
ay5jcHAiDQogCQkJCQk+DQogCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCkBAIC0zNTc5OSwxNCAr
MzU2MjcsNiBAQAogCQkJCQk+DQogCQkJCTwvRmlsZT4NCiAJCQkJPEZpbGUNCi0JCQkJCVJlbGF0
aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNEYXRhYmFzZUNhbGxiYWNrLmNwcCINCi0JCQkJCT4N
Ci0JCQkJPC9GaWxlPg0KLQkJCQk8RmlsZQ0KLQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5n
c1xqc1xKU0RhdGFiYXNlQ2FsbGJhY2suaCINCi0JCQkJCT4NCi0JCQkJPC9GaWxlPg0KLQkJCQk8
RmlsZQ0KIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU0RhdGFiYXNlQ3VzdG9t
LmNwcCINCiAJCQkJCT4NCiAJCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KSW5kZXg6IFdlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiA1ODc0NykKKysrIFdl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBA
IC0xMTQ0LDE0ICsxMTQ0LDcgQEAKIAkJNTFFNEFEQjYwQzQyQjRDRjAwNDJCQzU1IC8qIEZUUERp
cmVjdG9yeURvY3VtZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDUxRTRBREIyMEM0MkI0Q0YwMDQyQkM1NSAvKiBGVFBEaXJlY3RvcnlEb2N1bWVu
dC5jcHAgKi87IH07CiAJCTUxRTRBREI3MEM0MkI0Q0YwMDQyQkM1NSAvKiBGVFBEaXJlY3RvcnlE
b2N1bWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NTFFNEFEQjMwQzQyQjRDRjAwNDJCQzU1IC8qIEZUUERpcmVjdG9yeURvY3VtZW50LmggKi87IH07
CiAJCTUxRUM5MjU5MENFOTBEQjQwMEY5MDMwOCAvKiBTUUxFcnJvci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFFQzkyNTcwQ0U5MERCNDAwRjkwMzA4
IC8qIFNRTEVycm9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKLQkJNTFFQzkyNjMwQ0U5MERENDAwRjkwMzA4IC8qIEpTQ3VzdG9tU1FMU3RhdGVtZW50
Q2FsbGJhY2suY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNTFFQzkyNUIwQ0U5MERENDAwRjkwMzA4IC8qIEpTQ3VzdG9tU1FMU3RhdGVtZW50Q2FsbGJh
Y2suY3BwICovOyB9OwotCQk1MUVDOTI2NDBDRTkwREQ0MDBGOTAzMDggLyogSlNDdXN0b21TUUxT
dGF0ZW1lbnRDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNTFFQzkyNUMwQ0U5MERENDAwRjkwMzA4IC8qIEpTQ3VzdG9tU1FMU3RhdGVtZW50
Q2FsbGJhY2suaCAqLzsgfTsKIAkJNTFFQzkyNjUwQ0U5MERENDAwRjkwMzA4IC8qIEpTQ3VzdG9t
U1FMU3RhdGVtZW50RXJyb3JDYWxsYmFjay5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1MUVDOTI1RDBDRTkwREQ0MDBGOTAzMDggLyogSlNDdXN0b21T
UUxTdGF0ZW1lbnRFcnJvckNhbGxiYWNrLmNwcCAqLzsgfTsKLQkJNTFFQzkyNjYwQ0U5MERENDAw
RjkwMzA4IC8qIEpTQ3VzdG9tU1FMU3RhdGVtZW50RXJyb3JDYWxsYmFjay5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFFQzkyNUUwQ0U5MERENDAwRjkw
MzA4IC8qIEpTQ3VzdG9tU1FMU3RhdGVtZW50RXJyb3JDYWxsYmFjay5oICovOyB9OwotCQk1MUVD
OTI2NzBDRTkwREQ0MDBGOTAzMDggLyogSlNDdXN0b21TUUxUcmFuc2FjdGlvbkNhbGxiYWNrLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRUM5MjVG
MENFOTBERDQwMEY5MDMwOCAvKiBKU0N1c3RvbVNRTFRyYW5zYWN0aW9uQ2FsbGJhY2suY3BwICov
OyB9OwotCQk1MUVDOTI2ODBDRTkwREQ0MDBGOTAzMDggLyogSlNDdXN0b21TUUxUcmFuc2FjdGlv
bkNhbGxiYWNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1MUVDOTI2MDBDRTkwREQ0MDBGOTAzMDggLyogSlNDdXN0b21TUUxUcmFuc2FjdGlvbkNhbGxi
YWNrLmggKi87IH07Ci0JCTUxRUM5MjY5MENFOTBERDQwMEY5MDMwOCAvKiBKU0N1c3RvbVNRTFRy
YW5zYWN0aW9uRXJyb3JDYWxsYmFjay5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA1MUVDOTI2MTBDRTkwREQ0MDBGOTAzMDggLyogSlNDdXN0b21TUUxU
cmFuc2FjdGlvbkVycm9yQ2FsbGJhY2suY3BwICovOyB9OwotCQk1MUVDOTI2QTBDRTkwREQ0MDBG
OTAzMDggLyogSlNDdXN0b21TUUxUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2suaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRUM5MjYyMENFOTBERDQwMEY5
MDMwOCAvKiBKU0N1c3RvbVNRTFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFjay5oICovOyB9OwogCQk1
MUZBRkUzNDBDRUNCRjJEMDBCQjNGMjQgLyogRGF0YWJhc2VUcmFja2VyQ2xpZW50LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUZBRkUzMzBDRUNCRjJE
MDBCQjNGMjQgLyogRGF0YWJhc2VUcmFja2VyQ2xpZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTRDNTBGN0IwRTgwMURGMzAwOTgzMkEwIC8q
IFhNTFRva2VuaXplckxpYnhtbDIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNTRDNTBGN0EwRTgwMURGMzAwOTgzMkEwIC8qIFhNTFRva2VuaXplckxp
YnhtbDIuY3BwICovOyB9OwogCQk1NTBBMEJDOTA4NUY2MDM5MDA3MzUzRDYgLyogUXVhbGlmaWVk
TmFtZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
NTBBMEJDNzA4NUY2MDM5MDA3MzUzRDYgLyogUXVhbGlmaWVkTmFtZS5jcHAgKi87IH07CkBAIC00
MTcwLDEzICs0MTYzLDIxIEBACiAJCUI1MjNDRjA5MTE4MjY3NTQwMEVCQjI5QyAvKiBTUUxUcmFu
c2FjdGlvblN5bmMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQjUyM0NGMDIxMTgyNjc1NDAwRUJCMjlDIC8qIFNRTFRyYW5zYWN0aW9uU3luYy5jcHAg
Ki87IH07CiAJCUI1MjNDRjBBMTE4MjY3NTQwMEVCQjI5QyAvKiBEYXRhYmFzZVN5bmMuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjUyM0NGMDMxMTgy
Njc1NDAwRUJCMjlDIC8qIERhdGFiYXNlU3luYy5jcHAgKi87IH07CiAJCUI1MjNDRjBCMTE4MjY3
NTQwMEVCQjI5QyAvKiBEYXRhYmFzZVN5bmMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEI1MjNDRjA0MTE4MjY3NTQwMEVCQjI5QyAvKiBEYXRhYmFzZVN5
bmMuaCAqLzsgfTsKKwkJQjU5REQ2OTkxMTkwMjlFNTAwN0U5Njg0IC8qIEpTRGF0YWJhc2VDYWxs
YmFjay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjU5
REQ2OTcxMTkwMjlFNTAwN0U5Njg0IC8qIEpTRGF0YWJhc2VDYWxsYmFjay5oICovOyB9OworCQlC
NTlERDY5QTExOTAyOUU1MDA3RTk2ODQgLyogSlNEYXRhYmFzZUNhbGxiYWNrLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEI1OURENjk4MTE5MDI5RTUw
MDdFOTY4NCAvKiBKU0RhdGFiYXNlQ2FsbGJhY2suY3BwICovOyB9OworCQlCNTlERDY5RDExOTAy
QTQyMDA3RTk2ODQgLyogSlNTUUxUcmFuc2FjdGlvbkNhbGxiYWNrLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCNTlERDY5QjExOTAyQTQyMDA3RTk2ODQg
LyogSlNTUUxUcmFuc2FjdGlvbkNhbGxiYWNrLmggKi87IH07CisJCUI1OURENjlFMTE5MDJBNDIw
MDdFOTY4NCAvKiBKU1NRTFRyYW5zYWN0aW9uQ2FsbGJhY2suY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjU5REQ2OUMxMTkwMkE0MjAwN0U5Njg0IC8q
IEpTU1FMVHJhbnNhY3Rpb25DYWxsYmFjay5jcHAgKi87IH07CisJCUI1OURENkExMTE5MDJBNTIw
MDdFOTY4NCAvKiBKU1NRTFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjU5REQ2OUYxMTkwMkE1MjAwN0U5Njg0
IC8qIEpTU1FMVHJhbnNhY3Rpb25FcnJvckNhbGxiYWNrLmggKi87IH07CisJCUI1OURENkEyMTE5
MDJBNTIwMDdFOTY4NCAvKiBKU1NRTFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFjay5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCNTlERDZBMDExOTAyQTUy
MDA3RTk2ODQgLyogSlNTUUxUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2suY3BwICovOyB9OworCQlC
NTlERDZBNTExOTAyQTYyMDA3RTk2ODQgLyogSlNTUUxTdGF0ZW1lbnRDYWxsYmFjay5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjU5REQ2QTMxMTkwMkE2
MjAwN0U5Njg0IC8qIEpTU1FMU3RhdGVtZW50Q2FsbGJhY2suaCAqLzsgfTsKKwkJQjU5REQ2QTYx
MTkwMkE2MjAwN0U5Njg0IC8qIEpTU1FMU3RhdGVtZW50Q2FsbGJhY2suY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjU5REQ2QTQxMTkwMkE2MjAwN0U5
Njg0IC8qIEpTU1FMU3RhdGVtZW50Q2FsbGJhY2suY3BwICovOyB9OworCQlCNTlERDZBOTExOTAy
QTcxMDA3RTk2ODQgLyogSlNTUUxTdGF0ZW1lbnRFcnJvckNhbGxiYWNrLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCNTlERDZBNzExOTAyQTcxMDA3RTk2
ODQgLyogSlNTUUxTdGF0ZW1lbnRFcnJvckNhbGxiYWNrLmggKi87IH07CisJCUI1OURENkFBMTE5
MDJBNzEwMDdFOTY4NCAvKiBKU1NRTFN0YXRlbWVudEVycm9yQ2FsbGJhY2suY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjU5REQ2QTgxMTkwMkE3MTAw
N0U5Njg0IC8qIEpTU1FMU3RhdGVtZW50RXJyb3JDYWxsYmFjay5jcHAgKi87IH07CiAJCUI1QTY4
NDIyMEZGQUJFOTgwMEQyNDY4OSAvKiBTUUxpdGVGaWxlU3lzdGVtLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCNUE2ODQyMTBGRkFCRTk4MDBEMjQ2ODkg
LyogU1FMaXRlRmlsZVN5c3RlbS5oICovOyB9OwogCQlCNUE2ODQyNDBGRkFCRUFBMDBEMjQ2ODkg
LyogU1FMaXRlRmlsZVN5c3RlbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBCNUE2ODQyMzBGRkFCRUFBMDBEMjQ2ODkgLyogU1FMaXRlRmlsZVN5c3Rl
bS5jcHAgKi87IH07CiAJCUI1QzExMjNCMTAyQjZDNDYwMDA5NjU3OCAvKiBTUUxUcmFuc2FjdGlv
bkNvb3JkaW5hdG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEI1QzExMjM5MTAyQjZDNDYwMDA5NjU3OCAvKiBTUUxUcmFuc2FjdGlvbkNvb3JkaW5h
dG9yLmNwcCAqLzsgfTsKIAkJQjVDMTEyM0MxMDJCNkM0NjAwMDk2NTc4IC8qIFNRTFRyYW5zYWN0
aW9uQ29vcmRpbmF0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEI1QzExMjNBMTAyQjZDNDYwMDA5NjU3OCAvKiBTUUxUcmFuc2FjdGlvbkNvb3JkaW5h
dG9yLmggKi87IH07CiAJCUI1RDM2MDFBMTEyRjhCNTYwMDQ4REVBOCAvKiBEYXRhYmFzZUNhbGxi
YWNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCNUQz
NjAxOTExMkY4QjU2MDA0OERFQTggLyogRGF0YWJhc2VDYWxsYmFjay5oICovOyB9OwotCQlCNUQz
NjAxRDExMkY4QkEwMDA0OERFQTggLyogSlNEYXRhYmFzZUNhbGxiYWNrLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCNUQzNjAxQzExMkY4QkEwMDA0OERF
QTggLyogSlNEYXRhYmFzZUNhbGxiYWNrLmggKi87IH07Ci0JCUI1RDM2MDFGMTEyRjhCQTgwMDQ4
REVBOCAvKiBKU0RhdGFiYXNlQ2FsbGJhY2suY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQjVEMzYwMUUxMTJGOEJBODAwNDhERUE4IC8qIEpTRGF0YWJh
c2VDYWxsYmFjay5jcHAgKi87IH07CiAJCUI3MUZFNkRGMTEwOTFDQjMwMERBRUY3NyAvKiBQcmlu
dENvbnRleHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEI3NzZENDNBMTEwNDUyNUQwMEJFQjBFQyAvKiBQcmludENvbnRleHQuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlCNzc2RDQzRDExMDQ1Mjc1MDBC
RUIwRUMgLyogUHJpbnRDb250ZXh0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEI3NzZENDNDMTEwNDUyNzUwMEJFQjBFQyAvKiBQcmludENvbnRleHQu
Y3BwICovOyB9OwogCQlCQzAwRjAwNDBFMEExODU1MDBGRDA0RTMgLyogRE9NRmlsZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMwMEVGRkUwRTBBMTg1
NTAwRkQwNEUzIC8qIERPTUZpbGUuaCAqLzsgfTsKQEAgLTY2NTUsMTQgKzY2NTYsNyBAQAogCQk1
MUU0QURCMzBDNDJCNENGMDA0MkJDNTUgLyogRlRQRGlyZWN0b3J5RG9jdW1lbnQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZUUERpcmVjdG9yeURvY3VtZW50Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxRUM5MjU3MENFOTBEQjQwMEY5MDMwOCAvKiBTUUxF
cnJvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTUUxFcnJvci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MUVDOTI1ODBDRTkwREI0MDBGOTAzMDggLyogU1FM
RXJyb3IuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNRTEVycm9yLmlkbDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTFFQzkyNUIwQ0U5MERENDAwRjkwMzA4IC8qIEpTQ3VzdG9t
U1FMU3RhdGVtZW50Q2FsbGJhY2suY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gSlNDdXN0b21TUUxTdGF0ZW1lbnRDYWxsYmFjay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCTUxRUM5MjVDMENFOTBERDQwMEY5MDMwOCAvKiBKU0N1c3RvbVNRTFN0YXRl
bWVudENhbGxiYWNrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTQ3VzdG9t
U1FMU3RhdGVtZW50Q2FsbGJhY2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFF
QzkyNUQwQ0U5MERENDAwRjkwMzA4IC8qIEpTQ3VzdG9tU1FMU3RhdGVtZW50RXJyb3JDYWxsYmFj
ay5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0N1c3RvbVNRTFN0
YXRlbWVudEVycm9yQ2FsbGJhY2suY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1
MUVDOTI1RTBDRTkwREQ0MDBGOTAzMDggLyogSlNDdXN0b21TUUxTdGF0ZW1lbnRFcnJvckNhbGxi
YWNrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTQ3VzdG9tU1FMU3RhdGVt
ZW50RXJyb3JDYWxsYmFjay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1MUVDOTI1
RjBDRTkwREQ0MDBGOTAzMDggLyogSlNDdXN0b21TUUxUcmFuc2FjdGlvbkNhbGxiYWNrLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQ3VzdG9tU1FMVHJhbnNhY3Rp
b25DYWxsYmFjay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTUxRUM5MjYwMENF
OTBERDQwMEY5MDMwOCAvKiBKU0N1c3RvbVNRTFRyYW5zYWN0aW9uQ2FsbGJhY2suaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNDdXN0b21TUUxUcmFuc2FjdGlvbkNhbGxiYWNr
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTUxRUM5MjYxMENFOTBERDQwMEY5MDMw
OCAvKiBKU0N1c3RvbVNRTFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFjay5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0N1c3RvbVNRTFRyYW5zYWN0aW9uRXJyb3JDYWxs
YmFjay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTUxRUM5MjYyMENFOTBERDQw
MEY5MDMwOCAvKiBKU0N1c3RvbVNRTFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFjay5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0N1c3RvbVNRTFRyYW5zYWN0aW9uRXJyb3JDYWxs
YmFjay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MUY2QTNENTA2NjNCRjA0MDA0
RDI5MTkgLyogSFRNTENhbnZhc0VsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSFRNTENhbnZhc0VsZW1lbnQuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJNTFG
NkEzRDYwNjYzQkYwNDAwNEQyOTE5IC8qIEhUTUxDYW52YXNFbGVtZW50LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhUTUxDYW52YXNFbGVtZW50
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9
OwogCQk1MUZBRkUzMzBDRUNCRjJEMDBCQjNGMjQgLyogRGF0YWJhc2VUcmFja2VyQ2xpZW50Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERhdGFiYXNlVHJhY2tlckNsaWVudC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtOTUyNCwxMyArOTUxOCwyNiBAQAogCQlC
NTIzQ0YwMjExODI2NzU0MDBFQkIyOUMgLyogU1FMVHJhbnNhY3Rpb25TeW5jLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNRTFRyYW5zYWN0aW9uU3luYy5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUI1MjNDRjAzMTE4MjY3NTQwMEVCQjI5QyAvKiBE
YXRhYmFzZVN5bmMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRGF0
YWJhc2VTeW5jLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjUyM0NGMDQxMTgy
Njc1NDAwRUJCMjlDIC8qIERhdGFiYXNlU3luYy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBEYXRhYmFzZVN5bmMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQjU5
REQ2OEQxMTkwMjk4RTAwN0U5Njg0IC8qIERhdGFiYXNlQ2FsbGJhY2suaWRsICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dDsgcGF0aCA9IERhdGFiYXNlQ2FsbGJhY2suaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlCNTlERDY4RTExOTAyOThFMDA3RTk2ODQgLyogU1FMU3RhdGVtZW50Q2FsbGJhY2su
aWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNRTFN0YXRlbWVudENhbGxiYWNrLmlkbDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQjU5REQ2OEYxMTkwMjk4RTAwN0U5Njg0IC8qIFNR
TFN0YXRlbWVudEVycm9yQ2FsbGJhY2suaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNRTFN0
YXRlbWVudEVycm9yQ2FsbGJhY2suaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlC
NTlERDY5MDExOTAyOThFMDA3RTk2ODQgLyogU1FMVHJhbnNhY3Rpb25DYWxsYmFjay5pZGwgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0OyBwYXRoID0gU1FMVHJhbnNhY3Rpb25DYWxsYmFjay5pZGw7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUI1OURENjkxMTE5MDI5OEUwMDdFOTY4NCAvKiBTUUxUcmFu
c2FjdGlvbkVycm9yQ2FsbGJhY2suaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNRTFRyYW5z
YWN0aW9uRXJyb3JDYWxsYmFjay5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUI1
OURENjk3MTE5MDI5RTUwMDdFOTY4NCAvKiBKU0RhdGFiYXNlQ2FsbGJhY2suaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNEYXRhYmFzZUNhbGxiYWNrLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUI1OURENjk4MTE5MDI5RTUwMDdFOTY4NCAvKiBKU0RhdGFiYXNl
Q2FsbGJhY2suY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNEYXRh
YmFzZUNhbGxiYWNrLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQjU5REQ2OUIx
MTkwMkE0MjAwN0U5Njg0IC8qIEpTU1FMVHJhbnNhY3Rpb25DYWxsYmFjay5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBKU1NRTFRyYW5zYWN0aW9uQ2FsbGJhY2suaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQjU5REQ2OUMxMTkwMkE0MjAwN0U5Njg0IC8qIEpTU1FM
VHJhbnNhY3Rpb25DYWxsYmFjay5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBKU1NRTFRyYW5zYWN0aW9uQ2FsbGJhY2suY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlCNTlERDY5RjExOTAyQTUyMDA3RTk2ODQgLyogSlNTUUxUcmFuc2FjdGlvbkVycm9y
Q2FsbGJhY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNTUUxUcmFuc2Fj
dGlvbkVycm9yQ2FsbGJhY2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQjU5REQ2
QTAxMTkwMkE1MjAwN0U5Njg0IC8qIEpTU1FMVHJhbnNhY3Rpb25FcnJvckNhbGxiYWNrLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTU1FMVHJhbnNhY3Rpb25FcnJv
ckNhbGxiYWNrLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQjU5REQ2QTMxMTkw
MkE2MjAwN0U5Njg0IC8qIEpTU1FMU3RhdGVtZW50Q2FsbGJhY2suaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gSlNTUUxTdGF0ZW1lbnRDYWxsYmFjay5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlCNTlERDZBNDExOTAyQTYyMDA3RTk2ODQgLyogSlNTUUxTdGF0ZW1l
bnRDYWxsYmFjay5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1NR
TFN0YXRlbWVudENhbGxiYWNrLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQjU5
REQ2QTcxMTkwMkE3MTAwN0U5Njg0IC8qIEpTU1FMU3RhdGVtZW50RXJyb3JDYWxsYmFjay5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1NRTFN0YXRlbWVudEVycm9yQ2FsbGJh
Y2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQjU5REQ2QTgxMTkwMkE3MTAwN0U5
Njg0IC8qIEpTU1FMU3RhdGVtZW50RXJyb3JDYWxsYmFjay5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBKU1NRTFN0YXRlbWVudEVycm9yQ2FsbGJhY2suY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCNUE2ODQyMTBGRkFCRTk4MDBEMjQ2ODkgLyogU1FM
aXRlRmlsZVN5c3RlbS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBTUUxpdGVG
aWxlU3lzdGVtLmg7IHBhdGggPSBzcWwvU1FMaXRlRmlsZVN5c3RlbS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlCNUE2ODQyMzBGRkFCRUFBMDBEMjQ2ODkgLyogU1FMaXRlRmlsZVN5
c3RlbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBTUUxpdGVGaWxl
U3lzdGVtLmNwcDsgcGF0aCA9IHNxbC9TUUxpdGVGaWxlU3lzdGVtLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQjVDMTEyMzkxMDJCNkM0NjAwMDk2NTc4IC8qIFNRTFRyYW5zYWN0
aW9uQ29vcmRpbmF0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
U1FMVHJhbnNhY3Rpb25Db29yZGluYXRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUI1QzExMjNBMTAyQjZDNDYwMDA5NjU3OCAvKiBTUUxUcmFuc2FjdGlvbkNvb3JkaW5hdG9y
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNRTFRyYW5zYWN0aW9uQ29vcmRp
bmF0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjVEMzYwMTkxMTJGOEI1NjAw
NDhERUE4IC8qIERhdGFiYXNlQ2FsbGJhY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gRGF0YWJhc2VDYWxsYmFjay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlC
NUQzNjAxQzExMkY4QkEwMDA0OERFQTggLyogSlNEYXRhYmFzZUNhbGxiYWNrLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTRGF0YWJhc2VDYWxsYmFjay5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwotCQlCNUQzNjAxRTExMkY4QkE4MDA0OERFQTggLyogSlNEYXRhYmFz
ZUNhbGxiYWNrLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRGF0
YWJhc2VDYWxsYmFjay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUI3NzZENDNB
MTEwNDUyNUQwMEJFQjBFQyAvKiBQcmludENvbnRleHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gUHJpbnRDb250ZXh0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUI3NzZENDNDMTEwNDUyNzUwMEJFQjBFQyAvKiBQcmludENvbnRleHQuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUHJpbnRDb250ZXh0LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQkMwMEVGRkUwRTBBMTg1NTAwRkQwNEUzIC8qIERPTUZpbGUuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NRmlsZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtMTA3NTMsNiArMTA3NjAsNyBAQAogCQkJCTUxQTQ1QjU1MENBRDdG
RDcwMDBEMkJFOSAvKiBEYXRhYmFzZUF1dGhvcml6ZXIuY3BwICovLAogCQkJCTUxQTQ1QjU0MENB
RDdGRDcwMDBEMkJFOSAvKiBEYXRhYmFzZUF1dGhvcml6ZXIuaCAqLywKIAkJCQlCNUQzNjAxOTEx
MkY4QjU2MDA0OERFQTggLyogRGF0YWJhc2VDYWxsYmFjay5oICovLAorCQkJCUI1OURENjhEMTE5
MDI5OEUwMDdFOTY4NCAvKiBEYXRhYmFzZUNhbGxiYWNrLmlkbCAqLywKIAkJCQk1MTE2RDk3NTBD
RjE3N0JEMDBDMkI4NEQgLyogRGF0YWJhc2VEZXRhaWxzLmggKi8sCiAJCQkJQjUyM0NGMDMxMTgy
Njc1NDAwRUJCMjlDIC8qIERhdGFiYXNlU3luYy5jcHAgKi8sCiAJCQkJQjUyM0NGMDQxMTgyNjc1
NDAwRUJCMjlDIC8qIERhdGFiYXNlU3luYy5oICovLApAQCAtMTA3ODIsMTYgKzEwNzkwLDIwIEBA
CiAJCQkJNTE1QjAzOTgwQ0QxNjQyQTAwQjdFQTlDIC8qIFNRTFN0YXRlbWVudC5jcHAgKi8sCiAJ
CQkJNTE1QjAzOTcwQ0QxNjQyQTAwQjdFQTlDIC8qIFNRTFN0YXRlbWVudC5oICovLAogCQkJCTFB
N0NDQjE1MENEOTQ2OUEwMEI3QjY0RSAvKiBTUUxTdGF0ZW1lbnRDYWxsYmFjay5oICovLAorCQkJ
CUI1OURENjhFMTE5MDI5OEUwMDdFOTY4NCAvKiBTUUxTdGF0ZW1lbnRDYWxsYmFjay5pZGwgKi8s
CiAJCQkJMUE3Q0NCMTYwQ0Q5NDY5QTAwQjdCNjRFIC8qIFNRTFN0YXRlbWVudEVycm9yQ2FsbGJh
Y2suaCAqLywKKwkJCQlCNTlERDY4RjExOTAyOThFMDA3RTk2ODQgLyogU1FMU3RhdGVtZW50RXJy
b3JDYWxsYmFjay5pZGwgKi8sCiAJCQkJMUFCRkU3NTIwQ0Q5NjhEMDAwRkU0ODM0IC8qIFNRTFRy
YW5zYWN0aW9uLmNwcCAqLywKIAkJCQkxQTdDQ0IyMjBDRDk0NkZEMDBCN0I2NEUgLyogU1FMVHJh
bnNhY3Rpb24uaCAqLywKIAkJCQkxQTdDQ0IyMzBDRDk0NkZEMDBCN0I2NEUgLyogU1FMVHJhbnNh
Y3Rpb24uaWRsICovLAogCQkJCTFBN0NDQjE3MENEOTQ2OUEwMEI3QjY0RSAvKiBTUUxUcmFuc2Fj
dGlvbkNhbGxiYWNrLmggKi8sCisJCQkJQjU5REQ2OTAxMTkwMjk4RTAwN0U5Njg0IC8qIFNRTFRy
YW5zYWN0aW9uQ2FsbGJhY2suaWRsICovLAogCQkJCUI1MUJGNkVFMTAyQzlFNTkwMDAyQzE1QSAv
KiBTUUxUcmFuc2FjdGlvbkNsaWVudC5jcHAgKi8sCiAJCQkJQjUxQkY2RUYxMDJDOUU1OTAwMDJD
MTVBIC8qIFNRTFRyYW5zYWN0aW9uQ2xpZW50LmggKi8sCiAJCQkJQjVDMTEyMzkxMDJCNkM0NjAw
MDk2NTc4IC8qIFNRTFRyYW5zYWN0aW9uQ29vcmRpbmF0b3IuY3BwICovLAogCQkJCUI1QzExMjNB
MTAyQjZDNDYwMDA5NjU3OCAvKiBTUUxUcmFuc2FjdGlvbkNvb3JkaW5hdG9yLmggKi8sCiAJCQkJ
MUE3Q0NCMTgwQ0Q5NDY5QTAwQjdCNjRFIC8qIFNRTFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFjay5o
ICovLAorCQkJCUI1OURENjkxMTE5MDI5OEUwMDdFOTY4NCAvKiBTUUxUcmFuc2FjdGlvbkVycm9y
Q2FsbGJhY2suaWRsICovLAogCQkJCUI1MjNDRjAyMTE4MjY3NTQwMEVCQjI5QyAvKiBTUUxUcmFu
c2FjdGlvblN5bmMuY3BwICovLAogCQkJCUI1MjNDRjAxMTE4MjY3NTQwMEVCQjI5QyAvKiBTUUxU
cmFuc2FjdGlvblN5bmMuaCAqLywKIAkJCQlCNTIzQ0VGRjExODI2NzU0MDBFQkIyOUMgLyogU1FM
VHJhbnNhY3Rpb25TeW5jQ2FsbGJhY2suaCAqLywKQEAgLTE0MDY3LDYgKzE0MDc5LDE2IEBACiAJ
CQkJNTFFM0Y5RDUwREEwNUUxRDAwMjUwOTExIC8qIEpTU3RvcmFnZS5oICovLAogCQkJCTUxRTBC
QUU4MERBNTVENEEwMEE5RTQxNyAvKiBKU1N0b3JhZ2VFdmVudC5jcHAgKi8sCiAJCQkJNTFFMEJB
RTkwREE1NUQ0QTAwQTlFNDE3IC8qIEpTU3RvcmFnZUV2ZW50LmggKi8sCisJCQkJQjU5REQ2OTcx
MTkwMjlFNTAwN0U5Njg0IC8qIEpTRGF0YWJhc2VDYWxsYmFjay5oICovLAorCQkJCUI1OURENjk4
MTE5MDI5RTUwMDdFOTY4NCAvKiBKU0RhdGFiYXNlQ2FsbGJhY2suY3BwICovLAorCQkJCUI1OURE
NjlCMTE5MDJBNDIwMDdFOTY4NCAvKiBKU1NRTFRyYW5zYWN0aW9uQ2FsbGJhY2suaCAqLywKKwkJ
CQlCNTlERDY5QzExOTAyQTQyMDA3RTk2ODQgLyogSlNTUUxUcmFuc2FjdGlvbkNhbGxiYWNrLmNw
cCAqLywKKwkJCQlCNTlERDY5RjExOTAyQTUyMDA3RTk2ODQgLyogSlNTUUxUcmFuc2FjdGlvbkVy
cm9yQ2FsbGJhY2suaCAqLywKKwkJCQlCNTlERDZBMDExOTAyQTUyMDA3RTk2ODQgLyogSlNTUUxU
cmFuc2FjdGlvbkVycm9yQ2FsbGJhY2suY3BwICovLAorCQkJCUI1OURENkEzMTE5MDJBNjIwMDdF
OTY4NCAvKiBKU1NRTFN0YXRlbWVudENhbGxiYWNrLmggKi8sCisJCQkJQjU5REQ2QTQxMTkwMkE2
MjAwN0U5Njg0IC8qIEpTU1FMU3RhdGVtZW50Q2FsbGJhY2suY3BwICovLAorCQkJCUI1OURENkE3
MTE5MDJBNzEwMDdFOTY4NCAvKiBKU1NRTFN0YXRlbWVudEVycm9yQ2FsbGJhY2suaCAqLywKKwkJ
CQlCNTlERDZBODExOTAyQTcxMDA3RTk2ODQgLyogSlNTUUxTdGF0ZW1lbnRFcnJvckNhbGxiYWNr
LmNwcCAqLywKIAkJCSk7CiAJCQluYW1lID0gU3RvcmFnZTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7CkBAIC0xNDg5Miw4ICsxNDkxNCw2IEBACiAJCQkJMTQzMkU4NDYwQzUxNDkzODAwQjE1
MDBGIC8qIEdDQ29udHJvbGxlci5oICovLAogCQkJCTFDODFCQTAzMEU5NzM0ODMwMDI2NkUwNyAv
KiBKYXZhU2NyaXB0Q2FsbEZyYW1lLmNwcCAqLywKIAkJCQkxQzgxQkEwNDBFOTczNDgzMDAyNjZF
MDcgLyogSmF2YVNjcmlwdENhbGxGcmFtZS5oICovLAotCQkJCUI1RDM2MDFFMTEyRjhCQTgwMDQ4
REVBOCAvKiBKU0RhdGFiYXNlQ2FsbGJhY2suY3BwICovLAotCQkJCUI1RDM2MDFDMTEyRjhCQTAw
MDQ4REVBOCAvKiBKU0RhdGFiYXNlQ2FsbGJhY2suaCAqLywKIAkJCQlCQzUzREFDNDExNDMyRkQ5
MDAwRDgxN0UgLyogSlNEZWJ1Z1dyYXBwZXJTZXQuY3BwICovLAogCQkJCUJDNTNEQUMxMTE0MzJF
RUUwMDBEODE3RSAvKiBKU0RlYnVnV3JhcHBlclNldC5oICovLAogCQkJCTkzQjcwRDQ3MDlFQjBD
N0MwMDlEODQ2OCAvKiBKU0RPTUJpbmRpbmcuY3BwICovLApAQCAtMTUzNDEsMTQgKzE1MzYxLDcg
QEAKIAkJCQlGRTgwRDdBMzBFOUMxRUQyMDAwRDZGNzUgLyogSlNDdXN0b21Qb3NpdGlvbkNhbGxi
YWNrLmggKi8sCiAJCQkJRkU4MEQ3QTQwRTlDMUVEMjAwMEQ2Rjc1IC8qIEpTQ3VzdG9tUG9zaXRp
b25FcnJvckNhbGxiYWNrLmNwcCAqLywKIAkJCQlGRTgwRDdBNTBFOUMxRUQyMDAwRDZGNzUgLyog
SlNDdXN0b21Qb3NpdGlvbkVycm9yQ2FsbGJhY2suaCAqLywKLQkJCQk1MUVDOTI1QjBDRTkwREQ0
MDBGOTAzMDggLyogSlNDdXN0b21TUUxTdGF0ZW1lbnRDYWxsYmFjay5jcHAgKi8sCi0JCQkJNTFF
QzkyNUMwQ0U5MERENDAwRjkwMzA4IC8qIEpTQ3VzdG9tU1FMU3RhdGVtZW50Q2FsbGJhY2suaCAq
LywKIAkJCQk1MUVDOTI1RDBDRTkwREQ0MDBGOTAzMDggLyogSlNDdXN0b21TUUxTdGF0ZW1lbnRF
cnJvckNhbGxiYWNrLmNwcCAqLywKLQkJCQk1MUVDOTI1RTBDRTkwREQ0MDBGOTAzMDggLyogSlND
dXN0b21TUUxTdGF0ZW1lbnRFcnJvckNhbGxiYWNrLmggKi8sCi0JCQkJNTFFQzkyNUYwQ0U5MERE
NDAwRjkwMzA4IC8qIEpTQ3VzdG9tU1FMVHJhbnNhY3Rpb25DYWxsYmFjay5jcHAgKi8sCi0JCQkJ
NTFFQzkyNjAwQ0U5MERENDAwRjkwMzA4IC8qIEpTQ3VzdG9tU1FMVHJhbnNhY3Rpb25DYWxsYmFj
ay5oICovLAotCQkJCTUxRUM5MjYxMENFOTBERDQwMEY5MDMwOCAvKiBKU0N1c3RvbVNRTFRyYW5z
YWN0aW9uRXJyb3JDYWxsYmFjay5jcHAgKi8sCi0JCQkJNTFFQzkyNjIwQ0U5MERENDAwRjkwMzA4
IC8qIEpTQ3VzdG9tU1FMVHJhbnNhY3Rpb25FcnJvckNhbGxiYWNrLmggKi8sCiAJCQkJMUEzNDE3
QzgwQ0VDRkYyNTAwNDlDQkRFIC8qIEpTQ3VzdG9tVm9pZENhbGxiYWNrLmNwcCAqLywKIAkJCQkx
QTM0MTdDNzBDRUNGRjI1MDA0OUNCREUgLyogSlNDdXN0b21Wb2lkQ2FsbGJhY2suaCAqLywKIAkJ
CQlFMTBCOTNDMjBCNzNDMjkxMDAzRUQ4OTAgLyogSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuY3Bw
ICovLApAQCAtMTc3MDUsMTQgKzE3NzE4LDkgQEAKIAkJCQlFNDc3OEI4MDExNUE1ODFBMDBCNUQz
NzIgLyogSlNDdXN0b21FdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkU4MEQ3QTgwRTlDMUVE
MjAwMEQ2Rjc1IC8qIEpTQ3VzdG9tUG9zaXRpb25DYWxsYmFjay5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJRkU4MEQ3QUEwRTlDMUVEMjAwMEQ2Rjc1IC8qIEpTQ3VzdG9tUG9zaXRpb25FcnJvckNhbGxi
YWNrLmggaW4gSGVhZGVycyAqLywKLQkJCQk1MUVDOTI2NDBDRTkwREQ0MDBGOTAzMDggLyogSlND
dXN0b21TUUxTdGF0ZW1lbnRDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNTFFQzkyNjYw
Q0U5MERENDAwRjkwMzA4IC8qIEpTQ3VzdG9tU1FMU3RhdGVtZW50RXJyb3JDYWxsYmFjay5oIGlu
IEhlYWRlcnMgKi8sCi0JCQkJNTFFQzkyNjgwQ0U5MERENDAwRjkwMzA4IC8qIEpTQ3VzdG9tU1FM
VHJhbnNhY3Rpb25DYWxsYmFjay5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNTFFQzkyNkEwQ0U5MERE
NDAwRjkwMzA4IC8qIEpTQ3VzdG9tU1FMVHJhbnNhY3Rpb25FcnJvckNhbGxiYWNrLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkxQTM0MTdDOTBDRUNGRjI1MDA0OUNCREUgLyogSlNDdXN0b21Wb2lkQ2Fs
bGJhY2suaCBpbiBIZWFkZXJzICovLAogCQkJCUUxMEI5MzdDMEI3M0MwMEEwMDNFRDg5MCAvKiBK
U0N1c3RvbVhQYXRoTlNSZXNvbHZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFFODJGOTAwQ0FB
RkE5RDAwMjIzN0FFIC8qIEpTRGF0YWJhc2UuaCBpbiBIZWFkZXJzICovLAotCQkJCUI1RDM2MDFE
MTEyRjhCQTAwMDQ4REVBOCAvKiBKU0RhdGFiYXNlQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovLAog
CQkJCUJDNzdEMTZBMEZGMTlGNTYwMDcwODg3QiAvKiBKU0RhdGFHcmlkQ29sdW1uLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlCQzc3RDE2QzBGRjE5RjU2MDA3MDg4N0IgLyogSlNEYXRhR3JpZENvbHVt
bkxpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDQkNBRTNEMEZGMTkzOTkwMDA3NjJBRSAvKiBK
U0RhdGFHcmlkRGF0YVNvdXJjZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0xODkxOCw2ICsxODkyNiwx
MSBAQAogCQkJCUUxQkU1MTJFMENGNkM1MTIwMDJFQTk1OSAvKiBYU0xUVW5pY29kZVNvcnQuaCBp
biBIZWFkZXJzICovLAogCQkJCTk3REQ0RDg3MEZERjRENkUwMEVDRjlBNCAvKiBYU1NBdWRpdG9y
LmggaW4gSGVhZGVycyAqLywKIAkJCQlDRTE3MkUwMTExMzZFOENFMDA2MkE1MzMgLyogWm9vbU1v
ZGUuaCBpbiBIZWFkZXJzICovLAorCQkJCUI1OURENjk5MTE5MDI5RTUwMDdFOTY4NCAvKiBKU0Rh
dGFiYXNlQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovLAorCQkJCUI1OURENjlEMTE5MDJBNDIwMDdF
OTY4NCAvKiBKU1NRTFRyYW5zYWN0aW9uQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovLAorCQkJCUI1
OURENkExMTE5MDJBNTIwMDdFOTY4NCAvKiBKU1NRTFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFjay5o
IGluIEhlYWRlcnMgKi8sCisJCQkJQjU5REQ2QTUxMTkwMkE2MjAwN0U5Njg0IC8qIEpTU1FMU3Rh
dGVtZW50Q2FsbGJhY2suaCBpbiBIZWFkZXJzICovLAorCQkJCUI1OURENkE5MTE5MDJBNzEwMDdF
OTY4NCAvKiBKU1NRTFN0YXRlbWVudEVycm9yQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovLAogCQkJ
KTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAt
MTk5NzIsMTQgKzE5OTg1LDEwIEBACiAJCQkJRTQ3NzhCN0YxMTVBNTgxQTAwQjVEMzcyIC8qIEpT
Q3VzdG9tRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkU4MEQ3QTcwRTlDMUVEMjAwMEQ2
Rjc1IC8qIEpTQ3VzdG9tUG9zaXRpb25DYWxsYmFjay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlG
RTgwRDdBOTBFOUMxRUQyMDAwRDZGNzUgLyogSlNDdXN0b21Qb3NpdGlvbkVycm9yQ2FsbGJhY2su
Y3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJNTFFQzkyNjMwQ0U5MERENDAwRjkwMzA4IC8qIEpTQ3Vz
dG9tU1FMU3RhdGVtZW50Q2FsbGJhY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTFFQzkyNjUw
Q0U5MERENDAwRjkwMzA4IC8qIEpTQ3VzdG9tU1FMU3RhdGVtZW50RXJyb3JDYWxsYmFjay5jcHAg
aW4gU291cmNlcyAqLywKLQkJCQk1MUVDOTI2NzBDRTkwREQ0MDBGOTAzMDggLyogSlNDdXN0b21T
UUxUcmFuc2FjdGlvbkNhbGxiYWNrLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTUxRUM5MjY5MENF
OTBERDQwMEY5MDMwOCAvKiBKU0N1c3RvbVNRTFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFjay5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkxQTM0MTdDQTBDRUNGRjI1MDA0OUNCREUgLyogSlNDdXN0b21W
b2lkQ2FsbGJhY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTEwQjkzQzMwQjczQzI5MTAwM0VE
ODkwIC8qIEpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFB
RTgyRjhGMENBQUZBOUQwMDIyMzdBRSAvKiBKU0RhdGFiYXNlLmNwcCBpbiBTb3VyY2VzICovLAot
CQkJCUI1RDM2MDFGMTEyRjhCQTgwMDQ4REVBOCAvKiBKU0RhdGFiYXNlQ2FsbGJhY2suY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQkNDRTU4QUMxMDYxRThDRjAwOEZCMzVBIC8qIEpTRGF0YWJhc2VD
dXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM3N0QxNjkwRkYxOUY1NjAwNzA4ODdCIC8q
IEpTRGF0YUdyaWRDb2x1bW4uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM3N0QxNkIwRkYxOUY1
NjAwNzA4ODdCIC8qIEpTRGF0YUdyaWRDb2x1bW5MaXN0LmNwcCBpbiBTb3VyY2VzICovLApAQCAt
MjExNTcsNiArMjExNjYsMTEgQEAKIAkJCQk5M0YxOUIwNTA4MjQ1RTU5MDAxRTlBQkMgLyogWFNM
VFByb2Nlc3NvckxpYnhzbHQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTFCRTUxMkQwQ0Y2QzUx
MjAwMkVBOTU5IC8qIFhTTFRVbmljb2RlU29ydC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5N0RE
NEQ4NjBGREY0RDZFMDBFQ0Y5QTQgLyogWFNTQXVkaXRvci5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQlCNTlERDY5QTExOTAyOUU1MDA3RTk2ODQgLyogSlNEYXRhYmFzZUNhbGxiYWNrLmNwcCBpbiBT
b3VyY2VzICovLAorCQkJCUI1OURENjlFMTE5MDJBNDIwMDdFOTY4NCAvKiBKU1NRTFRyYW5zYWN0
aW9uQ2FsbGJhY2suY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQjU5REQ2QTIxMTkwMkE1MjAwN0U5
Njg0IC8qIEpTU1FMVHJhbnNhY3Rpb25FcnJvckNhbGxiYWNrLmNwcCBpbiBTb3VyY2VzICovLAor
CQkJCUI1OURENkE2MTE5MDJBNjIwMDdFOTY4NCAvKiBKU1NRTFN0YXRlbWVudENhbGxiYWNrLmNw
cCBpbiBTb3VyY2VzICovLAorCQkJCUI1OURENkFBMTE5MDJBNzEwMDdFOTY4NCAvKiBKU1NRTFN0
YXRlbWVudEVycm9yQ2FsbGJhY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25s
eUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkluZGV4OiBXZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwCShyZXZpc2lvbiA1ODc0NykKKysrIFdl
YkNvcmUvYmluZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25lLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMzksMTAgKzM5LDcgQEAKICNpbmNsdWRlICJKU0NsaXBib2FyZEN1c3RvbS5jcHAiCiAjaW5j
bHVkZSAiSlNDb25zb2xlQ3VzdG9tLmNwcCIKICNpbmNsdWRlICJKU0Nvb3JkaW5hdGVzQ3VzdG9t
LmNwcCIKLSNpbmNsdWRlICJKU0N1c3RvbVNRTFN0YXRlbWVudENhbGxiYWNrLmNwcCIKICNpbmNs
dWRlICJKU0N1c3RvbVNRTFN0YXRlbWVudEVycm9yQ2FsbGJhY2suY3BwIgotI2luY2x1ZGUgIkpT
Q3VzdG9tU1FMVHJhbnNhY3Rpb25DYWxsYmFjay5jcHAiCi0jaW5jbHVkZSAiSlNDdXN0b21TUUxU
cmFuc2FjdGlvbkVycm9yQ2FsbGJhY2suY3BwIgogI2luY2x1ZGUgIkpTQ3VzdG9tVm9pZENhbGxi
YWNrLmNwcCIKICNpbmNsdWRlICJKU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5jcHAiCiAjaW5jbHVk
ZSAiSlNET01BcHBsaWNhdGlvbkNhY2hlQ3VzdG9tLmNwcCIKSW5kZXg6IFdlYkNvcmUvYmluZGlu
Z3MvanMvSlNDdXN0b21TUUxTdGF0ZW1lbnRDYWxsYmFjay5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0N1c3RvbVNRTFN0YXRlbWVudENhbGxiYWNrLmNwcAkocmV2aXNp
b24gNTg3NDcpCisrKyBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tU1FMU3RhdGVtZW50Q2Fs
bGJhY2suY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDgxICswLDAgQEAKLS8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMDcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAqIDEuICBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgotICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJB
cHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKLSAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1
c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCi0gKiAgICAgZnJvbSB0
aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgot
ICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklC
VVRPUlMgIkFTIElTIiBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwotICogKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOwotICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECi0gKiBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0gKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25m
aWcuaCIKLSNpbmNsdWRlICJKU0N1c3RvbVNRTFN0YXRlbWVudENhbGxiYWNrLmgiCi0KLSNpZiBF
TkFCTEUoREFUQUJBU0UpCi0KLSNpbmNsdWRlICJGcmFtZS5oIgotI2luY2x1ZGUgIkpTU1FMUmVz
dWx0U2V0LmgiCi0jaW5jbHVkZSAiSlNTUUxUcmFuc2FjdGlvbi5oIgotI2luY2x1ZGUgIlNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQuaCIKLSNpbmNsdWRlIDxydW50aW1lL0pTTG9jay5oPgotI2luY2x1
ZGUgPHd0Zi9NYWluVGhyZWFkLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotdXNpbmcgbmFt
ZXNwYWNlIEpTQzsKLQotSlNDdXN0b21TUUxTdGF0ZW1lbnRDYWxsYmFjazo6SlNDdXN0b21TUUxT
dGF0ZW1lbnRDYWxsYmFjayhKU09iamVjdCogY2FsbGJhY2ssIEpTRE9NR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QpCi0gICAgOiBtX2RhdGEobmV3IEpTQ2FsbGJhY2tEYXRhKGNhbGxiYWNrLCBn
bG9iYWxPYmplY3QpKQotICAgICwgbV9pc29sYXRlZFdvcmxkKGdsb2JhbE9iamVjdC0+d29ybGQo
KSkKLXsKLX0KLQotSlNDdXN0b21TUUxTdGF0ZW1lbnRDYWxsYmFjazo6fkpTQ3VzdG9tU1FMU3Rh
dGVtZW50Q2FsbGJhY2soKQotewotICAgIGNhbGxPbk1haW5UaHJlYWQoSlNDYWxsYmFja0RhdGE6
OmRlbGV0ZURhdGEsIG1fZGF0YSk7Ci0jaWZuZGVmIE5ERUJVRwotICAgIG1fZGF0YSA9IDA7Ci0j
ZW5kaWYKLX0KLQotdm9pZCBKU0N1c3RvbVNRTFN0YXRlbWVudENhbGxiYWNrOjpoYW5kbGVFdmVu
dChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBTUUxUcmFuc2FjdGlvbiogdHJhbnNh
Y3Rpb24sIFNRTFJlc3VsdFNldCogcmVzdWx0U2V0LCBib29sJiByYWlzZWRFeGNlcHRpb24pCi17
Ci0gICAgQVNTRVJUKG1fZGF0YSk7Ci0gICAgQVNTRVJUKGNvbnRleHQpOwotCi0gICAgUmVmUHRy
PEpTQ3VzdG9tU1FMU3RhdGVtZW50Q2FsbGJhY2s+IHByb3RlY3QodGhpcyk7Ci0KLSAgICBKU0M6
OkpTTG9jayBsb2NrKFNpbGVuY2VBc3NlcnRpb25zT25seSk7Ci0gICAgSlNET01HbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCA9IHRvSlNET01HbG9iYWxPYmplY3QoY29udGV4dCwgbV9pc29sYXRl
ZFdvcmxkLmdldCgpKTsKLSAgICBpZiAoIWdsb2JhbE9iamVjdCkKLSAgICAgICAgcmV0dXJuOwot
Ci0gICAgRXhlY1N0YXRlKiBleGVjID0gZ2xvYmFsT2JqZWN0LT5nbG9iYWxFeGVjKCk7Ci0gICAg
TWFya2VkQXJndW1lbnRCdWZmZXIgYXJnczsKLSAgICBhcmdzLmFwcGVuZCh0b0pTKGV4ZWMsIGRl
cHJlY2F0ZWRHbG9iYWxPYmplY3RGb3JQcm90b3R5cGUoZXhlYyksIHRyYW5zYWN0aW9uKSk7Ci0g
ICAgYXJncy5hcHBlbmQodG9KUyhleGVjLCBkZXByZWNhdGVkR2xvYmFsT2JqZWN0Rm9yUHJvdG90
eXBlKGV4ZWMpLCByZXN1bHRTZXQpKTsKLQotICAgIG1fZGF0YS0+aW52b2tlQ2FsbGJhY2soYXJn
cywgJnJhaXNlZEV4Y2VwdGlvbik7Ci19Ci0KLX0KLQotI2VuZGlmIC8vIEVOQUJMRShEQVRBQkFT
RSkKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21TUUxTdGF0ZW1lbnRDYWxsYmFj
ay5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21TUUxTdGF0ZW1l
bnRDYWxsYmFjay5oCShyZXZpc2lvbiA1ODc0NykKKysrIFdlYkNvcmUvYmluZGluZ3MvanMvSlND
dXN0b21TUUxTdGF0ZW1lbnRDYWxsYmFjay5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDY0ICswLDAg
QEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAq
IDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKLSAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUg
Q29tcHV0ZXIsIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKLSAqICAgICBpdHMgY29u
dHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJp
dmVkCi0gKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3Jp
dHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUwotICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotICogTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECi0g
KiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0gKiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICov
Ci0KLSNpZm5kZWYgSlNDdXN0b21TUUxTdGF0ZW1lbnRDYWxsYmFja19oCi0jZGVmaW5lIEpTQ3Vz
dG9tU1FMU3RhdGVtZW50Q2FsbGJhY2tfaAotCi0jaWYgRU5BQkxFKERBVEFCQVNFKQotCi0jaW5j
bHVkZSAiSlNDYWxsYmFja0RhdGEuaCIKLSNpbmNsdWRlICJTUUxTdGF0ZW1lbnRDYWxsYmFjay5o
IgotI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xh
c3MgU1FMUmVzdWx0U2V0OwotCi1jbGFzcyBKU0N1c3RvbVNRTFN0YXRlbWVudENhbGxiYWNrIDog
cHVibGljIFNRTFN0YXRlbWVudENhbGxiYWNrIHsKLXB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxKU0N1c3RvbVNRTFN0YXRlbWVudENhbGxiYWNrPiBjcmVhdGUoSlNDOjpKU09iamVjdCog
Y2FsbGJhY2ssIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCi0gICAgewotICAgICAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IEpTQ3VzdG9tU1FMU3RhdGVtZW50Q2FsbGJhY2soY2FsbGJh
Y2ssIGdsb2JhbE9iamVjdCkpOwotICAgIH0KLQotICAgIHZpcnR1YWwgfkpTQ3VzdG9tU1FMU3Rh
dGVtZW50Q2FsbGJhY2soKTsKLQotICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVFdmVudChTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiwgU1FMVHJhbnNhY3Rpb24qLCBTUUxSZXN1bHRTZXQqLCBib29sJiBy
YWlzZWRFeGNlcHRpb24pOwotCi1wcml2YXRlOgotICAgIEpTQ3VzdG9tU1FMU3RhdGVtZW50Q2Fs
bGJhY2soSlNDOjpKU09iamVjdCogY2FsbGJhY2ssIEpTRE9NR2xvYmFsT2JqZWN0Kik7Ci0KLSAg
ICBKU0NhbGxiYWNrRGF0YSogbV9kYXRhOwotICAgIFJlZlB0cjxET01XcmFwcGVyV29ybGQ+IG1f
aXNvbGF0ZWRXb3JsZDsKLX07Ci0KLX0KLQotI2VuZGlmIC8vIEVOQUJMRShEQVRBQkFTRSkKLQot
I2VuZGlmIC8vIEpTQ3VzdG9tU1FMU3RhdGVtZW50Q2FsbGJhY2tfaApJbmRleDogV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0N1c3RvbVNRTFN0YXRlbWVudEVycm9yQ2FsbGJhY2suY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21TUUxTdGF0ZW1lbnRFcnJvckNhbGxi
YWNrLmNwcAkocmV2aXNpb24gNTg3NDcpCisrKyBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9t
U1FMU3RhdGVtZW50RXJyb3JDYWxsYmFjay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI3LDQyICsy
NywyNiBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJKU0N1c3RvbVNR
TFN0YXRlbWVudEVycm9yQ2FsbGJhY2suaCIKKyNpbmNsdWRlICJKU1NRTFN0YXRlbWVudEVycm9y
Q2FsbGJhY2suaCIKIAogI2lmIEVOQUJMRShEQVRBQkFTRSkKIAogI2luY2x1ZGUgIkZyYW1lLmgi
Ci0jaW5jbHVkZSAiSlNDYWxsYmFja0RhdGEuaCIKICNpbmNsdWRlICJKU1NRTEVycm9yLmgiCiAj
aW5jbHVkZSAiSlNTUUxUcmFuc2FjdGlvbi5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQuaCIKICNpbmNsdWRlIDxydW50aW1lL0pTTG9jay5oPgotI2luY2x1ZGUgPHd0Zi9NYWlu
VGhyZWFkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIEpTQzsK
IAotSlNDdXN0b21TUUxTdGF0ZW1lbnRFcnJvckNhbGxiYWNrOjpKU0N1c3RvbVNRTFN0YXRlbWVu
dEVycm9yQ2FsbGJhY2soSlNPYmplY3QqIGNhbGxiYWNrLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0KQotICAgIDogbV9kYXRhKG5ldyBKU0NhbGxiYWNrRGF0YShjYWxsYmFjaywgZ2xv
YmFsT2JqZWN0KSkKLSAgICAsIG1faXNvbGF0ZWRXb3JsZChnbG9iYWxPYmplY3QtPndvcmxkKCkp
Ci17Ci19Ci0KLUpTQ3VzdG9tU1FMU3RhdGVtZW50RXJyb3JDYWxsYmFjazo6fkpTQ3VzdG9tU1FM
U3RhdGVtZW50RXJyb3JDYWxsYmFjaygpCi17Ci0gICAgY2FsbE9uTWFpblRocmVhZChKU0NhbGxi
YWNrRGF0YTo6ZGVsZXRlRGF0YSwgbV9kYXRhKTsKLSNpZm5kZWYgTkRFQlVHCi0gICAgbV9kYXRh
ID0gMDsKLSNlbmRpZgotfQotCi1ib29sIEpTQ3VzdG9tU1FMU3RhdGVtZW50RXJyb3JDYWxsYmFj
azo6aGFuZGxlRXZlbnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgU1FMVHJhbnNh
Y3Rpb24qIHRyYW5zYWN0aW9uLCBTUUxFcnJvciogZXJyb3IpCitib29sIEpTU1FMU3RhdGVtZW50
RXJyb3JDYWxsYmFjazo6aGFuZGxlRXZlbnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4
dCwgU1FMVHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uLCBTUUxFcnJvciogZXJyb3IpCiB7CiAgICAg
QVNTRVJUKG1fZGF0YSk7CiAgICAgQVNTRVJUKGNvbnRleHQpOwogCi0gICAgUmVmUHRyPEpTQ3Vz
dG9tU1FMU3RhdGVtZW50RXJyb3JDYWxsYmFjaz4gcHJvdGVjdCh0aGlzKTsKKyAgICBSZWZQdHI8
SlNTUUxTdGF0ZW1lbnRFcnJvckNhbGxiYWNrPiBwcm90ZWN0KHRoaXMpOwogCiAgICAgSlNDOjpK
U0xvY2sgbG9jayhTaWxlbmNlQXNzZXJ0aW9uc09ubHkpOwogICAgIEpTRE9NR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QgPSB0b0pTRE9NR2xvYmFsT2JqZWN0KGNvbnRleHQsIG1faXNvbGF0ZWRX
b3JsZC5nZXQoKSk7CkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tU1FMU3RhdGVt
ZW50RXJyb3JDYWxsYmFjay5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvanMvSlND
dXN0b21TUUxTdGF0ZW1lbnRFcnJvckNhbGxiYWNrLmgJKHJldmlzaW9uIDU4NzQ3KQorKysgV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0N1c3RvbVNRTFN0YXRlbWVudEVycm9yQ2FsbGJhY2suaAkod29y
a2luZyBjb3B5KQpAQCAtMSw2NSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA3IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwotICogYXJlIG1ldDoKLSAqCi0gKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiAg
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqIDMuICBO
ZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIENvbXB1dGVyLCBJbmMuICgiQXBwbGUiKSBub3IgdGhl
IG5hbWVzIG9mCi0gKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNl
IG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAotICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3
aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIg
QU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQotICogRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSAqIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsK
LSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORAotICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRgotICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIEpTQ3VzdG9tU1FMU3RhdGVtZW50
RXJyb3JDYWxsYmFja19oCi0jZGVmaW5lIEpTQ3VzdG9tU1FMU3RhdGVtZW50RXJyb3JDYWxsYmFj
a19oCi0KLSNpZiBFTkFCTEUoREFUQUJBU0UpCi0KLSNpbmNsdWRlICJKU0NhbGxiYWNrRGF0YS5o
IgotI2luY2x1ZGUgIlNRTFN0YXRlbWVudEVycm9yQ2FsbGJhY2suaCIKLSNpbmNsdWRlIDx3dGYv
Rm9yd2FyZC5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIEpTQ2FsbGJhY2tEYXRh
OwotY2xhc3MgU1FMRXJyb3I7Ci0KLWNsYXNzIEpTQ3VzdG9tU1FMU3RhdGVtZW50RXJyb3JDYWxs
YmFjayA6IHB1YmxpYyBTUUxTdGF0ZW1lbnRFcnJvckNhbGxiYWNrIHsKLXB1YmxpYzoKLSAgICBz
dGF0aWMgUGFzc1JlZlB0cjxKU0N1c3RvbVNRTFN0YXRlbWVudEVycm9yQ2FsbGJhY2s+IGNyZWF0
ZShKU0M6OkpTT2JqZWN0KiBjYWxsYmFjaywgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgSlNDdXN0b21TUUxTdGF0ZW1l
bnRFcnJvckNhbGxiYWNrKGNhbGxiYWNrLCBnbG9iYWxPYmplY3QpKTsKLSAgICB9Ci0KLSAgICB2
aXJ0dWFsIH5KU0N1c3RvbVNRTFN0YXRlbWVudEVycm9yQ2FsbGJhY2soKTsKLQotICAgIHZpcnR1
YWwgYm9vbCBoYW5kbGVFdmVudChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgU1FMVHJhbnNhY3Rp
b24qLCBTUUxFcnJvciopOwotCi1wcml2YXRlOgotICAgIEpTQ3VzdG9tU1FMU3RhdGVtZW50RXJy
b3JDYWxsYmFjayhKU0M6OkpTT2JqZWN0KiBjYWxsYmFjaywgSlNET01HbG9iYWxPYmplY3QqKTsK
LQotICAgIEpTQ2FsbGJhY2tEYXRhKiBtX2RhdGE7Ci0gICAgUmVmUHRyPERPTVdyYXBwZXJXb3Js
ZD4gbV9pc29sYXRlZFdvcmxkOwotfTsKLQotfQotCi0jZW5kaWYgLy8gRU5BQkxFKERBVEFCQVNF
KQotCi0jZW5kaWYgLy8gSlNDdXN0b21TUUxTdGF0ZW1lbnRFcnJvckNhbGxiYWNrX2gKSW5kZXg6
IFdlYkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21TUUxUcmFuc2FjdGlvbkNhbGxiYWNrLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tU1FMVHJhbnNhY3Rpb25D
YWxsYmFjay5jcHAJKHJldmlzaW9uIDU4NzQ3KQorKysgV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1
c3RvbVNRTFRyYW5zYWN0aW9uQ2FsbGJhY2suY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDg4ICsw
LDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDcsIDIwMDggQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0
OgotICoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKLSAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICogMy4gIE5laXRoZXIgdGhlIG5hbWUg
b2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKLSAqICAg
ICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9k
dWN0cyBkZXJpdmVkCi0gKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMg
cHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCi0gKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUwotICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotICogTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5ECi0gKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0gKiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJKU0N1c3RvbVNRTFRy
YW5zYWN0aW9uQ2FsbGJhY2suaCIKLQotI2lmIEVOQUJMRShEQVRBQkFTRSkKLQotI2luY2x1ZGUg
IkZyYW1lLmgiCi0jaW5jbHVkZSAiSlNDYWxsYmFja0RhdGEuaCIKLSNpbmNsdWRlICJKU1NRTFRy
YW5zYWN0aW9uLmgiCi0jaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgotI2luY2x1
ZGUgPHJ1bnRpbWUvSlNMb2NrLmg+Ci0jaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KLSNpbmNs
dWRlIDx3dGYvUmVmQ291bnRlZExlYWtDb3VudGVyLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsK
LQotdXNpbmcgbmFtZXNwYWNlIEpTQzsKLQotI2lmbmRlZiBOREVCVUcKLXN0YXRpYyBXVEY6OlJl
ZkNvdW50ZWRMZWFrQ291bnRlciBjb3VudGVyKCJKU0N1c3RvbVNRTFRyYW5zYWN0aW9uQ2FsbGJh
Y2siKTsKLSNlbmRpZgotCi1KU0N1c3RvbVNRTFRyYW5zYWN0aW9uQ2FsbGJhY2s6OkpTQ3VzdG9t
U1FMVHJhbnNhY3Rpb25DYWxsYmFjayhKU09iamVjdCogY2FsbGJhY2ssIEpTRE9NR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QpCi0gICAgOiBtX2RhdGEobmV3IEpTQ2FsbGJhY2tEYXRhKGNhbGxi
YWNrLCBnbG9iYWxPYmplY3QpKQotICAgICwgbV9pc29sYXRlZFdvcmxkKGdsb2JhbE9iamVjdC0+
d29ybGQoKSkKLXsKLSNpZm5kZWYgTkRFQlVHCi0gICAgY291bnRlci5pbmNyZW1lbnQoKTsKLSNl
bmRpZgotfQotCi1KU0N1c3RvbVNRTFRyYW5zYWN0aW9uQ2FsbGJhY2s6On5KU0N1c3RvbVNRTFRy
YW5zYWN0aW9uQ2FsbGJhY2soKQotewotICAgIGNhbGxPbk1haW5UaHJlYWQoSlNDYWxsYmFja0Rh
dGE6OmRlbGV0ZURhdGEsIG1fZGF0YSk7Ci0jaWZuZGVmIE5ERUJVRwotICAgIG1fZGF0YSA9IDA7
Ci0gICAgY291bnRlci5kZWNyZW1lbnQoKTsKLSNlbmRpZgotfQotCi12b2lkIEpTQ3VzdG9tU1FM
VHJhbnNhY3Rpb25DYWxsYmFjazo6aGFuZGxlRXZlbnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCog
Y29udGV4dCwgU1FMVHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uLCBib29sJiByYWlzZWRFeGNlcHRp
b24pCi17Ci0gICAgQVNTRVJUKG1fZGF0YSk7Ci0gICAgQVNTRVJUKGNvbnRleHQpOwotCi0gICAg
UmVmUHRyPEpTQ3VzdG9tU1FMVHJhbnNhY3Rpb25DYWxsYmFjaz4gcHJvdGVjdCh0aGlzKTsKLQot
ICAgIEpTQzo6SlNMb2NrIGxvY2soU2lsZW5jZUFzc2VydGlvbnNPbmx5KTsKLSAgICBKU0RPTUds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gdG9KU0RPTUdsb2JhbE9iamVjdChjb250ZXh0LCBt
X2lzb2xhdGVkV29ybGQuZ2V0KCkpOwotICAgIGlmICghZ2xvYmFsT2JqZWN0KQotICAgICAgICBy
ZXR1cm47Ci0KLSAgICBFeGVjU3RhdGUqIGV4ZWMgPSBnbG9iYWxPYmplY3QtPmdsb2JhbEV4ZWMo
KTsKLSAgICBNYXJrZWRBcmd1bWVudEJ1ZmZlciBhcmdzOwotICAgIGFyZ3MuYXBwZW5kKHRvSlMo
ZXhlYywgZGVwcmVjYXRlZEdsb2JhbE9iamVjdEZvclByb3RvdHlwZShleGVjKSwgdHJhbnNhY3Rp
b24pKTsKLSAgICBtX2RhdGEtPmludm9rZUNhbGxiYWNrKGFyZ3MsICZyYWlzZWRFeGNlcHRpb24p
OwotfQotCi19Ci0KLSNlbmRpZiAvLyBFTkFCTEUoREFUQUJBU0UpCkluZGV4OiBXZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTQ3VzdG9tU1FMVHJhbnNhY3Rpb25DYWxsYmFjay5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21TUUxUcmFuc2FjdGlvbkNhbGxiYWNrLmgJKHJl
dmlzaW9uIDU4NzQ3KQorKysgV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3RvbVNRTFRyYW5zYWN0
aW9uQ2FsbGJhY2suaAkod29ya2luZyBjb3B5KQpAQCAtMSw2NiArMCwwIEBACi0vKgotICogQ29w
eXJpZ2h0IChDKSAyMDA3LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAq
Ci0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqCi0gKiAxLiAgUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCi0gKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAg
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KLSAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIENvbXB1dGVy
LCBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCi0gKiAgICAgaXRzIGNvbnRyaWJ1dG9y
cyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAotICog
ICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVy
bWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJ
VFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotICog
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1Ig
SVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMK
LSAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsKLSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAotICogT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgotICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZu
ZGVmIEpTQ3VzdG9tU1FMVHJhbnNhY3Rpb25DYWxsYmFja19oCi0jZGVmaW5lIEpTQ3VzdG9tU1FM
VHJhbnNhY3Rpb25DYWxsYmFja19oCi0KLSNpZiBFTkFCTEUoREFUQUJBU0UpCi0KLSNpbmNsdWRl
ICJKU0RPTUdsb2JhbE9iamVjdC5oIgotI2luY2x1ZGUgIlNRTFRyYW5zYWN0aW9uQ2FsbGJhY2su
aCIKLSNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNs
YXNzIEZyYW1lOwotY2xhc3MgSlNDYWxsYmFja0RhdGE7Ci1jbGFzcyBKU0RPTUdsb2JhbE9iamVj
dDsKLQotY2xhc3MgSlNDdXN0b21TUUxUcmFuc2FjdGlvbkNhbGxiYWNrIDogcHVibGljIFNRTFRy
YW5zYWN0aW9uQ2FsbGJhY2sgewotcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEpTQ3Vz
dG9tU1FMVHJhbnNhY3Rpb25DYWxsYmFjaz4gY3JlYXRlKEpTQzo6SlNPYmplY3QqIGNhbGxiYWNr
LCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQotICAgIHsKLSAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKG5ldyBKU0N1c3RvbVNRTFRyYW5zYWN0aW9uQ2FsbGJhY2soY2FsbGJhY2ssIGds
b2JhbE9iamVjdCkpOwotICAgIH0KLQotICAgIHZpcnR1YWwgfkpTQ3VzdG9tU1FMVHJhbnNhY3Rp
b25DYWxsYmFjaygpOwotCi0gICAgdmlydHVhbCB2b2lkIGhhbmRsZUV2ZW50KFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqLCBTUUxUcmFuc2FjdGlvbiosIGJvb2wmIHJhaXNlZEV4Y2VwdGlvbik7Ci0K
LXByaXZhdGU6Ci0gICAgSlNDdXN0b21TUUxUcmFuc2FjdGlvbkNhbGxiYWNrKEpTQzo6SlNPYmpl
Y3QqIGNhbGxiYWNrLCBKU0RPTUdsb2JhbE9iamVjdCopOwotCi0gICAgSlNDYWxsYmFja0RhdGEq
IG1fZGF0YTsKLSAgICBSZWZQdHI8RE9NV3JhcHBlcldvcmxkPiBtX2lzb2xhdGVkV29ybGQ7Ci19
OwotCi19Ci0KLSNlbmRpZiAvLyBFTkFCTEUoREFUQUJBU0UpCi0KLSNlbmRpZiAvLyBKU0N1c3Rv
bVNRTFRyYW5zYWN0aW9uQ2FsbGJhY2tfaApJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1
c3RvbVNRTFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFjay5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0N1c3RvbVNRTFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFjay5jcHAJKHJl
dmlzaW9uIDU4NzQ3KQorKysgV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3RvbVNRTFRyYW5zYWN0
aW9uRXJyb3JDYWxsYmFjay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNzkgKzAsMCBAQAotLyoK
LSAqIENvcHlyaWdodCAoQykgMjAwNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0g
KgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKgotICogMS4gIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICog
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCi0gKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBDb21wdXRl
ciwgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgotICogICAgIGl0cyBjb250cmlidXRv
cnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKLSAq
ICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBl
cm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQg
SVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSAq
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUKLSAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9S
IElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKLSAqIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
Ci0gKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci0gKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKLSAqIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKLSAqIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lu
Y2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkpTQ3VzdG9tU1FMVHJhbnNhY3Rpb25FcnJvckNh
bGxiYWNrLmgiCi0KLSNpZiBFTkFCTEUoREFUQUJBU0UpCi0KLSNpbmNsdWRlICJGcmFtZS5oIgot
I2luY2x1ZGUgIkpTQ2FsbGJhY2tEYXRhLmgiCi0jaW5jbHVkZSAiSlNTUUxFcnJvci5oIgotI2lu
Y2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKLSNpbmNsdWRlIDxydW50aW1lL0pTTG9j
ay5oPgotI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsK
LQotdXNpbmcgbmFtZXNwYWNlIEpTQzsKLQotSlNDdXN0b21TUUxUcmFuc2FjdGlvbkVycm9yQ2Fs
bGJhY2s6OkpTQ3VzdG9tU1FMVHJhbnNhY3Rpb25FcnJvckNhbGxiYWNrKEpTT2JqZWN0KiBjYWxs
YmFjaywgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKLSAgICA6IG1fZGF0YShuZXcg
SlNDYWxsYmFja0RhdGEoY2FsbGJhY2ssIGdsb2JhbE9iamVjdCkpCi0gICAgLCBtX2lzb2xhdGVk
V29ybGQoZ2xvYmFsT2JqZWN0LT53b3JsZCgpKQotewotfQotCi1KU0N1c3RvbVNRTFRyYW5zYWN0
aW9uRXJyb3JDYWxsYmFjazo6fkpTQ3VzdG9tU1FMVHJhbnNhY3Rpb25FcnJvckNhbGxiYWNrKCkK
LXsKLSAgICBjYWxsT25NYWluVGhyZWFkKEpTQ2FsbGJhY2tEYXRhOjpkZWxldGVEYXRhLCBtX2Rh
dGEpOwotI2lmbmRlZiBOREVCVUcKLSAgICBtX2RhdGEgPSAwOwotI2VuZGlmCi19Ci0KLXZvaWQg
SlNDdXN0b21TUUxUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2s6OmhhbmRsZUV2ZW50KFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFNRTEVycm9yKiBlcnJvcikKLXsKLSAgICBBU1NFUlQo
bV9kYXRhKTsKLSAgICBBU1NFUlQoY29udGV4dCk7Ci0KLSAgICBSZWZQdHI8SlNDdXN0b21TUUxU
cmFuc2FjdGlvbkVycm9yQ2FsbGJhY2s+IHByb3RlY3QodGhpcyk7Ci0KLSAgICBKU0M6OkpTTG9j
ayBsb2NrKFNpbGVuY2VBc3NlcnRpb25zT25seSk7Ci0gICAgSlNET01HbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCA9IHRvSlNET01HbG9iYWxPYmplY3QoY29udGV4dCwgbV9pc29sYXRlZFdvcmxk
LmdldCgpKTsKLSAgICBpZiAoIWdsb2JhbE9iamVjdCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAg
RXhlY1N0YXRlKiBleGVjID0gZ2xvYmFsT2JqZWN0LT5nbG9iYWxFeGVjKCk7Ci0gICAgTWFya2Vk
QXJndW1lbnRCdWZmZXIgYXJnczsKLSAgICBhcmdzLmFwcGVuZCh0b0pTKGV4ZWMsIGRlcHJlY2F0
ZWRHbG9iYWxPYmplY3RGb3JQcm90b3R5cGUoZXhlYyksIGVycm9yKSk7Ci0gICAgbV9kYXRhLT5p
bnZva2VDYWxsYmFjayhhcmdzKTsKLX0KLQotfQotCi0jZW5kaWYgLy8gRU5BQkxFKERBVEFCQVNF
KQpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3RvbVNRTFRyYW5zYWN0aW9uRXJyb3JD
YWxsYmFjay5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21TUUxU
cmFuc2FjdGlvbkVycm9yQ2FsbGJhY2suaAkocmV2aXNpb24gNTg3NDcpCisrKyBXZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTQ3VzdG9tU1FMVHJhbnNhY3Rpb25FcnJvckNhbGxiYWNrLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTEsNjQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNyBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
LSAqIGFyZSBtZXQ6Ci0gKgotICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKiAzLiAgTmVpdGhl
ciB0aGUgbmFtZSBvZiBBcHBsZSBDb21wdXRlciwgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1l
cyBvZgotICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBw
cm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKLSAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91
dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBB
TlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFIElNUExJRUQKLSAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSAqIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkKLSAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0gKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci0gKiBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQKLSAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YKLSAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBKU0N1c3RvbVNRTFRyYW5zYWN0aW9uRXJy
b3JDYWxsYmFja19oCi0jZGVmaW5lIEpTQ3VzdG9tU1FMVHJhbnNhY3Rpb25FcnJvckNhbGxiYWNr
X2gKLQotI2lmIEVOQUJMRShEQVRBQkFTRSkKLQotI2luY2x1ZGUgIkpTQ2FsbGJhY2tEYXRhLmgi
Ci0jaW5jbHVkZSAiU1FMVHJhbnNhY3Rpb25FcnJvckNhbGxiYWNrLmgiCi0jaW5jbHVkZSA8d3Rm
L0ZvcndhcmQuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBKU0NhbGxiYWNrRGF0
YTsKLWNsYXNzIFNRTEVycm9yOwotCi1jbGFzcyBKU0N1c3RvbVNRTFRyYW5zYWN0aW9uRXJyb3JD
YWxsYmFjayA6IHB1YmxpYyBTUUxUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2sgewotcHVibGljOgot
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPEpTQ3VzdG9tU1FMVHJhbnNhY3Rpb25FcnJvckNhbGxiYWNr
PiBjcmVhdGUoSlNDOjpKU09iamVjdCogY2FsbGJhY2ssIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QpCi0gICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEpTQ3VzdG9tU1FM
VHJhbnNhY3Rpb25FcnJvckNhbGxiYWNrKGNhbGxiYWNrLCBnbG9iYWxPYmplY3QpKTsKLSAgICB9
Ci0KLSAgICB2aXJ0dWFsIH5KU0N1c3RvbVNRTFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFjaygpOwot
Ci0gICAgdmlydHVhbCB2b2lkIGhhbmRsZUV2ZW50KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBT
UUxFcnJvciopOwotCi1wcml2YXRlOgotICAgIEpTQ3VzdG9tU1FMVHJhbnNhY3Rpb25FcnJvckNh
bGxiYWNrKEpTQzo6SlNPYmplY3QqIGNhbGxiYWNrLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0KTsKLQotICAgIEpTQ2FsbGJhY2tEYXRhKiBtX2RhdGE7Ci0gICAgUmVmUHRyPERPTVdy
YXBwZXJXb3JsZD4gbV9pc29sYXRlZFdvcmxkOwotfTsKLQotfQotI2VuZGlmIC8vIEVOQUJMRShE
QVRBQkFTRSkKLQotI2VuZGlmIC8vIEpTQ3VzdG9tU1FMVHJhbnNhY3Rpb25FcnJvckNhbGxiYWNr
X2gKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvanMvSlNEYXRhYmFzZUNhbGxiYWNrLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTRGF0YWJhc2VDYWxsYmFjay5jcHAJKHJl
dmlzaW9uIDU4NzQ3KQorKysgV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RhdGFiYXNlQ2FsbGJhY2su
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDgzICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
LSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgot
ICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZQotICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogZGlzdHJpYnV0aW9uLgotICog
ICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0
cwotICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9k
dWN0cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlv
ciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFTIElTIiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSAq
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotICogU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0j
aW5jbHVkZSAiSlNEYXRhYmFzZUNhbGxiYWNrLmgiCi0KLSNpZiBFTkFCTEUoREFUQUJBU0UpCi0K
LSNpbmNsdWRlICJGcmFtZS5oIgotI2luY2x1ZGUgIkpTRGF0YWJhc2UuaCIKLSNpbmNsdWRlICJT
Y3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCi0jaW5jbHVkZSA8cnVudGltZS9KU0xvY2suaD4KLSNp
bmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLXVzaW5n
IG5hbWVzcGFjZSBKU0M7Ci0KLUpTRGF0YWJhc2VDYWxsYmFjazo6SlNEYXRhYmFzZUNhbGxiYWNr
KEpTT2JqZWN0KiBjYWxsYmFjaywgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKLSAg
ICA6IG1fZGF0YShuZXcgSlNDYWxsYmFja0RhdGEoY2FsbGJhY2ssIGdsb2JhbE9iamVjdCkpCi0g
ICAgLCBtX2lzb2xhdGVkV29ybGQoZ2xvYmFsT2JqZWN0LT53b3JsZCgpKQotewotfQotCi1KU0Rh
dGFiYXNlQ2FsbGJhY2s6On5KU0RhdGFiYXNlQ2FsbGJhY2soKQotewotICAgIGNhbGxPbk1haW5U
aHJlYWQoSlNDYWxsYmFja0RhdGE6OmRlbGV0ZURhdGEsIG1fZGF0YSk7Ci0jaWZuZGVmIE5ERUJV
RwotICAgIG1fZGF0YSA9IDA7Ci0jZW5kaWYKLX0KLQotdm9pZCBKU0RhdGFiYXNlQ2FsbGJhY2s6
OmhhbmRsZUV2ZW50KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIERhdGFiYXNlKiBk
YXRhYmFzZSkKLXsKLSAgICBBU1NFUlQobV9kYXRhKTsKLSAgICBBU1NFUlQoY29udGV4dCk7Ci0K
LSAgICBSZWZQdHI8SlNEYXRhYmFzZUNhbGxiYWNrPiBwcm90ZWN0KHRoaXMpOwotCi0gICAgSlND
OjpKU0xvY2sgbG9jayhTaWxlbmNlQXNzZXJ0aW9uc09ubHkpOwotCi0gICAgSlNET01HbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCA9IHRvSlNET01HbG9iYWxPYmplY3QoY29udGV4dCwgbV9pc29s
YXRlZFdvcmxkLmdldCgpKTsKLSAgICBpZiAoIWdsb2JhbE9iamVjdCkKLSAgICAgICAgcmV0dXJu
OwotCi0gICAgRXhlY1N0YXRlKiBleGVjID0gZ2xvYmFsT2JqZWN0LT5nbG9iYWxFeGVjKCk7Ci0g
ICAgTWFya2VkQXJndW1lbnRCdWZmZXIgYXJnczsKLSAgICBhcmdzLmFwcGVuZCh0b0pTKGV4ZWMs
IGRhdGFiYXNlKSk7Ci0KLSAgICBib29sIGlnbm9yZWQ7Ci0gICAgbV9kYXRhLT5pbnZva2VDYWxs
YmFjayhhcmdzLCAmaWdub3JlZCk7Ci19Ci0KLX0KLQotI2VuZGlmIC8vIEVOQUJMRShEQVRBQkFT
RSkKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvanMvSlNEYXRhYmFzZUNhbGxiYWNrLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RhdGFiYXNlQ2FsbGJhY2suaAkocmV2aXNp
b24gNTg3NDcpCisrKyBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTRGF0YWJhc2VDYWxsYmFjay5oCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDY2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogICAg
ICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZQotICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lcgotICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogZGlzdHJpYnV0aW9uLgotICogICAgICog
TmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotICog
Y29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBk
ZXJpdmVkIGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0
dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUg
Q09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFTIElTIiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotICogU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotICog
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIEpTRGF0YWJhc2VDYWxsYmFja19o
Ci0jZGVmaW5lIEpTRGF0YWJhc2VDYWxsYmFja19oCi0KLSNpZiBFTkFCTEUoREFUQUJBU0UpCi0K
LSNpbmNsdWRlICJEYXRhYmFzZUNhbGxiYWNrLmgiCi0jaW5jbHVkZSAiSlNDYWxsYmFja0RhdGEu
aCIKLSNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNs
YXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7Ci0KLWNsYXNzIEpTRGF0YWJhc2VDYWxsYmFjayA6
IHB1YmxpYyBEYXRhYmFzZUNhbGxiYWNrIHsKLXB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0
cjxKU0RhdGFiYXNlQ2FsbGJhY2s+IGNyZWF0ZShKU0M6OkpTT2JqZWN0KiBjYWxsYmFjaywgSlNE
T01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBhZG9w
dFJlZihuZXcgSlNEYXRhYmFzZUNhbGxiYWNrKGNhbGxiYWNrLCBnbG9iYWxPYmplY3QpKTsKLSAg
ICB9Ci0KLSAgICB2aXJ0dWFsIH5KU0RhdGFiYXNlQ2FsbGJhY2soKTsKLQotICAgIHZpcnR1YWwg
dm9pZCBoYW5kbGVFdmVudChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgRGF0YWJhc2UqKTsKLQot
cHJpdmF0ZToKLSAgICBKU0RhdGFiYXNlQ2FsbGJhY2soSlNDOjpKU09iamVjdCogY2FsbGJhY2ss
IEpTRE9NR2xvYmFsT2JqZWN0Kik7Ci0KLSAgICBKU0NhbGxiYWNrRGF0YSogbV9kYXRhOwotICAg
IFJlZlB0cjxET01XcmFwcGVyV29ybGQ+IG1faXNvbGF0ZWRXb3JsZDsKLX07Ci0KLX0KLQotI2Vu
ZGlmIC8vIEVOQUJMRShEQVRBQkFTRSkKLQotI2VuZGlmIC8vIEpTRGF0YWJhc2VDYWxsYmFja19o
CkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTRGF0YWJhc2VDdXN0b20uY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvanMvSlNEYXRhYmFzZUN1c3RvbS5jcHAJKHJldmlzaW9u
IDU4NzQ3KQorKysgV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RhdGFiYXNlQ3VzdG9tLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMzUsOCArMzUsOCBAQAogI2luY2x1ZGUgIkRhdGFiYXNlLmgiCiAjaW5j
bHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCi0jaW5jbHVkZSAi
SlNDdXN0b21TUUxUcmFuc2FjdGlvbkNhbGxiYWNrLmgiCi0jaW5jbHVkZSAiSlNDdXN0b21TUUxU
cmFuc2FjdGlvbkVycm9yQ2FsbGJhY2suaCIKKyNpbmNsdWRlICJKU1NRTFRyYW5zYWN0aW9uQ2Fs
bGJhY2suaCIKKyNpbmNsdWRlICJKU1NRTFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFjay5oIgogI2lu
Y2x1ZGUgIkpTQ3VzdG9tVm9pZENhbGxiYWNrLmgiCiAjaW5jbHVkZSAiSlNET01XaW5kb3dDdXN0
b20uaCIKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgpAQCAtNTgsNyArNTgsNyBAQCBKU1Zh
bHVlIEpTRGF0YWJhc2U6OmNoYW5nZVZlcnNpb24oRXhlY1N0CiAgICAgICAgIHJldHVybiBqc1Vu
ZGVmaW5lZCgpOwogICAgIH0KICAgICAKLSAgICBSZWZQdHI8U1FMVHJhbnNhY3Rpb25DYWxsYmFj
az4gY2FsbGJhY2soSlNDdXN0b21TUUxUcmFuc2FjdGlvbkNhbGxiYWNrOjpjcmVhdGUob2JqZWN0
LCBzdGF0aWNfY2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGV4ZWMtPmR5bmFtaWNHbG9iYWxPYmpl
Y3QoKSkpKTsKKyAgICBSZWZQdHI8U1FMVHJhbnNhY3Rpb25DYWxsYmFjaz4gY2FsbGJhY2soSlNT
UUxUcmFuc2FjdGlvbkNhbGxiYWNrOjpjcmVhdGUob2JqZWN0LCBzdGF0aWNfY2FzdDxKU0RPTUds
b2JhbE9iamVjdCo+KGV4ZWMtPmR5bmFtaWNHbG9iYWxPYmplY3QoKSkpKTsKICAgICAKICAgICBS
ZWZQdHI8U1FMVHJhbnNhY3Rpb25FcnJvckNhbGxiYWNrPiBlcnJvckNhbGxiYWNrOwogICAgIGlm
ICghYXJncy5hdCgzKS5pc051bGwoKSkgewpAQCAtNjcsNyArNjcsNyBAQCBKU1ZhbHVlIEpTRGF0
YWJhc2U6OmNoYW5nZVZlcnNpb24oRXhlY1N0CiAgICAgICAgICAgICByZXR1cm4ganNVbmRlZmlu
ZWQoKTsKICAgICAgICAgfQogICAgICAgICAKLSAgICAgICAgZXJyb3JDYWxsYmFjayA9IEpTQ3Vz
dG9tU1FMVHJhbnNhY3Rpb25FcnJvckNhbGxiYWNrOjpjcmVhdGUob2JqZWN0LCBzdGF0aWNfY2Fz
dDxKU0RPTUdsb2JhbE9iamVjdCo+KGV4ZWMtPmR5bmFtaWNHbG9iYWxPYmplY3QoKSkpOworICAg
ICAgICBlcnJvckNhbGxiYWNrID0gSlNTUUxUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2s6OmNyZWF0
ZShvYmplY3QsIHN0YXRpY19jYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZXhlYy0+ZHluYW1pY0ds
b2JhbE9iamVjdCgpKSk7CiAgICAgfQogICAgIAogICAgIFJlZlB0cjxWb2lkQ2FsbGJhY2s+IHN1
Y2Nlc3NDYWxsYmFjazsKQEAgLTk0LDE2ICs5NCwxNSBAQCBzdGF0aWMgSlNWYWx1ZSBjcmVhdGVU
cmFuc2FjdGlvbihFeGVjU3RhCiAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwogICAgIH0g
ICAgICAgIAogICAgICAKLSAgICBSZWZQdHI8U1FMVHJhbnNhY3Rpb25DYWxsYmFjaz4gY2FsbGJh
Y2soSlNDdXN0b21TUUxUcmFuc2FjdGlvbkNhbGxiYWNrOjpjcmVhdGUob2JqZWN0LCBnbG9iYWxP
YmplY3QpKTsKKyAgICBSZWZQdHI8U1FMVHJhbnNhY3Rpb25DYWxsYmFjaz4gY2FsbGJhY2soSlNT
UUxUcmFuc2FjdGlvbkNhbGxiYWNrOjpjcmVhdGUob2JqZWN0LCBnbG9iYWxPYmplY3QpKTsKICAg
ICBSZWZQdHI8U1FMVHJhbnNhY3Rpb25FcnJvckNhbGxiYWNrPiBlcnJvckNhbGxiYWNrOwotICAg
IAogICAgIGlmIChhcmdzLnNpemUoKSA+IDEgJiYgIWFyZ3MuYXQoMSkuaXNOdWxsKCkpIHsKICAg
ICAgICAgaWYgKCEob2JqZWN0ID0gYXJncy5hdCgxKS5nZXRPYmplY3QoKSkpIHsKICAgICAgICAg
ICAgIHNldERPTUV4Y2VwdGlvbihleGVjLCBUWVBFX01JU01BVENIX0VSUik7CiAgICAgICAgICAg
ICByZXR1cm4ganNVbmRlZmluZWQoKTsKICAgICAgICAgfQogCi0gICAgICAgIGVycm9yQ2FsbGJh
Y2sgPSBKU0N1c3RvbVNRTFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFjazo6Y3JlYXRlKG9iamVjdCwg
Z2xvYmFsT2JqZWN0KTsKKyAgICAgICAgZXJyb3JDYWxsYmFjayA9IEpTU1FMVHJhbnNhY3Rpb25F
cnJvckNhbGxiYWNrOjpjcmVhdGUob2JqZWN0LCBnbG9iYWxPYmplY3QpOwogICAgIH0KIAogICAg
IFJlZlB0cjxWb2lkQ2FsbGJhY2s+IHN1Y2Nlc3NDYWxsYmFjazsKSW5kZXg6IFdlYkNvcmUvYmlu
ZGluZ3MvanMvSlNTUUxUcmFuc2FjdGlvbkN1c3RvbS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU1NRTFRyYW5zYWN0aW9uQ3VzdG9tLmNwcAkocmV2aXNpb24gNTg3NDcp
CisrKyBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTU1FMVHJhbnNhY3Rpb25DdXN0b20uY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMyw4ICszMyw4IEBACiAKICNpbmNsdWRlICJET01XaW5kb3cuaCIKICNp
bmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCi0jaW5jbHVkZSAiSlNDdXN0b21TUUxTdGF0ZW1lbnRD
YWxsYmFjay5oIgotI2luY2x1ZGUgIkpTQ3VzdG9tU1FMU3RhdGVtZW50RXJyb3JDYWxsYmFjay5o
IgorI2luY2x1ZGUgIkpTU1FMU3RhdGVtZW50Q2FsbGJhY2suaCIKKyNpbmNsdWRlICJKU1NRTFN0
YXRlbWVudEVycm9yQ2FsbGJhY2suaCIKICNpbmNsdWRlICJKU0RPTVdpbmRvd0N1c3RvbS5oIgog
I2luY2x1ZGUgIlNRTFRyYW5zYWN0aW9uLmgiCiAKQEAgLTk1LDcgKzk1LDcgQEAgSlNWYWx1ZSBK
U1NRTFRyYW5zYWN0aW9uOjpleGVjdXRlU3FsKEV4ZQogICAgICAgICAgICAgcmV0dXJuIGpzVW5k
ZWZpbmVkKCk7CiAgICAgICAgIH0KICAgICAgICAgCi0gICAgICAgIGNhbGxiYWNrID0gSlNDdXN0
b21TUUxTdGF0ZW1lbnRDYWxsYmFjazo6Y3JlYXRlKG9iamVjdCwgc3RhdGljX2Nhc3Q8SlNET01H
bG9iYWxPYmplY3QqPihleGVjLT5keW5hbWljR2xvYmFsT2JqZWN0KCkpKTsKKyAgICAgICAgY2Fs
bGJhY2sgPSBKU1NRTFN0YXRlbWVudENhbGxiYWNrOjpjcmVhdGUob2JqZWN0LCBzdGF0aWNfY2Fz
dDxKU0RPTUdsb2JhbE9iamVjdCo+KGV4ZWMtPmR5bmFtaWNHbG9iYWxPYmplY3QoKSkpOwogICAg
IH0KICAgICAKICAgICBSZWZQdHI8U1FMU3RhdGVtZW50RXJyb3JDYWxsYmFjaz4gZXJyb3JDYWxs
YmFjazsKQEAgLTEwNiw3ICsxMDYsNyBAQCBKU1ZhbHVlIEpTU1FMVHJhbnNhY3Rpb246OmV4ZWN1
dGVTcWwoRXhlCiAgICAgICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKICAgICAgICAgfQog
ICAgICAgICAKLSAgICAgICAgZXJyb3JDYWxsYmFjayA9IEpTQ3VzdG9tU1FMU3RhdGVtZW50RXJy
b3JDYWxsYmFjazo6Y3JlYXRlKG9iamVjdCwgc3RhdGljX2Nhc3Q8SlNET01HbG9iYWxPYmplY3Qq
PihleGVjLT5keW5hbWljR2xvYmFsT2JqZWN0KCkpKTsKKyAgICAgICAgZXJyb3JDYWxsYmFjayA9
IEpTU1FMU3RhdGVtZW50RXJyb3JDYWxsYmFjazo6Y3JlYXRlKG9iamVjdCwgc3RhdGljX2Nhc3Q8
SlNET01HbG9iYWxPYmplY3QqPihleGVjLT5keW5hbWljR2xvYmFsT2JqZWN0KCkpKTsKICAgICB9
CiAgICAgCiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CkluZGV4OiBXZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0JKHJldmlzaW9uIDU4NzQ3KQorKysgV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQkod29ya2luZyBjb3B5KQpAQCAt
MTkyLDYgKzE5Miw3IEBAIHN1YiBJbmRleEdldHRlclJldHVybnNTdHJpbmdzCiBzdWIgQWRkSW5j
bHVkZXNGb3JUeXBlCiB7CiAgICAgbXkgJHR5cGUgPSAkY29kZUdlbmVyYXRvci0+U3RyaXBNb2R1
bGUoc2hpZnQpOworICAgIG15ICRpc0NhbGxiYWNrID0gQF8gPyBzaGlmdCA6IDA7CiAKICAgICAj
IFdoZW4gd2UncmUgZmluaXNoZWQgd2l0aCB0aGUgb25lLWZpbGUtcGVyLWNsYXNzCiAgICAgIyBy
ZW9yZ2FuaXphdGlvbiwgd2Ugd29uJ3QgbmVlZCB0aGVzZSBzcGVjaWFsIGNhc2VzLgpAQCAtMjA0
LDYgKzIwNSw4IEBAIHN1YiBBZGRJbmNsdWRlc0ZvclR5cGUKICAgICB9IGVsc2lmICgkdHlwZSBl
cSAiWFBhdGhOU1Jlc29sdmVyIikgewogICAgICAgICAkaW1wbEluY2x1ZGVzeyJKU1hQYXRoTlNS
ZXNvbHZlci5oIn0gPSAxOwogICAgICAgICAkaW1wbEluY2x1ZGVzeyJKU0N1c3RvbVhQYXRoTlNS
ZXNvbHZlci5oIn0gPSAxOworICAgIH0gZWxzaWYgKCRpc0NhbGxiYWNrKSB7CisgICAgICAgICRp
bXBsSW5jbHVkZXN7IkpTJHt0eXBlfS5oIn0gPSAxOwogICAgIH0gZWxzZSB7CiAgICAgICAgICMg
ZGVmYXVsdCwgaW5jbHVkZSB0aGUgc2FtZSBuYW1lZCBmaWxlCiAgICAgICAgICRpbXBsSW5jbHVk
ZXN7IiR7dHlwZX0uaCJ9ID0gMTsKQEAgLTIwMjcsNyArMjAzMCw3IEBAIHN1YiBHZW5lcmF0ZUNh
bGxiYWNrSW1wbGVtZW50YXRpb24KICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiXG4i
IC4gR2V0TmF0aXZlVHlwZSgkZnVuY3Rpb24tPnNpZ25hdHVyZS0+dHlwZSkgLiAiICR7Y2xhc3NO
YW1lfTo6IiAuICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5uYW1lIC4gIihTY3JpcHRFeGVjdXRpb25D
b250ZXh0KiBjb250ZXh0Iik7CiAKICAgICAgICAgICAgIGZvcmVhY2ggbXkgJHBhcmFtIChAcGFy
YW1zKSB7Ci0gICAgICAgICAgICAgICAgQWRkSW5jbHVkZXNGb3JUeXBlKCRwYXJhbS0+dHlwZSk7
CisgICAgICAgICAgICAgICAgQWRkSW5jbHVkZXNGb3JUeXBlKCRwYXJhbS0+dHlwZSwgMSk7CiAg
ICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIsICIgLiBHZXROYXRpdmVUeXBlKCRw
YXJhbS0+dHlwZSkgLiAiICIgLiAkcGFyYW0tPm5hbWUpOwogICAgICAgICAgICAgfQogCkluZGV4
OiBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDYWxsYmFjay5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q2FsbGJh
Y2suY3BwCShyZXZpc2lvbiA1ODc0NykKKysrIFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdENhbGxiYWNrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjQsOCArMjQsOCBAQAog
CiAjaW5jbHVkZSAiSlNUZXN0Q2FsbGJhY2suaCIKIAotI2luY2x1ZGUgIkNsYXNzMS5oIgotI2lu
Y2x1ZGUgIkNsYXNzMi5oIgorI2luY2x1ZGUgIkpTQ2xhc3MxLmgiCisjaW5jbHVkZSAiSlNDbGFz
czIuaCIKICNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCiAjaW5jbHVkZSA8cnVu
dGltZS9KU0xvY2suaD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgpJbmRleDogV2ViQ29y
ZS9iaW5kaW5ncy92OC9jdXN0b20vVjhDdXN0b21TUUxTdGF0ZW1lbnRDYWxsYmFjay5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhDdXN0b21TUUxTdGF0ZW1l
bnRDYWxsYmFjay5jcHAJKHJldmlzaW9uIDU4NzQ3KQorKysgV2ViQ29yZS9iaW5kaW5ncy92OC9j
dXN0b20vVjhDdXN0b21TUUxTdGF0ZW1lbnRDYWxsYmFjay5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTEsODEgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOSBHb29nbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgotICogCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSAq
IG1ldDoKLSAqIAotICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSAqIGNvcHlyaWdo
dCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIKLSAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUKLSAqIGRpc3RyaWJ1dGlvbi4KLSAqICAgICAqIE5laXRoZXIgdGhlIG5h
bWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSAqIGNvbnRyaWJ1dG9ycyBt
YXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0g
KiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9u
LgotICogCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9M
REVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhF
IENPUFlSSUdIVAotICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwK
LSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLQotI2lmIEVOQUJMRShEQVRBQkFT
RSkKLQotI2luY2x1ZGUgIlY4Q3VzdG9tU1FMU3RhdGVtZW50Q2FsbGJhY2suaCIKLQotI2luY2x1
ZGUgIkZyYW1lLmgiCi0jaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgotI2luY2x1
ZGUgIlY4Q3VzdG9tVm9pZENhbGxiYWNrLmgiCi0jaW5jbHVkZSAiVjhTUUxSZXN1bHRTZXQuaCIK
LSNpbmNsdWRlICJWOFNRTFRyYW5zYWN0aW9uLmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQot
VjhDdXN0b21TUUxTdGF0ZW1lbnRDYWxsYmFjazo6VjhDdXN0b21TUUxTdGF0ZW1lbnRDYWxsYmFj
ayh2ODo6TG9jYWw8djg6Ok9iamVjdD4gY2FsbGJhY2ssIEZyYW1lKiBmcmFtZSkKLSAgICA6IG1f
Y2FsbGJhY2sodjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD46Ok5ldyhjYWxsYmFjaykpCi0gICAg
LCBtX2ZyYW1lKGZyYW1lKQotICAgICwgbV93b3JsZENvbnRleHQoVXNlQ3VycmVudFdvcmxkKQot
ewotfQotCi1WOEN1c3RvbVNRTFN0YXRlbWVudENhbGxiYWNrOjp+VjhDdXN0b21TUUxTdGF0ZW1l
bnRDYWxsYmFjaygpCi17Ci0gICAgbV9jYWxsYmFjay5EaXNwb3NlKCk7Ci19Ci0KLXZvaWQgVjhD
dXN0b21TUUxTdGF0ZW1lbnRDYWxsYmFjazo6aGFuZGxlRXZlbnQoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCogY29udGV4dCwgU1FMVHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uLCBTUUxSZXN1bHRTZXQq
IHJlc3VsdFNldCwgYm9vbCYgcmFpc2VkRXhjZXB0aW9uKQotewotICAgIHY4OjpIYW5kbGVTY29w
ZSBoYW5kbGVTY29wZTsKLQotICAgIHY4OjpIYW5kbGU8djg6OkNvbnRleHQ+IHY4Q29udGV4dCA9
IHRvVjhDb250ZXh0KGNvbnRleHQsIG1fd29ybGRDb250ZXh0KTsKLSAgICBpZiAodjhDb250ZXh0
LklzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgdjg6OkNvbnRleHQ6OlNjb3BlIHNj
b3BlKHY4Q29udGV4dCk7Ci0KLSAgICB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gYXJndltdID0gewot
ICAgICAgICB0b1Y4KHRyYW5zYWN0aW9uKSwKLSAgICAgICAgdG9WOChyZXN1bHRTZXQpCi0gICAg
fTsKLQotICAgIC8vIFByb3RlY3QgdGhlIGZyYW1lIHVudGlsIHRoZSBjYWxsYmFjayByZXR1cm5z
LgotICAgIFJlZlB0cjxGcmFtZT4gcHJvdGVjdG9yKG1fZnJhbWUpOwotCi0gICAgYm9vbCBjYWxs
YmFja1JldHVyblZhbHVlID0gZmFsc2U7Ci0gICAgcmFpc2VkRXhjZXB0aW9uID0gaW52b2tlQ2Fs
bGJhY2sobV9jYWxsYmFjaywgMiwgYXJndiwgY2FsbGJhY2tSZXR1cm5WYWx1ZSk7Ci19Ci0KLX0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL3Y4
L2N1c3RvbS9WOEN1c3RvbVNRTFN0YXRlbWVudENhbGxiYWNrLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhDdXN0b21TUUxTdGF0ZW1lbnRDYWxsYmFjay5oCShy
ZXZpc2lvbiA1ODc0NykKKysrIFdlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4Q3VzdG9tU1FM
U3RhdGVtZW50Q2FsbGJhY2suaAkod29ya2luZyBjb3B5KQpAQCAtMSw2NyArMCwwIEBACi0vKgot
ICogQ29weXJpZ2h0IChDKSAyMDA5IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0g
KiAKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotICogbWV0OgotICogCi0gKiAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAotICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotICogaW4gdGhlIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICog
ZGlzdHJpYnV0aW9uLgotICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBu
b3IgdGhlIG5hbWVzIG9mIGl0cwotICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9y
c2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0
aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKiAKLSAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRP
UlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSAqIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0gKiBPV05F
UiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotICogREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0g
KiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lm
bmRlZiBWOEN1c3RvbVNRTFN0YXRlbWVudENhbGxiYWNrX2gKLSNkZWZpbmUgVjhDdXN0b21TUUxT
dGF0ZW1lbnRDYWxsYmFja19oCi0KLSNpZiBFTkFCTEUoREFUQUJBU0UpCi0KLSNpbmNsdWRlICJT
UUxTdGF0ZW1lbnRDYWxsYmFjay5oIgotI2luY2x1ZGUgIldvcmxkQ29udGV4dEhhbmRsZS5oIgot
I2luY2x1ZGUgPHY4Lmg+Ci0jaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KLQotbmFtZXNwYWNlIFdl
YkNvcmUgewotCi1jbGFzcyBGcmFtZTsKLQotY2xhc3MgVjhDdXN0b21TUUxTdGF0ZW1lbnRDYWxs
YmFjayA6IHB1YmxpYyBTUUxTdGF0ZW1lbnRDYWxsYmFjayB7Ci1wdWJsaWM6Ci0gICAgc3RhdGlj
IFBhc3NSZWZQdHI8VjhDdXN0b21TUUxTdGF0ZW1lbnRDYWxsYmFjaz4gY3JlYXRlKHY4OjpMb2Nh
bDx2ODo6VmFsdWU+IHZhbHVlLCBGcmFtZSogZnJhbWUpCi0gICAgewotICAgICAgICBBU1NFUlQo
dmFsdWUtPklzT2JqZWN0KCkpOwotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFY4Q3VzdG9t
U1FMU3RhdGVtZW50Q2FsbGJhY2sodmFsdWUtPlRvT2JqZWN0KCksIGZyYW1lKSk7Ci0gICAgfQot
ICAgIHZpcnR1YWwgflY4Q3VzdG9tU1FMU3RhdGVtZW50Q2FsbGJhY2soKTsKLQotICAgIHZpcnR1
YWwgdm9pZCBoYW5kbGVFdmVudChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgU1FMVHJhbnNhY3Rp
b24qLCBTUUxSZXN1bHRTZXQqLCBib29sJiByYWlzZWRFeGNlcHRpb24pOwotcHJpdmF0ZToKLSAg
ICBWOEN1c3RvbVNRTFN0YXRlbWVudENhbGxiYWNrKHY4OjpMb2NhbDx2ODo6T2JqZWN0PiwgRnJh
bWUqKTsKLQotICAgIHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+IG1fY2FsbGJhY2s7Ci0gICAg
UmVmUHRyPEZyYW1lPiBtX2ZyYW1lOwotICAgIFdvcmxkQ29udGV4dEhhbmRsZSBtX3dvcmxkQ29u
dGV4dDsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmCi0KLSNlbmRpZiAv
LyBWOEN1c3RvbVNRTFN0YXRlbWVudENhbGxiYWNrX2gKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3Mv
djgvY3VzdG9tL1Y4Q3VzdG9tU1FMU3RhdGVtZW50RXJyb3JDYWxsYmFjay5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhDdXN0b21TUUxTdGF0ZW1lbnRFcnJv
ckNhbGxiYWNrLmNwcAkocmV2aXNpb24gNTg3NDcpCisrKyBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1
c3RvbS9WOEN1c3RvbVNRTFN0YXRlbWVudEVycm9yQ2FsbGJhY2suY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0zMiw3ICszMiw3IEBACiAKICNpZiBFTkFCTEUoREFUQUJBU0UpCiAKLSNpbmNsdWRlICJW
OEN1c3RvbVNRTFN0YXRlbWVudEVycm9yQ2FsbGJhY2suaCIKKyNpbmNsdWRlICJWOFNRTFN0YXRl
bWVudEVycm9yQ2FsbGJhY2suaCIKIAogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dC5oIgpAQCAtNDIsMTkgKzQyLDcgQEAKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCi1WOEN1c3RvbVNRTFN0YXRlbWVudEVycm9yQ2FsbGJhY2s6OlY4Q3VzdG9tU1FM
U3RhdGVtZW50RXJyb3JDYWxsYmFjayh2ODo6TG9jYWw8djg6Ok9iamVjdD4gY2FsbGJhY2ssIEZy
YW1lKiBmcmFtZSkKLSAgICA6IG1fY2FsbGJhY2sodjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD46
Ok5ldyhjYWxsYmFjaykpCi0gICAgLCBtX2ZyYW1lKGZyYW1lKQotICAgICwgbV93b3JsZENvbnRl
eHQoVXNlQ3VycmVudFdvcmxkKQotewotfQotCi1WOEN1c3RvbVNRTFN0YXRlbWVudEVycm9yQ2Fs
bGJhY2s6On5WOEN1c3RvbVNRTFN0YXRlbWVudEVycm9yQ2FsbGJhY2soKQotewotICAgIG1fY2Fs
bGJhY2suRGlzcG9zZSgpOwotfQotCi1ib29sIFY4Q3VzdG9tU1FMU3RhdGVtZW50RXJyb3JDYWxs
YmFjazo6aGFuZGxlRXZlbnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgU1FMVHJh
bnNhY3Rpb24qIHRyYW5zYWN0aW9uLCBTUUxFcnJvciogZXJyb3IpCitib29sIFY4U1FMU3RhdGVt
ZW50RXJyb3JDYWxsYmFjazo6aGFuZGxlRXZlbnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29u
dGV4dCwgU1FMVHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uLCBTUUxFcnJvciogZXJyb3IpCiB7CiAg
ICAgdjg6OkhhbmRsZVNjb3BlIGhhbmRsZVNjb3BlOwogCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdz
L3Y4L2N1c3RvbS9WOEN1c3RvbVNRTFN0YXRlbWVudEVycm9yQ2FsbGJhY2suaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEN1c3RvbVNRTFN0YXRlbWVudEVycm9y
Q2FsbGJhY2suaAkocmV2aXNpb24gNTg3NDcpCisrKyBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3Rv
bS9WOEN1c3RvbVNRTFN0YXRlbWVudEVycm9yQ2FsbGJhY2suaAkod29ya2luZyBjb3B5KQpAQCAt
MSw2OCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA5IEdvb2dsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0gKiAKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotICog
bWV0OgotICogCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogICAgICogUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotICogY29weXJpZ2h0
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lcgotICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZQotICogZGlzdHJpYnV0aW9uLgotICogICAgICogTmVpdGhlciB0aGUgbmFt
ZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotICogY29udHJpYnV0b3JzIG1h
eSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSAq
IHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24u
Ci0gKiAKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xE
RVJTIEFORCBDT05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSAqIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUg
Q09QWVJJR0hUCi0gKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAot
ICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCi0gKi8KLQotI2lmbmRlZiBWOEN1c3RvbVNRTFN0YXRlbWVudEVycm9yQ2FsbGJhY2tf
aAotI2RlZmluZSBWOEN1c3RvbVNRTFN0YXRlbWVudEVycm9yQ2FsbGJhY2tfaAotCi0jaWYgRU5B
QkxFKERBVEFCQVNFKQotCi0jaW5jbHVkZSAiU1FMU3RhdGVtZW50RXJyb3JDYWxsYmFjay5oIgot
I2luY2x1ZGUgIldvcmxkQ29udGV4dEhhbmRsZS5oIgotI2luY2x1ZGUgPHY4Lmg+Ci0jaW5jbHVk
ZSA8d3RmL1Bhc3NSZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+Ci0KLW5hbWVzcGFj
ZSBXZWJDb3JlIHsKLQotY2xhc3MgRnJhbWU7Ci0KLWNsYXNzIFY4Q3VzdG9tU1FMU3RhdGVtZW50
RXJyb3JDYWxsYmFjayA6IHB1YmxpYyBTUUxTdGF0ZW1lbnRFcnJvckNhbGxiYWNrIHsKLXB1Ymxp
YzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxWOEN1c3RvbVNRTFN0YXRlbWVudEVycm9yQ2FsbGJh
Y2s+IGNyZWF0ZSh2ODo6TG9jYWw8djg6OlZhbHVlPiB2YWx1ZSwgRnJhbWUqIGZyYW1lKQotICAg
IHsKLSAgICAgICAgQVNTRVJUKHZhbHVlLT5Jc09iamVjdCgpKTsKLSAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKG5ldyBWOEN1c3RvbVNRTFN0YXRlbWVudEVycm9yQ2FsbGJhY2sodmFsdWUtPlRvT2Jq
ZWN0KCksIGZyYW1lKSk7Ci0gICAgfQotICAgIHZpcnR1YWwgflY4Q3VzdG9tU1FMU3RhdGVtZW50
RXJyb3JDYWxsYmFjaygpOwotCi0gICAgdmlydHVhbCBib29sIGhhbmRsZUV2ZW50KFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqLCBTUUxUcmFuc2FjdGlvbiosIFNRTEVycm9yKik7Ci1wcml2YXRlOgot
ICAgIFY4Q3VzdG9tU1FMU3RhdGVtZW50RXJyb3JDYWxsYmFjayh2ODo6TG9jYWw8djg6Ok9iamVj
dD4sIEZyYW1lKik7Ci0KLSAgICB2ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0PiBtX2NhbGxiYWNr
OwotICAgIFJlZlB0cjxGcmFtZT4gbV9mcmFtZTsKLSAgICBXb3JsZENvbnRleHRIYW5kbGUgbV93
b3JsZENvbnRleHQ7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZgotCi0j
ZW5kaWYgLy8gVjhDdXN0b21TUUxTdGF0ZW1lbnRFcnJvckNhbGxiYWNrX2gKSW5kZXg6IFdlYkNv
cmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4Q3VzdG9tU1FMVHJhbnNhY3Rpb25DYWxsYmFjay5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhDdXN0b21TUUxUcmFu
c2FjdGlvbkNhbGxiYWNrLmNwcAkocmV2aXNpb24gNTg3NDcpCisrKyBXZWJDb3JlL2JpbmRpbmdz
L3Y4L2N1c3RvbS9WOEN1c3RvbVNRTFRyYW5zYWN0aW9uQ2FsbGJhY2suY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDgzICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKGMpIDIwMDksIEdvb2dsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiAKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
IGFyZQotICogbWV0OgotICogCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogICAgICogUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotICog
Y29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lcgotICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogZGlzdHJpYnV0aW9uLgotICogICAgICogTmVpdGhl
ciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotICogY29udHJp
YnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVk
IGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBl
cm1pc3Npb24uCi0gKiAKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlS
SUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IKLSAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBUSEUgQ09QWVJJR0hUCi0gKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLAotICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
LSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotCi0jaWYgRU5BQkxF
KERBVEFCQVNFKQotCi0jaW5jbHVkZSAiVjhDdXN0b21TUUxUcmFuc2FjdGlvbkNhbGxiYWNrLmgi
Ci0KLSNpbmNsdWRlICJGcmFtZS5oIgotI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQu
aCIKLSNpbmNsdWRlICJWOEN1c3RvbVZvaWRDYWxsYmFjay5oIgotI2luY2x1ZGUgIlY4U1FMVHJh
bnNhY3Rpb24uaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1WOEN1c3RvbVNRTFRyYW5zYWN0
aW9uQ2FsbGJhY2s6OlY4Q3VzdG9tU1FMVHJhbnNhY3Rpb25DYWxsYmFjayh2ODo6TG9jYWw8djg6
Ok9iamVjdD4gY2FsbGJhY2ssIEZyYW1lKiBmcmFtZSkKLSAgICA6IG1fY2FsbGJhY2sodjg6OlBl
cnNpc3RlbnQ8djg6Ok9iamVjdD46Ok5ldyhjYWxsYmFjaykpCi0gICAgLCBtX2ZyYW1lKGZyYW1l
KQotICAgICwgbV93b3JsZENvbnRleHQoVXNlQ3VycmVudFdvcmxkKQotewotfQotCi1WOEN1c3Rv
bVNRTFRyYW5zYWN0aW9uQ2FsbGJhY2s6On5WOEN1c3RvbVNRTFRyYW5zYWN0aW9uQ2FsbGJhY2so
KQotewotICAgIG1fY2FsbGJhY2suRGlzcG9zZSgpOwotfQotCi0KLXZvaWQgVjhDdXN0b21TUUxU
cmFuc2FjdGlvbkNhbGxiYWNrOjpoYW5kbGVFdmVudChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBj
b250ZXh0LCBTUUxUcmFuc2FjdGlvbiogdHJhbnNhY3Rpb24sIGJvb2wmIHJhaXNlZEV4Y2VwdGlv
bikKLXsKLSAgICB2ODo6SGFuZGxlU2NvcGUgaGFuZGxlU2NvcGU7Ci0KLSAgICB2ODo6SGFuZGxl
PHY4OjpDb250ZXh0PiB2OENvbnRleHQgPSB0b1Y4Q29udGV4dChjb250ZXh0LCBtX3dvcmxkQ29u
dGV4dCk7Ci0gICAgaWYgKHY4Q29udGV4dC5Jc0VtcHR5KCkpCi0gICAgICAgIHJldHVybjsKLQot
ICAgIHY4OjpDb250ZXh0OjpTY29wZSBzY29wZSh2OENvbnRleHQpOwotCi0gICAgdjg6OkhhbmRs
ZTx2ODo6VmFsdWU+IGFyZ3ZbXSA9IHsKLSAgICAgICAgdG9WOCh0cmFuc2FjdGlvbikKLSAgICB9
OwotCi0gICAgLy8gUHJvdGVjdCB0aGUgZnJhbWUgdW50aWwgdGhlIGNhbGxiYWNrIHJldHVybnMu
Ci0gICAgUmVmUHRyPEZyYW1lPiBwcm90ZWN0b3IobV9mcmFtZSk7Ci0KLSAgICAvLyBTdGVwIDU6
IElmIHRoZSBjYWxsYmFjayBjb3VsZG4ndCBiZSBjYWxsZWQgKGUuZy4gaXQgd2FzIG51bGwpIG9y
IGlmCi0gICAgLy8gdGhlIGNhbGxiYWNrIHdhcyBpbnZva2VkIGFuZCByYWlzZWQgYW4gZXhjZXB0
aW9uLCBqdW1wIHRvIHRoZSBsYXN0Ci0gICAgLy8gc3RlcCAocm9sbGJhY2sgdHJhbnNhY3Rpb24p
LgotICAgIGJvb2wgY2FsbGJhY2tSZXR1cm5WYWx1ZSA9IGZhbHNlOwotICAgIHJhaXNlZEV4Y2Vw
dGlvbiA9IGludm9rZUNhbGxiYWNrKG1fY2FsbGJhY2ssIDEsIGFyZ3YsIGNhbGxiYWNrUmV0dXJu
VmFsdWUpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZgpJbmRleDogV2Vi
Q29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhDdXN0b21TUUxUcmFuc2FjdGlvbkNhbGxiYWNrLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhDdXN0b21TUUxUcmFu
c2FjdGlvbkNhbGxiYWNrLmgJKHJldmlzaW9uIDU4NzQ3KQorKysgV2ViQ29yZS9iaW5kaW5ncy92
OC9jdXN0b20vVjhDdXN0b21TUUxUcmFuc2FjdGlvbkNhbGxiYWNrLmgJKHdvcmtpbmcgY29weSkK
QEAgLTEsNjcgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOSBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgotICogCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUK
LSAqIG1ldDoKLSAqIAotICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSAqIGNvcHly
aWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIKLSAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUKLSAqIGRpc3RyaWJ1dGlvbi4KLSAqICAgICAqIE5laXRoZXIgdGhl
IG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSAqIGNvbnRyaWJ1dG9y
cyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9t
Ci0gKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNz
aW9uLgotICogCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQg
SE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0g
KiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
VEhFIENPUFlSSUdIVAotICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgVjhDdXN0b21TUUxUcmFuc2FjdGlvbkNhbGxiYWNr
X2gKLSNkZWZpbmUgVjhDdXN0b21TUUxUcmFuc2FjdGlvbkNhbGxiYWNrX2gKLQotI2lmIEVOQUJM
RShEQVRBQkFTRSkKLQotI2luY2x1ZGUgIlNRTFRyYW5zYWN0aW9uQ2FsbGJhY2suaCIKLSNpbmNs
dWRlICJXb3JsZENvbnRleHRIYW5kbGUuaCIKLSNpbmNsdWRlIDx2OC5oPgotI2luY2x1ZGUgPHd0
Zi9Gb3J3YXJkLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgRnJhbWU7Ci0KLWNs
YXNzIFY4Q3VzdG9tU1FMVHJhbnNhY3Rpb25DYWxsYmFjayA6IHB1YmxpYyBTUUxUcmFuc2FjdGlv
bkNhbGxiYWNrIHsKLXB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxWOEN1c3RvbVNRTFRy
YW5zYWN0aW9uQ2FsbGJhY2s+IGNyZWF0ZSh2ODo6TG9jYWw8djg6OlZhbHVlPiB2YWx1ZSwgRnJh
bWUqIGZyYW1lKQotICAgIHsKLSAgICAgICAgQVNTRVJUKHZhbHVlLT5Jc09iamVjdCgpKTsKLSAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBWOEN1c3RvbVNRTFRyYW5zYWN0aW9uQ2FsbGJhY2so
dmFsdWUtPlRvT2JqZWN0KCksIGZyYW1lKSk7Ci0gICAgfQotICAgIHZpcnR1YWwgflY4Q3VzdG9t
U1FMVHJhbnNhY3Rpb25DYWxsYmFjaygpOwotCi0gICAgdmlydHVhbCB2b2lkIGhhbmRsZUV2ZW50
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBTUUxUcmFuc2FjdGlvbiosIGJvb2wmIHJhaXNlZEV4
Y2VwdGlvbik7Ci1wcml2YXRlOgotICAgIFY4Q3VzdG9tU1FMVHJhbnNhY3Rpb25DYWxsYmFjayh2
ODo6TG9jYWw8djg6Ok9iamVjdD4sIEZyYW1lKik7Ci0KLSAgICB2ODo6UGVyc2lzdGVudDx2ODo6
T2JqZWN0PiBtX2NhbGxiYWNrOwotICAgIFJlZlB0cjxGcmFtZT4gbV9mcmFtZTsKLSAgICBXb3Js
ZENvbnRleHRIYW5kbGUgbV93b3JsZENvbnRleHQ7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCi0KLSNlbmRpZgotCi0jZW5kaWYgLy8gVjhDdXN0b21TUUxUcmFuc2FjdGlvbkNhbGxiYWNr
X2gKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4Q3VzdG9tU1FMVHJhbnNhY3Rp
b25FcnJvckNhbGxiYWNrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1
c3RvbS9WOEN1c3RvbVNRTFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFjay5jcHAJKHJldmlzaW9uIDU4
NzQ3KQorKysgV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhDdXN0b21TUUxUcmFuc2FjdGlv
bkVycm9yQ2FsbGJhY2suY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDc5ICswLDAgQEAKLS8qCi0g
KiBDb3B5cmlnaHQgKGMpIDIwMDksIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0g
KiAKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotICogbWV0OgotICogCi0gKiAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAotICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotICogaW4gdGhlIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICog
ZGlzdHJpYnV0aW9uLgotICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBu
b3IgdGhlIG5hbWVzIG9mIGl0cwotICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9y
c2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0
aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKiAKLSAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRP
UlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSAqIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0gKiBPV05F
UiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotICogREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0g
KiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lu
Y2x1ZGUgImNvbmZpZy5oIgotCi0jaWYgRU5BQkxFKERBVEFCQVNFKQotCi0jaW5jbHVkZSAiVjhD
dXN0b21TUUxUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2suaCIKLQotI2luY2x1ZGUgIkZyYW1lLmgi
Ci0jaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgotI2luY2x1ZGUgIlY4Q3VzdG9t
Vm9pZENhbGxiYWNrLmgiCi0jaW5jbHVkZSAiVjhTUUxFcnJvci5oIgotCi1uYW1lc3BhY2UgV2Vi
Q29yZSB7Ci0KLVY4Q3VzdG9tU1FMVHJhbnNhY3Rpb25FcnJvckNhbGxiYWNrOjpWOEN1c3RvbVNR
TFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFjayh2ODo6TG9jYWw8djg6Ok9iamVjdD4gY2FsbGJhY2ss
IEZyYW1lKiBmcmFtZSkKLSAgICA6IG1fY2FsbGJhY2sodjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVj
dD46Ok5ldyhjYWxsYmFjaykpCi0gICAgLCBtX2ZyYW1lKGZyYW1lKQotICAgICwgbV93b3JsZENv
bnRleHQoVXNlQ3VycmVudFdvcmxkKQotewotfQotCi1WOEN1c3RvbVNRTFRyYW5zYWN0aW9uRXJy
b3JDYWxsYmFjazo6flY4Q3VzdG9tU1FMVHJhbnNhY3Rpb25FcnJvckNhbGxiYWNrKCkKLXsKLSAg
ICBtX2NhbGxiYWNrLkRpc3Bvc2UoKTsKLX0KLQotdm9pZCBWOEN1c3RvbVNRTFRyYW5zYWN0aW9u
RXJyb3JDYWxsYmFjazo6aGFuZGxlRXZlbnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4
dCwgU1FMRXJyb3IqIGVycm9yKQotewotICAgIHY4OjpIYW5kbGVTY29wZSBoYW5kbGVTY29wZTsK
LQotICAgIHY4OjpIYW5kbGU8djg6OkNvbnRleHQ+IHY4Q29udGV4dCA9IHRvVjhDb250ZXh0KGNv
bnRleHQsIG1fd29ybGRDb250ZXh0KTsKLSAgICBpZiAodjhDb250ZXh0LklzRW1wdHkoKSkKLSAg
ICAgICAgcmV0dXJuOwotCi0gICAgdjg6OkNvbnRleHQ6OlNjb3BlIHNjb3BlKHY4Q29udGV4dCk7
Ci0KLSAgICB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gYXJndltdID0gewotICAgICAgICB0b1Y4KGVy
cm9yKQotICAgIH07Ci0KLSAgICAvLyBQcm90ZWN0IHRoZSBmcmFtZSB1bnRpbCB0aGUgY2FsbGJh
Y2sgcmV0dXJucy4KLSAgICBSZWZQdHI8RnJhbWU+IHByb3RlY3RvcihtX2ZyYW1lKTsKLQotICAg
IGJvb2wgY2FsbGJhY2tSZXR1cm5WYWx1ZSA9IGZhbHNlOwotICAgIGludm9rZUNhbGxiYWNrKG1f
Y2FsbGJhY2ssIDEsIGFyZ3YsIGNhbGxiYWNrUmV0dXJuVmFsdWUpOwotfQotCi19IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCi0KLSNlbmRpZgpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20v
VjhDdXN0b21TUUxUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2suaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEN1c3RvbVNRTFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFj
ay5oCShyZXZpc2lvbiA1ODc0NykKKysrIFdlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4Q3Vz
dG9tU1FMVHJhbnNhY3Rpb25FcnJvckNhbGxiYWNrLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNjgg
KzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOSBHb29nbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgotICogCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSAqIG1ldDoK
LSAqIAotICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSAqIGNvcHlyaWdodCBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIK
LSAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUKLSAqIGRpc3RyaWJ1dGlvbi4KLSAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2Yg
R29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUg
dXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0gKiB0aGlz
IHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICog
Ci0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBB
TkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlS
SUdIVAotICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgotICovCi0KLSNpZm5kZWYgVjhDdXN0b21TUUxUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2tfaAot
I2RlZmluZSBWOEN1c3RvbVNRTFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFja19oCi0KLSNpZiBFTkFC
TEUoREFUQUJBU0UpCi0KLSNpbmNsdWRlICJTUUxUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2suaCIK
LSNpbmNsdWRlICJXb3JsZENvbnRleHRIYW5kbGUuaCIKLSNpbmNsdWRlIDx2OC5oPgotI2luY2x1
ZGUgPHd0Zi9Gb3J3YXJkLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgRnJhbWU7
Ci0KLWNsYXNzIFY4Q3VzdG9tU1FMVHJhbnNhY3Rpb25FcnJvckNhbGxiYWNrIDogcHVibGljIFNR
TFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFjayB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQ
dHI8VjhDdXN0b21TUUxUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2s+IGNyZWF0ZSh2ODo6TG9jYWw8
djg6OlZhbHVlPiB2YWx1ZSwgRnJhbWUqIGZyYW1lKQotICAgIHsKLSAgICAgICAgQVNTRVJUKHZh
bHVlLT5Jc09iamVjdCgpKTsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBWOEN1c3RvbVNR
TFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFjayh2YWx1ZS0+VG9PYmplY3QoKSwgZnJhbWUpKTsKLSAg
ICB9Ci0gICAgdmlydHVhbCB+VjhDdXN0b21TUUxUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2soKTsK
LQotICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVFdmVudChTY3JpcHRFeGVjdXRpb25Db250ZXh0Kiwg
U1FMRXJyb3IqKTsKLQotcHJpdmF0ZToKLSAgICBWOEN1c3RvbVNRTFRyYW5zYWN0aW9uRXJyb3JD
YWxsYmFjayh2ODo6TG9jYWw8djg6Ok9iamVjdD4sIEZyYW1lKik7Ci0KLSAgICB2ODo6UGVyc2lz
dGVudDx2ODo6T2JqZWN0PiBtX2NhbGxiYWNrOwotICAgIFJlZlB0cjxGcmFtZT4gbV9mcmFtZTsK
LSAgICBXb3JsZENvbnRleHRIYW5kbGUgbV93b3JsZENvbnRleHQ7Ci19OwotCi19IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCi0KLSNlbmRpZgotCi0jZW5kaWYgLy8gVjhDdXN0b21TUUxUcmFuc2FjdGlv
bkVycm9yQ2FsbGJhY2tfaApJbmRleDogV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhEYXRh
YmFzZUNhbGxiYWNrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3Rv
bS9WOERhdGFiYXNlQ2FsbGJhY2suY3BwCShyZXZpc2lvbiA1ODc0NykKKysrIFdlYkNvcmUvYmlu
ZGluZ3MvdjgvY3VzdG9tL1Y4RGF0YWJhc2VDYWxsYmFjay5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTEsNzkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoYykgMjAxMCwgR29vZ2xlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSAq
IG1ldDoKLSAqCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogICAgICogUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotICogY29weXJpZ2h0
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lcgotICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZQotICogZGlzdHJpYnV0aW9uLgotICogICAgICogTmVpdGhlciB0aGUgbmFt
ZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotICogY29udHJpYnV0b3JzIG1h
eSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSAq
IHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24u
Ci0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERF
UlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotICogQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBD
T1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLAotICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0g
KiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0KLSNpZiBFTkFCTEUoREFUQUJBU0Up
Ci0KLSNpbmNsdWRlICJWOERhdGFiYXNlQ2FsbGJhY2suaCIKLQotI2luY2x1ZGUgIkZyYW1lLmgi
Ci0jaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgotI2luY2x1ZGUgIlY4Q3VzdG9t
Vm9pZENhbGxiYWNrLmgiCi0jaW5jbHVkZSAiVjhEYXRhYmFzZS5oIgotCi1uYW1lc3BhY2UgV2Vi
Q29yZSB7Ci0KLVY4RGF0YWJhc2VDYWxsYmFjazo6VjhEYXRhYmFzZUNhbGxiYWNrKHY4OjpMb2Nh
bDx2ODo6T2JqZWN0PiBjYWxsYmFjaywgRnJhbWUqIGZyYW1lKQotICAgIDogbV9jYWxsYmFjayh2
ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0Pjo6TmV3KGNhbGxiYWNrKSkKLSAgICAsIG1fZnJhbWUo
ZnJhbWUpCi0gICAgLCBtX3dvcmxkQ29udGV4dChVc2VDdXJyZW50V29ybGQpCi17Ci19Ci0KLVY4
RGF0YWJhc2VDYWxsYmFjazo6flY4RGF0YWJhc2VDYWxsYmFjaygpCi17Ci0gICAgbV9jYWxsYmFj
ay5EaXNwb3NlKCk7Ci19Ci0KLXZvaWQgVjhEYXRhYmFzZUNhbGxiYWNrOjpoYW5kbGVFdmVudChT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBEYXRhYmFzZSogZGF0YWJhc2UpCi17Ci0g
ICAgdjg6OkhhbmRsZVNjb3BlIGhhbmRsZVNjb3BlOwotCi0gICAgdjg6OkhhbmRsZTx2ODo6Q29u
dGV4dD4gdjhDb250ZXh0ID0gdG9WOENvbnRleHQoY29udGV4dCwgbV93b3JsZENvbnRleHQpOwot
ICAgIGlmICh2OENvbnRleHQuSXNFbXB0eSgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICB2ODo6
Q29udGV4dDo6U2NvcGUgc2NvcGUodjhDb250ZXh0KTsKLQotICAgIHY4OjpIYW5kbGU8djg6OlZh
bHVlPiBhcmd2W10gPSB7Ci0gICAgICAgIHRvVjgoZGF0YWJhc2UpCi0gICAgfTsKLQotICAgIC8v
IFByb3RlY3QgdGhlIGZyYW1lIHVudGlsIHRoZSBjYWxsYmFjayByZXR1cm5zLgotICAgIFJlZlB0
cjxGcmFtZT4gcHJvdGVjdG9yKG1fZnJhbWUpOwotCi0gICAgYm9vbCBjYWxsYmFja1JldHVyblZh
bHVlID0gZmFsc2U7Ci0gICAgaW52b2tlQ2FsbGJhY2sobV9jYWxsYmFjaywgMSwgYXJndiwgY2Fs
bGJhY2tSZXR1cm5WYWx1ZSk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlm
CkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOERhdGFiYXNlQ2FsbGJhY2suaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOERhdGFiYXNlQ2FsbGJh
Y2suaAkocmV2aXNpb24gNTg3NDcpCisrKyBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOERh
dGFiYXNlQ2FsbGJhY2suaAkod29ya2luZyBjb3B5KQpAQCAtMSw2OCArMCwwIEBACi0vKgotICog
Q29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgot
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0gKiBtZXQ6Ci0gKgotICogICAgICogUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSAqIGluIHRoZSBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSAqIGRpc3Ry
aWJ1dGlvbi4KLSAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRo
ZSBuYW1lcyBvZiBpdHMKLSAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9y
IHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0gKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQg
c3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSAq
ICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0gKiBPV05FUiBPUiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotICogREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBW
OERhdGFiYXNlQ2FsbGJhY2tfaAotI2RlZmluZSBWOERhdGFiYXNlQ2FsbGJhY2tfaAotCi0jaWYg
RU5BQkxFKERBVEFCQVNFKQotCi0jaW5jbHVkZSAiRGF0YWJhc2VDYWxsYmFjay5oIgotI2luY2x1
ZGUgIldvcmxkQ29udGV4dEhhbmRsZS5oIgotI2luY2x1ZGUgPHY4Lmg+Ci0jaW5jbHVkZSA8d3Rm
L0ZvcndhcmQuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBGcmFtZTsKLQotY2xh
c3MgVjhEYXRhYmFzZUNhbGxiYWNrIDogcHVibGljIERhdGFiYXNlQ2FsbGJhY2sgewotcHVibGlj
OgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFY4RGF0YWJhc2VDYWxsYmFjaz4gY3JlYXRlKHY4OjpM
b2NhbDx2ODo6VmFsdWU+IHZhbHVlLCBGcmFtZSogZnJhbWUpCi0gICAgewotICAgICAgICBBU1NF
UlQodmFsdWUtPklzT2JqZWN0KCkpOwotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFY4RGF0
YWJhc2VDYWxsYmFjayh2YWx1ZS0+VG9PYmplY3QoKSwgZnJhbWUpKTsKLSAgICB9Ci0gICAgdmly
dHVhbCB+VjhEYXRhYmFzZUNhbGxiYWNrKCk7Ci0KLSAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlRXZl
bnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIERhdGFiYXNlKik7Ci0KLXByaXZhdGU6Ci0gICAg
VjhEYXRhYmFzZUNhbGxiYWNrKHY4OjpMb2NhbDx2ODo6T2JqZWN0PiwgRnJhbWUqKTsKLQotICAg
IHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+IG1fY2FsbGJhY2s7Ci0gICAgUmVmUHRyPEZyYW1l
PiBtX2ZyYW1lOwotICAgIFdvcmxkQ29udGV4dEhhbmRsZSBtX3dvcmxkQ29udGV4dDsKLX07Ci0K
LX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmCi0KLSNlbmRpZiAvLyBWOERhdGFiYXNl
Q2FsbGJhY2tfaApJbmRleDogV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhEYXRhYmFzZUN1
c3RvbS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhEYXRh
YmFzZUN1c3RvbS5jcHAJKHJldmlzaW9uIDU4NzQ3KQorKysgV2ViQ29yZS9iaW5kaW5ncy92OC9j
dXN0b20vVjhEYXRhYmFzZUN1c3RvbS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM1LDggKzM1LDgg
QEAKIAogI2luY2x1ZGUgIkRhdGFiYXNlLmgiCiAjaW5jbHVkZSAiVjhCaW5kaW5nLmgiCi0jaW5j
bHVkZSAiVjhDdXN0b21TUUxUcmFuc2FjdGlvbkNhbGxiYWNrLmgiCi0jaW5jbHVkZSAiVjhDdXN0
b21TUUxUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2suaCIKKyNpbmNsdWRlICJWOFNRTFRyYW5zYWN0
aW9uQ2FsbGJhY2suaCIKKyNpbmNsdWRlICJWOFNRTFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFjay5o
IgogI2luY2x1ZGUgIlY4Q3VzdG9tVm9pZENhbGxiYWNrLmgiCiAjaW5jbHVkZSAiVjhQcm94eS5o
IgogCkBAIC01OCwyMCArNTgsMjAgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4RGF0YWJhc2U6
OmNoYW5nZQogICAgIGlmICghZnJhbWUpCiAgICAgICAgIHJldHVybiB2ODo6VW5kZWZpbmVkKCk7
CiAKLSAgICBSZWZQdHI8VjhDdXN0b21TUUxUcmFuc2FjdGlvbkNhbGxiYWNrPiBjYWxsYmFjazsK
KyAgICBSZWZQdHI8VjhTUUxUcmFuc2FjdGlvbkNhbGxiYWNrPiBjYWxsYmFjazsKICAgICBpZiAo
YXJncy5MZW5ndGgoKSA+IDIpIHsKICAgICAgICAgaWYgKCFhcmdzWzJdLT5Jc09iamVjdCgpKQog
ICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoImNoYW5nZVZlcnNpb24gdHJhbnNhY3Rpb24g
Y2FsbGJhY2sgbXVzdCBiZSBvZiB2YWxpZCB0eXBlLiIpOwogCi0gICAgICAgIGNhbGxiYWNrID0g
VjhDdXN0b21TUUxUcmFuc2FjdGlvbkNhbGxiYWNrOjpjcmVhdGUoYXJnc1syXSwgZnJhbWUpOwor
ICAgICAgICBjYWxsYmFjayA9IFY4U1FMVHJhbnNhY3Rpb25DYWxsYmFjazo6Y3JlYXRlKGFyZ3Nb
Ml0sIGZyYW1lKTsKICAgICB9CiAKLSAgICBSZWZQdHI8VjhDdXN0b21TUUxUcmFuc2FjdGlvbkVy
cm9yQ2FsbGJhY2s+IGVycm9yQ2FsbGJhY2s7CisgICAgUmVmUHRyPFY4U1FMVHJhbnNhY3Rpb25F
cnJvckNhbGxiYWNrPiBlcnJvckNhbGxiYWNrOwogICAgIGlmIChhcmdzLkxlbmd0aCgpID4gMykg
ewogICAgICAgICBpZiAoIWFyZ3NbM10tPklzT2JqZWN0KCkpCiAgICAgICAgICAgICByZXR1cm4g
dGhyb3dFcnJvcigiY2hhbmdlVmVyc2lvbiBlcnJvciBjYWxsYmFjayBtdXN0IGJlIG9mIHZhbGlk
IHR5cGUuIik7CiAKLSAgICAgICAgZXJyb3JDYWxsYmFjayA9IFY4Q3VzdG9tU1FMVHJhbnNhY3Rp
b25FcnJvckNhbGxiYWNrOjpjcmVhdGUoYXJnc1szXSwgZnJhbWUpOworICAgICAgICBlcnJvckNh
bGxiYWNrID0gVjhTUUxUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2s6OmNyZWF0ZShhcmdzWzNdLCBm
cmFtZSk7CiAgICAgfQogCiAgICAgUmVmUHRyPFY4Q3VzdG9tVm9pZENhbGxiYWNrPiBzdWNjZXNz
Q2FsbGJhY2s7CkBAIC0xMDEsMTQgKzEwMSwxNCBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFs
dWU+IGNyZWF0ZVRyYW5zCiAgICAgaWYgKCFmcmFtZSkKICAgICAgICAgcmV0dXJuIHY4OjpVbmRl
ZmluZWQoKTsKIAotICAgIFJlZlB0cjxWOEN1c3RvbVNRTFRyYW5zYWN0aW9uQ2FsbGJhY2s+IGNh
bGxiYWNrID0gVjhDdXN0b21TUUxUcmFuc2FjdGlvbkNhbGxiYWNrOjpjcmVhdGUoYXJnc1swXSwg
ZnJhbWUpOworICAgIFJlZlB0cjxWOFNRTFRyYW5zYWN0aW9uQ2FsbGJhY2s+IGNhbGxiYWNrID0g
VjhTUUxUcmFuc2FjdGlvbkNhbGxiYWNrOjpjcmVhdGUoYXJnc1swXSwgZnJhbWUpOwogCi0gICAg
UmVmUHRyPFY4Q3VzdG9tU1FMVHJhbnNhY3Rpb25FcnJvckNhbGxiYWNrPiBlcnJvckNhbGxiYWNr
OworICAgIFJlZlB0cjxWOFNRTFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFjaz4gZXJyb3JDYWxsYmFj
azsKICAgICBpZiAoYXJncy5MZW5ndGgoKSA+IDEgJiYgIWlzVW5kZWZpbmVkT3JOdWxsKGFyZ3Nb
MV0pKSB7CiAgICAgICAgIGlmICghYXJnc1sxXS0+SXNPYmplY3QoKSkKICAgICAgICAgICAgIHJl
dHVybiB0aHJvd0Vycm9yKCJUcmFuc2FjdGlvbiBlcnJvciBjYWxsYmFjayBtdXN0IGJlIG9mIHZh
bGlkIHR5cGUuIik7CiAKLSAgICAgICAgZXJyb3JDYWxsYmFjayA9IFY4Q3VzdG9tU1FMVHJhbnNh
Y3Rpb25FcnJvckNhbGxiYWNrOjpjcmVhdGUoYXJnc1sxXSwgZnJhbWUpOworICAgICAgICBlcnJv
ckNhbGxiYWNrID0gVjhTUUxUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2s6OmNyZWF0ZShhcmdzWzFd
LCBmcmFtZSk7CiAgICAgfQogCiAgICAgUmVmUHRyPFY4Q3VzdG9tVm9pZENhbGxiYWNrPiBzdWNj
ZXNzQ2FsbGJhY2s7CkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFNRTFRyYW5z
YWN0aW9uQ3VzdG9tLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3Rv
bS9WOFNRTFRyYW5zYWN0aW9uQ3VzdG9tLmNwcAkocmV2aXNpb24gNTg3NDcpCisrKyBXZWJDb3Jl
L2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFNRTFRyYW5zYWN0aW9uQ3VzdG9tLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMzcsOCArMzcsOCBAQAogI2luY2x1ZGUgIkRhdGFiYXNlLmgiCiAjaW5jbHVkZSAi
U1FMVmFsdWUuaCIKICNpbmNsdWRlICJWOEJpbmRpbmcuaCIKLSNpbmNsdWRlICJWOEN1c3RvbVNR
TFN0YXRlbWVudENhbGxiYWNrLmgiCi0jaW5jbHVkZSAiVjhDdXN0b21TUUxTdGF0ZW1lbnRFcnJv
ckNhbGxiYWNrLmgiCisjaW5jbHVkZSAiVjhTUUxTdGF0ZW1lbnRDYWxsYmFjay5oIgorI2luY2x1
ZGUgIlY4U1FMU3RhdGVtZW50RXJyb3JDYWxsYmFjay5oIgogI2luY2x1ZGUgIlY4UHJveHkuaCIK
ICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKQEAgLTEwNSw3ICsxMDUsNyBAQCB2ODo6SGFuZGxl
PHY4OjpWYWx1ZT4gVjhTUUxUcmFuc2FjdGlvbjo6CiAgICAgICAgICAgICByZXR1cm4gdGhyb3dF
cnJvcigiU3RhdGVtZW50IGNhbGxiYWNrIG11c3QgYmUgb2YgdmFsaWQgdHlwZS4iLCBWOFByb3h5
OjpUeXBlRXJyb3IpOwogCiAgICAgICAgIGlmIChmcmFtZSkKLSAgICAgICAgICAgIGNhbGxiYWNr
ID0gVjhDdXN0b21TUUxTdGF0ZW1lbnRDYWxsYmFjazo6Y3JlYXRlKGFyZ3NbMl0sIGZyYW1lKTsK
KyAgICAgICAgICAgIGNhbGxiYWNrID0gVjhTUUxTdGF0ZW1lbnRDYWxsYmFjazo6Y3JlYXRlKGFy
Z3NbMl0sIGZyYW1lKTsKICAgICB9CiAKICAgICBSZWZQdHI8U1FMU3RhdGVtZW50RXJyb3JDYWxs
YmFjaz4gZXJyb3JDYWxsYmFjazsKQEAgLTExNCw3ICsxMTQsNyBAQCB2ODo6SGFuZGxlPHY4OjpW
YWx1ZT4gVjhTUUxUcmFuc2FjdGlvbjo6CiAgICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigi
U3RhdGVtZW50IGVycm9yIGNhbGxiYWNrIG11c3QgYmUgb2YgdmFsaWQgdHlwZS4iLCBWOFByb3h5
OjpUeXBlRXJyb3IpOwogCiAgICAgICAgIGlmIChmcmFtZSkKLSAgICAgICAgICAgIGVycm9yQ2Fs
bGJhY2sgPSBWOEN1c3RvbVNRTFN0YXRlbWVudEVycm9yQ2FsbGJhY2s6OmNyZWF0ZShhcmdzWzNd
LCBmcmFtZSk7CisgICAgICAgICAgICBlcnJvckNhbGxiYWNrID0gVjhTUUxTdGF0ZW1lbnRFcnJv
ckNhbGxiYWNrOjpjcmVhdGUoYXJnc1szXSwgZnJhbWUpOwogICAgIH0KIAogICAgIEV4Y2VwdGlv
bkNvZGUgZWMgPSAwOwpAQCAtMTI3LDQgKzEyNywzIEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBW
OFNRTFRyYW5zYWN0aW9uOjoKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCi0KSW5k
ZXg6IFdlYkNvcmUvc3RvcmFnZS9EYXRhYmFzZUNhbGxiYWNrLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9zdG9yYWdlL0RhdGFiYXNlQ2FsbGJhY2suaAkocmV2aXNpb24gNTg3NDcpCisrKyBXZWJD
b3JlL3N0b3JhZ2UvRGF0YWJhc2VDYWxsYmFjay5oCSh3b3JraW5nIGNvcHkpCkBAIC00Myw3ICs0
Myw3IEBAIGNsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CiBjbGFzcyBEYXRhYmFzZUNhbGxi
YWNrIDogcHVibGljIFRocmVhZFNhZmVTaGFyZWQ8RGF0YWJhc2VDYWxsYmFjaz4gewogcHVibGlj
OgogICAgIHZpcnR1YWwgfkRhdGFiYXNlQ2FsbGJhY2soKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQg
aGFuZGxlRXZlbnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIERhdGFiYXNlKikgPSAwOworICAg
IHZpcnR1YWwgYm9vbCBoYW5kbGVFdmVudChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgRGF0YWJh
c2UqKSA9IDA7CiB9OwogCiB9CkluZGV4OiBXZWJDb3JlL3N0b3JhZ2UvRGF0YWJhc2VDYWxsYmFj
ay5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdG9yYWdlL0RhdGFiYXNlQ2FsbGJhY2suaWRs
CShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9zdG9yYWdlL0RhdGFiYXNlQ2FsbGJhY2suaWRsCShy
ZXZpc2lvbiAwKQpAQCAtMCwwICsxLDM2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdv
b2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiAg
TmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBDb21wdXRlciwgSW5jLiAoIkFwcGxlIikgbm9yIHRo
ZSBuYW1lcyBvZgorICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3Jz
ZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUg
d2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMi
IEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworbW9kdWxlIHN0b3JhZ2UgeworICAgIGludGVy
ZmFjZSBbCisgICAgICAgIENvbmRpdGlvbmFsPURBVEFCQVNFLAorICAgICAgICBDYWxsYmFjawor
ICAgIF0gRGF0YWJhc2VDYWxsYmFjayB7CisgICAgICAgIGJvb2xlYW4gaGFuZGxlRXZlbnQoaW4g
RGF0YWJhc2UgZGF0YWJhc2UpOworICAgIH07Cit9CkluZGV4OiBXZWJDb3JlL3N0b3JhZ2UvU1FM
U3RhdGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N0b3JhZ2UvU1FMU3RhdGVtZW50
LmNwcAkocmV2aXNpb24gNTg3NDcpCisrKyBXZWJDb3JlL3N0b3JhZ2UvU1FMU3RhdGVtZW50LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMTc0LDcgKzE3NCw3IEBAIGJvb2wgU1FMU3RhdGVtZW50Ojpw
ZXJmb3JtQ2FsbGJhY2soU1FMVHIKICAgICAgICAgQVNTRVJUKG1fc3RhdGVtZW50RXJyb3JDYWxs
YmFjayk7CiAgICAgICAgIGNhbGxiYWNrRXJyb3IgPSBtX3N0YXRlbWVudEVycm9yQ2FsbGJhY2st
PmhhbmRsZUV2ZW50KHRyYW5zYWN0aW9uLT5kYXRhYmFzZSgpLT5zY3JpcHRFeGVjdXRpb25Db250
ZXh0KCksIHRyYW5zYWN0aW9uLCBtX2Vycm9yLmdldCgpKTsKICAgICB9IGVsc2UgaWYgKG1fc3Rh
dGVtZW50Q2FsbGJhY2spCi0gICAgICAgIG1fc3RhdGVtZW50Q2FsbGJhY2stPmhhbmRsZUV2ZW50
KHRyYW5zYWN0aW9uLT5kYXRhYmFzZSgpLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIHRyYW5z
YWN0aW9uLCBtX3Jlc3VsdFNldC5nZXQoKSwgY2FsbGJhY2tFcnJvcik7CisgICAgICAgIGNhbGxi
YWNrRXJyb3IgPSAhbV9zdGF0ZW1lbnRDYWxsYmFjay0+aGFuZGxlRXZlbnQodHJhbnNhY3Rpb24t
PmRhdGFiYXNlKCktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgdHJhbnNhY3Rpb24sIG1fcmVz
dWx0U2V0LmdldCgpKTsKIAogICAgIC8vIE5vdyByZWxlYXNlIG91ciBjYWxsYmFja3MsIHRvIGJy
ZWFrIHJlZmVyZW5jZSBjeWNsZXMuCiAgICAgbV9zdGF0ZW1lbnRDYWxsYmFjayA9IDA7CkluZGV4
OiBXZWJDb3JlL3N0b3JhZ2UvU1FMU3RhdGVtZW50Q2FsbGJhY2suaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL3N0b3JhZ2UvU1FMU3RhdGVtZW50Q2FsbGJhY2suaAkocmV2aXNpb24gNTg3NDcpCisr
KyBXZWJDb3JlL3N0b3JhZ2UvU1FMU3RhdGVtZW50Q2FsbGJhY2suaAkod29ya2luZyBjb3B5KQpA
QCAtNDEsNyArNDEsNyBAQCBjbGFzcyBTUUxSZXN1bHRTZXQ7CiBjbGFzcyBTUUxTdGF0ZW1lbnRD
YWxsYmFjayA6IHB1YmxpYyBUaHJlYWRTYWZlU2hhcmVkPFNRTFN0YXRlbWVudENhbGxiYWNrPiB7
CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+U1FMU3RhdGVtZW50Q2FsbGJhY2soKSB7IH0KLSAgICB2
aXJ0dWFsIHZvaWQgaGFuZGxlRXZlbnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFNRTFRyYW5z
YWN0aW9uKiwgU1FMUmVzdWx0U2V0KiwgYm9vbCYgcmFpc2VkRXhjZXB0aW9uKSA9IDA7CisgICAg
dmlydHVhbCBib29sIGhhbmRsZUV2ZW50KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBTUUxUcmFu
c2FjdGlvbiosIFNRTFJlc3VsdFNldCopID0gMDsKIH07CiAKIH0KSW5kZXg6IFdlYkNvcmUvc3Rv
cmFnZS9TUUxTdGF0ZW1lbnRDYWxsYmFjay5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdG9y
YWdlL1NRTFN0YXRlbWVudENhbGxiYWNrLmlkbAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvc3Rv
cmFnZS9TUUxTdGF0ZW1lbnRDYWxsYmFjay5pZGwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzYg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisg
KiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxl
IENvbXB1dGVyLCBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCisgKiAgICAgaXRzIGNv
bnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVy
aXZlZAorICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdy
aXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAor
ICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCittb2R1bGUgc3RvcmFnZSB7CisgICAgaW50ZXJmYWNlIFsKKyAgICAgICAgQ29uZGl0aW9u
YWw9REFUQUJBU0UsCisgICAgICAgIENhbGxiYWNrCisgICAgXSBTUUxTdGF0ZW1lbnRDYWxsYmFj
ayB7CisgICAgICAgIGJvb2xlYW4gaGFuZGxlRXZlbnQoaW4gU1FMVHJhbnNhY3Rpb24gdHJhbnNh
Y3Rpb24sIGluIFNRTFJlc3VsdFNldCByZXN1bHRTZXQpOworICAgIH07Cit9CkluZGV4OiBXZWJD
b3JlL3N0b3JhZ2UvU1FMU3RhdGVtZW50RXJyb3JDYWxsYmFjay5pZGwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9zdG9yYWdlL1NRTFN0YXRlbWVudEVycm9yQ2FsbGJhY2suaWRsCShyZXZpc2lvbiAw
KQorKysgV2ViQ29yZS9zdG9yYWdlL1NRTFN0YXRlbWVudEVycm9yQ2FsbGJhY2suaWRsCShyZXZp
c2lvbiAwKQpAQCAtMCwwICsxLDM2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiAgTmVp
dGhlciB0aGUgbmFtZSBvZiBBcHBsZSBDb21wdXRlciwgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBu
YW1lcyBvZgorICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBv
ciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0
aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Cisg
KiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworbW9kdWxlIHN0b3JhZ2UgeworICAgIGludGVyZmFj
ZSBbCisgICAgICAgIENvbmRpdGlvbmFsPURBVEFCQVNFLAorICAgICAgICBDYWxsYmFjaworICAg
IF0gU1FMU3RhdGVtZW50RXJyb3JDYWxsYmFjayB7CisgICAgICAgIFtDdXN0b21dIGJvb2xlYW4g
aGFuZGxlRXZlbnQoaW4gU1FMVHJhbnNhY3Rpb24gdHJhbnNhY3Rpb24sIGluIFNRTEVycm9yIGVy
cm9yKTsKKyAgICB9OworfQpJbmRleDogV2ViQ29yZS9zdG9yYWdlL1NRTFRyYW5zYWN0aW9uLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N0b3JhZ2UvU1FMVHJhbnNhY3Rpb24uY3BwCShyZXZp
c2lvbiA1ODc0NykKKysrIFdlYkNvcmUvc3RvcmFnZS9TUUxUcmFuc2FjdGlvbi5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTI5MCw3ICsyOTAsNyBAQCB2b2lkIFNRTFRyYW5zYWN0aW9uOjpkZWxpdmVy
VHJhbnNhY3Rpb25DCiAKICAgICBpZiAobV9jYWxsYmFjaykgewogICAgICAgICBtX2V4ZWN1dGVT
cWxBbGxvd2VkID0gdHJ1ZTsKLSAgICAgICAgbV9jYWxsYmFjay0+aGFuZGxlRXZlbnQobV9kYXRh
YmFzZS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCB0aGlzLCBzaG91bGREZWxpdmVyRXJyb3JD
YWxsYmFjayk7CisgICAgICAgIHNob3VsZERlbGl2ZXJFcnJvckNhbGxiYWNrID0gIW1fY2FsbGJh
Y2stPmhhbmRsZUV2ZW50KG1fZGF0YWJhc2UtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgdGhp
cyk7CiAgICAgICAgIG1fZXhlY3V0ZVNxbEFsbG93ZWQgPSBmYWxzZTsKICAgICB9IGVsc2UKICAg
ICAgICAgc2hvdWxkRGVsaXZlckVycm9yQ2FsbGJhY2sgPSB0cnVlOwpJbmRleDogV2ViQ29yZS9z
dG9yYWdlL1NRTFRyYW5zYWN0aW9uQ2FsbGJhY2suaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N0
b3JhZ2UvU1FMVHJhbnNhY3Rpb25DYWxsYmFjay5oCShyZXZpc2lvbiA1ODc0NykKKysrIFdlYkNv
cmUvc3RvcmFnZS9TUUxUcmFuc2FjdGlvbkNhbGxiYWNrLmgJKHdvcmtpbmcgY29weSkKQEAgLTM3
LDEyICszNywxMSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQ7CiBjbGFzcyBTUUxUcmFuc2FjdGlvbjsKLWNsYXNzIFNRTEVycm9yOwogCiBjbGFz
cyBTUUxUcmFuc2FjdGlvbkNhbGxiYWNrIDogcHVibGljIFRocmVhZFNhZmVTaGFyZWQ8U1FMVHJh
bnNhY3Rpb25DYWxsYmFjaz4gewogcHVibGljOgogICAgIHZpcnR1YWwgflNRTFRyYW5zYWN0aW9u
Q2FsbGJhY2soKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlRXZlbnQoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCosIFNRTFRyYW5zYWN0aW9uKiwgYm9vbCYgcmFpc2VkRXhjZXB0aW9uKSA9IDA7
CisgICAgdmlydHVhbCBib29sIGhhbmRsZUV2ZW50KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBT
UUxUcmFuc2FjdGlvbiopID0gMDsKIH07CiAKIH0KSW5kZXg6IFdlYkNvcmUvc3RvcmFnZS9TUUxU
cmFuc2FjdGlvbkNhbGxiYWNrLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N0b3JhZ2UvU1FM
VHJhbnNhY3Rpb25DYWxsYmFjay5pZGwJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL3N0b3JhZ2Uv
U1FMVHJhbnNhY3Rpb25DYWxsYmFjay5pZGwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzYgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAx
LiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIENv
bXB1dGVyLCBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCisgKiAgICAgaXRzIGNvbnRy
aWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZl
ZAorICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0
ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICog
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
Cittb2R1bGUgc3RvcmFnZSB7CisgICAgaW50ZXJmYWNlIFsKKyAgICAgICAgQ29uZGl0aW9uYWw9
REFUQUJBU0UsCisgICAgICAgIENhbGxiYWNrCisgICAgXSBTUUxUcmFuc2FjdGlvbkNhbGxiYWNr
IHsKKyAgICAgICAgYm9vbGVhbiBoYW5kbGVFdmVudChpbiBTUUxUcmFuc2FjdGlvbiB0cmFuc2Fj
dGlvbik7CisgICAgfTsKK30KSW5kZXg6IFdlYkNvcmUvc3RvcmFnZS9TUUxUcmFuc2FjdGlvbkVy
cm9yQ2FsbGJhY2suaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N0b3JhZ2UvU1FMVHJhbnNhY3Rp
b25FcnJvckNhbGxiYWNrLmgJKHJldmlzaW9uIDU4NzQ3KQorKysgV2ViQ29yZS9zdG9yYWdlL1NR
TFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFjay5oCSh3b3JraW5nIGNvcHkpCkBAIC00MSw3ICs0MSw3
IEBAIGNsYXNzIFNRTEVycm9yOwogY2xhc3MgU1FMVHJhbnNhY3Rpb25FcnJvckNhbGxiYWNrIDog
cHVibGljIFRocmVhZFNhZmVTaGFyZWQ8U1FMVHJhbnNhY3Rpb25FcnJvckNhbGxiYWNrPiB7CiBw
dWJsaWM6CiAgICAgdmlydHVhbCB+U1FMVHJhbnNhY3Rpb25FcnJvckNhbGxiYWNrKCkgeyB9Ci0g
ICAgdmlydHVhbCB2b2lkIGhhbmRsZUV2ZW50KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBTUUxF
cnJvciopID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgaGFuZGxlRXZlbnQoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCosIFNRTEVycm9yKikgPSAwOwogfTsKIAogfQpJbmRleDogV2ViQ29yZS9zdG9yYWdl
L1NRTFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFjay5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9z
dG9yYWdlL1NRTFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFjay5pZGwJKHJldmlzaW9uIDApCisrKyBX
ZWJDb3JlL3N0b3JhZ2UvU1FMVHJhbnNhY3Rpb25FcnJvckNhbGxiYWNrLmlkbAkocmV2aXNpb24g
MCkKQEAgLTAsMCArMSwzNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gIE5laXRoZXIg
dGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMg
b2YKKyAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJv
bW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQg
c3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
CisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKK21vZHVsZSBzdG9yYWdlIHsKKyAgICBpbnRlcmZhY2UgWwor
ICAgICAgICBDb25kaXRpb25hbD1EQVRBQkFTRSwKKyAgICAgICAgQ2FsbGJhY2sKKyAgICBdIFNR
TFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFjayB7CisgICAgICAgIGJvb2xlYW4gaGFuZGxlRXZlbnQo
aW4gU1FMRXJyb3IgZXJyb3IpOworICAgIH07Cit9Cg==
</data>
<flag name="review"
          id="39170"
          type_id="1"
          status="+"
          setter="abarth"
    />
    <flag name="commit-queue"
          id="39171"
          type_id="3"
          status="-"
          setter="dumi"
    />
          </attachment>
      

    </bug>

</bugzilla>