<?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>163699</bug_id>
          
          <creation_ts>2016-10-19 15:23:12 -0700</creation_ts>
          <short_desc>WebAssembly API: implement exception constructors properly</short_desc>
          <delta_ts>2016-10-20 18:22:14 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>161709</blocked>
    
    <blocked>163768</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="JF Bastien">jfbastien</reporter>
          <assigned_to name="JF Bastien">jfbastien</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1242154</commentid>
    <comment_count>0</comment_count>
    <who name="JF Bastien">jfbastien</who>
    <bug_when>2016-10-19 15:23:12 -0700</bug_when>
    <thetext>The current exception constructors just throw instead of doing The Right Thing.

There&apos;s a small quibble about whether just calling the constructor as a function should be a TypeError: https://github.com/WebAssembly/design/issues/825</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1242668</commentid>
    <comment_count>1</comment_count>
      <attachid>292286</attachid>
    <who name="JF Bastien">jfbastien</who>
    <bug_when>2016-10-20 16:55:09 -0700</bug_when>
    <thetext>Created attachment 292286
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1242669</commentid>
    <comment_count>2</comment_count>
    <who name="JF Bastien">jfbastien</who>
    <bug_when>2016-10-20 16:57:10 -0700</bug_when>
    <thetext>This was trickier than I thought it was! It&apos;s almost there:

I don&apos;t think I&apos;m setting the .name property correctly though: if you do String(new WebAssembly.CompileError()) then you get &quot;Error&quot;, not &quot;CompileError&quot;.

Any idea what I&apos;ve missed?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1242679</commentid>
    <comment_count>3</comment_count>
      <attachid>292291</attachid>
    <who name="JF Bastien">jfbastien</who>
    <bug_when>2016-10-20 17:25:28 -0700</bug_when>
    <thetext>Created attachment 292291
patch

The previous patch was missing a bunch of `#if ENABLE(WEBASSEMBLY)` which made the 32-bit builds *very* sad. Don&apos;t be a jerk: make it happy.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1242682</commentid>
    <comment_count>4</comment_count>
      <attachid>292291</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2016-10-20 17:39:28 -0700</bug_when>
    <thetext>Comment on attachment 292291
patch

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

r=me with typo fix.

&gt; JSTests/ChangeLog:9
&gt; +         - The error constructors used to thow (e.g. `new WebAssembly.CompileError()`).

thow =&gt; throw

&gt; Source/JavaScriptCore/ChangeLog:9
&gt; +         - The error constructors used to thow (e.g. `new WebAssembly.CompileError()`).

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1242684</commentid>
    <comment_count>5</comment_count>
      <attachid>292293</attachid>
    <who name="JF Bastien">jfbastien</who>
    <bug_when>2016-10-20 17:42:40 -0700</bug_when>
    <thetext>Created attachment 292293
patch

Fix typo.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1242686</commentid>
    <comment_count>6</comment_count>
      <attachid>292293</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-10-20 17:43:42 -0700</bug_when>
    <thetext>Comment on attachment 292293
patch

Rejecting attachment 292293 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.webkit.org&apos;, &apos;--bot-id=webkit-cq-02&apos;, &apos;validate-changelog&apos;, &apos;--check-oops&apos;, &apos;--non-interactive&apos;, 292293, &apos;--port=mac&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

ChangeLog entry in JSTests/ChangeLog contains OOPS!.

Full output: http://webkit-queues.webkit.org/results/2334501</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1242690</commentid>
    <comment_count>7</comment_count>
    <who name="JF Bastien">jfbastien</who>
    <bug_when>2016-10-20 17:45:55 -0700</bug_when>
    <thetext>I filed the following to fix .name separately: https://bugs.webkit.org/show_bug.cgi?id=163768</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1242691</commentid>
    <comment_count>8</comment_count>
      <attachid>292295</attachid>
    <who name="JF Bastien">jfbastien</who>
    <bug_when>2016-10-20 17:47:30 -0700</bug_when>
    <thetext>Created attachment 292295
patch

Fix reviewer. I&apos;ll get used to this workflow some day...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1242718</commentid>
    <comment_count>9</comment_count>
      <attachid>292295</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-10-20 18:22:09 -0700</bug_when>
    <thetext>Comment on attachment 292295
patch

Clearing flags on attachment: 292295

Committed r207650: &lt;http://trac.webkit.org/changeset/207650&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1242719</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-10-20 18:22:14 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>292286</attachid>
            <date>2016-10-20 16:55:09 -0700</date>
            <delta_ts>2016-10-20 17:25:28 -0700</delta_ts>
            <desc>patch</desc>
            <filename>0001-WebAssembly-API-implement-exception-constructors-pro.patch</filename>
            <type>text/plain</type>
            <size>65703</size>
            <attacher name="JF Bastien">jfbastien</attacher>
            
              <data encoding="base64">RnJvbSAyNDVhMDRmNzM1YTk3MzFiZjI3NDk2OGI3YTliMjViMDIwNmI1YTBhIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKRiBCYXN0aWVuIDxqZmJhc3RpZW5AYXBwbGUuY29tPgpEYXRl
OiBXZWQsIDE5IE9jdCAyMDE2IDE1OjQ0OjQzIC0wNzAwClN1YmplY3Q6IFtQQVRDSF0gV2ViQXNz
ZW1ibHkgQVBJOiBpbXBsZW1lbnQgZXhjZXB0aW9uIGNvbnN0cnVjdG9ycyBwcm9wZXJseQoKIC0g
UmVuYW1lIFdlYkFzc2VtYmx5T2JqZWN0IHRvIEpTV2ViQXNzZW1ibHkgZm9yIGNvbnNpc3RlbmN5
LgogLSBXZWJBc3NlbWJseSBvYmplY3Qgbm93IGhhcyBpdHMgb3duIHByb3RvdHlwZTogYWRkIFdl
YkFzc2VtYmx5UHJvdG90eXBlLCBhbmQKICAgdXNlIGl0IHRvIHJlZ2lzdGVyIEpTV2ViQXNzZW1i
bHkncyBmdW5jdGlvbiBwcm9wZXJ0aWVzIHRocm91Z2ggYXV0by1nZW5lcmF0ZWQKICAgLmx1dC5o
LCBpbnN0ZWFkIG9mIG1hbnVhbGx5LgogLSBUaGUgZXJyb3IgY29uc3RydWN0b3JzIHVzZWQgdG8g
dGhvdyAoZS5nLiBgbmV3IFdlYkFzc2VtYmx5LkNvbXBpbGVFcnJvcigpYCkuCiAtIFJlZ2lzdGVy
IFdlYkFzc2VtYmx5J3MgY29uc3RydWN0b3JzIGZyb20gdGhlIGdsb2JhbCBvYmplY3QsIGFuZCBo
b2xkIGEKICAgcmVmZXJlbmNlIHRvIHRoZWlyIHN0cnVjdHVyZSBhbmQgcHJvdG90eXBlIHNvIHRo
YXQgaW52b2tpbmcgdGhlIGNvbnN0cnVjdG9yCiAgIGNhbiB1c2UgdGhlIHN0cnVjdHVyZSBkaXJl
Y3RseSBmcm9tIHRoZSBnbG9iYWwgb2JqZWN0LgogLSBBZGQgYSBwcm90b3R5cGUgYmFzZSBmaWVs
ZCB0byBnbG9iYWwgb2JqZWN0IGNyZWF0aW9uLiBQcmV2aW91cyBvbmVzIGFsbCBoYWQKICAgT2Jq
ZWN0J3MgcHJvdG90eXBlIGFzIHRoZWlyIGJhc2UsIGJ1dCBXZWJBc3NlbWJseSdzIGVycm9yIGNv
bnN0cnVjdG9ycyBoYXZlCiAgIEVycm9yIGFzIHRoZWlyIGJhc2UuCi0gVGVzdCBmb3IgdGhlIGVy
cm9yIG9iamVjdCdzIGNvcnJlY3RuZXNzLgotLS0KIEpTVGVzdHMvQ2hhbmdlTG9nICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDI1ICsrKysrCiBKU1Rlc3RzL3dhc20vanMtYXBp
L3Rlc3RfYmFzaWNfYXBpLmpzICAgICAgICAgICAgICB8ICAyMiArKystCiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvQ01ha2VMaXN0cy50eHQgICAgICAgICAgICAgICB8ICAgNCArLQogU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgfCAgNTcgKysrKysrKysr
KysKIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9EZXJpdmVkU291cmNlcy5tYWtlICAgICAgICAgIHwg
ICAxICsKIC4uLi9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qICAgICAg
IHwgIDI0ICsrKy0tCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVj
dC5jcHAgICB8ICA1NSArKysrKystLS0tCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0dsb2JhbE9iamVjdC5oICAgICB8ICA1NyArKysrKysrLS0tLQogU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vSlNXZWJBc3NlbWJseS5jcHAgICAgICAgfCAgNjEgKysrKysrKysrKysKIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL0pTV2ViQXNzZW1ibHkuaCAgICAgICAgIHwgIDY3ICsrKysr
KysrKysrKwogU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2ViQXNzZW1ibHlPYmplY3QuY3Bw
ICAgfCAxMTMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAuLi4vd2FzbS9qcy9KU1dlYkFzc2VtYmx5
Q29tcGlsZUVycm9yLmggICAgICAgICAgICB8ICAgNCArCiAuLi4vd2FzbS9qcy9KU1dlYkFzc2Vt
Ymx5UnVudGltZUVycm9yLmggICAgICAgICAgICB8ICAgNCArCiAuLi4vd2FzbS9qcy9XZWJBc3Nl
bWJseUNvbXBpbGVFcnJvckNvbnN0cnVjdG9yLmNwcCB8ICAyMSArKy0tCiAuLi4vd2FzbS9qcy9X
ZWJBc3NlbWJseUNvbXBpbGVFcnJvckNvbnN0cnVjdG9yLmggICB8ICAgNSAtCiAuLi4vd2FzbS9q
cy9XZWJBc3NlbWJseVByb3RvdHlwZS5jcHAgICAgICAgICAgICAgICB8ICA4NSArKysrKysrKysr
KysrKysrCiAuLi4vV2ViQXNzZW1ibHlQcm90b3R5cGUuaH0gICAgICAgICAgICAgICAgICAgICAg
ICB8ICAyNCArKy0tLQogLi4uL3dhc20vanMvV2ViQXNzZW1ibHlSdW50aW1lRXJyb3JDb25zdHJ1
Y3Rvci5jcHAgfCAgMjEgKystLQogLi4uL3dhc20vanMvV2ViQXNzZW1ibHlSdW50aW1lRXJyb3JD
b25zdHJ1Y3Rvci5oICAgfCAgIDUgLQogMTkgZmlsZXMgY2hhbmdlZCwgNDM4IGluc2VydGlvbnMo
KyksIDIxNyBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9KU1dlYkFzc2VtYmx5LmNwcAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL0pTV2ViQXNzZW1ibHkuaAogZGVsZXRlIG1vZGUgMTAwNjQ0IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dlYkFzc2VtYmx5T2JqZWN0LmNwcAogY3JlYXRlIG1v
ZGUgMTAwNjQ0IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5UHJvdG90
eXBlLmNwcAogcmVuYW1lIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL3tXZWJBc3NlbWJseU9i
amVjdC5oID0+IGpzL1dlYkFzc2VtYmx5UHJvdG90eXBlLmh9ICg3NCUpCgpkaWZmIC0tZ2l0IGEv
SlNUZXN0cy9DaGFuZ2VMb2cgYi9KU1Rlc3RzL0NoYW5nZUxvZwppbmRleCBkZDM3NTAyLi4yNjU1
ZTQ2IDEwMDY0NAotLS0gYS9KU1Rlc3RzL0NoYW5nZUxvZworKysgYi9KU1Rlc3RzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDI4IEBACisyMDE2LTEwLTIwICBKRiBCYXN0aWVuICA8amZiYXN0aWVuQGFw
cGxlLmNvbT4KKworICAgICAgICBXZWJBc3NlbWJseSBBUEk6IGltcGxlbWVudCBleGNlcHRpb24g
Y29uc3RydWN0b3JzIHByb3Blcmx5CisKKyAgICAgICAgIC0gUmVuYW1lIFdlYkFzc2VtYmx5T2Jq
ZWN0IHRvIEpTV2ViQXNzZW1ibHkgZm9yIGNvbnNpc3RlbmN5LgorICAgICAgICAgLSBXZWJBc3Nl
bWJseSBvYmplY3Qgbm93IGhhcyBpdHMgb3duIHByb3RvdHlwZTogYWRkIFdlYkFzc2VtYmx5UHJv
dG90eXBlLCBhbmQKKyAgICAgICAgICAgdXNlIGl0IHRvIHJlZ2lzdGVyIEpTV2ViQXNzZW1ibHkn
cyBmdW5jdGlvbiBwcm9wZXJ0aWVzIHRocm91Z2ggYXV0by1nZW5lcmF0ZWQKKyAgICAgICAgICAg
Lmx1dC5oLCBpbnN0ZWFkIG9mIG1hbnVhbGx5LgorICAgICAgICAgLSBUaGUgZXJyb3IgY29uc3Ry
dWN0b3JzIHVzZWQgdG8gdGhvdyAoZS5nLiBgbmV3IFdlYkFzc2VtYmx5LkNvbXBpbGVFcnJvcigp
YCkuCisgICAgICAgICAtIFJlZ2lzdGVyIFdlYkFzc2VtYmx5J3MgY29uc3RydWN0b3JzIGZyb20g
dGhlIGdsb2JhbCBvYmplY3QsIGFuZCBob2xkIGEKKyAgICAgICAgICAgcmVmZXJlbmNlIHRvIHRo
ZWlyIHN0cnVjdHVyZSBhbmQgcHJvdG90eXBlIHNvIHRoYXQgaW52b2tpbmcgdGhlIGNvbnN0cnVj
dG9yCisgICAgICAgICAgIGNhbiB1c2UgdGhlIHN0cnVjdHVyZSBkaXJlY3RseSBmcm9tIHRoZSBn
bG9iYWwgb2JqZWN0LgorICAgICAgICAgLSBBZGQgYSBwcm90b3R5cGUgYmFzZSBmaWVsZCB0byBn
bG9iYWwgb2JqZWN0IGNyZWF0aW9uLiBQcmV2aW91cyBvbmVzIGFsbCBoYWQKKyAgICAgICAgICAg
T2JqZWN0J3MgcHJvdG90eXBlIGFzIHRoZWlyIGJhc2UsIGJ1dCBXZWJBc3NlbWJseSdzIGVycm9y
IGNvbnN0cnVjdG9ycyBoYXZlCisgICAgICAgICAgIEVycm9yIGFzIHRoZWlyIGJhc2UuCisgICAg
ICAgIC0gVGVzdCBmb3IgdGhlIGVycm9yIG9iamVjdCdzIGNvcnJlY3RuZXNzLgorCisgICAgICAg
IFdlYkFzc2VtYmx5IEFQSTogaW1wbGVtZW50IGV4Y2VwdGlvbiBjb25zdHJ1Y3RvcnMgcHJvcGVy
bHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MzY5
OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogd2Fz
bS9qcy1hcGkvdGVzdF9iYXNpY19hcGkuanM6CisgICAgICAgIChjb25zdC5jLmluLmNvbnN0cnVj
dG9yUHJvcGVydGllcyk6IG1vcmUgdGVzdHMKKwogMjAxNi0xMC0yMCAgQ2FpdGxpbiBQb3R0ZXIg
IDxjYWl0cEBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtKU0NdIGRpc2FsbG93IHJlZmVyZW5jZXMg
dG8gYGF3YWl0YCBpbiBBc3luY0Z1bmN0aW9uIGZvcm1hbCBwYXJhbWV0ZXJzCmRpZmYgLS1naXQg
YS9KU1Rlc3RzL3dhc20vanMtYXBpL3Rlc3RfYmFzaWNfYXBpLmpzIGIvSlNUZXN0cy93YXNtL2pz
LWFwaS90ZXN0X2Jhc2ljX2FwaS5qcwppbmRleCBiYmQ1MGI1Li5jNGUxOTI3IDEwMDY0NAotLS0g
YS9KU1Rlc3RzL3dhc20vanMtYXBpL3Rlc3RfYmFzaWNfYXBpLmpzCisrKyBiL0pTVGVzdHMvd2Fz
bS9qcy1hcGkvdGVzdF9iYXNpY19hcGkuanMKQEAgLTI3LDYgKzI3LDkgQEAgYXNzZXJ0Lm5vdFVu
ZGVmKFdlYkFzc2VtYmx5KTsKIGNoZWNrT3duUHJvcGVydHlEZXNjcmlwdG9yKHV0aWxpdGllcy5n
bG9iYWwsICJXZWJBc3NlbWJseSIsIHsgdHlwZW9mdmFsdWU6ICJvYmplY3QiLCB3cml0YWJsZTog
dHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlLCBlbnVtZXJhYmxlOiBmYWxzZSB9KTsKIGFzc2VydC5l
cShTdHJpbmcoV2ViQXNzZW1ibHkpLCAiW29iamVjdCBXZWJBc3NlbWJseV0iKTsKIGFzc2VydC5p
c1VuZGVmKFdlYkFzc2VtYmx5Lmxlbmd0aCk7Cithc3NlcnQuZXEoV2ViQXNzZW1ibHkgaW5zdGFu
Y2VvZiBPYmplY3QsIHRydWUpOworYXNzZXJ0LnRocm93cygoKSA9PiBXZWJBc3NlbWJseSgpLCBU
eXBlRXJyb3IsIGBXZWJBc3NlbWJseSBpcyBub3QgYSBmdW5jdGlvbi4gKEluICdXZWJBc3NlbWJs
eSgpJywgJ1dlYkFzc2VtYmx5JyBpcyBhbiBpbnN0YW5jZSBvZiBXZWJBc3NlbWJseSlgKTsKK2Fz
c2VydC50aHJvd3MoKCkgPT4gbmV3IFdlYkFzc2VtYmx5KCksIFR5cGVFcnJvciwgYFdlYkFzc2Vt
Ymx5IGlzIG5vdCBhIGNvbnN0cnVjdG9yIChldmFsdWF0aW5nICduZXcgV2ViQXNzZW1ibHkoKScp
YCk7CiAKIGZvciAoY29uc3QgZiBpbiBmdW5jdGlvblByb3BlcnRpZXMpIHsKICAgICBhc3NlcnQu
bm90VW5kZWYoV2ViQXNzZW1ibHlbZl0pOwpAQCAtMzksMTAgKzQyLDE5IEBAIGZvciAoY29uc3Qg
YyBpbiBjb25zdHJ1Y3RvclByb3BlcnRpZXMpIHsKICAgICBhc3NlcnQuZXEoV2ViQXNzZW1ibHlb
Y10ubmFtZSwgYyk7CiAgICAgYXNzZXJ0LmVxKFdlYkFzc2VtYmx5W2NdLmxlbmd0aCwgY29uc3Ry
dWN0b3JQcm9wZXJ0aWVzW2NdLmxlbmd0aCk7CiAgICAgY2hlY2tPd25Qcm9wZXJ0eURlc2NyaXB0
b3IoV2ViQXNzZW1ibHksIGMsIGNvbnN0cnVjdG9yUHJvcGVydGllc1tjXSk7Ci0gICAgLy8gQ2hl
Y2sgdGhlIGNvbnN0cnVjdG9yJ3MgcHJvdG90eXBlLgogICAgIGNoZWNrT3duUHJvcGVydHlEZXNj
cmlwdG9yKFdlYkFzc2VtYmx5W2NdLCAicHJvdG90eXBlIiwgeyB0eXBlb2Z2YWx1ZTogIm9iamVj
dCIsIHdyaXRhYmxlOiBmYWxzZSwgY29uZmlndXJhYmxlOiBmYWxzZSwgZW51bWVyYWJsZTogZmFs
c2UgfSk7Ci0gICAgYXNzZXJ0LmVxKFN0cmluZyhXZWJBc3NlbWJseVtjXS5wcm90b3R5cGUpLCBg
W29iamVjdCBXZWJBc3NlbWJseS4ke2N9LnByb3RvdHlwZV1gKTsKICAgICBhc3NlcnQudGhyb3dz
KCgpID0+IFdlYkFzc2VtYmx5W2NdKCksIFR5cGVFcnJvciwgYGNhbGxpbmcgV2ViQXNzZW1ibHku
JHtjfSBjb25zdHJ1Y3RvciB3aXRob3V0IG5ldyBpcyBpbnZhbGlkYCk7CisgICAgaWYgKGNvbnN0
cnVjdG9yUHJvcGVydGllc1tjXS5pc0Vycm9yKSB7CisgICAgICAgIGNvbnN0IGUgPSBuZXcgV2Vi
QXNzZW1ibHlbY107CisgICAgICAgIGFzc2VydC5lcShlIGluc3RhbmNlb2YgV2ViQXNzZW1ibHlb
Y10sIHRydWUpOworICAgICAgICBhc3NlcnQuZXEoZSBpbnN0YW5jZW9mIEVycm9yLCB0cnVlKTsK
KyAgICAgICAgYXNzZXJ0LmVxKGUgaW5zdGFuY2VvZiBUeXBlRXJyb3IsIGZhbHNlKTsKKyAgICAg
ICAgYXNzZXJ0LmVxKGUubWVzc2FnZSwgIiIpOworICAgICAgICBhc3NlcnQuZXEodHlwZW9mIGUu
c3RhY2ssICJzdHJpbmciKTsKKyAgICAgICAgY29uc3Qgc2lsbHlTdHJpbmcgPSAidWgtb2ghIjsK
KyAgICAgICAgY29uc3QgZTIgPSBuZXcgV2ViQXNzZW1ibHlbY10oc2lsbHlTdHJpbmcpOworICAg
ICAgICBhc3NlcnQuZXEoZTIubWVzc2FnZSwgc2lsbHlTdHJpbmcpOworICAgIH0KIH0KIAogLy8g
RklYTUUgSW1wbGVtZW50IGFuZCB0ZXN0IHRoZXNlIEFQSXMgZnVydGhlci4gRm9yIG5vdyB0aGV5
IGp1c3QgdGhyb3cuIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTk3
NzUKQEAgLTUxLDUgKzYzLDcgQEAgZm9yIChjb25zdCBmIGluIGZ1bmN0aW9uUHJvcGVydGllcykg
ewogICAgIGFzc2VydC50aHJvd3MoKCkgPT4gV2ViQXNzZW1ibHlbZl0oKSwgRXJyb3IsIGBXZWJB
c3NlbWJseSBkb2Vzbid0IHlldCBpbXBsZW1lbnQgdGhlICR7Zn0gZnVuY3Rpb24gcHJvcGVydHlg
KTsKIH0KIAotZm9yIChjb25zdCBjIGluIGNvbnN0cnVjdG9yUHJvcGVydGllcykKLSAgICBhc3Nl
cnQudGhyb3dzKCgpID0+IG5ldyBXZWJBc3NlbWJseVtjXSgpLCBFcnJvciwgYFdlYkFzc2VtYmx5
IGRvZXNuJ3QgeWV0IGltcGxlbWVudCB0aGUgJHtjfSBjb25zdHJ1Y3RvciBwcm9wZXJ0eWApOwor
Zm9yIChjb25zdCBjIGluIGNvbnN0cnVjdG9yUHJvcGVydGllcykgeworICAgIGlmICghY29uc3Ry
dWN0b3JQcm9wZXJ0aWVzW2NdLmlzRXJyb3IpCisgICAgICAgIGFzc2VydC50aHJvd3MoKCkgPT4g
bmV3IFdlYkFzc2VtYmx5W2NdKCksIEVycm9yLCBgV2ViQXNzZW1ibHkgZG9lc24ndCB5ZXQgaW1w
bGVtZW50IHRoZSAke2N9IGNvbnN0cnVjdG9yIHByb3BlcnR5YCk7Cit9CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ01ha2VMaXN0cy50eHQKaW5kZXggOTY4ZDA3NS4uOTc3NDFmZSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9DTWFrZUxpc3RzLnR4dApAQCAtODYxLDEyICs4NjEsMTIgQEAgc2V0KEphdmFTY3JpcHRD
b3JlX1NPVVJDRVMKICAgICB0b29scy9KU0RvbGxhclZNUHJvdG90eXBlLmNwcAogCiAgICAgd2Fz
bS9KU1dBU01Nb2R1bGUuY3BwCisgICAgd2FzbS9KU1dlYkFzc2VtYmx5LmNwcAogICAgIHdhc20v
V0FTTUIzSVJHZW5lcmF0b3IuY3BwCiAgICAgd2FzbS9XQVNNQ2FsbGluZ0NvbnZlbnRpb24uY3Bw
CiAgICAgd2FzbS9XQVNNTWVtb3J5LmNwcAogICAgIHdhc20vV0FTTU1vZHVsZVBhcnNlci5jcHAK
ICAgICB3YXNtL1dBU01QbGFuLmNwcAotICAgIHdhc20vV2ViQXNzZW1ibHlPYmplY3QuY3BwCiAK
ICAgICB3YXNtL2pzL0pTV2ViQXNzZW1ibHlDb21waWxlRXJyb3IuY3BwCiAgICAgd2FzbS9qcy9K
U1dlYkFzc2VtYmx5SW5zdGFuY2UuY3BwCkBAIC04ODIsNiArODgyLDcgQEAgc2V0KEphdmFTY3Jp
cHRDb3JlX1NPVVJDRVMKICAgICB3YXNtL2pzL1dlYkFzc2VtYmx5TWVtb3J5UHJvdG90eXBlLmNw
cAogICAgIHdhc20vanMvV2ViQXNzZW1ibHlNb2R1bGVDb25zdHJ1Y3Rvci5jcHAKICAgICB3YXNt
L2pzL1dlYkFzc2VtYmx5TW9kdWxlUHJvdG90eXBlLmNwcAorICAgIHdhc20vanMvV2ViQXNzZW1i
bHlQcm90b3R5cGUuY3BwCiAgICAgd2FzbS9qcy9XZWJBc3NlbWJseVJ1bnRpbWVFcnJvckNvbnN0
cnVjdG9yLmNwcAogICAgIHdhc20vanMvV2ViQXNzZW1ibHlSdW50aW1lRXJyb3JQcm90b3R5cGUu
Y3BwCiAgICAgd2FzbS9qcy9XZWJBc3NlbWJseVRhYmxlQ29uc3RydWN0b3IuY3BwCkBAIC05NDYs
NiArOTQ3LDcgQEAgc2V0KEphdmFTY3JpcHRDb3JlX09CSkVDVF9MVVRfU09VUkNFUwogICAgIHdh
c20vanMvV2ViQXNzZW1ibHlNZW1vcnlQcm90b3R5cGUuY3BwCiAgICAgd2FzbS9qcy9XZWJBc3Nl
bWJseU1vZHVsZUNvbnN0cnVjdG9yLmNwcAogICAgIHdhc20vanMvV2ViQXNzZW1ibHlNb2R1bGVQ
cm90b3R5cGUuY3BwCisgICAgd2FzbS9qcy9XZWJBc3NlbWJseVByb3RvdHlwZS5jcHAKICAgICB3
YXNtL2pzL1dlYkFzc2VtYmx5UnVudGltZUVycm9yQ29uc3RydWN0b3IuY3BwCiAgICAgd2FzbS9q
cy9XZWJBc3NlbWJseVJ1bnRpbWVFcnJvclByb3RvdHlwZS5jcHAKICAgICB3YXNtL2pzL1dlYkFz
c2VtYmx5VGFibGVDb25zdHJ1Y3Rvci5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IGE1
NDFhZGMuLmI3ZjI1ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYwIEBA
CisyMDE2LTEwLTIwICBKRiBCYXN0aWVuICA8amZiYXN0aWVuQGFwcGxlLmNvbT4KKworICAgICAg
ICBXZWJBc3NlbWJseSBBUEk6IGltcGxlbWVudCBleGNlcHRpb24gY29uc3RydWN0b3JzIHByb3Bl
cmx5CisKKyAgICAgICAgIC0gUmVuYW1lIFdlYkFzc2VtYmx5T2JqZWN0IHRvIEpTV2ViQXNzZW1i
bHkgZm9yIGNvbnNpc3RlbmN5LgorICAgICAgICAgLSBXZWJBc3NlbWJseSBvYmplY3Qgbm93IGhh
cyBpdHMgb3duIHByb3RvdHlwZTogYWRkIFdlYkFzc2VtYmx5UHJvdG90eXBlLCBhbmQKKyAgICAg
ICAgICAgdXNlIGl0IHRvIHJlZ2lzdGVyIEpTV2ViQXNzZW1ibHkncyBmdW5jdGlvbiBwcm9wZXJ0
aWVzIHRocm91Z2ggYXV0by1nZW5lcmF0ZWQKKyAgICAgICAgICAgLmx1dC5oLCBpbnN0ZWFkIG9m
IG1hbnVhbGx5LgorICAgICAgICAgLSBUaGUgZXJyb3IgY29uc3RydWN0b3JzIHVzZWQgdG8gdGhv
dyAoZS5nLiBgbmV3IFdlYkFzc2VtYmx5LkNvbXBpbGVFcnJvcigpYCkuCisgICAgICAgICAtIFJl
Z2lzdGVyIFdlYkFzc2VtYmx5J3MgY29uc3RydWN0b3JzIGZyb20gdGhlIGdsb2JhbCBvYmplY3Qs
IGFuZCBob2xkIGEKKyAgICAgICAgICAgcmVmZXJlbmNlIHRvIHRoZWlyIHN0cnVjdHVyZSBhbmQg
cHJvdG90eXBlIHNvIHRoYXQgaW52b2tpbmcgdGhlIGNvbnN0cnVjdG9yCisgICAgICAgICAgIGNh
biB1c2UgdGhlIHN0cnVjdHVyZSBkaXJlY3RseSBmcm9tIHRoZSBnbG9iYWwgb2JqZWN0LgorICAg
ICAgICAgLSBBZGQgYSBwcm90b3R5cGUgYmFzZSBmaWVsZCB0byBnbG9iYWwgb2JqZWN0IGNyZWF0
aW9uLiBQcmV2aW91cyBvbmVzIGFsbCBoYWQKKyAgICAgICAgICAgT2JqZWN0J3MgcHJvdG90eXBl
IGFzIHRoZWlyIGJhc2UsIGJ1dCBXZWJBc3NlbWJseSdzIGVycm9yIGNvbnN0cnVjdG9ycyBoYXZl
CisgICAgICAgICAgIEVycm9yIGFzIHRoZWlyIGJhc2UuCisgICAgICAgIC0gVGVzdCBmb3IgdGhl
IGVycm9yIG9iamVjdCdzIGNvcnJlY3RuZXNzLgorCisgICAgICAgIFdlYkFzc2VtYmx5IEFQSTog
aW1wbGVtZW50IGV4Y2VwdGlvbiBjb25zdHJ1Y3RvcnMgcHJvcGVybHkKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MzY5OQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6IHJlbmFt
ZSBXZWJBc3NlbWJseU9iamVjdCAtPiBKU1dlYkFzc2VtYmx5OyBhZGQgYSAubHV0LmggZmlsZQor
ICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6IG5ldyAubHV0LmggZmlsZQorICAgICAgICAq
IEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6IGRpdHRvCisgICAgICAg
ICogcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHA6IG5ldyBwcm90b3R5cGVCYXNlIG1hY3JvCisg
ICAgICAgIChKU0M6OkpTR2xvYmFsT2JqZWN0Ojppbml0KTogcmVnaXN0ZXIgV2ViQXNzZW1ibHkg
Y29uc3RydWN0b3JzIGhlcmUKKyAgICAgICAgKEpTQzo6SlNHbG9iYWxPYmplY3Q6OnZpc2l0Q2hp
bGRyZW4pOiB1c2UgdGhlIG1hY3JvIHRvIHZpc2l0CisgICAgICAgICogcnVudGltZS9KU0dsb2Jh
bE9iamVjdC5oOiBkZWNsYXJlIHRoZSBXZWJBc3NlbWJseSBjb25zdHJ1Y3RvciBtYWNybworICAg
ICAgICAqIHdhc20vSlNXZWJBc3NlbWJseS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL1dlYkFzc2VtYmx5T2JqZWN0LmguCisgICAgICAgIChKU0M6OkpTV2ViQXNz
ZW1ibHk6OmNyZWF0ZSk6CisgICAgICAgIChKU0M6OkpTV2ViQXNzZW1ibHk6OmNyZWF0ZVN0cnVj
dHVyZSk6CisgICAgICAgIChKU0M6OkpTV2ViQXNzZW1ibHk6OmZpbmlzaENyZWF0aW9uKToKKyAg
ICAgICAgKEpTQzo6SlNXZWJBc3NlbWJseTo6SlNXZWJBc3NlbWJseSk6CisgICAgICAgICogd2Fz
bS9KU1dlYkFzc2VtYmx5Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L1dlYkFzc2VtYmx5T2JqZWN0LmguCisgICAgICAgICogd2FzbS9XZWJBc3NlbWJseU9iamVjdC5j
cHA6IFJlbW92ZWQuCisgICAgICAgICogd2FzbS9qcy9KU1dlYkFzc2VtYmx5Q29tcGlsZUVycm9y
Lmg6CisgICAgICAgIChKU0M6OkpTV2ViQXNzZW1ibHlDb21waWxlRXJyb3I6OmNyZWF0ZSk6IHN0
cmluZyBjb252ZW5pZW5jZQorICAgICAgICAqIHdhc20vanMvSlNXZWJBc3NlbWJseVJ1bnRpbWVF
cnJvci5oOgorICAgICAgICAoSlNDOjpKU1dlYkFzc2VtYmx5UnVudGltZUVycm9yOjpjcmVhdGUp
OiBzdHJpbmcgY29udmVuaWVuY2UKKyAgICAgICAgKiB3YXNtL2pzL1dlYkFzc2VtYmx5Q29tcGls
ZUVycm9yQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpjb25zdHJ1Y3RKU1dlYkFzc2Vt
Ymx5Q29tcGlsZUVycm9yKTogZG9uJ3QgdGhyb3csIGNyZWF0ZSB0aGUgb2JqZWN0CisgICAgICAg
IChKU0M6OldlYkFzc2VtYmx5Q29tcGlsZUVycm9yQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9u
KTogbm8gbmVlZCBmb3IgdGhlIHN0cnVjdHVyZSwgaXQncyBvbiB0aGUgZ2xvYmFsIG9iamVjdAor
ICAgICAgICAqIHdhc20vanMvV2ViQXNzZW1ibHlDb21waWxlRXJyb3JDb25zdHJ1Y3Rvci5oOgor
ICAgICAgICAqIHdhc20vanMvV2ViQXNzZW1ibHlQcm90b3R5cGUuY3BwOiBBZGRlZC4KKyAgICAg
ICAgKEpTQzo6d2ViQXNzZW1ibHlGdW5jdGlvblZhbGlkYXRlKToKKyAgICAgICAgKEpTQzo6d2Vi
QXNzZW1ibHlGdW5jdGlvbkNvbXBpbGUpOgorICAgICAgICAoSlNDOjpXZWJBc3NlbWJseVByb3Rv
dHlwZTo6Y3JlYXRlKToKKyAgICAgICAgKEpTQzo6V2ViQXNzZW1ibHlQcm90b3R5cGU6OmNyZWF0
ZVN0cnVjdHVyZSk6CisgICAgICAgIChKU0M6OldlYkFzc2VtYmx5UHJvdG90eXBlOjpmaW5pc2hD
cmVhdGlvbik6CisgICAgICAgIChKU0M6OldlYkFzc2VtYmx5UHJvdG90eXBlOjpXZWJBc3NlbWJs
eVByb3RvdHlwZSk6CisgICAgICAgICogd2FzbS9qcy9XZWJBc3NlbWJseVByb3RvdHlwZS5oOiBS
ZW5hbWVkIGZyb20gU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2ViQXNzZW1ibHlPYmplY3Qu
aC4KKyAgICAgICAgKiB3YXNtL2pzL1dlYkFzc2VtYmx5UnVudGltZUVycm9yQ29uc3RydWN0b3Iu
Y3BwOgorICAgICAgICAoSlNDOjpjb25zdHJ1Y3RKU1dlYkFzc2VtYmx5UnVudGltZUVycm9yKTog
ZG9uJ3QgdGhyb3csIGNyZWF0ZSB0aGUgb2JqZWN0CisgICAgICAgIChKU0M6OldlYkFzc2VtYmx5
UnVudGltZUVycm9yQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKTogbm8gbmVlZCBmb3IgdGhl
IHN0cnVjdHVyZSwgaXQncyBvbiB0aGUgZ2xvYmFsIG9iamVjdAorICAgICAgICAqIHdhc20vanMv
V2ViQXNzZW1ibHlSdW50aW1lRXJyb3JDb25zdHJ1Y3Rvci5oOgorCiAyMDE2LTEwLTE5ICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CiAKICAgICAgICAgW21hY09TXSBb
aU9TXSBEaXNhYmxlIHZhcmlhdGlvbiBmb250cyBvbiBtYWNPUyBFbCBDYXBpdGFuIGFuZCBpT1Mg
OQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2Ug
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCBlZWNiNTNj
Li42NjMwNTM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvRGVyaXZlZFNvdXJj
ZXMubWFrZQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpA
QCAtMTY4LDYgKzE2OCw3IEBAIE9CSkVDVF9MVVRfSEVBREVSUyA9IFwKICAgICBXZWJBc3NlbWJs
eU1lbW9yeVByb3RvdHlwZS5sdXQuaCBcCiAgICAgV2ViQXNzZW1ibHlNb2R1bGVDb25zdHJ1Y3Rv
ci5sdXQuaCBcCiAgICAgV2ViQXNzZW1ibHlNb2R1bGVQcm90b3R5cGUubHV0LmggXAorICAgIFdl
YkFzc2VtYmx5UHJvdG90eXBlLmx1dC5oIFwKICAgICBXZWJBc3NlbWJseVJ1bnRpbWVFcnJvckNv
bnN0cnVjdG9yLmx1dC5oIFwKICAgICBXZWJBc3NlbWJseVJ1bnRpbWVFcnJvclByb3RvdHlwZS5s
dXQuaCBcCiAgICAgV2ViQXNzZW1ibHlUYWJsZUNvbnN0cnVjdG9yLmx1dC5oIFwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKaW5kZXggYWVjZDFiMi4uMDk2NmU0NyAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTE4NzksOCArMTg3OSw2IEBACiAJCUE3RkI2MTAwMTA0MEMzOEIw
MDE3QTI4NiAvKiBQcm9wZXJ0eURlc2NyaXB0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3RkI2MDRCMTAzRjVFQUIwMDE3QTI4NiAvKiBQcm9wZXJ0
eURlc2NyaXB0b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQlBN0ZDQzI2RDE3QTBCNkFBMDA3ODZEMUEgLyogRlRMU3dpdGNoQ2FzZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTdGQ0MyNkMxN0EwQjZB
QTAwNzg2RDFBIC8qIEZUTFN3aXRjaENhc2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQlBOEE0NzQ4RTE1MUE4MzA2MDA0MTIzRkYgLyogbGliV1RG
LmEgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEE0
NzQ4RDE1MUE4MzA2MDA0MTIzRkYgLyogbGliV1RGLmEgKi87IH07Ci0JCUFEMkZDQjg4MURBRUJG
M0MwMEIzRTczNiAvKiBXZWJBc3NlbWJseU9iamVjdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBRDJGQ0I4NjFEQUVCRjM3MDBCM0U3MzYgLyogV2Vi
QXNzZW1ibHlPYmplY3QuY3BwICovOyB9OwotCQlBRDJGQ0I4OTFEQUVCRjNGMDBCM0U3MzYgLyog
V2ViQXNzZW1ibHlPYmplY3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEFEMkZDQjg3MURBRUJGMzcwMEIzRTczNiAvKiBXZWJBc3NlbWJseU9iamVjdC5o
ICovOyB9OwogCQlBRDJGQ0JFMjFEQjU4REFEMDBCM0U3MzYgLyogSlNXZWJBc3NlbWJseUNvbXBp
bGVFcnJvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBBRDJGQ0JBNjFEQjU4REE0MDBCM0U3MzYgLyogSlNXZWJBc3NlbWJseUNvbXBpbGVFcnJvci5j
cHAgKi87IH07CiAJCUFEMkZDQkUzMURCNThEQUQwMEIzRTczNiAvKiBKU1dlYkFzc2VtYmx5Q29t
cGlsZUVycm9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBBRDJGQ0JBNzFEQjU4REE0MDBCM0U3MzYgLyogSlNXZWJBc3NlbWJseUNvbXBpbGVFcnJvci5o
ICovOyB9OwogCQlBRDJGQ0JFNDFEQjU4REFEMDBCM0U3MzYgLyogSlNXZWJBc3NlbWJseUluc3Rh
bmNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFE
MkZDQkE4MURCNThEQTQwMEIzRTczNiAvKiBKU1dlYkFzc2VtYmx5SW5zdGFuY2UuY3BwICovOyB9
OwpAQCAtMTkyOSw2ICsxOTI3LDEwIEBACiAJCUFEMkZDQzFGMURCNTlDQjIwMEIzRTczNiAvKiBX
ZWJBc3NlbWJseVJ1bnRpbWVFcnJvclByb3RvdHlwZS5sdXQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFEMkZDQzEzMURCNTlDNTkwMEIzRTczNiAvKiBX
ZWJBc3NlbWJseVJ1bnRpbWVFcnJvclByb3RvdHlwZS5sdXQuaCAqLzsgfTsKIAkJQUQyRkNDMjAx
REI1OUNCMjAwQjNFNzM2IC8qIFdlYkFzc2VtYmx5VGFibGVDb25zdHJ1Y3Rvci5sdXQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFEMkZDQzE0MURCNTlD
NTkwMEIzRTczNiAvKiBXZWJBc3NlbWJseVRhYmxlQ29uc3RydWN0b3IubHV0LmggKi87IH07CiAJ
CUFEMkZDQzIxMURCNTlDQjIwMEIzRTczNiAvKiBXZWJBc3NlbWJseVRhYmxlUHJvdG90eXBlLmx1
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUQyRkND
MTUxREI1OUM1OTAwQjNFNzM2IC8qIFdlYkFzc2VtYmx5VGFibGVQcm90b3R5cGUubHV0LmggKi87
IH07CisJCUFEMkZDQzJDMURCODM4RkQwMEIzRTczNiAvKiBXZWJBc3NlbWJseVByb3RvdHlwZS5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBRDJGQ0My
NjFEQjgzOEM0MDBCM0U3MzYgLyogV2ViQXNzZW1ibHlQcm90b3R5cGUuY3BwICovOyB9OworCQlB
RDJGQ0MyRDFEQjgzOEZEMDBCM0U3MzYgLyogV2ViQXNzZW1ibHlQcm90b3R5cGUuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFEMkZDQzI3MURCODM4QzQw
MEIzRTczNiAvKiBXZWJBc3NlbWJseVByb3RvdHlwZS5oICovOyB9OworCQlBRDJGQ0MzMDFEQjgz
RDQ5MDBCM0U3MzYgLyogSlNXZWJBc3NlbWJseS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBRDJGQ0MyRTFEQjgzOUY3MDBCM0U3MzYgLyogSlNXZWJB
c3NlbWJseS5jcHAgKi87IH07CisJCUFEMkZDQzMxMURCODNENDkwMEIzRTczNiAvKiBKU1dlYkFz
c2VtYmx5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBB
RDJGQ0MyRjFEQjgzOUY3MDBCM0U3MzYgLyogSlNXZWJBc3NlbWJseS5oICovOyB9OwogCQlBRDg2
QTkzRTFBQTREODhEMDAyRkU3N0YgLyogV2Vha0dDTWFwSW5saW5lcy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUQ4NkE5M0QxQUE0RDg3QzAwMkZFNzdG
IC8qIFdlYWtHQ01hcElubGluZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQlBRERCMUY2MzE4RDc3REJFMDA5QjU4QTggLyogT3BhcXVlUm9vdFNl
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUREQjFG
NjIxOEQ3N0RCNzAwOUI1OEE4IC8qIE9wYXF1ZVJvb3RTZXQuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBREUzOUZGRjE2REQxNDRCMDAwM0NENEEg
LyogUHJvcGVydHlUYWJsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBRDFDRjA2ODE2RENBQjJEMDBCOTcxMjMgLyogUHJvcGVydHlUYWJsZS5jcHAg
Ki87IH07CkBAIC00MjU5LDggKzQyNjEsNiBAQAogCQlBOEU4OTQzMTBDRDA2MDI0MDAzNjcxNzkg
LyogSlNDYWxsYmFja09iamVjdEZ1bmN0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBKU0NhbGxiYWNrT2JqZWN0RnVuY3Rpb25zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUE4RTg5NDMzMENEMDYwM0YwMDM2NzE3OSAvKiBKU0dsb2JhbE9iamVjdC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0dsb2JhbE9iamVjdC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlBRDFDRjA2ODE2RENBQjJEMDBCOTcxMjMgLyogUHJvcGVy
dHlUYWJsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQcm9wZXJ0
eVRhYmxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQUQyRkNCODYxREFFQkYz
NzAwQjNFNzM2IC8qIFdlYkFzc2VtYmx5T2JqZWN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFdlYkFzc2VtYmx5T2JqZWN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJQUQyRkNCODcxREFFQkYzNzAwQjNFNzM2IC8qIFdlYkFzc2VtYmx5T2JqZWN0
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkFzc2VtYmx5T2JqZWN0Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUFEMkZDQjhDMURCNTg0NDAwMEIzRTczNiAv
KiBKU1dlYkFzc2VtYmx5TW9kdWxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
bmFtZSA9IEpTV2ViQXNzZW1ibHlNb2R1bGUuY3BwOyBwYXRoID0ganMvSlNXZWJBc3NlbWJseU1v
ZHVsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUFEMkZDQjhEMURCNTg0NDAw
MEIzRTczNiAvKiBKU1dlYkFzc2VtYmx5TW9kdWxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgbmFtZSA9IEpTV2ViQXNzZW1ibHlNb2R1bGUuaDsgcGF0aCA9IGpzL0pTV2ViQXNzZW1ibHlN
b2R1bGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQUQyRkNCOTgxREI1ODVBNjAw
QjNFNzM2IC8qIFdlYkFzc2VtYmx5TW9kdWxlQ29uc3RydWN0b3IuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gV2ViQXNzZW1ibHlNb2R1bGVDb25zdHJ1Y3Rvci5jcHA7
IHBhdGggPSBqcy9XZWJBc3NlbWJseU1vZHVsZUNvbnN0cnVjdG9yLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTQzMDksNiArNDMwOSwxMCBAQAogCQlBRDJGQ0MxMzFEQjU5QzU5
MDBCM0U3MzYgLyogV2ViQXNzZW1ibHlSdW50aW1lRXJyb3JQcm90b3R5cGUubHV0LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkFzc2VtYmx5UnVudGltZUVycm9yUHJvdG90
eXBlLmx1dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBRDJGQ0MxNDFEQjU5QzU5
MDBCM0U3MzYgLyogV2ViQXNzZW1ibHlUYWJsZUNvbnN0cnVjdG9yLmx1dC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJBc3NlbWJseVRhYmxlQ29uc3RydWN0b3IubHV0Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUFEMkZDQzE1MURCNTlDNTkwMEIzRTczNiAv
KiBXZWJBc3NlbWJseVRhYmxlUHJvdG90eXBlLmx1dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBXZWJBc3NlbWJseVRhYmxlUHJvdG90eXBlLmx1dC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlBRDJGQ0MyNjFEQjgzOEM0MDBCM0U3MzYgLyogV2ViQXNzZW1ibHlQ
cm90b3R5cGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gV2ViQXNz
ZW1ibHlQcm90b3R5cGUuY3BwOyBwYXRoID0ganMvV2ViQXNzZW1ibHlQcm90b3R5cGUuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBRDJGQ0MyNzFEQjgzOEM0MDBCM0U3MzYgLyog
V2ViQXNzZW1ibHlQcm90b3R5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0g
V2ViQXNzZW1ibHlQcm90b3R5cGUuaDsgcGF0aCA9IGpzL1dlYkFzc2VtYmx5UHJvdG90eXBlLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUFEMkZDQzJFMURCODM5RjcwMEIzRTczNiAv
KiBKU1dlYkFzc2VtYmx5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEpTV2ViQXNzZW1ibHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBRDJGQ0My
RjFEQjgzOUY3MDBCM0U3MzYgLyogSlNXZWJBc3NlbWJseS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBKU1dlYkFzc2VtYmx5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUFEODZBOTNEMUFBNEQ4N0MwMDJGRTc3RiAvKiBXZWFrR0NNYXBJbmxpbmVzLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYWtHQ01hcElubGluZXMuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQUREQjFGNjIxOEQ3N0RCNzAwOUI1OEE4IC8qIE9wYXF1ZVJv
b3RTZXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gT3BhcXVlUm9vdFNldC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCNTlGODkzNzE4OTFBRDMzMDBENUNDREMg
LyogVW5saW5rZWRJbnN0cnVjdGlvblN0cmVhbS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBVbmxpbmtlZEluc3RydWN0aW9uU3RyZWFtLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC01ODAzLDkgKzU4MDcsOSBAQAogCQk3Qjk4RDEzMzFCNjBDRDFFMDAyM0IxQTQg
Lyogd2FzbSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJ
QUQyRkNDMkUxREI4MzlGNzAwQjNFNzM2IC8qIEpTV2ViQXNzZW1ibHkuY3BwICovLAorCQkJCUFE
MkZDQzJGMURCODM5RjcwMEIzRTczNiAvKiBKU1dlYkFzc2VtYmx5LmggKi8sCiAJCQkJQUQyRkNC
OEExREI1ODQwMDAwQjNFNzM2IC8qIGpzICovLAotCQkJCUFEMkZDQjg2MURBRUJGMzcwMEIzRTcz
NiAvKiBXZWJBc3NlbWJseU9iamVjdC5jcHAgKi8sCi0JCQkJQUQyRkNCODcxREFFQkYzNzAwQjNF
NzM2IC8qIFdlYkFzc2VtYmx5T2JqZWN0LmggKi8sCiAJCQkJN0I5OEQxMzQxQjYwQ0Q1QTAwMjNC
MUE0IC8qIEpTV0FTTU1vZHVsZS5jcHAgKi8sCiAJCQkJN0I5OEQxMzUxQjYwQ0Q1QTAwMjNCMUE0
IC8qIEpTV0FTTU1vZHVsZS5oICovLAogCQkJCTUzRjQwRThFMUQ1OTAyODIwMDk5QTFCNiAvKiBX
QVNNQjNJUkdlbmVyYXRvci5jcHAgKi8sCkBAIC03MzEyLDYgKzczMTYsOCBAQAogCQlBRDJGQ0I4
QTFEQjU4NDAwMDBCM0U3MzYgLyoganMgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNo
aWxkcmVuID0gKAorCQkJCUFEMkZDQzI2MURCODM4QzQwMEIzRTczNiAvKiBXZWJBc3NlbWJseVBy
b3RvdHlwZS5jcHAgKi8sCisJCQkJQUQyRkNDMjcxREI4MzhDNDAwQjNFNzM2IC8qIFdlYkFzc2Vt
Ymx5UHJvdG90eXBlLmggKi8sCiAJCQkJQUQyRkNCQTYxREI1OERBNDAwQjNFNzM2IC8qIEpTV2Vi
QXNzZW1ibHlDb21waWxlRXJyb3IuY3BwICovLAogCQkJCUFEMkZDQkE3MURCNThEQTQwMEIzRTcz
NiAvKiBKU1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yLmggKi8sCiAJCQkJQUQyRkNCQTgxREI1OERB
NDAwQjNFNzM2IC8qIEpTV2ViQXNzZW1ibHlJbnN0YW5jZS5jcHAgKi8sCkBAIC03NjE1LDcgKzc2
MjEsNiBAQAogCQkJCTBGQzk3RjM0MTgyMDIwRDcwMDJDOUIyNiAvKiBDb2RlQmxvY2tKZXR0aXNv
bmluZ1dhdGNocG9pbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRDhBMzE0MTdENDMyNkMwMENB
MkM0MCAvKiBDb2RlQmxvY2tTZXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGOTZFQkIzMTY2NzZF
RjYwMDhCQURFMyAvKiBDb2RlQmxvY2tXaXRoSklUVHlwZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJ
QUQyRkNCODkxREFFQkYzRjAwQjNFNzM2IC8qIFdlYkFzc2VtYmx5T2JqZWN0LmggaW4gSGVhZGVy
cyAqLywKIAkJCQlBNzdGMTgyMjE2NDA4OEIyMDA2NDBBNDcgLyogQ29kZUNhY2hlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk5OUNDMEI2MzE4QkU5OTUwMDA2Q0VCQ0MgLyogQ29kZUdlbmVyYXRvclJl
cGxheUlucHV0cy5weSBpbiBIZWFkZXJzICovLAogCQkJCTk5Q0MwQjYyMThCRTk5NDYwMDZDRUJD
QyAvKiBDb2RlR2VuZXJhdG9yUmVwbGF5SW5wdXRzVGVtcGxhdGVzLnB5IGluIEhlYWRlcnMgKi8s
CkBAIC03NzM5LDYgKzc3NDQsNyBAQAogCQkJCUE3RDg5Q0Y2MTdBMEI4Q0MwMDc3M0FEOCAvKiBE
RkdDcml0aWNhbEVkZ2VCcmVha2luZ1BoYXNlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkZGQzk1
QTE0RUY5MEE5MDBDNzI1MzIgLyogREZHQ1NFUGhhc2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTBG
MkZDNzczMTZFMTJGNzQwMDM4RDk3NiAvKiBERkdEQ0VQaGFzZS5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJQUQyRkNDMzExREI4M0Q0OTAwQjNFNzM2IC8qIEpTV2ViQXNzZW1ibHkuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTBGOEYyQjlBMTcyRjA1MDEwMDdEQkRBNSAvKiBERkdEZXNpcmVkSWRlbnRpZmll
cnMuaCBpbiBIZWFkZXJzICovLAogCQkJCThCOUY2RDU2MUQ1OTEyRkEwMDFDNzM5RiAvKiBJdGVy
YXRpb25LaW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkZDOTIxNDFCOTRFODNFMDA3MURENjYg
LyogREZHRGVzaXJlZEluZmVycmVkVHlwZS5oIGluIEhlYWRlcnMgKi8sCkBAIC04NTEwLDYgKzg1
MTYsNyBAQAogCQkJCUE1QkExNUVBMTgyMzQwQjQwMEE4MkU2OSAvKiBSZW1vdGVJbnNwZWN0b3JD
b25zdGFudHMuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1QkExNUYwMTgyMzQ1QUYwMEE4MkU2OSAv
KiBSZW1vdGVJbnNwZWN0aW9uVGFyZ2V0LmggaW4gSGVhZGVycyAqLywKIAkJCQlBNUJBMTVFQjE4
MjM0MEI0MDBBODJFNjkgLyogUmVtb3RlQ29ubmVjdGlvblRvVGFyZ2V0LmggaW4gSGVhZGVycyAq
LywKKwkJCQlBRDJGQ0MyRDFEQjgzOEZEMDBCM0U3MzYgLyogV2ViQXNzZW1ibHlQcm90b3R5cGUu
aCBpbiBIZWFkZXJzICovLAogCQkJCUE1QkExNUVEMTgyMzQwQjQwMEE4MkU2OSAvKiBSZW1vdGVJ
bnNwZWN0b3JYUENDb25uZWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjI0RTU1MTE3RUUy
NzQ5MDBBQkIyMTcgLyogUmVwYXRjaC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJREMyMTQzMDcxQ0Ez
MkU1NTAwMEE4ODY5IC8qIElDU3RhdHMuaCBpbiBIZWFkZXJzICovLApAQCAtOTQ1MCw2ICs5NDU3
LDcgQEAKIAkJCQkwRjhGMTQzNTFBREYwOTAxMDBFRDc5MkMgLyogREZHTW92SGludFJlbW92YWxQ
aGFzZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkYyQ0Q1QjFCNjFBNEY4MDA0OTU1QTggLyog
REZHTXVsdGlHZXRCeU9mZnNldERhdGEuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTczNzgxMEQx
Nzk5RUEyRTAwODE3NTMzIC8qIERGR05hdHVyYWxMb29wcy5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQlBRDJGQ0MzMDFEQjgzRDQ5MDBCM0U3MzYgLyogSlNXZWJBc3NlbWJseS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQk3OUIwMENCRTFDNkFCMDdFMDA4OEM2NUQgLyogUHJveHlPYmplY3QuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJNzkyQ0IzNDkxQzRFRUQ1QzAwRDEzQUYzIC8qIFBDVG9Db2RlT3Jp
Z2luTWFwLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGRjBGMTlDMTZCNzJBMDMwMDVERjk1QiAv
KiBERkdOb2RlLmNwcCBpbiBTb3VyY2VzICovLApAQCAtOTcxNyw2ICs5NzI1LDcgQEAKIAkJCQkx
NDdGMzlENjEwN0VDMzc2MDA0MjdBNDggLyogSlNDSlNWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkxNDQwRkNFNDBBNTFFNDZCMDAwNUYwNjEgLyogSlNDbGFzc1JlZi5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQk4NkUzQzYxNjE2N0JBQkVFMDA2RDc2MEEgLyogSlNDb250ZXh0Lm1tIGluIFNv
dXJjZXMgKi8sCisJCQkJQUQyRkNDMkMxREI4MzhGRDAwQjNFNzM2IC8qIFdlYkFzc2VtYmx5UHJv
dG90eXBlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0QkQ1QTMwMEEzRTkxRjYwMEJBRjU5QyAv
KiBKU0NvbnRleHRSZWYuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTcyMDI4QjYxNzk3NjAxRTAw
OTgwMjhDIC8qIEpTQ1Rlc3RSdW5uZXJVdGlscy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjJC
NjZFQjE3QjZCNUFCMDBBN0FFM0YgLyogSlNEYXRhVmlldy5jcHAgaW4gU291cmNlcyAqLywKQEAg
LTk5MzgsNyArOTk0Nyw2IEBACiAJCQkJNzkwNUJCNjgxRDEyMDUwRTAwMTlGRTU3IC8qIElubGlu
ZUFjY2Vzcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkUwNTAyNzFBQTkwOTU2MDBEMzNCMzMg
LyogU2NvcGVkQXJndW1lbnRzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGRTA1MDJGMUFBQTgw
NjkwMEQzM0IzMyAvKiBTY29wZWRBcmd1bWVudHNUYWJsZS5jcHAgaW4gU291cmNlcyAqLywKLQkJ
CQlBRDJGQ0I4ODFEQUVCRjNDMDBCM0U3MzYgLyogV2ViQXNzZW1ibHlPYmplY3QuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJOTkyQUJDRjkxQkVBOUJEMjAwNjQwM0EwIC8qIFJlbW90ZUF1dG9tYXRp
b25UYXJnZXQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZFMDUwMkExQUE5MDk1NjAwRDMzQjMz
IC8qIFNjb3BlT2Zmc2V0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGQTdBOEVFMThDRTRGRDgw
MDUyMzcxRCAvKiBTY3JhdGNoUmVnaXN0ZXJBbGxvY2F0b3IuY3BwIGluIFNvdXJjZXMgKi8sCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKaW5k
ZXggMTVhOTQxMC4uZjQ4Y2JjZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTR2xvYmFsT2JqZWN0LmNwcApAQCAtMTA4LDYgKzEwOCw3IEBACiAjaW5jbHVkZSAiSlNU
eXBlZEFycmF5cy5oIgogI2luY2x1ZGUgIkpTV2Vha01hcC5oIgogI2luY2x1ZGUgIkpTV2Vha1Nl
dC5oIgorI2luY2x1ZGUgIkpTV2ViQXNzZW1ibHkuaCIKICNpbmNsdWRlICJKU1dpdGhTY29wZS5o
IgogI2luY2x1ZGUgIkxhenlDbGFzc1N0cnVjdHVyZUlubGluZXMuaCIKICNpbmNsdWRlICJMYXp5
UHJvcGVydHlJbmxpbmVzLmgiCkBAIC0xNTQsNyArMTU1LDYgQEAKICNpbmNsdWRlICJXZWFrTWFw
UHJvdG90eXBlLmgiCiAjaW5jbHVkZSAiV2Vha1NldENvbnN0cnVjdG9yLmgiCiAjaW5jbHVkZSAi
V2Vha1NldFByb3RvdHlwZS5oIgotI2luY2x1ZGUgIldlYkFzc2VtYmx5T2JqZWN0LmgiCiAjaW5j
bHVkZSA8d3RmL1JhbmRvbU51bWJlci5oPgogCiAjaWYgRU5BQkxFKElOVEwpCkBAIC01NDEsMTgg
KzU0MSwxOCBAQCB2b2lkIEpTR2xvYmFsT2JqZWN0Ojppbml0KFZNJiB2bSkKICAgICBtX3BhcnNl
SW50RnVuY3Rpb24uc2V0KHZtLCB0aGlzLCBKU0Z1bmN0aW9uOjpjcmVhdGUodm0sIHRoaXMsIDIs
IHZtLnByb3BlcnR5TmFtZXMtPnBhcnNlSW50LnN0cmluZygpLCBnbG9iYWxGdW5jUGFyc2VJbnQs
IE5vSW50cmluc2ljKSk7CiAgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnBy
b3BlcnR5TmFtZXMtPnBhcnNlSW50LCBtX3BhcnNlSW50RnVuY3Rpb24uZ2V0KCksIERvbnRFbnVt
KTsKIAotI2RlZmluZSBDUkVBVEVfUFJPVE9UWVBFX0ZPUl9TSU1QTEVfVFlQRShjYXBpdGFsTmFt
ZSwgbG93ZXJOYW1lLCBwcm9wZXJOYW1lLCBpbnN0YW5jZVR5cGUsIGpzTmFtZSkgXAotbV8gIyMg
bG93ZXJOYW1lICMjIFByb3RvdHlwZS5zZXQodm0sIHRoaXMsIGNhcGl0YWxOYW1lIyNQcm90b3R5
cGU6OmNyZWF0ZSh2bSwgdGhpcywgY2FwaXRhbE5hbWUjI1Byb3RvdHlwZTo6Y3JlYXRlU3RydWN0
dXJlKHZtLCB0aGlzLCBtX29iamVjdFByb3RvdHlwZS5nZXQoKSkpKTsgXAorI2RlZmluZSBDUkVB
VEVfUFJPVE9UWVBFX0ZPUl9TSU1QTEVfVFlQRShjYXBpdGFsTmFtZSwgbG93ZXJOYW1lLCBwcm9w
ZXJOYW1lLCBpbnN0YW5jZVR5cGUsIGpzTmFtZSwgcHJvdG90eXBlQmFzZSkgXAorbV8gIyMgbG93
ZXJOYW1lICMjIFByb3RvdHlwZS5zZXQodm0sIHRoaXMsIGNhcGl0YWxOYW1lIyNQcm90b3R5cGU6
OmNyZWF0ZSh2bSwgdGhpcywgY2FwaXRhbE5hbWUjI1Byb3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJl
KHZtLCB0aGlzLCBtXyAjIyBwcm90b3R5cGVCYXNlICMjIFByb3RvdHlwZS5nZXQoKSkpKTsgXAog
bV8gIyMgcHJvcGVyTmFtZSAjIyBTdHJ1Y3R1cmUuc2V0KHZtLCB0aGlzLCBpbnN0YW5jZVR5cGU6
OmNyZWF0ZVN0cnVjdHVyZSh2bSwgdGhpcywgbV8gIyMgbG93ZXJOYW1lICMjIFByb3RvdHlwZS5n
ZXQoKSkpOwogICAgIAogICAgIEZPUl9FQUNIX1NJTVBMRV9CVUlMVElOX1RZUEUoQ1JFQVRFX1BS
T1RPVFlQRV9GT1JfU0lNUExFX1RZUEUpCiAgICAgCiAjdW5kZWYgQ1JFQVRFX1BST1RPVFlQRV9G
T1JfU0lNUExFX1RZUEUKIAotI2RlZmluZSBDUkVBVEVfUFJPVE9UWVBFX0ZPUl9MQVpZX1RZUEUo
Y2FwaXRhbE5hbWUsIGxvd2VyTmFtZSwgcHJvcGVyTmFtZSwgaW5zdGFuY2VUeXBlLCBqc05hbWUp
IFwKKyNkZWZpbmUgQ1JFQVRFX1BST1RPVFlQRV9GT1JfTEFaWV9UWVBFKGNhcGl0YWxOYW1lLCBs
b3dlck5hbWUsIHByb3Blck5hbWUsIGluc3RhbmNlVHlwZSwganNOYW1lLCBwcm90b3R5cGVCYXNl
KSBcCiAgICAgbV8gIyMgcHJvcGVyTmFtZSAjIyBTdHJ1Y3R1cmUuaW5pdExhdGVyKFwKICAgICAg
ICAgW10gKExhenlDbGFzc1N0cnVjdHVyZTo6SW5pdGlhbGl6ZXImIGluaXQpIHsgXAotICAgICAg
ICAgICAgaW5pdC5zZXRQcm90b3R5cGUoY2FwaXRhbE5hbWUjI1Byb3RvdHlwZTo6Y3JlYXRlKGlu
aXQudm0sIGluaXQuZ2xvYmFsLCBjYXBpdGFsTmFtZSMjUHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1
cmUoaW5pdC52bSwgaW5pdC5nbG9iYWwsIGluaXQuZ2xvYmFsLT5tX29iamVjdFByb3RvdHlwZS5n
ZXQoKSkpKTsgXAorICAgICAgICAgICAgaW5pdC5zZXRQcm90b3R5cGUoY2FwaXRhbE5hbWUjI1By
b3RvdHlwZTo6Y3JlYXRlKGluaXQudm0sIGluaXQuZ2xvYmFsLCBjYXBpdGFsTmFtZSMjUHJvdG90
eXBlOjpjcmVhdGVTdHJ1Y3R1cmUoaW5pdC52bSwgaW5pdC5nbG9iYWwsIGluaXQuZ2xvYmFsLT5t
XyAjIyBwcm90b3R5cGVCYXNlICMjIFByb3RvdHlwZS5nZXQoKSkpKTsgXAogICAgICAgICAgICAg
aW5pdC5zZXRTdHJ1Y3R1cmUoaW5zdGFuY2VUeXBlOjpjcmVhdGVTdHJ1Y3R1cmUoaW5pdC52bSwg
aW5pdC5nbG9iYWwsIGluaXQucHJvdG90eXBlKSk7IFwKICAgICAgICAgICAgIGluaXQuc2V0Q29u
c3RydWN0b3IoY2FwaXRhbE5hbWUgIyMgQ29uc3RydWN0b3I6OmNyZWF0ZShpbml0LnZtLCBjYXBp
dGFsTmFtZSAjIyBDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKGluaXQudm0sIGluaXQuZ2xv
YmFsLCBpbml0Lmdsb2JhbC0+bV9mdW5jdGlvblByb3RvdHlwZS5nZXQoKSksIGpzQ2FzdDxjYXBp
dGFsTmFtZSAjIyBQcm90b3R5cGUqPihpbml0LnByb3RvdHlwZSksIGluaXQuZ2xvYmFsLT5tX3Nw
ZWNpZXNHZXR0ZXJTZXR0ZXIuZ2V0KCkpKTsgXAogICAgICAgICB9KTsKQEAgLTU2Myw3ICs1NjMs
NyBAQCBtXyAjIyBwcm9wZXJOYW1lICMjIFN0cnVjdHVyZS5zZXQodm0sIHRoaXMsIGluc3RhbmNl
VHlwZTo6Y3JlYXRlU3RydWN0dXJlKHZtLCB0aAogICAgIAogICAgIG1faXRlcmF0b3JQcm90b3R5
cGUuc2V0KHZtLCB0aGlzLCBJdGVyYXRvclByb3RvdHlwZTo6Y3JlYXRlKHZtLCB0aGlzLCBJdGVy
YXRvclByb3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJlKHZtLCB0aGlzLCBtX29iamVjdFByb3RvdHlw
ZS5nZXQoKSkpKTsKIAotI2RlZmluZSBDUkVBVEVfUFJPVE9UWVBFX0ZPUl9ERVJJVkVEX0lURVJB
VE9SX1RZUEUoY2FwaXRhbE5hbWUsIGxvd2VyTmFtZSwgcHJvcGVyTmFtZSwgaW5zdGFuY2VUeXBl
LCBqc05hbWUpIFwKKyNkZWZpbmUgQ1JFQVRFX1BST1RPVFlQRV9GT1JfREVSSVZFRF9JVEVSQVRP
Ul9UWVBFKGNhcGl0YWxOYW1lLCBsb3dlck5hbWUsIHByb3Blck5hbWUsIGluc3RhbmNlVHlwZSwg
anNOYW1lLCBwcm90b3R5cGVCYXNlKSBcCiAgICAgbV8gIyMgbG93ZXJOYW1lICMjIFN0cnVjdHVy
ZS5pbml0TGF0ZXIoIFwKICAgICAgICAgW10gKGNvbnN0IEluaXRpYWxpemVyPFN0cnVjdHVyZT4m
IGluaXQpIHsgXAogICAgICAgICAgICAgSlNPYmplY3QqIHByb3RvdHlwZSA9IGNhcGl0YWxOYW1l
ICMjIFByb3RvdHlwZTo6Y3JlYXRlKGluaXQudm0sIGluaXQub3duZXIsIGNhcGl0YWxOYW1lICMj
IFByb3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJlKGluaXQudm0sIGluaXQub3duZXIsIGluaXQub3du
ZXItPm1faXRlcmF0b3JQcm90b3R5cGUuZ2V0KCkpKTsgXApAQCAtNTkwLDcgKzU5MCw3IEBAIG1f
ICMjIHByb3Blck5hbWUgIyMgU3RydWN0dXJlLnNldCh2bSwgdGhpcywgaW5zdGFuY2VUeXBlOjpj
cmVhdGVTdHJ1Y3R1cmUodm0sIHRoCiAgICAgCiAgICAgbV9yZWdFeHBDb25zdHJ1Y3Rvci5zZXQo
dm0sIHRoaXMsIFJlZ0V4cENvbnN0cnVjdG9yOjpjcmVhdGUodm0sIFJlZ0V4cENvbnN0cnVjdG9y
OjpjcmVhdGVTdHJ1Y3R1cmUodm0sIHRoaXMsIG1fZnVuY3Rpb25Qcm90b3R5cGUuZ2V0KCkpLCBt
X3JlZ0V4cFByb3RvdHlwZS5nZXQoKSwgbV9zcGVjaWVzR2V0dGVyU2V0dGVyLmdldCgpKSk7CiAg
ICAgCi0jZGVmaW5lIENSRUFURV9DT05TVFJVQ1RPUl9GT1JfU0lNUExFX1RZUEUoY2FwaXRhbE5h
bWUsIGxvd2VyTmFtZSwgcHJvcGVyTmFtZSwgaW5zdGFuY2VUeXBlLCBqc05hbWUpIFwKKyNkZWZp
bmUgQ1JFQVRFX0NPTlNUUlVDVE9SX0ZPUl9TSU1QTEVfVFlQRShjYXBpdGFsTmFtZSwgbG93ZXJO
YW1lLCBwcm9wZXJOYW1lLCBpbnN0YW5jZVR5cGUsIGpzTmFtZSwgcHJvdG90eXBlQmFzZSkgXAog
Y2FwaXRhbE5hbWUgIyMgQ29uc3RydWN0b3IqIGxvd2VyTmFtZSAjIyBDb25zdHJ1Y3RvciA9IGNh
cGl0YWxOYW1lICMjIENvbnN0cnVjdG9yOjpjcmVhdGUodm0sIGNhcGl0YWxOYW1lICMjIENvbnN0
cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUodm0sIHRoaXMsIG1fZnVuY3Rpb25Qcm90b3R5cGUuZ2V0
KCkpLCBtXyAjIyBsb3dlck5hbWUgIyMgUHJvdG90eXBlLmdldCgpLCBtX3NwZWNpZXNHZXR0ZXJT
ZXR0ZXIuZ2V0KCkpOyBcCiBtXyAjIyBsb3dlck5hbWUgIyMgUHJvdG90eXBlLT5wdXREaXJlY3RX
aXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+Y29uc3RydWN0b3IsIGxvd2Vy
TmFtZSAjIyBDb25zdHJ1Y3RvciwgRG9udEVudW0pOyBcCiAKQEAgLTY0Niw3ICs2NDYsNyBAQCBt
XyAjIyBsb3dlck5hbWUgIyMgUHJvdG90eXBlLT5wdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2
bSwgdm0ucHJvcGVydHlOYW1lcy0+YwogICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZt
LCB2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5PYmplY3RQcml2YXRlTmFtZSgpLCBv
YmplY3RDb25zdHJ1Y3RvciwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpOwogICAg
IHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGlu
TmFtZXMoKS5BcnJheVByaXZhdGVOYW1lKCksIGFycmF5Q29uc3RydWN0b3IsIERvbnRFbnVtIHwg
RG9udERlbGV0ZSB8IFJlYWRPbmx5KTsKIAotI2RlZmluZSBQVVRfQ09OU1RSVUNUT1JfRk9SX1NJ
TVBMRV9UWVBFKGNhcGl0YWxOYW1lLCBsb3dlck5hbWUsIHByb3Blck5hbWUsIGluc3RhbmNlVHlw
ZSwganNOYW1lKSBcCisjZGVmaW5lIFBVVF9DT05TVFJVQ1RPUl9GT1JfU0lNUExFX1RZUEUoY2Fw
aXRhbE5hbWUsIGxvd2VyTmFtZSwgcHJvcGVyTmFtZSwgaW5zdGFuY2VUeXBlLCBqc05hbWUsIHBy
b3RvdHlwZUJhc2UpIFwKIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0
eU5hbWVzLT4ganNOYW1lLCBsb3dlck5hbWUgIyMgQ29uc3RydWN0b3IsIERvbnRFbnVtKTsgXAog
CiAgICAgRk9SX0VBQ0hfU0lNUExFX0JVSUxUSU5fVFlQRV9XSVRIX0NPTlNUUlVDVE9SKFBVVF9D
T05TVFJVQ1RPUl9GT1JfU0lNUExFX1RZUEUpCkBAIC04MjAsMTQgKzgyMCwyOCBAQCBwdXREaXJl
Y3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+IGpzTmFtZSwgbG93ZXJO
YW1lICMjIENvbnN0cnVjdAogCiAjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQogICAgIGlmIChPcHRp
b25zOjp1c2VXZWJBc3NlbWJseSgpKSB7Ci0gICAgICAgIGF1dG8qIHdhc20gPSBXZWJBc3NlbWJs
eU9iamVjdDo6Y3JlYXRlKHZtLCB0aGlzLCBXZWJBc3NlbWJseU9iamVjdDo6Y3JlYXRlU3RydWN0
dXJlKHZtLCB0aGlzLCBtX29iamVjdFByb3RvdHlwZS5nZXQoKSkpOwotICAgICAgICBwdXREaXJl
Y3RXaXRob3V0VHJhbnNpdGlvbih2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyhleGVjLCAiV2Vi
QXNzZW1ibHkiKSwgd2FzbSwgRG9udEVudW0pOwotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8g
ZXh0cmFTdGF0aWNHbG9iYWxzW10gPSB7Ci0jZGVmaW5lIFJFR0lTVEVSX1dBU01fQ09OU1RSVUNU
T1JfQVNfR0xPQkFMX1BST1BFUlRZKE5BTUUsIC4uLikgXAotICAgICAgICAgICAgR2xvYmFsUHJv
cGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLk5BTUUgIyMgUHJpdmF0
ZU5hbWUoKSwgd2FzbS0+Z2V0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKGV4ZWMs
ICNOQU1FKSksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAgICAg
IEZPUl9FQUNIX1dBU01fQ09OU1RSVUNUT1JfUFJPUEVSVFkoUkVHSVNURVJfV0FTTV9DT05TVFJV
Q1RPUl9BU19HTE9CQUxfUFJPUEVSVFkpCi0gICAgICAgIH07Ci0gICAgICAgIGFkZFN0YXRpY0ds
b2JhbHMoZXh0cmFTdGF0aWNHbG9iYWxzLCBXVEZfQVJSQVlfTEVOR1RIKGV4dHJhU3RhdGljR2xv
YmFscykpOworICAgICAgICBhdXRvKiB3ZWJBc3NlbWJseVByb3RvdHlwZSA9IFdlYkFzc2VtYmx5
UHJvdG90eXBlOjpjcmVhdGUodm0sIHRoaXMsIFdlYkFzc2VtYmx5UHJvdG90eXBlOjpjcmVhdGVT
dHJ1Y3R1cmUodm0sIHRoaXMsIG1fb2JqZWN0UHJvdG90eXBlLmdldCgpKSk7CisgICAgICAgIG1f
d2ViQXNzZW1ibHlTdHJ1Y3R1cmUuc2V0KHZtLCB0aGlzLCBKU1dlYkFzc2VtYmx5OjpjcmVhdGVT
dHJ1Y3R1cmUodm0sIHRoaXMsIHdlYkFzc2VtYmx5UHJvdG90eXBlKSk7CisgICAgICAgIGF1dG8q
IHdlYkFzc2VtYmx5ID0gSlNXZWJBc3NlbWJseTo6Y3JlYXRlKHZtLCB0aGlzLCBtX3dlYkFzc2Vt
Ymx5U3RydWN0dXJlLmdldCgpKTsKKyAgICAgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24o
dm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcoZXhlYywgIldlYkFzc2VtYmx5IiksIHdlYkFzc2Vt
Ymx5LCBEb250RW51bSk7CisKKyNkZWZpbmUgQ1JFQVRFX1dFQkFTU0VNQkxZX0NPTlNUUlVDVE9S
KGNhcGl0YWxOYW1lLCBsb3dlck5hbWUsIHByb3Blck5hbWUsIGluc3RhbmNlVHlwZSwganNOYW1l
LCBwcm90b3R5cGVCYXNlKSBkbyB7IFwKKyAgICAgICAgdHlwZWRlZiBjYXBpdGFsTmFtZSAjIyBQ
cm90b3R5cGUgUHJvdG90eXBlOyBcCisgICAgICAgIHR5cGVkZWYgY2FwaXRhbE5hbWUgIyMgQ29u
c3RydWN0b3IgQ29uc3RydWN0b3I7IFwKKyAgICAgICAgdHlwZWRlZiBKUyAjIyBjYXBpdGFsTmFt
ZSBKU09iajsgXAorICAgICAgICBhdXRvKiBiYXNlID0gbV8gIyMgcHJvdG90eXBlQmFzZSAjIyBQ
cm90b3R5cGUuZ2V0KCk7IFwKKyAgICAgICAgYXV0byogcHJvdG90eXBlID0gUHJvdG90eXBlOjpj
cmVhdGUodm0sIHRoaXMsIFByb3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJlKHZtLCB0aGlzLCBiYXNl
KSk7IFwKKyAgICAgICAgYXV0byogc3RydWN0dXJlID0gSlNPYmo6OmNyZWF0ZVN0cnVjdHVyZSh2
bSwgdGhpcywgcHJvdG90eXBlKTsgXAorICAgICAgICBhdXRvKiBjb25zdHJ1Y3RvciA9IENvbnN0
cnVjdG9yOjpjcmVhdGUodm0sIENvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUodm0sIHRoaXMs
IHRoaXMtPmZ1bmN0aW9uUHJvdG90eXBlKCkpLCBwcm90b3R5cGUsIHN0cnVjdHVyZSk7IFwKKyAg
ICAgICAgcHJvdG90eXBlLT5wdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVy
dHlOYW1lcy0+Y29uc3RydWN0b3IsIGNvbnN0cnVjdG9yLCBEb250RW51bSk7IFwKKyAgICAgICAg
bV8gIyMgbG93ZXJOYW1lICMjIFByb3RvdHlwZS5zZXQodm0sIHRoaXMsIHByb3RvdHlwZSk7IFwK
KyAgICAgICAgbV8gIyMgcHJvcGVyTmFtZSAjIyBTdHJ1Y3R1cmUuc2V0KHZtLCB0aGlzLCBzdHJ1
Y3R1cmUpOyBcCisgICAgICAgIHdlYkFzc2VtYmx5LT5wdXREaXJlY3RXaXRob3V0VHJhbnNpdGlv
bih2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh0aGlzLT5nbG9iYWxFeGVjKCksICNqc05hbWUp
LCBjb25zdHJ1Y3RvciwgRG9udEVudW0pOyBcCisgICAgfSB3aGlsZSAoMCk7CisKKyAgICAgICAg
Rk9SX0VBQ0hfV0VCQVNTRU1CTFlfQ09OU1RSVUNUT1JfVFlQRShDUkVBVEVfV0VCQVNTRU1CTFlf
Q09OU1RSVUNUT1IpCisKKyN1bmRlZiBDUkVBVEVfV0VCQVNTRU1CTFlfQ09OU1RSVUNUT1IKICAg
ICB9CiAjZW5kaWYgLy8gRU5BQkxFKFdFQkFTU0VNQkxZKQogCkBAIC0xMTQyLDE1ICsxMTU2LDIw
IEBAIHZvaWQgSlNHbG9iYWxPYmplY3Q6OnZpc2l0Q2hpbGRyZW4oSlNDZWxsKiBjZWxsLCBTbG90
VmlzaXRvciYgdmlzaXRvcikKICAgICB2aXNpdG9yLmFwcGVuZCgmdGhpc09iamVjdC0+bV9wcm94
eVJldm9rZVN0cnVjdHVyZSk7CiAgICAgdmlzaXRvci5hcHBlbmQoJnRoaXNPYmplY3QtPm1fbW9k
dWxlTG9hZGVyU3RydWN0dXJlKTsKIAotI2RlZmluZSBWSVNJVF9TSU1QTEVfVFlQRShDYXBpdGFs
TmFtZSwgbG93ZXJOYW1lLCBwcm9wZXJOYW1lLCBpbnN0YW5jZVR5cGUsIGpzTmFtZSkgXAorI2Rl
ZmluZSBWSVNJVF9TSU1QTEVfVFlQRShDYXBpdGFsTmFtZSwgbG93ZXJOYW1lLCBwcm9wZXJOYW1l
LCBpbnN0YW5jZVR5cGUsIGpzTmFtZSwgcHJvdG90eXBlQmFzZSkgXAogICAgIHZpc2l0b3IuYXBw
ZW5kKCZ0aGlzT2JqZWN0LT5tXyAjIyBsb3dlck5hbWUgIyMgUHJvdG90eXBlKTsgXAogICAgIHZp
c2l0b3IuYXBwZW5kKCZ0aGlzT2JqZWN0LT5tXyAjIyBwcm9wZXJOYW1lICMjIFN0cnVjdHVyZSk7
IFwKIAogICAgIEZPUl9FQUNIX1NJTVBMRV9CVUlMVElOX1RZUEUoVklTSVRfU0lNUExFX1RZUEUp
CisgICAgCisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQorICAgIHZpc2l0b3IuYXBwZW5kKCZ0aGlz
T2JqZWN0LT5tX3dlYkFzc2VtYmx5U3RydWN0dXJlKTsKKyAgICBGT1JfRUFDSF9XRUJBU1NFTUJM
WV9DT05TVFJVQ1RPUl9UWVBFKFZJU0lUX1NJTVBMRV9UWVBFKQorI2VuZGlmIC8vIEVOQUJMRShX
RUJBU1NFTUJMWSkKIAogI3VuZGVmIFZJU0lUX1NJTVBMRV9UWVBFCiAKLSNkZWZpbmUgVklTSVRf
TEFaWV9UWVBFKENhcGl0YWxOYW1lLCBsb3dlck5hbWUsIHByb3Blck5hbWUsIGluc3RhbmNlVHlw
ZSwganNOYW1lKSBcCisjZGVmaW5lIFZJU0lUX0xBWllfVFlQRShDYXBpdGFsTmFtZSwgbG93ZXJO
YW1lLCBwcm9wZXJOYW1lLCBpbnN0YW5jZVR5cGUsIGpzTmFtZSwgcHJvdG90eXBlQmFzZSkgXAog
ICAgIHRoaXNPYmplY3QtPm1fICMjIHByb3Blck5hbWUgIyMgU3RydWN0dXJlLnZpc2l0KHZpc2l0
b3IpOwogICAgIAogICAgIEZPUl9FQUNIX0xBWllfQlVJTFRJTl9UWVBFKFZJU0lUX0xBWllfVFlQ
RSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2Jq
ZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oCmlu
ZGV4IDI1YmRlMmIuLjQwODQ2Y2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTR2xvYmFsT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNHbG9iYWxPYmplY3QuaApAQCAtOTUsMTYgKzk1LDE2IEBAIGNsYXNzIFZhcmlhYmxlRW52
aXJvbm1lbnQ7CiBzdHJ1Y3QgQWN0aXZhdGlvblN0YWNrTm9kZTsKIHN0cnVjdCBIYXNoVGFibGU7
CiAKLSNkZWZpbmUgREVGSU5FX1NUQU5EQVJEX0JVSUxUSU4obWFjcm8sIHVwcGVyTmFtZSwgbG93
ZXJOYW1lKSBtYWNybyh1cHBlck5hbWUsIGxvd2VyTmFtZSwgbG93ZXJOYW1lLCBKUyAjIyB1cHBl
ck5hbWUsIHVwcGVyTmFtZSkKKyNkZWZpbmUgREVGSU5FX1NUQU5EQVJEX0JVSUxUSU4obWFjcm8s
IHVwcGVyTmFtZSwgbG93ZXJOYW1lKSBtYWNybyh1cHBlck5hbWUsIGxvd2VyTmFtZSwgbG93ZXJO
YW1lLCBKUyAjIyB1cHBlck5hbWUsIHVwcGVyTmFtZSwgb2JqZWN0KQogCiAjZGVmaW5lIEZPUl9F
QUNIX1NJTVBMRV9CVUlMVElOX1RZUEVfV0lUSF9DT05TVFJVQ1RPUihtYWNybykgXAotICAgIG1h
Y3JvKFN0cmluZywgc3RyaW5nLCBzdHJpbmdPYmplY3QsIFN0cmluZ09iamVjdCwgU3RyaW5nKSBc
Ci0gICAgbWFjcm8oU3ltYm9sLCBzeW1ib2wsIHN5bWJvbE9iamVjdCwgU3ltYm9sT2JqZWN0LCBT
eW1ib2wpIFwKLSAgICBtYWNybyhOdW1iZXIsIG51bWJlciwgbnVtYmVyT2JqZWN0LCBOdW1iZXJP
YmplY3QsIE51bWJlcikgXAotICAgIG1hY3JvKEVycm9yLCBlcnJvciwgZXJyb3IsIEVycm9ySW5z
dGFuY2UsIEVycm9yKSBcCi0gICAgbWFjcm8oTWFwLCBtYXAsIG1hcCwgSlNNYXAsIE1hcCkgXAot
ICAgIG1hY3JvKEpTUHJvbWlzZSwgcHJvbWlzZSwgcHJvbWlzZSwgSlNQcm9taXNlLCBQcm9taXNl
KSBcCi0gICAgbWFjcm8oSlNBcnJheUJ1ZmZlciwgYXJyYXlCdWZmZXIsIGFycmF5QnVmZmVyLCBK
U0FycmF5QnVmZmVyLCBBcnJheUJ1ZmZlcikgXAorICAgIG1hY3JvKFN0cmluZywgc3RyaW5nLCBz
dHJpbmdPYmplY3QsIFN0cmluZ09iamVjdCwgU3RyaW5nLCBvYmplY3QpIFwKKyAgICBtYWNybyhT
eW1ib2wsIHN5bWJvbCwgc3ltYm9sT2JqZWN0LCBTeW1ib2xPYmplY3QsIFN5bWJvbCwgb2JqZWN0
KSBcCisgICAgbWFjcm8oTnVtYmVyLCBudW1iZXIsIG51bWJlck9iamVjdCwgTnVtYmVyT2JqZWN0
LCBOdW1iZXIsIG9iamVjdCkgXAorICAgIG1hY3JvKEVycm9yLCBlcnJvciwgZXJyb3IsIEVycm9y
SW5zdGFuY2UsIEVycm9yLCBvYmplY3QpIFwKKyAgICBtYWNybyhNYXAsIG1hcCwgbWFwLCBKU01h
cCwgTWFwLCBvYmplY3QpIFwKKyAgICBtYWNybyhKU1Byb21pc2UsIHByb21pc2UsIHByb21pc2Us
IEpTUHJvbWlzZSwgUHJvbWlzZSwgb2JqZWN0KSBcCisgICAgbWFjcm8oSlNBcnJheUJ1ZmZlciwg
YXJyYXlCdWZmZXIsIGFycmF5QnVmZmVyLCBKU0FycmF5QnVmZmVyLCBBcnJheUJ1ZmZlciwgb2Jq
ZWN0KSBcCiAKICNkZWZpbmUgRk9SX0VBQ0hfQlVJTFRJTl9ERVJJVkVEX0lURVJBVE9SX1RZUEUo
bWFjcm8pIFwKICAgICBERUZJTkVfU1RBTkRBUkRfQlVJTFRJTihtYWNybywgTWFwSXRlcmF0b3Is
IG1hcEl0ZXJhdG9yKSBcCkBAIC0xMTcsMTYgKzExNywyOCBAQCBzdHJ1Y3QgSGFzaFRhYmxlOwog
CiAjZGVmaW5lIEZPUl9FQUNIX1NJTVBMRV9CVUlMVElOX1RZUEUobWFjcm8pIFwKICAgICBGT1Jf
RUFDSF9TSU1QTEVfQlVJTFRJTl9UWVBFX1dJVEhfQ09OU1RSVUNUT1IobWFjcm8pIFwKLSAgICBt
YWNybyhKU0ludGVybmFsUHJvbWlzZSwgaW50ZXJuYWxQcm9taXNlLCBpbnRlcm5hbFByb21pc2Us
IEpTSW50ZXJuYWxQcm9taXNlLCBJbnRlcm5hbFByb21pc2UpIFwKKyAgICBtYWNybyhKU0ludGVy
bmFsUHJvbWlzZSwgaW50ZXJuYWxQcm9taXNlLCBpbnRlcm5hbFByb21pc2UsIEpTSW50ZXJuYWxQ
cm9taXNlLCBJbnRlcm5hbFByb21pc2UsIG9iamVjdCkgXAogCiAjZGVmaW5lIEZPUl9FQUNIX0xB
WllfQlVJTFRJTl9UWVBFKG1hY3JvKSBcCi0gICAgbWFjcm8oU2V0LCBzZXQsIHNldCwgSlNTZXQs
IFNldCkgXAotICAgIG1hY3JvKERhdGUsIGRhdGUsIGRhdGUsIERhdGVJbnN0YW5jZSwgRGF0ZSkg
XAotICAgIG1hY3JvKEJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW5PYmplY3QsIEJvb2xlYW5PYmpl
Y3QsIEJvb2xlYW4pIFwKKyAgICBtYWNybyhTZXQsIHNldCwgc2V0LCBKU1NldCwgU2V0LCBvYmpl
Y3QpIFwKKyAgICBtYWNybyhEYXRlLCBkYXRlLCBkYXRlLCBEYXRlSW5zdGFuY2UsIERhdGUsIG9i
amVjdCkgXAorICAgIG1hY3JvKEJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW5PYmplY3QsIEJvb2xl
YW5PYmplY3QsIEJvb2xlYW4sIG9iamVjdCkgXAogICAgIERFRklORV9TVEFOREFSRF9CVUlMVElO
KG1hY3JvLCBXZWFrTWFwLCB3ZWFrTWFwKSBcCiAgICAgREVGSU5FX1NUQU5EQVJEX0JVSUxUSU4o
bWFjcm8sIFdlYWtTZXQsIHdlYWtTZXQpIFwKIAotI2RlZmluZSBERUNMQVJFX1NJTVBMRV9CVUlM
VElOX1RZUEUoY2FwaXRhbE5hbWUsIGxvd2VyTmFtZSwgcHJvcGVyTmFtZSwgaW5zdGFuY2VUeXBl
LCBqc05hbWUpIFwKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCisjZGVmaW5lIEZPUl9FQUNIX1dF
QkFTU0VNQkxZX0NPTlNUUlVDVE9SX1RZUEUobWFjcm8pIFwKKyAgICBtYWNybyhXZWJBc3NlbWJs
eUNvbXBpbGVFcnJvciwgd2ViQXNzZW1ibHlDb21waWxlRXJyb3IsIFdlYkFzc2VtYmx5Q29tcGls
ZUVycm9yLCBXZWJBc3NlbWJseUNvbXBpbGVFcnJvciwgQ29tcGlsZUVycm9yLCBlcnJvcikgXAor
ICAgIG1hY3JvKFdlYkFzc2VtYmx5SW5zdGFuY2UsICAgICB3ZWJBc3NlbWJseUluc3RhbmNlLCAg
ICAgV2ViQXNzZW1ibHlJbnN0YW5jZSwgICAgIFdlYkFzc2VtYmx5SW5zdGFuY2UsICAgICBJbnN0
YW5jZSwgICAgIG9iamVjdCkgXAorICAgIG1hY3JvKFdlYkFzc2VtYmx5TWVtb3J5LCAgICAgICB3
ZWJBc3NlbWJseU1lbW9yeSwgICAgICAgV2ViQXNzZW1ibHlNZW1vcnksICAgICAgIFdlYkFzc2Vt
Ymx5TWVtb3J5LCAgICAgICBNZW1vcnksICAgICAgIG9iamVjdCkgXAorICAgIG1hY3JvKFdlYkFz
c2VtYmx5TW9kdWxlLCAgICAgICB3ZWJBc3NlbWJseU1vZHVsZSwgICAgICAgV2ViQXNzZW1ibHlN
b2R1bGUsICAgICAgIFdlYkFzc2VtYmx5TW9kdWxlLCAgICAgICBNb2R1bGUsICAgICAgIG9iamVj
dCkgXAorICAgIG1hY3JvKFdlYkFzc2VtYmx5UnVudGltZUVycm9yLCB3ZWJBc3NlbWJseVJ1bnRp
bWVFcnJvciwgV2ViQXNzZW1ibHlSdW50aW1lRXJyb3IsIFdlYkFzc2VtYmx5UnVudGltZUVycm9y
LCBSdW50aW1lRXJyb3IsIGVycm9yKSBcCisgICAgbWFjcm8oV2ViQXNzZW1ibHlUYWJsZSwgICAg
ICAgIHdlYkFzc2VtYmx5VGFibGUsICAgICAgICBXZWJBc3NlbWJseVRhYmxlLCAgICAgICAgV2Vi
QXNzZW1ibHlUYWJsZSwgICAgICAgIFRhYmxlLCAgICAgICAgb2JqZWN0KQorI2Vsc2UKKyNkZWZp
bmUgRk9SX0VBQ0hfV0VCQVNTRU1CTFlfQ09OU1RSVUNUT1JfVFlQRShtYWNybykKKyNlbmRpZiAv
LyBFTkFCTEUoV0VCQVNTRU1CTFkpCisKKyNkZWZpbmUgREVDTEFSRV9TSU1QTEVfQlVJTFRJTl9U
WVBFKGNhcGl0YWxOYW1lLCBsb3dlck5hbWUsIHByb3Blck5hbWUsIGluc3RhbmNlVHlwZSwganNO
YW1lLCBwcm90b3R5cGVCYXNlKSBcCiAgICAgY2xhc3MgSlMgIyMgY2FwaXRhbE5hbWU7IFwKICAg
ICBjbGFzcyBjYXBpdGFsTmFtZSAjIyBQcm90b3R5cGU7IFwKICAgICBjbGFzcyBjYXBpdGFsTmFt
ZSAjIyBDb25zdHJ1Y3RvcjsKQEAgLTEzNSw2ICsxNDcsNyBAQCBjbGFzcyBJdGVyYXRvclByb3Rv
dHlwZTsKIEZPUl9FQUNIX1NJTVBMRV9CVUlMVElOX1RZUEUoREVDTEFSRV9TSU1QTEVfQlVJTFRJ
Tl9UWVBFKQogRk9SX0VBQ0hfTEFaWV9CVUlMVElOX1RZUEUoREVDTEFSRV9TSU1QTEVfQlVJTFRJ
Tl9UWVBFKQogRk9SX0VBQ0hfQlVJTFRJTl9ERVJJVkVEX0lURVJBVE9SX1RZUEUoREVDTEFSRV9T
SU1QTEVfQlVJTFRJTl9UWVBFKQorRk9SX0VBQ0hfV0VCQVNTRU1CTFlfQ09OU1RSVUNUT1JfVFlQ
RShERUNMQVJFX1NJTVBMRV9CVUlMVElOX1RZUEUpCiAKICN1bmRlZiBERUNMQVJFX1NJTVBMRV9C
VUlMVElOX1RZUEUKIApAQCAtMzA1LDIwICszMTgsMjUgQEAgcHVibGljOgogICAgIFdyaXRlQmFy
cmllcjxTdHJ1Y3R1cmU+IG1fcHJveHlSZXZva2VTdHJ1Y3R1cmU7CiAgICAgV3JpdGVCYXJyaWVy
PFN0cnVjdHVyZT4gbV9tb2R1bGVMb2FkZXJTdHJ1Y3R1cmU7CiAKLSNkZWZpbmUgREVGSU5FX1NU
T1JBR0VfRk9SX1NJTVBMRV9UWVBFKGNhcGl0YWxOYW1lLCBsb3dlck5hbWUsIHByb3Blck5hbWUs
IGluc3RhbmNlVHlwZSwganNOYW1lKSBcCisjZGVmaW5lIERFRklORV9TVE9SQUdFX0ZPUl9TSU1Q
TEVfVFlQRShjYXBpdGFsTmFtZSwgbG93ZXJOYW1lLCBwcm9wZXJOYW1lLCBpbnN0YW5jZVR5cGUs
IGpzTmFtZSwgcHJvdG90eXBlQmFzZSkgXAogICAgIFdyaXRlQmFycmllcjxjYXBpdGFsTmFtZSAj
IyBQcm90b3R5cGU+IG1fICMjIGxvd2VyTmFtZSAjIyBQcm90b3R5cGU7IFwKICAgICBXcml0ZUJh
cnJpZXI8U3RydWN0dXJlPiBtXyAjIyBwcm9wZXJOYW1lICMjIFN0cnVjdHVyZTsKIAogICAgIEZP
Ul9FQUNIX1NJTVBMRV9CVUlMVElOX1RZUEUoREVGSU5FX1NUT1JBR0VfRk9SX1NJTVBMRV9UWVBF
KQorICAgIAorI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKKyAgICBXcml0ZUJhcnJpZXI8U3RydWN0
dXJlPiBtX3dlYkFzc2VtYmx5U3RydWN0dXJlOworICAgIEZPUl9FQUNIX1dFQkFTU0VNQkxZX0NP
TlNUUlVDVE9SX1RZUEUoREVGSU5FX1NUT1JBR0VfRk9SX1NJTVBMRV9UWVBFKQorI2VuZGlmIC8v
IEVOQUJMRShXRUJBU1NFTUJMWSkKIAogI3VuZGVmIERFRklORV9TVE9SQUdFX0ZPUl9TSU1QTEVf
VFlQRQogCi0jZGVmaW5lIERFRklORV9TVE9SQUdFX0ZPUl9JVEVSQVRPUl9UWVBFKGNhcGl0YWxO
YW1lLCBsb3dlck5hbWUsIHByb3Blck5hbWUsIGluc3RhbmNlVHlwZSwganNOYW1lKSBcCisjZGVm
aW5lIERFRklORV9TVE9SQUdFX0ZPUl9JVEVSQVRPUl9UWVBFKGNhcGl0YWxOYW1lLCBsb3dlck5h
bWUsIHByb3Blck5hbWUsIGluc3RhbmNlVHlwZSwganNOYW1lLCBwcm90b3R5cGVCYXNlKSBcCiAg
ICAgTGF6eVByb3BlcnR5PEpTR2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmU+IG1fICMjIHByb3Blck5h
bWUgIyMgU3RydWN0dXJlOwogICAgIEZPUl9FQUNIX0JVSUxUSU5fREVSSVZFRF9JVEVSQVRPUl9U
WVBFKERFRklORV9TVE9SQUdFX0ZPUl9JVEVSQVRPUl9UWVBFKQogI3VuZGVmIERFRklORV9TVE9S
QUdFX0ZPUl9JVEVSQVRPUl9UWVBFCiAgICAgCi0jZGVmaW5lIERFRklORV9TVE9SQUdFX0ZPUl9M
QVpZX1RZUEUoY2FwaXRhbE5hbWUsIGxvd2VyTmFtZSwgcHJvcGVyTmFtZSwgaW5zdGFuY2VUeXBl
LCBqc05hbWUpIFwKKyNkZWZpbmUgREVGSU5FX1NUT1JBR0VfRk9SX0xBWllfVFlQRShjYXBpdGFs
TmFtZSwgbG93ZXJOYW1lLCBwcm9wZXJOYW1lLCBpbnN0YW5jZVR5cGUsIGpzTmFtZSwgcHJvdG90
eXBlQmFzZSkgXAogICAgIExhenlDbGFzc1N0cnVjdHVyZSBtXyAjIyBwcm9wZXJOYW1lICMjIFN0
cnVjdHVyZTsKICAgICBGT1JfRUFDSF9MQVpZX0JVSUxUSU5fVFlQRShERUZJTkVfU1RPUkFHRV9G
T1JfTEFaWV9UWVBFKQogI3VuZGVmIERFRklORV9TVE9SQUdFX0ZPUl9MQVpZX1RZUEUKQEAgLTYw
NiwyMSArNjI0LDIyIEBAIHB1YmxpYzoKIAogICAgIEpTQXJyYXlCdWZmZXJQcm90b3R5cGUqIGFy
cmF5QnVmZmVyUHJvdG90eXBlKCkgY29uc3QgeyByZXR1cm4gbV9hcnJheUJ1ZmZlclByb3RvdHlw
ZS5nZXQoKTsgfQogCi0jZGVmaW5lIERFRklORV9BQ0NFU1NPUlNfRk9SX1NJTVBMRV9UWVBFKGNh
cGl0YWxOYW1lLCBsb3dlck5hbWUsIHByb3Blck5hbWUsIGluc3RhbmNlVHlwZSwganNOYW1lKSBc
CisjZGVmaW5lIERFRklORV9BQ0NFU1NPUlNfRk9SX1NJTVBMRV9UWVBFKGNhcGl0YWxOYW1lLCBs
b3dlck5hbWUsIHByb3Blck5hbWUsIGluc3RhbmNlVHlwZSwganNOYW1lLCBwcm90b3R5cGVCYXNl
KSBcCiAgICAgU3RydWN0dXJlKiBwcm9wZXJOYW1lICMjIFN0cnVjdHVyZSgpIHsgcmV0dXJuIG1f
ICMjIHByb3Blck5hbWUgIyMgU3RydWN0dXJlLmdldCgpOyB9CiAKICAgICBGT1JfRUFDSF9TSU1Q
TEVfQlVJTFRJTl9UWVBFKERFRklORV9BQ0NFU1NPUlNfRk9SX1NJTVBMRV9UWVBFKQorICAgIEZP
Ul9FQUNIX1dFQkFTU0VNQkxZX0NPTlNUUlVDVE9SX1RZUEUoREVGSU5FX0FDQ0VTU09SU19GT1Jf
U0lNUExFX1RZUEUpCiAKICN1bmRlZiBERUZJTkVfQUNDRVNTT1JTX0ZPUl9TSU1QTEVfVFlQRQog
Ci0jZGVmaW5lIERFRklORV9BQ0NFU1NPUlNfRk9SX0lURVJBVE9SX1RZUEUoY2FwaXRhbE5hbWUs
IGxvd2VyTmFtZSwgcHJvcGVyTmFtZSwgaW5zdGFuY2VUeXBlLCBqc05hbWUpIFwKKyNkZWZpbmUg
REVGSU5FX0FDQ0VTU09SU19GT1JfSVRFUkFUT1JfVFlQRShjYXBpdGFsTmFtZSwgbG93ZXJOYW1l
LCBwcm9wZXJOYW1lLCBpbnN0YW5jZVR5cGUsIGpzTmFtZSwgcHJvdG90eXBlQmFzZSkgXAogICAg
IFN0cnVjdHVyZSogcHJvcGVyTmFtZSAjIyBTdHJ1Y3R1cmUoKSB7IHJldHVybiBtXyAjIyBwcm9w
ZXJOYW1lICMjIFN0cnVjdHVyZS5nZXQodGhpcyk7IH0KIAogICAgIEZPUl9FQUNIX0JVSUxUSU5f
REVSSVZFRF9JVEVSQVRPUl9UWVBFKERFRklORV9BQ0NFU1NPUlNfRk9SX0lURVJBVE9SX1RZUEUp
CiAKICN1bmRlZiBERUZJTkVfQUNDRVNTT1JTX0ZPUl9JVEVSQVRPUl9UWVBFCiAKLSNkZWZpbmUg
REVGSU5FX0FDQ0VTU09SU19GT1JfTEFaWV9UWVBFKGNhcGl0YWxOYW1lLCBsb3dlck5hbWUsIHBy
b3Blck5hbWUsIGluc3RhbmNlVHlwZSwganNOYW1lKSBcCisjZGVmaW5lIERFRklORV9BQ0NFU1NP
UlNfRk9SX0xBWllfVFlQRShjYXBpdGFsTmFtZSwgbG93ZXJOYW1lLCBwcm9wZXJOYW1lLCBpbnN0
YW5jZVR5cGUsIGpzTmFtZSwgcHJvdG90eXBlQmFzZSkgXAogICAgIFN0cnVjdHVyZSogcHJvcGVy
TmFtZSAjIyBTdHJ1Y3R1cmUoKSB7IHJldHVybiBtXyAjIyBwcm9wZXJOYW1lICMjIFN0cnVjdHVy
ZS5nZXQodGhpcyk7IH0KIAogICAgIEZPUl9FQUNIX0xBWllfQlVJTFRJTl9UWVBFKERFRklORV9B
Q0NFU1NPUlNfRk9SX0xBWllfVFlQRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL0pTV2ViQXNzZW1ibHkuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vSlNX
ZWJBc3NlbWJseS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTJkNzQx
OQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL0pTV2ViQXNz
ZW1ibHkuY3BwCkBAIC0wLDAgKzEsNjEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSlNXZWJBc3Nl
bWJseS5oIgorCisjaW5jbHVkZSAiRnVuY3Rpb25Qcm90b3R5cGUuaCIKKyNpbmNsdWRlICJKU0NJ
bmxpbmVzLmgiCisKK25hbWVzcGFjZSBKU0MgeworCitTVEFUSUNfQVNTRVJUX0lTX1RSSVZJQUxM
WV9ERVNUUlVDVElCTEUoSlNXZWJBc3NlbWJseSk7CisKK2NvbnN0IENsYXNzSW5mbyBKU1dlYkFz
c2VtYmx5OjpzX2luZm8gPSB7ICJXZWJBc3NlbWJseSIsICZCYXNlOjpzX2luZm8sIDAsIENSRUFU
RV9NRVRIT0RfVEFCTEUoSlNXZWJBc3NlbWJseSkgfTsKKworSlNXZWJBc3NlbWJseSogSlNXZWJB
c3NlbWJseTo6Y3JlYXRlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3Ry
dWN0dXJlKiBzdHJ1Y3R1cmUpCit7CisgICAgYXV0byogb2JqZWN0ID0gbmV3IChOb3ROdWxsLCBh
bGxvY2F0ZUNlbGw8SlNXZWJBc3NlbWJseT4odm0uaGVhcCkpIEpTV2ViQXNzZW1ibHkodm0sIHN0
cnVjdHVyZSk7CisgICAgb2JqZWN0LT5maW5pc2hDcmVhdGlvbih2bSwgZ2xvYmFsT2JqZWN0KTsK
KyAgICByZXR1cm4gb2JqZWN0OworfQorCitTdHJ1Y3R1cmUqIEpTV2ViQXNzZW1ibHk6OmNyZWF0
ZVN0cnVjdHVyZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUg
cHJvdG90eXBlKQoreworICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2Jq
ZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5m
bygpKTsKK30KKwordm9pZCBKU1dlYkFzc2VtYmx5OjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpT
R2xvYmFsT2JqZWN0KikKK3sKKyAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7CisgICAgQVNT
RVJUKGluaGVyaXRzKGluZm8oKSkpOworfQorCitKU1dlYkFzc2VtYmx5OjpKU1dlYkFzc2VtYmx5
KFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCisgICAgOiBKU05vbkZpbmFsT2JqZWN0KHZt
LCBzdHJ1Y3R1cmUpCit7Cit9CisKK30gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vSlNXZWJBc3NlbWJseS5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vSlNXZWJBc3NlbWJseS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLmI2MGM2ODEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9KU1dlYkFzc2VtYmx5LmgKQEAgLTAsMCArMSw2NyBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiSlNP
YmplY3QuaCIKKyNpbmNsdWRlICJqcy9KU1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yLmgiCisjaW5j
bHVkZSAianMvSlNXZWJBc3NlbWJseUluc3RhbmNlLmgiCisjaW5jbHVkZSAianMvSlNXZWJBc3Nl
bWJseU1lbW9yeS5oIgorI2luY2x1ZGUgImpzL0pTV2ViQXNzZW1ibHlNb2R1bGUuaCIKKyNpbmNs
dWRlICJqcy9KU1dlYkFzc2VtYmx5UnVudGltZUVycm9yLmgiCisjaW5jbHVkZSAianMvSlNXZWJB
c3NlbWJseVRhYmxlLmgiCisjaW5jbHVkZSAianMvV2ViQXNzZW1ibHlDb21waWxlRXJyb3JDb25z
dHJ1Y3Rvci5oIgorI2luY2x1ZGUgImpzL1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yUHJvdG90eXBl
LmgiCisjaW5jbHVkZSAianMvV2ViQXNzZW1ibHlJbnN0YW5jZUNvbnN0cnVjdG9yLmgiCisjaW5j
bHVkZSAianMvV2ViQXNzZW1ibHlJbnN0YW5jZVByb3RvdHlwZS5oIgorI2luY2x1ZGUgImpzL1dl
YkFzc2VtYmx5TWVtb3J5Q29uc3RydWN0b3IuaCIKKyNpbmNsdWRlICJqcy9XZWJBc3NlbWJseU1l
bW9yeVByb3RvdHlwZS5oIgorI2luY2x1ZGUgImpzL1dlYkFzc2VtYmx5TW9kdWxlQ29uc3RydWN0
b3IuaCIKKyNpbmNsdWRlICJqcy9XZWJBc3NlbWJseU1vZHVsZVByb3RvdHlwZS5oIgorI2luY2x1
ZGUgImpzL1dlYkFzc2VtYmx5UHJvdG90eXBlLmgiCisjaW5jbHVkZSAianMvV2ViQXNzZW1ibHlS
dW50aW1lRXJyb3JDb25zdHJ1Y3Rvci5oIgorI2luY2x1ZGUgImpzL1dlYkFzc2VtYmx5UnVudGlt
ZUVycm9yUHJvdG90eXBlLmgiCisjaW5jbHVkZSAianMvV2ViQXNzZW1ibHlUYWJsZUNvbnN0cnVj
dG9yLmgiCisjaW5jbHVkZSAianMvV2ViQXNzZW1ibHlUYWJsZVByb3RvdHlwZS5oIgorCituYW1l
c3BhY2UgSlNDIHsKKworY2xhc3MgSlNXZWJBc3NlbWJseSA6IHB1YmxpYyBKU05vbkZpbmFsT2Jq
ZWN0IHsKK3B1YmxpYzoKKyAgICB0eXBlZGVmIEpTTm9uRmluYWxPYmplY3QgQmFzZTsKKworICAg
IHN0YXRpYyBKU1dlYkFzc2VtYmx5KiBjcmVhdGUoVk0mLCBKU0dsb2JhbE9iamVjdCosIFN0cnVj
dHVyZSopOworICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShWTSYsIEpTR2xv
YmFsT2JqZWN0KiwgSlNWYWx1ZSk7CisKKyAgICBERUNMQVJFX0lORk87CisKK3Byb3RlY3RlZDoK
KyAgICB2b2lkIGZpbmlzaENyZWF0aW9uKFZNJiwgSlNHbG9iYWxPYmplY3QqKTsKKworcHJpdmF0
ZToKKyAgICBKU1dlYkFzc2VtYmx5KFZNJiwgU3RydWN0dXJlKik7Cit9OworCit9IC8vIG5hbWVz
cGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dlYkFzc2Vt
Ymx5T2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dlYkFzc2VtYmx5T2Jq
ZWN0LmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTM3MmZiNC4uMDAwMDAwMAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XZWJBc3NlbWJseU9iamVjdC5jcHAKKysr
IC9kZXYvbnVsbApAQCAtMSwxMTMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNiBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0g
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJXZWJBc3Nl
bWJseU9iamVjdC5oIgotCi0jaW5jbHVkZSAiRnVuY3Rpb25Qcm90b3R5cGUuaCIKLSNpbmNsdWRl
ICJKU0NJbmxpbmVzLmgiCi0jaW5jbHVkZSAianMvSlNXZWJBc3NlbWJseUNvbXBpbGVFcnJvci5o
IgotI2luY2x1ZGUgImpzL0pTV2ViQXNzZW1ibHlJbnN0YW5jZS5oIgotI2luY2x1ZGUgImpzL0pT
V2ViQXNzZW1ibHlNZW1vcnkuaCIKLSNpbmNsdWRlICJqcy9KU1dlYkFzc2VtYmx5TW9kdWxlLmgi
Ci0jaW5jbHVkZSAianMvSlNXZWJBc3NlbWJseVJ1bnRpbWVFcnJvci5oIgotI2luY2x1ZGUgImpz
L0pTV2ViQXNzZW1ibHlUYWJsZS5oIgotI2luY2x1ZGUgImpzL1dlYkFzc2VtYmx5Q29tcGlsZUVy
cm9yQ29uc3RydWN0b3IuaCIKLSNpbmNsdWRlICJqcy9XZWJBc3NlbWJseUNvbXBpbGVFcnJvclBy
b3RvdHlwZS5oIgotI2luY2x1ZGUgImpzL1dlYkFzc2VtYmx5SW5zdGFuY2VDb25zdHJ1Y3Rvci5o
IgotI2luY2x1ZGUgImpzL1dlYkFzc2VtYmx5SW5zdGFuY2VQcm90b3R5cGUuaCIKLSNpbmNsdWRl
ICJqcy9XZWJBc3NlbWJseU1lbW9yeUNvbnN0cnVjdG9yLmgiCi0jaW5jbHVkZSAianMvV2ViQXNz
ZW1ibHlNZW1vcnlQcm90b3R5cGUuaCIKLSNpbmNsdWRlICJqcy9XZWJBc3NlbWJseU1vZHVsZUNv
bnN0cnVjdG9yLmgiCi0jaW5jbHVkZSAianMvV2ViQXNzZW1ibHlNb2R1bGVQcm90b3R5cGUuaCIK
LSNpbmNsdWRlICJqcy9XZWJBc3NlbWJseVJ1bnRpbWVFcnJvckNvbnN0cnVjdG9yLmgiCi0jaW5j
bHVkZSAianMvV2ViQXNzZW1ibHlSdW50aW1lRXJyb3JQcm90b3R5cGUuaCIKLSNpbmNsdWRlICJq
cy9XZWJBc3NlbWJseVRhYmxlQ29uc3RydWN0b3IuaCIKLSNpbmNsdWRlICJqcy9XZWJBc3NlbWJs
eVRhYmxlUHJvdG90eXBlLmgiCi0KLW5hbWVzcGFjZSBKU0MgewotCi1TVEFUSUNfQVNTRVJUX0lT
X1RSSVZJQUxMWV9ERVNUUlVDVElCTEUoV2ViQXNzZW1ibHlPYmplY3QpOwotCi0jZGVmaW5lIERF
Q0xBUkVfV0FTTV9PQkpFQ1RfRlVOQ1RJT04oTkFNRSwgLi4uKSBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIHdhc21PYmplY3RGdW5jICMjIE5BTUUoRXhlY1N0YXRlKik7Ci1GT1JfRUFDSF9X
QVNNX0ZVTkNUSU9OX1BST1BFUlRZKERFQ0xBUkVfV0FTTV9PQkpFQ1RfRlVOQ1RJT04pCi0KLWNv
bnN0IENsYXNzSW5mbyBXZWJBc3NlbWJseU9iamVjdDo6c19pbmZvID0geyAiV2ViQXNzZW1ibHki
LCAmQmFzZTo6c19pbmZvLCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxFKFdlYkFzc2VtYmx5T2JqZWN0
KSB9OwotCi1XZWJBc3NlbWJseU9iamVjdCogV2ViQXNzZW1ibHlPYmplY3Q6OmNyZWF0ZShWTSYg
dm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlKQot
ewotICAgIGF1dG8qIG9iamVjdCA9IG5ldyAoTm90TnVsbCwgYWxsb2NhdGVDZWxsPFdlYkFzc2Vt
Ymx5T2JqZWN0Pih2bS5oZWFwKSkgV2ViQXNzZW1ibHlPYmplY3Qodm0sIHN0cnVjdHVyZSk7Ci0g
ICAgb2JqZWN0LT5maW5pc2hDcmVhdGlvbih2bSwgZ2xvYmFsT2JqZWN0KTsKLSAgICByZXR1cm4g
b2JqZWN0OwotfQotCi1TdHJ1Y3R1cmUqIFdlYkFzc2VtYmx5T2JqZWN0OjpjcmVhdGVTdHJ1Y3R1
cmUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlw
ZSkKLXsKLSAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJv
dG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7Ci19
Ci0KLXZvaWQgV2ViQXNzZW1ibHlPYmplY3Q6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCkKLXsKLSAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7
Ci0gICAgQVNTRVJUKGluaGVyaXRzKGluZm8oKSkpOwotCi0jZGVmaW5lIFNFVF9VUF9XQVNNX0NP
TlNUUlVDVE9SX1BST1BFUlRZKE5BTUUsIC4uLikgXAotICAgIGF1dG8qIHByb3RvdHlwZSAjIyBO
QU1FID0gV2ViQXNzZW1ibHkgIyMgTkFNRSAjIyBQcm90b3R5cGU6OmNyZWF0ZSh2bSwgZ2xvYmFs
T2JqZWN0LCBXZWJBc3NlbWJseSAjIyBOQU1FICMjIFByb3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJl
KHZtLCBnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdC0+b2JqZWN0UHJvdG90eXBlKCkpKTsgXAot
ICAgIGF1dG8qIHN0cnVjdHVyZSAjIyBOQU1FID0gSlNXZWJBc3NlbWJseSAjIyBOQU1FOjpjcmVh
dGVTdHJ1Y3R1cmUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlICMjIE5BTUUpOyBcCi0gICAg
YXV0byogY29uc3RydWN0b3IgIyMgTkFNRSA9IFdlYkFzc2VtYmx5ICMjIE5BTUUgIyMgQ29uc3Ry
dWN0b3I6OmNyZWF0ZSh2bSwgV2ViQXNzZW1ibHkgIyMgTkFNRSAjIyBDb25zdHJ1Y3Rvcjo6Y3Jl
YXRlU3RydWN0dXJlKHZtLCBnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdC0+ZnVuY3Rpb25Qcm90
b3R5cGUoKSksIHByb3RvdHlwZSAjIyBOQU1FLCBzdHJ1Y3R1cmUgIyMgTkFNRSk7IFwKLSAgICBw
cm90b3R5cGUgIyMgTkFNRS0+cHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3Bl
cnR5TmFtZXMtPmNvbnN0cnVjdG9yLCBjb25zdHJ1Y3RvciAjIyBOQU1FLCBEb250RW51bSk7Ci0g
ICAgRk9SX0VBQ0hfV0FTTV9DT05TVFJVQ1RPUl9QUk9QRVJUWShTRVRfVVBfV0FTTV9DT05TVFJV
Q1RPUl9QUk9QRVJUWSkKLQotI2RlZmluZSBSRUdJU1RFUl9XQVNNX0NPTlNUUlVDVE9SX1BST1BF
UlRZKE5BTUUsIC4uLikgXAotICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCBJZGVu
dGlmaWVyOjpmcm9tU3RyaW5nKGdsb2JhbE9iamVjdC0+Z2xvYmFsRXhlYygpLCAjTkFNRSksIGNv
bnN0cnVjdG9yICMjIE5BTUUsIERvbnRFbnVtKTsKLSAgICBGT1JfRUFDSF9XQVNNX0NPTlNUUlVD
VE9SX1BST1BFUlRZKFJFR0lTVEVSX1dBU01fQ09OU1RSVUNUT1JfUFJPUEVSVFkpCi0KLSNkZWZp
bmUgUkVHSVNURVJfV0FTTV9GVU5DVElPTl9QUk9QRVJUWShOQU1FLCBMRU5HVEgpIFwKLSAgICBw
dXREaXJlY3ROYXRpdmVGdW5jdGlvbih2bSwgZ2xvYmFsT2JqZWN0LCBJZGVudGlmaWVyOjpmcm9t
U3RyaW5nKCZ2bSwgI05BTUUpLCBMRU5HVEgsIHdhc21PYmplY3RGdW5jICMjIE5BTUUsIE5vSW50
cmluc2ljLCBEb250RW51bSk7Ci0gICAgRk9SX0VBQ0hfV0FTTV9GVU5DVElPTl9QUk9QRVJUWShS
RUdJU1RFUl9XQVNNX0ZVTkNUSU9OX1BST1BFUlRZKQotfQotCi1XZWJBc3NlbWJseU9iamVjdDo6
V2ViQXNzZW1ibHlPYmplY3QoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKLSAgICA6IEpT
Tm9uRmluYWxPYmplY3Qodm0sIHN0cnVjdHVyZSkKLXsKLX0KLQotLy8gLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tIEZ1bmN0aW9ucyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQotCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHdhc21PYmplY3RGdW5jdmFsaWRhdGUo
RXhlY1N0YXRlKiBzdGF0ZSkKLXsKLSAgICBWTSYgdm0gPSBzdGF0ZS0+dm0oKTsKLSAgICBhdXRv
IHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZSh0aHJvd0V4Y2VwdGlvbihzdGF0ZSwgc2NvcGUsIGNyZWF0ZUVycm9yKHN0YXRlLCBBU0NJ
SUxpdGVyYWwoIldlYkFzc2VtYmx5IGRvZXNuJ3QgeWV0IGltcGxlbWVudCB0aGUgdmFsaWRhdGUg
ZnVuY3Rpb24gcHJvcGVydHkiKSkpKTsKLX0KLQotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCB3YXNtT2JqZWN0RnVuY2NvbXBpbGUoRXhlY1N0YXRlKiBzdGF0ZSkKLXsKLSAgICBWTSYgdm0g
PSBzdGF0ZS0+dm0oKTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZSh0aHJvd0V4Y2VwdGlvbihzdGF0ZSwgc2NvcGUs
IGNyZWF0ZUVycm9yKHN0YXRlLCBBU0NJSUxpdGVyYWwoIldlYkFzc2VtYmx5IGRvZXNuJ3QgeWV0
IGltcGxlbWVudCB0aGUgY29tcGlsZSBmdW5jdGlvbiBwcm9wZXJ0eSIpKSkpOwotfQotCi19IC8v
IG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pz
L0pTV2ViQXNzZW1ibHlDb21waWxlRXJyb3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L2pzL0pTV2ViQXNzZW1ibHlDb21waWxlRXJyb3IuaAppbmRleCAxYTc3ZWZiLi5kZjQyNjU2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5Q29t
cGlsZUVycm9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3Nl
bWJseUNvbXBpbGVFcnJvci5oCkBAIC0zNCw2ICszNCwxMCBAQCBwdWJsaWM6CiAgICAgdHlwZWRl
ZiBFcnJvckluc3RhbmNlIEJhc2U7CiAKICAgICBzdGF0aWMgSlNXZWJBc3NlbWJseUNvbXBpbGVF
cnJvciogY3JlYXRlKEV4ZWNTdGF0ZSosIFN0cnVjdHVyZSosIGNvbnN0IFN0cmluZyYsIGJvb2wp
OworICAgIHN0YXRpYyBKU1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yKiBjcmVhdGUoRXhlY1N0YXRl
KiBleGVjLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNWYWx1ZSBtZXNzYWdlLCBib29sIHVzZUN1
cnJlbnRGcmFtZSkKKyAgICB7CisgICAgICAgIHJldHVybiBjcmVhdGUoZXhlYywgc3RydWN0dXJl
LCBtZXNzYWdlLmlzVW5kZWZpbmVkKCkgPyBTdHJpbmcoKSA6IG1lc3NhZ2UudG9TdHJpbmcoZXhl
YyktPnZhbHVlKGV4ZWMpLCB1c2VDdXJyZW50RnJhbWUpOworICAgIH0KIAogICAgIERFQ0xBUkVf
SU5GTzsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJB
c3NlbWJseVJ1bnRpbWVFcnJvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNX
ZWJBc3NlbWJseVJ1bnRpbWVFcnJvci5oCmluZGV4IGMxMmExZmEuLjkzZGE5ZWUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlSdW50aW1lRXJy
b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5UnVu
dGltZUVycm9yLmgKQEAgLTM0LDYgKzM0LDEwIEBAIHB1YmxpYzoKICAgICB0eXBlZGVmIEVycm9y
SW5zdGFuY2UgQmFzZTsKIAogICAgIHN0YXRpYyBKU1dlYkFzc2VtYmx5UnVudGltZUVycm9yKiBj
cmVhdGUoRXhlY1N0YXRlKiwgU3RydWN0dXJlKiwgY29uc3QgU3RyaW5nJiwgYm9vbCk7CisgICAg
c3RhdGljIEpTV2ViQXNzZW1ibHlSdW50aW1lRXJyb3IqIGNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMs
IFN0cnVjdHVyZSogc3RydWN0dXJlLCBKU1ZhbHVlIG1lc3NhZ2UsIGJvb2wgdXNlQ3VycmVudEZy
YW1lKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGNyZWF0ZShleGVjLCBzdHJ1Y3R1cmUsIG1lc3Nh
Z2UuaXNVbmRlZmluZWQoKSA/IFN0cmluZygpIDogbWVzc2FnZS50b1N0cmluZyhleGVjKS0+dmFs
dWUoZXhlYyksIHVzZUN1cnJlbnRGcmFtZSk7CisgICAgfQogCiAgICAgREVDTEFSRV9JTkZPOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUNv
bXBpbGVFcnJvckNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pz
L1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yQ29uc3RydWN0b3IuY3BwCmluZGV4IGQxNzg2NGMuLmU0
MzY0MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2Vt
Ymx5Q29tcGlsZUVycm9yQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL2pzL1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yQ29uc3RydWN0b3IuY3BwCkBAIC0yOCw2
ICsyOCw3IEBACiAKICNpbmNsdWRlICJGdW5jdGlvblByb3RvdHlwZS5oIgogI2luY2x1ZGUgIkpT
Q0lubGluZXMuaCIKKyNpbmNsdWRlICJKU1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yLmgiCiAjaW5j
bHVkZSAiV2ViQXNzZW1ibHlDb21waWxlRXJyb3JQcm90b3R5cGUuaCIKIAogI2luY2x1ZGUgIldl
YkFzc2VtYmx5Q29tcGlsZUVycm9yQ29uc3RydWN0b3IubHV0LmgiCkBAIC00Myw5ICs0NCwxMiBA
QCBjb25zdCBDbGFzc0luZm8gV2ViQXNzZW1ibHlDb21waWxlRXJyb3JDb25zdHJ1Y3Rvcjo6c19p
bmZvID0geyAiRnVuY3Rpb24iLCAmQmFzZQogCiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBjb25zdHJ1Y3RKU1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yKEV4ZWNTdGF0ZSogc3Rh
dGUpCiB7Ci0gICAgVk0mIHZtID0gc3RhdGUtPnZtKCk7CisgICAgYXV0byYgdm0gPSBzdGF0ZS0+
dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZSh0aHJvd0V4Y2VwdGlvbihzdGF0ZSwgc2NvcGUsIGNyZWF0ZUVy
cm9yKHN0YXRlLCBBU0NJSUxpdGVyYWwoIldlYkFzc2VtYmx5IGRvZXNuJ3QgeWV0IGltcGxlbWVu
dCB0aGUgQ29tcGlsZUVycm9yIGNvbnN0cnVjdG9yIHByb3BlcnR5IikpKSk7CisgICAgSlNWYWx1
ZSBtZXNzYWdlID0gc3RhdGUtPmFyZ3VtZW50Q291bnQoKSA/IHN0YXRlLT5hcmd1bWVudCgwKSA6
IGpzVW5kZWZpbmVkKCk7CisgICAgYXV0byogc3RydWN0dXJlID0gSW50ZXJuYWxGdW5jdGlvbjo6
Y3JlYXRlU3ViY2xhc3NTdHJ1Y3R1cmUoc3RhdGUsIHN0YXRlLT5uZXdUYXJnZXQoKSwgYXNJbnRl
cm5hbEZ1bmN0aW9uKHN0YXRlLT5jYWxsZWUoKSktPmdsb2JhbE9iamVjdCgpLT5XZWJBc3NlbWJs
eUNvbXBpbGVFcnJvclN0cnVjdHVyZSgpKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3Bl
LCBlbmNvZGVkSlNWYWx1ZSgpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTV2ViQXNz
ZW1ibHlDb21waWxlRXJyb3I6OmNyZWF0ZShzdGF0ZSwgc3RydWN0dXJlLCBtZXNzYWdlLCBmYWxz
ZSkpOwogfQogCiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsSlNXZWJB
c3NlbWJseUNvbXBpbGVFcnJvcihFeGVjU3RhdGUqIHN0YXRlKQpAQCAtNjcsMTIgKzcxLDExIEBA
IFN0cnVjdHVyZSogV2ViQXNzZW1ibHlDb21waWxlRXJyb3JDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3Ry
dWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxPCiAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZt
LCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJl
RmxhZ3MpLCBpbmZvKCkpOwogfQogCi12b2lkIFdlYkFzc2VtYmx5Q29tcGlsZUVycm9yQ29uc3Ry
dWN0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgV2ViQXNzZW1ibHlDb21waWxlRXJyb3JQcm90
b3R5cGUqIHByb3RvdHlwZSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCit2b2lkIFdlYkFzc2VtYmx5
Q29tcGlsZUVycm9yQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgV2ViQXNzZW1i
bHlDb21waWxlRXJyb3JQcm90b3R5cGUqIHByb3RvdHlwZSwgU3RydWN0dXJlKikKIHsKICAgICBC
YXNlOjpmaW5pc2hDcmVhdGlvbih2bSwgQVNDSUlMaXRlcmFsKCJDb21waWxlRXJyb3IiKSk7Ci0g
ICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPnByb3Rv
dHlwZSwgcHJvdG90eXBlLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSk7CisgICAg
cHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPnByb3RvdHlw
ZSwgcHJvdG90eXBlLCBSZWFkT25seSB8IERvbnRFbnVtIHwgRG9udERlbGV0ZSk7CiAgICAgcHV0
RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPmxlbmd0aCwganNO
dW1iZXIoMSksIFJlYWRPbmx5IHwgRG9udEVudW0gfCBEb250RGVsZXRlKTsKLSAgICBtX0NvbXBp
bGVFcnJvclN0cnVjdHVyZS5zZXQodm0sIHRoaXMsIHN0cnVjdHVyZSk7CiB9CiAKIFdlYkFzc2Vt
Ymx5Q29tcGlsZUVycm9yQ29uc3RydWN0b3I6OldlYkFzc2VtYmx5Q29tcGlsZUVycm9yQ29uc3Ry
dWN0b3IoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKQEAgLTkyLDEyICs5NSw0IEBAIENh
bGxUeXBlIFdlYkFzc2VtYmx5Q29tcGlsZUVycm9yQ29uc3RydWN0b3I6OmdldENhbGxEYXRhKEpT
Q2VsbCosIENhbGxEYXRhJiBjYWxsCiAgICAgcmV0dXJuIENhbGxUeXBlOjpIb3N0OwogfQogCi12
b2lkIFdlYkFzc2VtYmx5Q29tcGlsZUVycm9yQ29uc3RydWN0b3I6OnZpc2l0Q2hpbGRyZW4oSlND
ZWxsKiBjZWxsLCBTbG90VmlzaXRvciYgdmlzaXRvcikKLXsKLSAgICBhdXRvKiB0aGlzT2JqZWN0
ID0ganNDYXN0PFdlYkFzc2VtYmx5Q29tcGlsZUVycm9yQ29uc3RydWN0b3IqPihjZWxsKTsKLSAg
ICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXNPYmplY3QsIGluZm8oKSk7Ci0gICAgQmFz
ZTo6dmlzaXRDaGlsZHJlbih0aGlzT2JqZWN0LCB2aXNpdG9yKTsKLSAgICB2aXNpdG9yLmFwcGVu
ZCgmdGhpc09iamVjdC0+bV9Db21waWxlRXJyb3JTdHJ1Y3R1cmUpOwotfQotCiB9IC8vIG5hbWVz
cGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFz
c2VtYmx5Q29tcGlsZUVycm9yQ29uc3RydWN0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL2pzL1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yQ29uc3RydWN0b3IuaAppbmRleCA3YTUyNGI5
Li4wODYxMjU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJB
c3NlbWJseUNvbXBpbGVFcnJvckNvbnN0cnVjdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vanMvV2ViQXNzZW1ibHlDb21waWxlRXJyb3JDb25zdHJ1Y3Rvci5oCkBAIC00Miw4
ICs0Miw2IEBAIHB1YmxpYzoKIAogICAgIERFQ0xBUkVfSU5GTzsKIAotICAgIFN0cnVjdHVyZSog
Q29tcGlsZUVycm9yU3RydWN0dXJlKCkgY29uc3QgeyByZXR1cm4gbV9Db21waWxlRXJyb3JTdHJ1
Y3R1cmUuZ2V0KCk7IH0KLQogcHJvdGVjdGVkOgogICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oVk0m
LCBXZWJBc3NlbWJseUNvbXBpbGVFcnJvclByb3RvdHlwZSosIFN0cnVjdHVyZSopOwogCkBAIC01
MSw5ICs0OSw2IEBAIHByaXZhdGU6CiAgICAgV2ViQXNzZW1ibHlDb21waWxlRXJyb3JDb25zdHJ1
Y3RvcihWTSYsIFN0cnVjdHVyZSopOwogICAgIHN0YXRpYyBDb25zdHJ1Y3RUeXBlIGdldENvbnN0
cnVjdERhdGEoSlNDZWxsKiwgQ29uc3RydWN0RGF0YSYpOwogICAgIHN0YXRpYyBDYWxsVHlwZSBn
ZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYpOwotICAgIHN0YXRpYyB2b2lkIHZpc2l0Q2hp
bGRyZW4oSlNDZWxsKiwgU2xvdFZpc2l0b3ImKTsKLQotICAgIFdyaXRlQmFycmllcjxTdHJ1Y3R1
cmU+IG1fQ29tcGlsZUVycm9yU3RydWN0dXJlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseVByb3Rv
dHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseVByb3Rv
dHlwZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjQwMjRjMQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5
UHJvdG90eXBlLmNwcApAQCAtMCwwICsxLDg1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkFz
c2VtYmx5UHJvdG90eXBlLmgiCisKKyNpbmNsdWRlICJGdW5jdGlvblByb3RvdHlwZS5oIgorI2lu
Y2x1ZGUgIkpTQ0lubGluZXMuaCIKKworbmFtZXNwYWNlIEpTQyB7CisKK3N0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHdlYkFzc2VtYmx5RnVuY3Rpb25WYWxpZGF0ZShFeGVjU3Rh
dGUqIHN0YXRlKQoreworICAgIFZNJiB2bSA9IHN0YXRlLT52bSgpOworICAgIGF1dG8gc2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRo
cm93RXhjZXB0aW9uKHN0YXRlLCBzY29wZSwgY3JlYXRlRXJyb3Ioc3RhdGUsIEFTQ0lJTGl0ZXJh
bCgiV2ViQXNzZW1ibHkgZG9lc24ndCB5ZXQgaW1wbGVtZW50IHRoZSB2YWxpZGF0ZSBmdW5jdGlv
biBwcm9wZXJ0eSIpKSkpOworfQorCitzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCB3ZWJBc3NlbWJseUZ1bmN0aW9uQ29tcGlsZShFeGVjU3RhdGUqIHN0YXRlKQoreworICAgIFZN
JiB2bSA9IHN0YXRlLT52bSgpOworICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BF
KHZtKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRocm93RXhjZXB0aW9uKHN0YXRlLCBz
Y29wZSwgY3JlYXRlRXJyb3Ioc3RhdGUsIEFTQ0lJTGl0ZXJhbCgiV2ViQXNzZW1ibHkgZG9lc24n
dCB5ZXQgaW1wbGVtZW50IHRoZSBjb21waWxlIGZ1bmN0aW9uIHByb3BlcnR5IikpKSk7Cit9CisK
K30KKworI2luY2x1ZGUgIldlYkFzc2VtYmx5UHJvdG90eXBlLmx1dC5oIgorCituYW1lc3BhY2Ug
SlNDIHsKKworY29uc3QgQ2xhc3NJbmZvIFdlYkFzc2VtYmx5UHJvdG90eXBlOjpzX2luZm8gPSB7
ICJXZWJBc3NlbWJseS5wcm90b3R5cGUiLCAmQmFzZTo6c19pbmZvLCAmcHJvdG90eXBlVGFibGVX
ZWJBc3NlbWJseSwgQ1JFQVRFX01FVEhPRF9UQUJMRShXZWJBc3NlbWJseVByb3RvdHlwZSkgfTsK
KworLyogU291cmNlIGZvciBXZWJBc3NlbWJseVByb3RvdHlwZS5sdXQuaAorIEBiZWdpbiBwcm90
b3R5cGVUYWJsZVdlYkFzc2VtYmx5CisgdmFsaWRhdGUgd2ViQXNzZW1ibHlGdW5jdGlvblZhbGlk
YXRlICBEb250RW51bXxGdW5jdGlvbiAxCisgY29tcGlsZSAgd2ViQXNzZW1ibHlGdW5jdGlvbkNv
bXBpbGUgICBEb250RW51bXxGdW5jdGlvbiAxCisgQGVuZAorICovCisKK1dlYkFzc2VtYmx5UHJv
dG90eXBlKiBXZWJBc3NlbWJseVByb3RvdHlwZTo6Y3JlYXRlKFZNJiB2bSwgSlNHbG9iYWxPYmpl
Y3QqLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKK3sKKyAgICBhdXRvKiBvYmplY3QgPSBuZXcgKE5v
dE51bGwsIGFsbG9jYXRlQ2VsbDxXZWJBc3NlbWJseVByb3RvdHlwZT4odm0uaGVhcCkpIFdlYkFz
c2VtYmx5UHJvdG90eXBlKHZtLCBzdHJ1Y3R1cmUpOworICAgIG9iamVjdC0+ZmluaXNoQ3JlYXRp
b24odm0pOworICAgIHJldHVybiBvYmplY3Q7Cit9CisKK1N0cnVjdHVyZSogV2ViQXNzZW1ibHlQ
cm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKQoreworICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0
ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVj
dHVyZUZsYWdzKSwgaW5mbygpKTsKK30KKwordm9pZCBXZWJBc3NlbWJseVByb3RvdHlwZTo6Zmlu
aXNoQ3JlYXRpb24oVk0mIHZtKQoreworICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtKTsKK30K
KworV2ViQXNzZW1ibHlQcm90b3R5cGU6OldlYkFzc2VtYmx5UHJvdG90eXBlKFZNJiB2bSwgU3Ry
dWN0dXJlKiBzdHJ1Y3R1cmUpCisgICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUpCit7Cit9CisKK30g
Ly8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
V2ViQXNzZW1ibHlPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFz
c2VtYmx5UHJvdG90eXBlLmgKc2ltaWxhcml0eSBpbmRleCA3NCUKcmVuYW1lIGZyb20gU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vV2ViQXNzZW1ibHlPYmplY3QuaApyZW5hbWUgdG8gU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlQcm90b3R5cGUuaAppbmRleCA3YjUy
Y2E2Li4xZTFmNTQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XZWJB
c3NlbWJseU9iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFz
c2VtYmx5UHJvdG90eXBlLmgKQEAgLTI1LDM4ICsyNSwyNiBAQAogCiAjcHJhZ21hIG9uY2UKIAor
I2luY2x1ZGUgIkpTRGVzdHJ1Y3RpYmxlT2JqZWN0LmgiCiAjaW5jbHVkZSAiSlNPYmplY3QuaCIK
IAogbmFtZXNwYWNlIEpTQyB7CiAKLWNsYXNzIFdlYkFzc2VtYmx5T2JqZWN0IDogcHVibGljIEpT
Tm9uRmluYWxPYmplY3QgeworY2xhc3MgV2ViQXNzZW1ibHlQcm90b3R5cGUgOiBwdWJsaWMgSlNO
b25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBKU05vbkZpbmFsT2JqZWN0IEJh
c2U7CisgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3Ry
dWN0dXJlRmxhZ3MgfCBIYXNTdGF0aWNQcm9wZXJ0eVRhYmxlOwogCi0gICAgc3RhdGljIFdlYkFz
c2VtYmx5T2JqZWN0KiBjcmVhdGUoVk0mLCBKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSopOwor
ICAgIHN0YXRpYyBXZWJBc3NlbWJseVByb3RvdHlwZSogY3JlYXRlKFZNJiwgSlNHbG9iYWxPYmpl
Y3QqLCBTdHJ1Y3R1cmUqKTsKICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUo
Vk0mLCBKU0dsb2JhbE9iamVjdCosIEpTVmFsdWUpOwogCiAgICAgREVDTEFSRV9JTkZPOwogCiBw
cm90ZWN0ZWQ6Ci0gICAgdm9pZCBmaW5pc2hDcmVhdGlvbihWTSYsIEpTR2xvYmFsT2JqZWN0Kik7
CisgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihWTSYpOwogCiBwcml2YXRlOgotICAgIFdlYkFzc2Vt
Ymx5T2JqZWN0KFZNJiwgU3RydWN0dXJlKik7CisgICAgV2ViQXNzZW1ibHlQcm90b3R5cGUoVk0m
LCBTdHJ1Y3R1cmUqKTsKIH07CiAKLS8vIE5hbWUsIGZ1bmN0aW9uTGVuZ3RoCi0jZGVmaW5lIEZP
Ul9FQUNIX1dBU01fQ09OU1RSVUNUT1JfUFJPUEVSVFkoRE8pIFwKLSAgICBETyhNb2R1bGUsIDEp
IFwKLSAgICBETyhJbnN0YW5jZSwgMikgXAotICAgIERPKE1lbW9yeSwgMSkgXAotICAgIERPKFRh
YmxlLCAxKSBcCi0gICAgRE8oQ29tcGlsZUVycm9yLCAxKSBcCi0gICAgRE8oUnVudGltZUVycm9y
LCAxKQotCi0vLyBOYW1lLCBmdW5jdGlvbkxlbmd0aAotI2RlZmluZSBGT1JfRUFDSF9XQVNNX0ZV
TkNUSU9OX1BST1BFUlRZKERPKSBcCi0gICAgRE8odmFsaWRhdGUsIDEpIFwKLSAgICBETyhjb21w
aWxlLCAxKQotCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5UnVudGltZUVycm9yQ29uc3RydWN0b3IuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlSdW50aW1lRXJyb3JDb25z
dHJ1Y3Rvci5jcHAKaW5kZXggYjMwNjdlNS4uOWI5MWU5NiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlSdW50aW1lRXJyb3JDb25zdHJ1Y3Rvci5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlSdW50aW1l
RXJyb3JDb25zdHJ1Y3Rvci5jcHAKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkZ1bmN0
aW9uUHJvdG90eXBlLmgiCiAjaW5jbHVkZSAiSlNDSW5saW5lcy5oIgorI2luY2x1ZGUgIkpTV2Vi
QXNzZW1ibHlSdW50aW1lRXJyb3IuaCIKICNpbmNsdWRlICJXZWJBc3NlbWJseVJ1bnRpbWVFcnJv
clByb3RvdHlwZS5oIgogCiAjaW5jbHVkZSAiV2ViQXNzZW1ibHlSdW50aW1lRXJyb3JDb25zdHJ1
Y3Rvci5sdXQuaCIKQEAgLTQzLDkgKzQ0LDEyIEBAIGNvbnN0IENsYXNzSW5mbyBXZWJBc3NlbWJs
eVJ1bnRpbWVFcnJvckNvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJGdW5jdGlvbiIsICZCYXNlCiAK
IHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdEpTV2ViQXNzZW1i
bHlSdW50aW1lRXJyb3IoRXhlY1N0YXRlKiBzdGF0ZSkKIHsKLSAgICBWTSYgdm0gPSBzdGF0ZS0+
dm0oKTsKKyAgICBhdXRvJiB2bSA9IHN0YXRlLT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNM
QVJFX1RIUk9XX1NDT1BFKHZtKTsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRocm93RXhj
ZXB0aW9uKHN0YXRlLCBzY29wZSwgY3JlYXRlRXJyb3Ioc3RhdGUsIEFTQ0lJTGl0ZXJhbCgiV2Vi
QXNzZW1ibHkgZG9lc24ndCB5ZXQgaW1wbGVtZW50IHRoZSBSdW50aW1lRXJyb3IgY29uc3RydWN0
b3IgcHJvcGVydHkiKSkpKTsKKyAgICBKU1ZhbHVlIG1lc3NhZ2UgPSBzdGF0ZS0+YXJndW1lbnRD
b3VudCgpID8gc3RhdGUtPmFyZ3VtZW50KDApIDoganNVbmRlZmluZWQoKTsKKyAgICBhdXRvKiBz
dHJ1Y3R1cmUgPSBJbnRlcm5hbEZ1bmN0aW9uOjpjcmVhdGVTdWJjbGFzc1N0cnVjdHVyZShzdGF0
ZSwgc3RhdGUtPm5ld1RhcmdldCgpLCBhc0ludGVybmFsRnVuY3Rpb24oc3RhdGUtPmNhbGxlZSgp
KS0+Z2xvYmFsT2JqZWN0KCktPldlYkFzc2VtYmx5UnVudGltZUVycm9yU3RydWN0dXJlKCkpOwor
ICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOworICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoSlNXZWJBc3NlbWJseVJ1bnRpbWVFcnJvcjo6Y3JlYXRlKHN0
YXRlLCBzdHJ1Y3R1cmUsIG1lc3NhZ2UsIGZhbHNlKSk7CiB9CiAKIHN0YXRpYyBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxKU1dlYkFzc2VtYmx5UnVudGltZUVycm9yKEV4ZWNTdGF0
ZSogc3RhdGUpCkBAIC02NywxMiArNzEsMTEgQEAgU3RydWN0dXJlKiBXZWJBc3NlbWJseVJ1bnRp
bWVFcnJvckNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUoVk0mIHZtLCBKU0dsb2JhbE8KICAg
ICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBU
eXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7CiB9CiAKLXZvaWQg
V2ViQXNzZW1ibHlSdW50aW1lRXJyb3JDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZt
LCBXZWJBc3NlbWJseVJ1bnRpbWVFcnJvclByb3RvdHlwZSogcHJvdG90eXBlLCBTdHJ1Y3R1cmUq
IHN0cnVjdHVyZSkKK3ZvaWQgV2ViQXNzZW1ibHlSdW50aW1lRXJyb3JDb25zdHJ1Y3Rvcjo6Zmlu
aXNoQ3JlYXRpb24oVk0mIHZtLCBXZWJBc3NlbWJseVJ1bnRpbWVFcnJvclByb3RvdHlwZSogcHJv
dG90eXBlLCBTdHJ1Y3R1cmUqKQogewogICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtLCBBU0NJ
SUxpdGVyYWwoIlJ1bnRpbWVFcnJvciIpKTsKLSAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlv
bih2bSwgdm0ucHJvcGVydHlOYW1lcy0+cHJvdG90eXBlLCBwcm90b3R5cGUsIERvbnRFbnVtIHwg
RG9udERlbGV0ZSB8IFJlYWRPbmx5KTsKKyAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2
bSwgdm0ucHJvcGVydHlOYW1lcy0+cHJvdG90eXBlLCBwcm90b3R5cGUsIFJlYWRPbmx5IHwgRG9u
dEVudW0gfCBEb250RGVsZXRlKTsKICAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwg
dm0ucHJvcGVydHlOYW1lcy0+bGVuZ3RoLCBqc051bWJlcigxKSwgUmVhZE9ubHkgfCBEb250RW51
bSB8IERvbnREZWxldGUpOwotICAgIG1fUnVudGltZUVycm9yU3RydWN0dXJlLnNldCh2bSwgdGhp
cywgc3RydWN0dXJlKTsKIH0KIAogV2ViQXNzZW1ibHlSdW50aW1lRXJyb3JDb25zdHJ1Y3Rvcjo6
V2ViQXNzZW1ibHlSdW50aW1lRXJyb3JDb25zdHJ1Y3RvcihWTSYgdm0sIFN0cnVjdHVyZSogc3Ry
dWN0dXJlKQpAQCAtOTIsMTIgKzk1LDQgQEAgQ2FsbFR5cGUgV2ViQXNzZW1ibHlSdW50aW1lRXJy
b3JDb25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmIGNhbGwKICAgICBy
ZXR1cm4gQ2FsbFR5cGU6Okhvc3Q7CiB9CiAKLXZvaWQgV2ViQXNzZW1ibHlSdW50aW1lRXJyb3JD
b25zdHJ1Y3Rvcjo6dmlzaXRDaGlsZHJlbihKU0NlbGwqIGNlbGwsIFNsb3RWaXNpdG9yJiB2aXNp
dG9yKQotewotICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8V2ViQXNzZW1ibHlSdW50aW1l
RXJyb3JDb25zdHJ1Y3Rvcio+KGNlbGwpOwotICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFMo
dGhpc09iamVjdCwgaW5mbygpKTsKLSAgICBCYXNlOjp2aXNpdENoaWxkcmVuKHRoaXNPYmplY3Qs
IHZpc2l0b3IpOwotICAgIHZpc2l0b3IuYXBwZW5kKCZ0aGlzT2JqZWN0LT5tX1J1bnRpbWVFcnJv
clN0cnVjdHVyZSk7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlSdW50aW1lRXJyb3JDb25zdHJ1Y3Rv
ci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlSdW50aW1lRXJy
b3JDb25zdHJ1Y3Rvci5oCmluZGV4IDlmYzkxYzcuLmViNmY3NDkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5UnVudGltZUVycm9yQ29uc3RydWN0
b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseVJ1bnRp
bWVFcnJvckNvbnN0cnVjdG9yLmgKQEAgLTQyLDggKzQyLDYgQEAgcHVibGljOgogCiAgICAgREVD
TEFSRV9JTkZPOwogCi0gICAgU3RydWN0dXJlKiBSdW50aW1lRXJyb3JTdHJ1Y3R1cmUoKSBjb25z
dCB7IHJldHVybiBtX1J1bnRpbWVFcnJvclN0cnVjdHVyZS5nZXQoKTsgfQotCiBwcm90ZWN0ZWQ6
CiAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihWTSYsIFdlYkFzc2VtYmx5UnVudGltZUVycm9yUHJv
dG90eXBlKiwgU3RydWN0dXJlKik7CiAKQEAgLTUxLDkgKzQ5LDYgQEAgcHJpdmF0ZToKICAgICBX
ZWJBc3NlbWJseVJ1bnRpbWVFcnJvckNvbnN0cnVjdG9yKFZNJiwgU3RydWN0dXJlKik7CiAgICAg
c3RhdGljIENvbnN0cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3RE
YXRhJik7CiAgICAgc3RhdGljIENhbGxUeXBlIGdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRh
Jik7Ci0gICAgc3RhdGljIHZvaWQgdmlzaXRDaGlsZHJlbihKU0NlbGwqLCBTbG90VmlzaXRvciYp
OwotCi0gICAgV3JpdGVCYXJyaWVyPFN0cnVjdHVyZT4gbV9SdW50aW1lRXJyb3JTdHJ1Y3R1cmU7
CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKLS0gCjIuMTAuMQoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>292291</attachid>
            <date>2016-10-20 17:25:28 -0700</date>
            <delta_ts>2016-10-20 17:42:40 -0700</delta_ts>
            <desc>patch</desc>
            <filename>0001-WebAssembly-API-implement-exception-constructors-pro.patch</filename>
            <type>text/plain</type>
            <size>88292</size>
            <attacher name="JF Bastien">jfbastien</attacher>
            
              <data encoding="base64">RnJvbSAyNzM3MjVhZjlmNmEwN2Y3MTYyMjE0Yjg0MDE3MTlkNmQ2MTUwODRjIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKRiBCYXN0aWVuIDxqZmJhc3RpZW5AYXBwbGUuY29tPgpEYXRl
OiBXZWQsIDE5IE9jdCAyMDE2IDE1OjQ0OjQzIC0wNzAwClN1YmplY3Q6IFtQQVRDSF0gV2ViQXNz
ZW1ibHkgQVBJOiBpbXBsZW1lbnQgZXhjZXB0aW9uIGNvbnN0cnVjdG9ycyBwcm9wZXJseQoKIC0g
UmVuYW1lIFdlYkFzc2VtYmx5T2JqZWN0IHRvIEpTV2ViQXNzZW1ibHkgZm9yIGNvbnNpc3RlbmN5
LgogLSBXZWJBc3NlbWJseSBvYmplY3Qgbm93IGhhcyBpdHMgb3duIHByb3RvdHlwZTogYWRkIFdl
YkFzc2VtYmx5UHJvdG90eXBlLCBhbmQKICAgdXNlIGl0IHRvIHJlZ2lzdGVyIEpTV2ViQXNzZW1i
bHkncyBmdW5jdGlvbiBwcm9wZXJ0aWVzIHRocm91Z2ggYXV0by1nZW5lcmF0ZWQKICAgLmx1dC5o
LCBpbnN0ZWFkIG9mIG1hbnVhbGx5LgogLSBUaGUgZXJyb3IgY29uc3RydWN0b3JzIHVzZWQgdG8g
dGhvdyAoZS5nLiBgbmV3IFdlYkFzc2VtYmx5LkNvbXBpbGVFcnJvcigpYCkuCiAtIFJlZ2lzdGVy
IFdlYkFzc2VtYmx5J3MgY29uc3RydWN0b3JzIGZyb20gdGhlIGdsb2JhbCBvYmplY3QsIGFuZCBo
b2xkIGEKICAgcmVmZXJlbmNlIHRvIHRoZWlyIHN0cnVjdHVyZSBhbmQgcHJvdG90eXBlIHNvIHRo
YXQgaW52b2tpbmcgdGhlIGNvbnN0cnVjdG9yCiAgIGNhbiB1c2UgdGhlIHN0cnVjdHVyZSBkaXJl
Y3RseSBmcm9tIHRoZSBnbG9iYWwgb2JqZWN0LgogLSBBZGQgYSBwcm90b3R5cGUgYmFzZSBmaWVs
ZCB0byBnbG9iYWwgb2JqZWN0IGNyZWF0aW9uLiBQcmV2aW91cyBvbmVzIGFsbCBoYWQKICAgT2Jq
ZWN0J3MgcHJvdG90eXBlIGFzIHRoZWlyIGJhc2UsIGJ1dCBXZWJBc3NlbWJseSdzIGVycm9yIGNv
bnN0cnVjdG9ycyBoYXZlCiAgIEVycm9yIGFzIHRoZWlyIGJhc2UuCiAtIFRlc3QgZm9yIHRoZSBl
cnJvciBvYmplY3QncyBjb3JyZWN0bmVzcy4KIC0gQWRkIG1pc3NpbmcgI2lmIEVOQUJMRShXRUJB
U1NFTUJMWSkKLS0tCiBKU1Rlc3RzL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB8ICAyNiArKysrKwogSlNUZXN0cy93YXNtL2pzLWFwaS90ZXN0X2Jhc2ljX2FwaS5q
cyAgICAgICAgICAgICAgfCAgMjIgKysrLQogU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlz
dHMudHh0ICAgICAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFu
Z2VMb2cgICAgICAgICAgICAgICAgICAgIHwgIDg4ICsrKysrKysrKysrKysrKysKIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9EZXJpdmVkU291cmNlcy5tYWtlICAgICAgICAgIHwgICAxICsKIC4uLi9K
YXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qICAgICAgIHwgIDI0ICsrKy0t
CiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAgICB8ICA1
NSArKysrKystLS0tCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVj
dC5oICAgICB8ICA1NyArKysrKysrLS0tLQogU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vSlNX
ZWJBc3NlbWJseS5jcHAgICAgICAgfCAgNjUgKysrKysrKysrKysrCiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9KU1dlYkFzc2VtYmx5LmggICAgICAgICB8ICA3MSArKysrKysrKysrKysrCiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XZWJBc3NlbWJseU9iamVjdC5jcHAgICB8IDExMyAt
LS0tLS0tLS0tLS0tLS0tLS0tLS0KIC4uLi93YXNtL2pzL0pTV2ViQXNzZW1ibHlDb21waWxlRXJy
b3IuY3BwICAgICAgICAgIHwgICA0ICsKIC4uLi93YXNtL2pzL0pTV2ViQXNzZW1ibHlDb21waWxl
RXJyb3IuaCAgICAgICAgICAgIHwgICA4ICsrCiAuLi4vd2FzbS9qcy9KU1dlYkFzc2VtYmx5SW5z
dGFuY2UuY3BwICAgICAgICAgICAgICB8ICAgNCArCiAuLi4vSmF2YVNjcmlwdENvcmUvd2FzbS9q
cy9KU1dlYkFzc2VtYmx5SW5zdGFuY2UuaCB8ICAgNCArCiAuLi4vSmF2YVNjcmlwdENvcmUvd2Fz
bS9qcy9KU1dlYkFzc2VtYmx5TWVtb3J5LmNwcCB8ICAgNCArCiAuLi4vSmF2YVNjcmlwdENvcmUv
d2FzbS9qcy9KU1dlYkFzc2VtYmx5TWVtb3J5LmggICB8ICAgNCArCiAuLi4vSmF2YVNjcmlwdENv
cmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5TW9kdWxlLmNwcCB8ICAgNCArCiAuLi4vSmF2YVNjcmlw
dENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5TW9kdWxlLmggICB8ICAgNCArCiAuLi4vd2FzbS9q
cy9KU1dlYkFzc2VtYmx5UnVudGltZUVycm9yLmNwcCAgICAgICAgICB8ICAgNCArCiAuLi4vd2Fz
bS9qcy9KU1dlYkFzc2VtYmx5UnVudGltZUVycm9yLmggICAgICAgICAgICB8ICAgOCArKwogLi4u
L0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseVRhYmxlLmNwcCAgfCAgIDQgKwog
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseVRhYmxlLmggfCAgIDQg
KwogLi4uL3dhc20vanMvV2ViQXNzZW1ibHlDb21waWxlRXJyb3JDb25zdHJ1Y3Rvci5jcHAgfCAg
MjUgKysrLS0KIC4uLi93YXNtL2pzL1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yQ29uc3RydWN0b3Iu
aCAgIHwgICA5ICstCiAuLi4vd2FzbS9qcy9XZWJBc3NlbWJseUNvbXBpbGVFcnJvclByb3RvdHlw
ZS5jcHAgICB8ICAgNCArCiAuLi4vd2FzbS9qcy9XZWJBc3NlbWJseUNvbXBpbGVFcnJvclByb3Rv
dHlwZS5oICAgICB8ICAgNCArCiAuLi4vd2FzbS9qcy9XZWJBc3NlbWJseUluc3RhbmNlQ29uc3Ry
dWN0b3IuY3BwICAgICB8ICAgNSArCiAuLi4vd2FzbS9qcy9XZWJBc3NlbWJseUluc3RhbmNlQ29u
c3RydWN0b3IuaCAgICAgICB8ICAgNCArCiAuLi4vd2FzbS9qcy9XZWJBc3NlbWJseUluc3RhbmNl
UHJvdG90eXBlLmNwcCAgICAgICB8ICAgNCArCiAuLi4vd2FzbS9qcy9XZWJBc3NlbWJseUluc3Rh
bmNlUHJvdG90eXBlLmggICAgICAgICB8ICAgNCArCiAuLi4vd2FzbS9qcy9XZWJBc3NlbWJseU1l
bW9yeUNvbnN0cnVjdG9yLmNwcCAgICAgICB8ICAgNSArCiAuLi4vd2FzbS9qcy9XZWJBc3NlbWJs
eU1lbW9yeUNvbnN0cnVjdG9yLmggICAgICAgICB8ICAgNCArCiAuLi4vd2FzbS9qcy9XZWJBc3Nl
bWJseU1lbW9yeVByb3RvdHlwZS5jcHAgICAgICAgICB8ICAgNCArCiAuLi4vd2FzbS9qcy9XZWJB
c3NlbWJseU1lbW9yeVByb3RvdHlwZS5oICAgICAgICAgICB8ICAgNCArCiAuLi4vd2FzbS9qcy9X
ZWJBc3NlbWJseU1vZHVsZUNvbnN0cnVjdG9yLmNwcCAgICAgICB8ICAgNSArCiAuLi4vd2FzbS9q
cy9XZWJBc3NlbWJseU1vZHVsZUNvbnN0cnVjdG9yLmggICAgICAgICB8ICAgNCArCiAuLi4vd2Fz
bS9qcy9XZWJBc3NlbWJseU1vZHVsZVByb3RvdHlwZS5jcHAgICAgICAgICB8ICAgNCArCiAuLi4v
d2FzbS9qcy9XZWJBc3NlbWJseU1vZHVsZVByb3RvdHlwZS5oICAgICAgICAgICB8ICAgNCArCiAu
Li4vd2FzbS9qcy9XZWJBc3NlbWJseVByb3RvdHlwZS5jcHAgICAgICAgICAgICAgICB8ICA4OSAr
KysrKysrKysrKysrKysrCiAuLi4vV2ViQXNzZW1ibHlQcm90b3R5cGUuaH0gICAgICAgICAgICAg
ICAgICAgICAgICB8ICAyOCArKy0tLQogLi4uL3dhc20vanMvV2ViQXNzZW1ibHlSdW50aW1lRXJy
b3JDb25zdHJ1Y3Rvci5jcHAgfCAgMjUgKysrLS0KIC4uLi93YXNtL2pzL1dlYkFzc2VtYmx5UnVu
dGltZUVycm9yQ29uc3RydWN0b3IuaCAgIHwgICA5ICstCiAuLi4vd2FzbS9qcy9XZWJBc3NlbWJs
eVJ1bnRpbWVFcnJvclByb3RvdHlwZS5jcHAgICB8ICAgNCArCiAuLi4vd2FzbS9qcy9XZWJBc3Nl
bWJseVJ1bnRpbWVFcnJvclByb3RvdHlwZS5oICAgICB8ICAgNCArCiAuLi4vd2FzbS9qcy9XZWJB
c3NlbWJseVRhYmxlQ29uc3RydWN0b3IuY3BwICAgICAgICB8ICAgNSArCiAuLi4vd2FzbS9qcy9X
ZWJBc3NlbWJseVRhYmxlQ29uc3RydWN0b3IuaCAgICAgICAgICB8ICAgNCArCiAuLi4vd2FzbS9q
cy9XZWJBc3NlbWJseVRhYmxlUHJvdG90eXBlLmNwcCAgICAgICAgICB8ICAgNCArCiAuLi4vd2Fz
bS9qcy9XZWJBc3NlbWJseVRhYmxlUHJvdG90eXBlLmggICAgICAgICAgICB8ICAgNCArCiA0OSBm
aWxlcyBjaGFuZ2VkLCA2MzQgaW5zZXJ0aW9ucygrKSwgMjE3IGRlbGV0aW9ucygtKQogY3JlYXRl
IG1vZGUgMTAwNjQ0IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL0pTV2ViQXNzZW1ibHkuY3Bw
CiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vSlNXZWJBc3Nl
bWJseS5oCiBkZWxldGUgbW9kZSAxMDA2NDQgU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2Vi
QXNzZW1ibHlPYmplY3QuY3BwCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vanMvV2ViQXNzZW1ibHlQcm90b3R5cGUuY3BwCiByZW5hbWUgU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20ve1dlYkFzc2VtYmx5T2JqZWN0LmggPT4ganMvV2ViQXNzZW1ibHlQcm90
b3R5cGUuaH0gKDc0JSkKCmRpZmYgLS1naXQgYS9KU1Rlc3RzL0NoYW5nZUxvZyBiL0pTVGVzdHMv
Q2hhbmdlTG9nCmluZGV4IGRkMzc1MDIuLjBiODJmY2UgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvQ2hh
bmdlTG9nCisrKyBiL0pTVGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMTYtMTAt
MjAgIEpGIEJhc3RpZW4gIDxqZmJhc3RpZW5AYXBwbGUuY29tPgorCisgICAgICAgIFdlYkFzc2Vt
Ymx5IEFQSTogaW1wbGVtZW50IGV4Y2VwdGlvbiBjb25zdHJ1Y3RvcnMgcHJvcGVybHkKKworICAg
ICAgICAgLSBSZW5hbWUgV2ViQXNzZW1ibHlPYmplY3QgdG8gSlNXZWJBc3NlbWJseSBmb3IgY29u
c2lzdGVuY3kuCisgICAgICAgICAtIFdlYkFzc2VtYmx5IG9iamVjdCBub3cgaGFzIGl0cyBvd24g
cHJvdG90eXBlOiBhZGQgV2ViQXNzZW1ibHlQcm90b3R5cGUsIGFuZAorICAgICAgICAgICB1c2Ug
aXQgdG8gcmVnaXN0ZXIgSlNXZWJBc3NlbWJseSdzIGZ1bmN0aW9uIHByb3BlcnRpZXMgdGhyb3Vn
aCBhdXRvLWdlbmVyYXRlZAorICAgICAgICAgICAubHV0LmgsIGluc3RlYWQgb2YgbWFudWFsbHku
CisgICAgICAgICAtIFRoZSBlcnJvciBjb25zdHJ1Y3RvcnMgdXNlZCB0byB0aG93IChlLmcuIGBu
ZXcgV2ViQXNzZW1ibHkuQ29tcGlsZUVycm9yKClgKS4KKyAgICAgICAgIC0gUmVnaXN0ZXIgV2Vi
QXNzZW1ibHkncyBjb25zdHJ1Y3RvcnMgZnJvbSB0aGUgZ2xvYmFsIG9iamVjdCwgYW5kIGhvbGQg
YQorICAgICAgICAgICByZWZlcmVuY2UgdG8gdGhlaXIgc3RydWN0dXJlIGFuZCBwcm90b3R5cGUg
c28gdGhhdCBpbnZva2luZyB0aGUgY29uc3RydWN0b3IKKyAgICAgICAgICAgY2FuIHVzZSB0aGUg
c3RydWN0dXJlIGRpcmVjdGx5IGZyb20gdGhlIGdsb2JhbCBvYmplY3QuCisgICAgICAgICAtIEFk
ZCBhIHByb3RvdHlwZSBiYXNlIGZpZWxkIHRvIGdsb2JhbCBvYmplY3QgY3JlYXRpb24uIFByZXZp
b3VzIG9uZXMgYWxsIGhhZAorICAgICAgICAgICBPYmplY3QncyBwcm90b3R5cGUgYXMgdGhlaXIg
YmFzZSwgYnV0IFdlYkFzc2VtYmx5J3MgZXJyb3IgY29uc3RydWN0b3JzIGhhdmUKKyAgICAgICAg
ICAgRXJyb3IgYXMgdGhlaXIgYmFzZS4KKyAgICAgICAgIC0gVGVzdCBmb3IgdGhlIGVycm9yIG9i
amVjdCdzIGNvcnJlY3RuZXNzLgorICAgICAgICAgLSBBZGQgbWlzc2luZyAjaWYgRU5BQkxFKFdF
QkFTU0VNQkxZKQorCisgICAgICAgIFdlYkFzc2VtYmx5IEFQSTogaW1wbGVtZW50IGV4Y2VwdGlv
biBjb25zdHJ1Y3RvcnMgcHJvcGVybHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE2MzY5OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogd2FzbS9qcy1hcGkvdGVzdF9iYXNpY19hcGkuanM6CisgICAgICAg
IChjb25zdC5jLmluLmNvbnN0cnVjdG9yUHJvcGVydGllcyk6IG1vcmUgdGVzdHMKKwogMjAxNi0x
MC0yMCAgQ2FpdGxpbiBQb3R0ZXIgIDxjYWl0cEBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtKU0Nd
IGRpc2FsbG93IHJlZmVyZW5jZXMgdG8gYGF3YWl0YCBpbiBBc3luY0Z1bmN0aW9uIGZvcm1hbCBw
YXJhbWV0ZXJzCmRpZmYgLS1naXQgYS9KU1Rlc3RzL3dhc20vanMtYXBpL3Rlc3RfYmFzaWNfYXBp
LmpzIGIvSlNUZXN0cy93YXNtL2pzLWFwaS90ZXN0X2Jhc2ljX2FwaS5qcwppbmRleCBiYmQ1MGI1
Li5jNGUxOTI3IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3dhc20vanMtYXBpL3Rlc3RfYmFzaWNfYXBp
LmpzCisrKyBiL0pTVGVzdHMvd2FzbS9qcy1hcGkvdGVzdF9iYXNpY19hcGkuanMKQEAgLTI3LDYg
KzI3LDkgQEAgYXNzZXJ0Lm5vdFVuZGVmKFdlYkFzc2VtYmx5KTsKIGNoZWNrT3duUHJvcGVydHlE
ZXNjcmlwdG9yKHV0aWxpdGllcy5nbG9iYWwsICJXZWJBc3NlbWJseSIsIHsgdHlwZW9mdmFsdWU6
ICJvYmplY3QiLCB3cml0YWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlLCBlbnVtZXJhYmxl
OiBmYWxzZSB9KTsKIGFzc2VydC5lcShTdHJpbmcoV2ViQXNzZW1ibHkpLCAiW29iamVjdCBXZWJB
c3NlbWJseV0iKTsKIGFzc2VydC5pc1VuZGVmKFdlYkFzc2VtYmx5Lmxlbmd0aCk7Cithc3NlcnQu
ZXEoV2ViQXNzZW1ibHkgaW5zdGFuY2VvZiBPYmplY3QsIHRydWUpOworYXNzZXJ0LnRocm93cygo
KSA9PiBXZWJBc3NlbWJseSgpLCBUeXBlRXJyb3IsIGBXZWJBc3NlbWJseSBpcyBub3QgYSBmdW5j
dGlvbi4gKEluICdXZWJBc3NlbWJseSgpJywgJ1dlYkFzc2VtYmx5JyBpcyBhbiBpbnN0YW5jZSBv
ZiBXZWJBc3NlbWJseSlgKTsKK2Fzc2VydC50aHJvd3MoKCkgPT4gbmV3IFdlYkFzc2VtYmx5KCks
IFR5cGVFcnJvciwgYFdlYkFzc2VtYmx5IGlzIG5vdCBhIGNvbnN0cnVjdG9yIChldmFsdWF0aW5n
ICduZXcgV2ViQXNzZW1ibHkoKScpYCk7CiAKIGZvciAoY29uc3QgZiBpbiBmdW5jdGlvblByb3Bl
cnRpZXMpIHsKICAgICBhc3NlcnQubm90VW5kZWYoV2ViQXNzZW1ibHlbZl0pOwpAQCAtMzksMTAg
KzQyLDE5IEBAIGZvciAoY29uc3QgYyBpbiBjb25zdHJ1Y3RvclByb3BlcnRpZXMpIHsKICAgICBh
c3NlcnQuZXEoV2ViQXNzZW1ibHlbY10ubmFtZSwgYyk7CiAgICAgYXNzZXJ0LmVxKFdlYkFzc2Vt
Ymx5W2NdLmxlbmd0aCwgY29uc3RydWN0b3JQcm9wZXJ0aWVzW2NdLmxlbmd0aCk7CiAgICAgY2hl
Y2tPd25Qcm9wZXJ0eURlc2NyaXB0b3IoV2ViQXNzZW1ibHksIGMsIGNvbnN0cnVjdG9yUHJvcGVy
dGllc1tjXSk7Ci0gICAgLy8gQ2hlY2sgdGhlIGNvbnN0cnVjdG9yJ3MgcHJvdG90eXBlLgogICAg
IGNoZWNrT3duUHJvcGVydHlEZXNjcmlwdG9yKFdlYkFzc2VtYmx5W2NdLCAicHJvdG90eXBlIiwg
eyB0eXBlb2Z2YWx1ZTogIm9iamVjdCIsIHdyaXRhYmxlOiBmYWxzZSwgY29uZmlndXJhYmxlOiBm
YWxzZSwgZW51bWVyYWJsZTogZmFsc2UgfSk7Ci0gICAgYXNzZXJ0LmVxKFN0cmluZyhXZWJBc3Nl
bWJseVtjXS5wcm90b3R5cGUpLCBgW29iamVjdCBXZWJBc3NlbWJseS4ke2N9LnByb3RvdHlwZV1g
KTsKICAgICBhc3NlcnQudGhyb3dzKCgpID0+IFdlYkFzc2VtYmx5W2NdKCksIFR5cGVFcnJvciwg
YGNhbGxpbmcgV2ViQXNzZW1ibHkuJHtjfSBjb25zdHJ1Y3RvciB3aXRob3V0IG5ldyBpcyBpbnZh
bGlkYCk7CisgICAgaWYgKGNvbnN0cnVjdG9yUHJvcGVydGllc1tjXS5pc0Vycm9yKSB7CisgICAg
ICAgIGNvbnN0IGUgPSBuZXcgV2ViQXNzZW1ibHlbY107CisgICAgICAgIGFzc2VydC5lcShlIGlu
c3RhbmNlb2YgV2ViQXNzZW1ibHlbY10sIHRydWUpOworICAgICAgICBhc3NlcnQuZXEoZSBpbnN0
YW5jZW9mIEVycm9yLCB0cnVlKTsKKyAgICAgICAgYXNzZXJ0LmVxKGUgaW5zdGFuY2VvZiBUeXBl
RXJyb3IsIGZhbHNlKTsKKyAgICAgICAgYXNzZXJ0LmVxKGUubWVzc2FnZSwgIiIpOworICAgICAg
ICBhc3NlcnQuZXEodHlwZW9mIGUuc3RhY2ssICJzdHJpbmciKTsKKyAgICAgICAgY29uc3Qgc2ls
bHlTdHJpbmcgPSAidWgtb2ghIjsKKyAgICAgICAgY29uc3QgZTIgPSBuZXcgV2ViQXNzZW1ibHlb
Y10oc2lsbHlTdHJpbmcpOworICAgICAgICBhc3NlcnQuZXEoZTIubWVzc2FnZSwgc2lsbHlTdHJp
bmcpOworICAgIH0KIH0KIAogLy8gRklYTUUgSW1wbGVtZW50IGFuZCB0ZXN0IHRoZXNlIEFQSXMg
ZnVydGhlci4gRm9yIG5vdyB0aGV5IGp1c3QgdGhyb3cuIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNTk3NzUKQEAgLTUxLDUgKzYzLDcgQEAgZm9yIChjb25zdCBmIGlu
IGZ1bmN0aW9uUHJvcGVydGllcykgewogICAgIGFzc2VydC50aHJvd3MoKCkgPT4gV2ViQXNzZW1i
bHlbZl0oKSwgRXJyb3IsIGBXZWJBc3NlbWJseSBkb2Vzbid0IHlldCBpbXBsZW1lbnQgdGhlICR7
Zn0gZnVuY3Rpb24gcHJvcGVydHlgKTsKIH0KIAotZm9yIChjb25zdCBjIGluIGNvbnN0cnVjdG9y
UHJvcGVydGllcykKLSAgICBhc3NlcnQudGhyb3dzKCgpID0+IG5ldyBXZWJBc3NlbWJseVtjXSgp
LCBFcnJvciwgYFdlYkFzc2VtYmx5IGRvZXNuJ3QgeWV0IGltcGxlbWVudCB0aGUgJHtjfSBjb25z
dHJ1Y3RvciBwcm9wZXJ0eWApOworZm9yIChjb25zdCBjIGluIGNvbnN0cnVjdG9yUHJvcGVydGll
cykgeworICAgIGlmICghY29uc3RydWN0b3JQcm9wZXJ0aWVzW2NdLmlzRXJyb3IpCisgICAgICAg
IGFzc2VydC50aHJvd3MoKCkgPT4gbmV3IFdlYkFzc2VtYmx5W2NdKCksIEVycm9yLCBgV2ViQXNz
ZW1ibHkgZG9lc24ndCB5ZXQgaW1wbGVtZW50IHRoZSAke2N9IGNvbnN0cnVjdG9yIHByb3BlcnR5
YCk7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggOTY4ZDA3NS4uOTc3
NDFmZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0Cisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dApAQCAtODYxLDEyICs4NjEs
MTIgQEAgc2V0KEphdmFTY3JpcHRDb3JlX1NPVVJDRVMKICAgICB0b29scy9KU0RvbGxhclZNUHJv
dG90eXBlLmNwcAogCiAgICAgd2FzbS9KU1dBU01Nb2R1bGUuY3BwCisgICAgd2FzbS9KU1dlYkFz
c2VtYmx5LmNwcAogICAgIHdhc20vV0FTTUIzSVJHZW5lcmF0b3IuY3BwCiAgICAgd2FzbS9XQVNN
Q2FsbGluZ0NvbnZlbnRpb24uY3BwCiAgICAgd2FzbS9XQVNNTWVtb3J5LmNwcAogICAgIHdhc20v
V0FTTU1vZHVsZVBhcnNlci5jcHAKICAgICB3YXNtL1dBU01QbGFuLmNwcAotICAgIHdhc20vV2Vi
QXNzZW1ibHlPYmplY3QuY3BwCiAKICAgICB3YXNtL2pzL0pTV2ViQXNzZW1ibHlDb21waWxlRXJy
b3IuY3BwCiAgICAgd2FzbS9qcy9KU1dlYkFzc2VtYmx5SW5zdGFuY2UuY3BwCkBAIC04ODIsNiAr
ODgyLDcgQEAgc2V0KEphdmFTY3JpcHRDb3JlX1NPVVJDRVMKICAgICB3YXNtL2pzL1dlYkFzc2Vt
Ymx5TWVtb3J5UHJvdG90eXBlLmNwcAogICAgIHdhc20vanMvV2ViQXNzZW1ibHlNb2R1bGVDb25z
dHJ1Y3Rvci5jcHAKICAgICB3YXNtL2pzL1dlYkFzc2VtYmx5TW9kdWxlUHJvdG90eXBlLmNwcAor
ICAgIHdhc20vanMvV2ViQXNzZW1ibHlQcm90b3R5cGUuY3BwCiAgICAgd2FzbS9qcy9XZWJBc3Nl
bWJseVJ1bnRpbWVFcnJvckNvbnN0cnVjdG9yLmNwcAogICAgIHdhc20vanMvV2ViQXNzZW1ibHlS
dW50aW1lRXJyb3JQcm90b3R5cGUuY3BwCiAgICAgd2FzbS9qcy9XZWJBc3NlbWJseVRhYmxlQ29u
c3RydWN0b3IuY3BwCkBAIC05NDYsNiArOTQ3LDcgQEAgc2V0KEphdmFTY3JpcHRDb3JlX09CSkVD
VF9MVVRfU09VUkNFUwogICAgIHdhc20vanMvV2ViQXNzZW1ibHlNZW1vcnlQcm90b3R5cGUuY3Bw
CiAgICAgd2FzbS9qcy9XZWJBc3NlbWJseU1vZHVsZUNvbnN0cnVjdG9yLmNwcAogICAgIHdhc20v
anMvV2ViQXNzZW1ibHlNb2R1bGVQcm90b3R5cGUuY3BwCisgICAgd2FzbS9qcy9XZWJBc3NlbWJs
eVByb3RvdHlwZS5jcHAKICAgICB3YXNtL2pzL1dlYkFzc2VtYmx5UnVudGltZUVycm9yQ29uc3Ry
dWN0b3IuY3BwCiAgICAgd2FzbS9qcy9XZWJBc3NlbWJseVJ1bnRpbWVFcnJvclByb3RvdHlwZS5j
cHAKICAgICB3YXNtL2pzL1dlYkFzc2VtYmx5VGFibGVDb25zdHJ1Y3Rvci5jcHAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCmluZGV4IGE1NDFhZGMuLjhkOTdlM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDkxIEBACisyMDE2LTEwLTIwICBKRiBCYXN0aWVuICA8amZiYXN0aWVu
QGFwcGxlLmNvbT4KKworICAgICAgICBXZWJBc3NlbWJseSBBUEk6IGltcGxlbWVudCBleGNlcHRp
b24gY29uc3RydWN0b3JzIHByb3Blcmx5CisKKyAgICAgICAgIC0gUmVuYW1lIFdlYkFzc2VtYmx5
T2JqZWN0IHRvIEpTV2ViQXNzZW1ibHkgZm9yIGNvbnNpc3RlbmN5LgorICAgICAgICAgLSBXZWJB
c3NlbWJseSBvYmplY3Qgbm93IGhhcyBpdHMgb3duIHByb3RvdHlwZTogYWRkIFdlYkFzc2VtYmx5
UHJvdG90eXBlLCBhbmQKKyAgICAgICAgICAgdXNlIGl0IHRvIHJlZ2lzdGVyIEpTV2ViQXNzZW1i
bHkncyBmdW5jdGlvbiBwcm9wZXJ0aWVzIHRocm91Z2ggYXV0by1nZW5lcmF0ZWQKKyAgICAgICAg
ICAgLmx1dC5oLCBpbnN0ZWFkIG9mIG1hbnVhbGx5LgorICAgICAgICAgLSBUaGUgZXJyb3IgY29u
c3RydWN0b3JzIHVzZWQgdG8gdGhvdyAoZS5nLiBgbmV3IFdlYkFzc2VtYmx5LkNvbXBpbGVFcnJv
cigpYCkuCisgICAgICAgICAtIFJlZ2lzdGVyIFdlYkFzc2VtYmx5J3MgY29uc3RydWN0b3JzIGZy
b20gdGhlIGdsb2JhbCBvYmplY3QsIGFuZCBob2xkIGEKKyAgICAgICAgICAgcmVmZXJlbmNlIHRv
IHRoZWlyIHN0cnVjdHVyZSBhbmQgcHJvdG90eXBlIHNvIHRoYXQgaW52b2tpbmcgdGhlIGNvbnN0
cnVjdG9yCisgICAgICAgICAgIGNhbiB1c2UgdGhlIHN0cnVjdHVyZSBkaXJlY3RseSBmcm9tIHRo
ZSBnbG9iYWwgb2JqZWN0LgorICAgICAgICAgLSBBZGQgYSBwcm90b3R5cGUgYmFzZSBmaWVsZCB0
byBnbG9iYWwgb2JqZWN0IGNyZWF0aW9uLiBQcmV2aW91cyBvbmVzIGFsbCBoYWQKKyAgICAgICAg
ICAgT2JqZWN0J3MgcHJvdG90eXBlIGFzIHRoZWlyIGJhc2UsIGJ1dCBXZWJBc3NlbWJseSdzIGVy
cm9yIGNvbnN0cnVjdG9ycyBoYXZlCisgICAgICAgICAgIEVycm9yIGFzIHRoZWlyIGJhc2UuCisg
ICAgICAgICAtIFRlc3QgZm9yIHRoZSBlcnJvciBvYmplY3QncyBjb3JyZWN0bmVzcy4KKyAgICAg
ICAgIC0gQWRkIG1pc3NpbmcgI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKKworICAgICAgICBXZWJB
c3NlbWJseSBBUEk6IGltcGxlbWVudCBleGNlcHRpb24gY29uc3RydWN0b3JzIHByb3Blcmx5Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjM2OTkKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIENNYWtlTGlz
dHMudHh0OiByZW5hbWUgV2ViQXNzZW1ibHlPYmplY3QgLT4gSlNXZWJBc3NlbWJseTsgYWRkIGEg
Lmx1dC5oIGZpbGUKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOiBuZXcgLmx1dC5oIGZp
bGUKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBk
aXR0bworICAgICAgICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwOiBuZXcgcHJvdG90eXBl
QmFzZSBtYWNybworICAgICAgICAoSlNDOjpKU0dsb2JhbE9iamVjdDo6aW5pdCk6IHJlZ2lzdGVy
IFdlYkFzc2VtYmx5IGNvbnN0cnVjdG9ycyBoZXJlCisgICAgICAgIChKU0M6OkpTR2xvYmFsT2Jq
ZWN0Ojp2aXNpdENoaWxkcmVuKTogdXNlIHRoZSBtYWNybyB0byB2aXNpdAorICAgICAgICAqIHJ1
bnRpbWUvSlNHbG9iYWxPYmplY3QuaDogZGVjbGFyZSB0aGUgV2ViQXNzZW1ibHkgY29uc3RydWN0
b3IgbWFjcm8KKyAgICAgICAgKiB3YXNtL0pTV2ViQXNzZW1ibHkuY3BwOiBDb3BpZWQgZnJvbSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XZWJBc3NlbWJseU9iamVjdC5oLgorICAgICAgICAo
SlNDOjpKU1dlYkFzc2VtYmx5OjpjcmVhdGUpOgorICAgICAgICAoSlNDOjpKU1dlYkFzc2VtYmx5
OjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAoSlNDOjpKU1dlYkFzc2VtYmx5OjpmaW5pc2hD
cmVhdGlvbik6CisgICAgICAgIChKU0M6OkpTV2ViQXNzZW1ibHk6OkpTV2ViQXNzZW1ibHkpOgor
ICAgICAgICAqIHdhc20vSlNXZWJBc3NlbWJseS5oOiBSZW5hbWVkIGZyb20gU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vV2ViQXNzZW1ibHlPYmplY3QuaC4KKyAgICAgICAgKiB3YXNtL1dlYkFz
c2VtYmx5T2JqZWN0LmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiB3YXNtL2pzL0pTV2ViQXNzZW1i
bHlDb21waWxlRXJyb3IuY3BwOgorICAgICAgICAqIHdhc20vanMvSlNXZWJBc3NlbWJseUNvbXBp
bGVFcnJvci5oOgorICAgICAgICAoSlNDOjpKU1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yOjpjcmVh
dGUpOiBzdHJpbmcgY29udmVuaWVuY2UKKyAgICAgICAgKiB3YXNtL2pzL0pTV2ViQXNzZW1ibHlJ
bnN0YW5jZS5jcHA6CisgICAgICAgICogd2FzbS9qcy9KU1dlYkFzc2VtYmx5SW5zdGFuY2UuaDoK
KyAgICAgICAgKiB3YXNtL2pzL0pTV2ViQXNzZW1ibHlNZW1vcnkuY3BwOgorICAgICAgICAqIHdh
c20vanMvSlNXZWJBc3NlbWJseU1lbW9yeS5oOgorICAgICAgICAqIHdhc20vanMvSlNXZWJBc3Nl
bWJseU1vZHVsZS5jcHA6CisgICAgICAgICogd2FzbS9qcy9KU1dlYkFzc2VtYmx5TW9kdWxlLmg6
CisgICAgICAgICogd2FzbS9qcy9KU1dlYkFzc2VtYmx5UnVudGltZUVycm9yLmNwcDoKKyAgICAg
ICAgKiB3YXNtL2pzL0pTV2ViQXNzZW1ibHlSdW50aW1lRXJyb3IuaDoKKyAgICAgICAgKEpTQzo6
SlNXZWJBc3NlbWJseVJ1bnRpbWVFcnJvcjo6Y3JlYXRlKTogc3RyaW5nIGNvbnZlbmllbmNlCisg
ICAgICAgICogd2FzbS9qcy9KU1dlYkFzc2VtYmx5VGFibGUuY3BwOgorICAgICAgICAqIHdhc20v
anMvSlNXZWJBc3NlbWJseVRhYmxlLmg6CisgICAgICAgICogd2FzbS9qcy9XZWJBc3NlbWJseUNv
bXBpbGVFcnJvckNvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6Y29uc3RydWN0SlNXZWJB
c3NlbWJseUNvbXBpbGVFcnJvcik6ZG9uJ3QgdGhyb3csIGNyZWF0ZSB0aGUgb2JqZWN0CisgICAg
ICAgIChKU0M6OldlYkFzc2VtYmx5Q29tcGlsZUVycm9yQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0
aW9uKTpubyBuZWVkIGZvciB0aGUgc3RydWN0dXJlLCBpdCdzIG9uIHRoZSBnbG9iYWwgb2JqZWN0
CisgICAgICAgICogd2FzbS9qcy9XZWJBc3NlbWJseUNvbXBpbGVFcnJvckNvbnN0cnVjdG9yLmg6
CisgICAgICAgICogd2FzbS9qcy9XZWJBc3NlbWJseUNvbXBpbGVFcnJvclByb3RvdHlwZS5jcHA6
CisgICAgICAgICogd2FzbS9qcy9XZWJBc3NlbWJseUNvbXBpbGVFcnJvclByb3RvdHlwZS5oOgor
ICAgICAgICAqIHdhc20vanMvV2ViQXNzZW1ibHlJbnN0YW5jZUNvbnN0cnVjdG9yLmNwcDoKKyAg
ICAgICAgKiB3YXNtL2pzL1dlYkFzc2VtYmx5SW5zdGFuY2VDb25zdHJ1Y3Rvci5oOgorICAgICAg
ICAqIHdhc20vanMvV2ViQXNzZW1ibHlJbnN0YW5jZVByb3RvdHlwZS5jcHA6CisgICAgICAgICog
d2FzbS9qcy9XZWJBc3NlbWJseUluc3RhbmNlUHJvdG90eXBlLmg6CisgICAgICAgICogd2FzbS9q
cy9XZWJBc3NlbWJseU1lbW9yeUNvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKiB3YXNtL2pzL1dl
YkFzc2VtYmx5TWVtb3J5Q29uc3RydWN0b3IuaDoKKyAgICAgICAgKiB3YXNtL2pzL1dlYkFzc2Vt
Ymx5TWVtb3J5UHJvdG90eXBlLmNwcDoKKyAgICAgICAgKiB3YXNtL2pzL1dlYkFzc2VtYmx5TWVt
b3J5UHJvdG90eXBlLmg6CisgICAgICAgICogd2FzbS9qcy9XZWJBc3NlbWJseU1vZHVsZUNvbnN0
cnVjdG9yLmNwcDoKKyAgICAgICAgKiB3YXNtL2pzL1dlYkFzc2VtYmx5TW9kdWxlQ29uc3RydWN0
b3IuaDoKKyAgICAgICAgKiB3YXNtL2pzL1dlYkFzc2VtYmx5TW9kdWxlUHJvdG90eXBlLmNwcDoK
KyAgICAgICAgKiB3YXNtL2pzL1dlYkFzc2VtYmx5TW9kdWxlUHJvdG90eXBlLmg6CisgICAgICAg
ICogd2FzbS9qcy9XZWJBc3NlbWJseVByb3RvdHlwZS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yUHJvdG90eXBlLmNw
cC4KKyAgICAgICAgKEpTQzo6d2ViQXNzZW1ibHlGdW5jdGlvblZhbGlkYXRlKToKKyAgICAgICAg
KEpTQzo6d2ViQXNzZW1ibHlGdW5jdGlvbkNvbXBpbGUpOgorICAgICAgICAoSlNDOjpXZWJBc3Nl
bWJseVByb3RvdHlwZTo6Y3JlYXRlKToKKyAgICAgICAgKEpTQzo6V2ViQXNzZW1ibHlQcm90b3R5
cGU6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgIChKU0M6OldlYkFzc2VtYmx5UHJvdG90eXBl
OjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgIChKU0M6OldlYkFzc2VtYmx5UHJvdG90eXBlOjpX
ZWJBc3NlbWJseVByb3RvdHlwZSk6CisgICAgICAgICogd2FzbS9qcy9XZWJBc3NlbWJseVByb3Rv
dHlwZS5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3Nl
bWJseU1lbW9yeVByb3RvdHlwZS5oLgorICAgICAgICAqIHdhc20vanMvV2ViQXNzZW1ibHlSdW50
aW1lRXJyb3JDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OmNvbnN0cnVjdEpTV2ViQXNz
ZW1ibHlSdW50aW1lRXJyb3IpOmRvbid0IHRocm93LCBjcmVhdGUgdGhlIG9iamVjdAorICAgICAg
ICAoSlNDOjpXZWJBc3NlbWJseVJ1bnRpbWVFcnJvckNvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlv
bik6bm8gbmVlZCBmb3IgdGhlIHN0cnVjdHVyZSwgaXQncyBvbiB0aGUgZ2xvYmFsIG9iamVjdAor
ICAgICAgICAqIHdhc20vanMvV2ViQXNzZW1ibHlSdW50aW1lRXJyb3JDb25zdHJ1Y3Rvci5oOgor
ICAgICAgICAqIHdhc20vanMvV2ViQXNzZW1ibHlSdW50aW1lRXJyb3JQcm90b3R5cGUuY3BwOgor
ICAgICAgICAqIHdhc20vanMvV2ViQXNzZW1ibHlSdW50aW1lRXJyb3JQcm90b3R5cGUuaDoKKyAg
ICAgICAgKiB3YXNtL2pzL1dlYkFzc2VtYmx5VGFibGVDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAg
ICogd2FzbS9qcy9XZWJBc3NlbWJseVRhYmxlQ29uc3RydWN0b3IuaDoKKyAgICAgICAgKiB3YXNt
L2pzL1dlYkFzc2VtYmx5VGFibGVQcm90b3R5cGUuY3BwOgorICAgICAgICAqIHdhc20vanMvV2Vi
QXNzZW1ibHlUYWJsZVByb3RvdHlwZS5oOgorCiAyMDE2LTEwLTE5ICBNeWxlcyBDLiBNYXhmaWVs
ZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CiAKICAgICAgICAgW21hY09TXSBbaU9TXSBEaXNhYmxl
IHZhcmlhdGlvbiBmb250cyBvbiBtYWNPUyBFbCBDYXBpdGFuIGFuZCBpT1MgOQpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCBlZWNiNTNjLi42NjMwNTM3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtMTY4LDYgKzE2
OCw3IEBAIE9CSkVDVF9MVVRfSEVBREVSUyA9IFwKICAgICBXZWJBc3NlbWJseU1lbW9yeVByb3Rv
dHlwZS5sdXQuaCBcCiAgICAgV2ViQXNzZW1ibHlNb2R1bGVDb25zdHJ1Y3Rvci5sdXQuaCBcCiAg
ICAgV2ViQXNzZW1ibHlNb2R1bGVQcm90b3R5cGUubHV0LmggXAorICAgIFdlYkFzc2VtYmx5UHJv
dG90eXBlLmx1dC5oIFwKICAgICBXZWJBc3NlbWJseVJ1bnRpbWVFcnJvckNvbnN0cnVjdG9yLmx1
dC5oIFwKICAgICBXZWJBc3NlbWJseVJ1bnRpbWVFcnJvclByb3RvdHlwZS5sdXQuaCBcCiAgICAg
V2ViQXNzZW1ibHlUYWJsZUNvbnN0cnVjdG9yLmx1dC5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKaW5kZXggYWVjZDFiMi4uMDk2NmU0NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKQEAgLTE4NzksOCArMTg3OSw2IEBACiAJCUE3RkI2MTAwMTA0MEMzOEIwMDE3QTI4NiAvKiBQ
cm9wZXJ0eURlc2NyaXB0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEE3RkI2MDRCMTAzRjVFQUIwMDE3QTI4NiAvKiBQcm9wZXJ0eURlc2NyaXB0b3Iu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBN0ZD
QzI2RDE3QTBCNkFBMDA3ODZEMUEgLyogRlRMU3dpdGNoQ2FzZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTdGQ0MyNkMxN0EwQjZBQTAwNzg2RDFBIC8q
IEZUTFN3aXRjaENhc2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQlBOEE0NzQ4RTE1MUE4MzA2MDA0MTIzRkYgLyogbGliV1RGLmEgaW4gRnJhbWV3
b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEE0NzQ4RDE1MUE4MzA2
MDA0MTIzRkYgLyogbGliV1RGLmEgKi87IH07Ci0JCUFEMkZDQjg4MURBRUJGM0MwMEIzRTczNiAv
KiBXZWJBc3NlbWJseU9iamVjdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBBRDJGQ0I4NjFEQUVCRjM3MDBCM0U3MzYgLyogV2ViQXNzZW1ibHlPYmpl
Y3QuY3BwICovOyB9OwotCQlBRDJGQ0I4OTFEQUVCRjNGMDBCM0U3MzYgLyogV2ViQXNzZW1ibHlP
YmplY3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFE
MkZDQjg3MURBRUJGMzcwMEIzRTczNiAvKiBXZWJBc3NlbWJseU9iamVjdC5oICovOyB9OwogCQlB
RDJGQ0JFMjFEQjU4REFEMDBCM0U3MzYgLyogSlNXZWJBc3NlbWJseUNvbXBpbGVFcnJvci5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBRDJGQ0JBNjFE
QjU4REE0MDBCM0U3MzYgLyogSlNXZWJBc3NlbWJseUNvbXBpbGVFcnJvci5jcHAgKi87IH07CiAJ
CUFEMkZDQkUzMURCNThEQUQwMEIzRTczNiAvKiBKU1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBRDJGQ0JBNzFE
QjU4REE0MDBCM0U3MzYgLyogSlNXZWJBc3NlbWJseUNvbXBpbGVFcnJvci5oICovOyB9OwogCQlB
RDJGQ0JFNDFEQjU4REFEMDBCM0U3MzYgLyogSlNXZWJBc3NlbWJseUluc3RhbmNlLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFEMkZDQkE4MURCNThE
QTQwMEIzRTczNiAvKiBKU1dlYkFzc2VtYmx5SW5zdGFuY2UuY3BwICovOyB9OwpAQCAtMTkyOSw2
ICsxOTI3LDEwIEBACiAJCUFEMkZDQzFGMURCNTlDQjIwMEIzRTczNiAvKiBXZWJBc3NlbWJseVJ1
bnRpbWVFcnJvclByb3RvdHlwZS5sdXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEFEMkZDQzEzMURCNTlDNTkwMEIzRTczNiAvKiBXZWJBc3NlbWJseVJ1
bnRpbWVFcnJvclByb3RvdHlwZS5sdXQuaCAqLzsgfTsKIAkJQUQyRkNDMjAxREI1OUNCMjAwQjNF
NzM2IC8qIFdlYkFzc2VtYmx5VGFibGVDb25zdHJ1Y3Rvci5sdXQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFEMkZDQzE0MURCNTlDNTkwMEIzRTczNiAv
KiBXZWJBc3NlbWJseVRhYmxlQ29uc3RydWN0b3IubHV0LmggKi87IH07CiAJCUFEMkZDQzIxMURC
NTlDQjIwMEIzRTczNiAvKiBXZWJBc3NlbWJseVRhYmxlUHJvdG90eXBlLmx1dC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUQyRkNDMTUxREI1OUM1OTAw
QjNFNzM2IC8qIFdlYkFzc2VtYmx5VGFibGVQcm90b3R5cGUubHV0LmggKi87IH07CisJCUFEMkZD
QzJDMURCODM4RkQwMEIzRTczNiAvKiBXZWJBc3NlbWJseVByb3RvdHlwZS5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBRDJGQ0MyNjFEQjgzOEM0MDBC
M0U3MzYgLyogV2ViQXNzZW1ibHlQcm90b3R5cGUuY3BwICovOyB9OworCQlBRDJGQ0MyRDFEQjgz
OEZEMDBCM0U3MzYgLyogV2ViQXNzZW1ibHlQcm90b3R5cGUuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFEMkZDQzI3MURCODM4QzQwMEIzRTczNiAvKiBX
ZWJBc3NlbWJseVByb3RvdHlwZS5oICovOyB9OworCQlBRDJGQ0MzMDFEQjgzRDQ5MDBCM0U3MzYg
LyogSlNXZWJBc3NlbWJseS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBRDJGQ0MyRTFEQjgzOUY3MDBCM0U3MzYgLyogSlNXZWJBc3NlbWJseS5jcHAg
Ki87IH07CisJCUFEMkZDQzMxMURCODNENDkwMEIzRTczNiAvKiBKU1dlYkFzc2VtYmx5LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBRDJGQ0MyRjFEQjgz
OUY3MDBCM0U3MzYgLyogSlNXZWJBc3NlbWJseS5oICovOyB9OwogCQlBRDg2QTkzRTFBQTREODhE
MDAyRkU3N0YgLyogV2Vha0dDTWFwSW5saW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQUQ4NkE5M0QxQUE0RDg3QzAwMkZFNzdGIC8qIFdlYWtHQ01h
cElubGluZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQlBRERCMUY2MzE4RDc3REJFMDA5QjU4QTggLyogT3BhcXVlUm9vdFNldC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUREQjFGNjIxOEQ3N0RCNzAw
OUI1OEE4IC8qIE9wYXF1ZVJvb3RTZXQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQlBREUzOUZGRjE2REQxNDRCMDAwM0NENEEgLyogUHJvcGVydHlU
YWJsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBB
RDFDRjA2ODE2RENBQjJEMDBCOTcxMjMgLyogUHJvcGVydHlUYWJsZS5jcHAgKi87IH07CkBAIC00
MjU5LDggKzQyNjEsNiBAQAogCQlBOEU4OTQzMTBDRDA2MDI0MDAzNjcxNzkgLyogSlNDYWxsYmFj
a09iamVjdEZ1bmN0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0Nh
bGxiYWNrT2JqZWN0RnVuY3Rpb25zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4
RTg5NDMzMENEMDYwM0YwMDM2NzE3OSAvKiBKU0dsb2JhbE9iamVjdC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBKU0dsb2JhbE9iamVjdC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlBRDFDRjA2ODE2RENBQjJEMDBCOTcxMjMgLyogUHJvcGVydHlUYWJsZS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQcm9wZXJ0eVRhYmxlLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQUQyRkNCODYxREFFQkYzNzAwQjNFNzM2IC8q
IFdlYkFzc2VtYmx5T2JqZWN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFdlYkFzc2VtYmx5T2JqZWN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJ
QUQyRkNCODcxREFFQkYzNzAwQjNFNzM2IC8qIFdlYkFzc2VtYmx5T2JqZWN0LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkFzc2VtYmx5T2JqZWN0Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUFEMkZDQjhDMURCNTg0NDAwMEIzRTczNiAvKiBKU1dlYkFzc2Vt
Ymx5TW9kdWxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEpTV2Vi
QXNzZW1ibHlNb2R1bGUuY3BwOyBwYXRoID0ganMvSlNXZWJBc3NlbWJseU1vZHVsZS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUFEMkZDQjhEMURCNTg0NDAwMEIzRTczNiAvKiBK
U1dlYkFzc2VtYmx5TW9kdWxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEpT
V2ViQXNzZW1ibHlNb2R1bGUuaDsgcGF0aCA9IGpzL0pTV2ViQXNzZW1ibHlNb2R1bGUuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQUQyRkNCOTgxREI1ODVBNjAwQjNFNzM2IC8qIFdl
YkFzc2VtYmx5TW9kdWxlQ29uc3RydWN0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBuYW1lID0gV2ViQXNzZW1ibHlNb2R1bGVDb25zdHJ1Y3Rvci5jcHA7IHBhdGggPSBqcy9X
ZWJBc3NlbWJseU1vZHVsZUNvbnN0cnVjdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTQzMDksNiArNDMwOSwxMCBAQAogCQlBRDJGQ0MxMzFEQjU5QzU5MDBCM0U3MzYgLyog
V2ViQXNzZW1ibHlSdW50aW1lRXJyb3JQcm90b3R5cGUubHV0LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFdlYkFzc2VtYmx5UnVudGltZUVycm9yUHJvdG90eXBlLmx1dC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBRDJGQ0MxNDFEQjU5QzU5MDBCM0U3MzYgLyog
V2ViQXNzZW1ibHlUYWJsZUNvbnN0cnVjdG9yLmx1dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBXZWJBc3NlbWJseVRhYmxlQ29uc3RydWN0b3IubHV0Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUFEMkZDQzE1MURCNTlDNTkwMEIzRTczNiAvKiBXZWJBc3NlbWJs
eVRhYmxlUHJvdG90eXBlLmx1dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBX
ZWJBc3NlbWJseVRhYmxlUHJvdG90eXBlLmx1dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlBRDJGQ0MyNjFEQjgzOEM0MDBCM0U3MzYgLyogV2ViQXNzZW1ibHlQcm90b3R5cGUuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gV2ViQXNzZW1ibHlQcm90b3R5
cGUuY3BwOyBwYXRoID0ganMvV2ViQXNzZW1ibHlQcm90b3R5cGUuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlBRDJGQ0MyNzFEQjgzOEM0MDBCM0U3MzYgLyogV2ViQXNzZW1ibHlQ
cm90b3R5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV2ViQXNzZW1ibHlQ
cm90b3R5cGUuaDsgcGF0aCA9IGpzL1dlYkFzc2VtYmx5UHJvdG90eXBlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUFEMkZDQzJFMURCODM5RjcwMEIzRTczNiAvKiBKU1dlYkFzc2Vt
Ymx5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTV2ViQXNzZW1i
bHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBRDJGQ0MyRjFEQjgzOUY3MDBC
M0U3MzYgLyogSlNXZWJBc3NlbWJseS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBKU1dlYkFzc2VtYmx5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUFEODZBOTNE
MUFBNEQ4N0MwMDJGRTc3RiAvKiBXZWFrR0NNYXBJbmxpbmVzLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFdlYWtHQ01hcElubGluZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQUREQjFGNjIxOEQ3N0RCNzAwOUI1OEE4IC8qIE9wYXF1ZVJvb3RTZXQuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gT3BhcXVlUm9vdFNldC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlCNTlGODkzNzE4OTFBRDMzMDBENUNDREMgLyogVW5saW5rZWRJ
bnN0cnVjdGlvblN0cmVhbS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBVbmxp
bmtlZEluc3RydWN0aW9uU3RyZWFtLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC01
ODAzLDkgKzU4MDcsOSBAQAogCQk3Qjk4RDEzMzFCNjBDRDFFMDAyM0IxQTQgLyogd2FzbSAqLyA9
IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJQUQyRkNDMkUxREI4
MzlGNzAwQjNFNzM2IC8qIEpTV2ViQXNzZW1ibHkuY3BwICovLAorCQkJCUFEMkZDQzJGMURCODM5
RjcwMEIzRTczNiAvKiBKU1dlYkFzc2VtYmx5LmggKi8sCiAJCQkJQUQyRkNCOEExREI1ODQwMDAw
QjNFNzM2IC8qIGpzICovLAotCQkJCUFEMkZDQjg2MURBRUJGMzcwMEIzRTczNiAvKiBXZWJBc3Nl
bWJseU9iamVjdC5jcHAgKi8sCi0JCQkJQUQyRkNCODcxREFFQkYzNzAwQjNFNzM2IC8qIFdlYkFz
c2VtYmx5T2JqZWN0LmggKi8sCiAJCQkJN0I5OEQxMzQxQjYwQ0Q1QTAwMjNCMUE0IC8qIEpTV0FT
TU1vZHVsZS5jcHAgKi8sCiAJCQkJN0I5OEQxMzUxQjYwQ0Q1QTAwMjNCMUE0IC8qIEpTV0FTTU1v
ZHVsZS5oICovLAogCQkJCTUzRjQwRThFMUQ1OTAyODIwMDk5QTFCNiAvKiBXQVNNQjNJUkdlbmVy
YXRvci5jcHAgKi8sCkBAIC03MzEyLDYgKzczMTYsOCBAQAogCQlBRDJGQ0I4QTFEQjU4NDAwMDBC
M0U3MzYgLyoganMgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAor
CQkJCUFEMkZDQzI2MURCODM4QzQwMEIzRTczNiAvKiBXZWJBc3NlbWJseVByb3RvdHlwZS5jcHAg
Ki8sCisJCQkJQUQyRkNDMjcxREI4MzhDNDAwQjNFNzM2IC8qIFdlYkFzc2VtYmx5UHJvdG90eXBl
LmggKi8sCiAJCQkJQUQyRkNCQTYxREI1OERBNDAwQjNFNzM2IC8qIEpTV2ViQXNzZW1ibHlDb21w
aWxlRXJyb3IuY3BwICovLAogCQkJCUFEMkZDQkE3MURCNThEQTQwMEIzRTczNiAvKiBKU1dlYkFz
c2VtYmx5Q29tcGlsZUVycm9yLmggKi8sCiAJCQkJQUQyRkNCQTgxREI1OERBNDAwQjNFNzM2IC8q
IEpTV2ViQXNzZW1ibHlJbnN0YW5jZS5jcHAgKi8sCkBAIC03NjE1LDcgKzc2MjEsNiBAQAogCQkJ
CTBGQzk3RjM0MTgyMDIwRDcwMDJDOUIyNiAvKiBDb2RlQmxvY2tKZXR0aXNvbmluZ1dhdGNocG9p
bnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRDhBMzE0MTdENDMyNkMwMENBMkM0MCAvKiBDb2Rl
QmxvY2tTZXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGOTZFQkIzMTY2NzZFRjYwMDhCQURFMyAv
KiBDb2RlQmxvY2tXaXRoSklUVHlwZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQUQyRkNCODkxREFF
QkYzRjAwQjNFNzM2IC8qIFdlYkFzc2VtYmx5T2JqZWN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlB
NzdGMTgyMjE2NDA4OEIyMDA2NDBBNDcgLyogQ29kZUNhY2hlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk5OUNDMEI2MzE4QkU5OTUwMDA2Q0VCQ0MgLyogQ29kZUdlbmVyYXRvclJlcGxheUlucHV0cy5w
eSBpbiBIZWFkZXJzICovLAogCQkJCTk5Q0MwQjYyMThCRTk5NDYwMDZDRUJDQyAvKiBDb2RlR2Vu
ZXJhdG9yUmVwbGF5SW5wdXRzVGVtcGxhdGVzLnB5IGluIEhlYWRlcnMgKi8sCkBAIC03NzM5LDYg
Kzc3NDQsNyBAQAogCQkJCUE3RDg5Q0Y2MTdBMEI4Q0MwMDc3M0FEOCAvKiBERkdDcml0aWNhbEVk
Z2VCcmVha2luZ1BoYXNlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkZGQzk1QTE0RUY5MEE5MDBD
NzI1MzIgLyogREZHQ1NFUGhhc2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGMkZDNzczMTZFMTJG
NzQwMDM4RDk3NiAvKiBERkdEQ0VQaGFzZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJQUQyRkNDMzEx
REI4M0Q0OTAwQjNFNzM2IC8qIEpTV2ViQXNzZW1ibHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBG
OEYyQjlBMTcyRjA1MDEwMDdEQkRBNSAvKiBERkdEZXNpcmVkSWRlbnRpZmllcnMuaCBpbiBIZWFk
ZXJzICovLAogCQkJCThCOUY2RDU2MUQ1OTEyRkEwMDFDNzM5RiAvKiBJdGVyYXRpb25LaW5kLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkwRkZDOTIxNDFCOTRFODNFMDA3MURENjYgLyogREZHRGVzaXJl
ZEluZmVycmVkVHlwZS5oIGluIEhlYWRlcnMgKi8sCkBAIC04NTEwLDYgKzg1MTYsNyBAQAogCQkJ
CUE1QkExNUVBMTgyMzQwQjQwMEE4MkU2OSAvKiBSZW1vdGVJbnNwZWN0b3JDb25zdGFudHMuaCBp
biBIZWFkZXJzICovLAogCQkJCUE1QkExNUYwMTgyMzQ1QUYwMEE4MkU2OSAvKiBSZW1vdGVJbnNw
ZWN0aW9uVGFyZ2V0LmggaW4gSGVhZGVycyAqLywKIAkJCQlBNUJBMTVFQjE4MjM0MEI0MDBBODJF
NjkgLyogUmVtb3RlQ29ubmVjdGlvblRvVGFyZ2V0LmggaW4gSGVhZGVycyAqLywKKwkJCQlBRDJG
Q0MyRDFEQjgzOEZEMDBCM0U3MzYgLyogV2ViQXNzZW1ibHlQcm90b3R5cGUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUE1QkExNUVEMTgyMzQwQjQwMEE4MkU2OSAvKiBSZW1vdGVJbnNwZWN0b3JYUEND
b25uZWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjI0RTU1MTE3RUUyNzQ5MDBBQkIyMTcg
LyogUmVwYXRjaC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJREMyMTQzMDcxQ0EzMkU1NTAwMEE4ODY5
IC8qIElDU3RhdHMuaCBpbiBIZWFkZXJzICovLApAQCAtOTQ1MCw2ICs5NDU3LDcgQEAKIAkJCQkw
RjhGMTQzNTFBREYwOTAxMDBFRDc5MkMgLyogREZHTW92SGludFJlbW92YWxQaGFzZS5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkwRkYyQ0Q1QjFCNjFBNEY4MDA0OTU1QTggLyogREZHTXVsdGlHZXRC
eU9mZnNldERhdGEuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTczNzgxMEQxNzk5RUEyRTAwODE3
NTMzIC8qIERGR05hdHVyYWxMb29wcy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlBRDJGQ0MzMDFE
QjgzRDQ5MDBCM0U3MzYgLyogSlNXZWJBc3NlbWJseS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3
OUIwMENCRTFDNkFCMDdFMDA4OEM2NUQgLyogUHJveHlPYmplY3QuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJNzkyQ0IzNDkxQzRFRUQ1QzAwRDEzQUYzIC8qIFBDVG9Db2RlT3JpZ2luTWFwLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTBGRjBGMTlDMTZCNzJBMDMwMDVERjk1QiAvKiBERkdOb2RlLmNw
cCBpbiBTb3VyY2VzICovLApAQCAtOTcxNyw2ICs5NzI1LDcgQEAKIAkJCQkxNDdGMzlENjEwN0VD
Mzc2MDA0MjdBNDggLyogSlNDSlNWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDQwRkNF
NDBBNTFFNDZCMDAwNUYwNjEgLyogSlNDbGFzc1JlZi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4
NkUzQzYxNjE2N0JBQkVFMDA2RDc2MEEgLyogSlNDb250ZXh0Lm1tIGluIFNvdXJjZXMgKi8sCisJ
CQkJQUQyRkNDMkMxREI4MzhGRDAwQjNFNzM2IC8qIFdlYkFzc2VtYmx5UHJvdG90eXBlLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTE0QkQ1QTMwMEEzRTkxRjYwMEJBRjU5QyAvKiBKU0NvbnRleHRS
ZWYuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTcyMDI4QjYxNzk3NjAxRTAwOTgwMjhDIC8qIEpT
Q1Rlc3RSdW5uZXJVdGlscy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjJCNjZFQjE3QjZCNUFC
MDBBN0FFM0YgLyogSlNEYXRhVmlldy5jcHAgaW4gU291cmNlcyAqLywKQEAgLTk5MzgsNyArOTk0
Nyw2IEBACiAJCQkJNzkwNUJCNjgxRDEyMDUwRTAwMTlGRTU3IC8qIElubGluZUFjY2Vzcy5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkwRkUwNTAyNzFBQTkwOTU2MDBEMzNCMzMgLyogU2NvcGVkQXJn
dW1lbnRzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGRTA1MDJGMUFBQTgwNjkwMEQzM0IzMyAv
KiBTY29wZWRBcmd1bWVudHNUYWJsZS5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlBRDJGQ0I4ODFE
QUVCRjNDMDBCM0U3MzYgLyogV2ViQXNzZW1ibHlPYmplY3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJOTkyQUJDRjkxQkVBOUJEMjAwNjQwM0EwIC8qIFJlbW90ZUF1dG9tYXRpb25UYXJnZXQuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMEZFMDUwMkExQUE5MDk1NjAwRDMzQjMzIC8qIFNjb3BlT2Zm
c2V0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGQTdBOEVFMThDRTRGRDgwMDUyMzcxRCAvKiBT
Y3JhdGNoUmVnaXN0ZXJBbGxvY2F0b3IuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKaW5kZXggMTVhOTQxMC4u
ZjQ4Y2JjZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9i
YWxPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFs
T2JqZWN0LmNwcApAQCAtMTA4LDYgKzEwOCw3IEBACiAjaW5jbHVkZSAiSlNUeXBlZEFycmF5cy5o
IgogI2luY2x1ZGUgIkpTV2Vha01hcC5oIgogI2luY2x1ZGUgIkpTV2Vha1NldC5oIgorI2luY2x1
ZGUgIkpTV2ViQXNzZW1ibHkuaCIKICNpbmNsdWRlICJKU1dpdGhTY29wZS5oIgogI2luY2x1ZGUg
IkxhenlDbGFzc1N0cnVjdHVyZUlubGluZXMuaCIKICNpbmNsdWRlICJMYXp5UHJvcGVydHlJbmxp
bmVzLmgiCkBAIC0xNTQsNyArMTU1LDYgQEAKICNpbmNsdWRlICJXZWFrTWFwUHJvdG90eXBlLmgi
CiAjaW5jbHVkZSAiV2Vha1NldENvbnN0cnVjdG9yLmgiCiAjaW5jbHVkZSAiV2Vha1NldFByb3Rv
dHlwZS5oIgotI2luY2x1ZGUgIldlYkFzc2VtYmx5T2JqZWN0LmgiCiAjaW5jbHVkZSA8d3RmL1Jh
bmRvbU51bWJlci5oPgogCiAjaWYgRU5BQkxFKElOVEwpCkBAIC01NDEsMTggKzU0MSwxOCBAQCB2
b2lkIEpTR2xvYmFsT2JqZWN0Ojppbml0KFZNJiB2bSkKICAgICBtX3BhcnNlSW50RnVuY3Rpb24u
c2V0KHZtLCB0aGlzLCBKU0Z1bmN0aW9uOjpjcmVhdGUodm0sIHRoaXMsIDIsIHZtLnByb3BlcnR5
TmFtZXMtPnBhcnNlSW50LnN0cmluZygpLCBnbG9iYWxGdW5jUGFyc2VJbnQsIE5vSW50cmluc2lj
KSk7CiAgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMt
PnBhcnNlSW50LCBtX3BhcnNlSW50RnVuY3Rpb24uZ2V0KCksIERvbnRFbnVtKTsKIAotI2RlZmlu
ZSBDUkVBVEVfUFJPVE9UWVBFX0ZPUl9TSU1QTEVfVFlQRShjYXBpdGFsTmFtZSwgbG93ZXJOYW1l
LCBwcm9wZXJOYW1lLCBpbnN0YW5jZVR5cGUsIGpzTmFtZSkgXAotbV8gIyMgbG93ZXJOYW1lICMj
IFByb3RvdHlwZS5zZXQodm0sIHRoaXMsIGNhcGl0YWxOYW1lIyNQcm90b3R5cGU6OmNyZWF0ZSh2
bSwgdGhpcywgY2FwaXRhbE5hbWUjI1Byb3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJlKHZtLCB0aGlz
LCBtX29iamVjdFByb3RvdHlwZS5nZXQoKSkpKTsgXAorI2RlZmluZSBDUkVBVEVfUFJPVE9UWVBF
X0ZPUl9TSU1QTEVfVFlQRShjYXBpdGFsTmFtZSwgbG93ZXJOYW1lLCBwcm9wZXJOYW1lLCBpbnN0
YW5jZVR5cGUsIGpzTmFtZSwgcHJvdG90eXBlQmFzZSkgXAorbV8gIyMgbG93ZXJOYW1lICMjIFBy
b3RvdHlwZS5zZXQodm0sIHRoaXMsIGNhcGl0YWxOYW1lIyNQcm90b3R5cGU6OmNyZWF0ZSh2bSwg
dGhpcywgY2FwaXRhbE5hbWUjI1Byb3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJlKHZtLCB0aGlzLCBt
XyAjIyBwcm90b3R5cGVCYXNlICMjIFByb3RvdHlwZS5nZXQoKSkpKTsgXAogbV8gIyMgcHJvcGVy
TmFtZSAjIyBTdHJ1Y3R1cmUuc2V0KHZtLCB0aGlzLCBpbnN0YW5jZVR5cGU6OmNyZWF0ZVN0cnVj
dHVyZSh2bSwgdGhpcywgbV8gIyMgbG93ZXJOYW1lICMjIFByb3RvdHlwZS5nZXQoKSkpOwogICAg
IAogICAgIEZPUl9FQUNIX1NJTVBMRV9CVUlMVElOX1RZUEUoQ1JFQVRFX1BST1RPVFlQRV9GT1Jf
U0lNUExFX1RZUEUpCiAgICAgCiAjdW5kZWYgQ1JFQVRFX1BST1RPVFlQRV9GT1JfU0lNUExFX1RZ
UEUKIAotI2RlZmluZSBDUkVBVEVfUFJPVE9UWVBFX0ZPUl9MQVpZX1RZUEUoY2FwaXRhbE5hbWUs
IGxvd2VyTmFtZSwgcHJvcGVyTmFtZSwgaW5zdGFuY2VUeXBlLCBqc05hbWUpIFwKKyNkZWZpbmUg
Q1JFQVRFX1BST1RPVFlQRV9GT1JfTEFaWV9UWVBFKGNhcGl0YWxOYW1lLCBsb3dlck5hbWUsIHBy
b3Blck5hbWUsIGluc3RhbmNlVHlwZSwganNOYW1lLCBwcm90b3R5cGVCYXNlKSBcCiAgICAgbV8g
IyMgcHJvcGVyTmFtZSAjIyBTdHJ1Y3R1cmUuaW5pdExhdGVyKFwKICAgICAgICAgW10gKExhenlD
bGFzc1N0cnVjdHVyZTo6SW5pdGlhbGl6ZXImIGluaXQpIHsgXAotICAgICAgICAgICAgaW5pdC5z
ZXRQcm90b3R5cGUoY2FwaXRhbE5hbWUjI1Byb3RvdHlwZTo6Y3JlYXRlKGluaXQudm0sIGluaXQu
Z2xvYmFsLCBjYXBpdGFsTmFtZSMjUHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUoaW5pdC52bSwg
aW5pdC5nbG9iYWwsIGluaXQuZ2xvYmFsLT5tX29iamVjdFByb3RvdHlwZS5nZXQoKSkpKTsgXAor
ICAgICAgICAgICAgaW5pdC5zZXRQcm90b3R5cGUoY2FwaXRhbE5hbWUjI1Byb3RvdHlwZTo6Y3Jl
YXRlKGluaXQudm0sIGluaXQuZ2xvYmFsLCBjYXBpdGFsTmFtZSMjUHJvdG90eXBlOjpjcmVhdGVT
dHJ1Y3R1cmUoaW5pdC52bSwgaW5pdC5nbG9iYWwsIGluaXQuZ2xvYmFsLT5tXyAjIyBwcm90b3R5
cGVCYXNlICMjIFByb3RvdHlwZS5nZXQoKSkpKTsgXAogICAgICAgICAgICAgaW5pdC5zZXRTdHJ1
Y3R1cmUoaW5zdGFuY2VUeXBlOjpjcmVhdGVTdHJ1Y3R1cmUoaW5pdC52bSwgaW5pdC5nbG9iYWws
IGluaXQucHJvdG90eXBlKSk7IFwKICAgICAgICAgICAgIGluaXQuc2V0Q29uc3RydWN0b3IoY2Fw
aXRhbE5hbWUgIyMgQ29uc3RydWN0b3I6OmNyZWF0ZShpbml0LnZtLCBjYXBpdGFsTmFtZSAjIyBD
b25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKGluaXQudm0sIGluaXQuZ2xvYmFsLCBpbml0Lmds
b2JhbC0+bV9mdW5jdGlvblByb3RvdHlwZS5nZXQoKSksIGpzQ2FzdDxjYXBpdGFsTmFtZSAjIyBQ
cm90b3R5cGUqPihpbml0LnByb3RvdHlwZSksIGluaXQuZ2xvYmFsLT5tX3NwZWNpZXNHZXR0ZXJT
ZXR0ZXIuZ2V0KCkpKTsgXAogICAgICAgICB9KTsKQEAgLTU2Myw3ICs1NjMsNyBAQCBtXyAjIyBw
cm9wZXJOYW1lICMjIFN0cnVjdHVyZS5zZXQodm0sIHRoaXMsIGluc3RhbmNlVHlwZTo6Y3JlYXRl
U3RydWN0dXJlKHZtLCB0aAogICAgIAogICAgIG1faXRlcmF0b3JQcm90b3R5cGUuc2V0KHZtLCB0
aGlzLCBJdGVyYXRvclByb3RvdHlwZTo6Y3JlYXRlKHZtLCB0aGlzLCBJdGVyYXRvclByb3RvdHlw
ZTo6Y3JlYXRlU3RydWN0dXJlKHZtLCB0aGlzLCBtX29iamVjdFByb3RvdHlwZS5nZXQoKSkpKTsK
IAotI2RlZmluZSBDUkVBVEVfUFJPVE9UWVBFX0ZPUl9ERVJJVkVEX0lURVJBVE9SX1RZUEUoY2Fw
aXRhbE5hbWUsIGxvd2VyTmFtZSwgcHJvcGVyTmFtZSwgaW5zdGFuY2VUeXBlLCBqc05hbWUpIFwK
KyNkZWZpbmUgQ1JFQVRFX1BST1RPVFlQRV9GT1JfREVSSVZFRF9JVEVSQVRPUl9UWVBFKGNhcGl0
YWxOYW1lLCBsb3dlck5hbWUsIHByb3Blck5hbWUsIGluc3RhbmNlVHlwZSwganNOYW1lLCBwcm90
b3R5cGVCYXNlKSBcCiAgICAgbV8gIyMgbG93ZXJOYW1lICMjIFN0cnVjdHVyZS5pbml0TGF0ZXIo
IFwKICAgICAgICAgW10gKGNvbnN0IEluaXRpYWxpemVyPFN0cnVjdHVyZT4mIGluaXQpIHsgXAog
ICAgICAgICAgICAgSlNPYmplY3QqIHByb3RvdHlwZSA9IGNhcGl0YWxOYW1lICMjIFByb3RvdHlw
ZTo6Y3JlYXRlKGluaXQudm0sIGluaXQub3duZXIsIGNhcGl0YWxOYW1lICMjIFByb3RvdHlwZTo6
Y3JlYXRlU3RydWN0dXJlKGluaXQudm0sIGluaXQub3duZXIsIGluaXQub3duZXItPm1faXRlcmF0
b3JQcm90b3R5cGUuZ2V0KCkpKTsgXApAQCAtNTkwLDcgKzU5MCw3IEBAIG1fICMjIHByb3Blck5h
bWUgIyMgU3RydWN0dXJlLnNldCh2bSwgdGhpcywgaW5zdGFuY2VUeXBlOjpjcmVhdGVTdHJ1Y3R1
cmUodm0sIHRoCiAgICAgCiAgICAgbV9yZWdFeHBDb25zdHJ1Y3Rvci5zZXQodm0sIHRoaXMsIFJl
Z0V4cENvbnN0cnVjdG9yOjpjcmVhdGUodm0sIFJlZ0V4cENvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1
Y3R1cmUodm0sIHRoaXMsIG1fZnVuY3Rpb25Qcm90b3R5cGUuZ2V0KCkpLCBtX3JlZ0V4cFByb3Rv
dHlwZS5nZXQoKSwgbV9zcGVjaWVzR2V0dGVyU2V0dGVyLmdldCgpKSk7CiAgICAgCi0jZGVmaW5l
IENSRUFURV9DT05TVFJVQ1RPUl9GT1JfU0lNUExFX1RZUEUoY2FwaXRhbE5hbWUsIGxvd2VyTmFt
ZSwgcHJvcGVyTmFtZSwgaW5zdGFuY2VUeXBlLCBqc05hbWUpIFwKKyNkZWZpbmUgQ1JFQVRFX0NP
TlNUUlVDVE9SX0ZPUl9TSU1QTEVfVFlQRShjYXBpdGFsTmFtZSwgbG93ZXJOYW1lLCBwcm9wZXJO
YW1lLCBpbnN0YW5jZVR5cGUsIGpzTmFtZSwgcHJvdG90eXBlQmFzZSkgXAogY2FwaXRhbE5hbWUg
IyMgQ29uc3RydWN0b3IqIGxvd2VyTmFtZSAjIyBDb25zdHJ1Y3RvciA9IGNhcGl0YWxOYW1lICMj
IENvbnN0cnVjdG9yOjpjcmVhdGUodm0sIGNhcGl0YWxOYW1lICMjIENvbnN0cnVjdG9yOjpjcmVh
dGVTdHJ1Y3R1cmUodm0sIHRoaXMsIG1fZnVuY3Rpb25Qcm90b3R5cGUuZ2V0KCkpLCBtXyAjIyBs
b3dlck5hbWUgIyMgUHJvdG90eXBlLmdldCgpLCBtX3NwZWNpZXNHZXR0ZXJTZXR0ZXIuZ2V0KCkp
OyBcCiBtXyAjIyBsb3dlck5hbWUgIyMgUHJvdG90eXBlLT5wdXREaXJlY3RXaXRob3V0VHJhbnNp
dGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+Y29uc3RydWN0b3IsIGxvd2VyTmFtZSAjIyBDb25z
dHJ1Y3RvciwgRG9udEVudW0pOyBcCiAKQEAgLTY0Niw3ICs2NDYsNyBAQCBtXyAjIyBsb3dlck5h
bWUgIyMgUHJvdG90eXBlLT5wdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVy
dHlOYW1lcy0+YwogICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0
eU5hbWVzLT5idWlsdGluTmFtZXMoKS5PYmplY3RQcml2YXRlTmFtZSgpLCBvYmplY3RDb25zdHJ1
Y3RvciwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpOwogICAgIHB1dERpcmVjdFdp
dGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5BcnJh
eVByaXZhdGVOYW1lKCksIGFycmF5Q29uc3RydWN0b3IsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8
IFJlYWRPbmx5KTsKIAotI2RlZmluZSBQVVRfQ09OU1RSVUNUT1JfRk9SX1NJTVBMRV9UWVBFKGNh
cGl0YWxOYW1lLCBsb3dlck5hbWUsIHByb3Blck5hbWUsIGluc3RhbmNlVHlwZSwganNOYW1lKSBc
CisjZGVmaW5lIFBVVF9DT05TVFJVQ1RPUl9GT1JfU0lNUExFX1RZUEUoY2FwaXRhbE5hbWUsIGxv
d2VyTmFtZSwgcHJvcGVyTmFtZSwgaW5zdGFuY2VUeXBlLCBqc05hbWUsIHByb3RvdHlwZUJhc2Up
IFwKIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT4ganNO
YW1lLCBsb3dlck5hbWUgIyMgQ29uc3RydWN0b3IsIERvbnRFbnVtKTsgXAogCiAgICAgRk9SX0VB
Q0hfU0lNUExFX0JVSUxUSU5fVFlQRV9XSVRIX0NPTlNUUlVDVE9SKFBVVF9DT05TVFJVQ1RPUl9G
T1JfU0lNUExFX1RZUEUpCkBAIC04MjAsMTQgKzgyMCwyOCBAQCBwdXREaXJlY3RXaXRob3V0VHJh
bnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+IGpzTmFtZSwgbG93ZXJOYW1lICMjIENvbnN0
cnVjdAogCiAjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQogICAgIGlmIChPcHRpb25zOjp1c2VXZWJB
c3NlbWJseSgpKSB7Ci0gICAgICAgIGF1dG8qIHdhc20gPSBXZWJBc3NlbWJseU9iamVjdDo6Y3Jl
YXRlKHZtLCB0aGlzLCBXZWJBc3NlbWJseU9iamVjdDo6Y3JlYXRlU3RydWN0dXJlKHZtLCB0aGlz
LCBtX29iamVjdFByb3RvdHlwZS5nZXQoKSkpOwotICAgICAgICBwdXREaXJlY3RXaXRob3V0VHJh
bnNpdGlvbih2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyhleGVjLCAiV2ViQXNzZW1ibHkiKSwg
d2FzbSwgRG9udEVudW0pOwotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8gZXh0cmFTdGF0aWNH
bG9iYWxzW10gPSB7Ci0jZGVmaW5lIFJFR0lTVEVSX1dBU01fQ09OU1RSVUNUT1JfQVNfR0xPQkFM
X1BST1BFUlRZKE5BTUUsIC4uLikgXAotICAgICAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZt
LnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLk5BTUUgIyMgUHJpdmF0ZU5hbWUoKSwgd2Fz
bS0+Z2V0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKGV4ZWMsICNOQU1FKSksIERv
bnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAgICAgIEZPUl9FQUNIX1dB
U01fQ09OU1RSVUNUT1JfUFJPUEVSVFkoUkVHSVNURVJfV0FTTV9DT05TVFJVQ1RPUl9BU19HTE9C
QUxfUFJPUEVSVFkpCi0gICAgICAgIH07Ci0gICAgICAgIGFkZFN0YXRpY0dsb2JhbHMoZXh0cmFT
dGF0aWNHbG9iYWxzLCBXVEZfQVJSQVlfTEVOR1RIKGV4dHJhU3RhdGljR2xvYmFscykpOworICAg
ICAgICBhdXRvKiB3ZWJBc3NlbWJseVByb3RvdHlwZSA9IFdlYkFzc2VtYmx5UHJvdG90eXBlOjpj
cmVhdGUodm0sIHRoaXMsIFdlYkFzc2VtYmx5UHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUodm0s
IHRoaXMsIG1fb2JqZWN0UHJvdG90eXBlLmdldCgpKSk7CisgICAgICAgIG1fd2ViQXNzZW1ibHlT
dHJ1Y3R1cmUuc2V0KHZtLCB0aGlzLCBKU1dlYkFzc2VtYmx5OjpjcmVhdGVTdHJ1Y3R1cmUodm0s
IHRoaXMsIHdlYkFzc2VtYmx5UHJvdG90eXBlKSk7CisgICAgICAgIGF1dG8qIHdlYkFzc2VtYmx5
ID0gSlNXZWJBc3NlbWJseTo6Y3JlYXRlKHZtLCB0aGlzLCBtX3dlYkFzc2VtYmx5U3RydWN0dXJl
LmdldCgpKTsKKyAgICAgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIElkZW50aWZp
ZXI6OmZyb21TdHJpbmcoZXhlYywgIldlYkFzc2VtYmx5IiksIHdlYkFzc2VtYmx5LCBEb250RW51
bSk7CisKKyNkZWZpbmUgQ1JFQVRFX1dFQkFTU0VNQkxZX0NPTlNUUlVDVE9SKGNhcGl0YWxOYW1l
LCBsb3dlck5hbWUsIHByb3Blck5hbWUsIGluc3RhbmNlVHlwZSwganNOYW1lLCBwcm90b3R5cGVC
YXNlKSBkbyB7IFwKKyAgICAgICAgdHlwZWRlZiBjYXBpdGFsTmFtZSAjIyBQcm90b3R5cGUgUHJv
dG90eXBlOyBcCisgICAgICAgIHR5cGVkZWYgY2FwaXRhbE5hbWUgIyMgQ29uc3RydWN0b3IgQ29u
c3RydWN0b3I7IFwKKyAgICAgICAgdHlwZWRlZiBKUyAjIyBjYXBpdGFsTmFtZSBKU09iajsgXAor
ICAgICAgICBhdXRvKiBiYXNlID0gbV8gIyMgcHJvdG90eXBlQmFzZSAjIyBQcm90b3R5cGUuZ2V0
KCk7IFwKKyAgICAgICAgYXV0byogcHJvdG90eXBlID0gUHJvdG90eXBlOjpjcmVhdGUodm0sIHRo
aXMsIFByb3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJlKHZtLCB0aGlzLCBiYXNlKSk7IFwKKyAgICAg
ICAgYXV0byogc3RydWN0dXJlID0gSlNPYmo6OmNyZWF0ZVN0cnVjdHVyZSh2bSwgdGhpcywgcHJv
dG90eXBlKTsgXAorICAgICAgICBhdXRvKiBjb25zdHJ1Y3RvciA9IENvbnN0cnVjdG9yOjpjcmVh
dGUodm0sIENvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUodm0sIHRoaXMsIHRoaXMtPmZ1bmN0
aW9uUHJvdG90eXBlKCkpLCBwcm90b3R5cGUsIHN0cnVjdHVyZSk7IFwKKyAgICAgICAgcHJvdG90
eXBlLT5wdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+Y29u
c3RydWN0b3IsIGNvbnN0cnVjdG9yLCBEb250RW51bSk7IFwKKyAgICAgICAgbV8gIyMgbG93ZXJO
YW1lICMjIFByb3RvdHlwZS5zZXQodm0sIHRoaXMsIHByb3RvdHlwZSk7IFwKKyAgICAgICAgbV8g
IyMgcHJvcGVyTmFtZSAjIyBTdHJ1Y3R1cmUuc2V0KHZtLCB0aGlzLCBzdHJ1Y3R1cmUpOyBcCisg
ICAgICAgIHdlYkFzc2VtYmx5LT5wdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgSWRlbnRp
Zmllcjo6ZnJvbVN0cmluZyh0aGlzLT5nbG9iYWxFeGVjKCksICNqc05hbWUpLCBjb25zdHJ1Y3Rv
ciwgRG9udEVudW0pOyBcCisgICAgfSB3aGlsZSAoMCk7CisKKyAgICAgICAgRk9SX0VBQ0hfV0VC
QVNTRU1CTFlfQ09OU1RSVUNUT1JfVFlQRShDUkVBVEVfV0VCQVNTRU1CTFlfQ09OU1RSVUNUT1Ip
CisKKyN1bmRlZiBDUkVBVEVfV0VCQVNTRU1CTFlfQ09OU1RSVUNUT1IKICAgICB9CiAjZW5kaWYg
Ly8gRU5BQkxFKFdFQkFTU0VNQkxZKQogCkBAIC0xMTQyLDE1ICsxMTU2LDIwIEBAIHZvaWQgSlNH
bG9iYWxPYmplY3Q6OnZpc2l0Q2hpbGRyZW4oSlNDZWxsKiBjZWxsLCBTbG90VmlzaXRvciYgdmlz
aXRvcikKICAgICB2aXNpdG9yLmFwcGVuZCgmdGhpc09iamVjdC0+bV9wcm94eVJldm9rZVN0cnVj
dHVyZSk7CiAgICAgdmlzaXRvci5hcHBlbmQoJnRoaXNPYmplY3QtPm1fbW9kdWxlTG9hZGVyU3Ry
dWN0dXJlKTsKIAotI2RlZmluZSBWSVNJVF9TSU1QTEVfVFlQRShDYXBpdGFsTmFtZSwgbG93ZXJO
YW1lLCBwcm9wZXJOYW1lLCBpbnN0YW5jZVR5cGUsIGpzTmFtZSkgXAorI2RlZmluZSBWSVNJVF9T
SU1QTEVfVFlQRShDYXBpdGFsTmFtZSwgbG93ZXJOYW1lLCBwcm9wZXJOYW1lLCBpbnN0YW5jZVR5
cGUsIGpzTmFtZSwgcHJvdG90eXBlQmFzZSkgXAogICAgIHZpc2l0b3IuYXBwZW5kKCZ0aGlzT2Jq
ZWN0LT5tXyAjIyBsb3dlck5hbWUgIyMgUHJvdG90eXBlKTsgXAogICAgIHZpc2l0b3IuYXBwZW5k
KCZ0aGlzT2JqZWN0LT5tXyAjIyBwcm9wZXJOYW1lICMjIFN0cnVjdHVyZSk7IFwKIAogICAgIEZP
Ul9FQUNIX1NJTVBMRV9CVUlMVElOX1RZUEUoVklTSVRfU0lNUExFX1RZUEUpCisgICAgCisjaWYg
RU5BQkxFKFdFQkFTU0VNQkxZKQorICAgIHZpc2l0b3IuYXBwZW5kKCZ0aGlzT2JqZWN0LT5tX3dl
YkFzc2VtYmx5U3RydWN0dXJlKTsKKyAgICBGT1JfRUFDSF9XRUJBU1NFTUJMWV9DT05TVFJVQ1RP
Ul9UWVBFKFZJU0lUX1NJTVBMRV9UWVBFKQorI2VuZGlmIC8vIEVOQUJMRShXRUJBU1NFTUJMWSkK
IAogI3VuZGVmIFZJU0lUX1NJTVBMRV9UWVBFCiAKLSNkZWZpbmUgVklTSVRfTEFaWV9UWVBFKENh
cGl0YWxOYW1lLCBsb3dlck5hbWUsIHByb3Blck5hbWUsIGluc3RhbmNlVHlwZSwganNOYW1lKSBc
CisjZGVmaW5lIFZJU0lUX0xBWllfVFlQRShDYXBpdGFsTmFtZSwgbG93ZXJOYW1lLCBwcm9wZXJO
YW1lLCBpbnN0YW5jZVR5cGUsIGpzTmFtZSwgcHJvdG90eXBlQmFzZSkgXAogICAgIHRoaXNPYmpl
Y3QtPm1fICMjIHByb3Blck5hbWUgIyMgU3RydWN0dXJlLnZpc2l0KHZpc2l0b3IpOwogICAgIAog
ICAgIEZPUl9FQUNIX0xBWllfQlVJTFRJTl9UWVBFKFZJU0lUX0xBWllfVFlQRSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oCmluZGV4IDI1YmRlMmIu
LjQwODQ2Y2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xv
YmFsT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxP
YmplY3QuaApAQCAtOTUsMTYgKzk1LDE2IEBAIGNsYXNzIFZhcmlhYmxlRW52aXJvbm1lbnQ7CiBz
dHJ1Y3QgQWN0aXZhdGlvblN0YWNrTm9kZTsKIHN0cnVjdCBIYXNoVGFibGU7CiAKLSNkZWZpbmUg
REVGSU5FX1NUQU5EQVJEX0JVSUxUSU4obWFjcm8sIHVwcGVyTmFtZSwgbG93ZXJOYW1lKSBtYWNy
byh1cHBlck5hbWUsIGxvd2VyTmFtZSwgbG93ZXJOYW1lLCBKUyAjIyB1cHBlck5hbWUsIHVwcGVy
TmFtZSkKKyNkZWZpbmUgREVGSU5FX1NUQU5EQVJEX0JVSUxUSU4obWFjcm8sIHVwcGVyTmFtZSwg
bG93ZXJOYW1lKSBtYWNybyh1cHBlck5hbWUsIGxvd2VyTmFtZSwgbG93ZXJOYW1lLCBKUyAjIyB1
cHBlck5hbWUsIHVwcGVyTmFtZSwgb2JqZWN0KQogCiAjZGVmaW5lIEZPUl9FQUNIX1NJTVBMRV9C
VUlMVElOX1RZUEVfV0lUSF9DT05TVFJVQ1RPUihtYWNybykgXAotICAgIG1hY3JvKFN0cmluZywg
c3RyaW5nLCBzdHJpbmdPYmplY3QsIFN0cmluZ09iamVjdCwgU3RyaW5nKSBcCi0gICAgbWFjcm8o
U3ltYm9sLCBzeW1ib2wsIHN5bWJvbE9iamVjdCwgU3ltYm9sT2JqZWN0LCBTeW1ib2wpIFwKLSAg
ICBtYWNybyhOdW1iZXIsIG51bWJlciwgbnVtYmVyT2JqZWN0LCBOdW1iZXJPYmplY3QsIE51bWJl
cikgXAotICAgIG1hY3JvKEVycm9yLCBlcnJvciwgZXJyb3IsIEVycm9ySW5zdGFuY2UsIEVycm9y
KSBcCi0gICAgbWFjcm8oTWFwLCBtYXAsIG1hcCwgSlNNYXAsIE1hcCkgXAotICAgIG1hY3JvKEpT
UHJvbWlzZSwgcHJvbWlzZSwgcHJvbWlzZSwgSlNQcm9taXNlLCBQcm9taXNlKSBcCi0gICAgbWFj
cm8oSlNBcnJheUJ1ZmZlciwgYXJyYXlCdWZmZXIsIGFycmF5QnVmZmVyLCBKU0FycmF5QnVmZmVy
LCBBcnJheUJ1ZmZlcikgXAorICAgIG1hY3JvKFN0cmluZywgc3RyaW5nLCBzdHJpbmdPYmplY3Qs
IFN0cmluZ09iamVjdCwgU3RyaW5nLCBvYmplY3QpIFwKKyAgICBtYWNybyhTeW1ib2wsIHN5bWJv
bCwgc3ltYm9sT2JqZWN0LCBTeW1ib2xPYmplY3QsIFN5bWJvbCwgb2JqZWN0KSBcCisgICAgbWFj
cm8oTnVtYmVyLCBudW1iZXIsIG51bWJlck9iamVjdCwgTnVtYmVyT2JqZWN0LCBOdW1iZXIsIG9i
amVjdCkgXAorICAgIG1hY3JvKEVycm9yLCBlcnJvciwgZXJyb3IsIEVycm9ySW5zdGFuY2UsIEVy
cm9yLCBvYmplY3QpIFwKKyAgICBtYWNybyhNYXAsIG1hcCwgbWFwLCBKU01hcCwgTWFwLCBvYmpl
Y3QpIFwKKyAgICBtYWNybyhKU1Byb21pc2UsIHByb21pc2UsIHByb21pc2UsIEpTUHJvbWlzZSwg
UHJvbWlzZSwgb2JqZWN0KSBcCisgICAgbWFjcm8oSlNBcnJheUJ1ZmZlciwgYXJyYXlCdWZmZXIs
IGFycmF5QnVmZmVyLCBKU0FycmF5QnVmZmVyLCBBcnJheUJ1ZmZlciwgb2JqZWN0KSBcCiAKICNk
ZWZpbmUgRk9SX0VBQ0hfQlVJTFRJTl9ERVJJVkVEX0lURVJBVE9SX1RZUEUobWFjcm8pIFwKICAg
ICBERUZJTkVfU1RBTkRBUkRfQlVJTFRJTihtYWNybywgTWFwSXRlcmF0b3IsIG1hcEl0ZXJhdG9y
KSBcCkBAIC0xMTcsMTYgKzExNywyOCBAQCBzdHJ1Y3QgSGFzaFRhYmxlOwogCiAjZGVmaW5lIEZP
Ul9FQUNIX1NJTVBMRV9CVUlMVElOX1RZUEUobWFjcm8pIFwKICAgICBGT1JfRUFDSF9TSU1QTEVf
QlVJTFRJTl9UWVBFX1dJVEhfQ09OU1RSVUNUT1IobWFjcm8pIFwKLSAgICBtYWNybyhKU0ludGVy
bmFsUHJvbWlzZSwgaW50ZXJuYWxQcm9taXNlLCBpbnRlcm5hbFByb21pc2UsIEpTSW50ZXJuYWxQ
cm9taXNlLCBJbnRlcm5hbFByb21pc2UpIFwKKyAgICBtYWNybyhKU0ludGVybmFsUHJvbWlzZSwg
aW50ZXJuYWxQcm9taXNlLCBpbnRlcm5hbFByb21pc2UsIEpTSW50ZXJuYWxQcm9taXNlLCBJbnRl
cm5hbFByb21pc2UsIG9iamVjdCkgXAogCiAjZGVmaW5lIEZPUl9FQUNIX0xBWllfQlVJTFRJTl9U
WVBFKG1hY3JvKSBcCi0gICAgbWFjcm8oU2V0LCBzZXQsIHNldCwgSlNTZXQsIFNldCkgXAotICAg
IG1hY3JvKERhdGUsIGRhdGUsIGRhdGUsIERhdGVJbnN0YW5jZSwgRGF0ZSkgXAotICAgIG1hY3Jv
KEJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW5PYmplY3QsIEJvb2xlYW5PYmplY3QsIEJvb2xlYW4p
IFwKKyAgICBtYWNybyhTZXQsIHNldCwgc2V0LCBKU1NldCwgU2V0LCBvYmplY3QpIFwKKyAgICBt
YWNybyhEYXRlLCBkYXRlLCBkYXRlLCBEYXRlSW5zdGFuY2UsIERhdGUsIG9iamVjdCkgXAorICAg
IG1hY3JvKEJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW5PYmplY3QsIEJvb2xlYW5PYmplY3QsIEJv
b2xlYW4sIG9iamVjdCkgXAogICAgIERFRklORV9TVEFOREFSRF9CVUlMVElOKG1hY3JvLCBXZWFr
TWFwLCB3ZWFrTWFwKSBcCiAgICAgREVGSU5FX1NUQU5EQVJEX0JVSUxUSU4obWFjcm8sIFdlYWtT
ZXQsIHdlYWtTZXQpIFwKIAotI2RlZmluZSBERUNMQVJFX1NJTVBMRV9CVUlMVElOX1RZUEUoY2Fw
aXRhbE5hbWUsIGxvd2VyTmFtZSwgcHJvcGVyTmFtZSwgaW5zdGFuY2VUeXBlLCBqc05hbWUpIFwK
KyNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCisjZGVmaW5lIEZPUl9FQUNIX1dFQkFTU0VNQkxZX0NP
TlNUUlVDVE9SX1RZUEUobWFjcm8pIFwKKyAgICBtYWNybyhXZWJBc3NlbWJseUNvbXBpbGVFcnJv
ciwgd2ViQXNzZW1ibHlDb21waWxlRXJyb3IsIFdlYkFzc2VtYmx5Q29tcGlsZUVycm9yLCBXZWJB
c3NlbWJseUNvbXBpbGVFcnJvciwgQ29tcGlsZUVycm9yLCBlcnJvcikgXAorICAgIG1hY3JvKFdl
YkFzc2VtYmx5SW5zdGFuY2UsICAgICB3ZWJBc3NlbWJseUluc3RhbmNlLCAgICAgV2ViQXNzZW1i
bHlJbnN0YW5jZSwgICAgIFdlYkFzc2VtYmx5SW5zdGFuY2UsICAgICBJbnN0YW5jZSwgICAgIG9i
amVjdCkgXAorICAgIG1hY3JvKFdlYkFzc2VtYmx5TWVtb3J5LCAgICAgICB3ZWJBc3NlbWJseU1l
bW9yeSwgICAgICAgV2ViQXNzZW1ibHlNZW1vcnksICAgICAgIFdlYkFzc2VtYmx5TWVtb3J5LCAg
ICAgICBNZW1vcnksICAgICAgIG9iamVjdCkgXAorICAgIG1hY3JvKFdlYkFzc2VtYmx5TW9kdWxl
LCAgICAgICB3ZWJBc3NlbWJseU1vZHVsZSwgICAgICAgV2ViQXNzZW1ibHlNb2R1bGUsICAgICAg
IFdlYkFzc2VtYmx5TW9kdWxlLCAgICAgICBNb2R1bGUsICAgICAgIG9iamVjdCkgXAorICAgIG1h
Y3JvKFdlYkFzc2VtYmx5UnVudGltZUVycm9yLCB3ZWJBc3NlbWJseVJ1bnRpbWVFcnJvciwgV2Vi
QXNzZW1ibHlSdW50aW1lRXJyb3IsIFdlYkFzc2VtYmx5UnVudGltZUVycm9yLCBSdW50aW1lRXJy
b3IsIGVycm9yKSBcCisgICAgbWFjcm8oV2ViQXNzZW1ibHlUYWJsZSwgICAgICAgIHdlYkFzc2Vt
Ymx5VGFibGUsICAgICAgICBXZWJBc3NlbWJseVRhYmxlLCAgICAgICAgV2ViQXNzZW1ibHlUYWJs
ZSwgICAgICAgIFRhYmxlLCAgICAgICAgb2JqZWN0KQorI2Vsc2UKKyNkZWZpbmUgRk9SX0VBQ0hf
V0VCQVNTRU1CTFlfQ09OU1RSVUNUT1JfVFlQRShtYWNybykKKyNlbmRpZiAvLyBFTkFCTEUoV0VC
QVNTRU1CTFkpCisKKyNkZWZpbmUgREVDTEFSRV9TSU1QTEVfQlVJTFRJTl9UWVBFKGNhcGl0YWxO
YW1lLCBsb3dlck5hbWUsIHByb3Blck5hbWUsIGluc3RhbmNlVHlwZSwganNOYW1lLCBwcm90b3R5
cGVCYXNlKSBcCiAgICAgY2xhc3MgSlMgIyMgY2FwaXRhbE5hbWU7IFwKICAgICBjbGFzcyBjYXBp
dGFsTmFtZSAjIyBQcm90b3R5cGU7IFwKICAgICBjbGFzcyBjYXBpdGFsTmFtZSAjIyBDb25zdHJ1
Y3RvcjsKQEAgLTEzNSw2ICsxNDcsNyBAQCBjbGFzcyBJdGVyYXRvclByb3RvdHlwZTsKIEZPUl9F
QUNIX1NJTVBMRV9CVUlMVElOX1RZUEUoREVDTEFSRV9TSU1QTEVfQlVJTFRJTl9UWVBFKQogRk9S
X0VBQ0hfTEFaWV9CVUlMVElOX1RZUEUoREVDTEFSRV9TSU1QTEVfQlVJTFRJTl9UWVBFKQogRk9S
X0VBQ0hfQlVJTFRJTl9ERVJJVkVEX0lURVJBVE9SX1RZUEUoREVDTEFSRV9TSU1QTEVfQlVJTFRJ
Tl9UWVBFKQorRk9SX0VBQ0hfV0VCQVNTRU1CTFlfQ09OU1RSVUNUT1JfVFlQRShERUNMQVJFX1NJ
TVBMRV9CVUlMVElOX1RZUEUpCiAKICN1bmRlZiBERUNMQVJFX1NJTVBMRV9CVUlMVElOX1RZUEUK
IApAQCAtMzA1LDIwICszMTgsMjUgQEAgcHVibGljOgogICAgIFdyaXRlQmFycmllcjxTdHJ1Y3R1
cmU+IG1fcHJveHlSZXZva2VTdHJ1Y3R1cmU7CiAgICAgV3JpdGVCYXJyaWVyPFN0cnVjdHVyZT4g
bV9tb2R1bGVMb2FkZXJTdHJ1Y3R1cmU7CiAKLSNkZWZpbmUgREVGSU5FX1NUT1JBR0VfRk9SX1NJ
TVBMRV9UWVBFKGNhcGl0YWxOYW1lLCBsb3dlck5hbWUsIHByb3Blck5hbWUsIGluc3RhbmNlVHlw
ZSwganNOYW1lKSBcCisjZGVmaW5lIERFRklORV9TVE9SQUdFX0ZPUl9TSU1QTEVfVFlQRShjYXBp
dGFsTmFtZSwgbG93ZXJOYW1lLCBwcm9wZXJOYW1lLCBpbnN0YW5jZVR5cGUsIGpzTmFtZSwgcHJv
dG90eXBlQmFzZSkgXAogICAgIFdyaXRlQmFycmllcjxjYXBpdGFsTmFtZSAjIyBQcm90b3R5cGU+
IG1fICMjIGxvd2VyTmFtZSAjIyBQcm90b3R5cGU7IFwKICAgICBXcml0ZUJhcnJpZXI8U3RydWN0
dXJlPiBtXyAjIyBwcm9wZXJOYW1lICMjIFN0cnVjdHVyZTsKIAogICAgIEZPUl9FQUNIX1NJTVBM
RV9CVUlMVElOX1RZUEUoREVGSU5FX1NUT1JBR0VfRk9SX1NJTVBMRV9UWVBFKQorICAgIAorI2lm
IEVOQUJMRShXRUJBU1NFTUJMWSkKKyAgICBXcml0ZUJhcnJpZXI8U3RydWN0dXJlPiBtX3dlYkFz
c2VtYmx5U3RydWN0dXJlOworICAgIEZPUl9FQUNIX1dFQkFTU0VNQkxZX0NPTlNUUlVDVE9SX1RZ
UEUoREVGSU5FX1NUT1JBR0VfRk9SX1NJTVBMRV9UWVBFKQorI2VuZGlmIC8vIEVOQUJMRShXRUJB
U1NFTUJMWSkKIAogI3VuZGVmIERFRklORV9TVE9SQUdFX0ZPUl9TSU1QTEVfVFlQRQogCi0jZGVm
aW5lIERFRklORV9TVE9SQUdFX0ZPUl9JVEVSQVRPUl9UWVBFKGNhcGl0YWxOYW1lLCBsb3dlck5h
bWUsIHByb3Blck5hbWUsIGluc3RhbmNlVHlwZSwganNOYW1lKSBcCisjZGVmaW5lIERFRklORV9T
VE9SQUdFX0ZPUl9JVEVSQVRPUl9UWVBFKGNhcGl0YWxOYW1lLCBsb3dlck5hbWUsIHByb3Blck5h
bWUsIGluc3RhbmNlVHlwZSwganNOYW1lLCBwcm90b3R5cGVCYXNlKSBcCiAgICAgTGF6eVByb3Bl
cnR5PEpTR2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmU+IG1fICMjIHByb3Blck5hbWUgIyMgU3RydWN0
dXJlOwogICAgIEZPUl9FQUNIX0JVSUxUSU5fREVSSVZFRF9JVEVSQVRPUl9UWVBFKERFRklORV9T
VE9SQUdFX0ZPUl9JVEVSQVRPUl9UWVBFKQogI3VuZGVmIERFRklORV9TVE9SQUdFX0ZPUl9JVEVS
QVRPUl9UWVBFCiAgICAgCi0jZGVmaW5lIERFRklORV9TVE9SQUdFX0ZPUl9MQVpZX1RZUEUoY2Fw
aXRhbE5hbWUsIGxvd2VyTmFtZSwgcHJvcGVyTmFtZSwgaW5zdGFuY2VUeXBlLCBqc05hbWUpIFwK
KyNkZWZpbmUgREVGSU5FX1NUT1JBR0VfRk9SX0xBWllfVFlQRShjYXBpdGFsTmFtZSwgbG93ZXJO
YW1lLCBwcm9wZXJOYW1lLCBpbnN0YW5jZVR5cGUsIGpzTmFtZSwgcHJvdG90eXBlQmFzZSkgXAog
ICAgIExhenlDbGFzc1N0cnVjdHVyZSBtXyAjIyBwcm9wZXJOYW1lICMjIFN0cnVjdHVyZTsKICAg
ICBGT1JfRUFDSF9MQVpZX0JVSUxUSU5fVFlQRShERUZJTkVfU1RPUkFHRV9GT1JfTEFaWV9UWVBF
KQogI3VuZGVmIERFRklORV9TVE9SQUdFX0ZPUl9MQVpZX1RZUEUKQEAgLTYwNiwyMSArNjI0LDIy
IEBAIHB1YmxpYzoKIAogICAgIEpTQXJyYXlCdWZmZXJQcm90b3R5cGUqIGFycmF5QnVmZmVyUHJv
dG90eXBlKCkgY29uc3QgeyByZXR1cm4gbV9hcnJheUJ1ZmZlclByb3RvdHlwZS5nZXQoKTsgfQog
Ci0jZGVmaW5lIERFRklORV9BQ0NFU1NPUlNfRk9SX1NJTVBMRV9UWVBFKGNhcGl0YWxOYW1lLCBs
b3dlck5hbWUsIHByb3Blck5hbWUsIGluc3RhbmNlVHlwZSwganNOYW1lKSBcCisjZGVmaW5lIERF
RklORV9BQ0NFU1NPUlNfRk9SX1NJTVBMRV9UWVBFKGNhcGl0YWxOYW1lLCBsb3dlck5hbWUsIHBy
b3Blck5hbWUsIGluc3RhbmNlVHlwZSwganNOYW1lLCBwcm90b3R5cGVCYXNlKSBcCiAgICAgU3Ry
dWN0dXJlKiBwcm9wZXJOYW1lICMjIFN0cnVjdHVyZSgpIHsgcmV0dXJuIG1fICMjIHByb3Blck5h
bWUgIyMgU3RydWN0dXJlLmdldCgpOyB9CiAKICAgICBGT1JfRUFDSF9TSU1QTEVfQlVJTFRJTl9U
WVBFKERFRklORV9BQ0NFU1NPUlNfRk9SX1NJTVBMRV9UWVBFKQorICAgIEZPUl9FQUNIX1dFQkFT
U0VNQkxZX0NPTlNUUlVDVE9SX1RZUEUoREVGSU5FX0FDQ0VTU09SU19GT1JfU0lNUExFX1RZUEUp
CiAKICN1bmRlZiBERUZJTkVfQUNDRVNTT1JTX0ZPUl9TSU1QTEVfVFlQRQogCi0jZGVmaW5lIERF
RklORV9BQ0NFU1NPUlNfRk9SX0lURVJBVE9SX1RZUEUoY2FwaXRhbE5hbWUsIGxvd2VyTmFtZSwg
cHJvcGVyTmFtZSwgaW5zdGFuY2VUeXBlLCBqc05hbWUpIFwKKyNkZWZpbmUgREVGSU5FX0FDQ0VT
U09SU19GT1JfSVRFUkFUT1JfVFlQRShjYXBpdGFsTmFtZSwgbG93ZXJOYW1lLCBwcm9wZXJOYW1l
LCBpbnN0YW5jZVR5cGUsIGpzTmFtZSwgcHJvdG90eXBlQmFzZSkgXAogICAgIFN0cnVjdHVyZSog
cHJvcGVyTmFtZSAjIyBTdHJ1Y3R1cmUoKSB7IHJldHVybiBtXyAjIyBwcm9wZXJOYW1lICMjIFN0
cnVjdHVyZS5nZXQodGhpcyk7IH0KIAogICAgIEZPUl9FQUNIX0JVSUxUSU5fREVSSVZFRF9JVEVS
QVRPUl9UWVBFKERFRklORV9BQ0NFU1NPUlNfRk9SX0lURVJBVE9SX1RZUEUpCiAKICN1bmRlZiBE
RUZJTkVfQUNDRVNTT1JTX0ZPUl9JVEVSQVRPUl9UWVBFCiAKLSNkZWZpbmUgREVGSU5FX0FDQ0VT
U09SU19GT1JfTEFaWV9UWVBFKGNhcGl0YWxOYW1lLCBsb3dlck5hbWUsIHByb3Blck5hbWUsIGlu
c3RhbmNlVHlwZSwganNOYW1lKSBcCisjZGVmaW5lIERFRklORV9BQ0NFU1NPUlNfRk9SX0xBWllf
VFlQRShjYXBpdGFsTmFtZSwgbG93ZXJOYW1lLCBwcm9wZXJOYW1lLCBpbnN0YW5jZVR5cGUsIGpz
TmFtZSwgcHJvdG90eXBlQmFzZSkgXAogICAgIFN0cnVjdHVyZSogcHJvcGVyTmFtZSAjIyBTdHJ1
Y3R1cmUoKSB7IHJldHVybiBtXyAjIyBwcm9wZXJOYW1lICMjIFN0cnVjdHVyZS5nZXQodGhpcyk7
IH0KIAogICAgIEZPUl9FQUNIX0xBWllfQlVJTFRJTl9UWVBFKERFRklORV9BQ0NFU1NPUlNfRk9S
X0xBWllfVFlQRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL0pTV2Vi
QXNzZW1ibHkuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vSlNXZWJBc3NlbWJseS5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2EzZDdhYwotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL0pTV2ViQXNzZW1ibHkuY3BwCkBA
IC0wLDAgKzEsNjUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSlNXZWJBc3NlbWJseS5oIgorCisj
aWYgRU5BQkxFKFdFQkFTU0VNQkxZKQorCisjaW5jbHVkZSAiRnVuY3Rpb25Qcm90b3R5cGUuaCIK
KyNpbmNsdWRlICJKU0NJbmxpbmVzLmgiCisKK25hbWVzcGFjZSBKU0MgeworCitTVEFUSUNfQVNT
RVJUX0lTX1RSSVZJQUxMWV9ERVNUUlVDVElCTEUoSlNXZWJBc3NlbWJseSk7CisKK2NvbnN0IENs
YXNzSW5mbyBKU1dlYkFzc2VtYmx5OjpzX2luZm8gPSB7ICJXZWJBc3NlbWJseSIsICZCYXNlOjpz
X2luZm8sIDAsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNXZWJBc3NlbWJseSkgfTsKKworSlNXZWJB
c3NlbWJseSogSlNXZWJBc3NlbWJseTo6Y3JlYXRlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCit7CisgICAgYXV0byogb2JqZWN0ID0g
bmV3IChOb3ROdWxsLCBhbGxvY2F0ZUNlbGw8SlNXZWJBc3NlbWJseT4odm0uaGVhcCkpIEpTV2Vi
QXNzZW1ibHkodm0sIHN0cnVjdHVyZSk7CisgICAgb2JqZWN0LT5maW5pc2hDcmVhdGlvbih2bSwg
Z2xvYmFsT2JqZWN0KTsKKyAgICByZXR1cm4gb2JqZWN0OworfQorCitTdHJ1Y3R1cmUqIEpTV2Vi
QXNzZW1ibHk6OmNyZWF0ZVN0cnVjdHVyZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKQoreworICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0
ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVj
dHVyZUZsYWdzKSwgaW5mbygpKTsKK30KKwordm9pZCBKU1dlYkFzc2VtYmx5OjpmaW5pc2hDcmVh
dGlvbihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KikKK3sKKyAgICBCYXNlOjpmaW5pc2hDcmVhdGlv
bih2bSk7CisgICAgQVNTRVJUKGluaGVyaXRzKGluZm8oKSkpOworfQorCitKU1dlYkFzc2VtYmx5
OjpKU1dlYkFzc2VtYmx5KFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCisgICAgOiBKU05v
bkZpbmFsT2JqZWN0KHZtLCBzdHJ1Y3R1cmUpCit7Cit9CisKK30gLy8gbmFtZXNwYWNlIEpTQwor
CisjZW5kaWYgLy8gRU5BQkxFKFdFQkFTU0VNQkxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vSlNXZWJBc3NlbWJseS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vSlNXZWJBc3NlbWJseS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU3
MWExNWEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9KU1dl
YkFzc2VtYmx5LmgKQEAgLTAsMCArMSw3MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZ
KQorCisjaW5jbHVkZSAiSlNPYmplY3QuaCIKKyNpbmNsdWRlICJqcy9KU1dlYkFzc2VtYmx5Q29t
cGlsZUVycm9yLmgiCisjaW5jbHVkZSAianMvSlNXZWJBc3NlbWJseUluc3RhbmNlLmgiCisjaW5j
bHVkZSAianMvSlNXZWJBc3NlbWJseU1lbW9yeS5oIgorI2luY2x1ZGUgImpzL0pTV2ViQXNzZW1i
bHlNb2R1bGUuaCIKKyNpbmNsdWRlICJqcy9KU1dlYkFzc2VtYmx5UnVudGltZUVycm9yLmgiCisj
aW5jbHVkZSAianMvSlNXZWJBc3NlbWJseVRhYmxlLmgiCisjaW5jbHVkZSAianMvV2ViQXNzZW1i
bHlDb21waWxlRXJyb3JDb25zdHJ1Y3Rvci5oIgorI2luY2x1ZGUgImpzL1dlYkFzc2VtYmx5Q29t
cGlsZUVycm9yUHJvdG90eXBlLmgiCisjaW5jbHVkZSAianMvV2ViQXNzZW1ibHlJbnN0YW5jZUNv
bnN0cnVjdG9yLmgiCisjaW5jbHVkZSAianMvV2ViQXNzZW1ibHlJbnN0YW5jZVByb3RvdHlwZS5o
IgorI2luY2x1ZGUgImpzL1dlYkFzc2VtYmx5TWVtb3J5Q29uc3RydWN0b3IuaCIKKyNpbmNsdWRl
ICJqcy9XZWJBc3NlbWJseU1lbW9yeVByb3RvdHlwZS5oIgorI2luY2x1ZGUgImpzL1dlYkFzc2Vt
Ymx5TW9kdWxlQ29uc3RydWN0b3IuaCIKKyNpbmNsdWRlICJqcy9XZWJBc3NlbWJseU1vZHVsZVBy
b3RvdHlwZS5oIgorI2luY2x1ZGUgImpzL1dlYkFzc2VtYmx5UHJvdG90eXBlLmgiCisjaW5jbHVk
ZSAianMvV2ViQXNzZW1ibHlSdW50aW1lRXJyb3JDb25zdHJ1Y3Rvci5oIgorI2luY2x1ZGUgImpz
L1dlYkFzc2VtYmx5UnVudGltZUVycm9yUHJvdG90eXBlLmgiCisjaW5jbHVkZSAianMvV2ViQXNz
ZW1ibHlUYWJsZUNvbnN0cnVjdG9yLmgiCisjaW5jbHVkZSAianMvV2ViQXNzZW1ibHlUYWJsZVBy
b3RvdHlwZS5oIgorCituYW1lc3BhY2UgSlNDIHsKKworY2xhc3MgSlNXZWJBc3NlbWJseSA6IHB1
YmxpYyBKU05vbkZpbmFsT2JqZWN0IHsKK3B1YmxpYzoKKyAgICB0eXBlZGVmIEpTTm9uRmluYWxP
YmplY3QgQmFzZTsKKworICAgIHN0YXRpYyBKU1dlYkFzc2VtYmx5KiBjcmVhdGUoVk0mLCBKU0ds
b2JhbE9iamVjdCosIFN0cnVjdHVyZSopOworICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0
cnVjdHVyZShWTSYsIEpTR2xvYmFsT2JqZWN0KiwgSlNWYWx1ZSk7CisKKyAgICBERUNMQVJFX0lO
Rk87CisKK3Byb3RlY3RlZDoKKyAgICB2b2lkIGZpbmlzaENyZWF0aW9uKFZNJiwgSlNHbG9iYWxP
YmplY3QqKTsKKworcHJpdmF0ZToKKyAgICBKU1dlYkFzc2VtYmx5KFZNJiwgU3RydWN0dXJlKik7
Cit9OworCit9IC8vIG5hbWVzcGFjZSBKU0MKKworI2VuZGlmIC8vIEVOQUJMRShXRUJBU1NFTUJM
WSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dlYkFzc2VtYmx5T2Jq
ZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dlYkFzc2VtYmx5T2JqZWN0LmNw
cApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTM3MmZiNC4uMDAwMDAwMAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XZWJBc3NlbWJseU9iamVjdC5jcHAKKysrIC9kZXYv
bnVsbApAQCAtMSwxMTMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
LSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQot
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJXZWJBc3NlbWJseU9i
amVjdC5oIgotCi0jaW5jbHVkZSAiRnVuY3Rpb25Qcm90b3R5cGUuaCIKLSNpbmNsdWRlICJKU0NJ
bmxpbmVzLmgiCi0jaW5jbHVkZSAianMvSlNXZWJBc3NlbWJseUNvbXBpbGVFcnJvci5oIgotI2lu
Y2x1ZGUgImpzL0pTV2ViQXNzZW1ibHlJbnN0YW5jZS5oIgotI2luY2x1ZGUgImpzL0pTV2ViQXNz
ZW1ibHlNZW1vcnkuaCIKLSNpbmNsdWRlICJqcy9KU1dlYkFzc2VtYmx5TW9kdWxlLmgiCi0jaW5j
bHVkZSAianMvSlNXZWJBc3NlbWJseVJ1bnRpbWVFcnJvci5oIgotI2luY2x1ZGUgImpzL0pTV2Vi
QXNzZW1ibHlUYWJsZS5oIgotI2luY2x1ZGUgImpzL1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yQ29u
c3RydWN0b3IuaCIKLSNpbmNsdWRlICJqcy9XZWJBc3NlbWJseUNvbXBpbGVFcnJvclByb3RvdHlw
ZS5oIgotI2luY2x1ZGUgImpzL1dlYkFzc2VtYmx5SW5zdGFuY2VDb25zdHJ1Y3Rvci5oIgotI2lu
Y2x1ZGUgImpzL1dlYkFzc2VtYmx5SW5zdGFuY2VQcm90b3R5cGUuaCIKLSNpbmNsdWRlICJqcy9X
ZWJBc3NlbWJseU1lbW9yeUNvbnN0cnVjdG9yLmgiCi0jaW5jbHVkZSAianMvV2ViQXNzZW1ibHlN
ZW1vcnlQcm90b3R5cGUuaCIKLSNpbmNsdWRlICJqcy9XZWJBc3NlbWJseU1vZHVsZUNvbnN0cnVj
dG9yLmgiCi0jaW5jbHVkZSAianMvV2ViQXNzZW1ibHlNb2R1bGVQcm90b3R5cGUuaCIKLSNpbmNs
dWRlICJqcy9XZWJBc3NlbWJseVJ1bnRpbWVFcnJvckNvbnN0cnVjdG9yLmgiCi0jaW5jbHVkZSAi
anMvV2ViQXNzZW1ibHlSdW50aW1lRXJyb3JQcm90b3R5cGUuaCIKLSNpbmNsdWRlICJqcy9XZWJB
c3NlbWJseVRhYmxlQ29uc3RydWN0b3IuaCIKLSNpbmNsdWRlICJqcy9XZWJBc3NlbWJseVRhYmxl
UHJvdG90eXBlLmgiCi0KLW5hbWVzcGFjZSBKU0MgewotCi1TVEFUSUNfQVNTRVJUX0lTX1RSSVZJ
QUxMWV9ERVNUUlVDVElCTEUoV2ViQXNzZW1ibHlPYmplY3QpOwotCi0jZGVmaW5lIERFQ0xBUkVf
V0FTTV9PQkpFQ1RfRlVOQ1RJT04oTkFNRSwgLi4uKSBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIHdhc21PYmplY3RGdW5jICMjIE5BTUUoRXhlY1N0YXRlKik7Ci1GT1JfRUFDSF9XQVNNX0ZV
TkNUSU9OX1BST1BFUlRZKERFQ0xBUkVfV0FTTV9PQkpFQ1RfRlVOQ1RJT04pCi0KLWNvbnN0IENs
YXNzSW5mbyBXZWJBc3NlbWJseU9iamVjdDo6c19pbmZvID0geyAiV2ViQXNzZW1ibHkiLCAmQmFz
ZTo6c19pbmZvLCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxFKFdlYkFzc2VtYmx5T2JqZWN0KSB9Owot
Ci1XZWJBc3NlbWJseU9iamVjdCogV2ViQXNzZW1ibHlPYmplY3Q6OmNyZWF0ZShWTSYgdm0sIEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlKQotewotICAg
IGF1dG8qIG9iamVjdCA9IG5ldyAoTm90TnVsbCwgYWxsb2NhdGVDZWxsPFdlYkFzc2VtYmx5T2Jq
ZWN0Pih2bS5oZWFwKSkgV2ViQXNzZW1ibHlPYmplY3Qodm0sIHN0cnVjdHVyZSk7Ci0gICAgb2Jq
ZWN0LT5maW5pc2hDcmVhdGlvbih2bSwgZ2xvYmFsT2JqZWN0KTsKLSAgICByZXR1cm4gb2JqZWN0
OwotfQotCi1TdHJ1Y3R1cmUqIFdlYkFzc2VtYmx5T2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUoVk0m
IHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkKLXsK
LSAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBl
LCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7Ci19Ci0KLXZv
aWQgV2ViQXNzZW1ibHlPYmplY3Q6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCkKLXsKLSAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7Ci0gICAg
QVNTRVJUKGluaGVyaXRzKGluZm8oKSkpOwotCi0jZGVmaW5lIFNFVF9VUF9XQVNNX0NPTlNUUlVD
VE9SX1BST1BFUlRZKE5BTUUsIC4uLikgXAotICAgIGF1dG8qIHByb3RvdHlwZSAjIyBOQU1FID0g
V2ViQXNzZW1ibHkgIyMgTkFNRSAjIyBQcm90b3R5cGU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0
LCBXZWJBc3NlbWJseSAjIyBOQU1FICMjIFByb3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJlKHZtLCBn
bG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdC0+b2JqZWN0UHJvdG90eXBlKCkpKTsgXAotICAgIGF1
dG8qIHN0cnVjdHVyZSAjIyBOQU1FID0gSlNXZWJBc3NlbWJseSAjIyBOQU1FOjpjcmVhdGVTdHJ1
Y3R1cmUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlICMjIE5BTUUpOyBcCi0gICAgYXV0byog
Y29uc3RydWN0b3IgIyMgTkFNRSA9IFdlYkFzc2VtYmx5ICMjIE5BTUUgIyMgQ29uc3RydWN0b3I6
OmNyZWF0ZSh2bSwgV2ViQXNzZW1ibHkgIyMgTkFNRSAjIyBDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3Ry
dWN0dXJlKHZtLCBnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdC0+ZnVuY3Rpb25Qcm90b3R5cGUo
KSksIHByb3RvdHlwZSAjIyBOQU1FLCBzdHJ1Y3R1cmUgIyMgTkFNRSk7IFwKLSAgICBwcm90b3R5
cGUgIyMgTkFNRS0+cHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFt
ZXMtPmNvbnN0cnVjdG9yLCBjb25zdHJ1Y3RvciAjIyBOQU1FLCBEb250RW51bSk7Ci0gICAgRk9S
X0VBQ0hfV0FTTV9DT05TVFJVQ1RPUl9QUk9QRVJUWShTRVRfVVBfV0FTTV9DT05TVFJVQ1RPUl9Q
Uk9QRVJUWSkKLQotI2RlZmluZSBSRUdJU1RFUl9XQVNNX0NPTlNUUlVDVE9SX1BST1BFUlRZKE5B
TUUsIC4uLikgXAotICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCBJZGVudGlmaWVy
Ojpmcm9tU3RyaW5nKGdsb2JhbE9iamVjdC0+Z2xvYmFsRXhlYygpLCAjTkFNRSksIGNvbnN0cnVj
dG9yICMjIE5BTUUsIERvbnRFbnVtKTsKLSAgICBGT1JfRUFDSF9XQVNNX0NPTlNUUlVDVE9SX1BS
T1BFUlRZKFJFR0lTVEVSX1dBU01fQ09OU1RSVUNUT1JfUFJPUEVSVFkpCi0KLSNkZWZpbmUgUkVH
SVNURVJfV0FTTV9GVU5DVElPTl9QUk9QRVJUWShOQU1FLCBMRU5HVEgpIFwKLSAgICBwdXREaXJl
Y3ROYXRpdmVGdW5jdGlvbih2bSwgZ2xvYmFsT2JqZWN0LCBJZGVudGlmaWVyOjpmcm9tU3RyaW5n
KCZ2bSwgI05BTUUpLCBMRU5HVEgsIHdhc21PYmplY3RGdW5jICMjIE5BTUUsIE5vSW50cmluc2lj
LCBEb250RW51bSk7Ci0gICAgRk9SX0VBQ0hfV0FTTV9GVU5DVElPTl9QUk9QRVJUWShSRUdJU1RF
Ul9XQVNNX0ZVTkNUSU9OX1BST1BFUlRZKQotfQotCi1XZWJBc3NlbWJseU9iamVjdDo6V2ViQXNz
ZW1ibHlPYmplY3QoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKLSAgICA6IEpTTm9uRmlu
YWxPYmplY3Qodm0sIHN0cnVjdHVyZSkKLXsKLX0KLQotLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tIEZ1bmN0aW9ucyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi1F
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHdhc21PYmplY3RGdW5jdmFsaWRhdGUoRXhlY1N0
YXRlKiBzdGF0ZSkKLXsKLSAgICBWTSYgdm0gPSBzdGF0ZS0+dm0oKTsKLSAgICBhdXRvIHNjb3Bl
ID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZSh0
aHJvd0V4Y2VwdGlvbihzdGF0ZSwgc2NvcGUsIGNyZWF0ZUVycm9yKHN0YXRlLCBBU0NJSUxpdGVy
YWwoIldlYkFzc2VtYmx5IGRvZXNuJ3QgeWV0IGltcGxlbWVudCB0aGUgdmFsaWRhdGUgZnVuY3Rp
b24gcHJvcGVydHkiKSkpKTsKLX0KLQotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCB3YXNt
T2JqZWN0RnVuY2NvbXBpbGUoRXhlY1N0YXRlKiBzdGF0ZSkKLXsKLSAgICBWTSYgdm0gPSBzdGF0
ZS0+dm0oKTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZSh0aHJvd0V4Y2VwdGlvbihzdGF0ZSwgc2NvcGUsIGNyZWF0
ZUVycm9yKHN0YXRlLCBBU0NJSUxpdGVyYWwoIldlYkFzc2VtYmx5IGRvZXNuJ3QgeWV0IGltcGxl
bWVudCB0aGUgY29tcGlsZSBmdW5jdGlvbiBwcm9wZXJ0eSIpKSkpOwotfQotCi19IC8vIG5hbWVz
cGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2Vi
QXNzZW1ibHlDb21waWxlRXJyb3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMv
SlNXZWJBc3NlbWJseUNvbXBpbGVFcnJvci5jcHAKaW5kZXggMzJlMTM2YS4uMDJmZjg4NSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseUNvbXBp
bGVFcnJvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3Nl
bWJseUNvbXBpbGVFcnJvci5jcHAKQEAgLTI2LDYgKzI2LDggQEAKICNpbmNsdWRlICJjb25maWcu
aCIKICNpbmNsdWRlICJKU1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yLmgiCiAKKyNpZiBFTkFCTEUo
V0VCQVNTRU1CTFkpCisKICNpbmNsdWRlICJKU0NJbmxpbmVzLmgiCiAKIG5hbWVzcGFjZSBKU0Mg
ewpAQCAtNDYsMyArNDgsNSBAQCBKU1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yOjpKU1dlYkFzc2Vt
Ymx5Q29tcGlsZUVycm9yKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cgogY29uc3QgQ2xhc3NJ
bmZvIEpTV2ViQXNzZW1ibHlDb21waWxlRXJyb3I6OnNfaW5mbyA9IHsgIldlYkFzc2VtYmx5LkNv
bXBpbGVFcnJvciIsICZCYXNlOjpzX2luZm8sIDAsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNXZWJB
c3NlbWJseUNvbXBpbGVFcnJvcikgfTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCisKKyNlbmRpZiAv
LyBFTkFCTEUoV0VCQVNTRU1CTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9qcy9KU1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yLmgKaW5kZXggMWE3N2VmYi4uNjU2
YjhkMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3Nl
bWJseUNvbXBpbGVFcnJvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pT
V2ViQXNzZW1ibHlDb21waWxlRXJyb3IuaApAQCAtMjUsNiArMjUsOCBAQAogCiAjcHJhZ21hIG9u
Y2UKIAorI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKKwogI2luY2x1ZGUgIkVycm9ySW5zdGFuY2Uu
aCIKIAogbmFtZXNwYWNlIEpTQyB7CkBAIC0zNCw2ICszNiwxMCBAQCBwdWJsaWM6CiAgICAgdHlw
ZWRlZiBFcnJvckluc3RhbmNlIEJhc2U7CiAKICAgICBzdGF0aWMgSlNXZWJBc3NlbWJseUNvbXBp
bGVFcnJvciogY3JlYXRlKEV4ZWNTdGF0ZSosIFN0cnVjdHVyZSosIGNvbnN0IFN0cmluZyYsIGJv
b2wpOworICAgIHN0YXRpYyBKU1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yKiBjcmVhdGUoRXhlY1N0
YXRlKiBleGVjLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNWYWx1ZSBtZXNzYWdlLCBib29sIHVz
ZUN1cnJlbnRGcmFtZSkKKyAgICB7CisgICAgICAgIHJldHVybiBjcmVhdGUoZXhlYywgc3RydWN0
dXJlLCBtZXNzYWdlLmlzVW5kZWZpbmVkKCkgPyBTdHJpbmcoKSA6IG1lc3NhZ2UudG9TdHJpbmco
ZXhlYyktPnZhbHVlKGV4ZWMpLCB1c2VDdXJyZW50RnJhbWUpOworICAgIH0KIAogICAgIERFQ0xB
UkVfSU5GTzsKIApAQCAtNDIsMyArNDgsNSBAQCBwcm90ZWN0ZWQ6CiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBKU0MKKworI2VuZGlmIC8vIEVOQUJMRShXRUJBU1NFTUJMWSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlJbnN0YW5jZS5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5SW5zdGFuY2UuY3BwCmlu
ZGV4IGJkMTU5YmIuLmIxZGE0ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL2pzL0pTV2ViQXNzZW1ibHlJbnN0YW5jZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vanMvSlNXZWJBc3NlbWJseUluc3RhbmNlLmNwcApAQCAtMjYsNiArMjYsOCBAQAog
I2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkpTV2ViQXNzZW1ibHlJbnN0YW5jZS5oIgog
CisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQorCiAjaW5jbHVkZSAiSlNDSW5saW5lcy5oIgogCiBu
YW1lc3BhY2UgSlNDIHsKQEAgLTY5LDMgKzcxLDUgQEAgdm9pZCBKU1dlYkFzc2VtYmx5SW5zdGFu
Y2U6OnZpc2l0Q2hpbGRyZW4oSlNDZWxsKiBjZWxsLCBTbG90VmlzaXRvciYgdmlzaXRvcikKIGNv
bnN0IENsYXNzSW5mbyBKU1dlYkFzc2VtYmx5SW5zdGFuY2U6OnNfaW5mbyA9IHsgIldlYkFzc2Vt
Ymx5Lkluc3RhbmNlIiwgJkJhc2U6OnNfaW5mbywgMCwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1dl
YkFzc2VtYmx5SW5zdGFuY2UpIH07CiAKIH0gLy8gbmFtZXNwYWNlIEpTQworCisjZW5kaWYgLy8g
RU5BQkxFKFdFQkFTU0VNQkxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vanMvSlNXZWJBc3NlbWJseUluc3RhbmNlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9qcy9KU1dlYkFzc2VtYmx5SW5zdGFuY2UuaAppbmRleCBkYTRiZjgwLi5iMjFlNDVmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5SW5zdGFu
Y2UuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5SW5z
dGFuY2UuaApAQCAtMjUsNiArMjUsOCBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2lmIEVOQUJMRShX
RUJBU1NFTUJMWSkKKwogI2luY2x1ZGUgIkpTRGVzdHJ1Y3RpYmxlT2JqZWN0LmgiCiAjaW5jbHVk
ZSAiSlNPYmplY3QuaCIKIApAQCAtNDcsMyArNDksNSBAQCBwcm90ZWN0ZWQ6CiB9OwogCiB9IC8v
IG5hbWVzcGFjZSBKU0MKKworI2VuZGlmIC8vIEVOQUJMRShXRUJBU1NFTUJMWSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlNZW1vcnkuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseU1lbW9yeS5jcHAK
aW5kZXggNmE0NjVkZS4uZDU2YTJjNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vanMvSlNXZWJBc3NlbWJseU1lbW9yeS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vanMvSlNXZWJBc3NlbWJseU1lbW9yeS5jcHAKQEAgLTI2LDYgKzI2LDggQEAKICNp
bmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJKU1dlYkFzc2VtYmx5TWVtb3J5LmgiCiAKKyNp
ZiBFTkFCTEUoV0VCQVNTRU1CTFkpCisKICNpbmNsdWRlICJKU0NJbmxpbmVzLmgiCiAKIG5hbWVz
cGFjZSBKU0MgewpAQCAtNjksMyArNzEsNSBAQCB2b2lkIEpTV2ViQXNzZW1ibHlNZW1vcnk6OnZp
c2l0Q2hpbGRyZW4oSlNDZWxsKiBjZWxsLCBTbG90VmlzaXRvciYgdmlzaXRvcikKIGNvbnN0IENs
YXNzSW5mbyBKU1dlYkFzc2VtYmx5TWVtb3J5OjpzX2luZm8gPSB7ICJXZWJBc3NlbWJseS5NZW1v
cnkiLCAmQmFzZTo6c19pbmZvLCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTV2ViQXNzZW1ibHlN
ZW1vcnkpIH07CiAKIH0gLy8gbmFtZXNwYWNlIEpTQworCisjZW5kaWYgLy8gRU5BQkxFKFdFQkFT
U0VNQkxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJB
c3NlbWJseU1lbW9yeS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3Nl
bWJseU1lbW9yeS5oCmluZGV4IGE5NjVhOTkuLmIzNjE4N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlNZW1vcnkuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5TWVtb3J5LmgKQEAgLTI1LDYgKzI1
LDggQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCisKICNpbmNs
dWRlICJKU0Rlc3RydWN0aWJsZU9iamVjdC5oIgogI2luY2x1ZGUgIkpTT2JqZWN0LmgiCiAKQEAg
LTQ3LDMgKzQ5LDUgQEAgcHJvdGVjdGVkOgogfTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCisKKyNl
bmRpZiAvLyBFTkFCTEUoV0VCQVNTRU1CTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5TW9kdWxlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlNb2R1bGUuY3BwCmluZGV4IGVkYzU0Y2MuLmYyOGE0
ZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1i
bHlNb2R1bGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNz
ZW1ibHlNb2R1bGUuY3BwCkBAIC0yNiw2ICsyNiw4IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAj
aW5jbHVkZSAiSlNXZWJBc3NlbWJseU1vZHVsZS5oIgogCisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZ
KQorCiAjaW5jbHVkZSAiSlNDSW5saW5lcy5oIgogCiBuYW1lc3BhY2UgSlNDIHsKQEAgLTY5LDMg
KzcxLDUgQEAgdm9pZCBKU1dlYkFzc2VtYmx5TW9kdWxlOjp2aXNpdENoaWxkcmVuKEpTQ2VsbCog
Y2VsbCwgU2xvdFZpc2l0b3ImIHZpc2l0b3IpCiBjb25zdCBDbGFzc0luZm8gSlNXZWJBc3NlbWJs
eU1vZHVsZTo6c19pbmZvID0geyAiV2ViQXNzZW1ibHkuTW9kdWxlIiwgJkJhc2U6OnNfaW5mbywg
MCwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1dlYkFzc2VtYmx5TW9kdWxlKSB9OwogCiB9IC8vIG5h
bWVzcGFjZSBKU0MKKworI2VuZGlmIC8vIEVOQUJMRShXRUJBU1NFTUJMWSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlNb2R1bGUuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlNb2R1bGUuaAppbmRleCA3
NzIzMjExLi5iZTdmNjkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9q
cy9KU1dlYkFzc2VtYmx5TW9kdWxlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
anMvSlNXZWJBc3NlbWJseU1vZHVsZS5oCkBAIC0yNSw2ICsyNSw4IEBACiAKICNwcmFnbWEgb25j
ZQogCisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQorCiAjaW5jbHVkZSAiSlNEZXN0cnVjdGlibGVP
YmplY3QuaCIKICNpbmNsdWRlICJKU09iamVjdC5oIgogCkBAIC00NywzICs0OSw1IEBAIHByb3Rl
Y3RlZDoKIH07CiAKIH0gLy8gbmFtZXNwYWNlIEpTQworCisjZW5kaWYgLy8gRU5BQkxFKFdFQkFT
U0VNQkxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJB
c3NlbWJseVJ1bnRpbWVFcnJvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9K
U1dlYkFzc2VtYmx5UnVudGltZUVycm9yLmNwcAppbmRleCA4Y2UyZTc5Li4zMTIxZWZiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5UnVudGlt
ZUVycm9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2Vt
Ymx5UnVudGltZUVycm9yLmNwcApAQCAtMjYsNiArMjYsOCBAQAogI2luY2x1ZGUgImNvbmZpZy5o
IgogI2luY2x1ZGUgIkpTV2ViQXNzZW1ibHlSdW50aW1lRXJyb3IuaCIKIAorI2lmIEVOQUJMRShX
RUJBU1NFTUJMWSkKKwogI2luY2x1ZGUgIkpTQ0lubGluZXMuaCIKIAogbmFtZXNwYWNlIEpTQyB7
CkBAIC00NiwzICs0OCw1IEBAIEpTV2ViQXNzZW1ibHlSdW50aW1lRXJyb3I6OkpTV2ViQXNzZW1i
bHlSdW50aW1lRXJyb3IoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyCiBjb25zdCBDbGFzc0lu
Zm8gSlNXZWJBc3NlbWJseVJ1bnRpbWVFcnJvcjo6c19pbmZvID0geyAiV2ViQXNzZW1ibHkuUnVu
dGltZUVycm9yIiwgJkJhc2U6OnNfaW5mbywgMCwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1dlYkFz
c2VtYmx5UnVudGltZUVycm9yKSB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKKworI2VuZGlmIC8v
IEVOQUJMRShXRUJBU1NFTUJMWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL2pzL0pTV2ViQXNzZW1ibHlSdW50aW1lRXJyb3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlSdW50aW1lRXJyb3IuaAppbmRleCBjMTJhMWZhLi43ZWJl
N2M0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2Vt
Ymx5UnVudGltZUVycm9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNX
ZWJBc3NlbWJseVJ1bnRpbWVFcnJvci5oCkBAIC0yNSw2ICsyNSw4IEBACiAKICNwcmFnbWEgb25j
ZQogCisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQorCiAjaW5jbHVkZSAiRXJyb3JJbnN0YW5jZS5o
IgogCiBuYW1lc3BhY2UgSlNDIHsKQEAgLTM0LDYgKzM2LDEwIEBAIHB1YmxpYzoKICAgICB0eXBl
ZGVmIEVycm9ySW5zdGFuY2UgQmFzZTsKIAogICAgIHN0YXRpYyBKU1dlYkFzc2VtYmx5UnVudGlt
ZUVycm9yKiBjcmVhdGUoRXhlY1N0YXRlKiwgU3RydWN0dXJlKiwgY29uc3QgU3RyaW5nJiwgYm9v
bCk7CisgICAgc3RhdGljIEpTV2ViQXNzZW1ibHlSdW50aW1lRXJyb3IqIGNyZWF0ZShFeGVjU3Rh
dGUqIGV4ZWMsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBKU1ZhbHVlIG1lc3NhZ2UsIGJvb2wgdXNl
Q3VycmVudEZyYW1lKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGNyZWF0ZShleGVjLCBzdHJ1Y3R1
cmUsIG1lc3NhZ2UuaXNVbmRlZmluZWQoKSA/IFN0cmluZygpIDogbWVzc2FnZS50b1N0cmluZyhl
eGVjKS0+dmFsdWUoZXhlYyksIHVzZUN1cnJlbnRGcmFtZSk7CisgICAgfQogCiAgICAgREVDTEFS
RV9JTkZPOwogCkBAIC00MiwzICs0OCw1IEBAIHByb3RlY3RlZDoKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIEpTQworCisjZW5kaWYgLy8gRU5BQkxFKFdFQkFTU0VNQkxZKQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseVRhYmxlLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlUYWJsZS5jcHAKaW5kZXggMjNk
NTI1OC4uY2I1ZTkxOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMv
SlNXZWJBc3NlbWJseVRhYmxlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9q
cy9KU1dlYkFzc2VtYmx5VGFibGUuY3BwCkBAIC0yNiw2ICsyNiw4IEBACiAjaW5jbHVkZSAiY29u
ZmlnLmgiCiAjaW5jbHVkZSAiSlNXZWJBc3NlbWJseVRhYmxlLmgiCiAKKyNpZiBFTkFCTEUoV0VC
QVNTRU1CTFkpCisKICNpbmNsdWRlICJKU0NJbmxpbmVzLmgiCiAKIG5hbWVzcGFjZSBKU0MgewpA
QCAtNjksMyArNzEsNSBAQCB2b2lkIEpTV2ViQXNzZW1ibHlUYWJsZTo6dmlzaXRDaGlsZHJlbihK
U0NlbGwqIGNlbGwsIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQogY29uc3QgQ2xhc3NJbmZvIEpTV2Vi
QXNzZW1ibHlUYWJsZTo6c19pbmZvID0geyAiV2ViQXNzZW1ibHkuVGFibGUiLCAmQmFzZTo6c19p
bmZvLCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTV2ViQXNzZW1ibHlUYWJsZSkgfTsKIAogfSAv
LyBuYW1lc3BhY2UgSlNDCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCQVNTRU1CTFkpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5VGFibGUuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlUYWJsZS5oCmluZGV4
IGQzOTlmOWUuLjAxZTY4ZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L2pzL0pTV2ViQXNzZW1ibHlUYWJsZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L2pzL0pTV2ViQXNzZW1ibHlUYWJsZS5oCkBAIC0yNSw2ICsyNSw4IEBACiAKICNwcmFnbWEgb25j
ZQogCisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQorCiAjaW5jbHVkZSAiSlNEZXN0cnVjdGlibGVP
YmplY3QuaCIKICNpbmNsdWRlICJKU09iamVjdC5oIgogCkBAIC00NywzICs0OSw1IEBAIHByb3Rl
Y3RlZDoKIH07CiAKIH0gLy8gbmFtZXNwYWNlIEpTQworCisjZW5kaWYgLy8gRU5BQkxFKFdFQkFT
U0VNQkxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNz
ZW1ibHlDb21waWxlRXJyb3JDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9qcy9XZWJBc3NlbWJseUNvbXBpbGVFcnJvckNvbnN0cnVjdG9yLmNwcAppbmRleCBkMTc4
NjRjLi42N2U2ZDk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9X
ZWJBc3NlbWJseUNvbXBpbGVFcnJvckNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUNvbXBpbGVFcnJvckNvbnN0cnVjdG9yLmNwcApA
QCAtMjYsOCArMjYsMTEgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJXZWJBc3Nl
bWJseUNvbXBpbGVFcnJvckNvbnN0cnVjdG9yLmgiCiAKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFkp
CisKICNpbmNsdWRlICJGdW5jdGlvblByb3RvdHlwZS5oIgogI2luY2x1ZGUgIkpTQ0lubGluZXMu
aCIKKyNpbmNsdWRlICJKU1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yLmgiCiAjaW5jbHVkZSAiV2Vi
QXNzZW1ibHlDb21waWxlRXJyb3JQcm90b3R5cGUuaCIKIAogI2luY2x1ZGUgIldlYkFzc2VtYmx5
Q29tcGlsZUVycm9yQ29uc3RydWN0b3IubHV0LmgiCkBAIC00Myw5ICs0NiwxMiBAQCBjb25zdCBD
bGFzc0luZm8gV2ViQXNzZW1ibHlDb21waWxlRXJyb3JDb25zdHJ1Y3Rvcjo6c19pbmZvID0geyAi
RnVuY3Rpb24iLCAmQmFzZQogCiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBj
b25zdHJ1Y3RKU1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yKEV4ZWNTdGF0ZSogc3RhdGUpCiB7Ci0g
ICAgVk0mIHZtID0gc3RhdGUtPnZtKCk7CisgICAgYXV0byYgdm0gPSBzdGF0ZS0+dm0oKTsKICAg
ICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZSh0aHJvd0V4Y2VwdGlvbihzdGF0ZSwgc2NvcGUsIGNyZWF0ZUVycm9yKHN0YXRl
LCBBU0NJSUxpdGVyYWwoIldlYkFzc2VtYmx5IGRvZXNuJ3QgeWV0IGltcGxlbWVudCB0aGUgQ29t
cGlsZUVycm9yIGNvbnN0cnVjdG9yIHByb3BlcnR5IikpKSk7CisgICAgSlNWYWx1ZSBtZXNzYWdl
ID0gc3RhdGUtPmFyZ3VtZW50Q291bnQoKSA/IHN0YXRlLT5hcmd1bWVudCgwKSA6IGpzVW5kZWZp
bmVkKCk7CisgICAgYXV0byogc3RydWN0dXJlID0gSW50ZXJuYWxGdW5jdGlvbjo6Y3JlYXRlU3Vi
Y2xhc3NTdHJ1Y3R1cmUoc3RhdGUsIHN0YXRlLT5uZXdUYXJnZXQoKSwgYXNJbnRlcm5hbEZ1bmN0
aW9uKHN0YXRlLT5jYWxsZWUoKSktPmdsb2JhbE9iamVjdCgpLT5XZWJBc3NlbWJseUNvbXBpbGVF
cnJvclN0cnVjdHVyZSgpKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBlbmNvZGVk
SlNWYWx1ZSgpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTV2ViQXNzZW1ibHlDb21w
aWxlRXJyb3I6OmNyZWF0ZShzdGF0ZSwgc3RydWN0dXJlLCBtZXNzYWdlLCBmYWxzZSkpOwogfQog
CiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsSlNXZWJBc3NlbWJseUNv
bXBpbGVFcnJvcihFeGVjU3RhdGUqIHN0YXRlKQpAQCAtNjcsMTIgKzczLDExIEBAIFN0cnVjdHVy
ZSogV2ViQXNzZW1ibHlDb21waWxlRXJyb3JDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKFZN
JiB2bSwgSlNHbG9iYWxPCiAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxP
YmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBp
bmZvKCkpOwogfQogCi12b2lkIFdlYkFzc2VtYmx5Q29tcGlsZUVycm9yQ29uc3RydWN0b3I6OmZp
bmlzaENyZWF0aW9uKFZNJiB2bSwgV2ViQXNzZW1ibHlDb21waWxlRXJyb3JQcm90b3R5cGUqIHBy
b3RvdHlwZSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCit2b2lkIFdlYkFzc2VtYmx5Q29tcGlsZUVy
cm9yQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgV2ViQXNzZW1ibHlDb21waWxl
RXJyb3JQcm90b3R5cGUqIHByb3RvdHlwZSwgU3RydWN0dXJlKikKIHsKICAgICBCYXNlOjpmaW5p
c2hDcmVhdGlvbih2bSwgQVNDSUlMaXRlcmFsKCJDb21waWxlRXJyb3IiKSk7Ci0gICAgcHV0RGly
ZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPnByb3RvdHlwZSwgcHJv
dG90eXBlLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSk7CisgICAgcHV0RGlyZWN0
V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPnByb3RvdHlwZSwgcHJvdG90
eXBlLCBSZWFkT25seSB8IERvbnRFbnVtIHwgRG9udERlbGV0ZSk7CiAgICAgcHV0RGlyZWN0V2l0
aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPmxlbmd0aCwganNOdW1iZXIoMSks
IFJlYWRPbmx5IHwgRG9udEVudW0gfCBEb250RGVsZXRlKTsKLSAgICBtX0NvbXBpbGVFcnJvclN0
cnVjdHVyZS5zZXQodm0sIHRoaXMsIHN0cnVjdHVyZSk7CiB9CiAKIFdlYkFzc2VtYmx5Q29tcGls
ZUVycm9yQ29uc3RydWN0b3I6OldlYkFzc2VtYmx5Q29tcGlsZUVycm9yQ29uc3RydWN0b3IoVk0m
IHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKQEAgLTkyLDEyICs5Nyw2IEBAIENhbGxUeXBlIFdl
YkFzc2VtYmx5Q29tcGlsZUVycm9yQ29uc3RydWN0b3I6OmdldENhbGxEYXRhKEpTQ2VsbCosIENh
bGxEYXRhJiBjYWxsCiAgICAgcmV0dXJuIENhbGxUeXBlOjpIb3N0OwogfQogCi12b2lkIFdlYkFz
c2VtYmx5Q29tcGlsZUVycm9yQ29uc3RydWN0b3I6OnZpc2l0Q2hpbGRyZW4oSlNDZWxsKiBjZWxs
LCBTbG90VmlzaXRvciYgdmlzaXRvcikKLXsKLSAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0
PFdlYkFzc2VtYmx5Q29tcGlsZUVycm9yQ29uc3RydWN0b3IqPihjZWxsKTsKLSAgICBBU1NFUlRf
R0NfT0JKRUNUX0lOSEVSSVRTKHRoaXNPYmplY3QsIGluZm8oKSk7Ci0gICAgQmFzZTo6dmlzaXRD
aGlsZHJlbih0aGlzT2JqZWN0LCB2aXNpdG9yKTsKLSAgICB2aXNpdG9yLmFwcGVuZCgmdGhpc09i
amVjdC0+bV9Db21waWxlRXJyb3JTdHJ1Y3R1cmUpOwotfQotCiB9IC8vIG5hbWVzcGFjZSBKU0MK
KworI2VuZGlmIC8vIEVOQUJMRShXRUJBU1NFTUJMWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yQ29uc3RydWN0b3IuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yQ29u
c3RydWN0b3IuaAppbmRleCA3YTUyNGI5Li5kNDg1NmM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUNvbXBpbGVFcnJvckNvbnN0cnVjdG9yLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlDb21waWxlRXJy
b3JDb25zdHJ1Y3Rvci5oCkBAIC0yNSw2ICsyNSw4IEBACiAKICNwcmFnbWEgb25jZQogCisjaWYg
RU5BQkxFKFdFQkFTU0VNQkxZKQorCiAjaW5jbHVkZSAiSW50ZXJuYWxGdW5jdGlvbi5oIgogI2lu
Y2x1ZGUgIkpTT2JqZWN0LmgiCiAKQEAgLTQyLDggKzQ0LDYgQEAgcHVibGljOgogCiAgICAgREVD
TEFSRV9JTkZPOwogCi0gICAgU3RydWN0dXJlKiBDb21waWxlRXJyb3JTdHJ1Y3R1cmUoKSBjb25z
dCB7IHJldHVybiBtX0NvbXBpbGVFcnJvclN0cnVjdHVyZS5nZXQoKTsgfQotCiBwcm90ZWN0ZWQ6
CiAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihWTSYsIFdlYkFzc2VtYmx5Q29tcGlsZUVycm9yUHJv
dG90eXBlKiwgU3RydWN0dXJlKik7CiAKQEAgLTUxLDkgKzUxLDggQEAgcHJpdmF0ZToKICAgICBX
ZWJBc3NlbWJseUNvbXBpbGVFcnJvckNvbnN0cnVjdG9yKFZNJiwgU3RydWN0dXJlKik7CiAgICAg
c3RhdGljIENvbnN0cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3RE
YXRhJik7CiAgICAgc3RhdGljIENhbGxUeXBlIGdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRh
Jik7Ci0gICAgc3RhdGljIHZvaWQgdmlzaXRDaGlsZHJlbihKU0NlbGwqLCBTbG90VmlzaXRvciYp
OwotCi0gICAgV3JpdGVCYXJyaWVyPFN0cnVjdHVyZT4gbV9Db21waWxlRXJyb3JTdHJ1Y3R1cmU7
CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKKworI2VuZGlmIC8vIEVOQUJMRShXRUJBU1NFTUJM
WSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5
Q29tcGlsZUVycm9yUHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pz
L1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yUHJvdG90eXBlLmNwcAppbmRleCA5OTNjNDk2Li4wNTIy
ZTFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJs
eUNvbXBpbGVFcnJvclByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vanMvV2ViQXNzZW1ibHlDb21waWxlRXJyb3JQcm90b3R5cGUuY3BwCkBAIC0yNiw2ICsyNiw4
IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiV2ViQXNzZW1ibHlDb21waWxlRXJy
b3JQcm90b3R5cGUuaCIKIAorI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKKwogI2luY2x1ZGUgIkZ1
bmN0aW9uUHJvdG90eXBlLmgiCiAjaW5jbHVkZSAiSlNDSW5saW5lcy5oIgogCkBAIC02MywzICs2
NSw1IEBAIFdlYkFzc2VtYmx5Q29tcGlsZUVycm9yUHJvdG90eXBlOjpXZWJBc3NlbWJseUNvbXBp
bGVFcnJvclByb3RvdHlwZShWTSYgdm0sIFN0cnVjCiB9CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwor
CisjZW5kaWYgLy8gRU5BQkxFKFdFQkFTU0VNQkxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlDb21waWxlRXJyb3JQcm90b3R5cGUuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yUHJvdG90
eXBlLmgKaW5kZXggMWEzOWMzNi4uZDMyOTY1MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlDb21waWxlRXJyb3JQcm90b3R5cGUuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUNvbXBpbGVFcnJvclByb3Rv
dHlwZS5oCkBAIC0yNSw2ICsyNSw4IEBACiAKICNwcmFnbWEgb25jZQogCisjaWYgRU5BQkxFKFdF
QkFTU0VNQkxZKQorCiAjaW5jbHVkZSAiSlNEZXN0cnVjdGlibGVPYmplY3QuaCIKICNpbmNsdWRl
ICJKU09iamVjdC5oIgogCkBAIC00OCwzICs1MCw1IEBAIHByaXZhdGU6CiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBKU0MKKworI2VuZGlmIC8vIEVOQUJMRShXRUJBU1NFTUJMWSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5SW5zdGFuY2VDb25zdHJ1
Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUluc3Rh
bmNlQ29uc3RydWN0b3IuY3BwCmluZGV4IGE1Njg1NWEuLjg1Y2U5YWEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5SW5zdGFuY2VDb25zdHJ1Y3Rv
ci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlJbnN0
YW5jZUNvbnN0cnVjdG9yLmNwcApAQCAtMjYsNiArMjYsOCBAQAogI2luY2x1ZGUgImNvbmZpZy5o
IgogI2luY2x1ZGUgIldlYkFzc2VtYmx5SW5zdGFuY2VDb25zdHJ1Y3Rvci5oIgogCisjaWYgRU5B
QkxFKFdFQkFTU0VNQkxZKQorCiAjaW5jbHVkZSAiRnVuY3Rpb25Qcm90b3R5cGUuaCIKICNpbmNs
dWRlICJKU0NJbmxpbmVzLmgiCiAjaW5jbHVkZSAiV2ViQXNzZW1ibHlJbnN0YW5jZVByb3RvdHlw
ZS5oIgpAQCAtMTAxLDMgKzEwMyw2IEBAIHZvaWQgV2ViQXNzZW1ibHlJbnN0YW5jZUNvbnN0cnVj
dG9yOjp2aXNpdENoaWxkcmVuKEpTQ2VsbCogY2VsbCwgU2xvdFZpc2l0b3ImIHZpCiB9CiAKIH0g
Ly8gbmFtZXNwYWNlIEpTQworCisjZW5kaWYgLy8gRU5BQkxFKFdFQkFTU0VNQkxZKQorCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUluc3RhbmNl
Q29uc3RydWN0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5
SW5zdGFuY2VDb25zdHJ1Y3Rvci5oCmluZGV4IDczNmJkOGMuLmRkZGRmNzEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5SW5zdGFuY2VDb25zdHJ1
Y3Rvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5SW5z
dGFuY2VDb25zdHJ1Y3Rvci5oCkBAIC0yNSw2ICsyNSw4IEBACiAKICNwcmFnbWEgb25jZQogCisj
aWYgRU5BQkxFKFdFQkFTU0VNQkxZKQorCiAjaW5jbHVkZSAiSW50ZXJuYWxGdW5jdGlvbi5oIgog
I2luY2x1ZGUgIkpTT2JqZWN0LmgiCiAKQEAgLTU3LDMgKzU5LDUgQEAgcHJpdmF0ZToKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIEpTQworCisjZW5kaWYgLy8gRU5BQkxFKFdFQkFTU0VNQkxZKQpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlJbnN0YW5j
ZVByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJs
eUluc3RhbmNlUHJvdG90eXBlLmNwcAppbmRleCBlZGUzYzc5Li40Nzc3YTYxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUluc3RhbmNlUHJvdG90
eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUlu
c3RhbmNlUHJvdG90eXBlLmNwcApAQCAtMjYsNiArMjYsOCBAQAogI2luY2x1ZGUgImNvbmZpZy5o
IgogI2luY2x1ZGUgIldlYkFzc2VtYmx5SW5zdGFuY2VQcm90b3R5cGUuaCIKIAorI2lmIEVOQUJM
RShXRUJBU1NFTUJMWSkKKwogI2luY2x1ZGUgIkZ1bmN0aW9uUHJvdG90eXBlLmgiCiAjaW5jbHVk
ZSAiSlNDSW5saW5lcy5oIgogCkBAIC02MywzICs2NSw1IEBAIFdlYkFzc2VtYmx5SW5zdGFuY2VQ
cm90b3R5cGU6OldlYkFzc2VtYmx5SW5zdGFuY2VQcm90b3R5cGUoVk0mIHZtLCBTdHJ1Y3R1cmUq
IHN0CiB9CiAKIH0gLy8gbmFtZXNwYWNlIEpTQworCisjZW5kaWYgLy8gRU5BQkxFKFdFQkFTU0VN
QkxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1i
bHlJbnN0YW5jZVByb3RvdHlwZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2Vi
QXNzZW1ibHlJbnN0YW5jZVByb3RvdHlwZS5oCmluZGV4IDkzYjRhYzcuLmViZGJlOTggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5SW5zdGFuY2VQ
cm90b3R5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJs
eUluc3RhbmNlUHJvdG90eXBlLmgKQEAgLTI1LDYgKzI1LDggQEAKIAogI3ByYWdtYSBvbmNlCiAK
KyNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCisKICNpbmNsdWRlICJKU0Rlc3RydWN0aWJsZU9iamVj
dC5oIgogI2luY2x1ZGUgIkpTT2JqZWN0LmgiCiAKQEAgLTQ4LDMgKzUwLDUgQEAgcHJpdmF0ZToK
IH07CiAKIH0gLy8gbmFtZXNwYWNlIEpTQworCisjZW5kaWYgLy8gRU5BQkxFKFdFQkFTU0VNQkxZ
KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlN
ZW1vcnlDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJB
c3NlbWJseU1lbW9yeUNvbnN0cnVjdG9yLmNwcAppbmRleCAxZjYzNzBkLi5hZDUyNWNmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseU1lbW9yeUNv
bnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3Nl
bWJseU1lbW9yeUNvbnN0cnVjdG9yLmNwcApAQCAtMjYsNiArMjYsOCBAQAogI2luY2x1ZGUgImNv
bmZpZy5oIgogI2luY2x1ZGUgIldlYkFzc2VtYmx5TWVtb3J5Q29uc3RydWN0b3IuaCIKIAorI2lm
IEVOQUJMRShXRUJBU1NFTUJMWSkKKwogI2luY2x1ZGUgIkZ1bmN0aW9uUHJvdG90eXBlLmgiCiAj
aW5jbHVkZSAiSlNDSW5saW5lcy5oIgogI2luY2x1ZGUgIldlYkFzc2VtYmx5TWVtb3J5UHJvdG90
eXBlLmgiCkBAIC0xMDEsMyArMTAzLDYgQEAgdm9pZCBXZWJBc3NlbWJseU1lbW9yeUNvbnN0cnVj
dG9yOjp2aXNpdENoaWxkcmVuKEpTQ2VsbCogY2VsbCwgU2xvdFZpc2l0b3ImIHZpc2kKIH0KIAog
fSAvLyBuYW1lc3BhY2UgSlNDCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCQVNTRU1CTFkpCisKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TWVtb3J5
Q29uc3RydWN0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5
TWVtb3J5Q29uc3RydWN0b3IuaAppbmRleCA5NTI1MzY0Li4zNGNkMTIwIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseU1lbW9yeUNvbnN0cnVjdG9y
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlNZW1vcnlD
b25zdHJ1Y3Rvci5oCkBAIC0yNSw2ICsyNSw4IEBACiAKICNwcmFnbWEgb25jZQogCisjaWYgRU5B
QkxFKFdFQkFTU0VNQkxZKQorCiAjaW5jbHVkZSAiSW50ZXJuYWxGdW5jdGlvbi5oIgogI2luY2x1
ZGUgIkpTT2JqZWN0LmgiCiAKQEAgLTU3LDMgKzU5LDUgQEAgcHJpdmF0ZToKIH07CiAKIH0gLy8g
bmFtZXNwYWNlIEpTQworCisjZW5kaWYgLy8gRU5BQkxFKFdFQkFTU0VNQkxZKQpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlNZW1vcnlQcm90b3R5
cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlNZW1vcnlQ
cm90b3R5cGUuY3BwCmluZGV4IDYwZTQ4ODguLjI0MThmZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TWVtb3J5UHJvdG90eXBlLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseU1lbW9yeVByb3RvdHlw
ZS5jcHAKQEAgLTI2LDYgKzI2LDggQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJX
ZWJBc3NlbWJseU1lbW9yeVByb3RvdHlwZS5oIgogCisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQor
CiAjaW5jbHVkZSAiRnVuY3Rpb25Qcm90b3R5cGUuaCIKICNpbmNsdWRlICJKU0NJbmxpbmVzLmgi
CiAKQEAgLTYzLDMgKzY1LDUgQEAgV2ViQXNzZW1ibHlNZW1vcnlQcm90b3R5cGU6OldlYkFzc2Vt
Ymx5TWVtb3J5UHJvdG90eXBlKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3QKIH0KIAogfSAvLyBu
YW1lc3BhY2UgSlNDCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCQVNTRU1CTFkpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseU1lbW9yeVByb3RvdHlw
ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlNZW1vcnlQcm90
b3R5cGUuaAppbmRleCA5ZDNmODUwLi40MjE5OTAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseU1lbW9yeVByb3RvdHlwZS5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TWVtb3J5UHJvdG90eXBlLmgKQEAg
LTI1LDYgKzI1LDggQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFkp
CisKICNpbmNsdWRlICJKU0Rlc3RydWN0aWJsZU9iamVjdC5oIgogI2luY2x1ZGUgIkpTT2JqZWN0
LmgiCiAKQEAgLTQ4LDMgKzUwLDUgQEAgcHJpdmF0ZToKIH07CiAKIH0gLy8gbmFtZXNwYWNlIEpT
QworCisjZW5kaWYgLy8gRU5BQkxFKFdFQkFTU0VNQkxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlNb2R1bGVDb25zdHJ1Y3Rvci5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseU1vZHVsZUNvbnN0cnVjdG9y
LmNwcAppbmRleCBjODM4YjNkMC4uZTk3YjAxMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlNb2R1bGVDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlNb2R1bGVDb25zdHJ1Y3Rvci5j
cHAKQEAgLTI2LDYgKzI2LDggQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJXZWJB
c3NlbWJseU1vZHVsZUNvbnN0cnVjdG9yLmgiCiAKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCisK
ICNpbmNsdWRlICJGdW5jdGlvblByb3RvdHlwZS5oIgogI2luY2x1ZGUgIkpTQ0lubGluZXMuaCIK
ICNpbmNsdWRlICJXZWJBc3NlbWJseU1vZHVsZVByb3RvdHlwZS5oIgpAQCAtMTAxLDMgKzEwMyw2
IEBAIHZvaWQgV2ViQXNzZW1ibHlNb2R1bGVDb25zdHJ1Y3Rvcjo6dmlzaXRDaGlsZHJlbihKU0Nl
bGwqIGNlbGwsIFNsb3RWaXNpdG9yJiB2aXNpCiB9CiAKIH0gLy8gbmFtZXNwYWNlIEpTQworCisj
ZW5kaWYgLy8gRU5BQkxFKFdFQkFTU0VNQkxZKQorCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseU1vZHVsZUNvbnN0cnVjdG9yLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseU1vZHVsZUNvbnN0cnVjdG9yLmgKaW5k
ZXggM2FhNGFmYS4uNTYwNTdhNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vanMvV2ViQXNzZW1ibHlNb2R1bGVDb25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TW9kdWxlQ29uc3RydWN0b3IuaApAQCAtMjUsNiAr
MjUsOCBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKKwogI2lu
Y2x1ZGUgIkludGVybmFsRnVuY3Rpb24uaCIKICNpbmNsdWRlICJKU09iamVjdC5oIgogCkBAIC01
NywzICs1OSw1IEBAIHByaXZhdGU6CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKKworI2VuZGlm
IC8vIEVOQUJMRShXRUJBU1NFTUJMWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL2pzL1dlYkFzc2VtYmx5TW9kdWxlUHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TW9kdWxlUHJvdG90eXBlLmNwcAppbmRleCA5ZGIw
Y2U5Li4yYmIyYjVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9X
ZWJBc3NlbWJseU1vZHVsZVByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vanMvV2ViQXNzZW1ibHlNb2R1bGVQcm90b3R5cGUuY3BwCkBAIC0yNiw2ICsyNiw4IEBA
CiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiV2ViQXNzZW1ibHlNb2R1bGVQcm90b3R5
cGUuaCIKIAorI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKKwogI2luY2x1ZGUgIkZ1bmN0aW9uUHJv
dG90eXBlLmgiCiAjaW5jbHVkZSAiSlNDSW5saW5lcy5oIgogCkBAIC02MywzICs2NSw1IEBAIFdl
YkFzc2VtYmx5TW9kdWxlUHJvdG90eXBlOjpXZWJBc3NlbWJseU1vZHVsZVByb3RvdHlwZShWTSYg
dm0sIFN0cnVjdHVyZSogc3RydWN0CiB9CiAKIH0gLy8gbmFtZXNwYWNlIEpTQworCisjZW5kaWYg
Ly8gRU5BQkxFKFdFQkFTU0VNQkxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vanMvV2ViQXNzZW1ibHlNb2R1bGVQcm90b3R5cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TW9kdWxlUHJvdG90eXBlLmgKaW5kZXggOGE3MTNkNS4u
ZDViNjI3OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNz
ZW1ibHlNb2R1bGVQcm90b3R5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9q
cy9XZWJBc3NlbWJseU1vZHVsZVByb3RvdHlwZS5oCkBAIC0yNSw2ICsyNSw4IEBACiAKICNwcmFn
bWEgb25jZQogCisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQorCiAjaW5jbHVkZSAiSlNEZXN0cnVj
dGlibGVPYmplY3QuaCIKICNpbmNsdWRlICJKU09iamVjdC5oIgogCkBAIC00OCwzICs1MCw1IEBA
IHByaXZhdGU6CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKKworI2VuZGlmIC8vIEVOQUJMRShX
RUJBU1NFTUJMWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dl
YkFzc2VtYmx5UHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dl
YkFzc2VtYmx5UHJvdG90eXBlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li4yZDRlMDA0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
anMvV2ViQXNzZW1ibHlQcm90b3R5cGUuY3BwCkBAIC0wLDAgKzEsODkgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAor
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiV2ViQXNzZW1ibHlQcm90b3R5cGUuaCIKKworI2lmIEVOQUJMRShXRUJBU1NFTUJM
WSkKKworI2luY2x1ZGUgIkZ1bmN0aW9uUHJvdG90eXBlLmgiCisjaW5jbHVkZSAiSlNDSW5saW5l
cy5oIgorCituYW1lc3BhY2UgSlNDIHsKKworc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgd2ViQXNzZW1ibHlGdW5jdGlvblZhbGlkYXRlKEV4ZWNTdGF0ZSogc3RhdGUpCit7Cisg
ICAgVk0mIHZtID0gc3RhdGUtPnZtKCk7CisgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1df
U0NPUEUodm0pOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUodGhyb3dFeGNlcHRpb24oc3Rh
dGUsIHNjb3BlLCBjcmVhdGVFcnJvcihzdGF0ZSwgQVNDSUlMaXRlcmFsKCJXZWJBc3NlbWJseSBk
b2Vzbid0IHlldCBpbXBsZW1lbnQgdGhlIHZhbGlkYXRlIGZ1bmN0aW9uIHByb3BlcnR5IikpKSk7
Cit9CisKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHdlYkFzc2VtYmx5RnVu
Y3Rpb25Db21waWxlKEV4ZWNTdGF0ZSogc3RhdGUpCit7CisgICAgVk0mIHZtID0gc3RhdGUtPnZt
KCk7CisgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOworICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUodGhyb3dFeGNlcHRpb24oc3RhdGUsIHNjb3BlLCBjcmVhdGVFcnJv
cihzdGF0ZSwgQVNDSUlMaXRlcmFsKCJXZWJBc3NlbWJseSBkb2Vzbid0IHlldCBpbXBsZW1lbnQg
dGhlIGNvbXBpbGUgZnVuY3Rpb24gcHJvcGVydHkiKSkpKTsKK30KKworfQorCisjaW5jbHVkZSAi
V2ViQXNzZW1ibHlQcm90b3R5cGUubHV0LmgiCisKK25hbWVzcGFjZSBKU0MgeworCitjb25zdCBD
bGFzc0luZm8gV2ViQXNzZW1ibHlQcm90b3R5cGU6OnNfaW5mbyA9IHsgIldlYkFzc2VtYmx5LnBy
b3RvdHlwZSIsICZCYXNlOjpzX2luZm8sICZwcm90b3R5cGVUYWJsZVdlYkFzc2VtYmx5LCBDUkVB
VEVfTUVUSE9EX1RBQkxFKFdlYkFzc2VtYmx5UHJvdG90eXBlKSB9OworCisvKiBTb3VyY2UgZm9y
IFdlYkFzc2VtYmx5UHJvdG90eXBlLmx1dC5oCisgQGJlZ2luIHByb3RvdHlwZVRhYmxlV2ViQXNz
ZW1ibHkKKyB2YWxpZGF0ZSB3ZWJBc3NlbWJseUZ1bmN0aW9uVmFsaWRhdGUgIERvbnRFbnVtfEZ1
bmN0aW9uIDEKKyBjb21waWxlICB3ZWJBc3NlbWJseUZ1bmN0aW9uQ29tcGlsZSAgIERvbnRFbnVt
fEZ1bmN0aW9uIDEKKyBAZW5kCisgKi8KKworV2ViQXNzZW1ibHlQcm90b3R5cGUqIFdlYkFzc2Vt
Ymx5UHJvdG90eXBlOjpjcmVhdGUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSog
c3RydWN0dXJlKQoreworICAgIGF1dG8qIG9iamVjdCA9IG5ldyAoTm90TnVsbCwgYWxsb2NhdGVD
ZWxsPFdlYkFzc2VtYmx5UHJvdG90eXBlPih2bS5oZWFwKSkgV2ViQXNzZW1ibHlQcm90b3R5cGUo
dm0sIHN0cnVjdHVyZSk7CisgICAgb2JqZWN0LT5maW5pc2hDcmVhdGlvbih2bSk7CisgICAgcmV0
dXJuIG9iamVjdDsKK30KKworU3RydWN0dXJlKiBXZWJBc3NlbWJseVByb3RvdHlwZTo6Y3JlYXRl
U3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBw
cm90b3R5cGUpCit7CisgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmpl
Y3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZv
KCkpOworfQorCit2b2lkIFdlYkFzc2VtYmx5UHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihWTSYg
dm0pCit7CisgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0pOworfQorCitXZWJBc3NlbWJseVBy
b3RvdHlwZTo6V2ViQXNzZW1ibHlQcm90b3R5cGUoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVy
ZSkKKyAgICA6IEJhc2Uodm0sIHN0cnVjdHVyZSkKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgSlND
CisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCQVNTRU1CTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9XZWJBc3NlbWJseU9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vanMvV2ViQXNzZW1ibHlQcm90b3R5cGUuaApzaW1pbGFyaXR5IGluZGV4IDc0JQpy
ZW5hbWUgZnJvbSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XZWJBc3NlbWJseU9iamVjdC5o
CnJlbmFtZSB0byBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseVByb3Rv
dHlwZS5oCmluZGV4IDdiNTJjYTYuLjI4N2Q1YTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL1dlYkFzc2VtYmx5T2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vanMvV2ViQXNzZW1ibHlQcm90b3R5cGUuaApAQCAtMjUsMzggKzI1LDMwIEBACiAK
ICNwcmFnbWEgb25jZQogCisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQorCisjaW5jbHVkZSAiSlNE
ZXN0cnVjdGlibGVPYmplY3QuaCIKICNpbmNsdWRlICJKU09iamVjdC5oIgogCiBuYW1lc3BhY2Ug
SlNDIHsKIAotY2xhc3MgV2ViQXNzZW1ibHlPYmplY3QgOiBwdWJsaWMgSlNOb25GaW5hbE9iamVj
dCB7CitjbGFzcyBXZWJBc3NlbWJseVByb3RvdHlwZSA6IHB1YmxpYyBKU05vbkZpbmFsT2JqZWN0
IHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIEpTTm9uRmluYWxPYmplY3QgQmFzZTsKKyAgICBzdGF0
aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8
IEhhc1N0YXRpY1Byb3BlcnR5VGFibGU7CiAKLSAgICBzdGF0aWMgV2ViQXNzZW1ibHlPYmplY3Qq
IGNyZWF0ZShWTSYsIEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKik7CisgICAgc3RhdGljIFdl
YkFzc2VtYmx5UHJvdG90eXBlKiBjcmVhdGUoVk0mLCBKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVy
ZSopOwogICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShWTSYsIEpTR2xvYmFs
T2JqZWN0KiwgSlNWYWx1ZSk7CiAKICAgICBERUNMQVJFX0lORk87CiAKIHByb3RlY3RlZDoKLSAg
ICB2b2lkIGZpbmlzaENyZWF0aW9uKFZNJiwgSlNHbG9iYWxPYmplY3QqKTsKKyAgICB2b2lkIGZp
bmlzaENyZWF0aW9uKFZNJik7CiAKIHByaXZhdGU6Ci0gICAgV2ViQXNzZW1ibHlPYmplY3QoVk0m
LCBTdHJ1Y3R1cmUqKTsKKyAgICBXZWJBc3NlbWJseVByb3RvdHlwZShWTSYsIFN0cnVjdHVyZSop
OwogfTsKIAotLy8gTmFtZSwgZnVuY3Rpb25MZW5ndGgKLSNkZWZpbmUgRk9SX0VBQ0hfV0FTTV9D
T05TVFJVQ1RPUl9QUk9QRVJUWShETykgXAotICAgIERPKE1vZHVsZSwgMSkgXAotICAgIERPKElu
c3RhbmNlLCAyKSBcCi0gICAgRE8oTWVtb3J5LCAxKSBcCi0gICAgRE8oVGFibGUsIDEpIFwKLSAg
ICBETyhDb21waWxlRXJyb3IsIDEpIFwKLSAgICBETyhSdW50aW1lRXJyb3IsIDEpCi0KLS8vIE5h
bWUsIGZ1bmN0aW9uTGVuZ3RoCi0jZGVmaW5lIEZPUl9FQUNIX1dBU01fRlVOQ1RJT05fUFJPUEVS
VFkoRE8pIFwKLSAgICBETyh2YWxpZGF0ZSwgMSkgXAotICAgIERPKGNvbXBpbGUsIDEpCi0KIH0g
Ly8gbmFtZXNwYWNlIEpTQworCisjZW5kaWYgLy8gRU5BQkxFKFdFQkFTU0VNQkxZKQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlSdW50aW1lRXJy
b3JDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3Nl
bWJseVJ1bnRpbWVFcnJvckNvbnN0cnVjdG9yLmNwcAppbmRleCBiMzA2N2U1Li41NTI4MDIyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseVJ1bnRp
bWVFcnJvckNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9q
cy9XZWJBc3NlbWJseVJ1bnRpbWVFcnJvckNvbnN0cnVjdG9yLmNwcApAQCAtMjYsOCArMjYsMTEg
QEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJXZWJBc3NlbWJseVJ1bnRpbWVFcnJv
ckNvbnN0cnVjdG9yLmgiCiAKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCisKICNpbmNsdWRlICJG
dW5jdGlvblByb3RvdHlwZS5oIgogI2luY2x1ZGUgIkpTQ0lubGluZXMuaCIKKyNpbmNsdWRlICJK
U1dlYkFzc2VtYmx5UnVudGltZUVycm9yLmgiCiAjaW5jbHVkZSAiV2ViQXNzZW1ibHlSdW50aW1l
RXJyb3JQcm90b3R5cGUuaCIKIAogI2luY2x1ZGUgIldlYkFzc2VtYmx5UnVudGltZUVycm9yQ29u
c3RydWN0b3IubHV0LmgiCkBAIC00Myw5ICs0NiwxMiBAQCBjb25zdCBDbGFzc0luZm8gV2ViQXNz
ZW1ibHlSdW50aW1lRXJyb3JDb25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiRnVuY3Rpb24iLCAmQmFz
ZQogCiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RKU1dlYkFz
c2VtYmx5UnVudGltZUVycm9yKEV4ZWNTdGF0ZSogc3RhdGUpCiB7Ci0gICAgVk0mIHZtID0gc3Rh
dGUtPnZtKCk7CisgICAgYXV0byYgdm0gPSBzdGF0ZS0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0g
REVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZSh0aHJv
d0V4Y2VwdGlvbihzdGF0ZSwgc2NvcGUsIGNyZWF0ZUVycm9yKHN0YXRlLCBBU0NJSUxpdGVyYWwo
IldlYkFzc2VtYmx5IGRvZXNuJ3QgeWV0IGltcGxlbWVudCB0aGUgUnVudGltZUVycm9yIGNvbnN0
cnVjdG9yIHByb3BlcnR5IikpKSk7CisgICAgSlNWYWx1ZSBtZXNzYWdlID0gc3RhdGUtPmFyZ3Vt
ZW50Q291bnQoKSA/IHN0YXRlLT5hcmd1bWVudCgwKSA6IGpzVW5kZWZpbmVkKCk7CisgICAgYXV0
byogc3RydWN0dXJlID0gSW50ZXJuYWxGdW5jdGlvbjo6Y3JlYXRlU3ViY2xhc3NTdHJ1Y3R1cmUo
c3RhdGUsIHN0YXRlLT5uZXdUYXJnZXQoKSwgYXNJbnRlcm5hbEZ1bmN0aW9uKHN0YXRlLT5jYWxs
ZWUoKSktPmdsb2JhbE9iamVjdCgpLT5XZWJBc3NlbWJseVJ1bnRpbWVFcnJvclN0cnVjdHVyZSgp
KTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKKyAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTV2ViQXNzZW1ibHlSdW50aW1lRXJyb3I6OmNyZWF0
ZShzdGF0ZSwgc3RydWN0dXJlLCBtZXNzYWdlLCBmYWxzZSkpOwogfQogCiBzdGF0aWMgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsSlNXZWJBc3NlbWJseVJ1bnRpbWVFcnJvcihFeGVj
U3RhdGUqIHN0YXRlKQpAQCAtNjcsMTIgKzczLDExIEBAIFN0cnVjdHVyZSogV2ViQXNzZW1ibHlS
dW50aW1lRXJyb3JDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxP
CiAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlw
ZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOwogfQogCi12
b2lkIFdlYkFzc2VtYmx5UnVudGltZUVycm9yQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKFZN
JiB2bSwgV2ViQXNzZW1ibHlSdW50aW1lRXJyb3JQcm90b3R5cGUqIHByb3RvdHlwZSwgU3RydWN0
dXJlKiBzdHJ1Y3R1cmUpCit2b2lkIFdlYkFzc2VtYmx5UnVudGltZUVycm9yQ29uc3RydWN0b3I6
OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgV2ViQXNzZW1ibHlSdW50aW1lRXJyb3JQcm90b3R5cGUq
IHByb3RvdHlwZSwgU3RydWN0dXJlKikKIHsKICAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSwg
QVNDSUlMaXRlcmFsKCJSdW50aW1lRXJyb3IiKSk7Ci0gICAgcHV0RGlyZWN0V2l0aG91dFRyYW5z
aXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPnByb3RvdHlwZSwgcHJvdG90eXBlLCBEb250RW51
bSB8IERvbnREZWxldGUgfCBSZWFkT25seSk7CisgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRp
b24odm0sIHZtLnByb3BlcnR5TmFtZXMtPnByb3RvdHlwZSwgcHJvdG90eXBlLCBSZWFkT25seSB8
IERvbnRFbnVtIHwgRG9udERlbGV0ZSk7CiAgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24o
dm0sIHZtLnByb3BlcnR5TmFtZXMtPmxlbmd0aCwganNOdW1iZXIoMSksIFJlYWRPbmx5IHwgRG9u
dEVudW0gfCBEb250RGVsZXRlKTsKLSAgICBtX1J1bnRpbWVFcnJvclN0cnVjdHVyZS5zZXQodm0s
IHRoaXMsIHN0cnVjdHVyZSk7CiB9CiAKIFdlYkFzc2VtYmx5UnVudGltZUVycm9yQ29uc3RydWN0
b3I6OldlYkFzc2VtYmx5UnVudGltZUVycm9yQ29uc3RydWN0b3IoVk0mIHZtLCBTdHJ1Y3R1cmUq
IHN0cnVjdHVyZSkKQEAgLTkyLDEyICs5Nyw2IEBAIENhbGxUeXBlIFdlYkFzc2VtYmx5UnVudGlt
ZUVycm9yQ29uc3RydWN0b3I6OmdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJiBjYWxsCiAg
ICAgcmV0dXJuIENhbGxUeXBlOjpIb3N0OwogfQogCi12b2lkIFdlYkFzc2VtYmx5UnVudGltZUVy
cm9yQ29uc3RydWN0b3I6OnZpc2l0Q2hpbGRyZW4oSlNDZWxsKiBjZWxsLCBTbG90VmlzaXRvciYg
dmlzaXRvcikKLXsKLSAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PFdlYkFzc2VtYmx5UnVu
dGltZUVycm9yQ29uc3RydWN0b3IqPihjZWxsKTsKLSAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVS
SVRTKHRoaXNPYmplY3QsIGluZm8oKSk7Ci0gICAgQmFzZTo6dmlzaXRDaGlsZHJlbih0aGlzT2Jq
ZWN0LCB2aXNpdG9yKTsKLSAgICB2aXNpdG9yLmFwcGVuZCgmdGhpc09iamVjdC0+bV9SdW50aW1l
RXJyb3JTdHJ1Y3R1cmUpOwotfQotCiB9IC8vIG5hbWVzcGFjZSBKU0MKKworI2VuZGlmIC8vIEVO
QUJMRShXRUJBU1NFTUJMWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L2pzL1dlYkFzc2VtYmx5UnVudGltZUVycm9yQ29uc3RydWN0b3IuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5UnVudGltZUVycm9yQ29uc3RydWN0b3IuaAppbmRl
eCA5ZmM5MWM3Li5iZTQxOWQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9qcy9XZWJBc3NlbWJseVJ1bnRpbWVFcnJvckNvbnN0cnVjdG9yLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlSdW50aW1lRXJyb3JDb25zdHJ1Y3Rvci5o
CkBAIC0yNSw2ICsyNSw4IEBACiAKICNwcmFnbWEgb25jZQogCisjaWYgRU5BQkxFKFdFQkFTU0VN
QkxZKQorCiAjaW5jbHVkZSAiSW50ZXJuYWxGdW5jdGlvbi5oIgogI2luY2x1ZGUgIkpTT2JqZWN0
LmgiCiAKQEAgLTQyLDggKzQ0LDYgQEAgcHVibGljOgogCiAgICAgREVDTEFSRV9JTkZPOwogCi0g
ICAgU3RydWN0dXJlKiBSdW50aW1lRXJyb3JTdHJ1Y3R1cmUoKSBjb25zdCB7IHJldHVybiBtX1J1
bnRpbWVFcnJvclN0cnVjdHVyZS5nZXQoKTsgfQotCiBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBmaW5p
c2hDcmVhdGlvbihWTSYsIFdlYkFzc2VtYmx5UnVudGltZUVycm9yUHJvdG90eXBlKiwgU3RydWN0
dXJlKik7CiAKQEAgLTUxLDkgKzUxLDggQEAgcHJpdmF0ZToKICAgICBXZWJBc3NlbWJseVJ1bnRp
bWVFcnJvckNvbnN0cnVjdG9yKFZNJiwgU3RydWN0dXJlKik7CiAgICAgc3RhdGljIENvbnN0cnVj
dFR5cGUgZ2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRhJik7CiAgICAgc3Rh
dGljIENhbGxUeXBlIGdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJik7Ci0gICAgc3RhdGlj
IHZvaWQgdmlzaXRDaGlsZHJlbihKU0NlbGwqLCBTbG90VmlzaXRvciYpOwotCi0gICAgV3JpdGVC
YXJyaWVyPFN0cnVjdHVyZT4gbV9SdW50aW1lRXJyb3JTdHJ1Y3R1cmU7CiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBKU0MKKworI2VuZGlmIC8vIEVOQUJMRShXRUJBU1NFTUJMWSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5UnVudGltZUVycm9yUHJv
dG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5UnVu
dGltZUVycm9yUHJvdG90eXBlLmNwcAppbmRleCBkYmM2Njc3Li5iMzc0ZGJkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseVJ1bnRpbWVFcnJvclBy
b3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1i
bHlSdW50aW1lRXJyb3JQcm90b3R5cGUuY3BwCkBAIC0yNiw2ICsyNiw4IEBACiAjaW5jbHVkZSAi
Y29uZmlnLmgiCiAjaW5jbHVkZSAiV2ViQXNzZW1ibHlSdW50aW1lRXJyb3JQcm90b3R5cGUuaCIK
IAorI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKKwogI2luY2x1ZGUgIkZ1bmN0aW9uUHJvdG90eXBl
LmgiCiAjaW5jbHVkZSAiSlNDSW5saW5lcy5oIgogCkBAIC02MywzICs2NSw1IEBAIFdlYkFzc2Vt
Ymx5UnVudGltZUVycm9yUHJvdG90eXBlOjpXZWJBc3NlbWJseVJ1bnRpbWVFcnJvclByb3RvdHlw
ZShWTSYgdm0sIFN0cnVjCiB9CiAKIH0gLy8gbmFtZXNwYWNlIEpTQworCisjZW5kaWYgLy8gRU5B
QkxFKFdFQkFTU0VNQkxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
anMvV2ViQXNzZW1ibHlSdW50aW1lRXJyb3JQcm90b3R5cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5UnVudGltZUVycm9yUHJvdG90eXBlLmgKaW5kZXggYTcy
OWZiMC4uMjA3N2ZhOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMv
V2ViQXNzZW1ibHlSdW50aW1lRXJyb3JQcm90b3R5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseVJ1bnRpbWVFcnJvclByb3RvdHlwZS5oCkBAIC0yNSw2
ICsyNSw4IEBACiAKICNwcmFnbWEgb25jZQogCisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQorCiAj
aW5jbHVkZSAiSlNEZXN0cnVjdGlibGVPYmplY3QuaCIKICNpbmNsdWRlICJKU09iamVjdC5oIgog
CkBAIC00OCwzICs1MCw1IEBAIHByaXZhdGU6CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKKwor
I2VuZGlmIC8vIEVOQUJMRShXRUJBU1NFTUJMWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5VGFibGVDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseVRhYmxlQ29uc3RydWN0b3IuY3BwCmlu
ZGV4IDA1M2Q4YmYuLjRiNjYwOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL2pzL1dlYkFzc2VtYmx5VGFibGVDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlUYWJsZUNvbnN0cnVjdG9yLmNwcApAQCAtMjYs
NiArMjYsOCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIldlYkFzc2VtYmx5VGFi
bGVDb25zdHJ1Y3Rvci5oIgogCisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQorCiAjaW5jbHVkZSAi
RnVuY3Rpb25Qcm90b3R5cGUuaCIKICNpbmNsdWRlICJKU0NJbmxpbmVzLmgiCiAjaW5jbHVkZSAi
V2ViQXNzZW1ibHlUYWJsZVByb3RvdHlwZS5oIgpAQCAtMTAxLDMgKzEwMyw2IEBAIHZvaWQgV2Vi
QXNzZW1ibHlUYWJsZUNvbnN0cnVjdG9yOjp2aXNpdENoaWxkcmVuKEpTQ2VsbCogY2VsbCwgU2xv
dFZpc2l0b3ImIHZpc2l0CiB9CiAKIH0gLy8gbmFtZXNwYWNlIEpTQworCisjZW5kaWYgLy8gRU5B
QkxFKFdFQkFTU0VNQkxZKQorCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9qcy9XZWJBc3NlbWJseVRhYmxlQ29uc3RydWN0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL2pzL1dlYkFzc2VtYmx5VGFibGVDb25zdHJ1Y3Rvci5oCmluZGV4IDg5NGI1MTQuLmUw
OGU3MzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2Vt
Ymx5VGFibGVDb25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pz
L1dlYkFzc2VtYmx5VGFibGVDb25zdHJ1Y3Rvci5oCkBAIC0yNSw2ICsyNSw4IEBACiAKICNwcmFn
bWEgb25jZQogCisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQorCiAjaW5jbHVkZSAiSW50ZXJuYWxG
dW5jdGlvbi5oIgogI2luY2x1ZGUgIkpTT2JqZWN0LmgiCiAKQEAgLTU3LDMgKzU5LDUgQEAgcHJp
dmF0ZToKIH07CiAKIH0gLy8gbmFtZXNwYWNlIEpTQworCisjZW5kaWYgLy8gRU5BQkxFKFdFQkFT
U0VNQkxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNz
ZW1ibHlUYWJsZVByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9X
ZWJBc3NlbWJseVRhYmxlUHJvdG90eXBlLmNwcAppbmRleCA1YzMyMDk3Li43YWEzOTRiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseVRhYmxlUHJv
dG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJs
eVRhYmxlUHJvdG90eXBlLmNwcApAQCAtMjYsNiArMjYsOCBAQAogI2luY2x1ZGUgImNvbmZpZy5o
IgogI2luY2x1ZGUgIldlYkFzc2VtYmx5VGFibGVQcm90b3R5cGUuaCIKIAorI2lmIEVOQUJMRShX
RUJBU1NFTUJMWSkKKwogI2luY2x1ZGUgIkZ1bmN0aW9uUHJvdG90eXBlLmgiCiAjaW5jbHVkZSAi
SlNDSW5saW5lcy5oIgogCkBAIC02MywzICs2NSw1IEBAIFdlYkFzc2VtYmx5VGFibGVQcm90b3R5
cGU6OldlYkFzc2VtYmx5VGFibGVQcm90b3R5cGUoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVy
CiB9CiAKIH0gLy8gbmFtZXNwYWNlIEpTQworCisjZW5kaWYgLy8gRU5BQkxFKFdFQkFTU0VNQkxZ
KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlU
YWJsZVByb3RvdHlwZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1i
bHlUYWJsZVByb3RvdHlwZS5oCmluZGV4IGM2M2UwMDEuLmM1YjFlZjggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5VGFibGVQcm90b3R5cGUuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseVRhYmxlUHJvdG90
eXBlLmgKQEAgLTI1LDYgKzI1LDggQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpZiBFTkFCTEUoV0VC
QVNTRU1CTFkpCisKICNpbmNsdWRlICJKU0Rlc3RydWN0aWJsZU9iamVjdC5oIgogI2luY2x1ZGUg
IkpTT2JqZWN0LmgiCiAKQEAgLTQ4LDMgKzUwLDUgQEAgcHJpdmF0ZToKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIEpTQworCisjZW5kaWYgLy8gRU5BQkxFKFdFQkFTU0VNQkxZKQotLSAKMi4xMC4xCgo=
</data>
<flag name="review"
          id="315371"
          type_id="1"
          status="+"
          setter="keith_miller"
    />
    <flag name="commit-queue"
          id="315372"
          type_id="3"
          status="-"
          setter="keith_miller"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>292293</attachid>
            <date>2016-10-20 17:42:40 -0700</date>
            <delta_ts>2016-10-20 17:47:30 -0700</delta_ts>
            <desc>patch</desc>
            <filename>0001-WebAssembly-API-implement-exception-constructors-pro.patch</filename>
            <type>text/plain</type>
            <size>88295</size>
            <attacher name="JF Bastien">jfbastien</attacher>
            
              <data encoding="base64">RnJvbSBiNmE5OWViYmNhMTQwYjUwNmFhYWMwY2MxZDAwZmM3NzJlZDY1ZGQzIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKRiBCYXN0aWVuIDxqZmJhc3RpZW5AYXBwbGUuY29tPgpEYXRl
OiBXZWQsIDE5IE9jdCAyMDE2IDE1OjQ0OjQzIC0wNzAwClN1YmplY3Q6IFtQQVRDSF0gV2ViQXNz
ZW1ibHkgQVBJOiBpbXBsZW1lbnQgZXhjZXB0aW9uIGNvbnN0cnVjdG9ycyBwcm9wZXJseQoKIC0g
UmVuYW1lIFdlYkFzc2VtYmx5T2JqZWN0IHRvIEpTV2ViQXNzZW1ibHkgZm9yIGNvbnNpc3RlbmN5
LgogLSBXZWJBc3NlbWJseSBvYmplY3Qgbm93IGhhcyBpdHMgb3duIHByb3RvdHlwZTogYWRkIFdl
YkFzc2VtYmx5UHJvdG90eXBlLCBhbmQKICAgdXNlIGl0IHRvIHJlZ2lzdGVyIEpTV2ViQXNzZW1i
bHkncyBmdW5jdGlvbiBwcm9wZXJ0aWVzIHRocm91Z2ggYXV0by1nZW5lcmF0ZWQKICAgLmx1dC5o
LCBpbnN0ZWFkIG9mIG1hbnVhbGx5LgogLSBUaGUgZXJyb3IgY29uc3RydWN0b3JzIHVzZWQgdG8g
dGhyb3cgKGUuZy4gYG5ldyBXZWJBc3NlbWJseS5Db21waWxlRXJyb3IoKWApLgogLSBSZWdpc3Rl
ciBXZWJBc3NlbWJseSdzIGNvbnN0cnVjdG9ycyBmcm9tIHRoZSBnbG9iYWwgb2JqZWN0LCBhbmQg
aG9sZCBhCiAgIHJlZmVyZW5jZSB0byB0aGVpciBzdHJ1Y3R1cmUgYW5kIHByb3RvdHlwZSBzbyB0
aGF0IGludm9raW5nIHRoZSBjb25zdHJ1Y3RvcgogICBjYW4gdXNlIHRoZSBzdHJ1Y3R1cmUgZGly
ZWN0bHkgZnJvbSB0aGUgZ2xvYmFsIG9iamVjdC4KIC0gQWRkIGEgcHJvdG90eXBlIGJhc2UgZmll
bGQgdG8gZ2xvYmFsIG9iamVjdCBjcmVhdGlvbi4gUHJldmlvdXMgb25lcyBhbGwgaGFkCiAgIE9i
amVjdCdzIHByb3RvdHlwZSBhcyB0aGVpciBiYXNlLCBidXQgV2ViQXNzZW1ibHkncyBlcnJvciBj
b25zdHJ1Y3RvcnMgaGF2ZQogICBFcnJvciBhcyB0aGVpciBiYXNlLgogLSBUZXN0IGZvciB0aGUg
ZXJyb3Igb2JqZWN0J3MgY29ycmVjdG5lc3MuCiAtIEFkZCBtaXNzaW5nICNpZiBFTkFCTEUoV0VC
QVNTRU1CTFkpCi0tLQogSlNUZXN0cy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfCAgMjYgKysrKysKIEpTVGVzdHMvd2FzbS9qcy1hcGkvdGVzdF9iYXNpY19hcGku
anMgICAgICAgICAgICAgIHwgIDIyICsrKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxp
c3RzLnR4dCAgICAgICAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hh
bmdlTG9nICAgICAgICAgICAgICAgICAgICB8ICA4OCArKysrKysrKysrKysrKysrCiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSAgICAgICAgICB8ICAgMSArCiAuLi4v
SmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiAgICAgICB8ICAyNCArKyst
LQogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwICAgfCAg
NTUgKysrKysrLS0tLQogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmpl
Y3QuaCAgICAgfCAgNTcgKysrKysrKy0tLS0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL0pT
V2ViQXNzZW1ibHkuY3BwICAgICAgIHwgIDY1ICsrKysrKysrKysrKwogU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vSlNXZWJBc3NlbWJseS5oICAgICAgICAgfCAgNzEgKysrKysrKysrKysrKwog
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2ViQXNzZW1ibHlPYmplY3QuY3BwICAgfCAxMTMg
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAuLi4vd2FzbS9qcy9KU1dlYkFzc2VtYmx5Q29tcGlsZUVy
cm9yLmNwcCAgICAgICAgICB8ICAgNCArCiAuLi4vd2FzbS9qcy9KU1dlYkFzc2VtYmx5Q29tcGls
ZUVycm9yLmggICAgICAgICAgICB8ICAgOCArKwogLi4uL3dhc20vanMvSlNXZWJBc3NlbWJseUlu
c3RhbmNlLmNwcCAgICAgICAgICAgICAgfCAgIDQgKwogLi4uL0phdmFTY3JpcHRDb3JlL3dhc20v
anMvSlNXZWJBc3NlbWJseUluc3RhbmNlLmggfCAgIDQgKwogLi4uL0phdmFTY3JpcHRDb3JlL3dh
c20vanMvSlNXZWJBc3NlbWJseU1lbW9yeS5jcHAgfCAgIDQgKwogLi4uL0phdmFTY3JpcHRDb3Jl
L3dhc20vanMvSlNXZWJBc3NlbWJseU1lbW9yeS5oICAgfCAgIDQgKwogLi4uL0phdmFTY3JpcHRD
b3JlL3dhc20vanMvSlNXZWJBc3NlbWJseU1vZHVsZS5jcHAgfCAgIDQgKwogLi4uL0phdmFTY3Jp
cHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseU1vZHVsZS5oICAgfCAgIDQgKwogLi4uL3dhc20v
anMvSlNXZWJBc3NlbWJseVJ1bnRpbWVFcnJvci5jcHAgICAgICAgICAgfCAgIDQgKwogLi4uL3dh
c20vanMvSlNXZWJBc3NlbWJseVJ1bnRpbWVFcnJvci5oICAgICAgICAgICAgfCAgIDggKysKIC4u
Li9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlUYWJsZS5jcHAgIHwgICA0ICsK
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlUYWJsZS5oIHwgICA0
ICsKIC4uLi93YXNtL2pzL1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yQ29uc3RydWN0b3IuY3BwIHwg
IDI1ICsrKy0tCiAuLi4vd2FzbS9qcy9XZWJBc3NlbWJseUNvbXBpbGVFcnJvckNvbnN0cnVjdG9y
LmggICB8ICAgOSArLQogLi4uL3dhc20vanMvV2ViQXNzZW1ibHlDb21waWxlRXJyb3JQcm90b3R5
cGUuY3BwICAgfCAgIDQgKwogLi4uL3dhc20vanMvV2ViQXNzZW1ibHlDb21waWxlRXJyb3JQcm90
b3R5cGUuaCAgICAgfCAgIDQgKwogLi4uL3dhc20vanMvV2ViQXNzZW1ibHlJbnN0YW5jZUNvbnN0
cnVjdG9yLmNwcCAgICAgfCAgIDUgKwogLi4uL3dhc20vanMvV2ViQXNzZW1ibHlJbnN0YW5jZUNv
bnN0cnVjdG9yLmggICAgICAgfCAgIDQgKwogLi4uL3dhc20vanMvV2ViQXNzZW1ibHlJbnN0YW5j
ZVByb3RvdHlwZS5jcHAgICAgICAgfCAgIDQgKwogLi4uL3dhc20vanMvV2ViQXNzZW1ibHlJbnN0
YW5jZVByb3RvdHlwZS5oICAgICAgICAgfCAgIDQgKwogLi4uL3dhc20vanMvV2ViQXNzZW1ibHlN
ZW1vcnlDb25zdHJ1Y3Rvci5jcHAgICAgICAgfCAgIDUgKwogLi4uL3dhc20vanMvV2ViQXNzZW1i
bHlNZW1vcnlDb25zdHJ1Y3Rvci5oICAgICAgICAgfCAgIDQgKwogLi4uL3dhc20vanMvV2ViQXNz
ZW1ibHlNZW1vcnlQcm90b3R5cGUuY3BwICAgICAgICAgfCAgIDQgKwogLi4uL3dhc20vanMvV2Vi
QXNzZW1ibHlNZW1vcnlQcm90b3R5cGUuaCAgICAgICAgICAgfCAgIDQgKwogLi4uL3dhc20vanMv
V2ViQXNzZW1ibHlNb2R1bGVDb25zdHJ1Y3Rvci5jcHAgICAgICAgfCAgIDUgKwogLi4uL3dhc20v
anMvV2ViQXNzZW1ibHlNb2R1bGVDb25zdHJ1Y3Rvci5oICAgICAgICAgfCAgIDQgKwogLi4uL3dh
c20vanMvV2ViQXNzZW1ibHlNb2R1bGVQcm90b3R5cGUuY3BwICAgICAgICAgfCAgIDQgKwogLi4u
L3dhc20vanMvV2ViQXNzZW1ibHlNb2R1bGVQcm90b3R5cGUuaCAgICAgICAgICAgfCAgIDQgKwog
Li4uL3dhc20vanMvV2ViQXNzZW1ibHlQcm90b3R5cGUuY3BwICAgICAgICAgICAgICAgfCAgODkg
KysrKysrKysrKysrKysrKwogLi4uL1dlYkFzc2VtYmx5UHJvdG90eXBlLmh9ICAgICAgICAgICAg
ICAgICAgICAgICAgfCAgMjggKystLS0KIC4uLi93YXNtL2pzL1dlYkFzc2VtYmx5UnVudGltZUVy
cm9yQ29uc3RydWN0b3IuY3BwIHwgIDI1ICsrKy0tCiAuLi4vd2FzbS9qcy9XZWJBc3NlbWJseVJ1
bnRpbWVFcnJvckNvbnN0cnVjdG9yLmggICB8ICAgOSArLQogLi4uL3dhc20vanMvV2ViQXNzZW1i
bHlSdW50aW1lRXJyb3JQcm90b3R5cGUuY3BwICAgfCAgIDQgKwogLi4uL3dhc20vanMvV2ViQXNz
ZW1ibHlSdW50aW1lRXJyb3JQcm90b3R5cGUuaCAgICAgfCAgIDQgKwogLi4uL3dhc20vanMvV2Vi
QXNzZW1ibHlUYWJsZUNvbnN0cnVjdG9yLmNwcCAgICAgICAgfCAgIDUgKwogLi4uL3dhc20vanMv
V2ViQXNzZW1ibHlUYWJsZUNvbnN0cnVjdG9yLmggICAgICAgICAgfCAgIDQgKwogLi4uL3dhc20v
anMvV2ViQXNzZW1ibHlUYWJsZVByb3RvdHlwZS5jcHAgICAgICAgICAgfCAgIDQgKwogLi4uL3dh
c20vanMvV2ViQXNzZW1ibHlUYWJsZVByb3RvdHlwZS5oICAgICAgICAgICAgfCAgIDQgKwogNDkg
ZmlsZXMgY2hhbmdlZCwgNjM0IGluc2VydGlvbnMoKyksIDIxNyBkZWxldGlvbnMoLSkKIGNyZWF0
ZSBtb2RlIDEwMDY0NCBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9KU1dlYkFzc2VtYmx5LmNw
cAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL0pTV2ViQXNz
ZW1ibHkuaAogZGVsZXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dl
YkFzc2VtYmx5T2JqZWN0LmNwcAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5UHJvdG90eXBlLmNwcAogcmVuYW1lIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL3tXZWJBc3NlbWJseU9iamVjdC5oID0+IGpzL1dlYkFzc2VtYmx5UHJv
dG90eXBlLmh9ICg3NCUpCgpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9DaGFuZ2VMb2cgYi9KU1Rlc3Rz
L0NoYW5nZUxvZwppbmRleCBkZDM3NTAyLi4zOGFjMTAxIDEwMDY0NAotLS0gYS9KU1Rlc3RzL0No
YW5nZUxvZworKysgYi9KU1Rlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDE2LTEw
LTIwICBKRiBCYXN0aWVuICA8amZiYXN0aWVuQGFwcGxlLmNvbT4KKworICAgICAgICBXZWJBc3Nl
bWJseSBBUEk6IGltcGxlbWVudCBleGNlcHRpb24gY29uc3RydWN0b3JzIHByb3Blcmx5CisKKyAg
ICAgICAgIC0gUmVuYW1lIFdlYkFzc2VtYmx5T2JqZWN0IHRvIEpTV2ViQXNzZW1ibHkgZm9yIGNv
bnNpc3RlbmN5LgorICAgICAgICAgLSBXZWJBc3NlbWJseSBvYmplY3Qgbm93IGhhcyBpdHMgb3du
IHByb3RvdHlwZTogYWRkIFdlYkFzc2VtYmx5UHJvdG90eXBlLCBhbmQKKyAgICAgICAgICAgdXNl
IGl0IHRvIHJlZ2lzdGVyIEpTV2ViQXNzZW1ibHkncyBmdW5jdGlvbiBwcm9wZXJ0aWVzIHRocm91
Z2ggYXV0by1nZW5lcmF0ZWQKKyAgICAgICAgICAgLmx1dC5oLCBpbnN0ZWFkIG9mIG1hbnVhbGx5
LgorICAgICAgICAgLSBUaGUgZXJyb3IgY29uc3RydWN0b3JzIHVzZWQgdG8gdGhyb3cgKGUuZy4g
YG5ldyBXZWJBc3NlbWJseS5Db21waWxlRXJyb3IoKWApLgorICAgICAgICAgLSBSZWdpc3RlciBX
ZWJBc3NlbWJseSdzIGNvbnN0cnVjdG9ycyBmcm9tIHRoZSBnbG9iYWwgb2JqZWN0LCBhbmQgaG9s
ZCBhCisgICAgICAgICAgIHJlZmVyZW5jZSB0byB0aGVpciBzdHJ1Y3R1cmUgYW5kIHByb3RvdHlw
ZSBzbyB0aGF0IGludm9raW5nIHRoZSBjb25zdHJ1Y3RvcgorICAgICAgICAgICBjYW4gdXNlIHRo
ZSBzdHJ1Y3R1cmUgZGlyZWN0bHkgZnJvbSB0aGUgZ2xvYmFsIG9iamVjdC4KKyAgICAgICAgIC0g
QWRkIGEgcHJvdG90eXBlIGJhc2UgZmllbGQgdG8gZ2xvYmFsIG9iamVjdCBjcmVhdGlvbi4gUHJl
dmlvdXMgb25lcyBhbGwgaGFkCisgICAgICAgICAgIE9iamVjdCdzIHByb3RvdHlwZSBhcyB0aGVp
ciBiYXNlLCBidXQgV2ViQXNzZW1ibHkncyBlcnJvciBjb25zdHJ1Y3RvcnMgaGF2ZQorICAgICAg
ICAgICBFcnJvciBhcyB0aGVpciBiYXNlLgorICAgICAgICAgLSBUZXN0IGZvciB0aGUgZXJyb3Ig
b2JqZWN0J3MgY29ycmVjdG5lc3MuCisgICAgICAgICAtIEFkZCBtaXNzaW5nICNpZiBFTkFCTEUo
V0VCQVNTRU1CTFkpCisKKyAgICAgICAgV2ViQXNzZW1ibHkgQVBJOiBpbXBsZW1lbnQgZXhjZXB0
aW9uIGNvbnN0cnVjdG9ycyBwcm9wZXJseQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTYzNjk5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiB3YXNtL2pzLWFwaS90ZXN0X2Jhc2ljX2FwaS5qczoKKyAgICAg
ICAgKGNvbnN0LmMuaW4uY29uc3RydWN0b3JQcm9wZXJ0aWVzKTogbW9yZSB0ZXN0cworCiAyMDE2
LTEwLTIwICBDYWl0bGluIFBvdHRlciAgPGNhaXRwQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0pT
Q10gZGlzYWxsb3cgcmVmZXJlbmNlcyB0byBgYXdhaXRgIGluIEFzeW5jRnVuY3Rpb24gZm9ybWFs
IHBhcmFtZXRlcnMKZGlmZiAtLWdpdCBhL0pTVGVzdHMvd2FzbS9qcy1hcGkvdGVzdF9iYXNpY19h
cGkuanMgYi9KU1Rlc3RzL3dhc20vanMtYXBpL3Rlc3RfYmFzaWNfYXBpLmpzCmluZGV4IGJiZDUw
YjUuLmM0ZTE5MjcgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvd2FzbS9qcy1hcGkvdGVzdF9iYXNpY19h
cGkuanMKKysrIGIvSlNUZXN0cy93YXNtL2pzLWFwaS90ZXN0X2Jhc2ljX2FwaS5qcwpAQCAtMjcs
NiArMjcsOSBAQCBhc3NlcnQubm90VW5kZWYoV2ViQXNzZW1ibHkpOwogY2hlY2tPd25Qcm9wZXJ0
eURlc2NyaXB0b3IodXRpbGl0aWVzLmdsb2JhbCwgIldlYkFzc2VtYmx5IiwgeyB0eXBlb2Z2YWx1
ZTogIm9iamVjdCIsIHdyaXRhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUsIGVudW1lcmFi
bGU6IGZhbHNlIH0pOwogYXNzZXJ0LmVxKFN0cmluZyhXZWJBc3NlbWJseSksICJbb2JqZWN0IFdl
YkFzc2VtYmx5XSIpOwogYXNzZXJ0LmlzVW5kZWYoV2ViQXNzZW1ibHkubGVuZ3RoKTsKK2Fzc2Vy
dC5lcShXZWJBc3NlbWJseSBpbnN0YW5jZW9mIE9iamVjdCwgdHJ1ZSk7Cithc3NlcnQudGhyb3dz
KCgpID0+IFdlYkFzc2VtYmx5KCksIFR5cGVFcnJvciwgYFdlYkFzc2VtYmx5IGlzIG5vdCBhIGZ1
bmN0aW9uLiAoSW4gJ1dlYkFzc2VtYmx5KCknLCAnV2ViQXNzZW1ibHknIGlzIGFuIGluc3RhbmNl
IG9mIFdlYkFzc2VtYmx5KWApOworYXNzZXJ0LnRocm93cygoKSA9PiBuZXcgV2ViQXNzZW1ibHko
KSwgVHlwZUVycm9yLCBgV2ViQXNzZW1ibHkgaXMgbm90IGEgY29uc3RydWN0b3IgKGV2YWx1YXRp
bmcgJ25ldyBXZWJBc3NlbWJseSgpJylgKTsKIAogZm9yIChjb25zdCBmIGluIGZ1bmN0aW9uUHJv
cGVydGllcykgewogICAgIGFzc2VydC5ub3RVbmRlZihXZWJBc3NlbWJseVtmXSk7CkBAIC0zOSwx
MCArNDIsMTkgQEAgZm9yIChjb25zdCBjIGluIGNvbnN0cnVjdG9yUHJvcGVydGllcykgewogICAg
IGFzc2VydC5lcShXZWJBc3NlbWJseVtjXS5uYW1lLCBjKTsKICAgICBhc3NlcnQuZXEoV2ViQXNz
ZW1ibHlbY10ubGVuZ3RoLCBjb25zdHJ1Y3RvclByb3BlcnRpZXNbY10ubGVuZ3RoKTsKICAgICBj
aGVja093blByb3BlcnR5RGVzY3JpcHRvcihXZWJBc3NlbWJseSwgYywgY29uc3RydWN0b3JQcm9w
ZXJ0aWVzW2NdKTsKLSAgICAvLyBDaGVjayB0aGUgY29uc3RydWN0b3IncyBwcm90b3R5cGUuCiAg
ICAgY2hlY2tPd25Qcm9wZXJ0eURlc2NyaXB0b3IoV2ViQXNzZW1ibHlbY10sICJwcm90b3R5cGUi
LCB7IHR5cGVvZnZhbHVlOiAib2JqZWN0Iiwgd3JpdGFibGU6IGZhbHNlLCBjb25maWd1cmFibGU6
IGZhbHNlLCBlbnVtZXJhYmxlOiBmYWxzZSB9KTsKLSAgICBhc3NlcnQuZXEoU3RyaW5nKFdlYkFz
c2VtYmx5W2NdLnByb3RvdHlwZSksIGBbb2JqZWN0IFdlYkFzc2VtYmx5LiR7Y30ucHJvdG90eXBl
XWApOwogICAgIGFzc2VydC50aHJvd3MoKCkgPT4gV2ViQXNzZW1ibHlbY10oKSwgVHlwZUVycm9y
LCBgY2FsbGluZyBXZWJBc3NlbWJseS4ke2N9IGNvbnN0cnVjdG9yIHdpdGhvdXQgbmV3IGlzIGlu
dmFsaWRgKTsKKyAgICBpZiAoY29uc3RydWN0b3JQcm9wZXJ0aWVzW2NdLmlzRXJyb3IpIHsKKyAg
ICAgICAgY29uc3QgZSA9IG5ldyBXZWJBc3NlbWJseVtjXTsKKyAgICAgICAgYXNzZXJ0LmVxKGUg
aW5zdGFuY2VvZiBXZWJBc3NlbWJseVtjXSwgdHJ1ZSk7CisgICAgICAgIGFzc2VydC5lcShlIGlu
c3RhbmNlb2YgRXJyb3IsIHRydWUpOworICAgICAgICBhc3NlcnQuZXEoZSBpbnN0YW5jZW9mIFR5
cGVFcnJvciwgZmFsc2UpOworICAgICAgICBhc3NlcnQuZXEoZS5tZXNzYWdlLCAiIik7CisgICAg
ICAgIGFzc2VydC5lcSh0eXBlb2YgZS5zdGFjaywgInN0cmluZyIpOworICAgICAgICBjb25zdCBz
aWxseVN0cmluZyA9ICJ1aC1vaCEiOworICAgICAgICBjb25zdCBlMiA9IG5ldyBXZWJBc3NlbWJs
eVtjXShzaWxseVN0cmluZyk7CisgICAgICAgIGFzc2VydC5lcShlMi5tZXNzYWdlLCBzaWxseVN0
cmluZyk7CisgICAgfQogfQogCiAvLyBGSVhNRSBJbXBsZW1lbnQgYW5kIHRlc3QgdGhlc2UgQVBJ
cyBmdXJ0aGVyLiBGb3Igbm93IHRoZXkganVzdCB0aHJvdy4gaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE1OTc3NQpAQCAtNTEsNSArNjMsNyBAQCBmb3IgKGNvbnN0IGYg
aW4gZnVuY3Rpb25Qcm9wZXJ0aWVzKSB7CiAgICAgYXNzZXJ0LnRocm93cygoKSA9PiBXZWJBc3Nl
bWJseVtmXSgpLCBFcnJvciwgYFdlYkFzc2VtYmx5IGRvZXNuJ3QgeWV0IGltcGxlbWVudCB0aGUg
JHtmfSBmdW5jdGlvbiBwcm9wZXJ0eWApOwogfQogCi1mb3IgKGNvbnN0IGMgaW4gY29uc3RydWN0
b3JQcm9wZXJ0aWVzKQotICAgIGFzc2VydC50aHJvd3MoKCkgPT4gbmV3IFdlYkFzc2VtYmx5W2Nd
KCksIEVycm9yLCBgV2ViQXNzZW1ibHkgZG9lc24ndCB5ZXQgaW1wbGVtZW50IHRoZSAke2N9IGNv
bnN0cnVjdG9yIHByb3BlcnR5YCk7Citmb3IgKGNvbnN0IGMgaW4gY29uc3RydWN0b3JQcm9wZXJ0
aWVzKSB7CisgICAgaWYgKCFjb25zdHJ1Y3RvclByb3BlcnRpZXNbY10uaXNFcnJvcikKKyAgICAg
ICAgYXNzZXJ0LnRocm93cygoKSA9PiBuZXcgV2ViQXNzZW1ibHlbY10oKSwgRXJyb3IsIGBXZWJB
c3NlbWJseSBkb2Vzbid0IHlldCBpbXBsZW1lbnQgdGhlICR7Y30gY29uc3RydWN0b3IgcHJvcGVy
dHlgKTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4
dCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA5NjhkMDc1Li45
Nzc0MWZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC04NjEsMTIgKzg2
MSwxMiBAQCBzZXQoSmF2YVNjcmlwdENvcmVfU09VUkNFUwogICAgIHRvb2xzL0pTRG9sbGFyVk1Q
cm90b3R5cGUuY3BwCiAKICAgICB3YXNtL0pTV0FTTU1vZHVsZS5jcHAKKyAgICB3YXNtL0pTV2Vi
QXNzZW1ibHkuY3BwCiAgICAgd2FzbS9XQVNNQjNJUkdlbmVyYXRvci5jcHAKICAgICB3YXNtL1dB
U01DYWxsaW5nQ29udmVudGlvbi5jcHAKICAgICB3YXNtL1dBU01NZW1vcnkuY3BwCiAgICAgd2Fz
bS9XQVNNTW9kdWxlUGFyc2VyLmNwcAogICAgIHdhc20vV0FTTVBsYW4uY3BwCi0gICAgd2FzbS9X
ZWJBc3NlbWJseU9iamVjdC5jcHAKIAogICAgIHdhc20vanMvSlNXZWJBc3NlbWJseUNvbXBpbGVF
cnJvci5jcHAKICAgICB3YXNtL2pzL0pTV2ViQXNzZW1ibHlJbnN0YW5jZS5jcHAKQEAgLTg4Miw2
ICs4ODIsNyBAQCBzZXQoSmF2YVNjcmlwdENvcmVfU09VUkNFUwogICAgIHdhc20vanMvV2ViQXNz
ZW1ibHlNZW1vcnlQcm90b3R5cGUuY3BwCiAgICAgd2FzbS9qcy9XZWJBc3NlbWJseU1vZHVsZUNv
bnN0cnVjdG9yLmNwcAogICAgIHdhc20vanMvV2ViQXNzZW1ibHlNb2R1bGVQcm90b3R5cGUuY3Bw
CisgICAgd2FzbS9qcy9XZWJBc3NlbWJseVByb3RvdHlwZS5jcHAKICAgICB3YXNtL2pzL1dlYkFz
c2VtYmx5UnVudGltZUVycm9yQ29uc3RydWN0b3IuY3BwCiAgICAgd2FzbS9qcy9XZWJBc3NlbWJs
eVJ1bnRpbWVFcnJvclByb3RvdHlwZS5jcHAKICAgICB3YXNtL2pzL1dlYkFzc2VtYmx5VGFibGVD
b25zdHJ1Y3Rvci5jcHAKQEAgLTk0Niw2ICs5NDcsNyBAQCBzZXQoSmF2YVNjcmlwdENvcmVfT0JK
RUNUX0xVVF9TT1VSQ0VTCiAgICAgd2FzbS9qcy9XZWJBc3NlbWJseU1lbW9yeVByb3RvdHlwZS5j
cHAKICAgICB3YXNtL2pzL1dlYkFzc2VtYmx5TW9kdWxlQ29uc3RydWN0b3IuY3BwCiAgICAgd2Fz
bS9qcy9XZWJBc3NlbWJseU1vZHVsZVByb3RvdHlwZS5jcHAKKyAgICB3YXNtL2pzL1dlYkFzc2Vt
Ymx5UHJvdG90eXBlLmNwcAogICAgIHdhc20vanMvV2ViQXNzZW1ibHlSdW50aW1lRXJyb3JDb25z
dHJ1Y3Rvci5jcHAKICAgICB3YXNtL2pzL1dlYkFzc2VtYmx5UnVudGltZUVycm9yUHJvdG90eXBl
LmNwcAogICAgIHdhc20vanMvV2ViQXNzZW1ibHlUYWJsZUNvbnN0cnVjdG9yLmNwcApkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cKaW5kZXggYTU0MWFkYy4uYTc2YzJlZiAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsOTEgQEAKKzIwMTYtMTAtMjAgIEpGIEJhc3RpZW4gIDxqZmJhc3Rp
ZW5AYXBwbGUuY29tPgorCisgICAgICAgIFdlYkFzc2VtYmx5IEFQSTogaW1wbGVtZW50IGV4Y2Vw
dGlvbiBjb25zdHJ1Y3RvcnMgcHJvcGVybHkKKworICAgICAgICAgLSBSZW5hbWUgV2ViQXNzZW1i
bHlPYmplY3QgdG8gSlNXZWJBc3NlbWJseSBmb3IgY29uc2lzdGVuY3kuCisgICAgICAgICAtIFdl
YkFzc2VtYmx5IG9iamVjdCBub3cgaGFzIGl0cyBvd24gcHJvdG90eXBlOiBhZGQgV2ViQXNzZW1i
bHlQcm90b3R5cGUsIGFuZAorICAgICAgICAgICB1c2UgaXQgdG8gcmVnaXN0ZXIgSlNXZWJBc3Nl
bWJseSdzIGZ1bmN0aW9uIHByb3BlcnRpZXMgdGhyb3VnaCBhdXRvLWdlbmVyYXRlZAorICAgICAg
ICAgICAubHV0LmgsIGluc3RlYWQgb2YgbWFudWFsbHkuCisgICAgICAgICAtIFRoZSBlcnJvciBj
b25zdHJ1Y3RvcnMgdXNlZCB0byB0aHJvdyAoZS5nLiBgbmV3IFdlYkFzc2VtYmx5LkNvbXBpbGVF
cnJvcigpYCkuCisgICAgICAgICAtIFJlZ2lzdGVyIFdlYkFzc2VtYmx5J3MgY29uc3RydWN0b3Jz
IGZyb20gdGhlIGdsb2JhbCBvYmplY3QsIGFuZCBob2xkIGEKKyAgICAgICAgICAgcmVmZXJlbmNl
IHRvIHRoZWlyIHN0cnVjdHVyZSBhbmQgcHJvdG90eXBlIHNvIHRoYXQgaW52b2tpbmcgdGhlIGNv
bnN0cnVjdG9yCisgICAgICAgICAgIGNhbiB1c2UgdGhlIHN0cnVjdHVyZSBkaXJlY3RseSBmcm9t
IHRoZSBnbG9iYWwgb2JqZWN0LgorICAgICAgICAgLSBBZGQgYSBwcm90b3R5cGUgYmFzZSBmaWVs
ZCB0byBnbG9iYWwgb2JqZWN0IGNyZWF0aW9uLiBQcmV2aW91cyBvbmVzIGFsbCBoYWQKKyAgICAg
ICAgICAgT2JqZWN0J3MgcHJvdG90eXBlIGFzIHRoZWlyIGJhc2UsIGJ1dCBXZWJBc3NlbWJseSdz
IGVycm9yIGNvbnN0cnVjdG9ycyBoYXZlCisgICAgICAgICAgIEVycm9yIGFzIHRoZWlyIGJhc2Uu
CisgICAgICAgICAtIFRlc3QgZm9yIHRoZSBlcnJvciBvYmplY3QncyBjb3JyZWN0bmVzcy4KKyAg
ICAgICAgIC0gQWRkIG1pc3NpbmcgI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKKworICAgICAgICBX
ZWJBc3NlbWJseSBBUEk6IGltcGxlbWVudCBleGNlcHRpb24gY29uc3RydWN0b3JzIHByb3Blcmx5
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjM2OTkK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIENNYWtl
TGlzdHMudHh0OiByZW5hbWUgV2ViQXNzZW1ibHlPYmplY3QgLT4gSlNXZWJBc3NlbWJseTsgYWRk
IGEgLmx1dC5oIGZpbGUKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOiBuZXcgLmx1dC5o
IGZpbGUKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
OiBkaXR0bworICAgICAgICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwOiBuZXcgcHJvdG90
eXBlQmFzZSBtYWNybworICAgICAgICAoSlNDOjpKU0dsb2JhbE9iamVjdDo6aW5pdCk6IHJlZ2lz
dGVyIFdlYkFzc2VtYmx5IGNvbnN0cnVjdG9ycyBoZXJlCisgICAgICAgIChKU0M6OkpTR2xvYmFs
T2JqZWN0Ojp2aXNpdENoaWxkcmVuKTogdXNlIHRoZSBtYWNybyB0byB2aXNpdAorICAgICAgICAq
IHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuaDogZGVjbGFyZSB0aGUgV2ViQXNzZW1ibHkgY29uc3Ry
dWN0b3IgbWFjcm8KKyAgICAgICAgKiB3YXNtL0pTV2ViQXNzZW1ibHkuY3BwOiBDb3BpZWQgZnJv
bSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XZWJBc3NlbWJseU9iamVjdC5oLgorICAgICAg
ICAoSlNDOjpKU1dlYkFzc2VtYmx5OjpjcmVhdGUpOgorICAgICAgICAoSlNDOjpKU1dlYkFzc2Vt
Ymx5OjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAoSlNDOjpKU1dlYkFzc2VtYmx5OjpmaW5p
c2hDcmVhdGlvbik6CisgICAgICAgIChKU0M6OkpTV2ViQXNzZW1ibHk6OkpTV2ViQXNzZW1ibHkp
OgorICAgICAgICAqIHdhc20vSlNXZWJBc3NlbWJseS5oOiBSZW5hbWVkIGZyb20gU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vV2ViQXNzZW1ibHlPYmplY3QuaC4KKyAgICAgICAgKiB3YXNtL1dl
YkFzc2VtYmx5T2JqZWN0LmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiB3YXNtL2pzL0pTV2ViQXNz
ZW1ibHlDb21waWxlRXJyb3IuY3BwOgorICAgICAgICAqIHdhc20vanMvSlNXZWJBc3NlbWJseUNv
bXBpbGVFcnJvci5oOgorICAgICAgICAoSlNDOjpKU1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yOjpj
cmVhdGUpOiBzdHJpbmcgY29udmVuaWVuY2UKKyAgICAgICAgKiB3YXNtL2pzL0pTV2ViQXNzZW1i
bHlJbnN0YW5jZS5jcHA6CisgICAgICAgICogd2FzbS9qcy9KU1dlYkFzc2VtYmx5SW5zdGFuY2Uu
aDoKKyAgICAgICAgKiB3YXNtL2pzL0pTV2ViQXNzZW1ibHlNZW1vcnkuY3BwOgorICAgICAgICAq
IHdhc20vanMvSlNXZWJBc3NlbWJseU1lbW9yeS5oOgorICAgICAgICAqIHdhc20vanMvSlNXZWJB
c3NlbWJseU1vZHVsZS5jcHA6CisgICAgICAgICogd2FzbS9qcy9KU1dlYkFzc2VtYmx5TW9kdWxl
Lmg6CisgICAgICAgICogd2FzbS9qcy9KU1dlYkFzc2VtYmx5UnVudGltZUVycm9yLmNwcDoKKyAg
ICAgICAgKiB3YXNtL2pzL0pTV2ViQXNzZW1ibHlSdW50aW1lRXJyb3IuaDoKKyAgICAgICAgKEpT
Qzo6SlNXZWJBc3NlbWJseVJ1bnRpbWVFcnJvcjo6Y3JlYXRlKTogc3RyaW5nIGNvbnZlbmllbmNl
CisgICAgICAgICogd2FzbS9qcy9KU1dlYkFzc2VtYmx5VGFibGUuY3BwOgorICAgICAgICAqIHdh
c20vanMvSlNXZWJBc3NlbWJseVRhYmxlLmg6CisgICAgICAgICogd2FzbS9qcy9XZWJBc3NlbWJs
eUNvbXBpbGVFcnJvckNvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6Y29uc3RydWN0SlNX
ZWJBc3NlbWJseUNvbXBpbGVFcnJvcik6ZG9uJ3QgdGhyb3csIGNyZWF0ZSB0aGUgb2JqZWN0Cisg
ICAgICAgIChKU0M6OldlYkFzc2VtYmx5Q29tcGlsZUVycm9yQ29uc3RydWN0b3I6OmZpbmlzaENy
ZWF0aW9uKTpubyBuZWVkIGZvciB0aGUgc3RydWN0dXJlLCBpdCdzIG9uIHRoZSBnbG9iYWwgb2Jq
ZWN0CisgICAgICAgICogd2FzbS9qcy9XZWJBc3NlbWJseUNvbXBpbGVFcnJvckNvbnN0cnVjdG9y
Lmg6CisgICAgICAgICogd2FzbS9qcy9XZWJBc3NlbWJseUNvbXBpbGVFcnJvclByb3RvdHlwZS5j
cHA6CisgICAgICAgICogd2FzbS9qcy9XZWJBc3NlbWJseUNvbXBpbGVFcnJvclByb3RvdHlwZS5o
OgorICAgICAgICAqIHdhc20vanMvV2ViQXNzZW1ibHlJbnN0YW5jZUNvbnN0cnVjdG9yLmNwcDoK
KyAgICAgICAgKiB3YXNtL2pzL1dlYkFzc2VtYmx5SW5zdGFuY2VDb25zdHJ1Y3Rvci5oOgorICAg
ICAgICAqIHdhc20vanMvV2ViQXNzZW1ibHlJbnN0YW5jZVByb3RvdHlwZS5jcHA6CisgICAgICAg
ICogd2FzbS9qcy9XZWJBc3NlbWJseUluc3RhbmNlUHJvdG90eXBlLmg6CisgICAgICAgICogd2Fz
bS9qcy9XZWJBc3NlbWJseU1lbW9yeUNvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKiB3YXNtL2pz
L1dlYkFzc2VtYmx5TWVtb3J5Q29uc3RydWN0b3IuaDoKKyAgICAgICAgKiB3YXNtL2pzL1dlYkFz
c2VtYmx5TWVtb3J5UHJvdG90eXBlLmNwcDoKKyAgICAgICAgKiB3YXNtL2pzL1dlYkFzc2VtYmx5
TWVtb3J5UHJvdG90eXBlLmg6CisgICAgICAgICogd2FzbS9qcy9XZWJBc3NlbWJseU1vZHVsZUNv
bnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKiB3YXNtL2pzL1dlYkFzc2VtYmx5TW9kdWxlQ29uc3Ry
dWN0b3IuaDoKKyAgICAgICAgKiB3YXNtL2pzL1dlYkFzc2VtYmx5TW9kdWxlUHJvdG90eXBlLmNw
cDoKKyAgICAgICAgKiB3YXNtL2pzL1dlYkFzc2VtYmx5TW9kdWxlUHJvdG90eXBlLmg6CisgICAg
ICAgICogd2FzbS9qcy9XZWJBc3NlbWJseVByb3RvdHlwZS5jcHA6IENvcGllZCBmcm9tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yUHJvdG90eXBl
LmNwcC4KKyAgICAgICAgKEpTQzo6d2ViQXNzZW1ibHlGdW5jdGlvblZhbGlkYXRlKToKKyAgICAg
ICAgKEpTQzo6d2ViQXNzZW1ibHlGdW5jdGlvbkNvbXBpbGUpOgorICAgICAgICAoSlNDOjpXZWJB
c3NlbWJseVByb3RvdHlwZTo6Y3JlYXRlKToKKyAgICAgICAgKEpTQzo6V2ViQXNzZW1ibHlQcm90
b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgIChKU0M6OldlYkFzc2VtYmx5UHJvdG90
eXBlOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgIChKU0M6OldlYkFzc2VtYmx5UHJvdG90eXBl
OjpXZWJBc3NlbWJseVByb3RvdHlwZSk6CisgICAgICAgICogd2FzbS9qcy9XZWJBc3NlbWJseVBy
b3RvdHlwZS5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJB
c3NlbWJseU1lbW9yeVByb3RvdHlwZS5oLgorICAgICAgICAqIHdhc20vanMvV2ViQXNzZW1ibHlS
dW50aW1lRXJyb3JDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OmNvbnN0cnVjdEpTV2Vi
QXNzZW1ibHlSdW50aW1lRXJyb3IpOmRvbid0IHRocm93LCBjcmVhdGUgdGhlIG9iamVjdAorICAg
ICAgICAoSlNDOjpXZWJBc3NlbWJseVJ1bnRpbWVFcnJvckNvbnN0cnVjdG9yOjpmaW5pc2hDcmVh
dGlvbik6bm8gbmVlZCBmb3IgdGhlIHN0cnVjdHVyZSwgaXQncyBvbiB0aGUgZ2xvYmFsIG9iamVj
dAorICAgICAgICAqIHdhc20vanMvV2ViQXNzZW1ibHlSdW50aW1lRXJyb3JDb25zdHJ1Y3Rvci5o
OgorICAgICAgICAqIHdhc20vanMvV2ViQXNzZW1ibHlSdW50aW1lRXJyb3JQcm90b3R5cGUuY3Bw
OgorICAgICAgICAqIHdhc20vanMvV2ViQXNzZW1ibHlSdW50aW1lRXJyb3JQcm90b3R5cGUuaDoK
KyAgICAgICAgKiB3YXNtL2pzL1dlYkFzc2VtYmx5VGFibGVDb25zdHJ1Y3Rvci5jcHA6CisgICAg
ICAgICogd2FzbS9qcy9XZWJBc3NlbWJseVRhYmxlQ29uc3RydWN0b3IuaDoKKyAgICAgICAgKiB3
YXNtL2pzL1dlYkFzc2VtYmx5VGFibGVQcm90b3R5cGUuY3BwOgorICAgICAgICAqIHdhc20vanMv
V2ViQXNzZW1ibHlUYWJsZVByb3RvdHlwZS5oOgorCiAyMDE2LTEwLTE5ICBNeWxlcyBDLiBNYXhm
aWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CiAKICAgICAgICAgW21hY09TXSBbaU9TXSBEaXNh
YmxlIHZhcmlhdGlvbiBmb250cyBvbiBtYWNPUyBFbCBDYXBpdGFuIGFuZCBpT1MgOQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCBlZWNiNTNjLi42NjMwNTM3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtMTY4LDYg
KzE2OCw3IEBAIE9CSkVDVF9MVVRfSEVBREVSUyA9IFwKICAgICBXZWJBc3NlbWJseU1lbW9yeVBy
b3RvdHlwZS5sdXQuaCBcCiAgICAgV2ViQXNzZW1ibHlNb2R1bGVDb25zdHJ1Y3Rvci5sdXQuaCBc
CiAgICAgV2ViQXNzZW1ibHlNb2R1bGVQcm90b3R5cGUubHV0LmggXAorICAgIFdlYkFzc2VtYmx5
UHJvdG90eXBlLmx1dC5oIFwKICAgICBXZWJBc3NlbWJseVJ1bnRpbWVFcnJvckNvbnN0cnVjdG9y
Lmx1dC5oIFwKICAgICBXZWJBc3NlbWJseVJ1bnRpbWVFcnJvclByb3RvdHlwZS5sdXQuaCBcCiAg
ICAgV2ViQXNzZW1ibHlUYWJsZUNvbnN0cnVjdG9yLmx1dC5oIFwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKaW5kZXggYWVjZDFiMi4uMDk2NmU0NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKQEAgLTE4NzksOCArMTg3OSw2IEBACiAJCUE3RkI2MTAwMTA0MEMzOEIwMDE3QTI4NiAv
KiBQcm9wZXJ0eURlc2NyaXB0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEE3RkI2MDRCMTAzRjVFQUIwMDE3QTI4NiAvKiBQcm9wZXJ0eURlc2NyaXB0
b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlB
N0ZDQzI2RDE3QTBCNkFBMDA3ODZEMUEgLyogRlRMU3dpdGNoQ2FzZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTdGQ0MyNkMxN0EwQjZBQTAwNzg2RDFB
IC8qIEZUTFN3aXRjaENhc2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQlBOEE0NzQ4RTE1MUE4MzA2MDA0MTIzRkYgLyogbGliV1RGLmEgaW4gRnJh
bWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEE0NzQ4RDE1MUE4
MzA2MDA0MTIzRkYgLyogbGliV1RGLmEgKi87IH07Ci0JCUFEMkZDQjg4MURBRUJGM0MwMEIzRTcz
NiAvKiBXZWJBc3NlbWJseU9iamVjdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBRDJGQ0I4NjFEQUVCRjM3MDBCM0U3MzYgLyogV2ViQXNzZW1ibHlP
YmplY3QuY3BwICovOyB9OwotCQlBRDJGQ0I4OTFEQUVCRjNGMDBCM0U3MzYgLyogV2ViQXNzZW1i
bHlPYmplY3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEFEMkZDQjg3MURBRUJGMzcwMEIzRTczNiAvKiBXZWJBc3NlbWJseU9iamVjdC5oICovOyB9Owog
CQlBRDJGQ0JFMjFEQjU4REFEMDBCM0U3MzYgLyogSlNXZWJBc3NlbWJseUNvbXBpbGVFcnJvci5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBRDJGQ0JB
NjFEQjU4REE0MDBCM0U3MzYgLyogSlNXZWJBc3NlbWJseUNvbXBpbGVFcnJvci5jcHAgKi87IH07
CiAJCUFEMkZDQkUzMURCNThEQUQwMEIzRTczNiAvKiBKU1dlYkFzc2VtYmx5Q29tcGlsZUVycm9y
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBRDJGQ0JB
NzFEQjU4REE0MDBCM0U3MzYgLyogSlNXZWJBc3NlbWJseUNvbXBpbGVFcnJvci5oICovOyB9Owog
CQlBRDJGQ0JFNDFEQjU4REFEMDBCM0U3MzYgLyogSlNXZWJBc3NlbWJseUluc3RhbmNlLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFEMkZDQkE4MURC
NThEQTQwMEIzRTczNiAvKiBKU1dlYkFzc2VtYmx5SW5zdGFuY2UuY3BwICovOyB9OwpAQCAtMTky
OSw2ICsxOTI3LDEwIEBACiAJCUFEMkZDQzFGMURCNTlDQjIwMEIzRTczNiAvKiBXZWJBc3NlbWJs
eVJ1bnRpbWVFcnJvclByb3RvdHlwZS5sdXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEFEMkZDQzEzMURCNTlDNTkwMEIzRTczNiAvKiBXZWJBc3NlbWJs
eVJ1bnRpbWVFcnJvclByb3RvdHlwZS5sdXQuaCAqLzsgfTsKIAkJQUQyRkNDMjAxREI1OUNCMjAw
QjNFNzM2IC8qIFdlYkFzc2VtYmx5VGFibGVDb25zdHJ1Y3Rvci5sdXQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFEMkZDQzE0MURCNTlDNTkwMEIzRTcz
NiAvKiBXZWJBc3NlbWJseVRhYmxlQ29uc3RydWN0b3IubHV0LmggKi87IH07CiAJCUFEMkZDQzIx
MURCNTlDQjIwMEIzRTczNiAvKiBXZWJBc3NlbWJseVRhYmxlUHJvdG90eXBlLmx1dC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUQyRkNDMTUxREI1OUM1
OTAwQjNFNzM2IC8qIFdlYkFzc2VtYmx5VGFibGVQcm90b3R5cGUubHV0LmggKi87IH07CisJCUFE
MkZDQzJDMURCODM4RkQwMEIzRTczNiAvKiBXZWJBc3NlbWJseVByb3RvdHlwZS5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBRDJGQ0MyNjFEQjgzOEM0
MDBCM0U3MzYgLyogV2ViQXNzZW1ibHlQcm90b3R5cGUuY3BwICovOyB9OworCQlBRDJGQ0MyRDFE
QjgzOEZEMDBCM0U3MzYgLyogV2ViQXNzZW1ibHlQcm90b3R5cGUuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFEMkZDQzI3MURCODM4QzQwMEIzRTczNiAv
KiBXZWJBc3NlbWJseVByb3RvdHlwZS5oICovOyB9OworCQlBRDJGQ0MzMDFEQjgzRDQ5MDBCM0U3
MzYgLyogSlNXZWJBc3NlbWJseS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBBRDJGQ0MyRTFEQjgzOUY3MDBCM0U3MzYgLyogSlNXZWJBc3NlbWJseS5j
cHAgKi87IH07CisJCUFEMkZDQzMxMURCODNENDkwMEIzRTczNiAvKiBKU1dlYkFzc2VtYmx5Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBRDJGQ0MyRjFE
QjgzOUY3MDBCM0U3MzYgLyogSlNXZWJBc3NlbWJseS5oICovOyB9OwogCQlBRDg2QTkzRTFBQTRE
ODhEMDAyRkU3N0YgLyogV2Vha0dDTWFwSW5saW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUQ4NkE5M0QxQUE0RDg3QzAwMkZFNzdGIC8qIFdlYWtH
Q01hcElubGluZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQlBRERCMUY2MzE4RDc3REJFMDA5QjU4QTggLyogT3BhcXVlUm9vdFNldC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUREQjFGNjIxOEQ3N0RC
NzAwOUI1OEE4IC8qIE9wYXF1ZVJvb3RTZXQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQlBREUzOUZGRjE2REQxNDRCMDAwM0NENEEgLyogUHJvcGVy
dHlUYWJsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBBRDFDRjA2ODE2RENBQjJEMDBCOTcxMjMgLyogUHJvcGVydHlUYWJsZS5jcHAgKi87IH07CkBA
IC00MjU5LDggKzQyNjEsNiBAQAogCQlBOEU4OTQzMTBDRDA2MDI0MDAzNjcxNzkgLyogSlNDYWxs
YmFja09iamVjdEZ1bmN0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBK
U0NhbGxiYWNrT2JqZWN0RnVuY3Rpb25zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUE4RTg5NDMzMENEMDYwM0YwMDM2NzE3OSAvKiBKU0dsb2JhbE9iamVjdC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBKU0dsb2JhbE9iamVjdC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlBRDFDRjA2ODE2RENBQjJEMDBCOTcxMjMgLyogUHJvcGVydHlUYWJsZS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQcm9wZXJ0eVRhYmxlLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQUQyRkNCODYxREFFQkYzNzAwQjNFNzM2
IC8qIFdlYkFzc2VtYmx5T2JqZWN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFdlYkFzc2VtYmx5T2JqZWN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJQUQyRkNCODcxREFFQkYzNzAwQjNFNzM2IC8qIFdlYkFzc2VtYmx5T2JqZWN0LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkFzc2VtYmx5T2JqZWN0Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUFEMkZDQjhDMURCNTg0NDAwMEIzRTczNiAvKiBKU1dlYkFz
c2VtYmx5TW9kdWxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEpT
V2ViQXNzZW1ibHlNb2R1bGUuY3BwOyBwYXRoID0ganMvSlNXZWJBc3NlbWJseU1vZHVsZS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUFEMkZDQjhEMURCNTg0NDAwMEIzRTczNiAv
KiBKU1dlYkFzc2VtYmx5TW9kdWxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9
IEpTV2ViQXNzZW1ibHlNb2R1bGUuaDsgcGF0aCA9IGpzL0pTV2ViQXNzZW1ibHlNb2R1bGUuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQUQyRkNCOTgxREI1ODVBNjAwQjNFNzM2IC8q
IFdlYkFzc2VtYmx5TW9kdWxlQ29uc3RydWN0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBuYW1lID0gV2ViQXNzZW1ibHlNb2R1bGVDb25zdHJ1Y3Rvci5jcHA7IHBhdGggPSBq
cy9XZWJBc3NlbWJseU1vZHVsZUNvbnN0cnVjdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTQzMDksNiArNDMwOSwxMCBAQAogCQlBRDJGQ0MxMzFEQjU5QzU5MDBCM0U3MzYg
LyogV2ViQXNzZW1ibHlSdW50aW1lRXJyb3JQcm90b3R5cGUubHV0LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkFzc2VtYmx5UnVudGltZUVycm9yUHJvdG90eXBlLmx1dC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBRDJGQ0MxNDFEQjU5QzU5MDBCM0U3MzYg
LyogV2ViQXNzZW1ibHlUYWJsZUNvbnN0cnVjdG9yLmx1dC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBXZWJBc3NlbWJseVRhYmxlQ29uc3RydWN0b3IubHV0Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUFEMkZDQzE1MURCNTlDNTkwMEIzRTczNiAvKiBXZWJBc3Nl
bWJseVRhYmxlUHJvdG90eXBlLmx1dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBXZWJBc3NlbWJseVRhYmxlUHJvdG90eXBlLmx1dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlBRDJGQ0MyNjFEQjgzOEM0MDBCM0U3MzYgLyogV2ViQXNzZW1ibHlQcm90b3R5cGUu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gV2ViQXNzZW1ibHlQcm90
b3R5cGUuY3BwOyBwYXRoID0ganMvV2ViQXNzZW1ibHlQcm90b3R5cGUuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlBRDJGQ0MyNzFEQjgzOEM0MDBCM0U3MzYgLyogV2ViQXNzZW1i
bHlQcm90b3R5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV2ViQXNzZW1i
bHlQcm90b3R5cGUuaDsgcGF0aCA9IGpzL1dlYkFzc2VtYmx5UHJvdG90eXBlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUFEMkZDQzJFMURCODM5RjcwMEIzRTczNiAvKiBKU1dlYkFz
c2VtYmx5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTV2ViQXNz
ZW1ibHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBRDJGQ0MyRjFEQjgzOUY3
MDBCM0U3MzYgLyogSlNXZWJBc3NlbWJseS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBKU1dlYkFzc2VtYmx5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUFEODZB
OTNEMUFBNEQ4N0MwMDJGRTc3RiAvKiBXZWFrR0NNYXBJbmxpbmVzLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFdlYWtHQ01hcElubGluZXMuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQUREQjFGNjIxOEQ3N0RCNzAwOUI1OEE4IC8qIE9wYXF1ZVJvb3RTZXQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gT3BhcXVlUm9vdFNldC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlCNTlGODkzNzE4OTFBRDMzMDBENUNDREMgLyogVW5saW5r
ZWRJbnN0cnVjdGlvblN0cmVhbS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBV
bmxpbmtlZEluc3RydWN0aW9uU3RyZWFtLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC01ODAzLDkgKzU4MDcsOSBAQAogCQk3Qjk4RDEzMzFCNjBDRDFFMDAyM0IxQTQgLyogd2FzbSAq
LyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJQUQyRkNDMkUx
REI4MzlGNzAwQjNFNzM2IC8qIEpTV2ViQXNzZW1ibHkuY3BwICovLAorCQkJCUFEMkZDQzJGMURC
ODM5RjcwMEIzRTczNiAvKiBKU1dlYkFzc2VtYmx5LmggKi8sCiAJCQkJQUQyRkNCOEExREI1ODQw
MDAwQjNFNzM2IC8qIGpzICovLAotCQkJCUFEMkZDQjg2MURBRUJGMzcwMEIzRTczNiAvKiBXZWJB
c3NlbWJseU9iamVjdC5jcHAgKi8sCi0JCQkJQUQyRkNCODcxREFFQkYzNzAwQjNFNzM2IC8qIFdl
YkFzc2VtYmx5T2JqZWN0LmggKi8sCiAJCQkJN0I5OEQxMzQxQjYwQ0Q1QTAwMjNCMUE0IC8qIEpT
V0FTTU1vZHVsZS5jcHAgKi8sCiAJCQkJN0I5OEQxMzUxQjYwQ0Q1QTAwMjNCMUE0IC8qIEpTV0FT
TU1vZHVsZS5oICovLAogCQkJCTUzRjQwRThFMUQ1OTAyODIwMDk5QTFCNiAvKiBXQVNNQjNJUkdl
bmVyYXRvci5jcHAgKi8sCkBAIC03MzEyLDYgKzczMTYsOCBAQAogCQlBRDJGQ0I4QTFEQjU4NDAw
MDBCM0U3MzYgLyoganMgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0g
KAorCQkJCUFEMkZDQzI2MURCODM4QzQwMEIzRTczNiAvKiBXZWJBc3NlbWJseVByb3RvdHlwZS5j
cHAgKi8sCisJCQkJQUQyRkNDMjcxREI4MzhDNDAwQjNFNzM2IC8qIFdlYkFzc2VtYmx5UHJvdG90
eXBlLmggKi8sCiAJCQkJQUQyRkNCQTYxREI1OERBNDAwQjNFNzM2IC8qIEpTV2ViQXNzZW1ibHlD
b21waWxlRXJyb3IuY3BwICovLAogCQkJCUFEMkZDQkE3MURCNThEQTQwMEIzRTczNiAvKiBKU1dl
YkFzc2VtYmx5Q29tcGlsZUVycm9yLmggKi8sCiAJCQkJQUQyRkNCQTgxREI1OERBNDAwQjNFNzM2
IC8qIEpTV2ViQXNzZW1ibHlJbnN0YW5jZS5jcHAgKi8sCkBAIC03NjE1LDcgKzc2MjEsNiBAQAog
CQkJCTBGQzk3RjM0MTgyMDIwRDcwMDJDOUIyNiAvKiBDb2RlQmxvY2tKZXR0aXNvbmluZ1dhdGNo
cG9pbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRDhBMzE0MTdENDMyNkMwMENBMkM0MCAvKiBD
b2RlQmxvY2tTZXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGOTZFQkIzMTY2NzZFRjYwMDhCQURF
MyAvKiBDb2RlQmxvY2tXaXRoSklUVHlwZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQUQyRkNCODkx
REFFQkYzRjAwQjNFNzM2IC8qIFdlYkFzc2VtYmx5T2JqZWN0LmggaW4gSGVhZGVycyAqLywKIAkJ
CQlBNzdGMTgyMjE2NDA4OEIyMDA2NDBBNDcgLyogQ29kZUNhY2hlLmggaW4gSGVhZGVycyAqLywK
IAkJCQk5OUNDMEI2MzE4QkU5OTUwMDA2Q0VCQ0MgLyogQ29kZUdlbmVyYXRvclJlcGxheUlucHV0
cy5weSBpbiBIZWFkZXJzICovLAogCQkJCTk5Q0MwQjYyMThCRTk5NDYwMDZDRUJDQyAvKiBDb2Rl
R2VuZXJhdG9yUmVwbGF5SW5wdXRzVGVtcGxhdGVzLnB5IGluIEhlYWRlcnMgKi8sCkBAIC03NzM5
LDYgKzc3NDQsNyBAQAogCQkJCUE3RDg5Q0Y2MTdBMEI4Q0MwMDc3M0FEOCAvKiBERkdDcml0aWNh
bEVkZ2VCcmVha2luZ1BoYXNlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkZGQzk1QTE0RUY5MEE5
MDBDNzI1MzIgLyogREZHQ1NFUGhhc2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGMkZDNzczMTZF
MTJGNzQwMDM4RDk3NiAvKiBERkdEQ0VQaGFzZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJQUQyRkND
MzExREI4M0Q0OTAwQjNFNzM2IC8qIEpTV2ViQXNzZW1ibHkuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTBGOEYyQjlBMTcyRjA1MDEwMDdEQkRBNSAvKiBERkdEZXNpcmVkSWRlbnRpZmllcnMuaCBpbiBI
ZWFkZXJzICovLAogCQkJCThCOUY2RDU2MUQ1OTEyRkEwMDFDNzM5RiAvKiBJdGVyYXRpb25LaW5k
LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkZDOTIxNDFCOTRFODNFMDA3MURENjYgLyogREZHRGVz
aXJlZEluZmVycmVkVHlwZS5oIGluIEhlYWRlcnMgKi8sCkBAIC04NTEwLDYgKzg1MTYsNyBAQAog
CQkJCUE1QkExNUVBMTgyMzQwQjQwMEE4MkU2OSAvKiBSZW1vdGVJbnNwZWN0b3JDb25zdGFudHMu
aCBpbiBIZWFkZXJzICovLAogCQkJCUE1QkExNUYwMTgyMzQ1QUYwMEE4MkU2OSAvKiBSZW1vdGVJ
bnNwZWN0aW9uVGFyZ2V0LmggaW4gSGVhZGVycyAqLywKIAkJCQlBNUJBMTVFQjE4MjM0MEI0MDBB
ODJFNjkgLyogUmVtb3RlQ29ubmVjdGlvblRvVGFyZ2V0LmggaW4gSGVhZGVycyAqLywKKwkJCQlB
RDJGQ0MyRDFEQjgzOEZEMDBCM0U3MzYgLyogV2ViQXNzZW1ibHlQcm90b3R5cGUuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUE1QkExNUVEMTgyMzQwQjQwMEE4MkU2OSAvKiBSZW1vdGVJbnNwZWN0b3JY
UENDb25uZWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjI0RTU1MTE3RUUyNzQ5MDBBQkIy
MTcgLyogUmVwYXRjaC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJREMyMTQzMDcxQ0EzMkU1NTAwMEE4
ODY5IC8qIElDU3RhdHMuaCBpbiBIZWFkZXJzICovLApAQCAtOTQ1MCw2ICs5NDU3LDcgQEAKIAkJ
CQkwRjhGMTQzNTFBREYwOTAxMDBFRDc5MkMgLyogREZHTW92SGludFJlbW92YWxQaGFzZS5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkwRkYyQ0Q1QjFCNjFBNEY4MDA0OTU1QTggLyogREZHTXVsdGlH
ZXRCeU9mZnNldERhdGEuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTczNzgxMEQxNzk5RUEyRTAw
ODE3NTMzIC8qIERGR05hdHVyYWxMb29wcy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlBRDJGQ0Mz
MDFEQjgzRDQ5MDBCM0U3MzYgLyogSlNXZWJBc3NlbWJseS5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk3OUIwMENCRTFDNkFCMDdFMDA4OEM2NUQgLyogUHJveHlPYmplY3QuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJNzkyQ0IzNDkxQzRFRUQ1QzAwRDEzQUYzIC8qIFBDVG9Db2RlT3JpZ2luTWFwLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTBGRjBGMTlDMTZCNzJBMDMwMDVERjk1QiAvKiBERkdOb2Rl
LmNwcCBpbiBTb3VyY2VzICovLApAQCAtOTcxNyw2ICs5NzI1LDcgQEAKIAkJCQkxNDdGMzlENjEw
N0VDMzc2MDA0MjdBNDggLyogSlNDSlNWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDQw
RkNFNDBBNTFFNDZCMDAwNUYwNjEgLyogSlNDbGFzc1JlZi5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk4NkUzQzYxNjE2N0JBQkVFMDA2RDc2MEEgLyogSlNDb250ZXh0Lm1tIGluIFNvdXJjZXMgKi8s
CisJCQkJQUQyRkNDMkMxREI4MzhGRDAwQjNFNzM2IC8qIFdlYkFzc2VtYmx5UHJvdG90eXBlLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTE0QkQ1QTMwMEEzRTkxRjYwMEJBRjU5QyAvKiBKU0NvbnRl
eHRSZWYuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTcyMDI4QjYxNzk3NjAxRTAwOTgwMjhDIC8q
IEpTQ1Rlc3RSdW5uZXJVdGlscy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjJCNjZFQjE3QjZC
NUFCMDBBN0FFM0YgLyogSlNEYXRhVmlldy5jcHAgaW4gU291cmNlcyAqLywKQEAgLTk5MzgsNyAr
OTk0Nyw2IEBACiAJCQkJNzkwNUJCNjgxRDEyMDUwRTAwMTlGRTU3IC8qIElubGluZUFjY2Vzcy5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkUwNTAyNzFBQTkwOTU2MDBEMzNCMzMgLyogU2NvcGVk
QXJndW1lbnRzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGRTA1MDJGMUFBQTgwNjkwMEQzM0Iz
MyAvKiBTY29wZWRBcmd1bWVudHNUYWJsZS5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlBRDJGQ0I4
ODFEQUVCRjNDMDBCM0U3MzYgLyogV2ViQXNzZW1ibHlPYmplY3QuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJOTkyQUJDRjkxQkVBOUJEMjAwNjQwM0EwIC8qIFJlbW90ZUF1dG9tYXRpb25UYXJnZXQu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZFMDUwMkExQUE5MDk1NjAwRDMzQjMzIC8qIFNjb3Bl
T2Zmc2V0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGQTdBOEVFMThDRTRGRDgwMDUyMzcxRCAv
KiBTY3JhdGNoUmVnaXN0ZXJBbGxvY2F0b3IuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKaW5kZXggMTVhOTQx
MC4uZjQ4Y2JjZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNH
bG9iYWxPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xv
YmFsT2JqZWN0LmNwcApAQCAtMTA4LDYgKzEwOCw3IEBACiAjaW5jbHVkZSAiSlNUeXBlZEFycmF5
cy5oIgogI2luY2x1ZGUgIkpTV2Vha01hcC5oIgogI2luY2x1ZGUgIkpTV2Vha1NldC5oIgorI2lu
Y2x1ZGUgIkpTV2ViQXNzZW1ibHkuaCIKICNpbmNsdWRlICJKU1dpdGhTY29wZS5oIgogI2luY2x1
ZGUgIkxhenlDbGFzc1N0cnVjdHVyZUlubGluZXMuaCIKICNpbmNsdWRlICJMYXp5UHJvcGVydHlJ
bmxpbmVzLmgiCkBAIC0xNTQsNyArMTU1LDYgQEAKICNpbmNsdWRlICJXZWFrTWFwUHJvdG90eXBl
LmgiCiAjaW5jbHVkZSAiV2Vha1NldENvbnN0cnVjdG9yLmgiCiAjaW5jbHVkZSAiV2Vha1NldFBy
b3RvdHlwZS5oIgotI2luY2x1ZGUgIldlYkFzc2VtYmx5T2JqZWN0LmgiCiAjaW5jbHVkZSA8d3Rm
L1JhbmRvbU51bWJlci5oPgogCiAjaWYgRU5BQkxFKElOVEwpCkBAIC01NDEsMTggKzU0MSwxOCBA
QCB2b2lkIEpTR2xvYmFsT2JqZWN0Ojppbml0KFZNJiB2bSkKICAgICBtX3BhcnNlSW50RnVuY3Rp
b24uc2V0KHZtLCB0aGlzLCBKU0Z1bmN0aW9uOjpjcmVhdGUodm0sIHRoaXMsIDIsIHZtLnByb3Bl
cnR5TmFtZXMtPnBhcnNlSW50LnN0cmluZygpLCBnbG9iYWxGdW5jUGFyc2VJbnQsIE5vSW50cmlu
c2ljKSk7CiAgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFt
ZXMtPnBhcnNlSW50LCBtX3BhcnNlSW50RnVuY3Rpb24uZ2V0KCksIERvbnRFbnVtKTsKIAotI2Rl
ZmluZSBDUkVBVEVfUFJPVE9UWVBFX0ZPUl9TSU1QTEVfVFlQRShjYXBpdGFsTmFtZSwgbG93ZXJO
YW1lLCBwcm9wZXJOYW1lLCBpbnN0YW5jZVR5cGUsIGpzTmFtZSkgXAotbV8gIyMgbG93ZXJOYW1l
ICMjIFByb3RvdHlwZS5zZXQodm0sIHRoaXMsIGNhcGl0YWxOYW1lIyNQcm90b3R5cGU6OmNyZWF0
ZSh2bSwgdGhpcywgY2FwaXRhbE5hbWUjI1Byb3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJlKHZtLCB0
aGlzLCBtX29iamVjdFByb3RvdHlwZS5nZXQoKSkpKTsgXAorI2RlZmluZSBDUkVBVEVfUFJPVE9U
WVBFX0ZPUl9TSU1QTEVfVFlQRShjYXBpdGFsTmFtZSwgbG93ZXJOYW1lLCBwcm9wZXJOYW1lLCBp
bnN0YW5jZVR5cGUsIGpzTmFtZSwgcHJvdG90eXBlQmFzZSkgXAorbV8gIyMgbG93ZXJOYW1lICMj
IFByb3RvdHlwZS5zZXQodm0sIHRoaXMsIGNhcGl0YWxOYW1lIyNQcm90b3R5cGU6OmNyZWF0ZSh2
bSwgdGhpcywgY2FwaXRhbE5hbWUjI1Byb3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJlKHZtLCB0aGlz
LCBtXyAjIyBwcm90b3R5cGVCYXNlICMjIFByb3RvdHlwZS5nZXQoKSkpKTsgXAogbV8gIyMgcHJv
cGVyTmFtZSAjIyBTdHJ1Y3R1cmUuc2V0KHZtLCB0aGlzLCBpbnN0YW5jZVR5cGU6OmNyZWF0ZVN0
cnVjdHVyZSh2bSwgdGhpcywgbV8gIyMgbG93ZXJOYW1lICMjIFByb3RvdHlwZS5nZXQoKSkpOwog
ICAgIAogICAgIEZPUl9FQUNIX1NJTVBMRV9CVUlMVElOX1RZUEUoQ1JFQVRFX1BST1RPVFlQRV9G
T1JfU0lNUExFX1RZUEUpCiAgICAgCiAjdW5kZWYgQ1JFQVRFX1BST1RPVFlQRV9GT1JfU0lNUExF
X1RZUEUKIAotI2RlZmluZSBDUkVBVEVfUFJPVE9UWVBFX0ZPUl9MQVpZX1RZUEUoY2FwaXRhbE5h
bWUsIGxvd2VyTmFtZSwgcHJvcGVyTmFtZSwgaW5zdGFuY2VUeXBlLCBqc05hbWUpIFwKKyNkZWZp
bmUgQ1JFQVRFX1BST1RPVFlQRV9GT1JfTEFaWV9UWVBFKGNhcGl0YWxOYW1lLCBsb3dlck5hbWUs
IHByb3Blck5hbWUsIGluc3RhbmNlVHlwZSwganNOYW1lLCBwcm90b3R5cGVCYXNlKSBcCiAgICAg
bV8gIyMgcHJvcGVyTmFtZSAjIyBTdHJ1Y3R1cmUuaW5pdExhdGVyKFwKICAgICAgICAgW10gKExh
enlDbGFzc1N0cnVjdHVyZTo6SW5pdGlhbGl6ZXImIGluaXQpIHsgXAotICAgICAgICAgICAgaW5p
dC5zZXRQcm90b3R5cGUoY2FwaXRhbE5hbWUjI1Byb3RvdHlwZTo6Y3JlYXRlKGluaXQudm0sIGlu
aXQuZ2xvYmFsLCBjYXBpdGFsTmFtZSMjUHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUoaW5pdC52
bSwgaW5pdC5nbG9iYWwsIGluaXQuZ2xvYmFsLT5tX29iamVjdFByb3RvdHlwZS5nZXQoKSkpKTsg
XAorICAgICAgICAgICAgaW5pdC5zZXRQcm90b3R5cGUoY2FwaXRhbE5hbWUjI1Byb3RvdHlwZTo6
Y3JlYXRlKGluaXQudm0sIGluaXQuZ2xvYmFsLCBjYXBpdGFsTmFtZSMjUHJvdG90eXBlOjpjcmVh
dGVTdHJ1Y3R1cmUoaW5pdC52bSwgaW5pdC5nbG9iYWwsIGluaXQuZ2xvYmFsLT5tXyAjIyBwcm90
b3R5cGVCYXNlICMjIFByb3RvdHlwZS5nZXQoKSkpKTsgXAogICAgICAgICAgICAgaW5pdC5zZXRT
dHJ1Y3R1cmUoaW5zdGFuY2VUeXBlOjpjcmVhdGVTdHJ1Y3R1cmUoaW5pdC52bSwgaW5pdC5nbG9i
YWwsIGluaXQucHJvdG90eXBlKSk7IFwKICAgICAgICAgICAgIGluaXQuc2V0Q29uc3RydWN0b3Io
Y2FwaXRhbE5hbWUgIyMgQ29uc3RydWN0b3I6OmNyZWF0ZShpbml0LnZtLCBjYXBpdGFsTmFtZSAj
IyBDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKGluaXQudm0sIGluaXQuZ2xvYmFsLCBpbml0
Lmdsb2JhbC0+bV9mdW5jdGlvblByb3RvdHlwZS5nZXQoKSksIGpzQ2FzdDxjYXBpdGFsTmFtZSAj
IyBQcm90b3R5cGUqPihpbml0LnByb3RvdHlwZSksIGluaXQuZ2xvYmFsLT5tX3NwZWNpZXNHZXR0
ZXJTZXR0ZXIuZ2V0KCkpKTsgXAogICAgICAgICB9KTsKQEAgLTU2Myw3ICs1NjMsNyBAQCBtXyAj
IyBwcm9wZXJOYW1lICMjIFN0cnVjdHVyZS5zZXQodm0sIHRoaXMsIGluc3RhbmNlVHlwZTo6Y3Jl
YXRlU3RydWN0dXJlKHZtLCB0aAogICAgIAogICAgIG1faXRlcmF0b3JQcm90b3R5cGUuc2V0KHZt
LCB0aGlzLCBJdGVyYXRvclByb3RvdHlwZTo6Y3JlYXRlKHZtLCB0aGlzLCBJdGVyYXRvclByb3Rv
dHlwZTo6Y3JlYXRlU3RydWN0dXJlKHZtLCB0aGlzLCBtX29iamVjdFByb3RvdHlwZS5nZXQoKSkp
KTsKIAotI2RlZmluZSBDUkVBVEVfUFJPVE9UWVBFX0ZPUl9ERVJJVkVEX0lURVJBVE9SX1RZUEUo
Y2FwaXRhbE5hbWUsIGxvd2VyTmFtZSwgcHJvcGVyTmFtZSwgaW5zdGFuY2VUeXBlLCBqc05hbWUp
IFwKKyNkZWZpbmUgQ1JFQVRFX1BST1RPVFlQRV9GT1JfREVSSVZFRF9JVEVSQVRPUl9UWVBFKGNh
cGl0YWxOYW1lLCBsb3dlck5hbWUsIHByb3Blck5hbWUsIGluc3RhbmNlVHlwZSwganNOYW1lLCBw
cm90b3R5cGVCYXNlKSBcCiAgICAgbV8gIyMgbG93ZXJOYW1lICMjIFN0cnVjdHVyZS5pbml0TGF0
ZXIoIFwKICAgICAgICAgW10gKGNvbnN0IEluaXRpYWxpemVyPFN0cnVjdHVyZT4mIGluaXQpIHsg
XAogICAgICAgICAgICAgSlNPYmplY3QqIHByb3RvdHlwZSA9IGNhcGl0YWxOYW1lICMjIFByb3Rv
dHlwZTo6Y3JlYXRlKGluaXQudm0sIGluaXQub3duZXIsIGNhcGl0YWxOYW1lICMjIFByb3RvdHlw
ZTo6Y3JlYXRlU3RydWN0dXJlKGluaXQudm0sIGluaXQub3duZXIsIGluaXQub3duZXItPm1faXRl
cmF0b3JQcm90b3R5cGUuZ2V0KCkpKTsgXApAQCAtNTkwLDcgKzU5MCw3IEBAIG1fICMjIHByb3Bl
ck5hbWUgIyMgU3RydWN0dXJlLnNldCh2bSwgdGhpcywgaW5zdGFuY2VUeXBlOjpjcmVhdGVTdHJ1
Y3R1cmUodm0sIHRoCiAgICAgCiAgICAgbV9yZWdFeHBDb25zdHJ1Y3Rvci5zZXQodm0sIHRoaXMs
IFJlZ0V4cENvbnN0cnVjdG9yOjpjcmVhdGUodm0sIFJlZ0V4cENvbnN0cnVjdG9yOjpjcmVhdGVT
dHJ1Y3R1cmUodm0sIHRoaXMsIG1fZnVuY3Rpb25Qcm90b3R5cGUuZ2V0KCkpLCBtX3JlZ0V4cFBy
b3RvdHlwZS5nZXQoKSwgbV9zcGVjaWVzR2V0dGVyU2V0dGVyLmdldCgpKSk7CiAgICAgCi0jZGVm
aW5lIENSRUFURV9DT05TVFJVQ1RPUl9GT1JfU0lNUExFX1RZUEUoY2FwaXRhbE5hbWUsIGxvd2Vy
TmFtZSwgcHJvcGVyTmFtZSwgaW5zdGFuY2VUeXBlLCBqc05hbWUpIFwKKyNkZWZpbmUgQ1JFQVRF
X0NPTlNUUlVDVE9SX0ZPUl9TSU1QTEVfVFlQRShjYXBpdGFsTmFtZSwgbG93ZXJOYW1lLCBwcm9w
ZXJOYW1lLCBpbnN0YW5jZVR5cGUsIGpzTmFtZSwgcHJvdG90eXBlQmFzZSkgXAogY2FwaXRhbE5h
bWUgIyMgQ29uc3RydWN0b3IqIGxvd2VyTmFtZSAjIyBDb25zdHJ1Y3RvciA9IGNhcGl0YWxOYW1l
ICMjIENvbnN0cnVjdG9yOjpjcmVhdGUodm0sIGNhcGl0YWxOYW1lICMjIENvbnN0cnVjdG9yOjpj
cmVhdGVTdHJ1Y3R1cmUodm0sIHRoaXMsIG1fZnVuY3Rpb25Qcm90b3R5cGUuZ2V0KCkpLCBtXyAj
IyBsb3dlck5hbWUgIyMgUHJvdG90eXBlLmdldCgpLCBtX3NwZWNpZXNHZXR0ZXJTZXR0ZXIuZ2V0
KCkpOyBcCiBtXyAjIyBsb3dlck5hbWUgIyMgUHJvdG90eXBlLT5wdXREaXJlY3RXaXRob3V0VHJh
bnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+Y29uc3RydWN0b3IsIGxvd2VyTmFtZSAjIyBD
b25zdHJ1Y3RvciwgRG9udEVudW0pOyBcCiAKQEAgLTY0Niw3ICs2NDYsNyBAQCBtXyAjIyBsb3dl
ck5hbWUgIyMgUHJvdG90eXBlLT5wdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJv
cGVydHlOYW1lcy0+YwogICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9w
ZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5PYmplY3RQcml2YXRlTmFtZSgpLCBvYmplY3RDb25z
dHJ1Y3RvciwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpOwogICAgIHB1dERpcmVj
dFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5B
cnJheVByaXZhdGVOYW1lKCksIGFycmF5Q29uc3RydWN0b3IsIERvbnRFbnVtIHwgRG9udERlbGV0
ZSB8IFJlYWRPbmx5KTsKIAotI2RlZmluZSBQVVRfQ09OU1RSVUNUT1JfRk9SX1NJTVBMRV9UWVBF
KGNhcGl0YWxOYW1lLCBsb3dlck5hbWUsIHByb3Blck5hbWUsIGluc3RhbmNlVHlwZSwganNOYW1l
KSBcCisjZGVmaW5lIFBVVF9DT05TVFJVQ1RPUl9GT1JfU0lNUExFX1RZUEUoY2FwaXRhbE5hbWUs
IGxvd2VyTmFtZSwgcHJvcGVyTmFtZSwgaW5zdGFuY2VUeXBlLCBqc05hbWUsIHByb3RvdHlwZUJh
c2UpIFwKIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT4g
anNOYW1lLCBsb3dlck5hbWUgIyMgQ29uc3RydWN0b3IsIERvbnRFbnVtKTsgXAogCiAgICAgRk9S
X0VBQ0hfU0lNUExFX0JVSUxUSU5fVFlQRV9XSVRIX0NPTlNUUlVDVE9SKFBVVF9DT05TVFJVQ1RP
Ul9GT1JfU0lNUExFX1RZUEUpCkBAIC04MjAsMTQgKzgyMCwyOCBAQCBwdXREaXJlY3RXaXRob3V0
VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+IGpzTmFtZSwgbG93ZXJOYW1lICMjIENv
bnN0cnVjdAogCiAjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQogICAgIGlmIChPcHRpb25zOjp1c2VX
ZWJBc3NlbWJseSgpKSB7Ci0gICAgICAgIGF1dG8qIHdhc20gPSBXZWJBc3NlbWJseU9iamVjdDo6
Y3JlYXRlKHZtLCB0aGlzLCBXZWJBc3NlbWJseU9iamVjdDo6Y3JlYXRlU3RydWN0dXJlKHZtLCB0
aGlzLCBtX29iamVjdFByb3RvdHlwZS5nZXQoKSkpOwotICAgICAgICBwdXREaXJlY3RXaXRob3V0
VHJhbnNpdGlvbih2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyhleGVjLCAiV2ViQXNzZW1ibHki
KSwgd2FzbSwgRG9udEVudW0pOwotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8gZXh0cmFTdGF0
aWNHbG9iYWxzW10gPSB7Ci0jZGVmaW5lIFJFR0lTVEVSX1dBU01fQ09OU1RSVUNUT1JfQVNfR0xP
QkFMX1BST1BFUlRZKE5BTUUsIC4uLikgXAotICAgICAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZv
KHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLk5BTUUgIyMgUHJpdmF0ZU5hbWUoKSwg
d2FzbS0+Z2V0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKGV4ZWMsICNOQU1FKSks
IERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAgICAgIEZPUl9FQUNI
X1dBU01fQ09OU1RSVUNUT1JfUFJPUEVSVFkoUkVHSVNURVJfV0FTTV9DT05TVFJVQ1RPUl9BU19H
TE9CQUxfUFJPUEVSVFkpCi0gICAgICAgIH07Ci0gICAgICAgIGFkZFN0YXRpY0dsb2JhbHMoZXh0
cmFTdGF0aWNHbG9iYWxzLCBXVEZfQVJSQVlfTEVOR1RIKGV4dHJhU3RhdGljR2xvYmFscykpOwor
ICAgICAgICBhdXRvKiB3ZWJBc3NlbWJseVByb3RvdHlwZSA9IFdlYkFzc2VtYmx5UHJvdG90eXBl
OjpjcmVhdGUodm0sIHRoaXMsIFdlYkFzc2VtYmx5UHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUo
dm0sIHRoaXMsIG1fb2JqZWN0UHJvdG90eXBlLmdldCgpKSk7CisgICAgICAgIG1fd2ViQXNzZW1i
bHlTdHJ1Y3R1cmUuc2V0KHZtLCB0aGlzLCBKU1dlYkFzc2VtYmx5OjpjcmVhdGVTdHJ1Y3R1cmUo
dm0sIHRoaXMsIHdlYkFzc2VtYmx5UHJvdG90eXBlKSk7CisgICAgICAgIGF1dG8qIHdlYkFzc2Vt
Ymx5ID0gSlNXZWJBc3NlbWJseTo6Y3JlYXRlKHZtLCB0aGlzLCBtX3dlYkFzc2VtYmx5U3RydWN0
dXJlLmdldCgpKTsKKyAgICAgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIElkZW50
aWZpZXI6OmZyb21TdHJpbmcoZXhlYywgIldlYkFzc2VtYmx5IiksIHdlYkFzc2VtYmx5LCBEb250
RW51bSk7CisKKyNkZWZpbmUgQ1JFQVRFX1dFQkFTU0VNQkxZX0NPTlNUUlVDVE9SKGNhcGl0YWxO
YW1lLCBsb3dlck5hbWUsIHByb3Blck5hbWUsIGluc3RhbmNlVHlwZSwganNOYW1lLCBwcm90b3R5
cGVCYXNlKSBkbyB7IFwKKyAgICAgICAgdHlwZWRlZiBjYXBpdGFsTmFtZSAjIyBQcm90b3R5cGUg
UHJvdG90eXBlOyBcCisgICAgICAgIHR5cGVkZWYgY2FwaXRhbE5hbWUgIyMgQ29uc3RydWN0b3Ig
Q29uc3RydWN0b3I7IFwKKyAgICAgICAgdHlwZWRlZiBKUyAjIyBjYXBpdGFsTmFtZSBKU09iajsg
XAorICAgICAgICBhdXRvKiBiYXNlID0gbV8gIyMgcHJvdG90eXBlQmFzZSAjIyBQcm90b3R5cGUu
Z2V0KCk7IFwKKyAgICAgICAgYXV0byogcHJvdG90eXBlID0gUHJvdG90eXBlOjpjcmVhdGUodm0s
IHRoaXMsIFByb3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJlKHZtLCB0aGlzLCBiYXNlKSk7IFwKKyAg
ICAgICAgYXV0byogc3RydWN0dXJlID0gSlNPYmo6OmNyZWF0ZVN0cnVjdHVyZSh2bSwgdGhpcywg
cHJvdG90eXBlKTsgXAorICAgICAgICBhdXRvKiBjb25zdHJ1Y3RvciA9IENvbnN0cnVjdG9yOjpj
cmVhdGUodm0sIENvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUodm0sIHRoaXMsIHRoaXMtPmZ1
bmN0aW9uUHJvdG90eXBlKCkpLCBwcm90b3R5cGUsIHN0cnVjdHVyZSk7IFwKKyAgICAgICAgcHJv
dG90eXBlLT5wdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+
Y29uc3RydWN0b3IsIGNvbnN0cnVjdG9yLCBEb250RW51bSk7IFwKKyAgICAgICAgbV8gIyMgbG93
ZXJOYW1lICMjIFByb3RvdHlwZS5zZXQodm0sIHRoaXMsIHByb3RvdHlwZSk7IFwKKyAgICAgICAg
bV8gIyMgcHJvcGVyTmFtZSAjIyBTdHJ1Y3R1cmUuc2V0KHZtLCB0aGlzLCBzdHJ1Y3R1cmUpOyBc
CisgICAgICAgIHdlYkFzc2VtYmx5LT5wdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgSWRl
bnRpZmllcjo6ZnJvbVN0cmluZyh0aGlzLT5nbG9iYWxFeGVjKCksICNqc05hbWUpLCBjb25zdHJ1
Y3RvciwgRG9udEVudW0pOyBcCisgICAgfSB3aGlsZSAoMCk7CisKKyAgICAgICAgRk9SX0VBQ0hf
V0VCQVNTRU1CTFlfQ09OU1RSVUNUT1JfVFlQRShDUkVBVEVfV0VCQVNTRU1CTFlfQ09OU1RSVUNU
T1IpCisKKyN1bmRlZiBDUkVBVEVfV0VCQVNTRU1CTFlfQ09OU1RSVUNUT1IKICAgICB9CiAjZW5k
aWYgLy8gRU5BQkxFKFdFQkFTU0VNQkxZKQogCkBAIC0xMTQyLDE1ICsxMTU2LDIwIEBAIHZvaWQg
SlNHbG9iYWxPYmplY3Q6OnZpc2l0Q2hpbGRyZW4oSlNDZWxsKiBjZWxsLCBTbG90VmlzaXRvciYg
dmlzaXRvcikKICAgICB2aXNpdG9yLmFwcGVuZCgmdGhpc09iamVjdC0+bV9wcm94eVJldm9rZVN0
cnVjdHVyZSk7CiAgICAgdmlzaXRvci5hcHBlbmQoJnRoaXNPYmplY3QtPm1fbW9kdWxlTG9hZGVy
U3RydWN0dXJlKTsKIAotI2RlZmluZSBWSVNJVF9TSU1QTEVfVFlQRShDYXBpdGFsTmFtZSwgbG93
ZXJOYW1lLCBwcm9wZXJOYW1lLCBpbnN0YW5jZVR5cGUsIGpzTmFtZSkgXAorI2RlZmluZSBWSVNJ
VF9TSU1QTEVfVFlQRShDYXBpdGFsTmFtZSwgbG93ZXJOYW1lLCBwcm9wZXJOYW1lLCBpbnN0YW5j
ZVR5cGUsIGpzTmFtZSwgcHJvdG90eXBlQmFzZSkgXAogICAgIHZpc2l0b3IuYXBwZW5kKCZ0aGlz
T2JqZWN0LT5tXyAjIyBsb3dlck5hbWUgIyMgUHJvdG90eXBlKTsgXAogICAgIHZpc2l0b3IuYXBw
ZW5kKCZ0aGlzT2JqZWN0LT5tXyAjIyBwcm9wZXJOYW1lICMjIFN0cnVjdHVyZSk7IFwKIAogICAg
IEZPUl9FQUNIX1NJTVBMRV9CVUlMVElOX1RZUEUoVklTSVRfU0lNUExFX1RZUEUpCisgICAgCisj
aWYgRU5BQkxFKFdFQkFTU0VNQkxZKQorICAgIHZpc2l0b3IuYXBwZW5kKCZ0aGlzT2JqZWN0LT5t
X3dlYkFzc2VtYmx5U3RydWN0dXJlKTsKKyAgICBGT1JfRUFDSF9XRUJBU1NFTUJMWV9DT05TVFJV
Q1RPUl9UWVBFKFZJU0lUX1NJTVBMRV9UWVBFKQorI2VuZGlmIC8vIEVOQUJMRShXRUJBU1NFTUJM
WSkKIAogI3VuZGVmIFZJU0lUX1NJTVBMRV9UWVBFCiAKLSNkZWZpbmUgVklTSVRfTEFaWV9UWVBF
KENhcGl0YWxOYW1lLCBsb3dlck5hbWUsIHByb3Blck5hbWUsIGluc3RhbmNlVHlwZSwganNOYW1l
KSBcCisjZGVmaW5lIFZJU0lUX0xBWllfVFlQRShDYXBpdGFsTmFtZSwgbG93ZXJOYW1lLCBwcm9w
ZXJOYW1lLCBpbnN0YW5jZVR5cGUsIGpzTmFtZSwgcHJvdG90eXBlQmFzZSkgXAogICAgIHRoaXNP
YmplY3QtPm1fICMjIHByb3Blck5hbWUgIyMgU3RydWN0dXJlLnZpc2l0KHZpc2l0b3IpOwogICAg
IAogICAgIEZPUl9FQUNIX0xBWllfQlVJTFRJTl9UWVBFKFZJU0lUX0xBWllfVFlQRSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oCmluZGV4IDI1YmRl
MmIuLjQwODQ2Y2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
R2xvYmFsT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9i
YWxPYmplY3QuaApAQCAtOTUsMTYgKzk1LDE2IEBAIGNsYXNzIFZhcmlhYmxlRW52aXJvbm1lbnQ7
CiBzdHJ1Y3QgQWN0aXZhdGlvblN0YWNrTm9kZTsKIHN0cnVjdCBIYXNoVGFibGU7CiAKLSNkZWZp
bmUgREVGSU5FX1NUQU5EQVJEX0JVSUxUSU4obWFjcm8sIHVwcGVyTmFtZSwgbG93ZXJOYW1lKSBt
YWNybyh1cHBlck5hbWUsIGxvd2VyTmFtZSwgbG93ZXJOYW1lLCBKUyAjIyB1cHBlck5hbWUsIHVw
cGVyTmFtZSkKKyNkZWZpbmUgREVGSU5FX1NUQU5EQVJEX0JVSUxUSU4obWFjcm8sIHVwcGVyTmFt
ZSwgbG93ZXJOYW1lKSBtYWNybyh1cHBlck5hbWUsIGxvd2VyTmFtZSwgbG93ZXJOYW1lLCBKUyAj
IyB1cHBlck5hbWUsIHVwcGVyTmFtZSwgb2JqZWN0KQogCiAjZGVmaW5lIEZPUl9FQUNIX1NJTVBM
RV9CVUlMVElOX1RZUEVfV0lUSF9DT05TVFJVQ1RPUihtYWNybykgXAotICAgIG1hY3JvKFN0cmlu
Zywgc3RyaW5nLCBzdHJpbmdPYmplY3QsIFN0cmluZ09iamVjdCwgU3RyaW5nKSBcCi0gICAgbWFj
cm8oU3ltYm9sLCBzeW1ib2wsIHN5bWJvbE9iamVjdCwgU3ltYm9sT2JqZWN0LCBTeW1ib2wpIFwK
LSAgICBtYWNybyhOdW1iZXIsIG51bWJlciwgbnVtYmVyT2JqZWN0LCBOdW1iZXJPYmplY3QsIE51
bWJlcikgXAotICAgIG1hY3JvKEVycm9yLCBlcnJvciwgZXJyb3IsIEVycm9ySW5zdGFuY2UsIEVy
cm9yKSBcCi0gICAgbWFjcm8oTWFwLCBtYXAsIG1hcCwgSlNNYXAsIE1hcCkgXAotICAgIG1hY3Jv
KEpTUHJvbWlzZSwgcHJvbWlzZSwgcHJvbWlzZSwgSlNQcm9taXNlLCBQcm9taXNlKSBcCi0gICAg
bWFjcm8oSlNBcnJheUJ1ZmZlciwgYXJyYXlCdWZmZXIsIGFycmF5QnVmZmVyLCBKU0FycmF5QnVm
ZmVyLCBBcnJheUJ1ZmZlcikgXAorICAgIG1hY3JvKFN0cmluZywgc3RyaW5nLCBzdHJpbmdPYmpl
Y3QsIFN0cmluZ09iamVjdCwgU3RyaW5nLCBvYmplY3QpIFwKKyAgICBtYWNybyhTeW1ib2wsIHN5
bWJvbCwgc3ltYm9sT2JqZWN0LCBTeW1ib2xPYmplY3QsIFN5bWJvbCwgb2JqZWN0KSBcCisgICAg
bWFjcm8oTnVtYmVyLCBudW1iZXIsIG51bWJlck9iamVjdCwgTnVtYmVyT2JqZWN0LCBOdW1iZXIs
IG9iamVjdCkgXAorICAgIG1hY3JvKEVycm9yLCBlcnJvciwgZXJyb3IsIEVycm9ySW5zdGFuY2Us
IEVycm9yLCBvYmplY3QpIFwKKyAgICBtYWNybyhNYXAsIG1hcCwgbWFwLCBKU01hcCwgTWFwLCBv
YmplY3QpIFwKKyAgICBtYWNybyhKU1Byb21pc2UsIHByb21pc2UsIHByb21pc2UsIEpTUHJvbWlz
ZSwgUHJvbWlzZSwgb2JqZWN0KSBcCisgICAgbWFjcm8oSlNBcnJheUJ1ZmZlciwgYXJyYXlCdWZm
ZXIsIGFycmF5QnVmZmVyLCBKU0FycmF5QnVmZmVyLCBBcnJheUJ1ZmZlciwgb2JqZWN0KSBcCiAK
ICNkZWZpbmUgRk9SX0VBQ0hfQlVJTFRJTl9ERVJJVkVEX0lURVJBVE9SX1RZUEUobWFjcm8pIFwK
ICAgICBERUZJTkVfU1RBTkRBUkRfQlVJTFRJTihtYWNybywgTWFwSXRlcmF0b3IsIG1hcEl0ZXJh
dG9yKSBcCkBAIC0xMTcsMTYgKzExNywyOCBAQCBzdHJ1Y3QgSGFzaFRhYmxlOwogCiAjZGVmaW5l
IEZPUl9FQUNIX1NJTVBMRV9CVUlMVElOX1RZUEUobWFjcm8pIFwKICAgICBGT1JfRUFDSF9TSU1Q
TEVfQlVJTFRJTl9UWVBFX1dJVEhfQ09OU1RSVUNUT1IobWFjcm8pIFwKLSAgICBtYWNybyhKU0lu
dGVybmFsUHJvbWlzZSwgaW50ZXJuYWxQcm9taXNlLCBpbnRlcm5hbFByb21pc2UsIEpTSW50ZXJu
YWxQcm9taXNlLCBJbnRlcm5hbFByb21pc2UpIFwKKyAgICBtYWNybyhKU0ludGVybmFsUHJvbWlz
ZSwgaW50ZXJuYWxQcm9taXNlLCBpbnRlcm5hbFByb21pc2UsIEpTSW50ZXJuYWxQcm9taXNlLCBJ
bnRlcm5hbFByb21pc2UsIG9iamVjdCkgXAogCiAjZGVmaW5lIEZPUl9FQUNIX0xBWllfQlVJTFRJ
Tl9UWVBFKG1hY3JvKSBcCi0gICAgbWFjcm8oU2V0LCBzZXQsIHNldCwgSlNTZXQsIFNldCkgXAot
ICAgIG1hY3JvKERhdGUsIGRhdGUsIGRhdGUsIERhdGVJbnN0YW5jZSwgRGF0ZSkgXAotICAgIG1h
Y3JvKEJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW5PYmplY3QsIEJvb2xlYW5PYmplY3QsIEJvb2xl
YW4pIFwKKyAgICBtYWNybyhTZXQsIHNldCwgc2V0LCBKU1NldCwgU2V0LCBvYmplY3QpIFwKKyAg
ICBtYWNybyhEYXRlLCBkYXRlLCBkYXRlLCBEYXRlSW5zdGFuY2UsIERhdGUsIG9iamVjdCkgXAor
ICAgIG1hY3JvKEJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW5PYmplY3QsIEJvb2xlYW5PYmplY3Qs
IEJvb2xlYW4sIG9iamVjdCkgXAogICAgIERFRklORV9TVEFOREFSRF9CVUlMVElOKG1hY3JvLCBX
ZWFrTWFwLCB3ZWFrTWFwKSBcCiAgICAgREVGSU5FX1NUQU5EQVJEX0JVSUxUSU4obWFjcm8sIFdl
YWtTZXQsIHdlYWtTZXQpIFwKIAotI2RlZmluZSBERUNMQVJFX1NJTVBMRV9CVUlMVElOX1RZUEUo
Y2FwaXRhbE5hbWUsIGxvd2VyTmFtZSwgcHJvcGVyTmFtZSwgaW5zdGFuY2VUeXBlLCBqc05hbWUp
IFwKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCisjZGVmaW5lIEZPUl9FQUNIX1dFQkFTU0VNQkxZ
X0NPTlNUUlVDVE9SX1RZUEUobWFjcm8pIFwKKyAgICBtYWNybyhXZWJBc3NlbWJseUNvbXBpbGVF
cnJvciwgd2ViQXNzZW1ibHlDb21waWxlRXJyb3IsIFdlYkFzc2VtYmx5Q29tcGlsZUVycm9yLCBX
ZWJBc3NlbWJseUNvbXBpbGVFcnJvciwgQ29tcGlsZUVycm9yLCBlcnJvcikgXAorICAgIG1hY3Jv
KFdlYkFzc2VtYmx5SW5zdGFuY2UsICAgICB3ZWJBc3NlbWJseUluc3RhbmNlLCAgICAgV2ViQXNz
ZW1ibHlJbnN0YW5jZSwgICAgIFdlYkFzc2VtYmx5SW5zdGFuY2UsICAgICBJbnN0YW5jZSwgICAg
IG9iamVjdCkgXAorICAgIG1hY3JvKFdlYkFzc2VtYmx5TWVtb3J5LCAgICAgICB3ZWJBc3NlbWJs
eU1lbW9yeSwgICAgICAgV2ViQXNzZW1ibHlNZW1vcnksICAgICAgIFdlYkFzc2VtYmx5TWVtb3J5
LCAgICAgICBNZW1vcnksICAgICAgIG9iamVjdCkgXAorICAgIG1hY3JvKFdlYkFzc2VtYmx5TW9k
dWxlLCAgICAgICB3ZWJBc3NlbWJseU1vZHVsZSwgICAgICAgV2ViQXNzZW1ibHlNb2R1bGUsICAg
ICAgIFdlYkFzc2VtYmx5TW9kdWxlLCAgICAgICBNb2R1bGUsICAgICAgIG9iamVjdCkgXAorICAg
IG1hY3JvKFdlYkFzc2VtYmx5UnVudGltZUVycm9yLCB3ZWJBc3NlbWJseVJ1bnRpbWVFcnJvciwg
V2ViQXNzZW1ibHlSdW50aW1lRXJyb3IsIFdlYkFzc2VtYmx5UnVudGltZUVycm9yLCBSdW50aW1l
RXJyb3IsIGVycm9yKSBcCisgICAgbWFjcm8oV2ViQXNzZW1ibHlUYWJsZSwgICAgICAgIHdlYkFz
c2VtYmx5VGFibGUsICAgICAgICBXZWJBc3NlbWJseVRhYmxlLCAgICAgICAgV2ViQXNzZW1ibHlU
YWJsZSwgICAgICAgIFRhYmxlLCAgICAgICAgb2JqZWN0KQorI2Vsc2UKKyNkZWZpbmUgRk9SX0VB
Q0hfV0VCQVNTRU1CTFlfQ09OU1RSVUNUT1JfVFlQRShtYWNybykKKyNlbmRpZiAvLyBFTkFCTEUo
V0VCQVNTRU1CTFkpCisKKyNkZWZpbmUgREVDTEFSRV9TSU1QTEVfQlVJTFRJTl9UWVBFKGNhcGl0
YWxOYW1lLCBsb3dlck5hbWUsIHByb3Blck5hbWUsIGluc3RhbmNlVHlwZSwganNOYW1lLCBwcm90
b3R5cGVCYXNlKSBcCiAgICAgY2xhc3MgSlMgIyMgY2FwaXRhbE5hbWU7IFwKICAgICBjbGFzcyBj
YXBpdGFsTmFtZSAjIyBQcm90b3R5cGU7IFwKICAgICBjbGFzcyBjYXBpdGFsTmFtZSAjIyBDb25z
dHJ1Y3RvcjsKQEAgLTEzNSw2ICsxNDcsNyBAQCBjbGFzcyBJdGVyYXRvclByb3RvdHlwZTsKIEZP
Ul9FQUNIX1NJTVBMRV9CVUlMVElOX1RZUEUoREVDTEFSRV9TSU1QTEVfQlVJTFRJTl9UWVBFKQog
Rk9SX0VBQ0hfTEFaWV9CVUlMVElOX1RZUEUoREVDTEFSRV9TSU1QTEVfQlVJTFRJTl9UWVBFKQog
Rk9SX0VBQ0hfQlVJTFRJTl9ERVJJVkVEX0lURVJBVE9SX1RZUEUoREVDTEFSRV9TSU1QTEVfQlVJ
TFRJTl9UWVBFKQorRk9SX0VBQ0hfV0VCQVNTRU1CTFlfQ09OU1RSVUNUT1JfVFlQRShERUNMQVJF
X1NJTVBMRV9CVUlMVElOX1RZUEUpCiAKICN1bmRlZiBERUNMQVJFX1NJTVBMRV9CVUlMVElOX1RZ
UEUKIApAQCAtMzA1LDIwICszMTgsMjUgQEAgcHVibGljOgogICAgIFdyaXRlQmFycmllcjxTdHJ1
Y3R1cmU+IG1fcHJveHlSZXZva2VTdHJ1Y3R1cmU7CiAgICAgV3JpdGVCYXJyaWVyPFN0cnVjdHVy
ZT4gbV9tb2R1bGVMb2FkZXJTdHJ1Y3R1cmU7CiAKLSNkZWZpbmUgREVGSU5FX1NUT1JBR0VfRk9S
X1NJTVBMRV9UWVBFKGNhcGl0YWxOYW1lLCBsb3dlck5hbWUsIHByb3Blck5hbWUsIGluc3RhbmNl
VHlwZSwganNOYW1lKSBcCisjZGVmaW5lIERFRklORV9TVE9SQUdFX0ZPUl9TSU1QTEVfVFlQRShj
YXBpdGFsTmFtZSwgbG93ZXJOYW1lLCBwcm9wZXJOYW1lLCBpbnN0YW5jZVR5cGUsIGpzTmFtZSwg
cHJvdG90eXBlQmFzZSkgXAogICAgIFdyaXRlQmFycmllcjxjYXBpdGFsTmFtZSAjIyBQcm90b3R5
cGU+IG1fICMjIGxvd2VyTmFtZSAjIyBQcm90b3R5cGU7IFwKICAgICBXcml0ZUJhcnJpZXI8U3Ry
dWN0dXJlPiBtXyAjIyBwcm9wZXJOYW1lICMjIFN0cnVjdHVyZTsKIAogICAgIEZPUl9FQUNIX1NJ
TVBMRV9CVUlMVElOX1RZUEUoREVGSU5FX1NUT1JBR0VfRk9SX1NJTVBMRV9UWVBFKQorICAgIAor
I2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKKyAgICBXcml0ZUJhcnJpZXI8U3RydWN0dXJlPiBtX3dl
YkFzc2VtYmx5U3RydWN0dXJlOworICAgIEZPUl9FQUNIX1dFQkFTU0VNQkxZX0NPTlNUUlVDVE9S
X1RZUEUoREVGSU5FX1NUT1JBR0VfRk9SX1NJTVBMRV9UWVBFKQorI2VuZGlmIC8vIEVOQUJMRShX
RUJBU1NFTUJMWSkKIAogI3VuZGVmIERFRklORV9TVE9SQUdFX0ZPUl9TSU1QTEVfVFlQRQogCi0j
ZGVmaW5lIERFRklORV9TVE9SQUdFX0ZPUl9JVEVSQVRPUl9UWVBFKGNhcGl0YWxOYW1lLCBsb3dl
ck5hbWUsIHByb3Blck5hbWUsIGluc3RhbmNlVHlwZSwganNOYW1lKSBcCisjZGVmaW5lIERFRklO
RV9TVE9SQUdFX0ZPUl9JVEVSQVRPUl9UWVBFKGNhcGl0YWxOYW1lLCBsb3dlck5hbWUsIHByb3Bl
ck5hbWUsIGluc3RhbmNlVHlwZSwganNOYW1lLCBwcm90b3R5cGVCYXNlKSBcCiAgICAgTGF6eVBy
b3BlcnR5PEpTR2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmU+IG1fICMjIHByb3Blck5hbWUgIyMgU3Ry
dWN0dXJlOwogICAgIEZPUl9FQUNIX0JVSUxUSU5fREVSSVZFRF9JVEVSQVRPUl9UWVBFKERFRklO
RV9TVE9SQUdFX0ZPUl9JVEVSQVRPUl9UWVBFKQogI3VuZGVmIERFRklORV9TVE9SQUdFX0ZPUl9J
VEVSQVRPUl9UWVBFCiAgICAgCi0jZGVmaW5lIERFRklORV9TVE9SQUdFX0ZPUl9MQVpZX1RZUEUo
Y2FwaXRhbE5hbWUsIGxvd2VyTmFtZSwgcHJvcGVyTmFtZSwgaW5zdGFuY2VUeXBlLCBqc05hbWUp
IFwKKyNkZWZpbmUgREVGSU5FX1NUT1JBR0VfRk9SX0xBWllfVFlQRShjYXBpdGFsTmFtZSwgbG93
ZXJOYW1lLCBwcm9wZXJOYW1lLCBpbnN0YW5jZVR5cGUsIGpzTmFtZSwgcHJvdG90eXBlQmFzZSkg
XAogICAgIExhenlDbGFzc1N0cnVjdHVyZSBtXyAjIyBwcm9wZXJOYW1lICMjIFN0cnVjdHVyZTsK
ICAgICBGT1JfRUFDSF9MQVpZX0JVSUxUSU5fVFlQRShERUZJTkVfU1RPUkFHRV9GT1JfTEFaWV9U
WVBFKQogI3VuZGVmIERFRklORV9TVE9SQUdFX0ZPUl9MQVpZX1RZUEUKQEAgLTYwNiwyMSArNjI0
LDIyIEBAIHB1YmxpYzoKIAogICAgIEpTQXJyYXlCdWZmZXJQcm90b3R5cGUqIGFycmF5QnVmZmVy
UHJvdG90eXBlKCkgY29uc3QgeyByZXR1cm4gbV9hcnJheUJ1ZmZlclByb3RvdHlwZS5nZXQoKTsg
fQogCi0jZGVmaW5lIERFRklORV9BQ0NFU1NPUlNfRk9SX1NJTVBMRV9UWVBFKGNhcGl0YWxOYW1l
LCBsb3dlck5hbWUsIHByb3Blck5hbWUsIGluc3RhbmNlVHlwZSwganNOYW1lKSBcCisjZGVmaW5l
IERFRklORV9BQ0NFU1NPUlNfRk9SX1NJTVBMRV9UWVBFKGNhcGl0YWxOYW1lLCBsb3dlck5hbWUs
IHByb3Blck5hbWUsIGluc3RhbmNlVHlwZSwganNOYW1lLCBwcm90b3R5cGVCYXNlKSBcCiAgICAg
U3RydWN0dXJlKiBwcm9wZXJOYW1lICMjIFN0cnVjdHVyZSgpIHsgcmV0dXJuIG1fICMjIHByb3Bl
ck5hbWUgIyMgU3RydWN0dXJlLmdldCgpOyB9CiAKICAgICBGT1JfRUFDSF9TSU1QTEVfQlVJTFRJ
Tl9UWVBFKERFRklORV9BQ0NFU1NPUlNfRk9SX1NJTVBMRV9UWVBFKQorICAgIEZPUl9FQUNIX1dF
QkFTU0VNQkxZX0NPTlNUUlVDVE9SX1RZUEUoREVGSU5FX0FDQ0VTU09SU19GT1JfU0lNUExFX1RZ
UEUpCiAKICN1bmRlZiBERUZJTkVfQUNDRVNTT1JTX0ZPUl9TSU1QTEVfVFlQRQogCi0jZGVmaW5l
IERFRklORV9BQ0NFU1NPUlNfRk9SX0lURVJBVE9SX1RZUEUoY2FwaXRhbE5hbWUsIGxvd2VyTmFt
ZSwgcHJvcGVyTmFtZSwgaW5zdGFuY2VUeXBlLCBqc05hbWUpIFwKKyNkZWZpbmUgREVGSU5FX0FD
Q0VTU09SU19GT1JfSVRFUkFUT1JfVFlQRShjYXBpdGFsTmFtZSwgbG93ZXJOYW1lLCBwcm9wZXJO
YW1lLCBpbnN0YW5jZVR5cGUsIGpzTmFtZSwgcHJvdG90eXBlQmFzZSkgXAogICAgIFN0cnVjdHVy
ZSogcHJvcGVyTmFtZSAjIyBTdHJ1Y3R1cmUoKSB7IHJldHVybiBtXyAjIyBwcm9wZXJOYW1lICMj
IFN0cnVjdHVyZS5nZXQodGhpcyk7IH0KIAogICAgIEZPUl9FQUNIX0JVSUxUSU5fREVSSVZFRF9J
VEVSQVRPUl9UWVBFKERFRklORV9BQ0NFU1NPUlNfRk9SX0lURVJBVE9SX1RZUEUpCiAKICN1bmRl
ZiBERUZJTkVfQUNDRVNTT1JTX0ZPUl9JVEVSQVRPUl9UWVBFCiAKLSNkZWZpbmUgREVGSU5FX0FD
Q0VTU09SU19GT1JfTEFaWV9UWVBFKGNhcGl0YWxOYW1lLCBsb3dlck5hbWUsIHByb3Blck5hbWUs
IGluc3RhbmNlVHlwZSwganNOYW1lKSBcCisjZGVmaW5lIERFRklORV9BQ0NFU1NPUlNfRk9SX0xB
WllfVFlQRShjYXBpdGFsTmFtZSwgbG93ZXJOYW1lLCBwcm9wZXJOYW1lLCBpbnN0YW5jZVR5cGUs
IGpzTmFtZSwgcHJvdG90eXBlQmFzZSkgXAogICAgIFN0cnVjdHVyZSogcHJvcGVyTmFtZSAjIyBT
dHJ1Y3R1cmUoKSB7IHJldHVybiBtXyAjIyBwcm9wZXJOYW1lICMjIFN0cnVjdHVyZS5nZXQodGhp
cyk7IH0KIAogICAgIEZPUl9FQUNIX0xBWllfQlVJTFRJTl9UWVBFKERFRklORV9BQ0NFU1NPUlNf
Rk9SX0xBWllfVFlQRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL0pT
V2ViQXNzZW1ibHkuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vSlNXZWJBc3NlbWJs
eS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2EzZDdhYwotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL0pTV2ViQXNzZW1ibHkuY3Bw
CkBAIC0wLDAgKzEsNjUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
CisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSlNXZWJBc3NlbWJseS5oIgor
CisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQorCisjaW5jbHVkZSAiRnVuY3Rpb25Qcm90b3R5cGUu
aCIKKyNpbmNsdWRlICJKU0NJbmxpbmVzLmgiCisKK25hbWVzcGFjZSBKU0MgeworCitTVEFUSUNf
QVNTRVJUX0lTX1RSSVZJQUxMWV9ERVNUUlVDVElCTEUoSlNXZWJBc3NlbWJseSk7CisKK2NvbnN0
IENsYXNzSW5mbyBKU1dlYkFzc2VtYmx5OjpzX2luZm8gPSB7ICJXZWJBc3NlbWJseSIsICZCYXNl
OjpzX2luZm8sIDAsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNXZWJBc3NlbWJseSkgfTsKKworSlNX
ZWJBc3NlbWJseSogSlNXZWJBc3NlbWJseTo6Y3JlYXRlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCit7CisgICAgYXV0byogb2JqZWN0
ID0gbmV3IChOb3ROdWxsLCBhbGxvY2F0ZUNlbGw8SlNXZWJBc3NlbWJseT4odm0uaGVhcCkpIEpT
V2ViQXNzZW1ibHkodm0sIHN0cnVjdHVyZSk7CisgICAgb2JqZWN0LT5maW5pc2hDcmVhdGlvbih2
bSwgZ2xvYmFsT2JqZWN0KTsKKyAgICByZXR1cm4gb2JqZWN0OworfQorCitTdHJ1Y3R1cmUqIEpT
V2ViQXNzZW1ibHk6OmNyZWF0ZVN0cnVjdHVyZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKQoreworICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNy
ZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0
cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKK30KKwordm9pZCBKU1dlYkFzc2VtYmx5OjpmaW5pc2hD
cmVhdGlvbihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KikKK3sKKyAgICBCYXNlOjpmaW5pc2hDcmVh
dGlvbih2bSk7CisgICAgQVNTRVJUKGluaGVyaXRzKGluZm8oKSkpOworfQorCitKU1dlYkFzc2Vt
Ymx5OjpKU1dlYkFzc2VtYmx5KFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCisgICAgOiBK
U05vbkZpbmFsT2JqZWN0KHZtLCBzdHJ1Y3R1cmUpCit7Cit9CisKK30gLy8gbmFtZXNwYWNlIEpT
QworCisjZW5kaWYgLy8gRU5BQkxFKFdFQkFTU0VNQkxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vSlNXZWJBc3NlbWJseS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vSlNXZWJBc3NlbWJseS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LmU3MWExNWEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9K
U1dlYkFzc2VtYmx5LmgKQEAgLTAsMCArMSw3MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
NiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFdFQkFTU0VN
QkxZKQorCisjaW5jbHVkZSAiSlNPYmplY3QuaCIKKyNpbmNsdWRlICJqcy9KU1dlYkFzc2VtYmx5
Q29tcGlsZUVycm9yLmgiCisjaW5jbHVkZSAianMvSlNXZWJBc3NlbWJseUluc3RhbmNlLmgiCisj
aW5jbHVkZSAianMvSlNXZWJBc3NlbWJseU1lbW9yeS5oIgorI2luY2x1ZGUgImpzL0pTV2ViQXNz
ZW1ibHlNb2R1bGUuaCIKKyNpbmNsdWRlICJqcy9KU1dlYkFzc2VtYmx5UnVudGltZUVycm9yLmgi
CisjaW5jbHVkZSAianMvSlNXZWJBc3NlbWJseVRhYmxlLmgiCisjaW5jbHVkZSAianMvV2ViQXNz
ZW1ibHlDb21waWxlRXJyb3JDb25zdHJ1Y3Rvci5oIgorI2luY2x1ZGUgImpzL1dlYkFzc2VtYmx5
Q29tcGlsZUVycm9yUHJvdG90eXBlLmgiCisjaW5jbHVkZSAianMvV2ViQXNzZW1ibHlJbnN0YW5j
ZUNvbnN0cnVjdG9yLmgiCisjaW5jbHVkZSAianMvV2ViQXNzZW1ibHlJbnN0YW5jZVByb3RvdHlw
ZS5oIgorI2luY2x1ZGUgImpzL1dlYkFzc2VtYmx5TWVtb3J5Q29uc3RydWN0b3IuaCIKKyNpbmNs
dWRlICJqcy9XZWJBc3NlbWJseU1lbW9yeVByb3RvdHlwZS5oIgorI2luY2x1ZGUgImpzL1dlYkFz
c2VtYmx5TW9kdWxlQ29uc3RydWN0b3IuaCIKKyNpbmNsdWRlICJqcy9XZWJBc3NlbWJseU1vZHVs
ZVByb3RvdHlwZS5oIgorI2luY2x1ZGUgImpzL1dlYkFzc2VtYmx5UHJvdG90eXBlLmgiCisjaW5j
bHVkZSAianMvV2ViQXNzZW1ibHlSdW50aW1lRXJyb3JDb25zdHJ1Y3Rvci5oIgorI2luY2x1ZGUg
ImpzL1dlYkFzc2VtYmx5UnVudGltZUVycm9yUHJvdG90eXBlLmgiCisjaW5jbHVkZSAianMvV2Vi
QXNzZW1ibHlUYWJsZUNvbnN0cnVjdG9yLmgiCisjaW5jbHVkZSAianMvV2ViQXNzZW1ibHlUYWJs
ZVByb3RvdHlwZS5oIgorCituYW1lc3BhY2UgSlNDIHsKKworY2xhc3MgSlNXZWJBc3NlbWJseSA6
IHB1YmxpYyBKU05vbkZpbmFsT2JqZWN0IHsKK3B1YmxpYzoKKyAgICB0eXBlZGVmIEpTTm9uRmlu
YWxPYmplY3QgQmFzZTsKKworICAgIHN0YXRpYyBKU1dlYkFzc2VtYmx5KiBjcmVhdGUoVk0mLCBK
U0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSopOworICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0
ZVN0cnVjdHVyZShWTSYsIEpTR2xvYmFsT2JqZWN0KiwgSlNWYWx1ZSk7CisKKyAgICBERUNMQVJF
X0lORk87CisKK3Byb3RlY3RlZDoKKyAgICB2b2lkIGZpbmlzaENyZWF0aW9uKFZNJiwgSlNHbG9i
YWxPYmplY3QqKTsKKworcHJpdmF0ZToKKyAgICBKU1dlYkFzc2VtYmx5KFZNJiwgU3RydWN0dXJl
Kik7Cit9OworCit9IC8vIG5hbWVzcGFjZSBKU0MKKworI2VuZGlmIC8vIEVOQUJMRShXRUJBU1NF
TUJMWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dlYkFzc2VtYmx5
T2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dlYkFzc2VtYmx5T2JqZWN0
LmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTM3MmZiNC4uMDAwMDAwMAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XZWJBc3NlbWJseU9iamVjdC5jcHAKKysrIC9k
ZXYvbnVsbApAQCAtMSwxMTMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJXZWJBc3NlbWJs
eU9iamVjdC5oIgotCi0jaW5jbHVkZSAiRnVuY3Rpb25Qcm90b3R5cGUuaCIKLSNpbmNsdWRlICJK
U0NJbmxpbmVzLmgiCi0jaW5jbHVkZSAianMvSlNXZWJBc3NlbWJseUNvbXBpbGVFcnJvci5oIgot
I2luY2x1ZGUgImpzL0pTV2ViQXNzZW1ibHlJbnN0YW5jZS5oIgotI2luY2x1ZGUgImpzL0pTV2Vi
QXNzZW1ibHlNZW1vcnkuaCIKLSNpbmNsdWRlICJqcy9KU1dlYkFzc2VtYmx5TW9kdWxlLmgiCi0j
aW5jbHVkZSAianMvSlNXZWJBc3NlbWJseVJ1bnRpbWVFcnJvci5oIgotI2luY2x1ZGUgImpzL0pT
V2ViQXNzZW1ibHlUYWJsZS5oIgotI2luY2x1ZGUgImpzL1dlYkFzc2VtYmx5Q29tcGlsZUVycm9y
Q29uc3RydWN0b3IuaCIKLSNpbmNsdWRlICJqcy9XZWJBc3NlbWJseUNvbXBpbGVFcnJvclByb3Rv
dHlwZS5oIgotI2luY2x1ZGUgImpzL1dlYkFzc2VtYmx5SW5zdGFuY2VDb25zdHJ1Y3Rvci5oIgot
I2luY2x1ZGUgImpzL1dlYkFzc2VtYmx5SW5zdGFuY2VQcm90b3R5cGUuaCIKLSNpbmNsdWRlICJq
cy9XZWJBc3NlbWJseU1lbW9yeUNvbnN0cnVjdG9yLmgiCi0jaW5jbHVkZSAianMvV2ViQXNzZW1i
bHlNZW1vcnlQcm90b3R5cGUuaCIKLSNpbmNsdWRlICJqcy9XZWJBc3NlbWJseU1vZHVsZUNvbnN0
cnVjdG9yLmgiCi0jaW5jbHVkZSAianMvV2ViQXNzZW1ibHlNb2R1bGVQcm90b3R5cGUuaCIKLSNp
bmNsdWRlICJqcy9XZWJBc3NlbWJseVJ1bnRpbWVFcnJvckNvbnN0cnVjdG9yLmgiCi0jaW5jbHVk
ZSAianMvV2ViQXNzZW1ibHlSdW50aW1lRXJyb3JQcm90b3R5cGUuaCIKLSNpbmNsdWRlICJqcy9X
ZWJBc3NlbWJseVRhYmxlQ29uc3RydWN0b3IuaCIKLSNpbmNsdWRlICJqcy9XZWJBc3NlbWJseVRh
YmxlUHJvdG90eXBlLmgiCi0KLW5hbWVzcGFjZSBKU0MgewotCi1TVEFUSUNfQVNTRVJUX0lTX1RS
SVZJQUxMWV9ERVNUUlVDVElCTEUoV2ViQXNzZW1ibHlPYmplY3QpOwotCi0jZGVmaW5lIERFQ0xB
UkVfV0FTTV9PQkpFQ1RfRlVOQ1RJT04oTkFNRSwgLi4uKSBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIHdhc21PYmplY3RGdW5jICMjIE5BTUUoRXhlY1N0YXRlKik7Ci1GT1JfRUFDSF9XQVNN
X0ZVTkNUSU9OX1BST1BFUlRZKERFQ0xBUkVfV0FTTV9PQkpFQ1RfRlVOQ1RJT04pCi0KLWNvbnN0
IENsYXNzSW5mbyBXZWJBc3NlbWJseU9iamVjdDo6c19pbmZvID0geyAiV2ViQXNzZW1ibHkiLCAm
QmFzZTo6c19pbmZvLCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxFKFdlYkFzc2VtYmx5T2JqZWN0KSB9
OwotCi1XZWJBc3NlbWJseU9iamVjdCogV2ViQXNzZW1ibHlPYmplY3Q6OmNyZWF0ZShWTSYgdm0s
IEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlKQotewot
ICAgIGF1dG8qIG9iamVjdCA9IG5ldyAoTm90TnVsbCwgYWxsb2NhdGVDZWxsPFdlYkFzc2VtYmx5
T2JqZWN0Pih2bS5oZWFwKSkgV2ViQXNzZW1ibHlPYmplY3Qodm0sIHN0cnVjdHVyZSk7Ci0gICAg
b2JqZWN0LT5maW5pc2hDcmVhdGlvbih2bSwgZ2xvYmFsT2JqZWN0KTsKLSAgICByZXR1cm4gb2Jq
ZWN0OwotfQotCi1TdHJ1Y3R1cmUqIFdlYkFzc2VtYmx5T2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUo
Vk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkK
LXsKLSAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90
eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7Ci19Ci0K
LXZvaWQgV2ViQXNzZW1ibHlPYmplY3Q6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCkKLXsKLSAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7Ci0g
ICAgQVNTRVJUKGluaGVyaXRzKGluZm8oKSkpOwotCi0jZGVmaW5lIFNFVF9VUF9XQVNNX0NPTlNU
UlVDVE9SX1BST1BFUlRZKE5BTUUsIC4uLikgXAotICAgIGF1dG8qIHByb3RvdHlwZSAjIyBOQU1F
ID0gV2ViQXNzZW1ibHkgIyMgTkFNRSAjIyBQcm90b3R5cGU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2Jq
ZWN0LCBXZWJBc3NlbWJseSAjIyBOQU1FICMjIFByb3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJlKHZt
LCBnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdC0+b2JqZWN0UHJvdG90eXBlKCkpKTsgXAotICAg
IGF1dG8qIHN0cnVjdHVyZSAjIyBOQU1FID0gSlNXZWJBc3NlbWJseSAjIyBOQU1FOjpjcmVhdGVT
dHJ1Y3R1cmUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlICMjIE5BTUUpOyBcCi0gICAgYXV0
byogY29uc3RydWN0b3IgIyMgTkFNRSA9IFdlYkFzc2VtYmx5ICMjIE5BTUUgIyMgQ29uc3RydWN0
b3I6OmNyZWF0ZSh2bSwgV2ViQXNzZW1ibHkgIyMgTkFNRSAjIyBDb25zdHJ1Y3Rvcjo6Y3JlYXRl
U3RydWN0dXJlKHZtLCBnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdC0+ZnVuY3Rpb25Qcm90b3R5
cGUoKSksIHByb3RvdHlwZSAjIyBOQU1FLCBzdHJ1Y3R1cmUgIyMgTkFNRSk7IFwKLSAgICBwcm90
b3R5cGUgIyMgTkFNRS0+cHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5
TmFtZXMtPmNvbnN0cnVjdG9yLCBjb25zdHJ1Y3RvciAjIyBOQU1FLCBEb250RW51bSk7Ci0gICAg
Rk9SX0VBQ0hfV0FTTV9DT05TVFJVQ1RPUl9QUk9QRVJUWShTRVRfVVBfV0FTTV9DT05TVFJVQ1RP
Ul9QUk9QRVJUWSkKLQotI2RlZmluZSBSRUdJU1RFUl9XQVNNX0NPTlNUUlVDVE9SX1BST1BFUlRZ
KE5BTUUsIC4uLikgXAotICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCBJZGVudGlm
aWVyOjpmcm9tU3RyaW5nKGdsb2JhbE9iamVjdC0+Z2xvYmFsRXhlYygpLCAjTkFNRSksIGNvbnN0
cnVjdG9yICMjIE5BTUUsIERvbnRFbnVtKTsKLSAgICBGT1JfRUFDSF9XQVNNX0NPTlNUUlVDVE9S
X1BST1BFUlRZKFJFR0lTVEVSX1dBU01fQ09OU1RSVUNUT1JfUFJPUEVSVFkpCi0KLSNkZWZpbmUg
UkVHSVNURVJfV0FTTV9GVU5DVElPTl9QUk9QRVJUWShOQU1FLCBMRU5HVEgpIFwKLSAgICBwdXRE
aXJlY3ROYXRpdmVGdW5jdGlvbih2bSwgZ2xvYmFsT2JqZWN0LCBJZGVudGlmaWVyOjpmcm9tU3Ry
aW5nKCZ2bSwgI05BTUUpLCBMRU5HVEgsIHdhc21PYmplY3RGdW5jICMjIE5BTUUsIE5vSW50cmlu
c2ljLCBEb250RW51bSk7Ci0gICAgRk9SX0VBQ0hfV0FTTV9GVU5DVElPTl9QUk9QRVJUWShSRUdJ
U1RFUl9XQVNNX0ZVTkNUSU9OX1BST1BFUlRZKQotfQotCi1XZWJBc3NlbWJseU9iamVjdDo6V2Vi
QXNzZW1ibHlPYmplY3QoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKLSAgICA6IEpTTm9u
RmluYWxPYmplY3Qodm0sIHN0cnVjdHVyZSkKLXsKLX0KLQotLy8gLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tIEZ1bmN0aW9ucyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQot
Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHdhc21PYmplY3RGdW5jdmFsaWRhdGUoRXhl
Y1N0YXRlKiBzdGF0ZSkKLXsKLSAgICBWTSYgdm0gPSBzdGF0ZS0+dm0oKTsKLSAgICBhdXRvIHNj
b3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZSh0aHJvd0V4Y2VwdGlvbihzdGF0ZSwgc2NvcGUsIGNyZWF0ZUVycm9yKHN0YXRlLCBBU0NJSUxp
dGVyYWwoIldlYkFzc2VtYmx5IGRvZXNuJ3QgeWV0IGltcGxlbWVudCB0aGUgdmFsaWRhdGUgZnVu
Y3Rpb24gcHJvcGVydHkiKSkpKTsKLX0KLQotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCB3
YXNtT2JqZWN0RnVuY2NvbXBpbGUoRXhlY1N0YXRlKiBzdGF0ZSkKLXsKLSAgICBWTSYgdm0gPSBz
dGF0ZS0+dm0oKTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0g
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZSh0aHJvd0V4Y2VwdGlvbihzdGF0ZSwgc2NvcGUsIGNy
ZWF0ZUVycm9yKHN0YXRlLCBBU0NJSUxpdGVyYWwoIldlYkFzc2VtYmx5IGRvZXNuJ3QgeWV0IGlt
cGxlbWVudCB0aGUgY29tcGlsZSBmdW5jdGlvbiBwcm9wZXJ0eSIpKSkpOwotfQotCi19IC8vIG5h
bWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pT
V2ViQXNzZW1ibHlDb21waWxlRXJyb3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
anMvSlNXZWJBc3NlbWJseUNvbXBpbGVFcnJvci5jcHAKaW5kZXggMzJlMTM2YS4uMDJmZjg4NSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseUNv
bXBpbGVFcnJvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJB
c3NlbWJseUNvbXBpbGVFcnJvci5jcHAKQEAgLTI2LDYgKzI2LDggQEAKICNpbmNsdWRlICJjb25m
aWcuaCIKICNpbmNsdWRlICJKU1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yLmgiCiAKKyNpZiBFTkFC
TEUoV0VCQVNTRU1CTFkpCisKICNpbmNsdWRlICJKU0NJbmxpbmVzLmgiCiAKIG5hbWVzcGFjZSBK
U0MgewpAQCAtNDYsMyArNDgsNSBAQCBKU1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yOjpKU1dlYkFz
c2VtYmx5Q29tcGlsZUVycm9yKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cgogY29uc3QgQ2xh
c3NJbmZvIEpTV2ViQXNzZW1ibHlDb21waWxlRXJyb3I6OnNfaW5mbyA9IHsgIldlYkFzc2VtYmx5
LkNvbXBpbGVFcnJvciIsICZCYXNlOjpzX2luZm8sIDAsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNX
ZWJBc3NlbWJseUNvbXBpbGVFcnJvcikgfTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCisKKyNlbmRp
ZiAvLyBFTkFCTEUoV0VCQVNTRU1CTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yLmgKaW5kZXggMWE3N2VmYi4u
NjU2YjhkMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJB
c3NlbWJseUNvbXBpbGVFcnJvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pz
L0pTV2ViQXNzZW1ibHlDb21waWxlRXJyb3IuaApAQCAtMjUsNiArMjUsOCBAQAogCiAjcHJhZ21h
IG9uY2UKIAorI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKKwogI2luY2x1ZGUgIkVycm9ySW5zdGFu
Y2UuaCIKIAogbmFtZXNwYWNlIEpTQyB7CkBAIC0zNCw2ICszNiwxMCBAQCBwdWJsaWM6CiAgICAg
dHlwZWRlZiBFcnJvckluc3RhbmNlIEJhc2U7CiAKICAgICBzdGF0aWMgSlNXZWJBc3NlbWJseUNv
bXBpbGVFcnJvciogY3JlYXRlKEV4ZWNTdGF0ZSosIFN0cnVjdHVyZSosIGNvbnN0IFN0cmluZyYs
IGJvb2wpOworICAgIHN0YXRpYyBKU1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yKiBjcmVhdGUoRXhl
Y1N0YXRlKiBleGVjLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNWYWx1ZSBtZXNzYWdlLCBib29s
IHVzZUN1cnJlbnRGcmFtZSkKKyAgICB7CisgICAgICAgIHJldHVybiBjcmVhdGUoZXhlYywgc3Ry
dWN0dXJlLCBtZXNzYWdlLmlzVW5kZWZpbmVkKCkgPyBTdHJpbmcoKSA6IG1lc3NhZ2UudG9TdHJp
bmcoZXhlYyktPnZhbHVlKGV4ZWMpLCB1c2VDdXJyZW50RnJhbWUpOworICAgIH0KIAogICAgIERF
Q0xBUkVfSU5GTzsKIApAQCAtNDIsMyArNDgsNSBAQCBwcm90ZWN0ZWQ6CiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBKU0MKKworI2VuZGlmIC8vIEVOQUJMRShXRUJBU1NFTUJMWSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlJbnN0YW5jZS5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5SW5zdGFuY2UuY3Bw
CmluZGV4IGJkMTU5YmIuLmIxZGE0ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlJbnN0YW5jZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseUluc3RhbmNlLmNwcApAQCAtMjYsNiArMjYsOCBA
QAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkpTV2ViQXNzZW1ibHlJbnN0YW5jZS5o
IgogCisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQorCiAjaW5jbHVkZSAiSlNDSW5saW5lcy5oIgog
CiBuYW1lc3BhY2UgSlNDIHsKQEAgLTY5LDMgKzcxLDUgQEAgdm9pZCBKU1dlYkFzc2VtYmx5SW5z
dGFuY2U6OnZpc2l0Q2hpbGRyZW4oSlNDZWxsKiBjZWxsLCBTbG90VmlzaXRvciYgdmlzaXRvcikK
IGNvbnN0IENsYXNzSW5mbyBKU1dlYkFzc2VtYmx5SW5zdGFuY2U6OnNfaW5mbyA9IHsgIldlYkFz
c2VtYmx5Lkluc3RhbmNlIiwgJkJhc2U6OnNfaW5mbywgMCwgQ1JFQVRFX01FVEhPRF9UQUJMRShK
U1dlYkFzc2VtYmx5SW5zdGFuY2UpIH07CiAKIH0gLy8gbmFtZXNwYWNlIEpTQworCisjZW5kaWYg
Ly8gRU5BQkxFKFdFQkFTU0VNQkxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vanMvSlNXZWJBc3NlbWJseUluc3RhbmNlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9qcy9KU1dlYkFzc2VtYmx5SW5zdGFuY2UuaAppbmRleCBkYTRiZjgwLi5iMjFlNDVmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5SW5z
dGFuY2UuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5
SW5zdGFuY2UuaApAQCAtMjUsNiArMjUsOCBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2lmIEVOQUJM
RShXRUJBU1NFTUJMWSkKKwogI2luY2x1ZGUgIkpTRGVzdHJ1Y3RpYmxlT2JqZWN0LmgiCiAjaW5j
bHVkZSAiSlNPYmplY3QuaCIKIApAQCAtNDcsMyArNDksNSBAQCBwcm90ZWN0ZWQ6CiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBKU0MKKworI2VuZGlmIC8vIEVOQUJMRShXRUJBU1NFTUJMWSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlNZW1vcnku
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseU1lbW9yeS5j
cHAKaW5kZXggNmE0NjVkZS4uZDU2YTJjNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vanMvSlNXZWJBc3NlbWJseU1lbW9yeS5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseU1lbW9yeS5jcHAKQEAgLTI2LDYgKzI2LDggQEAK
ICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJKU1dlYkFzc2VtYmx5TWVtb3J5LmgiCiAK
KyNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCisKICNpbmNsdWRlICJKU0NJbmxpbmVzLmgiCiAKIG5h
bWVzcGFjZSBKU0MgewpAQCAtNjksMyArNzEsNSBAQCB2b2lkIEpTV2ViQXNzZW1ibHlNZW1vcnk6
OnZpc2l0Q2hpbGRyZW4oSlNDZWxsKiBjZWxsLCBTbG90VmlzaXRvciYgdmlzaXRvcikKIGNvbnN0
IENsYXNzSW5mbyBKU1dlYkFzc2VtYmx5TWVtb3J5OjpzX2luZm8gPSB7ICJXZWJBc3NlbWJseS5N
ZW1vcnkiLCAmQmFzZTo6c19pbmZvLCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTV2ViQXNzZW1i
bHlNZW1vcnkpIH07CiAKIH0gLy8gbmFtZXNwYWNlIEpTQworCisjZW5kaWYgLy8gRU5BQkxFKFdF
QkFTU0VNQkxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNX
ZWJBc3NlbWJseU1lbW9yeS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJB
c3NlbWJseU1lbW9yeS5oCmluZGV4IGE5NjVhOTkuLmIzNjE4N2IgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlNZW1vcnkuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5TWVtb3J5LmgKQEAgLTI1LDYg
KzI1LDggQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCisKICNp
bmNsdWRlICJKU0Rlc3RydWN0aWJsZU9iamVjdC5oIgogI2luY2x1ZGUgIkpTT2JqZWN0LmgiCiAK
QEAgLTQ3LDMgKzQ5LDUgQEAgcHJvdGVjdGVkOgogfTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCisK
KyNlbmRpZiAvLyBFTkFCTEUoV0VCQVNTRU1CTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5TW9kdWxlLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlNb2R1bGUuY3BwCmluZGV4IGVkYzU0Y2MuLmYy
OGE0ZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNz
ZW1ibHlNb2R1bGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2Vi
QXNzZW1ibHlNb2R1bGUuY3BwCkBAIC0yNiw2ICsyNiw4IEBACiAjaW5jbHVkZSAiY29uZmlnLmgi
CiAjaW5jbHVkZSAiSlNXZWJBc3NlbWJseU1vZHVsZS5oIgogCisjaWYgRU5BQkxFKFdFQkFTU0VN
QkxZKQorCiAjaW5jbHVkZSAiSlNDSW5saW5lcy5oIgogCiBuYW1lc3BhY2UgSlNDIHsKQEAgLTY5
LDMgKzcxLDUgQEAgdm9pZCBKU1dlYkFzc2VtYmx5TW9kdWxlOjp2aXNpdENoaWxkcmVuKEpTQ2Vs
bCogY2VsbCwgU2xvdFZpc2l0b3ImIHZpc2l0b3IpCiBjb25zdCBDbGFzc0luZm8gSlNXZWJBc3Nl
bWJseU1vZHVsZTo6c19pbmZvID0geyAiV2ViQXNzZW1ibHkuTW9kdWxlIiwgJkJhc2U6OnNfaW5m
bywgMCwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1dlYkFzc2VtYmx5TW9kdWxlKSB9OwogCiB9IC8v
IG5hbWVzcGFjZSBKU0MKKworI2VuZGlmIC8vIEVOQUJMRShXRUJBU1NFTUJMWSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlNb2R1bGUuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlNb2R1bGUuaAppbmRl
eCA3NzIzMjExLi5iZTdmNjkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9qcy9KU1dlYkFzc2VtYmx5TW9kdWxlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vanMvSlNXZWJBc3NlbWJseU1vZHVsZS5oCkBAIC0yNSw2ICsyNSw4IEBACiAKICNwcmFnbWEg
b25jZQogCisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQorCiAjaW5jbHVkZSAiSlNEZXN0cnVjdGli
bGVPYmplY3QuaCIKICNpbmNsdWRlICJKU09iamVjdC5oIgogCkBAIC00NywzICs0OSw1IEBAIHBy
b3RlY3RlZDoKIH07CiAKIH0gLy8gbmFtZXNwYWNlIEpTQworCisjZW5kaWYgLy8gRU5BQkxFKFdF
QkFTU0VNQkxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNX
ZWJBc3NlbWJseVJ1bnRpbWVFcnJvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9q
cy9KU1dlYkFzc2VtYmx5UnVudGltZUVycm9yLmNwcAppbmRleCA4Y2UyZTc5Li4zMTIxZWZiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5UnVu
dGltZUVycm9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFz
c2VtYmx5UnVudGltZUVycm9yLmNwcApAQCAtMjYsNiArMjYsOCBAQAogI2luY2x1ZGUgImNvbmZp
Zy5oIgogI2luY2x1ZGUgIkpTV2ViQXNzZW1ibHlSdW50aW1lRXJyb3IuaCIKIAorI2lmIEVOQUJM
RShXRUJBU1NFTUJMWSkKKwogI2luY2x1ZGUgIkpTQ0lubGluZXMuaCIKIAogbmFtZXNwYWNlIEpT
QyB7CkBAIC00NiwzICs0OCw1IEBAIEpTV2ViQXNzZW1ibHlSdW50aW1lRXJyb3I6OkpTV2ViQXNz
ZW1ibHlSdW50aW1lRXJyb3IoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyCiBjb25zdCBDbGFz
c0luZm8gSlNXZWJBc3NlbWJseVJ1bnRpbWVFcnJvcjo6c19pbmZvID0geyAiV2ViQXNzZW1ibHku
UnVudGltZUVycm9yIiwgJkJhc2U6OnNfaW5mbywgMCwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1dl
YkFzc2VtYmx5UnVudGltZUVycm9yKSB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKKworI2VuZGlm
IC8vIEVOQUJMRShXRUJBU1NFTUJMWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlSdW50aW1lRXJyb3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlSdW50aW1lRXJyb3IuaAppbmRleCBjMTJhMWZhLi43
ZWJlN2M0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFz
c2VtYmx5UnVudGltZUVycm9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMv
SlNXZWJBc3NlbWJseVJ1bnRpbWVFcnJvci5oCkBAIC0yNSw2ICsyNSw4IEBACiAKICNwcmFnbWEg
b25jZQogCisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQorCiAjaW5jbHVkZSAiRXJyb3JJbnN0YW5j
ZS5oIgogCiBuYW1lc3BhY2UgSlNDIHsKQEAgLTM0LDYgKzM2LDEwIEBAIHB1YmxpYzoKICAgICB0
eXBlZGVmIEVycm9ySW5zdGFuY2UgQmFzZTsKIAogICAgIHN0YXRpYyBKU1dlYkFzc2VtYmx5UnVu
dGltZUVycm9yKiBjcmVhdGUoRXhlY1N0YXRlKiwgU3RydWN0dXJlKiwgY29uc3QgU3RyaW5nJiwg
Ym9vbCk7CisgICAgc3RhdGljIEpTV2ViQXNzZW1ibHlSdW50aW1lRXJyb3IqIGNyZWF0ZShFeGVj
U3RhdGUqIGV4ZWMsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBKU1ZhbHVlIG1lc3NhZ2UsIGJvb2wg
dXNlQ3VycmVudEZyYW1lKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGNyZWF0ZShleGVjLCBzdHJ1
Y3R1cmUsIG1lc3NhZ2UuaXNVbmRlZmluZWQoKSA/IFN0cmluZygpIDogbWVzc2FnZS50b1N0cmlu
ZyhleGVjKS0+dmFsdWUoZXhlYyksIHVzZUN1cnJlbnRGcmFtZSk7CisgICAgfQogCiAgICAgREVD
TEFSRV9JTkZPOwogCkBAIC00MiwzICs0OCw1IEBAIHByb3RlY3RlZDoKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIEpTQworCisjZW5kaWYgLy8gRU5BQkxFKFdFQkFTU0VNQkxZKQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseVRhYmxlLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlUYWJsZS5jcHAKaW5kZXgg
MjNkNTI1OC4uY2I1ZTkxOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
anMvSlNXZWJBc3NlbWJseVRhYmxlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9qcy9KU1dlYkFzc2VtYmx5VGFibGUuY3BwCkBAIC0yNiw2ICsyNiw4IEBACiAjaW5jbHVkZSAi
Y29uZmlnLmgiCiAjaW5jbHVkZSAiSlNXZWJBc3NlbWJseVRhYmxlLmgiCiAKKyNpZiBFTkFCTEUo
V0VCQVNTRU1CTFkpCisKICNpbmNsdWRlICJKU0NJbmxpbmVzLmgiCiAKIG5hbWVzcGFjZSBKU0Mg
ewpAQCAtNjksMyArNzEsNSBAQCB2b2lkIEpTV2ViQXNzZW1ibHlUYWJsZTo6dmlzaXRDaGlsZHJl
bihKU0NlbGwqIGNlbGwsIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQogY29uc3QgQ2xhc3NJbmZvIEpT
V2ViQXNzZW1ibHlUYWJsZTo6c19pbmZvID0geyAiV2ViQXNzZW1ibHkuVGFibGUiLCAmQmFzZTo6
c19pbmZvLCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTV2ViQXNzZW1ibHlUYWJsZSkgfTsKIAog
fSAvLyBuYW1lc3BhY2UgSlNDCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCQVNTRU1CTFkpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5VGFibGUu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlUYWJsZS5oCmlu
ZGV4IGQzOTlmOWUuLjAxZTY4ZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL2pzL0pTV2ViQXNzZW1ibHlUYWJsZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL2pzL0pTV2ViQXNzZW1ibHlUYWJsZS5oCkBAIC0yNSw2ICsyNSw4IEBACiAKICNwcmFnbWEg
b25jZQogCisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQorCiAjaW5jbHVkZSAiSlNEZXN0cnVjdGli
bGVPYmplY3QuaCIKICNpbmNsdWRlICJKU09iamVjdC5oIgogCkBAIC00NywzICs0OSw1IEBAIHBy
b3RlY3RlZDoKIH07CiAKIH0gLy8gbmFtZXNwYWNlIEpTQworCisjZW5kaWYgLy8gRU5BQkxFKFdF
QkFTU0VNQkxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2Vi
QXNzZW1ibHlDb21waWxlRXJyb3JDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9qcy9XZWJBc3NlbWJseUNvbXBpbGVFcnJvckNvbnN0cnVjdG9yLmNwcAppbmRleCBk
MTc4NjRjLi42N2U2ZDk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9q
cy9XZWJBc3NlbWJseUNvbXBpbGVFcnJvckNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUNvbXBpbGVFcnJvckNvbnN0cnVjdG9yLmNw
cApAQCAtMjYsOCArMjYsMTEgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJXZWJB
c3NlbWJseUNvbXBpbGVFcnJvckNvbnN0cnVjdG9yLmgiCiAKKyNpZiBFTkFCTEUoV0VCQVNTRU1C
TFkpCisKICNpbmNsdWRlICJGdW5jdGlvblByb3RvdHlwZS5oIgogI2luY2x1ZGUgIkpTQ0lubGlu
ZXMuaCIKKyNpbmNsdWRlICJKU1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yLmgiCiAjaW5jbHVkZSAi
V2ViQXNzZW1ibHlDb21waWxlRXJyb3JQcm90b3R5cGUuaCIKIAogI2luY2x1ZGUgIldlYkFzc2Vt
Ymx5Q29tcGlsZUVycm9yQ29uc3RydWN0b3IubHV0LmgiCkBAIC00Myw5ICs0NiwxMiBAQCBjb25z
dCBDbGFzc0luZm8gV2ViQXNzZW1ibHlDb21waWxlRXJyb3JDb25zdHJ1Y3Rvcjo6c19pbmZvID0g
eyAiRnVuY3Rpb24iLCAmQmFzZQogCiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBjb25zdHJ1Y3RKU1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yKEV4ZWNTdGF0ZSogc3RhdGUpCiB7
Ci0gICAgVk0mIHZtID0gc3RhdGUtPnZtKCk7CisgICAgYXV0byYgdm0gPSBzdGF0ZS0+dm0oKTsK
ICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZSh0aHJvd0V4Y2VwdGlvbihzdGF0ZSwgc2NvcGUsIGNyZWF0ZUVycm9yKHN0
YXRlLCBBU0NJSUxpdGVyYWwoIldlYkFzc2VtYmx5IGRvZXNuJ3QgeWV0IGltcGxlbWVudCB0aGUg
Q29tcGlsZUVycm9yIGNvbnN0cnVjdG9yIHByb3BlcnR5IikpKSk7CisgICAgSlNWYWx1ZSBtZXNz
YWdlID0gc3RhdGUtPmFyZ3VtZW50Q291bnQoKSA/IHN0YXRlLT5hcmd1bWVudCgwKSA6IGpzVW5k
ZWZpbmVkKCk7CisgICAgYXV0byogc3RydWN0dXJlID0gSW50ZXJuYWxGdW5jdGlvbjo6Y3JlYXRl
U3ViY2xhc3NTdHJ1Y3R1cmUoc3RhdGUsIHN0YXRlLT5uZXdUYXJnZXQoKSwgYXNJbnRlcm5hbEZ1
bmN0aW9uKHN0YXRlLT5jYWxsZWUoKSktPmdsb2JhbE9iamVjdCgpLT5XZWJBc3NlbWJseUNvbXBp
bGVFcnJvclN0cnVjdHVyZSgpKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBlbmNv
ZGVkSlNWYWx1ZSgpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTV2ViQXNzZW1ibHlD
b21waWxlRXJyb3I6OmNyZWF0ZShzdGF0ZSwgc3RydWN0dXJlLCBtZXNzYWdlLCBmYWxzZSkpOwog
fQogCiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsSlNXZWJBc3NlbWJs
eUNvbXBpbGVFcnJvcihFeGVjU3RhdGUqIHN0YXRlKQpAQCAtNjcsMTIgKzczLDExIEBAIFN0cnVj
dHVyZSogV2ViQXNzZW1ibHlDb21waWxlRXJyb3JDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJl
KFZNJiB2bSwgSlNHbG9iYWxPCiAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9i
YWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3Mp
LCBpbmZvKCkpOwogfQogCi12b2lkIFdlYkFzc2VtYmx5Q29tcGlsZUVycm9yQ29uc3RydWN0b3I6
OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgV2ViQXNzZW1ibHlDb21waWxlRXJyb3JQcm90b3R5cGUq
IHByb3RvdHlwZSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCit2b2lkIFdlYkFzc2VtYmx5Q29tcGls
ZUVycm9yQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgV2ViQXNzZW1ibHlDb21w
aWxlRXJyb3JQcm90b3R5cGUqIHByb3RvdHlwZSwgU3RydWN0dXJlKikKIHsKICAgICBCYXNlOjpm
aW5pc2hDcmVhdGlvbih2bSwgQVNDSUlMaXRlcmFsKCJDb21waWxlRXJyb3IiKSk7Ci0gICAgcHV0
RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPnByb3RvdHlwZSwg
cHJvdG90eXBlLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSk7CisgICAgcHV0RGly
ZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPnByb3RvdHlwZSwgcHJv
dG90eXBlLCBSZWFkT25seSB8IERvbnRFbnVtIHwgRG9udERlbGV0ZSk7CiAgICAgcHV0RGlyZWN0
V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPmxlbmd0aCwganNOdW1iZXIo
MSksIFJlYWRPbmx5IHwgRG9udEVudW0gfCBEb250RGVsZXRlKTsKLSAgICBtX0NvbXBpbGVFcnJv
clN0cnVjdHVyZS5zZXQodm0sIHRoaXMsIHN0cnVjdHVyZSk7CiB9CiAKIFdlYkFzc2VtYmx5Q29t
cGlsZUVycm9yQ29uc3RydWN0b3I6OldlYkFzc2VtYmx5Q29tcGlsZUVycm9yQ29uc3RydWN0b3Io
Vk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKQEAgLTkyLDEyICs5Nyw2IEBAIENhbGxUeXBl
IFdlYkFzc2VtYmx5Q29tcGlsZUVycm9yQ29uc3RydWN0b3I6OmdldENhbGxEYXRhKEpTQ2VsbCos
IENhbGxEYXRhJiBjYWxsCiAgICAgcmV0dXJuIENhbGxUeXBlOjpIb3N0OwogfQogCi12b2lkIFdl
YkFzc2VtYmx5Q29tcGlsZUVycm9yQ29uc3RydWN0b3I6OnZpc2l0Q2hpbGRyZW4oSlNDZWxsKiBj
ZWxsLCBTbG90VmlzaXRvciYgdmlzaXRvcikKLXsKLSAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganND
YXN0PFdlYkFzc2VtYmx5Q29tcGlsZUVycm9yQ29uc3RydWN0b3IqPihjZWxsKTsKLSAgICBBU1NF
UlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXNPYmplY3QsIGluZm8oKSk7Ci0gICAgQmFzZTo6dmlz
aXRDaGlsZHJlbih0aGlzT2JqZWN0LCB2aXNpdG9yKTsKLSAgICB2aXNpdG9yLmFwcGVuZCgmdGhp
c09iamVjdC0+bV9Db21waWxlRXJyb3JTdHJ1Y3R1cmUpOwotfQotCiB9IC8vIG5hbWVzcGFjZSBK
U0MKKworI2VuZGlmIC8vIEVOQUJMRShXRUJBU1NFTUJMWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yQ29uc3RydWN0b3Iu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5Q29tcGlsZUVycm9y
Q29uc3RydWN0b3IuaAppbmRleCA3YTUyNGI5Li5kNDg1NmM5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUNvbXBpbGVFcnJvckNvbnN0cnVjdG9y
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlDb21waWxl
RXJyb3JDb25zdHJ1Y3Rvci5oCkBAIC0yNSw2ICsyNSw4IEBACiAKICNwcmFnbWEgb25jZQogCisj
aWYgRU5BQkxFKFdFQkFTU0VNQkxZKQorCiAjaW5jbHVkZSAiSW50ZXJuYWxGdW5jdGlvbi5oIgog
I2luY2x1ZGUgIkpTT2JqZWN0LmgiCiAKQEAgLTQyLDggKzQ0LDYgQEAgcHVibGljOgogCiAgICAg
REVDTEFSRV9JTkZPOwogCi0gICAgU3RydWN0dXJlKiBDb21waWxlRXJyb3JTdHJ1Y3R1cmUoKSBj
b25zdCB7IHJldHVybiBtX0NvbXBpbGVFcnJvclN0cnVjdHVyZS5nZXQoKTsgfQotCiBwcm90ZWN0
ZWQ6CiAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihWTSYsIFdlYkFzc2VtYmx5Q29tcGlsZUVycm9y
UHJvdG90eXBlKiwgU3RydWN0dXJlKik7CiAKQEAgLTUxLDkgKzUxLDggQEAgcHJpdmF0ZToKICAg
ICBXZWJBc3NlbWJseUNvbXBpbGVFcnJvckNvbnN0cnVjdG9yKFZNJiwgU3RydWN0dXJlKik7CiAg
ICAgc3RhdGljIENvbnN0cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1
Y3REYXRhJik7CiAgICAgc3RhdGljIENhbGxUeXBlIGdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxE
YXRhJik7Ci0gICAgc3RhdGljIHZvaWQgdmlzaXRDaGlsZHJlbihKU0NlbGwqLCBTbG90VmlzaXRv
ciYpOwotCi0gICAgV3JpdGVCYXJyaWVyPFN0cnVjdHVyZT4gbV9Db21waWxlRXJyb3JTdHJ1Y3R1
cmU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKKworI2VuZGlmIC8vIEVOQUJMRShXRUJBU1NF
TUJMWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2Vt
Ymx5Q29tcGlsZUVycm9yUHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L2pzL1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yUHJvdG90eXBlLmNwcAppbmRleCA5OTNjNDk2Li4w
NTIyZTFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3Nl
bWJseUNvbXBpbGVFcnJvclByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vanMvV2ViQXNzZW1ibHlDb21waWxlRXJyb3JQcm90b3R5cGUuY3BwCkBAIC0yNiw2ICsy
Niw4IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiV2ViQXNzZW1ibHlDb21waWxl
RXJyb3JQcm90b3R5cGUuaCIKIAorI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKKwogI2luY2x1ZGUg
IkZ1bmN0aW9uUHJvdG90eXBlLmgiCiAjaW5jbHVkZSAiSlNDSW5saW5lcy5oIgogCkBAIC02Mywz
ICs2NSw1IEBAIFdlYkFzc2VtYmx5Q29tcGlsZUVycm9yUHJvdG90eXBlOjpXZWJBc3NlbWJseUNv
bXBpbGVFcnJvclByb3RvdHlwZShWTSYgdm0sIFN0cnVjCiB9CiAKIH0gLy8gbmFtZXNwYWNlIEpT
QworCisjZW5kaWYgLy8gRU5BQkxFKFdFQkFTU0VNQkxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlDb21waWxlRXJyb3JQcm90b3R5cGUuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yUHJv
dG90eXBlLmgKaW5kZXggMWEzOWMzNi4uZDMyOTY1MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlDb21waWxlRXJyb3JQcm90b3R5cGUuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUNvbXBpbGVFcnJvclBy
b3RvdHlwZS5oCkBAIC0yNSw2ICsyNSw4IEBACiAKICNwcmFnbWEgb25jZQogCisjaWYgRU5BQkxF
KFdFQkFTU0VNQkxZKQorCiAjaW5jbHVkZSAiSlNEZXN0cnVjdGlibGVPYmplY3QuaCIKICNpbmNs
dWRlICJKU09iamVjdC5oIgogCkBAIC00OCwzICs1MCw1IEBAIHByaXZhdGU6CiB9OwogCiB9IC8v
IG5hbWVzcGFjZSBKU0MKKworI2VuZGlmIC8vIEVOQUJMRShXRUJBU1NFTUJMWSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5SW5zdGFuY2VDb25z
dHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUlu
c3RhbmNlQ29uc3RydWN0b3IuY3BwCmluZGV4IGE1Njg1NWEuLjg1Y2U5YWEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5SW5zdGFuY2VDb25zdHJ1
Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlJ
bnN0YW5jZUNvbnN0cnVjdG9yLmNwcApAQCAtMjYsNiArMjYsOCBAQAogI2luY2x1ZGUgImNvbmZp
Zy5oIgogI2luY2x1ZGUgIldlYkFzc2VtYmx5SW5zdGFuY2VDb25zdHJ1Y3Rvci5oIgogCisjaWYg
RU5BQkxFKFdFQkFTU0VNQkxZKQorCiAjaW5jbHVkZSAiRnVuY3Rpb25Qcm90b3R5cGUuaCIKICNp
bmNsdWRlICJKU0NJbmxpbmVzLmgiCiAjaW5jbHVkZSAiV2ViQXNzZW1ibHlJbnN0YW5jZVByb3Rv
dHlwZS5oIgpAQCAtMTAxLDMgKzEwMyw2IEBAIHZvaWQgV2ViQXNzZW1ibHlJbnN0YW5jZUNvbnN0
cnVjdG9yOjp2aXNpdENoaWxkcmVuKEpTQ2VsbCogY2VsbCwgU2xvdFZpc2l0b3ImIHZpCiB9CiAK
IH0gLy8gbmFtZXNwYWNlIEpTQworCisjZW5kaWYgLy8gRU5BQkxFKFdFQkFTU0VNQkxZKQorCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUluc3Rh
bmNlQ29uc3RydWN0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2Vt
Ymx5SW5zdGFuY2VDb25zdHJ1Y3Rvci5oCmluZGV4IDczNmJkOGMuLmRkZGRmNzEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5SW5zdGFuY2VDb25z
dHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5
SW5zdGFuY2VDb25zdHJ1Y3Rvci5oCkBAIC0yNSw2ICsyNSw4IEBACiAKICNwcmFnbWEgb25jZQog
CisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQorCiAjaW5jbHVkZSAiSW50ZXJuYWxGdW5jdGlvbi5o
IgogI2luY2x1ZGUgIkpTT2JqZWN0LmgiCiAKQEAgLTU3LDMgKzU5LDUgQEAgcHJpdmF0ZToKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIEpTQworCisjZW5kaWYgLy8gRU5BQkxFKFdFQkFTU0VNQkxZKQpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlJbnN0
YW5jZVByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3Nl
bWJseUluc3RhbmNlUHJvdG90eXBlLmNwcAppbmRleCBlZGUzYzc5Li40Nzc3YTYxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUluc3RhbmNlUHJv
dG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJs
eUluc3RhbmNlUHJvdG90eXBlLmNwcApAQCAtMjYsNiArMjYsOCBAQAogI2luY2x1ZGUgImNvbmZp
Zy5oIgogI2luY2x1ZGUgIldlYkFzc2VtYmx5SW5zdGFuY2VQcm90b3R5cGUuaCIKIAorI2lmIEVO
QUJMRShXRUJBU1NFTUJMWSkKKwogI2luY2x1ZGUgIkZ1bmN0aW9uUHJvdG90eXBlLmgiCiAjaW5j
bHVkZSAiSlNDSW5saW5lcy5oIgogCkBAIC02MywzICs2NSw1IEBAIFdlYkFzc2VtYmx5SW5zdGFu
Y2VQcm90b3R5cGU6OldlYkFzc2VtYmx5SW5zdGFuY2VQcm90b3R5cGUoVk0mIHZtLCBTdHJ1Y3R1
cmUqIHN0CiB9CiAKIH0gLy8gbmFtZXNwYWNlIEpTQworCisjZW5kaWYgLy8gRU5BQkxFKFdFQkFT
U0VNQkxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNz
ZW1ibHlJbnN0YW5jZVByb3RvdHlwZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMv
V2ViQXNzZW1ibHlJbnN0YW5jZVByb3RvdHlwZS5oCmluZGV4IDkzYjRhYzcuLmViZGJlOTggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5SW5zdGFu
Y2VQcm90b3R5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3Nl
bWJseUluc3RhbmNlUHJvdG90eXBlLmgKQEAgLTI1LDYgKzI1LDggQEAKIAogI3ByYWdtYSBvbmNl
CiAKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCisKICNpbmNsdWRlICJKU0Rlc3RydWN0aWJsZU9i
amVjdC5oIgogI2luY2x1ZGUgIkpTT2JqZWN0LmgiCiAKQEAgLTQ4LDMgKzUwLDUgQEAgcHJpdmF0
ZToKIH07CiAKIH0gLy8gbmFtZXNwYWNlIEpTQworCisjZW5kaWYgLy8gRU5BQkxFKFdFQkFTU0VN
QkxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1i
bHlNZW1vcnlDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9X
ZWJBc3NlbWJseU1lbW9yeUNvbnN0cnVjdG9yLmNwcAppbmRleCAxZjYzNzBkLi5hZDUyNWNmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseU1lbW9y
eUNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJB
c3NlbWJseU1lbW9yeUNvbnN0cnVjdG9yLmNwcApAQCAtMjYsNiArMjYsOCBAQAogI2luY2x1ZGUg
ImNvbmZpZy5oIgogI2luY2x1ZGUgIldlYkFzc2VtYmx5TWVtb3J5Q29uc3RydWN0b3IuaCIKIAor
I2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKKwogI2luY2x1ZGUgIkZ1bmN0aW9uUHJvdG90eXBlLmgi
CiAjaW5jbHVkZSAiSlNDSW5saW5lcy5oIgogI2luY2x1ZGUgIldlYkFzc2VtYmx5TWVtb3J5UHJv
dG90eXBlLmgiCkBAIC0xMDEsMyArMTAzLDYgQEAgdm9pZCBXZWJBc3NlbWJseU1lbW9yeUNvbnN0
cnVjdG9yOjp2aXNpdENoaWxkcmVuKEpTQ2VsbCogY2VsbCwgU2xvdFZpc2l0b3ImIHZpc2kKIH0K
IAogfSAvLyBuYW1lc3BhY2UgSlNDCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCQVNTRU1CTFkpCisK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TWVt
b3J5Q29uc3RydWN0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2Vt
Ymx5TWVtb3J5Q29uc3RydWN0b3IuaAppbmRleCA5NTI1MzY0Li4zNGNkMTIwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseU1lbW9yeUNvbnN0cnVj
dG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlNZW1v
cnlDb25zdHJ1Y3Rvci5oCkBAIC0yNSw2ICsyNSw4IEBACiAKICNwcmFnbWEgb25jZQogCisjaWYg
RU5BQkxFKFdFQkFTU0VNQkxZKQorCiAjaW5jbHVkZSAiSW50ZXJuYWxGdW5jdGlvbi5oIgogI2lu
Y2x1ZGUgIkpTT2JqZWN0LmgiCiAKQEAgLTU3LDMgKzU5LDUgQEAgcHJpdmF0ZToKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIEpTQworCisjZW5kaWYgLy8gRU5BQkxFKFdFQkFTU0VNQkxZKQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlNZW1vcnlQcm90
b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlNZW1v
cnlQcm90b3R5cGUuY3BwCmluZGV4IDYwZTQ4ODguLjI0MThmZjMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TWVtb3J5UHJvdG90eXBlLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseU1lbW9yeVByb3Rv
dHlwZS5jcHAKQEAgLTI2LDYgKzI2LDggQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRl
ICJXZWJBc3NlbWJseU1lbW9yeVByb3RvdHlwZS5oIgogCisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZ
KQorCiAjaW5jbHVkZSAiRnVuY3Rpb25Qcm90b3R5cGUuaCIKICNpbmNsdWRlICJKU0NJbmxpbmVz
LmgiCiAKQEAgLTYzLDMgKzY1LDUgQEAgV2ViQXNzZW1ibHlNZW1vcnlQcm90b3R5cGU6OldlYkFz
c2VtYmx5TWVtb3J5UHJvdG90eXBlKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3QKIH0KIAogfSAv
LyBuYW1lc3BhY2UgSlNDCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCQVNTRU1CTFkpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseU1lbW9yeVByb3Rv
dHlwZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlNZW1vcnlQ
cm90b3R5cGUuaAppbmRleCA5ZDNmODUwLi40MjE5OTAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseU1lbW9yeVByb3RvdHlwZS5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TWVtb3J5UHJvdG90eXBlLmgK
QEAgLTI1LDYgKzI1LDggQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpZiBFTkFCTEUoV0VCQVNTRU1C
TFkpCisKICNpbmNsdWRlICJKU0Rlc3RydWN0aWJsZU9iamVjdC5oIgogI2luY2x1ZGUgIkpTT2Jq
ZWN0LmgiCiAKQEAgLTQ4LDMgKzUwLDUgQEAgcHJpdmF0ZToKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IEpTQworCisjZW5kaWYgLy8gRU5BQkxFKFdFQkFTU0VNQkxZKQpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlNb2R1bGVDb25zdHJ1Y3Rvci5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseU1vZHVsZUNvbnN0cnVj
dG9yLmNwcAppbmRleCBjODM4YjNkMC4uZTk3YjAxMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlNb2R1bGVDb25zdHJ1Y3Rvci5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlNb2R1bGVDb25zdHJ1Y3Rv
ci5jcHAKQEAgLTI2LDYgKzI2LDggQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJX
ZWJBc3NlbWJseU1vZHVsZUNvbnN0cnVjdG9yLmgiCiAKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFkp
CisKICNpbmNsdWRlICJGdW5jdGlvblByb3RvdHlwZS5oIgogI2luY2x1ZGUgIkpTQ0lubGluZXMu
aCIKICNpbmNsdWRlICJXZWJBc3NlbWJseU1vZHVsZVByb3RvdHlwZS5oIgpAQCAtMTAxLDMgKzEw
Myw2IEBAIHZvaWQgV2ViQXNzZW1ibHlNb2R1bGVDb25zdHJ1Y3Rvcjo6dmlzaXRDaGlsZHJlbihK
U0NlbGwqIGNlbGwsIFNsb3RWaXNpdG9yJiB2aXNpCiB9CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwor
CisjZW5kaWYgLy8gRU5BQkxFKFdFQkFTU0VNQkxZKQorCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseU1vZHVsZUNvbnN0cnVjdG9yLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseU1vZHVsZUNvbnN0cnVjdG9yLmgK
aW5kZXggM2FhNGFmYS4uNTYwNTdhNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vanMvV2ViQXNzZW1ibHlNb2R1bGVDb25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TW9kdWxlQ29uc3RydWN0b3IuaApAQCAtMjUs
NiArMjUsOCBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKKwog
I2luY2x1ZGUgIkludGVybmFsRnVuY3Rpb24uaCIKICNpbmNsdWRlICJKU09iamVjdC5oIgogCkBA
IC01NywzICs1OSw1IEBAIHByaXZhdGU6CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKKworI2Vu
ZGlmIC8vIEVOQUJMRShXRUJBU1NFTUJMWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TW9kdWxlUHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TW9kdWxlUHJvdG90eXBlLmNwcAppbmRleCA5
ZGIwY2U5Li4yYmIyYjVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9q
cy9XZWJBc3NlbWJseU1vZHVsZVByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vanMvV2ViQXNzZW1ibHlNb2R1bGVQcm90b3R5cGUuY3BwCkBAIC0yNiw2ICsyNiw4
IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiV2ViQXNzZW1ibHlNb2R1bGVQcm90
b3R5cGUuaCIKIAorI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKKwogI2luY2x1ZGUgIkZ1bmN0aW9u
UHJvdG90eXBlLmgiCiAjaW5jbHVkZSAiSlNDSW5saW5lcy5oIgogCkBAIC02MywzICs2NSw1IEBA
IFdlYkFzc2VtYmx5TW9kdWxlUHJvdG90eXBlOjpXZWJBc3NlbWJseU1vZHVsZVByb3RvdHlwZShW
TSYgdm0sIFN0cnVjdHVyZSogc3RydWN0CiB9CiAKIH0gLy8gbmFtZXNwYWNlIEpTQworCisjZW5k
aWYgLy8gRU5BQkxFKFdFQkFTU0VNQkxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vanMvV2ViQXNzZW1ibHlNb2R1bGVQcm90b3R5cGUuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TW9kdWxlUHJvdG90eXBlLmgKaW5kZXggOGE3MTNk
NS4uZDViNjI3OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2Vi
QXNzZW1ibHlNb2R1bGVQcm90b3R5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9qcy9XZWJBc3NlbWJseU1vZHVsZVByb3RvdHlwZS5oCkBAIC0yNSw2ICsyNSw4IEBACiAKICNw
cmFnbWEgb25jZQogCisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQorCiAjaW5jbHVkZSAiSlNEZXN0
cnVjdGlibGVPYmplY3QuaCIKICNpbmNsdWRlICJKU09iamVjdC5oIgogCkBAIC00OCwzICs1MCw1
IEBAIHByaXZhdGU6CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKKworI2VuZGlmIC8vIEVOQUJM
RShXRUJBU1NFTUJMWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pz
L1dlYkFzc2VtYmx5UHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pz
L1dlYkFzc2VtYmx5UHJvdG90eXBlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi4yZDRlMDA0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vanMvV2ViQXNzZW1ibHlQcm90b3R5cGUuY3BwCkBAIC0wLDAgKzEsODkgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiV2ViQXNzZW1ibHlQcm90b3R5cGUuaCIKKworI2lmIEVOQUJMRShXRUJBU1NF
TUJMWSkKKworI2luY2x1ZGUgIkZ1bmN0aW9uUHJvdG90eXBlLmgiCisjaW5jbHVkZSAiSlNDSW5s
aW5lcy5oIgorCituYW1lc3BhY2UgSlNDIHsKKworc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgd2ViQXNzZW1ibHlGdW5jdGlvblZhbGlkYXRlKEV4ZWNTdGF0ZSogc3RhdGUpCit7
CisgICAgVk0mIHZtID0gc3RhdGUtPnZtKCk7CisgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhS
T1dfU0NPUEUodm0pOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUodGhyb3dFeGNlcHRpb24o
c3RhdGUsIHNjb3BlLCBjcmVhdGVFcnJvcihzdGF0ZSwgQVNDSUlMaXRlcmFsKCJXZWJBc3NlbWJs
eSBkb2Vzbid0IHlldCBpbXBsZW1lbnQgdGhlIHZhbGlkYXRlIGZ1bmN0aW9uIHByb3BlcnR5Iikp
KSk7Cit9CisKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHdlYkFzc2VtYmx5
RnVuY3Rpb25Db21waWxlKEV4ZWNTdGF0ZSogc3RhdGUpCit7CisgICAgVk0mIHZtID0gc3RhdGUt
PnZtKCk7CisgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOworICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUodGhyb3dFeGNlcHRpb24oc3RhdGUsIHNjb3BlLCBjcmVhdGVF
cnJvcihzdGF0ZSwgQVNDSUlMaXRlcmFsKCJXZWJBc3NlbWJseSBkb2Vzbid0IHlldCBpbXBsZW1l
bnQgdGhlIGNvbXBpbGUgZnVuY3Rpb24gcHJvcGVydHkiKSkpKTsKK30KKworfQorCisjaW5jbHVk
ZSAiV2ViQXNzZW1ibHlQcm90b3R5cGUubHV0LmgiCisKK25hbWVzcGFjZSBKU0MgeworCitjb25z
dCBDbGFzc0luZm8gV2ViQXNzZW1ibHlQcm90b3R5cGU6OnNfaW5mbyA9IHsgIldlYkFzc2VtYmx5
LnByb3RvdHlwZSIsICZCYXNlOjpzX2luZm8sICZwcm90b3R5cGVUYWJsZVdlYkFzc2VtYmx5LCBD
UkVBVEVfTUVUSE9EX1RBQkxFKFdlYkFzc2VtYmx5UHJvdG90eXBlKSB9OworCisvKiBTb3VyY2Ug
Zm9yIFdlYkFzc2VtYmx5UHJvdG90eXBlLmx1dC5oCisgQGJlZ2luIHByb3RvdHlwZVRhYmxlV2Vi
QXNzZW1ibHkKKyB2YWxpZGF0ZSB3ZWJBc3NlbWJseUZ1bmN0aW9uVmFsaWRhdGUgIERvbnRFbnVt
fEZ1bmN0aW9uIDEKKyBjb21waWxlICB3ZWJBc3NlbWJseUZ1bmN0aW9uQ29tcGlsZSAgIERvbnRF
bnVtfEZ1bmN0aW9uIDEKKyBAZW5kCisgKi8KKworV2ViQXNzZW1ibHlQcm90b3R5cGUqIFdlYkFz
c2VtYmx5UHJvdG90eXBlOjpjcmVhdGUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVy
ZSogc3RydWN0dXJlKQoreworICAgIGF1dG8qIG9iamVjdCA9IG5ldyAoTm90TnVsbCwgYWxsb2Nh
dGVDZWxsPFdlYkFzc2VtYmx5UHJvdG90eXBlPih2bS5oZWFwKSkgV2ViQXNzZW1ibHlQcm90b3R5
cGUodm0sIHN0cnVjdHVyZSk7CisgICAgb2JqZWN0LT5maW5pc2hDcmVhdGlvbih2bSk7CisgICAg
cmV0dXJuIG9iamVjdDsKK30KKworU3RydWN0dXJlKiBXZWJBc3NlbWJseVByb3RvdHlwZTo6Y3Jl
YXRlU3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1
ZSBwcm90b3R5cGUpCit7CisgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxP
YmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBp
bmZvKCkpOworfQorCit2b2lkIFdlYkFzc2VtYmx5UHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihW
TSYgdm0pCit7CisgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0pOworfQorCitXZWJBc3NlbWJs
eVByb3RvdHlwZTo6V2ViQXNzZW1ibHlQcm90b3R5cGUoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVj
dHVyZSkKKyAgICA6IEJhc2Uodm0sIHN0cnVjdHVyZSkKK3sKK30KKworfSAvLyBuYW1lc3BhY2Ug
SlNDCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCQVNTRU1CTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9XZWJBc3NlbWJseU9iamVjdC5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlQcm90b3R5cGUuaApzaW1pbGFyaXR5IGluZGV4IDc0
JQpyZW5hbWUgZnJvbSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XZWJBc3NlbWJseU9iamVj
dC5oCnJlbmFtZSB0byBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseVBy
b3RvdHlwZS5oCmluZGV4IDdiNTJjYTYuLjI4N2Q1YTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL1dlYkFzc2VtYmx5T2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlQcm90b3R5cGUuaApAQCAtMjUsMzggKzI1LDMwIEBA
CiAKICNwcmFnbWEgb25jZQogCisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQorCisjaW5jbHVkZSAi
SlNEZXN0cnVjdGlibGVPYmplY3QuaCIKICNpbmNsdWRlICJKU09iamVjdC5oIgogCiBuYW1lc3Bh
Y2UgSlNDIHsKIAotY2xhc3MgV2ViQXNzZW1ibHlPYmplY3QgOiBwdWJsaWMgSlNOb25GaW5hbE9i
amVjdCB7CitjbGFzcyBXZWJBc3NlbWJseVByb3RvdHlwZSA6IHB1YmxpYyBKU05vbkZpbmFsT2Jq
ZWN0IHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIEpTTm9uRmluYWxPYmplY3QgQmFzZTsKKyAgICBz
dGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFn
cyB8IEhhc1N0YXRpY1Byb3BlcnR5VGFibGU7CiAKLSAgICBzdGF0aWMgV2ViQXNzZW1ibHlPYmpl
Y3QqIGNyZWF0ZShWTSYsIEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKik7CisgICAgc3RhdGlj
IFdlYkFzc2VtYmx5UHJvdG90eXBlKiBjcmVhdGUoVk0mLCBKU0dsb2JhbE9iamVjdCosIFN0cnVj
dHVyZSopOwogICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShWTSYsIEpTR2xv
YmFsT2JqZWN0KiwgSlNWYWx1ZSk7CiAKICAgICBERUNMQVJFX0lORk87CiAKIHByb3RlY3RlZDoK
LSAgICB2b2lkIGZpbmlzaENyZWF0aW9uKFZNJiwgSlNHbG9iYWxPYmplY3QqKTsKKyAgICB2b2lk
IGZpbmlzaENyZWF0aW9uKFZNJik7CiAKIHByaXZhdGU6Ci0gICAgV2ViQXNzZW1ibHlPYmplY3Qo
Vk0mLCBTdHJ1Y3R1cmUqKTsKKyAgICBXZWJBc3NlbWJseVByb3RvdHlwZShWTSYsIFN0cnVjdHVy
ZSopOwogfTsKIAotLy8gTmFtZSwgZnVuY3Rpb25MZW5ndGgKLSNkZWZpbmUgRk9SX0VBQ0hfV0FT
TV9DT05TVFJVQ1RPUl9QUk9QRVJUWShETykgXAotICAgIERPKE1vZHVsZSwgMSkgXAotICAgIERP
KEluc3RhbmNlLCAyKSBcCi0gICAgRE8oTWVtb3J5LCAxKSBcCi0gICAgRE8oVGFibGUsIDEpIFwK
LSAgICBETyhDb21waWxlRXJyb3IsIDEpIFwKLSAgICBETyhSdW50aW1lRXJyb3IsIDEpCi0KLS8v
IE5hbWUsIGZ1bmN0aW9uTGVuZ3RoCi0jZGVmaW5lIEZPUl9FQUNIX1dBU01fRlVOQ1RJT05fUFJP
UEVSVFkoRE8pIFwKLSAgICBETyh2YWxpZGF0ZSwgMSkgXAotICAgIERPKGNvbXBpbGUsIDEpCi0K
IH0gLy8gbmFtZXNwYWNlIEpTQworCisjZW5kaWYgLy8gRU5BQkxFKFdFQkFTU0VNQkxZKQpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlSdW50aW1l
RXJyb3JDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJB
c3NlbWJseVJ1bnRpbWVFcnJvckNvbnN0cnVjdG9yLmNwcAppbmRleCBiMzA2N2U1Li41NTI4MDIy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseVJ1
bnRpbWVFcnJvckNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9qcy9XZWJBc3NlbWJseVJ1bnRpbWVFcnJvckNvbnN0cnVjdG9yLmNwcApAQCAtMjYsOCArMjYs
MTEgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJXZWJBc3NlbWJseVJ1bnRpbWVF
cnJvckNvbnN0cnVjdG9yLmgiCiAKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCisKICNpbmNsdWRl
ICJGdW5jdGlvblByb3RvdHlwZS5oIgogI2luY2x1ZGUgIkpTQ0lubGluZXMuaCIKKyNpbmNsdWRl
ICJKU1dlYkFzc2VtYmx5UnVudGltZUVycm9yLmgiCiAjaW5jbHVkZSAiV2ViQXNzZW1ibHlSdW50
aW1lRXJyb3JQcm90b3R5cGUuaCIKIAogI2luY2x1ZGUgIldlYkFzc2VtYmx5UnVudGltZUVycm9y
Q29uc3RydWN0b3IubHV0LmgiCkBAIC00Myw5ICs0NiwxMiBAQCBjb25zdCBDbGFzc0luZm8gV2Vi
QXNzZW1ibHlSdW50aW1lRXJyb3JDb25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiRnVuY3Rpb24iLCAm
QmFzZQogCiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RKU1dl
YkFzc2VtYmx5UnVudGltZUVycm9yKEV4ZWNTdGF0ZSogc3RhdGUpCiB7Ci0gICAgVk0mIHZtID0g
c3RhdGUtPnZtKCk7CisgICAgYXV0byYgdm0gPSBzdGF0ZS0+dm0oKTsKICAgICBhdXRvIHNjb3Bl
ID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZSh0
aHJvd0V4Y2VwdGlvbihzdGF0ZSwgc2NvcGUsIGNyZWF0ZUVycm9yKHN0YXRlLCBBU0NJSUxpdGVy
YWwoIldlYkFzc2VtYmx5IGRvZXNuJ3QgeWV0IGltcGxlbWVudCB0aGUgUnVudGltZUVycm9yIGNv
bnN0cnVjdG9yIHByb3BlcnR5IikpKSk7CisgICAgSlNWYWx1ZSBtZXNzYWdlID0gc3RhdGUtPmFy
Z3VtZW50Q291bnQoKSA/IHN0YXRlLT5hcmd1bWVudCgwKSA6IGpzVW5kZWZpbmVkKCk7CisgICAg
YXV0byogc3RydWN0dXJlID0gSW50ZXJuYWxGdW5jdGlvbjo6Y3JlYXRlU3ViY2xhc3NTdHJ1Y3R1
cmUoc3RhdGUsIHN0YXRlLT5uZXdUYXJnZXQoKSwgYXNJbnRlcm5hbEZ1bmN0aW9uKHN0YXRlLT5j
YWxsZWUoKSktPmdsb2JhbE9iamVjdCgpLT5XZWJBc3NlbWJseVJ1bnRpbWVFcnJvclN0cnVjdHVy
ZSgpKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsK
KyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTV2ViQXNzZW1ibHlSdW50aW1lRXJyb3I6OmNy
ZWF0ZShzdGF0ZSwgc3RydWN0dXJlLCBtZXNzYWdlLCBmYWxzZSkpOwogfQogCiBzdGF0aWMgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsSlNXZWJBc3NlbWJseVJ1bnRpbWVFcnJvcihF
eGVjU3RhdGUqIHN0YXRlKQpAQCAtNjcsMTIgKzczLDExIEBAIFN0cnVjdHVyZSogV2ViQXNzZW1i
bHlSdW50aW1lRXJyb3JDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNHbG9i
YWxPCiAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3Rv
dHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOwogfQog
Ci12b2lkIFdlYkFzc2VtYmx5UnVudGltZUVycm9yQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9u
KFZNJiB2bSwgV2ViQXNzZW1ibHlSdW50aW1lRXJyb3JQcm90b3R5cGUqIHByb3RvdHlwZSwgU3Ry
dWN0dXJlKiBzdHJ1Y3R1cmUpCit2b2lkIFdlYkFzc2VtYmx5UnVudGltZUVycm9yQ29uc3RydWN0
b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgV2ViQXNzZW1ibHlSdW50aW1lRXJyb3JQcm90b3R5
cGUqIHByb3RvdHlwZSwgU3RydWN0dXJlKikKIHsKICAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2
bSwgQVNDSUlMaXRlcmFsKCJSdW50aW1lRXJyb3IiKSk7Ci0gICAgcHV0RGlyZWN0V2l0aG91dFRy
YW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPnByb3RvdHlwZSwgcHJvdG90eXBlLCBEb250
RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSk7CisgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5z
aXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPnByb3RvdHlwZSwgcHJvdG90eXBlLCBSZWFkT25s
eSB8IERvbnRFbnVtIHwgRG9udERlbGV0ZSk7CiAgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRp
b24odm0sIHZtLnByb3BlcnR5TmFtZXMtPmxlbmd0aCwganNOdW1iZXIoMSksIFJlYWRPbmx5IHwg
RG9udEVudW0gfCBEb250RGVsZXRlKTsKLSAgICBtX1J1bnRpbWVFcnJvclN0cnVjdHVyZS5zZXQo
dm0sIHRoaXMsIHN0cnVjdHVyZSk7CiB9CiAKIFdlYkFzc2VtYmx5UnVudGltZUVycm9yQ29uc3Ry
dWN0b3I6OldlYkFzc2VtYmx5UnVudGltZUVycm9yQ29uc3RydWN0b3IoVk0mIHZtLCBTdHJ1Y3R1
cmUqIHN0cnVjdHVyZSkKQEAgLTkyLDEyICs5Nyw2IEBAIENhbGxUeXBlIFdlYkFzc2VtYmx5UnVu
dGltZUVycm9yQ29uc3RydWN0b3I6OmdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJiBjYWxs
CiAgICAgcmV0dXJuIENhbGxUeXBlOjpIb3N0OwogfQogCi12b2lkIFdlYkFzc2VtYmx5UnVudGlt
ZUVycm9yQ29uc3RydWN0b3I6OnZpc2l0Q2hpbGRyZW4oSlNDZWxsKiBjZWxsLCBTbG90VmlzaXRv
ciYgdmlzaXRvcikKLXsKLSAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PFdlYkFzc2VtYmx5
UnVudGltZUVycm9yQ29uc3RydWN0b3IqPihjZWxsKTsKLSAgICBBU1NFUlRfR0NfT0JKRUNUX0lO
SEVSSVRTKHRoaXNPYmplY3QsIGluZm8oKSk7Ci0gICAgQmFzZTo6dmlzaXRDaGlsZHJlbih0aGlz
T2JqZWN0LCB2aXNpdG9yKTsKLSAgICB2aXNpdG9yLmFwcGVuZCgmdGhpc09iamVjdC0+bV9SdW50
aW1lRXJyb3JTdHJ1Y3R1cmUpOwotfQotCiB9IC8vIG5hbWVzcGFjZSBKU0MKKworI2VuZGlmIC8v
IEVOQUJMRShXRUJBU1NFTUJMWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL2pzL1dlYkFzc2VtYmx5UnVudGltZUVycm9yQ29uc3RydWN0b3IuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5UnVudGltZUVycm9yQ29uc3RydWN0b3IuaApp
bmRleCA5ZmM5MWM3Li5iZTQxOWQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9qcy9XZWJBc3NlbWJseVJ1bnRpbWVFcnJvckNvbnN0cnVjdG9yLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlSdW50aW1lRXJyb3JDb25zdHJ1Y3Rv
ci5oCkBAIC0yNSw2ICsyNSw4IEBACiAKICNwcmFnbWEgb25jZQogCisjaWYgRU5BQkxFKFdFQkFT
U0VNQkxZKQorCiAjaW5jbHVkZSAiSW50ZXJuYWxGdW5jdGlvbi5oIgogI2luY2x1ZGUgIkpTT2Jq
ZWN0LmgiCiAKQEAgLTQyLDggKzQ0LDYgQEAgcHVibGljOgogCiAgICAgREVDTEFSRV9JTkZPOwog
Ci0gICAgU3RydWN0dXJlKiBSdW50aW1lRXJyb3JTdHJ1Y3R1cmUoKSBjb25zdCB7IHJldHVybiBt
X1J1bnRpbWVFcnJvclN0cnVjdHVyZS5nZXQoKTsgfQotCiBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBm
aW5pc2hDcmVhdGlvbihWTSYsIFdlYkFzc2VtYmx5UnVudGltZUVycm9yUHJvdG90eXBlKiwgU3Ry
dWN0dXJlKik7CiAKQEAgLTUxLDkgKzUxLDggQEAgcHJpdmF0ZToKICAgICBXZWJBc3NlbWJseVJ1
bnRpbWVFcnJvckNvbnN0cnVjdG9yKFZNJiwgU3RydWN0dXJlKik7CiAgICAgc3RhdGljIENvbnN0
cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRhJik7CiAgICAg
c3RhdGljIENhbGxUeXBlIGdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJik7Ci0gICAgc3Rh
dGljIHZvaWQgdmlzaXRDaGlsZHJlbihKU0NlbGwqLCBTbG90VmlzaXRvciYpOwotCi0gICAgV3Jp
dGVCYXJyaWVyPFN0cnVjdHVyZT4gbV9SdW50aW1lRXJyb3JTdHJ1Y3R1cmU7CiB9OwogCiB9IC8v
IG5hbWVzcGFjZSBKU0MKKworI2VuZGlmIC8vIEVOQUJMRShXRUJBU1NFTUJMWSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5UnVudGltZUVycm9y
UHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5
UnVudGltZUVycm9yUHJvdG90eXBlLmNwcAppbmRleCBkYmM2Njc3Li5iMzc0ZGJkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseVJ1bnRpbWVFcnJv
clByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNz
ZW1ibHlSdW50aW1lRXJyb3JQcm90b3R5cGUuY3BwCkBAIC0yNiw2ICsyNiw4IEBACiAjaW5jbHVk
ZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiV2ViQXNzZW1ibHlSdW50aW1lRXJyb3JQcm90b3R5cGUu
aCIKIAorI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKKwogI2luY2x1ZGUgIkZ1bmN0aW9uUHJvdG90
eXBlLmgiCiAjaW5jbHVkZSAiSlNDSW5saW5lcy5oIgogCkBAIC02MywzICs2NSw1IEBAIFdlYkFz
c2VtYmx5UnVudGltZUVycm9yUHJvdG90eXBlOjpXZWJBc3NlbWJseVJ1bnRpbWVFcnJvclByb3Rv
dHlwZShWTSYgdm0sIFN0cnVjCiB9CiAKIH0gLy8gbmFtZXNwYWNlIEpTQworCisjZW5kaWYgLy8g
RU5BQkxFKFdFQkFTU0VNQkxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vanMvV2ViQXNzZW1ibHlSdW50aW1lRXJyb3JQcm90b3R5cGUuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5UnVudGltZUVycm9yUHJvdG90eXBlLmgKaW5kZXgg
YTcyOWZiMC4uMjA3N2ZhOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
anMvV2ViQXNzZW1ibHlSdW50aW1lRXJyb3JQcm90b3R5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseVJ1bnRpbWVFcnJvclByb3RvdHlwZS5oCkBAIC0y
NSw2ICsyNSw4IEBACiAKICNwcmFnbWEgb25jZQogCisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQor
CiAjaW5jbHVkZSAiSlNEZXN0cnVjdGlibGVPYmplY3QuaCIKICNpbmNsdWRlICJKU09iamVjdC5o
IgogCkBAIC00OCwzICs1MCw1IEBAIHByaXZhdGU6CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MK
KworI2VuZGlmIC8vIEVOQUJMRShXRUJBU1NFTUJMWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5VGFibGVDb25zdHJ1Y3Rvci5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseVRhYmxlQ29uc3RydWN0b3IuY3Bw
CmluZGV4IDA1M2Q4YmYuLjRiNjYwOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL2pzL1dlYkFzc2VtYmx5VGFibGVDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlUYWJsZUNvbnN0cnVjdG9yLmNwcApAQCAt
MjYsNiArMjYsOCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIldlYkFzc2VtYmx5
VGFibGVDb25zdHJ1Y3Rvci5oIgogCisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQorCiAjaW5jbHVk
ZSAiRnVuY3Rpb25Qcm90b3R5cGUuaCIKICNpbmNsdWRlICJKU0NJbmxpbmVzLmgiCiAjaW5jbHVk
ZSAiV2ViQXNzZW1ibHlUYWJsZVByb3RvdHlwZS5oIgpAQCAtMTAxLDMgKzEwMyw2IEBAIHZvaWQg
V2ViQXNzZW1ibHlUYWJsZUNvbnN0cnVjdG9yOjp2aXNpdENoaWxkcmVuKEpTQ2VsbCogY2VsbCwg
U2xvdFZpc2l0b3ImIHZpc2l0CiB9CiAKIH0gLy8gbmFtZXNwYWNlIEpTQworCisjZW5kaWYgLy8g
RU5BQkxFKFdFQkFTU0VNQkxZKQorCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9qcy9XZWJBc3NlbWJseVRhYmxlQ29uc3RydWN0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5VGFibGVDb25zdHJ1Y3Rvci5oCmluZGV4IDg5NGI1MTQu
LmUwOGU3MzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFz
c2VtYmx5VGFibGVDb25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L2pzL1dlYkFzc2VtYmx5VGFibGVDb25zdHJ1Y3Rvci5oCkBAIC0yNSw2ICsyNSw4IEBACiAKICNw
cmFnbWEgb25jZQogCisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQorCiAjaW5jbHVkZSAiSW50ZXJu
YWxGdW5jdGlvbi5oIgogI2luY2x1ZGUgIkpTT2JqZWN0LmgiCiAKQEAgLTU3LDMgKzU5LDUgQEAg
cHJpdmF0ZToKIH07CiAKIH0gLy8gbmFtZXNwYWNlIEpTQworCisjZW5kaWYgLy8gRU5BQkxFKFdF
QkFTU0VNQkxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2Vi
QXNzZW1ibHlUYWJsZVByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9q
cy9XZWJBc3NlbWJseVRhYmxlUHJvdG90eXBlLmNwcAppbmRleCA1YzMyMDk3Li43YWEzOTRiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseVRhYmxl
UHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3Nl
bWJseVRhYmxlUHJvdG90eXBlLmNwcApAQCAtMjYsNiArMjYsOCBAQAogI2luY2x1ZGUgImNvbmZp
Zy5oIgogI2luY2x1ZGUgIldlYkFzc2VtYmx5VGFibGVQcm90b3R5cGUuaCIKIAorI2lmIEVOQUJM
RShXRUJBU1NFTUJMWSkKKwogI2luY2x1ZGUgIkZ1bmN0aW9uUHJvdG90eXBlLmgiCiAjaW5jbHVk
ZSAiSlNDSW5saW5lcy5oIgogCkBAIC02MywzICs2NSw1IEBAIFdlYkFzc2VtYmx5VGFibGVQcm90
b3R5cGU6OldlYkFzc2VtYmx5VGFibGVQcm90b3R5cGUoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVj
dHVyCiB9CiAKIH0gLy8gbmFtZXNwYWNlIEpTQworCisjZW5kaWYgLy8gRU5BQkxFKFdFQkFTU0VN
QkxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1i
bHlUYWJsZVByb3RvdHlwZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNz
ZW1ibHlUYWJsZVByb3RvdHlwZS5oCmluZGV4IGM2M2UwMDEuLmM1YjFlZjggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5VGFibGVQcm90b3R5cGUu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseVRhYmxlUHJv
dG90eXBlLmgKQEAgLTI1LDYgKzI1LDggQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpZiBFTkFCTEUo
V0VCQVNTRU1CTFkpCisKICNpbmNsdWRlICJKU0Rlc3RydWN0aWJsZU9iamVjdC5oIgogI2luY2x1
ZGUgIkpTT2JqZWN0LmgiCiAKQEAgLTQ4LDMgKzUwLDUgQEAgcHJpdmF0ZToKIH07CiAKIH0gLy8g
bmFtZXNwYWNlIEpTQworCisjZW5kaWYgLy8gRU5BQkxFKFdFQkFTU0VNQkxZKQotLSAKMi4xMC4x
Cgo=
</data>
<flag name="commit-queue"
          id="315374"
          type_id="3"
          status="-"
          setter="commit-queue"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>292295</attachid>
            <date>2016-10-20 17:47:30 -0700</date>
            <delta_ts>2016-10-20 18:22:09 -0700</delta_ts>
            <desc>patch</desc>
            <filename>0001-WebAssembly-API-implement-exception-constructors-pro.patch</filename>
            <type>text/plain</type>
            <size>88291</size>
            <attacher name="JF Bastien">jfbastien</attacher>
            
              <data encoding="base64">RnJvbSA4ZGJmODMxMmI2NzEwMWJlODcwNjk1YmM0ZDZiNGJjYTFiZmM3ODk2IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKRiBCYXN0aWVuIDxqZmJhc3RpZW5AYXBwbGUuY29tPgpEYXRl
OiBXZWQsIDE5IE9jdCAyMDE2IDE1OjQ0OjQzIC0wNzAwClN1YmplY3Q6IFtQQVRDSF0gV2ViQXNz
ZW1ibHkgQVBJOiBpbXBsZW1lbnQgZXhjZXB0aW9uIGNvbnN0cnVjdG9ycyBwcm9wZXJseQoKIC0g
UmVuYW1lIFdlYkFzc2VtYmx5T2JqZWN0IHRvIEpTV2ViQXNzZW1ibHkgZm9yIGNvbnNpc3RlbmN5
LgogLSBXZWJBc3NlbWJseSBvYmplY3Qgbm93IGhhcyBpdHMgb3duIHByb3RvdHlwZTogYWRkIFdl
YkFzc2VtYmx5UHJvdG90eXBlLCBhbmQKICAgdXNlIGl0IHRvIHJlZ2lzdGVyIEpTV2ViQXNzZW1i
bHkncyBmdW5jdGlvbiBwcm9wZXJ0aWVzIHRocm91Z2ggYXV0by1nZW5lcmF0ZWQKICAgLmx1dC5o
LCBpbnN0ZWFkIG9mIG1hbnVhbGx5LgogLSBUaGUgZXJyb3IgY29uc3RydWN0b3JzIHVzZWQgdG8g
dGhyb3cgKGUuZy4gYG5ldyBXZWJBc3NlbWJseS5Db21waWxlRXJyb3IoKWApLgogLSBSZWdpc3Rl
ciBXZWJBc3NlbWJseSdzIGNvbnN0cnVjdG9ycyBmcm9tIHRoZSBnbG9iYWwgb2JqZWN0LCBhbmQg
aG9sZCBhCiAgIHJlZmVyZW5jZSB0byB0aGVpciBzdHJ1Y3R1cmUgYW5kIHByb3RvdHlwZSBzbyB0
aGF0IGludm9raW5nIHRoZSBjb25zdHJ1Y3RvcgogICBjYW4gdXNlIHRoZSBzdHJ1Y3R1cmUgZGly
ZWN0bHkgZnJvbSB0aGUgZ2xvYmFsIG9iamVjdC4KIC0gQWRkIGEgcHJvdG90eXBlIGJhc2UgZmll
bGQgdG8gZ2xvYmFsIG9iamVjdCBjcmVhdGlvbi4gUHJldmlvdXMgb25lcyBhbGwgaGFkCiAgIE9i
amVjdCdzIHByb3RvdHlwZSBhcyB0aGVpciBiYXNlLCBidXQgV2ViQXNzZW1ibHkncyBlcnJvciBj
b25zdHJ1Y3RvcnMgaGF2ZQogICBFcnJvciBhcyB0aGVpciBiYXNlLgogLSBUZXN0IGZvciB0aGUg
ZXJyb3Igb2JqZWN0J3MgY29ycmVjdG5lc3MuCiAtIEFkZCBtaXNzaW5nICNpZiBFTkFCTEUoV0VC
QVNTRU1CTFkpCi0tLQogSlNUZXN0cy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfCAgMjYgKysrKysKIEpTVGVzdHMvd2FzbS9qcy1hcGkvdGVzdF9iYXNpY19hcGku
anMgICAgICAgICAgICAgIHwgIDIyICsrKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxp
c3RzLnR4dCAgICAgICAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hh
bmdlTG9nICAgICAgICAgICAgICAgICAgICB8ICA4OCArKysrKysrKysrKysrKysrCiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSAgICAgICAgICB8ICAgMSArCiAuLi4v
SmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiAgICAgICB8ICAyNCArKyst
LQogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwICAgfCAg
NTUgKysrKysrLS0tLQogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmpl
Y3QuaCAgICAgfCAgNTcgKysrKysrKy0tLS0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL0pT
V2ViQXNzZW1ibHkuY3BwICAgICAgIHwgIDY1ICsrKysrKysrKysrKwogU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vSlNXZWJBc3NlbWJseS5oICAgICAgICAgfCAgNzEgKysrKysrKysrKysrKwog
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2ViQXNzZW1ibHlPYmplY3QuY3BwICAgfCAxMTMg
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAuLi4vd2FzbS9qcy9KU1dlYkFzc2VtYmx5Q29tcGlsZUVy
cm9yLmNwcCAgICAgICAgICB8ICAgNCArCiAuLi4vd2FzbS9qcy9KU1dlYkFzc2VtYmx5Q29tcGls
ZUVycm9yLmggICAgICAgICAgICB8ICAgOCArKwogLi4uL3dhc20vanMvSlNXZWJBc3NlbWJseUlu
c3RhbmNlLmNwcCAgICAgICAgICAgICAgfCAgIDQgKwogLi4uL0phdmFTY3JpcHRDb3JlL3dhc20v
anMvSlNXZWJBc3NlbWJseUluc3RhbmNlLmggfCAgIDQgKwogLi4uL0phdmFTY3JpcHRDb3JlL3dh
c20vanMvSlNXZWJBc3NlbWJseU1lbW9yeS5jcHAgfCAgIDQgKwogLi4uL0phdmFTY3JpcHRDb3Jl
L3dhc20vanMvSlNXZWJBc3NlbWJseU1lbW9yeS5oICAgfCAgIDQgKwogLi4uL0phdmFTY3JpcHRD
b3JlL3dhc20vanMvSlNXZWJBc3NlbWJseU1vZHVsZS5jcHAgfCAgIDQgKwogLi4uL0phdmFTY3Jp
cHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseU1vZHVsZS5oICAgfCAgIDQgKwogLi4uL3dhc20v
anMvSlNXZWJBc3NlbWJseVJ1bnRpbWVFcnJvci5jcHAgICAgICAgICAgfCAgIDQgKwogLi4uL3dh
c20vanMvSlNXZWJBc3NlbWJseVJ1bnRpbWVFcnJvci5oICAgICAgICAgICAgfCAgIDggKysKIC4u
Li9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlUYWJsZS5jcHAgIHwgICA0ICsK
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlUYWJsZS5oIHwgICA0
ICsKIC4uLi93YXNtL2pzL1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yQ29uc3RydWN0b3IuY3BwIHwg
IDI1ICsrKy0tCiAuLi4vd2FzbS9qcy9XZWJBc3NlbWJseUNvbXBpbGVFcnJvckNvbnN0cnVjdG9y
LmggICB8ICAgOSArLQogLi4uL3dhc20vanMvV2ViQXNzZW1ibHlDb21waWxlRXJyb3JQcm90b3R5
cGUuY3BwICAgfCAgIDQgKwogLi4uL3dhc20vanMvV2ViQXNzZW1ibHlDb21waWxlRXJyb3JQcm90
b3R5cGUuaCAgICAgfCAgIDQgKwogLi4uL3dhc20vanMvV2ViQXNzZW1ibHlJbnN0YW5jZUNvbnN0
cnVjdG9yLmNwcCAgICAgfCAgIDUgKwogLi4uL3dhc20vanMvV2ViQXNzZW1ibHlJbnN0YW5jZUNv
bnN0cnVjdG9yLmggICAgICAgfCAgIDQgKwogLi4uL3dhc20vanMvV2ViQXNzZW1ibHlJbnN0YW5j
ZVByb3RvdHlwZS5jcHAgICAgICAgfCAgIDQgKwogLi4uL3dhc20vanMvV2ViQXNzZW1ibHlJbnN0
YW5jZVByb3RvdHlwZS5oICAgICAgICAgfCAgIDQgKwogLi4uL3dhc20vanMvV2ViQXNzZW1ibHlN
ZW1vcnlDb25zdHJ1Y3Rvci5jcHAgICAgICAgfCAgIDUgKwogLi4uL3dhc20vanMvV2ViQXNzZW1i
bHlNZW1vcnlDb25zdHJ1Y3Rvci5oICAgICAgICAgfCAgIDQgKwogLi4uL3dhc20vanMvV2ViQXNz
ZW1ibHlNZW1vcnlQcm90b3R5cGUuY3BwICAgICAgICAgfCAgIDQgKwogLi4uL3dhc20vanMvV2Vi
QXNzZW1ibHlNZW1vcnlQcm90b3R5cGUuaCAgICAgICAgICAgfCAgIDQgKwogLi4uL3dhc20vanMv
V2ViQXNzZW1ibHlNb2R1bGVDb25zdHJ1Y3Rvci5jcHAgICAgICAgfCAgIDUgKwogLi4uL3dhc20v
anMvV2ViQXNzZW1ibHlNb2R1bGVDb25zdHJ1Y3Rvci5oICAgICAgICAgfCAgIDQgKwogLi4uL3dh
c20vanMvV2ViQXNzZW1ibHlNb2R1bGVQcm90b3R5cGUuY3BwICAgICAgICAgfCAgIDQgKwogLi4u
L3dhc20vanMvV2ViQXNzZW1ibHlNb2R1bGVQcm90b3R5cGUuaCAgICAgICAgICAgfCAgIDQgKwog
Li4uL3dhc20vanMvV2ViQXNzZW1ibHlQcm90b3R5cGUuY3BwICAgICAgICAgICAgICAgfCAgODkg
KysrKysrKysrKysrKysrKwogLi4uL1dlYkFzc2VtYmx5UHJvdG90eXBlLmh9ICAgICAgICAgICAg
ICAgICAgICAgICAgfCAgMjggKystLS0KIC4uLi93YXNtL2pzL1dlYkFzc2VtYmx5UnVudGltZUVy
cm9yQ29uc3RydWN0b3IuY3BwIHwgIDI1ICsrKy0tCiAuLi4vd2FzbS9qcy9XZWJBc3NlbWJseVJ1
bnRpbWVFcnJvckNvbnN0cnVjdG9yLmggICB8ICAgOSArLQogLi4uL3dhc20vanMvV2ViQXNzZW1i
bHlSdW50aW1lRXJyb3JQcm90b3R5cGUuY3BwICAgfCAgIDQgKwogLi4uL3dhc20vanMvV2ViQXNz
ZW1ibHlSdW50aW1lRXJyb3JQcm90b3R5cGUuaCAgICAgfCAgIDQgKwogLi4uL3dhc20vanMvV2Vi
QXNzZW1ibHlUYWJsZUNvbnN0cnVjdG9yLmNwcCAgICAgICAgfCAgIDUgKwogLi4uL3dhc20vanMv
V2ViQXNzZW1ibHlUYWJsZUNvbnN0cnVjdG9yLmggICAgICAgICAgfCAgIDQgKwogLi4uL3dhc20v
anMvV2ViQXNzZW1ibHlUYWJsZVByb3RvdHlwZS5jcHAgICAgICAgICAgfCAgIDQgKwogLi4uL3dh
c20vanMvV2ViQXNzZW1ibHlUYWJsZVByb3RvdHlwZS5oICAgICAgICAgICAgfCAgIDQgKwogNDkg
ZmlsZXMgY2hhbmdlZCwgNjM0IGluc2VydGlvbnMoKyksIDIxNyBkZWxldGlvbnMoLSkKIGNyZWF0
ZSBtb2RlIDEwMDY0NCBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9KU1dlYkFzc2VtYmx5LmNw
cAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL0pTV2ViQXNz
ZW1ibHkuaAogZGVsZXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dl
YkFzc2VtYmx5T2JqZWN0LmNwcAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5UHJvdG90eXBlLmNwcAogcmVuYW1lIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL3tXZWJBc3NlbWJseU9iamVjdC5oID0+IGpzL1dlYkFzc2VtYmx5UHJv
dG90eXBlLmh9ICg3NCUpCgpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9DaGFuZ2VMb2cgYi9KU1Rlc3Rz
L0NoYW5nZUxvZwppbmRleCBkZDM3NTAyLi44N2ZhYjE1IDEwMDY0NAotLS0gYS9KU1Rlc3RzL0No
YW5nZUxvZworKysgYi9KU1Rlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDE2LTEw
LTIwICBKRiBCYXN0aWVuICA8amZiYXN0aWVuQGFwcGxlLmNvbT4KKworICAgICAgICBXZWJBc3Nl
bWJseSBBUEk6IGltcGxlbWVudCBleGNlcHRpb24gY29uc3RydWN0b3JzIHByb3Blcmx5CisKKyAg
ICAgICAgIC0gUmVuYW1lIFdlYkFzc2VtYmx5T2JqZWN0IHRvIEpTV2ViQXNzZW1ibHkgZm9yIGNv
bnNpc3RlbmN5LgorICAgICAgICAgLSBXZWJBc3NlbWJseSBvYmplY3Qgbm93IGhhcyBpdHMgb3du
IHByb3RvdHlwZTogYWRkIFdlYkFzc2VtYmx5UHJvdG90eXBlLCBhbmQKKyAgICAgICAgICAgdXNl
IGl0IHRvIHJlZ2lzdGVyIEpTV2ViQXNzZW1ibHkncyBmdW5jdGlvbiBwcm9wZXJ0aWVzIHRocm91
Z2ggYXV0by1nZW5lcmF0ZWQKKyAgICAgICAgICAgLmx1dC5oLCBpbnN0ZWFkIG9mIG1hbnVhbGx5
LgorICAgICAgICAgLSBUaGUgZXJyb3IgY29uc3RydWN0b3JzIHVzZWQgdG8gdGhyb3cgKGUuZy4g
YG5ldyBXZWJBc3NlbWJseS5Db21waWxlRXJyb3IoKWApLgorICAgICAgICAgLSBSZWdpc3RlciBX
ZWJBc3NlbWJseSdzIGNvbnN0cnVjdG9ycyBmcm9tIHRoZSBnbG9iYWwgb2JqZWN0LCBhbmQgaG9s
ZCBhCisgICAgICAgICAgIHJlZmVyZW5jZSB0byB0aGVpciBzdHJ1Y3R1cmUgYW5kIHByb3RvdHlw
ZSBzbyB0aGF0IGludm9raW5nIHRoZSBjb25zdHJ1Y3RvcgorICAgICAgICAgICBjYW4gdXNlIHRo
ZSBzdHJ1Y3R1cmUgZGlyZWN0bHkgZnJvbSB0aGUgZ2xvYmFsIG9iamVjdC4KKyAgICAgICAgIC0g
QWRkIGEgcHJvdG90eXBlIGJhc2UgZmllbGQgdG8gZ2xvYmFsIG9iamVjdCBjcmVhdGlvbi4gUHJl
dmlvdXMgb25lcyBhbGwgaGFkCisgICAgICAgICAgIE9iamVjdCdzIHByb3RvdHlwZSBhcyB0aGVp
ciBiYXNlLCBidXQgV2ViQXNzZW1ibHkncyBlcnJvciBjb25zdHJ1Y3RvcnMgaGF2ZQorICAgICAg
ICAgICBFcnJvciBhcyB0aGVpciBiYXNlLgorICAgICAgICAgLSBUZXN0IGZvciB0aGUgZXJyb3Ig
b2JqZWN0J3MgY29ycmVjdG5lc3MuCisgICAgICAgICAtIEFkZCBtaXNzaW5nICNpZiBFTkFCTEUo
V0VCQVNTRU1CTFkpCisKKyAgICAgICAgV2ViQXNzZW1ibHkgQVBJOiBpbXBsZW1lbnQgZXhjZXB0
aW9uIGNvbnN0cnVjdG9ycyBwcm9wZXJseQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTYzNjk5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgS2VpdGggTWls
bGVyLgorCisgICAgICAgICogd2FzbS9qcy1hcGkvdGVzdF9iYXNpY19hcGkuanM6CisgICAgICAg
IChjb25zdC5jLmluLmNvbnN0cnVjdG9yUHJvcGVydGllcyk6IG1vcmUgdGVzdHMKKwogMjAxNi0x
MC0yMCAgQ2FpdGxpbiBQb3R0ZXIgIDxjYWl0cEBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtKU0Nd
IGRpc2FsbG93IHJlZmVyZW5jZXMgdG8gYGF3YWl0YCBpbiBBc3luY0Z1bmN0aW9uIGZvcm1hbCBw
YXJhbWV0ZXJzCmRpZmYgLS1naXQgYS9KU1Rlc3RzL3dhc20vanMtYXBpL3Rlc3RfYmFzaWNfYXBp
LmpzIGIvSlNUZXN0cy93YXNtL2pzLWFwaS90ZXN0X2Jhc2ljX2FwaS5qcwppbmRleCBiYmQ1MGI1
Li5jNGUxOTI3IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3dhc20vanMtYXBpL3Rlc3RfYmFzaWNfYXBp
LmpzCisrKyBiL0pTVGVzdHMvd2FzbS9qcy1hcGkvdGVzdF9iYXNpY19hcGkuanMKQEAgLTI3LDYg
KzI3LDkgQEAgYXNzZXJ0Lm5vdFVuZGVmKFdlYkFzc2VtYmx5KTsKIGNoZWNrT3duUHJvcGVydHlE
ZXNjcmlwdG9yKHV0aWxpdGllcy5nbG9iYWwsICJXZWJBc3NlbWJseSIsIHsgdHlwZW9mdmFsdWU6
ICJvYmplY3QiLCB3cml0YWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlLCBlbnVtZXJhYmxl
OiBmYWxzZSB9KTsKIGFzc2VydC5lcShTdHJpbmcoV2ViQXNzZW1ibHkpLCAiW29iamVjdCBXZWJB
c3NlbWJseV0iKTsKIGFzc2VydC5pc1VuZGVmKFdlYkFzc2VtYmx5Lmxlbmd0aCk7Cithc3NlcnQu
ZXEoV2ViQXNzZW1ibHkgaW5zdGFuY2VvZiBPYmplY3QsIHRydWUpOworYXNzZXJ0LnRocm93cygo
KSA9PiBXZWJBc3NlbWJseSgpLCBUeXBlRXJyb3IsIGBXZWJBc3NlbWJseSBpcyBub3QgYSBmdW5j
dGlvbi4gKEluICdXZWJBc3NlbWJseSgpJywgJ1dlYkFzc2VtYmx5JyBpcyBhbiBpbnN0YW5jZSBv
ZiBXZWJBc3NlbWJseSlgKTsKK2Fzc2VydC50aHJvd3MoKCkgPT4gbmV3IFdlYkFzc2VtYmx5KCks
IFR5cGVFcnJvciwgYFdlYkFzc2VtYmx5IGlzIG5vdCBhIGNvbnN0cnVjdG9yIChldmFsdWF0aW5n
ICduZXcgV2ViQXNzZW1ibHkoKScpYCk7CiAKIGZvciAoY29uc3QgZiBpbiBmdW5jdGlvblByb3Bl
cnRpZXMpIHsKICAgICBhc3NlcnQubm90VW5kZWYoV2ViQXNzZW1ibHlbZl0pOwpAQCAtMzksMTAg
KzQyLDE5IEBAIGZvciAoY29uc3QgYyBpbiBjb25zdHJ1Y3RvclByb3BlcnRpZXMpIHsKICAgICBh
c3NlcnQuZXEoV2ViQXNzZW1ibHlbY10ubmFtZSwgYyk7CiAgICAgYXNzZXJ0LmVxKFdlYkFzc2Vt
Ymx5W2NdLmxlbmd0aCwgY29uc3RydWN0b3JQcm9wZXJ0aWVzW2NdLmxlbmd0aCk7CiAgICAgY2hl
Y2tPd25Qcm9wZXJ0eURlc2NyaXB0b3IoV2ViQXNzZW1ibHksIGMsIGNvbnN0cnVjdG9yUHJvcGVy
dGllc1tjXSk7Ci0gICAgLy8gQ2hlY2sgdGhlIGNvbnN0cnVjdG9yJ3MgcHJvdG90eXBlLgogICAg
IGNoZWNrT3duUHJvcGVydHlEZXNjcmlwdG9yKFdlYkFzc2VtYmx5W2NdLCAicHJvdG90eXBlIiwg
eyB0eXBlb2Z2YWx1ZTogIm9iamVjdCIsIHdyaXRhYmxlOiBmYWxzZSwgY29uZmlndXJhYmxlOiBm
YWxzZSwgZW51bWVyYWJsZTogZmFsc2UgfSk7Ci0gICAgYXNzZXJ0LmVxKFN0cmluZyhXZWJBc3Nl
bWJseVtjXS5wcm90b3R5cGUpLCBgW29iamVjdCBXZWJBc3NlbWJseS4ke2N9LnByb3RvdHlwZV1g
KTsKICAgICBhc3NlcnQudGhyb3dzKCgpID0+IFdlYkFzc2VtYmx5W2NdKCksIFR5cGVFcnJvciwg
YGNhbGxpbmcgV2ViQXNzZW1ibHkuJHtjfSBjb25zdHJ1Y3RvciB3aXRob3V0IG5ldyBpcyBpbnZh
bGlkYCk7CisgICAgaWYgKGNvbnN0cnVjdG9yUHJvcGVydGllc1tjXS5pc0Vycm9yKSB7CisgICAg
ICAgIGNvbnN0IGUgPSBuZXcgV2ViQXNzZW1ibHlbY107CisgICAgICAgIGFzc2VydC5lcShlIGlu
c3RhbmNlb2YgV2ViQXNzZW1ibHlbY10sIHRydWUpOworICAgICAgICBhc3NlcnQuZXEoZSBpbnN0
YW5jZW9mIEVycm9yLCB0cnVlKTsKKyAgICAgICAgYXNzZXJ0LmVxKGUgaW5zdGFuY2VvZiBUeXBl
RXJyb3IsIGZhbHNlKTsKKyAgICAgICAgYXNzZXJ0LmVxKGUubWVzc2FnZSwgIiIpOworICAgICAg
ICBhc3NlcnQuZXEodHlwZW9mIGUuc3RhY2ssICJzdHJpbmciKTsKKyAgICAgICAgY29uc3Qgc2ls
bHlTdHJpbmcgPSAidWgtb2ghIjsKKyAgICAgICAgY29uc3QgZTIgPSBuZXcgV2ViQXNzZW1ibHlb
Y10oc2lsbHlTdHJpbmcpOworICAgICAgICBhc3NlcnQuZXEoZTIubWVzc2FnZSwgc2lsbHlTdHJp
bmcpOworICAgIH0KIH0KIAogLy8gRklYTUUgSW1wbGVtZW50IGFuZCB0ZXN0IHRoZXNlIEFQSXMg
ZnVydGhlci4gRm9yIG5vdyB0aGV5IGp1c3QgdGhyb3cuIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNTk3NzUKQEAgLTUxLDUgKzYzLDcgQEAgZm9yIChjb25zdCBmIGlu
IGZ1bmN0aW9uUHJvcGVydGllcykgewogICAgIGFzc2VydC50aHJvd3MoKCkgPT4gV2ViQXNzZW1i
bHlbZl0oKSwgRXJyb3IsIGBXZWJBc3NlbWJseSBkb2Vzbid0IHlldCBpbXBsZW1lbnQgdGhlICR7
Zn0gZnVuY3Rpb24gcHJvcGVydHlgKTsKIH0KIAotZm9yIChjb25zdCBjIGluIGNvbnN0cnVjdG9y
UHJvcGVydGllcykKLSAgICBhc3NlcnQudGhyb3dzKCgpID0+IG5ldyBXZWJBc3NlbWJseVtjXSgp
LCBFcnJvciwgYFdlYkFzc2VtYmx5IGRvZXNuJ3QgeWV0IGltcGxlbWVudCB0aGUgJHtjfSBjb25z
dHJ1Y3RvciBwcm9wZXJ0eWApOworZm9yIChjb25zdCBjIGluIGNvbnN0cnVjdG9yUHJvcGVydGll
cykgeworICAgIGlmICghY29uc3RydWN0b3JQcm9wZXJ0aWVzW2NdLmlzRXJyb3IpCisgICAgICAg
IGFzc2VydC50aHJvd3MoKCkgPT4gbmV3IFdlYkFzc2VtYmx5W2NdKCksIEVycm9yLCBgV2ViQXNz
ZW1ibHkgZG9lc24ndCB5ZXQgaW1wbGVtZW50IHRoZSAke2N9IGNvbnN0cnVjdG9yIHByb3BlcnR5
YCk7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggOTY4ZDA3NS4uOTc3
NDFmZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0Cisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dApAQCAtODYxLDEyICs4NjEs
MTIgQEAgc2V0KEphdmFTY3JpcHRDb3JlX1NPVVJDRVMKICAgICB0b29scy9KU0RvbGxhclZNUHJv
dG90eXBlLmNwcAogCiAgICAgd2FzbS9KU1dBU01Nb2R1bGUuY3BwCisgICAgd2FzbS9KU1dlYkFz
c2VtYmx5LmNwcAogICAgIHdhc20vV0FTTUIzSVJHZW5lcmF0b3IuY3BwCiAgICAgd2FzbS9XQVNN
Q2FsbGluZ0NvbnZlbnRpb24uY3BwCiAgICAgd2FzbS9XQVNNTWVtb3J5LmNwcAogICAgIHdhc20v
V0FTTU1vZHVsZVBhcnNlci5jcHAKICAgICB3YXNtL1dBU01QbGFuLmNwcAotICAgIHdhc20vV2Vi
QXNzZW1ibHlPYmplY3QuY3BwCiAKICAgICB3YXNtL2pzL0pTV2ViQXNzZW1ibHlDb21waWxlRXJy
b3IuY3BwCiAgICAgd2FzbS9qcy9KU1dlYkFzc2VtYmx5SW5zdGFuY2UuY3BwCkBAIC04ODIsNiAr
ODgyLDcgQEAgc2V0KEphdmFTY3JpcHRDb3JlX1NPVVJDRVMKICAgICB3YXNtL2pzL1dlYkFzc2Vt
Ymx5TWVtb3J5UHJvdG90eXBlLmNwcAogICAgIHdhc20vanMvV2ViQXNzZW1ibHlNb2R1bGVDb25z
dHJ1Y3Rvci5jcHAKICAgICB3YXNtL2pzL1dlYkFzc2VtYmx5TW9kdWxlUHJvdG90eXBlLmNwcAor
ICAgIHdhc20vanMvV2ViQXNzZW1ibHlQcm90b3R5cGUuY3BwCiAgICAgd2FzbS9qcy9XZWJBc3Nl
bWJseVJ1bnRpbWVFcnJvckNvbnN0cnVjdG9yLmNwcAogICAgIHdhc20vanMvV2ViQXNzZW1ibHlS
dW50aW1lRXJyb3JQcm90b3R5cGUuY3BwCiAgICAgd2FzbS9qcy9XZWJBc3NlbWJseVRhYmxlQ29u
c3RydWN0b3IuY3BwCkBAIC05NDYsNiArOTQ3LDcgQEAgc2V0KEphdmFTY3JpcHRDb3JlX09CSkVD
VF9MVVRfU09VUkNFUwogICAgIHdhc20vanMvV2ViQXNzZW1ibHlNZW1vcnlQcm90b3R5cGUuY3Bw
CiAgICAgd2FzbS9qcy9XZWJBc3NlbWJseU1vZHVsZUNvbnN0cnVjdG9yLmNwcAogICAgIHdhc20v
anMvV2ViQXNzZW1ibHlNb2R1bGVQcm90b3R5cGUuY3BwCisgICAgd2FzbS9qcy9XZWJBc3NlbWJs
eVByb3RvdHlwZS5jcHAKICAgICB3YXNtL2pzL1dlYkFzc2VtYmx5UnVudGltZUVycm9yQ29uc3Ry
dWN0b3IuY3BwCiAgICAgd2FzbS9qcy9XZWJBc3NlbWJseVJ1bnRpbWVFcnJvclByb3RvdHlwZS5j
cHAKICAgICB3YXNtL2pzL1dlYkFzc2VtYmx5VGFibGVDb25zdHJ1Y3Rvci5jcHAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCmluZGV4IGE1NDFhZGMuLjRjNDE2OTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDkxIEBACisyMDE2LTEwLTIwICBKRiBCYXN0aWVuICA8amZiYXN0aWVu
QGFwcGxlLmNvbT4KKworICAgICAgICBXZWJBc3NlbWJseSBBUEk6IGltcGxlbWVudCBleGNlcHRp
b24gY29uc3RydWN0b3JzIHByb3Blcmx5CisKKyAgICAgICAgIC0gUmVuYW1lIFdlYkFzc2VtYmx5
T2JqZWN0IHRvIEpTV2ViQXNzZW1ibHkgZm9yIGNvbnNpc3RlbmN5LgorICAgICAgICAgLSBXZWJB
c3NlbWJseSBvYmplY3Qgbm93IGhhcyBpdHMgb3duIHByb3RvdHlwZTogYWRkIFdlYkFzc2VtYmx5
UHJvdG90eXBlLCBhbmQKKyAgICAgICAgICAgdXNlIGl0IHRvIHJlZ2lzdGVyIEpTV2ViQXNzZW1i
bHkncyBmdW5jdGlvbiBwcm9wZXJ0aWVzIHRocm91Z2ggYXV0by1nZW5lcmF0ZWQKKyAgICAgICAg
ICAgLmx1dC5oLCBpbnN0ZWFkIG9mIG1hbnVhbGx5LgorICAgICAgICAgLSBUaGUgZXJyb3IgY29u
c3RydWN0b3JzIHVzZWQgdG8gdGhyb3cgKGUuZy4gYG5ldyBXZWJBc3NlbWJseS5Db21waWxlRXJy
b3IoKWApLgorICAgICAgICAgLSBSZWdpc3RlciBXZWJBc3NlbWJseSdzIGNvbnN0cnVjdG9ycyBm
cm9tIHRoZSBnbG9iYWwgb2JqZWN0LCBhbmQgaG9sZCBhCisgICAgICAgICAgIHJlZmVyZW5jZSB0
byB0aGVpciBzdHJ1Y3R1cmUgYW5kIHByb3RvdHlwZSBzbyB0aGF0IGludm9raW5nIHRoZSBjb25z
dHJ1Y3RvcgorICAgICAgICAgICBjYW4gdXNlIHRoZSBzdHJ1Y3R1cmUgZGlyZWN0bHkgZnJvbSB0
aGUgZ2xvYmFsIG9iamVjdC4KKyAgICAgICAgIC0gQWRkIGEgcHJvdG90eXBlIGJhc2UgZmllbGQg
dG8gZ2xvYmFsIG9iamVjdCBjcmVhdGlvbi4gUHJldmlvdXMgb25lcyBhbGwgaGFkCisgICAgICAg
ICAgIE9iamVjdCdzIHByb3RvdHlwZSBhcyB0aGVpciBiYXNlLCBidXQgV2ViQXNzZW1ibHkncyBl
cnJvciBjb25zdHJ1Y3RvcnMgaGF2ZQorICAgICAgICAgICBFcnJvciBhcyB0aGVpciBiYXNlLgor
ICAgICAgICAgLSBUZXN0IGZvciB0aGUgZXJyb3Igb2JqZWN0J3MgY29ycmVjdG5lc3MuCisgICAg
ICAgICAtIEFkZCBtaXNzaW5nICNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCisKKyAgICAgICAgV2Vi
QXNzZW1ibHkgQVBJOiBpbXBsZW1lbnQgZXhjZXB0aW9uIGNvbnN0cnVjdG9ycyBwcm9wZXJseQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYzNjk5CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgS2VpdGggTWlsbGVyLgorCisgICAgICAgICogQ01ha2VMaXN0
cy50eHQ6IHJlbmFtZSBXZWJBc3NlbWJseU9iamVjdCAtPiBKU1dlYkFzc2VtYmx5OyBhZGQgYSAu
bHV0LmggZmlsZQorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6IG5ldyAubHV0LmggZmls
ZQorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6IGRp
dHRvCisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHA6IG5ldyBwcm90b3R5cGVC
YXNlIG1hY3JvCisgICAgICAgIChKU0M6OkpTR2xvYmFsT2JqZWN0Ojppbml0KTogcmVnaXN0ZXIg
V2ViQXNzZW1ibHkgY29uc3RydWN0b3JzIGhlcmUKKyAgICAgICAgKEpTQzo6SlNHbG9iYWxPYmpl
Y3Q6OnZpc2l0Q2hpbGRyZW4pOiB1c2UgdGhlIG1hY3JvIHRvIHZpc2l0CisgICAgICAgICogcnVu
dGltZS9KU0dsb2JhbE9iamVjdC5oOiBkZWNsYXJlIHRoZSBXZWJBc3NlbWJseSBjb25zdHJ1Y3Rv
ciBtYWNybworICAgICAgICAqIHdhc20vSlNXZWJBc3NlbWJseS5jcHA6IENvcGllZCBmcm9tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dlYkFzc2VtYmx5T2JqZWN0LmguCisgICAgICAgIChK
U0M6OkpTV2ViQXNzZW1ibHk6OmNyZWF0ZSk6CisgICAgICAgIChKU0M6OkpTV2ViQXNzZW1ibHk6
OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgIChKU0M6OkpTV2ViQXNzZW1ibHk6OmZpbmlzaENy
ZWF0aW9uKToKKyAgICAgICAgKEpTQzo6SlNXZWJBc3NlbWJseTo6SlNXZWJBc3NlbWJseSk6Cisg
ICAgICAgICogd2FzbS9KU1dlYkFzc2VtYmx5Lmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9XZWJBc3NlbWJseU9iamVjdC5oLgorICAgICAgICAqIHdhc20vV2ViQXNz
ZW1ibHlPYmplY3QuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIHdhc20vanMvSlNXZWJBc3NlbWJs
eUNvbXBpbGVFcnJvci5jcHA6CisgICAgICAgICogd2FzbS9qcy9KU1dlYkFzc2VtYmx5Q29tcGls
ZUVycm9yLmg6CisgICAgICAgIChKU0M6OkpTV2ViQXNzZW1ibHlDb21waWxlRXJyb3I6OmNyZWF0
ZSk6IHN0cmluZyBjb252ZW5pZW5jZQorICAgICAgICAqIHdhc20vanMvSlNXZWJBc3NlbWJseUlu
c3RhbmNlLmNwcDoKKyAgICAgICAgKiB3YXNtL2pzL0pTV2ViQXNzZW1ibHlJbnN0YW5jZS5oOgor
ICAgICAgICAqIHdhc20vanMvSlNXZWJBc3NlbWJseU1lbW9yeS5jcHA6CisgICAgICAgICogd2Fz
bS9qcy9KU1dlYkFzc2VtYmx5TWVtb3J5Lmg6CisgICAgICAgICogd2FzbS9qcy9KU1dlYkFzc2Vt
Ymx5TW9kdWxlLmNwcDoKKyAgICAgICAgKiB3YXNtL2pzL0pTV2ViQXNzZW1ibHlNb2R1bGUuaDoK
KyAgICAgICAgKiB3YXNtL2pzL0pTV2ViQXNzZW1ibHlSdW50aW1lRXJyb3IuY3BwOgorICAgICAg
ICAqIHdhc20vanMvSlNXZWJBc3NlbWJseVJ1bnRpbWVFcnJvci5oOgorICAgICAgICAoSlNDOjpK
U1dlYkFzc2VtYmx5UnVudGltZUVycm9yOjpjcmVhdGUpOiBzdHJpbmcgY29udmVuaWVuY2UKKyAg
ICAgICAgKiB3YXNtL2pzL0pTV2ViQXNzZW1ibHlUYWJsZS5jcHA6CisgICAgICAgICogd2FzbS9q
cy9KU1dlYkFzc2VtYmx5VGFibGUuaDoKKyAgICAgICAgKiB3YXNtL2pzL1dlYkFzc2VtYmx5Q29t
cGlsZUVycm9yQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpjb25zdHJ1Y3RKU1dlYkFz
c2VtYmx5Q29tcGlsZUVycm9yKTpkb24ndCB0aHJvdywgY3JlYXRlIHRoZSBvYmplY3QKKyAgICAg
ICAgKEpTQzo6V2ViQXNzZW1ibHlDb21waWxlRXJyb3JDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRp
b24pOm5vIG5lZWQgZm9yIHRoZSBzdHJ1Y3R1cmUsIGl0J3Mgb24gdGhlIGdsb2JhbCBvYmplY3QK
KyAgICAgICAgKiB3YXNtL2pzL1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yQ29uc3RydWN0b3IuaDoK
KyAgICAgICAgKiB3YXNtL2pzL1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yUHJvdG90eXBlLmNwcDoK
KyAgICAgICAgKiB3YXNtL2pzL1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yUHJvdG90eXBlLmg6Cisg
ICAgICAgICogd2FzbS9qcy9XZWJBc3NlbWJseUluc3RhbmNlQ29uc3RydWN0b3IuY3BwOgorICAg
ICAgICAqIHdhc20vanMvV2ViQXNzZW1ibHlJbnN0YW5jZUNvbnN0cnVjdG9yLmg6CisgICAgICAg
ICogd2FzbS9qcy9XZWJBc3NlbWJseUluc3RhbmNlUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKiB3
YXNtL2pzL1dlYkFzc2VtYmx5SW5zdGFuY2VQcm90b3R5cGUuaDoKKyAgICAgICAgKiB3YXNtL2pz
L1dlYkFzc2VtYmx5TWVtb3J5Q29uc3RydWN0b3IuY3BwOgorICAgICAgICAqIHdhc20vanMvV2Vi
QXNzZW1ibHlNZW1vcnlDb25zdHJ1Y3Rvci5oOgorICAgICAgICAqIHdhc20vanMvV2ViQXNzZW1i
bHlNZW1vcnlQcm90b3R5cGUuY3BwOgorICAgICAgICAqIHdhc20vanMvV2ViQXNzZW1ibHlNZW1v
cnlQcm90b3R5cGUuaDoKKyAgICAgICAgKiB3YXNtL2pzL1dlYkFzc2VtYmx5TW9kdWxlQ29uc3Ry
dWN0b3IuY3BwOgorICAgICAgICAqIHdhc20vanMvV2ViQXNzZW1ibHlNb2R1bGVDb25zdHJ1Y3Rv
ci5oOgorICAgICAgICAqIHdhc20vanMvV2ViQXNzZW1ibHlNb2R1bGVQcm90b3R5cGUuY3BwOgor
ICAgICAgICAqIHdhc20vanMvV2ViQXNzZW1ibHlNb2R1bGVQcm90b3R5cGUuaDoKKyAgICAgICAg
KiB3YXNtL2pzL1dlYkFzc2VtYmx5UHJvdG90eXBlLmNwcDogQ29waWVkIGZyb20gU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlDb21waWxlRXJyb3JQcm90b3R5cGUuY3Bw
LgorICAgICAgICAoSlNDOjp3ZWJBc3NlbWJseUZ1bmN0aW9uVmFsaWRhdGUpOgorICAgICAgICAo
SlNDOjp3ZWJBc3NlbWJseUZ1bmN0aW9uQ29tcGlsZSk6CisgICAgICAgIChKU0M6OldlYkFzc2Vt
Ymx5UHJvdG90eXBlOjpjcmVhdGUpOgorICAgICAgICAoSlNDOjpXZWJBc3NlbWJseVByb3RvdHlw
ZTo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKEpTQzo6V2ViQXNzZW1ibHlQcm90b3R5cGU6
OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAgKEpTQzo6V2ViQXNzZW1ibHlQcm90b3R5cGU6Oldl
YkFzc2VtYmx5UHJvdG90eXBlKToKKyAgICAgICAgKiB3YXNtL2pzL1dlYkFzc2VtYmx5UHJvdG90
eXBlLmg6IENvcGllZCBmcm9tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2Vt
Ymx5TWVtb3J5UHJvdG90eXBlLmguCisgICAgICAgICogd2FzbS9qcy9XZWJBc3NlbWJseVJ1bnRp
bWVFcnJvckNvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6Y29uc3RydWN0SlNXZWJBc3Nl
bWJseVJ1bnRpbWVFcnJvcik6ZG9uJ3QgdGhyb3csIGNyZWF0ZSB0aGUgb2JqZWN0CisgICAgICAg
IChKU0M6OldlYkFzc2VtYmx5UnVudGltZUVycm9yQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9u
KTpubyBuZWVkIGZvciB0aGUgc3RydWN0dXJlLCBpdCdzIG9uIHRoZSBnbG9iYWwgb2JqZWN0Cisg
ICAgICAgICogd2FzbS9qcy9XZWJBc3NlbWJseVJ1bnRpbWVFcnJvckNvbnN0cnVjdG9yLmg6Cisg
ICAgICAgICogd2FzbS9qcy9XZWJBc3NlbWJseVJ1bnRpbWVFcnJvclByb3RvdHlwZS5jcHA6Cisg
ICAgICAgICogd2FzbS9qcy9XZWJBc3NlbWJseVJ1bnRpbWVFcnJvclByb3RvdHlwZS5oOgorICAg
ICAgICAqIHdhc20vanMvV2ViQXNzZW1ibHlUYWJsZUNvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAg
KiB3YXNtL2pzL1dlYkFzc2VtYmx5VGFibGVDb25zdHJ1Y3Rvci5oOgorICAgICAgICAqIHdhc20v
anMvV2ViQXNzZW1ibHlUYWJsZVByb3RvdHlwZS5jcHA6CisgICAgICAgICogd2FzbS9qcy9XZWJB
c3NlbWJseVRhYmxlUHJvdG90eXBlLmg6CisKIDIwMTYtMTAtMTkgIE15bGVzIEMuIE1heGZpZWxk
ICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KIAogICAgICAgICBbbWFjT1NdIFtpT1NdIERpc2FibGUg
dmFyaWF0aW9uIGZvbnRzIG9uIG1hY09TIEVsIENhcGl0YW4gYW5kIGlPUyA5CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IGVlY2I1M2MuLjY2MzA1MzcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC0xNjgsNiArMTY4
LDcgQEAgT0JKRUNUX0xVVF9IRUFERVJTID0gXAogICAgIFdlYkFzc2VtYmx5TWVtb3J5UHJvdG90
eXBlLmx1dC5oIFwKICAgICBXZWJBc3NlbWJseU1vZHVsZUNvbnN0cnVjdG9yLmx1dC5oIFwKICAg
ICBXZWJBc3NlbWJseU1vZHVsZVByb3RvdHlwZS5sdXQuaCBcCisgICAgV2ViQXNzZW1ibHlQcm90
b3R5cGUubHV0LmggXAogICAgIFdlYkFzc2VtYmx5UnVudGltZUVycm9yQ29uc3RydWN0b3IubHV0
LmggXAogICAgIFdlYkFzc2VtYmx5UnVudGltZUVycm9yUHJvdG90eXBlLmx1dC5oIFwKICAgICBX
ZWJBc3NlbWJseVRhYmxlQ29uc3RydWN0b3IubHV0LmggXApkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagppbmRleCBhZWNkMWIyLi4wOTY2ZTQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtMTg3OSw4ICsxODc5LDYgQEAKIAkJQTdGQjYxMDAxMDQwQzM4QjAwMTdBMjg2IC8qIFBy
b3BlcnR5RGVzY3JpcHRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQTdGQjYwNEIxMDNGNUVBQjAwMTdBMjg2IC8qIFByb3BlcnR5RGVzY3JpcHRvci5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUE3RkND
MjZEMTdBMEI2QUEwMDc4NkQxQSAvKiBGVExTd2l0Y2hDYXNlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBN0ZDQzI2QzE3QTBCNkFBMDA3ODZEMUEgLyog
RlRMU3dpdGNoQ2FzZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCUE4QTQ3NDhFMTUxQTgzMDYwMDQxMjNGRiAvKiBsaWJXVEYuYSBpbiBGcmFtZXdv
cmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QTQ3NDhEMTUxQTgzMDYw
MDQxMjNGRiAvKiBsaWJXVEYuYSAqLzsgfTsKLQkJQUQyRkNCODgxREFFQkYzQzAwQjNFNzM2IC8q
IFdlYkFzc2VtYmx5T2JqZWN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEFEMkZDQjg2MURBRUJGMzcwMEIzRTczNiAvKiBXZWJBc3NlbWJseU9iamVj
dC5jcHAgKi87IH07Ci0JCUFEMkZDQjg5MURBRUJGM0YwMEIzRTczNiAvKiBXZWJBc3NlbWJseU9i
amVjdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUQy
RkNCODcxREFFQkYzNzAwQjNFNzM2IC8qIFdlYkFzc2VtYmx5T2JqZWN0LmggKi87IH07CiAJCUFE
MkZDQkUyMURCNThEQUQwMEIzRTczNiAvKiBKU1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFEMkZDQkE2MURC
NThEQTQwMEIzRTczNiAvKiBKU1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yLmNwcCAqLzsgfTsKIAkJ
QUQyRkNCRTMxREI1OERBRDAwQjNFNzM2IC8qIEpTV2ViQXNzZW1ibHlDb21waWxlRXJyb3IuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFEMkZDQkE3MURC
NThEQTQwMEIzRTczNiAvKiBKU1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yLmggKi87IH07CiAJCUFE
MkZDQkU0MURCNThEQUQwMEIzRTczNiAvKiBKU1dlYkFzc2VtYmx5SW5zdGFuY2UuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUQyRkNCQTgxREI1OERB
NDAwQjNFNzM2IC8qIEpTV2ViQXNzZW1ibHlJbnN0YW5jZS5jcHAgKi87IH07CkBAIC0xOTI5LDYg
KzE5MjcsMTAgQEAKIAkJQUQyRkNDMUYxREI1OUNCMjAwQjNFNzM2IC8qIFdlYkFzc2VtYmx5UnVu
dGltZUVycm9yUHJvdG90eXBlLmx1dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQUQyRkNDMTMxREI1OUM1OTAwQjNFNzM2IC8qIFdlYkFzc2VtYmx5UnVu
dGltZUVycm9yUHJvdG90eXBlLmx1dC5oICovOyB9OwogCQlBRDJGQ0MyMDFEQjU5Q0IyMDBCM0U3
MzYgLyogV2ViQXNzZW1ibHlUYWJsZUNvbnN0cnVjdG9yLmx1dC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUQyRkNDMTQxREI1OUM1OTAwQjNFNzM2IC8q
IFdlYkFzc2VtYmx5VGFibGVDb25zdHJ1Y3Rvci5sdXQuaCAqLzsgfTsKIAkJQUQyRkNDMjExREI1
OUNCMjAwQjNFNzM2IC8qIFdlYkFzc2VtYmx5VGFibGVQcm90b3R5cGUubHV0LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBRDJGQ0MxNTFEQjU5QzU5MDBC
M0U3MzYgLyogV2ViQXNzZW1ibHlUYWJsZVByb3RvdHlwZS5sdXQuaCAqLzsgfTsKKwkJQUQyRkND
MkMxREI4MzhGRDAwQjNFNzM2IC8qIFdlYkFzc2VtYmx5UHJvdG90eXBlLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFEMkZDQzI2MURCODM4QzQwMEIz
RTczNiAvKiBXZWJBc3NlbWJseVByb3RvdHlwZS5jcHAgKi87IH07CisJCUFEMkZDQzJEMURCODM4
RkQwMEIzRTczNiAvKiBXZWJBc3NlbWJseVByb3RvdHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUQyRkNDMjcxREI4MzhDNDAwQjNFNzM2IC8qIFdl
YkFzc2VtYmx5UHJvdG90eXBlLmggKi87IH07CisJCUFEMkZDQzMwMURCODNENDkwMEIzRTczNiAv
KiBKU1dlYkFzc2VtYmx5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEFEMkZDQzJFMURCODM5RjcwMEIzRTczNiAvKiBKU1dlYkFzc2VtYmx5LmNwcCAq
LzsgfTsKKwkJQUQyRkNDMzExREI4M0Q0OTAwQjNFNzM2IC8qIEpTV2ViQXNzZW1ibHkuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFEMkZDQzJGMURCODM5
RjcwMEIzRTczNiAvKiBKU1dlYkFzc2VtYmx5LmggKi87IH07CiAJCUFEODZBOTNFMUFBNEQ4OEQw
MDJGRTc3RiAvKiBXZWFrR0NNYXBJbmxpbmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBRDg2QTkzRDFBQTREODdDMDAyRkU3N0YgLyogV2Vha0dDTWFw
SW5saW5lcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCUFEREIxRjYzMThENzdEQkUwMDlCNThBOCAvKiBPcGFxdWVSb290U2V0LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBRERCMUY2MjE4RDc3REI3MDA5
QjU4QTggLyogT3BhcXVlUm9vdFNldC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCUFERTM5RkZGMTZERDE0NEIwMDAzQ0Q0QSAvKiBQcm9wZXJ0eVRh
YmxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFE
MUNGMDY4MTZEQ0FCMkQwMEI5NzEyMyAvKiBQcm9wZXJ0eVRhYmxlLmNwcCAqLzsgfTsKQEAgLTQy
NTksOCArNDI2MSw2IEBACiAJCUE4RTg5NDMxMENEMDYwMjQwMDM2NzE3OSAvKiBKU0NhbGxiYWNr
T2JqZWN0RnVuY3Rpb25zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTQ2Fs
bGJhY2tPYmplY3RGdW5jdGlvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQThF
ODk0MzMwQ0QwNjAzRjAwMzY3MTc5IC8qIEpTR2xvYmFsT2JqZWN0LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEpTR2xvYmFsT2JqZWN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUFEMUNGMDY4MTZEQ0FCMkQwMEI5NzEyMyAvKiBQcm9wZXJ0eVRhYmxlLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFByb3BlcnR5VGFibGUuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBRDJGQ0I4NjFEQUVCRjM3MDBCM0U3MzYgLyog
V2ViQXNzZW1ibHlPYmplY3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gV2ViQXNzZW1ibHlPYmplY3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlB
RDJGQ0I4NzFEQUVCRjM3MDBCM0U3MzYgLyogV2ViQXNzZW1ibHlPYmplY3QuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQXNzZW1ibHlPYmplY3QuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQUQyRkNCOEMxREI1ODQ0MDAwQjNFNzM2IC8qIEpTV2ViQXNzZW1i
bHlNb2R1bGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gSlNXZWJB
c3NlbWJseU1vZHVsZS5jcHA7IHBhdGggPSBqcy9KU1dlYkFzc2VtYmx5TW9kdWxlLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQUQyRkNCOEQxREI1ODQ0MDAwQjNFNzM2IC8qIEpT
V2ViQXNzZW1ibHlNb2R1bGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gSlNX
ZWJBc3NlbWJseU1vZHVsZS5oOyBwYXRoID0ganMvSlNXZWJBc3NlbWJseU1vZHVsZS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBRDJGQ0I5ODFEQjU4NUE2MDBCM0U3MzYgLyogV2Vi
QXNzZW1ibHlNb2R1bGVDb25zdHJ1Y3Rvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IG5hbWUgPSBXZWJBc3NlbWJseU1vZHVsZUNvbnN0cnVjdG9yLmNwcDsgcGF0aCA9IGpzL1dl
YkFzc2VtYmx5TW9kdWxlQ29uc3RydWN0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtNDMwOSw2ICs0MzA5LDEwIEBACiAJCUFEMkZDQzEzMURCNTlDNTkwMEIzRTczNiAvKiBX
ZWJBc3NlbWJseVJ1bnRpbWVFcnJvclByb3RvdHlwZS5sdXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gV2ViQXNzZW1ibHlSdW50aW1lRXJyb3JQcm90b3R5cGUubHV0Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUFEMkZDQzE0MURCNTlDNTkwMEIzRTczNiAvKiBX
ZWJBc3NlbWJseVRhYmxlQ29uc3RydWN0b3IubHV0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFdlYkFzc2VtYmx5VGFibGVDb25zdHJ1Y3Rvci5sdXQuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQUQyRkNDMTUxREI1OUM1OTAwQjNFNzM2IC8qIFdlYkFzc2VtYmx5
VGFibGVQcm90b3R5cGUubHV0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdl
YkFzc2VtYmx5VGFibGVQcm90b3R5cGUubHV0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUFEMkZDQzI2MURCODM4QzQwMEIzRTczNiAvKiBXZWJBc3NlbWJseVByb3RvdHlwZS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBXZWJBc3NlbWJseVByb3RvdHlw
ZS5jcHA7IHBhdGggPSBqcy9XZWJBc3NlbWJseVByb3RvdHlwZS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUFEMkZDQzI3MURCODM4QzQwMEIzRTczNiAvKiBXZWJBc3NlbWJseVBy
b3RvdHlwZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXZWJBc3NlbWJseVBy
b3RvdHlwZS5oOyBwYXRoID0ganMvV2ViQXNzZW1ibHlQcm90b3R5cGUuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJQUQyRkNDMkUxREI4MzlGNzAwQjNFNzM2IC8qIEpTV2ViQXNzZW1i
bHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNXZWJBc3NlbWJs
eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUFEMkZDQzJGMURCODM5RjcwMEIz
RTczNiAvKiBKU1dlYkFzc2VtYmx5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEpTV2ViQXNzZW1ibHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQUQ4NkE5M0Qx
QUE0RDg3QzAwMkZFNzdGIC8qIFdlYWtHQ01hcElubGluZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gV2Vha0dDTWFwSW5saW5lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlBRERCMUY2MjE4RDc3REI3MDA5QjU4QTggLyogT3BhcXVlUm9vdFNldC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBPcGFxdWVSb290U2V0Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUI1OUY4OTM3MTg5MUFEMzMwMEQ1Q0NEQyAvKiBVbmxpbmtlZElu
c3RydWN0aW9uU3RyZWFtLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFVubGlu
a2VkSW5zdHJ1Y3Rpb25TdHJlYW0uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTU4
MDMsOSArNTgwNyw5IEBACiAJCTdCOThEMTMzMUI2MENEMUUwMDIzQjFBNCAvKiB3YXNtICovID0g
ewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQlBRDJGQ0MyRTFEQjgz
OUY3MDBCM0U3MzYgLyogSlNXZWJBc3NlbWJseS5jcHAgKi8sCisJCQkJQUQyRkNDMkYxREI4MzlG
NzAwQjNFNzM2IC8qIEpTV2ViQXNzZW1ibHkuaCAqLywKIAkJCQlBRDJGQ0I4QTFEQjU4NDAwMDBC
M0U3MzYgLyoganMgKi8sCi0JCQkJQUQyRkNCODYxREFFQkYzNzAwQjNFNzM2IC8qIFdlYkFzc2Vt
Ymx5T2JqZWN0LmNwcCAqLywKLQkJCQlBRDJGQ0I4NzFEQUVCRjM3MDBCM0U3MzYgLyogV2ViQXNz
ZW1ibHlPYmplY3QuaCAqLywKIAkJCQk3Qjk4RDEzNDFCNjBDRDVBMDAyM0IxQTQgLyogSlNXQVNN
TW9kdWxlLmNwcCAqLywKIAkJCQk3Qjk4RDEzNTFCNjBDRDVBMDAyM0IxQTQgLyogSlNXQVNNTW9k
dWxlLmggKi8sCiAJCQkJNTNGNDBFOEUxRDU5MDI4MjAwOTlBMUI2IC8qIFdBU01CM0lSR2VuZXJh
dG9yLmNwcCAqLywKQEAgLTczMTIsNiArNzMxNiw4IEBACiAJCUFEMkZDQjhBMURCNTg0MDAwMEIz
RTczNiAvKiBqcyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJ
CQkJQUQyRkNDMjYxREI4MzhDNDAwQjNFNzM2IC8qIFdlYkFzc2VtYmx5UHJvdG90eXBlLmNwcCAq
LywKKwkJCQlBRDJGQ0MyNzFEQjgzOEM0MDBCM0U3MzYgLyogV2ViQXNzZW1ibHlQcm90b3R5cGUu
aCAqLywKIAkJCQlBRDJGQ0JBNjFEQjU4REE0MDBCM0U3MzYgLyogSlNXZWJBc3NlbWJseUNvbXBp
bGVFcnJvci5jcHAgKi8sCiAJCQkJQUQyRkNCQTcxREI1OERBNDAwQjNFNzM2IC8qIEpTV2ViQXNz
ZW1ibHlDb21waWxlRXJyb3IuaCAqLywKIAkJCQlBRDJGQ0JBODFEQjU4REE0MDBCM0U3MzYgLyog
SlNXZWJBc3NlbWJseUluc3RhbmNlLmNwcCAqLywKQEAgLTc2MTUsNyArNzYyMSw2IEBACiAJCQkJ
MEZDOTdGMzQxODIwMjBENzAwMkM5QjI2IC8qIENvZGVCbG9ja0pldHRpc29uaW5nV2F0Y2hwb2lu
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZEOEEzMTQxN0Q0MzI2QzAwQ0EyQzQwIC8qIENvZGVC
bG9ja1NldC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY5NkVCQjMxNjY3NkVGNjAwOEJBREUzIC8q
IENvZGVCbG9ja1dpdGhKSVRUeXBlLmggaW4gSGVhZGVycyAqLywKLQkJCQlBRDJGQ0I4OTFEQUVC
RjNGMDBCM0U3MzYgLyogV2ViQXNzZW1ibHlPYmplY3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3
N0YxODIyMTY0MDg4QjIwMDY0MEE0NyAvKiBDb2RlQ2FjaGUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTk5Q0MwQjYzMThCRTk5NTAwMDZDRUJDQyAvKiBDb2RlR2VuZXJhdG9yUmVwbGF5SW5wdXRzLnB5
IGluIEhlYWRlcnMgKi8sCiAJCQkJOTlDQzBCNjIxOEJFOTk0NjAwNkNFQkNDIC8qIENvZGVHZW5l
cmF0b3JSZXBsYXlJbnB1dHNUZW1wbGF0ZXMucHkgaW4gSGVhZGVycyAqLywKQEAgLTc3MzksNiAr
Nzc0NCw3IEBACiAJCQkJQTdEODlDRjYxN0EwQjhDQzAwNzczQUQ4IC8qIERGR0NyaXRpY2FsRWRn
ZUJyZWFraW5nUGhhc2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRkZDOTVBMTRFRjkwQTkwMEM3
MjUzMiAvKiBERkdDU0VQaGFzZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYyRkM3NzMxNkUxMkY3
NDAwMzhEOTc2IC8qIERGR0RDRVBoYXNlLmggaW4gSGVhZGVycyAqLywKKwkJCQlBRDJGQ0MzMTFE
QjgzRDQ5MDBCM0U3MzYgLyogSlNXZWJBc3NlbWJseS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY4
RjJCOUExNzJGMDUwMTAwN0RCREE1IC8qIERGR0Rlc2lyZWRJZGVudGlmaWVycy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJOEI5RjZENTYxRDU5MTJGQTAwMUM3MzlGIC8qIEl0ZXJhdGlvbktpbmQuaCBp
biBIZWFkZXJzICovLAogCQkJCTBGRkM5MjE0MUI5NEU4M0UwMDcxREQ2NiAvKiBERkdEZXNpcmVk
SW5mZXJyZWRUeXBlLmggaW4gSGVhZGVycyAqLywKQEAgLTg1MTAsNiArODUxNiw3IEBACiAJCQkJ
QTVCQTE1RUExODIzNDBCNDAwQTgyRTY5IC8qIFJlbW90ZUluc3BlY3RvckNvbnN0YW50cy5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQTVCQTE1RjAxODIzNDVBRjAwQTgyRTY5IC8qIFJlbW90ZUluc3Bl
Y3Rpb25UYXJnZXQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1QkExNUVCMTgyMzQwQjQwMEE4MkU2
OSAvKiBSZW1vdGVDb25uZWN0aW9uVG9UYXJnZXQuaCBpbiBIZWFkZXJzICovLAorCQkJCUFEMkZD
QzJEMURCODM4RkQwMEIzRTczNiAvKiBXZWJBc3NlbWJseVByb3RvdHlwZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQTVCQTE1RUQxODIzNDBCNDAwQTgyRTY5IC8qIFJlbW90ZUluc3BlY3RvclhQQ0Nv
bm5lY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTBGMjRFNTUxMTdFRTI3NDkwMEFCQjIxNyAv
KiBSZXBhdGNoLmggaW4gSGVhZGVycyAqLywKIAkJCQlEQzIxNDMwNzFDQTMyRTU1MDAwQTg4Njkg
LyogSUNTdGF0cy5oIGluIEhlYWRlcnMgKi8sCkBAIC05NDUwLDYgKzk0NTcsNyBAQAogCQkJCTBG
OEYxNDM1MUFERjA5MDEwMEVENzkyQyAvKiBERkdNb3ZIaW50UmVtb3ZhbFBoYXNlLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTBGRjJDRDVCMUI2MUE0RjgwMDQ5NTVBOCAvKiBERkdNdWx0aUdldEJ5
T2Zmc2V0RGF0YS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNzM3ODEwRDE3OTlFQTJFMDA4MTc1
MzMgLyogREZHTmF0dXJhbExvb3BzLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUFEMkZDQzMwMURC
ODNENDkwMEIzRTczNiAvKiBKU1dlYkFzc2VtYmx5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTc5
QjAwQ0JFMUM2QUIwN0UwMDg4QzY1RCAvKiBQcm94eU9iamVjdC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQk3OTJDQjM0OTFDNEVFRDVDMDBEMTNBRjMgLyogUENUb0NvZGVPcmlnaW5NYXAuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMEZGMEYxOUMxNkI3MkEwMzAwNURGOTVCIC8qIERGR05vZGUuY3Bw
IGluIFNvdXJjZXMgKi8sCkBAIC05NzE3LDYgKzk3MjUsNyBAQAogCQkJCTE0N0YzOUQ2MTA3RUMz
NzYwMDQyN0E0OCAvKiBKU0NKU1ZhbHVlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0NDBGQ0U0
MEE1MUU0NkIwMDA1RjA2MSAvKiBKU0NsYXNzUmVmLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg2
RTNDNjE2MTY3QkFCRUUwMDZENzYwQSAvKiBKU0NvbnRleHQubW0gaW4gU291cmNlcyAqLywKKwkJ
CQlBRDJGQ0MyQzFEQjgzOEZEMDBCM0U3MzYgLyogV2ViQXNzZW1ibHlQcm90b3R5cGUuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMTRCRDVBMzAwQTNFOTFGNjAwQkFGNTlDIC8qIEpTQ29udGV4dFJl
Zi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNzIwMjhCNjE3OTc2MDFFMDA5ODAyOEMgLyogSlND
VGVzdFJ1bm5lclV0aWxzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGMkI2NkVCMTdCNkI1QUIw
MEE3QUUzRiAvKiBKU0RhdGFWaWV3LmNwcCBpbiBTb3VyY2VzICovLApAQCAtOTkzOCw3ICs5OTQ3
LDYgQEAKIAkJCQk3OTA1QkI2ODFEMTIwNTBFMDAxOUZFNTcgLyogSW5saW5lQWNjZXNzLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTBGRTA1MDI3MUFBOTA5NTYwMEQzM0IzMyAvKiBTY29wZWRBcmd1
bWVudHMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZFMDUwMkYxQUFBODA2OTAwRDMzQjMzIC8q
IFNjb3BlZEFyZ3VtZW50c1RhYmxlLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUFEMkZDQjg4MURB
RUJGM0MwMEIzRTczNiAvKiBXZWJBc3NlbWJseU9iamVjdC5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk5OTJBQkNGOTFCRUE5QkQyMDA2NDAzQTAgLyogUmVtb3RlQXV0b21hdGlvblRhcmdldC5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkwRkUwNTAyQTFBQTkwOTU2MDBEMzNCMzMgLyogU2NvcGVPZmZz
ZXQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZBN0E4RUUxOENFNEZEODAwNTIzNzFEIC8qIFNj
cmF0Y2hSZWdpc3RlckFsbG9jYXRvci5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAppbmRleCAxNWE5NDEwLi5m
NDhjYmNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2Jh
bE9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxP
YmplY3QuY3BwCkBAIC0xMDgsNiArMTA4LDcgQEAKICNpbmNsdWRlICJKU1R5cGVkQXJyYXlzLmgi
CiAjaW5jbHVkZSAiSlNXZWFrTWFwLmgiCiAjaW5jbHVkZSAiSlNXZWFrU2V0LmgiCisjaW5jbHVk
ZSAiSlNXZWJBc3NlbWJseS5oIgogI2luY2x1ZGUgIkpTV2l0aFNjb3BlLmgiCiAjaW5jbHVkZSAi
TGF6eUNsYXNzU3RydWN0dXJlSW5saW5lcy5oIgogI2luY2x1ZGUgIkxhenlQcm9wZXJ0eUlubGlu
ZXMuaCIKQEAgLTE1NCw3ICsxNTUsNiBAQAogI2luY2x1ZGUgIldlYWtNYXBQcm90b3R5cGUuaCIK
ICNpbmNsdWRlICJXZWFrU2V0Q29uc3RydWN0b3IuaCIKICNpbmNsdWRlICJXZWFrU2V0UHJvdG90
eXBlLmgiCi0jaW5jbHVkZSAiV2ViQXNzZW1ibHlPYmplY3QuaCIKICNpbmNsdWRlIDx3dGYvUmFu
ZG9tTnVtYmVyLmg+CiAKICNpZiBFTkFCTEUoSU5UTCkKQEAgLTU0MSwxOCArNTQxLDE4IEBAIHZv
aWQgSlNHbG9iYWxPYmplY3Q6OmluaXQoVk0mIHZtKQogICAgIG1fcGFyc2VJbnRGdW5jdGlvbi5z
ZXQodm0sIHRoaXMsIEpTRnVuY3Rpb246OmNyZWF0ZSh2bSwgdGhpcywgMiwgdm0ucHJvcGVydHlO
YW1lcy0+cGFyc2VJbnQuc3RyaW5nKCksIGdsb2JhbEZ1bmNQYXJzZUludCwgTm9JbnRyaW5zaWMp
KTsKICAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+
cGFyc2VJbnQsIG1fcGFyc2VJbnRGdW5jdGlvbi5nZXQoKSwgRG9udEVudW0pOwogCi0jZGVmaW5l
IENSRUFURV9QUk9UT1RZUEVfRk9SX1NJTVBMRV9UWVBFKGNhcGl0YWxOYW1lLCBsb3dlck5hbWUs
IHByb3Blck5hbWUsIGluc3RhbmNlVHlwZSwganNOYW1lKSBcCi1tXyAjIyBsb3dlck5hbWUgIyMg
UHJvdG90eXBlLnNldCh2bSwgdGhpcywgY2FwaXRhbE5hbWUjI1Byb3RvdHlwZTo6Y3JlYXRlKHZt
LCB0aGlzLCBjYXBpdGFsTmFtZSMjUHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUodm0sIHRoaXMs
IG1fb2JqZWN0UHJvdG90eXBlLmdldCgpKSkpOyBcCisjZGVmaW5lIENSRUFURV9QUk9UT1RZUEVf
Rk9SX1NJTVBMRV9UWVBFKGNhcGl0YWxOYW1lLCBsb3dlck5hbWUsIHByb3Blck5hbWUsIGluc3Rh
bmNlVHlwZSwganNOYW1lLCBwcm90b3R5cGVCYXNlKSBcCittXyAjIyBsb3dlck5hbWUgIyMgUHJv
dG90eXBlLnNldCh2bSwgdGhpcywgY2FwaXRhbE5hbWUjI1Byb3RvdHlwZTo6Y3JlYXRlKHZtLCB0
aGlzLCBjYXBpdGFsTmFtZSMjUHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUodm0sIHRoaXMsIG1f
ICMjIHByb3RvdHlwZUJhc2UgIyMgUHJvdG90eXBlLmdldCgpKSkpOyBcCiBtXyAjIyBwcm9wZXJO
YW1lICMjIFN0cnVjdHVyZS5zZXQodm0sIHRoaXMsIGluc3RhbmNlVHlwZTo6Y3JlYXRlU3RydWN0
dXJlKHZtLCB0aGlzLCBtXyAjIyBsb3dlck5hbWUgIyMgUHJvdG90eXBlLmdldCgpKSk7CiAgICAg
CiAgICAgRk9SX0VBQ0hfU0lNUExFX0JVSUxUSU5fVFlQRShDUkVBVEVfUFJPVE9UWVBFX0ZPUl9T
SU1QTEVfVFlQRSkKICAgICAKICN1bmRlZiBDUkVBVEVfUFJPVE9UWVBFX0ZPUl9TSU1QTEVfVFlQ
RQogCi0jZGVmaW5lIENSRUFURV9QUk9UT1RZUEVfRk9SX0xBWllfVFlQRShjYXBpdGFsTmFtZSwg
bG93ZXJOYW1lLCBwcm9wZXJOYW1lLCBpbnN0YW5jZVR5cGUsIGpzTmFtZSkgXAorI2RlZmluZSBD
UkVBVEVfUFJPVE9UWVBFX0ZPUl9MQVpZX1RZUEUoY2FwaXRhbE5hbWUsIGxvd2VyTmFtZSwgcHJv
cGVyTmFtZSwgaW5zdGFuY2VUeXBlLCBqc05hbWUsIHByb3RvdHlwZUJhc2UpIFwKICAgICBtXyAj
IyBwcm9wZXJOYW1lICMjIFN0cnVjdHVyZS5pbml0TGF0ZXIoXAogICAgICAgICBbXSAoTGF6eUNs
YXNzU3RydWN0dXJlOjpJbml0aWFsaXplciYgaW5pdCkgeyBcCi0gICAgICAgICAgICBpbml0LnNl
dFByb3RvdHlwZShjYXBpdGFsTmFtZSMjUHJvdG90eXBlOjpjcmVhdGUoaW5pdC52bSwgaW5pdC5n
bG9iYWwsIGNhcGl0YWxOYW1lIyNQcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZShpbml0LnZtLCBp
bml0Lmdsb2JhbCwgaW5pdC5nbG9iYWwtPm1fb2JqZWN0UHJvdG90eXBlLmdldCgpKSkpOyBcCisg
ICAgICAgICAgICBpbml0LnNldFByb3RvdHlwZShjYXBpdGFsTmFtZSMjUHJvdG90eXBlOjpjcmVh
dGUoaW5pdC52bSwgaW5pdC5nbG9iYWwsIGNhcGl0YWxOYW1lIyNQcm90b3R5cGU6OmNyZWF0ZVN0
cnVjdHVyZShpbml0LnZtLCBpbml0Lmdsb2JhbCwgaW5pdC5nbG9iYWwtPm1fICMjIHByb3RvdHlw
ZUJhc2UgIyMgUHJvdG90eXBlLmdldCgpKSkpOyBcCiAgICAgICAgICAgICBpbml0LnNldFN0cnVj
dHVyZShpbnN0YW5jZVR5cGU6OmNyZWF0ZVN0cnVjdHVyZShpbml0LnZtLCBpbml0Lmdsb2JhbCwg
aW5pdC5wcm90b3R5cGUpKTsgXAogICAgICAgICAgICAgaW5pdC5zZXRDb25zdHJ1Y3RvcihjYXBp
dGFsTmFtZSAjIyBDb25zdHJ1Y3Rvcjo6Y3JlYXRlKGluaXQudm0sIGNhcGl0YWxOYW1lICMjIENv
bnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUoaW5pdC52bSwgaW5pdC5nbG9iYWwsIGluaXQuZ2xv
YmFsLT5tX2Z1bmN0aW9uUHJvdG90eXBlLmdldCgpKSwganNDYXN0PGNhcGl0YWxOYW1lICMjIFBy
b3RvdHlwZSo+KGluaXQucHJvdG90eXBlKSwgaW5pdC5nbG9iYWwtPm1fc3BlY2llc0dldHRlclNl
dHRlci5nZXQoKSkpOyBcCiAgICAgICAgIH0pOwpAQCAtNTYzLDcgKzU2Myw3IEBAIG1fICMjIHBy
b3Blck5hbWUgIyMgU3RydWN0dXJlLnNldCh2bSwgdGhpcywgaW5zdGFuY2VUeXBlOjpjcmVhdGVT
dHJ1Y3R1cmUodm0sIHRoCiAgICAgCiAgICAgbV9pdGVyYXRvclByb3RvdHlwZS5zZXQodm0sIHRo
aXMsIEl0ZXJhdG9yUHJvdG90eXBlOjpjcmVhdGUodm0sIHRoaXMsIEl0ZXJhdG9yUHJvdG90eXBl
OjpjcmVhdGVTdHJ1Y3R1cmUodm0sIHRoaXMsIG1fb2JqZWN0UHJvdG90eXBlLmdldCgpKSkpOwog
Ci0jZGVmaW5lIENSRUFURV9QUk9UT1RZUEVfRk9SX0RFUklWRURfSVRFUkFUT1JfVFlQRShjYXBp
dGFsTmFtZSwgbG93ZXJOYW1lLCBwcm9wZXJOYW1lLCBpbnN0YW5jZVR5cGUsIGpzTmFtZSkgXAor
I2RlZmluZSBDUkVBVEVfUFJPVE9UWVBFX0ZPUl9ERVJJVkVEX0lURVJBVE9SX1RZUEUoY2FwaXRh
bE5hbWUsIGxvd2VyTmFtZSwgcHJvcGVyTmFtZSwgaW5zdGFuY2VUeXBlLCBqc05hbWUsIHByb3Rv
dHlwZUJhc2UpIFwKICAgICBtXyAjIyBsb3dlck5hbWUgIyMgU3RydWN0dXJlLmluaXRMYXRlcigg
XAogICAgICAgICBbXSAoY29uc3QgSW5pdGlhbGl6ZXI8U3RydWN0dXJlPiYgaW5pdCkgeyBcCiAg
ICAgICAgICAgICBKU09iamVjdCogcHJvdG90eXBlID0gY2FwaXRhbE5hbWUgIyMgUHJvdG90eXBl
OjpjcmVhdGUoaW5pdC52bSwgaW5pdC5vd25lciwgY2FwaXRhbE5hbWUgIyMgUHJvdG90eXBlOjpj
cmVhdGVTdHJ1Y3R1cmUoaW5pdC52bSwgaW5pdC5vd25lciwgaW5pdC5vd25lci0+bV9pdGVyYXRv
clByb3RvdHlwZS5nZXQoKSkpOyBcCkBAIC01OTAsNyArNTkwLDcgQEAgbV8gIyMgcHJvcGVyTmFt
ZSAjIyBTdHJ1Y3R1cmUuc2V0KHZtLCB0aGlzLCBpbnN0YW5jZVR5cGU6OmNyZWF0ZVN0cnVjdHVy
ZSh2bSwgdGgKICAgICAKICAgICBtX3JlZ0V4cENvbnN0cnVjdG9yLnNldCh2bSwgdGhpcywgUmVn
RXhwQ29uc3RydWN0b3I6OmNyZWF0ZSh2bSwgUmVnRXhwQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVj
dHVyZSh2bSwgdGhpcywgbV9mdW5jdGlvblByb3RvdHlwZS5nZXQoKSksIG1fcmVnRXhwUHJvdG90
eXBlLmdldCgpLCBtX3NwZWNpZXNHZXR0ZXJTZXR0ZXIuZ2V0KCkpKTsKICAgICAKLSNkZWZpbmUg
Q1JFQVRFX0NPTlNUUlVDVE9SX0ZPUl9TSU1QTEVfVFlQRShjYXBpdGFsTmFtZSwgbG93ZXJOYW1l
LCBwcm9wZXJOYW1lLCBpbnN0YW5jZVR5cGUsIGpzTmFtZSkgXAorI2RlZmluZSBDUkVBVEVfQ09O
U1RSVUNUT1JfRk9SX1NJTVBMRV9UWVBFKGNhcGl0YWxOYW1lLCBsb3dlck5hbWUsIHByb3Blck5h
bWUsIGluc3RhbmNlVHlwZSwganNOYW1lLCBwcm90b3R5cGVCYXNlKSBcCiBjYXBpdGFsTmFtZSAj
IyBDb25zdHJ1Y3RvciogbG93ZXJOYW1lICMjIENvbnN0cnVjdG9yID0gY2FwaXRhbE5hbWUgIyMg
Q29uc3RydWN0b3I6OmNyZWF0ZSh2bSwgY2FwaXRhbE5hbWUgIyMgQ29uc3RydWN0b3I6OmNyZWF0
ZVN0cnVjdHVyZSh2bSwgdGhpcywgbV9mdW5jdGlvblByb3RvdHlwZS5nZXQoKSksIG1fICMjIGxv
d2VyTmFtZSAjIyBQcm90b3R5cGUuZ2V0KCksIG1fc3BlY2llc0dldHRlclNldHRlci5nZXQoKSk7
IFwKIG1fICMjIGxvd2VyTmFtZSAjIyBQcm90b3R5cGUtPnB1dERpcmVjdFdpdGhvdXRUcmFuc2l0
aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5jb25zdHJ1Y3RvciwgbG93ZXJOYW1lICMjIENvbnN0
cnVjdG9yLCBEb250RW51bSk7IFwKIApAQCAtNjQ2LDcgKzY0Niw3IEBAIG1fICMjIGxvd2VyTmFt
ZSAjIyBQcm90b3R5cGUtPnB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0
eU5hbWVzLT5jCiAgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5
TmFtZXMtPmJ1aWx0aW5OYW1lcygpLk9iamVjdFByaXZhdGVOYW1lKCksIG9iamVjdENvbnN0cnVj
dG9yLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSk7CiAgICAgcHV0RGlyZWN0V2l0
aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLkFycmF5
UHJpdmF0ZU5hbWUoKSwgYXJyYXlDb25zdHJ1Y3RvciwgRG9udEVudW0gfCBEb250RGVsZXRlIHwg
UmVhZE9ubHkpOwogCi0jZGVmaW5lIFBVVF9DT05TVFJVQ1RPUl9GT1JfU0lNUExFX1RZUEUoY2Fw
aXRhbE5hbWUsIGxvd2VyTmFtZSwgcHJvcGVyTmFtZSwgaW5zdGFuY2VUeXBlLCBqc05hbWUpIFwK
KyNkZWZpbmUgUFVUX0NPTlNUUlVDVE9SX0ZPUl9TSU1QTEVfVFlQRShjYXBpdGFsTmFtZSwgbG93
ZXJOYW1lLCBwcm9wZXJOYW1lLCBpbnN0YW5jZVR5cGUsIGpzTmFtZSwgcHJvdG90eXBlQmFzZSkg
XAogcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPiBqc05h
bWUsIGxvd2VyTmFtZSAjIyBDb25zdHJ1Y3RvciwgRG9udEVudW0pOyBcCiAKICAgICBGT1JfRUFD
SF9TSU1QTEVfQlVJTFRJTl9UWVBFX1dJVEhfQ09OU1RSVUNUT1IoUFVUX0NPTlNUUlVDVE9SX0ZP
Ul9TSU1QTEVfVFlQRSkKQEAgLTgyMCwxNCArODIwLDI4IEBAIHB1dERpcmVjdFdpdGhvdXRUcmFu
c2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT4ganNOYW1lLCBsb3dlck5hbWUgIyMgQ29uc3Ry
dWN0CiAKICNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCiAgICAgaWYgKE9wdGlvbnM6OnVzZVdlYkFz
c2VtYmx5KCkpIHsKLSAgICAgICAgYXV0byogd2FzbSA9IFdlYkFzc2VtYmx5T2JqZWN0OjpjcmVh
dGUodm0sIHRoaXMsIFdlYkFzc2VtYmx5T2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUodm0sIHRoaXMs
IG1fb2JqZWN0UHJvdG90eXBlLmdldCgpKSk7Ci0gICAgICAgIHB1dERpcmVjdFdpdGhvdXRUcmFu
c2l0aW9uKHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKGV4ZWMsICJXZWJBc3NlbWJseSIpLCB3
YXNtLCBEb250RW51bSk7Ci0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyBleHRyYVN0YXRpY0ds
b2JhbHNbXSA9IHsKLSNkZWZpbmUgUkVHSVNURVJfV0FTTV9DT05TVFJVQ1RPUl9BU19HTE9CQUxf
UFJPUEVSVFkoTkFNRSwgLi4uKSBcCi0gICAgICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0u
cHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuTkFNRSAjIyBQcml2YXRlTmFtZSgpLCB3YXNt
LT5nZXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcoZXhlYywgI05BTUUpKSwgRG9u
dEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAotICAgICAgICAgICAgRk9SX0VBQ0hfV0FT
TV9DT05TVFJVQ1RPUl9QUk9QRVJUWShSRUdJU1RFUl9XQVNNX0NPTlNUUlVDVE9SX0FTX0dMT0JB
TF9QUk9QRVJUWSkKLSAgICAgICAgfTsKLSAgICAgICAgYWRkU3RhdGljR2xvYmFscyhleHRyYVN0
YXRpY0dsb2JhbHMsIFdURl9BUlJBWV9MRU5HVEgoZXh0cmFTdGF0aWNHbG9iYWxzKSk7CisgICAg
ICAgIGF1dG8qIHdlYkFzc2VtYmx5UHJvdG90eXBlID0gV2ViQXNzZW1ibHlQcm90b3R5cGU6OmNy
ZWF0ZSh2bSwgdGhpcywgV2ViQXNzZW1ibHlQcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZSh2bSwg
dGhpcywgbV9vYmplY3RQcm90b3R5cGUuZ2V0KCkpKTsKKyAgICAgICAgbV93ZWJBc3NlbWJseVN0
cnVjdHVyZS5zZXQodm0sIHRoaXMsIEpTV2ViQXNzZW1ibHk6OmNyZWF0ZVN0cnVjdHVyZSh2bSwg
dGhpcywgd2ViQXNzZW1ibHlQcm90b3R5cGUpKTsKKyAgICAgICAgYXV0byogd2ViQXNzZW1ibHkg
PSBKU1dlYkFzc2VtYmx5OjpjcmVhdGUodm0sIHRoaXMsIG1fd2ViQXNzZW1ibHlTdHJ1Y3R1cmUu
Z2V0KCkpOworICAgICAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgSWRlbnRpZmll
cjo6ZnJvbVN0cmluZyhleGVjLCAiV2ViQXNzZW1ibHkiKSwgd2ViQXNzZW1ibHksIERvbnRFbnVt
KTsKKworI2RlZmluZSBDUkVBVEVfV0VCQVNTRU1CTFlfQ09OU1RSVUNUT1IoY2FwaXRhbE5hbWUs
IGxvd2VyTmFtZSwgcHJvcGVyTmFtZSwgaW5zdGFuY2VUeXBlLCBqc05hbWUsIHByb3RvdHlwZUJh
c2UpIGRvIHsgXAorICAgICAgICB0eXBlZGVmIGNhcGl0YWxOYW1lICMjIFByb3RvdHlwZSBQcm90
b3R5cGU7IFwKKyAgICAgICAgdHlwZWRlZiBjYXBpdGFsTmFtZSAjIyBDb25zdHJ1Y3RvciBDb25z
dHJ1Y3RvcjsgXAorICAgICAgICB0eXBlZGVmIEpTICMjIGNhcGl0YWxOYW1lIEpTT2JqOyBcCisg
ICAgICAgIGF1dG8qIGJhc2UgPSBtXyAjIyBwcm90b3R5cGVCYXNlICMjIFByb3RvdHlwZS5nZXQo
KTsgXAorICAgICAgICBhdXRvKiBwcm90b3R5cGUgPSBQcm90b3R5cGU6OmNyZWF0ZSh2bSwgdGhp
cywgUHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUodm0sIHRoaXMsIGJhc2UpKTsgXAorICAgICAg
ICBhdXRvKiBzdHJ1Y3R1cmUgPSBKU09iajo6Y3JlYXRlU3RydWN0dXJlKHZtLCB0aGlzLCBwcm90
b3R5cGUpOyBcCisgICAgICAgIGF1dG8qIGNvbnN0cnVjdG9yID0gQ29uc3RydWN0b3I6OmNyZWF0
ZSh2bSwgQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZSh2bSwgdGhpcywgdGhpcy0+ZnVuY3Rp
b25Qcm90b3R5cGUoKSksIHByb3RvdHlwZSwgc3RydWN0dXJlKTsgXAorICAgICAgICBwcm90b3R5
cGUtPnB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5jb25z
dHJ1Y3RvciwgY29uc3RydWN0b3IsIERvbnRFbnVtKTsgXAorICAgICAgICBtXyAjIyBsb3dlck5h
bWUgIyMgUHJvdG90eXBlLnNldCh2bSwgdGhpcywgcHJvdG90eXBlKTsgXAorICAgICAgICBtXyAj
IyBwcm9wZXJOYW1lICMjIFN0cnVjdHVyZS5zZXQodm0sIHRoaXMsIHN0cnVjdHVyZSk7IFwKKyAg
ICAgICAgd2ViQXNzZW1ibHktPnB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCBJZGVudGlm
aWVyOjpmcm9tU3RyaW5nKHRoaXMtPmdsb2JhbEV4ZWMoKSwgI2pzTmFtZSksIGNvbnN0cnVjdG9y
LCBEb250RW51bSk7IFwKKyAgICB9IHdoaWxlICgwKTsKKworICAgICAgICBGT1JfRUFDSF9XRUJB
U1NFTUJMWV9DT05TVFJVQ1RPUl9UWVBFKENSRUFURV9XRUJBU1NFTUJMWV9DT05TVFJVQ1RPUikK
KworI3VuZGVmIENSRUFURV9XRUJBU1NFTUJMWV9DT05TVFJVQ1RPUgogICAgIH0KICNlbmRpZiAv
LyBFTkFCTEUoV0VCQVNTRU1CTFkpCiAKQEAgLTExNDIsMTUgKzExNTYsMjAgQEAgdm9pZCBKU0ds
b2JhbE9iamVjdDo6dmlzaXRDaGlsZHJlbihKU0NlbGwqIGNlbGwsIFNsb3RWaXNpdG9yJiB2aXNp
dG9yKQogICAgIHZpc2l0b3IuYXBwZW5kKCZ0aGlzT2JqZWN0LT5tX3Byb3h5UmV2b2tlU3RydWN0
dXJlKTsKICAgICB2aXNpdG9yLmFwcGVuZCgmdGhpc09iamVjdC0+bV9tb2R1bGVMb2FkZXJTdHJ1
Y3R1cmUpOwogCi0jZGVmaW5lIFZJU0lUX1NJTVBMRV9UWVBFKENhcGl0YWxOYW1lLCBsb3dlck5h
bWUsIHByb3Blck5hbWUsIGluc3RhbmNlVHlwZSwganNOYW1lKSBcCisjZGVmaW5lIFZJU0lUX1NJ
TVBMRV9UWVBFKENhcGl0YWxOYW1lLCBsb3dlck5hbWUsIHByb3Blck5hbWUsIGluc3RhbmNlVHlw
ZSwganNOYW1lLCBwcm90b3R5cGVCYXNlKSBcCiAgICAgdmlzaXRvci5hcHBlbmQoJnRoaXNPYmpl
Y3QtPm1fICMjIGxvd2VyTmFtZSAjIyBQcm90b3R5cGUpOyBcCiAgICAgdmlzaXRvci5hcHBlbmQo
JnRoaXNPYmplY3QtPm1fICMjIHByb3Blck5hbWUgIyMgU3RydWN0dXJlKTsgXAogCiAgICAgRk9S
X0VBQ0hfU0lNUExFX0JVSUxUSU5fVFlQRShWSVNJVF9TSU1QTEVfVFlQRSkKKyAgICAKKyNpZiBF
TkFCTEUoV0VCQVNTRU1CTFkpCisgICAgdmlzaXRvci5hcHBlbmQoJnRoaXNPYmplY3QtPm1fd2Vi
QXNzZW1ibHlTdHJ1Y3R1cmUpOworICAgIEZPUl9FQUNIX1dFQkFTU0VNQkxZX0NPTlNUUlVDVE9S
X1RZUEUoVklTSVRfU0lNUExFX1RZUEUpCisjZW5kaWYgLy8gRU5BQkxFKFdFQkFTU0VNQkxZKQog
CiAjdW5kZWYgVklTSVRfU0lNUExFX1RZUEUKIAotI2RlZmluZSBWSVNJVF9MQVpZX1RZUEUoQ2Fw
aXRhbE5hbWUsIGxvd2VyTmFtZSwgcHJvcGVyTmFtZSwgaW5zdGFuY2VUeXBlLCBqc05hbWUpIFwK
KyNkZWZpbmUgVklTSVRfTEFaWV9UWVBFKENhcGl0YWxOYW1lLCBsb3dlck5hbWUsIHByb3Blck5h
bWUsIGluc3RhbmNlVHlwZSwganNOYW1lLCBwcm90b3R5cGVCYXNlKSBcCiAgICAgdGhpc09iamVj
dC0+bV8gIyMgcHJvcGVyTmFtZSAjIyBTdHJ1Y3R1cmUudmlzaXQodmlzaXRvcik7CiAgICAgCiAg
ICAgRk9SX0VBQ0hfTEFaWV9CVUlMVElOX1RZUEUoVklTSVRfTEFaWV9UWVBFKQpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmgKaW5kZXggMjViZGUyYi4u
NDA4NDZjZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9i
YWxPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9i
amVjdC5oCkBAIC05NSwxNiArOTUsMTYgQEAgY2xhc3MgVmFyaWFibGVFbnZpcm9ubWVudDsKIHN0
cnVjdCBBY3RpdmF0aW9uU3RhY2tOb2RlOwogc3RydWN0IEhhc2hUYWJsZTsKIAotI2RlZmluZSBE
RUZJTkVfU1RBTkRBUkRfQlVJTFRJTihtYWNybywgdXBwZXJOYW1lLCBsb3dlck5hbWUpIG1hY3Jv
KHVwcGVyTmFtZSwgbG93ZXJOYW1lLCBsb3dlck5hbWUsIEpTICMjIHVwcGVyTmFtZSwgdXBwZXJO
YW1lKQorI2RlZmluZSBERUZJTkVfU1RBTkRBUkRfQlVJTFRJTihtYWNybywgdXBwZXJOYW1lLCBs
b3dlck5hbWUpIG1hY3JvKHVwcGVyTmFtZSwgbG93ZXJOYW1lLCBsb3dlck5hbWUsIEpTICMjIHVw
cGVyTmFtZSwgdXBwZXJOYW1lLCBvYmplY3QpCiAKICNkZWZpbmUgRk9SX0VBQ0hfU0lNUExFX0JV
SUxUSU5fVFlQRV9XSVRIX0NPTlNUUlVDVE9SKG1hY3JvKSBcCi0gICAgbWFjcm8oU3RyaW5nLCBz
dHJpbmcsIHN0cmluZ09iamVjdCwgU3RyaW5nT2JqZWN0LCBTdHJpbmcpIFwKLSAgICBtYWNybyhT
eW1ib2wsIHN5bWJvbCwgc3ltYm9sT2JqZWN0LCBTeW1ib2xPYmplY3QsIFN5bWJvbCkgXAotICAg
IG1hY3JvKE51bWJlciwgbnVtYmVyLCBudW1iZXJPYmplY3QsIE51bWJlck9iamVjdCwgTnVtYmVy
KSBcCi0gICAgbWFjcm8oRXJyb3IsIGVycm9yLCBlcnJvciwgRXJyb3JJbnN0YW5jZSwgRXJyb3Ip
IFwKLSAgICBtYWNybyhNYXAsIG1hcCwgbWFwLCBKU01hcCwgTWFwKSBcCi0gICAgbWFjcm8oSlNQ
cm9taXNlLCBwcm9taXNlLCBwcm9taXNlLCBKU1Byb21pc2UsIFByb21pc2UpIFwKLSAgICBtYWNy
byhKU0FycmF5QnVmZmVyLCBhcnJheUJ1ZmZlciwgYXJyYXlCdWZmZXIsIEpTQXJyYXlCdWZmZXIs
IEFycmF5QnVmZmVyKSBcCisgICAgbWFjcm8oU3RyaW5nLCBzdHJpbmcsIHN0cmluZ09iamVjdCwg
U3RyaW5nT2JqZWN0LCBTdHJpbmcsIG9iamVjdCkgXAorICAgIG1hY3JvKFN5bWJvbCwgc3ltYm9s
LCBzeW1ib2xPYmplY3QsIFN5bWJvbE9iamVjdCwgU3ltYm9sLCBvYmplY3QpIFwKKyAgICBtYWNy
byhOdW1iZXIsIG51bWJlciwgbnVtYmVyT2JqZWN0LCBOdW1iZXJPYmplY3QsIE51bWJlciwgb2Jq
ZWN0KSBcCisgICAgbWFjcm8oRXJyb3IsIGVycm9yLCBlcnJvciwgRXJyb3JJbnN0YW5jZSwgRXJy
b3IsIG9iamVjdCkgXAorICAgIG1hY3JvKE1hcCwgbWFwLCBtYXAsIEpTTWFwLCBNYXAsIG9iamVj
dCkgXAorICAgIG1hY3JvKEpTUHJvbWlzZSwgcHJvbWlzZSwgcHJvbWlzZSwgSlNQcm9taXNlLCBQ
cm9taXNlLCBvYmplY3QpIFwKKyAgICBtYWNybyhKU0FycmF5QnVmZmVyLCBhcnJheUJ1ZmZlciwg
YXJyYXlCdWZmZXIsIEpTQXJyYXlCdWZmZXIsIEFycmF5QnVmZmVyLCBvYmplY3QpIFwKIAogI2Rl
ZmluZSBGT1JfRUFDSF9CVUlMVElOX0RFUklWRURfSVRFUkFUT1JfVFlQRShtYWNybykgXAogICAg
IERFRklORV9TVEFOREFSRF9CVUlMVElOKG1hY3JvLCBNYXBJdGVyYXRvciwgbWFwSXRlcmF0b3Ip
IFwKQEAgLTExNywxNiArMTE3LDI4IEBAIHN0cnVjdCBIYXNoVGFibGU7CiAKICNkZWZpbmUgRk9S
X0VBQ0hfU0lNUExFX0JVSUxUSU5fVFlQRShtYWNybykgXAogICAgIEZPUl9FQUNIX1NJTVBMRV9C
VUlMVElOX1RZUEVfV0lUSF9DT05TVFJVQ1RPUihtYWNybykgXAotICAgIG1hY3JvKEpTSW50ZXJu
YWxQcm9taXNlLCBpbnRlcm5hbFByb21pc2UsIGludGVybmFsUHJvbWlzZSwgSlNJbnRlcm5hbFBy
b21pc2UsIEludGVybmFsUHJvbWlzZSkgXAorICAgIG1hY3JvKEpTSW50ZXJuYWxQcm9taXNlLCBp
bnRlcm5hbFByb21pc2UsIGludGVybmFsUHJvbWlzZSwgSlNJbnRlcm5hbFByb21pc2UsIEludGVy
bmFsUHJvbWlzZSwgb2JqZWN0KSBcCiAKICNkZWZpbmUgRk9SX0VBQ0hfTEFaWV9CVUlMVElOX1RZ
UEUobWFjcm8pIFwKLSAgICBtYWNybyhTZXQsIHNldCwgc2V0LCBKU1NldCwgU2V0KSBcCi0gICAg
bWFjcm8oRGF0ZSwgZGF0ZSwgZGF0ZSwgRGF0ZUluc3RhbmNlLCBEYXRlKSBcCi0gICAgbWFjcm8o
Qm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbk9iamVjdCwgQm9vbGVhbk9iamVjdCwgQm9vbGVhbikg
XAorICAgIG1hY3JvKFNldCwgc2V0LCBzZXQsIEpTU2V0LCBTZXQsIG9iamVjdCkgXAorICAgIG1h
Y3JvKERhdGUsIGRhdGUsIGRhdGUsIERhdGVJbnN0YW5jZSwgRGF0ZSwgb2JqZWN0KSBcCisgICAg
bWFjcm8oQm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbk9iamVjdCwgQm9vbGVhbk9iamVjdCwgQm9v
bGVhbiwgb2JqZWN0KSBcCiAgICAgREVGSU5FX1NUQU5EQVJEX0JVSUxUSU4obWFjcm8sIFdlYWtN
YXAsIHdlYWtNYXApIFwKICAgICBERUZJTkVfU1RBTkRBUkRfQlVJTFRJTihtYWNybywgV2Vha1Nl
dCwgd2Vha1NldCkgXAogCi0jZGVmaW5lIERFQ0xBUkVfU0lNUExFX0JVSUxUSU5fVFlQRShjYXBp
dGFsTmFtZSwgbG93ZXJOYW1lLCBwcm9wZXJOYW1lLCBpbnN0YW5jZVR5cGUsIGpzTmFtZSkgXAor
I2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKKyNkZWZpbmUgRk9SX0VBQ0hfV0VCQVNTRU1CTFlfQ09O
U1RSVUNUT1JfVFlQRShtYWNybykgXAorICAgIG1hY3JvKFdlYkFzc2VtYmx5Q29tcGlsZUVycm9y
LCB3ZWJBc3NlbWJseUNvbXBpbGVFcnJvciwgV2ViQXNzZW1ibHlDb21waWxlRXJyb3IsIFdlYkFz
c2VtYmx5Q29tcGlsZUVycm9yLCBDb21waWxlRXJyb3IsIGVycm9yKSBcCisgICAgbWFjcm8oV2Vi
QXNzZW1ibHlJbnN0YW5jZSwgICAgIHdlYkFzc2VtYmx5SW5zdGFuY2UsICAgICBXZWJBc3NlbWJs
eUluc3RhbmNlLCAgICAgV2ViQXNzZW1ibHlJbnN0YW5jZSwgICAgIEluc3RhbmNlLCAgICAgb2Jq
ZWN0KSBcCisgICAgbWFjcm8oV2ViQXNzZW1ibHlNZW1vcnksICAgICAgIHdlYkFzc2VtYmx5TWVt
b3J5LCAgICAgICBXZWJBc3NlbWJseU1lbW9yeSwgICAgICAgV2ViQXNzZW1ibHlNZW1vcnksICAg
ICAgIE1lbW9yeSwgICAgICAgb2JqZWN0KSBcCisgICAgbWFjcm8oV2ViQXNzZW1ibHlNb2R1bGUs
ICAgICAgIHdlYkFzc2VtYmx5TW9kdWxlLCAgICAgICBXZWJBc3NlbWJseU1vZHVsZSwgICAgICAg
V2ViQXNzZW1ibHlNb2R1bGUsICAgICAgIE1vZHVsZSwgICAgICAgb2JqZWN0KSBcCisgICAgbWFj
cm8oV2ViQXNzZW1ibHlSdW50aW1lRXJyb3IsIHdlYkFzc2VtYmx5UnVudGltZUVycm9yLCBXZWJB
c3NlbWJseVJ1bnRpbWVFcnJvciwgV2ViQXNzZW1ibHlSdW50aW1lRXJyb3IsIFJ1bnRpbWVFcnJv
ciwgZXJyb3IpIFwKKyAgICBtYWNybyhXZWJBc3NlbWJseVRhYmxlLCAgICAgICAgd2ViQXNzZW1i
bHlUYWJsZSwgICAgICAgIFdlYkFzc2VtYmx5VGFibGUsICAgICAgICBXZWJBc3NlbWJseVRhYmxl
LCAgICAgICAgVGFibGUsICAgICAgICBvYmplY3QpCisjZWxzZQorI2RlZmluZSBGT1JfRUFDSF9X
RUJBU1NFTUJMWV9DT05TVFJVQ1RPUl9UWVBFKG1hY3JvKQorI2VuZGlmIC8vIEVOQUJMRShXRUJB
U1NFTUJMWSkKKworI2RlZmluZSBERUNMQVJFX1NJTVBMRV9CVUlMVElOX1RZUEUoY2FwaXRhbE5h
bWUsIGxvd2VyTmFtZSwgcHJvcGVyTmFtZSwgaW5zdGFuY2VUeXBlLCBqc05hbWUsIHByb3RvdHlw
ZUJhc2UpIFwKICAgICBjbGFzcyBKUyAjIyBjYXBpdGFsTmFtZTsgXAogICAgIGNsYXNzIGNhcGl0
YWxOYW1lICMjIFByb3RvdHlwZTsgXAogICAgIGNsYXNzIGNhcGl0YWxOYW1lICMjIENvbnN0cnVj
dG9yOwpAQCAtMTM1LDYgKzE0Nyw3IEBAIGNsYXNzIEl0ZXJhdG9yUHJvdG90eXBlOwogRk9SX0VB
Q0hfU0lNUExFX0JVSUxUSU5fVFlQRShERUNMQVJFX1NJTVBMRV9CVUlMVElOX1RZUEUpCiBGT1Jf
RUFDSF9MQVpZX0JVSUxUSU5fVFlQRShERUNMQVJFX1NJTVBMRV9CVUlMVElOX1RZUEUpCiBGT1Jf
RUFDSF9CVUlMVElOX0RFUklWRURfSVRFUkFUT1JfVFlQRShERUNMQVJFX1NJTVBMRV9CVUlMVElO
X1RZUEUpCitGT1JfRUFDSF9XRUJBU1NFTUJMWV9DT05TVFJVQ1RPUl9UWVBFKERFQ0xBUkVfU0lN
UExFX0JVSUxUSU5fVFlQRSkKIAogI3VuZGVmIERFQ0xBUkVfU0lNUExFX0JVSUxUSU5fVFlQRQog
CkBAIC0zMDUsMjAgKzMxOCwyNSBAQCBwdWJsaWM6CiAgICAgV3JpdGVCYXJyaWVyPFN0cnVjdHVy
ZT4gbV9wcm94eVJldm9rZVN0cnVjdHVyZTsKICAgICBXcml0ZUJhcnJpZXI8U3RydWN0dXJlPiBt
X21vZHVsZUxvYWRlclN0cnVjdHVyZTsKIAotI2RlZmluZSBERUZJTkVfU1RPUkFHRV9GT1JfU0lN
UExFX1RZUEUoY2FwaXRhbE5hbWUsIGxvd2VyTmFtZSwgcHJvcGVyTmFtZSwgaW5zdGFuY2VUeXBl
LCBqc05hbWUpIFwKKyNkZWZpbmUgREVGSU5FX1NUT1JBR0VfRk9SX1NJTVBMRV9UWVBFKGNhcGl0
YWxOYW1lLCBsb3dlck5hbWUsIHByb3Blck5hbWUsIGluc3RhbmNlVHlwZSwganNOYW1lLCBwcm90
b3R5cGVCYXNlKSBcCiAgICAgV3JpdGVCYXJyaWVyPGNhcGl0YWxOYW1lICMjIFByb3RvdHlwZT4g
bV8gIyMgbG93ZXJOYW1lICMjIFByb3RvdHlwZTsgXAogICAgIFdyaXRlQmFycmllcjxTdHJ1Y3R1
cmU+IG1fICMjIHByb3Blck5hbWUgIyMgU3RydWN0dXJlOwogCiAgICAgRk9SX0VBQ0hfU0lNUExF
X0JVSUxUSU5fVFlQRShERUZJTkVfU1RPUkFHRV9GT1JfU0lNUExFX1RZUEUpCisgICAgCisjaWYg
RU5BQkxFKFdFQkFTU0VNQkxZKQorICAgIFdyaXRlQmFycmllcjxTdHJ1Y3R1cmU+IG1fd2ViQXNz
ZW1ibHlTdHJ1Y3R1cmU7CisgICAgRk9SX0VBQ0hfV0VCQVNTRU1CTFlfQ09OU1RSVUNUT1JfVFlQ
RShERUZJTkVfU1RPUkFHRV9GT1JfU0lNUExFX1RZUEUpCisjZW5kaWYgLy8gRU5BQkxFKFdFQkFT
U0VNQkxZKQogCiAjdW5kZWYgREVGSU5FX1NUT1JBR0VfRk9SX1NJTVBMRV9UWVBFCiAKLSNkZWZp
bmUgREVGSU5FX1NUT1JBR0VfRk9SX0lURVJBVE9SX1RZUEUoY2FwaXRhbE5hbWUsIGxvd2VyTmFt
ZSwgcHJvcGVyTmFtZSwgaW5zdGFuY2VUeXBlLCBqc05hbWUpIFwKKyNkZWZpbmUgREVGSU5FX1NU
T1JBR0VfRk9SX0lURVJBVE9SX1RZUEUoY2FwaXRhbE5hbWUsIGxvd2VyTmFtZSwgcHJvcGVyTmFt
ZSwgaW5zdGFuY2VUeXBlLCBqc05hbWUsIHByb3RvdHlwZUJhc2UpIFwKICAgICBMYXp5UHJvcGVy
dHk8SlNHbG9iYWxPYmplY3QsIFN0cnVjdHVyZT4gbV8gIyMgcHJvcGVyTmFtZSAjIyBTdHJ1Y3R1
cmU7CiAgICAgRk9SX0VBQ0hfQlVJTFRJTl9ERVJJVkVEX0lURVJBVE9SX1RZUEUoREVGSU5FX1NU
T1JBR0VfRk9SX0lURVJBVE9SX1RZUEUpCiAjdW5kZWYgREVGSU5FX1NUT1JBR0VfRk9SX0lURVJB
VE9SX1RZUEUKICAgICAKLSNkZWZpbmUgREVGSU5FX1NUT1JBR0VfRk9SX0xBWllfVFlQRShjYXBp
dGFsTmFtZSwgbG93ZXJOYW1lLCBwcm9wZXJOYW1lLCBpbnN0YW5jZVR5cGUsIGpzTmFtZSkgXAor
I2RlZmluZSBERUZJTkVfU1RPUkFHRV9GT1JfTEFaWV9UWVBFKGNhcGl0YWxOYW1lLCBsb3dlck5h
bWUsIHByb3Blck5hbWUsIGluc3RhbmNlVHlwZSwganNOYW1lLCBwcm90b3R5cGVCYXNlKSBcCiAg
ICAgTGF6eUNsYXNzU3RydWN0dXJlIG1fICMjIHByb3Blck5hbWUgIyMgU3RydWN0dXJlOwogICAg
IEZPUl9FQUNIX0xBWllfQlVJTFRJTl9UWVBFKERFRklORV9TVE9SQUdFX0ZPUl9MQVpZX1RZUEUp
CiAjdW5kZWYgREVGSU5FX1NUT1JBR0VfRk9SX0xBWllfVFlQRQpAQCAtNjA2LDIxICs2MjQsMjIg
QEAgcHVibGljOgogCiAgICAgSlNBcnJheUJ1ZmZlclByb3RvdHlwZSogYXJyYXlCdWZmZXJQcm90
b3R5cGUoKSBjb25zdCB7IHJldHVybiBtX2FycmF5QnVmZmVyUHJvdG90eXBlLmdldCgpOyB9CiAK
LSNkZWZpbmUgREVGSU5FX0FDQ0VTU09SU19GT1JfU0lNUExFX1RZUEUoY2FwaXRhbE5hbWUsIGxv
d2VyTmFtZSwgcHJvcGVyTmFtZSwgaW5zdGFuY2VUeXBlLCBqc05hbWUpIFwKKyNkZWZpbmUgREVG
SU5FX0FDQ0VTU09SU19GT1JfU0lNUExFX1RZUEUoY2FwaXRhbE5hbWUsIGxvd2VyTmFtZSwgcHJv
cGVyTmFtZSwgaW5zdGFuY2VUeXBlLCBqc05hbWUsIHByb3RvdHlwZUJhc2UpIFwKICAgICBTdHJ1
Y3R1cmUqIHByb3Blck5hbWUgIyMgU3RydWN0dXJlKCkgeyByZXR1cm4gbV8gIyMgcHJvcGVyTmFt
ZSAjIyBTdHJ1Y3R1cmUuZ2V0KCk7IH0KIAogICAgIEZPUl9FQUNIX1NJTVBMRV9CVUlMVElOX1RZ
UEUoREVGSU5FX0FDQ0VTU09SU19GT1JfU0lNUExFX1RZUEUpCisgICAgRk9SX0VBQ0hfV0VCQVNT
RU1CTFlfQ09OU1RSVUNUT1JfVFlQRShERUZJTkVfQUNDRVNTT1JTX0ZPUl9TSU1QTEVfVFlQRSkK
IAogI3VuZGVmIERFRklORV9BQ0NFU1NPUlNfRk9SX1NJTVBMRV9UWVBFCiAKLSNkZWZpbmUgREVG
SU5FX0FDQ0VTU09SU19GT1JfSVRFUkFUT1JfVFlQRShjYXBpdGFsTmFtZSwgbG93ZXJOYW1lLCBw
cm9wZXJOYW1lLCBpbnN0YW5jZVR5cGUsIGpzTmFtZSkgXAorI2RlZmluZSBERUZJTkVfQUNDRVNT
T1JTX0ZPUl9JVEVSQVRPUl9UWVBFKGNhcGl0YWxOYW1lLCBsb3dlck5hbWUsIHByb3Blck5hbWUs
IGluc3RhbmNlVHlwZSwganNOYW1lLCBwcm90b3R5cGVCYXNlKSBcCiAgICAgU3RydWN0dXJlKiBw
cm9wZXJOYW1lICMjIFN0cnVjdHVyZSgpIHsgcmV0dXJuIG1fICMjIHByb3Blck5hbWUgIyMgU3Ry
dWN0dXJlLmdldCh0aGlzKTsgfQogCiAgICAgRk9SX0VBQ0hfQlVJTFRJTl9ERVJJVkVEX0lURVJB
VE9SX1RZUEUoREVGSU5FX0FDQ0VTU09SU19GT1JfSVRFUkFUT1JfVFlQRSkKIAogI3VuZGVmIERF
RklORV9BQ0NFU1NPUlNfRk9SX0lURVJBVE9SX1RZUEUKIAotI2RlZmluZSBERUZJTkVfQUNDRVNT
T1JTX0ZPUl9MQVpZX1RZUEUoY2FwaXRhbE5hbWUsIGxvd2VyTmFtZSwgcHJvcGVyTmFtZSwgaW5z
dGFuY2VUeXBlLCBqc05hbWUpIFwKKyNkZWZpbmUgREVGSU5FX0FDQ0VTU09SU19GT1JfTEFaWV9U
WVBFKGNhcGl0YWxOYW1lLCBsb3dlck5hbWUsIHByb3Blck5hbWUsIGluc3RhbmNlVHlwZSwganNO
YW1lLCBwcm90b3R5cGVCYXNlKSBcCiAgICAgU3RydWN0dXJlKiBwcm9wZXJOYW1lICMjIFN0cnVj
dHVyZSgpIHsgcmV0dXJuIG1fICMjIHByb3Blck5hbWUgIyMgU3RydWN0dXJlLmdldCh0aGlzKTsg
fQogCiAgICAgRk9SX0VBQ0hfTEFaWV9CVUlMVElOX1RZUEUoREVGSU5FX0FDQ0VTU09SU19GT1Jf
TEFaWV9UWVBFKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vSlNXZWJB
c3NlbWJseS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9KU1dlYkFzc2VtYmx5LmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43YTNkN2FjCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vSlNXZWJBc3NlbWJseS5jcHAKQEAg
LTAsMCArMSw2NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJKU1dlYkFzc2VtYmx5LmgiCisKKyNp
ZiBFTkFCTEUoV0VCQVNTRU1CTFkpCisKKyNpbmNsdWRlICJGdW5jdGlvblByb3RvdHlwZS5oIgor
I2luY2x1ZGUgIkpTQ0lubGluZXMuaCIKKworbmFtZXNwYWNlIEpTQyB7CisKK1NUQVRJQ19BU1NF
UlRfSVNfVFJJVklBTExZX0RFU1RSVUNUSUJMRShKU1dlYkFzc2VtYmx5KTsKKworY29uc3QgQ2xh
c3NJbmZvIEpTV2ViQXNzZW1ibHk6OnNfaW5mbyA9IHsgIldlYkFzc2VtYmx5IiwgJkJhc2U6OnNf
aW5mbywgMCwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1dlYkFzc2VtYmx5KSB9OworCitKU1dlYkFz
c2VtYmx5KiBKU1dlYkFzc2VtYmx5OjpjcmVhdGUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKK3sKKyAgICBhdXRvKiBvYmplY3QgPSBu
ZXcgKE5vdE51bGwsIGFsbG9jYXRlQ2VsbDxKU1dlYkFzc2VtYmx5Pih2bS5oZWFwKSkgSlNXZWJB
c3NlbWJseSh2bSwgc3RydWN0dXJlKTsKKyAgICBvYmplY3QtPmZpbmlzaENyZWF0aW9uKHZtLCBn
bG9iYWxPYmplY3QpOworICAgIHJldHVybiBvYmplY3Q7Cit9CisKK1N0cnVjdHVyZSogSlNXZWJB
c3NlbWJseTo6Y3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCit7CisgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRl
KHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0
dXJlRmxhZ3MpLCBpbmZvKCkpOworfQorCit2b2lkIEpTV2ViQXNzZW1ibHk6OmZpbmlzaENyZWF0
aW9uKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqKQoreworICAgIEJhc2U6OmZpbmlzaENyZWF0aW9u
KHZtKTsKKyAgICBBU1NFUlQoaW5oZXJpdHMoaW5mbygpKSk7Cit9CisKK0pTV2ViQXNzZW1ibHk6
OkpTV2ViQXNzZW1ibHkoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKKyAgICA6IEpTTm9u
RmluYWxPYmplY3Qodm0sIHN0cnVjdHVyZSkKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgSlNDCisK
KyNlbmRpZiAvLyBFTkFCTEUoV0VCQVNTRU1CTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9KU1dlYkFzc2VtYmx5LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9KU1dlYkFzc2VtYmx5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTcx
YTE1YQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL0pTV2Vi
QXNzZW1ibHkuaApAQCAtMCwwICsxLDcxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFkp
CisKKyNpbmNsdWRlICJKU09iamVjdC5oIgorI2luY2x1ZGUgImpzL0pTV2ViQXNzZW1ibHlDb21w
aWxlRXJyb3IuaCIKKyNpbmNsdWRlICJqcy9KU1dlYkFzc2VtYmx5SW5zdGFuY2UuaCIKKyNpbmNs
dWRlICJqcy9KU1dlYkFzc2VtYmx5TWVtb3J5LmgiCisjaW5jbHVkZSAianMvSlNXZWJBc3NlbWJs
eU1vZHVsZS5oIgorI2luY2x1ZGUgImpzL0pTV2ViQXNzZW1ibHlSdW50aW1lRXJyb3IuaCIKKyNp
bmNsdWRlICJqcy9KU1dlYkFzc2VtYmx5VGFibGUuaCIKKyNpbmNsdWRlICJqcy9XZWJBc3NlbWJs
eUNvbXBpbGVFcnJvckNvbnN0cnVjdG9yLmgiCisjaW5jbHVkZSAianMvV2ViQXNzZW1ibHlDb21w
aWxlRXJyb3JQcm90b3R5cGUuaCIKKyNpbmNsdWRlICJqcy9XZWJBc3NlbWJseUluc3RhbmNlQ29u
c3RydWN0b3IuaCIKKyNpbmNsdWRlICJqcy9XZWJBc3NlbWJseUluc3RhbmNlUHJvdG90eXBlLmgi
CisjaW5jbHVkZSAianMvV2ViQXNzZW1ibHlNZW1vcnlDb25zdHJ1Y3Rvci5oIgorI2luY2x1ZGUg
ImpzL1dlYkFzc2VtYmx5TWVtb3J5UHJvdG90eXBlLmgiCisjaW5jbHVkZSAianMvV2ViQXNzZW1i
bHlNb2R1bGVDb25zdHJ1Y3Rvci5oIgorI2luY2x1ZGUgImpzL1dlYkFzc2VtYmx5TW9kdWxlUHJv
dG90eXBlLmgiCisjaW5jbHVkZSAianMvV2ViQXNzZW1ibHlQcm90b3R5cGUuaCIKKyNpbmNsdWRl
ICJqcy9XZWJBc3NlbWJseVJ1bnRpbWVFcnJvckNvbnN0cnVjdG9yLmgiCisjaW5jbHVkZSAianMv
V2ViQXNzZW1ibHlSdW50aW1lRXJyb3JQcm90b3R5cGUuaCIKKyNpbmNsdWRlICJqcy9XZWJBc3Nl
bWJseVRhYmxlQ29uc3RydWN0b3IuaCIKKyNpbmNsdWRlICJqcy9XZWJBc3NlbWJseVRhYmxlUHJv
dG90eXBlLmgiCisKK25hbWVzcGFjZSBKU0MgeworCitjbGFzcyBKU1dlYkFzc2VtYmx5IDogcHVi
bGljIEpTTm9uRmluYWxPYmplY3QgeworcHVibGljOgorICAgIHR5cGVkZWYgSlNOb25GaW5hbE9i
amVjdCBCYXNlOworCisgICAgc3RhdGljIEpTV2ViQXNzZW1ibHkqIGNyZWF0ZShWTSYsIEpTR2xv
YmFsT2JqZWN0KiwgU3RydWN0dXJlKik7CisgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3Ry
dWN0dXJlKFZNJiwgSlNHbG9iYWxPYmplY3QqLCBKU1ZhbHVlKTsKKworICAgIERFQ0xBUkVfSU5G
TzsKKworcHJvdGVjdGVkOgorICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oVk0mLCBKU0dsb2JhbE9i
amVjdCopOworCitwcml2YXRlOgorICAgIEpTV2ViQXNzZW1ibHkoVk0mLCBTdHJ1Y3R1cmUqKTsK
K307CisKK30gLy8gbmFtZXNwYWNlIEpTQworCisjZW5kaWYgLy8gRU5BQkxFKFdFQkFTU0VNQkxZ
KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2ViQXNzZW1ibHlPYmpl
Y3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2ViQXNzZW1ibHlPYmplY3QuY3Bw
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5MzcyZmI0Li4wMDAwMDAwCi0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dlYkFzc2VtYmx5T2JqZWN0LmNwcAorKysgL2Rldi9u
dWxsCkBAIC0xLDExMyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwot
ICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0g
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIldlYkFzc2VtYmx5T2Jq
ZWN0LmgiCi0KLSNpbmNsdWRlICJGdW5jdGlvblByb3RvdHlwZS5oIgotI2luY2x1ZGUgIkpTQ0lu
bGluZXMuaCIKLSNpbmNsdWRlICJqcy9KU1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yLmgiCi0jaW5j
bHVkZSAianMvSlNXZWJBc3NlbWJseUluc3RhbmNlLmgiCi0jaW5jbHVkZSAianMvSlNXZWJBc3Nl
bWJseU1lbW9yeS5oIgotI2luY2x1ZGUgImpzL0pTV2ViQXNzZW1ibHlNb2R1bGUuaCIKLSNpbmNs
dWRlICJqcy9KU1dlYkFzc2VtYmx5UnVudGltZUVycm9yLmgiCi0jaW5jbHVkZSAianMvSlNXZWJB
c3NlbWJseVRhYmxlLmgiCi0jaW5jbHVkZSAianMvV2ViQXNzZW1ibHlDb21waWxlRXJyb3JDb25z
dHJ1Y3Rvci5oIgotI2luY2x1ZGUgImpzL1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yUHJvdG90eXBl
LmgiCi0jaW5jbHVkZSAianMvV2ViQXNzZW1ibHlJbnN0YW5jZUNvbnN0cnVjdG9yLmgiCi0jaW5j
bHVkZSAianMvV2ViQXNzZW1ibHlJbnN0YW5jZVByb3RvdHlwZS5oIgotI2luY2x1ZGUgImpzL1dl
YkFzc2VtYmx5TWVtb3J5Q29uc3RydWN0b3IuaCIKLSNpbmNsdWRlICJqcy9XZWJBc3NlbWJseU1l
bW9yeVByb3RvdHlwZS5oIgotI2luY2x1ZGUgImpzL1dlYkFzc2VtYmx5TW9kdWxlQ29uc3RydWN0
b3IuaCIKLSNpbmNsdWRlICJqcy9XZWJBc3NlbWJseU1vZHVsZVByb3RvdHlwZS5oIgotI2luY2x1
ZGUgImpzL1dlYkFzc2VtYmx5UnVudGltZUVycm9yQ29uc3RydWN0b3IuaCIKLSNpbmNsdWRlICJq
cy9XZWJBc3NlbWJseVJ1bnRpbWVFcnJvclByb3RvdHlwZS5oIgotI2luY2x1ZGUgImpzL1dlYkFz
c2VtYmx5VGFibGVDb25zdHJ1Y3Rvci5oIgotI2luY2x1ZGUgImpzL1dlYkFzc2VtYmx5VGFibGVQ
cm90b3R5cGUuaCIKLQotbmFtZXNwYWNlIEpTQyB7Ci0KLVNUQVRJQ19BU1NFUlRfSVNfVFJJVklB
TExZX0RFU1RSVUNUSUJMRShXZWJBc3NlbWJseU9iamVjdCk7Ci0KLSNkZWZpbmUgREVDTEFSRV9X
QVNNX09CSkVDVF9GVU5DVElPTihOQU1FLCAuLi4pIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgd2FzbU9iamVjdEZ1bmMgIyMgTkFNRShFeGVjU3RhdGUqKTsKLUZPUl9FQUNIX1dBU01fRlVO
Q1RJT05fUFJPUEVSVFkoREVDTEFSRV9XQVNNX09CSkVDVF9GVU5DVElPTikKLQotY29uc3QgQ2xh
c3NJbmZvIFdlYkFzc2VtYmx5T2JqZWN0OjpzX2luZm8gPSB7ICJXZWJBc3NlbWJseSIsICZCYXNl
OjpzX2luZm8sIDAsIENSRUFURV9NRVRIT0RfVEFCTEUoV2ViQXNzZW1ibHlPYmplY3QpIH07Ci0K
LVdlYkFzc2VtYmx5T2JqZWN0KiBXZWJBc3NlbWJseU9iamVjdDo6Y3JlYXRlKFZNJiB2bSwgSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCi17Ci0gICAg
YXV0byogb2JqZWN0ID0gbmV3IChOb3ROdWxsLCBhbGxvY2F0ZUNlbGw8V2ViQXNzZW1ibHlPYmpl
Y3Q+KHZtLmhlYXApKSBXZWJBc3NlbWJseU9iamVjdCh2bSwgc3RydWN0dXJlKTsKLSAgICBvYmpl
Y3QtPmZpbmlzaENyZWF0aW9uKHZtLCBnbG9iYWxPYmplY3QpOwotICAgIHJldHVybiBvYmplY3Q7
Ci19Ci0KLVN0cnVjdHVyZSogV2ViQXNzZW1ibHlPYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZShWTSYg
dm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKQotewot
ICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUs
IFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKLX0KLQotdm9p
ZCBXZWJBc3NlbWJseU9iamVjdDo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0KQotewotICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtKTsKLSAgICBB
U1NFUlQoaW5oZXJpdHMoaW5mbygpKSk7Ci0KLSNkZWZpbmUgU0VUX1VQX1dBU01fQ09OU1RSVUNU
T1JfUFJPUEVSVFkoTkFNRSwgLi4uKSBcCi0gICAgYXV0byogcHJvdG90eXBlICMjIE5BTUUgPSBX
ZWJBc3NlbWJseSAjIyBOQU1FICMjIFByb3RvdHlwZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3Qs
IFdlYkFzc2VtYmx5ICMjIE5BTUUgIyMgUHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUodm0sIGds
b2JhbE9iamVjdCwgZ2xvYmFsT2JqZWN0LT5vYmplY3RQcm90b3R5cGUoKSkpOyBcCi0gICAgYXV0
byogc3RydWN0dXJlICMjIE5BTUUgPSBKU1dlYkFzc2VtYmx5ICMjIE5BTUU6OmNyZWF0ZVN0cnVj
dHVyZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUgIyMgTkFNRSk7IFwKLSAgICBhdXRvKiBj
b25zdHJ1Y3RvciAjIyBOQU1FID0gV2ViQXNzZW1ibHkgIyMgTkFNRSAjIyBDb25zdHJ1Y3Rvcjo6
Y3JlYXRlKHZtLCBXZWJBc3NlbWJseSAjIyBOQU1FICMjIENvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1
Y3R1cmUodm0sIGdsb2JhbE9iamVjdCwgZ2xvYmFsT2JqZWN0LT5mdW5jdGlvblByb3RvdHlwZSgp
KSwgcHJvdG90eXBlICMjIE5BTUUsIHN0cnVjdHVyZSAjIyBOQU1FKTsgXAotICAgIHByb3RvdHlw
ZSAjIyBOQU1FLT5wdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1l
cy0+Y29uc3RydWN0b3IsIGNvbnN0cnVjdG9yICMjIE5BTUUsIERvbnRFbnVtKTsKLSAgICBGT1Jf
RUFDSF9XQVNNX0NPTlNUUlVDVE9SX1BST1BFUlRZKFNFVF9VUF9XQVNNX0NPTlNUUlVDVE9SX1BS
T1BFUlRZKQotCi0jZGVmaW5lIFJFR0lTVEVSX1dBU01fQ09OU1RSVUNUT1JfUFJPUEVSVFkoTkFN
RSwgLi4uKSBcCi0gICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIElkZW50aWZpZXI6
OmZyb21TdHJpbmcoZ2xvYmFsT2JqZWN0LT5nbG9iYWxFeGVjKCksICNOQU1FKSwgY29uc3RydWN0
b3IgIyMgTkFNRSwgRG9udEVudW0pOwotICAgIEZPUl9FQUNIX1dBU01fQ09OU1RSVUNUT1JfUFJP
UEVSVFkoUkVHSVNURVJfV0FTTV9DT05TVFJVQ1RPUl9QUk9QRVJUWSkKLQotI2RlZmluZSBSRUdJ
U1RFUl9XQVNNX0ZVTkNUSU9OX1BST1BFUlRZKE5BTUUsIExFTkdUSCkgXAotICAgIHB1dERpcmVj
dE5hdGl2ZUZ1bmN0aW9uKHZtLCBnbG9iYWxPYmplY3QsIElkZW50aWZpZXI6OmZyb21TdHJpbmco
JnZtLCAjTkFNRSksIExFTkdUSCwgd2FzbU9iamVjdEZ1bmMgIyMgTkFNRSwgTm9JbnRyaW5zaWMs
IERvbnRFbnVtKTsKLSAgICBGT1JfRUFDSF9XQVNNX0ZVTkNUSU9OX1BST1BFUlRZKFJFR0lTVEVS
X1dBU01fRlVOQ1RJT05fUFJPUEVSVFkpCi19Ci0KLVdlYkFzc2VtYmx5T2JqZWN0OjpXZWJBc3Nl
bWJseU9iamVjdChWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQotICAgIDogSlNOb25GaW5h
bE9iamVjdCh2bSwgc3RydWN0dXJlKQotewotfQotCi0vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0gRnVuY3Rpb25zIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLUVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgd2FzbU9iamVjdEZ1bmN2YWxpZGF0ZShFeGVjU3Rh
dGUqIHN0YXRlKQotewotICAgIFZNJiB2bSA9IHN0YXRlLT52bSgpOwotICAgIGF1dG8gc2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRo
cm93RXhjZXB0aW9uKHN0YXRlLCBzY29wZSwgY3JlYXRlRXJyb3Ioc3RhdGUsIEFTQ0lJTGl0ZXJh
bCgiV2ViQXNzZW1ibHkgZG9lc24ndCB5ZXQgaW1wbGVtZW50IHRoZSB2YWxpZGF0ZSBmdW5jdGlv
biBwcm9wZXJ0eSIpKSkpOwotfQotCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHdhc21P
YmplY3RGdW5jY29tcGlsZShFeGVjU3RhdGUqIHN0YXRlKQotewotICAgIFZNJiB2bSA9IHN0YXRl
LT52bSgpOwotICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKLSAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRocm93RXhjZXB0aW9uKHN0YXRlLCBzY29wZSwgY3JlYXRl
RXJyb3Ioc3RhdGUsIEFTQ0lJTGl0ZXJhbCgiV2ViQXNzZW1ibHkgZG9lc24ndCB5ZXQgaW1wbGVt
ZW50IHRoZSBjb21waWxlIGZ1bmN0aW9uIHByb3BlcnR5IikpKSk7Ci19Ci0KLX0gLy8gbmFtZXNw
YWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJB
c3NlbWJseUNvbXBpbGVFcnJvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9K
U1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yLmNwcAppbmRleCAzMmUxMzZhLi4wMmZmODg1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5Q29tcGls
ZUVycm9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2Vt
Ymx5Q29tcGlsZUVycm9yLmNwcApAQCAtMjYsNiArMjYsOCBAQAogI2luY2x1ZGUgImNvbmZpZy5o
IgogI2luY2x1ZGUgIkpTV2ViQXNzZW1ibHlDb21waWxlRXJyb3IuaCIKIAorI2lmIEVOQUJMRShX
RUJBU1NFTUJMWSkKKwogI2luY2x1ZGUgIkpTQ0lubGluZXMuaCIKIAogbmFtZXNwYWNlIEpTQyB7
CkBAIC00NiwzICs0OCw1IEBAIEpTV2ViQXNzZW1ibHlDb21waWxlRXJyb3I6OkpTV2ViQXNzZW1i
bHlDb21waWxlRXJyb3IoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyCiBjb25zdCBDbGFzc0lu
Zm8gSlNXZWJBc3NlbWJseUNvbXBpbGVFcnJvcjo6c19pbmZvID0geyAiV2ViQXNzZW1ibHkuQ29t
cGlsZUVycm9yIiwgJkJhc2U6OnNfaW5mbywgMCwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1dlYkFz
c2VtYmx5Q29tcGlsZUVycm9yKSB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKKworI2VuZGlmIC8v
IEVOQUJMRShXRUJBU1NFTUJMWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL2pzL0pTV2ViQXNzZW1ibHlDb21waWxlRXJyb3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlDb21waWxlRXJyb3IuaAppbmRleCAxYTc3ZWZiLi42NTZi
OGQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2Vt
Ymx5Q29tcGlsZUVycm9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNX
ZWJBc3NlbWJseUNvbXBpbGVFcnJvci5oCkBAIC0yNSw2ICsyNSw4IEBACiAKICNwcmFnbWEgb25j
ZQogCisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQorCiAjaW5jbHVkZSAiRXJyb3JJbnN0YW5jZS5o
IgogCiBuYW1lc3BhY2UgSlNDIHsKQEAgLTM0LDYgKzM2LDEwIEBAIHB1YmxpYzoKICAgICB0eXBl
ZGVmIEVycm9ySW5zdGFuY2UgQmFzZTsKIAogICAgIHN0YXRpYyBKU1dlYkFzc2VtYmx5Q29tcGls
ZUVycm9yKiBjcmVhdGUoRXhlY1N0YXRlKiwgU3RydWN0dXJlKiwgY29uc3QgU3RyaW5nJiwgYm9v
bCk7CisgICAgc3RhdGljIEpTV2ViQXNzZW1ibHlDb21waWxlRXJyb3IqIGNyZWF0ZShFeGVjU3Rh
dGUqIGV4ZWMsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBKU1ZhbHVlIG1lc3NhZ2UsIGJvb2wgdXNl
Q3VycmVudEZyYW1lKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGNyZWF0ZShleGVjLCBzdHJ1Y3R1
cmUsIG1lc3NhZ2UuaXNVbmRlZmluZWQoKSA/IFN0cmluZygpIDogbWVzc2FnZS50b1N0cmluZyhl
eGVjKS0+dmFsdWUoZXhlYyksIHVzZUN1cnJlbnRGcmFtZSk7CisgICAgfQogCiAgICAgREVDTEFS
RV9JTkZPOwogCkBAIC00MiwzICs0OCw1IEBAIHByb3RlY3RlZDoKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIEpTQworCisjZW5kaWYgLy8gRU5BQkxFKFdFQkFTU0VNQkxZKQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseUluc3RhbmNlLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlJbnN0YW5jZS5jcHAKaW5k
ZXggYmQxNTliYi4uYjFkYTRlMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vanMvSlNXZWJBc3NlbWJseUluc3RhbmNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5SW5zdGFuY2UuY3BwCkBAIC0yNiw2ICsyNiw4IEBACiAj
aW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSlNXZWJBc3NlbWJseUluc3RhbmNlLmgiCiAK
KyNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCisKICNpbmNsdWRlICJKU0NJbmxpbmVzLmgiCiAKIG5h
bWVzcGFjZSBKU0MgewpAQCAtNjksMyArNzEsNSBAQCB2b2lkIEpTV2ViQXNzZW1ibHlJbnN0YW5j
ZTo6dmlzaXRDaGlsZHJlbihKU0NlbGwqIGNlbGwsIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQogY29u
c3QgQ2xhc3NJbmZvIEpTV2ViQXNzZW1ibHlJbnN0YW5jZTo6c19pbmZvID0geyAiV2ViQXNzZW1i
bHkuSW5zdGFuY2UiLCAmQmFzZTo6c19pbmZvLCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTV2Vi
QXNzZW1ibHlJbnN0YW5jZSkgfTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCisKKyNlbmRpZiAvLyBF
TkFCTEUoV0VCQVNTRU1CTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9qcy9KU1dlYkFzc2VtYmx5SW5zdGFuY2UuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L2pzL0pTV2ViQXNzZW1ibHlJbnN0YW5jZS5oCmluZGV4IGRhNGJmODAuLmIyMWU0NWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlJbnN0YW5j
ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlJbnN0
YW5jZS5oCkBAIC0yNSw2ICsyNSw4IEBACiAKICNwcmFnbWEgb25jZQogCisjaWYgRU5BQkxFKFdF
QkFTU0VNQkxZKQorCiAjaW5jbHVkZSAiSlNEZXN0cnVjdGlibGVPYmplY3QuaCIKICNpbmNsdWRl
ICJKU09iamVjdC5oIgogCkBAIC00NywzICs0OSw1IEBAIHByb3RlY3RlZDoKIH07CiAKIH0gLy8g
bmFtZXNwYWNlIEpTQworCisjZW5kaWYgLy8gRU5BQkxFKFdFQkFTU0VNQkxZKQpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseU1lbW9yeS5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5TWVtb3J5LmNwcApp
bmRleCA2YTQ2NWRlLi5kNTZhMmM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9qcy9KU1dlYkFzc2VtYmx5TWVtb3J5LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5TWVtb3J5LmNwcApAQCAtMjYsNiArMjYsOCBAQAogI2lu
Y2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkpTV2ViQXNzZW1ibHlNZW1vcnkuaCIKIAorI2lm
IEVOQUJMRShXRUJBU1NFTUJMWSkKKwogI2luY2x1ZGUgIkpTQ0lubGluZXMuaCIKIAogbmFtZXNw
YWNlIEpTQyB7CkBAIC02OSwzICs3MSw1IEBAIHZvaWQgSlNXZWJBc3NlbWJseU1lbW9yeTo6dmlz
aXRDaGlsZHJlbihKU0NlbGwqIGNlbGwsIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQogY29uc3QgQ2xh
c3NJbmZvIEpTV2ViQXNzZW1ibHlNZW1vcnk6OnNfaW5mbyA9IHsgIldlYkFzc2VtYmx5Lk1lbW9y
eSIsICZCYXNlOjpzX2luZm8sIDAsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNXZWJBc3NlbWJseU1l
bW9yeSkgfTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCQVNT
RU1CTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFz
c2VtYmx5TWVtb3J5LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2Vt
Ymx5TWVtb3J5LmgKaW5kZXggYTk2NWE5OS4uYjM2MTg3YiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseU1lbW9yeS5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlNZW1vcnkuaApAQCAtMjUsNiArMjUs
OCBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKKwogI2luY2x1
ZGUgIkpTRGVzdHJ1Y3RpYmxlT2JqZWN0LmgiCiAjaW5jbHVkZSAiSlNPYmplY3QuaCIKIApAQCAt
NDcsMyArNDksNSBAQCBwcm90ZWN0ZWQ6CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKKworI2Vu
ZGlmIC8vIEVOQUJMRShXRUJBU1NFTUJMWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlNb2R1bGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vanMvSlNXZWJBc3NlbWJseU1vZHVsZS5jcHAKaW5kZXggZWRjNTRjYy4uZjI4YTRm
YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJs
eU1vZHVsZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3Nl
bWJseU1vZHVsZS5jcHAKQEAgLTI2LDYgKzI2LDggQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNp
bmNsdWRlICJKU1dlYkFzc2VtYmx5TW9kdWxlLmgiCiAKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFkp
CisKICNpbmNsdWRlICJKU0NJbmxpbmVzLmgiCiAKIG5hbWVzcGFjZSBKU0MgewpAQCAtNjksMyAr
NzEsNSBAQCB2b2lkIEpTV2ViQXNzZW1ibHlNb2R1bGU6OnZpc2l0Q2hpbGRyZW4oSlNDZWxsKiBj
ZWxsLCBTbG90VmlzaXRvciYgdmlzaXRvcikKIGNvbnN0IENsYXNzSW5mbyBKU1dlYkFzc2VtYmx5
TW9kdWxlOjpzX2luZm8gPSB7ICJXZWJBc3NlbWJseS5Nb2R1bGUiLCAmQmFzZTo6c19pbmZvLCAw
LCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTV2ViQXNzZW1ibHlNb2R1bGUpIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIEpTQworCisjZW5kaWYgLy8gRU5BQkxFKFdFQkFTU0VNQkxZKQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseU1vZHVsZS5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseU1vZHVsZS5oCmluZGV4IDc3
MjMyMTEuLmJlN2Y2OTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pz
L0pTV2ViQXNzZW1ibHlNb2R1bGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9q
cy9KU1dlYkFzc2VtYmx5TW9kdWxlLmgKQEAgLTI1LDYgKzI1LDggQEAKIAogI3ByYWdtYSBvbmNl
CiAKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCisKICNpbmNsdWRlICJKU0Rlc3RydWN0aWJsZU9i
amVjdC5oIgogI2luY2x1ZGUgIkpTT2JqZWN0LmgiCiAKQEAgLTQ3LDMgKzQ5LDUgQEAgcHJvdGVj
dGVkOgogfTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCQVNT
RU1CTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFz
c2VtYmx5UnVudGltZUVycm9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pT
V2ViQXNzZW1ibHlSdW50aW1lRXJyb3IuY3BwCmluZGV4IDhjZTJlNzkuLjMxMjFlZmIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlSdW50aW1l
RXJyb3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1i
bHlSdW50aW1lRXJyb3IuY3BwCkBAIC0yNiw2ICsyNiw4IEBACiAjaW5jbHVkZSAiY29uZmlnLmgi
CiAjaW5jbHVkZSAiSlNXZWJBc3NlbWJseVJ1bnRpbWVFcnJvci5oIgogCisjaWYgRU5BQkxFKFdF
QkFTU0VNQkxZKQorCiAjaW5jbHVkZSAiSlNDSW5saW5lcy5oIgogCiBuYW1lc3BhY2UgSlNDIHsK
QEAgLTQ2LDMgKzQ4LDUgQEAgSlNXZWJBc3NlbWJseVJ1bnRpbWVFcnJvcjo6SlNXZWJBc3NlbWJs
eVJ1bnRpbWVFcnJvcihWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXIKIGNvbnN0IENsYXNzSW5m
byBKU1dlYkFzc2VtYmx5UnVudGltZUVycm9yOjpzX2luZm8gPSB7ICJXZWJBc3NlbWJseS5SdW50
aW1lRXJyb3IiLCAmQmFzZTo6c19pbmZvLCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTV2ViQXNz
ZW1ibHlSdW50aW1lRXJyb3IpIH07CiAKIH0gLy8gbmFtZXNwYWNlIEpTQworCisjZW5kaWYgLy8g
RU5BQkxFKFdFQkFTU0VNQkxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vanMvSlNXZWJBc3NlbWJseVJ1bnRpbWVFcnJvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vanMvSlNXZWJBc3NlbWJseVJ1bnRpbWVFcnJvci5oCmluZGV4IGMxMmExZmEuLjdlYmU3
YzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1i
bHlSdW50aW1lRXJyb3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dl
YkFzc2VtYmx5UnVudGltZUVycm9yLmgKQEAgLTI1LDYgKzI1LDggQEAKIAogI3ByYWdtYSBvbmNl
CiAKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCisKICNpbmNsdWRlICJFcnJvckluc3RhbmNlLmgi
CiAKIG5hbWVzcGFjZSBKU0MgewpAQCAtMzQsNiArMzYsMTAgQEAgcHVibGljOgogICAgIHR5cGVk
ZWYgRXJyb3JJbnN0YW5jZSBCYXNlOwogCiAgICAgc3RhdGljIEpTV2ViQXNzZW1ibHlSdW50aW1l
RXJyb3IqIGNyZWF0ZShFeGVjU3RhdGUqLCBTdHJ1Y3R1cmUqLCBjb25zdCBTdHJpbmcmLCBib29s
KTsKKyAgICBzdGF0aWMgSlNXZWJBc3NlbWJseVJ1bnRpbWVFcnJvciogY3JlYXRlKEV4ZWNTdGF0
ZSogZXhlYywgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTVmFsdWUgbWVzc2FnZSwgYm9vbCB1c2VD
dXJyZW50RnJhbWUpCisgICAgeworICAgICAgICByZXR1cm4gY3JlYXRlKGV4ZWMsIHN0cnVjdHVy
ZSwgbWVzc2FnZS5pc1VuZGVmaW5lZCgpID8gU3RyaW5nKCkgOiBtZXNzYWdlLnRvU3RyaW5nKGV4
ZWMpLT52YWx1ZShleGVjKSwgdXNlQ3VycmVudEZyYW1lKTsKKyAgICB9CiAKICAgICBERUNMQVJF
X0lORk87CiAKQEAgLTQyLDMgKzQ4LDUgQEAgcHJvdGVjdGVkOgogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgSlNDCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCQVNTRU1CTFkpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5VGFibGUuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseVRhYmxlLmNwcAppbmRleCAyM2Q1
MjU4Li5jYjVlOTE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9K
U1dlYkFzc2VtYmx5VGFibGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pz
L0pTV2ViQXNzZW1ibHlUYWJsZS5jcHAKQEAgLTI2LDYgKzI2LDggQEAKICNpbmNsdWRlICJjb25m
aWcuaCIKICNpbmNsdWRlICJKU1dlYkFzc2VtYmx5VGFibGUuaCIKIAorI2lmIEVOQUJMRShXRUJB
U1NFTUJMWSkKKwogI2luY2x1ZGUgIkpTQ0lubGluZXMuaCIKIAogbmFtZXNwYWNlIEpTQyB7CkBA
IC02OSwzICs3MSw1IEBAIHZvaWQgSlNXZWJBc3NlbWJseVRhYmxlOjp2aXNpdENoaWxkcmVuKEpT
Q2VsbCogY2VsbCwgU2xvdFZpc2l0b3ImIHZpc2l0b3IpCiBjb25zdCBDbGFzc0luZm8gSlNXZWJB
c3NlbWJseVRhYmxlOjpzX2luZm8gPSB7ICJXZWJBc3NlbWJseS5UYWJsZSIsICZCYXNlOjpzX2lu
Zm8sIDAsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNXZWJBc3NlbWJseVRhYmxlKSB9OwogCiB9IC8v
IG5hbWVzcGFjZSBKU0MKKworI2VuZGlmIC8vIEVOQUJMRShXRUJBU1NFTUJMWSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlUYWJsZS5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseVRhYmxlLmgKaW5kZXgg
ZDM5OWY5ZS4uMDFlNjhkZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
anMvSlNXZWJBc3NlbWJseVRhYmxlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
anMvSlNXZWJBc3NlbWJseVRhYmxlLmgKQEAgLTI1LDYgKzI1LDggQEAKIAogI3ByYWdtYSBvbmNl
CiAKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCisKICNpbmNsdWRlICJKU0Rlc3RydWN0aWJsZU9i
amVjdC5oIgogI2luY2x1ZGUgIkpTT2JqZWN0LmgiCiAKQEAgLTQ3LDMgKzQ5LDUgQEAgcHJvdGVj
dGVkOgogfTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCQVNT
RU1CTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3Nl
bWJseUNvbXBpbGVFcnJvckNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL2pzL1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yQ29uc3RydWN0b3IuY3BwCmluZGV4IGQxNzg2
NGMuLjY3ZTZkOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dl
YkFzc2VtYmx5Q29tcGlsZUVycm9yQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yQ29uc3RydWN0b3IuY3BwCkBA
IC0yNiw4ICsyNiwxMSBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIldlYkFzc2Vt
Ymx5Q29tcGlsZUVycm9yQ29uc3RydWN0b3IuaCIKIAorI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkK
KwogI2luY2x1ZGUgIkZ1bmN0aW9uUHJvdG90eXBlLmgiCiAjaW5jbHVkZSAiSlNDSW5saW5lcy5o
IgorI2luY2x1ZGUgIkpTV2ViQXNzZW1ibHlDb21waWxlRXJyb3IuaCIKICNpbmNsdWRlICJXZWJB
c3NlbWJseUNvbXBpbGVFcnJvclByb3RvdHlwZS5oIgogCiAjaW5jbHVkZSAiV2ViQXNzZW1ibHlD
b21waWxlRXJyb3JDb25zdHJ1Y3Rvci5sdXQuaCIKQEAgLTQzLDkgKzQ2LDEyIEBAIGNvbnN0IENs
YXNzSW5mbyBXZWJBc3NlbWJseUNvbXBpbGVFcnJvckNvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJG
dW5jdGlvbiIsICZCYXNlCiAKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNv
bnN0cnVjdEpTV2ViQXNzZW1ibHlDb21waWxlRXJyb3IoRXhlY1N0YXRlKiBzdGF0ZSkKIHsKLSAg
ICBWTSYgdm0gPSBzdGF0ZS0+dm0oKTsKKyAgICBhdXRvJiB2bSA9IHN0YXRlLT52bSgpOwogICAg
IGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKLSAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKHRocm93RXhjZXB0aW9uKHN0YXRlLCBzY29wZSwgY3JlYXRlRXJyb3Ioc3RhdGUs
IEFTQ0lJTGl0ZXJhbCgiV2ViQXNzZW1ibHkgZG9lc24ndCB5ZXQgaW1wbGVtZW50IHRoZSBDb21w
aWxlRXJyb3IgY29uc3RydWN0b3IgcHJvcGVydHkiKSkpKTsKKyAgICBKU1ZhbHVlIG1lc3NhZ2Ug
PSBzdGF0ZS0+YXJndW1lbnRDb3VudCgpID8gc3RhdGUtPmFyZ3VtZW50KDApIDoganNVbmRlZmlu
ZWQoKTsKKyAgICBhdXRvKiBzdHJ1Y3R1cmUgPSBJbnRlcm5hbEZ1bmN0aW9uOjpjcmVhdGVTdWJj
bGFzc1N0cnVjdHVyZShzdGF0ZSwgc3RhdGUtPm5ld1RhcmdldCgpLCBhc0ludGVybmFsRnVuY3Rp
b24oc3RhdGUtPmNhbGxlZSgpKS0+Z2xvYmFsT2JqZWN0KCktPldlYkFzc2VtYmx5Q29tcGlsZUVy
cm9yU3RydWN0dXJlKCkpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGVuY29kZWRK
U1ZhbHVlKCkpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNXZWJBc3NlbWJseUNvbXBp
bGVFcnJvcjo6Y3JlYXRlKHN0YXRlLCBzdHJ1Y3R1cmUsIG1lc3NhZ2UsIGZhbHNlKSk7CiB9CiAK
IHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxKU1dlYkFzc2VtYmx5Q29t
cGlsZUVycm9yKEV4ZWNTdGF0ZSogc3RhdGUpCkBAIC02NywxMiArNzMsMTEgQEAgU3RydWN0dXJl
KiBXZWJBc3NlbWJseUNvbXBpbGVFcnJvckNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUoVk0m
IHZtLCBKU0dsb2JhbE8KICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9i
amVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGlu
Zm8oKSk7CiB9CiAKLXZvaWQgV2ViQXNzZW1ibHlDb21waWxlRXJyb3JDb25zdHJ1Y3Rvcjo6Zmlu
aXNoQ3JlYXRpb24oVk0mIHZtLCBXZWJBc3NlbWJseUNvbXBpbGVFcnJvclByb3RvdHlwZSogcHJv
dG90eXBlLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKK3ZvaWQgV2ViQXNzZW1ibHlDb21waWxlRXJy
b3JDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBXZWJBc3NlbWJseUNvbXBpbGVF
cnJvclByb3RvdHlwZSogcHJvdG90eXBlLCBTdHJ1Y3R1cmUqKQogewogICAgIEJhc2U6OmZpbmlz
aENyZWF0aW9uKHZtLCBBU0NJSUxpdGVyYWwoIkNvbXBpbGVFcnJvciIpKTsKLSAgICBwdXREaXJl
Y3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+cHJvdG90eXBlLCBwcm90
b3R5cGUsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KTsKKyAgICBwdXREaXJlY3RX
aXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+cHJvdG90eXBlLCBwcm90b3R5
cGUsIFJlYWRPbmx5IHwgRG9udEVudW0gfCBEb250RGVsZXRlKTsKICAgICBwdXREaXJlY3RXaXRo
b3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+bGVuZ3RoLCBqc051bWJlcigxKSwg
UmVhZE9ubHkgfCBEb250RW51bSB8IERvbnREZWxldGUpOwotICAgIG1fQ29tcGlsZUVycm9yU3Ry
dWN0dXJlLnNldCh2bSwgdGhpcywgc3RydWN0dXJlKTsKIH0KIAogV2ViQXNzZW1ibHlDb21waWxl
RXJyb3JDb25zdHJ1Y3Rvcjo6V2ViQXNzZW1ibHlDb21waWxlRXJyb3JDb25zdHJ1Y3RvcihWTSYg
dm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQpAQCAtOTIsMTIgKzk3LDYgQEAgQ2FsbFR5cGUgV2Vi
QXNzZW1ibHlDb21waWxlRXJyb3JDb25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2Fs
bERhdGEmIGNhbGwKICAgICByZXR1cm4gQ2FsbFR5cGU6Okhvc3Q7CiB9CiAKLXZvaWQgV2ViQXNz
ZW1ibHlDb21waWxlRXJyb3JDb25zdHJ1Y3Rvcjo6dmlzaXRDaGlsZHJlbihKU0NlbGwqIGNlbGws
IFNsb3RWaXNpdG9yJiB2aXNpdG9yKQotewotICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8
V2ViQXNzZW1ibHlDb21waWxlRXJyb3JDb25zdHJ1Y3Rvcio+KGNlbGwpOwotICAgIEFTU0VSVF9H
Q19PQkpFQ1RfSU5IRVJJVFModGhpc09iamVjdCwgaW5mbygpKTsKLSAgICBCYXNlOjp2aXNpdENo
aWxkcmVuKHRoaXNPYmplY3QsIHZpc2l0b3IpOwotICAgIHZpc2l0b3IuYXBwZW5kKCZ0aGlzT2Jq
ZWN0LT5tX0NvbXBpbGVFcnJvclN0cnVjdHVyZSk7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIEpTQwor
CisjZW5kaWYgLy8gRU5BQkxFKFdFQkFTU0VNQkxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlDb21waWxlRXJyb3JDb25zdHJ1Y3Rvci5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlDb21waWxlRXJyb3JDb25z
dHJ1Y3Rvci5oCmluZGV4IDdhNTI0YjkuLmQ0ODU2YzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yQ29uc3RydWN0b3IuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUNvbXBpbGVFcnJv
ckNvbnN0cnVjdG9yLmgKQEAgLTI1LDYgKzI1LDggQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpZiBF
TkFCTEUoV0VCQVNTRU1CTFkpCisKICNpbmNsdWRlICJJbnRlcm5hbEZ1bmN0aW9uLmgiCiAjaW5j
bHVkZSAiSlNPYmplY3QuaCIKIApAQCAtNDIsOCArNDQsNiBAQCBwdWJsaWM6CiAKICAgICBERUNM
QVJFX0lORk87CiAKLSAgICBTdHJ1Y3R1cmUqIENvbXBpbGVFcnJvclN0cnVjdHVyZSgpIGNvbnN0
IHsgcmV0dXJuIG1fQ29tcGlsZUVycm9yU3RydWN0dXJlLmdldCgpOyB9Ci0KIHByb3RlY3RlZDoK
ICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKFZNJiwgV2ViQXNzZW1ibHlDb21waWxlRXJyb3JQcm90
b3R5cGUqLCBTdHJ1Y3R1cmUqKTsKIApAQCAtNTEsOSArNTEsOCBAQCBwcml2YXRlOgogICAgIFdl
YkFzc2VtYmx5Q29tcGlsZUVycm9yQ29uc3RydWN0b3IoVk0mLCBTdHJ1Y3R1cmUqKTsKICAgICBz
dGF0aWMgQ29uc3RydWN0VHlwZSBnZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCosIENvbnN0cnVjdERh
dGEmKTsKICAgICBzdGF0aWMgQ2FsbFR5cGUgZ2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEm
KTsKLSAgICBzdGF0aWMgdm9pZCB2aXNpdENoaWxkcmVuKEpTQ2VsbCosIFNsb3RWaXNpdG9yJik7
Ci0KLSAgICBXcml0ZUJhcnJpZXI8U3RydWN0dXJlPiBtX0NvbXBpbGVFcnJvclN0cnVjdHVyZTsK
IH07CiAKIH0gLy8gbmFtZXNwYWNlIEpTQworCisjZW5kaWYgLy8gRU5BQkxFKFdFQkFTU0VNQkxZ
KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlD
b21waWxlRXJyb3JQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMv
V2ViQXNzZW1ibHlDb21waWxlRXJyb3JQcm90b3R5cGUuY3BwCmluZGV4IDk5M2M0OTYuLjA1MjJl
MWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5
Q29tcGlsZUVycm9yUHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9qcy9XZWJBc3NlbWJseUNvbXBpbGVFcnJvclByb3RvdHlwZS5jcHAKQEAgLTI2LDYgKzI2LDgg
QEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJXZWJBc3NlbWJseUNvbXBpbGVFcnJv
clByb3RvdHlwZS5oIgogCisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQorCiAjaW5jbHVkZSAiRnVu
Y3Rpb25Qcm90b3R5cGUuaCIKICNpbmNsdWRlICJKU0NJbmxpbmVzLmgiCiAKQEAgLTYzLDMgKzY1
LDUgQEAgV2ViQXNzZW1ibHlDb21waWxlRXJyb3JQcm90b3R5cGU6OldlYkFzc2VtYmx5Q29tcGls
ZUVycm9yUHJvdG90eXBlKFZNJiB2bSwgU3RydWMKIH0KIAogfSAvLyBuYW1lc3BhY2UgSlNDCisK
KyNlbmRpZiAvLyBFTkFCTEUoV0VCQVNTRU1CTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUNvbXBpbGVFcnJvclByb3RvdHlwZS5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlDb21waWxlRXJyb3JQcm90b3R5
cGUuaAppbmRleCAxYTM5YzM2Li5kMzI5NjUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUNvbXBpbGVFcnJvclByb3RvdHlwZS5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yUHJvdG90
eXBlLmgKQEAgLTI1LDYgKzI1LDggQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpZiBFTkFCTEUoV0VC
QVNTRU1CTFkpCisKICNpbmNsdWRlICJKU0Rlc3RydWN0aWJsZU9iamVjdC5oIgogI2luY2x1ZGUg
IkpTT2JqZWN0LmgiCiAKQEAgLTQ4LDMgKzUwLDUgQEAgcHJpdmF0ZToKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIEpTQworCisjZW5kaWYgLy8gRU5BQkxFKFdFQkFTU0VNQkxZKQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlJbnN0YW5jZUNvbnN0cnVj
dG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5SW5zdGFu
Y2VDb25zdHJ1Y3Rvci5jcHAKaW5kZXggYTU2ODU1YS4uODVjZTlhYSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlJbnN0YW5jZUNvbnN0cnVjdG9y
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUluc3Rh
bmNlQ29uc3RydWN0b3IuY3BwCkBAIC0yNiw2ICsyNiw4IEBACiAjaW5jbHVkZSAiY29uZmlnLmgi
CiAjaW5jbHVkZSAiV2ViQXNzZW1ibHlJbnN0YW5jZUNvbnN0cnVjdG9yLmgiCiAKKyNpZiBFTkFC
TEUoV0VCQVNTRU1CTFkpCisKICNpbmNsdWRlICJGdW5jdGlvblByb3RvdHlwZS5oIgogI2luY2x1
ZGUgIkpTQ0lubGluZXMuaCIKICNpbmNsdWRlICJXZWJBc3NlbWJseUluc3RhbmNlUHJvdG90eXBl
LmgiCkBAIC0xMDEsMyArMTAzLDYgQEAgdm9pZCBXZWJBc3NlbWJseUluc3RhbmNlQ29uc3RydWN0
b3I6OnZpc2l0Q2hpbGRyZW4oSlNDZWxsKiBjZWxsLCBTbG90VmlzaXRvciYgdmkKIH0KIAogfSAv
LyBuYW1lc3BhY2UgSlNDCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCQVNTRU1CTFkpCisKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5SW5zdGFuY2VD
b25zdHJ1Y3Rvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlJ
bnN0YW5jZUNvbnN0cnVjdG9yLmgKaW5kZXggNzM2YmQ4Yy4uZGRkZGY3MSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlJbnN0YW5jZUNvbnN0cnVj
dG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlJbnN0
YW5jZUNvbnN0cnVjdG9yLmgKQEAgLTI1LDYgKzI1LDggQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNp
ZiBFTkFCTEUoV0VCQVNTRU1CTFkpCisKICNpbmNsdWRlICJJbnRlcm5hbEZ1bmN0aW9uLmgiCiAj
aW5jbHVkZSAiSlNPYmplY3QuaCIKIApAQCAtNTcsMyArNTksNSBAQCBwcml2YXRlOgogfTsKIAog
fSAvLyBuYW1lc3BhY2UgSlNDCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCQVNTRU1CTFkpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUluc3RhbmNl
UHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5
SW5zdGFuY2VQcm90b3R5cGUuY3BwCmluZGV4IGVkZTNjNzkuLjQ3NzdhNjEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5SW5zdGFuY2VQcm90b3R5
cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5SW5z
dGFuY2VQcm90b3R5cGUuY3BwCkBAIC0yNiw2ICsyNiw4IEBACiAjaW5jbHVkZSAiY29uZmlnLmgi
CiAjaW5jbHVkZSAiV2ViQXNzZW1ibHlJbnN0YW5jZVByb3RvdHlwZS5oIgogCisjaWYgRU5BQkxF
KFdFQkFTU0VNQkxZKQorCiAjaW5jbHVkZSAiRnVuY3Rpb25Qcm90b3R5cGUuaCIKICNpbmNsdWRl
ICJKU0NJbmxpbmVzLmgiCiAKQEAgLTYzLDMgKzY1LDUgQEAgV2ViQXNzZW1ibHlJbnN0YW5jZVBy
b3RvdHlwZTo6V2ViQXNzZW1ibHlJbnN0YW5jZVByb3RvdHlwZShWTSYgdm0sIFN0cnVjdHVyZSog
c3QKIH0KIAogfSAvLyBuYW1lc3BhY2UgSlNDCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCQVNTRU1C
TFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJs
eUluc3RhbmNlUHJvdG90eXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJB
c3NlbWJseUluc3RhbmNlUHJvdG90eXBlLmgKaW5kZXggOTNiNGFjNy4uZWJkYmU5OCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlJbnN0YW5jZVBy
b3RvdHlwZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5
SW5zdGFuY2VQcm90b3R5cGUuaApAQCAtMjUsNiArMjUsOCBAQAogCiAjcHJhZ21hIG9uY2UKIAor
I2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKKwogI2luY2x1ZGUgIkpTRGVzdHJ1Y3RpYmxlT2JqZWN0
LmgiCiAjaW5jbHVkZSAiSlNPYmplY3QuaCIKIApAQCAtNDgsMyArNTAsNSBAQCBwcml2YXRlOgog
fTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCQVNTRU1CTFkp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseU1l
bW9yeUNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFz
c2VtYmx5TWVtb3J5Q29uc3RydWN0b3IuY3BwCmluZGV4IDFmNjM3MGQuLmFkNTI1Y2YgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TWVtb3J5Q29u
c3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2Vt
Ymx5TWVtb3J5Q29uc3RydWN0b3IuY3BwCkBAIC0yNiw2ICsyNiw4IEBACiAjaW5jbHVkZSAiY29u
ZmlnLmgiCiAjaW5jbHVkZSAiV2ViQXNzZW1ibHlNZW1vcnlDb25zdHJ1Y3Rvci5oIgogCisjaWYg
RU5BQkxFKFdFQkFTU0VNQkxZKQorCiAjaW5jbHVkZSAiRnVuY3Rpb25Qcm90b3R5cGUuaCIKICNp
bmNsdWRlICJKU0NJbmxpbmVzLmgiCiAjaW5jbHVkZSAiV2ViQXNzZW1ibHlNZW1vcnlQcm90b3R5
cGUuaCIKQEAgLTEwMSwzICsxMDMsNiBAQCB2b2lkIFdlYkFzc2VtYmx5TWVtb3J5Q29uc3RydWN0
b3I6OnZpc2l0Q2hpbGRyZW4oSlNDZWxsKiBjZWxsLCBTbG90VmlzaXRvciYgdmlzaQogfQogCiB9
IC8vIG5hbWVzcGFjZSBKU0MKKworI2VuZGlmIC8vIEVOQUJMRShXRUJBU1NFTUJMWSkKKwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlNZW1vcnlD
b25zdHJ1Y3Rvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlN
ZW1vcnlDb25zdHJ1Y3Rvci5oCmluZGV4IDk1MjUzNjQuLjM0Y2QxMjAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TWVtb3J5Q29uc3RydWN0b3Iu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseU1lbW9yeUNv
bnN0cnVjdG9yLmgKQEAgLTI1LDYgKzI1LDggQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpZiBFTkFC
TEUoV0VCQVNTRU1CTFkpCisKICNpbmNsdWRlICJJbnRlcm5hbEZ1bmN0aW9uLmgiCiAjaW5jbHVk
ZSAiSlNPYmplY3QuaCIKIApAQCAtNTcsMyArNTksNSBAQCBwcml2YXRlOgogfTsKIAogfSAvLyBu
YW1lc3BhY2UgSlNDCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCQVNTRU1CTFkpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseU1lbW9yeVByb3RvdHlw
ZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseU1lbW9yeVBy
b3RvdHlwZS5jcHAKaW5kZXggNjBlNDg4OC4uMjQxOGZmMyAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlNZW1vcnlQcm90b3R5cGUuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TWVtb3J5UHJvdG90eXBl
LmNwcApAQCAtMjYsNiArMjYsOCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIldl
YkFzc2VtYmx5TWVtb3J5UHJvdG90eXBlLmgiCiAKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCisK
ICNpbmNsdWRlICJGdW5jdGlvblByb3RvdHlwZS5oIgogI2luY2x1ZGUgIkpTQ0lubGluZXMuaCIK
IApAQCAtNjMsMyArNjUsNSBAQCBXZWJBc3NlbWJseU1lbW9yeVByb3RvdHlwZTo6V2ViQXNzZW1i
bHlNZW1vcnlQcm90b3R5cGUoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdAogfQogCiB9IC8vIG5h
bWVzcGFjZSBKU0MKKworI2VuZGlmIC8vIEVOQUJMRShXRUJBU1NFTUJMWSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TWVtb3J5UHJvdG90eXBl
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseU1lbW9yeVByb3Rv
dHlwZS5oCmluZGV4IDlkM2Y4NTAuLjQyMTk5MDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TWVtb3J5UHJvdG90eXBlLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlNZW1vcnlQcm90b3R5cGUuaApAQCAt
MjUsNiArMjUsOCBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkK
KwogI2luY2x1ZGUgIkpTRGVzdHJ1Y3RpYmxlT2JqZWN0LmgiCiAjaW5jbHVkZSAiSlNPYmplY3Qu
aCIKIApAQCAtNDgsMyArNTAsNSBAQCBwcml2YXRlOgogfTsKIAogfSAvLyBuYW1lc3BhY2UgSlND
CisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCQVNTRU1CTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseU1vZHVsZUNvbnN0cnVjdG9yLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TW9kdWxlQ29uc3RydWN0b3Iu
Y3BwCmluZGV4IGM4MzhiM2QwLi5lOTdiMDExIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseU1vZHVsZUNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseU1vZHVsZUNvbnN0cnVjdG9yLmNw
cApAQCAtMjYsNiArMjYsOCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIldlYkFz
c2VtYmx5TW9kdWxlQ29uc3RydWN0b3IuaCIKIAorI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKKwog
I2luY2x1ZGUgIkZ1bmN0aW9uUHJvdG90eXBlLmgiCiAjaW5jbHVkZSAiSlNDSW5saW5lcy5oIgog
I2luY2x1ZGUgIldlYkFzc2VtYmx5TW9kdWxlUHJvdG90eXBlLmgiCkBAIC0xMDEsMyArMTAzLDYg
QEAgdm9pZCBXZWJBc3NlbWJseU1vZHVsZUNvbnN0cnVjdG9yOjp2aXNpdENoaWxkcmVuKEpTQ2Vs
bCogY2VsbCwgU2xvdFZpc2l0b3ImIHZpc2kKIH0KIAogfSAvLyBuYW1lc3BhY2UgSlNDCisKKyNl
bmRpZiAvLyBFTkFCTEUoV0VCQVNTRU1CTFkpCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TW9kdWxlQ29uc3RydWN0b3IuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TW9kdWxlQ29uc3RydWN0b3IuaAppbmRl
eCAzYWE0YWZhLi41NjA1N2E2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9qcy9XZWJBc3NlbWJseU1vZHVsZUNvbnN0cnVjdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlNb2R1bGVDb25zdHJ1Y3Rvci5oCkBAIC0yNSw2ICsy
NSw4IEBACiAKICNwcmFnbWEgb25jZQogCisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQorCiAjaW5j
bHVkZSAiSW50ZXJuYWxGdW5jdGlvbi5oIgogI2luY2x1ZGUgIkpTT2JqZWN0LmgiCiAKQEAgLTU3
LDMgKzU5LDUgQEAgcHJpdmF0ZToKIH07CiAKIH0gLy8gbmFtZXNwYWNlIEpTQworCisjZW5kaWYg
Ly8gRU5BQkxFKFdFQkFTU0VNQkxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vanMvV2ViQXNzZW1ibHlNb2R1bGVQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlNb2R1bGVQcm90b3R5cGUuY3BwCmluZGV4IDlkYjBj
ZTkuLjJiYjJiNWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dl
YkFzc2VtYmx5TW9kdWxlUHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9qcy9XZWJBc3NlbWJseU1vZHVsZVByb3RvdHlwZS5jcHAKQEAgLTI2LDYgKzI2LDggQEAK
ICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJXZWJBc3NlbWJseU1vZHVsZVByb3RvdHlw
ZS5oIgogCisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQorCiAjaW5jbHVkZSAiRnVuY3Rpb25Qcm90
b3R5cGUuaCIKICNpbmNsdWRlICJKU0NJbmxpbmVzLmgiCiAKQEAgLTYzLDMgKzY1LDUgQEAgV2Vi
QXNzZW1ibHlNb2R1bGVQcm90b3R5cGU6OldlYkFzc2VtYmx5TW9kdWxlUHJvdG90eXBlKFZNJiB2
bSwgU3RydWN0dXJlKiBzdHJ1Y3QKIH0KIAogfSAvLyBuYW1lc3BhY2UgSlNDCisKKyNlbmRpZiAv
LyBFTkFCTEUoV0VCQVNTRU1CTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9qcy9XZWJBc3NlbWJseU1vZHVsZVByb3RvdHlwZS5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vanMvV2ViQXNzZW1ibHlNb2R1bGVQcm90b3R5cGUuaAppbmRleCA4YTcxM2Q1Li5k
NWI2Mjc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3Nl
bWJseU1vZHVsZVByb3RvdHlwZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pz
L1dlYkFzc2VtYmx5TW9kdWxlUHJvdG90eXBlLmgKQEAgLTI1LDYgKzI1LDggQEAKIAogI3ByYWdt
YSBvbmNlCiAKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCisKICNpbmNsdWRlICJKU0Rlc3RydWN0
aWJsZU9iamVjdC5oIgogI2luY2x1ZGUgIkpTT2JqZWN0LmgiCiAKQEAgLTQ4LDMgKzUwLDUgQEAg
cHJpdmF0ZToKIH07CiAKIH0gLy8gbmFtZXNwYWNlIEpTQworCisjZW5kaWYgLy8gRU5BQkxFKFdF
QkFTU0VNQkxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2Vi
QXNzZW1ibHlQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2Vi
QXNzZW1ibHlQcm90b3R5cGUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LjJkNGUwMDQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9q
cy9XZWJBc3NlbWJseVByb3RvdHlwZS5jcHAKQEAgLTAsMCArMSw4OSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisg
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJXZWJBc3NlbWJseVByb3RvdHlwZS5oIgorCisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZ
KQorCisjaW5jbHVkZSAiRnVuY3Rpb25Qcm90b3R5cGUuaCIKKyNpbmNsdWRlICJKU0NJbmxpbmVz
LmgiCisKK25hbWVzcGFjZSBKU0MgeworCitzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCB3ZWJBc3NlbWJseUZ1bmN0aW9uVmFsaWRhdGUoRXhlY1N0YXRlKiBzdGF0ZSkKK3sKKyAg
ICBWTSYgdm0gPSBzdGF0ZS0+dm0oKTsKKyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19T
Q09QRSh2bSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZSh0aHJvd0V4Y2VwdGlvbihzdGF0
ZSwgc2NvcGUsIGNyZWF0ZUVycm9yKHN0YXRlLCBBU0NJSUxpdGVyYWwoIldlYkFzc2VtYmx5IGRv
ZXNuJ3QgeWV0IGltcGxlbWVudCB0aGUgdmFsaWRhdGUgZnVuY3Rpb24gcHJvcGVydHkiKSkpKTsK
K30KKworc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgd2ViQXNzZW1ibHlGdW5j
dGlvbkNvbXBpbGUoRXhlY1N0YXRlKiBzdGF0ZSkKK3sKKyAgICBWTSYgdm0gPSBzdGF0ZS0+dm0o
KTsKKyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CisgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZSh0aHJvd0V4Y2VwdGlvbihzdGF0ZSwgc2NvcGUsIGNyZWF0ZUVycm9y
KHN0YXRlLCBBU0NJSUxpdGVyYWwoIldlYkFzc2VtYmx5IGRvZXNuJ3QgeWV0IGltcGxlbWVudCB0
aGUgY29tcGlsZSBmdW5jdGlvbiBwcm9wZXJ0eSIpKSkpOworfQorCit9CisKKyNpbmNsdWRlICJX
ZWJBc3NlbWJseVByb3RvdHlwZS5sdXQuaCIKKworbmFtZXNwYWNlIEpTQyB7CisKK2NvbnN0IENs
YXNzSW5mbyBXZWJBc3NlbWJseVByb3RvdHlwZTo6c19pbmZvID0geyAiV2ViQXNzZW1ibHkucHJv
dG90eXBlIiwgJkJhc2U6OnNfaW5mbywgJnByb3RvdHlwZVRhYmxlV2ViQXNzZW1ibHksIENSRUFU
RV9NRVRIT0RfVEFCTEUoV2ViQXNzZW1ibHlQcm90b3R5cGUpIH07CisKKy8qIFNvdXJjZSBmb3Ig
V2ViQXNzZW1ibHlQcm90b3R5cGUubHV0LmgKKyBAYmVnaW4gcHJvdG90eXBlVGFibGVXZWJBc3Nl
bWJseQorIHZhbGlkYXRlIHdlYkFzc2VtYmx5RnVuY3Rpb25WYWxpZGF0ZSAgRG9udEVudW18RnVu
Y3Rpb24gMQorIGNvbXBpbGUgIHdlYkFzc2VtYmx5RnVuY3Rpb25Db21waWxlICAgRG9udEVudW18
RnVuY3Rpb24gMQorIEBlbmQKKyAqLworCitXZWJBc3NlbWJseVByb3RvdHlwZSogV2ViQXNzZW1i
bHlQcm90b3R5cGU6OmNyZWF0ZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKiBz
dHJ1Y3R1cmUpCit7CisgICAgYXV0byogb2JqZWN0ID0gbmV3IChOb3ROdWxsLCBhbGxvY2F0ZUNl
bGw8V2ViQXNzZW1ibHlQcm90b3R5cGU+KHZtLmhlYXApKSBXZWJBc3NlbWJseVByb3RvdHlwZSh2
bSwgc3RydWN0dXJlKTsKKyAgICBvYmplY3QtPmZpbmlzaENyZWF0aW9uKHZtKTsKKyAgICByZXR1
cm4gb2JqZWN0OworfQorCitTdHJ1Y3R1cmUqIFdlYkFzc2VtYmx5UHJvdG90eXBlOjpjcmVhdGVT
dHJ1Y3R1cmUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHBy
b3RvdHlwZSkKK3sKKyAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVj
dCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8o
KSk7Cit9CisKK3ZvaWQgV2ViQXNzZW1ibHlQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2
bSkKK3sKKyAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7Cit9CisKK1dlYkFzc2VtYmx5UHJv
dG90eXBlOjpXZWJBc3NlbWJseVByb3RvdHlwZShWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJl
KQorICAgIDogQmFzZSh2bSwgc3RydWN0dXJlKQoreworfQorCit9IC8vIG5hbWVzcGFjZSBKU0MK
KworI2VuZGlmIC8vIEVOQUJMRShXRUJBU1NFTUJMWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL1dlYkFzc2VtYmx5T2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9qcy9XZWJBc3NlbWJseVByb3RvdHlwZS5oCnNpbWlsYXJpdHkgaW5kZXggNzQlCnJl
bmFtZSBmcm9tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dlYkFzc2VtYmx5T2JqZWN0LmgK
cmVuYW1lIHRvIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5UHJvdG90
eXBlLmgKaW5kZXggN2I1MmNhNi4uMjg3ZDVhNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vV2ViQXNzZW1ibHlPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9qcy9XZWJBc3NlbWJseVByb3RvdHlwZS5oCkBAIC0yNSwzOCArMjUsMzAgQEAKIAog
I3ByYWdtYSBvbmNlCiAKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCisKKyNpbmNsdWRlICJKU0Rl
c3RydWN0aWJsZU9iamVjdC5oIgogI2luY2x1ZGUgIkpTT2JqZWN0LmgiCiAKIG5hbWVzcGFjZSBK
U0MgewogCi1jbGFzcyBXZWJBc3NlbWJseU9iamVjdCA6IHB1YmxpYyBKU05vbkZpbmFsT2JqZWN0
IHsKK2NsYXNzIFdlYkFzc2VtYmx5UHJvdG90eXBlIDogcHVibGljIEpTTm9uRmluYWxPYmplY3Qg
ewogcHVibGljOgogICAgIHR5cGVkZWYgSlNOb25GaW5hbE9iamVjdCBCYXNlOworICAgIHN0YXRp
YyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwg
SGFzU3RhdGljUHJvcGVydHlUYWJsZTsKIAotICAgIHN0YXRpYyBXZWJBc3NlbWJseU9iamVjdCog
Y3JlYXRlKFZNJiwgSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqKTsKKyAgICBzdGF0aWMgV2Vi
QXNzZW1ibHlQcm90b3R5cGUqIGNyZWF0ZShWTSYsIEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJl
Kik7CiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKFZNJiwgSlNHbG9iYWxP
YmplY3QqLCBKU1ZhbHVlKTsKIAogICAgIERFQ0xBUkVfSU5GTzsKIAogcHJvdGVjdGVkOgotICAg
IHZvaWQgZmluaXNoQ3JlYXRpb24oVk0mLCBKU0dsb2JhbE9iamVjdCopOworICAgIHZvaWQgZmlu
aXNoQ3JlYXRpb24oVk0mKTsKIAogcHJpdmF0ZToKLSAgICBXZWJBc3NlbWJseU9iamVjdChWTSYs
IFN0cnVjdHVyZSopOworICAgIFdlYkFzc2VtYmx5UHJvdG90eXBlKFZNJiwgU3RydWN0dXJlKik7
CiB9OwogCi0vLyBOYW1lLCBmdW5jdGlvbkxlbmd0aAotI2RlZmluZSBGT1JfRUFDSF9XQVNNX0NP
TlNUUlVDVE9SX1BST1BFUlRZKERPKSBcCi0gICAgRE8oTW9kdWxlLCAxKSBcCi0gICAgRE8oSW5z
dGFuY2UsIDIpIFwKLSAgICBETyhNZW1vcnksIDEpIFwKLSAgICBETyhUYWJsZSwgMSkgXAotICAg
IERPKENvbXBpbGVFcnJvciwgMSkgXAotICAgIERPKFJ1bnRpbWVFcnJvciwgMSkKLQotLy8gTmFt
ZSwgZnVuY3Rpb25MZW5ndGgKLSNkZWZpbmUgRk9SX0VBQ0hfV0FTTV9GVU5DVElPTl9QUk9QRVJU
WShETykgXAotICAgIERPKHZhbGlkYXRlLCAxKSBcCi0gICAgRE8oY29tcGlsZSwgMSkKLQogfSAv
LyBuYW1lc3BhY2UgSlNDCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCQVNTRU1CTFkpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseVJ1bnRpbWVFcnJv
ckNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2Vt
Ymx5UnVudGltZUVycm9yQ29uc3RydWN0b3IuY3BwCmluZGV4IGIzMDY3ZTUuLjU1MjgwMjIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5UnVudGlt
ZUVycm9yQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pz
L1dlYkFzc2VtYmx5UnVudGltZUVycm9yQ29uc3RydWN0b3IuY3BwCkBAIC0yNiw4ICsyNiwxMSBA
QAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIldlYkFzc2VtYmx5UnVudGltZUVycm9y
Q29uc3RydWN0b3IuaCIKIAorI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKKwogI2luY2x1ZGUgIkZ1
bmN0aW9uUHJvdG90eXBlLmgiCiAjaW5jbHVkZSAiSlNDSW5saW5lcy5oIgorI2luY2x1ZGUgIkpT
V2ViQXNzZW1ibHlSdW50aW1lRXJyb3IuaCIKICNpbmNsdWRlICJXZWJBc3NlbWJseVJ1bnRpbWVF
cnJvclByb3RvdHlwZS5oIgogCiAjaW5jbHVkZSAiV2ViQXNzZW1ibHlSdW50aW1lRXJyb3JDb25z
dHJ1Y3Rvci5sdXQuaCIKQEAgLTQzLDkgKzQ2LDEyIEBAIGNvbnN0IENsYXNzSW5mbyBXZWJBc3Nl
bWJseVJ1bnRpbWVFcnJvckNvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJGdW5jdGlvbiIsICZCYXNl
CiAKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdEpTV2ViQXNz
ZW1ibHlSdW50aW1lRXJyb3IoRXhlY1N0YXRlKiBzdGF0ZSkKIHsKLSAgICBWTSYgdm0gPSBzdGF0
ZS0+dm0oKTsKKyAgICBhdXRvJiB2bSA9IHN0YXRlLT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBE
RUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRocm93
RXhjZXB0aW9uKHN0YXRlLCBzY29wZSwgY3JlYXRlRXJyb3Ioc3RhdGUsIEFTQ0lJTGl0ZXJhbCgi
V2ViQXNzZW1ibHkgZG9lc24ndCB5ZXQgaW1wbGVtZW50IHRoZSBSdW50aW1lRXJyb3IgY29uc3Ry
dWN0b3IgcHJvcGVydHkiKSkpKTsKKyAgICBKU1ZhbHVlIG1lc3NhZ2UgPSBzdGF0ZS0+YXJndW1l
bnRDb3VudCgpID8gc3RhdGUtPmFyZ3VtZW50KDApIDoganNVbmRlZmluZWQoKTsKKyAgICBhdXRv
KiBzdHJ1Y3R1cmUgPSBJbnRlcm5hbEZ1bmN0aW9uOjpjcmVhdGVTdWJjbGFzc1N0cnVjdHVyZShz
dGF0ZSwgc3RhdGUtPm5ld1RhcmdldCgpLCBhc0ludGVybmFsRnVuY3Rpb24oc3RhdGUtPmNhbGxl
ZSgpKS0+Z2xvYmFsT2JqZWN0KCktPldlYkFzc2VtYmx5UnVudGltZUVycm9yU3RydWN0dXJlKCkp
OworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOworICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNXZWJBc3NlbWJseVJ1bnRpbWVFcnJvcjo6Y3JlYXRl
KHN0YXRlLCBzdHJ1Y3R1cmUsIG1lc3NhZ2UsIGZhbHNlKSk7CiB9CiAKIHN0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxKU1dlYkFzc2VtYmx5UnVudGltZUVycm9yKEV4ZWNT
dGF0ZSogc3RhdGUpCkBAIC02NywxMiArNzMsMTEgQEAgU3RydWN0dXJlKiBXZWJBc3NlbWJseVJ1
bnRpbWVFcnJvckNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUoVk0mIHZtLCBKU0dsb2JhbE8K
ICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBl
LCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7CiB9CiAKLXZv
aWQgV2ViQXNzZW1ibHlSdW50aW1lRXJyb3JDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oVk0m
IHZtLCBXZWJBc3NlbWJseVJ1bnRpbWVFcnJvclByb3RvdHlwZSogcHJvdG90eXBlLCBTdHJ1Y3R1
cmUqIHN0cnVjdHVyZSkKK3ZvaWQgV2ViQXNzZW1ibHlSdW50aW1lRXJyb3JDb25zdHJ1Y3Rvcjo6
ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBXZWJBc3NlbWJseVJ1bnRpbWVFcnJvclByb3RvdHlwZSog
cHJvdG90eXBlLCBTdHJ1Y3R1cmUqKQogewogICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtLCBB
U0NJSUxpdGVyYWwoIlJ1bnRpbWVFcnJvciIpKTsKLSAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNp
dGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+cHJvdG90eXBlLCBwcm90b3R5cGUsIERvbnRFbnVt
IHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KTsKKyAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlv
bih2bSwgdm0ucHJvcGVydHlOYW1lcy0+cHJvdG90eXBlLCBwcm90b3R5cGUsIFJlYWRPbmx5IHwg
RG9udEVudW0gfCBEb250RGVsZXRlKTsKICAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2
bSwgdm0ucHJvcGVydHlOYW1lcy0+bGVuZ3RoLCBqc051bWJlcigxKSwgUmVhZE9ubHkgfCBEb250
RW51bSB8IERvbnREZWxldGUpOwotICAgIG1fUnVudGltZUVycm9yU3RydWN0dXJlLnNldCh2bSwg
dGhpcywgc3RydWN0dXJlKTsKIH0KIAogV2ViQXNzZW1ibHlSdW50aW1lRXJyb3JDb25zdHJ1Y3Rv
cjo6V2ViQXNzZW1ibHlSdW50aW1lRXJyb3JDb25zdHJ1Y3RvcihWTSYgdm0sIFN0cnVjdHVyZSog
c3RydWN0dXJlKQpAQCAtOTIsMTIgKzk3LDYgQEAgQ2FsbFR5cGUgV2ViQXNzZW1ibHlSdW50aW1l
RXJyb3JDb25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmIGNhbGwKICAg
ICByZXR1cm4gQ2FsbFR5cGU6Okhvc3Q7CiB9CiAKLXZvaWQgV2ViQXNzZW1ibHlSdW50aW1lRXJy
b3JDb25zdHJ1Y3Rvcjo6dmlzaXRDaGlsZHJlbihKU0NlbGwqIGNlbGwsIFNsb3RWaXNpdG9yJiB2
aXNpdG9yKQotewotICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8V2ViQXNzZW1ibHlSdW50
aW1lRXJyb3JDb25zdHJ1Y3Rvcio+KGNlbGwpOwotICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJ
VFModGhpc09iamVjdCwgaW5mbygpKTsKLSAgICBCYXNlOjp2aXNpdENoaWxkcmVuKHRoaXNPYmpl
Y3QsIHZpc2l0b3IpOwotICAgIHZpc2l0b3IuYXBwZW5kKCZ0aGlzT2JqZWN0LT5tX1J1bnRpbWVF
cnJvclN0cnVjdHVyZSk7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIEpTQworCisjZW5kaWYgLy8gRU5B
QkxFKFdFQkFTU0VNQkxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
anMvV2ViQXNzZW1ibHlSdW50aW1lRXJyb3JDb25zdHJ1Y3Rvci5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlSdW50aW1lRXJyb3JDb25zdHJ1Y3Rvci5oCmluZGV4
IDlmYzkxYzcuLmJlNDE5ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L2pzL1dlYkFzc2VtYmx5UnVudGltZUVycm9yQ29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseVJ1bnRpbWVFcnJvckNvbnN0cnVjdG9yLmgK
QEAgLTI1LDYgKzI1LDggQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpZiBFTkFCTEUoV0VCQVNTRU1C
TFkpCisKICNpbmNsdWRlICJJbnRlcm5hbEZ1bmN0aW9uLmgiCiAjaW5jbHVkZSAiSlNPYmplY3Qu
aCIKIApAQCAtNDIsOCArNDQsNiBAQCBwdWJsaWM6CiAKICAgICBERUNMQVJFX0lORk87CiAKLSAg
ICBTdHJ1Y3R1cmUqIFJ1bnRpbWVFcnJvclN0cnVjdHVyZSgpIGNvbnN0IHsgcmV0dXJuIG1fUnVu
dGltZUVycm9yU3RydWN0dXJlLmdldCgpOyB9Ci0KIHByb3RlY3RlZDoKICAgICB2b2lkIGZpbmlz
aENyZWF0aW9uKFZNJiwgV2ViQXNzZW1ibHlSdW50aW1lRXJyb3JQcm90b3R5cGUqLCBTdHJ1Y3R1
cmUqKTsKIApAQCAtNTEsOSArNTEsOCBAQCBwcml2YXRlOgogICAgIFdlYkFzc2VtYmx5UnVudGlt
ZUVycm9yQ29uc3RydWN0b3IoVk0mLCBTdHJ1Y3R1cmUqKTsKICAgICBzdGF0aWMgQ29uc3RydWN0
VHlwZSBnZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCosIENvbnN0cnVjdERhdGEmKTsKICAgICBzdGF0
aWMgQ2FsbFR5cGUgZ2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmKTsKLSAgICBzdGF0aWMg
dm9pZCB2aXNpdENoaWxkcmVuKEpTQ2VsbCosIFNsb3RWaXNpdG9yJik7Ci0KLSAgICBXcml0ZUJh
cnJpZXI8U3RydWN0dXJlPiBtX1J1bnRpbWVFcnJvclN0cnVjdHVyZTsKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIEpTQworCisjZW5kaWYgLy8gRU5BQkxFKFdFQkFTU0VNQkxZKQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlSdW50aW1lRXJyb3JQcm90
b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlSdW50
aW1lRXJyb3JQcm90b3R5cGUuY3BwCmluZGV4IGRiYzY2NzcuLmIzNzRkYmQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5UnVudGltZUVycm9yUHJv
dG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJs
eVJ1bnRpbWVFcnJvclByb3RvdHlwZS5jcHAKQEAgLTI2LDYgKzI2LDggQEAKICNpbmNsdWRlICJj
b25maWcuaCIKICNpbmNsdWRlICJXZWJBc3NlbWJseVJ1bnRpbWVFcnJvclByb3RvdHlwZS5oIgog
CisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQorCiAjaW5jbHVkZSAiRnVuY3Rpb25Qcm90b3R5cGUu
aCIKICNpbmNsdWRlICJKU0NJbmxpbmVzLmgiCiAKQEAgLTYzLDMgKzY1LDUgQEAgV2ViQXNzZW1i
bHlSdW50aW1lRXJyb3JQcm90b3R5cGU6OldlYkFzc2VtYmx5UnVudGltZUVycm9yUHJvdG90eXBl
KFZNJiB2bSwgU3RydWMKIH0KIAogfSAvLyBuYW1lc3BhY2UgSlNDCisKKyNlbmRpZiAvLyBFTkFC
TEUoV0VCQVNTRU1CTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9q
cy9XZWJBc3NlbWJseVJ1bnRpbWVFcnJvclByb3RvdHlwZS5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vanMvV2ViQXNzZW1ibHlSdW50aW1lRXJyb3JQcm90b3R5cGUuaAppbmRleCBhNzI5
ZmIwLi4yMDc3ZmE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9X
ZWJBc3NlbWJseVJ1bnRpbWVFcnJvclByb3RvdHlwZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5UnVudGltZUVycm9yUHJvdG90eXBlLmgKQEAgLTI1LDYg
KzI1LDggQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCisKICNp
bmNsdWRlICJKU0Rlc3RydWN0aWJsZU9iamVjdC5oIgogI2luY2x1ZGUgIkpTT2JqZWN0LmgiCiAK
QEAgLTQ4LDMgKzUwLDUgQEAgcHJpdmF0ZToKIH07CiAKIH0gLy8gbmFtZXNwYWNlIEpTQworCisj
ZW5kaWYgLy8gRU5BQkxFKFdFQkFTU0VNQkxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlUYWJsZUNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5VGFibGVDb25zdHJ1Y3Rvci5jcHAKaW5k
ZXggMDUzZDhiZi4uNGI2NjA4YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vanMvV2ViQXNzZW1ibHlUYWJsZUNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseVRhYmxlQ29uc3RydWN0b3IuY3BwCkBAIC0yNiw2
ICsyNiw4IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiV2ViQXNzZW1ibHlUYWJs
ZUNvbnN0cnVjdG9yLmgiCiAKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCisKICNpbmNsdWRlICJG
dW5jdGlvblByb3RvdHlwZS5oIgogI2luY2x1ZGUgIkpTQ0lubGluZXMuaCIKICNpbmNsdWRlICJX
ZWJBc3NlbWJseVRhYmxlUHJvdG90eXBlLmgiCkBAIC0xMDEsMyArMTAzLDYgQEAgdm9pZCBXZWJB
c3NlbWJseVRhYmxlQ29uc3RydWN0b3I6OnZpc2l0Q2hpbGRyZW4oSlNDZWxsKiBjZWxsLCBTbG90
VmlzaXRvciYgdmlzaXQKIH0KIAogfSAvLyBuYW1lc3BhY2UgSlNDCisKKyNlbmRpZiAvLyBFTkFC
TEUoV0VCQVNTRU1CTFkpCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L2pzL1dlYkFzc2VtYmx5VGFibGVDb25zdHJ1Y3Rvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vanMvV2ViQXNzZW1ibHlUYWJsZUNvbnN0cnVjdG9yLmgKaW5kZXggODk0YjUxNC4uZTA4
ZTczNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1i
bHlUYWJsZUNvbnN0cnVjdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMv
V2ViQXNzZW1ibHlUYWJsZUNvbnN0cnVjdG9yLmgKQEAgLTI1LDYgKzI1LDggQEAKIAogI3ByYWdt
YSBvbmNlCiAKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCisKICNpbmNsdWRlICJJbnRlcm5hbEZ1
bmN0aW9uLmgiCiAjaW5jbHVkZSAiSlNPYmplY3QuaCIKIApAQCAtNTcsMyArNTksNSBAQCBwcml2
YXRlOgogfTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCQVNT
RU1CTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3Nl
bWJseVRhYmxlUHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dl
YkFzc2VtYmx5VGFibGVQcm90b3R5cGUuY3BwCmluZGV4IDVjMzIwOTcuLjdhYTM5NGIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5VGFibGVQcm90
b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5
VGFibGVQcm90b3R5cGUuY3BwCkBAIC0yNiw2ICsyNiw4IEBACiAjaW5jbHVkZSAiY29uZmlnLmgi
CiAjaW5jbHVkZSAiV2ViQXNzZW1ibHlUYWJsZVByb3RvdHlwZS5oIgogCisjaWYgRU5BQkxFKFdF
QkFTU0VNQkxZKQorCiAjaW5jbHVkZSAiRnVuY3Rpb25Qcm90b3R5cGUuaCIKICNpbmNsdWRlICJK
U0NJbmxpbmVzLmgiCiAKQEAgLTYzLDMgKzY1LDUgQEAgV2ViQXNzZW1ibHlUYWJsZVByb3RvdHlw
ZTo6V2ViQXNzZW1ibHlUYWJsZVByb3RvdHlwZShWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXIK
IH0KIAogfSAvLyBuYW1lc3BhY2UgSlNDCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCQVNTRU1CTFkp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseVRh
YmxlUHJvdG90eXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJs
eVRhYmxlUHJvdG90eXBlLmgKaW5kZXggYzYzZTAwMS4uYzViMWVmOCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlUYWJsZVByb3RvdHlwZS5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5VGFibGVQcm90b3R5
cGUuaApAQCAtMjUsNiArMjUsOCBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2lmIEVOQUJMRShXRUJB
U1NFTUJMWSkKKwogI2luY2x1ZGUgIkpTRGVzdHJ1Y3RpYmxlT2JqZWN0LmgiCiAjaW5jbHVkZSAi
SlNPYmplY3QuaCIKIApAQCAtNDgsMyArNTAsNSBAQCBwcml2YXRlOgogfTsKIAogfSAvLyBuYW1l
c3BhY2UgSlNDCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCQVNTRU1CTFkpCi0tIAoyLjEwLjEKCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>