<?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>33477</bug_id>
          
          <creation_ts>2010-01-11 10:45:00 -0800</creation_ts>
          <short_desc>[V8] V8Index should be generated</short_desc>
          <delta_ts>2010-03-19 13:28:32 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>34768</dependson>
    
    <dependson>35941</dependson>
          <blocked>32630</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Nate Chapin">japhet</reporter>
          <assigned_to name="Nate Chapin">japhet</assigned_to>
          <cc>antonm</cc>
    
    <cc>dglazkov</cc>
    
    <cc>steveblock</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>179428</commentid>
    <comment_count>0</comment_count>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2010-01-11 10:45:00 -0800</bug_when>
    <thetext>This file is big and ugly.  Make it nonexistent and pretty.  Or at least small and pretty.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>200456</commentid>
    <comment_count>1</comment_count>
      <attachid>50841</attachid>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2010-03-16 15:00:33 -0700</bug_when>
    <thetext>Created attachment 50841
Kill V8Index.  Kill it dead.

Dromaeo perf for this patch was about a 0.3% improvement on my local box over 3 runs, so I&apos;d say this qualifies as negligible for performance.

antonm: I had to modify the way we store boilerplate wrappers in V8DOMWindowShell, since this change will remove our monotonically increasing index.  It appears performance is comparable between storing them in a v8::Array and a wtf/HashMap, but I wanted to call this change to your attention in case it&apos;s a bad idea for some reason that I haven&apos;t noticed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>200461</commentid>
    <comment_count>2</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2010-03-16 15:15:03 -0700</bug_when>
    <thetext>I have to come up with some special descriptive word for this patch. Hopefully something Nate is not allergic to. LGTM, but I want anton to look at the boilerplate stuff and how v8::Persistent&lt;&gt; members of the map are handled.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>200618</commentid>
    <comment_count>3</comment_count>
    <who name="anton muhin">antonm</who>
    <bug_when>2010-03-17 01:56:02 -0700</bug_when>
    <thetext>Overall another very nice cleanup.  I am staring to wonder if aim is no lines of code in v8 bindings :)

Some comments:

1)WebCore/bindings/v8/V8DOMWindowShell.cpp:

143      ASSERT(m_context.IsEmpty() || !m_wrapperBoilerplates.IsEmpty());
 134     ASSERT(m_context.IsEmpty() || !m_wrapperBoilerplates.isEmpty());

These are not the same.  The first one checks handles---either m_context handle is empty (thus we haven&apos;t established it) or we must have m_wrapperBoilerplates handle (but array might still be empty).

The new one requires that there is at least one mapping which should be false.  I wonder if this ASSERT is triggered by our tests in debug builds.

2)
160      if (!m_wrapperBoilerplates.IsEmpty()) {
161  #ifndef NDEBUG
162          V8GCController::unregisterGlobalHandle(this, m_wrapperBoilerplates);
163  #endif
164          m_wrapperBoilerplates.Dispose();
165          m_wrapperBoilerplates.Clear();
166      }
 150     m_wrapperBoilerplates.clear();

Alas, that&apos;s not that easy---you leaving persistent handles and thus objects referenced by them were not garbage collected.  You need to iterate through handles and Dispose each handle.  Take a look at how maps from DOM objects to wrappers are managed.

Cosmetic:

 I wonder if in == &amp;&lt;Class&gt;::info idiom we could just omit &amp; (which looks slightly ugly to me).  We could just omit or make a static function out of it.  Another approach might &lt;Class&gt;::instanceOf method.  I resort to your judgment if any of those ideas seem reasonable.

Could/should we introduce helper inline method for reinterpret_cast&lt;WrapperTypeInfo*&gt;(v8::External::Unwrap(data))</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>201029</commentid>
    <comment_count>4</comment_count>
      <attachid>50970</attachid>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2010-03-17 16:21:02 -0700</bug_when>
    <thetext>Created attachment 50970
Kill it cleaner.

I added to functions to WrapperTypeInfo: a static unwrap function and an equals() that takes a pointer and compares it to this.  That makes the comparisons slightly prettier.

Re: Garbage collection, I think I&apos;m properly deleting everything now, but I feel like there&apos;s got to be a more efficient way to do it.  If I&apos;m missing something obvious, please let me know.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>201250</commentid>
    <comment_count>5</comment_count>
    <who name="anton muhin">antonm</who>
    <bug_when>2010-03-18 04:33:44 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; Created an attachment (id=50970) [details]
&gt; Kill it cleaner.
&gt; 
&gt; I added to functions to WrapperTypeInfo: a static unwrap function and an
&gt; equals() that takes a pointer and compares it to this.  That makes the
&gt; comparisons slightly prettier.
&gt; 
&gt; Re: Garbage collection, I think I&apos;m properly deleting everything now, but I
&gt; feel like there&apos;s got to be a more efficient way to do it.  If I&apos;m missing
&gt; something obvious, please let me know.

Very nice, thanks a lot, Nate.

I cannot immediately see more efficient way to clean the stuff up and I hope that this path is never critical---looks like we shouldn&apos;t care that much about releasing things.

So I&apos;d suggest to land it and watch perf botsm, hopefully nothing should pop up.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>201286</commentid>
    <comment_count>6</comment_count>
      <attachid>50970</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2010-03-18 07:34:43 -0700</bug_when>
    <thetext>Comment on attachment 50970
Kill it cleaner.

ok.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>202017</commentid>
    <comment_count>7</comment_count>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2010-03-19 13:28:32 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/56166</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>50841</attachid>
            <date>2010-03-16 15:00:33 -0700</date>
            <delta_ts>2010-03-17 16:21:02 -0700</delta_ts>
            <desc>Kill V8Index.  Kill it dead.</desc>
            <filename>index.txt</filename>
            <type>text/plain</type>
            <size>134377</size>
            <attacher name="Nate Chapin">japhet</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViRGV2VG9vbHNBZ2VudEltcGwuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViRGV2VG9vbHNBZ2VudEltcGwuY3BwCShy
ZXZpc2lvbiA1NjA4NSkKKysrIFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViRGV2VG9vbHNBZ2VudElt
cGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04Niw3ICs4Niw2IEBACiB1c2luZyBXZWJDb3JlOjpT
Y3JpcHRTdGF0ZTsKIHVzaW5nIFdlYkNvcmU6OlNjcmlwdFZhbHVlOwogdXNpbmcgV2ViQ29yZTo6
U3RyaW5nOwotdXNpbmcgV2ViQ29yZTo6VjhDbGFzc0luZGV4OwogdXNpbmcgV2ViQ29yZTo6VjhE
T01XcmFwcGVyOwogdXNpbmcgV2ViQ29yZTo6VjhJbnNwZWN0b3JCYWNrZW5kOwogdXNpbmcgV2Vi
Q29yZTo6VjhQcm94eTsKSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViRGV2VG9vbHNGcm9u
dGVuZEltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViRGV2VG9v
bHNGcm9udGVuZEltcGwuY3BwCShyZXZpc2lvbiA1NjA4NSkKKysrIFdlYktpdC9jaHJvbWl1bS9z
cmMvV2ViRGV2VG9vbHNGcm9udGVuZEltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NCw2ICs1
NCw3IEBACiAjaW5jbHVkZSAiVjhCaW5kaW5nLmgiCiAjaW5jbHVkZSAiVjhET01XcmFwcGVyLmgi
CiAjaW5jbHVkZSAiVjhJbnNwZWN0b3JGcm9udGVuZEhvc3QuaCIKKyNpbmNsdWRlICJWOE1vdXNl
RVZlbnQuaCIKICNpbmNsdWRlICJWOE5vZGUuaCIKICNpbmNsdWRlICJWOFByb3h5LmgiCiAjaW5j
bHVkZSAiVjhVdGlsaXRpZXMuaCIKQEAgLTM2NSw3ICszNjYsNyBAQAogICAgICAgICByZXR1cm4g
djg6OlVuZGVmaW5lZCgpOwogCiAgICAgdjg6OkxvY2FsPHY4OjpPYmplY3Q+IGV2ZW50V3JhcHBl
ciA9IHY4OjpMb2NhbDx2ODo6T2JqZWN0Pjo6Q2FzdChhcmdzWzBdKTsKLSAgICBpZiAoVjhET01X
cmFwcGVyOjpkb21XcmFwcGVyVHlwZShldmVudFdyYXBwZXIpLT5pbmRleCAhPSBWOENsYXNzSW5k
ZXg6Ok1PVVNFRVZFTlQpCisgICAgaWYgKFY4RE9NV3JhcHBlcjo6ZG9tV3JhcHBlclR5cGUoZXZl
bnRXcmFwcGVyKSAhPSAmVjhNb3VzZUV2ZW50OjppbmZvKQogICAgICAgICByZXR1cm4gdjg6OlVu
ZGVmaW5lZCgpOwogCiAgICAgRXZlbnQqIGV2ZW50ID0gVjhFdmVudDo6dG9OYXRpdmUoZXZlbnRX
cmFwcGVyKTsKSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViQmluZGluZ3MuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViQmluZGluZ3MuY3BwCShyZXZpc2lvbiA1
NjA4NSkKKysrIFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViQmluZGluZ3MuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0yODQsNyArMjg0LDcgQEAKIHsKICAgICBWOE5QT2JqZWN0KiB2OG5wb2JqZWN0ID0g
cmVpbnRlcnByZXRfY2FzdDxWOE5QT2JqZWN0Kj4obnBvYmopOwogICAgIHY4OjpIYW5kbGU8djg6
Ok9iamVjdD4gdjhvYmplY3QodjhucG9iamVjdC0+djhPYmplY3QpOwotICAgIGlmIChWOENsYXNz
SW5kZXg6OlJBTkdFICE9IFY4RE9NV3JhcHBlcjo6ZG9tV3JhcHBlclR5cGUodjhvYmplY3QpLT5p
bmRleCkKKyAgICBpZiAoJlY4UmFuZ2U6OmluZm8gIT0gVjhET01XcmFwcGVyOjpkb21XcmFwcGVy
VHlwZSh2OG9iamVjdCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIFJhbmdlKiBuYXRp
dmUgPSBWOFJhbmdlOjp0b05hdGl2ZSh2OG9iamVjdCk7CkluZGV4OiBXZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cJKHJldmlz
aW9uIDU2MDg3KQorKysgV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDE3IEBACisyMDEwLTAzLTE2ICBOYXRlIENoYXBpbiAgPGphcGhldEBjaHJvbWl1
bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIAor
ICAgICAgICBSZW1vdmUgYWxsIHJlZmVyZW5jZXMgdG8gVjhJbmRleC5oIGFuZCBWOENsYXNzSW5k
ZXguCisgICAgICAgIAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MzM0NzcKKworICAgICAgICAqIHNyYy9XZWJCaW5kaW5ncy5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OmdldFJhbmdlSW1wbCk6CisgICAgICAgICogc3JjL1dlYkRldlRvb2xzQWdlbnRJbXBs
LmNwcDoKKyAgICAgICAgKiBzcmMvV2ViRGV2VG9vbHNGcm9udGVuZEltcGwuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJEZXZUb29sc0Zyb250ZW5kSW1wbDo6anNTaG93Q29udGV4dE1lbnUpOgor
CiAyMDEwLTAzLTE2ICBLZW5uZXRoIFJ1c3NlbGwgIDxrYnJAZ29vZ2xlLmNvbT4KIAogICAgICAg
ICBSZXZpZXdlZCBieSBEYXJpbiBGaXNoZXIuCkluZGV4OiBXZWJDb3JlL0NoYW5nZUxvZwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gNTYwODcpCisrKyBXZWJDb3Jl
L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUzIEBACisyMDEwLTAzLTE2ICBO
YXRlIENoYXBpbiAgPGphcGhldEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW1Y4XSBSZW1vdmUgVjhJbmRleC5oIGFuZCBhbGwg
cmVmZXJlbmNlcyB0byBWOENsYXNzSW5kZXguCisgICAgICAgIAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzM0NzcKKworICAgICAgICAqIFdlYkNvcmUu
Z3lwaToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbToKKyAg
ICAgICAgKiBiaW5kaW5ncy92OC9OUFY4T2JqZWN0LmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy92
OC9OUFY4T2JqZWN0Lmg6CisgICAgICAgICogYmluZGluZ3MvdjgvVjhDb2xsZWN0aW9uLmg6Cisg
ICAgICAgICogYmluZGluZ3MvdjgvVjhET01XaW5kb3dTaGVsbC5jcHA6CisgICAgICAgICogYmlu
ZGluZ3MvdjgvVjhET01XaW5kb3dTaGVsbC5oOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4RE9N
V3JhcHBlci5jcHA6CisgICAgICAgICogYmluZGluZ3MvdjgvVjhET01XcmFwcGVyLmg6CisgICAg
ICAgICogYmluZGluZ3MvdjgvVjhHQ0NvbnRyb2xsZXIuY3BwOgorICAgICAgICAqIGJpbmRpbmdz
L3Y4L1Y4SGVscGVycy5jcHA6CisgICAgICAgICogYmluZGluZ3MvdjgvVjhJbmRleC5oOiBSZW1v
dmVkLgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4SXNvbGF0ZWRDb250ZXh0Lmg6CisgICAgICAg
ICogYmluZGluZ3MvdjgvVjhOUE9iamVjdC5jcHA6CisgICAgICAgICogYmluZGluZ3MvdjgvVjhQ
cm94eS5jcHA6CisgICAgICAgICogYmluZGluZ3MvdjgvVjhQcm94eS5oOgorICAgICAgICAqIGJp
bmRpbmdzL3Y4L1Y4U1ZHUE9EVHlwZVdyYXBwZXIuaDoKKyAgICAgICAgKiBiaW5kaW5ncy92OC9X
b3JrZXJDb250ZXh0RXhlY3V0aW9uUHJveHkuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1dv
cmtlckNvbnRleHRFeGVjdXRpb25Qcm94eS5oOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1dyYXBw
ZXJUeXBlSW5mby5oOiBNb3ZlIFdyYXBwZXJUeXBlSW5mbyBzdHJ1Y3QgaW50byBpdHMgb3duIGZp
bGUgZnJvbSBWOEluZGV4LmguCisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4Q2FudmFz
UmVuZGVyaW5nQ29udGV4dDJEQ3VzdG9tLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0
b20vVjhET01XaW5kb3dDdXN0b20uY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9W
OEV2ZW50U291cmNlQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3Rv
bS9WOEhUTUxBdWRpb0VsZW1lbnRDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgICogYmluZGluZ3Mv
djgvY3VzdG9tL1Y4SFRNTEF1ZGlvRWxlbWVudENvbnN0cnVjdG9yLmg6CisgICAgICAgICogYmlu
ZGluZ3MvdjgvY3VzdG9tL1Y4SFRNTEltYWdlRWxlbWVudENvbnN0cnVjdG9yLmNwcDoKKyAgICAg
ICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhIVE1MSW1hZ2VFbGVtZW50Q29uc3RydWN0b3IuaDoK
KyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhIVE1MT3B0aW9uRWxlbWVudENvbnN0cnVj
dG9yLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhIVE1MT3B0aW9uRWxlbWVu
dENvbnN0cnVjdG9yLmg6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4SGlzdG9yeUN1
c3RvbS5jcHA6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4TG9jYXRpb25DdXN0b20u
Y3BwOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYkdMQXJyYXlDdXN0b20uaDoK
KyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhXZWJHTEJ5dGVBcnJheUN1c3RvbS5jcHA6
CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViR0xGbG9hdEFycmF5Q3VzdG9tLmNw
cDoKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhXZWJHTEludEFycmF5Q3VzdG9tLmNw
cDoKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhXZWJHTFJlbmRlcmluZ0NvbnRleHRD
dXN0b20uY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYkdMU2hvcnRBcnJh
eUN1c3RvbS5jcHA6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViR0xVbnNpZ25l
ZEJ5dGVBcnJheUN1c3RvbS5jcHA6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2Vi
R0xVbnNpZ25lZEludEFycmF5Q3VzdG9tLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0
b20vVjhXZWJHTFVuc2lnbmVkU2hvcnRBcnJheUN1c3RvbS5jcHA6CisgICAgICAgICogYmluZGlu
Z3MvdjgvY3VzdG9tL1Y4V2ViS2l0UG9pbnRDb25zdHJ1Y3Rvci5jcHA6CisKIDIwMTAtMDMtMTYg
IFpoZW55YW8gTW8gIDx6bW9AZ29vZ2xlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJp
biBGaXNoZXIuCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4
LnBtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9y
VjgucG0JKHJldmlzaW9uIDU2MDg1KQorKysgV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVH
ZW5lcmF0b3JWOC5wbQkod29ya2luZyBjb3B5KQpAQCAtMjI2LDcgKzIyNiw3IEBACiAgICAgcHVz
aChAaGVhZGVyQ29udGVudCwgIiNpbmNsdWRlIDx2OC5oPlxuIik7CiAgICAgcHVzaChAaGVhZGVy
Q29udGVudCwgIiNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPlxuIik7CiAgICAgcHVzaChAaGVhZGVy
Q29udGVudCwgIiNpbmNsdWRlIFwiU3RyaW5nSGFzaC5oXCJcbiIpOwotICAgIHB1c2goQGhlYWRl
ckNvbnRlbnQsICIjaW5jbHVkZSBcIlY4SW5kZXguaFwiXG4iKTsKKyAgICBwdXNoKEBoZWFkZXJD
b250ZW50LCAiI2luY2x1ZGUgXCJXcmFwcGVyVHlwZUluZm8uaFwiXG4iKTsKICAgICBwdXNoKEBo
ZWFkZXJDb250ZW50LCBHZXRIZWFkZXJDbGFzc0luY2x1ZGUoJGltcGxDbGFzc05hbWUpKTsKICAg
ICBwdXNoKEBoZWFkZXJDb250ZW50LCAiXG5uYW1lc3BhY2UgV2ViQ29yZSB7XG4iKTsKICAgICBp
ZiAoJHBvZFR5cGUpIHsKQEAgLTk3OCw3ICs5NzgsNiBAQAogewogICAgIG15ICRmdW5jdGlvbiA9
IHNoaWZ0OwogICAgIG15ICRkYXRhTm9kZSA9IHNoaWZ0OwotICAgIG15ICRjbGFzc0luZGV4ID0g
c2hpZnQ7CiAgICAgbXkgJGltcGxDbGFzc05hbWUgPSBzaGlmdDsKIAogICAgIG15ICRpbnRlcmZh
Y2VOYW1lID0gJGRhdGFOb2RlLT5uYW1lOwpAQCAtMTMxMSw5ICsxMzEwLDggQEAKIEVORAogICAg
ICAgICAgICAgfQogICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgbXkgJGluZGV4ZXJDbGFz
c0luZGV4ID0gdWMoJGluZGV4ZXJUeXBlKTsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50
LCA8PEVORCk7Ci0gICAgc2V0Q29sbGVjdGlvbkluZGV4ZWRHZXR0ZXI8JHtpbnRlcmZhY2VOYW1l
fSwgJHtpbmRleGVyVHlwZX0+KGRlc2MsIFY4Q2xhc3NJbmRleDo6JHtpbmRleGVyQ2xhc3NJbmRl
eH0pOworICAgIHNldENvbGxlY3Rpb25JbmRleGVkR2V0dGVyPCR7aW50ZXJmYWNlTmFtZX0sICR7
aW5kZXhlclR5cGV9PihkZXNjKTsKIEVORAogICAgICAgICAgICAgIyBJbmNsdWRlIHRoZSBoZWFk
ZXIgZm9yIHRoaXMgaW5kZXhlciB0eXBlLCBiZWNhdXNlIHNldENvbGxlY3Rpb25JbmRleGVkR2V0
dGVyKCkgcmVxdWlyZXMgdG9WOCgpIGZvciB0aGlzIHR5cGUuCiAgICAgICAgICAgICAkaW1wbElu
Y2x1ZGVzeyJWOCR7aW5kZXhlclR5cGV9LmgifSA9IDE7CkBAIC0xMzM5LDcgKzEzMzcsNyBAQAog
ICAgIHB1c2goQGltcGxDb250ZW50LCAkaGFzQ3VzdG9tU2V0dGVyID8gIiwgVjgke2ludGVyZmFj
ZU5hbWV9OjppbmRleGVkUHJvcGVydHlTZXR0ZXIiIDogIiwgMCIpOwogICAgIHB1c2goQGltcGxD
b250ZW50LCAiLCAwIik7ICMgSW5kZXhlZFByb3BlcnR5UXVlcnkgLS0gbm90IGJlaW5nIHVzZWQg
YXQgdGhlIG1vbWVudC4KICAgICBwdXNoKEBpbXBsQ29udGVudCwgJGhhc0RlbGV0ZXIgPyAiLCBW
OCR7aW50ZXJmYWNlTmFtZX06OmluZGV4ZWRQcm9wZXJ0eURlbGV0ZXIiIDogIiwgMCIpOwotICAg
IHB1c2goQGltcGxDb250ZW50LCAiLCBub2RlQ29sbGVjdGlvbkluZGV4ZWRQcm9wZXJ0eUVudW1l
cmF0b3I8JHtpbnRlcmZhY2VOYW1lfT4sIHY4OjpJbnRlZ2VyOjpOZXcoVjhDbGFzc0luZGV4OjpO
T0RFKSIpIGlmICRoYXNFbnVtZXJhdG9yOworICAgIHB1c2goQGltcGxDb250ZW50LCAiLCBub2Rl
Q29sbGVjdGlvbkluZGV4ZWRQcm9wZXJ0eUVudW1lcmF0b3I8JHtpbnRlcmZhY2VOYW1lfT4iKSBp
ZiAkaGFzRW51bWVyYXRvcjsKICAgICBwdXNoKEBpbXBsQ29udGVudCwgIik7XG4iKTsKIH0KIApA
QCAtMTM2OSw5ICsxMzY3LDggQEAKICAgICBpZiAoJG5hbWVkUHJvcGVydHlHZXR0ZXIgJiYgJG5h
bWVkUHJvcGVydHlHZXR0ZXItPnR5cGUgbmUgIk5vZGUiICYmICEkbmFtZWRQcm9wZXJ0eUdldHRl
ci0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbSJ9ICYmICEkaGFzQ3VzdG9tR2V0dGVyKSB7
CiAgICAgICAgICRpbXBsSW5jbHVkZXN7IlY4Q29sbGVjdGlvbi5oIn0gPSAxOwogICAgICAgICBt
eSAkdHlwZSA9ICRuYW1lZFByb3BlcnR5R2V0dGVyLT50eXBlOwotICAgICAgICBteSAkY2xhc3NJ
bmRleCA9IHVjKCR0eXBlKTsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsIDw8RU5EKTsKLSAg
ICBzZXRDb2xsZWN0aW9uTmFtZWRHZXR0ZXI8JHtpbnRlcmZhY2VOYW1lfSwgJHt0eXBlfT4oZGVz
YywgVjhDbGFzc0luZGV4Ojoke2NsYXNzSW5kZXh9KTsKKyAgICBzZXRDb2xsZWN0aW9uTmFtZWRH
ZXR0ZXI8JHtpbnRlcmZhY2VOYW1lfSwgJHt0eXBlfT4oZGVzYyk7CiBFTkQKICAgICAgICAgcmV0
dXJuOwogICAgIH0KQEAgLTE0MzQsNyArMTQzMSw2IEBACiAgICAgbXkgJHZpc2libGVJbnRlcmZh
Y2VOYW1lID0gR2V0VmlzaWJsZUludGVyZmFjZU5hbWUoJGludGVyZmFjZU5hbWUpOwogICAgIG15
ICRjbGFzc05hbWUgPSAiVjgkaW50ZXJmYWNlTmFtZSI7CiAgICAgbXkgJGltcGxDbGFzc05hbWUg
PSAkaW50ZXJmYWNlTmFtZTsKLSAgICBteSAkY2xhc3NJbmRleCA9IHVjKCRjb2RlR2VuZXJhdG9y
LT5TdHJpcE1vZHVsZSgkaW50ZXJmYWNlTmFtZSkpOwogCiAgICAgbXkgJGhhc0xlZ2FjeVBhcmVu
dCA9ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkxlZ2FjeVBhcmVudCJ9OwogICAg
IG15ICRjb25kaXRpb25hbFN0cmluZyA9IEdlbmVyYXRlQ29uZGl0aW9uYWxTdHJpbmcoJGRhdGFO
b2RlKTsKQEAgLTE0NjUsNyArMTQ2MSw3IEBACiAgICAgbXkgJHRvQWN0aXZlID0gSXNBY3RpdmVE
b21UeXBlKCRpbnRlcmZhY2VOYW1lKSA/ICIke2NsYXNzTmFtZX06OnRvQWN0aXZlRE9NT2JqZWN0
IiA6ICIwIjsKIAogICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsICJuYW1lc3BhY2UgV2ViQ29y
ZSB7XG5cbiIpOwotICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsICJXcmFwcGVyVHlwZUluZm8g
JHtjbGFzc05hbWV9OjppbmZvID0ge1Y4Q2xhc3NJbmRleDo6VG9JbnQoVjhDbGFzc0luZGV4Ojok
e2NsYXNzSW5kZXh9KSwgJHtjbGFzc05hbWV9OjpHZXRUZW1wbGF0ZSwgJHtjbGFzc05hbWV9Ojpk
ZXJlZk9iamVjdCwgJHt0b0FjdGl2ZX0gfTtcblxuIik7ICAgCisgICAgcHVzaChAaW1wbENvbnRl
bnREZWNscywgIldyYXBwZXJUeXBlSW5mbyAke2NsYXNzTmFtZX06OmluZm8gPSB7ICR7Y2xhc3NO
YW1lfTo6R2V0VGVtcGxhdGUsICR7Y2xhc3NOYW1lfTo6ZGVyZWZPYmplY3QsICR7dG9BY3RpdmV9
IH07XG5cbiIpOyAgIAogICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsICJuYW1lc3BhY2UgJHtp
bnRlcmZhY2VOYW1lfUludGVybmFsIHtcblxuIik7CiAgICAgcHVzaChAaW1wbENvbnRlbnREZWNs
cywgInRlbXBsYXRlIDx0eXBlbmFtZSBUPiB2b2lkIFY4X1VTRShUKSB7IH1cblxuIik7CiAKQEAg
LTE1MjAsNyArMTUxNiw3IEBACiAgICAgIyBHZW5lcmF0ZSBtZXRob2RzIGZvciBmdW5jdGlvbnMu
CiAgICAgZm9yZWFjaCBteSAkZnVuY3Rpb24gKEB7JGRhdGFOb2RlLT5mdW5jdGlvbnN9KSB7CiAg
ICAgICAgIGlmICghKCRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsi
Q3VzdG9tIn0gfHwgJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJW
OEN1c3RvbSJ9KSkgewotICAgICAgICAgICAgR2VuZXJhdGVGdW5jdGlvbkNhbGxiYWNrKCRmdW5j
dGlvbiwgJGRhdGFOb2RlLCAkY2xhc3NJbmRleCwgJGltcGxDbGFzc05hbWUpOworICAgICAgICAg
ICAgR2VuZXJhdGVGdW5jdGlvbkNhbGxiYWNrKCRmdW5jdGlvbiwgJGRhdGFOb2RlLCAkaW1wbENs
YXNzTmFtZSk7CiAgICAgICAgIH0KIAogICAgICAgICBpZiAoJGZ1bmN0aW9uLT5zaWduYXR1cmUt
Pm5hbWUgZXEgIml0ZW0iKSB7CkBAIC0xNjQxLDcgKzE2MzcsNyBAQAogCiAgICAgbXkgJGFjY2Vz
c19jaGVjayA9ICIiOwogICAgIGlmICgkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJD
aGVja0RvbWFpblNlY3VyaXR5In0gJiYgISgkaW50ZXJmYWNlTmFtZSBlcSAiRE9NV2luZG93Iikp
IHsKLSAgICAgICAgJGFjY2Vzc19jaGVjayA9ICJpbnN0YW5jZS0+U2V0QWNjZXNzQ2hlY2tDYWxs
YmFja3MoVjgke2ludGVyZmFjZU5hbWV9OjpuYW1lZFNlY3VyaXR5Q2hlY2ssIFY4JHtpbnRlcmZh
Y2VOYW1lfTo6aW5kZXhlZFNlY3VyaXR5Q2hlY2ssIHY4OjpJbnRlZ2VyOjpOZXcoVjhDbGFzc0lu
ZGV4OjpUb0ludChWOENsYXNzSW5kZXg6OiR7Y2xhc3NJbmRleH0pKSk7IjsKKyAgICAgICAgJGFj
Y2Vzc19jaGVjayA9ICJpbnN0YW5jZS0+U2V0QWNjZXNzQ2hlY2tDYWxsYmFja3MoVjgke2ludGVy
ZmFjZU5hbWV9OjpuYW1lZFNlY3VyaXR5Q2hlY2ssIFY4JHtpbnRlcmZhY2VOYW1lfTo6aW5kZXhl
ZFNlY3VyaXR5Q2hlY2ssIHY4OjpFeHRlcm5hbDo6V3JhcCgmVjgke2ludGVyZmFjZU5hbWV9Ojpp
bmZvKSk7IjsKICAgICB9CiAKICAgICAjIEZvciB0aGUgRE9NV2luZG93IGludGVyZmFjZSwgZ2Vu
ZXJhdGUgdGhlIHNoYWRvdyBvYmplY3QgdGVtcGxhdGUKQEAgLTE2NTMsNyArMTY0OSw3IEBACiAg
ICAgYmF0Y2hDb25maWd1cmVBdHRyaWJ1dGVzKHRlbXBsLCB2ODo6SGFuZGxlPHY4OjpPYmplY3RU
ZW1wbGF0ZT4oKSwgc2hhZG93X2F0dHJzLCBzaXplb2Yoc2hhZG93X2F0dHJzKS9zaXplb2YoKnNo
YWRvd19hdHRycykpOwogCiAgICAgLy8gSW5zdGFsbCBhIHNlY3VyaXR5IGhhbmRsZXIgd2l0aCBW
OC4KLSAgICB0ZW1wbC0+U2V0QWNjZXNzQ2hlY2tDYWxsYmFja3MoVjhET01XaW5kb3c6Om5hbWVk
U2VjdXJpdHlDaGVjaywgVjhET01XaW5kb3c6OmluZGV4ZWRTZWN1cml0eUNoZWNrLCB2ODo6SW50
ZWdlcjo6TmV3KFY4Q2xhc3NJbmRleDo6RE9NV0lORE9XKSk7CisgICAgdGVtcGwtPlNldEFjY2Vz
c0NoZWNrQ2FsbGJhY2tzKFY4RE9NV2luZG93OjpuYW1lZFNlY3VyaXR5Q2hlY2ssIFY4RE9NV2lu
ZG93OjppbmRleGVkU2VjdXJpdHlDaGVjaywgdjg6OkV4dGVybmFsOjpXcmFwKCZWOERPTVdpbmRv
dzo6aW5mbykpOwogICAgIHRlbXBsLT5TZXRJbnRlcm5hbEZpZWxkQ291bnQoVjhET01XaW5kb3c6
OmludGVybmFsRmllbGRDb3VudCk7CiAgICAgcmV0dXJuIHRlbXBsOwogfQpAQCAtMTcxMyw3ICsx
NzA5LDcgQEAKIEVORAogICAgIH0KIAotICAgIHB1c2goQGltcGxDb250ZW50LCAgIiAgJGFjY2Vz
c19jaGVja1xuIik7CisgICAgcHVzaChAaW1wbENvbnRlbnQsICAiICAgICRhY2Nlc3NfY2hlY2tc
biIpOwogCiAgICAgIyBTZXR1cCB0aGUgZW5hYmxlLWF0LXJ1bnRpbWUgYXR0cnMgaWYgd2UgaGF2
ZSB0aGVtCiAgICAgZm9yZWFjaCBteSAkcnVudGltZV9hdHRyIChAZW5hYmxlZEF0UnVudGltZSkg
ewpAQCAtMTgzOSw3ICsxODM1LDcgQEAKICAgICAvLyBTZXQgYWNjZXNzIGNoZWNrIGNhbGxiYWNr
cywgYnV0IHR1cm5lZCBvZmYgaW5pdGlhbGx5LgogICAgIC8vIFdoZW4gYSBjb250ZXh0IGlzIGRl
dGFjaGVkIGZyb20gYSBmcmFtZSwgdHVybiBvbiB0aGUgYWNjZXNzIGNoZWNrLgogICAgIC8vIFR1
cm5pbmcgb24gY2hlY2tzIGFsc28gaW52YWxpZGF0ZXMgaW5saW5lIGNhY2hlcyBvZiB0aGUgb2Jq
ZWN0LgotICAgIGluc3RhbmNlLT5TZXRBY2Nlc3NDaGVja0NhbGxiYWNrcyhWOERPTVdpbmRvdzo6
bmFtZWRTZWN1cml0eUNoZWNrLCBWOERPTVdpbmRvdzo6aW5kZXhlZFNlY3VyaXR5Q2hlY2ssIHY4
OjpJbnRlZ2VyOjpOZXcoVjhDbGFzc0luZGV4OjpET01XSU5ET1cpLCBmYWxzZSk7CisgICAgaW5z
dGFuY2UtPlNldEFjY2Vzc0NoZWNrQ2FsbGJhY2tzKFY4RE9NV2luZG93OjpuYW1lZFNlY3VyaXR5
Q2hlY2ssIFY4RE9NV2luZG93OjppbmRleGVkU2VjdXJpdHlDaGVjaywgdjg6OkV4dGVybmFsOjpX
cmFwKCZWOERPTVdpbmRvdzo6aW5mbyksIGZhbHNlKTsKIEVORAogICAgIH0KICAgICBpZiAoJGlu
dGVyZmFjZU5hbWUgZXEgIkxvY2F0aW9uIikgewpAQCAtMTk0NCw3ICsxOTQwLDYgQEAKICAgICBt
eSAkY2xhc3NOYW1lID0gc2hpZnQ7CiAgICAgbXkgJG5hdGl2ZVR5cGUgPSBzaGlmdDsKIAotICAg
IG15ICR3cmFwcGVyVHlwZSA9ICJWOENsYXNzSW5kZXg6OiIgLiB1YygkaW50ZXJmYWNlTmFtZSk7
CiAgICAgbXkgJGRvbU1hcEZ1bmN0aW9uID0gR2V0RG9tTWFwRnVuY3Rpb24oJGRhdGFOb2RlLCAk
aW50ZXJmYWNlTmFtZSk7CiAgICAgbXkgJGZvcmNlTmV3T2JqZWN0SW5wdXQgPSBJc0RPTU5vZGVU
eXBlKCRpbnRlcmZhY2VOYW1lKSA/ICIsIGJvb2wgZm9yY2VOZXdPYmplY3QiIDogIiI7CiAgICAg
bXkgJGZvcmNlTmV3T2JqZWN0Q2FsbCA9IElzRE9NTm9kZVR5cGUoJGludGVyZmFjZU5hbWUpID8g
IiwgZm9yY2VOZXdPYmplY3QiIDogIiI7CkBAIC0yNDc0LDE3ICsyNDY5LDEzIEBACiAgICAgICAg
ICMgcmV0dXJuIE5VTEwuCiAgICAgICAgIHJldHVybiAiVjgke3R5cGV9OjpIYXNJbnN0YW5jZSgk
dmFsdWUpID8gVjgke3R5cGV9Ojp0b05hdGl2ZSh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+OjpDYXN0
KCR2YWx1ZSkpIDogMCI7CiAgICAgfSBlbHNlIHsKLSAgICAgICAgIyBUT0RPOiBUZW1wb3Jhcnkg
dG8gYXZvaWQgV2luZG93IG5hbWUgY29uZmxpY3QuCi0gICAgICAgIG15ICRjbGFzc0luZGV4ID0g
dWMoJHR5cGUpOwotICAgICAgICBteSAkaW1wbENsYXNzTmFtZSA9ICR7dHlwZX07Ci0KICAgICAg
ICAgJGltcGxJbmNsdWRlc3siVjgkdHlwZS5oIn0gPSAxOwogCiAgICAgICAgIGlmIChJc1BvZFR5
cGUoJHR5cGUpKSB7CiAgICAgICAgICAgICBteSAkbmF0aXZlVHlwZSA9IEdldE5hdGl2ZVR5cGUo
JHR5cGUpOwogICAgICAgICAgICAgJGltcGxJbmNsdWRlc3siVjhTVkdQT0RUeXBlV3JhcHBlci5o
In0gPSAxOwogCi0gICAgICAgICAgICByZXR1cm4gIlY4U1ZHUE9EVHlwZVV0aWw6OnRvU1ZHUE9E
VHlwZTwke25hdGl2ZVR5cGV9PihWOENsYXNzSW5kZXg6OiR7Y2xhc3NJbmRleH0sICR2YWx1ZSR7
bWF5YmVPa1BhcmFtfSkiCisgICAgICAgICAgICByZXR1cm4gIlY4U1ZHUE9EVHlwZVV0aWw6OnRv
U1ZHUE9EVHlwZTwke25hdGl2ZVR5cGV9PigmVjgke3R5cGV9OjppbmZvLCAkdmFsdWUke21heWJl
T2tQYXJhbX0pIgogICAgICAgICB9CiAKICAgICAgICAgJGltcGxJbmNsdWRlc3siVjgke3R5cGV9
LmgifSA9IDE7CkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9NV3JhcHBlci5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy92OC9WOERPTVdyYXBwZXIuY3BwCShyZXZpc2lv
biA1NjA4NSkKKysrIFdlYkNvcmUvYmluZGluZ3MvdjgvVjhET01XcmFwcGVyLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNDgsNyArNDgsNiBAQAogI2luY2x1ZGUgIlY4RXZlbnRMaXN0ZW5lckxpc3Qu
aCIKICNpbmNsdWRlICJWOEhUTUxDb2xsZWN0aW9uLmgiCiAjaW5jbHVkZSAiVjhIVE1MRG9jdW1l
bnQuaCIKLSNpbmNsdWRlICJWOEluZGV4LmgiCiAjaW5jbHVkZSAiVjhJc29sYXRlZENvbnRleHQu
aCIKICNpbmNsdWRlICJWOExvY2F0aW9uLmgiCiAjaW5jbHVkZSAiVjhNZXNzYWdlQ2hhbm5lbC5o
IgpAQCAtNzAsNiArNjksNyBAQAogI2luY2x1ZGUgIldlYkdMQ29udGV4dEF0dHJpYnV0ZXMuaCIK
ICNpbmNsdWRlICJXZWJHTFVuaWZvcm1Mb2NhdGlvbi5oIgogI2luY2x1ZGUgIldvcmtlckNvbnRl
eHRFeGVjdXRpb25Qcm94eS5oIgorI2luY2x1ZGUgIldyYXBwZXJUeXBlSW5mby5oIgogCiAjaWYg
RU5BQkxFKFNWRykKICNpbmNsdWRlICJTVkdFbGVtZW50SW5zdGFuY2UuaCIKQEAgLTkxLDQ1ICs5
MSw2IEBACiB0eXBlZGVmIEhhc2hNYXA8Tm9kZSosIHY4OjpPYmplY3QqPiBET01Ob2RlTWFwOwog
dHlwZWRlZiBIYXNoTWFwPHZvaWQqLCB2ODo6T2JqZWN0Kj4gRE9NT2JqZWN0TWFwOwogCi0jaWYg
RU5BQkxFKDNEX0NBTlZBUykKLXZvaWQgVjhET01XcmFwcGVyOjpzZXRJbmRleGVkUHJvcGVydGll
c1RvRXh0ZXJuYWxBcnJheSh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHdyYXBwZXIsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGluZGV4
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHZvaWQqIGFkZHJlc3MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgaW50IGxlbmd0aCkKLXsKLSAgICB2ODo6RXh0ZXJuYWxBcnJheVR5cGUg
YXJyYXlfdHlwZSA9IHY4OjprRXh0ZXJuYWxCeXRlQXJyYXk7Ci0gICAgVjhDbGFzc0luZGV4OjpW
OFdyYXBwZXJUeXBlIGNsYXNzSW5kZXggPSBWOENsYXNzSW5kZXg6OkZyb21JbnQoaW5kZXgpOwot
ICAgIHN3aXRjaCAoY2xhc3NJbmRleCkgewotICAgIGNhc2UgVjhDbGFzc0luZGV4OjpXRUJHTEJZ
VEVBUlJBWToKLSAgICAgICAgYXJyYXlfdHlwZSA9IHY4OjprRXh0ZXJuYWxCeXRlQXJyYXk7Ci0g
ICAgICAgIGJyZWFrOwotICAgIGNhc2UgVjhDbGFzc0luZGV4OjpXRUJHTFVOU0lHTkVEQllURUFS
UkFZOgotICAgICAgICBhcnJheV90eXBlID0gdjg6OmtFeHRlcm5hbFVuc2lnbmVkQnl0ZUFycmF5
OwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFY4Q2xhc3NJbmRleDo6V0VCR0xTSE9SVEFSUkFZ
OgotICAgICAgICBhcnJheV90eXBlID0gdjg6OmtFeHRlcm5hbFNob3J0QXJyYXk7Ci0gICAgICAg
IGJyZWFrOwotICAgIGNhc2UgVjhDbGFzc0luZGV4OjpXRUJHTFVOU0lHTkVEU0hPUlRBUlJBWToK
LSAgICAgICAgYXJyYXlfdHlwZSA9IHY4OjprRXh0ZXJuYWxVbnNpZ25lZFNob3J0QXJyYXk7Ci0g
ICAgICAgIGJyZWFrOwotICAgIGNhc2UgVjhDbGFzc0luZGV4OjpXRUJHTElOVEFSUkFZOgotICAg
ICAgICBhcnJheV90eXBlID0gdjg6OmtFeHRlcm5hbEludEFycmF5OwotICAgICAgICBicmVhazsK
LSAgICBjYXNlIFY4Q2xhc3NJbmRleDo6V0VCR0xVTlNJR05FRElOVEFSUkFZOgotICAgICAgICBh
cnJheV90eXBlID0gdjg6OmtFeHRlcm5hbFVuc2lnbmVkSW50QXJyYXk7Ci0gICAgICAgIGJyZWFr
OwotICAgIGNhc2UgVjhDbGFzc0luZGV4OjpXRUJHTEZMT0FUQVJSQVk6Ci0gICAgICAgIGFycmF5
X3R5cGUgPSB2ODo6a0V4dGVybmFsRmxvYXRBcnJheTsKLSAgICAgICAgYnJlYWs7Ci0gICAgZGVm
YXVsdDoKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgfQotICAgIHdyYXBwZXIt
PlNldEluZGV4ZWRQcm9wZXJ0aWVzVG9FeHRlcm5hbEFycmF5RGF0YShhZGRyZXNzLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcnJheV90eXBl
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBs
ZW5ndGgpOwotfQotI2VuZGlmCi0KIC8vIFRoZSBjYWxsZXIgbXVzdCBoYXZlIGluY3JlYXNlZCBv
YmoncyByZWYgY291bnQuCiB2b2lkIFY4RE9NV3JhcHBlcjo6c2V0SlNXcmFwcGVyRm9yRE9NT2Jq
ZWN0KHZvaWQqIG9iamVjdCwgdjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD4gd3JhcHBlcikKIHsK
QEAgLTMxNyw5ICsyNzgsNiBAQAogCiAgICAgQVNTRVJUKG9iamVjdC0+SW50ZXJuYWxGaWVsZENv
dW50KCkgPj0gdjhEZWZhdWx0V3JhcHBlckludGVybmFsRmllbGRDb3VudCk7CiAKLSAgICBXcmFw
cGVyVHlwZUluZm8qIHR5cGVJbmZvID0gc3RhdGljX2Nhc3Q8V3JhcHBlclR5cGVJbmZvKj4ob2Jq
ZWN0LT5HZXRQb2ludGVyRnJvbUludGVybmFsRmllbGQodjhET01XcmFwcGVyVHlwZUluZGV4KSk7
Ci0gICAgQVNTRVJUKFY4Q2xhc3NJbmRleDo6SU5WQUxJRF9DTEFTU19JTkRFWCA8IHR5cGVJbmZv
LT5pbmRleCAmJiB0eXBlSW5mby0+aW5kZXggPCBWOENsYXNzSW5kZXg6OkNMQVNTSU5ERVhfRU5E
KTsKLQogICAgIHY4OjpIYW5kbGU8djg6OlZhbHVlPiB3cmFwcGVyID0gb2JqZWN0LT5HZXRJbnRl
cm5hbEZpZWxkKHY4RE9NV3JhcHBlck9iamVjdEluZGV4KTsKICAgICBBU1NFUlQod3JhcHBlci0+
SXNOdW1iZXIoKSB8fCB3cmFwcGVyLT5Jc0V4dGVybmFsKCkpOwogCkBAIC0zMzQsNyArMjkyLDcg
QEAKICAgICByZXR1cm4gdjg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdCh2YWx1ZSktPkludGVy
bmFsRmllbGRDb3VudCgpOwogfQogCi1ib29sIFY4RE9NV3JhcHBlcjo6aXNXcmFwcGVyT2ZUeXBl
KHY4OjpIYW5kbGU8djg6OlZhbHVlPiB2YWx1ZSwgVjhDbGFzc0luZGV4OjpWOFdyYXBwZXJUeXBl
IGNsYXNzVHlwZSkKK2Jvb2wgVjhET01XcmFwcGVyOjppc1dyYXBwZXJPZlR5cGUodjg6OkhhbmRs
ZTx2ODo6VmFsdWU+IHZhbHVlLCBXcmFwcGVyVHlwZUluZm8qIHR5cGUpCiB7CiAgICAgaWYgKCFp
c1ZhbGlkRE9NT2JqZWN0KHZhbHVlKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMzQ2LDkg
KzMwNCw3IEBACiAgICAgQVNTRVJUKHdyYXBwZXItPklzTnVtYmVyKCkgfHwgd3JhcHBlci0+SXNF
eHRlcm5hbCgpKTsKIAogICAgIFdyYXBwZXJUeXBlSW5mbyogdHlwZUluZm8gPSBzdGF0aWNfY2Fz
dDxXcmFwcGVyVHlwZUluZm8qPihvYmplY3QtPkdldFBvaW50ZXJGcm9tSW50ZXJuYWxGaWVsZCh2
OERPTVdyYXBwZXJUeXBlSW5kZXgpKTsKLSAgICBBU1NFUlQoVjhDbGFzc0luZGV4OjpJTlZBTElE
X0NMQVNTX0lOREVYIDwgdHlwZUluZm8tPmluZGV4ICYmIHR5cGVJbmZvLT5pbmRleCA8IFY4Q2xh
c3NJbmRleDo6Q0xBU1NJTkRFWF9FTkQpOwotCi0gICAgcmV0dXJuIFY4Q2xhc3NJbmRleDo6RnJv
bUludCh0eXBlSW5mby0+aW5kZXgpID09IGNsYXNzVHlwZTsKKyAgICByZXR1cm4gdHlwZUluZm8g
PT0gdHlwZTsKIH0KIAogdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBWOERPTVdyYXBwZXI6OmdldFdy
YXBwZXIoTm9kZSogbm9kZSkKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvdjgvVjhQcm94eS5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvdjgvVjhQcm94eS5oCShyZXZpc2lvbiA1NjA4
NSkKKysrIFdlYkNvcmUvYmluZGluZ3MvdjgvVjhQcm94eS5oCSh3b3JraW5nIGNvcHkpCkBAIC0z
OSw3ICszOSw3IEBACiAjaW5jbHVkZSAiVjhET01XaW5kb3dTaGVsbC5oIgogI2luY2x1ZGUgIlY4
RE9NV3JhcHBlci5oIgogI2luY2x1ZGUgIlY4R0NDb250cm9sbGVyLmgiCi0jaW5jbHVkZSAiVjhJ
bmRleC5oIgorI2luY2x1ZGUgIldyYXBwZXJUeXBlSW5mby5oIgogI2luY2x1ZGUgPHY4Lmg+CiAj
aW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4gLy8gc28gZ2VuZXJhdGVkIGJpbmRpbmdzIGRvbid0
IGhhdmUgdG8KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CkluZGV4OiBXZWJDb3JlL2JpbmRpbmdz
L3Y4L1Y4RE9NV2luZG93U2hlbGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3Y4
L1Y4RE9NV2luZG93U2hlbGwuaAkocmV2aXNpb24gNTYwODUpCisrKyBXZWJDb3JlL2JpbmRpbmdz
L3Y4L1Y4RE9NV2luZG93U2hlbGwuaAkod29ya2luZyBjb3B5KQpAQCAtMzEsNyArMzEsOCBAQAog
I2lmbmRlZiBWOERPTVdpbmRvd1NoZWxsX2gKICNkZWZpbmUgVjhET01XaW5kb3dTaGVsbF9oCiAK
LSNpbmNsdWRlICJWOEluZGV4LmgiCisjaW5jbHVkZSAiV3JhcHBlclR5cGVJbmZvLmgiCisjaW5j
bHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1
ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgpAQCAtNzksOSAr
ODAsOCBAQAogICAgIC8vIFRoaXMgaXMgZmFzdGVyIHRoYW4gZ29pbmcgdGhyb3VnaCB0aGUgZnVs
bCBvYmplY3QgY3JlYXRpb24gcHJvY2Vzcy4KICAgICB2ODo6TG9jYWw8djg6Ok9iamVjdD4gY3Jl
YXRlV3JhcHBlckZyb21DYWNoZShXcmFwcGVyVHlwZUluZm8qIHR5cGUpCiAgICAgewotICAgICAg
ICBpbnQgY2xhc3NJbmRleCA9IHR5cGUtPmluZGV4OwotICAgICAgICB2ODo6TG9jYWw8djg6Ok9i
amVjdD4gY2xvbmUobV93cmFwcGVyQm9pbGVycGxhdGVzLT5DbG9uZUVsZW1lbnRBdChjbGFzc0lu
ZGV4KSk7Ci0gICAgICAgIHJldHVybiBjbG9uZS5Jc0VtcHR5KCkgPyBjcmVhdGVXcmFwcGVyRnJv
bUNhY2hlU2xvd0Nhc2UodHlwZSkgOiBjbG9uZTsKKyAgICAgICAgdjg6OlBlcnNpc3RlbnQ8djg6
Ok9iamVjdD4gYm9pbGVycGxhdGUgPSBtX3dyYXBwZXJCb2lsZXJwbGF0ZXMuZ2V0KHR5cGUpOwor
ICAgICAgICByZXR1cm4gYm9pbGVycGxhdGUuSXNFbXB0eSgpID8gY3JlYXRlV3JhcHBlckZyb21D
YWNoZVNsb3dDYXNlKHR5cGUpIDogYm9pbGVycGxhdGUtPkNsb25lKCk7CiAgICAgfQogCiAgICAg
c3RhdGljIHZvaWQgc2V0TG9jYXRpb24oRE9NV2luZG93KiwgY29uc3QgU3RyaW5nJiByZWxhdGl2
ZVVSTCk7CkBAIC0xMDYsMTAgKzEwNiw5IEBACiAgICAgRnJhbWUqIG1fZnJhbWU7CiAKICAgICAv
LyBGb3IgZWFjaCBwb3NzaWJsZSB0eXBlIG9mIHdyYXBwZXIsIHdlIGtlZXAgYSBib2lsZXJwbGF0
ZSBvYmplY3QuCi0gICAgLy8gVGhlIGJvaWxlcnBsYXRlIGlzIHVzZWQgdG8gY3JlYXRlIGFkZGl0
aW9uYWwgd3JhcHBlcnMgb2YgdGhlIHNhbWUKLSAgICAvLyB0eXBlLiAgV2Uga2VlcCBhIHNpbmds
ZSBwZXJzaXN0ZW50IGhhbmRsZSB0byBhbiBhcnJheSBvZiB0aGUKLSAgICAvLyBhY3RpdmF0ZWQg
Ym9pbGVycGxhdGVzLgotICAgIHY4OjpQZXJzaXN0ZW50PHY4OjpBcnJheT4gbV93cmFwcGVyQm9p
bGVycGxhdGVzOworICAgIC8vIFRoZSBib2lsZXJwbGF0ZSBpcyB1c2VkIHRvIGNyZWF0ZSBhZGRp
dGlvbmFsIHdyYXBwZXJzIG9mIHRoZSBzYW1lIHR5cGUuCisgICAgdHlwZWRlZiBXVEY6Okhhc2hN
YXA8V3JhcHBlclR5cGVJbmZvKiwgdjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD4gPiBXcmFwcGVy
Qm9pbGVycGxhdGVNYXA7CisgICAgV3JhcHBlckJvaWxlcnBsYXRlTWFwIG1fd3JhcHBlckJvaWxl
cnBsYXRlczsKIAogICAgIHY4OjpQZXJzaXN0ZW50PHY4OjpDb250ZXh0PiBtX2NvbnRleHQ7CiAg
ICAgdjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD4gbV9nbG9iYWw7CkluZGV4OiBXZWJDb3JlL2Jp
bmRpbmdzL3Y4L1Y4UHJveHkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3Mvdjgv
VjhQcm94eS5jcHAJKHJldmlzaW9uIDU2MDg1KQorKysgV2ViQ29yZS9iaW5kaW5ncy92OC9WOFBy
b3h5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTMsNyArNTMsNiBAQAogI2luY2x1ZGUgIlY4RE9N
V2luZG93LmgiCiAjaW5jbHVkZSAiVjhFdmVudEV4Y2VwdGlvbi5oIgogI2luY2x1ZGUgIlY4SGlk
ZGVuUHJvcGVydHlOYW1lLmgiCi0jaW5jbHVkZSAiVjhJbmRleC5oIgogI2luY2x1ZGUgIlY4SXNv
bGF0ZWRDb250ZXh0LmgiCiAjaW5jbHVkZSAiVjhSYW5nZUV4Y2VwdGlvbi5oIgogI2luY2x1ZGUg
IlY4WE1MSHR0cFJlcXVlc3RFeGNlcHRpb24uaCIKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3Mvdjgv
VjhET01XcmFwcGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy92OC9WOERPTVdy
YXBwZXIuaAkocmV2aXNpb24gNTYwODUpCisrKyBXZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9NV3Jh
cHBlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zOSw5ICszOSw5IEBACiAjaW5jbHVkZSAiVjhDdXN0
b21YUGF0aE5TUmVzb2x2ZXIuaCIKICNpbmNsdWRlICJWOERPTU1hcC5oIgogI2luY2x1ZGUgIlY4
RXZlbnQuaCIKLSNpbmNsdWRlICJWOEluZGV4LmgiCiAjaW5jbHVkZSAiVjhVdGlsaXRpZXMuaCIK
ICNpbmNsdWRlICJWOFhQYXRoTlNSZXNvbHZlci5oIgorI2luY2x1ZGUgIldyYXBwZXJUeXBlSW5m
by5oIgogI2luY2x1ZGUgIlhQYXRoTlNSZXNvbHZlci5oIgogI2luY2x1ZGUgPHY4Lmg+CiAKQEAg
LTExOSwxNCArMTE5LDggQEAKICAgICAgICAgc3RhdGljIGJvb2wgaXNWYWxpZERPTU9iamVjdCh2
ODo6SGFuZGxlPHY4OjpWYWx1ZT4pOwogCiAgICAgICAgIC8vIENoZWNrIHdoZXRoZXIgYSBWOCB2
YWx1ZSBpcyBhIHdyYXBwZXIgb2YgdHlwZSB8Y2xhc3NUeXBlfC4KLSAgICAgICAgc3RhdGljIGJv
b2wgaXNXcmFwcGVyT2ZUeXBlKHY4OjpIYW5kbGU8djg6OlZhbHVlPiwgVjhDbGFzc0luZGV4OjpW
OFdyYXBwZXJUeXBlKTsKKyAgICAgICAgc3RhdGljIGJvb2wgaXNXcmFwcGVyT2ZUeXBlKHY4OjpI
YW5kbGU8djg6OlZhbHVlPiwgV3JhcHBlclR5cGVJbmZvKik7CiAKLSNpZiBFTkFCTEUoM0RfQ0FO
VkFTKQotICAgICAgICBzdGF0aWMgdm9pZCBzZXRJbmRleGVkUHJvcGVydGllc1RvRXh0ZXJuYWxB
cnJheSh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+LAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQqLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQpOwotI2VuZGlmCiAg
ICAgICAgIC8vIFNldCBoaWRkZW4gcmVmZXJlbmNlcyBpbiBhIERPTVdpbmRvdyBvYmplY3Qgb2Yg
YSBmcmFtZS4KICAgICAgICAgc3RhdGljIHZvaWQgc2V0SGlkZGVuV2luZG93UmVmZXJlbmNlKEZy
YW1lKiwgY29uc3QgaW50IGludGVybmFsSW5kZXgsIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4pOwog
CkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL3Y4L1dyYXBwZXJUeXBlSW5mby5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvYmluZGluZ3MvdjgvV3JhcHBlclR5cGVJbmZvLmgJKHJldmlzaW9uIDU1Nzk5
KQorKysgV2ViQ29yZS9iaW5kaW5ncy92OC9XcmFwcGVyVHlwZUluZm8uaAkod29ya2luZyBjb3B5
KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDkgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpA
QCAtMjgsNjU0ICsyOCwxOSBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0jaWZuZGVmIFY4SW5k
ZXhfaAotI2RlZmluZSBWOEluZGV4X2gKKyNpZm5kZWYgV3JhcHBlclR5cGVJbmZvX2gKKyNkZWZp
bmUgV3JhcHBlclR5cGVJbmZvX2gKIAogI2luY2x1ZGUgPHY4Lmg+CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAotc3RhdGljIGNvbnN0IGludCB2OERPTVdyYXBwZXJUeXBlSW5kZXggPSAwOwotc3Rh
dGljIGNvbnN0IGludCB2OERPTVdyYXBwZXJPYmplY3RJbmRleCA9IDE7Ci1zdGF0aWMgY29uc3Qg
aW50IHY4RGVmYXVsdFdyYXBwZXJJbnRlcm5hbEZpZWxkQ291bnQgPSAyOwotCi0jaWYgRU5BQkxF
KERBVEFHUklEKQotI2RlZmluZSBEQVRBR1JJRF9IVE1MRUxFTUVOVF9UWVBFUyhWKSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoSFRNTERBVEFHUklEQ0VMTEVMRU1F
TlQsIEhUTUxEYXRhR3JpZENlbGxFbGVtZW50KSAgICAgICAgICAgICAgICAgXAotICAgIFYoSFRN
TERBVEFHUklEQ09MRUxFTUVOVCwgSFRNTERhdGFHcmlkQ29sRWxlbWVudCkgICAgICAgICAgICAg
ICAgICAgXAotICAgIFYoSFRNTERBVEFHUklERUxFTUVOVCwgSFRNTERhdGFHcmlkRWxlbWVudCkg
ICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoSFRNTERBVEFHUklEUk9XRUxFTUVOVCwg
SFRNTERhdGFHcmlkUm93RWxlbWVudCkKLSNkZWZpbmUgREFUQUdSSURfTk9OTk9ERV9UWVBFUyhW
KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKERBVEFHUklE
Q09MVU1OLCBEYXRhR3JpZENvbHVtbikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFwKLSAgICBWKERBVEFHUklEQ09MVU1OTElTVCwgRGF0YUdyaWRDb2x1bW5MaXN0KQotI2Vsc2UK
LSNkZWZpbmUgREFUQUdSSURfSFRNTEVMRU1FTlRfVFlQRVMoVikKLSNkZWZpbmUgREFUQUdSSURf
Tk9OTk9ERV9UWVBFUyhWKQotI2VuZGlmCi0KLSNpZiBFTkFCTEUoVklERU8pCi0jZGVmaW5lIFZJ
REVPX0hUTUxFTEVNRU5UX1RZUEVTKFYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBcCi0gICAgVihBVURJTywgSFRNTEF1ZGlvRWxlbWVudENvbnN0cnVjdG9yKSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihIVE1MQVVESU9FTEVNRU5ULCBIVE1MQXVk
aW9FbGVtZW50KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihIVE1MTUVE
SUFFTEVNRU5ULCBIVE1MTWVkaWFFbGVtZW50KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBcCi0gICAgVihIVE1MU09VUkNFRUxFTUVOVCwgSFRNTFNvdXJjZUVsZW1lbnQpICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihIVE1MVklERU9FTEVNRU5ULCBIVE1MVmlkZW9F
bGVtZW50KQotI2RlZmluZSBWSURFT19OT05OT0RFX1RZUEVTKFYpICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoTUVESUFFUlJPUiwgTWVkaWFFcnJvcikg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoVElNRVJB
TkdFUywgVGltZVJhbmdlcykKLSNlbHNlCi0jZGVmaW5lIFZJREVPX0hUTUxFTEVNRU5UX1RZUEVT
KFYpCi0jZGVmaW5lIFZJREVPX05PTk5PREVfVFlQRVMoVikKLSNlbmRpZgotCi0jaWYgRU5BQkxF
KFdPUktFUlMpCi0jZGVmaW5lIFdPUktFUl9BQ1RJVkVfT0JKRUNUX1dSQVBQRVJfVFlQRVMoVikg
ICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihXT1JLRVIsIFdvcmtlcikKLQotI2Rl
ZmluZSBXT1JLRVJfTk9OTk9ERV9XUkFQUEVSX1RZUEVTKFYpICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgXAotICAgIFYoQUJTVFJBQ1RXT1JLRVIsIEFic3RyYWN0V29ya2VyKSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoREVESUNBVEVEV09SS0VSQ09O
VEVYVCwgRGVkaWNhdGVkV29ya2VyQ29udGV4dCkgICAgICAgICAgICAgICAgICAgXAotICAgIFYo
V09SS0VSQ09OVEVYVCwgV29ya2VyQ29udGV4dCkgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXAotICAgIFYoV09SS0VSTE9DQVRJT04sIFdvcmtlckxvY2F0aW9uKSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoV09SS0VSTkFWSUdBVE9SLCBXb3Jr
ZXJOYXZpZ2F0b3IpCi0jZWxzZQotI2RlZmluZSBXT1JLRVJfQUNUSVZFX09CSkVDVF9XUkFQUEVS
X1RZUEVTKFYpCi0jZGVmaW5lIFdPUktFUl9OT05OT0RFX1dSQVBQRVJfVFlQRVMoVikKLSNlbmRp
ZgotCi0jaWYgRU5BQkxFKEVWRU5UU09VUkNFKQotI2RlZmluZSBFVkVOVFNPVVJDRV9BQ1RJVkVf
T0JKRUNUX1dSQVBQRVJfVFlQRVMoVikgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoRVZF
TlRTT1VSQ0UsIEV2ZW50U291cmNlKQotI2Vsc2UKLSNkZWZpbmUgRVZFTlRTT1VSQ0VfQUNUSVZF
X09CSkVDVF9XUkFQUEVSX1RZUEVTKFYpCi0jZW5kaWYKLQotI2lmIEVOQUJMRShPRkZMSU5FX1dF
Ql9BUFBMSUNBVElPTlMpCi0jZGVmaW5lIEFQUExJQ0FUSU9OQ0FDSEVfTk9OTk9ERV9XUkFQUEVS
X1RZUEVTKFYpICAgICAgICAgICAgICAgICAgICAgICBcCi0gIFYoRE9NQVBQTElDQVRJT05DQUNI
RSwgRE9NQXBwbGljYXRpb25DYWNoZSkKLSNlbHNlCi0jZGVmaW5lIEFQUExJQ0FUSU9OQ0FDSEVf
Tk9OTk9ERV9XUkFQUEVSX1RZUEVTKFYpCi0jZW5kaWYKLQotI2lmIEVOQUJMRShOT1RJRklDQVRJ
T05TKQotI2RlZmluZSBOT1RJRklDQVRJT05TX05PTk5PREVfV1JBUFBFUl9UWVBFUyhWKSAgICAg
ICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoTk9USUZJQ0FUSU9OLCBOb3RpZmljYXRpb24p
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoTk9USUZJQ0FU
SU9OQ0VOVEVSLCBOb3RpZmljYXRpb25DZW50ZXIpCi0jZWxzZQotI2RlZmluZSBOT1RJRklDQVRJ
T05TX05PTk5PREVfV1JBUFBFUl9UWVBFUyhWKQotI2VuZGlmCi0KLSNpZiBFTkFCTEUoU0hBUkVE
X1dPUktFUlMpCi0jZGVmaW5lIFNIQVJFRF9XT1JLRVJfQUNUSVZFX09CSkVDVF9XUkFQUEVSX1RZ
UEVTKFYpICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihTSEFSRURXT1JLRVIsIFNoYXJlZFdv
cmtlcikKLQotI2RlZmluZSBTSEFSRURfV09SS0VSX05PTk5PREVfV1JBUFBFUl9UWVBFUyhWKSAg
ICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoU0hBUkVEV09SS0VSQ09OVEVYVCwgU2hh
cmVkV29ya2VyQ29udGV4dCkKLSNlbHNlCi0jZGVmaW5lIFNIQVJFRF9XT1JLRVJfQUNUSVZFX09C
SkVDVF9XUkFQUEVSX1RZUEVTKFYpCi0jZGVmaW5lIFNIQVJFRF9XT1JLRVJfTk9OTk9ERV9XUkFQ
UEVSX1RZUEVTKFYpCi0jZW5kaWYKLQotI2RlZmluZSBET01fTk9ERV9UWVBFUyhWKSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoQVRUUiwgQXR0
cikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
XAotICAgIFYoQ0hBUkFDVEVSREFUQSwgQ2hhcmFjdGVyRGF0YSkgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXAotICAgIFYoQ0RBVEFTRUNUSU9OLCBDREFUQVNlY3Rpb24pICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoQ09NTUVOVCwgQ29t
bWVudCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAot
ICAgIFYoRE9DVU1FTlQsIERvY3VtZW50KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXAotICAgIFYoRE9DVU1FTlRGUkFHTUVOVCwgRG9jdW1lbnRGcmFnbWVu
dCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoRE9DVU1FTlRUWVBFLCBE
b2N1bWVudFR5cGUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAg
IFYoRUxFTUVOVCwgRWxlbWVudCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgXAotICAgIFYoRU5USVRZLCBFbnRpdHkpICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoRU5USVRZUkVGRVJFTkNFLCBF
bnRpdHlSZWZlcmVuY2UpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYo
SFRNTERPQ1VNRU5ULCBIVE1MRG9jdW1lbnQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXAotICAgIFYoSU1BR0UsIEhUTUxJbWFnZUVsZW1lbnRDb25zdHJ1Y3RvcikgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoTk9ERSwgTm9kZSkgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoT1BU
SU9OLCBIVE1MT3B0aW9uRWxlbWVudENvbnN0cnVjdG9yKSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgXAotICAgIFYoTk9UQVRJT04sIE5vdGF0aW9uKSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoUFJPQ0VTU0lOR0lOU1RSVUNUSU9OLCBQ
cm9jZXNzaW5nSW5zdHJ1Y3Rpb24pICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoVEVYVCwg
VGV4dCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXAotICAgIFYoSFRNTEFOQ0hPUkVMRU1FTlQsIEhUTUxBbmNob3JFbGVtZW50KSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoSFRNTEFQUExFVEVMRU1FTlQsIEhUTUxBcHBs
ZXRFbGVtZW50KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoSFRNTEFSRUFF
TEVNRU5ULCBIVE1MQXJlYUVsZW1lbnQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
XAotICAgIFYoSFRNTEJBU0VFTEVNRU5ULCBIVE1MQmFzZUVsZW1lbnQpICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXAotICAgIFYoSFRNTEJBU0VGT05URUxFTUVOVCwgSFRNTEJhc2VG
b250RWxlbWVudCkgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoSFRNTEJMT0NLUVVP
VEVFTEVNRU5ULCBIVE1MQmxvY2txdW90ZUVsZW1lbnQpICAgICAgICAgICAgICAgICAgICAgXAot
ICAgIFYoSFRNTEJPRFlFTEVNRU5ULCBIVE1MQm9keUVsZW1lbnQpICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXAotICAgIFYoSFRNTEJSRUxFTUVOVCwgSFRNTEJSRWxlbWVudCkgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoSFRNTEJVVFRPTkVMRU1F
TlQsIEhUTUxCdXR0b25FbGVtZW50KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAg
IFYoSFRNTENBTlZBU0VMRU1FTlQsIEhUTUxDYW52YXNFbGVtZW50KSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgXAotICAgIFYoSFRNTERJUkVDVE9SWUVMRU1FTlQsIEhUTUxEaXJlY3RvcnlF
bGVtZW50KSAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoSFRNTERJVkVMRU1FTlQsIEhU
TUxEaXZFbGVtZW50KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYo
SFRNTERMSVNURUxFTUVOVCwgSFRNTERMaXN0RWxlbWVudCkgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXAotICAgIFYoSFRNTEVNQkVERUxFTUVOVCwgSFRNTEVtYmVkRWxlbWVudCkgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoSFRNTEZJRUxEU0VURUxFTUVOVCwg
SFRNTEZpZWxkU2V0RWxlbWVudCkgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoSFRN
TEZPTlRFTEVNRU5ULCBIVE1MRm9udEVsZW1lbnQpICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgXAotICAgIFYoSFRNTEZPUk1FTEVNRU5ULCBIVE1MRm9ybUVsZW1lbnQpICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoSFRNTEZSQU1FRUxFTUVOVCwgSFRNTEZy
YW1lRWxlbWVudCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoSFRNTEZS
QU1FU0VURUxFTUVOVCwgSFRNTEZyYW1lU2V0RWxlbWVudCkgICAgICAgICAgICAgICAgICAgICAg
ICAgXAotICAgIFYoSFRNTEhFQURJTkdFTEVNRU5ULCBIVE1MSGVhZGluZ0VsZW1lbnQpICAgICAg
ICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoSFRNTEhFQURFTEVNRU5ULCBIVE1MSGVhZEVs
ZW1lbnQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoSFRNTEhSRUxF
TUVOVCwgSFRNTEhSRWxlbWVudCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
XAotICAgIFYoSFRNTEhUTUxFTEVNRU5ULCBIVE1MSHRtbEVsZW1lbnQpICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXAotICAgIFYoSFRNTElGUkFNRUVMRU1FTlQsIEhUTUxJRnJhbWVF
bGVtZW50KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoSFRNTElNQUdFRUxF
TUVOVCwgSFRNTEltYWdlRWxlbWVudCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAot
ICAgIFYoSFRNTElOUFVURUxFTUVOVCwgSFRNTElucHV0RWxlbWVudCkgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXAotICAgIFYoSFRNTElTSU5ERVhFTEVNRU5ULCBIVE1MSXNJbmRleEVs
ZW1lbnQpICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoSFRNTExBQkVMRUxFTUVO
VCwgSFRNTExhYmVsRWxlbWVudCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAg
IFYoSFRNTExFR0VOREVMRU1FTlQsIEhUTUxMZWdlbmRFbGVtZW50KSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgXAotICAgIFYoSFRNTExJRUxFTUVOVCwgSFRNTExJRWxlbWVudCkgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoSFRNTExJTktFTEVNRU5ULCBI
VE1MTGlua0VsZW1lbnQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYo
SFRNTE1BUEVMRU1FTlQsIEhUTUxNYXBFbGVtZW50KSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXAotICAgIFYoSFRNTE1BUlFVRUVFTEVNRU5ULCBIVE1MTWFycXVlZUVsZW1lbnQp
ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoSFRNTE1FTlVFTEVNRU5ULCBIVE1M
TWVudUVsZW1lbnQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoSFRN
TE1FVEFFTEVNRU5ULCBIVE1MTWV0YUVsZW1lbnQpICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgXAotICAgIFYoSFRNTE1PREVMRU1FTlQsIEhUTUxNb2RFbGVtZW50KSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoSFRNTE9CSkVDVEVMRU1FTlQsIEhUTUxP
YmplY3RFbGVtZW50KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoSFRNTE9M
SVNURUxFTUVOVCwgSFRNTE9MaXN0RWxlbWVudCkgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXAotICAgIFYoSFRNTE9QVEdST1VQRUxFTUVOVCwgSFRNTE9wdEdyb3VwRWxlbWVudCkgICAg
ICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoSFRNTE9QVElPTkVMRU1FTlQsIEhUTUxPcHRp
b25FbGVtZW50KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoSFRNTFBBUkFH
UkFQSEVMRU1FTlQsIEhUTUxQYXJhZ3JhcGhFbGVtZW50KSAgICAgICAgICAgICAgICAgICAgICAg
XAotICAgIFYoSFRNTFBBUkFNRUxFTUVOVCwgSFRNTFBhcmFtRWxlbWVudCkgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXAotICAgIFYoSFRNTFBSRUVMRU1FTlQsIEhUTUxQcmVFbGVtZW50
KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoSFRNTFFVT1RFRUxF
TUVOVCwgSFRNTFF1b3RlRWxlbWVudCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAot
ICAgIFYoSFRNTFNDUklQVEVMRU1FTlQsIEhUTUxTY3JpcHRFbGVtZW50KSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXAotICAgIFYoSFRNTFNFTEVDVEVMRU1FTlQsIEhUTUxTZWxlY3RFbGVt
ZW50KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoSFRNTFNUWUxFRUxFTUVO
VCwgSFRNTFN0eWxlRWxlbWVudCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAg
IFYoSFRNTFRBQkxFQ0FQVElPTkVMRU1FTlQsIEhUTUxUYWJsZUNhcHRpb25FbGVtZW50KSAgICAg
ICAgICAgICAgICAgXAotICAgIFYoSFRNTFRBQkxFQ09MRUxFTUVOVCwgSFRNTFRhYmxlQ29sRWxl
bWVudCkgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoSFRNTFRBQkxFRUxFTUVOVCwg
SFRNTFRhYmxlRWxlbWVudCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYo
SFRNTFRBQkxFU0VDVElPTkVMRU1FTlQsIEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50KSAgICAgICAg
ICAgICAgICAgXAotICAgIFYoSFRNTFRBQkxFQ0VMTEVMRU1FTlQsIEhUTUxUYWJsZUNlbGxFbGVt
ZW50KSAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoSFRNTFRBQkxFUk9XRUxFTUVOVCwg
SFRNTFRhYmxlUm93RWxlbWVudCkgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoSFRN
TFRFWFRBUkVBRUxFTUVOVCwgSFRNTFRleHRBcmVhRWxlbWVudCkgICAgICAgICAgICAgICAgICAg
ICAgICAgXAotICAgIFYoSFRNTFRJVExFRUxFTUVOVCwgSFRNTFRpdGxlRWxlbWVudCkgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoSFRNTFVMSVNURUxFTUVOVCwgSFRNTFVM
aXN0RWxlbWVudCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoSFRNTEVM
RU1FTlQsIEhUTUxFbGVtZW50KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXAotICAgIERBVEFHUklEX0hUTUxFTEVNRU5UX1RZUEVTKFYpICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgXAotICAgIFZJREVPX0hUTUxFTEVNRU5UX1RZUEVTKFYpCi0K
LSNpZiBFTkFCTEUoU1ZHX0FOSU1BVElPTikKLSNkZWZpbmUgU1ZHX0FOSU1BVElPTl9FTEVNRU5U
X1RZUEVTKFYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKFNWR0FO
SU1BVEVDT0xPUkVMRU1FTlQsIFNWR0FuaW1hdGVDb2xvckVsZW1lbnQpICAgICAgICAgICAgICAg
ICAgIFwKLSAgICBWKFNWR0FOSU1BVEVFTEVNRU5ULCBTVkdBbmltYXRlRWxlbWVudCkgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKFNWR0FOSU1BVEVUUkFOU0ZPUk1FTEVNRU5U
LCBTVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudCkgICAgICAgICAgIFwKLSAgICBWKFNWR0FOSU1B
VElPTkVMRU1FTlQsIFNWR0FuaW1hdGlvbkVsZW1lbnQpICAgICAgICAgICAgICAgICAgICAgICAg
IFwKLSAgICBWKFNWR1NFVEVMRU1FTlQsIFNWR1NldEVsZW1lbnQpCi0jZWxzZQotI2RlZmluZSBT
VkdfQU5JTUFUSU9OX0VMRU1FTlRfVFlQRVMoVikKLSNlbmRpZgotCi0jaWYgRU5BQkxFKFNWRykg
JiYgRU5BQkxFKEZJTFRFUlMpCi0jZGVmaW5lIFNWR19GSUxURVJTX0VMRU1FTlRfVFlQRVMoVikg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihTVkdDT01QT05FTlRU
UkFOU0ZFUkZVTkNUSU9ORUxFTUVOVCwgU1ZHQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbkVsZW1l
bnQpXAotICAgIFYoU1ZHRkVCTEVOREVMRU1FTlQsIFNWR0ZFQmxlbmRFbGVtZW50KSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoU1ZHRkVDT0xPUk1BVFJJWEVMRU1FTlQsIFNW
R0ZFQ29sb3JNYXRyaXhFbGVtZW50KSAgICAgICAgICAgICAgICAgXAotICAgIFYoU1ZHRkVDT01Q
T05FTlRUUkFOU0ZFUkVMRU1FTlQsIFNWR0ZFQ29tcG9uZW50VHJhbnNmZXJFbGVtZW50KSAgICAg
XAotICAgIFYoU1ZHRkVDT01QT1NJVEVFTEVNRU5ULCBTVkdGRUNvbXBvc2l0ZUVsZW1lbnQpICAg
ICAgICAgICAgICAgICAgICAgXAotICAgIFYoU1ZHRkVESUZGVVNFTElHSFRJTkdFTEVNRU5ULCBT
VkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQpICAgICAgICAgXAotICAgIFYoU1ZHRkVESVNQTEFD
RU1FTlRNQVBFTEVNRU5ULCBTVkdGRURpc3BsYWNlbWVudE1hcEVsZW1lbnQpICAgICAgICAgXAot
ICAgIFYoU1ZHRkVESVNUQU5UTElHSFRFTEVNRU5ULCBTVkdGRURpc3RhbnRMaWdodEVsZW1lbnQp
ICAgICAgICAgICAgICAgXAotICAgIFYoU1ZHRkVGTE9PREVMRU1FTlQsIFNWR0ZFRmxvb2RFbGVt
ZW50KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoU1ZHRkVGVU5DQUVMRU1F
TlQsIFNWR0ZFRnVuY0FFbGVtZW50KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAg
IFYoU1ZHRkVGVU5DQkVMRU1FTlQsIFNWR0ZFRnVuY0JFbGVtZW50KSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgXAotICAgIFYoU1ZHRkVGVU5DR0VMRU1FTlQsIFNWR0ZFRnVuY0dFbGVtZW50
KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoU1ZHRkVGVU5DUkVMRU1FTlQs
IFNWR0ZFRnVuY1JFbGVtZW50KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYo
U1ZHRkVHQVVTU0lBTkJMVVJFTEVNRU5ULCBTVkdGRUdhdXNzaWFuQmx1ckVsZW1lbnQpICAgICAg
ICAgICAgICAgXAotICAgIFYoU1ZHRkVJTUFHRUVMRU1FTlQsIFNWR0ZFSW1hZ2VFbGVtZW50KSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoU1ZHRkVNRVJHRUVMRU1FTlQsIFNW
R0ZFTWVyZ2VFbGVtZW50KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoU1ZH
RkVNRVJHRU5PREVFTEVNRU5ULCBTVkdGRU1lcmdlTm9kZUVsZW1lbnQpICAgICAgICAgICAgICAg
ICAgICAgXAotICAgIFYoU1ZHRkVNT1JQSE9MT0dZRUxFTUVOVCwgU1ZHRkVNb3JwaG9sb2d5RWxl
bWVudCkgICAgICAgICAgICAgICAgICAgXAotICAgIFYoU1ZHRkVPRkZTRVRFTEVNRU5ULCBTVkdG
RU9mZnNldEVsZW1lbnQpICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoU1ZHRkVQ
T0lOVExJR0hURUxFTUVOVCwgU1ZHRkVQb2ludExpZ2h0RWxlbWVudCkgICAgICAgICAgICAgICAg
ICAgXAotICAgIFYoU1ZHRkVTUEVDVUxBUkxJR0hUSU5HRUxFTUVOVCwgU1ZHRkVTcGVjdWxhckxp
Z2h0aW5nRWxlbWVudCkgICAgICAgXAotICAgIFYoU1ZHRkVTUE9UTElHSFRFTEVNRU5ULCBTVkdG
RVNwb3RMaWdodEVsZW1lbnQpICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoU1ZHRkVUSUxF
RUxFTUVOVCwgU1ZHRkVUaWxlRWxlbWVudCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
XAotICAgIFYoU1ZHRkVUVVJCVUxFTkNFRUxFTUVOVCwgU1ZHRkVUdXJidWxlbmNlRWxlbWVudCkg
ICAgICAgICAgICAgICAgICAgXAotICAgIFYoU1ZHRklMVEVSRUxFTUVOVCwgU1ZHRmlsdGVyRWxl
bWVudCkKLSNlbHNlCi0jZGVmaW5lIFNWR19GSUxURVJTX0VMRU1FTlRfVFlQRVMoVikKLSNlbmRp
ZgotCi0jaWYgRU5BQkxFKFNWR19GT05UUykKLSNkZWZpbmUgU1ZHX0ZPTlRTX0VMRU1FTlRfVFlQ
RVMoVikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKFNWR0ZP
TlRFTEVNRU5ULCBTVkdGb250RWxlbWVudCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFwKLSAgICBWKFNWR0ZPTlRGQUNFRUxFTUVOVCwgU1ZHRm9udEZhY2VFbGVtZW50KSAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKFNWR0ZPTlRGQUNFRk9STUFURUxFTUVOVCwg
U1ZHRm9udEZhY2VGb3JtYXRFbGVtZW50KSAgICAgICAgICAgICAgIFwKLSAgICBWKFNWR0ZPTlRG
QUNFTkFNRUVMRU1FTlQsIFNWR0ZvbnRGYWNlTmFtZUVsZW1lbnQpICAgICAgICAgICAgICAgICAg
IFwKLSAgICBWKFNWR0ZPTlRGQUNFU1JDRUxFTUVOVCwgU1ZHRm9udEZhY2VTcmNFbGVtZW50KSAg
ICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKFNWR0ZPTlRGQUNFVVJJRUxFTUVOVCwgU1ZHRm9u
dEZhY2VVcmlFbGVtZW50KSAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKFNWR01JU1NJTkdH
TFlQSEVMRU1FTlQsIFNWR01pc3NpbmdHbHlwaEVsZW1lbnQpCi0jZWxzZQotI2RlZmluZSBTVkdf
Rk9OVFNfRUxFTUVOVF9UWVBFUyhWKQotI2VuZGlmCi0KLSNpZiBFTkFCTEUoU1ZHX0ZPUkVJR05f
T0JKRUNUKQotI2RlZmluZSBTVkdfRk9SRUlHTl9PQkpFQ1RfRUxFTUVOVF9UWVBFUyhWKSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoU1ZHRk9SRUlHTk9CSkVDVEVMRU1FTlQs
IFNWR0ZvcmVpZ25PYmplY3RFbGVtZW50KQotI2Vsc2UKLSNkZWZpbmUgU1ZHX0ZPUkVJR05fT0JK
RUNUX0VMRU1FTlRfVFlQRVMoVikKLSNlbmRpZgotCi0jaWYgRU5BQkxFKFNWR19VU0UpCi0jZGVm
aW5lIFNWR19VU0VfRUxFTUVOVF9UWVBFUyhWKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBcCi0gICAgVihTVkdVU0VFTEVNRU5ULCBTVkdVc2VFbGVtZW50KQotI2Vsc2UK
LSNkZWZpbmUgU1ZHX1VTRV9FTEVNRU5UX1RZUEVTKFYpCi0jZW5kaWYKLQotI2lmIEVOQUJMRShT
VkcpCi0jZGVmaW5lIFNWR19OT0RFX1RZUEVTKFYpICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBcCi0gICAgU1ZHX0FOSU1BVElPTl9FTEVNRU5UX1RZUEVTKFYp
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgU1ZHX0ZJTFRFUlNf
RUxFTUVOVF9UWVBFUyhWKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc
Ci0gICAgU1ZHX0ZPTlRTX0VMRU1FTlRfVFlQRVMoVikgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBcCi0gICAgU1ZHX0ZPUkVJR05fT0JKRUNUX0VMRU1FTlRfVFlQRVMo
VikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgU1ZHX1VTRV9FTEVNRU5U
X1RZUEVTKFYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0g
ICAgVihTVkdBRUxFTUVOVCwgU1ZHQUVsZW1lbnQpICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBcCi0gICAgVihTVkdBTFRHTFlQSEVMRU1FTlQsIFNWR0FsdEdseXBoRWxl
bWVudCkgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihTVkdDSVJDTEVFTEVNRU5U
LCBTVkdDaXJjbGVFbGVtZW50KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAg
VihTVkdDTElQUEFUSEVMRU1FTlQsIFNWR0NsaXBQYXRoRWxlbWVudCkgICAgICAgICAgICAgICAg
ICAgICAgICAgICBcCi0gICAgVihTVkdDVVJTT1JFTEVNRU5ULCBTVkdDdXJzb3JFbGVtZW50KSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihTVkdERUZTRUxFTUVOVCwgU1ZH
RGVmc0VsZW1lbnQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihT
VkdERVNDRUxFTUVOVCwgU1ZHRGVzY0VsZW1lbnQpICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBcCi0gICAgVihTVkdFTExJUFNFRUxFTUVOVCwgU1ZHRWxsaXBzZUVsZW1lbnQpICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihTVkdHRUxFTUVOVCwgU1ZHR0VsZW1l
bnQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihTVkdH
TFlQSEVMRU1FTlQsIFNWR0dseXBoRWxlbWVudCkgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBcCi0gICAgVihTVkdHUkFESUVOVEVMRU1FTlQsIFNWR0dyYWRpZW50RWxlbWVudCkgICAg
ICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihTVkdJTUFHRUVMRU1FTlQsIFNWR0ltYWdl
RWxlbWVudCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihTVkdMSU5F
QVJHUkFESUVOVEVMRU1FTlQsIFNWR0xpbmVhckdyYWRpZW50RWxlbWVudCkgICAgICAgICAgICAg
ICBcCi0gICAgVihTVkdMSU5FRUxFTUVOVCwgU1ZHTGluZUVsZW1lbnQpICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihTVkdNQVJLRVJFTEVNRU5ULCBTVkdNYXJrZXJF
bGVtZW50KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihTVkdNQVNLRUxF
TUVOVCwgU1ZHTWFza0VsZW1lbnQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc
Ci0gICAgVihTVkdNRVRBREFUQUVMRU1FTlQsIFNWR01ldGFkYXRhRWxlbWVudCkgICAgICAgICAg
ICAgICAgICAgICAgICAgICBcCi0gICAgVihTVkdQQVRIRUxFTUVOVCwgU1ZHUGF0aEVsZW1lbnQp
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihTVkdQQVRURVJORUxF
TUVOVCwgU1ZHUGF0dGVybkVsZW1lbnQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0g
ICAgVihTVkdQT0xZR09ORUxFTUVOVCwgU1ZHUG9seWdvbkVsZW1lbnQpICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBcCi0gICAgVihTVkdQT0xZTElORUVMRU1FTlQsIFNWR1BvbHlsaW5lRWxl
bWVudCkgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihTVkdSQURJQUxHUkFESUVO
VEVMRU1FTlQsIFNWR1JhZGlhbEdyYWRpZW50RWxlbWVudCkgICAgICAgICAgICAgICBcCi0gICAg
VihTVkdSRUNURUxFTUVOVCwgU1ZHUmVjdEVsZW1lbnQpICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBcCi0gICAgVihTVkdTQ1JJUFRFTEVNRU5ULCBTVkdTY3JpcHRFbGVtZW50KSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihTVkdTVE9QRUxFTUVOVCwgU1ZH
U3RvcEVsZW1lbnQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihT
VkdTVFlMRUVMRU1FTlQsIFNWR1N0eWxlRWxlbWVudCkgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBcCi0gICAgVihTVkdTVkdFTEVNRU5ULCBTVkdTVkdFbGVtZW50KSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihTVkdTV0lUQ0hFTEVNRU5ULCBTVkdT
d2l0Y2hFbGVtZW50KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihTVkdT
WU1CT0xFTEVNRU5ULCBTVkdTeW1ib2xFbGVtZW50KSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBcCi0gICAgVihTVkdURVhUQ09OVEVOVEVMRU1FTlQsIFNWR1RleHRDb250ZW50RWxlbWVu
dCkgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihTVkdURVhURUxFTUVOVCwgU1ZHVGV4dEVs
ZW1lbnQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihTVkdURVhU
UEFUSEVMRU1FTlQsIFNWR1RleHRQYXRoRWxlbWVudCkgICAgICAgICAgICAgICAgICAgICAgICAg
ICBcCi0gICAgVihTVkdURVhUUE9TSVRJT05JTkdFTEVNRU5ULCBTVkdUZXh0UG9zaXRpb25pbmdF
bGVtZW50KSAgICAgICAgICAgICBcCi0gICAgVihTVkdUSVRMRUVMRU1FTlQsIFNWR1RpdGxlRWxl
bWVudCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihTVkdUUkVGRUxF
TUVOVCwgU1ZHVFJlZkVsZW1lbnQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc
Ci0gICAgVihTVkdUU1BBTkVMRU1FTlQsIFNWR1RTcGFuRWxlbWVudCkgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBcCi0gICAgVihTVkdWSUVXRUxFTUVOVCwgU1ZHVmlld0VsZW1lbnQp
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihTVkdFTEVNRU5ULCBT
VkdFbGVtZW50KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0g
ICAgVihTVkdET0NVTUVOVCwgU1ZHRG9jdW1lbnQpCi0jZW5kaWYgIC8vIFNWRwotCi0KLSNpZiBF
TkFCTEUoV0VCX1NPQ0tFVFMpCi0jZGVmaW5lIFdFQlNPQ0tFVF9BQ1RJVkVfT0JKRUNUX1dSQVBQ
RVJfVFlQRVMoVikgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihXRUJTT0NLRVQsIFdl
YlNvY2tldCkKLSNlbHNlCi0jZGVmaW5lIFdFQlNPQ0tFVF9BQ1RJVkVfT0JKRUNUX1dSQVBQRVJf
VFlQRVMoVikKLSNlbmRpZgotCi0vLyBBQ1RJVkVfRE9NX09CSkVDVF9UWVBFUyBhcmUgRE9NX09C
SkVDVF9UWVBFUyB0aGF0IG5lZWQgc3BlY2lhbCB0cmVhdGVtZW50Ci0vLyBkdXJpbmcgR0MuCi0j
ZGVmaW5lIEFDVElWRV9ET01fT0JKRUNUX1RZUEVTKFYpICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBcCi0gICAgVihNRVNTQUdFUE9SVCwgTWVzc2FnZVBvcnQpICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihYTUxIVFRQUkVRVUVTVCwg
WE1MSHR0cFJlcXVlc3QpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAg
V09SS0VSX0FDVElWRV9PQkpFQ1RfV1JBUFBFUl9UWVBFUyhWKSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBcCi0gICAgU0hBUkVEX1dPUktFUl9BQ1RJVkVfT0JKRUNUX1dSQVBQRVJfVFlQ
RVMoVikgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgV0VCU09DS0VUX0FDVElWRV9PQkpF
Q1RfV1JBUFBFUl9UWVBFUyhWKSAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgRVZF
TlRTT1VSQ0VfQUNUSVZFX09CSkVDVF9XUkFQUEVSX1RZUEVTKFYpCi0KLS8vIE5PVEU6IERPTV9P
QkpFQ1RfVFlQRVMgaXMgc3BsaXQgaW50byB0d28gaGFsdmVzIGJlY2F1c2UKLS8vICAgICAgIFZp
c3VhbCBTdHVkaW8ncyBJbnRlbGxpbm9uc2Vuc2UgY3Jhc2hlcyB3aGVuIG1hY3JvcyBnZXQKLS8v
ICAgICAgIHRvbyBsYXJnZS4gIDEwLTI5LTA4Ci0vLyBET01fT0JKRUNUX1RZUEVTIGFyZSBub24t
bm9kZSBET00gdHlwZXMuCi0jZGVmaW5lIERPTV9PQkpFQ1RfVFlQRVNfMShWKSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihCQVJJTkZPLCBCYXJJbmZv
KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAg
VihCRUZPUkVMT0FERVZFTlQsIEJlZm9yZUxvYWRFdmVudCkgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBcCi0gICAgVihCTE9CLCBCbG9iKSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihDQU5WQVNHUkFESUVOVCwgQ2Fu
dmFzR3JhZGllbnQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihD
QU5WQVNQQVRURVJOLCBDYW52YXNQYXR0ZXJuKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBcCi0gICAgVihDQU5WQVNSRU5ERVJJTkdDT05URVhULCBDYW52YXNSZW5kZXJpbmdD
b250ZXh0KSAgICAgICAgICAgICAgICAgICBcCi0gICAgVihDQU5WQVNSRU5ERVJJTkdDT05URVhU
MkQsIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCkgICAgICAgICAgICAgICBcCi0gICAgVihDTElF
TlRSRUNULCBDbGllbnRSZWN0KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBcCi0gICAgVihDTElFTlRSRUNUTElTVCwgQ2xpZW50UmVjdExpc3QpICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihDTElQQk9BUkQsIENsaXBib2FyZCkgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihDT05TT0xF
LCBDb25zb2xlKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBcCi0gICAgVihDT01QT1NJVElPTkVWRU5ULCBDb21wb3NpdGlvbkV2ZW50KSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihDT1VOVEVSLCBDb3VudGVyKSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihDU1NDSEFSU0VU
UlVMRSwgQ1NTQ2hhcnNldFJ1bGUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc
Ci0gICAgVihDU1NGT05URkFDRVJVTEUsIENTU0ZvbnRGYWNlUnVsZSkgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBcCi0gICAgVihDU1NJTVBPUlRSVUxFLCBDU1NJbXBvcnRSdWxlKSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihDU1NNRURJQVJVTEUs
IENTU01lZGlhUnVsZSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0g
ICAgVihDU1NQQUdFUlVMRSwgQ1NTUGFnZVJ1bGUpICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBcCi0gICAgVihDU1NQUklNSVRJVkVWQUxVRSwgQ1NTUHJpbWl0aXZlVmFs
dWUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihDU1NSVUxFLCBDU1NSdWxl
KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAg
VihDU1NSVUxFTElTVCwgQ1NTUnVsZUxpc3QpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBcCi0gICAgVihDU1NTVFlMRURFQ0xBUkFUSU9OLCBDU1NTdHlsZURlY2xhcmF0
aW9uKSAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihDU1NTVFlMRVJVTEUsIENTU1N0
eWxlUnVsZSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihD
U1NTVFlMRVNIRUVULCBDU1NTdHlsZVNoZWV0KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBcCi0gICAgVihDU1NWQUxVRSwgQ1NTVmFsdWUpICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihDU1NWQUxVRUxJU1QsIENTU1ZhbHVl
TGlzdCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihDU1NW
QVJJQUJMRVNERUNMQVJBVElPTiwgQ1NTVmFyaWFibGVzRGVjbGFyYXRpb24pICAgICAgICAgICAg
ICAgICBcCi0gICAgVihDU1NWQVJJQUJMRVNSVUxFLCBDU1NWYXJpYWJsZXNSdWxlKSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihET01DT1JFRVhDRVBUSU9OLCBET01Db3Jl
RXhjZXB0aW9uKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihET01JTVBM
RU1FTlRBVElPTiwgRE9NSW1wbGVtZW50YXRpb24pICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBcCi0gICAgVihET01QQVJTRVIsIERPTVBhcnNlcikgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihET01TRUxFQ1RJT04sIERPTVNlbGVjdGlvbikg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihET01XSU5ET1cs
IERPTVdpbmRvdykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc
Ci0gICAgVihFVkVOVCwgRXZlbnQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBcCi0gICAgVihFVkVOVEVYQ0VQVElPTiwgRXZlbnRFeGNlcHRpb24p
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihGSUxFLCBGaWxlKSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0g
ICAgVihGSUxFTElTVCwgRmlsZUxpc3QpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBcCi0gICAgVihISVNUT1JZLCBIaXN0b3J5KSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihIVE1MQUxMQ09MTEVDVElP
TiwgSFRNTEFsbENvbGxlY3Rpb24pICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAg
VihIVE1MQ09MTEVDVElPTiwgSFRNTENvbGxlY3Rpb24pICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBcCi0gICAgVihIVE1MT1BUSU9OU0NPTExFQ1RJT04sIEhUTUxPcHRpb25zQ29s
bGVjdGlvbikgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihJTUFHRURBVEEsIEltYWdlRGF0
YSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihD
QU5WQVNQSVhFTEFSUkFZLCBDYW52YXNQaXhlbEFycmF5KSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBcCi0gICAgVihLRVlCT0FSREVWRU5ULCBLZXlib2FyZEV2ZW50KSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihMT0NBVElPTiwgTG9jYXRpb24pICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihNRURJ
QSwgTWVkaWEpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBcCi0gICAgVihNRURJQUxJU1QsIE1lZGlhTGlzdCkKLQotI2RlZmluZSBET01fT0JKRUNU
X1RZUEVTXzIoVikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAot
ICAgIFYoTUVTU0FHRUNIQU5ORUwsIE1lc3NhZ2VDaGFubmVsKSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXAotICAgIFYoTUVTU0FHRUVWRU5ULCBNZXNzYWdlRXZlbnQpICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoTUlNRVRZUEUsIE1pbWVU
eXBlKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAg
IFYoTUlNRVRZUEVBUlJBWSwgTWltZVR5cGVBcnJheSkgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgXAotICAgIFYoTU9VU0VFVkVOVCwgTW91c2VFdmVudCkgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoTVVUQVRJT05FVkVOVCwgTXV0
YXRpb25FdmVudCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYo
TkFNRUROT0RFTUFQLCBOYW1lZE5vZGVNYXApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXAotICAgIFYoTkFWSUdBVE9SLCBOYXZpZ2F0b3IpICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoTk9ERUZJTFRFUiwgTm9kZUZpbHRl
cikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoTk9E
RUlURVJBVE9SLCBOb2RlSXRlcmF0b3IpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgXAotICAgIFYoTk9ERUxJU1QsIE5vZGVMaXN0KSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoT1ZFUkZMT1dFVkVOVCwgT3ZlcmZsb3dF
dmVudCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoUEFHRVRS
QU5TSVRJT05FVkVOVCwgUGFnZVRyYW5zaXRpb25FdmVudCkgICAgICAgICAgICAgICAgICAgICAg
ICAgXAotICAgIFYoUExVR0lOLCBQbHVnaW4pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoUExVR0lOQVJSQVksIFBsdWdpbkFycmF5KSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoUE9QU1RBVEVF
VkVOVCwgUG9wU3RhdGVFdmVudCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
XAotICAgIFYoUFJPR1JFU1NFVkVOVCwgUHJvZ3Jlc3NFdmVudCkgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXAotICAgIFYoUkFOR0UsIFJhbmdlKSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoUkFOR0VFWENFUFRJ
T04sIFJhbmdlRXhjZXB0aW9uKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAot
ICAgIFYoUkVDVCwgUmVjdCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXAotICAgIFYoUkdCQ09MT1IsIFJHQkNvbG9yKSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoU0NSRUVOLCBTY3JlZW4p
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAg
IFYoU1RZTEVTSEVFVCwgU3R5bGVTaGVldCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgXAotICAgIFYoU1RZTEVTSEVFVExJU1QsIFN0eWxlU2hlZXRMaXN0KSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoVEVYVEVWRU5ULCBUZXh0RXZl
bnQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYo
VEVYVE1FVFJJQ1MsIFRleHRNZXRyaWNzKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXAotICAgIFYoVFJFRVdBTEtFUiwgVHJlZVdhbGtlcikgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoVUlFVkVOVCwgVUlFdmVudCkgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoVkFM
SURJVFlTVEFURSwgVmFsaWRpdHlTdGF0ZSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgXAotICAgIFYoV0VCS0lUQU5JTUFUSU9ORVZFTlQsIFdlYktpdEFuaW1hdGlvbkV2ZW50
KSAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoV0VCS0lUQ1NTS0VZRlJBTUVSVUxFLCBX
ZWJLaXRDU1NLZXlmcmFtZVJ1bGUpICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoV0VCS0lU
Q1NTS0VZRlJBTUVTUlVMRSwgV2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZSkgICAgICAgICAgICAgICAg
ICAgXAotICAgIFYoV0VCS0lUQ1NTTUFUUklYLCBXZWJLaXRDU1NNYXRyaXgpICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoV0VCS0lUUE9JTlQsIFdlYktpdFBvaW50KSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoV0VCS0lUQ1NT
VFJBTlNGT1JNVkFMVUUsIFdlYktpdENTU1RyYW5zZm9ybVZhbHVlKSAgICAgICAgICAgICAgICAg
XAotICAgIFYoV0VCS0lUVFJBTlNJVElPTkVWRU5ULCBXZWJLaXRUcmFuc2l0aW9uRXZlbnQpICAg
ICAgICAgICAgICAgICAgICAgXAotICAgIFYoV0hFRUxFVkVOVCwgV2hlZWxFdmVudCkgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoWE1MSFRUUFJFUVVF
U1RVUExPQUQsIFhNTEh0dHBSZXF1ZXN0VXBsb2FkKSAgICAgICAgICAgICAgICAgICAgICAgXAot
ICAgIFYoWE1MSFRUUFJFUVVFU1RFWENFUFRJT04sIFhNTEh0dHBSZXF1ZXN0RXhjZXB0aW9uKSAg
ICAgICAgICAgICAgICAgXAotICAgIFYoWE1MSFRUUFJFUVVFU1RQUk9HUkVTU0VWRU5ULCBYTUxI
dHRwUmVxdWVzdFByb2dyZXNzRXZlbnQpICAgICAgICAgXAotICAgIFYoWE1MU0VSSUFMSVpFUiwg
WE1MU2VyaWFsaXplcikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAg
IEFDVElWRV9ET01fT0JKRUNUX1RZUEVTKFYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgXAotICAgIEFQUExJQ0FUSU9OQ0FDSEVfTk9OTk9ERV9XUkFQUEVSX1RZUEVT
KFYpICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIERBVEFHUklEX05PTk5PREVfVFlQ
RVMoVikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFZJ
REVPX05PTk5PREVfVFlQRVMoVikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXAotICAgIE5PVElGSUNBVElPTlNfTk9OTk9ERV9XUkFQUEVSX1RZUEVTKFYpICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFNIQVJFRF9XT1JLRVJfTk9OTk9ERV9X
UkFQUEVSX1RZUEVTKFYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFdPUktF
Ul9OT05OT0RFX1dSQVBQRVJfVFlQRVMoVikKLQotI2lmIEVOQUJMRShEQVRBQkFTRSkKLSNkZWZp
bmUgRE9NX09CSkVDVF9EQVRBQkFTRV9UWVBFUyhWKSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFwKLSAgICBWKERBVEFCQVNFLCBEYXRhYmFzZSkgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKFNRTEVSUk9SLCBTUUxFcnJvcikg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKFNR
TFJFU1VMVFNFVCwgU1FMUmVzdWx0U2V0KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFwKLSAgICBWKFNRTFJFU1VMVFNFVFJPV0xJU1QsIFNRTFJlc3VsdFNldFJvd0xpc3Qp
ICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKFNRTFRSQU5TQUNUSU9OLCBTUUxUcmFu
c2FjdGlvbikKLSNlbHNlCi0jZGVmaW5lIERPTV9PQkpFQ1RfREFUQUJBU0VfVFlQRVMoVikKLSNl
bmRpZgotCi0jaWYgRU5BQkxFKERPTV9TVE9SQUdFKQotI2RlZmluZSBET01fT0JKRUNUX1NUT1JB
R0VfVFlQRVMoVikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYo
U1RPUkFHRSwgU3RvcmFnZSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXAotICAgIFYoU1RPUkFHRUVWRU5ULCBTdG9yYWdlRXZlbnQpCi0jZWxzZQotI2Rl
ZmluZSBET01fT0JKRUNUX1NUT1JBR0VfVFlQRVMoVikKLSNlbmRpZgotCi0jaWYgRU5BQkxFKElO
REVYRURfREFUQUJBU0UpCi0jZGVmaW5lIERPTV9PQkpFQ1RfSU5ERVhFRF9EQVRBQkFTRV9UWVBF
UyhWKSAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihJREJEQVRBQkFTRUVSUk9S
LCBJREJEYXRhYmFzZUVycm9yKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAg
VihJREJEQVRBQkFTRUVYQ0VQVElPTiwgSURCRGF0YWJhc2VFeGNlcHRpb24pICAgICAgICAgICAg
ICAgICAgICAgICBcCi0gICAgVihJREJEQVRBQkFTRVJFUVVFU1QsIElEQkRhdGFiYXNlUmVxdWVz
dCkgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihJREJSRVFVRVNULCBJREJSZXF1
ZXN0KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihJ
TkRFWEVEREFUQUJBU0VSRVFVRVNULCBJbmRleGVkRGF0YWJhc2VSZXF1ZXN0KQotI2Vsc2UKLSNk
ZWZpbmUgRE9NX09CSkVDVF9JTkRFWEVEX0RBVEFCQVNFX1RZUEVTKFYpCi0jZW5kaWYKLQotI2lm
IEVOQUJMRShXT1JLRVJTKQotI2RlZmluZSBET01fT0JKRUNUX1dPUktFUlNfVFlQRVMoVikgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoRVJST1JFVkVOVCwgRXJy
b3JFdmVudCkKLSNlbHNlCi0jZGVmaW5lIERPTV9PQkpFQ1RfV09SS0VSU19UWVBFUyhWKQotI2Vu
ZGlmCi0KLSNpZiBFTkFCTEUoM0RfQ0FOVkFTKQotI2RlZmluZSBET01fT0JKRUNUXzNEX0NBTlZB
U19UWVBFUyhWKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoV0VC
R0xBQ1RJVkVJTkZPLCBXZWJHTEFjdGl2ZUluZm8pICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgXAotICAgIFYoV0VCR0xBUlJBWSwgV2ViR0xBcnJheSkgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoV0VCR0xBUlJBWUJVRkZFUiwgV2ViR0xB
cnJheUJ1ZmZlcikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoV0VCR0xC
VUZGRVIsIFdlYkdMQnVmZmVyKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXAotICAgIFYoV0VCR0xCWVRFQVJSQVksIFdlYkdMQnl0ZUFycmF5KSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoV0VCR0xDT05URVhUQVRUUklCVVRFUywgV2Vi
R0xDb250ZXh0QXR0cmlidXRlcykgICAgICAgICAgICAgICAgICAgXAotICAgIFYoV0VCR0xGTE9B
VEFSUkFZLCBXZWJHTEZsb2F0QXJyYXkpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
XAotICAgIFYoV0VCR0xGUkFNRUJVRkZFUiwgV2ViR0xGcmFtZWJ1ZmZlcikgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXAotICAgIFYoV0VCR0xJTlRBUlJBWSwgV2ViR0xJbnRBcnJheSkg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoV0VCR0xQUk9HUkFN
LCBXZWJHTFByb2dyYW0pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAot
ICAgIFYoV0VCR0xSRU5ERVJCVUZGRVIsIFdlYkdMUmVuZGVyYnVmZmVyKSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXAotICAgIFYoV0VCR0xSRU5ERVJJTkdDT05URVhULCBXZWJHTFJlbmRl
cmluZ0NvbnRleHQpICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoV0VCR0xTSEFERVIsIFdl
YkdMU2hhZGVyKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAg
IFYoV0VCR0xTSE9SVEFSUkFZLCBXZWJHTFNob3J0QXJyYXkpICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgXAotICAgIFYoV0VCR0xURVhUVVJFLCBXZWJHTFRleHR1cmUpICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoV0VCR0xVTklGT1JNTE9DQVRJ
T04sIFdlYkdMVW5pZm9ybUxvY2F0aW9uKSAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYo
V0VCR0xVTlNJR05FREJZVEVBUlJBWSwgV2ViR0xVbnNpZ25lZEJ5dGVBcnJheSkgICAgICAgICAg
ICAgICAgICAgXAotICAgIFYoV0VCR0xVTlNJR05FRElOVEFSUkFZLCBXZWJHTFVuc2lnbmVkSW50
QXJyYXkpICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoV0VCR0xVTlNJR05FRFNIT1JUQVJS
QVksIFdlYkdMVW5zaWduZWRTaG9ydEFycmF5KQotI2Vsc2UKLSNkZWZpbmUgRE9NX09CSkVDVF8z
RF9DQU5WQVNfVFlQRVMoVikKLSNlbmRpZgotCi0jaWYgRU5BQkxFKFhQQVRIKQotI2RlZmluZSBE
T01fT0JKRUNUX1hQQVRIX1RZUEVTKFYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgXAotICAgIFYoWFBBVEhFVkFMVUFUT1IsIFhQYXRoRXZhbHVhdG9yKSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoWFBBVEhFWENFUFRJT04sIFhQYXRoRXhj
ZXB0aW9uKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoWFBBVEhF
WFBSRVNTSU9OLCBYUGF0aEV4cHJlc3Npb24pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXAotICAgIFYoWFBBVEhOU1JFU09MVkVSLCBYUGF0aE5TUmVzb2x2ZXIpICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoWFBBVEhSRVNVTFQsIFhQYXRoUmVzdWx0KQot
I2Vsc2UKLSNkZWZpbmUgRE9NX09CSkVDVF9YUEFUSF9UWVBFUyhWKQotI2VuZGlmCi0KLSNpZiBF
TkFCTEUoWFNMVCkKLSNkZWZpbmUgRE9NX09CSkVDVF9YU0xUX1RZUEVTKFYpICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKFhTTFRQUk9DRVNTT1IsIFhTTFRQ
cm9jZXNzb3IpCi0jZWxzZQotI2RlZmluZSBET01fT0JKRUNUX1hTTFRfVFlQRVMoVikKLSNlbmRp
ZgotCi0jaWYgRU5BQkxFKElOU1BFQ1RPUikKLSNkZWZpbmUgRE9NX09CSkVDVF9JTlNQRUNUT1Jf
VFlQRVMoVikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKElOU1BF
Q1RPUkJBQ0tFTkQsIEluc3BlY3RvckJhY2tlbmQpICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFwKLSAgICBWKElOU1BFQ1RPUkZST05URU5ESE9TVCwgSW5zcGVjdG9yRnJvbnRlbmRIb3N0
KSAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKElOSkVDVEVEU0NSSVBUSE9TVCwgSW5qZWN0
ZWRTY3JpcHRIb3N0KQotI2Vsc2UKLSNkZWZpbmUgRE9NX09CSkVDVF9JTlNQRUNUT1JfVFlQRVMo
VikKLSNlbmRpZgotCi0jZGVmaW5lIERPTV9PQkpFQ1RfR0VPTE9DQVRJT05fVFlQRVMoVikgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihDT09SRElOQVRFUywgQ29vcmRp
bmF0ZXMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihH
RU9MT0NBVElPTiwgR2VvbG9jYXRpb24pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBcCi0gICAgVihHRU9QT1NJVElPTiwgR2VvcG9zaXRpb24pICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihQT1NJVElPTkVSUk9SLCBQb3NpdGlv
bkVycm9yKQotCi0jaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKLSNkZWZpbmUgRE9NX09CSkVDVF9U
T1VDSF9FVkVOVF9UWVBFUyhWKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAg
ICBWKFRPVUNILCBUb3VjaCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFwKLSAgICBWKFRPVUNIRVZFTlQsIFRvdWNoRXZlbnQpICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKFRPVUNITElTVCwgVG91Y2hM
aXN0KQotI2Vsc2UKLSNkZWZpbmUgRE9NX09CSkVDVF9UT1VDSF9FVkVOVF9UWVBFUyhWKQotI2Vu
ZGlmCi0KLSNkZWZpbmUgRE9NX09CSkVDVF9UWVBFUyhWKSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBET01fT0JKRUNUX1RZUEVTXzEoVikgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBET01fT0JKRUNU
X1RZUEVTXzIoVikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFwKLSAgICBET01fT0JKRUNUX0RBVEFCQVNFX1RZUEVTKFYpICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFwKLSAgICBET01fT0JKRUNUX1NUT1JBR0VfVFlQRVMoVikgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBET01fT0JKRUNUX0lO
REVYRURfREFUQUJBU0VfVFlQRVMoVikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK
LSAgICBET01fT0JKRUNUX1dPUktFUlNfVFlQRVMoVikgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFwKLSAgICBET01fT0JKRUNUXzNEX0NBTlZBU19UWVBFUyhWKSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBET01fT0JKRUNUX1hQQVRI
X1RZUEVTKFYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAg
ICBET01fT0JKRUNUX1hTTFRfVFlQRVMoVikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFwKLSAgICBET01fT0JKRUNUX0lOU1BFQ1RPUl9UWVBFUyhWKSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBET01fT0JKRUNUX0dFT0xPQ0FU
SU9OX1RZUEVTKFYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBE
T01fT0JKRUNUX1RPVUNIX0VWRU5UX1RZUEVTKFYpCi0KLSNpZiBFTkFCTEUoU1ZHKQotLy8gU1ZH
X09CSkVDVF9UWVBFUyBhcmUgc3ZnIG5vbi1ub2RlLCBub24tcG9kIHR5cGVzLgotI2RlZmluZSBT
VkdfT0JKRUNUX1RZUEVTKFYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgXAotICAgIFYoU1ZHQU5JTUFURURBTkdMRSwgU1ZHQW5pbWF0ZWRBbmdsZSkgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoU1ZHQU5JTUFURURCT09MRUFOLCBTVkdB
bmltYXRlZEJvb2xlYW4pICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoU1ZHQU5J
TUFURURFTlVNRVJBVElPTiwgU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbikgICAgICAgICAgICAgICAg
ICAgXAotICAgIFYoU1ZHQU5JTUFURURJTlRFR0VSLCBTVkdBbmltYXRlZEludGVnZXIpICAgICAg
ICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoU1ZHQU5JTUFURURMRU5HVEgsIFNWR0FuaW1h
dGVkTGVuZ3RoKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoU1ZHQU5JTUFU
RURMRU5HVEhMSVNULCBTVkdBbmltYXRlZExlbmd0aExpc3QpICAgICAgICAgICAgICAgICAgICAg
XAotICAgIFYoU1ZHQU5JTUFURUROVU1CRVIsIFNWR0FuaW1hdGVkTnVtYmVyKSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXAotICAgIFYoU1ZHQU5JTUFURUROVU1CRVJMSVNULCBTVkdBbmlt
YXRlZE51bWJlckxpc3QpICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoU1ZHQU5JTUFURURQ
UkVTRVJWRUFTUEVDVFJBVElPLCBTVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8pICAgXAot
ICAgIFYoU1ZHQU5JTUFURURSRUNULCBTVkdBbmltYXRlZFJlY3QpICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXAotICAgIFYoU1ZHQU5JTUFURURTVFJJTkcsIFNWR0FuaW1hdGVkU3Ry
aW5nKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoU1ZHQU5JTUFURURUUkFO
U0ZPUk1MSVNULCBTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3QpICAgICAgICAgICAgICAgXAotICAg
IFYoU1ZHQ09MT1IsIFNWR0NvbG9yKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgXAotICAgIFYoU1ZHRUxFTUVOVElOU1RBTkNFLCBTVkdFbGVtZW50SW5zdGFu
Y2UpICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoU1ZHRUxFTUVOVElOU1RBTkNF
TElTVCwgU1ZHRWxlbWVudEluc3RhbmNlTGlzdCkgICAgICAgICAgICAgICAgICAgXAotICAgIFYo
U1ZHRVhDRVBUSU9OLCBTVkdFeGNlcHRpb24pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXAotICAgIFYoU1ZHTEVOR1RITElTVCwgU1ZHTGVuZ3RoTGlzdCkgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoU1ZHTlVNQkVSTElTVCwgU1ZHTnVt
YmVyTGlzdCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoU1ZH
UEFJTlQsIFNWR1BhaW50KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgXAotICAgIFYoU1ZHUEFUSFNFRywgU1ZHUGF0aFNlZykgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoU1ZHUEFUSFNFR0FSQ0FCUywgU1ZHUGF0
aFNlZ0FyY0FicykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoU1ZHUEFU
SFNFR0FSQ1JFTCwgU1ZHUGF0aFNlZ0FyY1JlbCkgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXAotICAgIFYoU1ZHUEFUSFNFR0NMT1NFUEFUSCwgU1ZHUGF0aFNlZ0Nsb3NlUGF0aCkgICAg
ICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoU1ZHUEFUSFNFR0NVUlZFVE9DVUJJQ0FCUywg
U1ZHUGF0aFNlZ0N1cnZldG9DdWJpY0FicykgICAgICAgICAgICAgXAotICAgIFYoU1ZHUEFUSFNF
R0NVUlZFVE9DVUJJQ1JFTCwgU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1JlbCkgICAgICAgICAgICAg
XAotICAgIFYoU1ZHUEFUSFNFR0NVUlZFVE9DVUJJQ1NNT09USEFCUywgU1ZHUGF0aFNlZ0N1cnZl
dG9DdWJpY1Ntb290aEFicykgXAotICAgIFYoU1ZHUEFUSFNFR0NVUlZFVE9DVUJJQ1NNT09USFJF
TCwgU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aFJlbCkgXAotICAgIFYoU1ZHUEFUSFNFR0NV
UlZFVE9RVUFEUkFUSUNBQlMsIFNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljQWJzKSAgICAgXAot
ICAgIFYoU1ZHUEFUSFNFR0NVUlZFVE9RVUFEUkFUSUNSRUwsIFNWR1BhdGhTZWdDdXJ2ZXRvUXVh
ZHJhdGljUmVsKSAgICAgXAotICAgIFYoU1ZHUEFUSFNFR0NVUlZFVE9RVUFEUkFUSUNTTU9PVEhB
QlMsIFNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3RoQWJzKVwKLSAgICBWKFNWR1BBVEhT
RUdDVVJWRVRPUVVBRFJBVElDU01PT1RIUkVMLCBTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Nt
b290aFJlbClcCi0gICAgVihTVkdQQVRIU0VHTElORVRPQUJTLCBTVkdQYXRoU2VnTGluZXRvQWJz
KSAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihTVkdQQVRIU0VHTElORVRPSE9SSVpP
TlRBTEFCUywgU1ZHUGF0aFNlZ0xpbmV0b0hvcml6b250YWxBYnMpICAgICBcCi0gICAgVihTVkdQ
QVRIU0VHTElORVRPSE9SSVpPTlRBTFJFTCwgU1ZHUGF0aFNlZ0xpbmV0b0hvcml6b250YWxSZWwp
ICAgICBcCi0gICAgVihTVkdQQVRIU0VHTElORVRPUkVMLCBTVkdQYXRoU2VnTGluZXRvUmVsKSAg
ICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihTVkdQQVRIU0VHTElORVRPVkVSVElDQUxB
QlMsIFNWR1BhdGhTZWdMaW5ldG9WZXJ0aWNhbEFicykgICAgICAgICBcCi0gICAgVihTVkdQQVRI
U0VHTElORVRPVkVSVElDQUxSRUwsIFNWR1BhdGhTZWdMaW5ldG9WZXJ0aWNhbFJlbCkgICAgICAg
ICBcCi0gICAgVihTVkdQQVRIU0VHTElTVCwgU1ZHUGF0aFNlZ0xpc3QpICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihTVkdQQVRIU0VHTU9WRVRPQUJTLCBTVkdQYXRo
U2VnTW92ZXRvQWJzKSAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihTVkdQQVRIU0VH
TU9WRVRPUkVMLCBTVkdQYXRoU2VnTW92ZXRvUmVsKSAgICAgICAgICAgICAgICAgICAgICAgICBc
Ci0gICAgVihTVkdQT0lOVExJU1QsIFNWR1BvaW50TGlzdCkgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBcCi0gICAgVihTVkdSRU5ERVJJTkdJTlRFTlQsIFNWR1JlbmRlcmlu
Z0ludGVudCkgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihTVkdTVFJJTkdMSVNU
LCBTVkdTdHJpbmdMaXN0KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0g
ICAgVihTVkdUUkFOU0ZPUk1MSVNULCBTVkdUcmFuc2Zvcm1MaXN0KSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBcCi0gICAgVihTVkdVTklUVFlQRVMsIFNWR1VuaXRUeXBlcykgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihTVkdaT09NRVZFTlQsIFNW
R1pvb21FdmVudCkKLQotLy8gU1ZHIFBPRCB0eXBlcyBzaG91bGQgbGlzdCBhbGwgdHlwZXMgd2hv
c2UgSURMIGhhcyBQT0RUeXBlIGRlY2xhcmF0aW9uLgotI2RlZmluZSBTVkdfUE9EX1RZUEVTKFYp
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYo
U1ZHQU5HTEUsIFNWR0FuZ2xlKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXAotICAgIFYoU1ZHTEVOR1RILCBTVkdMZW5ndGgpICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoU1ZHUFJFU0VSVkVBU1BFQ1RSQVRJ
TywgU1ZHUHJlc2VydmVBc3BlY3RSYXRpbykgICAgICAgICAgICAgICAgICAgXAotICAgIFYoU1ZH
VFJBTlNGT1JNLCBTVkdUcmFuc2Zvcm0pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgXAotICAgIFYoU1ZHTUFUUklYLCBTVkdNYXRyaXgpICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoU1ZHTlVNQkVSLCBTVkdOdW1iZXIpICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoU1ZHUE9J
TlQsIFNWR1BvaW50KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXAotICAgIFYoU1ZHUkVDVCwgU1ZHUmVjdCkKLQotLy8gUE9EIHR5cGVzIGNhbiBoYXZlIGRp
ZmZlcmVudCBpbXBsZW1lbnRhdGlvbiBuYW1lcywgc2VlIENvZGVHZW5lcmF0ZVY4LnBtLgotI2Rl
ZmluZSBTVkdfUE9EX05BVElWRV9UWVBFUyhWKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgXAotICAgIFYoU1ZHQU5HTEUsIFNWR0FuZ2xlKSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoU1ZHTEVOR1RILCBTVkdMZW5n
dGgpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYo
U1ZHUFJFU0VSVkVBU1BFQ1RSQVRJTywgU1ZHUHJlc2VydmVBc3BlY3RSYXRpbykgICAgICAgICAg
ICAgICAgICAgXAotICAgIFYoU1ZHVFJBTlNGT1JNLCBTVkdUcmFuc2Zvcm0pICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoU1ZHTUFUUklYLCBBZmZpbmVUcmFu
c2Zvcm0pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoU1ZH
TlVNQkVSLCBmbG9hdCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgXAotICAgIFYoU1ZHUE9JTlQsIEZsb2F0UG9pbnQpICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoU1ZHUkVDVCwgRmxvYXRSZWN0KQotCi0v
LyBTaG91bGRuJ3QgZ2VuZXJhdGUgY29kZSBmb3IgdGhlc2UgdHdvIHR5cGVzLgotI2RlZmluZSBT
VkdfTk9fV1JBUFBFUl9UWVBFUyhWKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgXAotICAgIFYoU1ZHVVJJUkVGRVJFTkNFLCBTVkdVUklSZWZlcmVuY2UpICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoU1ZHQU5JTUFURURQT0lOVFMsIFNWR0Fu
aW1hdGVkUG9pbnRzKQotCi0vLyBTVkdfTk9OTk9ERV9UWVBFUyBhcmUgU1ZHIG5vbi1ub2RlIG9i
amVjdCB0eXBlcywgcG9kIHR5cHMgYW5kCi0vLyBudW1lcmljYWwgdHlwZXMuCi0jZGVmaW5lIFNW
R19OT05OT0RFX1RZUEVTKFYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBcCi0gICAgU1ZHX09CSkVDVF9UWVBFUyhWKSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgU1ZHX1BPRF9UWVBFUyhWKQotI2VuZGlmICAv
LyBTVkcKLQotLy8gRVZFTlRUQVJHRVQsIEVWRU5UTElTVEVORVIsIGFuZCBOUE9CSkVDVCBkbyBu
b3QgaGF2ZSBWOCB3cmFwcGVycy4KLSNkZWZpbmUgRE9NX05PX1dSQVBQRVJfVFlQRVMoVikgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKEVWRU5UVEFSR0VU
LCBFdmVudFRhcmdldCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK
LSAgICBWKEVWRU5UTElTVEVORVIsIEV2ZW50TGlzdGVuZXIpICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFwKLSAgICBWKE5QT0JKRUNULCBOUE9iamVjdCkKLQotI2lmIEVOQUJM
RShTVkcpCi0jZGVmaW5lIFdSQVBQRVJfVFlQRVMoVikgRE9NX05PREVfVFlQRVMoVikgRE9NX09C
SkVDVF9UWVBFUyhWKSBTVkdfTk9ERV9UWVBFUyhWKSBTVkdfTk9OTk9ERV9UWVBFUyhWKQotI2Rl
ZmluZSBOT19XUkFQUEVSX1RZUEVTKFYpIERPTV9OT19XUkFQUEVSX1RZUEVTKFYpIFNWR19OT19X
UkFQUEVSX1RZUEVTKFYpCi0jZWxzZSAgLy8gU1ZHCi0jZGVmaW5lIFdSQVBQRVJfVFlQRVMoVikg
RE9NX05PREVfVFlQRVMoVikgRE9NX09CSkVDVF9UWVBFUyhWKQotI2RlZmluZSBOT19XUkFQUEVS
X1RZUEVTKFYpIERPTV9OT19XUkFQUEVSX1RZUEVTKFYpCi0jZW5kaWYgIC8vIFNWRwotCi0jZGVm
aW5lIEFMTF9XUkFQUEVSX1RZUEVTKFYpIFdSQVBQRVJfVFlQRVMoVikgTk9fV1JBUFBFUl9UWVBF
UyhWKQotCi0gICAgY2xhc3MgVjhDbGFzc0luZGV4IHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIC8v
IFR5cGUgbXVzdCBzdGFydCBhdCBub24tbmVnYXRpdmUgbnVtYmVycy4gU2VlIFRvSW50LCBGcm9t
SW50LgotICAgICAgICBlbnVtIFY4V3JhcHBlclR5cGUgewotICAgICAgICAgICAgSU5WQUxJRF9D
TEFTU19JTkRFWCA9IDAsCi0KLSNkZWZpbmUgREVGSU5FX0VOVU0obmFtZSwgdHlwZSkgbmFtZSwg
Ci0gICAgICAgICAgICBBTExfV1JBUFBFUl9UWVBFUyhERUZJTkVfRU5VTSkKLSN1bmRlZiBERUZJ
TkVfRU5VTQotCi0gICAgICAgICAgICBDTEFTU0lOREVYX0VORCwKLSAgICAgICAgICAgIFdSQVBQ
RVJfVFlQRV9DT1VOVCA9IENMQVNTSU5ERVhfRU5ECi0gICAgICAgIH07Ci0KLSAgICAgICAgLy8g
RklYTUU6IENvbnZlcnQgdG8gdG9JbnQgYWZ0ZXIgYWxsIHRoZSBiaW5kaW5ncyBhcmUgaW4gb25l
IHBsYWNlLgotICAgICAgICBzdGF0aWMgaW50IFRvSW50KFY4V3JhcHBlclR5cGUgdHlwZSkgeyBy
ZXR1cm4gc3RhdGljX2Nhc3Q8aW50Pih0eXBlKTsgfQotCi0gICAgICAgIC8vIEZJWE1FOiBDb252
ZXJ0IHRvIGZyb21JbnQgYWZ0ZXIgYWxsIHRoZSBiaW5kaW5ncyBhcmUgaW4gb25lIHBsYWNlLgot
ICAgICAgICBzdGF0aWMgVjhXcmFwcGVyVHlwZSBGcm9tSW50KGludCB2KSB7Ci0gICAgICAgICAg
ICBBU1NFUlQoSU5WQUxJRF9DTEFTU19JTkRFWCA8PSB2ICYmIHYgPCBDTEFTU0lOREVYX0VORCk7
Ci0gICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8VjhXcmFwcGVyVHlwZT4odik7Ci0gICAg
ICAgIH0KLSAgICB9OwotCiAgICAgY2xhc3MgQWN0aXZlRE9NT2JqZWN0OwogCisgICAgc3RhdGlj
IGNvbnN0IGludCB2OERPTVdyYXBwZXJUeXBlSW5kZXggPSAwOworICAgIHN0YXRpYyBjb25zdCBp
bnQgdjhET01XcmFwcGVyT2JqZWN0SW5kZXggPSAxOworICAgIHN0YXRpYyBjb25zdCBpbnQgdjhE
ZWZhdWx0V3JhcHBlckludGVybmFsRmllbGRDb3VudCA9IDI7CisKICAgICB0eXBlZGVmIHY4OjpQ
ZXJzaXN0ZW50PHY4OjpGdW5jdGlvblRlbXBsYXRlPiAoKkdldFRlbXBsYXRlRnVuY3Rpb24pKCk7
CiAgICAgdHlwZWRlZiB2b2lkICgqRGVyZWZPYmplY3RGdW5jdGlvbikodm9pZCopOwogICAgIHR5
cGVkZWYgQWN0aXZlRE9NT2JqZWN0KiAoKlRvQWN0aXZlRE9NT2JqZWN0RnVuY3Rpb24pKHY4OjpI
YW5kbGU8djg6Ok9iamVjdD4pOwpAQCAtNjk3LDExICs2MiwxMCBAQAogICAgICAgICAgICAgcmV0
dXJuIHRvQWN0aXZlRE9NT2JqZWN0RnVuY3Rpb24ob2JqZWN0KTsKICAgICAgICAgfQogCi0gICAg
ICAgIGNvbnN0IGludCBpbmRleDsKICAgICAgICAgY29uc3QgR2V0VGVtcGxhdGVGdW5jdGlvbiBn
ZXRUZW1wbGF0ZUZ1bmN0aW9uOwogICAgICAgICBjb25zdCBEZXJlZk9iamVjdEZ1bmN0aW9uIGRl
cmVmT2JqZWN0RnVuY3Rpb247CiAgICAgICAgIGNvbnN0IFRvQWN0aXZlRE9NT2JqZWN0RnVuY3Rp
b24gdG9BY3RpdmVET01PYmplY3RGdW5jdGlvbjsKICAgICB9OwogfQogCi0jZW5kaWYgLy8gVjhJ
bmRleF9oCisjZW5kaWYgLy8gV3JhcHBlclR5cGVJbmZvX2gKSW5kZXg6IFdlYkNvcmUvYmluZGlu
Z3MvdjgvVjhET01XaW5kb3dTaGVsbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5n
cy92OC9WOERPTVdpbmRvd1NoZWxsLmNwcAkocmV2aXNpb24gNTYwODUpCisrKyBXZWJDb3JlL2Jp
bmRpbmdzL3Y4L1Y4RE9NV2luZG93U2hlbGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01Myw3ICs1
Myw2IEBACiAjaW5jbHVkZSAiVjhHQ0ZvckNvbnRleHREaXNwb3NlLmgiCiAjaW5jbHVkZSAiVjhI
aWRkZW5Qcm9wZXJ0eU5hbWUuaCIKICNpbmNsdWRlICJWOEhpc3RvcnkuaCIKLSNpbmNsdWRlICJW
OEluZGV4LmgiCiAjaW5jbHVkZSAiVjhMb2NhdGlvbi5oIgogI2luY2x1ZGUgIlY4UHJveHkuaCIK
ICNpbmNsdWRlICJXb3JrZXJDb250ZXh0RXhlY3V0aW9uUHJveHkuaCIKQEAgLTkyLDI5ICs5MSwy
MSBAQAogc3RhdGljIEZyYW1lKiBnZXRUYXJnZXRGcmFtZSh2ODo6TG9jYWw8djg6Ok9iamVjdD4g
aG9zdCwgdjg6OkxvY2FsPHY4OjpWYWx1ZT4gZGF0YSkKIHsKICAgICBGcmFtZSogdGFyZ2V0ID0g
MDsKLSAgICBzd2l0Y2ggKFY4Q2xhc3NJbmRleDo6RnJvbUludChkYXRhLT5JbnQzMlZhbHVlKCkp
KSB7Ci0gICAgY2FzZSBWOENsYXNzSW5kZXg6OkRPTVdJTkRPVzogeworICAgIFdyYXBwZXJUeXBl
SW5mbyogdHlwZSA9IHJlaW50ZXJwcmV0X2Nhc3Q8V3JhcHBlclR5cGVJbmZvKj4odjg6OkV4dGVy
bmFsOjpVbndyYXAoZGF0YSkpOworICAgIGlmICh0eXBlID09ICZWOERPTVdpbmRvdzo6aW5mbykg
ewogICAgICAgICB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHdpbmRvdyA9IFY4RE9NV3JhcHBlcjo6
bG9va3VwRE9NV3JhcHBlcihWOERPTVdpbmRvdzo6R2V0VGVtcGxhdGUoKSwgaG9zdCk7CiAgICAg
ICAgIGlmICh3aW5kb3cuSXNFbXB0eSgpKQogICAgICAgICAgICAgcmV0dXJuIHRhcmdldDsKIAog
ICAgICAgICBET01XaW5kb3cqIHRhcmdldFdpbmRvdyA9IFY4RE9NV2luZG93Ojp0b05hdGl2ZSh3
aW5kb3cpOwogICAgICAgICB0YXJnZXQgPSB0YXJnZXRXaW5kb3ctPmZyYW1lKCk7Ci0gICAgICAg
IGJyZWFrOwotICAgIH0KLSAgICBjYXNlIFY4Q2xhc3NJbmRleDo6TE9DQVRJT046IHsKKyAgICB9
IGVsc2UgaWYgKHR5cGUgPT0gJlY4SGlzdG9yeTo6aW5mbykgewogICAgICAgICBIaXN0b3J5KiBo
aXN0b3J5ID0gVjhIaXN0b3J5Ojp0b05hdGl2ZShob3N0KTsKICAgICAgICAgdGFyZ2V0ID0gaGlz
dG9yeS0+ZnJhbWUoKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotICAgIGNhc2UgVjhDbGFzc0lu
ZGV4OjpISVNUT1JZOiB7CisgICAgfSBlbHNlIGlmICh0eXBlID09ICZWOExvY2F0aW9uOjppbmZv
KSB7CiAgICAgICAgIExvY2F0aW9uKiBsb2NhdGlvbiA9IFY4TG9jYXRpb246OnRvTmF0aXZlKGhv
c3QpOwogICAgICAgICB0YXJnZXQgPSBsb2NhdGlvbi0+ZnJhbWUoKTsKLSAgICAgICAgYnJlYWs7
CiAgICAgfQotICAgIGRlZmF1bHQ6Ci0gICAgICAgIGJyZWFrOwotICAgIH0KICAgICByZXR1cm4g
dGFyZ2V0OwogfQogCkBAIC0xNDAsNyArMTMxLDcgQEAKICAgICAvLyBtX2NvbnRleHQsIG1fZ2xv
YmFsLCBhbmQgbV93cmFwcGVyQm9pbGVycGxhdGVzIHNob3VsZAogICAgIC8vIGFsbCBiZSBub24t
ZW1wdHkgaWYgaWYgbV9jb250ZXh0IGlzIG5vbi1lbXB0eS4KICAgICBBU1NFUlQobV9jb250ZXh0
LklzRW1wdHkoKSB8fCAhbV9nbG9iYWwuSXNFbXB0eSgpKTsKLSAgICBBU1NFUlQobV9jb250ZXh0
LklzRW1wdHkoKSB8fCAhbV93cmFwcGVyQm9pbGVycGxhdGVzLklzRW1wdHkoKSk7CisgICAgQVNT
RVJUKG1fY29udGV4dC5Jc0VtcHR5KCkgfHwgIW1fd3JhcHBlckJvaWxlcnBsYXRlcy5pc0VtcHR5
KCkpOwogICAgIHJldHVybiAhbV9jb250ZXh0LklzRW1wdHkoKTsKIH0KIApAQCAtMTU2LDE0ICsx
NDcsNyBAQAogICAgICAgICAvLyBpdCB1cCB3aGVuIGlkbGUuCiAgICAgICAgIFY4R0NGb3JDb250
ZXh0RGlzcG9zZTo6aW5zdGFuY2UoKS5ub3RpZnlDb250ZXh0RGlzcG9zZWQoKTsKICAgICB9Ci0K
LSAgICBpZiAoIW1fd3JhcHBlckJvaWxlcnBsYXRlcy5Jc0VtcHR5KCkpIHsKLSNpZm5kZWYgTkRF
QlVHCi0gICAgICAgIFY4R0NDb250cm9sbGVyOjp1bnJlZ2lzdGVyR2xvYmFsSGFuZGxlKHRoaXMs
IG1fd3JhcHBlckJvaWxlcnBsYXRlcyk7Ci0jZW5kaWYKLSAgICAgICAgbV93cmFwcGVyQm9pbGVy
cGxhdGVzLkRpc3Bvc2UoKTsKLSAgICAgICAgbV93cmFwcGVyQm9pbGVycGxhdGVzLkNsZWFyKCk7
Ci0gICAgfQorICAgIG1fd3JhcHBlckJvaWxlcnBsYXRlcy5jbGVhcigpOwogfQogCiB2b2lkIFY4
RE9NV2luZG93U2hlbGw6OmRlc3Ryb3lHbG9iYWwoKQpAQCAtMjk3LDE1ICsyODEsNiBAQAogICAg
IH0KIAogICAgIGluc3RhbGxIaWRkZW5PYmplY3RQcm90b3R5cGUodjhDb250ZXh0KTsKLSAgICBt
X3dyYXBwZXJCb2lsZXJwbGF0ZXMgPSB2ODo6UGVyc2lzdGVudDx2ODo6QXJyYXk+OjpOZXcodjg6
OkFycmF5OjpOZXcoVjhDbGFzc0luZGV4OjpXUkFQUEVSX1RZUEVfQ09VTlQpKTsKLSAgICAvLyBC
YWlsIG91dCBpZiBhbGxvY2F0aW9uIGZhaWxlZC4KLSAgICBpZiAobV93cmFwcGVyQm9pbGVycGxh
dGVzLklzRW1wdHkoKSkgewotICAgICAgICBkaXNwb3NlQ29udGV4dEhhbmRsZXMoKTsKLSAgICAg
ICAgcmV0dXJuOwotICAgIH0KLSNpZm5kZWYgTkRFQlVHCi0gICAgVjhHQ0NvbnRyb2xsZXI6OnJl
Z2lzdGVyR2xvYmFsSGFuZGxlKFBST1hZLCB0aGlzLCBtX3dyYXBwZXJCb2lsZXJwbGF0ZXMpOwot
I2VuZGlmCiAKICAgICBpZiAoIWluc3RhbGxET01XaW5kb3codjhDb250ZXh0LCBtX2ZyYW1lLT5k
b21XaW5kb3coKSkpCiAgICAgICAgIGRpc3Bvc2VDb250ZXh0SGFuZGxlcygpOwpAQCAtNTM0LDEz
ICs1MDksMTIgQEAKIHY4OjpMb2NhbDx2ODo6T2JqZWN0PiBWOERPTVdpbmRvd1NoZWxsOjpjcmVh
dGVXcmFwcGVyRnJvbUNhY2hlU2xvd0Nhc2UoV3JhcHBlclR5cGVJbmZvKiB0eXBlKQogewogICAg
IC8vIE5vdCBpbiBjYWNoZS4KLSAgICBpbnQgY2xhc3NJbmRleCA9IHR5cGUtPmluZGV4OwogICAg
IGluaXRDb250ZXh0SWZOZWVkZWQoKTsKICAgICB2ODo6Q29udGV4dDo6U2NvcGUgc2NvcGUobV9j
b250ZXh0KTsKICAgICB2ODo6TG9jYWw8djg6OkZ1bmN0aW9uPiBmdW5jdGlvbiA9IFY4RE9NV3Jh
cHBlcjo6Z2V0Q29uc3RydWN0b3IodHlwZSwgZ2V0SGlkZGVuT2JqZWN0UHJvdG90eXBlKG1fY29u
dGV4dCkpOwogICAgIHY4OjpMb2NhbDx2ODo6T2JqZWN0PiBpbnN0YW5jZSA9IFNhZmVBbGxvY2F0
aW9uOjpuZXdJbnN0YW5jZShmdW5jdGlvbik7CiAgICAgaWYgKCFpbnN0YW5jZS5Jc0VtcHR5KCkp
IHsKLSAgICAgICAgbV93cmFwcGVyQm9pbGVycGxhdGVzLT5TZXQodjg6OkludGVnZXI6Ok5ldyhj
bGFzc0luZGV4KSwgaW5zdGFuY2UpOworICAgICAgICBtX3dyYXBwZXJCb2lsZXJwbGF0ZXMuc2V0
KHR5cGUsIHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+OjpOZXcoaW5zdGFuY2UpKTsKICAgICAg
ICAgcmV0dXJuIGluc3RhbmNlLT5DbG9uZSgpOwogICAgIH0KICAgICByZXR1cm4gbm90SGFuZGxl
ZEJ5SW50ZXJjZXB0b3IoKTsKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvdjgvVjhOUE9iamVjdC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy92OC9WOE5QT2JqZWN0LmNwcAkocmV2
aXNpb24gNTYwODUpCisrKyBXZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4TlBPYmplY3QuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC01NCw4ICs1NCw2IEBACiAgICAgSW52b2tlRGVmYXVsdCA9IDMKIH07CiAK
LXN0YXRpYyBXcmFwcGVyVHlwZUluZm8gbnBPYmplY3RUeXBlSW5mbyA9IHsgVjhDbGFzc0luZGV4
OjpUb0ludChWOENsYXNzSW5kZXg6Ok5QT0JKRUNUKSwgMCwgMCwgZmFsc2UgfTsKLQogLy8gRklY
TUU6IG5lZWQgY29tbWVudHMuCiAvLyBQYXJhbXM6IGhvbGRlciBjb3VsZCBiZSBIVE1MRW1iZWRF
bGVtZW50IG9yIE5QT2JqZWN0CiBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IG5wT2JqZWN0
SW52b2tlSW1wbChjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzLCBJbnZva2VGdW5jdGlvblR5cGUg
ZnVuY3Rpb25JZCkKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvdjgvTlBWOE9iamVjdC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy92OC9OUFY4T2JqZWN0LmNwcAkocmV2aXNpb24g
NTYwODUpCisrKyBXZWJDb3JlL2JpbmRpbmdzL3Y4L05QVjhPYmplY3QuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0zNiw5ICszNiw5IEBACiAjaW5jbHVkZSAiU2NyaXB0Q29udHJvbGxlci5oIgogI2lu
Y2x1ZGUgIlY4R0NDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiVjhIZWxwZXJzLmgiCi0jaW5jbHVk
ZSAiVjhJbmRleC5oIgogI2luY2x1ZGUgIlY4TlBVdGlscy5oIgogI2luY2x1ZGUgIlY4UHJveHku
aCIKKyNpbmNsdWRlICJXcmFwcGVyVHlwZUluZm8uaCIKICNpbmNsdWRlICJucHJ1bnRpbWVfaW1w
bC5oIgogI2luY2x1ZGUgIm5wcnVudGltZV9wcml2LmgiCiAKQEAgLTU1LDcgKzU1LDYgQEAKIHVz
aW5nIFdlYkNvcmU6Om5wT2JqZWN0SW50ZXJuYWxGaWVsZENvdW50OwogdXNpbmcgV2ViQ29yZTo6
dG9WOENvbnRleHQ7CiB1c2luZyBXZWJDb3JlOjp0b1Y4UHJveHk7Ci11c2luZyBXZWJDb3JlOjpW
OENsYXNzSW5kZXg7CiB1c2luZyBXZWJDb3JlOjpWOERPTVdyYXBwZXI7CiB1c2luZyBXZWJDb3Jl
OjpWOEdDQ29udHJvbGxlcjsKIHVzaW5nIFdlYkNvcmU6OlY4UHJveHk7CkBAIC0xMTcsNyArMTE2
LDcgQEAKICAgICAvLyBDaGVjayB0byBzZWUgaWYgdGhpcyBvYmplY3QgaXMgYWxyZWFkeSB3cmFw
cGVkLgogICAgIGlmIChvYmplY3QtPkludGVybmFsRmllbGRDb3VudCgpID09IG5wT2JqZWN0SW50
ZXJuYWxGaWVsZENvdW50KSB7CiAgICAgICAgIFdyYXBwZXJUeXBlSW5mbyogdHlwZUluZm8gPSBz
dGF0aWNfY2FzdDxXcmFwcGVyVHlwZUluZm8qPihvYmplY3QtPkdldFBvaW50ZXJGcm9tSW50ZXJu
YWxGaWVsZChXZWJDb3JlOjp2OERPTVdyYXBwZXJUeXBlSW5kZXgpKTsKLSAgICAgICAgaWYgKHR5
cGVJbmZvLT5pbmRleCA9PSBWOENsYXNzSW5kZXg6Ok5QT0JKRUNUKSB7CisgICAgICAgIGlmICh0
eXBlSW5mbyA9PSAmV2ViQ29yZTo6bnBPYmplY3RUeXBlSW5mbykgewogCiAgICAgICAgICAgICBO
UE9iamVjdCogcmV0dXJuVmFsdWUgPSB2OE9iamVjdFRvTlBPYmplY3Qob2JqZWN0KTsKICAgICAg
ICAgICAgIF9OUE5fUmV0YWluT2JqZWN0KHJldHVyblZhbHVlKTsKSW5kZXg6IFdlYkNvcmUvYmlu
ZGluZ3MvdjgvVjhJbmRleC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvdjgvVjhJ
bmRleC5oCShyZXZpc2lvbiA1NjA4NSkKKysrIFdlYkNvcmUvYmluZGluZ3MvdjgvVjhJbmRleC5o
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDcwOCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAy
MDA5IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMgYXJlCi0gKiBtZXQ6Ci0gKgotICogICAgICogUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAq
ICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUKLSAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSAqIGRpc3RyaWJ1dGlvbi4KLSAqICAg
ICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMK
LSAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVj
dHMgZGVyaXZlZCBmcm9tCi0gKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Ig
d3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
VEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IKLSAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0gKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QK
LSAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLAotICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBWOEluZGV4X2gKLSNkZWZp
bmUgVjhJbmRleF9oCi0KLSNpbmNsdWRlIDx2OC5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0K
LXN0YXRpYyBjb25zdCBpbnQgdjhET01XcmFwcGVyVHlwZUluZGV4ID0gMDsKLXN0YXRpYyBjb25z
dCBpbnQgdjhET01XcmFwcGVyT2JqZWN0SW5kZXggPSAxOwotc3RhdGljIGNvbnN0IGludCB2OERl
ZmF1bHRXcmFwcGVySW50ZXJuYWxGaWVsZENvdW50ID0gMjsKLQotI2lmIEVOQUJMRShEQVRBR1JJ
RCkKLSNkZWZpbmUgREFUQUdSSURfSFRNTEVMRU1FTlRfVFlQRVMoVikgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKEhUTUxEQVRBR1JJRENFTExFTEVNRU5ULCBIVE1M
RGF0YUdyaWRDZWxsRWxlbWVudCkgICAgICAgICAgICAgICAgIFwKLSAgICBWKEhUTUxEQVRBR1JJ
RENPTEVMRU1FTlQsIEhUTUxEYXRhR3JpZENvbEVsZW1lbnQpICAgICAgICAgICAgICAgICAgIFwK
LSAgICBWKEhUTUxEQVRBR1JJREVMRU1FTlQsIEhUTUxEYXRhR3JpZEVsZW1lbnQpICAgICAgICAg
ICAgICAgICAgICAgICAgIFwKLSAgICBWKEhUTUxEQVRBR1JJRFJPV0VMRU1FTlQsIEhUTUxEYXRh
R3JpZFJvd0VsZW1lbnQpCi0jZGVmaW5lIERBVEFHUklEX05PTk5PREVfVFlQRVMoVikgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihEQVRBR1JJRENPTFVNTiwg
RGF0YUdyaWRDb2x1bW4pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAg
VihEQVRBR1JJRENPTFVNTkxJU1QsIERhdGFHcmlkQ29sdW1uTGlzdCkKLSNlbHNlCi0jZGVmaW5l
IERBVEFHUklEX0hUTUxFTEVNRU5UX1RZUEVTKFYpCi0jZGVmaW5lIERBVEFHUklEX05PTk5PREVf
VFlQRVMoVikKLSNlbmRpZgotCi0jaWYgRU5BQkxFKFZJREVPKQotI2RlZmluZSBWSURFT19IVE1M
RUxFTUVOVF9UWVBFUyhWKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAot
ICAgIFYoQVVESU8sIEhUTUxBdWRpb0VsZW1lbnRDb25zdHJ1Y3RvcikgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXAotICAgIFYoSFRNTEFVRElPRUxFTUVOVCwgSFRNTEF1ZGlvRWxlbWVu
dCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoSFRNTE1FRElBRUxFTUVO
VCwgSFRNTE1lZGlhRWxlbWVudCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAg
IFYoSFRNTFNPVVJDRUVMRU1FTlQsIEhUTUxTb3VyY2VFbGVtZW50KSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgXAotICAgIFYoSFRNTFZJREVPRUxFTUVOVCwgSFRNTFZpZGVvRWxlbWVudCkK
LSNkZWZpbmUgVklERU9fTk9OTk9ERV9UWVBFUyhWKSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFwKLSAgICBWKE1FRElBRVJST1IsIE1lZGlhRXJyb3IpICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKFRJTUVSQU5HRVMsIFRp
bWVSYW5nZXMpCi0jZWxzZQotI2RlZmluZSBWSURFT19IVE1MRUxFTUVOVF9UWVBFUyhWKQotI2Rl
ZmluZSBWSURFT19OT05OT0RFX1RZUEVTKFYpCi0jZW5kaWYKLQotI2lmIEVOQUJMRShXT1JLRVJT
KQotI2RlZmluZSBXT1JLRVJfQUNUSVZFX09CSkVDVF9XUkFQUEVSX1RZUEVTKFYpICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXAotICAgIFYoV09SS0VSLCBXb3JrZXIpCi0KLSNkZWZpbmUgV09S
S0VSX05PTk5PREVfV1JBUFBFUl9UWVBFUyhWKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFwKLSAgICBWKEFCU1RSQUNUV09SS0VSLCBBYnN0cmFjdFdvcmtlcikgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKERFRElDQVRFRFdPUktFUkNPTlRFWFQsIERl
ZGljYXRlZFdvcmtlckNvbnRleHQpICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKFdPUktFUkNP
TlRFWFQsIFdvcmtlckNvbnRleHQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFwKLSAgICBWKFdPUktFUkxPQ0FUSU9OLCBXb3JrZXJMb2NhdGlvbikgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKFdPUktFUk5BVklHQVRPUiwgV29ya2VyTmF2aWdh
dG9yKQotI2Vsc2UKLSNkZWZpbmUgV09SS0VSX0FDVElWRV9PQkpFQ1RfV1JBUFBFUl9UWVBFUyhW
KQotI2RlZmluZSBXT1JLRVJfTk9OTk9ERV9XUkFQUEVSX1RZUEVTKFYpCi0jZW5kaWYKLQotI2lm
IEVOQUJMRShFVkVOVFNPVVJDRSkKLSNkZWZpbmUgRVZFTlRTT1VSQ0VfQUNUSVZFX09CSkVDVF9X
UkFQUEVSX1RZUEVTKFYpICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKEVWRU5UU09VUkNF
LCBFdmVudFNvdXJjZSkKLSNlbHNlCi0jZGVmaW5lIEVWRU5UU09VUkNFX0FDVElWRV9PQkpFQ1Rf
V1JBUFBFUl9UWVBFUyhWKQotI2VuZGlmCi0KLSNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElD
QVRJT05TKQotI2RlZmluZSBBUFBMSUNBVElPTkNBQ0hFX05PTk5PREVfV1JBUFBFUl9UWVBFUyhW
KSAgICAgICAgICAgICAgICAgICAgICAgXAotICBWKERPTUFQUExJQ0FUSU9OQ0FDSEUsIERPTUFw
cGxpY2F0aW9uQ2FjaGUpCi0jZWxzZQotI2RlZmluZSBBUFBMSUNBVElPTkNBQ0hFX05PTk5PREVf
V1JBUFBFUl9UWVBFUyhWKQotI2VuZGlmCi0KLSNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKLSNk
ZWZpbmUgTk9USUZJQ0FUSU9OU19OT05OT0RFX1dSQVBQRVJfVFlQRVMoVikgICAgICAgICAgICAg
ICAgICAgICAgICAgIFwKLSAgICBWKE5PVElGSUNBVElPTiwgTm90aWZpY2F0aW9uKSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKE5PVElGSUNBVElPTkNFTlRF
UiwgTm90aWZpY2F0aW9uQ2VudGVyKQotI2Vsc2UKLSNkZWZpbmUgTk9USUZJQ0FUSU9OU19OT05O
T0RFX1dSQVBQRVJfVFlQRVMoVikKLSNlbmRpZgotCi0jaWYgRU5BQkxFKFNIQVJFRF9XT1JLRVJT
KQotI2RlZmluZSBTSEFSRURfV09SS0VSX0FDVElWRV9PQkpFQ1RfV1JBUFBFUl9UWVBFUyhWKSAg
ICAgICAgICAgICAgICAgICAgXAotICAgIFYoU0hBUkVEV09SS0VSLCBTaGFyZWRXb3JrZXIpCi0K
LSNkZWZpbmUgU0hBUkVEX1dPUktFUl9OT05OT0RFX1dSQVBQRVJfVFlQRVMoVikgICAgICAgICAg
ICAgICAgICAgICAgICAgIFwKLSAgICBWKFNIQVJFRFdPUktFUkNPTlRFWFQsIFNoYXJlZFdvcmtl
ckNvbnRleHQpCi0jZWxzZQotI2RlZmluZSBTSEFSRURfV09SS0VSX0FDVElWRV9PQkpFQ1RfV1JB
UFBFUl9UWVBFUyhWKQotI2RlZmluZSBTSEFSRURfV09SS0VSX05PTk5PREVfV1JBUFBFUl9UWVBF
UyhWKQotI2VuZGlmCi0KLSNkZWZpbmUgRE9NX05PREVfVFlQRVMoVikgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKEFUVFIsIEF0dHIpICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBW
KENIQVJBQ1RFUkRBVEEsIENoYXJhY3RlckRhdGEpICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFwKLSAgICBWKENEQVRBU0VDVElPTiwgQ0RBVEFTZWN0aW9uKSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKENPTU1FTlQsIENvbW1lbnQpICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKERP
Q1VNRU5ULCBEb2N1bWVudCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFwKLSAgICBWKERPQ1VNRU5URlJBR01FTlQsIERvY3VtZW50RnJhZ21lbnQpICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKERPQ1VNRU5UVFlQRSwgRG9jdW1lbnRU
eXBlKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKEVMRU1F
TlQsIEVsZW1lbnQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFwKLSAgICBWKEVOVElUWSwgRW50aXR5KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKEVOVElUWVJFRkVSRU5DRSwgRW50aXR5UmVm
ZXJlbmNlKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKEhUTUxET0NV
TUVOVCwgSFRNTERvY3VtZW50KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFwKLSAgICBWKElNQUdFLCBIVE1MSW1hZ2VFbGVtZW50Q29uc3RydWN0b3IpICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKE5PREUsIE5vZGUpICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKE9QVElPTiwgSFRN
TE9wdGlvbkVsZW1lbnRDb25zdHJ1Y3RvcikgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK
LSAgICBWKE5PVEFUSU9OLCBOb3RhdGlvbikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFwKLSAgICBWKFBST0NFU1NJTkdJTlNUUlVDVElPTiwgUHJvY2Vzc2lu
Z0luc3RydWN0aW9uKSAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKFRFWFQsIFRleHQpICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAg
ICBWKEhUTUxBTkNIT1JFTEVNRU5ULCBIVE1MQW5jaG9yRWxlbWVudCkgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFwKLSAgICBWKEhUTUxBUFBMRVRFTEVNRU5ULCBIVE1MQXBwbGV0RWxlbWVu
dCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKEhUTUxBUkVBRUxFTUVOVCwg
SFRNTEFyZWFFbGVtZW50KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBW
KEhUTUxCQVNFRUxFTUVOVCwgSFRNTEJhc2VFbGVtZW50KSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFwKLSAgICBWKEhUTUxCQVNFRk9OVEVMRU1FTlQsIEhUTUxCYXNlRm9udEVsZW1l
bnQpICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKEhUTUxCTE9DS1FVT1RFRUxFTUVO
VCwgSFRNTEJsb2NrcXVvdGVFbGVtZW50KSAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKEhU
TUxCT0RZRUxFTUVOVCwgSFRNTEJvZHlFbGVtZW50KSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFwKLSAgICBWKEhUTUxCUkVMRU1FTlQsIEhUTUxCUkVsZW1lbnQpICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKEhUTUxCVVRUT05FTEVNRU5ULCBIVE1M
QnV0dG9uRWxlbWVudCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKEhUTUxD
QU5WQVNFTEVNRU5ULCBIVE1MQ2FudmFzRWxlbWVudCkgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFwKLSAgICBWKEhUTUxESVJFQ1RPUllFTEVNRU5ULCBIVE1MRGlyZWN0b3J5RWxlbWVudCkg
ICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKEhUTUxESVZFTEVNRU5ULCBIVE1MRGl2RWxl
bWVudCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKEhUTUxETElT
VEVMRU1FTlQsIEhUTUxETGlzdEVsZW1lbnQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFwKLSAgICBWKEhUTUxFTUJFREVMRU1FTlQsIEhUTUxFbWJlZEVsZW1lbnQpICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKEhUTUxGSUVMRFNFVEVMRU1FTlQsIEhUTUxGaWVs
ZFNldEVsZW1lbnQpICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKEhUTUxGT05URUxF
TUVOVCwgSFRNTEZvbnRFbGVtZW50KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK
LSAgICBWKEhUTUxGT1JNRUxFTUVOVCwgSFRNTEZvcm1FbGVtZW50KSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFwKLSAgICBWKEhUTUxGUkFNRUVMRU1FTlQsIEhUTUxGcmFtZUVsZW1l
bnQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKEhUTUxGUkFNRVNFVEVM
RU1FTlQsIEhUTUxGcmFtZVNldEVsZW1lbnQpICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAg
ICBWKEhUTUxIRUFESU5HRUxFTUVOVCwgSFRNTEhlYWRpbmdFbGVtZW50KSAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFwKLSAgICBWKEhUTUxIRUFERUxFTUVOVCwgSFRNTEhlYWRFbGVtZW50KSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKEhUTUxIUkVMRU1FTlQsIEhU
TUxIUkVsZW1lbnQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBW
KEhUTUxIVE1MRUxFTUVOVCwgSFRNTEh0bWxFbGVtZW50KSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFwKLSAgICBWKEhUTUxJRlJBTUVFTEVNRU5ULCBIVE1MSUZyYW1lRWxlbWVudCkg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKEhUTUxJTUFHRUVMRU1FTlQsIEhU
TUxJbWFnZUVsZW1lbnQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKEhU
TUxJTlBVVEVMRU1FTlQsIEhUTUxJbnB1dEVsZW1lbnQpICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFwKLSAgICBWKEhUTUxJU0lOREVYRUxFTUVOVCwgSFRNTElzSW5kZXhFbGVtZW50KSAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKEhUTUxMQUJFTEVMRU1FTlQsIEhUTUxM
YWJlbEVsZW1lbnQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKEhUTUxM
RUdFTkRFTEVNRU5ULCBIVE1MTGVnZW5kRWxlbWVudCkgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFwKLSAgICBWKEhUTUxMSUVMRU1FTlQsIEhUTUxMSUVsZW1lbnQpICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKEhUTUxMSU5LRUxFTUVOVCwgSFRNTExpbmtF
bGVtZW50KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKEhUTUxNQVBF
TEVNRU5ULCBIVE1MTWFwRWxlbWVudCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFwKLSAgICBWKEhUTUxNQVJRVUVFRUxFTUVOVCwgSFRNTE1hcnF1ZWVFbGVtZW50KSAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKEhUTUxNRU5VRUxFTUVOVCwgSFRNTE1lbnVFbGVt
ZW50KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKEhUTUxNRVRBRUxF
TUVOVCwgSFRNTE1ldGFFbGVtZW50KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK
LSAgICBWKEhUTUxNT0RFTEVNRU5ULCBIVE1MTW9kRWxlbWVudCkgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFwKLSAgICBWKEhUTUxPQkpFQ1RFTEVNRU5ULCBIVE1MT2JqZWN0RWxl
bWVudCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKEhUTUxPTElTVEVMRU1F
TlQsIEhUTUxPTGlzdEVsZW1lbnQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAg
ICBWKEhUTUxPUFRHUk9VUEVMRU1FTlQsIEhUTUxPcHRHcm91cEVsZW1lbnQpICAgICAgICAgICAg
ICAgICAgICAgICAgIFwKLSAgICBWKEhUTUxPUFRJT05FTEVNRU5ULCBIVE1MT3B0aW9uRWxlbWVu
dCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKEhUTUxQQVJBR1JBUEhFTEVN
RU5ULCBIVE1MUGFyYWdyYXBoRWxlbWVudCkgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBW
KEhUTUxQQVJBTUVMRU1FTlQsIEhUTUxQYXJhbUVsZW1lbnQpICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFwKLSAgICBWKEhUTUxQUkVFTEVNRU5ULCBIVE1MUHJlRWxlbWVudCkgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKEhUTUxRVU9URUVMRU1FTlQsIEhU
TUxRdW90ZUVsZW1lbnQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKEhU
TUxTQ1JJUFRFTEVNRU5ULCBIVE1MU2NyaXB0RWxlbWVudCkgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFwKLSAgICBWKEhUTUxTRUxFQ1RFTEVNRU5ULCBIVE1MU2VsZWN0RWxlbWVudCkgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKEhUTUxTVFlMRUVMRU1FTlQsIEhUTUxT
dHlsZUVsZW1lbnQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKEhUTUxU
QUJMRUNBUFRJT05FTEVNRU5ULCBIVE1MVGFibGVDYXB0aW9uRWxlbWVudCkgICAgICAgICAgICAg
ICAgIFwKLSAgICBWKEhUTUxUQUJMRUNPTEVMRU1FTlQsIEhUTUxUYWJsZUNvbEVsZW1lbnQpICAg
ICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKEhUTUxUQUJMRUVMRU1FTlQsIEhUTUxUYWJs
ZUVsZW1lbnQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKEhUTUxUQUJM
RVNFQ1RJT05FTEVNRU5ULCBIVE1MVGFibGVTZWN0aW9uRWxlbWVudCkgICAgICAgICAgICAgICAg
IFwKLSAgICBWKEhUTUxUQUJMRUNFTExFTEVNRU5ULCBIVE1MVGFibGVDZWxsRWxlbWVudCkgICAg
ICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKEhUTUxUQUJMRVJPV0VMRU1FTlQsIEhUTUxUYWJs
ZVJvd0VsZW1lbnQpICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKEhUTUxURVhUQVJF
QUVMRU1FTlQsIEhUTUxUZXh0QXJlYUVsZW1lbnQpICAgICAgICAgICAgICAgICAgICAgICAgIFwK
LSAgICBWKEhUTUxUSVRMRUVMRU1FTlQsIEhUTUxUaXRsZUVsZW1lbnQpICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFwKLSAgICBWKEhUTUxVTElTVEVMRU1FTlQsIEhUTUxVTGlzdEVsZW1l
bnQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKEhUTUxFTEVNRU5ULCBI
VE1MRWxlbWVudCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAg
ICBEQVRBR1JJRF9IVE1MRUxFTUVOVF9UWVBFUyhWKSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFwKLSAgICBWSURFT19IVE1MRUxFTUVOVF9UWVBFUyhWKQotCi0jaWYgRU5B
QkxFKFNWR19BTklNQVRJT04pCi0jZGVmaW5lIFNWR19BTklNQVRJT05fRUxFTUVOVF9UWVBFUyhW
KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihTVkdBTklNQVRFQ09M
T1JFTEVNRU5ULCBTVkdBbmltYXRlQ29sb3JFbGVtZW50KSAgICAgICAgICAgICAgICAgICBcCi0g
ICAgVihTVkdBTklNQVRFRUxFTUVOVCwgU1ZHQW5pbWF0ZUVsZW1lbnQpICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBcCi0gICAgVihTVkdBTklNQVRFVFJBTlNGT1JNRUxFTUVOVCwgU1ZHQW5p
bWF0ZVRyYW5zZm9ybUVsZW1lbnQpICAgICAgICAgICBcCi0gICAgVihTVkdBTklNQVRJT05FTEVN
RU5ULCBTVkdBbmltYXRpb25FbGVtZW50KSAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAg
VihTVkdTRVRFTEVNRU5ULCBTVkdTZXRFbGVtZW50KQotI2Vsc2UKLSNkZWZpbmUgU1ZHX0FOSU1B
VElPTl9FTEVNRU5UX1RZUEVTKFYpCi0jZW5kaWYKLQotI2lmIEVOQUJMRShTVkcpICYmIEVOQUJM
RShGSUxURVJTKQotI2RlZmluZSBTVkdfRklMVEVSU19FTEVNRU5UX1RZUEVTKFYpICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoU1ZHQ09NUE9ORU5UVFJBTlNGRVJG
VU5DVElPTkVMRU1FTlQsIFNWR0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50KVwKLSAg
ICBWKFNWR0ZFQkxFTkRFTEVNRU5ULCBTVkdGRUJsZW5kRWxlbWVudCkgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFwKLSAgICBWKFNWR0ZFQ09MT1JNQVRSSVhFTEVNRU5ULCBTVkdGRUNvbG9y
TWF0cml4RWxlbWVudCkgICAgICAgICAgICAgICAgIFwKLSAgICBWKFNWR0ZFQ09NUE9ORU5UVFJB
TlNGRVJFTEVNRU5ULCBTVkdGRUNvbXBvbmVudFRyYW5zZmVyRWxlbWVudCkgICAgIFwKLSAgICBW
KFNWR0ZFQ09NUE9TSVRFRUxFTUVOVCwgU1ZHRkVDb21wb3NpdGVFbGVtZW50KSAgICAgICAgICAg
ICAgICAgICAgIFwKLSAgICBWKFNWR0ZFRElGRlVTRUxJR0hUSU5HRUxFTUVOVCwgU1ZHRkVEaWZm
dXNlTGlnaHRpbmdFbGVtZW50KSAgICAgICAgIFwKLSAgICBWKFNWR0ZFRElTUExBQ0VNRU5UTUFQ
RUxFTUVOVCwgU1ZHRkVEaXNwbGFjZW1lbnRNYXBFbGVtZW50KSAgICAgICAgIFwKLSAgICBWKFNW
R0ZFRElTVEFOVExJR0hURUxFTUVOVCwgU1ZHRkVEaXN0YW50TGlnaHRFbGVtZW50KSAgICAgICAg
ICAgICAgIFwKLSAgICBWKFNWR0ZFRkxPT0RFTEVNRU5ULCBTVkdGRUZsb29kRWxlbWVudCkgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKFNWR0ZFRlVOQ0FFTEVNRU5ULCBTVkdG
RUZ1bmNBRWxlbWVudCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKFNWR0ZF
RlVOQ0JFTEVNRU5ULCBTVkdGRUZ1bmNCRWxlbWVudCkgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFwKLSAgICBWKFNWR0ZFRlVOQ0dFTEVNRU5ULCBTVkdGRUZ1bmNHRWxlbWVudCkgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKFNWR0ZFRlVOQ1JFTEVNRU5ULCBTVkdGRUZ1
bmNSRWxlbWVudCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKFNWR0ZFR0FV
U1NJQU5CTFVSRUxFTUVOVCwgU1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50KSAgICAgICAgICAgICAg
IFwKLSAgICBWKFNWR0ZFSU1BR0VFTEVNRU5ULCBTVkdGRUltYWdlRWxlbWVudCkgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKFNWR0ZFTUVSR0VFTEVNRU5ULCBTVkdGRU1lcmdl
RWxlbWVudCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKFNWR0ZFTUVSR0VO
T0RFRUxFTUVOVCwgU1ZHRkVNZXJnZU5vZGVFbGVtZW50KSAgICAgICAgICAgICAgICAgICAgIFwK
LSAgICBWKFNWR0ZFTU9SUEhPTE9HWUVMRU1FTlQsIFNWR0ZFTW9ycGhvbG9neUVsZW1lbnQpICAg
ICAgICAgICAgICAgICAgIFwKLSAgICBWKFNWR0ZFT0ZGU0VURUxFTUVOVCwgU1ZHRkVPZmZzZXRF
bGVtZW50KSAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKFNWR0ZFUE9JTlRMSUdI
VEVMRU1FTlQsIFNWR0ZFUG9pbnRMaWdodEVsZW1lbnQpICAgICAgICAgICAgICAgICAgIFwKLSAg
ICBWKFNWR0ZFU1BFQ1VMQVJMSUdIVElOR0VMRU1FTlQsIFNWR0ZFU3BlY3VsYXJMaWdodGluZ0Vs
ZW1lbnQpICAgICAgIFwKLSAgICBWKFNWR0ZFU1BPVExJR0hURUxFTUVOVCwgU1ZHRkVTcG90TGln
aHRFbGVtZW50KSAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKFNWR0ZFVElMRUVMRU1FTlQs
IFNWR0ZFVGlsZUVsZW1lbnQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBW
KFNWR0ZFVFVSQlVMRU5DRUVMRU1FTlQsIFNWR0ZFVHVyYnVsZW5jZUVsZW1lbnQpICAgICAgICAg
ICAgICAgICAgIFwKLSAgICBWKFNWR0ZJTFRFUkVMRU1FTlQsIFNWR0ZpbHRlckVsZW1lbnQpCi0j
ZWxzZQotI2RlZmluZSBTVkdfRklMVEVSU19FTEVNRU5UX1RZUEVTKFYpCi0jZW5kaWYKLQotI2lm
IEVOQUJMRShTVkdfRk9OVFMpCi0jZGVmaW5lIFNWR19GT05UU19FTEVNRU5UX1RZUEVTKFYpICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihTVkdGT05URUxFTUVO
VCwgU1ZHRm9udEVsZW1lbnQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0g
ICAgVihTVkdGT05URkFDRUVMRU1FTlQsIFNWR0ZvbnRGYWNlRWxlbWVudCkgICAgICAgICAgICAg
ICAgICAgICAgICAgICBcCi0gICAgVihTVkdGT05URkFDRUZPUk1BVEVMRU1FTlQsIFNWR0ZvbnRG
YWNlRm9ybWF0RWxlbWVudCkgICAgICAgICAgICAgICBcCi0gICAgVihTVkdGT05URkFDRU5BTUVF
TEVNRU5ULCBTVkdGb250RmFjZU5hbWVFbGVtZW50KSAgICAgICAgICAgICAgICAgICBcCi0gICAg
VihTVkdGT05URkFDRVNSQ0VMRU1FTlQsIFNWR0ZvbnRGYWNlU3JjRWxlbWVudCkgICAgICAgICAg
ICAgICAgICAgICBcCi0gICAgVihTVkdGT05URkFDRVVSSUVMRU1FTlQsIFNWR0ZvbnRGYWNlVXJp
RWxlbWVudCkgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihTVkdNSVNTSU5HR0xZUEhFTEVN
RU5ULCBTVkdNaXNzaW5nR2x5cGhFbGVtZW50KQotI2Vsc2UKLSNkZWZpbmUgU1ZHX0ZPTlRTX0VM
RU1FTlRfVFlQRVMoVikKLSNlbmRpZgotCi0jaWYgRU5BQkxFKFNWR19GT1JFSUdOX09CSkVDVCkK
LSNkZWZpbmUgU1ZHX0ZPUkVJR05fT0JKRUNUX0VMRU1FTlRfVFlQRVMoVikgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFwKLSAgICBWKFNWR0ZPUkVJR05PQkpFQ1RFTEVNRU5ULCBTVkdGb3Jl
aWduT2JqZWN0RWxlbWVudCkKLSNlbHNlCi0jZGVmaW5lIFNWR19GT1JFSUdOX09CSkVDVF9FTEVN
RU5UX1RZUEVTKFYpCi0jZW5kaWYKLQotI2lmIEVOQUJMRShTVkdfVVNFKQotI2RlZmluZSBTVkdf
VVNFX0VMRU1FTlRfVFlQRVMoVikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXAotICAgIFYoU1ZHVVNFRUxFTUVOVCwgU1ZHVXNlRWxlbWVudCkKLSNlbHNlCi0jZGVmaW5l
IFNWR19VU0VfRUxFTUVOVF9UWVBFUyhWKQotI2VuZGlmCi0KLSNpZiBFTkFCTEUoU1ZHKQotI2Rl
ZmluZSBTVkdfTk9ERV9UWVBFUyhWKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgXAotICAgIFNWR19BTklNQVRJT05fRUxFTUVOVF9UWVBFUyhWKSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFNWR19GSUxURVJTX0VMRU1FTlRf
VFlQRVMoVikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFNW
R19GT05UU19FTEVNRU5UX1RZUEVTKFYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXAotICAgIFNWR19GT1JFSUdOX09CSkVDVF9FTEVNRU5UX1RZUEVTKFYpICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFNWR19VU0VfRUxFTUVOVF9UWVBFUyhW
KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoU1ZH
QUVMRU1FTlQsIFNWR0FFbGVtZW50KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgXAotICAgIFYoU1ZHQUxUR0xZUEhFTEVNRU5ULCBTVkdBbHRHbHlwaEVsZW1lbnQpICAg
ICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoU1ZHQ0lSQ0xFRUxFTUVOVCwgU1ZHQ2ly
Y2xlRWxlbWVudCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoU1ZHQ0xJ
UFBBVEhFTEVNRU5ULCBTVkdDbGlwUGF0aEVsZW1lbnQpICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXAotICAgIFYoU1ZHQ1VSU09SRUxFTUVOVCwgU1ZHQ3Vyc29yRWxlbWVudCkgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoU1ZHREVGU0VMRU1FTlQsIFNWR0RlZnNFbGVt
ZW50KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoU1ZHREVTQ0VM
RU1FTlQsIFNWR0Rlc2NFbGVtZW50KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
XAotICAgIFYoU1ZHRUxMSVBTRUVMRU1FTlQsIFNWR0VsbGlwc2VFbGVtZW50KSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXAotICAgIFYoU1ZHR0VMRU1FTlQsIFNWR0dFbGVtZW50KSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoU1ZHR0xZUEhFTEVN
RU5ULCBTVkdHbHlwaEVsZW1lbnQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAot
ICAgIFYoU1ZHR1JBRElFTlRFTEVNRU5ULCBTVkdHcmFkaWVudEVsZW1lbnQpICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXAotICAgIFYoU1ZHSU1BR0VFTEVNRU5ULCBTVkdJbWFnZUVsZW1lbnQp
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoU1ZHTElORUFSR1JBRElF
TlRFTEVNRU5ULCBTVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQpICAgICAgICAgICAgICAgXAotICAg
IFYoU1ZHTElORUVMRU1FTlQsIFNWR0xpbmVFbGVtZW50KSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgXAotICAgIFYoU1ZHTUFSS0VSRUxFTUVOVCwgU1ZHTWFya2VyRWxlbWVudCkg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoU1ZHTUFTS0VMRU1FTlQsIFNW
R01hc2tFbGVtZW50KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYo
U1ZHTUVUQURBVEFFTEVNRU5ULCBTVkdNZXRhZGF0YUVsZW1lbnQpICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXAotICAgIFYoU1ZHUEFUSEVMRU1FTlQsIFNWR1BhdGhFbGVtZW50KSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoU1ZHUEFUVEVSTkVMRU1FTlQsIFNW
R1BhdHRlcm5FbGVtZW50KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoU1ZH
UE9MWUdPTkVMRU1FTlQsIFNWR1BvbHlnb25FbGVtZW50KSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgXAotICAgIFYoU1ZHUE9MWUxJTkVFTEVNRU5ULCBTVkdQb2x5bGluZUVsZW1lbnQpICAg
ICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoU1ZHUkFESUFMR1JBRElFTlRFTEVNRU5U
LCBTVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQpICAgICAgICAgICAgICAgXAotICAgIFYoU1ZHUkVD
VEVMRU1FTlQsIFNWR1JlY3RFbGVtZW50KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXAotICAgIFYoU1ZHU0NSSVBURUxFTUVOVCwgU1ZHU2NyaXB0RWxlbWVudCkgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoU1ZHU1RPUEVMRU1FTlQsIFNWR1N0b3BFbGVt
ZW50KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoU1ZHU1RZTEVF
TEVNRU5ULCBTVkdTdHlsZUVsZW1lbnQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
XAotICAgIFYoU1ZHU1ZHRUxFTUVOVCwgU1ZHU1ZHRWxlbWVudCkgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXAotICAgIFYoU1ZHU1dJVENIRUxFTUVOVCwgU1ZHU3dpdGNoRWxl
bWVudCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoU1ZHU1lNQk9MRUxF
TUVOVCwgU1ZHU3ltYm9sRWxlbWVudCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAot
ICAgIFYoU1ZHVEVYVENPTlRFTlRFTEVNRU5ULCBTVkdUZXh0Q29udGVudEVsZW1lbnQpICAgICAg
ICAgICAgICAgICAgICAgXAotICAgIFYoU1ZHVEVYVEVMRU1FTlQsIFNWR1RleHRFbGVtZW50KSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoU1ZHVEVYVFBBVEhFTEVN
RU5ULCBTVkdUZXh0UGF0aEVsZW1lbnQpICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAg
IFYoU1ZHVEVYVFBPU0lUSU9OSU5HRUxFTUVOVCwgU1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudCkg
ICAgICAgICAgICAgXAotICAgIFYoU1ZHVElUTEVFTEVNRU5ULCBTVkdUaXRsZUVsZW1lbnQpICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoU1ZHVFJFRkVMRU1FTlQsIFNW
R1RSZWZFbGVtZW50KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYo
U1ZHVFNQQU5FTEVNRU5ULCBTVkdUU3BhbkVsZW1lbnQpICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXAotICAgIFYoU1ZHVklFV0VMRU1FTlQsIFNWR1ZpZXdFbGVtZW50KSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoU1ZHRUxFTUVOVCwgU1ZHRWxlbWVu
dCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoU1ZH
RE9DVU1FTlQsIFNWR0RvY3VtZW50KQotI2VuZGlmICAvLyBTVkcKLQotCi0jaWYgRU5BQkxFKFdF
Ql9TT0NLRVRTKQotI2RlZmluZSBXRUJTT0NLRVRfQUNUSVZFX09CSkVDVF9XUkFQUEVSX1RZUEVT
KFYpICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoV0VCU09DS0VULCBXZWJTb2NrZXQp
Ci0jZWxzZQotI2RlZmluZSBXRUJTT0NLRVRfQUNUSVZFX09CSkVDVF9XUkFQUEVSX1RZUEVTKFYp
Ci0jZW5kaWYKLQotLy8gQUNUSVZFX0RPTV9PQkpFQ1RfVFlQRVMgYXJlIERPTV9PQkpFQ1RfVFlQ
RVMgdGhhdCBuZWVkIHNwZWNpYWwgdHJlYXRlbWVudAotLy8gZHVyaW5nIEdDLgotI2RlZmluZSBB
Q1RJVkVfRE9NX09CSkVDVF9UWVBFUyhWKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgXAotICAgIFYoTUVTU0FHRVBPUlQsIE1lc3NhZ2VQb3J0KSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoWE1MSFRUUFJFUVVFU1QsIFhNTEh0dHBS
ZXF1ZXN0KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFdPUktFUl9B
Q1RJVkVfT0JKRUNUX1dSQVBQRVJfVFlQRVMoVikgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXAotICAgIFNIQVJFRF9XT1JLRVJfQUNUSVZFX09CSkVDVF9XUkFQUEVSX1RZUEVTKFYpICAg
ICAgICAgICAgICAgICAgICAgICAgXAotICAgIFdFQlNPQ0tFVF9BQ1RJVkVfT0JKRUNUX1dSQVBQ
RVJfVFlQRVMoVikgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIEVWRU5UU09VUkNF
X0FDVElWRV9PQkpFQ1RfV1JBUFBFUl9UWVBFUyhWKQotCi0vLyBOT1RFOiBET01fT0JKRUNUX1RZ
UEVTIGlzIHNwbGl0IGludG8gdHdvIGhhbHZlcyBiZWNhdXNlCi0vLyAgICAgICBWaXN1YWwgU3R1
ZGlvJ3MgSW50ZWxsaW5vbnNlbnNlIGNyYXNoZXMgd2hlbiBtYWNyb3MgZ2V0Ci0vLyAgICAgICB0
b28gbGFyZ2UuICAxMC0yOS0wOAotLy8gRE9NX09CSkVDVF9UWVBFUyBhcmUgbm9uLW5vZGUgRE9N
IHR5cGVzLgotI2RlZmluZSBET01fT0JKRUNUX1RZUEVTXzEoVikgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoQkFSSU5GTywgQmFySW5mbykgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoQkVGT1JF
TE9BREVWRU5ULCBCZWZvcmVMb2FkRXZlbnQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXAotICAgIFYoQkxPQiwgQmxvYikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoQ0FOVkFTR1JBRElFTlQsIENhbnZhc0dyYWRp
ZW50KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoQ0FOVkFTUEFU
VEVSTiwgQ2FudmFzUGF0dGVybikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
XAotICAgIFYoQ0FOVkFTUkVOREVSSU5HQ09OVEVYVCwgQ2FudmFzUmVuZGVyaW5nQ29udGV4dCkg
ICAgICAgICAgICAgICAgICAgXAotICAgIFYoQ0FOVkFTUkVOREVSSU5HQ09OVEVYVDJELCBDYW52
YXNSZW5kZXJpbmdDb250ZXh0MkQpICAgICAgICAgICAgICAgXAotICAgIFYoQ0xJRU5UUkVDVCwg
Q2xpZW50UmVjdCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAot
ICAgIFYoQ0xJRU5UUkVDVExJU1QsIENsaWVudFJlY3RMaXN0KSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXAotICAgIFYoQ0xJUEJPQVJELCBDbGlwYm9hcmQpICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoQ09OU09MRSwgQ29uc29s
ZSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAg
IFYoQ09NUE9TSVRJT05FVkVOVCwgQ29tcG9zaXRpb25FdmVudCkgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgXAotICAgIFYoQ09VTlRFUiwgQ291bnRlcikgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoQ1NTQ0hBUlNFVFJVTEUsIENT
U0NoYXJzZXRSdWxlKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYo
Q1NTRk9OVEZBQ0VSVUxFLCBDU1NGb250RmFjZVJ1bGUpICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXAotICAgIFYoQ1NTSU1QT1JUUlVMRSwgQ1NTSW1wb3J0UnVsZSkgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoQ1NTTUVESUFSVUxFLCBDU1NNZWRp
YVJ1bGUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoQ1NT
UEFHRVJVTEUsIENTU1BhZ2VSdWxlKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgXAotICAgIFYoQ1NTUFJJTUlUSVZFVkFMVUUsIENTU1ByaW1pdGl2ZVZhbHVlKSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoQ1NTUlVMRSwgQ1NTUnVsZSkgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoQ1NTUlVM
RUxJU1QsIENTU1J1bGVMaXN0KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXAotICAgIFYoQ1NTU1RZTEVERUNMQVJBVElPTiwgQ1NTU3R5bGVEZWNsYXJhdGlvbikgICAg
ICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoQ1NTU1RZTEVSVUxFLCBDU1NTdHlsZVJ1bGUp
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoQ1NTU1RZTEVT
SEVFVCwgQ1NTU3R5bGVTaGVldCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
XAotICAgIFYoQ1NTVkFMVUUsIENTU1ZhbHVlKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXAotICAgIFYoQ1NTVkFMVUVMSVNULCBDU1NWYWx1ZUxpc3QpICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoQ1NTVkFSSUFCTEVT
REVDTEFSQVRJT04sIENTU1ZhcmlhYmxlc0RlY2xhcmF0aW9uKSAgICAgICAgICAgICAgICAgXAot
ICAgIFYoQ1NTVkFSSUFCTEVTUlVMRSwgQ1NTVmFyaWFibGVzUnVsZSkgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXAotICAgIFYoRE9NQ09SRUVYQ0VQVElPTiwgRE9NQ29yZUV4Y2VwdGlv
bikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoRE9NRk9STURBVEEsIERP
TUZvcm1EYXRhKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAg
IFYoRE9NSU1QTEVNRU5UQVRJT04sIERPTUltcGxlbWVudGF0aW9uKSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgXAotICAgIFYoRE9NUEFSU0VSLCBET01QYXJzZXIpICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoRE9NU0VMRUNUSU9OLCBET01T
ZWxlY3Rpb24pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYo
RE9NV0lORE9XLCBET01XaW5kb3cpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXAotICAgIFYoRVZFTlQsIEV2ZW50KSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoRVZFTlRFWENFUFRJT04sIEV2ZW50
RXhjZXB0aW9uKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoRklM
RSwgRmlsZSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgXAotICAgIFYoRklMRUxJU1QsIEZpbGVMaXN0KSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoSElTVE9SWSwgSGlzdG9yeSkgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoSFRNTEFM
TENPTExFQ1RJT04sIEhUTUxBbGxDb2xsZWN0aW9uKSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXAotICAgIFYoSFRNTENPTExFQ1RJT04sIEhUTUxDb2xsZWN0aW9uKSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoSFRNTE9QVElPTlNDT0xMRUNUSU9OLCBIVE1M
T3B0aW9uc0NvbGxlY3Rpb24pICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoSU1BR0VEQVRB
LCBJbWFnZURhdGEpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
XAotICAgIFYoQ0FOVkFTUElYRUxBUlJBWSwgQ2FudmFzUGl4ZWxBcnJheSkgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXAotICAgIFYoS0VZQk9BUkRFVkVOVCwgS2V5Ym9hcmRFdmVudCkg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoTE9DQVRJT04sIExv
Y2F0aW9uKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAot
ICAgIFYoTUVESUEsIE1lZGlhKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXAotICAgIFYoTUVESUFMSVNULCBNZWRpYUxpc3QpCi0KLSNkZWZpbmUg
RE9NX09CSkVDVF9UWVBFU18yKFYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFwKLSAgICBWKE1FU1NBR0VDSEFOTkVMLCBNZXNzYWdlQ2hhbm5lbCkgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKE1FU1NBR0VFVkVOVCwgTWVzc2FnZUV2
ZW50KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKE1JTUVU
WVBFLCBNaW1lVHlwZSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFwKLSAgICBWKE1JTUVUWVBFQVJSQVksIE1pbWVUeXBlQXJyYXkpICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKE1PVVNFRVZFTlQsIE1vdXNlRXZlbnQpICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKE1VVEFUSU9O
RVZFTlQsIE11dGF0aW9uRXZlbnQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFwKLSAgICBWKE5BTUVETk9ERU1BUCwgTmFtZWROb2RlTWFwKSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKE5BVklHQVRPUiwgTmF2aWdhdG9yKSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKE5PREVGSUxURVIs
IE5vZGVGaWx0ZXIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK
LSAgICBWKE5PREVJVEVSQVRPUiwgTm9kZUl0ZXJhdG9yKSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFwKLSAgICBWKE5PREVMSVNULCBOb2RlTGlzdCkgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKE9WRVJGTE9XRVZFTlQs
IE92ZXJmbG93RXZlbnQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAg
ICBWKFBBR0VUUkFOU0lUSU9ORVZFTlQsIFBhZ2VUcmFuc2l0aW9uRXZlbnQpICAgICAgICAgICAg
ICAgICAgICAgICAgIFwKLSAgICBWKFBMVUdJTiwgUGx1Z2luKSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKFBMVUdJTkFSUkFZLCBQbHVn
aW5BcnJheSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBW
KFBPUFNUQVRFRVZFTlQsIFBvcFN0YXRlRXZlbnQpICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFwKLSAgICBWKFBST0dSRVNTRVZFTlQsIFByb2dyZXNzRXZlbnQpICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKFJBTkdFLCBSYW5nZSkgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKFJB
TkdFRVhDRVBUSU9OLCBSYW5nZUV4Y2VwdGlvbikgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFwKLSAgICBWKFJFQ1QsIFJlY3QpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKFJHQkNPTE9SLCBSR0JDb2xvcikgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKFNDUkVF
TiwgU2NyZWVuKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFwKLSAgICBWKFNUWUxFU0hFRVQsIFN0eWxlU2hlZXQpICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKFNUWUxFU0hFRVRMSVNULCBTdHlsZVNoZWV0
TGlzdCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKFRFWFRFVkVO
VCwgVGV4dEV2ZW50KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFwKLSAgICBWKFRFWFRNRVRSSUNTLCBUZXh0TWV0cmljcykgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKFRSRUVXQUxLRVIsIFRyZWVXYWxrZXIpICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKFVJRVZFTlQsIFVJ
RXZlbnQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK
LSAgICBWKFZBTElESVRZU1RBVEUsIFZhbGlkaXR5U3RhdGUpICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFwKLSAgICBWKFdFQktJVEFOSU1BVElPTkVWRU5ULCBXZWJLaXRBbmlt
YXRpb25FdmVudCkgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKFdFQktJVENTU0tFWUZS
QU1FUlVMRSwgV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlKSAgICAgICAgICAgICAgICAgICAgIFwKLSAg
ICBWKFdFQktJVENTU0tFWUZSQU1FU1JVTEUsIFdlYktpdENTU0tleWZyYW1lc1J1bGUpICAgICAg
ICAgICAgICAgICAgIFwKLSAgICBWKFdFQktJVENTU01BVFJJWCwgV2ViS2l0Q1NTTWF0cml4KSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKFdFQktJVFBPSU5ULCBXZWJL
aXRQb2ludCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBW
KFdFQktJVENTU1RSQU5TRk9STVZBTFVFLCBXZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZSkgICAgICAg
ICAgICAgICAgIFwKLSAgICBWKFdFQktJVFRSQU5TSVRJT05FVkVOVCwgV2ViS2l0VHJhbnNpdGlv
bkV2ZW50KSAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKFdIRUVMRVZFTlQsIFdoZWVsRXZl
bnQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKFhN
TEhUVFBSRVFVRVNUVVBMT0FELCBYTUxIdHRwUmVxdWVzdFVwbG9hZCkgICAgICAgICAgICAgICAg
ICAgICAgIFwKLSAgICBWKFhNTEhUVFBSRVFVRVNURVhDRVBUSU9OLCBYTUxIdHRwUmVxdWVzdEV4
Y2VwdGlvbikgICAgICAgICAgICAgICAgIFwKLSAgICBWKFhNTEhUVFBSRVFVRVNUUFJPR1JFU1NF
VkVOVCwgWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50KSAgICAgICAgIFwKLSAgICBWKFhNTFNF
UklBTElaRVIsIFhNTFNlcmlhbGl6ZXIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFwKLSAgICBBQ1RJVkVfRE9NX09CSkVDVF9UWVBFUyhWKSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBBUFBMSUNBVElPTkNBQ0hFX05PTk5PREVfV1JB
UFBFUl9UWVBFUyhWKSAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBEQVRBR1JJRF9O
T05OT0RFX1RZUEVTKFYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFwKLSAgICBWSURFT19OT05OT0RFX1RZUEVTKFYpICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFwKLSAgICBOT1RJRklDQVRJT05TX05PTk5PREVfV1JBUFBFUl9U
WVBFUyhWKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBTSEFSRURfV09SS0VS
X05PTk5PREVfV1JBUFBFUl9UWVBFUyhWKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK
LSAgICBXT1JLRVJfTk9OTk9ERV9XUkFQUEVSX1RZUEVTKFYpCi0KLSNpZiBFTkFCTEUoREFUQUJB
U0UpCi0jZGVmaW5lIERPTV9PQkpFQ1RfREFUQUJBU0VfVFlQRVMoVikgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihEQVRBQkFTRSwgRGF0YWJhc2UpICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihTUUxFUlJPUiwg
U1FMRXJyb3IpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc
Ci0gICAgVihTUUxSRVNVTFRTRVQsIFNRTFJlc3VsdFNldCkgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBcCi0gICAgVihTUUxSRVNVTFRTRVRST1dMSVNULCBTUUxSZXN1bHRT
ZXRSb3dMaXN0KSAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihTUUxUUkFOU0FDVElP
TiwgU1FMVHJhbnNhY3Rpb24pCi0jZWxzZQotI2RlZmluZSBET01fT0JKRUNUX0RBVEFCQVNFX1RZ
UEVTKFYpCi0jZW5kaWYKLQotI2lmIEVOQUJMRShET01fU1RPUkFHRSkKLSNkZWZpbmUgRE9NX09C
SkVDVF9TVE9SQUdFX1RZUEVTKFYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFwKLSAgICBWKFNUT1JBR0UsIFN0b3JhZ2UpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKFNUT1JBR0VFVkVOVCwgU3RvcmFnZUV2ZW50KQot
I2Vsc2UKLSNkZWZpbmUgRE9NX09CSkVDVF9TVE9SQUdFX1RZUEVTKFYpCi0jZW5kaWYKLQotI2lm
IEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQotI2RlZmluZSBET01fT0JKRUNUX0lOREVYRURfREFU
QUJBU0VfVFlQRVMoVikgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoSURCREFU
QUJBU0VFUlJPUiwgSURCRGF0YWJhc2VFcnJvcikgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXAotICAgIFYoSURCREFUQUJBU0VFWENFUFRJT04sIElEQkRhdGFiYXNlRXhjZXB0aW9uKSAg
ICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoSURCREFUQUJBU0VSRVFVRVNULCBJREJEYXRh
YmFzZVJlcXVlc3QpICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoSURCUkVRVUVT
VCwgSURCUmVxdWVzdCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
XAotICAgIFYoSU5ERVhFRERBVEFCQVNFUkVRVUVTVCwgSW5kZXhlZERhdGFiYXNlUmVxdWVzdCkK
LSNlbHNlCi0jZGVmaW5lIERPTV9PQkpFQ1RfSU5ERVhFRF9EQVRBQkFTRV9UWVBFUyhWKQotI2Vu
ZGlmCi0KLSNpZiBFTkFCTEUoV09SS0VSUykKLSNkZWZpbmUgRE9NX09CSkVDVF9XT1JLRVJTX1RZ
UEVTKFYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKEVSUk9S
RVZFTlQsIEVycm9yRXZlbnQpCi0jZWxzZQotI2RlZmluZSBET01fT0JKRUNUX1dPUktFUlNfVFlQ
RVMoVikKLSNlbmRpZgotCi0jaWYgRU5BQkxFKDNEX0NBTlZBUykKLSNkZWZpbmUgRE9NX09CSkVD
VF8zRF9DQU5WQVNfVFlQRVMoVikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK
LSAgICBWKFdFQkdMQUNUSVZFSU5GTywgV2ViR0xBY3RpdmVJbmZvKSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFwKLSAgICBWKFdFQkdMQVJSQVksIFdlYkdMQXJyYXkpICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKFdFQkdMQVJSQVlCVUZG
RVIsIFdlYkdMQXJyYXlCdWZmZXIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAg
ICBWKFdFQkdMQlVGRkVSLCBXZWJHTEJ1ZmZlcikgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFwKLSAgICBWKFdFQkdMQllURUFSUkFZLCBXZWJHTEJ5dGVBcnJheSkgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKFdFQkdMQ09OVEVYVEFUVFJJ
QlVURVMsIFdlYkdMQ29udGV4dEF0dHJpYnV0ZXMpICAgICAgICAgICAgICAgICAgIFwKLSAgICBW
KFdFQkdMRkxPQVRBUlJBWSwgV2ViR0xGbG9hdEFycmF5KSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFwKLSAgICBWKFdFQkdMRlJBTUVCVUZGRVIsIFdlYkdMRnJhbWVidWZmZXIpICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKFdFQkdMSU5UQVJSQVksIFdlYkdM
SW50QXJyYXkpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKFdF
QkdMUFJPR1JBTSwgV2ViR0xQcm9ncmFtKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFwKLSAgICBWKFdFQkdMUkVOREVSQlVGRkVSLCBXZWJHTFJlbmRlcmJ1ZmZlcikgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKFdFQkdMUkVOREVSSU5HQ09OVEVYVCwg
V2ViR0xSZW5kZXJpbmdDb250ZXh0KSAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKFdFQkdM
U0hBREVSLCBXZWJHTFNoYWRlcikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFwKLSAgICBWKFdFQkdMU0hPUlRBUlJBWSwgV2ViR0xTaG9ydEFycmF5KSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKFdFQkdMVEVYVFVSRSwgV2ViR0xUZXh0dXJl
KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKFdFQkdMVU5J
Rk9STUxPQ0FUSU9OLCBXZWJHTFVuaWZvcm1Mb2NhdGlvbikgICAgICAgICAgICAgICAgICAgICAg
IFwKLSAgICBWKFdFQkdMVU5TSUdORURCWVRFQVJSQVksIFdlYkdMVW5zaWduZWRCeXRlQXJyYXkp
ICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKFdFQkdMVU5TSUdORURJTlRBUlJBWSwgV2ViR0xV
bnNpZ25lZEludEFycmF5KSAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKFdFQkdMVU5TSUdO
RURTSE9SVEFSUkFZLCBXZWJHTFVuc2lnbmVkU2hvcnRBcnJheSkKLSNlbHNlCi0jZGVmaW5lIERP
TV9PQkpFQ1RfM0RfQ0FOVkFTX1RZUEVTKFYpCi0jZW5kaWYKLQotI2lmIEVOQUJMRShYUEFUSCkK
LSNkZWZpbmUgRE9NX09CSkVDVF9YUEFUSF9UWVBFUyhWKSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFwKLSAgICBWKFhQQVRIRVZBTFVBVE9SLCBYUGF0aEV2YWx1YXRvcikg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKFhQQVRIRVhDRVBUSU9O
LCBYUGF0aEV4Y2VwdGlvbikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAg
ICBWKFhQQVRIRVhQUkVTU0lPTiwgWFBhdGhFeHByZXNzaW9uKSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFwKLSAgICBWKFhQQVRITlNSRVNPTFZFUiwgWFBhdGhOU1Jlc29sdmVyKSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKFhQQVRIUkVTVUxULCBYUGF0
aFJlc3VsdCkKLSNlbHNlCi0jZGVmaW5lIERPTV9PQkpFQ1RfWFBBVEhfVFlQRVMoVikKLSNlbmRp
ZgotCi0jaWYgRU5BQkxFKFhTTFQpCi0jZGVmaW5lIERPTV9PQkpFQ1RfWFNMVF9UWVBFUyhWKSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihYU0xUUFJPQ0VT
U09SLCBYU0xUUHJvY2Vzc29yKQotI2Vsc2UKLSNkZWZpbmUgRE9NX09CSkVDVF9YU0xUX1RZUEVT
KFYpCi0jZW5kaWYKLQotI2lmIEVOQUJMRShJTlNQRUNUT1IpCi0jZGVmaW5lIERPTV9PQkpFQ1Rf
SU5TUEVDVE9SX1RZUEVTKFYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0g
ICAgVihJTlNQRUNUT1JCQUNLRU5ELCBJbnNwZWN0b3JCYWNrZW5kKSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBcCi0gICAgVihJTlNQRUNUT1JGUk9OVEVOREhPU1QsIEluc3BlY3RvckZy
b250ZW5kSG9zdCkgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihJTkpFQ1RFRFNDUklQVEhP
U1QsIEluamVjdGVkU2NyaXB0SG9zdCkKLSNlbHNlCi0jZGVmaW5lIERPTV9PQkpFQ1RfSU5TUEVD
VE9SX1RZUEVTKFYpCi0jZW5kaWYKLQotI2RlZmluZSBET01fT0JKRUNUX0dFT0xPQ0FUSU9OX1RZ
UEVTKFYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoQ09PUkRJTkFU
RVMsIENvb3JkaW5hdGVzKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
XAotICAgIFYoR0VPTE9DQVRJT04sIEdlb2xvY2F0aW9uKSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXAotICAgIFYoR0VPUE9TSVRJT04sIEdlb3Bvc2l0aW9uKSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoUE9TSVRJT05FUlJP
UiwgUG9zaXRpb25FcnJvcikKLQotI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCi0jZGVmaW5lIERP
TV9PQkpFQ1RfVE9VQ0hfRVZFTlRfVFlQRVMoVikgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBcCi0gICAgVihUT1VDSCwgVG91Y2gpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihUT1VDSEVWRU5ULCBUb3VjaEV2ZW50KSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihUT1VDSExJ
U1QsIFRvdWNoTGlzdCkKLSNlbHNlCi0jZGVmaW5lIERPTV9PQkpFQ1RfVE9VQ0hfRVZFTlRfVFlQ
RVMoVikKLSNlbmRpZgotCi0jZGVmaW5lIERPTV9PQkpFQ1RfVFlQRVMoVikgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgRE9NX09CSkVDVF9UWVBFU18x
KFYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAg
RE9NX09CSkVDVF9UWVBFU18yKFYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBcCi0gICAgRE9NX09CSkVDVF9EQVRBQkFTRV9UWVBFUyhWKSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgRE9NX09CSkVDVF9TVE9SQUdFX1RZ
UEVTKFYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgRE9N
X09CSkVDVF9JTkRFWEVEX0RBVEFCQVNFX1RZUEVTKFYpICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBcCi0gICAgRE9NX09CSkVDVF9XT1JLRVJTX1RZUEVTKFYpICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgRE9NX09CSkVDVF8zRF9DQU5WQVNfVFlQ
RVMoVikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgRE9NX09C
SkVDVF9YUEFUSF9UWVBFUyhWKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBcCi0gICAgRE9NX09CSkVDVF9YU0xUX1RZUEVTKFYpICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgRE9NX09CSkVDVF9JTlNQRUNUT1JfVFlQRVMo
VikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgRE9NX09CSkVD
VF9HRU9MT0NBVElPTl9UWVBFUyhWKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBcCi0gICAgRE9NX09CSkVDVF9UT1VDSF9FVkVOVF9UWVBFUyhWKQotCi0jaWYgRU5BQkxFKFNW
RykKLS8vIFNWR19PQkpFQ1RfVFlQRVMgYXJlIHN2ZyBub24tbm9kZSwgbm9uLXBvZCB0eXBlcy4K
LSNkZWZpbmUgU1ZHX09CSkVDVF9UWVBFUyhWKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFwKLSAgICBWKFNWR0FOSU1BVEVEQU5HTEUsIFNWR0FuaW1hdGVkQW5n
bGUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKFNWR0FOSU1BVEVEQk9P
TEVBTiwgU1ZHQW5pbWF0ZWRCb29sZWFuKSAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAg
ICBWKFNWR0FOSU1BVEVERU5VTUVSQVRJT04sIFNWR0FuaW1hdGVkRW51bWVyYXRpb24pICAgICAg
ICAgICAgICAgICAgIFwKLSAgICBWKFNWR0FOSU1BVEVESU5URUdFUiwgU1ZHQW5pbWF0ZWRJbnRl
Z2VyKSAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKFNWR0FOSU1BVEVETEVOR1RI
LCBTVkdBbmltYXRlZExlbmd0aCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBW
KFNWR0FOSU1BVEVETEVOR1RITElTVCwgU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0KSAgICAgICAgICAg
ICAgICAgICAgIFwKLSAgICBWKFNWR0FOSU1BVEVETlVNQkVSLCBTVkdBbmltYXRlZE51bWJlcikg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKFNWR0FOSU1BVEVETlVNQkVSTElT
VCwgU1ZHQW5pbWF0ZWROdW1iZXJMaXN0KSAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKFNW
R0FOSU1BVEVEUFJFU0VSVkVBU1BFQ1RSQVRJTywgU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJh
dGlvKSAgIFwKLSAgICBWKFNWR0FOSU1BVEVEUkVDVCwgU1ZHQW5pbWF0ZWRSZWN0KSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKFNWR0FOSU1BVEVEU1RSSU5HLCBTVkdB
bmltYXRlZFN0cmluZykgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKFNWR0FO
SU1BVEVEVFJBTlNGT1JNTElTVCwgU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0KSAgICAgICAgICAg
ICAgIFwKLSAgICBWKFNWR0NPTE9SLCBTVkdDb2xvcikgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKFNWR0VMRU1FTlRJTlNUQU5DRSwgU1ZHRWxl
bWVudEluc3RhbmNlKSAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKFNWR0VMRU1F
TlRJTlNUQU5DRUxJU1QsIFNWR0VsZW1lbnRJbnN0YW5jZUxpc3QpICAgICAgICAgICAgICAgICAg
IFwKLSAgICBWKFNWR0VYQ0VQVElPTiwgU1ZHRXhjZXB0aW9uKSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKFNWR0xFTkdUSExJU1QsIFNWR0xlbmd0aExpc3Qp
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKFNWR05VTUJFUkxJ
U1QsIFNWR051bWJlckxpc3QpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK
LSAgICBWKFNWR1BBSU5ULCBTVkdQYWludCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFwKLSAgICBWKFNWR1BBVEhTRUcsIFNWR1BhdGhTZWcpICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKFNWR1BBVEhTRUdBUkNB
QlMsIFNWR1BhdGhTZWdBcmNBYnMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAg
ICBWKFNWR1BBVEhTRUdBUkNSRUwsIFNWR1BhdGhTZWdBcmNSZWwpICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFwKLSAgICBWKFNWR1BBVEhTRUdDTE9TRVBBVEgsIFNWR1BhdGhTZWdDbG9z
ZVBhdGgpICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKFNWR1BBVEhTRUdDVVJWRVRP
Q1VCSUNBQlMsIFNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNBYnMpICAgICAgICAgICAgIFwKLSAgICBW
KFNWR1BBVEhTRUdDVVJWRVRPQ1VCSUNSRUwsIFNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNSZWwpICAg
ICAgICAgICAgIFwKLSAgICBWKFNWR1BBVEhTRUdDVVJWRVRPQ1VCSUNTTU9PVEhBQlMsIFNWR1Bh
dGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhBYnMpIFwKLSAgICBWKFNWR1BBVEhTRUdDVVJWRVRPQ1VC
SUNTTU9PVEhSRUwsIFNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhSZWwpIFwKLSAgICBWKFNW
R1BBVEhTRUdDVVJWRVRPUVVBRFJBVElDQUJTLCBTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY0Fi
cykgICAgIFwKLSAgICBWKFNWR1BBVEhTRUdDVVJWRVRPUVVBRFJBVElDUkVMLCBTVkdQYXRoU2Vn
Q3VydmV0b1F1YWRyYXRpY1JlbCkgICAgIFwKLSAgICBWKFNWR1BBVEhTRUdDVVJWRVRPUVVBRFJB
VElDU01PT1RIQUJTLCBTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Ntb290aEFicylcCi0gICAg
VihTVkdQQVRIU0VHQ1VSVkVUT1FVQURSQVRJQ1NNT09USFJFTCwgU1ZHUGF0aFNlZ0N1cnZldG9R
dWFkcmF0aWNTbW9vdGhSZWwpXAotICAgIFYoU1ZHUEFUSFNFR0xJTkVUT0FCUywgU1ZHUGF0aFNl
Z0xpbmV0b0FicykgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoU1ZHUEFUSFNFR0xJ
TkVUT0hPUklaT05UQUxBQlMsIFNWR1BhdGhTZWdMaW5ldG9Ib3Jpem9udGFsQWJzKSAgICAgXAot
ICAgIFYoU1ZHUEFUSFNFR0xJTkVUT0hPUklaT05UQUxSRUwsIFNWR1BhdGhTZWdMaW5ldG9Ib3Jp
em9udGFsUmVsKSAgICAgXAotICAgIFYoU1ZHUEFUSFNFR0xJTkVUT1JFTCwgU1ZHUGF0aFNlZ0xp
bmV0b1JlbCkgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoU1ZHUEFUSFNFR0xJTkVU
T1ZFUlRJQ0FMQUJTLCBTVkdQYXRoU2VnTGluZXRvVmVydGljYWxBYnMpICAgICAgICAgXAotICAg
IFYoU1ZHUEFUSFNFR0xJTkVUT1ZFUlRJQ0FMUkVMLCBTVkdQYXRoU2VnTGluZXRvVmVydGljYWxS
ZWwpICAgICAgICAgXAotICAgIFYoU1ZHUEFUSFNFR0xJU1QsIFNWR1BhdGhTZWdMaXN0KSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoU1ZHUEFUSFNFR01PVkVUT0FC
UywgU1ZHUGF0aFNlZ01vdmV0b0FicykgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYo
U1ZHUEFUSFNFR01PVkVUT1JFTCwgU1ZHUGF0aFNlZ01vdmV0b1JlbCkgICAgICAgICAgICAgICAg
ICAgICAgICAgXAotICAgIFYoU1ZHUE9JTlRMSVNULCBTVkdQb2ludExpc3QpICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoU1ZHUkVOREVSSU5HSU5URU5ULCBT
VkdSZW5kZXJpbmdJbnRlbnQpICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoU1ZH
U1RSSU5HTElTVCwgU1ZHU3RyaW5nTGlzdCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgXAotICAgIFYoU1ZHVFJBTlNGT1JNTElTVCwgU1ZHVHJhbnNmb3JtTGlzdCkgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoU1ZHVU5JVFRZUEVTLCBTVkdVbml0VHlw
ZXMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoU1ZHWk9P
TUVWRU5ULCBTVkdab29tRXZlbnQpCi0KLS8vIFNWRyBQT0QgdHlwZXMgc2hvdWxkIGxpc3QgYWxs
IHR5cGVzIHdob3NlIElETCBoYXMgUE9EVHlwZSBkZWNsYXJhdGlvbi4KLSNkZWZpbmUgU1ZHX1BP
RF9UWVBFUyhWKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFwKLSAgICBWKFNWR0FOR0xFLCBTVkdBbmdsZSkgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKFNWR0xFTkdUSCwgU1ZHTGVuZ3RoKSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKFNWR1BSRVNFUlZF
QVNQRUNUUkFUSU8sIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8pICAgICAgICAgICAgICAgICAgIFwK
LSAgICBWKFNWR1RSQU5TRk9STSwgU1ZHVHJhbnNmb3JtKSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFwKLSAgICBWKFNWR01BVFJJWCwgU1ZHTWF0cml4KSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKFNWR05VTUJFUiwgU1ZH
TnVtYmVyKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAg
ICBWKFNWR1BPSU5ULCBTVkdQb2ludCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFwKLSAgICBWKFNWR1JFQ1QsIFNWR1JlY3QpCi0KLS8vIFBPRCB0eXBlcyBj
YW4gaGF2ZSBkaWZmZXJlbnQgaW1wbGVtZW50YXRpb24gbmFtZXMsIHNlZSBDb2RlR2VuZXJhdGVW
OC5wbS4KLSNkZWZpbmUgU1ZHX1BPRF9OQVRJVkVfVFlQRVMoVikgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKFNWR0FOR0xFLCBTVkdBbmdsZSkgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKFNWR0xFTkdU
SCwgU1ZHTGVuZ3RoKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFwKLSAgICBWKFNWR1BSRVNFUlZFQVNQRUNUUkFUSU8sIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8p
ICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKFNWR1RSQU5TRk9STSwgU1ZHVHJhbnNmb3JtKSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKFNWR01BVFJJWCwg
QWZmaW5lVHJhbnNmb3JtKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK
LSAgICBWKFNWR05VTUJFUiwgZmxvYXQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFwKLSAgICBWKFNWR1BPSU5ULCBGbG9hdFBvaW50KSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKFNWR1JFQ1QsIEZsb2F0
UmVjdCkKLQotLy8gU2hvdWxkbid0IGdlbmVyYXRlIGNvZGUgZm9yIHRoZXNlIHR3byB0eXBlcy4K
LSNkZWZpbmUgU1ZHX05PX1dSQVBQRVJfVFlQRVMoVikgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFwKLSAgICBWKFNWR1VSSVJFRkVSRU5DRSwgU1ZHVVJJUmVmZXJlbmNl
KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKFNWR0FOSU1BVEVEUE9J
TlRTLCBTVkdBbmltYXRlZFBvaW50cykKLQotLy8gU1ZHX05PTk5PREVfVFlQRVMgYXJlIFNWRyBu
b24tbm9kZSBvYmplY3QgdHlwZXMsIHBvZCB0eXBzIGFuZAotLy8gbnVtZXJpY2FsIHR5cGVzLgot
I2RlZmluZSBTVkdfTk9OTk9ERV9UWVBFUyhWKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXAotICAgIFNWR19PQkpFQ1RfVFlQRVMoVikgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFNWR19QT0RfVFlQRVMoVikK
LSNlbmRpZiAgLy8gU1ZHCi0KLS8vIEVWRU5UVEFSR0VULCBFVkVOVExJU1RFTkVSLCBhbmQgTlBP
QkpFQ1QgZG8gbm90IGhhdmUgVjggd3JhcHBlcnMuCi0jZGVmaW5lIERPTV9OT19XUkFQUEVSX1RZ
UEVTKFYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihF
VkVOVFRBUkdFVCwgRXZlbnRUYXJnZXQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBcCi0gICAgVihFVkVOVExJU1RFTkVSLCBFdmVudExpc3RlbmVyKSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihOUE9CSkVDVCwgTlBPYmplY3QpCi0K
LSNpZiBFTkFCTEUoU1ZHKQotI2RlZmluZSBXUkFQUEVSX1RZUEVTKFYpIERPTV9OT0RFX1RZUEVT
KFYpIERPTV9PQkpFQ1RfVFlQRVMoVikgU1ZHX05PREVfVFlQRVMoVikgU1ZHX05PTk5PREVfVFlQ
RVMoVikKLSNkZWZpbmUgTk9fV1JBUFBFUl9UWVBFUyhWKSBET01fTk9fV1JBUFBFUl9UWVBFUyhW
KSBTVkdfTk9fV1JBUFBFUl9UWVBFUyhWKQotI2Vsc2UgIC8vIFNWRwotI2RlZmluZSBXUkFQUEVS
X1RZUEVTKFYpIERPTV9OT0RFX1RZUEVTKFYpIERPTV9PQkpFQ1RfVFlQRVMoVikKLSNkZWZpbmUg
Tk9fV1JBUFBFUl9UWVBFUyhWKSBET01fTk9fV1JBUFBFUl9UWVBFUyhWKQotI2VuZGlmICAvLyBT
VkcKLQotI2RlZmluZSBBTExfV1JBUFBFUl9UWVBFUyhWKSBXUkFQUEVSX1RZUEVTKFYpIE5PX1dS
QVBQRVJfVFlQRVMoVikKLQotICAgIGNsYXNzIFY4Q2xhc3NJbmRleCB7Ci0gICAgcHVibGljOgot
ICAgICAgICAvLyBUeXBlIG11c3Qgc3RhcnQgYXQgbm9uLW5lZ2F0aXZlIG51bWJlcnMuIFNlZSBU
b0ludCwgRnJvbUludC4KLSAgICAgICAgZW51bSBWOFdyYXBwZXJUeXBlIHsKLSAgICAgICAgICAg
IElOVkFMSURfQ0xBU1NfSU5ERVggPSAwLAotCi0jZGVmaW5lIERFRklORV9FTlVNKG5hbWUsIHR5
cGUpIG5hbWUsIAotICAgICAgICAgICAgQUxMX1dSQVBQRVJfVFlQRVMoREVGSU5FX0VOVU0pCi0j
dW5kZWYgREVGSU5FX0VOVU0KLQotICAgICAgICAgICAgQ0xBU1NJTkRFWF9FTkQsCi0gICAgICAg
ICAgICBXUkFQUEVSX1RZUEVfQ09VTlQgPSBDTEFTU0lOREVYX0VORAotICAgICAgICB9OwotCi0g
ICAgICAgIC8vIEZJWE1FOiBDb252ZXJ0IHRvIHRvSW50IGFmdGVyIGFsbCB0aGUgYmluZGluZ3Mg
YXJlIGluIG9uZSBwbGFjZS4KLSAgICAgICAgc3RhdGljIGludCBUb0ludChWOFdyYXBwZXJUeXBl
IHR5cGUpIHsgcmV0dXJuIHN0YXRpY19jYXN0PGludD4odHlwZSk7IH0KLQotICAgICAgICAvLyBG
SVhNRTogQ29udmVydCB0byBmcm9tSW50IGFmdGVyIGFsbCB0aGUgYmluZGluZ3MgYXJlIGluIG9u
ZSBwbGFjZS4KLSAgICAgICAgc3RhdGljIFY4V3JhcHBlclR5cGUgRnJvbUludChpbnQgdikgewot
ICAgICAgICAgICAgQVNTRVJUKElOVkFMSURfQ0xBU1NfSU5ERVggPD0gdiAmJiB2IDwgQ0xBU1NJ
TkRFWF9FTkQpOwotICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFY4V3JhcHBlclR5cGU+
KHYpOwotICAgICAgICB9Ci0gICAgfTsKLQotICAgIGNsYXNzIEFjdGl2ZURPTU9iamVjdDsKLQot
ICAgIHR5cGVkZWYgdjg6OlBlcnNpc3RlbnQ8djg6OkZ1bmN0aW9uVGVtcGxhdGU+ICgqR2V0VGVt
cGxhdGVGdW5jdGlvbikoKTsKLSAgICB0eXBlZGVmIHZvaWQgKCpEZXJlZk9iamVjdEZ1bmN0aW9u
KSh2b2lkKik7Ci0gICAgdHlwZWRlZiBBY3RpdmVET01PYmplY3QqICgqVG9BY3RpdmVET01PYmpl
Y3RGdW5jdGlvbikodjg6OkhhbmRsZTx2ODo6T2JqZWN0Pik7Ci0KLSAgICBzdHJ1Y3QgV3JhcHBl
clR5cGVJbmZvIHsKLQotICAgICAgICB2ODo6UGVyc2lzdGVudDx2ODo6RnVuY3Rpb25UZW1wbGF0
ZT4gZ2V0VGVtcGxhdGUoKSB7IHJldHVybiBnZXRUZW1wbGF0ZUZ1bmN0aW9uKCk7IH0KLQotICAg
ICAgICB2b2lkIGRlcmVmT2JqZWN0KHZvaWQqIG9iamVjdCkKLSAgICAgICAgewotICAgICAgICAg
ICAgaWYgKGRlcmVmT2JqZWN0RnVuY3Rpb24pIAotICAgICAgICAgICAgICAgIGRlcmVmT2JqZWN0
RnVuY3Rpb24ob2JqZWN0KTsKLSAgICAgICAgfQotCi0gICAgICAgIEFjdGl2ZURPTU9iamVjdCog
dG9BY3RpdmVET01PYmplY3Qodjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBvYmplY3QpCi0gICAgICAg
IHsKLSAgICAgICAgICAgIGlmICghdG9BY3RpdmVET01PYmplY3RGdW5jdGlvbikKLSAgICAgICAg
ICAgICAgICByZXR1cm4gMDsKLSAgICAgICAgICAgIHJldHVybiB0b0FjdGl2ZURPTU9iamVjdEZ1
bmN0aW9uKG9iamVjdCk7Ci0gICAgICAgIH0KLQotICAgICAgICBjb25zdCBpbnQgaW5kZXg7Ci0g
ICAgICAgIGNvbnN0IEdldFRlbXBsYXRlRnVuY3Rpb24gZ2V0VGVtcGxhdGVGdW5jdGlvbjsKLSAg
ICAgICAgY29uc3QgRGVyZWZPYmplY3RGdW5jdGlvbiBkZXJlZk9iamVjdEZ1bmN0aW9uOwotICAg
ICAgICBjb25zdCBUb0FjdGl2ZURPTU9iamVjdEZ1bmN0aW9uIHRvQWN0aXZlRE9NT2JqZWN0RnVu
Y3Rpb247Ci0gICAgfTsKLX0KLQotI2VuZGlmIC8vIFY4SW5kZXhfaApJbmRleDogV2ViQ29yZS9i
aW5kaW5ncy92OC9WOElzb2xhdGVkQ29udGV4dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmlu
ZGluZ3MvdjgvVjhJc29sYXRlZENvbnRleHQuaAkocmV2aXNpb24gNTYwODUpCisrKyBXZWJDb3Jl
L2JpbmRpbmdzL3Y4L1Y4SXNvbGF0ZWRDb250ZXh0LmgJKHdvcmtpbmcgY29weSkKQEAgLTM0LDcg
KzM0LDYgQEAKICNpbmNsdWRlICJJc29sYXRlZFdvcmxkLmgiCiAjaW5jbHVkZSAiU2NyaXB0U291
cmNlQ29kZS5oIiAvLyBmb3IgV2ViQ29yZTo6U2NyaXB0U291cmNlQ29kZQogI2luY2x1ZGUgIlY4
RE9NV2luZG93LmgiCi0jaW5jbHVkZSAiVjhJbmRleC5oIgogI2luY2x1ZGUgIlY4UHJveHkuaCIK
ICNpbmNsdWRlICJWOFV0aWxpdGllcy5oIgogI2luY2x1ZGUgPHY4Lmg+CkluZGV4OiBXZWJDb3Jl
L2JpbmRpbmdzL3Y4L1dvcmtlckNvbnRleHRFeGVjdXRpb25Qcm94eS5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9iaW5kaW5ncy92OC9Xb3JrZXJDb250ZXh0RXhlY3V0aW9uUHJveHkuY3BwCShy
ZXZpc2lvbiA1NjA4NSkKKysrIFdlYkNvcmUvYmluZGluZ3MvdjgvV29ya2VyQ29udGV4dEV4ZWN1
dGlvblByb3h5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDIsMTMgKzQyLDEzIEBACiAjaW5jbHVk
ZSAiVjhCaW5kaW5nLmgiCiAjaW5jbHVkZSAiVjhET01NYXAuaCIKICNpbmNsdWRlICJWOERlZGlj
YXRlZFdvcmtlckNvbnRleHQuaCIKLSNpbmNsdWRlICJWOEluZGV4LmgiCiAjaW5jbHVkZSAiVjhQ
cm94eS5oIgogI2luY2x1ZGUgIlY4U2hhcmVkV29ya2VyQ29udGV4dC5oIgogI2luY2x1ZGUgIlY4
V29ya2VyQ29udGV4dC5oIgogI2luY2x1ZGUgIldvcmtlci5oIgogI2luY2x1ZGUgIldvcmtlckNv
bnRleHQuaCIKICNpbmNsdWRlICJXb3JrZXJTY3JpcHRDb250cm9sbGVyLmgiCisjaW5jbHVkZSAi
V3JhcHBlclR5cGVJbmZvLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApJbmRleDogV2ViQ29y
ZS9iaW5kaW5ncy92OC9WOEdDQ29udHJvbGxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9i
aW5kaW5ncy92OC9WOEdDQ29udHJvbGxlci5jcHAJKHJldmlzaW9uIDU2MDg1KQorKysgV2ViQ29y
ZS9iaW5kaW5ncy92OC9WOEdDQ29udHJvbGxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQwLDgg
KzQwLDkgQEAKICNpbmNsdWRlICJNZXNzYWdlUG9ydC5oIgogI2luY2x1ZGUgIlNWR0VsZW1lbnQu
aCIKICNpbmNsdWRlICJWOERPTU1hcC5oIgotI2luY2x1ZGUgIlY4SW5kZXguaCIKKyNpbmNsdWRl
ICJWOE1lc3NhZ2VQb3J0LmgiCiAjaW5jbHVkZSAiVjhQcm94eS5oIgorI2luY2x1ZGUgIldyYXBw
ZXJUeXBlSW5mby5oIgogCiAjaW5jbHVkZSA8YWxnb3JpdGhtPgogI2luY2x1ZGUgPHV0aWxpdHk+
CkBAIC0xOTUsNyArMTk2LDcgQEAKICAgICAgICAgLy8gZm9ya2luZyBNZXNzYWdlUG9ydC4qIHRo
aXMgaXMgcG9zdHBvbmVkIHRvIEdDIHRpbWUuIEhhdmluZyB0aGlzIHBvc3Rwb25lZAogICAgICAg
ICAvLyBoYXMgdGhlIGRyYXdiYWNrIHRoYXQgdGhlIHdyYXBwZXJzIGFyZSAiZW50YW5nbGVkL3Vu
ZW50YW5nbGVkIiBmb3IgZWFjaAogICAgICAgICAvLyBHQyBldmVuIHRob3VnaCB0aGVpciBlbnRh
Z2xlbWVudCBtb3N0IGxpa2VseSBpcyBzdGlsbCB0aGUgc2FtZS4KLSAgICAgICAgaWYgKHR5cGVJ
bmZvLT5pbmRleCA9PSBWOENsYXNzSW5kZXg6Ok1FU1NBR0VQT1JUKSB7CisgICAgICAgIGlmICh0
eXBlSW5mbyA9PSAmVjhNZXNzYWdlUG9ydDo6aW5mbykgewogICAgICAgICAgICAgLy8gTWFyayBl
YWNoIHBvcnQgYXMgaW4tdXNlIGlmIGl0J3MgZW50YW5nbGVkLiBGb3Igc2ltcGxpY2l0eSdzIHNh
a2UsIHdlIGFzc3VtZSBhbGwgcG9ydHMgYXJlIHJlbW90ZWx5IGVudGFuZ2xlZCwKICAgICAgICAg
ICAgIC8vIHNpbmNlIHRoZSBDaHJvbWl1bSBwb3J0IGltcGxlbWVudGF0aW9uIGNhbid0IHRlbGwg
dGhlIGRpZmZlcmVuY2UuCiAgICAgICAgICAgICBNZXNzYWdlUG9ydCogcG9ydDEgPSBzdGF0aWNf
Y2FzdDxNZXNzYWdlUG9ydCo+KG9iamVjdCk7CkBAIC0zNjYsNyArMzY3LDcgQEAKICAgICB2b2lk
IHZpc2l0RE9NV3JhcHBlcih2b2lkKiBvYmplY3QsIHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+
IHdyYXBwZXIpCiAgICAgewogICAgICAgICBXcmFwcGVyVHlwZUluZm8qIHR5cGVJbmZvID0gVjhE
T01XcmFwcGVyOjpkb21XcmFwcGVyVHlwZSh3cmFwcGVyKTsKLSAgICAgICAgaWYgKHR5cGVJbmZv
LT5pbmRleCA9PSBWOENsYXNzSW5kZXg6Ok1FU1NBR0VQT1JUKSB7CisgICAgICAgIGlmICh0eXBl
SW5mbyA9PSAmVjhNZXNzYWdlUG9ydDo6aW5mbykgewogICAgICAgICAgICAgTWVzc2FnZVBvcnQq
IHBvcnQxID0gc3RhdGljX2Nhc3Q8TWVzc2FnZVBvcnQqPihvYmplY3QpOwogICAgICAgICAgICAg
Ly8gV2UgbWFya2VkIHRoaXMgcG9ydCBhcyByZWFjaGFibGUgaW4gR0NQcm9sb2d1ZVZpc2l0b3Iu
ICBVbmRvIHRoaXMgbm93IHNpbmNlIHRoZQogICAgICAgICAgICAgLy8gcG9ydCBjb3VsZCBiZSBu
b3QgcmVhY2hhYmxlIGluIHRoZSBmdXR1cmUgaWYgaXQgZ2V0cyBkaXNlbnRhbmdsZWQgKGFuZCBh
bHNvCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4Q29sbGVjdGlvbi5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvYmluZGluZ3MvdjgvVjhDb2xsZWN0aW9uLmgJKHJldmlzaW9uIDU2MDg1KQor
KysgV2ViQ29yZS9iaW5kaW5ncy92OC9WOENvbGxlY3Rpb24uaAkod29ya2luZyBjb3B5KQpAQCAt
NjMsNyArNjMsNyBAQAogewogICAgIC8vIEZJWE1FOiBhc3NlcnQgb2JqZWN0IGlzIGEgY29sbGVj
dGlvbiB0eXBlCiAgICAgQVNTRVJUKFY4RE9NV3JhcHBlcjo6bWF5YmVET01XcmFwcGVyKG9iamVj
dCkpOwotICAgIEFTU0VSVChWOERPTVdyYXBwZXI6OmRvbVdyYXBwZXJUeXBlKG9iamVjdCktPmlu
ZGV4ICE9IFY4Q2xhc3NJbmRleDo6Tk9ERSk7CisgICAgQVNTRVJUKFY4RE9NV3JhcHBlcjo6ZG9t
V3JhcHBlclR5cGUob2JqZWN0KSAhPSAmVjhOb2RlOjppbmZvKTsKICAgICBDb2xsZWN0aW9uKiBj
b2xsZWN0aW9uID0gdG9OYXRpdmVDb2xsZWN0aW9uPENvbGxlY3Rpb24+KG9iamVjdCk7CiAgICAg
QXRvbWljU3RyaW5nIHByb3BlcnR5TmFtZSA9IHRvQXRvbWljV2ViQ29yZVN0cmluZ1dpdGhOdWxs
Q2hlY2sobmFtZSk7CiAgICAgcmV0dXJuIGdldFY4T2JqZWN0PEl0ZW1UeXBlPihjb2xsZWN0aW9u
LT5uYW1lZEl0ZW0ocHJvcGVydHlOYW1lKSk7CkBAIC04OSw3ICs4OSw3IEBACiB7CiAgICAgLy8g
RklYTUU6IEFzc2VydCB0aGF0IG9iamVjdCBtdXN0IGJlIGEgY29sbGVjdGlvbiB0eXBlLgogICAg
IEFTU0VSVChWOERPTVdyYXBwZXI6Om1heWJlRE9NV3JhcHBlcihvYmplY3QpKTsKLSAgICBBU1NF
UlQoVjhET01XcmFwcGVyOjpkb21XcmFwcGVyVHlwZShvYmplY3QpLT5pbmRleCAhPSBWOENsYXNz
SW5kZXg6Ok5PREUpOworICAgIEFTU0VSVChWOERPTVdyYXBwZXI6OmRvbVdyYXBwZXJUeXBlKG9i
amVjdCkgIT0gJlY4Tm9kZTo6aW5mbyk7CiAgICAgQ29sbGVjdGlvbiogY29sbGVjdGlvbiA9IHRv
TmF0aXZlQ29sbGVjdGlvbjxDb2xsZWN0aW9uPihvYmplY3QpOwogICAgIHJldHVybiBnZXRWOE9i
amVjdDxJdGVtVHlwZT4oY29sbGVjdGlvbi0+aXRlbShpbmRleCkpOwogfQpAQCAtMTU0LDE3ICsx
NTQsMTYgQEAKIAogCiAvLyBBZGQgaW5kZXhlZCBnZXR0ZXIgdG8gdGhlIGZ1bmN0aW9uIHRlbXBs
YXRlIGZvciBhIGNvbGxlY3Rpb24uCi10ZW1wbGF0ZTxjbGFzcyBDb2xsZWN0aW9uLCBjbGFzcyBJ
dGVtVHlwZT4gc3RhdGljIHZvaWQgc2V0Q29sbGVjdGlvbkluZGV4ZWRHZXR0ZXIodjg6OkhhbmRs
ZTx2ODo6RnVuY3Rpb25UZW1wbGF0ZT4gZGVzYywgVjhDbGFzc0luZGV4OjpWOFdyYXBwZXJUeXBl
IHR5cGUpCit0ZW1wbGF0ZTxjbGFzcyBDb2xsZWN0aW9uLCBjbGFzcyBJdGVtVHlwZT4gc3RhdGlj
IHZvaWQgc2V0Q29sbGVjdGlvbkluZGV4ZWRHZXR0ZXIodjg6OkhhbmRsZTx2ODo6RnVuY3Rpb25U
ZW1wbGF0ZT4gZGVzYykKIHsKLSAgICBkZXNjLT5JbnN0YW5jZVRlbXBsYXRlKCktPlNldEluZGV4
ZWRQcm9wZXJ0eUhhbmRsZXIoY29sbGVjdGlvbkluZGV4ZWRQcm9wZXJ0eUdldHRlcjxDb2xsZWN0
aW9uLCBJdGVtVHlwZT4sIDAsIDAsIDAsIGNvbGxlY3Rpb25JbmRleGVkUHJvcGVydHlFbnVtZXJh
dG9yPENvbGxlY3Rpb24+LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB2ODo6SW50ZWdlcjo6TmV3KFY4Q2xhc3NJbmRleDo6VG9JbnQodHlw
ZSkpKTsKKyAgICBkZXNjLT5JbnN0YW5jZVRlbXBsYXRlKCktPlNldEluZGV4ZWRQcm9wZXJ0eUhh
bmRsZXIoY29sbGVjdGlvbkluZGV4ZWRQcm9wZXJ0eUdldHRlcjxDb2xsZWN0aW9uLCBJdGVtVHlw
ZT4sIDAsIDAsIDAsIGNvbGxlY3Rpb25JbmRleGVkUHJvcGVydHlFbnVtZXJhdG9yPENvbGxlY3Rp
b24+KTsKIH0KIAogCiAvLyBBZGQgbmFtZWQgZ2V0dGVyIHRvIHRoZSBmdW5jdGlvbiB0ZW1wbGF0
ZSBmb3IgYSBjb2xsZWN0aW9uLgotdGVtcGxhdGU8Y2xhc3MgQ29sbGVjdGlvbiwgY2xhc3MgSXRl
bVR5cGU+IHN0YXRpYyB2b2lkIHNldENvbGxlY3Rpb25OYW1lZEdldHRlcih2ODo6SGFuZGxlPHY4
OjpGdW5jdGlvblRlbXBsYXRlPiBkZXNjLCBWOENsYXNzSW5kZXg6OlY4V3JhcHBlclR5cGUgdHlw
ZSkKK3RlbXBsYXRlPGNsYXNzIENvbGxlY3Rpb24sIGNsYXNzIEl0ZW1UeXBlPiBzdGF0aWMgdm9p
ZCBzZXRDb2xsZWN0aW9uTmFtZWRHZXR0ZXIodjg6OkhhbmRsZTx2ODo6RnVuY3Rpb25UZW1wbGF0
ZT4gZGVzYykKIHsKLSAgICBkZXNjLT5JbnN0YW5jZVRlbXBsYXRlKCktPlNldE5hbWVkUHJvcGVy
dHlIYW5kbGVyKGNvbGxlY3Rpb25OYW1lZFByb3BlcnR5R2V0dGVyPENvbGxlY3Rpb24sIEl0ZW1U
eXBlPiwgMCwgMCwgMCwgMCwgdjg6OkludGVnZXI6Ok5ldyhWOENsYXNzSW5kZXg6OlRvSW50KHR5
cGUpKSk7CisgICAgZGVzYy0+SW5zdGFuY2VUZW1wbGF0ZSgpLT5TZXROYW1lZFByb3BlcnR5SGFu
ZGxlcihjb2xsZWN0aW9uTmFtZWRQcm9wZXJ0eUdldHRlcjxDb2xsZWN0aW9uLCBJdGVtVHlwZT4s
IDAsIDAsIDAsIDApOwogfQogCiAvLyBBZGQgaW5kZXhlZCBnZXR0ZXIgcmV0dXJuaW5nIGEgc3Ry
aW5nIG9yIG51bGwgdG8gYSBmdW5jdGlvbiB0ZW1wbGF0ZSBmb3IgYSBjb2xsZWN0aW9uLgpJbmRl
eDogV2ViQ29yZS9iaW5kaW5ncy92OC9OUFY4T2JqZWN0LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9iaW5kaW5ncy92OC9OUFY4T2JqZWN0LmgJKHJldmlzaW9uIDU2MDg1KQorKysgV2ViQ29yZS9i
aW5kaW5ncy92OC9OUFY4T2JqZWN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTMwLDcgKzMwLDcgQEAK
ICNpZm5kZWYgTlBWOE9iamVjdF9oCiAjZGVmaW5lIE5QVjhPYmplY3RfaAogCi0jaW5jbHVkZSAi
VjhJbmRleC5oIgorI2luY2x1ZGUgIlY4RE9NV3JhcHBlci5oIgogCiAjaWYgUExBVEZPUk0oQ0hS
T01JVU0pCiAvLyBGSVhNRTogQ2hyb21pdW0gdXNlcyBhIGRpZmZlcmVudCBucHJ1bnRpbWUuaCwg
d2hpY2ggaXMgaW4KQEAgLTQ4LDYgKzQ4LDggQEAKICAgICBjbGFzcyBET01XaW5kb3c7CiAKICAg
ICBzdGF0aWMgY29uc3QgaW50IG5wT2JqZWN0SW50ZXJuYWxGaWVsZENvdW50ID0gdjhEZWZhdWx0
V3JhcHBlckludGVybmFsRmllbGRDb3VudCArIDA7CisgICAgCisgICAgc3RhdGljIFdyYXBwZXJU
eXBlSW5mbyBucE9iamVjdFR5cGVJbmZvID0geyAwLCAwLCBmYWxzZSB9OwogfQogCiBleHRlcm4g
TlBDbGFzcyogbnBTY3JpcHRPYmplY3RDbGFzczsKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3Mvdjgv
VjhTVkdQT0RUeXBlV3JhcHBlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3Mvdjgv
VjhTVkdQT0RUeXBlV3JhcHBlci5oCShyZXZpc2lvbiA1NjA4NSkKKysrIFdlYkNvcmUvYmluZGlu
Z3MvdjgvVjhTVkdQT0RUeXBlV3JhcHBlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zOTYsMTMgKzM5
NiwxMyBAQAogY2xhc3MgVjhTVkdQT0RUeXBlVXRpbCB7CiBwdWJsaWM6CiAgICAgdGVtcGxhdGUg
PGNsYXNzIFA+Ci0gICAgc3RhdGljIFAgdG9TVkdQT0RUeXBlKFY4Q2xhc3NJbmRleDo6VjhXcmFw
cGVyVHlwZSB0eXBlLCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gb2JqZWN0LCBib29sJiBvayk7Cisg
ICAgc3RhdGljIFAgdG9TVkdQT0RUeXBlKFdyYXBwZXJUeXBlSW5mbyogaW5mbywgdjg6OkhhbmRs
ZTx2ODo6VmFsdWU+IG9iamVjdCwgYm9vbCYgb2spOwogfTsKIAogdGVtcGxhdGUgPGNsYXNzIFA+
Ci1QIFY4U1ZHUE9EVHlwZVV0aWw6OnRvU1ZHUE9EVHlwZShWOENsYXNzSW5kZXg6OlY4V3JhcHBl
clR5cGUgdHlwZSwgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IG9iamVjdCwgYm9vbCYgb2spCitQIFY4
U1ZHUE9EVHlwZVV0aWw6OnRvU1ZHUE9EVHlwZShXcmFwcGVyVHlwZUluZm8qIGluZm8sIHY4OjpI
YW5kbGU8djg6OlZhbHVlPiBvYmplY3QsIGJvb2wmIG9rKQogewotICAgIGlmICghVjhET01XcmFw
cGVyOjppc1dyYXBwZXJPZlR5cGUob2JqZWN0LCB0eXBlKSkgeworICAgIGlmICghVjhET01XcmFw
cGVyOjppc1dyYXBwZXJPZlR5cGUob2JqZWN0LCBpbmZvKSkgewogICAgICAgICBvayA9IGZhbHNl
OwogICAgICAgICByZXR1cm4gUCgpOwogICAgIH0KSW5kZXg6IFdlYkNvcmUvYmluZGluZ3Mvdjgv
V29ya2VyQ29udGV4dEV4ZWN1dGlvblByb3h5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5k
aW5ncy92OC9Xb3JrZXJDb250ZXh0RXhlY3V0aW9uUHJveHkuaAkocmV2aXNpb24gNTYwODUpCisr
KyBXZWJDb3JlL2JpbmRpbmdzL3Y4L1dvcmtlckNvbnRleHRFeGVjdXRpb25Qcm94eS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zNSw3ICszNSw2IEBACiAjaWYgRU5BQkxFKFdPUktFUlMpCiAKICNpbmNs
dWRlICJTY3JpcHRWYWx1ZS5oIgotI2luY2x1ZGUgIlY4SW5kZXguaCIKICNpbmNsdWRlIDx2OC5o
PgogI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CkluZGV4
OiBXZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4SGVscGVycy5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9iaW5kaW5ncy92OC9WOEhlbHBlcnMuY3BwCShyZXZpc2lvbiA1NjA4NSkKKysrIFdlYkNvcmUv
YmluZGluZ3MvdjgvVjhIZWxwZXJzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzMsNyArMzMsNiBA
QAogCiAjaW5jbHVkZSAiRE9NV2luZG93LmgiCiAjaW5jbHVkZSAiTlBWOE9iamVjdC5oIgotI2lu
Y2x1ZGUgIlY4SW5kZXguaCIKICNpbmNsdWRlICJWOFByb3h5LmgiCiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViR0xGbG9hdEFycmF5
Q3VzdG9tLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdl
YkdMRmxvYXRBcnJheUN1c3RvbS5jcHAJKHJldmlzaW9uIDU2MDg1KQorKysgV2ViQ29yZS9iaW5k
aW5ncy92OC9jdXN0b20vVjhXZWJHTEZsb2F0QXJyYXlDdXN0b20uY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC00NywxOSArNDcsMTkgQEAKIHsKICAgICBJTkNfU1RBVFMoIkRPTS5XZWJHTEZsb2F0QXJy
YXkuQ29udHJ1Y3RvciIpOwogCi0gICAgcmV0dXJuIGNvbnN0cnVjdFdlYkdMQXJyYXk8V2ViR0xG
bG9hdEFycmF5LCBmbG9hdD4oYXJncywgJmluZm8pOworICAgIHJldHVybiBjb25zdHJ1Y3RXZWJH
TEFycmF5PFdlYkdMRmxvYXRBcnJheSwgZmxvYXQ+KGFyZ3MsICZpbmZvLCB2ODo6a0V4dGVybmFs
RmxvYXRBcnJheSk7CiB9CiAKIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOFdlYkdMRmxvYXRBcnJh
eTo6Z2V0Q2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKIHsKICAgICBJTkNfU1RB
VFMoIkRPTS5XZWJHTEZsb2F0QXJyYXkuZ2V0KCkiKTsKLSAgICByZXR1cm4gZ2V0V2ViR0xBcnJh
eUVsZW1lbnQ8V2ViR0xGbG9hdEFycmF5LCBmbG9hdD4oYXJncywgVjhDbGFzc0luZGV4OjpXRUJH
TEZMT0FUQVJSQVkpOworICAgIHJldHVybiBnZXRXZWJHTEFycmF5RWxlbWVudDxXZWJHTEZsb2F0
QXJyYXksIGZsb2F0PihhcmdzKTsKIH0KIAogdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4V2ViR0xG
bG9hdEFycmF5OjpzZXRDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQogewogICAg
IElOQ19TVEFUUygiRE9NLldlYkdMRmxvYXRBcnJheS5zZXQoKSIpOwotICAgIHJldHVybiBzZXRX
ZWJHTEFycmF5PFdlYkdMRmxvYXRBcnJheSwgVjhXZWJHTEZsb2F0QXJyYXk+KGFyZ3MsIFY4Q2xh
c3NJbmRleDo6V0VCR0xGTE9BVEFSUkFZKTsKKyAgICByZXR1cm4gc2V0V2ViR0xBcnJheTxXZWJH
TEZsb2F0QXJyYXksIFY4V2ViR0xGbG9hdEFycmF5PihhcmdzKTsKIH0KIAogdjg6OkhhbmRsZTx2
ODo6VmFsdWU+IHRvVjgoV2ViR0xGbG9hdEFycmF5KiBpbXBsKQpJbmRleDogV2ViQ29yZS9iaW5k
aW5ncy92OC9jdXN0b20vVjhIVE1MT3B0aW9uRWxlbWVudENvbnN0cnVjdG9yLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhIVE1MT3B0aW9uRWxlbWVudENvbnN0
cnVjdG9yLmgJKHJldmlzaW9uIDU2MDg1KQorKysgV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20v
VjhIVE1MT3B0aW9uRWxlbWVudENvbnN0cnVjdG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTMxLDcg
KzMxLDcgQEAKICNpZm5kZWYgVjhIVE1MT3B0aW9uRWxlbWVudENvbnN0cnVjdG9yX2gKICNkZWZp
bmUgVjhIVE1MT3B0aW9uRWxlbWVudENvbnN0cnVjdG9yX2gKIAotI2luY2x1ZGUgIlY4SW5kZXgu
aCIKKyNpbmNsdWRlICJXcmFwcGVyVHlwZUluZm8uaCIKIAogI2luY2x1ZGUgPHY4Lmg+CiAKSW5k
ZXg6IFdlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SFRNTEltYWdlRWxlbWVudENvbnN0cnVj
dG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhIVE1MSW1h
Z2VFbGVtZW50Q29uc3RydWN0b3IuaAkocmV2aXNpb24gNTYwODUpCisrKyBXZWJDb3JlL2JpbmRp
bmdzL3Y4L2N1c3RvbS9WOEhUTUxJbWFnZUVsZW1lbnRDb25zdHJ1Y3Rvci5oCSh3b3JraW5nIGNv
cHkpCkBAIC0zMSw3ICszMSw3IEBACiAjaWZuZGVmIFY4SFRNTEltYWdlRWxlbWVudENvbnN0cnVj
dG9yX2gKICNkZWZpbmUgVjhIVE1MSW1hZ2VFbGVtZW50Q29uc3RydWN0b3JfaAogCi0jaW5jbHVk
ZSAiVjhJbmRleC5oIgorI2luY2x1ZGUgIldyYXBwZXJUeXBlSW5mby5oIgogCiAjaW5jbHVkZSA8
djguaD4KIApJbmRleDogV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhXZWJHTFJlbmRlcmlu
Z0NvbnRleHRDdXN0b20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvdjgvY3Vz
dG9tL1Y4V2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcAkocmV2aXNpb24gNTYwODUpCisr
KyBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYkdMUmVuZGVyaW5nQ29udGV4dEN1c3Rv
bS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIsNyArMiw3IEBACiAgKiBDb3B5cmlnaHQgKEMpIDIw
MDkgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIAogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMgYXJlVjhDbGFzc0luZGV4OjpXRUJHTAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQogICog
bWV0OgogICogCiAgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodApJbmRleDogV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0
b20vVjhET01XaW5kb3dDdXN0b20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3Mv
djgvY3VzdG9tL1Y4RE9NV2luZG93Q3VzdG9tLmNwcAkocmV2aXNpb24gNTYwODUpCisrKyBXZWJD
b3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOERPTVdpbmRvd0N1c3RvbS5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTc5OSw5ICs3OTksOCBAQAogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLWJvb2wgVjhE
T01XaW5kb3c6Om5hbWVkU2VjdXJpdHlDaGVjayh2ODo6TG9jYWw8djg6Ok9iamVjdD4gaG9zdCwg
djg6OkxvY2FsPHY4OjpWYWx1ZT4ga2V5LCB2ODo6QWNjZXNzVHlwZSB0eXBlLCB2ODo6TG9jYWw8
djg6OlZhbHVlPiBkYXRhKQorYm9vbCBWOERPTVdpbmRvdzo6bmFtZWRTZWN1cml0eUNoZWNrKHY4
OjpMb2NhbDx2ODo6T2JqZWN0PiBob3N0LCB2ODo6TG9jYWw8djg6OlZhbHVlPiBrZXksIHY4OjpB
Y2Nlc3NUeXBlIHR5cGUsIHY4OjpMb2NhbDx2ODo6VmFsdWU+KQogewotICAgIEFTU0VSVChWOENs
YXNzSW5kZXg6OkZyb21JbnQoZGF0YS0+SW50MzJWYWx1ZSgpKSA9PSBWOENsYXNzSW5kZXg6OkRP
TVdJTkRPVyk7CiAgICAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiB3aW5kb3cgPSBWOERPTVdyYXBw
ZXI6Omxvb2t1cERPTVdyYXBwZXIoVjhET01XaW5kb3c6OkdldFRlbXBsYXRlKCksIGhvc3QpOwog
ICAgIGlmICh3aW5kb3cuSXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gZmFsc2U7ICAvLyB0aGUg
ZnJhbWUgaXMgZ29uZS4KQEAgLTgyNSw5ICs4MjQsOCBAQAogICAgIHJldHVybiBWOEJpbmRpbmdT
ZWN1cml0eTo6Y2FuQWNjZXNzRnJhbWUoVjhCaW5kaW5nU3RhdGU6Ok9ubHkoKSwgdGFyZ2V0LCBm
YWxzZSk7CiB9CiAKLWJvb2wgVjhET01XaW5kb3c6OmluZGV4ZWRTZWN1cml0eUNoZWNrKHY4OjpM
b2NhbDx2ODo6T2JqZWN0PiBob3N0LCB1aW50MzJfdCBpbmRleCwgdjg6OkFjY2Vzc1R5cGUgdHlw
ZSwgdjg6OkxvY2FsPHY4OjpWYWx1ZT4gZGF0YSkKK2Jvb2wgVjhET01XaW5kb3c6OmluZGV4ZWRT
ZWN1cml0eUNoZWNrKHY4OjpMb2NhbDx2ODo6T2JqZWN0PiBob3N0LCB1aW50MzJfdCBpbmRleCwg
djg6OkFjY2Vzc1R5cGUgdHlwZSwgdjg6OkxvY2FsPHY4OjpWYWx1ZT4pCiB7Ci0gICAgQVNTRVJU
KFY4Q2xhc3NJbmRleDo6RnJvbUludChkYXRhLT5JbnQzMlZhbHVlKCkpID09IFY4Q2xhc3NJbmRl
eDo6RE9NV0lORE9XKTsKICAgICB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHdpbmRvdyA9IFY4RE9N
V3JhcHBlcjo6bG9va3VwRE9NV3JhcHBlcihWOERPTVdpbmRvdzo6R2V0VGVtcGxhdGUoKSwgaG9z
dCk7CiAgICAgaWYgKHdpbmRvdy5Jc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKSW5k
ZXg6IFdlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViS2l0UG9pbnRDb25zdHJ1Y3Rvci5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhXZWJLaXRQb2lu
dENvbnN0cnVjdG9yLmNwcAkocmV2aXNpb24gNTYwODUpCisrKyBXZWJDb3JlL2JpbmRpbmdzL3Y4
L2N1c3RvbS9WOFdlYktpdFBvaW50Q29uc3RydWN0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0z
Myw4ICszMyw4IEBACiAKICNpbmNsdWRlICJWOEJpbmRpbmcuaCIKICNpbmNsdWRlICJWOERPTVdy
YXBwZXIuaCIKLSNpbmNsdWRlICJWOEluZGV4LmgiCiAjaW5jbHVkZSAiVjhQcm94eS5oIgorI2lu
Y2x1ZGUgIldyYXBwZXJUeXBlSW5mby5oIgogCiAjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4K
IApJbmRleDogV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhIVE1MQXVkaW9FbGVtZW50Q29u
c3RydWN0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEhU
TUxBdWRpb0VsZW1lbnRDb25zdHJ1Y3Rvci5oCShyZXZpc2lvbiA1NjA4NSkKKysrIFdlYkNvcmUv
YmluZGluZ3MvdjgvY3VzdG9tL1Y4SFRNTEF1ZGlvRWxlbWVudENvbnN0cnVjdG9yLmgJKHdvcmtp
bmcgY29weSkKQEAgLTMxLDcgKzMxLDcgQEAKICNpZm5kZWYgVjhIVE1MQXVkaW9FbGVtZW50Q29u
c3RydWN0b3JfaAogI2RlZmluZSBWOEhUTUxBdWRpb0VsZW1lbnRDb25zdHJ1Y3Rvcl9oCiAKLSNp
bmNsdWRlICJWOEluZGV4LmgiCisjaW5jbHVkZSAiV3JhcHBlclR5cGVJbmZvLmgiCiAKICNpbmNs
dWRlIDx2OC5oPgogCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEhUTUxPcHRp
b25FbGVtZW50Q29uc3RydWN0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3Mv
djgvY3VzdG9tL1Y4SFRNTE9wdGlvbkVsZW1lbnRDb25zdHJ1Y3Rvci5jcHAJKHJldmlzaW9uIDU2
MDg1KQorKysgV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhIVE1MT3B0aW9uRWxlbWVudENv
bnN0cnVjdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDQsNyArNDQsNyBAQAogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKLVdyYXBwZXJUeXBlSW5mbyBWOEhUTUxPcHRpb25FbGVtZW50Q29uc3Ry
dWN0b3I6OmluZm8gPSB7VjhDbGFzc0luZGV4OjpUb0ludChWOENsYXNzSW5kZXg6Ok9QVElPTiks
IFY4SFRNTE9wdGlvbkVsZW1lbnRDb25zdHJ1Y3Rvcjo6R2V0VGVtcGxhdGUsIDAsIGZhbHNlIH07
CitXcmFwcGVyVHlwZUluZm8gVjhIVE1MT3B0aW9uRWxlbWVudENvbnN0cnVjdG9yOjppbmZvID0g
eyBWOEhUTUxPcHRpb25FbGVtZW50Q29uc3RydWN0b3I6OkdldFRlbXBsYXRlLCAwLCBmYWxzZSB9
OwogCiBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHY4SFRNTE9wdGlvbkVsZW1lbnRDb25z
dHJ1Y3RvckNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiB7CkluZGV4OiBXZWJD
b3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYkdMQnl0ZUFycmF5Q3VzdG9tLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYkdMQnl0ZUFycmF5Q3VzdG9t
LmNwcAkocmV2aXNpb24gNTYwODUpCisrKyBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdl
YkdMQnl0ZUFycmF5Q3VzdG9tLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDcsMTkgKzQ3LDE5IEBA
CiB7CiAgICAgSU5DX1NUQVRTKCJET00uV2ViR0xCeXRlQXJyYXkuQ29udHJ1Y3RvciIpOwogCi0g
ICAgcmV0dXJuIGNvbnN0cnVjdFdlYkdMQXJyYXk8V2ViR0xCeXRlQXJyYXksIHNpZ25lZCBjaGFy
PihhcmdzLCAmaW5mbyk7CisgICAgcmV0dXJuIGNvbnN0cnVjdFdlYkdMQXJyYXk8V2ViR0xCeXRl
QXJyYXksIHNpZ25lZCBjaGFyPihhcmdzLCAmaW5mbywgdjg6OmtFeHRlcm5hbEJ5dGVBcnJheSk7
CiB9CiAKIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOFdlYkdMQnl0ZUFycmF5OjpnZXRDYWxsYmFj
ayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQogewogICAgIElOQ19TVEFUUygiRE9NLldlYkdM
Qnl0ZUFycmF5LmdldCgpIik7Ci0gICAgcmV0dXJuIGdldFdlYkdMQXJyYXlFbGVtZW50PFdlYkdM
Qnl0ZUFycmF5LCBzaWduZWQgY2hhcj4oYXJncywgVjhDbGFzc0luZGV4OjpXRUJHTEJZVEVBUlJB
WSk7CisgICAgcmV0dXJuIGdldFdlYkdMQXJyYXlFbGVtZW50PFdlYkdMQnl0ZUFycmF5LCBzaWdu
ZWQgY2hhcj4oYXJncyk7CiB9CiAKIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOFdlYkdMQnl0ZUFy
cmF5OjpzZXRDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQogewogICAgIElOQ19T
VEFUUygiRE9NLldlYkdMQnl0ZUFycmF5LnNldCgpIik7Ci0gICAgcmV0dXJuIHNldFdlYkdMQXJy
YXk8V2ViR0xCeXRlQXJyYXksIFY4V2ViR0xCeXRlQXJyYXk+KGFyZ3MsIFY4Q2xhc3NJbmRleDo6
V0VCR0xCWVRFQVJSQVkpOworICAgIHJldHVybiBzZXRXZWJHTEFycmF5PFdlYkdMQnl0ZUFycmF5
LCBWOFdlYkdMQnl0ZUFycmF5PihhcmdzKTsKIH0KIAogdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHRv
VjgoV2ViR0xCeXRlQXJyYXkqIGltcGwpCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3Rv
bS9WOEhUTUxJbWFnZUVsZW1lbnRDb25zdHJ1Y3Rvci5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9iaW5kaW5ncy92OC9jdXN0b20vVjhIVE1MSW1hZ2VFbGVtZW50Q29uc3RydWN0b3IuY3BwCShy
ZXZpc2lvbiA1NjA4NSkKKysrIFdlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SFRNTEltYWdl
RWxlbWVudENvbnN0cnVjdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDQsNyArNDQsNyBAQAog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVdyYXBwZXJUeXBlSW5mbyBWOEhUTUxJbWFnZUVsZW1l
bnRDb25zdHJ1Y3Rvcjo6aW5mbyA9IHtWOENsYXNzSW5kZXg6OlRvSW50KFY4Q2xhc3NJbmRleDo6
SU1BR0UpLCBWOEhUTUxJbWFnZUVsZW1lbnRDb25zdHJ1Y3Rvcjo6R2V0VGVtcGxhdGUsIDAsIGZh
bHNlIH07CitXcmFwcGVyVHlwZUluZm8gVjhIVE1MSW1hZ2VFbGVtZW50Q29uc3RydWN0b3I6Omlu
Zm8gPSB7IFY4SFRNTEltYWdlRWxlbWVudENvbnN0cnVjdG9yOjpHZXRUZW1wbGF0ZSwgMCwgZmFs
c2UgfTsKIAogc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiB2OEhUTUxJbWFnZUVsZW1lbnRD
b25zdHJ1Y3RvckNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiB7CkluZGV4OiBX
ZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYkdMQXJyYXlDdXN0b20uaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYkdMQXJyYXlDdXN0b20uaAkocmV2
aXNpb24gNTYwODUpCisrKyBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYkdMQXJyYXlD
dXN0b20uaAkod29ya2luZyBjb3B5KQpAQCAtNDIsNyArNDIsNyBAQAogCiAvLyBUZW1wbGF0ZSBm
dW5jdGlvbiB1c2VkIGJ5IHRoZSBXZWJHTEFycmF5KkNvbnN0cnVjdG9yIGNhbGxiYWNrcy4KIHRl
bXBsYXRlPGNsYXNzIEFycmF5Q2xhc3MsIGNsYXNzIEVsZW1lbnRUeXBlPgotdjg6OkhhbmRsZTx2
ODo6VmFsdWU+IGNvbnN0cnVjdFdlYkdMQXJyYXkoY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncywg
V3JhcHBlclR5cGVJbmZvKiB0eXBlKQordjg6OkhhbmRsZTx2ODo6VmFsdWU+IGNvbnN0cnVjdFdl
YkdMQXJyYXkoY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncywgV3JhcHBlclR5cGVJbmZvKiB0eXBl
LCB2ODo6RXh0ZXJuYWxBcnJheVR5cGUgYXJyYXlUeXBlKQogewogICAgIGlmICghYXJncy5Jc0Nv
bnN0cnVjdENhbGwoKSkKICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoIkRPTSBvYmplY3QgY29u
c3RydWN0b3IgY2Fubm90IGJlIGNhbGxlZCBhcyBhIGZ1bmN0aW9uLiIpOwpAQCAtOTIsMTAgKzky
LDcgQEAKICAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCJPdXQtb2YtcmFuZ2Ugb2Zmc2V0
IGFuZC9vciBsZW5ndGgiKTsKICAgICAgICAgLy8gVHJhbnNmb3JtIHRoZSBob2xkZXIgaW50byBh
IHdyYXBwZXIgb2JqZWN0IGZvciB0aGUgYXJyYXkuCiAgICAgICAgIFY4RE9NV3JhcHBlcjo6c2V0
RE9NV3JhcHBlcihhcmdzLkhvbGRlcigpLCB0eXBlLCBhcnJheS5nZXQoKSk7Ci0gICAgICAgIFY4
RE9NV3JhcHBlcjo6c2V0SW5kZXhlZFByb3BlcnRpZXNUb0V4dGVybmFsQXJyYXkoYXJncy5Ib2xk
ZXIoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB0eXBlLT5pbmRleCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBhcnJheS5nZXQoKS0+YmFzZUFkZHJlc3MoKSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcnJh
eS5nZXQoKS0+bGVuZ3RoKCkpOworICAgICAgICBhcmdzLkhvbGRlcigpLT5TZXRJbmRleGVkUHJv
cGVydGllc1RvRXh0ZXJuYWxBcnJheURhdGEoYXJyYXkuZ2V0KCktPmJhc2VBZGRyZXNzKCksIGFy
cmF5VHlwZSwgYXJyYXkuZ2V0KCktPmxlbmd0aCgpKTsKICAgICAgICAgcmV0dXJuIHRvVjgoYXJy
YXkucmVsZWFzZSgpLCBhcmdzLkhvbGRlcigpKTsKICAgICB9CiAKQEAgLTEyNywxNiArMTI0LDEy
IEBACiAKICAgICAvLyBUcmFuc2Zvcm0gdGhlIGhvbGRlciBpbnRvIGEgd3JhcHBlciBvYmplY3Qg
Zm9yIHRoZSBhcnJheS4KICAgICBWOERPTVdyYXBwZXI6OnNldERPTVdyYXBwZXIoYXJncy5Ib2xk
ZXIoKSwgdHlwZSwgYXJyYXkuZ2V0KCkpOwotICAgIFY4RE9NV3JhcHBlcjo6c2V0SW5kZXhlZFBy
b3BlcnRpZXNUb0V4dGVybmFsQXJyYXkoYXJncy5Ib2xkZXIoKSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUtPmluZGV4LAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJyYXkuZ2V0
KCktPmJhc2VBZGRyZXNzKCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBhcnJheS5nZXQoKS0+bGVuZ3RoKCkpOworICAgIGFyZ3MuSG9sZGVy
KCktPlNldEluZGV4ZWRQcm9wZXJ0aWVzVG9FeHRlcm5hbEFycmF5RGF0YShhcnJheS5nZXQoKS0+
YmFzZUFkZHJlc3MoKSwgYXJyYXlUeXBlLCBhcnJheS5nZXQoKS0+bGVuZ3RoKCkpOwogICAgIHJl
dHVybiB0b1Y4KGFycmF5LnJlbGVhc2UoKSwgYXJncy5Ib2xkZXIoKSk7CiB9CiAKIHRlbXBsYXRl
IDxjbGFzcyBULCB0eXBlbmFtZSBFbGVtZW50VHlwZT4KLXY4OjpIYW5kbGU8djg6OlZhbHVlPiBn
ZXRXZWJHTEFycmF5RWxlbWVudChjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFY4Q2xhc3NJbmRleDo6VjhXcmFwcGVy
VHlwZSB3cmFwcGVyVHlwZSkKK3Y4OjpIYW5kbGU8djg6OlZhbHVlPiBnZXRXZWJHTEFycmF5RWxl
bWVudChjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQogewogICAgIGlmIChhcmdzLkxlbmd0aCgp
ICE9IDEpIHsKICAgICAgICAgVjhQcm94eTo6c2V0RE9NRXhjZXB0aW9uKFNZTlRBWF9FUlIpOwpA
QCAtMTgxLDggKzE3NCw3IEBACiB9CiAKIHRlbXBsYXRlIDxjbGFzcyBDUGx1c1BsdXNBcnJheVR5
cGUsIGNsYXNzIEphdmFTY3JpcHRXcmFwcGVyQXJyYXlUeXBlPgotdjg6OkhhbmRsZTx2ODo6VmFs
dWU+IHNldFdlYkdMQXJyYXkoY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncywKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFY4Q2xhc3NJbmRleDo6VjhXcmFwcGVyVHlwZSB3cmFw
cGVyVHlwZSkKK3Y4OjpIYW5kbGU8djg6OlZhbHVlPiBzZXRXZWJHTEFycmF5KGNvbnN0IHY4OjpB
cmd1bWVudHMmIGFyZ3MpCiB7CiAgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPCAxIHx8IGFyZ3MuTGVu
Z3RoKCkgPiAyKSB7CiAgICAgICAgIFY4UHJveHk6OnNldERPTUV4Y2VwdGlvbihTWU5UQVhfRVJS
KTsKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4Q2FudmFzUmVuZGVyaW5nQ29u
dGV4dDJEQ3VzdG9tLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3Rv
bS9WOENhbnZhc1JlbmRlcmluZ0NvbnRleHQyREN1c3RvbS5jcHAJKHJldmlzaW9uIDU2MDg1KQor
KysgV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRD
dXN0b20uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MzgsNyArNDM4LDcgQEAKICAgICAvLyB0b05h
dGl2ZSgpIGV4cGVjdHMgaXQgdG8gYmUgY29ycmVjdC4gSWYgdGhlIGFyZ3VtZW50IHdhcyBpbmNv
cnJlY3QKICAgICAvLyB3ZSBsZWF2ZSBpdCBudWxsLCBhbmQgcHV0SW1hZ2VEYXRhKCkgd2lsbCB0
aHJvdyB0aGUgY29ycmVjdCBleGNlcHRpb24KICAgICAvLyAoVFlQRV9NSVNNQVRDSF9FUlIpLgot
ICAgIGlmIChWOERPTVdyYXBwZXI6OmlzV3JhcHBlck9mVHlwZShhcmdzWzBdLCBWOENsYXNzSW5k
ZXg6OklNQUdFREFUQSkpCisgICAgaWYgKFY4RE9NV3JhcHBlcjo6aXNXcmFwcGVyT2ZUeXBlKGFy
Z3NbMF0sICZWOEltYWdlRGF0YTo6aW5mbykpCiAgICAgICAgIGltYWdlRGF0YSA9IFY4SW1hZ2VE
YXRhOjp0b05hdGl2ZSh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+OjpDYXN0KGFyZ3NbMF0pKTsKIAog
ICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0
b20vVjhXZWJHTFVuc2lnbmVkU2hvcnRBcnJheUN1c3RvbS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhXZWJHTFVuc2lnbmVkU2hvcnRBcnJheUN1c3RvbS5j
cHAJKHJldmlzaW9uIDU2MDg1KQorKysgV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhXZWJH
TFVuc2lnbmVkU2hvcnRBcnJheUN1c3RvbS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ3LDE5ICs0
NywxOSBAQAogewogICAgIElOQ19TVEFUUygiRE9NLldlYkdMVW5zaWduZWRTaG9ydEFycmF5LkNv
bnRydWN0b3IiKTsKIAotICAgIHJldHVybiBjb25zdHJ1Y3RXZWJHTEFycmF5PFdlYkdMVW5zaWdu
ZWRTaG9ydEFycmF5LCB1bnNpZ25lZCBzaG9ydD4oYXJncywgJmluZm8pOworICAgIHJldHVybiBj
b25zdHJ1Y3RXZWJHTEFycmF5PFdlYkdMVW5zaWduZWRTaG9ydEFycmF5LCB1bnNpZ25lZCBzaG9y
dD4oYXJncywgJmluZm8sIHY4OjprRXh0ZXJuYWxVbnNpZ25lZFNob3J0QXJyYXkpOwogfQogCiB2
ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhXZWJHTFVuc2lnbmVkU2hvcnRBcnJheTo6Z2V0Q2FsbGJh
Y2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKIHsKICAgICBJTkNfU1RBVFMoIkRPTS5XZWJH
TFVuc2lnbmVkU2hvcnRBcnJheS5nZXQoKSIpOwotICAgIHJldHVybiBnZXRXZWJHTEFycmF5RWxl
bWVudDxXZWJHTFVuc2lnbmVkU2hvcnRBcnJheSwgdW5zaWduZWQgc2hvcnQ+KGFyZ3MsIFY4Q2xh
c3NJbmRleDo6V0VCR0xVTlNJR05FRFNIT1JUQVJSQVkpOworICAgIHJldHVybiBnZXRXZWJHTEFy
cmF5RWxlbWVudDxXZWJHTFVuc2lnbmVkU2hvcnRBcnJheSwgdW5zaWduZWQgc2hvcnQ+KGFyZ3Mp
OwogfQogCiB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhXZWJHTFVuc2lnbmVkU2hvcnRBcnJheTo6
c2V0Q2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKIHsKICAgICBJTkNfU1RBVFMo
IkRPTS5XZWJHTFVuc2lnbmVkU2hvcnRBcnJheS5zZXQoKSIpOwotICAgIHJldHVybiBzZXRXZWJH
TEFycmF5PFdlYkdMVW5zaWduZWRTaG9ydEFycmF5LCBWOFdlYkdMVW5zaWduZWRTaG9ydEFycmF5
PihhcmdzLCBWOENsYXNzSW5kZXg6OldFQkdMVU5TSUdORURTSE9SVEFSUkFZKTsKKyAgICByZXR1
cm4gc2V0V2ViR0xBcnJheTxXZWJHTFVuc2lnbmVkU2hvcnRBcnJheSwgVjhXZWJHTFVuc2lnbmVk
U2hvcnRBcnJheT4oYXJncyk7CiB9CiAKIHY4OjpIYW5kbGU8djg6OlZhbHVlPiB0b1Y4KFdlYkdM
VW5zaWduZWRTaG9ydEFycmF5KiBpbXBsKQpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0
b20vVjhXZWJHTFVuc2lnbmVkQnl0ZUFycmF5Q3VzdG9tLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYkdMVW5zaWduZWRCeXRlQXJyYXlDdXN0b20uY3Bw
CShyZXZpc2lvbiA1NjA4NSkKKysrIFdlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViR0xV
bnNpZ25lZEJ5dGVBcnJheUN1c3RvbS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ3LDE5ICs0Nywx
OSBAQAogewogICAgIElOQ19TVEFUUygiRE9NLldlYkdMVW5zaWduZWRCeXRlQXJyYXkuQ29udHJ1
Y3RvciIpOwogCi0gICAgcmV0dXJuIGNvbnN0cnVjdFdlYkdMQXJyYXk8V2ViR0xVbnNpZ25lZEJ5
dGVBcnJheSwgdW5zaWduZWQgY2hhcj4oYXJncywgJmluZm8pOworICAgIHJldHVybiBjb25zdHJ1
Y3RXZWJHTEFycmF5PFdlYkdMVW5zaWduZWRCeXRlQXJyYXksIHVuc2lnbmVkIGNoYXI+KGFyZ3Ms
ICZpbmZvLCB2ODo6a0V4dGVybmFsVW5zaWduZWRCeXRlQXJyYXkpOwogfQogCiB2ODo6SGFuZGxl
PHY4OjpWYWx1ZT4gVjhXZWJHTFVuc2lnbmVkQnl0ZUFycmF5OjpnZXRDYWxsYmFjayhjb25zdCB2
ODo6QXJndW1lbnRzJiBhcmdzKQogewogICAgIElOQ19TVEFUUygiRE9NLldlYkdMVW5zaWduZWRC
eXRlQXJyYXkuZ2V0KCkiKTsKLSAgICByZXR1cm4gZ2V0V2ViR0xBcnJheUVsZW1lbnQ8V2ViR0xV
bnNpZ25lZEJ5dGVBcnJheSwgdW5zaWduZWQgY2hhcj4oYXJncywgVjhDbGFzc0luZGV4OjpXRUJH
TFVOU0lHTkVEQllURUFSUkFZKTsKKyAgICByZXR1cm4gZ2V0V2ViR0xBcnJheUVsZW1lbnQ8V2Vi
R0xVbnNpZ25lZEJ5dGVBcnJheSwgdW5zaWduZWQgY2hhcj4oYXJncyk7CiB9CiAKIHY4OjpIYW5k
bGU8djg6OlZhbHVlPiBWOFdlYkdMVW5zaWduZWRCeXRlQXJyYXk6OnNldENhbGxiYWNrKGNvbnN0
IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiB7CiAgICAgSU5DX1NUQVRTKCJET00uV2ViR0xVbnNpZ25l
ZEJ5dGVBcnJheS5zZXQoKSIpOwotICAgIHJldHVybiBzZXRXZWJHTEFycmF5PFdlYkdMVW5zaWdu
ZWRCeXRlQXJyYXksIFY4V2ViR0xVbnNpZ25lZEJ5dGVBcnJheT4oYXJncywgVjhDbGFzc0luZGV4
OjpXRUJHTFVOU0lHTkVEQllURUFSUkFZKTsKKyAgICByZXR1cm4gc2V0V2ViR0xBcnJheTxXZWJH
TFVuc2lnbmVkQnl0ZUFycmF5LCBWOFdlYkdMVW5zaWduZWRCeXRlQXJyYXk+KGFyZ3MpOwogfQog
CiB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdG9WOChXZWJHTFVuc2lnbmVkQnl0ZUFycmF5KiBpbXBs
KQpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhMb2NhdGlvbkN1c3RvbS5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhMb2NhdGlvbkN1c3Rv
bS5jcHAJKHJldmlzaW9uIDU2MDg1KQorKysgV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhM
b2NhdGlvbkN1c3RvbS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM1MCwxNyArMzUwLDE1IEBACiAg
ICAgcmV0dXJuIHY4U3RyaW5nKHJlc3VsdCk7CiB9CiAKLWJvb2wgVjhMb2NhdGlvbjo6aW5kZXhl
ZFNlY3VyaXR5Q2hlY2sodjg6OkxvY2FsPHY4OjpPYmplY3Q+IGhvc3QsIHVpbnQzMl90IGluZGV4
LCB2ODo6QWNjZXNzVHlwZSB0eXBlLCB2ODo6TG9jYWw8djg6OlZhbHVlPiBkYXRhKQorYm9vbCBW
OExvY2F0aW9uOjppbmRleGVkU2VjdXJpdHlDaGVjayh2ODo6TG9jYWw8djg6Ok9iamVjdD4gaG9z
dCwgdWludDMyX3QgaW5kZXgsIHY4OjpBY2Nlc3NUeXBlIHR5cGUsIHY4OjpMb2NhbDx2ODo6VmFs
dWU+KQogewotICAgIEFTU0VSVChWOENsYXNzSW5kZXg6OkZyb21JbnQoZGF0YS0+SW50MzJWYWx1
ZSgpKSA9PSBWOENsYXNzSW5kZXg6OkxPQ0FUSU9OKTsKICAgICAvLyBPbmx5IGFsbG93IHNhbWUg
b3JpZ2luIGFjY2VzcwogICAgIExvY2F0aW9uKiBpbXAgPSAgVjhMb2NhdGlvbjo6dG9OYXRpdmUo
aG9zdCk7CiAgICAgcmV0dXJuIFY4QmluZGluZ1NlY3VyaXR5OjpjYW5BY2Nlc3NGcmFtZShWOEJp
bmRpbmdTdGF0ZTo6T25seSgpLCBpbXAtPmZyYW1lKCksIGZhbHNlKTsKIH0KIAotYm9vbCBWOExv
Y2F0aW9uOjpuYW1lZFNlY3VyaXR5Q2hlY2sodjg6OkxvY2FsPHY4OjpPYmplY3Q+IGhvc3QsIHY4
OjpMb2NhbDx2ODo6VmFsdWU+IGtleSwgdjg6OkFjY2Vzc1R5cGUgdHlwZSwgdjg6OkxvY2FsPHY4
OjpWYWx1ZT4gZGF0YSkKK2Jvb2wgVjhMb2NhdGlvbjo6bmFtZWRTZWN1cml0eUNoZWNrKHY4OjpM
b2NhbDx2ODo6T2JqZWN0PiBob3N0LCB2ODo6TG9jYWw8djg6OlZhbHVlPiBrZXksIHY4OjpBY2Nl
c3NUeXBlIHR5cGUsIHY4OjpMb2NhbDx2ODo6VmFsdWU+KQogewotICAgIEFTU0VSVChWOENsYXNz
SW5kZXg6OkZyb21JbnQoZGF0YS0+SW50MzJWYWx1ZSgpKSA9PSBWOENsYXNzSW5kZXg6OkxPQ0FU
SU9OKTsKICAgICAvLyBPbmx5IGFsbG93IHNhbWUgb3JpZ2luIGFjY2VzcwogICAgIExvY2F0aW9u
KiBpbXAgPSBWOExvY2F0aW9uOjp0b05hdGl2ZShob3N0KTsKICAgICByZXR1cm4gVjhCaW5kaW5n
U2VjdXJpdHk6OmNhbkFjY2Vzc0ZyYW1lKFY4QmluZGluZ1N0YXRlOjpPbmx5KCksIGltcC0+ZnJh
bWUoKSwgZmFsc2UpOwpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhFdmVudFNv
dXJjZUNvbnN0cnVjdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1
c3RvbS9WOEV2ZW50U291cmNlQ29uc3RydWN0b3IuY3BwCShyZXZpc2lvbiA1NjA4NSkKKysrIFdl
YkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4RXZlbnRTb3VyY2VDb25zdHJ1Y3Rvci5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTY2LDcgKzY2LDcgQEAKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVy
biB0aHJvd0Vycm9yKGVjKTsKIAotICAgIFY4RE9NV3JhcHBlcjo6c2V0RE9NV3JhcHBlcihhcmdz
LkhvbGRlcigpLCBWOENsYXNzSW5kZXg6OlRvSW50KFY4Q2xhc3NJbmRleDo6RVZFTlRTT1VSQ0Up
LCBldmVudFNvdXJjZS5nZXQoKSk7CisgICAgVjhET01XcmFwcGVyOjpzZXRET01XcmFwcGVyKGFy
Z3MuSG9sZGVyKCksICZpbmZvLCBldmVudFNvdXJjZS5nZXQoKSk7CiAKICAgICAvLyBBZGQgb2Jq
ZWN0IHRvIHRoZSB3cmFwcGVyIG1hcC4KICAgICBldmVudFNvdXJjZS0+cmVmKCk7CkluZGV4OiBX
ZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEhpc3RvcnlDdXN0b20uY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SGlzdG9yeUN1c3RvbS5jcHAJKHJldmlz
aW9uIDU2MDg1KQorKysgV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhIaXN0b3J5Q3VzdG9t
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtODMsMTcgKzgzLDE1IEBACiAgICAgcmV0dXJuIHRocm93
RXJyb3IoZWMpOwogfQogCi1ib29sIFY4SGlzdG9yeTo6aW5kZXhlZFNlY3VyaXR5Q2hlY2sodjg6
OkxvY2FsPHY4OjpPYmplY3Q+IGhvc3QsIHVpbnQzMl90IGluZGV4LCB2ODo6QWNjZXNzVHlwZSB0
eXBlLCB2ODo6TG9jYWw8djg6OlZhbHVlPiBkYXRhKQorYm9vbCBWOEhpc3Rvcnk6OmluZGV4ZWRT
ZWN1cml0eUNoZWNrKHY4OjpMb2NhbDx2ODo6T2JqZWN0PiBob3N0LCB1aW50MzJfdCBpbmRleCwg
djg6OkFjY2Vzc1R5cGUgdHlwZSwgdjg6OkxvY2FsPHY4OjpWYWx1ZT4pCiB7Ci0gICAgQVNTRVJU
KFY4Q2xhc3NJbmRleDo6RnJvbUludChkYXRhLT5JbnQzMlZhbHVlKCkpID09IFY4Q2xhc3NJbmRl
eDo6SElTVE9SWSk7CiAgICAgLy8gT25seSBhbGxvdyBzYW1lIG9yaWdpbiBhY2Nlc3MuCiAgICAg
SGlzdG9yeSogaGlzdG9yeSA9IFY4SGlzdG9yeTo6dG9OYXRpdmUoaG9zdCk7CiAgICAgcmV0dXJu
IFY4QmluZGluZ1NlY3VyaXR5OjpjYW5BY2Nlc3NGcmFtZShWOEJpbmRpbmdTdGF0ZTo6T25seSgp
LCBoaXN0b3J5LT5mcmFtZSgpLCBmYWxzZSk7CiB9CiAKLWJvb2wgVjhIaXN0b3J5OjpuYW1lZFNl
Y3VyaXR5Q2hlY2sodjg6OkxvY2FsPHY4OjpPYmplY3Q+IGhvc3QsIHY4OjpMb2NhbDx2ODo6VmFs
dWU+IGtleSwgdjg6OkFjY2Vzc1R5cGUgdHlwZSwgdjg6OkxvY2FsPHY4OjpWYWx1ZT4gZGF0YSkK
K2Jvb2wgVjhIaXN0b3J5OjpuYW1lZFNlY3VyaXR5Q2hlY2sodjg6OkxvY2FsPHY4OjpPYmplY3Q+
IGhvc3QsIHY4OjpMb2NhbDx2ODo6VmFsdWU+IGtleSwgdjg6OkFjY2Vzc1R5cGUgdHlwZSwgdjg6
OkxvY2FsPHY4OjpWYWx1ZT4pCiB7Ci0gICAgQVNTRVJUKFY4Q2xhc3NJbmRleDo6RnJvbUludChk
YXRhLT5JbnQzMlZhbHVlKCkpID09IFY4Q2xhc3NJbmRleDo6SElTVE9SWSk7CiAgICAgLy8gT25s
eSBhbGxvdyBzYW1lIG9yaWdpbiBhY2Nlc3MuCiAgICAgSGlzdG9yeSogaGlzdG9yeSA9IFY4SGlz
dG9yeTo6dG9OYXRpdmUoaG9zdCk7CiAgICAgcmV0dXJuIFY4QmluZGluZ1NlY3VyaXR5OjpjYW5B
Y2Nlc3NGcmFtZShWOEJpbmRpbmdTdGF0ZTo6T25seSgpLCBoaXN0b3J5LT5mcmFtZSgpLCBmYWxz
ZSk7CkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYkdMVW5zaWduZWRJbnRB
cnJheUN1c3RvbS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20v
VjhXZWJHTFVuc2lnbmVkSW50QXJyYXlDdXN0b20uY3BwCShyZXZpc2lvbiA1NjA4NSkKKysrIFdl
YkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViR0xVbnNpZ25lZEludEFycmF5Q3VzdG9tLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNDcsMTkgKzQ3LDE5IEBACiB7CiAgICAgSU5DX1NUQVRTKCJE
T00uV2ViR0xVbnNpZ25lZEludEFycmF5LkNvbnRydWN0b3IiKTsKIAotICAgIHJldHVybiBjb25z
dHJ1Y3RXZWJHTEFycmF5PFdlYkdMVW5zaWduZWRJbnRBcnJheSwgdW5zaWduZWQgaW50Pihhcmdz
LCAmaW5mbyk7CisgICAgcmV0dXJuIGNvbnN0cnVjdFdlYkdMQXJyYXk8V2ViR0xVbnNpZ25lZElu
dEFycmF5LCB1bnNpZ25lZCBpbnQ+KGFyZ3MsICZpbmZvLCB2ODo6a0V4dGVybmFsVW5zaWduZWRJ
bnRBcnJheSk7CiB9CiAKIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOFdlYkdMVW5zaWduZWRJbnRB
cnJheTo6Z2V0Q2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKIHsKICAgICBJTkNf
U1RBVFMoIkRPTS5XZWJHTFVuc2lnbmVkSW50QXJyYXkuZ2V0KCkiKTsKLSAgICByZXR1cm4gZ2V0
V2ViR0xBcnJheUVsZW1lbnQ8V2ViR0xVbnNpZ25lZEludEFycmF5LCB1bnNpZ25lZCBpbnQ+KGFy
Z3MsIFY4Q2xhc3NJbmRleDo6V0VCR0xVTlNJR05FRElOVEFSUkFZKTsKKyAgICByZXR1cm4gZ2V0
V2ViR0xBcnJheUVsZW1lbnQ8V2ViR0xVbnNpZ25lZEludEFycmF5LCB1bnNpZ25lZCBpbnQ+KGFy
Z3MpOwogfQogCiB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhXZWJHTFVuc2lnbmVkSW50QXJyYXk6
OnNldENhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiB7CiAgICAgSU5DX1NUQVRT
KCJET00uV2ViR0xVbnNpZ25lZEludEFycmF5LnNldCgpIik7Ci0gICAgcmV0dXJuIHNldFdlYkdM
QXJyYXk8V2ViR0xVbnNpZ25lZEludEFycmF5LCBWOFdlYkdMVW5zaWduZWRJbnRBcnJheT4oYXJn
cywgVjhDbGFzc0luZGV4OjpXRUJHTFVOU0lHTkVESU5UQVJSQVkpOworICAgIHJldHVybiBzZXRX
ZWJHTEFycmF5PFdlYkdMVW5zaWduZWRJbnRBcnJheSwgVjhXZWJHTFVuc2lnbmVkSW50QXJyYXk+
KGFyZ3MpOwogfQogCiB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdG9WOChXZWJHTFVuc2lnbmVkSW50
QXJyYXkqIGltcGwpCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYkdMSW50
QXJyYXlDdXN0b20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9t
L1Y4V2ViR0xJbnRBcnJheUN1c3RvbS5jcHAJKHJldmlzaW9uIDU2MDg1KQorKysgV2ViQ29yZS9i
aW5kaW5ncy92OC9jdXN0b20vVjhXZWJHTEludEFycmF5Q3VzdG9tLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtNDcsMTkgKzQ3LDE5IEBACiB7CiAgICAgSU5DX1NUQVRTKCJET00uV2ViR0xJbnRBcnJh
eS5Db250cnVjdG9yIik7CiAKLSAgICByZXR1cm4gY29uc3RydWN0V2ViR0xBcnJheTxXZWJHTElu
dEFycmF5LCBpbnQ+KGFyZ3MsICZpbmZvKTsKKyAgICByZXR1cm4gY29uc3RydWN0V2ViR0xBcnJh
eTxXZWJHTEludEFycmF5LCBpbnQ+KGFyZ3MsICZpbmZvLCB2ODo6a0V4dGVybmFsSW50QXJyYXkp
OwogfQogCiB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhXZWJHTEludEFycmF5OjpnZXRDYWxsYmFj
ayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQogewogICAgIElOQ19TVEFUUygiRE9NLldlYkdM
SW50QXJyYXkuZ2V0KCkiKTsKLSAgICByZXR1cm4gZ2V0V2ViR0xBcnJheUVsZW1lbnQ8V2ViR0xJ
bnRBcnJheSwgaW50PihhcmdzLCBWOENsYXNzSW5kZXg6OldFQkdMSU5UQVJSQVkpOworICAgIHJl
dHVybiBnZXRXZWJHTEFycmF5RWxlbWVudDxXZWJHTEludEFycmF5LCBpbnQ+KGFyZ3MpOwogfQog
CiB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhXZWJHTEludEFycmF5OjpzZXRDYWxsYmFjayhjb25z
dCB2ODo6QXJndW1lbnRzJiBhcmdzKQogewogICAgIElOQ19TVEFUUygiRE9NLldlYkdMSW50QXJy
YXkuc2V0KCkiKTsKLSAgICByZXR1cm4gc2V0V2ViR0xBcnJheTxXZWJHTEludEFycmF5LCBWOFdl
YkdMSW50QXJyYXk+KGFyZ3MsIFY4Q2xhc3NJbmRleDo6V0VCR0xJTlRBUlJBWSk7CisgICAgcmV0
dXJuIHNldFdlYkdMQXJyYXk8V2ViR0xJbnRBcnJheSwgVjhXZWJHTEludEFycmF5PihhcmdzKTsK
IH0KIAogdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHRvVjgoV2ViR0xJbnRBcnJheSogaW1wbCkKSW5k
ZXg6IFdlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SFRNTEF1ZGlvRWxlbWVudENvbnN0cnVj
dG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEhUTUxB
dWRpb0VsZW1lbnRDb25zdHJ1Y3Rvci5jcHAJKHJldmlzaW9uIDU2MDg1KQorKysgV2ViQ29yZS9i
aW5kaW5ncy92OC9jdXN0b20vVjhIVE1MQXVkaW9FbGVtZW50Q29uc3RydWN0b3IuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC00NCw3ICs0NCw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotV3Jh
cHBlclR5cGVJbmZvIFY4SFRNTEF1ZGlvRWxlbWVudENvbnN0cnVjdG9yOjppbmZvID0ge1Y4Q2xh
c3NJbmRleDo6VG9JbnQoVjhDbGFzc0luZGV4OjpBVURJTyksIFY4SFRNTEF1ZGlvRWxlbWVudENv
bnN0cnVjdG9yOjpHZXRUZW1wbGF0ZSwgMCwgZmFsc2UgfTsKK1dyYXBwZXJUeXBlSW5mbyBWOEhU
TUxBdWRpb0VsZW1lbnRDb25zdHJ1Y3Rvcjo6aW5mbyA9IHsgVjhIVE1MQXVkaW9FbGVtZW50Q29u
c3RydWN0b3I6OkdldFRlbXBsYXRlLCAwLCBmYWxzZSB9OwogCiBzdGF0aWMgdjg6OkhhbmRsZTx2
ODo6VmFsdWU+IHY4SFRNTEF1ZGlvRWxlbWVudENvbnN0cnVjdG9yQ2FsbGJhY2soY29uc3Qgdjg6
OkFyZ3VtZW50cyYgYXJncykKIHsKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4
V2ViR0xTaG9ydEFycmF5Q3VzdG9tLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdz
L3Y4L2N1c3RvbS9WOFdlYkdMU2hvcnRBcnJheUN1c3RvbS5jcHAJKHJldmlzaW9uIDU2MDg1KQor
KysgV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhXZWJHTFNob3J0QXJyYXlDdXN0b20uY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC00NywxOSArNDcsMTkgQEAKIHsKICAgICBJTkNfU1RBVFMoIkRP
TS5XZWJHTFNob3J0QXJyYXkuQ29udHJ1Y3RvciIpOwogCi0gICAgcmV0dXJuIGNvbnN0cnVjdFdl
YkdMQXJyYXk8V2ViR0xTaG9ydEFycmF5LCBzaG9ydD4oYXJncywgJmluZm8pOworICAgIHJldHVy
biBjb25zdHJ1Y3RXZWJHTEFycmF5PFdlYkdMU2hvcnRBcnJheSwgc2hvcnQ+KGFyZ3MsICZpbmZv
LCB2ODo6a0V4dGVybmFsU2hvcnRBcnJheSk7CiB9CiAKIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBW
OFdlYkdMU2hvcnRBcnJheTo6Z2V0Q2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykK
IHsKICAgICBJTkNfU1RBVFMoIkRPTS5XZWJHTFNob3J0QXJyYXkuZ2V0KCkiKTsKLSAgICByZXR1
cm4gZ2V0V2ViR0xBcnJheUVsZW1lbnQ8V2ViR0xTaG9ydEFycmF5LCBzaG9ydD4oYXJncywgVjhD
bGFzc0luZGV4OjpXRUJHTFNIT1JUQVJSQVkpOworICAgIHJldHVybiBnZXRXZWJHTEFycmF5RWxl
bWVudDxXZWJHTFNob3J0QXJyYXksIHNob3J0PihhcmdzKTsKIH0KIAogdjg6OkhhbmRsZTx2ODo6
VmFsdWU+IFY4V2ViR0xTaG9ydEFycmF5OjpzZXRDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRz
JiBhcmdzKQogewogICAgIElOQ19TVEFUUygiRE9NLldlYkdMU2hvcnRBcnJheS5zZXQoKSIpOwot
ICAgIHJldHVybiBzZXRXZWJHTEFycmF5PFdlYkdMU2hvcnRBcnJheSwgVjhXZWJHTFNob3J0QXJy
YXk+KGFyZ3MsIFY4Q2xhc3NJbmRleDo6V0VCR0xTSE9SVEFSUkFZKTsKKyAgICByZXR1cm4gc2V0
V2ViR0xBcnJheTxXZWJHTFNob3J0QXJyYXksIFY4V2ViR0xTaG9ydEFycmF5PihhcmdzKTsKIH0K
IAogdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHRvVjgoV2ViR0xTaG9ydEFycmF5KiBpbXBsKQpJbmRl
eDogV2ViQ29yZS9XZWJDb3JlLmd5cGkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLmd5
cGkJKHJldmlzaW9uIDU2MDg1KQorKysgV2ViQ29yZS9XZWJDb3JlLmd5cGkJKHdvcmtpbmcgY29w
eSkKQEAgLTg3Nyw3ICs4NzcsNiBAQAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L1Y4SGVscGVy
cy5oJywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9WOEhpZGRlblByb3BlcnR5TmFtZS5jcHAn
LAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L1Y4SGlkZGVuUHJvcGVydHlOYW1lLmgnLAotICAg
ICAgICAgICAgJ2JpbmRpbmdzL3Y4L1Y4SW5kZXguaCcsCiAgICAgICAgICAgICAnYmluZGluZ3Mv
djgvVjhJc29sYXRlZENvbnRleHQuY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9WOElz
b2xhdGVkQ29udGV4dC5oJywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9WOExhenlFdmVudExp
c3RlbmVyLmNwcCcsCkBAIC05MDEsNiArOTAwLDcgQEAKICAgICAgICAgICAgICdiaW5kaW5ncy92
OC9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3Mvdjgv
V29ybGRDb250ZXh0SGFuZGxlLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvV29ybGRD
b250ZXh0SGFuZGxlLmgnLAorICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L1dyYXBwZXJUeXBlSW5m
by5oJywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9ucHJ1bnRpbWUuY3BwJywKICAgICAgICAg
ICAgICdiaW5kaW5ncy92OC9ucHJ1bnRpbWVfaW1wbC5oJywKICAgICAgICAgICAgICdiaW5kaW5n
cy92OC9ucHJ1bnRpbWVfaW50ZXJuYWwuaCcsCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>50970</attachid>
            <date>2010-03-17 16:21:02 -0700</date>
            <delta_ts>2010-03-18 07:34:43 -0700</delta_ts>
            <desc>Kill it cleaner.</desc>
            <filename>index2.txt</filename>
            <type>text/plain</type>
            <size>133108</size>
            <attacher name="Nate Chapin">japhet</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViRGV2VG9vbHNBZ2VudEltcGwuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViRGV2VG9vbHNBZ2VudEltcGwuY3BwCShy
ZXZpc2lvbiA1NjEzMSkKKysrIFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViRGV2VG9vbHNBZ2VudElt
cGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04Niw3ICs4Niw2IEBACiB1c2luZyBXZWJDb3JlOjpT
Y3JpcHRTdGF0ZTsKIHVzaW5nIFdlYkNvcmU6OlNjcmlwdFZhbHVlOwogdXNpbmcgV2ViQ29yZTo6
U3RyaW5nOwotdXNpbmcgV2ViQ29yZTo6VjhDbGFzc0luZGV4OwogdXNpbmcgV2ViQ29yZTo6VjhE
T01XcmFwcGVyOwogdXNpbmcgV2ViQ29yZTo6VjhJbnNwZWN0b3JCYWNrZW5kOwogdXNpbmcgV2Vi
Q29yZTo6VjhQcm94eTsKSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViRGV2VG9vbHNGcm9u
dGVuZEltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViRGV2VG9v
bHNGcm9udGVuZEltcGwuY3BwCShyZXZpc2lvbiA1NjEzMSkKKysrIFdlYktpdC9jaHJvbWl1bS9z
cmMvV2ViRGV2VG9vbHNGcm9udGVuZEltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NCw2ICs1
NCw3IEBACiAjaW5jbHVkZSAiVjhCaW5kaW5nLmgiCiAjaW5jbHVkZSAiVjhET01XcmFwcGVyLmgi
CiAjaW5jbHVkZSAiVjhJbnNwZWN0b3JGcm9udGVuZEhvc3QuaCIKKyNpbmNsdWRlICJWOE1vdXNl
RXZlbnQuaCIKICNpbmNsdWRlICJWOE5vZGUuaCIKICNpbmNsdWRlICJWOFByb3h5LmgiCiAjaW5j
bHVkZSAiVjhVdGlsaXRpZXMuaCIKQEAgLTM2NSw3ICszNjYsNyBAQAogICAgICAgICByZXR1cm4g
djg6OlVuZGVmaW5lZCgpOwogCiAgICAgdjg6OkxvY2FsPHY4OjpPYmplY3Q+IGV2ZW50V3JhcHBl
ciA9IHY4OjpMb2NhbDx2ODo6T2JqZWN0Pjo6Q2FzdChhcmdzWzBdKTsKLSAgICBpZiAoVjhET01X
cmFwcGVyOjpkb21XcmFwcGVyVHlwZShldmVudFdyYXBwZXIpLT5pbmRleCAhPSBWOENsYXNzSW5k
ZXg6Ok1PVVNFRVZFTlQpCisgICAgaWYgKCFWOE1vdXNlRXZlbnQ6OmluZm8uZXF1YWxzKFY4RE9N
V3JhcHBlcjo6ZG9tV3JhcHBlclR5cGUoZXZlbnRXcmFwcGVyKSkKICAgICAgICAgcmV0dXJuIHY4
OjpVbmRlZmluZWQoKTsKIAogICAgIEV2ZW50KiBldmVudCA9IFY4RXZlbnQ6OnRvTmF0aXZlKGV2
ZW50V3JhcHBlcik7CkluZGV4OiBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYkJpbmRpbmdzLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYkJpbmRpbmdzLmNwcAkocmV2aXNp
b24gNTYxMzEpCisrKyBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYkJpbmRpbmdzLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMjg0LDcgKzI4NCw3IEBACiB7CiAgICAgVjhOUE9iamVjdCogdjhucG9iamVj
dCA9IHJlaW50ZXJwcmV0X2Nhc3Q8VjhOUE9iamVjdCo+KG5wb2JqKTsKICAgICB2ODo6SGFuZGxl
PHY4OjpPYmplY3Q+IHY4b2JqZWN0KHY4bnBvYmplY3QtPnY4T2JqZWN0KTsKLSAgICBpZiAoVjhD
bGFzc0luZGV4OjpSQU5HRSAhPSBWOERPTVdyYXBwZXI6OmRvbVdyYXBwZXJUeXBlKHY4b2JqZWN0
KS0+aW5kZXgpCisgICAgaWYgKCFWOFJhbmdlOjppbmZvLmVxdWFscyhWOERPTVdyYXBwZXI6OmRv
bVdyYXBwZXJUeXBlKHY4b2JqZWN0KSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIFJh
bmdlKiBuYXRpdmUgPSBWOFJhbmdlOjp0b05hdGl2ZSh2OG9iamVjdCk7CkluZGV4OiBXZWJLaXQv
Y2hyb21pdW0vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VM
b2cJKHJldmlzaW9uIDU2MTMxKQorKysgV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDE3IEBACisyMDEwLTAzLTE3ICBOYXRlIENoYXBpbiAgPGphcGhl
dEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisg
ICAgICAgIAorICAgICAgICBSZW1vdmUgYWxsIHJlZmVyZW5jZXMgdG8gVjhJbmRleC5oIGFuZCBW
OENsYXNzSW5kZXguCisgICAgICAgIAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MzM0NzcKKworICAgICAgICAqIHNyYy9XZWJCaW5kaW5ncy5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OmdldFJhbmdlSW1wbCk6CisgICAgICAgICogc3JjL1dlYkRldlRvb2xz
QWdlbnRJbXBsLmNwcDoKKyAgICAgICAgKiBzcmMvV2ViRGV2VG9vbHNGcm9udGVuZEltcGwuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJEZXZUb29sc0Zyb250ZW5kSW1wbDo6anNTaG93Q29udGV4
dE1lbnUpOgorCiAyMDEwLTAzLTE3ICBEbWl0cnkgVGl0b3YgIDxkaW1pY2hAY2hyb21pdW0ub3Jn
PgogCiAgICAgICAgIFJldmlld2VkIGJ5IERpbWl0cmkgR2xhemtvdi4KSW5kZXg6IFdlYkNvcmUv
Q2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiA1NjEz
MSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNTMgQEAK
KzIwMTAtMDMtMTcgIE5hdGUgQ2hhcGluICA8amFwaGV0QGNocm9taXVtLm9yZz4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbVjhdIFJlbW92ZSBWOElu
ZGV4LmggYW5kIGFsbCByZWZlcmVuY2VzIHRvIFY4Q2xhc3NJbmRleC4KKyAgICAgICAgCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMzQ3NworCisgICAg
ICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVy
YXRvclY4LnBtOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L05QVjhPYmplY3QuY3BwOgorICAgICAg
ICAqIGJpbmRpbmdzL3Y4L05QVjhPYmplY3QuaDoKKyAgICAgICAgKiBiaW5kaW5ncy92OC9WOENv
bGxlY3Rpb24uaDoKKyAgICAgICAgKiBiaW5kaW5ncy92OC9WOERPTVdpbmRvd1NoZWxsLmNwcDoK
KyAgICAgICAgKiBiaW5kaW5ncy92OC9WOERPTVdpbmRvd1NoZWxsLmg6CisgICAgICAgICogYmlu
ZGluZ3MvdjgvVjhET01XcmFwcGVyLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy92OC9WOERPTVdy
YXBwZXIuaDoKKyAgICAgICAgKiBiaW5kaW5ncy92OC9WOEdDQ29udHJvbGxlci5jcHA6CisgICAg
ICAgICogYmluZGluZ3MvdjgvVjhIZWxwZXJzLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy92OC9W
OEluZGV4Lmg6IFJlbW92ZWQuCisgICAgICAgICogYmluZGluZ3MvdjgvVjhJc29sYXRlZENvbnRl
eHQuaDoKKyAgICAgICAgKiBiaW5kaW5ncy92OC9WOE5QT2JqZWN0LmNwcDoKKyAgICAgICAgKiBi
aW5kaW5ncy92OC9WOFByb3h5LmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy92OC9WOFByb3h5Lmg6
CisgICAgICAgICogYmluZGluZ3MvdjgvVjhTVkdQT0RUeXBlV3JhcHBlci5oOgorICAgICAgICAq
IGJpbmRpbmdzL3Y4L1dvcmtlckNvbnRleHRFeGVjdXRpb25Qcm94eS5jcHA6CisgICAgICAgICog
YmluZGluZ3MvdjgvV29ya2VyQ29udGV4dEV4ZWN1dGlvblByb3h5Lmg6CisgICAgICAgICogYmlu
ZGluZ3MvdjgvV3JhcHBlclR5cGVJbmZvLmg6IE1vdmUgV3JhcHBlclR5cGVJbmZvIHN0cnVjdCBp
bnRvIGl0cyBvd24gZmlsZSBmcm9tIFY4SW5kZXguaC4KKyAgICAgICAgKiBiaW5kaW5ncy92OC9j
dXN0b20vVjhDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRDdXN0b20uY3BwOgorICAgICAgICAqIGJp
bmRpbmdzL3Y4L2N1c3RvbS9WOERPTVdpbmRvd0N1c3RvbS5jcHA6CisgICAgICAgICogYmluZGlu
Z3MvdjgvY3VzdG9tL1Y4RXZlbnRTb3VyY2VDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgICogYmlu
ZGluZ3MvdjgvY3VzdG9tL1Y4SFRNTEF1ZGlvRWxlbWVudENvbnN0cnVjdG9yLmNwcDoKKyAgICAg
ICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhIVE1MQXVkaW9FbGVtZW50Q29uc3RydWN0b3IuaDoK
KyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhIVE1MSW1hZ2VFbGVtZW50Q29uc3RydWN0
b3IuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOEhUTUxJbWFnZUVsZW1lbnRD
b25zdHJ1Y3Rvci5oOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOEhUTUxPcHRpb25F
bGVtZW50Q29uc3RydWN0b3IuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOEhU
TUxPcHRpb25FbGVtZW50Q29uc3RydWN0b3IuaDoKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0
b20vVjhIaXN0b3J5Q3VzdG9tLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhM
b2NhdGlvbkN1c3RvbS5jcHA6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViR0xB
cnJheUN1c3RvbS5oOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYkdMQnl0ZUFy
cmF5Q3VzdG9tLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhXZWJHTEZsb2F0
QXJyYXlDdXN0b20uY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYkdMSW50
QXJyYXlDdXN0b20uY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYkdMUmVu
ZGVyaW5nQ29udGV4dEN1c3RvbS5jcHA6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4
V2ViR0xTaG9ydEFycmF5Q3VzdG9tLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20v
VjhXZWJHTFVuc2lnbmVkQnl0ZUFycmF5Q3VzdG9tLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy92
OC9jdXN0b20vVjhXZWJHTFVuc2lnbmVkSW50QXJyYXlDdXN0b20uY3BwOgorICAgICAgICAqIGJp
bmRpbmdzL3Y4L2N1c3RvbS9WOFdlYkdMVW5zaWduZWRTaG9ydEFycmF5Q3VzdG9tLmNwcDoKKyAg
ICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhXZWJLaXRQb2ludENvbnN0cnVjdG9yLmNwcDoK
KwogMjAxMC0wMy0xNyAgRG1pdHJ5IFRpdG92ICA8ZGltaWNoQGNocm9taXVtLm9yZz4KIAogICAg
ICAgICBSZXZpZXdlZCBieSBEaW1pdHJpIEdsYXprb3YuCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0JKHJldmlzaW9uIDU2MTMxKQorKysgV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQkod29ya2luZyBjb3B5KQpAQCAt
MjI2LDcgKzIyNiw3IEBACiAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiNpbmNsdWRlIDx2OC5o
PlxuIik7CiAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiNpbmNsdWRlIDx3dGYvSGFzaE1hcC5o
PlxuIik7CiAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiNpbmNsdWRlIFwiU3RyaW5nSGFzaC5o
XCJcbiIpOwotICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIjaW5jbHVkZSBcIlY4SW5kZXguaFwi
XG4iKTsKKyAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiI2luY2x1ZGUgXCJXcmFwcGVyVHlwZUlu
Zm8uaFwiXG4iKTsKICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCBHZXRIZWFkZXJDbGFzc0luY2x1
ZGUoJGltcGxDbGFzc05hbWUpKTsKICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiXG5uYW1lc3Bh
Y2UgV2ViQ29yZSB7XG4iKTsKICAgICBpZiAoJHBvZFR5cGUpIHsKQEAgLTU1Myw3ICs1NTMsNyBA
QAogICAgIElOQ19TVEFUUyhcIkRPTS4kaW1wbENsYXNzTmFtZS5jb25zdHJ1Y3RvcnMuX2dldFwi
KTsKICAgICB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gZGF0YSA9IGluZm8uRGF0YSgpOwogICAgIEFT
U0VSVChkYXRhLT5Jc0V4dGVybmFsKCkgfHwgZGF0YS0+SXNOdW1iZXIoKSk7Ci0gICAgV3JhcHBl
clR5cGVJbmZvKiB0eXBlID0gcmVpbnRlcnByZXRfY2FzdDxXcmFwcGVyVHlwZUluZm8qPih2ODo6
RXh0ZXJuYWw6OlVud3JhcChkYXRhKSk7CisgICAgV3JhcHBlclR5cGVJbmZvKiB0eXBlID0gV3Jh
cHBlclR5cGVJbmZvOjp1bndyYXAoZGF0YSk7CiBFTkQKIAogICAgIGlmICgkaW1wbENsYXNzTmFt
ZSBlcSAiRE9NV2luZG93IikgewpAQCAtOTc5LDcgKzk3OSw2IEBACiB7CiAgICAgbXkgJGZ1bmN0
aW9uID0gc2hpZnQ7CiAgICAgbXkgJGRhdGFOb2RlID0gc2hpZnQ7Ci0gICAgbXkgJGNsYXNzSW5k
ZXggPSBzaGlmdDsKICAgICBteSAkaW1wbENsYXNzTmFtZSA9IHNoaWZ0OwogCiAgICAgbXkgJGlu
dGVyZmFjZU5hbWUgPSAkZGF0YU5vZGUtPm5hbWU7CkBAIC0xMzEyLDkgKzEzMTEsOCBAQAogRU5E
CiAgICAgICAgICAgICB9CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBteSAkaW5kZXhl
ckNsYXNzSW5kZXggPSB1YygkaW5kZXhlclR5cGUpOwogICAgICAgICAgICAgcHVzaChAaW1wbENv
bnRlbnQsIDw8RU5EKTsKLSAgICBzZXRDb2xsZWN0aW9uSW5kZXhlZEdldHRlcjwke2ludGVyZmFj
ZU5hbWV9LCAke2luZGV4ZXJUeXBlfT4oZGVzYywgVjhDbGFzc0luZGV4Ojoke2luZGV4ZXJDbGFz
c0luZGV4fSk7CisgICAgc2V0Q29sbGVjdGlvbkluZGV4ZWRHZXR0ZXI8JHtpbnRlcmZhY2VOYW1l
fSwgJHtpbmRleGVyVHlwZX0+KGRlc2MpOwogRU5ECiAgICAgICAgICAgICAjIEluY2x1ZGUgdGhl
IGhlYWRlciBmb3IgdGhpcyBpbmRleGVyIHR5cGUsIGJlY2F1c2Ugc2V0Q29sbGVjdGlvbkluZGV4
ZWRHZXR0ZXIoKSByZXF1aXJlcyB0b1Y4KCkgZm9yIHRoaXMgdHlwZS4KICAgICAgICAgICAgICRp
bXBsSW5jbHVkZXN7IlY4JHtpbmRleGVyVHlwZX0uaCJ9ID0gMTsKQEAgLTEzNDAsNyArMTMzOCw3
IEBACiAgICAgcHVzaChAaW1wbENvbnRlbnQsICRoYXNDdXN0b21TZXR0ZXIgPyAiLCBWOCR7aW50
ZXJmYWNlTmFtZX06OmluZGV4ZWRQcm9wZXJ0eVNldHRlciIgOiAiLCAwIik7CiAgICAgcHVzaChA
aW1wbENvbnRlbnQsICIsIDAiKTsgIyBJbmRleGVkUHJvcGVydHlRdWVyeSAtLSBub3QgYmVpbmcg
dXNlZCBhdCB0aGUgbW9tZW50LgogICAgIHB1c2goQGltcGxDb250ZW50LCAkaGFzRGVsZXRlciA/
ICIsIFY4JHtpbnRlcmZhY2VOYW1lfTo6aW5kZXhlZFByb3BlcnR5RGVsZXRlciIgOiAiLCAwIik7
Ci0gICAgcHVzaChAaW1wbENvbnRlbnQsICIsIG5vZGVDb2xsZWN0aW9uSW5kZXhlZFByb3BlcnR5
RW51bWVyYXRvcjwke2ludGVyZmFjZU5hbWV9Piwgdjg6OkludGVnZXI6Ok5ldyhWOENsYXNzSW5k
ZXg6Ok5PREUpIikgaWYgJGhhc0VudW1lcmF0b3I7CisgICAgcHVzaChAaW1wbENvbnRlbnQsICIs
IG5vZGVDb2xsZWN0aW9uSW5kZXhlZFByb3BlcnR5RW51bWVyYXRvcjwke2ludGVyZmFjZU5hbWV9
PiIpIGlmICRoYXNFbnVtZXJhdG9yOwogICAgIHB1c2goQGltcGxDb250ZW50LCAiKTtcbiIpOwog
fQogCkBAIC0xMzcwLDkgKzEzNjgsOCBAQAogICAgIGlmICgkbmFtZWRQcm9wZXJ0eUdldHRlciAm
JiAkbmFtZWRQcm9wZXJ0eUdldHRlci0+dHlwZSBuZSAiTm9kZSIgJiYgISRuYW1lZFByb3BlcnR5
R2V0dGVyLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tIn0gJiYgISRoYXNDdXN0b21HZXR0
ZXIpIHsKICAgICAgICAgJGltcGxJbmNsdWRlc3siVjhDb2xsZWN0aW9uLmgifSA9IDE7CiAgICAg
ICAgIG15ICR0eXBlID0gJG5hbWVkUHJvcGVydHlHZXR0ZXItPnR5cGU7Ci0gICAgICAgIG15ICRj
bGFzc0luZGV4ID0gdWMoJHR5cGUpOwogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgPDxFTkQp
OwotICAgIHNldENvbGxlY3Rpb25OYW1lZEdldHRlcjwke2ludGVyZmFjZU5hbWV9LCAke3R5cGV9
PihkZXNjLCBWOENsYXNzSW5kZXg6OiR7Y2xhc3NJbmRleH0pOworICAgIHNldENvbGxlY3Rpb25O
YW1lZEdldHRlcjwke2ludGVyZmFjZU5hbWV9LCAke3R5cGV9PihkZXNjKTsKIEVORAogICAgICAg
ICByZXR1cm47CiAgICAgfQpAQCAtMTQzNSw3ICsxNDMyLDYgQEAKICAgICBteSAkdmlzaWJsZUlu
dGVyZmFjZU5hbWUgPSBHZXRWaXNpYmxlSW50ZXJmYWNlTmFtZSgkaW50ZXJmYWNlTmFtZSk7CiAg
ICAgbXkgJGNsYXNzTmFtZSA9ICJWOCRpbnRlcmZhY2VOYW1lIjsKICAgICBteSAkaW1wbENsYXNz
TmFtZSA9ICRpbnRlcmZhY2VOYW1lOwotICAgIG15ICRjbGFzc0luZGV4ID0gdWMoJGNvZGVHZW5l
cmF0b3ItPlN0cmlwTW9kdWxlKCRpbnRlcmZhY2VOYW1lKSk7CiAKICAgICBteSAkaGFzTGVnYWN5
UGFyZW50ID0gJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiTGVnYWN5UGFyZW50In07
CiAgICAgbXkgJGNvbmRpdGlvbmFsU3RyaW5nID0gR2VuZXJhdGVDb25kaXRpb25hbFN0cmluZygk
ZGF0YU5vZGUpOwpAQCAtMTQ2Niw3ICsxNDYyLDcgQEAKICAgICBteSAkdG9BY3RpdmUgPSBJc0Fj
dGl2ZURvbVR5cGUoJGludGVyZmFjZU5hbWUpID8gIiR7Y2xhc3NOYW1lfTo6dG9BY3RpdmVET01P
YmplY3QiIDogIjAiOwogCiAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgIm5hbWVzcGFjZSBX
ZWJDb3JlIHtcblxuIik7Ci0gICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgIldyYXBwZXJUeXBl
SW5mbyAke2NsYXNzTmFtZX06OmluZm8gPSB7VjhDbGFzc0luZGV4OjpUb0ludChWOENsYXNzSW5k
ZXg6OiR7Y2xhc3NJbmRleH0pLCAke2NsYXNzTmFtZX06OkdldFRlbXBsYXRlLCAke2NsYXNzTmFt
ZX06OmRlcmVmT2JqZWN0LCAke3RvQWN0aXZlfSB9O1xuXG4iKTsgICAKKyAgICBwdXNoKEBpbXBs
Q29udGVudERlY2xzLCAiV3JhcHBlclR5cGVJbmZvICR7Y2xhc3NOYW1lfTo6aW5mbyA9IHsgJHtj
bGFzc05hbWV9OjpHZXRUZW1wbGF0ZSwgJHtjbGFzc05hbWV9OjpkZXJlZk9iamVjdCwgJHt0b0Fj
dGl2ZX0gfTtcblxuIik7ICAgCiAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgIm5hbWVzcGFj
ZSAke2ludGVyZmFjZU5hbWV9SW50ZXJuYWwge1xuXG4iKTsKICAgICBwdXNoKEBpbXBsQ29udGVu
dERlY2xzLCAidGVtcGxhdGUgPHR5cGVuYW1lIFQ+IHZvaWQgVjhfVVNFKFQpIHsgfVxuXG4iKTsK
IApAQCAtMTUyMSw3ICsxNTE3LDcgQEAKICAgICAjIEdlbmVyYXRlIG1ldGhvZHMgZm9yIGZ1bmN0
aW9ucy4KICAgICBmb3JlYWNoIG15ICRmdW5jdGlvbiAoQHskZGF0YU5vZGUtPmZ1bmN0aW9uc30p
IHsKICAgICAgICAgaWYgKCEoJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRl
cy0+eyJDdXN0b20ifSB8fCAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVz
LT57IlY4Q3VzdG9tIn0pKSB7Ci0gICAgICAgICAgICBHZW5lcmF0ZUZ1bmN0aW9uQ2FsbGJhY2so
JGZ1bmN0aW9uLCAkZGF0YU5vZGUsICRjbGFzc0luZGV4LCAkaW1wbENsYXNzTmFtZSk7CisgICAg
ICAgICAgICBHZW5lcmF0ZUZ1bmN0aW9uQ2FsbGJhY2soJGZ1bmN0aW9uLCAkZGF0YU5vZGUsICRp
bXBsQ2xhc3NOYW1lKTsKICAgICAgICAgfQogCiAgICAgICAgIGlmICgkZnVuY3Rpb24tPnNpZ25h
dHVyZS0+bmFtZSBlcSAiaXRlbSIpIHsKQEAgLTE2NDIsNyArMTYzOCw3IEBACiAKICAgICBteSAk
YWNjZXNzX2NoZWNrID0gIiI7CiAgICAgaWYgKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVz
LT57IkNoZWNrRG9tYWluU2VjdXJpdHkifSAmJiAhKCRpbnRlcmZhY2VOYW1lIGVxICJET01XaW5k
b3ciKSkgewotICAgICAgICAkYWNjZXNzX2NoZWNrID0gImluc3RhbmNlLT5TZXRBY2Nlc3NDaGVj
a0NhbGxiYWNrcyhWOCR7aW50ZXJmYWNlTmFtZX06Om5hbWVkU2VjdXJpdHlDaGVjaywgVjgke2lu
dGVyZmFjZU5hbWV9OjppbmRleGVkU2VjdXJpdHlDaGVjaywgdjg6OkludGVnZXI6Ok5ldyhWOENs
YXNzSW5kZXg6OlRvSW50KFY4Q2xhc3NJbmRleDo6JHtjbGFzc0luZGV4fSkpKTsiOworICAgICAg
ICAkYWNjZXNzX2NoZWNrID0gImluc3RhbmNlLT5TZXRBY2Nlc3NDaGVja0NhbGxiYWNrcyhWOCR7
aW50ZXJmYWNlTmFtZX06Om5hbWVkU2VjdXJpdHlDaGVjaywgVjgke2ludGVyZmFjZU5hbWV9Ojpp
bmRleGVkU2VjdXJpdHlDaGVjaywgdjg6OkV4dGVybmFsOjpXcmFwKCZWOCR7aW50ZXJmYWNlTmFt
ZX06OmluZm8pKTsiOwogICAgIH0KIAogICAgICMgRm9yIHRoZSBET01XaW5kb3cgaW50ZXJmYWNl
LCBnZW5lcmF0ZSB0aGUgc2hhZG93IG9iamVjdCB0ZW1wbGF0ZQpAQCAtMTY1NCw3ICsxNjUwLDcg
QEAKICAgICBiYXRjaENvbmZpZ3VyZUF0dHJpYnV0ZXModGVtcGwsIHY4OjpIYW5kbGU8djg6Ok9i
amVjdFRlbXBsYXRlPigpLCBzaGFkb3dfYXR0cnMsIHNpemVvZihzaGFkb3dfYXR0cnMpL3NpemVv
Zigqc2hhZG93X2F0dHJzKSk7CiAKICAgICAvLyBJbnN0YWxsIGEgc2VjdXJpdHkgaGFuZGxlciB3
aXRoIFY4LgotICAgIHRlbXBsLT5TZXRBY2Nlc3NDaGVja0NhbGxiYWNrcyhWOERPTVdpbmRvdzo6
bmFtZWRTZWN1cml0eUNoZWNrLCBWOERPTVdpbmRvdzo6aW5kZXhlZFNlY3VyaXR5Q2hlY2ssIHY4
OjpJbnRlZ2VyOjpOZXcoVjhDbGFzc0luZGV4OjpET01XSU5ET1cpKTsKKyAgICB0ZW1wbC0+U2V0
QWNjZXNzQ2hlY2tDYWxsYmFja3MoVjhET01XaW5kb3c6Om5hbWVkU2VjdXJpdHlDaGVjaywgVjhE
T01XaW5kb3c6OmluZGV4ZWRTZWN1cml0eUNoZWNrLCB2ODo6RXh0ZXJuYWw6OldyYXAoJlY4RE9N
V2luZG93OjppbmZvKSk7CiAgICAgdGVtcGwtPlNldEludGVybmFsRmllbGRDb3VudChWOERPTVdp
bmRvdzo6aW50ZXJuYWxGaWVsZENvdW50KTsKICAgICByZXR1cm4gdGVtcGw7CiB9CkBAIC0xNzE0
LDcgKzE3MTAsNyBAQAogRU5ECiAgICAgfQogCi0gICAgcHVzaChAaW1wbENvbnRlbnQsICAiICAk
YWNjZXNzX2NoZWNrXG4iKTsKKyAgICBwdXNoKEBpbXBsQ29udGVudCwgICIgICAgJGFjY2Vzc19j
aGVja1xuIik7CiAKICAgICAjIFNldHVwIHRoZSBlbmFibGUtYXQtcnVudGltZSBhdHRycyBpZiB3
ZSBoYXZlIHRoZW0KICAgICBmb3JlYWNoIG15ICRydW50aW1lX2F0dHIgKEBlbmFibGVkQXRSdW50
aW1lKSB7CkBAIC0xODQwLDcgKzE4MzYsNyBAQAogICAgIC8vIFNldCBhY2Nlc3MgY2hlY2sgY2Fs
bGJhY2tzLCBidXQgdHVybmVkIG9mZiBpbml0aWFsbHkuCiAgICAgLy8gV2hlbiBhIGNvbnRleHQg
aXMgZGV0YWNoZWQgZnJvbSBhIGZyYW1lLCB0dXJuIG9uIHRoZSBhY2Nlc3MgY2hlY2suCiAgICAg
Ly8gVHVybmluZyBvbiBjaGVja3MgYWxzbyBpbnZhbGlkYXRlcyBpbmxpbmUgY2FjaGVzIG9mIHRo
ZSBvYmplY3QuCi0gICAgaW5zdGFuY2UtPlNldEFjY2Vzc0NoZWNrQ2FsbGJhY2tzKFY4RE9NV2lu
ZG93OjpuYW1lZFNlY3VyaXR5Q2hlY2ssIFY4RE9NV2luZG93OjppbmRleGVkU2VjdXJpdHlDaGVj
aywgdjg6OkludGVnZXI6Ok5ldyhWOENsYXNzSW5kZXg6OkRPTVdJTkRPVyksIGZhbHNlKTsKKyAg
ICBpbnN0YW5jZS0+U2V0QWNjZXNzQ2hlY2tDYWxsYmFja3MoVjhET01XaW5kb3c6Om5hbWVkU2Vj
dXJpdHlDaGVjaywgVjhET01XaW5kb3c6OmluZGV4ZWRTZWN1cml0eUNoZWNrLCB2ODo6RXh0ZXJu
YWw6OldyYXAoJlY4RE9NV2luZG93OjppbmZvKSwgZmFsc2UpOwogRU5ECiAgICAgfQogICAgIGlm
ICgkaW50ZXJmYWNlTmFtZSBlcSAiTG9jYXRpb24iKSB7CkBAIC0xOTQ1LDcgKzE5NDEsNiBAQAog
ICAgIG15ICRjbGFzc05hbWUgPSBzaGlmdDsKICAgICBteSAkbmF0aXZlVHlwZSA9IHNoaWZ0Owog
Ci0gICAgbXkgJHdyYXBwZXJUeXBlID0gIlY4Q2xhc3NJbmRleDo6IiAuIHVjKCRpbnRlcmZhY2VO
YW1lKTsKICAgICBteSAkZG9tTWFwRnVuY3Rpb24gPSBHZXREb21NYXBGdW5jdGlvbigkZGF0YU5v
ZGUsICRpbnRlcmZhY2VOYW1lKTsKICAgICBteSAkZm9yY2VOZXdPYmplY3RJbnB1dCA9IElzRE9N
Tm9kZVR5cGUoJGludGVyZmFjZU5hbWUpID8gIiwgYm9vbCBmb3JjZU5ld09iamVjdCIgOiAiIjsK
ICAgICBteSAkZm9yY2VOZXdPYmplY3RDYWxsID0gSXNET01Ob2RlVHlwZSgkaW50ZXJmYWNlTmFt
ZSkgPyAiLCBmb3JjZU5ld09iamVjdCIgOiAiIjsKQEAgLTI0NzUsMTcgKzI0NzAsMTMgQEAKICAg
ICAgICAgIyByZXR1cm4gTlVMTC4KICAgICAgICAgcmV0dXJuICJWOCR7dHlwZX06Okhhc0luc3Rh
bmNlKCR2YWx1ZSkgPyBWOCR7dHlwZX06OnRvTmF0aXZlKHY4OjpIYW5kbGU8djg6Ok9iamVjdD46
OkNhc3QoJHZhbHVlKSkgOiAwIjsKICAgICB9IGVsc2UgewotICAgICAgICAjIFRPRE86IFRlbXBv
cmFyeSB0byBhdm9pZCBXaW5kb3cgbmFtZSBjb25mbGljdC4KLSAgICAgICAgbXkgJGNsYXNzSW5k
ZXggPSB1YygkdHlwZSk7Ci0gICAgICAgIG15ICRpbXBsQ2xhc3NOYW1lID0gJHt0eXBlfTsKLQog
ICAgICAgICAkaW1wbEluY2x1ZGVzeyJWOCR0eXBlLmgifSA9IDE7CiAKICAgICAgICAgaWYgKElz
UG9kVHlwZSgkdHlwZSkpIHsKICAgICAgICAgICAgIG15ICRuYXRpdmVUeXBlID0gR2V0TmF0aXZl
VHlwZSgkdHlwZSk7CiAgICAgICAgICAgICAkaW1wbEluY2x1ZGVzeyJWOFNWR1BPRFR5cGVXcmFw
cGVyLmgifSA9IDE7CiAKLSAgICAgICAgICAgIHJldHVybiAiVjhTVkdQT0RUeXBlVXRpbDo6dG9T
VkdQT0RUeXBlPCR7bmF0aXZlVHlwZX0+KFY4Q2xhc3NJbmRleDo6JHtjbGFzc0luZGV4fSwgJHZh
bHVlJHttYXliZU9rUGFyYW19KSIKKyAgICAgICAgICAgIHJldHVybiAiVjhTVkdQT0RUeXBlVXRp
bDo6dG9TVkdQT0RUeXBlPCR7bmF0aXZlVHlwZX0+KCZWOCR7dHlwZX06OmluZm8sICR2YWx1ZSR7
bWF5YmVPa1BhcmFtfSkiCiAgICAgICAgIH0KIAogICAgICAgICAkaW1wbEluY2x1ZGVzeyJWOCR7
dHlwZX0uaCJ9ID0gMTsKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvdjgvVjhET01XcmFwcGVyLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9NV3JhcHBlci5jcHAJKHJl
dmlzaW9uIDU2MTMxKQorKysgV2ViQ29yZS9iaW5kaW5ncy92OC9WOERPTVdyYXBwZXIuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC00OCw3ICs0OCw2IEBACiAjaW5jbHVkZSAiVjhFdmVudExpc3RlbmVy
TGlzdC5oIgogI2luY2x1ZGUgIlY4SFRNTENvbGxlY3Rpb24uaCIKICNpbmNsdWRlICJWOEhUTUxE
b2N1bWVudC5oIgotI2luY2x1ZGUgIlY4SW5kZXguaCIKICNpbmNsdWRlICJWOElzb2xhdGVkQ29u
dGV4dC5oIgogI2luY2x1ZGUgIlY4TG9jYXRpb24uaCIKICNpbmNsdWRlICJWOE1lc3NhZ2VDaGFu
bmVsLmgiCkBAIC03MCw2ICs2OSw3IEBACiAjaW5jbHVkZSAiV2ViR0xDb250ZXh0QXR0cmlidXRl
cy5oIgogI2luY2x1ZGUgIldlYkdMVW5pZm9ybUxvY2F0aW9uLmgiCiAjaW5jbHVkZSAiV29ya2Vy
Q29udGV4dEV4ZWN1dGlvblByb3h5LmgiCisjaW5jbHVkZSAiV3JhcHBlclR5cGVJbmZvLmgiCiAK
ICNpZiBFTkFCTEUoU1ZHKQogI2luY2x1ZGUgIlNWR0VsZW1lbnRJbnN0YW5jZS5oIgpAQCAtOTEs
NDUgKzkxLDYgQEAKIHR5cGVkZWYgSGFzaE1hcDxOb2RlKiwgdjg6Ok9iamVjdCo+IERPTU5vZGVN
YXA7CiB0eXBlZGVmIEhhc2hNYXA8dm9pZCosIHY4OjpPYmplY3QqPiBET01PYmplY3RNYXA7CiAK
LSNpZiBFTkFCTEUoM0RfQ0FOVkFTKQotdm9pZCBWOERPTVdyYXBwZXI6OnNldEluZGV4ZWRQcm9w
ZXJ0aWVzVG9FeHRlcm5hbEFycmF5KHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gd3JhcHBlciwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQg
aW5kZXgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdm9pZCogYWRkcmVzcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBpbnQgbGVuZ3RoKQotewotICAgIHY4OjpFeHRlcm5hbEFycmF5
VHlwZSBhcnJheV90eXBlID0gdjg6OmtFeHRlcm5hbEJ5dGVBcnJheTsKLSAgICBWOENsYXNzSW5k
ZXg6OlY4V3JhcHBlclR5cGUgY2xhc3NJbmRleCA9IFY4Q2xhc3NJbmRleDo6RnJvbUludChpbmRl
eCk7Ci0gICAgc3dpdGNoIChjbGFzc0luZGV4KSB7Ci0gICAgY2FzZSBWOENsYXNzSW5kZXg6OldF
QkdMQllURUFSUkFZOgotICAgICAgICBhcnJheV90eXBlID0gdjg6OmtFeHRlcm5hbEJ5dGVBcnJh
eTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBWOENsYXNzSW5kZXg6OldFQkdMVU5TSUdORURC
WVRFQVJSQVk6Ci0gICAgICAgIGFycmF5X3R5cGUgPSB2ODo6a0V4dGVybmFsVW5zaWduZWRCeXRl
QXJyYXk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgVjhDbGFzc0luZGV4OjpXRUJHTFNIT1JU
QVJSQVk6Ci0gICAgICAgIGFycmF5X3R5cGUgPSB2ODo6a0V4dGVybmFsU2hvcnRBcnJheTsKLSAg
ICAgICAgYnJlYWs7Ci0gICAgY2FzZSBWOENsYXNzSW5kZXg6OldFQkdMVU5TSUdORURTSE9SVEFS
UkFZOgotICAgICAgICBhcnJheV90eXBlID0gdjg6OmtFeHRlcm5hbFVuc2lnbmVkU2hvcnRBcnJh
eTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBWOENsYXNzSW5kZXg6OldFQkdMSU5UQVJSQVk6
Ci0gICAgICAgIGFycmF5X3R5cGUgPSB2ODo6a0V4dGVybmFsSW50QXJyYXk7Ci0gICAgICAgIGJy
ZWFrOwotICAgIGNhc2UgVjhDbGFzc0luZGV4OjpXRUJHTFVOU0lHTkVESU5UQVJSQVk6Ci0gICAg
ICAgIGFycmF5X3R5cGUgPSB2ODo6a0V4dGVybmFsVW5zaWduZWRJbnRBcnJheTsKLSAgICAgICAg
YnJlYWs7Ci0gICAgY2FzZSBWOENsYXNzSW5kZXg6OldFQkdMRkxPQVRBUlJBWToKLSAgICAgICAg
YXJyYXlfdHlwZSA9IHY4OjprRXh0ZXJuYWxGbG9hdEFycmF5OwotICAgICAgICBicmVhazsKLSAg
ICBkZWZhdWx0OgotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICB9Ci0gICAgd3Jh
cHBlci0+U2V0SW5kZXhlZFByb3BlcnRpZXNUb0V4dGVybmFsQXJyYXlEYXRhKGFkZHJlc3MsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFycmF5
X3R5cGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGxlbmd0aCk7Ci19Ci0jZW5kaWYKLQogLy8gVGhlIGNhbGxlciBtdXN0IGhhdmUgaW5jcmVh
c2VkIG9iaidzIHJlZiBjb3VudC4KIHZvaWQgVjhET01XcmFwcGVyOjpzZXRKU1dyYXBwZXJGb3JE
T01PYmplY3Qodm9pZCogb2JqZWN0LCB2ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0PiB3cmFwcGVy
KQogewpAQCAtMzIxLDkgKzI4Miw2IEBACiAKICAgICBBU1NFUlQob2JqZWN0LT5JbnRlcm5hbEZp
ZWxkQ291bnQoKSA+PSB2OERlZmF1bHRXcmFwcGVySW50ZXJuYWxGaWVsZENvdW50KTsKIAotICAg
IFdyYXBwZXJUeXBlSW5mbyogdHlwZUluZm8gPSBzdGF0aWNfY2FzdDxXcmFwcGVyVHlwZUluZm8q
PihvYmplY3QtPkdldFBvaW50ZXJGcm9tSW50ZXJuYWxGaWVsZCh2OERPTVdyYXBwZXJUeXBlSW5k
ZXgpKTsKLSAgICBBU1NFUlQoVjhDbGFzc0luZGV4OjpJTlZBTElEX0NMQVNTX0lOREVYIDwgdHlw
ZUluZm8tPmluZGV4ICYmIHR5cGVJbmZvLT5pbmRleCA8IFY4Q2xhc3NJbmRleDo6Q0xBU1NJTkRF
WF9FTkQpOwotCiAgICAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHdyYXBwZXIgPSBvYmplY3QtPkdl
dEludGVybmFsRmllbGQodjhET01XcmFwcGVyT2JqZWN0SW5kZXgpOwogICAgIEFTU0VSVCh3cmFw
cGVyLT5Jc051bWJlcigpIHx8IHdyYXBwZXItPklzRXh0ZXJuYWwoKSk7CiAKQEAgLTMzOCw3ICsy
OTYsNyBAQAogICAgIHJldHVybiB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+OjpDYXN0KHZhbHVlKS0+
SW50ZXJuYWxGaWVsZENvdW50KCk7CiB9CiAKLWJvb2wgVjhET01XcmFwcGVyOjppc1dyYXBwZXJP
ZlR5cGUodjg6OkhhbmRsZTx2ODo6VmFsdWU+IHZhbHVlLCBWOENsYXNzSW5kZXg6OlY4V3JhcHBl
clR5cGUgY2xhc3NUeXBlKQorYm9vbCBWOERPTVdyYXBwZXI6OmlzV3JhcHBlck9mVHlwZSh2ODo6
SGFuZGxlPHY4OjpWYWx1ZT4gdmFsdWUsIFdyYXBwZXJUeXBlSW5mbyogdHlwZSkKIHsKICAgICBp
ZiAoIWlzVmFsaWRET01PYmplY3QodmFsdWUpKQogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0z
NTAsOSArMzA4LDcgQEAKICAgICBBU1NFUlQod3JhcHBlci0+SXNOdW1iZXIoKSB8fCB3cmFwcGVy
LT5Jc0V4dGVybmFsKCkpOwogCiAgICAgV3JhcHBlclR5cGVJbmZvKiB0eXBlSW5mbyA9IHN0YXRp
Y19jYXN0PFdyYXBwZXJUeXBlSW5mbyo+KG9iamVjdC0+R2V0UG9pbnRlckZyb21JbnRlcm5hbEZp
ZWxkKHY4RE9NV3JhcHBlclR5cGVJbmRleCkpOwotICAgIEFTU0VSVChWOENsYXNzSW5kZXg6OklO
VkFMSURfQ0xBU1NfSU5ERVggPCB0eXBlSW5mby0+aW5kZXggJiYgdHlwZUluZm8tPmluZGV4IDwg
VjhDbGFzc0luZGV4OjpDTEFTU0lOREVYX0VORCk7Ci0KLSAgICByZXR1cm4gVjhDbGFzc0luZGV4
OjpGcm9tSW50KHR5cGVJbmZvLT5pbmRleCkgPT0gY2xhc3NUeXBlOworICAgIHJldHVybiB0eXBl
SW5mbyA9PSB0eXBlOwogfQogCiB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IFY4RE9NV3JhcHBlcjo6
Z2V0V3JhcHBlcihOb2RlKiBub2RlKQpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy92OC9WOFByb3h5
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy92OC9WOFByb3h5LmgJKHJldmlzaW9u
IDU2MTMxKQorKysgV2ViQ29yZS9iaW5kaW5ncy92OC9WOFByb3h5LmgJKHdvcmtpbmcgY29weSkK
QEAgLTM5LDcgKzM5LDcgQEAKICNpbmNsdWRlICJWOERPTVdpbmRvd1NoZWxsLmgiCiAjaW5jbHVk
ZSAiVjhET01XcmFwcGVyLmgiCiAjaW5jbHVkZSAiVjhHQ0NvbnRyb2xsZXIuaCIKLSNpbmNsdWRl
ICJWOEluZGV4LmgiCisjaW5jbHVkZSAiV3JhcHBlclR5cGVJbmZvLmgiCiAjaW5jbHVkZSA8djgu
aD4KICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPiAvLyBzbyBnZW5lcmF0ZWQgYmluZGluZ3Mg
ZG9uJ3QgaGF2ZSB0bwogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KSW5kZXg6IFdlYkNvcmUvYmlu
ZGluZ3MvdjgvVjhET01XaW5kb3dTaGVsbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGlu
Z3MvdjgvVjhET01XaW5kb3dTaGVsbC5oCShyZXZpc2lvbiA1NjEzMSkKKysrIFdlYkNvcmUvYmlu
ZGluZ3MvdjgvVjhET01XaW5kb3dTaGVsbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw3ICszMSw4
IEBACiAjaWZuZGVmIFY4RE9NV2luZG93U2hlbGxfaAogI2RlZmluZSBWOERPTVdpbmRvd1NoZWxs
X2gKIAotI2luY2x1ZGUgIlY4SW5kZXguaCIKKyNpbmNsdWRlICJXcmFwcGVyVHlwZUluZm8uaCIK
KyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAj
aW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CkBAIC03
OSw5ICs4MCw4IEBACiAgICAgLy8gVGhpcyBpcyBmYXN0ZXIgdGhhbiBnb2luZyB0aHJvdWdoIHRo
ZSBmdWxsIG9iamVjdCBjcmVhdGlvbiBwcm9jZXNzLgogICAgIHY4OjpMb2NhbDx2ODo6T2JqZWN0
PiBjcmVhdGVXcmFwcGVyRnJvbUNhY2hlKFdyYXBwZXJUeXBlSW5mbyogdHlwZSkKICAgICB7Ci0g
ICAgICAgIGludCBjbGFzc0luZGV4ID0gdHlwZS0+aW5kZXg7Ci0gICAgICAgIHY4OjpMb2NhbDx2
ODo6T2JqZWN0PiBjbG9uZShtX3dyYXBwZXJCb2lsZXJwbGF0ZXMtPkNsb25lRWxlbWVudEF0KGNs
YXNzSW5kZXgpKTsKLSAgICAgICAgcmV0dXJuIGNsb25lLklzRW1wdHkoKSA/IGNyZWF0ZVdyYXBw
ZXJGcm9tQ2FjaGVTbG93Q2FzZSh0eXBlKSA6IGNsb25lOworICAgICAgICB2ODo6UGVyc2lzdGVu
dDx2ODo6T2JqZWN0PiBib2lsZXJwbGF0ZSA9IG1fd3JhcHBlckJvaWxlcnBsYXRlcy5nZXQodHlw
ZSk7CisgICAgICAgIHJldHVybiBib2lsZXJwbGF0ZS5Jc0VtcHR5KCkgPyBjcmVhdGVXcmFwcGVy
RnJvbUNhY2hlU2xvd0Nhc2UodHlwZSkgOiBib2lsZXJwbGF0ZS0+Q2xvbmUoKTsKICAgICB9CiAK
ICAgICBzdGF0aWMgdm9pZCBzZXRMb2NhdGlvbihET01XaW5kb3cqLCBjb25zdCBTdHJpbmcmIHJl
bGF0aXZlVVJMKTsKQEAgLTEwNiwxMCArMTA2LDkgQEAKICAgICBGcmFtZSogbV9mcmFtZTsKIAog
ICAgIC8vIEZvciBlYWNoIHBvc3NpYmxlIHR5cGUgb2Ygd3JhcHBlciwgd2Uga2VlcCBhIGJvaWxl
cnBsYXRlIG9iamVjdC4KLSAgICAvLyBUaGUgYm9pbGVycGxhdGUgaXMgdXNlZCB0byBjcmVhdGUg
YWRkaXRpb25hbCB3cmFwcGVycyBvZiB0aGUgc2FtZQotICAgIC8vIHR5cGUuICBXZSBrZWVwIGEg
c2luZ2xlIHBlcnNpc3RlbnQgaGFuZGxlIHRvIGFuIGFycmF5IG9mIHRoZQotICAgIC8vIGFjdGl2
YXRlZCBib2lsZXJwbGF0ZXMuCi0gICAgdjg6OlBlcnNpc3RlbnQ8djg6OkFycmF5PiBtX3dyYXBw
ZXJCb2lsZXJwbGF0ZXM7CisgICAgLy8gVGhlIGJvaWxlcnBsYXRlIGlzIHVzZWQgdG8gY3JlYXRl
IGFkZGl0aW9uYWwgd3JhcHBlcnMgb2YgdGhlIHNhbWUgdHlwZS4KKyAgICB0eXBlZGVmIFdURjo6
SGFzaE1hcDxXcmFwcGVyVHlwZUluZm8qLCB2ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0PiA+IFdy
YXBwZXJCb2lsZXJwbGF0ZU1hcDsKKyAgICBXcmFwcGVyQm9pbGVycGxhdGVNYXAgbV93cmFwcGVy
Qm9pbGVycGxhdGVzOwogCiAgICAgdjg6OlBlcnNpc3RlbnQ8djg6OkNvbnRleHQ+IG1fY29udGV4
dDsKICAgICB2ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0PiBtX2dsb2JhbDsKSW5kZXg6IFdlYkNv
cmUvYmluZGluZ3MvdjgvVjhQcm94eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5n
cy92OC9WOFByb3h5LmNwcAkocmV2aXNpb24gNTYxMzEpCisrKyBXZWJDb3JlL2JpbmRpbmdzL3Y4
L1Y4UHJveHkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01Myw3ICs1Myw2IEBACiAjaW5jbHVkZSAi
VjhET01XaW5kb3cuaCIKICNpbmNsdWRlICJWOEV2ZW50RXhjZXB0aW9uLmgiCiAjaW5jbHVkZSAi
VjhIaWRkZW5Qcm9wZXJ0eU5hbWUuaCIKLSNpbmNsdWRlICJWOEluZGV4LmgiCiAjaW5jbHVkZSAi
VjhJc29sYXRlZENvbnRleHQuaCIKICNpbmNsdWRlICJWOFJhbmdlRXhjZXB0aW9uLmgiCiAjaW5j
bHVkZSAiVjhYTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbi5oIgpJbmRleDogV2ViQ29yZS9iaW5kaW5n
cy92OC9WOERPTVdyYXBwZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4
RE9NV3JhcHBlci5oCShyZXZpc2lvbiA1NjEzMSkKKysrIFdlYkNvcmUvYmluZGluZ3MvdjgvVjhE
T01XcmFwcGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTM5LDkgKzM5LDkgQEAKICNpbmNsdWRlICJW
OEN1c3RvbVhQYXRoTlNSZXNvbHZlci5oIgogI2luY2x1ZGUgIlY4RE9NTWFwLmgiCiAjaW5jbHVk
ZSAiVjhFdmVudC5oIgotI2luY2x1ZGUgIlY4SW5kZXguaCIKICNpbmNsdWRlICJWOFV0aWxpdGll
cy5oIgogI2luY2x1ZGUgIlY4WFBhdGhOU1Jlc29sdmVyLmgiCisjaW5jbHVkZSAiV3JhcHBlclR5
cGVJbmZvLmgiCiAjaW5jbHVkZSAiWFBhdGhOU1Jlc29sdmVyLmgiCiAjaW5jbHVkZSA8djguaD4K
IApAQCAtMTE5LDE0ICsxMTksOCBAQAogICAgICAgICBzdGF0aWMgYm9vbCBpc1ZhbGlkRE9NT2Jq
ZWN0KHY4OjpIYW5kbGU8djg6OlZhbHVlPik7CiAKICAgICAgICAgLy8gQ2hlY2sgd2hldGhlciBh
IFY4IHZhbHVlIGlzIGEgd3JhcHBlciBvZiB0eXBlIHxjbGFzc1R5cGV8LgotICAgICAgICBzdGF0
aWMgYm9vbCBpc1dyYXBwZXJPZlR5cGUodjg6OkhhbmRsZTx2ODo6VmFsdWU+LCBWOENsYXNzSW5k
ZXg6OlY4V3JhcHBlclR5cGUpOworICAgICAgICBzdGF0aWMgYm9vbCBpc1dyYXBwZXJPZlR5cGUo
djg6OkhhbmRsZTx2ODo6VmFsdWU+LCBXcmFwcGVyVHlwZUluZm8qKTsKIAotI2lmIEVOQUJMRSgz
RF9DQU5WQVMpCi0gICAgICAgIHN0YXRpYyB2b2lkIHNldEluZGV4ZWRQcm9wZXJ0aWVzVG9FeHRl
cm5hbEFycmF5KHY4OjpIYW5kbGU8djg6Ok9iamVjdD4sCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCosCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCk7Ci0jZW5k
aWYKICAgICAgICAgLy8gU2V0IGhpZGRlbiByZWZlcmVuY2VzIGluIGEgRE9NV2luZG93IG9iamVj
dCBvZiBhIGZyYW1lLgogICAgICAgICBzdGF0aWMgdm9pZCBzZXRIaWRkZW5XaW5kb3dSZWZlcmVu
Y2UoRnJhbWUqLCBjb25zdCBpbnQgaW50ZXJuYWxJbmRleCwgdjg6OkhhbmRsZTx2ODo6T2JqZWN0
Pik7CiAKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvdjgvV3JhcHBlclR5cGVJbmZvLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy92OC9XcmFwcGVyVHlwZUluZm8uaAkocmV2aXNpb24g
NTU3OTkpCisrKyBXZWJDb3JlL2JpbmRpbmdzL3Y4L1dyYXBwZXJUeXBlSW5mby5oCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOSBHb29nbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMg
YXJlCkBAIC0yOCw2NjAgKzI4LDM5IEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLSNpZm5kZWYg
VjhJbmRleF9oCi0jZGVmaW5lIFY4SW5kZXhfaAorI2lmbmRlZiBXcmFwcGVyVHlwZUluZm9faAor
I2RlZmluZSBXcmFwcGVyVHlwZUluZm9faAogCiAjaW5jbHVkZSA8djguaD4KIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCi1zdGF0aWMgY29uc3QgaW50IHY4RE9NV3JhcHBlclR5cGVJbmRleCA9IDA7
Ci1zdGF0aWMgY29uc3QgaW50IHY4RE9NV3JhcHBlck9iamVjdEluZGV4ID0gMTsKLXN0YXRpYyBj
b25zdCBpbnQgdjhEZWZhdWx0V3JhcHBlckludGVybmFsRmllbGRDb3VudCA9IDI7Ci0KLSNpZiBF
TkFCTEUoREFUQUdSSUQpCi0jZGVmaW5lIERBVEFHUklEX0hUTUxFTEVNRU5UX1RZUEVTKFYpICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihIVE1MREFUQUdSSURDRUxM
RUxFTUVOVCwgSFRNTERhdGFHcmlkQ2VsbEVsZW1lbnQpICAgICAgICAgICAgICAgICBcCi0gICAg
VihIVE1MREFUQUdSSURDT0xFTEVNRU5ULCBIVE1MRGF0YUdyaWRDb2xFbGVtZW50KSAgICAgICAg
ICAgICAgICAgICBcCi0gICAgVihIVE1MREFUQUdSSURFTEVNRU5ULCBIVE1MRGF0YUdyaWRFbGVt
ZW50KSAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihIVE1MREFUQUdSSURST1dFTEVN
RU5ULCBIVE1MRGF0YUdyaWRSb3dFbGVtZW50KQotI2RlZmluZSBEQVRBR1JJRF9OT05OT0RFX1RZ
UEVTKFYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoREFU
QUdSSURDT0xVTU4sIERhdGFHcmlkQ29sdW1uKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgXAotICAgIFYoREFUQUdSSURDT0xVTU5MSVNULCBEYXRhR3JpZENvbHVtbkxpc3QpCi0j
ZWxzZQotI2RlZmluZSBEQVRBR1JJRF9IVE1MRUxFTUVOVF9UWVBFUyhWKQotI2RlZmluZSBEQVRB
R1JJRF9OT05OT0RFX1RZUEVTKFYpCi0jZW5kaWYKLQotI2lmIEVOQUJMRShWSURFTykKLSNkZWZp
bmUgVklERU9fSFRNTEVMRU1FTlRfVFlQRVMoVikgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFwKLSAgICBWKEFVRElPLCBIVE1MQXVkaW9FbGVtZW50Q29uc3RydWN0b3IpICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKEhUTUxBVURJT0VMRU1FTlQsIEhU
TUxBdWRpb0VsZW1lbnQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKEhU
TUxNRURJQUVMRU1FTlQsIEhUTUxNZWRpYUVsZW1lbnQpICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFwKLSAgICBWKEhUTUxTT1VSQ0VFTEVNRU5ULCBIVE1MU291cmNlRWxlbWVudCkgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKEhUTUxWSURFT0VMRU1FTlQsIEhUTUxW
aWRlb0VsZW1lbnQpCi0jZGVmaW5lIFZJREVPX05PTk5PREVfVFlQRVMoVikgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihNRURJQUVSUk9SLCBNZWRpYUVy
cm9yKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihU
SU1FUkFOR0VTLCBUaW1lUmFuZ2VzKQotI2Vsc2UKLSNkZWZpbmUgVklERU9fSFRNTEVMRU1FTlRf
VFlQRVMoVikKLSNkZWZpbmUgVklERU9fTk9OTk9ERV9UWVBFUyhWKQotI2VuZGlmCi0KLSNpZiBF
TkFCTEUoV09SS0VSUykKLSNkZWZpbmUgV09SS0VSX0FDVElWRV9PQkpFQ1RfV1JBUFBFUl9UWVBF
UyhWKSAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKFdPUktFUiwgV29ya2VyKQot
Ci0jZGVmaW5lIFdPUktFUl9OT05OT0RFX1dSQVBQRVJfVFlQRVMoVikgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBcCi0gICAgVihBQlNUUkFDVFdPUktFUiwgQWJzdHJhY3RXb3JrZXIp
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihERURJQ0FURURXT1JL
RVJDT05URVhULCBEZWRpY2F0ZWRXb3JrZXJDb250ZXh0KSAgICAgICAgICAgICAgICAgICBcCi0g
ICAgVihXT1JLRVJDT05URVhULCBXb3JrZXJDb250ZXh0KSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBcCi0gICAgVihXT1JLRVJMT0NBVElPTiwgV29ya2VyTG9jYXRpb24pICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihXT1JLRVJOQVZJR0FUT1Is
IFdvcmtlck5hdmlnYXRvcikKLSNlbHNlCi0jZGVmaW5lIFdPUktFUl9BQ1RJVkVfT0JKRUNUX1dS
QVBQRVJfVFlQRVMoVikKLSNkZWZpbmUgV09SS0VSX05PTk5PREVfV1JBUFBFUl9UWVBFUyhWKQot
I2VuZGlmCi0KLSNpZiBFTkFCTEUoRVZFTlRTT1VSQ0UpCi0jZGVmaW5lIEVWRU5UU09VUkNFX0FD
VElWRV9PQkpFQ1RfV1JBUFBFUl9UWVBFUyhWKSAgICAgICAgICAgICAgICAgICAgICBcCi0gICAg
VihFVkVOVFNPVVJDRSwgRXZlbnRTb3VyY2UpCi0jZWxzZQotI2RlZmluZSBFVkVOVFNPVVJDRV9B
Q1RJVkVfT0JKRUNUX1dSQVBQRVJfVFlQRVMoVikKLSNlbmRpZgotCi0jaWYgRU5BQkxFKE9GRkxJ
TkVfV0VCX0FQUExJQ0FUSU9OUykKLSNkZWZpbmUgQVBQTElDQVRJT05DQUNIRV9OT05OT0RFX1dS
QVBQRVJfVFlQRVMoVikgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgVihET01BUFBMSUNBVElP
TkNBQ0hFLCBET01BcHBsaWNhdGlvbkNhY2hlKQotI2Vsc2UKLSNkZWZpbmUgQVBQTElDQVRJT05D
QUNIRV9OT05OT0RFX1dSQVBQRVJfVFlQRVMoVikKLSNlbmRpZgotCi0jaWYgRU5BQkxFKE5PVElG
SUNBVElPTlMpCi0jZGVmaW5lIE5PVElGSUNBVElPTlNfTk9OTk9ERV9XUkFQUEVSX1RZUEVTKFYp
ICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihOT1RJRklDQVRJT04sIE5vdGlmaWNh
dGlvbikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihOT1RJ
RklDQVRJT05DRU5URVIsIE5vdGlmaWNhdGlvbkNlbnRlcikKLSNlbHNlCi0jZGVmaW5lIE5PVElG
SUNBVElPTlNfTk9OTk9ERV9XUkFQUEVSX1RZUEVTKFYpCi0jZW5kaWYKLQotI2lmIEVOQUJMRShT
SEFSRURfV09SS0VSUykKLSNkZWZpbmUgU0hBUkVEX1dPUktFUl9BQ1RJVkVfT0JKRUNUX1dSQVBQ
RVJfVFlQRVMoVikgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKFNIQVJFRFdPUktFUiwgU2hh
cmVkV29ya2VyKQotCi0jZGVmaW5lIFNIQVJFRF9XT1JLRVJfTk9OTk9ERV9XUkFQUEVSX1RZUEVT
KFYpICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihTSEFSRURXT1JLRVJDT05URVhU
LCBTaGFyZWRXb3JrZXJDb250ZXh0KQotI2Vsc2UKLSNkZWZpbmUgU0hBUkVEX1dPUktFUl9BQ1RJ
VkVfT0JKRUNUX1dSQVBQRVJfVFlQRVMoVikKLSNkZWZpbmUgU0hBUkVEX1dPUktFUl9OT05OT0RF
X1dSQVBQRVJfVFlQRVMoVikKLSNlbmRpZgotCi0jZGVmaW5lIERPTV9OT0RFX1RZUEVTKFYpICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihBVFRS
LCBBdHRyKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBcCi0gICAgVihDSEFSQUNURVJEQVRBLCBDaGFyYWN0ZXJEYXRhKSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihDREFUQVNFQ1RJT04sIENEQVRBU2VjdGlv
bikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihDT01NRU5U
LCBDb21tZW50KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBcCi0gICAgVihET0NVTUVOVCwgRG9jdW1lbnQpICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihET0NVTUVOVEZSQUdNRU5ULCBEb2N1bWVudEZy
YWdtZW50KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihET0NVTUVOVFRZ
UEUsIERvY3VtZW50VHlwZSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc
Ci0gICAgVihFTEVNRU5ULCBFbGVtZW50KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBcCi0gICAgVihFTlRJVFksIEVudGl0eSkgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihFTlRJVFlSRUZFUkVO
Q0UsIEVudGl0eVJlZmVyZW5jZSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0g
ICAgVihIVE1MRE9DVU1FTlQsIEhUTUxEb2N1bWVudCkgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBcCi0gICAgVihJTUFHRSwgSFRNTEltYWdlRWxlbWVudENvbnN0cnVjdG9y
KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihOT0RFLCBOb2RlKSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAg
VihPUFRJT04sIEhUTUxPcHRpb25FbGVtZW50Q29uc3RydWN0b3IpICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBcCi0gICAgVihOT1RBVElPTiwgTm90YXRpb24pICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihQUk9DRVNTSU5HSU5TVFJVQ1RJ
T04sIFByb2Nlc3NpbmdJbnN0cnVjdGlvbikgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihU
RVhULCBUZXh0KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBcCi0gICAgVihIVE1MQU5DSE9SRUxFTUVOVCwgSFRNTEFuY2hvckVsZW1lbnQpICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihIVE1MQVBQTEVURUxFTUVOVCwgSFRN
TEFwcGxldEVsZW1lbnQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihIVE1M
QVJFQUVMRU1FTlQsIEhUTUxBcmVhRWxlbWVudCkgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBcCi0gICAgVihIVE1MQkFTRUVMRU1FTlQsIEhUTUxCYXNlRWxlbWVudCkgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihIVE1MQkFTRUZPTlRFTEVNRU5ULCBIVE1M
QmFzZUZvbnRFbGVtZW50KSAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihIVE1MQkxP
Q0tRVU9URUVMRU1FTlQsIEhUTUxCbG9ja3F1b3RlRWxlbWVudCkgICAgICAgICAgICAgICAgICAg
ICBcCi0gICAgVihIVE1MQk9EWUVMRU1FTlQsIEhUTUxCb2R5RWxlbWVudCkgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihIVE1MQlJFTEVNRU5ULCBIVE1MQlJFbGVtZW50
KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihIVE1MQlVUVE9O
RUxFTUVOVCwgSFRNTEJ1dHRvbkVsZW1lbnQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc
Ci0gICAgVihIVE1MQ0FOVkFTRUxFTUVOVCwgSFRNTENhbnZhc0VsZW1lbnQpICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBcCi0gICAgVihIVE1MRElSRUNUT1JZRUxFTUVOVCwgSFRNTERpcmVj
dG9yeUVsZW1lbnQpICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihIVE1MRElWRUxFTUVO
VCwgSFRNTERpdkVsZW1lbnQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0g
ICAgVihIVE1MRExJU1RFTEVNRU5ULCBIVE1MRExpc3RFbGVtZW50KSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBcCi0gICAgVihIVE1MRU1CRURFTEVNRU5ULCBIVE1MRW1iZWRFbGVtZW50
KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihIVE1MRklFTERTRVRFTEVN
RU5ULCBIVE1MRmllbGRTZXRFbGVtZW50KSAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAg
VihIVE1MRk9OVEVMRU1FTlQsIEhUTUxGb250RWxlbWVudCkgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBcCi0gICAgVihIVE1MRk9STUVMRU1FTlQsIEhUTUxGb3JtRWxlbWVudCkgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihIVE1MRlJBTUVFTEVNRU5ULCBI
VE1MRnJhbWVFbGVtZW50KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihI
VE1MRlJBTUVTRVRFTEVNRU5ULCBIVE1MRnJhbWVTZXRFbGVtZW50KSAgICAgICAgICAgICAgICAg
ICAgICAgICBcCi0gICAgVihIVE1MSEVBRElOR0VMRU1FTlQsIEhUTUxIZWFkaW5nRWxlbWVudCkg
ICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihIVE1MSEVBREVMRU1FTlQsIEhUTUxI
ZWFkRWxlbWVudCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihIVE1M
SFJFTEVNRU5ULCBIVE1MSFJFbGVtZW50KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBcCi0gICAgVihIVE1MSFRNTEVMRU1FTlQsIEhUTUxIdG1sRWxlbWVudCkgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihIVE1MSUZSQU1FRUxFTUVOVCwgSFRNTElG
cmFtZUVsZW1lbnQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihIVE1MSU1B
R0VFTEVNRU5ULCBIVE1MSW1hZ2VFbGVtZW50KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBcCi0gICAgVihIVE1MSU5QVVRFTEVNRU5ULCBIVE1MSW5wdXRFbGVtZW50KSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihIVE1MSVNJTkRFWEVMRU1FTlQsIEhUTUxJc0lu
ZGV4RWxlbWVudCkgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihIVE1MTEFCRUxF
TEVNRU5ULCBIVE1MTGFiZWxFbGVtZW50KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc
Ci0gICAgVihIVE1MTEVHRU5ERUxFTUVOVCwgSFRNTExlZ2VuZEVsZW1lbnQpICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBcCi0gICAgVihIVE1MTElFTEVNRU5ULCBIVE1MTElFbGVtZW50KSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihIVE1MTElOS0VMRU1F
TlQsIEhUTUxMaW5rRWxlbWVudCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0g
ICAgVihIVE1MTUFQRUxFTUVOVCwgSFRNTE1hcEVsZW1lbnQpICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBcCi0gICAgVihIVE1MTUFSUVVFRUVMRU1FTlQsIEhUTUxNYXJxdWVlRWxl
bWVudCkgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihIVE1MTUVOVUVMRU1FTlQs
IEhUTUxNZW51RWxlbWVudCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAg
VihIVE1MTUVUQUVMRU1FTlQsIEhUTUxNZXRhRWxlbWVudCkgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBcCi0gICAgVihIVE1MTU9ERUxFTUVOVCwgSFRNTE1vZEVsZW1lbnQpICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihIVE1MT0JKRUNURUxFTUVOVCwg
SFRNTE9iamVjdEVsZW1lbnQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihI
VE1MT0xJU1RFTEVNRU5ULCBIVE1MT0xpc3RFbGVtZW50KSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBcCi0gICAgVihIVE1MT1BUR1JPVVBFTEVNRU5ULCBIVE1MT3B0R3JvdXBFbGVtZW50
KSAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihIVE1MT1BUSU9ORUxFTUVOVCwgSFRN
TE9wdGlvbkVsZW1lbnQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihIVE1M
UEFSQUdSQVBIRUxFTUVOVCwgSFRNTFBhcmFncmFwaEVsZW1lbnQpICAgICAgICAgICAgICAgICAg
ICAgICBcCi0gICAgVihIVE1MUEFSQU1FTEVNRU5ULCBIVE1MUGFyYW1FbGVtZW50KSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihIVE1MUFJFRUxFTUVOVCwgSFRNTFByZUVs
ZW1lbnQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihIVE1MUVVP
VEVFTEVNRU5ULCBIVE1MUXVvdGVFbGVtZW50KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBcCi0gICAgVihIVE1MU0NSSVBURUxFTUVOVCwgSFRNTFNjcmlwdEVsZW1lbnQpICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihIVE1MU0VMRUNURUxFTUVOVCwgSFRNTFNlbGVj
dEVsZW1lbnQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihIVE1MU1RZTEVF
TEVNRU5ULCBIVE1MU3R5bGVFbGVtZW50KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc
Ci0gICAgVihIVE1MVEFCTEVDQVBUSU9ORUxFTUVOVCwgSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQp
ICAgICAgICAgICAgICAgICBcCi0gICAgVihIVE1MVEFCTEVDT0xFTEVNRU5ULCBIVE1MVGFibGVD
b2xFbGVtZW50KSAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihIVE1MVEFCTEVFTEVN
RU5ULCBIVE1MVGFibGVFbGVtZW50KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0g
ICAgVihIVE1MVEFCTEVTRUNUSU9ORUxFTUVOVCwgSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQpICAg
ICAgICAgICAgICAgICBcCi0gICAgVihIVE1MVEFCTEVDRUxMRUxFTUVOVCwgSFRNTFRhYmxlQ2Vs
bEVsZW1lbnQpICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihIVE1MVEFCTEVST1dFTEVN
RU5ULCBIVE1MVGFibGVSb3dFbGVtZW50KSAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAg
VihIVE1MVEVYVEFSRUFFTEVNRU5ULCBIVE1MVGV4dEFyZWFFbGVtZW50KSAgICAgICAgICAgICAg
ICAgICAgICAgICBcCi0gICAgVihIVE1MVElUTEVFTEVNRU5ULCBIVE1MVGl0bGVFbGVtZW50KSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihIVE1MVUxJU1RFTEVNRU5ULCBI
VE1MVUxpc3RFbGVtZW50KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihI
VE1MRUxFTUVOVCwgSFRNTEVsZW1lbnQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBcCi0gICAgREFUQUdSSURfSFRNTEVMRU1FTlRfVFlQRVMoVikgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVklERU9fSFRNTEVMRU1FTlRfVFlQRVMo
VikKLQotI2lmIEVOQUJMRShTVkdfQU5JTUFUSU9OKQotI2RlZmluZSBTVkdfQU5JTUFUSU9OX0VM
RU1FTlRfVFlQRVMoVikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYo
U1ZHQU5JTUFURUNPTE9SRUxFTUVOVCwgU1ZHQW5pbWF0ZUNvbG9yRWxlbWVudCkgICAgICAgICAg
ICAgICAgICAgXAotICAgIFYoU1ZHQU5JTUFURUVMRU1FTlQsIFNWR0FuaW1hdGVFbGVtZW50KSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoU1ZHQU5JTUFURVRSQU5TRk9STUVM
RU1FTlQsIFNWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50KSAgICAgICAgICAgXAotICAgIFYoU1ZH
QU5JTUFUSU9ORUxFTUVOVCwgU1ZHQW5pbWF0aW9uRWxlbWVudCkgICAgICAgICAgICAgICAgICAg
ICAgICAgXAotICAgIFYoU1ZHU0VURUxFTUVOVCwgU1ZHU2V0RWxlbWVudCkKLSNlbHNlCi0jZGVm
aW5lIFNWR19BTklNQVRJT05fRUxFTUVOVF9UWVBFUyhWKQotI2VuZGlmCi0KLSNpZiBFTkFCTEUo
U1ZHKSAmJiBFTkFCTEUoRklMVEVSUykKLSNkZWZpbmUgU1ZHX0ZJTFRFUlNfRUxFTUVOVF9UWVBF
UyhWKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKFNWR0NPTVBP
TkVOVFRSQU5TRkVSRlVOQ1RJT05FTEVNRU5ULCBTVkdDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9u
RWxlbWVudClcCi0gICAgVihTVkdGRUJMRU5ERUxFTUVOVCwgU1ZHRkVCbGVuZEVsZW1lbnQpICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihTVkdGRUNPTE9STUFUUklYRUxFTUVO
VCwgU1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQpICAgICAgICAgICAgICAgICBcCi0gICAgVihTVkdG
RUNPTVBPTkVOVFRSQU5TRkVSRUxFTUVOVCwgU1ZHRkVDb21wb25lbnRUcmFuc2ZlckVsZW1lbnQp
ICAgICBcCi0gICAgVihTVkdGRUNPTVBPU0lURUVMRU1FTlQsIFNWR0ZFQ29tcG9zaXRlRWxlbWVu
dCkgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihTVkdGRURJRkZVU0VMSUdIVElOR0VMRU1F
TlQsIFNWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudCkgICAgICAgICBcCi0gICAgVihTVkdGRURJ
U1BMQUNFTUVOVE1BUEVMRU1FTlQsIFNWR0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVudCkgICAgICAg
ICBcCi0gICAgVihTVkdGRURJU1RBTlRMSUdIVEVMRU1FTlQsIFNWR0ZFRGlzdGFudExpZ2h0RWxl
bWVudCkgICAgICAgICAgICAgICBcCi0gICAgVihTVkdGRUZMT09ERUxFTUVOVCwgU1ZHRkVGbG9v
ZEVsZW1lbnQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihTVkdGRUZVTkNB
RUxFTUVOVCwgU1ZHRkVGdW5jQUVsZW1lbnQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc
Ci0gICAgVihTVkdGRUZVTkNCRUxFTUVOVCwgU1ZHRkVGdW5jQkVsZW1lbnQpICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBcCi0gICAgVihTVkdGRUZVTkNHRUxFTUVOVCwgU1ZHRkVGdW5jR0Vs
ZW1lbnQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihTVkdGRUZVTkNSRUxF
TUVOVCwgU1ZHRkVGdW5jUkVsZW1lbnQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0g
ICAgVihTVkdGRUdBVVNTSUFOQkxVUkVMRU1FTlQsIFNWR0ZFR2F1c3NpYW5CbHVyRWxlbWVudCkg
ICAgICAgICAgICAgICBcCi0gICAgVihTVkdGRUlNQUdFRUxFTUVOVCwgU1ZHRkVJbWFnZUVsZW1l
bnQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihTVkdGRU1FUkdFRUxFTUVO
VCwgU1ZHRkVNZXJnZUVsZW1lbnQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAg
VihTVkdGRU1FUkdFTk9ERUVMRU1FTlQsIFNWR0ZFTWVyZ2VOb2RlRWxlbWVudCkgICAgICAgICAg
ICAgICAgICAgICBcCi0gICAgVihTVkdGRU1PUlBIT0xPR1lFTEVNRU5ULCBTVkdGRU1vcnBob2xv
Z3lFbGVtZW50KSAgICAgICAgICAgICAgICAgICBcCi0gICAgVihTVkdGRU9GRlNFVEVMRU1FTlQs
IFNWR0ZFT2Zmc2V0RWxlbWVudCkgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihT
VkdGRVBPSU5UTElHSFRFTEVNRU5ULCBTVkdGRVBvaW50TGlnaHRFbGVtZW50KSAgICAgICAgICAg
ICAgICAgICBcCi0gICAgVihTVkdGRVNQRUNVTEFSTElHSFRJTkdFTEVNRU5ULCBTVkdGRVNwZWN1
bGFyTGlnaHRpbmdFbGVtZW50KSAgICAgICBcCi0gICAgVihTVkdGRVNQT1RMSUdIVEVMRU1FTlQs
IFNWR0ZFU3BvdExpZ2h0RWxlbWVudCkgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihTVkdG
RVRJTEVFTEVNRU5ULCBTVkdGRVRpbGVFbGVtZW50KSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBcCi0gICAgVihTVkdGRVRVUkJVTEVOQ0VFTEVNRU5ULCBTVkdGRVR1cmJ1bGVuY2VFbGVt
ZW50KSAgICAgICAgICAgICAgICAgICBcCi0gICAgVihTVkdGSUxURVJFTEVNRU5ULCBTVkdGaWx0
ZXJFbGVtZW50KQotI2Vsc2UKLSNkZWZpbmUgU1ZHX0ZJTFRFUlNfRUxFTUVOVF9UWVBFUyhWKQot
I2VuZGlmCi0KLSNpZiBFTkFCTEUoU1ZHX0ZPTlRTKQotI2RlZmluZSBTVkdfRk9OVFNfRUxFTUVO
VF9UWVBFUyhWKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYo
U1ZHRk9OVEVMRU1FTlQsIFNWR0ZvbnRFbGVtZW50KSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXAotICAgIFYoU1ZHRk9OVEZBQ0VFTEVNRU5ULCBTVkdGb250RmFjZUVsZW1lbnQp
ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoU1ZHRk9OVEZBQ0VGT1JNQVRFTEVN
RU5ULCBTVkdGb250RmFjZUZvcm1hdEVsZW1lbnQpICAgICAgICAgICAgICAgXAotICAgIFYoU1ZH
Rk9OVEZBQ0VOQU1FRUxFTUVOVCwgU1ZHRm9udEZhY2VOYW1lRWxlbWVudCkgICAgICAgICAgICAg
ICAgICAgXAotICAgIFYoU1ZHRk9OVEZBQ0VTUkNFTEVNRU5ULCBTVkdGb250RmFjZVNyY0VsZW1l
bnQpICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoU1ZHRk9OVEZBQ0VVUklFTEVNRU5ULCBT
VkdGb250RmFjZVVyaUVsZW1lbnQpICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoU1ZHTUlT
U0lOR0dMWVBIRUxFTUVOVCwgU1ZHTWlzc2luZ0dseXBoRWxlbWVudCkKLSNlbHNlCi0jZGVmaW5l
IFNWR19GT05UU19FTEVNRU5UX1RZUEVTKFYpCi0jZW5kaWYKLQotI2lmIEVOQUJMRShTVkdfRk9S
RUlHTl9PQkpFQ1QpCi0jZGVmaW5lIFNWR19GT1JFSUdOX09CSkVDVF9FTEVNRU5UX1RZUEVTKFYp
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihTVkdGT1JFSUdOT0JKRUNURUxF
TUVOVCwgU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQpCi0jZWxzZQotI2RlZmluZSBTVkdfRk9SRUlH
Tl9PQkpFQ1RfRUxFTUVOVF9UWVBFUyhWKQotI2VuZGlmCi0KLSNpZiBFTkFCTEUoU1ZHX1VTRSkK
LSNkZWZpbmUgU1ZHX1VTRV9FTEVNRU5UX1RZUEVTKFYpICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFwKLSAgICBWKFNWR1VTRUVMRU1FTlQsIFNWR1VzZUVsZW1lbnQpCi0j
ZWxzZQotI2RlZmluZSBTVkdfVVNFX0VMRU1FTlRfVFlQRVMoVikKLSNlbmRpZgotCi0jaWYgRU5B
QkxFKFNWRykKLSNkZWZpbmUgU1ZHX05PREVfVFlQRVMoVikgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBTVkdfQU5JTUFUSU9OX0VMRU1FTlRfVFlQ
RVMoVikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBTVkdfRklM
VEVSU19FTEVNRU5UX1RZUEVTKFYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFwKLSAgICBTVkdfRk9OVFNfRUxFTUVOVF9UWVBFUyhWKSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBTVkdfRk9SRUlHTl9PQkpFQ1RfRUxFTUVOVF9U
WVBFUyhWKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBTVkdfVVNFX0VM
RU1FTlRfVFlQRVMoVikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFwKLSAgICBWKFNWR0FFTEVNRU5ULCBTVkdBRWxlbWVudCkgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKFNWR0FMVEdMWVBIRUxFTUVOVCwgU1ZHQWx0R2x5
cGhFbGVtZW50KSAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKFNWR0NJUkNMRUVM
RU1FTlQsIFNWR0NpcmNsZUVsZW1lbnQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK
LSAgICBWKFNWR0NMSVBQQVRIRUxFTUVOVCwgU1ZHQ2xpcFBhdGhFbGVtZW50KSAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFwKLSAgICBWKFNWR0NVUlNPUkVMRU1FTlQsIFNWR0N1cnNvckVsZW1l
bnQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKFNWR0RFRlNFTEVNRU5U
LCBTVkdEZWZzRWxlbWVudCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAg
ICBWKFNWR0RFU0NFTEVNRU5ULCBTVkdEZXNjRWxlbWVudCkgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFwKLSAgICBWKFNWR0VMTElQU0VFTEVNRU5ULCBTVkdFbGxpcHNlRWxlbWVu
dCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKFNWR0dFTEVNRU5ULCBTVkdH
RWxlbWVudCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBW
KFNWR0dMWVBIRUxFTUVOVCwgU1ZHR2x5cGhFbGVtZW50KSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFwKLSAgICBWKFNWR0dSQURJRU5URUxFTUVOVCwgU1ZHR3JhZGllbnRFbGVtZW50
KSAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKFNWR0lNQUdFRUxFTUVOVCwgU1ZH
SW1hZ2VFbGVtZW50KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKFNW
R0xJTkVBUkdSQURJRU5URUxFTUVOVCwgU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50KSAgICAgICAg
ICAgICAgIFwKLSAgICBWKFNWR0xJTkVFTEVNRU5ULCBTVkdMaW5lRWxlbWVudCkgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKFNWR01BUktFUkVMRU1FTlQsIFNWR01h
cmtlckVsZW1lbnQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKFNWR01B
U0tFTEVNRU5ULCBTVkdNYXNrRWxlbWVudCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFwKLSAgICBWKFNWR01FVEFEQVRBRUxFTUVOVCwgU1ZHTWV0YWRhdGFFbGVtZW50KSAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKFNWR1BBVEhFTEVNRU5ULCBTVkdQYXRoRWxl
bWVudCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKFNWR1BBVFRF
Uk5FTEVNRU5ULCBTVkdQYXR0ZXJuRWxlbWVudCkgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFwKLSAgICBWKFNWR1BPTFlHT05FTEVNRU5ULCBTVkdQb2x5Z29uRWxlbWVudCkgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKFNWR1BPTFlMSU5FRUxFTUVOVCwgU1ZHUG9seWxp
bmVFbGVtZW50KSAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKFNWR1JBRElBTEdS
QURJRU5URUxFTUVOVCwgU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50KSAgICAgICAgICAgICAgIFwK
LSAgICBWKFNWR1JFQ1RFTEVNRU5ULCBTVkdSZWN0RWxlbWVudCkgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFwKLSAgICBWKFNWR1NDUklQVEVMRU1FTlQsIFNWR1NjcmlwdEVsZW1l
bnQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKFNWR1NUT1BFTEVNRU5U
LCBTVkdTdG9wRWxlbWVudCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAg
ICBWKFNWR1NUWUxFRUxFTUVOVCwgU1ZHU3R5bGVFbGVtZW50KSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFwKLSAgICBWKFNWR1NWR0VMRU1FTlQsIFNWR1NWR0VsZW1lbnQpICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKFNWR1NXSVRDSEVMRU1FTlQs
IFNWR1N3aXRjaEVsZW1lbnQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBW
KFNWR1NZTUJPTEVMRU1FTlQsIFNWR1N5bWJvbEVsZW1lbnQpICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFwKLSAgICBWKFNWR1RFWFRDT05URU5URUxFTUVOVCwgU1ZHVGV4dENvbnRlbnRF
bGVtZW50KSAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKFNWR1RFWFRFTEVNRU5ULCBTVkdU
ZXh0RWxlbWVudCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKFNW
R1RFWFRQQVRIRUxFTUVOVCwgU1ZHVGV4dFBhdGhFbGVtZW50KSAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFwKLSAgICBWKFNWR1RFWFRQT1NJVElPTklOR0VMRU1FTlQsIFNWR1RleHRQb3NpdGlv
bmluZ0VsZW1lbnQpICAgICAgICAgICAgIFwKLSAgICBWKFNWR1RJVExFRUxFTUVOVCwgU1ZHVGl0
bGVFbGVtZW50KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKFNWR1RS
RUZFTEVNRU5ULCBTVkdUUmVmRWxlbWVudCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFwKLSAgICBWKFNWR1RTUEFORUxFTUVOVCwgU1ZHVFNwYW5FbGVtZW50KSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKFNWR1ZJRVdFTEVNRU5ULCBTVkdWaWV3RWxl
bWVudCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKFNWR0VMRU1F
TlQsIFNWR0VsZW1lbnQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFwKLSAgICBWKFNWR0RPQ1VNRU5ULCBTVkdEb2N1bWVudCkKLSNlbmRpZiAgLy8gU1ZHCi0KLQot
I2lmIEVOQUJMRShXRUJfU09DS0VUUykKLSNkZWZpbmUgV0VCU09DS0VUX0FDVElWRV9PQkpFQ1Rf
V1JBUFBFUl9UWVBFUyhWKSAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKFdFQlNPQ0tF
VCwgV2ViU29ja2V0KQotI2Vsc2UKLSNkZWZpbmUgV0VCU09DS0VUX0FDVElWRV9PQkpFQ1RfV1JB
UFBFUl9UWVBFUyhWKQotI2VuZGlmCi0KLS8vIEFDVElWRV9ET01fT0JKRUNUX1RZUEVTIGFyZSBE
T01fT0JKRUNUX1RZUEVTIHRoYXQgbmVlZCBzcGVjaWFsIHRyZWF0ZW1lbnQKLS8vIGR1cmluZyBH
Qy4KLSNkZWZpbmUgQUNUSVZFX0RPTV9PQkpFQ1RfVFlQRVMoVikgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKE1FU1NBR0VQT1JULCBNZXNzYWdlUG9ydCkgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKFhNTEhUVFBSRVFV
RVNULCBYTUxIdHRwUmVxdWVzdCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK
LSAgICBXT1JLRVJfQUNUSVZFX09CSkVDVF9XUkFQUEVSX1RZUEVTKFYpICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFwKLSAgICBTSEFSRURfV09SS0VSX0FDVElWRV9PQkpFQ1RfV1JBUFBF
Ul9UWVBFUyhWKSAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBXRUJTT0NLRVRfQUNUSVZF
X09CSkVDVF9XUkFQUEVSX1RZUEVTKFYpICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAg
ICBFVkVOVFNPVVJDRV9BQ1RJVkVfT0JKRUNUX1dSQVBQRVJfVFlQRVMoVikKLQotLy8gTk9URTog
RE9NX09CSkVDVF9UWVBFUyBpcyBzcGxpdCBpbnRvIHR3byBoYWx2ZXMgYmVjYXVzZQotLy8gICAg
ICAgVmlzdWFsIFN0dWRpbydzIEludGVsbGlub25zZW5zZSBjcmFzaGVzIHdoZW4gbWFjcm9zIGdl
dAotLy8gICAgICAgdG9vIGxhcmdlLiAgMTAtMjktMDgKLS8vIERPTV9PQkpFQ1RfVFlQRVMgYXJl
IG5vbi1ub2RlIERPTSB0eXBlcy4KLSNkZWZpbmUgRE9NX09CSkVDVF9UWVBFU18xKFYpICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKEJBUklORk8sIEJh
ckluZm8pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK
LSAgICBWKEJFRk9SRUxPQURFVkVOVCwgQmVmb3JlTG9hZEV2ZW50KSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFwKLSAgICBWKEJMT0IsIEJsb2IpICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKENBTlZBU0dSQURJRU5U
LCBDYW52YXNHcmFkaWVudCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAg
ICBWKENBTlZBU1BBVFRFUk4sIENhbnZhc1BhdHRlcm4pICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFwKLSAgICBWKENBTlZBU1JFTkRFUklOR0NPTlRFWFQsIENhbnZhc1JlbmRl
cmluZ0NvbnRleHQpICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKENBTlZBU1JFTkRFUklOR0NP
TlRFWFQyRCwgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEKSAgICAgICAgICAgICAgIFwKLSAgICBW
KENMSUVOVFJFQ1QsIENsaWVudFJlY3QpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFwKLSAgICBWKENMSUVOVFJFQ1RMSVNULCBDbGllbnRSZWN0TGlzdCkgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKENMSVBCT0FSRCwgQ2xpcGJvYXJk
KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKENP
TlNPTEUsIENvbnNvbGUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFwKLSAgICBWKENPTVBPU0lUSU9ORVZFTlQsIENvbXBvc2l0aW9uRXZlbnQpICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKENPVU5URVIsIENvdW50ZXIpICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKENTU0NI
QVJTRVRSVUxFLCBDU1NDaGFyc2V0UnVsZSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFwKLSAgICBWKENTU0ZPTlRGQUNFUlVMRSwgQ1NTRm9udEZhY2VSdWxlKSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKENTU0lNUE9SVFJVTEUsIENTU0ltcG9ydFJ1
bGUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKENTU01FRElB
UlVMRSwgQ1NTTWVkaWFSdWxlKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFwKLSAgICBWKENTU1BBR0VSVUxFLCBDU1NQYWdlUnVsZSkgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKENTU1BSSU1JVElWRVZBTFVFLCBDU1NQcmltaXRp
dmVWYWx1ZSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKENTU1JVTEUsIENT
U1J1bGUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK
LSAgICBWKENTU1JVTEVMSVNULCBDU1NSdWxlTGlzdCkgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFwKLSAgICBWKENTU1NUWUxFREVDTEFSQVRJT04sIENTU1N0eWxlRGVj
bGFyYXRpb24pICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKENTU1NUWUxFUlVMRSwg
Q1NTU3R5bGVSdWxlKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAg
ICBWKENTU1NUWUxFU0hFRVQsIENTU1N0eWxlU2hlZXQpICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFwKLSAgICBWKENTU1ZBTFVFLCBDU1NWYWx1ZSkgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKENTU1ZBTFVFTElTVCwgQ1NT
VmFsdWVMaXN0KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBW
KENTU1ZBUklBQkxFU0RFQ0xBUkFUSU9OLCBDU1NWYXJpYWJsZXNEZWNsYXJhdGlvbikgICAgICAg
ICAgICAgICAgIFwKLSAgICBWKENTU1ZBUklBQkxFU1JVTEUsIENTU1ZhcmlhYmxlc1J1bGUpICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKERPTUNPUkVFWENFUFRJT04sIERP
TUNvcmVFeGNlcHRpb24pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKERP
TUlNUExFTUVOVEFUSU9OLCBET01JbXBsZW1lbnRhdGlvbikgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFwKLSAgICBWKERPTVBBUlNFUiwgRE9NUGFyc2VyKSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKERPTVNFTEVDVElPTiwgRE9NU2VsZWN0
aW9uKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKERPTVdJ
TkRPVywgRE9NV2luZG93KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFwKLSAgICBWKEVWRU5ULCBFdmVudCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKEVWRU5URVhDRVBUSU9OLCBFdmVudEV4Y2Vw
dGlvbikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKEZJTEUsIEZp
bGUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFwKLSAgICBWKEZJTEVMSVNULCBGaWxlTGlzdCkgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKEhJU1RPUlksIEhpc3RvcnkpICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKEhUTUxBTExDT0xM
RUNUSU9OLCBIVE1MQWxsQ29sbGVjdGlvbikgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK
LSAgICBWKEhUTUxDT0xMRUNUSU9OLCBIVE1MQ29sbGVjdGlvbikgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFwKLSAgICBWKEhUTUxPUFRJT05TQ09MTEVDVElPTiwgSFRNTE9wdGlv
bnNDb2xsZWN0aW9uKSAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKElNQUdFREFUQSwgSW1h
Z2VEYXRhKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAg
ICBWKENBTlZBU1BJWEVMQVJSQVksIENhbnZhc1BpeGVsQXJyYXkpICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFwKLSAgICBWKEtFWUJPQVJERVZFTlQsIEtleWJvYXJkRXZlbnQpICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKExPQ0FUSU9OLCBMb2NhdGlv
bikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBW
KE1FRElBLCBNZWRpYSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFwKLSAgICBWKE1FRElBTElTVCwgTWVkaWFMaXN0KQotCi0jZGVmaW5lIERPTV9P
QkpFQ1RfVFlQRVNfMihWKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBcCi0gICAgVihNRVNTQUdFQ0hBTk5FTCwgTWVzc2FnZUNoYW5uZWwpICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihNRVNTQUdFRVZFTlQsIE1lc3NhZ2VFdmVudCkg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihNSU1FVFlQRSwg
TWltZVR5cGUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc
Ci0gICAgVihNSU1FVFlQRUFSUkFZLCBNaW1lVHlwZUFycmF5KSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBcCi0gICAgVihNT1VTRUVWRU5ULCBNb3VzZUV2ZW50KSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihNVVRBVElPTkVWRU5U
LCBNdXRhdGlvbkV2ZW50KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0g
ICAgVihOQU1FRE5PREVNQVAsIE5hbWVkTm9kZU1hcCkgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBcCi0gICAgVihOQVZJR0FUT1IsIE5hdmlnYXRvcikgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihOT0RFRklMVEVSLCBOb2Rl
RmlsdGVyKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAg
VihOT0RFSVRFUkFUT1IsIE5vZGVJdGVyYXRvcikgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBcCi0gICAgVihOT0RFTElTVCwgTm9kZUxpc3QpICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihPVkVSRkxPV0VWRU5ULCBPdmVy
Zmxvd0V2ZW50KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihQ
QUdFVFJBTlNJVElPTkVWRU5ULCBQYWdlVHJhbnNpdGlvbkV2ZW50KSAgICAgICAgICAgICAgICAg
ICAgICAgICBcCi0gICAgVihQTFVHSU4sIFBsdWdpbikgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihQTFVHSU5BUlJBWSwgUGx1Z2luQXJy
YXkpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihQT1BT
VEFURUVWRU5ULCBQb3BTdGF0ZUV2ZW50KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBcCi0gICAgVihQUk9HUkVTU0VWRU5ULCBQcm9ncmVzc0V2ZW50KSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihSQU5HRSwgUmFuZ2UpICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihSQU5HRUVY
Q0VQVElPTiwgUmFuZ2VFeGNlcHRpb24pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBcCi0gICAgVihSRUNULCBSZWN0KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihSR0JDT0xPUiwgUkdCQ29sb3IpICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihTQ1JFRU4sIFNj
cmVlbikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc
Ci0gICAgVihTVFlMRVNIRUVULCBTdHlsZVNoZWV0KSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBcCi0gICAgVihTVFlMRVNIRUVUTElTVCwgU3R5bGVTaGVldExpc3Qp
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihURVhURVZFTlQsIFRl
eHRFdmVudCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0g
ICAgVihURVhUTUVUUklDUywgVGV4dE1ldHJpY3MpICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBcCi0gICAgVihUUkVFV0FMS0VSLCBUcmVlV2Fsa2VyKSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihVSUVWRU5ULCBVSUV2ZW50
KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAg
VihWQUxJRElUWVNUQVRFLCBWYWxpZGl0eVN0YXRlKSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBcCi0gICAgVihXRUJLSVRBTklNQVRJT05FVkVOVCwgV2ViS2l0QW5pbWF0aW9u
RXZlbnQpICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihXRUJLSVRDU1NLRVlGUkFNRVJV
TEUsIFdlYktpdENTU0tleWZyYW1lUnVsZSkgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihX
RUJLSVRDU1NLRVlGUkFNRVNSVUxFLCBXZWJLaXRDU1NLZXlmcmFtZXNSdWxlKSAgICAgICAgICAg
ICAgICAgICBcCi0gICAgVihXRUJLSVRDU1NNQVRSSVgsIFdlYktpdENTU01hdHJpeCkgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihXRUJLSVRQT0lOVCwgV2ViS2l0UG9p
bnQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihXRUJL
SVRDU1NUUkFOU0ZPUk1WQUxVRSwgV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUpICAgICAgICAgICAg
ICAgICBcCi0gICAgVihXRUJLSVRUUkFOU0lUSU9ORVZFTlQsIFdlYktpdFRyYW5zaXRpb25FdmVu
dCkgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihXSEVFTEVWRU5ULCBXaGVlbEV2ZW50KSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihYTUxIVFRQ
UkVRVUVTVFVQTE9BRCwgWE1MSHR0cFJlcXVlc3RVcGxvYWQpICAgICAgICAgICAgICAgICAgICAg
ICBcCi0gICAgVihYTUxIVFRQUkVRVUVTVEVYQ0VQVElPTiwgWE1MSHR0cFJlcXVlc3RFeGNlcHRp
b24pICAgICAgICAgICAgICAgICBcCi0gICAgVihYTUxIVFRQUkVRVUVTVFBST0dSRVNTRVZFTlQs
IFhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudCkgICAgICAgICBcCi0gICAgVihYTUxTRVJJQUxJ
WkVSLCBYTUxTZXJpYWxpemVyKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc
Ci0gICAgQUNUSVZFX0RPTV9PQkpFQ1RfVFlQRVMoVikgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBcCi0gICAgQVBQTElDQVRJT05DQUNIRV9OT05OT0RFX1dSQVBQRVJf
VFlQRVMoVikgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgREFUQUdSSURfTk9OTk9E
RV9UWVBFUyhWKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0g
ICAgVklERU9fTk9OTk9ERV9UWVBFUyhWKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBcCi0gICAgTk9USUZJQ0FUSU9OU19OT05OT0RFX1dSQVBQRVJfVFlQRVMo
VikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgU0hBUkVEX1dPUktFUl9OT05O
T0RFX1dSQVBQRVJfVFlQRVMoVikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAg
V09SS0VSX05PTk5PREVfV1JBUFBFUl9UWVBFUyhWKQotCi0jaWYgRU5BQkxFKERBVEFCQVNFKQot
I2RlZmluZSBET01fT0JKRUNUX0RBVEFCQVNFX1RZUEVTKFYpICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXAotICAgIFYoREFUQUJBU0UsIERhdGFiYXNlKSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoU1FMRVJST1IsIFNRTEVy
cm9yKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAg
IFYoU1FMUkVTVUxUU0VULCBTUUxSZXN1bHRTZXQpICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgXAotICAgIFYoU1FMUkVTVUxUU0VUUk9XTElTVCwgU1FMUmVzdWx0U2V0Um93
TGlzdCkgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoU1FMVFJBTlNBQ1RJT04sIFNR
TFRyYW5zYWN0aW9uKQotI2Vsc2UKLSNkZWZpbmUgRE9NX09CSkVDVF9EQVRBQkFTRV9UWVBFUyhW
KQotI2VuZGlmCi0KLSNpZiBFTkFCTEUoRE9NX1NUT1JBR0UpCi0jZGVmaW5lIERPTV9PQkpFQ1Rf
U1RPUkFHRV9UWVBFUyhWKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0g
ICAgVihTVE9SQUdFLCBTdG9yYWdlKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBcCi0gICAgVihTVE9SQUdFRVZFTlQsIFN0b3JhZ2VFdmVudCkKLSNlbHNl
Ci0jZGVmaW5lIERPTV9PQkpFQ1RfU1RPUkFHRV9UWVBFUyhWKQotI2VuZGlmCi0KLSNpZiBFTkFC
TEUoSU5ERVhFRF9EQVRBQkFTRSkKLSNkZWZpbmUgRE9NX09CSkVDVF9JTkRFWEVEX0RBVEFCQVNF
X1RZUEVTKFYpICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKElEQkRBVEFCQVNF
RVJST1IsIElEQkRhdGFiYXNlRXJyb3IpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK
LSAgICBWKElEQkRBVEFCQVNFRVhDRVBUSU9OLCBJREJEYXRhYmFzZUV4Y2VwdGlvbikgICAgICAg
ICAgICAgICAgICAgICAgIFwKLSAgICBWKElEQkRBVEFCQVNFUkVRVUVTVCwgSURCRGF0YWJhc2VS
ZXF1ZXN0KSAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKElEQlJFUVVFU1QsIElE
QlJlcXVlc3QpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAg
ICBWKElOREVYRUREQVRBQkFTRVJFUVVFU1QsIEluZGV4ZWREYXRhYmFzZVJlcXVlc3QpCi0jZWxz
ZQotI2RlZmluZSBET01fT0JKRUNUX0lOREVYRURfREFUQUJBU0VfVFlQRVMoVikKLSNlbmRpZgot
Ci0jaWYgRU5BQkxFKFdPUktFUlMpCi0jZGVmaW5lIERPTV9PQkpFQ1RfV09SS0VSU19UWVBFUyhW
KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihFUlJPUkVWRU5U
LCBFcnJvckV2ZW50KQotI2Vsc2UKLSNkZWZpbmUgRE9NX09CSkVDVF9XT1JLRVJTX1RZUEVTKFYp
Ci0jZW5kaWYKLQotI2lmIEVOQUJMRSgzRF9DQU5WQVMpCi0jZGVmaW5lIERPTV9PQkpFQ1RfM0Rf
Q0FOVkFTX1RZUEVTKFYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAg
VihXRUJHTEFDVElWRUlORk8sIFdlYkdMQWN0aXZlSW5mbykgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBcCi0gICAgVihXRUJHTEFSUkFZLCBXZWJHTEFycmF5KSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihXRUJHTEFSUkFZQlVGRkVSLCBX
ZWJHTEFycmF5QnVmZmVyKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihX
RUJHTEJVRkZFUiwgV2ViR0xCdWZmZXIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBcCi0gICAgVihXRUJHTEJZVEVBUlJBWSwgV2ViR0xCeXRlQXJyYXkpICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihXRUJHTENPTlRFWFRBVFRSSUJVVEVT
LCBXZWJHTENvbnRleHRBdHRyaWJ1dGVzKSAgICAgICAgICAgICAgICAgICBcCi0gICAgVihXRUJH
TEZMT0FUQVJSQVksIFdlYkdMRmxvYXRBcnJheSkgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBcCi0gICAgVihXRUJHTEZSQU1FQlVGRkVSLCBXZWJHTEZyYW1lYnVmZmVyKSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihXRUJHTElOVEFSUkFZLCBXZWJHTEludEFy
cmF5KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihXRUJHTFBS
T0dSQU0sIFdlYkdMUHJvZ3JhbSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBcCi0gICAgVihXRUJHTFJFTkRFUkJVRkZFUiwgV2ViR0xSZW5kZXJidWZmZXIpICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihXRUJHTFJFTkRFUklOR0NPTlRFWFQsIFdlYkdM
UmVuZGVyaW5nQ29udGV4dCkgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihXRUJHTFNIQURF
UiwgV2ViR0xTaGFkZXIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc
Ci0gICAgVihXRUJHTFNIT1JUQVJSQVksIFdlYkdMU2hvcnRBcnJheSkgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBcCi0gICAgVihXRUJHTFRFWFRVUkUsIFdlYkdMVGV4dHVyZSkgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihXRUJHTFVOSUZPUk1M
T0NBVElPTiwgV2ViR0xVbmlmb3JtTG9jYXRpb24pICAgICAgICAgICAgICAgICAgICAgICBcCi0g
ICAgVihXRUJHTFVOU0lHTkVEQllURUFSUkFZLCBXZWJHTFVuc2lnbmVkQnl0ZUFycmF5KSAgICAg
ICAgICAgICAgICAgICBcCi0gICAgVihXRUJHTFVOU0lHTkVESU5UQVJSQVksIFdlYkdMVW5zaWdu
ZWRJbnRBcnJheSkgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihXRUJHTFVOU0lHTkVEU0hP
UlRBUlJBWSwgV2ViR0xVbnNpZ25lZFNob3J0QXJyYXkpCi0jZWxzZQotI2RlZmluZSBET01fT0JK
RUNUXzNEX0NBTlZBU19UWVBFUyhWKQotI2VuZGlmCi0KLSNpZiBFTkFCTEUoWFBBVEgpCi0jZGVm
aW5lIERPTV9PQkpFQ1RfWFBBVEhfVFlQRVMoVikgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBcCi0gICAgVihYUEFUSEVWQUxVQVRPUiwgWFBhdGhFdmFsdWF0b3IpICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihYUEFUSEVYQ0VQVElPTiwgWFBh
dGhFeGNlcHRpb24pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihY
UEFUSEVYUFJFU1NJT04sIFhQYXRoRXhwcmVzc2lvbikgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBcCi0gICAgVihYUEFUSE5TUkVTT0xWRVIsIFhQYXRoTlNSZXNvbHZlcikgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihYUEFUSFJFU1VMVCwgWFBhdGhSZXN1
bHQpCi0jZWxzZQotI2RlZmluZSBET01fT0JKRUNUX1hQQVRIX1RZUEVTKFYpCi0jZW5kaWYKLQot
I2lmIEVOQUJMRShYU0xUKQotI2RlZmluZSBET01fT0JKRUNUX1hTTFRfVFlQRVMoVikgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoWFNMVFBST0NFU1NPUiwg
WFNMVFByb2Nlc3NvcikKLSNlbHNlCi0jZGVmaW5lIERPTV9PQkpFQ1RfWFNMVF9UWVBFUyhWKQot
I2VuZGlmCi0KLSNpZiBFTkFCTEUoSU5TUEVDVE9SKQotI2RlZmluZSBET01fT0JKRUNUX0lOU1BF
Q1RPUl9UWVBFUyhWKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYo
SU5TUEVDVE9SQkFDS0VORCwgSW5zcGVjdG9yQmFja2VuZCkgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXAotICAgIFYoSU5TUEVDVE9SRlJPTlRFTkRIT1NULCBJbnNwZWN0b3JGcm9udGVu
ZEhvc3QpICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoSU5KRUNURURTQ1JJUFRIT1NULCBJ
bmplY3RlZFNjcmlwdEhvc3QpCi0jZWxzZQotI2RlZmluZSBET01fT0JKRUNUX0lOU1BFQ1RPUl9U
WVBFUyhWKQotI2VuZGlmCi0KLSNkZWZpbmUgRE9NX09CSkVDVF9HRU9MT0NBVElPTl9UWVBFUyhW
KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKENPT1JESU5BVEVTLCBD
b29yZGluYXRlcykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAg
ICBWKEdFT0xPQ0FUSU9OLCBHZW9sb2NhdGlvbikgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFwKLSAgICBWKEdFT1BPU0lUSU9OLCBHZW9wb3NpdGlvbikgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKFBPU0lUSU9ORVJST1IsIFBv
c2l0aW9uRXJyb3IpCi0KLSNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQotI2RlZmluZSBET01fT0JK
RUNUX1RPVUNIX0VWRU5UX1RZUEVTKFYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
XAotICAgIFYoVE9VQ0gsIFRvdWNoKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXAotICAgIFYoVE9VQ0hFVkVOVCwgVG91Y2hFdmVudCkgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoVE9VQ0hMSVNULCBU
b3VjaExpc3QpCi0jZWxzZQotI2RlZmluZSBET01fT0JKRUNUX1RPVUNIX0VWRU5UX1RZUEVTKFYp
Ci0jZW5kaWYKLQotI2RlZmluZSBET01fT0JKRUNUX1RZUEVTKFYpICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIERPTV9PQkpFQ1RfVFlQRVNfMShWKSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIERPTV9P
QkpFQ1RfVFlQRVNfMihWKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgXAotICAgIERPTV9PQkpFQ1RfREFUQUJBU0VfVFlQRVMoVikgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIERPTV9PQkpFQ1RfU1RPUkFHRV9UWVBFUyhW
KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIERPTV9PQkpF
Q1RfSU5ERVhFRF9EQVRBQkFTRV9UWVBFUyhWKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXAotICAgIERPTV9PQkpFQ1RfV09SS0VSU19UWVBFUyhWKSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgXAotICAgIERPTV9PQkpFQ1RfM0RfQ0FOVkFTX1RZUEVTKFYp
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIERPTV9PQkpFQ1Rf
WFBBVEhfVFlQRVMoVikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
XAotICAgIERPTV9PQkpFQ1RfWFNMVF9UWVBFUyhWKSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXAotICAgIERPTV9PQkpFQ1RfSU5TUEVDVE9SX1RZUEVTKFYpICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIERPTV9PQkpFQ1RfR0VP
TE9DQVRJT05fVFlQRVMoVikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAot
ICAgIERPTV9PQkpFQ1RfVE9VQ0hfRVZFTlRfVFlQRVMoVikKLQotI2lmIEVOQUJMRShTVkcpCi0v
LyBTVkdfT0JKRUNUX1RZUEVTIGFyZSBzdmcgbm9uLW5vZGUsIG5vbi1wb2QgdHlwZXMuCi0jZGVm
aW5lIFNWR19PQkpFQ1RfVFlQRVMoVikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBcCi0gICAgVihTVkdBTklNQVRFREFOR0xFLCBTVkdBbmltYXRlZEFuZ2xlKSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihTVkdBTklNQVRFREJPT0xFQU4s
IFNWR0FuaW1hdGVkQm9vbGVhbikgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihT
VkdBTklNQVRFREVOVU1FUkFUSU9OLCBTVkdBbmltYXRlZEVudW1lcmF0aW9uKSAgICAgICAgICAg
ICAgICAgICBcCi0gICAgVihTVkdBTklNQVRFRElOVEVHRVIsIFNWR0FuaW1hdGVkSW50ZWdlcikg
ICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihTVkdBTklNQVRFRExFTkdUSCwgU1ZH
QW5pbWF0ZWRMZW5ndGgpICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihTVkdB
TklNQVRFRExFTkdUSExJU1QsIFNWR0FuaW1hdGVkTGVuZ3RoTGlzdCkgICAgICAgICAgICAgICAg
ICAgICBcCi0gICAgVihTVkdBTklNQVRFRE5VTUJFUiwgU1ZHQW5pbWF0ZWROdW1iZXIpICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihTVkdBTklNQVRFRE5VTUJFUkxJU1QsIFNW
R0FuaW1hdGVkTnVtYmVyTGlzdCkgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihTVkdBTklN
QVRFRFBSRVNFUlZFQVNQRUNUUkFUSU8sIFNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpbykg
ICBcCi0gICAgVihTVkdBTklNQVRFRFJFQ1QsIFNWR0FuaW1hdGVkUmVjdCkgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihTVkdBTklNQVRFRFNUUklORywgU1ZHQW5pbWF0
ZWRTdHJpbmcpICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihTVkdBTklNQVRF
RFRSQU5TRk9STUxJU1QsIFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdCkgICAgICAgICAgICAgICBc
Ci0gICAgVihTVkdDT0xPUiwgU1ZHQ29sb3IpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBcCi0gICAgVihTVkdFTEVNRU5USU5TVEFOQ0UsIFNWR0VsZW1lbnRJ
bnN0YW5jZSkgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihTVkdFTEVNRU5USU5T
VEFOQ0VMSVNULCBTVkdFbGVtZW50SW5zdGFuY2VMaXN0KSAgICAgICAgICAgICAgICAgICBcCi0g
ICAgVihTVkdFWENFUFRJT04sIFNWR0V4Y2VwdGlvbikgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBcCi0gICAgVihTVkdMRU5HVEhMSVNULCBTVkdMZW5ndGhMaXN0KSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihTVkdOVU1CRVJMSVNULCBT
VkdOdW1iZXJMaXN0KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAg
VihTVkdQQUlOVCwgU1ZHUGFpbnQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBcCi0gICAgVihTVkdQQVRIU0VHLCBTVkdQYXRoU2VnKSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihTVkdQQVRIU0VHQVJDQUJTLCBT
VkdQYXRoU2VnQXJjQWJzKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihT
VkdQQVRIU0VHQVJDUkVMLCBTVkdQYXRoU2VnQXJjUmVsKSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBcCi0gICAgVihTVkdQQVRIU0VHQ0xPU0VQQVRILCBTVkdQYXRoU2VnQ2xvc2VQYXRo
KSAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihTVkdQQVRIU0VHQ1VSVkVUT0NVQklD
QUJTLCBTVkdQYXRoU2VnQ3VydmV0b0N1YmljQWJzKSAgICAgICAgICAgICBcCi0gICAgVihTVkdQ
QVRIU0VHQ1VSVkVUT0NVQklDUkVMLCBTVkdQYXRoU2VnQ3VydmV0b0N1YmljUmVsKSAgICAgICAg
ICAgICBcCi0gICAgVihTVkdQQVRIU0VHQ1VSVkVUT0NVQklDU01PT1RIQUJTLCBTVkdQYXRoU2Vn
Q3VydmV0b0N1YmljU21vb3RoQWJzKSBcCi0gICAgVihTVkdQQVRIU0VHQ1VSVkVUT0NVQklDU01P
T1RIUkVMLCBTVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoUmVsKSBcCi0gICAgVihTVkdQQVRI
U0VHQ1VSVkVUT1FVQURSQVRJQ0FCUywgU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNBYnMpICAg
ICBcCi0gICAgVihTVkdQQVRIU0VHQ1VSVkVUT1FVQURSQVRJQ1JFTCwgU1ZHUGF0aFNlZ0N1cnZl
dG9RdWFkcmF0aWNSZWwpICAgICBcCi0gICAgVihTVkdQQVRIU0VHQ1VSVkVUT1FVQURSQVRJQ1NN
T09USEFCUywgU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNTbW9vdGhBYnMpXAotICAgIFYoU1ZH
UEFUSFNFR0NVUlZFVE9RVUFEUkFUSUNTTU9PVEhSRUwsIFNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJh
dGljU21vb3RoUmVsKVwKLSAgICBWKFNWR1BBVEhTRUdMSU5FVE9BQlMsIFNWR1BhdGhTZWdMaW5l
dG9BYnMpICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKFNWR1BBVEhTRUdMSU5FVE9I
T1JJWk9OVEFMQUJTLCBTVkdQYXRoU2VnTGluZXRvSG9yaXpvbnRhbEFicykgICAgIFwKLSAgICBW
KFNWR1BBVEhTRUdMSU5FVE9IT1JJWk9OVEFMUkVMLCBTVkdQYXRoU2VnTGluZXRvSG9yaXpvbnRh
bFJlbCkgICAgIFwKLSAgICBWKFNWR1BBVEhTRUdMSU5FVE9SRUwsIFNWR1BhdGhTZWdMaW5ldG9S
ZWwpICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKFNWR1BBVEhTRUdMSU5FVE9WRVJU
SUNBTEFCUywgU1ZHUGF0aFNlZ0xpbmV0b1ZlcnRpY2FsQWJzKSAgICAgICAgIFwKLSAgICBWKFNW
R1BBVEhTRUdMSU5FVE9WRVJUSUNBTFJFTCwgU1ZHUGF0aFNlZ0xpbmV0b1ZlcnRpY2FsUmVsKSAg
ICAgICAgIFwKLSAgICBWKFNWR1BBVEhTRUdMSVNULCBTVkdQYXRoU2VnTGlzdCkgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKFNWR1BBVEhTRUdNT1ZFVE9BQlMsIFNW
R1BhdGhTZWdNb3ZldG9BYnMpICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKFNWR1BB
VEhTRUdNT1ZFVE9SRUwsIFNWR1BhdGhTZWdNb3ZldG9SZWwpICAgICAgICAgICAgICAgICAgICAg
ICAgIFwKLSAgICBWKFNWR1BPSU5UTElTVCwgU1ZHUG9pbnRMaXN0KSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKFNWR1JFTkRFUklOR0lOVEVOVCwgU1ZHUmVu
ZGVyaW5nSW50ZW50KSAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKFNWR1NUUklO
R0xJU1QsIFNWR1N0cmluZ0xpc3QpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFwKLSAgICBWKFNWR1RSQU5TRk9STUxJU1QsIFNWR1RyYW5zZm9ybUxpc3QpICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKFNWR1VOSVRUWVBFUywgU1ZHVW5pdFR5cGVzKSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKFNWR1pPT01FVkVO
VCwgU1ZHWm9vbUV2ZW50KQotCi0vLyBTVkcgUE9EIHR5cGVzIHNob3VsZCBsaXN0IGFsbCB0eXBl
cyB3aG9zZSBJREwgaGFzIFBPRFR5cGUgZGVjbGFyYXRpb24uCi0jZGVmaW5lIFNWR19QT0RfVFlQ
RVMoVikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0g
ICAgVihTVkdBTkdMRSwgU1ZHQW5nbGUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBcCi0gICAgVihTVkdMRU5HVEgsIFNWR0xlbmd0aCkgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihTVkdQUkVTRVJWRUFTUEVD
VFJBVElPLCBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvKSAgICAgICAgICAgICAgICAgICBcCi0gICAg
VihTVkdUUkFOU0ZPUk0sIFNWR1RyYW5zZm9ybSkgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBcCi0gICAgVihTVkdNQVRSSVgsIFNWR01hdHJpeCkgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihTVkdOVU1CRVIsIFNWR051bWJl
cikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihT
VkdQT0lOVCwgU1ZHUG9pbnQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBcCi0gICAgVihTVkdSRUNULCBTVkdSZWN0KQotCi0vLyBQT0QgdHlwZXMgY2FuIGhh
dmUgZGlmZmVyZW50IGltcGxlbWVudGF0aW9uIG5hbWVzLCBzZWUgQ29kZUdlbmVyYXRlVjgucG0u
Ci0jZGVmaW5lIFNWR19QT0RfTkFUSVZFX1RZUEVTKFYpICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBcCi0gICAgVihTVkdBTkdMRSwgU1ZHQW5nbGUpICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihTVkdMRU5HVEgsIFNW
R0xlbmd0aCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0g
ICAgVihTVkdQUkVTRVJWRUFTUEVDVFJBVElPLCBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvKSAgICAg
ICAgICAgICAgICAgICBcCi0gICAgVihTVkdUUkFOU0ZPUk0sIFNWR1RyYW5zZm9ybSkgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihTVkdNQVRSSVgsIEFmZmlu
ZVRyYW5zZm9ybSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAg
VihTVkdOVU1CRVIsIGZsb2F0KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBcCi0gICAgVihTVkdQT0lOVCwgRmxvYXRQb2ludCkgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihTVkdSRUNULCBGbG9hdFJlY3Qp
Ci0KLS8vIFNob3VsZG4ndCBnZW5lcmF0ZSBjb2RlIGZvciB0aGVzZSB0d28gdHlwZXMuCi0jZGVm
aW5lIFNWR19OT19XUkFQUEVSX1RZUEVTKFYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBcCi0gICAgVihTVkdVUklSRUZFUkVOQ0UsIFNWR1VSSVJlZmVyZW5jZSkgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihTVkdBTklNQVRFRFBPSU5UUywg
U1ZHQW5pbWF0ZWRQb2ludHMpCi0KLS8vIFNWR19OT05OT0RFX1RZUEVTIGFyZSBTVkcgbm9uLW5v
ZGUgb2JqZWN0IHR5cGVzLCBwb2QgdHlwcyBhbmQKLS8vIG51bWVyaWNhbCB0eXBlcy4KLSNkZWZp
bmUgU1ZHX05PTk5PREVfVFlQRVMoVikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFwKLSAgICBTVkdfT0JKRUNUX1RZUEVTKFYpICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBTVkdfUE9EX1RZUEVTKFYpCi0jZW5k
aWYgIC8vIFNWRwotCi0vLyBFVkVOVFRBUkdFVCwgRVZFTlRMSVNURU5FUiwgYW5kIE5QT0JKRUNU
IGRvIG5vdCBoYXZlIFY4IHdyYXBwZXJzLgotI2RlZmluZSBET01fTk9fV1JBUFBFUl9UWVBFUyhW
KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoRVZFTlRU
QVJHRVQsIEV2ZW50VGFyZ2V0KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXAotICAgIFYoRVZFTlRMSVNURU5FUiwgRXZlbnRMaXN0ZW5lcikgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoTlBPQkpFQ1QsIE5QT2JqZWN0KQotCi0jaWYg
RU5BQkxFKFNWRykKLSNkZWZpbmUgV1JBUFBFUl9UWVBFUyhWKSBET01fTk9ERV9UWVBFUyhWKSBE
T01fT0JKRUNUX1RZUEVTKFYpIFNWR19OT0RFX1RZUEVTKFYpIFNWR19OT05OT0RFX1RZUEVTKFYp
Ci0jZGVmaW5lIE5PX1dSQVBQRVJfVFlQRVMoVikgRE9NX05PX1dSQVBQRVJfVFlQRVMoVikgU1ZH
X05PX1dSQVBQRVJfVFlQRVMoVikKLSNlbHNlICAvLyBTVkcKLSNkZWZpbmUgV1JBUFBFUl9UWVBF
UyhWKSBET01fTk9ERV9UWVBFUyhWKSBET01fT0JKRUNUX1RZUEVTKFYpCi0jZGVmaW5lIE5PX1dS
QVBQRVJfVFlQRVMoVikgRE9NX05PX1dSQVBQRVJfVFlQRVMoVikKLSNlbmRpZiAgLy8gU1ZHCi0K
LSNkZWZpbmUgQUxMX1dSQVBQRVJfVFlQRVMoVikgV1JBUFBFUl9UWVBFUyhWKSBOT19XUkFQUEVS
X1RZUEVTKFYpCi0KLSAgICBjbGFzcyBWOENsYXNzSW5kZXggewotICAgIHB1YmxpYzoKLSAgICAg
ICAgLy8gVHlwZSBtdXN0IHN0YXJ0IGF0IG5vbi1uZWdhdGl2ZSBudW1iZXJzLiBTZWUgVG9JbnQs
IEZyb21JbnQuCi0gICAgICAgIGVudW0gVjhXcmFwcGVyVHlwZSB7Ci0gICAgICAgICAgICBJTlZB
TElEX0NMQVNTX0lOREVYID0gMCwKLQotI2RlZmluZSBERUZJTkVfRU5VTShuYW1lLCB0eXBlKSBu
YW1lLCAKLSAgICAgICAgICAgIEFMTF9XUkFQUEVSX1RZUEVTKERFRklORV9FTlVNKQotI3VuZGVm
IERFRklORV9FTlVNCi0KLSAgICAgICAgICAgIENMQVNTSU5ERVhfRU5ELAotICAgICAgICAgICAg
V1JBUFBFUl9UWVBFX0NPVU5UID0gQ0xBU1NJTkRFWF9FTkQKLSAgICAgICAgfTsKLQotICAgICAg
ICAvLyBGSVhNRTogQ29udmVydCB0byB0b0ludCBhZnRlciBhbGwgdGhlIGJpbmRpbmdzIGFyZSBp
biBvbmUgcGxhY2UuCi0gICAgICAgIHN0YXRpYyBpbnQgVG9JbnQoVjhXcmFwcGVyVHlwZSB0eXBl
KSB7IHJldHVybiBzdGF0aWNfY2FzdDxpbnQ+KHR5cGUpOyB9Ci0KLSAgICAgICAgLy8gRklYTUU6
IENvbnZlcnQgdG8gZnJvbUludCBhZnRlciBhbGwgdGhlIGJpbmRpbmdzIGFyZSBpbiBvbmUgcGxh
Y2UuCi0gICAgICAgIHN0YXRpYyBWOFdyYXBwZXJUeXBlIEZyb21JbnQoaW50IHYpIHsKLSAgICAg
ICAgICAgIEFTU0VSVChJTlZBTElEX0NMQVNTX0lOREVYIDw9IHYgJiYgdiA8IENMQVNTSU5ERVhf
RU5EKTsKLSAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxWOFdyYXBwZXJUeXBlPih2KTsK
LSAgICAgICAgfQotICAgIH07Ci0KICAgICBjbGFzcyBBY3RpdmVET01PYmplY3Q7CiAKKyAgICBz
dGF0aWMgY29uc3QgaW50IHY4RE9NV3JhcHBlclR5cGVJbmRleCA9IDA7CisgICAgc3RhdGljIGNv
bnN0IGludCB2OERPTVdyYXBwZXJPYmplY3RJbmRleCA9IDE7CisgICAgc3RhdGljIGNvbnN0IGlu
dCB2OERlZmF1bHRXcmFwcGVySW50ZXJuYWxGaWVsZENvdW50ID0gMjsKKwogICAgIHR5cGVkZWYg
djg6OlBlcnNpc3RlbnQ8djg6OkZ1bmN0aW9uVGVtcGxhdGU+ICgqR2V0VGVtcGxhdGVGdW5jdGlv
bikoKTsKICAgICB0eXBlZGVmIHZvaWQgKCpEZXJlZk9iamVjdEZ1bmN0aW9uKSh2b2lkKik7CiAg
ICAgdHlwZWRlZiBBY3RpdmVET01PYmplY3QqICgqVG9BY3RpdmVET01PYmplY3RGdW5jdGlvbiko
djg6OkhhbmRsZTx2ODo6T2JqZWN0Pik7CiAKKyAgICAvLyBUaGlzIHN0cnVjdCBwcm92aWRlcyBh
IHdheSB0byBzdG9yZSBhIGJ1bmNoIG9mIGluZm9ybWF0aW9uIHRoYXQgaXMgaGVscGZ1bCB3aGVu
IHVud3JhcHBpbmcKKyAgICAvLyB2OCBvYmplY3RzLiBFYWNoIHY4IGJpbmRpbmdzIGNsYXNzIGhh
cyBleGFjdGx5IG9uZSBzdGF0aWMgV3JhcHBlclR5cGVJbmZvIG1lbWJlciwgc28KKyAgICAvLyBj
b21wYXJpbmcgcG9pbnRlcnMgaXMgYSBzYWZlIHdheSB0byBkZXRlcm1pbmUgaWYgdHlwZXMgbWF0
Y2guCiAgICAgc3RydWN0IFdyYXBwZXJUeXBlSW5mbyB7CiAKKyAgICAgICAgc3RhdGljIFdyYXBw
ZXJUeXBlSW5mbyogdW53cmFwKHY4OjpIYW5kbGU8djg6OlZhbHVlPiB0eXBlSW5mb1dyYXBwZXIp
CisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiByZWludGVycHJldF9jYXN0PFdyYXBwZXJU
eXBlSW5mbyo+KHY4OjpFeHRlcm5hbDo6VW53cmFwKHR5cGVJbmZvV3JhcHBlcikpOworICAgICAg
ICB9CisKKworICAgICAgICBib29sIGVxdWFscyhjb25zdCBXcmFwcGVyVHlwZUluZm8qIHRoYXQp
IGNvbnN0CisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiB0aGlzID09IHRoYXQ7CisgICAg
ICAgIH0KKwogICAgICAgICB2ODo6UGVyc2lzdGVudDx2ODo6RnVuY3Rpb25UZW1wbGF0ZT4gZ2V0
VGVtcGxhdGUoKSB7IHJldHVybiBnZXRUZW1wbGF0ZUZ1bmN0aW9uKCk7IH0KIAogICAgICAgICB2
b2lkIGRlcmVmT2JqZWN0KHZvaWQqIG9iamVjdCkKQEAgLTY5NywxMSArNzYsMTAgQEAKICAgICAg
ICAgICAgIHJldHVybiB0b0FjdGl2ZURPTU9iamVjdEZ1bmN0aW9uKG9iamVjdCk7CiAgICAgICAg
IH0KIAotICAgICAgICBjb25zdCBpbnQgaW5kZXg7CiAgICAgICAgIGNvbnN0IEdldFRlbXBsYXRl
RnVuY3Rpb24gZ2V0VGVtcGxhdGVGdW5jdGlvbjsKICAgICAgICAgY29uc3QgRGVyZWZPYmplY3RG
dW5jdGlvbiBkZXJlZk9iamVjdEZ1bmN0aW9uOwogICAgICAgICBjb25zdCBUb0FjdGl2ZURPTU9i
amVjdEZ1bmN0aW9uIHRvQWN0aXZlRE9NT2JqZWN0RnVuY3Rpb247CiAgICAgfTsKIH0KIAotI2Vu
ZGlmIC8vIFY4SW5kZXhfaAorI2VuZGlmIC8vIFdyYXBwZXJUeXBlSW5mb19oCkluZGV4OiBXZWJD
b3JlL2JpbmRpbmdzL3Y4L1Y4RE9NV2luZG93U2hlbGwuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvYmluZGluZ3MvdjgvVjhET01XaW5kb3dTaGVsbC5jcHAJKHJldmlzaW9uIDU2MTMxKQorKysg
V2ViQ29yZS9iaW5kaW5ncy92OC9WOERPTVdpbmRvd1NoZWxsLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNTMsNyArNTMsNiBAQAogI2luY2x1ZGUgIlY4R0NGb3JDb250ZXh0RGlzcG9zZS5oIgogI2lu
Y2x1ZGUgIlY4SGlkZGVuUHJvcGVydHlOYW1lLmgiCiAjaW5jbHVkZSAiVjhIaXN0b3J5LmgiCi0j
aW5jbHVkZSAiVjhJbmRleC5oIgogI2luY2x1ZGUgIlY4TG9jYXRpb24uaCIKICNpbmNsdWRlICJW
OFByb3h5LmgiCiAjaW5jbHVkZSAiV29ya2VyQ29udGV4dEV4ZWN1dGlvblByb3h5LmgiCkBAIC05
MiwyOSArOTEsMjEgQEAKIHN0YXRpYyBGcmFtZSogZ2V0VGFyZ2V0RnJhbWUodjg6OkxvY2FsPHY4
OjpPYmplY3Q+IGhvc3QsIHY4OjpMb2NhbDx2ODo6VmFsdWU+IGRhdGEpCiB7CiAgICAgRnJhbWUq
IHRhcmdldCA9IDA7Ci0gICAgc3dpdGNoIChWOENsYXNzSW5kZXg6OkZyb21JbnQoZGF0YS0+SW50
MzJWYWx1ZSgpKSkgewotICAgIGNhc2UgVjhDbGFzc0luZGV4OjpET01XSU5ET1c6IHsKKyAgICBX
cmFwcGVyVHlwZUluZm8qIHR5cGUgPSBXcmFwcGVyVHlwZUluZm86OnVud3JhcChkYXRhKTsKKyAg
ICBpZiAoVjhET01XaW5kb3c6OmluZm8uZXF1YWxzKHR5cGUpKSB7CiAgICAgICAgIHY4OjpIYW5k
bGU8djg6Ok9iamVjdD4gd2luZG93ID0gVjhET01XcmFwcGVyOjpsb29rdXBET01XcmFwcGVyKFY4
RE9NV2luZG93OjpHZXRUZW1wbGF0ZSgpLCBob3N0KTsKICAgICAgICAgaWYgKHdpbmRvdy5Jc0Vt
cHR5KCkpCiAgICAgICAgICAgICByZXR1cm4gdGFyZ2V0OwogCiAgICAgICAgIERPTVdpbmRvdyog
dGFyZ2V0V2luZG93ID0gVjhET01XaW5kb3c6OnRvTmF0aXZlKHdpbmRvdyk7CiAgICAgICAgIHRh
cmdldCA9IHRhcmdldFdpbmRvdy0+ZnJhbWUoKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotICAg
IGNhc2UgVjhDbGFzc0luZGV4OjpMT0NBVElPTjogeworICAgIH0gZWxzZSBpZiAoVjhIaXN0b3J5
OjppbmZvLmVxdWFscyh0eXBlKSkgewogICAgICAgICBIaXN0b3J5KiBoaXN0b3J5ID0gVjhIaXN0
b3J5Ojp0b05hdGl2ZShob3N0KTsKICAgICAgICAgdGFyZ2V0ID0gaGlzdG9yeS0+ZnJhbWUoKTsK
LSAgICAgICAgYnJlYWs7Ci0gICAgfQotICAgIGNhc2UgVjhDbGFzc0luZGV4OjpISVNUT1JZOiB7
CisgICAgfSBlbHNlIGlmIChWOExvY2F0aW9uOjppbmZvLmVxdWFscyh0eXBlKSkgewogICAgICAg
ICBMb2NhdGlvbiogbG9jYXRpb24gPSBWOExvY2F0aW9uOjp0b05hdGl2ZShob3N0KTsKICAgICAg
ICAgdGFyZ2V0ID0gbG9jYXRpb24tPmZyYW1lKCk7Ci0gICAgICAgIGJyZWFrOwogICAgIH0KLSAg
ICBkZWZhdWx0OgotICAgICAgICBicmVhazsKLSAgICB9CiAgICAgcmV0dXJuIHRhcmdldDsKIH0K
IApAQCAtMTQwLDcgKzEzMSw2IEBACiAgICAgLy8gbV9jb250ZXh0LCBtX2dsb2JhbCwgYW5kIG1f
d3JhcHBlckJvaWxlcnBsYXRlcyBzaG91bGQKICAgICAvLyBhbGwgYmUgbm9uLWVtcHR5IGlmIGlm
IG1fY29udGV4dCBpcyBub24tZW1wdHkuCiAgICAgQVNTRVJUKG1fY29udGV4dC5Jc0VtcHR5KCkg
fHwgIW1fZ2xvYmFsLklzRW1wdHkoKSk7Ci0gICAgQVNTRVJUKG1fY29udGV4dC5Jc0VtcHR5KCkg
fHwgIW1fd3JhcHBlckJvaWxlcnBsYXRlcy5Jc0VtcHR5KCkpOwogICAgIHJldHVybiAhbV9jb250
ZXh0LklzRW1wdHkoKTsKIH0KIApAQCAtMTU3LDEzICsxNDcsMTMgQEAKICAgICAgICAgVjhHQ0Zv
ckNvbnRleHREaXNwb3NlOjppbnN0YW5jZSgpLm5vdGlmeUNvbnRleHREaXNwb3NlZCgpOwogICAg
IH0KIAotICAgIGlmICghbV93cmFwcGVyQm9pbGVycGxhdGVzLklzRW1wdHkoKSkgewotI2lmbmRl
ZiBOREVCVUcKLSAgICAgICAgVjhHQ0NvbnRyb2xsZXI6OnVucmVnaXN0ZXJHbG9iYWxIYW5kbGUo
dGhpcywgbV93cmFwcGVyQm9pbGVycGxhdGVzKTsKLSNlbmRpZgotICAgICAgICBtX3dyYXBwZXJC
b2lsZXJwbGF0ZXMuRGlzcG9zZSgpOwotICAgICAgICBtX3dyYXBwZXJCb2lsZXJwbGF0ZXMuQ2xl
YXIoKTsKKyAgICBXcmFwcGVyQm9pbGVycGxhdGVNYXA6Oml0ZXJhdG9yIGl0ID0gbV93cmFwcGVy
Qm9pbGVycGxhdGVzLmJlZ2luKCk7CisgICAgZm9yICg7IGl0ICE9IG1fd3JhcHBlckJvaWxlcnBs
YXRlcy5lbmQoKTsgKytpdCkgeworICAgICAgICB2ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0PiB3
cmFwcGVyID0gaXQtPnNlY29uZDsKKyAgICAgICAgd3JhcHBlci5EaXNwb3NlKCk7CisgICAgICAg
IHdyYXBwZXIuQ2xlYXIoKTsKICAgICB9CisgICAgbV93cmFwcGVyQm9pbGVycGxhdGVzLmNsZWFy
KCk7CiB9CiAKIHZvaWQgVjhET01XaW5kb3dTaGVsbDo6ZGVzdHJveUdsb2JhbCgpCkBAIC0yOTcs
MTUgKzI4Nyw2IEBACiAgICAgfQogCiAgICAgaW5zdGFsbEhpZGRlbk9iamVjdFByb3RvdHlwZSh2
OENvbnRleHQpOwotICAgIG1fd3JhcHBlckJvaWxlcnBsYXRlcyA9IHY4OjpQZXJzaXN0ZW50PHY4
OjpBcnJheT46Ok5ldyh2ODo6QXJyYXk6Ok5ldyhWOENsYXNzSW5kZXg6OldSQVBQRVJfVFlQRV9D
T1VOVCkpOwotICAgIC8vIEJhaWwgb3V0IGlmIGFsbG9jYXRpb24gZmFpbGVkLgotICAgIGlmICht
X3dyYXBwZXJCb2lsZXJwbGF0ZXMuSXNFbXB0eSgpKSB7Ci0gICAgICAgIGRpc3Bvc2VDb250ZXh0
SGFuZGxlcygpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotI2lmbmRlZiBOREVCVUcKLSAgICBW
OEdDQ29udHJvbGxlcjo6cmVnaXN0ZXJHbG9iYWxIYW5kbGUoUFJPWFksIHRoaXMsIG1fd3JhcHBl
ckJvaWxlcnBsYXRlcyk7Ci0jZW5kaWYKIAogICAgIGlmICghaW5zdGFsbERPTVdpbmRvdyh2OENv
bnRleHQsIG1fZnJhbWUtPmRvbVdpbmRvdygpKSkKICAgICAgICAgZGlzcG9zZUNvbnRleHRIYW5k
bGVzKCk7CkBAIC01MzQsMTMgKzUxNSwxMiBAQAogdjg6OkxvY2FsPHY4OjpPYmplY3Q+IFY4RE9N
V2luZG93U2hlbGw6OmNyZWF0ZVdyYXBwZXJGcm9tQ2FjaGVTbG93Q2FzZShXcmFwcGVyVHlwZUlu
Zm8qIHR5cGUpCiB7CiAgICAgLy8gTm90IGluIGNhY2hlLgotICAgIGludCBjbGFzc0luZGV4ID0g
dHlwZS0+aW5kZXg7CiAgICAgaW5pdENvbnRleHRJZk5lZWRlZCgpOwogICAgIHY4OjpDb250ZXh0
OjpTY29wZSBzY29wZShtX2NvbnRleHQpOwogICAgIHY4OjpMb2NhbDx2ODo6RnVuY3Rpb24+IGZ1
bmN0aW9uID0gVjhET01XcmFwcGVyOjpnZXRDb25zdHJ1Y3Rvcih0eXBlLCBnZXRIaWRkZW5PYmpl
Y3RQcm90b3R5cGUobV9jb250ZXh0KSk7CiAgICAgdjg6OkxvY2FsPHY4OjpPYmplY3Q+IGluc3Rh
bmNlID0gU2FmZUFsbG9jYXRpb246Om5ld0luc3RhbmNlKGZ1bmN0aW9uKTsKICAgICBpZiAoIWlu
c3RhbmNlLklzRW1wdHkoKSkgewotICAgICAgICBtX3dyYXBwZXJCb2lsZXJwbGF0ZXMtPlNldCh2
ODo6SW50ZWdlcjo6TmV3KGNsYXNzSW5kZXgpLCBpbnN0YW5jZSk7CisgICAgICAgIG1fd3JhcHBl
ckJvaWxlcnBsYXRlcy5zZXQodHlwZSwgdjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD46Ok5ldyhp
bnN0YW5jZSkpOwogICAgICAgICByZXR1cm4gaW5zdGFuY2UtPkNsb25lKCk7CiAgICAgfQogICAg
IHJldHVybiBub3RIYW5kbGVkQnlJbnRlcmNlcHRvcigpOwpJbmRleDogV2ViQ29yZS9iaW5kaW5n
cy92OC9OUFY4T2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3Y4L05Q
VjhPYmplY3QuY3BwCShyZXZpc2lvbiA1NjEzMSkKKysrIFdlYkNvcmUvYmluZGluZ3MvdjgvTlBW
OE9iamVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM2LDkgKzM2LDkgQEAKICNpbmNsdWRlICJT
Y3JpcHRDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiVjhHQ0NvbnRyb2xsZXIuaCIKICNpbmNsdWRl
ICJWOEhlbHBlcnMuaCIKLSNpbmNsdWRlICJWOEluZGV4LmgiCiAjaW5jbHVkZSAiVjhOUFV0aWxz
LmgiCiAjaW5jbHVkZSAiVjhQcm94eS5oIgorI2luY2x1ZGUgIldyYXBwZXJUeXBlSW5mby5oIgog
I2luY2x1ZGUgIm5wcnVudGltZV9pbXBsLmgiCiAjaW5jbHVkZSAibnBydW50aW1lX3ByaXYuaCIK
IApAQCAtNTUsNyArNTUsNiBAQAogdXNpbmcgV2ViQ29yZTo6bnBPYmplY3RJbnRlcm5hbEZpZWxk
Q291bnQ7CiB1c2luZyBXZWJDb3JlOjp0b1Y4Q29udGV4dDsKIHVzaW5nIFdlYkNvcmU6OnRvVjhQ
cm94eTsKLXVzaW5nIFdlYkNvcmU6OlY4Q2xhc3NJbmRleDsKIHVzaW5nIFdlYkNvcmU6OlY4RE9N
V3JhcHBlcjsKIHVzaW5nIFdlYkNvcmU6OlY4R0NDb250cm9sbGVyOwogdXNpbmcgV2ViQ29yZTo6
VjhQcm94eTsKQEAgLTExNyw3ICsxMTYsNyBAQAogICAgIC8vIENoZWNrIHRvIHNlZSBpZiB0aGlz
IG9iamVjdCBpcyBhbHJlYWR5IHdyYXBwZWQuCiAgICAgaWYgKG9iamVjdC0+SW50ZXJuYWxGaWVs
ZENvdW50KCkgPT0gbnBPYmplY3RJbnRlcm5hbEZpZWxkQ291bnQpIHsKICAgICAgICAgV3JhcHBl
clR5cGVJbmZvKiB0eXBlSW5mbyA9IHN0YXRpY19jYXN0PFdyYXBwZXJUeXBlSW5mbyo+KG9iamVj
dC0+R2V0UG9pbnRlckZyb21JbnRlcm5hbEZpZWxkKFdlYkNvcmU6OnY4RE9NV3JhcHBlclR5cGVJ
bmRleCkpOwotICAgICAgICBpZiAodHlwZUluZm8tPmluZGV4ID09IFY4Q2xhc3NJbmRleDo6TlBP
QkpFQ1QpIHsKKyAgICAgICAgaWYgKHR5cGVJbmZvID09ICZXZWJDb3JlOjpucE9iamVjdFR5cGVJ
bmZvKSB7CiAKICAgICAgICAgICAgIE5QT2JqZWN0KiByZXR1cm5WYWx1ZSA9IHY4T2JqZWN0VG9O
UE9iamVjdChvYmplY3QpOwogICAgICAgICAgICAgX05QTl9SZXRhaW5PYmplY3QocmV0dXJuVmFs
dWUpOwpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy92OC9WOE5QT2JqZWN0LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4TlBPYmplY3QuY3BwCShyZXZpc2lvbiA1NjEzMSkK
KysrIFdlYkNvcmUvYmluZGluZ3MvdjgvVjhOUE9iamVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTU0LDggKzU0LDYgQEAKICAgICBJbnZva2VEZWZhdWx0ID0gMwogfTsKIAotc3RhdGljIFdyYXBw
ZXJUeXBlSW5mbyBucE9iamVjdFR5cGVJbmZvID0geyBWOENsYXNzSW5kZXg6OlRvSW50KFY4Q2xh
c3NJbmRleDo6TlBPQkpFQ1QpLCAwLCAwLCBmYWxzZSB9OwotCiAvLyBGSVhNRTogbmVlZCBjb21t
ZW50cy4KIC8vIFBhcmFtczogaG9sZGVyIGNvdWxkIGJlIEhUTUxFbWJlZEVsZW1lbnQgb3IgTlBP
YmplY3QKIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gbnBPYmplY3RJbnZva2VJbXBsKGNv
bnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MsIEludm9rZUZ1bmN0aW9uVHlwZSBmdW5jdGlvbklkKQpJ
bmRleDogV2ViQ29yZS9iaW5kaW5ncy92OC9WOEluZGV4LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9iaW5kaW5ncy92OC9WOEluZGV4LmgJKHJldmlzaW9uIDU2MTMxKQorKysgV2ViQ29yZS9iaW5k
aW5ncy92OC9WOEluZGV4LmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNzA4ICswLDAgQEAKLS8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMDkgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAq
Ci0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0gKiAgICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgotICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotICogaW4gdGhlIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogZGlz
dHJpYnV0aW9uLgotICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3Ig
dGhlIG5hbWVzIG9mIGl0cwotICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ug
b3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0aG91
dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwot
ICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9S
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLAotICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVm
IFY4SW5kZXhfaAotI2RlZmluZSBWOEluZGV4X2gKLQotI2luY2x1ZGUgPHY4Lmg+Ci0KLW5hbWVz
cGFjZSBXZWJDb3JlIHsKLQotc3RhdGljIGNvbnN0IGludCB2OERPTVdyYXBwZXJUeXBlSW5kZXgg
PSAwOwotc3RhdGljIGNvbnN0IGludCB2OERPTVdyYXBwZXJPYmplY3RJbmRleCA9IDE7Ci1zdGF0
aWMgY29uc3QgaW50IHY4RGVmYXVsdFdyYXBwZXJJbnRlcm5hbEZpZWxkQ291bnQgPSAyOwotCi0j
aWYgRU5BQkxFKERBVEFHUklEKQotI2RlZmluZSBEQVRBR1JJRF9IVE1MRUxFTUVOVF9UWVBFUyhW
KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoSFRNTERBVEFHUklE
Q0VMTEVMRU1FTlQsIEhUTUxEYXRhR3JpZENlbGxFbGVtZW50KSAgICAgICAgICAgICAgICAgXAot
ICAgIFYoSFRNTERBVEFHUklEQ09MRUxFTUVOVCwgSFRNTERhdGFHcmlkQ29sRWxlbWVudCkgICAg
ICAgICAgICAgICAgICAgXAotICAgIFYoSFRNTERBVEFHUklERUxFTUVOVCwgSFRNTERhdGFHcmlk
RWxlbWVudCkgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoSFRNTERBVEFHUklEUk9X
RUxFTUVOVCwgSFRNTERhdGFHcmlkUm93RWxlbWVudCkKLSNkZWZpbmUgREFUQUdSSURfTk9OTk9E
RV9UWVBFUyhWKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBW
KERBVEFHUklEQ09MVU1OLCBEYXRhR3JpZENvbHVtbikgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFwKLSAgICBWKERBVEFHUklEQ09MVU1OTElTVCwgRGF0YUdyaWRDb2x1bW5MaXN0
KQotI2Vsc2UKLSNkZWZpbmUgREFUQUdSSURfSFRNTEVMRU1FTlRfVFlQRVMoVikKLSNkZWZpbmUg
REFUQUdSSURfTk9OTk9ERV9UWVBFUyhWKQotI2VuZGlmCi0KLSNpZiBFTkFCTEUoVklERU8pCi0j
ZGVmaW5lIFZJREVPX0hUTUxFTEVNRU5UX1RZUEVTKFYpICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBcCi0gICAgVihBVURJTywgSFRNTEF1ZGlvRWxlbWVudENvbnN0cnVjdG9y
KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihIVE1MQVVESU9FTEVNRU5U
LCBIVE1MQXVkaW9FbGVtZW50KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAg
VihIVE1MTUVESUFFTEVNRU5ULCBIVE1MTWVkaWFFbGVtZW50KSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBcCi0gICAgVihIVE1MU09VUkNFRUxFTUVOVCwgSFRNTFNvdXJjZUVsZW1lbnQp
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihIVE1MVklERU9FTEVNRU5ULCBI
VE1MVmlkZW9FbGVtZW50KQotI2RlZmluZSBWSURFT19OT05OT0RFX1RZUEVTKFYpICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoTUVESUFFUlJPUiwgTWVk
aWFFcnJvcikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAg
IFYoVElNRVJBTkdFUywgVGltZVJhbmdlcykKLSNlbHNlCi0jZGVmaW5lIFZJREVPX0hUTUxFTEVN
RU5UX1RZUEVTKFYpCi0jZGVmaW5lIFZJREVPX05PTk5PREVfVFlQRVMoVikKLSNlbmRpZgotCi0j
aWYgRU5BQkxFKFdPUktFUlMpCi0jZGVmaW5lIFdPUktFUl9BQ1RJVkVfT0JKRUNUX1dSQVBQRVJf
VFlQRVMoVikgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihXT1JLRVIsIFdvcmtl
cikKLQotI2RlZmluZSBXT1JLRVJfTk9OTk9ERV9XUkFQUEVSX1RZUEVTKFYpICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoQUJTVFJBQ1RXT1JLRVIsIEFic3RyYWN0V29y
a2VyKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoREVESUNBVEVE
V09SS0VSQ09OVEVYVCwgRGVkaWNhdGVkV29ya2VyQ29udGV4dCkgICAgICAgICAgICAgICAgICAg
XAotICAgIFYoV09SS0VSQ09OVEVYVCwgV29ya2VyQ29udGV4dCkgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXAotICAgIFYoV09SS0VSTE9DQVRJT04sIFdvcmtlckxvY2F0aW9u
KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoV09SS0VSTkFWSUdB
VE9SLCBXb3JrZXJOYXZpZ2F0b3IpCi0jZWxzZQotI2RlZmluZSBXT1JLRVJfQUNUSVZFX09CSkVD
VF9XUkFQUEVSX1RZUEVTKFYpCi0jZGVmaW5lIFdPUktFUl9OT05OT0RFX1dSQVBQRVJfVFlQRVMo
VikKLSNlbmRpZgotCi0jaWYgRU5BQkxFKEVWRU5UU09VUkNFKQotI2RlZmluZSBFVkVOVFNPVVJD
RV9BQ1RJVkVfT0JKRUNUX1dSQVBQRVJfVFlQRVMoVikgICAgICAgICAgICAgICAgICAgICAgXAot
ICAgIFYoRVZFTlRTT1VSQ0UsIEV2ZW50U291cmNlKQotI2Vsc2UKLSNkZWZpbmUgRVZFTlRTT1VS
Q0VfQUNUSVZFX09CSkVDVF9XUkFQUEVSX1RZUEVTKFYpCi0jZW5kaWYKLQotI2lmIEVOQUJMRShP
RkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCi0jZGVmaW5lIEFQUExJQ0FUSU9OQ0FDSEVfTk9OTk9E
RV9XUkFQUEVSX1RZUEVTKFYpICAgICAgICAgICAgICAgICAgICAgICBcCi0gIFYoRE9NQVBQTElD
QVRJT05DQUNIRSwgRE9NQXBwbGljYXRpb25DYWNoZSkKLSNlbHNlCi0jZGVmaW5lIEFQUExJQ0FU
SU9OQ0FDSEVfTk9OTk9ERV9XUkFQUEVSX1RZUEVTKFYpCi0jZW5kaWYKLQotI2lmIEVOQUJMRShO
T1RJRklDQVRJT05TKQotI2RlZmluZSBOT1RJRklDQVRJT05TX05PTk5PREVfV1JBUFBFUl9UWVBF
UyhWKSAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoTk9USUZJQ0FUSU9OLCBOb3Rp
ZmljYXRpb24pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYo
Tk9USUZJQ0FUSU9OQ0VOVEVSLCBOb3RpZmljYXRpb25DZW50ZXIpCi0jZWxzZQotI2RlZmluZSBO
T1RJRklDQVRJT05TX05PTk5PREVfV1JBUFBFUl9UWVBFUyhWKQotI2VuZGlmCi0KLSNpZiBFTkFC
TEUoU0hBUkVEX1dPUktFUlMpCi0jZGVmaW5lIFNIQVJFRF9XT1JLRVJfQUNUSVZFX09CSkVDVF9X
UkFQUEVSX1RZUEVTKFYpICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihTSEFSRURXT1JLRVIs
IFNoYXJlZFdvcmtlcikKLQotI2RlZmluZSBTSEFSRURfV09SS0VSX05PTk5PREVfV1JBUFBFUl9U
WVBFUyhWKSAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoU0hBUkVEV09SS0VSQ09O
VEVYVCwgU2hhcmVkV29ya2VyQ29udGV4dCkKLSNlbHNlCi0jZGVmaW5lIFNIQVJFRF9XT1JLRVJf
QUNUSVZFX09CSkVDVF9XUkFQUEVSX1RZUEVTKFYpCi0jZGVmaW5lIFNIQVJFRF9XT1JLRVJfTk9O
Tk9ERV9XUkFQUEVSX1RZUEVTKFYpCi0jZW5kaWYKLQotI2RlZmluZSBET01fTk9ERV9UWVBFUyhW
KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYo
QVRUUiwgQXR0cikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXAotICAgIFYoQ0hBUkFDVEVSREFUQSwgQ2hhcmFjdGVyRGF0YSkgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoQ0RBVEFTRUNUSU9OLCBDREFUQVNl
Y3Rpb24pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoQ09N
TUVOVCwgQ29tbWVudCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgXAotICAgIFYoRE9DVU1FTlQsIERvY3VtZW50KSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoRE9DVU1FTlRGUkFHTUVOVCwgRG9jdW1l
bnRGcmFnbWVudCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoRE9DVU1F
TlRUWVBFLCBEb2N1bWVudFR5cGUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXAotICAgIFYoRUxFTUVOVCwgRWxlbWVudCkgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoRU5USVRZLCBFbnRpdHkpICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoRU5USVRZUkVG
RVJFTkNFLCBFbnRpdHlSZWZlcmVuY2UpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
XAotICAgIFYoSFRNTERPQ1VNRU5ULCBIVE1MRG9jdW1lbnQpICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXAotICAgIFYoSU1BR0UsIEhUTUxJbWFnZUVsZW1lbnRDb25zdHJ1
Y3RvcikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoTk9ERSwgTm9kZSkg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAot
ICAgIFYoT1BUSU9OLCBIVE1MT3B0aW9uRWxlbWVudENvbnN0cnVjdG9yKSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXAotICAgIFYoTk9UQVRJT04sIE5vdGF0aW9uKSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoUFJPQ0VTU0lOR0lOU1RS
VUNUSU9OLCBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24pICAgICAgICAgICAgICAgICAgICAgXAotICAg
IFYoVEVYVCwgVGV4dCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgXAotICAgIFYoSFRNTEFOQ0hPUkVMRU1FTlQsIEhUTUxBbmNob3JFbGVtZW50
KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoSFRNTEFQUExFVEVMRU1FTlQs
IEhUTUxBcHBsZXRFbGVtZW50KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYo
SFRNTEFSRUFFTEVNRU5ULCBIVE1MQXJlYUVsZW1lbnQpICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXAotICAgIFYoSFRNTEJBU0VFTEVNRU5ULCBIVE1MQmFzZUVsZW1lbnQpICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoSFRNTEJBU0VGT05URUxFTUVOVCwg
SFRNTEJhc2VGb250RWxlbWVudCkgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoSFRN
TEJMT0NLUVVPVEVFTEVNRU5ULCBIVE1MQmxvY2txdW90ZUVsZW1lbnQpICAgICAgICAgICAgICAg
ICAgICAgXAotICAgIFYoSFRNTEJPRFlFTEVNRU5ULCBIVE1MQm9keUVsZW1lbnQpICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoSFRNTEJSRUxFTUVOVCwgSFRNTEJSRWxl
bWVudCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoSFRNTEJV
VFRPTkVMRU1FTlQsIEhUTUxCdXR0b25FbGVtZW50KSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXAotICAgIFYoSFRNTENBTlZBU0VMRU1FTlQsIEhUTUxDYW52YXNFbGVtZW50KSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoSFRNTERJUkVDVE9SWUVMRU1FTlQsIEhUTUxE
aXJlY3RvcnlFbGVtZW50KSAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoSFRNTERJVkVM
RU1FTlQsIEhUTUxEaXZFbGVtZW50KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
XAotICAgIFYoSFRNTERMSVNURUxFTUVOVCwgSFRNTERMaXN0RWxlbWVudCkgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXAotICAgIFYoSFRNTEVNQkVERUxFTUVOVCwgSFRNTEVtYmVkRWxl
bWVudCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoSFRNTEZJRUxEU0VU
RUxFTUVOVCwgSFRNTEZpZWxkU2V0RWxlbWVudCkgICAgICAgICAgICAgICAgICAgICAgICAgXAot
ICAgIFYoSFRNTEZPTlRFTEVNRU5ULCBIVE1MRm9udEVsZW1lbnQpICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXAotICAgIFYoSFRNTEZPUk1FTEVNRU5ULCBIVE1MRm9ybUVsZW1lbnQp
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoSFRNTEZSQU1FRUxFTUVO
VCwgSFRNTEZyYW1lRWxlbWVudCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAg
IFYoSFRNTEZSQU1FU0VURUxFTUVOVCwgSFRNTEZyYW1lU2V0RWxlbWVudCkgICAgICAgICAgICAg
ICAgICAgICAgICAgXAotICAgIFYoSFRNTEhFQURJTkdFTEVNRU5ULCBIVE1MSGVhZGluZ0VsZW1l
bnQpICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoSFRNTEhFQURFTEVNRU5ULCBI
VE1MSGVhZEVsZW1lbnQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYo
SFRNTEhSRUxFTUVOVCwgSFRNTEhSRWxlbWVudCkgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXAotICAgIFYoSFRNTEhUTUxFTEVNRU5ULCBIVE1MSHRtbEVsZW1lbnQpICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoSFRNTElGUkFNRUVMRU1FTlQsIEhU
TUxJRnJhbWVFbGVtZW50KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoSFRN
TElNQUdFRUxFTUVOVCwgSFRNTEltYWdlRWxlbWVudCkgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgXAotICAgIFYoSFRNTElOUFVURUxFTUVOVCwgSFRNTElucHV0RWxlbWVudCkgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoSFRNTElTSU5ERVhFTEVNRU5ULCBIVE1M
SXNJbmRleEVsZW1lbnQpICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoSFRNTExB
QkVMRUxFTUVOVCwgSFRNTExhYmVsRWxlbWVudCkgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXAotICAgIFYoSFRNTExFR0VOREVMRU1FTlQsIEhUTUxMZWdlbmRFbGVtZW50KSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoSFRNTExJRUxFTUVOVCwgSFRNTExJRWxlbWVu
dCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoSFRNTExJTktF
TEVNRU5ULCBIVE1MTGlua0VsZW1lbnQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
XAotICAgIFYoSFRNTE1BUEVMRU1FTlQsIEhUTUxNYXBFbGVtZW50KSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXAotICAgIFYoSFRNTE1BUlFVRUVFTEVNRU5ULCBIVE1MTWFycXVl
ZUVsZW1lbnQpICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoSFRNTE1FTlVFTEVN
RU5ULCBIVE1MTWVudUVsZW1lbnQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAot
ICAgIFYoSFRNTE1FVEFFTEVNRU5ULCBIVE1MTWV0YUVsZW1lbnQpICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXAotICAgIFYoSFRNTE1PREVMRU1FTlQsIEhUTUxNb2RFbGVtZW50KSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoSFRNTE9CSkVDVEVMRU1F
TlQsIEhUTUxPYmplY3RFbGVtZW50KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAg
IFYoSFRNTE9MSVNURUxFTUVOVCwgSFRNTE9MaXN0RWxlbWVudCkgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgXAotICAgIFYoSFRNTE9QVEdST1VQRUxFTUVOVCwgSFRNTE9wdEdyb3VwRWxl
bWVudCkgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoSFRNTE9QVElPTkVMRU1FTlQs
IEhUTUxPcHRpb25FbGVtZW50KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYo
SFRNTFBBUkFHUkFQSEVMRU1FTlQsIEhUTUxQYXJhZ3JhcGhFbGVtZW50KSAgICAgICAgICAgICAg
ICAgICAgICAgXAotICAgIFYoSFRNTFBBUkFNRUxFTUVOVCwgSFRNTFBhcmFtRWxlbWVudCkgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoSFRNTFBSRUVMRU1FTlQsIEhUTUxQ
cmVFbGVtZW50KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoSFRN
TFFVT1RFRUxFTUVOVCwgSFRNTFF1b3RlRWxlbWVudCkgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgXAotICAgIFYoSFRNTFNDUklQVEVMRU1FTlQsIEhUTUxTY3JpcHRFbGVtZW50KSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoSFRNTFNFTEVDVEVMRU1FTlQsIEhUTUxT
ZWxlY3RFbGVtZW50KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoSFRNTFNU
WUxFRUxFTUVOVCwgSFRNTFN0eWxlRWxlbWVudCkgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXAotICAgIFYoSFRNTFRBQkxFQ0FQVElPTkVMRU1FTlQsIEhUTUxUYWJsZUNhcHRpb25FbGVt
ZW50KSAgICAgICAgICAgICAgICAgXAotICAgIFYoSFRNTFRBQkxFQ09MRUxFTUVOVCwgSFRNTFRh
YmxlQ29sRWxlbWVudCkgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoSFRNTFRBQkxF
RUxFTUVOVCwgSFRNTFRhYmxlRWxlbWVudCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
XAotICAgIFYoSFRNTFRBQkxFU0VDVElPTkVMRU1FTlQsIEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50
KSAgICAgICAgICAgICAgICAgXAotICAgIFYoSFRNTFRBQkxFQ0VMTEVMRU1FTlQsIEhUTUxUYWJs
ZUNlbGxFbGVtZW50KSAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoSFRNTFRBQkxFUk9X
RUxFTUVOVCwgSFRNTFRhYmxlUm93RWxlbWVudCkgICAgICAgICAgICAgICAgICAgICAgICAgXAot
ICAgIFYoSFRNTFRFWFRBUkVBRUxFTUVOVCwgSFRNTFRleHRBcmVhRWxlbWVudCkgICAgICAgICAg
ICAgICAgICAgICAgICAgXAotICAgIFYoSFRNTFRJVExFRUxFTUVOVCwgSFRNTFRpdGxlRWxlbWVu
dCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoSFRNTFVMSVNURUxFTUVO
VCwgSFRNTFVMaXN0RWxlbWVudCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAg
IFYoSFRNTEVMRU1FTlQsIEhUTUxFbGVtZW50KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgXAotICAgIERBVEFHUklEX0hUTUxFTEVNRU5UX1RZUEVTKFYpICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFZJREVPX0hUTUxFTEVNRU5UX1RZ
UEVTKFYpCi0KLSNpZiBFTkFCTEUoU1ZHX0FOSU1BVElPTikKLSNkZWZpbmUgU1ZHX0FOSU1BVElP
Tl9FTEVNRU5UX1RZUEVTKFYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAg
ICBWKFNWR0FOSU1BVEVDT0xPUkVMRU1FTlQsIFNWR0FuaW1hdGVDb2xvckVsZW1lbnQpICAgICAg
ICAgICAgICAgICAgIFwKLSAgICBWKFNWR0FOSU1BVEVFTEVNRU5ULCBTVkdBbmltYXRlRWxlbWVu
dCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKFNWR0FOSU1BVEVUUkFOU0ZP
Uk1FTEVNRU5ULCBTVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudCkgICAgICAgICAgIFwKLSAgICBW
KFNWR0FOSU1BVElPTkVMRU1FTlQsIFNWR0FuaW1hdGlvbkVsZW1lbnQpICAgICAgICAgICAgICAg
ICAgICAgICAgIFwKLSAgICBWKFNWR1NFVEVMRU1FTlQsIFNWR1NldEVsZW1lbnQpCi0jZWxzZQot
I2RlZmluZSBTVkdfQU5JTUFUSU9OX0VMRU1FTlRfVFlQRVMoVikKLSNlbmRpZgotCi0jaWYgRU5B
QkxFKFNWRykgJiYgRU5BQkxFKEZJTFRFUlMpCi0jZGVmaW5lIFNWR19GSUxURVJTX0VMRU1FTlRf
VFlQRVMoVikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihTVkdD
T01QT05FTlRUUkFOU0ZFUkZVTkNUSU9ORUxFTUVOVCwgU1ZHQ29tcG9uZW50VHJhbnNmZXJGdW5j
dGlvbkVsZW1lbnQpXAotICAgIFYoU1ZHRkVCTEVOREVMRU1FTlQsIFNWR0ZFQmxlbmRFbGVtZW50
KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoU1ZHRkVDT0xPUk1BVFJJWEVM
RU1FTlQsIFNWR0ZFQ29sb3JNYXRyaXhFbGVtZW50KSAgICAgICAgICAgICAgICAgXAotICAgIFYo
U1ZHRkVDT01QT05FTlRUUkFOU0ZFUkVMRU1FTlQsIFNWR0ZFQ29tcG9uZW50VHJhbnNmZXJFbGVt
ZW50KSAgICAgXAotICAgIFYoU1ZHRkVDT01QT1NJVEVFTEVNRU5ULCBTVkdGRUNvbXBvc2l0ZUVs
ZW1lbnQpICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoU1ZHRkVESUZGVVNFTElHSFRJTkdF
TEVNRU5ULCBTVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQpICAgICAgICAgXAotICAgIFYoU1ZH
RkVESVNQTEFDRU1FTlRNQVBFTEVNRU5ULCBTVkdGRURpc3BsYWNlbWVudE1hcEVsZW1lbnQpICAg
ICAgICAgXAotICAgIFYoU1ZHRkVESVNUQU5UTElHSFRFTEVNRU5ULCBTVkdGRURpc3RhbnRMaWdo
dEVsZW1lbnQpICAgICAgICAgICAgICAgXAotICAgIFYoU1ZHRkVGTE9PREVMRU1FTlQsIFNWR0ZF
Rmxvb2RFbGVtZW50KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoU1ZHRkVG
VU5DQUVMRU1FTlQsIFNWR0ZFRnVuY0FFbGVtZW50KSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXAotICAgIFYoU1ZHRkVGVU5DQkVMRU1FTlQsIFNWR0ZFRnVuY0JFbGVtZW50KSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoU1ZHRkVGVU5DR0VMRU1FTlQsIFNWR0ZFRnVu
Y0dFbGVtZW50KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoU1ZHRkVGVU5D
UkVMRU1FTlQsIFNWR0ZFRnVuY1JFbGVtZW50KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
XAotICAgIFYoU1ZHRkVHQVVTU0lBTkJMVVJFTEVNRU5ULCBTVkdGRUdhdXNzaWFuQmx1ckVsZW1l
bnQpICAgICAgICAgICAgICAgXAotICAgIFYoU1ZHRkVJTUFHRUVMRU1FTlQsIFNWR0ZFSW1hZ2VF
bGVtZW50KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoU1ZHRkVNRVJHRUVM
RU1FTlQsIFNWR0ZFTWVyZ2VFbGVtZW50KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAot
ICAgIFYoU1ZHRkVNRVJHRU5PREVFTEVNRU5ULCBTVkdGRU1lcmdlTm9kZUVsZW1lbnQpICAgICAg
ICAgICAgICAgICAgICAgXAotICAgIFYoU1ZHRkVNT1JQSE9MT0dZRUxFTUVOVCwgU1ZHRkVNb3Jw
aG9sb2d5RWxlbWVudCkgICAgICAgICAgICAgICAgICAgXAotICAgIFYoU1ZHRkVPRkZTRVRFTEVN
RU5ULCBTVkdGRU9mZnNldEVsZW1lbnQpICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAg
IFYoU1ZHRkVQT0lOVExJR0hURUxFTUVOVCwgU1ZHRkVQb2ludExpZ2h0RWxlbWVudCkgICAgICAg
ICAgICAgICAgICAgXAotICAgIFYoU1ZHRkVTUEVDVUxBUkxJR0hUSU5HRUxFTUVOVCwgU1ZHRkVT
cGVjdWxhckxpZ2h0aW5nRWxlbWVudCkgICAgICAgXAotICAgIFYoU1ZHRkVTUE9UTElHSFRFTEVN
RU5ULCBTVkdGRVNwb3RMaWdodEVsZW1lbnQpICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYo
U1ZHRkVUSUxFRUxFTUVOVCwgU1ZHRkVUaWxlRWxlbWVudCkgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXAotICAgIFYoU1ZHRkVUVVJCVUxFTkNFRUxFTUVOVCwgU1ZHRkVUdXJidWxlbmNl
RWxlbWVudCkgICAgICAgICAgICAgICAgICAgXAotICAgIFYoU1ZHRklMVEVSRUxFTUVOVCwgU1ZH
RmlsdGVyRWxlbWVudCkKLSNlbHNlCi0jZGVmaW5lIFNWR19GSUxURVJTX0VMRU1FTlRfVFlQRVMo
VikKLSNlbmRpZgotCi0jaWYgRU5BQkxFKFNWR19GT05UUykKLSNkZWZpbmUgU1ZHX0ZPTlRTX0VM
RU1FTlRfVFlQRVMoVikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAg
ICBWKFNWR0ZPTlRFTEVNRU5ULCBTVkdGb250RWxlbWVudCkgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFwKLSAgICBWKFNWR0ZPTlRGQUNFRUxFTUVOVCwgU1ZHRm9udEZhY2VFbGVt
ZW50KSAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKFNWR0ZPTlRGQUNFRk9STUFU
RUxFTUVOVCwgU1ZHRm9udEZhY2VGb3JtYXRFbGVtZW50KSAgICAgICAgICAgICAgIFwKLSAgICBW
KFNWR0ZPTlRGQUNFTkFNRUVMRU1FTlQsIFNWR0ZvbnRGYWNlTmFtZUVsZW1lbnQpICAgICAgICAg
ICAgICAgICAgIFwKLSAgICBWKFNWR0ZPTlRGQUNFU1JDRUxFTUVOVCwgU1ZHRm9udEZhY2VTcmNF
bGVtZW50KSAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKFNWR0ZPTlRGQUNFVVJJRUxFTUVO
VCwgU1ZHRm9udEZhY2VVcmlFbGVtZW50KSAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKFNW
R01JU1NJTkdHTFlQSEVMRU1FTlQsIFNWR01pc3NpbmdHbHlwaEVsZW1lbnQpCi0jZWxzZQotI2Rl
ZmluZSBTVkdfRk9OVFNfRUxFTUVOVF9UWVBFUyhWKQotI2VuZGlmCi0KLSNpZiBFTkFCTEUoU1ZH
X0ZPUkVJR05fT0JKRUNUKQotI2RlZmluZSBTVkdfRk9SRUlHTl9PQkpFQ1RfRUxFTUVOVF9UWVBF
UyhWKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoU1ZHRk9SRUlHTk9CSkVD
VEVMRU1FTlQsIFNWR0ZvcmVpZ25PYmplY3RFbGVtZW50KQotI2Vsc2UKLSNkZWZpbmUgU1ZHX0ZP
UkVJR05fT0JKRUNUX0VMRU1FTlRfVFlQRVMoVikKLSNlbmRpZgotCi0jaWYgRU5BQkxFKFNWR19V
U0UpCi0jZGVmaW5lIFNWR19VU0VfRUxFTUVOVF9UWVBFUyhWKSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihTVkdVU0VFTEVNRU5ULCBTVkdVc2VFbGVtZW50
KQotI2Vsc2UKLSNkZWZpbmUgU1ZHX1VTRV9FTEVNRU5UX1RZUEVTKFYpCi0jZW5kaWYKLQotI2lm
IEVOQUJMRShTVkcpCi0jZGVmaW5lIFNWR19OT0RFX1RZUEVTKFYpICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgU1ZHX0FOSU1BVElPTl9FTEVNRU5U
X1RZUEVTKFYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgU1ZH
X0ZJTFRFUlNfRUxFTUVOVF9UWVBFUyhWKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBcCi0gICAgU1ZHX0ZPTlRTX0VMRU1FTlRfVFlQRVMoVikgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgU1ZHX0ZPUkVJR05fT0JKRUNUX0VMRU1F
TlRfVFlQRVMoVikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgU1ZHX1VT
RV9FTEVNRU5UX1RZUEVTKFYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBcCi0gICAgVihTVkdBRUxFTUVOVCwgU1ZHQUVsZW1lbnQpICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihTVkdBTFRHTFlQSEVMRU1FTlQsIFNWR0Fs
dEdseXBoRWxlbWVudCkgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihTVkdDSVJD
TEVFTEVNRU5ULCBTVkdDaXJjbGVFbGVtZW50KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBcCi0gICAgVihTVkdDTElQUEFUSEVMRU1FTlQsIFNWR0NsaXBQYXRoRWxlbWVudCkgICAgICAg
ICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihTVkdDVVJTT1JFTEVNRU5ULCBTVkdDdXJzb3JF
bGVtZW50KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihTVkdERUZTRUxF
TUVOVCwgU1ZHRGVmc0VsZW1lbnQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc
Ci0gICAgVihTVkdERVNDRUxFTUVOVCwgU1ZHRGVzY0VsZW1lbnQpICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBcCi0gICAgVihTVkdFTExJUFNFRUxFTUVOVCwgU1ZHRWxsaXBzZUVs
ZW1lbnQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihTVkdHRUxFTUVOVCwg
U1ZHR0VsZW1lbnQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0g
ICAgVihTVkdHTFlQSEVMRU1FTlQsIFNWR0dseXBoRWxlbWVudCkgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBcCi0gICAgVihTVkdHUkFESUVOVEVMRU1FTlQsIFNWR0dyYWRpZW50RWxl
bWVudCkgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihTVkdJTUFHRUVMRU1FTlQs
IFNWR0ltYWdlRWxlbWVudCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAg
VihTVkdMSU5FQVJHUkFESUVOVEVMRU1FTlQsIFNWR0xpbmVhckdyYWRpZW50RWxlbWVudCkgICAg
ICAgICAgICAgICBcCi0gICAgVihTVkdMSU5FRUxFTUVOVCwgU1ZHTGluZUVsZW1lbnQpICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihTVkdNQVJLRVJFTEVNRU5ULCBT
VkdNYXJrZXJFbGVtZW50KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihT
VkdNQVNLRUxFTUVOVCwgU1ZHTWFza0VsZW1lbnQpICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBcCi0gICAgVihTVkdNRVRBREFUQUVMRU1FTlQsIFNWR01ldGFkYXRhRWxlbWVudCkg
ICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihTVkdQQVRIRUxFTUVOVCwgU1ZHUGF0
aEVsZW1lbnQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihTVkdQ
QVRURVJORUxFTUVOVCwgU1ZHUGF0dGVybkVsZW1lbnQpICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBcCi0gICAgVihTVkdQT0xZR09ORUxFTUVOVCwgU1ZHUG9seWdvbkVsZW1lbnQpICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihTVkdQT0xZTElORUVMRU1FTlQsIFNWR1Bv
bHlsaW5lRWxlbWVudCkgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihTVkdSQURJ
QUxHUkFESUVOVEVMRU1FTlQsIFNWR1JhZGlhbEdyYWRpZW50RWxlbWVudCkgICAgICAgICAgICAg
ICBcCi0gICAgVihTVkdSRUNURUxFTUVOVCwgU1ZHUmVjdEVsZW1lbnQpICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihTVkdTQ1JJUFRFTEVNRU5ULCBTVkdTY3JpcHRF
bGVtZW50KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihTVkdTVE9QRUxF
TUVOVCwgU1ZHU3RvcEVsZW1lbnQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc
Ci0gICAgVihTVkdTVFlMRUVMRU1FTlQsIFNWR1N0eWxlRWxlbWVudCkgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBcCi0gICAgVihTVkdTVkdFTEVNRU5ULCBTVkdTVkdFbGVtZW50KSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihTVkdTV0lUQ0hFTEVN
RU5ULCBTVkdTd2l0Y2hFbGVtZW50KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0g
ICAgVihTVkdTWU1CT0xFTEVNRU5ULCBTVkdTeW1ib2xFbGVtZW50KSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBcCi0gICAgVihTVkdURVhUQ09OVEVOVEVMRU1FTlQsIFNWR1RleHRDb250
ZW50RWxlbWVudCkgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihTVkdURVhURUxFTUVOVCwg
U1ZHVGV4dEVsZW1lbnQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAg
VihTVkdURVhUUEFUSEVMRU1FTlQsIFNWR1RleHRQYXRoRWxlbWVudCkgICAgICAgICAgICAgICAg
ICAgICAgICAgICBcCi0gICAgVihTVkdURVhUUE9TSVRJT05JTkdFTEVNRU5ULCBTVkdUZXh0UG9z
aXRpb25pbmdFbGVtZW50KSAgICAgICAgICAgICBcCi0gICAgVihTVkdUSVRMRUVMRU1FTlQsIFNW
R1RpdGxlRWxlbWVudCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihT
VkdUUkVGRUxFTUVOVCwgU1ZHVFJlZkVsZW1lbnQpICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBcCi0gICAgVihTVkdUU1BBTkVMRU1FTlQsIFNWR1RTcGFuRWxlbWVudCkgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihTVkdWSUVXRUxFTUVOVCwgU1ZHVmll
d0VsZW1lbnQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihTVkdF
TEVNRU5ULCBTVkdFbGVtZW50KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBcCi0gICAgVihTVkdET0NVTUVOVCwgU1ZHRG9jdW1lbnQpCi0jZW5kaWYgIC8vIFNWRwot
Ci0KLSNpZiBFTkFCTEUoV0VCX1NPQ0tFVFMpCi0jZGVmaW5lIFdFQlNPQ0tFVF9BQ1RJVkVfT0JK
RUNUX1dSQVBQRVJfVFlQRVMoVikgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihXRUJT
T0NLRVQsIFdlYlNvY2tldCkKLSNlbHNlCi0jZGVmaW5lIFdFQlNPQ0tFVF9BQ1RJVkVfT0JKRUNU
X1dSQVBQRVJfVFlQRVMoVikKLSNlbmRpZgotCi0vLyBBQ1RJVkVfRE9NX09CSkVDVF9UWVBFUyBh
cmUgRE9NX09CSkVDVF9UWVBFUyB0aGF0IG5lZWQgc3BlY2lhbCB0cmVhdGVtZW50Ci0vLyBkdXJp
bmcgR0MuCi0jZGVmaW5lIEFDVElWRV9ET01fT0JKRUNUX1RZUEVTKFYpICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihNRVNTQUdFUE9SVCwgTWVzc2FnZVBvcnQp
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihYTUxIVFRQ
UkVRVUVTVCwgWE1MSHR0cFJlcXVlc3QpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBcCi0gICAgV09SS0VSX0FDVElWRV9PQkpFQ1RfV1JBUFBFUl9UWVBFUyhWKSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBcCi0gICAgU0hBUkVEX1dPUktFUl9BQ1RJVkVfT0JKRUNUX1dS
QVBQRVJfVFlQRVMoVikgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgV0VCU09DS0VUX0FD
VElWRV9PQkpFQ1RfV1JBUFBFUl9UWVBFUyhWKSAgICAgICAgICAgICAgICAgICAgICAgICAgICBc
Ci0gICAgRVZFTlRTT1VSQ0VfQUNUSVZFX09CSkVDVF9XUkFQUEVSX1RZUEVTKFYpCi0KLS8vIE5P
VEU6IERPTV9PQkpFQ1RfVFlQRVMgaXMgc3BsaXQgaW50byB0d28gaGFsdmVzIGJlY2F1c2UKLS8v
ICAgICAgIFZpc3VhbCBTdHVkaW8ncyBJbnRlbGxpbm9uc2Vuc2UgY3Jhc2hlcyB3aGVuIG1hY3Jv
cyBnZXQKLS8vICAgICAgIHRvbyBsYXJnZS4gIDEwLTI5LTA4Ci0vLyBET01fT0JKRUNUX1RZUEVT
IGFyZSBub24tbm9kZSBET00gdHlwZXMuCi0jZGVmaW5lIERPTV9PQkpFQ1RfVFlQRVNfMShWKSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihCQVJJTkZP
LCBCYXJJbmZvKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBcCi0gICAgVihCRUZPUkVMT0FERVZFTlQsIEJlZm9yZUxvYWRFdmVudCkgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihCTE9CLCBCbG9iKSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihDQU5WQVNHUkFE
SUVOVCwgQ2FudmFzR3JhZGllbnQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc
Ci0gICAgVihDQU5WQVNQQVRURVJOLCBDYW52YXNQYXR0ZXJuKSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBcCi0gICAgVihDQU5WQVNSRU5ERVJJTkdDT05URVhULCBDYW52YXNS
ZW5kZXJpbmdDb250ZXh0KSAgICAgICAgICAgICAgICAgICBcCi0gICAgVihDQU5WQVNSRU5ERVJJ
TkdDT05URVhUMkQsIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCkgICAgICAgICAgICAgICBcCi0g
ICAgVihDTElFTlRSRUNULCBDbGllbnRSZWN0KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBcCi0gICAgVihDTElFTlRSRUNUTElTVCwgQ2xpZW50UmVjdExpc3QpICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihDTElQQk9BUkQsIENsaXBi
b2FyZCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAg
VihDT05TT0xFLCBDb25zb2xlKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBcCi0gICAgVihDT01QT1NJVElPTkVWRU5ULCBDb21wb3NpdGlvbkV2ZW50KSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihDT1VOVEVSLCBDb3VudGVyKSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihD
U1NDSEFSU0VUUlVMRSwgQ1NTQ2hhcnNldFJ1bGUpICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBcCi0gICAgVihDU1NGT05URkFDRVJVTEUsIENTU0ZvbnRGYWNlUnVsZSkgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihDU1NJTVBPUlRSVUxFLCBDU1NJbXBv
cnRSdWxlKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihDU1NN
RURJQVJVTEUsIENTU01lZGlhUnVsZSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBcCi0gICAgVihDU1NQQUdFUlVMRSwgQ1NTUGFnZVJ1bGUpICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihDU1NQUklNSVRJVkVWQUxVRSwgQ1NTUHJp
bWl0aXZlVmFsdWUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihDU1NSVUxF
LCBDU1NSdWxlKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBcCi0gICAgVihDU1NSVUxFTElTVCwgQ1NTUnVsZUxpc3QpICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihDU1NTVFlMRURFQ0xBUkFUSU9OLCBDU1NTdHls
ZURlY2xhcmF0aW9uKSAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihDU1NTVFlMRVJV
TEUsIENTU1N0eWxlUnVsZSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc
Ci0gICAgVihDU1NTVFlMRVNIRUVULCBDU1NTdHlsZVNoZWV0KSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBcCi0gICAgVihDU1NWQUxVRSwgQ1NTVmFsdWUpICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihDU1NWQUxVRUxJU1Qs
IENTU1ZhbHVlTGlzdCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0g
ICAgVihDU1NWQVJJQUJMRVNERUNMQVJBVElPTiwgQ1NTVmFyaWFibGVzRGVjbGFyYXRpb24pICAg
ICAgICAgICAgICAgICBcCi0gICAgVihDU1NWQVJJQUJMRVNSVUxFLCBDU1NWYXJpYWJsZXNSdWxl
KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihET01DT1JFRVhDRVBUSU9O
LCBET01Db3JlRXhjZXB0aW9uKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAg
VihET01GT1JNREFUQSwgRE9NRm9ybURhdGEpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBcCi0gICAgVihET01JTVBMRU1FTlRBVElPTiwgRE9NSW1wbGVtZW50YXRpb24p
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihET01QQVJTRVIsIERPTVBhcnNl
cikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihE
T01TRUxFQ1RJT04sIERPTVNlbGVjdGlvbikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBcCi0gICAgVihET01XSU5ET1csIERPTVdpbmRvdykgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihFVkVOVCwgRXZlbnQpICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihFVkVO
VEVYQ0VQVElPTiwgRXZlbnRFeGNlcHRpb24pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBcCi0gICAgVihGSUxFLCBGaWxlKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihGSUxFTElTVCwgRmlsZUxpc3QpICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihISVNUT1JZ
LCBIaXN0b3J5KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBcCi0gICAgVihIVE1MQUxMQ09MTEVDVElPTiwgSFRNTEFsbENvbGxlY3Rpb24pICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihIVE1MQ09MTEVDVElPTiwgSFRNTENvbGxlY3Rp
b24pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihIVE1MT1BUSU9O
U0NPTExFQ1RJT04sIEhUTUxPcHRpb25zQ29sbGVjdGlvbikgICAgICAgICAgICAgICAgICAgICBc
Ci0gICAgVihJTUFHRURBVEEsIEltYWdlRGF0YSkgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBcCi0gICAgVihDQU5WQVNQSVhFTEFSUkFZLCBDYW52YXNQaXhlbEFy
cmF5KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihLRVlCT0FSREVWRU5U
LCBLZXlib2FyZEV2ZW50KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0g
ICAgVihMT0NBVElPTiwgTG9jYXRpb24pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBcCi0gICAgVihNRURJQSwgTWVkaWEpICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihNRURJQUxJU1QsIE1lZGlh
TGlzdCkKLQotI2RlZmluZSBET01fT0JKRUNUX1RZUEVTXzIoVikgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoTUVTU0FHRUNIQU5ORUwsIE1lc3NhZ2VD
aGFubmVsKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoTUVTU0FH
RUVWRU5ULCBNZXNzYWdlRXZlbnQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXAotICAgIFYoTUlNRVRZUEUsIE1pbWVUeXBlKSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoTUlNRVRZUEVBUlJBWSwgTWltZVR5cGVBcnJh
eSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoTU9VU0VFVkVO
VCwgTW91c2VFdmVudCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
XAotICAgIFYoTVVUQVRJT05FVkVOVCwgTXV0YXRpb25FdmVudCkgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXAotICAgIFYoTkFNRUROT0RFTUFQLCBOYW1lZE5vZGVNYXApICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoTkFWSUdBVE9SLCBO
YXZpZ2F0b3IpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAot
ICAgIFYoTk9ERUZJTFRFUiwgTm9kZUZpbHRlcikgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXAotICAgIFYoTk9ERUlURVJBVE9SLCBOb2RlSXRlcmF0b3IpICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoTk9ERUxJU1QsIE5vZGVM
aXN0KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAg
IFYoT1ZFUkZMT1dFVkVOVCwgT3ZlcmZsb3dFdmVudCkgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgXAotICAgIFYoUEFHRVRSQU5TSVRJT05FVkVOVCwgUGFnZVRyYW5zaXRpb25F
dmVudCkgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoUExVR0lOLCBQbHVnaW4pICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYo
UExVR0lOQVJSQVksIFBsdWdpbkFycmF5KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXAotICAgIFYoUE9QU1RBVEVFVkVOVCwgUG9wU3RhdGVFdmVudCkgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoUFJPR1JFU1NFVkVOVCwgUHJvZ3Jl
c3NFdmVudCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoUkFO
R0UsIFJhbmdlKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgXAotICAgIFYoUkFOR0VFWENFUFRJT04sIFJhbmdlRXhjZXB0aW9uKSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoUkVDVCwgUmVjdCkgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoUkdCQ09M
T1IsIFJHQkNvbG9yKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXAotICAgIFYoU0NSRUVOLCBTY3JlZW4pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoU1RZTEVTSEVFVCwgU3R5bGVTaGVldCkgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoU1RZTEVTSEVF
VExJU1QsIFN0eWxlU2hlZXRMaXN0KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
XAotICAgIFYoVEVYVEVWRU5ULCBUZXh0RXZlbnQpICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXAotICAgIFYoVEVYVE1FVFJJQ1MsIFRleHRNZXRyaWNzKSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoVFJFRVdBTEtFUiwg
VHJlZVdhbGtlcikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAot
ICAgIFYoVUlFVkVOVCwgVUlFdmVudCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXAotICAgIFYoVkFMSURJVFlTVEFURSwgVmFsaWRpdHlTdGF0ZSkgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoV0VCS0lUQU5JTUFUSU9O
RVZFTlQsIFdlYktpdEFuaW1hdGlvbkV2ZW50KSAgICAgICAgICAgICAgICAgICAgICAgXAotICAg
IFYoV0VCS0lUQ1NTS0VZRlJBTUVSVUxFLCBXZWJLaXRDU1NLZXlmcmFtZVJ1bGUpICAgICAgICAg
ICAgICAgICAgICAgXAotICAgIFYoV0VCS0lUQ1NTS0VZRlJBTUVTUlVMRSwgV2ViS2l0Q1NTS2V5
ZnJhbWVzUnVsZSkgICAgICAgICAgICAgICAgICAgXAotICAgIFYoV0VCS0lUQ1NTTUFUUklYLCBX
ZWJLaXRDU1NNYXRyaXgpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYo
V0VCS0lUUE9JTlQsIFdlYktpdFBvaW50KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXAotICAgIFYoV0VCS0lUQ1NTVFJBTlNGT1JNVkFMVUUsIFdlYktpdENTU1RyYW5z
Zm9ybVZhbHVlKSAgICAgICAgICAgICAgICAgXAotICAgIFYoV0VCS0lUVFJBTlNJVElPTkVWRU5U
LCBXZWJLaXRUcmFuc2l0aW9uRXZlbnQpICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoV0hF
RUxFVkVOVCwgV2hlZWxFdmVudCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgXAotICAgIFYoWE1MSFRUUFJFUVVFU1RVUExPQUQsIFhNTEh0dHBSZXF1ZXN0VXBsb2Fk
KSAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoWE1MSFRUUFJFUVVFU1RFWENFUFRJT04s
IFhNTEh0dHBSZXF1ZXN0RXhjZXB0aW9uKSAgICAgICAgICAgICAgICAgXAotICAgIFYoWE1MSFRU
UFJFUVVFU1RQUk9HUkVTU0VWRU5ULCBYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQpICAgICAg
ICAgXAotICAgIFYoWE1MU0VSSUFMSVpFUiwgWE1MU2VyaWFsaXplcikgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgXAotICAgIEFDVElWRV9ET01fT0JKRUNUX1RZUEVTKFYpICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIEFQUExJQ0FUSU9O
Q0FDSEVfTk9OTk9ERV9XUkFQUEVSX1RZUEVTKFYpICAgICAgICAgICAgICAgICAgICAgICAgICAg
XAotICAgIERBVEFHUklEX05PTk5PREVfVFlQRVMoVikgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXAotICAgIFZJREVPX05PTk5PREVfVFlQRVMoVikgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIE5PVElGSUNBVElPTlNf
Tk9OTk9ERV9XUkFQUEVSX1RZUEVTKFYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAot
ICAgIFNIQVJFRF9XT1JLRVJfTk9OTk9ERV9XUkFQUEVSX1RZUEVTKFYpICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXAotICAgIFdPUktFUl9OT05OT0RFX1dSQVBQRVJfVFlQRVMoVikKLQot
I2lmIEVOQUJMRShEQVRBQkFTRSkKLSNkZWZpbmUgRE9NX09CSkVDVF9EQVRBQkFTRV9UWVBFUyhW
KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKERBVEFCQVNFLCBE
YXRhYmFzZSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK
LSAgICBWKFNRTEVSUk9SLCBTUUxFcnJvcikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFwKLSAgICBWKFNRTFJFU1VMVFNFVCwgU1FMUmVzdWx0U2V0KSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKFNRTFJFU1VMVFNFVFJP
V0xJU1QsIFNRTFJlc3VsdFNldFJvd0xpc3QpICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAg
ICBWKFNRTFRSQU5TQUNUSU9OLCBTUUxUcmFuc2FjdGlvbikKLSNlbHNlCi0jZGVmaW5lIERPTV9P
QkpFQ1RfREFUQUJBU0VfVFlQRVMoVikKLSNlbmRpZgotCi0jaWYgRU5BQkxFKERPTV9TVE9SQUdF
KQotI2RlZmluZSBET01fT0JKRUNUX1NUT1JBR0VfVFlQRVMoVikgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXAotICAgIFYoU1RPUkFHRSwgU3RvcmFnZSkgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoU1RPUkFHRUVWRU5U
LCBTdG9yYWdlRXZlbnQpCi0jZWxzZQotI2RlZmluZSBET01fT0JKRUNUX1NUT1JBR0VfVFlQRVMo
VikKLSNlbmRpZgotCi0jaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCi0jZGVmaW5lIERPTV9P
QkpFQ1RfSU5ERVhFRF9EQVRBQkFTRV9UWVBFUyhWKSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBcCi0gICAgVihJREJEQVRBQkFTRUVSUk9SLCBJREJEYXRhYmFzZUVycm9yKSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihJREJEQVRBQkFTRUVYQ0VQVElPTiwgSURCRGF0
YWJhc2VFeGNlcHRpb24pICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihJREJEQVRBQkFT
RVJFUVVFU1QsIElEQkRhdGFiYXNlUmVxdWVzdCkgICAgICAgICAgICAgICAgICAgICAgICAgICBc
Ci0gICAgVihJREJSRVFVRVNULCBJREJSZXF1ZXN0KSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBcCi0gICAgVihJTkRFWEVEREFUQUJBU0VSRVFVRVNULCBJbmRleGVk
RGF0YWJhc2VSZXF1ZXN0KQotI2Vsc2UKLSNkZWZpbmUgRE9NX09CSkVDVF9JTkRFWEVEX0RBVEFC
QVNFX1RZUEVTKFYpCi0jZW5kaWYKLQotI2lmIEVOQUJMRShXT1JLRVJTKQotI2RlZmluZSBET01f
T0JKRUNUX1dPUktFUlNfVFlQRVMoVikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXAotICAgIFYoRVJST1JFVkVOVCwgRXJyb3JFdmVudCkKLSNlbHNlCi0jZGVmaW5lIERPTV9P
QkpFQ1RfV09SS0VSU19UWVBFUyhWKQotI2VuZGlmCi0KLSNpZiBFTkFCTEUoM0RfQ0FOVkFTKQot
I2RlZmluZSBET01fT0JKRUNUXzNEX0NBTlZBU19UWVBFUyhWKSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXAotICAgIFYoV0VCR0xBQ1RJVkVJTkZPLCBXZWJHTEFjdGl2ZUluZm8p
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoV0VCR0xBUlJBWSwgV2Vi
R0xBcnJheSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAg
IFYoV0VCR0xBUlJBWUJVRkZFUiwgV2ViR0xBcnJheUJ1ZmZlcikgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgXAotICAgIFYoV0VCR0xCVUZGRVIsIFdlYkdMQnVmZmVyKSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoV0VCR0xCWVRFQVJSQVksIFdl
YkdMQnl0ZUFycmF5KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYo
V0VCR0xDT05URVhUQVRUUklCVVRFUywgV2ViR0xDb250ZXh0QXR0cmlidXRlcykgICAgICAgICAg
ICAgICAgICAgXAotICAgIFYoV0VCR0xGTE9BVEFSUkFZLCBXZWJHTEZsb2F0QXJyYXkpICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoV0VCR0xGUkFNRUJVRkZFUiwgV2Vi
R0xGcmFtZWJ1ZmZlcikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoV0VC
R0xJTlRBUlJBWSwgV2ViR0xJbnRBcnJheSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgXAotICAgIFYoV0VCR0xQUk9HUkFNLCBXZWJHTFByb2dyYW0pICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoV0VCR0xSRU5ERVJCVUZGRVIsIFdlYkdM
UmVuZGVyYnVmZmVyKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoV0VCR0xS
RU5ERVJJTkdDT05URVhULCBXZWJHTFJlbmRlcmluZ0NvbnRleHQpICAgICAgICAgICAgICAgICAg
ICAgXAotICAgIFYoV0VCR0xTSEFERVIsIFdlYkdMU2hhZGVyKSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoV0VCR0xTSE9SVEFSUkFZLCBXZWJHTFNob3J0
QXJyYXkpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoV0VCR0xURVhU
VVJFLCBXZWJHTFRleHR1cmUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
XAotICAgIFYoV0VCR0xVTklGT1JNTE9DQVRJT04sIFdlYkdMVW5pZm9ybUxvY2F0aW9uKSAgICAg
ICAgICAgICAgICAgICAgICAgXAotICAgIFYoV0VCR0xVTlNJR05FREJZVEVBUlJBWSwgV2ViR0xV
bnNpZ25lZEJ5dGVBcnJheSkgICAgICAgICAgICAgICAgICAgXAotICAgIFYoV0VCR0xVTlNJR05F
RElOVEFSUkFZLCBXZWJHTFVuc2lnbmVkSW50QXJyYXkpICAgICAgICAgICAgICAgICAgICAgXAot
ICAgIFYoV0VCR0xVTlNJR05FRFNIT1JUQVJSQVksIFdlYkdMVW5zaWduZWRTaG9ydEFycmF5KQot
I2Vsc2UKLSNkZWZpbmUgRE9NX09CSkVDVF8zRF9DQU5WQVNfVFlQRVMoVikKLSNlbmRpZgotCi0j
aWYgRU5BQkxFKFhQQVRIKQotI2RlZmluZSBET01fT0JKRUNUX1hQQVRIX1RZUEVTKFYpICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoWFBBVEhFVkFMVUFUT1Is
IFhQYXRoRXZhbHVhdG9yKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAg
IFYoWFBBVEhFWENFUFRJT04sIFhQYXRoRXhjZXB0aW9uKSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgXAotICAgIFYoWFBBVEhFWFBSRVNTSU9OLCBYUGF0aEV4cHJlc3Npb24pICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoWFBBVEhOU1JFU09MVkVSLCBY
UGF0aE5TUmVzb2x2ZXIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYo
WFBBVEhSRVNVTFQsIFhQYXRoUmVzdWx0KQotI2Vsc2UKLSNkZWZpbmUgRE9NX09CSkVDVF9YUEFU
SF9UWVBFUyhWKQotI2VuZGlmCi0KLSNpZiBFTkFCTEUoWFNMVCkKLSNkZWZpbmUgRE9NX09CSkVD
VF9YU0xUX1RZUEVTKFYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK
LSAgICBWKFhTTFRQUk9DRVNTT1IsIFhTTFRQcm9jZXNzb3IpCi0jZWxzZQotI2RlZmluZSBET01f
T0JKRUNUX1hTTFRfVFlQRVMoVikKLSNlbmRpZgotCi0jaWYgRU5BQkxFKElOU1BFQ1RPUikKLSNk
ZWZpbmUgRE9NX09CSkVDVF9JTlNQRUNUT1JfVFlQRVMoVikgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFwKLSAgICBWKElOU1BFQ1RPUkJBQ0tFTkQsIEluc3BlY3RvckJhY2tlbmQp
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKElOU1BFQ1RPUkZST05URU5E
SE9TVCwgSW5zcGVjdG9yRnJvbnRlbmRIb3N0KSAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBW
KElOSkVDVEVEU0NSSVBUSE9TVCwgSW5qZWN0ZWRTY3JpcHRIb3N0KQotI2Vsc2UKLSNkZWZpbmUg
RE9NX09CSkVDVF9JTlNQRUNUT1JfVFlQRVMoVikKLSNlbmRpZgotCi0jZGVmaW5lIERPTV9PQkpF
Q1RfR0VPTE9DQVRJT05fVFlQRVMoVikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc
Ci0gICAgVihDT09SRElOQVRFUywgQ29vcmRpbmF0ZXMpICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBcCi0gICAgVihHRU9MT0NBVElPTiwgR2VvbG9jYXRpb24pICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihHRU9QT1NJVElPTiwg
R2VvcG9zaXRpb24pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0g
ICAgVihQT1NJVElPTkVSUk9SLCBQb3NpdGlvbkVycm9yKQotCi0jaWYgRU5BQkxFKFRPVUNIX0VW
RU5UUykKLSNkZWZpbmUgRE9NX09CSkVDVF9UT1VDSF9FVkVOVF9UWVBFUyhWKSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKFRPVUNILCBUb3VjaCkgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKFRPVUNIRVZF
TlQsIFRvdWNoRXZlbnQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFwKLSAgICBWKFRPVUNITElTVCwgVG91Y2hMaXN0KQotI2Vsc2UKLSNkZWZpbmUgRE9NX09CSkVD
VF9UT1VDSF9FVkVOVF9UWVBFUyhWKQotI2VuZGlmCi0KLSNkZWZpbmUgRE9NX09CSkVDVF9UWVBF
UyhWKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBE
T01fT0JKRUNUX1RZUEVTXzEoVikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFwKLSAgICBET01fT0JKRUNUX1RZUEVTXzIoVikgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBET01fT0JKRUNUX0RBVEFCQVNFX1RZ
UEVTKFYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBET01f
T0JKRUNUX1NUT1JBR0VfVFlQRVMoVikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFwKLSAgICBET01fT0JKRUNUX0lOREVYRURfREFUQUJBU0VfVFlQRVMoVikgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBET01fT0JKRUNUX1dPUktFUlNfVFlQRVMo
VikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBET01fT0JK
RUNUXzNEX0NBTlZBU19UWVBFUyhWKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFwKLSAgICBET01fT0JKRUNUX1hQQVRIX1RZUEVTKFYpICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBET01fT0JKRUNUX1hTTFRfVFlQRVMoVikgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBET01fT0JKRUNU
X0lOU1BFQ1RPUl9UWVBFUyhWKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFwKLSAgICBET01fT0JKRUNUX0dFT0xPQ0FUSU9OX1RZUEVTKFYpICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFwKLSAgICBET01fT0JKRUNUX1RPVUNIX0VWRU5UX1RZUEVTKFYp
Ci0KLSNpZiBFTkFCTEUoU1ZHKQotLy8gU1ZHX09CSkVDVF9UWVBFUyBhcmUgc3ZnIG5vbi1ub2Rl
LCBub24tcG9kIHR5cGVzLgotI2RlZmluZSBTVkdfT0JKRUNUX1RZUEVTKFYpICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoU1ZHQU5JTUFURURBTkdM
RSwgU1ZHQW5pbWF0ZWRBbmdsZSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAg
IFYoU1ZHQU5JTUFURURCT09MRUFOLCBTVkdBbmltYXRlZEJvb2xlYW4pICAgICAgICAgICAgICAg
ICAgICAgICAgICAgXAotICAgIFYoU1ZHQU5JTUFURURFTlVNRVJBVElPTiwgU1ZHQW5pbWF0ZWRF
bnVtZXJhdGlvbikgICAgICAgICAgICAgICAgICAgXAotICAgIFYoU1ZHQU5JTUFURURJTlRFR0VS
LCBTVkdBbmltYXRlZEludGVnZXIpICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYo
U1ZHQU5JTUFURURMRU5HVEgsIFNWR0FuaW1hdGVkTGVuZ3RoKSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXAotICAgIFYoU1ZHQU5JTUFURURMRU5HVEhMSVNULCBTVkdBbmltYXRlZExlbmd0
aExpc3QpICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoU1ZHQU5JTUFURUROVU1CRVIsIFNW
R0FuaW1hdGVkTnVtYmVyKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoU1ZH
QU5JTUFURUROVU1CRVJMSVNULCBTVkdBbmltYXRlZE51bWJlckxpc3QpICAgICAgICAgICAgICAg
ICAgICAgXAotICAgIFYoU1ZHQU5JTUFURURQUkVTRVJWRUFTUEVDVFJBVElPLCBTVkdBbmltYXRl
ZFByZXNlcnZlQXNwZWN0UmF0aW8pICAgXAotICAgIFYoU1ZHQU5JTUFURURSRUNULCBTVkdBbmlt
YXRlZFJlY3QpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoU1ZHQU5J
TUFURURTVFJJTkcsIFNWR0FuaW1hdGVkU3RyaW5nKSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXAotICAgIFYoU1ZHQU5JTUFURURUUkFOU0ZPUk1MSVNULCBTVkdBbmltYXRlZFRyYW5zZm9y
bUxpc3QpICAgICAgICAgICAgICAgXAotICAgIFYoU1ZHQ09MT1IsIFNWR0NvbG9yKSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoU1ZHRUxFTUVO
VElOU1RBTkNFLCBTVkdFbGVtZW50SW5zdGFuY2UpICAgICAgICAgICAgICAgICAgICAgICAgICAg
XAotICAgIFYoU1ZHRUxFTUVOVElOU1RBTkNFTElTVCwgU1ZHRWxlbWVudEluc3RhbmNlTGlzdCkg
ICAgICAgICAgICAgICAgICAgXAotICAgIFYoU1ZHRVhDRVBUSU9OLCBTVkdFeGNlcHRpb24pICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoU1ZHTEVOR1RITElT
VCwgU1ZHTGVuZ3RoTGlzdCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAot
ICAgIFYoU1ZHTlVNQkVSTElTVCwgU1ZHTnVtYmVyTGlzdCkgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXAotICAgIFYoU1ZHUEFJTlQsIFNWR1BhaW50KSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoU1ZHUEFUSFNFRywgU1ZH
UGF0aFNlZykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAg
IFYoU1ZHUEFUSFNFR0FSQ0FCUywgU1ZHUGF0aFNlZ0FyY0FicykgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgXAotICAgIFYoU1ZHUEFUSFNFR0FSQ1JFTCwgU1ZHUGF0aFNlZ0FyY1JlbCkg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoU1ZHUEFUSFNFR0NMT1NFUEFU
SCwgU1ZHUGF0aFNlZ0Nsb3NlUGF0aCkgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYo
U1ZHUEFUSFNFR0NVUlZFVE9DVUJJQ0FCUywgU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY0FicykgICAg
ICAgICAgICAgXAotICAgIFYoU1ZHUEFUSFNFR0NVUlZFVE9DVUJJQ1JFTCwgU1ZHUGF0aFNlZ0N1
cnZldG9DdWJpY1JlbCkgICAgICAgICAgICAgXAotICAgIFYoU1ZHUEFUSFNFR0NVUlZFVE9DVUJJ
Q1NNT09USEFCUywgU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aEFicykgXAotICAgIFYoU1ZH
UEFUSFNFR0NVUlZFVE9DVUJJQ1NNT09USFJFTCwgU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290
aFJlbCkgXAotICAgIFYoU1ZHUEFUSFNFR0NVUlZFVE9RVUFEUkFUSUNBQlMsIFNWR1BhdGhTZWdD
dXJ2ZXRvUXVhZHJhdGljQWJzKSAgICAgXAotICAgIFYoU1ZHUEFUSFNFR0NVUlZFVE9RVUFEUkFU
SUNSRUwsIFNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljUmVsKSAgICAgXAotICAgIFYoU1ZHUEFU
SFNFR0NVUlZFVE9RVUFEUkFUSUNTTU9PVEhBQlMsIFNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGlj
U21vb3RoQWJzKVwKLSAgICBWKFNWR1BBVEhTRUdDVVJWRVRPUVVBRFJBVElDU01PT1RIUkVMLCBT
VkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Ntb290aFJlbClcCi0gICAgVihTVkdQQVRIU0VHTElO
RVRPQUJTLCBTVkdQYXRoU2VnTGluZXRvQWJzKSAgICAgICAgICAgICAgICAgICAgICAgICBcCi0g
ICAgVihTVkdQQVRIU0VHTElORVRPSE9SSVpPTlRBTEFCUywgU1ZHUGF0aFNlZ0xpbmV0b0hvcml6
b250YWxBYnMpICAgICBcCi0gICAgVihTVkdQQVRIU0VHTElORVRPSE9SSVpPTlRBTFJFTCwgU1ZH
UGF0aFNlZ0xpbmV0b0hvcml6b250YWxSZWwpICAgICBcCi0gICAgVihTVkdQQVRIU0VHTElORVRP
UkVMLCBTVkdQYXRoU2VnTGluZXRvUmVsKSAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAg
VihTVkdQQVRIU0VHTElORVRPVkVSVElDQUxBQlMsIFNWR1BhdGhTZWdMaW5ldG9WZXJ0aWNhbEFi
cykgICAgICAgICBcCi0gICAgVihTVkdQQVRIU0VHTElORVRPVkVSVElDQUxSRUwsIFNWR1BhdGhT
ZWdMaW5ldG9WZXJ0aWNhbFJlbCkgICAgICAgICBcCi0gICAgVihTVkdQQVRIU0VHTElTVCwgU1ZH
UGF0aFNlZ0xpc3QpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihT
VkdQQVRIU0VHTU9WRVRPQUJTLCBTVkdQYXRoU2VnTW92ZXRvQWJzKSAgICAgICAgICAgICAgICAg
ICAgICAgICBcCi0gICAgVihTVkdQQVRIU0VHTU9WRVRPUkVMLCBTVkdQYXRoU2VnTW92ZXRvUmVs
KSAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihTVkdQT0lOVExJU1QsIFNWR1BvaW50
TGlzdCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihTVkdS
RU5ERVJJTkdJTlRFTlQsIFNWR1JlbmRlcmluZ0ludGVudCkgICAgICAgICAgICAgICAgICAgICAg
ICAgICBcCi0gICAgVihTVkdTVFJJTkdMSVNULCBTVkdTdHJpbmdMaXN0KSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihTVkdUUkFOU0ZPUk1MSVNULCBTVkdUcmFu
c2Zvcm1MaXN0KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgVihTVkdVTklU
VFlQRVMsIFNWR1VuaXRUeXBlcykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBcCi0gICAgVihTVkdaT09NRVZFTlQsIFNWR1pvb21FdmVudCkKLQotLy8gU1ZHIFBPRCB0eXBl
cyBzaG91bGQgbGlzdCBhbGwgdHlwZXMgd2hvc2UgSURMIGhhcyBQT0RUeXBlIGRlY2xhcmF0aW9u
LgotI2RlZmluZSBTVkdfUE9EX1RZUEVTKFYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXAotICAgIFYoU1ZHQU5HTEUsIFNWR0FuZ2xlKSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoU1ZHTEVOR1RILCBT
VkdMZW5ndGgpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAot
ICAgIFYoU1ZHUFJFU0VSVkVBU1BFQ1RSQVRJTywgU1ZHUHJlc2VydmVBc3BlY3RSYXRpbykgICAg
ICAgICAgICAgICAgICAgXAotICAgIFYoU1ZHVFJBTlNGT1JNLCBTVkdUcmFuc2Zvcm0pICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoU1ZHTUFUUklYLCBTVkdN
YXRyaXgpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAg
IFYoU1ZHTlVNQkVSLCBTVkdOdW1iZXIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgXAotICAgIFYoU1ZHUE9JTlQsIFNWR1BvaW50KSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoU1ZHUkVDVCwgU1ZHUmVjdCkK
LQotLy8gUE9EIHR5cGVzIGNhbiBoYXZlIGRpZmZlcmVudCBpbXBsZW1lbnRhdGlvbiBuYW1lcywg
c2VlIENvZGVHZW5lcmF0ZVY4LnBtLgotI2RlZmluZSBTVkdfUE9EX05BVElWRV9UWVBFUyhWKSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoU1ZHQU5HTEUs
IFNWR0FuZ2xlKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
XAotICAgIFYoU1ZHTEVOR1RILCBTVkdMZW5ndGgpICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXAotICAgIFYoU1ZHUFJFU0VSVkVBU1BFQ1RSQVRJTywgU1ZHUHJl
c2VydmVBc3BlY3RSYXRpbykgICAgICAgICAgICAgICAgICAgXAotICAgIFYoU1ZHVFJBTlNGT1JN
LCBTVkdUcmFuc2Zvcm0pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAot
ICAgIFYoU1ZHTUFUUklYLCBBZmZpbmVUcmFuc2Zvcm0pICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXAotICAgIFYoU1ZHTlVNQkVSLCBmbG9hdCkgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoU1ZHUE9JTlQsIEZsb2F0
UG9pbnQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAg
IFYoU1ZHUkVDVCwgRmxvYXRSZWN0KQotCi0vLyBTaG91bGRuJ3QgZ2VuZXJhdGUgY29kZSBmb3Ig
dGhlc2UgdHdvIHR5cGVzLgotI2RlZmluZSBTVkdfTk9fV1JBUFBFUl9UWVBFUyhWKSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFYoU1ZHVVJJUkVGRVJFTkNF
LCBTVkdVUklSZWZlcmVuY2UpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAg
IFYoU1ZHQU5JTUFURURQT0lOVFMsIFNWR0FuaW1hdGVkUG9pbnRzKQotCi0vLyBTVkdfTk9OTk9E
RV9UWVBFUyBhcmUgU1ZHIG5vbi1ub2RlIG9iamVjdCB0eXBlcywgcG9kIHR5cHMgYW5kCi0vLyBu
dW1lcmljYWwgdHlwZXMuCi0jZGVmaW5lIFNWR19OT05OT0RFX1RZUEVTKFYpICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgU1ZHX09CSkVDVF9UWVBFUyhW
KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAg
U1ZHX1BPRF9UWVBFUyhWKQotI2VuZGlmICAvLyBTVkcKLQotLy8gRVZFTlRUQVJHRVQsIEVWRU5U
TElTVEVORVIsIGFuZCBOUE9CSkVDVCBkbyBub3QgaGF2ZSBWOCB3cmFwcGVycy4KLSNkZWZpbmUg
RE9NX05PX1dSQVBQRVJfVFlQRVMoVikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFwKLSAgICBWKEVWRU5UVEFSR0VULCBFdmVudFRhcmdldCkgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKEVWRU5UTElTVEVORVIsIEV2ZW50TGlz
dGVuZXIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBWKE5QT0JK
RUNULCBOUE9iamVjdCkKLQotI2lmIEVOQUJMRShTVkcpCi0jZGVmaW5lIFdSQVBQRVJfVFlQRVMo
VikgRE9NX05PREVfVFlQRVMoVikgRE9NX09CSkVDVF9UWVBFUyhWKSBTVkdfTk9ERV9UWVBFUyhW
KSBTVkdfTk9OTk9ERV9UWVBFUyhWKQotI2RlZmluZSBOT19XUkFQUEVSX1RZUEVTKFYpIERPTV9O
T19XUkFQUEVSX1RZUEVTKFYpIFNWR19OT19XUkFQUEVSX1RZUEVTKFYpCi0jZWxzZSAgLy8gU1ZH
Ci0jZGVmaW5lIFdSQVBQRVJfVFlQRVMoVikgRE9NX05PREVfVFlQRVMoVikgRE9NX09CSkVDVF9U
WVBFUyhWKQotI2RlZmluZSBOT19XUkFQUEVSX1RZUEVTKFYpIERPTV9OT19XUkFQUEVSX1RZUEVT
KFYpCi0jZW5kaWYgIC8vIFNWRwotCi0jZGVmaW5lIEFMTF9XUkFQUEVSX1RZUEVTKFYpIFdSQVBQ
RVJfVFlQRVMoVikgTk9fV1JBUFBFUl9UWVBFUyhWKQotCi0gICAgY2xhc3MgVjhDbGFzc0luZGV4
IHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIC8vIFR5cGUgbXVzdCBzdGFydCBhdCBub24tbmVnYXRp
dmUgbnVtYmVycy4gU2VlIFRvSW50LCBGcm9tSW50LgotICAgICAgICBlbnVtIFY4V3JhcHBlclR5
cGUgewotICAgICAgICAgICAgSU5WQUxJRF9DTEFTU19JTkRFWCA9IDAsCi0KLSNkZWZpbmUgREVG
SU5FX0VOVU0obmFtZSwgdHlwZSkgbmFtZSwgCi0gICAgICAgICAgICBBTExfV1JBUFBFUl9UWVBF
UyhERUZJTkVfRU5VTSkKLSN1bmRlZiBERUZJTkVfRU5VTQotCi0gICAgICAgICAgICBDTEFTU0lO
REVYX0VORCwKLSAgICAgICAgICAgIFdSQVBQRVJfVFlQRV9DT1VOVCA9IENMQVNTSU5ERVhfRU5E
Ci0gICAgICAgIH07Ci0KLSAgICAgICAgLy8gRklYTUU6IENvbnZlcnQgdG8gdG9JbnQgYWZ0ZXIg
YWxsIHRoZSBiaW5kaW5ncyBhcmUgaW4gb25lIHBsYWNlLgotICAgICAgICBzdGF0aWMgaW50IFRv
SW50KFY4V3JhcHBlclR5cGUgdHlwZSkgeyByZXR1cm4gc3RhdGljX2Nhc3Q8aW50Pih0eXBlKTsg
fQotCi0gICAgICAgIC8vIEZJWE1FOiBDb252ZXJ0IHRvIGZyb21JbnQgYWZ0ZXIgYWxsIHRoZSBi
aW5kaW5ncyBhcmUgaW4gb25lIHBsYWNlLgotICAgICAgICBzdGF0aWMgVjhXcmFwcGVyVHlwZSBG
cm9tSW50KGludCB2KSB7Ci0gICAgICAgICAgICBBU1NFUlQoSU5WQUxJRF9DTEFTU19JTkRFWCA8
PSB2ICYmIHYgPCBDTEFTU0lOREVYX0VORCk7Ci0gICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nh
c3Q8VjhXcmFwcGVyVHlwZT4odik7Ci0gICAgICAgIH0KLSAgICB9OwotCi0gICAgY2xhc3MgQWN0
aXZlRE9NT2JqZWN0OwotCi0gICAgdHlwZWRlZiB2ODo6UGVyc2lzdGVudDx2ODo6RnVuY3Rpb25U
ZW1wbGF0ZT4gKCpHZXRUZW1wbGF0ZUZ1bmN0aW9uKSgpOwotICAgIHR5cGVkZWYgdm9pZCAoKkRl
cmVmT2JqZWN0RnVuY3Rpb24pKHZvaWQqKTsKLSAgICB0eXBlZGVmIEFjdGl2ZURPTU9iamVjdCog
KCpUb0FjdGl2ZURPTU9iamVjdEZ1bmN0aW9uKSh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+KTsKLQot
ICAgIHN0cnVjdCBXcmFwcGVyVHlwZUluZm8gewotCi0gICAgICAgIHY4OjpQZXJzaXN0ZW50PHY4
OjpGdW5jdGlvblRlbXBsYXRlPiBnZXRUZW1wbGF0ZSgpIHsgcmV0dXJuIGdldFRlbXBsYXRlRnVu
Y3Rpb24oKTsgfQotCi0gICAgICAgIHZvaWQgZGVyZWZPYmplY3Qodm9pZCogb2JqZWN0KQotICAg
ICAgICB7Ci0gICAgICAgICAgICBpZiAoZGVyZWZPYmplY3RGdW5jdGlvbikgCi0gICAgICAgICAg
ICAgICAgZGVyZWZPYmplY3RGdW5jdGlvbihvYmplY3QpOwotICAgICAgICB9Ci0KLSAgICAgICAg
QWN0aXZlRE9NT2JqZWN0KiB0b0FjdGl2ZURPTU9iamVjdCh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+
IG9iamVjdCkKLSAgICAgICAgewotICAgICAgICAgICAgaWYgKCF0b0FjdGl2ZURPTU9iamVjdEZ1
bmN0aW9uKQotICAgICAgICAgICAgICAgIHJldHVybiAwOwotICAgICAgICAgICAgcmV0dXJuIHRv
QWN0aXZlRE9NT2JqZWN0RnVuY3Rpb24ob2JqZWN0KTsKLSAgICAgICAgfQotCi0gICAgICAgIGNv
bnN0IGludCBpbmRleDsKLSAgICAgICAgY29uc3QgR2V0VGVtcGxhdGVGdW5jdGlvbiBnZXRUZW1w
bGF0ZUZ1bmN0aW9uOwotICAgICAgICBjb25zdCBEZXJlZk9iamVjdEZ1bmN0aW9uIGRlcmVmT2Jq
ZWN0RnVuY3Rpb247Ci0gICAgICAgIGNvbnN0IFRvQWN0aXZlRE9NT2JqZWN0RnVuY3Rpb24gdG9B
Y3RpdmVET01PYmplY3RGdW5jdGlvbjsKLSAgICB9OwotfQotCi0jZW5kaWYgLy8gVjhJbmRleF9o
CkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4SXNvbGF0ZWRDb250ZXh0LmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9iaW5kaW5ncy92OC9WOElzb2xhdGVkQ29udGV4dC5oCShyZXZpc2lvbiA1
NjEzMSkKKysrIFdlYkNvcmUvYmluZGluZ3MvdjgvVjhJc29sYXRlZENvbnRleHQuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMzQsNyArMzQsNiBAQAogI2luY2x1ZGUgIklzb2xhdGVkV29ybGQuaCIKICNp
bmNsdWRlICJTY3JpcHRTb3VyY2VDb2RlLmgiIC8vIGZvciBXZWJDb3JlOjpTY3JpcHRTb3VyY2VD
b2RlCiAjaW5jbHVkZSAiVjhET01XaW5kb3cuaCIKLSNpbmNsdWRlICJWOEluZGV4LmgiCiAjaW5j
bHVkZSAiVjhQcm94eS5oIgogI2luY2x1ZGUgIlY4VXRpbGl0aWVzLmgiCiAjaW5jbHVkZSA8djgu
aD4KSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvdjgvV29ya2VyQ29udGV4dEV4ZWN1dGlvblByb3h5
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3Y4L1dvcmtlckNvbnRleHRFeGVj
dXRpb25Qcm94eS5jcHAJKHJldmlzaW9uIDU2MTMxKQorKysgV2ViQ29yZS9iaW5kaW5ncy92OC9X
b3JrZXJDb250ZXh0RXhlY3V0aW9uUHJveHkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MiwxMyAr
NDIsMTMgQEAKICNpbmNsdWRlICJWOEJpbmRpbmcuaCIKICNpbmNsdWRlICJWOERPTU1hcC5oIgog
I2luY2x1ZGUgIlY4RGVkaWNhdGVkV29ya2VyQ29udGV4dC5oIgotI2luY2x1ZGUgIlY4SW5kZXgu
aCIKICNpbmNsdWRlICJWOFByb3h5LmgiCiAjaW5jbHVkZSAiVjhTaGFyZWRXb3JrZXJDb250ZXh0
LmgiCiAjaW5jbHVkZSAiVjhXb3JrZXJDb250ZXh0LmgiCiAjaW5jbHVkZSAiV29ya2VyLmgiCiAj
aW5jbHVkZSAiV29ya2VyQ29udGV4dC5oIgogI2luY2x1ZGUgIldvcmtlclNjcmlwdENvbnRyb2xs
ZXIuaCIKKyNpbmNsdWRlICJXcmFwcGVyVHlwZUluZm8uaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4R0NDb250cm9sbGVyLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4R0NDb250cm9sbGVyLmNwcAkocmV2aXNpb24g
NTYxMzEpCisrKyBXZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4R0NDb250cm9sbGVyLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNDAsOCArNDAsOSBAQAogI2luY2x1ZGUgIk1lc3NhZ2VQb3J0LmgiCiAjaW5j
bHVkZSAiU1ZHRWxlbWVudC5oIgogI2luY2x1ZGUgIlY4RE9NTWFwLmgiCi0jaW5jbHVkZSAiVjhJ
bmRleC5oIgorI2luY2x1ZGUgIlY4TWVzc2FnZVBvcnQuaCIKICNpbmNsdWRlICJWOFByb3h5Lmgi
CisjaW5jbHVkZSAiV3JhcHBlclR5cGVJbmZvLmgiCiAKICNpbmNsdWRlIDxhbGdvcml0aG0+CiAj
aW5jbHVkZSA8dXRpbGl0eT4KQEAgLTE5NSw3ICsxOTYsNyBAQAogICAgICAgICAvLyBmb3JraW5n
IE1lc3NhZ2VQb3J0LiogdGhpcyBpcyBwb3N0cG9uZWQgdG8gR0MgdGltZS4gSGF2aW5nIHRoaXMg
cG9zdHBvbmVkCiAgICAgICAgIC8vIGhhcyB0aGUgZHJhd2JhY2sgdGhhdCB0aGUgd3JhcHBlcnMg
YXJlICJlbnRhbmdsZWQvdW5lbnRhbmdsZWQiIGZvciBlYWNoCiAgICAgICAgIC8vIEdDIGV2ZW4g
dGhvdWdoIHRoZWlyIGVudGFnbGVtZW50IG1vc3QgbGlrZWx5IGlzIHN0aWxsIHRoZSBzYW1lLgot
ICAgICAgICBpZiAodHlwZUluZm8tPmluZGV4ID09IFY4Q2xhc3NJbmRleDo6TUVTU0FHRVBPUlQp
IHsKKyAgICAgICAgaWYgKFY4TWVzc2FnZVBvcnQ6OmluZm8uZXF1YWxzKHR5cGVJbmZvKSkgewog
ICAgICAgICAgICAgLy8gTWFyayBlYWNoIHBvcnQgYXMgaW4tdXNlIGlmIGl0J3MgZW50YW5nbGVk
LiBGb3Igc2ltcGxpY2l0eSdzIHNha2UsIHdlIGFzc3VtZSBhbGwgcG9ydHMgYXJlIHJlbW90ZWx5
IGVudGFuZ2xlZCwKICAgICAgICAgICAgIC8vIHNpbmNlIHRoZSBDaHJvbWl1bSBwb3J0IGltcGxl
bWVudGF0aW9uIGNhbid0IHRlbGwgdGhlIGRpZmZlcmVuY2UuCiAgICAgICAgICAgICBNZXNzYWdl
UG9ydCogcG9ydDEgPSBzdGF0aWNfY2FzdDxNZXNzYWdlUG9ydCo+KG9iamVjdCk7CkBAIC0zNjYs
NyArMzY3LDcgQEAKICAgICB2b2lkIHZpc2l0RE9NV3JhcHBlcih2b2lkKiBvYmplY3QsIHY4OjpQ
ZXJzaXN0ZW50PHY4OjpPYmplY3Q+IHdyYXBwZXIpCiAgICAgewogICAgICAgICBXcmFwcGVyVHlw
ZUluZm8qIHR5cGVJbmZvID0gVjhET01XcmFwcGVyOjpkb21XcmFwcGVyVHlwZSh3cmFwcGVyKTsK
LSAgICAgICAgaWYgKHR5cGVJbmZvLT5pbmRleCA9PSBWOENsYXNzSW5kZXg6Ok1FU1NBR0VQT1JU
KSB7CisgICAgICAgIGlmIChWOE1lc3NhZ2VQb3J0OjppbmZvLmVxdWFscyh0eXBlSW5mbykpIHsK
ICAgICAgICAgICAgIE1lc3NhZ2VQb3J0KiBwb3J0MSA9IHN0YXRpY19jYXN0PE1lc3NhZ2VQb3J0
Kj4ob2JqZWN0KTsKICAgICAgICAgICAgIC8vIFdlIG1hcmtlZCB0aGlzIHBvcnQgYXMgcmVhY2hh
YmxlIGluIEdDUHJvbG9ndWVWaXNpdG9yLiAgVW5kbyB0aGlzIG5vdyBzaW5jZSB0aGUKICAgICAg
ICAgICAgIC8vIHBvcnQgY291bGQgYmUgbm90IHJlYWNoYWJsZSBpbiB0aGUgZnV0dXJlIGlmIGl0
IGdldHMgZGlzZW50YW5nbGVkIChhbmQgYWxzbwpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy92OC9W
OENvbGxlY3Rpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4Q29sbGVj
dGlvbi5oCShyZXZpc2lvbiA1NjEzMSkKKysrIFdlYkNvcmUvYmluZGluZ3MvdjgvVjhDb2xsZWN0
aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTYzLDcgKzYzLDcgQEAKIHsKICAgICAvLyBGSVhNRTog
YXNzZXJ0IG9iamVjdCBpcyBhIGNvbGxlY3Rpb24gdHlwZQogICAgIEFTU0VSVChWOERPTVdyYXBw
ZXI6Om1heWJlRE9NV3JhcHBlcihvYmplY3QpKTsKLSAgICBBU1NFUlQoVjhET01XcmFwcGVyOjpk
b21XcmFwcGVyVHlwZShvYmplY3QpLT5pbmRleCAhPSBWOENsYXNzSW5kZXg6Ok5PREUpOworICAg
IEFTU0VSVChWOERPTVdyYXBwZXI6OmRvbVdyYXBwZXJUeXBlKG9iamVjdCkgIT0gJlY4Tm9kZTo6
aW5mbyk7CiAgICAgQ29sbGVjdGlvbiogY29sbGVjdGlvbiA9IHRvTmF0aXZlQ29sbGVjdGlvbjxD
b2xsZWN0aW9uPihvYmplY3QpOwogICAgIEF0b21pY1N0cmluZyBwcm9wZXJ0eU5hbWUgPSB0b0F0
b21pY1dlYkNvcmVTdHJpbmdXaXRoTnVsbENoZWNrKG5hbWUpOwogICAgIHJldHVybiBnZXRWOE9i
amVjdDxJdGVtVHlwZT4oY29sbGVjdGlvbi0+bmFtZWRJdGVtKHByb3BlcnR5TmFtZSkpOwpAQCAt
ODksNyArODksNyBAQAogewogICAgIC8vIEZJWE1FOiBBc3NlcnQgdGhhdCBvYmplY3QgbXVzdCBi
ZSBhIGNvbGxlY3Rpb24gdHlwZS4KICAgICBBU1NFUlQoVjhET01XcmFwcGVyOjptYXliZURPTVdy
YXBwZXIob2JqZWN0KSk7Ci0gICAgQVNTRVJUKFY4RE9NV3JhcHBlcjo6ZG9tV3JhcHBlclR5cGUo
b2JqZWN0KS0+aW5kZXggIT0gVjhDbGFzc0luZGV4OjpOT0RFKTsKKyAgICBBU1NFUlQoVjhET01X
cmFwcGVyOjpkb21XcmFwcGVyVHlwZShvYmplY3QpICE9ICZWOE5vZGU6OmluZm8pOwogICAgIENv
bGxlY3Rpb24qIGNvbGxlY3Rpb24gPSB0b05hdGl2ZUNvbGxlY3Rpb248Q29sbGVjdGlvbj4ob2Jq
ZWN0KTsKICAgICByZXR1cm4gZ2V0VjhPYmplY3Q8SXRlbVR5cGU+KGNvbGxlY3Rpb24tPml0ZW0o
aW5kZXgpKTsKIH0KQEAgLTE1NCwxNyArMTU0LDE2IEBACiAKIAogLy8gQWRkIGluZGV4ZWQgZ2V0
dGVyIHRvIHRoZSBmdW5jdGlvbiB0ZW1wbGF0ZSBmb3IgYSBjb2xsZWN0aW9uLgotdGVtcGxhdGU8
Y2xhc3MgQ29sbGVjdGlvbiwgY2xhc3MgSXRlbVR5cGU+IHN0YXRpYyB2b2lkIHNldENvbGxlY3Rp
b25JbmRleGVkR2V0dGVyKHY4OjpIYW5kbGU8djg6OkZ1bmN0aW9uVGVtcGxhdGU+IGRlc2MsIFY4
Q2xhc3NJbmRleDo6VjhXcmFwcGVyVHlwZSB0eXBlKQordGVtcGxhdGU8Y2xhc3MgQ29sbGVjdGlv
biwgY2xhc3MgSXRlbVR5cGU+IHN0YXRpYyB2b2lkIHNldENvbGxlY3Rpb25JbmRleGVkR2V0dGVy
KHY4OjpIYW5kbGU8djg6OkZ1bmN0aW9uVGVtcGxhdGU+IGRlc2MpCiB7Ci0gICAgZGVzYy0+SW5z
dGFuY2VUZW1wbGF0ZSgpLT5TZXRJbmRleGVkUHJvcGVydHlIYW5kbGVyKGNvbGxlY3Rpb25JbmRl
eGVkUHJvcGVydHlHZXR0ZXI8Q29sbGVjdGlvbiwgSXRlbVR5cGU+LCAwLCAwLCAwLCBjb2xsZWN0
aW9uSW5kZXhlZFByb3BlcnR5RW51bWVyYXRvcjxDb2xsZWN0aW9uPiwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdjg6OkludGVnZXI6Ok5l
dyhWOENsYXNzSW5kZXg6OlRvSW50KHR5cGUpKSk7CisgICAgZGVzYy0+SW5zdGFuY2VUZW1wbGF0
ZSgpLT5TZXRJbmRleGVkUHJvcGVydHlIYW5kbGVyKGNvbGxlY3Rpb25JbmRleGVkUHJvcGVydHlH
ZXR0ZXI8Q29sbGVjdGlvbiwgSXRlbVR5cGU+LCAwLCAwLCAwLCBjb2xsZWN0aW9uSW5kZXhlZFBy
b3BlcnR5RW51bWVyYXRvcjxDb2xsZWN0aW9uPik7CiB9CiAKIAogLy8gQWRkIG5hbWVkIGdldHRl
ciB0byB0aGUgZnVuY3Rpb24gdGVtcGxhdGUgZm9yIGEgY29sbGVjdGlvbi4KLXRlbXBsYXRlPGNs
YXNzIENvbGxlY3Rpb24sIGNsYXNzIEl0ZW1UeXBlPiBzdGF0aWMgdm9pZCBzZXRDb2xsZWN0aW9u
TmFtZWRHZXR0ZXIodjg6OkhhbmRsZTx2ODo6RnVuY3Rpb25UZW1wbGF0ZT4gZGVzYywgVjhDbGFz
c0luZGV4OjpWOFdyYXBwZXJUeXBlIHR5cGUpCit0ZW1wbGF0ZTxjbGFzcyBDb2xsZWN0aW9uLCBj
bGFzcyBJdGVtVHlwZT4gc3RhdGljIHZvaWQgc2V0Q29sbGVjdGlvbk5hbWVkR2V0dGVyKHY4OjpI
YW5kbGU8djg6OkZ1bmN0aW9uVGVtcGxhdGU+IGRlc2MpCiB7Ci0gICAgZGVzYy0+SW5zdGFuY2VU
ZW1wbGF0ZSgpLT5TZXROYW1lZFByb3BlcnR5SGFuZGxlcihjb2xsZWN0aW9uTmFtZWRQcm9wZXJ0
eUdldHRlcjxDb2xsZWN0aW9uLCBJdGVtVHlwZT4sIDAsIDAsIDAsIDAsIHY4OjpJbnRlZ2VyOjpO
ZXcoVjhDbGFzc0luZGV4OjpUb0ludCh0eXBlKSkpOworICAgIGRlc2MtPkluc3RhbmNlVGVtcGxh
dGUoKS0+U2V0TmFtZWRQcm9wZXJ0eUhhbmRsZXIoY29sbGVjdGlvbk5hbWVkUHJvcGVydHlHZXR0
ZXI8Q29sbGVjdGlvbiwgSXRlbVR5cGU+LCAwLCAwLCAwLCAwKTsKIH0KIAogLy8gQWRkIGluZGV4
ZWQgZ2V0dGVyIHJldHVybmluZyBhIHN0cmluZyBvciBudWxsIHRvIGEgZnVuY3Rpb24gdGVtcGxh
dGUgZm9yIGEgY29sbGVjdGlvbi4KSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvdjgvTlBWOE9iamVj
dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvdjgvTlBWOE9iamVjdC5oCShyZXZp
c2lvbiA1NjEzMSkKKysrIFdlYkNvcmUvYmluZGluZ3MvdjgvTlBWOE9iamVjdC5oCSh3b3JraW5n
IGNvcHkpCkBAIC0zMCw3ICszMCw3IEBACiAjaWZuZGVmIE5QVjhPYmplY3RfaAogI2RlZmluZSBO
UFY4T2JqZWN0X2gKIAotI2luY2x1ZGUgIlY4SW5kZXguaCIKKyNpbmNsdWRlICJWOERPTVdyYXBw
ZXIuaCIKIAogI2lmIFBMQVRGT1JNKENIUk9NSVVNKQogLy8gRklYTUU6IENocm9taXVtIHVzZXMg
YSBkaWZmZXJlbnQgbnBydW50aW1lLmgsIHdoaWNoIGlzIGluCkBAIC00OCw2ICs0OCw4IEBACiAg
ICAgY2xhc3MgRE9NV2luZG93OwogCiAgICAgc3RhdGljIGNvbnN0IGludCBucE9iamVjdEludGVy
bmFsRmllbGRDb3VudCA9IHY4RGVmYXVsdFdyYXBwZXJJbnRlcm5hbEZpZWxkQ291bnQgKyAwOwor
ICAgIAorICAgIHN0YXRpYyBXcmFwcGVyVHlwZUluZm8gbnBPYmplY3RUeXBlSW5mbyA9IHsgMCwg
MCwgZmFsc2UgfTsKIH0KIAogZXh0ZXJuIE5QQ2xhc3MqIG5wU2NyaXB0T2JqZWN0Q2xhc3M7Cklu
ZGV4OiBXZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4U1ZHUE9EVHlwZVdyYXBwZXIuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4U1ZHUE9EVHlwZVdyYXBwZXIuaAkocmV2aXNpb24g
NTYxMzEpCisrKyBXZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4U1ZHUE9EVHlwZVdyYXBwZXIuaAkod29y
a2luZyBjb3B5KQpAQCAtMzk2LDEzICszOTYsMTMgQEAKIGNsYXNzIFY4U1ZHUE9EVHlwZVV0aWwg
ewogcHVibGljOgogICAgIHRlbXBsYXRlIDxjbGFzcyBQPgotICAgIHN0YXRpYyBQIHRvU1ZHUE9E
VHlwZShWOENsYXNzSW5kZXg6OlY4V3JhcHBlclR5cGUgdHlwZSwgdjg6OkhhbmRsZTx2ODo6VmFs
dWU+IG9iamVjdCwgYm9vbCYgb2spOworICAgIHN0YXRpYyBQIHRvU1ZHUE9EVHlwZShXcmFwcGVy
VHlwZUluZm8qIGluZm8sIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBvYmplY3QsIGJvb2wmIG9rKTsK
IH07CiAKIHRlbXBsYXRlIDxjbGFzcyBQPgotUCBWOFNWR1BPRFR5cGVVdGlsOjp0b1NWR1BPRFR5
cGUoVjhDbGFzc0luZGV4OjpWOFdyYXBwZXJUeXBlIHR5cGUsIHY4OjpIYW5kbGU8djg6OlZhbHVl
PiBvYmplY3QsIGJvb2wmIG9rKQorUCBWOFNWR1BPRFR5cGVVdGlsOjp0b1NWR1BPRFR5cGUoV3Jh
cHBlclR5cGVJbmZvKiBpbmZvLCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gb2JqZWN0LCBib29sJiBv
aykKIHsKLSAgICBpZiAoIVY4RE9NV3JhcHBlcjo6aXNXcmFwcGVyT2ZUeXBlKG9iamVjdCwgdHlw
ZSkpIHsKKyAgICBpZiAoIVY4RE9NV3JhcHBlcjo6aXNXcmFwcGVyT2ZUeXBlKG9iamVjdCwgaW5m
bykpIHsKICAgICAgICAgb2sgPSBmYWxzZTsKICAgICAgICAgcmV0dXJuIFAoKTsKICAgICB9Cklu
ZGV4OiBXZWJDb3JlL2JpbmRpbmdzL3Y4L1dvcmtlckNvbnRleHRFeGVjdXRpb25Qcm94eS5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvdjgvV29ya2VyQ29udGV4dEV4ZWN1dGlvblBy
b3h5LmgJKHJldmlzaW9uIDU2MTMxKQorKysgV2ViQ29yZS9iaW5kaW5ncy92OC9Xb3JrZXJDb250
ZXh0RXhlY3V0aW9uUHJveHkuaAkod29ya2luZyBjb3B5KQpAQCAtMzUsNyArMzUsNiBAQAogI2lm
IEVOQUJMRShXT1JLRVJTKQogCiAjaW5jbHVkZSAiU2NyaXB0VmFsdWUuaCIKLSNpbmNsdWRlICJW
OEluZGV4LmgiCiAjaW5jbHVkZSA8djguaD4KICNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CiAjaW5j
bHVkZSA8d3RmL1ZlY3Rvci5oPgpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy92OC9WOEhlbHBlcnMu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvdjgvVjhIZWxwZXJzLmNwcAkocmV2
aXNpb24gNTYxMzEpCisrKyBXZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4SGVscGVycy5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTMzLDcgKzMzLDYgQEAKIAogI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgogI2lu
Y2x1ZGUgIk5QVjhPYmplY3QuaCIKLSNpbmNsdWRlICJWOEluZGV4LmgiCiAjaW5jbHVkZSAiVjhQ
cm94eS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL3Y4
L2N1c3RvbS9WOFdlYkdMRmxvYXRBcnJheUN1c3RvbS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9iaW5kaW5ncy92OC9jdXN0b20vVjhXZWJHTEZsb2F0QXJyYXlDdXN0b20uY3BwCShyZXZpc2lv
biA1NjEzMSkKKysrIFdlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViR0xGbG9hdEFycmF5
Q3VzdG9tLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDcsMTMgKzQ3LDEzIEBACiB7CiAgICAgSU5D
X1NUQVRTKCJET00uV2ViR0xGbG9hdEFycmF5LkNvbnRydWN0b3IiKTsKIAotICAgIHJldHVybiBj
b25zdHJ1Y3RXZWJHTEFycmF5PFdlYkdMRmxvYXRBcnJheSwgZmxvYXQ+KGFyZ3MsICZpbmZvKTsK
KyAgICByZXR1cm4gY29uc3RydWN0V2ViR0xBcnJheTxXZWJHTEZsb2F0QXJyYXksIGZsb2F0Pihh
cmdzLCAmaW5mbywgdjg6OmtFeHRlcm5hbEZsb2F0QXJyYXkpOwogfQogCiB2ODo6SGFuZGxlPHY4
OjpWYWx1ZT4gVjhXZWJHTEZsb2F0QXJyYXk6OnNldENhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVu
dHMmIGFyZ3MpCiB7CiAgICAgSU5DX1NUQVRTKCJET00uV2ViR0xGbG9hdEFycmF5LnNldCgpIik7
Ci0gICAgcmV0dXJuIHNldFdlYkdMQXJyYXk8V2ViR0xGbG9hdEFycmF5LCBWOFdlYkdMRmxvYXRB
cnJheT4oYXJncywgVjhDbGFzc0luZGV4OjpXRUJHTEZMT0FUQVJSQVkpOworICAgIHJldHVybiBz
ZXRXZWJHTEFycmF5PFdlYkdMRmxvYXRBcnJheSwgVjhXZWJHTEZsb2F0QXJyYXk+KGFyZ3MpOwog
fQogCiB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdG9WOChXZWJHTEZsb2F0QXJyYXkqIGltcGwpCklu
ZGV4OiBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEhUTUxPcHRpb25FbGVtZW50Q29uc3Ry
dWN0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEhUTUxP
cHRpb25FbGVtZW50Q29uc3RydWN0b3IuaAkocmV2aXNpb24gNTYxMzEpCisrKyBXZWJDb3JlL2Jp
bmRpbmdzL3Y4L2N1c3RvbS9WOEhUTUxPcHRpb25FbGVtZW50Q29uc3RydWN0b3IuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMzEsNyArMzEsNyBAQAogI2lmbmRlZiBWOEhUTUxPcHRpb25FbGVtZW50Q29u
c3RydWN0b3JfaAogI2RlZmluZSBWOEhUTUxPcHRpb25FbGVtZW50Q29uc3RydWN0b3JfaAogCi0j
aW5jbHVkZSAiVjhJbmRleC5oIgorI2luY2x1ZGUgIldyYXBwZXJUeXBlSW5mby5oIgogCiAjaW5j
bHVkZSA8djguaD4KIApJbmRleDogV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhIVE1MSW1h
Z2VFbGVtZW50Q29uc3RydWN0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3Y4
L2N1c3RvbS9WOEhUTUxJbWFnZUVsZW1lbnRDb25zdHJ1Y3Rvci5oCShyZXZpc2lvbiA1NjEzMSkK
KysrIFdlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SFRNTEltYWdlRWxlbWVudENvbnN0cnVj
dG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTMxLDcgKzMxLDcgQEAKICNpZm5kZWYgVjhIVE1MSW1h
Z2VFbGVtZW50Q29uc3RydWN0b3JfaAogI2RlZmluZSBWOEhUTUxJbWFnZUVsZW1lbnRDb25zdHJ1
Y3Rvcl9oCiAKLSNpbmNsdWRlICJWOEluZGV4LmgiCisjaW5jbHVkZSAiV3JhcHBlclR5cGVJbmZv
LmgiCiAKICNpbmNsdWRlIDx2OC5oPgogCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3Rv
bS9WOFdlYkdMUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9iaW5kaW5ncy92OC9jdXN0b20vVjhXZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwCShy
ZXZpc2lvbiA1NjEzMSkKKysrIFdlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViR0xSZW5k
ZXJpbmdDb250ZXh0Q3VzdG9tLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMiw3ICsyLDcgQEAKICAq
IENvcHlyaWdodCAoQykgMjAwOSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICog
CiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmVWOENsYXNzSW5kZXg6OldFQkdMCisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMgYXJlCiAgKiBtZXQ6CiAgKiAKICAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CkluZGV4OiBXZWJDb3Jl
L2JpbmRpbmdzL3Y4L2N1c3RvbS9WOERPTVdpbmRvd0N1c3RvbS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhET01XaW5kb3dDdXN0b20uY3BwCShyZXZpc2lv
biA1NjEzMSkKKysrIFdlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4RE9NV2luZG93Q3VzdG9t
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzM1LDkgKzczNSw4IEBACiAgICAgcmV0dXJuIHJlc3Vs
dDsKIH0KIAotYm9vbCBWOERPTVdpbmRvdzo6bmFtZWRTZWN1cml0eUNoZWNrKHY4OjpMb2NhbDx2
ODo6T2JqZWN0PiBob3N0LCB2ODo6TG9jYWw8djg6OlZhbHVlPiBrZXksIHY4OjpBY2Nlc3NUeXBl
IHR5cGUsIHY4OjpMb2NhbDx2ODo6VmFsdWU+IGRhdGEpCitib29sIFY4RE9NV2luZG93OjpuYW1l
ZFNlY3VyaXR5Q2hlY2sodjg6OkxvY2FsPHY4OjpPYmplY3Q+IGhvc3QsIHY4OjpMb2NhbDx2ODo6
VmFsdWU+IGtleSwgdjg6OkFjY2Vzc1R5cGUgdHlwZSwgdjg6OkxvY2FsPHY4OjpWYWx1ZT4pCiB7
Ci0gICAgQVNTRVJUKFY4Q2xhc3NJbmRleDo6RnJvbUludChkYXRhLT5JbnQzMlZhbHVlKCkpID09
IFY4Q2xhc3NJbmRleDo6RE9NV0lORE9XKTsKICAgICB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHdp
bmRvdyA9IFY4RE9NV3JhcHBlcjo6bG9va3VwRE9NV3JhcHBlcihWOERPTVdpbmRvdzo6R2V0VGVt
cGxhdGUoKSwgaG9zdCk7CiAgICAgaWYgKHdpbmRvdy5Jc0VtcHR5KCkpCiAgICAgICAgIHJldHVy
biBmYWxzZTsgIC8vIHRoZSBmcmFtZSBpcyBnb25lLgpAQCAtNzYxLDkgKzc2MCw4IEBACiAgICAg
cmV0dXJuIFY4QmluZGluZ1NlY3VyaXR5OjpjYW5BY2Nlc3NGcmFtZShWOEJpbmRpbmdTdGF0ZTo6
T25seSgpLCB0YXJnZXQsIGZhbHNlKTsKIH0KIAotYm9vbCBWOERPTVdpbmRvdzo6aW5kZXhlZFNl
Y3VyaXR5Q2hlY2sodjg6OkxvY2FsPHY4OjpPYmplY3Q+IGhvc3QsIHVpbnQzMl90IGluZGV4LCB2
ODo6QWNjZXNzVHlwZSB0eXBlLCB2ODo6TG9jYWw8djg6OlZhbHVlPiBkYXRhKQorYm9vbCBWOERP
TVdpbmRvdzo6aW5kZXhlZFNlY3VyaXR5Q2hlY2sodjg6OkxvY2FsPHY4OjpPYmplY3Q+IGhvc3Qs
IHVpbnQzMl90IGluZGV4LCB2ODo6QWNjZXNzVHlwZSB0eXBlLCB2ODo6TG9jYWw8djg6OlZhbHVl
PikKIHsKLSAgICBBU1NFUlQoVjhDbGFzc0luZGV4OjpGcm9tSW50KGRhdGEtPkludDMyVmFsdWUo
KSkgPT0gVjhDbGFzc0luZGV4OjpET01XSU5ET1cpOwogICAgIHY4OjpIYW5kbGU8djg6Ok9iamVj
dD4gd2luZG93ID0gVjhET01XcmFwcGVyOjpsb29rdXBET01XcmFwcGVyKFY4RE9NV2luZG93OjpH
ZXRUZW1wbGF0ZSgpLCBob3N0KTsKICAgICBpZiAod2luZG93LklzRW1wdHkoKSkKICAgICAgICAg
cmV0dXJuIGZhbHNlOwpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhXZWJLaXRQ
b2ludENvbnN0cnVjdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1
c3RvbS9WOFdlYktpdFBvaW50Q29uc3RydWN0b3IuY3BwCShyZXZpc2lvbiA1NjEzMSkKKysrIFdl
YkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViS2l0UG9pbnRDb25zdHJ1Y3Rvci5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTMzLDggKzMzLDggQEAKIAogI2luY2x1ZGUgIlY4QmluZGluZy5oIgog
I2luY2x1ZGUgIlY4RE9NV3JhcHBlci5oIgotI2luY2x1ZGUgIlY4SW5kZXguaCIKICNpbmNsdWRl
ICJWOFByb3h5LmgiCisjaW5jbHVkZSAiV3JhcHBlclR5cGVJbmZvLmgiCiAKICNpbmNsdWRlIDx3
dGYvTWF0aEV4dHJhcy5oPgogCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEhU
TUxBdWRpb0VsZW1lbnRDb25zdHJ1Y3Rvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGlu
Z3MvdjgvY3VzdG9tL1Y4SFRNTEF1ZGlvRWxlbWVudENvbnN0cnVjdG9yLmgJKHJldmlzaW9uIDU2
MTMxKQorKysgV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhIVE1MQXVkaW9FbGVtZW50Q29u
c3RydWN0b3IuaAkod29ya2luZyBjb3B5KQpAQCAtMzEsNyArMzEsNyBAQAogI2lmbmRlZiBWOEhU
TUxBdWRpb0VsZW1lbnRDb25zdHJ1Y3Rvcl9oCiAjZGVmaW5lIFY4SFRNTEF1ZGlvRWxlbWVudENv
bnN0cnVjdG9yX2gKIAotI2luY2x1ZGUgIlY4SW5kZXguaCIKKyNpbmNsdWRlICJXcmFwcGVyVHlw
ZUluZm8uaCIKIAogI2luY2x1ZGUgPHY4Lmg+CiAKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3Mvdjgv
Y3VzdG9tL1Y4SFRNTE9wdGlvbkVsZW1lbnRDb25zdHJ1Y3Rvci5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhIVE1MT3B0aW9uRWxlbWVudENvbnN0cnVjdG9y
LmNwcAkocmV2aXNpb24gNTYxMzEpCisrKyBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEhU
TUxPcHRpb25FbGVtZW50Q29uc3RydWN0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NCw3ICs0
NCw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotV3JhcHBlclR5cGVJbmZvIFY4SFRNTE9w
dGlvbkVsZW1lbnRDb25zdHJ1Y3Rvcjo6aW5mbyA9IHtWOENsYXNzSW5kZXg6OlRvSW50KFY4Q2xh
c3NJbmRleDo6T1BUSU9OKSwgVjhIVE1MT3B0aW9uRWxlbWVudENvbnN0cnVjdG9yOjpHZXRUZW1w
bGF0ZSwgMCwgZmFsc2UgfTsKK1dyYXBwZXJUeXBlSW5mbyBWOEhUTUxPcHRpb25FbGVtZW50Q29u
c3RydWN0b3I6OmluZm8gPSB7IFY4SFRNTE9wdGlvbkVsZW1lbnRDb25zdHJ1Y3Rvcjo6R2V0VGVt
cGxhdGUsIDAsIGZhbHNlIH07CiAKIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdjhIVE1M
T3B0aW9uRWxlbWVudENvbnN0cnVjdG9yQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJn
cykKIHsKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViR0xCeXRlQXJyYXlD
dXN0b20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2Vi
R0xCeXRlQXJyYXlDdXN0b20uY3BwCShyZXZpc2lvbiA1NjEzMSkKKysrIFdlYkNvcmUvYmluZGlu
Z3MvdjgvY3VzdG9tL1Y4V2ViR0xCeXRlQXJyYXlDdXN0b20uY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC00NywxMyArNDcsMTMgQEAKIHsKICAgICBJTkNfU1RBVFMoIkRPTS5XZWJHTEJ5dGVBcnJheS5D
b250cnVjdG9yIik7CiAKLSAgICByZXR1cm4gY29uc3RydWN0V2ViR0xBcnJheTxXZWJHTEJ5dGVB
cnJheSwgc2lnbmVkIGNoYXI+KGFyZ3MsICZpbmZvKTsKKyAgICByZXR1cm4gY29uc3RydWN0V2Vi
R0xBcnJheTxXZWJHTEJ5dGVBcnJheSwgc2lnbmVkIGNoYXI+KGFyZ3MsICZpbmZvLCB2ODo6a0V4
dGVybmFsQnl0ZUFycmF5KTsKIH0KIAogdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4V2ViR0xCeXRl
QXJyYXk6OnNldENhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiB7CiAgICAgSU5D
X1NUQVRTKCJET00uV2ViR0xCeXRlQXJyYXkuc2V0KCkiKTsKLSAgICByZXR1cm4gc2V0V2ViR0xB
cnJheTxXZWJHTEJ5dGVBcnJheSwgVjhXZWJHTEJ5dGVBcnJheT4oYXJncywgVjhDbGFzc0luZGV4
OjpXRUJHTEJZVEVBUlJBWSk7CisgICAgcmV0dXJuIHNldFdlYkdMQXJyYXk8V2ViR0xCeXRlQXJy
YXksIFY4V2ViR0xCeXRlQXJyYXk+KGFyZ3MpOwogfQogCiB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4g
dG9WOChXZWJHTEJ5dGVBcnJheSogaW1wbCkKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvdjgvY3Vz
dG9tL1Y4SFRNTEltYWdlRWxlbWVudENvbnN0cnVjdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEhUTUxJbWFnZUVsZW1lbnRDb25zdHJ1Y3Rvci5jcHAJ
KHJldmlzaW9uIDU2MTMxKQorKysgV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhIVE1MSW1h
Z2VFbGVtZW50Q29uc3RydWN0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NCw3ICs0NCw3IEBA
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotV3JhcHBlclR5cGVJbmZvIFY4SFRNTEltYWdlRWxl
bWVudENvbnN0cnVjdG9yOjppbmZvID0ge1Y4Q2xhc3NJbmRleDo6VG9JbnQoVjhDbGFzc0luZGV4
OjpJTUFHRSksIFY4SFRNTEltYWdlRWxlbWVudENvbnN0cnVjdG9yOjpHZXRUZW1wbGF0ZSwgMCwg
ZmFsc2UgfTsKK1dyYXBwZXJUeXBlSW5mbyBWOEhUTUxJbWFnZUVsZW1lbnRDb25zdHJ1Y3Rvcjo6
aW5mbyA9IHsgVjhIVE1MSW1hZ2VFbGVtZW50Q29uc3RydWN0b3I6OkdldFRlbXBsYXRlLCAwLCBm
YWxzZSB9OwogCiBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHY4SFRNTEltYWdlRWxlbWVu
dENvbnN0cnVjdG9yQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKIHsKSW5kZXg6
IFdlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQ3Vz
dG9tLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOENhbnZh
c1JlbmRlcmluZ0NvbnRleHQyREN1c3RvbS5jcHAJKHJldmlzaW9uIDU2MTMxKQorKysgV2ViQ29y
ZS9iaW5kaW5ncy92OC9jdXN0b20vVjhDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRDdXN0b20uY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC00MzgsNyArNDM4LDcgQEAKICAgICAvLyB0b05hdGl2ZSgpIGV4
cGVjdHMgaXQgdG8gYmUgY29ycmVjdC4gSWYgdGhlIGFyZ3VtZW50IHdhcyBpbmNvcnJlY3QKICAg
ICAvLyB3ZSBsZWF2ZSBpdCBudWxsLCBhbmQgcHV0SW1hZ2VEYXRhKCkgd2lsbCB0aHJvdyB0aGUg
Y29ycmVjdCBleGNlcHRpb24KICAgICAvLyAoVFlQRV9NSVNNQVRDSF9FUlIpLgotICAgIGlmIChW
OERPTVdyYXBwZXI6OmlzV3JhcHBlck9mVHlwZShhcmdzWzBdLCBWOENsYXNzSW5kZXg6OklNQUdF
REFUQSkpCisgICAgaWYgKFY4RE9NV3JhcHBlcjo6aXNXcmFwcGVyT2ZUeXBlKGFyZ3NbMF0sICZW
OEltYWdlRGF0YTo6aW5mbykpCiAgICAgICAgIGltYWdlRGF0YSA9IFY4SW1hZ2VEYXRhOjp0b05h
dGl2ZSh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+OjpDYXN0KGFyZ3NbMF0pKTsKIAogICAgIEV4Y2Vw
dGlvbkNvZGUgZWMgPSAwOwpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhXZWJH
TEFycmF5Q3VzdG9tLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20v
VjhXZWJHTEFycmF5Q3VzdG9tLmgJKHJldmlzaW9uIDU2MTMxKQorKysgV2ViQ29yZS9iaW5kaW5n
cy92OC9jdXN0b20vVjhXZWJHTEFycmF5Q3VzdG9tLmgJKHdvcmtpbmcgY29weSkKQEAgLTQyLDcg
KzQyLDcgQEAKIAogLy8gVGVtcGxhdGUgZnVuY3Rpb24gdXNlZCBieSB0aGUgV2ViR0xBcnJheSpD
b25zdHJ1Y3RvciBjYWxsYmFja3MuCiB0ZW1wbGF0ZTxjbGFzcyBBcnJheUNsYXNzLCBjbGFzcyBF
bGVtZW50VHlwZT4KLXY4OjpIYW5kbGU8djg6OlZhbHVlPiBjb25zdHJ1Y3RXZWJHTEFycmF5KGNv
bnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MsIFdyYXBwZXJUeXBlSW5mbyogdHlwZSkKK3Y4OjpIYW5k
bGU8djg6OlZhbHVlPiBjb25zdHJ1Y3RXZWJHTEFycmF5KGNvbnN0IHY4OjpBcmd1bWVudHMmIGFy
Z3MsIFdyYXBwZXJUeXBlSW5mbyogdHlwZSwgdjg6OkV4dGVybmFsQXJyYXlUeXBlIGFycmF5VHlw
ZSkKIHsKICAgICBpZiAoIWFyZ3MuSXNDb25zdHJ1Y3RDYWxsKCkpCiAgICAgICAgIHJldHVybiB0
aHJvd0Vycm9yKCJET00gb2JqZWN0IGNvbnN0cnVjdG9yIGNhbm5vdCBiZSBjYWxsZWQgYXMgYSBm
dW5jdGlvbi4iKTsKQEAgLTkyLDEwICs5Miw3IEBACiAgICAgICAgICAgICByZXR1cm4gdGhyb3dF
cnJvcigiT3V0LW9mLXJhbmdlIG9mZnNldCBhbmQvb3IgbGVuZ3RoIik7CiAgICAgICAgIC8vIFRy
YW5zZm9ybSB0aGUgaG9sZGVyIGludG8gYSB3cmFwcGVyIG9iamVjdCBmb3IgdGhlIGFycmF5Lgog
ICAgICAgICBWOERPTVdyYXBwZXI6OnNldERPTVdyYXBwZXIoYXJncy5Ib2xkZXIoKSwgdHlwZSwg
YXJyYXkuZ2V0KCkpOwotICAgICAgICBWOERPTVdyYXBwZXI6OnNldEluZGV4ZWRQcm9wZXJ0aWVz
VG9FeHRlcm5hbEFycmF5KGFyZ3MuSG9sZGVyKCksCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZS0+aW5kZXgsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJyYXkuZ2V0
KCktPmJhc2VBZGRyZXNzKCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgYXJyYXkuZ2V0KCktPmxlbmd0aCgpKTsKKyAgICAgICAgYXJn
cy5Ib2xkZXIoKS0+U2V0SW5kZXhlZFByb3BlcnRpZXNUb0V4dGVybmFsQXJyYXlEYXRhKGFycmF5
LmdldCgpLT5iYXNlQWRkcmVzcygpLCBhcnJheVR5cGUsIGFycmF5LmdldCgpLT5sZW5ndGgoKSk7
CiAgICAgICAgIHJldHVybiB0b1Y4KGFycmF5LnJlbGVhc2UoKSwgYXJncy5Ib2xkZXIoKSk7CiAg
ICAgfQogCkBAIC0xMjcsMTAgKzEyNCw3IEBACiAKICAgICAvLyBUcmFuc2Zvcm0gdGhlIGhvbGRl
ciBpbnRvIGEgd3JhcHBlciBvYmplY3QgZm9yIHRoZSBhcnJheS4KICAgICBWOERPTVdyYXBwZXI6
OnNldERPTVdyYXBwZXIoYXJncy5Ib2xkZXIoKSwgdHlwZSwgYXJyYXkuZ2V0KCkpOwotICAgIFY4
RE9NV3JhcHBlcjo6c2V0SW5kZXhlZFByb3BlcnRpZXNUb0V4dGVybmFsQXJyYXkoYXJncy5Ib2xk
ZXIoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHR5cGUtPmluZGV4LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgYXJyYXkuZ2V0KCktPmJhc2VBZGRyZXNzKCksCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcnJheS5nZXQoKS0+bGVu
Z3RoKCkpOworICAgIGFyZ3MuSG9sZGVyKCktPlNldEluZGV4ZWRQcm9wZXJ0aWVzVG9FeHRlcm5h
bEFycmF5RGF0YShhcnJheS5nZXQoKS0+YmFzZUFkZHJlc3MoKSwgYXJyYXlUeXBlLCBhcnJheS5n
ZXQoKS0+bGVuZ3RoKCkpOwogICAgIHJldHVybiB0b1Y4KGFycmF5LnJlbGVhc2UoKSwgYXJncy5I
b2xkZXIoKSk7CiB9CiAKQEAgLTE1OCw4ICsxNTIsNyBAQAogfQogCiB0ZW1wbGF0ZSA8Y2xhc3Mg
Q1BsdXNQbHVzQXJyYXlUeXBlLCBjbGFzcyBKYXZhU2NyaXB0V3JhcHBlckFycmF5VHlwZT4KLXY4
OjpIYW5kbGU8djg6OlZhbHVlPiBzZXRXZWJHTEFycmF5KGNvbnN0IHY4OjpBcmd1bWVudHMmIGFy
Z3MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWOENsYXNzSW5kZXg6OlY4
V3JhcHBlclR5cGUgd3JhcHBlclR5cGUpCit2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gc2V0V2ViR0xB
cnJheShjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQogewogICAgIGlmIChhcmdzLkxlbmd0aCgp
IDwgMSB8fCBhcmdzLkxlbmd0aCgpID4gMikgewogICAgICAgICBWOFByb3h5OjpzZXRET01FeGNl
cHRpb24oU1lOVEFYX0VSUik7CkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdl
YkdMVW5zaWduZWRTaG9ydEFycmF5Q3VzdG9tLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2Jp
bmRpbmdzL3Y4L2N1c3RvbS9WOFdlYkdMVW5zaWduZWRTaG9ydEFycmF5Q3VzdG9tLmNwcAkocmV2
aXNpb24gNTYxMzEpCisrKyBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYkdMVW5zaWdu
ZWRTaG9ydEFycmF5Q3VzdG9tLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDcsMTMgKzQ3LDEzIEBA
CiB7CiAgICAgSU5DX1NUQVRTKCJET00uV2ViR0xVbnNpZ25lZFNob3J0QXJyYXkuQ29udHJ1Y3Rv
ciIpOwogCi0gICAgcmV0dXJuIGNvbnN0cnVjdFdlYkdMQXJyYXk8V2ViR0xVbnNpZ25lZFNob3J0
QXJyYXksIHVuc2lnbmVkIHNob3J0PihhcmdzLCAmaW5mbyk7CisgICAgcmV0dXJuIGNvbnN0cnVj
dFdlYkdMQXJyYXk8V2ViR0xVbnNpZ25lZFNob3J0QXJyYXksIHVuc2lnbmVkIHNob3J0Pihhcmdz
LCAmaW5mbywgdjg6OmtFeHRlcm5hbFVuc2lnbmVkU2hvcnRBcnJheSk7CiB9CiAKIHY4OjpIYW5k
bGU8djg6OlZhbHVlPiBWOFdlYkdMVW5zaWduZWRTaG9ydEFycmF5OjpzZXRDYWxsYmFjayhjb25z
dCB2ODo6QXJndW1lbnRzJiBhcmdzKQogewogICAgIElOQ19TVEFUUygiRE9NLldlYkdMVW5zaWdu
ZWRTaG9ydEFycmF5LnNldCgpIik7Ci0gICAgcmV0dXJuIHNldFdlYkdMQXJyYXk8V2ViR0xVbnNp
Z25lZFNob3J0QXJyYXksIFY4V2ViR0xVbnNpZ25lZFNob3J0QXJyYXk+KGFyZ3MsIFY4Q2xhc3NJ
bmRleDo6V0VCR0xVTlNJR05FRFNIT1JUQVJSQVkpOworICAgIHJldHVybiBzZXRXZWJHTEFycmF5
PFdlYkdMVW5zaWduZWRTaG9ydEFycmF5LCBWOFdlYkdMVW5zaWduZWRTaG9ydEFycmF5Pihhcmdz
KTsKIH0KIAogdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHRvVjgoV2ViR0xVbnNpZ25lZFNob3J0QXJy
YXkqIGltcGwpCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYkdMVW5zaWdu
ZWRCeXRlQXJyYXlDdXN0b20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3Mvdjgv
Y3VzdG9tL1Y4V2ViR0xVbnNpZ25lZEJ5dGVBcnJheUN1c3RvbS5jcHAJKHJldmlzaW9uIDU2MTMx
KQorKysgV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhXZWJHTFVuc2lnbmVkQnl0ZUFycmF5
Q3VzdG9tLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDcsMTMgKzQ3LDEzIEBACiB7CiAgICAgSU5D
X1NUQVRTKCJET00uV2ViR0xVbnNpZ25lZEJ5dGVBcnJheS5Db250cnVjdG9yIik7CiAKLSAgICBy
ZXR1cm4gY29uc3RydWN0V2ViR0xBcnJheTxXZWJHTFVuc2lnbmVkQnl0ZUFycmF5LCB1bnNpZ25l
ZCBjaGFyPihhcmdzLCAmaW5mbyk7CisgICAgcmV0dXJuIGNvbnN0cnVjdFdlYkdMQXJyYXk8V2Vi
R0xVbnNpZ25lZEJ5dGVBcnJheSwgdW5zaWduZWQgY2hhcj4oYXJncywgJmluZm8sIHY4OjprRXh0
ZXJuYWxVbnNpZ25lZEJ5dGVBcnJheSk7CiB9CiAKIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOFdl
YkdMVW5zaWduZWRCeXRlQXJyYXk6OnNldENhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFy
Z3MpCiB7CiAgICAgSU5DX1NUQVRTKCJET00uV2ViR0xVbnNpZ25lZEJ5dGVBcnJheS5zZXQoKSIp
OwotICAgIHJldHVybiBzZXRXZWJHTEFycmF5PFdlYkdMVW5zaWduZWRCeXRlQXJyYXksIFY4V2Vi
R0xVbnNpZ25lZEJ5dGVBcnJheT4oYXJncywgVjhDbGFzc0luZGV4OjpXRUJHTFVOU0lHTkVEQllU
RUFSUkFZKTsKKyAgICByZXR1cm4gc2V0V2ViR0xBcnJheTxXZWJHTFVuc2lnbmVkQnl0ZUFycmF5
LCBWOFdlYkdMVW5zaWduZWRCeXRlQXJyYXk+KGFyZ3MpOwogfQogCiB2ODo6SGFuZGxlPHY4OjpW
YWx1ZT4gdG9WOChXZWJHTFVuc2lnbmVkQnl0ZUFycmF5KiBpbXBsKQpJbmRleDogV2ViQ29yZS9i
aW5kaW5ncy92OC9jdXN0b20vVjhMb2NhdGlvbkN1c3RvbS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhMb2NhdGlvbkN1c3RvbS5jcHAJKHJldmlzaW9uIDU2
MTMxKQorKysgV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhMb2NhdGlvbkN1c3RvbS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTM1MCwxNyArMzUwLDE1IEBACiAgICAgcmV0dXJuIHY4U3RyaW5n
KHJlc3VsdCk7CiB9CiAKLWJvb2wgVjhMb2NhdGlvbjo6aW5kZXhlZFNlY3VyaXR5Q2hlY2sodjg6
OkxvY2FsPHY4OjpPYmplY3Q+IGhvc3QsIHVpbnQzMl90IGluZGV4LCB2ODo6QWNjZXNzVHlwZSB0
eXBlLCB2ODo6TG9jYWw8djg6OlZhbHVlPiBkYXRhKQorYm9vbCBWOExvY2F0aW9uOjppbmRleGVk
U2VjdXJpdHlDaGVjayh2ODo6TG9jYWw8djg6Ok9iamVjdD4gaG9zdCwgdWludDMyX3QgaW5kZXgs
IHY4OjpBY2Nlc3NUeXBlIHR5cGUsIHY4OjpMb2NhbDx2ODo6VmFsdWU+KQogewotICAgIEFTU0VS
VChWOENsYXNzSW5kZXg6OkZyb21JbnQoZGF0YS0+SW50MzJWYWx1ZSgpKSA9PSBWOENsYXNzSW5k
ZXg6OkxPQ0FUSU9OKTsKICAgICAvLyBPbmx5IGFsbG93IHNhbWUgb3JpZ2luIGFjY2VzcwogICAg
IExvY2F0aW9uKiBpbXAgPSAgVjhMb2NhdGlvbjo6dG9OYXRpdmUoaG9zdCk7CiAgICAgcmV0dXJu
IFY4QmluZGluZ1NlY3VyaXR5OjpjYW5BY2Nlc3NGcmFtZShWOEJpbmRpbmdTdGF0ZTo6T25seSgp
LCBpbXAtPmZyYW1lKCksIGZhbHNlKTsKIH0KIAotYm9vbCBWOExvY2F0aW9uOjpuYW1lZFNlY3Vy
aXR5Q2hlY2sodjg6OkxvY2FsPHY4OjpPYmplY3Q+IGhvc3QsIHY4OjpMb2NhbDx2ODo6VmFsdWU+
IGtleSwgdjg6OkFjY2Vzc1R5cGUgdHlwZSwgdjg6OkxvY2FsPHY4OjpWYWx1ZT4gZGF0YSkKK2Jv
b2wgVjhMb2NhdGlvbjo6bmFtZWRTZWN1cml0eUNoZWNrKHY4OjpMb2NhbDx2ODo6T2JqZWN0PiBo
b3N0LCB2ODo6TG9jYWw8djg6OlZhbHVlPiBrZXksIHY4OjpBY2Nlc3NUeXBlIHR5cGUsIHY4OjpM
b2NhbDx2ODo6VmFsdWU+KQogewotICAgIEFTU0VSVChWOENsYXNzSW5kZXg6OkZyb21JbnQoZGF0
YS0+SW50MzJWYWx1ZSgpKSA9PSBWOENsYXNzSW5kZXg6OkxPQ0FUSU9OKTsKICAgICAvLyBPbmx5
IGFsbG93IHNhbWUgb3JpZ2luIGFjY2VzcwogICAgIExvY2F0aW9uKiBpbXAgPSBWOExvY2F0aW9u
Ojp0b05hdGl2ZShob3N0KTsKICAgICByZXR1cm4gVjhCaW5kaW5nU2VjdXJpdHk6OmNhbkFjY2Vz
c0ZyYW1lKFY4QmluZGluZ1N0YXRlOjpPbmx5KCksIGltcC0+ZnJhbWUoKSwgZmFsc2UpOwpJbmRl
eDogV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhFdmVudFNvdXJjZUNvbnN0cnVjdG9yLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEV2ZW50U291cmNl
Q29uc3RydWN0b3IuY3BwCShyZXZpc2lvbiA1NjEzMSkKKysrIFdlYkNvcmUvYmluZGluZ3Mvdjgv
Y3VzdG9tL1Y4RXZlbnRTb3VyY2VDb25zdHJ1Y3Rvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY2
LDcgKzY2LDcgQEAKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGVjKTsK
IAotICAgIFY4RE9NV3JhcHBlcjo6c2V0RE9NV3JhcHBlcihhcmdzLkhvbGRlcigpLCBWOENsYXNz
SW5kZXg6OlRvSW50KFY4Q2xhc3NJbmRleDo6RVZFTlRTT1VSQ0UpLCBldmVudFNvdXJjZS5nZXQo
KSk7CisgICAgVjhET01XcmFwcGVyOjpzZXRET01XcmFwcGVyKGFyZ3MuSG9sZGVyKCksICZpbmZv
LCBldmVudFNvdXJjZS5nZXQoKSk7CiAKICAgICAvLyBBZGQgb2JqZWN0IHRvIHRoZSB3cmFwcGVy
IG1hcC4KICAgICBldmVudFNvdXJjZS0+cmVmKCk7CkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL3Y4
L2N1c3RvbS9WOEhpc3RvcnlDdXN0b20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGlu
Z3MvdjgvY3VzdG9tL1Y4SGlzdG9yeUN1c3RvbS5jcHAJKHJldmlzaW9uIDU2MTMxKQorKysgV2Vi
Q29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhIaXN0b3J5Q3VzdG9tLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtODMsMTcgKzgzLDE1IEBACiAgICAgcmV0dXJuIHRocm93RXJyb3IoZWMpOwogfQogCi1i
b29sIFY4SGlzdG9yeTo6aW5kZXhlZFNlY3VyaXR5Q2hlY2sodjg6OkxvY2FsPHY4OjpPYmplY3Q+
IGhvc3QsIHVpbnQzMl90IGluZGV4LCB2ODo6QWNjZXNzVHlwZSB0eXBlLCB2ODo6TG9jYWw8djg6
OlZhbHVlPiBkYXRhKQorYm9vbCBWOEhpc3Rvcnk6OmluZGV4ZWRTZWN1cml0eUNoZWNrKHY4OjpM
b2NhbDx2ODo6T2JqZWN0PiBob3N0LCB1aW50MzJfdCBpbmRleCwgdjg6OkFjY2Vzc1R5cGUgdHlw
ZSwgdjg6OkxvY2FsPHY4OjpWYWx1ZT4pCiB7Ci0gICAgQVNTRVJUKFY4Q2xhc3NJbmRleDo6RnJv
bUludChkYXRhLT5JbnQzMlZhbHVlKCkpID09IFY4Q2xhc3NJbmRleDo6SElTVE9SWSk7CiAgICAg
Ly8gT25seSBhbGxvdyBzYW1lIG9yaWdpbiBhY2Nlc3MuCiAgICAgSGlzdG9yeSogaGlzdG9yeSA9
IFY4SGlzdG9yeTo6dG9OYXRpdmUoaG9zdCk7CiAgICAgcmV0dXJuIFY4QmluZGluZ1NlY3VyaXR5
OjpjYW5BY2Nlc3NGcmFtZShWOEJpbmRpbmdTdGF0ZTo6T25seSgpLCBoaXN0b3J5LT5mcmFtZSgp
LCBmYWxzZSk7CiB9CiAKLWJvb2wgVjhIaXN0b3J5OjpuYW1lZFNlY3VyaXR5Q2hlY2sodjg6Okxv
Y2FsPHY4OjpPYmplY3Q+IGhvc3QsIHY4OjpMb2NhbDx2ODo6VmFsdWU+IGtleSwgdjg6OkFjY2Vz
c1R5cGUgdHlwZSwgdjg6OkxvY2FsPHY4OjpWYWx1ZT4gZGF0YSkKK2Jvb2wgVjhIaXN0b3J5Ojpu
YW1lZFNlY3VyaXR5Q2hlY2sodjg6OkxvY2FsPHY4OjpPYmplY3Q+IGhvc3QsIHY4OjpMb2NhbDx2
ODo6VmFsdWU+IGtleSwgdjg6OkFjY2Vzc1R5cGUgdHlwZSwgdjg6OkxvY2FsPHY4OjpWYWx1ZT4p
CiB7Ci0gICAgQVNTRVJUKFY4Q2xhc3NJbmRleDo6RnJvbUludChkYXRhLT5JbnQzMlZhbHVlKCkp
ID09IFY4Q2xhc3NJbmRleDo6SElTVE9SWSk7CiAgICAgLy8gT25seSBhbGxvdyBzYW1lIG9yaWdp
biBhY2Nlc3MuCiAgICAgSGlzdG9yeSogaGlzdG9yeSA9IFY4SGlzdG9yeTo6dG9OYXRpdmUoaG9z
dCk7CiAgICAgcmV0dXJuIFY4QmluZGluZ1NlY3VyaXR5OjpjYW5BY2Nlc3NGcmFtZShWOEJpbmRp
bmdTdGF0ZTo6T25seSgpLCBoaXN0b3J5LT5mcmFtZSgpLCBmYWxzZSk7CkluZGV4OiBXZWJDb3Jl
L2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYkdMVW5zaWduZWRJbnRBcnJheUN1c3RvbS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhXZWJHTFVuc2lnbmVkSW50
QXJyYXlDdXN0b20uY3BwCShyZXZpc2lvbiA1NjEzMSkKKysrIFdlYkNvcmUvYmluZGluZ3Mvdjgv
Y3VzdG9tL1Y4V2ViR0xVbnNpZ25lZEludEFycmF5Q3VzdG9tLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNDcsMTMgKzQ3LDEzIEBACiB7CiAgICAgSU5DX1NUQVRTKCJET00uV2ViR0xVbnNpZ25lZElu
dEFycmF5LkNvbnRydWN0b3IiKTsKIAotICAgIHJldHVybiBjb25zdHJ1Y3RXZWJHTEFycmF5PFdl
YkdMVW5zaWduZWRJbnRBcnJheSwgdW5zaWduZWQgaW50PihhcmdzLCAmaW5mbyk7CisgICAgcmV0
dXJuIGNvbnN0cnVjdFdlYkdMQXJyYXk8V2ViR0xVbnNpZ25lZEludEFycmF5LCB1bnNpZ25lZCBp
bnQ+KGFyZ3MsICZpbmZvLCB2ODo6a0V4dGVybmFsVW5zaWduZWRJbnRBcnJheSk7CiB9CiAKIHY4
OjpIYW5kbGU8djg6OlZhbHVlPiBWOFdlYkdMVW5zaWduZWRJbnRBcnJheTo6c2V0Q2FsbGJhY2so
Y29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKIHsKICAgICBJTkNfU1RBVFMoIkRPTS5XZWJHTFVu
c2lnbmVkSW50QXJyYXkuc2V0KCkiKTsKLSAgICByZXR1cm4gc2V0V2ViR0xBcnJheTxXZWJHTFVu
c2lnbmVkSW50QXJyYXksIFY4V2ViR0xVbnNpZ25lZEludEFycmF5PihhcmdzLCBWOENsYXNzSW5k
ZXg6OldFQkdMVU5TSUdORURJTlRBUlJBWSk7CisgICAgcmV0dXJuIHNldFdlYkdMQXJyYXk8V2Vi
R0xVbnNpZ25lZEludEFycmF5LCBWOFdlYkdMVW5zaWduZWRJbnRBcnJheT4oYXJncyk7CiB9CiAK
IHY4OjpIYW5kbGU8djg6OlZhbHVlPiB0b1Y4KFdlYkdMVW5zaWduZWRJbnRBcnJheSogaW1wbCkK
SW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViR0xJbnRBcnJheUN1c3RvbS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhXZWJHTEludEFy
cmF5Q3VzdG9tLmNwcAkocmV2aXNpb24gNTYxMzEpCisrKyBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1
c3RvbS9WOFdlYkdMSW50QXJyYXlDdXN0b20uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NywxMyAr
NDcsMTMgQEAKIHsKICAgICBJTkNfU1RBVFMoIkRPTS5XZWJHTEludEFycmF5LkNvbnRydWN0b3Ii
KTsKIAotICAgIHJldHVybiBjb25zdHJ1Y3RXZWJHTEFycmF5PFdlYkdMSW50QXJyYXksIGludD4o
YXJncywgJmluZm8pOworICAgIHJldHVybiBjb25zdHJ1Y3RXZWJHTEFycmF5PFdlYkdMSW50QXJy
YXksIGludD4oYXJncywgJmluZm8sIHY4OjprRXh0ZXJuYWxJbnRBcnJheSk7CiB9CiAKIHY4OjpI
YW5kbGU8djg6OlZhbHVlPiBWOFdlYkdMSW50QXJyYXk6OnNldENhbGxiYWNrKGNvbnN0IHY4OjpB
cmd1bWVudHMmIGFyZ3MpCiB7CiAgICAgSU5DX1NUQVRTKCJET00uV2ViR0xJbnRBcnJheS5zZXQo
KSIpOwotICAgIHJldHVybiBzZXRXZWJHTEFycmF5PFdlYkdMSW50QXJyYXksIFY4V2ViR0xJbnRB
cnJheT4oYXJncywgVjhDbGFzc0luZGV4OjpXRUJHTElOVEFSUkFZKTsKKyAgICByZXR1cm4gc2V0
V2ViR0xBcnJheTxXZWJHTEludEFycmF5LCBWOFdlYkdMSW50QXJyYXk+KGFyZ3MpOwogfQogCiB2
ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdG9WOChXZWJHTEludEFycmF5KiBpbXBsKQpJbmRleDogV2Vi
Q29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhIVE1MQXVkaW9FbGVtZW50Q29uc3RydWN0b3IuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SFRNTEF1ZGlvRWxl
bWVudENvbnN0cnVjdG9yLmNwcAkocmV2aXNpb24gNTYxMzEpCisrKyBXZWJDb3JlL2JpbmRpbmdz
L3Y4L2N1c3RvbS9WOEhUTUxBdWRpb0VsZW1lbnRDb25zdHJ1Y3Rvci5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTQ0LDcgKzQ0LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1XcmFwcGVyVHlw
ZUluZm8gVjhIVE1MQXVkaW9FbGVtZW50Q29uc3RydWN0b3I6OmluZm8gPSB7VjhDbGFzc0luZGV4
OjpUb0ludChWOENsYXNzSW5kZXg6OkFVRElPKSwgVjhIVE1MQXVkaW9FbGVtZW50Q29uc3RydWN0
b3I6OkdldFRlbXBsYXRlLCAwLCBmYWxzZSB9OworV3JhcHBlclR5cGVJbmZvIFY4SFRNTEF1ZGlv
RWxlbWVudENvbnN0cnVjdG9yOjppbmZvID0geyBWOEhUTUxBdWRpb0VsZW1lbnRDb25zdHJ1Y3Rv
cjo6R2V0VGVtcGxhdGUsIDAsIGZhbHNlIH07CiAKIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1
ZT4gdjhIVE1MQXVkaW9FbGVtZW50Q29uc3RydWN0b3JDYWxsYmFjayhjb25zdCB2ODo6QXJndW1l
bnRzJiBhcmdzKQogewpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhXZWJHTFNo
b3J0QXJyYXlDdXN0b20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvdjgvY3Vz
dG9tL1Y4V2ViR0xTaG9ydEFycmF5Q3VzdG9tLmNwcAkocmV2aXNpb24gNTYxMzEpCisrKyBXZWJD
b3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYkdMU2hvcnRBcnJheUN1c3RvbS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTQ3LDEzICs0NywxMyBAQAogewogICAgIElOQ19TVEFUUygiRE9NLldlYkdM
U2hvcnRBcnJheS5Db250cnVjdG9yIik7CiAKLSAgICByZXR1cm4gY29uc3RydWN0V2ViR0xBcnJh
eTxXZWJHTFNob3J0QXJyYXksIHNob3J0PihhcmdzLCAmaW5mbyk7CisgICAgcmV0dXJuIGNvbnN0
cnVjdFdlYkdMQXJyYXk8V2ViR0xTaG9ydEFycmF5LCBzaG9ydD4oYXJncywgJmluZm8sIHY4Ojpr
RXh0ZXJuYWxTaG9ydEFycmF5KTsKIH0KIAogdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4V2ViR0xT
aG9ydEFycmF5OjpzZXRDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQogewogICAg
IElOQ19TVEFUUygiRE9NLldlYkdMU2hvcnRBcnJheS5zZXQoKSIpOwotICAgIHJldHVybiBzZXRX
ZWJHTEFycmF5PFdlYkdMU2hvcnRBcnJheSwgVjhXZWJHTFNob3J0QXJyYXk+KGFyZ3MsIFY4Q2xh
c3NJbmRleDo6V0VCR0xTSE9SVEFSUkFZKTsKKyAgICByZXR1cm4gc2V0V2ViR0xBcnJheTxXZWJH
TFNob3J0QXJyYXksIFY4V2ViR0xTaG9ydEFycmF5PihhcmdzKTsKIH0KIAogdjg6OkhhbmRsZTx2
ODo6VmFsdWU+IHRvVjgoV2ViR0xTaG9ydEFycmF5KiBpbXBsKQpJbmRleDogV2ViQ29yZS9XZWJD
b3JlLmd5cGkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLmd5cGkJKHJldmlzaW9uIDU2
MTMxKQorKysgV2ViQ29yZS9XZWJDb3JlLmd5cGkJKHdvcmtpbmcgY29weSkKQEAgLTg3Niw3ICs4
NzYsNiBAQAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L1Y4SGVscGVycy5oJywKICAgICAgICAg
ICAgICdiaW5kaW5ncy92OC9WOEhpZGRlblByb3BlcnR5TmFtZS5jcHAnLAogICAgICAgICAgICAg
J2JpbmRpbmdzL3Y4L1Y4SGlkZGVuUHJvcGVydHlOYW1lLmgnLAotICAgICAgICAgICAgJ2JpbmRp
bmdzL3Y4L1Y4SW5kZXguaCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvVjhJc29sYXRlZENv
bnRleHQuY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9WOElzb2xhdGVkQ29udGV4dC5o
JywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9WOExhenlFdmVudExpc3RlbmVyLmNwcCcsCkBA
IC05MDAsNiArODk5LDcgQEAKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9Xb3JrZXJTY3JpcHRD
b250cm9sbGVyLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvV29ybGRDb250ZXh0SGFu
ZGxlLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvV29ybGRDb250ZXh0SGFuZGxlLmgn
LAorICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L1dyYXBwZXJUeXBlSW5mby5oJywKICAgICAgICAg
ICAgICdiaW5kaW5ncy92OC9ucHJ1bnRpbWUuY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy92
OC9ucHJ1bnRpbWVfaW1wbC5oJywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9ucHJ1bnRpbWVf
aW50ZXJuYWwuaCcsCg==
</data>
<flag name="review"
          id="34155"
          type_id="1"
          status="+"
          setter="dglazkov"
    />
          </attachment>
      

    </bug>

</bugzilla>