<?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>171263</bug_id>
          
          <creation_ts>2017-04-25 00:43:36 -0700</creation_ts>
          <short_desc>WebAssembly: support name section</short_desc>
          <delta_ts>2017-05-10 11:15:22 -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>
          <dependson>171349</dependson>
          <blocked>159775</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="JF Bastien">jfbastien</reporter>
          <assigned_to name="JF Bastien">jfbastien</assigned_to>
          <cc>buildbot</cc>
    
    <cc>commit-queue</cc>
    
    <cc>fpizlo</cc>
    
    <cc>jfbastien</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1300930</commentid>
    <comment_count>0</comment_count>
    <who name="JF Bastien">jfbastien</who>
    <bug_when>2017-04-25 00:43:36 -0700</bug_when>
    <thetext>It&apos;s a debugging-only custom section which provides names for functions and such:
  https://github.com/WebAssembly/design/blob/master/BinaryEncoding.md#name-section

One place it&apos;s especially useful is in backtraces, which doesn&apos;t even require devtool support.

We&apos;ve heard from developers that they&apos;d like us to support it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1302525</commentid>
    <comment_count>1</comment_count>
      <attachid>308510</attachid>
    <who name="JF Bastien">jfbastien</who>
    <bug_when>2017-04-28 01:40:08 -0700</bug_when>
    <thetext>Created attachment 308510
Initial implementation

Here&apos;s a first shot at the name section. I haven&apos;t hooked it up to backtraces yet but that&apos;s easy.

The problem is that binaryen only just switched to emit this 15 days ago [0], and the binary I wanted to test predates the switch. I&apos;ll get the latest binaryen and test locally instead. But not tonight :)


  [0]: https://github.com/WebAssembly/binaryen/commit/57a2bb96c7b8a98433446828aca845a9e9be8c3d</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1305822</commentid>
    <comment_count>2</comment_count>
      <attachid>309349</attachid>
    <who name="JF Bastien">jfbastien</who>
    <bug_when>2017-05-08 00:24:36 -0700</bug_when>
    <thetext>Created attachment 309349
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1305823</commentid>
    <comment_count>3</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-05-08 00:26:13 -0700</bug_when>
    <thetext>Attachment 309349 did not pass style-queue:


ERROR: Source/JavaScriptCore/wasm/WasmFormat.h:247:  static_cast is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/JavaScriptCore/wasm/WasmFormat.h:248:  static_cast is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
Total errors found: 2 in 25 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1305828</commentid>
    <comment_count>4</comment_count>
      <attachid>309349</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-05-08 01:07:42 -0700</bug_when>
    <thetext>Comment on attachment 309349
patch

Attachment 309349 did not pass jsc-ews (mac):
Output: http://webkit-queues.webkit.org/results/3697493

New failing tests:
ChakraCore.yaml/ChakraCore/test/Strings/HTMLHelpers.js.default</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1306288</commentid>
    <comment_count>5</comment_count>
      <attachid>309478</attachid>
    <who name="JF Bastien">jfbastien</who>
    <bug_when>2017-05-09 00:07:29 -0700</bug_when>
    <thetext>Created attachment 309478
patch

Wow I hit build issues all over!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1306292</commentid>
    <comment_count>6</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-05-09 00:09:49 -0700</bug_when>
    <thetext>Attachment 309478 did not pass style-queue:


ERROR: Source/JavaScriptCore/wasm/WasmFormat.h:247:  static_cast is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/JavaScriptCore/wasm/WasmFormat.h:248:  static_cast is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
Total errors found: 2 in 25 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1306306</commentid>
    <comment_count>7</comment_count>
      <attachid>309478</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2017-05-09 00:42:05 -0700</bug_when>
    <thetext>Comment on attachment 309478
patch

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

Some comments before r+.

&gt; JSTests/ChangeLog:10
&gt; +        * wasm/function-tests/nameSection.wasm: Added.

Why is there a raw wasm file?

&gt; Source/JavaScriptCore/CMakeLists.txt:944
&gt; +

remove extra new line.

&gt; Source/JavaScriptCore/CMakeLists.txt:-968
&gt; -

I would leave this new line in; that&apos;s what we do elsewhere.

&gt; Source/JavaScriptCore/wasm/WasmCallee.h:63
&gt; +    IndexOrName m_indexOrName;

One downside of using IndexOrName here is that you have no way to get the index of the Callee back if that&apos;s what you want. Perhaps we don&apos;t need that but it also seems like if we have the index we can recover the name from the module but not the other way around.

&gt; Source/JavaScriptCore/wasm/WasmFormat.h:244
&gt; +static bool isValidNameType(Int val)

shouldn&apos;t this be inline not static? I guess static might be ok since this is a template function but it still seems weird.

&gt; Source/JavaScriptCore/wasm/WasmModuleParser.cpp:607
&gt; +    Name nameName = { &apos;n&apos;, &apos;a&apos;, &apos;m&apos;, &apos;e&apos; };

name name name name!

&gt; Source/JavaScriptCore/wasm/WasmName.h:35
&gt; +typedef Vector&lt;LChar&gt; Name;

nit: using Name = Vector&lt;LChar&gt;;

&gt; Source/JavaScriptCore/wasm/WasmNameSectionParser.cpp:61
&gt; +                WASM_PARSER_FAIL_IF(!parseVarUInt32(nameLen), &quot;can&apos;t get &quot;, function, &quot;th function&apos;s name length for payload &quot;, payloadNumber);
&gt; +                WASM_PARSER_FAIL_IF(!consumeUTF8String(nameString, nameLen), &quot;can&apos;t get &quot;, function, &quot;th function&apos;s name of length &quot;, nameLen, &quot; for payload &quot;, payloadNumber);

Nit: why are these ths? I would phase this as &quot;unable to read function &quot;, function, &quot;&apos;s name, which has length of &quot;, nameLen, &quot; and payload&quot;, payloadNumber

&gt; Source/JavaScriptCore/wasm/WasmNameSectionParser.cpp:78
&gt; +                WASM_PARSER_FAIL_IF(!parseVarUInt32(nameLen), &quot;can&apos;t get &quot;, local, &quot;th local&apos;s name length for payload &quot;, payloadNumber);
&gt; +                WASM_PARSER_FAIL_IF(!consumeUTF8String(nameString, nameLen), &quot;can&apos;t get &quot;, local, &quot;th local&apos;s name of length &quot;, nameLen, &quot; for payload &quot;, payloadNumber);

ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1306897</commentid>
    <comment_count>8</comment_count>
      <attachid>309615</attachid>
    <who name="JF Bastien">jfbastien</who>
    <bug_when>2017-05-10 09:57:50 -0700</bug_when>
    <thetext>Created attachment 309615
patch

&gt; &gt; JSTests/ChangeLog:10
&gt; &gt; +        * wasm/function-tests/nameSection.wasm: Added.
&gt; 
&gt; Why is there a raw wasm file?

Two main reasons:

  1. I wanted to test exactly what Emscripten generates for name section (it adds some more stuff than the names in the C++ source file).
  2. I don&apos;t think this is particularly useful to add to the builder.

In general it&apos;s suboptimal to check in binary files, but here I think it&apos;s the right thing to do. The repro instructions are in the .js file (original C++ file and build command line).


&gt; &gt; Source/JavaScriptCore/wasm/WasmCallee.h:63
&gt; &gt; +    IndexOrName m_indexOrName;
&gt; 
&gt; One downside of using IndexOrName here is that you have no way to get the
&gt; index of the Callee back if that&apos;s what you want. Perhaps we don&apos;t need that
&gt; but it also seems like if we have the index we can recover the name from the
&gt; module but not the other way around.

Yeah that seems fine for now, but we can revisit later if we want both.


&gt; &gt; Source/JavaScriptCore/wasm/WasmFormat.h:244
&gt; &gt; +static bool isValidNameType(Int val)
&gt; 
&gt; shouldn&apos;t this be inline not static? I guess static might be ok since this
&gt; is a template function but it still seems weird.

True, I updated here and the similar thing in this file.


&gt; &gt; Source/JavaScriptCore/wasm/WasmModuleParser.cpp:607
&gt; &gt; +    Name nameName = { &apos;n&apos;, &apos;a&apos;, &apos;m&apos;, &apos;e&apos; };
&gt; 
&gt; name name name name!

I know right! I chuckled when I wrote this.


&gt; &gt; Source/JavaScriptCore/wasm/WasmName.h:35
&gt; &gt; +typedef Vector&lt;LChar&gt; Name;
&gt; 
&gt; nit: using Name = Vector&lt;LChar&gt;;

lol C++14. I always forget about &quot;using&quot; it.


&gt; &gt; Source/JavaScriptCore/wasm/WasmNameSectionParser.cpp:61
&gt; &gt; +                WASM_PARSER_FAIL_IF(!parseVarUInt32(nameLen), &quot;can&apos;t get &quot;, function, &quot;th function&apos;s name length for payload &quot;, payloadNumber);
&gt; &gt; +                WASM_PARSER_FAIL_IF(!consumeUTF8String(nameString, nameLen), &quot;can&apos;t get &quot;, function, &quot;th function&apos;s name of length &quot;, nameLen, &quot; for payload &quot;, payloadNumber);
&gt; 
&gt; Nit: why are these ths? I would phase this as &quot;unable to read function &quot;,
&gt; function, &quot;&apos;s name, which has length of &quot;, nameLen, &quot; and payload&quot;,
&gt; payloadNumber

Consistent with: https://bugs.webkit.org/show_bug.cgi?id=166688
Your phrasing is nicer though. Adopting here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1306900</commentid>
    <comment_count>9</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-05-10 09:59:53 -0700</bug_when>
    <thetext>Attachment 309615 did not pass style-queue:


ERROR: Source/JavaScriptCore/wasm/WasmFormat.h:247:  static_cast is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/JavaScriptCore/wasm/WasmFormat.h:248:  static_cast is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
Total errors found: 2 in 25 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1306910</commentid>
    <comment_count>10</comment_count>
      <attachid>309615</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2017-05-10 10:46:43 -0700</bug_when>
    <thetext>Comment on attachment 309615
patch

r=me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1306920</commentid>
    <comment_count>11</comment_count>
      <attachid>309615</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-05-10 11:15:20 -0700</bug_when>
    <thetext>Comment on attachment 309615
patch

Clearing flags on attachment: 309615

Committed r216597: &lt;http://trac.webkit.org/changeset/216597&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1306921</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-05-10 11:15:22 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>308510</attachid>
            <date>2017-04-28 01:40:08 -0700</date>
            <delta_ts>2017-05-08 00:24:36 -0700</delta_ts>
            <desc>Initial implementation</desc>
            <filename>0001-WebAssembly-support-name-section.patch</filename>
            <type>text/plain</type>
            <size>18391</size>
            <attacher name="JF Bastien">jfbastien</attacher>
            
              <data encoding="base64">RnJvbSBiMWY4MjdjNzI5YWEwMmJmNGE1Y2FhN2U3YTg5M2I0NjM0Y2Y3NDE3IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKRiBCYXN0aWVuIDxqZmJhc3RpZW5AYXBwbGUuY29tPgpEYXRl
OiBGcmksIDI4IEFwciAyMDE3IDAxOjM3OjUzIC0wNzAwClN1YmplY3Q6IFtQQVRDSF0gV2ViQXNz
ZW1ibHk6IHN1cHBvcnQgbmFtZSBzZWN0aW9uCgotLS0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9D
TWFrZUxpc3RzLnR4dCAgICAgICAgICAgICAgIHwgIDEgKwogLi4uL0phdmFTY3JpcHRDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogICAgICAgfCAxOCArKystLQogU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vV2FzbUZvcm1hdC5oICAgICAgICAgICAgfCAyMyArKysrKy0KIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL1dhc21Nb2R1bGVJbmZvcm1hdGlvbi5oIHwgIDIgKy0KIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21Nb2R1bGVQYXJzZXIuY3BwICAgIHwgMTcgKysrLQog
Li4uL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU5hbWVTZWN0aW9uUGFyc2VyLmNwcCAgfCA5MCAr
KysrKysrKysrKysrKysrKysrKysrCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTmFt
ZVNlY3Rpb25QYXJzZXIuaCB8IDUxICsrKysrKysrKysrKwogNyBmaWxlcyBjaGFuZ2VkLCAxOTAg
aW5zZXJ0aW9ucygrKSwgMTIgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU5hbWVTZWN0aW9uUGFyc2VyLmNwcAogY3JlYXRlIG1v
ZGUgMTAwNjQ0IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21OYW1lU2VjdGlvblBhcnNl
ci5oCgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0IGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDAxOTA1ZjguLjMzNWY4
M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTk1MSw2ICs5NTEsNyBA
QCBzZXQoSmF2YVNjcmlwdENvcmVfU09VUkNFUwogICAgIHdhc20vV2FzbU1vZHVsZS5jcHAKICAg
ICB3YXNtL1dhc21Nb2R1bGVJbmZvcm1hdGlvbi5jcHAKICAgICB3YXNtL1dhc21Nb2R1bGVQYXJz
ZXIuY3BwCisgICAgd2FzbS9XYXNtTmFtZVNlY3Rpb25QYXJzZXIuY3BwCiAgICAgd2FzbS9XYXNt
T01HUGxhbi5jcHAKICAgICB3YXNtL1dhc21PcGNvZGVPcmlnaW4uY3BwCiAgICAgd2FzbS9XYXNt
UGFnZUNvdW50LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3Jp
cHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
SmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBlNjkwMWMxLi4w
MjNiODBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2
YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjE0MSw2ICsyMTQxLDgg
QEAKIAkJQURCNkY2N0QxRTE1RDc2MDAwODJGMzg0IC8qIFdhc21QYWdlQ291bnQuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQURCNkY2N0MxRTE1RDc1
MDAwODJGMzg0IC8qIFdhc21QYWdlQ291bnQuY3BwICovOyB9OwogCQlBREJDNTRENDFERjhFQTJC
MDA1QkY3MzggLyogV2ViQXNzZW1ibHlUb0pTQ2FsbGVlLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFEQkM1NEQyMURGOEVBMDAwMDVCRjczOCAvKiBX
ZWJBc3NlbWJseVRvSlNDYWxsZWUuY3BwICovOyB9OwogCQlBREJDNTRENTFERjhFQTJCMDA1QkY3
MzggLyogV2ViQXNzZW1ibHlUb0pTQ2FsbGVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBREJDNTREMzFERjhFQTAwMDA1QkY3MzggLyogV2ViQXNzZW1i
bHlUb0pTQ2FsbGVlLmggKi87IH07CisJCUFERDhGQTQ1MUVCMzA3OEUwMERGNTQyRiAvKiBXYXNt
TmFtZVNlY3Rpb25QYXJzZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQUREOEZBNDQxRUIzMDc3MTAwREY1NDJGIC8qIFdhc21OYW1lU2VjdGlvblBh
cnNlci5jcHAgKi87IH07CisJCUFERDhGQTQ2MUVCMzA3OTcwMERGNTQyRiAvKiBXYXNtTmFtZVNl
Y3Rpb25QYXJzZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEFERDhGQTQzMUVCMzA3NzEwMERGNTQyRiAvKiBXYXNtTmFtZVNlY3Rpb25QYXJzZXIuaCAq
LzsgfTsKIAkJQUREQjFGNjMxOEQ3N0RCRTAwOUI1OEE4IC8qIE9wYXF1ZVJvb3RTZXQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFEREIxRjYyMThENzdE
QjcwMDlCNThBOCAvKiBPcGFxdWVSb290U2V0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQURFMzlGRkYxNkREMTQ0QjAwMDNDRDRBIC8qIFByb3Bl
cnR5VGFibGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQUQxQ0YwNjgxNkRDQUIyRDAwQjk3MTIzIC8qIFByb3BlcnR5VGFibGUuY3BwICovOyB9Owog
CQlBREU4MDI5ODFFMDhGMURFMDA1OERFNzggLyogSlNXZWJBc3NlbWJseUxpbmtFcnJvci5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBREU4MDI5MzFF
MDhGMUM5MDA1OERFNzggLyogSlNXZWJBc3NlbWJseUxpbmtFcnJvci5jcHAgKi87IH07CkBAIC00
NzUxLDYgKzQ3NTMsOCBAQAogCQlBREI2RjY3QzFFMTVENzUwMDA4MkYzODQgLyogV2FzbVBhZ2VD
b3VudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXYXNtUGFnZUNv
dW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQURCQzU0RDIxREY4RUEwMDAw
NUJGNzM4IC8qIFdlYkFzc2VtYmx5VG9KU0NhbGxlZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IG5hbWUgPSBXZWJBc3NlbWJseVRvSlNDYWxsZWUuY3BwOyBwYXRoID0ganMvV2Vi
QXNzZW1ibHlUb0pTQ2FsbGVlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQURC
QzU0RDMxREY4RUEwMDAwNUJGNzM4IC8qIFdlYkFzc2VtYmx5VG9KU0NhbGxlZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXZWJBc3NlbWJseVRvSlNDYWxsZWUuaDsgcGF0aCA9
IGpzL1dlYkFzc2VtYmx5VG9KU0NhbGxlZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlBREQ4RkE0MzFFQjMwNzcxMDBERjU0MkYgLyogV2FzbU5hbWVTZWN0aW9uUGFyc2VyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdhc21OYW1lU2VjdGlvblBhcnNlci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBREQ4RkE0NDFFQjMwNzcxMDBERjU0MkYgLyog
V2FzbU5hbWVTZWN0aW9uUGFyc2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFdhc21OYW1lU2VjdGlvblBhcnNlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUFEREIxRjYyMThENzdEQjcwMDlCNThBOCAvKiBPcGFxdWVSb290U2V0LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE9wYXF1ZVJvb3RTZXQuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQURFODAyOTMxRTA4RjFDOTAwNThERTc4IC8qIEpTV2ViQXNzZW1i
bHlMaW5rRXJyb3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gSlNX
ZWJBc3NlbWJseUxpbmtFcnJvci5jcHA7IHBhdGggPSBqcy9KU1dlYkFzc2VtYmx5TGlua0Vycm9y
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQURFODAyOTQxRTA4RjFDOTAwNThE
RTc4IC8qIEpTV2ViQXNzZW1ibHlMaW5rRXJyb3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBuYW1lID0gSlNXZWJBc3NlbWJseUxpbmtFcnJvci5oOyBwYXRoID0ganMvSlNXZWJBc3NlbWJs
eUxpbmtFcnJvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNjM2MSwyOCArNjM2
NSwzMCBAQAogCQkJCUFENDEyQjMxMUU3QjJFOEEwMDhBRjE1NyAvKiBXYXNtQ29udGV4dC5jcHAg
Ki8sCiAJCQkJQUQ0MTJCMzIxRTdCMkU4QTAwOEFGMTU3IC8qIFdhc21Db250ZXh0LmggKi8sCiAJ
CQkJNzlEQUUyNzkxRTAzQzgyMjAwQjUyNkFBIC8qIFdhc21FeGNlcHRpb25UeXBlLmggKi8sCisJ
CQkJNTM4MUI5MzYxRTYwRTk2NjAwOTBGNzk0IC8qIFdhc21GYXVsdFNpZ25hbEhhbmRsZXIuY3Bw
ICovLAorCQkJCTUzODFCOTM4MUU2MEU5N0QwMDkwRjc5NCAvKiBXYXNtRmF1bHRTaWduYWxIYW5k
bGVyLmggKi8sCiAJCQkJQUQyRkNDMzIxREM0MDQ1MzAwQjNFNzM2IC8qIFdhc21Gb3JtYXQuY3Bw
ICovLAogCQkJCTdCQzU0N0QyMUI2OTU5OUIwMDk1OUI1OCAvKiBXYXNtRm9ybWF0LmggKi8sCiAJ
CQkJNTNGNDBFOEExRDU5MDFCQjAwOTlBMUI2IC8qIFdhc21GdW5jdGlvblBhcnNlci5oICovLAog
CQkJCTUzRTlFMEE5MUVBRTgzREUwMEZFRTI1MSAvKiBXYXNtTWFjaGluZVRocmVhZHMuY3BwICov
LAogCQkJCTUzRTlFMEFBMUVBRTgzREUwMEZFRTI1MSAvKiBXYXNtTWFjaGluZVRocmVhZHMuaCAq
LywKLQkJCQk3OTAwODEzNjFFOTVBOEVDMDA1MkQ3Q0QgLyogV2FzbU1vZHVsZS5jcHAgKi8sCi0J
CQkJNzkwMDgxMzcxRTk1QThFQzAwNTJEN0NEIC8qIFdhc21Nb2R1bGUuaCAqLywKIAkJCQk1MzU1
NTcxNTFEOURGQTMyMDA2RDU4M0IgLyogV2FzbU1lbW9yeS5jcHAgKi8sCiAJCQkJNTM1NTU3MTMx
RDlEOUVBNTAwNkQ1ODNCIC8qIFdhc21NZW1vcnkuaCAqLywKIAkJCQk3OUI3NTk3MTFERkE0QzYw
MDA1MjE3NEMgLyogV2FzbU1lbW9yeUluZm9ybWF0aW9uLmNwcCAqLywKIAkJCQk3OUI3NTk3MjFE
RkE0QzYwMDA1MjE3NEMgLyogV2FzbU1lbW9yeUluZm9ybWF0aW9uLmggKi8sCisJCQkJNzkwMDgx
MzYxRTk1QThFQzAwNTJEN0NEIC8qIFdhc21Nb2R1bGUuY3BwICovLAorCQkJCTc5MDA4MTM3MUU5
NUE4RUMwMDUyRDdDRCAvKiBXYXNtTW9kdWxlLmggKi8sCiAJCQkJNTNFNzc3RTExRTkyRTI2NTAw
N0NCRUM0IC8qIFdhc21Nb2R1bGVJbmZvcm1hdGlvbi5jcHAgKi8sCiAJCQkJNTNFNzc3RTIxRTky
RTI2NTAwN0NCRUM0IC8qIFdhc21Nb2R1bGVJbmZvcm1hdGlvbi5oICovLAogCQkJCTUzRjQwRTk2
MUQ1QTdCRUMwMDk5QTFCNiAvKiBXYXNtTW9kdWxlUGFyc2VyLmNwcCAqLywKIAkJCQk1M0Y0MEU5
NDFENUE3QUVGMDA5OUExQjYgLyogV2FzbU1vZHVsZVBhcnNlci5oICovLAorCQkJCUFERDhGQTQ0
MUVCMzA3NzEwMERGNTQyRiAvKiBXYXNtTmFtZVNlY3Rpb25QYXJzZXIuY3BwICovLAorCQkJCUFE
RDhGQTQzMUVCMzA3NzEwMERGNTQyRiAvKiBXYXNtTmFtZVNlY3Rpb25QYXJzZXIuaCAqLywKIAkJ
CQk1MzExQkQ0ODFFQTU4MUU1MDA1MjUyODEgLyogV2FzbU9NR1BsYW4uY3BwICovLAogCQkJCTUz
MTFCRDQ5MUVBNTgxRTUwMDUyNTI4MSAvKiBXYXNtT01HUGxhbi5oICovLAotCQkJCUFEQjZGNjdD
MUUxNUQ3NTAwMDgyRjM4NCAvKiBXYXNtUGFnZUNvdW50LmNwcCAqLywKLQkJCQk1MzgxQjkzNjFF
NjBFOTY2MDA5MEY3OTQgLyogV2FzbUZhdWx0U2lnbmFsSGFuZGxlci5jcHAgKi8sCi0JCQkJNTM4
MUI5MzgxRTYwRTk3RDAwOTBGNzk0IC8qIFdhc21GYXVsdFNpZ25hbEhhbmRsZXIuaCAqLywKIAkJ
CQk1M0M2RkVGMDFFOEFGRTBDMDBCMTg0MjUgLyogV2FzbU9wY29kZU9yaWdpbi5jcHAgKi8sCiAJ
CQkJNTNDNkZFRUUxRThBREZBOTAwQjE4NDI1IC8qIFdhc21PcGNvZGVPcmlnaW4uaCAqLywKKwkJ
CQlBREI2RjY3QzFFMTVENzUwMDA4MkYzODQgLyogV2FzbVBhZ2VDb3VudC5jcHAgKi8sCiAJCQkJ
NzlCNzU5NzMxREZBNEM2MDAwNTIxNzRDIC8qIFdhc21QYWdlQ291bnQuaCAqLywKIAkJCQk1M0Y0
MEU4QzFENTkwMUYyMDA5OUExQjYgLyogV2FzbVBhcnNlci5oICovLAogCQkJCTUzMTM3NEJFMUQ1
Q0U5NTAwMEFGN0EwQiAvKiBXYXNtUGxhbi5jcHAgKi8sCkBAIC04Mjc4LDYgKzgyODQsNyBAQAog
CQkJCTBGRUM4NTI0MUJEQUNEQUMwMDgwRkY3NCAvKiBCM09yaWdpbi5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMEY0QzkxNjYxQzI5RjRGMjAwNDM0MUE2IC8qIEIzT3JpZ2luRHVtcC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMEZFQzg1MjYxQkRBQ0RBQzAwODBGRjc0IC8qIEIzUGF0Y2hwb2ludFNwZWNp
YWwuaCBpbiBIZWFkZXJzICovLAorCQkJCUFERDhGQTQ2MUVCMzA3OTcwMERGNTQyRiAvKiBXYXNt
TmFtZVNlY3Rpb25QYXJzZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUM4NTI4MUJEQUNEQUMw
MDgwRkY3NCAvKiBCM1BhdGNocG9pbnRWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzk5RUY3
QzQxQzU2RUQ5NjAwMkIwNTM0IC8qIEIzUENUb09yaWdpbk1hcC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMEZFQzg1MkExQkRBQ0RBQzAwODBGRjc0IC8qIEIzUGhhc2VTY29wZS5oIGluIEhlYWRlcnMg
Ki8sCkBAIC0xMDk2Nyw2ICsxMDk3NCw3IEBACiAJCQkJODY3MDRCODYxMkRCQTMzNzAwQTlGRTdC
IC8qIFlhcnJKSVQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODY3MDRCODkxMkRCQTMzNzAwQTlG
RTdCIC8qIFlhcnJQYXR0ZXJuLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg2NzA0QjQyMTJEQjhB
ODEwMEE5RkU3QiAvKiBZYXJyU3ludGF4Q2hlY2tlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlB
REQ4RkE0NTFFQjMwNzhFMDBERjU0MkYgLyogV2FzbU5hbWVTZWN0aW9uUGFyc2VyLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTMyMUQ5RTRDRkI2NzQyM0E5N0YxOTFBNyAvKiBNb2R1bGVOYW1lc3Bh
Y2VBY2Nlc3NDYXNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBs
b3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vV2FzbUZvcm1hdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUZv
cm1hdC5oCmluZGV4IGQ5ZWI3YjguLjExMDdjNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL1dhc21Gb3JtYXQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9XYXNtRm9ybWF0LmgKQEAgLTgyLDkgKzgyLDggQEAgc3RhdGljIGJvb2wgaXNWYWxpZEV4dGVy
bmFsS2luZChJbnQgdmFsKQogICAgIGNhc2Ugc3RhdGljX2Nhc3Q8SW50PihFeHRlcm5hbEtpbmQ6
Ok1lbW9yeSk6CiAgICAgY2FzZSBzdGF0aWNfY2FzdDxJbnQ+KEV4dGVybmFsS2luZDo6R2xvYmFs
KToKICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgcmV0dXJuIGZh
bHNlOwogICAgIH0KKyAgICByZXR1cm4gZmFsc2U7CiB9CiAKIHN0YXRpY19hc3NlcnQoc3RhdGlj
X2Nhc3Q8aW50PihFeHRlcm5hbEtpbmQ6OkZ1bmN0aW9uKSA9PSAwLCAiV2FzbSBuZWVkcyBGdW5j
dGlvbiB0byBoYXZlIHRoZSB2YWx1ZSAwIik7CkBAIC0yMzUsNiArMjM0LDI2IEBAIHN0cnVjdCBD
dXN0b21TZWN0aW9uIHsKICAgICBWZWN0b3I8dWludDhfdD4gcGF5bG9hZDsKIH07CiAKK2VudW0g
Y2xhc3MgTmFtZVR5cGUgOiB1aW50OF90IHsKKyAgICBGdW5jdGlvbiA9IDEsCisgICAgTG9jYWwg
PSAyLAorfTsKKyAgICAKK3RlbXBsYXRlPHR5cGVuYW1lIEludD4KK3N0YXRpYyBib29sIGlzVmFs
aWROYW1lVHlwZShJbnQgdmFsKQoreworICAgIHN3aXRjaCAodmFsKSB7CisgICAgY2FzZSBzdGF0
aWNfY2FzdDxJbnQ+KE5hbWVUeXBlOjpGdW5jdGlvbik6CisgICAgY2FzZSBzdGF0aWNfY2FzdDxJ
bnQ+KE5hbWVUeXBlOjpMb2NhbCk6CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICBy
ZXR1cm4gZmFsc2U7Cit9CisgICAgCitzdHJ1Y3QgTmFtZVNlY3Rpb24geworICAgIFZlY3RvcjxW
ZWN0b3I8TENoYXI+PiBmdW5jdGlvbk5hbWVzOworfTsKKwogc3RydWN0IFVubGlua2VkV2FzbVRv
V2FzbUNhbGwgewogICAgIENvZGVMb2NhdGlvbk5lYXJDYWxsIGNhbGxMb2NhdGlvbjsKICAgICBz
aXplX3QgZnVuY3Rpb25JbmRleFNwYWNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vV2FzbU1vZHVsZUluZm9ybWF0aW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9XYXNtTW9kdWxlSW5mb3JtYXRpb24uaAppbmRleCAxNzYzMzlhLi4wN2IzODk5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTW9kdWxlSW5mb3JtYXRpb24u
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTW9kdWxlSW5mb3JtYXRpb24u
aApAQCAtNzQsNyArNzQsNyBAQCBzdHJ1Y3QgTW9kdWxlSW5mb3JtYXRpb24gOiBwdWJsaWMgVGhy
ZWFkU2FmZVJlZkNvdW50ZWQ8TW9kdWxlSW5mb3JtYXRpb24+IHsKICAgICBWZWN0b3I8R2xvYmFs
PiBnbG9iYWxzOwogICAgIHVuc2lnbmVkIGZpcnN0SW50ZXJuYWxHbG9iYWwgeyAwIH07CiAgICAg
VmVjdG9yPEN1c3RvbVNlY3Rpb24+IGN1c3RvbVNlY3Rpb25zOwotCisgICAgTmFtZVNlY3Rpb24g
bmFtZVNlY3Rpb247CiB9OwogCiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9XYXNtTW9kdWxlUGFyc2VyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L1dhc21Nb2R1bGVQYXJzZXIuY3BwCmluZGV4IGVlNzE0YzEuLjE4ODkwNjEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21Nb2R1bGVQYXJzZXIuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21Nb2R1bGVQYXJzZXIuY3BwCkBAIC0xLDUgKzEs
NSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMwLDEzICszMCwx
MSBAQAogCiAjaW5jbHVkZSAiSWRlbnRpZmllcklubGluZXMuaCIKICNpbmNsdWRlICJKU1dlYkFz
c2VtYmx5VGFibGUuaCIKLSNpbmNsdWRlICJXYXNtRm9ybWF0LmgiCiAjaW5jbHVkZSAiV2FzbU1l
bW9yeUluZm9ybWF0aW9uLmgiCisjaW5jbHVkZSAiV2FzbU5hbWVTZWN0aW9uUGFyc2VyLmgiCiAj
aW5jbHVkZSAiV2FzbU9wcy5oIgogI2luY2x1ZGUgIldhc21TZWN0aW9ucy5oIgogCi0jaW5jbHVk
ZSA8c3lzL21tYW4uaD4KLQogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBXYXNtIHsKIAogQUxX
QVlTX0lOTElORSBJMzJJbml0RXhwciBtYWtlSTMySW5pdEV4cHIodWludDhfdCBvcGNvZGUsIHVp
bnQzMl90IGJpdHMpCkBAIC02MDUsNiArNjAzLDE3IEBAIGF1dG8gTW9kdWxlUGFyc2VyOjpwYXJz
ZUN1c3RvbSh1aW50MzJfdCBzZWN0aW9uTGVuZ3RoKSAtPiBQYXJ0aWFsUmVzdWx0CiAgICAgICAg
IFdBU01fUEFSU0VSX0ZBSUxfSUYoIXBhcnNlVUludDgoYnl0ZSksICJjYW4ndCBnZXQgIiwgYnl0
ZU51bWJlciwgInRoIGRhdGEgYnl0ZSBmcm9tICIsIGN1c3RvbVNlY3Rpb25OdW1iZXIsICJ0aCBj
dXN0b20gc2VjdGlvbiIpOwogICAgICAgICBzZWN0aW9uLnBheWxvYWQudW5jaGVja2VkQXBwZW5k
KGJ5dGUpOwogICAgIH0KKworICAgIFZlY3RvcjxMQ2hhcj4gbmFtZU5hbWUgPSB7ICduJywgJ2En
LCAnbScsICdlJyB9OworICAgIGlmIChzZWN0aW9uLm5hbWUgPT0gbmFtZU5hbWUpIHsKKyAgICAg
ICAgTmFtZVNlY3Rpb25QYXJzZXIgbmFtZVNlY3Rpb25QYXJzZXIoc2VjdGlvbi5wYXlsb2FkLmJl
Z2luKCksIHNlY3Rpb24ucGF5bG9hZC5zaXplKCksIG1faW5mbyk7CisgICAgICAgIGlmIChhdXRv
IG5hbWVTZWN0aW9uID0gbmFtZVNlY3Rpb25QYXJzZXIucGFyc2UoKSkgeworICAgICAgICAgICAg
bV9pbmZvLT5uYW1lU2VjdGlvbiA9IFdURk1vdmUoKm5hbWVTZWN0aW9uKTsKKyAgICAgICAgfSBl
bHNlIHsKKyAgICAgICAgICAgIGRhdGFMb2dMbigiRkFJTEVEOiAiLCBuYW1lU2VjdGlvbi5nZXRV
bmV4cGVjdGVkKCkudmFsdWUoKSk7CisgICAgICAgICAgICBhYm9ydCgpOworICAgICAgICB9Cisg
ICAgfQogICAgIAogICAgIG1faW5mby0+Y3VzdG9tU2VjdGlvbnMudW5jaGVja2VkQXBwZW5kKFdU
Rk1vdmUoc2VjdGlvbikpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9XYXNtTmFtZVNlY3Rpb25QYXJzZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
V2FzbU5hbWVTZWN0aW9uUGFyc2VyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi42M2E3MWE2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vV2FzbU5hbWVTZWN0aW9uUGFyc2VyLmNwcApAQCAtMCwwICsxLDkwIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycn
IEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
KyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIldhc21OYW1lU2VjdGlvblBhcnNlci5oIgorCisjaWYgRU5BQkxFKFdFQkFTU0VN
QkxZKQorCisjaW5jbHVkZSAiSWRlbnRpZmllcklubGluZXMuaCIKKworbmFtZXNwYWNlIEpTQyB7
IG5hbWVzcGFjZSBXYXNtIHsKKworYXV0byBOYW1lU2VjdGlvblBhcnNlcjo6cGFyc2UoKSAtPiBS
ZXN1bHQKK3sKKyAgICBOYW1lU2VjdGlvbiBuYW1lU2VjdGlvbjsKKyAgICBXQVNNX1BBUlNFUl9G
QUlMX0lGKCFuYW1lU2VjdGlvbi5mdW5jdGlvbk5hbWVzLnRyeVJlc2VydmVDYXBhY2l0eShtX2lu
Zm8uZnVuY3Rpb25JbmRleFNwYWNlU2l6ZSgpKSwgImNhbid0IGFsbG9jYXRlIGVub3VnaCBtZW1v
cnkgZm9yIGZ1bmN0aW9uIG5hbWVzIik7CisgICAgbmFtZVNlY3Rpb24uZnVuY3Rpb25OYW1lcy5y
ZXNpemUobV9pbmZvLmZ1bmN0aW9uSW5kZXhTcGFjZVNpemUoKSk7CisKKyAgICBmb3IgKHNpemVf
dCBwYXlsb2FkTnVtYmVyID0gMDsgbV9vZmZzZXQgPCBsZW5ndGgoKTsgKytwYXlsb2FkTnVtYmVy
KSB7CisgICAgICAgIHVpbnQ4X3QgbmFtZVR5cGU7CisgICAgICAgIHVpbnQzMl90IHBheWxvYWRM
ZW5ndGg7CisgICAgICAgIFdBU01fUEFSU0VSX0ZBSUxfSUYocGFyc2VVSW50NyhuYW1lVHlwZSks
ICJjYW4ndCBnZXQgbmFtZSB0eXBlIGZvciBwYXlsb2FkICIsIHBheWxvYWROdW1iZXIpOworICAg
ICAgICBXQVNNX1BBUlNFUl9GQUlMX0lGKCFpc1ZhbGlkTmFtZVR5cGUobmFtZVR5cGUpLCAibmFt
ZSB0eXBlICIsIG5hbWVUeXBlLCAiIGlzIGludmFsaWQgZm9yIHBheWxvYWQgIiwgcGF5bG9hZE51
bWJlcik7CisgICAgICAgIFdBU01fUEFSU0VSX0ZBSUxfSUYoIXBhcnNlVmFyVUludDMyKHBheWxv
YWRMZW5ndGgpLCAiY2FuJ3QgZ2V0IHBheWxvYWQgbGVuZ3RoIGZvciBwYXlsb2FkICIsIHBheWxv
YWROdW1iZXIpOworICAgICAgICBXQVNNX1BBUlNFUl9GQUlMX0lGKHBheWxvYWRMZW5ndGggPiBs
ZW5ndGgoKSAtIG1fb2Zmc2V0LCAicGF5bG9hZCBsZW5ndGggaXMgdG9vIGJpZyBmb3IgcGF5bG9h
ZCAiLCBwYXlsb2FkTnVtYmVyKTsKKyAgICAgICAgY29uc3QgYXV0byBwYXlsb2FkU3RhcnQgPSBt
X29mZnNldDsKKworICAgICAgICBzd2l0Y2ggKHN0YXRpY19jYXN0PE5hbWVUeXBlPihuYW1lVHlw
ZSkpIHsKKyAgICAgICAgY2FzZSBOYW1lVHlwZTo6RnVuY3Rpb246IHsKKyAgICAgICAgICAgIHVp
bnQzMl90IGNvdW50OworICAgICAgICAgICAgV0FTTV9QQVJTRVJfRkFJTF9JRighcGFyc2VWYXJV
SW50MzIoY291bnQpLCAiY2FuJ3QgZ2V0IGZ1bmN0aW9uIGNvdW50IGZvciBwYXlsb2FkICIsIHBh
eWxvYWROdW1iZXIpOworICAgICAgICAgICAgZm9yICh1aW50MzJfdCBmdW5jdGlvbiA9IDA7IGZ1
bmN0aW9uIDwgY291bnQ7ICsrZnVuY3Rpb24pIHsKKyAgICAgICAgICAgICAgICB1aW50MzJfdCBp
bmRleDsKKyAgICAgICAgICAgICAgICB1aW50MzJfdCBuYW1lTGVuOworICAgICAgICAgICAgICAg
IFZlY3RvcjxMQ2hhcj4gbmFtZVN0cmluZzsKKyAgICAgICAgICAgICAgICBXQVNNX1BBUlNFUl9G
QUlMX0lGKCFwYXJzZVZhclVJbnQzMihpbmRleCksICJjYW4ndCBnZXQgZnVuY3Rpb24gIiwgZnVu
Y3Rpb24sICIgaW5kZXggZm9yIHBheWxvYWQgIiwgcGF5bG9hZE51bWJlcik7CisgICAgICAgICAg
ICAgICAgV0FTTV9QQVJTRVJfRkFJTF9JRihtX2luZm8uZnVuY3Rpb25JbmRleFNwYWNlU2l6ZSgp
IDw9IGluZGV4LCAiZnVuY3Rpb24gIiwgZnVuY3Rpb24sICIgaW5kZXggIiwgaW5kZXgsICIgaXMg
bGFyZ2VyIHRoYW4gZnVuY3Rpb24gaW5kZXggc3BhY2UgIiwgbV9pbmZvLmZ1bmN0aW9uSW5kZXhT
cGFjZVNpemUoKSwgIiBmb3IgcGF5bG9hZCAiLCBwYXlsb2FkTnVtYmVyKTsKKyAgICAgICAgICAg
ICAgICBXQVNNX1BBUlNFUl9GQUlMX0lGKCFwYXJzZVZhclVJbnQzMihuYW1lTGVuKSwgImNhbid0
IGdldCAiLCBmdW5jdGlvbiwgInRoIGZ1bmN0aW9uJ3MgbmFtZSBsZW5ndGggZm9yIHBheWxvYWQg
IiwgcGF5bG9hZE51bWJlcik7CisgICAgICAgICAgICAgICAgV0FTTV9QQVJTRVJfRkFJTF9JRigh
Y29uc3VtZVVURjhTdHJpbmcobmFtZVN0cmluZywgbmFtZUxlbiksICJjYW4ndCBnZXQgIiwgZnVu
Y3Rpb24sICJ0aCBmdW5jdGlvbidzIG5hbWUgb2YgbGVuZ3RoICIsIG5hbWVMZW4sICIgZm9yIHBh
eWxvYWQgIiwgcGF5bG9hZE51bWJlcik7CisgICAgICAgICAgICAgICAgbmFtZVNlY3Rpb24uZnVu
Y3Rpb25OYW1lc1tpbmRleF0gPSBXVEZNb3ZlKG5hbWVTdHJpbmcpOworICAgICAgICAgICAgfQor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgY2FzZSBOYW1lVHlwZTo6TG9j
YWw6IHsKKyAgICAgICAgICAgIC8vIElnbm9yZSBsb2NhbCBuYW1lcyBmb3Igbm93LCB3ZSBkb24n
dCBkbyBhbnl0aGluZyB3aXRoIHRoZW0gYnV0IHdlIHN0aWxsIG5lZWQgdG8gcGFyc2UgdGhlbSBp
biBvcmRlciB0byBwcm9wZXJseSBpZ25vcmUgdGhlbS4KKyAgICAgICAgICAgIHVpbnQzMl90IGZ1
bmN0aW9uSW5kZXg7CisgICAgICAgICAgICB1aW50MzJfdCBjb3VudDsKKyAgICAgICAgICAgIFdB
U01fUEFSU0VSX0ZBSUxfSUYoIXBhcnNlVmFyVUludDMyKGZ1bmN0aW9uSW5kZXgpLCAiY2FuJ3Qg
Z2V0IGxvY2FsJ3MgZnVuY3Rpb24gaW5kZXggZm9yIHBheWxvYWQgIiwgcGF5bG9hZE51bWJlcik7
CisgICAgICAgICAgICBXQVNNX1BBUlNFUl9GQUlMX0lGKCFwYXJzZVZhclVJbnQzMihjb3VudCks
ICJjYW4ndCBnZXQgbG9jYWwgY291bnQgZm9yIHBheWxvYWQgIiwgcGF5bG9hZE51bWJlcik7Cisg
ICAgICAgICAgICBmb3IgKHVpbnQzMl90IGxvY2FsID0gMDsgbG9jYWwgPCBjb3VudDsgKytsb2Nh
bCkgeworICAgICAgICAgICAgICAgIHVpbnQzMl90IGluZGV4OworICAgICAgICAgICAgICAgIHVp
bnQzMl90IG5hbWVMZW47CisgICAgICAgICAgICAgICAgVmVjdG9yPExDaGFyPiBuYW1lU3RyaW5n
OworICAgICAgICAgICAgICAgIFdBU01fUEFSU0VSX0ZBSUxfSUYoIXBhcnNlVmFyVUludDMyKGlu
ZGV4KSwgImNhbid0IGdldCBsb2NhbCAiLCBsb2NhbCwgIiBpbmRleCBmb3IgcGF5bG9hZCAiLCBw
YXlsb2FkTnVtYmVyKTsKKyAgICAgICAgICAgICAgICBXQVNNX1BBUlNFUl9GQUlMX0lGKCFwYXJz
ZVZhclVJbnQzMihuYW1lTGVuKSwgImNhbid0IGdldCAiLCBsb2NhbCwgInRoIGxvY2FsJ3MgbmFt
ZSBsZW5ndGggZm9yIHBheWxvYWQgIiwgcGF5bG9hZE51bWJlcik7CisgICAgICAgICAgICAgICAg
V0FTTV9QQVJTRVJfRkFJTF9JRighY29uc3VtZVVURjhTdHJpbmcobmFtZVN0cmluZywgbmFtZUxl
biksICJjYW4ndCBnZXQgIiwgbG9jYWwsICJ0aCBsb2NhbCdzIG5hbWUgb2YgbGVuZ3RoICIsIG5h
bWVMZW4sICIgZm9yIHBheWxvYWQgIiwgcGF5bG9hZE51bWJlcik7CisgICAgICAgICAgICB9Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIFdBU01fUEFS
U0VSX0ZBSUxfSUYocGF5bG9hZFN0YXJ0ICsgcGF5bG9hZExlbmd0aCAhPSBtX29mZnNldCk7Cisg
ICAgfQorICAgIHJldHVybiBuYW1lU2VjdGlvbjsKK30KKworfSB9IC8vIG5hbWVzcGFjZSBKU0M6
Oldhc20KKworI2VuZGlmIC8vIEVOQUJMRShXRUJBU1NFTUJMWSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21OYW1lU2VjdGlvblBhcnNlci5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vV2FzbU5hbWVTZWN0aW9uUGFyc2VyLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uYjI5NzBkZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL1dhc21OYW1lU2VjdGlvblBhcnNlci5oCkBAIC0wLDAgKzEsNTEg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21h
IG9uY2UKKworI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKKworI2luY2x1ZGUgIldhc21Gb3JtYXQu
aCIKKyNpbmNsdWRlICJXYXNtUGFyc2VyLmgiCisKK25hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2Ug
V2FzbSB7CisKK2NsYXNzIE5hbWVTZWN0aW9uUGFyc2VyIDogcHVibGljIFBhcnNlcjxOYW1lU2Vj
dGlvbj4geworcHVibGljOgorICAgIE5hbWVTZWN0aW9uUGFyc2VyKGNvbnN0IHVpbnQ4X3QqIHNv
dXJjZUJ1ZmZlciwgc2l6ZV90IHNvdXJjZUxlbmd0aCwgY29uc3QgTW9kdWxlSW5mb3JtYXRpb24m
IGluZm8pCisgICAgICAgIDogUGFyc2VyKHNvdXJjZUJ1ZmZlciwgc291cmNlTGVuZ3RoKQorICAg
ICAgICAsIG1faW5mbyhpbmZvKQorICAgIHsKKyAgICB9CisKKyAgICBSZXN1bHQgV0FSTl9VTlVT
RURfUkVUVVJOIHBhcnNlKCk7CisgICAgCitwcml2YXRlOgorICAgIGNvbnN0IE1vZHVsZUluZm9y
bWF0aW9uJiBtX2luZm87Cit9OworCit9IH0gLy8gbmFtZXNwYWNlIEpTQzo6V2FzbQorCisjZW5k
aWYgLy8gRU5BQkxFKFdFQkFTU0VNQkxZKQotLSAKMi45LjMKCg==
</data>
<flag name="commit-queue"
          id="329665"
          type_id="3"
          status="-"
          setter="jfbastien"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>309349</attachid>
            <date>2017-05-08 00:24:36 -0700</date>
            <delta_ts>2017-05-09 00:07:29 -0700</delta_ts>
            <desc>patch</desc>
            <filename>0001-WebAssembly-support-name-section.patch</filename>
            <type>text/plain</type>
            <size>64230</size>
            <attacher name="JF Bastien">jfbastien</attacher>
            
              <data encoding="base64">RnJvbSA2M2M1ZGJmODA1YjgzMzNiY2ExODgyZjAxNTdlZjE5MmVhZDgzYTY3IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKRiBCYXN0aWVuIDxqZmJhc3RpZW5AYXBwbGUuY29tPgpEYXRl
OiBGcmksIDI4IEFwciAyMDE3IDAxOjM3OjUzIC0wNzAwClN1YmplY3Q6IFtQQVRDSF0gV2ViQXNz
ZW1ibHk6IHN1cHBvcnQgbmFtZSBzZWN0aW9uCgotLS0KIEpTVGVzdHMvQ2hhbmdlTG9nICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDEyICsrKwogSlNUZXN0cy93YXNtL2Z1bmN0
aW9uLXRlc3RzL25hbWVTZWN0aW9uLmpzICAgICAgICAgfCAgNzIgKysrKysrKysrKysrKysrKysK
IEpTVGVzdHMvd2FzbS9mdW5jdGlvbi10ZXN0cy9uYW1lU2VjdGlvbi53YXNtICAgICAgIHwgQmlu
IDAgLT4gMTM0MDkgYnl0ZXMKIEpTVGVzdHMvd2FzbS9mdW5jdGlvbi10ZXN0cy9zdGFjay10cmFj
ZS5qcyAgICAgICAgIHwgICA4ICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50
eHQgICAgICAgICAgICAgICB8ICAgNCArLQogU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxv
ZyAgICAgICAgICAgICAgICAgICAgfCAgNjQgKysrKysrKysrKysrKysrCiAuLi4vSmF2YVNjcmlw
dENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiAgICAgICB8ICAzMCArKysrKy0tCiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwICB8ICAgMyArLQog
U291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL1N0YWNrVmlzaXRvci5jcHAgfCAgIDkg
KystCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvU3RhY2tWaXNpdG9yLmggICB8
ICAgNyArLQogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RhY2tGcmFtZS5jcHAgICAg
ICAgfCAgIDYgKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0YWNrRnJhbWUuaCAg
ICAgICAgIHwgIDE0ICsrLS0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21CQlFQbGFu
SW5saW5lcy5oICAgIHwgICAzICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQ2Fs
bGVlLmNwcCAgICAgICAgICB8ICAxMCArKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dh
c21DYWxsZWUuaCAgICAgICAgICAgIHwgIDI1ICsrKy0tLQogU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vV2FzbUZvcm1hdC5jcHAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL1dhc21Gb3JtYXQuaCAgICAgICAgICAgIHwgIDM4ICsrKysrKystLQogU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUluZGV4T3JOYW1lLmNwcCAgICAgfCAgNTAgKysrKysr
KysrKysrCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtSW5kZXhPck5hbWUuaCAgICAg
ICB8ICA1OCArKysrKysrKysrKysrCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTW9k
dWxlSW5mb3JtYXRpb24uaCB8ICAgMiArLQogU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2Fz
bU1vZHVsZVBhcnNlci5jcHAgICAgfCAgMjEgKysrLS0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL1dhc21OYW1lLmggICAgICAgICAgICAgIHwgIDQxICsrKysrKysrKysKIC4uLi9KYXZhU2Ny
aXB0Q29yZS93YXNtL1dhc21OYW1lU2VjdGlvblBhcnNlci5jcHAgIHwgIDkwICsrKysrKysrKysr
KysrKysrKysrKwogU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU5hbWVTZWN0aW9uUGFy
c2VyLmggfCAgNTEgKysrKysrKysrKysrCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNt
T01HUGxhbi5jcHAgICAgICAgICB8ICAgMiArLQogU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
V2FzbVBhcnNlci5oICAgICAgICAgICAgfCAgIDYgKy0KIDI2IGZpbGVzIGNoYW5nZWQsIDU2NCBp
bnNlcnRpb25zKCspLCA2NiBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBKU1Rlc3Rz
L3dhc20vZnVuY3Rpb24tdGVzdHMvbmFtZVNlY3Rpb24uanMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBK
U1Rlc3RzL3dhc20vZnVuY3Rpb24tdGVzdHMvbmFtZVNlY3Rpb24ud2FzbQogY3JlYXRlIG1vZGUg
MTAwNjQ0IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21JbmRleE9yTmFtZS5jcHAKIGNy
ZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtSW5kZXhPck5h
bWUuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21O
YW1lLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNt
TmFtZVNlY3Rpb25QYXJzZXIuY3BwCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vV2FzbU5hbWVTZWN0aW9uUGFyc2VyLmgKCmRpZmYgLS1naXQgYS9KU1Rlc3Rz
L0NoYW5nZUxvZyBiL0pTVGVzdHMvQ2hhbmdlTG9nCmluZGV4IGZhOWRlYjQuLjc3YWFhZDMgMTAw
NjQ0Ci0tLSBhL0pTVGVzdHMvQ2hhbmdlTG9nCisrKyBiL0pTVGVzdHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTUgQEAKKzIwMTctMDUtMDggIEpGIEJhc3RpZW4gIDxqZmJhc3RpZW5AYXBwbGUuY29t
PgorCisgICAgICAgIFdlYkFzc2VtYmx5OiBzdXBwb3J0IG5hbWUgc2VjdGlvbgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcxMjYzCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3YXNtL2Z1bmN0aW9uLXRl
c3RzL25hbWVTZWN0aW9uLmpzOiBBZGRlZC4KKyAgICAgICAgKGNvbnN0LmNvbXBpbGUpOgorICAg
ICAgICAqIHdhc20vZnVuY3Rpb24tdGVzdHMvbmFtZVNlY3Rpb24ud2FzbTogQWRkZWQuCisgICAg
ICAgICogd2FzbS9mdW5jdGlvbi10ZXN0cy9zdGFjay10cmFjZS5qczogVXBkYXRlIGZvcm1hdAor
CiAyMDE3LTA1LTA2ICBPbGVrc2FuZHIgU2thY2hrb3YgIDxnc2thY2hrb3ZAZ21haWwuY29tPgog
CiAgICAgICAgIFtFUzZdIEFycm93IGZ1bmN0aW9uLiBJc3N1ZSBpbiBhY2Nlc3MgdG8gdGhpcyBh
ZnRlciBldmFsKCdzdXBlcigpJykgd2l0aGluIGNvbnN0cnVjdG9yCmRpZmYgLS1naXQgYS9KU1Rl
c3RzL3dhc20vZnVuY3Rpb24tdGVzdHMvbmFtZVNlY3Rpb24uanMgYi9KU1Rlc3RzL3dhc20vZnVu
Y3Rpb24tdGVzdHMvbmFtZVNlY3Rpb24uanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uYmE1NDE5ZQotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvd2FzbS9mdW5jdGlvbi10
ZXN0cy9uYW1lU2VjdGlvbi5qcwpAQCAtMCwwICsxLDcyIEBACitpbXBvcnQgKiBhcyBhc3NlcnQg
ZnJvbSAnLi4vYXNzZXJ0LmpzJworCisvKgorVGhpcyB0ZXN0IGxvYWRzIGEgV2ViQXNzZW1ibHkg
ZmlsZSBjb21waWxlZCBieSBFbXNjcmlwdGVuIHdpdGg6CisgIC4vZW1zZGstcG9ydGFibGUvZW1z
Y3JpcHRlbi9pbmNvbWluZy9lbSsrIC4vbmFtZVNlY3Rpb24uY2MgLU8yIC1nNCAtcyBXQVNNPTEg
LW8gbmFtZVNlY3Rpb24uanMgLXMgRVhQT1JURURfRlVOQ1RJT05TPSJbJ19wYXJyb3QnXSIKKwor
RnJvbSB0aGUgZm9sbG93aW5nIEMrKyBzb3VyY2UgZmlsZToKKyAgZXh0ZXJuICJDIiB7CisgIGlu
dCBzaWxseShpbnQpOworICBfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpIGludCBlZ2dzKGludCBp
KSB7IHJldHVybiBzaWxseShpKTsgfQorICBfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpIGludCBi
YWNvbihpbnQgaSkgeyByZXR1cm4gZWdncyhpKTsgfQorICBfX2F0dHJpYnV0ZV9fKChub2lubGlu
ZSkpIGludCBzcGFtKGludCBpKSB7IHJldHVybiBiYWNvbihpKTsgfQorICBfX2F0dHJpYnV0ZV9f
KChub2lubGluZSkpIGludCBwYXJyb3QoaW50IGkpIHsgcmV0dXJuIHNwYW0oaSk7IH0KKyAgfQor
Ki8KKworY29uc3QgdmVyYm9zZSA9IGZhbHNlOworY29uc3Qgd2FzbUZpbGUgPSAnbmFtZVNlY3Rp
b24ud2FzbSc7CisKK2NvbnN0IGNvbXBpbGUgPSAobG9jYXRpb24sIGltcG9ydE9iamVjdCA9IHt9
KSA9PiB7CisgICAgaWYgKHZlcmJvc2UpCisgICAgICAgIHByaW50KGBQcm9jZXNzaW5nICR7bG9j
YXRpb259YCk7CisgICAgbGV0IGJ1ZiA9IHR5cGVvZiByZWFkYnVmZmVyICE9PSAidW5kZWZpbmVk
Ij8gcmVhZGJ1ZmZlcihsb2NhdGlvbikgOiByZWFkKGxvY2F0aW9uLCAnYmluYXJ5Jyk7CisgICAg
aWYgKHZlcmJvc2UpCisgICAgICAgIHByaW50KGAgIFNpemU6ICR7YnVmLmJ5dGVMZW5ndGh9YCk7
CisKKyAgICBsZXQgdDAgPSBEYXRlLm5vdygpOworICAgIGxldCBtb2R1bGUgPSBuZXcgV2ViQXNz
ZW1ibHkuTW9kdWxlKGJ1Zik7CisgICAgbGV0IHQxID0gRGF0ZS5ub3coKTsKKyAgICBpZiAodmVy
Ym9zZSkKKyAgICAgICAgcHJpbnQoYG5ldyBXZWJBc3NlbWJseS5Nb2R1bGUoYnVmKSB0b29rICR7
dDEtdDB9IG1zLmApOworCisgICAgaWYgKHZlcmJvc2UpCisgICAgICAgIHByaW50KGBDcmVhdGlu
ZyBmYWtlIGltcG9ydCBvYmplY3Qgd2l0aCAke1dlYkFzc2VtYmx5Lk1vZHVsZS5pbXBvcnRzKG1v
ZHVsZSkubGVuZ3RofSBpbXBvcnRzYCk7CisgICAgZm9yIChsZXQgaW1wIG9mIFdlYkFzc2VtYmx5
Lk1vZHVsZS5pbXBvcnRzKG1vZHVsZSkpIHsKKyAgICAgICAgaWYgKHR5cGVvZiBpbXBvcnRPYmpl
Y3RbaW1wLm1vZHVsZV0gPT09ICJ1bmRlZmluZWQiKQorICAgICAgICAgICAgaW1wb3J0T2JqZWN0
W2ltcC5tb2R1bGVdID0ge307CisgICAgICAgIGlmICh0eXBlb2YgaW1wb3J0T2JqZWN0W2ltcC5t
b2R1bGVdW2ltcC5uYW1lXSA9PT0gInVuZGVmaW5lZCIpIHsKKyAgICAgICAgICAgIHN3aXRjaCAo
aW1wLmtpbmQpIHsKKyAgICAgICAgICAgIGNhc2UgImZ1bmN0aW9uIjogaW1wb3J0T2JqZWN0W2lt
cC5tb2R1bGVdW2ltcC5uYW1lXSA9ICgpID0+IHt9OyBicmVhazsKKyAgICAgICAgICAgIGNhc2Ug
InRhYmxlIjogaW1wb3J0T2JqZWN0W2ltcC5tb2R1bGVdW2ltcC5uYW1lXSA9IG5ldyBXZWJBc3Nl
bWJseS5UYWJsZSh7IGluaXRpYWw6IDYsIG1heGltdW06IDYsIGVsZW1lbnQ6ICJhbnlmdW5jIiB9
KTsgYnJlYWs7CisgICAgICAgICAgICBjYXNlICJtZW1vcnkiOiBpbXBvcnRPYmplY3RbaW1wLm1v
ZHVsZV1baW1wLm5hbWVdID0gbmV3IFdlYkFzc2VtYmx5Lk1lbW9yeSh7IGluaXRpYWw6IDE2Nzc3
MjE2IC8gKDY0ICogMTAyNCksIG1heGltdW06IDE2Nzc3MjE2IC8gKDY0ICogMTAyNCkgfSk7IGJy
ZWFrOworICAgICAgICAgICAgY2FzZSAiZ2xvYmFsIjogaW1wb3J0T2JqZWN0W2ltcC5tb2R1bGVd
W2ltcC5uYW1lXSA9IDA7IGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICB9
CisKKyAgICBsZXQgdDIgPSBEYXRlLm5vdygpOworICAgIGxldCBpbnN0YW5jZSA9IG5ldyBXZWJB
c3NlbWJseS5JbnN0YW5jZShtb2R1bGUsIGltcG9ydE9iamVjdCk7CisgICAgbGV0IHQzID0gRGF0
ZS5ub3coKTsKKyAgICBpZiAodmVyYm9zZSkKKyAgICAgICAgcHJpbnQoYG5ldyBXZWJBc3NlbWJs
eS5Nb2R1bGUoYnVmKSB0b29rICR7dDMtdDJ9IG1zLmApOworCisgICAgcmV0dXJuIGluc3RhbmNl
OworfTsKKworbGV0IHN0YWNrdHJhY2U7Citjb25zdCBpbXBvcnRPYmplY3QgPSB7IGVudjogeyBf
c2lsbHk6IGkgPT4geyBzdGFja3RyYWNlID0gKG5ldyBFcnJvcikuc3RhY2s7IHJldHVybiBpICsg
NDI7IH0gfSB9OworY29uc3QgaW5zdGFuY2UgPSBjb21waWxlKHdhc21GaWxlLCBpbXBvcnRPYmpl
Y3QpOworY29uc3QgcmVzdWx0ID0gaW5zdGFuY2UuZXhwb3J0cy5fcGFycm90KDEpOworYXNzZXJ0
LmVxKHJlc3VsdCwgMSArIDQyKTsKKworYXNzZXJ0LnRydXRoeShzdGFja3RyYWNlKTsKK3N0YWNr
dHJhY2UgPSBzdGFja3RyYWNlLnNwbGl0KCJcbiIpOworYXNzZXJ0LmZhbHN5KHN0YWNrdHJhY2Vb
MF0uaW5kZXhPZigiX3NpbGx5IikgPT09IC0xKTsKK2Fzc2VydC5lcShzdGFja3RyYWNlWzFdLCAi
d2FzbSBmdW5jdGlvbkBbd2FzbSBjb2RlXSIpOyAvLyB0aGUgd2FzbS0+anMgc3R1YgorYXNzZXJ0
LmVxKHN0YWNrdHJhY2VbMl0sICJ3YXNtIGZ1bmN0aW9uOiBfZWdnc0Bbd2FzbSBjb2RlXSIpOwor
YXNzZXJ0LmVxKHN0YWNrdHJhY2VbM10sICJ3YXNtIGZ1bmN0aW9uOiBfYmFjb25AW3dhc20gY29k
ZV0iKTsKK2Fzc2VydC5lcShzdGFja3RyYWNlWzRdLCAid2FzbSBmdW5jdGlvbjogX3NwYW1AW3dh
c20gY29kZV0iKTsKK2Fzc2VydC5lcShzdGFja3RyYWNlWzVdLCAid2FzbSBmdW5jdGlvbjogX3Bh
cnJvdEBbd2FzbSBjb2RlXSIpOworYXNzZXJ0LmVxKHN0YWNrdHJhY2VbNl0sICJ3YXNtIGZ1bmN0
aW9uQFt3YXNtIGNvZGVdIik7IC8vIHdhc20gZW50cnkKZGlmZiAtLWdpdCBhL0pTVGVzdHMvd2Fz
bS9mdW5jdGlvbi10ZXN0cy9uYW1lU2VjdGlvbi53YXNtIGIvSlNUZXN0cy93YXNtL2Z1bmN0aW9u
LXRlc3RzL25hbWVTZWN0aW9uLndhc20KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjRiMjJiMWFlZWEzOGU0NjljMzI2
MGJhMzRkNWRhNGE2ZGIxMjE1MwpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMTM0MDkKemNtYlc4
T04/QXVkQkBMdlJhTXVtPk1vQ009JFl+MGQjPz1gRndnXm9LX2pJMmd4R15JVyhZRzJ2WmByJlk2
ZSVnCnotUnxsZCEkPklJQSZgc3xxQ35KayhkNGx9MWQlTFFCb1lmR3RVUlBkViE8TWpTZkdlU0Ix
T3VFI1lEPTJXYipyZQp6PWlZakJfZT11Zz5BSjZUJi12Y3B8TkhLfVpnY05XPGVaRUM7XjUlR2Ip
SE4xX3hHZHk9T1g+WWB9PllQX25oT3YKeklVVGM7R0o8WFZyUWhhOyk1Ky1Xe25jT2xqWmdVLSpG
Tl5fKTFNeEdgcXxHVWAlWSYmJnBoaXRjQWF6ZUByb1N9CnpafWB2RkMkaTAoSkNtdFBHYEsmeXlT
K0ppYWRjeUpYSl8pVk9Lc1gwTjdIOV9ya21TfkMqTnV9SiQ/Nk1ufEpULQp6T3JNKFVlMTdyalRa
V0BNZCQlVUg/QGRRe2hqJkpJWnJ5dSVjPVBzKSZJb0RgaHJ7aWlUVSVrcCktV3VlWHtucWAKemQh
eS08JD5kV3o7aioyMWRHRlRkX1Z5KiRHNz5jPW9PJTMtamN+M3QrYEdOS3tqIVRScGY/fXpwKG4h
aTY7OGMkCnpjZk0kVUtJSEt5PlVtcXgzRDBxSzVGZjt2QyEyMkcrI1dedXFMIWBPNGNDOGxiOHBt
MChncmpxejlxJUlKeFlAfQp6UFNTfH5RdUc8NkRWciFzR2ZwSEtYSWt5WndmPENOVGw+KkRtLTc/
cEMrNWZOdT0jMCFgQVpCcyomZzEzX25sa3IKelVBZ295eF53Untxdj9oXylnSGReIXVDc2hwTDZm
YkNva1JvXnY+UyZuYkNDNXkoZFMwdnIjOGNqYGw/ND9ZKy1FCnpHdV56a15+fUFeVE8pVTNnXzln
Py1YRk8mPTB7aGZzZTVsVytgQnAxYXUqKzZSMzIqJVUpPGlneHckPnV6SjJxUwp6ZClVVUtQeHJw
QSZFayE/KXNCfF4rK181NV9mVUl5Wip3eCluWSM2Q19gK2x+YV97Y2gkaj9CXyZTY35VQ3lAU1YK
ekdQJTFXR3VXS28tbnJ9RSlfd2tFWS14TFljPkFfe2V7WClrO2x8MldDOWNTd09ZXyNfazk/cHle
Snc/NGU8RVQzCnppSml2Pl9ScUQtPXY9RkM8TVhYXkV4JEpRX2piPj5pWVUqJnRSZTFQRUJfdGFE
Y3QjMXtgPEJZVSlEaHBvcDB5KQp6QUJJdCNFMiZPKUlKdUl+QDh+d09ibmAjWnooXnw9WnFPfHdF
d09hJl5mQmsmYT9IODZoSTMhQmg1YypZe0pTPUQKekptYlg9O0g4TUZ4TnNOWmp9RlI5dkdjN1c5
JmBxZWxAMD03SHFaWkNDVzg1eDA1VWs9JmBsWmxtZjk1S0RrKz5sCnpHcDwlSCNJOCEycXRKO3s8
RXFQdkJIaHh0bHlsTGd4V2d2QzYhKGcoaVd1fEphbiltdFppJExTcWF4NGNQSjlgYAp6ckEwaWhR
dldzaEFNXiowUm5nVkheS3NjdUU7R3R+M01uI3R0N0s7MThKRWJqTkdgLV8peFRjbFQ8ZXJjVWda
QWwKeilTckUrWHBoU19EfDF+Nzw+YExXJnYxZFFEakZOUEp7P3pgcUdPbDBiZiM0X2JoUUZxdCll
YUpqaHQzUFBUV0g/Cnp1bUo7dVZucktRYmk+OTtxUnRsK29vb0J9WVAjPVRSPlZmKlIkbDdYIVVr
UUdCcmUxb1B7SmU8NXxoe19GRVJ1agp6PWxRPWFzeDN0V2cqMT4jP3g7O1NCd0JTciM7TF41c2F9
eHh6PCg5IzN8MG5AZEd+UitjWWRGe3tDO0xzPUlBO04Kenk4YV9HNnxOc1ZjUmslN3l2OytSMVkk
JDt7MXYtQUlPYHZ7YWMhQElCQ3FaMXBpYGcxWCNUP31QSiskTURKfk52CnpofjJRUk44UlV4a1JH
XlFgTlNlT1U7ajM4NUktNEdfbWBrdUkpI2lVLUYxbF5FeWphSz1YM2BUTTVXfVoxQmJRTgp6P3pp
diVEaiNKMmArMSlLdTNnYl9GYVBGbUYpRVREJFUheXBoNF88eHxDOERxVHFzPkhXe3R0UUQ8eko+
Rl5lSXoKejImeEM/YW1MYlJ7JTVqbmJaWG5kSjdyQyE4QCEjOVJnXyolRmoxVEY2U3tBMyZNd0N+
Y1M9OEp1Q3FgeXhLT3hCCno+MmZDNShmTTRMSzJrK31kfldhI2FoZDBAOGxrUDRQJGB1JDRuZzI8
Rj8lPXFJXmRyO0lQYTVQQUNGSHNfbFR4KQp6eFhacW9uYW8/WlUhQEgwakhedWh0IXZeSUE4S3VS
diVtfVUrZ1VwcGJzVmYyZjBMRUwjPzA2bGtYSjdNKjdxZEkKeig/UVhGT3clR3R6Wl4pZ3t5IXNJ
I09HdUdoMjFqdDR8MSpDPTFQN0k7U0gpN20ma29gempGN2hnIUxnUUB6SmkyCnpfNlcwODxkZG9Z
X1ooSjViKmcqaT5zNTxBYmRQZWJyazl4JTJPfiZLe3I9dUFecjBzSUJRMzwqZ08qdDcxKHU3MQp6
O1JQIy0yfUdmPjQ5R0R2dHlFIT94VH56cmpVX1N7JXJpMHs/JkJiPkhJKEs1IUkpVCs0aW8ocVp0
NVhMX2pBWUEKeldWaGJnXzR8bjNfd01fX0Y0UXRrSlpBVE9YSUZ9dGEzK091QUsmLXNaazA/Pmg2
TGZHYCN3SCY5TDxndTVvQDdqCno1YHwoR3YkN3xIV0VyPyQ1SzN4N3NUNVI+Nl5vKT01RE90JFYo
Rk16aWdwPF9xS1JpeEFzbEQ7WiEjQG5WIURASAp6UXIxaHlnJDRhSmJuI0Q7NFBMVipvdVdgdkE1
PXZzMm5tfmwlPj5PSHFYaik+TU47QWNXaD45NVFIR24/SEpJfmAKel45OH5laUcpTjJ3enowMUF8
cldAYTxwUHBLdFcoY2BzJUxie19qaiVpWE9SbE1aV2NCVEVQdlptRk80T2lqU3hNCnpYWl45MWYj
Oz1JSjJFMkxNZmloIWFkM3FaY0EwM0NUJFcrZ2dETWl0d1c8U3NFb0NoMnhLZz02Y1FTMEBQSkJJ
KQp6ZUMoSTAmQiZga1pSVTdANjZWVSYhUmxGYnoza3pJP0RRJSRBbHJgPUt9X15jNW0oZ0I1NHxo
WFVYdGVgUHZnd0EKengod14wSys8VWxDRVJoJDFeR31RMW5OU1JVXllsKV4kdk5lQXJmfjhfWlFK
cWpkI3x6OHpgKnB1ZEElPGtWSS1gCnpuOFFhOzFaJSFDQCk7QWkoSnNGNUJuP2t0M1djTC1HfShq
JFNqdmp0bEJNK3xUVEZpZDcxQiN7Y09VTENARjNUdQp6bVRPd3tGMihEbiNMN3x5YFYjM0Z6RCNk
YCtwX3BOY1M3NSNGbDE+cDgrS3xvakRiVytyaHBxdm5KYG0zNyZJUlYKekl8emA3NlQ7RjhfWFZH
MFohR0l+I29YdThCUjsyfmMrfV9PQ0VBajV3VFIwc18jNjt2P3NLYU1LZyl+TkFSQ3lLCnomKkFR
ZGc2MkxhRCYldTNaMVh9Kzd2WnNNMVgtLVBgRX52V2AtRHJzVW5ZdHwxYXpsLWtrLSFHTEtnVHJV
UHJifQp6e3ArdjQtVWZYNXZrRXFsIUxAX2BgSVdJQlNtWSRtTSppVFpYWUg3e2lUX1V8QiElQ0Qx
Myk+JDIlcGhwaSN5MikKell4bEtVZHdpZD8hYzVWMDA8JEZSNkNTOzdsfkhfSXxCNGR9OSptYSMh
PD5va1o8UjQjQXgpcH5YQiFCWVBmSjJjCno4T3UqPEh3TlJiN01BTik7YnBhcTVNSW5PIVZoS0Ml
Z3tNUFBnTV9IRElTNmR0UGYtZ29ncE53VVkpPnJtSzZeUAp6aTZRZVZSWW5HNm5JaHxKaEt3bSkm
Kms2X1MyfDZyMzlsNkttMGZPWmskcH1xVypAbkJpb2RvTU1HIyt6ZEdSYjAKekczOSt5WVJFKD1X
SV88bDx9b2k7Q1dffm9Yejc/dFIzREckNS1YdkxkN3Z7RTJicFhlKS16WktHKTBeaiQ7NkxACnoz
di1iJXtGLTYpakh7cT4tR3ZieWpoUjNxUypndHU7OEdUe0ZkQ0YyKWl6ek4pLURedjVjI19hZyNl
fVhRWHp5TAp6ZytqbyU/eTEzNFd1WSl1RDE8Zz1obHNlZDd6JmtKRCtRbik+YHtAO0xnNnRObClD
flV1LT01aWooa0ModSg+OFMKejM1Qn05aCE7YmxXbmBuVUQ9JXxKRk8mcE9HeiowaTYrQUE1TGVY
dl56VWImS1JoYkhmZ3A0e0FSKkkrPTREK1FCCnprZWZMdzd7KHpPJmhBJTY+WkwmRXFFcDkyblli
V1RyXnBvKHA8cXpRI0JlMUdfKDNzfFNyaWkpYSRIUWJGdDM9WAp6VlYzIV9nPHQ4NGBxRVR1MDBS
I1dGJVopfENQdCN8UyZZUFU0NDE0RioqR0E5M0BuMDJYOHNgN2oxOCM3a3BkaHwKejVLJS1fNSVf
IyNZX2YpTnduTG1HdDxVNCs4ZGl5O3R5dSZ0K1M+RmU8RSZhLXV7Zno+MDwwRm9UZWNZOXZqMDIw
Cno4Qm1PaF5jTV9vI0tAMiR1fih9cCZycUxZO2koS1ZNTzxjREhScXx5RkJ3WnhxPUIpKGpGRz8y
e1dWVylJI3dCQgp6WURuKjRNNXohLWs7WXlWOXV2WjI1YHJxOy1VUF8oRHVJbVVyWU9TVlVzQWB2
eC1QbFdNK2Q0N0whNShAQl55b04KemdySFBgQmBEN1B4NHlHVnBUQGs+cj4mJDI5N040NWN0UXVa
a084V2FEQXQyKGcjO0ZkMVYja0tZM0lOQUtASSlrCnoxZHZyQFVFSEB3WGU0K1Exaj5ZZkd6dTFj
T18wPjhjPyFTVURBQHhKJTBDJHVPamVRMXc4NmJXRTZpQTFHa2EkMwp6cD50dCMpSmF4JDNiXzVE
Zm1fbk4qOFpVKWs0VndsS2hGN0lRRU5zSGJUKHduN1BvfDUmLUlOcGhMZCp4T3h1aSYKektQV1dR
dElmX2cqRng5ZSt4N01AKjg8JT9VayE4KmlVQSFsfEtzb2NeTE1nNkg2TlYrMkh2NlZLfCFxdSRN
Ml9oCnpxbG9iRXpnMVpvbC0kN1VmRFBXayZWUXtNI3FqYm8rcHtSJUY1KDtibUFnS2ZrQ2M2RSg5
QEJmYEpaYm5CXjA7MAp6R1JsSk9IUVptSjJ0SFUtdkw+YndqOWk2PXc1QlJLYSllfHdYN1dCWiNO
fCNFX2FrZl5rMWU5RDB1bSFSP0NXaWQKejlEfEUrcC1CcTZQMnJYamA+QjJfUShWPlJJcm47fWFl
a2w2TWkzSXp5ME9ZWmF1X2ApXz5aQENTd0ttJEFuQCFMCnpMSk1GfCl4M2ZDWXxLU3o3T2UjZSM5
KXcraVVqVnchQjBuRyhKfUB5QjMzM3VVaFJgQEBGYXNFdzVhNEQ/SU1+Xwp6V259TUsqSlZ5OSEt
QDcjMGZ5VE9XPjheJk1rfn1DNWx7REhQQyZUMmdjcHMrcUJYZXFoJXFWKTgkJF53OGxeT1AKelFB
ODF7b3syRnZAa21KVkg2c0t+Pl80PiY5JUtVU0xWQERLXzxHZTZtIVRCZXpwNnlHSCg/cm4yXkx9
cks/UFp7CnpzeVE2PHllMzxhR3JSX18peHl8RUBCP051THkmblM9cShybk9VZXFZQTxgTE5CP3tG
Pjs3bio3XmVFUV9zQXo+PQp6PDBrfFo8dkQ4fDFgaDx1UWtMUzlSbE1jZjYjSnx4WXxsUWIjaEd3
SmJ1cmAkY3F3ZzVfeW1ANkVTNmAlZiF1YjEKekBhJXQqYCl8dTt4RX1Jdi1PeFpfYVBjRTdTYSU5
aiEzUUVJd1hLekQmNihPSDFAVkBvQSR2fH5DclNTdEdefCliCnpMVG5XMDxOfVFrJXJLe3pLPklL
dW88ZlZrNHNFSHhQJTJ2bVVKPllNdDBJZVYrSGtjQGR9V0k7TF8/TVZBJnx3Uwp6XlAoa3hfK2NI
aDNZTXxSZlNeY352YDhCPFdHcmYzMVB2IU5URE42M29jT3Z0VHNQdnNsOWJYYzsxYnVQNE13QEUK
ekhZWmdFZ2JNJjU5KERvKlV8M0h7TzUrOHxXLVMjNTU8QHU+dnRTUFNndGlFeFlgUjNFPXxMV0Zn
STg5clRUWk9hCnpZOzxAUzBNb1FBUEVyVFk9Q1M/XnNaZUBoZkdiYU9nVXlNOUQrISZucXlYemVz
O3hrbmtnNSQ9cj00RGtWZ3BrYwp6LVhje3B6YTElY3lSeTU4UiY3fHlMUylsfHAmPnN1XzsmZSVs
NzMpIXA+WGUjXylJai1ITnspZHN3T1Y3TVlMK2MKeig1Uz91ckFNNE0qayg3UilTYHZBaVhseVNZ
fnxrN18tO1B9ZlB7SnchN2RjPDd8cyREUD1+UmcwWFRwVjY7TVVFCnp8NFFHMFlQU1plUDRWN1Vu
WUBsa0hRWVBOZV4kWUZNWVBaPWxoaFNGXzlITnwqaDArYyQxX2ZGSEg9ZXMka29MTAp6MzZIVj1v
WTBqP0t+OHxqYFFLQzw2M2M5UVdiOEZQMkFMdS1yIzhmU2hiKSQxTnVsS0VXMipNTCojcW4tbDlD
PkIKeiopdDB8K0E0I3t2UGIkbDc1dD45NEx8QihibVNgPiR5aWxxMlNuPTZ2YTFZNzNWZWohO3xs
SSV2RVc4RikrOVRHCnpORTBpI1k0e3kyeERfc1BFTz5AVVgqNjdsJmxHTGJpb2s9T2A+PTdyMDIm
I0A0S0JxYVloMm5tem0oYztjO248VQp6RT0+JVY7LThwcGdHLX1oYWNUUEl4SE44WHNqP35jeEJP
dDxUOSU4eUYrcCNIT0pte0V4Vz1XWG92NHxgYUF7QnkKeiFhKlFReE9CeFpVdyNQQSg3elgpQSgw
WExDQDcyODQ5bk88Q2cyRnFxPCk/M3F0S3BPRUMoSCtYLWlJN2h+K2Q+CnpySG1lM2BKej5LPD9X
JGI/QU9Pd2NqUH15ODx3ZG9MQTFqeCU1citSSEpobClOREdwUHZLJnNiUmFzQSY5OHNxQAp6X0t2
MndJdEJZajx1bzFHZHNwbH1ZYGQ/N1U3ZlMmOz1mRTRycz08MEwoZjslTGJYZXZPWW0hcGs9fDR5
SSpZRU0KekhkTHBfYmctIUNaaEAkQVFGMWhvS2gkbCh6N1hPNnVWOVJFKFdRZFgwYDc4U0VoPGp+
VVJGWkUycmRmdHRJVGozCno0XyhRTikxaVMhRF5DdkVRZmJsPSRkSDU1Mm1ZbENNKTFUaCgrfFZ2
WDZfMDhsWTReNjc0JitHbz57WCNzfkVBUAp6K0IyO2tZNGxVaUgleEktZUg0cHwzbCpjRy1rRTJ7
Y3hFSzw1YGJDVkFGXyYoVV5vUV5UZzZDO1gmdGtXMXlnd0AKej11a04+YztAb00xYlZBN3IoKzRx
Mz1vK21EfVRYeT09ZCZGakNPbmRqNnQmP2tWWlF9RjEyVDdee3ckMElyVE1SCnpAZngxVlBtZWQr
ZjZifGpTWFlNcCg+JkJ2VV54dCF4LVVITTArcT1zWXtNZkNGTSNXZHIreys3NlhWN2NnRmk+WAp6
NktqYF9nZn1CUihOQDN7Rn4zazFMTChBMlF5MWhyMHllP3pwYHMqMSkpZ2d0emlkVUJeWjF5dzwz
ZjN0PVlSOUgKemc5OF4wPzIjKnxnPWNCdEdjZ3ZWUHdjNTUqTF5XT0M7YFMqYm4tej0hZVgrNUZZ
SCM3TWVTSXdadGE+X0gzUnZTCnpQTlZoTEBUPyphYjR4QGswQCswfnV7dUkjT2J4c3diVHkhZ003
LS0wI1JuY2FAQ1dkKkxQajtiVjAlR1F1RzJidAp6cDI7dkMrZmBVdVFETylCKWA9WSQwSyR+cmdU
UWctVENhTk9mbVIhZWd2a3FHJktoNSlod3g/QTtMQWYpayQzRUkKemp2LUFSTD9wOHI0UVUhbzMo
ZGY/V2lVKmNGb1lSPFBPYHxPWTZ6anV6Tjg5MERwM3VqRGomMllBYllKTmdZWHEqCno2WkNSYjdF
b3U/QmhBIUh3UDg4S2E+PTE9MzNWRm9JXzgzXnFhWHlxSkp+NUpSRkJqSSk/OEVmNjRhXnQ4ITBJ
Kwp6aE4zLUNpQjVHaEJrTVY4KVkrRk5IUU8xMmQ7UEZUbCM4PWckUWdCcWJjUSpQN3EqXlpeQER8
KWVkLTdSKzd8JEkKemh4P19BYTs0YCNAMDtwYnlOdEx+Xm8zaiQmKm94OTFvaE0lYVJhYXdmcjZ1
T28+cjI0OWNDN1hvdk1jfG51WXs4CnpIe1V9PyUkRkFKYHN0dXF6NkMjZDY1MTRYanQzXyFDUWww
cDdCajAmOVJ2Xj5TOU5pUUFHSmVhRXQ4IzliO0t6UAp6SXNnTUoxTXEtKTB2cmxFcl5pIXd4dGd2
UXUwdy1JbGd3KHBXKWY7V3YpMV99Y3hJXmVMaFBWfXFGMGN0eXJiPkkKeiZWaEEhK2oyZlltOT14
YCZTJUJsVndUM1c8JCYkUjBaQXcjV1RDKkQqI3d4RzVEPEp5TnRfMjxpfV4talNyeDQ7Cnp3SmpU
U2o0LURyX1I4X3JFS1gjaVh9Izx+dDd4cTEhOEghWClxK04oMHxoakw2PyFeeHhXS2J2Vyl+JlZo
KEx2Xwp6bk4xeVlMOEw4MCo0Wk5vNj9yRDIjcEBjNCVXMGxRRjNiI1RSQnR1NG4xfWhBQXUkK2oz
T3pOWWZhRlY2bztaKj0KenFOWWxObXQpSTN4bW8+P3ApcW9+OEJkeEEmfmRvVjFKSCg/KEw5Z25u
I1crMF98OzU/MW5xalIhKHw+ckREJE1JCnpDRDl6Tl42OzMxNUVLJDdJSjx1NG5rQER3RWJ3M3JF
Z0RyNG87blJ8ZiswNDIxKSRIb3hUQlM/VVMkeGdza25hUAp6VG9XNlcxMz1BY0sjdCY+SWRVWjhh
SzBEPi0memVKSnQ8YSZPPmgkSTQ4T24tITs9UFU4I1dKOHFoc3FqJUZzZygKelFjMChXPmJsaEdJ
eXhPaz5wRS1yQEpMfD45NFR4QzlGcVZYWk5xeSZieHt8NEhCNzNeYyppYWI0XmtvUEF1OSV3CnpG
NSR1UzJwOzZeS05UJT1KamV8SjUyfUdoTWx3N3x1NUl3KHZRI1lyMCVqenBidkJqYFpQVEh9Nzky
P1JrPithZgp6OzZrTlZfaTFMYzcjPDhWNTl8ZyFuOEI7NmgjQ18mRzRSTmUwNDxRO1BnVUAlRHtL
eWhKKzVXYG05XjVAOHlKQlEKekxKZWpOP3JWQEBLNn1JTVUrZmgtZHpWd3JzbElQYEMkKH1rVkw1
UTBLJjxoe2lJVGtaMlFuUWJrTkRvOD9mMkw2CnphfDlQVGFXc2ZPIUclYU1oRCk1Yjl3ajRTQmhV
WlgtdXo1P3hyPH5QaGRTYH1YcVZZenxGP1ByR20jbUdtd0psbQp6TiN7NXNCIV93e148TTw4YDNG
d1Q7eilLbXI3LWFXYCgyKy0lMHpiO0VxbSFNbV5BdVA4RDwtdjVDJGRMTW0tdj8KenNSaEdeNDY0
blV1cW5ka2VBcndGbn5Qenk1akliUiV9MnVLcW1jT2tBc0wtVU1EfXF4cX47VjBYPy1jVFlpWVE0
CnpnZ3NqTGRIIz1qRkZ3K0hqKT4mb2Z4VlRBU1pSKUAlMjcoajV9Wjw0QjFJJi1ndX1WaVZnejU8
JFJmSnYrKzJiVAp6UlYkckleXm1+bypGXkcrT2BjZ0dJIUkwLSNPU3QxPnBefjsxNDJsST8xOH5T
bmM1cUtXKjIqPmYtS292NThgQysKek9wcXZoI2lkdzZXJChQYnFeVWdgKC1KTHY3Y2EkPEVfKWw3
VmhOYk5Db2FYM0Y/JTFtNmlkd1BAblkmcygob2dSCnpEXm1yaiM8ZiUlOyFXc2BMaVJSRC1BRz1+
aD5nPWBhM2RsSzN3PWFkPWMwP0JibEFUM2t8JiljRSZWTV82JjZoRAp6MSlEantQLWApcGVDWiRC
RTh5Sjk5TVNISCRtTChSY1Nib3VUaG1rK1VhIW81Jig2b1oobVRNPF43KE5UamBQM1EKemZWVDdC
VSYtVEZHdntBaCRzO3hnLThfblRFWXs2ZUJqO1NxLX1sPTVxfFNkZ1Q+MWZOeHZOSmRqI28/Yl9f
ZnNpCnpgQiNgS3l9Tm01NnVxazU1NCFMek1ZUX1HTVpDS0YxeDR+a0E1V3hqQFpDaCNkQHw5aHpt
e2soZWtqcGR7Nj1EQgp6PkM9WGRadkFDTXpWdU48Wn5pPyplYCktcylyRlYoKlhFeEk0M14mREtY
S2V3MXJOPT4wNjRrJDNCc3d4dU5GPmMKeiFfa1dgPyFCY295dCNSNj1rOG5pO141eHFvJVFCfWZy
c0RoJVkjUSZfMDdpZ2BQKTBnVGlaSyhxZXRoKnBQJF5HCnpqP05lKGM3MU8mK0lxfGBodEVXWWxo
TzJUTT9YM15keSpPTlA1RWVIXkxmNUgqP3dYOF97SWx8ez9lKGtKQUQ0Nwp6SjlsMGxlKDF2Kylt
b3JuPWNWYjttT0xsSD4hWHF2WmZ9cHlZeUkkemk0TmJjWWRiSVMpZGJoeXA9JndfKldjTkUKenlL
JihtJldGITk+UHdeTi1fP0JaQCRUXlQjQ3NNJEAzPEpnKFJncTMoWj42bHVRQUBnQGNxUWIoJnJQ
OCQyVGBWCko1WmA/S2UqczgxVGpCciEKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdp
dCBhL0pTVGVzdHMvd2FzbS9mdW5jdGlvbi10ZXN0cy9zdGFjay10cmFjZS5qcyBiL0pTVGVzdHMv
d2FzbS9mdW5jdGlvbi10ZXN0cy9zdGFjay10cmFjZS5qcwppbmRleCBmYTZlN2VkLi5kNzBiM2Vh
IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3dhc20vZnVuY3Rpb24tdGVzdHMvc3RhY2stdHJhY2UuanMK
KysrIGIvSlNUZXN0cy93YXNtL2Z1bmN0aW9uLXRlc3RzL3N0YWNrLXRyYWNlLmpzCkBAIC00Nywx
MCArNDcsMTAgQEAgZm9yIChsZXQgaSA9IDA7IGkgPCAxMDAwMDsgKytpKSB7CiAgICAgc3RhY2t0
cmFjZSA9IHN0YWNrdHJhY2Uuc3BsaXQoIlxuIik7CiAgICAgYXNzZXJ0KHN0YWNrdHJhY2VbMF0u
aW5kZXhPZigiaW1wIikgIT09IC0xKTsgLy8gdGhlIGFycm93IGZ1bmN0aW9uIGltcG9ydCBuYW1l
ZCAiaW1wIi4KICAgICBhc3NlcnQoc3RhY2t0cmFjZVsxXSA9PT0gIndhc20gZnVuY3Rpb25AW3dh
c20gY29kZV0iKTsgLy8gdGhlIHdhc20tPmpzIHN0dWIKLSAgICBhc3NlcnQoc3RhY2t0cmFjZVsy
XSA9PT0gIndhc20gZnVuY3Rpb24gaW5kZXg6IDRAW3dhc20gY29kZV0iKTsKLSAgICBhc3NlcnQo
c3RhY2t0cmFjZVszXSA9PT0gIndhc20gZnVuY3Rpb24gaW5kZXg6IDJAW3dhc20gY29kZV0iKTsK
LSAgICBhc3NlcnQoc3RhY2t0cmFjZVs0XSA9PT0gIndhc20gZnVuY3Rpb24gaW5kZXg6IDNAW3dh
c20gY29kZV0iKTsKLSAgICBhc3NlcnQoc3RhY2t0cmFjZVs1XSA9PT0gIndhc20gZnVuY3Rpb24g
aW5kZXg6IDFAW3dhc20gY29kZV0iKTsKKyAgICBhc3NlcnQoc3RhY2t0cmFjZVsyXSA9PT0gIndh
c20gZnVuY3Rpb246IDRAW3dhc20gY29kZV0iKTsKKyAgICBhc3NlcnQoc3RhY2t0cmFjZVszXSA9
PT0gIndhc20gZnVuY3Rpb246IDJAW3dhc20gY29kZV0iKTsKKyAgICBhc3NlcnQoc3RhY2t0cmFj
ZVs0XSA9PT0gIndhc20gZnVuY3Rpb246IDNAW3dhc20gY29kZV0iKTsKKyAgICBhc3NlcnQoc3Rh
Y2t0cmFjZVs1XSA9PT0gIndhc20gZnVuY3Rpb246IDFAW3dhc20gY29kZV0iKTsKICAgICBhc3Nl
cnQoc3RhY2t0cmFjZVs2XSA9PT0gIndhc20gZnVuY3Rpb25AW3dhc20gY29kZV0iKTsgLy8gd2Fz
bSBlbnRyeQogCiAgICAgc3RhY2t0cmFjZSA9IG51bGw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VM
aXN0cy50eHQKaW5kZXggNDJkMGM0YS4uOTQ3ZGZjMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFr
ZUxpc3RzLnR4dApAQCAtOTQxLDYgKzk0MSw3IEBAIHNldChKYXZhU2NyaXB0Q29yZV9TT1VSQ0VT
CiAgICAgdG9vbHMvU2lnaWxsQ3Jhc2hBbmFseXplci5jcHAKICAgICB0b29scy9WTUluc3BlY3Rv
ci5jcHAKIAorCiAgICAgd2FzbS9KU1dlYkFzc2VtYmx5LmNwcAogICAgIHdhc20vV2FzbUIzSVJH
ZW5lcmF0b3IuY3BwCiAgICAgd2FzbS9XYXNtQkJRUGxhbi5jcHAKQEAgLTk1MSwxMiArOTUyLDE0
IEBAIHNldChKYXZhU2NyaXB0Q29yZV9TT1VSQ0VTCiAgICAgd2FzbS9XYXNtQ29udGV4dC5jcHAK
ICAgICB3YXNtL1dhc21GYXVsdFNpZ25hbEhhbmRsZXIuY3BwCiAgICAgd2FzbS9XYXNtRm9ybWF0
LmNwcAorICAgIHdhc20vV2FzbUluZGV4T3JOYW1lLmNwcAogICAgIHdhc20vV2FzbU1hY2hpbmVU
aHJlYWRzLmNwcAogICAgIHdhc20vV2FzbU1lbW9yeS5jcHAKICAgICB3YXNtL1dhc21NZW1vcnlJ
bmZvcm1hdGlvbi5jcHAKICAgICB3YXNtL1dhc21Nb2R1bGUuY3BwCiAgICAgd2FzbS9XYXNtTW9k
dWxlSW5mb3JtYXRpb24uY3BwCiAgICAgd2FzbS9XYXNtTW9kdWxlUGFyc2VyLmNwcAorICAgIHdh
c20vV2FzbU5hbWVTZWN0aW9uUGFyc2VyLmNwcAogICAgIHdhc20vV2FzbU9NR1BsYW4uY3BwCiAg
ICAgd2FzbS9XYXNtT3Bjb2RlT3JpZ2luLmNwcAogICAgIHdhc20vV2FzbVBhZ2VDb3VudC5jcHAK
QEAgLTk2NSw3ICs5NjgsNiBAQCBzZXQoSmF2YVNjcmlwdENvcmVfU09VUkNFUwogICAgIHdhc20v
V2FzbVRodW5rcy5jcHAKICAgICB3YXNtL1dhc21WYWxpZGF0ZS5jcHAKICAgICB3YXNtL1dhc21X
b3JrbGlzdC5jcHAKLQogICAgIHdhc20vanMvSlNXZWJBc3NlbWJseUNvZGVCbG9jay5jcHAKICAg
ICB3YXNtL2pzL0pTV2ViQXNzZW1ibHlDb21waWxlRXJyb3IuY3BwCiAgICAgd2FzbS9qcy9KU1dl
YkFzc2VtYmx5SW5zdGFuY2UuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Q2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA1NDc4NzFh
Li42MjQxMGIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2NyBAQAorMjAx
Ny0wNS0wOCAgSkYgQmFzdGllbiAgPGpmYmFzdGllbkBhcHBsZS5jb20+CisKKyAgICAgICAgV2Vi
QXNzZW1ibHk6IHN1cHBvcnQgbmFtZSBzZWN0aW9uCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MTI2MworCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBuYW1lIHNlY3Rpb24gaXMgYW4gb3B0aW9uYWwg
Y3VzdG9tIHNlY3Rpb24gaW4gdGhlIFdlYkFzc2VtYmx5CisgICAgICAgIHNwZWMuIEF0IGxlYXN0
IHdoZW4gZGVidWdnaW5nLCBkZXZlbG9wZXJzIGV4cGVjdCB0byBiZSBhYmxlIHRvIHVzZQorICAg
ICAgICB0aGlzIHNlY3Rpb24gdG8gb2J0YWluIGludGVsbGlnaWJsZSBzdGFjayB0cmFjZXMsIG90
aGVyd2lzZSB3ZQorICAgICAgICBqdXN0IG51bWJlciB0aGUgd2FzbSBmdW5jdGlvbnMgd2hpY2gg
aXMgc29tZXdoYXQgcGFpbmZ1bC4KKworICAgICAgICBUaGlzIHBhdGNoIHBhcnNlcyB0aGlzIHNl
Y3Rpb24sIGRyb3BwaW5nIGl0cyBjb250ZW50IGVhZ2VybHkgb24KKyAgICAgICAgZXJyb3IsIGFu
ZCBpZiB0aGVyZSBpcyBhIG5hbWUgc2VjdGlvbiB0aGVuIGJhY2t0cmFjZXMgdXNlIHRoZWlyCisg
ICAgICAgIHZhbHVlIGluc3RlYWQgb2YgbnVtYmVycy4gT3RoZXJ3aXNlIHdlIHN0aWNrIHRvIG51
bWJlcnMgYXMgYmVmb3JlLgorCisgICAgICAgIE5vdGUgdGhhdCB0aGUgZm9ybWF0IG9mIG5hbWUg
c2VjdGlvbnMgY2hhbmdlZCBpbiBtaWQtRmVicnVhcnk6CisgICAgICAgICAgaHR0cHM6Ly9naXRo
dWIuY29tL1dlYkFzc2VtYmx5L2Rlc2lnbi9wdWxsLzk4NAorICAgICAgICBBbmQgYmluYXJ5ZW4g
d2FzIG9ubHkgdXBkYXRlZCBpbiBlYXJseSBNYXJjaDoKKyAgICAgICAgICBodHRwczovL2dpdGh1
Yi5jb20vV2ViQXNzZW1ibHkvYmluYXJ5ZW4vcHVsbC85MzMKKworICAgICAgICAqIENNYWtlTGlz
dHMudHh0OgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2o6CisgICAgICAgICogaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwOgorICAgICAgICAoSlND
OjpHZXRTdGFja1RyYWNlRnVuY3Rvcjo6b3BlcmF0b3IoKSk6CisgICAgICAgICogaW50ZXJwcmV0
ZXIvU3RhY2tWaXNpdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6U3RhY2tWaXNpdG9yOjpyZWFkTm9u
SW5saW5lZEZyYW1lKToKKyAgICAgICAgKEpTQzo6U3RhY2tWaXNpdG9yOjpGcmFtZTo6ZnVuY3Rp
b25OYW1lKToKKyAgICAgICAgKiBpbnRlcnByZXRlci9TdGFja1Zpc2l0b3IuaDoKKyAgICAgICAg
KEpTQzo6U3RhY2tWaXNpdG9yOjpGcmFtZTo6d2FzbUZ1bmN0aW9uSW5kZXhPck5hbWUpOgorICAg
ICAgICAqIHJ1bnRpbWUvU3RhY2tGcmFtZS5jcHA6CisgICAgICAgIChKU0M6OlN0YWNrRnJhbWU6
OmZ1bmN0aW9uTmFtZSk6CisgICAgICAgICogcnVudGltZS9TdGFja0ZyYW1lLmg6CisgICAgICAg
IChKU0M6OlN0YWNrRnJhbWU6OlN0YWNrRnJhbWUpOgorICAgICAgICAoSlNDOjpTdGFja0ZyYW1l
Ojp3YXNtKToKKyAgICAgICAgKiB3YXNtL1dhc21CQlFQbGFuSW5saW5lcy5oOgorICAgICAgICAo
SlNDOjpXYXNtOjpCQlFQbGFuOjppbml0aWFsaXplQ2FsbGVlcyk6CisgICAgICAgICogd2FzbS9X
YXNtQ2FsbGVlLmNwcDoKKyAgICAgICAgKEpTQzo6V2FzbTo6Q2FsbGVlOjpDYWxsZWUpOgorICAg
ICAgICAqIHdhc20vV2FzbUNhbGxlZS5oOgorICAgICAgICAoSlNDOjpXYXNtOjpDYWxsZWU6OmNy
ZWF0ZSk6CisgICAgICAgIChKU0M6Oldhc206OkNhbGxlZTo6aW5kZXhPck5hbWUpOgorICAgICAg
ICAqIHdhc20vV2FzbUZvcm1hdC5jcHA6CisgICAgICAgIChKU0M6Oldhc206Om1ha2VTdHJpbmcp
OgorICAgICAgICAqIHdhc20vV2FzbUZvcm1hdC5oOgorICAgICAgICAoSlNDOjpXYXNtOjppc1Zh
bGlkRXh0ZXJuYWxLaW5kKToKKyAgICAgICAgKEpTQzo6V2FzbTo6aXNWYWxpZE5hbWVUeXBlKToK
KyAgICAgICAgKEpTQzo6V2FzbTo6TmFtZVNlY3Rpb246OmdldCk6CisgICAgICAgICogd2FzbS9X
YXNtSW5kZXhPck5hbWUuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9XYXNtQ2FsbGVlLmNwcC4KKyAgICAgICAgKEpTQzo6V2FzbTo6SW5kZXhPck5hbWU6OkluZGV4
T3JOYW1lKToKKyAgICAgICAgKEpTQzo6V2FzbTo6bWFrZVN0cmluZyk6CisgICAgICAgICogd2Fz
bS9XYXNtSW5kZXhPck5hbWUuaDogQ29waWVkIGZyb20gU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vV2FzbUZvcm1hdC5jcHAuCisgICAgICAgICogd2FzbS9XYXNtTW9kdWxlSW5mb3JtYXRpb24u
aDoKKyAgICAgICAgKiB3YXNtL1dhc21Nb2R1bGVQYXJzZXIuY3BwOgorICAgICAgICAqIHdhc20v
V2FzbU5hbWUuaDogQ29waWVkIGZyb20gU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUNh
bGxlZS5jcHAuCisgICAgICAgICogd2FzbS9XYXNtTmFtZVNlY3Rpb25QYXJzZXIuY3BwOiBBZGRl
ZC4KKyAgICAgICAgKiB3YXNtL1dhc21OYW1lU2VjdGlvblBhcnNlci5oOiBDb3BpZWQgZnJvbSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQ2FsbGVlLmNwcC4KKyAgICAgICAgKEpTQzo6
V2FzbTo6TmFtZVNlY3Rpb25QYXJzZXI6Ok5hbWVTZWN0aW9uUGFyc2VyKToKKyAgICAgICAgKiB3
YXNtL1dhc21PTUdQbGFuLmNwcDoKKyAgICAgICAgKEpTQzo6V2FzbTo6T01HUGxhbjo6d29yayk6
CisgICAgICAgICogd2FzbS9XYXNtUGFyc2VyLmg6CisgICAgICAgIChKU0M6Oldhc206OlBhcnNl
cjxTdWNjZXNzVHlwZT46OmNvbnN1bWVVVEY4U3RyaW5nKToKKwogMjAxNy0wNS0wNiAgQmlsbCBN
aW5nICA8bWJiaWxsQGdtYWlsLmNvbT4KIAogICAgICAgICBGaXggMzJiaXQgV2luZG93cyBidWls
ZCBieSBnaXZpbmcgY29ycmVjdCBwYXJhbWV0ZXJzIHRvIE1BU00KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKaW5kZXggNTIyMDE5NC4uYTAyNGYyYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKQEAgLTIxNDIsMTMgKzIxNDIsMTggQEAKIAkJQUQ0OTM3RDQxREREMjdERTAwNzdDODA3
IC8qIFdlYkFzc2VtYmx5RnVuY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEFENDkzN0NBMURERDI3MzQwMDc3QzgwNyAvKiBXZWJBc3NlbWJseUZ1
bmN0aW9uLmggKi87IH07CiAJCUFENEIxREY5MURGMjQ0RTIwMDcxQUUzMiAvKiBXYXNtQmluZGlu
Zy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBRDRC
MURGNzFERjI0NEQ3MDA3MUFFMzIgLyogV2FzbUJpbmRpbmcuY3BwICovOyB9OwogCQlBRDRCMURG
QTFERjI0NEUyMDA3MUFFMzIgLyogV2FzbUJpbmRpbmcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFENEIxREY4MURGMjQ0RDcwMDcxQUUzMiAvKiBXYXNt
QmluZGluZy5oICovOyB9OworCQlBRDVCNDE2RjFFQkFGQjc3MDA4RUZBNDMgLyogV2FzbU5hbWUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFENUI0MTZF
MUVCQUZCNjUwMDhFRkE0MyAvKiBXYXNtTmFtZS5oICovOyB9OwogCQlBRDc0MzhDMDFFMDQ1N0E0
MDBGRDBDMkEgLyogV2FzbVNpZ25hdHVyZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQUQ3NDM4QkYxRTA0NTc5MjAwRkQwQzJBIC8qIFdhc21TaWduYXR1
cmUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlB
RDc0MzhDMTFFMDQ1N0FBMDBGRDBDMkEgLyogV2FzbVNpZ25hdHVyZS5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBRDc0MzhCRTFFMDQ1NzkyMDBGRDBD
MkEgLyogV2FzbVNpZ25hdHVyZS5jcHAgKi87IH07CiAJCUFEODZBOTNFMUFBNEQ4OEQwMDJGRTc3
RiAvKiBXZWFrR0NNYXBJbmxpbmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBBRDg2QTkzRDFBQTREODdDMDAyRkU3N0YgLyogV2Vha0dDTWFwSW5saW5l
cy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUFE
OEZGMzk3MUVCNUJEQTgwMDg3RkY4MiAvKiBXYXNtSW5kZXhPck5hbWUuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUQ4RkYzOTYxRUI1QkQ4NTAwODdG
RjgyIC8qIFdhc21JbmRleE9yTmFtZS5jcHAgKi87IH07CisJCUFEOEZGMzk4MUVCNUJEQjIwMDg3
RkY4MiAvKiBXYXNtSW5kZXhPck5hbWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEFEOEZGMzk1MUVCNUJEODUwMDg3RkY4MiAvKiBXYXNtSW5kZXhPck5h
bWUuaCAqLzsgfTsKIAkJQUQ5RTg1MkYxRThBMEM3QzAwOERFMzlFIC8qIEpTV2ViQXNzZW1ibHlD
b2RlQmxvY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEFEOUU4NTJFMUU4QTBDNkUwMDhERTM5RSAvKiBKU1dlYkFzc2VtYmx5Q29kZUJsb2NrLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQURCNkY2N0Qx
RTE1RDc2MDAwODJGMzg0IC8qIFdhc21QYWdlQ291bnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQURCNkY2N0MxRTE1RDc1MDAwODJGMzg0IC8qIFdh
c21QYWdlQ291bnQuY3BwICovOyB9OwogCQlBREJDNTRENDFERjhFQTJCMDA1QkY3MzggLyogV2Vi
QXNzZW1ibHlUb0pTQ2FsbGVlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEFEQkM1NEQyMURGOEVBMDAwMDVCRjczOCAvKiBXZWJBc3NlbWJseVRvSlND
YWxsZWUuY3BwICovOyB9OwogCQlBREJDNTRENTFERjhFQTJCMDA1QkY3MzggLyogV2ViQXNzZW1i
bHlUb0pTQ2FsbGVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBBREJDNTREMzFERjhFQTAwMDA1QkY3MzggLyogV2ViQXNzZW1ibHlUb0pTQ2FsbGVlLmgg
Ki87IH07CisJCUFERDhGQTQ1MUVCMzA3OEUwMERGNTQyRiAvKiBXYXNtTmFtZVNlY3Rpb25QYXJz
ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQURE
OEZBNDQxRUIzMDc3MTAwREY1NDJGIC8qIFdhc21OYW1lU2VjdGlvblBhcnNlci5jcHAgKi87IH07
CisJCUFERDhGQTQ2MUVCMzA3OTcwMERGNTQyRiAvKiBXYXNtTmFtZVNlY3Rpb25QYXJzZXIuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFERDhGQTQzMUVC
MzA3NzEwMERGNTQyRiAvKiBXYXNtTmFtZVNlY3Rpb25QYXJzZXIuaCAqLzsgfTsKIAkJQUREQjFG
NjMxOEQ3N0RCRTAwOUI1OEE4IC8qIE9wYXF1ZVJvb3RTZXQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFEREIxRjYyMThENzdEQjcwMDlCNThBOCAvKiBP
cGFxdWVSb290U2V0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJQURFMzlGRkYxNkREMTQ0QjAwMDNDRDRBIC8qIFByb3BlcnR5VGFibGUuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUQxQ0YwNjgxNkRD
QUIyRDAwQjk3MTIzIC8qIFByb3BlcnR5VGFibGUuY3BwICovOyB9OwogCQlBREU4MDI5ODFFMDhG
MURFMDA1OERFNzggLyogSlNXZWJBc3NlbWJseUxpbmtFcnJvci5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBREU4MDI5MzFFMDhGMUM5MDA1OERFNzgg
LyogSlNXZWJBc3NlbWJseUxpbmtFcnJvci5jcHAgKi87IH07CkBAIC00NzY2LDEzICs0NzcxLDE4
IEBACiAJCUFENDkzN0NBMURERDI3MzQwMDc3QzgwNyAvKiBXZWJBc3NlbWJseUZ1bmN0aW9uLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdlYkFzc2VtYmx5RnVuY3Rpb24uaDsg
cGF0aCA9IGpzL1dlYkFzc2VtYmx5RnVuY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQUQ0QjFERjcxREYyNDRENzAwNzFBRTMyIC8qIFdhc21CaW5kaW5nLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdhc21CaW5kaW5nLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQUQ0QjFERjgxREYyNDRENzAwNzFBRTMyIC8qIFdhc21CaW5k
aW5nLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdhc21CaW5kaW5nLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUFENUI0MTZFMUVCQUZCNjUwMDhFRkE0MyAvKiBX
YXNtTmFtZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXYXNtTmFtZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBRDc0MzhCRTFFMDQ1NzkyMDBGRDBDMkEgLyog
V2FzbVNpZ25hdHVyZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBX
YXNtU2lnbmF0dXJlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQUQ3NDM4QkYx
RTA0NTc5MjAwRkQwQzJBIC8qIFdhc21TaWduYXR1cmUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gV2FzbVNpZ25hdHVyZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlBRDg2QTkzRDFBQTREODdDMDAyRkU3N0YgLyogV2Vha0dDTWFwSW5saW5lcy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWFrR0NNYXBJbmxpbmVzLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUFEOEZGMzk1MUVCNUJEODUwMDg3RkY4MiAvKiBXYXNtSW5kZXhP
ck5hbWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2FzbUluZGV4T3JOYW1l
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUFEOEZGMzk2MUVCNUJEODUwMDg3RkY4
MiAvKiBXYXNtSW5kZXhPck5hbWUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gV2FzbUluZGV4T3JOYW1lLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
QUQ5RTg1MkUxRThBMEM2RTAwOERFMzlFIC8qIEpTV2ViQXNzZW1ibHlDb2RlQmxvY2suaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gSlNXZWJBc3NlbWJseUNvZGVCbG9jay5oOyBw
YXRoID0ganMvSlNXZWJBc3NlbWJseUNvZGVCbG9jay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlBREI2RjY3QzFFMTVENzUwMDA4MkYzODQgLyogV2FzbVBhZ2VDb3VudC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXYXNtUGFnZUNvdW50LmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQURCQzU0RDIxREY4RUEwMDAwNUJGNzM4IC8qIFdl
YkFzc2VtYmx5VG9KU0NhbGxlZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5h
bWUgPSBXZWJBc3NlbWJseVRvSlNDYWxsZWUuY3BwOyBwYXRoID0ganMvV2ViQXNzZW1ibHlUb0pT
Q2FsbGVlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQURCQzU0RDMxREY4RUEw
MDAwNUJGNzM4IC8qIFdlYkFzc2VtYmx5VG9KU0NhbGxlZS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IG5hbWUgPSBXZWJBc3NlbWJseVRvSlNDYWxsZWUuaDsgcGF0aCA9IGpzL1dlYkFzc2Vt
Ymx5VG9KU0NhbGxlZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBREQ4RkE0MzFF
QjMwNzcxMDBERjU0MkYgLyogV2FzbU5hbWVTZWN0aW9uUGFyc2VyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFdhc21OYW1lU2VjdGlvblBhcnNlci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlBREQ4RkE0NDFFQjMwNzcxMDBERjU0MkYgLyogV2FzbU5hbWVTZWN0
aW9uUGFyc2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdhc21O
YW1lU2VjdGlvblBhcnNlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUFEREIx
RjYyMThENzdEQjcwMDlCNThBOCAvKiBPcGFxdWVSb290U2V0LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IE9wYXF1ZVJvb3RTZXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQURFODAyOTMxRTA4RjFDOTAwNThERTc4IC8qIEpTV2ViQXNzZW1ibHlMaW5rRXJyb3Iu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gSlNXZWJBc3NlbWJseUxp
bmtFcnJvci5jcHA7IHBhdGggPSBqcy9KU1dlYkFzc2VtYmx5TGlua0Vycm9yLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQURFODAyOTQxRTA4RjFDOTAwNThERTc4IC8qIEpTV2Vi
QXNzZW1ibHlMaW5rRXJyb3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gSlNX
ZWJBc3NlbWJseUxpbmtFcnJvci5oOyBwYXRoID0ganMvSlNXZWJBc3NlbWJseUxpbmtFcnJvci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNjQwMCwyOCArNjQxMCwzMyBAQAogCQkJ
CUFENDEyQjMxMUU3QjJFOEEwMDhBRjE1NyAvKiBXYXNtQ29udGV4dC5jcHAgKi8sCiAJCQkJQUQ0
MTJCMzIxRTdCMkU4QTAwOEFGMTU3IC8qIFdhc21Db250ZXh0LmggKi8sCiAJCQkJNzlEQUUyNzkx
RTAzQzgyMjAwQjUyNkFBIC8qIFdhc21FeGNlcHRpb25UeXBlLmggKi8sCisJCQkJNTM4MUI5MzYx
RTYwRTk2NjAwOTBGNzk0IC8qIFdhc21GYXVsdFNpZ25hbEhhbmRsZXIuY3BwICovLAorCQkJCTUz
ODFCOTM4MUU2MEU5N0QwMDkwRjc5NCAvKiBXYXNtRmF1bHRTaWduYWxIYW5kbGVyLmggKi8sCiAJ
CQkJQUQyRkNDMzIxREM0MDQ1MzAwQjNFNzM2IC8qIFdhc21Gb3JtYXQuY3BwICovLAogCQkJCTdC
QzU0N0QyMUI2OTU5OUIwMDk1OUI1OCAvKiBXYXNtRm9ybWF0LmggKi8sCiAJCQkJNTNGNDBFOEEx
RDU5MDFCQjAwOTlBMUI2IC8qIFdhc21GdW5jdGlvblBhcnNlci5oICovLAorCQkJCUFEOEZGMzk2
MUVCNUJEODUwMDg3RkY4MiAvKiBXYXNtSW5kZXhPck5hbWUuY3BwICovLAorCQkJCUFEOEZGMzk1
MUVCNUJEODUwMDg3RkY4MiAvKiBXYXNtSW5kZXhPck5hbWUuaCAqLywKIAkJCQk1M0U5RTBBOTFF
QUU4M0RFMDBGRUUyNTEgLyogV2FzbU1hY2hpbmVUaHJlYWRzLmNwcCAqLywKIAkJCQk1M0U5RTBB
QTFFQUU4M0RFMDBGRUUyNTEgLyogV2FzbU1hY2hpbmVUaHJlYWRzLmggKi8sCi0JCQkJNzkwMDgx
MzYxRTk1QThFQzAwNTJEN0NEIC8qIFdhc21Nb2R1bGUuY3BwICovLAotCQkJCTc5MDA4MTM3MUU5
NUE4RUMwMDUyRDdDRCAvKiBXYXNtTW9kdWxlLmggKi8sCiAJCQkJNTM1NTU3MTUxRDlERkEzMjAw
NkQ1ODNCIC8qIFdhc21NZW1vcnkuY3BwICovLAogCQkJCTUzNTU1NzEzMUQ5RDlFQTUwMDZENTgz
QiAvKiBXYXNtTWVtb3J5LmggKi8sCiAJCQkJNzlCNzU5NzExREZBNEM2MDAwNTIxNzRDIC8qIFdh
c21NZW1vcnlJbmZvcm1hdGlvbi5jcHAgKi8sCiAJCQkJNzlCNzU5NzIxREZBNEM2MDAwNTIxNzRD
IC8qIFdhc21NZW1vcnlJbmZvcm1hdGlvbi5oICovLAorCQkJCTc5MDA4MTM2MUU5NUE4RUMwMDUy
RDdDRCAvKiBXYXNtTW9kdWxlLmNwcCAqLywKKwkJCQk3OTAwODEzNzFFOTVBOEVDMDA1MkQ3Q0Qg
LyogV2FzbU1vZHVsZS5oICovLAogCQkJCTUzRTc3N0UxMUU5MkUyNjUwMDdDQkVDNCAvKiBXYXNt
TW9kdWxlSW5mb3JtYXRpb24uY3BwICovLAogCQkJCTUzRTc3N0UyMUU5MkUyNjUwMDdDQkVDNCAv
KiBXYXNtTW9kdWxlSW5mb3JtYXRpb24uaCAqLywKIAkJCQk1M0Y0MEU5NjFENUE3QkVDMDA5OUEx
QjYgLyogV2FzbU1vZHVsZVBhcnNlci5jcHAgKi8sCiAJCQkJNTNGNDBFOTQxRDVBN0FFRjAwOTlB
MUI2IC8qIFdhc21Nb2R1bGVQYXJzZXIuaCAqLywKKwkJCQlBRDVCNDE2RTFFQkFGQjY1MDA4RUZB
NDMgLyogV2FzbU5hbWUuaCAqLywKKwkJCQlBREQ4RkE0NDFFQjMwNzcxMDBERjU0MkYgLyogV2Fz
bU5hbWVTZWN0aW9uUGFyc2VyLmNwcCAqLywKKwkJCQlBREQ4RkE0MzFFQjMwNzcxMDBERjU0MkYg
LyogV2FzbU5hbWVTZWN0aW9uUGFyc2VyLmggKi8sCiAJCQkJNTMxMUJENDgxRUE1ODFFNTAwNTI1
MjgxIC8qIFdhc21PTUdQbGFuLmNwcCAqLywKIAkJCQk1MzExQkQ0OTFFQTU4MUU1MDA1MjUyODEg
LyogV2FzbU9NR1BsYW4uaCAqLywKLQkJCQlBREI2RjY3QzFFMTVENzUwMDA4MkYzODQgLyogV2Fz
bVBhZ2VDb3VudC5jcHAgKi8sCi0JCQkJNTM4MUI5MzYxRTYwRTk2NjAwOTBGNzk0IC8qIFdhc21G
YXVsdFNpZ25hbEhhbmRsZXIuY3BwICovLAotCQkJCTUzODFCOTM4MUU2MEU5N0QwMDkwRjc5NCAv
KiBXYXNtRmF1bHRTaWduYWxIYW5kbGVyLmggKi8sCiAJCQkJNTNDNkZFRjAxRThBRkUwQzAwQjE4
NDI1IC8qIFdhc21PcGNvZGVPcmlnaW4uY3BwICovLAogCQkJCTUzQzZGRUVFMUU4QURGQTkwMEIx
ODQyNSAvKiBXYXNtT3Bjb2RlT3JpZ2luLmggKi8sCisJCQkJQURCNkY2N0MxRTE1RDc1MDAwODJG
Mzg0IC8qIFdhc21QYWdlQ291bnQuY3BwICovLAogCQkJCTc5Qjc1OTczMURGQTRDNjAwMDUyMTc0
QyAvKiBXYXNtUGFnZUNvdW50LmggKi8sCiAJCQkJNTNGNDBFOEMxRDU5MDFGMjAwOTlBMUI2IC8q
IFdhc21QYXJzZXIuaCAqLywKIAkJCQk1MzEzNzRCRTFENUNFOTUwMDBBRjdBMEIgLyogV2FzbVBs
YW4uY3BwICovLApAQCAtODIwNiw2ICs4MjIxLDcgQEAKIAkJCQkwRjYxODMzMTFDNDVCRjA3MDA3
MjQ1MEIgLyogQWlyTG93ZXJNYWNyb3MuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNDBFNEE3MUM0
OTdGNzQwMEE1NzdGQSAvKiBBaXJPcGNvZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNDBFNEE4
MUM0OTdGNzQwMEE1NzdGQSAvKiBBaXJPcGNvZGVHZW5lcmF0ZWQuaCBpbiBIZWFkZXJzICovLAor
CQkJCUFEOEZGMzk4MUVCNUJEQjIwMDg3RkY4MiAvKiBXYXNtSW5kZXhPck5hbWUuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTBGNDBFNEE5MUM0OTdGNzQwMEE1NzdGQSAvKiBBaXJPcGNvZGVVdGlscy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMEZCMzg3OTAxQkZCQzQ0RDAwRTNBQjFFIC8qIEFpck9wdGlt
aXplQmxvY2tPcmRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY5Q0FCQzkxREI1NEE3QTAwMDhF
ODNCIC8qIEFpclBhZEludGVyZmVyZW5jZS5oIGluIEhlYWRlcnMgKi8sCkBAIC04MzI0LDYgKzgz
NDAsNyBAQAogCQkJCTBGRUM4NTI0MUJEQUNEQUMwMDgwRkY3NCAvKiBCM09yaWdpbi5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMEY0QzkxNjYxQzI5RjRGMjAwNDM0MUE2IC8qIEIzT3JpZ2luRHVtcC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFQzg1MjYxQkRBQ0RBQzAwODBGRjc0IC8qIEIzUGF0Y2hw
b2ludFNwZWNpYWwuaCBpbiBIZWFkZXJzICovLAorCQkJCUFERDhGQTQ2MUVCMzA3OTcwMERGNTQy
RiAvKiBXYXNtTmFtZVNlY3Rpb25QYXJzZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUM4NTI4
MUJEQUNEQUMwMDgwRkY3NCAvKiBCM1BhdGNocG9pbnRWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNzk5RUY3QzQxQzU2RUQ5NjAwMkIwNTM0IC8qIEIzUENUb09yaWdpbk1hcC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMEZFQzg1MkExQkRBQ0RBQzAwODBGRjc0IC8qIEIzUGhhc2VTY29wZS5oIGlu
IEhlYWRlcnMgKi8sCkBAIC04NjQzLDYgKzg2NjAsNyBAQAogCQkJCTg2RUM5REQxMTMyOERGODIw
MDJCMkFENyAvKiBERkdSZWdpc3RlckJhbmsuaCBpbiBIZWFkZXJzICovLAogCQkJCTc5RkM4QTA4
MUUzMkU5RjAwMEQ4OEYwRSAvKiBERkdSZWdpc3RlcmVkU3RydWN0dXJlLmggaW4gSGVhZGVycyAq
LywKIAkJCQk3OTgwQzE2RDFFM0E5NDBFMDBCNzE2MTUgLyogREZHUmVnaXN0ZXJlZFN0cnVjdHVy
ZVNldC5oIGluIEhlYWRlcnMgKi8sCisJCQkJQUQ1QjQxNkYxRUJBRkI3NzAwOEVGQTQzIC8qIFdh
c21OYW1lLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjJGQ0NGQzE4QTYwMDcwMDAxQTI3RjggLyog
REZHU2FmZXBvaW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlBNzdBNDI0MzE3QTBCQkZEMDBBOERC
ODEgLyogREZHU2FmZVRvRXhlY3V0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTc0MTAxN0YxNzlE
QUY4MDAwMkVCOEJBIC8qIERGR1NhbmVTdHJpbmdHZXRCeVZhbFNsb3dQYXRoR2VuZXJhdG9yLmgg
aW4gSGVhZGVycyAqLywKQEAgLTEwOTY5LDYgKzEwOTg3LDcgQEAKIAkJCQkwRjZDNzM1MDFBQzlG
OTlGMDBCRTE2ODIgLyogVmFyaWFibGVXcml0ZUZpcmVEZXRhaWwuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJMEZFMDUwMkMxQUE5MDk1NjAwRDMzQjMzIC8qIFZhck9mZnNldC5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkwRjIwQzI1OTFBODAxM0FCMDBEQTMyMjkgLyogVmlydHVhbFJlZ2lzdGVyLmNw
cCBpbiBTb3VyY2VzICovLAorCQkJCUFEOEZGMzk3MUVCNUJEQTgwMDg3RkY4MiAvKiBXYXNtSW5k
ZXhPck5hbWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY5NTJBQTIxREY3ODYwRDAwRTA2RkJE
IC8qIFZpc2l0UmFjZUtleS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFMThFM0E1OTBERjkyNzhD
MDBEOTBCMzQgLyogVk0uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkU1OTMyQTcxODNDNUEyNjAw
QTFFQ0NDIC8qIFZNRW50cnlTY29wZS5jcHAgaW4gU291cmNlcyAqLywKQEAgLTExMDI1LDYgKzEx
MDQ0LDcgQEAKIAkJCQk4NjcwNEI4NjEyREJBMzM3MDBBOUZFN0IgLyogWWFyckpJVC5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQk4NjcwNEI4OTEyREJBMzM3MDBBOUZFN0IgLyogWWFyclBhdHRlcm4u
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODY3MDRCNDIxMkRCOEE4MTAwQTlGRTdCIC8qIFlhcnJT
eW50YXhDaGVja2VyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUFERDhGQTQ1MUVCMzA3OEUwMERG
NTQyRiAvKiBXYXNtTmFtZVNlY3Rpb25QYXJzZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzIx
RDlFNENGQjY3NDIzQTk3RjE5MUE3IC8qIE1vZHVsZU5hbWVzcGFjZUFjY2Vzc0Nhc2UuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2lu
ZyA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50
ZXJwcmV0ZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJl
dGVyLmNwcAppbmRleCA4ODgxNjY3Li43ZjhmNDU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5jcHAKQEAgLTQ4MCw4ICs0ODAsNyBAQCBw
dWJsaWM6CiAKICAgICAgICAgaWYgKG1fcmVtYWluaW5nQ2FwYWNpdHlGb3JGcmFtZUNhcHR1cmUp
IHsKICAgICAgICAgICAgIGlmICh2aXNpdG9yLT5pc1dhc21GcmFtZSgpKSB7Ci0gICAgICAgICAg
ICAgICAgc3RkOjpvcHRpb25hbDx1bnNpZ25lZD4gd2FzbUZ1bmN0aW9uSW5kZXggPSB2aXNpdG9y
LT53YXNtRnVuY3Rpb25JbmRleCgpOwotICAgICAgICAgICAgICAgIG1fcmVzdWx0cy5hcHBlbmQo
U3RhY2tGcmFtZTo6d2FzbSh3YXNtRnVuY3Rpb25JbmRleCA/ICp3YXNtRnVuY3Rpb25JbmRleCA6
IFN0YWNrRnJhbWU6OmludmFsaWRXYXNtSW5kZXgpKTsKKyAgICAgICAgICAgICAgICBtX3Jlc3Vs
dHMuYXBwZW5kKFN0YWNrRnJhbWU6Ondhc20odmlzaXRvci0+d2FzbUZ1bmN0aW9uSW5kZXhPck5h
bWUoKSkpOwogICAgICAgICAgICAgfSBlbHNlIGlmICghIXZpc2l0b3ItPmNvZGVCbG9jaygpICYm
ICF2aXNpdG9yLT5jb2RlQmxvY2soKS0+dW5saW5rZWRDb2RlQmxvY2soKS0+aXNCdWlsdGluRnVu
Y3Rpb24oKSkgewogICAgICAgICAgICAgICAgIG1fcmVzdWx0cy5hcHBlbmQoCiAgICAgICAgICAg
ICAgICAgICAgIFN0YWNrRnJhbWUobV92bSwgdmlzaXRvci0+Y2FsbGVlKCkuYXNDZWxsKCksIHZp
c2l0b3ItPmNvZGVCbG9jaygpLCB2aXNpdG9yLT5ieXRlY29kZU9mZnNldCgpKSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvU3RhY2tWaXNpdG9yLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9TdGFja1Zpc2l0b3IuY3BwCmluZGV4
IDUyZWFmYzkuLjFkNjRkNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRl
cnByZXRlci9TdGFja1Zpc2l0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRl
cnByZXRlci9TdGFja1Zpc2l0b3IuY3BwCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiSW50
ZXJwcmV0ZXIuaCIKICNpbmNsdWRlICJKU0NJbmxpbmVzLmgiCiAjaW5jbHVkZSAiV2FzbUNhbGxl
ZS5oIgorI2luY2x1ZGUgIldhc21JbmRleE9yTmFtZS5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0
cmluZ0J1aWxkZXIuaD4KIAogbmFtZXNwYWNlIEpTQyB7CkBAIC0xNjYsNyArMTY3LDcgQEAgdm9p
ZCBTdGFja1Zpc2l0b3I6OnJlYWROb25JbmxpbmVkRnJhbWUoQ2FsbEZyYW1lKiBjYWxsRnJhbWUs
IENvZGVPcmlnaW4qIGNvZGVPcmkKICNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCiAgICAgICAgIENh
bGxlZUJpdHMgYml0cyA9IGNhbGxGcmFtZS0+Y2FsbGVlKCk7CiAgICAgICAgIGlmIChiaXRzLmlz
V2FzbSgpKQotICAgICAgICAgICAgbV9mcmFtZS5tX3dhc21GdW5jdGlvbkluZGV4ID0gYml0cy5h
c1dhc21DYWxsZWUoKS0+aW5kZXgoKTsKKyAgICAgICAgICAgIG1fZnJhbWUubV93YXNtRnVuY3Rp
b25JbmRleE9yTmFtZSA9IGJpdHMuYXNXYXNtQ2FsbGVlKCktPmluZGV4T3JOYW1lKCk7CiAjZW5k
aWYKICAgICB9IGVsc2UgewogICAgICAgICBtX2ZyYW1lLm1fY29kZUJsb2NrID0gY2FsbEZyYW1l
LT5jb2RlQmxvY2soKTsKQEAgLTI4MywxMCArMjg0LDEwIEBAIFN0cmluZyBTdGFja1Zpc2l0b3I6
OkZyYW1lOjpmdW5jdGlvbk5hbWUoKSBjb25zdAogCiAgICAgc3dpdGNoIChjb2RlVHlwZSgpKSB7
CiAgICAgY2FzZSBDb2RlVHlwZTo6V2FzbToKLSAgICAgICAgaWYgKG1fd2FzbUZ1bmN0aW9uSW5k
ZXgpCi0gICAgICAgICAgICB0cmFjZUxpbmUgPSBtYWtlU3RyaW5nKCJ3YXNtIGZ1bmN0aW9uIGlu
ZGV4OiAiLCBTdHJpbmc6Om51bWJlcigqbV93YXNtRnVuY3Rpb25JbmRleCkpOworICAgICAgICBp
ZiAobV93YXNtRnVuY3Rpb25JbmRleE9yTmFtZS5pc0VtcHR5KCkpCisgICAgICAgICAgICB0cmFj
ZUxpbmUgPSBtYWtlU3RyaW5nKCJ3YXNtIGZ1bmN0aW9uIik7CiAgICAgICAgIGVsc2UKLSAgICAg
ICAgICAgIHRyYWNlTGluZSA9IEFTQ0lJTGl0ZXJhbCgid2FzbSBmdW5jdGlvbiIpOworICAgICAg
ICAgICAgdHJhY2VMaW5lID0gbWFrZVN0cmluZygid2FzbSBmdW5jdGlvbjogIiwgbWFrZVN0cmlu
ZyhtX3dhc21GdW5jdGlvbkluZGV4T3JOYW1lKSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
Q29kZVR5cGU6OkV2YWw6CiAgICAgICAgIHRyYWNlTGluZSA9IEFTQ0lJTGl0ZXJhbCgiZXZhbCBj
b2RlIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvU3Rh
Y2tWaXNpdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvU3RhY2tWaXNp
dG9yLmgKaW5kZXggNDUxMDM3MC4uYWEwYjMzMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ludGVycHJldGVyL1N0YWNrVmlzaXRvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnRlcnByZXRlci9TdGFja1Zpc2l0b3IuaApAQCAtMjcsNiArMjcsNyBAQAogCiAjaW5j
bHVkZSAiQ2FsbGVlQml0cy5oIgogI2luY2x1ZGUgIlZNRW50cnlSZWNvcmQuaCIKKyNpbmNsdWRl
ICJXYXNtSW5kZXhPck5hbWUuaCIKICNpbmNsdWRlIDxmdW5jdGlvbmFsPgogI2luY2x1ZGUgPHd0
Zi9JbmRlbnRlci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgpAQCAtNzcsMTAg
Kzc4LDEwIEBAIHB1YmxpYzoKICAgICAgICAgYm9vbCBpc05hdGl2ZUZyYW1lKCkgY29uc3QgeyBy
ZXR1cm4gIWNvZGVCbG9jaygpICYmICFpc1dhc21GcmFtZSgpOyB9CiAgICAgICAgIGJvb2wgaXNJ
bmxpbmVkRnJhbWUoKSBjb25zdCB7IHJldHVybiAhIWlubGluZUNhbGxGcmFtZSgpOyB9CiAgICAg
ICAgIGJvb2wgaXNXYXNtRnJhbWUoKSBjb25zdDsKLSAgICAgICAgc3RkOjpvcHRpb25hbDx1bnNp
Z25lZD4gY29uc3Qgd2FzbUZ1bmN0aW9uSW5kZXgoKQorICAgICAgICBXYXNtOjpJbmRleE9yTmFt
ZSBjb25zdCB3YXNtRnVuY3Rpb25JbmRleE9yTmFtZSgpCiAgICAgICAgIHsKICAgICAgICAgICAg
IEFTU0VSVChpc1dhc21GcmFtZSgpKTsKLSAgICAgICAgICAgIHJldHVybiBtX3dhc21GdW5jdGlv
bkluZGV4OworICAgICAgICAgICAgcmV0dXJuIG1fd2FzbUZ1bmN0aW9uSW5kZXhPck5hbWU7CiAg
ICAgICAgIH0KIAogICAgICAgICBKU19FWFBPUlRfUFJJVkFURSBTdHJpbmcgZnVuY3Rpb25OYW1l
KCkgY29uc3Q7CkBAIC0xMjEsNyArMTIyLDcgQEAgcHVibGljOgogICAgICAgICBzaXplX3QgbV9p
bmRleDsKICAgICAgICAgc2l6ZV90IG1fYXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXM7CiAgICAg
ICAgIHVuc2lnbmVkIG1fYnl0ZWNvZGVPZmZzZXQ7Ci0gICAgICAgIHN0ZDo6b3B0aW9uYWw8dW5z
aWduZWQ+IG1fd2FzbUZ1bmN0aW9uSW5kZXg7CisgICAgICAgIFdhc206OkluZGV4T3JOYW1lIG1f
d2FzbUZ1bmN0aW9uSW5kZXhPck5hbWU7CiAgICAgICAgIGJvb2wgbV9jYWxsZXJJc1ZNRW50cnlG
cmFtZSA6IDE7CiAgICAgICAgIGJvb2wgbV9pc1dhc21GcmFtZSA6IDE7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0YWNrRnJhbWUuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RhY2tGcmFtZS5jcHAKaW5kZXggYzZkMjNkOS4uODM2ZWEw
YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RhY2tGcmFtZS5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RhY2tGcmFtZS5jcHAKQEAg
LTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNi0yMDE3IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNTgs
OSArNTgsOSBAQCBTdHJpbmcgU3RhY2tGcmFtZTo6c291cmNlVVJMKCkgY29uc3QKIFN0cmluZyBT
dGFja0ZyYW1lOjpmdW5jdGlvbk5hbWUoVk0mIHZtKSBjb25zdAogewogICAgIGlmIChtX2lzV2Fz
bUZyYW1lKSB7Ci0gICAgICAgIGlmIChtX3dhc21GdW5jdGlvbkluZGV4ID09IGludmFsaWRXYXNt
SW5kZXgpCisgICAgICAgIGlmIChtX3dhc21GdW5jdGlvbkluZGV4T3JOYW1lLmlzRW1wdHkoKSkK
ICAgICAgICAgICAgIHJldHVybiBBU0NJSUxpdGVyYWwoIndhc20gZnVuY3Rpb24iKTsKLSAgICAg
ICAgcmV0dXJuIG1ha2VTdHJpbmcoIndhc20gZnVuY3Rpb24gaW5kZXg6ICIsIFN0cmluZzo6bnVt
YmVyKG1fd2FzbUZ1bmN0aW9uSW5kZXgpKTsKKyAgICAgICAgcmV0dXJuIG1ha2VTdHJpbmcoIndh
c20gZnVuY3Rpb246ICIsIG1ha2VTdHJpbmcobV93YXNtRnVuY3Rpb25JbmRleE9yTmFtZSkpOwog
ICAgIH0KIAogICAgIGlmIChtX2NvZGVCbG9jaykgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvU3RhY2tGcmFtZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvU3RhY2tGcmFtZS5oCmluZGV4IGY4MzE4NGQuLjQ4OTA4NzggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0YWNrRnJhbWUuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9TdGFja0ZyYW1lLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICog
Q29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAxNi0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjYsNiArMjYsNyBAQAogI3ByYWdtYSBv
bmNlCiAKICNpbmNsdWRlICJTdHJvbmcuaCIKKyNpbmNsdWRlICJXYXNtSW5kZXhPck5hbWUuaCIK
ICNpbmNsdWRlIDxsaW1pdHMuaD4KIAogbmFtZXNwYWNlIEpTQyB7CkBAIC0zNSw3ICszNiw5IEBA
IGNsYXNzIEpTT2JqZWN0OwogCiBjbGFzcyBTdGFja0ZyYW1lIHsKIHB1YmxpYzoKLSAgICBTdGFj
a0ZyYW1lKCkgPSBkZWZhdWx0OworICAgIFN0YWNrRnJhbWUoKQorICAgICAgICA6IG1fYnl0ZWNv
ZGVPZmZzZXQoVUlOVF9NQVgpCisgICAgeyB9CiAKICAgICBTdGFja0ZyYW1lKFZNJiB2bSwgSlND
ZWxsKiBjYWxsZWUpCiAgICAgICAgIDogbV9jYWxsZWUodm0sIGNhbGxlZSkKQEAgLTQ4LDEyICs1
MSwxMSBAQCBwdWJsaWM6CiAgICAgICAgICwgbV9ieXRlY29kZU9mZnNldChieXRlY29kZU9mZnNl
dCkKICAgICB7IH0KIAotICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgaW52YWxpZFdhc21J
bmRleCA9IFVJTlRfTUFYOwotICAgIHN0YXRpYyBTdGFja0ZyYW1lIHdhc20odW5zaWduZWQgaW5k
ZXgpCisgICAgc3RhdGljIFN0YWNrRnJhbWUgd2FzbShXYXNtOjpJbmRleE9yTmFtZSBpbmRleE9y
TmFtZSkKICAgICB7CiAgICAgICAgIFN0YWNrRnJhbWUgcmVzdWx0OwogICAgICAgICByZXN1bHQu
bV9pc1dhc21GcmFtZSA9IHRydWU7Ci0gICAgICAgIHJlc3VsdC5tX3dhc21GdW5jdGlvbkluZGV4
ID0gaW5kZXg7CisgICAgICAgIHJlc3VsdC5tX3dhc21GdW5jdGlvbkluZGV4T3JOYW1lID0gaW5k
ZXhPck5hbWU7CiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQogCkBAIC03OCw3ICs4MCw3
IEBAIHByaXZhdGU6CiAgICAgU3Ryb25nPENvZGVCbG9jaz4gbV9jb2RlQmxvY2sgeyB9OwogICAg
IHVuaW9uIHsKICAgICAgICAgdW5zaWduZWQgbV9ieXRlY29kZU9mZnNldDsKLSAgICAgICAgdW5z
aWduZWQgbV93YXNtRnVuY3Rpb25JbmRleDsKKyAgICAgICAgV2FzbTo6SW5kZXhPck5hbWUgbV93
YXNtRnVuY3Rpb25JbmRleE9yTmFtZTsKICAgICB9OwogICAgIGJvb2wgbV9pc1dhc21GcmFtZSB7
IGZhbHNlIH07CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2Fz
bUJCUVBsYW5JbmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQkJRUGxh
bklubGluZXMuaAppbmRleCBmNWE2NTIzLi5hZjE4MTQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9XYXNtQkJRUGxhbklubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9XYXNtQkJRUGxhbklubGluZXMuaApAQCAtNDMsNyArNDMsOCBAQCB2b2lk
IEJCUVBsYW46OmluaXRpYWxpemVDYWxsZWVzKGNvbnN0IEZ1bmN0b3ImIGNhbGxiYWNrKQogICAg
ICAgICBSZWY8V2FzbTo6Q2FsbGVlPiBqc0VudHJ5cG9pbnRDYWxsZWUgPSBXYXNtOjpDYWxsZWU6
OmNyZWF0ZShXVEZNb3ZlKGZ1bmN0aW9uLT5qc1RvV2FzbUVudHJ5cG9pbnQpKTsKICAgICAgICAg
TWFjcm9Bc3NlbWJsZXI6OnJlcGF0Y2hQb2ludGVyKGZ1bmN0aW9uLT5qc1RvV2FzbUNhbGxlZU1v
dmVMb2NhdGlvbiwgQ2FsbGVlQml0czo6Ym94V2FzbShqc0VudHJ5cG9pbnRDYWxsZWUucHRyKCkp
KTsKIAotICAgICAgICBSZWY8V2FzbTo6Q2FsbGVlPiB3YXNtRW50cnlwb2ludENhbGxlZSA9IFdh
c206OkNhbGxlZTo6Y3JlYXRlKFdURk1vdmUoZnVuY3Rpb24tPndhc21FbnRyeXBvaW50KSwgaW50
ZXJuYWxGdW5jdGlvbkluZGV4ICsgbV9tb2R1bGVJbmZvcm1hdGlvbi0+aW1wb3J0RnVuY3Rpb25D
b3VudCgpKTsKKyAgICAgICAgc2l6ZV90IGZ1bmN0aW9uSW5kZXhTcGFjZSA9IGludGVybmFsRnVu
Y3Rpb25JbmRleCArIG1fbW9kdWxlSW5mb3JtYXRpb24tPmltcG9ydEZ1bmN0aW9uQ291bnQoKTsK
KyAgICAgICAgUmVmPFdhc206OkNhbGxlZT4gd2FzbUVudHJ5cG9pbnRDYWxsZWUgPSBXYXNtOjpD
YWxsZWU6OmNyZWF0ZShXVEZNb3ZlKGZ1bmN0aW9uLT53YXNtRW50cnlwb2ludCksIGZ1bmN0aW9u
SW5kZXhTcGFjZSwgbV9tb2R1bGVJbmZvcm1hdGlvbi0+bmFtZVNlY3Rpb24uZ2V0KGZ1bmN0aW9u
SW5kZXhTcGFjZSkpOwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6cmVwYXRjaFBvaW50ZXIoZnVu
Y3Rpb24tPndhc21DYWxsZWVNb3ZlTG9jYXRpb24sIENhbGxlZUJpdHM6OmJveFdhc20od2FzbUVu
dHJ5cG9pbnRDYWxsZWUucHRyKCkpKTsKIAogICAgICAgICBjYWxsYmFjayhpbnRlcm5hbEZ1bmN0
aW9uSW5kZXgsIFdURk1vdmUoanNFbnRyeXBvaW50Q2FsbGVlKSwgV1RGTW92ZSh3YXNtRW50cnlw
b2ludENhbGxlZSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2Fz
bUNhbGxlZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQ2FsbGVlLmNwcApp
bmRleCA2ZWMzZWQxLi45ZTgzZWRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9XYXNtQ2FsbGVlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNt
Q2FsbGVlLmNwcApAQCAtMzIsOSArMzIsMTUgQEAKIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFj
ZSBXYXNtIHsKIAotQ2FsbGVlOjpDYWxsZWUoRW50cnlwb2ludCYmIGVudHJ5cG9pbnQsIHVuc2ln
bmVkIGluZGV4KQorQ2FsbGVlOjpDYWxsZWUoRW50cnlwb2ludCYmIGVudHJ5cG9pbnQpCiAgICAg
OiBtX2VudHJ5cG9pbnQoV1RGTW92ZShlbnRyeXBvaW50KSkKLSAgICAsIG1faW5kZXgoaW5kZXgp
Cit7CisgICAgcmVnaXN0ZXJDb2RlKG1fZW50cnlwb2ludC5jb21waWxhdGlvbi0+Y29kZVJlZigp
LmV4ZWN1dGFibGVNZW1vcnkoKS0+c3RhcnQoKSwgbV9lbnRyeXBvaW50LmNvbXBpbGF0aW9uLT5j
b2RlUmVmKCkuZXhlY3V0YWJsZU1lbW9yeSgpLT5lbmQoKSk7Cit9CisKK0NhbGxlZTo6Q2FsbGVl
KEVudHJ5cG9pbnQmJiBlbnRyeXBvaW50LCBzaXplX3QgaW5kZXgsIGNvbnN0IE5hbWUqIG5hbWUp
CisgICAgOiBtX2VudHJ5cG9pbnQoV1RGTW92ZShlbnRyeXBvaW50KSkKKyAgICAsIG1faW5kZXhP
ck5hbWUoaW5kZXgsIG5hbWUpCiB7CiAgICAgcmVnaXN0ZXJDb2RlKG1fZW50cnlwb2ludC5jb21w
aWxhdGlvbi0+Y29kZVJlZigpLmV4ZWN1dGFibGVNZW1vcnkoKS0+c3RhcnQoKSwgbV9lbnRyeXBv
aW50LmNvbXBpbGF0aW9uLT5jb2RlUmVmKCkuZXhlY3V0YWJsZU1lbW9yeSgpLT5lbmQoKSk7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQ2FsbGVlLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQ2FsbGVlLmgKaW5kZXggOWRiMTBjMy4uMjNj
MWFlNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUNhbGxlZS5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21DYWxsZWUuaApAQCAtMzAsNiAr
MzAsNyBAQAogI2luY2x1ZGUgIkIzQ29tcGlsYXRpb24uaCIKICNpbmNsdWRlICJSZWdpc3RlckF0
T2Zmc2V0TGlzdC5oIgogI2luY2x1ZGUgIldhc21Gb3JtYXQuaCIKKyNpbmNsdWRlICJXYXNtSW5k
ZXhPck5hbWUuaCIKICNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4KIAogbmFt
ZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBXYXNtIHsKQEAgLTM3LDMxICszOCwyOSBAQCBuYW1lc3Bh
Y2UgSlNDIHsgbmFtZXNwYWNlIFdhc20gewogY2xhc3MgQ2FsbGVlIDogcHVibGljIFRocmVhZFNh
ZmVSZWZDb3VudGVkPENhbGxlZT4gewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVi
bGljOgorICAgIHN0YXRpYyBSZWY8Q2FsbGVlPiBjcmVhdGUoV2FzbTo6RW50cnlwb2ludCYmIGVu
dHJ5cG9pbnQpCisgICAgeworICAgICAgICBDYWxsZWUqIGNhbGxlZSA9IG5ldyBDYWxsZWUoV1RG
TW92ZShlbnRyeXBvaW50KSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqY2FsbGVlKTsKKyAg
ICB9CiAKLSAgICAvLyBXZSB1c2UgdGhpcyB3aGVuIHdlJ3JlIHRoZSBKUyBlbnRyeXBvaW50LCB3
ZSBkb24ndCBhc2NyaWJlIGFuIGluZGV4IHRvIHRob3NlLgotICAgIHN0YXRpYyBjb25zdGV4cHIg
dW5zaWduZWQgaW52YWxpZENhbGxlZUluZGV4ID0gVUlOVF9NQVg7Ci0KLSAgICBzdGF0aWMgUmVm
PENhbGxlZT4gY3JlYXRlKFdhc206OkVudHJ5cG9pbnQmJiBlbnRyeXBvaW50LCB1bnNpZ25lZCBp
bmRleCA9IGludmFsaWRDYWxsZWVJbmRleCkKKyAgICBzdGF0aWMgUmVmPENhbGxlZT4gY3JlYXRl
KFdhc206OkVudHJ5cG9pbnQmJiBlbnRyeXBvaW50LCBzaXplX3QgaW5kZXgsIGNvbnN0IE5hbWUq
IG5hbWUpCiAgICAgewotICAgICAgICBDYWxsZWUqIGNhbGxlZSA9IG5ldyBDYWxsZWUoV1RGTW92
ZShlbnRyeXBvaW50KSwgaW5kZXgpOworICAgICAgICBDYWxsZWUqIGNhbGxlZSA9IG5ldyBDYWxs
ZWUoV1RGTW92ZShlbnRyeXBvaW50KSwgaW5kZXgsIG5hbWUpOwogICAgICAgICByZXR1cm4gYWRv
cHRSZWYoKmNhbGxlZSk7CiAgICAgfQogCiAgICAgdm9pZCogZW50cnlwb2ludCgpIGNvbnN0IHsg
cmV0dXJuIG1fZW50cnlwb2ludC5jb21waWxhdGlvbi0+Y29kZSgpLmV4ZWN1dGFibGVBZGRyZXNz
KCk7IH0KIAogICAgIFJlZ2lzdGVyQXRPZmZzZXRMaXN0KiBjYWxsZWVTYXZlUmVnaXN0ZXJzKCkg
eyByZXR1cm4gJm1fZW50cnlwb2ludC5jYWxsZWVTYXZlUmVnaXN0ZXJzOyB9Ci0gICAgc3RkOjpv
cHRpb25hbDx1bnNpZ25lZD4gaW5kZXgoKSBjb25zdAotICAgIHsKLSAgICAgICAgaWYgKG1faW5k
ZXggPT0gaW52YWxpZENhbGxlZUluZGV4KQotICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9w
dDsKLSAgICAgICAgcmV0dXJuIG1faW5kZXg7Ci0gICAgfQorICAgIEluZGV4T3JOYW1lIGluZGV4
T3JOYW1lKCkgY29uc3QgeyByZXR1cm4gbV9pbmRleE9yTmFtZTsgfQogCiBwcml2YXRlOgotICAg
IEpTX0VYUE9SVF9QUklWQVRFIENhbGxlZShXYXNtOjpFbnRyeXBvaW50JiYsIHVuc2lnbmVkIGlu
ZGV4KTsKKyAgICBKU19FWFBPUlRfUFJJVkFURSBDYWxsZWUoV2FzbTo6RW50cnlwb2ludCYmKTsK
KyAgICBKU19FWFBPUlRfUFJJVkFURSBDYWxsZWUoV2FzbTo6RW50cnlwb2ludCYmLCBzaXplX3Qs
IGNvbnN0IE5hbWUqKTsKIAogICAgIFdhc206OkVudHJ5cG9pbnQgbV9lbnRyeXBvaW50OwotICAg
IHVuc2lnbmVkIG1faW5kZXg7CisgICAgSW5kZXhPck5hbWUgbV9pbmRleE9yTmFtZTsKIH07CiAK
IH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpXYXNtCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9XYXNtRm9ybWF0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dh
c21Gb3JtYXQuY3BwCmluZGV4IGUyNjA2MDEuLmUwNmU3NzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL1dhc21Gb3JtYXQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL1dhc21Gb3JtYXQuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTYtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTU1LDcgKzU1LDcgQEAgU2VnbWVudDo6UHRyIFNlZ21l
bnQ6OmFkb3B0UHRyKFNlZ21lbnQqIHNlZ21lbnQpCiAgICAgcmV0dXJuIFB0cihzZWdtZW50LCAm
U2VnbWVudDo6ZGVzdHJveSk7CiB9CiAKLVN0cmluZyBtYWtlU3RyaW5nKGNvbnN0IFZlY3RvcjxM
Q2hhcj4mIGNoYXJhY3RlcnMpCitTdHJpbmcgbWFrZVN0cmluZyhjb25zdCBOYW1lJiBjaGFyYWN0
ZXJzKQogewogICAgIFN0cmluZyByZXN1bHQgPSBTdHJpbmc6OmZyb21VVEY4KGNoYXJhY3RlcnMp
OwogICAgIEFTU0VSVChyZXN1bHQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vV2FzbUZvcm1hdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUZvcm1h
dC5oCmluZGV4IGQ5ZWI3YjguLjI4YWVlZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL1dhc21Gb3JtYXQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9X
YXNtRm9ybWF0LmgKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJNYWNyb0Fzc2VtYmxlckNv
ZGVSZWYuaCIKICNpbmNsdWRlICJSZWdpc3RlckF0T2Zmc2V0TGlzdC5oIgogI2luY2x1ZGUgIldh
c21NZW1vcnlJbmZvcm1hdGlvbi5oIgorI2luY2x1ZGUgIldhc21OYW1lLmgiCiAjaW5jbHVkZSAi
V2FzbU9wcy5oIgogI2luY2x1ZGUgIldhc21QYWdlQ291bnQuaCIKICNpbmNsdWRlICJXYXNtU2ln
bmF0dXJlLmgiCkBAIC04Miw5ICs4Myw4IEBAIHN0YXRpYyBib29sIGlzVmFsaWRFeHRlcm5hbEtp
bmQoSW50IHZhbCkKICAgICBjYXNlIHN0YXRpY19jYXN0PEludD4oRXh0ZXJuYWxLaW5kOjpNZW1v
cnkpOgogICAgIGNhc2Ugc3RhdGljX2Nhc3Q8SW50PihFeHRlcm5hbEtpbmQ6Okdsb2JhbCk6CiAg
ICAgICAgIHJldHVybiB0cnVlOwotICAgIGRlZmF1bHQ6Ci0gICAgICAgIHJldHVybiBmYWxzZTsK
ICAgICB9CisgICAgcmV0dXJuIGZhbHNlOwogfQogCiBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0
PGludD4oRXh0ZXJuYWxLaW5kOjpGdW5jdGlvbikgPT0gMCwgIldhc20gbmVlZHMgRnVuY3Rpb24g
dG8gaGF2ZSB0aGUgdmFsdWUgMCIpOwpAQCAtMTA1LDE5ICsxMDUsMTkgQEAgaW5saW5lIGNvbnN0
IGNoYXIqIG1ha2VTdHJpbmcoRXh0ZXJuYWxLaW5kIGtpbmQpCiB9CiAKIHN0cnVjdCBJbXBvcnQg
ewotICAgIGNvbnN0IFZlY3RvcjxMQ2hhcj4gbW9kdWxlOwotICAgIGNvbnN0IFZlY3RvcjxMQ2hh
cj4gZmllbGQ7CisgICAgY29uc3QgTmFtZSBtb2R1bGU7CisgICAgY29uc3QgTmFtZSBmaWVsZDsK
ICAgICBFeHRlcm5hbEtpbmQga2luZDsKICAgICB1bnNpZ25lZCBraW5kSW5kZXg7IC8vIEluZGV4
IGluIHRoZSB2ZWN0b3Igb2YgdGhlIGNvcnJlc3BvbmRpbmcga2luZC4KIH07CiAKIHN0cnVjdCBF
eHBvcnQgewotICAgIGNvbnN0IFZlY3RvcjxMQ2hhcj4gZmllbGQ7CisgICAgY29uc3QgTmFtZSBm
aWVsZDsKICAgICBFeHRlcm5hbEtpbmQga2luZDsKICAgICB1bnNpZ25lZCBraW5kSW5kZXg7IC8v
IEluZGV4IGluIHRoZSB2ZWN0b3Igb2YgdGhlIGNvcnJlc3BvbmRpbmcga2luZC4KIH07CiAKLVN0
cmluZyBtYWtlU3RyaW5nKGNvbnN0IFZlY3RvcjxMQ2hhcj4mIGNoYXJhY3RlcnMpOworU3RyaW5n
IG1ha2VTdHJpbmcoY29uc3QgTmFtZSYgY2hhcmFjdGVycyk7CiAKIHN0cnVjdCBHbG9iYWwgewog
ICAgIGVudW0gTXV0YWJpbGl0eSA6IHVpbnQ4X3QgewpAQCAtMjMxLDEwICsyMzEsMzQgQEAgcHJp
dmF0ZToKIH07CiAgICAgCiBzdHJ1Y3QgQ3VzdG9tU2VjdGlvbiB7Ci0gICAgVmVjdG9yPExDaGFy
PiBuYW1lOworICAgIE5hbWUgbmFtZTsKICAgICBWZWN0b3I8dWludDhfdD4gcGF5bG9hZDsKIH07
CiAKK2VudW0gY2xhc3MgTmFtZVR5cGUgOiB1aW50OF90IHsKKyAgICBGdW5jdGlvbiA9IDEsCisg
ICAgTG9jYWwgPSAyLAorfTsKKyAgICAKK3RlbXBsYXRlPHR5cGVuYW1lIEludD4KK3N0YXRpYyBi
b29sIGlzVmFsaWROYW1lVHlwZShJbnQgdmFsKQoreworICAgIHN3aXRjaCAodmFsKSB7CisgICAg
Y2FzZSBzdGF0aWNfY2FzdDxJbnQ+KE5hbWVUeXBlOjpGdW5jdGlvbik6CisgICAgY2FzZSBzdGF0
aWNfY2FzdDxJbnQ+KE5hbWVUeXBlOjpMb2NhbCk6CisgICAgICAgIHJldHVybiB0cnVlOworICAg
IH0KKyAgICByZXR1cm4gZmFsc2U7Cit9CisgICAgCitzdHJ1Y3QgTmFtZVNlY3Rpb24geworICAg
IFZlY3RvcjxOYW1lPiBmdW5jdGlvbk5hbWVzOworICAgIGNvbnN0IE5hbWUqIGdldChzaXplX3Qg
ZnVuY3Rpb25JbmRleFNwYWNlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGZ1bmN0aW9uSW5kZXhT
cGFjZSA8IGZ1bmN0aW9uTmFtZXMuc2l6ZSgpID8gJmZ1bmN0aW9uTmFtZXNbZnVuY3Rpb25JbmRl
eFNwYWNlXSA6IG51bGxwdHI7CisgICAgfQorfTsKKwogc3RydWN0IFVubGlua2VkV2FzbVRvV2Fz
bUNhbGwgewogICAgIENvZGVMb2NhdGlvbk5lYXJDYWxsIGNhbGxMb2NhdGlvbjsKICAgICBzaXpl
X3QgZnVuY3Rpb25JbmRleFNwYWNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vV2FzbUluZGV4T3JOYW1lLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dh
c21JbmRleE9yTmFtZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjY0
YzM3MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21J
bmRleE9yTmFtZS5jcHAKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
NyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXYXNt
SW5kZXhPck5hbWUuaCIKKworbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBXYXNtIHsKKworSW5k
ZXhPck5hbWU6OkluZGV4T3JOYW1lKHVuc2lnbmVkIGluZGV4LCBjb25zdCBOYW1lKiBuYW1lKQor
eworICAgIGlmICgoaW5kZXggJiBhbGxUYWdzKSB8fCAoYml0d2lzZV9jYXN0PHNpemVfdD4obmFt
ZSkgJiBhbGxUYWdzKSkKKyAgICAgICAgKnRoaXMgPSBJbmRleE9yTmFtZSgpOworICAgIGVsc2Ug
aWYgKG5hbWUpCisgICAgICAgIG1fbmFtZSA9IG5hbWU7CisgICAgZWxzZQorICAgICAgICBtX2lu
ZGV4ID0gaW5kZXhUYWcgfCBpbmRleDsKK30KKworU3RyaW5nIG1ha2VTdHJpbmcoY29uc3QgSW5k
ZXhPck5hbWUmIGlvbikKK3sKKyAgICBpZiAoaW9uLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJu
IFN0cmluZygpOworICAgIGlmIChpb24uaXNJbmRleCgpKQorICAgICAgICByZXR1cm4gU3RyaW5n
OjpudW1iZXIoaW9uLm1faW5kZXggJiB+SW5kZXhPck5hbWU6OmluZGV4VGFnKTsKKyAgICByZXR1
cm4gU3RyaW5nKGlvbi5tX25hbWUtPmRhdGEoKSwgaW9uLm1fbmFtZS0+c2l6ZSgpKTsKK307CisK
K30gfSAvLyBuYW1lc3BhY2UgSlNDOjpXYXNtCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9XYXNtSW5kZXhPck5hbWUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L1dhc21JbmRleE9yTmFtZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIz
ZDViNTAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNt
SW5kZXhPck5hbWUuaApAQCAtMCwwICsxLDU4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJXYXNtTmFtZS5o
IgorI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZT
dHJpbmcuaD4KKworbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBXYXNtIHsKKwordW5pb24gSW5k
ZXhPck5hbWUgeworICAgIEluZGV4T3JOYW1lKCkKKyAgICAgICAgOiBtX2luZGV4KGVtcHR5VGFn
KQorICAgIHsgfQorICAgIEluZGV4T3JOYW1lKHVuc2lnbmVkIGluZGV4LCBjb25zdCBOYW1lKik7
CisgICAgYm9vbCBpc0VtcHR5KCkgY29uc3QgeyByZXR1cm4gYml0d2lzZV9jYXN0PHNpemVfdD4o
KnRoaXMpICYgZW1wdHlUYWc7IH0KKyAgICBib29sIGlzSW5kZXgoKSBjb25zdCB7IHJldHVybiBi
aXR3aXNlX2Nhc3Q8c2l6ZV90PigqdGhpcykgJiBpbmRleFRhZzsgfQorICAgIGJvb2wgaXNOYW1l
KCkgY29uc3QgeyByZXR1cm4gIShpc0VtcHR5KCkgfHwgaXNOYW1lKCkpOyB9CisKKyAgICBmcmll
bmQgU3RyaW5nIG1ha2VTdHJpbmcoY29uc3QgSW5kZXhPck5hbWUmKTsKKworcHJpdmF0ZToKKyAg
ICBzaXplX3QgbV9pbmRleDsKKyAgICBjb25zdCBOYW1lKiBtX25hbWU7CisgICAgc3RhdGljX2Fz
c2VydChzaXplb2YobV9pbmRleCkgPT0gc2l6ZW9mKG1fbmFtZSksICJiaXQtdGFnZ2luZyBkZXBl
bmRzIG9uIHNpemVzIGJlaW5nIGVxdWFsIik7CisKKyAgICAvLyBVc2UgdGhlIHRvcCBiaXRzIGFz
IHRhZ3MuIE5laXRoZXIgcG9pbnRlcnMgbm9yIHRoZSBmdW5jdGlvbiBpbmRleCBzcGFjZSBzaG91
bGQgdXNlIHRoZW0uCisgICAgc3RhdGljIGNvbnN0ZXhwciBzaXplX3QgaW5kZXhUYWcgPSAxdWxs
IDw8IDYzOworICAgIHN0YXRpYyBjb25zdGV4cHIgc2l6ZV90IGVtcHR5VGFnID0gMXVsbCA8PCA2
MjsKKyAgICBzdGF0aWMgY29uc3RleHByIHNpemVfdCBhbGxUYWdzID0gaW5kZXhUYWcgfCBlbXB0
eVRhZzsKK307CisKK1N0cmluZyBtYWtlU3RyaW5nKGNvbnN0IEluZGV4T3JOYW1lJik7CisKK30g
fSAvLyBuYW1lc3BhY2UgSlNDOjpXYXNtCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9XYXNtTW9kdWxlSW5mb3JtYXRpb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL1dhc21Nb2R1bGVJbmZvcm1hdGlvbi5oCmluZGV4IDE3NjMzOWEuLjA3YjM4OTkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21Nb2R1bGVJbmZvcm1hdGlvbi5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21Nb2R1bGVJbmZvcm1hdGlvbi5o
CkBAIC03NCw3ICs3NCw3IEBAIHN0cnVjdCBNb2R1bGVJbmZvcm1hdGlvbiA6IHB1YmxpYyBUaHJl
YWRTYWZlUmVmQ291bnRlZDxNb2R1bGVJbmZvcm1hdGlvbj4gewogICAgIFZlY3RvcjxHbG9iYWw+
IGdsb2JhbHM7CiAgICAgdW5zaWduZWQgZmlyc3RJbnRlcm5hbEdsb2JhbCB7IDAgfTsKICAgICBW
ZWN0b3I8Q3VzdG9tU2VjdGlvbj4gY3VzdG9tU2VjdGlvbnM7Ci0KKyAgICBOYW1lU2VjdGlvbiBu
YW1lU2VjdGlvbjsKIH07CiAKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL1dhc21Nb2R1bGVQYXJzZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
V2FzbU1vZHVsZVBhcnNlci5jcHAKaW5kZXggZWU3MTRjMS4uNGNkZTE2NSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU1vZHVsZVBhcnNlci5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU1vZHVsZVBhcnNlci5jcHAKQEAgLTEsNSArMSw1
IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNi0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzAsMTMgKzMwLDEx
IEBACiAKICNpbmNsdWRlICJJZGVudGlmaWVySW5saW5lcy5oIgogI2luY2x1ZGUgIkpTV2ViQXNz
ZW1ibHlUYWJsZS5oIgotI2luY2x1ZGUgIldhc21Gb3JtYXQuaCIKICNpbmNsdWRlICJXYXNtTWVt
b3J5SW5mb3JtYXRpb24uaCIKKyNpbmNsdWRlICJXYXNtTmFtZVNlY3Rpb25QYXJzZXIuaCIKICNp
bmNsdWRlICJXYXNtT3BzLmgiCiAjaW5jbHVkZSAiV2FzbVNlY3Rpb25zLmgiCiAKLSNpbmNsdWRl
IDxzeXMvbW1hbi5oPgotCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIFdhc20gewogCiBBTFdB
WVNfSU5MSU5FIEkzMkluaXRFeHByIG1ha2VJMzJJbml0RXhwcih1aW50OF90IG9wY29kZSwgdWlu
dDMyX3QgYml0cykKQEAgLTE1Niw4ICsxNTQsOCBAQCBhdXRvIE1vZHVsZVBhcnNlcjo6cGFyc2VJ
bXBvcnQoKSAtPiBQYXJ0aWFsUmVzdWx0CiAgICAgZm9yICh1aW50MzJfdCBpbXBvcnROdW1iZXIg
PSAwOyBpbXBvcnROdW1iZXIgPCBpbXBvcnRDb3VudDsgKytpbXBvcnROdW1iZXIpIHsKICAgICAg
ICAgdWludDMyX3QgbW9kdWxlTGVuOwogICAgICAgICB1aW50MzJfdCBmaWVsZExlbjsKLSAgICAg
ICAgVmVjdG9yPExDaGFyPiBtb2R1bGVTdHJpbmc7Ci0gICAgICAgIFZlY3RvcjxMQ2hhcj4gZmll
bGRTdHJpbmc7CisgICAgICAgIE5hbWUgbW9kdWxlU3RyaW5nOworICAgICAgICBOYW1lIGZpZWxk
U3RyaW5nOwogICAgICAgICBFeHRlcm5hbEtpbmQga2luZDsKICAgICAgICAgdW5zaWduZWQga2lu
ZEluZGV4IHsgMCB9OwogCkBAIC0zNjgsNyArMzY2LDcgQEAgYXV0byBNb2R1bGVQYXJzZXI6OnBh
cnNlRXhwb3J0KCkgLT4gUGFydGlhbFJlc3VsdAogICAgIEhhc2hTZXQ8U3RyaW5nPiBleHBvcnRO
YW1lczsKICAgICBmb3IgKHVpbnQzMl90IGV4cG9ydE51bWJlciA9IDA7IGV4cG9ydE51bWJlciA8
IGV4cG9ydENvdW50OyArK2V4cG9ydE51bWJlcikgewogICAgICAgICB1aW50MzJfdCBmaWVsZExl
bjsKLSAgICAgICAgVmVjdG9yPExDaGFyPiBmaWVsZFN0cmluZzsKKyAgICAgICAgTmFtZSBmaWVs
ZFN0cmluZzsKICAgICAgICAgRXh0ZXJuYWxLaW5kIGtpbmQ7CiAgICAgICAgIHVuc2lnbmVkIGtp
bmRJbmRleDsKIApAQCAtNjA1LDcgKzYwMywxNCBAQCBhdXRvIE1vZHVsZVBhcnNlcjo6cGFyc2VD
dXN0b20odWludDMyX3Qgc2VjdGlvbkxlbmd0aCkgLT4gUGFydGlhbFJlc3VsdAogICAgICAgICBX
QVNNX1BBUlNFUl9GQUlMX0lGKCFwYXJzZVVJbnQ4KGJ5dGUpLCAiY2FuJ3QgZ2V0ICIsIGJ5dGVO
dW1iZXIsICJ0aCBkYXRhIGJ5dGUgZnJvbSAiLCBjdXN0b21TZWN0aW9uTnVtYmVyLCAidGggY3Vz
dG9tIHNlY3Rpb24iKTsKICAgICAgICAgc2VjdGlvbi5wYXlsb2FkLnVuY2hlY2tlZEFwcGVuZChi
eXRlKTsKICAgICB9Ci0gICAgCisKKyAgICBOYW1lIG5hbWVOYW1lID0geyAnbicsICdhJywgJ20n
LCAnZScgfTsKKyAgICBpZiAoc2VjdGlvbi5uYW1lID09IG5hbWVOYW1lKSB7CisgICAgICAgIE5h
bWVTZWN0aW9uUGFyc2VyIG5hbWVTZWN0aW9uUGFyc2VyKHNlY3Rpb24ucGF5bG9hZC5iZWdpbigp
LCBzZWN0aW9uLnBheWxvYWQuc2l6ZSgpLCBtX2luZm8pOworICAgICAgICBpZiAoYXV0byBuYW1l
U2VjdGlvbiA9IG5hbWVTZWN0aW9uUGFyc2VyLnBhcnNlKCkpCisgICAgICAgICAgICBtX2luZm8t
Pm5hbWVTZWN0aW9uID0gV1RGTW92ZSgqbmFtZVNlY3Rpb24pOworICAgIH0KKwogICAgIG1faW5m
by0+Y3VzdG9tU2VjdGlvbnMudW5jaGVja2VkQXBwZW5kKFdURk1vdmUoc2VjdGlvbikpOwogCiAg
ICAgcmV0dXJuIHsgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dh
c21OYW1lLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTmFtZS5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRhYjYwMmYKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTmFtZS5oCkBAIC0wLDAgKzEsNDEgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UK
KworI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKKworI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKyNp
bmNsdWRlIDx3dGYvdGV4dC9MQ2hhci5oPgorCituYW1lc3BhY2UgSlNDIHsKKworbmFtZXNwYWNl
IFdhc20geworCit0eXBlZGVmIFZlY3RvcjxMQ2hhcj4gTmFtZTsKKworfSB9IC8vIG5hbWVzcGFj
ZSBKU0M6Oldhc20KKworI2VuZGlmIC8vIEVOQUJMRShXRUJBU1NFTUJMWSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21OYW1lU2VjdGlvblBhcnNlci5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTmFtZVNlY3Rpb25QYXJzZXIuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhjOTgyY2EKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTmFtZVNlY3Rpb25QYXJzZXIuY3BwCkBA
IC0wLDAgKzEsOTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2FzbU5hbWVTZWN0aW9uUGFyc2Vy
LmgiCisKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCisKKyNpbmNsdWRlICJJZGVudGlmaWVySW5s
aW5lcy5oIgorCituYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIFdhc20geworCithdXRvIE5hbWVT
ZWN0aW9uUGFyc2VyOjpwYXJzZSgpIC0+IFJlc3VsdAoreworICAgIE5hbWVTZWN0aW9uIG5hbWVT
ZWN0aW9uOworICAgIFdBU01fUEFSU0VSX0ZBSUxfSUYoIW5hbWVTZWN0aW9uLmZ1bmN0aW9uTmFt
ZXMudHJ5UmVzZXJ2ZUNhcGFjaXR5KG1faW5mby5mdW5jdGlvbkluZGV4U3BhY2VTaXplKCkpLCAi
Y2FuJ3QgYWxsb2NhdGUgZW5vdWdoIG1lbW9yeSBmb3IgZnVuY3Rpb24gbmFtZXMiKTsKKyAgICBu
YW1lU2VjdGlvbi5mdW5jdGlvbk5hbWVzLnJlc2l6ZShtX2luZm8uZnVuY3Rpb25JbmRleFNwYWNl
U2l6ZSgpKTsKKworICAgIGZvciAoc2l6ZV90IHBheWxvYWROdW1iZXIgPSAwOyBtX29mZnNldCA8
IGxlbmd0aCgpOyArK3BheWxvYWROdW1iZXIpIHsKKyAgICAgICAgdWludDhfdCBuYW1lVHlwZTsK
KyAgICAgICAgdWludDMyX3QgcGF5bG9hZExlbmd0aDsKKyAgICAgICAgV0FTTV9QQVJTRVJfRkFJ
TF9JRighcGFyc2VVSW50NyhuYW1lVHlwZSksICJjYW4ndCBnZXQgbmFtZSB0eXBlIGZvciBwYXls
b2FkICIsIHBheWxvYWROdW1iZXIpOworICAgICAgICBXQVNNX1BBUlNFUl9GQUlMX0lGKCFpc1Zh
bGlkTmFtZVR5cGUobmFtZVR5cGUpLCAibmFtZSB0eXBlICIsIG5hbWVUeXBlLCAiIGlzIGludmFs
aWQgZm9yIHBheWxvYWQgIiwgcGF5bG9hZE51bWJlcik7CisgICAgICAgIFdBU01fUEFSU0VSX0ZB
SUxfSUYoIXBhcnNlVmFyVUludDMyKHBheWxvYWRMZW5ndGgpLCAiY2FuJ3QgZ2V0IHBheWxvYWQg
bGVuZ3RoIGZvciBwYXlsb2FkICIsIHBheWxvYWROdW1iZXIpOworICAgICAgICBXQVNNX1BBUlNF
Ul9GQUlMX0lGKHBheWxvYWRMZW5ndGggPiBsZW5ndGgoKSAtIG1fb2Zmc2V0LCAicGF5bG9hZCBs
ZW5ndGggaXMgdG9vIGJpZyBmb3IgcGF5bG9hZCAiLCBwYXlsb2FkTnVtYmVyKTsKKyAgICAgICAg
Y29uc3QgYXV0byBwYXlsb2FkU3RhcnQgPSBtX29mZnNldDsKKworICAgICAgICBzd2l0Y2ggKHN0
YXRpY19jYXN0PE5hbWVUeXBlPihuYW1lVHlwZSkpIHsKKyAgICAgICAgY2FzZSBOYW1lVHlwZTo6
RnVuY3Rpb246IHsKKyAgICAgICAgICAgIHVpbnQzMl90IGNvdW50OworICAgICAgICAgICAgV0FT
TV9QQVJTRVJfRkFJTF9JRighcGFyc2VWYXJVSW50MzIoY291bnQpLCAiY2FuJ3QgZ2V0IGZ1bmN0
aW9uIGNvdW50IGZvciBwYXlsb2FkICIsIHBheWxvYWROdW1iZXIpOworICAgICAgICAgICAgZm9y
ICh1aW50MzJfdCBmdW5jdGlvbiA9IDA7IGZ1bmN0aW9uIDwgY291bnQ7ICsrZnVuY3Rpb24pIHsK
KyAgICAgICAgICAgICAgICB1aW50MzJfdCBpbmRleDsKKyAgICAgICAgICAgICAgICB1aW50MzJf
dCBuYW1lTGVuOworICAgICAgICAgICAgICAgIE5hbWUgbmFtZVN0cmluZzsKKyAgICAgICAgICAg
ICAgICBXQVNNX1BBUlNFUl9GQUlMX0lGKCFwYXJzZVZhclVJbnQzMihpbmRleCksICJjYW4ndCBn
ZXQgZnVuY3Rpb24gIiwgZnVuY3Rpb24sICIgaW5kZXggZm9yIHBheWxvYWQgIiwgcGF5bG9hZE51
bWJlcik7CisgICAgICAgICAgICAgICAgV0FTTV9QQVJTRVJfRkFJTF9JRihtX2luZm8uZnVuY3Rp
b25JbmRleFNwYWNlU2l6ZSgpIDw9IGluZGV4LCAiZnVuY3Rpb24gIiwgZnVuY3Rpb24sICIgaW5k
ZXggIiwgaW5kZXgsICIgaXMgbGFyZ2VyIHRoYW4gZnVuY3Rpb24gaW5kZXggc3BhY2UgIiwgbV9p
bmZvLmZ1bmN0aW9uSW5kZXhTcGFjZVNpemUoKSwgIiBmb3IgcGF5bG9hZCAiLCBwYXlsb2FkTnVt
YmVyKTsKKyAgICAgICAgICAgICAgICBXQVNNX1BBUlNFUl9GQUlMX0lGKCFwYXJzZVZhclVJbnQz
MihuYW1lTGVuKSwgImNhbid0IGdldCAiLCBmdW5jdGlvbiwgInRoIGZ1bmN0aW9uJ3MgbmFtZSBs
ZW5ndGggZm9yIHBheWxvYWQgIiwgcGF5bG9hZE51bWJlcik7CisgICAgICAgICAgICAgICAgV0FT
TV9QQVJTRVJfRkFJTF9JRighY29uc3VtZVVURjhTdHJpbmcobmFtZVN0cmluZywgbmFtZUxlbiks
ICJjYW4ndCBnZXQgIiwgZnVuY3Rpb24sICJ0aCBmdW5jdGlvbidzIG5hbWUgb2YgbGVuZ3RoICIs
IG5hbWVMZW4sICIgZm9yIHBheWxvYWQgIiwgcGF5bG9hZE51bWJlcik7CisgICAgICAgICAgICAg
ICAgbmFtZVNlY3Rpb24uZnVuY3Rpb25OYW1lc1tpbmRleF0gPSBXVEZNb3ZlKG5hbWVTdHJpbmcp
OworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAg
Y2FzZSBOYW1lVHlwZTo6TG9jYWw6IHsKKyAgICAgICAgICAgIC8vIElnbm9yZSBsb2NhbCBuYW1l
cyBmb3Igbm93LCB3ZSBkb24ndCBkbyBhbnl0aGluZyB3aXRoIHRoZW0gYnV0IHdlIHN0aWxsIG5l
ZWQgdG8gcGFyc2UgdGhlbSBpbiBvcmRlciB0byBwcm9wZXJseSBpZ25vcmUgdGhlbS4KKyAgICAg
ICAgICAgIHVpbnQzMl90IGZ1bmN0aW9uSW5kZXg7CisgICAgICAgICAgICB1aW50MzJfdCBjb3Vu
dDsKKyAgICAgICAgICAgIFdBU01fUEFSU0VSX0ZBSUxfSUYoIXBhcnNlVmFyVUludDMyKGZ1bmN0
aW9uSW5kZXgpLCAiY2FuJ3QgZ2V0IGxvY2FsJ3MgZnVuY3Rpb24gaW5kZXggZm9yIHBheWxvYWQg
IiwgcGF5bG9hZE51bWJlcik7CisgICAgICAgICAgICBXQVNNX1BBUlNFUl9GQUlMX0lGKCFwYXJz
ZVZhclVJbnQzMihjb3VudCksICJjYW4ndCBnZXQgbG9jYWwgY291bnQgZm9yIHBheWxvYWQgIiwg
cGF5bG9hZE51bWJlcik7CisgICAgICAgICAgICBmb3IgKHVpbnQzMl90IGxvY2FsID0gMDsgbG9j
YWwgPCBjb3VudDsgKytsb2NhbCkgeworICAgICAgICAgICAgICAgIHVpbnQzMl90IGluZGV4Owor
ICAgICAgICAgICAgICAgIHVpbnQzMl90IG5hbWVMZW47CisgICAgICAgICAgICAgICAgTmFtZSBu
YW1lU3RyaW5nOworICAgICAgICAgICAgICAgIFdBU01fUEFSU0VSX0ZBSUxfSUYoIXBhcnNlVmFy
VUludDMyKGluZGV4KSwgImNhbid0IGdldCBsb2NhbCAiLCBsb2NhbCwgIiBpbmRleCBmb3IgcGF5
bG9hZCAiLCBwYXlsb2FkTnVtYmVyKTsKKyAgICAgICAgICAgICAgICBXQVNNX1BBUlNFUl9GQUlM
X0lGKCFwYXJzZVZhclVJbnQzMihuYW1lTGVuKSwgImNhbid0IGdldCAiLCBsb2NhbCwgInRoIGxv
Y2FsJ3MgbmFtZSBsZW5ndGggZm9yIHBheWxvYWQgIiwgcGF5bG9hZE51bWJlcik7CisgICAgICAg
ICAgICAgICAgV0FTTV9QQVJTRVJfRkFJTF9JRighY29uc3VtZVVURjhTdHJpbmcobmFtZVN0cmlu
ZywgbmFtZUxlbiksICJjYW4ndCBnZXQgIiwgbG9jYWwsICJ0aCBsb2NhbCdzIG5hbWUgb2YgbGVu
Z3RoICIsIG5hbWVMZW4sICIgZm9yIHBheWxvYWQgIiwgcGF5bG9hZE51bWJlcik7CisgICAgICAg
ICAgICB9CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICB9CisgICAgICAg
IFdBU01fUEFSU0VSX0ZBSUxfSUYocGF5bG9hZFN0YXJ0ICsgcGF5bG9hZExlbmd0aCAhPSBtX29m
ZnNldCk7CisgICAgfQorICAgIHJldHVybiBuYW1lU2VjdGlvbjsKK30KKworfSB9IC8vIG5hbWVz
cGFjZSBKU0M6Oldhc20KKworI2VuZGlmIC8vIEVOQUJMRShXRUJBU1NFTUJMWSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21OYW1lU2VjdGlvblBhcnNlci5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU5hbWVTZWN0aW9uUGFyc2VyLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjI5NzBkZAotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21OYW1lU2VjdGlvblBhcnNlci5oCkBAIC0w
LDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKKworI2luY2x1ZGUgIldh
c21Gb3JtYXQuaCIKKyNpbmNsdWRlICJXYXNtUGFyc2VyLmgiCisKK25hbWVzcGFjZSBKU0MgeyBu
YW1lc3BhY2UgV2FzbSB7CisKK2NsYXNzIE5hbWVTZWN0aW9uUGFyc2VyIDogcHVibGljIFBhcnNl
cjxOYW1lU2VjdGlvbj4geworcHVibGljOgorICAgIE5hbWVTZWN0aW9uUGFyc2VyKGNvbnN0IHVp
bnQ4X3QqIHNvdXJjZUJ1ZmZlciwgc2l6ZV90IHNvdXJjZUxlbmd0aCwgY29uc3QgTW9kdWxlSW5m
b3JtYXRpb24mIGluZm8pCisgICAgICAgIDogUGFyc2VyKHNvdXJjZUJ1ZmZlciwgc291cmNlTGVu
Z3RoKQorICAgICAgICAsIG1faW5mbyhpbmZvKQorICAgIHsKKyAgICB9CisKKyAgICBSZXN1bHQg
V0FSTl9VTlVTRURfUkVUVVJOIHBhcnNlKCk7CisgICAgCitwcml2YXRlOgorICAgIGNvbnN0IE1v
ZHVsZUluZm9ybWF0aW9uJiBtX2luZm87Cit9OworCit9IH0gLy8gbmFtZXNwYWNlIEpTQzo6V2Fz
bQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQkFTU0VNQkxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vV2FzbU9NR1BsYW4uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vV2FzbU9NR1BsYW4uY3BwCmluZGV4IDYyOTAzNGUuLjAxNjQ4NzcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21PTUdQbGFuLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtT01HUGxhbi5jcHAKQEAgLTk4LDcgKzk4LDcgQEAgdm9p
ZCBPTUdQbGFuOjp3b3JrKENvbXBpbGF0aW9uRWZmb3J0KQogICAgIHZvaWQqIGVudHJ5cG9pbnQ7
CiAgICAgewogICAgICAgICBBU1NFUlQobV9jb2RlQmxvY2sucHRyKCkgPT0gbV9tb2R1bGUtPmNv
ZGVCbG9ja0Zvcihtb2RlKCkpKTsKLSAgICAgICAgUmVmPENhbGxlZT4gY2FsbGVlID0gQ2FsbGVl
OjpjcmVhdGUoV1RGTW92ZShvbWdFbnRyeXBvaW50KSwgZnVuY3Rpb25JbmRleFNwYWNlKTsKKyAg
ICAgICAgUmVmPENhbGxlZT4gY2FsbGVlID0gQ2FsbGVlOjpjcmVhdGUoV1RGTW92ZShvbWdFbnRy
eXBvaW50KSwgZnVuY3Rpb25JbmRleFNwYWNlLCBtX21vZHVsZUluZm9ybWF0aW9uLT5uYW1lU2Vj
dGlvbi5nZXQoZnVuY3Rpb25JbmRleFNwYWNlKSk7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpy
ZXBhdGNoUG9pbnRlcihwYXJzZUFuZENvbXBpbGVSZXN1bHQudmFsdWUoKS0+d2FzbUNhbGxlZU1v
dmVMb2NhdGlvbiwgQ2FsbGVlQml0czo6Ym94V2FzbShjYWxsZWUucHRyKCkpKTsKICAgICAgICAg
QVNTRVJUKCFtX2NvZGVCbG9jay0+bV9vcHRpbWl6ZWRDYWxsZWVzW21fZnVuY3Rpb25JbmRleF0p
OwogICAgICAgICBlbnRyeXBvaW50ID0gY2FsbGVlLT5lbnRyeXBvaW50KCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtUGFyc2VyLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9XYXNtUGFyc2VyLmgKaW5kZXggODlmZjEwYy4uYzJhOGMxNCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVBhcnNlci5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21QYXJzZXIuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDE2LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC02Miw3ICs2Miw3IEBAIHByb3RlY3Rl
ZDoKIAogICAgIGJvb2wgV0FSTl9VTlVTRURfUkVUVVJOIGNvbnN1bWVDaGFyYWN0ZXIoY2hhcik7
CiAgICAgYm9vbCBXQVJOX1VOVVNFRF9SRVRVUk4gY29uc3VtZVN0cmluZyhjb25zdCBjaGFyKik7
Ci0gICAgYm9vbCBXQVJOX1VOVVNFRF9SRVRVUk4gY29uc3VtZVVURjhTdHJpbmcoVmVjdG9yPExD
aGFyPiYsIHNpemVfdCk7CisgICAgYm9vbCBXQVJOX1VOVVNFRF9SRVRVUk4gY29uc3VtZVVURjhT
dHJpbmcoTmFtZSYsIHNpemVfdCk7CiAKICAgICBib29sIFdBUk5fVU5VU0VEX1JFVFVSTiBwYXJz
ZVZhclVJbnQxKHVpbnQ4X3QmKTsKICAgICBib29sIFdBUk5fVU5VU0VEX1JFVFVSTiBwYXJzZUlu
dDcoaW50OF90Jik7CkBAIC0xNDIsNyArMTQyLDcgQEAgQUxXQVlTX0lOTElORSBib29sIFBhcnNl
cjxTdWNjZXNzVHlwZT46OmNvbnN1bWVTdHJpbmcoY29uc3QgY2hhciogc3RyKQogfQogCiB0ZW1w
bGF0ZTx0eXBlbmFtZSBTdWNjZXNzVHlwZT4KLUFMV0FZU19JTkxJTkUgYm9vbCBQYXJzZXI8U3Vj
Y2Vzc1R5cGU+Ojpjb25zdW1lVVRGOFN0cmluZyhWZWN0b3I8TENoYXI+JiByZXN1bHQsIHNpemVf
dCBzdHJpbmdMZW5ndGgpCitBTFdBWVNfSU5MSU5FIGJvb2wgUGFyc2VyPFN1Y2Nlc3NUeXBlPjo6
Y29uc3VtZVVURjhTdHJpbmcoTmFtZSYgcmVzdWx0LCBzaXplX3Qgc3RyaW5nTGVuZ3RoKQogewog
ICAgIGlmIChsZW5ndGgoKSA8IHN0cmluZ0xlbmd0aCB8fCBtX29mZnNldCA+IGxlbmd0aCgpIC0g
c3RyaW5nTGVuZ3RoKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0tIAoyLjkuMwoK
</data>
<flag name="commit-queue"
          id="330522"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>309478</attachid>
            <date>2017-05-09 00:07:29 -0700</date>
            <delta_ts>2017-05-10 09:57:50 -0700</delta_ts>
            <desc>patch</desc>
            <filename>0001-WebAssembly-support-name-section.patch</filename>
            <type>text/plain</type>
            <size>64299</size>
            <attacher name="JF Bastien">jfbastien</attacher>
            
              <data encoding="base64">RnJvbSA2YzcyM2Q2N2NiZmZlMTQ2ZTBjYWEzOTk4YzQ4NDQ5ZWIwZjUwOTRmIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKRiBCYXN0aWVuIDxqZmJhc3RpZW5AYXBwbGUuY29tPgpEYXRl
OiBGcmksIDI4IEFwciAyMDE3IDAxOjM3OjUzIC0wNzAwClN1YmplY3Q6IFtQQVRDSF0gV2ViQXNz
ZW1ibHk6IHN1cHBvcnQgbmFtZSBzZWN0aW9uCgotLS0KIEpTVGVzdHMvQ2hhbmdlTG9nICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDEyICsrKwogSlNUZXN0cy93YXNtL2Z1bmN0
aW9uLXRlc3RzL25hbWVTZWN0aW9uLmpzICAgICAgICAgfCAgNzIgKysrKysrKysrKysrKysrKysK
IEpTVGVzdHMvd2FzbS9mdW5jdGlvbi10ZXN0cy9uYW1lU2VjdGlvbi53YXNtICAgICAgIHwgQmlu
IDAgLT4gMTM0MDkgYnl0ZXMKIEpTVGVzdHMvd2FzbS9mdW5jdGlvbi10ZXN0cy9zdGFjay10cmFj
ZS5qcyAgICAgICAgIHwgICA4ICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50
eHQgICAgICAgICAgICAgICB8ICAgNCArLQogU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxv
ZyAgICAgICAgICAgICAgICAgICAgfCAgNjQgKysrKysrKysrKysrKysrCiAuLi4vSmF2YVNjcmlw
dENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiAgICAgICB8ICAzMCArKysrKy0tCiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwICB8ICAgMyArLQog
U291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL1N0YWNrVmlzaXRvci5jcHAgfCAgIDkg
KystCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvU3RhY2tWaXNpdG9yLmggICB8
ICAgNyArLQogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RhY2tGcmFtZS5jcHAgICAg
ICAgfCAgIDYgKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0YWNrRnJhbWUuaCAg
ICAgICAgIHwgIDE0ICsrLS0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21CQlFQbGFu
SW5saW5lcy5oICAgIHwgICAzICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQ2Fs
bGVlLmNwcCAgICAgICAgICB8ICAxMCArKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dh
c21DYWxsZWUuaCAgICAgICAgICAgIHwgIDI1ICsrKy0tLQogU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vV2FzbUZvcm1hdC5jcHAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL1dhc21Gb3JtYXQuaCAgICAgICAgICAgIHwgIDM4ICsrKysrKystLQogU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUluZGV4T3JOYW1lLmNwcCAgICAgfCAgNTAgKysrKysr
KysrKysrCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtSW5kZXhPck5hbWUuaCAgICAg
ICB8ICA2MCArKysrKysrKysrKysrKwogU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU1v
ZHVsZUluZm9ybWF0aW9uLmggfCAgIDIgKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dh
c21Nb2R1bGVQYXJzZXIuY3BwICAgIHwgIDIxICsrKy0tCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9XYXNtTmFtZS5oICAgICAgICAgICAgICB8ICAzNyArKysrKysrKysKIC4uLi9KYXZhU2Ny
aXB0Q29yZS93YXNtL1dhc21OYW1lU2VjdGlvblBhcnNlci5jcHAgIHwgIDkwICsrKysrKysrKysr
KysrKysrKysrKwogU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU5hbWVTZWN0aW9uUGFy
c2VyLmggfCAgNTEgKysrKysrKysrKysrCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNt
T01HUGxhbi5jcHAgICAgICAgICB8ICAgMiArLQogU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
V2FzbVBhcnNlci5oICAgICAgICAgICAgfCAgIDYgKy0KIDI2IGZpbGVzIGNoYW5nZWQsIDU2MiBp
bnNlcnRpb25zKCspLCA2NiBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBKU1Rlc3Rz
L3dhc20vZnVuY3Rpb24tdGVzdHMvbmFtZVNlY3Rpb24uanMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBK
U1Rlc3RzL3dhc20vZnVuY3Rpb24tdGVzdHMvbmFtZVNlY3Rpb24ud2FzbQogY3JlYXRlIG1vZGUg
MTAwNjQ0IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21JbmRleE9yTmFtZS5jcHAKIGNy
ZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtSW5kZXhPck5h
bWUuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21O
YW1lLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNt
TmFtZVNlY3Rpb25QYXJzZXIuY3BwCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vV2FzbU5hbWVTZWN0aW9uUGFyc2VyLmgKCmRpZmYgLS1naXQgYS9KU1Rlc3Rz
L0NoYW5nZUxvZyBiL0pTVGVzdHMvQ2hhbmdlTG9nCmluZGV4IGZhOWRlYjQuLjc3YWFhZDMgMTAw
NjQ0Ci0tLSBhL0pTVGVzdHMvQ2hhbmdlTG9nCisrKyBiL0pTVGVzdHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTUgQEAKKzIwMTctMDUtMDggIEpGIEJhc3RpZW4gIDxqZmJhc3RpZW5AYXBwbGUuY29t
PgorCisgICAgICAgIFdlYkFzc2VtYmx5OiBzdXBwb3J0IG5hbWUgc2VjdGlvbgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcxMjYzCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3YXNtL2Z1bmN0aW9uLXRl
c3RzL25hbWVTZWN0aW9uLmpzOiBBZGRlZC4KKyAgICAgICAgKGNvbnN0LmNvbXBpbGUpOgorICAg
ICAgICAqIHdhc20vZnVuY3Rpb24tdGVzdHMvbmFtZVNlY3Rpb24ud2FzbTogQWRkZWQuCisgICAg
ICAgICogd2FzbS9mdW5jdGlvbi10ZXN0cy9zdGFjay10cmFjZS5qczogVXBkYXRlIGZvcm1hdAor
CiAyMDE3LTA1LTA2ICBPbGVrc2FuZHIgU2thY2hrb3YgIDxnc2thY2hrb3ZAZ21haWwuY29tPgog
CiAgICAgICAgIFtFUzZdIEFycm93IGZ1bmN0aW9uLiBJc3N1ZSBpbiBhY2Nlc3MgdG8gdGhpcyBh
ZnRlciBldmFsKCdzdXBlcigpJykgd2l0aGluIGNvbnN0cnVjdG9yCmRpZmYgLS1naXQgYS9KU1Rl
c3RzL3dhc20vZnVuY3Rpb24tdGVzdHMvbmFtZVNlY3Rpb24uanMgYi9KU1Rlc3RzL3dhc20vZnVu
Y3Rpb24tdGVzdHMvbmFtZVNlY3Rpb24uanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uYmE1NDE5ZQotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvd2FzbS9mdW5jdGlvbi10
ZXN0cy9uYW1lU2VjdGlvbi5qcwpAQCAtMCwwICsxLDcyIEBACitpbXBvcnQgKiBhcyBhc3NlcnQg
ZnJvbSAnLi4vYXNzZXJ0LmpzJworCisvKgorVGhpcyB0ZXN0IGxvYWRzIGEgV2ViQXNzZW1ibHkg
ZmlsZSBjb21waWxlZCBieSBFbXNjcmlwdGVuIHdpdGg6CisgIC4vZW1zZGstcG9ydGFibGUvZW1z
Y3JpcHRlbi9pbmNvbWluZy9lbSsrIC4vbmFtZVNlY3Rpb24uY2MgLU8yIC1nNCAtcyBXQVNNPTEg
LW8gbmFtZVNlY3Rpb24uanMgLXMgRVhQT1JURURfRlVOQ1RJT05TPSJbJ19wYXJyb3QnXSIKKwor
RnJvbSB0aGUgZm9sbG93aW5nIEMrKyBzb3VyY2UgZmlsZToKKyAgZXh0ZXJuICJDIiB7CisgIGlu
dCBzaWxseShpbnQpOworICBfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpIGludCBlZ2dzKGludCBp
KSB7IHJldHVybiBzaWxseShpKTsgfQorICBfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpIGludCBi
YWNvbihpbnQgaSkgeyByZXR1cm4gZWdncyhpKTsgfQorICBfX2F0dHJpYnV0ZV9fKChub2lubGlu
ZSkpIGludCBzcGFtKGludCBpKSB7IHJldHVybiBiYWNvbihpKTsgfQorICBfX2F0dHJpYnV0ZV9f
KChub2lubGluZSkpIGludCBwYXJyb3QoaW50IGkpIHsgcmV0dXJuIHNwYW0oaSk7IH0KKyAgfQor
Ki8KKworY29uc3QgdmVyYm9zZSA9IGZhbHNlOworY29uc3Qgd2FzbUZpbGUgPSAnbmFtZVNlY3Rp
b24ud2FzbSc7CisKK2NvbnN0IGNvbXBpbGUgPSAobG9jYXRpb24sIGltcG9ydE9iamVjdCA9IHt9
KSA9PiB7CisgICAgaWYgKHZlcmJvc2UpCisgICAgICAgIHByaW50KGBQcm9jZXNzaW5nICR7bG9j
YXRpb259YCk7CisgICAgbGV0IGJ1ZiA9IHR5cGVvZiByZWFkYnVmZmVyICE9PSAidW5kZWZpbmVk
Ij8gcmVhZGJ1ZmZlcihsb2NhdGlvbikgOiByZWFkKGxvY2F0aW9uLCAnYmluYXJ5Jyk7CisgICAg
aWYgKHZlcmJvc2UpCisgICAgICAgIHByaW50KGAgIFNpemU6ICR7YnVmLmJ5dGVMZW5ndGh9YCk7
CisKKyAgICBsZXQgdDAgPSBEYXRlLm5vdygpOworICAgIGxldCBtb2R1bGUgPSBuZXcgV2ViQXNz
ZW1ibHkuTW9kdWxlKGJ1Zik7CisgICAgbGV0IHQxID0gRGF0ZS5ub3coKTsKKyAgICBpZiAodmVy
Ym9zZSkKKyAgICAgICAgcHJpbnQoYG5ldyBXZWJBc3NlbWJseS5Nb2R1bGUoYnVmKSB0b29rICR7
dDEtdDB9IG1zLmApOworCisgICAgaWYgKHZlcmJvc2UpCisgICAgICAgIHByaW50KGBDcmVhdGlu
ZyBmYWtlIGltcG9ydCBvYmplY3Qgd2l0aCAke1dlYkFzc2VtYmx5Lk1vZHVsZS5pbXBvcnRzKG1v
ZHVsZSkubGVuZ3RofSBpbXBvcnRzYCk7CisgICAgZm9yIChsZXQgaW1wIG9mIFdlYkFzc2VtYmx5
Lk1vZHVsZS5pbXBvcnRzKG1vZHVsZSkpIHsKKyAgICAgICAgaWYgKHR5cGVvZiBpbXBvcnRPYmpl
Y3RbaW1wLm1vZHVsZV0gPT09ICJ1bmRlZmluZWQiKQorICAgICAgICAgICAgaW1wb3J0T2JqZWN0
W2ltcC5tb2R1bGVdID0ge307CisgICAgICAgIGlmICh0eXBlb2YgaW1wb3J0T2JqZWN0W2ltcC5t
b2R1bGVdW2ltcC5uYW1lXSA9PT0gInVuZGVmaW5lZCIpIHsKKyAgICAgICAgICAgIHN3aXRjaCAo
aW1wLmtpbmQpIHsKKyAgICAgICAgICAgIGNhc2UgImZ1bmN0aW9uIjogaW1wb3J0T2JqZWN0W2lt
cC5tb2R1bGVdW2ltcC5uYW1lXSA9ICgpID0+IHt9OyBicmVhazsKKyAgICAgICAgICAgIGNhc2Ug
InRhYmxlIjogaW1wb3J0T2JqZWN0W2ltcC5tb2R1bGVdW2ltcC5uYW1lXSA9IG5ldyBXZWJBc3Nl
bWJseS5UYWJsZSh7IGluaXRpYWw6IDYsIG1heGltdW06IDYsIGVsZW1lbnQ6ICJhbnlmdW5jIiB9
KTsgYnJlYWs7CisgICAgICAgICAgICBjYXNlICJtZW1vcnkiOiBpbXBvcnRPYmplY3RbaW1wLm1v
ZHVsZV1baW1wLm5hbWVdID0gbmV3IFdlYkFzc2VtYmx5Lk1lbW9yeSh7IGluaXRpYWw6IDE2Nzc3
MjE2IC8gKDY0ICogMTAyNCksIG1heGltdW06IDE2Nzc3MjE2IC8gKDY0ICogMTAyNCkgfSk7IGJy
ZWFrOworICAgICAgICAgICAgY2FzZSAiZ2xvYmFsIjogaW1wb3J0T2JqZWN0W2ltcC5tb2R1bGVd
W2ltcC5uYW1lXSA9IDA7IGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICB9
CisKKyAgICBsZXQgdDIgPSBEYXRlLm5vdygpOworICAgIGxldCBpbnN0YW5jZSA9IG5ldyBXZWJB
c3NlbWJseS5JbnN0YW5jZShtb2R1bGUsIGltcG9ydE9iamVjdCk7CisgICAgbGV0IHQzID0gRGF0
ZS5ub3coKTsKKyAgICBpZiAodmVyYm9zZSkKKyAgICAgICAgcHJpbnQoYG5ldyBXZWJBc3NlbWJs
eS5Nb2R1bGUoYnVmKSB0b29rICR7dDMtdDJ9IG1zLmApOworCisgICAgcmV0dXJuIGluc3RhbmNl
OworfTsKKworbGV0IHN0YWNrdHJhY2U7Citjb25zdCBpbXBvcnRPYmplY3QgPSB7IGVudjogeyBf
c2lsbHk6IGkgPT4geyBzdGFja3RyYWNlID0gKG5ldyBFcnJvcikuc3RhY2s7IHJldHVybiBpICsg
NDI7IH0gfSB9OworY29uc3QgaW5zdGFuY2UgPSBjb21waWxlKHdhc21GaWxlLCBpbXBvcnRPYmpl
Y3QpOworY29uc3QgcmVzdWx0ID0gaW5zdGFuY2UuZXhwb3J0cy5fcGFycm90KDEpOworYXNzZXJ0
LmVxKHJlc3VsdCwgMSArIDQyKTsKKworYXNzZXJ0LnRydXRoeShzdGFja3RyYWNlKTsKK3N0YWNr
dHJhY2UgPSBzdGFja3RyYWNlLnNwbGl0KCJcbiIpOworYXNzZXJ0LmZhbHN5KHN0YWNrdHJhY2Vb
MF0uaW5kZXhPZigiX3NpbGx5IikgPT09IC0xKTsKK2Fzc2VydC5lcShzdGFja3RyYWNlWzFdLCAi
d2FzbSBmdW5jdGlvbkBbd2FzbSBjb2RlXSIpOyAvLyB0aGUgd2FzbS0+anMgc3R1YgorYXNzZXJ0
LmVxKHN0YWNrdHJhY2VbMl0sICJ3YXNtIGZ1bmN0aW9uOiBfZWdnc0Bbd2FzbSBjb2RlXSIpOwor
YXNzZXJ0LmVxKHN0YWNrdHJhY2VbM10sICJ3YXNtIGZ1bmN0aW9uOiBfYmFjb25AW3dhc20gY29k
ZV0iKTsKK2Fzc2VydC5lcShzdGFja3RyYWNlWzRdLCAid2FzbSBmdW5jdGlvbjogX3NwYW1AW3dh
c20gY29kZV0iKTsKK2Fzc2VydC5lcShzdGFja3RyYWNlWzVdLCAid2FzbSBmdW5jdGlvbjogX3Bh
cnJvdEBbd2FzbSBjb2RlXSIpOworYXNzZXJ0LmVxKHN0YWNrdHJhY2VbNl0sICJ3YXNtIGZ1bmN0
aW9uQFt3YXNtIGNvZGVdIik7IC8vIHdhc20gZW50cnkKZGlmZiAtLWdpdCBhL0pTVGVzdHMvd2Fz
bS9mdW5jdGlvbi10ZXN0cy9uYW1lU2VjdGlvbi53YXNtIGIvSlNUZXN0cy93YXNtL2Z1bmN0aW9u
LXRlc3RzL25hbWVTZWN0aW9uLndhc20KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjRiMjJiMWFlZWEzOGU0NjljMzI2
MGJhMzRkNWRhNGE2ZGIxMjE1MwpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMTM0MDkKemNtYlc4
T04/QXVkQkBMdlJhTXVtPk1vQ009JFl+MGQjPz1gRndnXm9LX2pJMmd4R15JVyhZRzJ2WmByJlk2
ZSVnCnotUnxsZCEkPklJQSZgc3xxQ35KayhkNGx9MWQlTFFCb1lmR3RVUlBkViE8TWpTZkdlU0Ix
T3VFI1lEPTJXYipyZQp6PWlZakJfZT11Zz5BSjZUJi12Y3B8TkhLfVpnY05XPGVaRUM7XjUlR2Ip
SE4xX3hHZHk9T1g+WWB9PllQX25oT3YKeklVVGM7R0o8WFZyUWhhOyk1Ky1Xe25jT2xqWmdVLSpG
Tl5fKTFNeEdgcXxHVWAlWSYmJnBoaXRjQWF6ZUByb1N9CnpafWB2RkMkaTAoSkNtdFBHYEsmeXlT
K0ppYWRjeUpYSl8pVk9Lc1gwTjdIOV9ya21TfkMqTnV9SiQ/Nk1ufEpULQp6T3JNKFVlMTdyalRa
V0BNZCQlVUg/QGRRe2hqJkpJWnJ5dSVjPVBzKSZJb0RgaHJ7aWlUVSVrcCktV3VlWHtucWAKemQh
eS08JD5kV3o7aioyMWRHRlRkX1Z5KiRHNz5jPW9PJTMtamN+M3QrYEdOS3tqIVRScGY/fXpwKG4h
aTY7OGMkCnpjZk0kVUtJSEt5PlVtcXgzRDBxSzVGZjt2QyEyMkcrI1dedXFMIWBPNGNDOGxiOHBt
MChncmpxejlxJUlKeFlAfQp6UFNTfH5RdUc8NkRWciFzR2ZwSEtYSWt5WndmPENOVGw+KkRtLTc/
cEMrNWZOdT0jMCFgQVpCcyomZzEzX25sa3IKelVBZ295eF53Untxdj9oXylnSGReIXVDc2hwTDZm
YkNva1JvXnY+UyZuYkNDNXkoZFMwdnIjOGNqYGw/ND9ZKy1FCnpHdV56a15+fUFeVE8pVTNnXzln
Py1YRk8mPTB7aGZzZTVsVytgQnAxYXUqKzZSMzIqJVUpPGlneHckPnV6SjJxUwp6ZClVVUtQeHJw
QSZFayE/KXNCfF4rK181NV9mVUl5Wip3eCluWSM2Q19gK2x+YV97Y2gkaj9CXyZTY35VQ3lAU1YK
ekdQJTFXR3VXS28tbnJ9RSlfd2tFWS14TFljPkFfe2V7WClrO2x8MldDOWNTd09ZXyNfazk/cHle
Snc/NGU8RVQzCnppSml2Pl9ScUQtPXY9RkM8TVhYXkV4JEpRX2piPj5pWVUqJnRSZTFQRUJfdGFE
Y3QjMXtgPEJZVSlEaHBvcDB5KQp6QUJJdCNFMiZPKUlKdUl+QDh+d09ibmAjWnooXnw9WnFPfHdF
d09hJl5mQmsmYT9IODZoSTMhQmg1YypZe0pTPUQKekptYlg9O0g4TUZ4TnNOWmp9RlI5dkdjN1c5
JmBxZWxAMD03SHFaWkNDVzg1eDA1VWs9JmBsWmxtZjk1S0RrKz5sCnpHcDwlSCNJOCEycXRKO3s8
RXFQdkJIaHh0bHlsTGd4V2d2QzYhKGcoaVd1fEphbiltdFppJExTcWF4NGNQSjlgYAp6ckEwaWhR
dldzaEFNXiowUm5nVkheS3NjdUU7R3R+M01uI3R0N0s7MThKRWJqTkdgLV8peFRjbFQ8ZXJjVWda
QWwKeilTckUrWHBoU19EfDF+Nzw+YExXJnYxZFFEakZOUEp7P3pgcUdPbDBiZiM0X2JoUUZxdCll
YUpqaHQzUFBUV0g/Cnp1bUo7dVZucktRYmk+OTtxUnRsK29vb0J9WVAjPVRSPlZmKlIkbDdYIVVr
UUdCcmUxb1B7SmU8NXxoe19GRVJ1agp6PWxRPWFzeDN0V2cqMT4jP3g7O1NCd0JTciM7TF41c2F9
eHh6PCg5IzN8MG5AZEd+UitjWWRGe3tDO0xzPUlBO04Kenk4YV9HNnxOc1ZjUmslN3l2OytSMVkk
JDt7MXYtQUlPYHZ7YWMhQElCQ3FaMXBpYGcxWCNUP31QSiskTURKfk52CnpofjJRUk44UlV4a1JH
XlFgTlNlT1U7ajM4NUktNEdfbWBrdUkpI2lVLUYxbF5FeWphSz1YM2BUTTVXfVoxQmJRTgp6P3pp
diVEaiNKMmArMSlLdTNnYl9GYVBGbUYpRVREJFUheXBoNF88eHxDOERxVHFzPkhXe3R0UUQ8eko+
Rl5lSXoKejImeEM/YW1MYlJ7JTVqbmJaWG5kSjdyQyE4QCEjOVJnXyolRmoxVEY2U3tBMyZNd0N+
Y1M9OEp1Q3FgeXhLT3hCCno+MmZDNShmTTRMSzJrK31kfldhI2FoZDBAOGxrUDRQJGB1JDRuZzI8
Rj8lPXFJXmRyO0lQYTVQQUNGSHNfbFR4KQp6eFhacW9uYW8/WlUhQEgwakhedWh0IXZeSUE4S3VS
diVtfVUrZ1VwcGJzVmYyZjBMRUwjPzA2bGtYSjdNKjdxZEkKeig/UVhGT3clR3R6Wl4pZ3t5IXNJ
I09HdUdoMjFqdDR8MSpDPTFQN0k7U0gpN20ma29gempGN2hnIUxnUUB6SmkyCnpfNlcwODxkZG9Z
X1ooSjViKmcqaT5zNTxBYmRQZWJyazl4JTJPfiZLe3I9dUFecjBzSUJRMzwqZ08qdDcxKHU3MQp6
O1JQIy0yfUdmPjQ5R0R2dHlFIT94VH56cmpVX1N7JXJpMHs/JkJiPkhJKEs1IUkpVCs0aW8ocVp0
NVhMX2pBWUEKeldWaGJnXzR8bjNfd01fX0Y0UXRrSlpBVE9YSUZ9dGEzK091QUsmLXNaazA/Pmg2
TGZHYCN3SCY5TDxndTVvQDdqCno1YHwoR3YkN3xIV0VyPyQ1SzN4N3NUNVI+Nl5vKT01RE90JFYo
Rk16aWdwPF9xS1JpeEFzbEQ7WiEjQG5WIURASAp6UXIxaHlnJDRhSmJuI0Q7NFBMVipvdVdgdkE1
PXZzMm5tfmwlPj5PSHFYaik+TU47QWNXaD45NVFIR24/SEpJfmAKel45OH5laUcpTjJ3enowMUF8
cldAYTxwUHBLdFcoY2BzJUxie19qaiVpWE9SbE1aV2NCVEVQdlptRk80T2lqU3hNCnpYWl45MWYj
Oz1JSjJFMkxNZmloIWFkM3FaY0EwM0NUJFcrZ2dETWl0d1c8U3NFb0NoMnhLZz02Y1FTMEBQSkJJ
KQp6ZUMoSTAmQiZga1pSVTdANjZWVSYhUmxGYnoza3pJP0RRJSRBbHJgPUt9X15jNW0oZ0I1NHxo
WFVYdGVgUHZnd0EKengod14wSys8VWxDRVJoJDFeR31RMW5OU1JVXllsKV4kdk5lQXJmfjhfWlFK
cWpkI3x6OHpgKnB1ZEElPGtWSS1gCnpuOFFhOzFaJSFDQCk7QWkoSnNGNUJuP2t0M1djTC1HfShq
JFNqdmp0bEJNK3xUVEZpZDcxQiN7Y09VTENARjNUdQp6bVRPd3tGMihEbiNMN3x5YFYjM0Z6RCNk
YCtwX3BOY1M3NSNGbDE+cDgrS3xvakRiVytyaHBxdm5KYG0zNyZJUlYKekl8emA3NlQ7RjhfWFZH
MFohR0l+I29YdThCUjsyfmMrfV9PQ0VBajV3VFIwc18jNjt2P3NLYU1LZyl+TkFSQ3lLCnomKkFR
ZGc2MkxhRCYldTNaMVh9Kzd2WnNNMVgtLVBgRX52V2AtRHJzVW5ZdHwxYXpsLWtrLSFHTEtnVHJV
UHJifQp6e3ArdjQtVWZYNXZrRXFsIUxAX2BgSVdJQlNtWSRtTSppVFpYWUg3e2lUX1V8QiElQ0Qx
Myk+JDIlcGhwaSN5MikKell4bEtVZHdpZD8hYzVWMDA8JEZSNkNTOzdsfkhfSXxCNGR9OSptYSMh
PD5va1o8UjQjQXgpcH5YQiFCWVBmSjJjCno4T3UqPEh3TlJiN01BTik7YnBhcTVNSW5PIVZoS0Ml
Z3tNUFBnTV9IRElTNmR0UGYtZ29ncE53VVkpPnJtSzZeUAp6aTZRZVZSWW5HNm5JaHxKaEt3bSkm
Kms2X1MyfDZyMzlsNkttMGZPWmskcH1xVypAbkJpb2RvTU1HIyt6ZEdSYjAKekczOSt5WVJFKD1X
SV88bDx9b2k7Q1dffm9Yejc/dFIzREckNS1YdkxkN3Z7RTJicFhlKS16WktHKTBeaiQ7NkxACnoz
di1iJXtGLTYpakh7cT4tR3ZieWpoUjNxUypndHU7OEdUe0ZkQ0YyKWl6ek4pLURedjVjI19hZyNl
fVhRWHp5TAp6ZytqbyU/eTEzNFd1WSl1RDE8Zz1obHNlZDd6JmtKRCtRbik+YHtAO0xnNnRObClD
flV1LT01aWooa0ModSg+OFMKejM1Qn05aCE7YmxXbmBuVUQ9JXxKRk8mcE9HeiowaTYrQUE1TGVY
dl56VWImS1JoYkhmZ3A0e0FSKkkrPTREK1FCCnprZWZMdzd7KHpPJmhBJTY+WkwmRXFFcDkyblli
V1RyXnBvKHA8cXpRI0JlMUdfKDNzfFNyaWkpYSRIUWJGdDM9WAp6VlYzIV9nPHQ4NGBxRVR1MDBS
I1dGJVopfENQdCN8UyZZUFU0NDE0RioqR0E5M0BuMDJYOHNgN2oxOCM3a3BkaHwKejVLJS1fNSVf
IyNZX2YpTnduTG1HdDxVNCs4ZGl5O3R5dSZ0K1M+RmU8RSZhLXV7Zno+MDwwRm9UZWNZOXZqMDIw
Cno4Qm1PaF5jTV9vI0tAMiR1fih9cCZycUxZO2koS1ZNTzxjREhScXx5RkJ3WnhxPUIpKGpGRz8y
e1dWVylJI3dCQgp6WURuKjRNNXohLWs7WXlWOXV2WjI1YHJxOy1VUF8oRHVJbVVyWU9TVlVzQWB2
eC1QbFdNK2Q0N0whNShAQl55b04KemdySFBgQmBEN1B4NHlHVnBUQGs+cj4mJDI5N040NWN0UXVa
a084V2FEQXQyKGcjO0ZkMVYja0tZM0lOQUtASSlrCnoxZHZyQFVFSEB3WGU0K1Exaj5ZZkd6dTFj
T18wPjhjPyFTVURBQHhKJTBDJHVPamVRMXc4NmJXRTZpQTFHa2EkMwp6cD50dCMpSmF4JDNiXzVE
Zm1fbk4qOFpVKWs0VndsS2hGN0lRRU5zSGJUKHduN1BvfDUmLUlOcGhMZCp4T3h1aSYKektQV1dR
dElmX2cqRng5ZSt4N01AKjg8JT9VayE4KmlVQSFsfEtzb2NeTE1nNkg2TlYrMkh2NlZLfCFxdSRN
Ml9oCnpxbG9iRXpnMVpvbC0kN1VmRFBXayZWUXtNI3FqYm8rcHtSJUY1KDtibUFnS2ZrQ2M2RSg5
QEJmYEpaYm5CXjA7MAp6R1JsSk9IUVptSjJ0SFUtdkw+YndqOWk2PXc1QlJLYSllfHdYN1dCWiNO
fCNFX2FrZl5rMWU5RDB1bSFSP0NXaWQKejlEfEUrcC1CcTZQMnJYamA+QjJfUShWPlJJcm47fWFl
a2w2TWkzSXp5ME9ZWmF1X2ApXz5aQENTd0ttJEFuQCFMCnpMSk1GfCl4M2ZDWXxLU3o3T2UjZSM5
KXcraVVqVnchQjBuRyhKfUB5QjMzM3VVaFJgQEBGYXNFdzVhNEQ/SU1+Xwp6V259TUsqSlZ5OSEt
QDcjMGZ5VE9XPjheJk1rfn1DNWx7REhQQyZUMmdjcHMrcUJYZXFoJXFWKTgkJF53OGxeT1AKelFB
ODF7b3syRnZAa21KVkg2c0t+Pl80PiY5JUtVU0xWQERLXzxHZTZtIVRCZXpwNnlHSCg/cm4yXkx9
cks/UFp7CnpzeVE2PHllMzxhR3JSX18peHl8RUBCP051THkmblM9cShybk9VZXFZQTxgTE5CP3tG
Pjs3bio3XmVFUV9zQXo+PQp6PDBrfFo8dkQ4fDFgaDx1UWtMUzlSbE1jZjYjSnx4WXxsUWIjaEd3
SmJ1cmAkY3F3ZzVfeW1ANkVTNmAlZiF1YjEKekBhJXQqYCl8dTt4RX1Jdi1PeFpfYVBjRTdTYSU5
aiEzUUVJd1hLekQmNihPSDFAVkBvQSR2fH5DclNTdEdefCliCnpMVG5XMDxOfVFrJXJLe3pLPklL
dW88ZlZrNHNFSHhQJTJ2bVVKPllNdDBJZVYrSGtjQGR9V0k7TF8/TVZBJnx3Uwp6XlAoa3hfK2NI
aDNZTXxSZlNeY352YDhCPFdHcmYzMVB2IU5URE42M29jT3Z0VHNQdnNsOWJYYzsxYnVQNE13QEUK
ekhZWmdFZ2JNJjU5KERvKlV8M0h7TzUrOHxXLVMjNTU8QHU+dnRTUFNndGlFeFlgUjNFPXxMV0Zn
STg5clRUWk9hCnpZOzxAUzBNb1FBUEVyVFk9Q1M/XnNaZUBoZkdiYU9nVXlNOUQrISZucXlYemVz
O3hrbmtnNSQ9cj00RGtWZ3BrYwp6LVhje3B6YTElY3lSeTU4UiY3fHlMUylsfHAmPnN1XzsmZSVs
NzMpIXA+WGUjXylJai1ITnspZHN3T1Y3TVlMK2MKeig1Uz91ckFNNE0qayg3UilTYHZBaVhseVNZ
fnxrN18tO1B9ZlB7SnchN2RjPDd8cyREUD1+UmcwWFRwVjY7TVVFCnp8NFFHMFlQU1plUDRWN1Vu
WUBsa0hRWVBOZV4kWUZNWVBaPWxoaFNGXzlITnwqaDArYyQxX2ZGSEg9ZXMka29MTAp6MzZIVj1v
WTBqP0t+OHxqYFFLQzw2M2M5UVdiOEZQMkFMdS1yIzhmU2hiKSQxTnVsS0VXMipNTCojcW4tbDlD
PkIKeiopdDB8K0E0I3t2UGIkbDc1dD45NEx8QihibVNgPiR5aWxxMlNuPTZ2YTFZNzNWZWohO3xs
SSV2RVc4RikrOVRHCnpORTBpI1k0e3kyeERfc1BFTz5AVVgqNjdsJmxHTGJpb2s9T2A+PTdyMDIm
I0A0S0JxYVloMm5tem0oYztjO248VQp6RT0+JVY7LThwcGdHLX1oYWNUUEl4SE44WHNqP35jeEJP
dDxUOSU4eUYrcCNIT0pte0V4Vz1XWG92NHxgYUF7QnkKeiFhKlFReE9CeFpVdyNQQSg3elgpQSgw
WExDQDcyODQ5bk88Q2cyRnFxPCk/M3F0S3BPRUMoSCtYLWlJN2h+K2Q+CnpySG1lM2BKej5LPD9X
JGI/QU9Pd2NqUH15ODx3ZG9MQTFqeCU1citSSEpobClOREdwUHZLJnNiUmFzQSY5OHNxQAp6X0t2
MndJdEJZajx1bzFHZHNwbH1ZYGQ/N1U3ZlMmOz1mRTRycz08MEwoZjslTGJYZXZPWW0hcGs9fDR5
SSpZRU0KekhkTHBfYmctIUNaaEAkQVFGMWhvS2gkbCh6N1hPNnVWOVJFKFdRZFgwYDc4U0VoPGp+
VVJGWkUycmRmdHRJVGozCno0XyhRTikxaVMhRF5DdkVRZmJsPSRkSDU1Mm1ZbENNKTFUaCgrfFZ2
WDZfMDhsWTReNjc0JitHbz57WCNzfkVBUAp6K0IyO2tZNGxVaUgleEktZUg0cHwzbCpjRy1rRTJ7
Y3hFSzw1YGJDVkFGXyYoVV5vUV5UZzZDO1gmdGtXMXlnd0AKej11a04+YztAb00xYlZBN3IoKzRx
Mz1vK21EfVRYeT09ZCZGakNPbmRqNnQmP2tWWlF9RjEyVDdee3ckMElyVE1SCnpAZngxVlBtZWQr
ZjZifGpTWFlNcCg+JkJ2VV54dCF4LVVITTArcT1zWXtNZkNGTSNXZHIreys3NlhWN2NnRmk+WAp6
NktqYF9nZn1CUihOQDN7Rn4zazFMTChBMlF5MWhyMHllP3pwYHMqMSkpZ2d0emlkVUJeWjF5dzwz
ZjN0PVlSOUgKemc5OF4wPzIjKnxnPWNCdEdjZ3ZWUHdjNTUqTF5XT0M7YFMqYm4tej0hZVgrNUZZ
SCM3TWVTSXdadGE+X0gzUnZTCnpQTlZoTEBUPyphYjR4QGswQCswfnV7dUkjT2J4c3diVHkhZ003
LS0wI1JuY2FAQ1dkKkxQajtiVjAlR1F1RzJidAp6cDI7dkMrZmBVdVFETylCKWA9WSQwSyR+cmdU
UWctVENhTk9mbVIhZWd2a3FHJktoNSlod3g/QTtMQWYpayQzRUkKemp2LUFSTD9wOHI0UVUhbzMo
ZGY/V2lVKmNGb1lSPFBPYHxPWTZ6anV6Tjg5MERwM3VqRGomMllBYllKTmdZWHEqCno2WkNSYjdF
b3U/QmhBIUh3UDg4S2E+PTE9MzNWRm9JXzgzXnFhWHlxSkp+NUpSRkJqSSk/OEVmNjRhXnQ4ITBJ
Kwp6aE4zLUNpQjVHaEJrTVY4KVkrRk5IUU8xMmQ7UEZUbCM4PWckUWdCcWJjUSpQN3EqXlpeQER8
KWVkLTdSKzd8JEkKemh4P19BYTs0YCNAMDtwYnlOdEx+Xm8zaiQmKm94OTFvaE0lYVJhYXdmcjZ1
T28+cjI0OWNDN1hvdk1jfG51WXs4CnpIe1V9PyUkRkFKYHN0dXF6NkMjZDY1MTRYanQzXyFDUWww
cDdCajAmOVJ2Xj5TOU5pUUFHSmVhRXQ4IzliO0t6UAp6SXNnTUoxTXEtKTB2cmxFcl5pIXd4dGd2
UXUwdy1JbGd3KHBXKWY7V3YpMV99Y3hJXmVMaFBWfXFGMGN0eXJiPkkKeiZWaEEhK2oyZlltOT14
YCZTJUJsVndUM1c8JCYkUjBaQXcjV1RDKkQqI3d4RzVEPEp5TnRfMjxpfV4talNyeDQ7Cnp3SmpU
U2o0LURyX1I4X3JFS1gjaVh9Izx+dDd4cTEhOEghWClxK04oMHxoakw2PyFeeHhXS2J2Vyl+JlZo
KEx2Xwp6bk4xeVlMOEw4MCo0Wk5vNj9yRDIjcEBjNCVXMGxRRjNiI1RSQnR1NG4xfWhBQXUkK2oz
T3pOWWZhRlY2bztaKj0KenFOWWxObXQpSTN4bW8+P3ApcW9+OEJkeEEmfmRvVjFKSCg/KEw5Z25u
I1crMF98OzU/MW5xalIhKHw+ckREJE1JCnpDRDl6Tl42OzMxNUVLJDdJSjx1NG5rQER3RWJ3M3JF
Z0RyNG87blJ8ZiswNDIxKSRIb3hUQlM/VVMkeGdza25hUAp6VG9XNlcxMz1BY0sjdCY+SWRVWjhh
SzBEPi0memVKSnQ8YSZPPmgkSTQ4T24tITs9UFU4I1dKOHFoc3FqJUZzZygKelFjMChXPmJsaEdJ
eXhPaz5wRS1yQEpMfD45NFR4QzlGcVZYWk5xeSZieHt8NEhCNzNeYyppYWI0XmtvUEF1OSV3CnpG
NSR1UzJwOzZeS05UJT1KamV8SjUyfUdoTWx3N3x1NUl3KHZRI1lyMCVqenBidkJqYFpQVEh9Nzky
P1JrPithZgp6OzZrTlZfaTFMYzcjPDhWNTl8ZyFuOEI7NmgjQ18mRzRSTmUwNDxRO1BnVUAlRHtL
eWhKKzVXYG05XjVAOHlKQlEKekxKZWpOP3JWQEBLNn1JTVUrZmgtZHpWd3JzbElQYEMkKH1rVkw1
UTBLJjxoe2lJVGtaMlFuUWJrTkRvOD9mMkw2CnphfDlQVGFXc2ZPIUclYU1oRCk1Yjl3ajRTQmhV
WlgtdXo1P3hyPH5QaGRTYH1YcVZZenxGP1ByR20jbUdtd0psbQp6TiN7NXNCIV93e148TTw4YDNG
d1Q7eilLbXI3LWFXYCgyKy0lMHpiO0VxbSFNbV5BdVA4RDwtdjVDJGRMTW0tdj8KenNSaEdeNDY0
blV1cW5ka2VBcndGbn5Qenk1akliUiV9MnVLcW1jT2tBc0wtVU1EfXF4cX47VjBYPy1jVFlpWVE0
CnpnZ3NqTGRIIz1qRkZ3K0hqKT4mb2Z4VlRBU1pSKUAlMjcoajV9Wjw0QjFJJi1ndX1WaVZnejU8
JFJmSnYrKzJiVAp6UlYkckleXm1+bypGXkcrT2BjZ0dJIUkwLSNPU3QxPnBefjsxNDJsST8xOH5T
bmM1cUtXKjIqPmYtS292NThgQysKek9wcXZoI2lkdzZXJChQYnFeVWdgKC1KTHY3Y2EkPEVfKWw3
VmhOYk5Db2FYM0Y/JTFtNmlkd1BAblkmcygob2dSCnpEXm1yaiM8ZiUlOyFXc2BMaVJSRC1BRz1+
aD5nPWBhM2RsSzN3PWFkPWMwP0JibEFUM2t8JiljRSZWTV82JjZoRAp6MSlEantQLWApcGVDWiRC
RTh5Sjk5TVNISCRtTChSY1Nib3VUaG1rK1VhIW81Jig2b1oobVRNPF43KE5UamBQM1EKemZWVDdC
VSYtVEZHdntBaCRzO3hnLThfblRFWXs2ZUJqO1NxLX1sPTVxfFNkZ1Q+MWZOeHZOSmRqI28/Yl9f
ZnNpCnpgQiNgS3l9Tm01NnVxazU1NCFMek1ZUX1HTVpDS0YxeDR+a0E1V3hqQFpDaCNkQHw5aHpt
e2soZWtqcGR7Nj1EQgp6PkM9WGRadkFDTXpWdU48Wn5pPyplYCktcylyRlYoKlhFeEk0M14mREtY
S2V3MXJOPT4wNjRrJDNCc3d4dU5GPmMKeiFfa1dgPyFCY295dCNSNj1rOG5pO141eHFvJVFCfWZy
c0RoJVkjUSZfMDdpZ2BQKTBnVGlaSyhxZXRoKnBQJF5HCnpqP05lKGM3MU8mK0lxfGBodEVXWWxo
TzJUTT9YM15keSpPTlA1RWVIXkxmNUgqP3dYOF97SWx8ez9lKGtKQUQ0Nwp6SjlsMGxlKDF2Kylt
b3JuPWNWYjttT0xsSD4hWHF2WmZ9cHlZeUkkemk0TmJjWWRiSVMpZGJoeXA9JndfKldjTkUKenlL
JihtJldGITk+UHdeTi1fP0JaQCRUXlQjQ3NNJEAzPEpnKFJncTMoWj42bHVRQUBnQGNxUWIoJnJQ
OCQyVGBWCko1WmA/S2UqczgxVGpCciEKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdp
dCBhL0pTVGVzdHMvd2FzbS9mdW5jdGlvbi10ZXN0cy9zdGFjay10cmFjZS5qcyBiL0pTVGVzdHMv
d2FzbS9mdW5jdGlvbi10ZXN0cy9zdGFjay10cmFjZS5qcwppbmRleCBmYTZlN2VkLi5kNzBiM2Vh
IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3dhc20vZnVuY3Rpb24tdGVzdHMvc3RhY2stdHJhY2UuanMK
KysrIGIvSlNUZXN0cy93YXNtL2Z1bmN0aW9uLXRlc3RzL3N0YWNrLXRyYWNlLmpzCkBAIC00Nywx
MCArNDcsMTAgQEAgZm9yIChsZXQgaSA9IDA7IGkgPCAxMDAwMDsgKytpKSB7CiAgICAgc3RhY2t0
cmFjZSA9IHN0YWNrdHJhY2Uuc3BsaXQoIlxuIik7CiAgICAgYXNzZXJ0KHN0YWNrdHJhY2VbMF0u
aW5kZXhPZigiaW1wIikgIT09IC0xKTsgLy8gdGhlIGFycm93IGZ1bmN0aW9uIGltcG9ydCBuYW1l
ZCAiaW1wIi4KICAgICBhc3NlcnQoc3RhY2t0cmFjZVsxXSA9PT0gIndhc20gZnVuY3Rpb25AW3dh
c20gY29kZV0iKTsgLy8gdGhlIHdhc20tPmpzIHN0dWIKLSAgICBhc3NlcnQoc3RhY2t0cmFjZVsy
XSA9PT0gIndhc20gZnVuY3Rpb24gaW5kZXg6IDRAW3dhc20gY29kZV0iKTsKLSAgICBhc3NlcnQo
c3RhY2t0cmFjZVszXSA9PT0gIndhc20gZnVuY3Rpb24gaW5kZXg6IDJAW3dhc20gY29kZV0iKTsK
LSAgICBhc3NlcnQoc3RhY2t0cmFjZVs0XSA9PT0gIndhc20gZnVuY3Rpb24gaW5kZXg6IDNAW3dh
c20gY29kZV0iKTsKLSAgICBhc3NlcnQoc3RhY2t0cmFjZVs1XSA9PT0gIndhc20gZnVuY3Rpb24g
aW5kZXg6IDFAW3dhc20gY29kZV0iKTsKKyAgICBhc3NlcnQoc3RhY2t0cmFjZVsyXSA9PT0gIndh
c20gZnVuY3Rpb246IDRAW3dhc20gY29kZV0iKTsKKyAgICBhc3NlcnQoc3RhY2t0cmFjZVszXSA9
PT0gIndhc20gZnVuY3Rpb246IDJAW3dhc20gY29kZV0iKTsKKyAgICBhc3NlcnQoc3RhY2t0cmFj
ZVs0XSA9PT0gIndhc20gZnVuY3Rpb246IDNAW3dhc20gY29kZV0iKTsKKyAgICBhc3NlcnQoc3Rh
Y2t0cmFjZVs1XSA9PT0gIndhc20gZnVuY3Rpb246IDFAW3dhc20gY29kZV0iKTsKICAgICBhc3Nl
cnQoc3RhY2t0cmFjZVs2XSA9PT0gIndhc20gZnVuY3Rpb25AW3dhc20gY29kZV0iKTsgLy8gd2Fz
bSBlbnRyeQogCiAgICAgc3RhY2t0cmFjZSA9IG51bGw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VM
aXN0cy50eHQKaW5kZXggNDJkMGM0YS4uOTQ3ZGZjMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFr
ZUxpc3RzLnR4dApAQCAtOTQxLDYgKzk0MSw3IEBAIHNldChKYXZhU2NyaXB0Q29yZV9TT1VSQ0VT
CiAgICAgdG9vbHMvU2lnaWxsQ3Jhc2hBbmFseXplci5jcHAKICAgICB0b29scy9WTUluc3BlY3Rv
ci5jcHAKIAorCiAgICAgd2FzbS9KU1dlYkFzc2VtYmx5LmNwcAogICAgIHdhc20vV2FzbUIzSVJH
ZW5lcmF0b3IuY3BwCiAgICAgd2FzbS9XYXNtQkJRUGxhbi5jcHAKQEAgLTk1MSwxMiArOTUyLDE0
IEBAIHNldChKYXZhU2NyaXB0Q29yZV9TT1VSQ0VTCiAgICAgd2FzbS9XYXNtQ29udGV4dC5jcHAK
ICAgICB3YXNtL1dhc21GYXVsdFNpZ25hbEhhbmRsZXIuY3BwCiAgICAgd2FzbS9XYXNtRm9ybWF0
LmNwcAorICAgIHdhc20vV2FzbUluZGV4T3JOYW1lLmNwcAogICAgIHdhc20vV2FzbU1hY2hpbmVU
aHJlYWRzLmNwcAogICAgIHdhc20vV2FzbU1lbW9yeS5jcHAKICAgICB3YXNtL1dhc21NZW1vcnlJ
bmZvcm1hdGlvbi5jcHAKICAgICB3YXNtL1dhc21Nb2R1bGUuY3BwCiAgICAgd2FzbS9XYXNtTW9k
dWxlSW5mb3JtYXRpb24uY3BwCiAgICAgd2FzbS9XYXNtTW9kdWxlUGFyc2VyLmNwcAorICAgIHdh
c20vV2FzbU5hbWVTZWN0aW9uUGFyc2VyLmNwcAogICAgIHdhc20vV2FzbU9NR1BsYW4uY3BwCiAg
ICAgd2FzbS9XYXNtT3Bjb2RlT3JpZ2luLmNwcAogICAgIHdhc20vV2FzbVBhZ2VDb3VudC5jcHAK
QEAgLTk2NSw3ICs5NjgsNiBAQCBzZXQoSmF2YVNjcmlwdENvcmVfU09VUkNFUwogICAgIHdhc20v
V2FzbVRodW5rcy5jcHAKICAgICB3YXNtL1dhc21WYWxpZGF0ZS5jcHAKICAgICB3YXNtL1dhc21X
b3JrbGlzdC5jcHAKLQogICAgIHdhc20vanMvSlNXZWJBc3NlbWJseUNvZGVCbG9jay5jcHAKICAg
ICB3YXNtL2pzL0pTV2ViQXNzZW1ibHlDb21waWxlRXJyb3IuY3BwCiAgICAgd2FzbS9qcy9KU1dl
YkFzc2VtYmx5SW5zdGFuY2UuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Q2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA1NDc4NzFh
Li42MjQxMGIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2NyBAQAorMjAx
Ny0wNS0wOCAgSkYgQmFzdGllbiAgPGpmYmFzdGllbkBhcHBsZS5jb20+CisKKyAgICAgICAgV2Vi
QXNzZW1ibHk6IHN1cHBvcnQgbmFtZSBzZWN0aW9uCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MTI2MworCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBuYW1lIHNlY3Rpb24gaXMgYW4gb3B0aW9uYWwg
Y3VzdG9tIHNlY3Rpb24gaW4gdGhlIFdlYkFzc2VtYmx5CisgICAgICAgIHNwZWMuIEF0IGxlYXN0
IHdoZW4gZGVidWdnaW5nLCBkZXZlbG9wZXJzIGV4cGVjdCB0byBiZSBhYmxlIHRvIHVzZQorICAg
ICAgICB0aGlzIHNlY3Rpb24gdG8gb2J0YWluIGludGVsbGlnaWJsZSBzdGFjayB0cmFjZXMsIG90
aGVyd2lzZSB3ZQorICAgICAgICBqdXN0IG51bWJlciB0aGUgd2FzbSBmdW5jdGlvbnMgd2hpY2gg
aXMgc29tZXdoYXQgcGFpbmZ1bC4KKworICAgICAgICBUaGlzIHBhdGNoIHBhcnNlcyB0aGlzIHNl
Y3Rpb24sIGRyb3BwaW5nIGl0cyBjb250ZW50IGVhZ2VybHkgb24KKyAgICAgICAgZXJyb3IsIGFu
ZCBpZiB0aGVyZSBpcyBhIG5hbWUgc2VjdGlvbiB0aGVuIGJhY2t0cmFjZXMgdXNlIHRoZWlyCisg
ICAgICAgIHZhbHVlIGluc3RlYWQgb2YgbnVtYmVycy4gT3RoZXJ3aXNlIHdlIHN0aWNrIHRvIG51
bWJlcnMgYXMgYmVmb3JlLgorCisgICAgICAgIE5vdGUgdGhhdCB0aGUgZm9ybWF0IG9mIG5hbWUg
c2VjdGlvbnMgY2hhbmdlZCBpbiBtaWQtRmVicnVhcnk6CisgICAgICAgICAgaHR0cHM6Ly9naXRo
dWIuY29tL1dlYkFzc2VtYmx5L2Rlc2lnbi9wdWxsLzk4NAorICAgICAgICBBbmQgYmluYXJ5ZW4g
d2FzIG9ubHkgdXBkYXRlZCBpbiBlYXJseSBNYXJjaDoKKyAgICAgICAgICBodHRwczovL2dpdGh1
Yi5jb20vV2ViQXNzZW1ibHkvYmluYXJ5ZW4vcHVsbC85MzMKKworICAgICAgICAqIENNYWtlTGlz
dHMudHh0OgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2o6CisgICAgICAgICogaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwOgorICAgICAgICAoSlND
OjpHZXRTdGFja1RyYWNlRnVuY3Rvcjo6b3BlcmF0b3IoKSk6CisgICAgICAgICogaW50ZXJwcmV0
ZXIvU3RhY2tWaXNpdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6U3RhY2tWaXNpdG9yOjpyZWFkTm9u
SW5saW5lZEZyYW1lKToKKyAgICAgICAgKEpTQzo6U3RhY2tWaXNpdG9yOjpGcmFtZTo6ZnVuY3Rp
b25OYW1lKToKKyAgICAgICAgKiBpbnRlcnByZXRlci9TdGFja1Zpc2l0b3IuaDoKKyAgICAgICAg
KEpTQzo6U3RhY2tWaXNpdG9yOjpGcmFtZTo6d2FzbUZ1bmN0aW9uSW5kZXhPck5hbWUpOgorICAg
ICAgICAqIHJ1bnRpbWUvU3RhY2tGcmFtZS5jcHA6CisgICAgICAgIChKU0M6OlN0YWNrRnJhbWU6
OmZ1bmN0aW9uTmFtZSk6CisgICAgICAgICogcnVudGltZS9TdGFja0ZyYW1lLmg6CisgICAgICAg
IChKU0M6OlN0YWNrRnJhbWU6OlN0YWNrRnJhbWUpOgorICAgICAgICAoSlNDOjpTdGFja0ZyYW1l
Ojp3YXNtKToKKyAgICAgICAgKiB3YXNtL1dhc21CQlFQbGFuSW5saW5lcy5oOgorICAgICAgICAo
SlNDOjpXYXNtOjpCQlFQbGFuOjppbml0aWFsaXplQ2FsbGVlcyk6CisgICAgICAgICogd2FzbS9X
YXNtQ2FsbGVlLmNwcDoKKyAgICAgICAgKEpTQzo6V2FzbTo6Q2FsbGVlOjpDYWxsZWUpOgorICAg
ICAgICAqIHdhc20vV2FzbUNhbGxlZS5oOgorICAgICAgICAoSlNDOjpXYXNtOjpDYWxsZWU6OmNy
ZWF0ZSk6CisgICAgICAgIChKU0M6Oldhc206OkNhbGxlZTo6aW5kZXhPck5hbWUpOgorICAgICAg
ICAqIHdhc20vV2FzbUZvcm1hdC5jcHA6CisgICAgICAgIChKU0M6Oldhc206Om1ha2VTdHJpbmcp
OgorICAgICAgICAqIHdhc20vV2FzbUZvcm1hdC5oOgorICAgICAgICAoSlNDOjpXYXNtOjppc1Zh
bGlkRXh0ZXJuYWxLaW5kKToKKyAgICAgICAgKEpTQzo6V2FzbTo6aXNWYWxpZE5hbWVUeXBlKToK
KyAgICAgICAgKEpTQzo6V2FzbTo6TmFtZVNlY3Rpb246OmdldCk6CisgICAgICAgICogd2FzbS9X
YXNtSW5kZXhPck5hbWUuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9XYXNtQ2FsbGVlLmNwcC4KKyAgICAgICAgKEpTQzo6V2FzbTo6SW5kZXhPck5hbWU6OkluZGV4
T3JOYW1lKToKKyAgICAgICAgKEpTQzo6V2FzbTo6bWFrZVN0cmluZyk6CisgICAgICAgICogd2Fz
bS9XYXNtSW5kZXhPck5hbWUuaDogQ29waWVkIGZyb20gU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vV2FzbUZvcm1hdC5jcHAuCisgICAgICAgICogd2FzbS9XYXNtTW9kdWxlSW5mb3JtYXRpb24u
aDoKKyAgICAgICAgKiB3YXNtL1dhc21Nb2R1bGVQYXJzZXIuY3BwOgorICAgICAgICAqIHdhc20v
V2FzbU5hbWUuaDogQ29waWVkIGZyb20gU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUNh
bGxlZS5jcHAuCisgICAgICAgICogd2FzbS9XYXNtTmFtZVNlY3Rpb25QYXJzZXIuY3BwOiBBZGRl
ZC4KKyAgICAgICAgKiB3YXNtL1dhc21OYW1lU2VjdGlvblBhcnNlci5oOiBDb3BpZWQgZnJvbSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQ2FsbGVlLmNwcC4KKyAgICAgICAgKEpTQzo6
V2FzbTo6TmFtZVNlY3Rpb25QYXJzZXI6Ok5hbWVTZWN0aW9uUGFyc2VyKToKKyAgICAgICAgKiB3
YXNtL1dhc21PTUdQbGFuLmNwcDoKKyAgICAgICAgKEpTQzo6V2FzbTo6T01HUGxhbjo6d29yayk6
CisgICAgICAgICogd2FzbS9XYXNtUGFyc2VyLmg6CisgICAgICAgIChKU0M6Oldhc206OlBhcnNl
cjxTdWNjZXNzVHlwZT46OmNvbnN1bWVVVEY4U3RyaW5nKToKKwogMjAxNy0wNS0wNiAgQmlsbCBN
aW5nICA8bWJiaWxsQGdtYWlsLmNvbT4KIAogICAgICAgICBGaXggMzJiaXQgV2luZG93cyBidWls
ZCBieSBnaXZpbmcgY29ycmVjdCBwYXJhbWV0ZXJzIHRvIE1BU00KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKaW5kZXggNTIyMDE5NC4uNzllMGU0NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKQEAgLTIxNDIsMTMgKzIxNDIsMTggQEAKIAkJQUQ0OTM3RDQxREREMjdERTAwNzdDODA3
IC8qIFdlYkFzc2VtYmx5RnVuY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEFENDkzN0NBMURERDI3MzQwMDc3QzgwNyAvKiBXZWJBc3NlbWJseUZ1
bmN0aW9uLmggKi87IH07CiAJCUFENEIxREY5MURGMjQ0RTIwMDcxQUUzMiAvKiBXYXNtQmluZGlu
Zy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBRDRC
MURGNzFERjI0NEQ3MDA3MUFFMzIgLyogV2FzbUJpbmRpbmcuY3BwICovOyB9OwogCQlBRDRCMURG
QTFERjI0NEUyMDA3MUFFMzIgLyogV2FzbUJpbmRpbmcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFENEIxREY4MURGMjQ0RDcwMDcxQUUzMiAvKiBXYXNt
QmluZGluZy5oICovOyB9OworCQlBRDVCNDE2RjFFQkFGQjc3MDA4RUZBNDMgLyogV2FzbU5hbWUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFENUI0MTZF
MUVCQUZCNjUwMDhFRkE0MyAvKiBXYXNtTmFtZS5oICovOyB9OwogCQlBRDc0MzhDMDFFMDQ1N0E0
MDBGRDBDMkEgLyogV2FzbVNpZ25hdHVyZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQUQ3NDM4QkYxRTA0NTc5MjAwRkQwQzJBIC8qIFdhc21TaWduYXR1
cmUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlB
RDc0MzhDMTFFMDQ1N0FBMDBGRDBDMkEgLyogV2FzbVNpZ25hdHVyZS5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBRDc0MzhCRTFFMDQ1NzkyMDBGRDBD
MkEgLyogV2FzbVNpZ25hdHVyZS5jcHAgKi87IH07CiAJCUFEODZBOTNFMUFBNEQ4OEQwMDJGRTc3
RiAvKiBXZWFrR0NNYXBJbmxpbmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBBRDg2QTkzRDFBQTREODdDMDAyRkU3N0YgLyogV2Vha0dDTWFwSW5saW5l
cy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUFE
OEZGMzk3MUVCNUJEQTgwMDg3RkY4MiAvKiBXYXNtSW5kZXhPck5hbWUuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUQ4RkYzOTYxRUI1QkQ4NTAwODdG
RjgyIC8qIFdhc21JbmRleE9yTmFtZS5jcHAgKi87IH07CisJCUFEOEZGMzk4MUVCNUJEQjIwMDg3
RkY4MiAvKiBXYXNtSW5kZXhPck5hbWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEFEOEZGMzk1MUVCNUJEODUwMDg3RkY4MiAvKiBXYXNtSW5kZXhPck5h
bWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlB
RDlFODUyRjFFOEEwQzdDMDA4REUzOUUgLyogSlNXZWJBc3NlbWJseUNvZGVCbG9jay5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUQ5RTg1MkUxRThBMEM2
RTAwOERFMzlFIC8qIEpTV2ViQXNzZW1ibHlDb2RlQmxvY2suaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBREI2RjY3RDFFMTVENzYwMDA4MkYzODQg
LyogV2FzbVBhZ2VDb3VudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBREI2RjY3QzFFMTVENzUwMDA4MkYzODQgLyogV2FzbVBhZ2VDb3VudC5jcHAg
Ki87IH07CiAJCUFEQkM1NEQ0MURGOEVBMkIwMDVCRjczOCAvKiBXZWJBc3NlbWJseVRvSlNDYWxs
ZWUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQURC
QzU0RDIxREY4RUEwMDAwNUJGNzM4IC8qIFdlYkFzc2VtYmx5VG9KU0NhbGxlZS5jcHAgKi87IH07
CiAJCUFEQkM1NEQ1MURGOEVBMkIwMDVCRjczOCAvKiBXZWJBc3NlbWJseVRvSlNDYWxsZWUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFEQkM1NEQzMURG
OEVBMDAwMDVCRjczOCAvKiBXZWJBc3NlbWJseVRvSlNDYWxsZWUuaCAqLzsgfTsKKwkJQUREOEZB
NDUxRUIzMDc4RTAwREY1NDJGIC8qIFdhc21OYW1lU2VjdGlvblBhcnNlci5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBREQ4RkE0NDFFQjMwNzcxMDBE
RjU0MkYgLyogV2FzbU5hbWVTZWN0aW9uUGFyc2VyLmNwcCAqLzsgfTsKKwkJQUREOEZBNDYxRUIz
MDc5NzAwREY1NDJGIC8qIFdhc21OYW1lU2VjdGlvblBhcnNlci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUREOEZBNDMxRUIzMDc3MTAwREY1NDJGIC8q
IFdhc21OYW1lU2VjdGlvblBhcnNlci5oICovOyB9OwogCQlBRERCMUY2MzE4RDc3REJFMDA5QjU4
QTggLyogT3BhcXVlUm9vdFNldC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQUREQjFGNjIxOEQ3N0RCNzAwOUI1OEE4IC8qIE9wYXF1ZVJvb3RTZXQuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBREUzOUZG
RjE2REQxNDRCMDAwM0NENEEgLyogUHJvcGVydHlUYWJsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBRDFDRjA2ODE2RENBQjJEMDBCOTcxMjMgLyog
UHJvcGVydHlUYWJsZS5jcHAgKi87IH07CiAJCUFERTgwMjk4MUUwOEYxREUwMDU4REU3OCAvKiBK
U1dlYkFzc2VtYmx5TGlua0Vycm9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEFERTgwMjkzMUUwOEYxQzkwMDU4REU3OCAvKiBKU1dlYkFzc2VtYmx5
TGlua0Vycm9yLmNwcCAqLzsgfTsKQEAgLTQ3NjYsMTMgKzQ3NzEsMTggQEAKIAkJQUQ0OTM3Q0Ex
REREMjczNDAwNzdDODA3IC8qIFdlYkFzc2VtYmx5RnVuY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBuYW1lID0gV2ViQXNzZW1ibHlGdW5jdGlvbi5oOyBwYXRoID0ganMvV2ViQXNz
ZW1ibHlGdW5jdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBRDRCMURGNzFE
RjI0NEQ3MDA3MUFFMzIgLyogV2FzbUJpbmRpbmcuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gV2FzbUJpbmRpbmcuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlBRDRCMURGODFERjI0NEQ3MDA3MUFFMzIgLyogV2FzbUJpbmRpbmcuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2FzbUJpbmRpbmcuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJQUQ1QjQxNkUxRUJBRkI2NTAwOEVGQTQzIC8qIFdhc21OYW1lLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdhc21OYW1lLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUFENzQzOEJFMUUwNDU3OTIwMEZEMEMyQSAvKiBXYXNtU2lnbmF0dXJlLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdhc21TaWduYXR1cmUuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBRDc0MzhCRjFFMDQ1NzkyMDBGRDBDMkEg
LyogV2FzbVNpZ25hdHVyZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXYXNt
U2lnbmF0dXJlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUFEODZBOTNEMUFBNEQ4
N0MwMDJGRTc3RiAvKiBXZWFrR0NNYXBJbmxpbmVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFdlYWtHQ01hcElubGluZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJQUQ4RkYzOTUxRUI1QkQ4NTAwODdGRjgyIC8qIFdhc21JbmRleE9yTmFtZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXYXNtSW5kZXhPck5hbWUuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJQUQ4RkYzOTYxRUI1QkQ4NTAwODdGRjgyIC8qIFdhc21JbmRleE9y
TmFtZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXYXNtSW5kZXhP
ck5hbWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBRDlFODUyRTFFOEEwQzZF
MDA4REUzOUUgLyogSlNXZWJBc3NlbWJseUNvZGVCbG9jay5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IG5hbWUgPSBKU1dlYkFzc2VtYmx5Q29kZUJsb2NrLmg7IHBhdGggPSBqcy9KU1dlYkFz
c2VtYmx5Q29kZUJsb2NrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUFEQjZGNjdD
MUUxNUQ3NTAwMDgyRjM4NCAvKiBXYXNtUGFnZUNvdW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFdhc21QYWdlQ291bnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlBREJDNTREMjFERjhFQTAwMDA1QkY3MzggLyogV2ViQXNzZW1ibHlUb0pTQ2Fs
bGVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFdlYkFzc2VtYmx5
VG9KU0NhbGxlZS5jcHA7IHBhdGggPSBqcy9XZWJBc3NlbWJseVRvSlNDYWxsZWUuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBREJDNTREMzFERjhFQTAwMDA1QkY3MzggLyogV2Vi
QXNzZW1ibHlUb0pTQ2FsbGVlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdl
YkFzc2VtYmx5VG9KU0NhbGxlZS5oOyBwYXRoID0ganMvV2ViQXNzZW1ibHlUb0pTQ2FsbGVlLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUFERDhGQTQzMUVCMzA3NzEwMERGNTQyRiAv
KiBXYXNtTmFtZVNlY3Rpb25QYXJzZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gV2FzbU5hbWVTZWN0aW9uUGFyc2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUFERDhGQTQ0MUVCMzA3NzEwMERGNTQyRiAvKiBXYXNtTmFtZVNlY3Rpb25QYXJzZXIuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2FzbU5hbWVTZWN0aW9uUGFyc2Vy
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQUREQjFGNjIxOEQ3N0RCNzAwOUI1
OEE4IC8qIE9wYXF1ZVJvb3RTZXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
T3BhcXVlUm9vdFNldC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBREU4MDI5MzFF
MDhGMUM5MDA1OERFNzggLyogSlNXZWJBc3NlbWJseUxpbmtFcnJvci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBKU1dlYkFzc2VtYmx5TGlua0Vycm9yLmNwcDsgcGF0
aCA9IGpzL0pTV2ViQXNzZW1ibHlMaW5rRXJyb3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlBREU4MDI5NDFFMDhGMUM5MDA1OERFNzggLyogSlNXZWJBc3NlbWJseUxpbmtFcnJv
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBKU1dlYkFzc2VtYmx5TGlua0Vy
cm9yLmg7IHBhdGggPSBqcy9KU1dlYkFzc2VtYmx5TGlua0Vycm9yLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC02NDAwLDI4ICs2NDEwLDMzIEBACiAJCQkJQUQ0MTJCMzExRTdCMkU4
QTAwOEFGMTU3IC8qIFdhc21Db250ZXh0LmNwcCAqLywKIAkJCQlBRDQxMkIzMjFFN0IyRThBMDA4
QUYxNTcgLyogV2FzbUNvbnRleHQuaCAqLywKIAkJCQk3OURBRTI3OTFFMDNDODIyMDBCNTI2QUEg
LyogV2FzbUV4Y2VwdGlvblR5cGUuaCAqLywKKwkJCQk1MzgxQjkzNjFFNjBFOTY2MDA5MEY3OTQg
LyogV2FzbUZhdWx0U2lnbmFsSGFuZGxlci5jcHAgKi8sCisJCQkJNTM4MUI5MzgxRTYwRTk3RDAw
OTBGNzk0IC8qIFdhc21GYXVsdFNpZ25hbEhhbmRsZXIuaCAqLywKIAkJCQlBRDJGQ0MzMjFEQzQw
NDUzMDBCM0U3MzYgLyogV2FzbUZvcm1hdC5jcHAgKi8sCiAJCQkJN0JDNTQ3RDIxQjY5NTk5QjAw
OTU5QjU4IC8qIFdhc21Gb3JtYXQuaCAqLywKIAkJCQk1M0Y0MEU4QTFENTkwMUJCMDA5OUExQjYg
LyogV2FzbUZ1bmN0aW9uUGFyc2VyLmggKi8sCisJCQkJQUQ4RkYzOTYxRUI1QkQ4NTAwODdGRjgy
IC8qIFdhc21JbmRleE9yTmFtZS5jcHAgKi8sCisJCQkJQUQ4RkYzOTUxRUI1QkQ4NTAwODdGRjgy
IC8qIFdhc21JbmRleE9yTmFtZS5oICovLAogCQkJCTUzRTlFMEE5MUVBRTgzREUwMEZFRTI1MSAv
KiBXYXNtTWFjaGluZVRocmVhZHMuY3BwICovLAogCQkJCTUzRTlFMEFBMUVBRTgzREUwMEZFRTI1
MSAvKiBXYXNtTWFjaGluZVRocmVhZHMuaCAqLywKLQkJCQk3OTAwODEzNjFFOTVBOEVDMDA1MkQ3
Q0QgLyogV2FzbU1vZHVsZS5jcHAgKi8sCi0JCQkJNzkwMDgxMzcxRTk1QThFQzAwNTJEN0NEIC8q
IFdhc21Nb2R1bGUuaCAqLywKIAkJCQk1MzU1NTcxNTFEOURGQTMyMDA2RDU4M0IgLyogV2FzbU1l
bW9yeS5jcHAgKi8sCiAJCQkJNTM1NTU3MTMxRDlEOUVBNTAwNkQ1ODNCIC8qIFdhc21NZW1vcnku
aCAqLywKIAkJCQk3OUI3NTk3MTFERkE0QzYwMDA1MjE3NEMgLyogV2FzbU1lbW9yeUluZm9ybWF0
aW9uLmNwcCAqLywKIAkJCQk3OUI3NTk3MjFERkE0QzYwMDA1MjE3NEMgLyogV2FzbU1lbW9yeUlu
Zm9ybWF0aW9uLmggKi8sCisJCQkJNzkwMDgxMzYxRTk1QThFQzAwNTJEN0NEIC8qIFdhc21Nb2R1
bGUuY3BwICovLAorCQkJCTc5MDA4MTM3MUU5NUE4RUMwMDUyRDdDRCAvKiBXYXNtTW9kdWxlLmgg
Ki8sCiAJCQkJNTNFNzc3RTExRTkyRTI2NTAwN0NCRUM0IC8qIFdhc21Nb2R1bGVJbmZvcm1hdGlv
bi5jcHAgKi8sCiAJCQkJNTNFNzc3RTIxRTkyRTI2NTAwN0NCRUM0IC8qIFdhc21Nb2R1bGVJbmZv
cm1hdGlvbi5oICovLAogCQkJCTUzRjQwRTk2MUQ1QTdCRUMwMDk5QTFCNiAvKiBXYXNtTW9kdWxl
UGFyc2VyLmNwcCAqLywKIAkJCQk1M0Y0MEU5NDFENUE3QUVGMDA5OUExQjYgLyogV2FzbU1vZHVs
ZVBhcnNlci5oICovLAorCQkJCUFENUI0MTZFMUVCQUZCNjUwMDhFRkE0MyAvKiBXYXNtTmFtZS5o
ICovLAorCQkJCUFERDhGQTQ0MUVCMzA3NzEwMERGNTQyRiAvKiBXYXNtTmFtZVNlY3Rpb25QYXJz
ZXIuY3BwICovLAorCQkJCUFERDhGQTQzMUVCMzA3NzEwMERGNTQyRiAvKiBXYXNtTmFtZVNlY3Rp
b25QYXJzZXIuaCAqLywKIAkJCQk1MzExQkQ0ODFFQTU4MUU1MDA1MjUyODEgLyogV2FzbU9NR1Bs
YW4uY3BwICovLAogCQkJCTUzMTFCRDQ5MUVBNTgxRTUwMDUyNTI4MSAvKiBXYXNtT01HUGxhbi5o
ICovLAotCQkJCUFEQjZGNjdDMUUxNUQ3NTAwMDgyRjM4NCAvKiBXYXNtUGFnZUNvdW50LmNwcCAq
LywKLQkJCQk1MzgxQjkzNjFFNjBFOTY2MDA5MEY3OTQgLyogV2FzbUZhdWx0U2lnbmFsSGFuZGxl
ci5jcHAgKi8sCi0JCQkJNTM4MUI5MzgxRTYwRTk3RDAwOTBGNzk0IC8qIFdhc21GYXVsdFNpZ25h
bEhhbmRsZXIuaCAqLywKIAkJCQk1M0M2RkVGMDFFOEFGRTBDMDBCMTg0MjUgLyogV2FzbU9wY29k
ZU9yaWdpbi5jcHAgKi8sCiAJCQkJNTNDNkZFRUUxRThBREZBOTAwQjE4NDI1IC8qIFdhc21PcGNv
ZGVPcmlnaW4uaCAqLywKKwkJCQlBREI2RjY3QzFFMTVENzUwMDA4MkYzODQgLyogV2FzbVBhZ2VD
b3VudC5jcHAgKi8sCiAJCQkJNzlCNzU5NzMxREZBNEM2MDAwNTIxNzRDIC8qIFdhc21QYWdlQ291
bnQuaCAqLywKIAkJCQk1M0Y0MEU4QzFENTkwMUYyMDA5OUExQjYgLyogV2FzbVBhcnNlci5oICov
LAogCQkJCTUzMTM3NEJFMUQ1Q0U5NTAwMEFGN0EwQiAvKiBXYXNtUGxhbi5jcHAgKi8sCkBAIC04
MjA2LDYgKzgyMjEsNyBAQAogCQkJCTBGNjE4MzMxMUM0NUJGMDcwMDcyNDUwQiAvKiBBaXJMb3dl
ck1hY3Jvcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY0MEU0QTcxQzQ5N0Y3NDAwQTU3N0ZBIC8q
IEFpck9wY29kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY0MEU0QTgxQzQ5N0Y3NDAwQTU3N0ZB
IC8qIEFpck9wY29kZUdlbmVyYXRlZC5oIGluIEhlYWRlcnMgKi8sCisJCQkJQUQ4RkYzOTgxRUI1
QkRCMjAwODdGRjgyIC8qIFdhc21JbmRleE9yTmFtZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY0
MEU0QTkxQzQ5N0Y3NDAwQTU3N0ZBIC8qIEFpck9wY29kZVV0aWxzLmggaW4gSGVhZGVycyAqLywK
IAkJCQkwRkIzODc5MDFCRkJDNDREMDBFM0FCMUUgLyogQWlyT3B0aW1pemVCbG9ja09yZGVyLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkwRjlDQUJDOTFEQjU0QTdBMDAwOEU4M0IgLyogQWlyUGFkSW50
ZXJmZXJlbmNlLmggaW4gSGVhZGVycyAqLywKQEAgLTgzMjQsNiArODM0MCw3IEBACiAJCQkJMEZF
Qzg1MjQxQkRBQ0RBQzAwODBGRjc0IC8qIEIzT3JpZ2luLmggaW4gSGVhZGVycyAqLywKIAkJCQkw
RjRDOTE2NjFDMjlGNEYyMDA0MzQxQTYgLyogQjNPcmlnaW5EdW1wLmggaW4gSGVhZGVycyAqLywK
IAkJCQkwRkVDODUyNjFCREFDREFDMDA4MEZGNzQgLyogQjNQYXRjaHBvaW50U3BlY2lhbC5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJQUREOEZBNDYxRUIzMDc5NzAwREY1NDJGIC8qIFdhc21OYW1lU2Vj
dGlvblBhcnNlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFQzg1MjgxQkRBQ0RBQzAwODBGRjc0
IC8qIEIzUGF0Y2hwb2ludFZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQk3OTlFRjdDNDFDNTZF
RDk2MDAyQjA1MzQgLyogQjNQQ1RvT3JpZ2luTWFwLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkVD
ODUyQTFCREFDREFDMDA4MEZGNzQgLyogQjNQaGFzZVNjb3BlLmggaW4gSGVhZGVycyAqLywKQEAg
LTg2NDMsNiArODY2MCw3IEBACiAJCQkJODZFQzlERDExMzI4REY4MjAwMkIyQUQ3IC8qIERGR1Jl
Z2lzdGVyQmFuay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzlGQzhBMDgxRTMyRTlGMDAwRDg4RjBF
IC8qIERGR1JlZ2lzdGVyZWRTdHJ1Y3R1cmUuaCBpbiBIZWFkZXJzICovLAogCQkJCTc5ODBDMTZE
MUUzQTk0MEUwMEI3MTYxNSAvKiBERkdSZWdpc3RlcmVkU3RydWN0dXJlU2V0LmggaW4gSGVhZGVy
cyAqLywKKwkJCQlBRDVCNDE2RjFFQkFGQjc3MDA4RUZBNDMgLyogV2FzbU5hbWUuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTBGMkZDQ0ZDMThBNjAwNzAwMDFBMjdGOCAvKiBERkdTYWZlcG9pbnQuaCBp
biBIZWFkZXJzICovLAogCQkJCUE3N0E0MjQzMTdBMEJCRkQwMEE4REI4MSAvKiBERkdTYWZlVG9F
eGVjdXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNzQxMDE3RjE3OURBRjgwMDAyRUI4QkEgLyog
REZHU2FuZVN0cmluZ0dldEJ5VmFsU2xvd1BhdGhHZW5lcmF0b3IuaCBpbiBIZWFkZXJzICovLApA
QCAtMTA5NjksNiArMTA5ODcsNyBAQAogCQkJCTBGNkM3MzUwMUFDOUY5OUYwMEJFMTY4MiAvKiBW
YXJpYWJsZVdyaXRlRmlyZURldGFpbC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkUwNTAyQzFB
QTkwOTU2MDBEMzNCMzMgLyogVmFyT2Zmc2V0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGMjBD
MjU5MUE4MDEzQUIwMERBMzIyOSAvKiBWaXJ0dWFsUmVnaXN0ZXIuY3BwIGluIFNvdXJjZXMgKi8s
CisJCQkJQUQ4RkYzOTcxRUI1QkRBODAwODdGRjgyIC8qIFdhc21JbmRleE9yTmFtZS5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkwRjk1MkFBMjFERjc4NjBEMDBFMDZGQkQgLyogVmlzaXRSYWNlS2V5
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUUxOEUzQTU5MERGOTI3OEMwMEQ5MEIzNCAvKiBWTS5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlGRTU5MzJBNzE4M0M1QTI2MDBBMUVDQ0MgLyogVk1FbnRy
eVNjb3BlLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMTEwMjUsNiArMTEwNDQsNyBAQAogCQkJCTg2
NzA0Qjg2MTJEQkEzMzcwMEE5RkU3QiAvKiBZYXJySklULmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTg2NzA0Qjg5MTJEQkEzMzcwMEE5RkU3QiAvKiBZYXJyUGF0dGVybi5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk4NjcwNEI0MjEyREI4QTgxMDBBOUZFN0IgLyogWWFyclN5bnRheENoZWNrZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJQUREOEZBNDUxRUIzMDc4RTAwREY1NDJGIC8qIFdhc21OYW1l
U2VjdGlvblBhcnNlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzMjFEOUU0Q0ZCNjc0MjNBOTdG
MTkxQTcgLyogTW9kdWxlTmFtZXNwYWNlQWNjZXNzQ2FzZS5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwCmluZGV4IDg4
ODE2NjcuLjdmOGY0NTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnBy
ZXRlci9JbnRlcnByZXRlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJl
dGVyL0ludGVycHJldGVyLmNwcApAQCAtNDgwLDggKzQ4MCw3IEBAIHB1YmxpYzoKIAogICAgICAg
ICBpZiAobV9yZW1haW5pbmdDYXBhY2l0eUZvckZyYW1lQ2FwdHVyZSkgewogICAgICAgICAgICAg
aWYgKHZpc2l0b3ItPmlzV2FzbUZyYW1lKCkpIHsKLSAgICAgICAgICAgICAgICBzdGQ6Om9wdGlv
bmFsPHVuc2lnbmVkPiB3YXNtRnVuY3Rpb25JbmRleCA9IHZpc2l0b3ItPndhc21GdW5jdGlvbklu
ZGV4KCk7Ci0gICAgICAgICAgICAgICAgbV9yZXN1bHRzLmFwcGVuZChTdGFja0ZyYW1lOjp3YXNt
KHdhc21GdW5jdGlvbkluZGV4ID8gKndhc21GdW5jdGlvbkluZGV4IDogU3RhY2tGcmFtZTo6aW52
YWxpZFdhc21JbmRleCkpOworICAgICAgICAgICAgICAgIG1fcmVzdWx0cy5hcHBlbmQoU3RhY2tG
cmFtZTo6d2FzbSh2aXNpdG9yLT53YXNtRnVuY3Rpb25JbmRleE9yTmFtZSgpKSk7CiAgICAgICAg
ICAgICB9IGVsc2UgaWYgKCEhdmlzaXRvci0+Y29kZUJsb2NrKCkgJiYgIXZpc2l0b3ItPmNvZGVC
bG9jaygpLT51bmxpbmtlZENvZGVCbG9jaygpLT5pc0J1aWx0aW5GdW5jdGlvbigpKSB7CiAgICAg
ICAgICAgICAgICAgbV9yZXN1bHRzLmFwcGVuZCgKICAgICAgICAgICAgICAgICAgICAgU3RhY2tG
cmFtZShtX3ZtLCB2aXNpdG9yLT5jYWxsZWUoKS5hc0NlbGwoKSwgdmlzaXRvci0+Y29kZUJsb2Nr
KCksIHZpc2l0b3ItPmJ5dGVjb2RlT2Zmc2V0KCkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnRlcnByZXRlci9TdGFja1Zpc2l0b3IuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ludGVycHJldGVyL1N0YWNrVmlzaXRvci5jcHAKaW5kZXggNTJlYWZjOS4uMWQ2NGQ2
ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL1N0YWNrVmlz
aXRvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL1N0YWNrVmlz
aXRvci5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJJbnRlcnByZXRlci5oIgogI2lu
Y2x1ZGUgIkpTQ0lubGluZXMuaCIKICNpbmNsdWRlICJXYXNtQ2FsbGVlLmgiCisjaW5jbHVkZSAi
V2FzbUluZGV4T3JOYW1lLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgog
CiBuYW1lc3BhY2UgSlNDIHsKQEAgLTE2Niw3ICsxNjcsNyBAQCB2b2lkIFN0YWNrVmlzaXRvcjo6
cmVhZE5vbklubGluZWRGcmFtZShDYWxsRnJhbWUqIGNhbGxGcmFtZSwgQ29kZU9yaWdpbiogY29k
ZU9yaQogI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKICAgICAgICAgQ2FsbGVlQml0cyBiaXRzID0g
Y2FsbEZyYW1lLT5jYWxsZWUoKTsKICAgICAgICAgaWYgKGJpdHMuaXNXYXNtKCkpCi0gICAgICAg
ICAgICBtX2ZyYW1lLm1fd2FzbUZ1bmN0aW9uSW5kZXggPSBiaXRzLmFzV2FzbUNhbGxlZSgpLT5p
bmRleCgpOworICAgICAgICAgICAgbV9mcmFtZS5tX3dhc21GdW5jdGlvbkluZGV4T3JOYW1lID0g
Yml0cy5hc1dhc21DYWxsZWUoKS0+aW5kZXhPck5hbWUoKTsKICNlbmRpZgogICAgIH0gZWxzZSB7
CiAgICAgICAgIG1fZnJhbWUubV9jb2RlQmxvY2sgPSBjYWxsRnJhbWUtPmNvZGVCbG9jaygpOwpA
QCAtMjgzLDEwICsyODQsMTAgQEAgU3RyaW5nIFN0YWNrVmlzaXRvcjo6RnJhbWU6OmZ1bmN0aW9u
TmFtZSgpIGNvbnN0CiAKICAgICBzd2l0Y2ggKGNvZGVUeXBlKCkpIHsKICAgICBjYXNlIENvZGVU
eXBlOjpXYXNtOgotICAgICAgICBpZiAobV93YXNtRnVuY3Rpb25JbmRleCkKLSAgICAgICAgICAg
IHRyYWNlTGluZSA9IG1ha2VTdHJpbmcoIndhc20gZnVuY3Rpb24gaW5kZXg6ICIsIFN0cmluZzo6
bnVtYmVyKCptX3dhc21GdW5jdGlvbkluZGV4KSk7CisgICAgICAgIGlmIChtX3dhc21GdW5jdGlv
bkluZGV4T3JOYW1lLmlzRW1wdHkoKSkKKyAgICAgICAgICAgIHRyYWNlTGluZSA9IG1ha2VTdHJp
bmcoIndhc20gZnVuY3Rpb24iKTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgdHJhY2VMaW5l
ID0gQVNDSUlMaXRlcmFsKCJ3YXNtIGZ1bmN0aW9uIik7CisgICAgICAgICAgICB0cmFjZUxpbmUg
PSBtYWtlU3RyaW5nKCJ3YXNtIGZ1bmN0aW9uOiAiLCBtYWtlU3RyaW5nKG1fd2FzbUZ1bmN0aW9u
SW5kZXhPck5hbWUpKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDb2RlVHlwZTo6RXZhbDoK
ICAgICAgICAgdHJhY2VMaW5lID0gQVNDSUlMaXRlcmFsKCJldmFsIGNvZGUiKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9TdGFja1Zpc2l0b3IuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9TdGFja1Zpc2l0b3IuaAppbmRleCA0NTEw
MzcwLi5hYTBiMzMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0
ZXIvU3RhY2tWaXNpdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVy
L1N0YWNrVmlzaXRvci5oCkBAIC0yNyw2ICsyNyw3IEBACiAKICNpbmNsdWRlICJDYWxsZWVCaXRz
LmgiCiAjaW5jbHVkZSAiVk1FbnRyeVJlY29yZC5oIgorI2luY2x1ZGUgIldhc21JbmRleE9yTmFt
ZS5oIgogI2luY2x1ZGUgPGZ1bmN0aW9uYWw+CiAjaW5jbHVkZSA8d3RmL0luZGVudGVyLmg+CiAj
aW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CkBAIC03NywxMCArNzgsMTAgQEAgcHVibGlj
OgogICAgICAgICBib29sIGlzTmF0aXZlRnJhbWUoKSBjb25zdCB7IHJldHVybiAhY29kZUJsb2Nr
KCkgJiYgIWlzV2FzbUZyYW1lKCk7IH0KICAgICAgICAgYm9vbCBpc0lubGluZWRGcmFtZSgpIGNv
bnN0IHsgcmV0dXJuICEhaW5saW5lQ2FsbEZyYW1lKCk7IH0KICAgICAgICAgYm9vbCBpc1dhc21G
cmFtZSgpIGNvbnN0OwotICAgICAgICBzdGQ6Om9wdGlvbmFsPHVuc2lnbmVkPiBjb25zdCB3YXNt
RnVuY3Rpb25JbmRleCgpCisgICAgICAgIFdhc206OkluZGV4T3JOYW1lIGNvbnN0IHdhc21GdW5j
dGlvbkluZGV4T3JOYW1lKCkKICAgICAgICAgewogICAgICAgICAgICAgQVNTRVJUKGlzV2FzbUZy
YW1lKCkpOwotICAgICAgICAgICAgcmV0dXJuIG1fd2FzbUZ1bmN0aW9uSW5kZXg7CisgICAgICAg
ICAgICByZXR1cm4gbV93YXNtRnVuY3Rpb25JbmRleE9yTmFtZTsKICAgICAgICAgfQogCiAgICAg
ICAgIEpTX0VYUE9SVF9QUklWQVRFIFN0cmluZyBmdW5jdGlvbk5hbWUoKSBjb25zdDsKQEAgLTEy
MSw3ICsxMjIsNyBAQCBwdWJsaWM6CiAgICAgICAgIHNpemVfdCBtX2luZGV4OwogICAgICAgICBz
aXplX3QgbV9hcmd1bWVudENvdW50SW5jbHVkaW5nVGhpczsKICAgICAgICAgdW5zaWduZWQgbV9i
eXRlY29kZU9mZnNldDsKLSAgICAgICAgc3RkOjpvcHRpb25hbDx1bnNpZ25lZD4gbV93YXNtRnVu
Y3Rpb25JbmRleDsKKyAgICAgICAgV2FzbTo6SW5kZXhPck5hbWUgbV93YXNtRnVuY3Rpb25JbmRl
eE9yTmFtZTsKICAgICAgICAgYm9vbCBtX2NhbGxlcklzVk1FbnRyeUZyYW1lIDogMTsKICAgICAg
ICAgYm9vbCBtX2lzV2FzbUZyYW1lIDogMTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvU3RhY2tGcmFtZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9TdGFja0ZyYW1lLmNwcAppbmRleCBjNmQyM2Q5Li44MzZlYTBjIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdGFja0ZyYW1lLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9TdGFja0ZyYW1lLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDE2LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC01OCw5ICs1OCw5IEBAIFN0cmlu
ZyBTdGFja0ZyYW1lOjpzb3VyY2VVUkwoKSBjb25zdAogU3RyaW5nIFN0YWNrRnJhbWU6OmZ1bmN0
aW9uTmFtZShWTSYgdm0pIGNvbnN0CiB7CiAgICAgaWYgKG1faXNXYXNtRnJhbWUpIHsKLSAgICAg
ICAgaWYgKG1fd2FzbUZ1bmN0aW9uSW5kZXggPT0gaW52YWxpZFdhc21JbmRleCkKKyAgICAgICAg
aWYgKG1fd2FzbUZ1bmN0aW9uSW5kZXhPck5hbWUuaXNFbXB0eSgpKQogICAgICAgICAgICAgcmV0
dXJuIEFTQ0lJTGl0ZXJhbCgid2FzbSBmdW5jdGlvbiIpOwotICAgICAgICByZXR1cm4gbWFrZVN0
cmluZygid2FzbSBmdW5jdGlvbiBpbmRleDogIiwgU3RyaW5nOjpudW1iZXIobV93YXNtRnVuY3Rp
b25JbmRleCkpOworICAgICAgICByZXR1cm4gbWFrZVN0cmluZygid2FzbSBmdW5jdGlvbjogIiwg
bWFrZVN0cmluZyhtX3dhc21GdW5jdGlvbkluZGV4T3JOYW1lKSk7CiAgICAgfQogCiAgICAgaWYg
KG1fY29kZUJsb2NrKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9TdGFja0ZyYW1lLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdGFja0ZyYW1l
LmgKaW5kZXggZjgzMTg0ZC4uNDg5MDg3OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvU3RhY2tGcmFtZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1N0YWNrRnJhbWUuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE2
LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAog
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCkBAIC0yNiw2ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUg
IlN0cm9uZy5oIgorI2luY2x1ZGUgIldhc21JbmRleE9yTmFtZS5oIgogI2luY2x1ZGUgPGxpbWl0
cy5oPgogCiBuYW1lc3BhY2UgSlNDIHsKQEAgLTM1LDcgKzM2LDkgQEAgY2xhc3MgSlNPYmplY3Q7
CiAKIGNsYXNzIFN0YWNrRnJhbWUgewogcHVibGljOgotICAgIFN0YWNrRnJhbWUoKSA9IGRlZmF1
bHQ7CisgICAgU3RhY2tGcmFtZSgpCisgICAgICAgIDogbV9ieXRlY29kZU9mZnNldChVSU5UX01B
WCkKKyAgICB7IH0KIAogICAgIFN0YWNrRnJhbWUoVk0mIHZtLCBKU0NlbGwqIGNhbGxlZSkKICAg
ICAgICAgOiBtX2NhbGxlZSh2bSwgY2FsbGVlKQpAQCAtNDgsMTIgKzUxLDExIEBAIHB1YmxpYzoK
ICAgICAgICAgLCBtX2J5dGVjb2RlT2Zmc2V0KGJ5dGVjb2RlT2Zmc2V0KQogICAgIHsgfQogCi0g
ICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBpbnZhbGlkV2FzbUluZGV4ID0gVUlOVF9NQVg7
Ci0gICAgc3RhdGljIFN0YWNrRnJhbWUgd2FzbSh1bnNpZ25lZCBpbmRleCkKKyAgICBzdGF0aWMg
U3RhY2tGcmFtZSB3YXNtKFdhc206OkluZGV4T3JOYW1lIGluZGV4T3JOYW1lKQogICAgIHsKICAg
ICAgICAgU3RhY2tGcmFtZSByZXN1bHQ7CiAgICAgICAgIHJlc3VsdC5tX2lzV2FzbUZyYW1lID0g
dHJ1ZTsKLSAgICAgICAgcmVzdWx0Lm1fd2FzbUZ1bmN0aW9uSW5kZXggPSBpbmRleDsKKyAgICAg
ICAgcmVzdWx0Lm1fd2FzbUZ1bmN0aW9uSW5kZXhPck5hbWUgPSBpbmRleE9yTmFtZTsKICAgICAg
ICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CiAKQEAgLTc4LDcgKzgwLDcgQEAgcHJpdmF0ZToKICAg
ICBTdHJvbmc8Q29kZUJsb2NrPiBtX2NvZGVCbG9jayB7IH07CiAgICAgdW5pb24gewogICAgICAg
ICB1bnNpZ25lZCBtX2J5dGVjb2RlT2Zmc2V0OwotICAgICAgICB1bnNpZ25lZCBtX3dhc21GdW5j
dGlvbkluZGV4OworICAgICAgICBXYXNtOjpJbmRleE9yTmFtZSBtX3dhc21GdW5jdGlvbkluZGV4
T3JOYW1lOwogICAgIH07CiAgICAgYm9vbCBtX2lzV2FzbUZyYW1lIHsgZmFsc2UgfTsKIH07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQkJRUGxhbklubGluZXMu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21CQlFQbGFuSW5saW5lcy5oCmluZGV4
IGY1YTY1MjMuLmFmMTgxNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L1dhc21CQlFQbGFuSW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dh
c21CQlFQbGFuSW5saW5lcy5oCkBAIC00Myw3ICs0Myw4IEBAIHZvaWQgQkJRUGxhbjo6aW5pdGlh
bGl6ZUNhbGxlZXMoY29uc3QgRnVuY3RvciYgY2FsbGJhY2spCiAgICAgICAgIFJlZjxXYXNtOjpD
YWxsZWU+IGpzRW50cnlwb2ludENhbGxlZSA9IFdhc206OkNhbGxlZTo6Y3JlYXRlKFdURk1vdmUo
ZnVuY3Rpb24tPmpzVG9XYXNtRW50cnlwb2ludCkpOwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6
cmVwYXRjaFBvaW50ZXIoZnVuY3Rpb24tPmpzVG9XYXNtQ2FsbGVlTW92ZUxvY2F0aW9uLCBDYWxs
ZWVCaXRzOjpib3hXYXNtKGpzRW50cnlwb2ludENhbGxlZS5wdHIoKSkpOwogCi0gICAgICAgIFJl
ZjxXYXNtOjpDYWxsZWU+IHdhc21FbnRyeXBvaW50Q2FsbGVlID0gV2FzbTo6Q2FsbGVlOjpjcmVh
dGUoV1RGTW92ZShmdW5jdGlvbi0+d2FzbUVudHJ5cG9pbnQpLCBpbnRlcm5hbEZ1bmN0aW9uSW5k
ZXggKyBtX21vZHVsZUluZm9ybWF0aW9uLT5pbXBvcnRGdW5jdGlvbkNvdW50KCkpOworICAgICAg
ICBzaXplX3QgZnVuY3Rpb25JbmRleFNwYWNlID0gaW50ZXJuYWxGdW5jdGlvbkluZGV4ICsgbV9t
b2R1bGVJbmZvcm1hdGlvbi0+aW1wb3J0RnVuY3Rpb25Db3VudCgpOworICAgICAgICBSZWY8V2Fz
bTo6Q2FsbGVlPiB3YXNtRW50cnlwb2ludENhbGxlZSA9IFdhc206OkNhbGxlZTo6Y3JlYXRlKFdU
Rk1vdmUoZnVuY3Rpb24tPndhc21FbnRyeXBvaW50KSwgZnVuY3Rpb25JbmRleFNwYWNlLCBtX21v
ZHVsZUluZm9ybWF0aW9uLT5uYW1lU2VjdGlvbi5nZXQoZnVuY3Rpb25JbmRleFNwYWNlKSk7CiAg
ICAgICAgIE1hY3JvQXNzZW1ibGVyOjpyZXBhdGNoUG9pbnRlcihmdW5jdGlvbi0+d2FzbUNhbGxl
ZU1vdmVMb2NhdGlvbiwgQ2FsbGVlQml0czo6Ym94V2FzbSh3YXNtRW50cnlwb2ludENhbGxlZS5w
dHIoKSkpOwogCiAgICAgICAgIGNhbGxiYWNrKGludGVybmFsRnVuY3Rpb25JbmRleCwgV1RGTW92
ZShqc0VudHJ5cG9pbnRDYWxsZWUpLCBXVEZNb3ZlKHdhc21FbnRyeXBvaW50Q2FsbGVlKSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQ2FsbGVlLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21DYWxsZWUuY3BwCmluZGV4IDZlYzNlZDEuLjll
ODNlZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21DYWxsZWUu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21DYWxsZWUuY3BwCkBAIC0z
Miw5ICszMiwxNSBAQAogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIFdhc20gewogCi1DYWxs
ZWU6OkNhbGxlZShFbnRyeXBvaW50JiYgZW50cnlwb2ludCwgdW5zaWduZWQgaW5kZXgpCitDYWxs
ZWU6OkNhbGxlZShFbnRyeXBvaW50JiYgZW50cnlwb2ludCkKICAgICA6IG1fZW50cnlwb2ludChX
VEZNb3ZlKGVudHJ5cG9pbnQpKQotICAgICwgbV9pbmRleChpbmRleCkKK3sKKyAgICByZWdpc3Rl
ckNvZGUobV9lbnRyeXBvaW50LmNvbXBpbGF0aW9uLT5jb2RlUmVmKCkuZXhlY3V0YWJsZU1lbW9y
eSgpLT5zdGFydCgpLCBtX2VudHJ5cG9pbnQuY29tcGlsYXRpb24tPmNvZGVSZWYoKS5leGVjdXRh
YmxlTWVtb3J5KCktPmVuZCgpKTsKK30KKworQ2FsbGVlOjpDYWxsZWUoRW50cnlwb2ludCYmIGVu
dHJ5cG9pbnQsIHNpemVfdCBpbmRleCwgY29uc3QgTmFtZSogbmFtZSkKKyAgICA6IG1fZW50cnlw
b2ludChXVEZNb3ZlKGVudHJ5cG9pbnQpKQorICAgICwgbV9pbmRleE9yTmFtZShpbmRleCwgbmFt
ZSkKIHsKICAgICByZWdpc3RlckNvZGUobV9lbnRyeXBvaW50LmNvbXBpbGF0aW9uLT5jb2RlUmVm
KCkuZXhlY3V0YWJsZU1lbW9yeSgpLT5zdGFydCgpLCBtX2VudHJ5cG9pbnQuY29tcGlsYXRpb24t
PmNvZGVSZWYoKS5leGVjdXRhYmxlTWVtb3J5KCktPmVuZCgpKTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21DYWxsZWUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL1dhc21DYWxsZWUuaAppbmRleCA5ZGIxMGMzLi4yM2MxYWU1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQ2FsbGVlLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vV2FzbUNhbGxlZS5oCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVk
ZSAiQjNDb21waWxhdGlvbi5oIgogI2luY2x1ZGUgIlJlZ2lzdGVyQXRPZmZzZXRMaXN0LmgiCiAj
aW5jbHVkZSAiV2FzbUZvcm1hdC5oIgorI2luY2x1ZGUgIldhc21JbmRleE9yTmFtZS5oIgogI2lu
Y2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5oPgogCiBuYW1lc3BhY2UgSlNDIHsgbmFt
ZXNwYWNlIFdhc20gewpAQCAtMzcsMzEgKzM4LDI5IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3Bh
Y2UgV2FzbSB7CiBjbGFzcyBDYWxsZWUgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8Q2Fs
bGVlPiB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CisgICAgc3RhdGlj
IFJlZjxDYWxsZWU+IGNyZWF0ZShXYXNtOjpFbnRyeXBvaW50JiYgZW50cnlwb2ludCkKKyAgICB7
CisgICAgICAgIENhbGxlZSogY2FsbGVlID0gbmV3IENhbGxlZShXVEZNb3ZlKGVudHJ5cG9pbnQp
KTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpjYWxsZWUpOworICAgIH0KIAotICAgIC8vIFdl
IHVzZSB0aGlzIHdoZW4gd2UncmUgdGhlIEpTIGVudHJ5cG9pbnQsIHdlIGRvbid0IGFzY3JpYmUg
YW4gaW5kZXggdG8gdGhvc2UuCi0gICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBpbnZhbGlk
Q2FsbGVlSW5kZXggPSBVSU5UX01BWDsKLQotICAgIHN0YXRpYyBSZWY8Q2FsbGVlPiBjcmVhdGUo
V2FzbTo6RW50cnlwb2ludCYmIGVudHJ5cG9pbnQsIHVuc2lnbmVkIGluZGV4ID0gaW52YWxpZENh
bGxlZUluZGV4KQorICAgIHN0YXRpYyBSZWY8Q2FsbGVlPiBjcmVhdGUoV2FzbTo6RW50cnlwb2lu
dCYmIGVudHJ5cG9pbnQsIHNpemVfdCBpbmRleCwgY29uc3QgTmFtZSogbmFtZSkKICAgICB7Ci0g
ICAgICAgIENhbGxlZSogY2FsbGVlID0gbmV3IENhbGxlZShXVEZNb3ZlKGVudHJ5cG9pbnQpLCBp
bmRleCk7CisgICAgICAgIENhbGxlZSogY2FsbGVlID0gbmV3IENhbGxlZShXVEZNb3ZlKGVudHJ5
cG9pbnQpLCBpbmRleCwgbmFtZSk7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqY2FsbGVlKTsK
ICAgICB9CiAKICAgICB2b2lkKiBlbnRyeXBvaW50KCkgY29uc3QgeyByZXR1cm4gbV9lbnRyeXBv
aW50LmNvbXBpbGF0aW9uLT5jb2RlKCkuZXhlY3V0YWJsZUFkZHJlc3MoKTsgfQogCiAgICAgUmVn
aXN0ZXJBdE9mZnNldExpc3QqIGNhbGxlZVNhdmVSZWdpc3RlcnMoKSB7IHJldHVybiAmbV9lbnRy
eXBvaW50LmNhbGxlZVNhdmVSZWdpc3RlcnM7IH0KLSAgICBzdGQ6Om9wdGlvbmFsPHVuc2lnbmVk
PiBpbmRleCgpIGNvbnN0Ci0gICAgewotICAgICAgICBpZiAobV9pbmRleCA9PSBpbnZhbGlkQ2Fs
bGVlSW5kZXgpCi0gICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotICAgICAgICByZXR1
cm4gbV9pbmRleDsKLSAgICB9CisgICAgSW5kZXhPck5hbWUgaW5kZXhPck5hbWUoKSBjb25zdCB7
IHJldHVybiBtX2luZGV4T3JOYW1lOyB9CiAKIHByaXZhdGU6Ci0gICAgSlNfRVhQT1JUX1BSSVZB
VEUgQ2FsbGVlKFdhc206OkVudHJ5cG9pbnQmJiwgdW5zaWduZWQgaW5kZXgpOworICAgIEpTX0VY
UE9SVF9QUklWQVRFIENhbGxlZShXYXNtOjpFbnRyeXBvaW50JiYpOworICAgIEpTX0VYUE9SVF9Q
UklWQVRFIENhbGxlZShXYXNtOjpFbnRyeXBvaW50JiYsIHNpemVfdCwgY29uc3QgTmFtZSopOwog
CiAgICAgV2FzbTo6RW50cnlwb2ludCBtX2VudHJ5cG9pbnQ7Ci0gICAgdW5zaWduZWQgbV9pbmRl
eDsKKyAgICBJbmRleE9yTmFtZSBtX2luZGV4T3JOYW1lOwogfTsKIAogfSB9IC8vIG5hbWVzcGFj
ZSBKU0M6Oldhc20KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21G
b3JtYXQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUZvcm1hdC5jcHAKaW5k
ZXggZTI2MDYwMS4uZTA2ZTc3NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vV2FzbUZvcm1hdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUZv
cm1hdC5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNi0yMDE3IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwpAQCAtNTUsNyArNTUsNyBAQCBTZWdtZW50OjpQdHIgU2VnbWVudDo6YWRvcHRQdHIoU2Vn
bWVudCogc2VnbWVudCkKICAgICByZXR1cm4gUHRyKHNlZ21lbnQsICZTZWdtZW50OjpkZXN0cm95
KTsKIH0KIAotU3RyaW5nIG1ha2VTdHJpbmcoY29uc3QgVmVjdG9yPExDaGFyPiYgY2hhcmFjdGVy
cykKK1N0cmluZyBtYWtlU3RyaW5nKGNvbnN0IE5hbWUmIGNoYXJhY3RlcnMpCiB7CiAgICAgU3Ry
aW5nIHJlc3VsdCA9IFN0cmluZzo6ZnJvbVVURjgoY2hhcmFjdGVycyk7CiAgICAgQVNTRVJUKHJl
c3VsdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtRm9ybWF0
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtRm9ybWF0LmgKaW5kZXggZDllYjdi
OC4uMjhhZWVmZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUZv
cm1hdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21Gb3JtYXQuaApAQCAt
MzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIk1hY3JvQXNzZW1ibGVyQ29kZVJlZi5oIgogI2luY2x1
ZGUgIlJlZ2lzdGVyQXRPZmZzZXRMaXN0LmgiCiAjaW5jbHVkZSAiV2FzbU1lbW9yeUluZm9ybWF0
aW9uLmgiCisjaW5jbHVkZSAiV2FzbU5hbWUuaCIKICNpbmNsdWRlICJXYXNtT3BzLmgiCiAjaW5j
bHVkZSAiV2FzbVBhZ2VDb3VudC5oIgogI2luY2x1ZGUgIldhc21TaWduYXR1cmUuaCIKQEAgLTgy
LDkgKzgzLDggQEAgc3RhdGljIGJvb2wgaXNWYWxpZEV4dGVybmFsS2luZChJbnQgdmFsKQogICAg
IGNhc2Ugc3RhdGljX2Nhc3Q8SW50PihFeHRlcm5hbEtpbmQ6Ok1lbW9yeSk6CiAgICAgY2FzZSBz
dGF0aWNfY2FzdDxJbnQ+KEV4dGVybmFsS2luZDo6R2xvYmFsKToKICAgICAgICAgcmV0dXJuIHRy
dWU7Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KKyAgICByZXR1
cm4gZmFsc2U7CiB9CiAKIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8aW50PihFeHRlcm5hbEtp
bmQ6OkZ1bmN0aW9uKSA9PSAwLCAiV2FzbSBuZWVkcyBGdW5jdGlvbiB0byBoYXZlIHRoZSB2YWx1
ZSAwIik7CkBAIC0xMDUsMTkgKzEwNSwxOSBAQCBpbmxpbmUgY29uc3QgY2hhciogbWFrZVN0cmlu
ZyhFeHRlcm5hbEtpbmQga2luZCkKIH0KIAogc3RydWN0IEltcG9ydCB7Ci0gICAgY29uc3QgVmVj
dG9yPExDaGFyPiBtb2R1bGU7Ci0gICAgY29uc3QgVmVjdG9yPExDaGFyPiBmaWVsZDsKKyAgICBj
b25zdCBOYW1lIG1vZHVsZTsKKyAgICBjb25zdCBOYW1lIGZpZWxkOwogICAgIEV4dGVybmFsS2lu
ZCBraW5kOwogICAgIHVuc2lnbmVkIGtpbmRJbmRleDsgLy8gSW5kZXggaW4gdGhlIHZlY3RvciBv
ZiB0aGUgY29ycmVzcG9uZGluZyBraW5kLgogfTsKIAogc3RydWN0IEV4cG9ydCB7Ci0gICAgY29u
c3QgVmVjdG9yPExDaGFyPiBmaWVsZDsKKyAgICBjb25zdCBOYW1lIGZpZWxkOwogICAgIEV4dGVy
bmFsS2luZCBraW5kOwogICAgIHVuc2lnbmVkIGtpbmRJbmRleDsgLy8gSW5kZXggaW4gdGhlIHZl
Y3RvciBvZiB0aGUgY29ycmVzcG9uZGluZyBraW5kLgogfTsKIAotU3RyaW5nIG1ha2VTdHJpbmco
Y29uc3QgVmVjdG9yPExDaGFyPiYgY2hhcmFjdGVycyk7CitTdHJpbmcgbWFrZVN0cmluZyhjb25z
dCBOYW1lJiBjaGFyYWN0ZXJzKTsKIAogc3RydWN0IEdsb2JhbCB7CiAgICAgZW51bSBNdXRhYmls
aXR5IDogdWludDhfdCB7CkBAIC0yMzEsMTAgKzIzMSwzNCBAQCBwcml2YXRlOgogfTsKICAgICAK
IHN0cnVjdCBDdXN0b21TZWN0aW9uIHsKLSAgICBWZWN0b3I8TENoYXI+IG5hbWU7CisgICAgTmFt
ZSBuYW1lOwogICAgIFZlY3Rvcjx1aW50OF90PiBwYXlsb2FkOwogfTsKIAorZW51bSBjbGFzcyBO
YW1lVHlwZSA6IHVpbnQ4X3QgeworICAgIEZ1bmN0aW9uID0gMSwKKyAgICBMb2NhbCA9IDIsCit9
OworICAgIAordGVtcGxhdGU8dHlwZW5hbWUgSW50Pgorc3RhdGljIGJvb2wgaXNWYWxpZE5hbWVU
eXBlKEludCB2YWwpCit7CisgICAgc3dpdGNoICh2YWwpIHsKKyAgICBjYXNlIHN0YXRpY19jYXN0
PEludD4oTmFtZVR5cGU6OkZ1bmN0aW9uKToKKyAgICBjYXNlIHN0YXRpY19jYXN0PEludD4oTmFt
ZVR5cGU6OkxvY2FsKToKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIHJldHVybiBm
YWxzZTsKK30KKyAgICAKK3N0cnVjdCBOYW1lU2VjdGlvbiB7CisgICAgVmVjdG9yPE5hbWU+IGZ1
bmN0aW9uTmFtZXM7CisgICAgY29uc3QgTmFtZSogZ2V0KHNpemVfdCBmdW5jdGlvbkluZGV4U3Bh
Y2UpCisgICAgeworICAgICAgICByZXR1cm4gZnVuY3Rpb25JbmRleFNwYWNlIDwgZnVuY3Rpb25O
YW1lcy5zaXplKCkgPyAmZnVuY3Rpb25OYW1lc1tmdW5jdGlvbkluZGV4U3BhY2VdIDogbnVsbHB0
cjsKKyAgICB9Cit9OworCiBzdHJ1Y3QgVW5saW5rZWRXYXNtVG9XYXNtQ2FsbCB7CiAgICAgQ29k
ZUxvY2F0aW9uTmVhckNhbGwgY2FsbExvY2F0aW9uOwogICAgIHNpemVfdCBmdW5jdGlvbkluZGV4
U3BhY2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtSW5kZXhP
ck5hbWUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUluZGV4T3JOYW1lLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNjRjMzcyCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUluZGV4T3JOYW1lLmNwcApA
QCAtMCwwICsxLDUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgor
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldhc21JbmRleE9yTmFtZS5oIgor
CituYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIFdhc20geworCitJbmRleE9yTmFtZTo6SW5kZXhP
ck5hbWUodW5zaWduZWQgaW5kZXgsIGNvbnN0IE5hbWUqIG5hbWUpCit7CisgICAgaWYgKChpbmRl
eCAmIGFsbFRhZ3MpIHx8IChiaXR3aXNlX2Nhc3Q8c2l6ZV90PihuYW1lKSAmIGFsbFRhZ3MpKQor
ICAgICAgICAqdGhpcyA9IEluZGV4T3JOYW1lKCk7CisgICAgZWxzZSBpZiAobmFtZSkKKyAgICAg
ICAgbV9uYW1lID0gbmFtZTsKKyAgICBlbHNlCisgICAgICAgIG1faW5kZXggPSBpbmRleFRhZyB8
IGluZGV4OworfQorCitTdHJpbmcgbWFrZVN0cmluZyhjb25zdCBJbmRleE9yTmFtZSYgaW9uKQor
eworICAgIGlmIChpb24uaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gU3RyaW5nKCk7CisgICAg
aWYgKGlvbi5pc0luZGV4KCkpCisgICAgICAgIHJldHVybiBTdHJpbmc6Om51bWJlcihpb24ubV9p
bmRleCAmIH5JbmRleE9yTmFtZTo6aW5kZXhUYWcpOworICAgIHJldHVybiBTdHJpbmcoaW9uLm1f
bmFtZS0+ZGF0YSgpLCBpb24ubV9uYW1lLT5zaXplKCkpOworfTsKKworfSB9IC8vIG5hbWVzcGFj
ZSBKU0M6Oldhc20KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21J
bmRleE9yTmFtZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUluZGV4T3JOYW1l
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTRjMGQ4ZQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21JbmRleE9yTmFtZS5oCkBA
IC0wLDAgKzEsNjAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIldhc21OYW1lLmgiCisjaW5jbHVkZSA8d3Rm
L1N0ZExpYkV4dHJhcy5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1l
c3BhY2UgSlNDIHsgbmFtZXNwYWNlIFdhc20geworCitzdHJ1Y3QgSW5kZXhPck5hbWUgeworICAg
IEluZGV4T3JOYW1lKCkKKyAgICAgICAgOiBtX2luZGV4KGVtcHR5VGFnKQorICAgIHsgfQorICAg
IEluZGV4T3JOYW1lKHVuc2lnbmVkIGluZGV4LCBjb25zdCBOYW1lKik7CisgICAgYm9vbCBpc0Vt
cHR5KCkgY29uc3QgeyByZXR1cm4gYml0d2lzZV9jYXN0PHNpemVfdD4oKnRoaXMpICYgZW1wdHlU
YWc7IH0KKyAgICBib29sIGlzSW5kZXgoKSBjb25zdCB7IHJldHVybiBiaXR3aXNlX2Nhc3Q8c2l6
ZV90PigqdGhpcykgJiBpbmRleFRhZzsgfQorICAgIGJvb2wgaXNOYW1lKCkgY29uc3QgeyByZXR1
cm4gIShpc0VtcHR5KCkgfHwgaXNOYW1lKCkpOyB9CisKKyAgICBmcmllbmQgU3RyaW5nIG1ha2VT
dHJpbmcoY29uc3QgSW5kZXhPck5hbWUmKTsKKworcHJpdmF0ZToKKyAgICB1bmlvbiB7CisgICAg
ICAgIHNpemVfdCBtX2luZGV4OworICAgICAgICBjb25zdCBOYW1lKiBtX25hbWU7CisgICAgfTsK
KyAgICBzdGF0aWNfYXNzZXJ0KHNpemVvZihtX2luZGV4KSA9PSBzaXplb2YobV9uYW1lKSwgImJp
dC10YWdnaW5nIGRlcGVuZHMgb24gc2l6ZXMgYmVpbmcgZXF1YWwiKTsKKworICAgIC8vIFVzZSB0
aGUgdG9wIGJpdHMgYXMgdGFncy4gTmVpdGhlciBwb2ludGVycyBub3IgdGhlIGZ1bmN0aW9uIGlu
ZGV4IHNwYWNlIHNob3VsZCB1c2UgdGhlbS4KKyAgICBzdGF0aWMgY29uc3RleHByIHNpemVfdCBp
bmRleFRhZyA9IDF1bGwgPDwgKENIQVJfQklUICogc2l6ZW9mKHNpemVfdCkgLSAxKTsKKyAgICBz
dGF0aWMgY29uc3RleHByIHNpemVfdCBlbXB0eVRhZyA9IDF1bGwgPDwgKENIQVJfQklUICogc2l6
ZW9mKHNpemVfdCkgLSAyKTsKKyAgICBzdGF0aWMgY29uc3RleHByIHNpemVfdCBhbGxUYWdzID0g
aW5kZXhUYWcgfCBlbXB0eVRhZzsKK307CisKK1N0cmluZyBtYWtlU3RyaW5nKGNvbnN0IEluZGV4
T3JOYW1lJik7CisKK30gfSAvLyBuYW1lc3BhY2UgSlNDOjpXYXNtCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTW9kdWxlSW5mb3JtYXRpb24uaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL1dhc21Nb2R1bGVJbmZvcm1hdGlvbi5oCmluZGV4IDE3NjMzOWEu
LjA3YjM4OTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21Nb2R1
bGVJbmZvcm1hdGlvbi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21Nb2R1
bGVJbmZvcm1hdGlvbi5oCkBAIC03NCw3ICs3NCw3IEBAIHN0cnVjdCBNb2R1bGVJbmZvcm1hdGlv
biA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxNb2R1bGVJbmZvcm1hdGlvbj4gewogICAg
IFZlY3RvcjxHbG9iYWw+IGdsb2JhbHM7CiAgICAgdW5zaWduZWQgZmlyc3RJbnRlcm5hbEdsb2Jh
bCB7IDAgfTsKICAgICBWZWN0b3I8Q3VzdG9tU2VjdGlvbj4gY3VzdG9tU2VjdGlvbnM7Ci0KKyAg
ICBOYW1lU2VjdGlvbiBuYW1lU2VjdGlvbjsKIH07CiAKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21Nb2R1bGVQYXJzZXIuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vV2FzbU1vZHVsZVBhcnNlci5jcHAKaW5kZXggZWU3MTRjMS4uNGNkZTE2
NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU1vZHVsZVBhcnNl
ci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU1vZHVsZVBhcnNlci5j
cHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNi0yMDE3IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpA
QCAtMzAsMTMgKzMwLDExIEBACiAKICNpbmNsdWRlICJJZGVudGlmaWVySW5saW5lcy5oIgogI2lu
Y2x1ZGUgIkpTV2ViQXNzZW1ibHlUYWJsZS5oIgotI2luY2x1ZGUgIldhc21Gb3JtYXQuaCIKICNp
bmNsdWRlICJXYXNtTWVtb3J5SW5mb3JtYXRpb24uaCIKKyNpbmNsdWRlICJXYXNtTmFtZVNlY3Rp
b25QYXJzZXIuaCIKICNpbmNsdWRlICJXYXNtT3BzLmgiCiAjaW5jbHVkZSAiV2FzbVNlY3Rpb25z
LmgiCiAKLSNpbmNsdWRlIDxzeXMvbW1hbi5oPgotCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNl
IFdhc20gewogCiBBTFdBWVNfSU5MSU5FIEkzMkluaXRFeHByIG1ha2VJMzJJbml0RXhwcih1aW50
OF90IG9wY29kZSwgdWludDMyX3QgYml0cykKQEAgLTE1Niw4ICsxNTQsOCBAQCBhdXRvIE1vZHVs
ZVBhcnNlcjo6cGFyc2VJbXBvcnQoKSAtPiBQYXJ0aWFsUmVzdWx0CiAgICAgZm9yICh1aW50MzJf
dCBpbXBvcnROdW1iZXIgPSAwOyBpbXBvcnROdW1iZXIgPCBpbXBvcnRDb3VudDsgKytpbXBvcnRO
dW1iZXIpIHsKICAgICAgICAgdWludDMyX3QgbW9kdWxlTGVuOwogICAgICAgICB1aW50MzJfdCBm
aWVsZExlbjsKLSAgICAgICAgVmVjdG9yPExDaGFyPiBtb2R1bGVTdHJpbmc7Ci0gICAgICAgIFZl
Y3RvcjxMQ2hhcj4gZmllbGRTdHJpbmc7CisgICAgICAgIE5hbWUgbW9kdWxlU3RyaW5nOworICAg
ICAgICBOYW1lIGZpZWxkU3RyaW5nOwogICAgICAgICBFeHRlcm5hbEtpbmQga2luZDsKICAgICAg
ICAgdW5zaWduZWQga2luZEluZGV4IHsgMCB9OwogCkBAIC0zNjgsNyArMzY2LDcgQEAgYXV0byBN
b2R1bGVQYXJzZXI6OnBhcnNlRXhwb3J0KCkgLT4gUGFydGlhbFJlc3VsdAogICAgIEhhc2hTZXQ8
U3RyaW5nPiBleHBvcnROYW1lczsKICAgICBmb3IgKHVpbnQzMl90IGV4cG9ydE51bWJlciA9IDA7
IGV4cG9ydE51bWJlciA8IGV4cG9ydENvdW50OyArK2V4cG9ydE51bWJlcikgewogICAgICAgICB1
aW50MzJfdCBmaWVsZExlbjsKLSAgICAgICAgVmVjdG9yPExDaGFyPiBmaWVsZFN0cmluZzsKKyAg
ICAgICAgTmFtZSBmaWVsZFN0cmluZzsKICAgICAgICAgRXh0ZXJuYWxLaW5kIGtpbmQ7CiAgICAg
ICAgIHVuc2lnbmVkIGtpbmRJbmRleDsKIApAQCAtNjA1LDcgKzYwMywxNCBAQCBhdXRvIE1vZHVs
ZVBhcnNlcjo6cGFyc2VDdXN0b20odWludDMyX3Qgc2VjdGlvbkxlbmd0aCkgLT4gUGFydGlhbFJl
c3VsdAogICAgICAgICBXQVNNX1BBUlNFUl9GQUlMX0lGKCFwYXJzZVVJbnQ4KGJ5dGUpLCAiY2Fu
J3QgZ2V0ICIsIGJ5dGVOdW1iZXIsICJ0aCBkYXRhIGJ5dGUgZnJvbSAiLCBjdXN0b21TZWN0aW9u
TnVtYmVyLCAidGggY3VzdG9tIHNlY3Rpb24iKTsKICAgICAgICAgc2VjdGlvbi5wYXlsb2FkLnVu
Y2hlY2tlZEFwcGVuZChieXRlKTsKICAgICB9Ci0gICAgCisKKyAgICBOYW1lIG5hbWVOYW1lID0g
eyAnbicsICdhJywgJ20nLCAnZScgfTsKKyAgICBpZiAoc2VjdGlvbi5uYW1lID09IG5hbWVOYW1l
KSB7CisgICAgICAgIE5hbWVTZWN0aW9uUGFyc2VyIG5hbWVTZWN0aW9uUGFyc2VyKHNlY3Rpb24u
cGF5bG9hZC5iZWdpbigpLCBzZWN0aW9uLnBheWxvYWQuc2l6ZSgpLCBtX2luZm8pOworICAgICAg
ICBpZiAoYXV0byBuYW1lU2VjdGlvbiA9IG5hbWVTZWN0aW9uUGFyc2VyLnBhcnNlKCkpCisgICAg
ICAgICAgICBtX2luZm8tPm5hbWVTZWN0aW9uID0gV1RGTW92ZSgqbmFtZVNlY3Rpb24pOworICAg
IH0KKwogICAgIG1faW5mby0+Y3VzdG9tU2VjdGlvbnMudW5jaGVja2VkQXBwZW5kKFdURk1vdmUo
c2VjdGlvbikpOwogCiAgICAgcmV0dXJuIHsgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL1dhc21OYW1lLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNt
TmFtZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMxZWM5MmUKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTmFtZS5oCkBAIC0w
LDAgKzEsMzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKyNpbmNsdWRlIDx3dGYv
dGV4dC9MQ2hhci5oPgorCituYW1lc3BhY2UgSlNDIHsKKworbmFtZXNwYWNlIFdhc20geworCit0
eXBlZGVmIFZlY3RvcjxMQ2hhcj4gTmFtZTsKKworfSB9IC8vIG5hbWVzcGFjZSBKU0M6Oldhc20K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21OYW1lU2VjdGlvblBh
cnNlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTmFtZVNlY3Rpb25QYXJz
ZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhjOTgyY2EKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTmFtZVNlY3Rpb25Q
YXJzZXIuY3BwCkBAIC0wLDAgKzEsOTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2FzbU5hbWVT
ZWN0aW9uUGFyc2VyLmgiCisKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCisKKyNpbmNsdWRlICJJ
ZGVudGlmaWVySW5saW5lcy5oIgorCituYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIFdhc20gewor
CithdXRvIE5hbWVTZWN0aW9uUGFyc2VyOjpwYXJzZSgpIC0+IFJlc3VsdAoreworICAgIE5hbWVT
ZWN0aW9uIG5hbWVTZWN0aW9uOworICAgIFdBU01fUEFSU0VSX0ZBSUxfSUYoIW5hbWVTZWN0aW9u
LmZ1bmN0aW9uTmFtZXMudHJ5UmVzZXJ2ZUNhcGFjaXR5KG1faW5mby5mdW5jdGlvbkluZGV4U3Bh
Y2VTaXplKCkpLCAiY2FuJ3QgYWxsb2NhdGUgZW5vdWdoIG1lbW9yeSBmb3IgZnVuY3Rpb24gbmFt
ZXMiKTsKKyAgICBuYW1lU2VjdGlvbi5mdW5jdGlvbk5hbWVzLnJlc2l6ZShtX2luZm8uZnVuY3Rp
b25JbmRleFNwYWNlU2l6ZSgpKTsKKworICAgIGZvciAoc2l6ZV90IHBheWxvYWROdW1iZXIgPSAw
OyBtX29mZnNldCA8IGxlbmd0aCgpOyArK3BheWxvYWROdW1iZXIpIHsKKyAgICAgICAgdWludDhf
dCBuYW1lVHlwZTsKKyAgICAgICAgdWludDMyX3QgcGF5bG9hZExlbmd0aDsKKyAgICAgICAgV0FT
TV9QQVJTRVJfRkFJTF9JRighcGFyc2VVSW50NyhuYW1lVHlwZSksICJjYW4ndCBnZXQgbmFtZSB0
eXBlIGZvciBwYXlsb2FkICIsIHBheWxvYWROdW1iZXIpOworICAgICAgICBXQVNNX1BBUlNFUl9G
QUlMX0lGKCFpc1ZhbGlkTmFtZVR5cGUobmFtZVR5cGUpLCAibmFtZSB0eXBlICIsIG5hbWVUeXBl
LCAiIGlzIGludmFsaWQgZm9yIHBheWxvYWQgIiwgcGF5bG9hZE51bWJlcik7CisgICAgICAgIFdB
U01fUEFSU0VSX0ZBSUxfSUYoIXBhcnNlVmFyVUludDMyKHBheWxvYWRMZW5ndGgpLCAiY2FuJ3Qg
Z2V0IHBheWxvYWQgbGVuZ3RoIGZvciBwYXlsb2FkICIsIHBheWxvYWROdW1iZXIpOworICAgICAg
ICBXQVNNX1BBUlNFUl9GQUlMX0lGKHBheWxvYWRMZW5ndGggPiBsZW5ndGgoKSAtIG1fb2Zmc2V0
LCAicGF5bG9hZCBsZW5ndGggaXMgdG9vIGJpZyBmb3IgcGF5bG9hZCAiLCBwYXlsb2FkTnVtYmVy
KTsKKyAgICAgICAgY29uc3QgYXV0byBwYXlsb2FkU3RhcnQgPSBtX29mZnNldDsKKworICAgICAg
ICBzd2l0Y2ggKHN0YXRpY19jYXN0PE5hbWVUeXBlPihuYW1lVHlwZSkpIHsKKyAgICAgICAgY2Fz
ZSBOYW1lVHlwZTo6RnVuY3Rpb246IHsKKyAgICAgICAgICAgIHVpbnQzMl90IGNvdW50OworICAg
ICAgICAgICAgV0FTTV9QQVJTRVJfRkFJTF9JRighcGFyc2VWYXJVSW50MzIoY291bnQpLCAiY2Fu
J3QgZ2V0IGZ1bmN0aW9uIGNvdW50IGZvciBwYXlsb2FkICIsIHBheWxvYWROdW1iZXIpOworICAg
ICAgICAgICAgZm9yICh1aW50MzJfdCBmdW5jdGlvbiA9IDA7IGZ1bmN0aW9uIDwgY291bnQ7ICsr
ZnVuY3Rpb24pIHsKKyAgICAgICAgICAgICAgICB1aW50MzJfdCBpbmRleDsKKyAgICAgICAgICAg
ICAgICB1aW50MzJfdCBuYW1lTGVuOworICAgICAgICAgICAgICAgIE5hbWUgbmFtZVN0cmluZzsK
KyAgICAgICAgICAgICAgICBXQVNNX1BBUlNFUl9GQUlMX0lGKCFwYXJzZVZhclVJbnQzMihpbmRl
eCksICJjYW4ndCBnZXQgZnVuY3Rpb24gIiwgZnVuY3Rpb24sICIgaW5kZXggZm9yIHBheWxvYWQg
IiwgcGF5bG9hZE51bWJlcik7CisgICAgICAgICAgICAgICAgV0FTTV9QQVJTRVJfRkFJTF9JRiht
X2luZm8uZnVuY3Rpb25JbmRleFNwYWNlU2l6ZSgpIDw9IGluZGV4LCAiZnVuY3Rpb24gIiwgZnVu
Y3Rpb24sICIgaW5kZXggIiwgaW5kZXgsICIgaXMgbGFyZ2VyIHRoYW4gZnVuY3Rpb24gaW5kZXgg
c3BhY2UgIiwgbV9pbmZvLmZ1bmN0aW9uSW5kZXhTcGFjZVNpemUoKSwgIiBmb3IgcGF5bG9hZCAi
LCBwYXlsb2FkTnVtYmVyKTsKKyAgICAgICAgICAgICAgICBXQVNNX1BBUlNFUl9GQUlMX0lGKCFw
YXJzZVZhclVJbnQzMihuYW1lTGVuKSwgImNhbid0IGdldCAiLCBmdW5jdGlvbiwgInRoIGZ1bmN0
aW9uJ3MgbmFtZSBsZW5ndGggZm9yIHBheWxvYWQgIiwgcGF5bG9hZE51bWJlcik7CisgICAgICAg
ICAgICAgICAgV0FTTV9QQVJTRVJfRkFJTF9JRighY29uc3VtZVVURjhTdHJpbmcobmFtZVN0cmlu
ZywgbmFtZUxlbiksICJjYW4ndCBnZXQgIiwgZnVuY3Rpb24sICJ0aCBmdW5jdGlvbidzIG5hbWUg
b2YgbGVuZ3RoICIsIG5hbWVMZW4sICIgZm9yIHBheWxvYWQgIiwgcGF5bG9hZE51bWJlcik7Cisg
ICAgICAgICAgICAgICAgbmFtZVNlY3Rpb24uZnVuY3Rpb25OYW1lc1tpbmRleF0gPSBXVEZNb3Zl
KG5hbWVTdHJpbmcpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IH0KKyAgICAgICAgY2FzZSBOYW1lVHlwZTo6TG9jYWw6IHsKKyAgICAgICAgICAgIC8vIElnbm9y
ZSBsb2NhbCBuYW1lcyBmb3Igbm93LCB3ZSBkb24ndCBkbyBhbnl0aGluZyB3aXRoIHRoZW0gYnV0
IHdlIHN0aWxsIG5lZWQgdG8gcGFyc2UgdGhlbSBpbiBvcmRlciB0byBwcm9wZXJseSBpZ25vcmUg
dGhlbS4KKyAgICAgICAgICAgIHVpbnQzMl90IGZ1bmN0aW9uSW5kZXg7CisgICAgICAgICAgICB1
aW50MzJfdCBjb3VudDsKKyAgICAgICAgICAgIFdBU01fUEFSU0VSX0ZBSUxfSUYoIXBhcnNlVmFy
VUludDMyKGZ1bmN0aW9uSW5kZXgpLCAiY2FuJ3QgZ2V0IGxvY2FsJ3MgZnVuY3Rpb24gaW5kZXgg
Zm9yIHBheWxvYWQgIiwgcGF5bG9hZE51bWJlcik7CisgICAgICAgICAgICBXQVNNX1BBUlNFUl9G
QUlMX0lGKCFwYXJzZVZhclVJbnQzMihjb3VudCksICJjYW4ndCBnZXQgbG9jYWwgY291bnQgZm9y
IHBheWxvYWQgIiwgcGF5bG9hZE51bWJlcik7CisgICAgICAgICAgICBmb3IgKHVpbnQzMl90IGxv
Y2FsID0gMDsgbG9jYWwgPCBjb3VudDsgKytsb2NhbCkgeworICAgICAgICAgICAgICAgIHVpbnQz
Ml90IGluZGV4OworICAgICAgICAgICAgICAgIHVpbnQzMl90IG5hbWVMZW47CisgICAgICAgICAg
ICAgICAgTmFtZSBuYW1lU3RyaW5nOworICAgICAgICAgICAgICAgIFdBU01fUEFSU0VSX0ZBSUxf
SUYoIXBhcnNlVmFyVUludDMyKGluZGV4KSwgImNhbid0IGdldCBsb2NhbCAiLCBsb2NhbCwgIiBp
bmRleCBmb3IgcGF5bG9hZCAiLCBwYXlsb2FkTnVtYmVyKTsKKyAgICAgICAgICAgICAgICBXQVNN
X1BBUlNFUl9GQUlMX0lGKCFwYXJzZVZhclVJbnQzMihuYW1lTGVuKSwgImNhbid0IGdldCAiLCBs
b2NhbCwgInRoIGxvY2FsJ3MgbmFtZSBsZW5ndGggZm9yIHBheWxvYWQgIiwgcGF5bG9hZE51bWJl
cik7CisgICAgICAgICAgICAgICAgV0FTTV9QQVJTRVJfRkFJTF9JRighY29uc3VtZVVURjhTdHJp
bmcobmFtZVN0cmluZywgbmFtZUxlbiksICJjYW4ndCBnZXQgIiwgbG9jYWwsICJ0aCBsb2NhbCdz
IG5hbWUgb2YgbGVuZ3RoICIsIG5hbWVMZW4sICIgZm9yIHBheWxvYWQgIiwgcGF5bG9hZE51bWJl
cik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAg
ICB9CisgICAgICAgIFdBU01fUEFSU0VSX0ZBSUxfSUYocGF5bG9hZFN0YXJ0ICsgcGF5bG9hZExl
bmd0aCAhPSBtX29mZnNldCk7CisgICAgfQorICAgIHJldHVybiBuYW1lU2VjdGlvbjsKK30KKwor
fSB9IC8vIG5hbWVzcGFjZSBKU0M6Oldhc20KKworI2VuZGlmIC8vIEVOQUJMRShXRUJBU1NFTUJM
WSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21OYW1lU2VjdGlv
blBhcnNlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU5hbWVTZWN0aW9uUGFy
c2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjI5NzBkZAotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21OYW1lU2VjdGlvblBh
cnNlci5oCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
KyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKKwor
I2luY2x1ZGUgIldhc21Gb3JtYXQuaCIKKyNpbmNsdWRlICJXYXNtUGFyc2VyLmgiCisKK25hbWVz
cGFjZSBKU0MgeyBuYW1lc3BhY2UgV2FzbSB7CisKK2NsYXNzIE5hbWVTZWN0aW9uUGFyc2VyIDog
cHVibGljIFBhcnNlcjxOYW1lU2VjdGlvbj4geworcHVibGljOgorICAgIE5hbWVTZWN0aW9uUGFy
c2VyKGNvbnN0IHVpbnQ4X3QqIHNvdXJjZUJ1ZmZlciwgc2l6ZV90IHNvdXJjZUxlbmd0aCwgY29u
c3QgTW9kdWxlSW5mb3JtYXRpb24mIGluZm8pCisgICAgICAgIDogUGFyc2VyKHNvdXJjZUJ1ZmZl
ciwgc291cmNlTGVuZ3RoKQorICAgICAgICAsIG1faW5mbyhpbmZvKQorICAgIHsKKyAgICB9CisK
KyAgICBSZXN1bHQgV0FSTl9VTlVTRURfUkVUVVJOIHBhcnNlKCk7CisgICAgCitwcml2YXRlOgor
ICAgIGNvbnN0IE1vZHVsZUluZm9ybWF0aW9uJiBtX2luZm87Cit9OworCit9IH0gLy8gbmFtZXNw
YWNlIEpTQzo6V2FzbQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQkFTU0VNQkxZKQpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU9NR1BsYW4uY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vV2FzbU9NR1BsYW4uY3BwCmluZGV4IDYyOTAzNGUuLjAxNjQ4Nzcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21PTUdQbGFuLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtT01HUGxhbi5jcHAKQEAgLTk4LDcg
Kzk4LDcgQEAgdm9pZCBPTUdQbGFuOjp3b3JrKENvbXBpbGF0aW9uRWZmb3J0KQogICAgIHZvaWQq
IGVudHJ5cG9pbnQ7CiAgICAgewogICAgICAgICBBU1NFUlQobV9jb2RlQmxvY2sucHRyKCkgPT0g
bV9tb2R1bGUtPmNvZGVCbG9ja0Zvcihtb2RlKCkpKTsKLSAgICAgICAgUmVmPENhbGxlZT4gY2Fs
bGVlID0gQ2FsbGVlOjpjcmVhdGUoV1RGTW92ZShvbWdFbnRyeXBvaW50KSwgZnVuY3Rpb25JbmRl
eFNwYWNlKTsKKyAgICAgICAgUmVmPENhbGxlZT4gY2FsbGVlID0gQ2FsbGVlOjpjcmVhdGUoV1RG
TW92ZShvbWdFbnRyeXBvaW50KSwgZnVuY3Rpb25JbmRleFNwYWNlLCBtX21vZHVsZUluZm9ybWF0
aW9uLT5uYW1lU2VjdGlvbi5nZXQoZnVuY3Rpb25JbmRleFNwYWNlKSk7CiAgICAgICAgIE1hY3Jv
QXNzZW1ibGVyOjpyZXBhdGNoUG9pbnRlcihwYXJzZUFuZENvbXBpbGVSZXN1bHQudmFsdWUoKS0+
d2FzbUNhbGxlZU1vdmVMb2NhdGlvbiwgQ2FsbGVlQml0czo6Ym94V2FzbShjYWxsZWUucHRyKCkp
KTsKICAgICAgICAgQVNTRVJUKCFtX2NvZGVCbG9jay0+bV9vcHRpbWl6ZWRDYWxsZWVzW21fZnVu
Y3Rpb25JbmRleF0pOwogICAgICAgICBlbnRyeXBvaW50ID0gY2FsbGVlLT5lbnRyeXBvaW50KCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtUGFyc2VyLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtUGFyc2VyLmgKaW5kZXggODlmZjEwYy4uYzJh
OGMxNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVBhcnNlci5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21QYXJzZXIuaApAQCAtMSw1ICsx
LDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE2LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC02Miw3ICs2Miw3
IEBAIHByb3RlY3RlZDoKIAogICAgIGJvb2wgV0FSTl9VTlVTRURfUkVUVVJOIGNvbnN1bWVDaGFy
YWN0ZXIoY2hhcik7CiAgICAgYm9vbCBXQVJOX1VOVVNFRF9SRVRVUk4gY29uc3VtZVN0cmluZyhj
b25zdCBjaGFyKik7Ci0gICAgYm9vbCBXQVJOX1VOVVNFRF9SRVRVUk4gY29uc3VtZVVURjhTdHJp
bmcoVmVjdG9yPExDaGFyPiYsIHNpemVfdCk7CisgICAgYm9vbCBXQVJOX1VOVVNFRF9SRVRVUk4g
Y29uc3VtZVVURjhTdHJpbmcoTmFtZSYsIHNpemVfdCk7CiAKICAgICBib29sIFdBUk5fVU5VU0VE
X1JFVFVSTiBwYXJzZVZhclVJbnQxKHVpbnQ4X3QmKTsKICAgICBib29sIFdBUk5fVU5VU0VEX1JF
VFVSTiBwYXJzZUludDcoaW50OF90Jik7CkBAIC0xNDIsNyArMTQyLDcgQEAgQUxXQVlTX0lOTElO
RSBib29sIFBhcnNlcjxTdWNjZXNzVHlwZT46OmNvbnN1bWVTdHJpbmcoY29uc3QgY2hhciogc3Ry
KQogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBTdWNjZXNzVHlwZT4KLUFMV0FZU19JTkxJTkUgYm9v
bCBQYXJzZXI8U3VjY2Vzc1R5cGU+Ojpjb25zdW1lVVRGOFN0cmluZyhWZWN0b3I8TENoYXI+JiBy
ZXN1bHQsIHNpemVfdCBzdHJpbmdMZW5ndGgpCitBTFdBWVNfSU5MSU5FIGJvb2wgUGFyc2VyPFN1
Y2Nlc3NUeXBlPjo6Y29uc3VtZVVURjhTdHJpbmcoTmFtZSYgcmVzdWx0LCBzaXplX3Qgc3RyaW5n
TGVuZ3RoKQogewogICAgIGlmIChsZW5ndGgoKSA8IHN0cmluZ0xlbmd0aCB8fCBtX29mZnNldCA+
IGxlbmd0aCgpIC0gc3RyaW5nTGVuZ3RoKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0tIAoyLjku
MwoK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>309615</attachid>
            <date>2017-05-10 09:57:50 -0700</date>
            <delta_ts>2017-05-10 11:15:20 -0700</delta_ts>
            <desc>patch</desc>
            <filename>0001-WebAssembly-support-name-section.patch</filename>
            <type>text/plain</type>
            <size>64259</size>
            <attacher name="JF Bastien">jfbastien</attacher>
            
              <data encoding="base64">RnJvbSBkOWIwZTYwMjEyNGVkNzJjY2Q0YTNiMGJkOWE0MDRjMTRjY2VhNjkxIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKRiBCYXN0aWVuIDxqZmJhc3RpZW5AYXBwbGUuY29tPgpEYXRl
OiBGcmksIDI4IEFwciAyMDE3IDAxOjM3OjUzIC0wNzAwClN1YmplY3Q6IFtQQVRDSF0gV2ViQXNz
ZW1ibHk6IHN1cHBvcnQgbmFtZSBzZWN0aW9uCgotLS0KIEpTVGVzdHMvQ2hhbmdlTG9nICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDEyICsrKwogSlNUZXN0cy93YXNtL2Z1bmN0
aW9uLXRlc3RzL25hbWVTZWN0aW9uLmpzICAgICAgICAgfCAgNzIgKysrKysrKysrKysrKysrKysK
IEpTVGVzdHMvd2FzbS9mdW5jdGlvbi10ZXN0cy9uYW1lU2VjdGlvbi53YXNtICAgICAgIHwgQmlu
IDAgLT4gMTM0MDkgYnl0ZXMKIEpTVGVzdHMvd2FzbS9mdW5jdGlvbi10ZXN0cy9zdGFjay10cmFj
ZS5qcyAgICAgICAgIHwgICA4ICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50
eHQgICAgICAgICAgICAgICB8ICAgMiArCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9n
ICAgICAgICAgICAgICAgICAgICB8ICA2NCArKysrKysrKysrKysrKysKIC4uLi9KYXZhU2NyaXB0
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qICAgICAgIHwgIDMwICsrKysrLS0KIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5jcHAgIHwgICAzICstCiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvU3RhY2tWaXNpdG9yLmNwcCB8ICAgOSAr
Ky0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9TdGFja1Zpc2l0b3IuaCAgIHwg
ICA3ICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdGFja0ZyYW1lLmNwcCAgICAg
ICB8ICAgNiArLQogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RhY2tGcmFtZS5oICAg
ICAgICAgfCAgMTQgKystLQogU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUJCUVBsYW5J
bmxpbmVzLmggICAgfCAgIDMgKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21DYWxs
ZWUuY3BwICAgICAgICAgIHwgIDEwICsrLQogU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2Fz
bUNhbGxlZS5oICAgICAgICAgICAgfCAgMjUgKysrLS0tCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9XYXNtRm9ybWF0LmNwcCAgICAgICAgICB8ICAgNCArLQogU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vV2FzbUZvcm1hdC5oICAgICAgICAgICAgfCAgNDAgKysrKysrKy0tCiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtSW5kZXhPck5hbWUuY3BwICAgICB8ICA1MyArKysrKysr
KysrKysKIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21JbmRleE9yTmFtZS5oICAgICAg
IHwgIDYxICsrKysrKysrKysrKysrCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTW9k
dWxlSW5mb3JtYXRpb24uaCB8ICAgMiArLQogU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2Fz
bU1vZHVsZVBhcnNlci5jcHAgICAgfCAgMjEgKysrLS0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL1dhc21OYW1lLmggICAgICAgICAgICAgIHwgIDM3ICsrKysrKysrKwogLi4uL0phdmFTY3Jp
cHRDb3JlL3dhc20vV2FzbU5hbWVTZWN0aW9uUGFyc2VyLmNwcCAgfCAgOTAgKysrKysrKysrKysr
KysrKysrKysrCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTmFtZVNlY3Rpb25QYXJz
ZXIuaCB8ICA1MSArKysrKysrKysrKysKIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21P
TUdQbGFuLmNwcCAgICAgICAgIHwgICAyICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9X
YXNtUGFyc2VyLmggICAgICAgICAgICB8ICAgNiArLQogMjYgZmlsZXMgY2hhbmdlZCwgNTY2IGlu
c2VydGlvbnMoKyksIDY2IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IEpTVGVzdHMv
d2FzbS9mdW5jdGlvbi10ZXN0cy9uYW1lU2VjdGlvbi5qcwogY3JlYXRlIG1vZGUgMTAwNjQ0IEpT
VGVzdHMvd2FzbS9mdW5jdGlvbi10ZXN0cy9uYW1lU2VjdGlvbi53YXNtCiBjcmVhdGUgbW9kZSAx
MDA2NDQgU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUluZGV4T3JOYW1lLmNwcAogY3Jl
YXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21JbmRleE9yTmFt
ZS5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU5h
bWUuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21O
YW1lU2VjdGlvblBhcnNlci5jcHAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9XYXNtTmFtZVNlY3Rpb25QYXJzZXIuaAoKZGlmZiAtLWdpdCBhL0pTVGVzdHMv
Q2hhbmdlTG9nIGIvSlNUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZmE5ZGViNC4uNzdhYWFkMyAxMDA2
NDQKLS0tIGEvSlNUZXN0cy9DaGFuZ2VMb2cKKysrIGIvSlNUZXN0cy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNSBAQAorMjAxNy0wNS0wOCAgSkYgQmFzdGllbiAgPGpmYmFzdGllbkBhcHBsZS5jb20+
CisKKyAgICAgICAgV2ViQXNzZW1ibHk6IHN1cHBvcnQgbmFtZSBzZWN0aW9uCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzEyNjMKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHdhc20vZnVuY3Rpb24tdGVz
dHMvbmFtZVNlY3Rpb24uanM6IEFkZGVkLgorICAgICAgICAoY29uc3QuY29tcGlsZSk6CisgICAg
ICAgICogd2FzbS9mdW5jdGlvbi10ZXN0cy9uYW1lU2VjdGlvbi53YXNtOiBBZGRlZC4KKyAgICAg
ICAgKiB3YXNtL2Z1bmN0aW9uLXRlc3RzL3N0YWNrLXRyYWNlLmpzOiBVcGRhdGUgZm9ybWF0CisK
IDIwMTctMDUtMDYgIE9sZWtzYW5kciBTa2FjaGtvdiAgPGdza2FjaGtvdkBnbWFpbC5jb20+CiAK
ICAgICAgICAgW0VTNl0gQXJyb3cgZnVuY3Rpb24uIElzc3VlIGluIGFjY2VzcyB0byB0aGlzIGFm
dGVyIGV2YWwoJ3N1cGVyKCknKSB3aXRoaW4gY29uc3RydWN0b3IKZGlmZiAtLWdpdCBhL0pTVGVz
dHMvd2FzbS9mdW5jdGlvbi10ZXN0cy9uYW1lU2VjdGlvbi5qcyBiL0pTVGVzdHMvd2FzbS9mdW5j
dGlvbi10ZXN0cy9uYW1lU2VjdGlvbi5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi5iYTU0MTllCi0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy93YXNtL2Z1bmN0aW9uLXRl
c3RzL25hbWVTZWN0aW9uLmpzCkBAIC0wLDAgKzEsNzIgQEAKK2ltcG9ydCAqIGFzIGFzc2VydCBm
cm9tICcuLi9hc3NlcnQuanMnCisKKy8qCitUaGlzIHRlc3QgbG9hZHMgYSBXZWJBc3NlbWJseSBm
aWxlIGNvbXBpbGVkIGJ5IEVtc2NyaXB0ZW4gd2l0aDoKKyAgLi9lbXNkay1wb3J0YWJsZS9lbXNj
cmlwdGVuL2luY29taW5nL2VtKysgLi9uYW1lU2VjdGlvbi5jYyAtTzIgLWc0IC1zIFdBU009MSAt
byBuYW1lU2VjdGlvbi5qcyAtcyBFWFBPUlRFRF9GVU5DVElPTlM9IlsnX3BhcnJvdCddIgorCitG
cm9tIHRoZSBmb2xsb3dpbmcgQysrIHNvdXJjZSBmaWxlOgorICBleHRlcm4gIkMiIHsKKyAgaW50
IHNpbGx5KGludCk7CisgIF9fYXR0cmlidXRlX18oKG5vaW5saW5lKSkgaW50IGVnZ3MoaW50IGkp
IHsgcmV0dXJuIHNpbGx5KGkpOyB9CisgIF9fYXR0cmlidXRlX18oKG5vaW5saW5lKSkgaW50IGJh
Y29uKGludCBpKSB7IHJldHVybiBlZ2dzKGkpOyB9CisgIF9fYXR0cmlidXRlX18oKG5vaW5saW5l
KSkgaW50IHNwYW0oaW50IGkpIHsgcmV0dXJuIGJhY29uKGkpOyB9CisgIF9fYXR0cmlidXRlX18o
KG5vaW5saW5lKSkgaW50IHBhcnJvdChpbnQgaSkgeyByZXR1cm4gc3BhbShpKTsgfQorICB9Cisq
LworCitjb25zdCB2ZXJib3NlID0gZmFsc2U7Citjb25zdCB3YXNtRmlsZSA9ICduYW1lU2VjdGlv
bi53YXNtJzsKKworY29uc3QgY29tcGlsZSA9IChsb2NhdGlvbiwgaW1wb3J0T2JqZWN0ID0ge30p
ID0+IHsKKyAgICBpZiAodmVyYm9zZSkKKyAgICAgICAgcHJpbnQoYFByb2Nlc3NpbmcgJHtsb2Nh
dGlvbn1gKTsKKyAgICBsZXQgYnVmID0gdHlwZW9mIHJlYWRidWZmZXIgIT09ICJ1bmRlZmluZWQi
PyByZWFkYnVmZmVyKGxvY2F0aW9uKSA6IHJlYWQobG9jYXRpb24sICdiaW5hcnknKTsKKyAgICBp
ZiAodmVyYm9zZSkKKyAgICAgICAgcHJpbnQoYCAgU2l6ZTogJHtidWYuYnl0ZUxlbmd0aH1gKTsK
KworICAgIGxldCB0MCA9IERhdGUubm93KCk7CisgICAgbGV0IG1vZHVsZSA9IG5ldyBXZWJBc3Nl
bWJseS5Nb2R1bGUoYnVmKTsKKyAgICBsZXQgdDEgPSBEYXRlLm5vdygpOworICAgIGlmICh2ZXJi
b3NlKQorICAgICAgICBwcmludChgbmV3IFdlYkFzc2VtYmx5Lk1vZHVsZShidWYpIHRvb2sgJHt0
MS10MH0gbXMuYCk7CisKKyAgICBpZiAodmVyYm9zZSkKKyAgICAgICAgcHJpbnQoYENyZWF0aW5n
IGZha2UgaW1wb3J0IG9iamVjdCB3aXRoICR7V2ViQXNzZW1ibHkuTW9kdWxlLmltcG9ydHMobW9k
dWxlKS5sZW5ndGh9IGltcG9ydHNgKTsKKyAgICBmb3IgKGxldCBpbXAgb2YgV2ViQXNzZW1ibHku
TW9kdWxlLmltcG9ydHMobW9kdWxlKSkgeworICAgICAgICBpZiAodHlwZW9mIGltcG9ydE9iamVj
dFtpbXAubW9kdWxlXSA9PT0gInVuZGVmaW5lZCIpCisgICAgICAgICAgICBpbXBvcnRPYmplY3Rb
aW1wLm1vZHVsZV0gPSB7fTsKKyAgICAgICAgaWYgKHR5cGVvZiBpbXBvcnRPYmplY3RbaW1wLm1v
ZHVsZV1baW1wLm5hbWVdID09PSAidW5kZWZpbmVkIikgeworICAgICAgICAgICAgc3dpdGNoIChp
bXAua2luZCkgeworICAgICAgICAgICAgY2FzZSAiZnVuY3Rpb24iOiBpbXBvcnRPYmplY3RbaW1w
Lm1vZHVsZV1baW1wLm5hbWVdID0gKCkgPT4ge307IGJyZWFrOworICAgICAgICAgICAgY2FzZSAi
dGFibGUiOiBpbXBvcnRPYmplY3RbaW1wLm1vZHVsZV1baW1wLm5hbWVdID0gbmV3IFdlYkFzc2Vt
Ymx5LlRhYmxlKHsgaW5pdGlhbDogNiwgbWF4aW11bTogNiwgZWxlbWVudDogImFueWZ1bmMiIH0p
OyBicmVhazsKKyAgICAgICAgICAgIGNhc2UgIm1lbW9yeSI6IGltcG9ydE9iamVjdFtpbXAubW9k
dWxlXVtpbXAubmFtZV0gPSBuZXcgV2ViQXNzZW1ibHkuTWVtb3J5KHsgaW5pdGlhbDogMTY3Nzcy
MTYgLyAoNjQgKiAxMDI0KSwgbWF4aW11bTogMTY3NzcyMTYgLyAoNjQgKiAxMDI0KSB9KTsgYnJl
YWs7CisgICAgICAgICAgICBjYXNlICJnbG9iYWwiOiBpbXBvcnRPYmplY3RbaW1wLm1vZHVsZV1b
aW1wLm5hbWVdID0gMDsgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgIH0K
KworICAgIGxldCB0MiA9IERhdGUubm93KCk7CisgICAgbGV0IGluc3RhbmNlID0gbmV3IFdlYkFz
c2VtYmx5Lkluc3RhbmNlKG1vZHVsZSwgaW1wb3J0T2JqZWN0KTsKKyAgICBsZXQgdDMgPSBEYXRl
Lm5vdygpOworICAgIGlmICh2ZXJib3NlKQorICAgICAgICBwcmludChgbmV3IFdlYkFzc2VtYmx5
Lk1vZHVsZShidWYpIHRvb2sgJHt0My10Mn0gbXMuYCk7CisKKyAgICByZXR1cm4gaW5zdGFuY2U7
Cit9OworCitsZXQgc3RhY2t0cmFjZTsKK2NvbnN0IGltcG9ydE9iamVjdCA9IHsgZW52OiB7IF9z
aWxseTogaSA9PiB7IHN0YWNrdHJhY2UgPSAobmV3IEVycm9yKS5zdGFjazsgcmV0dXJuIGkgKyA0
MjsgfSB9IH07Citjb25zdCBpbnN0YW5jZSA9IGNvbXBpbGUod2FzbUZpbGUsIGltcG9ydE9iamVj
dCk7Citjb25zdCByZXN1bHQgPSBpbnN0YW5jZS5leHBvcnRzLl9wYXJyb3QoMSk7Cithc3NlcnQu
ZXEocmVzdWx0LCAxICsgNDIpOworCithc3NlcnQudHJ1dGh5KHN0YWNrdHJhY2UpOworc3RhY2t0
cmFjZSA9IHN0YWNrdHJhY2Uuc3BsaXQoIlxuIik7Cithc3NlcnQuZmFsc3koc3RhY2t0cmFjZVsw
XS5pbmRleE9mKCJfc2lsbHkiKSA9PT0gLTEpOworYXNzZXJ0LmVxKHN0YWNrdHJhY2VbMV0sICJ3
YXNtIGZ1bmN0aW9uQFt3YXNtIGNvZGVdIik7IC8vIHRoZSB3YXNtLT5qcyBzdHViCithc3NlcnQu
ZXEoc3RhY2t0cmFjZVsyXSwgIndhc20gZnVuY3Rpb246IF9lZ2dzQFt3YXNtIGNvZGVdIik7Cith
c3NlcnQuZXEoc3RhY2t0cmFjZVszXSwgIndhc20gZnVuY3Rpb246IF9iYWNvbkBbd2FzbSBjb2Rl
XSIpOworYXNzZXJ0LmVxKHN0YWNrdHJhY2VbNF0sICJ3YXNtIGZ1bmN0aW9uOiBfc3BhbUBbd2Fz
bSBjb2RlXSIpOworYXNzZXJ0LmVxKHN0YWNrdHJhY2VbNV0sICJ3YXNtIGZ1bmN0aW9uOiBfcGFy
cm90QFt3YXNtIGNvZGVdIik7Cithc3NlcnQuZXEoc3RhY2t0cmFjZVs2XSwgIndhc20gZnVuY3Rp
b25AW3dhc20gY29kZV0iKTsgLy8gd2FzbSBlbnRyeQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy93YXNt
L2Z1bmN0aW9uLXRlc3RzL25hbWVTZWN0aW9uLndhc20gYi9KU1Rlc3RzL3dhc20vZnVuY3Rpb24t
dGVzdHMvbmFtZVNlY3Rpb24ud2FzbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yNGIyMmIxYWVlYTM4ZTQ2OWMzMjYw
YmEzNGQ1ZGE0YTZkYjEyMTUzCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAxMzQwOQp6Y21iVzhP
Tj9BdWRCQEx2UmFNdW0+TW9DTT0kWX4wZCM/PWBGd2deb0tfakkyZ3hHXklXKFlHMnZaYHImWTZl
JWcKei1SfGxkISQ+SUlBJmBzfHFDfkprKGQ0bH0xZCVMUUJvWWZHdFVSUGRWITxNalNmR2VTQjFP
dUUjWUQ9MldiKnJlCno9aVlqQl9lPXVnPkFKNlQmLXZjcHxOSEt9WmdjTlc8ZVpFQzteNSVHYilI
TjFfeEdkeT1PWD5ZYH0+WVBfbmhPdgp6SVVUYztHSjxYVnJRaGE7KTUrLVd7bmNPbGpaZ1UtKkZO
Xl8pMU14R2BxfEdVYCVZJiYmcGhpdGNBYXplQHJvU30Kelp9YHZGQyRpMChKQ210UEdgSyZ5eVMr
SmlhZGN5SlhKXylWT0tzWDBON0g5X3JrbVN+QypOdX1KJD82TW58SlQtCnpPck0oVWUxN3JqVFpX
QE1kJCVVSD9AZFF7aGomSklacnl1JWM9UHMpJklvRGBocntpaVRVJWtwKS1XdWVYe25xYAp6ZCF5
LTwkPmRXejtqKjIxZEdGVGRfVnkqJEc3PmM9b08lMy1qY34zdCtgR05Le2ohVFJwZj99enAobiFp
Njs4YyQKemNmTSRVS0lIS3k+VW1xeDNEMHFLNUZmO3ZDITIyRysjV151cUwhYE80Y0M4bGI4cG0w
KGdyanF6OXElSUp4WUB9CnpQU1N8flF1Rzw2RFZyIXNHZnBIS1hJa3lad2Y8Q05UbD4qRG0tNz9w
Qys1Zk51PSMwIWBBWkJzKiZnMTNfbmxrcgp6VUFnb3l4XndSe3F2P2hfKWdIZF4hdUNzaHBMNmZi
Q29rUm9edj5TJm5iQ0M1eShkUzB2ciM4Y2pgbD80P1krLUUKekd1XnprXn59QV5UTylVM2dfOWc/
LVhGTyY9MHtoZnNlNWxXK2BCcDFhdSorNlIzMiolVSk8aWd4dyQ+dXpKMnFTCnpkKVVVS1B4cnBB
JkVrIT8pc0J8XisrXzU1X2ZVSXlaKnd4KW5ZIzZDX2ArbH5hX3tjaCRqP0JfJlNjflVDeUBTVgp6
R1AlMVdHdVdLby1ucn1FKV93a0VZLXhMWWM+QV97ZXtYKWs7bHwyV0M5Y1N3T1lfI19rOT9weV5K
dz80ZTxFVDMKemlKaXY+X1JxRC09dj1GQzxNWFheRXgkSlFfamI+PmlZVSomdFJlMVBFQl90YURj
dCMxe2A8QllVKURocG9wMHkpCnpBQkl0I0UyJk8pSUp1SX5AOH53T2JuYCNaeihefD1acU98d0V3
T2EmXmZCayZhP0g4NmhJMyFCaDVjKll7SlM9RAp6Sm1iWD07SDhNRnhOc05aan1GUjl2R2M3Vzkm
YHFlbEAwPTdIcVpaQ0NXODV4MDVVaz0mYGxabG1mOTVLRGsrPmwKekdwPCVII0k4ITJxdEo7ezxF
cVB2QkhoeHRseWxMZ3hXZ3ZDNiEoZyhpV3V8SmFuKW10WmkkTFNxYXg0Y1BKOWBgCnpyQTBpaFF2
V3NoQU1eKjBSbmdWSF5Lc2N1RTtHdH4zTW4jdHQ3SzsxOEpFYmpOR2AtXyl4VGNsVDxlcmNVZ1pB
bAp6KVNyRStYcGhTX0R8MX43PD5gTFcmdjFkUURqRk5QSns/emBxR09sMGJmIzRfYmhRRnF0KWVh
SmpodDNQUFRXSD8KenVtSjt1Vm5yS1FiaT45O3FSdGwrb29vQn1ZUCM9VFI+VmYqUiRsN1ghVWtR
R0JyZTFvUHtKZTw1fGh7X0ZFUnVqCno9bFE9YXN4M3RXZyoxPiM/eDs7U0J3QlNyIztMXjVzYX14
eHo8KDkjM3wwbkBkR35SK2NZZEZ7e0M7THM9SUE7Tgp6eThhX0c2fE5zVmNSayU3eXY7K1IxWSQk
O3sxdi1BSU9gdnthYyFASUJDcVoxcGlgZzFYI1Q/fVBKKyRNREp+TnYKemh+MlFSTjhSVXhrUkde
UWBOU2VPVTtqMzg1SS00R19tYGt1SSkjaVUtRjFsXkV5amFLPVgzYFRNNVd9WjFCYlFOCno/eml2
JURqI0oyYCsxKUt1M2diX0ZhUEZtRilFVEQkVSF5cGg0Xzx4fEM4RHFUcXM+SFd7dHRRRDx6Sj5G
XmVJegp6MiZ4Qz9hbUxiUnslNWpuYlpYbmRKN3JDIThAISM5UmdfKiVGajFURjZTe0EzJk13Q35j
Uz04SnVDcWB5eEtPeEIKej4yZkM1KGZNNExLMmsrfWR+V2EjYWhkMEA4bGtQNFAkYHUkNG5nMjxG
PyU9cUleZHI7SVBhNVBBQ0ZIc19sVHgpCnp4WFpxb25hbz9aVSFASDBqSF51aHQhdl5JQThLdVJ2
JW19VStnVXBwYnNWZjJmMExFTCM/MDZsa1hKN00qN3FkSQp6KD9RWEZPdyVHdHpaXilne3khc0kj
T0d1R2gyMWp0NHwxKkM9MVA3STtTSCk3bSZrb2B6akY3aGchTGdRQHpKaTIKel82VzA4PGRkb1lf
WihKNWIqZyppPnM1PEFiZFBlYnJrOXglMk9+Jkt7cj11QV5yMHNJQlEzPCpnTyp0NzEodTcxCno7
UlAjLTJ9R2Y+NDlHRHZ0eUUhP3hUfnpyalVfU3slcmkwez8mQmI+SEkoSzUhSSlUKzRpbyhxWnQ1
WExfakFZQQp6V1ZoYmdfNHxuM193TV9fRjRRdGtKWkFUT1hJRn10YTMrT3VBSyYtc1prMD8+aDZM
ZkdgI3dIJjlMPGd1NW9AN2oKejVgfChHdiQ3fEhXRXI/JDVLM3g3c1Q1Uj42Xm8pPTVET3QkVihG
TXppZ3A8X3FLUml4QXNsRDtaISNAblYhREBICnpRcjFoeWckNGFKYm4jRDs0UExWKm91V2B2QTU9
dnMybm1+bCU+Pk9IcVhqKT5NTjtBY1doPjk1UUhHbj9ISkl+YAp6Xjk4fmVpRylOMnd6ejAxQXxy
V0BhPHBQcEt0VyhjYHMlTGJ7X2pqJWlYT1JsTVpXY0JURVB2Wm1GTzRPaWpTeE0KelhaXjkxZiM7
PUlKMkUyTE1maWghYWQzcVpjQTAzQ1QkVytnZ0RNaXR3VzxTc0VvQ2gyeEtnPTZjUVMwQFBKQkkp
CnplQyhJMCZCJmBrWlJVN0A2NlZVJiFSbEZiejNrekk/RFElJEFscmA9S31fXmM1bShnQjU0fGhY
VVh0ZWBQdmd3QQp6eCh3XjBLKzxVbENFUmgkMV5HfVExbk5TUlVeWWwpXiR2TmVBcmZ+OF9aUUpx
amQjfHo4emAqcHVkQSU8a1ZJLWAKem44UWE7MVolIUNAKTtBaShKc0Y1Qm4/a3QzV2NMLUd9KGok
U2p2anRsQk0rfFRURmlkNzFCI3tjT1VMQ0BGM1R1CnptVE93e0YyKERuI0w3fHlgViMzRnpEI2Rg
K3BfcE5jUzc1I0ZsMT5wOCtLfG9qRGJXK3JocHF2bkpgbTM3JklSVgp6SXx6YDc2VDtGOF9YVkcw
WiFHSX4jb1h1OEJSOzJ+Yyt9X09DRUFqNXdUUjBzXyM2O3Y/c0thTUtnKX5OQVJDeUsKeiYqQVFk
ZzYyTGFEJiV1M1oxWH0rN3Zac00xWC0tUGBFfnZXYC1EcnNVbll0fDFhemwta2stIUdMS2dUclVQ
cmJ9Cnp7cCt2NC1VZlg1dmtFcWwhTEBfYGBJV0lCU21ZJG1NKmlUWlhZSDd7aVRfVXxCISVDRDEz
KT4kMiVwaHBpI3kyKQp6WXhsS1Vkd2lkPyFjNVYwMDwkRlI2Q1M7N2x+SF9JfEI0ZH05Km1hIyE8
Pm9rWjxSNCNBeClwflhCIUJZUGZKMmMKejhPdSo8SHdOUmI3TUFOKTticGFxNU1Jbk8hVmhLQyVn
e01QUGdNX0hESVM2ZHRQZi1nb2dwTndVWSk+cm1LNl5QCnppNlFlVlJZbkc2bklofEpoS3dtKSYq
azZfUzJ8NnIzOWw2S20wZk9aayRwfXFXKkBuQmlvZG9NTUcjK3pkR1JiMAp6RzM5K3lZUkUoPVdJ
XzxsPH1vaTtDV19+b1h6Nz90UjNERyQ1LVh2TGQ3dntFMmJwWGUpLXpaS0cpMF5qJDs2TEAKejN2
LWIle0YtNilqSHtxPi1HdmJ5amhSM3FTKmd0dTs4R1R7RmRDRjIpaXp6TiktRF52NWMjX2FnI2V9
WFFYenlMCnpnK2pvJT95MTM0V3VZKXVEMTxnPWhsc2VkN3oma0pEK1FuKT5ge0A7TGc2dE5sKUN+
VXUtPTVpaihrQyh1KD44Uwp6MzVCfTloITtibFduYG5VRD0lfEpGTyZwT0d6KjBpNitBQTVMZVh2
XnpVYiZLUmhiSGZncDR7QVIqSSs9NEQrUUIKemtlZkx3N3soek8maEElNj5aTCZFcUVwOTJuWWJX
VHJecG8ocDxxelEjQmUxR18oM3N8U3JpaSlhJEhRYkZ0Mz1YCnpWVjMhX2c8dDg0YHFFVHUwMFIj
V0YlWil8Q1B0I3xTJllQVTQ0MTRGKipHQTkzQG4wMlg4c2A3ajE4IzdrcGRofAp6NUslLV81JV8j
I1lfZilOd25MbUd0PFU0KzhkaXk7dHl1JnQrUz5GZTxFJmEtdXtmej4wPDBGb1RlY1k5dmowMjAK
ejhCbU9oXmNNX28jS0AyJHV+KH1wJnJxTFk7aShLVk1PPGNESFJxfHlGQndaeHE9QikoakZHPzJ7
V1ZXKUkjd0JCCnpZRG4qNE01eiEtaztZeVY5dXZaMjVgcnE7LVVQXyhEdUltVXJZT1NWVXNBYHZ4
LVBsV00rZDQ3TCE1KEBCXnlvTgp6Z3JIUGBCYEQ3UHg0eUdWcFRAaz5yPiYkMjk3TjQ1Y3RRdVpr
TzhXYURBdDIoZyM7RmQxViNrS1kzSU5BS0BJKWsKejFkdnJAVUVIQHdYZTQrUTFqPllmR3p1MWNP
XzA+OGM/IVNVREFAeEolMEMkdU9qZVExdzg2YldFNmlBMUdrYSQzCnpwPnR0IylKYXgkM2JfNURm
bV9uTio4WlUpazRWd2xLaEY3SVFFTnNIYlQod243UG98NSYtSU5waExkKnhPeHVpJgp6S1BXV1F0
SWZfZypGeDllK3g3TUAqODwlP1VrITgqaVVBIWx8S3NvY15MTWc2SDZOVisySHY2Vkt8IXF1JE0y
X2gKenFsb2JFemcxWm9sLSQ3VWZEUFdrJlZRe00jcWpibytwe1IlRjUoO2JtQWdLZmtDYzZFKDlA
QmZgSlpibkJeMDswCnpHUmxKT0hRWm1KMnRIVS12TD5id2o5aTY9dzVCUkthKWV8d1g3V0JaI058
I0VfYWtmXmsxZTlEMHVtIVI/Q1dpZAp6OUR8RStwLUJxNlAyclhqYD5CMl9RKFY+Uklybjt9YWVr
bDZNaTNJenkwT1laYXVfYClfPlpAQ1N3S20kQW5AIUwKekxKTUZ8KXgzZkNZfEtTejdPZSNlIzkp
dytpVWpWdyFCMG5HKEp9QHlCMzMzdVVoUmBAQEZhc0V3NWE0RD9JTX5fCnpXbn1NSypKVnk5IS1A
NyMwZnlUT1c+OF4mTWt+fUM1bHtESFBDJlQyZ2NwcytxQlhlcWglcVYpOCQkXnc4bF5PUAp6UUE4
MXtvezJGdkBrbUpWSDZzS34+XzQ+JjklS1VTTFZAREtfPEdlNm0hVEJlenA2eUdIKD9ybjJeTH1y
Sz9QWnsKenN5UTY8eWUzPGFHclJfXyl4eXxFQEI/TnVMeSZuUz1xKHJuT1VlcVlBPGBMTkI/e0Y+
OzduKjdeZUVRX3NBej49Cno8MGt8Wjx2RDh8MWBoPHVRa0xTOVJsTWNmNiNKfHhZfGxRYiNoR3dK
YnVyYCRjcXdnNV95bUA2RVM2YCVmIXViMQp6QGEldCpgKXx1O3hFfUl2LU94Wl9hUGNFN1NhJTlq
ITNRRUl3WEt6RCY2KE9IMUBWQG9BJHZ8fkNyU1N0R158KWIKekxUblcwPE59UWslckt7eks+SUt1
bzxmVms0c0VIeFAlMnZtVUo+WU10MEllVitIa2NAZH1XSTtMXz9NVkEmfHdTCnpeUChreF8rY0ho
M1lNfFJmU15jfnZgOEI8V0dyZjMxUHYhTlRETjYzb2NPdnRUc1B2c2w5YlhjOzFidVA0TXdARQp6
SFlaZ0VnYk0mNTkoRG8qVXwzSHtPNSs4fFctUyM1NTxAdT52dFNQU2d0aUV4WWBSM0U9fExXRmdJ
ODlyVFRaT2EKelk7PEBTME1vUUFQRXJUWT1DUz9ec1plQGhmR2JhT2dVeU05RCshJm5xeVh6ZXM7
eGtua2c1JD1yPTREa1ZncGtjCnotWGN7cHphMSVjeVJ5NThSJjd8eUxTKWx8cCY+c3VfOyZlJWw3
MykhcD5YZSNfKUlqLUhOeylkc3dPVjdNWUwrYwp6KDVTP3VyQU00TSprKDdSKVNgdkFpWGx5U1l+
fGs3Xy07UH1mUHtKdyE3ZGM8N3xzJERQPX5SZzBYVHBWNjtNVUUKenw0UUcwWVBTWmVQNFY3VW5Z
QGxrSFFZUE5lXiRZRk1ZUFo9bGhoU0ZfOUhOfCpoMCtjJDFfZkZISD1lcyRrb0xMCnozNkhWPW9Z
MGo/S344fGpgUUtDPDYzYzlRV2I4RlAyQUx1LXIjOGZTaGIpJDFOdWxLRVcyKk1MKiNxbi1sOUM+
Qgp6Kil0MHwrQTQje3ZQYiRsNzV0Pjk0THxCKGJtU2A+JHlpbHEyU249NnZhMVk3M1ZlaiE7fGxJ
JXZFVzhGKSs5VEcKek5FMGkjWTR7eTJ4RF9zUEVPPkBVWCo2N2wmbEdMYmlvaz1PYD49N3IwMiYj
QDRLQnFhWWgybm16bShjO2M7bjxVCnpFPT4lVjstOHBwZ0ctfWhhY1RQSXhITjhYc2o/fmN4Qk90
PFQ5JTh5RitwI0hPSm17RXhXPVdYb3Y0fGBhQXtCeQp6IWEqUVF4T0J4WlV3I1BBKDd6WClBKDBY
TENANzI4NDluTzxDZzJGcXE8KT8zcXRLcE9FQyhIK1gtaUk3aH4rZD4KenJIbWUzYEp6Pks8P1ck
Yj9BT093Y2pQfXk4PHdkb0xBMWp4JTVyK1JISmhsKU5ER3BQdksmc2JSYXNBJjk4c3FACnpfS3Yy
d0l0QllqPHVvMUdkc3BsfVlgZD83VTdmUyY7PWZFNHJzPTwwTChmOyVMYlhldk9ZbSFwaz18NHlJ
KllFTQp6SGRMcF9iZy0hQ1poQCRBUUYxaG9LaCRsKHo3WE82dVY5UkUoV1FkWDBgNzhTRWg8an5V
UkZaRTJyZGZ0dElUajMKejRfKFFOKTFpUyFEXkN2RVFmYmw9JGRINTUybVlsQ00pMVRoKCt8VnZY
Nl8wOGxZNF42NzQmK0dvPntYI3N+RUFQCnorQjI7a1k0bFVpSCV4SS1lSDRwfDNsKmNHLWtFMntj
eEVLPDVgYkNWQUZfJihVXm9RXlRnNkM7WCZ0a1cxeWd3QAp6PXVrTj5jO0BvTTFiVkE3cigrNHEz
PW8rbUR9VFh5PT1kJkZqQ09uZGo2dCY/a1ZaUX1GMTJUN157dyQwSXJUTVIKekBmeDFWUG1lZCtm
NmJ8alNYWU1wKD4mQnZVXnh0IXgtVUhNMCtxPXNZe01mQ0ZNI1dkcit7Kzc2WFY3Y2dGaT5YCno2
S2pgX2dmfUJSKE5AM3tGfjNrMUxMKEEyUXkxaHIweWU/enBgcyoxKSlnZ3R6aWRVQl5aMXl3PDNm
M3Q9WVI5SAp6Zzk4XjA/MiMqfGc9Y0J0R2NndlZQd2M1NSpMXldPQztgUypibi16PSFlWCs1RllI
IzdNZVNJd1p0YT5fSDNSdlMKelBOVmhMQFQ/KmFiNHhAazBAKzB+dXt1SSNPYnhzd2JUeSFnTTct
LTAjUm5jYUBDV2QqTFBqO2JWMCVHUXVHMmJ0CnpwMjt2QytmYFV1UURPKUIpYD1ZJDBLJH5yZ1RR
Zy1UQ2FOT2ZtUiFlZ3ZrcUcmS2g1KWh3eD9BO0xBZilrJDNFSQp6anYtQVJMP3A4cjRRVSFvMyhk
Zj9XaVUqY0ZvWVI8UE9gfE9ZNnpqdXpOODkwRHAzdWpEaiYyWUFiWUpOZ1lYcSoKejZaQ1JiN0Vv
dT9CaEEhSHdQODhLYT49MT0zM1ZGb0lfODNecWFYeXFKSn41SlJGQmpJKT84RWY2NGFedDghMEkr
CnpoTjMtQ2lCNUdoQmtNVjgpWStGTkhRTzEyZDtQRlRsIzg9ZyRRZ0JxYmNRKlA3cSpeWl5ARHwp
ZWQtN1IrN3wkSQp6aHg/X0FhOzRgI0AwO3BieU50TH5ebzNqJCYqb3g5MW9oTSVhUmFhd2ZyNnVP
bz5yMjQ5Y0M3WG92TWN8bnVZezgKekh7VX0/JSRGQUpgc3R1cXo2QyNkNjUxNFhqdDNfIUNRbDBw
N0JqMCY5UnZePlM5TmlRQUdKZWFFdDgjOWI7S3pQCnpJc2dNSjFNcS0pMHZybEVyXmkhd3h0Z3ZR
dTB3LUlsZ3cocFcpZjtXdikxX31jeEleZUxoUFZ9cUYwY3R5cmI+SQp6JlZoQSErajJmWW05PXhg
JlMlQmxWd1QzVzwkJiRSMFpBdyNXVEMqRCojd3hHNUQ8SnlOdF8yPGl9Xi1qU3J4NDsKendKalRT
ajQtRHJfUjhfckVLWCNpWH0jPH50N3hxMSE4SCFYKXErTigwfGhqTDY/IV54eFdLYnZXKX4mVmgo
THZfCnpuTjF5WUw4TDgwKjRaTm82P3JEMiNwQGM0JVcwbFFGM2IjVFJCdHU0bjF9aEFBdSQrajNP
ek5ZZmFGVjZvO1oqPQp6cU5ZbE5tdClJM3htbz4/cClxb344QmR4QSZ+ZG9WMUpIKD8oTDlnbm4j
VyswX3w7NT8xbnFqUiEofD5yREQkTUkKekNEOXpOXjY7MzE1RUskN0lKPHU0bmtARHdFYnczckVn
RHI0bztuUnxmKzA0MjEpJEhveFRCUz9VUyR4Z3NrbmFQCnpUb1c2VzEzPUFjSyN0Jj5JZFVaOGFL
MEQ+LSZ6ZUpKdDxhJk8+aCRJNDhPbi0hOz1QVTgjV0o4cWhzcWolRnNnKAp6UWMwKFc+YmxoR0l5
eE9rPnBFLXJASkx8Pjk0VHhDOUZxVlhaTnF5JmJ4e3w0SEI3M15jKmlhYjRea29QQXU5JXcKekY1
JHVTMnA7Nl5LTlQlPUpqZXxKNTJ9R2hNbHc3fHU1SXcodlEjWXIwJWp6cGJ2QmpgWlBUSH03OTI/
Ums+K2FmCno7NmtOVl9pMUxjNyM8OFY1OXxnIW44Qjs2aCNDXyZHNFJOZTA0PFE7UGdVQCVEe0t5
aEorNVdgbTleNUA4eUpCUQp6TEplak4/clZAQEs2fUlNVStmaC1kelZ3cnNsSVBgQyQofWtWTDVR
MEsmPGh7aUlUa1oyUW5RYmtORG84P2YyTDYKemF8OVBUYVdzZk8hRyVhTWhEKTViOXdqNFNCaFVa
WC11ejU/eHI8flBoZFNgfVhxVll6fEY/UHJHbSNtR213SmxtCnpOI3s1c0IhX3d7XjxNPDhgM0Z3
VDt6KUttcjctYVdgKDIrLSUwemI7RXFtIU1tXkF1UDhEPC12NUMkZExNbS12Pwp6c1JoR140NjRu
VXVxbmRrZUFyd0ZuflB6eTVqSWJSJX0ydUtxbWNPa0FzTC1VTUR9cXhxfjtWMFg/LWNUWWlZUTQK
emdnc2pMZEgjPWpGRncrSGopPiZvZnhWVEFTWlIpQCUyNyhqNX1aPDRCMUkmLWd1fVZpVmd6NTwk
UmZKdisrMmJUCnpSViRySV5ebX5vKkZeRytPYGNnR0khSTAtI09TdDE+cF5+OzE0MmxJPzE4flNu
YzVxS1cqMio+Zi1Lb3Y1OGBDKwp6T3BxdmgjaWR3NlckKFBicV5VZ2AoLUpMdjdjYSQ8RV8pbDdW
aE5iTkNvYVgzRj8lMW02aWR3UEBuWSZzKChvZ1IKekRebXJqIzxmJSU7IVdzYExpUlJELUFHPX5o
Pmc9YGEzZGxLM3c9YWQ9YzA/QmJsQVQza3wmKWNFJlZNXzYmNmhECnoxKURqe1AtYClwZUNaJEJF
OHlKOTlNU0hIJG1MKFJjU2JvdVRobWsrVWEhbzUmKDZvWihtVE08XjcoTlRqYFAzUQp6ZlZUN0JV
Ji1URkd2e0FoJHM7eGctOF9uVEVZezZlQmo7U3EtfWw9NXF8U2RnVD4xZk54dk5KZGojbz9iX19m
c2kKemBCI2BLeX1ObTU2dXFrNTU0IUx6TVlRfUdNWkNLRjF4NH5rQTVXeGpAWkNoI2RAfDloem17
ayhla2pwZHs2PURCCno+Qz1YZFp2QUNNelZ1Tjxafmk/KmVgKS1zKXJGVigqWEV4STQzXiZES1hL
ZXcxck49PjA2NGskM0Jzd3h1TkY+Ywp6IV9rV2A/IUJjb3l0I1I2PWs4bmk7XjV4cW8lUUJ9ZnJz
RGglWSNRJl8wN2lnYFApMGdUaVpLKHFldGgqcFAkXkcKemo/TmUoYzcxTyYrSXF8YGh0RVdZbGhP
MlRNP1gzXmR5Kk9OUDVFZUheTGY1SCo/d1g4X3tJbHx7P2Uoa0pBRDQ3CnpKOWwwbGUoMXYrKW1v
cm49Y1ZiO21PTGxIPiFYcXZaZn1weVl5SSR6aTROYmNZZGJJUylkYmh5cD0md18qV2NORQp6eUsm
KG0mV0YhOT5Qd15OLV8/QlpAJFReVCNDc00kQDM8SmcoUmdxMyhaPjZsdVFBQGdAY3FRYigmclA4
JDJUYFYKSjVaYD9LZSpzODFUakJyIQoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0
IGEvSlNUZXN0cy93YXNtL2Z1bmN0aW9uLXRlc3RzL3N0YWNrLXRyYWNlLmpzIGIvSlNUZXN0cy93
YXNtL2Z1bmN0aW9uLXRlc3RzL3N0YWNrLXRyYWNlLmpzCmluZGV4IGZhNmU3ZWQuLmQ3MGIzZWEg
MTAwNjQ0Ci0tLSBhL0pTVGVzdHMvd2FzbS9mdW5jdGlvbi10ZXN0cy9zdGFjay10cmFjZS5qcwor
KysgYi9KU1Rlc3RzL3dhc20vZnVuY3Rpb24tdGVzdHMvc3RhY2stdHJhY2UuanMKQEAgLTQ3LDEw
ICs0NywxMCBAQCBmb3IgKGxldCBpID0gMDsgaSA8IDEwMDAwOyArK2kpIHsKICAgICBzdGFja3Ry
YWNlID0gc3RhY2t0cmFjZS5zcGxpdCgiXG4iKTsKICAgICBhc3NlcnQoc3RhY2t0cmFjZVswXS5p
bmRleE9mKCJpbXAiKSAhPT0gLTEpOyAvLyB0aGUgYXJyb3cgZnVuY3Rpb24gaW1wb3J0IG5hbWVk
ICJpbXAiLgogICAgIGFzc2VydChzdGFja3RyYWNlWzFdID09PSAid2FzbSBmdW5jdGlvbkBbd2Fz
bSBjb2RlXSIpOyAvLyB0aGUgd2FzbS0+anMgc3R1YgotICAgIGFzc2VydChzdGFja3RyYWNlWzJd
ID09PSAid2FzbSBmdW5jdGlvbiBpbmRleDogNEBbd2FzbSBjb2RlXSIpOwotICAgIGFzc2VydChz
dGFja3RyYWNlWzNdID09PSAid2FzbSBmdW5jdGlvbiBpbmRleDogMkBbd2FzbSBjb2RlXSIpOwot
ICAgIGFzc2VydChzdGFja3RyYWNlWzRdID09PSAid2FzbSBmdW5jdGlvbiBpbmRleDogM0Bbd2Fz
bSBjb2RlXSIpOwotICAgIGFzc2VydChzdGFja3RyYWNlWzVdID09PSAid2FzbSBmdW5jdGlvbiBp
bmRleDogMUBbd2FzbSBjb2RlXSIpOworICAgIGFzc2VydChzdGFja3RyYWNlWzJdID09PSAid2Fz
bSBmdW5jdGlvbjogNEBbd2FzbSBjb2RlXSIpOworICAgIGFzc2VydChzdGFja3RyYWNlWzNdID09
PSAid2FzbSBmdW5jdGlvbjogMkBbd2FzbSBjb2RlXSIpOworICAgIGFzc2VydChzdGFja3RyYWNl
WzRdID09PSAid2FzbSBmdW5jdGlvbjogM0Bbd2FzbSBjb2RlXSIpOworICAgIGFzc2VydChzdGFj
a3RyYWNlWzVdID09PSAid2FzbSBmdW5jdGlvbjogMUBbd2FzbSBjb2RlXSIpOwogICAgIGFzc2Vy
dChzdGFja3RyYWNlWzZdID09PSAid2FzbSBmdW5jdGlvbkBbd2FzbSBjb2RlXSIpOyAvLyB3YXNt
IGVudHJ5CiAKICAgICBzdGFja3RyYWNlID0gbnVsbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxp
c3RzLnR4dAppbmRleCA0MmQwYzRhLi5jMzIxZTQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtl
TGlzdHMudHh0CkBAIC05NTEsMTIgKzk1MSwxNCBAQCBzZXQoSmF2YVNjcmlwdENvcmVfU09VUkNF
UwogICAgIHdhc20vV2FzbUNvbnRleHQuY3BwCiAgICAgd2FzbS9XYXNtRmF1bHRTaWduYWxIYW5k
bGVyLmNwcAogICAgIHdhc20vV2FzbUZvcm1hdC5jcHAKKyAgICB3YXNtL1dhc21JbmRleE9yTmFt
ZS5jcHAKICAgICB3YXNtL1dhc21NYWNoaW5lVGhyZWFkcy5jcHAKICAgICB3YXNtL1dhc21NZW1v
cnkuY3BwCiAgICAgd2FzbS9XYXNtTWVtb3J5SW5mb3JtYXRpb24uY3BwCiAgICAgd2FzbS9XYXNt
TW9kdWxlLmNwcAogICAgIHdhc20vV2FzbU1vZHVsZUluZm9ybWF0aW9uLmNwcAogICAgIHdhc20v
V2FzbU1vZHVsZVBhcnNlci5jcHAKKyAgICB3YXNtL1dhc21OYW1lU2VjdGlvblBhcnNlci5jcHAK
ICAgICB3YXNtL1dhc21PTUdQbGFuLmNwcAogICAgIHdhc20vV2FzbU9wY29kZU9yaWdpbi5jcHAK
ICAgICB3YXNtL1dhc21QYWdlQ291bnQuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA1
NDc4NzFhLi42MjQxMGIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2NyBA
QAorMjAxNy0wNS0wOCAgSkYgQmFzdGllbiAgPGpmYmFzdGllbkBhcHBsZS5jb20+CisKKyAgICAg
ICAgV2ViQXNzZW1ibHk6IHN1cHBvcnQgbmFtZSBzZWN0aW9uCisKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MTI2MworCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBuYW1lIHNlY3Rpb24gaXMgYW4gb3B0
aW9uYWwgY3VzdG9tIHNlY3Rpb24gaW4gdGhlIFdlYkFzc2VtYmx5CisgICAgICAgIHNwZWMuIEF0
IGxlYXN0IHdoZW4gZGVidWdnaW5nLCBkZXZlbG9wZXJzIGV4cGVjdCB0byBiZSBhYmxlIHRvIHVz
ZQorICAgICAgICB0aGlzIHNlY3Rpb24gdG8gb2J0YWluIGludGVsbGlnaWJsZSBzdGFjayB0cmFj
ZXMsIG90aGVyd2lzZSB3ZQorICAgICAgICBqdXN0IG51bWJlciB0aGUgd2FzbSBmdW5jdGlvbnMg
d2hpY2ggaXMgc29tZXdoYXQgcGFpbmZ1bC4KKworICAgICAgICBUaGlzIHBhdGNoIHBhcnNlcyB0
aGlzIHNlY3Rpb24sIGRyb3BwaW5nIGl0cyBjb250ZW50IGVhZ2VybHkgb24KKyAgICAgICAgZXJy
b3IsIGFuZCBpZiB0aGVyZSBpcyBhIG5hbWUgc2VjdGlvbiB0aGVuIGJhY2t0cmFjZXMgdXNlIHRo
ZWlyCisgICAgICAgIHZhbHVlIGluc3RlYWQgb2YgbnVtYmVycy4gT3RoZXJ3aXNlIHdlIHN0aWNr
IHRvIG51bWJlcnMgYXMgYmVmb3JlLgorCisgICAgICAgIE5vdGUgdGhhdCB0aGUgZm9ybWF0IG9m
IG5hbWUgc2VjdGlvbnMgY2hhbmdlZCBpbiBtaWQtRmVicnVhcnk6CisgICAgICAgICAgaHR0cHM6
Ly9naXRodWIuY29tL1dlYkFzc2VtYmx5L2Rlc2lnbi9wdWxsLzk4NAorICAgICAgICBBbmQgYmlu
YXJ5ZW4gd2FzIG9ubHkgdXBkYXRlZCBpbiBlYXJseSBNYXJjaDoKKyAgICAgICAgICBodHRwczov
L2dpdGh1Yi5jb20vV2ViQXNzZW1ibHkvYmluYXJ5ZW4vcHVsbC85MzMKKworICAgICAgICAqIENN
YWtlTGlzdHMudHh0OgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6CisgICAgICAgICogaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwOgorICAgICAg
ICAoSlNDOjpHZXRTdGFja1RyYWNlRnVuY3Rvcjo6b3BlcmF0b3IoKSk6CisgICAgICAgICogaW50
ZXJwcmV0ZXIvU3RhY2tWaXNpdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6U3RhY2tWaXNpdG9yOjpy
ZWFkTm9uSW5saW5lZEZyYW1lKToKKyAgICAgICAgKEpTQzo6U3RhY2tWaXNpdG9yOjpGcmFtZTo6
ZnVuY3Rpb25OYW1lKToKKyAgICAgICAgKiBpbnRlcnByZXRlci9TdGFja1Zpc2l0b3IuaDoKKyAg
ICAgICAgKEpTQzo6U3RhY2tWaXNpdG9yOjpGcmFtZTo6d2FzbUZ1bmN0aW9uSW5kZXhPck5hbWUp
OgorICAgICAgICAqIHJ1bnRpbWUvU3RhY2tGcmFtZS5jcHA6CisgICAgICAgIChKU0M6OlN0YWNr
RnJhbWU6OmZ1bmN0aW9uTmFtZSk6CisgICAgICAgICogcnVudGltZS9TdGFja0ZyYW1lLmg6Cisg
ICAgICAgIChKU0M6OlN0YWNrRnJhbWU6OlN0YWNrRnJhbWUpOgorICAgICAgICAoSlNDOjpTdGFj
a0ZyYW1lOjp3YXNtKToKKyAgICAgICAgKiB3YXNtL1dhc21CQlFQbGFuSW5saW5lcy5oOgorICAg
ICAgICAoSlNDOjpXYXNtOjpCQlFQbGFuOjppbml0aWFsaXplQ2FsbGVlcyk6CisgICAgICAgICog
d2FzbS9XYXNtQ2FsbGVlLmNwcDoKKyAgICAgICAgKEpTQzo6V2FzbTo6Q2FsbGVlOjpDYWxsZWUp
OgorICAgICAgICAqIHdhc20vV2FzbUNhbGxlZS5oOgorICAgICAgICAoSlNDOjpXYXNtOjpDYWxs
ZWU6OmNyZWF0ZSk6CisgICAgICAgIChKU0M6Oldhc206OkNhbGxlZTo6aW5kZXhPck5hbWUpOgor
ICAgICAgICAqIHdhc20vV2FzbUZvcm1hdC5jcHA6CisgICAgICAgIChKU0M6Oldhc206Om1ha2VT
dHJpbmcpOgorICAgICAgICAqIHdhc20vV2FzbUZvcm1hdC5oOgorICAgICAgICAoSlNDOjpXYXNt
Ojppc1ZhbGlkRXh0ZXJuYWxLaW5kKToKKyAgICAgICAgKEpTQzo6V2FzbTo6aXNWYWxpZE5hbWVU
eXBlKToKKyAgICAgICAgKEpTQzo6V2FzbTo6TmFtZVNlY3Rpb246OmdldCk6CisgICAgICAgICog
d2FzbS9XYXNtSW5kZXhPck5hbWUuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9XYXNtQ2FsbGVlLmNwcC4KKyAgICAgICAgKEpTQzo6V2FzbTo6SW5kZXhPck5hbWU6
OkluZGV4T3JOYW1lKToKKyAgICAgICAgKEpTQzo6V2FzbTo6bWFrZVN0cmluZyk6CisgICAgICAg
ICogd2FzbS9XYXNtSW5kZXhPck5hbWUuaDogQ29waWVkIGZyb20gU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vV2FzbUZvcm1hdC5jcHAuCisgICAgICAgICogd2FzbS9XYXNtTW9kdWxlSW5mb3Jt
YXRpb24uaDoKKyAgICAgICAgKiB3YXNtL1dhc21Nb2R1bGVQYXJzZXIuY3BwOgorICAgICAgICAq
IHdhc20vV2FzbU5hbWUuaDogQ29waWVkIGZyb20gU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
V2FzbUNhbGxlZS5jcHAuCisgICAgICAgICogd2FzbS9XYXNtTmFtZVNlY3Rpb25QYXJzZXIuY3Bw
OiBBZGRlZC4KKyAgICAgICAgKiB3YXNtL1dhc21OYW1lU2VjdGlvblBhcnNlci5oOiBDb3BpZWQg
ZnJvbSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQ2FsbGVlLmNwcC4KKyAgICAgICAg
KEpTQzo6V2FzbTo6TmFtZVNlY3Rpb25QYXJzZXI6Ok5hbWVTZWN0aW9uUGFyc2VyKToKKyAgICAg
ICAgKiB3YXNtL1dhc21PTUdQbGFuLmNwcDoKKyAgICAgICAgKEpTQzo6V2FzbTo6T01HUGxhbjo6
d29yayk6CisgICAgICAgICogd2FzbS9XYXNtUGFyc2VyLmg6CisgICAgICAgIChKU0M6Oldhc206
OlBhcnNlcjxTdWNjZXNzVHlwZT46OmNvbnN1bWVVVEY4U3RyaW5nKToKKwogMjAxNy0wNS0wNiAg
QmlsbCBNaW5nICA8bWJiaWxsQGdtYWlsLmNvbT4KIAogICAgICAgICBGaXggMzJiaXQgV2luZG93
cyBidWlsZCBieSBnaXZpbmcgY29ycmVjdCBwYXJhbWV0ZXJzIHRvIE1BU00KZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKaW5kZXggNTIyMDE5NC4uYzExNDJkMyAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKQEAgLTIxNDIsMTMgKzIxNDIsMTggQEAKIAkJQUQ0OTM3RDQxREREMjdERTAw
NzdDODA3IC8qIFdlYkFzc2VtYmx5RnVuY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFENDkzN0NBMURERDI3MzQwMDc3QzgwNyAvKiBXZWJBc3Nl
bWJseUZ1bmN0aW9uLmggKi87IH07CiAJCUFENEIxREY5MURGMjQ0RTIwMDcxQUUzMiAvKiBXYXNt
QmluZGluZy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBBRDRCMURGNzFERjI0NEQ3MDA3MUFFMzIgLyogV2FzbUJpbmRpbmcuY3BwICovOyB9OwogCQlB
RDRCMURGQTFERjI0NEUyMDA3MUFFMzIgLyogV2FzbUJpbmRpbmcuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFENEIxREY4MURGMjQ0RDcwMDcxQUUzMiAv
KiBXYXNtQmluZGluZy5oICovOyB9OworCQlBRDVCNDE2RjFFQkFGQjc3MDA4RUZBNDMgLyogV2Fz
bU5hbWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFE
NUI0MTZFMUVCQUZCNjUwMDhFRkE0MyAvKiBXYXNtTmFtZS5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUFENzQzOEMwMUUwNDU3QTQwMEZEMEMyQSAv
KiBXYXNtU2lnbmF0dXJlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBRDc0MzhCRjFFMDQ1NzkyMDBGRDBDMkEgLyogV2FzbVNpZ25hdHVyZS5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUFENzQzOEMxMUUw
NDU3QUEwMEZEMEMyQSAvKiBXYXNtU2lnbmF0dXJlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFENzQzOEJFMUUwNDU3OTIwMEZEMEMyQSAvKiBXYXNt
U2lnbmF0dXJlLmNwcCAqLzsgfTsKIAkJQUQ4NkE5M0UxQUE0RDg4RDAwMkZFNzdGIC8qIFdlYWtH
Q01hcElubGluZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEFEODZBOTNEMUFBNEQ4N0MwMDJGRTc3RiAvKiBXZWFrR0NNYXBJbmxpbmVzLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJQUQ4RkYzOTcxRUI1
QkRBODAwODdGRjgyIC8qIFdhc21JbmRleE9yTmFtZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBRDhGRjM5NjFFQjVCRDg1MDA4N0ZGODIgLyogV2Fz
bUluZGV4T3JOYW1lLmNwcCAqLzsgfTsKKwkJQUQ4RkYzOTgxRUI1QkRCMjAwODdGRjgyIC8qIFdh
c21JbmRleE9yTmFtZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQUQ4RkYzOTUxRUI1QkQ4NTAwODdGRjgyIC8qIFdhc21JbmRleE9yTmFtZS5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUFEOUU4NTJGMUU4
QTBDN0MwMDhERTM5RSAvKiBKU1dlYkFzc2VtYmx5Q29kZUJsb2NrLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBRDlFODUyRTFFOEEwQzZFMDA4REUzOUUg
LyogSlNXZWJBc3NlbWJseUNvZGVCbG9jay5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCUFEQjZGNjdEMUUxNUQ3NjAwMDgyRjM4NCAvKiBXYXNtUGFn
ZUNvdW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEFEQjZGNjdDMUUxNUQ3NTAwMDgyRjM4NCAvKiBXYXNtUGFnZUNvdW50LmNwcCAqLzsgfTsKIAkJ
QURCQzU0RDQxREY4RUEyQjAwNUJGNzM4IC8qIFdlYkFzc2VtYmx5VG9KU0NhbGxlZS5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBREJDNTREMjFERjhF
QTAwMDA1QkY3MzggLyogV2ViQXNzZW1ibHlUb0pTQ2FsbGVlLmNwcCAqLzsgfTsKIAkJQURCQzU0
RDUxREY4RUEyQjAwNUJGNzM4IC8qIFdlYkFzc2VtYmx5VG9KU0NhbGxlZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQURCQzU0RDMxREY4RUEwMDAwNUJG
NzM4IC8qIFdlYkFzc2VtYmx5VG9KU0NhbGxlZS5oICovOyB9OworCQlBREQ4RkE0NTFFQjMwNzhF
MDBERjU0MkYgLyogV2FzbU5hbWVTZWN0aW9uUGFyc2VyLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFERDhGQTQ0MUVCMzA3NzEwMERGNTQyRiAvKiBX
YXNtTmFtZVNlY3Rpb25QYXJzZXIuY3BwICovOyB9OworCQlBREQ4RkE0NjFFQjMwNzk3MDBERjU0
MkYgLyogV2FzbU5hbWVTZWN0aW9uUGFyc2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBREQ4RkE0MzFFQjMwNzcxMDBERjU0MkYgLyogV2FzbU5hbWVT
ZWN0aW9uUGFyc2VyLmggKi87IH07CiAJCUFEREIxRjYzMThENzdEQkUwMDlCNThBOCAvKiBPcGFx
dWVSb290U2V0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBBRERCMUY2MjE4RDc3REI3MDA5QjU4QTggLyogT3BhcXVlUm9vdFNldC5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUFERTM5RkZGMTZERDE0NEIw
MDAzQ0Q0QSAvKiBQcm9wZXJ0eVRhYmxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEFEMUNGMDY4MTZEQ0FCMkQwMEI5NzEyMyAvKiBQcm9wZXJ0eVRh
YmxlLmNwcCAqLzsgfTsKIAkJQURFODAyOTgxRTA4RjFERTAwNThERTc4IC8qIEpTV2ViQXNzZW1i
bHlMaW5rRXJyb3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQURFODAyOTMxRTA4RjFDOTAwNThERTc4IC8qIEpTV2ViQXNzZW1ibHlMaW5rRXJyb3Iu
Y3BwICovOyB9OwpAQCAtNDc2NiwxMyArNDc3MSwxOCBAQAogCQlBRDQ5MzdDQTFEREQyNzM0MDA3
N0M4MDcgLyogV2ViQXNzZW1ibHlGdW5jdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IG5hbWUgPSBXZWJBc3NlbWJseUZ1bmN0aW9uLmg7IHBhdGggPSBqcy9XZWJBc3NlbWJseUZ1bmN0
aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUFENEIxREY3MURGMjQ0RDcwMDcx
QUUzMiAvKiBXYXNtQmluZGluZy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBXYXNtQmluZGluZy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUFENEIx
REY4MURGMjQ0RDcwMDcxQUUzMiAvKiBXYXNtQmluZGluZy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBXYXNtQmluZGluZy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlBRDVCNDE2RTFFQkFGQjY1MDA4RUZBNDMgLyogV2FzbU5hbWUuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gV2FzbU5hbWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQUQ3NDM4QkUxRTA0NTc5MjAwRkQwQzJBIC8qIFdhc21TaWduYXR1cmUuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2FzbVNpZ25hdHVyZS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUFENzQzOEJGMUUwNDU3OTIwMEZEMEMyQSAvKiBXYXNtU2ln
bmF0dXJlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdhc21TaWduYXR1cmUu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQUQ4NkE5M0QxQUE0RDg3QzAwMkZFNzdG
IC8qIFdlYWtHQ01hcElubGluZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
V2Vha0dDTWFwSW5saW5lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBRDhGRjM5
NTFFQjVCRDg1MDA4N0ZGODIgLyogV2FzbUluZGV4T3JOYW1lLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFdhc21JbmRleE9yTmFtZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlBRDhGRjM5NjFFQjVCRDg1MDA4N0ZGODIgLyogV2FzbUluZGV4T3JOYW1lLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdhc21JbmRleE9yTmFtZS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUFEOUU4NTJFMUU4QTBDNkUwMDhERTM5RSAv
KiBKU1dlYkFzc2VtYmx5Q29kZUJsb2NrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFt
ZSA9IEpTV2ViQXNzZW1ibHlDb2RlQmxvY2suaDsgcGF0aCA9IGpzL0pTV2ViQXNzZW1ibHlDb2Rl
QmxvY2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQURCNkY2N0MxRTE1RDc1MDAw
ODJGMzg0IC8qIFdhc21QYWdlQ291bnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gV2FzbVBhZ2VDb3VudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUFEQkM1NEQyMURGOEVBMDAwMDVCRjczOCAvKiBXZWJBc3NlbWJseVRvSlNDYWxsZWUuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gV2ViQXNzZW1ibHlUb0pTQ2FsbGVl
LmNwcDsgcGF0aCA9IGpzL1dlYkFzc2VtYmx5VG9KU0NhbGxlZS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUFEQkM1NEQzMURGOEVBMDAwMDVCRjczOCAvKiBXZWJBc3NlbWJseVRv
SlNDYWxsZWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV2ViQXNzZW1ibHlU
b0pTQ2FsbGVlLmg7IHBhdGggPSBqcy9XZWJBc3NlbWJseVRvSlNDYWxsZWUuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQUREOEZBNDMxRUIzMDc3MTAwREY1NDJGIC8qIFdhc21OYW1l
U2VjdGlvblBhcnNlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXYXNtTmFt
ZVNlY3Rpb25QYXJzZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQUREOEZBNDQx
RUIzMDc3MTAwREY1NDJGIC8qIFdhc21OYW1lU2VjdGlvblBhcnNlci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXYXNtTmFtZVNlY3Rpb25QYXJzZXIuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBRERCMUY2MjE4RDc3REI3MDA5QjU4QTggLyogT3Bh
cXVlUm9vdFNldC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBPcGFxdWVSb290
U2V0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUFERTgwMjkzMUUwOEYxQzkwMDU4
REU3OCAvKiBKU1dlYkFzc2VtYmx5TGlua0Vycm9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgbmFtZSA9IEpTV2ViQXNzZW1ibHlMaW5rRXJyb3IuY3BwOyBwYXRoID0ganMvSlNX
ZWJBc3NlbWJseUxpbmtFcnJvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUFE
RTgwMjk0MUUwOEYxQzkwMDU4REU3OCAvKiBKU1dlYkFzc2VtYmx5TGlua0Vycm9yLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEpTV2ViQXNzZW1ibHlMaW5rRXJyb3IuaDsgcGF0
aCA9IGpzL0pTV2ViQXNzZW1ibHlMaW5rRXJyb3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTY0MDAsMjggKzY0MTAsMzMgQEAKIAkJCQlBRDQxMkIzMTFFN0IyRThBMDA4QUYxNTcg
LyogV2FzbUNvbnRleHQuY3BwICovLAogCQkJCUFENDEyQjMyMUU3QjJFOEEwMDhBRjE1NyAvKiBX
YXNtQ29udGV4dC5oICovLAogCQkJCTc5REFFMjc5MUUwM0M4MjIwMEI1MjZBQSAvKiBXYXNtRXhj
ZXB0aW9uVHlwZS5oICovLAorCQkJCTUzODFCOTM2MUU2MEU5NjYwMDkwRjc5NCAvKiBXYXNtRmF1
bHRTaWduYWxIYW5kbGVyLmNwcCAqLywKKwkJCQk1MzgxQjkzODFFNjBFOTdEMDA5MEY3OTQgLyog
V2FzbUZhdWx0U2lnbmFsSGFuZGxlci5oICovLAogCQkJCUFEMkZDQzMyMURDNDA0NTMwMEIzRTcz
NiAvKiBXYXNtRm9ybWF0LmNwcCAqLywKIAkJCQk3QkM1NDdEMjFCNjk1OTlCMDA5NTlCNTggLyog
V2FzbUZvcm1hdC5oICovLAogCQkJCTUzRjQwRThBMUQ1OTAxQkIwMDk5QTFCNiAvKiBXYXNtRnVu
Y3Rpb25QYXJzZXIuaCAqLywKKwkJCQlBRDhGRjM5NjFFQjVCRDg1MDA4N0ZGODIgLyogV2FzbUlu
ZGV4T3JOYW1lLmNwcCAqLywKKwkJCQlBRDhGRjM5NTFFQjVCRDg1MDA4N0ZGODIgLyogV2FzbUlu
ZGV4T3JOYW1lLmggKi8sCiAJCQkJNTNFOUUwQTkxRUFFODNERTAwRkVFMjUxIC8qIFdhc21NYWNo
aW5lVGhyZWFkcy5jcHAgKi8sCiAJCQkJNTNFOUUwQUExRUFFODNERTAwRkVFMjUxIC8qIFdhc21N
YWNoaW5lVGhyZWFkcy5oICovLAotCQkJCTc5MDA4MTM2MUU5NUE4RUMwMDUyRDdDRCAvKiBXYXNt
TW9kdWxlLmNwcCAqLywKLQkJCQk3OTAwODEzNzFFOTVBOEVDMDA1MkQ3Q0QgLyogV2FzbU1vZHVs
ZS5oICovLAogCQkJCTUzNTU1NzE1MUQ5REZBMzIwMDZENTgzQiAvKiBXYXNtTWVtb3J5LmNwcCAq
LywKIAkJCQk1MzU1NTcxMzFEOUQ5RUE1MDA2RDU4M0IgLyogV2FzbU1lbW9yeS5oICovLAogCQkJ
CTc5Qjc1OTcxMURGQTRDNjAwMDUyMTc0QyAvKiBXYXNtTWVtb3J5SW5mb3JtYXRpb24uY3BwICov
LAogCQkJCTc5Qjc1OTcyMURGQTRDNjAwMDUyMTc0QyAvKiBXYXNtTWVtb3J5SW5mb3JtYXRpb24u
aCAqLywKKwkJCQk3OTAwODEzNjFFOTVBOEVDMDA1MkQ3Q0QgLyogV2FzbU1vZHVsZS5jcHAgKi8s
CisJCQkJNzkwMDgxMzcxRTk1QThFQzAwNTJEN0NEIC8qIFdhc21Nb2R1bGUuaCAqLywKIAkJCQk1
M0U3NzdFMTFFOTJFMjY1MDA3Q0JFQzQgLyogV2FzbU1vZHVsZUluZm9ybWF0aW9uLmNwcCAqLywK
IAkJCQk1M0U3NzdFMjFFOTJFMjY1MDA3Q0JFQzQgLyogV2FzbU1vZHVsZUluZm9ybWF0aW9uLmgg
Ki8sCiAJCQkJNTNGNDBFOTYxRDVBN0JFQzAwOTlBMUI2IC8qIFdhc21Nb2R1bGVQYXJzZXIuY3Bw
ICovLAogCQkJCTUzRjQwRTk0MUQ1QTdBRUYwMDk5QTFCNiAvKiBXYXNtTW9kdWxlUGFyc2VyLmgg
Ki8sCisJCQkJQUQ1QjQxNkUxRUJBRkI2NTAwOEVGQTQzIC8qIFdhc21OYW1lLmggKi8sCisJCQkJ
QUREOEZBNDQxRUIzMDc3MTAwREY1NDJGIC8qIFdhc21OYW1lU2VjdGlvblBhcnNlci5jcHAgKi8s
CisJCQkJQUREOEZBNDMxRUIzMDc3MTAwREY1NDJGIC8qIFdhc21OYW1lU2VjdGlvblBhcnNlci5o
ICovLAogCQkJCTUzMTFCRDQ4MUVBNTgxRTUwMDUyNTI4MSAvKiBXYXNtT01HUGxhbi5jcHAgKi8s
CiAJCQkJNTMxMUJENDkxRUE1ODFFNTAwNTI1MjgxIC8qIFdhc21PTUdQbGFuLmggKi8sCi0JCQkJ
QURCNkY2N0MxRTE1RDc1MDAwODJGMzg0IC8qIFdhc21QYWdlQ291bnQuY3BwICovLAotCQkJCTUz
ODFCOTM2MUU2MEU5NjYwMDkwRjc5NCAvKiBXYXNtRmF1bHRTaWduYWxIYW5kbGVyLmNwcCAqLywK
LQkJCQk1MzgxQjkzODFFNjBFOTdEMDA5MEY3OTQgLyogV2FzbUZhdWx0U2lnbmFsSGFuZGxlci5o
ICovLAogCQkJCTUzQzZGRUYwMUU4QUZFMEMwMEIxODQyNSAvKiBXYXNtT3Bjb2RlT3JpZ2luLmNw
cCAqLywKIAkJCQk1M0M2RkVFRTFFOEFERkE5MDBCMTg0MjUgLyogV2FzbU9wY29kZU9yaWdpbi5o
ICovLAorCQkJCUFEQjZGNjdDMUUxNUQ3NTAwMDgyRjM4NCAvKiBXYXNtUGFnZUNvdW50LmNwcCAq
LywKIAkJCQk3OUI3NTk3MzFERkE0QzYwMDA1MjE3NEMgLyogV2FzbVBhZ2VDb3VudC5oICovLAog
CQkJCTUzRjQwRThDMUQ1OTAxRjIwMDk5QTFCNiAvKiBXYXNtUGFyc2VyLmggKi8sCiAJCQkJNTMx
Mzc0QkUxRDVDRTk1MDAwQUY3QTBCIC8qIFdhc21QbGFuLmNwcCAqLywKQEAgLTgyMDYsNiArODIy
MSw3IEBACiAJCQkJMEY2MTgzMzExQzQ1QkYwNzAwNzI0NTBCIC8qIEFpckxvd2VyTWFjcm9zLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkwRjQwRTRBNzFDNDk3Rjc0MDBBNTc3RkEgLyogQWlyT3Bjb2Rl
LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjQwRTRBODFDNDk3Rjc0MDBBNTc3RkEgLyogQWlyT3Bj
b2RlR2VuZXJhdGVkLmggaW4gSGVhZGVycyAqLywKKwkJCQlBRDhGRjM5ODFFQjVCREIyMDA4N0ZG
ODIgLyogV2FzbUluZGV4T3JOYW1lLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjQwRTRBOTFDNDk3
Rjc0MDBBNTc3RkEgLyogQWlyT3Bjb2RlVXRpbHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQjM4
NzkwMUJGQkM0NEQwMEUzQUIxRSAvKiBBaXJPcHRpbWl6ZUJsb2NrT3JkZXIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTBGOUNBQkM5MURCNTRBN0EwMDA4RTgzQiAvKiBBaXJQYWRJbnRlcmZlcmVuY2Uu
aCBpbiBIZWFkZXJzICovLApAQCAtODMyNCw2ICs4MzQwLDcgQEAKIAkJCQkwRkVDODUyNDFCREFD
REFDMDA4MEZGNzQgLyogQjNPcmlnaW4uaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNEM5MTY2MUMy
OUY0RjIwMDQzNDFBNiAvKiBCM09yaWdpbkR1bXAuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUM4
NTI2MUJEQUNEQUMwMDgwRkY3NCAvKiBCM1BhdGNocG9pbnRTcGVjaWFsLmggaW4gSGVhZGVycyAq
LywKKwkJCQlBREQ4RkE0NjFFQjMwNzk3MDBERjU0MkYgLyogV2FzbU5hbWVTZWN0aW9uUGFyc2Vy
LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkVDODUyODFCREFDREFDMDA4MEZGNzQgLyogQjNQYXRj
aHBvaW50VmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTc5OUVGN0M0MUM1NkVEOTYwMDJCMDUz
NCAvKiBCM1BDVG9PcmlnaW5NYXAuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUM4NTJBMUJEQUNE
QUMwMDgwRkY3NCAvKiBCM1BoYXNlU2NvcGUuaCBpbiBIZWFkZXJzICovLApAQCAtODY0Myw2ICs4
NjYwLDcgQEAKIAkJCQk4NkVDOUREMTEzMjhERjgyMDAyQjJBRDcgLyogREZHUmVnaXN0ZXJCYW5r
LmggaW4gSGVhZGVycyAqLywKIAkJCQk3OUZDOEEwODFFMzJFOUYwMDBEODhGMEUgLyogREZHUmVn
aXN0ZXJlZFN0cnVjdHVyZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzk4MEMxNkQxRTNBOTQwRTAw
QjcxNjE1IC8qIERGR1JlZ2lzdGVyZWRTdHJ1Y3R1cmVTZXQuaCBpbiBIZWFkZXJzICovLAorCQkJ
CUFENUI0MTZGMUVCQUZCNzcwMDhFRkE0MyAvKiBXYXNtTmFtZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMEYyRkNDRkMxOEE2MDA3MDAwMUEyN0Y4IC8qIERGR1NhZmVwb2ludC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQTc3QTQyNDMxN0EwQkJGRDAwQThEQjgxIC8qIERGR1NhZmVUb0V4ZWN1dGUuaCBp
biBIZWFkZXJzICovLAogCQkJCUE3NDEwMTdGMTc5REFGODAwMDJFQjhCQSAvKiBERkdTYW5lU3Ry
aW5nR2V0QnlWYWxTbG93UGF0aEdlbmVyYXRvci5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMDk2OSw2
ICsxMDk4Nyw3IEBACiAJCQkJMEY2QzczNTAxQUM5Rjk5RjAwQkUxNjgyIC8qIFZhcmlhYmxlV3Jp
dGVGaXJlRGV0YWlsLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGRTA1MDJDMUFBOTA5NTYwMEQz
M0IzMyAvKiBWYXJPZmZzZXQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEYyMEMyNTkxQTgwMTNB
QjAwREEzMjI5IC8qIFZpcnR1YWxSZWdpc3Rlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlBRDhG
RjM5NzFFQjVCREE4MDA4N0ZGODIgLyogV2FzbUluZGV4T3JOYW1lLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTBGOTUyQUEyMURGNzg2MEQwMEUwNkZCRCAvKiBWaXNpdFJhY2VLZXkuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJRTE4RTNBNTkwREY5Mjc4QzAwRDkwQjM0IC8qIFZNLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUZFNTkzMkE3MTgzQzVBMjYwMEExRUNDQyAvKiBWTUVudHJ5U2NvcGUuY3Bw
IGluIFNvdXJjZXMgKi8sCkBAIC0xMTAyNSw2ICsxMTA0NCw3IEBACiAJCQkJODY3MDRCODYxMkRC
QTMzNzAwQTlGRTdCIC8qIFlhcnJKSVQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODY3MDRCODkx
MkRCQTMzNzAwQTlGRTdCIC8qIFlhcnJQYXR0ZXJuLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg2
NzA0QjQyMTJEQjhBODEwMEE5RkU3QiAvKiBZYXJyU3ludGF4Q2hlY2tlci5jcHAgaW4gU291cmNl
cyAqLywKKwkJCQlBREQ4RkE0NTFFQjMwNzhFMDBERjU0MkYgLyogV2FzbU5hbWVTZWN0aW9uUGFy
c2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTMyMUQ5RTRDRkI2NzQyM0E5N0YxOTFBNyAvKiBN
b2R1bGVOYW1lc3BhY2VBY2Nlc3NDYXNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1
bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJldGVyLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5jcHAKaW5kZXggODg4MTY2Ny4uN2Y4
ZjQ1NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVy
cHJldGVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJw
cmV0ZXIuY3BwCkBAIC00ODAsOCArNDgwLDcgQEAgcHVibGljOgogCiAgICAgICAgIGlmIChtX3Jl
bWFpbmluZ0NhcGFjaXR5Rm9yRnJhbWVDYXB0dXJlKSB7CiAgICAgICAgICAgICBpZiAodmlzaXRv
ci0+aXNXYXNtRnJhbWUoKSkgewotICAgICAgICAgICAgICAgIHN0ZDo6b3B0aW9uYWw8dW5zaWdu
ZWQ+IHdhc21GdW5jdGlvbkluZGV4ID0gdmlzaXRvci0+d2FzbUZ1bmN0aW9uSW5kZXgoKTsKLSAg
ICAgICAgICAgICAgICBtX3Jlc3VsdHMuYXBwZW5kKFN0YWNrRnJhbWU6Ondhc20od2FzbUZ1bmN0
aW9uSW5kZXggPyAqd2FzbUZ1bmN0aW9uSW5kZXggOiBTdGFja0ZyYW1lOjppbnZhbGlkV2FzbUlu
ZGV4KSk7CisgICAgICAgICAgICAgICAgbV9yZXN1bHRzLmFwcGVuZChTdGFja0ZyYW1lOjp3YXNt
KHZpc2l0b3ItPndhc21GdW5jdGlvbkluZGV4T3JOYW1lKCkpKTsKICAgICAgICAgICAgIH0gZWxz
ZSBpZiAoISF2aXNpdG9yLT5jb2RlQmxvY2soKSAmJiAhdmlzaXRvci0+Y29kZUJsb2NrKCktPnVu
bGlua2VkQ29kZUJsb2NrKCktPmlzQnVpbHRpbkZ1bmN0aW9uKCkpIHsKICAgICAgICAgICAgICAg
ICBtX3Jlc3VsdHMuYXBwZW5kKAogICAgICAgICAgICAgICAgICAgICBTdGFja0ZyYW1lKG1fdm0s
IHZpc2l0b3ItPmNhbGxlZSgpLmFzQ2VsbCgpLCB2aXNpdG9yLT5jb2RlQmxvY2soKSwgdmlzaXRv
ci0+Ynl0ZWNvZGVPZmZzZXQoKSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ludGVycHJldGVyL1N0YWNrVmlzaXRvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50
ZXJwcmV0ZXIvU3RhY2tWaXNpdG9yLmNwcAppbmRleCA1MmVhZmM5Li4xZDY0ZDZlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvU3RhY2tWaXNpdG9yLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvU3RhY2tWaXNpdG9yLmNwcApA
QCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkludGVycHJldGVyLmgiCiAjaW5jbHVkZSAiSlND
SW5saW5lcy5oIgogI2luY2x1ZGUgIldhc21DYWxsZWUuaCIKKyNpbmNsdWRlICJXYXNtSW5kZXhP
ck5hbWUuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAKIG5hbWVzcGFj
ZSBKU0MgewpAQCAtMTY2LDcgKzE2Nyw3IEBAIHZvaWQgU3RhY2tWaXNpdG9yOjpyZWFkTm9uSW5s
aW5lZEZyYW1lKENhbGxGcmFtZSogY2FsbEZyYW1lLCBDb2RlT3JpZ2luKiBjb2RlT3JpCiAjaWYg
RU5BQkxFKFdFQkFTU0VNQkxZKQogICAgICAgICBDYWxsZWVCaXRzIGJpdHMgPSBjYWxsRnJhbWUt
PmNhbGxlZSgpOwogICAgICAgICBpZiAoYml0cy5pc1dhc20oKSkKLSAgICAgICAgICAgIG1fZnJh
bWUubV93YXNtRnVuY3Rpb25JbmRleCA9IGJpdHMuYXNXYXNtQ2FsbGVlKCktPmluZGV4KCk7Cisg
ICAgICAgICAgICBtX2ZyYW1lLm1fd2FzbUZ1bmN0aW9uSW5kZXhPck5hbWUgPSBiaXRzLmFzV2Fz
bUNhbGxlZSgpLT5pbmRleE9yTmFtZSgpOwogI2VuZGlmCiAgICAgfSBlbHNlIHsKICAgICAgICAg
bV9mcmFtZS5tX2NvZGVCbG9jayA9IGNhbGxGcmFtZS0+Y29kZUJsb2NrKCk7CkBAIC0yODMsMTAg
KzI4NCwxMCBAQCBTdHJpbmcgU3RhY2tWaXNpdG9yOjpGcmFtZTo6ZnVuY3Rpb25OYW1lKCkgY29u
c3QKIAogICAgIHN3aXRjaCAoY29kZVR5cGUoKSkgewogICAgIGNhc2UgQ29kZVR5cGU6Oldhc206
Ci0gICAgICAgIGlmIChtX3dhc21GdW5jdGlvbkluZGV4KQotICAgICAgICAgICAgdHJhY2VMaW5l
ID0gbWFrZVN0cmluZygid2FzbSBmdW5jdGlvbiBpbmRleDogIiwgU3RyaW5nOjpudW1iZXIoKm1f
d2FzbUZ1bmN0aW9uSW5kZXgpKTsKKyAgICAgICAgaWYgKG1fd2FzbUZ1bmN0aW9uSW5kZXhPck5h
bWUuaXNFbXB0eSgpKQorICAgICAgICAgICAgdHJhY2VMaW5lID0gbWFrZVN0cmluZygid2FzbSBm
dW5jdGlvbiIpOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICB0cmFjZUxpbmUgPSBBU0NJSUxp
dGVyYWwoIndhc20gZnVuY3Rpb24iKTsKKyAgICAgICAgICAgIHRyYWNlTGluZSA9IG1ha2VTdHJp
bmcoIndhc20gZnVuY3Rpb246ICIsIG1ha2VTdHJpbmcobV93YXNtRnVuY3Rpb25JbmRleE9yTmFt
ZSkpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENvZGVUeXBlOjpFdmFsOgogICAgICAgICB0
cmFjZUxpbmUgPSBBU0NJSUxpdGVyYWwoImV2YWwgY29kZSIpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL1N0YWNrVmlzaXRvci5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ludGVycHJldGVyL1N0YWNrVmlzaXRvci5oCmluZGV4IDQ1MTAzNzAuLmFhMGIz
MzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9TdGFja1Zp
c2l0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvU3RhY2tWaXNp
dG9yLmgKQEAgLTI3LDYgKzI3LDcgQEAKIAogI2luY2x1ZGUgIkNhbGxlZUJpdHMuaCIKICNpbmNs
dWRlICJWTUVudHJ5UmVjb3JkLmgiCisjaW5jbHVkZSAiV2FzbUluZGV4T3JOYW1lLmgiCiAjaW5j
bHVkZSA8ZnVuY3Rpb25hbD4KICNpbmNsdWRlIDx3dGYvSW5kZW50ZXIuaD4KICNpbmNsdWRlIDx3
dGYvdGV4dC9XVEZTdHJpbmcuaD4KQEAgLTc3LDEwICs3OCwxMCBAQCBwdWJsaWM6CiAgICAgICAg
IGJvb2wgaXNOYXRpdmVGcmFtZSgpIGNvbnN0IHsgcmV0dXJuICFjb2RlQmxvY2soKSAmJiAhaXNX
YXNtRnJhbWUoKTsgfQogICAgICAgICBib29sIGlzSW5saW5lZEZyYW1lKCkgY29uc3QgeyByZXR1
cm4gISFpbmxpbmVDYWxsRnJhbWUoKTsgfQogICAgICAgICBib29sIGlzV2FzbUZyYW1lKCkgY29u
c3Q7Ci0gICAgICAgIHN0ZDo6b3B0aW9uYWw8dW5zaWduZWQ+IGNvbnN0IHdhc21GdW5jdGlvbklu
ZGV4KCkKKyAgICAgICAgV2FzbTo6SW5kZXhPck5hbWUgY29uc3Qgd2FzbUZ1bmN0aW9uSW5kZXhP
ck5hbWUoKQogICAgICAgICB7CiAgICAgICAgICAgICBBU1NFUlQoaXNXYXNtRnJhbWUoKSk7Ci0g
ICAgICAgICAgICByZXR1cm4gbV93YXNtRnVuY3Rpb25JbmRleDsKKyAgICAgICAgICAgIHJldHVy
biBtX3dhc21GdW5jdGlvbkluZGV4T3JOYW1lOwogICAgICAgICB9CiAKICAgICAgICAgSlNfRVhQ
T1JUX1BSSVZBVEUgU3RyaW5nIGZ1bmN0aW9uTmFtZSgpIGNvbnN0OwpAQCAtMTIxLDcgKzEyMiw3
IEBAIHB1YmxpYzoKICAgICAgICAgc2l6ZV90IG1faW5kZXg7CiAgICAgICAgIHNpemVfdCBtX2Fy
Z3VtZW50Q291bnRJbmNsdWRpbmdUaGlzOwogICAgICAgICB1bnNpZ25lZCBtX2J5dGVjb2RlT2Zm
c2V0OwotICAgICAgICBzdGQ6Om9wdGlvbmFsPHVuc2lnbmVkPiBtX3dhc21GdW5jdGlvbkluZGV4
OworICAgICAgICBXYXNtOjpJbmRleE9yTmFtZSBtX3dhc21GdW5jdGlvbkluZGV4T3JOYW1lOwog
ICAgICAgICBib29sIG1fY2FsbGVySXNWTUVudHJ5RnJhbWUgOiAxOwogICAgICAgICBib29sIG1f
aXNXYXNtRnJhbWUgOiAxOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9TdGFja0ZyYW1lLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0YWNr
RnJhbWUuY3BwCmluZGV4IGM2ZDIzZDkuLjgzNmVhMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1N0YWNrRnJhbWUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1N0YWNrRnJhbWUuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHly
aWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMTYtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTU4LDkgKzU4LDkgQEAgU3RyaW5nIFN0YWNrRnJh
bWU6OnNvdXJjZVVSTCgpIGNvbnN0CiBTdHJpbmcgU3RhY2tGcmFtZTo6ZnVuY3Rpb25OYW1lKFZN
JiB2bSkgY29uc3QKIHsKICAgICBpZiAobV9pc1dhc21GcmFtZSkgewotICAgICAgICBpZiAobV93
YXNtRnVuY3Rpb25JbmRleCA9PSBpbnZhbGlkV2FzbUluZGV4KQorICAgICAgICBpZiAobV93YXNt
RnVuY3Rpb25JbmRleE9yTmFtZS5pc0VtcHR5KCkpCiAgICAgICAgICAgICByZXR1cm4gQVNDSUlM
aXRlcmFsKCJ3YXNtIGZ1bmN0aW9uIik7Ci0gICAgICAgIHJldHVybiBtYWtlU3RyaW5nKCJ3YXNt
IGZ1bmN0aW9uIGluZGV4OiAiLCBTdHJpbmc6Om51bWJlcihtX3dhc21GdW5jdGlvbkluZGV4KSk7
CisgICAgICAgIHJldHVybiBtYWtlU3RyaW5nKCJ3YXNtIGZ1bmN0aW9uOiAiLCBtYWtlU3RyaW5n
KG1fd2FzbUZ1bmN0aW9uSW5kZXhPck5hbWUpKTsKICAgICB9CiAKICAgICBpZiAobV9jb2RlQmxv
Y2spIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0YWNrRnJh
bWUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0YWNrRnJhbWUuaAppbmRleCBm
ODMxODRkLi40ODkwODc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9TdGFja0ZyYW1lLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RhY2tG
cmFtZS5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYtMjAxNyBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKQEAgLTI2LDYgKzI2LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiU3Ryb25nLmgi
CisjaW5jbHVkZSAiV2FzbUluZGV4T3JOYW1lLmgiCiAjaW5jbHVkZSA8bGltaXRzLmg+CiAKIG5h
bWVzcGFjZSBKU0MgewpAQCAtMzUsNyArMzYsOSBAQCBjbGFzcyBKU09iamVjdDsKIAogY2xhc3Mg
U3RhY2tGcmFtZSB7CiBwdWJsaWM6Ci0gICAgU3RhY2tGcmFtZSgpID0gZGVmYXVsdDsKKyAgICBT
dGFja0ZyYW1lKCkKKyAgICAgICAgOiBtX2J5dGVjb2RlT2Zmc2V0KFVJTlRfTUFYKQorICAgIHsg
fQogCiAgICAgU3RhY2tGcmFtZShWTSYgdm0sIEpTQ2VsbCogY2FsbGVlKQogICAgICAgICA6IG1f
Y2FsbGVlKHZtLCBjYWxsZWUpCkBAIC00OCwxMiArNTEsMTEgQEAgcHVibGljOgogICAgICAgICAs
IG1fYnl0ZWNvZGVPZmZzZXQoYnl0ZWNvZGVPZmZzZXQpCiAgICAgeyB9CiAKLSAgICBzdGF0aWMg
Y29uc3RleHByIHVuc2lnbmVkIGludmFsaWRXYXNtSW5kZXggPSBVSU5UX01BWDsKLSAgICBzdGF0
aWMgU3RhY2tGcmFtZSB3YXNtKHVuc2lnbmVkIGluZGV4KQorICAgIHN0YXRpYyBTdGFja0ZyYW1l
IHdhc20oV2FzbTo6SW5kZXhPck5hbWUgaW5kZXhPck5hbWUpCiAgICAgewogICAgICAgICBTdGFj
a0ZyYW1lIHJlc3VsdDsKICAgICAgICAgcmVzdWx0Lm1faXNXYXNtRnJhbWUgPSB0cnVlOwotICAg
ICAgICByZXN1bHQubV93YXNtRnVuY3Rpb25JbmRleCA9IGluZGV4OworICAgICAgICByZXN1bHQu
bV93YXNtRnVuY3Rpb25JbmRleE9yTmFtZSA9IGluZGV4T3JOYW1lOwogICAgICAgICByZXR1cm4g
cmVzdWx0OwogICAgIH0KIApAQCAtNzgsNyArODAsNyBAQCBwcml2YXRlOgogICAgIFN0cm9uZzxD
b2RlQmxvY2s+IG1fY29kZUJsb2NrIHsgfTsKICAgICB1bmlvbiB7CiAgICAgICAgIHVuc2lnbmVk
IG1fYnl0ZWNvZGVPZmZzZXQ7Ci0gICAgICAgIHVuc2lnbmVkIG1fd2FzbUZ1bmN0aW9uSW5kZXg7
CisgICAgICAgIFdhc206OkluZGV4T3JOYW1lIG1fd2FzbUZ1bmN0aW9uSW5kZXhPck5hbWU7CiAg
ICAgfTsKICAgICBib29sIG1faXNXYXNtRnJhbWUgeyBmYWxzZSB9OwogfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21CQlFQbGFuSW5saW5lcy5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUJCUVBsYW5JbmxpbmVzLmgKaW5kZXggZjVhNjUyMy4u
YWYxODE0MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUJCUVBs
YW5JbmxpbmVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUJCUVBsYW5J
bmxpbmVzLmgKQEAgLTQzLDcgKzQzLDggQEAgdm9pZCBCQlFQbGFuOjppbml0aWFsaXplQ2FsbGVl
cyhjb25zdCBGdW5jdG9yJiBjYWxsYmFjaykKICAgICAgICAgUmVmPFdhc206OkNhbGxlZT4ganNF
bnRyeXBvaW50Q2FsbGVlID0gV2FzbTo6Q2FsbGVlOjpjcmVhdGUoV1RGTW92ZShmdW5jdGlvbi0+
anNUb1dhc21FbnRyeXBvaW50KSk7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpyZXBhdGNoUG9p
bnRlcihmdW5jdGlvbi0+anNUb1dhc21DYWxsZWVNb3ZlTG9jYXRpb24sIENhbGxlZUJpdHM6OmJv
eFdhc20oanNFbnRyeXBvaW50Q2FsbGVlLnB0cigpKSk7CiAKLSAgICAgICAgUmVmPFdhc206OkNh
bGxlZT4gd2FzbUVudHJ5cG9pbnRDYWxsZWUgPSBXYXNtOjpDYWxsZWU6OmNyZWF0ZShXVEZNb3Zl
KGZ1bmN0aW9uLT53YXNtRW50cnlwb2ludCksIGludGVybmFsRnVuY3Rpb25JbmRleCArIG1fbW9k
dWxlSW5mb3JtYXRpb24tPmltcG9ydEZ1bmN0aW9uQ291bnQoKSk7CisgICAgICAgIHNpemVfdCBm
dW5jdGlvbkluZGV4U3BhY2UgPSBpbnRlcm5hbEZ1bmN0aW9uSW5kZXggKyBtX21vZHVsZUluZm9y
bWF0aW9uLT5pbXBvcnRGdW5jdGlvbkNvdW50KCk7CisgICAgICAgIFJlZjxXYXNtOjpDYWxsZWU+
IHdhc21FbnRyeXBvaW50Q2FsbGVlID0gV2FzbTo6Q2FsbGVlOjpjcmVhdGUoV1RGTW92ZShmdW5j
dGlvbi0+d2FzbUVudHJ5cG9pbnQpLCBmdW5jdGlvbkluZGV4U3BhY2UsIG1fbW9kdWxlSW5mb3Jt
YXRpb24tPm5hbWVTZWN0aW9uLmdldChmdW5jdGlvbkluZGV4U3BhY2UpKTsKICAgICAgICAgTWFj
cm9Bc3NlbWJsZXI6OnJlcGF0Y2hQb2ludGVyKGZ1bmN0aW9uLT53YXNtQ2FsbGVlTW92ZUxvY2F0
aW9uLCBDYWxsZWVCaXRzOjpib3hXYXNtKHdhc21FbnRyeXBvaW50Q2FsbGVlLnB0cigpKSk7CiAK
ICAgICAgICAgY2FsbGJhY2soaW50ZXJuYWxGdW5jdGlvbkluZGV4LCBXVEZNb3ZlKGpzRW50cnlw
b2ludENhbGxlZSksIFdURk1vdmUod2FzbUVudHJ5cG9pbnRDYWxsZWUpKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21DYWxsZWUuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vV2FzbUNhbGxlZS5jcHAKaW5kZXggNmVjM2VkMS4uOWU4M2VkZiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUNhbGxlZS5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUNhbGxlZS5jcHAKQEAgLTMyLDkgKzMyLDE1
IEBACiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgV2FzbSB7CiAKLUNhbGxlZTo6Q2FsbGVl
KEVudHJ5cG9pbnQmJiBlbnRyeXBvaW50LCB1bnNpZ25lZCBpbmRleCkKK0NhbGxlZTo6Q2FsbGVl
KEVudHJ5cG9pbnQmJiBlbnRyeXBvaW50KQogICAgIDogbV9lbnRyeXBvaW50KFdURk1vdmUoZW50
cnlwb2ludCkpCi0gICAgLCBtX2luZGV4KGluZGV4KQoreworICAgIHJlZ2lzdGVyQ29kZShtX2Vu
dHJ5cG9pbnQuY29tcGlsYXRpb24tPmNvZGVSZWYoKS5leGVjdXRhYmxlTWVtb3J5KCktPnN0YXJ0
KCksIG1fZW50cnlwb2ludC5jb21waWxhdGlvbi0+Y29kZVJlZigpLmV4ZWN1dGFibGVNZW1vcnko
KS0+ZW5kKCkpOworfQorCitDYWxsZWU6OkNhbGxlZShFbnRyeXBvaW50JiYgZW50cnlwb2ludCwg
c2l6ZV90IGluZGV4LCBjb25zdCBOYW1lKiBuYW1lKQorICAgIDogbV9lbnRyeXBvaW50KFdURk1v
dmUoZW50cnlwb2ludCkpCisgICAgLCBtX2luZGV4T3JOYW1lKGluZGV4LCBuYW1lKQogewogICAg
IHJlZ2lzdGVyQ29kZShtX2VudHJ5cG9pbnQuY29tcGlsYXRpb24tPmNvZGVSZWYoKS5leGVjdXRh
YmxlTWVtb3J5KCktPnN0YXJ0KCksIG1fZW50cnlwb2ludC5jb21waWxhdGlvbi0+Y29kZVJlZigp
LmV4ZWN1dGFibGVNZW1vcnkoKS0+ZW5kKCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vV2FzbUNhbGxlZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
V2FzbUNhbGxlZS5oCmluZGV4IDlkYjEwYzMuLjIzYzFhZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL1dhc21DYWxsZWUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9XYXNtQ2FsbGVlLmgKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJCM0NvbXBp
bGF0aW9uLmgiCiAjaW5jbHVkZSAiUmVnaXN0ZXJBdE9mZnNldExpc3QuaCIKICNpbmNsdWRlICJX
YXNtRm9ybWF0LmgiCisjaW5jbHVkZSAiV2FzbUluZGV4T3JOYW1lLmgiCiAjaW5jbHVkZSA8d3Rm
L1RocmVhZFNhZmVSZWZDb3VudGVkLmg+CiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgV2Fz
bSB7CkBAIC0zNywzMSArMzgsMjkgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBXYXNtIHsK
IGNsYXNzIENhbGxlZSA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxDYWxsZWU+IHsKICAg
ICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKKyAgICBzdGF0aWMgUmVmPENhbGxl
ZT4gY3JlYXRlKFdhc206OkVudHJ5cG9pbnQmJiBlbnRyeXBvaW50KQorICAgIHsKKyAgICAgICAg
Q2FsbGVlKiBjYWxsZWUgPSBuZXcgQ2FsbGVlKFdURk1vdmUoZW50cnlwb2ludCkpOworICAgICAg
ICByZXR1cm4gYWRvcHRSZWYoKmNhbGxlZSk7CisgICAgfQogCi0gICAgLy8gV2UgdXNlIHRoaXMg
d2hlbiB3ZSdyZSB0aGUgSlMgZW50cnlwb2ludCwgd2UgZG9uJ3QgYXNjcmliZSBhbiBpbmRleCB0
byB0aG9zZS4KLSAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIGludmFsaWRDYWxsZWVJbmRl
eCA9IFVJTlRfTUFYOwotCi0gICAgc3RhdGljIFJlZjxDYWxsZWU+IGNyZWF0ZShXYXNtOjpFbnRy
eXBvaW50JiYgZW50cnlwb2ludCwgdW5zaWduZWQgaW5kZXggPSBpbnZhbGlkQ2FsbGVlSW5kZXgp
CisgICAgc3RhdGljIFJlZjxDYWxsZWU+IGNyZWF0ZShXYXNtOjpFbnRyeXBvaW50JiYgZW50cnlw
b2ludCwgc2l6ZV90IGluZGV4LCBjb25zdCBOYW1lKiBuYW1lKQogICAgIHsKLSAgICAgICAgQ2Fs
bGVlKiBjYWxsZWUgPSBuZXcgQ2FsbGVlKFdURk1vdmUoZW50cnlwb2ludCksIGluZGV4KTsKKyAg
ICAgICAgQ2FsbGVlKiBjYWxsZWUgPSBuZXcgQ2FsbGVlKFdURk1vdmUoZW50cnlwb2ludCksIGlu
ZGV4LCBuYW1lKTsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpjYWxsZWUpOwogICAgIH0KIAog
ICAgIHZvaWQqIGVudHJ5cG9pbnQoKSBjb25zdCB7IHJldHVybiBtX2VudHJ5cG9pbnQuY29tcGls
YXRpb24tPmNvZGUoKS5leGVjdXRhYmxlQWRkcmVzcygpOyB9CiAKICAgICBSZWdpc3RlckF0T2Zm
c2V0TGlzdCogY2FsbGVlU2F2ZVJlZ2lzdGVycygpIHsgcmV0dXJuICZtX2VudHJ5cG9pbnQuY2Fs
bGVlU2F2ZVJlZ2lzdGVyczsgfQotICAgIHN0ZDo6b3B0aW9uYWw8dW5zaWduZWQ+IGluZGV4KCkg
Y29uc3QKLSAgICB7Ci0gICAgICAgIGlmIChtX2luZGV4ID09IGludmFsaWRDYWxsZWVJbmRleCkK
LSAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0gICAgICAgIHJldHVybiBtX2luZGV4
OwotICAgIH0KKyAgICBJbmRleE9yTmFtZSBpbmRleE9yTmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1f
aW5kZXhPck5hbWU7IH0KIAogcHJpdmF0ZToKLSAgICBKU19FWFBPUlRfUFJJVkFURSBDYWxsZWUo
V2FzbTo6RW50cnlwb2ludCYmLCB1bnNpZ25lZCBpbmRleCk7CisgICAgSlNfRVhQT1JUX1BSSVZB
VEUgQ2FsbGVlKFdhc206OkVudHJ5cG9pbnQmJik7CisgICAgSlNfRVhQT1JUX1BSSVZBVEUgQ2Fs
bGVlKFdhc206OkVudHJ5cG9pbnQmJiwgc2l6ZV90LCBjb25zdCBOYW1lKik7CiAKICAgICBXYXNt
OjpFbnRyeXBvaW50IG1fZW50cnlwb2ludDsKLSAgICB1bnNpZ25lZCBtX2luZGV4OworICAgIElu
ZGV4T3JOYW1lIG1faW5kZXhPck5hbWU7CiB9OwogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6V2Fz
bQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUZvcm1hdC5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtRm9ybWF0LmNwcAppbmRleCBlMjYwNjAx
Li5lMDZlNzc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtRm9y
bWF0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtRm9ybWF0LmNwcApA
QCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE2LTIwMTcgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC01
NSw3ICs1NSw3IEBAIFNlZ21lbnQ6OlB0ciBTZWdtZW50OjphZG9wdFB0cihTZWdtZW50KiBzZWdt
ZW50KQogICAgIHJldHVybiBQdHIoc2VnbWVudCwgJlNlZ21lbnQ6OmRlc3Ryb3kpOwogfQogCi1T
dHJpbmcgbWFrZVN0cmluZyhjb25zdCBWZWN0b3I8TENoYXI+JiBjaGFyYWN0ZXJzKQorU3RyaW5n
IG1ha2VTdHJpbmcoY29uc3QgTmFtZSYgY2hhcmFjdGVycykKIHsKICAgICBTdHJpbmcgcmVzdWx0
ID0gU3RyaW5nOjpmcm9tVVRGOChjaGFyYWN0ZXJzKTsKICAgICBBU1NFUlQocmVzdWx0KTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21Gb3JtYXQuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21Gb3JtYXQuaAppbmRleCBkOWViN2I4Li4yOWRkMjg3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtRm9ybWF0LmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUZvcm1hdC5oCkBAIC0zMyw2ICszMyw3
IEBACiAjaW5jbHVkZSAiTWFjcm9Bc3NlbWJsZXJDb2RlUmVmLmgiCiAjaW5jbHVkZSAiUmVnaXN0
ZXJBdE9mZnNldExpc3QuaCIKICNpbmNsdWRlICJXYXNtTWVtb3J5SW5mb3JtYXRpb24uaCIKKyNp
bmNsdWRlICJXYXNtTmFtZS5oIgogI2luY2x1ZGUgIldhc21PcHMuaCIKICNpbmNsdWRlICJXYXNt
UGFnZUNvdW50LmgiCiAjaW5jbHVkZSAiV2FzbVNpZ25hdHVyZS5oIgpAQCAtNzQsNyArNzUsNyBA
QCBlbnVtIGNsYXNzIEV4dGVybmFsS2luZCA6IHVpbnQ4X3QgewogfTsKIAogdGVtcGxhdGU8dHlw
ZW5hbWUgSW50Pgotc3RhdGljIGJvb2wgaXNWYWxpZEV4dGVybmFsS2luZChJbnQgdmFsKQoraW5s
aW5lIGJvb2wgaXNWYWxpZEV4dGVybmFsS2luZChJbnQgdmFsKQogewogICAgIHN3aXRjaCAodmFs
KSB7CiAgICAgY2FzZSBzdGF0aWNfY2FzdDxJbnQ+KEV4dGVybmFsS2luZDo6RnVuY3Rpb24pOgpA
QCAtODIsOSArODMsOCBAQCBzdGF0aWMgYm9vbCBpc1ZhbGlkRXh0ZXJuYWxLaW5kKEludCB2YWwp
CiAgICAgY2FzZSBzdGF0aWNfY2FzdDxJbnQ+KEV4dGVybmFsS2luZDo6TWVtb3J5KToKICAgICBj
YXNlIHN0YXRpY19jYXN0PEludD4oRXh0ZXJuYWxLaW5kOjpHbG9iYWwpOgogICAgICAgICByZXR1
cm4gdHJ1ZTsKLSAgICBkZWZhdWx0OgotICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQorICAg
IHJldHVybiBmYWxzZTsKIH0KIAogc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxpbnQ+KEV4dGVy
bmFsS2luZDo6RnVuY3Rpb24pID09IDAsICJXYXNtIG5lZWRzIEZ1bmN0aW9uIHRvIGhhdmUgdGhl
IHZhbHVlIDAiKTsKQEAgLTEwNSwxOSArMTA1LDE5IEBAIGlubGluZSBjb25zdCBjaGFyKiBtYWtl
U3RyaW5nKEV4dGVybmFsS2luZCBraW5kKQogfQogCiBzdHJ1Y3QgSW1wb3J0IHsKLSAgICBjb25z
dCBWZWN0b3I8TENoYXI+IG1vZHVsZTsKLSAgICBjb25zdCBWZWN0b3I8TENoYXI+IGZpZWxkOwor
ICAgIGNvbnN0IE5hbWUgbW9kdWxlOworICAgIGNvbnN0IE5hbWUgZmllbGQ7CiAgICAgRXh0ZXJu
YWxLaW5kIGtpbmQ7CiAgICAgdW5zaWduZWQga2luZEluZGV4OyAvLyBJbmRleCBpbiB0aGUgdmVj
dG9yIG9mIHRoZSBjb3JyZXNwb25kaW5nIGtpbmQuCiB9OwogCiBzdHJ1Y3QgRXhwb3J0IHsKLSAg
ICBjb25zdCBWZWN0b3I8TENoYXI+IGZpZWxkOworICAgIGNvbnN0IE5hbWUgZmllbGQ7CiAgICAg
RXh0ZXJuYWxLaW5kIGtpbmQ7CiAgICAgdW5zaWduZWQga2luZEluZGV4OyAvLyBJbmRleCBpbiB0
aGUgdmVjdG9yIG9mIHRoZSBjb3JyZXNwb25kaW5nIGtpbmQuCiB9OwogCi1TdHJpbmcgbWFrZVN0
cmluZyhjb25zdCBWZWN0b3I8TENoYXI+JiBjaGFyYWN0ZXJzKTsKK1N0cmluZyBtYWtlU3RyaW5n
KGNvbnN0IE5hbWUmIGNoYXJhY3RlcnMpOwogCiBzdHJ1Y3QgR2xvYmFsIHsKICAgICBlbnVtIE11
dGFiaWxpdHkgOiB1aW50OF90IHsKQEAgLTIzMSwxMCArMjMxLDM0IEBAIHByaXZhdGU6CiB9Owog
ICAgIAogc3RydWN0IEN1c3RvbVNlY3Rpb24gewotICAgIFZlY3RvcjxMQ2hhcj4gbmFtZTsKKyAg
ICBOYW1lIG5hbWU7CiAgICAgVmVjdG9yPHVpbnQ4X3Q+IHBheWxvYWQ7CiB9OwogCitlbnVtIGNs
YXNzIE5hbWVUeXBlIDogdWludDhfdCB7CisgICAgRnVuY3Rpb24gPSAxLAorICAgIExvY2FsID0g
MiwKK307CisgICAgCit0ZW1wbGF0ZTx0eXBlbmFtZSBJbnQ+CitpbmxpbmUgYm9vbCBpc1ZhbGlk
TmFtZVR5cGUoSW50IHZhbCkKK3sKKyAgICBzd2l0Y2ggKHZhbCkgeworICAgIGNhc2Ugc3RhdGlj
X2Nhc3Q8SW50PihOYW1lVHlwZTo6RnVuY3Rpb24pOgorICAgIGNhc2Ugc3RhdGljX2Nhc3Q8SW50
PihOYW1lVHlwZTo6TG9jYWwpOgorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgcmV0
dXJuIGZhbHNlOworfQorICAgIAorc3RydWN0IE5hbWVTZWN0aW9uIHsKKyAgICBWZWN0b3I8TmFt
ZT4gZnVuY3Rpb25OYW1lczsKKyAgICBjb25zdCBOYW1lKiBnZXQoc2l6ZV90IGZ1bmN0aW9uSW5k
ZXhTcGFjZSkKKyAgICB7CisgICAgICAgIHJldHVybiBmdW5jdGlvbkluZGV4U3BhY2UgPCBmdW5j
dGlvbk5hbWVzLnNpemUoKSA/ICZmdW5jdGlvbk5hbWVzW2Z1bmN0aW9uSW5kZXhTcGFjZV0gOiBu
dWxscHRyOworICAgIH0KK307CisKIHN0cnVjdCBVbmxpbmtlZFdhc21Ub1dhc21DYWxsIHsKICAg
ICBDb2RlTG9jYXRpb25OZWFyQ2FsbCBjYWxsTG9jYXRpb247CiAgICAgc2l6ZV90IGZ1bmN0aW9u
SW5kZXhTcGFjZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21J
bmRleE9yTmFtZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtSW5kZXhPck5h
bWUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFiOTY5NjEKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtSW5kZXhPck5hbWUu
Y3BwCkBAIC0wLDAgKzEsNTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2FzbUluZGV4T3JOYW1l
LmgiCisKK25hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgV2FzbSB7CisKK0luZGV4T3JOYW1lOjpJ
bmRleE9yTmFtZShJbmRleCBpbmRleCwgY29uc3QgTmFtZSogbmFtZSkKK3sKKyAgICBzdGF0aWNf
YXNzZXJ0KHNpemVvZihtX2luZGV4KSA9PSBzaXplb2YobV9uYW1lKSwgImJpdC10YWdnaW5nIGRl
cGVuZHMgb24gc2l6ZXMgYmVpbmcgZXF1YWwiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KHNpemVvZiht
X2luZGV4KSA9PSBzaXplb2YoKnRoaXMpLCAiYml0LXRhZ2dpbmcgZGVwZW5kcyBvbiBvYmplY3Qg
YmVpbmcgdGhlIHNpemUgb2YgdGhlIHVuaW9uJ3MgdHlwZXMiKTsKKworICAgIGlmICgoaW5kZXgg
JiBhbGxUYWdzKSB8fCAoYml0d2lzZV9jYXN0PEluZGV4PihuYW1lKSAmIGFsbFRhZ3MpKQorICAg
ICAgICAqdGhpcyA9IEluZGV4T3JOYW1lKCk7CisgICAgZWxzZSBpZiAobmFtZSkKKyAgICAgICAg
bV9uYW1lID0gbmFtZTsKKyAgICBlbHNlCisgICAgICAgIG1faW5kZXggPSBpbmRleFRhZyB8IGlu
ZGV4OworfQorCitTdHJpbmcgbWFrZVN0cmluZyhjb25zdCBJbmRleE9yTmFtZSYgaW9uKQorewor
ICAgIGlmIChpb24uaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gU3RyaW5nKCk7CisgICAgaWYg
KGlvbi5pc0luZGV4KCkpCisgICAgICAgIHJldHVybiBTdHJpbmc6Om51bWJlcihpb24ubV9pbmRl
eCAmIH5JbmRleE9yTmFtZTo6aW5kZXhUYWcpOworICAgIHJldHVybiBTdHJpbmcoaW9uLm1fbmFt
ZS0+ZGF0YSgpLCBpb24ubV9uYW1lLT5zaXplKCkpOworfTsKKworfSB9IC8vIG5hbWVzcGFjZSBK
U0M6Oldhc20KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21JbmRl
eE9yTmFtZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUluZGV4T3JOYW1lLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDc1NDVmYQotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21JbmRleE9yTmFtZS5oCkBAIC0w
LDAgKzEsNjEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIldhc21OYW1lLmgiCisjaW5jbHVkZSA8d3RmL1N0
ZExpYkV4dHJhcy5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3Bh
Y2UgSlNDIHsgbmFtZXNwYWNlIFdhc20geworCitzdHJ1Y3QgSW5kZXhPck5hbWUgeworICAgIHR5
cGVkZWYgc2l6ZV90IEluZGV4OworCisgICAgSW5kZXhPck5hbWUoKQorICAgICAgICA6IG1faW5k
ZXgoZW1wdHlUYWcpCisgICAgeyB9CisgICAgSW5kZXhPck5hbWUoSW5kZXgsIGNvbnN0IE5hbWUq
KTsKKyAgICBib29sIGlzRW1wdHkoKSBjb25zdCB7IHJldHVybiBiaXR3aXNlX2Nhc3Q8SW5kZXg+
KCp0aGlzKSAmIGVtcHR5VGFnOyB9CisgICAgYm9vbCBpc0luZGV4KCkgY29uc3QgeyByZXR1cm4g
Yml0d2lzZV9jYXN0PEluZGV4PigqdGhpcykgJiBpbmRleFRhZzsgfQorICAgIGJvb2wgaXNOYW1l
KCkgY29uc3QgeyByZXR1cm4gIShpc0VtcHR5KCkgfHwgaXNOYW1lKCkpOyB9CisKKyAgICBmcmll
bmQgU3RyaW5nIG1ha2VTdHJpbmcoY29uc3QgSW5kZXhPck5hbWUmKTsKKworcHJpdmF0ZToKKyAg
ICB1bmlvbiB7CisgICAgICAgIEluZGV4IG1faW5kZXg7CisgICAgICAgIGNvbnN0IE5hbWUqIG1f
bmFtZTsKKyAgICB9OworCisgICAgLy8gVXNlIHRoZSB0b3AgYml0cyBhcyB0YWdzLiBOZWl0aGVy
IHBvaW50ZXJzIG5vciB0aGUgZnVuY3Rpb24gaW5kZXggc3BhY2Ugc2hvdWxkIHVzZSB0aGVtLgor
ICAgIHN0YXRpYyBjb25zdGV4cHIgSW5kZXggaW5kZXhUYWcgPSAxdWxsIDw8IChDSEFSX0JJVCAq
IHNpemVvZihJbmRleCkgLSAxKTsKKyAgICBzdGF0aWMgY29uc3RleHByIEluZGV4IGVtcHR5VGFn
ID0gMXVsbCA8PCAoQ0hBUl9CSVQgKiBzaXplb2YoSW5kZXgpIC0gMik7CisgICAgc3RhdGljIGNv
bnN0ZXhwciBJbmRleCBhbGxUYWdzID0gaW5kZXhUYWcgfCBlbXB0eVRhZzsKK307CisKK1N0cmlu
ZyBtYWtlU3RyaW5nKGNvbnN0IEluZGV4T3JOYW1lJik7CisKK30gfSAvLyBuYW1lc3BhY2UgSlND
OjpXYXNtCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTW9kdWxl
SW5mb3JtYXRpb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21Nb2R1bGVJbmZv
cm1hdGlvbi5oCmluZGV4IDE3NjMzOWEuLjA3YjM4OTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL1dhc21Nb2R1bGVJbmZvcm1hdGlvbi5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL1dhc21Nb2R1bGVJbmZvcm1hdGlvbi5oCkBAIC03NCw3ICs3NCw3IEBA
IHN0cnVjdCBNb2R1bGVJbmZvcm1hdGlvbiA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxN
b2R1bGVJbmZvcm1hdGlvbj4gewogICAgIFZlY3RvcjxHbG9iYWw+IGdsb2JhbHM7CiAgICAgdW5z
aWduZWQgZmlyc3RJbnRlcm5hbEdsb2JhbCB7IDAgfTsKICAgICBWZWN0b3I8Q3VzdG9tU2VjdGlv
bj4gY3VzdG9tU2VjdGlvbnM7Ci0KKyAgICBOYW1lU2VjdGlvbiBuYW1lU2VjdGlvbjsKIH07CiAK
ICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21Nb2R1bGVQ
YXJzZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU1vZHVsZVBhcnNlci5j
cHAKaW5kZXggZWU3MTRjMS4uNGNkZTE2NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vV2FzbU1vZHVsZVBhcnNlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vV2FzbU1vZHVsZVBhcnNlci5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJp
Z2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAxNi0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzAsMTMgKzMwLDExIEBACiAKICNpbmNsdWRlICJJ
ZGVudGlmaWVySW5saW5lcy5oIgogI2luY2x1ZGUgIkpTV2ViQXNzZW1ibHlUYWJsZS5oIgotI2lu
Y2x1ZGUgIldhc21Gb3JtYXQuaCIKICNpbmNsdWRlICJXYXNtTWVtb3J5SW5mb3JtYXRpb24uaCIK
KyNpbmNsdWRlICJXYXNtTmFtZVNlY3Rpb25QYXJzZXIuaCIKICNpbmNsdWRlICJXYXNtT3BzLmgi
CiAjaW5jbHVkZSAiV2FzbVNlY3Rpb25zLmgiCiAKLSNpbmNsdWRlIDxzeXMvbW1hbi5oPgotCiBu
YW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIFdhc20gewogCiBBTFdBWVNfSU5MSU5FIEkzMkluaXRF
eHByIG1ha2VJMzJJbml0RXhwcih1aW50OF90IG9wY29kZSwgdWludDMyX3QgYml0cykKQEAgLTE1
Niw4ICsxNTQsOCBAQCBhdXRvIE1vZHVsZVBhcnNlcjo6cGFyc2VJbXBvcnQoKSAtPiBQYXJ0aWFs
UmVzdWx0CiAgICAgZm9yICh1aW50MzJfdCBpbXBvcnROdW1iZXIgPSAwOyBpbXBvcnROdW1iZXIg
PCBpbXBvcnRDb3VudDsgKytpbXBvcnROdW1iZXIpIHsKICAgICAgICAgdWludDMyX3QgbW9kdWxl
TGVuOwogICAgICAgICB1aW50MzJfdCBmaWVsZExlbjsKLSAgICAgICAgVmVjdG9yPExDaGFyPiBt
b2R1bGVTdHJpbmc7Ci0gICAgICAgIFZlY3RvcjxMQ2hhcj4gZmllbGRTdHJpbmc7CisgICAgICAg
IE5hbWUgbW9kdWxlU3RyaW5nOworICAgICAgICBOYW1lIGZpZWxkU3RyaW5nOwogICAgICAgICBF
eHRlcm5hbEtpbmQga2luZDsKICAgICAgICAgdW5zaWduZWQga2luZEluZGV4IHsgMCB9OwogCkBA
IC0zNjgsNyArMzY2LDcgQEAgYXV0byBNb2R1bGVQYXJzZXI6OnBhcnNlRXhwb3J0KCkgLT4gUGFy
dGlhbFJlc3VsdAogICAgIEhhc2hTZXQ8U3RyaW5nPiBleHBvcnROYW1lczsKICAgICBmb3IgKHVp
bnQzMl90IGV4cG9ydE51bWJlciA9IDA7IGV4cG9ydE51bWJlciA8IGV4cG9ydENvdW50OyArK2V4
cG9ydE51bWJlcikgewogICAgICAgICB1aW50MzJfdCBmaWVsZExlbjsKLSAgICAgICAgVmVjdG9y
PExDaGFyPiBmaWVsZFN0cmluZzsKKyAgICAgICAgTmFtZSBmaWVsZFN0cmluZzsKICAgICAgICAg
RXh0ZXJuYWxLaW5kIGtpbmQ7CiAgICAgICAgIHVuc2lnbmVkIGtpbmRJbmRleDsKIApAQCAtNjA1
LDcgKzYwMywxNCBAQCBhdXRvIE1vZHVsZVBhcnNlcjo6cGFyc2VDdXN0b20odWludDMyX3Qgc2Vj
dGlvbkxlbmd0aCkgLT4gUGFydGlhbFJlc3VsdAogICAgICAgICBXQVNNX1BBUlNFUl9GQUlMX0lG
KCFwYXJzZVVJbnQ4KGJ5dGUpLCAiY2FuJ3QgZ2V0ICIsIGJ5dGVOdW1iZXIsICJ0aCBkYXRhIGJ5
dGUgZnJvbSAiLCBjdXN0b21TZWN0aW9uTnVtYmVyLCAidGggY3VzdG9tIHNlY3Rpb24iKTsKICAg
ICAgICAgc2VjdGlvbi5wYXlsb2FkLnVuY2hlY2tlZEFwcGVuZChieXRlKTsKICAgICB9Ci0gICAg
CisKKyAgICBOYW1lIG5hbWVOYW1lID0geyAnbicsICdhJywgJ20nLCAnZScgfTsKKyAgICBpZiAo
c2VjdGlvbi5uYW1lID09IG5hbWVOYW1lKSB7CisgICAgICAgIE5hbWVTZWN0aW9uUGFyc2VyIG5h
bWVTZWN0aW9uUGFyc2VyKHNlY3Rpb24ucGF5bG9hZC5iZWdpbigpLCBzZWN0aW9uLnBheWxvYWQu
c2l6ZSgpLCBtX2luZm8pOworICAgICAgICBpZiAoYXV0byBuYW1lU2VjdGlvbiA9IG5hbWVTZWN0
aW9uUGFyc2VyLnBhcnNlKCkpCisgICAgICAgICAgICBtX2luZm8tPm5hbWVTZWN0aW9uID0gV1RG
TW92ZSgqbmFtZVNlY3Rpb24pOworICAgIH0KKwogICAgIG1faW5mby0+Y3VzdG9tU2VjdGlvbnMu
dW5jaGVja2VkQXBwZW5kKFdURk1vdmUoc2VjdGlvbikpOwogCiAgICAgcmV0dXJuIHsgfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21OYW1lLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTmFtZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLjBlNDI3OTIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9XYXNtTmFtZS5oCkBAIC0wLDAgKzEsMzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9W
ZWN0b3IuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9MQ2hhci5oPgorCituYW1lc3BhY2UgSlNDIHsK
KworbmFtZXNwYWNlIFdhc20geworCit1c2luZyBOYW1lID0gVmVjdG9yPExDaGFyPjsKKworfSB9
IC8vIG5hbWVzcGFjZSBKU0M6Oldhc20KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL1dhc21OYW1lU2VjdGlvblBhcnNlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9XYXNtTmFtZVNlY3Rpb25QYXJzZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLjhjMDRmNTgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9XYXNtTmFtZVNlY3Rpb25QYXJzZXIuY3BwCkBAIC0wLDAgKzEsOTAgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiV2FzbU5hbWVTZWN0aW9uUGFyc2VyLmgiCisKKyNpZiBFTkFCTEUoV0VC
QVNTRU1CTFkpCisKKyNpbmNsdWRlICJJZGVudGlmaWVySW5saW5lcy5oIgorCituYW1lc3BhY2Ug
SlNDIHsgbmFtZXNwYWNlIFdhc20geworCithdXRvIE5hbWVTZWN0aW9uUGFyc2VyOjpwYXJzZSgp
IC0+IFJlc3VsdAoreworICAgIE5hbWVTZWN0aW9uIG5hbWVTZWN0aW9uOworICAgIFdBU01fUEFS
U0VSX0ZBSUxfSUYoIW5hbWVTZWN0aW9uLmZ1bmN0aW9uTmFtZXMudHJ5UmVzZXJ2ZUNhcGFjaXR5
KG1faW5mby5mdW5jdGlvbkluZGV4U3BhY2VTaXplKCkpLCAiY2FuJ3QgYWxsb2NhdGUgZW5vdWdo
IG1lbW9yeSBmb3IgZnVuY3Rpb24gbmFtZXMiKTsKKyAgICBuYW1lU2VjdGlvbi5mdW5jdGlvbk5h
bWVzLnJlc2l6ZShtX2luZm8uZnVuY3Rpb25JbmRleFNwYWNlU2l6ZSgpKTsKKworICAgIGZvciAo
c2l6ZV90IHBheWxvYWROdW1iZXIgPSAwOyBtX29mZnNldCA8IGxlbmd0aCgpOyArK3BheWxvYWRO
dW1iZXIpIHsKKyAgICAgICAgdWludDhfdCBuYW1lVHlwZTsKKyAgICAgICAgdWludDMyX3QgcGF5
bG9hZExlbmd0aDsKKyAgICAgICAgV0FTTV9QQVJTRVJfRkFJTF9JRighcGFyc2VVSW50NyhuYW1l
VHlwZSksICJjYW4ndCBnZXQgbmFtZSB0eXBlIGZvciBwYXlsb2FkICIsIHBheWxvYWROdW1iZXIp
OworICAgICAgICBXQVNNX1BBUlNFUl9GQUlMX0lGKCFpc1ZhbGlkTmFtZVR5cGUobmFtZVR5cGUp
LCAibmFtZSB0eXBlICIsIG5hbWVUeXBlLCAiIGlzIGludmFsaWQgZm9yIHBheWxvYWQgIiwgcGF5
bG9hZE51bWJlcik7CisgICAgICAgIFdBU01fUEFSU0VSX0ZBSUxfSUYoIXBhcnNlVmFyVUludDMy
KHBheWxvYWRMZW5ndGgpLCAiY2FuJ3QgZ2V0IHBheWxvYWQgbGVuZ3RoIGZvciBwYXlsb2FkICIs
IHBheWxvYWROdW1iZXIpOworICAgICAgICBXQVNNX1BBUlNFUl9GQUlMX0lGKHBheWxvYWRMZW5n
dGggPiBsZW5ndGgoKSAtIG1fb2Zmc2V0LCAicGF5bG9hZCBsZW5ndGggaXMgdG9vIGJpZyBmb3Ig
cGF5bG9hZCAiLCBwYXlsb2FkTnVtYmVyKTsKKyAgICAgICAgY29uc3QgYXV0byBwYXlsb2FkU3Rh
cnQgPSBtX29mZnNldDsKKworICAgICAgICBzd2l0Y2ggKHN0YXRpY19jYXN0PE5hbWVUeXBlPihu
YW1lVHlwZSkpIHsKKyAgICAgICAgY2FzZSBOYW1lVHlwZTo6RnVuY3Rpb246IHsKKyAgICAgICAg
ICAgIHVpbnQzMl90IGNvdW50OworICAgICAgICAgICAgV0FTTV9QQVJTRVJfRkFJTF9JRighcGFy
c2VWYXJVSW50MzIoY291bnQpLCAiY2FuJ3QgZ2V0IGZ1bmN0aW9uIGNvdW50IGZvciBwYXlsb2Fk
ICIsIHBheWxvYWROdW1iZXIpOworICAgICAgICAgICAgZm9yICh1aW50MzJfdCBmdW5jdGlvbiA9
IDA7IGZ1bmN0aW9uIDwgY291bnQ7ICsrZnVuY3Rpb24pIHsKKyAgICAgICAgICAgICAgICB1aW50
MzJfdCBpbmRleDsKKyAgICAgICAgICAgICAgICB1aW50MzJfdCBuYW1lTGVuOworICAgICAgICAg
ICAgICAgIE5hbWUgbmFtZVN0cmluZzsKKyAgICAgICAgICAgICAgICBXQVNNX1BBUlNFUl9GQUlM
X0lGKCFwYXJzZVZhclVJbnQzMihpbmRleCksICJjYW4ndCBnZXQgZnVuY3Rpb24gIiwgZnVuY3Rp
b24sICIgaW5kZXggZm9yIHBheWxvYWQgIiwgcGF5bG9hZE51bWJlcik7CisgICAgICAgICAgICAg
ICAgV0FTTV9QQVJTRVJfRkFJTF9JRihtX2luZm8uZnVuY3Rpb25JbmRleFNwYWNlU2l6ZSgpIDw9
IGluZGV4LCAiZnVuY3Rpb24gIiwgZnVuY3Rpb24sICIgaW5kZXggIiwgaW5kZXgsICIgaXMgbGFy
Z2VyIHRoYW4gZnVuY3Rpb24gaW5kZXggc3BhY2UgIiwgbV9pbmZvLmZ1bmN0aW9uSW5kZXhTcGFj
ZVNpemUoKSwgIiBmb3IgcGF5bG9hZCAiLCBwYXlsb2FkTnVtYmVyKTsKKyAgICAgICAgICAgICAg
ICBXQVNNX1BBUlNFUl9GQUlMX0lGKCFwYXJzZVZhclVJbnQzMihuYW1lTGVuKSwgImNhbid0IGdl
dCBmdW5jdGlvbnMgIiwgZnVuY3Rpb24sICIncyBuYW1lIGxlbmd0aCBmb3IgcGF5bG9hZCAiLCBw
YXlsb2FkTnVtYmVyKTsKKyAgICAgICAgICAgICAgICBXQVNNX1BBUlNFUl9GQUlMX0lGKCFjb25z
dW1lVVRGOFN0cmluZyhuYW1lU3RyaW5nLCBuYW1lTGVuKSwgImNhbid0IGdldCBmdW5jdGlvbiAi
LCBmdW5jdGlvbiwgIidzIG5hbWUgb2YgbGVuZ3RoICIsIG5hbWVMZW4sICIgZm9yIHBheWxvYWQg
IiwgcGF5bG9hZE51bWJlcik7CisgICAgICAgICAgICAgICAgbmFtZVNlY3Rpb24uZnVuY3Rpb25O
YW1lc1tpbmRleF0gPSBXVEZNb3ZlKG5hbWVTdHJpbmcpOworICAgICAgICAgICAgfQorICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgY2FzZSBOYW1lVHlwZTo6TG9jYWw6IHsK
KyAgICAgICAgICAgIC8vIElnbm9yZSBsb2NhbCBuYW1lcyBmb3Igbm93LCB3ZSBkb24ndCBkbyBh
bnl0aGluZyB3aXRoIHRoZW0gYnV0IHdlIHN0aWxsIG5lZWQgdG8gcGFyc2UgdGhlbSBpbiBvcmRl
ciB0byBwcm9wZXJseSBpZ25vcmUgdGhlbS4KKyAgICAgICAgICAgIHVpbnQzMl90IGZ1bmN0aW9u
SW5kZXg7CisgICAgICAgICAgICB1aW50MzJfdCBjb3VudDsKKyAgICAgICAgICAgIFdBU01fUEFS
U0VSX0ZBSUxfSUYoIXBhcnNlVmFyVUludDMyKGZ1bmN0aW9uSW5kZXgpLCAiY2FuJ3QgZ2V0IGxv
Y2FsJ3MgZnVuY3Rpb24gaW5kZXggZm9yIHBheWxvYWQgIiwgcGF5bG9hZE51bWJlcik7CisgICAg
ICAgICAgICBXQVNNX1BBUlNFUl9GQUlMX0lGKCFwYXJzZVZhclVJbnQzMihjb3VudCksICJjYW4n
dCBnZXQgbG9jYWwgY291bnQgZm9yIHBheWxvYWQgIiwgcGF5bG9hZE51bWJlcik7CisgICAgICAg
ICAgICBmb3IgKHVpbnQzMl90IGxvY2FsID0gMDsgbG9jYWwgPCBjb3VudDsgKytsb2NhbCkgewor
ICAgICAgICAgICAgICAgIHVpbnQzMl90IGluZGV4OworICAgICAgICAgICAgICAgIHVpbnQzMl90
IG5hbWVMZW47CisgICAgICAgICAgICAgICAgTmFtZSBuYW1lU3RyaW5nOworICAgICAgICAgICAg
ICAgIFdBU01fUEFSU0VSX0ZBSUxfSUYoIXBhcnNlVmFyVUludDMyKGluZGV4KSwgImNhbid0IGdl
dCBsb2NhbCAiLCBsb2NhbCwgIiBpbmRleCBmb3IgcGF5bG9hZCAiLCBwYXlsb2FkTnVtYmVyKTsK
KyAgICAgICAgICAgICAgICBXQVNNX1BBUlNFUl9GQUlMX0lGKCFwYXJzZVZhclVJbnQzMihuYW1l
TGVuKSwgImNhbid0IGdldCBsb2NhbCAiLCBsb2NhbCwgIidzIG5hbWUgbGVuZ3RoIGZvciBwYXls
b2FkICIsIHBheWxvYWROdW1iZXIpOworICAgICAgICAgICAgICAgIFdBU01fUEFSU0VSX0ZBSUxf
SUYoIWNvbnN1bWVVVEY4U3RyaW5nKG5hbWVTdHJpbmcsIG5hbWVMZW4pLCAiY2FuJ3QgZ2V0IGxv
Y2FsICIsIGxvY2FsLCAiJ3MgbmFtZSBvZiBsZW5ndGggIiwgbmFtZUxlbiwgIiBmb3IgcGF5bG9h
ZCAiLCBwYXlsb2FkTnVtYmVyKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgV0FTTV9QQVJTRVJfRkFJTF9JRihwYXlsb2Fk
U3RhcnQgKyBwYXlsb2FkTGVuZ3RoICE9IG1fb2Zmc2V0KTsKKyAgICB9CisgICAgcmV0dXJuIG5h
bWVTZWN0aW9uOworfQorCit9IH0gLy8gbmFtZXNwYWNlIEpTQzo6V2FzbQorCisjZW5kaWYgLy8g
RU5BQkxFKFdFQkFTU0VNQkxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vV2FzbU5hbWVTZWN0aW9uUGFyc2VyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9X
YXNtTmFtZVNlY3Rpb25QYXJzZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li5iMjk3MGRkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
V2FzbU5hbWVTZWN0aW9uUGFyc2VyLmgKQEAgLTAsMCArMSw1MSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxF
KFdFQkFTU0VNQkxZKQorCisjaW5jbHVkZSAiV2FzbUZvcm1hdC5oIgorI2luY2x1ZGUgIldhc21Q
YXJzZXIuaCIKKworbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBXYXNtIHsKKworY2xhc3MgTmFt
ZVNlY3Rpb25QYXJzZXIgOiBwdWJsaWMgUGFyc2VyPE5hbWVTZWN0aW9uPiB7CitwdWJsaWM6Cisg
ICAgTmFtZVNlY3Rpb25QYXJzZXIoY29uc3QgdWludDhfdCogc291cmNlQnVmZmVyLCBzaXplX3Qg
c291cmNlTGVuZ3RoLCBjb25zdCBNb2R1bGVJbmZvcm1hdGlvbiYgaW5mbykKKyAgICAgICAgOiBQ
YXJzZXIoc291cmNlQnVmZmVyLCBzb3VyY2VMZW5ndGgpCisgICAgICAgICwgbV9pbmZvKGluZm8p
CisgICAgeworICAgIH0KKworICAgIFJlc3VsdCBXQVJOX1VOVVNFRF9SRVRVUk4gcGFyc2UoKTsK
KyAgICAKK3ByaXZhdGU6CisgICAgY29uc3QgTW9kdWxlSW5mb3JtYXRpb24mIG1faW5mbzsKK307
CisKK30gfSAvLyBuYW1lc3BhY2UgSlNDOjpXYXNtCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCQVNT
RU1CTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtT01HUGxh
bi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtT01HUGxhbi5jcHAKaW5kZXgg
NjI5MDM0ZS4uMDE2NDg3NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
V2FzbU9NR1BsYW4uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21PTUdQ
bGFuLmNwcApAQCAtOTgsNyArOTgsNyBAQCB2b2lkIE9NR1BsYW46OndvcmsoQ29tcGlsYXRpb25F
ZmZvcnQpCiAgICAgdm9pZCogZW50cnlwb2ludDsKICAgICB7CiAgICAgICAgIEFTU0VSVChtX2Nv
ZGVCbG9jay5wdHIoKSA9PSBtX21vZHVsZS0+Y29kZUJsb2NrRm9yKG1vZGUoKSkpOwotICAgICAg
ICBSZWY8Q2FsbGVlPiBjYWxsZWUgPSBDYWxsZWU6OmNyZWF0ZShXVEZNb3ZlKG9tZ0VudHJ5cG9p
bnQpLCBmdW5jdGlvbkluZGV4U3BhY2UpOworICAgICAgICBSZWY8Q2FsbGVlPiBjYWxsZWUgPSBD
YWxsZWU6OmNyZWF0ZShXVEZNb3ZlKG9tZ0VudHJ5cG9pbnQpLCBmdW5jdGlvbkluZGV4U3BhY2Us
IG1fbW9kdWxlSW5mb3JtYXRpb24tPm5hbWVTZWN0aW9uLmdldChmdW5jdGlvbkluZGV4U3BhY2Up
KTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OnJlcGF0Y2hQb2ludGVyKHBhcnNlQW5kQ29tcGls
ZVJlc3VsdC52YWx1ZSgpLT53YXNtQ2FsbGVlTW92ZUxvY2F0aW9uLCBDYWxsZWVCaXRzOjpib3hX
YXNtKGNhbGxlZS5wdHIoKSkpOwogICAgICAgICBBU1NFUlQoIW1fY29kZUJsb2NrLT5tX29wdGlt
aXplZENhbGxlZXNbbV9mdW5jdGlvbkluZGV4XSk7CiAgICAgICAgIGVudHJ5cG9pbnQgPSBjYWxs
ZWUtPmVudHJ5cG9pbnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L1dhc21QYXJzZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21QYXJzZXIuaApp
bmRleCA4OWZmMTBjLi5jMmE4YzE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9XYXNtUGFyc2VyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVBh
cnNlci5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYtMjAxNyBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKQEAgLTYyLDcgKzYyLDcgQEAgcHJvdGVjdGVkOgogCiAgICAgYm9vbCBXQVJOX1VOVVNFRF9S
RVRVUk4gY29uc3VtZUNoYXJhY3RlcihjaGFyKTsKICAgICBib29sIFdBUk5fVU5VU0VEX1JFVFVS
TiBjb25zdW1lU3RyaW5nKGNvbnN0IGNoYXIqKTsKLSAgICBib29sIFdBUk5fVU5VU0VEX1JFVFVS
TiBjb25zdW1lVVRGOFN0cmluZyhWZWN0b3I8TENoYXI+Jiwgc2l6ZV90KTsKKyAgICBib29sIFdB
Uk5fVU5VU0VEX1JFVFVSTiBjb25zdW1lVVRGOFN0cmluZyhOYW1lJiwgc2l6ZV90KTsKIAogICAg
IGJvb2wgV0FSTl9VTlVTRURfUkVUVVJOIHBhcnNlVmFyVUludDEodWludDhfdCYpOwogICAgIGJv
b2wgV0FSTl9VTlVTRURfUkVUVVJOIHBhcnNlSW50NyhpbnQ4X3QmKTsKQEAgLTE0Miw3ICsxNDIs
NyBAQCBBTFdBWVNfSU5MSU5FIGJvb2wgUGFyc2VyPFN1Y2Nlc3NUeXBlPjo6Y29uc3VtZVN0cmlu
Zyhjb25zdCBjaGFyKiBzdHIpCiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFN1Y2Nlc3NUeXBlPgot
QUxXQVlTX0lOTElORSBib29sIFBhcnNlcjxTdWNjZXNzVHlwZT46OmNvbnN1bWVVVEY4U3RyaW5n
KFZlY3RvcjxMQ2hhcj4mIHJlc3VsdCwgc2l6ZV90IHN0cmluZ0xlbmd0aCkKK0FMV0FZU19JTkxJ
TkUgYm9vbCBQYXJzZXI8U3VjY2Vzc1R5cGU+Ojpjb25zdW1lVVRGOFN0cmluZyhOYW1lJiByZXN1
bHQsIHNpemVfdCBzdHJpbmdMZW5ndGgpCiB7CiAgICAgaWYgKGxlbmd0aCgpIDwgc3RyaW5nTGVu
Z3RoIHx8IG1fb2Zmc2V0ID4gbGVuZ3RoKCkgLSBzdHJpbmdMZW5ndGgpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKLS0gCjIuOS4zCgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>