<?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>5243</bug_id>
          
          <creation_ts>2005-10-02 21:22:37 -0700</creation_ts>
          <short_desc>Numerous performance improvements to new FastMalloc to fix regression</short_desc>
          <delta_ts>2005-10-03 14:08:10 -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>WebKit Misc.</component>
          <version>420+</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</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>Major</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Maciej Stachowiak">mjs</reporter>
          <assigned_to name="Maciej Stachowiak">mjs</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>21222</commentid>
    <comment_count>0</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2005-10-02 21:22:37 -0700</bug_when>
    <thetext>The new threadsafe fast allocator caused a performance regression relative to dlmalloc, however by 
optimizing it a bit I have fixed this. Also I reduced memory consumption to be as good as the system 
malloc. Here is what I did:

- use fastMalloc for everything - it now gets applied to all new/delete allocations via a private inline 
operator new that is now included into every file via config.h.

- tweaked some of the numeric parameters for size classes and amount of wasted memory allowed per 
allocation - this saves on memory use and consequently improves speed.

- so long as the allocator is not being used on background threads, get the per-thread cache from a 
global variable instead of from pthread_getspecific, since the latter is slow.

- inline more functions, and force the ones GCC refuses to inline with  attribute(always_inline), nearly 
all of these have one call site so inlining them has to be a win.

- use some tricks to calculate allocation size more efficiently and fewer times for small allocations, to 
avoid hitting the huge size table array.

- avoid hitting the per-thread cache on code paths that don&apos;t need it.

- implement inline assembly version of spinlock for PowerPC (was already done for x86)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>21223</commentid>
    <comment_count>1</comment_count>
      <attachid>4165</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2005-10-02 21:23:24 -0700</bug_when>
    <thetext>Created attachment 4165
numerous optimizations to the new malloc</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>21227</commentid>
    <comment_count>2</comment_count>
      <attachid>4165</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2005-10-02 21:45:18 -0700</bug_when>
    <thetext>Comment on attachment 4165
numerous optimizations to the new malloc

Uh, I meant &quot;?&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>21228</commentid>
    <comment_count>3</comment_count>
      <attachid>4165</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2005-10-02 21:52:03 -0700</bug_when>
    <thetext>Comment on attachment 4165
numerous optimizations to the new malloc

I&apos;m puzzled by the use of &quot;config.h&quot; -- did we discover that was the best
practice and better than a prefix file?

Also, it seems that if we do use &quot;config.h&quot; it needs to be the first include in
each file, because other headers might have inline code that depends on it, but
it instead seems to be the second include in every file. Is this intentional or
perhaps a bug in the script you used to add it?

To echo a complaint you&apos;ve made to me many times, it was really a pain to
search through all the boilerplate changes to the other files to find the
substantive changes to review.

I&apos;m concerned that changes to constants in the FastMalloc.cpp source file seem
to be near comments that have not been updated. Are there any comments here
that need to be updated?

The use of __attribute__((always_inline)) is not inside an ifdef. Lets instead
do this in a more-portable way using a macro and __GNUC__ ifdef as we do with
PRIVATE_INLINE.

I suggest that PRIVATE_INLINE use a KXMLCORE prefix since it&apos;s a macro and in a
header.

Should remove the FIXME comment talking about PPC.

Is there an easy way to catch the mistake of pairing fastMalloc with plain old
free or vice versa in a build where NDEBUG is not defined? If not, we should
try to come up with something.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>21235</commentid>
    <comment_count>4</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2005-10-02 23:57:03 -0700</bug_when>
    <thetext>It sounds from the comments on webkit-dev like the prefix solution will not work for Symbian or Linux.

Changes made in response to comments:

- config.h is now the first file everywhere
- if you don&apos;t include config.h but use new or delete, you now get a compile failure (on OS X at least)
- comments updated to match constants
- made an ifdef for use of ALWAYS_INLINE in the file
- put prefix on PRIVATE_INLINE
- removed now unneeded FIXME
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>21247</commentid>
    <comment_count>5</comment_count>
      <attachid>4171</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2005-10-03 00:35:26 -0700</bug_when>
    <thetext>Created attachment 4171
addressed darin&apos;s comments</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>21264</commentid>
    <comment_count>6</comment_count>
      <attachid>4171</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2005-10-03 09:38:25 -0700</bug_when>
    <thetext>Comment on attachment 4171
addressed darin&apos;s comments

Why remove the include of config.h from fpconst.cpp? It needs the definition of
WORDS_BIGENDIAN.

Otherwise looks fine. I&apos;ll mark review+, but please consider the fpconst.cpp
thing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>21282</commentid>
    <comment_count>7</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2005-10-03 13:59:00 -0700</bug_when>
    <thetext>This is also &lt;rdar://problem/4283967&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>4165</attachid>
            <date>2005-10-02 21:23:24 -0700</date>
            <delta_ts>2005-10-02 21:52:03 -0700</delta_ts>
            <desc>numerous optimizations to the new malloc</desc>
            <filename>fm-fixed.patch.txt</filename>
            <type>text/plain</type>
            <size>247992</size>
            <attacher name="Maciej Stachowiak">mjs</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3Zz
L3Jvb3QvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjg0
OApkaWZmIC11IC1wIC1yMS44NDggSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCi0tLSBKYXZhU2Ny
aXB0Q29yZS9DaGFuZ2VMb2cJMzAgU2VwIDIwMDUgMTY6MTY6MTIgLTAwMDAJMS44NDgKKysrIEph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkzIE9jdCAyMDA1IDA0OjIyOjQ0IC0wMDAwCkBAIC0xLDMg
KzEsMTI5IEBACisyMDA1LTEwLTAyICBNYWNpZWogU3RhY2hvd2lhayAgPG1qc0BhcHBsZS5jb20+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKwlBIG51bWJlciBvZiBv
cHRpbWl6YXRpb25zIHRvIHRoZSBuZXcgdGhyZWFkc2FmZSBtYWxsb2MgdGhhdCBtYWtlIGl0IGFj
dHVhbGx5IGFzIGZhc3QKKwlhcyBkbG1hbGxvYyAoSSBtZWFzdXJlZCB3cm9uZyBiZWZvcmUpIGFu
ZCBhcyBtZW1vcnktZWZmaWNpZW50IGFzIHRoZSBzeXN0ZW0gbWFsbG9jLgorCisJLSB1c2UgZmFz
dE1hbGxvYyBmb3IgZXZlcnl0aGluZyAtIGl0IG5vdyBnZXRzIGFwcGxpZWQgdG8gYWxsIG5ldy9k
ZWxldGUgYWxsb2NhdGlvbnMKKwl2aWEgYSBwcml2YXRlIGlubGluZSBvcGVyYXRvciBuZXcgdGhh
dCBpcyBub3cgaW5jbHVkZWQgaW50byBldmVyeSBmaWxlIHZpYSBjb25maWcuaC4KKworCS0gdHdl
YWtlZCBzb21lIG9mIHRoZSBudW1lcmljIHBhcmFtZXRlcnMgZm9yIHNpemUgY2xhc3NlcyBhbmQg
YW1vdW50IG9mIHdhc3RlZCBtZW1vcnkKKwlhbGxvd2VkIHBlciBhbGxvY2F0aW9uIC0gdGhpcyBz
YXZlcyBvbiBtZW1vcnkgdXNlIGFuZCBjb25zZXF1ZW50bHkgaW1wcm92ZXMgc3BlZWQuCisKKwkt
IHNvIGxvbmcgYXMgdGhlIGFsbG9jYXRvciBpcyBub3QgYmVpbmcgdXNlZCBvbiBiYWNrZ3JvdW5k
IHRocmVhZHMsIGdldCB0aGUgcGVyLXRocmVhZAorCWNhY2hlIGZyb20gYSBnbG9iYWwgdmFyaWFi
bGUgaW5zdGVhZCBvZiBmcm9tIHB0aHJlYWRfZ2V0c3BlY2lmaWMsIHNpbmNlIHRoZSBsYXR0ZXIg
aXMgc2xvdy4KKworCS0gaW5saW5lIG1vcmUgZnVuY3Rpb25zLCBhbmQgZm9yY2UgdGhlIG9uZXMg
R0NDIHJlZnVzZXMgdG8gaW5saW5lIHdpdGggCisJYXR0cmlidXRlKGFsd2F5c19pbmxpbmUpLCBu
ZWFybHkgYWxsIG9mIHRoZXNlIGhhdmUgb25lIGNhbGwgc2l0ZSBzbyBpbmxpbmluZyB0aGVtIGhh
cyAKKwl0byBiZSBhIHdpbi4KKworCS0gdXNlIHNvbWUgdHJpY2tzIHRvIGNhbGN1bGF0ZSBhbGxv
Y2F0aW9uIHNpemUgbW9yZSBlZmZpY2llbnRseSBhbmQgZmV3ZXIgdGltZXMgZm9yIHNtYWxsCisJ
YWxsb2NhdGlvbnMsIHRvIGF2b2lkIGhpdHRpbmcgdGhlIGh1Z2Ugc2l6ZSB0YWJsZSBhcnJheS4K
KworCS0gYXZvaWQgaGl0dGluZyB0aGUgcGVyLXRocmVhZCBjYWNoZSBvbiBjb2RlIHBhdGhzIHRo
YXQgZG9uJ3QgbmVlZCBpdC4KKworCS0gaW1wbGVtZW50IGlubGluZSBhc3NlbWJseSB2ZXJzaW9u
IG9mIHNwaW5sb2NrIGZvciBQb3dlclBDICh3YXMgYWxyZWFkeSBkb25lIGZvciB4ODYpCisKKyAg
ICAgICAgKiBiaW5kaW5ncy9OUF9qc29iamVjdC5jcHA6CisgICAgICAgICogYmluZGluZ3MvYy9j
X2NsYXNzLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9jL2NfaW5zdGFuY2UuY3BwOgorICAgICAg
ICAqIGJpbmRpbmdzL2MvY19ydW50aW1lLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9jL2NfdXRp
bGl0eS5jcHA6CisgICAgICAgICogYmluZGluZ3Mvam5pL2puaV9jbGFzcy5jcHA6CisgICAgICAg
ICogYmluZGluZ3Mvam5pL2puaV9pbnN0YW5jZS5jcHA6CisgICAgICAgICogYmluZGluZ3Mvam5p
L2puaV9qc29iamVjdC5jcHA6CisgICAgICAgICogYmluZGluZ3Mvam5pL2puaV9vYmpjLm1tOgor
ICAgICAgICAqIGJpbmRpbmdzL2puaS9qbmlfcnVudGltZS5jcHA6CisgICAgICAgICogYmluZGlu
Z3Mvam5pL2puaV91dGlsaXR5LmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9ucHJ1bnRpbWUuY3Bw
OgorICAgICAgICAqIGJpbmRpbmdzL29iamMvV2ViU2NyaXB0T2JqZWN0Lm1tOgorICAgICAgICAq
IGJpbmRpbmdzL29iamMvb2JqY19jbGFzcy5tbToKKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL29i
amNfaW5zdGFuY2UubW06CisgICAgICAgICogYmluZGluZ3Mvb2JqYy9vYmpjX3J1bnRpbWUubW06
CisgICAgICAgICogYmluZGluZ3Mvb2JqYy9vYmpjX3V0aWxpdHkubW06CisgICAgICAgICogYmlu
ZGluZ3MvcnVudGltZS5jcHA6CisgICAgICAgICogYmluZGluZ3MvcnVudGltZV9hcnJheS5jcHA6
CisgICAgICAgICogYmluZGluZ3MvcnVudGltZV9tZXRob2QuY3BwOgorICAgICAgICAqIGJpbmRp
bmdzL3J1bnRpbWVfb2JqZWN0LmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9ydW50aW1lX3Jvb3Qu
Y3BwOgorICAgICAgICAqIGJpbmRpbmdzL3Rlc3RiaW5kaW5ncy5jcHA6CisgICAgICAgICogYmlu
ZGluZ3MvdGVzdGJpbmRpbmdzLm1tOgorICAgICAgICAqIGtqcy9hcnJheV9vYmplY3QuY3BwOgor
ICAgICAgICAoQXJyYXlJbnN0YW5jZUltcDo6QXJyYXlJbnN0YW5jZUltcCk6CisgICAgICAgIChB
cnJheUluc3RhbmNlSW1wOjp+QXJyYXlJbnN0YW5jZUltcCk6CisgICAgICAgIChBcnJheUluc3Rh
bmNlSW1wOjpyZXNpemVTdG9yYWdlKToKKyAgICAgICAgKiBranMvYm9vbF9vYmplY3QuY3BwOgor
ICAgICAgICAqIGtqcy9jb2xsZWN0b3IuY3BwOgorICAgICAgICAoS0pTOjpDb2xsZWN0b3I6OnJl
Z2lzdGVyVGhyZWFkKToKKyAgICAgICAgKiBranMvY29uZmlnLmg6CisgICAgICAgICoga2pzL2Rl
YnVnZ2VyLmNwcDoKKyAgICAgICAgKiBranMvZXJyb3Jfb2JqZWN0LmNwcDoKKyAgICAgICAgKiBr
anMvZnVuY3Rpb24uY3BwOgorICAgICAgICAqIGtqcy9mdW5jdGlvbl9vYmplY3QuY3BwOgorICAg
ICAgICAqIGtqcy9pZGVudGlmaWVyLmNwcDoKKyAgICAgICAgKEtKUzo6SWRlbnRpZmllcjo6cmVo
YXNoKToKKyAgICAgICAgKiBranMvaW50ZXJuYWwuY3BwOgorICAgICAgICAoS0pTOjpQYXJzZXI6
OnNhdmVOZXdOb2RlKToKKyAgICAgICAgKEtKUzo6Y2xlYXJOZXdOb2Rlcyk6CisgICAgICAgICog
a2pzL2ludGVycHJldGVyLmNwcDoKKyAgICAgICAgKiBranMvbGV4ZXIuY3BwOgorICAgICAgICAo
TGV4ZXI6OmRvbmVQYXJzaW5nKToKKyAgICAgICAgKExleGVyOjptYWtlSWRlbnRpZmllcik6Cisg
ICAgICAgIChMZXhlcjo6bWFrZVVTdHJpbmcpOgorICAgICAgICAqIGtqcy9saXN0LmNwcDoKKyAg
ICAgICAgKiBranMvbWF0aF9vYmplY3QuY3BwOgorICAgICAgICAqIGtqcy9ub2Rlcy5jcHA6Cisg
ICAgICAgICoga2pzL25vZGVzLmg6CisgICAgICAgICoga2pzL25vZGVzMnN0cmluZy5jcHA6Cisg
ICAgICAgICoga2pzL251bWJlcl9vYmplY3QuY3BwOgorICAgICAgICAoaW50ZWdlcl9wYXJ0X25v
ZXhwKToKKyAgICAgICAgKGNoYXJfc2VxdWVuY2UpOgorICAgICAgICAqIGtqcy9vYmplY3QuY3Bw
OgorICAgICAgICAqIGtqcy9vYmplY3Rfb2JqZWN0LmNwcDoKKyAgICAgICAgKiBranMvcHJvcGVy
dHlfbWFwLmNwcDoKKyAgICAgICAgKiBranMvcHJvcGVydHlfc2xvdC5jcHA6CisgICAgICAgICog
a2pzL3Byb3RlY3RlZF92YWx1ZXMuY3BwOgorICAgICAgICAoS0pTOjpQcm90ZWN0ZWRWYWx1ZXM6
OnJlaGFzaCk6CisgICAgICAgICoga2pzL3JlZmVyZW5jZS5jcHA6CisgICAgICAgICoga2pzL3Jl
ZmVyZW5jZV9saXN0LmNwcDoKKyAgICAgICAgKiBranMvcmVnZXhwLmNwcDoKKyAgICAgICAgKiBr
anMvcmVnZXhwX29iamVjdC5jcHA6CisgICAgICAgICoga2pzL3Njb3BlX2NoYWluLmNwcDoKKyAg
ICAgICAgKiBranMvc2NvcGVfY2hhaW4uaDoKKyAgICAgICAgKiBranMvc3RyaW5nX29iamVjdC5j
cHA6CisgICAgICAgICoga2pzL3Rlc3RranMuY3BwOgorICAgICAgICAqIGtqcy91c3RyaW5nLmg6
CisgICAgICAgICoga2pzL3ZhbHVlLmNwcDoKKyAgICAgICAgKiBreG1sY29yZS9Bc3NlcnRpb25z
Lm1tOgorICAgICAgICAqIGt4bWxjb3JlL0Zhc3RNYWxsb2MuY3BwOgorICAgICAgICAoS1hNTENv
cmU6OkluaXRTaXplQ2xhc3Nlcyk6CisgICAgICAgIChLWE1MQ29yZTo6RExMX0lzRW1wdHkpOgor
ICAgICAgICAoS1hNTENvcmU6OkRMTF9QcmVwZW5kKToKKyAgICAgICAgKEtYTUxDb3JlOjpUQ01h
bGxvY19DZW50cmFsX0ZyZWVMaXN0OjpJbnNlcnQpOgorICAgICAgICAoS1hNTENvcmU6OlRDTWFs
bG9jX0NlbnRyYWxfRnJlZUxpc3Q6OlJlbW92ZSk6CisgICAgICAgIChLWE1MQ29yZTo6VENNYWxs
b2NfQ2VudHJhbF9GcmVlTGlzdDo6UG9wdWxhdGUpOgorICAgICAgICAoS1hNTENvcmU6OlRDTWFs
bG9jX1RocmVhZENhY2hlOjpBbGxvY2F0ZSk6CisgICAgICAgIChLWE1MQ29yZTo6VENNYWxsb2Nf
VGhyZWFkQ2FjaGU6OkZldGNoRnJvbUNlbnRyYWxDYWNoZSk6CisgICAgICAgIChLWE1MQ29yZTo6
ZmFzdE1hbGxvY1JlZ2lzdGVyVGhyZWFkKToKKyAgICAgICAgKEtYTUxDb3JlOjpUQ01hbGxvY19U
aHJlYWRDYWNoZTo6R2V0Q2FjaGUpOgorICAgICAgICAoS1hNTENvcmU6OlRDTWFsbG9jX1RocmVh
ZENhY2hlOjpHZXRDYWNoZUlmUHJlc2VudCk6CisgICAgICAgIChLWE1MQ29yZTo6VENNYWxsb2Nf
VGhyZWFkQ2FjaGU6OkNyZWF0ZUNhY2hlSWZOZWNlc3NhcnkpOgorICAgICAgICAoS1hNTENvcmU6
OmRvX21hbGxvYyk6CisgICAgICAgIChLWE1MQ29yZTo6ZG9fZnJlZSk6CisgICAgICAgIChLWE1M
Q29yZTo6cmVhbGxvYyk6CisgICAgICAgICoga3htbGNvcmUvRmFzdE1hbGxvYy5oOgorICAgICAg
ICAob3BlcmF0b3IgbmV3KToKKyAgICAgICAgKG9wZXJhdG9yIGRlbGV0ZSk6CisgICAgICAgIChv
cGVyYXRvciBuZXdbXSk6CisgICAgICAgIChvcGVyYXRvciBkZWxldGVbXSk6CisgICAgICAgICog
a3htbGNvcmUvSGFzaFRhYmxlLmNwcDoKKyAgICAgICAgKiBreG1sY29yZS9UQ1NwaW5Mb2NrLmg6
CisgICAgICAgIChUQ01hbGxvY19TcGluTG9jazo6TG9jayk6CisgICAgICAgIChUQ01hbGxvY19T
cGluTG9jazo6VW5sb2NrKToKKyAgICAgICAgKFRDTWFsbG9jX1Nsb3dMb2NrKToKKyAgICAgICAg
KiBreG1sY29yZS9UQ1N5c3RlbUFsbG9jLmNwcDoKKwogMjAwNS0wOS0zMCAgR2VvZmZyZXkgR2Fy
ZW4gIDxnZ2FyZW5AYXBwbGUuY29tPgogCiAgICAgICAgIC0gU2Vjb25kIGN1dCBhdCBmaXhpbmcg
PHJkYXI6Ly9wcm9ibGVtLzQyNzUyMDY+IERlbnZlciBSZWdyZXNzaW9uOiBTZWVkOiAKSW5kZXg6
IEphdmFTY3JpcHRDb3JlL2JpbmRpbmdzL05QX2pzb2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBm
aWxlOiAvY3ZzL3Jvb3QvSmF2YVNjcmlwdENvcmUvYmluZGluZ3MvTlBfanNvYmplY3QuY3BwLHYK
cmV0cmlldmluZyByZXZpc2lvbiAxLjIzCmRpZmYgLXUgLXAgLXIxLjIzIEphdmFTY3JpcHRDb3Jl
L2JpbmRpbmdzL05QX2pzb2JqZWN0LmNwcAotLS0gSmF2YVNjcmlwdENvcmUvYmluZGluZ3MvTlBf
anNvYmplY3QuY3BwCTE5IFNlcCAyMDA1IDA2OjU3OjI2IC0wMDAwCTEuMjMKKysrIEphdmFTY3Jp
cHRDb3JlL2JpbmRpbmdzL05QX2pzb2JqZWN0LmNwcAkzIE9jdCAyMDA1IDA0OjIyOjQ0IC0wMDAw
CkBAIC0yMyw2ICsyMyw3IEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKICAqLwogI2luY2x1ZGUgPE5QX2pz
b2JqZWN0Lmg+CisjaW5jbHVkZSAiY29uZmlnLmgiCiAKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29y
ZS9ucHJ1bnRpbWUuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9jX3V0aWxpdHkuaD4KSW5k
ZXg6IEphdmFTY3JpcHRDb3JlL2JpbmRpbmdzL25wcnVudGltZS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1Mg
ZmlsZTogL2N2cy9yb290L0phdmFTY3JpcHRDb3JlL2JpbmRpbmdzL25wcnVudGltZS5jcHAsdgpy
ZXRyaWV2aW5nIHJldmlzaW9uIDEuMTkKZGlmZiAtdSAtcCAtcjEuMTkgSmF2YVNjcmlwdENvcmUv
YmluZGluZ3MvbnBydW50aW1lLmNwcAotLS0gSmF2YVNjcmlwdENvcmUvYmluZGluZ3MvbnBydW50
aW1lLmNwcAkxNiBBdWcgMjAwNSAyMjowMToyOSAtMDAwMAkxLjE5CisrKyBKYXZhU2NyaXB0Q29y
ZS9iaW5kaW5ncy9ucHJ1bnRpbWUuY3BwCTMgT2N0IDIwMDUgMDQ6MjI6NDQgLTAwMDAKQEAgLTIz
LDYgKzIzLDcgQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAogICovCiAjaW5jbHVkZSA8Q29yZUZvdW5kYXRp
b24vQ29yZUZvdW5kYXRpb24uaD4KKyNpbmNsdWRlICJjb25maWcuaCIKIAogI2luY2x1ZGUgPG5w
cnVudGltZS5oPgogI2luY2x1ZGUgPGNfdXRpbGl0eS5oPgpJbmRleDogSmF2YVNjcmlwdENvcmUv
YmluZGluZ3MvcnVudGltZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L0phdmFT
Y3JpcHRDb3JlL2JpbmRpbmdzL3J1bnRpbWUuY3BwLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjIw
CmRpZmYgLXUgLXAgLXIxLjIwIEphdmFTY3JpcHRDb3JlL2JpbmRpbmdzL3J1bnRpbWUuY3BwCi0t
LSBKYXZhU2NyaXB0Q29yZS9iaW5kaW5ncy9ydW50aW1lLmNwcAkxOSBTZXAgMjAwNSAwNjo1Nzoy
NiAtMDAwMAkxLjIwCisrKyBKYXZhU2NyaXB0Q29yZS9iaW5kaW5ncy9ydW50aW1lLmNwcAkzIE9j
dCAyMDA1IDA0OjIyOjQ0IC0wMDAwCkBAIC0yMyw2ICsyMyw3IEBACiAgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAK
ICAqLwogI2luY2x1ZGUgPHZhbHVlLmg+CisjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSA8
aW50ZXJwcmV0ZXIuaD4KIAogI2luY2x1ZGUgPHJ1bnRpbWVfb2JqZWN0Lmg+CkluZGV4OiBKYXZh
U2NyaXB0Q29yZS9iaW5kaW5ncy9ydW50aW1lX2FycmF5LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxl
OiAvY3ZzL3Jvb3QvSmF2YVNjcmlwdENvcmUvYmluZGluZ3MvcnVudGltZV9hcnJheS5jcHAsdgpy
ZXRyaWV2aW5nIHJldmlzaW9uIDEuMTEKZGlmZiAtdSAtcCAtcjEuMTEgSmF2YVNjcmlwdENvcmUv
YmluZGluZ3MvcnVudGltZV9hcnJheS5jcHAKLS0tIEphdmFTY3JpcHRDb3JlL2JpbmRpbmdzL3J1
bnRpbWVfYXJyYXkuY3BwCTE2IEF1ZyAyMDA1IDAwOjQ3OjIxIC0wMDAwCTEuMTEKKysrIEphdmFT
Y3JpcHRDb3JlL2JpbmRpbmdzL3J1bnRpbWVfYXJyYXkuY3BwCTMgT2N0IDIwMDUgMDQ6MjI6NDQg
LTAwMDAKQEAgLTIzLDYgKzIzLDcgQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAogICovCiAjaW5jbHVkZSA8
aWRlbnRpZmllci5oPgorI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgPGludGVycHJldGVy
Lmg+CiAjaW5jbHVkZSA8cnVudGltZS5oPgogI2luY2x1ZGUgPHJ1bnRpbWVfYXJyYXkuaD4KSW5k
ZXg6IEphdmFTY3JpcHRDb3JlL2JpbmRpbmdzL3J1bnRpbWVfbWV0aG9kLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvSmF2YVNjcmlwdENvcmUvYmluZGluZ3MvcnVudGltZV9tZXRo
b2QuY3BwLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjEzCmRpZmYgLXUgLXAgLXIxLjEzIEphdmFT
Y3JpcHRDb3JlL2JpbmRpbmdzL3J1bnRpbWVfbWV0aG9kLmNwcAotLS0gSmF2YVNjcmlwdENvcmUv
YmluZGluZ3MvcnVudGltZV9tZXRob2QuY3BwCTggQXVnIDIwMDUgMDQ6MDc6MjIgLTAwMDAJMS4x
MworKysgSmF2YVNjcmlwdENvcmUvYmluZGluZ3MvcnVudGltZV9tZXRob2QuY3BwCTMgT2N0IDIw
MDUgMDQ6MjI6NDQgLTAwMDAKQEAgLTI0LDYgKzI0LDcgQEAKICAqLwogIAogI2luY2x1ZGUgImNv
bnRleHQuaCIKKyNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJpbnRlcm5hbC5oIgogI2lu
Y2x1ZGUgInJ1bnRpbWVfbWV0aG9kLmgiCiAjaW5jbHVkZSAicnVudGltZV9vYmplY3QuaCIKSW5k
ZXg6IEphdmFTY3JpcHRDb3JlL2JpbmRpbmdzL3J1bnRpbWVfb2JqZWN0LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvSmF2YVNjcmlwdENvcmUvYmluZGluZ3MvcnVudGltZV9vYmpl
Y3QuY3BwLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjI4CmRpZmYgLXUgLXAgLXIxLjI4IEphdmFT
Y3JpcHRDb3JlL2JpbmRpbmdzL3J1bnRpbWVfb2JqZWN0LmNwcAotLS0gSmF2YVNjcmlwdENvcmUv
YmluZGluZ3MvcnVudGltZV9vYmplY3QuY3BwCTggQXVnIDIwMDUgMDQ6MDc6MjIgLTAwMDAJMS4y
OAorKysgSmF2YVNjcmlwdENvcmUvYmluZGluZ3MvcnVudGltZV9vYmplY3QuY3BwCTMgT2N0IDIw
MDUgMDQ6MjI6NDQgLTAwMDAKQEAgLTI0LDYgKzI0LDcgQEAKICAqLwogCiAjaW5jbHVkZSAiZXJy
b3Jfb2JqZWN0LmgiCisjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiZnVuY3Rpb24uaCIK
ICNpbmNsdWRlICJpbnRlcnByZXRlci5oIgogI2luY2x1ZGUgIm9iamVjdC5oIgpJbmRleDogSmF2
YVNjcmlwdENvcmUvYmluZGluZ3MvcnVudGltZV9yb290LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxl
OiAvY3ZzL3Jvb3QvSmF2YVNjcmlwdENvcmUvYmluZGluZ3MvcnVudGltZV9yb290LmNwcCx2CnJl
dHJpZXZpbmcgcmV2aXNpb24gMS4xMQpkaWZmIC11IC1wIC1yMS4xMSBKYXZhU2NyaXB0Q29yZS9i
aW5kaW5ncy9ydW50aW1lX3Jvb3QuY3BwCi0tLSBKYXZhU2NyaXB0Q29yZS9iaW5kaW5ncy9ydW50
aW1lX3Jvb3QuY3BwCTIxIFNlcCAyMDA1IDAwOjMzOjE2IC0wMDAwCTEuMTEKKysrIEphdmFTY3Jp
cHRDb3JlL2JpbmRpbmdzL3J1bnRpbWVfcm9vdC5jcHAJMyBPY3QgMjAwNSAwNDoyMjo0NCAtMDAw
MApAQCAtMjMsNiArMjMsNyBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCiAgKi8KICNpbmNsdWRlIDxqbmlf
anNvYmplY3QuaD4KKyNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlIDxydW50aW1lX3Jvb3Qu
aD4KIAogdXNpbmcgbmFtZXNwYWNlIEtKUzsKSW5kZXg6IEphdmFTY3JpcHRDb3JlL2JpbmRpbmdz
L3Rlc3RiaW5kaW5ncy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L0phdmFTY3Jp
cHRDb3JlL2JpbmRpbmdzL3Rlc3RiaW5kaW5ncy5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEu
NgpkaWZmIC11IC1wIC1yMS42IEphdmFTY3JpcHRDb3JlL2JpbmRpbmdzL3Rlc3RiaW5kaW5ncy5j
cHAKLS0tIEphdmFTY3JpcHRDb3JlL2JpbmRpbmdzL3Rlc3RiaW5kaW5ncy5jcHAJMTkgU2VwIDIw
MDUgMDY6NTc6MjYgLTAwMDAJMS42CisrKyBKYXZhU2NyaXB0Q29yZS9iaW5kaW5ncy90ZXN0Ymlu
ZGluZ3MuY3BwCTMgT2N0IDIwMDUgMDQ6MjI6NDQgLTAwMDAKQEAgLTIwLDYgKzIwLDcgQEAKICAq
CiAgKi8KICNpbmNsdWRlIDxhc3NlcnQuaD4KKyNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRl
IDxzdGRpby5oPgogI2luY2x1ZGUgPHN0cmluZy5oPgogCkluZGV4OiBKYXZhU2NyaXB0Q29yZS9i
aW5kaW5ncy90ZXN0YmluZGluZ3MubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L0ph
dmFTY3JpcHRDb3JlL2JpbmRpbmdzL3Rlc3RiaW5kaW5ncy5tbSx2CnJldHJpZXZpbmcgcmV2aXNp
b24gMS4xMQpkaWZmIC11IC1wIC1yMS4xMSBKYXZhU2NyaXB0Q29yZS9iaW5kaW5ncy90ZXN0Ymlu
ZGluZ3MubW0KLS0tIEphdmFTY3JpcHRDb3JlL2JpbmRpbmdzL3Rlc3RiaW5kaW5ncy5tbQkxOSBT
ZXAgMjAwNSAwNjo1NzoyNiAtMDAwMAkxLjExCisrKyBKYXZhU2NyaXB0Q29yZS9iaW5kaW5ncy90
ZXN0YmluZGluZ3MubW0JMyBPY3QgMjAwNSAwNDoyMjo0NCAtMDAwMApAQCAtMjQsNiArMjQsNyBA
QAogICovCiAKICNpbmNsdWRlIDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4KKyNpbmNsdWRlICJj
b25maWcuaCIKIAogI2ltcG9ydCA8V2ViS2l0L1dlYlNjcmlwdE9iamVjdC5oPgogCkluZGV4OiBK
YXZhU2NyaXB0Q29yZS9iaW5kaW5ncy9jL2NfY2xhc3MuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6
IC9jdnMvcm9vdC9KYXZhU2NyaXB0Q29yZS9iaW5kaW5ncy9jL2NfY2xhc3MuY3BwLHYKcmV0cmll
dmluZyByZXZpc2lvbiAxLjkKZGlmZiAtdSAtcCAtcjEuOSBKYXZhU2NyaXB0Q29yZS9iaW5kaW5n
cy9jL2NfY2xhc3MuY3BwCi0tLSBKYXZhU2NyaXB0Q29yZS9iaW5kaW5ncy9jL2NfY2xhc3MuY3Bw
CTI0IE5vdiAyMDA0IDAxOjA2OjQ3IC0wMDAwCTEuOQorKysgSmF2YVNjcmlwdENvcmUvYmluZGlu
Z3MvYy9jX2NsYXNzLmNwcAkzIE9jdCAyMDA1IDA0OjIyOjQ0IC0wMDAwCkBAIC0yMyw2ICsyMyw3
IEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLiAKICAqLwogI2luY2x1ZGUgPGNfY2xhc3MuaD4KKyNpbmNsdWRl
ICJjb25maWcuaCIKICNpbmNsdWRlIDxjX2luc3RhbmNlLmg+CiAjaW5jbHVkZSA8Y19ydW50aW1l
Lmg+CiAKSW5kZXg6IEphdmFTY3JpcHRDb3JlL2JpbmRpbmdzL2MvY19pbnN0YW5jZS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L0phdmFTY3JpcHRDb3JlL2JpbmRpbmdzL2MvY19p
bnN0YW5jZS5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMTMKZGlmZiAtdSAtcCAtcjEuMTMg
SmF2YVNjcmlwdENvcmUvYmluZGluZ3MvYy9jX2luc3RhbmNlLmNwcAotLS0gSmF2YVNjcmlwdENv
cmUvYmluZGluZ3MvYy9jX2luc3RhbmNlLmNwcAk4IEF1ZyAyMDA1IDA0OjA3OjIzIC0wMDAwCTEu
MTMKKysrIEphdmFTY3JpcHRDb3JlL2JpbmRpbmdzL2MvY19pbnN0YW5jZS5jcHAJMyBPY3QgMjAw
NSAwNDoyMjo0NCAtMDAwMApAQCAtMjMsNiArMjMsNyBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCiAgKi8K
ICNpbmNsdWRlIDxjX2NsYXNzLmg+CisjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSA8Y19p
bnN0YW5jZS5oPgogI2luY2x1ZGUgPGNfcnVudGltZS5oPgogI2luY2x1ZGUgPGNfdXRpbGl0eS5o
PgpJbmRleDogSmF2YVNjcmlwdENvcmUvYmluZGluZ3MvYy9jX3J1bnRpbWUuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9KYXZhU2NyaXB0Q29yZS9iaW5kaW5ncy9jL2NfcnVudGlt
ZS5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNwpkaWZmIC11IC1wIC1yMS43IEphdmFTY3Jp
cHRDb3JlL2JpbmRpbmdzL2MvY19ydW50aW1lLmNwcAotLS0gSmF2YVNjcmlwdENvcmUvYmluZGlu
Z3MvYy9jX3J1bnRpbWUuY3BwCTggQXVnIDIwMDUgMDQ6MDc6MjMgLTAwMDAJMS43CisrKyBKYXZh
U2NyaXB0Q29yZS9iaW5kaW5ncy9jL2NfcnVudGltZS5jcHAJMyBPY3QgMjAwNSAwNDoyMjo0NCAt
MDAwMApAQCAtMjQsNiArMjQsNyBAQAogICovCiAKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9p
bnRlcm5hbC5oPgorI2luY2x1ZGUgImNvbmZpZy5oIgogCiAjaW5jbHVkZSA8Y19pbnN0YW5jZS5o
PgogI2luY2x1ZGUgPGNfcnVudGltZS5oPgpJbmRleDogSmF2YVNjcmlwdENvcmUvYmluZGluZ3Mv
Yy9jX3V0aWxpdHkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9KYXZhU2NyaXB0
Q29yZS9iaW5kaW5ncy9jL2NfdXRpbGl0eS5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMTEK
ZGlmZiAtdSAtcCAtcjEuMTEgSmF2YVNjcmlwdENvcmUvYmluZGluZ3MvYy9jX3V0aWxpdHkuY3Bw
Ci0tLSBKYXZhU2NyaXB0Q29yZS9iaW5kaW5ncy9jL2NfdXRpbGl0eS5jcHAJMTYgQXVnIDIwMDUg
MjI6MDE6MzAgLTAwMDAJMS4xMQorKysgSmF2YVNjcmlwdENvcmUvYmluZGluZ3MvYy9jX3V0aWxp
dHkuY3BwCTMgT2N0IDIwMDUgMDQ6MjI6NDQgLTAwMDAKQEAgLTI0LDYgKzI0LDcgQEAKICAqLwog
CiAjaW5jbHVkZSAiY191dGlsaXR5LmgiCisjaW5jbHVkZSAiY29uZmlnLmgiCiAKICNpbmNsdWRl
ICJjX2luc3RhbmNlLmgiIAogI2luY2x1ZGUgIm5wcnVudGltZV9pbXBsLmgiCkluZGV4OiBKYXZh
U2NyaXB0Q29yZS9iaW5kaW5ncy9qbmkvam5pX2NsYXNzLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxl
OiAvY3ZzL3Jvb3QvSmF2YVNjcmlwdENvcmUvYmluZGluZ3Mvam5pL2puaV9jbGFzcy5jcHAsdgpy
ZXRyaWV2aW5nIHJldmlzaW9uIDEuMTUKZGlmZiAtdSAtcCAtcjEuMTUgSmF2YVNjcmlwdENvcmUv
YmluZGluZ3Mvam5pL2puaV9jbGFzcy5jcHAKLS0tIEphdmFTY3JpcHRDb3JlL2JpbmRpbmdzL2pu
aS9qbmlfY2xhc3MuY3BwCTE2IFNlcCAyMDA1IDIyOjQyOjI4IC0wMDAwCTEuMTUKKysrIEphdmFT
Y3JpcHRDb3JlL2JpbmRpbmdzL2puaS9qbmlfY2xhc3MuY3BwCTMgT2N0IDIwMDUgMDQ6MjI6NDQg
LTAwMDAKQEAgLTIzLDYgKzIzLDcgQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAogICovCiAjaW5jbHVkZSA8
am5pX2NsYXNzLmg+CisjaW5jbHVkZSAiY29uZmlnLmgiCiAKICNpbmNsdWRlIDxqbmlfdXRpbGl0
eS5oPgogI2luY2x1ZGUgPGpuaV9ydW50aW1lLmg+CkluZGV4OiBKYXZhU2NyaXB0Q29yZS9iaW5k
aW5ncy9qbmkvam5pX2luc3RhbmNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3Qv
SmF2YVNjcmlwdENvcmUvYmluZGluZ3Mvam5pL2puaV9pbnN0YW5jZS5jcHAsdgpyZXRyaWV2aW5n
IHJldmlzaW9uIDEuMzAKZGlmZiAtdSAtcCAtcjEuMzAgSmF2YVNjcmlwdENvcmUvYmluZGluZ3Mv
am5pL2puaV9pbnN0YW5jZS5jcHAKLS0tIEphdmFTY3JpcHRDb3JlL2JpbmRpbmdzL2puaS9qbmlf
aW5zdGFuY2UuY3BwCTE2IFNlcCAyMDA1IDIyOjQyOjI4IC0wMDAwCTEuMzAKKysrIEphdmFTY3Jp
cHRDb3JlL2JpbmRpbmdzL2puaS9qbmlfaW5zdGFuY2UuY3BwCTMgT2N0IDIwMDUgMDQ6MjI6NDQg
LTAwMDAKQEAgLTIzLDYgKzIzLDcgQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAogICovCiAjaW5jbHVkZSA8
am5pX2NsYXNzLmg+CisjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSA8am5pX2luc3RhbmNl
Lmg+CiAjaW5jbHVkZSA8am5pX3J1bnRpbWUuaD4KICNpbmNsdWRlIDxqbmlfdXRpbGl0eS5oPgpJ
bmRleDogSmF2YVNjcmlwdENvcmUvYmluZGluZ3Mvam5pL2puaV9qc29iamVjdC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L0phdmFTY3JpcHRDb3JlL2JpbmRpbmdzL2puaS9qbmlf
anNvYmplY3QuY3BwLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjE0CmRpZmYgLXUgLXAgLXIxLjE0
IEphdmFTY3JpcHRDb3JlL2JpbmRpbmdzL2puaS9qbmlfanNvYmplY3QuY3BwCi0tLSBKYXZhU2Ny
aXB0Q29yZS9iaW5kaW5ncy9qbmkvam5pX2pzb2JqZWN0LmNwcAkxOSBTZXAgMjAwNSAwNjo1Nzoy
NiAtMDAwMAkxLjE0CisrKyBKYXZhU2NyaXB0Q29yZS9iaW5kaW5ncy9qbmkvam5pX2pzb2JqZWN0
LmNwcAkzIE9jdCAyMDA1IDA0OjIyOjQ0IC0wMDAwCkBAIC0yMyw2ICsyMyw3IEBACiAgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLiAKICAqLwogI2luY2x1ZGUgPENvcmVGb3VuZGF0aW9uL0NvcmVGb3VuZGF0aW9uLmg+
CisjaW5jbHVkZSAiY29uZmlnLmgiCiAKICNpbmNsdWRlIDxhc3NlcnQuaD4KIApJbmRleDogSmF2
YVNjcmlwdENvcmUvYmluZGluZ3Mvam5pL2puaV9vYmpjLm1tCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6
IC9jdnMvcm9vdC9KYXZhU2NyaXB0Q29yZS9iaW5kaW5ncy9qbmkvam5pX29iamMubW0sdgpyZXRy
aWV2aW5nIHJldmlzaW9uIDEuNApkaWZmIC11IC1wIC1yMS40IEphdmFTY3JpcHRDb3JlL2JpbmRp
bmdzL2puaS9qbmlfb2JqYy5tbQotLS0gSmF2YVNjcmlwdENvcmUvYmluZGluZ3Mvam5pL2puaV9v
YmpjLm1tCTggQXVnIDIwMDUgMDQ6MDc6MjQgLTAwMDAJMS40CisrKyBKYXZhU2NyaXB0Q29yZS9i
aW5kaW5ncy9qbmkvam5pX29iamMubW0JMyBPY3QgMjAwNSAwNDoyMjo0NCAtMDAwMApAQCAtMjMs
NiArMjMsNyBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCiAgKi8KICNpbXBvcnQgPEZvdW5kYXRpb24vRm91
bmRhdGlvbi5oPgorI2luY2x1ZGUgImNvbmZpZy5oIgogI2ltcG9ydCA8SmF2YVNjcmlwdENvcmUv
am5pX3V0aWxpdHkuaD4KICNpbXBvcnQgPEphdmFTY3JpcHRDb3JlL29iamNfdXRpbGl0eS5oPgog
CkluZGV4OiBKYXZhU2NyaXB0Q29yZS9iaW5kaW5ncy9qbmkvam5pX3J1bnRpbWUuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9KYXZhU2NyaXB0Q29yZS9iaW5kaW5ncy9qbmkvam5p
X3J1bnRpbWUuY3BwLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjI5CmRpZmYgLXUgLXAgLXIxLjI5
IEphdmFTY3JpcHRDb3JlL2JpbmRpbmdzL2puaS9qbmlfcnVudGltZS5jcHAKLS0tIEphdmFTY3Jp
cHRDb3JlL2JpbmRpbmdzL2puaS9qbmlfcnVudGltZS5jcHAJMTYgU2VwIDIwMDUgMjI6NDI6Mjgg
LTAwMDAJMS4yOQorKysgSmF2YVNjcmlwdENvcmUvYmluZGluZ3Mvam5pL2puaV9ydW50aW1lLmNw
cAkzIE9jdCAyMDA1IDA0OjIyOjQ0IC0wMDAwCkBAIC0yMyw2ICsyMyw3IEBACiAgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLiAKICAqLwogI2luY2x1ZGUgPGludGVybmFsLmg+CisjaW5jbHVkZSAiY29uZmlnLmgiCiAj
aW5jbHVkZSA8dXN0cmluZy5oPgogI2luY2x1ZGUgPHZhbHVlLmg+CiAKSW5kZXg6IEphdmFTY3Jp
cHRDb3JlL2JpbmRpbmdzL2puaS9qbmlfdXRpbGl0eS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTog
L2N2cy9yb290L0phdmFTY3JpcHRDb3JlL2JpbmRpbmdzL2puaS9qbmlfdXRpbGl0eS5jcHAsdgpy
ZXRyaWV2aW5nIHJldmlzaW9uIDEuMjUKZGlmZiAtdSAtcCAtcjEuMjUgSmF2YVNjcmlwdENvcmUv
YmluZGluZ3Mvam5pL2puaV91dGlsaXR5LmNwcAotLS0gSmF2YVNjcmlwdENvcmUvYmluZGluZ3Mv
am5pL2puaV91dGlsaXR5LmNwcAkxNiBBdWcgMjAwNSAyMjowMTozMCAtMDAwMAkxLjI1CisrKyBK
YXZhU2NyaXB0Q29yZS9iaW5kaW5ncy9qbmkvam5pX3V0aWxpdHkuY3BwCTMgT2N0IDIwMDUgMDQ6
MjI6NDQgLTAwMDAKQEAgLTI0LDYgKzI0LDcgQEAKICAqLwogCiAjaW5jbHVkZSAiam5pX3V0aWxp
dHkuaCIKKyNpbmNsdWRlICJjb25maWcuaCIKIAogI2luY2x1ZGUgImludGVycHJldGVyLmgiCiAj
aW5jbHVkZSAibGlzdC5oIgpJbmRleDogSmF2YVNjcmlwdENvcmUvYmluZGluZ3Mvb2JqYy9XZWJT
Y3JpcHRPYmplY3QubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L0phdmFTY3JpcHRD
b3JlL2JpbmRpbmdzL29iamMvV2ViU2NyaXB0T2JqZWN0Lm1tLHYKcmV0cmlldmluZyByZXZpc2lv
biAxLjI1CmRpZmYgLXUgLXAgLXIxLjI1IEphdmFTY3JpcHRDb3JlL2JpbmRpbmdzL29iamMvV2Vi
U2NyaXB0T2JqZWN0Lm1tCi0tLSBKYXZhU2NyaXB0Q29yZS9iaW5kaW5ncy9vYmpjL1dlYlNjcmlw
dE9iamVjdC5tbQkxOSBTZXAgMjAwNSAwNjo1NzoyNyAtMDAwMAkxLjI1CisrKyBKYXZhU2NyaXB0
Q29yZS9iaW5kaW5ncy9vYmpjL1dlYlNjcmlwdE9iamVjdC5tbQkzIE9jdCAyMDA1IDA0OjIyOjQ0
IC0wMDAwCkBAIC0yNCw2ICsyNCw3IEBACiAgKi8KIAogI2ltcG9ydCAiV2ViU2NyaXB0T2JqZWN0
UHJpdmF0ZS5oIgorI2luY2x1ZGUgImNvbmZpZy5oIgogCiAjaW1wb3J0ICJpbnRlcm5hbC5oIgog
I2ltcG9ydCAibGlzdC5oIgpJbmRleDogSmF2YVNjcmlwdENvcmUvYmluZGluZ3Mvb2JqYy9vYmpj
X2NsYXNzLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9KYXZhU2NyaXB0Q29yZS9i
aW5kaW5ncy9vYmpjL29iamNfY2xhc3MubW0sdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMTAKZGlm
ZiAtdSAtcCAtcjEuMTAgSmF2YVNjcmlwdENvcmUvYmluZGluZ3Mvb2JqYy9vYmpjX2NsYXNzLm1t
Ci0tLSBKYXZhU2NyaXB0Q29yZS9iaW5kaW5ncy9vYmpjL29iamNfY2xhc3MubW0JOCBBdWcgMjAw
NSAwNDowNzoyNiAtMDAwMAkxLjEwCisrKyBKYXZhU2NyaXB0Q29yZS9iaW5kaW5ncy9vYmpjL29i
amNfY2xhc3MubW0JMyBPY3QgMjAwNSAwNDoyMjo0NCAtMDAwMApAQCAtMjMsNiArMjMsNyBAQAog
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4gCiAgKi8KICNpbmNsdWRlIDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4K
KyNpbmNsdWRlICJjb25maWcuaCIKIAogI2luY2x1ZGUgPG9iamNfY2xhc3MuaD4KICNpbmNsdWRl
IDxvYmpjX2luc3RhbmNlLmg+CkluZGV4OiBKYXZhU2NyaXB0Q29yZS9iaW5kaW5ncy9vYmpjL29i
amNfaW5zdGFuY2UubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L0phdmFTY3JpcHRD
b3JlL2JpbmRpbmdzL29iamMvb2JqY19pbnN0YW5jZS5tbSx2CnJldHJpZXZpbmcgcmV2aXNpb24g
MS4xMwpkaWZmIC11IC1wIC1yMS4xMyBKYXZhU2NyaXB0Q29yZS9iaW5kaW5ncy9vYmpjL29iamNf
aW5zdGFuY2UubW0KLS0tIEphdmFTY3JpcHRDb3JlL2JpbmRpbmdzL29iamMvb2JqY19pbnN0YW5j
ZS5tbQk4IEF1ZyAyMDA1IDA0OjA3OjI2IC0wMDAwCTEuMTMKKysrIEphdmFTY3JpcHRDb3JlL2Jp
bmRpbmdzL29iamMvb2JqY19pbnN0YW5jZS5tbQkzIE9jdCAyMDA1IDA0OjIyOjQ0IC0wMDAwCkBA
IC0yMyw2ICsyMyw3IEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKICAqLwogI2ltcG9ydCA8Rm91bmRhdGlv
bi9Gb3VuZGF0aW9uLmg+CisjaW5jbHVkZSAiY29uZmlnLmgiCiAKICNpbXBvcnQgPEphdmFTY3Jp
cHRDb3JlL29iamNfaW5zdGFuY2UuaD4KICNpbXBvcnQgPEphdmFTY3JpcHRDb3JlL1dlYlNjcmlw
dE9iamVjdC5oPgpJbmRleDogSmF2YVNjcmlwdENvcmUvYmluZGluZ3Mvb2JqYy9vYmpjX3J1bnRp
bWUubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L0phdmFTY3JpcHRDb3JlL2JpbmRp
bmdzL29iamMvb2JqY19ydW50aW1lLm1tLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjIxCmRpZmYg
LXUgLXAgLXIxLjIxIEphdmFTY3JpcHRDb3JlL2JpbmRpbmdzL29iamMvb2JqY19ydW50aW1lLm1t
Ci0tLSBKYXZhU2NyaXB0Q29yZS9iaW5kaW5ncy9vYmpjL29iamNfcnVudGltZS5tbQkxNiBTZXAg
MjAwNSAyMjo0MjoyOSAtMDAwMAkxLjIxCisrKyBKYXZhU2NyaXB0Q29yZS9iaW5kaW5ncy9vYmpj
L29iamNfcnVudGltZS5tbQkzIE9jdCAyMDA1IDA0OjIyOjQ0IC0wMDAwCkBAIC0yMyw2ICsyMyw3
IEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLiAKICAqLwogI2luY2x1ZGUgPEZvdW5kYXRpb24vRm91bmRhdGlv
bi5oPgorI2luY2x1ZGUgImNvbmZpZy5oIgogCiAKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9p
bnRlcm5hbC5oPgpJbmRleDogSmF2YVNjcmlwdENvcmUvYmluZGluZ3Mvb2JqYy9vYmpjX3V0aWxp
dHkubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L0phdmFTY3JpcHRDb3JlL2JpbmRp
bmdzL29iamMvb2JqY191dGlsaXR5Lm1tLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjIwCmRpZmYg
LXUgLXAgLXIxLjIwIEphdmFTY3JpcHRDb3JlL2JpbmRpbmdzL29iamMvb2JqY191dGlsaXR5Lm1t
Ci0tLSBKYXZhU2NyaXB0Q29yZS9iaW5kaW5ncy9vYmpjL29iamNfdXRpbGl0eS5tbQkxNiBBdWcg
MjAwNSAwMDo0NzoyMyAtMDAwMAkxLjIwCisrKyBKYXZhU2NyaXB0Q29yZS9iaW5kaW5ncy9vYmpj
L29iamNfdXRpbGl0eS5tbQkzIE9jdCAyMDA1IDA0OjIyOjQ0IC0wMDAwCkBAIC0yNCw2ICsyNCw3
IEBACiAgKi8KIAogI2luY2x1ZGUgIm9iamNfdXRpbGl0eS5oIgorI2luY2x1ZGUgImNvbmZpZy5o
IgogCiAjaW5jbHVkZSA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+CiAKSW5kZXg6IEphdmFTY3Jp
cHRDb3JlL2tqcy9hcnJheV9vYmplY3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9v
dC9KYXZhU2NyaXB0Q29yZS9ranMvYXJyYXlfb2JqZWN0LmNwcCx2CnJldHJpZXZpbmcgcmV2aXNp
b24gMS41MQpkaWZmIC11IC1wIC1yMS41MSBKYXZhU2NyaXB0Q29yZS9ranMvYXJyYXlfb2JqZWN0
LmNwcAotLS0gSmF2YVNjcmlwdENvcmUva2pzL2FycmF5X29iamVjdC5jcHAJMTYgQXVnIDIwMDUg
MDA6NDc6MjQgLTAwMDAJMS41MQorKysgSmF2YVNjcmlwdENvcmUva2pzL2FycmF5X29iamVjdC5j
cHAJMyBPY3QgMjAwNSAwNDoyMjo0NCAtMDAwMApAQCAtMjEsNiArMjEsNyBAQAogICovCiAKICNp
bmNsdWRlICJhcnJheV9vYmplY3QuaCIKKyNpbmNsdWRlICJjb25maWcuaCIKIAogI2luY2x1ZGUg
ImVycm9yX29iamVjdC5oIgogI2luY2x1ZGUgImludGVybmFsLmgiCkBAIC00OSw3ICs1MCw3IEBA
IEFycmF5SW5zdGFuY2VJbXA6OkFycmF5SW5zdGFuY2VJbXAoT2JqZWMKICAgLCBsZW5ndGgoaW5p
dGlhbExlbmd0aCkKICAgLCBzdG9yYWdlTGVuZ3RoKGluaXRpYWxMZW5ndGggPCBzcGFyc2VBcnJh
eUN1dG9mZiA/IGluaXRpYWxMZW5ndGggOiAwKQogICAsIGNhcGFjaXR5KHN0b3JhZ2VMZW5ndGgp
Ci0gICwgc3RvcmFnZShjYXBhY2l0eSA/IChWYWx1ZUltcCAqKiljYWxsb2MoY2FwYWNpdHksIHNp
emVvZihWYWx1ZUltcCAqKSkgOiAwKQorICAsIHN0b3JhZ2UoY2FwYWNpdHkgPyAoVmFsdWVJbXAg
KiopZmFzdENhbGxvYyhjYXBhY2l0eSwgc2l6ZW9mKFZhbHVlSW1wICopKSA6IDApCiB7CiB9CiAK
QEAgLTU4LDcgKzU5LDcgQEAgQXJyYXlJbnN0YW5jZUltcDo6QXJyYXlJbnN0YW5jZUltcChPYmpl
YwogICAsIGxlbmd0aChsaXN0LnNpemUoKSkKICAgLCBzdG9yYWdlTGVuZ3RoKGxlbmd0aCkKICAg
LCBjYXBhY2l0eShzdG9yYWdlTGVuZ3RoKQotICAsIHN0b3JhZ2UoY2FwYWNpdHkgPyAoVmFsdWVJ
bXAgKiopbWFsbG9jKHNpemVvZihWYWx1ZUltcCAqKSAqIGNhcGFjaXR5KSA6IDApCisgICwgc3Rv
cmFnZShjYXBhY2l0eSA/IChWYWx1ZUltcCAqKilmYXN0TWFsbG9jKHNpemVvZihWYWx1ZUltcCAq
KSAqIGNhcGFjaXR5KSA6IDApCiB7CiAgIExpc3RJdGVyYXRvciBpdCA9IGxpc3QuYmVnaW4oKTsK
ICAgdW5zaWduZWQgbCA9IGxlbmd0aDsKQEAgLTY5LDcgKzcwLDcgQEAgQXJyYXlJbnN0YW5jZUlt
cDo6QXJyYXlJbnN0YW5jZUltcChPYmplYwogCiBBcnJheUluc3RhbmNlSW1wOjp+QXJyYXlJbnN0
YW5jZUltcCgpCiB7Ci0gIGZyZWUoc3RvcmFnZSk7CisgIGZhc3RGcmVlKHN0b3JhZ2UpOwogfQog
CiBWYWx1ZUltcCAqQXJyYXlJbnN0YW5jZUltcDo6bGVuZ3RoR2V0dGVyKEV4ZWNTdGF0ZSAqZXhl
YywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBjb25zdCBQcm9wZXJ0eVNsb3QmIHNs
b3QpCkBAIC0yMTUsNyArMjE2LDcgQEAgdm9pZCBBcnJheUluc3RhbmNlSW1wOjpyZXNpemVTdG9y
YWdlKHVucwogICAgICAgICAgIG5ld0NhcGFjaXR5ID0gc3BhcnNlQXJyYXlDdXRvZmY7CiAgICAg
ICAgIH0KICAgICAgIH0KLSAgICAgIHN0b3JhZ2UgPSAoVmFsdWVJbXAgKiopcmVhbGxvYyhzdG9y
YWdlLCBuZXdDYXBhY2l0eSAqIHNpemVvZiAoVmFsdWVJbXAgKikpOworICAgICAgc3RvcmFnZSA9
IChWYWx1ZUltcCAqKilmYXN0UmVhbGxvYyhzdG9yYWdlLCBuZXdDYXBhY2l0eSAqIHNpemVvZiAo
VmFsdWVJbXAgKikpOwogICAgICAgbWVtc2V0KHN0b3JhZ2UgKyBjYXBhY2l0eSwgMCwgc2l6ZW9m
KFZhbHVlSW1wICopICogKG5ld0NhcGFjaXR5IC0gY2FwYWNpdHkpKTsKICAgICAgIGNhcGFjaXR5
ID0gbmV3Q2FwYWNpdHk7CiAgICAgfQpJbmRleDogSmF2YVNjcmlwdENvcmUva2pzL2Jvb2xfb2Jq
ZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvSmF2YVNjcmlwdENvcmUva2pz
L2Jvb2xfb2JqZWN0LmNwcCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4xMwpkaWZmIC11IC1wIC1y
MS4xMyBKYXZhU2NyaXB0Q29yZS9ranMvYm9vbF9vYmplY3QuY3BwCi0tLSBKYXZhU2NyaXB0Q29y
ZS9ranMvYm9vbF9vYmplY3QuY3BwCTE2IEF1ZyAyMDA1IDAwOjQ3OjI0IC0wMDAwCTEuMTMKKysr
IEphdmFTY3JpcHRDb3JlL2tqcy9ib29sX29iamVjdC5jcHAJMyBPY3QgMjAwNSAwNDoyMjo0NCAt
MDAwMApAQCAtMjEsNiArMjEsNyBAQAogICovCiAKICNpbmNsdWRlICJ2YWx1ZS5oIgorI2luY2x1
ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIm9iamVjdC5oIgogI2luY2x1ZGUgInR5cGVzLmgiCiAj
aW5jbHVkZSAiaW50ZXJwcmV0ZXIuaCIKSW5kZXg6IEphdmFTY3JpcHRDb3JlL2tqcy9jb2xsZWN0
b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9KYXZhU2NyaXB0Q29yZS9ranMv
Y29sbGVjdG9yLmNwcCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS40NwpkaWZmIC11IC1wIC1yMS40
NyBKYXZhU2NyaXB0Q29yZS9ranMvY29sbGVjdG9yLmNwcAotLS0gSmF2YVNjcmlwdENvcmUva2pz
L2NvbGxlY3Rvci5jcHAJMjggU2VwIDIwMDUgMDI6MjU6NDkgLTAwMDAJMS40NworKysgSmF2YVNj
cmlwdENvcmUva2pzL2NvbGxlY3Rvci5jcHAJMyBPY3QgMjAwNSAwNDoyMjo0NCAtMDAwMApAQCAt
MjAsOCArMjAsMTAgQEAKICAqLwogCiAjaW5jbHVkZSAiY29sbGVjdG9yLmgiCisjaW5jbHVkZSAi
Y29uZmlnLmgiCiAKICNpbmNsdWRlIDxreG1sY29yZS9GYXN0TWFsbG9jLmg+CisjaW5jbHVkZSA8
a3htbGNvcmUvRmFzdE1hbGxvY0ludGVybmFsLmg+CiAjaW5jbHVkZSAiaW50ZXJuYWwuaCIKICNp
bmNsdWRlICJsaXN0LmgiCiAjaW5jbHVkZSAidmFsdWUuaCIKQEAgLTIyNCw2ICsyMjYsNyBAQCB2
b2lkIENvbGxlY3Rvcjo6cmVnaXN0ZXJUaHJlYWQoKQogCiAgIGlmICghcHRocmVhZF9nZXRzcGVj
aWZpYyhyZWdpc3RlcmVkVGhyZWFkS2V5KSkgewogICAgIHB0aHJlYWRfdCBwdGhyZWFkID0gcHRo
cmVhZF9zZWxmKCk7CisgICAgS1hNTENvcmU6OmZhc3RNYWxsb2NSZWdpc3RlclRocmVhZChwdGhy
ZWFkKTsKICAgICBDb2xsZWN0b3I6OlRocmVhZCAqdGhyZWFkID0gbmV3IENvbGxlY3Rvcjo6VGhy
ZWFkKHB0aHJlYWQsIHB0aHJlYWRfbWFjaF90aHJlYWRfbnAocHRocmVhZCkpOwogICAgIHRocmVh
ZC0+bmV4dCA9IHJlZ2lzdGVyZWRUaHJlYWRzOwogICAgIHJlZ2lzdGVyZWRUaHJlYWRzID0gdGhy
ZWFkOwpJbmRleDogSmF2YVNjcmlwdENvcmUva2pzL2NvbmZpZy5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZp
bGU6IC9jdnMvcm9vdC9KYXZhU2NyaXB0Q29yZS9ranMvY29uZmlnLmgsdgpyZXRyaWV2aW5nIHJl
dmlzaW9uIDEuOQpkaWZmIC11IC1wIC1yMS45IEphdmFTY3JpcHRDb3JlL2tqcy9jb25maWcuaAot
LS0gSmF2YVNjcmlwdENvcmUva2pzL2NvbmZpZy5oCTI3IFNlcCAyMDA1IDIyOjM2OjQ4IC0wMDAw
CTEuOQorKysgSmF2YVNjcmlwdENvcmUva2pzL2NvbmZpZy5oCTMgT2N0IDIwMDUgMDQ6MjI6NDQg
LTAwMDAKQEAgLTMyLDMgKzMyLDcgQEAKICN1bmRlZiBERUJVR19DT0xMRUNUT1IKIAogI2RlZmlu
ZSBLWENfQ0hBTkdFUyAxCisKKyNpZmRlZiBfX2NwbHVzcGx1cworI2luY2x1ZGUgPGt4bWxjb3Jl
L0Zhc3RNYWxsb2MuaD4KKyNlbmRpZgpJbmRleDogSmF2YVNjcmlwdENvcmUva2pzL2RlYnVnZ2Vy
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvSmF2YVNjcmlwdENvcmUva2pzL2Rl
YnVnZ2VyLmNwcCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS42CmRpZmYgLXUgLXAgLXIxLjYgSmF2
YVNjcmlwdENvcmUva2pzL2RlYnVnZ2VyLmNwcAotLS0gSmF2YVNjcmlwdENvcmUva2pzL2RlYnVn
Z2VyLmNwcAk4IEF1ZyAyMDA1IDA0OjA3OjI3IC0wMDAwCTEuNgorKysgSmF2YVNjcmlwdENvcmUv
a2pzL2RlYnVnZ2VyLmNwcAkzIE9jdCAyMDA1IDA0OjIyOjQ0IC0wMDAwCkBAIC0yMSw2ICsyMSw3
IEBACiAgKi8KIAogI2luY2x1ZGUgImRlYnVnZ2VyLmgiCisjaW5jbHVkZSAiY29uZmlnLmgiCiAj
aW5jbHVkZSAidmFsdWUuaCIKICNpbmNsdWRlICJvYmplY3QuaCIKICNpbmNsdWRlICJ0eXBlcy5o
IgpJbmRleDogSmF2YVNjcmlwdENvcmUva2pzL2Vycm9yX29iamVjdC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpS
Q1MgZmlsZTogL2N2cy9yb290L0phdmFTY3JpcHRDb3JlL2tqcy9lcnJvcl9vYmplY3QuY3BwLHYK
cmV0cmlldmluZyByZXZpc2lvbiAxLjE4CmRpZmYgLXUgLXAgLXIxLjE4IEphdmFTY3JpcHRDb3Jl
L2tqcy9lcnJvcl9vYmplY3QuY3BwCi0tLSBKYXZhU2NyaXB0Q29yZS9ranMvZXJyb3Jfb2JqZWN0
LmNwcAkxNCBBdWcgMjAwNSAxNjowNDoxOSAtMDAwMAkxLjE4CisrKyBKYXZhU2NyaXB0Q29yZS9r
anMvZXJyb3Jfb2JqZWN0LmNwcAkzIE9jdCAyMDA1IDA0OjIyOjQ0IC0wMDAwCkBAIC0yMSw2ICsy
MSw3IEBACiAgKi8KIAogI2luY2x1ZGUgInZhbHVlLmgiCisjaW5jbHVkZSAiY29uZmlnLmgiCiAj
aW5jbHVkZSAib2JqZWN0LmgiCiAjaW5jbHVkZSAidHlwZXMuaCIKICNpbmNsdWRlICJpbnRlcnBy
ZXRlci5oIgpJbmRleDogSmF2YVNjcmlwdENvcmUva2pzL2Z1bmN0aW9uLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvSmF2YVNjcmlwdENvcmUva2pzL2Z1bmN0aW9uLmNwcCx2CnJl
dHJpZXZpbmcgcmV2aXNpb24gMS41OQpkaWZmIC11IC1wIC1yMS41OSBKYXZhU2NyaXB0Q29yZS9r
anMvZnVuY3Rpb24uY3BwCi0tLSBKYXZhU2NyaXB0Q29yZS9ranMvZnVuY3Rpb24uY3BwCTI3IFNl
cCAyMDA1IDIyOjM2OjQ4IC0wMDAwCTEuNTkKKysrIEphdmFTY3JpcHRDb3JlL2tqcy9mdW5jdGlv
bi5jcHAJMyBPY3QgMjAwNSAwNDoyMjo0NCAtMDAwMApAQCAtMjMsNiArMjMsNyBAQAogICovCiAK
ICNpbmNsdWRlICJmdW5jdGlvbi5oIgorI2luY2x1ZGUgImNvbmZpZy5oIgogCiAjaW5jbHVkZSAi
aW50ZXJuYWwuaCIKICNpbmNsdWRlICJmdW5jdGlvbl9vYmplY3QuaCIKSW5kZXg6IEphdmFTY3Jp
cHRDb3JlL2tqcy9mdW5jdGlvbl9vYmplY3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMv
cm9vdC9KYXZhU2NyaXB0Q29yZS9ranMvZnVuY3Rpb25fb2JqZWN0LmNwcCx2CnJldHJpZXZpbmcg
cmV2aXNpb24gMS4zMgpkaWZmIC11IC1wIC1yMS4zMiBKYXZhU2NyaXB0Q29yZS9ranMvZnVuY3Rp
b25fb2JqZWN0LmNwcAotLS0gSmF2YVNjcmlwdENvcmUva2pzL2Z1bmN0aW9uX29iamVjdC5jcHAJ
MjcgU2VwIDIwMDUgMjI6MzY6NDkgLTAwMDAJMS4zMgorKysgSmF2YVNjcmlwdENvcmUva2pzL2Z1
bmN0aW9uX29iamVjdC5jcHAJMyBPY3QgMjAwNSAwNDoyMjo0NSAtMDAwMApAQCAtMjEsNiArMjEs
NyBAQAogICovCiAKICNpbmNsdWRlICJmdW5jdGlvbl9vYmplY3QuaCIKKyNpbmNsdWRlICJjb25m
aWcuaCIKICNpbmNsdWRlICJpbnRlcm5hbC5oIgogI2luY2x1ZGUgImZ1bmN0aW9uLmgiCiAjaW5j
bHVkZSAiYXJyYXlfb2JqZWN0LmgiCkluZGV4OiBKYXZhU2NyaXB0Q29yZS9ranMvaWRlbnRpZmll
ci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L0phdmFTY3JpcHRDb3JlL2tqcy9p
ZGVudGlmaWVyLmNwcCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4yMApkaWZmIC11IC1wIC1yMS4y
MCBKYXZhU2NyaXB0Q29yZS9ranMvaWRlbnRpZmllci5jcHAKLS0tIEphdmFTY3JpcHRDb3JlL2tq
cy9pZGVudGlmaWVyLmNwcAkyNyBTZXAgMjAwNSAyMjozNjo0OSAtMDAwMAkxLjIwCisrKyBKYXZh
U2NyaXB0Q29yZS9ranMvaWRlbnRpZmllci5jcHAJMyBPY3QgMjAwNSAwNDoyMjo0NSAtMDAwMApA
QCAtMzQsNiArMzQsNyBAQAogI2VuZGlmCiAKICNpbmNsdWRlICJpZGVudGlmaWVyLmgiCisjaW5j
bHVkZSAiY29uZmlnLmgiCiAKICNpbmNsdWRlIDxreG1sY29yZS9GYXN0TWFsbG9jLmg+CiAjaW5j
bHVkZSA8c3RyaW5nLmg+IC8vIGZvciBzdHJsZW4KQEAgLTI4NywxMyArMjg4LDEzIEBAIHZvaWQg
SWRlbnRpZmllcjo6cmVoYXNoKGludCBuZXdUYWJsZVNpemUKIAogICAgIF90YWJsZVNpemUgPSBu
ZXdUYWJsZVNpemU7CiAgICAgX3RhYmxlU2l6ZU1hc2sgPSBuZXdUYWJsZVNpemUgLSAxOwotICAg
IF90YWJsZSA9IChVU3RyaW5nOjpSZXAgKiopY2FsbG9jKG5ld1RhYmxlU2l6ZSwgc2l6ZW9mKFVT
dHJpbmc6OlJlcCAqKSk7CisgICAgX3RhYmxlID0gKFVTdHJpbmc6OlJlcCAqKilmYXN0Q2FsbG9j
KG5ld1RhYmxlU2l6ZSwgc2l6ZW9mKFVTdHJpbmc6OlJlcCAqKSk7CiAKICAgICBmb3IgKGludCBp
ID0gMDsgaSAhPSBvbGRUYWJsZVNpemU7ICsraSkKICAgICAgICAgaWYgKFVTdHJpbmc6OlJlcCAq
a2V5ID0gb2xkVGFibGVbaV0pCiAgICAgICAgICAgICBpbnNlcnQoa2V5KTsKIAotICAgIGZyZWUo
b2xkVGFibGUpOworICAgIGZhc3RGcmVlKG9sZFRhYmxlKTsKIH0KIAogLy8gR2xvYmFsIGNvbnN0
YW50cyBmb3IgcHJvcGVydHkgbmFtZSBzdHJpbmdzLgpJbmRleDogSmF2YVNjcmlwdENvcmUva2pz
L2ludGVybmFsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvSmF2YVNjcmlwdENv
cmUva2pzL2ludGVybmFsLmNwcCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS43NApkaWZmIC11IC1w
IC1yMS43NCBKYXZhU2NyaXB0Q29yZS9ranMvaW50ZXJuYWwuY3BwCi0tLSBKYXZhU2NyaXB0Q29y
ZS9ranMvaW50ZXJuYWwuY3BwCTI4IFNlcCAyMDA1IDIyOjAxOjE2IC0wMDAwCTEuNzQKKysrIEph
dmFTY3JpcHRDb3JlL2tqcy9pbnRlcm5hbC5jcHAJMyBPY3QgMjAwNSAwNDoyMjo0NSAtMDAwMApA
QCAtMjIsNiArMjIsNyBAQAogICovCiAKICNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgImNv
bmZpZy5oIgogI2luY2x1ZGUgPG1hdGguaD4KICNpbmNsdWRlIDxhc3NlcnQuaD4KIApAQCAtMzY3
LDcgKzM2OCw3IEBAIHZvaWQgUGFyc2VyOjpzYXZlTmV3Tm9kZShOb2RlICpub2RlKQogewogICBp
ZiAobnVtTmV3Tm9kZXMgPT0gbmV3Tm9kZXNDYXBhY2l0eSkgewogICAgIG5ld05vZGVzQ2FwYWNp
dHkgPSAobmV3Tm9kZXNDYXBhY2l0eSA9PSAwKSA/IGluaXRpYWxDYXBhY2l0eSA6IG5ld05vZGVz
Q2FwYWNpdHkgKiBncm93dGhGYWN0b3I7Ci0gICAgbmV3Tm9kZXMgPSAoTm9kZSAqKilyZWFsbG9j
KG5ld05vZGVzLCBzaXplb2YoTm9kZSAqKSAqIG5ld05vZGVzQ2FwYWNpdHkpOworICAgIG5ld05v
ZGVzID0gKE5vZGUgKiopZmFzdFJlYWxsb2MobmV3Tm9kZXMsIHNpemVvZihOb2RlICopICogbmV3
Tm9kZXNDYXBhY2l0eSk7CiAgIH0KIAogICBuZXdOb2Rlc1tudW1OZXdOb2RlcysrXSA9IG5vZGU7
CkBAIC0zNzksNyArMzgwLDcgQEAgc3RhdGljIHZvaWQgY2xlYXJOZXdOb2RlcygpCiAgICAgaWYg
KG5ld05vZGVzW2ldLT5yZWZjb3VudCgpID09IDApCiAgICAgICBkZWxldGUgbmV3Tm9kZXNbaV07
CiAgIH0KLSAgZGVsZXRlIG5ld05vZGVzOworICBmYXN0RnJlZShuZXdOb2Rlcyk7CiAgIG5ld05v
ZGVzID0gMDsKICAgbnVtTmV3Tm9kZXMgPSAwOwogICBuZXdOb2Rlc0NhcGFjaXR5ID0gMDsKSW5k
ZXg6IEphdmFTY3JpcHRDb3JlL2tqcy9pbnRlcnByZXRlci5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmls
ZTogL2N2cy9yb290L0phdmFTY3JpcHRDb3JlL2tqcy9pbnRlcnByZXRlci5jcHAsdgpyZXRyaWV2
aW5nIHJldmlzaW9uIDEuMzAKZGlmZiAtdSAtcCAtcjEuMzAgSmF2YVNjcmlwdENvcmUva2pzL2lu
dGVycHJldGVyLmNwcAotLS0gSmF2YVNjcmlwdENvcmUva2pzL2ludGVycHJldGVyLmNwcAkxOSBT
ZXAgMjAwNSAwNjo1NzoyNyAtMDAwMAkxLjMwCisrKyBKYXZhU2NyaXB0Q29yZS9ranMvaW50ZXJw
cmV0ZXIuY3BwCTMgT2N0IDIwMDUgMDQ6MjI6NDUgLTAwMDAKQEAgLTIzLDYgKzIzLDcgQEAKICAq
LwogCiAjaW5jbHVkZSAidmFsdWUuaCIKKyNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJv
YmplY3QuaCIKICNpbmNsdWRlICJ0eXBlcy5oIgogI2luY2x1ZGUgImludGVycHJldGVyLmgiCklu
ZGV4OiBKYXZhU2NyaXB0Q29yZS9ranMvbGV4ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9j
dnMvcm9vdC9KYXZhU2NyaXB0Q29yZS9ranMvbGV4ZXIuY3BwLHYKcmV0cmlldmluZyByZXZpc2lv
biAxLjIwCmRpZmYgLXUgLXAgLXIxLjIwIEphdmFTY3JpcHRDb3JlL2tqcy9sZXhlci5jcHAKLS0t
IEphdmFTY3JpcHRDb3JlL2tqcy9sZXhlci5jcHAJMjEgU2VwIDIwMDUgMDU6NTM6MDUgLTAwMDAJ
MS4yMAorKysgSmF2YVNjcmlwdENvcmUva2pzL2xleGVyLmNwcAkzIE9jdCAyMDA1IDA0OjIyOjQ1
IC0wMDAwCkBAIC04MzQsNyArODM0LDcgQEAgdm9pZCBMZXhlcjo6ZG9uZVBhcnNpbmcoKQogICBm
b3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbnVtSWRlbnRpZmllcnM7IGkrKykgewogICAgIGRlbGV0
ZSBpZGVudGlmaWVyc1tpXTsKICAgfQotICBmcmVlIChpZGVudGlmaWVycyk7CisgIGZhc3RGcmVl
KGlkZW50aWZpZXJzKTsKICAgaWRlbnRpZmllcnMgPSAwOwogICBudW1JZGVudGlmaWVycyA9IDA7
CiAgIGlkZW50aWZpZXJzQ2FwYWNpdHkgPSAwOwpAQCAtODQyLDcgKzg0Miw3IEBAIHZvaWQgTGV4
ZXI6OmRvbmVQYXJzaW5nKCkKICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG51bVN0cmluZ3M7
IGkrKykgewogICAgIGRlbGV0ZSBzdHJpbmdzW2ldOwogICB9Ci0gIGZyZWUgKHN0cmluZ3MpOwor
ICBmYXN0RnJlZShzdHJpbmdzKTsKICAgc3RyaW5ncyA9IDA7CiAgIG51bVN0cmluZ3MgPSAwOwog
ICBzdHJpbmdzQ2FwYWNpdHkgPSAwOwpAQCAtODU1LDcgKzg1NSw3IEBAIElkZW50aWZpZXIgKkxl
eGVyOjptYWtlSWRlbnRpZmllcihVQ2hhciAKIHsKICAgaWYgKG51bUlkZW50aWZpZXJzID09IGlk
ZW50aWZpZXJzQ2FwYWNpdHkpIHsKICAgICBpZGVudGlmaWVyc0NhcGFjaXR5ID0gKGlkZW50aWZp
ZXJzQ2FwYWNpdHkgPT0gMCkgPyBpbml0aWFsQ2FwYWNpdHkgOiBpZGVudGlmaWVyc0NhcGFjaXR5
ICpncm93dGhGYWN0b3I7Ci0gICAgaWRlbnRpZmllcnMgPSAoS0pTOjpJZGVudGlmaWVyICoqKXJl
YWxsb2MoaWRlbnRpZmllcnMsIHNpemVvZihLSlM6OklkZW50aWZpZXIgKikgKiBpZGVudGlmaWVy
c0NhcGFjaXR5KTsKKyAgICBpZGVudGlmaWVycyA9IChLSlM6OklkZW50aWZpZXIgKiopZmFzdFJl
YWxsb2MoaWRlbnRpZmllcnMsIHNpemVvZihLSlM6OklkZW50aWZpZXIgKikgKiBpZGVudGlmaWVy
c0NhcGFjaXR5KTsKICAgfQogCiAgIEtKUzo6SWRlbnRpZmllciAqaWRlbnRpZmllciA9IG5ldyBL
SlM6OklkZW50aWZpZXIoYnVmZmVyMTYsIHBvczE2KTsKQEAgLTg2Nyw3ICs4NjcsNyBAQCBVU3Ry
aW5nICpMZXhlcjo6bWFrZVVTdHJpbmcoVUNoYXIgKmJ1ZmZlCiB7CiAgIGlmIChudW1TdHJpbmdz
ID09IHN0cmluZ3NDYXBhY2l0eSkgewogICAgIHN0cmluZ3NDYXBhY2l0eSA9IChzdHJpbmdzQ2Fw
YWNpdHkgPT0gMCkgPyBpbml0aWFsQ2FwYWNpdHkgOiBzdHJpbmdzQ2FwYWNpdHkgKmdyb3d0aEZh
Y3RvcjsKLSAgICBzdHJpbmdzID0gKFVTdHJpbmcgKiopcmVhbGxvYyhzdHJpbmdzLCBzaXplb2Yo
VVN0cmluZyAqKSAqIHN0cmluZ3NDYXBhY2l0eSk7CisgICAgc3RyaW5ncyA9IChVU3RyaW5nICoq
KWZhc3RSZWFsbG9jKHN0cmluZ3MsIHNpemVvZihVU3RyaW5nICopICogc3RyaW5nc0NhcGFjaXR5
KTsKICAgfQogCiAgIFVTdHJpbmcgKnN0cmluZyA9IG5ldyBVU3RyaW5nKGJ1ZmZlcjE2LCBwb3Mx
Nik7CkluZGV4OiBKYXZhU2NyaXB0Q29yZS9ranMvbGlzdC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmls
ZTogL2N2cy9yb290L0phdmFTY3JpcHRDb3JlL2tqcy9saXN0LmNwcCx2CnJldHJpZXZpbmcgcmV2
aXNpb24gMS4xNgpkaWZmIC11IC1wIC1yMS4xNiBKYXZhU2NyaXB0Q29yZS9ranMvbGlzdC5jcHAK
LS0tIEphdmFTY3JpcHRDb3JlL2tqcy9saXN0LmNwcAk0IFNlcCAyMDA1IDAxOjE4OjEyIC0wMDAw
CTEuMTYKKysrIEphdmFTY3JpcHRDb3JlL2tqcy9saXN0LmNwcAkzIE9jdCAyMDA1IDA0OjIyOjQ1
IC0wMDAwCkBAIC0yMCw2ICsyMCw3IEBACiAgKi8KIAogI2luY2x1ZGUgImxpc3QuaCIKKyNpbmNs
dWRlICJjb25maWcuaCIKIAogI2luY2x1ZGUgImludGVybmFsLmgiCiAjaW5jbHVkZSA8YWxnb3Jp
dGhtPgpJbmRleDogSmF2YVNjcmlwdENvcmUva2pzL21hdGhfb2JqZWN0LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvSmF2YVNjcmlwdENvcmUva2pzL21hdGhfb2JqZWN0LmNwcCx2
CnJldHJpZXZpbmcgcmV2aXNpb24gMS4xOApkaWZmIC11IC1wIC1yMS4xOCBKYXZhU2NyaXB0Q29y
ZS9ranMvbWF0aF9vYmplY3QuY3BwCi0tLSBKYXZhU2NyaXB0Q29yZS9ranMvbWF0aF9vYmplY3Qu
Y3BwCTQgU2VwIDIwMDUgMDE6MTg6MTIgLTAwMDAJMS4xOAorKysgSmF2YVNjcmlwdENvcmUva2pz
L21hdGhfb2JqZWN0LmNwcAkzIE9jdCAyMDA1IDA0OjIyOjQ1IC0wMDAwCkBAIC0yMCw2ICsyMCw3
IEBACiAgKi8KIAogI2luY2x1ZGUgPG1hdGguaD4KKyNpbmNsdWRlICJjb25maWcuaCIKICNpbmNs
dWRlIDxzdGRsaWIuaD4KICNpbmNsdWRlIDxhc3NlcnQuaD4KIApJbmRleDogSmF2YVNjcmlwdENv
cmUva2pzL25vZGVzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvSmF2YVNjcmlw
dENvcmUva2pzL25vZGVzLmNwcCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS44NApkaWZmIC11IC1w
IC1yMS44NCBKYXZhU2NyaXB0Q29yZS9ranMvbm9kZXMuY3BwCi0tLSBKYXZhU2NyaXB0Q29yZS9r
anMvbm9kZXMuY3BwCTI4IFNlcCAyMDA1IDE4OjUxOjE0IC0wMDAwCTEuODQKKysrIEphdmFTY3Jp
cHRDb3JlL2tqcy9ub2Rlcy5jcHAJMyBPY3QgMjAwNSAwNDoyMjo0NSAtMDAwMApAQCAtMjIsNiAr
MjIsNyBAQAogICovCiAKICNpbmNsdWRlICJub2Rlcy5oIgorI2luY2x1ZGUgImNvbmZpZy5oIgog
CiAjaW5jbHVkZSA8bWF0aC5oPgogI2luY2x1ZGUgPGFzc2VydC5oPgpJbmRleDogSmF2YVNjcmlw
dENvcmUva2pzL25vZGVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L0phdmFTY3Jp
cHRDb3JlL2tqcy9ub2Rlcy5oLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjM3CmRpZmYgLXUgLXAg
LXIxLjM3IEphdmFTY3JpcHRDb3JlL2tqcy9ub2Rlcy5oCi0tLSBKYXZhU2NyaXB0Q29yZS9ranMv
bm9kZXMuaAkyOCBTZXAgMjAwNSAxODo1MToxNCAtMDAwMAkxLjM3CisrKyBKYXZhU2NyaXB0Q29y
ZS9ranMvbm9kZXMuaAkzIE9jdCAyMDA1IDA0OjIyOjQ1IC0wMDAwCkBAIC0yNSw3ICsyNSw2IEBA
CiAjaWZuZGVmIF9OT0RFU19IXwogI2RlZmluZSBfTk9ERVNfSF8KIAotI2luY2x1ZGUgPGt4bWxj
b3JlL0Zhc3RNYWxsb2MuaD4KICNpbmNsdWRlIDxreG1sY29yZS9TaGFyZWRQdHIuaD4KIAogI2lu
Y2x1ZGUgImludGVybmFsLmgiCkBAIC03MSw3ICs3MCw3IEBAIG5hbWVzcGFjZSBLSlMgewogCQkg
IE9wSW5zdGFuY2VPZgogICB9OwogCi0gIGNsYXNzIE5vZGUgOiBwdWJsaWMgRmFzdEFsbG9jYXRl
ZCB7CisgIGNsYXNzIE5vZGUgewogICBwdWJsaWM6CiAgICAgTm9kZSgpOwogICAgIHZpcnR1YWwg
fk5vZGUoKTsKSW5kZXg6IEphdmFTY3JpcHRDb3JlL2tqcy9ub2RlczJzdHJpbmcuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9KYXZhU2NyaXB0Q29yZS9ranMvbm9kZXMyc3RyaW5n
LmNwcCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4xOQpkaWZmIC11IC1wIC1yMS4xOSBKYXZhU2Ny
aXB0Q29yZS9ranMvbm9kZXMyc3RyaW5nLmNwcAotLS0gSmF2YVNjcmlwdENvcmUva2pzL25vZGVz
MnN0cmluZy5jcHAJMjggU2VwIDIwMDUgMTg6NTE6MTQgLTAwMDAJMS4xOQorKysgSmF2YVNjcmlw
dENvcmUva2pzL25vZGVzMnN0cmluZy5jcHAJMyBPY3QgMjAwNSAwNDoyMjo0NSAtMDAwMApAQCAt
MjEsNiArMjEsNyBAQAogICovCiAKICNpbmNsdWRlICJub2Rlcy5oIgorI2luY2x1ZGUgImNvbmZp
Zy5oIgogCiBuYW1lc3BhY2UgS0pTIHsKICAgLyoqCkluZGV4OiBKYXZhU2NyaXB0Q29yZS9ranMv
bnVtYmVyX29iamVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L0phdmFTY3Jp
cHRDb3JlL2tqcy9udW1iZXJfb2JqZWN0LmNwcCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4yMgpk
aWZmIC11IC1wIC1yMS4yMiBKYXZhU2NyaXB0Q29yZS9ranMvbnVtYmVyX29iamVjdC5jcHAKLS0t
IEphdmFTY3JpcHRDb3JlL2tqcy9udW1iZXJfb2JqZWN0LmNwcAk0IFNlcCAyMDA1IDAxOjE4OjEy
IC0wMDAwCTEuMjIKKysrIEphdmFTY3JpcHRDb3JlL2tqcy9udW1iZXJfb2JqZWN0LmNwcAkzIE9j
dCAyMDA1IDA0OjIyOjQ1IC0wMDAwCkBAIC0yMCw2ICsyMCw3IEBACiAgKi8KIAogI2luY2x1ZGUg
InZhbHVlLmgiCisjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAib2JqZWN0LmgiCiAjaW5j
bHVkZSAidHlwZXMuaCIKICNpbmNsdWRlICJpbnRlcnByZXRlci5oIgpAQCAtOTYsMTcgKzk3LDE3
IEBAIHN0YXRpYyBVU3RyaW5nIGludGVnZXJfcGFydF9ub2V4cChkb3VibGUKICAgICAgICAgY2hh
ciAqYnVmOwogICAgICAgICAKICAgICAgICAgaWYgKGxlbmd0aCA8PSBkZWNpbWFsUG9pbnQpIHsK
LSAgICAgICAgICAgIGJ1ZiA9IChjaGFyKiltYWxsb2MoZGVjaW1hbFBvaW50KzEpOworICAgICAg
ICAgICAgYnVmID0gKGNoYXIqKWZhc3RNYWxsb2MoZGVjaW1hbFBvaW50KzEpOwogICAgICAgICAg
ICAgc3RyY3B5KGJ1ZixyZXN1bHQpOwogICAgICAgICAgICAgbWVtc2V0KGJ1ZitsZW5ndGgsJzAn
LGRlY2ltYWxQb2ludC1sZW5ndGgpOwogICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgYnVm
ID0gKGNoYXIqKW1hbGxvYyhkZWNpbWFsUG9pbnQrMSk7CisgICAgICAgICAgICBidWYgPSAoY2hh
ciopZmFzdE1hbGxvYyhkZWNpbWFsUG9pbnQrMSk7CiAgICAgICAgICAgICBzdHJuY3B5KGJ1Zixy
ZXN1bHQsZGVjaW1hbFBvaW50KTsKICAgICAgICAgfQogICAgICAgICAKICAgICAgICAgYnVmW2Rl
Y2ltYWxQb2ludF0gPSAnXDAnOwogICAgICAgICBzdHIgKz0gVVN0cmluZyhidWYpOwotICAgICAg
ICBmcmVlKGJ1Zik7CisgICAgICAgIGZhc3RGcmVlKGJ1Zik7CiAgICAgfQogICAgIAogICAgIGtq
c19mcmVlZHRvYShyZXN1bHQpOwpAQCAtMTE2LDExICsxMTcsMTEgQEAgc3RhdGljIFVTdHJpbmcg
aW50ZWdlcl9wYXJ0X25vZXhwKGRvdWJsZQogCiBzdGF0aWMgVVN0cmluZyBjaGFyX3NlcXVlbmNl
KGNoYXIgYywgaW50IGNvdW50KQogewotICAgIGNoYXIgKmJ1ZiA9IChjaGFyKiltYWxsb2MoY291
bnQrMSk7CisgICAgY2hhciAqYnVmID0gKGNoYXIqKWZhc3RNYWxsb2MoY291bnQrMSk7CiAgICAg
bWVtc2V0KGJ1ZixjLGNvdW50KTsKICAgICBidWZbY291bnRdID0gJ1wwJzsKICAgICBVU3RyaW5n
IHMoYnVmKTsKLSAgICBmcmVlKGJ1Zik7CisgICAgZmFzdEZyZWUoYnVmKTsKICAgICByZXR1cm4g
czsKIH0KIApJbmRleDogSmF2YVNjcmlwdENvcmUva2pzL29iamVjdC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpS
Q1MgZmlsZTogL2N2cy9yb290L0phdmFTY3JpcHRDb3JlL2tqcy9vYmplY3QuY3BwLHYKcmV0cmll
dmluZyByZXZpc2lvbiAxLjUxCmRpZmYgLXUgLXAgLXIxLjUxIEphdmFTY3JpcHRDb3JlL2tqcy9v
YmplY3QuY3BwCi0tLSBKYXZhU2NyaXB0Q29yZS9ranMvb2JqZWN0LmNwcAkxNiBBdWcgMjAwNSAw
MDo0NzoyNiAtMDAwMAkxLjUxCisrKyBKYXZhU2NyaXB0Q29yZS9ranMvb2JqZWN0LmNwcAkzIE9j
dCAyMDA1IDA0OjIyOjQ1IC0wMDAwCkBAIC0yMyw2ICsyMyw3IEBACiAgKi8KIAogI2luY2x1ZGUg
InZhbHVlLmgiCisjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAib2JqZWN0LmgiCiAjaW5j
bHVkZSAidHlwZXMuaCIKICNpbmNsdWRlICJpbnRlcnByZXRlci5oIgpJbmRleDogSmF2YVNjcmlw
dENvcmUva2pzL29iamVjdF9vYmplY3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9v
dC9KYXZhU2NyaXB0Q29yZS9ranMvb2JqZWN0X29iamVjdC5jcHAsdgpyZXRyaWV2aW5nIHJldmlz
aW9uIDEuMTQKZGlmZiAtdSAtcCAtcjEuMTQgSmF2YVNjcmlwdENvcmUva2pzL29iamVjdF9vYmpl
Y3QuY3BwCi0tLSBKYXZhU2NyaXB0Q29yZS9ranMvb2JqZWN0X29iamVjdC5jcHAJMTYgQXVnIDIw
MDUgMDA6NDc6MjYgLTAwMDAJMS4xNAorKysgSmF2YVNjcmlwdENvcmUva2pzL29iamVjdF9vYmpl
Y3QuY3BwCTMgT2N0IDIwMDUgMDQ6MjI6NDUgLTAwMDAKQEAgLTIwLDYgKzIwLDcgQEAKICAqLwog
CiAjaW5jbHVkZSAidmFsdWUuaCIKKyNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJvYmpl
Y3QuaCIKICNpbmNsdWRlICJ0eXBlcy5oIgogI2luY2x1ZGUgImludGVycHJldGVyLmgiCkluZGV4
OiBKYXZhU2NyaXB0Q29yZS9ranMvcHJvcGVydHlfbWFwLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxl
OiAvY3ZzL3Jvb3QvSmF2YVNjcmlwdENvcmUva2pzL3Byb3BlcnR5X21hcC5jcHAsdgpyZXRyaWV2
aW5nIHJldmlzaW9uIDEuNDkKZGlmZiAtdSAtcCAtcjEuNDkgSmF2YVNjcmlwdENvcmUva2pzL3By
b3BlcnR5X21hcC5jcHAKLS0tIEphdmFTY3JpcHRDb3JlL2tqcy9wcm9wZXJ0eV9tYXAuY3BwCTI3
IFNlcCAyMDA1IDIyOjM2OjUwIC0wMDAwCTEuNDkKKysrIEphdmFTY3JpcHRDb3JlL2tqcy9wcm9w
ZXJ0eV9tYXAuY3BwCTMgT2N0IDIwMDUgMDQ6MjI6NDUgLTAwMDAKQEAgLTIwLDYgKzIwLDcgQEAK
ICAqLwogCiAjaW5jbHVkZSAicHJvcGVydHlfbWFwLmgiCisjaW5jbHVkZSAiY29uZmlnLmgiCiAK
ICNpbmNsdWRlIDxreG1sY29yZS9GYXN0TWFsbG9jLmg+CiAjaW5jbHVkZSAib2JqZWN0LmgiCklu
ZGV4OiBKYXZhU2NyaXB0Q29yZS9ranMvcHJvcGVydHlfc2xvdC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1Mg
ZmlsZTogL2N2cy9yb290L0phdmFTY3JpcHRDb3JlL2tqcy9wcm9wZXJ0eV9zbG90LmNwcCx2CnJl
dHJpZXZpbmcgcmV2aXNpb24gMS4yCmRpZmYgLXUgLXAgLXIxLjIgSmF2YVNjcmlwdENvcmUva2pz
L3Byb3BlcnR5X3Nsb3QuY3BwCi0tLSBKYXZhU2NyaXB0Q29yZS9ranMvcHJvcGVydHlfc2xvdC5j
cHAJOCBBdWcgMjAwNSAwNDowNzoyOSAtMDAwMAkxLjIKKysrIEphdmFTY3JpcHRDb3JlL2tqcy9w
cm9wZXJ0eV9zbG90LmNwcAkzIE9jdCAyMDA1IDA0OjIyOjQ1IC0wMDAwCkBAIC0yMiw2ICsyMiw3
IEBACiAKIAogI2luY2x1ZGUgInByb3BlcnR5X3Nsb3QuaCIKKyNpbmNsdWRlICJjb25maWcuaCIK
IAogbmFtZXNwYWNlIEtKUyB7CiAKSW5kZXg6IEphdmFTY3JpcHRDb3JlL2tqcy9wcm90ZWN0ZWRf
dmFsdWVzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvSmF2YVNjcmlwdENvcmUv
a2pzL3Byb3RlY3RlZF92YWx1ZXMuY3BwLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjYKZGlmZiAt
dSAtcCAtcjEuNiBKYXZhU2NyaXB0Q29yZS9ranMvcHJvdGVjdGVkX3ZhbHVlcy5jcHAKLS0tIEph
dmFTY3JpcHRDb3JlL2tqcy9wcm90ZWN0ZWRfdmFsdWVzLmNwcAkxOSBTZXAgMjAwNSAwNjo1Nzoy
OCAtMDAwMAkxLjYKKysrIEphdmFTY3JpcHRDb3JlL2tqcy9wcm90ZWN0ZWRfdmFsdWVzLmNwcAkz
IE9jdCAyMDA1IDA0OjIyOjQ1IC0wMDAwCkBAIC0yMSw2ICsyMSw3IEBACiAgKi8KIAogI2luY2x1
ZGUgInByb3RlY3RlZF92YWx1ZXMuaCIKKyNpbmNsdWRlICJjb25maWcuaCIKIAogI2luY2x1ZGUg
InBvaW50ZXJfaGFzaC5oIgogI2luY2x1ZGUgInNpbXBsZV9udW1iZXIuaCIKQEAgLTE4NCwxMyAr
MTg1LDEzIEBAIHZvaWQgUHJvdGVjdGVkVmFsdWVzOjpyZWhhc2goaW50IG5ld1RhYmwKIAogICAg
IF90YWJsZVNpemUgPSBuZXdUYWJsZVNpemU7CiAgICAgX3RhYmxlU2l6ZU1hc2sgPSBuZXdUYWJs
ZVNpemUgLSAxOwotICAgIF90YWJsZSA9IChLZXlWYWx1ZSAqKWNhbGxvYyhuZXdUYWJsZVNpemUs
IHNpemVvZihLZXlWYWx1ZSkpOworICAgIF90YWJsZSA9IChLZXlWYWx1ZSAqKWZhc3RDYWxsb2Mo
bmV3VGFibGVTaXplLCBzaXplb2YoS2V5VmFsdWUpKTsKIAogICAgIGZvciAoaW50IGkgPSAwOyBp
ICE9IG9sZFRhYmxlU2l6ZTsgKytpKQogICAgICAgICBpZiAob2xkVGFibGVbaV0ua2V5KQogICAg
ICAgICAgICAgaW5zZXJ0KG9sZFRhYmxlW2ldLmtleSwgb2xkVGFibGVbaV0udmFsdWUpOwogCi0g
ICAgZnJlZShvbGRUYWJsZSk7CisgICAgZmFzdEZyZWUob2xkVGFibGUpOwogfQogCiB9IC8vIG5h
bWVzcGFjZQpJbmRleDogSmF2YVNjcmlwdENvcmUva2pzL3JlZmVyZW5jZS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQpSQ1MgZmlsZTogL2N2cy9yb290L0phdmFTY3JpcHRDb3JlL2tqcy9yZWZlcmVuY2UuY3BwLHYK
cmV0cmlldmluZyByZXZpc2lvbiAxLjE1CmRpZmYgLXUgLXAgLXIxLjE1IEphdmFTY3JpcHRDb3Jl
L2tqcy9yZWZlcmVuY2UuY3BwCi0tLSBKYXZhU2NyaXB0Q29yZS9ranMvcmVmZXJlbmNlLmNwcAky
NCBTZXAgMjAwNSAyMjozNDoxNCAtMDAwMAkxLjE1CisrKyBKYXZhU2NyaXB0Q29yZS9ranMvcmVm
ZXJlbmNlLmNwcAkzIE9jdCAyMDA1IDA0OjIyOjQ1IC0wMDAwCkBAIC0yMSw2ICsyMSw4IEBACiAg
Ki8KIAogI2luY2x1ZGUgInJlZmVyZW5jZS5oIgorI2luY2x1ZGUgImNvbmZpZy5oIgorCiAjaW5j
bHVkZSAiaW50ZXJuYWwuaCIKIAogbmFtZXNwYWNlIEtKUyB7CkluZGV4OiBKYXZhU2NyaXB0Q29y
ZS9ranMvcmVmZXJlbmNlX2xpc3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9K
YXZhU2NyaXB0Q29yZS9ranMvcmVmZXJlbmNlX2xpc3QuY3BwLHYKcmV0cmlldmluZyByZXZpc2lv
biAxLjgKZGlmZiAtdSAtcCAtcjEuOCBKYXZhU2NyaXB0Q29yZS9ranMvcmVmZXJlbmNlX2xpc3Qu
Y3BwCi0tLSBKYXZhU2NyaXB0Q29yZS9ranMvcmVmZXJlbmNlX2xpc3QuY3BwCTE5IFNlcCAyMDA1
IDA2OjU3OjI4IC0wMDAwCTEuOAorKysgSmF2YVNjcmlwdENvcmUva2pzL3JlZmVyZW5jZV9saXN0
LmNwcAkzIE9jdCAyMDA1IDA0OjIyOjQ1IC0wMDAwCkBAIC0yMSw2ICsyMSw4IEBACiAgKi8KIAog
I2luY2x1ZGUgInJlZmVyZW5jZV9saXN0LmgiCisjaW5jbHVkZSAiY29uZmlnLmgiCisKICNpbmNs
dWRlICJwcm90ZWN0ZWRfcmVmZXJlbmNlLmgiCiAKIG5hbWVzcGFjZSBLSlMgewpJbmRleDogSmF2
YVNjcmlwdENvcmUva2pzL3JlZ2V4cC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290
L0phdmFTY3JpcHRDb3JlL2tqcy9yZWdleHAuY3BwLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjEy
CmRpZmYgLXUgLXAgLXIxLjEyIEphdmFTY3JpcHRDb3JlL2tqcy9yZWdleHAuY3BwCi0tLSBKYXZh
U2NyaXB0Q29yZS9ranMvcmVnZXhwLmNwcAk0IFNlcCAyMDA1IDAxOjE4OjEyIC0wMDAwCTEuMTIK
KysrIEphdmFTY3JpcHRDb3JlL2tqcy9yZWdleHAuY3BwCTMgT2N0IDIwMDUgMDQ6MjI6NDUgLTAw
MDAKQEAgLTIwLDYgKzIwLDcgQEAKICAqLwogCiAjaW5jbHVkZSAicmVnZXhwLmgiCisjaW5jbHVk
ZSAiY29uZmlnLmgiCiAKICNpbmNsdWRlIDxhc3NlcnQuaD4KICNpbmNsdWRlIDxzdGRpby5oPgpJ
bmRleDogSmF2YVNjcmlwdENvcmUva2pzL3JlZ2V4cF9vYmplY3QuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNT
IGZpbGU6IC9jdnMvcm9vdC9KYXZhU2NyaXB0Q29yZS9ranMvcmVnZXhwX29iamVjdC5jcHAsdgpy
ZXRyaWV2aW5nIHJldmlzaW9uIDEuMjQKZGlmZiAtdSAtcCAtcjEuMjQgSmF2YVNjcmlwdENvcmUv
a2pzL3JlZ2V4cF9vYmplY3QuY3BwCi0tLSBKYXZhU2NyaXB0Q29yZS9ranMvcmVnZXhwX29iamVj
dC5jcHAJMTYgU2VwIDIwMDUgMjI6NDI6MzAgLTAwMDAJMS4yNAorKysgSmF2YVNjcmlwdENvcmUv
a2pzL3JlZ2V4cF9vYmplY3QuY3BwCTMgT2N0IDIwMDUgMDQ6MjI6NDUgLTAwMDAKQEAgLTIwLDgg
KzIwLDEwIEBACiAgKgogICovCiAKLSNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgInJlZ2V4
cF9vYmplY3QuaCIKKyNpbmNsdWRlICJjb25maWcuaCIKIAorI2luY2x1ZGUgPHN0ZGlvLmg+CiAj
aW5jbHVkZSAidmFsdWUuaCIKICNpbmNsdWRlICJvYmplY3QuaCIKICNpbmNsdWRlICJ0eXBlcy5o
IgpAQCAtMjksNyArMzEsNiBAQAogI2luY2x1ZGUgIm9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJp
bnRlcm5hbC5oIgogI2luY2x1ZGUgInJlZ2V4cC5oIgotI2luY2x1ZGUgInJlZ2V4cF9vYmplY3Qu
aCIKICNpbmNsdWRlICJlcnJvcl9vYmplY3QuaCIKIAogdXNpbmcgbmFtZXNwYWNlIEtKUzsKSW5k
ZXg6IEphdmFTY3JpcHRDb3JlL2tqcy9zY29wZV9jaGFpbi5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmls
ZTogL2N2cy9yb290L0phdmFTY3JpcHRDb3JlL2tqcy9zY29wZV9jaGFpbi5jcHAsdgpyZXRyaWV2
aW5nIHJldmlzaW9uIDEuMTEKZGlmZiAtdSAtcCAtcjEuMTEgSmF2YVNjcmlwdENvcmUva2pzL3Nj
b3BlX2NoYWluLmNwcAotLS0gSmF2YVNjcmlwdENvcmUva2pzL3Njb3BlX2NoYWluLmNwcAkxNCBK
dWwgMjAwNSAxODoyNzowMyAtMDAwMAkxLjExCisrKyBKYXZhU2NyaXB0Q29yZS9ranMvc2NvcGVf
Y2hhaW4uY3BwCTMgT2N0IDIwMDUgMDQ6MjI6NDUgLTAwMDAKQEAgLTIwLDYgKzIwLDcgQEAKICAq
LwogCiAjaW5jbHVkZSAic2NvcGVfY2hhaW4uaCIKKyNpbmNsdWRlICJjb25maWcuaCIKIAogI2lu
Y2x1ZGUgIm9iamVjdC5oIgogCkluZGV4OiBKYXZhU2NyaXB0Q29yZS9ranMvc2NvcGVfY2hhaW4u
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvSmF2YVNjcmlwdENvcmUva2pzL3Njb3Bl
X2NoYWluLmgsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMTEKZGlmZiAtdSAtcCAtcjEuMTEgSmF2
YVNjcmlwdENvcmUva2pzL3Njb3BlX2NoYWluLmgKLS0tIEphdmFTY3JpcHRDb3JlL2tqcy9zY29w
ZV9jaGFpbi5oCTI3IFNlcCAyMDA1IDIyOjM2OjUwIC0wMDAwCTEuMTEKKysrIEphdmFTY3JpcHRD
b3JlL2tqcy9zY29wZV9jaGFpbi5oCTMgT2N0IDIwMDUgMDQ6MjI6NDUgLTAwMDAKQEAgLTIyLDEz
ICsyMiwxMSBAQAogI2lmbmRlZiBLSlNfU0NPUEVfQ0hBSU5fSAogI2RlZmluZSBLSlNfU0NPUEVf
Q0hBSU5fSAogCi0jaW5jbHVkZSA8a3htbGNvcmUvRmFzdE1hbGxvYy5oPgotCiBuYW1lc3BhY2Ug
S0pTIHsKIAogICAgIGNsYXNzIE9iamVjdEltcDsKICAgICAKLSAgICBjbGFzcyBTY29wZUNoYWlu
Tm9kZSA6IHB1YmxpYyBGYXN0QWxsb2NhdGVkIHsKKyAgICBjbGFzcyBTY29wZUNoYWluTm9kZSB7
CiAgICAgcHVibGljOgogICAgICAgICBTY29wZUNoYWluTm9kZShTY29wZUNoYWluTm9kZSAqbiwg
T2JqZWN0SW1wICpvKQogICAgICAgICAgICAgOiBuZXh0KG4pLCBvYmplY3QobyksIHJlZkNvdW50
KDEpIHsgfQpJbmRleDogSmF2YVNjcmlwdENvcmUva2pzL3N0cmluZ19vYmplY3QuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9KYXZhU2NyaXB0Q29yZS9ranMvc3RyaW5nX29iamVj
dC5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNDYKZGlmZiAtdSAtcCAtcjEuNDYgSmF2YVNj
cmlwdENvcmUva2pzL3N0cmluZ19vYmplY3QuY3BwCi0tLSBKYXZhU2NyaXB0Q29yZS9ranMvc3Ry
aW5nX29iamVjdC5jcHAJMjcgU2VwIDIwMDUgMjI6MzY6NTAgLTAwMDAJMS40NgorKysgSmF2YVNj
cmlwdENvcmUva2pzL3N0cmluZ19vYmplY3QuY3BwCTMgT2N0IDIwMDUgMDQ6MjI6NDUgLTAwMDAK
QEAgLTIwLDYgKzIwLDkgQEAKICAqCiAgKi8KIAorI2luY2x1ZGUgInN0cmluZ19vYmplY3QuaCIK
KyNpbmNsdWRlICJjb25maWcuaCIKKwogI2luY2x1ZGUgInZhbHVlLmgiCiAjaW5jbHVkZSAib2Jq
ZWN0LmgiCiAjaW5jbHVkZSAidHlwZXMuaCIKQEAgLTI3LDcgKzMwLDYgQEAKICNpbmNsdWRlICJv
cGVyYXRpb25zLmgiCiAjaW5jbHVkZSAicmVnZXhwLmgiCiAjaW5jbHVkZSAicmVnZXhwX29iamVj
dC5oIgotI2luY2x1ZGUgInN0cmluZ19vYmplY3QuaCIKICNpbmNsdWRlICJlcnJvcl9vYmplY3Qu
aCIKICNpbmNsdWRlIDxzdGRpby5oPgogI2luY2x1ZGUgInN0cmluZ19vYmplY3QubHV0LmgiCklu
ZGV4OiBKYXZhU2NyaXB0Q29yZS9ranMvdGVzdGtqcy5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTog
L2N2cy9yb290L0phdmFTY3JpcHRDb3JlL2tqcy90ZXN0a2pzLmNwcCx2CnJldHJpZXZpbmcgcmV2
aXNpb24gMS4xNQpkaWZmIC11IC1wIC1yMS4xNSBKYXZhU2NyaXB0Q29yZS9ranMvdGVzdGtqcy5j
cHAKLS0tIEphdmFTY3JpcHRDb3JlL2tqcy90ZXN0a2pzLmNwcAkxOSBTZXAgMjAwNSAwNjo1Nzoy
OCAtMDAwMAkxLjE1CisrKyBKYXZhU2NyaXB0Q29yZS9ranMvdGVzdGtqcy5jcHAJMyBPY3QgMjAw
NSAwNDoyMjo0NSAtMDAwMApAQCAtMjIsNiArMjIsNyBAQAogICovCiAKICNpbmNsdWRlIDxzdGRp
by5oPgorI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgPHN0ZGxpYi5oPgogI2luY2x1ZGUg
PHN0cmluZy5oPgogCkluZGV4OiBKYXZhU2NyaXB0Q29yZS9ranMvdXN0cmluZy5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9KYXZhU2NyaXB0Q29yZS9ranMvdXN0cmluZy5oLHYKcmV0
cmlldmluZyByZXZpc2lvbiAxLjQxCmRpZmYgLXUgLXAgLXIxLjQxIEphdmFTY3JpcHRDb3JlL2tq
cy91c3RyaW5nLmgKLS0tIEphdmFTY3JpcHRDb3JlL2tqcy91c3RyaW5nLmgJMjcgU2VwIDIwMDUg
MjI6MzY6NTAgLTAwMDAJMS40MQorKysgSmF2YVNjcmlwdENvcmUva2pzL3VzdHJpbmcuaAkzIE9j
dCAyMDA1IDA0OjIyOjQ1IC0wMDAwCkBAIC0xOTMsNyArMTkzLDcgQEAgbmFtZXNwYWNlIEtKUyB7
CiAgIC8qKgogICAgKiBAc2hvcnQgVW5pY29kZSBzdHJpbmcgY2xhc3MKICAgICovCi0gIGNsYXNz
IFVTdHJpbmcgOiBwdWJsaWMgRmFzdEFsbG9jYXRlZCB7CisgIGNsYXNzIFVTdHJpbmcgewogICAg
IGZyaWVuZCBib29sIG9wZXJhdG9yPT0oY29uc3QgVVN0cmluZyYsIGNvbnN0IFVTdHJpbmcmKTsK
ICAgICBmcmllbmQgY2xhc3MgVUNoYXJSZWZlcmVuY2U7CiAgICAgZnJpZW5kIGNsYXNzIElkZW50
aWZpZXI7CkBAIC0yMDUsOCArMjA1LDYgQEAgbmFtZXNwYWNlIEtKUyB7CiAgICAgICovCiAgICAg
c3RydWN0IFJlcCB7CiAKLSAgICAgIEZBU1RfQUxMT0NBVEVEX1BPRDsKLQogICAgICAgc3RhdGlj
IFJlcCAqY3JlYXRlKFVDaGFyICpkLCBpbnQgbCk7CiAgICAgICBzdGF0aWMgUmVwICpjcmVhdGVD
b3B5aW5nKGNvbnN0IFVDaGFyICpkLCBpbnQgbCk7CiAgICAgICBzdGF0aWMgUmVwICpjcmVhdGUo
UmVwICpiYXNlLCBpbnQgb2Zmc2V0LCBpbnQgbGVuZ3RoKTsKSW5kZXg6IEphdmFTY3JpcHRDb3Jl
L2tqcy92YWx1ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L0phdmFTY3JpcHRD
b3JlL2tqcy92YWx1ZS5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMjkKZGlmZiAtdSAtcCAt
cjEuMjkgSmF2YVNjcmlwdENvcmUva2pzL3ZhbHVlLmNwcAotLS0gSmF2YVNjcmlwdENvcmUva2pz
L3ZhbHVlLmNwcAkxNiBTZXAgMjAwNSAyMjo0MjozMCAtMDAwMAkxLjI5CisrKyBKYXZhU2NyaXB0
Q29yZS9ranMvdmFsdWUuY3BwCTMgT2N0IDIwMDUgMDQ6MjI6NDUgLTAwMDAKQEAgLTIyLDYgKzIy
LDcgQEAKICAqLwogCiAjaW5jbHVkZSAidmFsdWUuaCIKKyNpbmNsdWRlICJjb25maWcuaCIKIAog
I2luY2x1ZGUgIm9iamVjdC5oIgogI2luY2x1ZGUgInR5cGVzLmgiCkluZGV4OiBKYXZhU2NyaXB0
Q29yZS9reG1sY29yZS9Bc3NlcnRpb25zLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9v
dC9KYXZhU2NyaXB0Q29yZS9reG1sY29yZS9Bc3NlcnRpb25zLm1tLHYKcmV0cmlldmluZyByZXZp
c2lvbiAxLjEKZGlmZiAtdSAtcCAtcjEuMSBKYXZhU2NyaXB0Q29yZS9reG1sY29yZS9Bc3NlcnRp
b25zLm1tCi0tLSBKYXZhU2NyaXB0Q29yZS9reG1sY29yZS9Bc3NlcnRpb25zLm1tCTI3IFNlcCAy
MDA1IDIyOjM2OjUzIC0wMDAwCTEuMQorKysgSmF2YVNjcmlwdENvcmUva3htbGNvcmUvQXNzZXJ0
aW9ucy5tbQkzIE9jdCAyMDA1IDA0OjIyOjQ2IC0wMDAwCkBAIC0yNSw2ICsyNSw3IEBACiAgKi8K
IAogI2luY2x1ZGUgIkFzc2VydGlvbnMuaCIKKyNpbmNsdWRlICJjb25maWcuaCIKIAogI2RlZmlu
ZSBTVVBQT1JUX09CSkNfTE9HR0lORyAxCiAKSW5kZXg6IEphdmFTY3JpcHRDb3JlL2t4bWxjb3Jl
L0Zhc3RNYWxsb2MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9KYXZhU2NyaXB0
Q29yZS9reG1sY29yZS9GYXN0TWFsbG9jLmNwcCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4xCmRp
ZmYgLXUgLXAgLXIxLjEgSmF2YVNjcmlwdENvcmUva3htbGNvcmUvRmFzdE1hbGxvYy5jcHAKLS0t
IEphdmFTY3JpcHRDb3JlL2t4bWxjb3JlL0Zhc3RNYWxsb2MuY3BwCTI3IFNlcCAyMDA1IDIyOjM2
OjUzIC0wMDAwCTEuMQorKysgSmF2YVNjcmlwdENvcmUva3htbGNvcmUvRmFzdE1hbGxvYy5jcHAJ
MyBPY3QgMjAwNSAwNDoyMjo0NiAtMDAwMApAQCAtNjMsNiArNjMsNyBAQAogLy8gICBnb2VzIGZy
b20gYWJvdXQgMTEwMCBucyB0byBhYm91dCAzMDAgbnMuCiAKICNpbmNsdWRlICJGYXN0TWFsbG9j
LmgiCisjaW5jbHVkZSAiY29uZmlnLmgiCiAKICNpZm5kZWYgTkRFQlVHCiAjZGVmaW5lIFVTRV9T
WVNURU1fTUFMTE9DIDEKQEAgLTk4LDcgKzk5LDYgQEAgdm9pZCAqZmFzdFJlYWxsb2Modm9pZCog
cCwgc2l6ZV90IG4pCiAKICNlbHNlCiAKLSNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlIDxu
ZXc+CiAjaW5jbHVkZSA8c3RkaW8uaD4KICNpbmNsdWRlIDxzdGRkZWYuaD4KQEAgLTE1NCw2ICsx
NTQsNyBAQCBzdGF0aWMgY29uc3Qgc2l6ZV90IGtNYXhTaXplICAgID0gOHUgKiBrCiBzdGF0aWMg
Y29uc3Qgc2l6ZV90IGtBbGlnblNoaWZ0ID0gMzsKIHN0YXRpYyBjb25zdCBzaXplX3Qga0FsaWdu
bWVudCAgPSAxIDw8IGtBbGlnblNoaWZ0Owogc3RhdGljIGNvbnN0IHNpemVfdCBrTnVtQ2xhc3Nl
cyA9IDE3MDsKK3N0YXRpYyBjb25zdCBzaXplX3Qga01heFRpbnlTaXplID0gMSA8PCA4OwogCiAv
LyBNaW5pbXVtIG51bWJlciBvZiBwYWdlcyB0byBmZXRjaCBmcm9tIHN5c3RlbSBhdCBhIHRpbWUu
ICBNdXN0IGJlCiAvLyBzaWduaWZpY2FudGx5IGJpZ2dlciB0aGFuIGtCbG9ja1NpemUgdG8gYW1v
cnRpemUgc3lzdGVtLWNhbGwKQEAgLTI4OSw3ICsyOTAsNyBAQCBzdGF0aWMgdm9pZCBJbml0U2l6
ZUNsYXNzZXMoKSB7CiAgICAgICAvLyBhdCBtb3N0IDE2LzEyOCBpLmUuLCAxMi41JS4gIFBsdXMg
d2UgY2FwIHRoZSBhbGlnbm1lbnQgYXQgMjU2CiAgICAgICAvLyBieXRlcywgc28gdGhlIHNwYWNl
IHdhc3RlZCBhcyBhIHBlcmNlbnRhZ2Ugc3RhcnRzIGZhbGxpbmcgZm9yCiAgICAgICAvLyBzaXpl
cyA+IDJLLgotICAgICAgaWYgKChsZyA+PSA3KSAmJiAoYWxpZ25zaGlmdCA8IDgpKSB7CisgICAg
ICBpZiAoKGxnID49IDgpICYmIChhbGlnbnNoaWZ0IDwgOSkpIHsKICAgICAgICAgYWxpZ25zaGlm
dCsrOwogICAgICAgfQogICAgICAgc2l6ZV9iYXNlW2xnXSA9IG5leHRfY2xhc3MgLSAoKHNpemUt
MSkgPj4gYWxpZ25zaGlmdCk7CkBAIC0zMTMsNyArMzE0LDcgQEAgc3RhdGljIHZvaWQgSW5pdFNp
emVDbGFzc2VzKCkgewogICAgIC8vIFRoaXMgYm91bmRzIHdhc3RlZCBzcGFjZSB0byBhdCBtb3N0
IDEyLjUlLgogICAgIHNpemVfdCBwc2l6ZSA9IGtQYWdlU2l6ZTsKICAgICBjb25zdCBzaXplX3Qg
cyA9IGNsYXNzX3RvX3NpemVbY2xdOwotICAgIHdoaWxlICgocHNpemUgJSBzKSA+IChwc2l6ZSA+
PiAzKSkgeworICAgIHdoaWxlICgocHNpemUgJSBzKSA+IChwc2l6ZSA+PiA0KSkgewogICAgICAg
cHNpemUgKz0ga1BhZ2VTaXplOwogICAgIH0KICAgICBjbGFzc190b19wYWdlc1tjbF0gPSBwc2l6
ZSA+PiBrUGFnZVNoaWZ0OwpAQCAtNTE3LDcgKzUxOCw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBE
TExfUmVtb3ZlKFNwYW4qIHNwYW4KICAgc3Bhbi0+bmV4dCA9IE5VTEw7CiB9CiAKLXN0YXRpYyBp
bmxpbmUgYm9vbCBETExfSXNFbXB0eShjb25zdCBTcGFuKiBsaXN0KSB7CitzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKGFsd2F5c19pbmxpbmUpKSBib29sIERMTF9Jc0VtcHR5KGNvbnN0IFNw
YW4qIGxpc3QpIHsKICAgcmV0dXJuIGxpc3QtPm5leHQgPT0gbGlzdDsKIH0KIApAQCAtNTQxLDcg
KzU0Miw3IEBAIHN0YXRpYyB2b2lkIERMTF9QcmludChjb25zdCBjaGFyKiBsYWJlbCwKIH0KICNl
bmRpZgogCi1zdGF0aWMgdm9pZCBETExfUHJlcGVuZChTcGFuKiBsaXN0LCBTcGFuKiBzcGFuKSB7
CitzdGF0aWMgaW5saW5lIHZvaWQgRExMX1ByZXBlbmQoU3BhbiogbGlzdCwgU3Bhbiogc3Bhbikg
ewogICBBU1NFUlQoc3Bhbi0+bmV4dCA9PSBOVUxMKTsKICAgQVNTRVJUKHNwYW4tPnByZXYgPT0g
TlVMTCk7CiAgIHNwYW4tPm5leHQgPSBsaXN0LT5uZXh0OwpAQCAtMTAxNyw3ICsxMDE4LDcgQEAg
Y2xhc3MgVENNYWxsb2NfVGhyZWFkQ2FjaGUgewogICB2b2lkKiBBbGxvY2F0ZShzaXplX3Qgc2l6
ZSk7CiAgIHZvaWQgRGVhbGxvY2F0ZSh2b2lkKiBwdHIsIHNpemVfdCBzaXplX2NsYXNzKTsKIAot
ICB2b2lkIEZldGNoRnJvbUNlbnRyYWxDYWNoZShzaXplX3QgY2wpOworICB2b2lkIEZldGNoRnJv
bUNlbnRyYWxDYWNoZShzaXplX3QgY2wsIHNpemVfdCBhbGxvY2F0aW9uU2l6ZSk7CiAgIHZvaWQg
UmVsZWFzZVRvQ2VudHJhbENhY2hlKHNpemVfdCBjbCwgaW50IE4pOwogICB2b2lkIFNjYXZlbmdl
KCk7CiAgIHZvaWQgUHJpbnQoKSBjb25zdDsKQEAgLTExMzUsNyArMTEzNiw3IEBAIHZvaWQgVENN
YWxsb2NfQ2VudHJhbF9GcmVlTGlzdDo6SW5pdChzaXoKICAgY291bnRlcl8gPSAwOwogfQogCi1p
bmxpbmUgdm9pZCBUQ01hbGxvY19DZW50cmFsX0ZyZWVMaXN0OjpJbnNlcnQodm9pZCogb2JqZWN0
KSB7CitpbmxpbmUgX19hdHRyaWJ1dGVfXygoYWx3YXlzX2lubGluZSkpIHZvaWQgVENNYWxsb2Nf
Q2VudHJhbF9GcmVlTGlzdDo6SW5zZXJ0KHZvaWQqIG9iamVjdCkgewogICBjb25zdCBQYWdlSUQg
cCA9IHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90PihvYmplY3QpID4+IGtQYWdlU2hpZnQ7CiAg
IFNwYW4qIHNwYW4gPSBwYWdlaGVhcC0+R2V0RGVzY3JpcHRvcihwKTsKICAgQVNTRVJUKHNwYW4g
IT0gTlVMTCk7CkBAIC0xMTgwLDcgKzExODEsNyBAQCBpbmxpbmUgdm9pZCBUQ01hbGxvY19DZW50
cmFsX0ZyZWVMaXN0OjpJCiAgIH0KIH0KIAotaW5saW5lIHZvaWQqIFRDTWFsbG9jX0NlbnRyYWxf
RnJlZUxpc3Q6OlJlbW92ZSgpIHsKK2lubGluZSBfX2F0dHJpYnV0ZV9fKChhbHdheXNfaW5saW5l
KSkgdm9pZCogVENNYWxsb2NfQ2VudHJhbF9GcmVlTGlzdDo6UmVtb3ZlKCkgewogICBpZiAoRExM
X0lzRW1wdHkoJm5vbmVtcHR5XykpIHJldHVybiBOVUxMOwogICBTcGFuKiBzcGFuID0gbm9uZW1w
dHlfLm5leHQ7CiAKQEAgLTExOTksNyArMTIwMCw3IEBAIGlubGluZSB2b2lkKiBUQ01hbGxvY19D
ZW50cmFsX0ZyZWVMaXN0OjoKIH0KIAogLy8gRmV0Y2ggbWVtb3J5IGZyb20gdGhlIHN5c3RlbSBh
bmQgYWRkIHRvIHRoZSBjZW50cmFsIGNhY2hlIGZyZWVsaXN0LgotaW5saW5lIHZvaWQgVENNYWxs
b2NfQ2VudHJhbF9GcmVlTGlzdDo6UG9wdWxhdGUoKSB7CitpbmxpbmUgIF9fYXR0cmlidXRlX18o
KGFsd2F5c19pbmxpbmUpKSB2b2lkIFRDTWFsbG9jX0NlbnRyYWxfRnJlZUxpc3Q6OlBvcHVsYXRl
KCkgewogICAvLyBSZWxlYXNlIGNlbnRyYWwgbGlzdCBsb2NrIHdoaWxlIG9wZXJhdGluZyBvbiBw
YWdlaGVhcAogICBsb2NrXy5VbmxvY2soKTsKICAgY29uc3Qgc2l6ZV90IG5wYWdlcyA9IGNsYXNz
X3RvX3BhZ2VzW3NpemVfY2xhc3NfXTsKQEAgLTEyODIsMTUgKzEyODMsMTYgQEAgdm9pZCBUQ01h
bGxvY19UaHJlYWRDYWNoZTo6Q2xlYW51cCgpIHsKICAgfQogfQogCi1pbmxpbmUgdm9pZCogVENN
YWxsb2NfVGhyZWFkQ2FjaGU6OkFsbG9jYXRlKHNpemVfdCBzaXplKSB7CitpbmxpbmUgX19hdHRy
aWJ1dGVfXygoYWx3YXlzX2lubGluZSkpIHZvaWQqIFRDTWFsbG9jX1RocmVhZENhY2hlOjpBbGxv
Y2F0ZShzaXplX3Qgc2l6ZSkgewogICBBU1NFUlQoc2l6ZSA8PSBrTWF4U2l6ZSk7CiAgIGNvbnN0
IHNpemVfdCBjbCA9IFNpemVDbGFzcyhzaXplKTsKICAgRnJlZUxpc3QqIGxpc3QgPSAmbGlzdF9b
Y2xdOworICBzaXplX3QgYWxsb2NhdGlvblNpemUgPSAoc2l6ZSA8PSBrTWF4VGlueVNpemUpID8g
KHNpemUgKyA3KSAmIH4weDcgOiBCeXRlU2l6ZUZvckNsYXNzKGNsKTsKICAgaWYgKGxpc3QtPmVt
cHR5KCkpIHsKLSAgICBGZXRjaEZyb21DZW50cmFsQ2FjaGUoY2wpOworICAgIEZldGNoRnJvbUNl
bnRyYWxDYWNoZShjbCwgYWxsb2NhdGlvblNpemUpOwogICAgIGlmIChsaXN0LT5lbXB0eSgpKSBy
ZXR1cm4gTlVMTDsKICAgfQotICBzaXplXyAtPSBCeXRlU2l6ZUZvckNsYXNzKGNsKTsKKyAgc2l6
ZV8gLT0gYWxsb2NhdGlvblNpemU7CiAgIHJldHVybiBsaXN0LT5Qb3AoKTsKIH0KIApAQCAtMTMw
Niw3ICsxMzA4LDcgQEAgaW5saW5lIHZvaWQgVENNYWxsb2NfVGhyZWFkQ2FjaGU6OkRlYWxsbwog
fQogCiAvLyBSZW1vdmUgc29tZSBvYmplY3RzIG9mIGNsYXNzICJjbCIgZnJvbSBjZW50cmFsIGNh
Y2hlIGFuZCBhZGQgdG8gdGhyZWFkIGhlYXAKLWlubGluZSB2b2lkIFRDTWFsbG9jX1RocmVhZENh
Y2hlOjpGZXRjaEZyb21DZW50cmFsQ2FjaGUoc2l6ZV90IGNsKSB7CitpbmxpbmUgX19hdHRyaWJ1
dGVfXygoYWx3YXlzX2lubGluZSkpIHZvaWQgVENNYWxsb2NfVGhyZWFkQ2FjaGU6OkZldGNoRnJv
bUNlbnRyYWxDYWNoZShzaXplX3QgY2wsIHNpemVfdCBieXRlU2l6ZSkgewogICBUQ01hbGxvY19D
ZW50cmFsX0ZyZWVMaXN0KiBzcmMgPSAmY2VudHJhbF9jYWNoZVtjbF07CiAgIEZyZWVMaXN0KiBk
c3QgPSAmbGlzdF9bY2xdOwogICBTcGluTG9ja0hvbGRlciBoKCZzcmMtPmxvY2tfKTsKQEAgLTEz
MjIsNyArMTMyNCw3IEBAIGlubGluZSB2b2lkIFRDTWFsbG9jX1RocmVhZENhY2hlOjpGZXRjaEYK
ICAgICAgIH0KICAgICB9CiAgICAgZHN0LT5QdXNoKG9iamVjdCk7Ci0gICAgc2l6ZV8gKz0gQnl0
ZVNpemVGb3JDbGFzcyhjbCk7CisgICAgc2l6ZV8gKz0gYnl0ZVNpemU7CiAgIH0KIH0KIApAQCAt
MTM2OCwxMiArMTM3MCwzMyBAQCBpbmxpbmUgdm9pZCBUQ01hbGxvY19UaHJlYWRDYWNoZTo6U2Nh
dmVuCiAjZW5kaWYKIH0KIAorYm9vbCBpc011bHRpVGhyZWFkZWQ7CitUQ01hbGxvY19UaHJlYWRD
YWNoZSAqbWFpblRocmVhZENhY2hlOworcHRocmVhZF90IG1haW5UaHJlYWRJRDsKK3N0YXRpYyBT
cGluTG9jayBtdWx0aVRocmVhZGVkTG9jayA9IFNQSU5MT0NLX0lOSVRJQUxJWkVSOworCit2b2lk
IGZhc3RNYWxsb2NSZWdpc3RlclRocmVhZChwdGhyZWFkX3QgdGhyZWFkKSAKK3sKKyAgICBpZiAo
dGhyZWFkICE9IG1haW5UaHJlYWRJRCkgeworICAgICAgICAvLyBXZSBsb2NrIHdoZW4gd3JpdGlu
ZyBpc011bHRpVGhyZWFkZWQgYnV0IG5vdCB3aGVuIHJlYWRpbmcgaXQuCisgICAgICAgIC8vIEl0
J3Mgb2sgaWYgdGhlIG1haW4gdGhyZWFkIHRlbXBvcmFyaWx5IGdldHMgaXQgd3JvbmcgLSB0aGUg
Z2xvYmFsCisgICAgICAgIC8vIHZhcmlhYmxlIGNhY2hlIGlzIHRoZSBzYW1lIGFzIHRoZSB0aHJl
YWQtc3BlY2lmaWMgY2FjaGUgZm9yIHRoZSBtYWluIHRocmVhZC4KKyAgICAgICAgLy8gQW5kIG90
aGVyIHRocmVhZHMgY2FuJ3QgZ2V0IGl0IHdyb25nIGJlY2F1c2UgdGhleSBtdXN0IGhhdmUgZ29u
ZSB0aHJvdWdoIAorICAgICAgICAvLyB0aGlzIGZ1bmN0aW9uIGJlZm9yZSBhbGxvY2F0aW5nIHNv
IHRoZXkndmUgc3luY2hyb25pemVkLgorICAgICAgICBTcGluTG9ja0hvbGRlciBsb2NrKCZtdWx0
aVRocmVhZGVkTG9jayk7CisgICAgICAgIGlzTXVsdGlUaHJlYWRlZCA9IHRydWU7CisgICAgfQor
fQorCiBpbmxpbmUgVENNYWxsb2NfVGhyZWFkQ2FjaGUqIFRDTWFsbG9jX1RocmVhZENhY2hlOjpH
ZXRDYWNoZSgpIHsKICAgdm9pZCogcHRyID0gTlVMTDsKICAgaWYgKCF0c2RfaW5pdGVkKSB7CiAg
ICAgSW5pdE1vZHVsZSgpOwogICB9IGVsc2UgewotICAgIHB0ciA9IHB0aHJlYWRfZ2V0c3BlY2lm
aWMoaGVhcF9rZXkpOworICAgICAgaWYgKCFpc011bHRpVGhyZWFkZWQpCisgICAgICAgICAgcHRy
ID0gbWFpblRocmVhZENhY2hlOworICAgICAgZWxzZQorICAgICAgICAgIHB0ciA9IHB0aHJlYWRf
Z2V0c3BlY2lmaWMoaGVhcF9rZXkpOwogICB9CiAgIGlmIChwdHIgPT0gTlVMTCkgcHRyID0gQ3Jl
YXRlQ2FjaGVJZk5lY2Vzc2FyeSgpOwogICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxUQ01hbGxv
Y19UaHJlYWRDYWNoZSo+KHB0cik7CkBAIC0xMzgzLDYgKzE0MDYsOCBAQCBpbmxpbmUgVENNYWxs
b2NfVGhyZWFkQ2FjaGUqIFRDTWFsbG9jX1RoCiAvLyBiZWNhdXNlIHdlIG1heSBiZSBpbiB0aGUg
dGhyZWFkIGRlc3RydWN0aW9uIGNvZGUgYW5kIG1heSBoYXZlCiAvLyBhbHJlYWR5IGNsZWFuZWQg
dXAgdGhlIGNhY2hlIGZvciB0aGlzIHRocmVhZC4KIGlubGluZSBUQ01hbGxvY19UaHJlYWRDYWNo
ZSogVENNYWxsb2NfVGhyZWFkQ2FjaGU6OkdldENhY2hlSWZQcmVzZW50KCkgeworICBpZiAoIWlz
TXVsdGlUaHJlYWRlZCkKKyAgICAgIHJldHVybiBtYWluVGhyZWFkQ2FjaGU7CiAgIGlmICghdHNk
X2luaXRlZCkgcmV0dXJuIE5VTEw7CiAgIHJldHVybiByZWludGVycHJldF9jYXN0PFRDTWFsbG9j
X1RocmVhZENhY2hlKj4KICAgICAocHRocmVhZF9nZXRzcGVjaWZpYyhoZWFwX2tleSkpOwpAQCAt
MTQ3Myw3ICsxNDk4LDExIEBAIHZvaWQqIFRDTWFsbG9jX1RocmVhZENhY2hlOjpDcmVhdGVDYWNo
ZUkKICAgICAgIGlmICh0aHJlYWRfaGVhcHMgIT0gTlVMTCkgdGhyZWFkX2hlYXBzLT5wcmV2XyA9
IGhlYXA7CiAgICAgICB0aHJlYWRfaGVhcHMgPSBoZWFwOwogICAgICAgdGhyZWFkX2hlYXBfY291
bnQrKzsKLSAgICAgIFJlY29tcHV0ZVRocmVhZENhY2hlU2l6ZSgpOworICAgICAgUmVjb21wdXRl
VGhyZWFkQ2FjaGVTaXplKCk7IAorICAgICAgaWYgKCFpc011bHRpVGhyZWFkZWQpIHsKKyAgICAg
ICAgICBtYWluVGhyZWFkQ2FjaGUgPSBoZWFwOworICAgICAgICAgIG1haW5UaHJlYWRJRCA9IHB0
aHJlYWRfc2VsZigpOworICAgICAgfQogICAgIH0KICAgfQogCkBAIC0xODAxLDQxICsxODMwLDQ5
IEBAIHN0YXRpYyBTcGFuKiBEb1NhbXBsZWRBbGxvY2F0aW9uKHNpemVfdCAKIH0KICNlbmRpZgog
Ci1zdGF0aWMgaW5saW5lIHZvaWQqIGRvX21hbGxvYyhzaXplX3Qgc2l6ZSkgeworc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChhbHdheXNfaW5saW5lKSkgdm9pZCogZG9fbWFsbG9jKHNpemVf
dCBzaXplKSB7CiAKICNpZm5kZWYgS1hDX0NIQU5HRVMKICAgaWYgKFRDTWFsbG9jRGVidWc6Omxl
dmVsID49IFRDTWFsbG9jRGVidWc6OmtWZXJib3NlKSAKICAgICBNRVNTQUdFKCJJbiB0Y21hbGxv
YyBkb19tYWxsb2MoJSIgUFJJdVMiKVxuIiwgc2l6ZSk7CiAjZW5kaWYKIAorI2lmbmRlZiBLWENf
Q0hBTkdFUwogICAvLyBUaGUgZm9sbG93aW5nIGNhbGwgZm9yY2VzIG1vZHVsZSBpbml0aWFsaXph
dGlvbgogICBUQ01hbGxvY19UaHJlYWRDYWNoZSogaGVhcCA9IFRDTWFsbG9jX1RocmVhZENhY2hl
OjpHZXRDYWNoZSgpOwotI2lmbmRlZiBLWENfQ0hBTkdFUwogICBpZiAoaGVhcC0+U2FtcGxlQWxs
b2NhdGlvbihzaXplKSkgewogICAgIFNwYW4qIHNwYW4gPSBEb1NhbXBsZWRBbGxvY2F0aW9uKHNp
emUpOwogICAgIGlmIChzcGFuID09IE5VTEwpIHJldHVybiBOVUxMOwogICAgIHJldHVybiByZWlu
dGVycHJldF9jYXN0PHZvaWQqPihzcGFuLT5zdGFydCA8PCBrUGFnZVNoaWZ0KTsKICAgfSBlbHNl
CiAjZW5kaWYKLSAgICAgIGlmIChzaXplID4ga01heFNpemUpIHsKKyAgaWYgKHNpemUgPiBrTWF4
U2l6ZSkgewogICAgIC8vIFVzZSBwYWdlLWxldmVsIGFsbG9jYXRvcgorICAgIGlmICghdHNkX2lu
aXRlZCAmJiAhcGhpbml0ZWQpCisgICAgICBUQ01hbGxvY19UaHJlYWRDYWNoZTo6SW5pdE1vZHVs
ZSgpOworCiAgICAgU3BpbkxvY2tIb2xkZXIgaCgmcGFnZWhlYXBfbG9jayk7CisKKwogICAgIFNw
YW4qIHNwYW4gPSBwYWdlaGVhcC0+TmV3KHBhZ2VzKHNpemUpKTsKICAgICBpZiAoc3BhbiA9PSBO
VUxMKSByZXR1cm4gTlVMTDsKICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4oc3Bh
bi0+c3RhcnQgPDwga1BhZ2VTaGlmdCk7CiAgIH0gZWxzZSB7Ci0gICAgcmV0dXJuIGhlYXAtPkFs
bG9jYXRlKHNpemUpOworI2lmZGVmIEtYQ19DSEFOR0VTCisgICAgICBUQ01hbGxvY19UaHJlYWRD
YWNoZSogaGVhcCA9IFRDTWFsbG9jX1RocmVhZENhY2hlOjpHZXRDYWNoZSgpOworI2VuZGlmCisg
ICAgICByZXR1cm4gaGVhcC0+QWxsb2NhdGUoc2l6ZSk7CiAgIH0KIH0KIAotc3RhdGljIGlubGlu
ZSB2b2lkIGRvX2ZyZWUodm9pZCogcHRyKSB7CitzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KGFsd2F5c19pbmxpbmUpKSB2b2lkIGRvX2ZyZWUodm9pZCogcHRyKSB7CiAjaWZuZGVmIEtYQ19D
SEFOR0VTCiAgIGlmIChUQ01hbGxvY0RlYnVnOjpsZXZlbCA+PSBUQ01hbGxvY0RlYnVnOjprVmVy
Ym9zZSkgCiAgICAgTUVTU0FHRSgiSW4gdGNtYWxsb2MgZG9fZnJlZSglcClcbiIsIHB0cik7CiAj
ZW5kaWYKICNpZiBLWENfQ0hBTkdFUwotICBpZiAocHRyID09IE5VTEwpIHJldHVybjsgCi0jZWxz
ZQorICBpZiAocHRyID09IE5VTEwpIHJldHVybjsKKyNlbHNlIEtYQ19DSEFOR0VTCiAgIGlmIChw
dHIgPT0gTlVMTCB8fCB0Y21hbGxvY19pc19kZXN0cm95ZWQpIHJldHVybjsKICNlbmRpZgogCkBA
IC0yMDcxLDcgKzIxMDgsNyBAQCB2b2lkKiByZWFsbG9jKHZvaWQqIG9sZF9wdHIsIHNpemVfdCBu
ZXdfCiAjaWZuZGVmIEtYQ19DSEFOR0VTCiAgICAgTWFsbG9jSG9vazo6SW52b2tlRGVsZXRlSG9v
ayhvbGRfcHRyKTsKICNlbmRpZgotICAgIGRvX2ZyZWUob2xkX3B0cik7CisgICAgZnJlZShvbGRf
cHRyKTsKICAgICByZXR1cm4gTlVMTDsKICAgfQogCkBAIC0yMTAwLDcgKzIxMzcsNyBAQCB2b2lk
KiByZWFsbG9jKHZvaWQqIG9sZF9wdHIsIHNpemVfdCBuZXdfCiAjaWZuZGVmIEtYQ19DSEFOR0VT
CiAgICAgTWFsbG9jSG9vazo6SW52b2tlRGVsZXRlSG9vayhvbGRfcHRyKTsKICNlbmRpZgotICAg
IGRvX2ZyZWUob2xkX3B0cik7CisgICAgZnJlZShvbGRfcHRyKTsKICAgICByZXR1cm4gbmV3X3B0
cjsKICAgfSBlbHNlIHsKICAgICByZXR1cm4gb2xkX3B0cjsKSW5kZXg6IEphdmFTY3JpcHRDb3Jl
L2t4bWxjb3JlL0Zhc3RNYWxsb2MuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvSmF2
YVNjcmlwdENvcmUva3htbGNvcmUvRmFzdE1hbGxvYy5oLHYKcmV0cmlldmluZyByZXZpc2lvbiAx
LjEKZGlmZiAtdSAtcCAtcjEuMSBKYXZhU2NyaXB0Q29yZS9reG1sY29yZS9GYXN0TWFsbG9jLmgK
LS0tIEphdmFTY3JpcHRDb3JlL2t4bWxjb3JlL0Zhc3RNYWxsb2MuaAkyNyBTZXAgMjAwNSAyMjoz
Njo1MyAtMDAwMAkxLjEKKysrIEphdmFTY3JpcHRDb3JlL2t4bWxjb3JlL0Zhc3RNYWxsb2MuaAkz
IE9jdCAyMDA1IDA0OjIyOjQ2IC0wMDAwCkBAIC0zMiwyNyArMzIsMjMgQEAgbmFtZXNwYWNlIEtY
TUxDb3JlIHsKICAgICB2b2lkIGZhc3RGcmVlKHZvaWQqIHApOwogICAgIHZvaWQgKmZhc3RSZWFs
bG9jKHZvaWQqIHAsIHNpemVfdCBuKTsKICAgICAKLSAgICBzdHJ1Y3QgRmFzdEFsbG9jYXRlZCB7
Ci0gICAgICAgIHZvaWQqIG9wZXJhdG9yIG5ldyhzaXplX3QgcykgeyByZXR1cm4gZmFzdE1hbGxv
YyhzKTsgfQotICAgICAgICB2b2lkIG9wZXJhdG9yIGRlbGV0ZSh2b2lkKiBwKSB7IGZhc3RGcmVl
KHApOyB9Ci0gICAgICAgIHZvaWQqIG9wZXJhdG9yIG5ld1tdKHNpemVfdCBzKSB7IHJldHVybiBm
YXN0TWFsbG9jKHMpOyB9Ci0gICAgICAgIHZvaWQgb3BlcmF0b3IgZGVsZXRlW10odm9pZCogcCkg
eyBmYXN0RnJlZShwKTsgfQotICAgIH07Ci0gICAgCi0gICAgLy8gUE9EIHR5cGVzIGNhbid0IGhh
dmUgYSBiYXNlIGNsYXNzLCBzbyB0aGV5IGhhdmUgdG8gdXNlIGEgbWFjcm8gdG8KLSAgICAvLyBh
ZGQgdGhlIGFwcHJvcHJpYXRlIG9wZXJhdG9ycwotICAgICNkZWZpbmUgRkFTVF9BTExPQ0FURURf
UE9EIFwKLSAgICAgICAgdm9pZCogb3BlcmF0b3IgbmV3KHNpemVfdCBzKSB7IHJldHVybiBmYXN0
TWFsbG9jKHMpOyB9IFwKLSAgICAgICAgdm9pZCBvcGVyYXRvciBkZWxldGUodm9pZCogcCkgeyBm
YXN0RnJlZShwKTsgfSBcCi0gICAgICAgIHZvaWQqIG9wZXJhdG9yIG5ld1tdKHNpemVfdCBzKSB7
IHJldHVybiBmYXN0TWFsbG9jKHMpOyB9IFwKLSAgICAgICAgdm9pZCBvcGVyYXRvciBkZWxldGVb
XSh2b2lkKiBwKSB7IGZhc3RGcmVlKHApOyB9IFwKLQogfSAvLyBuYW1lc3BhY2UgS1hNTENvcmUK
IAogdXNpbmcgS1hNTENvcmU6OmZhc3RNYWxsb2M7CiB1c2luZyBLWE1MQ29yZTo6ZmFzdENhbGxv
YzsKIHVzaW5nIEtYTUxDb3JlOjpmYXN0UmVhbGxvYzsKIHVzaW5nIEtYTUxDb3JlOjpmYXN0RnJl
ZTsKLXVzaW5nIEtYTUxDb3JlOjpGYXN0QWxsb2NhdGVkOworCisjaWYgX19HTlVDX18KKyNkZWZp
bmUgUFJJVkFURV9JTkxJTkUgX19wcml2YXRlX2V4dGVybl9fIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChhbHdheXNfaW5saW5lKSkKKyNlbHNlCisjZGVmaW5lIFBSSVZBVEVfSU5MSU5FIGlubGluZQor
I2VuZGlmCisKK1BSSVZBVEVfSU5MSU5FIHZvaWQqIG9wZXJhdG9yIG5ldyhzaXplX3QgcykgeyBy
ZXR1cm4gZmFzdE1hbGxvYyhzKTsgfQorUFJJVkFURV9JTkxJTkUgdm9pZCBvcGVyYXRvciBkZWxl
dGUodm9pZCogcCkgeyBmYXN0RnJlZShwKTsgfQorUFJJVkFURV9JTkxJTkUgdm9pZCogb3BlcmF0
b3IgbmV3W10oc2l6ZV90IHMpIHsgcmV0dXJuIGZhc3RNYWxsb2Mocyk7IH0KK1BSSVZBVEVfSU5M
SU5FIHZvaWQgb3BlcmF0b3IgZGVsZXRlW10odm9pZCogcCkgeyBmYXN0RnJlZShwKTsgfQorCiAK
ICNlbmRpZiAvKiBLWE1MQ09SRV9GQVNUX01BTExPQ19IICovCkluZGV4OiBKYXZhU2NyaXB0Q29y
ZS9reG1sY29yZS9IYXNoVGFibGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9K
YXZhU2NyaXB0Q29yZS9reG1sY29yZS9IYXNoVGFibGUuY3BwLHYKcmV0cmlldmluZyByZXZpc2lv
biAxLjEKZGlmZiAtdSAtcCAtcjEuMSBKYXZhU2NyaXB0Q29yZS9reG1sY29yZS9IYXNoVGFibGUu
Y3BwCi0tLSBKYXZhU2NyaXB0Q29yZS9reG1sY29yZS9IYXNoVGFibGUuY3BwCTI4IFNlcCAyMDA1
IDIyOjAxOjE3IC0wMDAwCTEuMQorKysgSmF2YVNjcmlwdENvcmUva3htbGNvcmUvSGFzaFRhYmxl
LmNwcAkzIE9jdCAyMDA1IDA0OjIyOjQ2IC0wMDAwCkBAIC0yMCw2ICsyMCw3IEBACiAqLwogCiAj
aW5jbHVkZSAiaGFzaHRhYmxlLmgiCisjaW5jbHVkZSAiY29uZmlnLmgiCiAKIG5hbWVzcGFjZSBL
WE1MQ29yZSB7CiAKSW5kZXg6IEphdmFTY3JpcHRDb3JlL2t4bWxjb3JlL1RDU3BpbkxvY2suaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvSmF2YVNjcmlwdENvcmUva3htbGNvcmUvVENT
cGluTG9jay5oLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjEKZGlmZiAtdSAtcCAtcjEuMSBKYXZh
U2NyaXB0Q29yZS9reG1sY29yZS9UQ1NwaW5Mb2NrLmgKLS0tIEphdmFTY3JpcHRDb3JlL2t4bWxj
b3JlL1RDU3BpbkxvY2suaAkyNyBTZXAgMjAwNSAyMjozNjo1MyAtMDAwMAkxLjEKKysrIEphdmFT
Y3JpcHRDb3JlL2t4bWxjb3JlL1RDU3BpbkxvY2suaAkzIE9jdCAyMDA1IDA0OjIyOjQ2IC0wMDAw
CkBAIC00NSwxMCArNDUsMTAgQEAKICNlbmRpZgogI2luY2x1ZGUgPHN0ZGxpYi5oPgkvKiBmb3Ig
YWJvcnQoKSAqLwogCisKIC8vIEZJWE1FOiBpdCB3b3VsZCBiZSBuaWNlIHRvIHBvcnQgdGhlIGZh
c3QgdmVyc2lvbiB0byBQb3dlclBDIGJ1dCByaWdodCBub3cgaXQgaXMgbm90CiAvLyBzaG93aW5n
IHVwIG9uIHRoZSBwcm9maWxlCi0jaWYgZGVmaW5lZCBfX2kzODZfXyAmJiBkZWZpbmVkIF9fR05V
Q19fCi0KKyNpZiAoZGVmaW5lZCBfX2kzODZfXyB8fCBkZWZpbmVkIF9fcHBjX18pICYmIGRlZmlu
ZWQgX19HTlVDX18KIHN0YXRpYyB2b2lkIFRDTWFsbG9jX1Nsb3dMb2NrKHZvbGF0aWxlIHVuc2ln
bmVkIGludCogbG9ja3dvcmQpOwogCiAvLyBUaGUgZm9sbG93aW5nIGlzIGEgc3RydWN0IHNvIHRo
YXQgaXQgY2FuIGJlIGluaXRpYWxpemVkIGF0IGNvbXBpbGUgdGltZQpAQCAtNjAsMjAgKzYwLDQy
IEBAIHN0cnVjdCBUQ01hbGxvY19TcGluTG9jayB7CiAgICAgCiAgIGlubGluZSB2b2lkIExvY2so
KSB7CiAgICAgaW50IHI7CisjaWYgIF9faTM4Nl9fCiAgICAgX19hc21fXyBfX3ZvbGF0aWxlX18K
ICAgICAgICgieGNoZ2wgJTAsICUxIgogICAgICAgIDogIj1yIihyKSwgIj1tIihwcml2YXRlX2xv
Y2t3b3JkXykKICAgICAgICA6ICIwIigxKSwgIm0iKHByaXZhdGVfbG9ja3dvcmRfKQogICAgICAg
IDogIm1lbW9yeSIpOworI2Vsc2UKKyAgICB2b2xhdGlsZSB1bnNpZ25lZCBpbnQgKmxvY2t3b3Jk
X3B0ciA9ICZwcml2YXRlX2xvY2t3b3JkXzsKKyAgICBfX2FzbV9fIF9fdm9sYXRpbGVfXworICAg
ICAgICAoIjE6IGx3YXJ4ICUwLCAwLCAlMVxuXHQiCisgICAgICAgICAic3R3Y3guICUyLCAwLCAl
MVxuXHQiCisgICAgICAgICAiYm5lLSAxYlxuXHQiCisgICAgICAgICAiaXN5bmMiCisgICAgICAg
ICA6ICI9JnIiIChyKSwgIj1yIiAobG9ja3dvcmRfcHRyKQorICAgICAgICAgOiAiciIgKDEpLCAi
MSIgKGxvY2t3b3JkX3B0cikKKyAgICAgICAgIDogIm1lbW9yeSIpOworI2VuZGlmCiAgICAgaWYg
KHIpIFRDTWFsbG9jX1Nsb3dMb2NrKCZwcml2YXRlX2xvY2t3b3JkXyk7CiAgIH0KIAogICBpbmxp
bmUgdm9pZCBVbmxvY2soKSB7CisjaWYgIF9faTM4Nl9fCiAgICAgX19hc21fXyBfX3ZvbGF0aWxl
X18KICAgICAgICgibW92bCAkMCwgJTAiCiAgICAgICAgOiAiPW0iKHByaXZhdGVfbG9ja3dvcmRf
KQogICAgICAgIDogIm0iIChwcml2YXRlX2xvY2t3b3JkXykKICAgICAgICA6ICJtZW1vcnkiKTsK
KyNlbHNlCisgICAgX19hc21fXyBfX3ZvbGF0aWxlX18KKyAgICAgICgiaXN5bmNcblx0IgorICAg
ICAgICJlaWVpb1xuXHQiCisgICAgICAgInN0dyAlMSwgJTAiCisgICAgICAgOiAiPW8iIChwcml2
YXRlX2xvY2t3b3JkXykgCisgICAgICAgOiAiciIgKDApCisgICAgICAgOiAibWVtb3J5Iik7Cisj
ZW5kaWYKICAgfQogfTsKIApAQCAtODMsMTEgKzEwNSwyNCBAQCBzdGF0aWMgdm9pZCBUQ01hbGxv
Y19TbG93TG9jayh2b2xhdGlsZSB1CiAgIHNjaGVkX3lpZWxkKCk7ICAgICAgICAvLyBZaWVsZCBp
bW1lZGlhdGVseSBzaW5jZSBmYXN0IHBhdGggZmFpbGVkCiAgIHdoaWxlICh0cnVlKSB7CiAgICAg
aW50IHI7CisjaWYgX19pMzg2X18KICAgICBfX2FzbV9fIF9fdm9sYXRpbGVfXwogICAgICAgKCJ4
Y2hnbCAlMCwgJTEiCiAgICAgICAgOiAiPXIiKHIpLCAiPW0iKCpsb2Nrd29yZCkKICAgICAgICA6
ICIwIigxKSwgIm0iKCpsb2Nrd29yZCkKICAgICAgICA6ICJtZW1vcnkiKTsKKworI2Vsc2UKKyAg
ICBpbnQgdG1wID0gMTsKKyAgICBfX2FzbV9fIF9fdm9sYXRpbGVfXworICAgICAgICAoIjE6IGx3
YXJ4ICUwLCAwLCAlMVxuXHQiCisgICAgICAgICAic3R3Y3guICUyLCAwLCAlMVxuXHQiCisgICAg
ICAgICAiYm5lLSAxYlxuXHQiCisgICAgICAgICAiaXN5bmMiCisgICAgICAgICA6ICI9JnIiIChy
KSwgIj1yIiAobG9ja3dvcmQpCisgICAgICAgICA6ICJyIiAodG1wKSwgIjEiIChsb2Nrd29yZCkK
KyAgICAgICAgIDogIm1lbW9yeSIpOworI2VuZGlmCiAgICAgaWYgKCFyKSB7CiAgICAgICByZXR1
cm47CiAgICAgfQpJbmRleDogSmF2YVNjcmlwdENvcmUva3htbGNvcmUvVENTeXN0ZW1BbGxvYy5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L0phdmFTY3JpcHRDb3JlL2t4bWxjb3Jl
L1RDU3lzdGVtQWxsb2MuY3BwLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjEKZGlmZiAtdSAtcCAt
cjEuMSBKYXZhU2NyaXB0Q29yZS9reG1sY29yZS9UQ1N5c3RlbUFsbG9jLmNwcAotLS0gSmF2YVNj
cmlwdENvcmUva3htbGNvcmUvVENTeXN0ZW1BbGxvYy5jcHAJMjcgU2VwIDIwMDUgMjI6MzY6NTMg
LTAwMDAJMS4xCisrKyBKYXZhU2NyaXB0Q29yZS9reG1sY29yZS9UQ1N5c3RlbUFsbG9jLmNwcAkz
IE9jdCAyMDA1IDA0OjIyOjQ2IC0wMDAwCkBAIC02Niw4ICs2Niw4IEBAIHN0YXRpYyBzaXplX3Qg
cGFnZXNpemUgPSAwOwogLy8gRm9yIDIuMiBrZXJuZWxzLCBpdCBsb29rcyBsaWtlIHRoZSBzYnJr
IGFkZHJlc3Mgc3BhY2UgKDUwME1CaXNoKSBhbmQKIC8vIHRoZSBtbWFwIGFkZHJlc3Mgc3BhY2Ug
KDEzMDBNQmlzaCkgYXJlIGRpc2pvaW50LCBzbyB3ZSBuZWVkIGJvdGggYWxsb2NhdG9ycwogLy8g
dG8gZ2V0IGFzIG11Y2ggdmlydHVhbCBtZW1vcnkgYXMgcG9zc2libGUuCi1zdGF0aWMgYm9vbCB1
c2VfZGV2bWVtID0gdHJ1ZTsKLXN0YXRpYyBib29sIHVzZV9zYnJrID0gdHJ1ZTsKK3N0YXRpYyBi
b29sIHVzZV9kZXZtZW0gPSBmYWxzZTsKK3N0YXRpYyBib29sIHVzZV9zYnJrID0gZmFsc2U7CiBz
dGF0aWMgYm9vbCB1c2VfbW1hcCA9IHRydWU7CiAKIC8vIEZsYWdzIHRvIGtlZXAgdXMgZnJvbSBy
ZXRyeWluZyBhbGxvY2F0b3JzIHRoYXQgZmFpbGVkLgpJbmRleDogV2ViQ29yZS9DaGFuZ2VMb2cK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUvQ2hhbmdlTG9nLHYKcmV0cmll
dmluZyByZXZpc2lvbiAxLjE4MQpkaWZmIC11IC1wIC1yMS4xODEgV2ViQ29yZS9DaGFuZ2VMb2cK
LS0tIFdlYkNvcmUvQ2hhbmdlTG9nCTIgT2N0IDIwMDUgMTk6NTE6MTkgLTAwMDAJMS4xODEKKysr
IFdlYkNvcmUvQ2hhbmdlTG9nCTMgT2N0IDIwMDUgMDQ6MjI6NTAgLTAwMDAKQEAgLTEsMyArMSwz
MjMgQEAKKzIwMDUtMDktMjggIE1hY2llaiBTdGFjaG93aWFrICA8bWpzQGFwcGxlLmNvbT4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAtIHVzZSBmYXN0
TWFsbG9jIGZvciBldmVyeXRoaW5nIC0gaXQgbm93IGdldHMgYXBwbGllZCB0byBhbGwgbmV3L2Rl
bGV0ZSBhbGxvY2F0aW9ucworICAgICAgICB2aWEgYSBwcml2YXRlIGlubGluZSBvcGVyYXRvciBu
ZXcgdGhhdCBpcyBub3cgaW5jbHVkZWQgaW50byBldmVyeSBmaWxlIHZpYSBjb25maWcuaAorCisg
ICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdl
YkNvcmVQcmVmaXguaDoKKyAgICAgICAgKiBraHRtbC9jc3MvY3NzX2Jhc2UuY3BwOgorICAgICAg
ICAqIGtodG1sL2Nzcy9jc3NfYmFzZS5oOgorICAgICAgICAqIGtodG1sL2Nzcy9jc3NfY29tcHV0
ZWRzdHlsZS5jcHA6CisgICAgICAgICoga2h0bWwvY3NzL2Nzc19ydWxlaW1wbC5jcHA6CisgICAg
ICAgICoga2h0bWwvY3NzL2Nzc19zdHlsZXNoZWV0aW1wbC5jcHA6CisgICAgICAgICoga2h0bWwv
Y3NzL2Nzc192YWx1ZWltcGwuY3BwOgorICAgICAgICAqIGtodG1sL2Nzcy9jc3NfdmFsdWVpbXBs
Lmg6CisgICAgICAgICoga2h0bWwvY3NzL2Nzc2hlbHBlci5jcHA6CisgICAgICAgICoga2h0bWwv
Y3NzL2Nzc3BhcnNlci5jcHA6CisgICAgICAgIChWYWx1ZUxpc3Q6OlZhbHVlTGlzdCk6CisgICAg
ICAgIChWYWx1ZUxpc3Q6On5WYWx1ZUxpc3QpOgorICAgICAgICAoVmFsdWVMaXN0OjphZGRWYWx1
ZSk6CisgICAgICAgIChDU1NQYXJzZXI6OkNTU1BhcnNlcik6CisgICAgICAgIChDU1NQYXJzZXI6
On5DU1NQYXJzZXIpOgorICAgICAgICAoQ1NTUGFyc2VyOjpzZXR1cFBhcnNlcik6CisgICAgICAg
IChDU1NQYXJzZXI6OmFkZFByb3BlcnR5KToKKyAgICAgICAgKiBraHRtbC9jc3MvY3Nzc3R5bGVz
ZWxlY3Rvci5jcHA6CisgICAgICAgICoga2h0bWwvY3NzL2Nzc3N0eWxlc2VsZWN0b3IuaDoKKyAg
ICAgICAgKiBraHRtbC9kb20vZG9tMl9ldmVudHMuY3BwOgorICAgICAgICAqIGtodG1sL2RvbS9k
b20yX3RyYXZlcnNhbC5jcHA6CisgICAgICAgICoga2h0bWwvZG9tL2RvbV9taXNjLmNwcDoKKyAg
ICAgICAgKiBraHRtbC9kb20vZG9tX3N0cmluZy5jcHA6CisgICAgICAgICoga2h0bWwvZWNtYS9k
b21wYXJzZXIuY3BwOgorICAgICAgICAqIGtodG1sL2VjbWEva2pzX2JpbmRpbmcuY3BwOgorICAg
ICAgICAqIGtodG1sL2VjbWEva2pzX2Nzcy5jcHA6CisgICAgICAgICoga2h0bWwvZWNtYS9ranNf
ZG9tLmNwcDoKKyAgICAgICAgKiBraHRtbC9lY21hL2tqc19ldmVudHMuY3BwOgorICAgICAgICAq
IGtodG1sL2VjbWEva2pzX2h0bWwuY3BwOgorICAgICAgICAoS0pTOjpLSlM6OkNvbnRleHQyREZ1
bmN0aW9uOjpjYWxsQXNGdW5jdGlvbik6CisgICAgICAgIChLSlM6OkdyYWRpZW50Ojp+R3JhZGll
bnQpOgorICAgICAgICAoS0pTOjpHcmFkaWVudDo6YWRkQ29sb3JTdG9wKToKKyAgICAgICAgKEtK
Uzo6R3JhZGllbnQ6OmNvbG9yU3RvcHMpOgorICAgICAgICAqIGtodG1sL2VjbWEva2pzX25hdmln
YXRvci5jcHA6CisgICAgICAgICoga2h0bWwvZWNtYS9ranNfcHJveHkuY3BwOgorICAgICAgICAq
IGtodG1sL2VjbWEva2pzX3JhbmdlLmNwcDoKKyAgICAgICAgKiBraHRtbC9lY21hL2tqc190cmF2
ZXJzYWwuY3BwOgorICAgICAgICAqIGtodG1sL2VjbWEva2pzX3ZpZXdzLmNwcDoKKyAgICAgICAg
KiBraHRtbC9lY21hL2tqc193aW5kb3cuY3BwOgorICAgICAgICAqIGtodG1sL2VjbWEveG1saHR0
cHJlcXVlc3QuY3BwOgorICAgICAgICAqIGtodG1sL2VjbWEveG1sc2VyaWFsaXplci5jcHA6Cisg
ICAgICAgICoga2h0bWwvZWRpdGluZy9TZWxlY3Rpb25Db250cm9sbGVyLmNwcDoKKyAgICAgICAg
KiBraHRtbC9lZGl0aW5nL2FwcGVuZF9ub2RlX2NvbW1hbmQuY3BwOgorICAgICAgICAqIGtodG1s
L2VkaXRpbmcvYXBwbHlfc3R5bGVfY29tbWFuZC5jcHA6CisgICAgICAgICoga2h0bWwvZWRpdGlu
Zy9icmVha19ibG9ja3F1b3RlX2NvbW1hbmQuY3BwOgorICAgICAgICAqIGtodG1sL2VkaXRpbmcv
Y29tcG9zaXRlX2VkaXRfY29tbWFuZC5jcHA6CisgICAgICAgICoga2h0bWwvZWRpdGluZy9kZWxl
dGVfZnJvbV90ZXh0X25vZGVfY29tbWFuZC5jcHA6CisgICAgICAgICoga2h0bWwvZWRpdGluZy9k
ZWxldGVfc2VsZWN0aW9uX2NvbW1hbmQuY3BwOgorICAgICAgICAqIGtodG1sL2VkaXRpbmcvZWRp
dF9jb21tYW5kLmNwcDoKKyAgICAgICAgKiBraHRtbC9lZGl0aW5nL2h0bWxfaW50ZXJjaGFuZ2Uu
Y3BwOgorICAgICAgICAqIGtodG1sL2VkaXRpbmcvaHRtbGVkaXRpbmcuY3BwOgorICAgICAgICAq
IGtodG1sL2VkaXRpbmcvaW5zZXJ0X2ludG9fdGV4dF9ub2RlX2NvbW1hbmQuY3BwOgorICAgICAg
ICAqIGtodG1sL2VkaXRpbmcvaW5zZXJ0X2xpbmVfYnJlYWtfY29tbWFuZC5jcHA6CisgICAgICAg
ICoga2h0bWwvZWRpdGluZy9pbnNlcnRfbm9kZV9iZWZvcmVfY29tbWFuZC5jcHA6CisgICAgICAg
ICoga2h0bWwvZWRpdGluZy9pbnNlcnRfcGFyYWdyYXBoX3NlcGFyYXRvcl9jb21tYW5kLmNwcDoK
KyAgICAgICAgKiBraHRtbC9lZGl0aW5nL2luc2VydF90ZXh0X2NvbW1hbmQuY3BwOgorICAgICAg
ICAqIGtodG1sL2VkaXRpbmcvam9pbl90ZXh0X25vZGVzX2NvbW1hbmQuY3BwOgorICAgICAgICAq
IGtodG1sL2VkaXRpbmcvanNlZGl0aW5nLmNwcDoKKyAgICAgICAgKiBraHRtbC9lZGl0aW5nL21h
cmt1cC5jcHA6CisgICAgICAgICoga2h0bWwvZWRpdGluZy9tZXJnZV9pZGVudGljYWxfZWxlbWVu
dHNfY29tbWFuZC5jcHA6CisgICAgICAgICoga2h0bWwvZWRpdGluZy9tb3ZlX3NlbGVjdGlvbl9j
b21tYW5kLmNwcDoKKyAgICAgICAgKiBraHRtbC9lZGl0aW5nL3JlYmFsYW5jZV93aGl0ZXNwYWNl
X2NvbW1hbmQuY3BwOgorICAgICAgICAqIGtodG1sL2VkaXRpbmcvcmVtb3ZlX2Nzc19wcm9wZXJ0
eV9jb21tYW5kLmNwcDoKKyAgICAgICAgKiBraHRtbC9lZGl0aW5nL3JlbW92ZV9ub2RlX2F0dHJp
YnV0ZV9jb21tYW5kLmNwcDoKKyAgICAgICAgKiBraHRtbC9lZGl0aW5nL3JlbW92ZV9ub2RlX2Nv
bW1hbmQuY3BwOgorICAgICAgICAqIGtodG1sL2VkaXRpbmcvcmVtb3ZlX25vZGVfcHJlc2Vydmlu
Z19jaGlsZHJlbl9jb21tYW5kLmNwcDoKKyAgICAgICAgKiBraHRtbC9lZGl0aW5nL3JlcGxhY2Vf
c2VsZWN0aW9uX2NvbW1hbmQuY3BwOgorICAgICAgICAqIGtodG1sL2VkaXRpbmcvc2V0X25vZGVf
YXR0cmlidXRlX2NvbW1hbmQuY3BwOgorICAgICAgICAqIGtodG1sL2VkaXRpbmcvc3BsaXRfZWxl
bWVudF9jb21tYW5kLmNwcDoKKyAgICAgICAgKiBraHRtbC9lZGl0aW5nL3NwbGl0X3RleHRfbm9k
ZV9jb21tYW5kLmNwcDoKKyAgICAgICAgKiBraHRtbC9lZGl0aW5nL3NwbGl0X3RleHRfbm9kZV9j
b250YWluaW5nX2VsZW1lbnQuY3BwOgorICAgICAgICAqIGtodG1sL2VkaXRpbmcvdHlwaW5nX2Nv
bW1hbmQuY3BwOgorICAgICAgICAqIGtodG1sL2VkaXRpbmcvdmlzaWJsZV9wb3NpdGlvbi5jcHA6
CisgICAgICAgICoga2h0bWwvZWRpdGluZy92aXNpYmxlX3JhbmdlLmNwcDoKKyAgICAgICAgKiBr
aHRtbC9lZGl0aW5nL3Zpc2libGVfdGV4dC5jcHA6CisgICAgICAgIChraHRtbDo6Q2lyY3VsYXJT
ZWFyY2hCdWZmZXI6On5DaXJjdWxhclNlYXJjaEJ1ZmZlcik6CisgICAgICAgIChraHRtbDo6Q2ly
Y3VsYXJTZWFyY2hCdWZmZXI6OkNpcmN1bGFyU2VhcmNoQnVmZmVyKToKKyAgICAgICAgKiBraHRt
bC9lZGl0aW5nL3Zpc2libGVfdW5pdHMuY3BwOgorICAgICAgICAqIGtodG1sL2VkaXRpbmcvd3Jh
cF9jb250ZW50c19pbl9kdW1teV9zcGFuX2NvbW1hbmQuY3BwOgorICAgICAgICAqIGtodG1sL2h0
bWwvaHRtbF9iYXNlaW1wbC5jcHA6CisgICAgICAgICoga2h0bWwvaHRtbC9odG1sX2Jsb2NraW1w
bC5jcHA6CisgICAgICAgICoga2h0bWwvaHRtbC9odG1sX2NhbnZhc2ltcGwuY3BwOgorICAgICAg
ICAqIGtodG1sL2h0bWwvaHRtbF9kb2N1bWVudGltcGwuY3BwOgorICAgICAgICAqIGtodG1sL2h0
bWwvaHRtbF9lbGVtZW50aW1wbC5jcHA6CisgICAgICAgICoga2h0bWwvaHRtbC9odG1sX2Zvcm1p
bXBsLmNwcDoKKyAgICAgICAgKiBraHRtbC9odG1sL2h0bWxfaGVhZGltcGwuY3BwOgorICAgICAg
ICAqIGtodG1sL2h0bWwvaHRtbF9pbWFnZWltcGwuY3BwOgorICAgICAgICAqIGtodG1sL2h0bWwv
aHRtbF9pbmxpbmVpbXBsLmNwcDoKKyAgICAgICAgKiBraHRtbC9odG1sL2h0bWxfbGlzdGltcGwu
Y3BwOgorICAgICAgICAqIGtodG1sL2h0bWwvaHRtbF9taXNjaW1wbC5jcHA6CisgICAgICAgICog
a2h0bWwvaHRtbC9odG1sX29iamVjdGltcGwuY3BwOgorICAgICAgICAqIGtodG1sL2h0bWwvaHRt
bF90YWJsZWltcGwuY3BwOgorICAgICAgICAqIGtodG1sL2h0bWwvaHRtbGZhY3RvcnkuY3BwOgor
ICAgICAgICAqIGtodG1sL2h0bWwvaHRtbG5hbWVzLmNwcDoKKyAgICAgICAgKiBraHRtbC9odG1s
L2h0bWxwYXJzZXIuY3BwOgorICAgICAgICAqIGtodG1sL2h0bWwvaHRtbHRva2VuaXplci5jcHA6
CisgICAgICAgIChraHRtbDo6SFRNTFRva2VuaXplcjo6ZW5sYXJnZUJ1ZmZlcik6CisgICAgICAg
IChraHRtbDo6SFRNTFRva2VuaXplcjo6ZW5sYXJnZVNjcmlwdEJ1ZmZlcik6CisgICAgICAgICog
a2h0bWwva2h0bWxfZXZlbnRzLmNwcDoKKyAgICAgICAgKiBraHRtbC9raHRtbF9wYXJ0LmNwcDoK
KyAgICAgICAgKiBraHRtbC9raHRtbHZpZXcuY3BwOgorICAgICAgICAqIGtodG1sL21pc2MvYXJl
bmEuY3BwOgorICAgICAgICAqIGtodG1sL21pc2MvYXJlbmEuaDoKKyAgICAgICAgKiBraHRtbC9t
aXNjL2RlY29kZXIuY3BwOgorICAgICAgICAqIGtodG1sL21pc2MvZm9ybWRhdGEuY3BwOgorICAg
ICAgICAqIGtodG1sL21pc2MvaGVscGVyLmNwcDoKKyAgICAgICAgKiBraHRtbC9taXNjL2xvYWRl
ci5jcHA6CisgICAgICAgICoga2h0bWwvbWlzYy9zdHJpbmdpdC5jcHA6CisgICAgICAgICoga2h0
bWwvcmVuZGVyaW5nL2JpZGkuY3BwOgorICAgICAgICAqIGtodG1sL3JlbmRlcmluZy9icmVha19s
aW5lcy5jcHA6CisgICAgICAgICoga2h0bWwvcmVuZGVyaW5nL2ZvbnQuY3BwOgorICAgICAgICAq
IGtodG1sL3JlbmRlcmluZy9yZW5kZXJfYXJlbmEuY3BwOgorICAgICAgICAqIGtodG1sL3JlbmRl
cmluZy9yZW5kZXJfYmxvY2suY3BwOgorICAgICAgICAqIGtodG1sL3JlbmRlcmluZy9yZW5kZXJf
Ym94LmNwcDoKKyAgICAgICAgKiBraHRtbC9yZW5kZXJpbmcvcmVuZGVyX2JyLmNwcDoKKyAgICAg
ICAgKiBraHRtbC9yZW5kZXJpbmcvcmVuZGVyX2NhbnZhcy5jcHA6CisgICAgICAgICoga2h0bWwv
cmVuZGVyaW5nL3JlbmRlcl9jYW52YXNpbWFnZS5jcHA6CisgICAgICAgIChSZW5kZXJDYW52YXNJ
bWFnZTo6flJlbmRlckNhbnZhc0ltYWdlKToKKyAgICAgICAgKFJlbmRlckNhbnZhc0ltYWdlOjpj
cmVhdGVEcmF3aW5nQ29udGV4dCk6CisgICAgICAgICoga2h0bWwvcmVuZGVyaW5nL3JlbmRlcl9j
b250YWluZXIuY3BwOgorICAgICAgICAqIGtodG1sL3JlbmRlcmluZy9yZW5kZXJfZmxleGJveC5j
cHA6CisgICAgICAgICoga2h0bWwvcmVuZGVyaW5nL3JlbmRlcl9mbG93LmNwcDoKKyAgICAgICAg
KiBraHRtbC9yZW5kZXJpbmcvcmVuZGVyX2Zvcm0uY3BwOgorICAgICAgICAqIGtodG1sL3JlbmRl
cmluZy9yZW5kZXJfZnJhbWVzLmNwcDoKKyAgICAgICAgKiBraHRtbC9yZW5kZXJpbmcvcmVuZGVy
X2ltYWdlLmNwcDoKKyAgICAgICAgKiBraHRtbC9yZW5kZXJpbmcvcmVuZGVyX2lubGluZS5jcHA6
CisgICAgICAgICoga2h0bWwvcmVuZGVyaW5nL3JlbmRlcl9sYXllci5jcHA6CisgICAgICAgICog
a2h0bWwvcmVuZGVyaW5nL3JlbmRlcl9saW5lLmNwcDoKKyAgICAgICAgKiBraHRtbC9yZW5kZXJp
bmcvcmVuZGVyX2xpc3QuY3BwOgorICAgICAgICAqIGtodG1sL3JlbmRlcmluZy9yZW5kZXJfb2Jq
ZWN0LmNwcDoKKyAgICAgICAgKiBraHRtbC9yZW5kZXJpbmcvcmVuZGVyX3JlcGxhY2VkLmNwcDoK
KyAgICAgICAgKiBraHRtbC9yZW5kZXJpbmcvcmVuZGVyX3N0eWxlLmNwcDoKKyAgICAgICAgKiBr
aHRtbC9yZW5kZXJpbmcvcmVuZGVyX3N0eWxlLmg6CisgICAgICAgICoga2h0bWwvcmVuZGVyaW5n
L3JlbmRlcl90YWJsZS5jcHA6CisgICAgICAgICoga2h0bWwvcmVuZGVyaW5nL3JlbmRlcl90ZXh0
LmNwcDoKKyAgICAgICAgKiBraHRtbC9yZW5kZXJpbmcvcmVuZGVyX3RoZW1lLmNwcDoKKyAgICAg
ICAgKiBraHRtbC9yZW5kZXJpbmcvcmVuZGVyX3RoZW1lX21hYy5tbToKKyAgICAgICAgKiBraHRt
bC9yZW5kZXJpbmcvdGFibGVfbGF5b3V0LmNwcDoKKyAgICAgICAgKiBraHRtbC94YmwveGJsX2Jp
bmRpbmcuY3BwOgorICAgICAgICAqIGtodG1sL3hibC94YmxfYmluZGluZ19tYW5hZ2VyLmNwcDoK
KyAgICAgICAgKiBraHRtbC94YmwveGJsX2RvY2ltcGwuY3BwOgorICAgICAgICAqIGtodG1sL3hi
bC94YmxfcHJvdG9iaW5kaW5nLmNwcDoKKyAgICAgICAgKiBraHRtbC94YmwveGJsX3Byb3RvaGFu
ZGxlci5jcHA6CisgICAgICAgICoga2h0bWwveGJsL3hibF9wcm90b2ltcGxlbWVudGF0aW9uLmNw
cDoKKyAgICAgICAgKiBraHRtbC94YmwveGJsX3Rva2VuaXplci5jcHA6CisgICAgICAgICoga2h0
bWwveG1sL0V2ZW50TmFtZXMuY3BwOgorICAgICAgICAqIGtodG1sL3htbC9kb20yX2V2ZW50c2lt
cGwuY3BwOgorICAgICAgICAqIGtodG1sL3htbC9kb20yX2V2ZW50c2ltcGwuaDoKKyAgICAgICAg
KiBraHRtbC94bWwvZG9tMl9yYW5nZWltcGwuY3BwOgorICAgICAgICAqIGtodG1sL3htbC9kb20y
X3JhbmdlaW1wbC5oOgorICAgICAgICAqIGtodG1sL3htbC9kb20yX3RyYXZlcnNhbGltcGwuY3Bw
OgorICAgICAgICAqIGtodG1sL3htbC9kb20yX3RyYXZlcnNhbGltcGwuaDoKKyAgICAgICAgKiBr
aHRtbC94bWwvZG9tMl92aWV3c2ltcGwuY3BwOgorICAgICAgICAqIGtodG1sL3htbC9kb20yX3Zp
ZXdzaW1wbC5oOgorICAgICAgICAqIGtodG1sL3htbC9kb21fYXRvbWljc3RyaW5nLmNwcDoKKyAg
ICAgICAgKiBraHRtbC94bWwvZG9tX2RvY2ltcGwuY3BwOgorICAgICAgICAqIGtodG1sL3htbC9k
b21fZG9jaW1wbC5oOgorICAgICAgICAqIGtodG1sL3htbC9kb21fZWxlbWVudGltcGwuY3BwOgor
ICAgICAgICAqIGtodG1sL3htbC9kb21fZWxlbWVudGltcGwuaDoKKyAgICAgICAgKiBraHRtbC94
bWwvZG9tX25vZGVpbXBsLmNwcDoKKyAgICAgICAgKiBraHRtbC94bWwvZG9tX25vZGVpbXBsLmg6
CisgICAgICAgICoga2h0bWwveG1sL2RvbV9wb3NpdGlvbi5jcHA6CisgICAgICAgICoga2h0bWwv
eG1sL2RvbV9xbmFtZS5jcHA6CisgICAgICAgICoga2h0bWwveG1sL2RvbV9zdHJpbmdpbXBsLmNw
cDoKKyAgICAgICAgKiBraHRtbC94bWwvZG9tX3N0cmluZ2ltcGwuaDoKKyAgICAgICAgKiBraHRt
bC94bWwvZG9tX3RleHRpbXBsLmNwcDoKKyAgICAgICAgKiBraHRtbC94bWwvZG9tX3htbGltcGwu
Y3BwOgorICAgICAgICAqIGtodG1sL3htbC94bWxfdG9rZW5pemVyLmNwcDoKKyAgICAgICAgKiBr
aHRtbC94c2wveHNsX3N0eWxlc2hlZXRpbXBsLmNwcDoKKyAgICAgICAgKiBraHRtbC94c2wveHNs
dF9wcm9jZXNzb3JpbXBsLmNwcDoKKyAgICAgICAgKiBrd3EvRE9NLUNTUy5tbToKKyAgICAgICAg
KiBrd3EvRE9NLm1tOgorICAgICAgICAqIGt3cS9ET01FdmVudHMubW06CisgICAgICAgICoga3dx
L0RPTUhUTUwubW06CisgICAgICAgICoga3dxL0RPTUludGVybmFsLm1tOgorICAgICAgICAoRE9N
U3RyaW5nOjpET01TdHJpbmcpOgorICAgICAgICAqIGt3cS9ET01VdGlsaXR5Lm1tOgorICAgICAg
ICAqIGt3cS9ET01WaWV3cy5tbToKKyAgICAgICAgKiBrd3EvS1dRQWNjT2JqZWN0Lm1tOgorICAg
ICAgICAqIGt3cS9LV1FBY2NPYmplY3RDYWNoZS5tbToKKyAgICAgICAgKiBrd3EvS1dRQXBwbGlj
YXRpb24ubW06CisgICAgICAgICoga3dxL0tXUUFycmF5SW1wbC5oOgorICAgICAgICAqIGt3cS9L
V1FBcnJheUltcGwubW06CisgICAgICAgICoga3dxL0tXUUJ1ZmZlci5tbToKKyAgICAgICAgKiBr
d3EvS1dRQnV0dG9uLm1tOgorICAgICAgICAqIGt3cS9LV1FDU3RyaW5nLm1tOgorICAgICAgICAq
IGt3cS9LV1FDaGFyc2V0cy5tbToKKyAgICAgICAgKiBrd3EvS1dRQ2xpcGJvYXJkLm1tOgorICAg
ICAgICAqIGt3cS9LV1FDb2xsZWN0aW9uLm1tOgorICAgICAgICAqIGt3cS9LV1FDb2xvci5tbToK
KyAgICAgICAgKiBrd3EvS1dRQ29tYm9Cb3gubW06CisgICAgICAgICoga3dxL0tXUUN1cnNvci5t
bToKKyAgICAgICAgKiBrd3EvS1dRRGF0ZVRpbWUubW06CisgICAgICAgICoga3dxL0tXUURpY3RJ
bXBsLm1tOgorICAgICAgICAqIGt3cS9LV1FFZGl0Q29tbWFuZC5tbToKKyAgICAgICAgKiBrd3Ev
S1dRRXZlbnQubW06CisgICAgICAgICoga3dxL0tXUUV4Y2VwdGlvbnMubW06CisgICAgICAgICog
a3dxL0tXUUZpbGUubW06CisgICAgICAgICoga3dxL0tXUUZpbGVCdXR0b24ubW06CisgICAgICAg
ICoga3dxL0tXUUZvbnQubW06CisgICAgICAgICoga3dxL0tXUUZvbnRGYW1pbHkuaDoKKyAgICAg
ICAgKiBrd3EvS1dRRm9udEZhbWlseS5tbToKKyAgICAgICAgKiBrd3EvS1dRRm9udE1ldHJpY3Mu
bW06CisgICAgICAgICoga3dxL0tXUUZvcm1EYXRhLm1tOgorICAgICAgICAqIGt3cS9LV1FGcmFt
ZS5tbToKKyAgICAgICAgKiBrd3EvS1dRR2xvYmFsLm1tOgorICAgICAgICAqIGt3cS9LV1FHdWFy
ZGVkUHRyLm1tOgorICAgICAgICAqIGt3cS9LV1FLQ2hhcnNldHMubW06CisgICAgICAgICoga3dx
L0tXUUtDb25maWdCYXNlLm1tOgorICAgICAgICAqIGt3cS9LV1FLQ29va2llSmFyLm1tOgorICAg
ICAgICAqIGt3cS9LV1FLQ3Vyc29yLm1tOgorICAgICAgICAqIGt3cS9LV1FLR2xvYmFsLm1tOgor
ICAgICAgICAqIGt3cS9LV1FLR2xvYmFsU2V0dGluZ3MubW06CisgICAgICAgICoga3dxL0tXUUtI
VE1MRmFjdG9yeS5tbToKKyAgICAgICAgKiBrd3EvS1dRS0hUTUxQYXJ0LmNwcDoKKyAgICAgICAg
KiBrd3EvS1dRS0hUTUxQYXJ0Lm1tOgorICAgICAgICAqIGt3cS9LV1FLSFRNTFBhcnRCcm93c2Vy
RXh0ZW5zaW9uLm1tOgorICAgICAgICAqIGt3cS9LV1FLSFRNTFZpZXcubW06CisgICAgICAgICog
a3dxL0tXUUtIaXN0b3J5UHJvdmlkZXIubW06CisgICAgICAgICoga3dxL0tXUUtKYXZhQXBwbGV0
V2lkZ2V0Lm1tOgorICAgICAgICAqIGt3cS9LV1FLSm9iLm1tOgorICAgICAgICAqIGt3cS9LV1FL
Sm9iQ2xhc3Nlcy5tbToKKyAgICAgICAgKiBrd3EvS1dRS0xvY2FsZS5tbToKKyAgICAgICAgKiBr
d3EvS1dRS1BhcnRzQnJvd3NlckludGVyZmFjZS5tbToKKyAgICAgICAgKiBrd3EvS1dRS1BhcnRz
RXZlbnQubW06CisgICAgICAgICoga3dxL0tXUUtQYXJ0c1BhcnQubW06CisgICAgICAgICoga3dx
L0tXUUtTU0xLZXlHZW4ubW06CisgICAgICAgICoga3dxL0tXUUtTdGFuZGFyZERpcnMubW06Cisg
ICAgICAgICoga3dxL0tXUUtTdHJpbmdIYW5kbGVyLm1tOgorICAgICAgICAqIGt3cS9LV1FLVVJM
Lm1tOgorICAgICAgICAoS1VSTDo6S1VSTCk6CisgICAgICAgIChLVVJMOjpkZWNvZGVfc3RyaW5n
KToKKyAgICAgICAgKEtVUkw6OnBhcnNlKToKKyAgICAgICAgKEtVUkw6OmVuY29kZV9zdHJpbmcp
OgorICAgICAgICAoZW5jb2RlUmVsYXRpdmVTdHJpbmcpOgorICAgICAgICAqIGt3cS9LV1FLV2lu
Lm1tOgorICAgICAgICAqIGt3cS9LV1FLV2luTW9kdWxlLm1tOgorICAgICAgICAqIGt3cS9LV1FM
YWJlbC5tbToKKyAgICAgICAgKiBrd3EvS1dRTGluZUVkaXQubW06CisgICAgICAgICoga3dxL0tX
UUxpc3RCb3gubW06CisgICAgICAgICoga3dxL0tXUUxpc3RJbXBsLm1tOgorICAgICAgICAqIGt3
cS9LV1FMb2FkZXIubW06CisgICAgICAgIChLV1FJc1Jlc3BvbnNlVVJMRXF1YWxUb1VSTCk6Cisg
ICAgICAgICoga3dxL0tXUU1hcEltcGwuaDoKKyAgICAgICAgKiBrd3EvS1dRTWFwSW1wbC5tbToK
KyAgICAgICAgKiBrd3EvS1dRTW92aWUubW06CisgICAgICAgICoga3dxL0tXUU9iamVjdC5tbToK
KyAgICAgICAgKiBrd3EvS1dRUGFnZVN0YXRlLm1tOgorICAgICAgICAqIGt3cS9LV1FQYWludERl
dmljZU1ldHJpY3MubW06CisgICAgICAgICoga3dxL0tXUVBhaW50ZXIubW06CisgICAgICAgICog
a3dxL0tXUVBhbGV0dGUubW06CisgICAgICAgICoga3dxL0tXUVBlbi5tbToKKyAgICAgICAgKiBr
d3EvS1dRUGl4bWFwLm1tOgorICAgICAgICAqIGt3cS9LV1FQb2ludC5tbToKKyAgICAgICAgKiBr
d3EvS1dRUG9pbnRBcnJheS5tbToKKyAgICAgICAgKiBrd3EvS1dRUHRyRGljdEltcGwubW06Cisg
ICAgICAgICoga3dxL0tXUVB1c2hCdXR0b24ubW06CisgICAgICAgICoga3dxL0tXUVJlY3QubW06
CisgICAgICAgICoga3dxL0tXUVJlZ0V4cC5tbToKKyAgICAgICAgKiBrd3EvS1dRUmVnaW9uLm1t
OgorICAgICAgICAqIGt3cS9LV1FSZW5kZXJUcmVlRGVidWcuY3BwOgorICAgICAgICAqIGt3cS9L
V1FSZXNvdXJjZUxvYWRlci5tbToKKyAgICAgICAgKiBrd3EvS1dRU2Nyb2xsQmFyLm1tOgorICAg
ICAgICAqIGt3cS9LV1FTY3JvbGxWaWV3Lm1tOgorICAgICAgICAqIGt3cS9LV1FTaWduYWwubW06
CisgICAgICAgICoga3dxL0tXUVNpZ25hbFN0dWJzLm1tOgorICAgICAgICAqIGt3cS9LV1FTaXpl
Lm1tOgorICAgICAgICAqIGt3cS9LV1FTbGlkZXIubW06CisgICAgICAgICoga3dxL0tXUVNsb3Qu
bW06CisgICAgICAgICoga3dxL0tXUVN0cmluZy5oOgorICAgICAgICAqIGt3cS9LV1FTdHJpbmcu
bW06CisgICAgICAgIChBTExPQ19DSEFSKToKKyAgICAgICAgKFJFQUxMT0NfQ0hBUik6CisgICAg
ICAgIChERUxFVEVfQ0hBUik6CisgICAgICAgIChBTExPQ19RQ0hBUik6CisgICAgICAgIChSRUFM
TE9DX1FDSEFSKToKKyAgICAgICAgKERFTEVURV9RQ0hBUik6CisgICAgICAgIChfcHJpbnRRU3Ry
aW5nQWxsb2NhdGlvblN0YXRpc3RpY3MpOgorICAgICAgICAoYWxsb2NhdGVIYW5kbGUpOgorICAg
ICAgICAoS1dRU3RyaW5nRGF0YTo6b3BlcmF0b3IgbmV3KToKKyAgICAgICAgKEtXUVN0cmluZ0Rh
dGE6Om9wZXJhdG9yIGRlbGV0ZSk6CisgICAgICAgIChmcmVlSGFuZGxlKToKKyAgICAgICAgKiBr
d3EvS1dRU3RyaW5nTGlzdC5tbToKKyAgICAgICAgKiBrd3EvS1dRU3R5bGUubW06CisgICAgICAg
ICoga3dxL0tXUVRleHRBcmVhLm1tOgorICAgICAgICAqIGt3cS9LV1FUZXh0Q29kZWMubW06Cisg
ICAgICAgICoga3dxL0tXUVRleHRFZGl0Lm1tOgorICAgICAgICAqIGt3cS9LV1FUZXh0RmllbGQu
bW06CisgICAgICAgICoga3dxL0tXUVRleHRTdHJlYW0ubW06CisgICAgICAgICoga3dxL0tXUVRl
eHRVdGlsaXRpZXMubW06CisgICAgICAgICoga3dxL0tXUVRpbWVyLm1tOgorICAgICAgICAqIGt3
cS9LV1FWYWx1ZUxpc3RJbXBsLmg6CisgICAgICAgICoga3dxL0tXUVZhbHVlTGlzdEltcGwubW06
CisgICAgICAgICoga3dxL0tXUVZhcmlhbnQubW06CisgICAgICAgICoga3dxL0tXUVZlY3Rvcklt
cGwubW06CisgICAgICAgIChLV1FWZWN0b3JJbXBsOjpLV1FWZWN0b3JJbXBsKToKKyAgICAgICAg
KEtXUVZlY3RvckltcGw6On5LV1FWZWN0b3JJbXBsKToKKyAgICAgICAgKEtXUVZlY3RvckltcGw6
OmNsZWFyKToKKyAgICAgICAgKEtXUVZlY3RvckltcGw6OnJlc2l6ZSk6CisgICAgICAgIChLV1FW
ZWN0b3JJbXBsOjphc3NpZ24pOgorICAgICAgICAqIGt3cS9LV1FXTWF0cml4Lm1tOgorICAgICAg
ICAqIGt3cS9LV1FXaWRnZXQubW06CisgICAgICAgICoga3dxL0tXUVdpbmRvd1dpZGdldC5tbToK
KyAgICAgICAgKiBrd3EvV2ViQ29yZUJyaWRnZS5tbToKKyAgICAgICAgKiBrd3EvV2ViQ29yZUNh
Y2hlLm1tOgorICAgICAgICAqIGt3cS9XZWJDb3JlRW5jb2RpbmdzLm1tOgorICAgICAgICAqIGt3
cS9XZWJDb3JlSmF2YVNjcmlwdC5tbToKKyAgICAgICAgKiBrd3EvV2ViQ29yZVNjcmlwdERlYnVn
Z2VyLm1tOgorICAgICAgICAqIGt3cS9XZWJDb3JlU2V0dGluZ3MubW06CisgICAgICAgICoga3dx
L1dlYkNvcmVUZXh0UmVuZGVyZXJGYWN0b3J5Lm1tOgorICAgICAgICAqIGt3cS9jYW4tY29udmVy
dC5tbToKKwogMjAwNS0xMC0wMiAgRXJpYyBTZWlkZWwgIDxlc2VpZGVsQGFwcGxlLmNvbT4KIAog
ICAgICAgICBSZW1vdmluZyB1bnVzZWQgU1ZHIHNvdXJjZSBmaWxlcy4KSW5kZXg6IFdlYkNvcmUv
V2ViQ29yZVByZWZpeC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL1dl
YkNvcmVQcmVmaXguaCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4xNQpkaWZmIC11IC1wIC1yMS4x
NSBXZWJDb3JlL1dlYkNvcmVQcmVmaXguaAotLS0gV2ViQ29yZS9XZWJDb3JlUHJlZml4LmgJMTYg
QXVnIDIwMDUgMTk6MDM6MTEgLTAwMDAJMS4xNQorKysgV2ViQ29yZS9XZWJDb3JlUHJlZml4LmgJ
MyBPY3QgMjAwNSAwNDoyMjo1MCAtMDAwMApAQCAtNjcsMyArNjcsNSBAQAogI2ltcG9ydCA8Q29j
b2EvQ29jb2EuaD4KIAogI2VuZGlmCisKKyNpbmNsdWRlICJjb25maWcuaCIKSW5kZXg6IFdlYkNv
cmUvRm9yd2FyZGluZ0hlYWRlcnMvY29uZmlnLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogV2ViQ29y
ZS9Gb3J3YXJkaW5nSGVhZGVycy9jb25maWcuaApkaWZmIC1OIFdlYkNvcmUvRm9yd2FyZGluZ0hl
YWRlcnMvY29uZmlnLmgKSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvaix2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4zMQpkaWZmIC11
IC1wIC1yMS4zMSBXZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagotLS0g
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJMiBPY3QgMjAwNSAxOTo1
MToyMSAtMDAwMAkxLjMxCisrKyBXZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagkzIE9jdCAyMDA1IDA0OjIyOjUyIC0wMDAwCkBAIC02NSw2ICs2NSw4IEBACiAJCTY1QUM3
OUEyMDgzMUVENkQwMDkzODVDRSAvKiBhcHBlbmRfbm9kZV9jb21tYW5kLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2NUFDNzlBMDA4MzFFRDZEMDA5Mzg1
Q0UgLyogYXBwZW5kX25vZGVfY29tbWFuZC5oICovOyB9OwogCQk2NUFDNzlBOTA4MzFGMDA2MDA5
Mzg1Q0UgLyogYXBwbHlfc3R5bGVfY29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2NUFDNzlBNzA4MzFGMDA2MDA5Mzg1Q0UgLyogYXBwbHlf
c3R5bGVfY29tbWFuZC5jcHAgKi87IH07CiAJCTY1QUM3OUFBMDgzMUYwMDYwMDkzODVDRSAvKiBh
cHBseV9zdHlsZV9jb21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA2NUFDNzlBODA4MzFGMDA2MDA5Mzg1Q0UgLyogYXBwbHlfc3R5bGVfY29tbWFu
ZC5oICovOyB9OworCQk2NUM5N0FGMzA4RUE5MDg4MDBBQ0QyNzMgLyogY29uZmlnLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2NUM5N0FGMjA4RUE5MDg4
MDBBQ0QyNzMgLyogY29uZmlnLmggKi87IH07CisJCTY1Qzk3QUY0MDhFQTkwODgwMEFDRDI3MyAv
KiBjb25maWcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDY1Qzk3QUYyMDhFQTkwODgwMEFDRDI3MyAvKiBjb25maWcuaCAqLzsgfTsKIAkJNjVEQzE2QzQw
ODMxREQ2RjAwMjI3NDRFIC8qIGNvbXBvc2l0ZV9lZGl0X2NvbW1hbmQuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjVEQzE2QzIwODMxREQ2RjAwMjI3
NDRFIC8qIGNvbXBvc2l0ZV9lZGl0X2NvbW1hbmQuY3BwICovOyB9OwogCQk2NURDMTZDNTA4MzFE
RDZGMDAyMjc0NEUgLyogY29tcG9zaXRlX2VkaXRfY29tbWFuZC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjVEQzE2QzMwODMxREQ2RjAwMjI3NDRFIC8q
IGNvbXBvc2l0ZV9lZGl0X2NvbW1hbmQuaCAqLzsgfTsKIAkJN0U2RkVFRDgwODk4NTgyMzAwQzQ0
QzNGIC8qIFdlYkNvcmVTY3JpcHREZWJ1Z2dlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gN0U2RkVFRDYwODk4NTgyMzAwQzQ0QzNGIC8qIFdlYkNvcmVT
Y3JpcHREZWJ1Z2dlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CkBAIC0yNDM5LDYgKzI0NDEsNyBAQAogCQk2NUFDNzlBMDA4MzFFRDZEMDA5Mzg1Q0Ug
LyogYXBwZW5kX25vZGVfY29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1l
ID0gYXBwZW5kX25vZGVfY29tbWFuZC5oOyBwYXRoID0gZWRpdGluZy9hcHBlbmRfbm9kZV9jb21t
YW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTY1QUM3OUE3MDgzMUYwMDYwMDkz
ODVDRSAvKiBhcHBseV9zdHlsZV9jb21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IG5hbWUgPSBhcHBseV9zdHlsZV9jb21tYW5kLmNwcDsgcGF0aCA9IGVkaXRpbmcvYXBw
bHlfc3R5bGVfY29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTY1QUM3
OUE4MDgzMUYwMDYwMDkzODVDRSAvKiBhcHBseV9zdHlsZV9jb21tYW5kLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IG5hbWUgPSBhcHBseV9zdHlsZV9jb21tYW5kLmg7IHBhdGggPSBlZGl0
aW5nL2FwcGx5X3N0eWxlX2NvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
NjVDOTdBRjIwOEVBOTA4ODAwQUNEMjczIC8qIGNvbmZpZy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gY29uZmlnLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTY1
REMxNkMyMDgzMURENkYwMDIyNzQ0RSAvKiBjb21wb3NpdGVfZWRpdF9jb21tYW5kLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBjb21wb3NpdGVfZWRpdF9jb21tYW5k
LmNwcDsgcGF0aCA9IGVkaXRpbmcvY29tcG9zaXRlX2VkaXRfY29tbWFuZC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTY1REMxNkMzMDgzMURENkYwMDIyNzQ0RSAvKiBjb21wb3Np
dGVfZWRpdF9jb21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBjb21w
b3NpdGVfZWRpdF9jb21tYW5kLmg7IHBhdGggPSBlZGl0aW5nL2NvbXBvc2l0ZV9lZGl0X2NvbW1h
bmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNjVGODA2OTcwNTREOUY4NjAwOEJG
Nzc2IC8qIEtXUUV4Y2VwdGlvbnMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3Bw
OyBwYXRoID0gS1dRRXhjZXB0aW9ucy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTYzMTAsNiArNjMxMyw3IEBACiAJCQkJQkM0MTk3OEIwNTkyOTNCRTAwMTYzNDdGIC8qIHhibCAq
LywKIAkJCQlGNTIzRDMyNDAyREU0NDc4MDE4NjM1Q0EgLyogeG1sICovLAogCQkJCUJDMDZGMjQ0
MDZEMThBMzUwMDRBNkZBMyAvKiB4c2wgKi8sCisJCQkJNjVDOTdBRjIwOEVBOTA4ODAwQUNEMjcz
IC8qIGNvbmZpZy5oICovLAogCQkJCUY1MjNEMTUyMDJERTQyQUQwMTg2MzVDQSAvKiBraHRtbF9l
dmVudHMuaCAqLywKIAkJCQlGNTIzRDE1MTAyREU0MkFEMDE4NjM1Q0EgLyoga2h0bWxfZXZlbnRz
LmNwcCAqLywKIAkJCQlGNTIzRDE1NDAyREU0MkFEMDE4NjM1Q0EgLyoga2h0bWxfcGFydC5oICov
LApAQCAtNzI0MCw2ICs3MjQ0LDcgQEAKIAkJCQlCQzE3OThEQTA4OERBNEY4MDA2MDY4QTUgLyog
cmVuZGVyX3RoZW1lX21hYy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0U2RkVFRDgwODk4NTgyMzAw
QzQ0QzNGIC8qIFdlYkNvcmVTY3JpcHREZWJ1Z2dlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM5
ODg1QzQwOEI3RTNEMTAwRTcwN0M0IC8qIEV2ZW50TmFtZXMuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTY1Qzk3QUYzMDhFQTkwODgwMEFDRDI3MyAvKiBjb25maWcuaCBpbiBIZWFkZXJzICovLAogCQkJ
KTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAt
ODEyMiw2ICs4MTI3LDcgQEAKIAkJCQlBOEVBNDM0NzA4RTE0RUFDMDA0QkMzOTYgLyogcmVuZGVy
X2tjYW52YXN3cmFwcGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEVBNDM0OTA4RTE0RUFDMDA0
QkMzOTYgLyogZG9tX2tkb21ub2RldHJlZXdyYXBwZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4
RUE0MzRCMDhFMTRFQUMwMDRCQzM5NiAvKiBkb21fa2RvbWRvY3VtZW50d3JhcHBlci5oIGluIEhl
YWRlcnMgKi8sCisJCQkJNjVDOTdBRjQwOEVBOTA4ODAwQUNEMjczIC8qIGNvbmZpZy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9
IDA7CiAJCX07CkluZGV4OiBXZWJDb3JlL2todG1sL2todG1sX2V2ZW50cy5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva2h0bWwva2h0bWxfZXZlbnRzLmNwcCx2CnJl
dHJpZXZpbmcgcmV2aXNpb24gMS4xNQpkaWZmIC11IC1wIC1yMS4xNSBXZWJDb3JlL2todG1sL2to
dG1sX2V2ZW50cy5jcHAKLS0tIFdlYkNvcmUva2h0bWwva2h0bWxfZXZlbnRzLmNwcAkxNiBTZXAg
MjAwNSAyMjo0MjowMCAtMDAwMAkxLjE1CisrKyBXZWJDb3JlL2todG1sL2todG1sX2V2ZW50cy5j
cHAJMyBPY3QgMjAwNSAwNDoyMjo1MiAtMDAwMApAQCAtMTgsNiArMTgsNyBAQAogKi8KIAogI2lu
Y2x1ZGUgImtodG1sX2V2ZW50cy5oIgorI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgInJl
bmRlcmluZy9yZW5kZXJfb2JqZWN0LmgiCiAjaW5jbHVkZSAieG1sL2RvbV9ub2RlaW1wbC5oIgog
I2luY2x1ZGUgInhtbC9kb21fcG9zaXRpb24uaCIKSW5kZXg6IFdlYkNvcmUva2h0bWwva2h0bWxf
cGFydC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva2h0bWwva2h0
bWxfcGFydC5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMzQyCmRpZmYgLXUgLXAgLXIxLjM0
MiBXZWJDb3JlL2todG1sL2todG1sX3BhcnQuY3BwCi0tLSBXZWJDb3JlL2todG1sL2todG1sX3Bh
cnQuY3BwCTI0IFNlcCAyMDA1IDAxOjE4OjUxIC0wMDAwCTEuMzQyCisrKyBXZWJDb3JlL2todG1s
L2todG1sX3BhcnQuY3BwCTMgT2N0IDIwMDUgMDQ6MjI6NTMgLTAwMDAKQEAgLTI1LDYgKzI1LDcg
QEAKICAqLwogCiAjaW5jbHVkZSAia2h0bWxfcGFydC5oIgorI2luY2x1ZGUgImNvbmZpZy5oIgog
CiAjaWYgQVBQTEVfQ0hBTkdFUwogI2RlZmluZSBESVJFQ1RfTElOS0FHRV9UT19FQ01BCkluZGV4
OiBXZWJDb3JlL2todG1sL2todG1sdmlldy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9y
b290L1dlYkNvcmUva2h0bWwva2h0bWx2aWV3LmNwcCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4x
NDUKZGlmZiAtdSAtcCAtcjEuMTQ1IFdlYkNvcmUva2h0bWwva2h0bWx2aWV3LmNwcAotLS0gV2Vi
Q29yZS9raHRtbC9raHRtbHZpZXcuY3BwCTUgU2VwIDIwMDUgMjI6MjY6MDYgLTAwMDAJMS4xNDUK
KysrIFdlYkNvcmUva2h0bWwva2h0bWx2aWV3LmNwcAkzIE9jdCAyMDA1IDA0OjIyOjUzIC0wMDAw
CkBAIC0yMiw2ICsyMiw3IEBACiAgKiBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS4KICAqLwog
I2luY2x1ZGUgImtodG1sdmlldy5tb2MiCisjaW5jbHVkZSAiY29uZmlnLmgiCiAKICNpbmNsdWRl
ICJraHRtbHZpZXcuaCIKIApJbmRleDogV2ViQ29yZS9raHRtbC9jc3MvY3NzX2Jhc2UuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2todG1sL2Nzcy9jc3NfYmFzZS5j
cHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMTkKZGlmZiAtdSAtcCAtcjEuMTkgV2ViQ29yZS9r
aHRtbC9jc3MvY3NzX2Jhc2UuY3BwCi0tLSBXZWJDb3JlL2todG1sL2Nzcy9jc3NfYmFzZS5jcHAJ
MjUgQXVnIDIwMDUgMTc6NDY6NTcgLTAwMDAJMS4xOQorKysgV2ViQ29yZS9raHRtbC9jc3MvY3Nz
X2Jhc2UuY3BwCTMgT2N0IDIwMDUgMDQ6MjI6NTMgLTAwMDAKQEAgLTI2LDYgKzI2LDcgQEAKIC8v
I2RlZmluZSBDU1NfREVCVUcKIAogI2luY2x1ZGUgImtkZWJ1Zy5oIgorI2luY2x1ZGUgImNvbmZp
Zy5oIgogCiAjaW5jbHVkZSAiY3NzX2Jhc2UuaCIKIApJbmRleDogV2ViQ29yZS9raHRtbC9jc3Mv
Y3NzX2Jhc2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9raHRtbC9j
c3MvY3NzX2Jhc2UuaCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4xNwpkaWZmIC11IC1wIC1yMS4x
NyBXZWJDb3JlL2todG1sL2Nzcy9jc3NfYmFzZS5oCi0tLSBXZWJDb3JlL2todG1sL2Nzcy9jc3Nf
YmFzZS5oCTI3IFNlcCAyMDA1IDIyOjM3OjAxIC0wMDAwCTEuMTcKKysrIFdlYkNvcmUva2h0bWwv
Y3NzL2Nzc19iYXNlLmgJMyBPY3QgMjAwNSAwNDoyMjo1MyAtMDAwMApAQCAtNDYsNyArNDYsNyBA
QCBuYW1lc3BhY2UgRE9NIHsKIAogICAgIGNsYXNzIERvY3VtZW50SW1wbDsKIAotICAgIHN0cnVj
dCBDU1NOYW1lc3BhY2UgOiBwdWJsaWMgRmFzdEFsbG9jYXRlZCB7CisgICAgc3RydWN0IENTU05h
bWVzcGFjZSB7CiAgICAgICAgIEF0b21pY1N0cmluZyBtX3ByZWZpeDsKICAgICAgICAgQXRvbWlj
U3RyaW5nIG1fdXJpOwogICAgICAgICBDU1NOYW1lc3BhY2UqIG1fcGFyZW50OwpAQCAtNjgsNyAr
NjgsNyBAQCBuYW1lc3BhY2UgRE9NIHsKICAgICB9OwogICAgIAogLy8gdGhpcyBjbGFzcyByZXBy
ZXNlbnRzIGEgc2VsZWN0b3IgZm9yIGEgU3R5bGVSdWxlCi0gICAgY2xhc3MgQ1NTU2VsZWN0b3Ig
OiBwdWJsaWMgRmFzdEFsbG9jYXRlZAorICAgIGNsYXNzIENTU1NlbGVjdG9yCiAgICAgewogICAg
IHB1YmxpYzoKICAgICAgICAgQ1NTU2VsZWN0b3IoKQpAQCAtMTk0LDcgKzE5NCw3IEBAIG5hbWVz
cGFjZSBET00gewogICAgIH07CiAKICAgICAvLyBhIHN0eWxlIGNsYXNzIHdoaWNoIGhhcyBhIHBh
cmVudCAoYWxtb3N0IGFsbCBoYXZlKQotICAgIGNsYXNzIFN0eWxlQmFzZUltcGwgOiBwdWJsaWMg
a2h0bWw6OlRyZWVTaGFyZWQ8U3R5bGVCYXNlSW1wbD4sIHB1YmxpYyBGYXN0QWxsb2NhdGVkCisg
ICAgY2xhc3MgU3R5bGVCYXNlSW1wbCA6IHB1YmxpYyBraHRtbDo6VHJlZVNoYXJlZDxTdHlsZUJh
c2VJbXBsPgogICAgIHsKICAgICBwdWJsaWM6CiAJU3R5bGVCYXNlSW1wbCgpICB7IG1fcGFyZW50
ID0gMDsgc3RyaWN0UGFyc2luZyA9IHRydWU7IG11bHRpTGVuZ3RoID0gZmFsc2U7IH0KSW5kZXg6
IFdlYkNvcmUva2h0bWwvY3NzL2Nzc19jb21wdXRlZHN0eWxlLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBm
aWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9raHRtbC9jc3MvY3NzX2NvbXB1dGVkc3R5bGUuY3BwLHYK
cmV0cmlldmluZyByZXZpc2lvbiAxLjM3CmRpZmYgLXUgLXAgLXIxLjM3IFdlYkNvcmUva2h0bWwv
Y3NzL2Nzc19jb21wdXRlZHN0eWxlLmNwcAotLS0gV2ViQ29yZS9raHRtbC9jc3MvY3NzX2NvbXB1
dGVkc3R5bGUuY3BwCTI3IFNlcCAyMDA1IDIyOjM3OjAxIC0wMDAwCTEuMzcKKysrIFdlYkNvcmUv
a2h0bWwvY3NzL2Nzc19jb21wdXRlZHN0eWxlLmNwcAkzIE9jdCAyMDA1IDA0OjIyOjUzIC0wMDAw
CkBAIC0yMSw2ICsyMSw3IEBACiAgKi8KIAogI2luY2x1ZGUgImNzc19jb21wdXRlZHN0eWxlLmgi
CisjaW5jbHVkZSAiY29uZmlnLmgiCiAKICNpbmNsdWRlICJjc3Nwcm9wZXJ0aWVzLmgiCiAjaW5j
bHVkZSAiY3NzdmFsdWVzLmgiCkluZGV4OiBXZWJDb3JlL2todG1sL2Nzcy9jc3NfcnVsZWltcGwu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2todG1sL2Nzcy9jc3Nf
cnVsZWltcGwuY3BwLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjIzCmRpZmYgLXUgLXAgLXIxLjIz
IFdlYkNvcmUva2h0bWwvY3NzL2Nzc19ydWxlaW1wbC5jcHAKLS0tIFdlYkNvcmUva2h0bWwvY3Nz
L2Nzc19ydWxlaW1wbC5jcHAJMTYgU2VwIDIwMDUgMjI6NDI6MDEgLTAwMDAJMS4yMworKysgV2Vi
Q29yZS9raHRtbC9jc3MvY3NzX3J1bGVpbXBsLmNwcAkzIE9jdCAyMDA1IDA0OjIyOjUzIC0wMDAw
CkBAIC0yMSw2ICsyMSw3IEBACiAgKiBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS4KICAqLwog
I2luY2x1ZGUgImRvbS9jc3NfcnVsZS5oIgorI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUg
ImRvbS9jc3Nfc3R5bGVzaGVldC5oIgogI2luY2x1ZGUgImRvbS9kb21fZXhjZXB0aW9uLmgiCiAj
aW5jbHVkZSAiZG9tL2RvbV9zdHJpbmcuaCIKSW5kZXg6IFdlYkNvcmUva2h0bWwvY3NzL2Nzc19z
dHlsZXNoZWV0aW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUv
a2h0bWwvY3NzL2Nzc19zdHlsZXNoZWV0aW1wbC5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEu
MTcKZGlmZiAtdSAtcCAtcjEuMTcgV2ViQ29yZS9raHRtbC9jc3MvY3NzX3N0eWxlc2hlZXRpbXBs
LmNwcAotLS0gV2ViQ29yZS9raHRtbC9jc3MvY3NzX3N0eWxlc2hlZXRpbXBsLmNwcAkxNiBTZXAg
MjAwNSAyMjo0MjowMSAtMDAwMAkxLjE3CisrKyBXZWJDb3JlL2todG1sL2Nzcy9jc3Nfc3R5bGVz
aGVldGltcGwuY3BwCTMgT2N0IDIwMDUgMDQ6MjI6NTMgLTAwMDAKQEAgLTI1LDYgKzI1LDcgQEAK
IC8vI2RlZmluZSBDU1NfU1RZTEVTSEVFVF9ERUJVRwogCiAjaW5jbHVkZSAiZG9tL2RvbV9zdHJp
bmcuaCIKKyNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJkb20vZG9tX2V4Y2VwdGlvbi5o
IgogI2luY2x1ZGUgImRvbS9jc3Nfc3R5bGVzaGVldC5oIgogI2luY2x1ZGUgImRvbS9jc3NfcnVs
ZS5oIgpJbmRleDogV2ViQ29yZS9raHRtbC9jc3MvY3NzX3ZhbHVlaW1wbC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva2h0bWwvY3NzL2Nzc192YWx1ZWltcGwuY3Bw
LHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjc3CmRpZmYgLXUgLXAgLXIxLjc3IFdlYkNvcmUva2h0
bWwvY3NzL2Nzc192YWx1ZWltcGwuY3BwCi0tLSBXZWJDb3JlL2todG1sL2Nzcy9jc3NfdmFsdWVp
bXBsLmNwcAkxNiBTZXAgMjAwNSAyMjo0MjowMiAtMDAwMAkxLjc3CisrKyBXZWJDb3JlL2todG1s
L2Nzcy9jc3NfdmFsdWVpbXBsLmNwcAkzIE9jdCAyMDA1IDA0OjIyOjUzIC0wMDAwCkBAIC0yMSw2
ICsyMSw3IEBACiAgKi8KIAogI2luY2x1ZGUgImNzcy9jc3NfdmFsdWVpbXBsLmgiCisjaW5jbHVk
ZSAiY29uZmlnLmgiCiAKICNpbmNsdWRlICJkb20vY3NzX3ZhbHVlLmgiCiAjaW5jbHVkZSAiZG9t
L2Nzc19zdHlsZXNoZWV0LmgiCkluZGV4OiBXZWJDb3JlL2todG1sL2Nzcy9jc3NfdmFsdWVpbXBs
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva2h0bWwvY3NzL2Nzc192
YWx1ZWltcGwuaCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS41MApkaWZmIC11IC1wIC1yMS41MCBX
ZWJDb3JlL2todG1sL2Nzcy9jc3NfdmFsdWVpbXBsLmgKLS0tIFdlYkNvcmUva2h0bWwvY3NzL2Nz
c192YWx1ZWltcGwuaAkyNyBTZXAgMjAwNSAyMjozNzowMSAtMDAwMAkxLjUwCisrKyBXZWJDb3Jl
L2todG1sL2Nzcy9jc3NfdmFsdWVpbXBsLmgJMyBPY3QgMjAwNSAwNDoyMjo1NCAtMDAwMApAQCAt
MjM4LDcgKzIzOCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaXNRdWlya1ZhbHVlKCkg
eyByZXR1cm4gdHJ1ZTsgfQogfTsKIAotY2xhc3MgQ291bnRlckltcGwgOiBwdWJsaWMga2h0bWw6
OlNoYXJlZDxDb3VudGVySW1wbD4sIHB1YmxpYyBGYXN0QWxsb2NhdGVkIHsKK2NsYXNzIENvdW50
ZXJJbXBsIDogcHVibGljIGtodG1sOjpTaGFyZWQ8Q291bnRlckltcGw+IHsKIHB1YmxpYzoKICAg
ICBET01TdHJpbmcgaWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1faWRlbnRpZmllcjsgfQog
ICAgIERPTVN0cmluZyBsaXN0U3R5bGUoKSBjb25zdCB7IHJldHVybiBtX2xpc3RTdHlsZTsgfQpA
QCAtMjQ5LDcgKzI0OSw3IEBAIHB1YmxpYzoKICAgICBET01TdHJpbmcgbV9zZXBhcmF0b3I7CiB9
OwogCi1jbGFzcyBSZWN0SW1wbCA6IHB1YmxpYyBraHRtbDo6U2hhcmVkPFJlY3RJbXBsPiwgcHVi
bGljIEZhc3RBbGxvY2F0ZWQgeworY2xhc3MgUmVjdEltcGwgOiBwdWJsaWMga2h0bWw6OlNoYXJl
ZDxSZWN0SW1wbD4gewogcHVibGljOgogICAgIFJlY3RJbXBsKCk7CiAgICAgdmlydHVhbCB+UmVj
dEltcGwoKTsKQEAgLTI3NCw3ICsyNzQsNyBAQCBwcm90ZWN0ZWQ6CiAvLyBhbmQgYm9yZGVyLXNw
YWNpbmcgKGFsbCBvZiB3aGljaCBhcmUgc3BhY2Utc2VwYXJhdGVkIHNldHMgb2YgdHdvIHZhbHVl
cykuICBBdCB0aGUgbW9tZW50IHdlIGFyZSBvbmx5IHVzaW5nIGl0IGZvcgogLy8gYm9yZGVyLXJh
ZGl1cywgYnV0IChGSVhNRSkgYm9yZGVyLXNwYWNpbmcgYW5kIGJhY2tncm91bmQtcG9zaXRpb24g
Y291bGQgYmUgY29udmVydGVkIG92ZXIgdG8gdXNlIGl0CiAvLyAoZWxpbWluYXRpbmcgc29tZSBl
eHRyYSAta2h0bWwtIGludGVybmFsIHByb3BlcnRpZXMpLgotY2xhc3MgUGFpckltcGwgOiBwdWJs
aWMga2h0bWw6OlNoYXJlZDxQYWlySW1wbD4sIHB1YmxpYyBGYXN0QWxsb2NhdGVkIHsKK2NsYXNz
IFBhaXJJbXBsIDogcHVibGljIGtodG1sOjpTaGFyZWQ8UGFpckltcGw+IHsKIHB1YmxpYzoKICAg
ICBQYWlySW1wbCgpOwogICAgIHZpcnR1YWwgflBhaXJJbXBsKCk7CkBAIC00MTAsNyArNDEwLDcg
QEAgcHVibGljOgogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKIC8vIGFub3RoZXIgaGVscGVy
IGNsYXNzCi1jbGFzcyBDU1NQcm9wZXJ0eSA6IHB1YmxpYyBGYXN0QWxsb2NhdGVkCitjbGFzcyBD
U1NQcm9wZXJ0eQogewogcHVibGljOgogICAgIENTU1Byb3BlcnR5KCkgOiBtX2lkKC0xKSwgbV9i
SW1wb3J0YW50KGZhbHNlKSwgbV92YWx1ZSgwKQpJbmRleDogV2ViQ29yZS9raHRtbC9jc3MvY3Nz
aGVscGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9raHRtbC9j
c3MvY3NzaGVscGVyLmNwcCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS44CmRpZmYgLXUgLXAgLXIx
LjggV2ViQ29yZS9raHRtbC9jc3MvY3NzaGVscGVyLmNwcAotLS0gV2ViQ29yZS9raHRtbC9jc3Mv
Y3NzaGVscGVyLmNwcAkyOSBBdWcgMjAwNSAyMToyOTowOSAtMDAwMAkxLjgKKysrIFdlYkNvcmUv
a2h0bWwvY3NzL2Nzc2hlbHBlci5jcHAJMyBPY3QgMjAwNSAwNDoyMjo1NCAtMDAwMApAQCAtMjAs
NiArMjAsNyBAQAogICoKICAqLwogI2luY2x1ZGUgImNzc2hlbHBlci5oIgorI2luY2x1ZGUgImNv
bmZpZy5oIgogCiAjaW5jbHVkZSA8cWZvbnRtZXRyaWNzLmg+CiAjaW5jbHVkZSA8cWZvbnRpbmZv
Lmg+CkluZGV4OiBXZWJDb3JlL2todG1sL2Nzcy9jc3NwYXJzZXIuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNT
IGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2todG1sL2Nzcy9jc3NwYXJzZXIuY3BwLHYKcmV0cmll
dmluZyByZXZpc2lvbiAxLjEwNwpkaWZmIC11IC1wIC1yMS4xMDcgV2ViQ29yZS9raHRtbC9jc3Mv
Y3NzcGFyc2VyLmNwcAotLS0gV2ViQ29yZS9raHRtbC9jc3MvY3NzcGFyc2VyLmNwcAkzMCBTZXAg
MjAwNSAwMDowMzoxOCAtMDAwMAkxLjEwNworKysgV2ViQ29yZS9raHRtbC9jc3MvY3NzcGFyc2Vy
LmNwcAkzIE9jdCAyMDA1IDA0OjIyOjU0IC0wMDAwCkBAIC0yNSw2ICsyNSw3IEBACiAjZGVmaW5l
IFlZREVCVUcgMAogCiAjaW5jbHVkZSA8a2RlYnVnLmg+CisjaW5jbHVkZSAiY29uZmlnLmgiCiAj
aW5jbHVkZSA8a3VybC5oPgogCiAjaW5jbHVkZSAiY3NzcGFyc2VyLmgiCkBAIC0zNiw2ICszNyw3
IEBACiAjaW5jbHVkZSAibWlzYy9oZWxwZXIuaCIKICNpbmNsdWRlICJ4bWwvZG9tX2RvY2ltcGwu
aCIKICNpbmNsdWRlICJjc3NoZWxwZXIuaCIKKwogdXNpbmcgbmFtZXNwYWNlIERPTTsKIAogI2lu
Y2x1ZGUgPHN0ZGxpYi5oPgpAQCAtNDYsNyArNDgsNyBAQCB2b2lkIHFGYXRhbCAoIGNvbnN0IGNo
YXIgKiBtc2cgKSB7fQogCiBWYWx1ZUxpc3Q6OlZhbHVlTGlzdCgpCiB7Ci0gICAgdmFsdWVzID0g
KFZhbHVlICopIG1hbGxvYyggMTYgKiBzaXplb2YgKCBWYWx1ZSApICk7CisgICAgdmFsdWVzID0g
KFZhbHVlICopZmFzdE1hbGxvYygxNiAqIHNpemVvZihWYWx1ZSkpOwogICAgIG51bVZhbHVlcyA9
IDA7CiAgICAgY3VycmVudFZhbHVlID0gMDsKICAgICBtYXhWYWx1ZXMgPSAxNjsKQEAgLTYxLDE0
ICs2MywxNCBAQCBWYWx1ZUxpc3Q6On5WYWx1ZUxpc3QoKQogCWlmICggdmFsdWVzW2ldLnVuaXQg
PT0gVmFsdWU6OkZ1bmN0aW9uICkKIAkgICAgZGVsZXRlIHZhbHVlc1tpXS5mdW5jdGlvbjsKICAg
ICB9Ci0gICAgZnJlZSggdmFsdWVzICk7CisgICAgZmFzdEZyZWUodmFsdWVzKTsKIH0KIAotdm9p
ZCBWYWx1ZUxpc3Q6OmFkZFZhbHVlKCBjb25zdCBWYWx1ZSAmdmFsICkKK3ZvaWQgVmFsdWVMaXN0
OjphZGRWYWx1ZShjb25zdCBWYWx1ZSAmdmFsKQogewotICAgIGlmICggbnVtVmFsdWVzID49IG1h
eFZhbHVlcyApIHsKKyAgICBpZiAobnVtVmFsdWVzID49IG1heFZhbHVlcykgewogCW1heFZhbHVl
cyArPSAxNjsKLQl2YWx1ZXMgPSAoVmFsdWUgKikgcmVhbGxvYyggdmFsdWVzLCBtYXhWYWx1ZXMq
c2l6ZW9mKCBWYWx1ZSApICk7CisJdmFsdWVzID0gKFZhbHVlICopZmFzdFJlYWxsb2ModmFsdWVz
LCBtYXhWYWx1ZXMqc2l6ZW9mKFZhbHVlKSk7CiAgICAgfQogICAgIHZhbHVlc1tudW1WYWx1ZXMr
K10gPSB2YWw7CiB9CkBAIC05MSw3ICs5Myw3IEBAIENTU1BhcnNlcjo6Q1NTUGFyc2VyKCBib29s
IHN0cmljdFBhcnNpbmcKICNlbmRpZgogICAgIHN0cmljdCA9IHN0cmljdFBhcnNpbmc7CiAKLSAg
ICBwYXJzZWRQcm9wZXJ0aWVzID0gKENTU1Byb3BlcnR5ICoqKSBtYWxsb2MoIDMyICogc2l6ZW9m
KCBDU1NQcm9wZXJ0eSAqICkgKTsKKyAgICBwYXJzZWRQcm9wZXJ0aWVzID0gKENTU1Byb3BlcnR5
ICoqKWZhc3RNYWxsb2MoMzIgKiBzaXplb2YoQ1NTUHJvcGVydHkgKikpOwogICAgIG51bVBhcnNl
ZFByb3BlcnRpZXMgPSAwOwogICAgIG1heFBhcnNlZFByb3BlcnRpZXMgPSAzMjsKIApAQCAtMTE2
LDcgKzExOCw3IEBAIENTU1BhcnNlcjo6fkNTU1BhcnNlcigpCiB7CiAgICAgaWYgKCBudW1QYXJz
ZWRQcm9wZXJ0aWVzICkKIAljbGVhclByb3BlcnRpZXMoKTsKLSAgICBmcmVlKCBwYXJzZWRQcm9w
ZXJ0aWVzICk7CisgICAgZmFzdEZyZWUocGFyc2VkUHJvcGVydGllcyk7CiAKICAgICBkZWxldGUg
dmFsdWVMaXN0OwogCkBAIC0xMjQsNyArMTI2LDcgQEAgQ1NTUGFyc2VyOjp+Q1NTUGFyc2VyKCkK
ICAgICBrZERlYnVnKCA2MDgwICkgPDwgIkNTU1BhcnNlcjo6fkNTU1BhcnNlciB0aGlzPSIgPDwg
dGhpcyA8PCBlbmRsOwogI2VuZGlmCiAKLSAgICBmcmVlKCBkYXRhICk7CisgICAgZmFzdEZyZWUo
ZGF0YSk7CiAKIH0KIApAQCAtMTM4LDcgKzE0MCw3IEBAIHZvaWQgQ1NTUGFyc2VyOjpzZXR1cFBh
cnNlcihjb25zdCBjaGFyICoKIHsKICAgICBpbnQgbGVuZ3RoID0gc3RyaW5nLmxlbmd0aCgpICsg
c3RybGVuKHByZWZpeCkgKyBzdHJsZW4oc3VmZml4KSArIDI7CiAgICAgCi0gICAgZGF0YSA9ICh1
bnNpZ25lZCBzaG9ydCAqKW1hbGxvYyggbGVuZ3RoICpzaXplb2YoIHVuc2lnbmVkIHNob3J0ICkg
KTsKKyAgICBkYXRhID0gKHVuc2lnbmVkIHNob3J0ICopZmFzdE1hbGxvYyggbGVuZ3RoICpzaXpl
b2YoIHVuc2lnbmVkIHNob3J0ICkgKTsKICAgICBmb3IgKCB1bnNpZ25lZCBpbnQgaSA9IDA7IGkg
PCBzdHJsZW4ocHJlZml4KTsgaSsrICkKIAlkYXRhW2ldID0gcHJlZml4W2ldOwogICAgIApAQCAt
MzE5LDggKzMyMSw4IEBAIHZvaWQgQ1NTUGFyc2VyOjphZGRQcm9wZXJ0eSggaW50IHByb3BJZCwK
IAogICAgIGlmICggbnVtUGFyc2VkUHJvcGVydGllcyA+PSBtYXhQYXJzZWRQcm9wZXJ0aWVzICkg
ewogCW1heFBhcnNlZFByb3BlcnRpZXMgKz0gMzI7Ci0JcGFyc2VkUHJvcGVydGllcyA9IChDU1NQ
cm9wZXJ0eSAqKikgcmVhbGxvYyggcGFyc2VkUHJvcGVydGllcywKLQkJCQkJCSAgICBtYXhQYXJz
ZWRQcm9wZXJ0aWVzKnNpemVvZiggQ1NTUHJvcGVydHkgKiApICk7CisJcGFyc2VkUHJvcGVydGll
cyA9IChDU1NQcm9wZXJ0eSAqKilmYXN0UmVhbGxvYyhwYXJzZWRQcm9wZXJ0aWVzLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heFBhcnNl
ZFByb3BlcnRpZXMqc2l6ZW9mKENTU1Byb3BlcnR5ICopKTsKICAgICB9CiAgICAgcGFyc2VkUHJv
cGVydGllc1tudW1QYXJzZWRQcm9wZXJ0aWVzKytdID0gcHJvcDsKIH0KSW5kZXg6IFdlYkNvcmUv
a2h0bWwvY3NzL2Nzc3N0eWxlc2VsZWN0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMv
cm9vdC9XZWJDb3JlL2todG1sL2Nzcy9jc3NzdHlsZXNlbGVjdG9yLmNwcCx2CnJldHJpZXZpbmcg
cmV2aXNpb24gMS4yMDgKZGlmZiAtdSAtcCAtcjEuMjA4IFdlYkNvcmUva2h0bWwvY3NzL2Nzc3N0
eWxlc2VsZWN0b3IuY3BwCi0tLSBXZWJDb3JlL2todG1sL2Nzcy9jc3NzdHlsZXNlbGVjdG9yLmNw
cAkzMCBTZXAgMjAwNSAwMDowMzoxOSAtMDAwMAkxLjIwOAorKysgV2ViQ29yZS9raHRtbC9jc3Mv
Y3Nzc3R5bGVzZWxlY3Rvci5jcHAJMyBPY3QgMjAwNSAwNDoyMjo1NCAtMDAwMApAQCAtMjEsNiAr
MjEsNyBAQAogICovCiAKICNpbmNsdWRlICJjc3MvY3Nzc3R5bGVzZWxlY3Rvci5oIgorI2luY2x1
ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgInJlbmRlcmluZy9yZW5kZXJfc3R5bGUuaCIKICNpbmNs
dWRlICJjc3MvY3NzX3N0eWxlc2hlZXRpbXBsLmgiCiAjaW5jbHVkZSAiY3NzL2Nzc19ydWxlaW1w
bC5oIgpAQCAtMTgwLDcgKzE4MSw3IEBAIGlmIChpZCA9PSBwcm9wSUQpIFwKIAogbmFtZXNwYWNl
IGtodG1sIHsKIAotY2xhc3MgQ1NTUnVsZVNldCA6IHB1YmxpYyBGYXN0QWxsb2NhdGVkCitjbGFz
cyBDU1NSdWxlU2V0CiB7CiBwdWJsaWM6CiAgICAgQ1NTUnVsZVNldCgpOwpJbmRleDogV2ViQ29y
ZS9raHRtbC9jc3MvY3Nzc3R5bGVzZWxlY3Rvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMv
cm9vdC9XZWJDb3JlL2todG1sL2Nzcy9jc3NzdHlsZXNlbGVjdG9yLmgsdgpyZXRyaWV2aW5nIHJl
dmlzaW9uIDEuMzgKZGlmZiAtdSAtcCAtcjEuMzggV2ViQ29yZS9raHRtbC9jc3MvY3Nzc3R5bGVz
ZWxlY3Rvci5oCi0tLSBXZWJDb3JlL2todG1sL2Nzcy9jc3NzdHlsZXNlbGVjdG9yLmgJMjggU2Vw
IDIwMDUgMjI6MDE6MjkgLTAwMDAJMS4zOAorKysgV2ViQ29yZS9raHRtbC9jc3MvY3Nzc3R5bGVz
ZWxlY3Rvci5oCTMgT2N0IDIwMDUgMDQ6MjI6NTQgLTAwMDAKQEAgLTI5LDcgKzI5LDYgQEAKICNp
bmNsdWRlICJkb20vZG9tX3N0cmluZy5oIgogI2luY2x1ZGUgInhtbC9kb21fc3RyaW5naW1wbC5o
IgogI2luY2x1ZGUgImNzcy9jc3NfcnVsZWltcGwuaCIKLSNpbmNsdWRlIDxreG1sY29yZS9GYXN0
TWFsbG9jLmg+CiAKIGNsYXNzIEtIVE1MU2V0dGluZ3M7CiBjbGFzcyBLSFRNTFZpZXc7CkBAIC02
Miw3ICs2MSw3IEBAIG5hbWVzcGFjZSBraHRtbAogICAgICAqIGZvciBzcGVjaWZpYyBpbXBsZW1l
bnRhdGlvbnMgb2YgdGhlIFNlbGVjdG9yLiBBdCB0aGUgbW9tZW50IG9ubHkgQ1NTU3R5bGVTZWxl
Y3RvcgogICAgICAqIGV4aXN0cywgYnV0IHNvbWVvbmUgbWF5IHdpc2ggdG8gaW1wbGVtZW50IFhT
TC4uLgogICAgICAqLwotICAgIGNsYXNzIFN0eWxlU2VsZWN0b3IgOiBwdWJsaWMgRmFzdEFsbG9j
YXRlZAorICAgIGNsYXNzIFN0eWxlU2VsZWN0b3IKICAgICB7CiAgICAgcHVibGljOgogCVN0eWxl
U2VsZWN0b3IoKSB7fTsKQEAgLTIyNCw3ICsyMjMsNyBAQCBwdWJsaWM6CiAJdm9pZCBhcHBseVBy
b3BlcnR5KGludCBpZCwgRE9NOjpDU1NWYWx1ZUltcGwgKnZhbHVlKTsKICAgICB9OwogCi0gICAg
Y2xhc3MgQ1NTUnVsZURhdGEgOiBwdWJsaWMgRmFzdEFsbG9jYXRlZCB7CisgICAgY2xhc3MgQ1NT
UnVsZURhdGEgewogICAgIHB1YmxpYzoKICAgICAgICAgQ1NTUnVsZURhdGEodWludCBwb3MsIERP
TTo6Q1NTU3R5bGVSdWxlSW1wbCogciwgRE9NOjpDU1NTZWxlY3Rvciogc2VsLCBDU1NSdWxlRGF0
YSogcHJldiA9IDApCiAgICAgICAgIDptX3Bvc2l0aW9uKHBvcyksIG1fcnVsZShyKSwgbV9zZWxl
Y3RvcihzZWwpLCBtX25leHQoMCkgeyBpZiAocHJldikgcHJldi0+bV9uZXh0ID0gdGhpczsgfQpA
QCAtMjQyLDcgKzI0MSw3IEBAIHB1YmxpYzoKICAgICAgICAgQ1NTUnVsZURhdGEqIG1fbmV4dDsK
ICAgICB9OwogCi0gICAgY2xhc3MgQ1NTUnVsZURhdGFMaXN0IDogcHVibGljIEZhc3RBbGxvY2F0
ZWQgeworICAgIGNsYXNzIENTU1J1bGVEYXRhTGlzdCB7CiAgICAgcHVibGljOgogICAgICAgICBD
U1NSdWxlRGF0YUxpc3QodWludCBwb3MsIERPTTo6Q1NTU3R5bGVSdWxlSW1wbCogcnVsZSwgRE9N
OjpDU1NTZWxlY3Rvciogc2VsKQogICAgICAgICB7IG1fZmlyc3QgPSBtX2xhc3QgPSBuZXcgQ1NT
UnVsZURhdGEocG9zLCBydWxlLCBzZWwpOyB9CkluZGV4OiBXZWJDb3JlL2todG1sL2RvbS9kb20y
X2V2ZW50cy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva2h0bWwv
ZG9tL2RvbTJfZXZlbnRzLmNwcCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4yNQpkaWZmIC11IC1w
IC1yMS4yNSBXZWJDb3JlL2todG1sL2RvbS9kb20yX2V2ZW50cy5jcHAKLS0tIFdlYkNvcmUva2h0
bWwvZG9tL2RvbTJfZXZlbnRzLmNwcAkxNiBTZXAgMjAwNSAyMjo0MjowMyAtMDAwMAkxLjI1Cisr
KyBXZWJDb3JlL2todG1sL2RvbS9kb20yX2V2ZW50cy5jcHAJMyBPY3QgMjAwNSAwNDoyMjo1NCAt
MDAwMApAQCAtMjIsNiArMjIsNyBAQAogICovCiAKICNpbmNsdWRlICJkb20vZG9tMl9ldmVudHMu
aCIKKyNpbmNsdWRlICJjb25maWcuaCIKIAogI2luY2x1ZGUgInhtbC9kb20yX2V2ZW50c2ltcGwu
aCIKIApJbmRleDogV2ViQ29yZS9raHRtbC9kb20vZG9tMl90cmF2ZXJzYWwuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2todG1sL2RvbS9kb20yX3RyYXZlcnNhbC5j
cHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNgpkaWZmIC11IC1wIC1yMS42IFdlYkNvcmUva2h0
bWwvZG9tL2RvbTJfdHJhdmVyc2FsLmNwcAotLS0gV2ViQ29yZS9raHRtbC9kb20vZG9tMl90cmF2
ZXJzYWwuY3BwCTE2IFNlcCAyMDA1IDIyOjQyOjAzIC0wMDAwCTEuNgorKysgV2ViQ29yZS9raHRt
bC9kb20vZG9tMl90cmF2ZXJzYWwuY3BwCTMgT2N0IDIwMDUgMDQ6MjI6NTQgLTAwMDAKQEAgLTIx
LDYgKzIxLDcgQEAKICAqLwogCiAjaW5jbHVkZSAiZG9tL2RvbTJfdHJhdmVyc2FsLmgiCisjaW5j
bHVkZSAiY29uZmlnLmgiCiAKICNpZiAhS0hUTUxfTk9fQ1BMVVNQTFVTX0RPTQogCkluZGV4OiBX
ZWJDb3JlL2todG1sL2RvbS9kb21fbWlzYy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9y
b290L1dlYkNvcmUva2h0bWwvZG9tL2RvbV9taXNjLmNwcCx2CnJldHJpZXZpbmcgcmV2aXNpb24g
MS43CmRpZmYgLXUgLXAgLXIxLjcgV2ViQ29yZS9raHRtbC9kb20vZG9tX21pc2MuY3BwCi0tLSBX
ZWJDb3JlL2todG1sL2RvbS9kb21fbWlzYy5jcHAJMTEgTWF5IDIwMDUgMDA6NTg6MjggLTAwMDAJ
MS43CisrKyBXZWJDb3JlL2todG1sL2RvbS9kb21fbWlzYy5jcHAJMyBPY3QgMjAwNSAwNDoyMjo1
NCAtMDAwMApAQCAtMjEsNiArMjEsNyBAQAogICovCiAKICNpbmNsdWRlICJkb21fbWlzYy5oIgor
I2luY2x1ZGUgImNvbmZpZy5oIgogCiBuYW1lc3BhY2UgRE9NIHsKIApJbmRleDogV2ViQ29yZS9r
aHRtbC9kb20vZG9tX3N0cmluZy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dl
YkNvcmUva2h0bWwvZG9tL2RvbV9zdHJpbmcuY3BwLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjIx
CmRpZmYgLXUgLXAgLXIxLjIxIFdlYkNvcmUva2h0bWwvZG9tL2RvbV9zdHJpbmcuY3BwCi0tLSBX
ZWJDb3JlL2todG1sL2RvbS9kb21fc3RyaW5nLmNwcAkxMiBTZXAgMjAwNSAwMzo0MDozOCAtMDAw
MAkxLjIxCisrKyBXZWJDb3JlL2todG1sL2RvbS9kb21fc3RyaW5nLmNwcAkzIE9jdCAyMDA1IDA0
OjIyOjU0IC0wMDAwCkBAIC0yMSw2ICsyMSw3IEBACiAgKi8KIAogI2luY2x1ZGUgImRvbS9kb21f
c3RyaW5nLmgiCisjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAieG1sL2RvbV9zdHJpbmdp
bXBsLmgiCiAKIApJbmRleDogV2ViQ29yZS9raHRtbC9lY21hL2RvbXBhcnNlci5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva2h0bWwvZWNtYS9kb21wYXJzZXIuY3Bw
LHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjYKZGlmZiAtdSAtcCAtcjEuNiBXZWJDb3JlL2todG1s
L2VjbWEvZG9tcGFyc2VyLmNwcAotLS0gV2ViQ29yZS9raHRtbC9lY21hL2RvbXBhcnNlci5jcHAJ
MjkgQXVnIDIwMDUgMjE6Mjk6MTIgLTAwMDAJMS42CisrKyBXZWJDb3JlL2todG1sL2VjbWEvZG9t
cGFyc2VyLmNwcAkzIE9jdCAyMDA1IDA0OjIyOjU0IC0wMDAwCkBAIC0xOSw2ICsxOSw3IEBACiAg
Ki8KIAogI2luY2x1ZGUgImRvbXBhcnNlci5oIgorI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1
ZGUgImRvbXBhcnNlci5sdXQuaCIKIAogI2luY2x1ZGUgImh0bWwvaHRtbF9kb2N1bWVudGltcGwu
aCIKSW5kZXg6IFdlYkNvcmUva2h0bWwvZWNtYS9ranNfYmluZGluZy5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpS
Q1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva2h0bWwvZWNtYS9ranNfYmluZGluZy5jcHAsdgpy
ZXRyaWV2aW5nIHJldmlzaW9uIDEuNDQKZGlmZiAtdSAtcCAtcjEuNDQgV2ViQ29yZS9raHRtbC9l
Y21hL2tqc19iaW5kaW5nLmNwcAotLS0gV2ViQ29yZS9raHRtbC9lY21hL2tqc19iaW5kaW5nLmNw
cAkyOCBTZXAgMjAwNSAyMjowMTozMCAtMDAwMAkxLjQ0CisrKyBXZWJDb3JlL2todG1sL2VjbWEv
a2pzX2JpbmRpbmcuY3BwCTMgT2N0IDIwMDUgMDQ6MjI6NTQgLTAwMDAKQEAgLTE5LDYgKzE5LDcg
QEAKICAqLwogCiAjaW5jbHVkZSAia2pzX2JpbmRpbmcuaCIKKyNpbmNsdWRlICJjb25maWcuaCIK
IAogI2luY2x1ZGUgImtqc19kb20uaCIKICNpbmNsdWRlICJranNfd2luZG93LmgiCkluZGV4OiBX
ZWJDb3JlL2todG1sL2VjbWEva2pzX2Nzcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9y
b290L1dlYkNvcmUva2h0bWwvZWNtYS9ranNfY3NzLmNwcCx2CnJldHJpZXZpbmcgcmV2aXNpb24g
MS4zOApkaWZmIC11IC1wIC1yMS4zOCBXZWJDb3JlL2todG1sL2VjbWEva2pzX2Nzcy5jcHAKLS0t
IFdlYkNvcmUva2h0bWwvZWNtYS9ranNfY3NzLmNwcAkxNiBTZXAgMjAwNSAyMjo0MjowNCAtMDAw
MAkxLjM4CisrKyBXZWJDb3JlL2todG1sL2VjbWEva2pzX2Nzcy5jcHAJMyBPY3QgMjAwNSAwNDoy
Mjo1NSAtMDAwMApAQCAtMjEsNiArMjEsNyBAQAogICovCiAKICNpbmNsdWRlICJranNfY3NzLmgi
CisjaW5jbHVkZSAiY29uZmlnLmgiCiAKICNpbmNsdWRlICJjc3MvY3NzX2Jhc2UuaCIKICNpbmNs
dWRlICJjc3MvY3NzX3J1bGVpbXBsLmgiCkluZGV4OiBXZWJDb3JlL2todG1sL2VjbWEva2pzX2Rv
bS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva2h0bWwvZWNtYS9r
anNfZG9tLmNwcCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS45OApkaWZmIC11IC1wIC1yMS45OCBX
ZWJDb3JlL2todG1sL2VjbWEva2pzX2RvbS5jcHAKLS0tIFdlYkNvcmUva2h0bWwvZWNtYS9ranNf
ZG9tLmNwcAkyNyBTZXAgMjAwNSAyMjozNzowMyAtMDAwMAkxLjk4CisrKyBXZWJDb3JlL2todG1s
L2VjbWEva2pzX2RvbS5jcHAJMyBPY3QgMjAwNSAwNDoyMjo1NSAtMDAwMApAQCAtMTksNiArMTks
NyBAQAogICovCiAKICNpbmNsdWRlICJranNfZG9tLmgiCisjaW5jbHVkZSAiY29uZmlnLmgiCiAK
ICNpbmNsdWRlIDxrZGVidWcuaD4KICNpbmNsdWRlIDxraHRtbF9wYXJ0Lmg+CkluZGV4OiBXZWJD
b3JlL2todG1sL2VjbWEva2pzX2V2ZW50cy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9y
b290L1dlYkNvcmUva2h0bWwvZWNtYS9ranNfZXZlbnRzLmNwcCx2CnJldHJpZXZpbmcgcmV2aXNp
b24gMS42MgpkaWZmIC11IC1wIC1yMS42MiBXZWJDb3JlL2todG1sL2VjbWEva2pzX2V2ZW50cy5j
cHAKLS0tIFdlYkNvcmUva2h0bWwvZWNtYS9ranNfZXZlbnRzLmNwcAkxOSBTZXAgMjAwNSAxODo1
MjoxMCAtMDAwMAkxLjYyCisrKyBXZWJDb3JlL2todG1sL2VjbWEva2pzX2V2ZW50cy5jcHAJMyBP
Y3QgMjAwNSAwNDoyMjo1NSAtMDAwMApAQCAtMTksNiArMTksNyBAQAogICovCiAKICNpbmNsdWRl
ICJranNfZXZlbnRzLmgiCisjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAia2pzX2V2ZW50
cy5sdXQuaCIKIAogI2luY2x1ZGUgImtodG1sX3BhcnQuaCIKSW5kZXg6IFdlYkNvcmUva2h0bWwv
ZWNtYS9ranNfaHRtbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUv
a2h0bWwvZWNtYS9ranNfaHRtbC5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMTQwCmRpZmYg
LXUgLXAgLXIxLjE0MCBXZWJDb3JlL2todG1sL2VjbWEva2pzX2h0bWwuY3BwCi0tLSBXZWJDb3Jl
L2todG1sL2VjbWEva2pzX2h0bWwuY3BwCTI3IFNlcCAyMDA1IDIyOjM3OjAzIC0wMDAwCTEuMTQw
CisrKyBXZWJDb3JlL2todG1sL2VjbWEva2pzX2h0bWwuY3BwCTMgT2N0IDIwMDUgMDQ6MjI6NTYg
LTAwMDAKQEAgLTIwLDYgKzIwLDcgQEAKICAqLwogCiAjaW5jbHVkZSAia2pzX2h0bWwuaCIKKyNp
bmNsdWRlICJjb25maWcuaCIKIAogI2luY2x1ZGUgIm1pc2MvbG9hZGVyLmgiCiAjaW5jbHVkZSAi
ZG9tL2RvbV9leGNlcHRpb24uaCIKQEAgLTQzNTQsNyArNDM1NSw3IEBAIFZhbHVlSW1wICpLSlM6
OkNvbnRleHQyREZ1bmN0aW9uOjpjYWxsQXMKICAgICAgICAgICAgICAgICAgICAgQ0dDb2xvclNw
YWNlUmVmIGNvbG9yU3BhY2UgPSBDR0NvbG9yU3BhY2VDcmVhdGVEZXZpY2VSR0IoKTsKICAgICAg
ICAgICAgICAgICAgICAgc2l6ZV90IG51bUNvbXBvbmVudHMgPSBDR0NvbG9yU3BhY2VHZXROdW1i
ZXJPZkNvbXBvbmVudHMoY29sb3JTcGFjZSk7CiAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBi
eXRlc1BlclJvdyA9IEJZVEVTX1BFUl9ST1coY3N3LEJJVFNfUEVSX0NPTVBPTkVOVCwobnVtQ29t
cG9uZW50cysxKSk7IC8vICsgMSBmb3IgYWxwaGEKLSAgICAgICAgICAgICAgICAgICAgdm9pZCAq
X2RyYXdpbmdDb250ZXh0RGF0YSA9IG1hbGxvYyhjc2ggKiBieXRlc1BlclJvdyk7CisgICAgICAg
ICAgICAgICAgICAgIHZvaWQgKl9kcmF3aW5nQ29udGV4dERhdGEgPSBmYXN0TWFsbG9jKGNzaCAq
IGJ5dGVzUGVyUm93KTsKICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAg
IGNsaXBwZWRTb3VyY2VDb250ZXh0ID0gQ0dCaXRtYXBDb250ZXh0Q3JlYXRlKF9kcmF3aW5nQ29u
dGV4dERhdGEsIGNzdywgY3NoLCBCSVRTX1BFUl9DT01QT05FTlQsIGJ5dGVzUGVyUm93LCBjb2xv
clNwYWNlLCBrQ0dJbWFnZUFscGhhUHJlbXVsdGlwbGllZExhc3QpOwogICAgICAgICAgICAgICAg
ICAgICBDR0NvbnRleHRUcmFuc2xhdGVDVE0gKGNsaXBwZWRTb3VyY2VDb250ZXh0LCAtc3gsIC1z
eSk7CkBAIC00MzY0LDcgKzQzNjUsNyBAQCBWYWx1ZUltcCAqS0pTOjpDb250ZXh0MkRGdW5jdGlv
bjo6Y2FsbEFzCiAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICBDR0lt
YWdlUmVsZWFzZSAoY2xpcHBlZFNvdXJjZUltYWdlKTsKICAgICAgICAgICAgICAgICAgICAgQ0dD
b250ZXh0UmVsZWFzZSAoY2xpcHBlZFNvdXJjZUNvbnRleHQpOwotICAgICAgICAgICAgICAgICAg
ICBmcmVlIChfZHJhd2luZ0NvbnRleHREYXRhKTsKKyAgICAgICAgICAgICAgICAgICAgZmFzdEZy
ZWUgKF9kcmF3aW5nQ29udGV4dERhdGEpOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
ICAgICAKICAgICAgICAgICAgICAgICBDR0ltYWdlUmVsZWFzZSAoc291cmNlSW1hZ2UpOwpAQCAt
NTEwNywxMCArNTEwOCwxMCBAQCBHcmFkaWVudDo6fkdyYWRpZW50KCkKICAgICAgICAgX3NoYWRp
bmdSZWYgPSAwOwogICAgIH0KICAgICAKLSAgICBmcmVlIChzdG9wcyk7CisgICAgZmFzdEZyZWUo
c3RvcHMpOwogICAgIHN0b3BzID0gMDsKICAgICAKLSAgICBmcmVlIChhZGp1c3RlZFN0b3BzKTsK
KyAgICBmYXN0RnJlZShhZGp1c3RlZFN0b3BzKTsKICAgICBhZGp1c3RlZFN0b3BzID0gMDsKIH0K
IApAQCAtNTE0NCwxMSArNTE0NSwxMSBAQCB2b2lkIEdyYWRpZW50OjphZGRDb2xvclN0b3AgKGZs
b2F0IHMsIGZsCiB7CiAgICAgaWYgKHN0b3BDb3VudCA9PSAwKSB7CiAgICAgICAgIG1heFN0b3Bz
ID0gNDsKLSAgICAgICAgc3RvcHMgPSAoQ29sb3JTdG9wICopbWFsbG9jKG1heFN0b3BzICogc2l6
ZW9mKENvbG9yU3RvcCkpOworICAgICAgICBzdG9wcyA9IChDb2xvclN0b3AgKilmYXN0TWFsbG9j
KG1heFN0b3BzICogc2l6ZW9mKENvbG9yU3RvcCkpOwogICAgIH0KICAgICBlbHNlIGlmIChzdG9w
Q291bnQrMSA+IG1heFN0b3BzKSB7CiAgICAgICAgIG1heFN0b3BzICo9IDI7Ci0gICAgICAgIHN0
b3BzID0gKENvbG9yU3RvcCAqKXJlYWxsb2Moc3RvcHMsIG1heFN0b3BzICogc2l6ZW9mKENvbG9y
U3RvcCkpOworICAgICAgICBzdG9wcyA9IChDb2xvclN0b3AgKilmYXN0UmVhbGxvYyhzdG9wcywg
bWF4U3RvcHMgKiBzaXplb2YoQ29sb3JTdG9wKSk7CiAgICAgfQogICAgIHN0b3BzW3N0b3BDb3Vu
dCsrXSA9IENvbG9yU3RvcCAocywgciwgZywgYiwgYSk7CiAgICAgc3RvcHNOZWVkQWRqdXN0aW5n
ID0gdHJ1ZTsKQEAgLTUxODgsNyArNTE4OSw3IEBAIGNvbnN0IENvbG9yU3RvcCAqR3JhZGllbnQ6
OmNvbG9yU3RvcHMoaW4KICAgICAgICAgICAgIGFkanVzdGVkU3RvcENvdW50Kys7CiAgICAgICAg
ICAgICAKICAgICAgICAgaWYgKGFkanVzdGVkU3RvcENvdW50ICE9IHN0b3BDb3VudCkgewotICAg
ICAgICAgICAgYWRqdXN0ZWRTdG9wcyA9IChDb2xvclN0b3AgKiltYWxsb2MoYWRqdXN0ZWRTdG9w
Q291bnQgKiBzaXplb2YoQ29sb3JTdG9wKSk7CisgICAgICAgICAgICBhZGp1c3RlZFN0b3BzID0g
KENvbG9yU3RvcCAqKWZhc3RNYWxsb2MoYWRqdXN0ZWRTdG9wQ291bnQgKiBzaXplb2YoQ29sb3JT
dG9wKSk7CiAgICAgICAgICAgICBtZW1jcHkgKGhhdmVaZXJvU3RvcCA/IGFkanVzdGVkU3RvcHMg
OiBhZGp1c3RlZFN0b3BzKzEsCiAgICAgICAgICAgICAgICAgc3RvcHMsIHN0b3BDb3VudCpzaXpl
b2YoQ29sb3JTdG9wKSk7CiAKSW5kZXg6IFdlYkNvcmUva2h0bWwvZWNtYS9ranNfbmF2aWdhdG9y
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9raHRtbC9lY21hL2tq
c19uYXZpZ2F0b3IuY3BwLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjM1CmRpZmYgLXUgLXAgLXIx
LjM1IFdlYkNvcmUva2h0bWwvZWNtYS9ranNfbmF2aWdhdG9yLmNwcAotLS0gV2ViQ29yZS9raHRt
bC9lY21hL2tqc19uYXZpZ2F0b3IuY3BwCTE2IFNlcCAyMDA1IDIyOjQyOjA1IC0wMDAwCTEuMzUK
KysrIFdlYkNvcmUva2h0bWwvZWNtYS9ranNfbmF2aWdhdG9yLmNwcAkzIE9jdCAyMDA1IDA0OjIy
OjU2IC0wMDAwCkBAIC0yMiw2ICsyMiw3IEBACiAgKi8KIAogI2luY2x1ZGUgPGtsb2NhbGUuaD4K
KyNpbmNsdWRlICJjb25maWcuaCIKIAogI2luY2x1ZGUgPGtzdGFuZGFyZGRpcnMuaD4KICNpbmNs
dWRlIDxrY29uZmlnLmg+CkluZGV4OiBXZWJDb3JlL2todG1sL2VjbWEva2pzX3Byb3h5LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9raHRtbC9lY21hL2tqc19wcm94
eS5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMjMKZGlmZiAtdSAtcCAtcjEuMjMgV2ViQ29y
ZS9raHRtbC9lY21hL2tqc19wcm94eS5jcHAKLS0tIFdlYkNvcmUva2h0bWwvZWNtYS9ranNfcHJv
eHkuY3BwCTE5IFNlcCAyMDA1IDE4OjUyOjExIC0wMDAwCTEuMjMKKysrIFdlYkNvcmUva2h0bWwv
ZWNtYS9ranNfcHJveHkuY3BwCTMgT2N0IDIwMDUgMDQ6MjI6NTYgLTAwMDAKQEAgLTE5LDYgKzE5
LDcgQEAKICAqLwogCiAjaW5jbHVkZSAia2pzX3Byb3h5LmgiCisjaW5jbHVkZSAiY29uZmlnLmgi
CiAKICNpbmNsdWRlICJranNfd2luZG93LmgiCiAjaW5jbHVkZSAia2pzX2V2ZW50cy5oIgpJbmRl
eDogV2ViQ29yZS9raHRtbC9lY21hL2tqc19yYW5nZS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTog
L2N2cy9yb290L1dlYkNvcmUva2h0bWwvZWNtYS9ranNfcmFuZ2UuY3BwLHYKcmV0cmlldmluZyBy
ZXZpc2lvbiAxLjE2CmRpZmYgLXUgLXAgLXIxLjE2IFdlYkNvcmUva2h0bWwvZWNtYS9ranNfcmFu
Z2UuY3BwCi0tLSBXZWJDb3JlL2todG1sL2VjbWEva2pzX3JhbmdlLmNwcAkyNSBBdWcgMjAwNSAx
Nzo0NzowMSAtMDAwMAkxLjE2CisrKyBXZWJDb3JlL2todG1sL2VjbWEva2pzX3JhbmdlLmNwcAkz
IE9jdCAyMDA1IDA0OjIyOjU2IC0wMDAwCkBAIC0yMCw2ICsyMCw3IEBACiAgKi8KIAogI2luY2x1
ZGUgImtqc19yYW5nZS5oIgorI2luY2x1ZGUgImNvbmZpZy5oIgogCiAjaW5jbHVkZSA8a2RlYnVn
Lmg+CiAjaW5jbHVkZSAiZG9tL2RvbTJfcmFuZ2UuaCIKSW5kZXg6IFdlYkNvcmUva2h0bWwvZWNt
YS9ranNfdHJhdmVyc2FsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29y
ZS9raHRtbC9lY21hL2tqc190cmF2ZXJzYWwuY3BwLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjE3
CmRpZmYgLXUgLXAgLXIxLjE3IFdlYkNvcmUva2h0bWwvZWNtYS9ranNfdHJhdmVyc2FsLmNwcAot
LS0gV2ViQ29yZS9raHRtbC9lY21hL2tqc190cmF2ZXJzYWwuY3BwCTE5IFNlcCAyMDA1IDE4OjUy
OjExIC0wMDAwCTEuMTcKKysrIFdlYkNvcmUva2h0bWwvZWNtYS9ranNfdHJhdmVyc2FsLmNwcAkz
IE9jdCAyMDA1IDA0OjIyOjU2IC0wMDAwCkBAIC0xOCw2ICsxOCw3IEBACiAgKi8KIAogI2luY2x1
ZGUgImtqc190cmF2ZXJzYWwuaCIKKyNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJranNf
dHJhdmVyc2FsLmx1dC5oIgogCiAjaW5jbHVkZSAia2pzX3Byb3h5LmgiCkluZGV4OiBXZWJDb3Jl
L2todG1sL2VjbWEva2pzX3ZpZXdzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3Qv
V2ViQ29yZS9raHRtbC9lY21hL2tqc192aWV3cy5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEu
MTMKZGlmZiAtdSAtcCAtcjEuMTMgV2ViQ29yZS9raHRtbC9lY21hL2tqc192aWV3cy5jcHAKLS0t
IFdlYkNvcmUva2h0bWwvZWNtYS9ranNfdmlld3MuY3BwCTI3IFNlcCAyMDA1IDIyOjM3OjA0IC0w
MDAwCTEuMTMKKysrIFdlYkNvcmUva2h0bWwvZWNtYS9ranNfdmlld3MuY3BwCTMgT2N0IDIwMDUg
MDQ6MjI6NTYgLTAwMDAKQEAgLTE5LDYgKzE5LDcgQEAKICAqLwogCiAjaW5jbHVkZSAia2pzX3Zp
ZXdzLmgiCisjaW5jbHVkZSAiY29uZmlnLmgiCiAKICNpbmNsdWRlICJranNfY3NzLmgiCiAKSW5k
ZXg6IFdlYkNvcmUva2h0bWwvZWNtYS9ranNfd2luZG93LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxl
OiAvY3ZzL3Jvb3QvV2ViQ29yZS9raHRtbC9lY21hL2tqc193aW5kb3cuY3BwLHYKcmV0cmlldmlu
ZyByZXZpc2lvbiAxLjE4MQpkaWZmIC11IC1wIC1yMS4xODEgV2ViQ29yZS9raHRtbC9lY21hL2tq
c193aW5kb3cuY3BwCi0tLSBXZWJDb3JlL2todG1sL2VjbWEva2pzX3dpbmRvdy5jcHAJMjcgU2Vw
IDIwMDUgMjI6Mzc6MDUgLTAwMDAJMS4xODEKKysrIFdlYkNvcmUva2h0bWwvZWNtYS9ranNfd2lu
ZG93LmNwcAkzIE9jdCAyMDA1IDA0OjIyOjU2IC0wMDAwCkBAIC0yMCw2ICsyMCw3IEBACiAgKi8K
IAogI2luY2x1ZGUgImtqc193aW5kb3cuaCIKKyNpbmNsdWRlICJjb25maWcuaCIKIAogI2luY2x1
ZGUgPHFzdHlsZXNoZWV0Lmg+CiAjaW5jbHVkZSA8cXRpbWVyLmg+CkluZGV4OiBXZWJDb3JlL2to
dG1sL2VjbWEveG1saHR0cHJlcXVlc3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9v
dC9XZWJDb3JlL2todG1sL2VjbWEveG1saHR0cHJlcXVlc3QuY3BwLHYKcmV0cmlldmluZyByZXZp
c2lvbiAxLjQyCmRpZmYgLXUgLXAgLXIxLjQyIFdlYkNvcmUva2h0bWwvZWNtYS94bWxodHRwcmVx
dWVzdC5jcHAKLS0tIFdlYkNvcmUva2h0bWwvZWNtYS94bWxodHRwcmVxdWVzdC5jcHAJMTkgU2Vw
IDIwMDUgMTg6NTI6MTEgLTAwMDAJMS40MgorKysgV2ViQ29yZS9raHRtbC9lY21hL3htbGh0dHBy
ZXF1ZXN0LmNwcAkzIE9jdCAyMDA1IDA0OjIyOjU2IC0wMDAwCkBAIC0xOCw2ICsxOCw3IEBACiAg
Ki8KIAogI2luY2x1ZGUgInhtbGh0dHByZXF1ZXN0LmgiCisjaW5jbHVkZSAiY29uZmlnLmgiCiAK
ICNpbmNsdWRlICJranNfd2luZG93LmgiCiAjaW5jbHVkZSAia2pzX2V2ZW50cy5oIgpJbmRleDog
V2ViQ29yZS9raHRtbC9lY21hL3htbHNlcmlhbGl6ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6
IC9jdnMvcm9vdC9XZWJDb3JlL2todG1sL2VjbWEveG1sc2VyaWFsaXplci5jcHAsdgpyZXRyaWV2
aW5nIHJldmlzaW9uIDEuOApkaWZmIC11IC1wIC1yMS44IFdlYkNvcmUva2h0bWwvZWNtYS94bWxz
ZXJpYWxpemVyLmNwcAotLS0gV2ViQ29yZS9raHRtbC9lY21hL3htbHNlcmlhbGl6ZXIuY3BwCTI1
IEF1ZyAyMDA1IDE3OjQ3OjAyIC0wMDAwCTEuOAorKysgV2ViQ29yZS9raHRtbC9lY21hL3htbHNl
cmlhbGl6ZXIuY3BwCTMgT2N0IDIwMDUgMDQ6MjI6NTYgLTAwMDAKQEAgLTE5LDYgKzE5LDcgQEAK
ICAqLwogCiAjaW5jbHVkZSAieG1sc2VyaWFsaXplci5oIgorI2luY2x1ZGUgImNvbmZpZy5oIgog
I2luY2x1ZGUgInhtbHNlcmlhbGl6ZXIubHV0LmgiCiAKICNpbmNsdWRlICJranNfZG9tLmgiCklu
ZGV4OiBXZWJDb3JlL2todG1sL2VkaXRpbmcvU2VsZWN0aW9uQ29udHJvbGxlci5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva2h0bWwvZWRpdGluZy9TZWxlY3Rpb25D
b250cm9sbGVyLmNwcCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS45NgpkaWZmIC11IC1wIC1yMS45
NiBXZWJDb3JlL2todG1sL2VkaXRpbmcvU2VsZWN0aW9uQ29udHJvbGxlci5jcHAKLS0tIFdlYkNv
cmUva2h0bWwvZWRpdGluZy9TZWxlY3Rpb25Db250cm9sbGVyLmNwcAkyNyBTZXAgMjAwNSAyMjoz
NzowOCAtMDAwMAkxLjk2CisrKyBXZWJDb3JlL2todG1sL2VkaXRpbmcvU2VsZWN0aW9uQ29udHJv
bGxlci5jcHAJMyBPY3QgMjAwNSAwNDoyMjo1NiAtMDAwMApAQCAtMjQsNiArMjQsNyBAQAogICov
CiAgIAogI2luY2x1ZGUgIlNlbGVjdGlvbkNvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJjb25maWcu
aCIKIAogI2luY2x1ZGUgPHFldmVudC5oPgogI2luY2x1ZGUgPHFwYWludGVyLmg+CkluZGV4OiBX
ZWJDb3JlL2todG1sL2VkaXRpbmcvYXBwZW5kX25vZGVfY29tbWFuZC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpS
Q1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva2h0bWwvZWRpdGluZy9hcHBlbmRfbm9kZV9jb21t
YW5kLmNwcCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4yCmRpZmYgLXUgLXAgLXIxLjIgV2ViQ29y
ZS9raHRtbC9lZGl0aW5nL2FwcGVuZF9ub2RlX2NvbW1hbmQuY3BwCi0tLSBXZWJDb3JlL2todG1s
L2VkaXRpbmcvYXBwZW5kX25vZGVfY29tbWFuZC5jcHAJMjcgU2VwIDIwMDUgMjI6Mzc6MDkgLTAw
MDAJMS4yCisrKyBXZWJDb3JlL2todG1sL2VkaXRpbmcvYXBwZW5kX25vZGVfY29tbWFuZC5jcHAJ
MyBPY3QgMjAwNSAwNDoyMjo1NiAtMDAwMApAQCAtMjQsNiArMjQsNyBAQAogICovCiAKICNpbmNs
dWRlICJhcHBlbmRfbm9kZV9jb21tYW5kLmgiCisjaW5jbHVkZSAiY29uZmlnLmgiCiAKICNpbmNs
dWRlICJ4bWwvZG9tX25vZGVpbXBsLmgiCiAKSW5kZXg6IFdlYkNvcmUva2h0bWwvZWRpdGluZy9h
cHBseV9zdHlsZV9jb21tYW5kLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2Vi
Q29yZS9raHRtbC9lZGl0aW5nL2FwcGx5X3N0eWxlX2NvbW1hbmQuY3BwLHYKcmV0cmlldmluZyBy
ZXZpc2lvbiAxLjE1CmRpZmYgLXUgLXAgLXIxLjE1IFdlYkNvcmUva2h0bWwvZWRpdGluZy9hcHBs
eV9zdHlsZV9jb21tYW5kLmNwcAotLS0gV2ViQ29yZS9raHRtbC9lZGl0aW5nL2FwcGx5X3N0eWxl
X2NvbW1hbmQuY3BwCTI3IFNlcCAyMDA1IDIyOjM3OjA5IC0wMDAwCTEuMTUKKysrIFdlYkNvcmUv
a2h0bWwvZWRpdGluZy9hcHBseV9zdHlsZV9jb21tYW5kLmNwcAkzIE9jdCAyMDA1IDA0OjIyOjU2
IC0wMDAwCkBAIC0yNCw2ICsyNCw3IEBACiAgKi8KIAogI2luY2x1ZGUgImFwcGx5X3N0eWxlX2Nv
bW1hbmQuaCIKKyNpbmNsdWRlICJjb25maWcuaCIKIAogI2luY2x1ZGUgImh0bWxfaW50ZXJjaGFu
Z2UuaCIKIApJbmRleDogV2ViQ29yZS9raHRtbC9lZGl0aW5nL2JyZWFrX2Jsb2NrcXVvdGVfY29t
bWFuZC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva2h0bWwvZWRp
dGluZy9icmVha19ibG9ja3F1b3RlX2NvbW1hbmQuY3BwLHYKcmV0cmlldmluZyByZXZpc2lvbiAx
LjgKZGlmZiAtdSAtcCAtcjEuOCBXZWJDb3JlL2todG1sL2VkaXRpbmcvYnJlYWtfYmxvY2txdW90
ZV9jb21tYW5kLmNwcAotLS0gV2ViQ29yZS9raHRtbC9lZGl0aW5nL2JyZWFrX2Jsb2NrcXVvdGVf
Y29tbWFuZC5jcHAJMjcgU2VwIDIwMDUgMjI6Mzc6MDkgLTAwMDAJMS44CisrKyBXZWJDb3JlL2to
dG1sL2VkaXRpbmcvYnJlYWtfYmxvY2txdW90ZV9jb21tYW5kLmNwcAkzIE9jdCAyMDA1IDA0OjIy
OjU2IC0wMDAwCkBAIC0yNCw2ICsyNCw3IEBACiAgKi8KIAogI2luY2x1ZGUgImJyZWFrX2Jsb2Nr
cXVvdGVfY29tbWFuZC5oIgorI2luY2x1ZGUgImNvbmZpZy5oIgogCiAjaW5jbHVkZSAiaHRtbGVk
aXRpbmcuaCIKICNpbmNsdWRlICJ2aXNpYmxlX3Bvc2l0aW9uLmgiCkluZGV4OiBXZWJDb3JlL2to
dG1sL2VkaXRpbmcvY29tcG9zaXRlX2VkaXRfY29tbWFuZC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmls
ZTogL2N2cy9yb290L1dlYkNvcmUva2h0bWwvZWRpdGluZy9jb21wb3NpdGVfZWRpdF9jb21tYW5k
LmNwcCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4xNApkaWZmIC11IC1wIC1yMS4xNCBXZWJDb3Jl
L2todG1sL2VkaXRpbmcvY29tcG9zaXRlX2VkaXRfY29tbWFuZC5jcHAKLS0tIFdlYkNvcmUva2h0
bWwvZWRpdGluZy9jb21wb3NpdGVfZWRpdF9jb21tYW5kLmNwcAkyOSBTZXAgMjAwNSAwNzo0Nzow
NiAtMDAwMAkxLjE0CisrKyBXZWJDb3JlL2todG1sL2VkaXRpbmcvY29tcG9zaXRlX2VkaXRfY29t
bWFuZC5jcHAJMyBPY3QgMjAwNSAwNDoyMjo1NiAtMDAwMApAQCAtMjQsNiArMjQsNyBAQAogICov
CiAKICNpbmNsdWRlICJjb21wb3NpdGVfZWRpdF9jb21tYW5kLmgiCisjaW5jbHVkZSAiY29uZmln
LmgiCiAKICNpbmNsdWRlICJhcHBlbmRfbm9kZV9jb21tYW5kLmgiCiAjaW5jbHVkZSAiZGVsZXRl
X2Zyb21fdGV4dF9ub2RlX2NvbW1hbmQuaCIKSW5kZXg6IFdlYkNvcmUva2h0bWwvZWRpdGluZy9k
ZWxldGVfZnJvbV90ZXh0X25vZGVfY29tbWFuZC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2
cy9yb290L1dlYkNvcmUva2h0bWwvZWRpdGluZy9kZWxldGVfZnJvbV90ZXh0X25vZGVfY29tbWFu
ZC5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMwpkaWZmIC11IC1wIC1yMS4zIFdlYkNvcmUv
a2h0bWwvZWRpdGluZy9kZWxldGVfZnJvbV90ZXh0X25vZGVfY29tbWFuZC5jcHAKLS0tIFdlYkNv
cmUva2h0bWwvZWRpdGluZy9kZWxldGVfZnJvbV90ZXh0X25vZGVfY29tbWFuZC5jcHAJMjcgU2Vw
IDIwMDUgMjI6Mzc6MDkgLTAwMDAJMS4zCisrKyBXZWJDb3JlL2todG1sL2VkaXRpbmcvZGVsZXRl
X2Zyb21fdGV4dF9ub2RlX2NvbW1hbmQuY3BwCTMgT2N0IDIwMDUgMDQ6MjI6NTYgLTAwMDAKQEAg
LTI0LDYgKzI0LDcgQEAKICAqLwogCiAjaW5jbHVkZSAiZGVsZXRlX2Zyb21fdGV4dF9ub2RlX2Nv
bW1hbmQuaCIKKyNpbmNsdWRlICJjb25maWcuaCIKIAogI2luY2x1ZGUgInhtbC9kb21fdGV4dGlt
cGwuaCIKIApJbmRleDogV2ViQ29yZS9raHRtbC9lZGl0aW5nL2RlbGV0ZV9zZWxlY3Rpb25fY29t
bWFuZC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva2h0bWwvZWRp
dGluZy9kZWxldGVfc2VsZWN0aW9uX2NvbW1hbmQuY3BwLHYKcmV0cmlldmluZyByZXZpc2lvbiAx
LjE4CmRpZmYgLXUgLXAgLXIxLjE4IFdlYkNvcmUva2h0bWwvZWRpdGluZy9kZWxldGVfc2VsZWN0
aW9uX2NvbW1hbmQuY3BwCi0tLSBXZWJDb3JlL2todG1sL2VkaXRpbmcvZGVsZXRlX3NlbGVjdGlv
bl9jb21tYW5kLmNwcAkyNyBTZXAgMjAwNSAyMjozNzowOSAtMDAwMAkxLjE4CisrKyBXZWJDb3Jl
L2todG1sL2VkaXRpbmcvZGVsZXRlX3NlbGVjdGlvbl9jb21tYW5kLmNwcAkzIE9jdCAyMDA1IDA0
OjIyOjU3IC0wMDAwCkBAIC0yNCw2ICsyNCw3IEBACiAgKi8KIAogI2luY2x1ZGUgImRlbGV0ZV9z
ZWxlY3Rpb25fY29tbWFuZC5oIgorI2luY2x1ZGUgImNvbmZpZy5oIgogCiAjaW5jbHVkZSAiY3Nz
L2Nzc19jb21wdXRlZHN0eWxlLmgiCiAjaW5jbHVkZSAiaHRtbGVkaXRpbmcuaCIKSW5kZXg6IFdl
YkNvcmUva2h0bWwvZWRpdGluZy9lZGl0X2NvbW1hbmQuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6
IC9jdnMvcm9vdC9XZWJDb3JlL2todG1sL2VkaXRpbmcvZWRpdF9jb21tYW5kLmNwcCx2CnJldHJp
ZXZpbmcgcmV2aXNpb24gMS44CmRpZmYgLXUgLXAgLXIxLjggV2ViQ29yZS9raHRtbC9lZGl0aW5n
L2VkaXRfY29tbWFuZC5jcHAKLS0tIFdlYkNvcmUva2h0bWwvZWRpdGluZy9lZGl0X2NvbW1hbmQu
Y3BwCTI3IFNlcCAyMDA1IDIyOjM3OjA5IC0wMDAwCTEuOAorKysgV2ViQ29yZS9raHRtbC9lZGl0
aW5nL2VkaXRfY29tbWFuZC5jcHAJMyBPY3QgMjAwNSAwNDoyMjo1NyAtMDAwMApAQCAtMjQsNiAr
MjQsNyBAQAogICovCiAKICNpbmNsdWRlICJlZGl0X2NvbW1hbmQuaCIKKyNpbmNsdWRlICJjb25m
aWcuaCIKICNpbmNsdWRlICJTZWxlY3Rpb25Db250cm9sbGVyLmgiCiAjaW5jbHVkZSAia2h0bWxf
cGFydC5oIgogI2luY2x1ZGUgImh0bWxlZGl0aW5nLmgiCkluZGV4OiBXZWJDb3JlL2todG1sL2Vk
aXRpbmcvaHRtbF9pbnRlcmNoYW5nZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290
L1dlYkNvcmUva2h0bWwvZWRpdGluZy9odG1sX2ludGVyY2hhbmdlLmNwcCx2CnJldHJpZXZpbmcg
cmV2aXNpb24gMS4yCmRpZmYgLXUgLXAgLXIxLjIgV2ViQ29yZS9raHRtbC9lZGl0aW5nL2h0bWxf
aW50ZXJjaGFuZ2UuY3BwCi0tLSBXZWJDb3JlL2todG1sL2VkaXRpbmcvaHRtbF9pbnRlcmNoYW5n
ZS5jcHAJOCBNYXIgMjAwNSAxNzo0MjozOCAtMDAwMAkxLjIKKysrIFdlYkNvcmUva2h0bWwvZWRp
dGluZy9odG1sX2ludGVyY2hhbmdlLmNwcAkzIE9jdCAyMDA1IDA0OjIyOjU3IC0wMDAwCkBAIC0y
NCw2ICsyNCw3IEBACiAgKi8KIAogI2luY2x1ZGUgImh0bWxfaW50ZXJjaGFuZ2UuaCIKKyNpbmNs
dWRlICJjb25maWcuaCIKIAogI2luY2x1ZGUgPHFzdHJpbmcuaD4KICNpbmNsdWRlICJ2aXNpYmxl
X3RleHQuaCIKSW5kZXg6IFdlYkNvcmUva2h0bWwvZWRpdGluZy9odG1sZWRpdGluZy5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva2h0bWwvZWRpdGluZy9odG1sZWRp
dGluZy5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMjU5CmRpZmYgLXUgLXAgLXIxLjI1OSBX
ZWJDb3JlL2todG1sL2VkaXRpbmcvaHRtbGVkaXRpbmcuY3BwCi0tLSBXZWJDb3JlL2todG1sL2Vk
aXRpbmcvaHRtbGVkaXRpbmcuY3BwCTI5IFNlcCAyMDA1IDA3OjQ3OjA2IC0wMDAwCTEuMjU5Cisr
KyBXZWJDb3JlL2todG1sL2VkaXRpbmcvaHRtbGVkaXRpbmcuY3BwCTMgT2N0IDIwMDUgMDQ6MjI6
NTcgLTAwMDAKQEAgLTI0LDYgKzI0LDcgQEAKICAqLwogCiAjaW5jbHVkZSAiaHRtbGVkaXRpbmcu
aCIKKyNpbmNsdWRlICJjb25maWcuaCIKIAogI2luY2x1ZGUgImNzc19jb21wdXRlZHN0eWxlLmgi
CiAjaW5jbHVkZSAiY3NzX3ZhbHVlLmgiCkluZGV4OiBXZWJDb3JlL2todG1sL2VkaXRpbmcvaW5z
ZXJ0X2ludG9fdGV4dF9ub2RlX2NvbW1hbmQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMv
cm9vdC9XZWJDb3JlL2todG1sL2VkaXRpbmcvaW5zZXJ0X2ludG9fdGV4dF9ub2RlX2NvbW1hbmQu
Y3BwLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjMKZGlmZiAtdSAtcCAtcjEuMyBXZWJDb3JlL2to
dG1sL2VkaXRpbmcvaW5zZXJ0X2ludG9fdGV4dF9ub2RlX2NvbW1hbmQuY3BwCi0tLSBXZWJDb3Jl
L2todG1sL2VkaXRpbmcvaW5zZXJ0X2ludG9fdGV4dF9ub2RlX2NvbW1hbmQuY3BwCTI3IFNlcCAy
MDA1IDIyOjM3OjEwIC0wMDAwCTEuMworKysgV2ViQ29yZS9raHRtbC9lZGl0aW5nL2luc2VydF9p
bnRvX3RleHRfbm9kZV9jb21tYW5kLmNwcAkzIE9jdCAyMDA1IDA0OjIyOjU3IC0wMDAwCkBAIC0y
NCw2ICsyNCw3IEBACiAgKi8KIAogI2luY2x1ZGUgImluc2VydF9pbnRvX3RleHRfbm9kZV9jb21t
YW5kLmgiCisjaW5jbHVkZSAiY29uZmlnLmgiCiAKICNpbmNsdWRlICJ4bWwvZG9tX3RleHRpbXBs
LmgiCiAKSW5kZXg6IFdlYkNvcmUva2h0bWwvZWRpdGluZy9pbnNlcnRfbGluZV9icmVha19jb21t
YW5kLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9raHRtbC9lZGl0
aW5nL2luc2VydF9saW5lX2JyZWFrX2NvbW1hbmQuY3BwLHYKcmV0cmlldmluZyByZXZpc2lvbiAx
LjcKZGlmZiAtdSAtcCAtcjEuNyBXZWJDb3JlL2todG1sL2VkaXRpbmcvaW5zZXJ0X2xpbmVfYnJl
YWtfY29tbWFuZC5jcHAKLS0tIFdlYkNvcmUva2h0bWwvZWRpdGluZy9pbnNlcnRfbGluZV9icmVh
a19jb21tYW5kLmNwcAkyNyBTZXAgMjAwNSAyMjozNzoxMCAtMDAwMAkxLjcKKysrIFdlYkNvcmUv
a2h0bWwvZWRpdGluZy9pbnNlcnRfbGluZV9icmVha19jb21tYW5kLmNwcAkzIE9jdCAyMDA1IDA0
OjIyOjU3IC0wMDAwCkBAIC0yNCw2ICsyNCw3IEBACiAgKi8KIAogI2luY2x1ZGUgImluc2VydF9s
aW5lX2JyZWFrX2NvbW1hbmQuaCIKKyNpbmNsdWRlICJjb25maWcuaCIKIAogI2luY2x1ZGUgImh0
bWxlZGl0aW5nLmgiCiAjaW5jbHVkZSAidmlzaWJsZV9wb3NpdGlvbi5oIgpJbmRleDogV2ViQ29y
ZS9raHRtbC9lZGl0aW5nL2luc2VydF9ub2RlX2JlZm9yZV9jb21tYW5kLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9raHRtbC9lZGl0aW5nL2luc2VydF9ub2RlX2Jl
Zm9yZV9jb21tYW5kLmNwcCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4yCmRpZmYgLXUgLXAgLXIx
LjIgV2ViQ29yZS9raHRtbC9lZGl0aW5nL2luc2VydF9ub2RlX2JlZm9yZV9jb21tYW5kLmNwcAot
LS0gV2ViQ29yZS9raHRtbC9lZGl0aW5nL2luc2VydF9ub2RlX2JlZm9yZV9jb21tYW5kLmNwcAky
NyBTZXAgMjAwNSAyMjozNzoxMCAtMDAwMAkxLjIKKysrIFdlYkNvcmUva2h0bWwvZWRpdGluZy9p
bnNlcnRfbm9kZV9iZWZvcmVfY29tbWFuZC5jcHAJMyBPY3QgMjAwNSAwNDoyMjo1NyAtMDAwMApA
QCAtMjQsNiArMjQsNyBAQAogICovCiAKICNpbmNsdWRlICJpbnNlcnRfbm9kZV9iZWZvcmVfY29t
bWFuZC5oIgorI2luY2x1ZGUgImNvbmZpZy5oIgogCiAjaW5jbHVkZSAieG1sL2RvbV9ub2RlaW1w
bC5oIgogCkluZGV4OiBXZWJDb3JlL2todG1sL2VkaXRpbmcvaW5zZXJ0X3BhcmFncmFwaF9zZXBh
cmF0b3JfY29tbWFuZC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUv
a2h0bWwvZWRpdGluZy9pbnNlcnRfcGFyYWdyYXBoX3NlcGFyYXRvcl9jb21tYW5kLmNwcCx2CnJl
dHJpZXZpbmcgcmV2aXNpb24gMS44CmRpZmYgLXUgLXAgLXIxLjggV2ViQ29yZS9raHRtbC9lZGl0
aW5nL2luc2VydF9wYXJhZ3JhcGhfc2VwYXJhdG9yX2NvbW1hbmQuY3BwCi0tLSBXZWJDb3JlL2to
dG1sL2VkaXRpbmcvaW5zZXJ0X3BhcmFncmFwaF9zZXBhcmF0b3JfY29tbWFuZC5jcHAJMjcgU2Vw
IDIwMDUgMjI6Mzc6MTAgLTAwMDAJMS44CisrKyBXZWJDb3JlL2todG1sL2VkaXRpbmcvaW5zZXJ0
X3BhcmFncmFwaF9zZXBhcmF0b3JfY29tbWFuZC5jcHAJMyBPY3QgMjAwNSAwNDoyMjo1NyAtMDAw
MApAQCAtMjQsNiArMjQsNyBAQAogICovCiAKICNpbmNsdWRlICJpbnNlcnRfcGFyYWdyYXBoX3Nl
cGFyYXRvcl9jb21tYW5kLmgiCisjaW5jbHVkZSAiY29uZmlnLmgiCiAKICNpbmNsdWRlICJodG1s
ZWRpdGluZy5oIgogI2luY2x1ZGUgInZpc2libGVfcG9zaXRpb24uaCIKSW5kZXg6IFdlYkNvcmUv
a2h0bWwvZWRpdGluZy9pbnNlcnRfdGV4dF9jb21tYW5kLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxl
OiAvY3ZzL3Jvb3QvV2ViQ29yZS9raHRtbC9lZGl0aW5nL2luc2VydF90ZXh0X2NvbW1hbmQuY3Bw
LHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjEwCmRpZmYgLXUgLXAgLXIxLjEwIFdlYkNvcmUva2h0
bWwvZWRpdGluZy9pbnNlcnRfdGV4dF9jb21tYW5kLmNwcAotLS0gV2ViQ29yZS9raHRtbC9lZGl0
aW5nL2luc2VydF90ZXh0X2NvbW1hbmQuY3BwCTI5IFNlcCAyMDA1IDA3OjQ3OjA2IC0wMDAwCTEu
MTAKKysrIFdlYkNvcmUva2h0bWwvZWRpdGluZy9pbnNlcnRfdGV4dF9jb21tYW5kLmNwcAkzIE9j
dCAyMDA1IDA0OjIyOjU3IC0wMDAwCkBAIC0yNCw2ICsyNCw3IEBACiAgKi8KIAogI2luY2x1ZGUg
Imluc2VydF90ZXh0X2NvbW1hbmQuaCIKKyNpbmNsdWRlICJjb25maWcuaCIKIAogI2luY2x1ZGUg
ImtodG1sX3BhcnQuaCIKICNpbmNsdWRlICJodG1sZWRpdGluZy5oIgpJbmRleDogV2ViQ29yZS9r
aHRtbC9lZGl0aW5nL2pvaW5fdGV4dF9ub2Rlc19jb21tYW5kLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBm
aWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9raHRtbC9lZGl0aW5nL2pvaW5fdGV4dF9ub2Rlc19jb21t
YW5kLmNwcCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4yCmRpZmYgLXUgLXAgLXIxLjIgV2ViQ29y
ZS9raHRtbC9lZGl0aW5nL2pvaW5fdGV4dF9ub2Rlc19jb21tYW5kLmNwcAotLS0gV2ViQ29yZS9r
aHRtbC9lZGl0aW5nL2pvaW5fdGV4dF9ub2Rlc19jb21tYW5kLmNwcAkyNyBTZXAgMjAwNSAyMjoz
NzoxMCAtMDAwMAkxLjIKKysrIFdlYkNvcmUva2h0bWwvZWRpdGluZy9qb2luX3RleHRfbm9kZXNf
Y29tbWFuZC5jcHAJMyBPY3QgMjAwNSAwNDoyMjo1NyAtMDAwMApAQCAtMjQsNiArMjQsNyBAQAog
ICovCiAKICNpbmNsdWRlICJqb2luX3RleHRfbm9kZXNfY29tbWFuZC5oIgorI2luY2x1ZGUgImNv
bmZpZy5oIgogCiAjaW5jbHVkZSAieG1sL2RvbV9kb2NpbXBsLmgiCiAjaW5jbHVkZSAieG1sL2Rv
bV90ZXh0aW1wbC5oIgpJbmRleDogV2ViQ29yZS9raHRtbC9lZGl0aW5nL2pzZWRpdGluZy5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva2h0bWwvZWRpdGluZy9qc2Vk
aXRpbmcuY3BwLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjMyCmRpZmYgLXUgLXAgLXIxLjMyIFdl
YkNvcmUva2h0bWwvZWRpdGluZy9qc2VkaXRpbmcuY3BwCi0tLSBXZWJDb3JlL2todG1sL2VkaXRp
bmcvanNlZGl0aW5nLmNwcAkyOCBTZXAgMjAwNSAyMjowMTozMSAtMDAwMAkxLjMyCisrKyBXZWJD
b3JlL2todG1sL2VkaXRpbmcvanNlZGl0aW5nLmNwcAkzIE9jdCAyMDA1IDA0OjIyOjU3IC0wMDAw
CkBAIC0yNCw2ICsyNCw3IEBACiAgKi8KIAogI2luY2x1ZGUgImpzZWRpdGluZy5oIgorI2luY2x1
ZGUgImNvbmZpZy5oIgogCiAjaW5jbHVkZSAiY3NzL2Nzc192YWx1ZWltcGwuaCIKICNpbmNsdWRl
ICJjc3MvY3NzcHJvcGVydGllcy5oIgpJbmRleDogV2ViQ29yZS9raHRtbC9lZGl0aW5nL21hcmt1
cC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva2h0bWwvZWRpdGlu
Zy9tYXJrdXAuY3BwLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjM2CmRpZmYgLXUgLXAgLXIxLjM2
IFdlYkNvcmUva2h0bWwvZWRpdGluZy9tYXJrdXAuY3BwCi0tLSBXZWJDb3JlL2todG1sL2VkaXRp
bmcvbWFya3VwLmNwcAkyOSBTZXAgMjAwNSAwNzo0NzowNiAtMDAwMAkxLjM2CisrKyBXZWJDb3Jl
L2todG1sL2VkaXRpbmcvbWFya3VwLmNwcAkzIE9jdCAyMDA1IDA0OjIyOjU3IC0wMDAwCkBAIC0y
NCw2ICsyNCw3IEBACiAgKi8KIAogI2luY2x1ZGUgIm1hcmt1cC5oIgorI2luY2x1ZGUgImNvbmZp
Zy5oIgogCiAjaW5jbHVkZSAiaHRtbGVkaXRpbmcuaCIKIApJbmRleDogV2ViQ29yZS9raHRtbC9l
ZGl0aW5nL21lcmdlX2lkZW50aWNhbF9lbGVtZW50c19jb21tYW5kLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJD
UyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9raHRtbC9lZGl0aW5nL21lcmdlX2lkZW50aWNhbF9l
bGVtZW50c19jb21tYW5kLmNwcCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4yCmRpZmYgLXUgLXAg
LXIxLjIgV2ViQ29yZS9raHRtbC9lZGl0aW5nL21lcmdlX2lkZW50aWNhbF9lbGVtZW50c19jb21t
YW5kLmNwcAotLS0gV2ViQ29yZS9raHRtbC9lZGl0aW5nL21lcmdlX2lkZW50aWNhbF9lbGVtZW50
c19jb21tYW5kLmNwcAkyNyBTZXAgMjAwNSAyMjozNzoxMCAtMDAwMAkxLjIKKysrIFdlYkNvcmUv
a2h0bWwvZWRpdGluZy9tZXJnZV9pZGVudGljYWxfZWxlbWVudHNfY29tbWFuZC5jcHAJMyBPY3Qg
MjAwNSAwNDoyMjo1NyAtMDAwMApAQCAtMjQsNiArMjQsNyBAQAogICovCiAKICNpbmNsdWRlICJt
ZXJnZV9pZGVudGljYWxfZWxlbWVudHNfY29tbWFuZC5oIgorI2luY2x1ZGUgImNvbmZpZy5oIgog
CiAjaW5jbHVkZSAieG1sL2RvbV9kb2NpbXBsLmgiCiAjaW5jbHVkZSAieG1sL2RvbV9lbGVtZW50
aW1wbC5oIgpJbmRleDogV2ViQ29yZS9raHRtbC9lZGl0aW5nL21vdmVfc2VsZWN0aW9uX2NvbW1h
bmQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2todG1sL2VkaXRp
bmcvbW92ZV9zZWxlY3Rpb25fY29tbWFuZC5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNApk
aWZmIC11IC1wIC1yMS40IFdlYkNvcmUva2h0bWwvZWRpdGluZy9tb3ZlX3NlbGVjdGlvbl9jb21t
YW5kLmNwcAotLS0gV2ViQ29yZS9raHRtbC9lZGl0aW5nL21vdmVfc2VsZWN0aW9uX2NvbW1hbmQu
Y3BwCTI3IFNlcCAyMDA1IDIyOjM3OjEwIC0wMDAwCTEuNAorKysgV2ViQ29yZS9raHRtbC9lZGl0
aW5nL21vdmVfc2VsZWN0aW9uX2NvbW1hbmQuY3BwCTMgT2N0IDIwMDUgMDQ6MjI6NTcgLTAwMDAK
QEAgLTI0LDYgKzI0LDcgQEAKICAqLwogCiAjaW5jbHVkZSAibW92ZV9zZWxlY3Rpb25fY29tbWFu
ZC5oIgorI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgInJlcGxhY2Vfc2VsZWN0aW9uX2Nv
bW1hbmQuaCIKIAogI2luY2x1ZGUgInhtbC9kb21fZG9jaW1wbC5oIgpJbmRleDogV2ViQ29yZS9r
aHRtbC9lZGl0aW5nL3JlYmFsYW5jZV93aGl0ZXNwYWNlX2NvbW1hbmQuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
UkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2todG1sL2VkaXRpbmcvcmViYWxhbmNlX3doaXRl
c3BhY2VfY29tbWFuZC5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNApkaWZmIC11IC1wIC1y
MS40IFdlYkNvcmUva2h0bWwvZWRpdGluZy9yZWJhbGFuY2Vfd2hpdGVzcGFjZV9jb21tYW5kLmNw
cAotLS0gV2ViQ29yZS9raHRtbC9lZGl0aW5nL3JlYmFsYW5jZV93aGl0ZXNwYWNlX2NvbW1hbmQu
Y3BwCTI5IFNlcCAyMDA1IDA3OjQ3OjA2IC0wMDAwCTEuNAorKysgV2ViQ29yZS9raHRtbC9lZGl0
aW5nL3JlYmFsYW5jZV93aGl0ZXNwYWNlX2NvbW1hbmQuY3BwCTMgT2N0IDIwMDUgMDQ6MjI6NTcg
LTAwMDAKQEAgLTI0LDYgKzI0LDcgQEAKICAqLwogCiAjaW5jbHVkZSAicmViYWxhbmNlX3doaXRl
c3BhY2VfY29tbWFuZC5oIgorI2luY2x1ZGUgImNvbmZpZy5oIgogCiAjaW5jbHVkZSAiaHRtbGVk
aXRpbmcuaCIKICNpbmNsdWRlICJ2aXNpYmxlX3RleHQuaCIKSW5kZXg6IFdlYkNvcmUva2h0bWwv
ZWRpdGluZy9yZW1vdmVfY3NzX3Byb3BlcnR5X2NvbW1hbmQuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZp
bGU6IC9jdnMvcm9vdC9XZWJDb3JlL2todG1sL2VkaXRpbmcvcmVtb3ZlX2Nzc19wcm9wZXJ0eV9j
b21tYW5kLmNwcCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4yCmRpZmYgLXUgLXAgLXIxLjIgV2Vi
Q29yZS9raHRtbC9lZGl0aW5nL3JlbW92ZV9jc3NfcHJvcGVydHlfY29tbWFuZC5jcHAKLS0tIFdl
YkNvcmUva2h0bWwvZWRpdGluZy9yZW1vdmVfY3NzX3Byb3BlcnR5X2NvbW1hbmQuY3BwCTI3IFNl
cCAyMDA1IDIyOjM3OjExIC0wMDAwCTEuMgorKysgV2ViQ29yZS9raHRtbC9lZGl0aW5nL3JlbW92
ZV9jc3NfcHJvcGVydHlfY29tbWFuZC5jcHAJMyBPY3QgMjAwNSAwNDoyMjo1NyAtMDAwMApAQCAt
MjQsNiArMjQsNyBAQAogICovCiAKICNpbmNsdWRlICJyZW1vdmVfY3NzX3Byb3BlcnR5X2NvbW1h
bmQuaCIKKyNpbmNsdWRlICJjb25maWcuaCIKIAogI2luY2x1ZGUgImNzcy9jc3NfdmFsdWVpbXBs
LmgiCiAKSW5kZXg6IFdlYkNvcmUva2h0bWwvZWRpdGluZy9yZW1vdmVfbm9kZV9hdHRyaWJ1dGVf
Y29tbWFuZC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva2h0bWwv
ZWRpdGluZy9yZW1vdmVfbm9kZV9hdHRyaWJ1dGVfY29tbWFuZC5jcHAsdgpyZXRyaWV2aW5nIHJl
dmlzaW9uIDEuNApkaWZmIC11IC1wIC1yMS40IFdlYkNvcmUva2h0bWwvZWRpdGluZy9yZW1vdmVf
bm9kZV9hdHRyaWJ1dGVfY29tbWFuZC5jcHAKLS0tIFdlYkNvcmUva2h0bWwvZWRpdGluZy9yZW1v
dmVfbm9kZV9hdHRyaWJ1dGVfY29tbWFuZC5jcHAJMjcgU2VwIDIwMDUgMjI6Mzc6MTEgLTAwMDAJ
MS40CisrKyBXZWJDb3JlL2todG1sL2VkaXRpbmcvcmVtb3ZlX25vZGVfYXR0cmlidXRlX2NvbW1h
bmQuY3BwCTMgT2N0IDIwMDUgMDQ6MjI6NTcgLTAwMDAKQEAgLTI0LDYgKzI0LDcgQEAKICAqLwog
CiAjaW5jbHVkZSAicmVtb3ZlX25vZGVfYXR0cmlidXRlX2NvbW1hbmQuaCIKKyNpbmNsdWRlICJj
b25maWcuaCIKIAogI2luY2x1ZGUgInhtbC9kb21fZWxlbWVudGltcGwuaCIKIApJbmRleDogV2Vi
Q29yZS9raHRtbC9lZGl0aW5nL3JlbW92ZV9ub2RlX2NvbW1hbmQuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNT
IGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2todG1sL2VkaXRpbmcvcmVtb3ZlX25vZGVfY29tbWFu
ZC5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMgpkaWZmIC11IC1wIC1yMS4yIFdlYkNvcmUv
a2h0bWwvZWRpdGluZy9yZW1vdmVfbm9kZV9jb21tYW5kLmNwcAotLS0gV2ViQ29yZS9raHRtbC9l
ZGl0aW5nL3JlbW92ZV9ub2RlX2NvbW1hbmQuY3BwCTI3IFNlcCAyMDA1IDIyOjM3OjExIC0wMDAw
CTEuMgorKysgV2ViQ29yZS9raHRtbC9lZGl0aW5nL3JlbW92ZV9ub2RlX2NvbW1hbmQuY3BwCTMg
T2N0IDIwMDUgMDQ6MjI6NTcgLTAwMDAKQEAgLTI0LDYgKzI0LDcgQEAKICAqLwogCiAjaW5jbHVk
ZSAicmVtb3ZlX25vZGVfY29tbWFuZC5oIgorI2luY2x1ZGUgImNvbmZpZy5oIgogCiAjaW5jbHVk
ZSAieG1sL2RvbV9ub2RlaW1wbC5oIgogCkluZGV4OiBXZWJDb3JlL2todG1sL2VkaXRpbmcvcmVt
b3ZlX25vZGVfcHJlc2VydmluZ19jaGlsZHJlbl9jb21tYW5kLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBm
aWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9raHRtbC9lZGl0aW5nL3JlbW92ZV9ub2RlX3ByZXNlcnZp
bmdfY2hpbGRyZW5fY29tbWFuZC5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMgpkaWZmIC11
IC1wIC1yMS4yIFdlYkNvcmUva2h0bWwvZWRpdGluZy9yZW1vdmVfbm9kZV9wcmVzZXJ2aW5nX2No
aWxkcmVuX2NvbW1hbmQuY3BwCi0tLSBXZWJDb3JlL2todG1sL2VkaXRpbmcvcmVtb3ZlX25vZGVf
cHJlc2VydmluZ19jaGlsZHJlbl9jb21tYW5kLmNwcAkyNyBTZXAgMjAwNSAyMjozNzoxMSAtMDAw
MAkxLjIKKysrIFdlYkNvcmUva2h0bWwvZWRpdGluZy9yZW1vdmVfbm9kZV9wcmVzZXJ2aW5nX2No
aWxkcmVuX2NvbW1hbmQuY3BwCTMgT2N0IDIwMDUgMDQ6MjI6NTcgLTAwMDAKQEAgLTI0LDYgKzI0
LDcgQEAKICAqLwogCiAjaW5jbHVkZSAicmVtb3ZlX25vZGVfcHJlc2VydmluZ19jaGlsZHJlbl9j
b21tYW5kLmgiCisjaW5jbHVkZSAiY29uZmlnLmgiCiAKICNpbmNsdWRlICJ4bWwvZG9tX25vZGVp
bXBsLmgiCiAKSW5kZXg6IFdlYkNvcmUva2h0bWwvZWRpdGluZy9yZXBsYWNlX3NlbGVjdGlvbl9j
b21tYW5kLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9raHRtbC9l
ZGl0aW5nL3JlcGxhY2Vfc2VsZWN0aW9uX2NvbW1hbmQuY3BwLHYKcmV0cmlldmluZyByZXZpc2lv
biAxLjE2CmRpZmYgLXUgLXAgLXIxLjE2IFdlYkNvcmUva2h0bWwvZWRpdGluZy9yZXBsYWNlX3Nl
bGVjdGlvbl9jb21tYW5kLmNwcAotLS0gV2ViQ29yZS9raHRtbC9lZGl0aW5nL3JlcGxhY2Vfc2Vs
ZWN0aW9uX2NvbW1hbmQuY3BwCTI3IFNlcCAyMDA1IDIyOjM3OjExIC0wMDAwCTEuMTYKKysrIFdl
YkNvcmUva2h0bWwvZWRpdGluZy9yZXBsYWNlX3NlbGVjdGlvbl9jb21tYW5kLmNwcAkzIE9jdCAy
MDA1IDA0OjIyOjU3IC0wMDAwCkBAIC0yNCw2ICsyNCw3IEBACiAgKi8KIAogI2luY2x1ZGUgInJl
cGxhY2Vfc2VsZWN0aW9uX2NvbW1hbmQuaCIKKyNpbmNsdWRlICJjb25maWcuaCIKIAogI2luY2x1
ZGUgInZpc2libGVfcG9zaXRpb24uaCIKICNpbmNsdWRlICJodG1sbmFtZXMuaCIKSW5kZXg6IFdl
YkNvcmUva2h0bWwvZWRpdGluZy9zZXRfbm9kZV9hdHRyaWJ1dGVfY29tbWFuZC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva2h0bWwvZWRpdGluZy9zZXRfbm9kZV9h
dHRyaWJ1dGVfY29tbWFuZC5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNApkaWZmIC11IC1w
IC1yMS40IFdlYkNvcmUva2h0bWwvZWRpdGluZy9zZXRfbm9kZV9hdHRyaWJ1dGVfY29tbWFuZC5j
cHAKLS0tIFdlYkNvcmUva2h0bWwvZWRpdGluZy9zZXRfbm9kZV9hdHRyaWJ1dGVfY29tbWFuZC5j
cHAJMjcgU2VwIDIwMDUgMjI6Mzc6MTEgLTAwMDAJMS40CisrKyBXZWJDb3JlL2todG1sL2VkaXRp
bmcvc2V0X25vZGVfYXR0cmlidXRlX2NvbW1hbmQuY3BwCTMgT2N0IDIwMDUgMDQ6MjI6NTcgLTAw
MDAKQEAgLTI0LDYgKzI0LDcgQEAKICAqLwogCiAjaW5jbHVkZSAic2V0X25vZGVfYXR0cmlidXRl
X2NvbW1hbmQuaCIKKyNpbmNsdWRlICJjb25maWcuaCIKIAogI2luY2x1ZGUgInhtbC9kb21fZWxl
bWVudGltcGwuaCIKIApJbmRleDogV2ViQ29yZS9raHRtbC9lZGl0aW5nL3NwbGl0X2VsZW1lbnRf
Y29tbWFuZC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva2h0bWwv
ZWRpdGluZy9zcGxpdF9lbGVtZW50X2NvbW1hbmQuY3BwLHYKcmV0cmlldmluZyByZXZpc2lvbiAx
LjIKZGlmZiAtdSAtcCAtcjEuMiBXZWJDb3JlL2todG1sL2VkaXRpbmcvc3BsaXRfZWxlbWVudF9j
b21tYW5kLmNwcAotLS0gV2ViQ29yZS9raHRtbC9lZGl0aW5nL3NwbGl0X2VsZW1lbnRfY29tbWFu
ZC5jcHAJMjcgU2VwIDIwMDUgMjI6Mzc6MTEgLTAwMDAJMS4yCisrKyBXZWJDb3JlL2todG1sL2Vk
aXRpbmcvc3BsaXRfZWxlbWVudF9jb21tYW5kLmNwcAkzIE9jdCAyMDA1IDA0OjIyOjU3IC0wMDAw
CkBAIC0yNCw2ICsyNCw3IEBACiAgKi8KIAogI2luY2x1ZGUgInNwbGl0X2VsZW1lbnRfY29tbWFu
ZC5oIgorI2luY2x1ZGUgImNvbmZpZy5oIgogCiAjaW5jbHVkZSAieG1sL2RvbV9lbGVtZW50aW1w
bC5oIgogCkluZGV4OiBXZWJDb3JlL2todG1sL2VkaXRpbmcvc3BsaXRfdGV4dF9ub2RlX2NvbW1h
bmQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2todG1sL2VkaXRp
bmcvc3BsaXRfdGV4dF9ub2RlX2NvbW1hbmQuY3BwLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjQK
ZGlmZiAtdSAtcCAtcjEuNCBXZWJDb3JlL2todG1sL2VkaXRpbmcvc3BsaXRfdGV4dF9ub2RlX2Nv
bW1hbmQuY3BwCi0tLSBXZWJDb3JlL2todG1sL2VkaXRpbmcvc3BsaXRfdGV4dF9ub2RlX2NvbW1h
bmQuY3BwCTI3IFNlcCAyMDA1IDIyOjM3OjExIC0wMDAwCTEuNAorKysgV2ViQ29yZS9raHRtbC9l
ZGl0aW5nL3NwbGl0X3RleHRfbm9kZV9jb21tYW5kLmNwcAkzIE9jdCAyMDA1IDA0OjIyOjU3IC0w
MDAwCkBAIC0yNCw2ICsyNCw3IEBACiAgKi8KIAogI2luY2x1ZGUgInNwbGl0X3RleHRfbm9kZV9j
b21tYW5kLmgiCisjaW5jbHVkZSAiY29uZmlnLmgiCiAKICNpbmNsdWRlICJ4bWwvZG9tX2RvY2lt
cGwuaCIKICNpbmNsdWRlICJ4bWwvZG9tX3RleHRpbXBsLmgiCkluZGV4OiBXZWJDb3JlL2todG1s
L2VkaXRpbmcvc3BsaXRfdGV4dF9ub2RlX2NvbnRhaW5pbmdfZWxlbWVudC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva2h0bWwvZWRpdGluZy9zcGxpdF90ZXh0X25v
ZGVfY29udGFpbmluZ19lbGVtZW50LmNwcCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4zCmRpZmYg
LXUgLXAgLXIxLjMgV2ViQ29yZS9raHRtbC9lZGl0aW5nL3NwbGl0X3RleHRfbm9kZV9jb250YWlu
aW5nX2VsZW1lbnQuY3BwCi0tLSBXZWJDb3JlL2todG1sL2VkaXRpbmcvc3BsaXRfdGV4dF9ub2Rl
X2NvbnRhaW5pbmdfZWxlbWVudC5jcHAJMjcgU2VwIDIwMDUgMjI6Mzc6MTEgLTAwMDAJMS4zCisr
KyBXZWJDb3JlL2todG1sL2VkaXRpbmcvc3BsaXRfdGV4dF9ub2RlX2NvbnRhaW5pbmdfZWxlbWVu
dC5jcHAJMyBPY3QgMjAwNSAwNDoyMjo1NyAtMDAwMApAQCAtMjQsNiArMjQsNyBAQAogICovCiAK
ICNpbmNsdWRlICJzcGxpdF90ZXh0X25vZGVfY29udGFpbmluZ19lbGVtZW50X2NvbW1hbmQuaCIK
KyNpbmNsdWRlICJjb25maWcuaCIKIAogI2luY2x1ZGUgInhtbC9kb21fdGV4dGltcGwuaCIKICNp
bmNsdWRlICJ4bWwvZG9tX2VsZW1lbnRpbXBsLmgiCkluZGV4OiBXZWJDb3JlL2todG1sL2VkaXRp
bmcvdHlwaW5nX2NvbW1hbmQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJD
b3JlL2todG1sL2VkaXRpbmcvdHlwaW5nX2NvbW1hbmQuY3BwLHYKcmV0cmlldmluZyByZXZpc2lv
biAxLjMKZGlmZiAtdSAtcCAtcjEuMyBXZWJDb3JlL2todG1sL2VkaXRpbmcvdHlwaW5nX2NvbW1h
bmQuY3BwCi0tLSBXZWJDb3JlL2todG1sL2VkaXRpbmcvdHlwaW5nX2NvbW1hbmQuY3BwCTI3IFNl
cCAyMDA1IDIyOjM3OjExIC0wMDAwCTEuMworKysgV2ViQ29yZS9raHRtbC9lZGl0aW5nL3R5cGlu
Z19jb21tYW5kLmNwcAkzIE9jdCAyMDA1IDA0OjIyOjU3IC0wMDAwCkBAIC0yNCw2ICsyNCw3IEBA
CiAgKi8KIAogI2luY2x1ZGUgInR5cGluZ19jb21tYW5kLmgiCisjaW5jbHVkZSAiY29uZmlnLmgi
CiAKICNpbmNsdWRlICJpbnNlcnRfdGV4dF9jb21tYW5kLmgiCiAjaW5jbHVkZSAiaW5zZXJ0X2xp
bmVfYnJlYWtfY29tbWFuZC5oIgpJbmRleDogV2ViQ29yZS9raHRtbC9lZGl0aW5nL3Zpc2libGVf
cG9zaXRpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2todG1s
L2VkaXRpbmcvdmlzaWJsZV9wb3NpdGlvbi5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNTkK
ZGlmZiAtdSAtcCAtcjEuNTkgV2ViQ29yZS9raHRtbC9lZGl0aW5nL3Zpc2libGVfcG9zaXRpb24u
Y3BwCi0tLSBXZWJDb3JlL2todG1sL2VkaXRpbmcvdmlzaWJsZV9wb3NpdGlvbi5jcHAJMjcgU2Vw
IDIwMDUgMjI6Mzc6MTEgLTAwMDAJMS41OQorKysgV2ViQ29yZS9raHRtbC9lZGl0aW5nL3Zpc2li
bGVfcG9zaXRpb24uY3BwCTMgT2N0IDIwMDUgMDQ6MjI6NTcgLTAwMDAKQEAgLTI0LDYgKzI0LDcg
QEAKICAqLwogCiAjaW5jbHVkZSAidmlzaWJsZV9wb3NpdGlvbi5oIgorI2luY2x1ZGUgImNvbmZp
Zy5oIgogI2luY2x1ZGUgInZpc2libGVfdW5pdHMuaCIKIAogI2luY2x1ZGUgImh0bWxuYW1lcy5o
IgpJbmRleDogV2ViQ29yZS9raHRtbC9lZGl0aW5nL3Zpc2libGVfcmFuZ2UuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2todG1sL2VkaXRpbmcvdmlzaWJsZV9yYW5n
ZS5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMQpkaWZmIC11IC1wIC1yMS4xIFdlYkNvcmUv
a2h0bWwvZWRpdGluZy92aXNpYmxlX3JhbmdlLmNwcAotLS0gV2ViQ29yZS9raHRtbC9lZGl0aW5n
L3Zpc2libGVfcmFuZ2UuY3BwCTIzIFNlcCAyMDA0IDE2OjEwOjAwIC0wMDAwCTEuMQorKysgV2Vi
Q29yZS9raHRtbC9lZGl0aW5nL3Zpc2libGVfcmFuZ2UuY3BwCTMgT2N0IDIwMDUgMDQ6MjI6NTcg
LTAwMDAKQEAgLTI0LDQgKzI0LDUgQEAKICAqLwogCiAjaW5jbHVkZSAidmlzaWJsZV9yYW5nZS5o
IgorI2luY2x1ZGUgImNvbmZpZy5oIgogCkluZGV4OiBXZWJDb3JlL2todG1sL2VkaXRpbmcvdmlz
aWJsZV90ZXh0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9raHRt
bC9lZGl0aW5nL3Zpc2libGVfdGV4dC5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMzcKZGlm
ZiAtdSAtcCAtcjEuMzcgV2ViQ29yZS9raHRtbC9lZGl0aW5nL3Zpc2libGVfdGV4dC5jcHAKLS0t
IFdlYkNvcmUva2h0bWwvZWRpdGluZy92aXNpYmxlX3RleHQuY3BwCTE2IFNlcCAyMDA1IDIyOjQy
OjA3IC0wMDAwCTEuMzcKKysrIFdlYkNvcmUva2h0bWwvZWRpdGluZy92aXNpYmxlX3RleHQuY3Bw
CTMgT2N0IDIwMDUgMDQ6MjI6NTcgLTAwMDAKQEAgLTI0LDYgKzI0LDcgQEAKICAqLwogCiAjaW5j
bHVkZSAidmlzaWJsZV90ZXh0LmgiCisjaW5jbHVkZSAiY29uZmlnLmgiCiAKICNpbmNsdWRlICJo
dG1sbmFtZXMuaCIKICNpbmNsdWRlICJyZW5kZXJpbmcvcmVuZGVyX3RleHQuaCIKQEAgLTU1LDcg
KzU2LDcgQEAgY29uc3QgdW5zaWduZWQgc2hvcnQgbm9uQnJlYWtpbmdTcGFjZSA9IAogY2xhc3Mg
Q2lyY3VsYXJTZWFyY2hCdWZmZXIgewogcHVibGljOgogICAgIENpcmN1bGFyU2VhcmNoQnVmZmVy
KGNvbnN0IFFTdHJpbmcgJnRhcmdldCwgYm9vbCBpc0Nhc2VTZW5zaXRpdmUpOwotICAgIH5DaXJj
dWxhclNlYXJjaEJ1ZmZlcigpIHsgZnJlZShtX2J1ZmZlcik7IH0KKyAgICB+Q2lyY3VsYXJTZWFy
Y2hCdWZmZXIoKSB7IGZhc3RGcmVlKG1fYnVmZmVyKTsgfQogCiAgICAgdm9pZCBjbGVhcigpIHsg
bV9jdXJzb3IgPSBtX2J1ZmZlcjsgbV9idWZmZXJGdWxsID0gZmFsc2U7IH0KICAgICB2b2lkIGFw
cGVuZChpbnQgbGVuZ3RoLCBjb25zdCBRQ2hhciAqY2hhcmFjdGVycyk7CkBAIC05MDgsNyArOTA5
LDcgQEAgQ2lyY3VsYXJTZWFyY2hCdWZmZXI6OkNpcmN1bGFyU2VhcmNoQnVmZgogICAgIG1fdGFy
Z2V0LnJlcGxhY2Uobm9uQnJlYWtpbmdTcGFjZSwgJyAnKTsKICAgICBtX2lzQ2FzZVNlbnNpdGl2
ZSA9IGlzQ2FzZVNlbnNpdGl2ZTsKIAotICAgIG1fYnVmZmVyID0gc3RhdGljX2Nhc3Q8UUNoYXIg
Kj4obWFsbG9jKHMubGVuZ3RoKCkgKiBzaXplb2YoUUNoYXIpKSk7CisgICAgbV9idWZmZXIgPSBz
dGF0aWNfY2FzdDxRQ2hhciAqPihmYXN0TWFsbG9jKHMubGVuZ3RoKCkgKiBzaXplb2YoUUNoYXIp
KSk7CiAgICAgbV9jdXJzb3IgPSBtX2J1ZmZlcjsKICAgICBtX2J1ZmZlckZ1bGwgPSBmYWxzZTsK
IH0KSW5kZXg6IFdlYkNvcmUva2h0bWwvZWRpdGluZy92aXNpYmxlX3VuaXRzLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9raHRtbC9lZGl0aW5nL3Zpc2libGVfdW5p
dHMuY3BwLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjQwCmRpZmYgLXUgLXAgLXIxLjQwIFdlYkNv
cmUva2h0bWwvZWRpdGluZy92aXNpYmxlX3VuaXRzLmNwcAotLS0gV2ViQ29yZS9raHRtbC9lZGl0
aW5nL3Zpc2libGVfdW5pdHMuY3BwCTE2IFNlcCAyMDA1IDIyOjQyOjA3IC0wMDAwCTEuNDAKKysr
IFdlYkNvcmUva2h0bWwvZWRpdGluZy92aXNpYmxlX3VuaXRzLmNwcAkzIE9jdCAyMDA1IDA0OjIy
OjU3IC0wMDAwCkBAIC0yNCw2ICsyNCw3IEBACiAgKi8KIAogI2luY2x1ZGUgInZpc2libGVfdW5p
dHMuaCIKKyNpbmNsdWRlICJjb25maWcuaCIKIAogI2luY2x1ZGUgPHFzdHJpbmcuaD4KIApJbmRl
eDogV2ViQ29yZS9raHRtbC9lZGl0aW5nL3dyYXBfY29udGVudHNfaW5fZHVtbXlfc3Bhbl9jb21t
YW5kLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9raHRtbC9lZGl0
aW5nL3dyYXBfY29udGVudHNfaW5fZHVtbXlfc3Bhbl9jb21tYW5kLmNwcCx2CnJldHJpZXZpbmcg
cmV2aXNpb24gMS4yCmRpZmYgLXUgLXAgLXIxLjIgV2ViQ29yZS9raHRtbC9lZGl0aW5nL3dyYXBf
Y29udGVudHNfaW5fZHVtbXlfc3Bhbl9jb21tYW5kLmNwcAotLS0gV2ViQ29yZS9raHRtbC9lZGl0
aW5nL3dyYXBfY29udGVudHNfaW5fZHVtbXlfc3Bhbl9jb21tYW5kLmNwcAkyNyBTZXAgMjAwNSAy
MjozNzoxMiAtMDAwMAkxLjIKKysrIFdlYkNvcmUva2h0bWwvZWRpdGluZy93cmFwX2NvbnRlbnRz
X2luX2R1bW15X3NwYW5fY29tbWFuZC5jcHAJMyBPY3QgMjAwNSAwNDoyMjo1NyAtMDAwMApAQCAt
MjQsNiArMjQsNyBAQAogICovCiAKICNpbmNsdWRlICJ3cmFwX2NvbnRlbnRzX2luX2R1bW15X3Nw
YW5fY29tbWFuZC5oIgorI2luY2x1ZGUgImNvbmZpZy5oIgogCiAjaW5jbHVkZSAiYXBwbHlfc3R5
bGVfY29tbWFuZC5oIgogI2luY2x1ZGUgInhtbC9kb21fZWxlbWVudGltcGwuaCIKSW5kZXg6IFdl
YkNvcmUva2h0bWwvaHRtbC9odG1sX2Jhc2VpbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAv
Y3ZzL3Jvb3QvV2ViQ29yZS9raHRtbC9odG1sL2h0bWxfYmFzZWltcGwuY3BwLHYKcmV0cmlldmlu
ZyByZXZpc2lvbiAxLjgwCmRpZmYgLXUgLXAgLXIxLjgwIFdlYkNvcmUva2h0bWwvaHRtbC9odG1s
X2Jhc2VpbXBsLmNwcAotLS0gV2ViQ29yZS9raHRtbC9odG1sL2h0bWxfYmFzZWltcGwuY3BwCTMx
IEF1ZyAyMDA1IDA0OjM4OjM4IC0wMDAwCTEuODAKKysrIFdlYkNvcmUva2h0bWwvaHRtbC9odG1s
X2Jhc2VpbXBsLmNwcAkzIE9jdCAyMDA1IDA0OjIyOjU3IC0wMDAwCkBAIC0yNSw2ICsyNSw3IEBA
CiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKICNpbmNsdWRlICJodG1sX2Jhc2VpbXBsLmgiCisjaW5j
bHVkZSAiY29uZmlnLmgiCiAKICNpbmNsdWRlICJodG1sL2h0bWxfZG9jdW1lbnRpbXBsLmgiCiAK
SW5kZXg6IFdlYkNvcmUva2h0bWwvaHRtbC9odG1sX2Jsb2NraW1wbC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpS
Q1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva2h0bWwvaHRtbC9odG1sX2Jsb2NraW1wbC5jcHAs
dgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMjUKZGlmZiAtdSAtcCAtcjEuMjUgV2ViQ29yZS9raHRt
bC9odG1sL2h0bWxfYmxvY2tpbXBsLmNwcAotLS0gV2ViQ29yZS9raHRtbC9odG1sL2h0bWxfYmxv
Y2tpbXBsLmNwcAkxNiBTZXAgMjAwNSAyMjo0MjoxMSAtMDAwMAkxLjI1CisrKyBXZWJDb3JlL2to
dG1sL2h0bWwvaHRtbF9ibG9ja2ltcGwuY3BwCTMgT2N0IDIwMDUgMDQ6MjI6NTcgLTAwMDAKQEAg
LTI0LDYgKzI0LDcgQEAKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIC8vI2RlZmluZSBERUJVRwogI2lu
Y2x1ZGUgImh0bWxfYmxvY2tpbXBsLmgiCisjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAi
aHRtbF9kb2N1bWVudGltcGwuaCIKICNpbmNsdWRlICJjc3MvY3Nzc3R5bGVzZWxlY3Rvci5oIgog
CkluZGV4OiBXZWJDb3JlL2todG1sL2h0bWwvaHRtbF9jYW52YXNpbXBsLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9raHRtbC9odG1sL2h0bWxfY2FudmFzaW1wbC5j
cHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNwpkaWZmIC11IC1wIC1yMS43IFdlYkNvcmUva2h0
bWwvaHRtbC9odG1sX2NhbnZhc2ltcGwuY3BwCi0tLSBXZWJDb3JlL2todG1sL2h0bWwvaHRtbF9j
YW52YXNpbXBsLmNwcAkzMCBKdWwgMjAwNSAwMjozMzoxNyAtMDAwMAkxLjcKKysrIFdlYkNvcmUv
a2h0bWwvaHRtbC9odG1sX2NhbnZhc2ltcGwuY3BwCTMgT2N0IDIwMDUgMDQ6MjI6NTcgLTAwMDAK
QEAgLTI0LDYgKzI0LDcgQEAKICAqLwogCiAjaW5jbHVkZSAiaHRtbC9odG1sX2NhbnZhc2ltcGwu
aCIKKyNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJodG1sL2h0bWxfZG9jdW1lbnRpbXBs
LmgiCiAKICNpbmNsdWRlICJraHRtbHZpZXcuaCIKSW5kZXg6IFdlYkNvcmUva2h0bWwvaHRtbC9o
dG1sX2RvY3VtZW50aW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNv
cmUva2h0bWwvaHRtbC9odG1sX2RvY3VtZW50aW1wbC5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9u
IDEuNzAKZGlmZiAtdSAtcCAtcjEuNzAgV2ViQ29yZS9raHRtbC9odG1sL2h0bWxfZG9jdW1lbnRp
bXBsLmNwcAotLS0gV2ViQ29yZS9raHRtbC9odG1sL2h0bWxfZG9jdW1lbnRpbXBsLmNwcAkyOCBT
ZXAgMjAwNSAyMjowMTozMiAtMDAwMAkxLjcwCisrKyBXZWJDb3JlL2todG1sL2h0bWwvaHRtbF9k
b2N1bWVudGltcGwuY3BwCTMgT2N0IDIwMDUgMDQ6MjI6NTggLTAwMDAKQEAgLTUzLDYgKzUzLDcg
QEAKICAqLwogCiAjaW5jbHVkZSAiaHRtbC9odG1sX2RvY3VtZW50aW1wbC5oIgorI2luY2x1ZGUg
ImNvbmZpZy5oIgogI2luY2x1ZGUgImh0bWwvaHRtbF9pbWFnZWltcGwuaCIKICNpbmNsdWRlICJo
dG1sL2h0bWxfaGVhZGltcGwuaCIKICNpbmNsdWRlICJodG1sL2h0bWxfYmFzZWltcGwuaCIKSW5k
ZXg6IFdlYkNvcmUva2h0bWwvaHRtbC9odG1sX2VsZW1lbnRpbXBsLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJD
UyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9raHRtbC9odG1sL2h0bWxfZWxlbWVudGltcGwuY3Bw
LHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjEwNgpkaWZmIC11IC1wIC1yMS4xMDYgV2ViQ29yZS9r
aHRtbC9odG1sL2h0bWxfZWxlbWVudGltcGwuY3BwCi0tLSBXZWJDb3JlL2todG1sL2h0bWwvaHRt
bF9lbGVtZW50aW1wbC5jcHAJMjggU2VwIDIwMDUgMjI6MDE6MzMgLTAwMDAJMS4xMDYKKysrIFdl
YkNvcmUva2h0bWwvaHRtbC9odG1sX2VsZW1lbnRpbXBsLmNwcAkzIE9jdCAyMDA1IDA0OjIyOjU4
IC0wMDAwCkBAIC0yOSw2ICsyOSw3IEBACiAvLyNkZWZpbmUgVU5TVVBQT1JURURfQVRUUgogCiAj
aW5jbHVkZSAiaHRtbC9odG1sX2VsZW1lbnRpbXBsLmgiCisjaW5jbHVkZSAiY29uZmlnLmgiCiAj
aW5jbHVkZSAiaHRtbC9odG1sX2RvY3VtZW50aW1wbC5oIgogI2luY2x1ZGUgImh0bWwvaHRtbHRv
a2VuaXplci5oIgogI2luY2x1ZGUgImh0bWxmYWN0b3J5LmgiCkluZGV4OiBXZWJDb3JlL2todG1s
L2h0bWwvaHRtbF9mb3JtaW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dl
YkNvcmUva2h0bWwvaHRtbC9odG1sX2Zvcm1pbXBsLmNwcCx2CnJldHJpZXZpbmcgcmV2aXNpb24g
MS4xOTUKZGlmZiAtdSAtcCAtcjEuMTk1IFdlYkNvcmUva2h0bWwvaHRtbC9odG1sX2Zvcm1pbXBs
LmNwcAotLS0gV2ViQ29yZS9raHRtbC9odG1sL2h0bWxfZm9ybWltcGwuY3BwCTI4IFNlcCAyMDA1
IDIyOjAxOjM0IC0wMDAwCTEuMTk1CisrKyBXZWJDb3JlL2todG1sL2h0bWwvaHRtbF9mb3JtaW1w
bC5jcHAJMyBPY3QgMjAwNSAwNDoyMjo1OCAtMDAwMApAQCAtMjcsNiArMjcsNyBAQAogLy8jZGVm
aW5lIEZPUk1TX0RFQlVHCiAKICNpbmNsdWRlICJodG1sL2h0bWxfZm9ybWltcGwuaCIKKyNpbmNs
dWRlICJjb25maWcuaCIKIAogI2luY2x1ZGUgImtodG1sdmlldy5oIgogI2luY2x1ZGUgImtodG1s
X3BhcnQuaCIKSW5kZXg6IFdlYkNvcmUva2h0bWwvaHRtbC9odG1sX2hlYWRpbXBsLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9raHRtbC9odG1sL2h0bWxfaGVhZGlt
cGwuY3BwLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjU2CmRpZmYgLXUgLXAgLXIxLjU2IFdlYkNv
cmUva2h0bWwvaHRtbC9odG1sX2hlYWRpbXBsLmNwcAotLS0gV2ViQ29yZS9raHRtbC9odG1sL2h0
bWxfaGVhZGltcGwuY3BwCTI5IEF1ZyAyMDA1IDIxOjI5OjE4IC0wMDAwCTEuNTYKKysrIFdlYkNv
cmUva2h0bWwvaHRtbC9odG1sX2hlYWRpbXBsLmNwcAkzIE9jdCAyMDA1IDA0OjIyOjU4IC0wMDAw
CkBAIC0yNCw2ICsyNCw3IEBACiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKICNpbmNsdWRlICJodG1s
L2h0bWxfaGVhZGltcGwuaCIKKyNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJodG1sL2h0
bWxfZG9jdW1lbnRpbXBsLmgiCiAjaW5jbHVkZSAieG1sL2RvbV90ZXh0aW1wbC5oIgogCkluZGV4
OiBXZWJDb3JlL2todG1sL2h0bWwvaHRtbF9pbWFnZWltcGwuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZp
bGU6IC9jdnMvcm9vdC9XZWJDb3JlL2todG1sL2h0bWwvaHRtbF9pbWFnZWltcGwuY3BwLHYKcmV0
cmlldmluZyByZXZpc2lvbiAxLjUxCmRpZmYgLXUgLXAgLXIxLjUxIFdlYkNvcmUva2h0bWwvaHRt
bC9odG1sX2ltYWdlaW1wbC5jcHAKLS0tIFdlYkNvcmUva2h0bWwvaHRtbC9odG1sX2ltYWdlaW1w
bC5jcHAJMTYgU2VwIDIwMDUgMjI6NDI6MTEgLTAwMDAJMS41MQorKysgV2ViQ29yZS9raHRtbC9o
dG1sL2h0bWxfaW1hZ2VpbXBsLmNwcAkzIE9jdCAyMDA1IDA0OjIyOjU4IC0wMDAwCkBAIC0yMiw2
ICsyMiw3IEBACiAgKi8KIAogI2luY2x1ZGUgImh0bWwvaHRtbF9pbWFnZWltcGwuaCIKKyNpbmNs
dWRlICJjb25maWcuaCIKICNpbmNsdWRlICJodG1sL2h0bWxfZm9ybWltcGwuaCIKICNpbmNsdWRl
ICJodG1sL2h0bWxfZG9jdW1lbnRpbXBsLmgiCiAKSW5kZXg6IFdlYkNvcmUva2h0bWwvaHRtbC9o
dG1sX2lubGluZWltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3Jl
L2todG1sL2h0bWwvaHRtbF9pbmxpbmVpbXBsLmNwcCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS41
MQpkaWZmIC11IC1wIC1yMS41MSBXZWJDb3JlL2todG1sL2h0bWwvaHRtbF9pbmxpbmVpbXBsLmNw
cAotLS0gV2ViQ29yZS9raHRtbC9odG1sL2h0bWxfaW5saW5laW1wbC5jcHAJMTYgU2VwIDIwMDUg
MjI6NDI6MTEgLTAwMDAJMS41MQorKysgV2ViQ29yZS9raHRtbC9odG1sL2h0bWxfaW5saW5laW1w
bC5jcHAJMyBPY3QgMjAwNSAwNDoyMjo1OCAtMDAwMApAQCAtMjQsNiArMjQsNyBAQAogLy8gLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQogCiAjaW5jbHVkZSAiaHRtbC9odG1sX2lubGluZWltcGwuaCIKKyNpbmNs
dWRlICJjb25maWcuaCIKICNpbmNsdWRlICJodG1sL2h0bWxfaW1hZ2VpbXBsLmgiCiAjaW5jbHVk
ZSAiaHRtbC9odG1sX2RvY3VtZW50aW1wbC5oIgogCkluZGV4OiBXZWJDb3JlL2todG1sL2h0bWwv
aHRtbF9saXN0aW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUv
a2h0bWwvaHRtbC9odG1sX2xpc3RpbXBsLmNwcCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4xNQpk
aWZmIC11IC1wIC1yMS4xNSBXZWJDb3JlL2todG1sL2h0bWwvaHRtbF9saXN0aW1wbC5jcHAKLS0t
IFdlYkNvcmUva2h0bWwvaHRtbC9odG1sX2xpc3RpbXBsLmNwcAkxNiBTZXAgMjAwNSAyMjo0Mjox
MiAtMDAwMAkxLjE1CisrKyBXZWJDb3JlL2todG1sL2h0bWwvaHRtbF9saXN0aW1wbC5jcHAJMyBP
Y3QgMjAwNSAwNDoyMjo1OCAtMDAwMApAQCAtMjEsNiArMjEsNyBAQAogICoKICAqLwogI2luY2x1
ZGUgImh0bWxfbGlzdGltcGwuaCIKKyNpbmNsdWRlICJjb25maWcuaCIKIAogI2luY2x1ZGUgImNz
cy9jc3Nwcm9wZXJ0aWVzLmgiCiAjaW5jbHVkZSAiY3NzL2Nzc3ZhbHVlcy5oIgpJbmRleDogV2Vi
Q29yZS9raHRtbC9odG1sL2h0bWxfbWlzY2ltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9j
dnMvcm9vdC9XZWJDb3JlL2todG1sL2h0bWwvaHRtbF9taXNjaW1wbC5jcHAsdgpyZXRyaWV2aW5n
IHJldmlzaW9uIDEuMzYKZGlmZiAtdSAtcCAtcjEuMzYgV2ViQ29yZS9raHRtbC9odG1sL2h0bWxf
bWlzY2ltcGwuY3BwCi0tLSBXZWJDb3JlL2todG1sL2h0bWwvaHRtbF9taXNjaW1wbC5jcHAJMTYg
U2VwIDIwMDUgMjI6NDI6MTIgLTAwMDAJMS4zNgorKysgV2ViQ29yZS9raHRtbC9odG1sL2h0bWxf
bWlzY2ltcGwuY3BwCTMgT2N0IDIwMDUgMDQ6MjI6NTggLTAwMDAKQEAgLTIzLDYgKzIzLDcgQEAK
ICAqLwogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogI2luY2x1ZGUgImh0bWwvaHRtbF9taXNjaW1wbC5o
IgorI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgImh0bWwvaHRtbF9mb3JtaW1wbC5oIgog
I2luY2x1ZGUgImh0bWwvaHRtbF9pbWFnZWltcGwuaCIKICNpbmNsdWRlICJodG1sL2h0bWxfZG9j
dW1lbnRpbXBsLmgiCkluZGV4OiBXZWJDb3JlL2todG1sL2h0bWwvaHRtbF9vYmplY3RpbXBsLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9raHRtbC9odG1sL2h0bWxf
b2JqZWN0aW1wbC5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNzkKZGlmZiAtdSAtcCAtcjEu
NzkgV2ViQ29yZS9raHRtbC9odG1sL2h0bWxfb2JqZWN0aW1wbC5jcHAKLS0tIFdlYkNvcmUva2h0
bWwvaHRtbC9odG1sX29iamVjdGltcGwuY3BwCTE2IFNlcCAyMDA1IDIyOjQyOjEyIC0wMDAwCTEu
NzkKKysrIFdlYkNvcmUva2h0bWwvaHRtbC9odG1sX29iamVjdGltcGwuY3BwCTMgT2N0IDIwMDUg
MDQ6MjI6NTggLTAwMDAKQEAgLTIyLDYgKzIyLDcgQEAKICAqIEJvc3RvbiwgTUEgMDIxMTEtMTMw
NywgVVNBLgogICovCiAjaW5jbHVkZSAiaHRtbC9odG1sX29iamVjdGltcGwuaCIKKyNpbmNsdWRl
ICJjb25maWcuaCIKIAogI2luY2x1ZGUgImtodG1sX3BhcnQuaCIKICNpbmNsdWRlICJkb20vZG9t
X3N0cmluZy5oIgpJbmRleDogV2ViQ29yZS9raHRtbC9odG1sL2h0bWxfdGFibGVpbXBsLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9raHRtbC9odG1sL2h0bWxfdGFi
bGVpbXBsLmNwcCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS42NQpkaWZmIC11IC1wIC1yMS42NSBX
ZWJDb3JlL2todG1sL2h0bWwvaHRtbF90YWJsZWltcGwuY3BwCi0tLSBXZWJDb3JlL2todG1sL2h0
bWwvaHRtbF90YWJsZWltcGwuY3BwCTIxIFNlcCAyMDA1IDE3OjMyOjQwIC0wMDAwCTEuNjUKKysr
IFdlYkNvcmUva2h0bWwvaHRtbC9odG1sX3RhYmxlaW1wbC5jcHAJMyBPY3QgMjAwNSAwNDoyMjo1
OCAtMDAwMApAQCAtMjUsNiArMjUsNyBAQAogICovCiAKICNpbmNsdWRlICJodG1sL2h0bWxfZG9j
dW1lbnRpbXBsLmgiCisjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiaHRtbC9odG1sX3Rh
YmxlaW1wbC5oIgogCiAjaW5jbHVkZSAiZG9tL2RvbV9leGNlcHRpb24uaCIKSW5kZXg6IFdlYkNv
cmUva2h0bWwvaHRtbC9odG1sZmFjdG9yeS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9y
b290L1dlYkNvcmUva2h0bWwvaHRtbC9odG1sZmFjdG9yeS5jcHAsdgpyZXRyaWV2aW5nIHJldmlz
aW9uIDEuNwpkaWZmIC11IC1wIC1yMS43IFdlYkNvcmUva2h0bWwvaHRtbC9odG1sZmFjdG9yeS5j
cHAKLS0tIFdlYkNvcmUva2h0bWwvaHRtbC9odG1sZmFjdG9yeS5jcHAJMjggU2VwIDIwMDUgMjI6
MDE6MzYgLTAwMDAJMS43CisrKyBXZWJDb3JlL2todG1sL2h0bWwvaHRtbGZhY3RvcnkuY3BwCTMg
T2N0IDIwMDUgMDQ6MjI6NTggLTAwMDAKQEAgLTIxLDYgKzIxLDcgQEAKICAqLwogCiAjaW5jbHVk
ZSAiaHRtbGZhY3RvcnkuaCIKKyNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJkb21fZG9j
aW1wbC5oIgogCiAjaW5jbHVkZSAiaHRtbC9odG1sX2Jhc2VpbXBsLmgiCkluZGV4OiBXZWJDb3Jl
L2todG1sL2h0bWwvaHRtbG5hbWVzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3Qv
V2ViQ29yZS9raHRtbC9odG1sL2h0bWxuYW1lcy5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEu
OApkaWZmIC11IC1wIC1yMS44IFdlYkNvcmUva2h0bWwvaHRtbC9odG1sbmFtZXMuY3BwCi0tLSBX
ZWJDb3JlL2todG1sL2h0bWwvaHRtbG5hbWVzLmNwcAkyNyBBdWcgMjAwNSAwMzoyMTowMSAtMDAw
MAkxLjgKKysrIFdlYkNvcmUva2h0bWwvaHRtbC9odG1sbmFtZXMuY3BwCTMgT2N0IDIwMDUgMDQ6
MjI6NTggLTAwMDAKQEAgLTIzLDYgKzIzLDcgQEAKICNkZWZpbmUgRE9NX0hUTUxOQU1FU19ISURF
X0dMT0JBTFMgMQogCiAjaW5jbHVkZSAiaHRtbG5hbWVzLmgiCisjaW5jbHVkZSAiY29uZmlnLmgi
CiAKIG5hbWVzcGFjZSBET00geyBuYW1lc3BhY2UgSFRNTE5hbWVzIHsKIApJbmRleDogV2ViQ29y
ZS9raHRtbC9odG1sL2h0bWxwYXJzZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9v
dC9XZWJDb3JlL2todG1sL2h0bWwvaHRtbHBhcnNlci5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9u
IDEuMTE0CmRpZmYgLXUgLXAgLXIxLjExNCBXZWJDb3JlL2todG1sL2h0bWwvaHRtbHBhcnNlci5j
cHAKLS0tIFdlYkNvcmUva2h0bWwvaHRtbC9odG1scGFyc2VyLmNwcAkyOCBTZXAgMjAwNSAyMjow
MTozNyAtMDAwMAkxLjExNAorKysgV2ViQ29yZS9raHRtbC9odG1sL2h0bWxwYXJzZXIuY3BwCTMg
T2N0IDIwMDUgMDQ6MjI6NTkgLTAwMDAKQEAgLTI4LDYgKzI4LDcgQEAKIC8vI2RlZmluZSBQQVJT
RVJfREVCVUcKIAogI2luY2x1ZGUgImh0bWwvaHRtbHBhcnNlci5oIgorI2luY2x1ZGUgImNvbmZp
Zy5oIgogCiAjaW5jbHVkZSAiZG9tL2RvbV9leGNlcHRpb24uaCIKIApAQCAtNDcsNyArNDgsNiBA
QAogI2luY2x1ZGUgImh0bWxmYWN0b3J5LmgiCiAjaW5jbHVkZSAieG1sL2RvbV90ZXh0aW1wbC5o
IgogI2luY2x1ZGUgInhtbC9kb21fbm9kZWltcGwuaCIKLSNpbmNsdWRlIDxreG1sY29yZS9GYXN0
TWFsbG9jLmg+CiAjaW5jbHVkZSA8a3htbGNvcmUvSGFzaFNldC5oPgogI2luY2x1ZGUgImh0bWwv
aHRtbHRva2VuaXplci5oIgogI2luY2x1ZGUgImtodG1sdmlldy5oIgpAQCAtNzEsNyArNzEsNyBA
QCB1c2luZyBuYW1lc3BhY2Uga2h0bWw7CiAvKioKICAqIEBpbnRlcm5hbAogICovCi1jbGFzcyBI
VE1MU3RhY2tFbGVtIDogcHVibGljIEZhc3RBbGxvY2F0ZWQKK2NsYXNzIEhUTUxTdGFja0VsZW0K
IHsKIHB1YmxpYzoKICAgICBIVE1MU3RhY2tFbGVtKGNvbnN0IEF0b21pY1N0cmluZyYgX3RhZ05h
bWUsCkluZGV4OiBXZWJDb3JlL2todG1sL2h0bWwvaHRtbHRva2VuaXplci5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva2h0bWwvaHRtbC9odG1sdG9rZW5pemVyLmNw
cCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4xMTUKZGlmZiAtdSAtcCAtcjEuMTE1IFdlYkNvcmUv
a2h0bWwvaHRtbC9odG1sdG9rZW5pemVyLmNwcAotLS0gV2ViQ29yZS9raHRtbC9odG1sL2h0bWx0
b2tlbml6ZXIuY3BwCTIzIFNlcCAyMDA1IDE3OjM4OjA2IC0wMDAwCTEuMTE1CisrKyBXZWJDb3Jl
L2todG1sL2h0bWwvaHRtbHRva2VuaXplci5jcHAJMyBPY3QgMjAwNSAwNDoyMjo1OSAtMDAwMApA
QCAtOTQsOSArOTQsOSBAQCBzdGF0aWMgY29uc3QgY2hhciBzdHlsZUVuZCBbXSA9ICAiPC9zdHls
CiBzdGF0aWMgY29uc3QgY2hhciB0ZXh0YXJlYUVuZCBbXSA9ICI8L3RleHRhcmVhIjsKIHN0YXRp
YyBjb25zdCBjaGFyIHRpdGxlRW5kIFtdID0gIjwvdGl0bGUiOwogCi0jZGVmaW5lIEtIVE1MX0FM
TE9DX1FDSEFSX1ZFQyggTiApIChRQ2hhciopIG1hbGxvYyggc2l6ZW9mKFFDaGFyKSooIE4gKSAp
Ci0jZGVmaW5lIEtIVE1MX1JFQUxMT0NfUUNIQVJfVkVDKFAsIE4gKSAoUUNoYXIqKSBQID0gcmVh
bGxvYyhwLCBzaXplb2YoUUNoYXIpKiggTiApKQotI2RlZmluZSBLSFRNTF9ERUxFVEVfUUNIQVJf
VkVDKCBQICkgZnJlZSgoY2hhciopKCBQICkpCisjZGVmaW5lIEtIVE1MX0FMTE9DX1FDSEFSX1ZF
QyggTiApIChRQ2hhciopIGZhc3RNYWxsb2MoIHNpemVvZihRQ2hhcikqKCBOICkgKQorI2RlZmlu
ZSBLSFRNTF9SRUFMTE9DX1FDSEFSX1ZFQyhQLCBOICkgKFFDaGFyKikgUCA9IGZhc3RSZWFsbG9j
KHAsIHNpemVvZihRQ2hhcikqKCBOICkpCisjZGVmaW5lIEtIVE1MX0RFTEVURV9RQ0hBUl9WRUMo
IFAgKSBmYXN0RnJlZSgoY2hhciopKCBQICkpCiAKIC8vIEZ1bGwgc3VwcG9ydCBmb3IgTVMgV2lu
ZG93cyBleHRlbnNpb25zIHRvIExhdGluLTEuCiAvLyBUZWNobmljYWxseSB0aGVzZSBleHRlbnNp
b25zIHNob3VsZCBvbmx5IGJlIGFjdGl2YXRlZCBmb3IgcGFnZXMKQEAgLTE3NTYsNyArMTc1Niw3
IEBAIHZvaWQgSFRNTFRva2VuaXplcjo6ZW5sYXJnZUJ1ZmZlcihpbnQgbGUKICAgICBpbnQgbmV3
c2l6ZSA9IGtNYXgoc2l6ZSoyLCBzaXplK2xlbik7CiAgICAgaW50IG9sZG9mZnMgPSAoZGVzdCAt
IGJ1ZmZlcik7CiAKLSAgICBidWZmZXIgPSAoUUNoYXIqKXJlYWxsb2MoYnVmZmVyLCBuZXdzaXpl
KnNpemVvZihRQ2hhcikpOworICAgIGJ1ZmZlciA9IChRQ2hhciopZmFzdFJlYWxsb2MoYnVmZmVy
LCBuZXdzaXplKnNpemVvZihRQ2hhcikpOwogICAgIGRlc3QgPSBidWZmZXIgKyBvbGRvZmZzOwog
ICAgIHNpemUgPSBuZXdzaXplOwogfQpAQCAtMTc2NCw3ICsxNzY0LDcgQEAgdm9pZCBIVE1MVG9r
ZW5pemVyOjplbmxhcmdlQnVmZmVyKGludCBsZQogdm9pZCBIVE1MVG9rZW5pemVyOjplbmxhcmdl
U2NyaXB0QnVmZmVyKGludCBsZW4pCiB7CiAgICAgaW50IG5ld3NpemUgPSBrTWF4KHNjcmlwdENv
ZGVNYXhTaXplKjIsIHNjcmlwdENvZGVNYXhTaXplK2xlbik7Ci0gICAgc2NyaXB0Q29kZSA9IChR
Q2hhciopcmVhbGxvYyhzY3JpcHRDb2RlLCBuZXdzaXplKnNpemVvZihRQ2hhcikpOworICAgIHNj
cmlwdENvZGUgPSAoUUNoYXIqKWZhc3RSZWFsbG9jKHNjcmlwdENvZGUsIG5ld3NpemUqc2l6ZW9m
KFFDaGFyKSk7CiAgICAgc2NyaXB0Q29kZU1heFNpemUgPSBuZXdzaXplOwogfQogCkluZGV4OiBX
ZWJDb3JlL2todG1sL21pc2MvYXJlbmEuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9v
dC9XZWJDb3JlL2todG1sL21pc2MvYXJlbmEuY3BwLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjYK
ZGlmZiAtdSAtcCAtcjEuNiBXZWJDb3JlL2todG1sL21pc2MvYXJlbmEuY3BwCi0tLSBXZWJDb3Jl
L2todG1sL21pc2MvYXJlbmEuY3BwCTI3IFNlcCAyMDA1IDIyOjM3OjE4IC0wMDAwCTEuNgorKysg
V2ViQ29yZS9raHRtbC9taXNjL2FyZW5hLmNwcAkzIE9jdCAyMDA1IDA0OjIyOjU5IC0wMDAwCkBA
IC00Myw2ICs0Myw3IEBACiAgKi8KIAogI2luY2x1ZGUgImFyZW5hLmgiCisjaW5jbHVkZSAiY29u
ZmlnLmgiCiAKICNpbmNsdWRlIDxhbGdvcml0aG0+CiAjaW5jbHVkZSA8c3RkbGliLmg+CkluZGV4
OiBXZWJDb3JlL2todG1sL21pc2MvYXJlbmEuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jv
b3QvV2ViQ29yZS9raHRtbC9taXNjL2FyZW5hLmgsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMwpk
aWZmIC11IC1wIC1yMS4zIFdlYkNvcmUva2h0bWwvbWlzYy9hcmVuYS5oCi0tLSBXZWJDb3JlL2to
dG1sL21pc2MvYXJlbmEuaAkxOCBEZWMgMjAwMiAwNzo0OToyMCAtMDAwMAkxLjMKKysrIFdlYkNv
cmUva2h0bWwvbWlzYy9hcmVuYS5oCTMgT2N0IDIwMDUgMDQ6MjI6NTkgLTAwMDAKQEAgLTExOSw3
ICsxMTksNyBAQCB2b2lkKiBBcmVuYUFsbG9jYXRlKEFyZW5hUG9vbCAqcG9vbCwgdW5zCiAgICAg
ICAgICBpZiAoKHBvb2wpLT5jdXJyZW50ID09IChhKSkgKHBvb2wpLT5jdXJyZW50ID0gJihwb29s
KS0+Zmlyc3Q7IFwKICAgICAgICAgICoocG5leHQpID0gKGEpLT5uZXh0OyBcCiAgICAgICAgICBD
TEVBUl9BUkVOQShhKTsgXAotICAgICAgICAgZnJlZShhKTsgXAorICAgICAgICAgZmFzdEZyZWUo
YSk7IFwKICAgICAgICAgIChhKSA9IDA7CiAKICNlbmRpZgpJbmRleDogV2ViQ29yZS9raHRtbC9t
aXNjL2RlY29kZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2to
dG1sL21pc2MvZGVjb2Rlci5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNDQKZGlmZiAtdSAt
cCAtcjEuNDQgV2ViQ29yZS9raHRtbC9taXNjL2RlY29kZXIuY3BwCi0tLSBXZWJDb3JlL2todG1s
L21pc2MvZGVjb2Rlci5jcHAJMjQgU2VwIDIwMDUgMDk6NDk6MTEgLTAwMDAJMS40NAorKysgV2Vi
Q29yZS9raHRtbC9taXNjL2RlY29kZXIuY3BwCTMgT2N0IDIwMDUgMDQ6MjI6NTkgLTAwMDAKQEAg
LTI2LDYgKzI2LDcgQEAKIC8vI2RlZmluZSBERUNPREVfREVCVUcKIAogI2luY2x1ZGUgImRlY29k
ZXIuaCIKKyNpbmNsdWRlICJjb25maWcuaCIKIHVzaW5nIG5hbWVzcGFjZSBraHRtbDsKIAogI2lu
Y2x1ZGUgPHFyZWdleHAuaD4KSW5kZXg6IFdlYkNvcmUva2h0bWwvbWlzYy9mb3JtZGF0YS5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva2h0bWwvbWlzYy9mb3JtZGF0
YS5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMgpkaWZmIC11IC1wIC1yMS4yIFdlYkNvcmUv
a2h0bWwvbWlzYy9mb3JtZGF0YS5jcHAKLS0tIFdlYkNvcmUva2h0bWwvbWlzYy9mb3JtZGF0YS5j
cHAJNiBTZXAgMjAwNCAyMzoyMzoxNSAtMDAwMAkxLjIKKysrIFdlYkNvcmUva2h0bWwvbWlzYy9m
b3JtZGF0YS5jcHAJMyBPY3QgMjAwNSAwNDoyMjo1OSAtMDAwMApAQCAtMTksNiArMTksNyBAQAog
ICovCiAKICNpbmNsdWRlICJmb3JtZGF0YS5oIgorI2luY2x1ZGUgImNvbmZpZy5oIgogCiBuYW1l
c3BhY2Uga2h0bWwgewogCkluZGV4OiBXZWJDb3JlL2todG1sL21pc2MvaGVscGVyLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9raHRtbC9taXNjL2hlbHBlci5jcHAs
dgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMjEKZGlmZiAtdSAtcCAtcjEuMjEgV2ViQ29yZS9raHRt
bC9taXNjL2hlbHBlci5jcHAKLS0tIFdlYkNvcmUva2h0bWwvbWlzYy9oZWxwZXIuY3BwCTYgSmFu
IDIwMDUgMTg6MjA6NTAgLTAwMDAJMS4yMQorKysgV2ViQ29yZS9raHRtbC9taXNjL2hlbHBlci5j
cHAJMyBPY3QgMjAwNSAwNDoyMjo1OSAtMDAwMApAQCAtMjIsNiArMjIsNyBAQAogICovCiAKICNp
bmNsdWRlICJoZWxwZXIuaCIKKyNpbmNsdWRlICJjb25maWcuaCIKIAogI2lmIEFQUExFX0NIQU5H
RVMKICNpbmNsdWRlICJLV1FUZXh0VXRpbGl0aWVzLmgiCkluZGV4OiBXZWJDb3JlL2todG1sL21p
c2MvbG9hZGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9raHRt
bC9taXNjL2xvYWRlci5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNzYKZGlmZiAtdSAtcCAt
cjEuNzYgV2ViQ29yZS9raHRtbC9taXNjL2xvYWRlci5jcHAKLS0tIFdlYkNvcmUva2h0bWwvbWlz
Yy9sb2FkZXIuY3BwCTI3IFNlcCAyMDA1IDIyOjM3OjE5IC0wMDAwCTEuNzYKKysrIFdlYkNvcmUv
a2h0bWwvbWlzYy9sb2FkZXIuY3BwCTMgT2N0IDIwMDUgMDQ6MjI6NTkgLTAwMDAKQEAgLTI4LDYg
KzI4LDcgQEAKICN1bmRlZiBDQUNIRV9ERUJVRwogLy8jZGVmaW5lIENBQ0hFX0RFQlVHCiAjaW5j
bHVkZSA8YXNzZXJ0Lmg+CisjaW5jbHVkZSAiY29uZmlnLmgiCiAKICNpbmNsdWRlICJsb2FkZXIu
aCIKIApJbmRleDogV2ViQ29yZS9raHRtbC9taXNjL3N0cmluZ2l0LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJD
UyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9raHRtbC9taXNjL3N0cmluZ2l0LmNwcCx2CnJldHJp
ZXZpbmcgcmV2aXNpb24gMS4yCmRpZmYgLXUgLXAgLXIxLjIgV2ViQ29yZS9raHRtbC9taXNjL3N0
cmluZ2l0LmNwcAotLS0gV2ViQ29yZS9raHRtbC9taXNjL3N0cmluZ2l0LmNwcAk5IE1heSAyMDA0
IDA0OjU1OjExIC0wMDAwCTEuMgorKysgV2ViQ29yZS9raHRtbC9taXNjL3N0cmluZ2l0LmNwcAkz
IE9jdCAyMDA1IDA0OjIyOjU5IC0wMDAwCkBAIC0yMCw2ICsyMCw3IEBACiAqLwogCiAjaW5jbHVk
ZSAic3RyaW5naXQuaCIKKyNpbmNsdWRlICJjb25maWcuaCIKIAogbmFtZXNwYWNlIGtodG1sIHsK
IApJbmRleDogV2ViQ29yZS9raHRtbC9yZW5kZXJpbmcvYmlkaS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1Mg
ZmlsZTogL2N2cy9yb290L1dlYkNvcmUva2h0bWwvcmVuZGVyaW5nL2JpZGkuY3BwLHYKcmV0cmll
dmluZyByZXZpc2lvbiAxLjE0MwpkaWZmIC11IC1wIC1yMS4xNDMgV2ViQ29yZS9raHRtbC9yZW5k
ZXJpbmcvYmlkaS5jcHAKLS0tIFdlYkNvcmUva2h0bWwvcmVuZGVyaW5nL2JpZGkuY3BwCTI5IFNl
cCAyMDA1IDIwOjEwOjU2IC0wMDAwCTEuMTQzCisrKyBXZWJDb3JlL2todG1sL3JlbmRlcmluZy9i
aWRpLmNwcAkzIE9jdCAyMDA1IDA0OjIzOjAwIC0wMDAwCkBAIC0yMSw2ICsyMSw3IEBACiAgKgog
ICovCiAjaW5jbHVkZSAiYmlkaS5oIgorI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgImJy
ZWFrX2xpbmVzLmgiCiAjaW5jbHVkZSAicmVuZGVyX2Jsb2NrLmgiCiAjaW5jbHVkZSAicmVuZGVy
X3RleHQuaCIKSW5kZXg6IFdlYkNvcmUva2h0bWwvcmVuZGVyaW5nL2JyZWFrX2xpbmVzLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9raHRtbC9yZW5kZXJpbmcvYnJl
YWtfbGluZXMuY3BwLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjI1CmRpZmYgLXUgLXAgLXIxLjI1
IFdlYkNvcmUva2h0bWwvcmVuZGVyaW5nL2JyZWFrX2xpbmVzLmNwcAotLS0gV2ViQ29yZS9raHRt
bC9yZW5kZXJpbmcvYnJlYWtfbGluZXMuY3BwCTQgU2VwIDIwMDUgMDg6MjM6NDAgLTAwMDAJMS4y
NQorKysgV2ViQ29yZS9raHRtbC9yZW5kZXJpbmcvYnJlYWtfbGluZXMuY3BwCTMgT2N0IDIwMDUg
MDQ6MjM6MDAgLTAwMDAKQEAgLTIxLDYgKzIxLDcgQEAKICAqLwogCiAjaW5jbHVkZSAiYnJlYWtf
bGluZXMuaCIKKyNpbmNsdWRlICJjb25maWcuaCIKIAogI2luY2x1ZGUgPHFzdHJpbmcuaD4KIApJ
bmRleDogV2ViQ29yZS9raHRtbC9yZW5kZXJpbmcvZm9udC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmls
ZTogL2N2cy9yb290L1dlYkNvcmUva2h0bWwvcmVuZGVyaW5nL2ZvbnQuY3BwLHYKcmV0cmlldmlu
ZyByZXZpc2lvbiAxLjQ0CmRpZmYgLXUgLXAgLXIxLjQ0IFdlYkNvcmUva2h0bWwvcmVuZGVyaW5n
L2ZvbnQuY3BwCi0tLSBXZWJDb3JlL2todG1sL3JlbmRlcmluZy9mb250LmNwcAkyNSBBdWcgMjAw
NSAxNzo0NzoxMyAtMDAwMAkxLjQ0CisrKyBXZWJDb3JlL2todG1sL3JlbmRlcmluZy9mb250LmNw
cAkzIE9jdCAyMDA1IDA0OjIzOjAwIC0wMDAwCkBAIC0yNCw2ICsyNCw3IEBACiAgKi8KIAogI2lu
Y2x1ZGUgImZvbnQuaCIKKyNpbmNsdWRlICJjb25maWcuaCIKIAogI2luY2x1ZGUgImtodG1sX2Zh
Y3RvcnkuaCIKICNpbmNsdWRlICJraHRtbF9zZXR0aW5ncy5oIgpJbmRleDogV2ViQ29yZS9raHRt
bC9yZW5kZXJpbmcvcmVuZGVyX2FyZW5hLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jv
b3QvV2ViQ29yZS9raHRtbC9yZW5kZXJpbmcvcmVuZGVyX2FyZW5hLmNwcCx2CnJldHJpZXZpbmcg
cmV2aXNpb24gMS43CmRpZmYgLXUgLXAgLXIxLjcgV2ViQ29yZS9raHRtbC9yZW5kZXJpbmcvcmVu
ZGVyX2FyZW5hLmNwcAotLS0gV2ViQ29yZS9raHRtbC9yZW5kZXJpbmcvcmVuZGVyX2FyZW5hLmNw
cAkzMCBKYW4gMjAwMyAwNjozMjo1MiAtMDAwMAkxLjcKKysrIFdlYkNvcmUva2h0bWwvcmVuZGVy
aW5nL3JlbmRlcl9hcmVuYS5jcHAJMyBPY3QgMjAwNSAwNDoyMzowMCAtMDAwMApAQCAtMzMsNiAr
MzMsNyBAQAogICovCiAKICNpbmNsdWRlICJyZW5kZXJfYXJlbmEuaCIKKyNpbmNsdWRlICJjb25m
aWcuaCIKIAogI2lmbmRlZiBOREVCVUcKIApJbmRleDogV2ViQ29yZS9raHRtbC9yZW5kZXJpbmcv
cmVuZGVyX2Jsb2NrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9r
aHRtbC9yZW5kZXJpbmcvcmVuZGVyX2Jsb2NrLmNwcCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4y
MDYKZGlmZiAtdSAtcCAtcjEuMjA2IFdlYkNvcmUva2h0bWwvcmVuZGVyaW5nL3JlbmRlcl9ibG9j
ay5jcHAKLS0tIFdlYkNvcmUva2h0bWwvcmVuZGVyaW5nL3JlbmRlcl9ibG9jay5jcHAJMjkgU2Vw
IDIwMDUgMjA6MTA6NTYgLTAwMDAJMS4yMDYKKysrIFdlYkNvcmUva2h0bWwvcmVuZGVyaW5nL3Jl
bmRlcl9ibG9jay5jcHAJMyBPY3QgMjAwNSAwNDoyMzowMCAtMDAwMApAQCAtMjgsNiArMjgsNyBA
QAogLy8jZGVmaW5lIEZMT0FUX0RFQlVHCiAKICNpbmNsdWRlIDxrZGVidWcuaD4KKyNpbmNsdWRl
ICJjb25maWcuaCIKICNpbmNsdWRlICJyZW5kZXJpbmcvcmVuZGVyX3RleHQuaCIKICNpbmNsdWRl
ICJyZW5kZXJpbmcvcmVuZGVyX3RhYmxlLmgiCiAjaW5jbHVkZSAicmVuZGVyaW5nL3JlbmRlcl9j
YW52YXMuaCIKSW5kZXg6IFdlYkNvcmUva2h0bWwvcmVuZGVyaW5nL3JlbmRlcl9ib3guY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2todG1sL3JlbmRlcmluZy9yZW5k
ZXJfYm94LmNwcCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4xNjgKZGlmZiAtdSAtcCAtcjEuMTY4
IFdlYkNvcmUva2h0bWwvcmVuZGVyaW5nL3JlbmRlcl9ib3guY3BwCi0tLSBXZWJDb3JlL2todG1s
L3JlbmRlcmluZy9yZW5kZXJfYm94LmNwcAkyOSBTZXAgMjAwNSAyMDoxMDo1NiAtMDAwMAkxLjE2
OAorKysgV2ViQ29yZS9raHRtbC9yZW5kZXJpbmcvcmVuZGVyX2JveC5jcHAJMyBPY3QgMjAwNSAw
NDoyMzowMCAtMDAwMApAQCAtMjYsNiArMjYsNyBAQAogCiAKICNpbmNsdWRlIDxxcGFpbnRlci5o
PgorI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgPHFwZW4uaD4KIAogI2luY2x1ZGUgInJl
bmRlcmluZy9yZW5kZXJfYm94LmgiCkluZGV4OiBXZWJDb3JlL2todG1sL3JlbmRlcmluZy9yZW5k
ZXJfYnIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2todG1sL3Jl
bmRlcmluZy9yZW5kZXJfYnIuY3BwLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjI4CmRpZmYgLXUg
LXAgLXIxLjI4IFdlYkNvcmUva2h0bWwvcmVuZGVyaW5nL3JlbmRlcl9ici5jcHAKLS0tIFdlYkNv
cmUva2h0bWwvcmVuZGVyaW5nL3JlbmRlcl9ici5jcHAJMTYgU2VwIDIwMDUgMjI6NDI6MTUgLTAw
MDAJMS4yOAorKysgV2ViQ29yZS9raHRtbC9yZW5kZXJpbmcvcmVuZGVyX2JyLmNwcAkzIE9jdCAy
MDA1IDA0OjIzOjAwIC0wMDAwCkBAIC0yMCw2ICsyMCw3IEBACiAgKgogICovCiAjaW5jbHVkZSAi
cmVuZGVyX2JyLmgiCisjaW5jbHVkZSAiY29uZmlnLmgiCiAKICNpbmNsdWRlICJkb21fcG9zaXRp
b24uaCIKICNpbmNsdWRlICJyZW5kZXJfYmxvY2suaCIKSW5kZXg6IFdlYkNvcmUva2h0bWwvcmVu
ZGVyaW5nL3JlbmRlcl9jYW52YXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9X
ZWJDb3JlL2todG1sL3JlbmRlcmluZy9yZW5kZXJfY2FudmFzLmNwcCx2CnJldHJpZXZpbmcgcmV2
aXNpb24gMS4zMgpkaWZmIC11IC1wIC1yMS4zMiBXZWJDb3JlL2todG1sL3JlbmRlcmluZy9yZW5k
ZXJfY2FudmFzLmNwcAotLS0gV2ViQ29yZS9raHRtbC9yZW5kZXJpbmcvcmVuZGVyX2NhbnZhcy5j
cHAJMTEgSmFuIDIwMDUgMjI6NDQ6NTMgLTAwMDAJMS4zMgorKysgV2ViQ29yZS9raHRtbC9yZW5k
ZXJpbmcvcmVuZGVyX2NhbnZhcy5jcHAJMyBPY3QgMjAwNSAwNDoyMzowMCAtMDAwMApAQCAtMjAs
NiArMjAsNyBAQAogICogQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuCiAgKi8KICNpbmNsdWRl
ICJyZW5kZXJpbmcvcmVuZGVyX2NhbnZhcy5oIgorI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1
ZGUgInJlbmRlcl9sYXllci5oIgogI2luY2x1ZGUgInhtbC9kb21fZG9jaW1wbC5oIgogCkluZGV4
OiBXZWJDb3JlL2todG1sL3JlbmRlcmluZy9yZW5kZXJfY2FudmFzaW1hZ2UuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2todG1sL3JlbmRlcmluZy9yZW5kZXJfY2Fu
dmFzaW1hZ2UuY3BwLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjIwCmRpZmYgLXUgLXAgLXIxLjIw
IFdlYkNvcmUva2h0bWwvcmVuZGVyaW5nL3JlbmRlcl9jYW52YXNpbWFnZS5jcHAKLS0tIFdlYkNv
cmUva2h0bWwvcmVuZGVyaW5nL3JlbmRlcl9jYW52YXNpbWFnZS5jcHAJNSBTZXAgMjAwNSAwNDow
MToyNCAtMDAwMAkxLjIwCisrKyBXZWJDb3JlL2todG1sL3JlbmRlcmluZy9yZW5kZXJfY2FudmFz
aW1hZ2UuY3BwCTMgT2N0IDIwMDUgMDQ6MjM6MDEgLTAwMDAKQEAgLTI2LDYgKzI2LDcgQEAKIC8v
I2RlZmluZSBERUJVR19MQVlPVVQKIAogI2luY2x1ZGUgInJlbmRlcl9jYW52YXNpbWFnZS5oIgor
I2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgInJlbmRlcl9jYW52YXMuaCIKIAogI2luY2x1
ZGUgPHFkcmF3dXRpbC5oPgpAQCAtNjUsNyArNjYsNyBAQCBSZW5kZXJDYW52YXNJbWFnZTo6flJl
bmRlckNhbnZhc0ltYWdlKCkKICAgICAgICAgX2RyYXdpbmdDb250ZXh0ID0gMDsKICAgICB9CiAg
ICAgCi0gICAgZnJlZSAoX2RyYXdpbmdDb250ZXh0RGF0YSk7CisgICAgZmFzdEZyZWUoX2RyYXdp
bmdDb250ZXh0RGF0YSk7CiAgICAgX2RyYXdpbmdDb250ZXh0RGF0YSA9IDA7CiAgICAgCiAgICAg
aWYgKF9kcmF3bkltYWdlKSB7CkBAIC04MywxNCArODQsMTQgQEAgdm9pZCBSZW5kZXJDYW52YXNJ
bWFnZTo6Y3JlYXRlRHJhd2luZ0NvbgogICAgICAgICBDRlJlbGVhc2UgKF9kcmF3aW5nQ29udGV4
dCk7CiAgICAgICAgIF9kcmF3aW5nQ29udGV4dCA9IDA7CiAgICAgfQotICAgIGZyZWUgKF9kcmF3
aW5nQ29udGV4dERhdGEpOworICAgIGZhc3RGcmVlKF9kcmF3aW5nQ29udGV4dERhdGEpOwogICAg
IENHQ29sb3JTcGFjZVJlZiBjb2xvclNwYWNlID0gQ0dDb2xvclNwYWNlQ3JlYXRlRGV2aWNlUkdC
KCk7CiAKICAgICBpbnQgY1dpZHRoID0gY29udGVudFdpZHRoKCk7CiAgICAgaW50IGNIZWlnaHQg
PSBjb250ZW50SGVpZ2h0KCk7CiAgICAgc2l6ZV90IG51bUNvbXBvbmVudHMgPSBDR0NvbG9yU3Bh
Y2VHZXROdW1iZXJPZkNvbXBvbmVudHMoY29sb3JTcGFjZSk7CiAgICAgc2l6ZV90IGJ5dGVzUGVy
Um93ID0gQllURVNfUEVSX1JPVyhjV2lkdGgsQklUU19QRVJfQ09NUE9ORU5ULChudW1Db21wb25l
bnRzKzEpKTsgLy8gKyAxIGZvciBhbHBoYQotICAgIF9kcmF3aW5nQ29udGV4dERhdGEgPSBjYWxs
b2MoaGVpZ2h0KCksIGJ5dGVzUGVyUm93KTsKKyAgICBfZHJhd2luZ0NvbnRleHREYXRhID0gZmFz
dENhbGxvYyhoZWlnaHQoKSwgYnl0ZXNQZXJSb3cpOwogICAgIF9kcmF3aW5nQ29udGV4dCA9IENH
Qml0bWFwQ29udGV4dENyZWF0ZShfZHJhd2luZ0NvbnRleHREYXRhLCBjV2lkdGgsIGNIZWlnaHQs
IEJJVFNfUEVSX0NPTVBPTkVOVCwgYnl0ZXNQZXJSb3csIGNvbG9yU3BhY2UsIGtDR0ltYWdlQWxw
aGFQcmVtdWx0aXBsaWVkTGFzdCk7CiAgICAgCiAjaWZkZWYgREVCVUdfQ0FOVkFTX0JBQ0tHUk9V
TkQKSW5kZXg6IFdlYkNvcmUva2h0bWwvcmVuZGVyaW5nL3JlbmRlcl9jb250YWluZXIuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2todG1sL3JlbmRlcmluZy9yZW5k
ZXJfY29udGFpbmVyLmNwcCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS42OApkaWZmIC11IC1wIC1y
MS42OCBXZWJDb3JlL2todG1sL3JlbmRlcmluZy9yZW5kZXJfY29udGFpbmVyLmNwcAotLS0gV2Vi
Q29yZS9raHRtbC9yZW5kZXJpbmcvcmVuZGVyX2NvbnRhaW5lci5jcHAJMzEgQXVnIDIwMDUgMDU6
MDk6MDMgLTAwMDAJMS42OAorKysgV2ViQ29yZS9raHRtbC9yZW5kZXJpbmcvcmVuZGVyX2NvbnRh
aW5lci5jcHAJMyBPY3QgMjAwNSAwNDoyMzowMSAtMDAwMApAQCAtMjYsNiArMjYsNyBAQAogLy8j
ZGVmaW5lIERFQlVHX0xBWU9VVAogCiAjaW5jbHVkZSAicmVuZGVyX2NvbnRhaW5lci5oIgorI2lu
Y2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgInJlbmRlcl90YWJsZS5oIgogI2luY2x1ZGUgInJl
bmRlcl90ZXh0LmgiCiAjaW5jbHVkZSAicmVuZGVyX2ltYWdlLmgiCkluZGV4OiBXZWJDb3JlL2to
dG1sL3JlbmRlcmluZy9yZW5kZXJfZmxleGJveC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2
cy9yb290L1dlYkNvcmUva2h0bWwvcmVuZGVyaW5nL3JlbmRlcl9mbGV4Ym94LmNwcCx2CnJldHJp
ZXZpbmcgcmV2aXNpb24gMS4yNgpkaWZmIC11IC1wIC1yMS4yNiBXZWJDb3JlL2todG1sL3JlbmRl
cmluZy9yZW5kZXJfZmxleGJveC5jcHAKLS0tIFdlYkNvcmUva2h0bWwvcmVuZGVyaW5nL3JlbmRl
cl9mbGV4Ym94LmNwcAkyOSBTZXAgMjAwNSAyMDoxMDo1NiAtMDAwMAkxLjI2CisrKyBXZWJDb3Jl
L2todG1sL3JlbmRlcmluZy9yZW5kZXJfZmxleGJveC5jcHAJMyBPY3QgMjAwNSAwNDoyMzowMSAt
MDAwMApAQCAtMjMsNiArMjMsNyBAQAogICovCiAKICNpbmNsdWRlICJyZW5kZXJfZmxleGJveC5o
IgorI2luY2x1ZGUgImNvbmZpZy5oIgogCiB1c2luZyBuYW1lc3BhY2UgRE9NOwogCkluZGV4OiBX
ZWJDb3JlL2todG1sL3JlbmRlcmluZy9yZW5kZXJfZmxvdy5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmls
ZTogL2N2cy9yb290L1dlYkNvcmUva2h0bWwvcmVuZGVyaW5nL3JlbmRlcl9mbG93LmNwcCx2CnJl
dHJpZXZpbmcgcmV2aXNpb24gMS4xNjUKZGlmZiAtdSAtcCAtcjEuMTY1IFdlYkNvcmUva2h0bWwv
cmVuZGVyaW5nL3JlbmRlcl9mbG93LmNwcAotLS0gV2ViQ29yZS9raHRtbC9yZW5kZXJpbmcvcmVu
ZGVyX2Zsb3cuY3BwCTE2IFNlcCAyMDA1IDIzOjA5OjU4IC0wMDAwCTEuMTY1CisrKyBXZWJDb3Jl
L2todG1sL3JlbmRlcmluZy9yZW5kZXJfZmxvdy5jcHAJMyBPY3QgMjAwNSAwNDoyMzowMSAtMDAw
MApAQCAtMjMsNiArMjMsNyBAQAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCiAjaW5jbHVkZSA8a2Rl
YnVnLmg+CisjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSA8YXNzZXJ0Lmg+CiAjaW5jbHVk
ZSA8cXBhaW50ZXIuaD4KICNpbmNsdWRlIDxrZ2xvYmFsLmg+CkluZGV4OiBXZWJDb3JlL2todG1s
L3JlbmRlcmluZy9yZW5kZXJfZm9ybS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290
L1dlYkNvcmUva2h0bWwvcmVuZGVyaW5nL3JlbmRlcl9mb3JtLmNwcCx2CnJldHJpZXZpbmcgcmV2
aXNpb24gMS4xMjMKZGlmZiAtdSAtcCAtcjEuMTIzIFdlYkNvcmUva2h0bWwvcmVuZGVyaW5nL3Jl
bmRlcl9mb3JtLmNwcAotLS0gV2ViQ29yZS9raHRtbC9yZW5kZXJpbmcvcmVuZGVyX2Zvcm0uY3Bw
CTI5IFNlcCAyMDA1IDIwOjEwOjU3IC0wMDAwCTEuMTIzCisrKyBXZWJDb3JlL2todG1sL3JlbmRl
cmluZy9yZW5kZXJfZm9ybS5jcHAJMyBPY3QgMjAwNSAwNDoyMzowMSAtMDAwMApAQCAtMjQsNiAr
MjQsNyBAQAogICovCiAKICNpbmNsdWRlIDxrZGVidWcuaD4KKyNpbmNsdWRlICJjb25maWcuaCIK
ICNpbmNsdWRlIDxrbG9jYWxlLmg+CiAjaW5jbHVkZSA8a2ZpbGVkaWFsb2cuaD4KICNpbmNsdWRl
IDxrY29tcGxldGlvbmJveC5oPgpJbmRleDogV2ViQ29yZS9raHRtbC9yZW5kZXJpbmcvcmVuZGVy
X2ZyYW1lcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva2h0bWwv
cmVuZGVyaW5nL3JlbmRlcl9mcmFtZXMuY3BwLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjc3CmRp
ZmYgLXUgLXAgLXIxLjc3IFdlYkNvcmUva2h0bWwvcmVuZGVyaW5nL3JlbmRlcl9mcmFtZXMuY3Bw
Ci0tLSBXZWJDb3JlL2todG1sL3JlbmRlcmluZy9yZW5kZXJfZnJhbWVzLmNwcAkxNiBTZXAgMjAw
NSAyMjo0MjoxNiAtMDAwMAkxLjc3CisrKyBXZWJDb3JlL2todG1sL3JlbmRlcmluZy9yZW5kZXJf
ZnJhbWVzLmNwcAkzIE9jdCAyMDA1IDA0OjIzOjAxIC0wMDAwCkBAIC0yNSw2ICsyNSw3IEBACiAv
LyNkZWZpbmUgREVCVUdfTEFZT1VUCiAKICNpbmNsdWRlICJyZW5kZXJpbmcvcmVuZGVyX2ZyYW1l
cy5oIgorI2luY2x1ZGUgImNvbmZpZy5oIgogCiAjaW5jbHVkZSAiY3NzL2Nzc3Byb3BlcnRpZXMu
aCIKICNpbmNsdWRlICJyZW5kZXJpbmcvcmVuZGVyX2NhbnZhcy5oIgpJbmRleDogV2ViQ29yZS9r
aHRtbC9yZW5kZXJpbmcvcmVuZGVyX2ltYWdlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3Zz
L3Jvb3QvV2ViQ29yZS9raHRtbC9yZW5kZXJpbmcvcmVuZGVyX2ltYWdlLmNwcCx2CnJldHJpZXZp
bmcgcmV2aXNpb24gMS44NgpkaWZmIC11IC1wIC1yMS44NiBXZWJDb3JlL2todG1sL3JlbmRlcmlu
Zy9yZW5kZXJfaW1hZ2UuY3BwCi0tLSBXZWJDb3JlL2todG1sL3JlbmRlcmluZy9yZW5kZXJfaW1h
Z2UuY3BwCTMwIEF1ZyAyMDA1IDA5OjMwOjIwIC0wMDAwCTEuODYKKysrIFdlYkNvcmUva2h0bWwv
cmVuZGVyaW5nL3JlbmRlcl9pbWFnZS5jcHAJMyBPY3QgMjAwNSAwNDoyMzowMSAtMDAwMApAQCAt
MjUsNiArMjUsNyBAQAogLy8jZGVmaW5lIERFQlVHX0xBWU9VVAogCiAjaW5jbHVkZSAicmVuZGVy
X2ltYWdlLmgiCisjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAicmVuZGVyX2NhbnZhcy5o
IgogCiAjaW5jbHVkZSA8cWRyYXd1dGlsLmg+CkluZGV4OiBXZWJDb3JlL2todG1sL3JlbmRlcmlu
Zy9yZW5kZXJfaW5saW5lLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29y
ZS9raHRtbC9yZW5kZXJpbmcvcmVuZGVyX2lubGluZS5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9u
IDEuNDYKZGlmZiAtdSAtcCAtcjEuNDYgV2ViQ29yZS9raHRtbC9yZW5kZXJpbmcvcmVuZGVyX2lu
bGluZS5jcHAKLS0tIFdlYkNvcmUva2h0bWwvcmVuZGVyaW5nL3JlbmRlcl9pbmxpbmUuY3BwCTIx
IEp1bCAyMDA1IDE2OjMzOjMzIC0wMDAwCTEuNDYKKysrIFdlYkNvcmUva2h0bWwvcmVuZGVyaW5n
L3JlbmRlcl9pbmxpbmUuY3BwCTMgT2N0IDIwMDUgMDQ6MjM6MDEgLTAwMDAKQEAgLTIzLDYgKzIz
LDcgQEAKICAqLwogCiAjaW5jbHVkZSA8a2dsb2JhbC5oPgorI2luY2x1ZGUgImNvbmZpZy5oIgog
I2luY2x1ZGUgInJlbmRlcl9hcmVuYS5oIgogI2luY2x1ZGUgInJlbmRlcl9pbmxpbmUuaCIKICNp
bmNsdWRlICJyZW5kZXJfYmxvY2suaCIKSW5kZXg6IFdlYkNvcmUva2h0bWwvcmVuZGVyaW5nL3Jl
bmRlcl9sYXllci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva2h0
bWwvcmVuZGVyaW5nL3JlbmRlcl9sYXllci5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMTA1
CmRpZmYgLXUgLXAgLXIxLjEwNSBXZWJDb3JlL2todG1sL3JlbmRlcmluZy9yZW5kZXJfbGF5ZXIu
Y3BwCi0tLSBXZWJDb3JlL2todG1sL3JlbmRlcmluZy9yZW5kZXJfbGF5ZXIuY3BwCTI5IFNlcCAy
MDA1IDIwOjEwOjU3IC0wMDAwCTEuMTA1CisrKyBXZWJDb3JlL2todG1sL3JlbmRlcmluZy9yZW5k
ZXJfbGF5ZXIuY3BwCTMgT2N0IDIwMDUgMDQ6MjM6MDEgLTAwMDAKQEAgLTQyLDYgKzQyLDcgQEAK
ICAqLwogCiAjaW5jbHVkZSAicmVuZGVyX2xheWVyLmgiCisjaW5jbHVkZSAiY29uZmlnLmgiCiAK
ICNpbmNsdWRlIDxrZGVidWcuaD4KICNpbmNsdWRlIDxhc3NlcnQuaD4KSW5kZXg6IFdlYkNvcmUv
a2h0bWwvcmVuZGVyaW5nL3JlbmRlcl9saW5lLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3Zz
L3Jvb3QvV2ViQ29yZS9raHRtbC9yZW5kZXJpbmcvcmVuZGVyX2xpbmUuY3BwLHYKcmV0cmlldmlu
ZyByZXZpc2lvbiAxLjUyCmRpZmYgLXUgLXAgLXIxLjUyIFdlYkNvcmUva2h0bWwvcmVuZGVyaW5n
L3JlbmRlcl9saW5lLmNwcAotLS0gV2ViQ29yZS9raHRtbC9yZW5kZXJpbmcvcmVuZGVyX2xpbmUu
Y3BwCTI5IFNlcCAyMDA1IDIwOjEwOjU3IC0wMDAwCTEuNTIKKysrIFdlYkNvcmUva2h0bWwvcmVu
ZGVyaW5nL3JlbmRlcl9saW5lLmNwcAkzIE9jdCAyMDA1IDA0OjIzOjAyIC0wMDAwCkBAIC0yMSw2
ICsyMSw3IEBACiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKICNpbmNsdWRlIDxrZGVidWcuaD4KKyNp
bmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlIDxhc3NlcnQuaD4KICNpbmNsdWRlIDxxcGFpbnRl
ci5oPgogI2luY2x1ZGUgPHFwZW4uaD4KSW5kZXg6IFdlYkNvcmUva2h0bWwvcmVuZGVyaW5nL3Jl
bmRlcl9saXN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9raHRt
bC9yZW5kZXJpbmcvcmVuZGVyX2xpc3QuY3BwLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjcwCmRp
ZmYgLXUgLXAgLXIxLjcwIFdlYkNvcmUva2h0bWwvcmVuZGVyaW5nL3JlbmRlcl9saXN0LmNwcAot
LS0gV2ViQ29yZS9raHRtbC9yZW5kZXJpbmcvcmVuZGVyX2xpc3QuY3BwCTE2IFNlcCAyMDA1IDIy
OjQyOjE2IC0wMDAwCTEuNzAKKysrIFdlYkNvcmUva2h0bWwvcmVuZGVyaW5nL3JlbmRlcl9saXN0
LmNwcAkzIE9jdCAyMDA1IDA0OjIzOjAyIC0wMDAwCkBAIC0yMyw2ICsyMyw3IEBACiAgKi8KIAog
I2luY2x1ZGUgInJlbmRlcl9saXN0LmgiCisjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAi
cmVuZGVyaW5nL3JlbmRlcl9jYW52YXMuaCIKIAogI2luY2x1ZGUgInhtbC9kb21fZG9jaW1wbC5o
IgpJbmRleDogV2ViQ29yZS9raHRtbC9yZW5kZXJpbmcvcmVuZGVyX29iamVjdC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva2h0bWwvcmVuZGVyaW5nL3JlbmRlcl9v
YmplY3QuY3BwLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjIxNwpkaWZmIC11IC1wIC1yMS4yMTcg
V2ViQ29yZS9raHRtbC9yZW5kZXJpbmcvcmVuZGVyX29iamVjdC5jcHAKLS0tIFdlYkNvcmUva2h0
bWwvcmVuZGVyaW5nL3JlbmRlcl9vYmplY3QuY3BwCTI5IFNlcCAyMDA1IDIwOjEwOjU3IC0wMDAw
CTEuMjE3CisrKyBXZWJDb3JlL2todG1sL3JlbmRlcmluZy9yZW5kZXJfb2JqZWN0LmNwcAkzIE9j
dCAyMDA1IDA0OjIzOjAyIC0wMDAwCkBAIC0yNCw2ICsyNCw3IEBACiAgKi8KIAogI2luY2x1ZGUg
InJlbmRlcmluZy9yZW5kZXJfb2JqZWN0LmgiCisjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVk
ZSAicmVuZGVyaW5nL3JlbmRlcl90YWJsZS5oIgogI2luY2x1ZGUgInJlbmRlcmluZy9yZW5kZXJf
dGV4dC5oIgogI2luY2x1ZGUgInJlbmRlcmluZy9yZW5kZXJfbGluZS5oIgpJbmRleDogV2ViQ29y
ZS9raHRtbC9yZW5kZXJpbmcvcmVuZGVyX3JlcGxhY2VkLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxl
OiAvY3ZzL3Jvb3QvV2ViQ29yZS9raHRtbC9yZW5kZXJpbmcvcmVuZGVyX3JlcGxhY2VkLmNwcCx2
CnJldHJpZXZpbmcgcmV2aXNpb24gMS44NgpkaWZmIC11IC1wIC1yMS44NiBXZWJDb3JlL2todG1s
L3JlbmRlcmluZy9yZW5kZXJfcmVwbGFjZWQuY3BwCi0tLSBXZWJDb3JlL2todG1sL3JlbmRlcmlu
Zy9yZW5kZXJfcmVwbGFjZWQuY3BwCTI5IFNlcCAyMDA1IDIwOjEwOjU3IC0wMDAwCTEuODYKKysr
IFdlYkNvcmUva2h0bWwvcmVuZGVyaW5nL3JlbmRlcl9yZXBsYWNlZC5jcHAJMyBPY3QgMjAwNSAw
NDoyMzowMiAtMDAwMApAQCAtMjIsNiArMjIsNyBAQAogICoKICAqLwogI2luY2x1ZGUgInJlbmRl
cl9yZXBsYWNlZC5oIgorI2luY2x1ZGUgImNvbmZpZy5oIgogCiAjaW5jbHVkZSAicmVuZGVyX2Fy
ZW5hLmgiCiAjaW5jbHVkZSAicmVuZGVyX2NhbnZhcy5oIgpJbmRleDogV2ViQ29yZS9raHRtbC9y
ZW5kZXJpbmcvcmVuZGVyX3N0eWxlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3Qv
V2ViQ29yZS9raHRtbC9yZW5kZXJpbmcvcmVuZGVyX3N0eWxlLmNwcCx2CnJldHJpZXZpbmcgcmV2
aXNpb24gMS43MQpkaWZmIC11IC1wIC1yMS43MSBXZWJDb3JlL2todG1sL3JlbmRlcmluZy9yZW5k
ZXJfc3R5bGUuY3BwCi0tLSBXZWJDb3JlL2todG1sL3JlbmRlcmluZy9yZW5kZXJfc3R5bGUuY3Bw
CTMwIFNlcCAyMDA1IDAwOjAzOjIwIC0wMDAwCTEuNzEKKysrIFdlYkNvcmUva2h0bWwvcmVuZGVy
aW5nL3JlbmRlcl9zdHlsZS5jcHAJMyBPY3QgMjAwNSAwNDoyMzowMiAtMDAwMApAQCAtMjIsNiAr
MjIsNyBAQAogICovCiAKICNpbmNsdWRlICJ4bWwvZG9tX3N0cmluZ2ltcGwuaCIKKyNpbmNsdWRl
ICJjb25maWcuaCIKIAogI2luY2x1ZGUgInJlbmRlcl9zdHlsZS5oIgogI2luY2x1ZGUgImNzcy9j
c3NzdHlsZXNlbGVjdG9yLmgiCkluZGV4OiBXZWJDb3JlL2todG1sL3JlbmRlcmluZy9yZW5kZXJf
c3R5bGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9raHRtbC9yZW5k
ZXJpbmcvcmVuZGVyX3N0eWxlLmgsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuOTIKZGlmZiAtdSAt
cCAtcjEuOTIgV2ViQ29yZS9raHRtbC9yZW5kZXJpbmcvcmVuZGVyX3N0eWxlLmgKLS0tIFdlYkNv
cmUva2h0bWwvcmVuZGVyaW5nL3JlbmRlcl9zdHlsZS5oCTMwIFNlcCAyMDA1IDAwOjAzOjIwIC0w
MDAwCTEuOTIKKysrIFdlYkNvcmUva2h0bWwvcmVuZGVyaW5nL3JlbmRlcl9zdHlsZS5oCTMgT2N0
IDIwMDUgMDQ6MjM6MDIgLTAwMDAKQEAgLTQxLDcgKzQxLDYgQEAKICNpbmNsdWRlIDxxcGFsZXR0
ZS5oPgogI2luY2x1ZGUgPHFhcHBsaWNhdGlvbi5oPgogCi0jaW5jbHVkZSA8a3htbGNvcmUvRmFz
dE1hbGxvYy5oPgogI2luY2x1ZGUgIm1pc2Mva2h0bWxsYXlvdXQuaCIKICNpbmNsdWRlICJtaXNj
L3NoYXJlZC5oIgogI2luY2x1ZGUgInJlbmRlcmluZy9mb250LmgiCkBAIC0zNjMsNyArMzYyLDcg
QEAgcHVibGljOgogCiBlbnVtIEVNYXJnaW5Db2xsYXBzZSB7IE1DT0xMQVBTRSwgTVNFUEFSQVRF
LCBNRElTQ0FSRCB9OwogCi1jbGFzcyBTdHlsZVN1cnJvdW5kRGF0YSA6IHB1YmxpYyBTaGFyZWQ8
U3R5bGVTdXJyb3VuZERhdGE+LCBwdWJsaWMgRmFzdEFsbG9jYXRlZAorY2xhc3MgU3R5bGVTdXJy
b3VuZERhdGEgOiBwdWJsaWMgU2hhcmVkPFN0eWxlU3Vycm91bmREYXRhPgogewogcHVibGljOgog
ICAgIFN0eWxlU3Vycm91bmREYXRhKCk7CkBAIC0zODYsNyArMzg1LDcgQEAgcHVibGljOgogCiBl
bnVtIEVCb3hTaXppbmcgeyBDT05URU5UX0JPWCwgQk9SREVSX0JPWCB9OwogCi1jbGFzcyBTdHls
ZUJveERhdGEgOiBwdWJsaWMgU2hhcmVkPFN0eWxlQm94RGF0YT4sIHB1YmxpYyBGYXN0QWxsb2Nh
dGVkCitjbGFzcyBTdHlsZUJveERhdGEgOiBwdWJsaWMgU2hhcmVkPFN0eWxlQm94RGF0YT4KIHsK
IHB1YmxpYzoKICAgICBTdHlsZUJveERhdGEoKTsKQEAgLTQ2NCw3ICs0NjMsNyBAQCBlbnVtIEVV
bmljb2RlQmlkaSB7CiAgICAgVUJOb3JtYWwsIEVtYmVkLCBPdmVycmlkZQogfTsKIAotY2xhc3Mg
U3R5bGVWaXN1YWxEYXRhIDogcHVibGljIFNoYXJlZDxTdHlsZVZpc3VhbERhdGE+LCBwdWJsaWMg
RmFzdEFsbG9jYXRlZAorY2xhc3MgU3R5bGVWaXN1YWxEYXRhIDogcHVibGljIFNoYXJlZDxTdHls
ZVZpc3VhbERhdGE+CiB7CiBwdWJsaWM6CiAgICAgU3R5bGVWaXN1YWxEYXRhKCk7CkBAIC01MDks
NyArNTA4LDcgQEAgZW51bSBFQmFja2dyb3VuZFJlcGVhdCB7CiAgICAgUkVQRUFULCBSRVBFQVRf
WCwgUkVQRUFUX1ksIE5PX1JFUEVBVAogfTsKIAotc3RydWN0IEJhY2tncm91bmRMYXllciA6IHB1
YmxpYyBGYXN0QWxsb2NhdGVkIHsKK3N0cnVjdCBCYWNrZ3JvdW5kTGF5ZXIgewogcHVibGljOgog
ICAgIEJhY2tncm91bmRMYXllcigpOwogICAgIH5CYWNrZ3JvdW5kTGF5ZXIoKTsKQEAgLTU5Niw3
ICs1OTUsNyBAQCBwdWJsaWM6CiAgICAgQmFja2dyb3VuZExheWVyKiBtX25leHQ7CiB9OwogCi1j
bGFzcyBTdHlsZUJhY2tncm91bmREYXRhIDogcHVibGljIFNoYXJlZDxTdHlsZUJhY2tncm91bmRE
YXRhPiwgcHVibGljIEZhc3RBbGxvY2F0ZWQKK2NsYXNzIFN0eWxlQmFja2dyb3VuZERhdGEgOiBw
dWJsaWMgU2hhcmVkPFN0eWxlQmFja2dyb3VuZERhdGE+CiB7CiBwdWJsaWM6CiAgICAgU3R5bGVC
YWNrZ3JvdW5kRGF0YSgpOwpAQCAtNjE5LDcgKzYxOCw3IEBAIHB1YmxpYzoKIGVudW0gRU1hcnF1
ZWVCZWhhdmlvciB7IE1OT05FLCBNU0NST0xMLCBNU0xJREUsIE1BTFRFUk5BVEUsIE1VTkZVUkwg
fTsKIGVudW0gRU1hcnF1ZWVEaXJlY3Rpb24geyBNQVVUTyA9IDAsIE1MRUZUID0gMSwgTVJJR0hU
ID0gLTEsIE1VUCA9IDIsIE1ET1dOID0gLTIsIE1GT1JXQVJEID0gMywgTUJBQ0tXQVJEID0gLTMg
fTsKIAotY2xhc3MgU3R5bGVNYXJxdWVlRGF0YSA6IHB1YmxpYyBTaGFyZWQ8U3R5bGVNYXJxdWVl
RGF0YT4sIHB1YmxpYyBGYXN0QWxsb2NhdGVkCitjbGFzcyBTdHlsZU1hcnF1ZWVEYXRhIDogcHVi
bGljIFNoYXJlZDxTdHlsZU1hcnF1ZWVEYXRhPgogewogcHVibGljOgogICAgIFN0eWxlTWFycXVl
ZURhdGEoKTsKQEAgLTY0Nyw3ICs2NDYsNyBAQCBlbnVtIEVCb3hPcmllbnQgeyBIT1JJWk9OVEFM
LCBWRVJUSUNBTCB9CiBlbnVtIEVCb3hMaW5lcyB7IFNJTkdMRSwgTVVMVElQTEUgfTsKIGVudW0g
RUJveERpcmVjdGlvbiB7IEJOT1JNQUwsIEJSRVZFUlNFIH07CiAKLWNsYXNzIFN0eWxlRmxleGli
bGVCb3hEYXRhIDogcHVibGljIFNoYXJlZDxTdHlsZUZsZXhpYmxlQm94RGF0YT4sIHB1YmxpYyBG
YXN0QWxsb2NhdGVkCitjbGFzcyBTdHlsZUZsZXhpYmxlQm94RGF0YSA6IHB1YmxpYyBTaGFyZWQ8
U3R5bGVGbGV4aWJsZUJveERhdGE+CiB7CiBwdWJsaWM6CiAgICAgU3R5bGVGbGV4aWJsZUJveERh
dGEoKTsKQEAgLTY2OSw3ICs2NjgsNyBAQCBwdWJsaWM6CiB9OwogCiAvLyBUaGlzIHN0cnVjdCBo
b2xkcyBpbmZvcm1hdGlvbiBhYm91dCBzaGFkb3dzIGZvciB0aGUgdGV4dC1zaGFkb3cgYW5kIGJv
eC1zaGFkb3cgcHJvcGVydGllcy4KLXN0cnVjdCBTaGFkb3dEYXRhIDogcHVibGljIEZhc3RBbGxv
Y2F0ZWQgeworc3RydWN0IFNoYWRvd0RhdGEgewogICAgIFNoYWRvd0RhdGEoaW50IF94LCBpbnQg
X3ksIGludCBfYmx1ciwgY29uc3QgUUNvbG9yJiBfY29sb3IpCiAgICAgOngoX3gpLCB5KF95KSwg
Ymx1cihfYmx1ciksIGNvbG9yKF9jb2xvciksIG5leHQoMCkge30KICAgICBTaGFkb3dEYXRhKGNv
bnN0IFNoYWRvd0RhdGEmIG8pOwpAQCAtNzY0LDcgKzc2Myw3IEBAIGVudW0gRUFwcGVhcmFuY2Ug
ewogLy8gVGhpcyBzdHJ1Y3QgaXMgZm9yIHJhcmVseSB1c2VkIG5vbi1pbmhlcml0ZWQgQ1NTMyBw
cm9wZXJ0aWVzLiAgQnkgZ3JvdXBpbmcgdGhlbSB0b2dldGhlciwKIC8vIHdlIHNhdmUgc3BhY2Us
IGFuZCBvbmx5IGFsbG9jYXRlIHRoaXMgb2JqZWN0IHdoZW4gc29tZW9uZSBhY3R1YWxseSB1c2Vz
CiAvLyBhIG5vbi1pbmhlcml0ZWQgQ1NTMyBwcm9wZXJ0eS4KLWNsYXNzIFN0eWxlQ1NTM05vbklu
aGVyaXRlZERhdGEgOiBwdWJsaWMgU2hhcmVkPFN0eWxlQ1NTM05vbkluaGVyaXRlZERhdGE+LCBw
dWJsaWMgRmFzdEFsbG9jYXRlZAorY2xhc3MgU3R5bGVDU1MzTm9uSW5oZXJpdGVkRGF0YSA6IHB1
YmxpYyBTaGFyZWQ8U3R5bGVDU1MzTm9uSW5oZXJpdGVkRGF0YT4KIHsKIHB1YmxpYzoKICAgICBT
dHlsZUNTUzNOb25Jbmhlcml0ZWREYXRhKCk7CkBAIC04MDQsNyArODAzLDcgQEAgcHVibGljOgog
Ly8gVGhpcyBzdHJ1Y3QgaXMgZm9yIHJhcmVseSB1c2VkIGluaGVyaXRlZCBDU1MzIHByb3BlcnRp
ZXMuICBCeSBncm91cGluZyB0aGVtIHRvZ2V0aGVyLAogLy8gd2Ugc2F2ZSBzcGFjZSwgYW5kIG9u
bHkgYWxsb2NhdGUgdGhpcyBvYmplY3Qgd2hlbiBzb21lb25lIGFjdHVhbGx5IHVzZXMKIC8vIGFu
IGluaGVyaXRlZCBDU1MzIHByb3BlcnR5LgotY2xhc3MgU3R5bGVDU1MzSW5oZXJpdGVkRGF0YSA6
IHB1YmxpYyBTaGFyZWQ8U3R5bGVDU1MzSW5oZXJpdGVkRGF0YT4sIHB1YmxpYyBGYXN0QWxsb2Nh
dGVkCitjbGFzcyBTdHlsZUNTUzNJbmhlcml0ZWREYXRhIDogcHVibGljIFNoYXJlZDxTdHlsZUNT
UzNJbmhlcml0ZWREYXRhPgogewogcHVibGljOgogICAgIFN0eWxlQ1NTM0luaGVyaXRlZERhdGEo
KTsKSW5kZXg6IFdlYkNvcmUva2h0bWwvcmVuZGVyaW5nL3JlbmRlcl90YWJsZS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva2h0bWwvcmVuZGVyaW5nL3JlbmRlcl90
YWJsZS5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMTMzCmRpZmYgLXUgLXAgLXIxLjEzMyBX
ZWJDb3JlL2todG1sL3JlbmRlcmluZy9yZW5kZXJfdGFibGUuY3BwCi0tLSBXZWJDb3JlL2todG1s
L3JlbmRlcmluZy9yZW5kZXJfdGFibGUuY3BwCTI5IFNlcCAyMDA1IDIwOjEwOjU4IC0wMDAwCTEu
MTMzCisrKyBXZWJDb3JlL2todG1sL3JlbmRlcmluZy9yZW5kZXJfdGFibGUuY3BwCTMgT2N0IDIw
MDUgMDQ6MjM6MDMgLTAwMDAKQEAgLTI5LDYgKzI5LDcgQEAKIC8vI2RlZmluZSBERUJVR19MQVlP
VVQKIC8vI2RlZmluZSBCT1hfREVCVUcKICNpbmNsdWRlICJyZW5kZXJpbmcvcmVuZGVyX3RhYmxl
LmgiCisjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAicmVuZGVyaW5nL3RhYmxlX2xheW91
dC5oIgogI2luY2x1ZGUgImh0bWwvaHRtbF90YWJsZWltcGwuaCIKICNpbmNsdWRlICJodG1sbmFt
ZXMuaCIKSW5kZXg6IFdlYkNvcmUva2h0bWwvcmVuZGVyaW5nL3JlbmRlcl90ZXh0LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9raHRtbC9yZW5kZXJpbmcvcmVuZGVy
X3RleHQuY3BwLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjE5OQpkaWZmIC11IC1wIC1yMS4xOTkg
V2ViQ29yZS9raHRtbC9yZW5kZXJpbmcvcmVuZGVyX3RleHQuY3BwCi0tLSBXZWJDb3JlL2todG1s
L3JlbmRlcmluZy9yZW5kZXJfdGV4dC5jcHAJMjQgU2VwIDIwMDUgMTE6NDU6MTYgLTAwMDAJMS4x
OTkKKysrIFdlYkNvcmUva2h0bWwvcmVuZGVyaW5nL3JlbmRlcl90ZXh0LmNwcAkzIE9jdCAyMDA1
IDA0OjIzOjAzIC0wMDAwCkBAIC0yNSw2ICsyNSw3IEBACiAvLyNkZWZpbmUgQklESV9ERUJVRwog
CiAjaW5jbHVkZSAicmVuZGVyaW5nL3JlbmRlcl90ZXh0LmgiCisjaW5jbHVkZSAiY29uZmlnLmgi
CiAKICNpbmNsdWRlICJyZW5kZXJpbmcvcmVuZGVyX2NhbnZhcy5oIgogI2luY2x1ZGUgInJlbmRl
cmluZy9yZW5kZXJfb2JqZWN0LmgiCkluZGV4OiBXZWJDb3JlL2todG1sL3JlbmRlcmluZy9yZW5k
ZXJfdGhlbWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2todG1s
L3JlbmRlcmluZy9yZW5kZXJfdGhlbWUuY3BwLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjEwCmRp
ZmYgLXUgLXAgLXIxLjEwIFdlYkNvcmUva2h0bWwvcmVuZGVyaW5nL3JlbmRlcl90aGVtZS5jcHAK
LS0tIFdlYkNvcmUva2h0bWwvcmVuZGVyaW5nL3JlbmRlcl90aGVtZS5jcHAJMjUgQXVnIDIwMDUg
MjM6MTM6NTQgLTAwMDAJMS4xMAorKysgV2ViQ29yZS9raHRtbC9yZW5kZXJpbmcvcmVuZGVyX3Ro
ZW1lLmNwcAkzIE9jdCAyMDA1IDA0OjIzOjAzIC0wMDAwCkBAIC0yMCw2ICsyMCw3IEBACiAgKi8K
IAogI2luY2x1ZGUgInJlbmRlcl90aGVtZS5oIgorI2luY2x1ZGUgImNvbmZpZy5oIgogCiAjaW5j
bHVkZSAicmVuZGVyX3N0eWxlLmgiCiAjaW5jbHVkZSAiaHRtbG5hbWVzLmgiCkluZGV4OiBXZWJD
b3JlL2todG1sL3JlbmRlcmluZy9yZW5kZXJfdGhlbWVfbWFjLm1tCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZp
bGU6IC9jdnMvcm9vdC9XZWJDb3JlL2todG1sL3JlbmRlcmluZy9yZW5kZXJfdGhlbWVfbWFjLm1t
LHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjcKZGlmZiAtdSAtcCAtcjEuNyBXZWJDb3JlL2todG1s
L3JlbmRlcmluZy9yZW5kZXJfdGhlbWVfbWFjLm1tCi0tLSBXZWJDb3JlL2todG1sL3JlbmRlcmlu
Zy9yZW5kZXJfdGhlbWVfbWFjLm1tCTI5IFNlcCAyMDA1IDIwOjEwOjU4IC0wMDAwCTEuNworKysg
V2ViQ29yZS9raHRtbC9yZW5kZXJpbmcvcmVuZGVyX3RoZW1lX21hYy5tbQkzIE9jdCAyMDA1IDA0
OjIzOjAzIC0wMDAwCkBAIC0yMCw2ICsyMCw3IEBACiAgKi8KIAogI2ltcG9ydCAicmVuZGVyX3Ro
ZW1lX21hYy5oIgorI2luY2x1ZGUgImNvbmZpZy5oIgogCiAjaW1wb3J0ICJyZW5kZXJfc3R5bGUu
aCIKICNpbXBvcnQgInJlbmRlcl9jYW52YXMuaCIKSW5kZXg6IFdlYkNvcmUva2h0bWwvcmVuZGVy
aW5nL3RhYmxlX2xheW91dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNv
cmUva2h0bWwvcmVuZGVyaW5nL3RhYmxlX2xheW91dC5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9u
IDEuMjQKZGlmZiAtdSAtcCAtcjEuMjQgV2ViQ29yZS9raHRtbC9yZW5kZXJpbmcvdGFibGVfbGF5
b3V0LmNwcAotLS0gV2ViQ29yZS9raHRtbC9yZW5kZXJpbmcvdGFibGVfbGF5b3V0LmNwcAkyOSBT
ZXAgMjAwNSAyMDoxMDo1OCAtMDAwMAkxLjI0CisrKyBXZWJDb3JlL2todG1sL3JlbmRlcmluZy90
YWJsZV9sYXlvdXQuY3BwCTMgT2N0IDIwMDUgMDQ6MjM6MDMgLTAwMDAKQEAgLTIzLDYgKzIzLDcg
QEAKICAqICRJZDogdGFibGVfbGF5b3V0LmNwcCx2IDEuMjQgMjAwNS8wOS8yOSAyMDoxMDo1OCBo
eWF0dCBFeHAgJAogICovCiAjaW5jbHVkZSAidGFibGVfbGF5b3V0LmgiCisjaW5jbHVkZSAiY29u
ZmlnLmgiCiAjaW5jbHVkZSAicmVuZGVyX3RhYmxlLmgiCiAKICNpbmNsdWRlIDxrZ2xvYmFsLmg+
CkluZGV4OiBXZWJDb3JlL2todG1sL3hibC94YmxfYmluZGluZy5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1Mg
ZmlsZTogL2N2cy9yb290L1dlYkNvcmUva2h0bWwveGJsL3hibF9iaW5kaW5nLmNwcCx2CnJldHJp
ZXZpbmcgcmV2aXNpb24gMS4zCmRpZmYgLXUgLXAgLXIxLjMgV2ViQ29yZS9raHRtbC94YmwveGJs
X2JpbmRpbmcuY3BwCi0tLSBXZWJDb3JlL2todG1sL3hibC94YmxfYmluZGluZy5jcHAJMjUgQXVn
IDIwMDUgMTc6NDc6MTkgLTAwMDAJMS4zCisrKyBXZWJDb3JlL2todG1sL3hibC94YmxfYmluZGlu
Zy5jcHAJMyBPY3QgMjAwNSAwNDoyMzowMyAtMDAwMApAQCAtMSw2ICsxLDcgQEAKICNpZm5kZWYg
S0hUTUxfTk9fWEJMCiAKICNpbmNsdWRlIDxrdXJsLmg+CisjaW5jbHVkZSAiY29uZmlnLmgiCiAj
aW5jbHVkZSAieGJsX3Byb3RvYmluZGluZy5oIgogI2luY2x1ZGUgInhibF9iaW5kaW5nLmgiCiAj
aW5jbHVkZSAieGJsX2RvY2ltcGwuaCIKSW5kZXg6IFdlYkNvcmUva2h0bWwveGJsL3hibF9iaW5k
aW5nX21hbmFnZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2to
dG1sL3hibC94YmxfYmluZGluZ19tYW5hZ2VyLmNwcCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4y
CmRpZmYgLXUgLXAgLXIxLjIgV2ViQ29yZS9raHRtbC94YmwveGJsX2JpbmRpbmdfbWFuYWdlci5j
cHAKLS0tIFdlYkNvcmUva2h0bWwveGJsL3hibF9iaW5kaW5nX21hbmFnZXIuY3BwCTMwIEphbiAy
MDA0IDA5OjA2OjQ0IC0wMDAwCTEuMgorKysgV2ViQ29yZS9raHRtbC94YmwveGJsX2JpbmRpbmdf
bWFuYWdlci5jcHAJMyBPY3QgMjAwNSAwNDoyMzowMyAtMDAwMApAQCAtMSw2ICsxLDcgQEAKICNp
Zm5kZWYgS0hUTUxfTk9fWEJMCiAKICNpbmNsdWRlICJxcHRyZGljdC5oIgorI2luY2x1ZGUgImNv
bmZpZy5oIgogI2luY2x1ZGUgInhtbC9kb21fZG9jaW1wbC5oIgogI2luY2x1ZGUgInhtbC9kb21f
ZWxlbWVudGltcGwuaCIKICNpbmNsdWRlICJyZW5kZXJpbmcvcmVuZGVyX3N0eWxlLmgiCkluZGV4
OiBXZWJDb3JlL2todG1sL3hibC94YmxfZG9jaW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTog
L2N2cy9yb290L1dlYkNvcmUva2h0bWwveGJsL3hibF9kb2NpbXBsLmNwcCx2CnJldHJpZXZpbmcg
cmV2aXNpb24gMS40CmRpZmYgLXUgLXAgLXIxLjQgV2ViQ29yZS9raHRtbC94YmwveGJsX2RvY2lt
cGwuY3BwCi0tLSBXZWJDb3JlL2todG1sL3hibC94YmxfZG9jaW1wbC5jcHAJMjUgQXVnIDIwMDUg
MTc6NDc6MTkgLTAwMDAJMS40CisrKyBXZWJDb3JlL2todG1sL3hibC94YmxfZG9jaW1wbC5jcHAJ
MyBPY3QgMjAwNSAwNDoyMzowMyAtMDAwMApAQCAtMSw2ICsxLDcgQEAKICNpZm5kZWYgS0hUTUxf
Tk9fWEJMCiAKICNpbmNsdWRlICJ4YmxfZG9jaW1wbC5oIgorI2luY2x1ZGUgImNvbmZpZy5oIgog
I2luY2x1ZGUgInhibF90b2tlbml6ZXIuaCIKICNpbmNsdWRlICJ4YmxfcHJvdG9iaW5kaW5nLmgi
CiAKSW5kZXg6IFdlYkNvcmUva2h0bWwveGJsL3hibF9wcm90b2JpbmRpbmcuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2todG1sL3hibC94YmxfcHJvdG9iaW5kaW5n
LmNwcCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4yCmRpZmYgLXUgLXAgLXIxLjIgV2ViQ29yZS9r
aHRtbC94YmwveGJsX3Byb3RvYmluZGluZy5jcHAKLS0tIFdlYkNvcmUva2h0bWwveGJsL3hibF9w
cm90b2JpbmRpbmcuY3BwCTMwIEphbiAyMDA0IDA5OjA2OjQ0IC0wMDAwCTEuMgorKysgV2ViQ29y
ZS9raHRtbC94YmwveGJsX3Byb3RvYmluZGluZy5jcHAJMyBPY3QgMjAwNSAwNDoyMzowMyAtMDAw
MApAQCAtMSw2ICsxLDcgQEAKICNpZm5kZWYgS0hUTUxfTk9fWEJMCiAKICNpbmNsdWRlICJ4Ymxf
cHJvdG9iaW5kaW5nLmgiCisjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAieGJsX2RvY2lt
cGwuaCIKIAogdXNpbmcgRE9NOjpET01TdHJpbmc7CkluZGV4OiBXZWJDb3JlL2todG1sL3hibC94
YmxfcHJvdG9oYW5kbGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29y
ZS9raHRtbC94YmwveGJsX3Byb3RvaGFuZGxlci5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEu
MwpkaWZmIC11IC1wIC1yMS4zIFdlYkNvcmUva2h0bWwveGJsL3hibF9wcm90b2hhbmRsZXIuY3Bw
Ci0tLSBXZWJDb3JlL2todG1sL3hibC94YmxfcHJvdG9oYW5kbGVyLmNwcAkyNSBBdWcgMjAwNSAx
Nzo0NzoxOSAtMDAwMAkxLjMKKysrIFdlYkNvcmUva2h0bWwveGJsL3hibF9wcm90b2hhbmRsZXIu
Y3BwCTMgT2N0IDIwMDUgMDQ6MjM6MDMgLTAwMDAKQEAgLTEsNiArMSw3IEBACiAjaWZuZGVmIEtI
VE1MX05PX1hCTAogCiAjaW5jbHVkZSAicXN0cmluZ2xpc3QuaCIKKyNpbmNsdWRlICJjb25maWcu
aCIKICNpbmNsdWRlICJxc3RyaW5nLmgiCiAjaW5jbHVkZSAieGJsX3Byb3RvaGFuZGxlci5oIgog
CkluZGV4OiBXZWJDb3JlL2todG1sL3hibC94YmxfcHJvdG9pbXBsZW1lbnRhdGlvbi5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva2h0bWwveGJsL3hibF9wcm90b2lt
cGxlbWVudGF0aW9uLmNwcCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4yCmRpZmYgLXUgLXAgLXIx
LjIgV2ViQ29yZS9raHRtbC94YmwveGJsX3Byb3RvaW1wbGVtZW50YXRpb24uY3BwCi0tLSBXZWJD
b3JlL2todG1sL3hibC94YmxfcHJvdG9pbXBsZW1lbnRhdGlvbi5jcHAJMzAgSmFuIDIwMDQgMDk6
MDY6NDQgLTAwMDAJMS4yCisrKyBXZWJDb3JlL2todG1sL3hibC94YmxfcHJvdG9pbXBsZW1lbnRh
dGlvbi5jcHAJMyBPY3QgMjAwNSAwNDoyMzowMyAtMDAwMApAQCAtMSw2ICsxLDcgQEAKICNpZm5k
ZWYgS0hUTUxfTk9fWEJMCiAKICNpbmNsdWRlICJ4YmxfcHJvdG9pbXBsZW1lbnRhdGlvbi5oIgor
I2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgInhibF9wcm90b2JpbmRpbmcuaCIKIAogdXNp
bmcgRE9NOjpET01TdHJpbmc7CkluZGV4OiBXZWJDb3JlL2todG1sL3hibC94YmxfdG9rZW5pemVy
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9raHRtbC94YmwveGJs
X3Rva2VuaXplci5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMwpkaWZmIC11IC1wIC1yMS4z
IFdlYkNvcmUva2h0bWwveGJsL3hibF90b2tlbml6ZXIuY3BwCi0tLSBXZWJDb3JlL2todG1sL3hi
bC94YmxfdG9rZW5pemVyLmNwcAkxOCBKdWwgMjAwNSAyMTo0NDoyOCAtMDAwMAkxLjMKKysrIFdl
YkNvcmUva2h0bWwveGJsL3hibF90b2tlbml6ZXIuY3BwCTMgT2N0IDIwMDUgMDQ6MjM6MDMgLTAw
MDAKQEAgLTEsNiArMSw3IEBACiAjaWZuZGVmIEtIVE1MX05PX1hCTAogCiAjaW5jbHVkZSAiZG9t
L2RvbV9ub2RlLmgiCisjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAieG1sL2RvbV9lbGVt
ZW50aW1wbC5oIgogCiAjaW5jbHVkZSAieGJsX3Rva2VuaXplci5oIgpJbmRleDogV2ViQ29yZS9r
aHRtbC94bWwvRXZlbnROYW1lcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dl
YkNvcmUva2h0bWwveG1sL0V2ZW50TmFtZXMuY3BwLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjEK
ZGlmZiAtdSAtcCAtcjEuMSBXZWJDb3JlL2todG1sL3htbC9FdmVudE5hbWVzLmNwcAotLS0gV2Vi
Q29yZS9raHRtbC94bWwvRXZlbnROYW1lcy5jcHAJMzEgQXVnIDIwMDUgMDQ6Mzg6NDEgLTAwMDAJ
MS4xCisrKyBXZWJDb3JlL2todG1sL3htbC9FdmVudE5hbWVzLmNwcAkzIE9jdCAyMDA1IDA0OjIz
OjAzIC0wMDAwCkBAIC0yMyw2ICsyMyw3IEBACiAjZGVmaW5lIERPTV9FVkVOVF9OQU1FU19ISURF
X0dMT0JBTFMgMQogCiAjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgorI2luY2x1ZGUgImNvbmZpZy5o
IgogCiB1c2luZyBET006OkF0b21pY1N0cmluZzsKIHVzaW5nIERPTTo6bnVsbEF0b207CkluZGV4
OiBXZWJDb3JlL2todG1sL3htbC9kb20yX2V2ZW50c2ltcGwuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZp
bGU6IC9jdnMvcm9vdC9XZWJDb3JlL2todG1sL3htbC9kb20yX2V2ZW50c2ltcGwuY3BwLHYKcmV0
cmlldmluZyByZXZpc2lvbiAxLjM4CmRpZmYgLXUgLXAgLXIxLjM4IFdlYkNvcmUva2h0bWwveG1s
L2RvbTJfZXZlbnRzaW1wbC5jcHAKLS0tIFdlYkNvcmUva2h0bWwveG1sL2RvbTJfZXZlbnRzaW1w
bC5jcHAJMTYgU2VwIDIwMDUgMjI6NDI6MTkgLTAwMDAJMS4zOAorKysgV2ViQ29yZS9raHRtbC94
bWwvZG9tMl9ldmVudHNpbXBsLmNwcAkzIE9jdCAyMDA1IDA0OjIzOjAzIC0wMDAwCkBAIC0yMiw2
ICsyMiw3IEBACiAgKi8KIAogI2luY2x1ZGUgInhtbC9kb20yX2V2ZW50c2ltcGwuaCIKKyNpbmNs
dWRlICJjb25maWcuaCIKIAogI2luY2x1ZGUgImRvbS9kb20yX2V2ZW50cy5oIgogI2luY2x1ZGUg
InhtbC9kb21fc3RyaW5naW1wbC5oIgpJbmRleDogV2ViQ29yZS9raHRtbC94bWwvZG9tMl9ldmVu
dHNpbXBsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva2h0bWwveG1s
L2RvbTJfZXZlbnRzaW1wbC5oLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjMxCmRpZmYgLXUgLXAg
LXIxLjMxIFdlYkNvcmUva2h0bWwveG1sL2RvbTJfZXZlbnRzaW1wbC5oCi0tLSBXZWJDb3JlL2to
dG1sL3htbC9kb20yX2V2ZW50c2ltcGwuaAkyNyBTZXAgMjAwNSAyMjozNzoyMSAtMDAwMAkxLjMx
CisrKyBXZWJDb3JlL2todG1sL3htbC9kb20yX2V2ZW50c2ltcGwuaAkzIE9jdCAyMDA1IDA0OjIz
OjAzIC0wMDAwCkBAIC00NCw3ICs0NCw3IEBAIGNsYXNzIEV2ZW50TGlzdGVuZXI7CiBjbGFzcyBO
b2RlSW1wbDsKIGNsYXNzIENsaXBib2FyZEltcGw7CiAKLWNsYXNzIEV2ZW50SW1wbCA6IHB1Ymxp
YyBraHRtbDo6U2hhcmVkPEV2ZW50SW1wbD4sIHB1YmxpYyBGYXN0QWxsb2NhdGVkCitjbGFzcyBF
dmVudEltcGwgOiBwdWJsaWMga2h0bWw6OlNoYXJlZDxFdmVudEltcGw+CiB7CiBwdWJsaWM6CiAg
ICAgRXZlbnRJbXBsKCk7CkBAIC0zNTksNyArMzU5LDcgQEAgcHJpdmF0ZToKICAgICBpbnQgbV93
aGVlbERlbHRhOwogfTsKIAotY2xhc3MgUmVnaXN0ZXJlZEV2ZW50TGlzdGVuZXIgOiBwdWJsaWMg
RmFzdEFsbG9jYXRlZCB7CitjbGFzcyBSZWdpc3RlcmVkRXZlbnRMaXN0ZW5lciB7CiBwdWJsaWM6
CiAgICAgUmVnaXN0ZXJlZEV2ZW50TGlzdGVuZXIoY29uc3QgQXRvbWljU3RyaW5nICZldmVudFR5
cGUsIEV2ZW50TGlzdGVuZXIgKmxpc3RlbmVyLCBib29sIHVzZUNhcHR1cmUpOwogICAgIH5SZWdp
c3RlcmVkRXZlbnRMaXN0ZW5lcigpOwpAQCAtMzgxLDcgKzM4MSw3IEBAIGJvb2wgb3BlcmF0b3I9
PShjb25zdCBSZWdpc3RlcmVkRXZlbnRMaXMKIGlubGluZSBib29sIG9wZXJhdG9yIT0oY29uc3Qg
UmVnaXN0ZXJlZEV2ZW50TGlzdGVuZXIgJmEsIGNvbnN0IFJlZ2lzdGVyZWRFdmVudExpc3RlbmVy
ICZiKSB7IHJldHVybiAhKGEgPT0gYik7IH0KIAogLy8gU3RhdGUgYXZhaWxhYmxlIGR1cmluZyBJ
RSdzIGV2ZW50cyBmb3IgZHJhZyBhbmQgZHJvcCBhbmQgY29weS9wYXN0ZQotY2xhc3MgQ2xpcGJv
YXJkSW1wbCA6IHB1YmxpYyBraHRtbDo6U2hhcmVkPENsaXBib2FyZEltcGw+LCBwdWJsaWMgRmFz
dEFsbG9jYXRlZCB7CitjbGFzcyBDbGlwYm9hcmRJbXBsIDogcHVibGljIGtodG1sOjpTaGFyZWQ8
Q2xpcGJvYXJkSW1wbD4gewogcHVibGljOgogICAgIENsaXBib2FyZEltcGwoKSB7IH0KICAgICB2
aXJ0dWFsIH5DbGlwYm9hcmRJbXBsKCk7CkluZGV4OiBXZWJDb3JlL2todG1sL3htbC9kb20yX3Jh
bmdlaW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva2h0bWwv
eG1sL2RvbTJfcmFuZ2VpbXBsLmNwcCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS40NApkaWZmIC11
IC1wIC1yMS40NCBXZWJDb3JlL2todG1sL3htbC9kb20yX3JhbmdlaW1wbC5jcHAKLS0tIFdlYkNv
cmUva2h0bWwveG1sL2RvbTJfcmFuZ2VpbXBsLmNwcAkxNiBTZXAgMjAwNSAyMjo0MjoxOSAtMDAw
MAkxLjQ0CisrKyBXZWJDb3JlL2todG1sL3htbC9kb20yX3JhbmdlaW1wbC5jcHAJMyBPY3QgMjAw
NSAwNDoyMzowMyAtMDAwMApAQCAtMjQsNiArMjQsNyBAQAogICovCiAKICNpbmNsdWRlICJkb20y
X3JhbmdlaW1wbC5oIgorI2luY2x1ZGUgImNvbmZpZy5oIgogCiAjaW5jbHVkZSAiZG9tL2RvbV9l
eGNlcHRpb24uaCIKICNpbmNsdWRlICJkb21fdGV4dGltcGwuaCIKSW5kZXg6IFdlYkNvcmUva2h0
bWwveG1sL2RvbTJfcmFuZ2VpbXBsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dl
YkNvcmUva2h0bWwveG1sL2RvbTJfcmFuZ2VpbXBsLmgsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEu
MjgKZGlmZiAtdSAtcCAtcjEuMjggV2ViQ29yZS9raHRtbC94bWwvZG9tMl9yYW5nZWltcGwuaAot
LS0gV2ViQ29yZS9raHRtbC94bWwvZG9tMl9yYW5nZWltcGwuaAkyNyBTZXAgMjAwNSAyMjozNzoy
MSAtMDAwMAkxLjI4CisrKyBXZWJDb3JlL2todG1sL3htbC9kb20yX3JhbmdlaW1wbC5oCTMgT2N0
IDIwMDUgMDQ6MjM6MDMgLTAwMDAKQEAgLTI5LDcgKzI5LDYgQEAKIAogI2luY2x1ZGUgImRvbS9k
b20yX3JhbmdlLmgiCiAjaW5jbHVkZSAibWlzYy9zaGFyZWQuaCIKLSNpbmNsdWRlIDxreG1sY29y
ZS9GYXN0TWFsbG9jLmg+CiAKIG5hbWVzcGFjZSBET00gewogCkBAIC0zOSw3ICszOCw3IEBAIGNs
YXNzIERPTVN0cmluZzsKIGNsYXNzIE5vZGVJbXBsOwogY2xhc3MgUG9zaXRpb247CiAKLWNsYXNz
IFJhbmdlSW1wbCA6IHB1YmxpYyBraHRtbDo6U2hhcmVkPFJhbmdlSW1wbD4sIHB1YmxpYyBGYXN0
QWxsb2NhdGVkCitjbGFzcyBSYW5nZUltcGwgOiBwdWJsaWMga2h0bWw6OlNoYXJlZDxSYW5nZUlt
cGw+CiB7CiAgICAgZnJpZW5kIGNsYXNzIERvY3VtZW50SW1wbDsKIHB1YmxpYzoKSW5kZXg6IFdl
YkNvcmUva2h0bWwveG1sL2RvbTJfdHJhdmVyc2FsaW1wbC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmls
ZTogL2N2cy9yb290L1dlYkNvcmUva2h0bWwveG1sL2RvbTJfdHJhdmVyc2FsaW1wbC5jcHAsdgpy
ZXRyaWV2aW5nIHJldmlzaW9uIDEuMTIKZGlmZiAtdSAtcCAtcjEuMTIgV2ViQ29yZS9raHRtbC94
bWwvZG9tMl90cmF2ZXJzYWxpbXBsLmNwcAotLS0gV2ViQ29yZS9raHRtbC94bWwvZG9tMl90cmF2
ZXJzYWxpbXBsLmNwcAkxNiBTZXAgMjAwNSAyMjo0MjoxOSAtMDAwMAkxLjEyCisrKyBXZWJDb3Jl
L2todG1sL3htbC9kb20yX3RyYXZlcnNhbGltcGwuY3BwCTMgT2N0IDIwMDUgMDQ6MjM6MDMgLTAw
MDAKQEAgLTIzLDYgKzIzLDcgQEAKICAqLwogCiAjaW5jbHVkZSAieG1sL2RvbTJfdHJhdmVyc2Fs
aW1wbC5oIgorI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgImRvbS9kb21fZXhjZXB0aW9u
LmgiCiAjaW5jbHVkZSAieG1sL2RvbV9kb2NpbXBsLmgiCiAKSW5kZXg6IFdlYkNvcmUva2h0bWwv
eG1sL2RvbTJfdHJhdmVyc2FsaW1wbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9X
ZWJDb3JlL2todG1sL3htbC9kb20yX3RyYXZlcnNhbGltcGwuaCx2CnJldHJpZXZpbmcgcmV2aXNp
b24gMS4xMgpkaWZmIC11IC1wIC1yMS4xMiBXZWJDb3JlL2todG1sL3htbC9kb20yX3RyYXZlcnNh
bGltcGwuaAotLS0gV2ViQ29yZS9raHRtbC94bWwvZG9tMl90cmF2ZXJzYWxpbXBsLmgJMjcgU2Vw
IDIwMDUgMjI6Mzc6MjEgLTAwMDAJMS4xMgorKysgV2ViQ29yZS9raHRtbC94bWwvZG9tMl90cmF2
ZXJzYWxpbXBsLmgJMyBPY3QgMjAwNSAwNDoyMzowMyAtMDAwMApAQCAtMjgsMTQgKzI4LDEzIEBA
CiAKICNpbmNsdWRlICJkb20vZG9tMl90cmF2ZXJzYWwuaCIKICNpbmNsdWRlICJtaXNjL3NoYXJl
ZC5oIgotI2luY2x1ZGUgPGt4bWxjb3JlL0Zhc3RNYWxsb2MuaD4KIAogbmFtZXNwYWNlIERPTSB7
CiAKIGNsYXNzIE5vZGVJbXBsOwogY2xhc3MgRG9jdW1lbnRJbXBsOwogCi1jbGFzcyBOb2RlRmls
dGVySW1wbCA6IHB1YmxpYyBraHRtbDo6U2hhcmVkPE5vZGVGaWx0ZXJJbXBsPiwgcHVibGljIEZh
c3RBbGxvY2F0ZWQKK2NsYXNzIE5vZGVGaWx0ZXJJbXBsIDogcHVibGljIGtodG1sOjpTaGFyZWQ8
Tm9kZUZpbHRlckltcGw+CiB7CiBwdWJsaWM6CiAgICAgTm9kZUZpbHRlckltcGwoTm9kZUZpbHRl
ckNvbmRpdGlvbiAqKTsKQEAgLTUwLDcgKzQ5LDcgQEAgcHJpdmF0ZToKICAgICBOb2RlRmlsdGVy
Q29uZGl0aW9uICptX2NvbmRpdGlvbjsKIH07CiAKLWNsYXNzIFRyYXZlcnNhbEltcGwgOiBwdWJs
aWMga2h0bWw6OlNoYXJlZDxUcmF2ZXJzYWxJbXBsPiwgcHVibGljIEZhc3RBbGxvY2F0ZWQKK2Ns
YXNzIFRyYXZlcnNhbEltcGwgOiBwdWJsaWMga2h0bWw6OlNoYXJlZDxUcmF2ZXJzYWxJbXBsPgog
ewogcHVibGljOgogICAgIFRyYXZlcnNhbEltcGwoTm9kZUltcGwgKiwgaW50IHdoYXRUb1Nob3cs
IE5vZGVGaWx0ZXJJbXBsICosIGJvb2wgZXhwYW5kRW50aXR5UmVmZXJlbmNlcyk7CkluZGV4OiBX
ZWJDb3JlL2todG1sL3htbC9kb20yX3ZpZXdzaW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTog
L2N2cy9yb290L1dlYkNvcmUva2h0bWwveG1sL2RvbTJfdmlld3NpbXBsLmNwcCx2CnJldHJpZXZp
bmcgcmV2aXNpb24gMS41CmRpZmYgLXUgLXAgLXIxLjUgV2ViQ29yZS9raHRtbC94bWwvZG9tMl92
aWV3c2ltcGwuY3BwCi0tLSBXZWJDb3JlL2todG1sL3htbC9kb20yX3ZpZXdzaW1wbC5jcHAJMTYg
Tm92IDIwMDQgMDA6NDc6NTQgLTAwMDAJMS41CisrKyBXZWJDb3JlL2todG1sL3htbC9kb20yX3Zp
ZXdzaW1wbC5jcHAJMyBPY3QgMjAwNSAwNDoyMzowMyAtMDAwMApAQCAtMjIsNiArMjIsNyBAQAog
ICovCiAKICNpbmNsdWRlICJkb20yX3ZpZXdzaW1wbC5oIgorI2luY2x1ZGUgImNvbmZpZy5oIgog
CiAjaW5jbHVkZSAiY3NzL2Nzc19jb21wdXRlZHN0eWxlLmgiCiAjaW5jbHVkZSAiZG9tX2VsZW1l
bnRpbXBsLmgiCkluZGV4OiBXZWJDb3JlL2todG1sL3htbC9kb20yX3ZpZXdzaW1wbC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2todG1sL3htbC9kb20yX3ZpZXdzaW1w
bC5oLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjcKZGlmZiAtdSAtcCAtcjEuNyBXZWJDb3JlL2to
dG1sL3htbC9kb20yX3ZpZXdzaW1wbC5oCi0tLSBXZWJDb3JlL2todG1sL3htbC9kb20yX3ZpZXdz
aW1wbC5oCTI3IFNlcCAyMDA1IDIyOjM3OjIxIC0wMDAwCTEuNworKysgV2ViQ29yZS9raHRtbC94
bWwvZG9tMl92aWV3c2ltcGwuaAkzIE9jdCAyMDA1IDA0OjIzOjAzIC0wMDAwCkBAIC0yNSw3ICsy
NSw2IEBACiAKICNpbmNsdWRlICJjc3MvY3NzX3ZhbHVlaW1wbC5oIgogI2luY2x1ZGUgIm1pc2Mv
c2hhcmVkLmgiCi0jaW5jbHVkZSA8a3htbGNvcmUvRmFzdE1hbGxvYy5oPgogCiBuYW1lc3BhY2Ug
RE9NIHsKIApAQCAtMzUsNyArMzQsNyBAQCBjbGFzcyBFbGVtZW50SW1wbDsKIGNsYXNzIERPTVN0
cmluZ0ltcGw7CiAKIC8vIEludHJvZHVjZWQgaW4gRE9NIExldmVsIDI6Ci1jbGFzcyBBYnN0cmFj
dFZpZXdJbXBsIDogcHVibGljIGtodG1sOjpTaGFyZWQ8QWJzdHJhY3RWaWV3SW1wbD4sIHB1Ymxp
YyBGYXN0QWxsb2NhdGVkCitjbGFzcyBBYnN0cmFjdFZpZXdJbXBsIDogcHVibGljIGtodG1sOjpT
aGFyZWQ8QWJzdHJhY3RWaWV3SW1wbD4KIHsKIHB1YmxpYzoKICAgICBBYnN0cmFjdFZpZXdJbXBs
KERvY3VtZW50SW1wbCAqX2RvY3VtZW50KTsKSW5kZXg6IFdlYkNvcmUva2h0bWwveG1sL2RvbV9h
dG9taWNzdHJpbmcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2to
dG1sL3htbC9kb21fYXRvbWljc3RyaW5nLmNwcCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4xMwpk
aWZmIC11IC1wIC1yMS4xMyBXZWJDb3JlL2todG1sL3htbC9kb21fYXRvbWljc3RyaW5nLmNwcAot
LS0gV2ViQ29yZS9raHRtbC94bWwvZG9tX2F0b21pY3N0cmluZy5jcHAJMjggU2VwIDIwMDUgMjI6
MDE6MzkgLTAwMDAJMS4xMworKysgV2ViQ29yZS9raHRtbC94bWwvZG9tX2F0b21pY3N0cmluZy5j
cHAJMyBPY3QgMjAwNSAwNDoyMzowMyAtMDAwMApAQCAtMjksNiArMjksNyBAQAogI2RlZmluZSBL
SFRNTF9BVE9NSUNTVFJJTkdfSElERV9HTE9CQUxTIDEKIAogI2luY2x1ZGUgImRvbV9hdG9taWNz
dHJpbmcuaCIKKyNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJ4bWwvZG9tX3N0cmluZ2lt
cGwuaCIKICNpbmNsdWRlIDxreG1sY29yZS9IYXNoU2V0Lmg+CiAKSW5kZXg6IFdlYkNvcmUva2h0
bWwveG1sL2RvbV9kb2NpbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2Vi
Q29yZS9raHRtbC94bWwvZG9tX2RvY2ltcGwuY3BwLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjI1
NwpkaWZmIC11IC1wIC1yMS4yNTcgV2ViQ29yZS9raHRtbC94bWwvZG9tX2RvY2ltcGwuY3BwCi0t
LSBXZWJDb3JlL2todG1sL3htbC9kb21fZG9jaW1wbC5jcHAJMjQgU2VwIDIwMDUgMDE6MTk6MDIg
LTAwMDAJMS4yNTcKKysrIFdlYkNvcmUva2h0bWwveG1sL2RvbV9kb2NpbXBsLmNwcAkzIE9jdCAy
MDA1IDA0OjIzOjA0IC0wMDAwCkBAIC0yMyw2ICsyMyw3IEBACiAgKi8KIAogI2luY2x1ZGUgImRv
bV9kb2NpbXBsLmgiCisjaW5jbHVkZSAiY29uZmlnLmgiCiAKICNpbmNsdWRlICJkb20vZG9tX2V4
Y2VwdGlvbi5oIgogI2luY2x1ZGUgImRvbS9kb20yX2V2ZW50cy5oIgpJbmRleDogV2ViQ29yZS9r
aHRtbC94bWwvZG9tX2RvY2ltcGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2Vi
Q29yZS9raHRtbC94bWwvZG9tX2RvY2ltcGwuaCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4xMjgK
ZGlmZiAtdSAtcCAtcjEuMTI4IFdlYkNvcmUva2h0bWwveG1sL2RvbV9kb2NpbXBsLmgKLS0tIFdl
YkNvcmUva2h0bWwveG1sL2RvbV9kb2NpbXBsLmgJMjcgU2VwIDIwMDUgMjI6Mzc6MjEgLTAwMDAJ
MS4xMjgKKysrIFdlYkNvcmUva2h0bWwveG1sL2RvbV9kb2NpbXBsLmgJMyBPY3QgMjAwNSAwNDoy
MzowNCAtMDAwMApAQCAtMTI1LDcgKzEyNSw3IEBAIG5hbWVzcGFjZSBET00gewogICAgICAgICB9
CiAgICAgfTsKICAgICAKLWNsYXNzIERPTUltcGxlbWVudGF0aW9uSW1wbCA6IHB1YmxpYyBraHRt
bDo6U2hhcmVkPERPTUltcGxlbWVudGF0aW9uSW1wbD4sIHB1YmxpYyBGYXN0QWxsb2NhdGVkCitj
bGFzcyBET01JbXBsZW1lbnRhdGlvbkltcGwgOiBwdWJsaWMga2h0bWw6OlNoYXJlZDxET01JbXBs
ZW1lbnRhdGlvbkltcGw+CiB7CiBwdWJsaWM6CiAgICAgRE9NSW1wbGVtZW50YXRpb25JbXBsKCk7
CkluZGV4OiBXZWJDb3JlL2todG1sL3htbC9kb21fZWxlbWVudGltcGwuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
UkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2todG1sL3htbC9kb21fZWxlbWVudGltcGwuY3Bw
LHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjg0CmRpZmYgLXUgLXAgLXIxLjg0IFdlYkNvcmUva2h0
bWwveG1sL2RvbV9lbGVtZW50aW1wbC5jcHAKLS0tIFdlYkNvcmUva2h0bWwveG1sL2RvbV9lbGVt
ZW50aW1wbC5jcHAJMiBPY3QgMjAwNSAxNzoxNzo0NyAtMDAwMAkxLjg0CisrKyBXZWJDb3JlL2to
dG1sL3htbC9kb21fZWxlbWVudGltcGwuY3BwCTMgT2N0IDIwMDUgMDQ6MjM6MDQgLTAwMDAKQEAg
LTI1LDYgKzI1LDcgQEAKIAogLy8jZGVmaW5lIEVWRU5UX0RFQlVHCiAjaW5jbHVkZSAiZG9tL2Rv
bV9leGNlcHRpb24uaCIKKyNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJkb20vZG9tX25v
ZGUuaCIKICNpbmNsdWRlICJ4bWwvZG9tX3RleHRpbXBsLmgiCiAjaW5jbHVkZSAieG1sL2RvbV9k
b2NpbXBsLmgiCkluZGV4OiBXZWJDb3JlL2todG1sL3htbC9kb21fZWxlbWVudGltcGwuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9raHRtbC94bWwvZG9tX2VsZW1lbnRp
bXBsLmgsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNTQKZGlmZiAtdSAtcCAtcjEuNTQgV2ViQ29y
ZS9raHRtbC94bWwvZG9tX2VsZW1lbnRpbXBsLmgKLS0tIFdlYkNvcmUva2h0bWwveG1sL2RvbV9l
bGVtZW50aW1wbC5oCTIgT2N0IDIwMDUgMTc6MTc6NDcgLTAwMDAJMS41NAorKysgV2ViQ29yZS9r
aHRtbC94bWwvZG9tX2VsZW1lbnRpbXBsLmgJMyBPY3QgMjAwNSAwNDoyMzowNCAtMDAwMApAQCAt
NTgsNyArNTgsNyBAQCBjbGFzcyBBdHRySW1wbDsKIC8vIHRoZSBhY3R1YWwgQXR0ciAoQXR0cklt
cGwpIHdpdGggaXRzIHZhbHVlIGFzIHRleHRjaGlsZAogLy8gaXMgb25seSBhbGxvY2F0ZWQgb24g
ZGVtYW5kIGJ5IHRoZSBET00gYmluZGluZ3MuCiAvLyBBbnkgdXNlIG9mIEF0dHJJbXBsIGluc2lk
ZSBraHRtbCBzaG91bGQgYmUgYXZvaWRlZC4KLSBjbGFzcyBBdHRyaWJ1dGVJbXBsIDogcHVibGlj
IGtodG1sOjpTaGFyZWQ8QXR0cmlidXRlSW1wbD4sIHB1YmxpYyBGYXN0QWxsb2NhdGVkCisgY2xh
c3MgQXR0cmlidXRlSW1wbCA6IHB1YmxpYyBraHRtbDo6U2hhcmVkPEF0dHJpYnV0ZUltcGw+CiB7
CiAgICAgZnJpZW5kIGNsYXNzIE5hbWVkQXR0ck1hcEltcGw7CiAgICAgZnJpZW5kIGNsYXNzIEVs
ZW1lbnRJbXBsOwpJbmRleDogV2ViQ29yZS9raHRtbC94bWwvZG9tX25vZGVpbXBsLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9raHRtbC94bWwvZG9tX25vZGVpbXBs
LmNwcCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4xOTQKZGlmZiAtdSAtcCAtcjEuMTk0IFdlYkNv
cmUva2h0bWwveG1sL2RvbV9ub2RlaW1wbC5jcHAKLS0tIFdlYkNvcmUva2h0bWwveG1sL2RvbV9u
b2RlaW1wbC5jcHAJMjcgU2VwIDIwMDUgMjI6Mzc6MjIgLTAwMDAJMS4xOTQKKysrIFdlYkNvcmUv
a2h0bWwveG1sL2RvbV9ub2RlaW1wbC5jcHAJMyBPY3QgMjAwNSAwNDoyMzowNCAtMDAwMApAQCAt
MjMsNiArMjMsNyBAQAogICovCiAKICNpbmNsdWRlICJ4bWwvZG9tX25vZGVpbXBsLmgiCisjaW5j
bHVkZSAiY29uZmlnLmgiCiAKICNpbmNsdWRlICJkb20vZG9tX2V4Y2VwdGlvbi5oIgogI2luY2x1
ZGUgImRvbS9kb20yX2V2ZW50cy5oIgpJbmRleDogV2ViQ29yZS9raHRtbC94bWwvZG9tX25vZGVp
bXBsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva2h0bWwveG1sL2Rv
bV9ub2RlaW1wbC5oLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjEwMwpkaWZmIC11IC1wIC1yMS4x
MDMgV2ViQ29yZS9raHRtbC94bWwvZG9tX25vZGVpbXBsLmgKLS0tIFdlYkNvcmUva2h0bWwveG1s
L2RvbV9ub2RlaW1wbC5oCTI3IFNlcCAyMDA1IDIyOjM3OjIyIC0wMDAwCTEuMTAzCisrKyBXZWJD
b3JlL2todG1sL3htbC9kb21fbm9kZWltcGwuaAkzIE9jdCAyMDA1IDA0OjIzOjA1IC0wMDAwCkBA
IC0yNyw3ICsyNyw2IEBACiAKICNpbmNsdWRlICJkb20vZG9tX3N0cmluZy5oIgogI2luY2x1ZGUg
ImRvbS9kb21fbm9kZS5oIgotI2luY2x1ZGUgPGt4bWxjb3JlL0Zhc3RNYWxsb2MuaD4KICNpbmNs
dWRlICJtaXNjL2hlbHBlci5oIgogI2luY2x1ZGUgIm1pc2Mvc2hhcmVkLmgiCiAjaW5jbHVkZSAi
ZG9tX2F0b21pY3N0cmluZy5oIgpAQCAtNzYsNyArNzUsNyBAQCBwcml2YXRlOgogfTsKIAogLy8g
dGhpcyBjbGFzcyBpbXBsZW1lbnRzIG5vZGVzLCB3aGljaCBjYW4gaGF2ZSBhIHBhcmVudCBidXQg
bm8gY2hpbGRyZW46Ci1jbGFzcyBOb2RlSW1wbCA6IHB1YmxpYyBraHRtbDo6VHJlZVNoYXJlZDxO
b2RlSW1wbD4sIHB1YmxpYyBGYXN0QWxsb2NhdGVkCitjbGFzcyBOb2RlSW1wbCA6IHB1YmxpYyBr
aHRtbDo6VHJlZVNoYXJlZDxOb2RlSW1wbD4KIHsKICAgICBmcmllbmQgY2xhc3MgRG9jdW1lbnRJ
bXBsOwogcHVibGljOgpAQCAtNTY1LDcgKzU2NCw3IEBAIHB1YmxpYzoKIGNsYXNzIE5vZGU7CiBj
bGFzcyBOb2RlSW1wbDsKIAotY2xhc3MgTm9kZUxpc3RJbXBsIDogcHVibGljIGtodG1sOjpTaGFy
ZWQ8Tm9kZUxpc3RJbXBsPiwgcHVibGljIEZhc3RBbGxvY2F0ZWQKK2NsYXNzIE5vZGVMaXN0SW1w
bCA6IHB1YmxpYyBraHRtbDo6U2hhcmVkPE5vZGVMaXN0SW1wbD4KIHsKIHB1YmxpYzoKICAgICBO
b2RlTGlzdEltcGwoIE5vZGVJbXBsICpfcm9vdE5vZGUgKTsKQEAgLTYzNiw3ICs2MzUsNyBAQCBw
cm90ZWN0ZWQ6CiAvLyBHZW5lcmljIE5hbWVkTm9kZU1hcCBpbnRlcmZhY2UKIC8vIE90aGVyIGNs
YXNzZXMgaW1wbGVtZW50IHRoaXMgZm9yIG1vcmUgc3BlY2lmaWMgc2l0dWF0aW9ucyBlLmcuIGF0
dHJpYnV0ZXMKIC8vIG9mIGFuIGVsZW1lbnQKLWNsYXNzIE5hbWVkTm9kZU1hcEltcGwgOiBwdWJs
aWMga2h0bWw6OlNoYXJlZDxOYW1lZE5vZGVNYXBJbXBsPiwgcHVibGljIEZhc3RBbGxvY2F0ZWQK
K2NsYXNzIE5hbWVkTm9kZU1hcEltcGwgOiBwdWJsaWMga2h0bWw6OlNoYXJlZDxOYW1lZE5vZGVN
YXBJbXBsPgogewogcHVibGljOgogICAgIE5hbWVkTm9kZU1hcEltcGwoKSB7fQpJbmRleDogV2Vi
Q29yZS9raHRtbC94bWwvZG9tX3Bvc2l0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3Zz
L3Jvb3QvV2ViQ29yZS9raHRtbC94bWwvZG9tX3Bvc2l0aW9uLmNwcCx2CnJldHJpZXZpbmcgcmV2
aXNpb24gMS43OQpkaWZmIC11IC1wIC1yMS43OSBXZWJDb3JlL2todG1sL3htbC9kb21fcG9zaXRp
b24uY3BwCi0tLSBXZWJDb3JlL2todG1sL3htbC9kb21fcG9zaXRpb24uY3BwCTI3IFNlcCAyMDA1
IDIyOjM3OjIyIC0wMDAwCTEuNzkKKysrIFdlYkNvcmUva2h0bWwveG1sL2RvbV9wb3NpdGlvbi5j
cHAJMyBPY3QgMjAwNSAwNDoyMzowNSAtMDAwMApAQCAtMjQsNiArMjQsNyBAQAogICovCiAKICNp
bmNsdWRlICJkb21fcG9zaXRpb24uaCIKKyNpbmNsdWRlICJjb25maWcuaCIKIAogI2luY2x1ZGUg
PHFzdHJpbmcuaD4KIApJbmRleDogV2ViQ29yZS9raHRtbC94bWwvZG9tX3FuYW1lLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9raHRtbC94bWwvZG9tX3FuYW1lLmNw
cCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS42CmRpZmYgLXUgLXAgLXIxLjYgV2ViQ29yZS9raHRt
bC94bWwvZG9tX3FuYW1lLmNwcAotLS0gV2ViQ29yZS9raHRtbC94bWwvZG9tX3FuYW1lLmNwcAky
OCBTZXAgMjAwNSAyMjowMTo0MCAtMDAwMAkxLjYKKysrIFdlYkNvcmUva2h0bWwveG1sL2RvbV9x
bmFtZS5jcHAJMyBPY3QgMjAwNSAwNDoyMzowNSAtMDAwMApAQCAtMjIsNiArMjIsNyBAQAogI2Rl
ZmluZSBLSFRNTF9RTkFNRV9ISURFX0dMT0JBTFMgMQogCiAjaW5jbHVkZSAiZG9tX3FuYW1lLmgi
CisjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSA8a3htbGNvcmUvSGFzaFNldC5oPgogCiBu
YW1lc3BhY2UgRE9NIHsKSW5kZXg6IFdlYkNvcmUva2h0bWwveG1sL2RvbV9zdHJpbmdpbXBsLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9raHRtbC94bWwvZG9tX3N0
cmluZ2ltcGwuY3BwLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjMxCmRpZmYgLXUgLXAgLXIxLjMx
IFdlYkNvcmUva2h0bWwveG1sL2RvbV9zdHJpbmdpbXBsLmNwcAotLS0gV2ViQ29yZS9raHRtbC94
bWwvZG9tX3N0cmluZ2ltcGwuY3BwCTEyIFNlcCAyMDA1IDAzOjQwOjM3IC0wMDAwCTEuMzEKKysr
IFdlYkNvcmUva2h0bWwveG1sL2RvbV9zdHJpbmdpbXBsLmNwcAkzIE9jdCAyMDA1IDA0OjIzOjA1
IC0wMDAwCkBAIC0yNCw2ICsyNCw3IEBACiAgKi8KIAogI2luY2x1ZGUgImRvbV9zdHJpbmdpbXBs
LmgiCisjaW5jbHVkZSAiY29uZmlnLmgiCiAKICNpbmNsdWRlIDxrZGVidWcuaD4KIApJbmRleDog
V2ViQ29yZS9raHRtbC94bWwvZG9tX3N0cmluZ2ltcGwuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAv
Y3ZzL3Jvb3QvV2ViQ29yZS9raHRtbC94bWwvZG9tX3N0cmluZ2ltcGwuaCx2CnJldHJpZXZpbmcg
cmV2aXNpb24gMS4xNgpkaWZmIC11IC1wIC1yMS4xNiBXZWJDb3JlL2todG1sL3htbC9kb21fc3Ry
aW5naW1wbC5oCi0tLSBXZWJDb3JlL2todG1sL3htbC9kb21fc3RyaW5naW1wbC5oCTI4IFNlcCAy
MDA1IDIyOjAxOjQwIC0wMDAwCTEuMTYKKysrIFdlYkNvcmUva2h0bWwveG1sL2RvbV9zdHJpbmdp
bXBsLmgJMyBPY3QgMjAwNSAwNDoyMzowNSAtMDAwMApAQCAtMjYsMTQgKzI2LDEzIEBACiAKICNp
bmNsdWRlICJtaXNjL2todG1sbGF5b3V0LmgiCiAjaW5jbHVkZSAibWlzYy9zaGFyZWQuaCIKLSNp
bmNsdWRlIDxreG1sY29yZS9GYXN0TWFsbG9jLmg+CiAKICNkZWZpbmUgUVRfQUxMT0NfUUNIQVJf
VkVDKE4pIHN0YXRpY19jYXN0PFFDaGFyKj4oZmFzdE1hbGxvYyhzaXplb2YoUUNoYXIpKihOKSkp
CiAjZGVmaW5lIFFUX0RFTEVURV9RQ0hBUl9WRUMoUCkgZmFzdEZyZWUoUCkKIAogbmFtZXNwYWNl
IERPTSB7CiAKLWNsYXNzIERPTVN0cmluZ0ltcGwgOiBwdWJsaWMga2h0bWw6OlNoYXJlZDxET01T
dHJpbmdJbXBsPiwgcHVibGljIEZhc3RBbGxvY2F0ZWQKK2NsYXNzIERPTVN0cmluZ0ltcGwgOiBw
dWJsaWMga2h0bWw6OlNoYXJlZDxET01TdHJpbmdJbXBsPgogewogcHJpdmF0ZToKICAgICBzdHJ1
Y3QgV2l0aE9uZVJlZiB7IH07CkluZGV4OiBXZWJDb3JlL2todG1sL3htbC9kb21fdGV4dGltcGwu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2todG1sL3htbC9kb21f
dGV4dGltcGwuY3BwLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjMzCmRpZmYgLXUgLXAgLXIxLjMz
IFdlYkNvcmUva2h0bWwveG1sL2RvbV90ZXh0aW1wbC5jcHAKLS0tIFdlYkNvcmUva2h0bWwveG1s
L2RvbV90ZXh0aW1wbC5jcHAJMTYgU2VwIDIwMDUgMjI6NDI6MjAgLTAwMDAJMS4zMworKysgV2Vi
Q29yZS9raHRtbC94bWwvZG9tX3RleHRpbXBsLmNwcAkzIE9jdCAyMDA1IDA0OjIzOjA1IC0wMDAw
CkBAIC0yMiw2ICsyMiw3IEBACiAgKi8KIAogI2luY2x1ZGUgImRvbS9kb21fZXhjZXB0aW9uLmgi
CisjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiY3NzL2Nzc3N0eWxlc2VsZWN0b3IuaCIK
ICNpbmNsdWRlICJ4bWwvZG9tMl9ldmVudHNpbXBsLmgiCiAjaW5jbHVkZSAieG1sL2RvbV90ZXh0
aW1wbC5oIgpJbmRleDogV2ViQ29yZS9raHRtbC94bWwvZG9tX3htbGltcGwuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2todG1sL3htbC9kb21feG1saW1wbC5jcHAs
dgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMTUKZGlmZiAtdSAtcCAtcjEuMTUgV2ViQ29yZS9raHRt
bC94bWwvZG9tX3htbGltcGwuY3BwCi0tLSBXZWJDb3JlL2todG1sL3htbC9kb21feG1saW1wbC5j
cHAJMjkgQXVnIDIwMDUgMjE6Mjk6MjQgLTAwMDAJMS4xNQorKysgV2ViQ29yZS9raHRtbC94bWwv
ZG9tX3htbGltcGwuY3BwCTMgT2N0IDIwMDUgMDQ6MjM6MDUgLTAwMDAKQEAgLTIwLDYgKzIwLDcg
QEAKICAqLwogCiAjaW5jbHVkZSAiZG9tL2RvbV9leGNlcHRpb24uaCIKKyNpbmNsdWRlICJjb25m
aWcuaCIKIAogI2luY2x1ZGUgInhtbC9kb21feG1saW1wbC5oIgogI2luY2x1ZGUgInhtbC9kb21f
ZG9jaW1wbC5oIgpJbmRleDogV2ViQ29yZS9raHRtbC94bWwveG1sX3Rva2VuaXplci5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva2h0bWwveG1sL3htbF90b2tlbml6
ZXIuY3BwLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjQzCmRpZmYgLXUgLXAgLXIxLjQzIFdlYkNv
cmUva2h0bWwveG1sL3htbF90b2tlbml6ZXIuY3BwCi0tLSBXZWJDb3JlL2todG1sL3htbC94bWxf
dG9rZW5pemVyLmNwcAkyOCBTZXAgMjAwNSAyMjowMTo0MCAtMDAwMAkxLjQzCisrKyBXZWJDb3Jl
L2todG1sL3htbC94bWxfdG9rZW5pemVyLmNwcAkzIE9jdCAyMDA1IDA0OjIzOjA1IC0wMDAwCkBA
IC0yMSw2ICsyMSw3IEBACiAgKi8KIAogI2luY2x1ZGUgInhtbF90b2tlbml6ZXIuaCIKKyNpbmNs
dWRlICJjb25maWcuaCIKICNpbmNsdWRlICJ4bWwvZG9tX2RvY2ltcGwuaCIKICNpbmNsdWRlICJ4
bWwvZG9tX2VsZW1lbnRpbXBsLmgiCiAjaW5jbHVkZSAieG1sL2RvbV90ZXh0aW1wbC5oIgpJbmRl
eDogV2ViQ29yZS9raHRtbC94c2wveHNsX3N0eWxlc2hlZXRpbXBsLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJD
UyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9raHRtbC94c2wveHNsX3N0eWxlc2hlZXRpbXBsLmNw
cCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4zCmRpZmYgLXUgLXAgLXIxLjMgV2ViQ29yZS9raHRt
bC94c2wveHNsX3N0eWxlc2hlZXRpbXBsLmNwcAotLS0gV2ViQ29yZS9raHRtbC94c2wveHNsX3N0
eWxlc2hlZXRpbXBsLmNwcAkyNSBBdWcgMjAwNSAxNzo0NzoyNCAtMDAwMAkxLjMKKysrIFdlYkNv
cmUva2h0bWwveHNsL3hzbF9zdHlsZXNoZWV0aW1wbC5jcHAJMyBPY3QgMjAwNSAwNDoyMzowNSAt
MDAwMApAQCAtMjIsNiArMjIsNyBAQAogI2lmZGVmIEtIVE1MX1hTTFQKIAogI2luY2x1ZGUgImRv
bS9kb21fc3RyaW5nLmgiCisjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiZG9tL2RvbV9l
eGNlcHRpb24uaCIKIAogI2luY2x1ZGUgInhtbC9kb21fbm9kZWltcGwuaCIKSW5kZXg6IFdlYkNv
cmUva2h0bWwveHNsL3hzbHRfcHJvY2Vzc29yaW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTog
L2N2cy9yb290L1dlYkNvcmUva2h0bWwveHNsL3hzbHRfcHJvY2Vzc29yaW1wbC5jcHAsdgpyZXRy
aWV2aW5nIHJldmlzaW9uIDEuMTAKZGlmZiAtdSAtcCAtcjEuMTAgV2ViQ29yZS9raHRtbC94c2wv
eHNsdF9wcm9jZXNzb3JpbXBsLmNwcAotLS0gV2ViQ29yZS9raHRtbC94c2wveHNsdF9wcm9jZXNz
b3JpbXBsLmNwcAkyNCBTZXAgMjAwNSAxMDowNzowOCAtMDAwMAkxLjEwCisrKyBXZWJDb3JlL2to
dG1sL3hzbC94c2x0X3Byb2Nlc3NvcmltcGwuY3BwCTMgT2N0IDIwMDUgMDQ6MjM6MDUgLTAwMDAK
QEAgLTIyLDYgKzIyLDcgQEAKICNpZmRlZiBLSFRNTF9YU0xUCiAKICNpbmNsdWRlICJ4c2x0X3By
b2Nlc3NvcmltcGwuaCIKKyNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJ4c2xfc3R5bGVz
aGVldGltcGwuaCIKICNpbmNsdWRlICJodG1sX2RvY3VtZW50aW1wbC5oIgogI2luY2x1ZGUgImxv
YWRlci5oIgpJbmRleDogV2ViQ29yZS9rd3EvRE9NLUNTUy5tbQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxl
OiAvY3ZzL3Jvb3QvV2ViQ29yZS9rd3EvRE9NLUNTUy5tbSx2CnJldHJpZXZpbmcgcmV2aXNpb24g
MS4yOApkaWZmIC11IC1wIC1yMS4yOCBXZWJDb3JlL2t3cS9ET00tQ1NTLm1tCi0tLSBXZWJDb3Jl
L2t3cS9ET00tQ1NTLm1tCTI3IFNlcCAyMDA1IDIyOjM3OjI1IC0wMDAwCTEuMjgKKysrIFdlYkNv
cmUva3dxL0RPTS1DU1MubW0JMyBPY3QgMjAwNSAwNDoyMzowNSAtMDAwMApAQCAtMjQsNiArMjQs
NyBAQAogICovCiAKICNpbXBvcnQgIkRPTUNTUy5oIgorI2luY2x1ZGUgImNvbmZpZy5oIgogCiAj
aW5jbHVkZSA8b2JqYy9vYmpjLWNsYXNzLmg+CiAKSW5kZXg6IFdlYkNvcmUva3dxL0RPTS5tbQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9rd3EvRE9NLm1tLHYKcmV0cmll
dmluZyByZXZpc2lvbiAxLjQ5CmRpZmYgLXUgLXAgLXIxLjQ5IFdlYkNvcmUva3dxL0RPTS5tbQot
LS0gV2ViQ29yZS9rd3EvRE9NLm1tCTI4IFNlcCAyMDA1IDIyOjAxOjQxIC0wMDAwCTEuNDkKKysr
IFdlYkNvcmUva3dxL0RPTS5tbQkzIE9jdCAyMDA1IDA0OjIzOjA1IC0wMDAwCkBAIC0yNCw2ICsy
NCw3IEBACiAgKi8KIAogI2ltcG9ydCAiRE9NLmgiCisjaW5jbHVkZSAiY29uZmlnLmgiCiAKICNp
bmNsdWRlIDxvYmpjL29iamMtY2xhc3MuaD4KIApJbmRleDogV2ViQ29yZS9rd3EvRE9NRXZlbnRz
Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2t3cS9ET01FdmVudHMu
bW0sdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNwpkaWZmIC11IC1wIC1yMS43IFdlYkNvcmUva3dx
L0RPTUV2ZW50cy5tbQotLS0gV2ViQ29yZS9rd3EvRE9NRXZlbnRzLm1tCTI3IFNlcCAyMDA1IDIy
OjM3OjI2IC0wMDAwCTEuNworKysgV2ViQ29yZS9rd3EvRE9NRXZlbnRzLm1tCTMgT2N0IDIwMDUg
MDQ6MjM6MDUgLTAwMDAKQEAgLTI0LDYgKzI0LDcgQEAKICAqLwogCiAjaW1wb3J0ICJET01FdmVu
dHMuaCIKKyNpbmNsdWRlICJjb25maWcuaCIKIAogI2ltcG9ydCAiRE9NRXZlbnRzSW50ZXJuYWwu
aCIKICNpbXBvcnQgIkRPTVZpZXdzSW50ZXJuYWwuaCIKSW5kZXg6IFdlYkNvcmUva3dxL0RPTUhU
TUwubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva3dxL0RPTUhUTUwu
bW0sdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMzAKZGlmZiAtdSAtcCAtcjEuMzAgV2ViQ29yZS9r
d3EvRE9NSFRNTC5tbQotLS0gV2ViQ29yZS9rd3EvRE9NSFRNTC5tbQkyNyBTZXAgMjAwNSAyMjoz
NzoyNiAtMDAwMAkxLjMwCisrKyBXZWJDb3JlL2t3cS9ET01IVE1MLm1tCTMgT2N0IDIwMDUgMDQ6
MjM6MDUgLTAwMDAKQEAgLTI0LDYgKzI0LDcgQEAKICAqLwogCiAjaW1wb3J0ICJET01IVE1MLmgi
CisjaW5jbHVkZSAiY29uZmlnLmgiCiAKICNpbXBvcnQgImRvbV9zdHJpbmcuaCIKICNpbXBvcnQg
Imh0bWxfYmFzZWltcGwuaCIKSW5kZXg6IFdlYkNvcmUva3dxL0RPTUludGVybmFsLm1tCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2t3cS9ET01JbnRlcm5hbC5tbSx2CnJl
dHJpZXZpbmcgcmV2aXNpb24gMS45CmRpZmYgLXUgLXAgLXIxLjkgV2ViQ29yZS9rd3EvRE9NSW50
ZXJuYWwubW0KLS0tIFdlYkNvcmUva3dxL0RPTUludGVybmFsLm1tCTI3IFNlcCAyMDA1IDIyOjM3
OjI2IC0wMDAwCTEuOQorKysgV2ViQ29yZS9rd3EvRE9NSW50ZXJuYWwubW0JMyBPY3QgMjAwNSAw
NDoyMzowNiAtMDAwMApAQCAtMjQsNiArMjQsNyBAQAogICovCiAKICNpbXBvcnQgIkRPTUludGVy
bmFsLmgiCisjaW5jbHVkZSAiY29uZmlnLmgiCiAKICNpbXBvcnQgImNzc19zdHlsZXNoZWV0Lmgi
CiAjaW1wb3J0ICJkb20yX3JhbmdlLmgiCkBAIC0xMzQsMTQgKzEzNSwxNCBAQCBET01TdHJpbmc6
OkRPTVN0cmluZyhOU1N0cmluZyAqc3RyKQogICAgICAgICBVbmlDaGFyIGZpeGVkU2l6ZUJ1ZmZl
clsxMDI0XTsKICAgICAgICAgVW5pQ2hhciAqYnVmZmVyOwogICAgICAgICBpZiAoc2l6ZSA+IHN0
YXRpY19jYXN0PENGSW5kZXg+KHNpemVvZihmaXhlZFNpemVCdWZmZXIpIC8gc2l6ZW9mKFVuaUNo
YXIpKSkgewotICAgICAgICAgICAgYnVmZmVyID0gc3RhdGljX2Nhc3Q8VW5pQ2hhciAqPihtYWxs
b2Moc2l6ZSAqIHNpemVvZihVbmlDaGFyKSkpOworICAgICAgICAgICAgYnVmZmVyID0gc3RhdGlj
X2Nhc3Q8VW5pQ2hhciAqPihmYXN0TWFsbG9jKHNpemUgKiBzaXplb2YoVW5pQ2hhcikpKTsKICAg
ICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIGJ1ZmZlciA9IGZpeGVkU2l6ZUJ1ZmZlcjsKICAg
ICAgICAgfQogICAgICAgICBDRlN0cmluZ0dldENoYXJhY3RlcnMocmVpbnRlcnByZXRfY2FzdDxD
RlN0cmluZ1JlZj4oc3RyKSwgQ0ZSYW5nZU1ha2UoMCwgc2l6ZSksIGJ1ZmZlcik7CiAgICAgICAg
IG1faW1wbCA9IG5ldyBET01TdHJpbmdJbXBsKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgUUNoYXIg
Kj4oYnVmZmVyKSwgKHVpbnQpc2l6ZSk7CiAgICAgICAgIGlmIChidWZmZXIgIT0gZml4ZWRTaXpl
QnVmZmVyKSB7Ci0gICAgICAgICAgICBmcmVlKGJ1ZmZlcik7CisgICAgICAgICAgICBmYXN0RnJl
ZShidWZmZXIpOwogICAgICAgICB9CiAgICAgfQogICAgIG1faW1wbC0+cmVmKCk7CkluZGV4OiBX
ZWJDb3JlL2t3cS9ET01VdGlsaXR5Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9X
ZWJDb3JlL2t3cS9ET01VdGlsaXR5Lm1tLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjUKZGlmZiAt
dSAtcCAtcjEuNSBXZWJDb3JlL2t3cS9ET01VdGlsaXR5Lm1tCi0tLSBXZWJDb3JlL2t3cS9ET01V
dGlsaXR5Lm1tCTggQXVnIDIwMDUgMDQ6MDc6NDYgLTAwMDAJMS41CisrKyBXZWJDb3JlL2t3cS9E
T01VdGlsaXR5Lm1tCTMgT2N0IDIwMDUgMDQ6MjM6MDYgLTAwMDAKQEAgLTI0LDYgKzI0LDcgQEAK
ICAqLwogCiAjaW1wb3J0ICJranNfZG9tLmgiCisjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW1wb3J0
ICJkb21fbm9kZWltcGwuaCIKIAogI2ltcG9ydCAiRE9NLmgiCkluZGV4OiBXZWJDb3JlL2t3cS9E
T01WaWV3cy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9rd3EvRE9N
Vmlld3MubW0sdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMgpkaWZmIC11IC1wIC1yMS4yIFdlYkNv
cmUva3dxL0RPTVZpZXdzLm1tCi0tLSBXZWJDb3JlL2t3cS9ET01WaWV3cy5tbQkyNyBTZXAgMjAw
NSAyMjozNzoyNiAtMDAwMAkxLjIKKysrIFdlYkNvcmUva3dxL0RPTVZpZXdzLm1tCTMgT2N0IDIw
MDUgMDQ6MjM6MDYgLTAwMDAKQEAgLTI0LDYgKzI0LDcgQEAKICAqLwogCiAjaW1wb3J0ICJET01W
aWV3cy5oIgorI2luY2x1ZGUgImNvbmZpZy5oIgogCiAjaW1wb3J0ICJET01JbnRlcm5hbC5oIgog
I2ltcG9ydCAiRE9NVmlld3NJbnRlcm5hbC5oIgpJbmRleDogV2ViQ29yZS9rd3EvS1dRQWNjT2Jq
ZWN0Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2t3cS9LV1FBY2NP
YmplY3QubW0sdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuODMKZGlmZiAtdSAtcCAtcjEuODMgV2Vi
Q29yZS9rd3EvS1dRQWNjT2JqZWN0Lm1tCi0tLSBXZWJDb3JlL2t3cS9LV1FBY2NPYmplY3QubW0J
MjcgU2VwIDIwMDUgMjI6Mzc6MjYgLTAwMDAJMS44MworKysgV2ViQ29yZS9rd3EvS1dRQWNjT2Jq
ZWN0Lm1tCTMgT2N0IDIwMDUgMDQ6MjM6MDYgLTAwMDAKQEAgLTI0LDYgKzI0LDcgQEAKICAqLwog
CiAjaW1wb3J0ICJLV1FBY2NPYmplY3QuaCIKKyNpbmNsdWRlICJjb25maWcuaCIKIAogLy8gbmVl
ZCB0aGlzIHVudGlsIGFjY2Vzc3Rvb2wgc3VwcG9ydHMgYXJyYXlzIG9mIG1hcmtlcnMKICNkZWZp
bmUgTUFSS0VSQVJSQVlfU0VMRl9URVNUIDAKSW5kZXg6IFdlYkNvcmUva3dxL0tXUUFjY09iamVj
dENhY2hlLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2t3cS9LV1FB
Y2NPYmplY3RDYWNoZS5tbSx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4xMApkaWZmIC11IC1wIC1y
MS4xMCBXZWJDb3JlL2t3cS9LV1FBY2NPYmplY3RDYWNoZS5tbQotLS0gV2ViQ29yZS9rd3EvS1dR
QWNjT2JqZWN0Q2FjaGUubW0JMjcgU2VwIDIwMDUgMjI6Mzc6MjcgLTAwMDAJMS4xMAorKysgV2Vi
Q29yZS9rd3EvS1dRQWNjT2JqZWN0Q2FjaGUubW0JMyBPY3QgMjAwNSAwNDoyMzowNiAtMDAwMApA
QCAtMjQsNiArMjQsNyBAQAogICovCiAKICNpbXBvcnQgIktXUUFjY09iamVjdENhY2hlLmgiCisj
aW5jbHVkZSAiY29uZmlnLmgiCiAKICNpbXBvcnQgIktXUUFjY09iamVjdC5oIgogI2ltcG9ydCA8
a3htbGNvcmUvQXNzZXJ0aW9ucy5oPgpJbmRleDogV2ViQ29yZS9rd3EvS1dRQXBwbGljYXRpb24u
bW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva3dxL0tXUUFwcGxpY2F0
aW9uLm1tLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjQ0CmRpZmYgLXUgLXAgLXIxLjQ0IFdlYkNv
cmUva3dxL0tXUUFwcGxpY2F0aW9uLm1tCi0tLSBXZWJDb3JlL2t3cS9LV1FBcHBsaWNhdGlvbi5t
bQkzMCBBdWcgMjAwNSAwOTozMDoyMyAtMDAwMAkxLjQ0CisrKyBXZWJDb3JlL2t3cS9LV1FBcHBs
aWNhdGlvbi5tbQkzIE9jdCAyMDA1IDA0OjIzOjA2IC0wMDAwCkBAIC0yNCw2ICsyNCw3IEBACiAg
Ki8KIAogI2ltcG9ydCAiS1dRQXBwbGljYXRpb24uaCIKKyNpbmNsdWRlICJjb25maWcuaCIKICNp
bXBvcnQgIktXUVN0eWxlLmgiCiAKIC8vIFRoZSBOU1NjcmVlbiBDb2NvYSBjYWxscyBpbiB0aGlz
IGZpbGUgc2hvdWxkIG5ldmVyIHRocm93LCBzbwpJbmRleDogV2ViQ29yZS9rd3EvS1dRQXJyYXlJ
bXBsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva3dxL0tXUUFycmF5
SW1wbC5oLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjkKZGlmZiAtdSAtcCAtcjEuOSBXZWJDb3Jl
L2t3cS9LV1FBcnJheUltcGwuaAotLS0gV2ViQ29yZS9rd3EvS1dRQXJyYXlJbXBsLmgJMjcgU2Vw
IDIwMDUgMjI6Mzc6MjcgLTAwMDAJMS45CisrKyBXZWJDb3JlL2t3cS9LV1FBcnJheUltcGwuaAkz
IE9jdCAyMDA1IDA0OjIzOjA2IC0wMDAwCkBAIC01Miw3ICs1Miw3IEBAIGNsYXNzIEtXUUFycmF5
SW1wbAogICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBLV1FBcnJheUltcGwgJikgY29uc3Q7CiAK
ICBwcml2YXRlOgotICAgIGNsYXNzIEtXUUFycmF5UHJpdmF0ZSA6IHB1YmxpYyBGYXN0QWxsb2Nh
dGVkCisgICAgY2xhc3MgS1dRQXJyYXlQcml2YXRlCiAgICAgewogICAgIHB1YmxpYzoJCiAJS1dR
QXJyYXlQcml2YXRlKHNpemVfdCBwTnVtSXRlbXMsIHNpemVfdCBwSXRlbVNpemUpOwpJbmRleDog
V2ViQ29yZS9rd3EvS1dRQXJyYXlJbXBsLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9v
dC9XZWJDb3JlL2t3cS9LV1FBcnJheUltcGwubW0sdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMTMK
ZGlmZiAtdSAtcCAtcjEuMTMgV2ViQ29yZS9rd3EvS1dRQXJyYXlJbXBsLm1tCi0tLSBXZWJDb3Jl
L2t3cS9LV1FBcnJheUltcGwubW0JMjcgU2VwIDIwMDUgMjI6Mzc6MjcgLTAwMDAJMS4xMworKysg
V2ViQ29yZS9rd3EvS1dRQXJyYXlJbXBsLm1tCTMgT2N0IDIwMDUgMDQ6MjM6MDYgLTAwMDAKQEAg
LTI0LDYgKzI0LDcgQEAKICAqLwogCiAjaW1wb3J0ICJLV1FBcnJheUltcGwuaCIKKyNpbmNsdWRl
ICJjb25maWcuaCIKIAogI2ltcG9ydCA8bmV3PgogI2ltcG9ydCA8c3RyaW5nLmg+CkluZGV4OiBX
ZWJDb3JlL2t3cS9LV1FCdWZmZXIubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dl
YkNvcmUva3dxL0tXUUJ1ZmZlci5tbSx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS42CmRpZmYgLXUg
LXAgLXIxLjYgV2ViQ29yZS9rd3EvS1dRQnVmZmVyLm1tCi0tLSBXZWJDb3JlL2t3cS9LV1FCdWZm
ZXIubW0JMjQgSnVuIDIwMDUgMjE6MDU6MTEgLTAwMDAJMS42CisrKyBXZWJDb3JlL2t3cS9LV1FC
dWZmZXIubW0JMyBPY3QgMjAwNSAwNDoyMzowNiAtMDAwMApAQCAtMjQsNiArMjQsNyBAQAogICov
CiAKICNpbXBvcnQgIktXUUJ1ZmZlci5oIgorI2luY2x1ZGUgImNvbmZpZy5oIgogCiB2b2lkIFFC
dWZmZXI6Om9wZW4oaW50KQogewpJbmRleDogV2ViQ29yZS9rd3EvS1dRQnV0dG9uLm1tCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2t3cS9LV1FCdXR0b24ubW0sdgpyZXRy
aWV2aW5nIHJldmlzaW9uIDEuNDUKZGlmZiAtdSAtcCAtcjEuNDUgV2ViQ29yZS9rd3EvS1dRQnV0
dG9uLm1tCi0tLSBXZWJDb3JlL2t3cS9LV1FCdXR0b24ubW0JMjcgU2VwIDIwMDUgMjI6Mzc6Mjcg
LTAwMDAJMS40NQorKysgV2ViQ29yZS9rd3EvS1dRQnV0dG9uLm1tCTMgT2N0IDIwMDUgMDQ6MjM6
MDYgLTAwMDAKQEAgLTI0LDYgKzI0LDcgQEAKICAqLwogCiAjaW1wb3J0ICJLV1FCdXR0b24uaCIK
KyNpbmNsdWRlICJjb25maWcuaCIKIAogI2ltcG9ydCA8a3htbGNvcmUvQXNzZXJ0aW9ucy5oPgog
I2ltcG9ydCAiS1dRRXhjZXB0aW9ucy5oIgpJbmRleDogV2ViQ29yZS9rd3EvS1dRQ1N0cmluZy5t
bQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9rd3EvS1dRQ1N0cmluZy5t
bSx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4xOApkaWZmIC11IC1wIC1yMS4xOCBXZWJDb3JlL2t3
cS9LV1FDU3RyaW5nLm1tCi0tLSBXZWJDb3JlL2t3cS9LV1FDU3RyaW5nLm1tCTI3IFNlcCAyMDA1
IDIyOjM3OjI3IC0wMDAwCTEuMTgKKysrIFdlYkNvcmUva3dxL0tXUUNTdHJpbmcubW0JMyBPY3Qg
MjAwNSAwNDoyMzowNiAtMDAwMApAQCAtMjQsNiArMjQsNyBAQAogICovCiAKICNpbXBvcnQgIktX
UUNTdHJpbmcuaCIKKyNpbmNsdWRlICJjb25maWcuaCIKIAogI2ltcG9ydCA8a3htbGNvcmUvQXNz
ZXJ0aW9ucy5oPgogI2ltcG9ydCA8Y3R5cGUuaD4KSW5kZXg6IFdlYkNvcmUva3dxL0tXUUNoYXJz
ZXRzLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2t3cS9LV1FDaGFy
c2V0cy5tbSx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4yMgpkaWZmIC11IC1wIC1yMS4yMiBXZWJD
b3JlL2t3cS9LV1FDaGFyc2V0cy5tbQotLS0gV2ViQ29yZS9rd3EvS1dRQ2hhcnNldHMubW0JMjgg
SnVuIDIwMDUgMDE6NTQ6MzUgLTAwMDAJMS4yMgorKysgV2ViQ29yZS9rd3EvS1dRQ2hhcnNldHMu
bW0JMyBPY3QgMjAwNSAwNDoyMzowNiAtMDAwMApAQCAtMjQsNiArMjQsNyBAQAogICovCiAKICNp
bXBvcnQgIktXUUNoYXJzZXRzLmgiCisjaW5jbHVkZSAiY29uZmlnLmgiCiAKIHN0cnVjdCBDaGFy
c2V0RW50cnkgewogICAgIGNvbnN0IGNoYXIgKm5hbWU7CkluZGV4OiBXZWJDb3JlL2t3cS9LV1FD
bGlwYm9hcmQubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva3dxL0tX
UUNsaXBib2FyZC5tbSx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4xOApkaWZmIC11IC1wIC1yMS4x
OCBXZWJDb3JlL2t3cS9LV1FDbGlwYm9hcmQubW0KLS0tIFdlYkNvcmUva3dxL0tXUUNsaXBib2Fy
ZC5tbQkyNyBTZXAgMjAwNSAyMjozNzoyNyAtMDAwMAkxLjE4CisrKyBXZWJDb3JlL2t3cS9LV1FD
bGlwYm9hcmQubW0JMyBPY3QgMjAwNSAwNDoyMzowNiAtMDAwMApAQCAtMjQsNiArMjQsNyBAQAog
ICovCiAKICNpbXBvcnQgIktXUUNsaXBib2FyZC5oIgorI2luY2x1ZGUgImNvbmZpZy5oIgogI2lt
cG9ydCA8a3htbGNvcmUvQXNzZXJ0aW9ucy5oPgogI2ltcG9ydCAiS1dRRm91bmRhdGlvbkV4dHJh
cy5oIgogI2ltcG9ydCAiS1dRS0hUTUxQYXJ0LmgiCkluZGV4OiBXZWJDb3JlL2t3cS9LV1FDb2xs
ZWN0aW9uLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2t3cS9LV1FD
b2xsZWN0aW9uLm1tLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjYKZGlmZiAtdSAtcCAtcjEuNiBX
ZWJDb3JlL2t3cS9LV1FDb2xsZWN0aW9uLm1tCi0tLSBXZWJDb3JlL2t3cS9LV1FDb2xsZWN0aW9u
Lm1tCTIyIEphbiAyMDAzIDAwOjEyOjM0IC0wMDAwCTEuNgorKysgV2ViQ29yZS9rd3EvS1dRQ29s
bGVjdGlvbi5tbQkzIE9jdCAyMDA1IDA0OjIzOjA2IC0wMDAwCkBAIC0yNCw2ICsyNCw3IEBACiAg
Ki8KIAogI2ltcG9ydCAiS1dRQ29sbGVjdGlvbi5oIgorI2luY2x1ZGUgImNvbmZpZy5oIgogCiBR
UHRyQ29sbGVjdGlvbjo6flFQdHJDb2xsZWN0aW9uKCkKIHsKSW5kZXg6IFdlYkNvcmUva3dxL0tX
UUNvbG9yLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2t3cS9LV1FD
b2xvci5tbSx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS40NQpkaWZmIC11IC1wIC1yMS40NSBXZWJD
b3JlL2t3cS9LV1FDb2xvci5tbQotLS0gV2ViQ29yZS9rd3EvS1dRQ29sb3IubW0JMjcgU2VwIDIw
MDUgMjI6Mzc6MjcgLTAwMDAJMS40NQorKysgV2ViQ29yZS9rd3EvS1dRQ29sb3IubW0JMyBPY3Qg
MjAwNSAwNDoyMzowNiAtMDAwMApAQCAtMjQsNiArMjQsNyBAQAogICovCiAKICNpbXBvcnQgIktX
UUNvbG9yLmgiCisjaW5jbHVkZSAiY29uZmlnLmgiCiAKICNpbXBvcnQgIktXUU5hbWVzcGFjZS5o
IgogI2ltcG9ydCAiS1dRU3RyaW5nLmgiCkluZGV4OiBXZWJDb3JlL2t3cS9LV1FDb21ib0JveC5t
bQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9rd3EvS1dRQ29tYm9Cb3gu
bW0sdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNjYKZGlmZiAtdSAtcCAtcjEuNjYgV2ViQ29yZS9r
d3EvS1dRQ29tYm9Cb3gubW0KLS0tIFdlYkNvcmUva3dxL0tXUUNvbWJvQm94Lm1tCTI3IFNlcCAy
MDA1IDIyOjM3OjI3IC0wMDAwCTEuNjYKKysrIFdlYkNvcmUva3dxL0tXUUNvbWJvQm94Lm1tCTMg
T2N0IDIwMDUgMDQ6MjM6MDYgLTAwMDAKQEAgLTI0LDYgKzI0LDcgQEAKICAqLwogCiAjaW1wb3J0
ICJLV1FDb21ib0JveC5oIgorI2luY2x1ZGUgImNvbmZpZy5oIgogCiAjaW1wb3J0IDxreG1sY29y
ZS9Bc3NlcnRpb25zLmg+CiAjaW1wb3J0ICJLV1FCdXR0b24uaCIKSW5kZXg6IFdlYkNvcmUva3dx
L0tXUUN1cnNvci5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9rd3Ev
S1dRQ3Vyc29yLm1tLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjIyCmRpZmYgLXUgLXAgLXIxLjIy
IFdlYkNvcmUva3dxL0tXUUN1cnNvci5tbQotLS0gV2ViQ29yZS9rd3EvS1dRQ3Vyc29yLm1tCTE0
IEp1bCAyMDA1IDAyOjMyOjMzIC0wMDAwCTEuMjIKKysrIFdlYkNvcmUva3dxL0tXUUN1cnNvci5t
bQkzIE9jdCAyMDA1IDA0OjIzOjA2IC0wMDAwCkBAIC0yNCw2ICsyNCw3IEBACiAgKi8KIAogI2lt
cG9ydCAiS1dRQ3Vyc29yLmgiCisjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW1wb3J0ICJLV1FMb2dn
aW5nLmgiCiAjaW1wb3J0ICJLV1FGb3VuZGF0aW9uRXh0cmFzLmgiCiAKSW5kZXg6IFdlYkNvcmUv
a3dxL0tXUURhdGVUaW1lLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3Jl
L2t3cS9LV1FEYXRlVGltZS5tbSx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4xMwpkaWZmIC11IC1w
IC1yMS4xMyBXZWJDb3JlL2t3cS9LV1FEYXRlVGltZS5tbQotLS0gV2ViQ29yZS9rd3EvS1dRRGF0
ZVRpbWUubW0JNSBKdWwgMjAwNSAwODowNDo1MCAtMDAwMAkxLjEzCisrKyBXZWJDb3JlL2t3cS9L
V1FEYXRlVGltZS5tbQkzIE9jdCAyMDA1IDA0OjIzOjA2IC0wMDAwCkBAIC0yNCw2ICsyNCw3IEBA
CiAgKi8KIAogI2ltcG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+CisjaW5jbHVkZSAiY29u
ZmlnLmgiCiAjaW1wb3J0ICJLV1FEYXRlVGltZS5oIgogI2ltcG9ydCA8dGltZS5oPgogI2ltcG9y
dCAiV2ViQ29yZUdyYXBoaWNzQnJpZGdlLmgiCkluZGV4OiBXZWJDb3JlL2t3cS9LV1FEaWN0SW1w
bC5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9rd3EvS1dRRGljdElt
cGwubW0sdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNwpkaWZmIC11IC1wIC1yMS43IFdlYkNvcmUv
a3dxL0tXUURpY3RJbXBsLm1tCi0tLSBXZWJDb3JlL2t3cS9LV1FEaWN0SW1wbC5tbQkxMSBKdW4g
MjAwNCAxODowNjozNSAtMDAwMAkxLjcKKysrIFdlYkNvcmUva3dxL0tXUURpY3RJbXBsLm1tCTMg
T2N0IDIwMDUgMDQ6MjM6MDYgLTAwMDAKQEAgLTI0LDYgKzI0LDcgQEAKICAqLwogCiAjaW1wb3J0
ICJLV1FEaWN0SW1wbC5oIgorI2luY2x1ZGUgImNvbmZpZy5oIgogI2ltcG9ydCA8Q29yZUZvdW5k
YXRpb24vQ29yZUZvdW5kYXRpb24uaD4KIAogS1dRRGljdEltcGw6OktXUURpY3RJbXBsKGludCBz
aXplLCBib29sIGNhc2VTZW5zaXRpdmUsIHZvaWQgKCpkZWxldGVGdW5jKSh2b2lkICopKSA6Cklu
ZGV4OiBXZWJDb3JlL2t3cS9LV1FFZGl0Q29tbWFuZC5tbQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAv
Y3ZzL3Jvb3QvV2ViQ29yZS9rd3EvS1dRRWRpdENvbW1hbmQubW0sdgpyZXRyaWV2aW5nIHJldmlz
aW9uIDEuNgpkaWZmIC11IC1wIC1yMS42IFdlYkNvcmUva3dxL0tXUUVkaXRDb21tYW5kLm1tCi0t
LSBXZWJDb3JlL2t3cS9LV1FFZGl0Q29tbWFuZC5tbQkyNyBTZXAgMjAwNSAyMjozNzoyOCAtMDAw
MAkxLjYKKysrIFdlYkNvcmUva3dxL0tXUUVkaXRDb21tYW5kLm1tCTMgT2N0IDIwMDUgMDQ6MjM6
MDYgLTAwMDAKQEAgLTI0LDYgKzI0LDcgQEAKICAqLwogCiAjaW1wb3J0ICJLV1FFZGl0Q29tbWFu
ZC5oIgorI2luY2x1ZGUgImNvbmZpZy5oIgogCiAjaW1wb3J0IDxreG1sY29yZS9Bc3NlcnRpb25z
Lmg+CiAjaW1wb3J0ICJLV1FGb3VuZGF0aW9uRXh0cmFzLmgiCkluZGV4OiBXZWJDb3JlL2t3cS9L
V1FFdmVudC5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9rd3EvS1dR
RXZlbnQubW0sdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMjkKZGlmZiAtdSAtcCAtcjEuMjkgV2Vi
Q29yZS9rd3EvS1dRRXZlbnQubW0KLS0tIFdlYkNvcmUva3dxL0tXUUV2ZW50Lm1tCTMgU2VwIDIw
MDUgMjM6MTA6MDIgLTAwMDAJMS4yOQorKysgV2ViQ29yZS9rd3EvS1dRRXZlbnQubW0JMyBPY3Qg
MjAwNSAwNDoyMzowNiAtMDAwMApAQCAtMjQsNiArMjQsNyBAQAogICovCiAKICNpbXBvcnQgIktX
UUV2ZW50LmgiCisjaW5jbHVkZSAiY29uZmlnLmgiCiAKICNpbXBvcnQgIktXUUxvZ2dpbmcuaCIK
IApJbmRleDogV2ViQ29yZS9rd3EvS1dRRXhjZXB0aW9ucy5tbQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxl
OiAvY3ZzL3Jvb3QvV2ViQ29yZS9rd3EvS1dRRXhjZXB0aW9ucy5tbSx2CnJldHJpZXZpbmcgcmV2
aXNpb24gMS4xCmRpZmYgLXUgLXAgLXIxLjEgV2ViQ29yZS9rd3EvS1dRRXhjZXB0aW9ucy5tbQot
LS0gV2ViQ29yZS9rd3EvS1dRRXhjZXB0aW9ucy5tbQkyNyBPY3QgMjAwMyAyMDo1MToyNSAtMDAw
MAkxLjEKKysrIFdlYkNvcmUva3dxL0tXUUV4Y2VwdGlvbnMubW0JMyBPY3QgMjAwNSAwNDoyMzow
NiAtMDAwMApAQCAtMjQsNiArMjQsNyBAQAogICovCiAKICNpbXBvcnQgIktXUUV4Y2VwdGlvbnMu
aCIKKyNpbmNsdWRlICJjb25maWcuaCIKIAogdm9pZCBLV1FSZXBvcnRCbG9ja2VkRXhjZXB0aW9u
KEtXUU5TSGFuZGxlciYgX2xvY2FsSGFuZGxlcikKIHsKSW5kZXg6IFdlYkNvcmUva3dxL0tXUUZp
bGUubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva3dxL0tXUUZpbGUu
bW0sdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuOApkaWZmIC11IC1wIC1yMS44IFdlYkNvcmUva3dx
L0tXUUZpbGUubW0KLS0tIFdlYkNvcmUva3dxL0tXUUZpbGUubW0JOCBPY3QgMjAwMyAyMToyMzo0
OCAtMDAwMAkxLjgKKysrIFdlYkNvcmUva3dxL0tXUUZpbGUubW0JMyBPY3QgMjAwNSAwNDoyMzow
NiAtMDAwMApAQCAtMjQsNiArMjQsNyBAQAogICovCiAKICNpbXBvcnQgIktXUUZpbGUuaCIKKyNp
bmNsdWRlICJjb25maWcuaCIKIAogLy8gVGhpcyBOU1N0cmluZyBjYWxsIGNhbid0IHRocm93IHNv
IG5vIG5lZWQgdG8gYmxvY2sgZXhjZXB0aW9ucwogUUZpbGU6OlFGaWxlKGNvbnN0IFFTdHJpbmcg
Jm4pIDogbmFtZShzdHJkdXAobi5pc0VtcHR5KCkgPyAiIiA6IFtuLmdldE5TU3RyaW5nKCkgZmls
ZVN5c3RlbVJlcHJlc2VudGF0aW9uXSkpLCBmZCgtMSkKSW5kZXg6IFdlYkNvcmUva3dxL0tXUUZp
bGVCdXR0b24ubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva3dxL0tX
UUZpbGVCdXR0b24ubW0sdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMjgKZGlmZiAtdSAtcCAtcjEu
MjggV2ViQ29yZS9rd3EvS1dRRmlsZUJ1dHRvbi5tbQotLS0gV2ViQ29yZS9rd3EvS1dRRmlsZUJ1
dHRvbi5tbQkyNyBTZXAgMjAwNSAyMjozNzoyOCAtMDAwMAkxLjI4CisrKyBXZWJDb3JlL2t3cS9L
V1FGaWxlQnV0dG9uLm1tCTMgT2N0IDIwMDUgMDQ6MjM6MDYgLTAwMDAKQEAgLTI0LDYgKzI0LDcg
QEAKICAqLwogCiAjaW1wb3J0ICJLV1FGaWxlQnV0dG9uLmgiCisjaW5jbHVkZSAiY29uZmlnLmgi
CiAKICNpbXBvcnQgPGt4bWxjb3JlL0Fzc2VydGlvbnMuaD4KICNpbXBvcnQgIktXUUV4Y2VwdGlv
bnMuaCIKSW5kZXg6IFdlYkNvcmUva3dxL0tXUUZvbnQubW0KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTog
L2N2cy9yb290L1dlYkNvcmUva3dxL0tXUUZvbnQubW0sdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEu
NDgKZGlmZiAtdSAtcCAtcjEuNDggV2ViQ29yZS9rd3EvS1dRRm9udC5tbQotLS0gV2ViQ29yZS9r
d3EvS1dRRm9udC5tbQkyNSBBdWcgMjAwNSAxNzo0NzoyNSAtMDAwMAkxLjQ4CisrKyBXZWJDb3Jl
L2t3cS9LV1FGb250Lm1tCTMgT2N0IDIwMDUgMDQ6MjM6MDYgLTAwMDAKQEAgLTI0LDYgKzI0LDcg
QEAKICAqLwogCiAjaW1wb3J0ICJLV1FGb250LmgiCisjaW5jbHVkZSAiY29uZmlnLmgiCiAKICNp
bXBvcnQgIktXUUV4Y2VwdGlvbnMuaCIKICNpbXBvcnQgIktXUVN0cmluZy5oIgpJbmRleDogV2Vi
Q29yZS9rd3EvS1dRRm9udEZhbWlseS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9X
ZWJDb3JlL2t3cS9LV1FGb250RmFtaWx5LmgsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNQpkaWZm
IC11IC1wIC1yMS41IFdlYkNvcmUva3dxL0tXUUZvbnRGYW1pbHkuaAotLS0gV2ViQ29yZS9rd3Ev
S1dRRm9udEZhbWlseS5oCTI3IFNlcCAyMDA1IDIyOjM3OjI4IC0wMDAwCTEuNQorKysgV2ViQ29y
ZS9rd3EvS1dRRm9udEZhbWlseS5oCTMgT2N0IDIwMDUgMDQ6MjM6MDYgLTAwMDAKQEAgLTMzLDcg
KzMzLDcgQEAKIGNsYXNzIE5TU3RyaW5nOwogI2VuZGlmCiAKLWNsYXNzIEtXUUZvbnRGYW1pbHkg
OiBwdWJsaWMgRmFzdEFsbG9jYXRlZCB7CitjbGFzcyBLV1FGb250RmFtaWx5IHsKIHB1YmxpYzoK
ICAgICBLV1FGb250RmFtaWx5KCk7CiAgICAgfktXUUZvbnRGYW1pbHkoKSB7IGlmIChfbmV4dCkg
X25leHQtPmRlcmVmKCk7ICB9CkluZGV4OiBXZWJDb3JlL2t3cS9LV1FGb250RmFtaWx5Lm1tCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2t3cS9LV1FGb250RmFtaWx5Lm1t
LHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjUKZGlmZiAtdSAtcCAtcjEuNSBXZWJDb3JlL2t3cS9L
V1FGb250RmFtaWx5Lm1tCi0tLSBXZWJDb3JlL2t3cS9LV1FGb250RmFtaWx5Lm1tCTI5IEF1ZyAy
MDA1IDIxOjI5OjI4IC0wMDAwCTEuNQorKysgV2ViQ29yZS9rd3EvS1dRRm9udEZhbWlseS5tbQkz
IE9jdCAyMDA1IDA0OjIzOjA2IC0wMDAwCkBAIC0yNCw2ICsyNCw3IEBACiAgKi8KIAogI2luY2x1
ZGUgIktXUUZvbnRGYW1pbHkuaCIKKyNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJ4bWwv
ZG9tX3N0cmluZ2ltcGwuaCIKIAogdXNpbmcgRE9NOjpBdG9taWNTdHJpbmc7CkluZGV4OiBXZWJD
b3JlL2t3cS9LV1FGb250TWV0cmljcy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3Qv
V2ViQ29yZS9rd3EvS1dRRm9udE1ldHJpY3MubW0sdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuODkK
ZGlmZiAtdSAtcCAtcjEuODkgV2ViQ29yZS9rd3EvS1dRRm9udE1ldHJpY3MubW0KLS0tIFdlYkNv
cmUva3dxL0tXUUZvbnRNZXRyaWNzLm1tCTI5IEp1bCAyMDA1IDIzOjQyOjU1IC0wMDAwCTEuODkK
KysrIFdlYkNvcmUva3dxL0tXUUZvbnRNZXRyaWNzLm1tCTMgT2N0IDIwMDUgMDQ6MjM6MDYgLTAw
MDAKQEAgLTI0LDYgKzI0LDcgQEAKICAqLwogCiAjaW1wb3J0ICJLV1FGb250TWV0cmljcy5oIgor
I2luY2x1ZGUgImNvbmZpZy5oIgogCiAjaW1wb3J0IDxDb2NvYS9Db2NvYS5oPgogCkluZGV4OiBX
ZWJDb3JlL2t3cS9LV1FGb3JtRGF0YS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3Qv
V2ViQ29yZS9rd3EvS1dRRm9ybURhdGEubW0sdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMwpkaWZm
IC11IC1wIC1yMS4zIFdlYkNvcmUva3dxL0tXUUZvcm1EYXRhLm1tCi0tLSBXZWJDb3JlL2t3cS9L
V1FGb3JtRGF0YS5tbQkyNyBTZXAgMjAwNSAyMjozNzoyOCAtMDAwMAkxLjMKKysrIFdlYkNvcmUv
a3dxL0tXUUZvcm1EYXRhLm1tCTMgT2N0IDIwMDUgMDQ6MjM6MDYgLTAwMDAKQEAgLTI0LDYgKzI0
LDcgQEAKICAqLwogCiAjaW1wb3J0ICJLV1FGb3JtRGF0YS5oIgorI2luY2x1ZGUgImNvbmZpZy5o
IgogCiAjaW1wb3J0IDxreG1sY29yZS9Bc3NlcnRpb25zLmg+CiAjaW1wb3J0ICJmb3JtZGF0YS5o
IgpJbmRleDogV2ViQ29yZS9rd3EvS1dRRnJhbWUubW0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2
cy9yb290L1dlYkNvcmUva3dxL0tXUUZyYW1lLm1tLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjE4
CmRpZmYgLXUgLXAgLXIxLjE4IFdlYkNvcmUva3dxL0tXUUZyYW1lLm1tCi0tLSBXZWJDb3JlL2t3
cS9LV1FGcmFtZS5tbQkxOCBNYXkgMjAwNSAyMToxMDoyNiAtMDAwMAkxLjE4CisrKyBXZWJDb3Jl
L2t3cS9LV1FGcmFtZS5tbQkzIE9jdCAyMDA1IDA0OjIzOjA2IC0wMDAwCkBAIC0yNCw2ICsyNCw3
IEBACiAgKi8KIAogI2ltcG9ydCAiS1dRRnJhbWUuaCIKKyNpbmNsdWRlICJjb25maWcuaCIKIAog
I2ltcG9ydCAiS1dRRXhjZXB0aW9ucy5oIgogI2ltcG9ydCAiS1dRS0hUTUxQYXJ0LmgiCkluZGV4
OiBXZWJDb3JlL2t3cS9LV1FHbG9iYWwubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290
L1dlYkNvcmUva3dxL0tXUUdsb2JhbC5tbSx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4yCmRpZmYg
LXUgLXAgLXIxLjIgV2ViQ29yZS9rd3EvS1dRR2xvYmFsLm1tCi0tLSBXZWJDb3JlL2t3cS9LV1FH
bG9iYWwubW0JMjIgSmFuIDIwMDMgMDA6MTI6MzQgLTAwMDAJMS4yCisrKyBXZWJDb3JlL2t3cS9L
V1FHbG9iYWwubW0JMyBPY3QgMjAwNSAwNDoyMzowNiAtMDAwMApAQCAtMjMsNiArMjMsOCBAQAog
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4gCiAgKi8KIAorI2luY2x1ZGUgImNvbmZpZy5oIgorCiB2b2lkIHFEZWJ1
Zyhjb25zdCBjaGFyICptc2csIC4uLikKIHsKIH0KSW5kZXg6IFdlYkNvcmUva3dxL0tXUUd1YXJk
ZWRQdHIubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva3dxL0tXUUd1
YXJkZWRQdHIubW0sdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuOApkaWZmIC11IC1wIC1yMS44IFdl
YkNvcmUva3dxL0tXUUd1YXJkZWRQdHIubW0KLS0tIFdlYkNvcmUva3dxL0tXUUd1YXJkZWRQdHIu
bW0JMjIgSmFuIDIwMDMgMDA6MTI6MzQgLTAwMDAJMS44CisrKyBXZWJDb3JlL2t3cS9LV1FHdWFy
ZGVkUHRyLm1tCTMgT2N0IDIwMDUgMDQ6MjM6MDYgLTAwMDAKQEAgLTI0LDYgKzI0LDcgQEAKICAq
LwogCiAjaW1wb3J0ICJLV1FHdWFyZGVkUHRyLmgiCisjaW5jbHVkZSAiY29uZmlnLmgiCiAKICNp
bXBvcnQgIktXUU9iamVjdC5oIgogCkluZGV4OiBXZWJDb3JlL2t3cS9LV1FLQ2hhcnNldHMubW0K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva3dxL0tXUUtDaGFyc2V0cy5t
bSx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4xNApkaWZmIC11IC1wIC1yMS4xNCBXZWJDb3JlL2t3
cS9LV1FLQ2hhcnNldHMubW0KLS0tIFdlYkNvcmUva3dxL0tXUUtDaGFyc2V0cy5tbQkyNCBBcHIg
MjAwMyAxODoxMzowMiAtMDAwMAkxLjE0CisrKyBXZWJDb3JlL2t3cS9LV1FLQ2hhcnNldHMubW0J
MyBPY3QgMjAwNSAwNDoyMzowNiAtMDAwMApAQCAtMjQsNiArMjQsNyBAQAogICovCiAKICNpbXBv
cnQgIktXUUtDaGFyc2V0cy5oIgorI2luY2x1ZGUgImNvbmZpZy5oIgogCiAjaW1wb3J0ICJLV1FU
ZXh0Q29kZWMuaCIKIApJbmRleDogV2ViQ29yZS9rd3EvS1dRS0NvbmZpZ0Jhc2UubW0KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva3dxL0tXUUtDb25maWdCYXNlLm1tLHYK
cmV0cmlldmluZyByZXZpc2lvbiAxLjMwCmRpZmYgLXUgLXAgLXIxLjMwIFdlYkNvcmUva3dxL0tX
UUtDb25maWdCYXNlLm1tCi0tLSBXZWJDb3JlL2t3cS9LV1FLQ29uZmlnQmFzZS5tbQkyMyBBdWcg
MjAwNSAxODozMjo1MCAtMDAwMAkxLjMwCisrKyBXZWJDb3JlL2t3cS9LV1FLQ29uZmlnQmFzZS5t
bQkzIE9jdCAyMDA1IDA0OjIzOjA2IC0wMDAwCkBAIC0yNCw2ICsyNCw3IEBACiAgKi8KIAogI2lt
cG9ydCAiS1dRS0NvbmZpZ0Jhc2UuaCIKKyNpbmNsdWRlICJjb25maWcuaCIKIAogI2ltcG9ydCAi
S1dRQ29sb3IuaCIKICNpbXBvcnQgIktXUUV4Y2VwdGlvbnMuaCIKSW5kZXg6IFdlYkNvcmUva3dx
L0tXUUtDb29raWVKYXIubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUv
a3dxL0tXUUtDb29raWVKYXIubW0sdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuOQpkaWZmIC11IC1w
IC1yMS45IFdlYkNvcmUva3dxL0tXUUtDb29raWVKYXIubW0KLS0tIFdlYkNvcmUva3dxL0tXUUtD
b29raWVKYXIubW0JMjcgT2N0IDIwMDMgMjA6NTE6MjUgLTAwMDAJMS45CisrKyBXZWJDb3JlL2t3
cS9LV1FLQ29va2llSmFyLm1tCTMgT2N0IDIwMDUgMDQ6MjM6MDYgLTAwMDAKQEAgLTI0LDYgKzI0
LDcgQEAKICAqLwogCiAjaW1wb3J0ICJLV1FLQ29va2llSmFyLmgiCisjaW5jbHVkZSAiY29uZmln
LmgiCiAKICNpbXBvcnQgIktXUUV4Y2VwdGlvbnMuaCIKICNpbXBvcnQgIktXUUtVUkwuaCIKSW5k
ZXg6IFdlYkNvcmUva3dxL0tXUUtDdXJzb3IubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9y
b290L1dlYkNvcmUva3dxL0tXUUtDdXJzb3IubW0sdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMTcK
ZGlmZiAtdSAtcCAtcjEuMTcgV2ViQ29yZS9rd3EvS1dRS0N1cnNvci5tbQotLS0gV2ViQ29yZS9r
d3EvS1dRS0N1cnNvci5tbQkxNCBKdWwgMjAwNSAwMjozMjozMyAtMDAwMAkxLjE3CisrKyBXZWJD
b3JlL2t3cS9LV1FLQ3Vyc29yLm1tCTMgT2N0IDIwMDUgMDQ6MjM6MDYgLTAwMDAKQEAgLTI0LDYg
KzI0LDcgQEAKICAqLwogCiAjaW1wb3J0ICJLV1FLQ3Vyc29yLmgiCisjaW5jbHVkZSAiY29uZmln
LmgiCiAKICNpbXBvcnQgIktXUUV4Y2VwdGlvbnMuaCIKIApJbmRleDogV2ViQ29yZS9rd3EvS1dR
S0dsb2JhbC5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9rd3EvS1dR
S0dsb2JhbC5tbSx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4xNQpkaWZmIC11IC1wIC1yMS4xNSBX
ZWJDb3JlL2t3cS9LV1FLR2xvYmFsLm1tCi0tLSBXZWJDb3JlL2t3cS9LV1FLR2xvYmFsLm1tCTIy
IEphbiAyMDAzIDAwOjEyOjM1IC0wMDAwCTEuMTUKKysrIFdlYkNvcmUva3dxL0tXUUtHbG9iYWwu
bW0JMyBPY3QgMjAwNSAwNDoyMzowNiAtMDAwMApAQCAtMjQsNiArMjQsNyBAQAogICovCiAKICNp
bXBvcnQgIktXUUtHbG9iYWwuaCIKKyNpbmNsdWRlICJjb25maWcuaCIKIAogI2ltcG9ydCAiS1dR
S0NvbmZpZ0Jhc2UuaCIKICNpbXBvcnQgIktXUURpY3QuaCIKSW5kZXg6IFdlYkNvcmUva3dxL0tX
UUtHbG9iYWxTZXR0aW5ncy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29y
ZS9rd3EvS1dRS0dsb2JhbFNldHRpbmdzLm1tLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjcKZGlm
ZiAtdSAtcCAtcjEuNyBXZWJDb3JlL2t3cS9LV1FLR2xvYmFsU2V0dGluZ3MubW0KLS0tIFdlYkNv
cmUva3dxL0tXUUtHbG9iYWxTZXR0aW5ncy5tbQkyMiBKYW4gMjAwMyAwMDoxMjozNSAtMDAwMAkx
LjcKKysrIFdlYkNvcmUva3dxL0tXUUtHbG9iYWxTZXR0aW5ncy5tbQkzIE9jdCAyMDA1IDA0OjIz
OjA2IC0wMDAwCkBAIC0yNCw2ICsyNCw3IEBACiAgKi8KIAogI2ltcG9ydCAiS1dRS0dsb2JhbFNl
dHRpbmdzLmgiCisjaW5jbHVkZSAiY29uZmlnLmgiCiAKICNpbXBvcnQgIktXUUZvbnQuaCIKIApJ
bmRleDogV2ViQ29yZS9rd3EvS1dRS0hUTUxGYWN0b3J5Lm1tCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6
IC9jdnMvcm9vdC9XZWJDb3JlL2t3cS9LV1FLSFRNTEZhY3RvcnkubW0sdgpyZXRyaWV2aW5nIHJl
dmlzaW9uIDEuOQpkaWZmIC11IC1wIC1yMS45IFdlYkNvcmUva3dxL0tXUUtIVE1MRmFjdG9yeS5t
bQotLS0gV2ViQ29yZS9rd3EvS1dRS0hUTUxGYWN0b3J5Lm1tCTIyIEphbiAyMDAzIDAwOjEyOjM1
IC0wMDAwCTEuOQorKysgV2ViQ29yZS9rd3EvS1dRS0hUTUxGYWN0b3J5Lm1tCTMgT2N0IDIwMDUg
MDQ6MjM6MDYgLTAwMDAKQEAgLTI0LDYgKzI0LDcgQEAKICAqLwogCiAjaW1wb3J0ICJLV1FLSFRN
TEZhY3RvcnkuaCIKKyNpbmNsdWRlICJjb25maWcuaCIKIAogI2ltcG9ydCAiS1dRS0luc3RhbmNl
LmgiCiAjaW1wb3J0ICJLV1FLSFRNTFNldHRpbmdzLmgiCkluZGV4OiBXZWJDb3JlL2t3cS9LV1FL
SFRNTFBhcnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2t3cS9L
V1FLSFRNTFBhcnQuY3BwLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjEzCmRpZmYgLXUgLXAgLXIx
LjEzIFdlYkNvcmUva3dxL0tXUUtIVE1MUGFydC5jcHAKLS0tIFdlYkNvcmUva3dxL0tXUUtIVE1M
UGFydC5jcHAJMjUgQXVnIDIwMDUgMjM6MTM6NTcgLTAwMDAJMS4xMworKysgV2ViQ29yZS9rd3Ev
S1dRS0hUTUxQYXJ0LmNwcAkzIE9jdCAyMDA1IDA0OjIzOjA2IC0wMDAwCkBAIC0yNCw2ICsyNCw3
IEBACiAgKi8KIAogI2luY2x1ZGUgIktXUUtIVE1MUGFydC5oIgorI2luY2x1ZGUgImNvbmZpZy5o
IgogCiAjaW5jbHVkZSAiaHRtbF9kb2N1bWVudGltcGwuaCIKICNpbmNsdWRlICJodG1sX2VsZW1l
bnRpbXBsLmgiCkluZGV4OiBXZWJDb3JlL2t3cS9LV1FLSFRNTFBhcnQubW0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpS
Q1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva3dxL0tXUUtIVE1MUGFydC5tbSx2CnJldHJpZXZp
bmcgcmV2aXNpb24gMS42NzUKZGlmZiAtdSAtcCAtcjEuNjc1IFdlYkNvcmUva3dxL0tXUUtIVE1M
UGFydC5tbQotLS0gV2ViQ29yZS9rd3EvS1dRS0hUTUxQYXJ0Lm1tCTI3IFNlcCAyMDA1IDIyOjM3
OjI4IC0wMDAwCTEuNjc1CisrKyBXZWJDb3JlL2t3cS9LV1FLSFRNTFBhcnQubW0JMyBPY3QgMjAw
NSAwNDoyMzowNyAtMDAwMApAQCAtMjQsNiArMjQsNyBAQAogICovCiAKICNpbXBvcnQgIktXUUtI
VE1MUGFydC5oIgorI2luY2x1ZGUgImNvbmZpZy5oIgogCiAjaW1wb3J0ICJET01JbnRlcm5hbC5o
IgogCkluZGV4OiBXZWJDb3JlL2t3cS9LV1FLSFRNTFBhcnRCcm93c2VyRXh0ZW5zaW9uLm1tCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2t3cS9LV1FLSFRNTFBhcnRCcm93
c2VyRXh0ZW5zaW9uLm1tLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjUwCmRpZmYgLXUgLXAgLXIx
LjUwIFdlYkNvcmUva3dxL0tXUUtIVE1MUGFydEJyb3dzZXJFeHRlbnNpb24ubW0KLS0tIFdlYkNv
cmUva3dxL0tXUUtIVE1MUGFydEJyb3dzZXJFeHRlbnNpb24ubW0JMSBKdW4gMjAwNSAyMzo0OTo0
OSAtMDAwMAkxLjUwCisrKyBXZWJDb3JlL2t3cS9LV1FLSFRNTFBhcnRCcm93c2VyRXh0ZW5zaW9u
Lm1tCTMgT2N0IDIwMDUgMDQ6MjM6MDcgLTAwMDAKQEAgLTI0LDYgKzI0LDcgQEAKICAqLwogCiAj
aW1wb3J0ICJLV1FLSFRNTFBhcnRCcm93c2VyRXh0ZW5zaW9uLmgiCisjaW5jbHVkZSAiY29uZmln
LmgiCiAKICNpbXBvcnQgIktXUUV4Y2VwdGlvbnMuaCIKICNpbXBvcnQgIldlYkNvcmVCcmlkZ2Uu
aCIKSW5kZXg6IFdlYkNvcmUva3dxL0tXUUtIVE1MVmlldy5tbQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxl
OiAvY3ZzL3Jvb3QvV2ViQ29yZS9rd3EvS1dRS0hUTUxWaWV3Lm1tLHYKcmV0cmlldmluZyByZXZp
c2lvbiAxLjgKZGlmZiAtdSAtcCAtcjEuOCBXZWJDb3JlL2t3cS9LV1FLSFRNTFZpZXcubW0KLS0t
IFdlYkNvcmUva3dxL0tXUUtIVE1MVmlldy5tbQkxOCBKYW4gMjAwNSAwMDo0MzoxNCAtMDAwMAkx
LjgKKysrIFdlYkNvcmUva3dxL0tXUUtIVE1MVmlldy5tbQkzIE9jdCAyMDA1IDA0OjIzOjA3IC0w
MDAwCkBAIC0yNCw2ICsyNCw3IEBACiAgKi8KIAogI2ltcG9ydCAia2h0bWx2aWV3LmgiCisjaW5j
bHVkZSAiY29uZmlnLmgiCiAKICNpbXBvcnQgIktXUUtIVE1MUGFydC5oIgogI2ltcG9ydCAiS1dR
V2luZG93V2lkZ2V0LmgiCkluZGV4OiBXZWJDb3JlL2t3cS9LV1FLSGlzdG9yeVByb3ZpZGVyLm1t
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2t3cS9LV1FLSGlzdG9yeVBy
b3ZpZGVyLm1tLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjE4CmRpZmYgLXUgLXAgLXIxLjE4IFdl
YkNvcmUva3dxL0tXUUtIaXN0b3J5UHJvdmlkZXIubW0KLS0tIFdlYkNvcmUva3dxL0tXUUtIaXN0
b3J5UHJvdmlkZXIubW0JMTQgRmViIDIwMDQgMDI6MTA6NDYgLTAwMDAJMS4xOAorKysgV2ViQ29y
ZS9rd3EvS1dRS0hpc3RvcnlQcm92aWRlci5tbQkzIE9jdCAyMDA1IDA0OjIzOjA3IC0wMDAwCkBA
IC0yNCw2ICsyNCw3IEBACiAgKi8KIAogI2ltcG9ydCAiS1dRS1BhcnRzSGlzdG9yeVByb3ZpZGVy
LmgiCisjaW5jbHVkZSAiY29uZmlnLmgiCiAKICNpbXBvcnQgIktXUUV4Y2VwdGlvbnMuaCIKICNp
bXBvcnQgIktXUUtVUkwuaCIKSW5kZXg6IFdlYkNvcmUva3dxL0tXUUtKYXZhQXBwbGV0V2lkZ2V0
Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2t3cS9LV1FLSmF2YUFw
cGxldFdpZGdldC5tbSx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4yOApkaWZmIC11IC1wIC1yMS4y
OCBXZWJDb3JlL2t3cS9LV1FLSmF2YUFwcGxldFdpZGdldC5tbQotLS0gV2ViQ29yZS9rd3EvS1dR
S0phdmFBcHBsZXRXaWRnZXQubW0JMjkgQXByIDIwMDUgMDA6MzE6MDEgLTAwMDAJMS4yOAorKysg
V2ViQ29yZS9rd3EvS1dRS0phdmFBcHBsZXRXaWRnZXQubW0JMyBPY3QgMjAwNSAwNDoyMzowNyAt
MDAwMApAQCAtMjQsNiArMjQsNyBAQAogICovCiAKICNpbXBvcnQgIktXUUtKYXZhQXBwbGV0V2lk
Z2V0LmgiCisjaW5jbHVkZSAiY29uZmlnLmgiCiAKICNpbXBvcnQgImRvbV9kb2NpbXBsLmgiCiAj
aW1wb3J0ICJraHRtbHZpZXcuaCIKSW5kZXg6IFdlYkNvcmUva3dxL0tXUUtKb2IubW0KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva3dxL0tXUUtKb2IubW0sdgpyZXRyaWV2
aW5nIHJldmlzaW9uIDEuOQpkaWZmIC11IC1wIC1yMS45IFdlYkNvcmUva3dxL0tXUUtKb2IubW0K
LS0tIFdlYkNvcmUva3dxL0tXUUtKb2IubW0JMjIgSmFuIDIwMDMgMDA6MTI6MzUgLTAwMDAJMS45
CisrKyBXZWJDb3JlL2t3cS9LV1FLSm9iLm1tCTMgT2N0IDIwMDUgMDQ6MjM6MDcgLTAwMDAKQEAg
LTI0LDYgKzI0LDcgQEAKICAqLwogCiAjaW1wb3J0ICJLV1FLSm9iLmgiCisjaW5jbHVkZSAiY29u
ZmlnLmgiCiAjaW1wb3J0ICJLV1FMb2dnaW5nLmgiCiAKIG5hbWVzcGFjZSBLSU8gewpJbmRleDog
V2ViQ29yZS9rd3EvS1dRS0pvYkNsYXNzZXMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9y
b290L1dlYkNvcmUva3dxL0tXUUtKb2JDbGFzc2VzLm1tLHYKcmV0cmlldmluZyByZXZpc2lvbiAx
LjQ4CmRpZmYgLXUgLXAgLXIxLjQ4IFdlYkNvcmUva3dxL0tXUUtKb2JDbGFzc2VzLm1tCi0tLSBX
ZWJDb3JlL2t3cS9LV1FLSm9iQ2xhc3Nlcy5tbQk4IFNlcCAyMDA1IDIxOjM1OjMwIC0wMDAwCTEu
NDgKKysrIFdlYkNvcmUva3dxL0tXUUtKb2JDbGFzc2VzLm1tCTMgT2N0IDIwMDUgMDQ6MjM6MDcg
LTAwMDAKQEAgLTI0LDYgKzI0LDcgQEAKICAqLwogCiAjaW1wb3J0ICJLV1FMb2dnaW5nLmgiCisj
aW5jbHVkZSAiY29uZmlnLmgiCiAKICNpbXBvcnQgIktXUUV4Y2VwdGlvbnMuaCIKICNpbXBvcnQg
IktXUUtKb2JDbGFzc2VzLmgiCkluZGV4OiBXZWJDb3JlL2t3cS9LV1FLTG9jYWxlLm1tCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2t3cS9LV1FLTG9jYWxlLm1tLHYKcmV0
cmlldmluZyByZXZpc2lvbiAxLjE4CmRpZmYgLXUgLXAgLXIxLjE4IFdlYkNvcmUva3dxL0tXUUtM
b2NhbGUubW0KLS0tIFdlYkNvcmUva3dxL0tXUUtMb2NhbGUubW0JMjcgT2N0IDIwMDMgMjA6NTE6
MjUgLTAwMDAJMS4xOAorKysgV2ViQ29yZS9rd3EvS1dRS0xvY2FsZS5tbQkzIE9jdCAyMDA1IDA0
OjIzOjA3IC0wMDAwCkBAIC0yNCw2ICsyNCw3IEBACiAgKi8KIAogI2ltcG9ydCAiS1dRS0xvY2Fs
ZS5oIgorI2luY2x1ZGUgImNvbmZpZy5oIgogCiAjaW1wb3J0ICJLV1FFeGNlcHRpb25zLmgiCiAj
aW1wb3J0ICJLV1FMb2dnaW5nLmgiCkluZGV4OiBXZWJDb3JlL2t3cS9LV1FLUGFydHNCcm93c2Vy
SW50ZXJmYWNlLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2t3cS9L
V1FLUGFydHNCcm93c2VySW50ZXJmYWNlLm1tLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjE0CmRp
ZmYgLXUgLXAgLXIxLjE0IFdlYkNvcmUva3dxL0tXUUtQYXJ0c0Jyb3dzZXJJbnRlcmZhY2UubW0K
LS0tIFdlYkNvcmUva3dxL0tXUUtQYXJ0c0Jyb3dzZXJJbnRlcmZhY2UubW0JMjcgU2VwIDIwMDUg
MjI6Mzc6MjkgLTAwMDAJMS4xNAorKysgV2ViQ29yZS9rd3EvS1dRS1BhcnRzQnJvd3NlckludGVy
ZmFjZS5tbQkzIE9jdCAyMDA1IDA0OjIzOjA3IC0wMDAwCkBAIC0yNCw2ICsyNCw3IEBACiAgKi8K
IAogI2ltcG9ydCAiS1dRS1BhcnRzQnJvd3NlckludGVyZmFjZS5oIgorI2luY2x1ZGUgImNvbmZp
Zy5oIgogCiAjaW1wb3J0IDxreG1sY29yZS9Bc3NlcnRpb25zLmg+CiAjaW1wb3J0ICJLV1FFeGNl
cHRpb25zLmgiCkluZGV4OiBXZWJDb3JlL2t3cS9LV1FLUGFydHNFdmVudC5tbQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9rd3EvS1dRS1BhcnRzRXZlbnQubW0sdgpyZXRy
aWV2aW5nIHJldmlzaW9uIDEuMTAKZGlmZiAtdSAtcCAtcjEuMTAgV2ViQ29yZS9rd3EvS1dRS1Bh
cnRzRXZlbnQubW0KLS0tIFdlYkNvcmUva3dxL0tXUUtQYXJ0c0V2ZW50Lm1tCTE4IE5vdiAyMDAz
IDAxOjUyOjM1IC0wMDAwCTEuMTAKKysrIFdlYkNvcmUva3dxL0tXUUtQYXJ0c0V2ZW50Lm1tCTMg
T2N0IDIwMDUgMDQ6MjM6MDcgLTAwMDAKQEAgLTI0LDYgKzI0LDcgQEAKICAqLwogCiAjaW1wb3J0
ICJLV1FLUGFydHNFdmVudC5oIgorI2luY2x1ZGUgImNvbmZpZy5oIgogCiBuYW1lc3BhY2UgS1Bh
cnRzIHsKIApJbmRleDogV2ViQ29yZS9rd3EvS1dRS1BhcnRzUGFydC5tbQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJD
UyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9rd3EvS1dRS1BhcnRzUGFydC5tbSx2CnJldHJpZXZp
bmcgcmV2aXNpb24gMS4zCmRpZmYgLXUgLXAgLXIxLjMgV2ViQ29yZS9rd3EvS1dRS1BhcnRzUGFy
dC5tbQotLS0gV2ViQ29yZS9rd3EvS1dRS1BhcnRzUGFydC5tbQkxNCBEZWMgMjAwNCAwMDoxMDox
OCAtMDAwMAkxLjMKKysrIFdlYkNvcmUva3dxL0tXUUtQYXJ0c1BhcnQubW0JMyBPY3QgMjAwNSAw
NDoyMzowNyAtMDAwMApAQCAtMjQsNiArMjQsNyBAQAogICovCiAKICNpbXBvcnQgIktXUUtQYXJ0
c1BhcnQuaCIKKyNpbmNsdWRlICJjb25maWcuaCIKIAogbmFtZXNwYWNlIEtQYXJ0cyB7CiAKSW5k
ZXg6IFdlYkNvcmUva3dxL0tXUUtTU0xLZXlHZW4ubW0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2
cy9yb290L1dlYkNvcmUva3dxL0tXUUtTU0xLZXlHZW4ubW0sdgpyZXRyaWV2aW5nIHJldmlzaW9u
IDEuNQpkaWZmIC11IC1wIC1yMS41IFdlYkNvcmUva3dxL0tXUUtTU0xLZXlHZW4ubW0KLS0tIFdl
YkNvcmUva3dxL0tXUUtTU0xLZXlHZW4ubW0JMTkgTWF5IDIwMDQgMTQ6Mzc6MTAgLTAwMDAJMS41
CisrKyBXZWJDb3JlL2t3cS9LV1FLU1NMS2V5R2VuLm1tCTMgT2N0IDIwMDUgMDQ6MjM6MDcgLTAw
MDAKQEAgLTI0LDYgKzI0LDcgQEAKICAqLwogCiAjaW1wb3J0ICJLV1FLU1NMS2V5R2VuLmgiCisj
aW5jbHVkZSAiY29uZmlnLmgiCiAKICNpbXBvcnQgIktXUUtVUkwuaCIKICNpbXBvcnQgIktXUVN0
cmluZy5oIgpJbmRleDogV2ViQ29yZS9rd3EvS1dRS1N0YW5kYXJkRGlycy5tbQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9rd3EvS1dRS1N0YW5kYXJkRGlycy5tbSx2CnJl
dHJpZXZpbmcgcmV2aXNpb24gMS4xNApkaWZmIC11IC1wIC1yMS4xNCBXZWJDb3JlL2t3cS9LV1FL
U3RhbmRhcmREaXJzLm1tCi0tLSBXZWJDb3JlL2t3cS9LV1FLU3RhbmRhcmREaXJzLm1tCTggT2N0
IDIwMDMgMjE6MjM6NDkgLTAwMDAJMS4xNAorKysgV2ViQ29yZS9rd3EvS1dRS1N0YW5kYXJkRGly
cy5tbQkzIE9jdCAyMDA1IDA0OjIzOjA3IC0wMDAwCkBAIC0yNCw2ICsyNCw3IEBACiAgKi8KIAog
I2ltcG9ydCAiS1dRS1N0YW5kYXJkRGlycy5oIgorI2luY2x1ZGUgImNvbmZpZy5oIgogCiAvLyBU
aGUgTlNCdW5kbGUgY2FsbHMgaW4gdGhpcyBmaWxlIGNhbid0IHRocm93LCBzbyBubyBuZWVkIHRv
IGJsb2NrCiAvLyBDb2NvYSBleGNlcHRpb25zLgpJbmRleDogV2ViQ29yZS9rd3EvS1dRS1N0cmlu
Z0hhbmRsZXIubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva3dxL0tX
UUtTdHJpbmdIYW5kbGVyLm1tLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjUKZGlmZiAtdSAtcCAt
cjEuNSBXZWJDb3JlL2t3cS9LV1FLU3RyaW5nSGFuZGxlci5tbQotLS0gV2ViQ29yZS9rd3EvS1dR
S1N0cmluZ0hhbmRsZXIubW0JMjIgSmFuIDIwMDMgMDA6MTI6MzUgLTAwMDAJMS41CisrKyBXZWJD
b3JlL2t3cS9LV1FLU3RyaW5nSGFuZGxlci5tbQkzIE9jdCAyMDA1IDA0OjIzOjA3IC0wMDAwCkBA
IC0yNCw2ICsyNCw3IEBACiAgKi8KIAogI2ltcG9ydCAiS1dRS1N0cmluZ0hhbmRsZXIuaCIKKyNp
bmNsdWRlICJjb25maWcuaCIKIAogUVN0cmluZyBLU3RyaW5nSGFuZGxlcjo6Y3NxdWVlemUoY29u
c3QgUVN0cmluZyAmc3RyLCB1aW50IG1heGxlbikKIHsKSW5kZXg6IFdlYkNvcmUva3dxL0tXUUtV
UkwubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva3dxL0tXUUtVUkwu
bW0sdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuOTIKZGlmZiAtdSAtcCAtcjEuOTIgV2ViQ29yZS9r
d3EvS1dRS1VSTC5tbQotLS0gV2ViQ29yZS9rd3EvS1dRS1VSTC5tbQkyNyBTZXAgMjAwNSAyMjoz
NzoyOSAtMDAwMAkxLjkyCisrKyBXZWJDb3JlL2t3cS9LV1FLVVJMLm1tCTMgT2N0IDIwMDUgMDQ6
MjM6MDcgLTAwMDAKQEAgLTI0LDYgKzI0LDcgQEAKICAqLwogCiAjaW1wb3J0ICJLV1FLVVJMLmgi
CisjaW5jbHVkZSAiY29uZmlnLmgiCiAKICNpbXBvcnQgPGt4bWxjb3JlL0Fzc2VydGlvbnMuaD4K
ICNpbXBvcnQgIktXUUZvdW5kYXRpb25FeHRyYXMuaCIKQEAgLTI0Miw3ICsyNDMsNyBAQCBLVVJM
OjpLVVJMKGNvbnN0IGNoYXIgKnVybCkKICAgICAgICAgc2l6ZV90IHVybExlbmd0aCA9IHN0cmxl
bih1cmwpICsgMTsKICAgICAgICAgc2l6ZV90IGJ1ZmZlckxlbmd0aCA9IHVybExlbmd0aCArIDU7
IC8vIDUgZm9yICJmaWxlOiIKICAgICAgICAgaWYgKGJ1ZmZlckxlbmd0aCA+IHNpemVvZihzdGF0
aWNCdWZmZXIpKSB7Ci0gICAgICAgICAgICBidWZmZXIgPSAoY2hhciAqKW1hbGxvYyhidWZmZXJM
ZW5ndGgpOworICAgICAgICAgICAgYnVmZmVyID0gKGNoYXIgKilmYXN0TWFsbG9jKGJ1ZmZlckxl
bmd0aCk7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBidWZmZXIgPSBzdGF0aWNCdWZm
ZXI7CiAgICAgICAgIH0KQEAgLTI1NCw3ICsyNTUsNyBAQCBLVVJMOjpLVVJMKGNvbnN0IGNoYXIg
KnVybCkKICAgICAgICAgbWVtY3B5KCZidWZmZXJbNV0sIHVybCwgdXJsTGVuZ3RoKTsKIAlwYXJz
ZShidWZmZXIsIE5VTEwpOwogICAgICAgICBpZiAoYnVmZmVyICE9IHN0YXRpY0J1ZmZlcikgewot
ICAgICAgICAgICAgZnJlZShidWZmZXIpOworICAgICAgICAgICAgZmFzdEZyZWUoYnVmZmVyKTsK
ICAgICAgICAgfQogICAgIH0gZWxzZSB7CiAJcGFyc2UodXJsLCBOVUxMKTsKQEAgLTI2OCw3ICsy
NjksNyBAQCBLVVJMOjpLVVJMKGNvbnN0IFFTdHJpbmcgJnVybCkKICAgICAgICAgY2hhciAqYnVm
ZmVyOwogICAgICAgICBzaXplX3QgYnVmZmVyTGVuZ3RoID0gdXJsLmxlbmd0aCgpICsgNjsgLy8g
NSBmb3IgImZpbGU6IiwgMSBmb3IgdGVybWluYXRvcgogICAgICAgICBpZiAoYnVmZmVyTGVuZ3Ro
ID4gc2l6ZW9mKHN0YXRpY0J1ZmZlcikpIHsKLSAgICAgICAgICAgIGJ1ZmZlciA9IChjaGFyICop
bWFsbG9jKGJ1ZmZlckxlbmd0aCk7CisgICAgICAgICAgICBidWZmZXIgPSAoY2hhciAqKWZhc3RN
YWxsb2MoYnVmZmVyTGVuZ3RoKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIGJ1ZmZl
ciA9IHN0YXRpY0J1ZmZlcjsKICAgICAgICAgfQpAQCAtMjgwLDcgKzI4MSw3IEBAIEtVUkw6OktV
UkwoY29uc3QgUVN0cmluZyAmdXJsKQogICAgICAgICB1cmwuY29weUxhdGluMSgmYnVmZmVyWzVd
KTsKIAlwYXJzZShidWZmZXIsIE5VTEwpOwogICAgICAgICBpZiAoYnVmZmVyICE9IHN0YXRpY0J1
ZmZlcikgewotICAgICAgICAgICAgZnJlZShidWZmZXIpOworICAgICAgICAgICAgZmFzdEZyZWUo
YnVmZmVyKTsKICAgICAgICAgfQogICAgIH0gZWxzZSB7CiAJcGFyc2UodXJsLmFzY2lpKCksICZ1
cmwpOwpAQCAtMjk1LDcgKzI5Niw3IEBAIEtVUkw6OktVUkwoTlNVUkwgKnVybCkKICAgICAgICAg
Y2hhciBzdGF0aWNCdWZmZXJbMjA0OF07CiAgICAgICAgIGNoYXIgKmJ1ZmZlcjsKICAgICAgICAg
aWYgKGJ1ZmZlckxlbmd0aCA+IHNpemVvZihzdGF0aWNCdWZmZXIpKSB7Ci0gICAgICAgICAgICBi
dWZmZXIgPSAoY2hhciAqKW1hbGxvYyhidWZmZXJMZW5ndGgpOworICAgICAgICAgICAgYnVmZmVy
ID0gKGNoYXIgKilmYXN0TWFsbG9jKGJ1ZmZlckxlbmd0aCk7CiAgICAgICAgIH0gZWxzZSB7CiAg
ICAgICAgICAgICBidWZmZXIgPSBzdGF0aWNCdWZmZXI7CiAgICAgICAgIH0KQEAgLTMxMyw3ICsz
MTQsNyBAQCBLVVJMOjpLVVJMKE5TVVJMICp1cmwpCiAgICAgICAgICAgICBwYXJzZShieXRlcywg
TlVMTCk7CiAgICAgICAgIH0KICAgICAgICAgaWYgKGJ1ZmZlciAhPSBzdGF0aWNCdWZmZXIpIHsK
LSAgICAgICAgICAgIGZyZWUoYnVmZmVyKTsKKyAgICAgICAgICAgIGZhc3RGcmVlKGJ1ZmZlcik7
CiAgICAgICAgIH0KICAgICB9CiAgICAgZWxzZSB7CkBAIC0zNjcsMTAgKzM2OCwxMCBAQCBLVVJM
OjpLVVJMKGNvbnN0IEtVUkwgJmJhc2UsIGNvbnN0IFFTdHJpCiAgICAgICAgIGNoYXJzVG9DaG9w
T2ZmRW5kKys7CiAgICAgfQogICAgIGlmIChjaGFyc1RvQ2hvcE9mZkVuZCA+IDApIHsKLSAgICAg
ICAgY2hhciAqbmV3U3RyQnVmZmVyID0gKGNoYXIgKiltYWxsb2MoKGxlbiArIDEpIC0gY2hhcnNU
b0Nob3BPZmZFbmQpOworICAgICAgICBjaGFyICpuZXdTdHJCdWZmZXIgPSAoY2hhciAqKWZhc3RN
YWxsb2MoKGxlbiArIDEpIC0gY2hhcnNUb0Nob3BPZmZFbmQpOwogICAgICAgICBzdHJuY3B5KG5l
d1N0ckJ1ZmZlciwgc3RyLCBsZW4gLSBjaGFyc1RvQ2hvcE9mZkVuZCk7CiAgICAgICAgIG5ld1N0
ckJ1ZmZlcltsZW4gLSBjaGFyc1RvQ2hvcE9mZkVuZF0gPSAnXDAnOwotICAgICAgICBmcmVlKHN0
ckJ1ZmZlcik7CisgICAgICAgIGZhc3RGcmVlKHN0ckJ1ZmZlcik7CiAgICAgICAgIHN0ckJ1ZmZl
ciA9IG5ld1N0ckJ1ZmZlcjsKICAgICAgICAgc3RyID0gc3RyQnVmZmVyOwogICAgIH0KQEAgLTQw
Myw3ICs0MDQsNyBAQCBLVVJMOjpLVVJMKGNvbnN0IEtVUkwgJmJhc2UsIGNvbnN0IFFTdHJpCiAJ
ICAgIFFTdHJpbmcgbmV3VVJMID0gYmFzZS51cmxTdHJpbmcgKyBzdHI7CiAJICAgIHBhcnNlKG5l
d1VSTC5hc2NpaSgpLCAmbmV3VVJMKTsKICAgICAgICAgICAgIGlmIChzdHJCdWZmZXIpIHsKLSAg
ICAgICAgICAgICAgICBmcmVlKHN0ckJ1ZmZlcik7CisgICAgICAgICAgICAgICAgZmFzdEZyZWUo
c3RyQnVmZmVyKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIHJldHVybjsKIAl9CkBAIC00
NTUsNyArNDU2LDcgQEAgS1VSTDo6S1VSTChjb25zdCBLVVJMICZiYXNlLCBjb25zdCBRU3RyaQog
CQlzaXplX3QgYnVmZmVyTGVuZ3RoID0gYmFzZS5wYXRoRW5kUG9zICsgMSArIHN0cmxlbihzdHIp
ICsgMTsKIAogCQlpZiAoYnVmZmVyTGVuZ3RoID4gc2l6ZW9mKHN0YXRpY0J1ZmZlcikpIHsKLQkJ
ICAgIGJ1ZmZlciA9IChjaGFyICopbWFsbG9jKGJ1ZmZlckxlbmd0aCk7CisJCSAgICBidWZmZXIg
PSAoY2hhciAqKWZhc3RNYWxsb2MoYnVmZmVyTGVuZ3RoKTsKIAkJfSBlbHNlIHsKIAkJICAgIGJ1
ZmZlciA9IHN0YXRpY0J1ZmZlcjsKIAkJfQpAQCAtNTMzLDcgKzUzNCw3IEBAIEtVUkw6OktVUkwo
Y29uc3QgS1VSTCAmYmFzZSwgY29uc3QgUVN0cmkKICAgICAgICAgICAgICAgICBBU1NFUlQoc3Ry
bGVuKGJ1ZmZlcikgKyAxIDw9IGJ1ZmZlckxlbmd0aCk7CiAJCQogCQlpZiAoYnVmZmVyICE9IHN0
YXRpY0J1ZmZlcikgewotCQkgICAgZnJlZShidWZmZXIpOworCQkgICAgZmFzdEZyZWUoYnVmZmVy
KTsKIAkJfQogCQkKIAkJYnJlYWs7CkBAIC01NDIsNyArNTQzLDcgQEAgS1VSTDo6S1VSTChjb25z
dCBLVVJMICZiYXNlLCBjb25zdCBRU3RyaQogICAgIH0KICAgICAKICAgICBpZiAoc3RyQnVmZmVy
KSB7Ci0gICAgICAgIGZyZWUoc3RyQnVmZmVyKTsKKyAgICAgICAgZmFzdEZyZWUoc3RyQnVmZmVy
KTsKICAgICB9CiB9CiAKQEAgLTkyNyw5ICs5MjgsOSBAQCBRU3RyaW5nIEtVUkw6OmRlY29kZV9z
dHJpbmcoY29uc3QgUVN0cmluCiAgICAgICAgIGludCBlbmNvZGVkUnVuTGVuZ3RoID0gZW5jb2Rl
ZFJ1bkVuZCAtIGVuY29kZWRSdW5Qb3NpdGlvbjsKICAgICAgICAgaWYgKGVuY29kZWRSdW5MZW5n
dGggKyAxID4gYnVmZmVyTGVuZ3RoKSB7CiAgICAgICAgICAgICBpZiAoYnVmZmVyICE9IHN0YXRp
Y0J1ZmZlcikKLSAgICAgICAgICAgICAgICBmcmVlKGJ1ZmZlcik7CisgICAgICAgICAgICAgICAg
ZmFzdEZyZWUoYnVmZmVyKTsKICAgICAgICAgICAgIGJ1ZmZlckxlbmd0aCA9IG1hbGxvY19nb29k
X3NpemUoZW5jb2RlZFJ1bkxlbmd0aCArIDEpOwotICAgICAgICAgICAgYnVmZmVyID0gc3RhdGlj
X2Nhc3Q8Y2hhciAqPihtYWxsb2MoYnVmZmVyTGVuZ3RoKSk7CisgICAgICAgICAgICBidWZmZXIg
PSBzdGF0aWNfY2FzdDxjaGFyICo+KGZhc3RNYWxsb2MoYnVmZmVyTGVuZ3RoKSk7CiAgICAgICAg
IH0KICAgICAgICAgdXJsU3RyaW5nLmNvcHlMYXRpbjEoYnVmZmVyLCBlbmNvZGVkUnVuUG9zaXRp
b24sIGVuY29kZWRSdW5MZW5ndGgpOwogCkBAIC05NTYsNyArOTU3LDcgQEAgUVN0cmluZyBLVVJM
OjpkZWNvZGVfc3RyaW5nKGNvbnN0IFFTdHJpbgogICAgIHJlc3VsdC5hcHBlbmQodXJsU3RyaW5n
Lm1pZChkZWNvZGVkUG9zaXRpb24sIGxlbmd0aCAtIGRlY29kZWRQb3NpdGlvbikpOwogCiAgICAg
aWYgKGJ1ZmZlciAhPSBzdGF0aWNCdWZmZXIpCi0gICAgICAgIGZyZWUoYnVmZmVyKTsKKyAgICAg
ICAgZmFzdEZyZWUoYnVmZmVyKTsKIAogICAgIHJldHVybiByZXN1bHQ7CiB9CkBAIC0xMjUxLDcg
KzEyNTIsNyBAQCB2b2lkIEtVUkw6OnBhcnNlKGNvbnN0IGNoYXIgKnVybCwgY29uc3QgCiAgICAg
aWYgKGJ1ZmZlckxlbmd0aCA8PSBzaXplb2Yoc3RhdGljQnVmZmVyKSkgewogCWJ1ZmZlciA9IHN0
YXRpY0J1ZmZlcjsKICAgICB9IGVsc2UgewotCWJ1ZmZlciA9IChjaGFyICopbWFsbG9jKGJ1ZmZl
ckxlbmd0aCk7CisJYnVmZmVyID0gKGNoYXIgKilmYXN0TWFsbG9jKGJ1ZmZlckxlbmd0aCk7CiAg
ICAgfQogCiAgICAgY2hhciAqcCA9IGJ1ZmZlcjsKQEAgLTEzNzcsMTIgKzEzNzgsMTIgQEAgdm9p
ZCBLVVJMOjpwYXJzZShjb25zdCBjaGFyICp1cmwsIGNvbnN0IAogICAgICAgICBpZiAocGF0aEJ1
ZmZlckxlbmd0aCA8PSBzaXplb2Yoc3RhdGljX3BhdGhfYnVmZmVyKSkgewogICAgICAgICAgICAg
cGF0aF9idWZmZXIgPSBzdGF0aWNfcGF0aF9idWZmZXI7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAg
ICAgICAgICBwYXRoX2J1ZmZlciA9IChjaGFyICopbWFsbG9jKHBhdGhCdWZmZXJMZW5ndGgpOwor
ICAgICAgICAgICAgcGF0aF9idWZmZXIgPSAoY2hhciAqKWZhc3RNYWxsb2MocGF0aEJ1ZmZlckxl
bmd0aCk7CiAgICAgICAgIH0KICAgICAgICAgY29weVBhdGhSZW1vdmluZ0RvdHMocGF0aF9idWZm
ZXIsIHVybCwgcGF0aFN0YXJ0LCBwYXRoRW5kKTsKICAgICAgICAgYXBwZW5kRXNjYXBpbmdCYWRD
aGFycyhwLCBwYXRoX2J1ZmZlciwgc3RybGVuKHBhdGhfYnVmZmVyKSk7CiAgICAgICAgIGlmIChw
YXRoX2J1ZmZlciAhPSBzdGF0aWNfcGF0aF9idWZmZXIpIHsKLSAgICAgICAgICAgIGZyZWUocGF0
aF9idWZmZXIpOworICAgICAgICAgICAgZmFzdEZyZWUocGF0aF9idWZmZXIpOwogICAgICAgICB9
CiAgICAgfQogICAgIGVsc2UgewpAQCAtMTQxNCw3ICsxNDE1LDcgQEAgdm9pZCBLVVJMOjpwYXJz
ZShjb25zdCBjaGFyICp1cmwsIGNvbnN0IAogICAgIEFTU0VSVChwIC0gYnVmZmVyIDw9IChpbnQp
YnVmZmVyTGVuZ3RoKTsKIAkJCiAgICAgaWYgKGJ1ZmZlciAhPSBzdGF0aWNCdWZmZXIpIHsKLQlm
cmVlKGJ1ZmZlcik7CisJZmFzdEZyZWUoYnVmZmVyKTsKICAgICB9CiB9CiAKQEAgLTE0NDUsNyAr
MTQ0Niw3IEBAIFFTdHJpbmcgS1VSTDo6ZW5jb2RlX3N0cmluZyhjb25zdCBRU3RyaW4KICAgICBp
ZiAoYnVmZmVyTGVuZ3RoIDw9IHNpemVvZihzdGF0aWNCdWZmZXIpKSB7CiAJYnVmZmVyID0gc3Rh
dGljQnVmZmVyOwogICAgIH0gZWxzZSB7Ci0JYnVmZmVyID0gKGNoYXIgKiltYWxsb2MoYnVmZmVy
TGVuZ3RoKTsKKwlidWZmZXIgPSAoY2hhciAqKWZhc3RNYWxsb2MoYnVmZmVyTGVuZ3RoKTsKICAg
ICB9CiAgICAgCiAgICAgY2hhciAqcCA9IGJ1ZmZlcjsKQEAgLTE0NjgsNyArMTQ2OSw3IEBAIFFT
dHJpbmcgS1VSTDo6ZW5jb2RlX3N0cmluZyhjb25zdCBRU3RyaW4KICAgICBBU1NFUlQocCAtIGJ1
ZmZlciA8PSAoaW50KWJ1ZmZlckxlbmd0aCk7CiAJCQogICAgIGlmIChidWZmZXIgIT0gc3RhdGlj
QnVmZmVyKSB7Ci0JZnJlZShidWZmZXIpOworCWZhc3RGcmVlKGJ1ZmZlcik7CiAgICAgfQogCiAg
ICAgcmV0dXJuIHJlc3VsdDsKQEAgLTE3MTgsNyArMTcxOSw3IEBAIHN0YXRpYyBjaGFyICplbmNv
ZGVSZWxhdGl2ZVN0cmluZyhjb25zdCAKICAgICAgICAgUUNTdHJpbmcgb3RoZXJEZWNvZGVkID0g
b3RoZXJDb2RlYy0+ZnJvbVVuaWNvZGUocy5taWQocGF0aEVuZCkpOwogICAgICAgICBpbnQgcGF0
aERlY29kZWRMZW5ndGggPSBwYXRoRGVjb2RlZC5sZW5ndGgoKTsKICAgICAgICAgaW50IG90aGVy
RGVjb2RlZExlbmd0aCA9IG90aGVyRGVjb2RlZC5sZW5ndGgoKTsKLSAgICAgICAgc3RyQnVmZmVy
ID0gc3RhdGljX2Nhc3Q8Y2hhciAqPihtYWxsb2MocGF0aERlY29kZWRMZW5ndGggKyBvdGhlckRl
Y29kZWRMZW5ndGggKyAxKSk7CisgICAgICAgIHN0ckJ1ZmZlciA9IHN0YXRpY19jYXN0PGNoYXIg
Kj4oZmFzdE1hbGxvYyhwYXRoRGVjb2RlZExlbmd0aCArIG90aGVyRGVjb2RlZExlbmd0aCArIDEp
KTsKICAgICAgICAgbWVtY3B5KHN0ckJ1ZmZlciwgcGF0aERlY29kZWQsIHBhdGhEZWNvZGVkTGVu
Z3RoKTsKICAgICAgICAgbWVtY3B5KHN0ckJ1ZmZlciArIHBhdGhEZWNvZGVkTGVuZ3RoLCBvdGhl
ckRlY29kZWQsIG90aGVyRGVjb2RlZExlbmd0aCk7CiAgICAgICAgIHN0ckJ1ZmZlcltwYXRoRGVj
b2RlZExlbmd0aCArIG90aGVyRGVjb2RlZExlbmd0aF0gPSAwOwpJbmRleDogV2ViQ29yZS9rd3Ev
S1dRS1dpbi5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9rd3EvS1dR
S1dpbi5tbSx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS45CmRpZmYgLXUgLXAgLXIxLjkgV2ViQ29y
ZS9rd3EvS1dRS1dpbi5tbQotLS0gV2ViQ29yZS9rd3EvS1dRS1dpbi5tbQkyMiBKYW4gMjAwMyAw
MDoxMjozNSAtMDAwMAkxLjkKKysrIFdlYkNvcmUva3dxL0tXUUtXaW4ubW0JMyBPY3QgMjAwNSAw
NDoyMzowNyAtMDAwMApAQCAtMjQsNiArMjQsNyBAQAogICovCiAKICNpbXBvcnQgIktXUUtXaW4u
aCIKKyNpbmNsdWRlICJjb25maWcuaCIKIAogI2ltcG9ydCAiS1dRV2lkZ2V0LmgiCiAKSW5kZXg6
IFdlYkNvcmUva3dxL0tXUUtXaW5Nb2R1bGUubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9y
b290L1dlYkNvcmUva3dxL0tXUUtXaW5Nb2R1bGUubW0sdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEu
MTMKZGlmZiAtdSAtcCAtcjEuMTMgV2ViQ29yZS9rd3EvS1dRS1dpbk1vZHVsZS5tbQotLS0gV2Vi
Q29yZS9rd3EvS1dRS1dpbk1vZHVsZS5tbQkxNCBEZWMgMjAwMyAwMDo0MzoxMyAtMDAwMAkxLjEz
CisrKyBXZWJDb3JlL2t3cS9LV1FLV2luTW9kdWxlLm1tCTMgT2N0IDIwMDUgMDQ6MjM6MDcgLTAw
MDAKQEAgLTI0LDYgKzI0LDcgQEAKICAqLwogCiAjaW1wb3J0ICJLV1FLV2luTW9kdWxlLmgiCisj
aW5jbHVkZSAiY29uZmlnLmgiCiAKIFFSZWN0IEtXaW5Nb2R1bGU6OndvcmtBcmVhKCkgY29uc3QK
IHsKSW5kZXg6IFdlYkNvcmUva3dxL0tXUUxhYmVsLm1tCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9j
dnMvcm9vdC9XZWJDb3JlL2t3cS9LV1FMYWJlbC5tbSx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS45
CmRpZmYgLXUgLXAgLXIxLjkgV2ViQ29yZS9rd3EvS1dRTGFiZWwubW0KLS0tIFdlYkNvcmUva3dx
L0tXUUxhYmVsLm1tCTIyIEphbiAyMDAzIDAwOjEyOjM1IC0wMDAwCTEuOQorKysgV2ViQ29yZS9r
d3EvS1dRTGFiZWwubW0JMyBPY3QgMjAwNSAwNDoyMzowNyAtMDAwMApAQCAtMjQsNiArMjQsNyBA
QAogICovCiAKICNpbXBvcnQgIktXUUxhYmVsLmgiCisjaW5jbHVkZSAiY29uZmlnLmgiCiAKIFFM
YWJlbDo6UUxhYmVsKGNvbnN0IFFTdHJpbmcgJiwgUVdpZGdldCAqKQogewpJbmRleDogV2ViQ29y
ZS9rd3EvS1dRTGluZUVkaXQubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNv
cmUva3dxL0tXUUxpbmVFZGl0Lm1tLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjcxCmRpZmYgLXUg
LXAgLXIxLjcxIFdlYkNvcmUva3dxL0tXUUxpbmVFZGl0Lm1tCi0tLSBXZWJDb3JlL2t3cS9LV1FM
aW5lRWRpdC5tbQkyNCBTZXAgMjAwNSAxMTowNTozMyAtMDAwMAkxLjcxCisrKyBXZWJDb3JlL2t3
cS9LV1FMaW5lRWRpdC5tbQkzIE9jdCAyMDA1IDA0OjIzOjA3IC0wMDAwCkBAIC0yNCw2ICsyNCw3
IEBACiAgKi8KIAogI2ltcG9ydCAiS1dRTGluZUVkaXQuaCIKKyNpbmNsdWRlICJjb25maWcuaCIK
IAogI2ltcG9ydCAiS1dRQnV0dG9uLmgiCiAjaW1wb3J0ICJLV1FFeGNlcHRpb25zLmgiCkluZGV4
OiBXZWJDb3JlL2t3cS9LV1FMaXN0Qm94Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9v
dC9XZWJDb3JlL2t3cS9LV1FMaXN0Qm94Lm1tLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjU4CmRp
ZmYgLXUgLXAgLXIxLjU4IFdlYkNvcmUva3dxL0tXUUxpc3RCb3gubW0KLS0tIFdlYkNvcmUva3dx
L0tXUUxpc3RCb3gubW0JMjcgU2VwIDIwMDUgMjI6Mzc6MjkgLTAwMDAJMS41OAorKysgV2ViQ29y
ZS9rd3EvS1dRTGlzdEJveC5tbQkzIE9jdCAyMDA1IDA0OjIzOjA3IC0wMDAwCkBAIC0yNCw2ICsy
NCw3IEBACiAgKi8KIAogI2ltcG9ydCAiS1dRTGlzdEJveC5oIgorI2luY2x1ZGUgImNvbmZpZy5o
IgogCiAjaW1wb3J0IDxreG1sY29yZS9Bc3NlcnRpb25zLmg+CiAjaW1wb3J0ICJLV1FFeGNlcHRp
b25zLmgiCkluZGV4OiBXZWJDb3JlL2t3cS9LV1FMaXN0SW1wbC5tbQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBm
aWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9rd3EvS1dRTGlzdEltcGwubW0sdgpyZXRyaWV2aW5nIHJl
dmlzaW9uIDEuMjIKZGlmZiAtdSAtcCAtcjEuMjIgV2ViQ29yZS9rd3EvS1dRTGlzdEltcGwubW0K
LS0tIFdlYkNvcmUva3dxL0tXUUxpc3RJbXBsLm1tCTI3IFNlcCAyMDA1IDIyOjM3OjMwIC0wMDAw
CTEuMjIKKysrIFdlYkNvcmUva3dxL0tXUUxpc3RJbXBsLm1tCTMgT2N0IDIwMDUgMDQ6MjM6MDcg
LTAwMDAKQEAgLTI0LDYgKzI0LDcgQEAKICAqLwogCiAjaW1wb3J0ICJLV1FMaXN0SW1wbC5oIgor
I2luY2x1ZGUgImNvbmZpZy5oIgogCiAjaW1wb3J0IDxjc3RkZGVmPgogI2ltcG9ydCA8YWxnb3Jp
dGhtPgpAQCAtMzEsNyArMzIsNyBAQAogI2ltcG9ydCA8a3htbGNvcmUvQXNzZXJ0aW9ucy5oPgog
I2ltcG9ydCAia3htbGNvcmUvRmFzdE1hbGxvYy5oIgogCi1jbGFzcyBLV1FMaXN0Tm9kZSA6IHB1
YmxpYyBGYXN0QWxsb2NhdGVkCitjbGFzcyBLV1FMaXN0Tm9kZQogewogcHVibGljOgogICAgIEtX
UUxpc3ROb2RlKHZvaWQgKmQpIDogZGF0YShkKSwgbmV4dChOVUxMKSwgcHJldihOVUxMKSB7IH0K
SW5kZXg6IFdlYkNvcmUva3dxL0tXUUxvYWRlci5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3Zz
L3Jvb3QvV2ViQ29yZS9rd3EvS1dRTG9hZGVyLm1tLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjEy
MgpkaWZmIC11IC1wIC1yMS4xMjIgV2ViQ29yZS9rd3EvS1dRTG9hZGVyLm1tCi0tLSBXZWJDb3Jl
L2t3cS9LV1FMb2FkZXIubW0JOCBTZXAgMjAwNSAyMTozNTozMCAtMDAwMAkxLjEyMgorKysgV2Vi
Q29yZS9rd3EvS1dRTG9hZGVyLm1tCTMgT2N0IDIwMDUgMDQ6MjM6MDcgLTAwMDAKQEAgLTI0LDYg
KzI0LDcgQEAKICAqLwogCiAjaW1wb3J0ICJLV1FMb2FkZXIuaCIKKyNpbmNsdWRlICJjb25maWcu
aCIKIAogI2ltcG9ydCAiS1dRRXhjZXB0aW9ucy5oIgogI2ltcG9ydCAiS1dRRm9ybURhdGEuaCIK
QEAgLTI3NSw3ICsyNzYsNyBAQCBib29sIEtXUUlzUmVzcG9uc2VVUkxFcXVhbFRvVVJMKE5TVVJM
UmVzCiAgICAgLy8gTmFzdHkgaGFjayB0byBkaXJlY3RseSBjb21wYXJlIHN0cmluZ3MgYnVmZmVy
cyBvZiBOU1N0cmluZwogICAgIC8vIGFuZCBET01TdHJpbmcuICBXZSBkbyB0aGlzIGZvciBzcGVl
ZC4KICAgICBpZiAoW3VybFN0cmluZyBsZW5ndGhdID4gTE9DQUxfU1RSSU5HX0JVRkZFUl9TSVpF
KSB7Ci0gICAgICAgIHVybFN0cmluZ0NoYXJhY3RlcnMgPSAodW5pY2hhciAqKW1hbGxvYyAoc2l6
ZW9mKHVuaWNoYXIpKlt1cmxTdHJpbmcgbGVuZ3RoXSk7CisgICAgICAgIHVybFN0cmluZ0NoYXJh
Y3RlcnMgPSAodW5pY2hhciAqKWZhc3RNYWxsb2Moc2l6ZW9mKHVuaWNoYXIpKlt1cmxTdHJpbmcg
bGVuZ3RoXSk7CiAgICAgfQogICAgIGVsc2UgewogICAgICAgICB1cmxTdHJpbmdDaGFyYWN0ZXJz
ID0gX2J1ZmZlcjsKQEAgLTI4Nyw3ICsyODgsNyBAQCBib29sIEtXUUlzUmVzcG9uc2VVUkxFcXVh
bFRvVVJMKE5TVVJMUmVzCiAJcmV0ID0gdHJ1ZTsKICAgICAKICAgICBpZiAodXJsU3RyaW5nQ2hh
cmFjdGVycyAhPSBfYnVmZmVyKQotICAgICAgICBmcmVlICh1cmxTdHJpbmdDaGFyYWN0ZXJzKTsK
KyAgICAgICAgZmFzdEZyZWUodXJsU3RyaW5nQ2hhcmFjdGVycyk7CiAgICAgICAgIAogICAgIHJl
dHVybiByZXQ7CiB9CkluZGV4OiBXZWJDb3JlL2t3cS9LV1FNYXBJbXBsLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpS
Q1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva3dxL0tXUU1hcEltcGwuaCx2CnJldHJpZXZpbmcg
cmV2aXNpb24gMS4xMApkaWZmIC11IC1wIC1yMS4xMCBXZWJDb3JlL2t3cS9LV1FNYXBJbXBsLmgK
LS0tIFdlYkNvcmUva3dxL0tXUU1hcEltcGwuaAkyNyBTZXAgMjAwNSAyMjozNzozMCAtMDAwMAkx
LjEwCisrKyBXZWJDb3JlL2t3cS9LV1FNYXBJbXBsLmgJMyBPY3QgMjAwNSAwNDoyMzowNyAtMDAw
MApAQCAtMzMsNyArMzMsNyBAQAogCiBjbGFzcyBLV1FNYXBJbXBsOwogCi1jbGFzcyBLV1FNYXBO
b2RlSW1wbCA6IHB1YmxpYyBGYXN0QWxsb2NhdGVkCitjbGFzcyBLV1FNYXBOb2RlSW1wbAogewog
cHJvdGVjdGVkOgogICAgIHR5cGVkZWYgZW51bSB7IFJlZCA9IDAsIEJsYWNrID0gMSB9IEtXUU1h
cE5vZGVDb2xvcjsKQEAgLTY0LDcgKzY0LDcgQEAgcHJvdGVjdGVkOgogI2VuZGlmCiB9OwogCi1j
bGFzcyBLV1FNYXBJdGVyYXRvckltcGwgOiBwdWJsaWMgRmFzdEFsbG9jYXRlZCB7CitjbGFzcyBL
V1FNYXBJdGVyYXRvckltcGwgewogcHJvdGVjdGVkOgogICAgIEtXUU1hcE5vZGVJbXBsICpub2Rl
OwogCkluZGV4OiBXZWJDb3JlL2t3cS9LV1FNYXBJbXBsLm1tCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6
IC9jdnMvcm9vdC9XZWJDb3JlL2t3cS9LV1FNYXBJbXBsLm1tLHYKcmV0cmlldmluZyByZXZpc2lv
biAxLjExCmRpZmYgLXUgLXAgLXIxLjExIFdlYkNvcmUva3dxL0tXUU1hcEltcGwubW0KLS0tIFdl
YkNvcmUva3dxL0tXUU1hcEltcGwubW0JMjcgU2VwIDIwMDUgMjI6Mzc6MzAgLTAwMDAJMS4xMQor
KysgV2ViQ29yZS9rd3EvS1dRTWFwSW1wbC5tbQkzIE9jdCAyMDA1IDA0OjIzOjA3IC0wMDAwCkBA
IC0yNCw2ICsyNCw3IEBACiAgKi8KIAogI2ltcG9ydCAiS1dRTWFwSW1wbC5oIgorI2luY2x1ZGUg
ImNvbmZpZy5oIgogCiBLV1FNYXBOb2RlSW1wbDo6S1dRTWFwTm9kZUltcGwoKSA6CiAgICAgcHJl
dihOVUxMKSwKQEAgLTExNSw3ICsxMTYsNyBAQCB2b2lkIEtXUU1hcEl0ZXJhdG9ySW1wbDo6aW5j
cmVtZW50SW50ZXJuCiAKIC8vIEtXUU1hcEltcGxQcml2YXRlCiAKLWNsYXNzIEtXUU1hcEltcGw6
OktXUU1hcFByaXZhdGUgOiBwdWJsaWMgRmFzdEFsbG9jYXRlZAorY2xhc3MgS1dRTWFwSW1wbDo6
S1dRTWFwUHJpdmF0ZQogewogcHVibGljOgogICAgIEtXUU1hcFByaXZhdGUoS1dRTWFwTm9kZUlt
cGwgKm5vZGUsCkluZGV4OiBXZWJDb3JlL2t3cS9LV1FNb3ZpZS5tbQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBm
aWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9rd3EvS1dRTW92aWUubW0sdgpyZXRyaWV2aW5nIHJldmlz
aW9uIDEuNwpkaWZmIC11IC1wIC1yMS43IFdlYkNvcmUva3dxL0tXUU1vdmllLm1tCi0tLSBXZWJD
b3JlL2t3cS9LV1FNb3ZpZS5tbQkyMiBKYW4gMjAwMyAwMDoxMjozNSAtMDAwMAkxLjcKKysrIFdl
YkNvcmUva3dxL0tXUU1vdmllLm1tCTMgT2N0IDIwMDUgMDQ6MjM6MDcgLTAwMDAKQEAgLTI0LDYg
KzI0LDcgQEAKICAqLwogCiAjaW1wb3J0ICJLV1FNb3ZpZS5oIgorI2luY2x1ZGUgImNvbmZpZy5o
IgogCiBjb25zdCBRUmVjdCAmUU1vdmllOjpnZXRWYWxpZFJlY3QoKSBjb25zdAogewpJbmRleDog
V2ViQ29yZS9rd3EvS1dRT2JqZWN0Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9X
ZWJDb3JlL2t3cS9LV1FPYmplY3QubW0sdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNDcKZGlmZiAt
dSAtcCAtcjEuNDcgV2ViQ29yZS9rd3EvS1dRT2JqZWN0Lm1tCi0tLSBXZWJDb3JlL2t3cS9LV1FP
YmplY3QubW0JMjcgU2VwIDIwMDUgMjI6Mzc6MzAgLTAwMDAJMS40NworKysgV2ViQ29yZS9rd3Ev
S1dRT2JqZWN0Lm1tCTMgT2N0IDIwMDUgMDQ6MjM6MDcgLTAwMDAKQEAgLTI0LDYgKzI0LDcgQEAK
ICAqLwogCiAjaW1wb3J0ICJLV1FPYmplY3QuaCIKKyNpbmNsdWRlICJjb25maWcuaCIKIAogI2lt
cG9ydCAiS1dRVmFyaWFudC5oIgogI2ltcG9ydCA8a3htbGNvcmUvQXNzZXJ0aW9ucy5oPgpJbmRl
eDogV2ViQ29yZS9rd3EvS1dRUGFnZVN0YXRlLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMv
cm9vdC9XZWJDb3JlL2t3cS9LV1FQYWdlU3RhdGUubW0sdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEu
MjAKZGlmZiAtdSAtcCAtcjEuMjAgV2ViQ29yZS9rd3EvS1dRUGFnZVN0YXRlLm1tCi0tLSBXZWJD
b3JlL2t3cS9LV1FQYWdlU3RhdGUubW0JMjcgU2VwIDIwMDUgMjI6Mzc6MzAgLTAwMDAJMS4yMAor
KysgV2ViQ29yZS9rd3EvS1dRUGFnZVN0YXRlLm1tCTMgT2N0IDIwMDUgMDQ6MjM6MDcgLTAwMDAK
QEAgLTI0LDYgKzI0LDcgQEAKICAqLwogCiAjaW1wb3J0ICJLV1FQYWdlU3RhdGUuaCIKKyNpbmNs
dWRlICJjb25maWcuaCIKIAogI2ltcG9ydCA8SmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIuaD4K
ICNpbXBvcnQgPEphdmFTY3JpcHRDb3JlL3Byb3BlcnR5X21hcC5oPgpJbmRleDogV2ViQ29yZS9r
d3EvS1dRUGFpbnREZXZpY2VNZXRyaWNzLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9v
dC9XZWJDb3JlL2t3cS9LV1FQYWludERldmljZU1ldHJpY3MubW0sdgpyZXRyaWV2aW5nIHJldmlz
aW9uIDEuMTUKZGlmZiAtdSAtcCAtcjEuMTUgV2ViQ29yZS9rd3EvS1dRUGFpbnREZXZpY2VNZXRy
aWNzLm1tCi0tLSBXZWJDb3JlL2t3cS9LV1FQYWludERldmljZU1ldHJpY3MubW0JNCBBcHIgMjAw
MyAxNjo1NjowMiAtMDAwMAkxLjE1CisrKyBXZWJDb3JlL2t3cS9LV1FQYWludERldmljZU1ldHJp
Y3MubW0JMyBPY3QgMjAwNSAwNDoyMzowNyAtMDAwMApAQCAtMjQsNiArMjQsNyBAQAogICovCiAK
ICNpbXBvcnQgIktXUVBhaW50RGV2aWNlTWV0cmljcy5oIgorI2luY2x1ZGUgImNvbmZpZy5oIgog
CiBRUGFpbnREZXZpY2VNZXRyaWNzOjpRUGFpbnREZXZpY2VNZXRyaWNzKGNvbnN0IFFQYWludERl
dmljZSAqKQogewpJbmRleDogV2ViQ29yZS9rd3EvS1dRUGFpbnRlci5tbQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJD
UyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9rd3EvS1dRUGFpbnRlci5tbSx2CnJldHJpZXZpbmcg
cmV2aXNpb24gMS4xNDMKZGlmZiAtdSAtcCAtcjEuMTQzIFdlYkNvcmUva3dxL0tXUVBhaW50ZXIu
bW0KLS0tIFdlYkNvcmUva3dxL0tXUVBhaW50ZXIubW0JMjcgU2VwIDIwMDUgMjI6Mzc6MzAgLTAw
MDAJMS4xNDMKKysrIFdlYkNvcmUva3dxL0tXUVBhaW50ZXIubW0JMyBPY3QgMjAwNSAwNDoyMzow
OCAtMDAwMApAQCAtMjQsNiArMjQsNyBAQAogICovCiAKICNpbXBvcnQgIktXUVBhaW50ZXIuaCIK
KyNpbmNsdWRlICJjb25maWcuaCIKIAogI2ltcG9ydCA8a3htbGNvcmUvQXNzZXJ0aW9ucy5oPgog
I2ltcG9ydCAiS1dRQnJ1c2guaCIKSW5kZXg6IFdlYkNvcmUva3dxL0tXUVBhbGV0dGUubW0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva3dxL0tXUVBhbGV0dGUubW0sdgpy
ZXRyaWV2aW5nIHJldmlzaW9uIDEuMTEKZGlmZiAtdSAtcCAtcjEuMTEgV2ViQ29yZS9rd3EvS1dR
UGFsZXR0ZS5tbQotLS0gV2ViQ29yZS9rd3EvS1dRUGFsZXR0ZS5tbQk1IEp1bCAyMDA1IDA4OjIy
OjIxIC0wMDAwCTEuMTEKKysrIFdlYkNvcmUva3dxL0tXUVBhbGV0dGUubW0JMyBPY3QgMjAwNSAw
NDoyMzowOCAtMDAwMApAQCAtMjQsNiArMjQsNyBAQAogICovCiAKICNpbXBvcnQgIktXUVBhbGV0
dGUuaCIKKyNpbmNsdWRlICJjb25maWcuaCIKICNpbXBvcnQgIktXUUxvZ2dpbmcuaCIKIAogCklu
ZGV4OiBXZWJDb3JlL2t3cS9LV1FQZW4ubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290
L1dlYkNvcmUva3dxL0tXUVBlbi5tbSx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS45CmRpZmYgLXUg
LXAgLXIxLjkgV2ViQ29yZS9rd3EvS1dRUGVuLm1tCi0tLSBXZWJDb3JlL2t3cS9LV1FQZW4ubW0J
MjIgSmFuIDIwMDMgMDA6MTI6MzUgLTAwMDAJMS45CisrKyBXZWJDb3JlL2t3cS9LV1FQZW4ubW0J
MyBPY3QgMjAwNSAwNDoyMzowOCAtMDAwMApAQCAtMjQsNiArMjQsNyBAQAogICovCiAKICNpbXBv
cnQgIktXUVBlbi5oIgorI2luY2x1ZGUgImNvbmZpZy5oIgogCiBRUGVuOjpRUGVuKGNvbnN0IFFD
b2xvciAmY29sb3IsIHVpbnQgd2lkdGgsIFBlblN0eWxlIHN0eWxlKSA6IHBlblN0eWxlKHN0eWxl
KSwgcGVuV2lkdGgod2lkdGgpLCBwZW5Db2xvcihjb2xvcikKIHsKSW5kZXg6IFdlYkNvcmUva3dx
L0tXUVBpeG1hcC5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9rd3Ev
S1dRUGl4bWFwLm1tLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjUwCmRpZmYgLXUgLXAgLXIxLjUw
IFdlYkNvcmUva3dxL0tXUVBpeG1hcC5tbQotLS0gV2ViQ29yZS9rd3EvS1dRUGl4bWFwLm1tCTI3
IEF1ZyAyMDA1IDAwOjE0OjIyIC0wMDAwCTEuNTAKKysrIFdlYkNvcmUva3dxL0tXUVBpeG1hcC5t
bQkzIE9jdCAyMDA1IDA0OjIzOjA4IC0wMDAwCkBAIC0yMyw2ICsyMyw3IEBACiAgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLiAKICAqLwogI2ltcG9ydCAibG9hZGVyLmgiCisjaW5jbHVkZSAiY29uZmlnLmgiCiAKICNp
bXBvcnQgIktXUVBpeG1hcC5oIgogI2ltcG9ydCAiS1dRRm91bmRhdGlvbkV4dHJhcy5oIgpJbmRl
eDogV2ViQ29yZS9rd3EvS1dRUG9pbnQubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290
L1dlYkNvcmUva3dxL0tXUVBvaW50Lm1tLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjExCmRpZmYg
LXUgLXAgLXIxLjExIFdlYkNvcmUva3dxL0tXUVBvaW50Lm1tCi0tLSBXZWJDb3JlL2t3cS9LV1FQ
b2ludC5tbQkzMCBTZXAgMjAwNSAwNDowNDo1NyAtMDAwMAkxLjExCisrKyBXZWJDb3JlL2t3cS9L
V1FQb2ludC5tbQkzIE9jdCAyMDA1IDA0OjIzOjA4IC0wMDAwCkBAIC0yNCw2ICsyNCw3IEBACiAg
Ki8KIAogI2ltcG9ydCAiS1dRUG9pbnRBcnJheS5oIgorI2luY2x1ZGUgImNvbmZpZy5oIgogCiBR
UG9pbnQ6OlFQb2ludCgpIDogeENvb3JkKDApLCB5Q29vcmQoMCkKIHsKSW5kZXg6IFdlYkNvcmUv
a3dxL0tXUVBvaW50QXJyYXkubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNv
cmUva3dxL0tXUVBvaW50QXJyYXkubW0sdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMTAKZGlmZiAt
dSAtcCAtcjEuMTAgV2ViQ29yZS9rd3EvS1dRUG9pbnRBcnJheS5tbQotLS0gV2ViQ29yZS9rd3Ev
S1dRUG9pbnRBcnJheS5tbQk3IEp1bCAyMDA1IDA2OjI1OjAyIC0wMDAwCTEuMTAKKysrIFdlYkNv
cmUva3dxL0tXUVBvaW50QXJyYXkubW0JMyBPY3QgMjAwNSAwNDoyMzowOCAtMDAwMApAQCAtMjQs
NiArMjQsNyBAQAogICovCiAKICNpbXBvcnQgIktXUVBvaW50QXJyYXkuaCIKKyNpbmNsdWRlICJj
b25maWcuaCIKICNpbXBvcnQgPHN0ZGFyZy5oPgogCiAjaW1wb3J0ICJLV1FSZWN0LmgiCkluZGV4
OiBXZWJDb3JlL2t3cS9LV1FQdHJEaWN0SW1wbC5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3Zz
L3Jvb3QvV2ViQ29yZS9rd3EvS1dRUHRyRGljdEltcGwubW0sdgpyZXRyaWV2aW5nIHJldmlzaW9u
IDEuNwpkaWZmIC11IC1wIC1yMS43IFdlYkNvcmUva3dxL0tXUVB0ckRpY3RJbXBsLm1tCi0tLSBX
ZWJDb3JlL2t3cS9LV1FQdHJEaWN0SW1wbC5tbQkyMiBKYW4gMjAwMyAwMDoxMjozNSAtMDAwMAkx
LjcKKysrIFdlYkNvcmUva3dxL0tXUVB0ckRpY3RJbXBsLm1tCTMgT2N0IDIwMDUgMDQ6MjM6MDgg
LTAwMDAKQEAgLTI0LDYgKzI0LDcgQEAKICAqLwogCiAjaW1wb3J0ICJLV1FQdHJEaWN0SW1wbC5o
IgorI2luY2x1ZGUgImNvbmZpZy5oIgogCiAjaW1wb3J0IDxuZXc+CiAKSW5kZXg6IFdlYkNvcmUv
a3dxL0tXUVB1c2hCdXR0b24ubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNv
cmUva3dxL0tXUVB1c2hCdXR0b24ubW0sdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMTYKZGlmZiAt
dSAtcCAtcjEuMTYgV2ViQ29yZS9rd3EvS1dRUHVzaEJ1dHRvbi5tbQotLS0gV2ViQ29yZS9rd3Ev
S1dRUHVzaEJ1dHRvbi5tbQkyNyBPY3QgMjAwMyAyMDo1MToyNSAtMDAwMAkxLjE2CisrKyBXZWJD
b3JlL2t3cS9LV1FQdXNoQnV0dG9uLm1tCTMgT2N0IDIwMDUgMDQ6MjM6MDggLTAwMDAKQEAgLTI0
LDYgKzI0LDcgQEAKICAqLwogCiAjaW1wb3J0ICJLV1FQdXNoQnV0dG9uLmgiCisjaW5jbHVkZSAi
Y29uZmlnLmgiCiAKICNpbXBvcnQgIktXUUV4Y2VwdGlvbnMuaCIKIApJbmRleDogV2ViQ29yZS9r
d3EvS1dRUmVjdC5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9rd3Ev
S1dRUmVjdC5tbSx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4xNgpkaWZmIC11IC1wIC1yMS4xNiBX
ZWJDb3JlL2t3cS9LV1FSZWN0Lm1tCi0tLSBXZWJDb3JlL2t3cS9LV1FSZWN0Lm1tCTMwIFNlcCAy
MDA1IDA0OjA0OjU3IC0wMDAwCTEuMTYKKysrIFdlYkNvcmUva3dxL0tXUVJlY3QubW0JMyBPY3Qg
MjAwNSAwNDoyMzowOCAtMDAwMApAQCAtMjQsNiArMjQsNyBAQAogICovCiAKICNpbXBvcnQgIktX
UVJlY3QuaCIKKyNpbmNsdWRlICJjb25maWcuaCIKIAogI2ltcG9ydCA8YWxnb3JpdGhtPgogCklu
ZGV4OiBXZWJDb3JlL2t3cS9LV1FSZWdFeHAubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9y
b290L1dlYkNvcmUva3dxL0tXUVJlZ0V4cC5tbSx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4xNApk
aWZmIC11IC1wIC1yMS4xNCBXZWJDb3JlL2t3cS9LV1FSZWdFeHAubW0KLS0tIFdlYkNvcmUva3dx
L0tXUVJlZ0V4cC5tbQk5IEp1bCAyMDA1IDAxOjAxOjEwIC0wMDAwCTEuMTQKKysrIFdlYkNvcmUv
a3dxL0tXUVJlZ0V4cC5tbQkzIE9jdCAyMDA1IDA0OjIzOjA4IC0wMDAwCkBAIC0yNCw2ICsyNCw3
IEBACiAgKi8KIAogI2ltcG9ydCAiS1dRUmVnRXhwLmgiCisjaW5jbHVkZSAiY29uZmlnLmgiCiAj
aW1wb3J0ICJLV1FMb2dnaW5nLmgiCiAKICNpbXBvcnQgPHN5cy90eXBlcy5oPgpJbmRleDogV2Vi
Q29yZS9rd3EvS1dRUmVnaW9uLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJD
b3JlL2t3cS9LV1FSZWdpb24ubW0sdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMjAKZGlmZiAtdSAt
cCAtcjEuMjAgV2ViQ29yZS9rd3EvS1dRUmVnaW9uLm1tCi0tLSBXZWJDb3JlL2t3cS9LV1FSZWdp
b24ubW0JMTUgSnVuIDIwMDQgMDU6MzM6NDQgLTAwMDAJMS4yMAorKysgV2ViQ29yZS9rd3EvS1dR
UmVnaW9uLm1tCTMgT2N0IDIwMDUgMDQ6MjM6MDggLTAwMDAKQEAgLTI0LDYgKzI0LDcgQEAKICAq
LwogCiAjaW1wb3J0ICJLV1FSZWdpb24uaCIKKyNpbmNsdWRlICJjb25maWcuaCIKICNpbXBvcnQg
IktXUUZvdW5kYXRpb25FeHRyYXMuaCIKIAogLy8gTm9uZSBvZiB0aGUgTlNCZXppZXJQYXRoIGNh
bGxzIGhlcmUgY2FuIHBvc3NpYmx5IHRocm93IGFuIE5TRXhjZXB0aW9uLgpJbmRleDogV2ViQ29y
ZS9rd3EvS1dRUmVuZGVyVHJlZURlYnVnLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jv
b3QvV2ViQ29yZS9rd3EvS1dRUmVuZGVyVHJlZURlYnVnLmNwcCx2CnJldHJpZXZpbmcgcmV2aXNp
b24gMS40NQpkaWZmIC11IC1wIC1yMS40NSBXZWJDb3JlL2t3cS9LV1FSZW5kZXJUcmVlRGVidWcu
Y3BwCi0tLSBXZWJDb3JlL2t3cS9LV1FSZW5kZXJUcmVlRGVidWcuY3BwCTI0IFNlcCAyMDA1IDAx
OjE5OjA1IC0wMDAwCTEuNDUKKysrIFdlYkNvcmUva3dxL0tXUVJlbmRlclRyZWVEZWJ1Zy5jcHAJ
MyBPY3QgMjAwNSAwNDoyMzowOCAtMDAwMApAQCAtMjQsNiArMjQsNyBAQAogICovCiAKICNpbmNs
dWRlICJLV1FSZW5kZXJUcmVlRGVidWcuaCIKKyNpbmNsdWRlICJjb25maWcuaCIKIAogI2luY2x1
ZGUgImRvbV9kb2NpbXBsLmgiCiAjaW5jbHVkZSAiZG9tX3Bvc2l0aW9uLmgiCkluZGV4OiBXZWJD
b3JlL2t3cS9LV1FSZXNvdXJjZUxvYWRlci5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jv
b3QvV2ViQ29yZS9rd3EvS1dRUmVzb3VyY2VMb2FkZXIubW0sdgpyZXRyaWV2aW5nIHJldmlzaW9u
IDEuMTYKZGlmZiAtdSAtcCAtcjEuMTYgV2ViQ29yZS9rd3EvS1dRUmVzb3VyY2VMb2FkZXIubW0K
LS0tIFdlYkNvcmUva3dxL0tXUVJlc291cmNlTG9hZGVyLm1tCTI3IFNlcCAyMDA1IDIyOjM3OjMx
IC0wMDAwCTEuMTYKKysrIFdlYkNvcmUva3dxL0tXUVJlc291cmNlTG9hZGVyLm1tCTMgT2N0IDIw
MDUgMDQ6MjM6MDggLTAwMDAKQEAgLTI0LDYgKzI0LDcgQEAKICAqLwogCiAjaW1wb3J0ICJLV1FS
ZXNvdXJjZUxvYWRlci5oIgorI2luY2x1ZGUgImNvbmZpZy5oIgogCiAjaW1wb3J0IDxreG1sY29y
ZS9Bc3NlcnRpb25zLmg+CiAjaW1wb3J0ICJLV1FLSm9iQ2xhc3Nlcy5oIgpJbmRleDogV2ViQ29y
ZS9rd3EvS1dRU2Nyb2xsQmFyLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJD
b3JlL2t3cS9LV1FTY3JvbGxCYXIubW0sdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuOApkaWZmIC11
IC1wIC1yMS44IFdlYkNvcmUva3dxL0tXUVNjcm9sbEJhci5tbQotLS0gV2ViQ29yZS9rd3EvS1dR
U2Nyb2xsQmFyLm1tCTUgQXByIDIwMDUgMjM6NDE6MTggLTAwMDAJMS44CisrKyBXZWJDb3JlL2t3
cS9LV1FTY3JvbGxCYXIubW0JMyBPY3QgMjAwNSAwNDoyMzowOCAtMDAwMApAQCAtMjQsNiArMjQs
NyBAQAogICovCiAKICNpbXBvcnQgIktXUVNjcm9sbEJhci5oIgorI2luY2x1ZGUgImNvbmZpZy5o
IgogCiAjaW1wb3J0ICJLV1FFeGNlcHRpb25zLmgiCiAjaW1wb3J0ICJLV1FWaWV3LmgiCkluZGV4
OiBXZWJDb3JlL2t3cS9LV1FTY3JvbGxWaWV3Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMv
cm9vdC9XZWJDb3JlL2t3cS9LV1FTY3JvbGxWaWV3Lm1tLHYKcmV0cmlldmluZyByZXZpc2lvbiAx
LjgzCmRpZmYgLXUgLXAgLXIxLjgzIFdlYkNvcmUva3dxL0tXUVNjcm9sbFZpZXcubW0KLS0tIFdl
YkNvcmUva3dxL0tXUVNjcm9sbFZpZXcubW0JMjMgQXVnIDIwMDUgMTg6MzI6NTEgLTAwMDAJMS44
MworKysgV2ViQ29yZS9rd3EvS1dRU2Nyb2xsVmlldy5tbQkzIE9jdCAyMDA1IDA0OjIzOjA4IC0w
MDAwCkBAIC0yNCw2ICsyNCw3IEBACiAgKi8KIAogI2ltcG9ydCAiS1dRU2Nyb2xsVmlldy5oIgor
I2luY2x1ZGUgImNvbmZpZy5oIgogCiAjaW1wb3J0ICJLV1FFeGNlcHRpb25zLmgiCiAjaW1wb3J0
ICJLV1FMb2dnaW5nLmgiCkluZGV4OiBXZWJDb3JlL2t3cS9LV1FTaWduYWwubW0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva3dxL0tXUVNpZ25hbC5tbSx2CnJldHJpZXZp
bmcgcmV2aXNpb24gMS4yMApkaWZmIC11IC1wIC1yMS4yMCBXZWJDb3JlL2t3cS9LV1FTaWduYWwu
bW0KLS0tIFdlYkNvcmUva3dxL0tXUVNpZ25hbC5tbQkyNyBTZXAgMjAwNSAyMjozNzozMSAtMDAw
MAkxLjIwCisrKyBXZWJDb3JlL2t3cS9LV1FTaWduYWwubW0JMyBPY3QgMjAwNSAwNDoyMzowOCAt
MDAwMApAQCAtMjQsNiArMjQsNyBAQAogICovCiAKICNpbXBvcnQgIktXUVNpZ25hbC5oIgorI2lu
Y2x1ZGUgImNvbmZpZy5oIgogCiAjaW1wb3J0ICJLV1FPYmplY3QuaCIKICNpbXBvcnQgPGt4bWxj
b3JlL0Fzc2VydGlvbnMuaD4KSW5kZXg6IFdlYkNvcmUva3dxL0tXUVNpZ25hbFN0dWJzLm1tCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2t3cS9LV1FTaWduYWxTdHVicy5t
bSx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4xNApkaWZmIC11IC1wIC1yMS4xNCBXZWJDb3JlL2t3
cS9LV1FTaWduYWxTdHVicy5tbQotLS0gV2ViQ29yZS9rd3EvS1dRU2lnbmFsU3R1YnMubW0JNyBG
ZWIgMjAwNCAwMToxOTo0NCAtMDAwMAkxLjE0CisrKyBXZWJDb3JlL2t3cS9LV1FTaWduYWxTdHVi
cy5tbQkzIE9jdCAyMDA1IDA0OjIzOjA4IC0wMDAwCkBAIC0yNCw2ICsyNCw3IEBACiAgKi8KICAK
ICNpbXBvcnQgImtodG1sdmlldy5oIgorI2luY2x1ZGUgImNvbmZpZy5oIgogI2ltcG9ydCAibG9h
ZGVyLmgiCiAjaW1wb3J0ICJ4bWxfdG9rZW5pemVyLmgiCiAKSW5kZXg6IFdlYkNvcmUva3dxL0tX
UVNpemUubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva3dxL0tXUVNp
emUubW0sdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMTAKZGlmZiAtdSAtcCAtcjEuMTAgV2ViQ29y
ZS9rd3EvS1dRU2l6ZS5tbQotLS0gV2ViQ29yZS9rd3EvS1dRU2l6ZS5tbQkzMCBTZXAgMjAwNSAw
NDowNDo1NyAtMDAwMAkxLjEwCisrKyBXZWJDb3JlL2t3cS9LV1FTaXplLm1tCTMgT2N0IDIwMDUg
MDQ6MjM6MDggLTAwMDAKQEAgLTI0LDYgKzI0LDcgQEAKICAqLwogCiAjaW1wb3J0ICJLV1FTaXpl
LmgiCisjaW5jbHVkZSAiY29uZmlnLmgiCiAKIFFTaXplOjpRU2l6ZSgpIDogdygtMSksIGgoLTEp
CiB7CkluZGV4OiBXZWJDb3JlL2t3cS9LV1FTbGlkZXIubW0KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTog
L2N2cy9yb290L1dlYkNvcmUva3dxL0tXUVNsaWRlci5tbSx2CnJldHJpZXZpbmcgcmV2aXNpb24g
MS4xMApkaWZmIC11IC1wIC1yMS4xMCBXZWJDb3JlL2t3cS9LV1FTbGlkZXIubW0KLS0tIFdlYkNv
cmUva3dxL0tXUVNsaWRlci5tbQkxNCBKdWwgMjAwNSAyMzo1MzozMyAtMDAwMAkxLjEwCisrKyBX
ZWJDb3JlL2t3cS9LV1FTbGlkZXIubW0JMyBPY3QgMjAwNSAwNDoyMzowOCAtMDAwMApAQCAtMjQs
NiArMjQsNyBAQAogICovCiAKICNpbXBvcnQgIktXUVNsaWRlci5oIgorI2luY2x1ZGUgImNvbmZp
Zy5oIgogCiAjaW1wb3J0ICJLV1FCdXR0b24uaCIKICNpbXBvcnQgIktXUUV4Y2VwdGlvbnMuaCIK
SW5kZXg6IFdlYkNvcmUva3dxL0tXUVNsb3QubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9y
b290L1dlYkNvcmUva3dxL0tXUVNsb3QubW0sdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMzQKZGlm
ZiAtdSAtcCAtcjEuMzQgV2ViQ29yZS9rd3EvS1dRU2xvdC5tbQotLS0gV2ViQ29yZS9rd3EvS1dR
U2xvdC5tbQkyNyBTZXAgMjAwNSAyMjozNzozMSAtMDAwMAkxLjM0CisrKyBXZWJDb3JlL2t3cS9L
V1FTbG90Lm1tCTMgT2N0IDIwMDUgMDQ6MjM6MDggLTAwMDAKQEAgLTI0LDYgKzI0LDcgQEAKICAq
LwogCiAjaW1wb3J0ICJLV1FTbG90LmgiCisjaW5jbHVkZSAiY29uZmlnLmgiCiAKICNpbXBvcnQg
PGt4bWxjb3JlL0Fzc2VydGlvbnMuaD4KIApJbmRleDogV2ViQ29yZS9rd3EvS1dRU3RyaW5nLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva3dxL0tXUVN0cmluZy5oLHYK
cmV0cmlldmluZyByZXZpc2lvbiAxLjExOApkaWZmIC11IC1wIC1yMS4xMTggV2ViQ29yZS9rd3Ev
S1dRU3RyaW5nLmgKLS0tIFdlYkNvcmUva3dxL0tXUVN0cmluZy5oCTI3IFNlcCAyMDA1IDIyOjM3
OjMxIC0wMDAwCTEuMTE4CisrKyBXZWJDb3JlL2t3cS9LV1FTdHJpbmcuaAkzIE9jdCAyMDA1IDA0
OjIzOjA4IC0wMDAwCkBAIC0zNDAsMTAgKzM0MCw3IEBAIGlubGluZSBib29sIG9wZXJhdG9yPChj
aGFyIGNoLCBRQ2hhciBxYykKICNkZWZpbmUgUVNfSU5URVJOQUxfQlVGRkVSX0NIQVJTIFFTX0lO
VEVSTkFMX0JVRkZFUl9TSVpFLTEKICNkZWZpbmUgUVNfSU5URVJOQUxfQlVGRkVSX1VDSEFSUyBR
U19JTlRFUk5BTF9CVUZGRVJfU0laRS8yCiAKLXN0cnVjdCBLV1FTdHJpbmdEYXRhIAotI2lmbmRl
ZiBRU1RSSU5HX0RFQlVHX0FMTE9DQVRJT05TCi0gICAgOiBwdWJsaWMgRmFzdEFsbG9jYXRlZCAK
LSNlbmRpZgorc3RydWN0IEtXUVN0cmluZ0RhdGEgIAogewogICAgIC8vIFVzZXMgc2hhcmVkIG51
bGwgZGF0YS4KICAgICBLV1FTdHJpbmdEYXRhKCk7CkluZGV4OiBXZWJDb3JlL2t3cS9LV1FTdHJp
bmcubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva3dxL0tXUVN0cmlu
Zy5tbSx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4xNDEKZGlmZiAtdSAtcCAtcjEuMTQxIFdlYkNv
cmUva3dxL0tXUVN0cmluZy5tbQotLS0gV2ViQ29yZS9rd3EvS1dRU3RyaW5nLm1tCTI3IFNlcCAy
MDA1IDIyOjM3OjMxIC0wMDAwCTEuMTQxCisrKyBXZWJDb3JlL2t3cS9LV1FTdHJpbmcubW0JMyBP
Y3QgMjAwNSAwNDoyMzowOCAtMDAwMApAQCAtMjQsNiArMjQsNyBAQAogICovCiAKICNpbXBvcnQg
PEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgorI2luY2x1ZGUgImNvbmZpZy5oIgogCiAjaW1wb3J0
IDxzdGRpby5oPgogCkBAIC05MCw3ICs5MSw3IEBAIHN0YXRpYyBDRk11dGFibGVEaWN0aW9uYXJ5
UmVmIGFsbG9jYXRlZEIKIAogc3RhdGljIGNoYXIgKkFMTE9DX0NIQVIoaW50IG4pCiB7Ci0gICAg
Y2hhciAqcHRyID0gKGNoYXIgKiltYWluX3RocmVhZF9tYWxsb2Mobik7CisgICAgY2hhciAqcHRy
ID0gKGNoYXIgKilmYXN0TWFsbG9jKG4pOwogCiAgICAgQ0ZEaWN0aW9uYXJ5U2V0VmFsdWUgKGFs
bG9jYXRlZEJ1ZmZlcnMoKSwgcHRyLCAodm9pZCAqKW4pOwogICAgIApAQCAtMTAzLDcgKzEwNCw3
IEBAIHN0YXRpYyBjaGFyICpBTExPQ19DSEFSKGludCBuKQogCiBzdGF0aWMgY2hhciAqUkVBTExP
Q19DSEFSKHZvaWQgKnAsIGludCBuKQogewotICAgIGNoYXIgKnB0ciA9IChjaGFyICopcmVhbGxv
YyhwLCBuKTsKKyAgICBjaGFyICpwdHIgPSAoY2hhciAqKWZhc3RSZWFsbG9jKHAsIG4pOwogCiAg
ICAgQ0ZEaWN0aW9uYXJ5UmVtb3ZlVmFsdWUgKGFsbG9jYXRlZEJ1ZmZlcnMoKSwgcCk7CiAgICAg
Q0ZEaWN0aW9uYXJ5U2V0VmFsdWUgKGFsbG9jYXRlZEJ1ZmZlcnMoKSwgcHRyLCAoY29uc3Qgdm9p
ZCAqKShuKSk7CkBAIC0xMTcsMTMgKzExOCwxMyBAQCBzdGF0aWMgY2hhciAqUkVBTExPQ19DSEFS
KHZvaWQgKnAsIGludCBuCiBzdGF0aWMgdm9pZCBERUxFVEVfQ0hBUih2b2lkICpwKQogewogICAg
IENGRGljdGlvbmFyeVJlbW92ZVZhbHVlIChhbGxvY2F0ZWRCdWZmZXJzKCksIHApOwotICAgIGZy
ZWUgKHApOworICAgIGZhc3RGcmVlKHApOwogfQogCiBzdGF0aWMgUUNoYXIgKkFMTE9DX1FDSEFS
KGludCBuKQogewogICAgIHNpemVfdCBzaXplID0gKHNpemVvZihRQ2hhcikqKCBuICkpOwotICAg
IFFDaGFyICpwdHIgPSAoUUNoYXIgKilmYXN0X21hbGxvYyhzaXplKTsKKyAgICBRQ2hhciAqcHRy
ID0gKFFDaGFyICopZmFzdE1hbGxvYyhzaXplKTsKIAogICAgIENGRGljdGlvbmFyeVNldFZhbHVl
IChhbGxvY2F0ZWRCdWZmZXJzKCksIHB0ciwgKGNvbnN0IHZvaWQgKilzaXplKTsKICAgICBpZiAo
c2l6ZSA+PSBBTExPQ0FUSU9OX0hJU1RPR1JBTV9TSVpFKQpAQCAtMTM2LDcgKzEzNyw3IEBAIHN0
YXRpYyBRQ2hhciAqQUxMT0NfUUNIQVIoaW50IG4pCiBzdGF0aWMgUUNoYXIgKlJFQUxMT0NfUUNI
QVIodm9pZCAqcCwgaW50IG4pCiB7CiAgICAgc2l6ZV90IHNpemUgPSAoc2l6ZW9mKFFDaGFyKSoo
IG4gKSk7Ci0gICAgUUNoYXIgKnB0ciA9IChRQ2hhciAqKXJlYWxsb2MocCwgc2l6ZSk7CisgICAg
UUNoYXIgKnB0ciA9IChRQ2hhciAqKWZhc3RSZWFsbG9jKHAsIHNpemUpOwogCiAgICAgQ0ZEaWN0
aW9uYXJ5UmVtb3ZlVmFsdWUgKGFsbG9jYXRlZEJ1ZmZlcnMoKSwgcCk7CiAgICAgQ0ZEaWN0aW9u
YXJ5U2V0VmFsdWUgKGFsbG9jYXRlZEJ1ZmZlcnMoKSwgcHRyLCAoY29uc3Qgdm9pZCAqKXNpemUp
OwpAQCAtMTUxLDcgKzE1Miw3IEBAIHN0YXRpYyBRQ2hhciAqUkVBTExPQ19RQ0hBUih2b2lkICpw
LCBpbnQKIHN0YXRpYyB2b2lkIERFTEVURV9RQ0hBUih2b2lkICpwKQogewogICAgIENGRGljdGlv
bmFyeVJlbW92ZVZhbHVlIChhbGxvY2F0ZWRCdWZmZXJzKCksIHApOwotICAgIGZyZWUgKHApOwor
ICAgIGZhdEZyZWUocCk7CiB9CiAKIHZvaWQgX3ByaW50UVN0cmluZ0FsbG9jYXRpb25TdGF0aXN0
aWNzKCkKQEAgLTE2Miw5ICsxNjMsOSBAQCB2b2lkIF9wcmludFFTdHJpbmdBbGxvY2F0aW9uU3Rh
dGlzdGljcygpCiAgICAgaW50IHRvdGFsU2l6ZSA9IDA7CiAgICAgaW50IHRvdGFsQWxsb2NhdGlv
bnMgPSAwOwogICAgIAotICAgIGNvdW50ID0gKGludClDRkRpY3Rpb25hcnlHZXRDb3VudCAoYWxs
b2NhdGVkQnVmZmVycygpKTsKLSAgICB2YWx1ZXMgPSAoY29uc3Qgdm9pZCAqKiltYWxsb2MgKGNv
dW50KnNpemVvZih2b2lkICopKTsKLSAgICBrZXlzID0gKGNvbnN0IHZvaWQgKiopbWFsbG9jIChj
b3VudCpzaXplb2Yodm9pZCAqKSk7CisgICAgY291bnQgPSAoaW50KUNGRGljdGlvbmFyeUdldENv
dW50KGFsbG9jYXRlZEJ1ZmZlcnMoKSk7CisgICAgdmFsdWVzID0gKGNvbnN0IHZvaWQgKiopZmFz
dE1hbGxvYyhjb3VudCpzaXplb2Yodm9pZCAqKSk7CisgICAga2V5cyA9IChjb25zdCB2b2lkICoq
KWZhc3RNYWxsb2MoY291bnQqc2l6ZW9mKHZvaWQgKikpOwogCiAgICAgQ0ZEaWN0aW9uYXJ5R2V0
S2V5c0FuZFZhbHVlcyAoYWxsb2NhdGVkQnVmZmVycygpLCBrZXlzLCB2YWx1ZXMpOwogICAgIHBy
aW50ZiAoIkxlYWtlZCBzdHJpbmdzOlxuIik7CkBAIC0xOTcsMTQgKzE5OCwxNCBAQCB2b2lkIF9w
cmludFFTdHJpbmdBbGxvY2F0aW9uU3RhdGlzdGljcygpCiAgICAgcHJpbnRmICgiS1dRU3RyaW5n
RGF0YSBkZXRhY2htZW50cyAoY29waWVzKSAlZFxuIiwgc3RyaW5nRGF0YURldGFjaG1lbnRzKTsK
ICAgICBwcmludGYgKCJLV1FTdHJpbmdEYXRhIGhhbmRsZXMgJWRcbiIsIGhhbmRsZUluc3RhbmNl
cyk7CiAgICAgCi0gICAgZnJlZShrZXlzKTsKLSAgICBmcmVlKHZhbHVlcyk7CisgICAgZmFzdEZy
ZWUoa2V5cyk7CisgICAgZmFzdEZyZWUodmFsdWVzKTsKIH0KIAogI2Vsc2UKIAotI2RlZmluZSBB
TExPQ19DSEFSKE4pIChjaGFyKikgZmFzdE1hbGxvYyhOKQotI2RlZmluZSBSRUFMTE9DX0NIQVIo
UCwgTikgKGNoYXIgKikgZmFzdFJlYWxsb2MoUCwgTikKKyNkZWZpbmUgQUxMT0NfQ0hBUihOKSAo
Y2hhciopZmFzdE1hbGxvYyhOKQorI2RlZmluZSBSRUFMTE9DX0NIQVIoUCwgTikgKGNoYXIgKilm
YXN0UmVhbGxvYyhQLCBOKQogI2RlZmluZSBERUxFVEVfQ0hBUihQKSBmYXN0RnJlZShQKQogCiAj
ZGVmaW5lIEFMTE9DX1FDSEFSKE4pIChRQ2hhciopZmFzdE1hbGxvYyhzaXplb2YoUUNoYXIpKihO
KSkKQEAgLTIzNCw3ICsyMzUsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgaW5pdGlhbGl6ZUhhbmRs
ZU5vZGVzCiBzdGF0aWMgaW5saW5lIEtXUVN0cmluZ0RhdGEgKiphbGxvY2F0ZUhhbmRsZSgpCiB7
CiAjaWYgQ0hFQ0tfRk9SX0hBTkRMRV9MRUFLUwotICAgIHJldHVybiBzdGF0aWNfY2FzdDxLV1FT
dHJpbmdEYXRhICoqPihtYWxsb2Moc2l6ZW9mKEtXUVN0cmluZ0RhdGEgKikpKTsKKyAgICByZXR1
cm4gc3RhdGljX2Nhc3Q8S1dRU3RyaW5nRGF0YSAqKj4oZmFzdE1hbGxvYyhzaXplb2YoS1dRU3Ry
aW5nRGF0YSAqKSkpOwogI2VuZGlmCiAKICAgICBpbml0aWFsaXplSGFuZGxlTm9kZXMoKTsKQEAg
LTQyMCwxMSArNDIxLDExIEBAIEtXUVN0cmluZ0RhdGE6OktXUVN0cmluZ0RhdGEoY29uc3QgUUNo
YXIKIHZvaWQqIEtXUVN0cmluZ0RhdGE6Om9wZXJhdG9yIG5ldyhzaXplX3QgcykKIHsKICAgICBz
dHJpbmdEYXRhSGVhcEluc3RhbmNlcysrOwotICAgIHJldHVybiBtYWxsb2Mocyk7CisgICAgcmV0
dXJuIGZhc3RNYWxsb2Mocyk7CiB9CiB2b2lkIEtXUVN0cmluZ0RhdGE6Om9wZXJhdG9yIGRlbGV0
ZSh2b2lkKnApCiB7Ci0gICAgcmV0dXJuIGZyZWUocCk7CisgICAgcmV0dXJuIGZhc3RGcmVlKHAp
OwogfQogI2VuZGlmCiAKQEAgLTI5NDksNyArMjk1MCw3IEBAIHN0YXRpYyBIYW5kbGVOb2RlICph
bGxvY2F0ZU5vZGUoSGFuZGxlUGEKIHZvaWQgZnJlZUhhbmRsZShLV1FTdHJpbmdEYXRhICoqX2Zy
ZWUpCiB7CiAjaWYgQ0hFQ0tfRk9SX0hBTkRMRV9MRUFLUwotICAgIGZyZWUoX2ZyZWUpOworICAg
IGZhc3RGcmVlKF9mcmVlKTsKICAgICByZXR1cm47CiAjZW5kaWYKIApJbmRleDogV2ViQ29yZS9r
d3EvS1dRU3RyaW5nTGlzdC5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29y
ZS9rd3EvS1dRU3RyaW5nTGlzdC5tbSx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4xMApkaWZmIC11
IC1wIC1yMS4xMCBXZWJDb3JlL2t3cS9LV1FTdHJpbmdMaXN0Lm1tCi0tLSBXZWJDb3JlL2t3cS9L
V1FTdHJpbmdMaXN0Lm1tCTIwIFNlcCAyMDA0IDIxOjM2OjI2IC0wMDAwCTEuMTAKKysrIFdlYkNv
cmUva3dxL0tXUVN0cmluZ0xpc3QubW0JMyBPY3QgMjAwNSAwNDoyMzowOCAtMDAwMApAQCAtMjQs
NiArMjQsNyBAQAogICovCiAKICNpbXBvcnQgIktXUVN0cmluZ0xpc3QuaCIKKyNpbmNsdWRlICJj
b25maWcuaCIKIAogI2ltcG9ydCA8Q29yZUZvdW5kYXRpb24vQ29yZUZvdW5kYXRpb24uaD4KIApJ
bmRleDogV2ViQ29yZS9rd3EvS1dRU3R5bGUubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9y
b290L1dlYkNvcmUva3dxL0tXUVN0eWxlLm1tLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjgKZGlm
ZiAtdSAtcCAtcjEuOCBXZWJDb3JlL2t3cS9LV1FTdHlsZS5tbQotLS0gV2ViQ29yZS9rd3EvS1dR
U3R5bGUubW0JMjIgSmFuIDIwMDMgMDA6MTI6MzYgLTAwMDAJMS44CisrKyBXZWJDb3JlL2t3cS9L
V1FTdHlsZS5tbQkzIE9jdCAyMDA1IDA0OjIzOjA4IC0wMDAwCkBAIC0yNCw2ICsyNCw3IEBACiAg
Ki8KIAogI2ltcG9ydCAiS1dRU3R5bGUuaCIKKyNpbmNsdWRlICJjb25maWcuaCIKIAogI2ltcG9y
dCAiS1dRV2lkZ2V0LmgiCiAKSW5kZXg6IFdlYkNvcmUva3dxL0tXUVRleHRBcmVhLm1tCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2t3cS9LV1FUZXh0QXJlYS5tbSx2CnJl
dHJpZXZpbmcgcmV2aXNpb24gMS45MApkaWZmIC11IC1wIC1yMS45MCBXZWJDb3JlL2t3cS9LV1FU
ZXh0QXJlYS5tbQotLS0gV2ViQ29yZS9rd3EvS1dRVGV4dEFyZWEubW0JMjcgU2VwIDIwMDUgMjI6
Mzc6MzIgLTAwMDAJMS45MAorKysgV2ViQ29yZS9rd3EvS1dRVGV4dEFyZWEubW0JMyBPY3QgMjAw
NSAwNDoyMzowOCAtMDAwMApAQCAtMjQsNiArMjQsNyBAQAogICovCiAKICNpbXBvcnQgIktXUVRl
eHRBcmVhLmgiCisjaW5jbHVkZSAiY29uZmlnLmgiCiAKICNpbXBvcnQgIkRPTUNTUy5oIgogI2lt
cG9ydCAiRE9NSFRNTC5oIgpJbmRleDogV2ViQ29yZS9rd3EvS1dRVGV4dENvZGVjLm1tCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2t3cS9LV1FUZXh0Q29kZWMubW0sdgpy
ZXRyaWV2aW5nIHJldmlzaW9uIDEuNTUKZGlmZiAtdSAtcCAtcjEuNTUgV2ViQ29yZS9rd3EvS1dR
VGV4dENvZGVjLm1tCi0tLSBXZWJDb3JlL2t3cS9LV1FUZXh0Q29kZWMubW0JMjcgU2VwIDIwMDUg
MjI6Mzc6MzIgLTAwMDAJMS41NQorKysgV2ViQ29yZS9rd3EvS1dRVGV4dENvZGVjLm1tCTMgT2N0
IDIwMDUgMDQ6MjM6MDggLTAwMDAKQEAgLTI0LDYgKzI0LDcgQEAKICAqLwogCiAjaW1wb3J0ICJL
V1FUZXh0Q29kZWMuaCIKKyNpbmNsdWRlICJjb25maWcuaCIKIAogI2ltcG9ydCA8a3htbGNvcmUv
QXNzZXJ0aW9ucy5oPgogI2ltcG9ydCAiS1dRQ2hhcnNldHMuaCIKSW5kZXg6IFdlYkNvcmUva3dx
L0tXUVRleHRFZGl0Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2t3
cS9LV1FUZXh0RWRpdC5tbSx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS41MwpkaWZmIC11IC1wIC1y
MS41MyBXZWJDb3JlL2t3cS9LV1FUZXh0RWRpdC5tbQotLS0gV2ViQ29yZS9rd3EvS1dRVGV4dEVk
aXQubW0JMjcgU2VwIDIwMDUgMjI6Mzc6MzIgLTAwMDAJMS41MworKysgV2ViQ29yZS9rd3EvS1dR
VGV4dEVkaXQubW0JMyBPY3QgMjAwNSAwNDoyMzowOCAtMDAwMApAQCAtMjQsNiArMjQsNyBAQAog
ICovCiAKICNpbXBvcnQgIktXUVRleHRFZGl0LmgiCisjaW5jbHVkZSAiY29uZmlnLmgiCiAKICNp
bXBvcnQgPGt4bWxjb3JlL0Fzc2VydGlvbnMuaD4KICNpbXBvcnQgIktXUUV4Y2VwdGlvbnMuaCIK
SW5kZXg6IFdlYkNvcmUva3dxL0tXUVRleHRGaWVsZC5tbQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAv
Y3ZzL3Jvb3QvV2ViQ29yZS9rd3EvS1dRVGV4dEZpZWxkLm1tLHYKcmV0cmlldmluZyByZXZpc2lv
biAxLjg5CmRpZmYgLXUgLXAgLXIxLjg5IFdlYkNvcmUva3dxL0tXUVRleHRGaWVsZC5tbQotLS0g
V2ViQ29yZS9rd3EvS1dRVGV4dEZpZWxkLm1tCTI3IFNlcCAyMDA1IDIyOjM3OjMyIC0wMDAwCTEu
ODkKKysrIFdlYkNvcmUva3dxL0tXUVRleHRGaWVsZC5tbQkzIE9jdCAyMDA1IDA0OjIzOjA5IC0w
MDAwCkBAIC0yNCw2ICsyNCw3IEBACiAgKi8KIAogI2ltcG9ydCAiS1dRVGV4dEZpZWxkLmgiCisj
aW5jbHVkZSAiY29uZmlnLmgiCiAKICNpbXBvcnQgPGt4bWxjb3JlL0Fzc2VydGlvbnMuaD4KICNp
bXBvcnQgIktXUUtIVE1MUGFydC5oIgpJbmRleDogV2ViQ29yZS9rd3EvS1dRVGV4dFN0cmVhbS5t
bQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9rd3EvS1dRVGV4dFN0cmVh
bS5tbSx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4xNwpkaWZmIC11IC1wIC1yMS4xNyBXZWJDb3Jl
L2t3cS9LV1FUZXh0U3RyZWFtLm1tCi0tLSBXZWJDb3JlL2t3cS9LV1FUZXh0U3RyZWFtLm1tCTEg
U2VwIDIwMDUgMDQ6Mzk6MzcgLTAwMDAJMS4xNworKysgV2ViQ29yZS9rd3EvS1dRVGV4dFN0cmVh
bS5tbQkzIE9jdCAyMDA1IDA0OjIzOjA5IC0wMDAwCkBAIC0yNCw2ICsyNCw3IEBACiAgKi8KIAog
I2ltcG9ydCAiS1dRTG9nZ2luZy5oIgorI2luY2x1ZGUgImNvbmZpZy5oIgogCiAjaW1wb3J0ICJL
V1FUZXh0U3RyZWFtLmgiCiAKSW5kZXg6IFdlYkNvcmUva3dxL0tXUVRleHRVdGlsaXRpZXMubW0K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva3dxL0tXUVRleHRVdGlsaXRp
ZXMubW0sdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuOApkaWZmIC11IC1wIC1yMS44IFdlYkNvcmUv
a3dxL0tXUVRleHRVdGlsaXRpZXMubW0KLS0tIFdlYkNvcmUva3dxL0tXUVRleHRVdGlsaXRpZXMu
bW0JMTYgQXVnIDIwMDUgMTk6MDM6MjAgLTAwMDAJMS44CisrKyBXZWJDb3JlL2t3cS9LV1FUZXh0
VXRpbGl0aWVzLm1tCTMgT2N0IDIwMDUgMDQ6MjM6MDkgLTAwMDAKQEAgLTI0LDYgKzI0LDcgQEAK
ICAqLwogCiAjaW1wb3J0ICJLV1FUZXh0VXRpbGl0aWVzLmgiCisjaW5jbHVkZSAiY29uZmlnLmgi
CiAKICNpbXBvcnQgIktXUVN0cmluZy5oIgogI2ltcG9ydCA8QXBwS2l0L05TQXR0cmlidXRlZFN0
cmluZy5oPgpJbmRleDogV2ViQ29yZS9rd3EvS1dRVGltZXIubW0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmls
ZTogL2N2cy9yb290L1dlYkNvcmUva3dxL0tXUVRpbWVyLm1tLHYKcmV0cmlldmluZyByZXZpc2lv
biAxLjE4CmRpZmYgLXUgLXAgLXIxLjE4IFdlYkNvcmUva3dxL0tXUVRpbWVyLm1tCi0tLSBXZWJD
b3JlL2t3cS9LV1FUaW1lci5tbQkyNyBTZXAgMjAwNSAyMjozNzozMiAtMDAwMAkxLjE4CisrKyBX
ZWJDb3JlL2t3cS9LV1FUaW1lci5tbQkzIE9jdCAyMDA1IDA0OjIzOjA5IC0wMDAwCkBAIC0yNCw2
ICsyNCw3IEBACiAgKi8KIAogI2ltcG9ydCAiS1dRVGltZXIuaCIKKyNpbmNsdWRlICJjb25maWcu
aCIKIAogI2ltcG9ydCA8a3htbGNvcmUvQXNzZXJ0aW9ucy5oPgogI2ltcG9ydCAiS1dRTG9nZ2lu
Zy5oIgpJbmRleDogV2ViQ29yZS9rd3EvS1dRVmFsdWVMaXN0SW1wbC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNT
IGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2t3cS9LV1FWYWx1ZUxpc3RJbXBsLmgsdgpyZXRyaWV2
aW5nIHJldmlzaW9uIDEuMTIKZGlmZiAtdSAtcCAtcjEuMTIgV2ViQ29yZS9rd3EvS1dRVmFsdWVM
aXN0SW1wbC5oCi0tLSBXZWJDb3JlL2t3cS9LV1FWYWx1ZUxpc3RJbXBsLmgJMjcgU2VwIDIwMDUg
MjI6Mzc6MzIgLTAwMDAJMS4xMgorKysgV2ViQ29yZS9rd3EvS1dRVmFsdWVMaXN0SW1wbC5oCTMg
T2N0IDIwMDUgMDQ6MjM6MDkgLTAwMDAKQEAgLTI4LDcgKzI4LDYgQEAKIAogI2luY2x1ZGUgIktX
UVJlZlB0ci5oIgogI2luY2x1ZGUgIktXUURlZi5oIgotI2luY2x1ZGUgImt4bWxjb3JlL0Zhc3RN
YWxsb2MuaCIKIAogY2xhc3MgS1dRVmFsdWVMaXN0Tm9kZUltcGw7CiAKQEAgLTEwNyw3ICsxMDYs
NyBAQCBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBLV1FWYWx1ZUxpc3ROb2RlSW1wbDsKIH07
CiAKLWNsYXNzIEtXUVZhbHVlTGlzdE5vZGVJbXBsIDogcHVibGljIEZhc3RBbGxvY2F0ZWQKK2Ns
YXNzIEtXUVZhbHVlTGlzdE5vZGVJbXBsCiB7CiBwcm90ZWN0ZWQ6CiAgICAgS1dRVmFsdWVMaXN0
Tm9kZUltcGwoKTsKSW5kZXg6IFdlYkNvcmUva3dxL0tXUVZhbHVlTGlzdEltcGwubW0KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva3dxL0tXUVZhbHVlTGlzdEltcGwubW0s
dgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMTQKZGlmZiAtdSAtcCAtcjEuMTQgV2ViQ29yZS9rd3Ev
S1dRVmFsdWVMaXN0SW1wbC5tbQotLS0gV2ViQ29yZS9rd3EvS1dRVmFsdWVMaXN0SW1wbC5tbQky
NyBTZXAgMjAwNSAyMjozNzozMiAtMDAwMAkxLjE0CisrKyBXZWJDb3JlL2t3cS9LV1FWYWx1ZUxp
c3RJbXBsLm1tCTMgT2N0IDIwMDUgMDQ6MjM6MDkgLTAwMDAKQEAgLTI0LDEwICsyNCwxMSBAQAog
ICovCiAKICNpbXBvcnQgIktXUVZhbHVlTGlzdEltcGwuaCIKKyNpbmNsdWRlICJjb25maWcuaCIK
IAogI2ltcG9ydCA8c3RkbGliLmg+CiAKLWNsYXNzIEtXUVZhbHVlTGlzdEltcGw6OktXUVZhbHVl
TGlzdFByaXZhdGUgOiBwdWJsaWMgRmFzdEFsbG9jYXRlZAorY2xhc3MgS1dRVmFsdWVMaXN0SW1w
bDo6S1dRVmFsdWVMaXN0UHJpdmF0ZQogewogcHVibGljOgogICAgIEtXUVZhbHVlTGlzdFByaXZh
dGUodm9pZCAoKmRlbGV0ZUZ1bmMpKEtXUVZhbHVlTGlzdE5vZGVJbXBsICopLCBLV1FWYWx1ZUxp
c3ROb2RlSW1wbCAqKCpjb3B5RnVuYykoS1dRVmFsdWVMaXN0Tm9kZUltcGwgKikpOwpJbmRleDog
V2ViQ29yZS9rd3EvS1dRVmFyaWFudC5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3Qv
V2ViQ29yZS9rd3EvS1dRVmFyaWFudC5tbSx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4xNApkaWZm
IC11IC1wIC1yMS4xNCBXZWJDb3JlL2t3cS9LV1FWYXJpYW50Lm1tCi0tLSBXZWJDb3JlL2t3cS9L
V1FWYXJpYW50Lm1tCTI3IEF1ZyAyMDAzIDA1OjQ3OjQzIC0wMDAwCTEuMTQKKysrIFdlYkNvcmUv
a3dxL0tXUVZhcmlhbnQubW0JMyBPY3QgMjAwNSAwNDoyMzowOSAtMDAwMApAQCAtMjQsNiArMjQs
NyBAQAogICovCiAKICNpbXBvcnQgIktXUVZhcmlhbnQuaCIKKyNpbmNsdWRlICJjb25maWcuaCIK
IAogI2ltcG9ydCAiS1dRU3RyaW5nLmgiCiAKSW5kZXg6IFdlYkNvcmUva3dxL0tXUVZlY3Rvcklt
cGwubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva3dxL0tXUVZlY3Rv
ckltcGwubW0sdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuOQpkaWZmIC11IC1wIC1yMS45IFdlYkNv
cmUva3dxL0tXUVZlY3RvckltcGwubW0KLS0tIFdlYkNvcmUva3dxL0tXUVZlY3RvckltcGwubW0J
MjAgTm92IDIwMDQgMDI6MjQ6MDggLTAwMDAJMS45CisrKyBXZWJDb3JlL2t3cS9LV1FWZWN0b3JJ
bXBsLm1tCTMgT2N0IDIwMDUgMDQ6MjM6MDkgLTAwMDAKQEAgLTI0LDYgKzI0LDcgQEAKICAqLwog
CiAjaW1wb3J0ICJLV1FWZWN0b3JJbXBsLmgiCisjaW5jbHVkZSAiY29uZmlnLmgiCiAKIEtXUVZl
Y3RvckltcGw6OktXUVZlY3RvckltcGwodm9pZCAoKmYpKHZvaWQgKikpCiAgICAgOiBtX2RhdGEo
MCksIG1fc2l6ZSgwKSwgbV9jb3VudCgwKSwgbV9kZWxldGVJdGVtRnVuY3Rpb24oZikKQEAgLTMx
LDE0ICszMiwxNCBAQCBLV1FWZWN0b3JJbXBsOjpLV1FWZWN0b3JJbXBsKHZvaWQgKCpmKSh2CiB9
CiAKIEtXUVZlY3RvckltcGw6OktXUVZlY3RvckltcGwodWludCBzaXplLCB2b2lkICgqZikodm9p
ZCAqKSkKLSAgICA6IG1fZGF0YSgodm9pZCAqKiltYWxsb2Moc2l6ZSAqIHNpemVvZih2b2lkICop
KSkKKyAgICA6IG1fZGF0YSgodm9pZCAqKilmYXN0TWFsbG9jKHNpemUgKiBzaXplb2Yodm9pZCAq
KSkpCiAgICAgLCBtX3NpemUoc2l6ZSksIG1fY291bnQoMCksIG1fZGVsZXRlSXRlbUZ1bmN0aW9u
KGYpCiB7CiAgICAgbWVtc2V0KG1fZGF0YSwgMCwgc2l6ZSAqIHNpemVvZih2b2lkICopKTsKIH0K
IAogS1dRVmVjdG9ySW1wbDo6S1dRVmVjdG9ySW1wbChjb25zdCBLV1FWZWN0b3JJbXBsICZ2aSkK
LSAgICA6IG1fZGF0YSh2aS5tX2RhdGEgPyAodm9pZCAqKiltYWxsb2ModmkubV9zaXplICogc2l6
ZW9mKHZvaWQgKikpIDogMCkKKyAgICA6IG1fZGF0YSh2aS5tX2RhdGEgPyAodm9pZCAqKilmYXN0
TWFsbG9jKHZpLm1fc2l6ZSAqIHNpemVvZih2b2lkICopKSA6IDApCiAgICAgLCBtX3NpemUodmku
bV9zaXplKSwgbV9jb3VudCh2aS5tX2NvdW50KQogICAgICwgbV9kZWxldGVJdGVtRnVuY3Rpb24o
dmkubV9kZWxldGVJdGVtRnVuY3Rpb24pCiB7CkBAIC00Nyw3ICs0OCw3IEBAIEtXUVZlY3Rvcklt
cGw6OktXUVZlY3RvckltcGwoY29uc3QgS1dRVmUKIAogS1dRVmVjdG9ySW1wbDo6fktXUVZlY3Rv
ckltcGwoKQogewotICAgIGZyZWUobV9kYXRhKTsKKyAgICBmYXN0RnJlZShtX2RhdGEpOwogfQog
CiB2b2lkIEtXUVZlY3RvckltcGw6OmNsZWFyKGJvb2wgZGVsSXRlbXMpCkBAIC02MSw3ICs2Miw3
IEBAIHZvaWQgS1dRVmVjdG9ySW1wbDo6Y2xlYXIoYm9vbCBkZWxJdGVtcykKIAl9CiAgICAgfQog
Ci0gICAgZnJlZShtX2RhdGEpOworICAgIGZhc3RGcmVlKG1fZGF0YSk7CiAgICAgbV9kYXRhID0g
MDsKICAgICBtX3NpemUgPSAwOwogICAgIG1fY291bnQgPSAwOwpAQCAtMTAwLDcgKzEwMSw3IEBA
IGJvb2wgS1dRVmVjdG9ySW1wbDo6cmVzaXplKHVpbnQgc2l6ZSwgYm8KICAgICB9CiAKICAgICBt
X3NpemUgPSBzaXplOwotICAgIG1fZGF0YSA9ICh2b2lkICoqKXJlYWxsb2MobV9kYXRhLCBzaXpl
ICogc2l6ZW9mKHZvaWQgKikpOworICAgIG1fZGF0YSA9ICh2b2lkICoqKWZhc3RSZWFsbG9jKG1f
ZGF0YSwgc2l6ZSAqIHNpemVvZih2b2lkICopKTsKIAogICAgIGlmIChzaXplID4gb2xkU2l6ZSkg
ewogICAgICAgICBtZW1zZXQoJm1fZGF0YVtvbGRTaXplXSwgMCwgKHNpemUgLSBvbGRTaXplKSAq
IHNpemVvZih2b2lkICopKTsKQEAgLTE0Nyw3ICsxNDgsNyBAQCBLV1FWZWN0b3JJbXBsICZLV1FW
ZWN0b3JJbXBsOjphc3NpZ24oS1dRCiB7CiAgICAgY2xlYXIoZGVsSXRlbXMpOwogICAgIAotICAg
IG1fZGF0YSA9IHZpLm1fZGF0YSA/ICh2b2lkICoqKW1hbGxvYyh2aS5tX3NpemUgKiBzaXplb2Yo
dm9pZCAqKSkgOiAwOworICAgIG1fZGF0YSA9IHZpLm1fZGF0YSA/ICh2b2lkICoqKWZhc3RNYWxs
b2ModmkubV9zaXplICogc2l6ZW9mKHZvaWQgKikpIDogMDsKICAgICBtX3NpemUgPSB2aS5tX3Np
emU7CiAgICAgbV9jb3VudCA9IHZpLm1fY291bnQ7CiAgICAgbV9kZWxldGVJdGVtRnVuY3Rpb24g
PSB2aS5tX2RlbGV0ZUl0ZW1GdW5jdGlvbjsKSW5kZXg6IFdlYkNvcmUva3dxL0tXUVdNYXRyaXgu
bW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva3dxL0tXUVdNYXRyaXgu
bW0sdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNwpkaWZmIC11IC1wIC1yMS43IFdlYkNvcmUva3dx
L0tXUVdNYXRyaXgubW0KLS0tIFdlYkNvcmUva3dxL0tXUVdNYXRyaXgubW0JNSBKdWwgMjAwNSAw
Nzo1Nzo0NiAtMDAwMAkxLjcKKysrIFdlYkNvcmUva3dxL0tXUVdNYXRyaXgubW0JMyBPY3QgMjAw
NSAwNDoyMzowOSAtMDAwMApAQCAtMjQsNiArMjQsNyBAQAogICovCiAKICNpbXBvcnQgIktXUVdN
YXRyaXguaCIKKyNpbmNsdWRlICJjb25maWcuaCIKIAogc3RhdGljIGNvbnN0IGRvdWJsZSBkZWcy
cmFkID0gMC4wMTc0NTMyOTI1MTk5NDMyOTU3Njk7IC8vIHBpLzE4MAogCkluZGV4OiBXZWJDb3Jl
L2t3cS9LV1FXaWRnZXQubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUv
a3dxL0tXUVdpZGdldC5tbSx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4xMTAKZGlmZiAtdSAtcCAt
cjEuMTEwIFdlYkNvcmUva3dxL0tXUVdpZGdldC5tbQotLS0gV2ViQ29yZS9rd3EvS1dRV2lkZ2V0
Lm1tCTMgU2VwIDIwMDUgMjM6MTA6MDIgLTAwMDAJMS4xMTAKKysrIFdlYkNvcmUva3dxL0tXUVdp
ZGdldC5tbQkzIE9jdCAyMDA1IDA0OjIzOjA5IC0wMDAwCkBAIC0yNCw2ICsyNCw3IEBACiAgKi8K
IAogI2ltcG9ydCAiS1dRV2lkZ2V0LmgiCisjaW5jbHVkZSAiY29uZmlnLmgiCiAKICNpbXBvcnQg
IktXUUV4Y2VwdGlvbnMuaCIKICNpbXBvcnQgIktXUUZvdW5kYXRpb25FeHRyYXMuaCIKSW5kZXg6
IFdlYkNvcmUva3dxL0tXUVdpbmRvd1dpZGdldC5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3Zz
L3Jvb3QvV2ViQ29yZS9rd3EvS1dRV2luZG93V2lkZ2V0Lm1tLHYKcmV0cmlldmluZyByZXZpc2lv
biAxLjE0CmRpZmYgLXUgLXAgLXIxLjE0IFdlYkNvcmUva3dxL0tXUVdpbmRvd1dpZGdldC5tbQot
LS0gV2ViQ29yZS9rd3EvS1dRV2luZG93V2lkZ2V0Lm1tCTE4IEphbiAyMDA1IDAwOjQzOjE0IC0w
MDAwCTEuMTQKKysrIFdlYkNvcmUva3dxL0tXUVdpbmRvd1dpZGdldC5tbQkzIE9jdCAyMDA1IDA0
OjIzOjA5IC0wMDAwCkBAIC0yNCw2ICsyNCw3IEBACiAgKi8KIAogI2ltcG9ydCAiS1dRV2luZG93
V2lkZ2V0LmgiCisjaW5jbHVkZSAiY29uZmlnLmgiCiAKICNpbXBvcnQgIldlYkNvcmVCcmlkZ2Uu
aCIKIApJbmRleDogV2ViQ29yZS9rd3EvV2ViQ29yZUJyaWRnZS5tbQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBm
aWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9rd3EvV2ViQ29yZUJyaWRnZS5tbSx2CnJldHJpZXZpbmcg
cmV2aXNpb24gMS40MTgKZGlmZiAtdSAtcCAtcjEuNDE4IFdlYkNvcmUva3dxL1dlYkNvcmVCcmlk
Z2UubW0KLS0tIFdlYkNvcmUva3dxL1dlYkNvcmVCcmlkZ2UubW0JMjcgU2VwIDIwMDUgMjI6Mzc6
MzIgLTAwMDAJMS40MTgKKysrIFdlYkNvcmUva3dxL1dlYkNvcmVCcmlkZ2UubW0JMyBPY3QgMjAw
NSAwNDoyMzowOSAtMDAwMApAQCAtMjQsNiArMjQsNyBAQAogICovCiAKICNpbXBvcnQgIldlYkNv
cmVCcmlkZ2UuaCIKKyNpbmNsdWRlICJjb25maWcuaCIKIAogI2ltcG9ydCAiY3NzaGVscGVyLmgi
CiAjaW1wb3J0ICJkb20yX2V2ZW50c2ltcGwuaCIKSW5kZXg6IFdlYkNvcmUva3dxL1dlYkNvcmVD
YWNoZS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9rd3EvV2ViQ29y
ZUNhY2hlLm1tLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjQKZGlmZiAtdSAtcCAtcjEuNCBXZWJD
b3JlL2t3cS9XZWJDb3JlQ2FjaGUubW0KLS0tIFdlYkNvcmUva3dxL1dlYkNvcmVDYWNoZS5tbQky
MiBKYW4gMjAwMyAwMDoxMjozNiAtMDAwMAkxLjQKKysrIFdlYkNvcmUva3dxL1dlYkNvcmVDYWNo
ZS5tbQkzIE9jdCAyMDA1IDA0OjIzOjA5IC0wMDAwCkBAIC0yNCw2ICsyNCw3IEBACiAgKi8KIAog
I2ltcG9ydCAiV2ViQ29yZUNhY2hlLmgiCisjaW5jbHVkZSAiY29uZmlnLmgiCiAKICNpbXBvcnQg
ImxvYWRlci5oIgogCkluZGV4OiBXZWJDb3JlL2t3cS9XZWJDb3JlRW5jb2RpbmdzLm1tCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2t3cS9XZWJDb3JlRW5jb2RpbmdzLm1t
LHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjYKZGlmZiAtdSAtcCAtcjEuNiBXZWJDb3JlL2t3cS9X
ZWJDb3JlRW5jb2RpbmdzLm1tCi0tLSBXZWJDb3JlL2t3cS9XZWJDb3JlRW5jb2RpbmdzLm1tCTUg
SnVuIDIwMDMgMDA6MjY6MzggLTAwMDAJMS42CisrKyBXZWJDb3JlL2t3cS9XZWJDb3JlRW5jb2Rp
bmdzLm1tCTMgT2N0IDIwMDUgMDQ6MjM6MDkgLTAwMDAKQEAgLTI0LDYgKzI0LDcgQEAKICAqLwog
CiAjaW1wb3J0ICJXZWJDb3JlRW5jb2RpbmdzLmgiCisjaW5jbHVkZSAiY29uZmlnLmgiCiAKICNp
bXBvcnQgImRlY29kZXIuaCIKIApJbmRleDogV2ViQ29yZS9rd3EvV2ViQ29yZUphdmFTY3JpcHQu
bW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva3dxL1dlYkNvcmVKYXZh
U2NyaXB0Lm1tLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjkKZGlmZiAtdSAtcCAtcjEuOSBXZWJD
b3JlL2t3cS9XZWJDb3JlSmF2YVNjcmlwdC5tbQotLS0gV2ViQ29yZS9rd3EvV2ViQ29yZUphdmFT
Y3JpcHQubW0JMjggU2VwIDIwMDUgMDI6MjU6NTIgLTAwMDAJMS45CisrKyBXZWJDb3JlL2t3cS9X
ZWJDb3JlSmF2YVNjcmlwdC5tbQkzIE9jdCAyMDA1IDA0OjIzOjA5IC0wMDAwCkBAIC0yNCw2ICsy
NCw3IEBACiAgKi8KIAogI2ltcG9ydCAiV2ViQ29yZUphdmFTY3JpcHQuaCIKKyNpbmNsdWRlICJj
b25maWcuaCIKIAogI2ltcG9ydCA8SmF2YVNjcmlwdENvcmUvY29sbGVjdG9yLmg+CiAjaW1wb3J0
IDxKYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci5oPgpJbmRleDogV2ViQ29yZS9rd3EvV2ViQ29y
ZVNjcmlwdERlYnVnZ2VyLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3Jl
L2t3cS9XZWJDb3JlU2NyaXB0RGVidWdnZXIubW0sdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMwpk
aWZmIC11IC1wIC1yMS4zIFdlYkNvcmUva3dxL1dlYkNvcmVTY3JpcHREZWJ1Z2dlci5tbQotLS0g
V2ViQ29yZS9rd3EvV2ViQ29yZVNjcmlwdERlYnVnZ2VyLm1tCTE5IFNlcCAyMDA1IDE4OjUyOjEz
IC0wMDAwCTEuMworKysgV2ViQ29yZS9rd3EvV2ViQ29yZVNjcmlwdERlYnVnZ2VyLm1tCTMgT2N0
IDIwMDUgMDQ6MjM6MDkgLTAwMDAKQEAgLTI3LDYgKzI3LDcgQEAKICAqLwogCiAjaW1wb3J0IDxX
ZWJDb3JlL1dlYkNvcmVTY3JpcHREZWJ1Z2dlci5oPgorI2luY2x1ZGUgImNvbmZpZy5oIgogI2lt
cG9ydCA8SmF2YVNjcmlwdENvcmUvV2ViU2NyaXB0T2JqZWN0UHJpdmF0ZS5oPgogI2ltcG9ydCA8
SmF2YVNjcmlwdENvcmUvZGVidWdnZXIuaD4KICNpbXBvcnQgPEphdmFTY3JpcHRDb3JlL2NvbnRl
eHQuaD4KSW5kZXg6IFdlYkNvcmUva3dxL1dlYkNvcmVTZXR0aW5ncy5tbQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJD
UyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9rd3EvV2ViQ29yZVNldHRpbmdzLm1tLHYKcmV0cmll
dmluZyByZXZpc2lvbiAxLjEyCmRpZmYgLXUgLXAgLXIxLjEyIFdlYkNvcmUva3dxL1dlYkNvcmVT
ZXR0aW5ncy5tbQotLS0gV2ViQ29yZS9rd3EvV2ViQ29yZVNldHRpbmdzLm1tCTcgSnVuIDIwMDUg
MTU6MzQ6MDggLTAwMDAJMS4xMgorKysgV2ViQ29yZS9rd3EvV2ViQ29yZVNldHRpbmdzLm1tCTMg
T2N0IDIwMDUgMDQ6MjM6MDkgLTAwMDAKQEAgLTI0LDYgKzI0LDcgQEAKICAqLwogCiAjaW1wb3J0
ICJXZWJDb3JlU2V0dGluZ3MuaCIKKyNpbmNsdWRlICJjb25maWcuaCIKIAogI2ltcG9ydCAiS1dR
Rm91bmRhdGlvbkV4dHJhcy5oIgogI2ltcG9ydCAiS1dRS0hUTUxQYXJ0LmgiCkluZGV4OiBXZWJD
b3JlL2t3cS9XZWJDb3JlVGV4dFJlbmRlcmVyRmFjdG9yeS5tbQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxl
OiAvY3ZzL3Jvb3QvV2ViQ29yZS9rd3EvV2ViQ29yZVRleHRSZW5kZXJlckZhY3RvcnkubW0sdgpy
ZXRyaWV2aW5nIHJldmlzaW9uIDEuMjYKZGlmZiAtdSAtcCAtcjEuMjYgV2ViQ29yZS9rd3EvV2Vi
Q29yZVRleHRSZW5kZXJlckZhY3RvcnkubW0KLS0tIFdlYkNvcmUva3dxL1dlYkNvcmVUZXh0UmVu
ZGVyZXJGYWN0b3J5Lm1tCTI3IFNlcCAyMDA1IDIyOjM3OjMzIC0wMDAwCTEuMjYKKysrIFdlYkNv
cmUva3dxL1dlYkNvcmVUZXh0UmVuZGVyZXJGYWN0b3J5Lm1tCTMgT2N0IDIwMDUgMDQ6MjM6MDkg
LTAwMDAKQEAgLTI0LDYgKzI0LDcgQEAKICAqLwogCiAjaW1wb3J0ICJXZWJDb3JlVGV4dFJlbmRl
cmVyLmgiCisjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW1wb3J0ICJXZWJDb3JlVGV4dFJlbmRlcmVy
RmFjdG9yeS5oIgogCiAjaW1wb3J0IDxreG1sY29yZS9Bc3NlcnRpb25zLmg+CkluZGV4OiBXZWJD
b3JlL2t3cS9jYW4tY29udmVydC5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2Vi
Q29yZS9rd3EvY2FuLWNvbnZlcnQubW0sdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMQpkaWZmIC11
IC1wIC1yMS4xIFdlYkNvcmUva3dxL2Nhbi1jb252ZXJ0Lm1tCi0tLSBXZWJDb3JlL2t3cS9jYW4t
Y29udmVydC5tbQk3IEZlYiAyMDA0IDIwOjU2OjU0IC0wMDAwCTEuMQorKysgV2ViQ29yZS9rd3Ev
Y2FuLWNvbnZlcnQubW0JMyBPY3QgMjAwNSAwNDoyMzowOSAtMDAwMApAQCAtNSw2ICs1LDcgQEAg
bWFrZSAmJiBnKysgY2FuLWNvbnZlcnQubW0gLWZyYW1ld29yayBDYQogKi8KIAogI2luY2x1ZGUg
PENhcmJvbi9DYXJib24uaD4KKyNpbmNsdWRlICJjb25maWcuaCIKIAogY29uc3QgaW50IE5vRW5j
b2RpbmdGbGFncyA9IDA7CiBjb25zdCBpbnQgQmlnRW5kaWFuID0gMDsK
</data>
<flag name="review"
          id="666"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>4171</attachid>
            <date>2005-10-03 00:35:26 -0700</date>
            <delta_ts>2005-10-03 09:38:25 -0700</delta_ts>
            <desc>addressed darin&apos;s comments</desc>
            <filename>fm-fixed-2.patch.txt</filename>
            <type>text/plain</type>
            <size>267096</size>
            <attacher name="Maciej Stachowiak">mjs</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3Zz
L3Jvb3QvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjg0
OApkaWZmIC1wIC11IC1yMS44NDggSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCi0tLSBKYXZhU2Ny
aXB0Q29yZS9DaGFuZ2VMb2cJMzAgU2VwIDIwMDUgMTY6MTY6MTIgLTAwMDAJMS44NDgKKysrIEph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkzIE9jdCAyMDA1IDA3OjM0OjIxIC0wMDAwCkBAIC0xLDMg
KzEsMTI5IEBACisyMDA1LTEwLTAyICBNYWNpZWogU3RhY2hvd2lhayAgPG1qc0BhcHBsZS5jb20+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKwlBIG51bWJlciBvZiBv
cHRpbWl6YXRpb25zIHRvIHRoZSBuZXcgdGhyZWFkc2FmZSBtYWxsb2MgdGhhdCBtYWtlIGl0IGFj
dHVhbGx5IGFzIGZhc3QKKwlhcyBkbG1hbGxvYyAoSSBtZWFzdXJlZCB3cm9uZyBiZWZvcmUpIGFu
ZCBhcyBtZW1vcnktZWZmaWNpZW50IGFzIHRoZSBzeXN0ZW0gbWFsbG9jLgorCisJLSB1c2UgZmFz
dE1hbGxvYyBmb3IgZXZlcnl0aGluZyAtIGl0IG5vdyBnZXRzIGFwcGxpZWQgdG8gYWxsIG5ldy9k
ZWxldGUgYWxsb2NhdGlvbnMKKwl2aWEgYSBwcml2YXRlIGlubGluZSBvcGVyYXRvciBuZXcgdGhh
dCBpcyBub3cgaW5jbHVkZWQgaW50byBldmVyeSBmaWxlIHZpYSBjb25maWcuaC4KKworCS0gdHdl
YWtlZCBzb21lIG9mIHRoZSBudW1lcmljIHBhcmFtZXRlcnMgZm9yIHNpemUgY2xhc3NlcyBhbmQg
YW1vdW50IG9mIHdhc3RlZCBtZW1vcnkKKwlhbGxvd2VkIHBlciBhbGxvY2F0aW9uIC0gdGhpcyBz
YXZlcyBvbiBtZW1vcnkgdXNlIGFuZCBjb25zZXF1ZW50bHkgaW1wcm92ZXMgc3BlZWQuCisKKwkt
IHNvIGxvbmcgYXMgdGhlIGFsbG9jYXRvciBpcyBub3QgYmVpbmcgdXNlZCBvbiBiYWNrZ3JvdW5k
IHRocmVhZHMsIGdldCB0aGUgcGVyLXRocmVhZAorCWNhY2hlIGZyb20gYSBnbG9iYWwgdmFyaWFi
bGUgaW5zdGVhZCBvZiBmcm9tIHB0aHJlYWRfZ2V0c3BlY2lmaWMsIHNpbmNlIHRoZSBsYXR0ZXIg
aXMgc2xvdy4KKworCS0gaW5saW5lIG1vcmUgZnVuY3Rpb25zLCBhbmQgZm9yY2UgdGhlIG9uZXMg
R0NDIHJlZnVzZXMgdG8gaW5saW5lIHdpdGggCisJYXR0cmlidXRlKGFsd2F5c19pbmxpbmUpLCBu
ZWFybHkgYWxsIG9mIHRoZXNlIGhhdmUgb25lIGNhbGwgc2l0ZSBzbyBpbmxpbmluZyB0aGVtIGhh
cyAKKwl0byBiZSBhIHdpbi4KKworCS0gdXNlIHNvbWUgdHJpY2tzIHRvIGNhbGN1bGF0ZSBhbGxv
Y2F0aW9uIHNpemUgbW9yZSBlZmZpY2llbnRseSBhbmQgZmV3ZXIgdGltZXMgZm9yIHNtYWxsCisJ
YWxsb2NhdGlvbnMsIHRvIGF2b2lkIGhpdHRpbmcgdGhlIGh1Z2Ugc2l6ZSB0YWJsZSBhcnJheS4K
KworCS0gYXZvaWQgaGl0dGluZyB0aGUgcGVyLXRocmVhZCBjYWNoZSBvbiBjb2RlIHBhdGhzIHRo
YXQgZG9uJ3QgbmVlZCBpdC4KKworCS0gaW1wbGVtZW50IGlubGluZSBhc3NlbWJseSB2ZXJzaW9u
IG9mIHNwaW5sb2NrIGZvciBQb3dlclBDICh3YXMgYWxyZWFkeSBkb25lIGZvciB4ODYpCisKKyAg
ICAgICAgKiBiaW5kaW5ncy9OUF9qc29iamVjdC5jcHA6CisgICAgICAgICogYmluZGluZ3MvYy9j
X2NsYXNzLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9jL2NfaW5zdGFuY2UuY3BwOgorICAgICAg
ICAqIGJpbmRpbmdzL2MvY19ydW50aW1lLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9jL2NfdXRp
bGl0eS5jcHA6CisgICAgICAgICogYmluZGluZ3Mvam5pL2puaV9jbGFzcy5jcHA6CisgICAgICAg
ICogYmluZGluZ3Mvam5pL2puaV9pbnN0YW5jZS5jcHA6CisgICAgICAgICogYmluZGluZ3Mvam5p
L2puaV9qc29iamVjdC5jcHA6CisgICAgICAgICogYmluZGluZ3Mvam5pL2puaV9vYmpjLm1tOgor
ICAgICAgICAqIGJpbmRpbmdzL2puaS9qbmlfcnVudGltZS5jcHA6CisgICAgICAgICogYmluZGlu
Z3Mvam5pL2puaV91dGlsaXR5LmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9ucHJ1bnRpbWUuY3Bw
OgorICAgICAgICAqIGJpbmRpbmdzL29iamMvV2ViU2NyaXB0T2JqZWN0Lm1tOgorICAgICAgICAq
IGJpbmRpbmdzL29iamMvb2JqY19jbGFzcy5tbToKKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL29i
amNfaW5zdGFuY2UubW06CisgICAgICAgICogYmluZGluZ3Mvb2JqYy9vYmpjX3J1bnRpbWUubW06
CisgICAgICAgICogYmluZGluZ3Mvb2JqYy9vYmpjX3V0aWxpdHkubW06CisgICAgICAgICogYmlu
ZGluZ3MvcnVudGltZS5jcHA6CisgICAgICAgICogYmluZGluZ3MvcnVudGltZV9hcnJheS5jcHA6
CisgICAgICAgICogYmluZGluZ3MvcnVudGltZV9tZXRob2QuY3BwOgorICAgICAgICAqIGJpbmRp
bmdzL3J1bnRpbWVfb2JqZWN0LmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9ydW50aW1lX3Jvb3Qu
Y3BwOgorICAgICAgICAqIGJpbmRpbmdzL3Rlc3RiaW5kaW5ncy5jcHA6CisgICAgICAgICogYmlu
ZGluZ3MvdGVzdGJpbmRpbmdzLm1tOgorICAgICAgICAqIGtqcy9hcnJheV9vYmplY3QuY3BwOgor
ICAgICAgICAoQXJyYXlJbnN0YW5jZUltcDo6QXJyYXlJbnN0YW5jZUltcCk6CisgICAgICAgIChB
cnJheUluc3RhbmNlSW1wOjp+QXJyYXlJbnN0YW5jZUltcCk6CisgICAgICAgIChBcnJheUluc3Rh
bmNlSW1wOjpyZXNpemVTdG9yYWdlKToKKyAgICAgICAgKiBranMvYm9vbF9vYmplY3QuY3BwOgor
ICAgICAgICAqIGtqcy9jb2xsZWN0b3IuY3BwOgorICAgICAgICAoS0pTOjpDb2xsZWN0b3I6OnJl
Z2lzdGVyVGhyZWFkKToKKyAgICAgICAgKiBranMvY29uZmlnLmg6CisgICAgICAgICoga2pzL2Rl
YnVnZ2VyLmNwcDoKKyAgICAgICAgKiBranMvZXJyb3Jfb2JqZWN0LmNwcDoKKyAgICAgICAgKiBr
anMvZnVuY3Rpb24uY3BwOgorICAgICAgICAqIGtqcy9mdW5jdGlvbl9vYmplY3QuY3BwOgorICAg
ICAgICAqIGtqcy9pZGVudGlmaWVyLmNwcDoKKyAgICAgICAgKEtKUzo6SWRlbnRpZmllcjo6cmVo
YXNoKToKKyAgICAgICAgKiBranMvaW50ZXJuYWwuY3BwOgorICAgICAgICAoS0pTOjpQYXJzZXI6
OnNhdmVOZXdOb2RlKToKKyAgICAgICAgKEtKUzo6Y2xlYXJOZXdOb2Rlcyk6CisgICAgICAgICog
a2pzL2ludGVycHJldGVyLmNwcDoKKyAgICAgICAgKiBranMvbGV4ZXIuY3BwOgorICAgICAgICAo
TGV4ZXI6OmRvbmVQYXJzaW5nKToKKyAgICAgICAgKExleGVyOjptYWtlSWRlbnRpZmllcik6Cisg
ICAgICAgIChMZXhlcjo6bWFrZVVTdHJpbmcpOgorICAgICAgICAqIGtqcy9saXN0LmNwcDoKKyAg
ICAgICAgKiBranMvbWF0aF9vYmplY3QuY3BwOgorICAgICAgICAqIGtqcy9ub2Rlcy5jcHA6Cisg
ICAgICAgICoga2pzL25vZGVzLmg6CisgICAgICAgICoga2pzL25vZGVzMnN0cmluZy5jcHA6Cisg
ICAgICAgICoga2pzL251bWJlcl9vYmplY3QuY3BwOgorICAgICAgICAoaW50ZWdlcl9wYXJ0X25v
ZXhwKToKKyAgICAgICAgKGNoYXJfc2VxdWVuY2UpOgorICAgICAgICAqIGtqcy9vYmplY3QuY3Bw
OgorICAgICAgICAqIGtqcy9vYmplY3Rfb2JqZWN0LmNwcDoKKyAgICAgICAgKiBranMvcHJvcGVy
dHlfbWFwLmNwcDoKKyAgICAgICAgKiBranMvcHJvcGVydHlfc2xvdC5jcHA6CisgICAgICAgICog
a2pzL3Byb3RlY3RlZF92YWx1ZXMuY3BwOgorICAgICAgICAoS0pTOjpQcm90ZWN0ZWRWYWx1ZXM6
OnJlaGFzaCk6CisgICAgICAgICoga2pzL3JlZmVyZW5jZS5jcHA6CisgICAgICAgICoga2pzL3Jl
ZmVyZW5jZV9saXN0LmNwcDoKKyAgICAgICAgKiBranMvcmVnZXhwLmNwcDoKKyAgICAgICAgKiBr
anMvcmVnZXhwX29iamVjdC5jcHA6CisgICAgICAgICoga2pzL3Njb3BlX2NoYWluLmNwcDoKKyAg
ICAgICAgKiBranMvc2NvcGVfY2hhaW4uaDoKKyAgICAgICAgKiBranMvc3RyaW5nX29iamVjdC5j
cHA6CisgICAgICAgICoga2pzL3Rlc3RranMuY3BwOgorICAgICAgICAqIGtqcy91c3RyaW5nLmg6
CisgICAgICAgICoga2pzL3ZhbHVlLmNwcDoKKyAgICAgICAgKiBreG1sY29yZS9Bc3NlcnRpb25z
Lm1tOgorICAgICAgICAqIGt4bWxjb3JlL0Zhc3RNYWxsb2MuY3BwOgorICAgICAgICAoS1hNTENv
cmU6OkluaXRTaXplQ2xhc3Nlcyk6CisgICAgICAgIChLWE1MQ29yZTo6RExMX0lzRW1wdHkpOgor
ICAgICAgICAoS1hNTENvcmU6OkRMTF9QcmVwZW5kKToKKyAgICAgICAgKEtYTUxDb3JlOjpUQ01h
bGxvY19DZW50cmFsX0ZyZWVMaXN0OjpJbnNlcnQpOgorICAgICAgICAoS1hNTENvcmU6OlRDTWFs
bG9jX0NlbnRyYWxfRnJlZUxpc3Q6OlJlbW92ZSk6CisgICAgICAgIChLWE1MQ29yZTo6VENNYWxs
b2NfQ2VudHJhbF9GcmVlTGlzdDo6UG9wdWxhdGUpOgorICAgICAgICAoS1hNTENvcmU6OlRDTWFs
bG9jX1RocmVhZENhY2hlOjpBbGxvY2F0ZSk6CisgICAgICAgIChLWE1MQ29yZTo6VENNYWxsb2Nf
VGhyZWFkQ2FjaGU6OkZldGNoRnJvbUNlbnRyYWxDYWNoZSk6CisgICAgICAgIChLWE1MQ29yZTo6
ZmFzdE1hbGxvY1JlZ2lzdGVyVGhyZWFkKToKKyAgICAgICAgKEtYTUxDb3JlOjpUQ01hbGxvY19U
aHJlYWRDYWNoZTo6R2V0Q2FjaGUpOgorICAgICAgICAoS1hNTENvcmU6OlRDTWFsbG9jX1RocmVh
ZENhY2hlOjpHZXRDYWNoZUlmUHJlc2VudCk6CisgICAgICAgIChLWE1MQ29yZTo6VENNYWxsb2Nf
VGhyZWFkQ2FjaGU6OkNyZWF0ZUNhY2hlSWZOZWNlc3NhcnkpOgorICAgICAgICAoS1hNTENvcmU6
OmRvX21hbGxvYyk6CisgICAgICAgIChLWE1MQ29yZTo6ZG9fZnJlZSk6CisgICAgICAgIChLWE1M
Q29yZTo6cmVhbGxvYyk6CisgICAgICAgICoga3htbGNvcmUvRmFzdE1hbGxvYy5oOgorICAgICAg
ICAob3BlcmF0b3IgbmV3KToKKyAgICAgICAgKG9wZXJhdG9yIGRlbGV0ZSk6CisgICAgICAgIChv
cGVyYXRvciBuZXdbXSk6CisgICAgICAgIChvcGVyYXRvciBkZWxldGVbXSk6CisgICAgICAgICog
a3htbGNvcmUvSGFzaFRhYmxlLmNwcDoKKyAgICAgICAgKiBreG1sY29yZS9UQ1NwaW5Mb2NrLmg6
CisgICAgICAgIChUQ01hbGxvY19TcGluTG9jazo6TG9jayk6CisgICAgICAgIChUQ01hbGxvY19T
cGluTG9jazo6VW5sb2NrKToKKyAgICAgICAgKFRDTWFsbG9jX1Nsb3dMb2NrKToKKyAgICAgICAg
KiBreG1sY29yZS9UQ1N5c3RlbUFsbG9jLmNwcDoKKwogMjAwNS0wOS0zMCAgR2VvZmZyZXkgR2Fy
ZW4gIDxnZ2FyZW5AYXBwbGUuY29tPgogCiAgICAgICAgIC0gU2Vjb25kIGN1dCBhdCBmaXhpbmcg
PHJkYXI6Ly9wcm9ibGVtLzQyNzUyMDY+IERlbnZlciBSZWdyZXNzaW9uOiBTZWVkOiAKSW5kZXg6
IEphdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlUHJlZml4LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmls
ZTogL2N2cy9yb290L0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlUHJlZml4LmgsdgpyZXRy
aWV2aW5nIHJldmlzaW9uIDEuNQpkaWZmIC1wIC11IC1yMS41IEphdmFTY3JpcHRDb3JlL0phdmFT
Y3JpcHRDb3JlUHJlZml4LmgKLS0tIEphdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlUHJlZml4
LmgJOCBGZWIgMjAwNCAyMToxMzowNiAtMDAwMAkxLjUKKysrIEphdmFTY3JpcHRDb3JlL0phdmFT
Y3JpcHRDb3JlUHJlZml4LmgJMyBPY3QgMjAwNSAwNzozNDoyMSAtMDAwMApAQCAtNCw4ICs0LDYg
QEAKICNkZWZpbmUgTlVMTCAoKHZvaWQgKikwKQogI2VuZGlmCiAKLSNpbmNsdWRlIDxjb25maWcu
aD4KLQogI2luY2x1ZGUgPGFzc2VydC5oPgogI2luY2x1ZGUgPGN0eXBlLmg+CiAjaW5jbHVkZSA8
ZmxvYXQuaD4KQEAgLTQyLDQgKzQwLDggQEAKICNpbmNsdWRlIDxsaXN0PgogI2luY2x1ZGUgPHR5
cGVpbmZvPgogCisjaWZkZWYgX19jcGx1c3BsdXMKKyNkZWZpbmUgbmV3ICgiaWYgeW91IHVzZSBu
ZXcvZGVsZXRlIG1ha2Ugc3VyZSB0byBpbmNsdWRlIGNvbmZpZy5oIGF0IHRoZSB0b3Agb2YgdGhl
IGZpbGUiKCkpIAorI2RlZmluZSBkZWxldGUgKCJpZiB5b3UgdXNlIG5ldy9kZWxldGUgbWFrZSBz
dXJlIHRvIGluY2x1ZGUgY29uZmlnLmggYXQgdGhlIHRvcCBvZiB0aGUgZmlsZSIoKSkgCisjZW5k
aWYKICNlbmRpZgpJbmRleDogSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvSmF2YVNjcmlw
dENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaix2CnJldHJpZXZp
bmcgcmV2aXNpb24gMS4xNgpkaWZmIC1wIC11IC1yMS4xNiBKYXZhU2NyaXB0Q29yZS9KYXZhU2Ny
aXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCi0tLSBKYXZhU2NyaXB0Q29yZS9KYXZh
U2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCTI5IFNlcCAyMDA1IDA3OjI0OjE2
IC0wMDAwCTEuMTYKKysrIEphdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oJMyBPY3QgMjAwNSAwNzozNDoyMyAtMDAwMApAQCAtNDQsNiArNDQsNyBA
QAogCQk2NTYyMUU2RTA4OUU4NTk3MDA3NjBGMzUgLyogcHJvcGVydHlfc2xvdC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjU2MjFFNkMwODlFODU5NzAw
NzYwRjM1IC8qIHByb3BlcnR5X3Nsb3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQk2NTYyMUU2RjA4OUU4NUQzMDA3NjBGMzUgLyogcHJvcGVydHlf
c2xvdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2
NTYyMUU2QjA4OUU4NTk3MDA3NjBGMzUgLyogcHJvcGVydHlfc2xvdC5jcHAgKi87IH07CiAJCTY1
NjIxRTcwMDg5RTg1RDMwMDc2MEYzNSAvKiBwcm9wZXJ0eV9zbG90LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2NTYyMUU2QzA4OUU4NTk3MDA3NjBGMzUg
LyogcHJvcGVydHlfc2xvdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CisJCTY1RDdEMTlDMDhGMTBCNUIwMDE1QUJEOCAvKiBGYXN0TWFsbG9jSW50ZXJu
YWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDY1RDdE
MTlCMDhGMTBCNUIwMDE1QUJEOCAvKiBGYXN0TWFsbG9jSW50ZXJuYWwuaCAqLzsgfTsKIAkJNjVE
RkM5MzAwOEVBMTczQTAwRjczMDBCIC8qIEhhc2hGdW5jdGlvbnMuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDY1REZDOTJBMDhFQTE3M0EwMEY3MzAwQiAv
KiBIYXNoRnVuY3Rpb25zLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJNjVERkM5MzEwOEVBMTczQTAwRjczMDBCIC8qIEhhc2hNYXAuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDY1REZDOTJCMDhFQTE3M0Ew
MEY3MzAwQiAvKiBIYXNoTWFwLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJNjVERkM5MzIwOEVBMTczQTAwRjczMDBCIC8qIEhhc2hTZXQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDY1REZDOTJDMDhFQTE3
M0EwMEY3MzAwQiAvKiBIYXNoU2V0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKQEAgLTUxNSw2ICs1MTYsNyBAQAogCQk2NTYyMUU2QjA4OUU4NTk3MDA3
NjBGMzUgLyogcHJvcGVydHlfc2xvdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gcHJvcGVydHlfc2xvdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTY1NjIxRTZDMDg5RTg1OTcwMDc2MEYzNSAvKiBwcm9wZXJ0eV9zbG90LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBwcm9wZXJ0eV9zbG90Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTY1QzAyRkJCMDYzNzQ2MkEwMDNFN0VFNiAvKiBwcm90ZWN0LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBwcm90ZWN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTY1RDdEMTlCMDhGMTBCNUIwMDE1QUJEOCAvKiBGYXN0TWFsbG9jSW50ZXJu
YWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZhc3RNYWxsb2NJbnRlcm5h
bC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2NURGQzkyQTA4RUExNzNBMDBGNzMw
MEIgLyogSGFzaEZ1bmN0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
SGFzaEZ1bmN0aW9ucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2NURGQzkyQjA4
RUExNzNBMDBGNzMwMEIgLyogSGFzaE1hcC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gSGFzaE1hcC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2NURGQzkyQzA4
RUExNzNBMDBGNzMwMEIgLyogSGFzaFNldC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gSGFzaFNldC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtODQ3LDYgKzg0
OSw3IEBACiAJCTY1MTYyRUYxMDhFNkEyMUMwMDc1NTZDRCAvKiBreG1sY29yZSAqLyA9IHsKIAkJ
CWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJNjVEN0QxOUIwOEYxMEI1QjAw
MTVBQkQ4IC8qIEZhc3RNYWxsb2NJbnRlcm5hbC5oICovLAogCQkJCTY1NTdFOEY3MDhFQTVENEQw
MDQ5Q0RGQyAvKiBIYXNoTWFwUHRyU3BlYy5oICovLAogCQkJCTY1REZDOTJBMDhFQTE3M0EwMEY3
MzAwQiAvKiBIYXNoRnVuY3Rpb25zLmggKi8sCiAJCQkJNjVERkM5MkIwOEVBMTczQTAwRjczMDBC
IC8qIEhhc2hNYXAuaCAqLywKQEAgLTEwMjksNiArMTAzMiw3IEBACiAJCQkJNjVERkM5MzQwOEVB
MTczQTAwRjczMDBCIC8qIEhhc2hUYWJsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNjVERkM5MzUw
OEVBMTczQTAwRjczMDBCIC8qIEhhc2hUcmFpdHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTY1NTdF
OEY4MDhFQTVENEQwMDQ5Q0RGQyAvKiBIYXNoTWFwUHRyU3BlYy5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJNjVEN0QxOUMwOEYxMEI1QjAwMTVBQkQ4IC8qIEZhc3RNYWxsb2NJbnRlcm5hbC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9
IDA7CiAJCX07CkluZGV4OiBKYXZhU2NyaXB0Q29yZS9iaW5kaW5ncy9OUF9qc29iamVjdC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L0phdmFTY3JpcHRDb3JlL2JpbmRpbmdzL05Q
X2pzb2JqZWN0LmNwcCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4yMwpkaWZmIC1wIC11IC1yMS4y
MyBKYXZhU2NyaXB0Q29yZS9iaW5kaW5ncy9OUF9qc29iamVjdC5jcHAKLS0tIEphdmFTY3JpcHRD
b3JlL2JpbmRpbmdzL05QX2pzb2JqZWN0LmNwcAkxOSBTZXAgMjAwNSAwNjo1NzoyNiAtMDAwMAkx
LjIzCisrKyBKYXZhU2NyaXB0Q29yZS9iaW5kaW5ncy9OUF9qc29iamVjdC5jcHAJMyBPY3QgMjAw
NSAwNzozNDoyMyAtMDAwMApAQCAtMjIsNiArMjIsNyBAQAogICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiAgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLiAKICAqLworI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgPE5QX2pzb2Jq
ZWN0Lmg+CiAKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9ucHJ1bnRpbWUuaD4KSW5kZXg6IEph
dmFTY3JpcHRDb3JlL2JpbmRpbmdzL25wcnVudGltZS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTog
L2N2cy9yb290L0phdmFTY3JpcHRDb3JlL2JpbmRpbmdzL25wcnVudGltZS5jcHAsdgpyZXRyaWV2
aW5nIHJldmlzaW9uIDEuMTkKZGlmZiAtcCAtdSAtcjEuMTkgSmF2YVNjcmlwdENvcmUvYmluZGlu
Z3MvbnBydW50aW1lLmNwcAotLS0gSmF2YVNjcmlwdENvcmUvYmluZGluZ3MvbnBydW50aW1lLmNw
cAkxNiBBdWcgMjAwNSAyMjowMToyOSAtMDAwMAkxLjE5CisrKyBKYXZhU2NyaXB0Q29yZS9iaW5k
aW5ncy9ucHJ1bnRpbWUuY3BwCTMgT2N0IDIwMDUgMDc6MzQ6MjMgLTAwMDAKQEAgLTIyLDYgKzIy
LDcgQEAKICAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCiAgKi8KKyNpbmNsdWRlICJj
b25maWcuaCIKICNpbmNsdWRlIDxDb3JlRm91bmRhdGlvbi9Db3JlRm91bmRhdGlvbi5oPgogCiAj
aW5jbHVkZSA8bnBydW50aW1lLmg+CkluZGV4OiBKYXZhU2NyaXB0Q29yZS9iaW5kaW5ncy9ydW50
aW1lLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvSmF2YVNjcmlwdENvcmUvYmlu
ZGluZ3MvcnVudGltZS5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMjAKZGlmZiAtcCAtdSAt
cjEuMjAgSmF2YVNjcmlwdENvcmUvYmluZGluZ3MvcnVudGltZS5jcHAKLS0tIEphdmFTY3JpcHRD
b3JlL2JpbmRpbmdzL3J1bnRpbWUuY3BwCTE5IFNlcCAyMDA1IDA2OjU3OjI2IC0wMDAwCTEuMjAK
KysrIEphdmFTY3JpcHRDb3JlL2JpbmRpbmdzL3J1bnRpbWUuY3BwCTMgT2N0IDIwMDUgMDc6MzQ6
MjMgLTAwMDAKQEAgLTIyLDYgKzIyLDcgQEAKICAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4gCiAgKi8KKyNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlIDx2YWx1ZS5oPgogI2luY2x1
ZGUgPGludGVycHJldGVyLmg+CiAKSW5kZXg6IEphdmFTY3JpcHRDb3JlL2JpbmRpbmdzL3J1bnRp
bWVfYXJyYXkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9KYXZhU2NyaXB0Q29y
ZS9iaW5kaW5ncy9ydW50aW1lX2FycmF5LmNwcCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4xMQpk
aWZmIC1wIC11IC1yMS4xMSBKYXZhU2NyaXB0Q29yZS9iaW5kaW5ncy9ydW50aW1lX2FycmF5LmNw
cAotLS0gSmF2YVNjcmlwdENvcmUvYmluZGluZ3MvcnVudGltZV9hcnJheS5jcHAJMTYgQXVnIDIw
MDUgMDA6NDc6MjEgLTAwMDAJMS4xMQorKysgSmF2YVNjcmlwdENvcmUvYmluZGluZ3MvcnVudGlt
ZV9hcnJheS5jcHAJMyBPY3QgMjAwNSAwNzozNDoyMyAtMDAwMApAQCAtMjIsNiArMjIsNyBAQAog
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKICAqLworI2luY2x1ZGUgImNvbmZpZy5o
IgogI2luY2x1ZGUgPGlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxpbnRlcnByZXRlci5oPgogI2lu
Y2x1ZGUgPHJ1bnRpbWUuaD4KSW5kZXg6IEphdmFTY3JpcHRDb3JlL2JpbmRpbmdzL3J1bnRpbWVf
bWV0aG9kLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvSmF2YVNjcmlwdENvcmUv
YmluZGluZ3MvcnVudGltZV9tZXRob2QuY3BwLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjEzCmRp
ZmYgLXAgLXUgLXIxLjEzIEphdmFTY3JpcHRDb3JlL2JpbmRpbmdzL3J1bnRpbWVfbWV0aG9kLmNw
cAotLS0gSmF2YVNjcmlwdENvcmUvYmluZGluZ3MvcnVudGltZV9tZXRob2QuY3BwCTggQXVnIDIw
MDUgMDQ6MDc6MjIgLTAwMDAJMS4xMworKysgSmF2YVNjcmlwdENvcmUvYmluZGluZ3MvcnVudGlt
ZV9tZXRob2QuY3BwCTMgT2N0IDIwMDUgMDc6MzQ6MjMgLTAwMDAKQEAgLTIzLDYgKzIzLDcgQEAK
ICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuIAogICovCiAgCisjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAi
Y29udGV4dC5oIgogI2luY2x1ZGUgImludGVybmFsLmgiCiAjaW5jbHVkZSAicnVudGltZV9tZXRo
b2QuaCIKSW5kZXg6IEphdmFTY3JpcHRDb3JlL2JpbmRpbmdzL3J1bnRpbWVfb2JqZWN0LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvSmF2YVNjcmlwdENvcmUvYmluZGluZ3MvcnVu
dGltZV9vYmplY3QuY3BwLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjI4CmRpZmYgLXAgLXUgLXIx
LjI4IEphdmFTY3JpcHRDb3JlL2JpbmRpbmdzL3J1bnRpbWVfb2JqZWN0LmNwcAotLS0gSmF2YVNj
cmlwdENvcmUvYmluZGluZ3MvcnVudGltZV9vYmplY3QuY3BwCTggQXVnIDIwMDUgMDQ6MDc6MjIg
LTAwMDAJMS4yOAorKysgSmF2YVNjcmlwdENvcmUvYmluZGluZ3MvcnVudGltZV9vYmplY3QuY3Bw
CTMgT2N0IDIwMDUgMDc6MzQ6MjMgLTAwMDAKQEAgLTIzLDYgKzIzLDcgQEAKICAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuIAogICovCiAKKyNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJlcnJvcl9vYmplY3Qu
aCIKICNpbmNsdWRlICJmdW5jdGlvbi5oIgogI2luY2x1ZGUgImludGVycHJldGVyLmgiCkluZGV4
OiBKYXZhU2NyaXB0Q29yZS9iaW5kaW5ncy9ydW50aW1lX3Jvb3QuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNT
IGZpbGU6IC9jdnMvcm9vdC9KYXZhU2NyaXB0Q29yZS9iaW5kaW5ncy9ydW50aW1lX3Jvb3QuY3Bw
LHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjExCmRpZmYgLXAgLXUgLXIxLjExIEphdmFTY3JpcHRD
b3JlL2JpbmRpbmdzL3J1bnRpbWVfcm9vdC5jcHAKLS0tIEphdmFTY3JpcHRDb3JlL2JpbmRpbmdz
L3J1bnRpbWVfcm9vdC5jcHAJMjEgU2VwIDIwMDUgMDA6MzM6MTYgLTAwMDAJMS4xMQorKysgSmF2
YVNjcmlwdENvcmUvYmluZGluZ3MvcnVudGltZV9yb290LmNwcAkzIE9jdCAyMDA1IDA3OjM0OjI0
IC0wMDAwCkBAIC0yMiw2ICsyMiw3IEBACiAgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKICAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
IAogICovCisjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSA8am5pX2pzb2JqZWN0Lmg+CiAj
aW5jbHVkZSA8cnVudGltZV9yb290Lmg+CiAKSW5kZXg6IEphdmFTY3JpcHRDb3JlL2JpbmRpbmdz
L3Rlc3RiaW5kaW5ncy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L0phdmFTY3Jp
cHRDb3JlL2JpbmRpbmdzL3Rlc3RiaW5kaW5ncy5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEu
NgpkaWZmIC1wIC11IC1yMS42IEphdmFTY3JpcHRDb3JlL2JpbmRpbmdzL3Rlc3RiaW5kaW5ncy5j
cHAKLS0tIEphdmFTY3JpcHRDb3JlL2JpbmRpbmdzL3Rlc3RiaW5kaW5ncy5jcHAJMTkgU2VwIDIw
MDUgMDY6NTc6MjYgLTAwMDAJMS42CisrKyBKYXZhU2NyaXB0Q29yZS9iaW5kaW5ncy90ZXN0Ymlu
ZGluZ3MuY3BwCTMgT2N0IDIwMDUgMDc6MzQ6MjQgLTAwMDAKQEAgLTE5LDYgKzE5LDcgQEAKICAq
ICBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS4KICAqCiAgKi8KKyNpbmNsdWRlICJjb25maWcu
aCIKICNpbmNsdWRlIDxhc3NlcnQuaD4KICNpbmNsdWRlIDxzdGRpby5oPgogI2luY2x1ZGUgPHN0
cmluZy5oPgpJbmRleDogSmF2YVNjcmlwdENvcmUvYmluZGluZ3MvdGVzdGJpbmRpbmdzLm1tCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9KYXZhU2NyaXB0Q29yZS9iaW5kaW5ncy90ZXN0
YmluZGluZ3MubW0sdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMTEKZGlmZiAtcCAtdSAtcjEuMTEg
SmF2YVNjcmlwdENvcmUvYmluZGluZ3MvdGVzdGJpbmRpbmdzLm1tCi0tLSBKYXZhU2NyaXB0Q29y
ZS9iaW5kaW5ncy90ZXN0YmluZGluZ3MubW0JMTkgU2VwIDIwMDUgMDY6NTc6MjYgLTAwMDAJMS4x
MQorKysgSmF2YVNjcmlwdENvcmUvYmluZGluZ3MvdGVzdGJpbmRpbmdzLm1tCTMgT2N0IDIwMDUg
MDc6MzQ6MjQgLTAwMDAKQEAgLTIzLDYgKzIzLDcgQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAogICovCiAK
KyNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlIDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4K
IAogI2ltcG9ydCA8V2ViS2l0L1dlYlNjcmlwdE9iamVjdC5oPgpJbmRleDogSmF2YVNjcmlwdENv
cmUvYmluZGluZ3MvYy9jX2NsYXNzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3Qv
SmF2YVNjcmlwdENvcmUvYmluZGluZ3MvYy9jX2NsYXNzLmNwcCx2CnJldHJpZXZpbmcgcmV2aXNp
b24gMS45CmRpZmYgLXAgLXUgLXIxLjkgSmF2YVNjcmlwdENvcmUvYmluZGluZ3MvYy9jX2NsYXNz
LmNwcAotLS0gSmF2YVNjcmlwdENvcmUvYmluZGluZ3MvYy9jX2NsYXNzLmNwcAkyNCBOb3YgMjAw
NCAwMTowNjo0NyAtMDAwMAkxLjkKKysrIEphdmFTY3JpcHRDb3JlL2JpbmRpbmdzL2MvY19jbGFz
cy5jcHAJMyBPY3QgMjAwNSAwNzozNDoyNCAtMDAwMApAQCAtMjIsNiArMjIsNyBAQAogICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKICAqLworI2luY2x1ZGUgImNvbmZpZy5oIgogI2lu
Y2x1ZGUgPGNfY2xhc3MuaD4KICNpbmNsdWRlIDxjX2luc3RhbmNlLmg+CiAjaW5jbHVkZSA8Y19y
dW50aW1lLmg+CkluZGV4OiBKYXZhU2NyaXB0Q29yZS9iaW5kaW5ncy9jL2NfaW5zdGFuY2UuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9KYXZhU2NyaXB0Q29yZS9iaW5kaW5ncy9j
L2NfaW5zdGFuY2UuY3BwLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjEzCmRpZmYgLXAgLXUgLXIx
LjEzIEphdmFTY3JpcHRDb3JlL2JpbmRpbmdzL2MvY19pbnN0YW5jZS5jcHAKLS0tIEphdmFTY3Jp
cHRDb3JlL2JpbmRpbmdzL2MvY19pbnN0YW5jZS5jcHAJOCBBdWcgMjAwNSAwNDowNzoyMyAtMDAw
MAkxLjEzCisrKyBKYXZhU2NyaXB0Q29yZS9iaW5kaW5ncy9jL2NfaW5zdGFuY2UuY3BwCTMgT2N0
IDIwMDUgMDc6MzQ6MjQgLTAwMDAKQEAgLTIyLDYgKzIyLDcgQEAKICAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQog
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4gCiAgKi8KKyNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlIDxjX2Ns
YXNzLmg+CiAjaW5jbHVkZSA8Y19pbnN0YW5jZS5oPgogI2luY2x1ZGUgPGNfcnVudGltZS5oPgpJ
bmRleDogSmF2YVNjcmlwdENvcmUvYmluZGluZ3MvYy9jX3J1bnRpbWUuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
UkNTIGZpbGU6IC9jdnMvcm9vdC9KYXZhU2NyaXB0Q29yZS9iaW5kaW5ncy9jL2NfcnVudGltZS5j
cHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNwpkaWZmIC1wIC11IC1yMS43IEphdmFTY3JpcHRD
b3JlL2JpbmRpbmdzL2MvY19ydW50aW1lLmNwcAotLS0gSmF2YVNjcmlwdENvcmUvYmluZGluZ3Mv
Yy9jX3J1bnRpbWUuY3BwCTggQXVnIDIwMDUgMDQ6MDc6MjMgLTAwMDAJMS43CisrKyBKYXZhU2Ny
aXB0Q29yZS9iaW5kaW5ncy9jL2NfcnVudGltZS5jcHAJMyBPY3QgMjAwNSAwNzozNDoyNCAtMDAw
MApAQCAtMjMsNiArMjMsNyBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCiAgKi8KIAorI2luY2x1ZGUgImNv
bmZpZy5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL2ludGVybmFsLmg+CiAKICNpbmNsdWRl
IDxjX2luc3RhbmNlLmg+CkluZGV4OiBKYXZhU2NyaXB0Q29yZS9iaW5kaW5ncy9jL2NfdXRpbGl0
eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L0phdmFTY3JpcHRDb3JlL2JpbmRp
bmdzL2MvY191dGlsaXR5LmNwcCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4xMQpkaWZmIC1wIC11
IC1yMS4xMSBKYXZhU2NyaXB0Q29yZS9iaW5kaW5ncy9jL2NfdXRpbGl0eS5jcHAKLS0tIEphdmFT
Y3JpcHRDb3JlL2JpbmRpbmdzL2MvY191dGlsaXR5LmNwcAkxNiBBdWcgMjAwNSAyMjowMTozMCAt
MDAwMAkxLjExCisrKyBKYXZhU2NyaXB0Q29yZS9iaW5kaW5ncy9jL2NfdXRpbGl0eS5jcHAJMyBP
Y3QgMjAwNSAwNzozNDoyNCAtMDAwMApAQCAtMjMsNiArMjMsNyBAQAogICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4g
CiAgKi8KIAorI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgImNfdXRpbGl0eS5oIgogCiAj
aW5jbHVkZSAiY19pbnN0YW5jZS5oIiAKSW5kZXg6IEphdmFTY3JpcHRDb3JlL2JpbmRpbmdzL2pu
aS9qbmlfY2xhc3MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9KYXZhU2NyaXB0
Q29yZS9iaW5kaW5ncy9qbmkvam5pX2NsYXNzLmNwcCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4x
NQpkaWZmIC1wIC11IC1yMS4xNSBKYXZhU2NyaXB0Q29yZS9iaW5kaW5ncy9qbmkvam5pX2NsYXNz
LmNwcAotLS0gSmF2YVNjcmlwdENvcmUvYmluZGluZ3Mvam5pL2puaV9jbGFzcy5jcHAJMTYgU2Vw
IDIwMDUgMjI6NDI6MjggLTAwMDAJMS4xNQorKysgSmF2YVNjcmlwdENvcmUvYmluZGluZ3Mvam5p
L2puaV9jbGFzcy5jcHAJMyBPY3QgMjAwNSAwNzozNDoyNCAtMDAwMApAQCAtMjIsNiArMjIsNyBA
QAogICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKICAqLworI2luY2x1ZGUgImNvbmZp
Zy5oIgogI2luY2x1ZGUgPGpuaV9jbGFzcy5oPgogCiAjaW5jbHVkZSA8am5pX3V0aWxpdHkuaD4K
SW5kZXg6IEphdmFTY3JpcHRDb3JlL2JpbmRpbmdzL2puaS9qbmlfaW5zdGFuY2UuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9KYXZhU2NyaXB0Q29yZS9iaW5kaW5ncy9qbmkvam5p
X2luc3RhbmNlLmNwcCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4zMApkaWZmIC1wIC11IC1yMS4z
MCBKYXZhU2NyaXB0Q29yZS9iaW5kaW5ncy9qbmkvam5pX2luc3RhbmNlLmNwcAotLS0gSmF2YVNj
cmlwdENvcmUvYmluZGluZ3Mvam5pL2puaV9pbnN0YW5jZS5jcHAJMTYgU2VwIDIwMDUgMjI6NDI6
MjggLTAwMDAJMS4zMAorKysgSmF2YVNjcmlwdENvcmUvYmluZGluZ3Mvam5pL2puaV9pbnN0YW5j
ZS5jcHAJMyBPY3QgMjAwNSAwNzozNDoyNCAtMDAwMApAQCAtMjIsNiArMjIsNyBAQAogICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKICAqLworI2luY2x1ZGUgImNvbmZpZy5oIgogI2lu
Y2x1ZGUgPGpuaV9jbGFzcy5oPgogI2luY2x1ZGUgPGpuaV9pbnN0YW5jZS5oPgogI2luY2x1ZGUg
PGpuaV9ydW50aW1lLmg+CkluZGV4OiBKYXZhU2NyaXB0Q29yZS9iaW5kaW5ncy9qbmkvam5pX2pz
b2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvSmF2YVNjcmlwdENvcmUv
YmluZGluZ3Mvam5pL2puaV9qc29iamVjdC5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMTQK
ZGlmZiAtcCAtdSAtcjEuMTQgSmF2YVNjcmlwdENvcmUvYmluZGluZ3Mvam5pL2puaV9qc29iamVj
dC5jcHAKLS0tIEphdmFTY3JpcHRDb3JlL2JpbmRpbmdzL2puaS9qbmlfanNvYmplY3QuY3BwCTE5
IFNlcCAyMDA1IDA2OjU3OjI2IC0wMDAwCTEuMTQKKysrIEphdmFTY3JpcHRDb3JlL2JpbmRpbmdz
L2puaS9qbmlfanNvYmplY3QuY3BwCTMgT2N0IDIwMDUgMDc6MzQ6MjUgLTAwMDAKQEAgLTIyLDYg
KzIyLDcgQEAKICAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCiAgKi8KKyNpbmNsdWRl
ICJjb25maWcuaCIKICNpbmNsdWRlIDxDb3JlRm91bmRhdGlvbi9Db3JlRm91bmRhdGlvbi5oPgog
CiAjaW5jbHVkZSA8YXNzZXJ0Lmg+CkluZGV4OiBKYXZhU2NyaXB0Q29yZS9iaW5kaW5ncy9qbmkv
am5pX29iamMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L0phdmFTY3JpcHRDb3Jl
L2JpbmRpbmdzL2puaS9qbmlfb2JqYy5tbSx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS40CmRpZmYg
LXAgLXUgLXIxLjQgSmF2YVNjcmlwdENvcmUvYmluZGluZ3Mvam5pL2puaV9vYmpjLm1tCi0tLSBK
YXZhU2NyaXB0Q29yZS9iaW5kaW5ncy9qbmkvam5pX29iamMubW0JOCBBdWcgMjAwNSAwNDowNzoy
NCAtMDAwMAkxLjQKKysrIEphdmFTY3JpcHRDb3JlL2JpbmRpbmdzL2puaS9qbmlfb2JqYy5tbQkz
IE9jdCAyMDA1IDA3OjM0OjI1IC0wMDAwCkBAIC0yMiw2ICsyMiw3IEBACiAgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuIAogICovCisjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW1wb3J0IDxG
b3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4KICNpbXBvcnQgPEphdmFTY3JpcHRDb3JlL2puaV91dGls
aXR5Lmg+CiAjaW1wb3J0IDxKYXZhU2NyaXB0Q29yZS9vYmpjX3V0aWxpdHkuaD4KSW5kZXg6IEph
dmFTY3JpcHRDb3JlL2JpbmRpbmdzL2puaS9qbmlfcnVudGltZS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1Mg
ZmlsZTogL2N2cy9yb290L0phdmFTY3JpcHRDb3JlL2JpbmRpbmdzL2puaS9qbmlfcnVudGltZS5j
cHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMjkKZGlmZiAtcCAtdSAtcjEuMjkgSmF2YVNjcmlw
dENvcmUvYmluZGluZ3Mvam5pL2puaV9ydW50aW1lLmNwcAotLS0gSmF2YVNjcmlwdENvcmUvYmlu
ZGluZ3Mvam5pL2puaV9ydW50aW1lLmNwcAkxNiBTZXAgMjAwNSAyMjo0MjoyOCAtMDAwMAkxLjI5
CisrKyBKYXZhU2NyaXB0Q29yZS9iaW5kaW5ncy9qbmkvam5pX3J1bnRpbWUuY3BwCTMgT2N0IDIw
MDUgMDc6MzQ6MjUgLTAwMDAKQEAgLTIyLDYgKzIyLDcgQEAKICAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4gCiAgKi8KKyNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlIDxpbnRlcm5h
bC5oPgogI2luY2x1ZGUgPHVzdHJpbmcuaD4KICNpbmNsdWRlIDx2YWx1ZS5oPgpJbmRleDogSmF2
YVNjcmlwdENvcmUvYmluZGluZ3Mvam5pL2puaV91dGlsaXR5LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBm
aWxlOiAvY3ZzL3Jvb3QvSmF2YVNjcmlwdENvcmUvYmluZGluZ3Mvam5pL2puaV91dGlsaXR5LmNw
cCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4yNQpkaWZmIC1wIC11IC1yMS4yNSBKYXZhU2NyaXB0
Q29yZS9iaW5kaW5ncy9qbmkvam5pX3V0aWxpdHkuY3BwCi0tLSBKYXZhU2NyaXB0Q29yZS9iaW5k
aW5ncy9qbmkvam5pX3V0aWxpdHkuY3BwCTE2IEF1ZyAyMDA1IDIyOjAxOjMwIC0wMDAwCTEuMjUK
KysrIEphdmFTY3JpcHRDb3JlL2JpbmRpbmdzL2puaS9qbmlfdXRpbGl0eS5jcHAJMyBPY3QgMjAw
NSAwNzozNDoyNSAtMDAwMApAQCAtMjMsNiArMjMsNyBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCiAgKi8K
IAorI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgImpuaV91dGlsaXR5LmgiCiAKICNpbmNs
dWRlICJpbnRlcnByZXRlci5oIgpJbmRleDogSmF2YVNjcmlwdENvcmUvYmluZGluZ3Mvb2JqYy9X
ZWJTY3JpcHRPYmplY3QubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L0phdmFTY3Jp
cHRDb3JlL2JpbmRpbmdzL29iamMvV2ViU2NyaXB0T2JqZWN0Lm1tLHYKcmV0cmlldmluZyByZXZp
c2lvbiAxLjI1CmRpZmYgLXAgLXUgLXIxLjI1IEphdmFTY3JpcHRDb3JlL2JpbmRpbmdzL29iamMv
V2ViU2NyaXB0T2JqZWN0Lm1tCi0tLSBKYXZhU2NyaXB0Q29yZS9iaW5kaW5ncy9vYmpjL1dlYlNj
cmlwdE9iamVjdC5tbQkxOSBTZXAgMjAwNSAwNjo1NzoyNyAtMDAwMAkxLjI1CisrKyBKYXZhU2Ny
aXB0Q29yZS9iaW5kaW5ncy9vYmpjL1dlYlNjcmlwdE9iamVjdC5tbQkzIE9jdCAyMDA1IDA3OjM0
OjI1IC0wMDAwCkBAIC0yMyw2ICsyMyw3IEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKICAqLwogCisjaW5j
bHVkZSAiY29uZmlnLmgiCiAjaW1wb3J0ICJXZWJTY3JpcHRPYmplY3RQcml2YXRlLmgiCiAKICNp
bXBvcnQgImludGVybmFsLmgiCkluZGV4OiBKYXZhU2NyaXB0Q29yZS9iaW5kaW5ncy9vYmpjL29i
amNfY2xhc3MubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L0phdmFTY3JpcHRDb3Jl
L2JpbmRpbmdzL29iamMvb2JqY19jbGFzcy5tbSx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4xMApk
aWZmIC1wIC11IC1yMS4xMCBKYXZhU2NyaXB0Q29yZS9iaW5kaW5ncy9vYmpjL29iamNfY2xhc3Mu
bW0KLS0tIEphdmFTY3JpcHRDb3JlL2JpbmRpbmdzL29iamMvb2JqY19jbGFzcy5tbQk4IEF1ZyAy
MDA1IDA0OjA3OjI2IC0wMDAwCTEuMTAKKysrIEphdmFTY3JpcHRDb3JlL2JpbmRpbmdzL29iamMv
b2JqY19jbGFzcy5tbQkzIE9jdCAyMDA1IDA3OjM0OjI2IC0wMDAwCkBAIC0yMiw2ICsyMiw3IEBA
CiAgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAogICovCisjaW5jbHVkZSAiY29uZmln
LmgiCiAjaW5jbHVkZSA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+CiAKICNpbmNsdWRlIDxvYmpj
X2NsYXNzLmg+CkluZGV4OiBKYXZhU2NyaXB0Q29yZS9iaW5kaW5ncy9vYmpjL29iamNfaW5zdGFu
Y2UubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L0phdmFTY3JpcHRDb3JlL2JpbmRp
bmdzL29iamMvb2JqY19pbnN0YW5jZS5tbSx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4xMwpkaWZm
IC1wIC11IC1yMS4xMyBKYXZhU2NyaXB0Q29yZS9iaW5kaW5ncy9vYmpjL29iamNfaW5zdGFuY2Uu
bW0KLS0tIEphdmFTY3JpcHRDb3JlL2JpbmRpbmdzL29iamMvb2JqY19pbnN0YW5jZS5tbQk4IEF1
ZyAyMDA1IDA0OjA3OjI2IC0wMDAwCTEuMTMKKysrIEphdmFTY3JpcHRDb3JlL2JpbmRpbmdzL29i
amMvb2JqY19pbnN0YW5jZS5tbQkzIE9jdCAyMDA1IDA3OjM0OjI2IC0wMDAwCkBAIC0yMiw2ICsy
Miw3IEBACiAgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAogICovCisjaW5jbHVkZSAi
Y29uZmlnLmgiCiAjaW1wb3J0IDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4KIAogI2ltcG9ydCA8
SmF2YVNjcmlwdENvcmUvb2JqY19pbnN0YW5jZS5oPgpJbmRleDogSmF2YVNjcmlwdENvcmUvYmlu
ZGluZ3Mvb2JqYy9vYmpjX3J1bnRpbWUubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290
L0phdmFTY3JpcHRDb3JlL2JpbmRpbmdzL29iamMvb2JqY19ydW50aW1lLm1tLHYKcmV0cmlldmlu
ZyByZXZpc2lvbiAxLjIxCmRpZmYgLXAgLXUgLXIxLjIxIEphdmFTY3JpcHRDb3JlL2JpbmRpbmdz
L29iamMvb2JqY19ydW50aW1lLm1tCi0tLSBKYXZhU2NyaXB0Q29yZS9iaW5kaW5ncy9vYmpjL29i
amNfcnVudGltZS5tbQkxNiBTZXAgMjAwNSAyMjo0MjoyOSAtMDAwMAkxLjIxCisrKyBKYXZhU2Ny
aXB0Q29yZS9iaW5kaW5ncy9vYmpjL29iamNfcnVudGltZS5tbQkzIE9jdCAyMDA1IDA3OjM0OjI2
IC0wMDAwCkBAIC0yMiw2ICsyMiw3IEBACiAgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKICAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
IAogICovCisjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSA8Rm91bmRhdGlvbi9Gb3VuZGF0
aW9uLmg+CiAKIApJbmRleDogSmF2YVNjcmlwdENvcmUvYmluZGluZ3Mvb2JqYy9vYmpjX3V0aWxp
dHkubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L0phdmFTY3JpcHRDb3JlL2JpbmRp
bmdzL29iamMvb2JqY191dGlsaXR5Lm1tLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjIwCmRpZmYg
LXAgLXUgLXIxLjIwIEphdmFTY3JpcHRDb3JlL2JpbmRpbmdzL29iamMvb2JqY191dGlsaXR5Lm1t
Ci0tLSBKYXZhU2NyaXB0Q29yZS9iaW5kaW5ncy9vYmpjL29iamNfdXRpbGl0eS5tbQkxNiBBdWcg
MjAwNSAwMDo0NzoyMyAtMDAwMAkxLjIwCisrKyBKYXZhU2NyaXB0Q29yZS9iaW5kaW5ncy9vYmpj
L29iamNfdXRpbGl0eS5tbQkzIE9jdCAyMDA1IDA3OjM0OjI2IC0wMDAwCkBAIC0yMyw2ICsyMyw3
IEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLiAKICAqLwogCisjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVk
ZSAib2JqY191dGlsaXR5LmgiCiAKICNpbmNsdWRlIDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4K
SW5kZXg6IEphdmFTY3JpcHRDb3JlL2tqcy9hcnJheV9vYmplY3QuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNT
IGZpbGU6IC9jdnMvcm9vdC9KYXZhU2NyaXB0Q29yZS9ranMvYXJyYXlfb2JqZWN0LmNwcCx2CnJl
dHJpZXZpbmcgcmV2aXNpb24gMS41MQpkaWZmIC1wIC11IC1yMS41MSBKYXZhU2NyaXB0Q29yZS9r
anMvYXJyYXlfb2JqZWN0LmNwcAotLS0gSmF2YVNjcmlwdENvcmUva2pzL2FycmF5X29iamVjdC5j
cHAJMTYgQXVnIDIwMDUgMDA6NDc6MjQgLTAwMDAJMS41MQorKysgSmF2YVNjcmlwdENvcmUva2pz
L2FycmF5X29iamVjdC5jcHAJMyBPY3QgMjAwNSAwNzozNDoyNiAtMDAwMApAQCAtMjAsNiArMjAs
NyBAQAogICoKICAqLwogCisjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiYXJyYXlfb2Jq
ZWN0LmgiCiAKICNpbmNsdWRlICJlcnJvcl9vYmplY3QuaCIKQEAgLTQ5LDcgKzUwLDcgQEAgQXJy
YXlJbnN0YW5jZUltcDo6QXJyYXlJbnN0YW5jZUltcChPYmplYwogICAsIGxlbmd0aChpbml0aWFs
TGVuZ3RoKQogICAsIHN0b3JhZ2VMZW5ndGgoaW5pdGlhbExlbmd0aCA8IHNwYXJzZUFycmF5Q3V0
b2ZmID8gaW5pdGlhbExlbmd0aCA6IDApCiAgICwgY2FwYWNpdHkoc3RvcmFnZUxlbmd0aCkKLSAg
LCBzdG9yYWdlKGNhcGFjaXR5ID8gKFZhbHVlSW1wICoqKWNhbGxvYyhjYXBhY2l0eSwgc2l6ZW9m
KFZhbHVlSW1wICopKSA6IDApCisgICwgc3RvcmFnZShjYXBhY2l0eSA/IChWYWx1ZUltcCAqKilm
YXN0Q2FsbG9jKGNhcGFjaXR5LCBzaXplb2YoVmFsdWVJbXAgKikpIDogMCkKIHsKIH0KIApAQCAt
NTgsNyArNTksNyBAQCBBcnJheUluc3RhbmNlSW1wOjpBcnJheUluc3RhbmNlSW1wKE9iamVjCiAg
ICwgbGVuZ3RoKGxpc3Quc2l6ZSgpKQogICAsIHN0b3JhZ2VMZW5ndGgobGVuZ3RoKQogICAsIGNh
cGFjaXR5KHN0b3JhZ2VMZW5ndGgpCi0gICwgc3RvcmFnZShjYXBhY2l0eSA/IChWYWx1ZUltcCAq
KiltYWxsb2Moc2l6ZW9mKFZhbHVlSW1wICopICogY2FwYWNpdHkpIDogMCkKKyAgLCBzdG9yYWdl
KGNhcGFjaXR5ID8gKFZhbHVlSW1wICoqKWZhc3RNYWxsb2Moc2l6ZW9mKFZhbHVlSW1wICopICog
Y2FwYWNpdHkpIDogMCkKIHsKICAgTGlzdEl0ZXJhdG9yIGl0ID0gbGlzdC5iZWdpbigpOwogICB1
bnNpZ25lZCBsID0gbGVuZ3RoOwpAQCAtNjksNyArNzAsNyBAQCBBcnJheUluc3RhbmNlSW1wOjpB
cnJheUluc3RhbmNlSW1wKE9iamVjCiAKIEFycmF5SW5zdGFuY2VJbXA6On5BcnJheUluc3RhbmNl
SW1wKCkKIHsKLSAgZnJlZShzdG9yYWdlKTsKKyAgZmFzdEZyZWUoc3RvcmFnZSk7CiB9CiAKIFZh
bHVlSW1wICpBcnJheUluc3RhbmNlSW1wOjpsZW5ndGhHZXR0ZXIoRXhlY1N0YXRlICpleGVjLCBj
b25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIGNvbnN0IFByb3BlcnR5U2xvdCYgc2xvdCkK
QEAgLTIxNSw3ICsyMTYsNyBAQCB2b2lkIEFycmF5SW5zdGFuY2VJbXA6OnJlc2l6ZVN0b3JhZ2Uo
dW5zCiAgICAgICAgICAgbmV3Q2FwYWNpdHkgPSBzcGFyc2VBcnJheUN1dG9mZjsKICAgICAgICAg
fQogICAgICAgfQotICAgICAgc3RvcmFnZSA9IChWYWx1ZUltcCAqKilyZWFsbG9jKHN0b3JhZ2Us
IG5ld0NhcGFjaXR5ICogc2l6ZW9mIChWYWx1ZUltcCAqKSk7CisgICAgICBzdG9yYWdlID0gKFZh
bHVlSW1wICoqKWZhc3RSZWFsbG9jKHN0b3JhZ2UsIG5ld0NhcGFjaXR5ICogc2l6ZW9mIChWYWx1
ZUltcCAqKSk7CiAgICAgICBtZW1zZXQoc3RvcmFnZSArIGNhcGFjaXR5LCAwLCBzaXplb2YoVmFs
dWVJbXAgKikgKiAobmV3Q2FwYWNpdHkgLSBjYXBhY2l0eSkpOwogICAgICAgY2FwYWNpdHkgPSBu
ZXdDYXBhY2l0eTsKICAgICB9CkluZGV4OiBKYXZhU2NyaXB0Q29yZS9ranMvYm9vbF9vYmplY3Qu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9KYXZhU2NyaXB0Q29yZS9ranMvYm9v
bF9vYmplY3QuY3BwLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjEzCmRpZmYgLXAgLXUgLXIxLjEz
IEphdmFTY3JpcHRDb3JlL2tqcy9ib29sX29iamVjdC5jcHAKLS0tIEphdmFTY3JpcHRDb3JlL2tq
cy9ib29sX29iamVjdC5jcHAJMTYgQXVnIDIwMDUgMDA6NDc6MjQgLTAwMDAJMS4xMworKysgSmF2
YVNjcmlwdENvcmUva2pzL2Jvb2xfb2JqZWN0LmNwcAkzIE9jdCAyMDA1IDA3OjM0OjI2IC0wMDAw
CkBAIC0yMCw2ICsyMCw3IEBACiAgKgogICovCiAKKyNpbmNsdWRlICJjb25maWcuaCIKICNpbmNs
dWRlICJ2YWx1ZS5oIgogI2luY2x1ZGUgIm9iamVjdC5oIgogI2luY2x1ZGUgInR5cGVzLmgiCklu
ZGV4OiBKYXZhU2NyaXB0Q29yZS9ranMvY29sbGVjdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxl
OiAvY3ZzL3Jvb3QvSmF2YVNjcmlwdENvcmUva2pzL2NvbGxlY3Rvci5jcHAsdgpyZXRyaWV2aW5n
IHJldmlzaW9uIDEuNDcKZGlmZiAtcCAtdSAtcjEuNDcgSmF2YVNjcmlwdENvcmUva2pzL2NvbGxl
Y3Rvci5jcHAKLS0tIEphdmFTY3JpcHRDb3JlL2tqcy9jb2xsZWN0b3IuY3BwCTI4IFNlcCAyMDA1
IDAyOjI1OjQ5IC0wMDAwCTEuNDcKKysrIEphdmFTY3JpcHRDb3JlL2tqcy9jb2xsZWN0b3IuY3Bw
CTMgT2N0IDIwMDUgMDc6MzQ6MjcgLTAwMDAKQEAgLTE5LDkgKzE5LDExIEBACiAgKgogICovCiAK
KyNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJjb2xsZWN0b3IuaCIKIAogI2luY2x1ZGUg
PGt4bWxjb3JlL0Zhc3RNYWxsb2MuaD4KKyNpbmNsdWRlIDxreG1sY29yZS9GYXN0TWFsbG9jSW50
ZXJuYWwuaD4KICNpbmNsdWRlICJpbnRlcm5hbC5oIgogI2luY2x1ZGUgImxpc3QuaCIKICNpbmNs
dWRlICJ2YWx1ZS5oIgpAQCAtMjI0LDYgKzIyNiw3IEBAIHZvaWQgQ29sbGVjdG9yOjpyZWdpc3Rl
clRocmVhZCgpCiAKICAgaWYgKCFwdGhyZWFkX2dldHNwZWNpZmljKHJlZ2lzdGVyZWRUaHJlYWRL
ZXkpKSB7CiAgICAgcHRocmVhZF90IHB0aHJlYWQgPSBwdGhyZWFkX3NlbGYoKTsKKyAgICBLWE1M
Q29yZTo6ZmFzdE1hbGxvY1JlZ2lzdGVyVGhyZWFkKHB0aHJlYWQpOwogICAgIENvbGxlY3Rvcjo6
VGhyZWFkICp0aHJlYWQgPSBuZXcgQ29sbGVjdG9yOjpUaHJlYWQocHRocmVhZCwgcHRocmVhZF9t
YWNoX3RocmVhZF9ucChwdGhyZWFkKSk7CiAgICAgdGhyZWFkLT5uZXh0ID0gcmVnaXN0ZXJlZFRo
cmVhZHM7CiAgICAgcmVnaXN0ZXJlZFRocmVhZHMgPSB0aHJlYWQ7CkluZGV4OiBKYXZhU2NyaXB0
Q29yZS9ranMvY29uZmlnLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L0phdmFTY3Jp
cHRDb3JlL2tqcy9jb25maWcuaCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS45CmRpZmYgLXAgLXUg
LXIxLjkgSmF2YVNjcmlwdENvcmUva2pzL2NvbmZpZy5oCi0tLSBKYXZhU2NyaXB0Q29yZS9ranMv
Y29uZmlnLmgJMjcgU2VwIDIwMDUgMjI6MzY6NDggLTAwMDAJMS45CisrKyBKYXZhU2NyaXB0Q29y
ZS9ranMvY29uZmlnLmgJMyBPY3QgMjAwNSAwNzozNDoyNyAtMDAwMApAQCAtMzIsMyArMzIsOSBA
QAogI3VuZGVmIERFQlVHX0NPTExFQ1RPUgogCiAjZGVmaW5lIEtYQ19DSEFOR0VTIDEKKworI2lm
ZGVmIF9fY3BsdXNwbHVzCisjdW5kZWYgbmV3CisjdW5kZWYgZGVsZXRlCisjaW5jbHVkZSA8a3ht
bGNvcmUvRmFzdE1hbGxvYy5oPgorI2VuZGlmCkluZGV4OiBKYXZhU2NyaXB0Q29yZS9ranMvZGVi
dWdnZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9KYXZhU2NyaXB0Q29yZS9r
anMvZGVidWdnZXIuY3BwLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjYKZGlmZiAtcCAtdSAtcjEu
NiBKYXZhU2NyaXB0Q29yZS9ranMvZGVidWdnZXIuY3BwCi0tLSBKYXZhU2NyaXB0Q29yZS9ranMv
ZGVidWdnZXIuY3BwCTggQXVnIDIwMDUgMDQ6MDc6MjcgLTAwMDAJMS42CisrKyBKYXZhU2NyaXB0
Q29yZS9ranMvZGVidWdnZXIuY3BwCTMgT2N0IDIwMDUgMDc6MzQ6MjcgLTAwMDAKQEAgLTIwLDYg
KzIwLDcgQEAKICAqCiAgKi8KIAorI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgImRlYnVn
Z2VyLmgiCiAjaW5jbHVkZSAidmFsdWUuaCIKICNpbmNsdWRlICJvYmplY3QuaCIKSW5kZXg6IEph
dmFTY3JpcHRDb3JlL2tqcy9lcnJvcl9vYmplY3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9j
dnMvcm9vdC9KYXZhU2NyaXB0Q29yZS9ranMvZXJyb3Jfb2JqZWN0LmNwcCx2CnJldHJpZXZpbmcg
cmV2aXNpb24gMS4xOApkaWZmIC1wIC11IC1yMS4xOCBKYXZhU2NyaXB0Q29yZS9ranMvZXJyb3Jf
b2JqZWN0LmNwcAotLS0gSmF2YVNjcmlwdENvcmUva2pzL2Vycm9yX29iamVjdC5jcHAJMTQgQXVn
IDIwMDUgMTY6MDQ6MTkgLTAwMDAJMS4xOAorKysgSmF2YVNjcmlwdENvcmUva2pzL2Vycm9yX29i
amVjdC5jcHAJMyBPY3QgMjAwNSAwNzozNDoyNyAtMDAwMApAQCAtMjAsNiArMjAsNyBAQAogICoK
ICAqLwogCisjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAidmFsdWUuaCIKICNpbmNsdWRl
ICJvYmplY3QuaCIKICNpbmNsdWRlICJ0eXBlcy5oIgpJbmRleDogSmF2YVNjcmlwdENvcmUva2pz
L2ZwY29uc3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9KYXZhU2NyaXB0Q29y
ZS9ranMvZnBjb25zdC5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMQpkaWZmIC1wIC11IC1y
MS4xIEphdmFTY3JpcHRDb3JlL2tqcy9mcGNvbnN0LmNwcAotLS0gSmF2YVNjcmlwdENvcmUva2pz
L2ZwY29uc3QuY3BwCTI5IEFwciAyMDAzIDE4OjI2OjI5IC0wMDAwCTEuMQorKysgSmF2YVNjcmlw
dENvcmUva2pzL2ZwY29uc3QuY3BwCTMgT2N0IDIwMDUgMDc6MzQ6MjcgLTAwMDAKQEAgLTE3LDcg
KzE3LDYgQEAKICAqCiAgKi8KIAotI2luY2x1ZGUgPGNvbmZpZy5oPgogCiAvLyBUaGlzIGZpbGUg
ZXhpc3RzIGJlY2F1c2UgSmF2YVNjcmlwdENvcmUgbmVlZHMgdG8gZGVmaW5lIHRoZSBOYU4gYW5k
IEluZiBnbG9iYWxzIGluIGEgd2F5CiAvLyB0aGF0IGRvZXMgbm90IHVzZSBhIHN0YXRpYyBpbml0
aWFsaXplciBzbyB3ZSBkb24ndCBoYXZlIGEgZnJhbWV3b3JrIGluaXRpYWxpemF0aW9uIHJvdXRp
bmUuCkluZGV4OiBKYXZhU2NyaXB0Q29yZS9ranMvZnVuY3Rpb24uY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNT
IGZpbGU6IC9jdnMvcm9vdC9KYXZhU2NyaXB0Q29yZS9ranMvZnVuY3Rpb24uY3BwLHYKcmV0cmll
dmluZyByZXZpc2lvbiAxLjU5CmRpZmYgLXAgLXUgLXIxLjU5IEphdmFTY3JpcHRDb3JlL2tqcy9m
dW5jdGlvbi5jcHAKLS0tIEphdmFTY3JpcHRDb3JlL2tqcy9mdW5jdGlvbi5jcHAJMjcgU2VwIDIw
MDUgMjI6MzY6NDggLTAwMDAJMS41OQorKysgSmF2YVNjcmlwdENvcmUva2pzL2Z1bmN0aW9uLmNw
cAkzIE9jdCAyMDA1IDA3OjM0OjI3IC0wMDAwCkBAIC0yMiw2ICsyMiw3IEBACiAgKgogICovCiAK
KyNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJmdW5jdGlvbi5oIgogCiAjaW5jbHVkZSAi
aW50ZXJuYWwuaCIKSW5kZXg6IEphdmFTY3JpcHRDb3JlL2tqcy9mdW5jdGlvbl9vYmplY3QuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9KYXZhU2NyaXB0Q29yZS9ranMvZnVuY3Rp
b25fb2JqZWN0LmNwcCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4zMgpkaWZmIC1wIC11IC1yMS4z
MiBKYXZhU2NyaXB0Q29yZS9ranMvZnVuY3Rpb25fb2JqZWN0LmNwcAotLS0gSmF2YVNjcmlwdENv
cmUva2pzL2Z1bmN0aW9uX29iamVjdC5jcHAJMjcgU2VwIDIwMDUgMjI6MzY6NDkgLTAwMDAJMS4z
MgorKysgSmF2YVNjcmlwdENvcmUva2pzL2Z1bmN0aW9uX29iamVjdC5jcHAJMyBPY3QgMjAwNSAw
NzozNDoyNyAtMDAwMApAQCAtMjAsNiArMjAsNyBAQAogICoKICAqLwogCisjaW5jbHVkZSAiY29u
ZmlnLmgiCiAjaW5jbHVkZSAiZnVuY3Rpb25fb2JqZWN0LmgiCiAjaW5jbHVkZSAiaW50ZXJuYWwu
aCIKICNpbmNsdWRlICJmdW5jdGlvbi5oIgpJbmRleDogSmF2YVNjcmlwdENvcmUva2pzL2lkZW50
aWZpZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9KYXZhU2NyaXB0Q29yZS9r
anMvaWRlbnRpZmllci5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMjAKZGlmZiAtcCAtdSAt
cjEuMjAgSmF2YVNjcmlwdENvcmUva2pzL2lkZW50aWZpZXIuY3BwCi0tLSBKYXZhU2NyaXB0Q29y
ZS9ranMvaWRlbnRpZmllci5jcHAJMjcgU2VwIDIwMDUgMjI6MzY6NDkgLTAwMDAJMS4yMAorKysg
SmF2YVNjcmlwdENvcmUva2pzL2lkZW50aWZpZXIuY3BwCTMgT2N0IDIwMDUgMDc6MzQ6MjcgLTAw
MDAKQEAgLTMzLDYgKzMzLDcgQEAKICNkZWZpbmUgS0pTX0lERU5USUZJRVJfSElERV9HTE9CQUxT
IDEKICNlbmRpZgogCisjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiaWRlbnRpZmllci5o
IgogCiAjaW5jbHVkZSA8a3htbGNvcmUvRmFzdE1hbGxvYy5oPgpAQCAtMjg3LDEzICsyODgsMTMg
QEAgdm9pZCBJZGVudGlmaWVyOjpyZWhhc2goaW50IG5ld1RhYmxlU2l6ZQogCiAgICAgX3RhYmxl
U2l6ZSA9IG5ld1RhYmxlU2l6ZTsKICAgICBfdGFibGVTaXplTWFzayA9IG5ld1RhYmxlU2l6ZSAt
IDE7Ci0gICAgX3RhYmxlID0gKFVTdHJpbmc6OlJlcCAqKiljYWxsb2MobmV3VGFibGVTaXplLCBz
aXplb2YoVVN0cmluZzo6UmVwICopKTsKKyAgICBfdGFibGUgPSAoVVN0cmluZzo6UmVwICoqKWZh
c3RDYWxsb2MobmV3VGFibGVTaXplLCBzaXplb2YoVVN0cmluZzo6UmVwICopKTsKIAogICAgIGZv
ciAoaW50IGkgPSAwOyBpICE9IG9sZFRhYmxlU2l6ZTsgKytpKQogICAgICAgICBpZiAoVVN0cmlu
Zzo6UmVwICprZXkgPSBvbGRUYWJsZVtpXSkKICAgICAgICAgICAgIGluc2VydChrZXkpOwogCi0g
ICAgZnJlZShvbGRUYWJsZSk7CisgICAgZmFzdEZyZWUob2xkVGFibGUpOwogfQogCiAvLyBHbG9i
YWwgY29uc3RhbnRzIGZvciBwcm9wZXJ0eSBuYW1lIHN0cmluZ3MuCkluZGV4OiBKYXZhU2NyaXB0
Q29yZS9ranMvaW50ZXJuYWwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9KYXZh
U2NyaXB0Q29yZS9ranMvaW50ZXJuYWwuY3BwLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjc0CmRp
ZmYgLXAgLXUgLXIxLjc0IEphdmFTY3JpcHRDb3JlL2tqcy9pbnRlcm5hbC5jcHAKLS0tIEphdmFT
Y3JpcHRDb3JlL2tqcy9pbnRlcm5hbC5jcHAJMjggU2VwIDIwMDUgMjI6MDE6MTYgLTAwMDAJMS43
NAorKysgSmF2YVNjcmlwdENvcmUva2pzL2ludGVybmFsLmNwcAkzIE9jdCAyMDA1IDA3OjM0OjI4
IC0wMDAwCkBAIC0yMSw2ICsyMSw3IEBACiAgKgogICovCiAKKyNpbmNsdWRlICJjb25maWcuaCIK
ICNpbmNsdWRlIDxzdGRpby5oPgogI2luY2x1ZGUgPG1hdGguaD4KICNpbmNsdWRlIDxhc3NlcnQu
aD4KQEAgLTM2Nyw3ICszNjgsNyBAQCB2b2lkIFBhcnNlcjo6c2F2ZU5ld05vZGUoTm9kZSAqbm9k
ZSkKIHsKICAgaWYgKG51bU5ld05vZGVzID09IG5ld05vZGVzQ2FwYWNpdHkpIHsKICAgICBuZXdO
b2Rlc0NhcGFjaXR5ID0gKG5ld05vZGVzQ2FwYWNpdHkgPT0gMCkgPyBpbml0aWFsQ2FwYWNpdHkg
OiBuZXdOb2Rlc0NhcGFjaXR5ICogZ3Jvd3RoRmFjdG9yOwotICAgIG5ld05vZGVzID0gKE5vZGUg
KiopcmVhbGxvYyhuZXdOb2Rlcywgc2l6ZW9mKE5vZGUgKikgKiBuZXdOb2Rlc0NhcGFjaXR5KTsK
KyAgICBuZXdOb2RlcyA9IChOb2RlICoqKWZhc3RSZWFsbG9jKG5ld05vZGVzLCBzaXplb2YoTm9k
ZSAqKSAqIG5ld05vZGVzQ2FwYWNpdHkpOwogICB9CiAKICAgbmV3Tm9kZXNbbnVtTmV3Tm9kZXMr
K10gPSBub2RlOwpAQCAtMzc5LDcgKzM4MCw3IEBAIHN0YXRpYyB2b2lkIGNsZWFyTmV3Tm9kZXMo
KQogICAgIGlmIChuZXdOb2Rlc1tpXS0+cmVmY291bnQoKSA9PSAwKQogICAgICAgZGVsZXRlIG5l
d05vZGVzW2ldOwogICB9Ci0gIGRlbGV0ZSBuZXdOb2RlczsKKyAgZmFzdEZyZWUobmV3Tm9kZXMp
OwogICBuZXdOb2RlcyA9IDA7CiAgIG51bU5ld05vZGVzID0gMDsKICAgbmV3Tm9kZXNDYXBhY2l0
eSA9IDA7CkluZGV4OiBKYXZhU2NyaXB0Q29yZS9ranMvaW50ZXJwcmV0ZXIuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9KYXZhU2NyaXB0Q29yZS9ranMvaW50ZXJwcmV0ZXIuY3Bw
LHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjMwCmRpZmYgLXAgLXUgLXIxLjMwIEphdmFTY3JpcHRD
b3JlL2tqcy9pbnRlcnByZXRlci5jcHAKLS0tIEphdmFTY3JpcHRDb3JlL2tqcy9pbnRlcnByZXRl
ci5jcHAJMTkgU2VwIDIwMDUgMDY6NTc6MjcgLTAwMDAJMS4zMAorKysgSmF2YVNjcmlwdENvcmUv
a2pzL2ludGVycHJldGVyLmNwcAkzIE9jdCAyMDA1IDA3OjM0OjI4IC0wMDAwCkBAIC0yMiw2ICsy
Miw3IEBACiAgKgogICovCiAKKyNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJ2YWx1ZS5o
IgogI2luY2x1ZGUgIm9iamVjdC5oIgogI2luY2x1ZGUgInR5cGVzLmgiCkluZGV4OiBKYXZhU2Ny
aXB0Q29yZS9ranMvbGV4ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9KYXZh
U2NyaXB0Q29yZS9ranMvbGV4ZXIuY3BwLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjIwCmRpZmYg
LXAgLXUgLXIxLjIwIEphdmFTY3JpcHRDb3JlL2tqcy9sZXhlci5jcHAKLS0tIEphdmFTY3JpcHRD
b3JlL2tqcy9sZXhlci5jcHAJMjEgU2VwIDIwMDUgMDU6NTM6MDUgLTAwMDAJMS4yMAorKysgSmF2
YVNjcmlwdENvcmUva2pzL2xleGVyLmNwcAkzIE9jdCAyMDA1IDA3OjM0OjI4IC0wMDAwCkBAIC04
MzQsNyArODM0LDcgQEAgdm9pZCBMZXhlcjo6ZG9uZVBhcnNpbmcoKQogICBmb3IgKHVuc2lnbmVk
IGkgPSAwOyBpIDwgbnVtSWRlbnRpZmllcnM7IGkrKykgewogICAgIGRlbGV0ZSBpZGVudGlmaWVy
c1tpXTsKICAgfQotICBmcmVlIChpZGVudGlmaWVycyk7CisgIGZhc3RGcmVlKGlkZW50aWZpZXJz
KTsKICAgaWRlbnRpZmllcnMgPSAwOwogICBudW1JZGVudGlmaWVycyA9IDA7CiAgIGlkZW50aWZp
ZXJzQ2FwYWNpdHkgPSAwOwpAQCAtODQyLDcgKzg0Miw3IEBAIHZvaWQgTGV4ZXI6OmRvbmVQYXJz
aW5nKCkKICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG51bVN0cmluZ3M7IGkrKykgewogICAg
IGRlbGV0ZSBzdHJpbmdzW2ldOwogICB9Ci0gIGZyZWUgKHN0cmluZ3MpOworICBmYXN0RnJlZShz
dHJpbmdzKTsKICAgc3RyaW5ncyA9IDA7CiAgIG51bVN0cmluZ3MgPSAwOwogICBzdHJpbmdzQ2Fw
YWNpdHkgPSAwOwpAQCAtODU1LDcgKzg1NSw3IEBAIElkZW50aWZpZXIgKkxleGVyOjptYWtlSWRl
bnRpZmllcihVQ2hhciAKIHsKICAgaWYgKG51bUlkZW50aWZpZXJzID09IGlkZW50aWZpZXJzQ2Fw
YWNpdHkpIHsKICAgICBpZGVudGlmaWVyc0NhcGFjaXR5ID0gKGlkZW50aWZpZXJzQ2FwYWNpdHkg
PT0gMCkgPyBpbml0aWFsQ2FwYWNpdHkgOiBpZGVudGlmaWVyc0NhcGFjaXR5ICpncm93dGhGYWN0
b3I7Ci0gICAgaWRlbnRpZmllcnMgPSAoS0pTOjpJZGVudGlmaWVyICoqKXJlYWxsb2MoaWRlbnRp
ZmllcnMsIHNpemVvZihLSlM6OklkZW50aWZpZXIgKikgKiBpZGVudGlmaWVyc0NhcGFjaXR5KTsK
KyAgICBpZGVudGlmaWVycyA9IChLSlM6OklkZW50aWZpZXIgKiopZmFzdFJlYWxsb2MoaWRlbnRp
ZmllcnMsIHNpemVvZihLSlM6OklkZW50aWZpZXIgKikgKiBpZGVudGlmaWVyc0NhcGFjaXR5KTsK
ICAgfQogCiAgIEtKUzo6SWRlbnRpZmllciAqaWRlbnRpZmllciA9IG5ldyBLSlM6OklkZW50aWZp
ZXIoYnVmZmVyMTYsIHBvczE2KTsKQEAgLTg2Nyw3ICs4NjcsNyBAQCBVU3RyaW5nICpMZXhlcjo6
bWFrZVVTdHJpbmcoVUNoYXIgKmJ1ZmZlCiB7CiAgIGlmIChudW1TdHJpbmdzID09IHN0cmluZ3ND
YXBhY2l0eSkgewogICAgIHN0cmluZ3NDYXBhY2l0eSA9IChzdHJpbmdzQ2FwYWNpdHkgPT0gMCkg
PyBpbml0aWFsQ2FwYWNpdHkgOiBzdHJpbmdzQ2FwYWNpdHkgKmdyb3d0aEZhY3RvcjsKLSAgICBz
dHJpbmdzID0gKFVTdHJpbmcgKiopcmVhbGxvYyhzdHJpbmdzLCBzaXplb2YoVVN0cmluZyAqKSAq
IHN0cmluZ3NDYXBhY2l0eSk7CisgICAgc3RyaW5ncyA9IChVU3RyaW5nICoqKWZhc3RSZWFsbG9j
KHN0cmluZ3MsIHNpemVvZihVU3RyaW5nICopICogc3RyaW5nc0NhcGFjaXR5KTsKICAgfQogCiAg
IFVTdHJpbmcgKnN0cmluZyA9IG5ldyBVU3RyaW5nKGJ1ZmZlcjE2LCBwb3MxNik7CkluZGV4OiBK
YXZhU2NyaXB0Q29yZS9ranMvbGlzdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290
L0phdmFTY3JpcHRDb3JlL2tqcy9saXN0LmNwcCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4xNgpk
aWZmIC1wIC11IC1yMS4xNiBKYXZhU2NyaXB0Q29yZS9ranMvbGlzdC5jcHAKLS0tIEphdmFTY3Jp
cHRDb3JlL2tqcy9saXN0LmNwcAk0IFNlcCAyMDA1IDAxOjE4OjEyIC0wMDAwCTEuMTYKKysrIEph
dmFTY3JpcHRDb3JlL2tqcy9saXN0LmNwcAkzIE9jdCAyMDA1IDA3OjM0OjI4IC0wMDAwCkBAIC0x
OSw2ICsxOSw3IEBACiAgKgogICovCiAKKyNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJs
aXN0LmgiCiAKICNpbmNsdWRlICJpbnRlcm5hbC5oIgpJbmRleDogSmF2YVNjcmlwdENvcmUva2pz
L2xvb2t1cC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L0phdmFTY3JpcHRDb3Jl
L2tqcy9sb29rdXAuY3BwLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjExCmRpZmYgLXAgLXUgLXIx
LjExIEphdmFTY3JpcHRDb3JlL2tqcy9sb29rdXAuY3BwCi0tLSBKYXZhU2NyaXB0Q29yZS9ranMv
bG9va3VwLmNwcAkxNCBKdWwgMjAwNSAxODoyNzowMiAtMDAwMAkxLjExCisrKyBKYXZhU2NyaXB0
Q29yZS9ranMvbG9va3VwLmNwcAkzIE9jdCAyMDA1IDA3OjM0OjI4IC0wMDAwCkBAIC0yMCwxMyAr
MjAsMTMgQEAKICAqCiAgKi8KIAorI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgPHN0ZGlv
Lmg+CiAjaW5jbHVkZSA8c3RyaW5nLmg+CiAKICNpbmNsdWRlICJsb29rdXAuaCIKIAogI2lmZGVm
IEhBVkVfQ09ORklHX0gKLSNpbmNsdWRlIDxjb25maWcuaD4KICNlbmRpZgogCiB1c2luZyBuYW1l
c3BhY2UgS0pTOwpJbmRleDogSmF2YVNjcmlwdENvcmUva2pzL21hdGhfb2JqZWN0LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvSmF2YVNjcmlwdENvcmUva2pzL21hdGhfb2JqZWN0
LmNwcCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4xOApkaWZmIC1wIC11IC1yMS4xOCBKYXZhU2Ny
aXB0Q29yZS9ranMvbWF0aF9vYmplY3QuY3BwCi0tLSBKYXZhU2NyaXB0Q29yZS9ranMvbWF0aF9v
YmplY3QuY3BwCTQgU2VwIDIwMDUgMDE6MTg6MTIgLTAwMDAJMS4xOAorKysgSmF2YVNjcmlwdENv
cmUva2pzL21hdGhfb2JqZWN0LmNwcAkzIE9jdCAyMDA1IDA3OjM0OjI5IC0wMDAwCkBAIC0xOSw2
ICsxOSw3IEBACiAgKgogICovCiAKKyNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlIDxtYXRo
Lmg+CiAjaW5jbHVkZSA8c3RkbGliLmg+CiAjaW5jbHVkZSA8YXNzZXJ0Lmg+CkluZGV4OiBKYXZh
U2NyaXB0Q29yZS9ranMvbm9kZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9K
YXZhU2NyaXB0Q29yZS9ranMvbm9kZXMuY3BwLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjg0CmRp
ZmYgLXAgLXUgLXIxLjg0IEphdmFTY3JpcHRDb3JlL2tqcy9ub2Rlcy5jcHAKLS0tIEphdmFTY3Jp
cHRDb3JlL2tqcy9ub2Rlcy5jcHAJMjggU2VwIDIwMDUgMTg6NTE6MTQgLTAwMDAJMS44NAorKysg
SmF2YVNjcmlwdENvcmUva2pzL25vZGVzLmNwcAkzIE9jdCAyMDA1IDA3OjM0OjI5IC0wMDAwCkBA
IC0yMSw2ICsyMSw3IEBACiAgKgogICovCiAKKyNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRl
ICJub2Rlcy5oIgogCiAjaW5jbHVkZSA8bWF0aC5oPgpJbmRleDogSmF2YVNjcmlwdENvcmUva2pz
L25vZGVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L0phdmFTY3JpcHRDb3JlL2tq
cy9ub2Rlcy5oLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjM3CmRpZmYgLXAgLXUgLXIxLjM3IEph
dmFTY3JpcHRDb3JlL2tqcy9ub2Rlcy5oCi0tLSBKYXZhU2NyaXB0Q29yZS9ranMvbm9kZXMuaAky
OCBTZXAgMjAwNSAxODo1MToxNCAtMDAwMAkxLjM3CisrKyBKYXZhU2NyaXB0Q29yZS9ranMvbm9k
ZXMuaAkzIE9jdCAyMDA1IDA3OjM0OjMwIC0wMDAwCkBAIC0yNSw3ICsyNSw2IEBACiAjaWZuZGVm
IF9OT0RFU19IXwogI2RlZmluZSBfTk9ERVNfSF8KIAotI2luY2x1ZGUgPGt4bWxjb3JlL0Zhc3RN
YWxsb2MuaD4KICNpbmNsdWRlIDxreG1sY29yZS9TaGFyZWRQdHIuaD4KIAogI2luY2x1ZGUgImlu
dGVybmFsLmgiCkBAIC03MSw3ICs3MCw3IEBAIG5hbWVzcGFjZSBLSlMgewogCQkgIE9wSW5zdGFu
Y2VPZgogICB9OwogCi0gIGNsYXNzIE5vZGUgOiBwdWJsaWMgRmFzdEFsbG9jYXRlZCB7CisgIGNs
YXNzIE5vZGUgewogICBwdWJsaWM6CiAgICAgTm9kZSgpOwogICAgIHZpcnR1YWwgfk5vZGUoKTsK
SW5kZXg6IEphdmFTY3JpcHRDb3JlL2tqcy9ub2RlczJzdHJpbmcuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNT
IGZpbGU6IC9jdnMvcm9vdC9KYXZhU2NyaXB0Q29yZS9ranMvbm9kZXMyc3RyaW5nLmNwcCx2CnJl
dHJpZXZpbmcgcmV2aXNpb24gMS4xOQpkaWZmIC1wIC11IC1yMS4xOSBKYXZhU2NyaXB0Q29yZS9r
anMvbm9kZXMyc3RyaW5nLmNwcAotLS0gSmF2YVNjcmlwdENvcmUva2pzL25vZGVzMnN0cmluZy5j
cHAJMjggU2VwIDIwMDUgMTg6NTE6MTQgLTAwMDAJMS4xOQorKysgSmF2YVNjcmlwdENvcmUva2pz
L25vZGVzMnN0cmluZy5jcHAJMyBPY3QgMjAwNSAwNzozNDozMCAtMDAwMApAQCAtMjAsNiArMjAs
NyBAQAogICoKICAqLwogCisjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAibm9kZXMuaCIK
IAogbmFtZXNwYWNlIEtKUyB7CkluZGV4OiBKYXZhU2NyaXB0Q29yZS9ranMvbnVtYmVyX29iamVj
dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L0phdmFTY3JpcHRDb3JlL2tqcy9u
dW1iZXJfb2JqZWN0LmNwcCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4yMgpkaWZmIC1wIC11IC1y
MS4yMiBKYXZhU2NyaXB0Q29yZS9ranMvbnVtYmVyX29iamVjdC5jcHAKLS0tIEphdmFTY3JpcHRD
b3JlL2tqcy9udW1iZXJfb2JqZWN0LmNwcAk0IFNlcCAyMDA1IDAxOjE4OjEyIC0wMDAwCTEuMjIK
KysrIEphdmFTY3JpcHRDb3JlL2tqcy9udW1iZXJfb2JqZWN0LmNwcAkzIE9jdCAyMDA1IDA3OjM0
OjMwIC0wMDAwCkBAIC0xOSw2ICsxOSw3IEBACiAgKgogICovCiAKKyNpbmNsdWRlICJjb25maWcu
aCIKICNpbmNsdWRlICJ2YWx1ZS5oIgogI2luY2x1ZGUgIm9iamVjdC5oIgogI2luY2x1ZGUgInR5
cGVzLmgiCkBAIC05NiwxNyArOTcsMTcgQEAgc3RhdGljIFVTdHJpbmcgaW50ZWdlcl9wYXJ0X25v
ZXhwKGRvdWJsZQogICAgICAgICBjaGFyICpidWY7CiAgICAgICAgIAogICAgICAgICBpZiAobGVu
Z3RoIDw9IGRlY2ltYWxQb2ludCkgewotICAgICAgICAgICAgYnVmID0gKGNoYXIqKW1hbGxvYyhk
ZWNpbWFsUG9pbnQrMSk7CisgICAgICAgICAgICBidWYgPSAoY2hhciopZmFzdE1hbGxvYyhkZWNp
bWFsUG9pbnQrMSk7CiAgICAgICAgICAgICBzdHJjcHkoYnVmLHJlc3VsdCk7CiAgICAgICAgICAg
ICBtZW1zZXQoYnVmK2xlbmd0aCwnMCcsZGVjaW1hbFBvaW50LWxlbmd0aCk7CiAgICAgICAgIH0g
ZWxzZSB7Ci0gICAgICAgICAgICBidWYgPSAoY2hhciopbWFsbG9jKGRlY2ltYWxQb2ludCsxKTsK
KyAgICAgICAgICAgIGJ1ZiA9IChjaGFyKilmYXN0TWFsbG9jKGRlY2ltYWxQb2ludCsxKTsKICAg
ICAgICAgICAgIHN0cm5jcHkoYnVmLHJlc3VsdCxkZWNpbWFsUG9pbnQpOwogICAgICAgICB9CiAg
ICAgICAgIAogICAgICAgICBidWZbZGVjaW1hbFBvaW50XSA9ICdcMCc7CiAgICAgICAgIHN0ciAr
PSBVU3RyaW5nKGJ1Zik7Ci0gICAgICAgIGZyZWUoYnVmKTsKKyAgICAgICAgZmFzdEZyZWUoYnVm
KTsKICAgICB9CiAgICAgCiAgICAga2pzX2ZyZWVkdG9hKHJlc3VsdCk7CkBAIC0xMTYsMTEgKzEx
NywxMSBAQCBzdGF0aWMgVVN0cmluZyBpbnRlZ2VyX3BhcnRfbm9leHAoZG91YmxlCiAKIHN0YXRp
YyBVU3RyaW5nIGNoYXJfc2VxdWVuY2UoY2hhciBjLCBpbnQgY291bnQpCiB7Ci0gICAgY2hhciAq
YnVmID0gKGNoYXIqKW1hbGxvYyhjb3VudCsxKTsKKyAgICBjaGFyICpidWYgPSAoY2hhciopZmFz
dE1hbGxvYyhjb3VudCsxKTsKICAgICBtZW1zZXQoYnVmLGMsY291bnQpOwogICAgIGJ1Zltjb3Vu
dF0gPSAnXDAnOwogICAgIFVTdHJpbmcgcyhidWYpOwotICAgIGZyZWUoYnVmKTsKKyAgICBmYXN0
RnJlZShidWYpOwogICAgIHJldHVybiBzOwogfQogCkluZGV4OiBKYXZhU2NyaXB0Q29yZS9ranMv
b2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvSmF2YVNjcmlwdENvcmUv
a2pzL29iamVjdC5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNTEKZGlmZiAtcCAtdSAtcjEu
NTEgSmF2YVNjcmlwdENvcmUva2pzL29iamVjdC5jcHAKLS0tIEphdmFTY3JpcHRDb3JlL2tqcy9v
YmplY3QuY3BwCTE2IEF1ZyAyMDA1IDAwOjQ3OjI2IC0wMDAwCTEuNTEKKysrIEphdmFTY3JpcHRD
b3JlL2tqcy9vYmplY3QuY3BwCTMgT2N0IDIwMDUgMDc6MzQ6MzAgLTAwMDAKQEAgLTIyLDYgKzIy
LDcgQEAKICAqCiAgKi8KIAorI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgInZhbHVlLmgi
CiAjaW5jbHVkZSAib2JqZWN0LmgiCiAjaW5jbHVkZSAidHlwZXMuaCIKSW5kZXg6IEphdmFTY3Jp
cHRDb3JlL2tqcy9vYmplY3Rfb2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jv
b3QvSmF2YVNjcmlwdENvcmUva2pzL29iamVjdF9vYmplY3QuY3BwLHYKcmV0cmlldmluZyByZXZp
c2lvbiAxLjE0CmRpZmYgLXAgLXUgLXIxLjE0IEphdmFTY3JpcHRDb3JlL2tqcy9vYmplY3Rfb2Jq
ZWN0LmNwcAotLS0gSmF2YVNjcmlwdENvcmUva2pzL29iamVjdF9vYmplY3QuY3BwCTE2IEF1ZyAy
MDA1IDAwOjQ3OjI2IC0wMDAwCTEuMTQKKysrIEphdmFTY3JpcHRDb3JlL2tqcy9vYmplY3Rfb2Jq
ZWN0LmNwcAkzIE9jdCAyMDA1IDA3OjM0OjMxIC0wMDAwCkBAIC0xOSw2ICsxOSw3IEBACiAgKgog
ICovCiAKKyNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJ2YWx1ZS5oIgogI2luY2x1ZGUg
Im9iamVjdC5oIgogI2luY2x1ZGUgInR5cGVzLmgiCkluZGV4OiBKYXZhU2NyaXB0Q29yZS9ranMv
b3BlcmF0aW9ucy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L0phdmFTY3JpcHRD
b3JlL2tqcy9vcGVyYXRpb25zLmNwcCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4xMApkaWZmIC1w
IC11IC1yMS4xMCBKYXZhU2NyaXB0Q29yZS9ranMvb3BlcmF0aW9ucy5jcHAKLS0tIEphdmFTY3Jp
cHRDb3JlL2tqcy9vcGVyYXRpb25zLmNwcAk0IFNlcCAyMDA1IDAxOjE4OjEyIC0wMDAwCTEuMTAK
KysrIEphdmFTY3JpcHRDb3JlL2tqcy9vcGVyYXRpb25zLmNwcAkzIE9jdCAyMDA1IDA3OjM0OjMx
IC0wMDAwCkBAIC0yMCw5ICsyMCw5IEBACiAgKgogICovCiAKKyNpbmNsdWRlICJjb25maWcuaCIK
ICNpbmNsdWRlICJvcGVyYXRpb25zLmgiCiAKLSNpbmNsdWRlICJjb25maWcuaCIKIAogI2luY2x1
ZGUgPHN0ZGlvLmg+CiAjaW5jbHVkZSA8YXNzZXJ0Lmg+CkluZGV4OiBKYXZhU2NyaXB0Q29yZS9r
anMvcHJvcGVydHlfbWFwLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvSmF2YVNj
cmlwdENvcmUva2pzL3Byb3BlcnR5X21hcC5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNDkK
ZGlmZiAtcCAtdSAtcjEuNDkgSmF2YVNjcmlwdENvcmUva2pzL3Byb3BlcnR5X21hcC5jcHAKLS0t
IEphdmFTY3JpcHRDb3JlL2tqcy9wcm9wZXJ0eV9tYXAuY3BwCTI3IFNlcCAyMDA1IDIyOjM2OjUw
IC0wMDAwCTEuNDkKKysrIEphdmFTY3JpcHRDb3JlL2tqcy9wcm9wZXJ0eV9tYXAuY3BwCTMgT2N0
IDIwMDUgMDc6MzQ6MzEgLTAwMDAKQEAgLTE5LDYgKzE5LDcgQEAKICAqCiAgKi8KIAorI2luY2x1
ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgInByb3BlcnR5X21hcC5oIgogCiAjaW5jbHVkZSA8a3ht
bGNvcmUvRmFzdE1hbGxvYy5oPgpJbmRleDogSmF2YVNjcmlwdENvcmUva2pzL3Byb3BlcnR5X3Ns
b3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9KYXZhU2NyaXB0Q29yZS9ranMv
cHJvcGVydHlfc2xvdC5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMgpkaWZmIC1wIC11IC1y
MS4yIEphdmFTY3JpcHRDb3JlL2tqcy9wcm9wZXJ0eV9zbG90LmNwcAotLS0gSmF2YVNjcmlwdENv
cmUva2pzL3Byb3BlcnR5X3Nsb3QuY3BwCTggQXVnIDIwMDUgMDQ6MDc6MjkgLTAwMDAJMS4yCisr
KyBKYXZhU2NyaXB0Q29yZS9ranMvcHJvcGVydHlfc2xvdC5jcHAJMyBPY3QgMjAwNSAwNzozNDoz
MSAtMDAwMApAQCAtMjEsNiArMjEsNyBAQAogICovCiAKIAorI2luY2x1ZGUgImNvbmZpZy5oIgog
I2luY2x1ZGUgInByb3BlcnR5X3Nsb3QuaCIKIAogbmFtZXNwYWNlIEtKUyB7CkluZGV4OiBKYXZh
U2NyaXB0Q29yZS9ranMvcHJvdGVjdGVkX3ZhbHVlcy5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTog
L2N2cy9yb290L0phdmFTY3JpcHRDb3JlL2tqcy9wcm90ZWN0ZWRfdmFsdWVzLmNwcCx2CnJldHJp
ZXZpbmcgcmV2aXNpb24gMS42CmRpZmYgLXAgLXUgLXIxLjYgSmF2YVNjcmlwdENvcmUva2pzL3By
b3RlY3RlZF92YWx1ZXMuY3BwCi0tLSBKYXZhU2NyaXB0Q29yZS9ranMvcHJvdGVjdGVkX3ZhbHVl
cy5jcHAJMTkgU2VwIDIwMDUgMDY6NTc6MjggLTAwMDAJMS42CisrKyBKYXZhU2NyaXB0Q29yZS9r
anMvcHJvdGVjdGVkX3ZhbHVlcy5jcHAJMyBPY3QgMjAwNSAwNzozNDozMSAtMDAwMApAQCAtMjAs
NiArMjAsNyBAQAogICoKICAqLwogCisjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAicHJv
dGVjdGVkX3ZhbHVlcy5oIgogCiAjaW5jbHVkZSAicG9pbnRlcl9oYXNoLmgiCkBAIC0xODQsMTMg
KzE4NSwxMyBAQCB2b2lkIFByb3RlY3RlZFZhbHVlczo6cmVoYXNoKGludCBuZXdUYWJsCiAKICAg
ICBfdGFibGVTaXplID0gbmV3VGFibGVTaXplOwogICAgIF90YWJsZVNpemVNYXNrID0gbmV3VGFi
bGVTaXplIC0gMTsKLSAgICBfdGFibGUgPSAoS2V5VmFsdWUgKiljYWxsb2MobmV3VGFibGVTaXpl
LCBzaXplb2YoS2V5VmFsdWUpKTsKKyAgICBfdGFibGUgPSAoS2V5VmFsdWUgKilmYXN0Q2FsbG9j
KG5ld1RhYmxlU2l6ZSwgc2l6ZW9mKEtleVZhbHVlKSk7CiAKICAgICBmb3IgKGludCBpID0gMDsg
aSAhPSBvbGRUYWJsZVNpemU7ICsraSkKICAgICAgICAgaWYgKG9sZFRhYmxlW2ldLmtleSkKICAg
ICAgICAgICAgIGluc2VydChvbGRUYWJsZVtpXS5rZXksIG9sZFRhYmxlW2ldLnZhbHVlKTsKIAot
ICAgIGZyZWUob2xkVGFibGUpOworICAgIGZhc3RGcmVlKG9sZFRhYmxlKTsKIH0KIAogfSAvLyBu
YW1lc3BhY2UKSW5kZXg6IEphdmFTY3JpcHRDb3JlL2tqcy9yZWZlcmVuY2UuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9KYXZhU2NyaXB0Q29yZS9ranMvcmVmZXJlbmNlLmNwcCx2
CnJldHJpZXZpbmcgcmV2aXNpb24gMS4xNQpkaWZmIC1wIC11IC1yMS4xNSBKYXZhU2NyaXB0Q29y
ZS9ranMvcmVmZXJlbmNlLmNwcAotLS0gSmF2YVNjcmlwdENvcmUva2pzL3JlZmVyZW5jZS5jcHAJ
MjQgU2VwIDIwMDUgMjI6MzQ6MTQgLTAwMDAJMS4xNQorKysgSmF2YVNjcmlwdENvcmUva2pzL3Jl
ZmVyZW5jZS5jcHAJMyBPY3QgMjAwNSAwNzozNDozMSAtMDAwMApAQCAtMjAsNyArMjAsOSBAQAog
ICoKICAqLwogCisjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAicmVmZXJlbmNlLmgiCisK
ICNpbmNsdWRlICJpbnRlcm5hbC5oIgogCiBuYW1lc3BhY2UgS0pTIHsKSW5kZXg6IEphdmFTY3Jp
cHRDb3JlL2tqcy9yZWZlcmVuY2VfbGlzdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9y
b290L0phdmFTY3JpcHRDb3JlL2tqcy9yZWZlcmVuY2VfbGlzdC5jcHAsdgpyZXRyaWV2aW5nIHJl
dmlzaW9uIDEuOApkaWZmIC1wIC11IC1yMS44IEphdmFTY3JpcHRDb3JlL2tqcy9yZWZlcmVuY2Vf
bGlzdC5jcHAKLS0tIEphdmFTY3JpcHRDb3JlL2tqcy9yZWZlcmVuY2VfbGlzdC5jcHAJMTkgU2Vw
IDIwMDUgMDY6NTc6MjggLTAwMDAJMS44CisrKyBKYXZhU2NyaXB0Q29yZS9ranMvcmVmZXJlbmNl
X2xpc3QuY3BwCTMgT2N0IDIwMDUgMDc6MzQ6MzEgLTAwMDAKQEAgLTIwLDcgKzIwLDkgQEAKICAq
CiAgKi8KIAorI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgInJlZmVyZW5jZV9saXN0Lmgi
CisKICNpbmNsdWRlICJwcm90ZWN0ZWRfcmVmZXJlbmNlLmgiCiAKIG5hbWVzcGFjZSBLSlMgewpJ
bmRleDogSmF2YVNjcmlwdENvcmUva2pzL3JlZ2V4cC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTog
L2N2cy9yb290L0phdmFTY3JpcHRDb3JlL2tqcy9yZWdleHAuY3BwLHYKcmV0cmlldmluZyByZXZp
c2lvbiAxLjEyCmRpZmYgLXAgLXUgLXIxLjEyIEphdmFTY3JpcHRDb3JlL2tqcy9yZWdleHAuY3Bw
Ci0tLSBKYXZhU2NyaXB0Q29yZS9ranMvcmVnZXhwLmNwcAk0IFNlcCAyMDA1IDAxOjE4OjEyIC0w
MDAwCTEuMTIKKysrIEphdmFTY3JpcHRDb3JlL2tqcy9yZWdleHAuY3BwCTMgT2N0IDIwMDUgMDc6
MzQ6MzEgLTAwMDAKQEAgLTE5LDYgKzE5LDcgQEAKICAqCiAgKi8KIAorI2luY2x1ZGUgImNvbmZp
Zy5oIgogI2luY2x1ZGUgInJlZ2V4cC5oIgogCiAjaW5jbHVkZSA8YXNzZXJ0Lmg+CkluZGV4OiBK
YXZhU2NyaXB0Q29yZS9ranMvcmVnZXhwX29iamVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTog
L2N2cy9yb290L0phdmFTY3JpcHRDb3JlL2tqcy9yZWdleHBfb2JqZWN0LmNwcCx2CnJldHJpZXZp
bmcgcmV2aXNpb24gMS4yNApkaWZmIC1wIC11IC1yMS4yNCBKYXZhU2NyaXB0Q29yZS9ranMvcmVn
ZXhwX29iamVjdC5jcHAKLS0tIEphdmFTY3JpcHRDb3JlL2tqcy9yZWdleHBfb2JqZWN0LmNwcAkx
NiBTZXAgMjAwNSAyMjo0MjozMCAtMDAwMAkxLjI0CisrKyBKYXZhU2NyaXB0Q29yZS9ranMvcmVn
ZXhwX29iamVjdC5jcHAJMyBPY3QgMjAwNSAwNzozNDozMSAtMDAwMApAQCAtMjAsOCArMjAsMTAg
QEAKICAqCiAgKi8KIAotI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAicmVnZXhwX29iamVjdC5oIgogCisjaW5jbHVkZSA8c3RkaW8uaD4KICNpbmNsdWRl
ICJ2YWx1ZS5oIgogI2luY2x1ZGUgIm9iamVjdC5oIgogI2luY2x1ZGUgInR5cGVzLmgiCkBAIC0y
OSw3ICszMSw2IEBACiAjaW5jbHVkZSAib3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgImludGVybmFs
LmgiCiAjaW5jbHVkZSAicmVnZXhwLmgiCi0jaW5jbHVkZSAicmVnZXhwX29iamVjdC5oIgogI2lu
Y2x1ZGUgImVycm9yX29iamVjdC5oIgogCiB1c2luZyBuYW1lc3BhY2UgS0pTOwpJbmRleDogSmF2
YVNjcmlwdENvcmUva2pzL3Njb3BlX2NoYWluLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3Zz
L3Jvb3QvSmF2YVNjcmlwdENvcmUva2pzL3Njb3BlX2NoYWluLmNwcCx2CnJldHJpZXZpbmcgcmV2
aXNpb24gMS4xMQpkaWZmIC1wIC11IC1yMS4xMSBKYXZhU2NyaXB0Q29yZS9ranMvc2NvcGVfY2hh
aW4uY3BwCi0tLSBKYXZhU2NyaXB0Q29yZS9ranMvc2NvcGVfY2hhaW4uY3BwCTE0IEp1bCAyMDA1
IDE4OjI3OjAzIC0wMDAwCTEuMTEKKysrIEphdmFTY3JpcHRDb3JlL2tqcy9zY29wZV9jaGFpbi5j
cHAJMyBPY3QgMjAwNSAwNzozNDozMSAtMDAwMApAQCAtMTksNiArMTksNyBAQAogICoKICAqLwog
CisjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAic2NvcGVfY2hhaW4uaCIKIAogI2luY2x1
ZGUgIm9iamVjdC5oIgpJbmRleDogSmF2YVNjcmlwdENvcmUva2pzL3Njb3BlX2NoYWluLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L0phdmFTY3JpcHRDb3JlL2tqcy9zY29wZV9jaGFp
bi5oLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjExCmRpZmYgLXAgLXUgLXIxLjExIEphdmFTY3Jp
cHRDb3JlL2tqcy9zY29wZV9jaGFpbi5oCi0tLSBKYXZhU2NyaXB0Q29yZS9ranMvc2NvcGVfY2hh
aW4uaAkyNyBTZXAgMjAwNSAyMjozNjo1MCAtMDAwMAkxLjExCisrKyBKYXZhU2NyaXB0Q29yZS9r
anMvc2NvcGVfY2hhaW4uaAkzIE9jdCAyMDA1IDA3OjM0OjMxIC0wMDAwCkBAIC0yMiwxMyArMjIs
MTEgQEAKICNpZm5kZWYgS0pTX1NDT1BFX0NIQUlOX0gKICNkZWZpbmUgS0pTX1NDT1BFX0NIQUlO
X0gKIAotI2luY2x1ZGUgPGt4bWxjb3JlL0Zhc3RNYWxsb2MuaD4KLQogbmFtZXNwYWNlIEtKUyB7
CiAKICAgICBjbGFzcyBPYmplY3RJbXA7CiAgICAgCi0gICAgY2xhc3MgU2NvcGVDaGFpbk5vZGUg
OiBwdWJsaWMgRmFzdEFsbG9jYXRlZCB7CisgICAgY2xhc3MgU2NvcGVDaGFpbk5vZGUgewogICAg
IHB1YmxpYzoKICAgICAgICAgU2NvcGVDaGFpbk5vZGUoU2NvcGVDaGFpbk5vZGUgKm4sIE9iamVj
dEltcCAqbykKICAgICAgICAgICAgIDogbmV4dChuKSwgb2JqZWN0KG8pLCByZWZDb3VudCgxKSB7
IH0KSW5kZXg6IEphdmFTY3JpcHRDb3JlL2tqcy9zdHJpbmdfb2JqZWN0LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvSmF2YVNjcmlwdENvcmUva2pzL3N0cmluZ19vYmplY3QuY3Bw
LHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjQ2CmRpZmYgLXAgLXUgLXIxLjQ2IEphdmFTY3JpcHRD
b3JlL2tqcy9zdHJpbmdfb2JqZWN0LmNwcAotLS0gSmF2YVNjcmlwdENvcmUva2pzL3N0cmluZ19v
YmplY3QuY3BwCTI3IFNlcCAyMDA1IDIyOjM2OjUwIC0wMDAwCTEuNDYKKysrIEphdmFTY3JpcHRD
b3JlL2tqcy9zdHJpbmdfb2JqZWN0LmNwcAkzIE9jdCAyMDA1IDA3OjM0OjMyIC0wMDAwCkBAIC0y
MCw2ICsyMCw5IEBACiAgKgogICovCiAKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJz
dHJpbmdfb2JqZWN0LmgiCisKICNpbmNsdWRlICJ2YWx1ZS5oIgogI2luY2x1ZGUgIm9iamVjdC5o
IgogI2luY2x1ZGUgInR5cGVzLmgiCkBAIC0yNyw3ICszMCw2IEBACiAjaW5jbHVkZSAib3BlcmF0
aW9ucy5oIgogI2luY2x1ZGUgInJlZ2V4cC5oIgogI2luY2x1ZGUgInJlZ2V4cF9vYmplY3QuaCIK
LSNpbmNsdWRlICJzdHJpbmdfb2JqZWN0LmgiCiAjaW5jbHVkZSAiZXJyb3Jfb2JqZWN0LmgiCiAj
aW5jbHVkZSA8c3RkaW8uaD4KICNpbmNsdWRlICJzdHJpbmdfb2JqZWN0Lmx1dC5oIgpJbmRleDog
SmF2YVNjcmlwdENvcmUva2pzL3Rlc3RranMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMv
cm9vdC9KYXZhU2NyaXB0Q29yZS9ranMvdGVzdGtqcy5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9u
IDEuMTUKZGlmZiAtcCAtdSAtcjEuMTUgSmF2YVNjcmlwdENvcmUva2pzL3Rlc3RranMuY3BwCi0t
LSBKYXZhU2NyaXB0Q29yZS9ranMvdGVzdGtqcy5jcHAJMTkgU2VwIDIwMDUgMDY6NTc6MjggLTAw
MDAJMS4xNQorKysgSmF2YVNjcmlwdENvcmUva2pzL3Rlc3RranMuY3BwCTMgT2N0IDIwMDUgMDc6
MzQ6MzIgLTAwMDAKQEAgLTIxLDYgKzIxLDcgQEAKICAqCiAgKi8KIAorI2luY2x1ZGUgImNvbmZp
Zy5oIgogI2luY2x1ZGUgPHN0ZGlvLmg+CiAjaW5jbHVkZSA8c3RkbGliLmg+CiAjaW5jbHVkZSA8
c3RyaW5nLmg+CkluZGV4OiBKYXZhU2NyaXB0Q29yZS9ranMvdXN0cmluZy5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
UkNTIGZpbGU6IC9jdnMvcm9vdC9KYXZhU2NyaXB0Q29yZS9ranMvdXN0cmluZy5oLHYKcmV0cmll
dmluZyByZXZpc2lvbiAxLjQxCmRpZmYgLXAgLXUgLXIxLjQxIEphdmFTY3JpcHRDb3JlL2tqcy91
c3RyaW5nLmgKLS0tIEphdmFTY3JpcHRDb3JlL2tqcy91c3RyaW5nLmgJMjcgU2VwIDIwMDUgMjI6
MzY6NTAgLTAwMDAJMS40MQorKysgSmF2YVNjcmlwdENvcmUva2pzL3VzdHJpbmcuaAkzIE9jdCAy
MDA1IDA3OjM0OjMyIC0wMDAwCkBAIC0xOTMsNyArMTkzLDcgQEAgbmFtZXNwYWNlIEtKUyB7CiAg
IC8qKgogICAgKiBAc2hvcnQgVW5pY29kZSBzdHJpbmcgY2xhc3MKICAgICovCi0gIGNsYXNzIFVT
dHJpbmcgOiBwdWJsaWMgRmFzdEFsbG9jYXRlZCB7CisgIGNsYXNzIFVTdHJpbmcgewogICAgIGZy
aWVuZCBib29sIG9wZXJhdG9yPT0oY29uc3QgVVN0cmluZyYsIGNvbnN0IFVTdHJpbmcmKTsKICAg
ICBmcmllbmQgY2xhc3MgVUNoYXJSZWZlcmVuY2U7CiAgICAgZnJpZW5kIGNsYXNzIElkZW50aWZp
ZXI7CkBAIC0yMDUsOCArMjA1LDYgQEAgbmFtZXNwYWNlIEtKUyB7CiAgICAgICovCiAgICAgc3Ry
dWN0IFJlcCB7CiAKLSAgICAgIEZBU1RfQUxMT0NBVEVEX1BPRDsKLQogICAgICAgc3RhdGljIFJl
cCAqY3JlYXRlKFVDaGFyICpkLCBpbnQgbCk7CiAgICAgICBzdGF0aWMgUmVwICpjcmVhdGVDb3B5
aW5nKGNvbnN0IFVDaGFyICpkLCBpbnQgbCk7CiAgICAgICBzdGF0aWMgUmVwICpjcmVhdGUoUmVw
ICpiYXNlLCBpbnQgb2Zmc2V0LCBpbnQgbGVuZ3RoKTsKSW5kZXg6IEphdmFTY3JpcHRDb3JlL2tq
cy92YWx1ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L0phdmFTY3JpcHRDb3Jl
L2tqcy92YWx1ZS5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMjkKZGlmZiAtcCAtdSAtcjEu
MjkgSmF2YVNjcmlwdENvcmUva2pzL3ZhbHVlLmNwcAotLS0gSmF2YVNjcmlwdENvcmUva2pzL3Zh
bHVlLmNwcAkxNiBTZXAgMjAwNSAyMjo0MjozMCAtMDAwMAkxLjI5CisrKyBKYXZhU2NyaXB0Q29y
ZS9ranMvdmFsdWUuY3BwCTMgT2N0IDIwMDUgMDc6MzQ6MzIgLTAwMDAKQEAgLTIxLDYgKzIxLDcg
QEAKICAqCiAgKi8KIAorI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgInZhbHVlLmgiCiAK
ICNpbmNsdWRlICJvYmplY3QuaCIKSW5kZXg6IEphdmFTY3JpcHRDb3JlL2t4bWxjb3JlL0Fzc2Vy
dGlvbnMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L0phdmFTY3JpcHRDb3JlL2t4
bWxjb3JlL0Fzc2VydGlvbnMubW0sdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMQpkaWZmIC1wIC11
IC1yMS4xIEphdmFTY3JpcHRDb3JlL2t4bWxjb3JlL0Fzc2VydGlvbnMubW0KLS0tIEphdmFTY3Jp
cHRDb3JlL2t4bWxjb3JlL0Fzc2VydGlvbnMubW0JMjcgU2VwIDIwMDUgMjI6MzY6NTMgLTAwMDAJ
MS4xCisrKyBKYXZhU2NyaXB0Q29yZS9reG1sY29yZS9Bc3NlcnRpb25zLm1tCTMgT2N0IDIwMDUg
MDc6MzQ6MzIgLTAwMDAKQEAgLTI0LDYgKzI0LDcgQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAogICovCiAK
KyNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJBc3NlcnRpb25zLmgiCiAKICNkZWZpbmUg
U1VQUE9SVF9PQkpDX0xPR0dJTkcgMQpJbmRleDogSmF2YVNjcmlwdENvcmUva3htbGNvcmUvRmFz
dE1hbGxvYy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L0phdmFTY3JpcHRDb3Jl
L2t4bWxjb3JlL0Zhc3RNYWxsb2MuY3BwLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjEKZGlmZiAt
cCAtdSAtcjEuMSBKYXZhU2NyaXB0Q29yZS9reG1sY29yZS9GYXN0TWFsbG9jLmNwcAotLS0gSmF2
YVNjcmlwdENvcmUva3htbGNvcmUvRmFzdE1hbGxvYy5jcHAJMjcgU2VwIDIwMDUgMjI6MzY6NTMg
LTAwMDAJMS4xCisrKyBKYXZhU2NyaXB0Q29yZS9reG1sY29yZS9GYXN0TWFsbG9jLmNwcAkzIE9j
dCAyMDA1IDA3OjM0OjMzIC0wMDAwCkBAIC02Miw2ICs2Miw3IEBACiAvLyAqIGFsbG9jYXRpb24g
b2YgYSByZWFzb25hYmx5IGNvbXBsaWNhdGVkIHN0cnVjdAogLy8gICBnb2VzIGZyb20gYWJvdXQg
MTEwMCBucyB0byBhYm91dCAzMDAgbnMuCiAKKyNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRl
ICJGYXN0TWFsbG9jLmgiCiAKICNpZm5kZWYgTkRFQlVHCkBAIC05OCw3ICs5OSw2IEBAIHZvaWQg
KmZhc3RSZWFsbG9jKHZvaWQqIHAsIHNpemVfdCBuKQogCiAjZWxzZQogCi0jaW5jbHVkZSAiY29u
ZmlnLmgiCiAjaW5jbHVkZSA8bmV3PgogI2luY2x1ZGUgPHN0ZGlvLmg+CiAjaW5jbHVkZSA8c3Rk
ZGVmLmg+CkBAIC0xMjAsNiArMTIwLDEyIEBAIHZvaWQgKmZhc3RSZWFsbG9jKHZvaWQqIHAsIHNp
emVfdCBuKQogCiAjaW5jbHVkZSAiQXNzZXJ0aW9ucy5oIgogCisjaWZkZWYgX19HTlVDX18KKyNk
ZWZpbmUgQUxXQVlTX0lOTElORSBpbmxpbmUgX19hdHRyaWJ1dGVfXygoYWx3YXlzX2lubGluZSkp
CisjZWxzZQorI2RlZmluZSBBTFdBWVNfSU5MSU5FIGlubGluZQorI2VuZGlmCisKICNpZiBLWENf
Q0hBTkdFUwogbmFtZXNwYWNlIEtYTUxDb3JlIHsKIApAQCAtMTU0LDYgKzE2MCw3IEBAIHN0YXRp
YyBjb25zdCBzaXplX3Qga01heFNpemUgICAgPSA4dSAqIGsKIHN0YXRpYyBjb25zdCBzaXplX3Qg
a0FsaWduU2hpZnQgPSAzOwogc3RhdGljIGNvbnN0IHNpemVfdCBrQWxpZ25tZW50ICA9IDEgPDwg
a0FsaWduU2hpZnQ7CiBzdGF0aWMgY29uc3Qgc2l6ZV90IGtOdW1DbGFzc2VzID0gMTcwOworc3Rh
dGljIGNvbnN0IHNpemVfdCBrTWF4VGlueVNpemUgPSAxIDw8IDg7CiAKIC8vIE1pbmltdW0gbnVt
YmVyIG9mIHBhZ2VzIHRvIGZldGNoIGZyb20gc3lzdGVtIGF0IGEgdGltZS4gIE11c3QgYmUKIC8v
IHNpZ25pZmljYW50bHkgYmlnZ2VyIHRoYW4ga0Jsb2NrU2l6ZSB0byBhbW9ydGl6ZSBzeXN0ZW0t
Y2FsbApAQCAtMjg1LDExICsyOTIsMTEgQEAgc3RhdGljIHZvaWQgSW5pdFNpemVDbGFzc2VzKCkg
ewogICAgICAgLy8gSW5jcmVhc2UgYWxpZ25tZW50IGV2ZXJ5IHNvIG9mdGVuLgogICAgICAgLy8K
ICAgICAgIC8vIFNpbmNlIHdlIGRvdWJsZSB0aGUgYWxpZ25tZW50IGV2ZXJ5IHRpbWUgc2l6ZSBk
b3VibGVzIGFuZAotICAgICAgLy8gc2l6ZSA+PSAxMjgsIHRoaXMgbWVhbnMgdGhhdCBzcGFjZSB3
YXN0ZWQgZHVlIHRvIGFsaWdubWVudCBpcwotICAgICAgLy8gYXQgbW9zdCAxNi8xMjggaS5lLiwg
MTIuNSUuICBQbHVzIHdlIGNhcCB0aGUgYWxpZ25tZW50IGF0IDI1NgorICAgICAgLy8gc2l6ZSA+
PSAyNTYsIHRoaXMgbWVhbnMgdGhhdCBzcGFjZSB3YXN0ZWQgZHVlIHRvIGFsaWdubWVudCBpcwor
ICAgICAgLy8gYXQgbW9zdCAxNi8yNTYgaS5lLiwgNi4yNSUuICBQbHVzIHdlIGNhcCB0aGUgYWxp
Z25tZW50IGF0IDUxMgogICAgICAgLy8gYnl0ZXMsIHNvIHRoZSBzcGFjZSB3YXN0ZWQgYXMgYSBw
ZXJjZW50YWdlIHN0YXJ0cyBmYWxsaW5nIGZvcgotICAgICAgLy8gc2l6ZXMgPiAySy4KLSAgICAg
IGlmICgobGcgPj0gNykgJiYgKGFsaWduc2hpZnQgPCA4KSkgeworICAgICAgLy8gc2l6ZXMgPiA0
Sy4KKyAgICAgIGlmICgobGcgPj0gOCkgJiYgKGFsaWduc2hpZnQgPCA5KSkgewogICAgICAgICBh
bGlnbnNoaWZ0Kys7CiAgICAgICB9CiAgICAgICBzaXplX2Jhc2VbbGddID0gbmV4dF9jbGFzcyAt
ICgoc2l6ZS0xKSA+PiBhbGlnbnNoaWZ0KTsKQEAgLTMwOSwxMSArMzE2LDExIEBAIHN0YXRpYyB2
b2lkIEluaXRTaXplQ2xhc3NlcygpIHsKICAgLy8gSW5pdGlhbGl6ZSB0aGUgbnVtYmVyIG9mIHBh
Z2VzIHdlIHNob3VsZCBhbGxvY2F0ZSB0byBzcGxpdCBpbnRvCiAgIC8vIHNtYWxsIG9iamVjdHMg
Zm9yIGEgZ2l2ZW4gY2xhc3MuCiAgIGZvciAoc2l6ZV90IGNsID0gMTsgY2wgPCBuZXh0X2NsYXNz
OyBjbCsrKSB7Ci0gICAgLy8gQWxsb2NhdGUgZW5vdWdoIHBhZ2VzIHNvIGxlZnRvdmVyIGlzIGxl
c3MgdGhhbiAxLzggb2YgdG90YWwuCi0gICAgLy8gVGhpcyBib3VuZHMgd2FzdGVkIHNwYWNlIHRv
IGF0IG1vc3QgMTIuNSUuCisgICAgLy8gQWxsb2NhdGUgZW5vdWdoIHBhZ2VzIHNvIGxlZnRvdmVy
IGlzIGxlc3MgdGhhbiAxLzE2IG9mIHRvdGFsLgorICAgIC8vIFRoaXMgYm91bmRzIHdhc3RlZCBz
cGFjZSB0byBhdCBtb3N0IDYuMjUlLgogICAgIHNpemVfdCBwc2l6ZSA9IGtQYWdlU2l6ZTsKICAg
ICBjb25zdCBzaXplX3QgcyA9IGNsYXNzX3RvX3NpemVbY2xdOwotICAgIHdoaWxlICgocHNpemUg
JSBzKSA+IChwc2l6ZSA+PiAzKSkgeworICAgIHdoaWxlICgocHNpemUgJSBzKSA+IChwc2l6ZSA+
PiA0KSkgewogICAgICAgcHNpemUgKz0ga1BhZ2VTaXplOwogICAgIH0KICAgICBjbGFzc190b19w
YWdlc1tjbF0gPSBwc2l6ZSA+PiBrUGFnZVNoaWZ0OwpAQCAtNTE3LDcgKzUyNCw3IEBAIHN0YXRp
YyBpbmxpbmUgdm9pZCBETExfUmVtb3ZlKFNwYW4qIHNwYW4KICAgc3Bhbi0+bmV4dCA9IE5VTEw7
CiB9CiAKLXN0YXRpYyBpbmxpbmUgYm9vbCBETExfSXNFbXB0eShjb25zdCBTcGFuKiBsaXN0KSB7
CitzdGF0aWMgQUxXQVlTX0lOTElORSBib29sIERMTF9Jc0VtcHR5KGNvbnN0IFNwYW4qIGxpc3Qp
IHsKICAgcmV0dXJuIGxpc3QtPm5leHQgPT0gbGlzdDsKIH0KIApAQCAtNTQxLDcgKzU0OCw3IEBA
IHN0YXRpYyB2b2lkIERMTF9QcmludChjb25zdCBjaGFyKiBsYWJlbCwKIH0KICNlbmRpZgogCi1z
dGF0aWMgdm9pZCBETExfUHJlcGVuZChTcGFuKiBsaXN0LCBTcGFuKiBzcGFuKSB7CitzdGF0aWMg
aW5saW5lIHZvaWQgRExMX1ByZXBlbmQoU3BhbiogbGlzdCwgU3Bhbiogc3BhbikgewogICBBU1NF
UlQoc3Bhbi0+bmV4dCA9PSBOVUxMKTsKICAgQVNTRVJUKHNwYW4tPnByZXYgPT0gTlVMTCk7CiAg
IHNwYW4tPm5leHQgPSBsaXN0LT5uZXh0OwpAQCAtMTAxNyw3ICsxMDI0LDcgQEAgY2xhc3MgVENN
YWxsb2NfVGhyZWFkQ2FjaGUgewogICB2b2lkKiBBbGxvY2F0ZShzaXplX3Qgc2l6ZSk7CiAgIHZv
aWQgRGVhbGxvY2F0ZSh2b2lkKiBwdHIsIHNpemVfdCBzaXplX2NsYXNzKTsKIAotICB2b2lkIEZl
dGNoRnJvbUNlbnRyYWxDYWNoZShzaXplX3QgY2wpOworICB2b2lkIEZldGNoRnJvbUNlbnRyYWxD
YWNoZShzaXplX3QgY2wsIHNpemVfdCBhbGxvY2F0aW9uU2l6ZSk7CiAgIHZvaWQgUmVsZWFzZVRv
Q2VudHJhbENhY2hlKHNpemVfdCBjbCwgaW50IE4pOwogICB2b2lkIFNjYXZlbmdlKCk7CiAgIHZv
aWQgUHJpbnQoKSBjb25zdDsKQEAgLTExMzUsNyArMTE0Miw3IEBAIHZvaWQgVENNYWxsb2NfQ2Vu
dHJhbF9GcmVlTGlzdDo6SW5pdChzaXoKICAgY291bnRlcl8gPSAwOwogfQogCi1pbmxpbmUgdm9p
ZCBUQ01hbGxvY19DZW50cmFsX0ZyZWVMaXN0OjpJbnNlcnQodm9pZCogb2JqZWN0KSB7CitBTFdB
WVNfSU5MSU5FIHZvaWQgVENNYWxsb2NfQ2VudHJhbF9GcmVlTGlzdDo6SW5zZXJ0KHZvaWQqIG9i
amVjdCkgewogICBjb25zdCBQYWdlSUQgcCA9IHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pihv
YmplY3QpID4+IGtQYWdlU2hpZnQ7CiAgIFNwYW4qIHNwYW4gPSBwYWdlaGVhcC0+R2V0RGVzY3Jp
cHRvcihwKTsKICAgQVNTRVJUKHNwYW4gIT0gTlVMTCk7CkBAIC0xMTgwLDcgKzExODcsNyBAQCBp
bmxpbmUgdm9pZCBUQ01hbGxvY19DZW50cmFsX0ZyZWVMaXN0OjpJCiAgIH0KIH0KIAotaW5saW5l
IHZvaWQqIFRDTWFsbG9jX0NlbnRyYWxfRnJlZUxpc3Q6OlJlbW92ZSgpIHsKK0FMV0FZU19JTkxJ
TkUgdm9pZCogVENNYWxsb2NfQ2VudHJhbF9GcmVlTGlzdDo6UmVtb3ZlKCkgewogICBpZiAoRExM
X0lzRW1wdHkoJm5vbmVtcHR5XykpIHJldHVybiBOVUxMOwogICBTcGFuKiBzcGFuID0gbm9uZW1w
dHlfLm5leHQ7CiAKQEAgLTExOTksNyArMTIwNiw3IEBAIGlubGluZSB2b2lkKiBUQ01hbGxvY19D
ZW50cmFsX0ZyZWVMaXN0OjoKIH0KIAogLy8gRmV0Y2ggbWVtb3J5IGZyb20gdGhlIHN5c3RlbSBh
bmQgYWRkIHRvIHRoZSBjZW50cmFsIGNhY2hlIGZyZWVsaXN0LgotaW5saW5lIHZvaWQgVENNYWxs
b2NfQ2VudHJhbF9GcmVlTGlzdDo6UG9wdWxhdGUoKSB7CitBTFdBWVNfSU5MSU5FIHZvaWQgVENN
YWxsb2NfQ2VudHJhbF9GcmVlTGlzdDo6UG9wdWxhdGUoKSB7CiAgIC8vIFJlbGVhc2UgY2VudHJh
bCBsaXN0IGxvY2sgd2hpbGUgb3BlcmF0aW5nIG9uIHBhZ2VoZWFwCiAgIGxvY2tfLlVubG9jaygp
OwogICBjb25zdCBzaXplX3QgbnBhZ2VzID0gY2xhc3NfdG9fcGFnZXNbc2l6ZV9jbGFzc19dOwpA
QCAtMTI4MiwxNSArMTI4OSwxNiBAQCB2b2lkIFRDTWFsbG9jX1RocmVhZENhY2hlOjpDbGVhbnVw
KCkgewogICB9CiB9CiAKLWlubGluZSB2b2lkKiBUQ01hbGxvY19UaHJlYWRDYWNoZTo6QWxsb2Nh
dGUoc2l6ZV90IHNpemUpIHsKK0FMV0FZU19JTkxJTkUgdm9pZCogVENNYWxsb2NfVGhyZWFkQ2Fj
aGU6OkFsbG9jYXRlKHNpemVfdCBzaXplKSB7CiAgIEFTU0VSVChzaXplIDw9IGtNYXhTaXplKTsK
ICAgY29uc3Qgc2l6ZV90IGNsID0gU2l6ZUNsYXNzKHNpemUpOwogICBGcmVlTGlzdCogbGlzdCA9
ICZsaXN0X1tjbF07CisgIHNpemVfdCBhbGxvY2F0aW9uU2l6ZSA9IChzaXplIDw9IGtNYXhUaW55
U2l6ZSkgPyAoc2l6ZSArIDcpICYgfjB4NyA6IEJ5dGVTaXplRm9yQ2xhc3MoY2wpOwogICBpZiAo
bGlzdC0+ZW1wdHkoKSkgewotICAgIEZldGNoRnJvbUNlbnRyYWxDYWNoZShjbCk7CisgICAgRmV0
Y2hGcm9tQ2VudHJhbENhY2hlKGNsLCBhbGxvY2F0aW9uU2l6ZSk7CiAgICAgaWYgKGxpc3QtPmVt
cHR5KCkpIHJldHVybiBOVUxMOwogICB9Ci0gIHNpemVfIC09IEJ5dGVTaXplRm9yQ2xhc3MoY2wp
OworICBzaXplXyAtPSBhbGxvY2F0aW9uU2l6ZTsKICAgcmV0dXJuIGxpc3QtPlBvcCgpOwogfQog
CkBAIC0xMzA2LDcgKzEzMTQsNyBAQCBpbmxpbmUgdm9pZCBUQ01hbGxvY19UaHJlYWRDYWNoZTo6
RGVhbGxvCiB9CiAKIC8vIFJlbW92ZSBzb21lIG9iamVjdHMgb2YgY2xhc3MgImNsIiBmcm9tIGNl
bnRyYWwgY2FjaGUgYW5kIGFkZCB0byB0aHJlYWQgaGVhcAotaW5saW5lIHZvaWQgVENNYWxsb2Nf
VGhyZWFkQ2FjaGU6OkZldGNoRnJvbUNlbnRyYWxDYWNoZShzaXplX3QgY2wpIHsKK0FMV0FZU19J
TkxJTkUgdm9pZCBUQ01hbGxvY19UaHJlYWRDYWNoZTo6RmV0Y2hGcm9tQ2VudHJhbENhY2hlKHNp
emVfdCBjbCwgc2l6ZV90IGJ5dGVTaXplKSB7CiAgIFRDTWFsbG9jX0NlbnRyYWxfRnJlZUxpc3Qq
IHNyYyA9ICZjZW50cmFsX2NhY2hlW2NsXTsKICAgRnJlZUxpc3QqIGRzdCA9ICZsaXN0X1tjbF07
CiAgIFNwaW5Mb2NrSG9sZGVyIGgoJnNyYy0+bG9ja18pOwpAQCAtMTMyMiw3ICsxMzMwLDcgQEAg
aW5saW5lIHZvaWQgVENNYWxsb2NfVGhyZWFkQ2FjaGU6OkZldGNoRgogICAgICAgfQogICAgIH0K
ICAgICBkc3QtPlB1c2gob2JqZWN0KTsKLSAgICBzaXplXyArPSBCeXRlU2l6ZUZvckNsYXNzKGNs
KTsKKyAgICBzaXplXyArPSBieXRlU2l6ZTsKICAgfQogfQogCkBAIC0xMzY4LDEyICsxMzc2LDMz
IEBAIGlubGluZSB2b2lkIFRDTWFsbG9jX1RocmVhZENhY2hlOjpTY2F2ZW4KICNlbmRpZgogfQog
Citib29sIGlzTXVsdGlUaHJlYWRlZDsKK1RDTWFsbG9jX1RocmVhZENhY2hlICptYWluVGhyZWFk
Q2FjaGU7CitwdGhyZWFkX3QgbWFpblRocmVhZElEOworc3RhdGljIFNwaW5Mb2NrIG11bHRpVGhy
ZWFkZWRMb2NrID0gU1BJTkxPQ0tfSU5JVElBTElaRVI7CisKK3ZvaWQgZmFzdE1hbGxvY1JlZ2lz
dGVyVGhyZWFkKHB0aHJlYWRfdCB0aHJlYWQpIAoreworICAgIGlmICh0aHJlYWQgIT0gbWFpblRo
cmVhZElEKSB7CisgICAgICAgIC8vIFdlIGxvY2sgd2hlbiB3cml0aW5nIGlzTXVsdGlUaHJlYWRl
ZCBidXQgbm90IHdoZW4gcmVhZGluZyBpdC4KKyAgICAgICAgLy8gSXQncyBvayBpZiB0aGUgbWFp
biB0aHJlYWQgdGVtcG9yYXJpbHkgZ2V0cyBpdCB3cm9uZyAtIHRoZSBnbG9iYWwKKyAgICAgICAg
Ly8gdmFyaWFibGUgY2FjaGUgaXMgdGhlIHNhbWUgYXMgdGhlIHRocmVhZC1zcGVjaWZpYyBjYWNo
ZSBmb3IgdGhlIG1haW4gdGhyZWFkLgorICAgICAgICAvLyBBbmQgb3RoZXIgdGhyZWFkcyBjYW4n
dCBnZXQgaXQgd3JvbmcgYmVjYXVzZSB0aGV5IG11c3QgaGF2ZSBnb25lIHRocm91Z2ggCisgICAg
ICAgIC8vIHRoaXMgZnVuY3Rpb24gYmVmb3JlIGFsbG9jYXRpbmcgc28gdGhleSd2ZSBzeW5jaHJv
bml6ZWQuCisgICAgICAgIFNwaW5Mb2NrSG9sZGVyIGxvY2soJm11bHRpVGhyZWFkZWRMb2NrKTsK
KyAgICAgICAgaXNNdWx0aVRocmVhZGVkID0gdHJ1ZTsKKyAgICB9Cit9CisKIGlubGluZSBUQ01h
bGxvY19UaHJlYWRDYWNoZSogVENNYWxsb2NfVGhyZWFkQ2FjaGU6OkdldENhY2hlKCkgewogICB2
b2lkKiBwdHIgPSBOVUxMOwogICBpZiAoIXRzZF9pbml0ZWQpIHsKICAgICBJbml0TW9kdWxlKCk7
CiAgIH0gZWxzZSB7Ci0gICAgcHRyID0gcHRocmVhZF9nZXRzcGVjaWZpYyhoZWFwX2tleSk7Cisg
ICAgICBpZiAoIWlzTXVsdGlUaHJlYWRlZCkKKyAgICAgICAgICBwdHIgPSBtYWluVGhyZWFkQ2Fj
aGU7CisgICAgICBlbHNlCisgICAgICAgICAgcHRyID0gcHRocmVhZF9nZXRzcGVjaWZpYyhoZWFw
X2tleSk7CiAgIH0KICAgaWYgKHB0ciA9PSBOVUxMKSBwdHIgPSBDcmVhdGVDYWNoZUlmTmVjZXNz
YXJ5KCk7CiAgIHJldHVybiByZWludGVycHJldF9jYXN0PFRDTWFsbG9jX1RocmVhZENhY2hlKj4o
cHRyKTsKQEAgLTEzODMsNiArMTQxMiw4IEBAIGlubGluZSBUQ01hbGxvY19UaHJlYWRDYWNoZSog
VENNYWxsb2NfVGgKIC8vIGJlY2F1c2Ugd2UgbWF5IGJlIGluIHRoZSB0aHJlYWQgZGVzdHJ1Y3Rp
b24gY29kZSBhbmQgbWF5IGhhdmUKIC8vIGFscmVhZHkgY2xlYW5lZCB1cCB0aGUgY2FjaGUgZm9y
IHRoaXMgdGhyZWFkLgogaW5saW5lIFRDTWFsbG9jX1RocmVhZENhY2hlKiBUQ01hbGxvY19UaHJl
YWRDYWNoZTo6R2V0Q2FjaGVJZlByZXNlbnQoKSB7CisgIGlmICghaXNNdWx0aVRocmVhZGVkKQor
ICAgICAgcmV0dXJuIG1haW5UaHJlYWRDYWNoZTsKICAgaWYgKCF0c2RfaW5pdGVkKSByZXR1cm4g
TlVMTDsKICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8VENNYWxsb2NfVGhyZWFkQ2FjaGUqPgog
ICAgIChwdGhyZWFkX2dldHNwZWNpZmljKGhlYXBfa2V5KSk7CkBAIC0xNDczLDcgKzE1MDQsMTEg
QEAgdm9pZCogVENNYWxsb2NfVGhyZWFkQ2FjaGU6OkNyZWF0ZUNhY2hlSQogICAgICAgaWYgKHRo
cmVhZF9oZWFwcyAhPSBOVUxMKSB0aHJlYWRfaGVhcHMtPnByZXZfID0gaGVhcDsKICAgICAgIHRo
cmVhZF9oZWFwcyA9IGhlYXA7CiAgICAgICB0aHJlYWRfaGVhcF9jb3VudCsrOwotICAgICAgUmVj
b21wdXRlVGhyZWFkQ2FjaGVTaXplKCk7CisgICAgICBSZWNvbXB1dGVUaHJlYWRDYWNoZVNpemUo
KTsgCisgICAgICBpZiAoIWlzTXVsdGlUaHJlYWRlZCkgeworICAgICAgICAgIG1haW5UaHJlYWRD
YWNoZSA9IGhlYXA7CisgICAgICAgICAgbWFpblRocmVhZElEID0gcHRocmVhZF9zZWxmKCk7Cisg
ICAgICB9CiAgICAgfQogICB9CiAKQEAgLTE4MDEsNDEgKzE4MzYsNDkgQEAgc3RhdGljIFNwYW4q
IERvU2FtcGxlZEFsbG9jYXRpb24oc2l6ZV90IAogfQogI2VuZGlmCiAKLXN0YXRpYyBpbmxpbmUg
dm9pZCogZG9fbWFsbG9jKHNpemVfdCBzaXplKSB7CitzdGF0aWMgQUxXQVlTX0lOTElORSB2b2lk
KiBkb19tYWxsb2Moc2l6ZV90IHNpemUpIHsKIAogI2lmbmRlZiBLWENfQ0hBTkdFUwogICBpZiAo
VENNYWxsb2NEZWJ1Zzo6bGV2ZWwgPj0gVENNYWxsb2NEZWJ1Zzo6a1ZlcmJvc2UpIAogICAgIE1F
U1NBR0UoIkluIHRjbWFsbG9jIGRvX21hbGxvYyglIiBQUkl1UyIpXG4iLCBzaXplKTsKICNlbmRp
ZgogCisjaWZuZGVmIEtYQ19DSEFOR0VTCiAgIC8vIFRoZSBmb2xsb3dpbmcgY2FsbCBmb3JjZXMg
bW9kdWxlIGluaXRpYWxpemF0aW9uCiAgIFRDTWFsbG9jX1RocmVhZENhY2hlKiBoZWFwID0gVENN
YWxsb2NfVGhyZWFkQ2FjaGU6OkdldENhY2hlKCk7Ci0jaWZuZGVmIEtYQ19DSEFOR0VTCiAgIGlm
IChoZWFwLT5TYW1wbGVBbGxvY2F0aW9uKHNpemUpKSB7CiAgICAgU3Bhbiogc3BhbiA9IERvU2Ft
cGxlZEFsbG9jYXRpb24oc2l6ZSk7CiAgICAgaWYgKHNwYW4gPT0gTlVMTCkgcmV0dXJuIE5VTEw7
CiAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KHNwYW4tPnN0YXJ0IDw8IGtQYWdl
U2hpZnQpOwogICB9IGVsc2UKICNlbmRpZgotICAgICAgaWYgKHNpemUgPiBrTWF4U2l6ZSkgewor
ICBpZiAoc2l6ZSA+IGtNYXhTaXplKSB7CiAgICAgLy8gVXNlIHBhZ2UtbGV2ZWwgYWxsb2NhdG9y
CisgICAgaWYgKCF0c2RfaW5pdGVkICYmICFwaGluaXRlZCkKKyAgICAgIFRDTWFsbG9jX1RocmVh
ZENhY2hlOjpJbml0TW9kdWxlKCk7CisKICAgICBTcGluTG9ja0hvbGRlciBoKCZwYWdlaGVhcF9s
b2NrKTsKKworCiAgICAgU3Bhbiogc3BhbiA9IHBhZ2VoZWFwLT5OZXcocGFnZXMoc2l6ZSkpOwog
ICAgIGlmIChzcGFuID09IE5VTEwpIHJldHVybiBOVUxMOwogICAgIHJldHVybiByZWludGVycHJl
dF9jYXN0PHZvaWQqPihzcGFuLT5zdGFydCA8PCBrUGFnZVNoaWZ0KTsKICAgfSBlbHNlIHsKLSAg
ICByZXR1cm4gaGVhcC0+QWxsb2NhdGUoc2l6ZSk7CisjaWZkZWYgS1hDX0NIQU5HRVMKKyAgICAg
IFRDTWFsbG9jX1RocmVhZENhY2hlKiBoZWFwID0gVENNYWxsb2NfVGhyZWFkQ2FjaGU6OkdldENh
Y2hlKCk7CisjZW5kaWYKKyAgICAgIHJldHVybiBoZWFwLT5BbGxvY2F0ZShzaXplKTsKICAgfQog
fQogCi1zdGF0aWMgaW5saW5lIHZvaWQgZG9fZnJlZSh2b2lkKiBwdHIpIHsKK3N0YXRpYyBBTFdB
WVNfSU5MSU5FIHZvaWQgZG9fZnJlZSh2b2lkKiBwdHIpIHsKICNpZm5kZWYgS1hDX0NIQU5HRVMK
ICAgaWYgKFRDTWFsbG9jRGVidWc6OmxldmVsID49IFRDTWFsbG9jRGVidWc6OmtWZXJib3NlKSAK
ICAgICBNRVNTQUdFKCJJbiB0Y21hbGxvYyBkb19mcmVlKCVwKVxuIiwgcHRyKTsKICNlbmRpZgog
I2lmIEtYQ19DSEFOR0VTCi0gIGlmIChwdHIgPT0gTlVMTCkgcmV0dXJuOyAKLSNlbHNlCisgIGlm
IChwdHIgPT0gTlVMTCkgcmV0dXJuOworI2Vsc2UgS1hDX0NIQU5HRVMKICAgaWYgKHB0ciA9PSBO
VUxMIHx8IHRjbWFsbG9jX2lzX2Rlc3Ryb3llZCkgcmV0dXJuOwogI2VuZGlmCiAKQEAgLTIwNzEs
NyArMjExNCw3IEBAIHZvaWQqIHJlYWxsb2Modm9pZCogb2xkX3B0ciwgc2l6ZV90IG5ld18KICNp
Zm5kZWYgS1hDX0NIQU5HRVMKICAgICBNYWxsb2NIb29rOjpJbnZva2VEZWxldGVIb29rKG9sZF9w
dHIpOwogI2VuZGlmCi0gICAgZG9fZnJlZShvbGRfcHRyKTsKKyAgICBmcmVlKG9sZF9wdHIpOwog
ICAgIHJldHVybiBOVUxMOwogICB9CiAKQEAgLTIxMDAsNyArMjE0Myw3IEBAIHZvaWQqIHJlYWxs
b2Modm9pZCogb2xkX3B0ciwgc2l6ZV90IG5ld18KICNpZm5kZWYgS1hDX0NIQU5HRVMKICAgICBN
YWxsb2NIb29rOjpJbnZva2VEZWxldGVIb29rKG9sZF9wdHIpOwogI2VuZGlmCi0gICAgZG9fZnJl
ZShvbGRfcHRyKTsKKyAgICBmcmVlKG9sZF9wdHIpOwogICAgIHJldHVybiBuZXdfcHRyOwogICB9
IGVsc2UgewogICAgIHJldHVybiBvbGRfcHRyOwpJbmRleDogSmF2YVNjcmlwdENvcmUva3htbGNv
cmUvRmFzdE1hbGxvYy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9KYXZhU2NyaXB0
Q29yZS9reG1sY29yZS9GYXN0TWFsbG9jLmgsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMQpkaWZm
IC1wIC11IC1yMS4xIEphdmFTY3JpcHRDb3JlL2t4bWxjb3JlL0Zhc3RNYWxsb2MuaAotLS0gSmF2
YVNjcmlwdENvcmUva3htbGNvcmUvRmFzdE1hbGxvYy5oCTI3IFNlcCAyMDA1IDIyOjM2OjUzIC0w
MDAwCTEuMQorKysgSmF2YVNjcmlwdENvcmUva3htbGNvcmUvRmFzdE1hbGxvYy5oCTMgT2N0IDIw
MDUgMDc6MzQ6MzMgLTAwMDAKQEAgLTMyLDI3ICszMiwyMyBAQCBuYW1lc3BhY2UgS1hNTENvcmUg
ewogICAgIHZvaWQgZmFzdEZyZWUodm9pZCogcCk7CiAgICAgdm9pZCAqZmFzdFJlYWxsb2Modm9p
ZCogcCwgc2l6ZV90IG4pOwogICAgIAotICAgIHN0cnVjdCBGYXN0QWxsb2NhdGVkIHsKLSAgICAg
ICAgdm9pZCogb3BlcmF0b3IgbmV3KHNpemVfdCBzKSB7IHJldHVybiBmYXN0TWFsbG9jKHMpOyB9
Ci0gICAgICAgIHZvaWQgb3BlcmF0b3IgZGVsZXRlKHZvaWQqIHApIHsgZmFzdEZyZWUocCk7IH0K
LSAgICAgICAgdm9pZCogb3BlcmF0b3IgbmV3W10oc2l6ZV90IHMpIHsgcmV0dXJuIGZhc3RNYWxs
b2Mocyk7IH0KLSAgICAgICAgdm9pZCBvcGVyYXRvciBkZWxldGVbXSh2b2lkKiBwKSB7IGZhc3RG
cmVlKHApOyB9Ci0gICAgfTsKLSAgICAKLSAgICAvLyBQT0QgdHlwZXMgY2FuJ3QgaGF2ZSBhIGJh
c2UgY2xhc3MsIHNvIHRoZXkgaGF2ZSB0byB1c2UgYSBtYWNybyB0bwotICAgIC8vIGFkZCB0aGUg
YXBwcm9wcmlhdGUgb3BlcmF0b3JzCi0gICAgI2RlZmluZSBGQVNUX0FMTE9DQVRFRF9QT0QgXAot
ICAgICAgICB2b2lkKiBvcGVyYXRvciBuZXcoc2l6ZV90IHMpIHsgcmV0dXJuIGZhc3RNYWxsb2Mo
cyk7IH0gXAotICAgICAgICB2b2lkIG9wZXJhdG9yIGRlbGV0ZSh2b2lkKiBwKSB7IGZhc3RGcmVl
KHApOyB9IFwKLSAgICAgICAgdm9pZCogb3BlcmF0b3IgbmV3W10oc2l6ZV90IHMpIHsgcmV0dXJu
IGZhc3RNYWxsb2Mocyk7IH0gXAotICAgICAgICB2b2lkIG9wZXJhdG9yIGRlbGV0ZVtdKHZvaWQq
IHApIHsgZmFzdEZyZWUocCk7IH0gXAotCiB9IC8vIG5hbWVzcGFjZSBLWE1MQ29yZQogCiB1c2lu
ZyBLWE1MQ29yZTo6ZmFzdE1hbGxvYzsKIHVzaW5nIEtYTUxDb3JlOjpmYXN0Q2FsbG9jOwogdXNp
bmcgS1hNTENvcmU6OmZhc3RSZWFsbG9jOwogdXNpbmcgS1hNTENvcmU6OmZhc3RGcmVlOwotdXNp
bmcgS1hNTENvcmU6OkZhc3RBbGxvY2F0ZWQ7CisKKyNpZiBfX0dOVUNfXworI2RlZmluZSBLWE1M
Q09SRV9QUklWQVRFX0lOTElORSBfX3ByaXZhdGVfZXh0ZXJuX18gaW5saW5lIF9fYXR0cmlidXRl
X18oKGFsd2F5c19pbmxpbmUpKQorI2Vsc2UKKyNkZWZpbmUgS1hNTENPUkVfUFJJVkFURV9JTkxJ
TkUgaW5saW5lCisjZW5kaWYKKworS1hNTENPUkVfUFJJVkFURV9JTkxJTkUgdm9pZCogb3BlcmF0
b3IgbmV3KHNpemVfdCBzKSB7IHJldHVybiBmYXN0TWFsbG9jKHMpOyB9CitLWE1MQ09SRV9QUklW
QVRFX0lOTElORSB2b2lkIG9wZXJhdG9yIGRlbGV0ZSh2b2lkKiBwKSB7IGZhc3RGcmVlKHApOyB9
CitLWE1MQ09SRV9QUklWQVRFX0lOTElORSB2b2lkKiBvcGVyYXRvciBuZXdbXShzaXplX3Qgcykg
eyByZXR1cm4gZmFzdE1hbGxvYyhzKTsgfQorS1hNTENPUkVfUFJJVkFURV9JTkxJTkUgdm9pZCBv
cGVyYXRvciBkZWxldGVbXSh2b2lkKiBwKSB7IGZhc3RGcmVlKHApOyB9CisKIAogI2VuZGlmIC8q
IEtYTUxDT1JFX0ZBU1RfTUFMTE9DX0ggKi8KSW5kZXg6IEphdmFTY3JpcHRDb3JlL2t4bWxjb3Jl
L0Zhc3RNYWxsb2NJbnRlcm5hbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IGt4bWxjb3JlL0Zhc3RN
YWxsb2NJbnRlcm5hbC5oCmRpZmYgLU4gSmF2YVNjcmlwdENvcmUva3htbGNvcmUvRmFzdE1hbGxv
Y0ludGVybmFsLmgKLS0tIEphdmFTY3JpcHRDb3JlL2t4bWxjb3JlL0Zhc3RNYWxsb2NJbnRlcm5h
bC5oCTEgSmFuIDE5NzAgMDA6MDA6MDAgLTAwMDAKKysrIEphdmFTY3JpcHRDb3JlL2t4bWxjb3Jl
L0Zhc3RNYWxsb2NJbnRlcm5hbC5oCTMgT2N0IDIwMDUgMDc6MzQ6MzMgLTAwMDAKQEAgLTAsMCAr
MSwzMiBAQAorLy8gLSotIG1vZGU6IGMrKzsgYy1iYXNpYy1vZmZzZXQ6IDQgLSotCisvKgorICog
IFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBLREUgbGlicmFyaWVzCisgKiAgQ29weXJpZ2h0IChD
KSAyMDA1IEFwcGxlIENvbXB1dGVyLCBJbmMuCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBmcmVl
IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkgaXQg
dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogIExp
Y2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhl
cgorICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkg
bGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRo
ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJB
TlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFC
SUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQor
ICogIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoK
KyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0
aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqICB0aGUgRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsCisgKiAg
Qm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuCisgKgorICovCisKKyNpZm5kZWYgS1hNTENPUkVf
RkFTVF9NQUxMT0NfSU5URVJOQUxfSAorI2RlZmluZSBLWE1MQ09SRV9GQVNUX01BTExPQ19JTlRF
Uk5BTF9ICisKKyNpbmNsdWRlIDxwdGhyZWFkLmg+CisKK25hbWVzcGFjZSBLWE1MQ29yZSB7Cisg
ICAgdm9pZCBmYXN0TWFsbG9jUmVnaXN0ZXJUaHJlYWQocHRocmVhZF90IHRocmVhZCk7Cit9CisK
KyNlbmRpZiAvLyAgS1hNTENPUkVfRkFTVF9NQUxMT0NfSU5URVJOQUxfSApJbmRleDogSmF2YVNj
cmlwdENvcmUva3htbGNvcmUvSGFzaFRhYmxlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3Zz
L3Jvb3QvSmF2YVNjcmlwdENvcmUva3htbGNvcmUvSGFzaFRhYmxlLmNwcCx2CnJldHJpZXZpbmcg
cmV2aXNpb24gMS4xCmRpZmYgLXAgLXUgLXIxLjEgSmF2YVNjcmlwdENvcmUva3htbGNvcmUvSGFz
aFRhYmxlLmNwcAotLS0gSmF2YVNjcmlwdENvcmUva3htbGNvcmUvSGFzaFRhYmxlLmNwcAkyOCBT
ZXAgMjAwNSAyMjowMToxNyAtMDAwMAkxLjEKKysrIEphdmFTY3JpcHRDb3JlL2t4bWxjb3JlL0hh
c2hUYWJsZS5jcHAJMyBPY3QgMjAwNSAwNzozNDozMyAtMDAwMApAQCAtMTksNiArMTksNyBAQAog
ICAgIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLgogKi8KIAorI2luY2x1ZGUgImNvbmZpZy5o
IgogI2luY2x1ZGUgImhhc2h0YWJsZS5oIgogCiBuYW1lc3BhY2UgS1hNTENvcmUgewpJbmRleDog
SmF2YVNjcmlwdENvcmUva3htbGNvcmUvVENTcGluTG9jay5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6
IC9jdnMvcm9vdC9KYXZhU2NyaXB0Q29yZS9reG1sY29yZS9UQ1NwaW5Mb2NrLmgsdgpyZXRyaWV2
aW5nIHJldmlzaW9uIDEuMQpkaWZmIC1wIC11IC1yMS4xIEphdmFTY3JpcHRDb3JlL2t4bWxjb3Jl
L1RDU3BpbkxvY2suaAotLS0gSmF2YVNjcmlwdENvcmUva3htbGNvcmUvVENTcGluTG9jay5oCTI3
IFNlcCAyMDA1IDIyOjM2OjUzIC0wMDAwCTEuMQorKysgSmF2YVNjcmlwdENvcmUva3htbGNvcmUv
VENTcGluTG9jay5oCTMgT2N0IDIwMDUgMDc6MzQ6MzMgLTAwMDAKQEAgLTQ1LDEwICs0NSw3IEBA
CiAjZW5kaWYKICNpbmNsdWRlIDxzdGRsaWIuaD4JLyogZm9yIGFib3J0KCkgKi8KIAotLy8gRklY
TUU6IGl0IHdvdWxkIGJlIG5pY2UgdG8gcG9ydCB0aGUgZmFzdCB2ZXJzaW9uIHRvIFBvd2VyUEMg
YnV0IHJpZ2h0IG5vdyBpdCBpcyBub3QKLS8vIHNob3dpbmcgdXAgb24gdGhlIHByb2ZpbGUKLSNp
ZiBkZWZpbmVkIF9faTM4Nl9fICYmIGRlZmluZWQgX19HTlVDX18KLQorI2lmIChkZWZpbmVkIF9f
aTM4Nl9fIHx8IGRlZmluZWQgX19wcGNfXykgJiYgZGVmaW5lZCBfX0dOVUNfXwogc3RhdGljIHZv
aWQgVENNYWxsb2NfU2xvd0xvY2sodm9sYXRpbGUgdW5zaWduZWQgaW50KiBsb2Nrd29yZCk7CiAK
IC8vIFRoZSBmb2xsb3dpbmcgaXMgYSBzdHJ1Y3Qgc28gdGhhdCBpdCBjYW4gYmUgaW5pdGlhbGl6
ZWQgYXQgY29tcGlsZSB0aW1lCkBAIC02MCwyMCArNTcsNDIgQEAgc3RydWN0IFRDTWFsbG9jX1Nw
aW5Mb2NrIHsKICAgICAKICAgaW5saW5lIHZvaWQgTG9jaygpIHsKICAgICBpbnQgcjsKKyNpZiAg
X19pMzg2X18KICAgICBfX2FzbV9fIF9fdm9sYXRpbGVfXwogICAgICAgKCJ4Y2hnbCAlMCwgJTEi
CiAgICAgICAgOiAiPXIiKHIpLCAiPW0iKHByaXZhdGVfbG9ja3dvcmRfKQogICAgICAgIDogIjAi
KDEpLCAibSIocHJpdmF0ZV9sb2Nrd29yZF8pCiAgICAgICAgOiAibWVtb3J5Iik7CisjZWxzZQor
ICAgIHZvbGF0aWxlIHVuc2lnbmVkIGludCAqbG9ja3dvcmRfcHRyID0gJnByaXZhdGVfbG9ja3dv
cmRfOworICAgIF9fYXNtX18gX192b2xhdGlsZV9fCisgICAgICAgICgiMTogbHdhcnggJTAsIDAs
ICUxXG5cdCIKKyAgICAgICAgICJzdHdjeC4gJTIsIDAsICUxXG5cdCIKKyAgICAgICAgICJibmUt
IDFiXG5cdCIKKyAgICAgICAgICJpc3luYyIKKyAgICAgICAgIDogIj0mciIgKHIpLCAiPXIiIChs
b2Nrd29yZF9wdHIpCisgICAgICAgICA6ICJyIiAoMSksICIxIiAobG9ja3dvcmRfcHRyKQorICAg
ICAgICAgOiAibWVtb3J5Iik7CisjZW5kaWYKICAgICBpZiAocikgVENNYWxsb2NfU2xvd0xvY2so
JnByaXZhdGVfbG9ja3dvcmRfKTsKICAgfQogCiAgIGlubGluZSB2b2lkIFVubG9jaygpIHsKKyNp
ZiAgX19pMzg2X18KICAgICBfX2FzbV9fIF9fdm9sYXRpbGVfXwogICAgICAgKCJtb3ZsICQwLCAl
MCIKICAgICAgICA6ICI9bSIocHJpdmF0ZV9sb2Nrd29yZF8pCiAgICAgICAgOiAibSIgKHByaXZh
dGVfbG9ja3dvcmRfKQogICAgICAgIDogIm1lbW9yeSIpOworI2Vsc2UKKyAgICBfX2FzbV9fIF9f
dm9sYXRpbGVfXworICAgICAgKCJpc3luY1xuXHQiCisgICAgICAgImVpZWlvXG5cdCIKKyAgICAg
ICAic3R3ICUxLCAlMCIKKyAgICAgICA6ICI9byIgKHByaXZhdGVfbG9ja3dvcmRfKSAKKyAgICAg
ICA6ICJyIiAoMCkKKyAgICAgICA6ICJtZW1vcnkiKTsKKyNlbmRpZgogICB9CiB9OwogCkBAIC04
MywxMSArMTAyLDI0IEBAIHN0YXRpYyB2b2lkIFRDTWFsbG9jX1Nsb3dMb2NrKHZvbGF0aWxlIHUK
ICAgc2NoZWRfeWllbGQoKTsgICAgICAgIC8vIFlpZWxkIGltbWVkaWF0ZWx5IHNpbmNlIGZhc3Qg
cGF0aCBmYWlsZWQKICAgd2hpbGUgKHRydWUpIHsKICAgICBpbnQgcjsKKyNpZiBfX2kzODZfXwog
ICAgIF9fYXNtX18gX192b2xhdGlsZV9fCiAgICAgICAoInhjaGdsICUwLCAlMSIKICAgICAgICA6
ICI9ciIociksICI9bSIoKmxvY2t3b3JkKQogICAgICAgIDogIjAiKDEpLCAibSIoKmxvY2t3b3Jk
KQogICAgICAgIDogIm1lbW9yeSIpOworCisjZWxzZQorICAgIGludCB0bXAgPSAxOworICAgIF9f
YXNtX18gX192b2xhdGlsZV9fCisgICAgICAgICgiMTogbHdhcnggJTAsIDAsICUxXG5cdCIKKyAg
ICAgICAgICJzdHdjeC4gJTIsIDAsICUxXG5cdCIKKyAgICAgICAgICJibmUtIDFiXG5cdCIKKyAg
ICAgICAgICJpc3luYyIKKyAgICAgICAgIDogIj0mciIgKHIpLCAiPXIiIChsb2Nrd29yZCkKKyAg
ICAgICAgIDogInIiICh0bXApLCAiMSIgKGxvY2t3b3JkKQorICAgICAgICAgOiAibWVtb3J5Iik7
CisjZW5kaWYKICAgICBpZiAoIXIpIHsKICAgICAgIHJldHVybjsKICAgICB9CkluZGV4OiBKYXZh
U2NyaXB0Q29yZS9reG1sY29yZS9UQ1N5c3RlbUFsbG9jLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxl
OiAvY3ZzL3Jvb3QvSmF2YVNjcmlwdENvcmUva3htbGNvcmUvVENTeXN0ZW1BbGxvYy5jcHAsdgpy
ZXRyaWV2aW5nIHJldmlzaW9uIDEuMQpkaWZmIC1wIC11IC1yMS4xIEphdmFTY3JpcHRDb3JlL2t4
bWxjb3JlL1RDU3lzdGVtQWxsb2MuY3BwCi0tLSBKYXZhU2NyaXB0Q29yZS9reG1sY29yZS9UQ1N5
c3RlbUFsbG9jLmNwcAkyNyBTZXAgMjAwNSAyMjozNjo1MyAtMDAwMAkxLjEKKysrIEphdmFTY3Jp
cHRDb3JlL2t4bWxjb3JlL1RDU3lzdGVtQWxsb2MuY3BwCTMgT2N0IDIwMDUgMDc6MzQ6MzMgLTAw
MDAKQEAgLTY2LDggKzY2LDggQEAgc3RhdGljIHNpemVfdCBwYWdlc2l6ZSA9IDA7CiAvLyBGb3Ig
Mi4yIGtlcm5lbHMsIGl0IGxvb2tzIGxpa2UgdGhlIHNicmsgYWRkcmVzcyBzcGFjZSAoNTAwTUJp
c2gpIGFuZAogLy8gdGhlIG1tYXAgYWRkcmVzcyBzcGFjZSAoMTMwME1CaXNoKSBhcmUgZGlzam9p
bnQsIHNvIHdlIG5lZWQgYm90aCBhbGxvY2F0b3JzCiAvLyB0byBnZXQgYXMgbXVjaCB2aXJ0dWFs
IG1lbW9yeSBhcyBwb3NzaWJsZS4KLXN0YXRpYyBib29sIHVzZV9kZXZtZW0gPSB0cnVlOwotc3Rh
dGljIGJvb2wgdXNlX3NicmsgPSB0cnVlOworc3RhdGljIGJvb2wgdXNlX2Rldm1lbSA9IGZhbHNl
Oworc3RhdGljIGJvb2wgdXNlX3NicmsgPSBmYWxzZTsKIHN0YXRpYyBib29sIHVzZV9tbWFwID0g
dHJ1ZTsKIAogLy8gRmxhZ3MgdG8ga2VlcCB1cyBmcm9tIHJldHJ5aW5nIGFsbG9jYXRvcnMgdGhh
dCBmYWlsZWQuCkluZGV4OiBXZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAv
Y3ZzL3Jvb3QvV2ViQ29yZS9DaGFuZ2VMb2csdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMTg1CmRp
ZmYgLXAgLXUgLXIxLjE4NSBXZWJDb3JlL0NoYW5nZUxvZwotLS0gV2ViQ29yZS9DaGFuZ2VMb2cJ
MyBPY3QgMjAwNSAwNjoyMTozNiAtMDAwMAkxLjE4NQorKysgV2ViQ29yZS9DaGFuZ2VMb2cJMyBP
Y3QgMjAwNSAwNzozNDo1NCAtMDAwMApAQCAtMSwzICsxLDMyMyBAQAorMjAwNS0wOS0yOCAgTWFj
aWVqIFN0YWNob3dpYWsgIDxtanNAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIC0gdXNlIGZhc3RNYWxsb2MgZm9yIGV2ZXJ5dGhpbmcg
LSBpdCBub3cgZ2V0cyBhcHBsaWVkIHRvIGFsbCBuZXcvZGVsZXRlIGFsbG9jYXRpb25zCisgICAg
ICAgIHZpYSBhIHByaXZhdGUgaW5saW5lIG9wZXJhdG9yIG5ldyB0aGF0IGlzIG5vdyBpbmNsdWRl
ZCBpbnRvIGV2ZXJ5IGZpbGUgdmlhIGNvbmZpZy5oCisKKyAgICAgICAgKiBXZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViQ29yZVByZWZpeC5oOgorICAgICAg
ICAqIGtodG1sL2Nzcy9jc3NfYmFzZS5jcHA6CisgICAgICAgICoga2h0bWwvY3NzL2Nzc19iYXNl
Lmg6CisgICAgICAgICoga2h0bWwvY3NzL2Nzc19jb21wdXRlZHN0eWxlLmNwcDoKKyAgICAgICAg
KiBraHRtbC9jc3MvY3NzX3J1bGVpbXBsLmNwcDoKKyAgICAgICAgKiBraHRtbC9jc3MvY3NzX3N0
eWxlc2hlZXRpbXBsLmNwcDoKKyAgICAgICAgKiBraHRtbC9jc3MvY3NzX3ZhbHVlaW1wbC5jcHA6
CisgICAgICAgICoga2h0bWwvY3NzL2Nzc192YWx1ZWltcGwuaDoKKyAgICAgICAgKiBraHRtbC9j
c3MvY3NzaGVscGVyLmNwcDoKKyAgICAgICAgKiBraHRtbC9jc3MvY3NzcGFyc2VyLmNwcDoKKyAg
ICAgICAgKFZhbHVlTGlzdDo6VmFsdWVMaXN0KToKKyAgICAgICAgKFZhbHVlTGlzdDo6flZhbHVl
TGlzdCk6CisgICAgICAgIChWYWx1ZUxpc3Q6OmFkZFZhbHVlKToKKyAgICAgICAgKENTU1BhcnNl
cjo6Q1NTUGFyc2VyKToKKyAgICAgICAgKENTU1BhcnNlcjo6fkNTU1BhcnNlcik6CisgICAgICAg
IChDU1NQYXJzZXI6OnNldHVwUGFyc2VyKToKKyAgICAgICAgKENTU1BhcnNlcjo6YWRkUHJvcGVy
dHkpOgorICAgICAgICAqIGtodG1sL2Nzcy9jc3NzdHlsZXNlbGVjdG9yLmNwcDoKKyAgICAgICAg
KiBraHRtbC9jc3MvY3Nzc3R5bGVzZWxlY3Rvci5oOgorICAgICAgICAqIGtodG1sL2RvbS9kb20y
X2V2ZW50cy5jcHA6CisgICAgICAgICoga2h0bWwvZG9tL2RvbTJfdHJhdmVyc2FsLmNwcDoKKyAg
ICAgICAgKiBraHRtbC9kb20vZG9tX21pc2MuY3BwOgorICAgICAgICAqIGtodG1sL2RvbS9kb21f
c3RyaW5nLmNwcDoKKyAgICAgICAgKiBraHRtbC9lY21hL2RvbXBhcnNlci5jcHA6CisgICAgICAg
ICoga2h0bWwvZWNtYS9ranNfYmluZGluZy5jcHA6CisgICAgICAgICoga2h0bWwvZWNtYS9ranNf
Y3NzLmNwcDoKKyAgICAgICAgKiBraHRtbC9lY21hL2tqc19kb20uY3BwOgorICAgICAgICAqIGto
dG1sL2VjbWEva2pzX2V2ZW50cy5jcHA6CisgICAgICAgICoga2h0bWwvZWNtYS9ranNfaHRtbC5j
cHA6CisgICAgICAgIChLSlM6OktKUzo6Q29udGV4dDJERnVuY3Rpb246OmNhbGxBc0Z1bmN0aW9u
KToKKyAgICAgICAgKEtKUzo6R3JhZGllbnQ6On5HcmFkaWVudCk6CisgICAgICAgIChLSlM6Okdy
YWRpZW50OjphZGRDb2xvclN0b3ApOgorICAgICAgICAoS0pTOjpHcmFkaWVudDo6Y29sb3JTdG9w
cyk6CisgICAgICAgICoga2h0bWwvZWNtYS9ranNfbmF2aWdhdG9yLmNwcDoKKyAgICAgICAgKiBr
aHRtbC9lY21hL2tqc19wcm94eS5jcHA6CisgICAgICAgICoga2h0bWwvZWNtYS9ranNfcmFuZ2Uu
Y3BwOgorICAgICAgICAqIGtodG1sL2VjbWEva2pzX3RyYXZlcnNhbC5jcHA6CisgICAgICAgICog
a2h0bWwvZWNtYS9ranNfdmlld3MuY3BwOgorICAgICAgICAqIGtodG1sL2VjbWEva2pzX3dpbmRv
dy5jcHA6CisgICAgICAgICoga2h0bWwvZWNtYS94bWxodHRwcmVxdWVzdC5jcHA6CisgICAgICAg
ICoga2h0bWwvZWNtYS94bWxzZXJpYWxpemVyLmNwcDoKKyAgICAgICAgKiBraHRtbC9lZGl0aW5n
L1NlbGVjdGlvbkNvbnRyb2xsZXIuY3BwOgorICAgICAgICAqIGtodG1sL2VkaXRpbmcvYXBwZW5k
X25vZGVfY29tbWFuZC5jcHA6CisgICAgICAgICoga2h0bWwvZWRpdGluZy9hcHBseV9zdHlsZV9j
b21tYW5kLmNwcDoKKyAgICAgICAgKiBraHRtbC9lZGl0aW5nL2JyZWFrX2Jsb2NrcXVvdGVfY29t
bWFuZC5jcHA6CisgICAgICAgICoga2h0bWwvZWRpdGluZy9jb21wb3NpdGVfZWRpdF9jb21tYW5k
LmNwcDoKKyAgICAgICAgKiBraHRtbC9lZGl0aW5nL2RlbGV0ZV9mcm9tX3RleHRfbm9kZV9jb21t
YW5kLmNwcDoKKyAgICAgICAgKiBraHRtbC9lZGl0aW5nL2RlbGV0ZV9zZWxlY3Rpb25fY29tbWFu
ZC5jcHA6CisgICAgICAgICoga2h0bWwvZWRpdGluZy9lZGl0X2NvbW1hbmQuY3BwOgorICAgICAg
ICAqIGtodG1sL2VkaXRpbmcvaHRtbF9pbnRlcmNoYW5nZS5jcHA6CisgICAgICAgICoga2h0bWwv
ZWRpdGluZy9odG1sZWRpdGluZy5jcHA6CisgICAgICAgICoga2h0bWwvZWRpdGluZy9pbnNlcnRf
aW50b190ZXh0X25vZGVfY29tbWFuZC5jcHA6CisgICAgICAgICoga2h0bWwvZWRpdGluZy9pbnNl
cnRfbGluZV9icmVha19jb21tYW5kLmNwcDoKKyAgICAgICAgKiBraHRtbC9lZGl0aW5nL2luc2Vy
dF9ub2RlX2JlZm9yZV9jb21tYW5kLmNwcDoKKyAgICAgICAgKiBraHRtbC9lZGl0aW5nL2luc2Vy
dF9wYXJhZ3JhcGhfc2VwYXJhdG9yX2NvbW1hbmQuY3BwOgorICAgICAgICAqIGtodG1sL2VkaXRp
bmcvaW5zZXJ0X3RleHRfY29tbWFuZC5jcHA6CisgICAgICAgICoga2h0bWwvZWRpdGluZy9qb2lu
X3RleHRfbm9kZXNfY29tbWFuZC5jcHA6CisgICAgICAgICoga2h0bWwvZWRpdGluZy9qc2VkaXRp
bmcuY3BwOgorICAgICAgICAqIGtodG1sL2VkaXRpbmcvbWFya3VwLmNwcDoKKyAgICAgICAgKiBr
aHRtbC9lZGl0aW5nL21lcmdlX2lkZW50aWNhbF9lbGVtZW50c19jb21tYW5kLmNwcDoKKyAgICAg
ICAgKiBraHRtbC9lZGl0aW5nL21vdmVfc2VsZWN0aW9uX2NvbW1hbmQuY3BwOgorICAgICAgICAq
IGtodG1sL2VkaXRpbmcvcmViYWxhbmNlX3doaXRlc3BhY2VfY29tbWFuZC5jcHA6CisgICAgICAg
ICoga2h0bWwvZWRpdGluZy9yZW1vdmVfY3NzX3Byb3BlcnR5X2NvbW1hbmQuY3BwOgorICAgICAg
ICAqIGtodG1sL2VkaXRpbmcvcmVtb3ZlX25vZGVfYXR0cmlidXRlX2NvbW1hbmQuY3BwOgorICAg
ICAgICAqIGtodG1sL2VkaXRpbmcvcmVtb3ZlX25vZGVfY29tbWFuZC5jcHA6CisgICAgICAgICog
a2h0bWwvZWRpdGluZy9yZW1vdmVfbm9kZV9wcmVzZXJ2aW5nX2NoaWxkcmVuX2NvbW1hbmQuY3Bw
OgorICAgICAgICAqIGtodG1sL2VkaXRpbmcvcmVwbGFjZV9zZWxlY3Rpb25fY29tbWFuZC5jcHA6
CisgICAgICAgICoga2h0bWwvZWRpdGluZy9zZXRfbm9kZV9hdHRyaWJ1dGVfY29tbWFuZC5jcHA6
CisgICAgICAgICoga2h0bWwvZWRpdGluZy9zcGxpdF9lbGVtZW50X2NvbW1hbmQuY3BwOgorICAg
ICAgICAqIGtodG1sL2VkaXRpbmcvc3BsaXRfdGV4dF9ub2RlX2NvbW1hbmQuY3BwOgorICAgICAg
ICAqIGtodG1sL2VkaXRpbmcvc3BsaXRfdGV4dF9ub2RlX2NvbnRhaW5pbmdfZWxlbWVudC5jcHA6
CisgICAgICAgICoga2h0bWwvZWRpdGluZy90eXBpbmdfY29tbWFuZC5jcHA6CisgICAgICAgICog
a2h0bWwvZWRpdGluZy92aXNpYmxlX3Bvc2l0aW9uLmNwcDoKKyAgICAgICAgKiBraHRtbC9lZGl0
aW5nL3Zpc2libGVfcmFuZ2UuY3BwOgorICAgICAgICAqIGtodG1sL2VkaXRpbmcvdmlzaWJsZV90
ZXh0LmNwcDoKKyAgICAgICAgKGtodG1sOjpDaXJjdWxhclNlYXJjaEJ1ZmZlcjo6fkNpcmN1bGFy
U2VhcmNoQnVmZmVyKToKKyAgICAgICAgKGtodG1sOjpDaXJjdWxhclNlYXJjaEJ1ZmZlcjo6Q2ly
Y3VsYXJTZWFyY2hCdWZmZXIpOgorICAgICAgICAqIGtodG1sL2VkaXRpbmcvdmlzaWJsZV91bml0
cy5jcHA6CisgICAgICAgICoga2h0bWwvZWRpdGluZy93cmFwX2NvbnRlbnRzX2luX2R1bW15X3Nw
YW5fY29tbWFuZC5jcHA6CisgICAgICAgICoga2h0bWwvaHRtbC9odG1sX2Jhc2VpbXBsLmNwcDoK
KyAgICAgICAgKiBraHRtbC9odG1sL2h0bWxfYmxvY2tpbXBsLmNwcDoKKyAgICAgICAgKiBraHRt
bC9odG1sL2h0bWxfY2FudmFzaW1wbC5jcHA6CisgICAgICAgICoga2h0bWwvaHRtbC9odG1sX2Rv
Y3VtZW50aW1wbC5jcHA6CisgICAgICAgICoga2h0bWwvaHRtbC9odG1sX2VsZW1lbnRpbXBsLmNw
cDoKKyAgICAgICAgKiBraHRtbC9odG1sL2h0bWxfZm9ybWltcGwuY3BwOgorICAgICAgICAqIGto
dG1sL2h0bWwvaHRtbF9oZWFkaW1wbC5jcHA6CisgICAgICAgICoga2h0bWwvaHRtbC9odG1sX2lt
YWdlaW1wbC5jcHA6CisgICAgICAgICoga2h0bWwvaHRtbC9odG1sX2lubGluZWltcGwuY3BwOgor
ICAgICAgICAqIGtodG1sL2h0bWwvaHRtbF9saXN0aW1wbC5jcHA6CisgICAgICAgICoga2h0bWwv
aHRtbC9odG1sX21pc2NpbXBsLmNwcDoKKyAgICAgICAgKiBraHRtbC9odG1sL2h0bWxfb2JqZWN0
aW1wbC5jcHA6CisgICAgICAgICoga2h0bWwvaHRtbC9odG1sX3RhYmxlaW1wbC5jcHA6CisgICAg
ICAgICoga2h0bWwvaHRtbC9odG1sZmFjdG9yeS5jcHA6CisgICAgICAgICoga2h0bWwvaHRtbC9o
dG1sbmFtZXMuY3BwOgorICAgICAgICAqIGtodG1sL2h0bWwvaHRtbHBhcnNlci5jcHA6CisgICAg
ICAgICoga2h0bWwvaHRtbC9odG1sdG9rZW5pemVyLmNwcDoKKyAgICAgICAgKGtodG1sOjpIVE1M
VG9rZW5pemVyOjplbmxhcmdlQnVmZmVyKToKKyAgICAgICAgKGtodG1sOjpIVE1MVG9rZW5pemVy
OjplbmxhcmdlU2NyaXB0QnVmZmVyKToKKyAgICAgICAgKiBraHRtbC9raHRtbF9ldmVudHMuY3Bw
OgorICAgICAgICAqIGtodG1sL2todG1sX3BhcnQuY3BwOgorICAgICAgICAqIGtodG1sL2todG1s
dmlldy5jcHA6CisgICAgICAgICoga2h0bWwvbWlzYy9hcmVuYS5jcHA6CisgICAgICAgICoga2h0
bWwvbWlzYy9hcmVuYS5oOgorICAgICAgICAqIGtodG1sL21pc2MvZGVjb2Rlci5jcHA6CisgICAg
ICAgICoga2h0bWwvbWlzYy9mb3JtZGF0YS5jcHA6CisgICAgICAgICoga2h0bWwvbWlzYy9oZWxw
ZXIuY3BwOgorICAgICAgICAqIGtodG1sL21pc2MvbG9hZGVyLmNwcDoKKyAgICAgICAgKiBraHRt
bC9taXNjL3N0cmluZ2l0LmNwcDoKKyAgICAgICAgKiBraHRtbC9yZW5kZXJpbmcvYmlkaS5jcHA6
CisgICAgICAgICoga2h0bWwvcmVuZGVyaW5nL2JyZWFrX2xpbmVzLmNwcDoKKyAgICAgICAgKiBr
aHRtbC9yZW5kZXJpbmcvZm9udC5jcHA6CisgICAgICAgICoga2h0bWwvcmVuZGVyaW5nL3JlbmRl
cl9hcmVuYS5jcHA6CisgICAgICAgICoga2h0bWwvcmVuZGVyaW5nL3JlbmRlcl9ibG9jay5jcHA6
CisgICAgICAgICoga2h0bWwvcmVuZGVyaW5nL3JlbmRlcl9ib3guY3BwOgorICAgICAgICAqIGto
dG1sL3JlbmRlcmluZy9yZW5kZXJfYnIuY3BwOgorICAgICAgICAqIGtodG1sL3JlbmRlcmluZy9y
ZW5kZXJfY2FudmFzLmNwcDoKKyAgICAgICAgKiBraHRtbC9yZW5kZXJpbmcvcmVuZGVyX2NhbnZh
c2ltYWdlLmNwcDoKKyAgICAgICAgKFJlbmRlckNhbnZhc0ltYWdlOjp+UmVuZGVyQ2FudmFzSW1h
Z2UpOgorICAgICAgICAoUmVuZGVyQ2FudmFzSW1hZ2U6OmNyZWF0ZURyYXdpbmdDb250ZXh0KToK
KyAgICAgICAgKiBraHRtbC9yZW5kZXJpbmcvcmVuZGVyX2NvbnRhaW5lci5jcHA6CisgICAgICAg
ICoga2h0bWwvcmVuZGVyaW5nL3JlbmRlcl9mbGV4Ym94LmNwcDoKKyAgICAgICAgKiBraHRtbC9y
ZW5kZXJpbmcvcmVuZGVyX2Zsb3cuY3BwOgorICAgICAgICAqIGtodG1sL3JlbmRlcmluZy9yZW5k
ZXJfZm9ybS5jcHA6CisgICAgICAgICoga2h0bWwvcmVuZGVyaW5nL3JlbmRlcl9mcmFtZXMuY3Bw
OgorICAgICAgICAqIGtodG1sL3JlbmRlcmluZy9yZW5kZXJfaW1hZ2UuY3BwOgorICAgICAgICAq
IGtodG1sL3JlbmRlcmluZy9yZW5kZXJfaW5saW5lLmNwcDoKKyAgICAgICAgKiBraHRtbC9yZW5k
ZXJpbmcvcmVuZGVyX2xheWVyLmNwcDoKKyAgICAgICAgKiBraHRtbC9yZW5kZXJpbmcvcmVuZGVy
X2xpbmUuY3BwOgorICAgICAgICAqIGtodG1sL3JlbmRlcmluZy9yZW5kZXJfbGlzdC5jcHA6Cisg
ICAgICAgICoga2h0bWwvcmVuZGVyaW5nL3JlbmRlcl9vYmplY3QuY3BwOgorICAgICAgICAqIGto
dG1sL3JlbmRlcmluZy9yZW5kZXJfcmVwbGFjZWQuY3BwOgorICAgICAgICAqIGtodG1sL3JlbmRl
cmluZy9yZW5kZXJfc3R5bGUuY3BwOgorICAgICAgICAqIGtodG1sL3JlbmRlcmluZy9yZW5kZXJf
c3R5bGUuaDoKKyAgICAgICAgKiBraHRtbC9yZW5kZXJpbmcvcmVuZGVyX3RhYmxlLmNwcDoKKyAg
ICAgICAgKiBraHRtbC9yZW5kZXJpbmcvcmVuZGVyX3RleHQuY3BwOgorICAgICAgICAqIGtodG1s
L3JlbmRlcmluZy9yZW5kZXJfdGhlbWUuY3BwOgorICAgICAgICAqIGtodG1sL3JlbmRlcmluZy9y
ZW5kZXJfdGhlbWVfbWFjLm1tOgorICAgICAgICAqIGtodG1sL3JlbmRlcmluZy90YWJsZV9sYXlv
dXQuY3BwOgorICAgICAgICAqIGtodG1sL3hibC94YmxfYmluZGluZy5jcHA6CisgICAgICAgICog
a2h0bWwveGJsL3hibF9iaW5kaW5nX21hbmFnZXIuY3BwOgorICAgICAgICAqIGtodG1sL3hibC94
YmxfZG9jaW1wbC5jcHA6CisgICAgICAgICoga2h0bWwveGJsL3hibF9wcm90b2JpbmRpbmcuY3Bw
OgorICAgICAgICAqIGtodG1sL3hibC94YmxfcHJvdG9oYW5kbGVyLmNwcDoKKyAgICAgICAgKiBr
aHRtbC94YmwveGJsX3Byb3RvaW1wbGVtZW50YXRpb24uY3BwOgorICAgICAgICAqIGtodG1sL3hi
bC94YmxfdG9rZW5pemVyLmNwcDoKKyAgICAgICAgKiBraHRtbC94bWwvRXZlbnROYW1lcy5jcHA6
CisgICAgICAgICoga2h0bWwveG1sL2RvbTJfZXZlbnRzaW1wbC5jcHA6CisgICAgICAgICoga2h0
bWwveG1sL2RvbTJfZXZlbnRzaW1wbC5oOgorICAgICAgICAqIGtodG1sL3htbC9kb20yX3Jhbmdl
aW1wbC5jcHA6CisgICAgICAgICoga2h0bWwveG1sL2RvbTJfcmFuZ2VpbXBsLmg6CisgICAgICAg
ICoga2h0bWwveG1sL2RvbTJfdHJhdmVyc2FsaW1wbC5jcHA6CisgICAgICAgICoga2h0bWwveG1s
L2RvbTJfdHJhdmVyc2FsaW1wbC5oOgorICAgICAgICAqIGtodG1sL3htbC9kb20yX3ZpZXdzaW1w
bC5jcHA6CisgICAgICAgICoga2h0bWwveG1sL2RvbTJfdmlld3NpbXBsLmg6CisgICAgICAgICog
a2h0bWwveG1sL2RvbV9hdG9taWNzdHJpbmcuY3BwOgorICAgICAgICAqIGtodG1sL3htbC9kb21f
ZG9jaW1wbC5jcHA6CisgICAgICAgICoga2h0bWwveG1sL2RvbV9kb2NpbXBsLmg6CisgICAgICAg
ICoga2h0bWwveG1sL2RvbV9lbGVtZW50aW1wbC5jcHA6CisgICAgICAgICoga2h0bWwveG1sL2Rv
bV9lbGVtZW50aW1wbC5oOgorICAgICAgICAqIGtodG1sL3htbC9kb21fbm9kZWltcGwuY3BwOgor
ICAgICAgICAqIGtodG1sL3htbC9kb21fbm9kZWltcGwuaDoKKyAgICAgICAgKiBraHRtbC94bWwv
ZG9tX3Bvc2l0aW9uLmNwcDoKKyAgICAgICAgKiBraHRtbC94bWwvZG9tX3FuYW1lLmNwcDoKKyAg
ICAgICAgKiBraHRtbC94bWwvZG9tX3N0cmluZ2ltcGwuY3BwOgorICAgICAgICAqIGtodG1sL3ht
bC9kb21fc3RyaW5naW1wbC5oOgorICAgICAgICAqIGtodG1sL3htbC9kb21fdGV4dGltcGwuY3Bw
OgorICAgICAgICAqIGtodG1sL3htbC9kb21feG1saW1wbC5jcHA6CisgICAgICAgICoga2h0bWwv
eG1sL3htbF90b2tlbml6ZXIuY3BwOgorICAgICAgICAqIGtodG1sL3hzbC94c2xfc3R5bGVzaGVl
dGltcGwuY3BwOgorICAgICAgICAqIGtodG1sL3hzbC94c2x0X3Byb2Nlc3NvcmltcGwuY3BwOgor
ICAgICAgICAqIGt3cS9ET00tQ1NTLm1tOgorICAgICAgICAqIGt3cS9ET00ubW06CisgICAgICAg
ICoga3dxL0RPTUV2ZW50cy5tbToKKyAgICAgICAgKiBrd3EvRE9NSFRNTC5tbToKKyAgICAgICAg
KiBrd3EvRE9NSW50ZXJuYWwubW06CisgICAgICAgIChET01TdHJpbmc6OkRPTVN0cmluZyk6Cisg
ICAgICAgICoga3dxL0RPTVV0aWxpdHkubW06CisgICAgICAgICoga3dxL0RPTVZpZXdzLm1tOgor
ICAgICAgICAqIGt3cS9LV1FBY2NPYmplY3QubW06CisgICAgICAgICoga3dxL0tXUUFjY09iamVj
dENhY2hlLm1tOgorICAgICAgICAqIGt3cS9LV1FBcHBsaWNhdGlvbi5tbToKKyAgICAgICAgKiBr
d3EvS1dRQXJyYXlJbXBsLmg6CisgICAgICAgICoga3dxL0tXUUFycmF5SW1wbC5tbToKKyAgICAg
ICAgKiBrd3EvS1dRQnVmZmVyLm1tOgorICAgICAgICAqIGt3cS9LV1FCdXR0b24ubW06CisgICAg
ICAgICoga3dxL0tXUUNTdHJpbmcubW06CisgICAgICAgICoga3dxL0tXUUNoYXJzZXRzLm1tOgor
ICAgICAgICAqIGt3cS9LV1FDbGlwYm9hcmQubW06CisgICAgICAgICoga3dxL0tXUUNvbGxlY3Rp
b24ubW06CisgICAgICAgICoga3dxL0tXUUNvbG9yLm1tOgorICAgICAgICAqIGt3cS9LV1FDb21i
b0JveC5tbToKKyAgICAgICAgKiBrd3EvS1dRQ3Vyc29yLm1tOgorICAgICAgICAqIGt3cS9LV1FE
YXRlVGltZS5tbToKKyAgICAgICAgKiBrd3EvS1dRRGljdEltcGwubW06CisgICAgICAgICoga3dx
L0tXUUVkaXRDb21tYW5kLm1tOgorICAgICAgICAqIGt3cS9LV1FFdmVudC5tbToKKyAgICAgICAg
KiBrd3EvS1dRRXhjZXB0aW9ucy5tbToKKyAgICAgICAgKiBrd3EvS1dRRmlsZS5tbToKKyAgICAg
ICAgKiBrd3EvS1dRRmlsZUJ1dHRvbi5tbToKKyAgICAgICAgKiBrd3EvS1dRRm9udC5tbToKKyAg
ICAgICAgKiBrd3EvS1dRRm9udEZhbWlseS5oOgorICAgICAgICAqIGt3cS9LV1FGb250RmFtaWx5
Lm1tOgorICAgICAgICAqIGt3cS9LV1FGb250TWV0cmljcy5tbToKKyAgICAgICAgKiBrd3EvS1dR
Rm9ybURhdGEubW06CisgICAgICAgICoga3dxL0tXUUZyYW1lLm1tOgorICAgICAgICAqIGt3cS9L
V1FHbG9iYWwubW06CisgICAgICAgICoga3dxL0tXUUd1YXJkZWRQdHIubW06CisgICAgICAgICog
a3dxL0tXUUtDaGFyc2V0cy5tbToKKyAgICAgICAgKiBrd3EvS1dRS0NvbmZpZ0Jhc2UubW06Cisg
ICAgICAgICoga3dxL0tXUUtDb29raWVKYXIubW06CisgICAgICAgICoga3dxL0tXUUtDdXJzb3Iu
bW06CisgICAgICAgICoga3dxL0tXUUtHbG9iYWwubW06CisgICAgICAgICoga3dxL0tXUUtHbG9i
YWxTZXR0aW5ncy5tbToKKyAgICAgICAgKiBrd3EvS1dRS0hUTUxGYWN0b3J5Lm1tOgorICAgICAg
ICAqIGt3cS9LV1FLSFRNTFBhcnQuY3BwOgorICAgICAgICAqIGt3cS9LV1FLSFRNTFBhcnQubW06
CisgICAgICAgICoga3dxL0tXUUtIVE1MUGFydEJyb3dzZXJFeHRlbnNpb24ubW06CisgICAgICAg
ICoga3dxL0tXUUtIVE1MVmlldy5tbToKKyAgICAgICAgKiBrd3EvS1dRS0hpc3RvcnlQcm92aWRl
ci5tbToKKyAgICAgICAgKiBrd3EvS1dRS0phdmFBcHBsZXRXaWRnZXQubW06CisgICAgICAgICog
a3dxL0tXUUtKb2IubW06CisgICAgICAgICoga3dxL0tXUUtKb2JDbGFzc2VzLm1tOgorICAgICAg
ICAqIGt3cS9LV1FLTG9jYWxlLm1tOgorICAgICAgICAqIGt3cS9LV1FLUGFydHNCcm93c2VySW50
ZXJmYWNlLm1tOgorICAgICAgICAqIGt3cS9LV1FLUGFydHNFdmVudC5tbToKKyAgICAgICAgKiBr
d3EvS1dRS1BhcnRzUGFydC5tbToKKyAgICAgICAgKiBrd3EvS1dRS1NTTEtleUdlbi5tbToKKyAg
ICAgICAgKiBrd3EvS1dRS1N0YW5kYXJkRGlycy5tbToKKyAgICAgICAgKiBrd3EvS1dRS1N0cmlu
Z0hhbmRsZXIubW06CisgICAgICAgICoga3dxL0tXUUtVUkwubW06CisgICAgICAgIChLVVJMOjpL
VVJMKToKKyAgICAgICAgKEtVUkw6OmRlY29kZV9zdHJpbmcpOgorICAgICAgICAoS1VSTDo6cGFy
c2UpOgorICAgICAgICAoS1VSTDo6ZW5jb2RlX3N0cmluZyk6CisgICAgICAgIChlbmNvZGVSZWxh
dGl2ZVN0cmluZyk6CisgICAgICAgICoga3dxL0tXUUtXaW4ubW06CisgICAgICAgICoga3dxL0tX
UUtXaW5Nb2R1bGUubW06CisgICAgICAgICoga3dxL0tXUUxhYmVsLm1tOgorICAgICAgICAqIGt3
cS9LV1FMaW5lRWRpdC5tbToKKyAgICAgICAgKiBrd3EvS1dRTGlzdEJveC5tbToKKyAgICAgICAg
KiBrd3EvS1dRTGlzdEltcGwubW06CisgICAgICAgICoga3dxL0tXUUxvYWRlci5tbToKKyAgICAg
ICAgKEtXUUlzUmVzcG9uc2VVUkxFcXVhbFRvVVJMKToKKyAgICAgICAgKiBrd3EvS1dRTWFwSW1w
bC5oOgorICAgICAgICAqIGt3cS9LV1FNYXBJbXBsLm1tOgorICAgICAgICAqIGt3cS9LV1FNb3Zp
ZS5tbToKKyAgICAgICAgKiBrd3EvS1dRT2JqZWN0Lm1tOgorICAgICAgICAqIGt3cS9LV1FQYWdl
U3RhdGUubW06CisgICAgICAgICoga3dxL0tXUVBhaW50RGV2aWNlTWV0cmljcy5tbToKKyAgICAg
ICAgKiBrd3EvS1dRUGFpbnRlci5tbToKKyAgICAgICAgKiBrd3EvS1dRUGFsZXR0ZS5tbToKKyAg
ICAgICAgKiBrd3EvS1dRUGVuLm1tOgorICAgICAgICAqIGt3cS9LV1FQaXhtYXAubW06CisgICAg
ICAgICoga3dxL0tXUVBvaW50Lm1tOgorICAgICAgICAqIGt3cS9LV1FQb2ludEFycmF5Lm1tOgor
ICAgICAgICAqIGt3cS9LV1FQdHJEaWN0SW1wbC5tbToKKyAgICAgICAgKiBrd3EvS1dRUHVzaEJ1
dHRvbi5tbToKKyAgICAgICAgKiBrd3EvS1dRUmVjdC5tbToKKyAgICAgICAgKiBrd3EvS1dRUmVn
RXhwLm1tOgorICAgICAgICAqIGt3cS9LV1FSZWdpb24ubW06CisgICAgICAgICoga3dxL0tXUVJl
bmRlclRyZWVEZWJ1Zy5jcHA6CisgICAgICAgICoga3dxL0tXUVJlc291cmNlTG9hZGVyLm1tOgor
ICAgICAgICAqIGt3cS9LV1FTY3JvbGxCYXIubW06CisgICAgICAgICoga3dxL0tXUVNjcm9sbFZp
ZXcubW06CisgICAgICAgICoga3dxL0tXUVNpZ25hbC5tbToKKyAgICAgICAgKiBrd3EvS1dRU2ln
bmFsU3R1YnMubW06CisgICAgICAgICoga3dxL0tXUVNpemUubW06CisgICAgICAgICoga3dxL0tX
UVNsaWRlci5tbToKKyAgICAgICAgKiBrd3EvS1dRU2xvdC5tbToKKyAgICAgICAgKiBrd3EvS1dR
U3RyaW5nLmg6CisgICAgICAgICoga3dxL0tXUVN0cmluZy5tbToKKyAgICAgICAgKEFMTE9DX0NI
QVIpOgorICAgICAgICAoUkVBTExPQ19DSEFSKToKKyAgICAgICAgKERFTEVURV9DSEFSKToKKyAg
ICAgICAgKEFMTE9DX1FDSEFSKToKKyAgICAgICAgKFJFQUxMT0NfUUNIQVIpOgorICAgICAgICAo
REVMRVRFX1FDSEFSKToKKyAgICAgICAgKF9wcmludFFTdHJpbmdBbGxvY2F0aW9uU3RhdGlzdGlj
cyk6CisgICAgICAgIChhbGxvY2F0ZUhhbmRsZSk6CisgICAgICAgIChLV1FTdHJpbmdEYXRhOjpv
cGVyYXRvciBuZXcpOgorICAgICAgICAoS1dRU3RyaW5nRGF0YTo6b3BlcmF0b3IgZGVsZXRlKToK
KyAgICAgICAgKGZyZWVIYW5kbGUpOgorICAgICAgICAqIGt3cS9LV1FTdHJpbmdMaXN0Lm1tOgor
ICAgICAgICAqIGt3cS9LV1FTdHlsZS5tbToKKyAgICAgICAgKiBrd3EvS1dRVGV4dEFyZWEubW06
CisgICAgICAgICoga3dxL0tXUVRleHRDb2RlYy5tbToKKyAgICAgICAgKiBrd3EvS1dRVGV4dEVk
aXQubW06CisgICAgICAgICoga3dxL0tXUVRleHRGaWVsZC5tbToKKyAgICAgICAgKiBrd3EvS1dR
VGV4dFN0cmVhbS5tbToKKyAgICAgICAgKiBrd3EvS1dRVGV4dFV0aWxpdGllcy5tbToKKyAgICAg
ICAgKiBrd3EvS1dRVGltZXIubW06CisgICAgICAgICoga3dxL0tXUVZhbHVlTGlzdEltcGwuaDoK
KyAgICAgICAgKiBrd3EvS1dRVmFsdWVMaXN0SW1wbC5tbToKKyAgICAgICAgKiBrd3EvS1dRVmFy
aWFudC5tbToKKyAgICAgICAgKiBrd3EvS1dRVmVjdG9ySW1wbC5tbToKKyAgICAgICAgKEtXUVZl
Y3RvckltcGw6OktXUVZlY3RvckltcGwpOgorICAgICAgICAoS1dRVmVjdG9ySW1wbDo6fktXUVZl
Y3RvckltcGwpOgorICAgICAgICAoS1dRVmVjdG9ySW1wbDo6Y2xlYXIpOgorICAgICAgICAoS1dR
VmVjdG9ySW1wbDo6cmVzaXplKToKKyAgICAgICAgKEtXUVZlY3RvckltcGw6OmFzc2lnbik6Cisg
ICAgICAgICoga3dxL0tXUVdNYXRyaXgubW06CisgICAgICAgICoga3dxL0tXUVdpZGdldC5tbToK
KyAgICAgICAgKiBrd3EvS1dRV2luZG93V2lkZ2V0Lm1tOgorICAgICAgICAqIGt3cS9XZWJDb3Jl
QnJpZGdlLm1tOgorICAgICAgICAqIGt3cS9XZWJDb3JlQ2FjaGUubW06CisgICAgICAgICoga3dx
L1dlYkNvcmVFbmNvZGluZ3MubW06CisgICAgICAgICoga3dxL1dlYkNvcmVKYXZhU2NyaXB0Lm1t
OgorICAgICAgICAqIGt3cS9XZWJDb3JlU2NyaXB0RGVidWdnZXIubW06CisgICAgICAgICoga3dx
L1dlYkNvcmVTZXR0aW5ncy5tbToKKyAgICAgICAgKiBrd3EvV2ViQ29yZVRleHRSZW5kZXJlckZh
Y3RvcnkubW06CisgICAgICAgICoga3dxL2Nhbi1jb252ZXJ0Lm1tOgorCiAyMDA1LTEwLTAyICBF
cmljIFNlaWRlbCAgPGVzZWlkZWxAYXBwbGUuY29tPgogCiAgICAgICAgUmV2aWV3ZWQgYnkgZGFy
aW4uCkluZGV4OiBXZWJDb3JlL1dlYkNvcmVQcmVmaXguaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAv
Y3ZzL3Jvb3QvV2ViQ29yZS9XZWJDb3JlUHJlZml4LmgsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEu
MTUKZGlmZiAtcCAtdSAtcjEuMTUgV2ViQ29yZS9XZWJDb3JlUHJlZml4LmgKLS0tIFdlYkNvcmUv
V2ViQ29yZVByZWZpeC5oCTE2IEF1ZyAyMDA1IDE5OjAzOjExIC0wMDAwCTEuMTUKKysrIFdlYkNv
cmUvV2ViQ29yZVByZWZpeC5oCTMgT2N0IDIwMDUgMDc6MzQ6NTQgLTAwMDAKQEAgLTY3LDMgKzY3
LDggQEAKICNpbXBvcnQgPENvY29hL0NvY29hLmg+CiAKICNlbmRpZgorCisjaWZkZWYgX19jcGx1
c3BsdXMKKyNkZWZpbmUgbmV3ICgiaWYgeW91IHVzZSBuZXcvZGVsZXRlIG1ha2Ugc3VyZSB0byBp
bmNsdWRlIGNvbmZpZy5oIGF0IHRoZSB0b3Agb2YgdGhlIGZpbGUiKCkpIAorI2RlZmluZSBkZWxl
dGUgKCJpZiB5b3UgdXNlIG5ldy9kZWxldGUgbWFrZSBzdXJlIHRvIGluY2x1ZGUgY29uZmlnLmgg
YXQgdGhlIHRvcCBvZiB0aGUgZmlsZSIoKSkgCisjZW5kaWYKSW5kZXg6IFdlYkNvcmUvRm9yd2Fy
ZGluZ0hlYWRlcnMvY29uZmlnLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogRm9yd2FyZGluZ0hlYWRl
cnMvY29uZmlnLmgKZGlmZiAtTiBXZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL2NvbmZpZy5oCklu
ZGV4OiBXZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2osdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMzEKZGlmZiAtcCAtdSAtcjEuMzEgV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKLS0tIFdlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCTIgT2N0IDIwMDUgMTk6NTE6MjEgLTAwMDAJMS4zMQor
KysgV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJMyBPY3QgMjAwNSAw
NzozNTowOCAtMDAwMApAQCAtNjUsNiArNjUsOCBAQAogCQk2NUFDNzlBMjA4MzFFRDZEMDA5Mzg1
Q0UgLyogYXBwZW5kX25vZGVfY29tbWFuZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNjVBQzc5QTAwODMxRUQ2RDAwOTM4NUNFIC8qIGFwcGVuZF9ub2Rl
X2NvbW1hbmQuaCAqLzsgfTsKIAkJNjVBQzc5QTkwODMxRjAwNjAwOTM4NUNFIC8qIGFwcGx5X3N0
eWxlX2NvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNjVBQzc5QTcwODMxRjAwNjAwOTM4NUNFIC8qIGFwcGx5X3N0eWxlX2NvbW1hbmQuY3Bw
ICovOyB9OwogCQk2NUFDNzlBQTA4MzFGMDA2MDA5Mzg1Q0UgLyogYXBwbHlfc3R5bGVfY29tbWFu
ZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjVBQzc5
QTgwODMxRjAwNjAwOTM4NUNFIC8qIGFwcGx5X3N0eWxlX2NvbW1hbmQuaCAqLzsgfTsKKwkJNjVD
OTdBRjMwOEVBOTA4ODAwQUNEMjczIC8qIGNvbmZpZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjVDOTdBRjIwOEVBOTA4ODAwQUNEMjczIC8qIGNvbmZp
Zy5oICovOyB9OworCQk2NUM5N0FGNDA4RUE5MDg4MDBBQ0QyNzMgLyogY29uZmlnLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2NUM5N0FGMjA4RUE5MDg4
MDBBQ0QyNzMgLyogY29uZmlnLmggKi87IH07CiAJCTY1REMxNkM0MDgzMURENkYwMDIyNzQ0RSAv
KiBjb21wb3NpdGVfZWRpdF9jb21tYW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDY1REMxNkMyMDgzMURENkYwMDIyNzQ0RSAvKiBjb21wb3NpdGVf
ZWRpdF9jb21tYW5kLmNwcCAqLzsgfTsKIAkJNjVEQzE2QzUwODMxREQ2RjAwMjI3NDRFIC8qIGNv
bXBvc2l0ZV9lZGl0X2NvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDY1REMxNkMzMDgzMURENkYwMDIyNzQ0RSAvKiBjb21wb3NpdGVfZWRpdF9j
b21tYW5kLmggKi87IH07CiAJCTdFNkZFRUQ4MDg5ODU4MjMwMEM0NEMzRiAvKiBXZWJDb3JlU2Ny
aXB0RGVidWdnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDdFNkZFRUQ2MDg5ODU4MjMwMEM0NEMzRiAvKiBXZWJDb3JlU2NyaXB0RGVidWdnZXIuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMjQzOSw2
ICsyNDQxLDcgQEAKIAkJNjVBQzc5QTAwODMxRUQ2RDAwOTM4NUNFIC8qIGFwcGVuZF9ub2RlX2Nv
bW1hbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IGFwcGVuZF9ub2RlX2Nv
bW1hbmQuaDsgcGF0aCA9IGVkaXRpbmcvYXBwZW5kX25vZGVfY29tbWFuZC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk2NUFDNzlBNzA4MzFGMDA2MDA5Mzg1Q0UgLyogYXBwbHlfc3R5
bGVfY29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gYXBw
bHlfc3R5bGVfY29tbWFuZC5jcHA7IHBhdGggPSBlZGl0aW5nL2FwcGx5X3N0eWxlX2NvbW1hbmQu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2NUFDNzlBODA4MzFGMDA2MDA5Mzg1
Q0UgLyogYXBwbHlfc3R5bGVfY29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBu
YW1lID0gYXBwbHlfc3R5bGVfY29tbWFuZC5oOyBwYXRoID0gZWRpdGluZy9hcHBseV9zdHlsZV9j
b21tYW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTY1Qzk3QUYyMDhFQTkwODgw
MEFDRDI3MyAvKiBjb25maWcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IGNv
bmZpZy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2NURDMTZDMjA4MzFERDZGMDAy
Mjc0NEUgLyogY29tcG9zaXRlX2VkaXRfY29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBuYW1lID0gY29tcG9zaXRlX2VkaXRfY29tbWFuZC5jcHA7IHBhdGggPSBlZGl0
aW5nL2NvbXBvc2l0ZV9lZGl0X2NvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk2NURDMTZDMzA4MzFERDZGMDAyMjc0NEUgLyogY29tcG9zaXRlX2VkaXRfY29tbWFuZC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gY29tcG9zaXRlX2VkaXRfY29tbWFu
ZC5oOyBwYXRoID0gZWRpdGluZy9jb21wb3NpdGVfZWRpdF9jb21tYW5kLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTY1RjgwNjk3MDU0RDlGODYwMDhCRjc3NiAvKiBLV1FFeGNlcHRp
b25zLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEtXUUV4Y2Vw
dGlvbnMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC02MzEwLDYgKzYzMTMsNyBA
QAogCQkJCUJDNDE5NzhCMDU5MjkzQkUwMDE2MzQ3RiAvKiB4YmwgKi8sCiAJCQkJRjUyM0QzMjQw
MkRFNDQ3ODAxODYzNUNBIC8qIHhtbCAqLywKIAkJCQlCQzA2RjI0NDA2RDE4QTM1MDA0QTZGQTMg
LyogeHNsICovLAorCQkJCTY1Qzk3QUYyMDhFQTkwODgwMEFDRDI3MyAvKiBjb25maWcuaCAqLywK
IAkJCQlGNTIzRDE1MjAyREU0MkFEMDE4NjM1Q0EgLyoga2h0bWxfZXZlbnRzLmggKi8sCiAJCQkJ
RjUyM0QxNTEwMkRFNDJBRDAxODYzNUNBIC8qIGtodG1sX2V2ZW50cy5jcHAgKi8sCiAJCQkJRjUy
M0QxNTQwMkRFNDJBRDAxODYzNUNBIC8qIGtodG1sX3BhcnQuaCAqLywKQEAgLTcyNDAsNiArNzI0
NCw3IEBACiAJCQkJQkMxNzk4REEwODhEQTRGODAwNjA2OEE1IC8qIHJlbmRlcl90aGVtZV9tYWMu
aCBpbiBIZWFkZXJzICovLAogCQkJCTdFNkZFRUQ4MDg5ODU4MjMwMEM0NEMzRiAvKiBXZWJDb3Jl
U2NyaXB0RGVidWdnZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzOTg4NUM0MDhCN0UzRDEwMEU3
MDdDNCAvKiBFdmVudE5hbWVzLmggaW4gSGVhZGVycyAqLywKKwkJCQk2NUM5N0FGMzA4RUE5MDg4
MDBBQ0QyNzMgLyogY29uZmlnLmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9y
RGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTgxMjIsNiArODEyNyw3IEBA
CiAJCQkJQThFQTQzNDcwOEUxNEVBQzAwNEJDMzk2IC8qIHJlbmRlcl9rY2FudmFzd3JhcHBlci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQThFQTQzNDkwOEUxNEVBQzAwNEJDMzk2IC8qIGRvbV9rZG9t
bm9kZXRyZWV3cmFwcGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEVBNDM0QjA4RTE0RUFDMDA0
QkMzOTYgLyogZG9tX2tkb21kb2N1bWVudHdyYXBwZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTY1
Qzk3QUY0MDhFQTkwODgwMEFDRDI3MyAvKiBjb25maWcuaCBpbiBIZWFkZXJzICovLAogCQkJKTsK
IAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpJbmRleDog
V2ViQ29yZS9raHRtbC9raHRtbF9ldmVudHMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMv
cm9vdC9XZWJDb3JlL2todG1sL2todG1sX2V2ZW50cy5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9u
IDEuMTUKZGlmZiAtcCAtdSAtcjEuMTUgV2ViQ29yZS9raHRtbC9raHRtbF9ldmVudHMuY3BwCi0t
LSBXZWJDb3JlL2todG1sL2todG1sX2V2ZW50cy5jcHAJMTYgU2VwIDIwMDUgMjI6NDI6MDAgLTAw
MDAJMS4xNQorKysgV2ViQ29yZS9raHRtbC9raHRtbF9ldmVudHMuY3BwCTMgT2N0IDIwMDUgMDc6
MzU6MDggLTAwMDAKQEAgLTE3LDYgKzE3LDcgQEAKICAgIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywg
VVNBLgogKi8KIAorI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgImtodG1sX2V2ZW50cy5o
IgogI2luY2x1ZGUgInJlbmRlcmluZy9yZW5kZXJfb2JqZWN0LmgiCiAjaW5jbHVkZSAieG1sL2Rv
bV9ub2RlaW1wbC5oIgpJbmRleDogV2ViQ29yZS9raHRtbC9raHRtbF9wYXJ0LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9raHRtbC9raHRtbF9wYXJ0LmNwcCx2CnJl
dHJpZXZpbmcgcmV2aXNpb24gMS4zNDIKZGlmZiAtcCAtdSAtcjEuMzQyIFdlYkNvcmUva2h0bWwv
a2h0bWxfcGFydC5jcHAKLS0tIFdlYkNvcmUva2h0bWwva2h0bWxfcGFydC5jcHAJMjQgU2VwIDIw
MDUgMDE6MTg6NTEgLTAwMDAJMS4zNDIKKysrIFdlYkNvcmUva2h0bWwva2h0bWxfcGFydC5jcHAJ
MyBPY3QgMjAwNSAwNzozNToxMSAtMDAwMApAQCAtMjQsNiArMjQsNyBAQAogICogQm9zdG9uLCBN
QSAwMjExMS0xMzA3LCBVU0EuCiAgKi8KIAorI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUg
ImtodG1sX3BhcnQuaCIKIAogI2lmIEFQUExFX0NIQU5HRVMKSW5kZXg6IFdlYkNvcmUva2h0bWwv
a2h0bWx2aWV3LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9raHRt
bC9raHRtbHZpZXcuY3BwLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjE0NQpkaWZmIC1wIC11IC1y
MS4xNDUgV2ViQ29yZS9raHRtbC9raHRtbHZpZXcuY3BwCi0tLSBXZWJDb3JlL2todG1sL2todG1s
dmlldy5jcHAJNSBTZXAgMjAwNSAyMjoyNjowNiAtMDAwMAkxLjE0NQorKysgV2ViQ29yZS9raHRt
bC9raHRtbHZpZXcuY3BwCTMgT2N0IDIwMDUgMDc6MzU6MTIgLTAwMDAKQEAgLTIxLDYgKzIxLDcg
QEAKICAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFj
ZSAtIFN1aXRlIDMzMCwKICAqIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLgogICovCisjaW5j
bHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAia2h0bWx2aWV3Lm1vYyIKIAogI2luY2x1ZGUgImto
dG1sdmlldy5oIgpJbmRleDogV2ViQ29yZS9raHRtbC9jc3MvY3NzX2Jhc2UuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2todG1sL2Nzcy9jc3NfYmFzZS5jcHAsdgpy
ZXRyaWV2aW5nIHJldmlzaW9uIDEuMTkKZGlmZiAtcCAtdSAtcjEuMTkgV2ViQ29yZS9raHRtbC9j
c3MvY3NzX2Jhc2UuY3BwCi0tLSBXZWJDb3JlL2todG1sL2Nzcy9jc3NfYmFzZS5jcHAJMjUgQXVn
IDIwMDUgMTc6NDY6NTcgLTAwMDAJMS4xOQorKysgV2ViQ29yZS9raHRtbC9jc3MvY3NzX2Jhc2Uu
Y3BwCTMgT2N0IDIwMDUgMDc6MzU6MTIgLTAwMDAKQEAgLTI1LDYgKzI1LDcgQEAKIAogLy8jZGVm
aW5lIENTU19ERUJVRwogCisjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAia2RlYnVnLmgi
CiAKICNpbmNsdWRlICJjc3NfYmFzZS5oIgpJbmRleDogV2ViQ29yZS9raHRtbC9jc3MvY3NzX2Jh
c2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9raHRtbC9jc3MvY3Nz
X2Jhc2UuaCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4xNwpkaWZmIC1wIC11IC1yMS4xNyBXZWJD
b3JlL2todG1sL2Nzcy9jc3NfYmFzZS5oCi0tLSBXZWJDb3JlL2todG1sL2Nzcy9jc3NfYmFzZS5o
CTI3IFNlcCAyMDA1IDIyOjM3OjAxIC0wMDAwCTEuMTcKKysrIFdlYkNvcmUva2h0bWwvY3NzL2Nz
c19iYXNlLmgJMyBPY3QgMjAwNSAwNzozNToxMiAtMDAwMApAQCAtNDYsNyArNDYsNyBAQCBuYW1l
c3BhY2UgRE9NIHsKIAogICAgIGNsYXNzIERvY3VtZW50SW1wbDsKIAotICAgIHN0cnVjdCBDU1NO
YW1lc3BhY2UgOiBwdWJsaWMgRmFzdEFsbG9jYXRlZCB7CisgICAgc3RydWN0IENTU05hbWVzcGFj
ZSB7CiAgICAgICAgIEF0b21pY1N0cmluZyBtX3ByZWZpeDsKICAgICAgICAgQXRvbWljU3RyaW5n
IG1fdXJpOwogICAgICAgICBDU1NOYW1lc3BhY2UqIG1fcGFyZW50OwpAQCAtNjgsNyArNjgsNyBA
QCBuYW1lc3BhY2UgRE9NIHsKICAgICB9OwogICAgIAogLy8gdGhpcyBjbGFzcyByZXByZXNlbnRz
IGEgc2VsZWN0b3IgZm9yIGEgU3R5bGVSdWxlCi0gICAgY2xhc3MgQ1NTU2VsZWN0b3IgOiBwdWJs
aWMgRmFzdEFsbG9jYXRlZAorICAgIGNsYXNzIENTU1NlbGVjdG9yCiAgICAgewogICAgIHB1Ymxp
YzoKICAgICAgICAgQ1NTU2VsZWN0b3IoKQpAQCAtMTk0LDcgKzE5NCw3IEBAIG5hbWVzcGFjZSBE
T00gewogICAgIH07CiAKICAgICAvLyBhIHN0eWxlIGNsYXNzIHdoaWNoIGhhcyBhIHBhcmVudCAo
YWxtb3N0IGFsbCBoYXZlKQotICAgIGNsYXNzIFN0eWxlQmFzZUltcGwgOiBwdWJsaWMga2h0bWw6
OlRyZWVTaGFyZWQ8U3R5bGVCYXNlSW1wbD4sIHB1YmxpYyBGYXN0QWxsb2NhdGVkCisgICAgY2xh
c3MgU3R5bGVCYXNlSW1wbCA6IHB1YmxpYyBraHRtbDo6VHJlZVNoYXJlZDxTdHlsZUJhc2VJbXBs
PgogICAgIHsKICAgICBwdWJsaWM6CiAJU3R5bGVCYXNlSW1wbCgpICB7IG1fcGFyZW50ID0gMDsg
c3RyaWN0UGFyc2luZyA9IHRydWU7IG11bHRpTGVuZ3RoID0gZmFsc2U7IH0KSW5kZXg6IFdlYkNv
cmUva2h0bWwvY3NzL2Nzc19jb21wdXRlZHN0eWxlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAv
Y3ZzL3Jvb3QvV2ViQ29yZS9raHRtbC9jc3MvY3NzX2NvbXB1dGVkc3R5bGUuY3BwLHYKcmV0cmll
dmluZyByZXZpc2lvbiAxLjM3CmRpZmYgLXAgLXUgLXIxLjM3IFdlYkNvcmUva2h0bWwvY3NzL2Nz
c19jb21wdXRlZHN0eWxlLmNwcAotLS0gV2ViQ29yZS9raHRtbC9jc3MvY3NzX2NvbXB1dGVkc3R5
bGUuY3BwCTI3IFNlcCAyMDA1IDIyOjM3OjAxIC0wMDAwCTEuMzcKKysrIFdlYkNvcmUva2h0bWwv
Y3NzL2Nzc19jb21wdXRlZHN0eWxlLmNwcAkzIE9jdCAyMDA1IDA3OjM1OjEzIC0wMDAwCkBAIC0y
MCw2ICsyMCw3IEBACiAgKiAwMjExMS0xMzA3ICBVU0EKICAqLwogCisjaW5jbHVkZSAiY29uZmln
LmgiCiAjaW5jbHVkZSAiY3NzX2NvbXB1dGVkc3R5bGUuaCIKIAogI2luY2x1ZGUgImNzc3Byb3Bl
cnRpZXMuaCIKSW5kZXg6IFdlYkNvcmUva2h0bWwvY3NzL2Nzc19ydWxlaW1wbC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva2h0bWwvY3NzL2Nzc19ydWxlaW1wbC5j
cHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMjMKZGlmZiAtcCAtdSAtcjEuMjMgV2ViQ29yZS9r
aHRtbC9jc3MvY3NzX3J1bGVpbXBsLmNwcAotLS0gV2ViQ29yZS9raHRtbC9jc3MvY3NzX3J1bGVp
bXBsLmNwcAkxNiBTZXAgMjAwNSAyMjo0MjowMSAtMDAwMAkxLjIzCisrKyBXZWJDb3JlL2todG1s
L2Nzcy9jc3NfcnVsZWltcGwuY3BwCTMgT2N0IDIwMDUgMDc6MzU6MTMgLTAwMDAKQEAgLTIwLDYg
KzIwLDcgQEAKICAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBs
ZSBQbGFjZSAtIFN1aXRlIDMzMCwKICAqIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLgogICov
CisjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiZG9tL2Nzc19ydWxlLmgiCiAjaW5jbHVk
ZSAiZG9tL2Nzc19zdHlsZXNoZWV0LmgiCiAjaW5jbHVkZSAiZG9tL2RvbV9leGNlcHRpb24uaCIK
SW5kZXg6IFdlYkNvcmUva2h0bWwvY3NzL2Nzc19zdHlsZXNoZWV0aW1wbC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva2h0bWwvY3NzL2Nzc19zdHlsZXNoZWV0aW1w
bC5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMTcKZGlmZiAtcCAtdSAtcjEuMTcgV2ViQ29y
ZS9raHRtbC9jc3MvY3NzX3N0eWxlc2hlZXRpbXBsLmNwcAotLS0gV2ViQ29yZS9raHRtbC9jc3Mv
Y3NzX3N0eWxlc2hlZXRpbXBsLmNwcAkxNiBTZXAgMjAwNSAyMjo0MjowMSAtMDAwMAkxLjE3Cisr
KyBXZWJDb3JlL2todG1sL2Nzcy9jc3Nfc3R5bGVzaGVldGltcGwuY3BwCTMgT2N0IDIwMDUgMDc6
MzU6MTMgLTAwMDAKQEAgLTI0LDYgKzI0LDcgQEAKIAogLy8jZGVmaW5lIENTU19TVFlMRVNIRUVU
X0RFQlVHCiAKKyNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJkb20vZG9tX3N0cmluZy5o
IgogI2luY2x1ZGUgImRvbS9kb21fZXhjZXB0aW9uLmgiCiAjaW5jbHVkZSAiZG9tL2Nzc19zdHls
ZXNoZWV0LmgiCkluZGV4OiBXZWJDb3JlL2todG1sL2Nzcy9jc3NfdmFsdWVpbXBsLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9raHRtbC9jc3MvY3NzX3ZhbHVlaW1w
bC5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNzcKZGlmZiAtcCAtdSAtcjEuNzcgV2ViQ29y
ZS9raHRtbC9jc3MvY3NzX3ZhbHVlaW1wbC5jcHAKLS0tIFdlYkNvcmUva2h0bWwvY3NzL2Nzc192
YWx1ZWltcGwuY3BwCTE2IFNlcCAyMDA1IDIyOjQyOjAyIC0wMDAwCTEuNzcKKysrIFdlYkNvcmUv
a2h0bWwvY3NzL2Nzc192YWx1ZWltcGwuY3BwCTMgT2N0IDIwMDUgMDc6MzU6MTQgLTAwMDAKQEAg
LTIwLDYgKzIwLDcgQEAKICAqIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLgogICovCiAKKyNp
bmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJjc3MvY3NzX3ZhbHVlaW1wbC5oIgogCiAjaW5j
bHVkZSAiZG9tL2Nzc192YWx1ZS5oIgpJbmRleDogV2ViQ29yZS9raHRtbC9jc3MvY3NzX3ZhbHVl
aW1wbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2todG1sL2Nzcy9j
c3NfdmFsdWVpbXBsLmgsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNTAKZGlmZiAtcCAtdSAtcjEu
NTAgV2ViQ29yZS9raHRtbC9jc3MvY3NzX3ZhbHVlaW1wbC5oCi0tLSBXZWJDb3JlL2todG1sL2Nz
cy9jc3NfdmFsdWVpbXBsLmgJMjcgU2VwIDIwMDUgMjI6Mzc6MDEgLTAwMDAJMS41MAorKysgV2Vi
Q29yZS9raHRtbC9jc3MvY3NzX3ZhbHVlaW1wbC5oCTMgT2N0IDIwMDUgMDc6MzU6MTQgLTAwMDAK
QEAgLTIzOCw3ICsyMzgsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGlzUXVpcmtWYWx1
ZSgpIHsgcmV0dXJuIHRydWU7IH0KIH07CiAKLWNsYXNzIENvdW50ZXJJbXBsIDogcHVibGljIGto
dG1sOjpTaGFyZWQ8Q291bnRlckltcGw+LCBwdWJsaWMgRmFzdEFsbG9jYXRlZCB7CitjbGFzcyBD
b3VudGVySW1wbCA6IHB1YmxpYyBraHRtbDo6U2hhcmVkPENvdW50ZXJJbXBsPiB7CiBwdWJsaWM6
CiAgICAgRE9NU3RyaW5nIGlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2lkZW50aWZpZXI7
IH0KICAgICBET01TdHJpbmcgbGlzdFN0eWxlKCkgY29uc3QgeyByZXR1cm4gbV9saXN0U3R5bGU7
IH0KQEAgLTI0OSw3ICsyNDksNyBAQCBwdWJsaWM6CiAgICAgRE9NU3RyaW5nIG1fc2VwYXJhdG9y
OwogfTsKIAotY2xhc3MgUmVjdEltcGwgOiBwdWJsaWMga2h0bWw6OlNoYXJlZDxSZWN0SW1wbD4s
IHB1YmxpYyBGYXN0QWxsb2NhdGVkIHsKK2NsYXNzIFJlY3RJbXBsIDogcHVibGljIGtodG1sOjpT
aGFyZWQ8UmVjdEltcGw+IHsKIHB1YmxpYzoKICAgICBSZWN0SW1wbCgpOwogICAgIHZpcnR1YWwg
flJlY3RJbXBsKCk7CkBAIC0yNzQsNyArMjc0LDcgQEAgcHJvdGVjdGVkOgogLy8gYW5kIGJvcmRl
ci1zcGFjaW5nIChhbGwgb2Ygd2hpY2ggYXJlIHNwYWNlLXNlcGFyYXRlZCBzZXRzIG9mIHR3byB2
YWx1ZXMpLiAgQXQgdGhlIG1vbWVudCB3ZSBhcmUgb25seSB1c2luZyBpdCBmb3IKIC8vIGJvcmRl
ci1yYWRpdXMsIGJ1dCAoRklYTUUpIGJvcmRlci1zcGFjaW5nIGFuZCBiYWNrZ3JvdW5kLXBvc2l0
aW9uIGNvdWxkIGJlIGNvbnZlcnRlZCBvdmVyIHRvIHVzZSBpdAogLy8gKGVsaW1pbmF0aW5nIHNv
bWUgZXh0cmEgLWtodG1sLSBpbnRlcm5hbCBwcm9wZXJ0aWVzKS4KLWNsYXNzIFBhaXJJbXBsIDog
cHVibGljIGtodG1sOjpTaGFyZWQ8UGFpckltcGw+LCBwdWJsaWMgRmFzdEFsbG9jYXRlZCB7Citj
bGFzcyBQYWlySW1wbCA6IHB1YmxpYyBraHRtbDo6U2hhcmVkPFBhaXJJbXBsPiB7CiBwdWJsaWM6
CiAgICAgUGFpckltcGwoKTsKICAgICB2aXJ0dWFsIH5QYWlySW1wbCgpOwpAQCAtNDEwLDcgKzQx
MCw3IEBAIHB1YmxpYzoKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCiAvLyBhbm90aGVyIGhl
bHBlciBjbGFzcwotY2xhc3MgQ1NTUHJvcGVydHkgOiBwdWJsaWMgRmFzdEFsbG9jYXRlZAorY2xh
c3MgQ1NTUHJvcGVydHkKIHsKIHB1YmxpYzoKICAgICBDU1NQcm9wZXJ0eSgpIDogbV9pZCgtMSks
IG1fYkltcG9ydGFudChmYWxzZSksIG1fdmFsdWUoMCkKSW5kZXg6IFdlYkNvcmUva2h0bWwvY3Nz
L2Nzc2hlbHBlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva2h0
bWwvY3NzL2Nzc2hlbHBlci5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuOApkaWZmIC1wIC11
IC1yMS44IFdlYkNvcmUva2h0bWwvY3NzL2Nzc2hlbHBlci5jcHAKLS0tIFdlYkNvcmUva2h0bWwv
Y3NzL2Nzc2hlbHBlci5jcHAJMjkgQXVnIDIwMDUgMjE6Mjk6MDkgLTAwMDAJMS44CisrKyBXZWJD
b3JlL2todG1sL2Nzcy9jc3NoZWxwZXIuY3BwCTMgT2N0IDIwMDUgMDc6MzU6MTQgLTAwMDAKQEAg
LTE5LDYgKzE5LDcgQEAKICAqIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLgogICoKICAqLwor
I2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgImNzc2hlbHBlci5oIgogCiAjaW5jbHVkZSA8
cWZvbnRtZXRyaWNzLmg+CkluZGV4OiBXZWJDb3JlL2todG1sL2Nzcy9jc3NwYXJzZXIuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2todG1sL2Nzcy9jc3NwYXJzZXIu
Y3BwLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjEwNwpkaWZmIC1wIC11IC1yMS4xMDcgV2ViQ29y
ZS9raHRtbC9jc3MvY3NzcGFyc2VyLmNwcAotLS0gV2ViQ29yZS9raHRtbC9jc3MvY3NzcGFyc2Vy
LmNwcAkzMCBTZXAgMjAwNSAwMDowMzoxOCAtMDAwMAkxLjEwNworKysgV2ViQ29yZS9raHRtbC9j
c3MvY3NzcGFyc2VyLmNwcAkzIE9jdCAyMDA1IDA3OjM1OjE1IC0wMDAwCkBAIC0yNCw2ICsyNCw3
IEBACiAvLyAjZGVmaW5lIFRPS0VOX0RFQlVHCiAjZGVmaW5lIFlZREVCVUcgMAogCisjaW5jbHVk
ZSAiY29uZmlnLmgiCiAjaW5jbHVkZSA8a2RlYnVnLmg+CiAjaW5jbHVkZSA8a3VybC5oPgogCkBA
IC0zNiw2ICszNyw3IEBACiAjaW5jbHVkZSAibWlzYy9oZWxwZXIuaCIKICNpbmNsdWRlICJ4bWwv
ZG9tX2RvY2ltcGwuaCIKICNpbmNsdWRlICJjc3NoZWxwZXIuaCIKKwogdXNpbmcgbmFtZXNwYWNl
IERPTTsKIAogI2luY2x1ZGUgPHN0ZGxpYi5oPgpAQCAtNDYsNyArNDgsNyBAQCB2b2lkIHFGYXRh
bCAoIGNvbnN0IGNoYXIgKiBtc2cgKSB7fQogCiBWYWx1ZUxpc3Q6OlZhbHVlTGlzdCgpCiB7Ci0g
ICAgdmFsdWVzID0gKFZhbHVlICopIG1hbGxvYyggMTYgKiBzaXplb2YgKCBWYWx1ZSApICk7Cisg
ICAgdmFsdWVzID0gKFZhbHVlICopZmFzdE1hbGxvYygxNiAqIHNpemVvZihWYWx1ZSkpOwogICAg
IG51bVZhbHVlcyA9IDA7CiAgICAgY3VycmVudFZhbHVlID0gMDsKICAgICBtYXhWYWx1ZXMgPSAx
NjsKQEAgLTYxLDE0ICs2MywxNCBAQCBWYWx1ZUxpc3Q6On5WYWx1ZUxpc3QoKQogCWlmICggdmFs
dWVzW2ldLnVuaXQgPT0gVmFsdWU6OkZ1bmN0aW9uICkKIAkgICAgZGVsZXRlIHZhbHVlc1tpXS5m
dW5jdGlvbjsKICAgICB9Ci0gICAgZnJlZSggdmFsdWVzICk7CisgICAgZmFzdEZyZWUodmFsdWVz
KTsKIH0KIAotdm9pZCBWYWx1ZUxpc3Q6OmFkZFZhbHVlKCBjb25zdCBWYWx1ZSAmdmFsICkKK3Zv
aWQgVmFsdWVMaXN0OjphZGRWYWx1ZShjb25zdCBWYWx1ZSAmdmFsKQogewotICAgIGlmICggbnVt
VmFsdWVzID49IG1heFZhbHVlcyApIHsKKyAgICBpZiAobnVtVmFsdWVzID49IG1heFZhbHVlcykg
ewogCW1heFZhbHVlcyArPSAxNjsKLQl2YWx1ZXMgPSAoVmFsdWUgKikgcmVhbGxvYyggdmFsdWVz
LCBtYXhWYWx1ZXMqc2l6ZW9mKCBWYWx1ZSApICk7CisJdmFsdWVzID0gKFZhbHVlICopZmFzdFJl
YWxsb2ModmFsdWVzLCBtYXhWYWx1ZXMqc2l6ZW9mKFZhbHVlKSk7CiAgICAgfQogICAgIHZhbHVl
c1tudW1WYWx1ZXMrK10gPSB2YWw7CiB9CkBAIC05MSw3ICs5Myw3IEBAIENTU1BhcnNlcjo6Q1NT
UGFyc2VyKCBib29sIHN0cmljdFBhcnNpbmcKICNlbmRpZgogICAgIHN0cmljdCA9IHN0cmljdFBh
cnNpbmc7CiAKLSAgICBwYXJzZWRQcm9wZXJ0aWVzID0gKENTU1Byb3BlcnR5ICoqKSBtYWxsb2Mo
IDMyICogc2l6ZW9mKCBDU1NQcm9wZXJ0eSAqICkgKTsKKyAgICBwYXJzZWRQcm9wZXJ0aWVzID0g
KENTU1Byb3BlcnR5ICoqKWZhc3RNYWxsb2MoMzIgKiBzaXplb2YoQ1NTUHJvcGVydHkgKikpOwog
ICAgIG51bVBhcnNlZFByb3BlcnRpZXMgPSAwOwogICAgIG1heFBhcnNlZFByb3BlcnRpZXMgPSAz
MjsKIApAQCAtMTE2LDcgKzExOCw3IEBAIENTU1BhcnNlcjo6fkNTU1BhcnNlcigpCiB7CiAgICAg
aWYgKCBudW1QYXJzZWRQcm9wZXJ0aWVzICkKIAljbGVhclByb3BlcnRpZXMoKTsKLSAgICBmcmVl
KCBwYXJzZWRQcm9wZXJ0aWVzICk7CisgICAgZmFzdEZyZWUocGFyc2VkUHJvcGVydGllcyk7CiAK
ICAgICBkZWxldGUgdmFsdWVMaXN0OwogCkBAIC0xMjQsNyArMTI2LDcgQEAgQ1NTUGFyc2VyOjp+
Q1NTUGFyc2VyKCkKICAgICBrZERlYnVnKCA2MDgwICkgPDwgIkNTU1BhcnNlcjo6fkNTU1BhcnNl
ciB0aGlzPSIgPDwgdGhpcyA8PCBlbmRsOwogI2VuZGlmCiAKLSAgICBmcmVlKCBkYXRhICk7Cisg
ICAgZmFzdEZyZWUoZGF0YSk7CiAKIH0KIApAQCAtMTM4LDcgKzE0MCw3IEBAIHZvaWQgQ1NTUGFy
c2VyOjpzZXR1cFBhcnNlcihjb25zdCBjaGFyICoKIHsKICAgICBpbnQgbGVuZ3RoID0gc3RyaW5n
Lmxlbmd0aCgpICsgc3RybGVuKHByZWZpeCkgKyBzdHJsZW4oc3VmZml4KSArIDI7CiAgICAgCi0g
ICAgZGF0YSA9ICh1bnNpZ25lZCBzaG9ydCAqKW1hbGxvYyggbGVuZ3RoICpzaXplb2YoIHVuc2ln
bmVkIHNob3J0ICkgKTsKKyAgICBkYXRhID0gKHVuc2lnbmVkIHNob3J0ICopZmFzdE1hbGxvYygg
bGVuZ3RoICpzaXplb2YoIHVuc2lnbmVkIHNob3J0ICkgKTsKICAgICBmb3IgKCB1bnNpZ25lZCBp
bnQgaSA9IDA7IGkgPCBzdHJsZW4ocHJlZml4KTsgaSsrICkKIAlkYXRhW2ldID0gcHJlZml4W2ld
OwogICAgIApAQCAtMzE5LDggKzMyMSw4IEBAIHZvaWQgQ1NTUGFyc2VyOjphZGRQcm9wZXJ0eSgg
aW50IHByb3BJZCwKIAogICAgIGlmICggbnVtUGFyc2VkUHJvcGVydGllcyA+PSBtYXhQYXJzZWRQ
cm9wZXJ0aWVzICkgewogCW1heFBhcnNlZFByb3BlcnRpZXMgKz0gMzI7Ci0JcGFyc2VkUHJvcGVy
dGllcyA9IChDU1NQcm9wZXJ0eSAqKikgcmVhbGxvYyggcGFyc2VkUHJvcGVydGllcywKLQkJCQkJ
CSAgICBtYXhQYXJzZWRQcm9wZXJ0aWVzKnNpemVvZiggQ1NTUHJvcGVydHkgKiApICk7CisJcGFy
c2VkUHJvcGVydGllcyA9IChDU1NQcm9wZXJ0eSAqKilmYXN0UmVhbGxvYyhwYXJzZWRQcm9wZXJ0
aWVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIG1heFBhcnNlZFByb3BlcnRpZXMqc2l6ZW9mKENTU1Byb3BlcnR5ICopKTsKICAgICB9CiAg
ICAgcGFyc2VkUHJvcGVydGllc1tudW1QYXJzZWRQcm9wZXJ0aWVzKytdID0gcHJvcDsKIH0KSW5k
ZXg6IFdlYkNvcmUva2h0bWwvY3NzL2Nzc3N0eWxlc2VsZWN0b3IuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNT
IGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2todG1sL2Nzcy9jc3NzdHlsZXNlbGVjdG9yLmNwcCx2
CnJldHJpZXZpbmcgcmV2aXNpb24gMS4yMDgKZGlmZiAtcCAtdSAtcjEuMjA4IFdlYkNvcmUva2h0
bWwvY3NzL2Nzc3N0eWxlc2VsZWN0b3IuY3BwCi0tLSBXZWJDb3JlL2todG1sL2Nzcy9jc3NzdHls
ZXNlbGVjdG9yLmNwcAkzMCBTZXAgMjAwNSAwMDowMzoxOSAtMDAwMAkxLjIwOAorKysgV2ViQ29y
ZS9raHRtbC9jc3MvY3Nzc3R5bGVzZWxlY3Rvci5jcHAJMyBPY3QgMjAwNSAwNzozNToxNyAtMDAw
MApAQCAtMjAsNiArMjAsNyBAQAogICogQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuCiAgKi8K
IAorI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgImNzcy9jc3NzdHlsZXNlbGVjdG9yLmgi
CiAjaW5jbHVkZSAicmVuZGVyaW5nL3JlbmRlcl9zdHlsZS5oIgogI2luY2x1ZGUgImNzcy9jc3Nf
c3R5bGVzaGVldGltcGwuaCIKQEAgLTE4MCw3ICsxODEsNyBAQCBpZiAoaWQgPT0gcHJvcElEKSBc
CiAKIG5hbWVzcGFjZSBraHRtbCB7CiAKLWNsYXNzIENTU1J1bGVTZXQgOiBwdWJsaWMgRmFzdEFs
bG9jYXRlZAorY2xhc3MgQ1NTUnVsZVNldAogewogcHVibGljOgogICAgIENTU1J1bGVTZXQoKTsK
SW5kZXg6IFdlYkNvcmUva2h0bWwvY3NzL2Nzc3N0eWxlc2VsZWN0b3IuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJD
UyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9raHRtbC9jc3MvY3Nzc3R5bGVzZWxlY3Rvci5oLHYK
cmV0cmlldmluZyByZXZpc2lvbiAxLjM4CmRpZmYgLXAgLXUgLXIxLjM4IFdlYkNvcmUva2h0bWwv
Y3NzL2Nzc3N0eWxlc2VsZWN0b3IuaAotLS0gV2ViQ29yZS9raHRtbC9jc3MvY3Nzc3R5bGVzZWxl
Y3Rvci5oCTI4IFNlcCAyMDA1IDIyOjAxOjI5IC0wMDAwCTEuMzgKKysrIFdlYkNvcmUva2h0bWwv
Y3NzL2Nzc3N0eWxlc2VsZWN0b3IuaAkzIE9jdCAyMDA1IDA3OjM1OjE4IC0wMDAwCkBAIC0yOSw3
ICsyOSw2IEBACiAjaW5jbHVkZSAiZG9tL2RvbV9zdHJpbmcuaCIKICNpbmNsdWRlICJ4bWwvZG9t
X3N0cmluZ2ltcGwuaCIKICNpbmNsdWRlICJjc3MvY3NzX3J1bGVpbXBsLmgiCi0jaW5jbHVkZSA8
a3htbGNvcmUvRmFzdE1hbGxvYy5oPgogCiBjbGFzcyBLSFRNTFNldHRpbmdzOwogY2xhc3MgS0hU
TUxWaWV3OwpAQCAtNjIsNyArNjEsNyBAQCBuYW1lc3BhY2Uga2h0bWwKICAgICAgKiBmb3Igc3Bl
Y2lmaWMgaW1wbGVtZW50YXRpb25zIG9mIHRoZSBTZWxlY3Rvci4gQXQgdGhlIG1vbWVudCBvbmx5
IENTU1N0eWxlU2VsZWN0b3IKICAgICAgKiBleGlzdHMsIGJ1dCBzb21lb25lIG1heSB3aXNoIHRv
IGltcGxlbWVudCBYU0wuLi4KICAgICAgKi8KLSAgICBjbGFzcyBTdHlsZVNlbGVjdG9yIDogcHVi
bGljIEZhc3RBbGxvY2F0ZWQKKyAgICBjbGFzcyBTdHlsZVNlbGVjdG9yCiAgICAgewogICAgIHB1
YmxpYzoKIAlTdHlsZVNlbGVjdG9yKCkge307CkBAIC0yMjQsNyArMjIzLDcgQEAgcHVibGljOgog
CXZvaWQgYXBwbHlQcm9wZXJ0eShpbnQgaWQsIERPTTo6Q1NTVmFsdWVJbXBsICp2YWx1ZSk7CiAg
ICAgfTsKIAotICAgIGNsYXNzIENTU1J1bGVEYXRhIDogcHVibGljIEZhc3RBbGxvY2F0ZWQgewor
ICAgIGNsYXNzIENTU1J1bGVEYXRhIHsKICAgICBwdWJsaWM6CiAgICAgICAgIENTU1J1bGVEYXRh
KHVpbnQgcG9zLCBET006OkNTU1N0eWxlUnVsZUltcGwqIHIsIERPTTo6Q1NTU2VsZWN0b3IqIHNl
bCwgQ1NTUnVsZURhdGEqIHByZXYgPSAwKQogICAgICAgICA6bV9wb3NpdGlvbihwb3MpLCBtX3J1
bGUociksIG1fc2VsZWN0b3Ioc2VsKSwgbV9uZXh0KDApIHsgaWYgKHByZXYpIHByZXYtPm1fbmV4
dCA9IHRoaXM7IH0KQEAgLTI0Miw3ICsyNDEsNyBAQCBwdWJsaWM6CiAgICAgICAgIENTU1J1bGVE
YXRhKiBtX25leHQ7CiAgICAgfTsKIAotICAgIGNsYXNzIENTU1J1bGVEYXRhTGlzdCA6IHB1Ymxp
YyBGYXN0QWxsb2NhdGVkIHsKKyAgICBjbGFzcyBDU1NSdWxlRGF0YUxpc3QgewogICAgIHB1Ymxp
YzoKICAgICAgICAgQ1NTUnVsZURhdGFMaXN0KHVpbnQgcG9zLCBET006OkNTU1N0eWxlUnVsZUlt
cGwqIHJ1bGUsIERPTTo6Q1NTU2VsZWN0b3IqIHNlbCkKICAgICAgICAgeyBtX2ZpcnN0ID0gbV9s
YXN0ID0gbmV3IENTU1J1bGVEYXRhKHBvcywgcnVsZSwgc2VsKTsgfQpJbmRleDogV2ViQ29yZS9r
aHRtbC9jc3MvcGFyc2VyLnkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUv
a2h0bWwvY3NzL3BhcnNlci55LHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjQ0CmRpZmYgLXAgLXUg
LXIxLjQ0IFdlYkNvcmUva2h0bWwvY3NzL3BhcnNlci55Ci0tLSBXZWJDb3JlL2todG1sL2Nzcy9w
YXJzZXIueQkzMCBBdWcgMjAwNSAyMTozNjoyMyAtMDAwMAkxLjQ0CisrKyBXZWJDb3JlL2todG1s
L2Nzcy9wYXJzZXIueQkzIE9jdCAyMDA1IDA3OjM1OjE4IC0wMDAwCkBAIC0yMSw5ICsyMSw3IEBA
CiAgKgogICovCiAKLSNpZmRlZiBIQVZFX0NPTkZJR19ICiAjaW5jbHVkZSA8Y29uZmlnLmg+Ci0j
ZW5kaWYKICNpbmNsdWRlIDxzdHJpbmcuaD4KICNpbmNsdWRlIDxzdGRsaWIuaD4KIApJbmRleDog
V2ViQ29yZS9raHRtbC9kb20vZG9tMl9ldmVudHMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9j
dnMvcm9vdC9XZWJDb3JlL2todG1sL2RvbS9kb20yX2V2ZW50cy5jcHAsdgpyZXRyaWV2aW5nIHJl
dmlzaW9uIDEuMjUKZGlmZiAtcCAtdSAtcjEuMjUgV2ViQ29yZS9raHRtbC9kb20vZG9tMl9ldmVu
dHMuY3BwCi0tLSBXZWJDb3JlL2todG1sL2RvbS9kb20yX2V2ZW50cy5jcHAJMTYgU2VwIDIwMDUg
MjI6NDI6MDMgLTAwMDAJMS4yNQorKysgV2ViQ29yZS9raHRtbC9kb20vZG9tMl9ldmVudHMuY3Bw
CTMgT2N0IDIwMDUgMDc6MzU6MTggLTAwMDAKQEAgLTIxLDYgKzIxLDcgQEAKICAqCiAgKi8KIAor
I2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgImRvbS9kb20yX2V2ZW50cy5oIgogCiAjaW5j
bHVkZSAieG1sL2RvbTJfZXZlbnRzaW1wbC5oIgpJbmRleDogV2ViQ29yZS9raHRtbC9kb20vZG9t
Ml90cmF2ZXJzYWwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2to
dG1sL2RvbS9kb20yX3RyYXZlcnNhbC5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNgpkaWZm
IC1wIC11IC1yMS42IFdlYkNvcmUva2h0bWwvZG9tL2RvbTJfdHJhdmVyc2FsLmNwcAotLS0gV2Vi
Q29yZS9raHRtbC9kb20vZG9tMl90cmF2ZXJzYWwuY3BwCTE2IFNlcCAyMDA1IDIyOjQyOjAzIC0w
MDAwCTEuNgorKysgV2ViQ29yZS9raHRtbC9kb20vZG9tMl90cmF2ZXJzYWwuY3BwCTMgT2N0IDIw
MDUgMDc6MzU6MTggLTAwMDAKQEAgLTIwLDYgKzIwLDcgQEAKICAqCiAgKi8KIAorI2luY2x1ZGUg
ImNvbmZpZy5oIgogI2luY2x1ZGUgImRvbS9kb20yX3RyYXZlcnNhbC5oIgogCiAjaWYgIUtIVE1M
X05PX0NQTFVTUExVU19ET00KSW5kZXg6IFdlYkNvcmUva2h0bWwvZG9tL2RvbV9taXNjLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9raHRtbC9kb20vZG9tX21pc2Mu
Y3BwLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjcKZGlmZiAtcCAtdSAtcjEuNyBXZWJDb3JlL2to
dG1sL2RvbS9kb21fbWlzYy5jcHAKLS0tIFdlYkNvcmUva2h0bWwvZG9tL2RvbV9taXNjLmNwcAkx
MSBNYXkgMjAwNSAwMDo1ODoyOCAtMDAwMAkxLjcKKysrIFdlYkNvcmUva2h0bWwvZG9tL2RvbV9t
aXNjLmNwcAkzIE9jdCAyMDA1IDA3OjM1OjE4IC0wMDAwCkBAIC0yMCw2ICsyMCw3IEBACiAgKgog
ICovCiAKKyNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJkb21fbWlzYy5oIgogCiBuYW1l
c3BhY2UgRE9NIHsKSW5kZXg6IFdlYkNvcmUva2h0bWwvZG9tL2RvbV9zdHJpbmcuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2todG1sL2RvbS9kb21fc3RyaW5nLmNw
cCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4yMQpkaWZmIC1wIC11IC1yMS4yMSBXZWJDb3JlL2to
dG1sL2RvbS9kb21fc3RyaW5nLmNwcAotLS0gV2ViQ29yZS9raHRtbC9kb20vZG9tX3N0cmluZy5j
cHAJMTIgU2VwIDIwMDUgMDM6NDA6MzggLTAwMDAJMS4yMQorKysgV2ViQ29yZS9raHRtbC9kb20v
ZG9tX3N0cmluZy5jcHAJMyBPY3QgMjAwNSAwNzozNToxOCAtMDAwMApAQCAtMjAsNiArMjAsNyBA
QAogICogQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuCiAgKi8KIAorI2luY2x1ZGUgImNvbmZp
Zy5oIgogI2luY2x1ZGUgImRvbS9kb21fc3RyaW5nLmgiCiAjaW5jbHVkZSAieG1sL2RvbV9zdHJp
bmdpbXBsLmgiCiAKSW5kZXg6IFdlYkNvcmUva2h0bWwvZWNtYS9kb21wYXJzZXIuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2todG1sL2VjbWEvZG9tcGFyc2VyLmNw
cCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS42CmRpZmYgLXAgLXUgLXIxLjYgV2ViQ29yZS9raHRt
bC9lY21hL2RvbXBhcnNlci5jcHAKLS0tIFdlYkNvcmUva2h0bWwvZWNtYS9kb21wYXJzZXIuY3Bw
CTI5IEF1ZyAyMDA1IDIxOjI5OjEyIC0wMDAwCTEuNgorKysgV2ViQ29yZS9raHRtbC9lY21hL2Rv
bXBhcnNlci5jcHAJMyBPY3QgMjAwNSAwNzozNToxOCAtMDAwMApAQCAtMTgsNiArMTgsNyBAQAog
ICogIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24s
IE1BICAwMjExMS0xMzA3ICBVU0EKICAqLwogCisjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVk
ZSAiZG9tcGFyc2VyLmgiCiAjaW5jbHVkZSAiZG9tcGFyc2VyLmx1dC5oIgogCkluZGV4OiBXZWJD
b3JlL2todG1sL2VjbWEva2pzX2JpbmRpbmcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMv
cm9vdC9XZWJDb3JlL2todG1sL2VjbWEva2pzX2JpbmRpbmcuY3BwLHYKcmV0cmlldmluZyByZXZp
c2lvbiAxLjQ0CmRpZmYgLXAgLXUgLXIxLjQ0IFdlYkNvcmUva2h0bWwvZWNtYS9ranNfYmluZGlu
Zy5jcHAKLS0tIFdlYkNvcmUva2h0bWwvZWNtYS9ranNfYmluZGluZy5jcHAJMjggU2VwIDIwMDUg
MjI6MDE6MzAgLTAwMDAJMS40NAorKysgV2ViQ29yZS9raHRtbC9lY21hL2tqc19iaW5kaW5nLmNw
cAkzIE9jdCAyMDA1IDA3OjM1OjE5IC0wMDAwCkBAIC0xOCw2ICsxOCw3IEBACiAgKiAgRm91bmRh
dGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgIDAyMTEx
LTEzMDcgIFVTQQogICovCiAKKyNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJranNfYmlu
ZGluZy5oIgogCiAjaW5jbHVkZSAia2pzX2RvbS5oIgpJbmRleDogV2ViQ29yZS9raHRtbC9lY21h
L2tqc19jc3MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2todG1s
L2VjbWEva2pzX2Nzcy5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMzgKZGlmZiAtcCAtdSAt
cjEuMzggV2ViQ29yZS9raHRtbC9lY21hL2tqc19jc3MuY3BwCi0tLSBXZWJDb3JlL2todG1sL2Vj
bWEva2pzX2Nzcy5jcHAJMTYgU2VwIDIwMDUgMjI6NDI6MDQgLTAwMDAJMS4zOAorKysgV2ViQ29y
ZS9raHRtbC9lY21hL2tqc19jc3MuY3BwCTMgT2N0IDIwMDUgMDc6MzU6MTkgLTAwMDAKQEAgLTIw
LDYgKzIwLDcgQEAKICAqICBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRl
IDMzMCwgQm9zdG9uLCBNQSAgMDIxMTEtMTMwNyAgVVNBCiAgKi8KIAorI2luY2x1ZGUgImNvbmZp
Zy5oIgogI2luY2x1ZGUgImtqc19jc3MuaCIKIAogI2luY2x1ZGUgImNzcy9jc3NfYmFzZS5oIgpJ
bmRleDogV2ViQ29yZS9raHRtbC9lY21hL2tqc19kb20uY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6
IC9jdnMvcm9vdC9XZWJDb3JlL2todG1sL2VjbWEva2pzX2RvbS5jcHAsdgpyZXRyaWV2aW5nIHJl
dmlzaW9uIDEuOTgKZGlmZiAtcCAtdSAtcjEuOTggV2ViQ29yZS9raHRtbC9lY21hL2tqc19kb20u
Y3BwCi0tLSBXZWJDb3JlL2todG1sL2VjbWEva2pzX2RvbS5jcHAJMjcgU2VwIDIwMDUgMjI6Mzc6
MDMgLTAwMDAJMS45OAorKysgV2ViQ29yZS9raHRtbC9lY21hL2tqc19kb20uY3BwCTMgT2N0IDIw
MDUgMDc6MzU6MjAgLTAwMDAKQEAgLTE4LDYgKzE4LDcgQEAKICAqICBGb3VuZGF0aW9uLCBJbmMu
LCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAgMDIxMTEtMTMwNyAgVVNB
CiAgKi8KIAorI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgImtqc19kb20uaCIKIAogI2lu
Y2x1ZGUgPGtkZWJ1Zy5oPgpJbmRleDogV2ViQ29yZS9raHRtbC9lY21hL2tqc19ldmVudHMuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2todG1sL2VjbWEva2pzX2V2
ZW50cy5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNjIKZGlmZiAtcCAtdSAtcjEuNjIgV2Vi
Q29yZS9raHRtbC9lY21hL2tqc19ldmVudHMuY3BwCi0tLSBXZWJDb3JlL2todG1sL2VjbWEva2pz
X2V2ZW50cy5jcHAJMTkgU2VwIDIwMDUgMTg6NTI6MTAgLTAwMDAJMS42MgorKysgV2ViQ29yZS9r
aHRtbC9lY21hL2tqc19ldmVudHMuY3BwCTMgT2N0IDIwMDUgMDc6MzU6MjEgLTAwMDAKQEAgLTE4
LDYgKzE4LDcgQEAKICAqICBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRl
IDMzMCwgQm9zdG9uLCBNQSAgMDIxMTEtMTMwNyAgVVNBCiAgKi8KIAorI2luY2x1ZGUgImNvbmZp
Zy5oIgogI2luY2x1ZGUgImtqc19ldmVudHMuaCIKICNpbmNsdWRlICJranNfZXZlbnRzLmx1dC5o
IgogCkluZGV4OiBXZWJDb3JlL2todG1sL2VjbWEva2pzX2h0bWwuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNT
IGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2todG1sL2VjbWEva2pzX2h0bWwuY3BwLHYKcmV0cmll
dmluZyByZXZpc2lvbiAxLjE0MApkaWZmIC1wIC11IC1yMS4xNDAgV2ViQ29yZS9raHRtbC9lY21h
L2tqc19odG1sLmNwcAotLS0gV2ViQ29yZS9raHRtbC9lY21hL2tqc19odG1sLmNwcAkyNyBTZXAg
MjAwNSAyMjozNzowMyAtMDAwMAkxLjE0MAorKysgV2ViQ29yZS9raHRtbC9lY21hL2tqc19odG1s
LmNwcAkzIE9jdCAyMDA1IDA3OjM1OjI0IC0wMDAwCkBAIC0xOSw2ICsxOSw3IEBACiAgKiAgRm91
bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgIDAy
MTExLTEzMDcgIFVTQQogICovCiAKKyNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJranNf
aHRtbC5oIgogCiAjaW5jbHVkZSAibWlzYy9sb2FkZXIuaCIKQEAgLTQzNTQsNyArNDM1NSw3IEBA
IFZhbHVlSW1wICpLSlM6OkNvbnRleHQyREZ1bmN0aW9uOjpjYWxsQXMKICAgICAgICAgICAgICAg
ICAgICAgQ0dDb2xvclNwYWNlUmVmIGNvbG9yU3BhY2UgPSBDR0NvbG9yU3BhY2VDcmVhdGVEZXZp
Y2VSR0IoKTsKICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IG51bUNvbXBvbmVudHMgPSBDR0Nv
bG9yU3BhY2VHZXROdW1iZXJPZkNvbXBvbmVudHMoY29sb3JTcGFjZSk7CiAgICAgICAgICAgICAg
ICAgICAgIHNpemVfdCBieXRlc1BlclJvdyA9IEJZVEVTX1BFUl9ST1coY3N3LEJJVFNfUEVSX0NP
TVBPTkVOVCwobnVtQ29tcG9uZW50cysxKSk7IC8vICsgMSBmb3IgYWxwaGEKLSAgICAgICAgICAg
ICAgICAgICAgdm9pZCAqX2RyYXdpbmdDb250ZXh0RGF0YSA9IG1hbGxvYyhjc2ggKiBieXRlc1Bl
clJvdyk7CisgICAgICAgICAgICAgICAgICAgIHZvaWQgKl9kcmF3aW5nQ29udGV4dERhdGEgPSBm
YXN0TWFsbG9jKGNzaCAqIGJ5dGVzUGVyUm93KTsKICAgICAgICAgICAgICAgICAgICAgCiAgICAg
ICAgICAgICAgICAgICAgIGNsaXBwZWRTb3VyY2VDb250ZXh0ID0gQ0dCaXRtYXBDb250ZXh0Q3Jl
YXRlKF9kcmF3aW5nQ29udGV4dERhdGEsIGNzdywgY3NoLCBCSVRTX1BFUl9DT01QT05FTlQsIGJ5
dGVzUGVyUm93LCBjb2xvclNwYWNlLCBrQ0dJbWFnZUFscGhhUHJlbXVsdGlwbGllZExhc3QpOwog
ICAgICAgICAgICAgICAgICAgICBDR0NvbnRleHRUcmFuc2xhdGVDVE0gKGNsaXBwZWRTb3VyY2VD
b250ZXh0LCAtc3gsIC1zeSk7CkBAIC00MzY0LDcgKzQzNjUsNyBAQCBWYWx1ZUltcCAqS0pTOjpD
b250ZXh0MkRGdW5jdGlvbjo6Y2FsbEFzCiAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAg
ICAgICAgICAgICBDR0ltYWdlUmVsZWFzZSAoY2xpcHBlZFNvdXJjZUltYWdlKTsKICAgICAgICAg
ICAgICAgICAgICAgQ0dDb250ZXh0UmVsZWFzZSAoY2xpcHBlZFNvdXJjZUNvbnRleHQpOwotICAg
ICAgICAgICAgICAgICAgICBmcmVlIChfZHJhd2luZ0NvbnRleHREYXRhKTsKKyAgICAgICAgICAg
ICAgICAgICAgZmFzdEZyZWUgKF9kcmF3aW5nQ29udGV4dERhdGEpOwogICAgICAgICAgICAgICAg
IH0KICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICBDR0ltYWdlUmVsZWFzZSAoc291
cmNlSW1hZ2UpOwpAQCAtNTEwNywxMCArNTEwOCwxMCBAQCBHcmFkaWVudDo6fkdyYWRpZW50KCkK
ICAgICAgICAgX3NoYWRpbmdSZWYgPSAwOwogICAgIH0KICAgICAKLSAgICBmcmVlIChzdG9wcyk7
CisgICAgZmFzdEZyZWUoc3RvcHMpOwogICAgIHN0b3BzID0gMDsKICAgICAKLSAgICBmcmVlIChh
ZGp1c3RlZFN0b3BzKTsKKyAgICBmYXN0RnJlZShhZGp1c3RlZFN0b3BzKTsKICAgICBhZGp1c3Rl
ZFN0b3BzID0gMDsKIH0KIApAQCAtNTE0NCwxMSArNTE0NSwxMSBAQCB2b2lkIEdyYWRpZW50Ojph
ZGRDb2xvclN0b3AgKGZsb2F0IHMsIGZsCiB7CiAgICAgaWYgKHN0b3BDb3VudCA9PSAwKSB7CiAg
ICAgICAgIG1heFN0b3BzID0gNDsKLSAgICAgICAgc3RvcHMgPSAoQ29sb3JTdG9wICopbWFsbG9j
KG1heFN0b3BzICogc2l6ZW9mKENvbG9yU3RvcCkpOworICAgICAgICBzdG9wcyA9IChDb2xvclN0
b3AgKilmYXN0TWFsbG9jKG1heFN0b3BzICogc2l6ZW9mKENvbG9yU3RvcCkpOwogICAgIH0KICAg
ICBlbHNlIGlmIChzdG9wQ291bnQrMSA+IG1heFN0b3BzKSB7CiAgICAgICAgIG1heFN0b3BzICo9
IDI7Ci0gICAgICAgIHN0b3BzID0gKENvbG9yU3RvcCAqKXJlYWxsb2Moc3RvcHMsIG1heFN0b3Bz
ICogc2l6ZW9mKENvbG9yU3RvcCkpOworICAgICAgICBzdG9wcyA9IChDb2xvclN0b3AgKilmYXN0
UmVhbGxvYyhzdG9wcywgbWF4U3RvcHMgKiBzaXplb2YoQ29sb3JTdG9wKSk7CiAgICAgfQogICAg
IHN0b3BzW3N0b3BDb3VudCsrXSA9IENvbG9yU3RvcCAocywgciwgZywgYiwgYSk7CiAgICAgc3Rv
cHNOZWVkQWRqdXN0aW5nID0gdHJ1ZTsKQEAgLTUxODgsNyArNTE4OSw3IEBAIGNvbnN0IENvbG9y
U3RvcCAqR3JhZGllbnQ6OmNvbG9yU3RvcHMoaW4KICAgICAgICAgICAgIGFkanVzdGVkU3RvcENv
dW50Kys7CiAgICAgICAgICAgICAKICAgICAgICAgaWYgKGFkanVzdGVkU3RvcENvdW50ICE9IHN0
b3BDb3VudCkgewotICAgICAgICAgICAgYWRqdXN0ZWRTdG9wcyA9IChDb2xvclN0b3AgKiltYWxs
b2MoYWRqdXN0ZWRTdG9wQ291bnQgKiBzaXplb2YoQ29sb3JTdG9wKSk7CisgICAgICAgICAgICBh
ZGp1c3RlZFN0b3BzID0gKENvbG9yU3RvcCAqKWZhc3RNYWxsb2MoYWRqdXN0ZWRTdG9wQ291bnQg
KiBzaXplb2YoQ29sb3JTdG9wKSk7CiAgICAgICAgICAgICBtZW1jcHkgKGhhdmVaZXJvU3RvcCA/
IGFkanVzdGVkU3RvcHMgOiBhZGp1c3RlZFN0b3BzKzEsCiAgICAgICAgICAgICAgICAgc3RvcHMs
IHN0b3BDb3VudCpzaXplb2YoQ29sb3JTdG9wKSk7CiAKSW5kZXg6IFdlYkNvcmUva2h0bWwvZWNt
YS9ranNfbmF2aWdhdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29y
ZS9raHRtbC9lY21hL2tqc19uYXZpZ2F0b3IuY3BwLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjM1
CmRpZmYgLXAgLXUgLXIxLjM1IFdlYkNvcmUva2h0bWwvZWNtYS9ranNfbmF2aWdhdG9yLmNwcAot
LS0gV2ViQ29yZS9raHRtbC9lY21hL2tqc19uYXZpZ2F0b3IuY3BwCTE2IFNlcCAyMDA1IDIyOjQy
OjA1IC0wMDAwCTEuMzUKKysrIFdlYkNvcmUva2h0bWwvZWNtYS9ranNfbmF2aWdhdG9yLmNwcAkz
IE9jdCAyMDA1IDA3OjM1OjI0IC0wMDAwCkBAIC0yMSw2ICsyMSw3IEBACiAgKiAgRm91bmRhdGlv
biwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgIDAyMTExLTEz
MDcgIFVTQQogICovCiAKKyNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlIDxrbG9jYWxlLmg+
CiAKICNpbmNsdWRlIDxrc3RhbmRhcmRkaXJzLmg+CkluZGV4OiBXZWJDb3JlL2todG1sL2VjbWEv
a2pzX3Byb3h5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9raHRt
bC9lY21hL2tqc19wcm94eS5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMjMKZGlmZiAtcCAt
dSAtcjEuMjMgV2ViQ29yZS9raHRtbC9lY21hL2tqc19wcm94eS5jcHAKLS0tIFdlYkNvcmUva2h0
bWwvZWNtYS9ranNfcHJveHkuY3BwCTE5IFNlcCAyMDA1IDE4OjUyOjExIC0wMDAwCTEuMjMKKysr
IFdlYkNvcmUva2h0bWwvZWNtYS9ranNfcHJveHkuY3BwCTMgT2N0IDIwMDUgMDc6MzU6MjQgLTAw
MDAKQEAgLTE4LDYgKzE4LDcgQEAKICAqICBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxh
Y2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAgMDIxMTEtMTMwNyAgVVNBCiAgKi8KIAorI2luY2x1
ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgImtqc19wcm94eS5oIgogCiAjaW5jbHVkZSAia2pzX3dp
bmRvdy5oIgpJbmRleDogV2ViQ29yZS9raHRtbC9lY21hL2tqc19yYW5nZS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva2h0bWwvZWNtYS9ranNfcmFuZ2UuY3BwLHYK
cmV0cmlldmluZyByZXZpc2lvbiAxLjE2CmRpZmYgLXAgLXUgLXIxLjE2IFdlYkNvcmUva2h0bWwv
ZWNtYS9ranNfcmFuZ2UuY3BwCi0tLSBXZWJDb3JlL2todG1sL2VjbWEva2pzX3JhbmdlLmNwcAky
NSBBdWcgMjAwNSAxNzo0NzowMSAtMDAwMAkxLjE2CisrKyBXZWJDb3JlL2todG1sL2VjbWEva2pz
X3JhbmdlLmNwcAkzIE9jdCAyMDA1IDA3OjM1OjI0IC0wMDAwCkBAIC0xOSw2ICsxOSw3IEBACiAg
KiAgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3Rvbiwg
TUEgIDAyMTExLTEzMDcgIFVTQQogICovCiAKKyNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRl
ICJranNfcmFuZ2UuaCIKIAogI2luY2x1ZGUgPGtkZWJ1Zy5oPgpJbmRleDogV2ViQ29yZS9raHRt
bC9lY21hL2tqc190cmF2ZXJzYWwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9X
ZWJDb3JlL2todG1sL2VjbWEva2pzX3RyYXZlcnNhbC5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9u
IDEuMTcKZGlmZiAtcCAtdSAtcjEuMTcgV2ViQ29yZS9raHRtbC9lY21hL2tqc190cmF2ZXJzYWwu
Y3BwCi0tLSBXZWJDb3JlL2todG1sL2VjbWEva2pzX3RyYXZlcnNhbC5jcHAJMTkgU2VwIDIwMDUg
MTg6NTI6MTEgLTAwMDAJMS4xNworKysgV2ViQ29yZS9raHRtbC9lY21hL2tqc190cmF2ZXJzYWwu
Y3BwCTMgT2N0IDIwMDUgMDc6MzU6MjUgLTAwMDAKQEAgLTE3LDYgKzE3LDcgQEAKICAqICBGb3Vu
ZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAgMDIx
MTEtMTMwNyAgVVNBCiAgKi8KIAorI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgImtqc190
cmF2ZXJzYWwuaCIKICNpbmNsdWRlICJranNfdHJhdmVyc2FsLmx1dC5oIgogCkluZGV4OiBXZWJD
b3JlL2todG1sL2VjbWEva2pzX3ZpZXdzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jv
b3QvV2ViQ29yZS9raHRtbC9lY21hL2tqc192aWV3cy5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9u
IDEuMTMKZGlmZiAtcCAtdSAtcjEuMTMgV2ViQ29yZS9raHRtbC9lY21hL2tqc192aWV3cy5jcHAK
LS0tIFdlYkNvcmUva2h0bWwvZWNtYS9ranNfdmlld3MuY3BwCTI3IFNlcCAyMDA1IDIyOjM3OjA0
IC0wMDAwCTEuMTMKKysrIFdlYkNvcmUva2h0bWwvZWNtYS9ranNfdmlld3MuY3BwCTMgT2N0IDIw
MDUgMDc6MzU6MjUgLTAwMDAKQEAgLTE4LDYgKzE4LDcgQEAKICAqICBGb3VuZGF0aW9uLCBJbmMu
LCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAgMDIxMTEtMTMwNyAgVVNB
CiAgKi8KIAorI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgImtqc192aWV3cy5oIgogCiAj
aW5jbHVkZSAia2pzX2Nzcy5oIgpJbmRleDogV2ViQ29yZS9raHRtbC9lY21hL2tqc193aW5kb3cu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2todG1sL2VjbWEva2pz
X3dpbmRvdy5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMTgxCmRpZmYgLXAgLXUgLXIxLjE4
MSBXZWJDb3JlL2todG1sL2VjbWEva2pzX3dpbmRvdy5jcHAKLS0tIFdlYkNvcmUva2h0bWwvZWNt
YS9ranNfd2luZG93LmNwcAkyNyBTZXAgMjAwNSAyMjozNzowNSAtMDAwMAkxLjE4MQorKysgV2Vi
Q29yZS9raHRtbC9lY21hL2tqc193aW5kb3cuY3BwCTMgT2N0IDIwMDUgMDc6MzU6MjYgLTAwMDAK
QEAgLTE5LDYgKzE5LDcgQEAKICAqICBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2Us
IFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAgMDIxMTEtMTMwNyAgVVNBCiAgKi8KIAorI2luY2x1ZGUg
ImNvbmZpZy5oIgogI2luY2x1ZGUgImtqc193aW5kb3cuaCIKIAogI2luY2x1ZGUgPHFzdHlsZXNo
ZWV0Lmg+CkluZGV4OiBXZWJDb3JlL2todG1sL2VjbWEveG1saHR0cHJlcXVlc3QuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2todG1sL2VjbWEveG1saHR0cHJlcXVl
c3QuY3BwLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjQyCmRpZmYgLXAgLXUgLXIxLjQyIFdlYkNv
cmUva2h0bWwvZWNtYS94bWxodHRwcmVxdWVzdC5jcHAKLS0tIFdlYkNvcmUva2h0bWwvZWNtYS94
bWxodHRwcmVxdWVzdC5jcHAJMTkgU2VwIDIwMDUgMTg6NTI6MTEgLTAwMDAJMS40MgorKysgV2Vi
Q29yZS9raHRtbC9lY21hL3htbGh0dHByZXF1ZXN0LmNwcAkzIE9jdCAyMDA1IDA3OjM1OjI2IC0w
MDAwCkBAIC0xNyw2ICsxNyw3IEBACiAgKiAgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBs
YWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgIDAyMTExLTEzMDcgIFVTQQogICovCiAKKyNpbmNs
dWRlICJjb25maWcuaCIKICNpbmNsdWRlICJ4bWxodHRwcmVxdWVzdC5oIgogCiAjaW5jbHVkZSAi
a2pzX3dpbmRvdy5oIgpJbmRleDogV2ViQ29yZS9raHRtbC9lY21hL3htbHNlcmlhbGl6ZXIuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2todG1sL2VjbWEveG1sc2Vy
aWFsaXplci5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuOApkaWZmIC1wIC11IC1yMS44IFdl
YkNvcmUva2h0bWwvZWNtYS94bWxzZXJpYWxpemVyLmNwcAotLS0gV2ViQ29yZS9raHRtbC9lY21h
L3htbHNlcmlhbGl6ZXIuY3BwCTI1IEF1ZyAyMDA1IDE3OjQ3OjAyIC0wMDAwCTEuOAorKysgV2Vi
Q29yZS9raHRtbC9lY21hL3htbHNlcmlhbGl6ZXIuY3BwCTMgT2N0IDIwMDUgMDc6MzU6MjYgLTAw
MDAKQEAgLTE4LDYgKzE4LDcgQEAKICAqICBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxh
Y2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAgMDIxMTEtMTMwNyAgVVNBCiAgKi8KIAorI2luY2x1
ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgInhtbHNlcmlhbGl6ZXIuaCIKICNpbmNsdWRlICJ4bWxz
ZXJpYWxpemVyLmx1dC5oIgogCkluZGV4OiBXZWJDb3JlL2todG1sL2VkaXRpbmcvU2VsZWN0aW9u
Q29udHJvbGxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva2h0
bWwvZWRpdGluZy9TZWxlY3Rpb25Db250cm9sbGVyLmNwcCx2CnJldHJpZXZpbmcgcmV2aXNpb24g
MS45NgpkaWZmIC1wIC11IC1yMS45NiBXZWJDb3JlL2todG1sL2VkaXRpbmcvU2VsZWN0aW9uQ29u
dHJvbGxlci5jcHAKLS0tIFdlYkNvcmUva2h0bWwvZWRpdGluZy9TZWxlY3Rpb25Db250cm9sbGVy
LmNwcAkyNyBTZXAgMjAwNSAyMjozNzowOCAtMDAwMAkxLjk2CisrKyBXZWJDb3JlL2todG1sL2Vk
aXRpbmcvU2VsZWN0aW9uQ29udHJvbGxlci5jcHAJMyBPY3QgMjAwNSAwNzozNToyNyAtMDAwMApA
QCAtMjMsNiArMjMsNyBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCiAgKi8KICAgCisjaW5jbHVkZSAiY29u
ZmlnLmgiCiAjaW5jbHVkZSAiU2VsZWN0aW9uQ29udHJvbGxlci5oIgogCiAjaW5jbHVkZSA8cWV2
ZW50Lmg+CkluZGV4OiBXZWJDb3JlL2todG1sL2VkaXRpbmcvYXBwZW5kX25vZGVfY29tbWFuZC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva2h0bWwvZWRpdGluZy9h
cHBlbmRfbm9kZV9jb21tYW5kLmNwcCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4yCmRpZmYgLXAg
LXUgLXIxLjIgV2ViQ29yZS9raHRtbC9lZGl0aW5nL2FwcGVuZF9ub2RlX2NvbW1hbmQuY3BwCi0t
LSBXZWJDb3JlL2todG1sL2VkaXRpbmcvYXBwZW5kX25vZGVfY29tbWFuZC5jcHAJMjcgU2VwIDIw
MDUgMjI6Mzc6MDkgLTAwMDAJMS4yCisrKyBXZWJDb3JlL2todG1sL2VkaXRpbmcvYXBwZW5kX25v
ZGVfY29tbWFuZC5jcHAJMyBPY3QgMjAwNSAwNzozNToyNyAtMDAwMApAQCAtMjMsNiArMjMsNyBA
QAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4gCiAgKi8KIAorI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUg
ImFwcGVuZF9ub2RlX2NvbW1hbmQuaCIKIAogI2luY2x1ZGUgInhtbC9kb21fbm9kZWltcGwuaCIK
SW5kZXg6IFdlYkNvcmUva2h0bWwvZWRpdGluZy9hcHBseV9zdHlsZV9jb21tYW5kLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9raHRtbC9lZGl0aW5nL2FwcGx5X3N0
eWxlX2NvbW1hbmQuY3BwLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjE1CmRpZmYgLXAgLXUgLXIx
LjE1IFdlYkNvcmUva2h0bWwvZWRpdGluZy9hcHBseV9zdHlsZV9jb21tYW5kLmNwcAotLS0gV2Vi
Q29yZS9raHRtbC9lZGl0aW5nL2FwcGx5X3N0eWxlX2NvbW1hbmQuY3BwCTI3IFNlcCAyMDA1IDIy
OjM3OjA5IC0wMDAwCTEuMTUKKysrIFdlYkNvcmUva2h0bWwvZWRpdGluZy9hcHBseV9zdHlsZV9j
b21tYW5kLmNwcAkzIE9jdCAyMDA1IDA3OjM1OjI4IC0wMDAwCkBAIC0yMyw2ICsyMyw3IEBACiAg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLiAKICAqLwogCisjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiYXBw
bHlfc3R5bGVfY29tbWFuZC5oIgogCiAjaW5jbHVkZSAiaHRtbF9pbnRlcmNoYW5nZS5oIgpJbmRl
eDogV2ViQ29yZS9raHRtbC9lZGl0aW5nL2JyZWFrX2Jsb2NrcXVvdGVfY29tbWFuZC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva2h0bWwvZWRpdGluZy9icmVha19i
bG9ja3F1b3RlX2NvbW1hbmQuY3BwLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjgKZGlmZiAtcCAt
dSAtcjEuOCBXZWJDb3JlL2todG1sL2VkaXRpbmcvYnJlYWtfYmxvY2txdW90ZV9jb21tYW5kLmNw
cAotLS0gV2ViQ29yZS9raHRtbC9lZGl0aW5nL2JyZWFrX2Jsb2NrcXVvdGVfY29tbWFuZC5jcHAJ
MjcgU2VwIDIwMDUgMjI6Mzc6MDkgLTAwMDAJMS44CisrKyBXZWJDb3JlL2todG1sL2VkaXRpbmcv
YnJlYWtfYmxvY2txdW90ZV9jb21tYW5kLmNwcAkzIE9jdCAyMDA1IDA3OjM1OjI4IC0wMDAwCkBA
IC0yMyw2ICsyMyw3IEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKICAqLwogCisjaW5jbHVkZSAiY29uZmln
LmgiCiAjaW5jbHVkZSAiYnJlYWtfYmxvY2txdW90ZV9jb21tYW5kLmgiCiAKICNpbmNsdWRlICJo
dG1sZWRpdGluZy5oIgpJbmRleDogV2ViQ29yZS9raHRtbC9lZGl0aW5nL2NvbXBvc2l0ZV9lZGl0
X2NvbW1hbmQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2todG1s
L2VkaXRpbmcvY29tcG9zaXRlX2VkaXRfY29tbWFuZC5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9u
IDEuMTQKZGlmZiAtcCAtdSAtcjEuMTQgV2ViQ29yZS9raHRtbC9lZGl0aW5nL2NvbXBvc2l0ZV9l
ZGl0X2NvbW1hbmQuY3BwCi0tLSBXZWJDb3JlL2todG1sL2VkaXRpbmcvY29tcG9zaXRlX2VkaXRf
Y29tbWFuZC5jcHAJMjkgU2VwIDIwMDUgMDc6NDc6MDYgLTAwMDAJMS4xNAorKysgV2ViQ29yZS9r
aHRtbC9lZGl0aW5nL2NvbXBvc2l0ZV9lZGl0X2NvbW1hbmQuY3BwCTMgT2N0IDIwMDUgMDc6MzU6
MjggLTAwMDAKQEAgLTIzLDYgKzIzLDcgQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAogICovCiAKKyNpbmNs
dWRlICJjb25maWcuaCIKICNpbmNsdWRlICJjb21wb3NpdGVfZWRpdF9jb21tYW5kLmgiCiAKICNp
bmNsdWRlICJhcHBlbmRfbm9kZV9jb21tYW5kLmgiCkluZGV4OiBXZWJDb3JlL2todG1sL2VkaXRp
bmcvZGVsZXRlX2Zyb21fdGV4dF9ub2RlX2NvbW1hbmQuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6
IC9jdnMvcm9vdC9XZWJDb3JlL2todG1sL2VkaXRpbmcvZGVsZXRlX2Zyb21fdGV4dF9ub2RlX2Nv
bW1hbmQuY3BwLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjMKZGlmZiAtcCAtdSAtcjEuMyBXZWJD
b3JlL2todG1sL2VkaXRpbmcvZGVsZXRlX2Zyb21fdGV4dF9ub2RlX2NvbW1hbmQuY3BwCi0tLSBX
ZWJDb3JlL2todG1sL2VkaXRpbmcvZGVsZXRlX2Zyb21fdGV4dF9ub2RlX2NvbW1hbmQuY3BwCTI3
IFNlcCAyMDA1IDIyOjM3OjA5IC0wMDAwCTEuMworKysgV2ViQ29yZS9raHRtbC9lZGl0aW5nL2Rl
bGV0ZV9mcm9tX3RleHRfbm9kZV9jb21tYW5kLmNwcAkzIE9jdCAyMDA1IDA3OjM1OjI4IC0wMDAw
CkBAIC0yMyw2ICsyMyw3IEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKICAqLwogCisjaW5jbHVkZSAiY29u
ZmlnLmgiCiAjaW5jbHVkZSAiZGVsZXRlX2Zyb21fdGV4dF9ub2RlX2NvbW1hbmQuaCIKIAogI2lu
Y2x1ZGUgInhtbC9kb21fdGV4dGltcGwuaCIKSW5kZXg6IFdlYkNvcmUva2h0bWwvZWRpdGluZy9k
ZWxldGVfc2VsZWN0aW9uX2NvbW1hbmQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9v
dC9XZWJDb3JlL2todG1sL2VkaXRpbmcvZGVsZXRlX3NlbGVjdGlvbl9jb21tYW5kLmNwcCx2CnJl
dHJpZXZpbmcgcmV2aXNpb24gMS4xOApkaWZmIC1wIC11IC1yMS4xOCBXZWJDb3JlL2todG1sL2Vk
aXRpbmcvZGVsZXRlX3NlbGVjdGlvbl9jb21tYW5kLmNwcAotLS0gV2ViQ29yZS9raHRtbC9lZGl0
aW5nL2RlbGV0ZV9zZWxlY3Rpb25fY29tbWFuZC5jcHAJMjcgU2VwIDIwMDUgMjI6Mzc6MDkgLTAw
MDAJMS4xOAorKysgV2ViQ29yZS9raHRtbC9lZGl0aW5nL2RlbGV0ZV9zZWxlY3Rpb25fY29tbWFu
ZC5jcHAJMyBPY3QgMjAwNSAwNzozNToyOCAtMDAwMApAQCAtMjMsNiArMjMsNyBAQAogICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4gCiAgKi8KIAorI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgImRlbGV0ZV9z
ZWxlY3Rpb25fY29tbWFuZC5oIgogCiAjaW5jbHVkZSAiY3NzL2Nzc19jb21wdXRlZHN0eWxlLmgi
CkluZGV4OiBXZWJDb3JlL2todG1sL2VkaXRpbmcvZWRpdF9jb21tYW5kLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9raHRtbC9lZGl0aW5nL2VkaXRfY29tbWFuZC5j
cHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuOApkaWZmIC1wIC11IC1yMS44IFdlYkNvcmUva2h0
bWwvZWRpdGluZy9lZGl0X2NvbW1hbmQuY3BwCi0tLSBXZWJDb3JlL2todG1sL2VkaXRpbmcvZWRp
dF9jb21tYW5kLmNwcAkyNyBTZXAgMjAwNSAyMjozNzowOSAtMDAwMAkxLjgKKysrIFdlYkNvcmUv
a2h0bWwvZWRpdGluZy9lZGl0X2NvbW1hbmQuY3BwCTMgT2N0IDIwMDUgMDc6MzU6MjkgLTAwMDAK
QEAgLTIzLDYgKzIzLDcgQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAogICovCiAKKyNpbmNsdWRlICJjb25m
aWcuaCIKICNpbmNsdWRlICJlZGl0X2NvbW1hbmQuaCIKICNpbmNsdWRlICJTZWxlY3Rpb25Db250
cm9sbGVyLmgiCiAjaW5jbHVkZSAia2h0bWxfcGFydC5oIgpJbmRleDogV2ViQ29yZS9raHRtbC9l
ZGl0aW5nL2h0bWxfaW50ZXJjaGFuZ2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9v
dC9XZWJDb3JlL2todG1sL2VkaXRpbmcvaHRtbF9pbnRlcmNoYW5nZS5jcHAsdgpyZXRyaWV2aW5n
IHJldmlzaW9uIDEuMgpkaWZmIC1wIC11IC1yMS4yIFdlYkNvcmUva2h0bWwvZWRpdGluZy9odG1s
X2ludGVyY2hhbmdlLmNwcAotLS0gV2ViQ29yZS9raHRtbC9lZGl0aW5nL2h0bWxfaW50ZXJjaGFu
Z2UuY3BwCTggTWFyIDIwMDUgMTc6NDI6MzggLTAwMDAJMS4yCisrKyBXZWJDb3JlL2todG1sL2Vk
aXRpbmcvaHRtbF9pbnRlcmNoYW5nZS5jcHAJMyBPY3QgMjAwNSAwNzozNToyOSAtMDAwMApAQCAt
MjMsNiArMjMsNyBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCiAgKi8KIAorI2luY2x1ZGUgImNvbmZpZy5o
IgogI2luY2x1ZGUgImh0bWxfaW50ZXJjaGFuZ2UuaCIKIAogI2luY2x1ZGUgPHFzdHJpbmcuaD4K
SW5kZXg6IFdlYkNvcmUva2h0bWwvZWRpdGluZy9odG1sZWRpdGluZy5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpS
Q1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva2h0bWwvZWRpdGluZy9odG1sZWRpdGluZy5jcHAs
dgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMjU5CmRpZmYgLXAgLXUgLXIxLjI1OSBXZWJDb3JlL2to
dG1sL2VkaXRpbmcvaHRtbGVkaXRpbmcuY3BwCi0tLSBXZWJDb3JlL2todG1sL2VkaXRpbmcvaHRt
bGVkaXRpbmcuY3BwCTI5IFNlcCAyMDA1IDA3OjQ3OjA2IC0wMDAwCTEuMjU5CisrKyBXZWJDb3Jl
L2todG1sL2VkaXRpbmcvaHRtbGVkaXRpbmcuY3BwCTMgT2N0IDIwMDUgMDc6MzU6MjkgLTAwMDAK
QEAgLTIzLDYgKzIzLDcgQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAogICovCiAKKyNpbmNsdWRlICJjb25m
aWcuaCIKICNpbmNsdWRlICJodG1sZWRpdGluZy5oIgogCiAjaW5jbHVkZSAiY3NzX2NvbXB1dGVk
c3R5bGUuaCIKSW5kZXg6IFdlYkNvcmUva2h0bWwvZWRpdGluZy9pbnNlcnRfaW50b190ZXh0X25v
ZGVfY29tbWFuZC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva2h0
bWwvZWRpdGluZy9pbnNlcnRfaW50b190ZXh0X25vZGVfY29tbWFuZC5jcHAsdgpyZXRyaWV2aW5n
IHJldmlzaW9uIDEuMwpkaWZmIC1wIC11IC1yMS4zIFdlYkNvcmUva2h0bWwvZWRpdGluZy9pbnNl
cnRfaW50b190ZXh0X25vZGVfY29tbWFuZC5jcHAKLS0tIFdlYkNvcmUva2h0bWwvZWRpdGluZy9p
bnNlcnRfaW50b190ZXh0X25vZGVfY29tbWFuZC5jcHAJMjcgU2VwIDIwMDUgMjI6Mzc6MTAgLTAw
MDAJMS4zCisrKyBXZWJDb3JlL2todG1sL2VkaXRpbmcvaW5zZXJ0X2ludG9fdGV4dF9ub2RlX2Nv
bW1hbmQuY3BwCTMgT2N0IDIwMDUgMDc6MzU6MjkgLTAwMDAKQEAgLTIzLDYgKzIzLDcgQEAKICAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuIAogICovCiAKKyNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJpbnNl
cnRfaW50b190ZXh0X25vZGVfY29tbWFuZC5oIgogCiAjaW5jbHVkZSAieG1sL2RvbV90ZXh0aW1w
bC5oIgpJbmRleDogV2ViQ29yZS9raHRtbC9lZGl0aW5nL2luc2VydF9saW5lX2JyZWFrX2NvbW1h
bmQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2todG1sL2VkaXRp
bmcvaW5zZXJ0X2xpbmVfYnJlYWtfY29tbWFuZC5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEu
NwpkaWZmIC1wIC11IC1yMS43IFdlYkNvcmUva2h0bWwvZWRpdGluZy9pbnNlcnRfbGluZV9icmVh
a19jb21tYW5kLmNwcAotLS0gV2ViQ29yZS9raHRtbC9lZGl0aW5nL2luc2VydF9saW5lX2JyZWFr
X2NvbW1hbmQuY3BwCTI3IFNlcCAyMDA1IDIyOjM3OjEwIC0wMDAwCTEuNworKysgV2ViQ29yZS9r
aHRtbC9lZGl0aW5nL2luc2VydF9saW5lX2JyZWFrX2NvbW1hbmQuY3BwCTMgT2N0IDIwMDUgMDc6
MzU6MjkgLTAwMDAKQEAgLTIzLDYgKzIzLDcgQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAogICovCiAKKyNp
bmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJpbnNlcnRfbGluZV9icmVha19jb21tYW5kLmgi
CiAKICNpbmNsdWRlICJodG1sZWRpdGluZy5oIgpJbmRleDogV2ViQ29yZS9raHRtbC9lZGl0aW5n
L2luc2VydF9ub2RlX2JlZm9yZV9jb21tYW5kLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3Zz
L3Jvb3QvV2ViQ29yZS9raHRtbC9lZGl0aW5nL2luc2VydF9ub2RlX2JlZm9yZV9jb21tYW5kLmNw
cCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4yCmRpZmYgLXAgLXUgLXIxLjIgV2ViQ29yZS9raHRt
bC9lZGl0aW5nL2luc2VydF9ub2RlX2JlZm9yZV9jb21tYW5kLmNwcAotLS0gV2ViQ29yZS9raHRt
bC9lZGl0aW5nL2luc2VydF9ub2RlX2JlZm9yZV9jb21tYW5kLmNwcAkyNyBTZXAgMjAwNSAyMjoz
NzoxMCAtMDAwMAkxLjIKKysrIFdlYkNvcmUva2h0bWwvZWRpdGluZy9pbnNlcnRfbm9kZV9iZWZv
cmVfY29tbWFuZC5jcHAJMyBPY3QgMjAwNSAwNzozNToyOSAtMDAwMApAQCAtMjMsNiArMjMsNyBA
QAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4gCiAgKi8KIAorI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUg
Imluc2VydF9ub2RlX2JlZm9yZV9jb21tYW5kLmgiCiAKICNpbmNsdWRlICJ4bWwvZG9tX25vZGVp
bXBsLmgiCkluZGV4OiBXZWJDb3JlL2todG1sL2VkaXRpbmcvaW5zZXJ0X3BhcmFncmFwaF9zZXBh
cmF0b3JfY29tbWFuZC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUv
a2h0bWwvZWRpdGluZy9pbnNlcnRfcGFyYWdyYXBoX3NlcGFyYXRvcl9jb21tYW5kLmNwcCx2CnJl
dHJpZXZpbmcgcmV2aXNpb24gMS44CmRpZmYgLXAgLXUgLXIxLjggV2ViQ29yZS9raHRtbC9lZGl0
aW5nL2luc2VydF9wYXJhZ3JhcGhfc2VwYXJhdG9yX2NvbW1hbmQuY3BwCi0tLSBXZWJDb3JlL2to
dG1sL2VkaXRpbmcvaW5zZXJ0X3BhcmFncmFwaF9zZXBhcmF0b3JfY29tbWFuZC5jcHAJMjcgU2Vw
IDIwMDUgMjI6Mzc6MTAgLTAwMDAJMS44CisrKyBXZWJDb3JlL2todG1sL2VkaXRpbmcvaW5zZXJ0
X3BhcmFncmFwaF9zZXBhcmF0b3JfY29tbWFuZC5jcHAJMyBPY3QgMjAwNSAwNzozNToyOSAtMDAw
MApAQCAtMjMsNiArMjMsNyBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCiAgKi8KIAorI2luY2x1ZGUgImNv
bmZpZy5oIgogI2luY2x1ZGUgImluc2VydF9wYXJhZ3JhcGhfc2VwYXJhdG9yX2NvbW1hbmQuaCIK
IAogI2luY2x1ZGUgImh0bWxlZGl0aW5nLmgiCkluZGV4OiBXZWJDb3JlL2todG1sL2VkaXRpbmcv
aW5zZXJ0X3RleHRfY29tbWFuZC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dl
YkNvcmUva2h0bWwvZWRpdGluZy9pbnNlcnRfdGV4dF9jb21tYW5kLmNwcCx2CnJldHJpZXZpbmcg
cmV2aXNpb24gMS4xMApkaWZmIC1wIC11IC1yMS4xMCBXZWJDb3JlL2todG1sL2VkaXRpbmcvaW5z
ZXJ0X3RleHRfY29tbWFuZC5jcHAKLS0tIFdlYkNvcmUva2h0bWwvZWRpdGluZy9pbnNlcnRfdGV4
dF9jb21tYW5kLmNwcAkyOSBTZXAgMjAwNSAwNzo0NzowNiAtMDAwMAkxLjEwCisrKyBXZWJDb3Jl
L2todG1sL2VkaXRpbmcvaW5zZXJ0X3RleHRfY29tbWFuZC5jcHAJMyBPY3QgMjAwNSAwNzozNToy
OSAtMDAwMApAQCAtMjMsNiArMjMsNyBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCiAgKi8KIAorI2luY2x1
ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgImluc2VydF90ZXh0X2NvbW1hbmQuaCIKIAogI2luY2x1
ZGUgImtodG1sX3BhcnQuaCIKSW5kZXg6IFdlYkNvcmUva2h0bWwvZWRpdGluZy9qb2luX3RleHRf
bm9kZXNfY29tbWFuZC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUv
a2h0bWwvZWRpdGluZy9qb2luX3RleHRfbm9kZXNfY29tbWFuZC5jcHAsdgpyZXRyaWV2aW5nIHJl
dmlzaW9uIDEuMgpkaWZmIC1wIC11IC1yMS4yIFdlYkNvcmUva2h0bWwvZWRpdGluZy9qb2luX3Rl
eHRfbm9kZXNfY29tbWFuZC5jcHAKLS0tIFdlYkNvcmUva2h0bWwvZWRpdGluZy9qb2luX3RleHRf
bm9kZXNfY29tbWFuZC5jcHAJMjcgU2VwIDIwMDUgMjI6Mzc6MTAgLTAwMDAJMS4yCisrKyBXZWJD
b3JlL2todG1sL2VkaXRpbmcvam9pbl90ZXh0X25vZGVzX2NvbW1hbmQuY3BwCTMgT2N0IDIwMDUg
MDc6MzU6MjkgLTAwMDAKQEAgLTIzLDYgKzIzLDcgQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAogICovCiAK
KyNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJqb2luX3RleHRfbm9kZXNfY29tbWFuZC5o
IgogCiAjaW5jbHVkZSAieG1sL2RvbV9kb2NpbXBsLmgiCkluZGV4OiBXZWJDb3JlL2todG1sL2Vk
aXRpbmcvanNlZGl0aW5nLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29y
ZS9raHRtbC9lZGl0aW5nL2pzZWRpdGluZy5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMzIK
ZGlmZiAtcCAtdSAtcjEuMzIgV2ViQ29yZS9raHRtbC9lZGl0aW5nL2pzZWRpdGluZy5jcHAKLS0t
IFdlYkNvcmUva2h0bWwvZWRpdGluZy9qc2VkaXRpbmcuY3BwCTI4IFNlcCAyMDA1IDIyOjAxOjMx
IC0wMDAwCTEuMzIKKysrIFdlYkNvcmUva2h0bWwvZWRpdGluZy9qc2VkaXRpbmcuY3BwCTMgT2N0
IDIwMDUgMDc6MzU6MzAgLTAwMDAKQEAgLTIzLDYgKzIzLDcgQEAKICAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAg
Ki8KIAorI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgImpzZWRpdGluZy5oIgogCiAjaW5j
bHVkZSAiY3NzL2Nzc192YWx1ZWltcGwuaCIKSW5kZXg6IFdlYkNvcmUva2h0bWwvZWRpdGluZy9t
YXJrdXAuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2todG1sL2Vk
aXRpbmcvbWFya3VwLmNwcCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4zNgpkaWZmIC1wIC11IC1y
MS4zNiBXZWJDb3JlL2todG1sL2VkaXRpbmcvbWFya3VwLmNwcAotLS0gV2ViQ29yZS9raHRtbC9l
ZGl0aW5nL21hcmt1cC5jcHAJMjkgU2VwIDIwMDUgMDc6NDc6MDYgLTAwMDAJMS4zNgorKysgV2Vi
Q29yZS9raHRtbC9lZGl0aW5nL21hcmt1cC5jcHAJMyBPY3QgMjAwNSAwNzozNTozMCAtMDAwMApA
QCAtMjMsNiArMjMsNyBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCiAgKi8KIAorI2luY2x1ZGUgImNvbmZp
Zy5oIgogI2luY2x1ZGUgIm1hcmt1cC5oIgogCiAjaW5jbHVkZSAiaHRtbGVkaXRpbmcuaCIKSW5k
ZXg6IFdlYkNvcmUva2h0bWwvZWRpdGluZy9tZXJnZV9pZGVudGljYWxfZWxlbWVudHNfY29tbWFu
ZC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva2h0bWwvZWRpdGlu
Zy9tZXJnZV9pZGVudGljYWxfZWxlbWVudHNfY29tbWFuZC5jcHAsdgpyZXRyaWV2aW5nIHJldmlz
aW9uIDEuMgpkaWZmIC1wIC11IC1yMS4yIFdlYkNvcmUva2h0bWwvZWRpdGluZy9tZXJnZV9pZGVu
dGljYWxfZWxlbWVudHNfY29tbWFuZC5jcHAKLS0tIFdlYkNvcmUva2h0bWwvZWRpdGluZy9tZXJn
ZV9pZGVudGljYWxfZWxlbWVudHNfY29tbWFuZC5jcHAJMjcgU2VwIDIwMDUgMjI6Mzc6MTAgLTAw
MDAJMS4yCisrKyBXZWJDb3JlL2todG1sL2VkaXRpbmcvbWVyZ2VfaWRlbnRpY2FsX2VsZW1lbnRz
X2NvbW1hbmQuY3BwCTMgT2N0IDIwMDUgMDc6MzU6MzAgLTAwMDAKQEAgLTIzLDYgKzIzLDcgQEAK
ICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuIAogICovCiAKKyNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJt
ZXJnZV9pZGVudGljYWxfZWxlbWVudHNfY29tbWFuZC5oIgogCiAjaW5jbHVkZSAieG1sL2RvbV9k
b2NpbXBsLmgiCkluZGV4OiBXZWJDb3JlL2todG1sL2VkaXRpbmcvbW92ZV9zZWxlY3Rpb25fY29t
bWFuZC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva2h0bWwvZWRp
dGluZy9tb3ZlX3NlbGVjdGlvbl9jb21tYW5kLmNwcCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS40
CmRpZmYgLXAgLXUgLXIxLjQgV2ViQ29yZS9raHRtbC9lZGl0aW5nL21vdmVfc2VsZWN0aW9uX2Nv
bW1hbmQuY3BwCi0tLSBXZWJDb3JlL2todG1sL2VkaXRpbmcvbW92ZV9zZWxlY3Rpb25fY29tbWFu
ZC5jcHAJMjcgU2VwIDIwMDUgMjI6Mzc6MTAgLTAwMDAJMS40CisrKyBXZWJDb3JlL2todG1sL2Vk
aXRpbmcvbW92ZV9zZWxlY3Rpb25fY29tbWFuZC5jcHAJMyBPY3QgMjAwNSAwNzozNTozMCAtMDAw
MApAQCAtMjMsNiArMjMsNyBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCiAgKi8KIAorI2luY2x1ZGUgImNv
bmZpZy5oIgogI2luY2x1ZGUgIm1vdmVfc2VsZWN0aW9uX2NvbW1hbmQuaCIKICNpbmNsdWRlICJy
ZXBsYWNlX3NlbGVjdGlvbl9jb21tYW5kLmgiCiAKSW5kZXg6IFdlYkNvcmUva2h0bWwvZWRpdGlu
Zy9yZWJhbGFuY2Vfd2hpdGVzcGFjZV9jb21tYW5kLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAv
Y3ZzL3Jvb3QvV2ViQ29yZS9raHRtbC9lZGl0aW5nL3JlYmFsYW5jZV93aGl0ZXNwYWNlX2NvbW1h
bmQuY3BwLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjQKZGlmZiAtcCAtdSAtcjEuNCBXZWJDb3Jl
L2todG1sL2VkaXRpbmcvcmViYWxhbmNlX3doaXRlc3BhY2VfY29tbWFuZC5jcHAKLS0tIFdlYkNv
cmUva2h0bWwvZWRpdGluZy9yZWJhbGFuY2Vfd2hpdGVzcGFjZV9jb21tYW5kLmNwcAkyOSBTZXAg
MjAwNSAwNzo0NzowNiAtMDAwMAkxLjQKKysrIFdlYkNvcmUva2h0bWwvZWRpdGluZy9yZWJhbGFu
Y2Vfd2hpdGVzcGFjZV9jb21tYW5kLmNwcAkzIE9jdCAyMDA1IDA3OjM1OjMwIC0wMDAwCkBAIC0y
Myw2ICsyMyw3IEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKICAqLwogCisjaW5jbHVkZSAiY29uZmlnLmgi
CiAjaW5jbHVkZSAicmViYWxhbmNlX3doaXRlc3BhY2VfY29tbWFuZC5oIgogCiAjaW5jbHVkZSAi
aHRtbGVkaXRpbmcuaCIKSW5kZXg6IFdlYkNvcmUva2h0bWwvZWRpdGluZy9yZW1vdmVfY3NzX3By
b3BlcnR5X2NvbW1hbmQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3Jl
L2todG1sL2VkaXRpbmcvcmVtb3ZlX2Nzc19wcm9wZXJ0eV9jb21tYW5kLmNwcCx2CnJldHJpZXZp
bmcgcmV2aXNpb24gMS4yCmRpZmYgLXAgLXUgLXIxLjIgV2ViQ29yZS9raHRtbC9lZGl0aW5nL3Jl
bW92ZV9jc3NfcHJvcGVydHlfY29tbWFuZC5jcHAKLS0tIFdlYkNvcmUva2h0bWwvZWRpdGluZy9y
ZW1vdmVfY3NzX3Byb3BlcnR5X2NvbW1hbmQuY3BwCTI3IFNlcCAyMDA1IDIyOjM3OjExIC0wMDAw
CTEuMgorKysgV2ViQ29yZS9raHRtbC9lZGl0aW5nL3JlbW92ZV9jc3NfcHJvcGVydHlfY29tbWFu
ZC5jcHAJMyBPY3QgMjAwNSAwNzozNTozMCAtMDAwMApAQCAtMjMsNiArMjMsNyBAQAogICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4gCiAgKi8KIAorI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgInJlbW92ZV9j
c3NfcHJvcGVydHlfY29tbWFuZC5oIgogCiAjaW5jbHVkZSAiY3NzL2Nzc192YWx1ZWltcGwuaCIK
SW5kZXg6IFdlYkNvcmUva2h0bWwvZWRpdGluZy9yZW1vdmVfbm9kZV9hdHRyaWJ1dGVfY29tbWFu
ZC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva2h0bWwvZWRpdGlu
Zy9yZW1vdmVfbm9kZV9hdHRyaWJ1dGVfY29tbWFuZC5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9u
IDEuNApkaWZmIC1wIC11IC1yMS40IFdlYkNvcmUva2h0bWwvZWRpdGluZy9yZW1vdmVfbm9kZV9h
dHRyaWJ1dGVfY29tbWFuZC5jcHAKLS0tIFdlYkNvcmUva2h0bWwvZWRpdGluZy9yZW1vdmVfbm9k
ZV9hdHRyaWJ1dGVfY29tbWFuZC5jcHAJMjcgU2VwIDIwMDUgMjI6Mzc6MTEgLTAwMDAJMS40Cisr
KyBXZWJDb3JlL2todG1sL2VkaXRpbmcvcmVtb3ZlX25vZGVfYXR0cmlidXRlX2NvbW1hbmQuY3Bw
CTMgT2N0IDIwMDUgMDc6MzU6MzAgLTAwMDAKQEAgLTIzLDYgKzIzLDcgQEAKICAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuIAogICovCiAKKyNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJyZW1vdmVfbm9kZV9h
dHRyaWJ1dGVfY29tbWFuZC5oIgogCiAjaW5jbHVkZSAieG1sL2RvbV9lbGVtZW50aW1wbC5oIgpJ
bmRleDogV2ViQ29yZS9raHRtbC9lZGl0aW5nL3JlbW92ZV9ub2RlX2NvbW1hbmQuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2todG1sL2VkaXRpbmcvcmVtb3ZlX25v
ZGVfY29tbWFuZC5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMgpkaWZmIC1wIC11IC1yMS4y
IFdlYkNvcmUva2h0bWwvZWRpdGluZy9yZW1vdmVfbm9kZV9jb21tYW5kLmNwcAotLS0gV2ViQ29y
ZS9raHRtbC9lZGl0aW5nL3JlbW92ZV9ub2RlX2NvbW1hbmQuY3BwCTI3IFNlcCAyMDA1IDIyOjM3
OjExIC0wMDAwCTEuMgorKysgV2ViQ29yZS9raHRtbC9lZGl0aW5nL3JlbW92ZV9ub2RlX2NvbW1h
bmQuY3BwCTMgT2N0IDIwMDUgMDc6MzU6MzAgLTAwMDAKQEAgLTIzLDYgKzIzLDcgQEAKICAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuIAogICovCiAKKyNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJyZW1vdmVf
bm9kZV9jb21tYW5kLmgiCiAKICNpbmNsdWRlICJ4bWwvZG9tX25vZGVpbXBsLmgiCkluZGV4OiBX
ZWJDb3JlL2todG1sL2VkaXRpbmcvcmVtb3ZlX25vZGVfcHJlc2VydmluZ19jaGlsZHJlbl9jb21t
YW5kLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9raHRtbC9lZGl0
aW5nL3JlbW92ZV9ub2RlX3ByZXNlcnZpbmdfY2hpbGRyZW5fY29tbWFuZC5jcHAsdgpyZXRyaWV2
aW5nIHJldmlzaW9uIDEuMgpkaWZmIC1wIC11IC1yMS4yIFdlYkNvcmUva2h0bWwvZWRpdGluZy9y
ZW1vdmVfbm9kZV9wcmVzZXJ2aW5nX2NoaWxkcmVuX2NvbW1hbmQuY3BwCi0tLSBXZWJDb3JlL2to
dG1sL2VkaXRpbmcvcmVtb3ZlX25vZGVfcHJlc2VydmluZ19jaGlsZHJlbl9jb21tYW5kLmNwcAky
NyBTZXAgMjAwNSAyMjozNzoxMSAtMDAwMAkxLjIKKysrIFdlYkNvcmUva2h0bWwvZWRpdGluZy9y
ZW1vdmVfbm9kZV9wcmVzZXJ2aW5nX2NoaWxkcmVuX2NvbW1hbmQuY3BwCTMgT2N0IDIwMDUgMDc6
MzU6MzAgLTAwMDAKQEAgLTIzLDYgKzIzLDcgQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAogICovCiAKKyNp
bmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJyZW1vdmVfbm9kZV9wcmVzZXJ2aW5nX2NoaWxk
cmVuX2NvbW1hbmQuaCIKIAogI2luY2x1ZGUgInhtbC9kb21fbm9kZWltcGwuaCIKSW5kZXg6IFdl
YkNvcmUva2h0bWwvZWRpdGluZy9yZXBsYWNlX3NlbGVjdGlvbl9jb21tYW5kLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9raHRtbC9lZGl0aW5nL3JlcGxhY2Vfc2Vs
ZWN0aW9uX2NvbW1hbmQuY3BwLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjE2CmRpZmYgLXAgLXUg
LXIxLjE2IFdlYkNvcmUva2h0bWwvZWRpdGluZy9yZXBsYWNlX3NlbGVjdGlvbl9jb21tYW5kLmNw
cAotLS0gV2ViQ29yZS9raHRtbC9lZGl0aW5nL3JlcGxhY2Vfc2VsZWN0aW9uX2NvbW1hbmQuY3Bw
CTI3IFNlcCAyMDA1IDIyOjM3OjExIC0wMDAwCTEuMTYKKysrIFdlYkNvcmUva2h0bWwvZWRpdGlu
Zy9yZXBsYWNlX3NlbGVjdGlvbl9jb21tYW5kLmNwcAkzIE9jdCAyMDA1IDA3OjM1OjMxIC0wMDAw
CkBAIC0yMyw2ICsyMyw3IEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKICAqLwogCisjaW5jbHVkZSAiY29u
ZmlnLmgiCiAjaW5jbHVkZSAicmVwbGFjZV9zZWxlY3Rpb25fY29tbWFuZC5oIgogCiAjaW5jbHVk
ZSAidmlzaWJsZV9wb3NpdGlvbi5oIgpJbmRleDogV2ViQ29yZS9raHRtbC9lZGl0aW5nL3NldF9u
b2RlX2F0dHJpYnV0ZV9jb21tYW5kLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3Qv
V2ViQ29yZS9raHRtbC9lZGl0aW5nL3NldF9ub2RlX2F0dHJpYnV0ZV9jb21tYW5kLmNwcCx2CnJl
dHJpZXZpbmcgcmV2aXNpb24gMS40CmRpZmYgLXAgLXUgLXIxLjQgV2ViQ29yZS9raHRtbC9lZGl0
aW5nL3NldF9ub2RlX2F0dHJpYnV0ZV9jb21tYW5kLmNwcAotLS0gV2ViQ29yZS9raHRtbC9lZGl0
aW5nL3NldF9ub2RlX2F0dHJpYnV0ZV9jb21tYW5kLmNwcAkyNyBTZXAgMjAwNSAyMjozNzoxMSAt
MDAwMAkxLjQKKysrIFdlYkNvcmUva2h0bWwvZWRpdGluZy9zZXRfbm9kZV9hdHRyaWJ1dGVfY29t
bWFuZC5jcHAJMyBPY3QgMjAwNSAwNzozNTozMSAtMDAwMApAQCAtMjMsNiArMjMsNyBAQAogICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4gCiAgKi8KIAorI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgInNldF9u
b2RlX2F0dHJpYnV0ZV9jb21tYW5kLmgiCiAKICNpbmNsdWRlICJ4bWwvZG9tX2VsZW1lbnRpbXBs
LmgiCkluZGV4OiBXZWJDb3JlL2todG1sL2VkaXRpbmcvc3BsaXRfZWxlbWVudF9jb21tYW5kLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9raHRtbC9lZGl0aW5nL3Nw
bGl0X2VsZW1lbnRfY29tbWFuZC5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMgpkaWZmIC1w
IC11IC1yMS4yIFdlYkNvcmUva2h0bWwvZWRpdGluZy9zcGxpdF9lbGVtZW50X2NvbW1hbmQuY3Bw
Ci0tLSBXZWJDb3JlL2todG1sL2VkaXRpbmcvc3BsaXRfZWxlbWVudF9jb21tYW5kLmNwcAkyNyBT
ZXAgMjAwNSAyMjozNzoxMSAtMDAwMAkxLjIKKysrIFdlYkNvcmUva2h0bWwvZWRpdGluZy9zcGxp
dF9lbGVtZW50X2NvbW1hbmQuY3BwCTMgT2N0IDIwMDUgMDc6MzU6MzEgLTAwMDAKQEAgLTIzLDYg
KzIzLDcgQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAogICovCiAKKyNpbmNsdWRlICJjb25maWcuaCIKICNp
bmNsdWRlICJzcGxpdF9lbGVtZW50X2NvbW1hbmQuaCIKIAogI2luY2x1ZGUgInhtbC9kb21fZWxl
bWVudGltcGwuaCIKSW5kZXg6IFdlYkNvcmUva2h0bWwvZWRpdGluZy9zcGxpdF90ZXh0X25vZGVf
Y29tbWFuZC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva2h0bWwv
ZWRpdGluZy9zcGxpdF90ZXh0X25vZGVfY29tbWFuZC5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9u
IDEuNApkaWZmIC1wIC11IC1yMS40IFdlYkNvcmUva2h0bWwvZWRpdGluZy9zcGxpdF90ZXh0X25v
ZGVfY29tbWFuZC5jcHAKLS0tIFdlYkNvcmUva2h0bWwvZWRpdGluZy9zcGxpdF90ZXh0X25vZGVf
Y29tbWFuZC5jcHAJMjcgU2VwIDIwMDUgMjI6Mzc6MTEgLTAwMDAJMS40CisrKyBXZWJDb3JlL2to
dG1sL2VkaXRpbmcvc3BsaXRfdGV4dF9ub2RlX2NvbW1hbmQuY3BwCTMgT2N0IDIwMDUgMDc6MzU6
MzEgLTAwMDAKQEAgLTIzLDYgKzIzLDcgQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAogICovCiAKKyNpbmNs
dWRlICJjb25maWcuaCIKICNpbmNsdWRlICJzcGxpdF90ZXh0X25vZGVfY29tbWFuZC5oIgogCiAj
aW5jbHVkZSAieG1sL2RvbV9kb2NpbXBsLmgiCkluZGV4OiBXZWJDb3JlL2todG1sL2VkaXRpbmcv
c3BsaXRfdGV4dF9ub2RlX2NvbnRhaW5pbmdfZWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmls
ZTogL2N2cy9yb290L1dlYkNvcmUva2h0bWwvZWRpdGluZy9zcGxpdF90ZXh0X25vZGVfY29udGFp
bmluZ19lbGVtZW50LmNwcCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4zCmRpZmYgLXAgLXUgLXIx
LjMgV2ViQ29yZS9raHRtbC9lZGl0aW5nL3NwbGl0X3RleHRfbm9kZV9jb250YWluaW5nX2VsZW1l
bnQuY3BwCi0tLSBXZWJDb3JlL2todG1sL2VkaXRpbmcvc3BsaXRfdGV4dF9ub2RlX2NvbnRhaW5p
bmdfZWxlbWVudC5jcHAJMjcgU2VwIDIwMDUgMjI6Mzc6MTEgLTAwMDAJMS4zCisrKyBXZWJDb3Jl
L2todG1sL2VkaXRpbmcvc3BsaXRfdGV4dF9ub2RlX2NvbnRhaW5pbmdfZWxlbWVudC5jcHAJMyBP
Y3QgMjAwNSAwNzozNTozMSAtMDAwMApAQCAtMjMsNiArMjMsNyBAQAogICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4g
CiAgKi8KIAorI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgInNwbGl0X3RleHRfbm9kZV9j
b250YWluaW5nX2VsZW1lbnRfY29tbWFuZC5oIgogCiAjaW5jbHVkZSAieG1sL2RvbV90ZXh0aW1w
bC5oIgpJbmRleDogV2ViQ29yZS9raHRtbC9lZGl0aW5nL3R5cGluZ19jb21tYW5kLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9raHRtbC9lZGl0aW5nL3R5cGluZ19j
b21tYW5kLmNwcCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4zCmRpZmYgLXAgLXUgLXIxLjMgV2Vi
Q29yZS9raHRtbC9lZGl0aW5nL3R5cGluZ19jb21tYW5kLmNwcAotLS0gV2ViQ29yZS9raHRtbC9l
ZGl0aW5nL3R5cGluZ19jb21tYW5kLmNwcAkyNyBTZXAgMjAwNSAyMjozNzoxMSAtMDAwMAkxLjMK
KysrIFdlYkNvcmUva2h0bWwvZWRpdGluZy90eXBpbmdfY29tbWFuZC5jcHAJMyBPY3QgMjAwNSAw
NzozNTozMSAtMDAwMApAQCAtMjMsNiArMjMsNyBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCiAgKi8KIAor
I2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgInR5cGluZ19jb21tYW5kLmgiCiAKICNpbmNs
dWRlICJpbnNlcnRfdGV4dF9jb21tYW5kLmgiCkluZGV4OiBXZWJDb3JlL2todG1sL2VkaXRpbmcv
dmlzaWJsZV9wb3NpdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNv
cmUva2h0bWwvZWRpdGluZy92aXNpYmxlX3Bvc2l0aW9uLmNwcCx2CnJldHJpZXZpbmcgcmV2aXNp
b24gMS41OQpkaWZmIC1wIC11IC1yMS41OSBXZWJDb3JlL2todG1sL2VkaXRpbmcvdmlzaWJsZV9w
b3NpdGlvbi5jcHAKLS0tIFdlYkNvcmUva2h0bWwvZWRpdGluZy92aXNpYmxlX3Bvc2l0aW9uLmNw
cAkyNyBTZXAgMjAwNSAyMjozNzoxMSAtMDAwMAkxLjU5CisrKyBXZWJDb3JlL2todG1sL2VkaXRp
bmcvdmlzaWJsZV9wb3NpdGlvbi5jcHAJMyBPY3QgMjAwNSAwNzozNTozMSAtMDAwMApAQCAtMjMs
NiArMjMsNyBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCiAgKi8KIAorI2luY2x1ZGUgImNvbmZpZy5oIgog
I2luY2x1ZGUgInZpc2libGVfcG9zaXRpb24uaCIKICNpbmNsdWRlICJ2aXNpYmxlX3VuaXRzLmgi
CiAKSW5kZXg6IFdlYkNvcmUva2h0bWwvZWRpdGluZy92aXNpYmxlX3JhbmdlLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9raHRtbC9lZGl0aW5nL3Zpc2libGVfcmFu
Z2UuY3BwLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjEKZGlmZiAtcCAtdSAtcjEuMSBXZWJDb3Jl
L2todG1sL2VkaXRpbmcvdmlzaWJsZV9yYW5nZS5jcHAKLS0tIFdlYkNvcmUva2h0bWwvZWRpdGlu
Zy92aXNpYmxlX3JhbmdlLmNwcAkyMyBTZXAgMjAwNCAxNjoxMDowMCAtMDAwMAkxLjEKKysrIFdl
YkNvcmUva2h0bWwvZWRpdGluZy92aXNpYmxlX3JhbmdlLmNwcAkzIE9jdCAyMDA1IDA3OjM1OjMx
IC0wMDAwCkBAIC0yMyw1ICsyMyw2IEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKICAqLwogCisjaW5jbHVk
ZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAidmlzaWJsZV9yYW5nZS5oIgogCkluZGV4OiBXZWJDb3Jl
L2todG1sL2VkaXRpbmcvdmlzaWJsZV90ZXh0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3Zz
L3Jvb3QvV2ViQ29yZS9raHRtbC9lZGl0aW5nL3Zpc2libGVfdGV4dC5jcHAsdgpyZXRyaWV2aW5n
IHJldmlzaW9uIDEuMzcKZGlmZiAtcCAtdSAtcjEuMzcgV2ViQ29yZS9raHRtbC9lZGl0aW5nL3Zp
c2libGVfdGV4dC5jcHAKLS0tIFdlYkNvcmUva2h0bWwvZWRpdGluZy92aXNpYmxlX3RleHQuY3Bw
CTE2IFNlcCAyMDA1IDIyOjQyOjA3IC0wMDAwCTEuMzcKKysrIFdlYkNvcmUva2h0bWwvZWRpdGlu
Zy92aXNpYmxlX3RleHQuY3BwCTMgT2N0IDIwMDUgMDc6MzU6MzIgLTAwMDAKQEAgLTIzLDYgKzIz
LDcgQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuIAogICovCiAKKyNpbmNsdWRlICJjb25maWcuaCIKICNpbmNs
dWRlICJ2aXNpYmxlX3RleHQuaCIKIAogI2luY2x1ZGUgImh0bWxuYW1lcy5oIgpAQCAtNTUsNyAr
NTYsNyBAQCBjb25zdCB1bnNpZ25lZCBzaG9ydCBub25CcmVha2luZ1NwYWNlID0gCiBjbGFzcyBD
aXJjdWxhclNlYXJjaEJ1ZmZlciB7CiBwdWJsaWM6CiAgICAgQ2lyY3VsYXJTZWFyY2hCdWZmZXIo
Y29uc3QgUVN0cmluZyAmdGFyZ2V0LCBib29sIGlzQ2FzZVNlbnNpdGl2ZSk7Ci0gICAgfkNpcmN1
bGFyU2VhcmNoQnVmZmVyKCkgeyBmcmVlKG1fYnVmZmVyKTsgfQorICAgIH5DaXJjdWxhclNlYXJj
aEJ1ZmZlcigpIHsgZmFzdEZyZWUobV9idWZmZXIpOyB9CiAKICAgICB2b2lkIGNsZWFyKCkgeyBt
X2N1cnNvciA9IG1fYnVmZmVyOyBtX2J1ZmZlckZ1bGwgPSBmYWxzZTsgfQogICAgIHZvaWQgYXBw
ZW5kKGludCBsZW5ndGgsIGNvbnN0IFFDaGFyICpjaGFyYWN0ZXJzKTsKQEAgLTkwOCw3ICs5MDks
NyBAQCBDaXJjdWxhclNlYXJjaEJ1ZmZlcjo6Q2lyY3VsYXJTZWFyY2hCdWZmCiAgICAgbV90YXJn
ZXQucmVwbGFjZShub25CcmVha2luZ1NwYWNlLCAnICcpOwogICAgIG1faXNDYXNlU2Vuc2l0aXZl
ID0gaXNDYXNlU2Vuc2l0aXZlOwogCi0gICAgbV9idWZmZXIgPSBzdGF0aWNfY2FzdDxRQ2hhciAq
PihtYWxsb2Mocy5sZW5ndGgoKSAqIHNpemVvZihRQ2hhcikpKTsKKyAgICBtX2J1ZmZlciA9IHN0
YXRpY19jYXN0PFFDaGFyICo+KGZhc3RNYWxsb2Mocy5sZW5ndGgoKSAqIHNpemVvZihRQ2hhcikp
KTsKICAgICBtX2N1cnNvciA9IG1fYnVmZmVyOwogICAgIG1fYnVmZmVyRnVsbCA9IGZhbHNlOwog
fQpJbmRleDogV2ViQ29yZS9raHRtbC9lZGl0aW5nL3Zpc2libGVfdW5pdHMuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2todG1sL2VkaXRpbmcvdmlzaWJsZV91bml0
cy5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNDAKZGlmZiAtcCAtdSAtcjEuNDAgV2ViQ29y
ZS9raHRtbC9lZGl0aW5nL3Zpc2libGVfdW5pdHMuY3BwCi0tLSBXZWJDb3JlL2todG1sL2VkaXRp
bmcvdmlzaWJsZV91bml0cy5jcHAJMTYgU2VwIDIwMDUgMjI6NDI6MDcgLTAwMDAJMS40MAorKysg
V2ViQ29yZS9raHRtbC9lZGl0aW5nL3Zpc2libGVfdW5pdHMuY3BwCTMgT2N0IDIwMDUgMDc6MzU6
MzIgLTAwMDAKQEAgLTIzLDYgKzIzLDcgQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAogICovCiAKKyNpbmNs
dWRlICJjb25maWcuaCIKICNpbmNsdWRlICJ2aXNpYmxlX3VuaXRzLmgiCiAKICNpbmNsdWRlIDxx
c3RyaW5nLmg+CkluZGV4OiBXZWJDb3JlL2todG1sL2VkaXRpbmcvd3JhcF9jb250ZW50c19pbl9k
dW1teV9zcGFuX2NvbW1hbmQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJD
b3JlL2todG1sL2VkaXRpbmcvd3JhcF9jb250ZW50c19pbl9kdW1teV9zcGFuX2NvbW1hbmQuY3Bw
LHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjIKZGlmZiAtcCAtdSAtcjEuMiBXZWJDb3JlL2todG1s
L2VkaXRpbmcvd3JhcF9jb250ZW50c19pbl9kdW1teV9zcGFuX2NvbW1hbmQuY3BwCi0tLSBXZWJD
b3JlL2todG1sL2VkaXRpbmcvd3JhcF9jb250ZW50c19pbl9kdW1teV9zcGFuX2NvbW1hbmQuY3Bw
CTI3IFNlcCAyMDA1IDIyOjM3OjEyIC0wMDAwCTEuMgorKysgV2ViQ29yZS9raHRtbC9lZGl0aW5n
L3dyYXBfY29udGVudHNfaW5fZHVtbXlfc3Bhbl9jb21tYW5kLmNwcAkzIE9jdCAyMDA1IDA3OjM1
OjMyIC0wMDAwCkBAIC0yMyw2ICsyMyw3IEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKICAqLwogCisjaW5j
bHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAid3JhcF9jb250ZW50c19pbl9kdW1teV9zcGFuX2Nv
bW1hbmQuaCIKIAogI2luY2x1ZGUgImFwcGx5X3N0eWxlX2NvbW1hbmQuaCIKSW5kZXg6IFdlYkNv
cmUva2h0bWwvaHRtbC9odG1sX2Jhc2VpbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3Zz
L3Jvb3QvV2ViQ29yZS9raHRtbC9odG1sL2h0bWxfYmFzZWltcGwuY3BwLHYKcmV0cmlldmluZyBy
ZXZpc2lvbiAxLjgwCmRpZmYgLXAgLXUgLXIxLjgwIFdlYkNvcmUva2h0bWwvaHRtbC9odG1sX2Jh
c2VpbXBsLmNwcAotLS0gV2ViQ29yZS9raHRtbC9odG1sL2h0bWxfYmFzZWltcGwuY3BwCTMxIEF1
ZyAyMDA1IDA0OjM4OjM4IC0wMDAwCTEuODAKKysrIFdlYkNvcmUva2h0bWwvaHRtbC9odG1sX2Jh
c2VpbXBsLmNwcAkzIE9jdCAyMDA1IDA3OjM1OjMzIC0wMDAwCkBAIC0yNCw2ICsyNCw3IEBACiAg
Ki8KIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAorI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUg
Imh0bWxfYmFzZWltcGwuaCIKIAogI2luY2x1ZGUgImh0bWwvaHRtbF9kb2N1bWVudGltcGwuaCIK
SW5kZXg6IFdlYkNvcmUva2h0bWwvaHRtbC9odG1sX2Jsb2NraW1wbC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpS
Q1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva2h0bWwvaHRtbC9odG1sX2Jsb2NraW1wbC5jcHAs
dgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMjUKZGlmZiAtcCAtdSAtcjEuMjUgV2ViQ29yZS9raHRt
bC9odG1sL2h0bWxfYmxvY2tpbXBsLmNwcAotLS0gV2ViQ29yZS9raHRtbC9odG1sL2h0bWxfYmxv
Y2tpbXBsLmNwcAkxNiBTZXAgMjAwNSAyMjo0MjoxMSAtMDAwMAkxLjI1CisrKyBXZWJDb3JlL2to
dG1sL2h0bWwvaHRtbF9ibG9ja2ltcGwuY3BwCTMgT2N0IDIwMDUgMDc6MzU6MzMgLTAwMDAKQEAg
LTIzLDYgKzIzLDcgQEAKICAqLwogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogLy8jZGVmaW5lIERFQlVH
CisjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiaHRtbF9ibG9ja2ltcGwuaCIKICNpbmNs
dWRlICJodG1sX2RvY3VtZW50aW1wbC5oIgogI2luY2x1ZGUgImNzcy9jc3NzdHlsZXNlbGVjdG9y
LmgiCkluZGV4OiBXZWJDb3JlL2todG1sL2h0bWwvaHRtbF9jYW52YXNpbXBsLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9raHRtbC9odG1sL2h0bWxfY2FudmFzaW1w
bC5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNwpkaWZmIC1wIC11IC1yMS43IFdlYkNvcmUv
a2h0bWwvaHRtbC9odG1sX2NhbnZhc2ltcGwuY3BwCi0tLSBXZWJDb3JlL2todG1sL2h0bWwvaHRt
bF9jYW52YXNpbXBsLmNwcAkzMCBKdWwgMjAwNSAwMjozMzoxNyAtMDAwMAkxLjcKKysrIFdlYkNv
cmUva2h0bWwvaHRtbC9odG1sX2NhbnZhc2ltcGwuY3BwCTMgT2N0IDIwMDUgMDc6MzU6MzMgLTAw
MDAKQEAgLTIzLDYgKzIzLDcgQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAogICovCiAKKyNpbmNsdWRlICJj
b25maWcuaCIKICNpbmNsdWRlICJodG1sL2h0bWxfY2FudmFzaW1wbC5oIgogI2luY2x1ZGUgImh0
bWwvaHRtbF9kb2N1bWVudGltcGwuaCIKIApJbmRleDogV2ViQ29yZS9raHRtbC9odG1sL2h0bWxf
ZG9jdW1lbnRpbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9r
aHRtbC9odG1sL2h0bWxfZG9jdW1lbnRpbXBsLmNwcCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS43
MApkaWZmIC1wIC11IC1yMS43MCBXZWJDb3JlL2todG1sL2h0bWwvaHRtbF9kb2N1bWVudGltcGwu
Y3BwCi0tLSBXZWJDb3JlL2todG1sL2h0bWwvaHRtbF9kb2N1bWVudGltcGwuY3BwCTI4IFNlcCAy
MDA1IDIyOjAxOjMyIC0wMDAwCTEuNzAKKysrIFdlYkNvcmUva2h0bWwvaHRtbC9odG1sX2RvY3Vt
ZW50aW1wbC5jcHAJMyBPY3QgMjAwNSAwNzozNTozMyAtMDAwMApAQCAtNTIsNiArNTIsNyBAQAog
ICogdmVyc2lvbiBvZiB0aGlzIGZpbGUgdW5kZXIgYW55IG9mIHRoZSBMR1BMLCB0aGUgTVBMIG9y
IHRoZSBHUEwuCiAgKi8KIAorI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgImh0bWwvaHRt
bF9kb2N1bWVudGltcGwuaCIKICNpbmNsdWRlICJodG1sL2h0bWxfaW1hZ2VpbXBsLmgiCiAjaW5j
bHVkZSAiaHRtbC9odG1sX2hlYWRpbXBsLmgiCkluZGV4OiBXZWJDb3JlL2todG1sL2h0bWwvaHRt
bF9lbGVtZW50aW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUv
a2h0bWwvaHRtbC9odG1sX2VsZW1lbnRpbXBsLmNwcCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4x
MDYKZGlmZiAtcCAtdSAtcjEuMTA2IFdlYkNvcmUva2h0bWwvaHRtbC9odG1sX2VsZW1lbnRpbXBs
LmNwcAotLS0gV2ViQ29yZS9raHRtbC9odG1sL2h0bWxfZWxlbWVudGltcGwuY3BwCTI4IFNlcCAy
MDA1IDIyOjAxOjMzIC0wMDAwCTEuMTA2CisrKyBXZWJDb3JlL2todG1sL2h0bWwvaHRtbF9lbGVt
ZW50aW1wbC5jcHAJMyBPY3QgMjAwNSAwNzozNTozNCAtMDAwMApAQCAtMjgsNiArMjgsNyBAQAog
Ly8jZGVmaW5lIEVWRU5UX0RFQlVHCiAvLyNkZWZpbmUgVU5TVVBQT1JURURfQVRUUgogCisjaW5j
bHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiaHRtbC9odG1sX2VsZW1lbnRpbXBsLmgiCiAjaW5j
bHVkZSAiaHRtbC9odG1sX2RvY3VtZW50aW1wbC5oIgogI2luY2x1ZGUgImh0bWwvaHRtbHRva2Vu
aXplci5oIgpJbmRleDogV2ViQ29yZS9raHRtbC9odG1sL2h0bWxfZm9ybWltcGwuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2todG1sL2h0bWwvaHRtbF9mb3JtaW1w
bC5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMTk1CmRpZmYgLXAgLXUgLXIxLjE5NSBXZWJD
b3JlL2todG1sL2h0bWwvaHRtbF9mb3JtaW1wbC5jcHAKLS0tIFdlYkNvcmUva2h0bWwvaHRtbC9o
dG1sX2Zvcm1pbXBsLmNwcAkyOCBTZXAgMjAwNSAyMjowMTozNCAtMDAwMAkxLjE5NQorKysgV2Vi
Q29yZS9raHRtbC9odG1sL2h0bWxfZm9ybWltcGwuY3BwCTMgT2N0IDIwMDUgMDc6MzU6MzUgLTAw
MDAKQEAgLTI2LDYgKzI2LDcgQEAKICN1bmRlZiBGT1JNU19ERUJVRwogLy8jZGVmaW5lIEZPUk1T
X0RFQlVHCiAKKyNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJodG1sL2h0bWxfZm9ybWlt
cGwuaCIKIAogI2luY2x1ZGUgImtodG1sdmlldy5oIgpJbmRleDogV2ViQ29yZS9raHRtbC9odG1s
L2h0bWxfaGVhZGltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3Jl
L2todG1sL2h0bWwvaHRtbF9oZWFkaW1wbC5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNTYK
ZGlmZiAtcCAtdSAtcjEuNTYgV2ViQ29yZS9raHRtbC9odG1sL2h0bWxfaGVhZGltcGwuY3BwCi0t
LSBXZWJDb3JlL2todG1sL2h0bWwvaHRtbF9oZWFkaW1wbC5jcHAJMjkgQXVnIDIwMDUgMjE6Mjk6
MTggLTAwMDAJMS41NgorKysgV2ViQ29yZS9raHRtbC9odG1sL2h0bWxfaGVhZGltcGwuY3BwCTMg
T2N0IDIwMDUgMDc6MzU6MzYgLTAwMDAKQEAgLTIzLDYgKzIzLDcgQEAKICAqLwogLy8gLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQogCisjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiaHRtbC9odG1sX2hl
YWRpbXBsLmgiCiAjaW5jbHVkZSAiaHRtbC9odG1sX2RvY3VtZW50aW1wbC5oIgogI2luY2x1ZGUg
InhtbC9kb21fdGV4dGltcGwuaCIKSW5kZXg6IFdlYkNvcmUva2h0bWwvaHRtbC9odG1sX2ltYWdl
aW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva2h0bWwvaHRt
bC9odG1sX2ltYWdlaW1wbC5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNTEKZGlmZiAtcCAt
dSAtcjEuNTEgV2ViQ29yZS9raHRtbC9odG1sL2h0bWxfaW1hZ2VpbXBsLmNwcAotLS0gV2ViQ29y
ZS9raHRtbC9odG1sL2h0bWxfaW1hZ2VpbXBsLmNwcAkxNiBTZXAgMjAwNSAyMjo0MjoxMSAtMDAw
MAkxLjUxCisrKyBXZWJDb3JlL2todG1sL2h0bWwvaHRtbF9pbWFnZWltcGwuY3BwCTMgT2N0IDIw
MDUgMDc6MzU6MzYgLTAwMDAKQEAgLTIxLDYgKzIxLDcgQEAKICAqIEJvc3RvbiwgTUEgMDIxMTEt
MTMwNywgVVNBLgogICovCiAKKyNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJodG1sL2h0
bWxfaW1hZ2VpbXBsLmgiCiAjaW5jbHVkZSAiaHRtbC9odG1sX2Zvcm1pbXBsLmgiCiAjaW5jbHVk
ZSAiaHRtbC9odG1sX2RvY3VtZW50aW1wbC5oIgpJbmRleDogV2ViQ29yZS9raHRtbC9odG1sL2h0
bWxfaW5saW5laW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUv
a2h0bWwvaHRtbC9odG1sX2lubGluZWltcGwuY3BwLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjUx
CmRpZmYgLXAgLXUgLXIxLjUxIFdlYkNvcmUva2h0bWwvaHRtbC9odG1sX2lubGluZWltcGwuY3Bw
Ci0tLSBXZWJDb3JlL2todG1sL2h0bWwvaHRtbF9pbmxpbmVpbXBsLmNwcAkxNiBTZXAgMjAwNSAy
Mjo0MjoxMSAtMDAwMAkxLjUxCisrKyBXZWJDb3JlL2todG1sL2h0bWwvaHRtbF9pbmxpbmVpbXBs
LmNwcAkzIE9jdCAyMDA1IDA3OjM1OjM2IC0wMDAwCkBAIC0yMyw2ICsyMyw3IEBACiAgKi8KIC8v
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KIAorI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgImh0bWwv
aHRtbF9pbmxpbmVpbXBsLmgiCiAjaW5jbHVkZSAiaHRtbC9odG1sX2ltYWdlaW1wbC5oIgogI2lu
Y2x1ZGUgImh0bWwvaHRtbF9kb2N1bWVudGltcGwuaCIKSW5kZXg6IFdlYkNvcmUva2h0bWwvaHRt
bC9odG1sX2xpc3RpbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29y
ZS9raHRtbC9odG1sL2h0bWxfbGlzdGltcGwuY3BwLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjE1
CmRpZmYgLXAgLXUgLXIxLjE1IFdlYkNvcmUva2h0bWwvaHRtbC9odG1sX2xpc3RpbXBsLmNwcAot
LS0gV2ViQ29yZS9raHRtbC9odG1sL2h0bWxfbGlzdGltcGwuY3BwCTE2IFNlcCAyMDA1IDIyOjQy
OjEyIC0wMDAwCTEuMTUKKysrIFdlYkNvcmUva2h0bWwvaHRtbC9odG1sX2xpc3RpbXBsLmNwcAkz
IE9jdCAyMDA1IDA3OjM1OjM2IC0wMDAwCkBAIC0yMCw2ICsyMCw3IEBACiAgKiBCb3N0b24sIE1B
IDAyMTExLTEzMDcsIFVTQS4KICAqCiAgKi8KKyNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRl
ICJodG1sX2xpc3RpbXBsLmgiCiAKICNpbmNsdWRlICJjc3MvY3NzcHJvcGVydGllcy5oIgpJbmRl
eDogV2ViQ29yZS9raHRtbC9odG1sL2h0bWxfbWlzY2ltcGwuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZp
bGU6IC9jdnMvcm9vdC9XZWJDb3JlL2todG1sL2h0bWwvaHRtbF9taXNjaW1wbC5jcHAsdgpyZXRy
aWV2aW5nIHJldmlzaW9uIDEuMzYKZGlmZiAtcCAtdSAtcjEuMzYgV2ViQ29yZS9raHRtbC9odG1s
L2h0bWxfbWlzY2ltcGwuY3BwCi0tLSBXZWJDb3JlL2todG1sL2h0bWwvaHRtbF9taXNjaW1wbC5j
cHAJMTYgU2VwIDIwMDUgMjI6NDI6MTIgLTAwMDAJMS4zNgorKysgV2ViQ29yZS9raHRtbC9odG1s
L2h0bWxfbWlzY2ltcGwuY3BwCTMgT2N0IDIwMDUgMDc6MzU6MzcgLTAwMDAKQEAgLTIyLDYgKzIy
LDcgQEAKICAqCiAgKi8KIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyNpbmNsdWRlICJjb25maWcuaCIK
ICNpbmNsdWRlICJodG1sL2h0bWxfbWlzY2ltcGwuaCIKICNpbmNsdWRlICJodG1sL2h0bWxfZm9y
bWltcGwuaCIKICNpbmNsdWRlICJodG1sL2h0bWxfaW1hZ2VpbXBsLmgiCkluZGV4OiBXZWJDb3Jl
L2todG1sL2h0bWwvaHRtbF9vYmplY3RpbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3Zz
L3Jvb3QvV2ViQ29yZS9raHRtbC9odG1sL2h0bWxfb2JqZWN0aW1wbC5jcHAsdgpyZXRyaWV2aW5n
IHJldmlzaW9uIDEuNzkKZGlmZiAtcCAtdSAtcjEuNzkgV2ViQ29yZS9raHRtbC9odG1sL2h0bWxf
b2JqZWN0aW1wbC5jcHAKLS0tIFdlYkNvcmUva2h0bWwvaHRtbC9odG1sX29iamVjdGltcGwuY3Bw
CTE2IFNlcCAyMDA1IDIyOjQyOjEyIC0wMDAwCTEuNzkKKysrIFdlYkNvcmUva2h0bWwvaHRtbC9o
dG1sX29iamVjdGltcGwuY3BwCTMgT2N0IDIwMDUgMDc6MzU6MzcgLTAwMDAKQEAgLTIxLDYgKzIx
LDcgQEAKICAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQ
bGFjZSAtIFN1aXRlIDMzMCwKICAqIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLgogICovCisj
aW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiaHRtbC9odG1sX29iamVjdGltcGwuaCIKIAog
I2luY2x1ZGUgImtodG1sX3BhcnQuaCIKSW5kZXg6IFdlYkNvcmUva2h0bWwvaHRtbC9odG1sX3Rh
YmxlaW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva2h0bWwv
aHRtbC9odG1sX3RhYmxlaW1wbC5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNjUKZGlmZiAt
cCAtdSAtcjEuNjUgV2ViQ29yZS9raHRtbC9odG1sL2h0bWxfdGFibGVpbXBsLmNwcAotLS0gV2Vi
Q29yZS9raHRtbC9odG1sL2h0bWxfdGFibGVpbXBsLmNwcAkyMSBTZXAgMjAwNSAxNzozMjo0MCAt
MDAwMAkxLjY1CisrKyBXZWJDb3JlL2todG1sL2h0bWwvaHRtbF90YWJsZWltcGwuY3BwCTMgT2N0
IDIwMDUgMDc6MzU6MzggLTAwMDAKQEAgLTI0LDYgKzI0LDcgQEAKICAqIEJvc3RvbiwgTUEgMDIx
MTEtMTMwNywgVVNBLgogICovCiAKKyNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJodG1s
L2h0bWxfZG9jdW1lbnRpbXBsLmgiCiAjaW5jbHVkZSAiaHRtbC9odG1sX3RhYmxlaW1wbC5oIgog
CkluZGV4OiBXZWJDb3JlL2todG1sL2h0bWwvaHRtbGZhY3RvcnkuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNT
IGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2todG1sL2h0bWwvaHRtbGZhY3RvcnkuY3BwLHYKcmV0
cmlldmluZyByZXZpc2lvbiAxLjcKZGlmZiAtcCAtdSAtcjEuNyBXZWJDb3JlL2todG1sL2h0bWwv
aHRtbGZhY3RvcnkuY3BwCi0tLSBXZWJDb3JlL2todG1sL2h0bWwvaHRtbGZhY3RvcnkuY3BwCTI4
IFNlcCAyMDA1IDIyOjAxOjM2IC0wMDAwCTEuNworKysgV2ViQ29yZS9raHRtbC9odG1sL2h0bWxm
YWN0b3J5LmNwcAkzIE9jdCAyMDA1IDA3OjM1OjM4IC0wMDAwCkBAIC0yMCw2ICsyMCw3IEBACiAg
KgogICovCiAKKyNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJodG1sZmFjdG9yeS5oIgog
I2luY2x1ZGUgImRvbV9kb2NpbXBsLmgiCiAKSW5kZXg6IFdlYkNvcmUva2h0bWwvaHRtbC9odG1s
bmFtZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2todG1sL2h0
bWwvaHRtbG5hbWVzLmNwcCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS44CmRpZmYgLXAgLXUgLXIx
LjggV2ViQ29yZS9raHRtbC9odG1sL2h0bWxuYW1lcy5jcHAKLS0tIFdlYkNvcmUva2h0bWwvaHRt
bC9odG1sbmFtZXMuY3BwCTI3IEF1ZyAyMDA1IDAzOjIxOjAxIC0wMDAwCTEuOAorKysgV2ViQ29y
ZS9raHRtbC9odG1sL2h0bWxuYW1lcy5jcHAJMyBPY3QgMjAwNSAwNzozNTozOCAtMDAwMApAQCAt
MjIsNiArMjIsNyBAQAogCiAjZGVmaW5lIERPTV9IVE1MTkFNRVNfSElERV9HTE9CQUxTIDEKIAor
I2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgImh0bWxuYW1lcy5oIgogCiBuYW1lc3BhY2Ug
RE9NIHsgbmFtZXNwYWNlIEhUTUxOYW1lcyB7CkluZGV4OiBXZWJDb3JlL2todG1sL2h0bWwvaHRt
bHBhcnNlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva2h0bWwv
aHRtbC9odG1scGFyc2VyLmNwcCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4xMTQKZGlmZiAtcCAt
dSAtcjEuMTE0IFdlYkNvcmUva2h0bWwvaHRtbC9odG1scGFyc2VyLmNwcAotLS0gV2ViQ29yZS9r
aHRtbC9odG1sL2h0bWxwYXJzZXIuY3BwCTI4IFNlcCAyMDA1IDIyOjAxOjM3IC0wMDAwCTEuMTE0
CisrKyBXZWJDb3JlL2todG1sL2h0bWwvaHRtbHBhcnNlci5jcHAJMyBPY3QgMjAwNSAwNzozNToz
OSAtMDAwMApAQCAtMjcsNiArMjcsNyBAQAogLy8gS0RFIEhUTUwgV2lkZ2V0IC0tIEhUTUwgUGFy
c2VyCiAvLyNkZWZpbmUgUEFSU0VSX0RFQlVHCiAKKyNpbmNsdWRlICJjb25maWcuaCIKICNpbmNs
dWRlICJodG1sL2h0bWxwYXJzZXIuaCIKIAogI2luY2x1ZGUgImRvbS9kb21fZXhjZXB0aW9uLmgi
CkBAIC00Nyw3ICs0OCw2IEBACiAjaW5jbHVkZSAiaHRtbGZhY3RvcnkuaCIKICNpbmNsdWRlICJ4
bWwvZG9tX3RleHRpbXBsLmgiCiAjaW5jbHVkZSAieG1sL2RvbV9ub2RlaW1wbC5oIgotI2luY2x1
ZGUgPGt4bWxjb3JlL0Zhc3RNYWxsb2MuaD4KICNpbmNsdWRlIDxreG1sY29yZS9IYXNoU2V0Lmg+
CiAjaW5jbHVkZSAiaHRtbC9odG1sdG9rZW5pemVyLmgiCiAjaW5jbHVkZSAia2h0bWx2aWV3Lmgi
CkBAIC03MSw3ICs3MSw3IEBAIHVzaW5nIG5hbWVzcGFjZSBraHRtbDsKIC8qKgogICogQGludGVy
bmFsCiAgKi8KLWNsYXNzIEhUTUxTdGFja0VsZW0gOiBwdWJsaWMgRmFzdEFsbG9jYXRlZAorY2xh
c3MgSFRNTFN0YWNrRWxlbQogewogcHVibGljOgogICAgIEhUTUxTdGFja0VsZW0oY29uc3QgQXRv
bWljU3RyaW5nJiBfdGFnTmFtZSwKSW5kZXg6IFdlYkNvcmUva2h0bWwvaHRtbC9odG1sdG9rZW5p
emVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9raHRtbC9odG1s
L2h0bWx0b2tlbml6ZXIuY3BwLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjExNQpkaWZmIC1wIC11
IC1yMS4xMTUgV2ViQ29yZS9raHRtbC9odG1sL2h0bWx0b2tlbml6ZXIuY3BwCi0tLSBXZWJDb3Jl
L2todG1sL2h0bWwvaHRtbHRva2VuaXplci5jcHAJMjMgU2VwIDIwMDUgMTc6Mzg6MDYgLTAwMDAJ
MS4xMTUKKysrIFdlYkNvcmUva2h0bWwvaHRtbC9odG1sdG9rZW5pemVyLmNwcAkzIE9jdCAyMDA1
IDA3OjM1OjM5IC0wMDAwCkBAIC0zMSw5ICszMSw3IEBACiAvLyNkZWZpbmUgVE9LRU5fREVCVUcg
MQogLy8jZGVmaW5lIFRPS0VOX0RFQlVHIDIKIAotI2lmZGVmIEhBVkVfQ09ORklHX0gKICNpbmNs
dWRlICJjb25maWcuaCIKLSNlbmRpZgogCiAvLyNpbmNsdWRlIDxzdHJpbmcuaD4KICNpbmNsdWRl
ICJodG1sL2h0bWx0b2tlbml6ZXIuaCIKQEAgLTk0LDkgKzkyLDkgQEAgc3RhdGljIGNvbnN0IGNo
YXIgc3R5bGVFbmQgW10gPSAgIjwvc3R5bAogc3RhdGljIGNvbnN0IGNoYXIgdGV4dGFyZWFFbmQg
W10gPSAiPC90ZXh0YXJlYSI7CiBzdGF0aWMgY29uc3QgY2hhciB0aXRsZUVuZCBbXSA9ICI8L3Rp
dGxlIjsKIAotI2RlZmluZSBLSFRNTF9BTExPQ19RQ0hBUl9WRUMoIE4gKSAoUUNoYXIqKSBtYWxs
b2MoIHNpemVvZihRQ2hhcikqKCBOICkgKQotI2RlZmluZSBLSFRNTF9SRUFMTE9DX1FDSEFSX1ZF
QyhQLCBOICkgKFFDaGFyKikgUCA9IHJlYWxsb2MocCwgc2l6ZW9mKFFDaGFyKSooIE4gKSkKLSNk
ZWZpbmUgS0hUTUxfREVMRVRFX1FDSEFSX1ZFQyggUCApIGZyZWUoKGNoYXIqKSggUCApKQorI2Rl
ZmluZSBLSFRNTF9BTExPQ19RQ0hBUl9WRUMoIE4gKSAoUUNoYXIqKSBmYXN0TWFsbG9jKCBzaXpl
b2YoUUNoYXIpKiggTiApICkKKyNkZWZpbmUgS0hUTUxfUkVBTExPQ19RQ0hBUl9WRUMoUCwgTiAp
IChRQ2hhciopIFAgPSBmYXN0UmVhbGxvYyhwLCBzaXplb2YoUUNoYXIpKiggTiApKQorI2RlZmlu
ZSBLSFRNTF9ERUxFVEVfUUNIQVJfVkVDKCBQICkgZmFzdEZyZWUoKGNoYXIqKSggUCApKQogCiAv
LyBGdWxsIHN1cHBvcnQgZm9yIE1TIFdpbmRvd3MgZXh0ZW5zaW9ucyB0byBMYXRpbi0xLgogLy8g
VGVjaG5pY2FsbHkgdGhlc2UgZXh0ZW5zaW9ucyBzaG91bGQgb25seSBiZSBhY3RpdmF0ZWQgZm9y
IHBhZ2VzCkBAIC0xNzU2LDcgKzE3NTQsNyBAQCB2b2lkIEhUTUxUb2tlbml6ZXI6OmVubGFyZ2VC
dWZmZXIoaW50IGxlCiAgICAgaW50IG5ld3NpemUgPSBrTWF4KHNpemUqMiwgc2l6ZStsZW4pOwog
ICAgIGludCBvbGRvZmZzID0gKGRlc3QgLSBidWZmZXIpOwogCi0gICAgYnVmZmVyID0gKFFDaGFy
KilyZWFsbG9jKGJ1ZmZlciwgbmV3c2l6ZSpzaXplb2YoUUNoYXIpKTsKKyAgICBidWZmZXIgPSAo
UUNoYXIqKWZhc3RSZWFsbG9jKGJ1ZmZlciwgbmV3c2l6ZSpzaXplb2YoUUNoYXIpKTsKICAgICBk
ZXN0ID0gYnVmZmVyICsgb2xkb2ZmczsKICAgICBzaXplID0gbmV3c2l6ZTsKIH0KQEAgLTE3NjQs
NyArMTc2Miw3IEBAIHZvaWQgSFRNTFRva2VuaXplcjo6ZW5sYXJnZUJ1ZmZlcihpbnQgbGUKIHZv
aWQgSFRNTFRva2VuaXplcjo6ZW5sYXJnZVNjcmlwdEJ1ZmZlcihpbnQgbGVuKQogewogICAgIGlu
dCBuZXdzaXplID0ga01heChzY3JpcHRDb2RlTWF4U2l6ZSoyLCBzY3JpcHRDb2RlTWF4U2l6ZSts
ZW4pOwotICAgIHNjcmlwdENvZGUgPSAoUUNoYXIqKXJlYWxsb2Moc2NyaXB0Q29kZSwgbmV3c2l6
ZSpzaXplb2YoUUNoYXIpKTsKKyAgICBzY3JpcHRDb2RlID0gKFFDaGFyKilmYXN0UmVhbGxvYyhz
Y3JpcHRDb2RlLCBuZXdzaXplKnNpemVvZihRQ2hhcikpOwogICAgIHNjcmlwdENvZGVNYXhTaXpl
ID0gbmV3c2l6ZTsKIH0KIApJbmRleDogV2ViQ29yZS9raHRtbC9taXNjL2FyZW5hLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9raHRtbC9taXNjL2FyZW5hLmNwcCx2
CnJldHJpZXZpbmcgcmV2aXNpb24gMS42CmRpZmYgLXAgLXUgLXIxLjYgV2ViQ29yZS9raHRtbC9t
aXNjL2FyZW5hLmNwcAotLS0gV2ViQ29yZS9raHRtbC9taXNjL2FyZW5hLmNwcAkyNyBTZXAgMjAw
NSAyMjozNzoxOCAtMDAwMAkxLjYKKysrIFdlYkNvcmUva2h0bWwvbWlzYy9hcmVuYS5jcHAJMyBP
Y3QgMjAwNSAwNzozNTo0MCAtMDAwMApAQCAtNDIsNiArNDIsNyBAQAogICogRGF2aWQgUi4gSGFu
c29uLCBTb2Z0d2FyZSAtLSBQcmFjdGljZSBhbmQgRXhwZXJpZW5jZSwgVm9sLiAyMCgxKS4KICAq
LwogCisjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiYXJlbmEuaCIKIAogI2luY2x1ZGUg
PGFsZ29yaXRobT4KSW5kZXg6IFdlYkNvcmUva2h0bWwvbWlzYy9hcmVuYS5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
UkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2todG1sL21pc2MvYXJlbmEuaCx2CnJldHJpZXZp
bmcgcmV2aXNpb24gMS4zCmRpZmYgLXAgLXUgLXIxLjMgV2ViQ29yZS9raHRtbC9taXNjL2FyZW5h
LmgKLS0tIFdlYkNvcmUva2h0bWwvbWlzYy9hcmVuYS5oCTE4IERlYyAyMDAyIDA3OjQ5OjIwIC0w
MDAwCTEuMworKysgV2ViQ29yZS9raHRtbC9taXNjL2FyZW5hLmgJMyBPY3QgMjAwNSAwNzozNTo0
MCAtMDAwMApAQCAtMTE5LDcgKzExOSw3IEBAIHZvaWQqIEFyZW5hQWxsb2NhdGUoQXJlbmFQb29s
ICpwb29sLCB1bnMKICAgICAgICAgIGlmICgocG9vbCktPmN1cnJlbnQgPT0gKGEpKSAocG9vbCkt
PmN1cnJlbnQgPSAmKHBvb2wpLT5maXJzdDsgXAogICAgICAgICAgKihwbmV4dCkgPSAoYSktPm5l
eHQ7IFwKICAgICAgICAgIENMRUFSX0FSRU5BKGEpOyBcCi0gICAgICAgICBmcmVlKGEpOyBcCisg
ICAgICAgICBmYXN0RnJlZShhKTsgXAogICAgICAgICAgKGEpID0gMDsKIAogI2VuZGlmCkluZGV4
OiBXZWJDb3JlL2todG1sL21pc2MvZGVjb2Rlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2
cy9yb290L1dlYkNvcmUva2h0bWwvbWlzYy9kZWNvZGVyLmNwcCx2CnJldHJpZXZpbmcgcmV2aXNp
b24gMS40NApkaWZmIC1wIC11IC1yMS40NCBXZWJDb3JlL2todG1sL21pc2MvZGVjb2Rlci5jcHAK
LS0tIFdlYkNvcmUva2h0bWwvbWlzYy9kZWNvZGVyLmNwcAkyNCBTZXAgMjAwNSAwOTo0OToxMSAt
MDAwMAkxLjQ0CisrKyBXZWJDb3JlL2todG1sL21pc2MvZGVjb2Rlci5jcHAJMyBPY3QgMjAwNSAw
NzozNTo0MCAtMDAwMApAQCAtMjUsNiArMjUsNyBAQAogCiAvLyNkZWZpbmUgREVDT0RFX0RFQlVH
CiAKKyNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJkZWNvZGVyLmgiCiB1c2luZyBuYW1l
c3BhY2Uga2h0bWw7CiAKSW5kZXg6IFdlYkNvcmUva2h0bWwvbWlzYy9mb3JtZGF0YS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva2h0bWwvbWlzYy9mb3JtZGF0YS5j
cHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMgpkaWZmIC1wIC11IC1yMS4yIFdlYkNvcmUva2h0
bWwvbWlzYy9mb3JtZGF0YS5jcHAKLS0tIFdlYkNvcmUva2h0bWwvbWlzYy9mb3JtZGF0YS5jcHAJ
NiBTZXAgMjAwNCAyMzoyMzoxNSAtMDAwMAkxLjIKKysrIFdlYkNvcmUva2h0bWwvbWlzYy9mb3Jt
ZGF0YS5jcHAJMyBPY3QgMjAwNSAwNzozNTo0MCAtMDAwMApAQCAtMTgsNiArMTgsNyBAQAogICog
Qm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuCiAgKi8KIAorI2luY2x1ZGUgImNvbmZpZy5oIgog
I2luY2x1ZGUgImZvcm1kYXRhLmgiCiAKIG5hbWVzcGFjZSBraHRtbCB7CkluZGV4OiBXZWJDb3Jl
L2todG1sL21pc2MvaGVscGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2Vi
Q29yZS9raHRtbC9taXNjL2hlbHBlci5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMjEKZGlm
ZiAtcCAtdSAtcjEuMjEgV2ViQ29yZS9raHRtbC9taXNjL2hlbHBlci5jcHAKLS0tIFdlYkNvcmUv
a2h0bWwvbWlzYy9oZWxwZXIuY3BwCTYgSmFuIDIwMDUgMTg6MjA6NTAgLTAwMDAJMS4yMQorKysg
V2ViQ29yZS9raHRtbC9taXNjL2hlbHBlci5jcHAJMyBPY3QgMjAwNSAwNzozNTo0MCAtMDAwMApA
QCAtMjEsNiArMjEsNyBAQAogICoKICAqLwogCisjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVk
ZSAiaGVscGVyLmgiCiAKICNpZiBBUFBMRV9DSEFOR0VTCkluZGV4OiBXZWJDb3JlL2todG1sL21p
c2MvbG9hZGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9raHRt
bC9taXNjL2xvYWRlci5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNzYKZGlmZiAtcCAtdSAt
cjEuNzYgV2ViQ29yZS9raHRtbC9taXNjL2xvYWRlci5jcHAKLS0tIFdlYkNvcmUva2h0bWwvbWlz
Yy9sb2FkZXIuY3BwCTI3IFNlcCAyMDA1IDIyOjM3OjE5IC0wMDAwCTEuNzYKKysrIFdlYkNvcmUv
a2h0bWwvbWlzYy9sb2FkZXIuY3BwCTMgT2N0IDIwMDUgMDc6MzU6NDEgLTAwMDAKQEAgLTI3LDYg
KzI3LDcgQEAKIAogI3VuZGVmIENBQ0hFX0RFQlVHCiAvLyNkZWZpbmUgQ0FDSEVfREVCVUcKKyNp
bmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlIDxhc3NlcnQuaD4KIAogI2luY2x1ZGUgImxvYWRl
ci5oIgpJbmRleDogV2ViQ29yZS9raHRtbC9taXNjL3N0cmluZ2l0LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJD
UyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9raHRtbC9taXNjL3N0cmluZ2l0LmNwcCx2CnJldHJp
ZXZpbmcgcmV2aXNpb24gMS4yCmRpZmYgLXAgLXUgLXIxLjIgV2ViQ29yZS9raHRtbC9taXNjL3N0
cmluZ2l0LmNwcAotLS0gV2ViQ29yZS9raHRtbC9taXNjL3N0cmluZ2l0LmNwcAk5IE1heSAyMDA0
IDA0OjU1OjExIC0wMDAwCTEuMgorKysgV2ViQ29yZS9raHRtbC9taXNjL3N0cmluZ2l0LmNwcAkz
IE9jdCAyMDA1IDA3OjM1OjQxIC0wMDAwCkBAIC0xOSw2ICsxOSw3IEBACiAgICAgQm9zdG9uLCBN
QSAwMjExMS0xMzA3LCBVU0EuCiAqLwogCisjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAi
c3RyaW5naXQuaCIKIAogbmFtZXNwYWNlIGtodG1sIHsKSW5kZXg6IFdlYkNvcmUva2h0bWwvcmVu
ZGVyaW5nL2JpZGkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2to
dG1sL3JlbmRlcmluZy9iaWRpLmNwcCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4xNDMKZGlmZiAt
cCAtdSAtcjEuMTQzIFdlYkNvcmUva2h0bWwvcmVuZGVyaW5nL2JpZGkuY3BwCi0tLSBXZWJDb3Jl
L2todG1sL3JlbmRlcmluZy9iaWRpLmNwcAkyOSBTZXAgMjAwNSAyMDoxMDo1NiAtMDAwMAkxLjE0
MworKysgV2ViQ29yZS9raHRtbC9yZW5kZXJpbmcvYmlkaS5jcHAJMyBPY3QgMjAwNSAwNzozNTo0
MiAtMDAwMApAQCAtMjAsNiArMjAsNyBAQAogICogQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0Eu
CiAgKgogICovCisjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiYmlkaS5oIgogI2luY2x1
ZGUgImJyZWFrX2xpbmVzLmgiCiAjaW5jbHVkZSAicmVuZGVyX2Jsb2NrLmgiCkluZGV4OiBXZWJD
b3JlL2todG1sL3JlbmRlcmluZy9icmVha19saW5lcy5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTog
L2N2cy9yb290L1dlYkNvcmUva2h0bWwvcmVuZGVyaW5nL2JyZWFrX2xpbmVzLmNwcCx2CnJldHJp
ZXZpbmcgcmV2aXNpb24gMS4yNQpkaWZmIC1wIC11IC1yMS4yNSBXZWJDb3JlL2todG1sL3JlbmRl
cmluZy9icmVha19saW5lcy5jcHAKLS0tIFdlYkNvcmUva2h0bWwvcmVuZGVyaW5nL2JyZWFrX2xp
bmVzLmNwcAk0IFNlcCAyMDA1IDA4OjIzOjQwIC0wMDAwCTEuMjUKKysrIFdlYkNvcmUva2h0bWwv
cmVuZGVyaW5nL2JyZWFrX2xpbmVzLmNwcAkzIE9jdCAyMDA1IDA3OjM1OjQyIC0wMDAwCkBAIC0y
MCw2ICsyMCw3IEBACiAgKgogICovCiAKKyNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJi
cmVha19saW5lcy5oIgogCiAjaW5jbHVkZSA8cXN0cmluZy5oPgpJbmRleDogV2ViQ29yZS9raHRt
bC9yZW5kZXJpbmcvZm9udC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNv
cmUva2h0bWwvcmVuZGVyaW5nL2ZvbnQuY3BwLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjQ0CmRp
ZmYgLXAgLXUgLXIxLjQ0IFdlYkNvcmUva2h0bWwvcmVuZGVyaW5nL2ZvbnQuY3BwCi0tLSBXZWJD
b3JlL2todG1sL3JlbmRlcmluZy9mb250LmNwcAkyNSBBdWcgMjAwNSAxNzo0NzoxMyAtMDAwMAkx
LjQ0CisrKyBXZWJDb3JlL2todG1sL3JlbmRlcmluZy9mb250LmNwcAkzIE9jdCAyMDA1IDA3OjM1
OjQzIC0wMDAwCkBAIC0yMyw2ICsyMyw3IEBACiAgKgogICovCiAKKyNpbmNsdWRlICJjb25maWcu
aCIKICNpbmNsdWRlICJmb250LmgiCiAKICNpbmNsdWRlICJraHRtbF9mYWN0b3J5LmgiCkluZGV4
OiBXZWJDb3JlL2todG1sL3JlbmRlcmluZy9yZW5kZXJfYXJlbmEuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNT
IGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2todG1sL3JlbmRlcmluZy9yZW5kZXJfYXJlbmEuY3Bw
LHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjcKZGlmZiAtcCAtdSAtcjEuNyBXZWJDb3JlL2todG1s
L3JlbmRlcmluZy9yZW5kZXJfYXJlbmEuY3BwCi0tLSBXZWJDb3JlL2todG1sL3JlbmRlcmluZy9y
ZW5kZXJfYXJlbmEuY3BwCTMwIEphbiAyMDAzIDA2OjMyOjUyIC0wMDAwCTEuNworKysgV2ViQ29y
ZS9raHRtbC9yZW5kZXJpbmcvcmVuZGVyX2FyZW5hLmNwcAkzIE9jdCAyMDA1IDA3OjM1OjQzIC0w
MDAwCkBAIC0zMiw2ICszMiw3IEBACiAgKiB2ZXJzaW9uIG9mIHRoaXMgZmlsZSB1bmRlciBhbnkg
b2YgdGhlIExHUEwsIHRoZSBNUEwgb3IgdGhlIEdQTC4KICAqLwogCisjaW5jbHVkZSAiY29uZmln
LmgiCiAjaW5jbHVkZSAicmVuZGVyX2FyZW5hLmgiCiAKICNpZm5kZWYgTkRFQlVHCkluZGV4OiBX
ZWJDb3JlL2todG1sL3JlbmRlcmluZy9yZW5kZXJfYmxvY2suY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZp
bGU6IC9jdnMvcm9vdC9XZWJDb3JlL2todG1sL3JlbmRlcmluZy9yZW5kZXJfYmxvY2suY3BwLHYK
cmV0cmlldmluZyByZXZpc2lvbiAxLjIwNgpkaWZmIC1wIC11IC1yMS4yMDYgV2ViQ29yZS9raHRt
bC9yZW5kZXJpbmcvcmVuZGVyX2Jsb2NrLmNwcAotLS0gV2ViQ29yZS9raHRtbC9yZW5kZXJpbmcv
cmVuZGVyX2Jsb2NrLmNwcAkyOSBTZXAgMjAwNSAyMDoxMDo1NiAtMDAwMAkxLjIwNgorKysgV2Vi
Q29yZS9raHRtbC9yZW5kZXJpbmcvcmVuZGVyX2Jsb2NrLmNwcAkzIE9jdCAyMDA1IDA3OjM1OjQ1
IC0wMDAwCkBAIC0yNyw2ICsyNyw3IEBACiAvLyNkZWZpbmUgQk9YX0RFQlVHCiAvLyNkZWZpbmUg
RkxPQVRfREVCVUcKIAorI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgPGtkZWJ1Zy5oPgog
I2luY2x1ZGUgInJlbmRlcmluZy9yZW5kZXJfdGV4dC5oIgogI2luY2x1ZGUgInJlbmRlcmluZy9y
ZW5kZXJfdGFibGUuaCIKSW5kZXg6IFdlYkNvcmUva2h0bWwvcmVuZGVyaW5nL3JlbmRlcl9ib3gu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2todG1sL3JlbmRlcmlu
Zy9yZW5kZXJfYm94LmNwcCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4xNjgKZGlmZiAtcCAtdSAt
cjEuMTY4IFdlYkNvcmUva2h0bWwvcmVuZGVyaW5nL3JlbmRlcl9ib3guY3BwCi0tLSBXZWJDb3Jl
L2todG1sL3JlbmRlcmluZy9yZW5kZXJfYm94LmNwcAkyOSBTZXAgMjAwNSAyMDoxMDo1NiAtMDAw
MAkxLjE2OAorKysgV2ViQ29yZS9raHRtbC9yZW5kZXJpbmcvcmVuZGVyX2JveC5jcHAJMyBPY3Qg
MjAwNSAwNzozNTo0NSAtMDAwMApAQCAtMjUsNiArMjUsNyBAQAogLy8jZGVmaW5lIERFQlVHX0xB
WU9VVAogCiAKKyNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlIDxxcGFpbnRlci5oPgogI2lu
Y2x1ZGUgPHFwZW4uaD4KIApJbmRleDogV2ViQ29yZS9raHRtbC9yZW5kZXJpbmcvcmVuZGVyX2Jy
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9raHRtbC9yZW5kZXJp
bmcvcmVuZGVyX2JyLmNwcCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4yOApkaWZmIC1wIC11IC1y
MS4yOCBXZWJDb3JlL2todG1sL3JlbmRlcmluZy9yZW5kZXJfYnIuY3BwCi0tLSBXZWJDb3JlL2to
dG1sL3JlbmRlcmluZy9yZW5kZXJfYnIuY3BwCTE2IFNlcCAyMDA1IDIyOjQyOjE1IC0wMDAwCTEu
MjgKKysrIFdlYkNvcmUva2h0bWwvcmVuZGVyaW5nL3JlbmRlcl9ici5jcHAJMyBPY3QgMjAwNSAw
NzozNTo0NSAtMDAwMApAQCAtMTksNiArMTksNyBAQAogICogQm9zdG9uLCBNQSAwMjExMS0xMzA3
LCBVU0EuCiAgKgogICovCisjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAicmVuZGVyX2Jy
LmgiCiAKICNpbmNsdWRlICJkb21fcG9zaXRpb24uaCIKSW5kZXg6IFdlYkNvcmUva2h0bWwvcmVu
ZGVyaW5nL3JlbmRlcl9jYW52YXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9X
ZWJDb3JlL2todG1sL3JlbmRlcmluZy9yZW5kZXJfY2FudmFzLmNwcCx2CnJldHJpZXZpbmcgcmV2
aXNpb24gMS4zMgpkaWZmIC1wIC11IC1yMS4zMiBXZWJDb3JlL2todG1sL3JlbmRlcmluZy9yZW5k
ZXJfY2FudmFzLmNwcAotLS0gV2ViQ29yZS9raHRtbC9yZW5kZXJpbmcvcmVuZGVyX2NhbnZhcy5j
cHAJMTEgSmFuIDIwMDUgMjI6NDQ6NTMgLTAwMDAJMS4zMgorKysgV2ViQ29yZS9raHRtbC9yZW5k
ZXJpbmcvcmVuZGVyX2NhbnZhcy5jcHAJMyBPY3QgMjAwNSAwNzozNTo0NiAtMDAwMApAQCAtMTks
NiArMTksNyBAQAogICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVt
cGxlIFBsYWNlIC0gU3VpdGUgMzMwLAogICogQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuCiAg
Ki8KKyNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJyZW5kZXJpbmcvcmVuZGVyX2NhbnZh
cy5oIgogI2luY2x1ZGUgInJlbmRlcl9sYXllci5oIgogI2luY2x1ZGUgInhtbC9kb21fZG9jaW1w
bC5oIgpJbmRleDogV2ViQ29yZS9raHRtbC9yZW5kZXJpbmcvcmVuZGVyX2NhbnZhc2ltYWdlLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9raHRtbC9yZW5kZXJpbmcv
cmVuZGVyX2NhbnZhc2ltYWdlLmNwcCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4yMApkaWZmIC1w
IC11IC1yMS4yMCBXZWJDb3JlL2todG1sL3JlbmRlcmluZy9yZW5kZXJfY2FudmFzaW1hZ2UuY3Bw
Ci0tLSBXZWJDb3JlL2todG1sL3JlbmRlcmluZy9yZW5kZXJfY2FudmFzaW1hZ2UuY3BwCTUgU2Vw
IDIwMDUgMDQ6MDE6MjQgLTAwMDAJMS4yMAorKysgV2ViQ29yZS9raHRtbC9yZW5kZXJpbmcvcmVu
ZGVyX2NhbnZhc2ltYWdlLmNwcAkzIE9jdCAyMDA1IDA3OjM1OjQ2IC0wMDAwCkBAIC0yNSw2ICsy
NSw3IEBACiAKIC8vI2RlZmluZSBERUJVR19MQVlPVVQKIAorI2luY2x1ZGUgImNvbmZpZy5oIgog
I2luY2x1ZGUgInJlbmRlcl9jYW52YXNpbWFnZS5oIgogI2luY2x1ZGUgInJlbmRlcl9jYW52YXMu
aCIKIApAQCAtNjUsNyArNjYsNyBAQCBSZW5kZXJDYW52YXNJbWFnZTo6flJlbmRlckNhbnZhc0lt
YWdlKCkKICAgICAgICAgX2RyYXdpbmdDb250ZXh0ID0gMDsKICAgICB9CiAgICAgCi0gICAgZnJl
ZSAoX2RyYXdpbmdDb250ZXh0RGF0YSk7CisgICAgZmFzdEZyZWUoX2RyYXdpbmdDb250ZXh0RGF0
YSk7CiAgICAgX2RyYXdpbmdDb250ZXh0RGF0YSA9IDA7CiAgICAgCiAgICAgaWYgKF9kcmF3bklt
YWdlKSB7CkBAIC04MywxNCArODQsMTQgQEAgdm9pZCBSZW5kZXJDYW52YXNJbWFnZTo6Y3JlYXRl
RHJhd2luZ0NvbgogICAgICAgICBDRlJlbGVhc2UgKF9kcmF3aW5nQ29udGV4dCk7CiAgICAgICAg
IF9kcmF3aW5nQ29udGV4dCA9IDA7CiAgICAgfQotICAgIGZyZWUgKF9kcmF3aW5nQ29udGV4dERh
dGEpOworICAgIGZhc3RGcmVlKF9kcmF3aW5nQ29udGV4dERhdGEpOwogICAgIENHQ29sb3JTcGFj
ZVJlZiBjb2xvclNwYWNlID0gQ0dDb2xvclNwYWNlQ3JlYXRlRGV2aWNlUkdCKCk7CiAKICAgICBp
bnQgY1dpZHRoID0gY29udGVudFdpZHRoKCk7CiAgICAgaW50IGNIZWlnaHQgPSBjb250ZW50SGVp
Z2h0KCk7CiAgICAgc2l6ZV90IG51bUNvbXBvbmVudHMgPSBDR0NvbG9yU3BhY2VHZXROdW1iZXJP
ZkNvbXBvbmVudHMoY29sb3JTcGFjZSk7CiAgICAgc2l6ZV90IGJ5dGVzUGVyUm93ID0gQllURVNf
UEVSX1JPVyhjV2lkdGgsQklUU19QRVJfQ09NUE9ORU5ULChudW1Db21wb25lbnRzKzEpKTsgLy8g
KyAxIGZvciBhbHBoYQotICAgIF9kcmF3aW5nQ29udGV4dERhdGEgPSBjYWxsb2MoaGVpZ2h0KCks
IGJ5dGVzUGVyUm93KTsKKyAgICBfZHJhd2luZ0NvbnRleHREYXRhID0gZmFzdENhbGxvYyhoZWln
aHQoKSwgYnl0ZXNQZXJSb3cpOwogICAgIF9kcmF3aW5nQ29udGV4dCA9IENHQml0bWFwQ29udGV4
dENyZWF0ZShfZHJhd2luZ0NvbnRleHREYXRhLCBjV2lkdGgsIGNIZWlnaHQsIEJJVFNfUEVSX0NP
TVBPTkVOVCwgYnl0ZXNQZXJSb3csIGNvbG9yU3BhY2UsIGtDR0ltYWdlQWxwaGFQcmVtdWx0aXBs
aWVkTGFzdCk7CiAgICAgCiAjaWZkZWYgREVCVUdfQ0FOVkFTX0JBQ0tHUk9VTkQKSW5kZXg6IFdl
YkNvcmUva2h0bWwvcmVuZGVyaW5nL3JlbmRlcl9jb250YWluZXIuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNT
IGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2todG1sL3JlbmRlcmluZy9yZW5kZXJfY29udGFpbmVy
LmNwcCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS42OApkaWZmIC1wIC11IC1yMS42OCBXZWJDb3Jl
L2todG1sL3JlbmRlcmluZy9yZW5kZXJfY29udGFpbmVyLmNwcAotLS0gV2ViQ29yZS9raHRtbC9y
ZW5kZXJpbmcvcmVuZGVyX2NvbnRhaW5lci5jcHAJMzEgQXVnIDIwMDUgMDU6MDk6MDMgLTAwMDAJ
MS42OAorKysgV2ViQ29yZS9raHRtbC9yZW5kZXJpbmcvcmVuZGVyX2NvbnRhaW5lci5jcHAJMyBP
Y3QgMjAwNSAwNzozNTo0NiAtMDAwMApAQCAtMjUsNiArMjUsNyBAQAogCiAvLyNkZWZpbmUgREVC
VUdfTEFZT1VUCiAKKyNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJyZW5kZXJfY29udGFp
bmVyLmgiCiAjaW5jbHVkZSAicmVuZGVyX3RhYmxlLmgiCiAjaW5jbHVkZSAicmVuZGVyX3RleHQu
aCIKSW5kZXg6IFdlYkNvcmUva2h0bWwvcmVuZGVyaW5nL3JlbmRlcl9mbGV4Ym94LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9raHRtbC9yZW5kZXJpbmcvcmVuZGVy
X2ZsZXhib3guY3BwLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjI2CmRpZmYgLXAgLXUgLXIxLjI2
IFdlYkNvcmUva2h0bWwvcmVuZGVyaW5nL3JlbmRlcl9mbGV4Ym94LmNwcAotLS0gV2ViQ29yZS9r
aHRtbC9yZW5kZXJpbmcvcmVuZGVyX2ZsZXhib3guY3BwCTI5IFNlcCAyMDA1IDIwOjEwOjU2IC0w
MDAwCTEuMjYKKysrIFdlYkNvcmUva2h0bWwvcmVuZGVyaW5nL3JlbmRlcl9mbGV4Ym94LmNwcAkz
IE9jdCAyMDA1IDA3OjM1OjQ3IC0wMDAwCkBAIC0yMiw2ICsyMiw3IEBACiAgKgogICovCiAKKyNp
bmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJyZW5kZXJfZmxleGJveC5oIgogCiB1c2luZyBu
YW1lc3BhY2UgRE9NOwpJbmRleDogV2ViQ29yZS9raHRtbC9yZW5kZXJpbmcvcmVuZGVyX2Zsb3cu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2todG1sL3JlbmRlcmlu
Zy9yZW5kZXJfZmxvdy5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMTY1CmRpZmYgLXAgLXUg
LXIxLjE2NSBXZWJDb3JlL2todG1sL3JlbmRlcmluZy9yZW5kZXJfZmxvdy5jcHAKLS0tIFdlYkNv
cmUva2h0bWwvcmVuZGVyaW5nL3JlbmRlcl9mbG93LmNwcAkxNiBTZXAgMjAwNSAyMzowOTo1OCAt
MDAwMAkxLjE2NQorKysgV2ViQ29yZS9raHRtbC9yZW5kZXJpbmcvcmVuZGVyX2Zsb3cuY3BwCTMg
T2N0IDIwMDUgMDc6MzU6NDcgLTAwMDAKQEAgLTIyLDYgKzIyLDcgQEAKICAqLwogLy8gLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQogCisjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSA8a2RlYnVnLmg+CiAj
aW5jbHVkZSA8YXNzZXJ0Lmg+CiAjaW5jbHVkZSA8cXBhaW50ZXIuaD4KSW5kZXg6IFdlYkNvcmUv
a2h0bWwvcmVuZGVyaW5nL3JlbmRlcl9mb3JtLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3Zz
L3Jvb3QvV2ViQ29yZS9raHRtbC9yZW5kZXJpbmcvcmVuZGVyX2Zvcm0uY3BwLHYKcmV0cmlldmlu
ZyByZXZpc2lvbiAxLjEyMwpkaWZmIC1wIC11IC1yMS4xMjMgV2ViQ29yZS9raHRtbC9yZW5kZXJp
bmcvcmVuZGVyX2Zvcm0uY3BwCi0tLSBXZWJDb3JlL2todG1sL3JlbmRlcmluZy9yZW5kZXJfZm9y
bS5jcHAJMjkgU2VwIDIwMDUgMjA6MTA6NTcgLTAwMDAJMS4xMjMKKysrIFdlYkNvcmUva2h0bWwv
cmVuZGVyaW5nL3JlbmRlcl9mb3JtLmNwcAkzIE9jdCAyMDA1IDA3OjM1OjQ4IC0wMDAwCkBAIC0y
Myw2ICsyMyw3IEBACiAgKgogICovCiAKKyNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlIDxr
ZGVidWcuaD4KICNpbmNsdWRlIDxrbG9jYWxlLmg+CiAjaW5jbHVkZSA8a2ZpbGVkaWFsb2cuaD4K
SW5kZXg6IFdlYkNvcmUva2h0bWwvcmVuZGVyaW5nL3JlbmRlcl9mcmFtZXMuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2todG1sL3JlbmRlcmluZy9yZW5kZXJfZnJh
bWVzLmNwcCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS43NwpkaWZmIC1wIC11IC1yMS43NyBXZWJD
b3JlL2todG1sL3JlbmRlcmluZy9yZW5kZXJfZnJhbWVzLmNwcAotLS0gV2ViQ29yZS9raHRtbC9y
ZW5kZXJpbmcvcmVuZGVyX2ZyYW1lcy5jcHAJMTYgU2VwIDIwMDUgMjI6NDI6MTYgLTAwMDAJMS43
NworKysgV2ViQ29yZS9raHRtbC9yZW5kZXJpbmcvcmVuZGVyX2ZyYW1lcy5jcHAJMyBPY3QgMjAw
NSAwNzozNTo0OCAtMDAwMApAQCAtMjQsNiArMjQsNyBAQAogICovCiAvLyNkZWZpbmUgREVCVUdf
TEFZT1VUCiAKKyNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJyZW5kZXJpbmcvcmVuZGVy
X2ZyYW1lcy5oIgogCiAjaW5jbHVkZSAiY3NzL2Nzc3Byb3BlcnRpZXMuaCIKSW5kZXg6IFdlYkNv
cmUva2h0bWwvcmVuZGVyaW5nL3JlbmRlcl9pbWFnZS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTog
L2N2cy9yb290L1dlYkNvcmUva2h0bWwvcmVuZGVyaW5nL3JlbmRlcl9pbWFnZS5jcHAsdgpyZXRy
aWV2aW5nIHJldmlzaW9uIDEuODYKZGlmZiAtcCAtdSAtcjEuODYgV2ViQ29yZS9raHRtbC9yZW5k
ZXJpbmcvcmVuZGVyX2ltYWdlLmNwcAotLS0gV2ViQ29yZS9raHRtbC9yZW5kZXJpbmcvcmVuZGVy
X2ltYWdlLmNwcAkzMCBBdWcgMjAwNSAwOTozMDoyMCAtMDAwMAkxLjg2CisrKyBXZWJDb3JlL2to
dG1sL3JlbmRlcmluZy9yZW5kZXJfaW1hZ2UuY3BwCTMgT2N0IDIwMDUgMDc6MzU6NDggLTAwMDAK
QEAgLTI0LDYgKzI0LDcgQEAKICAqLwogLy8jZGVmaW5lIERFQlVHX0xBWU9VVAogCisjaW5jbHVk
ZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAicmVuZGVyX2ltYWdlLmgiCiAjaW5jbHVkZSAicmVuZGVy
X2NhbnZhcy5oIgogCkluZGV4OiBXZWJDb3JlL2todG1sL3JlbmRlcmluZy9yZW5kZXJfaW5saW5l
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9raHRtbC9yZW5kZXJp
bmcvcmVuZGVyX2lubGluZS5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNDYKZGlmZiAtcCAt
dSAtcjEuNDYgV2ViQ29yZS9raHRtbC9yZW5kZXJpbmcvcmVuZGVyX2lubGluZS5jcHAKLS0tIFdl
YkNvcmUva2h0bWwvcmVuZGVyaW5nL3JlbmRlcl9pbmxpbmUuY3BwCTIxIEp1bCAyMDA1IDE2OjMz
OjMzIC0wMDAwCTEuNDYKKysrIFdlYkNvcmUva2h0bWwvcmVuZGVyaW5nL3JlbmRlcl9pbmxpbmUu
Y3BwCTMgT2N0IDIwMDUgMDc6MzU6NDkgLTAwMDAKQEAgLTIyLDYgKzIyLDcgQEAKICAqCiAgKi8K
IAorI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgPGtnbG9iYWwuaD4KICNpbmNsdWRlICJy
ZW5kZXJfYXJlbmEuaCIKICNpbmNsdWRlICJyZW5kZXJfaW5saW5lLmgiCkluZGV4OiBXZWJDb3Jl
L2todG1sL3JlbmRlcmluZy9yZW5kZXJfbGF5ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9j
dnMvcm9vdC9XZWJDb3JlL2todG1sL3JlbmRlcmluZy9yZW5kZXJfbGF5ZXIuY3BwLHYKcmV0cmll
dmluZyByZXZpc2lvbiAxLjEwNQpkaWZmIC1wIC11IC1yMS4xMDUgV2ViQ29yZS9raHRtbC9yZW5k
ZXJpbmcvcmVuZGVyX2xheWVyLmNwcAotLS0gV2ViQ29yZS9raHRtbC9yZW5kZXJpbmcvcmVuZGVy
X2xheWVyLmNwcAkyOSBTZXAgMjAwNSAyMDoxMDo1NyAtMDAwMAkxLjEwNQorKysgV2ViQ29yZS9r
aHRtbC9yZW5kZXJpbmcvcmVuZGVyX2xheWVyLmNwcAkzIE9jdCAyMDA1IDA3OjM1OjUwIC0wMDAw
CkBAIC00MSw2ICs0MSw3IEBACiAgKiB2ZXJzaW9uIG9mIHRoaXMgZmlsZSB1bmRlciBhbnkgb2Yg
dGhlIExHUEwsIHRoZSBNUEwgb3IgdGhlIEdQTC4KICAqLwogCisjaW5jbHVkZSAiY29uZmlnLmgi
CiAjaW5jbHVkZSAicmVuZGVyX2xheWVyLmgiCiAKICNpbmNsdWRlIDxrZGVidWcuaD4KSW5kZXg6
IFdlYkNvcmUva2h0bWwvcmVuZGVyaW5nL3JlbmRlcl9saW5lLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBm
aWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9raHRtbC9yZW5kZXJpbmcvcmVuZGVyX2xpbmUuY3BwLHYK
cmV0cmlldmluZyByZXZpc2lvbiAxLjUyCmRpZmYgLXAgLXUgLXIxLjUyIFdlYkNvcmUva2h0bWwv
cmVuZGVyaW5nL3JlbmRlcl9saW5lLmNwcAotLS0gV2ViQ29yZS9raHRtbC9yZW5kZXJpbmcvcmVu
ZGVyX2xpbmUuY3BwCTI5IFNlcCAyMDA1IDIwOjEwOjU3IC0wMDAwCTEuNTIKKysrIFdlYkNvcmUv
a2h0bWwvcmVuZGVyaW5nL3JlbmRlcl9saW5lLmNwcAkzIE9jdCAyMDA1IDA3OjM1OjUwIC0wMDAw
CkBAIC0yMCw2ICsyMCw3IEBACiAgKi8KIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAorI2luY2x1ZGUg
ImNvbmZpZy5oIgogI2luY2x1ZGUgPGtkZWJ1Zy5oPgogI2luY2x1ZGUgPGFzc2VydC5oPgogI2lu
Y2x1ZGUgPHFwYWludGVyLmg+CkluZGV4OiBXZWJDb3JlL2todG1sL3JlbmRlcmluZy9yZW5kZXJf
bGlzdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva2h0bWwvcmVu
ZGVyaW5nL3JlbmRlcl9saXN0LmNwcCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS43MApkaWZmIC1w
IC11IC1yMS43MCBXZWJDb3JlL2todG1sL3JlbmRlcmluZy9yZW5kZXJfbGlzdC5jcHAKLS0tIFdl
YkNvcmUva2h0bWwvcmVuZGVyaW5nL3JlbmRlcl9saXN0LmNwcAkxNiBTZXAgMjAwNSAyMjo0Mjox
NiAtMDAwMAkxLjcwCisrKyBXZWJDb3JlL2todG1sL3JlbmRlcmluZy9yZW5kZXJfbGlzdC5jcHAJ
MyBPY3QgMjAwNSAwNzozNTo1MCAtMDAwMApAQCAtMjIsNiArMjIsNyBAQAogICoKICAqLwogCisj
aW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAicmVuZGVyX2xpc3QuaCIKICNpbmNsdWRlICJy
ZW5kZXJpbmcvcmVuZGVyX2NhbnZhcy5oIgogCkluZGV4OiBXZWJDb3JlL2todG1sL3JlbmRlcmlu
Zy9yZW5kZXJfb2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29y
ZS9raHRtbC9yZW5kZXJpbmcvcmVuZGVyX29iamVjdC5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9u
IDEuMjE3CmRpZmYgLXAgLXUgLXIxLjIxNyBXZWJDb3JlL2todG1sL3JlbmRlcmluZy9yZW5kZXJf
b2JqZWN0LmNwcAotLS0gV2ViQ29yZS9raHRtbC9yZW5kZXJpbmcvcmVuZGVyX29iamVjdC5jcHAJ
MjkgU2VwIDIwMDUgMjA6MTA6NTcgLTAwMDAJMS4yMTcKKysrIFdlYkNvcmUva2h0bWwvcmVuZGVy
aW5nL3JlbmRlcl9vYmplY3QuY3BwCTMgT2N0IDIwMDUgMDc6MzU6NTIgLTAwMDAKQEAgLTIzLDYg
KzIzLDcgQEAKICAqCiAgKi8KIAorI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgInJlbmRl
cmluZy9yZW5kZXJfb2JqZWN0LmgiCiAjaW5jbHVkZSAicmVuZGVyaW5nL3JlbmRlcl90YWJsZS5o
IgogI2luY2x1ZGUgInJlbmRlcmluZy9yZW5kZXJfdGV4dC5oIgpJbmRleDogV2ViQ29yZS9raHRt
bC9yZW5kZXJpbmcvcmVuZGVyX3JlcGxhY2VkLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3Zz
L3Jvb3QvV2ViQ29yZS9raHRtbC9yZW5kZXJpbmcvcmVuZGVyX3JlcGxhY2VkLmNwcCx2CnJldHJp
ZXZpbmcgcmV2aXNpb24gMS44NgpkaWZmIC1wIC11IC1yMS44NiBXZWJDb3JlL2todG1sL3JlbmRl
cmluZy9yZW5kZXJfcmVwbGFjZWQuY3BwCi0tLSBXZWJDb3JlL2todG1sL3JlbmRlcmluZy9yZW5k
ZXJfcmVwbGFjZWQuY3BwCTI5IFNlcCAyMDA1IDIwOjEwOjU3IC0wMDAwCTEuODYKKysrIFdlYkNv
cmUva2h0bWwvcmVuZGVyaW5nL3JlbmRlcl9yZXBsYWNlZC5jcHAJMyBPY3QgMjAwNSAwNzozNTo1
MiAtMDAwMApAQCAtMjEsNiArMjEsNyBAQAogICogQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0Eu
CiAgKgogICovCisjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAicmVuZGVyX3JlcGxhY2Vk
LmgiCiAKICNpbmNsdWRlICJyZW5kZXJfYXJlbmEuaCIKSW5kZXg6IFdlYkNvcmUva2h0bWwvcmVu
ZGVyaW5nL3JlbmRlcl9zdHlsZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dl
YkNvcmUva2h0bWwvcmVuZGVyaW5nL3JlbmRlcl9zdHlsZS5jcHAsdgpyZXRyaWV2aW5nIHJldmlz
aW9uIDEuNzEKZGlmZiAtcCAtdSAtcjEuNzEgV2ViQ29yZS9raHRtbC9yZW5kZXJpbmcvcmVuZGVy
X3N0eWxlLmNwcAotLS0gV2ViQ29yZS9raHRtbC9yZW5kZXJpbmcvcmVuZGVyX3N0eWxlLmNwcAkz
MCBTZXAgMjAwNSAwMDowMzoyMCAtMDAwMAkxLjcxCisrKyBXZWJDb3JlL2todG1sL3JlbmRlcmlu
Zy9yZW5kZXJfc3R5bGUuY3BwCTMgT2N0IDIwMDUgMDc6MzU6NTIgLTAwMDAKQEAgLTIxLDYgKzIx
LDcgQEAKICAqCiAgKi8KIAorI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgInhtbC9kb21f
c3RyaW5naW1wbC5oIgogCiAjaW5jbHVkZSAicmVuZGVyX3N0eWxlLmgiCkluZGV4OiBXZWJDb3Jl
L2todG1sL3JlbmRlcmluZy9yZW5kZXJfc3R5bGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3Zz
L3Jvb3QvV2ViQ29yZS9raHRtbC9yZW5kZXJpbmcvcmVuZGVyX3N0eWxlLmgsdgpyZXRyaWV2aW5n
IHJldmlzaW9uIDEuOTIKZGlmZiAtcCAtdSAtcjEuOTIgV2ViQ29yZS9raHRtbC9yZW5kZXJpbmcv
cmVuZGVyX3N0eWxlLmgKLS0tIFdlYkNvcmUva2h0bWwvcmVuZGVyaW5nL3JlbmRlcl9zdHlsZS5o
CTMwIFNlcCAyMDA1IDAwOjAzOjIwIC0wMDAwCTEuOTIKKysrIFdlYkNvcmUva2h0bWwvcmVuZGVy
aW5nL3JlbmRlcl9zdHlsZS5oCTMgT2N0IDIwMDUgMDc6MzU6NTMgLTAwMDAKQEAgLTQxLDcgKzQx
LDYgQEAKICNpbmNsdWRlIDxxcGFsZXR0ZS5oPgogI2luY2x1ZGUgPHFhcHBsaWNhdGlvbi5oPgog
Ci0jaW5jbHVkZSA8a3htbGNvcmUvRmFzdE1hbGxvYy5oPgogI2luY2x1ZGUgIm1pc2Mva2h0bWxs
YXlvdXQuaCIKICNpbmNsdWRlICJtaXNjL3NoYXJlZC5oIgogI2luY2x1ZGUgInJlbmRlcmluZy9m
b250LmgiCkBAIC0zNjMsNyArMzYyLDcgQEAgcHVibGljOgogCiBlbnVtIEVNYXJnaW5Db2xsYXBz
ZSB7IE1DT0xMQVBTRSwgTVNFUEFSQVRFLCBNRElTQ0FSRCB9OwogCi1jbGFzcyBTdHlsZVN1cnJv
dW5kRGF0YSA6IHB1YmxpYyBTaGFyZWQ8U3R5bGVTdXJyb3VuZERhdGE+LCBwdWJsaWMgRmFzdEFs
bG9jYXRlZAorY2xhc3MgU3R5bGVTdXJyb3VuZERhdGEgOiBwdWJsaWMgU2hhcmVkPFN0eWxlU3Vy
cm91bmREYXRhPgogewogcHVibGljOgogICAgIFN0eWxlU3Vycm91bmREYXRhKCk7CkBAIC0zODYs
NyArMzg1LDcgQEAgcHVibGljOgogCiBlbnVtIEVCb3hTaXppbmcgeyBDT05URU5UX0JPWCwgQk9S
REVSX0JPWCB9OwogCi1jbGFzcyBTdHlsZUJveERhdGEgOiBwdWJsaWMgU2hhcmVkPFN0eWxlQm94
RGF0YT4sIHB1YmxpYyBGYXN0QWxsb2NhdGVkCitjbGFzcyBTdHlsZUJveERhdGEgOiBwdWJsaWMg
U2hhcmVkPFN0eWxlQm94RGF0YT4KIHsKIHB1YmxpYzoKICAgICBTdHlsZUJveERhdGEoKTsKQEAg
LTQ2NCw3ICs0NjMsNyBAQCBlbnVtIEVVbmljb2RlQmlkaSB7CiAgICAgVUJOb3JtYWwsIEVtYmVk
LCBPdmVycmlkZQogfTsKIAotY2xhc3MgU3R5bGVWaXN1YWxEYXRhIDogcHVibGljIFNoYXJlZDxT
dHlsZVZpc3VhbERhdGE+LCBwdWJsaWMgRmFzdEFsbG9jYXRlZAorY2xhc3MgU3R5bGVWaXN1YWxE
YXRhIDogcHVibGljIFNoYXJlZDxTdHlsZVZpc3VhbERhdGE+CiB7CiBwdWJsaWM6CiAgICAgU3R5
bGVWaXN1YWxEYXRhKCk7CkBAIC01MDksNyArNTA4LDcgQEAgZW51bSBFQmFja2dyb3VuZFJlcGVh
dCB7CiAgICAgUkVQRUFULCBSRVBFQVRfWCwgUkVQRUFUX1ksIE5PX1JFUEVBVAogfTsKIAotc3Ry
dWN0IEJhY2tncm91bmRMYXllciA6IHB1YmxpYyBGYXN0QWxsb2NhdGVkIHsKK3N0cnVjdCBCYWNr
Z3JvdW5kTGF5ZXIgewogcHVibGljOgogICAgIEJhY2tncm91bmRMYXllcigpOwogICAgIH5CYWNr
Z3JvdW5kTGF5ZXIoKTsKQEAgLTU5Niw3ICs1OTUsNyBAQCBwdWJsaWM6CiAgICAgQmFja2dyb3Vu
ZExheWVyKiBtX25leHQ7CiB9OwogCi1jbGFzcyBTdHlsZUJhY2tncm91bmREYXRhIDogcHVibGlj
IFNoYXJlZDxTdHlsZUJhY2tncm91bmREYXRhPiwgcHVibGljIEZhc3RBbGxvY2F0ZWQKK2NsYXNz
IFN0eWxlQmFja2dyb3VuZERhdGEgOiBwdWJsaWMgU2hhcmVkPFN0eWxlQmFja2dyb3VuZERhdGE+
CiB7CiBwdWJsaWM6CiAgICAgU3R5bGVCYWNrZ3JvdW5kRGF0YSgpOwpAQCAtNjE5LDcgKzYxOCw3
IEBAIHB1YmxpYzoKIGVudW0gRU1hcnF1ZWVCZWhhdmlvciB7IE1OT05FLCBNU0NST0xMLCBNU0xJ
REUsIE1BTFRFUk5BVEUsIE1VTkZVUkwgfTsKIGVudW0gRU1hcnF1ZWVEaXJlY3Rpb24geyBNQVVU
TyA9IDAsIE1MRUZUID0gMSwgTVJJR0hUID0gLTEsIE1VUCA9IDIsIE1ET1dOID0gLTIsIE1GT1JX
QVJEID0gMywgTUJBQ0tXQVJEID0gLTMgfTsKIAotY2xhc3MgU3R5bGVNYXJxdWVlRGF0YSA6IHB1
YmxpYyBTaGFyZWQ8U3R5bGVNYXJxdWVlRGF0YT4sIHB1YmxpYyBGYXN0QWxsb2NhdGVkCitjbGFz
cyBTdHlsZU1hcnF1ZWVEYXRhIDogcHVibGljIFNoYXJlZDxTdHlsZU1hcnF1ZWVEYXRhPgogewog
cHVibGljOgogICAgIFN0eWxlTWFycXVlZURhdGEoKTsKQEAgLTY0Nyw3ICs2NDYsNyBAQCBlbnVt
IEVCb3hPcmllbnQgeyBIT1JJWk9OVEFMLCBWRVJUSUNBTCB9CiBlbnVtIEVCb3hMaW5lcyB7IFNJ
TkdMRSwgTVVMVElQTEUgfTsKIGVudW0gRUJveERpcmVjdGlvbiB7IEJOT1JNQUwsIEJSRVZFUlNF
IH07CiAKLWNsYXNzIFN0eWxlRmxleGlibGVCb3hEYXRhIDogcHVibGljIFNoYXJlZDxTdHlsZUZs
ZXhpYmxlQm94RGF0YT4sIHB1YmxpYyBGYXN0QWxsb2NhdGVkCitjbGFzcyBTdHlsZUZsZXhpYmxl
Qm94RGF0YSA6IHB1YmxpYyBTaGFyZWQ8U3R5bGVGbGV4aWJsZUJveERhdGE+CiB7CiBwdWJsaWM6
CiAgICAgU3R5bGVGbGV4aWJsZUJveERhdGEoKTsKQEAgLTY2OSw3ICs2NjgsNyBAQCBwdWJsaWM6
CiB9OwogCiAvLyBUaGlzIHN0cnVjdCBob2xkcyBpbmZvcm1hdGlvbiBhYm91dCBzaGFkb3dzIGZv
ciB0aGUgdGV4dC1zaGFkb3cgYW5kIGJveC1zaGFkb3cgcHJvcGVydGllcy4KLXN0cnVjdCBTaGFk
b3dEYXRhIDogcHVibGljIEZhc3RBbGxvY2F0ZWQgeworc3RydWN0IFNoYWRvd0RhdGEgewogICAg
IFNoYWRvd0RhdGEoaW50IF94LCBpbnQgX3ksIGludCBfYmx1ciwgY29uc3QgUUNvbG9yJiBfY29s
b3IpCiAgICAgOngoX3gpLCB5KF95KSwgYmx1cihfYmx1ciksIGNvbG9yKF9jb2xvciksIG5leHQo
MCkge30KICAgICBTaGFkb3dEYXRhKGNvbnN0IFNoYWRvd0RhdGEmIG8pOwpAQCAtNzY0LDcgKzc2
Myw3IEBAIGVudW0gRUFwcGVhcmFuY2UgewogLy8gVGhpcyBzdHJ1Y3QgaXMgZm9yIHJhcmVseSB1
c2VkIG5vbi1pbmhlcml0ZWQgQ1NTMyBwcm9wZXJ0aWVzLiAgQnkgZ3JvdXBpbmcgdGhlbSB0b2dl
dGhlciwKIC8vIHdlIHNhdmUgc3BhY2UsIGFuZCBvbmx5IGFsbG9jYXRlIHRoaXMgb2JqZWN0IHdo
ZW4gc29tZW9uZSBhY3R1YWxseSB1c2VzCiAvLyBhIG5vbi1pbmhlcml0ZWQgQ1NTMyBwcm9wZXJ0
eS4KLWNsYXNzIFN0eWxlQ1NTM05vbkluaGVyaXRlZERhdGEgOiBwdWJsaWMgU2hhcmVkPFN0eWxl
Q1NTM05vbkluaGVyaXRlZERhdGE+LCBwdWJsaWMgRmFzdEFsbG9jYXRlZAorY2xhc3MgU3R5bGVD
U1MzTm9uSW5oZXJpdGVkRGF0YSA6IHB1YmxpYyBTaGFyZWQ8U3R5bGVDU1MzTm9uSW5oZXJpdGVk
RGF0YT4KIHsKIHB1YmxpYzoKICAgICBTdHlsZUNTUzNOb25Jbmhlcml0ZWREYXRhKCk7CkBAIC04
MDQsNyArODAzLDcgQEAgcHVibGljOgogLy8gVGhpcyBzdHJ1Y3QgaXMgZm9yIHJhcmVseSB1c2Vk
IGluaGVyaXRlZCBDU1MzIHByb3BlcnRpZXMuICBCeSBncm91cGluZyB0aGVtIHRvZ2V0aGVyLAog
Ly8gd2Ugc2F2ZSBzcGFjZSwgYW5kIG9ubHkgYWxsb2NhdGUgdGhpcyBvYmplY3Qgd2hlbiBzb21l
b25lIGFjdHVhbGx5IHVzZXMKIC8vIGFuIGluaGVyaXRlZCBDU1MzIHByb3BlcnR5LgotY2xhc3Mg
U3R5bGVDU1MzSW5oZXJpdGVkRGF0YSA6IHB1YmxpYyBTaGFyZWQ8U3R5bGVDU1MzSW5oZXJpdGVk
RGF0YT4sIHB1YmxpYyBGYXN0QWxsb2NhdGVkCitjbGFzcyBTdHlsZUNTUzNJbmhlcml0ZWREYXRh
IDogcHVibGljIFNoYXJlZDxTdHlsZUNTUzNJbmhlcml0ZWREYXRhPgogewogcHVibGljOgogICAg
IFN0eWxlQ1NTM0luaGVyaXRlZERhdGEoKTsKSW5kZXg6IFdlYkNvcmUva2h0bWwvcmVuZGVyaW5n
L3JlbmRlcl90YWJsZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUv
a2h0bWwvcmVuZGVyaW5nL3JlbmRlcl90YWJsZS5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEu
MTMzCmRpZmYgLXAgLXUgLXIxLjEzMyBXZWJDb3JlL2todG1sL3JlbmRlcmluZy9yZW5kZXJfdGFi
bGUuY3BwCi0tLSBXZWJDb3JlL2todG1sL3JlbmRlcmluZy9yZW5kZXJfdGFibGUuY3BwCTI5IFNl
cCAyMDA1IDIwOjEwOjU4IC0wMDAwCTEuMTMzCisrKyBXZWJDb3JlL2todG1sL3JlbmRlcmluZy9y
ZW5kZXJfdGFibGUuY3BwCTMgT2N0IDIwMDUgMDc6MzU6NTQgLTAwMDAKQEAgLTI4LDYgKzI4LDcg
QEAKIC8vI2RlZmluZSBUQUJMRV9QUklOVAogLy8jZGVmaW5lIERFQlVHX0xBWU9VVAogLy8jZGVm
aW5lIEJPWF9ERUJVRworI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgInJlbmRlcmluZy9y
ZW5kZXJfdGFibGUuaCIKICNpbmNsdWRlICJyZW5kZXJpbmcvdGFibGVfbGF5b3V0LmgiCiAjaW5j
bHVkZSAiaHRtbC9odG1sX3RhYmxlaW1wbC5oIgpJbmRleDogV2ViQ29yZS9raHRtbC9yZW5kZXJp
bmcvcmVuZGVyX3RleHQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3Jl
L2todG1sL3JlbmRlcmluZy9yZW5kZXJfdGV4dC5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEu
MTk5CmRpZmYgLXAgLXUgLXIxLjE5OSBXZWJDb3JlL2todG1sL3JlbmRlcmluZy9yZW5kZXJfdGV4
dC5jcHAKLS0tIFdlYkNvcmUva2h0bWwvcmVuZGVyaW5nL3JlbmRlcl90ZXh0LmNwcAkyNCBTZXAg
MjAwNSAxMTo0NToxNiAtMDAwMAkxLjE5OQorKysgV2ViQ29yZS9raHRtbC9yZW5kZXJpbmcvcmVu
ZGVyX3RleHQuY3BwCTMgT2N0IDIwMDUgMDc6MzU6NTUgLTAwMDAKQEAgLTI0LDYgKzI0LDcgQEAK
IC8vI2RlZmluZSBERUJVR19MQVlPVVQKIC8vI2RlZmluZSBCSURJX0RFQlVHCiAKKyNpbmNsdWRl
ICJjb25maWcuaCIKICNpbmNsdWRlICJyZW5kZXJpbmcvcmVuZGVyX3RleHQuaCIKIAogI2luY2x1
ZGUgInJlbmRlcmluZy9yZW5kZXJfY2FudmFzLmgiCkluZGV4OiBXZWJDb3JlL2todG1sL3JlbmRl
cmluZy9yZW5kZXJfdGhlbWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJD
b3JlL2todG1sL3JlbmRlcmluZy9yZW5kZXJfdGhlbWUuY3BwLHYKcmV0cmlldmluZyByZXZpc2lv
biAxLjEwCmRpZmYgLXAgLXUgLXIxLjEwIFdlYkNvcmUva2h0bWwvcmVuZGVyaW5nL3JlbmRlcl90
aGVtZS5jcHAKLS0tIFdlYkNvcmUva2h0bWwvcmVuZGVyaW5nL3JlbmRlcl90aGVtZS5jcHAJMjUg
QXVnIDIwMDUgMjM6MTM6NTQgLTAwMDAJMS4xMAorKysgV2ViQ29yZS9raHRtbC9yZW5kZXJpbmcv
cmVuZGVyX3RoZW1lLmNwcAkzIE9jdCAyMDA1IDA3OjM1OjU1IC0wMDAwCkBAIC0xOSw2ICsxOSw3
IEBACiAgKiBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS4KICAqLwogCisjaW5jbHVkZSAiY29u
ZmlnLmgiCiAjaW5jbHVkZSAicmVuZGVyX3RoZW1lLmgiCiAKICNpbmNsdWRlICJyZW5kZXJfc3R5
bGUuaCIKSW5kZXg6IFdlYkNvcmUva2h0bWwvcmVuZGVyaW5nL3JlbmRlcl90aGVtZV9tYWMubW0K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva2h0bWwvcmVuZGVyaW5nL3Jl
bmRlcl90aGVtZV9tYWMubW0sdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNwpkaWZmIC1wIC11IC1y
MS43IFdlYkNvcmUva2h0bWwvcmVuZGVyaW5nL3JlbmRlcl90aGVtZV9tYWMubW0KLS0tIFdlYkNv
cmUva2h0bWwvcmVuZGVyaW5nL3JlbmRlcl90aGVtZV9tYWMubW0JMjkgU2VwIDIwMDUgMjA6MTA6
NTggLTAwMDAJMS43CisrKyBXZWJDb3JlL2todG1sL3JlbmRlcmluZy9yZW5kZXJfdGhlbWVfbWFj
Lm1tCTMgT2N0IDIwMDUgMDc6MzU6NTUgLTAwMDAKQEAgLTE5LDYgKzE5LDcgQEAKICAqIEJvc3Rv
biwgTUEgMDIxMTEtMTMwNywgVVNBLgogICovCiAKKyNpbmNsdWRlICJjb25maWcuaCIKICNpbXBv
cnQgInJlbmRlcl90aGVtZV9tYWMuaCIKIAogI2ltcG9ydCAicmVuZGVyX3N0eWxlLmgiCkluZGV4
OiBXZWJDb3JlL2todG1sL3JlbmRlcmluZy90YWJsZV9sYXlvdXQuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNT
IGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2todG1sL3JlbmRlcmluZy90YWJsZV9sYXlvdXQuY3Bw
LHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjI0CmRpZmYgLXAgLXUgLXIxLjI0IFdlYkNvcmUva2h0
bWwvcmVuZGVyaW5nL3RhYmxlX2xheW91dC5jcHAKLS0tIFdlYkNvcmUva2h0bWwvcmVuZGVyaW5n
L3RhYmxlX2xheW91dC5jcHAJMjkgU2VwIDIwMDUgMjA6MTA6NTggLTAwMDAJMS4yNAorKysgV2Vi
Q29yZS9raHRtbC9yZW5kZXJpbmcvdGFibGVfbGF5b3V0LmNwcAkzIE9jdCAyMDA1IDA3OjM1OjU2
IC0wMDAwCkBAIC0yMiw2ICsyMiw3IEBACiAgKgogICogJElkOiB0YWJsZV9sYXlvdXQuY3BwLHYg
MS4yNCAyMDA1LzA5LzI5IDIwOjEwOjU4IGh5YXR0IEV4cCAkCiAgKi8KKyNpbmNsdWRlICJjb25m
aWcuaCIKICNpbmNsdWRlICJ0YWJsZV9sYXlvdXQuaCIKICNpbmNsdWRlICJyZW5kZXJfdGFibGUu
aCIKIApJbmRleDogV2ViQ29yZS9raHRtbC94YmwveGJsX2JpbmRpbmcuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
UkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2todG1sL3hibC94YmxfYmluZGluZy5jcHAsdgpy
ZXRyaWV2aW5nIHJldmlzaW9uIDEuMwpkaWZmIC1wIC11IC1yMS4zIFdlYkNvcmUva2h0bWwveGJs
L3hibF9iaW5kaW5nLmNwcAotLS0gV2ViQ29yZS9raHRtbC94YmwveGJsX2JpbmRpbmcuY3BwCTI1
IEF1ZyAyMDA1IDE3OjQ3OjE5IC0wMDAwCTEuMworKysgV2ViQ29yZS9raHRtbC94YmwveGJsX2Jp
bmRpbmcuY3BwCTMgT2N0IDIwMDUgMDc6MzU6NTYgLTAwMDAKQEAgLTEsNSArMSw2IEBACiAjaWZu
ZGVmIEtIVE1MX05PX1hCTAogCisjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSA8a3VybC5o
PgogI2luY2x1ZGUgInhibF9wcm90b2JpbmRpbmcuaCIKICNpbmNsdWRlICJ4YmxfYmluZGluZy5o
IgpJbmRleDogV2ViQ29yZS9raHRtbC94YmwveGJsX2JpbmRpbmdfbWFuYWdlci5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva2h0bWwveGJsL3hibF9iaW5kaW5nX21h
bmFnZXIuY3BwLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjIKZGlmZiAtcCAtdSAtcjEuMiBXZWJD
b3JlL2todG1sL3hibC94YmxfYmluZGluZ19tYW5hZ2VyLmNwcAotLS0gV2ViQ29yZS9raHRtbC94
YmwveGJsX2JpbmRpbmdfbWFuYWdlci5jcHAJMzAgSmFuIDIwMDQgMDk6MDY6NDQgLTAwMDAJMS4y
CisrKyBXZWJDb3JlL2todG1sL3hibC94YmxfYmluZGluZ19tYW5hZ2VyLmNwcAkzIE9jdCAyMDA1
IDA3OjM1OjU2IC0wMDAwCkBAIC0xLDUgKzEsNiBAQAogI2lmbmRlZiBLSFRNTF9OT19YQkwKIAor
I2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgInFwdHJkaWN0LmgiCiAjaW5jbHVkZSAieG1s
L2RvbV9kb2NpbXBsLmgiCiAjaW5jbHVkZSAieG1sL2RvbV9lbGVtZW50aW1wbC5oIgpJbmRleDog
V2ViQ29yZS9raHRtbC94YmwveGJsX2RvY2ltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9j
dnMvcm9vdC9XZWJDb3JlL2todG1sL3hibC94YmxfZG9jaW1wbC5jcHAsdgpyZXRyaWV2aW5nIHJl
dmlzaW9uIDEuNApkaWZmIC1wIC11IC1yMS40IFdlYkNvcmUva2h0bWwveGJsL3hibF9kb2NpbXBs
LmNwcAotLS0gV2ViQ29yZS9raHRtbC94YmwveGJsX2RvY2ltcGwuY3BwCTI1IEF1ZyAyMDA1IDE3
OjQ3OjE5IC0wMDAwCTEuNAorKysgV2ViQ29yZS9raHRtbC94YmwveGJsX2RvY2ltcGwuY3BwCTMg
T2N0IDIwMDUgMDc6MzU6NTYgLTAwMDAKQEAgLTEsNSArMSw2IEBACiAjaWZuZGVmIEtIVE1MX05P
X1hCTAogCisjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAieGJsX2RvY2ltcGwuaCIKICNp
bmNsdWRlICJ4YmxfdG9rZW5pemVyLmgiCiAjaW5jbHVkZSAieGJsX3Byb3RvYmluZGluZy5oIgpJ
bmRleDogV2ViQ29yZS9raHRtbC94YmwveGJsX3Byb3RvYmluZGluZy5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpS
Q1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva2h0bWwveGJsL3hibF9wcm90b2JpbmRpbmcuY3Bw
LHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjIKZGlmZiAtcCAtdSAtcjEuMiBXZWJDb3JlL2todG1s
L3hibC94YmxfcHJvdG9iaW5kaW5nLmNwcAotLS0gV2ViQ29yZS9raHRtbC94YmwveGJsX3Byb3Rv
YmluZGluZy5jcHAJMzAgSmFuIDIwMDQgMDk6MDY6NDQgLTAwMDAJMS4yCisrKyBXZWJDb3JlL2to
dG1sL3hibC94YmxfcHJvdG9iaW5kaW5nLmNwcAkzIE9jdCAyMDA1IDA3OjM1OjU2IC0wMDAwCkBA
IC0xLDUgKzEsNiBAQAogI2lmbmRlZiBLSFRNTF9OT19YQkwKIAorI2luY2x1ZGUgImNvbmZpZy5o
IgogI2luY2x1ZGUgInhibF9wcm90b2JpbmRpbmcuaCIKICNpbmNsdWRlICJ4YmxfZG9jaW1wbC5o
IgogCkluZGV4OiBXZWJDb3JlL2todG1sL3hibC94YmxfcHJvdG9oYW5kbGVyLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9raHRtbC94YmwveGJsX3Byb3RvaGFuZGxl
ci5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMwpkaWZmIC1wIC11IC1yMS4zIFdlYkNvcmUv
a2h0bWwveGJsL3hibF9wcm90b2hhbmRsZXIuY3BwCi0tLSBXZWJDb3JlL2todG1sL3hibC94Ymxf
cHJvdG9oYW5kbGVyLmNwcAkyNSBBdWcgMjAwNSAxNzo0NzoxOSAtMDAwMAkxLjMKKysrIFdlYkNv
cmUva2h0bWwveGJsL3hibF9wcm90b2hhbmRsZXIuY3BwCTMgT2N0IDIwMDUgMDc6MzU6NTYgLTAw
MDAKQEAgLTEsNSArMSw2IEBACiAjaWZuZGVmIEtIVE1MX05PX1hCTAogCisjaW5jbHVkZSAiY29u
ZmlnLmgiCiAjaW5jbHVkZSAicXN0cmluZ2xpc3QuaCIKICNpbmNsdWRlICJxc3RyaW5nLmgiCiAj
aW5jbHVkZSAieGJsX3Byb3RvaGFuZGxlci5oIgpJbmRleDogV2ViQ29yZS9raHRtbC94YmwveGJs
X3Byb3RvaW1wbGVtZW50YXRpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9X
ZWJDb3JlL2todG1sL3hibC94YmxfcHJvdG9pbXBsZW1lbnRhdGlvbi5jcHAsdgpyZXRyaWV2aW5n
IHJldmlzaW9uIDEuMgpkaWZmIC1wIC11IC1yMS4yIFdlYkNvcmUva2h0bWwveGJsL3hibF9wcm90
b2ltcGxlbWVudGF0aW9uLmNwcAotLS0gV2ViQ29yZS9raHRtbC94YmwveGJsX3Byb3RvaW1wbGVt
ZW50YXRpb24uY3BwCTMwIEphbiAyMDA0IDA5OjA2OjQ0IC0wMDAwCTEuMgorKysgV2ViQ29yZS9r
aHRtbC94YmwveGJsX3Byb3RvaW1wbGVtZW50YXRpb24uY3BwCTMgT2N0IDIwMDUgMDc6MzU6NTYg
LTAwMDAKQEAgLTEsNSArMSw2IEBACiAjaWZuZGVmIEtIVE1MX05PX1hCTAogCisjaW5jbHVkZSAi
Y29uZmlnLmgiCiAjaW5jbHVkZSAieGJsX3Byb3RvaW1wbGVtZW50YXRpb24uaCIKICNpbmNsdWRl
ICJ4YmxfcHJvdG9iaW5kaW5nLmgiCiAKSW5kZXg6IFdlYkNvcmUva2h0bWwveGJsL3hibF90b2tl
bml6ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2todG1sL3hi
bC94YmxfdG9rZW5pemVyLmNwcCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4zCmRpZmYgLXAgLXUg
LXIxLjMgV2ViQ29yZS9raHRtbC94YmwveGJsX3Rva2VuaXplci5jcHAKLS0tIFdlYkNvcmUva2h0
bWwveGJsL3hibF90b2tlbml6ZXIuY3BwCTE4IEp1bCAyMDA1IDIxOjQ0OjI4IC0wMDAwCTEuMwor
KysgV2ViQ29yZS9raHRtbC94YmwveGJsX3Rva2VuaXplci5jcHAJMyBPY3QgMjAwNSAwNzozNTo1
NiAtMDAwMApAQCAtMSw1ICsxLDYgQEAKICNpZm5kZWYgS0hUTUxfTk9fWEJMCiAKKyNpbmNsdWRl
ICJjb25maWcuaCIKICNpbmNsdWRlICJkb20vZG9tX25vZGUuaCIKICNpbmNsdWRlICJ4bWwvZG9t
X2VsZW1lbnRpbXBsLmgiCiAKSW5kZXg6IFdlYkNvcmUva2h0bWwveG1sL0V2ZW50TmFtZXMuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2todG1sL3htbC9FdmVudE5h
bWVzLmNwcCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4xCmRpZmYgLXAgLXUgLXIxLjEgV2ViQ29y
ZS9raHRtbC94bWwvRXZlbnROYW1lcy5jcHAKLS0tIFdlYkNvcmUva2h0bWwveG1sL0V2ZW50TmFt
ZXMuY3BwCTMxIEF1ZyAyMDA1IDA0OjM4OjQxIC0wMDAwCTEuMQorKysgV2ViQ29yZS9raHRtbC94
bWwvRXZlbnROYW1lcy5jcHAJMyBPY3QgMjAwNSAwNzozNTo1NiAtMDAwMApAQCAtMjIsNiArMjIs
NyBAQAogCiAjZGVmaW5lIERPTV9FVkVOVF9OQU1FU19ISURFX0dMT0JBTFMgMQogCisjaW5jbHVk
ZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgogCiB1c2luZyBET006OkF0b21p
Y1N0cmluZzsKSW5kZXg6IFdlYkNvcmUva2h0bWwveG1sL2RvbTJfZXZlbnRzaW1wbC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva2h0bWwveG1sL2RvbTJfZXZlbnRz
aW1wbC5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMzgKZGlmZiAtcCAtdSAtcjEuMzggV2Vi
Q29yZS9raHRtbC94bWwvZG9tMl9ldmVudHNpbXBsLmNwcAotLS0gV2ViQ29yZS9raHRtbC94bWwv
ZG9tMl9ldmVudHNpbXBsLmNwcAkxNiBTZXAgMjAwNSAyMjo0MjoxOSAtMDAwMAkxLjM4CisrKyBX
ZWJDb3JlL2todG1sL3htbC9kb20yX2V2ZW50c2ltcGwuY3BwCTMgT2N0IDIwMDUgMDc6MzU6NTcg
LTAwMDAKQEAgLTIxLDYgKzIxLDcgQEAKICAqIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLgog
ICovCiAKKyNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJ4bWwvZG9tMl9ldmVudHNpbXBs
LmgiCiAKICNpbmNsdWRlICJkb20vZG9tMl9ldmVudHMuaCIKSW5kZXg6IFdlYkNvcmUva2h0bWwv
eG1sL2RvbTJfZXZlbnRzaW1wbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJD
b3JlL2todG1sL3htbC9kb20yX2V2ZW50c2ltcGwuaCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4z
MQpkaWZmIC1wIC11IC1yMS4zMSBXZWJDb3JlL2todG1sL3htbC9kb20yX2V2ZW50c2ltcGwuaAot
LS0gV2ViQ29yZS9raHRtbC94bWwvZG9tMl9ldmVudHNpbXBsLmgJMjcgU2VwIDIwMDUgMjI6Mzc6
MjEgLTAwMDAJMS4zMQorKysgV2ViQ29yZS9raHRtbC94bWwvZG9tMl9ldmVudHNpbXBsLmgJMyBP
Y3QgMjAwNSAwNzozNTo1NyAtMDAwMApAQCAtNDQsNyArNDQsNyBAQCBjbGFzcyBFdmVudExpc3Rl
bmVyOwogY2xhc3MgTm9kZUltcGw7CiBjbGFzcyBDbGlwYm9hcmRJbXBsOwogCi1jbGFzcyBFdmVu
dEltcGwgOiBwdWJsaWMga2h0bWw6OlNoYXJlZDxFdmVudEltcGw+LCBwdWJsaWMgRmFzdEFsbG9j
YXRlZAorY2xhc3MgRXZlbnRJbXBsIDogcHVibGljIGtodG1sOjpTaGFyZWQ8RXZlbnRJbXBsPgog
ewogcHVibGljOgogICAgIEV2ZW50SW1wbCgpOwpAQCAtMzU5LDcgKzM1OSw3IEBAIHByaXZhdGU6
CiAgICAgaW50IG1fd2hlZWxEZWx0YTsKIH07CiAKLWNsYXNzIFJlZ2lzdGVyZWRFdmVudExpc3Rl
bmVyIDogcHVibGljIEZhc3RBbGxvY2F0ZWQgeworY2xhc3MgUmVnaXN0ZXJlZEV2ZW50TGlzdGVu
ZXIgewogcHVibGljOgogICAgIFJlZ2lzdGVyZWRFdmVudExpc3RlbmVyKGNvbnN0IEF0b21pY1N0
cmluZyAmZXZlbnRUeXBlLCBFdmVudExpc3RlbmVyICpsaXN0ZW5lciwgYm9vbCB1c2VDYXB0dXJl
KTsKICAgICB+UmVnaXN0ZXJlZEV2ZW50TGlzdGVuZXIoKTsKQEAgLTM4MSw3ICszODEsNyBAQCBi
b29sIG9wZXJhdG9yPT0oY29uc3QgUmVnaXN0ZXJlZEV2ZW50TGlzCiBpbmxpbmUgYm9vbCBvcGVy
YXRvciE9KGNvbnN0IFJlZ2lzdGVyZWRFdmVudExpc3RlbmVyICZhLCBjb25zdCBSZWdpc3RlcmVk
RXZlbnRMaXN0ZW5lciAmYikgeyByZXR1cm4gIShhID09IGIpOyB9CiAKIC8vIFN0YXRlIGF2YWls
YWJsZSBkdXJpbmcgSUUncyBldmVudHMgZm9yIGRyYWcgYW5kIGRyb3AgYW5kIGNvcHkvcGFzdGUK
LWNsYXNzIENsaXBib2FyZEltcGwgOiBwdWJsaWMga2h0bWw6OlNoYXJlZDxDbGlwYm9hcmRJbXBs
PiwgcHVibGljIEZhc3RBbGxvY2F0ZWQgeworY2xhc3MgQ2xpcGJvYXJkSW1wbCA6IHB1YmxpYyBr
aHRtbDo6U2hhcmVkPENsaXBib2FyZEltcGw+IHsKIHB1YmxpYzoKICAgICBDbGlwYm9hcmRJbXBs
KCkgeyB9CiAgICAgdmlydHVhbCB+Q2xpcGJvYXJkSW1wbCgpOwpJbmRleDogV2ViQ29yZS9raHRt
bC94bWwvZG9tMl9yYW5nZWltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9X
ZWJDb3JlL2todG1sL3htbC9kb20yX3JhbmdlaW1wbC5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9u
IDEuNDQKZGlmZiAtcCAtdSAtcjEuNDQgV2ViQ29yZS9raHRtbC94bWwvZG9tMl9yYW5nZWltcGwu
Y3BwCi0tLSBXZWJDb3JlL2todG1sL3htbC9kb20yX3JhbmdlaW1wbC5jcHAJMTYgU2VwIDIwMDUg
MjI6NDI6MTkgLTAwMDAJMS40NAorKysgV2ViQ29yZS9raHRtbC94bWwvZG9tMl9yYW5nZWltcGwu
Y3BwCTMgT2N0IDIwMDUgMDc6MzU6NTcgLTAwMDAKQEAgLTIzLDYgKzIzLDcgQEAKICAqIEJvc3Rv
biwgTUEgMDIxMTEtMTMwNywgVVNBLgogICovCiAKKyNpbmNsdWRlICJjb25maWcuaCIKICNpbmNs
dWRlICJkb20yX3JhbmdlaW1wbC5oIgogCiAjaW5jbHVkZSAiZG9tL2RvbV9leGNlcHRpb24uaCIK
SW5kZXg6IFdlYkNvcmUva2h0bWwveG1sL2RvbTJfcmFuZ2VpbXBsLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1Mg
ZmlsZTogL2N2cy9yb290L1dlYkNvcmUva2h0bWwveG1sL2RvbTJfcmFuZ2VpbXBsLmgsdgpyZXRy
aWV2aW5nIHJldmlzaW9uIDEuMjgKZGlmZiAtcCAtdSAtcjEuMjggV2ViQ29yZS9raHRtbC94bWwv
ZG9tMl9yYW5nZWltcGwuaAotLS0gV2ViQ29yZS9raHRtbC94bWwvZG9tMl9yYW5nZWltcGwuaAky
NyBTZXAgMjAwNSAyMjozNzoyMSAtMDAwMAkxLjI4CisrKyBXZWJDb3JlL2todG1sL3htbC9kb20y
X3JhbmdlaW1wbC5oCTMgT2N0IDIwMDUgMDc6MzU6NTcgLTAwMDAKQEAgLTI5LDcgKzI5LDYgQEAK
IAogI2luY2x1ZGUgImRvbS9kb20yX3JhbmdlLmgiCiAjaW5jbHVkZSAibWlzYy9zaGFyZWQuaCIK
LSNpbmNsdWRlIDxreG1sY29yZS9GYXN0TWFsbG9jLmg+CiAKIG5hbWVzcGFjZSBET00gewogCkBA
IC0zOSw3ICszOCw3IEBAIGNsYXNzIERPTVN0cmluZzsKIGNsYXNzIE5vZGVJbXBsOwogY2xhc3Mg
UG9zaXRpb247CiAKLWNsYXNzIFJhbmdlSW1wbCA6IHB1YmxpYyBraHRtbDo6U2hhcmVkPFJhbmdl
SW1wbD4sIHB1YmxpYyBGYXN0QWxsb2NhdGVkCitjbGFzcyBSYW5nZUltcGwgOiBwdWJsaWMga2h0
bWw6OlNoYXJlZDxSYW5nZUltcGw+CiB7CiAgICAgZnJpZW5kIGNsYXNzIERvY3VtZW50SW1wbDsK
IHB1YmxpYzoKSW5kZXg6IFdlYkNvcmUva2h0bWwveG1sL2RvbTJfdHJhdmVyc2FsaW1wbC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva2h0bWwveG1sL2RvbTJfdHJh
dmVyc2FsaW1wbC5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMTIKZGlmZiAtcCAtdSAtcjEu
MTIgV2ViQ29yZS9raHRtbC94bWwvZG9tMl90cmF2ZXJzYWxpbXBsLmNwcAotLS0gV2ViQ29yZS9r
aHRtbC94bWwvZG9tMl90cmF2ZXJzYWxpbXBsLmNwcAkxNiBTZXAgMjAwNSAyMjo0MjoxOSAtMDAw
MAkxLjEyCisrKyBXZWJDb3JlL2todG1sL3htbC9kb20yX3RyYXZlcnNhbGltcGwuY3BwCTMgT2N0
IDIwMDUgMDc6MzU6NTggLTAwMDAKQEAgLTIyLDYgKzIyLDcgQEAKICAqIEJvc3RvbiwgTUEgMDIx
MTEtMTMwNywgVVNBLgogICovCiAKKyNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJ4bWwv
ZG9tMl90cmF2ZXJzYWxpbXBsLmgiCiAjaW5jbHVkZSAiZG9tL2RvbV9leGNlcHRpb24uaCIKICNp
bmNsdWRlICJ4bWwvZG9tX2RvY2ltcGwuaCIKSW5kZXg6IFdlYkNvcmUva2h0bWwveG1sL2RvbTJf
dHJhdmVyc2FsaW1wbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2to
dG1sL3htbC9kb20yX3RyYXZlcnNhbGltcGwuaCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4xMgpk
aWZmIC1wIC11IC1yMS4xMiBXZWJDb3JlL2todG1sL3htbC9kb20yX3RyYXZlcnNhbGltcGwuaAot
LS0gV2ViQ29yZS9raHRtbC94bWwvZG9tMl90cmF2ZXJzYWxpbXBsLmgJMjcgU2VwIDIwMDUgMjI6
Mzc6MjEgLTAwMDAJMS4xMgorKysgV2ViQ29yZS9raHRtbC94bWwvZG9tMl90cmF2ZXJzYWxpbXBs
LmgJMyBPY3QgMjAwNSAwNzozNTo1OCAtMDAwMApAQCAtMjgsMTQgKzI4LDEzIEBACiAKICNpbmNs
dWRlICJkb20vZG9tMl90cmF2ZXJzYWwuaCIKICNpbmNsdWRlICJtaXNjL3NoYXJlZC5oIgotI2lu
Y2x1ZGUgPGt4bWxjb3JlL0Zhc3RNYWxsb2MuaD4KIAogbmFtZXNwYWNlIERPTSB7CiAKIGNsYXNz
IE5vZGVJbXBsOwogY2xhc3MgRG9jdW1lbnRJbXBsOwogCi1jbGFzcyBOb2RlRmlsdGVySW1wbCA6
IHB1YmxpYyBraHRtbDo6U2hhcmVkPE5vZGVGaWx0ZXJJbXBsPiwgcHVibGljIEZhc3RBbGxvY2F0
ZWQKK2NsYXNzIE5vZGVGaWx0ZXJJbXBsIDogcHVibGljIGtodG1sOjpTaGFyZWQ8Tm9kZUZpbHRl
ckltcGw+CiB7CiBwdWJsaWM6CiAgICAgTm9kZUZpbHRlckltcGwoTm9kZUZpbHRlckNvbmRpdGlv
biAqKTsKQEAgLTUwLDcgKzQ5LDcgQEAgcHJpdmF0ZToKICAgICBOb2RlRmlsdGVyQ29uZGl0aW9u
ICptX2NvbmRpdGlvbjsKIH07CiAKLWNsYXNzIFRyYXZlcnNhbEltcGwgOiBwdWJsaWMga2h0bWw6
OlNoYXJlZDxUcmF2ZXJzYWxJbXBsPiwgcHVibGljIEZhc3RBbGxvY2F0ZWQKK2NsYXNzIFRyYXZl
cnNhbEltcGwgOiBwdWJsaWMga2h0bWw6OlNoYXJlZDxUcmF2ZXJzYWxJbXBsPgogewogcHVibGlj
OgogICAgIFRyYXZlcnNhbEltcGwoTm9kZUltcGwgKiwgaW50IHdoYXRUb1Nob3csIE5vZGVGaWx0
ZXJJbXBsICosIGJvb2wgZXhwYW5kRW50aXR5UmVmZXJlbmNlcyk7CkluZGV4OiBXZWJDb3JlL2to
dG1sL3htbC9kb20yX3ZpZXdzaW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290
L1dlYkNvcmUva2h0bWwveG1sL2RvbTJfdmlld3NpbXBsLmNwcCx2CnJldHJpZXZpbmcgcmV2aXNp
b24gMS41CmRpZmYgLXAgLXUgLXIxLjUgV2ViQ29yZS9raHRtbC94bWwvZG9tMl92aWV3c2ltcGwu
Y3BwCi0tLSBXZWJDb3JlL2todG1sL3htbC9kb20yX3ZpZXdzaW1wbC5jcHAJMTYgTm92IDIwMDQg
MDA6NDc6NTQgLTAwMDAJMS41CisrKyBXZWJDb3JlL2todG1sL3htbC9kb20yX3ZpZXdzaW1wbC5j
cHAJMyBPY3QgMjAwNSAwNzozNTo1OCAtMDAwMApAQCAtMjEsNiArMjEsNyBAQAogICoKICAqLwog
CisjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiZG9tMl92aWV3c2ltcGwuaCIKIAogI2lu
Y2x1ZGUgImNzcy9jc3NfY29tcHV0ZWRzdHlsZS5oIgpJbmRleDogV2ViQ29yZS9raHRtbC94bWwv
ZG9tMl92aWV3c2ltcGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9r
aHRtbC94bWwvZG9tMl92aWV3c2ltcGwuaCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS43CmRpZmYg
LXAgLXUgLXIxLjcgV2ViQ29yZS9raHRtbC94bWwvZG9tMl92aWV3c2ltcGwuaAotLS0gV2ViQ29y
ZS9raHRtbC94bWwvZG9tMl92aWV3c2ltcGwuaAkyNyBTZXAgMjAwNSAyMjozNzoyMSAtMDAwMAkx
LjcKKysrIFdlYkNvcmUva2h0bWwveG1sL2RvbTJfdmlld3NpbXBsLmgJMyBPY3QgMjAwNSAwNzoz
NTo1OCAtMDAwMApAQCAtMjUsNyArMjUsNiBAQAogCiAjaW5jbHVkZSAiY3NzL2Nzc192YWx1ZWlt
cGwuaCIKICNpbmNsdWRlICJtaXNjL3NoYXJlZC5oIgotI2luY2x1ZGUgPGt4bWxjb3JlL0Zhc3RN
YWxsb2MuaD4KIAogbmFtZXNwYWNlIERPTSB7CiAKQEAgLTM1LDcgKzM0LDcgQEAgY2xhc3MgRWxl
bWVudEltcGw7CiBjbGFzcyBET01TdHJpbmdJbXBsOwogCiAvLyBJbnRyb2R1Y2VkIGluIERPTSBM
ZXZlbCAyOgotY2xhc3MgQWJzdHJhY3RWaWV3SW1wbCA6IHB1YmxpYyBraHRtbDo6U2hhcmVkPEFi
c3RyYWN0Vmlld0ltcGw+LCBwdWJsaWMgRmFzdEFsbG9jYXRlZAorY2xhc3MgQWJzdHJhY3RWaWV3
SW1wbCA6IHB1YmxpYyBraHRtbDo6U2hhcmVkPEFic3RyYWN0Vmlld0ltcGw+CiB7CiBwdWJsaWM6
CiAgICAgQWJzdHJhY3RWaWV3SW1wbChEb2N1bWVudEltcGwgKl9kb2N1bWVudCk7CkluZGV4OiBX
ZWJDb3JlL2todG1sL3htbC9kb21fYXRvbWljc3RyaW5nLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxl
OiAvY3ZzL3Jvb3QvV2ViQ29yZS9raHRtbC94bWwvZG9tX2F0b21pY3N0cmluZy5jcHAsdgpyZXRy
aWV2aW5nIHJldmlzaW9uIDEuMTMKZGlmZiAtcCAtdSAtcjEuMTMgV2ViQ29yZS9raHRtbC94bWwv
ZG9tX2F0b21pY3N0cmluZy5jcHAKLS0tIFdlYkNvcmUva2h0bWwveG1sL2RvbV9hdG9taWNzdHJp
bmcuY3BwCTI4IFNlcCAyMDA1IDIyOjAxOjM5IC0wMDAwCTEuMTMKKysrIFdlYkNvcmUva2h0bWwv
eG1sL2RvbV9hdG9taWNzdHJpbmcuY3BwCTMgT2N0IDIwMDUgMDc6MzU6NTggLTAwMDAKQEAgLTI4
LDYgKzI4LDcgQEAKIAogI2RlZmluZSBLSFRNTF9BVE9NSUNTVFJJTkdfSElERV9HTE9CQUxTIDEK
IAorI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgImRvbV9hdG9taWNzdHJpbmcuaCIKICNp
bmNsdWRlICJ4bWwvZG9tX3N0cmluZ2ltcGwuaCIKICNpbmNsdWRlIDxreG1sY29yZS9IYXNoU2V0
Lmg+CkluZGV4OiBXZWJDb3JlL2todG1sL3htbC9kb21fZG9jaW1wbC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpS
Q1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva2h0bWwveG1sL2RvbV9kb2NpbXBsLmNwcCx2CnJl
dHJpZXZpbmcgcmV2aXNpb24gMS4yNTcKZGlmZiAtcCAtdSAtcjEuMjU3IFdlYkNvcmUva2h0bWwv
eG1sL2RvbV9kb2NpbXBsLmNwcAotLS0gV2ViQ29yZS9raHRtbC94bWwvZG9tX2RvY2ltcGwuY3Bw
CTI0IFNlcCAyMDA1IDAxOjE5OjAyIC0wMDAwCTEuMjU3CisrKyBXZWJDb3JlL2todG1sL3htbC9k
b21fZG9jaW1wbC5jcHAJMyBPY3QgMjAwNSAwNzozNTo1OSAtMDAwMApAQCAtMjIsNiArMjIsNyBA
QAogICogQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuCiAgKi8KIAorI2luY2x1ZGUgImNvbmZp
Zy5oIgogI2luY2x1ZGUgImRvbV9kb2NpbXBsLmgiCiAKICNpbmNsdWRlICJkb20vZG9tX2V4Y2Vw
dGlvbi5oIgpJbmRleDogV2ViQ29yZS9raHRtbC94bWwvZG9tX2RvY2ltcGwuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9raHRtbC94bWwvZG9tX2RvY2ltcGwuaCx2CnJl
dHJpZXZpbmcgcmV2aXNpb24gMS4xMjgKZGlmZiAtcCAtdSAtcjEuMTI4IFdlYkNvcmUva2h0bWwv
eG1sL2RvbV9kb2NpbXBsLmgKLS0tIFdlYkNvcmUva2h0bWwveG1sL2RvbV9kb2NpbXBsLmgJMjcg
U2VwIDIwMDUgMjI6Mzc6MjEgLTAwMDAJMS4xMjgKKysrIFdlYkNvcmUva2h0bWwveG1sL2RvbV9k
b2NpbXBsLmgJMyBPY3QgMjAwNSAwNzozNjowMCAtMDAwMApAQCAtMTI1LDcgKzEyNSw3IEBAIG5h
bWVzcGFjZSBET00gewogICAgICAgICB9CiAgICAgfTsKICAgICAKLWNsYXNzIERPTUltcGxlbWVu
dGF0aW9uSW1wbCA6IHB1YmxpYyBraHRtbDo6U2hhcmVkPERPTUltcGxlbWVudGF0aW9uSW1wbD4s
IHB1YmxpYyBGYXN0QWxsb2NhdGVkCitjbGFzcyBET01JbXBsZW1lbnRhdGlvbkltcGwgOiBwdWJs
aWMga2h0bWw6OlNoYXJlZDxET01JbXBsZW1lbnRhdGlvbkltcGw+CiB7CiBwdWJsaWM6CiAgICAg
RE9NSW1wbGVtZW50YXRpb25JbXBsKCk7CkluZGV4OiBXZWJDb3JlL2todG1sL3htbC9kb21fZWxl
bWVudGltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2todG1s
L3htbC9kb21fZWxlbWVudGltcGwuY3BwLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjg0CmRpZmYg
LXAgLXUgLXIxLjg0IFdlYkNvcmUva2h0bWwveG1sL2RvbV9lbGVtZW50aW1wbC5jcHAKLS0tIFdl
YkNvcmUva2h0bWwveG1sL2RvbV9lbGVtZW50aW1wbC5jcHAJMiBPY3QgMjAwNSAxNzoxNzo0NyAt
MDAwMAkxLjg0CisrKyBXZWJDb3JlL2todG1sL3htbC9kb21fZWxlbWVudGltcGwuY3BwCTMgT2N0
IDIwMDUgMDc6MzY6MDAgLTAwMDAKQEAgLTI0LDYgKzI0LDcgQEAKICAqLwogCiAvLyNkZWZpbmUg
RVZFTlRfREVCVUcKKyNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJkb20vZG9tX2V4Y2Vw
dGlvbi5oIgogI2luY2x1ZGUgImRvbS9kb21fbm9kZS5oIgogI2luY2x1ZGUgInhtbC9kb21fdGV4
dGltcGwuaCIKSW5kZXg6IFdlYkNvcmUva2h0bWwveG1sL2RvbV9lbGVtZW50aW1wbC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2todG1sL3htbC9kb21fZWxlbWVudGlt
cGwuaCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS41NApkaWZmIC1wIC11IC1yMS41NCBXZWJDb3Jl
L2todG1sL3htbC9kb21fZWxlbWVudGltcGwuaAotLS0gV2ViQ29yZS9raHRtbC94bWwvZG9tX2Vs
ZW1lbnRpbXBsLmgJMiBPY3QgMjAwNSAxNzoxNzo0NyAtMDAwMAkxLjU0CisrKyBXZWJDb3JlL2to
dG1sL3htbC9kb21fZWxlbWVudGltcGwuaAkzIE9jdCAyMDA1IDA3OjM2OjAxIC0wMDAwCkBAIC01
OCw3ICs1OCw3IEBAIGNsYXNzIEF0dHJJbXBsOwogLy8gdGhlIGFjdHVhbCBBdHRyIChBdHRySW1w
bCkgd2l0aCBpdHMgdmFsdWUgYXMgdGV4dGNoaWxkCiAvLyBpcyBvbmx5IGFsbG9jYXRlZCBvbiBk
ZW1hbmQgYnkgdGhlIERPTSBiaW5kaW5ncy4KIC8vIEFueSB1c2Ugb2YgQXR0ckltcGwgaW5zaWRl
IGtodG1sIHNob3VsZCBiZSBhdm9pZGVkLgotIGNsYXNzIEF0dHJpYnV0ZUltcGwgOiBwdWJsaWMg
a2h0bWw6OlNoYXJlZDxBdHRyaWJ1dGVJbXBsPiwgcHVibGljIEZhc3RBbGxvY2F0ZWQKKyBjbGFz
cyBBdHRyaWJ1dGVJbXBsIDogcHVibGljIGtodG1sOjpTaGFyZWQ8QXR0cmlidXRlSW1wbD4KIHsK
ICAgICBmcmllbmQgY2xhc3MgTmFtZWRBdHRyTWFwSW1wbDsKICAgICBmcmllbmQgY2xhc3MgRWxl
bWVudEltcGw7CkluZGV4OiBXZWJDb3JlL2todG1sL3htbC9kb21fbm9kZWltcGwuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2todG1sL3htbC9kb21fbm9kZWltcGwu
Y3BwLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjE5NApkaWZmIC1wIC11IC1yMS4xOTQgV2ViQ29y
ZS9raHRtbC94bWwvZG9tX25vZGVpbXBsLmNwcAotLS0gV2ViQ29yZS9raHRtbC94bWwvZG9tX25v
ZGVpbXBsLmNwcAkyNyBTZXAgMjAwNSAyMjozNzoyMiAtMDAwMAkxLjE5NAorKysgV2ViQ29yZS9r
aHRtbC94bWwvZG9tX25vZGVpbXBsLmNwcAkzIE9jdCAyMDA1IDA3OjM2OjAyIC0wMDAwCkBAIC0y
Miw2ICsyMiw3IEBACiAgKiBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS4KICAqLwogCisjaW5j
bHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAieG1sL2RvbV9ub2RlaW1wbC5oIgogCiAjaW5jbHVk
ZSAiZG9tL2RvbV9leGNlcHRpb24uaCIKSW5kZXg6IFdlYkNvcmUva2h0bWwveG1sL2RvbV9ub2Rl
aW1wbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2todG1sL3htbC9k
b21fbm9kZWltcGwuaCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4xMDMKZGlmZiAtcCAtdSAtcjEu
MTAzIFdlYkNvcmUva2h0bWwveG1sL2RvbV9ub2RlaW1wbC5oCi0tLSBXZWJDb3JlL2todG1sL3ht
bC9kb21fbm9kZWltcGwuaAkyNyBTZXAgMjAwNSAyMjozNzoyMiAtMDAwMAkxLjEwMworKysgV2Vi
Q29yZS9raHRtbC94bWwvZG9tX25vZGVpbXBsLmgJMyBPY3QgMjAwNSAwNzozNjowMiAtMDAwMApA
QCAtMjcsNyArMjcsNiBAQAogCiAjaW5jbHVkZSAiZG9tL2RvbV9zdHJpbmcuaCIKICNpbmNsdWRl
ICJkb20vZG9tX25vZGUuaCIKLSNpbmNsdWRlIDxreG1sY29yZS9GYXN0TWFsbG9jLmg+CiAjaW5j
bHVkZSAibWlzYy9oZWxwZXIuaCIKICNpbmNsdWRlICJtaXNjL3NoYXJlZC5oIgogI2luY2x1ZGUg
ImRvbV9hdG9taWNzdHJpbmcuaCIKQEAgLTc2LDcgKzc1LDcgQEAgcHJpdmF0ZToKIH07CiAKIC8v
IHRoaXMgY2xhc3MgaW1wbGVtZW50cyBub2Rlcywgd2hpY2ggY2FuIGhhdmUgYSBwYXJlbnQgYnV0
IG5vIGNoaWxkcmVuOgotY2xhc3MgTm9kZUltcGwgOiBwdWJsaWMga2h0bWw6OlRyZWVTaGFyZWQ8
Tm9kZUltcGw+LCBwdWJsaWMgRmFzdEFsbG9jYXRlZAorY2xhc3MgTm9kZUltcGwgOiBwdWJsaWMg
a2h0bWw6OlRyZWVTaGFyZWQ8Tm9kZUltcGw+CiB7CiAgICAgZnJpZW5kIGNsYXNzIERvY3VtZW50
SW1wbDsKIHB1YmxpYzoKQEAgLTU2NSw3ICs1NjQsNyBAQCBwdWJsaWM6CiBjbGFzcyBOb2RlOwog
Y2xhc3MgTm9kZUltcGw7CiAKLWNsYXNzIE5vZGVMaXN0SW1wbCA6IHB1YmxpYyBraHRtbDo6U2hh
cmVkPE5vZGVMaXN0SW1wbD4sIHB1YmxpYyBGYXN0QWxsb2NhdGVkCitjbGFzcyBOb2RlTGlzdElt
cGwgOiBwdWJsaWMga2h0bWw6OlNoYXJlZDxOb2RlTGlzdEltcGw+CiB7CiBwdWJsaWM6CiAgICAg
Tm9kZUxpc3RJbXBsKCBOb2RlSW1wbCAqX3Jvb3ROb2RlICk7CkBAIC02MzYsNyArNjM1LDcgQEAg
cHJvdGVjdGVkOgogLy8gR2VuZXJpYyBOYW1lZE5vZGVNYXAgaW50ZXJmYWNlCiAvLyBPdGhlciBj
bGFzc2VzIGltcGxlbWVudCB0aGlzIGZvciBtb3JlIHNwZWNpZmljIHNpdHVhdGlvbnMgZS5nLiBh
dHRyaWJ1dGVzCiAvLyBvZiBhbiBlbGVtZW50Ci1jbGFzcyBOYW1lZE5vZGVNYXBJbXBsIDogcHVi
bGljIGtodG1sOjpTaGFyZWQ8TmFtZWROb2RlTWFwSW1wbD4sIHB1YmxpYyBGYXN0QWxsb2NhdGVk
CitjbGFzcyBOYW1lZE5vZGVNYXBJbXBsIDogcHVibGljIGtodG1sOjpTaGFyZWQ8TmFtZWROb2Rl
TWFwSW1wbD4KIHsKIHB1YmxpYzoKICAgICBOYW1lZE5vZGVNYXBJbXBsKCkge30KSW5kZXg6IFdl
YkNvcmUva2h0bWwveG1sL2RvbV9wb3NpdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2
cy9yb290L1dlYkNvcmUva2h0bWwveG1sL2RvbV9wb3NpdGlvbi5jcHAsdgpyZXRyaWV2aW5nIHJl
dmlzaW9uIDEuNzkKZGlmZiAtcCAtdSAtcjEuNzkgV2ViQ29yZS9raHRtbC94bWwvZG9tX3Bvc2l0
aW9uLmNwcAotLS0gV2ViQ29yZS9raHRtbC94bWwvZG9tX3Bvc2l0aW9uLmNwcAkyNyBTZXAgMjAw
NSAyMjozNzoyMiAtMDAwMAkxLjc5CisrKyBXZWJDb3JlL2todG1sL3htbC9kb21fcG9zaXRpb24u
Y3BwCTMgT2N0IDIwMDUgMDc6MzY6MDIgLTAwMDAKQEAgLTIzLDYgKzIzLDcgQEAKICAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuIAogICovCiAKKyNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJkb21fcG9zaXRp
b24uaCIKIAogI2luY2x1ZGUgPHFzdHJpbmcuaD4KSW5kZXg6IFdlYkNvcmUva2h0bWwveG1sL2Rv
bV9xbmFtZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva2h0bWwv
eG1sL2RvbV9xbmFtZS5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNgpkaWZmIC1wIC11IC1y
MS42IFdlYkNvcmUva2h0bWwveG1sL2RvbV9xbmFtZS5jcHAKLS0tIFdlYkNvcmUva2h0bWwveG1s
L2RvbV9xbmFtZS5jcHAJMjggU2VwIDIwMDUgMjI6MDE6NDAgLTAwMDAJMS42CisrKyBXZWJDb3Jl
L2todG1sL3htbC9kb21fcW5hbWUuY3BwCTMgT2N0IDIwMDUgMDc6MzY6MDIgLTAwMDAKQEAgLTIx
LDYgKzIxLDcgQEAKIAogI2RlZmluZSBLSFRNTF9RTkFNRV9ISURFX0dMT0JBTFMgMQogCisjaW5j
bHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiZG9tX3FuYW1lLmgiCiAjaW5jbHVkZSA8a3htbGNv
cmUvSGFzaFNldC5oPgogCkluZGV4OiBXZWJDb3JlL2todG1sL3htbC9kb21fc3RyaW5naW1wbC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva2h0bWwveG1sL2RvbV9z
dHJpbmdpbXBsLmNwcCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4zMQpkaWZmIC1wIC11IC1yMS4z
MSBXZWJDb3JlL2todG1sL3htbC9kb21fc3RyaW5naW1wbC5jcHAKLS0tIFdlYkNvcmUva2h0bWwv
eG1sL2RvbV9zdHJpbmdpbXBsLmNwcAkxMiBTZXAgMjAwNSAwMzo0MDozNyAtMDAwMAkxLjMxCisr
KyBXZWJDb3JlL2todG1sL3htbC9kb21fc3RyaW5naW1wbC5jcHAJMyBPY3QgMjAwNSAwNzozNjow
MyAtMDAwMApAQCAtMjMsNiArMjMsNyBAQAogICoKICAqLwogCisjaW5jbHVkZSAiY29uZmlnLmgi
CiAjaW5jbHVkZSAiZG9tX3N0cmluZ2ltcGwuaCIKIAogI2luY2x1ZGUgPGtkZWJ1Zy5oPgpJbmRl
eDogV2ViQ29yZS9raHRtbC94bWwvZG9tX3N0cmluZ2ltcGwuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxl
OiAvY3ZzL3Jvb3QvV2ViQ29yZS9raHRtbC94bWwvZG9tX3N0cmluZ2ltcGwuaCx2CnJldHJpZXZp
bmcgcmV2aXNpb24gMS4xNgpkaWZmIC1wIC11IC1yMS4xNiBXZWJDb3JlL2todG1sL3htbC9kb21f
c3RyaW5naW1wbC5oCi0tLSBXZWJDb3JlL2todG1sL3htbC9kb21fc3RyaW5naW1wbC5oCTI4IFNl
cCAyMDA1IDIyOjAxOjQwIC0wMDAwCTEuMTYKKysrIFdlYkNvcmUva2h0bWwveG1sL2RvbV9zdHJp
bmdpbXBsLmgJMyBPY3QgMjAwNSAwNzozNjowMyAtMDAwMApAQCAtMjYsMTQgKzI2LDEzIEBACiAK
ICNpbmNsdWRlICJtaXNjL2todG1sbGF5b3V0LmgiCiAjaW5jbHVkZSAibWlzYy9zaGFyZWQuaCIK
LSNpbmNsdWRlIDxreG1sY29yZS9GYXN0TWFsbG9jLmg+CiAKICNkZWZpbmUgUVRfQUxMT0NfUUNI
QVJfVkVDKE4pIHN0YXRpY19jYXN0PFFDaGFyKj4oZmFzdE1hbGxvYyhzaXplb2YoUUNoYXIpKihO
KSkpCiAjZGVmaW5lIFFUX0RFTEVURV9RQ0hBUl9WRUMoUCkgZmFzdEZyZWUoUCkKIAogbmFtZXNw
YWNlIERPTSB7CiAKLWNsYXNzIERPTVN0cmluZ0ltcGwgOiBwdWJsaWMga2h0bWw6OlNoYXJlZDxE
T01TdHJpbmdJbXBsPiwgcHVibGljIEZhc3RBbGxvY2F0ZWQKK2NsYXNzIERPTVN0cmluZ0ltcGwg
OiBwdWJsaWMga2h0bWw6OlNoYXJlZDxET01TdHJpbmdJbXBsPgogewogcHJpdmF0ZToKICAgICBz
dHJ1Y3QgV2l0aE9uZVJlZiB7IH07CkluZGV4OiBXZWJDb3JlL2todG1sL3htbC9kb21fdGV4dGlt
cGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2todG1sL3htbC9k
b21fdGV4dGltcGwuY3BwLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjMzCmRpZmYgLXAgLXUgLXIx
LjMzIFdlYkNvcmUva2h0bWwveG1sL2RvbV90ZXh0aW1wbC5jcHAKLS0tIFdlYkNvcmUva2h0bWwv
eG1sL2RvbV90ZXh0aW1wbC5jcHAJMTYgU2VwIDIwMDUgMjI6NDI6MjAgLTAwMDAJMS4zMworKysg
V2ViQ29yZS9raHRtbC94bWwvZG9tX3RleHRpbXBsLmNwcAkzIE9jdCAyMDA1IDA3OjM2OjAzIC0w
MDAwCkBAIC0yMSw2ICsyMSw3IEBACiAgKiBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS4KICAq
LwogCisjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiZG9tL2RvbV9leGNlcHRpb24uaCIK
ICNpbmNsdWRlICJjc3MvY3Nzc3R5bGVzZWxlY3Rvci5oIgogI2luY2x1ZGUgInhtbC9kb20yX2V2
ZW50c2ltcGwuaCIKSW5kZXg6IFdlYkNvcmUva2h0bWwveG1sL2RvbV94bWxpbXBsLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9raHRtbC94bWwvZG9tX3htbGltcGwu
Y3BwLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjE1CmRpZmYgLXAgLXUgLXIxLjE1IFdlYkNvcmUv
a2h0bWwveG1sL2RvbV94bWxpbXBsLmNwcAotLS0gV2ViQ29yZS9raHRtbC94bWwvZG9tX3htbGlt
cGwuY3BwCTI5IEF1ZyAyMDA1IDIxOjI5OjI0IC0wMDAwCTEuMTUKKysrIFdlYkNvcmUva2h0bWwv
eG1sL2RvbV94bWxpbXBsLmNwcAkzIE9jdCAyMDA1IDA3OjM2OjAzIC0wMDAwCkBAIC0xOSw2ICsx
OSw3IEBACiAgKiBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS4KICAqLwogCisjaW5jbHVkZSAi
Y29uZmlnLmgiCiAjaW5jbHVkZSAiZG9tL2RvbV9leGNlcHRpb24uaCIKIAogI2luY2x1ZGUgInht
bC9kb21feG1saW1wbC5oIgpJbmRleDogV2ViQ29yZS9raHRtbC94bWwveG1sX3Rva2VuaXplci5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva2h0bWwveG1sL3htbF90
b2tlbml6ZXIuY3BwLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjQzCmRpZmYgLXAgLXUgLXIxLjQz
IFdlYkNvcmUva2h0bWwveG1sL3htbF90b2tlbml6ZXIuY3BwCi0tLSBXZWJDb3JlL2todG1sL3ht
bC94bWxfdG9rZW5pemVyLmNwcAkyOCBTZXAgMjAwNSAyMjowMTo0MCAtMDAwMAkxLjQzCisrKyBX
ZWJDb3JlL2todG1sL3htbC94bWxfdG9rZW5pemVyLmNwcAkzIE9jdCAyMDA1IDA3OjM2OjAzIC0w
MDAwCkBAIC0yMCw2ICsyMCw3IEBACiAgKiBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS4KICAq
LwogCisjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAieG1sX3Rva2VuaXplci5oIgogI2lu
Y2x1ZGUgInhtbC9kb21fZG9jaW1wbC5oIgogI2luY2x1ZGUgInhtbC9kb21fZWxlbWVudGltcGwu
aCIKSW5kZXg6IFdlYkNvcmUva2h0bWwveHNsL3hzbF9zdHlsZXNoZWV0aW1wbC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva2h0bWwveHNsL3hzbF9zdHlsZXNoZWV0
aW1wbC5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMwpkaWZmIC1wIC11IC1yMS4zIFdlYkNv
cmUva2h0bWwveHNsL3hzbF9zdHlsZXNoZWV0aW1wbC5jcHAKLS0tIFdlYkNvcmUva2h0bWwveHNs
L3hzbF9zdHlsZXNoZWV0aW1wbC5jcHAJMjUgQXVnIDIwMDUgMTc6NDc6MjQgLTAwMDAJMS4zCisr
KyBXZWJDb3JlL2todG1sL3hzbC94c2xfc3R5bGVzaGVldGltcGwuY3BwCTMgT2N0IDIwMDUgMDc6
MzY6MDQgLTAwMDAKQEAgLTIxLDYgKzIxLDcgQEAKIAogI2lmZGVmIEtIVE1MX1hTTFQKIAorI2lu
Y2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgImRvbS9kb21fc3RyaW5nLmgiCiAjaW5jbHVkZSAi
ZG9tL2RvbV9leGNlcHRpb24uaCIKIApJbmRleDogV2ViQ29yZS9raHRtbC94c2wveHNsdF9wcm9j
ZXNzb3JpbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9raHRt
bC94c2wveHNsdF9wcm9jZXNzb3JpbXBsLmNwcCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4xMQpk
aWZmIC1wIC11IC1yMS4xMSBXZWJDb3JlL2todG1sL3hzbC94c2x0X3Byb2Nlc3NvcmltcGwuY3Bw
Ci0tLSBXZWJDb3JlL2todG1sL3hzbC94c2x0X3Byb2Nlc3NvcmltcGwuY3BwCTMgT2N0IDIwMDUg
MDY6MDI6MzUgLTAwMDAJMS4xMQorKysgV2ViQ29yZS9raHRtbC94c2wveHNsdF9wcm9jZXNzb3Jp
bXBsLmNwcAkzIE9jdCAyMDA1IDA3OjM2OjA0IC0wMDAwCkBAIC0yMSw2ICsyMSw3IEBACiAKICNp
ZmRlZiBLSFRNTF9YU0xUCiAKKyNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJ4c2x0X3By
b2Nlc3NvcmltcGwuaCIKICNpbmNsdWRlICJ4c2xfc3R5bGVzaGVldGltcGwuaCIKICNpbmNsdWRl
ICJodG1sX2RvY3VtZW50aW1wbC5oIgpJbmRleDogV2ViQ29yZS9rd3EvRE9NLUNTUy5tbQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9rd3EvRE9NLUNTUy5tbSx2CnJldHJp
ZXZpbmcgcmV2aXNpb24gMS4yOApkaWZmIC1wIC11IC1yMS4yOCBXZWJDb3JlL2t3cS9ET00tQ1NT
Lm1tCi0tLSBXZWJDb3JlL2t3cS9ET00tQ1NTLm1tCTI3IFNlcCAyMDA1IDIyOjM3OjI1IC0wMDAw
CTEuMjgKKysrIFdlYkNvcmUva3dxL0RPTS1DU1MubW0JMyBPY3QgMjAwNSAwNzozNjowNCAtMDAw
MApAQCAtMjMsNiArMjMsNyBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCisjaW5jbHVkZSAiY29u
ZmlnLmgiCiAjaW1wb3J0ICJET01DU1MuaCIKIAogI2luY2x1ZGUgPG9iamMvb2JqYy1jbGFzcy5o
PgpJbmRleDogV2ViQ29yZS9rd3EvRE9NLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9v
dC9XZWJDb3JlL2t3cS9ET00ubW0sdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNDkKZGlmZiAtcCAt
dSAtcjEuNDkgV2ViQ29yZS9rd3EvRE9NLm1tCi0tLSBXZWJDb3JlL2t3cS9ET00ubW0JMjggU2Vw
IDIwMDUgMjI6MDE6NDEgLTAwMDAJMS40OQorKysgV2ViQ29yZS9rd3EvRE9NLm1tCTMgT2N0IDIw
MDUgMDc6MzY6MDUgLTAwMDAKQEAgLTIzLDYgKzIzLDcgQEAKICAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAogICov
CiAKKyNpbmNsdWRlICJjb25maWcuaCIKICNpbXBvcnQgIkRPTS5oIgogCiAjaW5jbHVkZSA8b2Jq
Yy9vYmpjLWNsYXNzLmg+CkluZGV4OiBXZWJDb3JlL2t3cS9ET01FdmVudHMubW0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva3dxL0RPTUV2ZW50cy5tbSx2CnJldHJpZXZp
bmcgcmV2aXNpb24gMS43CmRpZmYgLXAgLXUgLXIxLjcgV2ViQ29yZS9rd3EvRE9NRXZlbnRzLm1t
Ci0tLSBXZWJDb3JlL2t3cS9ET01FdmVudHMubW0JMjcgU2VwIDIwMDUgMjI6Mzc6MjYgLTAwMDAJ
MS43CisrKyBXZWJDb3JlL2t3cS9ET01FdmVudHMubW0JMyBPY3QgMjAwNSAwNzozNjowNSAtMDAw
MApAQCAtMjMsNiArMjMsNyBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCiAgKi8KIAorI2luY2x1ZGUgImNv
bmZpZy5oIgogI2ltcG9ydCAiRE9NRXZlbnRzLmgiCiAKICNpbXBvcnQgIkRPTUV2ZW50c0ludGVy
bmFsLmgiCkluZGV4OiBXZWJDb3JlL2t3cS9ET01IVE1MLm1tCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6
IC9jdnMvcm9vdC9XZWJDb3JlL2t3cS9ET01IVE1MLm1tLHYKcmV0cmlldmluZyByZXZpc2lvbiAx
LjMwCmRpZmYgLXAgLXUgLXIxLjMwIFdlYkNvcmUva3dxL0RPTUhUTUwubW0KLS0tIFdlYkNvcmUv
a3dxL0RPTUhUTUwubW0JMjcgU2VwIDIwMDUgMjI6Mzc6MjYgLTAwMDAJMS4zMAorKysgV2ViQ29y
ZS9rd3EvRE9NSFRNTC5tbQkzIE9jdCAyMDA1IDA3OjM2OjA3IC0wMDAwCkBAIC0yMyw2ICsyMyw3
IEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLiAKICAqLwogCisjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW1wb3J0
ICJET01IVE1MLmgiCiAKICNpbXBvcnQgImRvbV9zdHJpbmcuaCIKSW5kZXg6IFdlYkNvcmUva3dx
L0RPTUludGVybmFsLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2t3
cS9ET01JbnRlcm5hbC5tbSx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS45CmRpZmYgLXAgLXUgLXIx
LjkgV2ViQ29yZS9rd3EvRE9NSW50ZXJuYWwubW0KLS0tIFdlYkNvcmUva3dxL0RPTUludGVybmFs
Lm1tCTI3IFNlcCAyMDA1IDIyOjM3OjI2IC0wMDAwCTEuOQorKysgV2ViQ29yZS9rd3EvRE9NSW50
ZXJuYWwubW0JMyBPY3QgMjAwNSAwNzozNjowNyAtMDAwMApAQCAtMjMsNiArMjMsNyBAQAogICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4gCiAgKi8KIAorI2luY2x1ZGUgImNvbmZpZy5oIgogI2ltcG9ydCAiRE9NSW50
ZXJuYWwuaCIKIAogI2ltcG9ydCAiY3NzX3N0eWxlc2hlZXQuaCIKQEAgLTEzNCwxNCArMTM1LDE0
IEBAIERPTVN0cmluZzo6RE9NU3RyaW5nKE5TU3RyaW5nICpzdHIpCiAgICAgICAgIFVuaUNoYXIg
Zml4ZWRTaXplQnVmZmVyWzEwMjRdOwogICAgICAgICBVbmlDaGFyICpidWZmZXI7CiAgICAgICAg
IGlmIChzaXplID4gc3RhdGljX2Nhc3Q8Q0ZJbmRleD4oc2l6ZW9mKGZpeGVkU2l6ZUJ1ZmZlcikg
LyBzaXplb2YoVW5pQ2hhcikpKSB7Ci0gICAgICAgICAgICBidWZmZXIgPSBzdGF0aWNfY2FzdDxV
bmlDaGFyICo+KG1hbGxvYyhzaXplICogc2l6ZW9mKFVuaUNoYXIpKSk7CisgICAgICAgICAgICBi
dWZmZXIgPSBzdGF0aWNfY2FzdDxVbmlDaGFyICo+KGZhc3RNYWxsb2Moc2l6ZSAqIHNpemVvZihV
bmlDaGFyKSkpOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgYnVmZmVyID0gZml4ZWRT
aXplQnVmZmVyOwogICAgICAgICB9CiAgICAgICAgIENGU3RyaW5nR2V0Q2hhcmFjdGVycyhyZWlu
dGVycHJldF9jYXN0PENGU3RyaW5nUmVmPihzdHIpLCBDRlJhbmdlTWFrZSgwLCBzaXplKSwgYnVm
ZmVyKTsKICAgICAgICAgbV9pbXBsID0gbmV3IERPTVN0cmluZ0ltcGwocmVpbnRlcnByZXRfY2Fz
dDxjb25zdCBRQ2hhciAqPihidWZmZXIpLCAodWludClzaXplKTsKICAgICAgICAgaWYgKGJ1ZmZl
ciAhPSBmaXhlZFNpemVCdWZmZXIpIHsKLSAgICAgICAgICAgIGZyZWUoYnVmZmVyKTsKKyAgICAg
ICAgICAgIGZhc3RGcmVlKGJ1ZmZlcik7CiAgICAgICAgIH0KICAgICB9CiAgICAgbV9pbXBsLT5y
ZWYoKTsKSW5kZXg6IFdlYkNvcmUva3dxL0RPTVV0aWxpdHkubW0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmls
ZTogL2N2cy9yb290L1dlYkNvcmUva3dxL0RPTVV0aWxpdHkubW0sdgpyZXRyaWV2aW5nIHJldmlz
aW9uIDEuNQpkaWZmIC1wIC11IC1yMS41IFdlYkNvcmUva3dxL0RPTVV0aWxpdHkubW0KLS0tIFdl
YkNvcmUva3dxL0RPTVV0aWxpdHkubW0JOCBBdWcgMjAwNSAwNDowNzo0NiAtMDAwMAkxLjUKKysr
IFdlYkNvcmUva3dxL0RPTVV0aWxpdHkubW0JMyBPY3QgMjAwNSAwNzozNjowNyAtMDAwMApAQCAt
MjMsNiArMjMsNyBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCiAgKi8KIAorI2luY2x1ZGUgImNvbmZpZy5o
IgogI2ltcG9ydCAia2pzX2RvbS5oIgogI2ltcG9ydCAiZG9tX25vZGVpbXBsLmgiCiAKSW5kZXg6
IFdlYkNvcmUva3dxL0RPTVZpZXdzLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9X
ZWJDb3JlL2t3cS9ET01WaWV3cy5tbSx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4yCmRpZmYgLXAg
LXUgLXIxLjIgV2ViQ29yZS9rd3EvRE9NVmlld3MubW0KLS0tIFdlYkNvcmUva3dxL0RPTVZpZXdz
Lm1tCTI3IFNlcCAyMDA1IDIyOjM3OjI2IC0wMDAwCTEuMgorKysgV2ViQ29yZS9rd3EvRE9NVmll
d3MubW0JMyBPY3QgMjAwNSAwNzozNjowNyAtMDAwMApAQCAtMjMsNiArMjMsNyBAQAogICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4gCiAgKi8KIAorI2luY2x1ZGUgImNvbmZpZy5oIgogI2ltcG9ydCAiRE9NVmlld3Mu
aCIKIAogI2ltcG9ydCAiRE9NSW50ZXJuYWwuaCIKSW5kZXg6IFdlYkNvcmUva3dxL0tXUUFjY09i
amVjdC5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9rd3EvS1dRQWNj
T2JqZWN0Lm1tLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjgzCmRpZmYgLXAgLXUgLXIxLjgzIFdl
YkNvcmUva3dxL0tXUUFjY09iamVjdC5tbQotLS0gV2ViQ29yZS9rd3EvS1dRQWNjT2JqZWN0Lm1t
CTI3IFNlcCAyMDA1IDIyOjM3OjI2IC0wMDAwCTEuODMKKysrIFdlYkNvcmUva3dxL0tXUUFjY09i
amVjdC5tbQkzIE9jdCAyMDA1IDA3OjM2OjA4IC0wMDAwCkBAIC0yMyw2ICsyMyw3IEBACiAgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgogICovCiAKKyNpbmNsdWRlICJjb25maWcuaCIKICNpbXBvcnQgIktXUUFjY09i
amVjdC5oIgogCiAvLyBuZWVkIHRoaXMgdW50aWwgYWNjZXNzdG9vbCBzdXBwb3J0cyBhcnJheXMg
b2YgbWFya2VycwpJbmRleDogV2ViQ29yZS9rd3EvS1dRQWNjT2JqZWN0Q2FjaGUubW0KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva3dxL0tXUUFjY09iamVjdENhY2hlLm1t
LHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjEwCmRpZmYgLXAgLXUgLXIxLjEwIFdlYkNvcmUva3dx
L0tXUUFjY09iamVjdENhY2hlLm1tCi0tLSBXZWJDb3JlL2t3cS9LV1FBY2NPYmplY3RDYWNoZS5t
bQkyNyBTZXAgMjAwNSAyMjozNzoyNyAtMDAwMAkxLjEwCisrKyBXZWJDb3JlL2t3cS9LV1FBY2NP
YmplY3RDYWNoZS5tbQkzIE9jdCAyMDA1IDA3OjM2OjA4IC0wMDAwCkBAIC0yMyw2ICsyMyw3IEBA
CiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgogICovCiAKKyNpbmNsdWRlICJjb25maWcuaCIKICNpbXBvcnQgIktX
UUFjY09iamVjdENhY2hlLmgiCiAKICNpbXBvcnQgIktXUUFjY09iamVjdC5oIgpJbmRleDogV2Vi
Q29yZS9rd3EvS1dRQXBwbGljYXRpb24ubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290
L1dlYkNvcmUva3dxL0tXUUFwcGxpY2F0aW9uLm1tLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjQ0
CmRpZmYgLXAgLXUgLXIxLjQ0IFdlYkNvcmUva3dxL0tXUUFwcGxpY2F0aW9uLm1tCi0tLSBXZWJD
b3JlL2t3cS9LV1FBcHBsaWNhdGlvbi5tbQkzMCBBdWcgMjAwNSAwOTozMDoyMyAtMDAwMAkxLjQ0
CisrKyBXZWJDb3JlL2t3cS9LV1FBcHBsaWNhdGlvbi5tbQkzIE9jdCAyMDA1IDA3OjM2OjA4IC0w
MDAwCkBAIC0yMyw2ICsyMyw3IEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKICAqLwogCisjaW5jbHVkZSAi
Y29uZmlnLmgiCiAjaW1wb3J0ICJLV1FBcHBsaWNhdGlvbi5oIgogI2ltcG9ydCAiS1dRU3R5bGUu
aCIKIApJbmRleDogV2ViQ29yZS9rd3EvS1dRQXJyYXlJbXBsLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmls
ZTogL2N2cy9yb290L1dlYkNvcmUva3dxL0tXUUFycmF5SW1wbC5oLHYKcmV0cmlldmluZyByZXZp
c2lvbiAxLjkKZGlmZiAtcCAtdSAtcjEuOSBXZWJDb3JlL2t3cS9LV1FBcnJheUltcGwuaAotLS0g
V2ViQ29yZS9rd3EvS1dRQXJyYXlJbXBsLmgJMjcgU2VwIDIwMDUgMjI6Mzc6MjcgLTAwMDAJMS45
CisrKyBXZWJDb3JlL2t3cS9LV1FBcnJheUltcGwuaAkzIE9jdCAyMDA1IDA3OjM2OjA4IC0wMDAw
CkBAIC01Miw3ICs1Miw3IEBAIGNsYXNzIEtXUUFycmF5SW1wbAogICAgIGJvb2wgb3BlcmF0b3I9
PShjb25zdCBLV1FBcnJheUltcGwgJikgY29uc3Q7CiAKICBwcml2YXRlOgotICAgIGNsYXNzIEtX
UUFycmF5UHJpdmF0ZSA6IHB1YmxpYyBGYXN0QWxsb2NhdGVkCisgICAgY2xhc3MgS1dRQXJyYXlQ
cml2YXRlCiAgICAgewogICAgIHB1YmxpYzoJCiAJS1dRQXJyYXlQcml2YXRlKHNpemVfdCBwTnVt
SXRlbXMsIHNpemVfdCBwSXRlbVNpemUpOwpJbmRleDogV2ViQ29yZS9rd3EvS1dRQXJyYXlJbXBs
Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2t3cS9LV1FBcnJheUlt
cGwubW0sdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMTMKZGlmZiAtcCAtdSAtcjEuMTMgV2ViQ29y
ZS9rd3EvS1dRQXJyYXlJbXBsLm1tCi0tLSBXZWJDb3JlL2t3cS9LV1FBcnJheUltcGwubW0JMjcg
U2VwIDIwMDUgMjI6Mzc6MjcgLTAwMDAJMS4xMworKysgV2ViQ29yZS9rd3EvS1dRQXJyYXlJbXBs
Lm1tCTMgT2N0IDIwMDUgMDc6MzY6MDggLTAwMDAKQEAgLTIzLDYgKzIzLDcgQEAKICAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuIAogICovCiAKKyNpbmNsdWRlICJjb25maWcuaCIKICNpbXBvcnQgIktXUUFycmF5SW1w
bC5oIgogCiAjaW1wb3J0IDxuZXc+CkluZGV4OiBXZWJDb3JlL2t3cS9LV1FCdWZmZXIubW0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva3dxL0tXUUJ1ZmZlci5tbSx2CnJl
dHJpZXZpbmcgcmV2aXNpb24gMS42CmRpZmYgLXAgLXUgLXIxLjYgV2ViQ29yZS9rd3EvS1dRQnVm
ZmVyLm1tCi0tLSBXZWJDb3JlL2t3cS9LV1FCdWZmZXIubW0JMjQgSnVuIDIwMDUgMjE6MDU6MTEg
LTAwMDAJMS42CisrKyBXZWJDb3JlL2t3cS9LV1FCdWZmZXIubW0JMyBPY3QgMjAwNSAwNzozNjow
OCAtMDAwMApAQCAtMjMsNiArMjMsNyBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCiAgKi8KIAorI2luY2x1
ZGUgImNvbmZpZy5oIgogI2ltcG9ydCAiS1dRQnVmZmVyLmgiCiAKIHZvaWQgUUJ1ZmZlcjo6b3Bl
bihpbnQpCkluZGV4OiBXZWJDb3JlL2t3cS9LV1FCdXR0b24ubW0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmls
ZTogL2N2cy9yb290L1dlYkNvcmUva3dxL0tXUUJ1dHRvbi5tbSx2CnJldHJpZXZpbmcgcmV2aXNp
b24gMS40NQpkaWZmIC1wIC11IC1yMS40NSBXZWJDb3JlL2t3cS9LV1FCdXR0b24ubW0KLS0tIFdl
YkNvcmUva3dxL0tXUUJ1dHRvbi5tbQkyNyBTZXAgMjAwNSAyMjozNzoyNyAtMDAwMAkxLjQ1Cisr
KyBXZWJDb3JlL2t3cS9LV1FCdXR0b24ubW0JMyBPY3QgMjAwNSAwNzozNjowOCAtMDAwMApAQCAt
MjMsNiArMjMsNyBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCiAgKi8KIAorI2luY2x1ZGUgImNvbmZpZy5o
IgogI2ltcG9ydCAiS1dRQnV0dG9uLmgiCiAKICNpbXBvcnQgPGt4bWxjb3JlL0Fzc2VydGlvbnMu
aD4KSW5kZXg6IFdlYkNvcmUva3dxL0tXUUNTdHJpbmcubW0KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTog
L2N2cy9yb290L1dlYkNvcmUva3dxL0tXUUNTdHJpbmcubW0sdgpyZXRyaWV2aW5nIHJldmlzaW9u
IDEuMTgKZGlmZiAtcCAtdSAtcjEuMTggV2ViQ29yZS9rd3EvS1dRQ1N0cmluZy5tbQotLS0gV2Vi
Q29yZS9rd3EvS1dRQ1N0cmluZy5tbQkyNyBTZXAgMjAwNSAyMjozNzoyNyAtMDAwMAkxLjE4Cisr
KyBXZWJDb3JlL2t3cS9LV1FDU3RyaW5nLm1tCTMgT2N0IDIwMDUgMDc6MzY6MDggLTAwMDAKQEAg
LTIzLDYgKzIzLDcgQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAogICovCiAKKyNpbmNsdWRlICJjb25maWcu
aCIKICNpbXBvcnQgIktXUUNTdHJpbmcuaCIKIAogI2ltcG9ydCA8a3htbGNvcmUvQXNzZXJ0aW9u
cy5oPgpJbmRleDogV2ViQ29yZS9rd3EvS1dRQ2hhcnNldHMubW0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmls
ZTogL2N2cy9yb290L1dlYkNvcmUva3dxL0tXUUNoYXJzZXRzLm1tLHYKcmV0cmlldmluZyByZXZp
c2lvbiAxLjIyCmRpZmYgLXAgLXUgLXIxLjIyIFdlYkNvcmUva3dxL0tXUUNoYXJzZXRzLm1tCi0t
LSBXZWJDb3JlL2t3cS9LV1FDaGFyc2V0cy5tbQkyOCBKdW4gMjAwNSAwMTo1NDozNSAtMDAwMAkx
LjIyCisrKyBXZWJDb3JlL2t3cS9LV1FDaGFyc2V0cy5tbQkzIE9jdCAyMDA1IDA3OjM2OjA4IC0w
MDAwCkBAIC0yMyw2ICsyMyw3IEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKICAqLwogCisjaW5jbHVkZSAi
Y29uZmlnLmgiCiAjaW1wb3J0ICJLV1FDaGFyc2V0cy5oIgogCiBzdHJ1Y3QgQ2hhcnNldEVudHJ5
IHsKSW5kZXg6IFdlYkNvcmUva3dxL0tXUUNsaXBib2FyZC5tbQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxl
OiAvY3ZzL3Jvb3QvV2ViQ29yZS9rd3EvS1dRQ2xpcGJvYXJkLm1tLHYKcmV0cmlldmluZyByZXZp
c2lvbiAxLjE4CmRpZmYgLXAgLXUgLXIxLjE4IFdlYkNvcmUva3dxL0tXUUNsaXBib2FyZC5tbQot
LS0gV2ViQ29yZS9rd3EvS1dRQ2xpcGJvYXJkLm1tCTI3IFNlcCAyMDA1IDIyOjM3OjI3IC0wMDAw
CTEuMTgKKysrIFdlYkNvcmUva3dxL0tXUUNsaXBib2FyZC5tbQkzIE9jdCAyMDA1IDA3OjM2OjA5
IC0wMDAwCkBAIC0yMyw2ICsyMyw3IEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKICAqLwogCisjaW5jbHVk
ZSAiY29uZmlnLmgiCiAjaW1wb3J0ICJLV1FDbGlwYm9hcmQuaCIKICNpbXBvcnQgPGt4bWxjb3Jl
L0Fzc2VydGlvbnMuaD4KICNpbXBvcnQgIktXUUZvdW5kYXRpb25FeHRyYXMuaCIKSW5kZXg6IFdl
YkNvcmUva3dxL0tXUUNvbGxlY3Rpb24ubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290
L1dlYkNvcmUva3dxL0tXUUNvbGxlY3Rpb24ubW0sdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNgpk
aWZmIC1wIC11IC1yMS42IFdlYkNvcmUva3dxL0tXUUNvbGxlY3Rpb24ubW0KLS0tIFdlYkNvcmUv
a3dxL0tXUUNvbGxlY3Rpb24ubW0JMjIgSmFuIDIwMDMgMDA6MTI6MzQgLTAwMDAJMS42CisrKyBX
ZWJDb3JlL2t3cS9LV1FDb2xsZWN0aW9uLm1tCTMgT2N0IDIwMDUgMDc6MzY6MDkgLTAwMDAKQEAg
LTIzLDYgKzIzLDcgQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAogICovCiAKKyNpbmNsdWRlICJjb25maWcu
aCIKICNpbXBvcnQgIktXUUNvbGxlY3Rpb24uaCIKIAogUVB0ckNvbGxlY3Rpb246On5RUHRyQ29s
bGVjdGlvbigpCkluZGV4OiBXZWJDb3JlL2t3cS9LV1FDb2xvci5tbQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBm
aWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9rd3EvS1dRQ29sb3IubW0sdgpyZXRyaWV2aW5nIHJldmlz
aW9uIDEuNDUKZGlmZiAtcCAtdSAtcjEuNDUgV2ViQ29yZS9rd3EvS1dRQ29sb3IubW0KLS0tIFdl
YkNvcmUva3dxL0tXUUNvbG9yLm1tCTI3IFNlcCAyMDA1IDIyOjM3OjI3IC0wMDAwCTEuNDUKKysr
IFdlYkNvcmUva3dxL0tXUUNvbG9yLm1tCTMgT2N0IDIwMDUgMDc6MzY6MDkgLTAwMDAKQEAgLTIz
LDYgKzIzLDcgQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAogICovCiAKKyNpbmNsdWRlICJjb25maWcuaCIK
ICNpbXBvcnQgIktXUUNvbG9yLmgiCiAKICNpbXBvcnQgIktXUU5hbWVzcGFjZS5oIgpJbmRleDog
V2ViQ29yZS9rd3EvS1dRQ29tYm9Cb3gubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290
L1dlYkNvcmUva3dxL0tXUUNvbWJvQm94Lm1tLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjY2CmRp
ZmYgLXAgLXUgLXIxLjY2IFdlYkNvcmUva3dxL0tXUUNvbWJvQm94Lm1tCi0tLSBXZWJDb3JlL2t3
cS9LV1FDb21ib0JveC5tbQkyNyBTZXAgMjAwNSAyMjozNzoyNyAtMDAwMAkxLjY2CisrKyBXZWJD
b3JlL2t3cS9LV1FDb21ib0JveC5tbQkzIE9jdCAyMDA1IDA3OjM2OjA5IC0wMDAwCkBAIC0yMyw2
ICsyMyw3IEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKICAqLwogCisjaW5jbHVkZSAiY29uZmlnLmgiCiAj
aW1wb3J0ICJLV1FDb21ib0JveC5oIgogCiAjaW1wb3J0IDxreG1sY29yZS9Bc3NlcnRpb25zLmg+
CkluZGV4OiBXZWJDb3JlL2t3cS9LV1FDdXJzb3IubW0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2
cy9yb290L1dlYkNvcmUva3dxL0tXUUN1cnNvci5tbSx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4y
MgpkaWZmIC1wIC11IC1yMS4yMiBXZWJDb3JlL2t3cS9LV1FDdXJzb3IubW0KLS0tIFdlYkNvcmUv
a3dxL0tXUUN1cnNvci5tbQkxNCBKdWwgMjAwNSAwMjozMjozMyAtMDAwMAkxLjIyCisrKyBXZWJD
b3JlL2t3cS9LV1FDdXJzb3IubW0JMyBPY3QgMjAwNSAwNzozNjowOSAtMDAwMApAQCAtMjMsNiAr
MjMsNyBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCiAgKi8KIAorI2luY2x1ZGUgImNvbmZpZy5oIgogI2lt
cG9ydCAiS1dRQ3Vyc29yLmgiCiAjaW1wb3J0ICJLV1FMb2dnaW5nLmgiCiAjaW1wb3J0ICJLV1FG
b3VuZGF0aW9uRXh0cmFzLmgiCkluZGV4OiBXZWJDb3JlL2t3cS9LV1FEYXRlVGltZS5tbQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9rd3EvS1dRRGF0ZVRpbWUubW0sdgpy
ZXRyaWV2aW5nIHJldmlzaW9uIDEuMTMKZGlmZiAtcCAtdSAtcjEuMTMgV2ViQ29yZS9rd3EvS1dR
RGF0ZVRpbWUubW0KLS0tIFdlYkNvcmUva3dxL0tXUURhdGVUaW1lLm1tCTUgSnVsIDIwMDUgMDg6
MDQ6NTAgLTAwMDAJMS4xMworKysgV2ViQ29yZS9rd3EvS1dRRGF0ZVRpbWUubW0JMyBPY3QgMjAw
NSAwNzozNjowOSAtMDAwMApAQCAtMjMsNiArMjMsNyBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCiAgKi8K
IAorI2luY2x1ZGUgImNvbmZpZy5oIgogI2ltcG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+
CiAjaW1wb3J0ICJLV1FEYXRlVGltZS5oIgogI2ltcG9ydCA8dGltZS5oPgpJbmRleDogV2ViQ29y
ZS9rd3EvS1dRRGljdEltcGwubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNv
cmUva3dxL0tXUURpY3RJbXBsLm1tLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjcKZGlmZiAtcCAt
dSAtcjEuNyBXZWJDb3JlL2t3cS9LV1FEaWN0SW1wbC5tbQotLS0gV2ViQ29yZS9rd3EvS1dRRGlj
dEltcGwubW0JMTEgSnVuIDIwMDQgMTg6MDY6MzUgLTAwMDAJMS43CisrKyBXZWJDb3JlL2t3cS9L
V1FEaWN0SW1wbC5tbQkzIE9jdCAyMDA1IDA3OjM2OjA5IC0wMDAwCkBAIC0yMyw2ICsyMyw3IEBA
CiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLiAKICAqLwogCisjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW1wb3J0ICJL
V1FEaWN0SW1wbC5oIgogI2ltcG9ydCA8Q29yZUZvdW5kYXRpb24vQ29yZUZvdW5kYXRpb24uaD4K
IApJbmRleDogV2ViQ29yZS9rd3EvS1dRRWRpdENvbW1hbmQubW0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmls
ZTogL2N2cy9yb290L1dlYkNvcmUva3dxL0tXUUVkaXRDb21tYW5kLm1tLHYKcmV0cmlldmluZyBy
ZXZpc2lvbiAxLjYKZGlmZiAtcCAtdSAtcjEuNiBXZWJDb3JlL2t3cS9LV1FFZGl0Q29tbWFuZC5t
bQotLS0gV2ViQ29yZS9rd3EvS1dRRWRpdENvbW1hbmQubW0JMjcgU2VwIDIwMDUgMjI6Mzc6Mjgg
LTAwMDAJMS42CisrKyBXZWJDb3JlL2t3cS9LV1FFZGl0Q29tbWFuZC5tbQkzIE9jdCAyMDA1IDA3
OjM2OjA5IC0wMDAwCkBAIC0yMyw2ICsyMyw3IEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKICAqLwogCisj
aW5jbHVkZSAiY29uZmlnLmgiCiAjaW1wb3J0ICJLV1FFZGl0Q29tbWFuZC5oIgogCiAjaW1wb3J0
IDxreG1sY29yZS9Bc3NlcnRpb25zLmg+CkluZGV4OiBXZWJDb3JlL2t3cS9LV1FFdmVudC5tbQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9rd3EvS1dRRXZlbnQubW0sdgpy
ZXRyaWV2aW5nIHJldmlzaW9uIDEuMjkKZGlmZiAtcCAtdSAtcjEuMjkgV2ViQ29yZS9rd3EvS1dR
RXZlbnQubW0KLS0tIFdlYkNvcmUva3dxL0tXUUV2ZW50Lm1tCTMgU2VwIDIwMDUgMjM6MTA6MDIg
LTAwMDAJMS4yOQorKysgV2ViQ29yZS9rd3EvS1dRRXZlbnQubW0JMyBPY3QgMjAwNSAwNzozNjox
MCAtMDAwMApAQCAtMjMsNiArMjMsNyBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCiAgKi8KIAorI2luY2x1
ZGUgImNvbmZpZy5oIgogI2ltcG9ydCAiS1dRRXZlbnQuaCIKIAogI2ltcG9ydCAiS1dRTG9nZ2lu
Zy5oIgpJbmRleDogV2ViQ29yZS9rd3EvS1dRRXhjZXB0aW9ucy5tbQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBm
aWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9rd3EvS1dRRXhjZXB0aW9ucy5tbSx2CnJldHJpZXZpbmcg
cmV2aXNpb24gMS4xCmRpZmYgLXAgLXUgLXIxLjEgV2ViQ29yZS9rd3EvS1dRRXhjZXB0aW9ucy5t
bQotLS0gV2ViQ29yZS9rd3EvS1dRRXhjZXB0aW9ucy5tbQkyNyBPY3QgMjAwMyAyMDo1MToyNSAt
MDAwMAkxLjEKKysrIFdlYkNvcmUva3dxL0tXUUV4Y2VwdGlvbnMubW0JMyBPY3QgMjAwNSAwNzoz
NjoxMCAtMDAwMApAQCAtMjMsNiArMjMsNyBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCiAgKi8KIAorI2lu
Y2x1ZGUgImNvbmZpZy5oIgogI2ltcG9ydCAiS1dRRXhjZXB0aW9ucy5oIgogCiB2b2lkIEtXUVJl
cG9ydEJsb2NrZWRFeGNlcHRpb24oS1dRTlNIYW5kbGVyJiBfbG9jYWxIYW5kbGVyKQpJbmRleDog
V2ViQ29yZS9rd3EvS1dRRmlsZS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2Vi
Q29yZS9rd3EvS1dRRmlsZS5tbSx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS44CmRpZmYgLXAgLXUg
LXIxLjggV2ViQ29yZS9rd3EvS1dRRmlsZS5tbQotLS0gV2ViQ29yZS9rd3EvS1dRRmlsZS5tbQk4
IE9jdCAyMDAzIDIxOjIzOjQ4IC0wMDAwCTEuOAorKysgV2ViQ29yZS9rd3EvS1dRRmlsZS5tbQkz
IE9jdCAyMDA1IDA3OjM2OjEwIC0wMDAwCkBAIC0yMyw2ICsyMyw3IEBACiAgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LiAKICAqLwogCisjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW1wb3J0ICJLV1FGaWxlLmgiCiAKIC8v
IFRoaXMgTlNTdHJpbmcgY2FsbCBjYW4ndCB0aHJvdyBzbyBubyBuZWVkIHRvIGJsb2NrIGV4Y2Vw
dGlvbnMKSW5kZXg6IFdlYkNvcmUva3dxL0tXUUZpbGVCdXR0b24ubW0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1Mg
ZmlsZTogL2N2cy9yb290L1dlYkNvcmUva3dxL0tXUUZpbGVCdXR0b24ubW0sdgpyZXRyaWV2aW5n
IHJldmlzaW9uIDEuMjgKZGlmZiAtcCAtdSAtcjEuMjggV2ViQ29yZS9rd3EvS1dRRmlsZUJ1dHRv
bi5tbQotLS0gV2ViQ29yZS9rd3EvS1dRRmlsZUJ1dHRvbi5tbQkyNyBTZXAgMjAwNSAyMjozNzoy
OCAtMDAwMAkxLjI4CisrKyBXZWJDb3JlL2t3cS9LV1FGaWxlQnV0dG9uLm1tCTMgT2N0IDIwMDUg
MDc6MzY6MTAgLTAwMDAKQEAgLTIzLDYgKzIzLDcgQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAogICovCiAK
KyNpbmNsdWRlICJjb25maWcuaCIKICNpbXBvcnQgIktXUUZpbGVCdXR0b24uaCIKIAogI2ltcG9y
dCA8a3htbGNvcmUvQXNzZXJ0aW9ucy5oPgpJbmRleDogV2ViQ29yZS9rd3EvS1dRRm9udC5tbQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9rd3EvS1dRRm9udC5tbSx2CnJl
dHJpZXZpbmcgcmV2aXNpb24gMS40OApkaWZmIC1wIC11IC1yMS40OCBXZWJDb3JlL2t3cS9LV1FG
b250Lm1tCi0tLSBXZWJDb3JlL2t3cS9LV1FGb250Lm1tCTI1IEF1ZyAyMDA1IDE3OjQ3OjI1IC0w
MDAwCTEuNDgKKysrIFdlYkNvcmUva3dxL0tXUUZvbnQubW0JMyBPY3QgMjAwNSAwNzozNjoxMCAt
MDAwMApAQCAtMjMsNiArMjMsNyBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCiAgKi8KIAorI2luY2x1ZGUg
ImNvbmZpZy5oIgogI2ltcG9ydCAiS1dRRm9udC5oIgogCiAjaW1wb3J0ICJLV1FFeGNlcHRpb25z
LmgiCkluZGV4OiBXZWJDb3JlL2t3cS9LV1FGb250RmFtaWx5LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmls
ZTogL2N2cy9yb290L1dlYkNvcmUva3dxL0tXUUZvbnRGYW1pbHkuaCx2CnJldHJpZXZpbmcgcmV2
aXNpb24gMS41CmRpZmYgLXAgLXUgLXIxLjUgV2ViQ29yZS9rd3EvS1dRRm9udEZhbWlseS5oCi0t
LSBXZWJDb3JlL2t3cS9LV1FGb250RmFtaWx5LmgJMjcgU2VwIDIwMDUgMjI6Mzc6MjggLTAwMDAJ
MS41CisrKyBXZWJDb3JlL2t3cS9LV1FGb250RmFtaWx5LmgJMyBPY3QgMjAwNSAwNzozNjoxMCAt
MDAwMApAQCAtMzMsNyArMzMsNyBAQAogY2xhc3MgTlNTdHJpbmc7CiAjZW5kaWYKIAotY2xhc3Mg
S1dRRm9udEZhbWlseSA6IHB1YmxpYyBGYXN0QWxsb2NhdGVkIHsKK2NsYXNzIEtXUUZvbnRGYW1p
bHkgewogcHVibGljOgogICAgIEtXUUZvbnRGYW1pbHkoKTsKICAgICB+S1dRRm9udEZhbWlseSgp
IHsgaWYgKF9uZXh0KSBfbmV4dC0+ZGVyZWYoKTsgIH0KSW5kZXg6IFdlYkNvcmUva3dxL0tXUUZv
bnRGYW1pbHkubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva3dxL0tX
UUZvbnRGYW1pbHkubW0sdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNQpkaWZmIC1wIC11IC1yMS41
IFdlYkNvcmUva3dxL0tXUUZvbnRGYW1pbHkubW0KLS0tIFdlYkNvcmUva3dxL0tXUUZvbnRGYW1p
bHkubW0JMjkgQXVnIDIwMDUgMjE6Mjk6MjggLTAwMDAJMS41CisrKyBXZWJDb3JlL2t3cS9LV1FG
b250RmFtaWx5Lm1tCTMgT2N0IDIwMDUgMDc6MzY6MTAgLTAwMDAKQEAgLTIzLDYgKzIzLDcgQEAK
ICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuIAogICovCiAKKyNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJL
V1FGb250RmFtaWx5LmgiCiAjaW5jbHVkZSAieG1sL2RvbV9zdHJpbmdpbXBsLmgiCiAKSW5kZXg6
IFdlYkNvcmUva3dxL0tXUUZvbnRNZXRyaWNzLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMv
cm9vdC9XZWJDb3JlL2t3cS9LV1FGb250TWV0cmljcy5tbSx2CnJldHJpZXZpbmcgcmV2aXNpb24g
MS44OQpkaWZmIC1wIC11IC1yMS44OSBXZWJDb3JlL2t3cS9LV1FGb250TWV0cmljcy5tbQotLS0g
V2ViQ29yZS9rd3EvS1dRRm9udE1ldHJpY3MubW0JMjkgSnVsIDIwMDUgMjM6NDI6NTUgLTAwMDAJ
MS44OQorKysgV2ViQ29yZS9rd3EvS1dRRm9udE1ldHJpY3MubW0JMyBPY3QgMjAwNSAwNzozNjox
MCAtMDAwMApAQCAtMjMsNiArMjMsNyBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCiAgKi8KIAorI2luY2x1
ZGUgImNvbmZpZy5oIgogI2ltcG9ydCAiS1dRRm9udE1ldHJpY3MuaCIKIAogI2ltcG9ydCA8Q29j
b2EvQ29jb2EuaD4KSW5kZXg6IFdlYkNvcmUva3dxL0tXUUZvcm1EYXRhLm1tCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
UkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2t3cS9LV1FGb3JtRGF0YS5tbSx2CnJldHJpZXZp
bmcgcmV2aXNpb24gMS4zCmRpZmYgLXAgLXUgLXIxLjMgV2ViQ29yZS9rd3EvS1dRRm9ybURhdGEu
bW0KLS0tIFdlYkNvcmUva3dxL0tXUUZvcm1EYXRhLm1tCTI3IFNlcCAyMDA1IDIyOjM3OjI4IC0w
MDAwCTEuMworKysgV2ViQ29yZS9rd3EvS1dRRm9ybURhdGEubW0JMyBPY3QgMjAwNSAwNzozNjox
MCAtMDAwMApAQCAtMjMsNiArMjMsNyBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCiAgKi8KIAorI2luY2x1
ZGUgImNvbmZpZy5oIgogI2ltcG9ydCAiS1dRRm9ybURhdGEuaCIKIAogI2ltcG9ydCA8a3htbGNv
cmUvQXNzZXJ0aW9ucy5oPgpJbmRleDogV2ViQ29yZS9rd3EvS1dRRnJhbWUubW0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva3dxL0tXUUZyYW1lLm1tLHYKcmV0cmlldmlu
ZyByZXZpc2lvbiAxLjE4CmRpZmYgLXAgLXUgLXIxLjE4IFdlYkNvcmUva3dxL0tXUUZyYW1lLm1t
Ci0tLSBXZWJDb3JlL2t3cS9LV1FGcmFtZS5tbQkxOCBNYXkgMjAwNSAyMToxMDoyNiAtMDAwMAkx
LjE4CisrKyBXZWJDb3JlL2t3cS9LV1FGcmFtZS5tbQkzIE9jdCAyMDA1IDA3OjM2OjEwIC0wMDAw
CkBAIC0yMyw2ICsyMyw3IEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKICAqLwogCisjaW5jbHVkZSAiY29u
ZmlnLmgiCiAjaW1wb3J0ICJLV1FGcmFtZS5oIgogCiAjaW1wb3J0ICJLV1FFeGNlcHRpb25zLmgi
CkluZGV4OiBXZWJDb3JlL2t3cS9LV1FHbG9iYWwubW0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2
cy9yb290L1dlYkNvcmUva3dxL0tXUUdsb2JhbC5tbSx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4y
CmRpZmYgLXAgLXUgLXIxLjIgV2ViQ29yZS9rd3EvS1dRR2xvYmFsLm1tCi0tLSBXZWJDb3JlL2t3
cS9LV1FHbG9iYWwubW0JMjIgSmFuIDIwMDMgMDA6MTI6MzQgLTAwMDAJMS4yCisrKyBXZWJDb3Jl
L2t3cS9LV1FHbG9iYWwubW0JMyBPY3QgMjAwNSAwNzozNjoxMCAtMDAwMApAQCAtMjMsNiArMjMs
OCBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4gCiAgKi8KIAorI2luY2x1ZGUgImNvbmZpZy5oIgorCiB2b2lk
IHFEZWJ1Zyhjb25zdCBjaGFyICptc2csIC4uLikKIHsKIH0KSW5kZXg6IFdlYkNvcmUva3dxL0tX
UUd1YXJkZWRQdHIubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva3dx
L0tXUUd1YXJkZWRQdHIubW0sdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuOApkaWZmIC1wIC11IC1y
MS44IFdlYkNvcmUva3dxL0tXUUd1YXJkZWRQdHIubW0KLS0tIFdlYkNvcmUva3dxL0tXUUd1YXJk
ZWRQdHIubW0JMjIgSmFuIDIwMDMgMDA6MTI6MzQgLTAwMDAJMS44CisrKyBXZWJDb3JlL2t3cS9L
V1FHdWFyZGVkUHRyLm1tCTMgT2N0IDIwMDUgMDc6MzY6MTAgLTAwMDAKQEAgLTIzLDYgKzIzLDcg
QEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuIAogICovCiAKKyNpbmNsdWRlICJjb25maWcuaCIKICNpbXBvcnQg
IktXUUd1YXJkZWRQdHIuaCIKIAogI2ltcG9ydCAiS1dRT2JqZWN0LmgiCkluZGV4OiBXZWJDb3Jl
L2t3cS9LV1FLQ2hhcnNldHMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNv
cmUva3dxL0tXUUtDaGFyc2V0cy5tbSx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4xNApkaWZmIC1w
IC11IC1yMS4xNCBXZWJDb3JlL2t3cS9LV1FLQ2hhcnNldHMubW0KLS0tIFdlYkNvcmUva3dxL0tX
UUtDaGFyc2V0cy5tbQkyNCBBcHIgMjAwMyAxODoxMzowMiAtMDAwMAkxLjE0CisrKyBXZWJDb3Jl
L2t3cS9LV1FLQ2hhcnNldHMubW0JMyBPY3QgMjAwNSAwNzozNjoxMCAtMDAwMApAQCAtMjMsNiAr
MjMsNyBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCiAgKi8KIAorI2luY2x1ZGUgImNvbmZpZy5oIgogI2lt
cG9ydCAiS1dRS0NoYXJzZXRzLmgiCiAKICNpbXBvcnQgIktXUVRleHRDb2RlYy5oIgpJbmRleDog
V2ViQ29yZS9rd3EvS1dRS0NvbmZpZ0Jhc2UubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9y
b290L1dlYkNvcmUva3dxL0tXUUtDb25maWdCYXNlLm1tLHYKcmV0cmlldmluZyByZXZpc2lvbiAx
LjMwCmRpZmYgLXAgLXUgLXIxLjMwIFdlYkNvcmUva3dxL0tXUUtDb25maWdCYXNlLm1tCi0tLSBX
ZWJDb3JlL2t3cS9LV1FLQ29uZmlnQmFzZS5tbQkyMyBBdWcgMjAwNSAxODozMjo1MCAtMDAwMAkx
LjMwCisrKyBXZWJDb3JlL2t3cS9LV1FLQ29uZmlnQmFzZS5tbQkzIE9jdCAyMDA1IDA3OjM2OjEw
IC0wMDAwCkBAIC0yMyw2ICsyMyw3IEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKICAqLwogCisjaW5jbHVk
ZSAiY29uZmlnLmgiCiAjaW1wb3J0ICJLV1FLQ29uZmlnQmFzZS5oIgogCiAjaW1wb3J0ICJLV1FD
b2xvci5oIgpJbmRleDogV2ViQ29yZS9rd3EvS1dRS0Nvb2tpZUphci5tbQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJD
UyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9rd3EvS1dRS0Nvb2tpZUphci5tbSx2CnJldHJpZXZp
bmcgcmV2aXNpb24gMS45CmRpZmYgLXAgLXUgLXIxLjkgV2ViQ29yZS9rd3EvS1dRS0Nvb2tpZUph
ci5tbQotLS0gV2ViQ29yZS9rd3EvS1dRS0Nvb2tpZUphci5tbQkyNyBPY3QgMjAwMyAyMDo1MToy
NSAtMDAwMAkxLjkKKysrIFdlYkNvcmUva3dxL0tXUUtDb29raWVKYXIubW0JMyBPY3QgMjAwNSAw
NzozNjoxMCAtMDAwMApAQCAtMjMsNiArMjMsNyBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCisj
aW5jbHVkZSAiY29uZmlnLmgiCiAjaW1wb3J0ICJLV1FLQ29va2llSmFyLmgiCiAKICNpbXBvcnQg
IktXUUV4Y2VwdGlvbnMuaCIKSW5kZXg6IFdlYkNvcmUva3dxL0tXUUtDdXJzb3IubW0KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva3dxL0tXUUtDdXJzb3IubW0sdgpyZXRy
aWV2aW5nIHJldmlzaW9uIDEuMTcKZGlmZiAtcCAtdSAtcjEuMTcgV2ViQ29yZS9rd3EvS1dRS0N1
cnNvci5tbQotLS0gV2ViQ29yZS9rd3EvS1dRS0N1cnNvci5tbQkxNCBKdWwgMjAwNSAwMjozMjoz
MyAtMDAwMAkxLjE3CisrKyBXZWJDb3JlL2t3cS9LV1FLQ3Vyc29yLm1tCTMgT2N0IDIwMDUgMDc6
MzY6MTAgLTAwMDAKQEAgLTIzLDYgKzIzLDcgQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAogICovCiAKKyNp
bmNsdWRlICJjb25maWcuaCIKICNpbXBvcnQgIktXUUtDdXJzb3IuaCIKIAogI2ltcG9ydCAiS1dR
RXhjZXB0aW9ucy5oIgpJbmRleDogV2ViQ29yZS9rd3EvS1dRS0dsb2JhbC5tbQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9rd3EvS1dRS0dsb2JhbC5tbSx2CnJldHJpZXZp
bmcgcmV2aXNpb24gMS4xNQpkaWZmIC1wIC11IC1yMS4xNSBXZWJDb3JlL2t3cS9LV1FLR2xvYmFs
Lm1tCi0tLSBXZWJDb3JlL2t3cS9LV1FLR2xvYmFsLm1tCTIyIEphbiAyMDAzIDAwOjEyOjM1IC0w
MDAwCTEuMTUKKysrIFdlYkNvcmUva3dxL0tXUUtHbG9iYWwubW0JMyBPY3QgMjAwNSAwNzozNjox
MCAtMDAwMApAQCAtMjMsNiArMjMsNyBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCiAgKi8KIAorI2luY2x1
ZGUgImNvbmZpZy5oIgogI2ltcG9ydCAiS1dRS0dsb2JhbC5oIgogCiAjaW1wb3J0ICJLV1FLQ29u
ZmlnQmFzZS5oIgpJbmRleDogV2ViQ29yZS9rd3EvS1dRS0dsb2JhbFNldHRpbmdzLm1tCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2t3cS9LV1FLR2xvYmFsU2V0dGluZ3Mu
bW0sdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNwpkaWZmIC1wIC11IC1yMS43IFdlYkNvcmUva3dx
L0tXUUtHbG9iYWxTZXR0aW5ncy5tbQotLS0gV2ViQ29yZS9rd3EvS1dRS0dsb2JhbFNldHRpbmdz
Lm1tCTIyIEphbiAyMDAzIDAwOjEyOjM1IC0wMDAwCTEuNworKysgV2ViQ29yZS9rd3EvS1dRS0ds
b2JhbFNldHRpbmdzLm1tCTMgT2N0IDIwMDUgMDc6MzY6MTAgLTAwMDAKQEAgLTIzLDYgKzIzLDcg
QEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuIAogICovCiAKKyNpbmNsdWRlICJjb25maWcuaCIKICNpbXBvcnQg
IktXUUtHbG9iYWxTZXR0aW5ncy5oIgogCiAjaW1wb3J0ICJLV1FGb250LmgiCkluZGV4OiBXZWJD
b3JlL2t3cS9LV1FLSFRNTEZhY3RvcnkubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290
L1dlYkNvcmUva3dxL0tXUUtIVE1MRmFjdG9yeS5tbSx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS45
CmRpZmYgLXAgLXUgLXIxLjkgV2ViQ29yZS9rd3EvS1dRS0hUTUxGYWN0b3J5Lm1tCi0tLSBXZWJD
b3JlL2t3cS9LV1FLSFRNTEZhY3RvcnkubW0JMjIgSmFuIDIwMDMgMDA6MTI6MzUgLTAwMDAJMS45
CisrKyBXZWJDb3JlL2t3cS9LV1FLSFRNTEZhY3RvcnkubW0JMyBPY3QgMjAwNSAwNzozNjoxMCAt
MDAwMApAQCAtMjMsNiArMjMsNyBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCiAgKi8KIAorI2luY2x1ZGUg
ImNvbmZpZy5oIgogI2ltcG9ydCAiS1dRS0hUTUxGYWN0b3J5LmgiCiAKICNpbXBvcnQgIktXUUtJ
bnN0YW5jZS5oIgpJbmRleDogV2ViQ29yZS9rd3EvS1dRS0hUTUxQYXJ0LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9rd3EvS1dRS0hUTUxQYXJ0LmNwcCx2CnJldHJp
ZXZpbmcgcmV2aXNpb24gMS4xMwpkaWZmIC1wIC11IC1yMS4xMyBXZWJDb3JlL2t3cS9LV1FLSFRN
TFBhcnQuY3BwCi0tLSBXZWJDb3JlL2t3cS9LV1FLSFRNTFBhcnQuY3BwCTI1IEF1ZyAyMDA1IDIz
OjEzOjU3IC0wMDAwCTEuMTMKKysrIFdlYkNvcmUva3dxL0tXUUtIVE1MUGFydC5jcHAJMyBPY3Qg
MjAwNSAwNzozNjoxMCAtMDAwMApAQCAtMjMsNiArMjMsNyBAQAogICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCiAg
Ki8KIAorI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIktXUUtIVE1MUGFydC5oIgogCiAj
aW5jbHVkZSAiaHRtbF9kb2N1bWVudGltcGwuaCIKSW5kZXg6IFdlYkNvcmUva3dxL0tXUUtIVE1M
UGFydC5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9rd3EvS1dRS0hU
TUxQYXJ0Lm1tLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjY3NQpkaWZmIC1wIC11IC1yMS42NzUg
V2ViQ29yZS9rd3EvS1dRS0hUTUxQYXJ0Lm1tCi0tLSBXZWJDb3JlL2t3cS9LV1FLSFRNTFBhcnQu
bW0JMjcgU2VwIDIwMDUgMjI6Mzc6MjggLTAwMDAJMS42NzUKKysrIFdlYkNvcmUva3dxL0tXUUtI
VE1MUGFydC5tbQkzIE9jdCAyMDA1IDA3OjM2OjEyIC0wMDAwCkBAIC0yMyw2ICsyMyw3IEBACiAg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLiAKICAqLwogCisjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW1wb3J0ICJLV1FL
SFRNTFBhcnQuaCIKIAogI2ltcG9ydCAiRE9NSW50ZXJuYWwuaCIKSW5kZXg6IFdlYkNvcmUva3dx
L0tXUUtIVE1MUGFydEJyb3dzZXJFeHRlbnNpb24ubW0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2
cy9yb290L1dlYkNvcmUva3dxL0tXUUtIVE1MUGFydEJyb3dzZXJFeHRlbnNpb24ubW0sdgpyZXRy
aWV2aW5nIHJldmlzaW9uIDEuNTAKZGlmZiAtcCAtdSAtcjEuNTAgV2ViQ29yZS9rd3EvS1dRS0hU
TUxQYXJ0QnJvd3NlckV4dGVuc2lvbi5tbQotLS0gV2ViQ29yZS9rd3EvS1dRS0hUTUxQYXJ0QnJv
d3NlckV4dGVuc2lvbi5tbQkxIEp1biAyMDA1IDIzOjQ5OjQ5IC0wMDAwCTEuNTAKKysrIFdlYkNv
cmUva3dxL0tXUUtIVE1MUGFydEJyb3dzZXJFeHRlbnNpb24ubW0JMyBPY3QgMjAwNSAwNzozNjox
MiAtMDAwMApAQCAtMjMsNiArMjMsNyBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCiAgKi8KIAorI2luY2x1
ZGUgImNvbmZpZy5oIgogI2ltcG9ydCAiS1dRS0hUTUxQYXJ0QnJvd3NlckV4dGVuc2lvbi5oIgog
CiAjaW1wb3J0ICJLV1FFeGNlcHRpb25zLmgiCkluZGV4OiBXZWJDb3JlL2t3cS9LV1FLSFRNTFZp
ZXcubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva3dxL0tXUUtIVE1M
Vmlldy5tbSx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS44CmRpZmYgLXAgLXUgLXIxLjggV2ViQ29y
ZS9rd3EvS1dRS0hUTUxWaWV3Lm1tCi0tLSBXZWJDb3JlL2t3cS9LV1FLSFRNTFZpZXcubW0JMTgg
SmFuIDIwMDUgMDA6NDM6MTQgLTAwMDAJMS44CisrKyBXZWJDb3JlL2t3cS9LV1FLSFRNTFZpZXcu
bW0JMyBPY3QgMjAwNSAwNzozNjoxMyAtMDAwMApAQCAtMjMsNiArMjMsNyBAQAogICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4gCiAgKi8KIAorI2luY2x1ZGUgImNvbmZpZy5oIgogI2ltcG9ydCAia2h0bWx2aWV3Lmgi
CiAKICNpbXBvcnQgIktXUUtIVE1MUGFydC5oIgpJbmRleDogV2ViQ29yZS9rd3EvS1dRS0hpc3Rv
cnlQcm92aWRlci5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9rd3Ev
S1dRS0hpc3RvcnlQcm92aWRlci5tbSx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4xOApkaWZmIC1w
IC11IC1yMS4xOCBXZWJDb3JlL2t3cS9LV1FLSGlzdG9yeVByb3ZpZGVyLm1tCi0tLSBXZWJDb3Jl
L2t3cS9LV1FLSGlzdG9yeVByb3ZpZGVyLm1tCTE0IEZlYiAyMDA0IDAyOjEwOjQ2IC0wMDAwCTEu
MTgKKysrIFdlYkNvcmUva3dxL0tXUUtIaXN0b3J5UHJvdmlkZXIubW0JMyBPY3QgMjAwNSAwNzoz
NjoxMyAtMDAwMApAQCAtMjMsNiArMjMsNyBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCiAgKi8KIAorI2lu
Y2x1ZGUgImNvbmZpZy5oIgogI2ltcG9ydCAiS1dRS1BhcnRzSGlzdG9yeVByb3ZpZGVyLmgiCiAK
ICNpbXBvcnQgIktXUUV4Y2VwdGlvbnMuaCIKSW5kZXg6IFdlYkNvcmUva3dxL0tXUUtKYXZhQXBw
bGV0V2lkZ2V0Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2t3cS9L
V1FLSmF2YUFwcGxldFdpZGdldC5tbSx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4yOApkaWZmIC1w
IC11IC1yMS4yOCBXZWJDb3JlL2t3cS9LV1FLSmF2YUFwcGxldFdpZGdldC5tbQotLS0gV2ViQ29y
ZS9rd3EvS1dRS0phdmFBcHBsZXRXaWRnZXQubW0JMjkgQXByIDIwMDUgMDA6MzE6MDEgLTAwMDAJ
MS4yOAorKysgV2ViQ29yZS9rd3EvS1dRS0phdmFBcHBsZXRXaWRnZXQubW0JMyBPY3QgMjAwNSAw
NzozNjoxMyAtMDAwMApAQCAtMjMsNiArMjMsNyBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCiAgKi8KIAor
I2luY2x1ZGUgImNvbmZpZy5oIgogI2ltcG9ydCAiS1dRS0phdmFBcHBsZXRXaWRnZXQuaCIKIAog
I2ltcG9ydCAiZG9tX2RvY2ltcGwuaCIKSW5kZXg6IFdlYkNvcmUva3dxL0tXUUtKb2IubW0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva3dxL0tXUUtKb2IubW0sdgpyZXRy
aWV2aW5nIHJldmlzaW9uIDEuOQpkaWZmIC1wIC11IC1yMS45IFdlYkNvcmUva3dxL0tXUUtKb2Iu
bW0KLS0tIFdlYkNvcmUva3dxL0tXUUtKb2IubW0JMjIgSmFuIDIwMDMgMDA6MTI6MzUgLTAwMDAJ
MS45CisrKyBXZWJDb3JlL2t3cS9LV1FLSm9iLm1tCTMgT2N0IDIwMDUgMDc6MzY6MTMgLTAwMDAK
QEAgLTIzLDYgKzIzLDcgQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAogICovCiAKKyNpbmNsdWRlICJjb25m
aWcuaCIKICNpbXBvcnQgIktXUUtKb2IuaCIKICNpbXBvcnQgIktXUUxvZ2dpbmcuaCIKIApJbmRl
eDogV2ViQ29yZS9rd3EvS1dRS0pvYkNsYXNzZXMubW0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2
cy9yb290L1dlYkNvcmUva3dxL0tXUUtKb2JDbGFzc2VzLm1tLHYKcmV0cmlldmluZyByZXZpc2lv
biAxLjQ4CmRpZmYgLXAgLXUgLXIxLjQ4IFdlYkNvcmUva3dxL0tXUUtKb2JDbGFzc2VzLm1tCi0t
LSBXZWJDb3JlL2t3cS9LV1FLSm9iQ2xhc3Nlcy5tbQk4IFNlcCAyMDA1IDIxOjM1OjMwIC0wMDAw
CTEuNDgKKysrIFdlYkNvcmUva3dxL0tXUUtKb2JDbGFzc2VzLm1tCTMgT2N0IDIwMDUgMDc6MzY6
MTMgLTAwMDAKQEAgLTIzLDYgKzIzLDcgQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAogICovCiAKKyNpbmNs
dWRlICJjb25maWcuaCIKICNpbXBvcnQgIktXUUxvZ2dpbmcuaCIKIAogI2ltcG9ydCAiS1dRRXhj
ZXB0aW9ucy5oIgpJbmRleDogV2ViQ29yZS9rd3EvS1dRS0xvY2FsZS5tbQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJD
UyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9rd3EvS1dRS0xvY2FsZS5tbSx2CnJldHJpZXZpbmcg
cmV2aXNpb24gMS4xOApkaWZmIC1wIC11IC1yMS4xOCBXZWJDb3JlL2t3cS9LV1FLTG9jYWxlLm1t
Ci0tLSBXZWJDb3JlL2t3cS9LV1FLTG9jYWxlLm1tCTI3IE9jdCAyMDAzIDIwOjUxOjI1IC0wMDAw
CTEuMTgKKysrIFdlYkNvcmUva3dxL0tXUUtMb2NhbGUubW0JMyBPY3QgMjAwNSAwNzozNjoxMyAt
MDAwMApAQCAtMjMsNiArMjMsNyBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCiAgKi8KIAorI2luY2x1ZGUg
ImNvbmZpZy5oIgogI2ltcG9ydCAiS1dRS0xvY2FsZS5oIgogCiAjaW1wb3J0ICJLV1FFeGNlcHRp
b25zLmgiCkluZGV4OiBXZWJDb3JlL2t3cS9LV1FLUGFydHNCcm93c2VySW50ZXJmYWNlLm1tCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2t3cS9LV1FLUGFydHNCcm93c2Vy
SW50ZXJmYWNlLm1tLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjE0CmRpZmYgLXAgLXUgLXIxLjE0
IFdlYkNvcmUva3dxL0tXUUtQYXJ0c0Jyb3dzZXJJbnRlcmZhY2UubW0KLS0tIFdlYkNvcmUva3dx
L0tXUUtQYXJ0c0Jyb3dzZXJJbnRlcmZhY2UubW0JMjcgU2VwIDIwMDUgMjI6Mzc6MjkgLTAwMDAJ
MS4xNAorKysgV2ViQ29yZS9rd3EvS1dRS1BhcnRzQnJvd3NlckludGVyZmFjZS5tbQkzIE9jdCAy
MDA1IDA3OjM2OjEzIC0wMDAwCkBAIC0yMyw2ICsyMyw3IEBACiAgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKICAq
LwogCisjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW1wb3J0ICJLV1FLUGFydHNCcm93c2VySW50ZXJm
YWNlLmgiCiAKICNpbXBvcnQgPGt4bWxjb3JlL0Fzc2VydGlvbnMuaD4KSW5kZXg6IFdlYkNvcmUv
a3dxL0tXUUtQYXJ0c0V2ZW50Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJD
b3JlL2t3cS9LV1FLUGFydHNFdmVudC5tbSx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4xMApkaWZm
IC1wIC11IC1yMS4xMCBXZWJDb3JlL2t3cS9LV1FLUGFydHNFdmVudC5tbQotLS0gV2ViQ29yZS9r
d3EvS1dRS1BhcnRzRXZlbnQubW0JMTggTm92IDIwMDMgMDE6NTI6MzUgLTAwMDAJMS4xMAorKysg
V2ViQ29yZS9rd3EvS1dRS1BhcnRzRXZlbnQubW0JMyBPY3QgMjAwNSAwNzozNjoxMyAtMDAwMApA
QCAtMjMsNiArMjMsNyBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCiAgKi8KIAorI2luY2x1ZGUgImNvbmZp
Zy5oIgogI2ltcG9ydCAiS1dRS1BhcnRzRXZlbnQuaCIKIAogbmFtZXNwYWNlIEtQYXJ0cyB7Cklu
ZGV4OiBXZWJDb3JlL2t3cS9LV1FLUGFydHNQYXJ0Lm1tCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9j
dnMvcm9vdC9XZWJDb3JlL2t3cS9LV1FLUGFydHNQYXJ0Lm1tLHYKcmV0cmlldmluZyByZXZpc2lv
biAxLjMKZGlmZiAtcCAtdSAtcjEuMyBXZWJDb3JlL2t3cS9LV1FLUGFydHNQYXJ0Lm1tCi0tLSBX
ZWJDb3JlL2t3cS9LV1FLUGFydHNQYXJ0Lm1tCTE0IERlYyAyMDA0IDAwOjEwOjE4IC0wMDAwCTEu
MworKysgV2ViQ29yZS9rd3EvS1dRS1BhcnRzUGFydC5tbQkzIE9jdCAyMDA1IDA3OjM2OjEzIC0w
MDAwCkBAIC0yMyw2ICsyMyw3IEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKICAqLwogCisjaW5jbHVkZSAi
Y29uZmlnLmgiCiAjaW1wb3J0ICJLV1FLUGFydHNQYXJ0LmgiCiAKIG5hbWVzcGFjZSBLUGFydHMg
ewpJbmRleDogV2ViQ29yZS9rd3EvS1dRS1NTTEtleUdlbi5tbQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxl
OiAvY3ZzL3Jvb3QvV2ViQ29yZS9rd3EvS1dRS1NTTEtleUdlbi5tbSx2CnJldHJpZXZpbmcgcmV2
aXNpb24gMS41CmRpZmYgLXAgLXUgLXIxLjUgV2ViQ29yZS9rd3EvS1dRS1NTTEtleUdlbi5tbQot
LS0gV2ViQ29yZS9rd3EvS1dRS1NTTEtleUdlbi5tbQkxOSBNYXkgMjAwNCAxNDozNzoxMCAtMDAw
MAkxLjUKKysrIFdlYkNvcmUva3dxL0tXUUtTU0xLZXlHZW4ubW0JMyBPY3QgMjAwNSAwNzozNjox
MyAtMDAwMApAQCAtMjMsNiArMjMsNyBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCiAgKi8KIAorI2luY2x1
ZGUgImNvbmZpZy5oIgogI2ltcG9ydCAiS1dRS1NTTEtleUdlbi5oIgogCiAjaW1wb3J0ICJLV1FL
VVJMLmgiCkluZGV4OiBXZWJDb3JlL2t3cS9LV1FLU3RhbmRhcmREaXJzLm1tCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
UkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2t3cS9LV1FLU3RhbmRhcmREaXJzLm1tLHYKcmV0
cmlldmluZyByZXZpc2lvbiAxLjE0CmRpZmYgLXAgLXUgLXIxLjE0IFdlYkNvcmUva3dxL0tXUUtT
dGFuZGFyZERpcnMubW0KLS0tIFdlYkNvcmUva3dxL0tXUUtTdGFuZGFyZERpcnMubW0JOCBPY3Qg
MjAwMyAyMToyMzo0OSAtMDAwMAkxLjE0CisrKyBXZWJDb3JlL2t3cS9LV1FLU3RhbmRhcmREaXJz
Lm1tCTMgT2N0IDIwMDUgMDc6MzY6MTMgLTAwMDAKQEAgLTIzLDYgKzIzLDcgQEAKICAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuIAogICovCiAKKyNpbmNsdWRlICJjb25maWcuaCIKICNpbXBvcnQgIktXUUtTdGFuZGFy
ZERpcnMuaCIKIAogLy8gVGhlIE5TQnVuZGxlIGNhbGxzIGluIHRoaXMgZmlsZSBjYW4ndCB0aHJv
dywgc28gbm8gbmVlZCB0byBibG9jawpJbmRleDogV2ViQ29yZS9rd3EvS1dRS1N0cmluZ0hhbmRs
ZXIubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva3dxL0tXUUtTdHJp
bmdIYW5kbGVyLm1tLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjUKZGlmZiAtcCAtdSAtcjEuNSBX
ZWJDb3JlL2t3cS9LV1FLU3RyaW5nSGFuZGxlci5tbQotLS0gV2ViQ29yZS9rd3EvS1dRS1N0cmlu
Z0hhbmRsZXIubW0JMjIgSmFuIDIwMDMgMDA6MTI6MzUgLTAwMDAJMS41CisrKyBXZWJDb3JlL2t3
cS9LV1FLU3RyaW5nSGFuZGxlci5tbQkzIE9jdCAyMDA1IDA3OjM2OjEzIC0wMDAwCkBAIC0yMyw2
ICsyMyw3IEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKICAqLwogCisjaW5jbHVkZSAiY29uZmlnLmgiCiAj
aW1wb3J0ICJLV1FLU3RyaW5nSGFuZGxlci5oIgogCiBRU3RyaW5nIEtTdHJpbmdIYW5kbGVyOjpj
c3F1ZWV6ZShjb25zdCBRU3RyaW5nICZzdHIsIHVpbnQgbWF4bGVuKQpJbmRleDogV2ViQ29yZS9r
d3EvS1dRS1VSTC5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9rd3Ev
S1dRS1VSTC5tbSx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS45MgpkaWZmIC1wIC11IC1yMS45MiBX
ZWJDb3JlL2t3cS9LV1FLVVJMLm1tCi0tLSBXZWJDb3JlL2t3cS9LV1FLVVJMLm1tCTI3IFNlcCAy
MDA1IDIyOjM3OjI5IC0wMDAwCTEuOTIKKysrIFdlYkNvcmUva3dxL0tXUUtVUkwubW0JMyBPY3Qg
MjAwNSAwNzozNjoxNCAtMDAwMApAQCAtMjMsNiArMjMsNyBAQAogICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCiAg
Ki8KIAorI2luY2x1ZGUgImNvbmZpZy5oIgogI2ltcG9ydCAiS1dRS1VSTC5oIgogCiAjaW1wb3J0
IDxreG1sY29yZS9Bc3NlcnRpb25zLmg+CkBAIC0yNDIsNyArMjQzLDcgQEAgS1VSTDo6S1VSTChj
b25zdCBjaGFyICp1cmwpCiAgICAgICAgIHNpemVfdCB1cmxMZW5ndGggPSBzdHJsZW4odXJsKSAr
IDE7CiAgICAgICAgIHNpemVfdCBidWZmZXJMZW5ndGggPSB1cmxMZW5ndGggKyA1OyAvLyA1IGZv
ciAiZmlsZToiCiAgICAgICAgIGlmIChidWZmZXJMZW5ndGggPiBzaXplb2Yoc3RhdGljQnVmZmVy
KSkgewotICAgICAgICAgICAgYnVmZmVyID0gKGNoYXIgKiltYWxsb2MoYnVmZmVyTGVuZ3RoKTsK
KyAgICAgICAgICAgIGJ1ZmZlciA9IChjaGFyICopZmFzdE1hbGxvYyhidWZmZXJMZW5ndGgpOwog
ICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgYnVmZmVyID0gc3RhdGljQnVmZmVyOwogICAg
ICAgICB9CkBAIC0yNTQsNyArMjU1LDcgQEAgS1VSTDo6S1VSTChjb25zdCBjaGFyICp1cmwpCiAg
ICAgICAgIG1lbWNweSgmYnVmZmVyWzVdLCB1cmwsIHVybExlbmd0aCk7CiAJcGFyc2UoYnVmZmVy
LCBOVUxMKTsKICAgICAgICAgaWYgKGJ1ZmZlciAhPSBzdGF0aWNCdWZmZXIpIHsKLSAgICAgICAg
ICAgIGZyZWUoYnVmZmVyKTsKKyAgICAgICAgICAgIGZhc3RGcmVlKGJ1ZmZlcik7CiAgICAgICAg
IH0KICAgICB9IGVsc2UgewogCXBhcnNlKHVybCwgTlVMTCk7CkBAIC0yNjgsNyArMjY5LDcgQEAg
S1VSTDo6S1VSTChjb25zdCBRU3RyaW5nICZ1cmwpCiAgICAgICAgIGNoYXIgKmJ1ZmZlcjsKICAg
ICAgICAgc2l6ZV90IGJ1ZmZlckxlbmd0aCA9IHVybC5sZW5ndGgoKSArIDY7IC8vIDUgZm9yICJm
aWxlOiIsIDEgZm9yIHRlcm1pbmF0b3IKICAgICAgICAgaWYgKGJ1ZmZlckxlbmd0aCA+IHNpemVv
ZihzdGF0aWNCdWZmZXIpKSB7Ci0gICAgICAgICAgICBidWZmZXIgPSAoY2hhciAqKW1hbGxvYyhi
dWZmZXJMZW5ndGgpOworICAgICAgICAgICAgYnVmZmVyID0gKGNoYXIgKilmYXN0TWFsbG9jKGJ1
ZmZlckxlbmd0aCk7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBidWZmZXIgPSBzdGF0
aWNCdWZmZXI7CiAgICAgICAgIH0KQEAgLTI4MCw3ICsyODEsNyBAQCBLVVJMOjpLVVJMKGNvbnN0
IFFTdHJpbmcgJnVybCkKICAgICAgICAgdXJsLmNvcHlMYXRpbjEoJmJ1ZmZlcls1XSk7CiAJcGFy
c2UoYnVmZmVyLCBOVUxMKTsKICAgICAgICAgaWYgKGJ1ZmZlciAhPSBzdGF0aWNCdWZmZXIpIHsK
LSAgICAgICAgICAgIGZyZWUoYnVmZmVyKTsKKyAgICAgICAgICAgIGZhc3RGcmVlKGJ1ZmZlcik7
CiAgICAgICAgIH0KICAgICB9IGVsc2UgewogCXBhcnNlKHVybC5hc2NpaSgpLCAmdXJsKTsKQEAg
LTI5NSw3ICsyOTYsNyBAQCBLVVJMOjpLVVJMKE5TVVJMICp1cmwpCiAgICAgICAgIGNoYXIgc3Rh
dGljQnVmZmVyWzIwNDhdOwogICAgICAgICBjaGFyICpidWZmZXI7CiAgICAgICAgIGlmIChidWZm
ZXJMZW5ndGggPiBzaXplb2Yoc3RhdGljQnVmZmVyKSkgewotICAgICAgICAgICAgYnVmZmVyID0g
KGNoYXIgKiltYWxsb2MoYnVmZmVyTGVuZ3RoKTsKKyAgICAgICAgICAgIGJ1ZmZlciA9IChjaGFy
ICopZmFzdE1hbGxvYyhidWZmZXJMZW5ndGgpOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAg
ICAgYnVmZmVyID0gc3RhdGljQnVmZmVyOwogICAgICAgICB9CkBAIC0zMTMsNyArMzE0LDcgQEAg
S1VSTDo6S1VSTChOU1VSTCAqdXJsKQogICAgICAgICAgICAgcGFyc2UoYnl0ZXMsIE5VTEwpOwog
ICAgICAgICB9CiAgICAgICAgIGlmIChidWZmZXIgIT0gc3RhdGljQnVmZmVyKSB7Ci0gICAgICAg
ICAgICBmcmVlKGJ1ZmZlcik7CisgICAgICAgICAgICBmYXN0RnJlZShidWZmZXIpOwogICAgICAg
ICB9CiAgICAgfQogICAgIGVsc2UgewpAQCAtMzY3LDEwICszNjgsMTAgQEAgS1VSTDo6S1VSTChj
b25zdCBLVVJMICZiYXNlLCBjb25zdCBRU3RyaQogICAgICAgICBjaGFyc1RvQ2hvcE9mZkVuZCsr
OwogICAgIH0KICAgICBpZiAoY2hhcnNUb0Nob3BPZmZFbmQgPiAwKSB7Ci0gICAgICAgIGNoYXIg
Km5ld1N0ckJ1ZmZlciA9IChjaGFyICopbWFsbG9jKChsZW4gKyAxKSAtIGNoYXJzVG9DaG9wT2Zm
RW5kKTsKKyAgICAgICAgY2hhciAqbmV3U3RyQnVmZmVyID0gKGNoYXIgKilmYXN0TWFsbG9jKChs
ZW4gKyAxKSAtIGNoYXJzVG9DaG9wT2ZmRW5kKTsKICAgICAgICAgc3RybmNweShuZXdTdHJCdWZm
ZXIsIHN0ciwgbGVuIC0gY2hhcnNUb0Nob3BPZmZFbmQpOwogICAgICAgICBuZXdTdHJCdWZmZXJb
bGVuIC0gY2hhcnNUb0Nob3BPZmZFbmRdID0gJ1wwJzsKLSAgICAgICAgZnJlZShzdHJCdWZmZXIp
OworICAgICAgICBmYXN0RnJlZShzdHJCdWZmZXIpOwogICAgICAgICBzdHJCdWZmZXIgPSBuZXdT
dHJCdWZmZXI7CiAgICAgICAgIHN0ciA9IHN0ckJ1ZmZlcjsKICAgICB9CkBAIC00MDMsNyArNDA0
LDcgQEAgS1VSTDo6S1VSTChjb25zdCBLVVJMICZiYXNlLCBjb25zdCBRU3RyaQogCSAgICBRU3Ry
aW5nIG5ld1VSTCA9IGJhc2UudXJsU3RyaW5nICsgc3RyOwogCSAgICBwYXJzZShuZXdVUkwuYXNj
aWkoKSwgJm5ld1VSTCk7CiAgICAgICAgICAgICBpZiAoc3RyQnVmZmVyKSB7Ci0gICAgICAgICAg
ICAgICAgZnJlZShzdHJCdWZmZXIpOworICAgICAgICAgICAgICAgIGZhc3RGcmVlKHN0ckJ1ZmZl
cik7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICByZXR1cm47CiAJfQpAQCAtNDU1LDcgKzQ1
Niw3IEBAIEtVUkw6OktVUkwoY29uc3QgS1VSTCAmYmFzZSwgY29uc3QgUVN0cmkKIAkJc2l6ZV90
IGJ1ZmZlckxlbmd0aCA9IGJhc2UucGF0aEVuZFBvcyArIDEgKyBzdHJsZW4oc3RyKSArIDE7CiAK
IAkJaWYgKGJ1ZmZlckxlbmd0aCA+IHNpemVvZihzdGF0aWNCdWZmZXIpKSB7Ci0JCSAgICBidWZm
ZXIgPSAoY2hhciAqKW1hbGxvYyhidWZmZXJMZW5ndGgpOworCQkgICAgYnVmZmVyID0gKGNoYXIg
KilmYXN0TWFsbG9jKGJ1ZmZlckxlbmd0aCk7CiAJCX0gZWxzZSB7CiAJCSAgICBidWZmZXIgPSBz
dGF0aWNCdWZmZXI7CiAJCX0KQEAgLTUzMyw3ICs1MzQsNyBAQCBLVVJMOjpLVVJMKGNvbnN0IEtV
UkwgJmJhc2UsIGNvbnN0IFFTdHJpCiAgICAgICAgICAgICAgICAgQVNTRVJUKHN0cmxlbihidWZm
ZXIpICsgMSA8PSBidWZmZXJMZW5ndGgpOwogCQkKIAkJaWYgKGJ1ZmZlciAhPSBzdGF0aWNCdWZm
ZXIpIHsKLQkJICAgIGZyZWUoYnVmZmVyKTsKKwkJICAgIGZhc3RGcmVlKGJ1ZmZlcik7CiAJCX0K
IAkJCiAJCWJyZWFrOwpAQCAtNTQyLDcgKzU0Myw3IEBAIEtVUkw6OktVUkwoY29uc3QgS1VSTCAm
YmFzZSwgY29uc3QgUVN0cmkKICAgICB9CiAgICAgCiAgICAgaWYgKHN0ckJ1ZmZlcikgewotICAg
ICAgICBmcmVlKHN0ckJ1ZmZlcik7CisgICAgICAgIGZhc3RGcmVlKHN0ckJ1ZmZlcik7CiAgICAg
fQogfQogCkBAIC05MjcsOSArOTI4LDkgQEAgUVN0cmluZyBLVVJMOjpkZWNvZGVfc3RyaW5nKGNv
bnN0IFFTdHJpbgogICAgICAgICBpbnQgZW5jb2RlZFJ1bkxlbmd0aCA9IGVuY29kZWRSdW5FbmQg
LSBlbmNvZGVkUnVuUG9zaXRpb247CiAgICAgICAgIGlmIChlbmNvZGVkUnVuTGVuZ3RoICsgMSA+
IGJ1ZmZlckxlbmd0aCkgewogICAgICAgICAgICAgaWYgKGJ1ZmZlciAhPSBzdGF0aWNCdWZmZXIp
Ci0gICAgICAgICAgICAgICAgZnJlZShidWZmZXIpOworICAgICAgICAgICAgICAgIGZhc3RGcmVl
KGJ1ZmZlcik7CiAgICAgICAgICAgICBidWZmZXJMZW5ndGggPSBtYWxsb2NfZ29vZF9zaXplKGVu
Y29kZWRSdW5MZW5ndGggKyAxKTsKLSAgICAgICAgICAgIGJ1ZmZlciA9IHN0YXRpY19jYXN0PGNo
YXIgKj4obWFsbG9jKGJ1ZmZlckxlbmd0aCkpOworICAgICAgICAgICAgYnVmZmVyID0gc3RhdGlj
X2Nhc3Q8Y2hhciAqPihmYXN0TWFsbG9jKGJ1ZmZlckxlbmd0aCkpOwogICAgICAgICB9CiAgICAg
ICAgIHVybFN0cmluZy5jb3B5TGF0aW4xKGJ1ZmZlciwgZW5jb2RlZFJ1blBvc2l0aW9uLCBlbmNv
ZGVkUnVuTGVuZ3RoKTsKIApAQCAtOTU2LDcgKzk1Nyw3IEBAIFFTdHJpbmcgS1VSTDo6ZGVjb2Rl
X3N0cmluZyhjb25zdCBRU3RyaW4KICAgICByZXN1bHQuYXBwZW5kKHVybFN0cmluZy5taWQoZGVj
b2RlZFBvc2l0aW9uLCBsZW5ndGggLSBkZWNvZGVkUG9zaXRpb24pKTsKIAogICAgIGlmIChidWZm
ZXIgIT0gc3RhdGljQnVmZmVyKQotICAgICAgICBmcmVlKGJ1ZmZlcik7CisgICAgICAgIGZhc3RG
cmVlKGJ1ZmZlcik7CiAKICAgICByZXR1cm4gcmVzdWx0OwogfQpAQCAtMTI1MSw3ICsxMjUyLDcg
QEAgdm9pZCBLVVJMOjpwYXJzZShjb25zdCBjaGFyICp1cmwsIGNvbnN0IAogICAgIGlmIChidWZm
ZXJMZW5ndGggPD0gc2l6ZW9mKHN0YXRpY0J1ZmZlcikpIHsKIAlidWZmZXIgPSBzdGF0aWNCdWZm
ZXI7CiAgICAgfSBlbHNlIHsKLQlidWZmZXIgPSAoY2hhciAqKW1hbGxvYyhidWZmZXJMZW5ndGgp
OworCWJ1ZmZlciA9IChjaGFyICopZmFzdE1hbGxvYyhidWZmZXJMZW5ndGgpOwogICAgIH0KIAog
ICAgIGNoYXIgKnAgPSBidWZmZXI7CkBAIC0xMzc3LDEyICsxMzc4LDEyIEBAIHZvaWQgS1VSTDo6
cGFyc2UoY29uc3QgY2hhciAqdXJsLCBjb25zdCAKICAgICAgICAgaWYgKHBhdGhCdWZmZXJMZW5n
dGggPD0gc2l6ZW9mKHN0YXRpY19wYXRoX2J1ZmZlcikpIHsKICAgICAgICAgICAgIHBhdGhfYnVm
ZmVyID0gc3RhdGljX3BhdGhfYnVmZmVyOwogICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAg
cGF0aF9idWZmZXIgPSAoY2hhciAqKW1hbGxvYyhwYXRoQnVmZmVyTGVuZ3RoKTsKKyAgICAgICAg
ICAgIHBhdGhfYnVmZmVyID0gKGNoYXIgKilmYXN0TWFsbG9jKHBhdGhCdWZmZXJMZW5ndGgpOwog
ICAgICAgICB9CiAgICAgICAgIGNvcHlQYXRoUmVtb3ZpbmdEb3RzKHBhdGhfYnVmZmVyLCB1cmws
IHBhdGhTdGFydCwgcGF0aEVuZCk7CiAgICAgICAgIGFwcGVuZEVzY2FwaW5nQmFkQ2hhcnMocCwg
cGF0aF9idWZmZXIsIHN0cmxlbihwYXRoX2J1ZmZlcikpOwogICAgICAgICBpZiAocGF0aF9idWZm
ZXIgIT0gc3RhdGljX3BhdGhfYnVmZmVyKSB7Ci0gICAgICAgICAgICBmcmVlKHBhdGhfYnVmZmVy
KTsKKyAgICAgICAgICAgIGZhc3RGcmVlKHBhdGhfYnVmZmVyKTsKICAgICAgICAgfQogICAgIH0K
ICAgICBlbHNlIHsKQEAgLTE0MTQsNyArMTQxNSw3IEBAIHZvaWQgS1VSTDo6cGFyc2UoY29uc3Qg
Y2hhciAqdXJsLCBjb25zdCAKICAgICBBU1NFUlQocCAtIGJ1ZmZlciA8PSAoaW50KWJ1ZmZlckxl
bmd0aCk7CiAJCQogICAgIGlmIChidWZmZXIgIT0gc3RhdGljQnVmZmVyKSB7Ci0JZnJlZShidWZm
ZXIpOworCWZhc3RGcmVlKGJ1ZmZlcik7CiAgICAgfQogfQogCkBAIC0xNDQ1LDcgKzE0NDYsNyBA
QCBRU3RyaW5nIEtVUkw6OmVuY29kZV9zdHJpbmcoY29uc3QgUVN0cmluCiAgICAgaWYgKGJ1ZmZl
ckxlbmd0aCA8PSBzaXplb2Yoc3RhdGljQnVmZmVyKSkgewogCWJ1ZmZlciA9IHN0YXRpY0J1ZmZl
cjsKICAgICB9IGVsc2UgewotCWJ1ZmZlciA9IChjaGFyICopbWFsbG9jKGJ1ZmZlckxlbmd0aCk7
CisJYnVmZmVyID0gKGNoYXIgKilmYXN0TWFsbG9jKGJ1ZmZlckxlbmd0aCk7CiAgICAgfQogICAg
IAogICAgIGNoYXIgKnAgPSBidWZmZXI7CkBAIC0xNDY4LDcgKzE0NjksNyBAQCBRU3RyaW5nIEtV
Ukw6OmVuY29kZV9zdHJpbmcoY29uc3QgUVN0cmluCiAgICAgQVNTRVJUKHAgLSBidWZmZXIgPD0g
KGludClidWZmZXJMZW5ndGgpOwogCQkKICAgICBpZiAoYnVmZmVyICE9IHN0YXRpY0J1ZmZlcikg
ewotCWZyZWUoYnVmZmVyKTsKKwlmYXN0RnJlZShidWZmZXIpOwogICAgIH0KIAogICAgIHJldHVy
biByZXN1bHQ7CkBAIC0xNzE4LDcgKzE3MTksNyBAQCBzdGF0aWMgY2hhciAqZW5jb2RlUmVsYXRp
dmVTdHJpbmcoY29uc3QgCiAgICAgICAgIFFDU3RyaW5nIG90aGVyRGVjb2RlZCA9IG90aGVyQ29k
ZWMtPmZyb21Vbmljb2RlKHMubWlkKHBhdGhFbmQpKTsKICAgICAgICAgaW50IHBhdGhEZWNvZGVk
TGVuZ3RoID0gcGF0aERlY29kZWQubGVuZ3RoKCk7CiAgICAgICAgIGludCBvdGhlckRlY29kZWRM
ZW5ndGggPSBvdGhlckRlY29kZWQubGVuZ3RoKCk7Ci0gICAgICAgIHN0ckJ1ZmZlciA9IHN0YXRp
Y19jYXN0PGNoYXIgKj4obWFsbG9jKHBhdGhEZWNvZGVkTGVuZ3RoICsgb3RoZXJEZWNvZGVkTGVu
Z3RoICsgMSkpOworICAgICAgICBzdHJCdWZmZXIgPSBzdGF0aWNfY2FzdDxjaGFyICo+KGZhc3RN
YWxsb2MocGF0aERlY29kZWRMZW5ndGggKyBvdGhlckRlY29kZWRMZW5ndGggKyAxKSk7CiAgICAg
ICAgIG1lbWNweShzdHJCdWZmZXIsIHBhdGhEZWNvZGVkLCBwYXRoRGVjb2RlZExlbmd0aCk7CiAg
ICAgICAgIG1lbWNweShzdHJCdWZmZXIgKyBwYXRoRGVjb2RlZExlbmd0aCwgb3RoZXJEZWNvZGVk
LCBvdGhlckRlY29kZWRMZW5ndGgpOwogICAgICAgICBzdHJCdWZmZXJbcGF0aERlY29kZWRMZW5n
dGggKyBvdGhlckRlY29kZWRMZW5ndGhdID0gMDsKSW5kZXg6IFdlYkNvcmUva3dxL0tXUUtXaW4u
bW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva3dxL0tXUUtXaW4ubW0s
dgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuOQpkaWZmIC1wIC11IC1yMS45IFdlYkNvcmUva3dxL0tX
UUtXaW4ubW0KLS0tIFdlYkNvcmUva3dxL0tXUUtXaW4ubW0JMjIgSmFuIDIwMDMgMDA6MTI6MzUg
LTAwMDAJMS45CisrKyBXZWJDb3JlL2t3cS9LV1FLV2luLm1tCTMgT2N0IDIwMDUgMDc6MzY6MTQg
LTAwMDAKQEAgLTIzLDYgKzIzLDcgQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAogICovCiAKKyNpbmNsdWRl
ICJjb25maWcuaCIKICNpbXBvcnQgIktXUUtXaW4uaCIKIAogI2ltcG9ydCAiS1dRV2lkZ2V0Lmgi
CkluZGV4OiBXZWJDb3JlL2t3cS9LV1FLV2luTW9kdWxlLm1tCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6
IC9jdnMvcm9vdC9XZWJDb3JlL2t3cS9LV1FLV2luTW9kdWxlLm1tLHYKcmV0cmlldmluZyByZXZp
c2lvbiAxLjEzCmRpZmYgLXAgLXUgLXIxLjEzIFdlYkNvcmUva3dxL0tXUUtXaW5Nb2R1bGUubW0K
LS0tIFdlYkNvcmUva3dxL0tXUUtXaW5Nb2R1bGUubW0JMTQgRGVjIDIwMDMgMDA6NDM6MTMgLTAw
MDAJMS4xMworKysgV2ViQ29yZS9rd3EvS1dRS1dpbk1vZHVsZS5tbQkzIE9jdCAyMDA1IDA3OjM2
OjE0IC0wMDAwCkBAIC0yMyw2ICsyMyw3IEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKICAqLwogCisjaW5j
bHVkZSAiY29uZmlnLmgiCiAjaW1wb3J0ICJLV1FLV2luTW9kdWxlLmgiCiAKIFFSZWN0IEtXaW5N
b2R1bGU6OndvcmtBcmVhKCkgY29uc3QKSW5kZXg6IFdlYkNvcmUva3dxL0tXUUxhYmVsLm1tCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2t3cS9LV1FMYWJlbC5tbSx2CnJl
dHJpZXZpbmcgcmV2aXNpb24gMS45CmRpZmYgLXAgLXUgLXIxLjkgV2ViQ29yZS9rd3EvS1dRTGFi
ZWwubW0KLS0tIFdlYkNvcmUva3dxL0tXUUxhYmVsLm1tCTIyIEphbiAyMDAzIDAwOjEyOjM1IC0w
MDAwCTEuOQorKysgV2ViQ29yZS9rd3EvS1dRTGFiZWwubW0JMyBPY3QgMjAwNSAwNzozNjoxNCAt
MDAwMApAQCAtMjMsNiArMjMsNyBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCiAgKi8KIAorI2luY2x1ZGUg
ImNvbmZpZy5oIgogI2ltcG9ydCAiS1dRTGFiZWwuaCIKIAogUUxhYmVsOjpRTGFiZWwoY29uc3Qg
UVN0cmluZyAmLCBRV2lkZ2V0ICopCkluZGV4OiBXZWJDb3JlL2t3cS9LV1FMaW5lRWRpdC5tbQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9rd3EvS1dRTGluZUVkaXQubW0s
dgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNzEKZGlmZiAtcCAtdSAtcjEuNzEgV2ViQ29yZS9rd3Ev
S1dRTGluZUVkaXQubW0KLS0tIFdlYkNvcmUva3dxL0tXUUxpbmVFZGl0Lm1tCTI0IFNlcCAyMDA1
IDExOjA1OjMzIC0wMDAwCTEuNzEKKysrIFdlYkNvcmUva3dxL0tXUUxpbmVFZGl0Lm1tCTMgT2N0
IDIwMDUgMDc6MzY6MTQgLTAwMDAKQEAgLTIzLDYgKzIzLDcgQEAKICAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAog
ICovCiAKKyNpbmNsdWRlICJjb25maWcuaCIKICNpbXBvcnQgIktXUUxpbmVFZGl0LmgiCiAKICNp
bXBvcnQgIktXUUJ1dHRvbi5oIgpJbmRleDogV2ViQ29yZS9rd3EvS1dRTGlzdEJveC5tbQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9rd3EvS1dRTGlzdEJveC5tbSx2CnJl
dHJpZXZpbmcgcmV2aXNpb24gMS41OApkaWZmIC1wIC11IC1yMS41OCBXZWJDb3JlL2t3cS9LV1FM
aXN0Qm94Lm1tCi0tLSBXZWJDb3JlL2t3cS9LV1FMaXN0Qm94Lm1tCTI3IFNlcCAyMDA1IDIyOjM3
OjI5IC0wMDAwCTEuNTgKKysrIFdlYkNvcmUva3dxL0tXUUxpc3RCb3gubW0JMyBPY3QgMjAwNSAw
NzozNjoxNCAtMDAwMApAQCAtMjMsNiArMjMsNyBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCiAgKi8KIAor
I2luY2x1ZGUgImNvbmZpZy5oIgogI2ltcG9ydCAiS1dRTGlzdEJveC5oIgogCiAjaW1wb3J0IDxr
eG1sY29yZS9Bc3NlcnRpb25zLmg+CkluZGV4OiBXZWJDb3JlL2t3cS9LV1FMaXN0SW1wbC5tbQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9rd3EvS1dRTGlzdEltcGwubW0s
dgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMjIKZGlmZiAtcCAtdSAtcjEuMjIgV2ViQ29yZS9rd3Ev
S1dRTGlzdEltcGwubW0KLS0tIFdlYkNvcmUva3dxL0tXUUxpc3RJbXBsLm1tCTI3IFNlcCAyMDA1
IDIyOjM3OjMwIC0wMDAwCTEuMjIKKysrIFdlYkNvcmUva3dxL0tXUUxpc3RJbXBsLm1tCTMgT2N0
IDIwMDUgMDc6MzY6MTQgLTAwMDAKQEAgLTIzLDYgKzIzLDcgQEAKICAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAog
ICovCiAKKyNpbmNsdWRlICJjb25maWcuaCIKICNpbXBvcnQgIktXUUxpc3RJbXBsLmgiCiAKICNp
bXBvcnQgPGNzdGRkZWY+CkBAIC0zMSw3ICszMiw3IEBACiAjaW1wb3J0IDxreG1sY29yZS9Bc3Nl
cnRpb25zLmg+CiAjaW1wb3J0ICJreG1sY29yZS9GYXN0TWFsbG9jLmgiCiAKLWNsYXNzIEtXUUxp
c3ROb2RlIDogcHVibGljIEZhc3RBbGxvY2F0ZWQKK2NsYXNzIEtXUUxpc3ROb2RlCiB7CiBwdWJs
aWM6CiAgICAgS1dRTGlzdE5vZGUodm9pZCAqZCkgOiBkYXRhKGQpLCBuZXh0KE5VTEwpLCBwcmV2
KE5VTEwpIHsgfQpJbmRleDogV2ViQ29yZS9rd3EvS1dRTG9hZGVyLm1tCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNT
IGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2t3cS9LV1FMb2FkZXIubW0sdgpyZXRyaWV2aW5nIHJl
dmlzaW9uIDEuMTIyCmRpZmYgLXAgLXUgLXIxLjEyMiBXZWJDb3JlL2t3cS9LV1FMb2FkZXIubW0K
LS0tIFdlYkNvcmUva3dxL0tXUUxvYWRlci5tbQk4IFNlcCAyMDA1IDIxOjM1OjMwIC0wMDAwCTEu
MTIyCisrKyBXZWJDb3JlL2t3cS9LV1FMb2FkZXIubW0JMyBPY3QgMjAwNSAwNzozNjoxNSAtMDAw
MApAQCAtMjMsNiArMjMsNyBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCiAgKi8KIAorI2luY2x1ZGUgImNv
bmZpZy5oIgogI2ltcG9ydCAiS1dRTG9hZGVyLmgiCiAKICNpbXBvcnQgIktXUUV4Y2VwdGlvbnMu
aCIKQEAgLTI3NSw3ICsyNzYsNyBAQCBib29sIEtXUUlzUmVzcG9uc2VVUkxFcXVhbFRvVVJMKE5T
VVJMUmVzCiAgICAgLy8gTmFzdHkgaGFjayB0byBkaXJlY3RseSBjb21wYXJlIHN0cmluZ3MgYnVm
ZmVycyBvZiBOU1N0cmluZwogICAgIC8vIGFuZCBET01TdHJpbmcuICBXZSBkbyB0aGlzIGZvciBz
cGVlZC4KICAgICBpZiAoW3VybFN0cmluZyBsZW5ndGhdID4gTE9DQUxfU1RSSU5HX0JVRkZFUl9T
SVpFKSB7Ci0gICAgICAgIHVybFN0cmluZ0NoYXJhY3RlcnMgPSAodW5pY2hhciAqKW1hbGxvYyAo
c2l6ZW9mKHVuaWNoYXIpKlt1cmxTdHJpbmcgbGVuZ3RoXSk7CisgICAgICAgIHVybFN0cmluZ0No
YXJhY3RlcnMgPSAodW5pY2hhciAqKWZhc3RNYWxsb2Moc2l6ZW9mKHVuaWNoYXIpKlt1cmxTdHJp
bmcgbGVuZ3RoXSk7CiAgICAgfQogICAgIGVsc2UgewogICAgICAgICB1cmxTdHJpbmdDaGFyYWN0
ZXJzID0gX2J1ZmZlcjsKQEAgLTI4Nyw3ICsyODgsNyBAQCBib29sIEtXUUlzUmVzcG9uc2VVUkxF
cXVhbFRvVVJMKE5TVVJMUmVzCiAJcmV0ID0gdHJ1ZTsKICAgICAKICAgICBpZiAodXJsU3RyaW5n
Q2hhcmFjdGVycyAhPSBfYnVmZmVyKQotICAgICAgICBmcmVlICh1cmxTdHJpbmdDaGFyYWN0ZXJz
KTsKKyAgICAgICAgZmFzdEZyZWUodXJsU3RyaW5nQ2hhcmFjdGVycyk7CiAgICAgICAgIAogICAg
IHJldHVybiByZXQ7CiB9CkluZGV4OiBXZWJDb3JlL2t3cS9LV1FNYXBJbXBsLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva3dxL0tXUU1hcEltcGwuaCx2CnJldHJpZXZp
bmcgcmV2aXNpb24gMS4xMApkaWZmIC1wIC11IC1yMS4xMCBXZWJDb3JlL2t3cS9LV1FNYXBJbXBs
LmgKLS0tIFdlYkNvcmUva3dxL0tXUU1hcEltcGwuaAkyNyBTZXAgMjAwNSAyMjozNzozMCAtMDAw
MAkxLjEwCisrKyBXZWJDb3JlL2t3cS9LV1FNYXBJbXBsLmgJMyBPY3QgMjAwNSAwNzozNjoxNSAt
MDAwMApAQCAtMzMsNyArMzMsNyBAQAogCiBjbGFzcyBLV1FNYXBJbXBsOwogCi1jbGFzcyBLV1FN
YXBOb2RlSW1wbCA6IHB1YmxpYyBGYXN0QWxsb2NhdGVkCitjbGFzcyBLV1FNYXBOb2RlSW1wbAog
ewogcHJvdGVjdGVkOgogICAgIHR5cGVkZWYgZW51bSB7IFJlZCA9IDAsIEJsYWNrID0gMSB9IEtX
UU1hcE5vZGVDb2xvcjsKQEAgLTY0LDcgKzY0LDcgQEAgcHJvdGVjdGVkOgogI2VuZGlmCiB9Owog
Ci1jbGFzcyBLV1FNYXBJdGVyYXRvckltcGwgOiBwdWJsaWMgRmFzdEFsbG9jYXRlZCB7CitjbGFz
cyBLV1FNYXBJdGVyYXRvckltcGwgewogcHJvdGVjdGVkOgogICAgIEtXUU1hcE5vZGVJbXBsICpu
b2RlOwogCkluZGV4OiBXZWJDb3JlL2t3cS9LV1FNYXBJbXBsLm1tCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZp
bGU6IC9jdnMvcm9vdC9XZWJDb3JlL2t3cS9LV1FNYXBJbXBsLm1tLHYKcmV0cmlldmluZyByZXZp
c2lvbiAxLjExCmRpZmYgLXAgLXUgLXIxLjExIFdlYkNvcmUva3dxL0tXUU1hcEltcGwubW0KLS0t
IFdlYkNvcmUva3dxL0tXUU1hcEltcGwubW0JMjcgU2VwIDIwMDUgMjI6Mzc6MzAgLTAwMDAJMS4x
MQorKysgV2ViQ29yZS9rd3EvS1dRTWFwSW1wbC5tbQkzIE9jdCAyMDA1IDA3OjM2OjE1IC0wMDAw
CkBAIC0yMyw2ICsyMyw3IEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKICAqLwogCisjaW5jbHVkZSAiY29u
ZmlnLmgiCiAjaW1wb3J0ICJLV1FNYXBJbXBsLmgiCiAKIEtXUU1hcE5vZGVJbXBsOjpLV1FNYXBO
b2RlSW1wbCgpIDoKQEAgLTExNSw3ICsxMTYsNyBAQCB2b2lkIEtXUU1hcEl0ZXJhdG9ySW1wbDo6
aW5jcmVtZW50SW50ZXJuCiAKIC8vIEtXUU1hcEltcGxQcml2YXRlCiAKLWNsYXNzIEtXUU1hcElt
cGw6OktXUU1hcFByaXZhdGUgOiBwdWJsaWMgRmFzdEFsbG9jYXRlZAorY2xhc3MgS1dRTWFwSW1w
bDo6S1dRTWFwUHJpdmF0ZQogewogcHVibGljOgogICAgIEtXUU1hcFByaXZhdGUoS1dRTWFwTm9k
ZUltcGwgKm5vZGUsCkluZGV4OiBXZWJDb3JlL2t3cS9LV1FNb3ZpZS5tbQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJD
UyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9rd3EvS1dRTW92aWUubW0sdgpyZXRyaWV2aW5nIHJl
dmlzaW9uIDEuNwpkaWZmIC1wIC11IC1yMS43IFdlYkNvcmUva3dxL0tXUU1vdmllLm1tCi0tLSBX
ZWJDb3JlL2t3cS9LV1FNb3ZpZS5tbQkyMiBKYW4gMjAwMyAwMDoxMjozNSAtMDAwMAkxLjcKKysr
IFdlYkNvcmUva3dxL0tXUU1vdmllLm1tCTMgT2N0IDIwMDUgMDc6MzY6MTUgLTAwMDAKQEAgLTIz
LDYgKzIzLDcgQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAogICovCiAKKyNpbmNsdWRlICJjb25maWcuaCIK
ICNpbXBvcnQgIktXUU1vdmllLmgiCiAKIGNvbnN0IFFSZWN0ICZRTW92aWU6OmdldFZhbGlkUmVj
dCgpIGNvbnN0CkluZGV4OiBXZWJDb3JlL2t3cS9LV1FPYmplY3QubW0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1Mg
ZmlsZTogL2N2cy9yb290L1dlYkNvcmUva3dxL0tXUU9iamVjdC5tbSx2CnJldHJpZXZpbmcgcmV2
aXNpb24gMS40NwpkaWZmIC1wIC11IC1yMS40NyBXZWJDb3JlL2t3cS9LV1FPYmplY3QubW0KLS0t
IFdlYkNvcmUva3dxL0tXUU9iamVjdC5tbQkyNyBTZXAgMjAwNSAyMjozNzozMCAtMDAwMAkxLjQ3
CisrKyBXZWJDb3JlL2t3cS9LV1FPYmplY3QubW0JMyBPY3QgMjAwNSAwNzozNjoxNSAtMDAwMApA
QCAtMjMsNiArMjMsNyBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCiAgKi8KIAorI2luY2x1ZGUgImNvbmZp
Zy5oIgogI2ltcG9ydCAiS1dRT2JqZWN0LmgiCiAKICNpbXBvcnQgIktXUVZhcmlhbnQuaCIKSW5k
ZXg6IFdlYkNvcmUva3dxL0tXUVBhZ2VTdGF0ZS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3Zz
L3Jvb3QvV2ViQ29yZS9rd3EvS1dRUGFnZVN0YXRlLm1tLHYKcmV0cmlldmluZyByZXZpc2lvbiAx
LjIwCmRpZmYgLXAgLXUgLXIxLjIwIFdlYkNvcmUva3dxL0tXUVBhZ2VTdGF0ZS5tbQotLS0gV2Vi
Q29yZS9rd3EvS1dRUGFnZVN0YXRlLm1tCTI3IFNlcCAyMDA1IDIyOjM3OjMwIC0wMDAwCTEuMjAK
KysrIFdlYkNvcmUva3dxL0tXUVBhZ2VTdGF0ZS5tbQkzIE9jdCAyMDA1IDA3OjM2OjE1IC0wMDAw
CkBAIC0yMyw2ICsyMyw3IEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKICAqLwogCisjaW5jbHVkZSAiY29u
ZmlnLmgiCiAjaW1wb3J0ICJLV1FQYWdlU3RhdGUuaCIKIAogI2ltcG9ydCA8SmF2YVNjcmlwdENv
cmUvaW50ZXJwcmV0ZXIuaD4KSW5kZXg6IFdlYkNvcmUva3dxL0tXUVBhaW50RGV2aWNlTWV0cmlj
cy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9rd3EvS1dRUGFpbnRE
ZXZpY2VNZXRyaWNzLm1tLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjE1CmRpZmYgLXAgLXUgLXIx
LjE1IFdlYkNvcmUva3dxL0tXUVBhaW50RGV2aWNlTWV0cmljcy5tbQotLS0gV2ViQ29yZS9rd3Ev
S1dRUGFpbnREZXZpY2VNZXRyaWNzLm1tCTQgQXByIDIwMDMgMTY6NTY6MDIgLTAwMDAJMS4xNQor
KysgV2ViQ29yZS9rd3EvS1dRUGFpbnREZXZpY2VNZXRyaWNzLm1tCTMgT2N0IDIwMDUgMDc6MzY6
MTUgLTAwMDAKQEAgLTIzLDYgKzIzLDcgQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAogICovCiAKKyNpbmNs
dWRlICJjb25maWcuaCIKICNpbXBvcnQgIktXUVBhaW50RGV2aWNlTWV0cmljcy5oIgogCiBRUGFp
bnREZXZpY2VNZXRyaWNzOjpRUGFpbnREZXZpY2VNZXRyaWNzKGNvbnN0IFFQYWludERldmljZSAq
KQpJbmRleDogV2ViQ29yZS9rd3EvS1dRUGFpbnRlci5tbQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAv
Y3ZzL3Jvb3QvV2ViQ29yZS9rd3EvS1dRUGFpbnRlci5tbSx2CnJldHJpZXZpbmcgcmV2aXNpb24g
MS4xNDMKZGlmZiAtcCAtdSAtcjEuMTQzIFdlYkNvcmUva3dxL0tXUVBhaW50ZXIubW0KLS0tIFdl
YkNvcmUva3dxL0tXUVBhaW50ZXIubW0JMjcgU2VwIDIwMDUgMjI6Mzc6MzAgLTAwMDAJMS4xNDMK
KysrIFdlYkNvcmUva3dxL0tXUVBhaW50ZXIubW0JMyBPY3QgMjAwNSAwNzozNjoxNiAtMDAwMApA
QCAtMjMsNiArMjMsNyBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCiAgKi8KIAorI2luY2x1ZGUgImNvbmZp
Zy5oIgogI2ltcG9ydCAiS1dRUGFpbnRlci5oIgogCiAjaW1wb3J0IDxreG1sY29yZS9Bc3NlcnRp
b25zLmg+CkluZGV4OiBXZWJDb3JlL2t3cS9LV1FQYWxldHRlLm1tCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZp
bGU6IC9jdnMvcm9vdC9XZWJDb3JlL2t3cS9LV1FQYWxldHRlLm1tLHYKcmV0cmlldmluZyByZXZp
c2lvbiAxLjExCmRpZmYgLXAgLXUgLXIxLjExIFdlYkNvcmUva3dxL0tXUVBhbGV0dGUubW0KLS0t
IFdlYkNvcmUva3dxL0tXUVBhbGV0dGUubW0JNSBKdWwgMjAwNSAwODoyMjoyMSAtMDAwMAkxLjEx
CisrKyBXZWJDb3JlL2t3cS9LV1FQYWxldHRlLm1tCTMgT2N0IDIwMDUgMDc6MzY6MTYgLTAwMDAK
QEAgLTIzLDYgKzIzLDcgQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAogICovCiAKKyNpbmNsdWRlICJjb25m
aWcuaCIKICNpbXBvcnQgIktXUVBhbGV0dGUuaCIKICNpbXBvcnQgIktXUUxvZ2dpbmcuaCIKIApJ
bmRleDogV2ViQ29yZS9rd3EvS1dRUGVuLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9v
dC9XZWJDb3JlL2t3cS9LV1FQZW4ubW0sdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuOQpkaWZmIC1w
IC11IC1yMS45IFdlYkNvcmUva3dxL0tXUVBlbi5tbQotLS0gV2ViQ29yZS9rd3EvS1dRUGVuLm1t
CTIyIEphbiAyMDAzIDAwOjEyOjM1IC0wMDAwCTEuOQorKysgV2ViQ29yZS9rd3EvS1dRUGVuLm1t
CTMgT2N0IDIwMDUgMDc6MzY6MTYgLTAwMDAKQEAgLTIzLDYgKzIzLDcgQEAKICAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuIAogICovCiAKKyNpbmNsdWRlICJjb25maWcuaCIKICNpbXBvcnQgIktXUVBlbi5oIgogCiBR
UGVuOjpRUGVuKGNvbnN0IFFDb2xvciAmY29sb3IsIHVpbnQgd2lkdGgsIFBlblN0eWxlIHN0eWxl
KSA6IHBlblN0eWxlKHN0eWxlKSwgcGVuV2lkdGgod2lkdGgpLCBwZW5Db2xvcihjb2xvcikKSW5k
ZXg6IFdlYkNvcmUva3dxL0tXUVBpeG1hcC5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jv
b3QvV2ViQ29yZS9rd3EvS1dRUGl4bWFwLm1tLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjUwCmRp
ZmYgLXAgLXUgLXIxLjUwIFdlYkNvcmUva3dxL0tXUVBpeG1hcC5tbQotLS0gV2ViQ29yZS9rd3Ev
S1dRUGl4bWFwLm1tCTI3IEF1ZyAyMDA1IDAwOjE0OjIyIC0wMDAwCTEuNTAKKysrIFdlYkNvcmUv
a3dxL0tXUVBpeG1hcC5tbQkzIE9jdCAyMDA1IDA3OjM2OjE2IC0wMDAwCkBAIC0yMiw2ICsyMiw3
IEBACiAgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAogICovCisjaW5jbHVkZSAiY29u
ZmlnLmgiCiAjaW1wb3J0ICJsb2FkZXIuaCIKIAogI2ltcG9ydCAiS1dRUGl4bWFwLmgiCkluZGV4
OiBXZWJDb3JlL2t3cS9LV1FQb2ludC5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3Qv
V2ViQ29yZS9rd3EvS1dRUG9pbnQubW0sdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMTEKZGlmZiAt
cCAtdSAtcjEuMTEgV2ViQ29yZS9rd3EvS1dRUG9pbnQubW0KLS0tIFdlYkNvcmUva3dxL0tXUVBv
aW50Lm1tCTMwIFNlcCAyMDA1IDA0OjA0OjU3IC0wMDAwCTEuMTEKKysrIFdlYkNvcmUva3dxL0tX
UVBvaW50Lm1tCTMgT2N0IDIwMDUgMDc6MzY6MTYgLTAwMDAKQEAgLTIzLDYgKzIzLDcgQEAKICAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuIAogICovCiAKKyNpbmNsdWRlICJjb25maWcuaCIKICNpbXBvcnQgIktXUVBv
aW50QXJyYXkuaCIKIAogUVBvaW50OjpRUG9pbnQoKSA6IHhDb29yZCgwKSwgeUNvb3JkKDApCklu
ZGV4OiBXZWJDb3JlL2t3cS9LV1FQb2ludEFycmF5Lm1tCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9j
dnMvcm9vdC9XZWJDb3JlL2t3cS9LV1FQb2ludEFycmF5Lm1tLHYKcmV0cmlldmluZyByZXZpc2lv
biAxLjEwCmRpZmYgLXAgLXUgLXIxLjEwIFdlYkNvcmUva3dxL0tXUVBvaW50QXJyYXkubW0KLS0t
IFdlYkNvcmUva3dxL0tXUVBvaW50QXJyYXkubW0JNyBKdWwgMjAwNSAwNjoyNTowMiAtMDAwMAkx
LjEwCisrKyBXZWJDb3JlL2t3cS9LV1FQb2ludEFycmF5Lm1tCTMgT2N0IDIwMDUgMDc6MzY6MTYg
LTAwMDAKQEAgLTIzLDYgKzIzLDcgQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAogICovCiAKKyNpbmNsdWRl
ICJjb25maWcuaCIKICNpbXBvcnQgIktXUVBvaW50QXJyYXkuaCIKICNpbXBvcnQgPHN0ZGFyZy5o
PgogCkluZGV4OiBXZWJDb3JlL2t3cS9LV1FQdHJEaWN0SW1wbC5tbQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBm
aWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9rd3EvS1dRUHRyRGljdEltcGwubW0sdgpyZXRyaWV2aW5n
IHJldmlzaW9uIDEuNwpkaWZmIC1wIC11IC1yMS43IFdlYkNvcmUva3dxL0tXUVB0ckRpY3RJbXBs
Lm1tCi0tLSBXZWJDb3JlL2t3cS9LV1FQdHJEaWN0SW1wbC5tbQkyMiBKYW4gMjAwMyAwMDoxMjoz
NSAtMDAwMAkxLjcKKysrIFdlYkNvcmUva3dxL0tXUVB0ckRpY3RJbXBsLm1tCTMgT2N0IDIwMDUg
MDc6MzY6MTYgLTAwMDAKQEAgLTIzLDYgKzIzLDcgQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAogICovCiAK
KyNpbmNsdWRlICJjb25maWcuaCIKICNpbXBvcnQgIktXUVB0ckRpY3RJbXBsLmgiCiAKICNpbXBv
cnQgPG5ldz4KSW5kZXg6IFdlYkNvcmUva3dxL0tXUVB1c2hCdXR0b24ubW0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpS
Q1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva3dxL0tXUVB1c2hCdXR0b24ubW0sdgpyZXRyaWV2
aW5nIHJldmlzaW9uIDEuMTYKZGlmZiAtcCAtdSAtcjEuMTYgV2ViQ29yZS9rd3EvS1dRUHVzaEJ1
dHRvbi5tbQotLS0gV2ViQ29yZS9rd3EvS1dRUHVzaEJ1dHRvbi5tbQkyNyBPY3QgMjAwMyAyMDo1
MToyNSAtMDAwMAkxLjE2CisrKyBXZWJDb3JlL2t3cS9LV1FQdXNoQnV0dG9uLm1tCTMgT2N0IDIw
MDUgMDc6MzY6MTYgLTAwMDAKQEAgLTIzLDYgKzIzLDcgQEAKICAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAogICov
CiAKKyNpbmNsdWRlICJjb25maWcuaCIKICNpbXBvcnQgIktXUVB1c2hCdXR0b24uaCIKIAogI2lt
cG9ydCAiS1dRRXhjZXB0aW9ucy5oIgpJbmRleDogV2ViQ29yZS9rd3EvS1dRUmVjdC5tbQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9rd3EvS1dRUmVjdC5tbSx2CnJldHJp
ZXZpbmcgcmV2aXNpb24gMS4xNgpkaWZmIC1wIC11IC1yMS4xNiBXZWJDb3JlL2t3cS9LV1FSZWN0
Lm1tCi0tLSBXZWJDb3JlL2t3cS9LV1FSZWN0Lm1tCTMwIFNlcCAyMDA1IDA0OjA0OjU3IC0wMDAw
CTEuMTYKKysrIFdlYkNvcmUva3dxL0tXUVJlY3QubW0JMyBPY3QgMjAwNSAwNzozNjoxNiAtMDAw
MApAQCAtMjMsNiArMjMsNyBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCiAgKi8KIAorI2luY2x1ZGUgImNv
bmZpZy5oIgogI2ltcG9ydCAiS1dRUmVjdC5oIgogCiAjaW1wb3J0IDxhbGdvcml0aG0+CkluZGV4
OiBXZWJDb3JlL2t3cS9LV1FSZWdFeHAubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290
L1dlYkNvcmUva3dxL0tXUVJlZ0V4cC5tbSx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4xNApkaWZm
IC1wIC11IC1yMS4xNCBXZWJDb3JlL2t3cS9LV1FSZWdFeHAubW0KLS0tIFdlYkNvcmUva3dxL0tX
UVJlZ0V4cC5tbQk5IEp1bCAyMDA1IDAxOjAxOjEwIC0wMDAwCTEuMTQKKysrIFdlYkNvcmUva3dx
L0tXUVJlZ0V4cC5tbQkzIE9jdCAyMDA1IDA3OjM2OjE2IC0wMDAwCkBAIC0yMyw2ICsyMyw3IEBA
CiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLiAKICAqLwogCisjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW1wb3J0ICJL
V1FSZWdFeHAuaCIKICNpbXBvcnQgIktXUUxvZ2dpbmcuaCIKIApJbmRleDogV2ViQ29yZS9rd3Ev
S1dRUmVnaW9uLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2t3cS9L
V1FSZWdpb24ubW0sdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMjAKZGlmZiAtcCAtdSAtcjEuMjAg
V2ViQ29yZS9rd3EvS1dRUmVnaW9uLm1tCi0tLSBXZWJDb3JlL2t3cS9LV1FSZWdpb24ubW0JMTUg
SnVuIDIwMDQgMDU6MzM6NDQgLTAwMDAJMS4yMAorKysgV2ViQ29yZS9rd3EvS1dRUmVnaW9uLm1t
CTMgT2N0IDIwMDUgMDc6MzY6MTYgLTAwMDAKQEAgLTIzLDYgKzIzLDcgQEAKICAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuIAogICovCiAKKyNpbmNsdWRlICJjb25maWcuaCIKICNpbXBvcnQgIktXUVJlZ2lvbi5oIgog
I2ltcG9ydCAiS1dRRm91bmRhdGlvbkV4dHJhcy5oIgogCkluZGV4OiBXZWJDb3JlL2t3cS9LV1FS
ZW5kZXJUcmVlRGVidWcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3Jl
L2t3cS9LV1FSZW5kZXJUcmVlRGVidWcuY3BwLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjQ1CmRp
ZmYgLXAgLXUgLXIxLjQ1IFdlYkNvcmUva3dxL0tXUVJlbmRlclRyZWVEZWJ1Zy5jcHAKLS0tIFdl
YkNvcmUva3dxL0tXUVJlbmRlclRyZWVEZWJ1Zy5jcHAJMjQgU2VwIDIwMDUgMDE6MTk6MDUgLTAw
MDAJMS40NQorKysgV2ViQ29yZS9rd3EvS1dRUmVuZGVyVHJlZURlYnVnLmNwcAkzIE9jdCAyMDA1
IDA3OjM2OjE2IC0wMDAwCkBAIC0yMyw2ICsyMyw3IEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKICAqLwog
CisjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiS1dRUmVuZGVyVHJlZURlYnVnLmgiCiAK
ICNpbmNsdWRlICJkb21fZG9jaW1wbC5oIgpJbmRleDogV2ViQ29yZS9rd3EvS1dRUmVzb3VyY2VM
b2FkZXIubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva3dxL0tXUVJl
c291cmNlTG9hZGVyLm1tLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjE2CmRpZmYgLXAgLXUgLXIx
LjE2IFdlYkNvcmUva3dxL0tXUVJlc291cmNlTG9hZGVyLm1tCi0tLSBXZWJDb3JlL2t3cS9LV1FS
ZXNvdXJjZUxvYWRlci5tbQkyNyBTZXAgMjAwNSAyMjozNzozMSAtMDAwMAkxLjE2CisrKyBXZWJD
b3JlL2t3cS9LV1FSZXNvdXJjZUxvYWRlci5tbQkzIE9jdCAyMDA1IDA3OjM2OjE2IC0wMDAwCkBA
IC0yMyw2ICsyMyw3IEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKICAqLwogCisjaW5jbHVkZSAiY29uZmln
LmgiCiAjaW1wb3J0ICJLV1FSZXNvdXJjZUxvYWRlci5oIgogCiAjaW1wb3J0IDxreG1sY29yZS9B
c3NlcnRpb25zLmg+CkluZGV4OiBXZWJDb3JlL2t3cS9LV1FTY3JvbGxCYXIubW0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva3dxL0tXUVNjcm9sbEJhci5tbSx2CnJldHJp
ZXZpbmcgcmV2aXNpb24gMS44CmRpZmYgLXAgLXUgLXIxLjggV2ViQ29yZS9rd3EvS1dRU2Nyb2xs
QmFyLm1tCi0tLSBXZWJDb3JlL2t3cS9LV1FTY3JvbGxCYXIubW0JNSBBcHIgMjAwNSAyMzo0MTox
OCAtMDAwMAkxLjgKKysrIFdlYkNvcmUva3dxL0tXUVNjcm9sbEJhci5tbQkzIE9jdCAyMDA1IDA3
OjM2OjE3IC0wMDAwCkBAIC0yMyw2ICsyMyw3IEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKKyNp
bmNsdWRlICJjb25maWcuaCIKICNpbXBvcnQgIktXUVNjcm9sbEJhci5oIgogCiAjaW1wb3J0ICJL
V1FFeGNlcHRpb25zLmgiCkluZGV4OiBXZWJDb3JlL2t3cS9LV1FTY3JvbGxWaWV3Lm1tCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2t3cS9LV1FTY3JvbGxWaWV3Lm1tLHYK
cmV0cmlldmluZyByZXZpc2lvbiAxLjgzCmRpZmYgLXAgLXUgLXIxLjgzIFdlYkNvcmUva3dxL0tX
UVNjcm9sbFZpZXcubW0KLS0tIFdlYkNvcmUva3dxL0tXUVNjcm9sbFZpZXcubW0JMjMgQXVnIDIw
MDUgMTg6MzI6NTEgLTAwMDAJMS44MworKysgV2ViQ29yZS9rd3EvS1dRU2Nyb2xsVmlldy5tbQkz
IE9jdCAyMDA1IDA3OjM2OjE3IC0wMDAwCkBAIC0yMyw2ICsyMyw3IEBACiAgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LiAKICAqLwogCisjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW1wb3J0ICJLV1FTY3JvbGxWaWV3Lmgi
CiAKICNpbXBvcnQgIktXUUV4Y2VwdGlvbnMuaCIKSW5kZXg6IFdlYkNvcmUva3dxL0tXUVNpZ25h
bC5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9rd3EvS1dRU2lnbmFs
Lm1tLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjIwCmRpZmYgLXAgLXUgLXIxLjIwIFdlYkNvcmUv
a3dxL0tXUVNpZ25hbC5tbQotLS0gV2ViQ29yZS9rd3EvS1dRU2lnbmFsLm1tCTI3IFNlcCAyMDA1
IDIyOjM3OjMxIC0wMDAwCTEuMjAKKysrIFdlYkNvcmUva3dxL0tXUVNpZ25hbC5tbQkzIE9jdCAy
MDA1IDA3OjM2OjE3IC0wMDAwCkBAIC0yMyw2ICsyMyw3IEBACiAgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKICAq
LwogCisjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW1wb3J0ICJLV1FTaWduYWwuaCIKIAogI2ltcG9y
dCAiS1dRT2JqZWN0LmgiCkluZGV4OiBXZWJDb3JlL2t3cS9LV1FTaWduYWxTdHVicy5tbQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9rd3EvS1dRU2lnbmFsU3R1YnMubW0s
dgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMTQKZGlmZiAtcCAtdSAtcjEuMTQgV2ViQ29yZS9rd3Ev
S1dRU2lnbmFsU3R1YnMubW0KLS0tIFdlYkNvcmUva3dxL0tXUVNpZ25hbFN0dWJzLm1tCTcgRmVi
IDIwMDQgMDE6MTk6NDQgLTAwMDAJMS4xNAorKysgV2ViQ29yZS9rd3EvS1dRU2lnbmFsU3R1YnMu
bW0JMyBPY3QgMjAwNSAwNzozNjoxNyAtMDAwMApAQCAtMjMsNiArMjMsNyBAQAogICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4gCiAgKi8KICAKKyNpbmNsdWRlICJjb25maWcuaCIKICNpbXBvcnQgImtodG1sdmlldy5o
IgogI2ltcG9ydCAibG9hZGVyLmgiCiAjaW1wb3J0ICJ4bWxfdG9rZW5pemVyLmgiCkluZGV4OiBX
ZWJDb3JlL2t3cS9LV1FTaXplLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJD
b3JlL2t3cS9LV1FTaXplLm1tLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjEwCmRpZmYgLXAgLXUg
LXIxLjEwIFdlYkNvcmUva3dxL0tXUVNpemUubW0KLS0tIFdlYkNvcmUva3dxL0tXUVNpemUubW0J
MzAgU2VwIDIwMDUgMDQ6MDQ6NTcgLTAwMDAJMS4xMAorKysgV2ViQ29yZS9rd3EvS1dRU2l6ZS5t
bQkzIE9jdCAyMDA1IDA3OjM2OjE3IC0wMDAwCkBAIC0yMyw2ICsyMyw3IEBACiAgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLiAKICAqLwogCisjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW1wb3J0ICJLV1FTaXplLmgiCiAK
IFFTaXplOjpRU2l6ZSgpIDogdygtMSksIGgoLTEpCkluZGV4OiBXZWJDb3JlL2t3cS9LV1FTbGlk
ZXIubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva3dxL0tXUVNsaWRl
ci5tbSx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4xMApkaWZmIC1wIC11IC1yMS4xMCBXZWJDb3Jl
L2t3cS9LV1FTbGlkZXIubW0KLS0tIFdlYkNvcmUva3dxL0tXUVNsaWRlci5tbQkxNCBKdWwgMjAw
NSAyMzo1MzozMyAtMDAwMAkxLjEwCisrKyBXZWJDb3JlL2t3cS9LV1FTbGlkZXIubW0JMyBPY3Qg
MjAwNSAwNzozNjoxNyAtMDAwMApAQCAtMjMsNiArMjMsNyBAQAogICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAq
LwogCisjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW1wb3J0ICJLV1FTbGlkZXIuaCIKIAogI2ltcG9y
dCAiS1dRQnV0dG9uLmgiCkluZGV4OiBXZWJDb3JlL2t3cS9LV1FTbG90Lm1tCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
UkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2t3cS9LV1FTbG90Lm1tLHYKcmV0cmlldmluZyBy
ZXZpc2lvbiAxLjM0CmRpZmYgLXAgLXUgLXIxLjM0IFdlYkNvcmUva3dxL0tXUVNsb3QubW0KLS0t
IFdlYkNvcmUva3dxL0tXUVNsb3QubW0JMjcgU2VwIDIwMDUgMjI6Mzc6MzEgLTAwMDAJMS4zNAor
KysgV2ViQ29yZS9rd3EvS1dRU2xvdC5tbQkzIE9jdCAyMDA1IDA3OjM2OjE3IC0wMDAwCkBAIC0y
Myw2ICsyMyw3IEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKICAqLwogCisjaW5jbHVkZSAiY29uZmlnLmgi
CiAjaW1wb3J0ICJLV1FTbG90LmgiCiAKICNpbXBvcnQgPGt4bWxjb3JlL0Fzc2VydGlvbnMuaD4K
SW5kZXg6IFdlYkNvcmUva3dxL0tXUVN0cmluZy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMv
cm9vdC9XZWJDb3JlL2t3cS9LV1FTdHJpbmcuaCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4xMTgK
ZGlmZiAtcCAtdSAtcjEuMTE4IFdlYkNvcmUva3dxL0tXUVN0cmluZy5oCi0tLSBXZWJDb3JlL2t3
cS9LV1FTdHJpbmcuaAkyNyBTZXAgMjAwNSAyMjozNzozMSAtMDAwMAkxLjExOAorKysgV2ViQ29y
ZS9rd3EvS1dRU3RyaW5nLmgJMyBPY3QgMjAwNSAwNzozNjoxNyAtMDAwMApAQCAtMzQwLDEwICsz
NDAsNyBAQCBpbmxpbmUgYm9vbCBvcGVyYXRvcjwoY2hhciBjaCwgUUNoYXIgcWMpCiAjZGVmaW5l
IFFTX0lOVEVSTkFMX0JVRkZFUl9DSEFSUyBRU19JTlRFUk5BTF9CVUZGRVJfU0laRS0xCiAjZGVm
aW5lIFFTX0lOVEVSTkFMX0JVRkZFUl9VQ0hBUlMgUVNfSU5URVJOQUxfQlVGRkVSX1NJWkUvMgog
Ci1zdHJ1Y3QgS1dRU3RyaW5nRGF0YSAKLSNpZm5kZWYgUVNUUklOR19ERUJVR19BTExPQ0FUSU9O
UwotICAgIDogcHVibGljIEZhc3RBbGxvY2F0ZWQgCi0jZW5kaWYKK3N0cnVjdCBLV1FTdHJpbmdE
YXRhICAKIHsKICAgICAvLyBVc2VzIHNoYXJlZCBudWxsIGRhdGEuCiAgICAgS1dRU3RyaW5nRGF0
YSgpOwpJbmRleDogV2ViQ29yZS9rd3EvS1dRU3RyaW5nLm1tCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6
IC9jdnMvcm9vdC9XZWJDb3JlL2t3cS9LV1FTdHJpbmcubW0sdgpyZXRyaWV2aW5nIHJldmlzaW9u
IDEuMTQxCmRpZmYgLXAgLXUgLXIxLjE0MSBXZWJDb3JlL2t3cS9LV1FTdHJpbmcubW0KLS0tIFdl
YkNvcmUva3dxL0tXUVN0cmluZy5tbQkyNyBTZXAgMjAwNSAyMjozNzozMSAtMDAwMAkxLjE0MQor
KysgV2ViQ29yZS9rd3EvS1dRU3RyaW5nLm1tCTMgT2N0IDIwMDUgMDc6MzY6MTggLTAwMDAKQEAg
LTIzLDYgKzIzLDcgQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAogICovCiAKKyNpbmNsdWRlICJjb25maWcu
aCIKICNpbXBvcnQgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgogCiAjaW1wb3J0IDxzdGRpby5o
PgpAQCAtOTAsNyArOTEsNyBAQCBzdGF0aWMgQ0ZNdXRhYmxlRGljdGlvbmFyeVJlZiBhbGxvY2F0
ZWRCCiAKIHN0YXRpYyBjaGFyICpBTExPQ19DSEFSKGludCBuKQogewotICAgIGNoYXIgKnB0ciA9
IChjaGFyICopbWFpbl90aHJlYWRfbWFsbG9jKG4pOworICAgIGNoYXIgKnB0ciA9IChjaGFyICop
ZmFzdE1hbGxvYyhuKTsKIAogICAgIENGRGljdGlvbmFyeVNldFZhbHVlIChhbGxvY2F0ZWRCdWZm
ZXJzKCksIHB0ciwgKHZvaWQgKiluKTsKICAgICAKQEAgLTEwMyw3ICsxMDQsNyBAQCBzdGF0aWMg
Y2hhciAqQUxMT0NfQ0hBUihpbnQgbikKIAogc3RhdGljIGNoYXIgKlJFQUxMT0NfQ0hBUih2b2lk
ICpwLCBpbnQgbikKIHsKLSAgICBjaGFyICpwdHIgPSAoY2hhciAqKXJlYWxsb2MocCwgbik7Cisg
ICAgY2hhciAqcHRyID0gKGNoYXIgKilmYXN0UmVhbGxvYyhwLCBuKTsKIAogICAgIENGRGljdGlv
bmFyeVJlbW92ZVZhbHVlIChhbGxvY2F0ZWRCdWZmZXJzKCksIHApOwogICAgIENGRGljdGlvbmFy
eVNldFZhbHVlIChhbGxvY2F0ZWRCdWZmZXJzKCksIHB0ciwgKGNvbnN0IHZvaWQgKikobikpOwpA
QCAtMTE3LDEzICsxMTgsMTMgQEAgc3RhdGljIGNoYXIgKlJFQUxMT0NfQ0hBUih2b2lkICpwLCBp
bnQgbgogc3RhdGljIHZvaWQgREVMRVRFX0NIQVIodm9pZCAqcCkKIHsKICAgICBDRkRpY3Rpb25h
cnlSZW1vdmVWYWx1ZSAoYWxsb2NhdGVkQnVmZmVycygpLCBwKTsKLSAgICBmcmVlIChwKTsKKyAg
ICBmYXN0RnJlZShwKTsKIH0KIAogc3RhdGljIFFDaGFyICpBTExPQ19RQ0hBUihpbnQgbikKIHsK
ICAgICBzaXplX3Qgc2l6ZSA9IChzaXplb2YoUUNoYXIpKiggbiApKTsKLSAgICBRQ2hhciAqcHRy
ID0gKFFDaGFyICopZmFzdF9tYWxsb2Moc2l6ZSk7CisgICAgUUNoYXIgKnB0ciA9IChRQ2hhciAq
KWZhc3RNYWxsb2Moc2l6ZSk7CiAKICAgICBDRkRpY3Rpb25hcnlTZXRWYWx1ZSAoYWxsb2NhdGVk
QnVmZmVycygpLCBwdHIsIChjb25zdCB2b2lkICopc2l6ZSk7CiAgICAgaWYgKHNpemUgPj0gQUxM
T0NBVElPTl9ISVNUT0dSQU1fU0laRSkKQEAgLTEzNiw3ICsxMzcsNyBAQCBzdGF0aWMgUUNoYXIg
KkFMTE9DX1FDSEFSKGludCBuKQogc3RhdGljIFFDaGFyICpSRUFMTE9DX1FDSEFSKHZvaWQgKnAs
IGludCBuKQogewogICAgIHNpemVfdCBzaXplID0gKHNpemVvZihRQ2hhcikqKCBuICkpOwotICAg
IFFDaGFyICpwdHIgPSAoUUNoYXIgKilyZWFsbG9jKHAsIHNpemUpOworICAgIFFDaGFyICpwdHIg
PSAoUUNoYXIgKilmYXN0UmVhbGxvYyhwLCBzaXplKTsKIAogICAgIENGRGljdGlvbmFyeVJlbW92
ZVZhbHVlIChhbGxvY2F0ZWRCdWZmZXJzKCksIHApOwogICAgIENGRGljdGlvbmFyeVNldFZhbHVl
IChhbGxvY2F0ZWRCdWZmZXJzKCksIHB0ciwgKGNvbnN0IHZvaWQgKilzaXplKTsKQEAgLTE1MSw3
ICsxNTIsNyBAQCBzdGF0aWMgUUNoYXIgKlJFQUxMT0NfUUNIQVIodm9pZCAqcCwgaW50CiBzdGF0
aWMgdm9pZCBERUxFVEVfUUNIQVIodm9pZCAqcCkKIHsKICAgICBDRkRpY3Rpb25hcnlSZW1vdmVW
YWx1ZSAoYWxsb2NhdGVkQnVmZmVycygpLCBwKTsKLSAgICBmcmVlIChwKTsKKyAgICBmYXRGcmVl
KHApOwogfQogCiB2b2lkIF9wcmludFFTdHJpbmdBbGxvY2F0aW9uU3RhdGlzdGljcygpCkBAIC0x
NjIsOSArMTYzLDkgQEAgdm9pZCBfcHJpbnRRU3RyaW5nQWxsb2NhdGlvblN0YXRpc3RpY3MoKQog
ICAgIGludCB0b3RhbFNpemUgPSAwOwogICAgIGludCB0b3RhbEFsbG9jYXRpb25zID0gMDsKICAg
ICAKLSAgICBjb3VudCA9IChpbnQpQ0ZEaWN0aW9uYXJ5R2V0Q291bnQgKGFsbG9jYXRlZEJ1ZmZl
cnMoKSk7Ci0gICAgdmFsdWVzID0gKGNvbnN0IHZvaWQgKiopbWFsbG9jIChjb3VudCpzaXplb2Yo
dm9pZCAqKSk7Ci0gICAga2V5cyA9IChjb25zdCB2b2lkICoqKW1hbGxvYyAoY291bnQqc2l6ZW9m
KHZvaWQgKikpOworICAgIGNvdW50ID0gKGludClDRkRpY3Rpb25hcnlHZXRDb3VudChhbGxvY2F0
ZWRCdWZmZXJzKCkpOworICAgIHZhbHVlcyA9IChjb25zdCB2b2lkICoqKWZhc3RNYWxsb2MoY291
bnQqc2l6ZW9mKHZvaWQgKikpOworICAgIGtleXMgPSAoY29uc3Qgdm9pZCAqKilmYXN0TWFsbG9j
KGNvdW50KnNpemVvZih2b2lkICopKTsKIAogICAgIENGRGljdGlvbmFyeUdldEtleXNBbmRWYWx1
ZXMgKGFsbG9jYXRlZEJ1ZmZlcnMoKSwga2V5cywgdmFsdWVzKTsKICAgICBwcmludGYgKCJMZWFr
ZWQgc3RyaW5nczpcbiIpOwpAQCAtMTk3LDE0ICsxOTgsMTQgQEAgdm9pZCBfcHJpbnRRU3RyaW5n
QWxsb2NhdGlvblN0YXRpc3RpY3MoKQogICAgIHByaW50ZiAoIktXUVN0cmluZ0RhdGEgZGV0YWNo
bWVudHMgKGNvcGllcykgJWRcbiIsIHN0cmluZ0RhdGFEZXRhY2htZW50cyk7CiAgICAgcHJpbnRm
ICgiS1dRU3RyaW5nRGF0YSBoYW5kbGVzICVkXG4iLCBoYW5kbGVJbnN0YW5jZXMpOwogICAgIAot
ICAgIGZyZWUoa2V5cyk7Ci0gICAgZnJlZSh2YWx1ZXMpOworICAgIGZhc3RGcmVlKGtleXMpOwor
ICAgIGZhc3RGcmVlKHZhbHVlcyk7CiB9CiAKICNlbHNlCiAKLSNkZWZpbmUgQUxMT0NfQ0hBUihO
KSAoY2hhciopIGZhc3RNYWxsb2MoTikKLSNkZWZpbmUgUkVBTExPQ19DSEFSKFAsIE4pIChjaGFy
ICopIGZhc3RSZWFsbG9jKFAsIE4pCisjZGVmaW5lIEFMTE9DX0NIQVIoTikgKGNoYXIqKWZhc3RN
YWxsb2MoTikKKyNkZWZpbmUgUkVBTExPQ19DSEFSKFAsIE4pIChjaGFyICopZmFzdFJlYWxsb2Mo
UCwgTikKICNkZWZpbmUgREVMRVRFX0NIQVIoUCkgZmFzdEZyZWUoUCkKIAogI2RlZmluZSBBTExP
Q19RQ0hBUihOKSAoUUNoYXIqKWZhc3RNYWxsb2Moc2l6ZW9mKFFDaGFyKSooTikpCkBAIC0yMzQs
NyArMjM1LDcgQEAgc3RhdGljIGlubGluZSB2b2lkIGluaXRpYWxpemVIYW5kbGVOb2Rlcwogc3Rh
dGljIGlubGluZSBLV1FTdHJpbmdEYXRhICoqYWxsb2NhdGVIYW5kbGUoKQogewogI2lmIENIRUNL
X0ZPUl9IQU5ETEVfTEVBS1MKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8S1dRU3RyaW5nRGF0YSAq
Kj4obWFsbG9jKHNpemVvZihLV1FTdHJpbmdEYXRhICopKSk7CisgICAgcmV0dXJuIHN0YXRpY19j
YXN0PEtXUVN0cmluZ0RhdGEgKio+KGZhc3RNYWxsb2Moc2l6ZW9mKEtXUVN0cmluZ0RhdGEgKikp
KTsKICNlbmRpZgogCiAgICAgaW5pdGlhbGl6ZUhhbmRsZU5vZGVzKCk7CkBAIC00MjAsMTEgKzQy
MSwxMSBAQCBLV1FTdHJpbmdEYXRhOjpLV1FTdHJpbmdEYXRhKGNvbnN0IFFDaGFyCiB2b2lkKiBL
V1FTdHJpbmdEYXRhOjpvcGVyYXRvciBuZXcoc2l6ZV90IHMpCiB7CiAgICAgc3RyaW5nRGF0YUhl
YXBJbnN0YW5jZXMrKzsKLSAgICByZXR1cm4gbWFsbG9jKHMpOworICAgIHJldHVybiBmYXN0TWFs
bG9jKHMpOwogfQogdm9pZCBLV1FTdHJpbmdEYXRhOjpvcGVyYXRvciBkZWxldGUodm9pZCpwKQog
ewotICAgIHJldHVybiBmcmVlKHApOworICAgIHJldHVybiBmYXN0RnJlZShwKTsKIH0KICNlbmRp
ZgogCkBAIC0yOTQ5LDcgKzI5NTAsNyBAQCBzdGF0aWMgSGFuZGxlTm9kZSAqYWxsb2NhdGVOb2Rl
KEhhbmRsZVBhCiB2b2lkIGZyZWVIYW5kbGUoS1dRU3RyaW5nRGF0YSAqKl9mcmVlKQogewogI2lm
IENIRUNLX0ZPUl9IQU5ETEVfTEVBS1MKLSAgICBmcmVlKF9mcmVlKTsKKyAgICBmYXN0RnJlZShf
ZnJlZSk7CiAgICAgcmV0dXJuOwogI2VuZGlmCiAKSW5kZXg6IFdlYkNvcmUva3dxL0tXUVN0cmlu
Z0xpc3QubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva3dxL0tXUVN0
cmluZ0xpc3QubW0sdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMTAKZGlmZiAtcCAtdSAtcjEuMTAg
V2ViQ29yZS9rd3EvS1dRU3RyaW5nTGlzdC5tbQotLS0gV2ViQ29yZS9rd3EvS1dRU3RyaW5nTGlz
dC5tbQkyMCBTZXAgMjAwNCAyMTozNjoyNiAtMDAwMAkxLjEwCisrKyBXZWJDb3JlL2t3cS9LV1FT
dHJpbmdMaXN0Lm1tCTMgT2N0IDIwMDUgMDc6MzY6MTkgLTAwMDAKQEAgLTIzLDYgKzIzLDcgQEAK
ICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuIAogICovCiAKKyNpbmNsdWRlICJjb25maWcuaCIKICNpbXBvcnQgIktX
UVN0cmluZ0xpc3QuaCIKIAogI2ltcG9ydCA8Q29yZUZvdW5kYXRpb24vQ29yZUZvdW5kYXRpb24u
aD4KSW5kZXg6IFdlYkNvcmUva3dxL0tXUVN0eWxlLm1tCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9j
dnMvcm9vdC9XZWJDb3JlL2t3cS9LV1FTdHlsZS5tbSx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS44
CmRpZmYgLXAgLXUgLXIxLjggV2ViQ29yZS9rd3EvS1dRU3R5bGUubW0KLS0tIFdlYkNvcmUva3dx
L0tXUVN0eWxlLm1tCTIyIEphbiAyMDAzIDAwOjEyOjM2IC0wMDAwCTEuOAorKysgV2ViQ29yZS9r
d3EvS1dRU3R5bGUubW0JMyBPY3QgMjAwNSAwNzozNjoxOSAtMDAwMApAQCAtMjMsNiArMjMsNyBA
QAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4gCiAgKi8KIAorI2luY2x1ZGUgImNvbmZpZy5oIgogI2ltcG9ydCAi
S1dRU3R5bGUuaCIKIAogI2ltcG9ydCAiS1dRV2lkZ2V0LmgiCkluZGV4OiBXZWJDb3JlL2t3cS9L
V1FUZXh0QXJlYS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9rd3Ev
S1dRVGV4dEFyZWEubW0sdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuOTAKZGlmZiAtcCAtdSAtcjEu
OTAgV2ViQ29yZS9rd3EvS1dRVGV4dEFyZWEubW0KLS0tIFdlYkNvcmUva3dxL0tXUVRleHRBcmVh
Lm1tCTI3IFNlcCAyMDA1IDIyOjM3OjMyIC0wMDAwCTEuOTAKKysrIFdlYkNvcmUva3dxL0tXUVRl
eHRBcmVhLm1tCTMgT2N0IDIwMDUgMDc6MzY6MTkgLTAwMDAKQEAgLTIzLDYgKzIzLDcgQEAKICAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuIAogICovCiAKKyNpbmNsdWRlICJjb25maWcuaCIKICNpbXBvcnQgIktXUVRl
eHRBcmVhLmgiCiAKICNpbXBvcnQgIkRPTUNTUy5oIgpJbmRleDogV2ViQ29yZS9rd3EvS1dRVGV4
dENvZGVjLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2t3cS9LV1FU
ZXh0Q29kZWMubW0sdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNTUKZGlmZiAtcCAtdSAtcjEuNTUg
V2ViQ29yZS9rd3EvS1dRVGV4dENvZGVjLm1tCi0tLSBXZWJDb3JlL2t3cS9LV1FUZXh0Q29kZWMu
bW0JMjcgU2VwIDIwMDUgMjI6Mzc6MzIgLTAwMDAJMS41NQorKysgV2ViQ29yZS9rd3EvS1dRVGV4
dENvZGVjLm1tCTMgT2N0IDIwMDUgMDc6MzY6MTkgLTAwMDAKQEAgLTIzLDYgKzIzLDcgQEAKICAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuIAogICovCiAKKyNpbmNsdWRlICJjb25maWcuaCIKICNpbXBvcnQgIktXUVRl
eHRDb2RlYy5oIgogCiAjaW1wb3J0IDxreG1sY29yZS9Bc3NlcnRpb25zLmg+CkluZGV4OiBXZWJD
b3JlL2t3cS9LV1FUZXh0RWRpdC5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2Vi
Q29yZS9rd3EvS1dRVGV4dEVkaXQubW0sdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNTMKZGlmZiAt
cCAtdSAtcjEuNTMgV2ViQ29yZS9rd3EvS1dRVGV4dEVkaXQubW0KLS0tIFdlYkNvcmUva3dxL0tX
UVRleHRFZGl0Lm1tCTI3IFNlcCAyMDA1IDIyOjM3OjMyIC0wMDAwCTEuNTMKKysrIFdlYkNvcmUv
a3dxL0tXUVRleHRFZGl0Lm1tCTMgT2N0IDIwMDUgMDc6MzY6MjAgLTAwMDAKQEAgLTIzLDYgKzIz
LDcgQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuIAogICovCiAKKyNpbmNsdWRlICJjb25maWcuaCIKICNpbXBv
cnQgIktXUVRleHRFZGl0LmgiCiAKICNpbXBvcnQgPGt4bWxjb3JlL0Fzc2VydGlvbnMuaD4KSW5k
ZXg6IFdlYkNvcmUva3dxL0tXUVRleHRGaWVsZC5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3Zz
L3Jvb3QvV2ViQ29yZS9rd3EvS1dRVGV4dEZpZWxkLm1tLHYKcmV0cmlldmluZyByZXZpc2lvbiAx
Ljg5CmRpZmYgLXAgLXUgLXIxLjg5IFdlYkNvcmUva3dxL0tXUVRleHRGaWVsZC5tbQotLS0gV2Vi
Q29yZS9rd3EvS1dRVGV4dEZpZWxkLm1tCTI3IFNlcCAyMDA1IDIyOjM3OjMyIC0wMDAwCTEuODkK
KysrIFdlYkNvcmUva3dxL0tXUVRleHRGaWVsZC5tbQkzIE9jdCAyMDA1IDA3OjM2OjIwIC0wMDAw
CkBAIC0yMyw2ICsyMyw3IEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKICAqLwogCisjaW5jbHVkZSAiY29u
ZmlnLmgiCiAjaW1wb3J0ICJLV1FUZXh0RmllbGQuaCIKIAogI2ltcG9ydCA8a3htbGNvcmUvQXNz
ZXJ0aW9ucy5oPgpJbmRleDogV2ViQ29yZS9rd3EvS1dRVGV4dFN0cmVhbS5tbQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9rd3EvS1dRVGV4dFN0cmVhbS5tbSx2CnJldHJp
ZXZpbmcgcmV2aXNpb24gMS4xNwpkaWZmIC1wIC11IC1yMS4xNyBXZWJDb3JlL2t3cS9LV1FUZXh0
U3RyZWFtLm1tCi0tLSBXZWJDb3JlL2t3cS9LV1FUZXh0U3RyZWFtLm1tCTEgU2VwIDIwMDUgMDQ6
Mzk6MzcgLTAwMDAJMS4xNworKysgV2ViQ29yZS9rd3EvS1dRVGV4dFN0cmVhbS5tbQkzIE9jdCAy
MDA1IDA3OjM2OjIwIC0wMDAwCkBAIC0yMyw2ICsyMyw3IEBACiAgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKICAq
LwogCisjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW1wb3J0ICJLV1FMb2dnaW5nLmgiCiAKICNpbXBv
cnQgIktXUVRleHRTdHJlYW0uaCIKSW5kZXg6IFdlYkNvcmUva3dxL0tXUVRleHRVdGlsaXRpZXMu
bW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva3dxL0tXUVRleHRVdGls
aXRpZXMubW0sdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuOApkaWZmIC1wIC11IC1yMS44IFdlYkNv
cmUva3dxL0tXUVRleHRVdGlsaXRpZXMubW0KLS0tIFdlYkNvcmUva3dxL0tXUVRleHRVdGlsaXRp
ZXMubW0JMTYgQXVnIDIwMDUgMTk6MDM6MjAgLTAwMDAJMS44CisrKyBXZWJDb3JlL2t3cS9LV1FU
ZXh0VXRpbGl0aWVzLm1tCTMgT2N0IDIwMDUgMDc6MzY6MjAgLTAwMDAKQEAgLTIzLDYgKzIzLDcg
QEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuIAogICovCiAKKyNpbmNsdWRlICJjb25maWcuaCIKICNpbXBvcnQg
IktXUVRleHRVdGlsaXRpZXMuaCIKIAogI2ltcG9ydCAiS1dRU3RyaW5nLmgiCkluZGV4OiBXZWJD
b3JlL2t3cS9LV1FUaW1lci5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29y
ZS9rd3EvS1dRVGltZXIubW0sdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMTgKZGlmZiAtcCAtdSAt
cjEuMTggV2ViQ29yZS9rd3EvS1dRVGltZXIubW0KLS0tIFdlYkNvcmUva3dxL0tXUVRpbWVyLm1t
CTI3IFNlcCAyMDA1IDIyOjM3OjMyIC0wMDAwCTEuMTgKKysrIFdlYkNvcmUva3dxL0tXUVRpbWVy
Lm1tCTMgT2N0IDIwMDUgMDc6MzY6MjAgLTAwMDAKQEAgLTIzLDYgKzIzLDcgQEAKICAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuIAogICovCiAKKyNpbmNsdWRlICJjb25maWcuaCIKICNpbXBvcnQgIktXUVRpbWVyLmgi
CiAKICNpbXBvcnQgPGt4bWxjb3JlL0Fzc2VydGlvbnMuaD4KSW5kZXg6IFdlYkNvcmUva3dxL0tX
UVZhbHVlTGlzdEltcGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9r
d3EvS1dRVmFsdWVMaXN0SW1wbC5oLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjEyCmRpZmYgLXAg
LXUgLXIxLjEyIFdlYkNvcmUva3dxL0tXUVZhbHVlTGlzdEltcGwuaAotLS0gV2ViQ29yZS9rd3Ev
S1dRVmFsdWVMaXN0SW1wbC5oCTI3IFNlcCAyMDA1IDIyOjM3OjMyIC0wMDAwCTEuMTIKKysrIFdl
YkNvcmUva3dxL0tXUVZhbHVlTGlzdEltcGwuaAkzIE9jdCAyMDA1IDA3OjM2OjIwIC0wMDAwCkBA
IC0yOCw3ICsyOCw2IEBACiAKICNpbmNsdWRlICJLV1FSZWZQdHIuaCIKICNpbmNsdWRlICJLV1FE
ZWYuaCIKLSNpbmNsdWRlICJreG1sY29yZS9GYXN0TWFsbG9jLmgiCiAKIGNsYXNzIEtXUVZhbHVl
TGlzdE5vZGVJbXBsOwogCkBAIC0xMDcsNyArMTA2LDcgQEAgcHJpdmF0ZToKICAgICBmcmllbmQg
Y2xhc3MgS1dRVmFsdWVMaXN0Tm9kZUltcGw7CiB9OwogCi1jbGFzcyBLV1FWYWx1ZUxpc3ROb2Rl
SW1wbCA6IHB1YmxpYyBGYXN0QWxsb2NhdGVkCitjbGFzcyBLV1FWYWx1ZUxpc3ROb2RlSW1wbAog
ewogcHJvdGVjdGVkOgogICAgIEtXUVZhbHVlTGlzdE5vZGVJbXBsKCk7CkluZGV4OiBXZWJDb3Jl
L2t3cS9LV1FWYWx1ZUxpc3RJbXBsLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9X
ZWJDb3JlL2t3cS9LV1FWYWx1ZUxpc3RJbXBsLm1tLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjE0
CmRpZmYgLXAgLXUgLXIxLjE0IFdlYkNvcmUva3dxL0tXUVZhbHVlTGlzdEltcGwubW0KLS0tIFdl
YkNvcmUva3dxL0tXUVZhbHVlTGlzdEltcGwubW0JMjcgU2VwIDIwMDUgMjI6Mzc6MzIgLTAwMDAJ
MS4xNAorKysgV2ViQ29yZS9rd3EvS1dRVmFsdWVMaXN0SW1wbC5tbQkzIE9jdCAyMDA1IDA3OjM2
OjIwIC0wMDAwCkBAIC0yMywxMSArMjMsMTIgQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAogICovCiAKKyNp
bmNsdWRlICJjb25maWcuaCIKICNpbXBvcnQgIktXUVZhbHVlTGlzdEltcGwuaCIKIAogI2ltcG9y
dCA8c3RkbGliLmg+CiAKLWNsYXNzIEtXUVZhbHVlTGlzdEltcGw6OktXUVZhbHVlTGlzdFByaXZh
dGUgOiBwdWJsaWMgRmFzdEFsbG9jYXRlZAorY2xhc3MgS1dRVmFsdWVMaXN0SW1wbDo6S1dRVmFs
dWVMaXN0UHJpdmF0ZQogewogcHVibGljOgogICAgIEtXUVZhbHVlTGlzdFByaXZhdGUodm9pZCAo
KmRlbGV0ZUZ1bmMpKEtXUVZhbHVlTGlzdE5vZGVJbXBsICopLCBLV1FWYWx1ZUxpc3ROb2RlSW1w
bCAqKCpjb3B5RnVuYykoS1dRVmFsdWVMaXN0Tm9kZUltcGwgKikpOwpJbmRleDogV2ViQ29yZS9r
d3EvS1dRVmFyaWFudC5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9r
d3EvS1dRVmFyaWFudC5tbSx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4xNApkaWZmIC1wIC11IC1y
MS4xNCBXZWJDb3JlL2t3cS9LV1FWYXJpYW50Lm1tCi0tLSBXZWJDb3JlL2t3cS9LV1FWYXJpYW50
Lm1tCTI3IEF1ZyAyMDAzIDA1OjQ3OjQzIC0wMDAwCTEuMTQKKysrIFdlYkNvcmUva3dxL0tXUVZh
cmlhbnQubW0JMyBPY3QgMjAwNSAwNzozNjoyMCAtMDAwMApAQCAtMjMsNiArMjMsNyBAQAogICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4gCiAgKi8KIAorI2luY2x1ZGUgImNvbmZpZy5oIgogI2ltcG9ydCAiS1dRVmFy
aWFudC5oIgogCiAjaW1wb3J0ICJLV1FTdHJpbmcuaCIKSW5kZXg6IFdlYkNvcmUva3dxL0tXUVZl
Y3RvckltcGwubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva3dxL0tX
UVZlY3RvckltcGwubW0sdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuOQpkaWZmIC1wIC11IC1yMS45
IFdlYkNvcmUva3dxL0tXUVZlY3RvckltcGwubW0KLS0tIFdlYkNvcmUva3dxL0tXUVZlY3Rvcklt
cGwubW0JMjAgTm92IDIwMDQgMDI6MjQ6MDggLTAwMDAJMS45CisrKyBXZWJDb3JlL2t3cS9LV1FW
ZWN0b3JJbXBsLm1tCTMgT2N0IDIwMDUgMDc6MzY6MjEgLTAwMDAKQEAgLTIzLDYgKzIzLDcgQEAK
ICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuIAogICovCiAKKyNpbmNsdWRlICJjb25maWcuaCIKICNpbXBvcnQgIktX
UVZlY3RvckltcGwuaCIKIAogS1dRVmVjdG9ySW1wbDo6S1dRVmVjdG9ySW1wbCh2b2lkICgqZiko
dm9pZCAqKSkKQEAgLTMxLDE0ICszMiwxNCBAQCBLV1FWZWN0b3JJbXBsOjpLV1FWZWN0b3JJbXBs
KHZvaWQgKCpmKSh2CiB9CiAKIEtXUVZlY3RvckltcGw6OktXUVZlY3RvckltcGwodWludCBzaXpl
LCB2b2lkICgqZikodm9pZCAqKSkKLSAgICA6IG1fZGF0YSgodm9pZCAqKiltYWxsb2Moc2l6ZSAq
IHNpemVvZih2b2lkICopKSkKKyAgICA6IG1fZGF0YSgodm9pZCAqKilmYXN0TWFsbG9jKHNpemUg
KiBzaXplb2Yodm9pZCAqKSkpCiAgICAgLCBtX3NpemUoc2l6ZSksIG1fY291bnQoMCksIG1fZGVs
ZXRlSXRlbUZ1bmN0aW9uKGYpCiB7CiAgICAgbWVtc2V0KG1fZGF0YSwgMCwgc2l6ZSAqIHNpemVv
Zih2b2lkICopKTsKIH0KIAogS1dRVmVjdG9ySW1wbDo6S1dRVmVjdG9ySW1wbChjb25zdCBLV1FW
ZWN0b3JJbXBsICZ2aSkKLSAgICA6IG1fZGF0YSh2aS5tX2RhdGEgPyAodm9pZCAqKiltYWxsb2Mo
dmkubV9zaXplICogc2l6ZW9mKHZvaWQgKikpIDogMCkKKyAgICA6IG1fZGF0YSh2aS5tX2RhdGEg
PyAodm9pZCAqKilmYXN0TWFsbG9jKHZpLm1fc2l6ZSAqIHNpemVvZih2b2lkICopKSA6IDApCiAg
ICAgLCBtX3NpemUodmkubV9zaXplKSwgbV9jb3VudCh2aS5tX2NvdW50KQogICAgICwgbV9kZWxl
dGVJdGVtRnVuY3Rpb24odmkubV9kZWxldGVJdGVtRnVuY3Rpb24pCiB7CkBAIC00Nyw3ICs0OCw3
IEBAIEtXUVZlY3RvckltcGw6OktXUVZlY3RvckltcGwoY29uc3QgS1dRVmUKIAogS1dRVmVjdG9y
SW1wbDo6fktXUVZlY3RvckltcGwoKQogewotICAgIGZyZWUobV9kYXRhKTsKKyAgICBmYXN0RnJl
ZShtX2RhdGEpOwogfQogCiB2b2lkIEtXUVZlY3RvckltcGw6OmNsZWFyKGJvb2wgZGVsSXRlbXMp
CkBAIC02MSw3ICs2Miw3IEBAIHZvaWQgS1dRVmVjdG9ySW1wbDo6Y2xlYXIoYm9vbCBkZWxJdGVt
cykKIAl9CiAgICAgfQogCi0gICAgZnJlZShtX2RhdGEpOworICAgIGZhc3RGcmVlKG1fZGF0YSk7
CiAgICAgbV9kYXRhID0gMDsKICAgICBtX3NpemUgPSAwOwogICAgIG1fY291bnQgPSAwOwpAQCAt
MTAwLDcgKzEwMSw3IEBAIGJvb2wgS1dRVmVjdG9ySW1wbDo6cmVzaXplKHVpbnQgc2l6ZSwgYm8K
ICAgICB9CiAKICAgICBtX3NpemUgPSBzaXplOwotICAgIG1fZGF0YSA9ICh2b2lkICoqKXJlYWxs
b2MobV9kYXRhLCBzaXplICogc2l6ZW9mKHZvaWQgKikpOworICAgIG1fZGF0YSA9ICh2b2lkICoq
KWZhc3RSZWFsbG9jKG1fZGF0YSwgc2l6ZSAqIHNpemVvZih2b2lkICopKTsKIAogICAgIGlmIChz
aXplID4gb2xkU2l6ZSkgewogICAgICAgICBtZW1zZXQoJm1fZGF0YVtvbGRTaXplXSwgMCwgKHNp
emUgLSBvbGRTaXplKSAqIHNpemVvZih2b2lkICopKTsKQEAgLTE0Nyw3ICsxNDgsNyBAQCBLV1FW
ZWN0b3JJbXBsICZLV1FWZWN0b3JJbXBsOjphc3NpZ24oS1dRCiB7CiAgICAgY2xlYXIoZGVsSXRl
bXMpOwogICAgIAotICAgIG1fZGF0YSA9IHZpLm1fZGF0YSA/ICh2b2lkICoqKW1hbGxvYyh2aS5t
X3NpemUgKiBzaXplb2Yodm9pZCAqKSkgOiAwOworICAgIG1fZGF0YSA9IHZpLm1fZGF0YSA/ICh2
b2lkICoqKWZhc3RNYWxsb2ModmkubV9zaXplICogc2l6ZW9mKHZvaWQgKikpIDogMDsKICAgICBt
X3NpemUgPSB2aS5tX3NpemU7CiAgICAgbV9jb3VudCA9IHZpLm1fY291bnQ7CiAgICAgbV9kZWxl
dGVJdGVtRnVuY3Rpb24gPSB2aS5tX2RlbGV0ZUl0ZW1GdW5jdGlvbjsKSW5kZXg6IFdlYkNvcmUv
a3dxL0tXUVdNYXRyaXgubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUv
a3dxL0tXUVdNYXRyaXgubW0sdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNwpkaWZmIC1wIC11IC1y
MS43IFdlYkNvcmUva3dxL0tXUVdNYXRyaXgubW0KLS0tIFdlYkNvcmUva3dxL0tXUVdNYXRyaXgu
bW0JNSBKdWwgMjAwNSAwNzo1Nzo0NiAtMDAwMAkxLjcKKysrIFdlYkNvcmUva3dxL0tXUVdNYXRy
aXgubW0JMyBPY3QgMjAwNSAwNzozNjoyMSAtMDAwMApAQCAtMjMsNiArMjMsNyBAQAogICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4gCiAgKi8KIAorI2luY2x1ZGUgImNvbmZpZy5oIgogI2ltcG9ydCAiS1dRV01hdHJp
eC5oIgogCiBzdGF0aWMgY29uc3QgZG91YmxlIGRlZzJyYWQgPSAwLjAxNzQ1MzI5MjUxOTk0MzI5
NTc2OTsgLy8gcGkvMTgwCkluZGV4OiBXZWJDb3JlL2t3cS9LV1FXaWRnZXQubW0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva3dxL0tXUVdpZGdldC5tbSx2CnJldHJpZXZp
bmcgcmV2aXNpb24gMS4xMTAKZGlmZiAtcCAtdSAtcjEuMTEwIFdlYkNvcmUva3dxL0tXUVdpZGdl
dC5tbQotLS0gV2ViQ29yZS9rd3EvS1dRV2lkZ2V0Lm1tCTMgU2VwIDIwMDUgMjM6MTA6MDIgLTAw
MDAJMS4xMTAKKysrIFdlYkNvcmUva3dxL0tXUVdpZGdldC5tbQkzIE9jdCAyMDA1IDA3OjM2OjIx
IC0wMDAwCkBAIC0yMyw2ICsyMyw3IEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKICAqLwogCisjaW5jbHVk
ZSAiY29uZmlnLmgiCiAjaW1wb3J0ICJLV1FXaWRnZXQuaCIKIAogI2ltcG9ydCAiS1dRRXhjZXB0
aW9ucy5oIgpJbmRleDogV2ViQ29yZS9rd3EvS1dRV2luZG93V2lkZ2V0Lm1tCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
UkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2t3cS9LV1FXaW5kb3dXaWRnZXQubW0sdgpyZXRy
aWV2aW5nIHJldmlzaW9uIDEuMTQKZGlmZiAtcCAtdSAtcjEuMTQgV2ViQ29yZS9rd3EvS1dRV2lu
ZG93V2lkZ2V0Lm1tCi0tLSBXZWJDb3JlL2t3cS9LV1FXaW5kb3dXaWRnZXQubW0JMTggSmFuIDIw
MDUgMDA6NDM6MTQgLTAwMDAJMS4xNAorKysgV2ViQ29yZS9rd3EvS1dRV2luZG93V2lkZ2V0Lm1t
CTMgT2N0IDIwMDUgMDc6MzY6MjEgLTAwMDAKQEAgLTIzLDYgKzIzLDcgQEAKICAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuIAogICovCiAKKyNpbmNsdWRlICJjb25maWcuaCIKICNpbXBvcnQgIktXUVdpbmRvd1dpZGdl
dC5oIgogCiAjaW1wb3J0ICJXZWJDb3JlQnJpZGdlLmgiCkluZGV4OiBXZWJDb3JlL2t3cS9XZWJD
b3JlQnJpZGdlLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2t3cS9X
ZWJDb3JlQnJpZGdlLm1tLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjQxOApkaWZmIC1wIC11IC1y
MS40MTggV2ViQ29yZS9rd3EvV2ViQ29yZUJyaWRnZS5tbQotLS0gV2ViQ29yZS9rd3EvV2ViQ29y
ZUJyaWRnZS5tbQkyNyBTZXAgMjAwNSAyMjozNzozMiAtMDAwMAkxLjQxOAorKysgV2ViQ29yZS9r
d3EvV2ViQ29yZUJyaWRnZS5tbQkzIE9jdCAyMDA1IDA3OjM2OjIyIC0wMDAwCkBAIC0yMyw2ICsy
Myw3IEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKICAqLwogCisjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW1w
b3J0ICJXZWJDb3JlQnJpZGdlLmgiCiAKICNpbXBvcnQgImNzc2hlbHBlci5oIgpJbmRleDogV2Vi
Q29yZS9rd3EvV2ViQ29yZUNhY2hlLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9X
ZWJDb3JlL2t3cS9XZWJDb3JlQ2FjaGUubW0sdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNApkaWZm
IC1wIC11IC1yMS40IFdlYkNvcmUva3dxL1dlYkNvcmVDYWNoZS5tbQotLS0gV2ViQ29yZS9rd3Ev
V2ViQ29yZUNhY2hlLm1tCTIyIEphbiAyMDAzIDAwOjEyOjM2IC0wMDAwCTEuNAorKysgV2ViQ29y
ZS9rd3EvV2ViQ29yZUNhY2hlLm1tCTMgT2N0IDIwMDUgMDc6MzY6MjIgLTAwMDAKQEAgLTIzLDYg
KzIzLDcgQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAogICovCiAKKyNpbmNsdWRlICJjb25maWcuaCIKICNp
bXBvcnQgIldlYkNvcmVDYWNoZS5oIgogCiAjaW1wb3J0ICJsb2FkZXIuaCIKSW5kZXg6IFdlYkNv
cmUva3dxL1dlYkNvcmVFbmNvZGluZ3MubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290
L1dlYkNvcmUva3dxL1dlYkNvcmVFbmNvZGluZ3MubW0sdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEu
NgpkaWZmIC1wIC11IC1yMS42IFdlYkNvcmUva3dxL1dlYkNvcmVFbmNvZGluZ3MubW0KLS0tIFdl
YkNvcmUva3dxL1dlYkNvcmVFbmNvZGluZ3MubW0JNSBKdW4gMjAwMyAwMDoyNjozOCAtMDAwMAkx
LjYKKysrIFdlYkNvcmUva3dxL1dlYkNvcmVFbmNvZGluZ3MubW0JMyBPY3QgMjAwNSAwNzozNjoy
MiAtMDAwMApAQCAtMjMsNiArMjMsNyBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCiAgKi8KIAorI2luY2x1
ZGUgImNvbmZpZy5oIgogI2ltcG9ydCAiV2ViQ29yZUVuY29kaW5ncy5oIgogCiAjaW1wb3J0ICJk
ZWNvZGVyLmgiCkluZGV4OiBXZWJDb3JlL2t3cS9XZWJDb3JlSmF2YVNjcmlwdC5tbQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9rd3EvV2ViQ29yZUphdmFTY3JpcHQubW0s
dgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuOQpkaWZmIC1wIC11IC1yMS45IFdlYkNvcmUva3dxL1dl
YkNvcmVKYXZhU2NyaXB0Lm1tCi0tLSBXZWJDb3JlL2t3cS9XZWJDb3JlSmF2YVNjcmlwdC5tbQky
OCBTZXAgMjAwNSAwMjoyNTo1MiAtMDAwMAkxLjkKKysrIFdlYkNvcmUva3dxL1dlYkNvcmVKYXZh
U2NyaXB0Lm1tCTMgT2N0IDIwMDUgMDc6MzY6MjIgLTAwMDAKQEAgLTIzLDYgKzIzLDcgQEAKICAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuIAogICovCiAKKyNpbmNsdWRlICJjb25maWcuaCIKICNpbXBvcnQgIldlYkNv
cmVKYXZhU2NyaXB0LmgiCiAKICNpbXBvcnQgPEphdmFTY3JpcHRDb3JlL2NvbGxlY3Rvci5oPgpJ
bmRleDogV2ViQ29yZS9rd3EvV2ViQ29yZVNjcmlwdERlYnVnZ2VyLm1tCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNT
IGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2t3cS9XZWJDb3JlU2NyaXB0RGVidWdnZXIubW0sdgpy
ZXRyaWV2aW5nIHJldmlzaW9uIDEuMwpkaWZmIC1wIC11IC1yMS4zIFdlYkNvcmUva3dxL1dlYkNv
cmVTY3JpcHREZWJ1Z2dlci5tbQotLS0gV2ViQ29yZS9rd3EvV2ViQ29yZVNjcmlwdERlYnVnZ2Vy
Lm1tCTE5IFNlcCAyMDA1IDE4OjUyOjEzIC0wMDAwCTEuMworKysgV2ViQ29yZS9rd3EvV2ViQ29y
ZVNjcmlwdERlYnVnZ2VyLm1tCTMgT2N0IDIwMDUgMDc6MzY6MjIgLTAwMDAKQEAgLTI2LDYgKzI2
LDcgQEAKICAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAorI2luY2x1ZGUgImNvbmZpZy5oIgogI2ltcG9ydCA8
V2ViQ29yZS9XZWJDb3JlU2NyaXB0RGVidWdnZXIuaD4KICNpbXBvcnQgPEphdmFTY3JpcHRDb3Jl
L1dlYlNjcmlwdE9iamVjdFByaXZhdGUuaD4KICNpbXBvcnQgPEphdmFTY3JpcHRDb3JlL2RlYnVn
Z2VyLmg+CkluZGV4OiBXZWJDb3JlL2t3cS9XZWJDb3JlU2V0dGluZ3MubW0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpS
Q1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva3dxL1dlYkNvcmVTZXR0aW5ncy5tbSx2CnJldHJp
ZXZpbmcgcmV2aXNpb24gMS4xMgpkaWZmIC1wIC11IC1yMS4xMiBXZWJDb3JlL2t3cS9XZWJDb3Jl
U2V0dGluZ3MubW0KLS0tIFdlYkNvcmUva3dxL1dlYkNvcmVTZXR0aW5ncy5tbQk3IEp1biAyMDA1
IDE1OjM0OjA4IC0wMDAwCTEuMTIKKysrIFdlYkNvcmUva3dxL1dlYkNvcmVTZXR0aW5ncy5tbQkz
IE9jdCAyMDA1IDA3OjM2OjIyIC0wMDAwCkBAIC0yMyw2ICsyMyw3IEBACiAgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LiAKICAqLwogCisjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW1wb3J0ICJXZWJDb3JlU2V0dGluZ3Mu
aCIKIAogI2ltcG9ydCAiS1dRRm91bmRhdGlvbkV4dHJhcy5oIgpJbmRleDogV2ViQ29yZS9rd3Ev
V2ViQ29yZVRleHRSZW5kZXJlckZhY3RvcnkubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9y
b290L1dlYkNvcmUva3dxL1dlYkNvcmVUZXh0UmVuZGVyZXJGYWN0b3J5Lm1tLHYKcmV0cmlldmlu
ZyByZXZpc2lvbiAxLjI2CmRpZmYgLXAgLXUgLXIxLjI2IFdlYkNvcmUva3dxL1dlYkNvcmVUZXh0
UmVuZGVyZXJGYWN0b3J5Lm1tCi0tLSBXZWJDb3JlL2t3cS9XZWJDb3JlVGV4dFJlbmRlcmVyRmFj
dG9yeS5tbQkyNyBTZXAgMjAwNSAyMjozNzozMyAtMDAwMAkxLjI2CisrKyBXZWJDb3JlL2t3cS9X
ZWJDb3JlVGV4dFJlbmRlcmVyRmFjdG9yeS5tbQkzIE9jdCAyMDA1IDA3OjM2OjIyIC0wMDAwCkBA
IC0yMyw2ICsyMyw3IEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKICAqLwogCisjaW5jbHVkZSAiY29uZmln
LmgiCiAjaW1wb3J0ICJXZWJDb3JlVGV4dFJlbmRlcmVyLmgiCiAjaW1wb3J0ICJXZWJDb3JlVGV4
dFJlbmRlcmVyRmFjdG9yeS5oIgogCkluZGV4OiBXZWJDb3JlL2t3cS9jYW4tY29udmVydC5tbQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9rd3EvY2FuLWNvbnZlcnQubW0s
dgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMQpkaWZmIC1wIC11IC1yMS4xIFdlYkNvcmUva3dxL2Nh
bi1jb252ZXJ0Lm1tCi0tLSBXZWJDb3JlL2t3cS9jYW4tY29udmVydC5tbQk3IEZlYiAyMDA0IDIw
OjU2OjU0IC0wMDAwCTEuMQorKysgV2ViQ29yZS9rd3EvY2FuLWNvbnZlcnQubW0JMyBPY3QgMjAw
NSAwNzozNjoyMiAtMDAwMApAQCAtNCw2ICs0LDcgQEAgbWFrZSAmJiBnKysgY2FuLWNvbnZlcnQu
bW0gLWZyYW1ld29yayBDYQogCiAqLwogCisjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSA8
Q2FyYm9uL0NhcmJvbi5oPgogCiBjb25zdCBpbnQgTm9FbmNvZGluZ0ZsYWdzID0gMDsK
</data>
<flag name="review"
          id="669"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>