<?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>203074</bug_id>
          
          <creation_ts>2019-10-17 00:25:59 -0700</creation_ts>
          <short_desc>Make it possible to not include IPC Messages headers in other headers</short_desc>
          <delta_ts>2019-10-22 15:59:47 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Tim Horton">thorton</reporter>
          <assigned_to name="Tim Horton">thorton</assigned_to>
          <cc>achristensen</cc>
    
    <cc>annulen</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jer.noble</cc>
    
    <cc>krollin</cc>
    
    <cc>philipj</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sam</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>tsavell</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1580890</commentid>
    <comment_count>0</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2019-10-17 00:25:59 -0700</bug_when>
    <thetext>Make it possible to not include IPC Messages headers in other headers</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1580891</commentid>
    <comment_count>1</comment_count>
      <attachid>381174</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2019-10-17 00:32:46 -0700</bug_when>
    <thetext>Created attachment 381174
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1580892</commentid>
    <comment_count>2</comment_count>
      <attachid>381174</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2019-10-17 00:33:38 -0700</bug_when>
    <thetext>Comment on attachment 381174
Patch

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

&gt; Source/WebKit/Scripts/webkit/messages.py:287
&gt; +def forward_declarations_and_headers_for_replies(receiver):

I think we can de-duplicate a bunch of this code. Need to think about how I want to make it look.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1580893</commentid>
    <comment_count>3</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2019-10-17 00:34:04 -0700</bug_when>
    <thetext>I guess I have some CMake fixing to do too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1580966</commentid>
    <comment_count>4</comment_count>
      <attachid>381174</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-10-17 08:39:35 -0700</bug_when>
    <thetext>Comment on attachment 381174
Patch

Please also update Source/WebKit/Scripts/Makefile and run it to update the generator tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1582254</commentid>
    <comment_count>5</comment_count>
      <attachid>381510</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2019-10-21 22:45:07 -0700</bug_when>
    <thetext>Created attachment 381510
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1582278</commentid>
    <comment_count>6</comment_count>
      <attachid>381522</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2019-10-22 01:06:46 -0700</bug_when>
    <thetext>Created attachment 381522
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1582281</commentid>
    <comment_count>7</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2019-10-22 01:15:14 -0700</bug_when>
    <thetext>(In reply to Alex Christensen from comment #4)
&gt; Comment on attachment 381174 [details]
&gt; Patch
&gt; 
&gt; Please also update Source/WebKit/Scripts/Makefile and run it to update the
&gt; generator tests.

Man, that would have been nice to know about when I was writing this :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1582283</commentid>
    <comment_count>8</comment_count>
      <attachid>381522</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2019-10-22 01:19:43 -0700</bug_when>
    <thetext>Comment on attachment 381522
Patch

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

&gt; Source/WebKit/DerivedSources.make:212
&gt; +	@echo Generating messages receiver for $*...

huh, don’t know why I pluralized that

&gt; Source/WebKit/Scripts/webkit/LegacyMessages-expected.h:364
&gt; +    using DelayedReply = GetPluginProcessConnectionDelayedReply;    static void send(std::unique_ptr&lt;IPC::Encoder&gt;&amp;&amp;, IPC::Connection&amp;, const IPC::Connection::Handle&amp; connectionHandle);

This is a bug

&gt; Source/WebKit/UIProcess/WebPageProxy.cpp:259
&gt; +    String message;

Shouldn’t do this, gotta give it its own file</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1582349</commentid>
    <comment_count>9</comment_count>
      <attachid>381522</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-10-22 07:07:40 -0700</bug_when>
    <thetext>Comment on attachment 381522
Patch

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

&gt;&gt; Source/WebKit/Scripts/webkit/LegacyMessages-expected.h:364
&gt;&gt; +    using DelayedReply = GetPluginProcessConnectionDelayedReply;    static void send(std::unique_ptr&lt;IPC::Encoder&gt;&amp;&amp;, IPC::Connection&amp;, const IPC::Connection::Handle&amp; connectionHandle);
&gt; 
&gt; This is a bug

Hooray tests!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1582423</commentid>
    <comment_count>10</comment_count>
      <attachid>381557</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2019-10-22 10:09:25 -0700</bug_when>
    <thetext>Created attachment 381557
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1582441</commentid>
    <comment_count>11</comment_count>
      <attachid>381564</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2019-10-22 10:51:41 -0700</bug_when>
    <thetext>Created attachment 381564
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1582451</commentid>
    <comment_count>12</comment_count>
      <attachid>381568</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2019-10-22 11:17:26 -0700</bug_when>
    <thetext>Created attachment 381568
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1582459</commentid>
    <comment_count>13</comment_count>
      <attachid>381568</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2019-10-22 11:34:31 -0700</bug_when>
    <thetext>Comment on attachment 381568
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1582498</commentid>
    <comment_count>14</comment_count>
      <attachid>381568</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-10-22 13:02:26 -0700</bug_when>
    <thetext>Comment on attachment 381568
Patch

Clearing flags on attachment: 381568

Committed r251445: &lt;https://trac.webkit.org/changeset/251445&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1582499</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-10-22 13:02:28 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1582500</commentid>
    <comment_count>16</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-10-22 13:03:27 -0700</bug_when>
    <thetext>&lt;rdar://problem/56511583&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1582502</commentid>
    <comment_count>17</comment_count>
      <attachid>381568</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2019-10-22 13:09:14 -0700</bug_when>
    <thetext>Comment on attachment 381568
Patch

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

&gt; Source/WebKit/Scripts/Makefile:2
&gt; +	python ./generate-message-receiver.py webkit/test-superclass-messages.in --implementation webkit/MessageReceiverSuperclass-expected.cpp --header webkit/MessagesSuperclass-expected.h --reply-header webkit/MessagesRepliesSuperclassReplies-expected.h

... I typoed the word &quot;Receiver&quot; as &quot;Replies&quot; in the last filename here</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1582603</commentid>
    <comment_count>18</comment_count>
    <who name="Truitt Savell">tsavell</who>
    <bug_when>2019-10-22 14:53:20 -0700</bug_when>
    <thetext>(In reply to Tim Horton from comment #17)
&gt; Comment on attachment 381568 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=381568&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/Scripts/Makefile:2
&gt; &gt; +	python ./generate-message-receiver.py webkit/test-superclass-messages.in --implementation webkit/MessageReceiverSuperclass-expected.cpp --header webkit/MessagesSuperclass-expected.h --reply-header webkit/MessagesRepliesSuperclassReplies-expected.h
&gt; 
&gt; ... I typoed the word &quot;Receiver&quot; as &quot;Replies&quot; in the last filename here

It looks like this change may have caused 4 webkitpy test failures: https://build.webkit.org/builders/Apple%20Mojave%20Release%20WK2%20%28Tests%29/builds/7595</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1582627</commentid>
    <comment_count>19</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2019-10-22 15:37:04 -0700</bug_when>
    <thetext>I&apos;ll take a peek!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1582648</commentid>
    <comment_count>20</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2019-10-22 15:59:47 -0700</bug_when>
    <thetext>(In reply to Tim Horton from comment #19)
&gt; I&apos;ll take a peek!

Fixed in r251464</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>381174</attachid>
            <date>2019-10-17 00:32:46 -0700</date>
            <delta_ts>2019-10-21 22:45:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-203074-20191017003245.patch</filename>
            <type>text/plain</type>
            <size>61835</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUxMjI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDI0YTEyZDBiZmViYTE3ZGI4
NTY1Yjc4MDU0MWIxN2M1OTg0ZTBhOWIuLmM0ODkxYWM2MGE5YWUwMmUwNTZhMWRjMzJjZjg2YmFi
YjFlOWY4YTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjYgQEAKKzIwMTktMTAtMTcgIFRpbSBIb3J0
b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgTWFrZSBpdCBwb3NzaWJs
ZSB0byBub3QgaW5jbHVkZSBJUEMgTWVzc2FnZXMgaGVhZGVycyBpbiBvdGhlciBoZWFkZXJzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDMwNzQKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWtlIHRoZSBN
ZXNzYWdlcyBnZW5lcmF0b3IgZ2VuZXJhdGUgYSBuZXcgLU1lc3NhZ2VzUmVwbGllcy5oIGZpbGUs
IHdoaWNoCisgICAgICAgIG9ubHkgaW5jbHVkZXMgaGVhZGVycyBmb3IgYW5kIGRlZmluaXRpb25z
IG9mIERlbGF5ZWRSZXBseS9Bc3luY1JlcGx5IHR5cGVzLAorICAgICAgICB3aGljaCBuZWVkIHRv
IGJlIG1lbnRpb25lZCBhcyBhcmd1bWVudHMgdG8gbWVzc2FnZSBoYW5kZXIgbWV0aG9kcywgYW5k
CisgICAgICAgIHRodXMgbXVzdCBiZSBhdmFpbGFibGUgaW4gdmFyaW91cyBoZWFkZXJzIHRocm91
Z2hvdXQgdGhlIHByb2plY3QuCisKKyAgICAgICAgSW4gb3JkZXIgdG8gZG8gdGhpcywgd2UgaGF2
ZSB0byBkZS1uZXN0IHRoZW0gZnJvbSB0aGUgcHJpbWFyeSBtZXNzYWdlCisgICAgICAgIGNsYXNz
LCBidXQgd2UgdGhlbiAndXNpbmcnIHRoZW0gYmFjayBpbnRvIHBsYWNlIGluc2lkZSB0aGUgbWVz
c2FnZSBjbGFzcworICAgICAgICBzbyB0aGF0IG1vc3Qgb2YgdGhlIGNvZGUgZG9lc24ndCBuZWVk
IHRvIGNoYW5nZS4KKworICAgICAgICBUaGlzIGhlbHBzIHRvIHdpbGRseSBkZWNyZWFzZSB0aGUg
aGVhZGVyIGxvYWQgb2YgV2ViUGFnZS5oIGFuZCBXZWJQYWdlUHJveHkuaCwKKyAgICAgICAgZXNw
ZWNpYWxseSwgYmVjYXVzZSB0aGUgbnVtYmVyIG9mIGhlYWRlcnMgbmVlZGVkIGZvciB0eXBlcyBp
biB0aGVpciByZXBsaWVzCisgICAgICAgIGlzIG11Y2ggc21hbGxlciB0aGFuIHRoZSBudW1iZXIg
bmVlZGVkIGZvciBhbGwgbWVzc2FnZSByZWNlaXZlcnMuCisKKyAgICAgICAgQWxzbywgb25seSBp
bnZva2UgdGhlIE1lc3NhZ2VzIGdlbmVyYXRvciBvbmNlIHBlciBzb3VyY2UgZmlsZSwgYW5kCisg
ICAgICAgIG9ubHkgcGFyc2UgdGhlIHNvdXJjZSBmaWxlIG9uY2UsIGdlbmVyYXRpbmcgYWxsIHRo
cmVlIG91dHB1dCBmaWxlcworICAgICAgICBpbiBvbmUgaW52b2NhdGlvbi4KKworICAgICAgICBB
bmQgdGhlbiBjbGVhbiB1cCBhbGwgdGhlIG1pc3NpbmcgaW5kaXJlY3QgaW5jbHVkZXMgdGhhdCB3
ZSBsb3N0IGJ5IGRvaW5nIHRoaXMuCisKKyAgICAgICAgQWxsLWluLWFsbCB0aGlzIGlzIHdvcnRo
IHJvdWdobHkgOCUgb24gdGhlIFdlYktpdDIgQnVpbGQgVGltZSBCZW5jaG1hcmsuCisKKyAgICAg
ICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0NsYXNz
aWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcDoKKyAgICAgICAgKiBOZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgICog
TmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaDoKKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5oOgorICAgICAgICAqIFBsdWdpblBy
b2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5LmNwcDoKKyAgICAgICAgKiBQbHVnaW5Qcm9jZXNz
L1BsdWdpbkNvbnRyb2xsZXJQcm94eS5oOgorICAgICAgICAqIFBsdWdpblByb2Nlc3MvV2ViUHJv
Y2Vzc0Nvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBTY3JpcHRzL2dlbmVyYXRlLW1lc3NhZ2UtcmVj
ZWl2ZXIucHk6CisgICAgICAgIChtYWluKToKKyAgICAgICAgKiBTY3JpcHRzL2dlbmVyYXRlLW1l
c3NhZ2VzLWhlYWRlci5weTogUmVtb3ZlZC4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdC9tZXNz
YWdlcy5weToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXJQcm94eS5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkUHJv
eHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNw
cDoKKyAgICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc01hbmFnZXIuY3BwOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NNYW5hZ2VyLmg6CisgICAgICAg
ICogVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5Lmg6CisgICAgICAgICogVUlQ
cm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1N1c3Bl
bmRlZFBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Bvb2wuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5o
OgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHkubW06CisgICAgICAg
ICogV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rp
b24uaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAq
IFdlYlByb2Nlc3MvY29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5oOgorICAgICAgICAqIFdl
YlByb2Nlc3MvY29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tbToKKwogMjAxOS0xMC0xNiAg
RW1pbGlvIENvYm9zIMOBbHZhcmV6ICA8ZW1pbGlvQGNyaXNhbC5pbz4KIAogICAgICAgICBQYXNz
IG5ldHdvcmsgY2FjaGUgZGlyZWN0b3J5IGluIFdlYnNpdGVEYXRhU3RvcmU6OnBhcmFtZXRlcnMo
KSBmb3Igbm9uLUNvY29hIHBsYXRmb3Jtcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVy
aXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRl
eCBiYWU3YzMxOWU0NzY0NDVhOWNlMzZlNjJkNzZlZmVkZGY2NmFiMTI4Li5lZWQyZmM4ZjJlNGY2
OWM4YWU4ZmZkYTIwOWZiNjA4NjgzMjFmMmViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0Rl
cml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtl
CkBAIC0xOTAsNyArMTkwLDYgQEAgTUVTU0FHRV9SRUNFSVZFUlMgPSBcCiAKIFNDUklQVFMgPSBc
CiAgICAgJChXZWJLaXQyKS9TY3JpcHRzL2dlbmVyYXRlLW1lc3NhZ2UtcmVjZWl2ZXIucHkgXAot
ICAgICQoV2ViS2l0MikvU2NyaXB0cy9nZW5lcmF0ZS1tZXNzYWdlcy1oZWFkZXIucHkgXAogICAg
ICQoV2ViS2l0MikvU2NyaXB0cy93ZWJraXQvX19pbml0X18ucHkgXAogICAgICQoV2ViS2l0Mikv
U2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkgXAogICAgICQoV2ViS2l0MikvU2NyaXB0cy93ZWJr
aXQvbW9kZWwucHkgXApAQCAtMjA3LDE1ICsyMDYsMTIgQEAgSEVBREVSX0ZMQUdTID0gJChzaGVs
bCBlY2hvICQoQlVJTFRfUFJPRFVDVFNfRElSKSAkKEhFQURFUl9TRUFSQ0hfUEFUSFMpICQoU1lT
VEUKIGFsbCA6IFwKICAgICAkKE1FU1NBR0VfUkVDRUlWRVJTOiU9JU1lc3NhZ2VSZWNlaXZlci5j
cHApIFwKICAgICAkKE1FU1NBR0VfUkVDRUlWRVJTOiU9JU1lc3NhZ2VzLmgpIFwKKyAgICAkKE1F
U1NBR0VfUkVDRUlWRVJTOiU9JU1lc3NhZ2VzUmVwbGllcy5oKSBcCiAjCiAKLSVNZXNzYWdlUmVj
ZWl2ZXIuY3BwIDogJS5tZXNzYWdlcy5pbiAkKFNDUklQVFMpCi0JQGVjaG8gR2VuZXJhdGluZyBt
ZXNzYWdlIHJlY2VpdmVyIGZvciAkKi4uLgotCUBweXRob24gJChXZWJLaXQyKS9TY3JpcHRzL2dl
bmVyYXRlLW1lc3NhZ2UtcmVjZWl2ZXIucHkgJDwgPiAkQAotCi0lTWVzc2FnZXMuaCA6ICUubWVz
c2FnZXMuaW4gJChTQ1JJUFRTKQotCUBlY2hvIEdlbmVyYXRpbmcgbWVzc2FnZXMgaGVhZGVyIGZv
ciAkKi4uLgotCUBweXRob24gJChXZWJLaXQyKS9TY3JpcHRzL2dlbmVyYXRlLW1lc3NhZ2VzLWhl
YWRlci5weSAkPCA+ICRACislTWVzc2FnZVJlY2VpdmVyLmNwcCAlTWVzc2FnZXMuaCAlTWVzc2Fn
ZXNSZXBsaWVzLmggOiAlLm1lc3NhZ2VzLmluICQoU0NSSVBUUykKKwlAZWNobyBHZW5lcmF0aW5n
IG1lc3NhZ2VzIHJlY2VpdmVyIGZvciAkKi4uLgorCUBweXRob24gJChXZWJLaXQyKS9TY3JpcHRz
L2dlbmVyYXRlLW1lc3NhZ2UtcmVjZWl2ZXIucHkgJDwgLS1pbXBsZW1lbnRhdGlvbiAkKk1lc3Nh
Z2VSZWNlaXZlci5jcHAgLS1oZWFkZXIgJCpNZXNzYWdlcy5oIC0tcmVwbHktaGVhZGVyICQqTWVz
c2FnZXNSZXBsaWVzLmgKIAogVEVYVF9QUkVQUk9DRVNTT1JfRkxBR1M9LUUgLVAgLXcKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291
cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcAppbmRleCA3Yjhh
ZGVjZjVhNDY3NDE5NjM4MDBkOGIxOTc2NjUzODQyMDczZGU5Li44NWRkODgzMDI1NGYxNTYxN2Ri
YzA4OThmNzhkYmI1YmQwYzU2OTU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc1N0b3JlLmNwcApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkFQSURpY3Rp
b25hcnkuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3Mu
aCIKKyNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCIKICNpbmNsdWRlICJO
ZXR3b3JrU2Vzc2lvbi5oIgogI2luY2x1ZGUgIlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFz
ZVN0b3JlLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlLmgi
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCmluZGV4IGM4YTA3NjY3OTYyOWFiYzI0ZGY1ZjY1
M2E0ODMxNzMxZGIzYzc5OGYuLjZjOGFlMmY1NjRhOTQ1YzFhNmNjOGYxMTRiMWQ2ZTk0ZDFkYjMz
ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5j
bHVkZSAiRGF0YVJlZmVyZW5jZS5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJO
ZXR3b3JrQ2FjaGUuaCIKKyNpbmNsdWRlICJOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzc01l
c3NhZ2VzLmgiCiAjaW5jbHVkZSAiTmV0d29ya01ETlNSZWdpc3Rlck1lc3NhZ2VzLmgiCiAjaW5j
bHVkZSAiTmV0d29ya1Byb2Nlc3MuaCIKICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rp
b25NZXNzYWdlcy5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCmluZGV4IDY0ZTZkNzEzYjQ0MTRk
MjI5MTQ2YWVlNjBhODc5ODk1OTczMzMzYWQuLmQzNDBmYzZhNThiNzEzYWY0MjQ4YzkxYjA1ZDY0
MWQzNzc1MGJiZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKQEAgLTI5LDEwICsyOSwxMiBA
QAogI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJEb3dubG9hZElELmgiCiAjaW5j
bHVkZSAiTmV0d29ya0FjdGl2aXR5VHJhY2tlci5oIgotI2luY2x1ZGUgIk5ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJOZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2Vzc01lc3NhZ2VzUmVwbGllcy5oIgogI2luY2x1ZGUgIk5ldHdvcmtNRE5TUmVnaXN0
ZXIuaCIKICNpbmNsdWRlICJOZXR3b3JrUlRDUHJvdmlkZXIuaCIKICNpbmNsdWRlICJOZXR3b3Jr
UmVzb3VyY2VMb2FkTWFwLmgiCisjaW5jbHVkZSAiU2FuZGJveEV4dGVuc2lvbi5oIgorI2luY2x1
ZGUgIldlYlBhZ2VQcm94eUlkZW50aWZpZXIuaCIKICNpbmNsdWRlICJXZWJQYXltZW50Q29vcmRp
bmF0b3JQcm94eS5oIgogI2luY2x1ZGUgIldlYlJlc291cmNlTG9hZE9ic2VydmVyLmgiCiAjaW5j
bHVkZSA8V2ViQ29yZS9GcmFtZUlkZW50aWZpZXIuaD4KQEAgLTUwLDYgKzUyLDcgQEAgY2xhc3Mg
U2Vzc2lvbklEOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBCbG9iRGF0YUZpbGVSZWZl
cmVuY2U7CitjbGFzcyBCbG9iUGFydDsKIGNsYXNzIEJsb2JSZWdpc3RyeUltcGw7CiBjbGFzcyBS
ZXNvdXJjZUVycm9yOwogY2xhc3MgUmVzb3VyY2VSZXF1ZXN0OwpAQCAtNjQsNiArNjcsNyBAQCBu
YW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgTmV0d29ya1Byb2Nlc3M7CiBjbGFzcyBOZXR3b3Jr
UmVzb3VyY2VMb2FkZXI7CitjbGFzcyBOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVyczsKIGNs
YXNzIE5ldHdvcmtTZXNzaW9uOwogY2xhc3MgTmV0d29ya1NvY2tldENoYW5uZWw7CiBjbGFzcyBO
ZXR3b3JrU29ja2V0U3RyZWFtOwpAQCAtMTc2LDggKzE4MCw4IEBAIHByaXZhdGU6CiAgICAgdm9p
ZCBkaWRSZWNlaXZlU3luY05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzTWVzc2FnZShJUEM6
OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVy
PiYpOwogCiAgICAgdm9pZCBzY2hlZHVsZVJlc291cmNlTG9hZChOZXR3b3JrUmVzb3VyY2VMb2Fk
UGFyYW1ldGVycyYmKTsKLSAgICB2b2lkIHBlcmZvcm1TeW5jaHJvbm91c0xvYWQoTmV0d29ya1Jl
c291cmNlTG9hZFBhcmFtZXRlcnMmJiwgTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzOjpQZXJmb3JtU3luY2hyb25vdXNMb2FkOjpEZWxheWVkUmVwbHkmJik7Ci0gICAgdm9p
ZCB0ZXN0UHJvY2Vzc0luY29taW5nU3luY01lc3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5jUmVwbHko
V2ViUGFnZVByb3h5SWRlbnRpZmllciwgTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzOjpUZXN0UHJvY2Vzc0luY29taW5nU3luY01lc3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5j
UmVwbHk6OkRlbGF5ZWRSZXBseSYmKTsKKyAgICB2b2lkIHBlcmZvcm1TeW5jaHJvbm91c0xvYWQo
TmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMmJiwgTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzOjpQZXJmb3JtU3luY2hyb25vdXNMb2FkRGVsYXllZFJlcGx5JiYpOwor
ICAgIHZvaWQgdGVzdFByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yU3lu
Y1JlcGx5KFdlYlBhZ2VQcm94eUlkZW50aWZpZXIsIE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzczo6VGVzdFByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5n
Rm9yU3luY1JlcGx5RGVsYXllZFJlcGx5JiYpOwogICAgIHZvaWQgbG9hZFBpbmcoTmV0d29ya1Jl
c291cmNlTG9hZFBhcmFtZXRlcnMmJik7CiAgICAgdm9pZCBwcmVmZXRjaEROUyhjb25zdCBTdHJp
bmcmKTsKICAgICB2b2lkIHByZWNvbm5lY3RUbyh1aW50NjRfdCBwcmVjb25uZWN0aW9uSWRlbnRp
ZmllciwgTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMmJik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAKaW5kZXgg
ZDMzNGRiNjRjN2Q4Zjc5MjBmOGE4YjgxMjNiMjUzMWZmN2ExMjE1Yy4uZTliMTg1NGQ4MjhkNzg1
ZjIxNDgwZDRhOGFlNDljODI3YWRhMWQ5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcApAQCAtMzEsNiArMzEsNyBA
QAogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJOZXR3b3JrQ2FjaGUuaCIKICNpbmNs
dWRlICJOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIgorI2luY2x1ZGUgIk5ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzTWVzc2FnZXMuaCIKICNpbmNsdWRlICJOZXR3b3JrTG9hZC5o
IgogI2luY2x1ZGUgIk5ldHdvcmtMb2FkQ2hlY2tlci5oIgogI2luY2x1ZGUgIk5ldHdvcmtQcm9j
ZXNzLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtS
ZXNvdXJjZUxvYWRlci5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVz
b3VyY2VMb2FkZXIuaAppbmRleCA3MWY4MWJiNDYyNWQ4MzQ1YzY0ODA3MjdmOGE2NTRjMzY3Y2Y3
ZGVhLi5iNjA3YTgwMGFhZjc4ZTViNjA4NGI5NGU2YTU5YThmNzgwY2Y2MjE3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmgK
QEAgLTI5LDcgKzI5LDcgQEAKICNpbmNsdWRlICJNZXNzYWdlU2VuZGVyLmgiCiAjaW5jbHVkZSAi
TmV0d29ya0NhY2hlLmgiCiAjaW5jbHVkZSAiTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mu
aCIKLSNpbmNsdWRlICJOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzc01lc3NhZ2VzLmgiCisj
aW5jbHVkZSAiTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlc1JlcGxpZXMuaCIK
ICNpbmNsdWRlICJOZXR3b3JrTG9hZENsaWVudC5oIgogI2luY2x1ZGUgIk5ldHdvcmtSZXNvdXJj
ZUxvYWRQYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9BZENsaWNrQXR0cmlidXRpb24u
aD4KQEAgLTY1LDcgKzY1LDcgQEAgY2xhc3MgTmV0d29ya1Jlc291cmNlTG9hZGVyIGZpbmFsCiAg
ICAgLCBwdWJsaWMgV2ViQ29yZTo6Q29udGVudFNlY3VyaXR5UG9saWN5Q2xpZW50CiAgICAgLCBw
dWJsaWMgQ2FuTWFrZVdlYWtQdHI8TmV0d29ya1Jlc291cmNlTG9hZGVyPiB7CiBwdWJsaWM6Ci0g
ICAgc3RhdGljIFJlZjxOZXR3b3JrUmVzb3VyY2VMb2FkZXI+IGNyZWF0ZShOZXR3b3JrUmVzb3Vy
Y2VMb2FkUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMsIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzJiBjb25uZWN0aW9uLCBNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6
OlBlcmZvcm1TeW5jaHJvbm91c0xvYWQ6OkRlbGF5ZWRSZXBseSYmIHJlcGx5ID0gbnVsbHB0cikK
KyAgICBzdGF0aWMgUmVmPE5ldHdvcmtSZXNvdXJjZUxvYWRlcj4gY3JlYXRlKE5ldHdvcmtSZXNv
dXJjZUxvYWRQYXJhbWV0ZXJzJiYgcGFyYW1ldGVycywgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MmIGNvbm5lY3Rpb24sIE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
czo6UGVyZm9ybVN5bmNocm9ub3VzTG9hZERlbGF5ZWRSZXBseSYmIHJlcGx5ID0gbnVsbHB0cikK
ICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IE5ldHdvcmtSZXNvdXJjZUxvYWRl
cihXVEZNb3ZlKHBhcmFtZXRlcnMpLCBjb25uZWN0aW9uLCBXVEZNb3ZlKHJlcGx5KSkpOwogICAg
IH0KQEAgLTEzMSw3ICsxMzEsNyBAQCBwdWJsaWM6CiAjZW5kaWYKIAogcHJpdmF0ZToKLSAgICBO
ZXR3b3JrUmVzb3VyY2VMb2FkZXIoTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMmJiwgTmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmLCBNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3M6OlBlcmZvcm1TeW5jaHJvbm91c0xvYWQ6OkRlbGF5ZWRSZXBseSYmKTsKKyAg
ICBOZXR3b3JrUmVzb3VyY2VMb2FkZXIoTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMmJiwg
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmLCBNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3M6OlBlcmZvcm1TeW5jaHJvbm91c0xvYWREZWxheWVkUmVwbHkmJik7CiAK
ICAgICAvLyBJUEM6Ok1lc3NhZ2VTZW5kZXIKICAgICBJUEM6OkNvbm5lY3Rpb24qIG1lc3NhZ2VT
ZW5kZXJDb25uZWN0aW9uKCkgY29uc3Qgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1BsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJL
aXQvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250cm9sbGVyUHJveHkuY3BwCmluZGV4IGI2NDIxNDRi
ZDFhZWI5NzBjNmZjNjc4OTE4ODQwMmZkYWE4NzE5OTcuLmVhNzExZDMyZTI1NWY3M2MzNzUyZjQy
OWYwZWE3MjIxNWI5YzkzM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGx1Z2luUHJvY2Vz
cy9QbHVnaW5Db250cm9sbGVyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvUGx1Z2luUHJv
Y2Vzcy9QbHVnaW5Db250cm9sbGVyUHJveHkuY3BwCkBAIC00MCw2ICs0MCw3IEBACiAjaW5jbHVk
ZSAiU2hhcmVhYmxlQml0bWFwLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgi
CiAjaW5jbHVkZSAiV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNz
Q29ubmVjdGlvbk1lc3NhZ2VzLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9HcmFwaGljc0NvbnRleHQu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL0hUVFBIZWFkZXJNYXAuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L0lkZW50aWZpZXJSZXAuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGx1Z2luUHJvY2Vz
cy9QbHVnaW5Db250cm9sbGVyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvUGx1Z2luUHJvY2Vzcy9Q
bHVnaW5Db250cm9sbGVyUHJveHkuaAppbmRleCBiOThjYTk0YmM5ZWZjMjNiMmVkODE4YTViNzg0
MzM3MjMxN2U5YzY3Li5hZDRmY2Q5ZDhjY2Y0MmYxMmVlNDg4ZTAxMzQ2YzYxOWE3MDFiOGQyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclBy
b3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9QbHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQ
cm94eS5oCkBAIC0zMCw5ICszMCw4IEBACiAjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgogI2luY2x1
ZGUgIlBsdWdpbi5oIgogI2luY2x1ZGUgIlBsdWdpbkNvbnRyb2xsZXIuaCIKLSNpbmNsdWRlICJQ
bHVnaW5Db250cm9sbGVyUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlNoYXJlYWJsZUJpdG1h
cC5oIgotI2luY2x1ZGUgIldlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMuaCIKKyNpbmNsdWRl
ICJXZWJQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VzUmVwbGllcy5oIgogI2luY2x1ZGUgPFdlYkNv
cmUvU2VjdXJpdHlPcmlnaW4uaD4KICNpbmNsdWRlIDxXZWJDb3JlL1VzZXJBY3Rpdml0eS5oPgog
I2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgpAQCAtNzUsOCArNzQsOCBAQCBwdWJsaWM6CiAK
ICAgICBib29sIGlzSW5pdGlhbGl6aW5nKCkgY29uc3QgeyByZXR1cm4gbV9pc0luaXRpYWxpemlu
ZzsgfQogICAgIAotICAgIHZvaWQgc2V0SW5pdGlhbGl6YXRpb25SZXBseShNZXNzYWdlczo6V2Vi
UHJvY2Vzc0Nvbm5lY3Rpb246OkNyZWF0ZVBsdWdpbjo6RGVsYXllZFJlcGx5JiYpOwotICAgIE1l
c3NhZ2VzOjpXZWJQcm9jZXNzQ29ubmVjdGlvbjo6Q3JlYXRlUGx1Z2luOjpEZWxheWVkUmVwbHkg
dGFrZUluaXRpYWxpemF0aW9uUmVwbHkoKTsKKyAgICB2b2lkIHNldEluaXRpYWxpemF0aW9uUmVw
bHkoTWVzc2FnZXM6OldlYlByb2Nlc3NDb25uZWN0aW9uOjpDcmVhdGVQbHVnaW5EZWxheWVkUmVw
bHkmJik7CisgICAgTWVzc2FnZXM6OldlYlByb2Nlc3NDb25uZWN0aW9uOjpDcmVhdGVQbHVnaW5E
ZWxheWVkUmVwbHkgdGFrZUluaXRpYWxpemF0aW9uUmVwbHkoKTsKIAogcHJpdmF0ZToKICAgICB2
b2lkIHN0YXJ0UGFpbnRUaW1lcigpOwpAQCAtMTg0LDcgKzE4Myw3IEBAIHByaXZhdGU6CiAgICAg
Ym9vbCBtX2lzVmlzaWJsZTsKICAgICBib29sIG1faXNXaW5kb3dWaXNpYmxlOwogCi0gICAgTWVz
c2FnZXM6OldlYlByb2Nlc3NDb25uZWN0aW9uOjpDcmVhdGVQbHVnaW46OkRlbGF5ZWRSZXBseSBt
X2luaXRpYWxpemF0aW9uUmVwbHk7CisgICAgTWVzc2FnZXM6OldlYlByb2Nlc3NDb25uZWN0aW9u
OjpDcmVhdGVQbHVnaW5EZWxheWVkUmVwbHkgbV9pbml0aWFsaXphdGlvblJlcGx5OwogCiAgICAg
UmVmUHRyPFBsdWdpbj4gbV9wbHVnaW47CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGx1
Z2luUHJvY2Vzcy9XZWJQcm9jZXNzQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9QbHVnaW5Q
cm9jZXNzL1dlYlByb2Nlc3NDb25uZWN0aW9uLmgKaW5kZXggM2EwYTdhODk3OWUzMzE3ZDM3NzI2
OGY4ZTY5MDI0ZWEyZDYyY2EzNC4uZWYyNDIxMGE5YjA0ZDhlOGEyNzM0ZGRmOGNjMTJhYmIzYzAz
MDc5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbHVnaW5Qcm9jZXNzL1dlYlByb2Nlc3ND
b25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9QbHVnaW5Qcm9jZXNzL1dlYlByb2Nlc3ND
b25uZWN0aW9uLmgKQEAgLTI5LDcgKzI5LDcgQEAKIAogI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIK
ICNpbmNsdWRlICJQbHVnaW4uaCIKLSNpbmNsdWRlICJXZWJQcm9jZXNzQ29ubmVjdGlvbk1lc3Nh
Z2VzLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlc1JlcGxpZXMuaCIK
ICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAK
QEAgLTY5LDkgKzY5LDkgQEAgcHJpdmF0ZToKICAgICAvLyBNZXNzYWdlIGhhbmRsZXJzLgogICAg
IHZvaWQgZGlkUmVjZWl2ZVdlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZShJUEM6OkNvbm5lY3Rp
b24mLCBJUEM6OkRlY29kZXImKTsKICAgICB2b2lkIGRpZFJlY2VpdmVTeW5jV2ViUHJvY2Vzc0Nv
bm5lY3Rpb25NZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYsIHN0ZDo6dW5p
cXVlX3B0cjxJUEM6OkVuY29kZXI+Jik7Ci0gICAgdm9pZCBjcmVhdGVQbHVnaW4oY29uc3QgUGx1
Z2luQ3JlYXRpb25QYXJhbWV0ZXJzJiwgTWVzc2FnZXM6OldlYlByb2Nlc3NDb25uZWN0aW9uOjpD
cmVhdGVQbHVnaW46OkRlbGF5ZWRSZXBseSYmKTsKKyAgICB2b2lkIGNyZWF0ZVBsdWdpbihjb25z
dCBQbHVnaW5DcmVhdGlvblBhcmFtZXRlcnMmLCBNZXNzYWdlczo6V2ViUHJvY2Vzc0Nvbm5lY3Rp
b246OkNyZWF0ZVBsdWdpbkRlbGF5ZWRSZXBseSYmKTsKICAgICB2b2lkIGNyZWF0ZVBsdWdpbkFz
eW5jaHJvbm91c2x5KGNvbnN0IFBsdWdpbkNyZWF0aW9uUGFyYW1ldGVycyYpOwotICAgIHZvaWQg
ZGVzdHJveVBsdWdpbih1aW50NjRfdCBwbHVnaW5JbnN0YW5jZUlELCBib29sIGFzeW5jaHJvbm91
c0NyZWF0aW9uSW5jb21wbGV0ZSwgTWVzc2FnZXM6OldlYlByb2Nlc3NDb25uZWN0aW9uOjpEZXN0
cm95UGx1Z2luOjpEZWxheWVkUmVwbHkmJik7CisgICAgdm9pZCBkZXN0cm95UGx1Z2luKHVpbnQ2
NF90IHBsdWdpbkluc3RhbmNlSUQsIGJvb2wgYXN5bmNocm9ub3VzQ3JlYXRpb25JbmNvbXBsZXRl
LCBNZXNzYWdlczo6V2ViUHJvY2Vzc0Nvbm5lY3Rpb246OkRlc3Ryb3lQbHVnaW5EZWxheWVkUmVw
bHkmJik7CiAgICAgCiAgICAgdm9pZCBjcmVhdGVQbHVnaW5JbnRlcm5hbChjb25zdCBQbHVnaW5D
cmVhdGlvblBhcmFtZXRlcnMmLCBib29sJiByZXN1bHQsIGJvb2wmIHdhbnRzV2hlZWxFdmVudHMs
IHVpbnQzMl90JiByZW1vdGVMYXllckNsaWVudElEKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9TY3JpcHRzL2dlbmVyYXRlLW1lc3NhZ2UtcmVjZWl2ZXIucHkgYi9Tb3VyY2UvV2ViS2l0
L1NjcmlwdHMvZ2VuZXJhdGUtbWVzc2FnZS1yZWNlaXZlci5weQppbmRleCA2NDEzYThiZjM2ZjEy
N2Q0ZjgzZmZiNDlmOTFjZDg4ZDM3MDMwMmMyLi4zNWU0MDU4MmU3OWEzZjBjZTkzMzdhODZkNGUw
OTMzN2ZiYTQxMWVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvZ2VuZXJhdGUt
bWVzc2FnZS1yZWNlaXZlci5weQorKysgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvZ2VuZXJhdGUt
bWVzc2FnZS1yZWNlaXZlci5weQpAQCAtMjMsMTggKzIzLDM0IEBACiAjIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAK
IGZyb20gX19mdXR1cmVfXyBpbXBvcnQgd2l0aF9zdGF0ZW1lbnQKK2ltcG9ydCBhcmdwYXJzZQog
aW1wb3J0IHN5cwogCiBpbXBvcnQgd2Via2l0Lm1lc3NhZ2VzCitpbXBvcnQgd2Via2l0LnBhcnNl
cgogCiAKIGRlZiBtYWluKGFyZ3Y9Tm9uZSk6Ci0gICAgaWYgbm90IGFyZ3Y6Ci0gICAgICAgIGFy
Z3YgPSBzeXMuYXJndgotICAgIGlucHV0X3BhdGggPSBhcmd2WzFdCi0gICAgd2l0aCBvcGVuKGlu
cHV0X3BhdGgpIGFzIGlucHV0X2ZpbGU6Ci0gICAgICAgICMgUHl0aG9uIDMsIGNoYW5nZSB0bzog
IHByaW50KHdlYmtpdC5tZXNzYWdlcy5nZW5lcmF0ZV9tZXNzYWdlX2hhbmRsZXIoaW5wdXRfZmls
ZSksIGVuZD0nJykKLSAgICAgICAgc3lzLnN0ZG91dC53cml0ZSh3ZWJraXQubWVzc2FnZXMuZ2Vu
ZXJhdGVfbWVzc2FnZV9oYW5kbGVyKGlucHV0X2ZpbGUpKQorICAgIHBhcnNlciA9IGFyZ3BhcnNl
LkFyZ3VtZW50UGFyc2VyKCkKKyAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCdzb3VyY2UnKQorICAg
IHBhcnNlci5hZGRfYXJndW1lbnQoJy0taW1wbGVtZW50YXRpb24nLCByZXF1aXJlZD1UcnVlKQor
ICAgIHBhcnNlci5hZGRfYXJndW1lbnQoJy0taGVhZGVyJywgcmVxdWlyZWQ9VHJ1ZSkKKyAgICBw
YXJzZXIuYWRkX2FyZ3VtZW50KCctLXJlcGx5LWhlYWRlcicsIHJlcXVpcmVkPVRydWUpCisKKyAg
ICBhcmdzID0gcGFyc2VyLnBhcnNlX2FyZ3MoKQorCisgICAgd2l0aCBvcGVuKGFyZ3Muc291cmNl
KSBhcyBzb3VyY2VfZmlsZToKKyAgICAgICAgcmVjZWl2ZXIgPSB3ZWJraXQucGFyc2VyLnBhcnNl
KHNvdXJjZV9maWxlKQorCisgICAgd2l0aCBvcGVuKGFyZ3MuaW1wbGVtZW50YXRpb24sICJ3KyIp
IGFzIGltcGxlbWVudGF0aW9uX291dHB1dDoKKyAgICAgICAgaW1wbGVtZW50YXRpb25fb3V0cHV0
LndyaXRlKHdlYmtpdC5tZXNzYWdlcy5nZW5lcmF0ZV9tZXNzYWdlX2hhbmRsZXIocmVjZWl2ZXIp
KQorCisgICAgd2l0aCBvcGVuKGFyZ3MuaGVhZGVyLCAidysiKSBhcyBoZWFkZXJfb3V0cHV0Ogor
ICAgICAgICBoZWFkZXJfb3V0cHV0LndyaXRlKHdlYmtpdC5tZXNzYWdlcy5nZW5lcmF0ZV9tZXNz
YWdlc19oZWFkZXIocmVjZWl2ZXIpKQorCisgICAgd2l0aCBvcGVuKGFyZ3MucmVwbHlfaGVhZGVy
LCAidysiKSBhcyByZXBseV9oZWFkZXJfb3V0cHV0OgorICAgICAgICByZXBseV9oZWFkZXJfb3V0
cHV0LndyaXRlKHdlYmtpdC5tZXNzYWdlcy5nZW5lcmF0ZV9tZXNzYWdlc19yZXBseV9oZWFkZXIo
cmVjZWl2ZXIpKQorCiAgICAgcmV0dXJuIDAKIAogaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy9nZW5lcmF0ZS1tZXNzYWdlcy1oZWFk
ZXIucHkgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvZ2VuZXJhdGUtbWVzc2FnZXMtaGVhZGVyLnB5
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhZDczYTUyODM0ODMwOWFlYjIxMDhiNDQx
OTYzODRhMzQ3ZWJjNjY2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy9nZW5lcmF0ZS1tZXNzYWdlcy1oZWFkZXIucHkK
KysrIC9kZXYvbnVsbApAQCAtMSw0MSArMCwwIEBACi0jIS91c3IvYmluL2VudiBweXRob24KLSMK
LSMgQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMK
LSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotIyBhcmUgbWV0OgotIyAxLiAgUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KLSMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0jICAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnIEFORAotIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotIyBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFCi0jIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCi0jIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKLSMgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IKLSMgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKLSMgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwK
LSMgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotZnJvbSBfX2Z1dHVyZV9f
IGltcG9ydCB3aXRoX3N0YXRlbWVudAotaW1wb3J0IHN5cwotCi1pbXBvcnQgd2Via2l0Lm1lc3Nh
Z2VzCi0KLQotZGVmIG1haW4oYXJndj1Ob25lKToKLSAgICBpZiBub3QgYXJndjoKLSAgICAgICAg
YXJndiA9IHN5cy5hcmd2Ci0gICAgaW5wdXRfcGF0aCA9IGFyZ3ZbMV0KLSAgICB3aXRoIG9wZW4o
aW5wdXRfcGF0aCkgYXMgaW5wdXRfZmlsZToKLSAgICAgICAgIyBQeXRob24gMywgY2hhbmdlIHRv
OiAgcHJpbnQod2Via2l0Lm1lc3NhZ2VzLmdlbmVyYXRlX21lc3NhZ2VzX2hlYWRlcihpbnB1dF9m
aWxlKSwgZW5kPScnKQotICAgICAgICBzeXMuc3Rkb3V0LndyaXRlKHdlYmtpdC5tZXNzYWdlcy5n
ZW5lcmF0ZV9tZXNzYWdlc19oZWFkZXIoaW5wdXRfZmlsZSkpCi0gICAgcmV0dXJuIDAKLQotaWYg
X19uYW1lX18gPT0gJ19fbWFpbl9fJzoKLSAgICBzeXMuZXhpdChtYWluKHN5cy5hcmd2KSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkgYi9Tb3Vy
Y2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CmluZGV4IGRmM2JiNGJlMDI3NTMw
YTRhMGI5N2JkZjIwYzlhNDM0NjcwMmI1ZGYuLmQyNDYwZDljNTJjNzI4OWExNDMyMjA1YjI4MDA1
MDBhY2UxMzY5NTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVz
c2FnZXMucHkKKysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQpA
QCAtMzIsNyArMzIsNyBAQCBTWU5DSFJPTk9VU19BVFRSSUJVVEUgPSAnU3luY2hyb25vdXMnCiBB
U1lOQ19BVFRSSUJVVEUgPSAnQXN5bmMnCiAKIF9saWNlbnNlX2hlYWRlciA9ICIiIi8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTAtMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTAtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTExMyw5ICsxMTMsMjkgQEAgZGVm
IHJlcGx5X2FyZ3VtZW50c190eXBlKG1lc3NhZ2UpOgogICAgIHJldHVybiAnc3RkOjp0dXBsZTwl
cz4nICUgKCcsICcuam9pbihwYXJhbWV0ZXIudHlwZSBmb3IgcGFyYW1ldGVyIGluIG1lc3NhZ2Uu
cmVwbHlfcGFyYW1ldGVycykpCiAKIAorZGVmIG1lc3NhZ2VfdG9fcmVwbHlfZm9yd2FyZF9kZWNs
YXJhdGlvbihtZXNzYWdlKToKKyAgICByZXN1bHQgPSBbXQorCisgICAgaWYgbWVzc2FnZS5yZXBs
eV9wYXJhbWV0ZXJzICE9IE5vbmUgYW5kIChtZXNzYWdlLmhhc19hdHRyaWJ1dGUoU1lOQ0hST05P
VVNfQVRUUklCVVRFKSBvciBtZXNzYWdlLmhhc19hdHRyaWJ1dGUoQVNZTkNfQVRUUklCVVRFKSk6
CisgICAgICAgIHNlbmRfcGFyYW1ldGVycyA9IFsoZnVuY3Rpb25fcGFyYW1ldGVyX3R5cGUoeC50
eXBlLCB4LmtpbmQpLCB4Lm5hbWUpIGZvciB4IGluIG1lc3NhZ2UucmVwbHlfcGFyYW1ldGVyc10K
KyAgICAgICAgY29tcGxldGlvbl9oYW5kbGVyX3BhcmFtZXRlcnMgPSAnJXMnICUgJywgJy5qb2lu
KFsnICcuam9pbih4KSBmb3IgeCBpbiBzZW5kX3BhcmFtZXRlcnNdKQorCisgICAgICAgIGlmIG1l
c3NhZ2UuaGFzX2F0dHJpYnV0ZShBU1lOQ19BVFRSSUJVVEUpOgorICAgICAgICAgICAgcmVzdWx0
LmFwcGVuZCgndXNpbmcgJXNBc3luY1JlcGx5JyAlIG1lc3NhZ2UubmFtZSkKKyAgICAgICAgZWxz
ZToKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJ3VzaW5nICVzRGVsYXllZFJlcGx5JyAlIG1l
c3NhZ2UubmFtZSkKKyAgICAgICAgcmVzdWx0LmFwcGVuZCgnID0gQ29tcGxldGlvbkhhbmRsZXI8
dm9pZCglcyk+O1xuJyAlIGNvbXBsZXRpb25faGFuZGxlcl9wYXJhbWV0ZXJzKQorCisgICAgaWYg
bm90IHJlc3VsdDoKKyAgICAgICAgcmV0dXJuIE5vbmUKKworICAgIHJldHVybiBzdXJyb3VuZF9p
bl9jb25kaXRpb24oJycuam9pbihyZXN1bHQpLCBtZXNzYWdlLmNvbmRpdGlvbikKKworCiBkZWYg
bWVzc2FnZV90b19zdHJ1Y3RfZGVjbGFyYXRpb24obWVzc2FnZSk6CiAgICAgcmVzdWx0ID0gW10K
ICAgICBmdW5jdGlvbl9wYXJhbWV0ZXJzID0gWyhmdW5jdGlvbl9wYXJhbWV0ZXJfdHlwZSh4LnR5
cGUsIHgua2luZCksIHgubmFtZSkgZm9yIHggaW4gbWVzc2FnZS5wYXJhbWV0ZXJzXQorCiAgICAg
cmVzdWx0LmFwcGVuZCgnY2xhc3MgJXMge1xuJyAlIG1lc3NhZ2UubmFtZSkKICAgICByZXN1bHQu
YXBwZW5kKCdwdWJsaWM6XG4nKQogICAgIHJlc3VsdC5hcHBlbmQoJyAgICB0eXBlZGVmICVzIEFy
Z3VtZW50cztcbicgJSBhcmd1bWVudHNfdHlwZShtZXNzYWdlKSkKQEAgLTEzMiwxMSArMTUyLDEw
IEBAIGRlZiBtZXNzYWdlX3RvX3N0cnVjdF9kZWNsYXJhdGlvbihtZXNzYWdlKToKICAgICAgICAg
ICAgIHJlc3VsdC5hcHBlbmQoJyAgICBzdGF0aWMgdm9pZCBjYWxsUmVwbHkoSVBDOjpEZWNvZGVy
JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCglcyk+JiYpO1xuJyAlIG1vdmVfcGFyYW1ldGVycykK
ICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyAgICBzdGF0aWMgdm9pZCBjYW5jZWxSZXBseShD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKCVzKT4mJik7XG4nICUgbW92ZV9wYXJhbWV0ZXJzKQogICAg
ICAgICAgICAgcmVzdWx0LmFwcGVuZCgnICAgIHN0YXRpYyBJUEM6OlN0cmluZ1JlZmVyZW5jZSBh
c3luY01lc3NhZ2VSZXBseU5hbWUoKSB7IHJldHVybiB7ICIlc1JlcGx5IiB9OyB9XG4nICUgbWVz
c2FnZS5uYW1lKQotICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnICAgIHVzaW5nIEFzeW5jUmVw
bHknKQorICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnICAgIHVzaW5nIEFzeW5jUmVwbHkgPSAl
c0FzeW5jUmVwbHk7JyAlIG1lc3NhZ2UubmFtZSkKICAgICAgICAgZWxpZiBtZXNzYWdlLmhhc19h
dHRyaWJ1dGUoU1lOQ0hST05PVVNfQVRUUklCVVRFKToKLSAgICAgICAgICAgIHJlc3VsdC5hcHBl
bmQoJyAgICB1c2luZyBEZWxheWVkUmVwbHknKQorICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgn
ICAgIHVzaW5nIERlbGF5ZWRSZXBseSA9ICVzRGVsYXllZFJlcGx5OycgJSBtZXNzYWdlLm5hbWUp
CiAgICAgICAgIGlmIG1lc3NhZ2UuaGFzX2F0dHJpYnV0ZShTWU5DSFJPTk9VU19BVFRSSUJVVEUp
IG9yIG1lc3NhZ2UuaGFzX2F0dHJpYnV0ZShBU1lOQ19BVFRSSUJVVEUpOgotICAgICAgICAgICAg
cmVzdWx0LmFwcGVuZCgnID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZCglcyk+O1xuJyAlIGNvbXBs
ZXRpb25faGFuZGxlcl9wYXJhbWV0ZXJzKQogICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnICAg
IHN0YXRpYyB2b2lkIHNlbmQoc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mJiwgSVBDOjpD
b25uZWN0aW9uJicpCiAgICAgICAgICAgICBpZiBsZW4oc2VuZF9wYXJhbWV0ZXJzKToKICAgICAg
ICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcsICVzJyAlIGNvbXBsZXRpb25faGFuZGxlcl9wYXJh
bWV0ZXJzKQpAQCAtMjY1LDkgKzI4NCwxMjMgQEAgZGVmIGZvcndhcmRfZGVjbGFyYXRpb25zX2Fu
ZF9oZWFkZXJzKHJlY2VpdmVyKToKICAgICByZXR1cm4gKGZvcndhcmRfZGVjbGFyYXRpb25zLCBo
ZWFkZXJfaW5jbHVkZXMpCiAKIAotZGVmIGdlbmVyYXRlX21lc3NhZ2VzX2hlYWRlcihmaWxlKToK
LSAgICByZWNlaXZlciA9IHBhcnNlci5wYXJzZShmaWxlKQorZGVmIGZvcndhcmRfZGVjbGFyYXRp
b25zX2FuZF9oZWFkZXJzX2Zvcl9yZXBsaWVzKHJlY2VpdmVyKToKKyAgICB0eXBlc19ieV9uYW1l
c3BhY2UgPSBjb2xsZWN0aW9ucy5kZWZhdWx0ZGljdChzZXQpCisKKyAgICBoZWFkZXJzID0gc2V0
KFsKKyAgICAgICAgJzx3dGYvRm9yd2FyZC5oPicsCisgICAgXSkKKworICAgIGhlYWRlcl9jb25k
aXRpb25zID0geworICAgICAgICAnIkxheWVySG9zdGluZ0NvbnRleHQuaCInOiBbIlBMQVRGT1JN
KENPQ09BKSIsIF0sCisgICAgfQorCisgICAgbm9uX3RlbXBsYXRlX3d0Zl90eXBlcyA9IGZyb3pl
bnNldChbCisgICAgICAgICdNYWNoU2VuZFJpZ2h0JywKKyAgICAgICAgJ1N0cmluZycsCisgICAg
XSkKKworICAgIG5vX2ZvcndhcmRfZGVjbGFyYXRpb25fdHlwZXMgPSBmcm96ZW5zZXQoWworICAg
ICAgICAnTWFjaFNlbmRSaWdodCcsCisgICAgICAgICdTdHJpbmcnLAorICAgICAgICAnV2ViQ29y
ZTo6RG9jdW1lbnRJZGVudGlmaWVyJywKKyAgICAgICAgJ1dlYkNvcmU6OkZldGNoSWRlbnRpZmll
cicsCisgICAgICAgICdXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXInLAorICAgICAgICAnV2ViQ29y
ZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllcicsCisgICAgICAgICdXZWJDb3JlOjpQYWdlSWRl
bnRpZmllcicsCisgICAgICAgICdXZWJDb3JlOjpQb2ludGVySUQnLAorICAgICAgICAnV2ViQ29y
ZTo6UHJvY2Vzc0lkZW50aWZpZXInLAorICAgICAgICAnV2ViQ29yZTo6U2VydmljZVdvcmtlcklk
ZW50aWZpZXInLAorICAgICAgICAnV2ViQ29yZTo6U2VydmljZVdvcmtlckpvYklkZW50aWZpZXIn
LAorICAgICAgICAnV2ViQ29yZTo6U2VydmljZVdvcmtlck9yQ2xpZW50RGF0YScsCisgICAgICAg
ICdXZWJDb3JlOjpTZXJ2aWNlV29ya2VyT3JDbGllbnRJZGVudGlmaWVyJywKKyAgICAgICAgJ1dl
YkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyJywKKyAgICAgICAgJ1dl
YkNvcmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXInLAorICAgICAgICAnV2ViS2l0OjpB
Y3Rpdml0eVN0YXRlQ2hhbmdlSUQnLAorICAgICAgICAnV2ViS2l0OjpMYXllckhvc3RpbmdDb250
ZXh0SUQnLAorICAgICAgICAnV2ViS2l0OjpUcmFuc2FjdGlvbklEJywKKyAgICAgICAgJ1dlYktp
dDo6U3RvcmFnZUFyZWFJZGVudGlmaWVyJywKKyAgICAgICAgJ1dlYktpdDo6U3RvcmFnZUFyZWFJ
bXBsSWRlbnRpZmllcicsCisgICAgICAgICdXZWJLaXQ6OlN0b3JhZ2VOYW1lc3BhY2VJZGVudGlm
aWVyJywKKyAgICAgICAgJ1dlYktpdDo6VXNlckNvbnRlbnRDb250cm9sbGVySWRlbnRpZmllcics
CisgICAgICAgICdXZWJLaXQ6OldlYlBhZ2VQcm94eUlkZW50aWZpZXInLAorICAgIF0pCisKKyAg
ICBmb3IgbWVzc2FnZSBpbiByZWNlaXZlci5tZXNzYWdlczoKKyAgICAgICAgaWYgbWVzc2FnZS5y
ZXBseV9wYXJhbWV0ZXJzID09IE5vbmUgb3Igbm90IChtZXNzYWdlLmhhc19hdHRyaWJ1dGUoU1lO
Q0hST05PVVNfQVRUUklCVVRFKSBvciBtZXNzYWdlLmhhc19hdHRyaWJ1dGUoQVNZTkNfQVRUUklC
VVRFKSk6CisgICAgICAgICAgICBjb250aW51ZQorCisgICAgICAgIGZvciBwYXJhbWV0ZXIgaW4g
bWVzc2FnZS5yZXBseV9wYXJhbWV0ZXJzOgorICAgICAgICAgICAga2luZCA9IHBhcmFtZXRlci5r
aW5kCisgICAgICAgICAgICB0eXBlID0gcGFyYW1ldGVyLnR5cGUKKworICAgICAgICAgICAgaWYg
dHlwZS5maW5kKCc8JykgIT0gLTEgb3IgdHlwZSBpbiBub19mb3J3YXJkX2RlY2xhcmF0aW9uX3R5
cGVzOgorICAgICAgICAgICAgICAgICMgRG9uJ3QgZm9yd2FyZCBkZWNsYXJlIGNsYXNzIHRlbXBs
YXRlcy4KKyAgICAgICAgICAgICAgICBoZWFkZXJzLnVwZGF0ZShoZWFkZXJzX2Zvcl90eXBlKHR5
cGUpKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlCisKKyAgICAgICAgICAgIHNwbGl0ID0gdHlw
ZS5zcGxpdCgnOjonKQorCisgICAgICAgICAgICAjIEhhbmRsZSBXVEYgdHlwZXMgZXZlbiBpZiB0
aGUgV1RGOjogcHJlZml4IGlzIG5vdCBnaXZlbgorICAgICAgICAgICAgaWYgc3BsaXRbMF0gaW4g
bm9uX3RlbXBsYXRlX3d0Zl90eXBlczoKKyAgICAgICAgICAgICAgICBzcGxpdC5pbnNlcnQoMCwg
J1dURicpCisKKyAgICAgICAgICAgIGlmIGxlbihzcGxpdCkgPT0gMjoKKyAgICAgICAgICAgICAg
ICBuYW1lc3BhY2UgPSBzcGxpdFswXQorICAgICAgICAgICAgICAgIGlubmVyX3R5cGUgPSBzcGxp
dFsxXQorICAgICAgICAgICAgICAgIHR5cGVzX2J5X25hbWVzcGFjZVtuYW1lc3BhY2VdLmFkZCgo
a2luZCwgaW5uZXJfdHlwZSkpCisgICAgICAgICAgICBlbGlmIGxlbihzcGxpdCkgPiAyOgorICAg
ICAgICAgICAgICAgICMgV2UgcHJvYmFibHkgaGF2ZSBhIG5lc3RlZCBzdHJ1Y3QsIHdoaWNoIG1l
YW5zIHdlIGNhbid0IGZvcndhcmQgZGVjbGFyZSBpdC4KKyAgICAgICAgICAgICAgICAjIEluY2x1
ZGUgaXRzIGhlYWRlciBpbnN0ZWFkLgorICAgICAgICAgICAgICAgIGhlYWRlcnMudXBkYXRlKGhl
YWRlcnNfZm9yX3R5cGUodHlwZSkpCisKKyAgICBmb3J3YXJkX2RlY2xhcmF0aW9ucyA9ICdcbicu
am9pbihbZm9yd2FyZF9kZWNsYXJhdGlvbnNfZm9yX25hbWVzcGFjZShuYW1lc3BhY2UsIHR5cGVz
KSBmb3IgKG5hbWVzcGFjZSwgdHlwZXMpIGluIHNvcnRlZCh0eXBlc19ieV9uYW1lc3BhY2UuaXRl
bXMoKSldKQorCisgICAgaGVhZGVyX2luY2x1ZGVzID0gW10KKyAgICBmb3IgaGVhZGVyIGluIHNv
cnRlZChoZWFkZXJzKToKKyAgICAgICAgaWYgaGVhZGVyIGluIGhlYWRlcl9jb25kaXRpb25zIGFu
ZCBub3QgTm9uZSBpbiBoZWFkZXJfY29uZGl0aW9uc1toZWFkZXJdOgorICAgICAgICAgICAgaGVh
ZGVyX2luY2x1ZGUgPSAnI2lmICVzXG4nICUgJyB8fCAnLmpvaW4oc2V0KGhlYWRlcl9jb25kaXRp
b25zW2hlYWRlcl0pKQorICAgICAgICAgICAgaGVhZGVyX2luY2x1ZGUgKz0gJyNpbmNsdWRlICVz
XG4nICUgaGVhZGVyCisgICAgICAgICAgICBoZWFkZXJfaW5jbHVkZSArPSAnI2VuZGlmXG4nCisg
ICAgICAgICAgICBoZWFkZXJfaW5jbHVkZXMuYXBwZW5kKGhlYWRlcl9pbmNsdWRlKQorICAgICAg
ICBlbHNlOgorICAgICAgICAgICAgaGVhZGVyX2luY2x1ZGVzLmFwcGVuZCgnI2luY2x1ZGUgJXNc
bicgJSBoZWFkZXIpCisKKyAgICByZXR1cm4gKGZvcndhcmRfZGVjbGFyYXRpb25zLCBoZWFkZXJf
aW5jbHVkZXMpCisKKworZGVmIGdlbmVyYXRlX21lc3NhZ2VzX3JlcGx5X2hlYWRlcihyZWNlaXZl
cik6CisgICAgcmVzdWx0ID0gW10KKworICAgIHJlc3VsdC5hcHBlbmQoX2xpY2Vuc2VfaGVhZGVy
KQogCisgICAgcmVzdWx0LmFwcGVuZCgnI3ByYWdtYSBvbmNlXG4nKQorICAgIHJlc3VsdC5hcHBl
bmQoJ1xuJykKKworICAgIGlmIHJlY2VpdmVyLmNvbmRpdGlvbjoKKyAgICAgICAgcmVzdWx0LmFw
cGVuZCgnI2lmICVzXG5cbicgJSByZWNlaXZlci5jb25kaXRpb24pCisKKyAgICBmb3J3YXJkX2Rl
Y2xhcmF0aW9ucywgaGVhZGVycyA9IGZvcndhcmRfZGVjbGFyYXRpb25zX2FuZF9oZWFkZXJzX2Zv
cl9yZXBsaWVzKHJlY2VpdmVyKQorCisgICAgcmVzdWx0ICs9IGhlYWRlcnMKKyAgICByZXN1bHQu
YXBwZW5kKCdcbicpCisKKyAgICByZXN1bHQuYXBwZW5kKGZvcndhcmRfZGVjbGFyYXRpb25zKQor
ICAgIHJlc3VsdC5hcHBlbmQoJ1xuJykKKworICAgIHJlc3VsdC5hcHBlbmQoJ25hbWVzcGFjZSBN
ZXNzYWdlcyB7XG5uYW1lc3BhY2UgJXMge1xuJyAlIHJlY2VpdmVyLm5hbWUpCisgICAgcmVzdWx0
LmFwcGVuZCgnXG4nKQorICAgIHJlc3VsdC5hcHBlbmQoJ1xuJy5qb2luKGZpbHRlcihOb25lLCBb
bWVzc2FnZV90b19yZXBseV9mb3J3YXJkX2RlY2xhcmF0aW9uKHgpIGZvciB4IGluIHJlY2VpdmVy
Lm1lc3NhZ2VzXSkpKQorICAgIHJlc3VsdC5hcHBlbmQoJ1xuJykKKyAgICByZXN1bHQuYXBwZW5k
KCd9IC8vIG5hbWVzcGFjZSAlc1xufSAvLyBuYW1lc3BhY2UgTWVzc2FnZXNcbicgJSByZWNlaXZl
ci5uYW1lKQorCisgICAgaWYgcmVjZWl2ZXIuY29uZGl0aW9uOgorICAgICAgICByZXN1bHQuYXBw
ZW5kKCdcbiNlbmRpZiAvLyAlc1xuJyAlIHJlY2VpdmVyLmNvbmRpdGlvbikKKworICAgIHJldHVy
biAnJy5qb2luKHJlc3VsdCkKKworCitkZWYgZ2VuZXJhdGVfbWVzc2FnZXNfaGVhZGVyKHJlY2Vp
dmVyKToKICAgICByZXN1bHQgPSBbXQogCiAgICAgcmVzdWx0LmFwcGVuZChfbGljZW5zZV9oZWFk
ZXIpCkBAIC0yNzUsNiArNDA4LDkgQEAgZGVmIGdlbmVyYXRlX21lc3NhZ2VzX2hlYWRlcihmaWxl
KToKICAgICByZXN1bHQuYXBwZW5kKCcjcHJhZ21hIG9uY2VcbicpCiAgICAgcmVzdWx0LmFwcGVu
ZCgnXG4nKQogCisgICAgcmVzdWx0LmFwcGVuZCgnI2luY2x1ZGUgIiVzTWVzc2FnZXNSZXBsaWVz
LmgiJyAlIHJlY2VpdmVyLm5hbWUpCisgICAgcmVzdWx0LmFwcGVuZCgnXG4nKQorCiAgICAgaWYg
cmVjZWl2ZXIuY29uZGl0aW9uOgogICAgICAgICByZXN1bHQuYXBwZW5kKCcjaWYgJXNcblxuJyAl
IHJlY2VpdmVyLmNvbmRpdGlvbikKIApAQCAtNTE1LDggKzY1MSw3IEBAIGRlZiBoZWFkZXJzX2Zv
cl90eXBlKHR5cGUpOgogICAgIHJldHVybiBoZWFkZXJzCiAKIAotZGVmIGdlbmVyYXRlX21lc3Nh
Z2VfaGFuZGxlcihmaWxlKToKLSAgICByZWNlaXZlciA9IHBhcnNlci5wYXJzZShmaWxlKQorZGVm
IGdlbmVyYXRlX21lc3NhZ2VfaGFuZGxlcihyZWNlaXZlcik6CiAgICAgaGVhZGVyX2NvbmRpdGlv
bnMgPSB7CiAgICAgICAgICciJXMiJyAlIG1lc3NhZ2VzX2hlYWRlcl9maWxlbmFtZShyZWNlaXZl
cik6IFtOb25lXSwKICAgICAgICAgJyJIYW5kbGVNZXNzYWdlLmgiJzogW05vbmVdLApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0
dXJlTWFuYWdlclByb3h5LmNwcAppbmRleCA5MWNmOTQ4MGM3NTE4Y2Q5YmIxN2U5ZmNhNGU5MTZk
MGIwNzNiMDhiLi5lNTE3N2QwMjQ3YmYzZjcxMDk5M2U4YzQ4MTQ1NDQ4ZDQyMmYwMzgxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFu
YWdlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVk
aWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcApAQCAtMzAsNiArMzAsNyBAQAogCiAjaW5jbHVkZSAi
U2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UuaCIKICNpbmNsdWRlICJVc2VyTWVkaWFDYXB0dXJlTWFu
YWdlck1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eU1l
c3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCiAjaW5jbHVkZSAi
V2ViUHJvY2Vzc1Byb3h5LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9DQVJpbmdCdWZmZXIuaD4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyUHJveHkuaAppbmRleCA5YmRkYjk5MDlkZjdlOGZlZjFlNTQ4MDZjYmU2YmM1
YzQwY2ZjNTgxLi40NDQ2MGQ0ZDk0MDBiNmQxMTYxMzdmNTJmZDYwNTU3Yjg0OTgxZDI1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFu
YWdlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXJQcm94eS5oCkBAIC0zMCw3ICszMCw2IEBACiAjaW5jbHVkZSAiQ29ubmVj
dGlvbi5oIgogI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgogI2luY2x1ZGUgIlVzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyLmgiCi0jaW5jbHVkZSAiVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94
eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlLmg+CiAK
IG5hbWVzcGFjZSBXZWJLaXQgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
RG93bmxvYWRzL0Rvd25sb2FkUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Rvd25s
b2Fkcy9Eb3dubG9hZFByb3h5LmgKaW5kZXggNjNiMGY4NTgxY2EyZTliYWExYTY1NDZhODE4MjI2
YjE2YjIwNzUzOC4uY2QwYjAwZTU3MzExNGU3NzkzNmNiNzhkNzE4NWM1NjA5N2NlZTgzZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkUHJveHku
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRQcm94eS5o
CkBAIC0yOCw3ICsyOCw2IEBACiAjaW5jbHVkZSAiQVBJT2JqZWN0LmgiCiAjaW5jbHVkZSAiQ29u
bmVjdGlvbi5oIgogI2luY2x1ZGUgIkRvd25sb2FkSUQuaCIKLSNpbmNsdWRlICJEb3dubG9hZFBy
b3h5TWVzc2FnZXMuaCIKICNpbmNsdWRlICJTYW5kYm94RXh0ZW5zaW9uLmgiCiAjaW5jbHVkZSA8
V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1By
b3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQ
cm94eS5jcHAKaW5kZXggNmMxOTA1MjlkYWVlMTBiMDQwZWQ3YjEwNGNkZDMzNjU2MmViMzVhNy4u
MTI1MzQ3YmYzNmRjZDViNzMyNWFlODAzM2RiYWY5M2JiZDNhNjUyOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3Bw
CkBAIC0zOSw2ICszOSw3IEBACiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uSW5m
by5oIgogI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCiAjaW5j
bHVkZSAiTmV0d29ya1Byb2Nlc3NNZXNzYWdlcy5oIgorI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNz
UHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlNhbmRib3hFeHRlbnNpb24uaCIKICNpZiBIQVZF
KFNFQ19LRVlfUFJPWFkpCiAjaW5jbHVkZSAiU2VjS2V5UHJveHlTdG9yZS5oIgpAQCAtNTEsNiAr
NTIsNyBAQAogI2luY2x1ZGUgIldlYlByb2Nlc3NNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYlBy
b2Nlc3NQb29sLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5LmgiCisjaW5jbHVkZSAiV2Vi
UHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzU3RvcmUuaCIKICNpbmNsdWRlICJXZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eS5oIgog
I2luY2x1ZGUgIldlYnNpdGVEYXRhLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oCmluZGV4IGRhNGJlZDI2ODI4MThiNDNk
YTQzODg4MWI1NjhlY2MwYmFkNTY2NGQuLjM1ZTA0M2U1NTJjYTBkMzk1MDg3N2E4NWM4OGVhNTBl
ZWZiYmQyOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0
d29ya1Byb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsv
TmV0d29ya1Byb2Nlc3NQcm94eS5oCkBAIC0yNiwyMSArMjYsMjMgQEAKICNwcmFnbWEgb25jZQog
CiAjaW5jbHVkZSAiQXV4aWxpYXJ5UHJvY2Vzc1Byb3h5LmgiCi0jaWYgRU5BQkxFKExFR0FDWV9D
VVNUT01fUFJPVE9DT0xfTUFOQUdFUikKLSNpbmNsdWRlICJMZWdhY3lDdXN0b21Qcm90b2NvbE1h
bmFnZXJQcm94eS5oIgotI2VuZGlmCi0jaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NQcm94eU1lc3Nh
Z2VzLmgiCisjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NQcm94eU1lc3NhZ2VzUmVwbGllcy5oIgog
I2luY2x1ZGUgIlByb2Nlc3NMYXVuY2hlci5oIgogI2luY2x1ZGUgIlByb2Nlc3NUaHJvdHRsZXIu
aCIKICNpbmNsdWRlICJQcm9jZXNzVGhyb3R0bGVyQ2xpZW50LmgiCiAjaW5jbHVkZSAiVXNlckNv
bnRlbnRDb250cm9sbGVySWRlbnRpZmllci5oIgotI2luY2x1ZGUgIldlYlByb2Nlc3NQcm94eU1l
c3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5TWVzc2FnZXNSZXBsaWVzLmgiCiAj
aW5jbHVkZSAiV2Vic2l0ZURhdGFTdG9yZS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQ3Jvc3NTaXRl
TmF2aWdhdGlvbkRhdGFUcmFuc2Zlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVJZGVudGlm
aWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZWdpc3RyYWJsZURvbWFpbi5oPgogI2luY2x1ZGUg
PG1lbW9yeT4KICNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KIAorI2lmIEVOQUJMRShMRUdBQ1lfQ1VT
VE9NX1BST1RPQ09MX01BTkFHRVIpCisjaW5jbHVkZSAiTGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5h
Z2VyUHJveHkuaCIKKyNlbmRpZgorCiBuYW1lc3BhY2UgUEFMIHsKIGNsYXNzIFNlc3Npb25JRDsK
IH0KQEAgLTg3LDcgKzg5LDcgQEAgcHVibGljOgogICAgIGV4cGxpY2l0IE5ldHdvcmtQcm9jZXNz
UHJveHkoV2ViUHJvY2Vzc1Bvb2wmKTsKICAgICB+TmV0d29ya1Byb2Nlc3NQcm94eSgpOwogCi0g
ICAgdm9pZCBnZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oV2ViUHJvY2Vzc1Byb3h5JiwgTWVz
c2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpEZWxh
eWVkUmVwbHkmJik7CisgICAgdm9pZCBnZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oV2ViUHJv
Y2Vzc1Byb3h5JiwgTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0TmV0d29ya1Byb2Nlc3ND
b25uZWN0aW9uRGVsYXllZFJlcGx5JiYpOwogCiAgICAgRG93bmxvYWRQcm94eSYgY3JlYXRlRG93
bmxvYWRQcm94eShXZWJzaXRlRGF0YVN0b3JlJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0Jik7CiAKQEAgLTE2OSw3ICsxNzEsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzeW5jQWxsQ29v
a2llcygpOwogICAgIHZvaWQgZGlkU3luY0FsbENvb2tpZXMoKTsKIAotICAgIHZvaWQgdGVzdFBy
b2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5KFdlYlBhZ2VQ
cm94eUlkZW50aWZpZXIsIE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpUZXN0UHJvY2Vz
c0luY29taW5nU3luY01lc3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5jUmVwbHk6OkRlbGF5ZWRSZXBs
eSYmKTsKKyAgICB2b2lkIHRlc3RQcm9jZXNzSW5jb21pbmdTeW5jTWVzc2FnZXNXaGVuV2FpdGlu
Z0ZvclN5bmNSZXBseShXZWJQYWdlUHJveHlJZGVudGlmaWVyLCBNZXNzYWdlczo6TmV0d29ya1By
b2Nlc3NQcm94eTo6VGVzdFByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9y
U3luY1JlcGx5RGVsYXllZFJlcGx5JiYpOwogCiAgICAgUHJvY2Vzc1Rocm90dGxlciYgdGhyb3R0
bGVyKCkgeyByZXR1cm4gbV90aHJvdHRsZXI7IH0KICAgICBXZWJQcm9jZXNzUG9vbCYgcHJvY2Vz
c1Bvb2woKSB7IHJldHVybiBtX3Byb2Nlc3NQb29sOyB9CkBAIC0yNDIsNyArMjQ0LDcgQEAgcHJp
dmF0ZToKICNlbmRpZgogCiAjaWYgRU5BQkxFKFNBTkRCT1hfRVhURU5TSU9OUykKLSAgICB2b2lk
IGdldFNhbmRib3hFeHRlbnNpb25zRm9yQmxvYkZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBw
YXRocywgTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OkdldFNhbmRib3hFeHRlbnNpb25z
Rm9yQmxvYkZpbGVzOjpBc3luY1JlcGx5JiYpOworICAgIHZvaWQgZ2V0U2FuZGJveEV4dGVuc2lv
bnNGb3JCbG9iRmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mIHBhdGhzLCBNZXNzYWdlczo6TmV0
d29ya1Byb2Nlc3NQcm94eTo6R2V0U2FuZGJveEV4dGVuc2lvbnNGb3JCbG9iRmlsZXNBc3luY1Jl
cGx5JiYpOwogI2VuZGlmCiAKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCkBAIC0yNjUsNyAr
MjY3LDcgQEAgcHJpdmF0ZToKIAogICAgIHN0cnVjdCBDb25uZWN0aW9uUmVxdWVzdCB7CiAgICAg
ICAgIFdlYWtQdHI8V2ViUHJvY2Vzc1Byb3h5PiB3ZWJQcm9jZXNzOwotICAgICAgICBNZXNzYWdl
czo6V2ViUHJvY2Vzc1Byb3h5OjpHZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OkRlbGF5ZWRS
ZXBseSByZXBseTsKKyAgICAgICAgTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0TmV0d29y
a1Byb2Nlc3NDb25uZWN0aW9uRGVsYXllZFJlcGx5IHJlcGx5OwogICAgIH07CiAgICAgdWludDY0
X3QgbV9jb25uZWN0aW9uUmVxdWVzdElkZW50aWZpZXIgeyAwIH07CiAgICAgSGFzaE1hcDx1aW50
NjRfdCwgQ29ubmVjdGlvblJlcXVlc3Q+IG1fY29ubmVjdGlvblJlcXVlc3RzOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzTWFuYWdlci5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NNYW5hZ2Vy
LmNwcAppbmRleCAzNzgyYzg0YjY3NzllOWQ4ZTIwNjhhNmExNTk5MDZmNjdhMGRhNDMwLi5lNTNh
ZjJmZTgxNGUwYjAxZmQ2YTgzN2QwMzRjNDg3MWU1ODU0OGU1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NNYW5hZ2VyLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NNYW5hZ2VyLmNwcApA
QCAtMjksNiArMjksNyBAQAogI2lmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQogCiAjaW5j
bHVkZSAiUGx1Z2luUHJvY2Vzc1Byb3h5LmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5TWVz
c2FnZXMuaCIKICNpbmNsdWRlICJXZWJzaXRlRGF0YUZldGNoT3B0aW9uLmgiCiAjaW5jbHVkZSA8
d3RmL0NyeXB0b2dyYXBoaWNhbGx5UmFuZG9tTnVtYmVyLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVy
RGVzdHJveWVkLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QbHVnaW5z
L1BsdWdpblByb2Nlc3NNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QbHVnaW5z
L1BsdWdpblByb2Nlc3NNYW5hZ2VyLmgKaW5kZXggOTY1Y2IyMjllMGNjZDc3NTc4MWRmZWUwNWNl
OWQ1NmIxZjcxNTIxNy4uOTMwZjBhMTc1MGI2MjgzMzY4OWEzZjU0YjRmYzg2NzZmM2ZmMTZkNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNz
TWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJv
Y2Vzc01hbmFnZXIuaApAQCAtMzEsNyArMzEsNyBAQAogI2luY2x1ZGUgIlBsdWdpblByb2Nlc3Mu
aCIKICNpbmNsdWRlICJQbHVnaW5Qcm9jZXNzQXR0cmlidXRlcy5oIgogI2luY2x1ZGUgIlByb2Nl
c3NUaHJvdHRsZXIuaCIKLSNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHlNZXNzYWdlcy5oIgorI2lu
Y2x1ZGUgIldlYlByb2Nlc3NQcm94eU1lc3NhZ2VzUmVwbGllcy5oIgogI2luY2x1ZGUgPHd0Zi9G
b3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29w
eWFibGUuaD4KQEAgLTU3LDcgKzU3LDcgQEAgcHVibGljOgogCiAgICAgdWludDY0X3QgcGx1Z2lu
UHJvY2Vzc1Rva2VuKGNvbnN0IFBsdWdpbk1vZHVsZUluZm8mLCBQbHVnaW5Qcm9jZXNzVHlwZSwg
UGx1Z2luUHJvY2Vzc1NhbmRib3hQb2xpY3kpOwogCi0gICAgdm9pZCBnZXRQbHVnaW5Qcm9jZXNz
Q29ubmVjdGlvbih1aW50NjRfdCBwbHVnaW5Qcm9jZXNzVG9rZW4sIE1lc3NhZ2VzOjpXZWJQcm9j
ZXNzUHJveHk6OkdldFBsdWdpblByb2Nlc3NDb25uZWN0aW9uOjpEZWxheWVkUmVwbHkmJik7Cisg
ICAgdm9pZCBnZXRQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbih1aW50NjRfdCBwbHVnaW5Qcm9jZXNz
VG9rZW4sIE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldFBsdWdpblByb2Nlc3NDb25uZWN0
aW9uRGVsYXllZFJlcGx5JiYpOwogICAgIHZvaWQgcmVtb3ZlUGx1Z2luUHJvY2Vzc1Byb3h5KFBs
dWdpblByb2Nlc3NQcm94eSopOwogCiAgICAgdm9pZCBmZXRjaFdlYnNpdGVEYXRhKGNvbnN0IFBs
dWdpbk1vZHVsZUluZm8mLCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFGZXRjaE9wdGlvbj4sIFdURjo6
RnVuY3Rpb248dm9pZCAoVmVjdG9yPFN0cmluZz4pPiYmIGNvbXBsZXRpb25IYW5kbGVyKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1By
b3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94
eS5oCmluZGV4IDg3YjNmNTBlYTRiYmMwYzMxYmIxOWIyY2NhYTIwYWM2NDAzZWYyODIuLjcyMTk5
MjExNDg1MTUxMjZlNWNkNTg2MDU0NzNlOTFhYWQ4NjA3ZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkuaApAQCAtMzMsNyAr
MzMsNyBAQAogI2luY2x1ZGUgIlBsdWdpblByb2Nlc3MuaCIKICNpbmNsdWRlICJQbHVnaW5Qcm9j
ZXNzQXR0cmlidXRlcy5oIgogI2luY2x1ZGUgIlByb2Nlc3NMYXVuY2hlci5oIgotI2luY2x1ZGUg
IldlYlByb2Nlc3NQcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5TWVz
c2FnZXNSZXBsaWVzLmgiCiAjaW5jbHVkZSA8d3RmL0RlcXVlLmg+CiAKICNpZiBQTEFURk9STShD
T0NPQSkKQEAgLTcxLDcgKzcxLDcgQEAgcHVibGljOgogCiAgICAgLy8gQXNrcyB0aGUgcGx1Zy1p
biBwcm9jZXNzIHRvIGNyZWF0ZSBhIG5ldyBjb25uZWN0aW9uIHRvIGEgd2ViIHByb2Nlc3MuIFRo
ZSBjb25uZWN0aW9uIGlkZW50aWZpZXIgd2lsbCBiZQogICAgIC8vIGVuY29kZWQgaW4gdGhlIGdp
dmVuIGFyZ3VtZW50IGVuY29kZXIgYW5kIHNlbnQgYmFjayB0byB0aGUgY29ubmVjdGlvbiBvZiB0
aGUgZ2l2ZW4gd2ViIHByb2Nlc3MuCi0gICAgdm9pZCBnZXRQbHVnaW5Qcm9jZXNzQ29ubmVjdGlv
bihNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXRQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbjo6
RGVsYXllZFJlcGx5JiYpOworICAgIHZvaWQgZ2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24oTWVz
c2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25EZWxheWVk
UmVwbHkmJik7CiAKICAgICB2b2lkIGZldGNoV2Vic2l0ZURhdGEoQ29tcGxldGlvbkhhbmRsZXI8
dm9pZCAoVmVjdG9yPFN0cmluZz4pPiYmKTsKICAgICB2b2lkIGRlbGV0ZVdlYnNpdGVEYXRhKFdh
bGxUaW1lIG1vZGlmaWVkU2luY2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQgKCk+JiYpOwpAQCAt
MTQzLDcgKzE0Myw3IEBAIHByaXZhdGU6CiAgICAgLy8gVGhlIGNvbm5lY3Rpb24gdG8gdGhlIHBs
dWctaW4gaG9zdCBwcm9jZXNzLgogICAgIFJlZlB0cjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVj
dGlvbjsKIAotICAgIERlcXVlPE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldFBsdWdpblBy
b2Nlc3NDb25uZWN0aW9uOjpEZWxheWVkUmVwbHk+IG1fcGVuZGluZ0Nvbm5lY3Rpb25SZXBsaWVz
OworICAgIERlcXVlPE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldFBsdWdpblByb2Nlc3ND
b25uZWN0aW9uRGVsYXllZFJlcGx5PiBtX3BlbmRpbmdDb25uZWN0aW9uUmVwbGllczsKIAogICAg
IFZlY3Rvcjx1aW50NjRfdD4gbV9wZW5kaW5nRmV0Y2hXZWJzaXRlRGF0YVJlcXVlc3RzOwogICAg
IEhhc2hNYXA8dWludDY0X3QsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQgKFZlY3RvcjxTdHJpbmc+
KT4+IG1fcGVuZGluZ0ZldGNoV2Vic2l0ZURhdGFDYWxsYmFja3M7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuaAppbmRleCAxNzUyMTUwNDc0OGJmYjZm
MjA2M2NlMTRjYTQ1ZmQxY2M3MTgzZWNiLi5mMzAxYTdjYjllYTg2NDJhMWFiZjQ2NDE3ZDE1MzU0
YmY3YzJlMDY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25h
bFBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFn
ZVByb3h5LmgKQEAgLTI4LDcgKzI4LDcgQEAKICNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIK
ICNpbmNsdWRlICJTYW5kYm94RXh0ZW5zaW9uLmgiCiAjaW5jbHVkZSAiV2ViRnJhbWVQb2xpY3lM
aXN0ZW5lclByb3h5LmgiCi0jaW5jbHVkZSAiV2ViUGFnZVByb3h5TWVzc2FnZXMuaCIKKyNpbmNs
dWRlICJXZWJQYWdlUHJveHlNZXNzYWdlc1JlcGxpZXMuaCIKICNpbmNsdWRlICJXZWJzaXRlUG9s
aWNpZXNEYXRhLmgiCiAjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KIApAQCAtMTExLDcgKzExMSw3
IEBAIHByaXZhdGU6CiAgICAgdm9pZCBiYWNrRm9yd2FyZEdvVG9JdGVtKGNvbnN0IFdlYkNvcmU6
OkJhY2tGb3J3YXJkSXRlbUlkZW50aWZpZXImLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFNhbmRi
b3hFeHRlbnNpb246OkhhbmRsZSYmKT4mJik7CiAgICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JOYXZp
Z2F0aW9uQWN0aW9uU3luYyhXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGJvb2wgaXNNYWluRnJh
bWUsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lk
ZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiwK
ICAgICAgICAgRnJhbWVJbmZvRGF0YSYmLCBPcHRpb25hbDxXZWJQYWdlUHJveHlJZGVudGlmaWVy
PiBvcmlnaW5hdGluZ1BhZ2VJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmln
aW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBJUEM6OkZvcm1EYXRhUmVm
ZXJlbmNlJiYgcmVxdWVzdEJvZHksCi0gICAgICAgIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2Um
JiByZWRpcmVjdFJlc3BvbnNlLCBjb25zdCBVc2VyRGF0YSYsIE1lc3NhZ2VzOjpXZWJQYWdlUHJv
eHk6OkRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jOjpEZWxheWVkUmVwbHkmJik7
CisgICAgICAgIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiByZWRpcmVjdFJlc3BvbnNlLCBj
b25zdCBVc2VyRGF0YSYsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRlY2lkZVBvbGljeUZvck5h
dmlnYXRpb25BY3Rpb25TeW5jRGVsYXllZFJlcGx5JiYpOwogI2lmIFVTRShRVUlDS19MT09LKQog
ICAgIHZvaWQgZGlkUmVxdWVzdFBhc3N3b3JkRm9yUXVpY2tMb29rRG9jdW1lbnRJbk1haW5GcmFt
ZShjb25zdCBTdHJpbmcmIGZpbGVOYW1lKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvU3VzcGVuZGVkUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9TdXNwZW5kZWRQYWdlUHJveHkuaAppbmRleCA3NjRiZWRjNzdiZTgxYjQ1YjQ5MjY1YmEx
MTVhY2FmN2I1MDc3MDI0Li5lZTJjNmEzNzUyNGYyYzkxYWRhZmVhYWJjZjc5M2FkZTZkNjFkOGQ3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TdXNwZW5kZWRQYWdlUHJveHku
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TdXNwZW5kZWRQYWdlUHJveHkuaApAQCAt
MjgsMTEgKzI4LDE1IEBACiAjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIlByb2Nl
c3NUaHJvdHRsZXIuaCIKICNpbmNsdWRlICJXZWJCYWNrRm9yd2FyZExpc3RJdGVtLmgiCi0jaW5j
bHVkZSAiV2ViUGFnZVByb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJQYWdlUHJveHlNZXNz
YWdlc1JlcGxpZXMuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lSWRlbnRpZmllci5oPgogI2lu
Y2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KIAorbmFt
ZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgUmVnaXN0cmFibGVEb21haW47Cit9CisKIG5hbWVzcGFj
ZSBXZWJLaXQgewogCiBjbGFzcyBXZWJCYWNrRm9yd2FyZENhY2hlOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggMmNjOTY5MzZjNzBkM2JiOTMzOWNmYmZhNTE4
YjI3ZGRlZmZiYmZjZC4uMGIxZDU3MmQ4MDZlZjU3M2Y1YWQwOTg2NDI1NzQxMjIyNWE3ODE4NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0xNDksOCArMTQ5
LDYgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lTG9hZGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9HbG9iYWxGcmFtZUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0dsb2JhbFdpbmRv
d0lkZW50aWZpZXIuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL0pTRE9NQmluZGluZy5oPgotI2luY2x1
ZGUgPFdlYkNvcmUvSlNET01FeGNlcHRpb25IYW5kbGluZy5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
TGVuZ3RoQm94Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9NSU1FVHlwZVJlZ2lzdHJ5Lmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9NZWRpYVN0cmVhbVJlcXVlc3QuaD4KQEAgLTI1NSw2ICsyNTMsMTUgQEAK
ICNpbmNsdWRlIDxkM2QxMV8xLmg+CiAjZW5kaWYKIAorbmFtZXNwYWNlIFdlYkNvcmUgeworc3Ry
dWN0IEV4Y2VwdGlvbkRldGFpbHMgeworICAgIFN0cmluZyBtZXNzYWdlOworICAgIGludCBsaW5l
TnVtYmVyIHsgMCB9OworICAgIGludCBjb2x1bW5OdW1iZXIgeyAwIH07CisgICAgU3RyaW5nIHNv
dXJjZVVSTDsKK307Cit9CisKIC8vIFRoaXMgY29udHJvbHMgd2hhdCBzdHJhdGVneSB3ZSB1c2Ug
Zm9yIG1vdXNlIHdoZWVsIGNvYWxlc2NpbmcuCiAjZGVmaW5lIE1FUkdFX1dIRUVMX0VWRU5UUyAx
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggYzZhNGZkY2ZhMzVl
Y2I1NDEyOWE5N2I0NTA4OGEyZmMxMDQ3MzRlZC4uMjA5ZjRkY2Q3NThiNDU1ZDNmNzZlYWQ5Yjdj
MmE0NWI3YTNiZjI3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAg
LTYyLDkgKzYyLDkgQEAKICNpbmNsdWRlICJXZWJQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQu
aCIKICNpbmNsdWRlICJXZWJQYWdlSW5qZWN0ZWRCdW5kbGVDbGllbnQuaCIKICNpbmNsdWRlICJX
ZWJQYWdlUHJveHlJZGVudGlmaWVyLmgiCisjaW5jbHVkZSAiV2ViUGFnZVByb3h5TWVzc2FnZXNS
ZXBsaWVzLmgiCiAjaW5jbHVkZSAiV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHkuaCIKICNpbmNs
dWRlICJXZWJQcmVmZXJlbmNlcy5oIgotI2luY2x1ZGUgIldlYlBhZ2VQcm94eU1lc3NhZ2VzLmgi
CiAjaW5jbHVkZSAiV2ViUG9wdXBNZW51UHJveHkuaCIKICNpbmNsdWRlICJXZWJVbmRvU3RlcElE
LmgiCiAjaW5jbHVkZSAiV2Vic2l0ZVBvbGljaWVzRGF0YS5oIgpAQCAtMTczLDggKzE3MywxMyBA
QCBjbGFzcyBVSUNsaWVudDsKIGNsYXNzIFVSTFJlcXVlc3Q7CiB9CiAKK25hbWVzcGFjZSBJbnNw
ZWN0b3IgeworZW51bSBjbGFzcyBJbnNwZWN0b3JUYXJnZXRUeXBlIDogdWludDhfdDsKK30KKwog
bmFtZXNwYWNlIElQQyB7CiBjbGFzcyBEZWNvZGVyOworY2xhc3MgRm9ybURhdGFSZWZlcmVuY2U7
CiB9CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTIwOSw5ICsyMTQsMTEgQEAgc3RydWN0IEJh
Y2tGb3J3YXJkSXRlbUlkZW50aWZpZXI7CiBzdHJ1Y3QgQ29udGVudFJ1bGVMaXN0UmVzdWx0czsK
IHN0cnVjdCBEYXRhTGlzdFN1Z2dlc3Rpb25JbmZvcm1hdGlvbjsKIHN0cnVjdCBEaWN0aW9uYXJ5
UG9wdXBJbmZvOworc3RydWN0IERyYWdJdGVtOwogc3RydWN0IEV4Y2VwdGlvbkRldGFpbHM7CiBz
dHJ1Y3QgRmlsZUNob29zZXJTZXR0aW5nczsKIHN0cnVjdCBHbG9iYWxXaW5kb3dJZGVudGlmaWVy
Oworc3RydWN0IExpbmtJY29uOwogc3RydWN0IE1lZGlhU3RyZWFtUmVxdWVzdDsKIHN0cnVjdCBN
b2NrV2ViQXV0aGVudGljYXRpb25Db25maWd1cmF0aW9uOwogc3RydWN0IFByZXdhcm1JbmZvcm1h
dGlvbjsKQEAgLTI4NiwyMCArMjkzLDI2IEBAIGNsYXNzIFdlYlZpZXdEaWRNb3ZlVG9XaW5kb3dP
YnNlcnZlcjsKIAogc3RydWN0IEF0dHJpYnV0ZWRTdHJpbmc7CiBzdHJ1Y3QgQ29sb3JTcGFjZURh
dGE7CitzdHJ1Y3QgRGF0YURldGVjdGlvblJlc3VsdDsKIHN0cnVjdCBEb2N1bWVudEVkaXRpbmdD
b250ZXh0Owogc3RydWN0IERvY3VtZW50RWRpdGluZ0NvbnRleHRSZXF1ZXN0Owogc3RydWN0IEVk
aXRpbmdSYW5nZTsKIHN0cnVjdCBFZGl0b3JTdGF0ZTsKIHN0cnVjdCBFbGVtZW50Q29udGV4dDsK
K3N0cnVjdCBGb2N1c2VkRWxlbWVudEluZm9ybWF0aW9uOwogc3RydWN0IEZvbnRJbmZvOwogc3Ry
dWN0IEZyYW1lSW5mb0RhdGE7CiBzdHJ1Y3QgSW5zZXJ0VGV4dE9wdGlvbnM7CiBzdHJ1Y3QgSW50
ZXJhY3Rpb25JbmZvcm1hdGlvblJlcXVlc3Q7CiBzdHJ1Y3QgTG9hZFBhcmFtZXRlcnM7CitzdHJ1
Y3QgTmF2aWdhdGlvbkFjdGlvbkRhdGE7CiBzdHJ1Y3QgUGxhdGZvcm1Qb3B1cE1lbnVEYXRhOwog
c3RydWN0IFByaW50SW5mbzsKK3N0cnVjdCBQREZDb250ZXh0TWVudTsKIHN0cnVjdCBXZWJBdXRv
Y29ycmVjdGlvbkRhdGE7CitzdHJ1Y3QgV2ViTmF2aWdhdGlvbkRhdGFTdG9yZTsKIHN0cnVjdCBX
ZWJQb3B1cEl0ZW07CitzdHJ1Y3QgV2ViU3BlZWNoU3ludGhlc2lzVm9pY2U7CiBzdHJ1Y3QgVVJM
U2NoZW1lVGFza1BhcmFtZXRlcnM7CiBzdHJ1Y3QgVXNlck1lc3NhZ2U7CiAKQEAgLTE0MjcsNyAr
MTQ0MCw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0Rm9jdXMoYm9vbCBmb2N1c2VkKTsKICAg
ICB2b2lkIHNldFdpbmRvd0ZyYW1lKGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpOwotICAgIHZv
aWQgZ2V0V2luZG93RnJhbWUoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6R2V0V2luZG93RnJhbWU6
OkRlbGF5ZWRSZXBseSYmKTsKKyAgICB2b2lkIGdldFdpbmRvd0ZyYW1lKE1lc3NhZ2VzOjpXZWJQ
YWdlUHJveHk6OkdldFdpbmRvd0ZyYW1lRGVsYXllZFJlcGx5JiYpOwogICAgIHZvaWQgZ2V0V2lu
ZG93RnJhbWVXaXRoQ2FsbGJhY2soRnVuY3Rpb248dm9pZChXZWJDb3JlOjpGbG9hdFJlY3QpPiYm
KTsKIAogICAgIFdlYkNvcmU6OlVzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb24gdXNlckludGVy
ZmFjZUxheW91dERpcmVjdGlvbigpOwpAQCAtMTUzNSw3ICsxNTQ4LDcgQEAgcHVibGljOgogICAg
IHZvaWQgYmFja0ZvcndhcmRHb1RvSXRlbVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBj
b25zdCBXZWJDb3JlOjpCYWNrRm9yd2FyZEl0ZW1JZGVudGlmaWVyJiwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmJik+JiYpOwogICAgIHZvaWQgZGVjaWRl
UG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmNTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4m
JiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBib29sIGlzTWFpbkZyYW1lLCBXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbkRhdGEmJiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50
NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYsCiAgICAgICAgIEZyYW1l
SW5mb0RhdGEmJiwgT3B0aW9uYWw8V2ViUGFnZVByb3h5SWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQ
YWdlSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1ZXN0LCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJlcXVl
c3RCb2R5LAotICAgICAgICBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYgcmVkaXJlY3RSZXNw
b25zZSwgY29uc3QgVXNlckRhdGEmLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEZWNpZGVQb2xp
Y3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luYzo6RGVsYXllZFJlcGx5JiYpOworICAgICAgICBXZWJD
b3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYgcmVkaXJlY3RSZXNwb25zZSwgY29uc3QgVXNlckRhdGEm
LCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9u
U3luY0RlbGF5ZWRSZXBseSYmKTsKICNpZiBVU0UoUVVJQ0tfTE9PSykKICAgICB2b2lkIGRpZFJl
cXVlc3RQYXNzd29yZEZvclF1aWNrTG9va0RvY3VtZW50SW5NYWluRnJhbWVTaGFyZWQoUmVmPFdl
YlByb2Nlc3NQcm94eT4mJiwgY29uc3QgU3RyaW5nJiBmaWxlTmFtZSk7CiAjZW5kaWYKQEAgLTE2
NzYsNyArMTY4OSw3IEBAIHByaXZhdGU6CiAgICAgICAgIFdlYkNvcmU6OlJlc291cmNlUmVzcG9u
c2UmJiByZWRpcmVjdFJlc3BvbnNlLCBjb25zdCBVc2VyRGF0YSYsIHVpbnQ2NF90IGxpc3RlbmVy
SUQpOwogICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmMoV2ViQ29y
ZTo6RnJhbWVJZGVudGlmaWVyLCBib29sIGlzTWFpbkZyYW1lLCBXZWJDb3JlOjpTZWN1cml0eU9y
aWdpbkRhdGEmJiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZp
Z2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYsCiAgICAgICAgIEZyYW1lSW5mb0RhdGEm
JiwgT3B0aW9uYWw8V2ViUGFnZVByb3h5SWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsIGNv
bnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3QmJiwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJlcXVlc3RCb2R5LAot
ICAgICAgICBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYgcmVkaXJlY3RSZXNwb25zZSwgY29u
c3QgVXNlckRhdGEmLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEZWNpZGVQb2xpY3lGb3JOYXZp
Z2F0aW9uQWN0aW9uU3luYzo6RGVsYXllZFJlcGx5JiYpOworICAgICAgICBXZWJDb3JlOjpSZXNv
dXJjZVJlc3BvbnNlJiYgcmVkaXJlY3RSZXNwb25zZSwgY29uc3QgVXNlckRhdGEmLCBNZXNzYWdl
czo6V2ViUGFnZVByb3h5OjpEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luY0RlbGF5
ZWRSZXBseSYmKTsKICAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbihXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYs
IFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiwK
ICAgICAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIGNvbnN0IFN0cmluZyYgZnJhbWVO
YW1lLCB1aW50NjRfdCBsaXN0ZW5lcklELCBjb25zdCBVc2VyRGF0YSYpOwogICAgIHZvaWQgZGVj
aWRlUG9saWN5Rm9yUmVzcG9uc2UoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIs
IHVpbnQ2NF90IG5hdmlnYXRpb25JRCwKQEAgLTE2OTcsMTEgKzE3MTAsMTEgQEAgcHJpdmF0ZToK
ICAgICB2b2lkIGRpZFVwZGF0ZUhpc3RvcnlUaXRsZShjb25zdCBTdHJpbmcmIHRpdGxlLCBjb25z
dCBTdHJpbmcmIHVybCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKTsKIAogICAgIC8vIFVJIGNs
aWVudAotICAgIHZvaWQgY3JlYXRlTmV3UGFnZShjb25zdCBGcmFtZUluZm9EYXRhJiwgT3B0aW9u
YWw8V2ViUGFnZVByb3h5SWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsIFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCYmLCBXZWJDb3JlOjpXaW5kb3dGZWF0dXJlcyYmLCBOYXZpZ2F0aW9uQWN0
aW9uRGF0YSYmLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpDcmVhdGVOZXdQYWdlOjpEZWxheWVk
UmVwbHkmJik7CisgICAgdm9pZCBjcmVhdGVOZXdQYWdlKGNvbnN0IEZyYW1lSW5mb0RhdGEmLCBP
cHRpb25hbDxXZWJQYWdlUHJveHlJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwgV2ViQ29y
ZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIFdlYkNvcmU6OldpbmRvd0ZlYXR1cmVzJiYsIE5hdmlnYXRp
b25BY3Rpb25EYXRhJiYsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkNyZWF0ZU5ld1BhZ2VEZWxh
eWVkUmVwbHkmJik7CiAgICAgdm9pZCBzaG93UGFnZSgpOwotICAgIHZvaWQgcnVuSmF2YVNjcmlw
dEFsZXJ0KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW5EYXRhJiwgY29uc3QgU3RyaW5nJiwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UnVuSmF2
YVNjcmlwdEFsZXJ0OjpEZWxheWVkUmVwbHkmJik7Ci0gICAgdm9pZCBydW5KYXZhU2NyaXB0Q29u
ZmlybShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luRGF0YSYsIGNvbnN0IFN0cmluZyYsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJ1bkphdmFT
Y3JpcHRDb25maXJtOjpEZWxheWVkUmVwbHkmJik7Ci0gICAgdm9pZCBydW5KYXZhU2NyaXB0UHJv
bXB0KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmln
aW5EYXRhJiwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgTWVzc2FnZXM6OldlYlBhZ2VQ
cm94eTo6UnVuSmF2YVNjcmlwdFByb21wdDo6RGVsYXllZFJlcGx5JiYpOworICAgIHZvaWQgcnVu
SmF2YVNjcmlwdEFsZXJ0KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6
U2VjdXJpdHlPcmlnaW5EYXRhJiwgY29uc3QgU3RyaW5nJiwgTWVzc2FnZXM6OldlYlBhZ2VQcm94
eTo6UnVuSmF2YVNjcmlwdEFsZXJ0RGVsYXllZFJlcGx5JiYpOworICAgIHZvaWQgcnVuSmF2YVNj
cmlwdENvbmZpcm0oV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbkRhdGEmLCBjb25zdCBTdHJpbmcmLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpS
dW5KYXZhU2NyaXB0Q29uZmlybURlbGF5ZWRSZXBseSYmKTsKKyAgICB2b2lkIHJ1bkphdmFTY3Jp
cHRQcm9tcHQoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbkRhdGEmLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBNZXNzYWdlczo6V2Vi
UGFnZVByb3h5OjpSdW5KYXZhU2NyaXB0UHJvbXB0RGVsYXllZFJlcGx5JiYpOwogICAgIHZvaWQg
c2V0U3RhdHVzVGV4dChjb25zdCBTdHJpbmcmKTsKICAgICB2b2lkIG1vdXNlRGlkTW92ZU92ZXJF
bGVtZW50KFdlYkhpdFRlc3RSZXN1bHREYXRhJiYsIHVpbnQzMl90IG1vZGlmaWVycywgVXNlckRh
dGEmJik7CiAKQEAgLTE3MDksMjkgKzE3MjIsMjkgQEAgcHJpdmF0ZToKICAgICB2b2lkIHVuYXZh
aWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZCh1aW50MzJfdCBvcGFxdWVQbHVnaW5VbmF2YWlsYWJp
bGl0eVJlYXNvbiwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgY29uc3QgU3RyaW5nJiBwbHVnaW5V
UkxTdHJpbmcsIGNvbnN0IFN0cmluZyYgcGx1Z2luc1BhZ2VVUkxTdHJpbmcsIGNvbnN0IFN0cmlu
ZyYgZnJhbWVVUkxTdHJpbmcsIGNvbnN0IFN0cmluZyYgcGFnZVVSTFN0cmluZyk7CiAjZW5kaWYg
Ly8gRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCiAjaWYgRU5BQkxFKFdFQkdMKQotICAgIHZv
aWQgd2ViR0xQb2xpY3lGb3JVUkwoVVJMJiYsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OldlYkdM
UG9saWN5Rm9yVVJMOjpEZWxheWVkUmVwbHkmJik7Ci0gICAgdm9pZCByZXNvbHZlV2ViR0xQb2xp
Y3lGb3JVUkwoVVJMJiYsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJlc29sdmVXZWJHTFBvbGlj
eUZvclVSTDo6RGVsYXllZFJlcGx5JiYpOworICAgIHZvaWQgd2ViR0xQb2xpY3lGb3JVUkwoVVJM
JiYsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OldlYkdMUG9saWN5Rm9yVVJMRGVsYXllZFJlcGx5
JiYpOworICAgIHZvaWQgcmVzb2x2ZVdlYkdMUG9saWN5Rm9yVVJMKFVSTCYmLCBNZXNzYWdlczo6
V2ViUGFnZVByb3h5OjpSZXNvbHZlV2ViR0xQb2xpY3lGb3JVUkxEZWxheWVkUmVwbHkmJik7CiAj
ZW5kaWYgLy8gRU5BQkxFKFdFQkdMKQogICAgIHZvaWQgc2V0VG9vbGJhcnNBcmVWaXNpYmxlKGJv
b2wgdG9vbGJhcnNBcmVWaXNpYmxlKTsKLSAgICB2b2lkIGdldFRvb2xiYXJzQXJlVmlzaWJsZShN
ZXNzYWdlczo6V2ViUGFnZVByb3h5OjpHZXRUb29sYmFyc0FyZVZpc2libGU6OkRlbGF5ZWRSZXBs
eSYmKTsKKyAgICB2b2lkIGdldFRvb2xiYXJzQXJlVmlzaWJsZShNZXNzYWdlczo6V2ViUGFnZVBy
b3h5OjpHZXRUb29sYmFyc0FyZVZpc2libGVEZWxheWVkUmVwbHkmJik7CiAgICAgdm9pZCBzZXRN
ZW51QmFySXNWaXNpYmxlKGJvb2wgbWVudUJhcklzVmlzaWJsZSk7Ci0gICAgdm9pZCBnZXRNZW51
QmFySXNWaXNpYmxlKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkdldE1lbnVCYXJJc1Zpc2libGU6
OkRlbGF5ZWRSZXBseSYmKTsKKyAgICB2b2lkIGdldE1lbnVCYXJJc1Zpc2libGUoTWVzc2FnZXM6
OldlYlBhZ2VQcm94eTo6R2V0TWVudUJhcklzVmlzaWJsZURlbGF5ZWRSZXBseSYmKTsKICAgICB2
b2lkIHNldFN0YXR1c0JhcklzVmlzaWJsZShib29sIHN0YXR1c0JhcklzVmlzaWJsZSk7Ci0gICAg
dm9pZCBnZXRTdGF0dXNCYXJJc1Zpc2libGUoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6R2V0U3Rh
dHVzQmFySXNWaXNpYmxlOjpEZWxheWVkUmVwbHkmJik7CisgICAgdm9pZCBnZXRTdGF0dXNCYXJJ
c1Zpc2libGUoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6R2V0U3RhdHVzQmFySXNWaXNpYmxlRGVs
YXllZFJlcGx5JiYpOwogICAgIHZvaWQgZ2V0SXNWaWV3VmlzaWJsZShib29sJik7CiAgICAgdm9p
ZCBzZXRJc1Jlc2l6YWJsZShib29sIGlzUmVzaXphYmxlKTsKLSAgICB2b2lkIHNjcmVlblRvUm9v
dFZpZXcoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHNjcmVlblBvaW50LCBNZXNzYWdlczo6V2Vi
UGFnZVByb3h5OjpTY3JlZW5Ub1Jvb3RWaWV3OjpEZWxheWVkUmVwbHkmJik7Ci0gICAgdm9pZCBy
b290Vmlld1RvU2NyZWVuKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHZpZXdSZWN0LCBNZXNzYWdl
czo6V2ViUGFnZVByb3h5OjpSb290Vmlld1RvU2NyZWVuOjpEZWxheWVkUmVwbHkmJik7CisgICAg
dm9pZCBzY3JlZW5Ub1Jvb3RWaWV3KGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBzY3JlZW5Qb2lu
dCwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6U2NyZWVuVG9Sb290Vmlld0RlbGF5ZWRSZXBseSYm
KTsKKyAgICB2b2lkIHJvb3RWaWV3VG9TY3JlZW4oY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgdmll
d1JlY3QsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJvb3RWaWV3VG9TY3JlZW5EZWxheWVkUmVw
bHkmJik7CiAgICAgdm9pZCBhY2Nlc3NpYmlsaXR5U2NyZWVuVG9Sb290Vmlldyhjb25zdCBXZWJD
b3JlOjpJbnRQb2ludCYgc2NyZWVuUG9pbnQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29y
ZTo6SW50UG9pbnQpPiYmKTsKICAgICB2b2lkIHJvb3RWaWV3VG9BY2Nlc3NpYmlsaXR5U2NyZWVu
KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHZpZXdSZWN0LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KFdlYkNvcmU6OkludFJlY3QpPiYmKTsKLSAgICB2b2lkIHJ1bkJlZm9yZVVubG9hZENvbmZpcm1Q
YW5lbChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luRGF0YSYsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6
UnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsOjpEZWxheWVkUmVwbHkmJik7CisgICAgdm9pZCBy
dW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25z
dCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIE1l
c3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbERlbGF5ZWRS
ZXBseSYmKTsKICAgICB2b2lkIGRpZENoYW5nZVZpZXdwb3J0UHJvcGVydGllcyhjb25zdCBXZWJD
b3JlOjpWaWV3cG9ydEF0dHJpYnV0ZXMmKTsKICAgICB2b2lkIHBhZ2VEaWRTY3JvbGwoKTsKICAg
ICB2b2lkIHJ1bk9wZW5QYW5lbChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNv
cmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYsIGNvbnN0IFdlYkNvcmU6OkZpbGVDaG9vc2VyU2V0dGlu
Z3MmKTsKICAgICB2b2lkIHNob3dTaGFyZVNoZWV0KGNvbnN0IFdlYkNvcmU6OlNoYXJlRGF0YVdp
dGhQYXJzZWRVUkwmLCBTaGFyZVNoZWV0Q2FsbGJhY2tJRCk7CiAgICAgdm9pZCBwcmludEZyYW1l
KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsK
LSAgICB2b2lkIGV4Y2VlZGVkRGF0YWJhc2VRdW90YShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIs
IGNvbnN0IFN0cmluZyYgb3JpZ2luSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBkYXRhYmFzZU5h
bWUsIGNvbnN0IFN0cmluZyYgZGlzcGxheU5hbWUsIHVpbnQ2NF90IGN1cnJlbnRRdW90YSwgdWlu
dDY0X3QgY3VycmVudE9yaWdpblVzYWdlLCB1aW50NjRfdCBjdXJyZW50RGF0YWJhc2VVc2FnZSwg
dWludDY0X3QgZXhwZWN0ZWRVc2FnZSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RXhjZWVkZWRE
YXRhYmFzZVF1b3RhOjpEZWxheWVkUmVwbHkmJik7Ci0gICAgdm9pZCByZWFjaGVkQXBwbGljYXRp
b25DYWNoZU9yaWdpblF1b3RhKGNvbnN0IFN0cmluZyYgb3JpZ2luSWRlbnRpZmllciwgdWludDY0
X3QgY3VycmVudFF1b3RhLCB1aW50NjRfdCB0b3RhbEJ5dGVzTmVlZGVkLCBNZXNzYWdlczo6V2Vi
UGFnZVByb3h5OjpSZWFjaGVkQXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhOjpEZWxheWVkUmVw
bHkmJik7CisgICAgdm9pZCBleGNlZWRlZERhdGFiYXNlUXVvdGEoV2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyLCBjb25zdCBTdHJpbmcmIG9yaWdpbklkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgZGF0
YWJhc2VOYW1lLCBjb25zdCBTdHJpbmcmIGRpc3BsYXlOYW1lLCB1aW50NjRfdCBjdXJyZW50UXVv
dGEsIHVpbnQ2NF90IGN1cnJlbnRPcmlnaW5Vc2FnZSwgdWludDY0X3QgY3VycmVudERhdGFiYXNl
VXNhZ2UsIHVpbnQ2NF90IGV4cGVjdGVkVXNhZ2UsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkV4
Y2VlZGVkRGF0YWJhc2VRdW90YURlbGF5ZWRSZXBseSYmKTsKKyAgICB2b2lkIHJlYWNoZWRBcHBs
aWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoY29uc3QgU3RyaW5nJiBvcmlnaW5JZGVudGlmaWVyLCB1
aW50NjRfdCBjdXJyZW50UXVvdGEsIHVpbnQ2NF90IHRvdGFsQnl0ZXNOZWVkZWQsIE1lc3NhZ2Vz
OjpXZWJQYWdlUHJveHk6OlJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGFEZWxheWVk
UmVwbHkmJik7CiAgICAgdm9pZCByZXF1ZXN0R2VvbG9jYXRpb25QZXJtaXNzaW9uRm9yRnJhbWUo
dWludDY0X3QgZ2VvbG9jYXRpb25JRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBTdHJpbmcg
b3JpZ2luSWRlbnRpZmllcik7CiAKICNpZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkK
QEAgLTIwMTgsNyArMjAzMSw3IEBAIHByaXZhdGU6CiAjZW5kaWYKIAogI2lmIEVOQUJMRShORVRT
Q0FQRV9QTFVHSU5fQVBJKQotICAgIHZvaWQgZmluZFBsdWdpbihjb25zdCBTdHJpbmcmIG1pbWVU
eXBlLCB1aW50MzJfdCBwcm9jZXNzVHlwZSwgY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcsIGNvbnN0
IFN0cmluZyYgZnJhbWVVUkxTdHJpbmcsIGNvbnN0IFN0cmluZyYgcGFnZVVSTFN0cmluZywgYm9v
bCBhbGxvd09ubHlBcHBsaWNhdGlvblBsdWdpbnMsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkZp
bmRQbHVnaW46OkRlbGF5ZWRSZXBseSYmKTsKKyAgICB2b2lkIGZpbmRQbHVnaW4oY29uc3QgU3Ry
aW5nJiBtaW1lVHlwZSwgdWludDMyX3QgcHJvY2Vzc1R5cGUsIGNvbnN0IFN0cmluZyYgdXJsU3Ry
aW5nLCBjb25zdCBTdHJpbmcmIGZyYW1lVVJMU3RyaW5nLCBjb25zdCBTdHJpbmcmIHBhZ2VVUkxT
dHJpbmcsIGJvb2wgYWxsb3dPbmx5QXBwbGljYXRpb25QbHVnaW5zLCBNZXNzYWdlczo6V2ViUGFn
ZVByb3h5OjpGaW5kUGx1Z2luRGVsYXllZFJlcGx5JiYpOwogI2VuZGlmCiAKICNpZiBVU0UoUVVJ
Q0tfTE9PSykKQEAgLTIwNTUsNyArMjA2OCw3IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHN0YXJ0
VVJMU2NoZW1lVGFzayhVUkxTY2hlbWVUYXNrUGFyYW1ldGVycyYmKTsKICAgICB2b2lkIHN0b3BV
UkxTY2hlbWVUYXNrKHVpbnQ2NF90IGhhbmRsZXJJZGVudGlmaWVyLCB1aW50NjRfdCB0YXNrSWRl
bnRpZmllcik7Ci0gICAgdm9pZCBsb2FkU3luY2hyb25vdXNVUkxTY2hlbWVUYXNrKFVSTFNjaGVt
ZVRhc2tQYXJhbWV0ZXJzJiYsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkxvYWRTeW5jaHJvbm91
c1VSTFNjaGVtZVRhc2s6OkRlbGF5ZWRSZXBseSYmKTsKKyAgICB2b2lkIGxvYWRTeW5jaHJvbm91
c1VSTFNjaGVtZVRhc2soVVJMU2NoZW1lVGFza1BhcmFtZXRlcnMmJiwgTWVzc2FnZXM6OldlYlBh
Z2VQcm94eTo6TG9hZFN5bmNocm9ub3VzVVJMU2NoZW1lVGFza0RlbGF5ZWRSZXBseSYmKTsKIAog
ICAgIGJvb2wgY2hlY2tVUkxSZWNlaXZlZEZyb21DdXJyZW50T3JQcmV2aW91c1dlYlByb2Nlc3Mo
V2ViUHJvY2Vzc1Byb3h5JiwgY29uc3QgU3RyaW5nJik7CiAgICAgYm9vbCBjaGVja1VSTFJlY2Vp
dmVkRnJvbUN1cnJlbnRPclByZXZpb3VzV2ViUHJvY2VzcyhXZWJQcm9jZXNzUHJveHkmLCBjb25z
dCBVUkwmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
b29sLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAppbmRl
eCAyNzhlNGM3M2ZiZGUzYzA4ZWZlZGFmMTIzNzg5MDBiMTliZjYwNWRjLi4yYzZjOWZmMjk0MDQw
N2IxM2RjZTBmNjdkMjVjOTc0OGY1ZmQ3Y2Q3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Bvb2wuY3BwCkBAIC03Nyw2ICs3Nyw3IEBACiAjaW5jbHVkZSAiV2ViUHJvY2Vz
c01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Bvb2xNZXNzYWdlcy5oIgogI2luY2x1
ZGUgIldlYlByb2Nlc3NQcm94eS5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3NQcm94eU1lc3NhZ2Vz
LmgiCiAjaW5jbHVkZSAiV2Vic2l0ZURhdGFTdG9yZS5oIgogI2luY2x1ZGUgIldlYnNpdGVEYXRh
U3RvcmVQYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNDSW5saW5lcy5o
PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKaW5kZXggNzdkNWFlNTcx
M2Y5NGMxMjlkM2MzY2I5M2FjY2ZmZWI2OGFiMzBiYS4uY2RkNjhkNjc3NTViYTI2OTk5M2M5NDEw
MjdiNjVmNjc4MTY1YjFjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Bvb2wuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9v
bC5oCkBAIC0zODEsOSArMzgxLDkgQEAgcHVibGljOgogICAgIC8vIE5ldHdvcmsgUHJvY2VzcyBN
YW5hZ2VtZW50CiAgICAgTmV0d29ya1Byb2Nlc3NQcm94eSYgZW5zdXJlTmV0d29ya1Byb2Nlc3Mo
V2Vic2l0ZURhdGFTdG9yZSogd2l0aFdlYnNpdGVEYXRhU3RvcmUgPSBudWxscHRyKTsKICAgICBO
ZXR3b3JrUHJvY2Vzc1Byb3h5KiBuZXR3b3JrUHJvY2VzcygpIHsgcmV0dXJuIG1fbmV0d29ya1By
b2Nlc3MuZ2V0KCk7IH0KLSAgICB2b2lkIG5ldHdvcmtQcm9jZXNzQ3Jhc2hlZChOZXR3b3JrUHJv
Y2Vzc1Byb3h5JiwgVmVjdG9yPHN0ZDo6cGFpcjxSZWZQdHI8V2ViUHJvY2Vzc1Byb3h5PiwgTWVz
c2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpEZWxh
eWVkUmVwbHk+PiYmKTsKKyAgICB2b2lkIG5ldHdvcmtQcm9jZXNzQ3Jhc2hlZChOZXR3b3JrUHJv
Y2Vzc1Byb3h5JiwgVmVjdG9yPHN0ZDo6cGFpcjxSZWZQdHI8V2ViUHJvY2Vzc1Byb3h5PiwgTWVz
c2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uRGVsYXll
ZFJlcGx5Pj4mJik7CiAKLSAgICB2b2lkIGdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbihXZWJQ
cm9jZXNzUHJveHkmLCBNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXROZXR3b3JrUHJvY2Vz
c0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBseSYmKTsKKyAgICB2b2lkIGdldE5ldHdvcmtQcm9jZXNz
Q29ubmVjdGlvbihXZWJQcm9jZXNzUHJveHkmLCBNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpH
ZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25EZWxheWVkUmVwbHkmJik7CiAKICAgICBib29sIGlz
U2VydmljZVdvcmtlclBhZ2VJRChXZWJQYWdlUHJveHlJZGVudGlmaWVyKSBjb25zdDsKICNpZiBF
TkFCTEUoU0VSVklDRV9XT1JLRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
cm94eS5oCmluZGV4IDhhNDdlODEzZmY4ZmQ2MTkxNThjN2FlYzY2ZmUwYWFhYzAwMWVkOTguLjdk
NzQ2NThjZDFhYjQ0YTc4Njk2OGU4M2Y0ZjQ5YWIzNTkwZDc1NjkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCkBAIC0zOCw3ICszOCw3IEBACiAjaW5jbHVkZSAi
VmlzaWJsZVdlYlBhZ2VDb3VudGVyLmgiCiAjaW5jbHVkZSAiV2ViQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy5oIgogI2luY2x1ZGUgIldlYlBhZ2VQcm94eUlkZW50aWZpZXIuaCIKLSNpbmNsdWRlICJX
ZWJQcm9jZXNzUHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3NQcm94eU1lc3Nh
Z2VzUmVwbGllcy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVJZGVudGlmaWVyLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9QYWdlSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUHJvY2Vz
c0lkZW50aWZpZXIuaD4KQEAgLTYxLDYgKzYxLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xh
c3MgRGVmZXJyYWJsZU9uZVNob3RUaW1lcjsKIGNsYXNzIFJlc291cmNlUmVxdWVzdDsKIHN0cnVj
dCBQbHVnaW5JbmZvOworc3RydWN0IFByZXdhcm1JbmZvcm1hdGlvbjsKIHN0cnVjdCBTZWN1cml0
eU9yaWdpbkRhdGE7CiB9CiAKQEAgLTgwLDYgKzgxLDcgQEAgY2xhc3MgV2ViUHJvY2Vzc1Bvb2w7
CiBjbGFzcyBXZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eTsKIGNsYXNzIFdlYnNpdGVEYXRh
U3RvcmU7CiBlbnVtIGNsYXNzIFdlYnNpdGVEYXRhVHlwZTsKK3N0cnVjdCBCYWNrRm9yd2FyZExp
c3RJdGVtU3RhdGU7CiBzdHJ1Y3QgVXNlck1lc3NhZ2U7CiBzdHJ1Y3QgV2ViTmF2aWdhdGlvbkRh
dGFTdG9yZTsKIHN0cnVjdCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOwpAQCAtMzgwLDEyICsz
ODIsMTIgQEAgcHJpdmF0ZToKICAgICB2b2lkIGdldFBsdWdpbnMoYm9vbCByZWZyZXNoLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKFZlY3RvcjxXZWJDb3JlOjpQbHVnaW5JbmZvPiYmIHBsdWdpbnMs
IFZlY3RvcjxXZWJDb3JlOjpQbHVnaW5JbmZvPiYmIGFwcGxpY2F0aW9uUGx1Z2lucywgT3B0aW9u
YWw8VmVjdG9yPFdlYkNvcmU6OlN1cHBvcnRlZFBsdWdpbklkZW50aWZpZXI+PiYmKT4mJik7CiAj
ZW5kaWYgLy8gRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCiAjaWYgRU5BQkxFKE5FVFNDQVBF
X1BMVUdJTl9BUEkpCi0gICAgdm9pZCBnZXRQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbih1aW50NjRf
dCBwbHVnaW5Qcm9jZXNzVG9rZW4sIE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldFBsdWdp
blByb2Nlc3NDb25uZWN0aW9uOjpEZWxheWVkUmVwbHkmJik7CisgICAgdm9pZCBnZXRQbHVnaW5Q
cm9jZXNzQ29ubmVjdGlvbih1aW50NjRfdCBwbHVnaW5Qcm9jZXNzVG9rZW4sIE1lc3NhZ2VzOjpX
ZWJQcm9jZXNzUHJveHk6OkdldFBsdWdpblByb2Nlc3NDb25uZWN0aW9uRGVsYXllZFJlcGx5JiYp
OwogI2VuZGlmCiAgICAgdm9pZCBhZGRQbHVnSW5BdXRvU3RhcnRPcmlnaW5IYXNoKFN0cmluZyYm
IHBhZ2VPcmlnaW4sIHVpbnQzMl90IGhhc2gpOwogICAgIHZvaWQgcGx1Z0luRGlkUmVjZWl2ZVVz
ZXJJbnRlcmFjdGlvbih1aW50MzJfdCBoYXNoKTsKICAgICAKLSAgICB2b2lkIGdldE5ldHdvcmtQ
cm9jZXNzQ29ubmVjdGlvbihNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXROZXR3b3JrUHJv
Y2Vzc0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBseSYmKTsKKyAgICB2b2lkIGdldE5ldHdvcmtQcm9j
ZXNzQ29ubmVjdGlvbihNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXROZXR3b3JrUHJvY2Vz
c0Nvbm5lY3Rpb25EZWxheWVkUmVwbHkmJik7CiAKICAgICBib29sIHBsYXRmb3JtSXNCZWluZ0Rl
YnVnZ2VkKCkgY29uc3Q7CiAgICAgYm9vbCBzaG91bGRBbGxvd05vblZhbGlkSW5qZWN0ZWRDb2Rl
KCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvVGlsZWRD
b3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94eS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5Lm1tCmluZGV4IGNhN2I2YzUx
MzgxMzVhZDMwYzI2OGJhMDU1MjhmMjBhYjk4MzJhODguLjExOGU1ODAwMzE5MDE4OTMyYzk5MWM2
MWM4YTAxOTJiY2UyZGZiMjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21h
Yy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5Lm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5Lm1tCkBA
IC0zMyw2ICszMyw3IEBACiAjaW1wb3J0ICJEcmF3aW5nQXJlYVByb3h5TWVzc2FnZXMuaCIKICNp
bXBvcnQgIkxheWVyVHJlZUNvbnRleHQuaCIKICNpbXBvcnQgIldlYlBhZ2VQcm94eS5oIgorI2lt
cG9ydCAiV2ViUGFnZVByb3h5TWVzc2FnZXMuaCIKICNpbXBvcnQgIldlYlByb2Nlc3NQcm94eS5o
IgogI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9RdWFydHpDb3JlU1BJLmg+CiAjaW1wb3J0IDx3dGYv
QmxvY2tQdHIuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdl
L1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcAppbmRleCA2MjIy
ODA4M2VmZTVjMWE5MzAyZjZlMzE3YjczY2RhNGFkODNmNjUwLi40YjRlMmVlMjE2NzJmYmQ4Mzc0
M2RlMDEyNDJmODBkODI0MTFjYTAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24u
Y3BwCkBAIC00Myw2ICs0Myw3IEBACiAjaW5jbHVkZSAiV2ViUHJlZmVyZW5jZXNTdG9yZS5oIgog
I2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzUG9vbE1lc3NhZ2Vz
LmgiCisjaW5jbHVkZSAiV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb25NZXNzYWdlcy5oIgog
I2luY2x1ZGUgIldlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbk1lc3NhZ2VzLmgiCiAjaW5j
bHVkZSAiV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudC5oIgogI2luY2x1ZGUgIldlYlNv
Y2tldFByb3ZpZGVyLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3Rv
cmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uaAppbmRleCAyNDc2
MjVlZDk1YjUxZTNlZmRmYjVkOTY5ZDdjMGVmZDI5ZWZmYWRiLi5iZjhiNDdmYmZkNmNhOGQ4MDU5
ODc4YzA4MjVkODI5Yzc0YjU4OGM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmgK
QEAgLTMwLDcgKzMwLDcgQEAKICNpbmNsdWRlICJDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiTWVz
c2FnZVJlY2VpdmVyLmgiCiAjaW5jbHVkZSAiV2ViUGFnZVByb3h5SWRlbnRpZmllci5oIgotI2lu
Y2x1ZGUgIldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uTWVzc2FnZXMuaCIKKyNpbmNsdWRl
ICJXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbk1lc3NhZ2VzUmVwbGllcy5oIgogI2luY2x1
ZGUgPFdlYkNvcmUvRW1wdHlGcmFtZUxvYWRlckNsaWVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
U1dDb250ZXh0TWFuYWdlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2VydmljZVdvcmtlckNsaWVu
dERhdGEuaD4KQEAgLTg5LDcgKzg5LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGZpcmVBY3RpdmF0
ZUV2ZW50KFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKTsKICAgICB2b2lkIHNvZnRV
cGRhdGUoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIpOwogICAgIHZvaWQgdGVybWlu
YXRlV29ya2VyKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKTsKLSAgICB2b2lkIHN5
bmNUZXJtaW5hdGVXb3JrZXIoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIsIE1lc3Nh
Z2VzOjpXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6U3luY1Rlcm1pbmF0ZVdvcmtlcjo6
RGVsYXllZFJlcGx5JiYpOworICAgIHZvaWQgc3luY1Rlcm1pbmF0ZVdvcmtlcihXZWJDb3JlOjpT
ZXJ2aWNlV29ya2VySWRlbnRpZmllciwgTWVzc2FnZXM6OldlYlNXQ29udGV4dE1hbmFnZXJDb25u
ZWN0aW9uOjpTeW5jVGVybWluYXRlV29ya2VyRGVsYXllZFJlcGx5JiYpOwogICAgIHZvaWQgZmlu
ZENsaWVudEJ5SWRlbnRpZmllckNvbXBsZXRlZCh1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllciwg
T3B0aW9uYWw8V2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudERhdGE+JiYsIGJvb2wgaGFzU2Vj
dXJpdHlFcnJvcik7CiAgICAgdm9pZCBtYXRjaEFsbENvbXBsZXRlZCh1aW50NjRfdCBtYXRjaEFs
bFJlcXVlc3RJZGVudGlmaWVyLCBWZWN0b3I8V2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudERh
dGE+JiYpOwogICAgIHZvaWQgY2xhaW1Db21wbGV0ZWQodWludDY0X3QgY2xhaW1SZXF1ZXN0SWRl
bnRpZmllcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5k
ZXggM2ExZTVmNDQ3MTRmODk5ZTc4NzM2OTQyNjZmMzJlNzkzZmEzYmZkZS4uNDNjMDE4YTk5ZmIw
NzRmOWQwNWYxMDA3ZGQ0NzcwZDIzZjE5ZjBhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtNTAsNyArNTAsNyBAQAogI2luY2x1ZGUgIlN0b3JhZ2VO
YW1lc3BhY2VJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiVXNlckRhdGEuaCIKICNpbmNsdWRlICJX
ZWJCYWNrRm9yd2FyZExpc3RQcm94eS5oIgotI2luY2x1ZGUgIldlYlBhZ2VNZXNzYWdlcy5oIgor
I2luY2x1ZGUgIldlYlBhZ2VNZXNzYWdlc1JlcGxpZXMuaCIKICNpbmNsdWRlICJXZWJVUkxTY2hl
bWVIYW5kbGVyLmgiCiAjaW5jbHVkZSAiV2ViVW5kb1N0ZXBJRC5oIgogI2luY2x1ZGUgIldlYlVz
ZXJDb250ZW50Q29udHJvbGxlci5oIgpAQCAtMTAwLDcgKzEwMCw2IEBAIHR5cGVkZWYgc3RydWN0
IF9BdGtPYmplY3QgQXRrT2JqZWN0OwogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICNpbmNs
dWRlICJHZXN0dXJlVHlwZXMuaCIKLSNpbmNsdWRlICJXZWJQYWdlTWVzc2FnZXMuaCIKICNpbmNs
dWRlIDxXZWJDb3JlL0ludFBvaW50SGFzaC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVmlld3BvcnRD
b25maWd1cmF0aW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9XS0NvbnRlbnRPYnNlcnZhdGlvbi5o
PgpAQCAtODc4LDcgKzg3Nyw3IEBAIHB1YmxpYzoKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oSU9T
X0ZBTUlMWSkKLSAgICB2b2lkIGNvbXB1dGVQYWdlc0ZvclByaW50aW5nQW5kRHJhd1RvUERGKFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgUHJpbnRJbmZvJiwgQ2FsbGJhY2tJRCwgTWVz
c2FnZXM6OldlYlBhZ2U6OkNvbXB1dGVQYWdlc0ZvclByaW50aW5nQW5kRHJhd1RvUERGOjpEZWxh
eWVkUmVwbHkmJik7CisgICAgdm9pZCBjb21wdXRlUGFnZXNGb3JQcmludGluZ0FuZERyYXdUb1BE
RihXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFByaW50SW5mbyYsIENhbGxiYWNrSUQs
IE1lc3NhZ2VzOjpXZWJQYWdlOjpDb21wdXRlUGFnZXNGb3JQcmludGluZ0FuZERyYXdUb1BERkRl
bGF5ZWRSZXBseSYmKTsKICNlbmRpZgogCiAgICAgdm9pZCBkcmF3VG9QREYoV2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyLCBjb25zdCBPcHRpb25hbDxXZWJDb3JlOjpGbG9hdFJlY3Q+JiwgQ2FsbGJh
Y2tJRCk7CkBAIC0xMzA2LDcgKzEzMDUsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgZXhlY3V0ZUtl
eXByZXNzQ29tbWFuZHNJbnRlcm5hbChjb25zdCBWZWN0b3I8V2ViQ29yZTo6S2V5cHJlc3NDb21t
YW5kPiYsIFdlYkNvcmU6OktleWJvYXJkRXZlbnQqKTsKICNlbmRpZgogCi0gICAgdm9pZCB0ZXN0
UHJvY2Vzc0luY29taW5nU3luY01lc3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkoTWVzc2Fn
ZXM6OldlYlBhZ2U6OlRlc3RQcm9jZXNzSW5jb21pbmdTeW5jTWVzc2FnZXNXaGVuV2FpdGluZ0Zv
clN5bmNSZXBseTo6RGVsYXllZFJlcGx5JiYpOworICAgIHZvaWQgdGVzdFByb2Nlc3NJbmNvbWlu
Z1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJQYWdlOjpU
ZXN0UHJvY2Vzc0luY29taW5nU3luY01lc3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5jUmVwbHlEZWxh
eWVkUmVwbHkmJik7CiAKICAgICB2b2lkIHVwZGF0ZURyYXdpbmdBcmVhTGF5ZXJUcmVlRnJlZXpl
U3RhdGUoKTsKICAgICBib29sIG1hcmtMYXllcnNWb2xhdGlsZUltbWVkaWF0ZWx5SWZQb3NzaWJs
ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1ZpZGVvRnVs
bHNjcmVlbk1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9WaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyLmgKaW5kZXggY2JiYmFjZDA0YjNjNDVjYzNiOGVhODk3NDAyNjdhZjA2
MGVhOGU2Yi4uZDA0MDE2MTU0MTMyZmM0YmI4ODBhOTU5Mzg4NTgzMWYzY2E1OWE2MiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFn
ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVmlkZW9GdWxsc2NyZWVu
TWFuYWdlci5oCkBAIC0yOSw3ICsyOSw3IEBACiAKICNpbmNsdWRlICJDb25uZWN0aW9uLmgiCiAj
aW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCi0jaW5jbHVkZSAiVmlkZW9GdWxsc2NyZWVuTWFu
YWdlck1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiVmlkZW9GdWxsc2NyZWVuTWFuYWdlck1lc3NhZ2Vz
UmVwbGllcy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvRXZlbnRMaXN0ZW5lci5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvSFRNTE1lZGlhRWxlbWVudEVudW1zLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QbGF0
Zm9ybUNBTGF5ZXIuaD4KQEAgLTE1NCw3ICsxNTQsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBz
ZXRWaWRlb0xheWVyR3Jhdml0eUVudW0odWludDY0X3QgY29udGV4dElkLCB1bnNpZ25lZCBncmF2
aXR5KTsKICAgICB2b2lkIGZ1bGxzY3JlZW5Nb2RlQ2hhbmdlZCh1aW50NjRfdCBjb250ZXh0SWQs
IFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSk7CiAg
ICAgdm9pZCBmdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUodWludDY0X3QgY29udGV4dElkLCBi
b29sIGlzUGFnZVZpc2libGUpOwotICAgIHZvaWQgcmVxdWVzdFJvdXRlU2hhcmluZ1BvbGljeUFu
ZENvbnRleHRVSUQodWludDY0X3QgY29udGV4dElkLCBNZXNzYWdlczo6VmlkZW9GdWxsc2NyZWVu
TWFuYWdlcjo6UmVxdWVzdFJvdXRlU2hhcmluZ1BvbGljeUFuZENvbnRleHRVSUQ6OkFzeW5jUmVw
bHkmJik7CisgICAgdm9pZCByZXF1ZXN0Um91dGVTaGFyaW5nUG9saWN5QW5kQ29udGV4dFVJRCh1
aW50NjRfdCBjb250ZXh0SWQsIE1lc3NhZ2VzOjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpSZXF1
ZXN0Um91dGVTaGFyaW5nUG9saWN5QW5kQ29udGV4dFVJREFzeW5jUmVwbHkmJik7CiAKICAgICBX
ZWJQYWdlKiBtX3BhZ2U7CiAgICAgUmVmPFBsYXliYWNrU2Vzc2lvbk1hbmFnZXI+IG1fcGxheWJh
Y2tTZXNzaW9uTWFuYWdlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9j
b2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW0KaW5kZXggZDk2ZDIwZWNiMTNjNmVkNGQ2
NmNiYWZmNDZiNjA3ZTAyMGVhYjRkMC4uMDViYjA2OWJhYTNmNjcyNmI2OTU3M2JiMjA0NWE1MzEw
OGQ0YzlhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1ZpZGVv
RnVsbHNjcmVlbk1hbmFnZXIubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29h
L1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW0KQEAgLTMwLDYgKzMwLDcgQEAKICNpbXBvcnQgIkF0
dGFjaG1lbnQuaCIKICNpbXBvcnQgIkxvZ2dpbmcuaCIKICNpbXBvcnQgIlBsYXliYWNrU2Vzc2lv
bk1hbmFnZXIuaCIKKyNpbXBvcnQgIlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJNZXNzYWdlcy5oIgog
I2ltcG9ydCAiVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZXMuaCIKICNpbXBvcnQg
IldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogI2ltcG9ydCAiV2ViUGFnZS5oIgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>381510</attachid>
            <date>2019-10-21 22:45:07 -0700</date>
            <delta_ts>2019-10-22 01:06:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-203074-20191021224506.patch</filename>
            <type>text/plain</type>
            <size>90921</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUxNDE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGQ5MTNjMTc0ZjNmOTgxMmYx
MDliYTNlNGYzZjcwODVjYWMwODE4OTMuLmU1ODdkM2UwYmNjMmUzOWZhMzI4NmViN2FiOTRlMjQx
ODk4Y2U0MTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsODIgQEAKKzIwMTktMTAtMjEgIFRpbSBIb3J0
b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgTWFrZSBpdCBwb3NzaWJs
ZSB0byBub3QgaW5jbHVkZSBJUEMgTWVzc2FnZXMgaGVhZGVycyBpbiBvdGhlciBoZWFkZXJzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDMwNzQKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWtlIHRoZSBN
ZXNzYWdlcyBnZW5lcmF0b3IgZ2VuZXJhdGUgYSBuZXcgLU1lc3NhZ2VzUmVwbGllcy5oIGZpbGUs
IHdoaWNoCisgICAgICAgIG9ubHkgaW5jbHVkZXMgaGVhZGVycyBmb3IgYW5kIGRlZmluaXRpb25z
IG9mIERlbGF5ZWRSZXBseS9Bc3luY1JlcGx5IHR5cGVzLAorICAgICAgICB3aGljaCBuZWVkIHRv
IGJlIG1lbnRpb25lZCBhcyBhcmd1bWVudHMgdG8gbWVzc2FnZSBoYW5kZXIgbWV0aG9kcywgYW5k
CisgICAgICAgIHRodXMgbXVzdCBiZSBhdmFpbGFibGUgaW4gdmFyaW91cyBoZWFkZXJzIHRocm91
Z2hvdXQgdGhlIHByb2plY3QuCisKKyAgICAgICAgSW4gb3JkZXIgdG8gZG8gdGhpcywgd2UgaGF2
ZSB0byBkZS1uZXN0IHRoZW0gZnJvbSB0aGUgcHJpbWFyeSBtZXNzYWdlCisgICAgICAgIGNsYXNz
LCBidXQgd2UgdGhlbiAndXNpbmcnIHRoZW0gYmFjayBpbnRvIHBsYWNlIGluc2lkZSB0aGUgbWVz
c2FnZSBjbGFzcworICAgICAgICBzbyB0aGF0IG1vc3Qgb2YgdGhlIGNvZGUgZG9lc24ndCBuZWVk
IHRvIGNoYW5nZS4KKworICAgICAgICBUaGlzIGhlbHBzIHRvIHdpbGRseSBkZWNyZWFzZSB0aGUg
aGVhZGVyIGxvYWQgb2YgV2ViUGFnZS5oIGFuZCBXZWJQYWdlUHJveHkuaCwKKyAgICAgICAgZXNw
ZWNpYWxseSwgYmVjYXVzZSB0aGUgbnVtYmVyIG9mIGhlYWRlcnMgbmVlZGVkIGZvciB0eXBlcyBp
biB0aGVpciByZXBsaWVzCisgICAgICAgIGlzIG11Y2ggc21hbGxlciB0aGFuIHRoZSBudW1iZXIg
bmVlZGVkIGZvciBhbGwgbWVzc2FnZSByZWNlaXZlcnMuCisKKyAgICAgICAgQWxzbywgb25seSBp
bnZva2UgdGhlIE1lc3NhZ2VzIGdlbmVyYXRvciBvbmNlIHBlciBzb3VyY2UgZmlsZSwgYW5kCisg
ICAgICAgIG9ubHkgcGFyc2UgdGhlIHNvdXJjZSBmaWxlIG9uY2UsIGdlbmVyYXRpbmcgYWxsIHRo
cmVlIG91dHB1dCBmaWxlcworICAgICAgICBpbiBvbmUgaW52b2NhdGlvbi4KKworICAgICAgICBB
bmQgdGhlbiBjbGVhbiB1cCBhbGwgdGhlIG1pc3NpbmcgaW5kaXJlY3QgaW5jbHVkZXMgdGhhdCB3
ZSBsb3N0IGJ5IGRvaW5nIHRoaXMuCisKKyAgICAgICAgQWxsLWluLWFsbCB0aGlzIGlzIHdvcnRo
IHJvdWdobHkgOCUgb24gdGhlIFdlYktpdDIgQnVpbGQgVGltZSBCZW5jaG1hcmsuCisKKyAgICAg
ICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1pbnB1dC54Y2Zp
bGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwOgor
ICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNw
cDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cy5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHA6
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmg6CisgICAg
ICAgICogUGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250cm9sbGVyUHJveHkuY3BwOgorICAgICAgICAq
IFBsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5Lmg6CisgICAgICAgICogUGx1Z2lu
UHJvY2Vzcy9XZWJQcm9jZXNzQ29ubmVjdGlvbi5oOgorICAgICAgICAqIFNjcmlwdHMvTWFrZWZp
bGU6CisgICAgICAgICogU2NyaXB0cy9nZW5lcmF0ZS1tZXNzYWdlLXJlY2VpdmVyLnB5OgorICAg
ICAgICAobWFpbik6CisgICAgICAgICogU2NyaXB0cy9nZW5lcmF0ZS1tZXNzYWdlcy1oZWFkZXIu
cHk6IFJlbW92ZWQuCisgICAgICAgICogU2NyaXB0cy93ZWJraXQvTGVnYWN5TWVzc2FnZVJlY2Vp
dmVyLWV4cGVjdGVkLmNwcDoKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdC9MZWdhY3lNZXNzYWdl
cy1leHBlY3RlZC5oOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0L0xlZ2FjeU1lc3NhZ2VzUmVw
bGllcy1leHBlY3RlZC5oOiBBZGRlZC4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdC9NZXNzYWdl
UmVjZWl2ZXItZXhwZWN0ZWQuY3BwOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0L01lc3NhZ2VS
ZWNlaXZlclN1cGVyY2xhc3MtZXhwZWN0ZWQuY3BwOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0
L01lc3NhZ2VzLWV4cGVjdGVkLmg6CisgICAgICAgICogU2NyaXB0cy93ZWJraXQvTWVzc2FnZXNS
ZXBsaWVzLWV4cGVjdGVkLmg6IEFkZGVkLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0L01lc3Nh
Z2VzUmVwbGllc1N1cGVyY2xhc3NSZXBsaWVzLWV4cGVjdGVkLmg6IEFkZGVkLgorICAgICAgICAq
IFNjcmlwdHMvd2Via2l0L01lc3NhZ2VzU3VwZXJjbGFzcy1leHBlY3RlZC5oOgorICAgICAgICAq
IFNjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5OgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9V
c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29j
b2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9E
b3dubG9hZHMvRG93bmxvYWRQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05l
dHdvcmtQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdv
cmtQcm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9j
ZXNzTWFuYWdlci5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vz
c01hbmFnZXIuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJv
eHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvU3VzcGVuZGVkUGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHA6CisgICAgICAgICogVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQb29sLmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94
eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5tbToKKyAgICAgICAg
KiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbToKKyAgICAgICAgKiBV
SVByb2Nlc3MvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHkubW06CisgICAg
ICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcDoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uaDoKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbToKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29h
L1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1Zp
ZGVvRnVsbHNjcmVlbk1hbmFnZXIubW06CisKIDIwMTktMTAtMjEgIE1hdHQgTGV3aXMgIDxqbGV3
aXMzQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMjUxMzgx
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJL
aXQvQ01ha2VMaXN0cy50eHQKaW5kZXggMWUwNmU2MjYwY2QyZDk0ZTI0ODA4ZWI1N2YwNDI3MGYx
MzUzYTQxOC4uZWZjYzJlODVhNDQwOTllMzhlOGZjMTk3OTUyNjdkNDY0YzA2NzQ5MiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L0NN
YWtlTGlzdHMudHh0CkBAIC0zMDksMjEgKzMwOSwyMCBAQCBzZXQoV2ViS2l0X0FVVE9NQVRJT05f
UFJPVE9DT0xfR0VORVJBVE9SX0VYVFJBX0ZMQUdTCiBXRUJLSVRfRlJBTUVXT1JLX0RFQ0xBUkUo
V2ViS2l0KQogV0VCS0lUX0lOQ0xVREVfQ09ORklHX0ZJTEVTX0lGX0VYSVNUUygpCiAKLSMgSGVs
cGVyIG1hY3JvIHdoaWNoIHdyYXBzIGdlbmVyYXRlLW1lc3NhZ2UtcmVjZWl2ZXIucHkgYW5kIGdl
bmVyYXRlLW1lc3NhZ2UtaGVhZGVyLnB5IHNjcmlwdHMKKyMgSGVscGVyIG1hY3JvIHdoaWNoIHdy
YXBzIHRoZSBnZW5lcmF0ZS1tZXNzYWdlLXJlY2VpdmVyLnB5IHNjcmlwdAogIyAgIF9vdXRwdXRf
c291cmNlIGlzIGEgbGlzdCBuYW1lIHdoaWNoIHdpbGwgY29udGFpbiBnZW5lcmF0ZWQgc291cmNl
cy4oZWcuIFdlYktpdF9TT1VSQ0VTKQogIyAgIF9pbnB1dF9maWxlcyBhcmUgbWVzc2FnZXMuaW4g
ZmlsZXMgdG8gZ2VuZXJhdGUuCiBtYWNybyhHRU5FUkFURV9NRVNTQUdFX1NPVVJDRVMgX291dHB1
dF9zb3VyY2UgX2lucHV0X2ZpbGVzKQogICAgIGZvcmVhY2ggKF9maWxlICR7X2lucHV0X2ZpbGVz
fSkKICAgICAgICAgZ2V0X2ZpbGVuYW1lX2NvbXBvbmVudChfbmFtZSAke19maWxlfSBOQU1FX1dF
KQogICAgICAgICBhZGRfY3VzdG9tX2NvbW1hbmQoCi0gICAgICAgICAgICBPVVRQVVQgJHtXZWJL
aXRfREVSSVZFRF9TT1VSQ0VTX0RJUn0vJHtfbmFtZX1NZXNzYWdlUmVjZWl2ZXIuY3BwICR7V2Vi
S2l0X0RFUklWRURfU09VUkNFU19ESVJ9LyR7X25hbWV9TWVzc2FnZXMuaAorICAgICAgICAgICAg
T1VUUFVUICR7V2ViS2l0X0RFUklWRURfU09VUkNFU19ESVJ9LyR7X25hbWV9TWVzc2FnZVJlY2Vp
dmVyLmNwcCAke1dlYktpdF9ERVJJVkVEX1NPVVJDRVNfRElSfS8ke19uYW1lfU1lc3NhZ2VzLmgg
JHtXZWJLaXRfREVSSVZFRF9TT1VSQ0VTX0RJUn0vJHtfbmFtZX1NZXNzYWdlc1JlcGxpZXMuaAog
ICAgICAgICAgICAgTUFJTl9ERVBFTkRFTkNZICR7X2ZpbGV9CiAgICAgICAgICAgICBERVBFTkRT
ICR7V0VCS0lUX0RJUn0vU2NyaXB0cy93ZWJraXQvX19pbml0X18ucHkKICAgICAgICAgICAgICAg
ICAgICAgJHtXRUJLSVRfRElSfS9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQogICAgICAgICAg
ICAgICAgICAgICAke1dFQktJVF9ESVJ9L1NjcmlwdHMvd2Via2l0L21vZGVsLnB5CiAgICAgICAg
ICAgICAgICAgICAgICR7V0VCS0lUX0RJUn0vU2NyaXB0cy93ZWJraXQvcGFyc2VyLnB5Ci0gICAg
ICAgICAgICBDT01NQU5EICR7UFlUSE9OX0VYRUNVVEFCTEV9ICR7V0VCS0lUX0RJUn0vU2NyaXB0
cy9nZW5lcmF0ZS1tZXNzYWdlLXJlY2VpdmVyLnB5ICR7X2ZpbGV9ID4gJHtXZWJLaXRfREVSSVZF
RF9TT1VSQ0VTX0RJUn0vJHtfbmFtZX1NZXNzYWdlUmVjZWl2ZXIuY3BwCi0gICAgICAgICAgICBD
T01NQU5EICR7UFlUSE9OX0VYRUNVVEFCTEV9ICR7V0VCS0lUX0RJUn0vU2NyaXB0cy9nZW5lcmF0
ZS1tZXNzYWdlcy1oZWFkZXIucHkgJHtfZmlsZX0gPiAke1dlYktpdF9ERVJJVkVEX1NPVVJDRVNf
RElSfS8ke19uYW1lfU1lc3NhZ2VzLmgKKyAgICAgICAgICAgIENPTU1BTkQgJHtQWVRIT05fRVhF
Q1VUQUJMRX0gJHtXRUJLSVRfRElSfS9TY3JpcHRzL2dlbmVyYXRlLW1lc3NhZ2UtcmVjZWl2ZXIu
cHkgJHtfZmlsZX0gLS1pbXBsZW1lbnRhdGlvbiAke1dlYktpdF9ERVJJVkVEX1NPVVJDRVNfRElS
fS8ke19uYW1lfU1lc3NhZ2VSZWNlaXZlci5jcHAgLS1oZWFkZXIgJHtXZWJLaXRfREVSSVZFRF9T
T1VSQ0VTX0RJUn0vJHtfbmFtZX1NZXNzYWdlcy5oIC0tcmVwbHktaGVhZGVyICR7V2ViS2l0X0RF
UklWRURfU09VUkNFU19ESVJ9LyR7X25hbWV9TWVzc2FnZXNSZXBsaWVzLmgKICAgICAgICAgICAg
IFdPUktJTkdfRElSRUNUT1JZICR7V0VCS0lUX0RJUn0KICAgICAgICAgICAgIFZFUkJBVElNKQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxp
c3QgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKaW5kZXgg
ZjFhZGFkNjI2OWQwMTJjYWIxZGQ3MmI1OTA1MjU4ZWY5MDlmOTVhNi4uYzg0NTRiYmU0ZWQwYjJj
MjNlN2M0Y2VlMzM5MDg4MWJmNjgyNmFmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9EZXJp
dmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNv
dXJjZXMtaW5wdXQueGNmaWxlbGlzdApAQCAtNDYsNyArNDYsNiBAQCAkKFBST0pFQ1RfRElSKS9T
Y3JpcHRzL1ByZWZlcmVuY2VzVGVtcGxhdGVzL1dlYlByZWZlcmVuY2VzS2V5cy5oLmVyYgogJChQ
Uk9KRUNUX0RJUikvU2NyaXB0cy9QcmVmZXJlbmNlc1RlbXBsYXRlcy9XZWJQcmVmZXJlbmNlc1N0
b3JlRGVmYXVsdHNNYXAuY3BwLmVyYgogJChQUk9KRUNUX0RJUikvU2NyaXB0cy9nZW5lcmF0ZS1o
dHRwcy11cGdyYWRlLWRhdGFiYXNlLnNoCiAkKFBST0pFQ1RfRElSKS9TY3JpcHRzL2dlbmVyYXRl
LW1lc3NhZ2UtcmVjZWl2ZXIucHkKLSQoUFJPSkVDVF9ESVIpL1NjcmlwdHMvZ2VuZXJhdGUtbWVz
c2FnZXMtaGVhZGVyLnB5CiAkKFBST0pFQ1RfRElSKS9TY3JpcHRzL3dlYmtpdC9fX2luaXRfXy5w
eQogJChQUk9KRUNUX0RJUikvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKICQoUFJPSkVDVF9E
SVIpL1NjcmlwdHMvd2Via2l0L21vZGVsLnB5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rl
cml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5k
ZXggYzM5YzI5NzU1Njc2ZTJhNjUwOGZhN2ZlNDBkOTY4MTI1NGFmNzZlMC4uMjMxNzE1YTVmOTBj
ZjBjOGY4MDNmNzQ3ZGQxNTkwNDYzZDVhN2I2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9E
ZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFr
ZQpAQCAtMTg5LDcgKzE4OSw2IEBAIE1FU1NBR0VfUkVDRUlWRVJTID0gXAogCiBTQ1JJUFRTID0g
XAogICAgICQoV2ViS2l0MikvU2NyaXB0cy9nZW5lcmF0ZS1tZXNzYWdlLXJlY2VpdmVyLnB5IFwK
LSAgICAkKFdlYktpdDIpL1NjcmlwdHMvZ2VuZXJhdGUtbWVzc2FnZXMtaGVhZGVyLnB5IFwKICAg
ICAkKFdlYktpdDIpL1NjcmlwdHMvd2Via2l0L19faW5pdF9fLnB5IFwKICAgICAkKFdlYktpdDIp
L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5IFwKICAgICAkKFdlYktpdDIpL1NjcmlwdHMvd2Vi
a2l0L21vZGVsLnB5IFwKQEAgLTIwNiwxNSArMjA1LDEyIEBAIEhFQURFUl9GTEFHUyA9ICQoc2hl
bGwgZWNobyAkKEJVSUxUX1BST0RVQ1RTX0RJUikgJChIRUFERVJfU0VBUkNIX1BBVEhTKSAkKFNZ
U1RFCiBhbGwgOiBcCiAgICAgJChNRVNTQUdFX1JFQ0VJVkVSUzolPSVNZXNzYWdlUmVjZWl2ZXIu
Y3BwKSBcCiAgICAgJChNRVNTQUdFX1JFQ0VJVkVSUzolPSVNZXNzYWdlcy5oKSBcCisgICAgJChN
RVNTQUdFX1JFQ0VJVkVSUzolPSVNZXNzYWdlc1JlcGxpZXMuaCkgXAogIwogCi0lTWVzc2FnZVJl
Y2VpdmVyLmNwcCA6ICUubWVzc2FnZXMuaW4gJChTQ1JJUFRTKQotCUBlY2hvIEdlbmVyYXRpbmcg
bWVzc2FnZSByZWNlaXZlciBmb3IgJCouLi4KLQlAcHl0aG9uICQoV2ViS2l0MikvU2NyaXB0cy9n
ZW5lcmF0ZS1tZXNzYWdlLXJlY2VpdmVyLnB5ICQ8ID4gJEAKLQotJU1lc3NhZ2VzLmggOiAlLm1l
c3NhZ2VzLmluICQoU0NSSVBUUykKLQlAZWNobyBHZW5lcmF0aW5nIG1lc3NhZ2VzIGhlYWRlciBm
b3IgJCouLi4KLQlAcHl0aG9uICQoV2ViS2l0MikvU2NyaXB0cy9nZW5lcmF0ZS1tZXNzYWdlcy1o
ZWFkZXIucHkgJDwgPiAkQAorJU1lc3NhZ2VSZWNlaXZlci5jcHAgJU1lc3NhZ2VzLmggJU1lc3Nh
Z2VzUmVwbGllcy5oIDogJS5tZXNzYWdlcy5pbiAkKFNDUklQVFMpCisJQGVjaG8gR2VuZXJhdGlu
ZyBtZXNzYWdlcyByZWNlaXZlciBmb3IgJCouLi4KKwlAcHl0aG9uICQoV2ViS2l0MikvU2NyaXB0
cy9nZW5lcmF0ZS1tZXNzYWdlLXJlY2VpdmVyLnB5ICQ8IC0taW1wbGVtZW50YXRpb24gJCpNZXNz
YWdlUmVjZWl2ZXIuY3BwIC0taGVhZGVyICQqTWVzc2FnZXMuaCAtLXJlcGx5LWhlYWRlciAkKk1l
c3NhZ2VzUmVwbGllcy5oCiAKIFRFWFRfUFJFUFJPQ0VTU09SX0ZMQUdTPS1FIC1QIC13CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAKaW5kZXggMWRi
NGVjMjQ5MWQ2NjE3ZWNjOTRmYWRlMmU0ZTA3MmJmOWY5YjY5MC4uZTlkMDhlZTk1ZTc0MTRiYzlm
MzRjNDI1ZDM4ZDU5OGRlYzczZmNiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NTdG9yZS5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJBUElEaWN0
aW9uYXJ5LmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNz
LmgiCisjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NQcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAi
TmV0d29ya1Nlc3Npb24uaCIKICNpbmNsdWRlICJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJh
c2VTdG9yZS5oIgogI2luY2x1ZGUgIlJlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZS5o
IgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVj
dGlvblRvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAppbmRleCBjMzU3YWE2MjYyY2Y2MzJiOTZlNmY2
N2Y3OGY4MjdkYTZhNDYzYzEzLi5iOGQzZjk5YTAxZDc2Y2UxOTBiMTM4YWFlMWVmMmNjNWZhOTVl
N2VlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcApAQCAtMzEsNiArMzEsNyBAQAogI2lu
Y2x1ZGUgIkRhdGFSZWZlcmVuY2UuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAi
TmV0d29ya0NhY2hlLmgiCisjaW5jbHVkZSAiTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3NN
ZXNzYWdlcy5oIgogI2luY2x1ZGUgIk5ldHdvcmtNRE5TUmVnaXN0ZXJNZXNzYWdlcy5oIgogI2lu
Y2x1ZGUgIk5ldHdvcmtQcm9jZXNzLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NDb25uZWN0
aW9uTWVzc2FnZXMuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAppbmRleCBhMDJhMWMzYjk5YmVk
NTc5NzlmNWQ3ZDU2NzM2NzNiNjExYThlZWFhLi45N2IyNzQ0ZWQ2MDQzNmY0NzQ2NmIzNGNjYTll
NjNjMjU1NDNlNzcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCkBAIC0yOSwxMCArMjksMTIg
QEAKICNpbmNsdWRlICJDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiRG93bmxvYWRJRC5oIgogI2lu
Y2x1ZGUgIk5ldHdvcmtBY3Rpdml0eVRyYWNrZXIuaCIKLSNpbmNsdWRlICJOZXR3b3JrQ29ubmVj
dGlvblRvV2ViUHJvY2Vzc01lc3NhZ2VzLmgiCisjaW5jbHVkZSAiTmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3NNZXNzYWdlc1JlcGxpZXMuaCIKICNpbmNsdWRlICJOZXR3b3JrTUROU1JlZ2lz
dGVyLmgiCiAjaW5jbHVkZSAiTmV0d29ya1JUQ1Byb3ZpZGVyLmgiCiAjaW5jbHVkZSAiTmV0d29y
a1Jlc291cmNlTG9hZE1hcC5oIgorI2luY2x1ZGUgIlNhbmRib3hFeHRlbnNpb24uaCIKKyNpbmNs
dWRlICJXZWJQYWdlUHJveHlJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiV2ViUGF5bWVudENvb3Jk
aW5hdG9yUHJveHkuaCIKICNpbmNsdWRlICJXZWJSZXNvdXJjZUxvYWRPYnNlcnZlci5oIgogI2lu
Y2x1ZGUgPFdlYkNvcmUvRnJhbWVJZGVudGlmaWVyLmg+CkBAIC01MCw2ICs1Miw3IEBAIGNsYXNz
IFNlc3Npb25JRDsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgQmxvYkRhdGFGaWxlUmVm
ZXJlbmNlOworY2xhc3MgQmxvYlBhcnQ7CiBjbGFzcyBCbG9iUmVnaXN0cnlJbXBsOwogY2xhc3Mg
UmVzb3VyY2VFcnJvcjsKIGNsYXNzIFJlc291cmNlUmVxdWVzdDsKQEAgLTY0LDYgKzY3LDcgQEAg
bmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIE5ldHdvcmtQcm9jZXNzOwogY2xhc3MgTmV0d29y
a1Jlc291cmNlTG9hZGVyOworY2xhc3MgTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnM7CiBj
bGFzcyBOZXR3b3JrU2Vzc2lvbjsKIGNsYXNzIE5ldHdvcmtTb2NrZXRDaGFubmVsOwogY2xhc3Mg
TmV0d29ya1NvY2tldFN0cmVhbTsKQEAgLTE3Nyw4ICsxODEsOCBAQCBwcml2YXRlOgogICAgIHZv
aWQgZGlkUmVjZWl2ZVN5bmNOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzc01lc3NhZ2UoSVBD
OjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rl
cj4mKTsKIAogICAgIHZvaWQgc2NoZWR1bGVSZXNvdXJjZUxvYWQoTmV0d29ya1Jlc291cmNlTG9h
ZFBhcmFtZXRlcnMmJik7Ci0gICAgdm9pZCBwZXJmb3JtU3luY2hyb25vdXNMb2FkKE5ldHdvcmtS
ZXNvdXJjZUxvYWRQYXJhbWV0ZXJzJiYsIE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzczo6UGVyZm9ybVN5bmNocm9ub3VzTG9hZDo6RGVsYXllZFJlcGx5JiYpOwotICAgIHZv
aWQgdGVzdFByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5
KFdlYlBhZ2VQcm94eUlkZW50aWZpZXIsIE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzczo6VGVzdFByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yU3lu
Y1JlcGx5OjpEZWxheWVkUmVwbHkmJik7CisgICAgdm9pZCBwZXJmb3JtU3luY2hyb25vdXNMb2Fk
KE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzJiYsIE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVj
dGlvblRvV2ViUHJvY2Vzczo6UGVyZm9ybVN5bmNocm9ub3VzTG9hZERlbGF5ZWRSZXBseSYmKTsK
KyAgICB2b2lkIHRlc3RQcm9jZXNzSW5jb21pbmdTeW5jTWVzc2FnZXNXaGVuV2FpdGluZ0ZvclN5
bmNSZXBseShXZWJQYWdlUHJveHlJZGVudGlmaWVyLCBNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3M6OlRlc3RQcm9jZXNzSW5jb21pbmdTeW5jTWVzc2FnZXNXaGVuV2FpdGlu
Z0ZvclN5bmNSZXBseURlbGF5ZWRSZXBseSYmKTsKICAgICB2b2lkIGxvYWRQaW5nKE5ldHdvcmtS
ZXNvdXJjZUxvYWRQYXJhbWV0ZXJzJiYpOwogICAgIHZvaWQgcHJlZmV0Y2hETlMoY29uc3QgU3Ry
aW5nJik7CiAgICAgdm9pZCBwcmVjb25uZWN0VG8odWludDY0X3QgcHJlY29ubmVjdGlvbklkZW50
aWZpZXIsIE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzJiYpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4
IDRlM2MwMWUyNzAyYmQzNTAwM2E1MjUxNGRkYzE3Y2VjMzhiOTZkYWIuLmZmZmU1ZDA0NmI1MzRk
ZTA0N2M4MzY1YmI2MGY5NTNmMzcxZGVlZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAKQEAgLTMxLDYgKzMxLDcg
QEAKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTmV0d29ya0NhY2hlLmgiCiAjaW5j
bHVkZSAiTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCIKKyNpbmNsdWRlICJOZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzc01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiTmV0d29ya0xvYWQu
aCIKICNpbmNsdWRlICJOZXR3b3JrTG9hZENoZWNrZXIuaCIKICNpbmNsdWRlICJOZXR3b3JrUHJv
Y2Vzcy5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UmVzb3VyY2VMb2FkZXIuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jl
c291cmNlTG9hZGVyLmgKaW5kZXggOGQxNzllM2ViNDE2M2UxODk4YjVlMWRhMjdiMmU4NWNjOGIz
ZDU1NC4uNjZiMjU2MDA1MTZhODc5NjJmNzhkMjM4NjJhYzUwN2RhN2Q3ZTYzMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5o
CkBAIC0yOSw3ICsyOSw3IEBACiAjaW5jbHVkZSAiTWVzc2FnZVNlbmRlci5oIgogI2luY2x1ZGUg
Ik5ldHdvcmtDYWNoZS5oIgogI2luY2x1ZGUgIk5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
LmgiCi0jaW5jbHVkZSAiTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlcy5oIgor
I2luY2x1ZGUgIk5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzTWVzc2FnZXNSZXBsaWVzLmgi
CiAjaW5jbHVkZSAiTmV0d29ya0xvYWRDbGllbnQuaCIKICNpbmNsdWRlICJOZXR3b3JrUmVzb3Vy
Y2VMb2FkUGFyYW1ldGVycy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQWRDbGlja0F0dHJpYnV0aW9u
Lmg+CkBAIC02NSw3ICs2NSw3IEBAIGNsYXNzIE5ldHdvcmtSZXNvdXJjZUxvYWRlciBmaW5hbAog
ICAgICwgcHVibGljIFdlYkNvcmU6OkNvbnRlbnRTZWN1cml0eVBvbGljeUNsaWVudAogICAgICwg
cHVibGljIENhbk1ha2VXZWFrUHRyPE5ldHdvcmtSZXNvdXJjZUxvYWRlcj4gewogcHVibGljOgot
ICAgIHN0YXRpYyBSZWY8TmV0d29ya1Jlc291cmNlTG9hZGVyPiBjcmVhdGUoTmV0d29ya1Jlc291
cmNlTG9hZFBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzLCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2VzcyYgY29ubmVjdGlvbiwgTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
OjpQZXJmb3JtU3luY2hyb25vdXNMb2FkOjpEZWxheWVkUmVwbHkmJiByZXBseSA9IG51bGxwdHIp
CisgICAgc3RhdGljIFJlZjxOZXR3b3JrUmVzb3VyY2VMb2FkZXI+IGNyZWF0ZShOZXR3b3JrUmVz
b3VyY2VMb2FkUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMsIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzJiBjb25uZWN0aW9uLCBNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3M6OlBlcmZvcm1TeW5jaHJvbm91c0xvYWREZWxheWVkUmVwbHkmJiByZXBseSA9IG51bGxwdHIp
CiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBOZXR3b3JrUmVzb3VyY2VMb2Fk
ZXIoV1RGTW92ZShwYXJhbWV0ZXJzKSwgY29ubmVjdGlvbiwgV1RGTW92ZShyZXBseSkpKTsKICAg
ICB9CkBAIC0xMzEsNyArMTMxLDcgQEAgcHVibGljOgogI2VuZGlmCiAKIHByaXZhdGU6Ci0gICAg
TmV0d29ya1Jlc291cmNlTG9hZGVyKE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzJiYsIE5l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiwgTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9u
VG9XZWJQcm9jZXNzOjpQZXJmb3JtU3luY2hyb25vdXNMb2FkOjpEZWxheWVkUmVwbHkmJik7Cisg
ICAgTmV0d29ya1Jlc291cmNlTG9hZGVyKE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzJiYs
IE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiwgTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzOjpQZXJmb3JtU3luY2hyb25vdXNMb2FkRGVsYXllZFJlcGx5JiYpOwog
CiAgICAgLy8gSVBDOjpNZXNzYWdlU2VuZGVyCiAgICAgSVBDOjpDb25uZWN0aW9uKiBtZXNzYWdl
U2VuZGVyQ29ubmVjdGlvbigpIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9QbHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1BsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5LmNwcAppbmRleCBiNjQyMTQ0
YmQxYWViOTcwYzZmYzY3ODkxODg0MDJmZGFhODcxOTk3Li5lYTcxMWQzMmUyNTVmNzNjMzc1MmY0
MjlmMGVhNzIyMTViOWM5MzNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsdWdpblByb2Nl
c3MvUGx1Z2luQ29udHJvbGxlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsdWdpblBy
b2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5LmNwcApAQCAtNDAsNiArNDAsNyBAQAogI2luY2x1
ZGUgIlNoYXJlYWJsZUJpdG1hcC5oIgogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5o
IgogI2luY2x1ZGUgIldlYlByb2Nlc3NDb25uZWN0aW9uLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vz
c0Nvbm5lY3Rpb25NZXNzYWdlcy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvR3JhcGhpY3NDb250ZXh0
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9IVFRQSGVhZGVyTWFwLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9JZGVudGlmaWVyUmVwLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsdWdpblByb2Nl
c3MvUGx1Z2luQ29udHJvbGxlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1BsdWdpblByb2Nlc3Mv
UGx1Z2luQ29udHJvbGxlclByb3h5LmgKaW5kZXggYjk4Y2E5NGJjOWVmYzIzYjJlZDgxOGE1Yjc4
NDMzNzIzMTdlOWM2Ny4uYWQ0ZmNkOWQ4Y2NmNDJmMTJlZTQ4OGUwMTM0NmM2MTlhNzAxYjhkMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQ
cm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250cm9sbGVy
UHJveHkuaApAQCAtMzAsOSArMzAsOCBAQAogI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKICNpbmNs
dWRlICJQbHVnaW4uaCIKICNpbmNsdWRlICJQbHVnaW5Db250cm9sbGVyLmgiCi0jaW5jbHVkZSAi
UGx1Z2luQ29udHJvbGxlclByb3h5TWVzc2FnZXMuaCIKICNpbmNsdWRlICJTaGFyZWFibGVCaXRt
YXAuaCIKLSNpbmNsdWRlICJXZWJQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VzLmgiCisjaW5jbHVk
ZSAiV2ViUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlc1JlcGxpZXMuaCIKICNpbmNsdWRlIDxXZWJD
b3JlL1NlY3VyaXR5T3JpZ2luLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Vc2VyQWN0aXZpdHkuaD4K
ICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KQEAgLTc1LDggKzc0LDggQEAgcHVibGljOgog
CiAgICAgYm9vbCBpc0luaXRpYWxpemluZygpIGNvbnN0IHsgcmV0dXJuIG1faXNJbml0aWFsaXpp
bmc7IH0KICAgICAKLSAgICB2b2lkIHNldEluaXRpYWxpemF0aW9uUmVwbHkoTWVzc2FnZXM6Oldl
YlByb2Nlc3NDb25uZWN0aW9uOjpDcmVhdGVQbHVnaW46OkRlbGF5ZWRSZXBseSYmKTsKLSAgICBN
ZXNzYWdlczo6V2ViUHJvY2Vzc0Nvbm5lY3Rpb246OkNyZWF0ZVBsdWdpbjo6RGVsYXllZFJlcGx5
IHRha2VJbml0aWFsaXphdGlvblJlcGx5KCk7CisgICAgdm9pZCBzZXRJbml0aWFsaXphdGlvblJl
cGx5KE1lc3NhZ2VzOjpXZWJQcm9jZXNzQ29ubmVjdGlvbjo6Q3JlYXRlUGx1Z2luRGVsYXllZFJl
cGx5JiYpOworICAgIE1lc3NhZ2VzOjpXZWJQcm9jZXNzQ29ubmVjdGlvbjo6Q3JlYXRlUGx1Z2lu
RGVsYXllZFJlcGx5IHRha2VJbml0aWFsaXphdGlvblJlcGx5KCk7CiAKIHByaXZhdGU6CiAgICAg
dm9pZCBzdGFydFBhaW50VGltZXIoKTsKQEAgLTE4NCw3ICsxODMsNyBAQCBwcml2YXRlOgogICAg
IGJvb2wgbV9pc1Zpc2libGU7CiAgICAgYm9vbCBtX2lzV2luZG93VmlzaWJsZTsKIAotICAgIE1l
c3NhZ2VzOjpXZWJQcm9jZXNzQ29ubmVjdGlvbjo6Q3JlYXRlUGx1Z2luOjpEZWxheWVkUmVwbHkg
bV9pbml0aWFsaXphdGlvblJlcGx5OworICAgIE1lc3NhZ2VzOjpXZWJQcm9jZXNzQ29ubmVjdGlv
bjo6Q3JlYXRlUGx1Z2luRGVsYXllZFJlcGx5IG1faW5pdGlhbGl6YXRpb25SZXBseTsKIAogICAg
IFJlZlB0cjxQbHVnaW4+IG1fcGx1Z2luOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1Bs
dWdpblByb2Nlc3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvUGx1Z2lu
UHJvY2Vzcy9XZWJQcm9jZXNzQ29ubmVjdGlvbi5oCmluZGV4IDNhMGE3YTg5NzllMzMxN2QzNzcy
NjhmOGU2OTAyNGVhMmQ2MmNhMzQuLmVmMjQyMTBhOWIwNGQ4ZThhMjczNGRkZjhjYzEyYWJiM2Mw
MzA3OTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGx1Z2luUHJvY2Vzcy9XZWJQcm9jZXNz
Q29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvUGx1Z2luUHJvY2Vzcy9XZWJQcm9jZXNz
Q29ubmVjdGlvbi5oCkBAIC0yOSw3ICsyOSw3IEBACiAKICNpbmNsdWRlICJDb25uZWN0aW9uLmgi
CiAjaW5jbHVkZSAiUGx1Z2luLmgiCi0jaW5jbHVkZSAiV2ViUHJvY2Vzc0Nvbm5lY3Rpb25NZXNz
YWdlcy5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXNSZXBsaWVzLmgi
CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgog
CkBAIC02OSw5ICs2OSw5IEBAIHByaXZhdGU6CiAgICAgLy8gTWVzc2FnZSBoYW5kbGVycy4KICAg
ICB2b2lkIGRpZFJlY2VpdmVXZWJQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2UoSVBDOjpDb25uZWN0
aW9uJiwgSVBDOjpEZWNvZGVyJik7CiAgICAgdm9pZCBkaWRSZWNlaXZlU3luY1dlYlByb2Nlc3ND
b25uZWN0aW9uTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImLCBzdGQ6OnVu
aXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYpOwotICAgIHZvaWQgY3JlYXRlUGx1Z2luKGNvbnN0IFBs
dWdpbkNyZWF0aW9uUGFyYW1ldGVycyYsIE1lc3NhZ2VzOjpXZWJQcm9jZXNzQ29ubmVjdGlvbjo6
Q3JlYXRlUGx1Z2luOjpEZWxheWVkUmVwbHkmJik7CisgICAgdm9pZCBjcmVhdGVQbHVnaW4oY29u
c3QgUGx1Z2luQ3JlYXRpb25QYXJhbWV0ZXJzJiwgTWVzc2FnZXM6OldlYlByb2Nlc3NDb25uZWN0
aW9uOjpDcmVhdGVQbHVnaW5EZWxheWVkUmVwbHkmJik7CiAgICAgdm9pZCBjcmVhdGVQbHVnaW5B
c3luY2hyb25vdXNseShjb25zdCBQbHVnaW5DcmVhdGlvblBhcmFtZXRlcnMmKTsKLSAgICB2b2lk
IGRlc3Ryb3lQbHVnaW4odWludDY0X3QgcGx1Z2luSW5zdGFuY2VJRCwgYm9vbCBhc3luY2hyb25v
dXNDcmVhdGlvbkluY29tcGxldGUsIE1lc3NhZ2VzOjpXZWJQcm9jZXNzQ29ubmVjdGlvbjo6RGVz
dHJveVBsdWdpbjo6RGVsYXllZFJlcGx5JiYpOworICAgIHZvaWQgZGVzdHJveVBsdWdpbih1aW50
NjRfdCBwbHVnaW5JbnN0YW5jZUlELCBib29sIGFzeW5jaHJvbm91c0NyZWF0aW9uSW5jb21wbGV0
ZSwgTWVzc2FnZXM6OldlYlByb2Nlc3NDb25uZWN0aW9uOjpEZXN0cm95UGx1Z2luRGVsYXllZFJl
cGx5JiYpOwogICAgIAogICAgIHZvaWQgY3JlYXRlUGx1Z2luSW50ZXJuYWwoY29uc3QgUGx1Z2lu
Q3JlYXRpb25QYXJhbWV0ZXJzJiwgYm9vbCYgcmVzdWx0LCBib29sJiB3YW50c1doZWVsRXZlbnRz
LCB1aW50MzJfdCYgcmVtb3RlTGF5ZXJDbGllbnRJRCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvU2NyaXB0cy9NYWtlZmlsZSBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy9NYWtlZmlsZQpp
bmRleCA2NTgyMGYyMzUzMDVhMjRhMTkwMjk0OTA2ZGEzODhmMTYzNWIxNmRlLi41NDMyYzgyMTdh
ZDJkYTdkZDI5MThhNmE2MmM3NWI0NDcwZTJjODZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1NjcmlwdHMvTWFrZWZpbGUKKysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL01ha2VmaWxlCkBA
IC0xLDggKzEsNSBAQAogYWxsOgotCXB5dGhvbiAuL2dlbmVyYXRlLW1lc3NhZ2VzLWhlYWRlci5w
eSB3ZWJraXQvdGVzdC1zdXBlcmNsYXNzLW1lc3NhZ2VzLmluID4gd2Via2l0L01lc3NhZ2VzU3Vw
ZXJjbGFzcy1leHBlY3RlZC5oCi0JcHl0aG9uIC4vZ2VuZXJhdGUtbWVzc2FnZXMtaGVhZGVyLnB5
IHdlYmtpdC90ZXN0LWxlZ2FjeS1tZXNzYWdlcy5pbiA+IHdlYmtpdC9MZWdhY3lNZXNzYWdlcy1l
eHBlY3RlZC5oCi0JcHl0aG9uIC4vZ2VuZXJhdGUtbWVzc2FnZXMtaGVhZGVyLnB5IHdlYmtpdC90
ZXN0LW1lc3NhZ2VzLmluID4gd2Via2l0L01lc3NhZ2VzLWV4cGVjdGVkLmgKLQlweXRob24gLi9n
ZW5lcmF0ZS1tZXNzYWdlLXJlY2VpdmVyLnB5IHdlYmtpdC90ZXN0LXN1cGVyY2xhc3MtbWVzc2Fn
ZXMuaW4gPiB3ZWJraXQvTWVzc2FnZVJlY2VpdmVyU3VwZXJjbGFzcy1leHBlY3RlZC5jcHAKLQlw
eXRob24gLi9nZW5lcmF0ZS1tZXNzYWdlLXJlY2VpdmVyLnB5IHdlYmtpdC90ZXN0LWxlZ2FjeS1t
ZXNzYWdlcy5pbiA+IHdlYmtpdC9MZWdhY3lNZXNzYWdlUmVjZWl2ZXItZXhwZWN0ZWQuY3BwCi0J
cHl0aG9uIC4vZ2VuZXJhdGUtbWVzc2FnZS1yZWNlaXZlci5weSB3ZWJraXQvdGVzdC1tZXNzYWdl
cy5pbiA+IHdlYmtpdC9NZXNzYWdlUmVjZWl2ZXItZXhwZWN0ZWQuY3BwCisJcHl0aG9uIC4vZ2Vu
ZXJhdGUtbWVzc2FnZS1yZWNlaXZlci5weSB3ZWJraXQvdGVzdC1zdXBlcmNsYXNzLW1lc3NhZ2Vz
LmluIC0taW1wbGVtZW50YXRpb24gd2Via2l0L01lc3NhZ2VSZWNlaXZlclN1cGVyY2xhc3MtZXhw
ZWN0ZWQuY3BwIC0taGVhZGVyIHdlYmtpdC9NZXNzYWdlc1N1cGVyY2xhc3MtZXhwZWN0ZWQuaCAt
LXJlcGx5LWhlYWRlciB3ZWJraXQvTWVzc2FnZXNSZXBsaWVzU3VwZXJjbGFzc1JlcGxpZXMtZXhw
ZWN0ZWQuaAorCXB5dGhvbiAuL2dlbmVyYXRlLW1lc3NhZ2UtcmVjZWl2ZXIucHkgd2Via2l0L3Rl
c3QtbGVnYWN5LW1lc3NhZ2VzLmluIC0taW1wbGVtZW50YXRpb24gd2Via2l0L0xlZ2FjeU1lc3Nh
Z2VSZWNlaXZlci1leHBlY3RlZC5jcHAgLS1oZWFkZXIgd2Via2l0L0xlZ2FjeU1lc3NhZ2VzLWV4
cGVjdGVkLmggLS1yZXBseS1oZWFkZXIgd2Via2l0L0xlZ2FjeU1lc3NhZ2VzUmVwbGllcy1leHBl
Y3RlZC5oCisJcHl0aG9uIC4vZ2VuZXJhdGUtbWVzc2FnZS1yZWNlaXZlci5weSB3ZWJraXQvdGVz
dC1tZXNzYWdlcy5pbiAtLWltcGxlbWVudGF0aW9uIHdlYmtpdC9NZXNzYWdlUmVjZWl2ZXItZXhw
ZWN0ZWQuY3BwIC0taGVhZGVyIHdlYmtpdC9NZXNzYWdlcy1leHBlY3RlZC5oIC0tcmVwbHktaGVh
ZGVyIHdlYmtpdC9NZXNzYWdlc1JlcGxpZXMtZXhwZWN0ZWQuaAogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1NjcmlwdHMvZ2VuZXJhdGUtbWVzc2FnZS1yZWNlaXZlci5weSBiL1NvdXJjZS9X
ZWJLaXQvU2NyaXB0cy9nZW5lcmF0ZS1tZXNzYWdlLXJlY2VpdmVyLnB5CmluZGV4IDY0MTNhOGJm
MzZmMTI3ZDRmODNmZmI0OWY5MWNkODhkMzcwMzAyYzIuLjM1ZTQwNTgyZTc5YTNmMGNlOTMzN2E4
NmQ0ZTA5MzM3ZmJhNDExZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy9nZW5l
cmF0ZS1tZXNzYWdlLXJlY2VpdmVyLnB5CisrKyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy9nZW5l
cmF0ZS1tZXNzYWdlLXJlY2VpdmVyLnB5CkBAIC0yMywxOCArMjMsMzQgQEAKICMgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KIAogZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCB3aXRoX3N0YXRlbWVudAoraW1wb3J0IGFyZ3Bh
cnNlCiBpbXBvcnQgc3lzCiAKIGltcG9ydCB3ZWJraXQubWVzc2FnZXMKK2ltcG9ydCB3ZWJraXQu
cGFyc2VyCiAKIAogZGVmIG1haW4oYXJndj1Ob25lKToKLSAgICBpZiBub3QgYXJndjoKLSAgICAg
ICAgYXJndiA9IHN5cy5hcmd2Ci0gICAgaW5wdXRfcGF0aCA9IGFyZ3ZbMV0KLSAgICB3aXRoIG9w
ZW4oaW5wdXRfcGF0aCkgYXMgaW5wdXRfZmlsZToKLSAgICAgICAgIyBQeXRob24gMywgY2hhbmdl
IHRvOiAgcHJpbnQod2Via2l0Lm1lc3NhZ2VzLmdlbmVyYXRlX21lc3NhZ2VfaGFuZGxlcihpbnB1
dF9maWxlKSwgZW5kPScnKQotICAgICAgICBzeXMuc3Rkb3V0LndyaXRlKHdlYmtpdC5tZXNzYWdl
cy5nZW5lcmF0ZV9tZXNzYWdlX2hhbmRsZXIoaW5wdXRfZmlsZSkpCisgICAgcGFyc2VyID0gYXJn
cGFyc2UuQXJndW1lbnRQYXJzZXIoKQorICAgIHBhcnNlci5hZGRfYXJndW1lbnQoJ3NvdXJjZScp
CisgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgnLS1pbXBsZW1lbnRhdGlvbicsIHJlcXVpcmVkPVRy
dWUpCisgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgnLS1oZWFkZXInLCByZXF1aXJlZD1UcnVlKQor
ICAgIHBhcnNlci5hZGRfYXJndW1lbnQoJy0tcmVwbHktaGVhZGVyJywgcmVxdWlyZWQ9VHJ1ZSkK
KworICAgIGFyZ3MgPSBwYXJzZXIucGFyc2VfYXJncygpCisKKyAgICB3aXRoIG9wZW4oYXJncy5z
b3VyY2UpIGFzIHNvdXJjZV9maWxlOgorICAgICAgICByZWNlaXZlciA9IHdlYmtpdC5wYXJzZXIu
cGFyc2Uoc291cmNlX2ZpbGUpCisKKyAgICB3aXRoIG9wZW4oYXJncy5pbXBsZW1lbnRhdGlvbiwg
IncrIikgYXMgaW1wbGVtZW50YXRpb25fb3V0cHV0OgorICAgICAgICBpbXBsZW1lbnRhdGlvbl9v
dXRwdXQud3JpdGUod2Via2l0Lm1lc3NhZ2VzLmdlbmVyYXRlX21lc3NhZ2VfaGFuZGxlcihyZWNl
aXZlcikpCisKKyAgICB3aXRoIG9wZW4oYXJncy5oZWFkZXIsICJ3KyIpIGFzIGhlYWRlcl9vdXRw
dXQ6CisgICAgICAgIGhlYWRlcl9vdXRwdXQud3JpdGUod2Via2l0Lm1lc3NhZ2VzLmdlbmVyYXRl
X21lc3NhZ2VzX2hlYWRlcihyZWNlaXZlcikpCisKKyAgICB3aXRoIG9wZW4oYXJncy5yZXBseV9o
ZWFkZXIsICJ3KyIpIGFzIHJlcGx5X2hlYWRlcl9vdXRwdXQ6CisgICAgICAgIHJlcGx5X2hlYWRl
cl9vdXRwdXQud3JpdGUod2Via2l0Lm1lc3NhZ2VzLmdlbmVyYXRlX21lc3NhZ2VzX3JlcGx5X2hl
YWRlcihyZWNlaXZlcikpCisKICAgICByZXR1cm4gMAogCiBpZiBfX25hbWVfXyA9PSAnX19tYWlu
X18nOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL2dlbmVyYXRlLW1lc3NhZ2Vz
LWhlYWRlci5weSBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy9nZW5lcmF0ZS1tZXNzYWdlcy1oZWFk
ZXIucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFkNzNhNTI4MzQ4MzA5YWViMjEw
OGI0NDE5NjM4NGEzNDdlYmM2NjYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9TY3JpcHRzL2dlbmVyYXRlLW1lc3NhZ2VzLWhlYWRl
ci5weQorKysgL2Rldi9udWxsCkBAIC0xLDQxICswLDAgQEAKLSMhL3Vzci9iaW4vZW52IHB5dGhv
bgotIwotIyBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0jIGFyZSBtZXQ6Ci0jIDEuICBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAot
IyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgotIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSMgICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECi0jIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0j
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUKLSMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKLSMgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAotIyBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUgotIyBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgotIyBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLAotIyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi1mcm9tIF9fZnV0
dXJlX18gaW1wb3J0IHdpdGhfc3RhdGVtZW50Ci1pbXBvcnQgc3lzCi0KLWltcG9ydCB3ZWJraXQu
bWVzc2FnZXMKLQotCi1kZWYgbWFpbihhcmd2PU5vbmUpOgotICAgIGlmIG5vdCBhcmd2OgotICAg
ICAgICBhcmd2ID0gc3lzLmFyZ3YKLSAgICBpbnB1dF9wYXRoID0gYXJndlsxXQotICAgIHdpdGgg
b3BlbihpbnB1dF9wYXRoKSBhcyBpbnB1dF9maWxlOgotICAgICAgICAjIFB5dGhvbiAzLCBjaGFu
Z2UgdG86ICBwcmludCh3ZWJraXQubWVzc2FnZXMuZ2VuZXJhdGVfbWVzc2FnZXNfaGVhZGVyKGlu
cHV0X2ZpbGUpLCBlbmQ9JycpCi0gICAgICAgIHN5cy5zdGRvdXQud3JpdGUod2Via2l0Lm1lc3Nh
Z2VzLmdlbmVyYXRlX21lc3NhZ2VzX2hlYWRlcihpbnB1dF9maWxlKSkKLSAgICByZXR1cm4gMAot
Ci1pZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgotICAgIHN5cy5leGl0KG1haW4oc3lzLmFyZ3Yp
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9MZWdhY3lNZXNzYWdl
UmVjZWl2ZXItZXhwZWN0ZWQuY3BwIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9MZWdh
Y3lNZXNzYWdlUmVjZWl2ZXItZXhwZWN0ZWQuY3BwCmluZGV4IGZlYTg1MzY3NTM1Njc3MjYyYzdm
NzI0MmY0OGNkOWFjODMwMGYwOTAuLmQwYjg2NWY3ZjczZGU1Y2YzOWUwOTUzZmZmYTgyMjcxNmQw
YWI5MDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvTGVnYWN5TWVz
c2FnZVJlY2VpdmVyLWV4cGVjdGVkLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Vi
a2l0L0xlZ2FjeU1lc3NhZ2VSZWNlaXZlci1leHBlY3RlZC5jcHAKQEAgLTEsNSArMSw1IEBACiAv
KgotICogQ29weXJpZ2h0IChDKSAyMDEwLTIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwLTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L0xlZ2FjeU1lc3NhZ2VzLWV4cGVjdGVkLmggYi9Tb3Vy
Y2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L0xlZ2FjeU1lc3NhZ2VzLWV4cGVjdGVkLmgKaW5kZXgg
ZmZkMTNkM2U4YzIwYzhiOWJkZThjMmJhMzE1MTk5MTE0YjdmYmFmYS4uNDlhOTExNzY4YzExMzc0
YWFiZGRkNjYyOGNlYWMwYmQ3NzViZjA0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TY3Jp
cHRzL3dlYmtpdC9MZWdhY3lNZXNzYWdlcy1leHBlY3RlZC5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
U2NyaXB0cy93ZWJraXQvTGVnYWN5TWVzc2FnZXMtZXhwZWN0ZWQuaApAQCAtMSw1ICsxLDUgQEAK
IC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAtMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI0LDYgKzI0LDcg
QEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJXZWJQYWdlTWVzc2FnZXNSZXBsaWVzLmgi
CiAjaWYgKEVOQUJMRShXRUJLSVQyKSAmJiAoTkVTVEVEX01BU1RFUl9DT05ESVRJT04gfHwgTUFT
VEVSX09SICYmIE1BU1RFUl9BTkQpKQogCiAjaW5jbHVkZSAiQXJndW1lbnRDb2RlcnMuaCIKQEAg
LTM2MCw4ICszNjEsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIElQQzo6U3RyaW5nUmVmZXJlbmNl
IG5hbWUoKSB7IHJldHVybiBJUEM6OlN0cmluZ1JlZmVyZW5jZSgiR2V0UGx1Z2luUHJvY2Vzc0Nv
bm5lY3Rpb24iKTsgfQogICAgIHN0YXRpYyBjb25zdCBib29sIGlzU3luYyA9IHRydWU7CiAKLSAg
ICB1c2luZyBEZWxheWVkUmVwbHkgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IElQQzo6
Q29ubmVjdGlvbjo6SGFuZGxlJiBjb25uZWN0aW9uSGFuZGxlKT47Ci0gICAgc3RhdGljIHZvaWQg
c2VuZChzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYmLCBJUEM6OkNvbm5lY3Rpb24mLCBj
b25zdCBJUEM6OkNvbm5lY3Rpb246OkhhbmRsZSYgY29ubmVjdGlvbkhhbmRsZSk7CisgICAgdXNp
bmcgRGVsYXllZFJlcGx5ID0gR2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25EZWxheWVkUmVwbHk7
ICAgIHN0YXRpYyB2b2lkIHNlbmQoc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mJiwgSVBD
OjpDb25uZWN0aW9uJiwgY29uc3QgSVBDOjpDb25uZWN0aW9uOjpIYW5kbGUmIGNvbm5lY3Rpb25I
YW5kbGUpOwogICAgIHVzaW5nIFJlcGx5ID0gc3RkOjp0dXBsZTxJUEM6OkNvbm5lY3Rpb246Okhh
bmRsZSY+OwogICAgIHVzaW5nIFJlcGx5QXJndW1lbnRzID0gc3RkOjp0dXBsZTxJUEM6OkNvbm5l
Y3Rpb246OkhhbmRsZT47CiAgICAgZXhwbGljaXQgR2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24o
Y29uc3QgU3RyaW5nJiBwbHVnaW5QYXRoKQpAQCAtMzg2LDggKzM4Niw3IEBAIHB1YmxpYzoKICAg
ICBzdGF0aWMgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbmFtZSgpIHsgcmV0dXJuIElQQzo6U3RyaW5n
UmVmZXJlbmNlKCJUZXN0TXVsdGlwbGVBdHRyaWJ1dGVzIik7IH0KICAgICBzdGF0aWMgY29uc3Qg
Ym9vbCBpc1N5bmMgPSB0cnVlOwogCi0gICAgdXNpbmcgRGVsYXllZFJlcGx5ID0gQ29tcGxldGlv
bkhhbmRsZXI8dm9pZCgpPjsKLSAgICBzdGF0aWMgdm9pZCBzZW5kKHN0ZDo6dW5pcXVlX3B0cjxJ
UEM6OkVuY29kZXI+JiYsIElQQzo6Q29ubmVjdGlvbiYpOworICAgIHVzaW5nIERlbGF5ZWRSZXBs
eSA9IFRlc3RNdWx0aXBsZUF0dHJpYnV0ZXNEZWxheWVkUmVwbHk7ICAgIHN0YXRpYyB2b2lkIHNl
bmQoc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mJiwgSVBDOjpDb25uZWN0aW9uJik7CiAg
ICAgdXNpbmcgUmVwbHkgPSBzdGQ6OnR1cGxlPD47CiAgICAgdXNpbmcgUmVwbHlBcmd1bWVudHMg
PSBzdGQ6OnR1cGxlPD47CiAgICAgY29uc3QgQXJndW1lbnRzJiBhcmd1bWVudHMoKSBjb25zdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9MZWdhY3lNZXNzYWdlc1Jl
cGxpZXMtZXhwZWN0ZWQuaCBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvTGVnYWN5TWVz
c2FnZXNSZXBsaWVzLWV4cGVjdGVkLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjcwY2VhZmQ5ZmE1ZWNkY2NmYTFj
MjFjMDk3YWU3NDY0OWM4ZTRmYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2Ny
aXB0cy93ZWJraXQvTGVnYWN5TWVzc2FnZXNSZXBsaWVzLWV4cGVjdGVkLmgKQEAgLTAsMCArMSw0
MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMC0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisgKiBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IKKyAqIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwKKyAqIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisgKiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUgorICogQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyAqIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgKEVOQUJMRShXRUJL
SVQyKSAmJiAoTkVTVEVEX01BU1RFUl9DT05ESVRJT04gfHwgTUFTVEVSX09SICYmIE1BU1RFUl9B
TkQpKQorCisjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+
CisKKworbmFtZXNwYWNlIE1lc3NhZ2VzIHsKK25hbWVzcGFjZSBXZWJQYWdlIHsKKwordXNpbmcg
R2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25EZWxheWVkUmVwbHkgPSBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKGNvbnN0IElQQzo6Q29ubmVjdGlvbjo6SGFuZGxlJiBjb25uZWN0aW9uSGFuZGxlKT47
CisKK3VzaW5nIFRlc3RNdWx0aXBsZUF0dHJpYnV0ZXNEZWxheWVkUmVwbHkgPSBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKCk+OworCit9IC8vIG5hbWVzcGFjZSBXZWJQYWdlCit9IC8vIG5hbWVzcGFj
ZSBNZXNzYWdlcworCisjZW5kaWYgLy8gKEVOQUJMRShXRUJLSVQyKSAmJiAoTkVTVEVEX01BU1RF
Ul9DT05ESVRJT04gfHwgTUFTVEVSX09SICYmIE1BU1RFUl9BTkQpKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9NZXNzYWdlUmVjZWl2ZXItZXhwZWN0ZWQuY3BwIGIv
U291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9NZXNzYWdlUmVjZWl2ZXItZXhwZWN0ZWQuY3Bw
CmluZGV4IGI1Y2NlMWJhNGY1NmE3Yzg3Mzg0YTIwMjFlNDlkODUyMmFmNjgyYzAuLmEyNWE5MTJm
NjNhYThjZDc2ZjgwYmI5YzFlNTVjMjkzODMwOGU2NmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvU2NyaXB0cy93ZWJraXQvTWVzc2FnZVJlY2VpdmVyLWV4cGVjdGVkLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L01lc3NhZ2VSZWNlaXZlci1leHBlY3RlZC5jcHAKQEAg
LTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEwLTIwMTggQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwLTIwMTkgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L01lc3NhZ2VSZWNlaXZlclN1
cGVyY2xhc3MtZXhwZWN0ZWQuY3BwIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9NZXNz
YWdlUmVjZWl2ZXJTdXBlcmNsYXNzLWV4cGVjdGVkLmNwcAppbmRleCAxNDIxMmQ1YzhhYTUxMjgw
NTYwMGFmYWM5YmEyNzdiZDUzMWZhMzcwLi5iNjExYjI1ZTA4NjJkYjU5Nzk3NTk3OGRmNDA0Yzhh
MzUxMjc0ODcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L01lc3Nh
Z2VSZWNlaXZlclN1cGVyY2xhc3MtZXhwZWN0ZWQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2Ny
aXB0cy93ZWJraXQvTWVzc2FnZVJlY2VpdmVyU3VwZXJjbGFzcy1leHBlY3RlZC5jcHAKQEAgLTEs
NSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEwLTIwMTggQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwLTIwMTkgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L01lc3NhZ2VzLWV4cGVjdGVkLmgg
Yi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L01lc3NhZ2VzLWV4cGVjdGVkLmgKaW5kZXgg
ZmZkMTNkM2U4YzIwYzhiOWJkZThjMmJhMzE1MTk5MTE0YjdmYmFmYS4uNDlhOTExNzY4YzExMzc0
YWFiZGRkNjYyOGNlYWMwYmQ3NzViZjA0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TY3Jp
cHRzL3dlYmtpdC9NZXNzYWdlcy1leHBlY3RlZC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0
cy93ZWJraXQvTWVzc2FnZXMtZXhwZWN0ZWQuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTAtMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTAtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI0LDYgKzI0LDcgQEAKIAogI3ByYWdt
YSBvbmNlCiAKKyNpbmNsdWRlICJXZWJQYWdlTWVzc2FnZXNSZXBsaWVzLmgiCiAjaWYgKEVOQUJM
RShXRUJLSVQyKSAmJiAoTkVTVEVEX01BU1RFUl9DT05ESVRJT04gfHwgTUFTVEVSX09SICYmIE1B
U1RFUl9BTkQpKQogCiAjaW5jbHVkZSAiQXJndW1lbnRDb2RlcnMuaCIKQEAgLTM2MCw4ICszNjEs
NyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIElQQzo6U3RyaW5nUmVmZXJlbmNlIG5hbWUoKSB7IHJl
dHVybiBJUEM6OlN0cmluZ1JlZmVyZW5jZSgiR2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24iKTsg
fQogICAgIHN0YXRpYyBjb25zdCBib29sIGlzU3luYyA9IHRydWU7CiAKLSAgICB1c2luZyBEZWxh
eWVkUmVwbHkgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IElQQzo6Q29ubmVjdGlvbjo6
SGFuZGxlJiBjb25uZWN0aW9uSGFuZGxlKT47Ci0gICAgc3RhdGljIHZvaWQgc2VuZChzdGQ6OnVu
aXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYmLCBJUEM6OkNvbm5lY3Rpb24mLCBjb25zdCBJUEM6OkNv
bm5lY3Rpb246OkhhbmRsZSYgY29ubmVjdGlvbkhhbmRsZSk7CisgICAgdXNpbmcgRGVsYXllZFJl
cGx5ID0gR2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25EZWxheWVkUmVwbHk7ICAgIHN0YXRpYyB2
b2lkIHNlbmQoc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mJiwgSVBDOjpDb25uZWN0aW9u
JiwgY29uc3QgSVBDOjpDb25uZWN0aW9uOjpIYW5kbGUmIGNvbm5lY3Rpb25IYW5kbGUpOwogICAg
IHVzaW5nIFJlcGx5ID0gc3RkOjp0dXBsZTxJUEM6OkNvbm5lY3Rpb246OkhhbmRsZSY+OwogICAg
IHVzaW5nIFJlcGx5QXJndW1lbnRzID0gc3RkOjp0dXBsZTxJUEM6OkNvbm5lY3Rpb246OkhhbmRs
ZT47CiAgICAgZXhwbGljaXQgR2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24oY29uc3QgU3RyaW5n
JiBwbHVnaW5QYXRoKQpAQCAtMzg2LDggKzM4Niw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgSVBD
OjpTdHJpbmdSZWZlcmVuY2UgbmFtZSgpIHsgcmV0dXJuIElQQzo6U3RyaW5nUmVmZXJlbmNlKCJU
ZXN0TXVsdGlwbGVBdHRyaWJ1dGVzIik7IH0KICAgICBzdGF0aWMgY29uc3QgYm9vbCBpc1N5bmMg
PSB0cnVlOwogCi0gICAgdXNpbmcgRGVsYXllZFJlcGx5ID0gQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZCgpPjsKLSAgICBzdGF0aWMgdm9pZCBzZW5kKHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+
JiYsIElQQzo6Q29ubmVjdGlvbiYpOworICAgIHVzaW5nIERlbGF5ZWRSZXBseSA9IFRlc3RNdWx0
aXBsZUF0dHJpYnV0ZXNEZWxheWVkUmVwbHk7ICAgIHN0YXRpYyB2b2lkIHNlbmQoc3RkOjp1bmlx
dWVfcHRyPElQQzo6RW5jb2Rlcj4mJiwgSVBDOjpDb25uZWN0aW9uJik7CiAgICAgdXNpbmcgUmVw
bHkgPSBzdGQ6OnR1cGxlPD47CiAgICAgdXNpbmcgUmVwbHlBcmd1bWVudHMgPSBzdGQ6OnR1cGxl
PD47CiAgICAgY29uc3QgQXJndW1lbnRzJiBhcmd1bWVudHMoKSBjb25zdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9NZXNzYWdlc1JlcGxpZXMtZXhwZWN0ZWQuaCBi
L1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvTWVzc2FnZXNSZXBsaWVzLWV4cGVjdGVkLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZjcwY2VhZmQ5ZmE1ZWNkY2NmYTFjMjFjMDk3YWU3NDY0OWM4ZTRmYwotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvTWVzc2FnZXNSZXBs
aWVzLWV4cGVjdGVkLmgKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MC0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycgQU5ECisgKiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyAqIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyAqIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SCisgKiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorICogQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwKKyAqIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFn
bWEgb25jZQorCisjaWYgKEVOQUJMRShXRUJLSVQyKSAmJiAoTkVTVEVEX01BU1RFUl9DT05ESVRJ
T04gfHwgTUFTVEVSX09SICYmIE1BU1RFUl9BTkQpKQorCisjaW5jbHVkZSAiQ29ubmVjdGlvbi5o
IgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisKKworbmFtZXNwYWNlIE1lc3NhZ2VzIHsKK25h
bWVzcGFjZSBXZWJQYWdlIHsKKwordXNpbmcgR2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25EZWxh
eWVkUmVwbHkgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IElQQzo6Q29ubmVjdGlvbjo6
SGFuZGxlJiBjb25uZWN0aW9uSGFuZGxlKT47CisKK3VzaW5nIFRlc3RNdWx0aXBsZUF0dHJpYnV0
ZXNEZWxheWVkUmVwbHkgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+OworCit9IC8vIG5hbWVz
cGFjZSBXZWJQYWdlCit9IC8vIG5hbWVzcGFjZSBNZXNzYWdlcworCisjZW5kaWYgLy8gKEVOQUJM
RShXRUJLSVQyKSAmJiAoTkVTVEVEX01BU1RFUl9DT05ESVRJT04gfHwgTUFTVEVSX09SICYmIE1B
U1RFUl9BTkQpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9NZXNz
YWdlc1JlcGxpZXNTdXBlcmNsYXNzUmVwbGllcy1leHBlY3RlZC5oIGIvU291cmNlL1dlYktpdC9T
Y3JpcHRzL3dlYmtpdC9NZXNzYWdlc1JlcGxpZXNTdXBlcmNsYXNzUmVwbGllcy1leHBlY3RlZC5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjNmYTYzZjNkNjQ4ZjVhMDE3MjdlMTVjMTRjYWYxMTI0NjAzMjYyMDgKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L01lc3NhZ2VzUmVw
bGllc1N1cGVyY2xhc3NSZXBsaWVzLWV4cGVjdGVkLmgKQEAgLTAsMCArMSw1MiBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMC0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisgKiBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyAqIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwKKyAqIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisgKiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorICog
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwKKyAqIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiVGVzdENsYXNzTmFtZS5oIgor
I2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CisKKwor
bmFtZXNwYWNlIE1lc3NhZ2VzIHsKK25hbWVzcGFjZSBXZWJQYWdlIHsKKworI2lmIEVOQUJMRShU
RVNUX0ZFQVRVUkUpCit1c2luZyBUZXN0QXN5bmNNZXNzYWdlQXN5bmNSZXBseSA9IENvbXBsZXRp
b25IYW5kbGVyPHZvaWQodWludDY0X3QgcmVzdWx0KT47CisjZW5kaWYKKworI2lmIEVOQUJMRShU
RVNUX0ZFQVRVUkUpCit1c2luZyBUZXN0QXN5bmNNZXNzYWdlV2l0aE5vQXJndW1lbnRzQXN5bmNS
ZXBseSA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT47CisjZW5kaWYKKworI2lmIEVOQUJMRShU
RVNUX0ZFQVRVUkUpCit1c2luZyBUZXN0QXN5bmNNZXNzYWdlV2l0aE11bHRpcGxlQXJndW1lbnRz
QXN5bmNSZXBseSA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCBmbGFnLCB1aW50NjRfdCB2
YWx1ZSk+OworI2VuZGlmCisKK3VzaW5nIFRlc3RTeW5jTWVzc2FnZURlbGF5ZWRSZXBseSA9IENv
bXBsZXRpb25IYW5kbGVyPHZvaWQodWludDhfdCByZXBseSk+OworCit1c2luZyBUZXN0U3luY2hy
b25vdXNNZXNzYWdlRGVsYXllZFJlcGx5ID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBP
cHRpb25hbDxXZWJLaXQ6OlRlc3RDbGFzc05hbWU+JiBvcHRpb25hbFJlcGx5KT47CisKK30gLy8g
bmFtZXNwYWNlIFdlYlBhZ2UKK30gLy8gbmFtZXNwYWNlIE1lc3NhZ2VzCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L01lc3NhZ2VzU3VwZXJjbGFzcy1leHBlY3RlZC5o
IGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9NZXNzYWdlc1N1cGVyY2xhc3MtZXhwZWN0
ZWQuaAppbmRleCAwZjZmY2MyNjFhMjkxMDUyMzgzN2QwZTY0MDIzNTVhZGU4NTVhYmY3Li4yY2E1
YTY0ZjRhNmU1ZjgyNGRmZmVkOGZlOWIwZTU5NGY1NWJhMTk2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1NjcmlwdHMvd2Via2l0L01lc3NhZ2VzU3VwZXJjbGFzcy1leHBlY3RlZC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvTWVzc2FnZXNTdXBlcmNsYXNzLWV4cGVjdGVk
LmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEwLTIwMTggQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwLTIwMTkgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCkBAIC0yNCw2ICsyNCw3IEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAiV2ViUGFn
ZU1lc3NhZ2VzUmVwbGllcy5oIgogI2luY2x1ZGUgIkFyZ3VtZW50Q29kZXJzLmgiCiAjaW5jbHVk
ZSAiQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIlRlc3RDbGFzc05hbWUuaCIKQEAgLTc4LDggKzc5
LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lkIGNhbGxSZXBseShJUEM6OkRlY29kZXImLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKHVpbnQ2NF90JiYpPiYmKTsKICAgICBzdGF0aWMgdm9pZCBj
YW5jZWxSZXBseShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHVpbnQ2NF90JiYpPiYmKTsKICAgICBz
dGF0aWMgSVBDOjpTdHJpbmdSZWZlcmVuY2UgYXN5bmNNZXNzYWdlUmVwbHlOYW1lKCkgeyByZXR1
cm4geyAiVGVzdEFzeW5jTWVzc2FnZVJlcGx5IiB9OyB9Ci0gICAgdXNpbmcgQXN5bmNSZXBseSA9
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQodWludDY0X3QgcmVzdWx0KT47Ci0gICAgc3RhdGljIHZv
aWQgc2VuZChzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYmLCBJUEM6OkNvbm5lY3Rpb24m
LCB1aW50NjRfdCByZXN1bHQpOworICAgIHVzaW5nIEFzeW5jUmVwbHkgPSBUZXN0QXN5bmNNZXNz
YWdlQXN5bmNSZXBseTsgICAgc3RhdGljIHZvaWQgc2VuZChzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpF
bmNvZGVyPiYmLCBJUEM6OkNvbm5lY3Rpb24mLCB1aW50NjRfdCByZXN1bHQpOwogICAgIHVzaW5n
IFJlcGx5ID0gc3RkOjp0dXBsZTx1aW50NjRfdCY+OwogICAgIHVzaW5nIFJlcGx5QXJndW1lbnRz
ID0gc3RkOjp0dXBsZTx1aW50NjRfdD47CiAgICAgZXhwbGljaXQgVGVzdEFzeW5jTWVzc2FnZShX
ZWJLaXQ6OlRlc3RUd29TdGF0ZUVudW0gdHdvU3RhdGVFbnVtKQpAQCAtMTA5LDggKzEwOSw3IEBA
IHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBjYWxsUmVwbHkoSVBDOjpEZWNvZGVyJiwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICBzdGF0aWMgdm9pZCBjYW5jZWxSZXBseShDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHN0YXRpYyBJUEM6OlN0cmluZ1JlZmVyZW5j
ZSBhc3luY01lc3NhZ2VSZXBseU5hbWUoKSB7IHJldHVybiB7ICJUZXN0QXN5bmNNZXNzYWdlV2l0
aE5vQXJndW1lbnRzUmVwbHkiIH07IH0KLSAgICB1c2luZyBBc3luY1JlcGx5ID0gQ29tcGxldGlv
bkhhbmRsZXI8dm9pZCgpPjsKLSAgICBzdGF0aWMgdm9pZCBzZW5kKHN0ZDo6dW5pcXVlX3B0cjxJ
UEM6OkVuY29kZXI+JiYsIElQQzo6Q29ubmVjdGlvbiYpOworICAgIHVzaW5nIEFzeW5jUmVwbHkg
PSBUZXN0QXN5bmNNZXNzYWdlV2l0aE5vQXJndW1lbnRzQXN5bmNSZXBseTsgICAgc3RhdGljIHZv
aWQgc2VuZChzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYmLCBJUEM6OkNvbm5lY3Rpb24m
KTsKICAgICB1c2luZyBSZXBseSA9IHN0ZDo6dHVwbGU8PjsKICAgICB1c2luZyBSZXBseUFyZ3Vt
ZW50cyA9IHN0ZDo6dHVwbGU8PjsKICAgICBjb25zdCBBcmd1bWVudHMmIGFyZ3VtZW50cygpIGNv
bnN0CkBAIC0xMzUsOCArMTM0LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lkIGNhbGxSZXBs
eShJUEM6OkRlY29kZXImLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wmJiwgdWludDY0X3Qm
Jik+JiYpOwogICAgIHN0YXRpYyB2b2lkIGNhbmNlbFJlcGx5KENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoYm9vbCYmLCB1aW50NjRfdCYmKT4mJik7CiAgICAgc3RhdGljIElQQzo6U3RyaW5nUmVmZXJl
bmNlIGFzeW5jTWVzc2FnZVJlcGx5TmFtZSgpIHsgcmV0dXJuIHsgIlRlc3RBc3luY01lc3NhZ2VX
aXRoTXVsdGlwbGVBcmd1bWVudHNSZXBseSIgfTsgfQotICAgIHVzaW5nIEFzeW5jUmVwbHkgPSBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wgZmxhZywgdWludDY0X3QgdmFsdWUpPjsKLSAgICBz
dGF0aWMgdm9pZCBzZW5kKHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+JiYsIElQQzo6Q29u
bmVjdGlvbiYsIGJvb2wgZmxhZywgdWludDY0X3QgdmFsdWUpOworICAgIHVzaW5nIEFzeW5jUmVw
bHkgPSBUZXN0QXN5bmNNZXNzYWdlV2l0aE11bHRpcGxlQXJndW1lbnRzQXN5bmNSZXBseTsgICAg
c3RhdGljIHZvaWQgc2VuZChzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYmLCBJUEM6OkNv
bm5lY3Rpb24mLCBib29sIGZsYWcsIHVpbnQ2NF90IHZhbHVlKTsKICAgICB1c2luZyBSZXBseSA9
IHN0ZDo6dHVwbGU8Ym9vbCYsIHVpbnQ2NF90Jj47CiAgICAgdXNpbmcgUmVwbHlBcmd1bWVudHMg
PSBzdGQ6OnR1cGxlPGJvb2wsIHVpbnQ2NF90PjsKICAgICBjb25zdCBBcmd1bWVudHMmIGFyZ3Vt
ZW50cygpIGNvbnN0CkBAIC0xNTcsOCArMTU1LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBJUEM6
OlN0cmluZ1JlZmVyZW5jZSBuYW1lKCkgeyByZXR1cm4gSVBDOjpTdHJpbmdSZWZlcmVuY2UoIlRl
c3RTeW5jTWVzc2FnZSIpOyB9CiAgICAgc3RhdGljIGNvbnN0IGJvb2wgaXNTeW5jID0gdHJ1ZTsK
IAotICAgIHVzaW5nIERlbGF5ZWRSZXBseSA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQodWludDhf
dCByZXBseSk+OwotICAgIHN0YXRpYyB2b2lkIHNlbmQoc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5j
b2Rlcj4mJiwgSVBDOjpDb25uZWN0aW9uJiwgdWludDhfdCByZXBseSk7CisgICAgdXNpbmcgRGVs
YXllZFJlcGx5ID0gVGVzdFN5bmNNZXNzYWdlRGVsYXllZFJlcGx5OyAgICBzdGF0aWMgdm9pZCBz
ZW5kKHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+JiYsIElQQzo6Q29ubmVjdGlvbiYsIHVp
bnQ4X3QgcmVwbHkpOwogICAgIHVzaW5nIFJlcGx5ID0gc3RkOjp0dXBsZTx1aW50OF90Jj47CiAg
ICAgdXNpbmcgUmVwbHlBcmd1bWVudHMgPSBzdGQ6OnR1cGxlPHVpbnQ4X3Q+OwogICAgIGV4cGxp
Y2l0IFRlc3RTeW5jTWVzc2FnZSh1aW50MzJfdCBwYXJhbSkKQEAgLTE4Myw4ICsxODAsNyBAQCBw
dWJsaWM6CiAgICAgc3RhdGljIElQQzo6U3RyaW5nUmVmZXJlbmNlIG5hbWUoKSB7IHJldHVybiBJ
UEM6OlN0cmluZ1JlZmVyZW5jZSgiVGVzdFN5bmNocm9ub3VzTWVzc2FnZSIpOyB9CiAgICAgc3Rh
dGljIGNvbnN0IGJvb2wgaXNTeW5jID0gdHJ1ZTsKIAotICAgIHVzaW5nIERlbGF5ZWRSZXBseSA9
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgT3B0aW9uYWw8V2ViS2l0OjpUZXN0Q2xhc3NO
YW1lPiYgb3B0aW9uYWxSZXBseSk+OwotICAgIHN0YXRpYyB2b2lkIHNlbmQoc3RkOjp1bmlxdWVf
cHRyPElQQzo6RW5jb2Rlcj4mJiwgSVBDOjpDb25uZWN0aW9uJiwgY29uc3QgT3B0aW9uYWw8V2Vi
S2l0OjpUZXN0Q2xhc3NOYW1lPiYgb3B0aW9uYWxSZXBseSk7CisgICAgdXNpbmcgRGVsYXllZFJl
cGx5ID0gVGVzdFN5bmNocm9ub3VzTWVzc2FnZURlbGF5ZWRSZXBseTsgICAgc3RhdGljIHZvaWQg
c2VuZChzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYmLCBJUEM6OkNvbm5lY3Rpb24mLCBj
b25zdCBPcHRpb25hbDxXZWJLaXQ6OlRlc3RDbGFzc05hbWU+JiBvcHRpb25hbFJlcGx5KTsKICAg
ICB1c2luZyBSZXBseSA9IHN0ZDo6dHVwbGU8T3B0aW9uYWw8V2ViS2l0OjpUZXN0Q2xhc3NOYW1l
PiY+OwogICAgIHVzaW5nIFJlcGx5QXJndW1lbnRzID0gc3RkOjp0dXBsZTxPcHRpb25hbDxXZWJL
aXQ6OlRlc3RDbGFzc05hbWU+PjsKICAgICBleHBsaWNpdCBUZXN0U3luY2hyb25vdXNNZXNzYWdl
KGJvb2wgdmFsdWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21l
c3NhZ2VzLnB5IGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQppbmRl
eCAzNTYxMzRiYmM3MzAwMWI5YzFkNzk0NTMwMWI0MWEwYzQ0MzU3YmZmLi5lYTE4OWQ4OTExZWY3
MzRjNGVmOTI0NzllODlkOGZkZmU1MDg0MjZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1Nj
cmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CisrKyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJr
aXQvbWVzc2FnZXMucHkKQEAgLTMyLDcgKzMyLDcgQEAgU1lOQ0hST05PVVNfQVRUUklCVVRFID0g
J1N5bmNocm9ub3VzJwogQVNZTkNfQVRUUklCVVRFID0gJ0FzeW5jJwogCiBfbGljZW5zZV9oZWFk
ZXIgPSAiIiIvKgotICogQ29weXJpZ2h0IChDKSAyMDEwLTIwMTggQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwLTIwMTkgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xMTMs
OSArMTEzLDI5IEBAIGRlZiByZXBseV9hcmd1bWVudHNfdHlwZShtZXNzYWdlKToKICAgICByZXR1
cm4gJ3N0ZDo6dHVwbGU8JXM+JyAlICgnLCAnLmpvaW4ocGFyYW1ldGVyLnR5cGUgZm9yIHBhcmFt
ZXRlciBpbiBtZXNzYWdlLnJlcGx5X3BhcmFtZXRlcnMpKQogCiAKK2RlZiBtZXNzYWdlX3RvX3Jl
cGx5X2ZvcndhcmRfZGVjbGFyYXRpb24obWVzc2FnZSk6CisgICAgcmVzdWx0ID0gW10KKworICAg
IGlmIG1lc3NhZ2UucmVwbHlfcGFyYW1ldGVycyAhPSBOb25lIGFuZCAobWVzc2FnZS5oYXNfYXR0
cmlidXRlKFNZTkNIUk9OT1VTX0FUVFJJQlVURSkgb3IgbWVzc2FnZS5oYXNfYXR0cmlidXRlKEFT
WU5DX0FUVFJJQlVURSkpOgorICAgICAgICBzZW5kX3BhcmFtZXRlcnMgPSBbKGZ1bmN0aW9uX3Bh
cmFtZXRlcl90eXBlKHgudHlwZSwgeC5raW5kKSwgeC5uYW1lKSBmb3IgeCBpbiBtZXNzYWdlLnJl
cGx5X3BhcmFtZXRlcnNdCisgICAgICAgIGNvbXBsZXRpb25faGFuZGxlcl9wYXJhbWV0ZXJzID0g
JyVzJyAlICcsICcuam9pbihbJyAnLmpvaW4oeCkgZm9yIHggaW4gc2VuZF9wYXJhbWV0ZXJzXSkK
KworICAgICAgICBpZiBtZXNzYWdlLmhhc19hdHRyaWJ1dGUoQVNZTkNfQVRUUklCVVRFKToKKyAg
ICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJ3VzaW5nICVzQXN5bmNSZXBseScgJSBtZXNzYWdlLm5h
bWUpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCd1c2luZyAlc0Rl
bGF5ZWRSZXBseScgJSBtZXNzYWdlLm5hbWUpCisgICAgICAgIHJlc3VsdC5hcHBlbmQoJyA9IENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoJXMpPjtcbicgJSBjb21wbGV0aW9uX2hhbmRsZXJfcGFyYW1l
dGVycykKKworICAgIGlmIG5vdCByZXN1bHQ6CisgICAgICAgIHJldHVybiBOb25lCisKKyAgICBy
ZXR1cm4gc3Vycm91bmRfaW5fY29uZGl0aW9uKCcnLmpvaW4ocmVzdWx0KSwgbWVzc2FnZS5jb25k
aXRpb24pCisKKwogZGVmIG1lc3NhZ2VfdG9fc3RydWN0X2RlY2xhcmF0aW9uKG1lc3NhZ2UpOgog
ICAgIHJlc3VsdCA9IFtdCiAgICAgZnVuY3Rpb25fcGFyYW1ldGVycyA9IFsoZnVuY3Rpb25fcGFy
YW1ldGVyX3R5cGUoeC50eXBlLCB4LmtpbmQpLCB4Lm5hbWUpIGZvciB4IGluIG1lc3NhZ2UucGFy
YW1ldGVyc10KKwogICAgIHJlc3VsdC5hcHBlbmQoJ2NsYXNzICVzIHtcbicgJSBtZXNzYWdlLm5h
bWUpCiAgICAgcmVzdWx0LmFwcGVuZCgncHVibGljOlxuJykKICAgICByZXN1bHQuYXBwZW5kKCcg
ICAgdHlwZWRlZiAlcyBBcmd1bWVudHM7XG4nICUgYXJndW1lbnRzX3R5cGUobWVzc2FnZSkpCkBA
IC0xMzIsMTEgKzE1MiwxMCBAQCBkZWYgbWVzc2FnZV90b19zdHJ1Y3RfZGVjbGFyYXRpb24obWVz
c2FnZSk6CiAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcgICAgc3RhdGljIHZvaWQgY2FsbFJl
cGx5KElQQzo6RGVjb2RlciYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoJXMpPiYmKTtcbicgJSBt
b3ZlX3BhcmFtZXRlcnMpCiAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcgICAgc3RhdGljIHZv
aWQgY2FuY2VsUmVwbHkoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCglcyk+JiYpO1xuJyAlIG1vdmVf
cGFyYW1ldGVycykKICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyAgICBzdGF0aWMgSVBDOjpT
dHJpbmdSZWZlcmVuY2UgYXN5bmNNZXNzYWdlUmVwbHlOYW1lKCkgeyByZXR1cm4geyAiJXNSZXBs
eSIgfTsgfVxuJyAlIG1lc3NhZ2UubmFtZSkKLSAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyAg
ICB1c2luZyBBc3luY1JlcGx5JykKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyAgICB1c2lu
ZyBBc3luY1JlcGx5ID0gJXNBc3luY1JlcGx5OycgJSBtZXNzYWdlLm5hbWUpCiAgICAgICAgIGVs
aWYgbWVzc2FnZS5oYXNfYXR0cmlidXRlKFNZTkNIUk9OT1VTX0FUVFJJQlVURSk6Ci0gICAgICAg
ICAgICByZXN1bHQuYXBwZW5kKCcgICAgdXNpbmcgRGVsYXllZFJlcGx5JykKKyAgICAgICAgICAg
IHJlc3VsdC5hcHBlbmQoJyAgICB1c2luZyBEZWxheWVkUmVwbHkgPSAlc0RlbGF5ZWRSZXBseTsn
ICUgbWVzc2FnZS5uYW1lKQogICAgICAgICBpZiBtZXNzYWdlLmhhc19hdHRyaWJ1dGUoU1lOQ0hS
T05PVVNfQVRUUklCVVRFKSBvciBtZXNzYWdlLmhhc19hdHRyaWJ1dGUoQVNZTkNfQVRUUklCVVRF
KToKLSAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
JXMpPjtcbicgJSBjb21wbGV0aW9uX2hhbmRsZXJfcGFyYW1ldGVycykKICAgICAgICAgICAgIHJl
c3VsdC5hcHBlbmQoJyAgICBzdGF0aWMgdm9pZCBzZW5kKHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVu
Y29kZXI+JiYsIElQQzo6Q29ubmVjdGlvbiYnKQogICAgICAgICAgICAgaWYgbGVuKHNlbmRfcGFy
YW1ldGVycyk6CiAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnLCAlcycgJSBjb21wbGV0
aW9uX2hhbmRsZXJfcGFyYW1ldGVycykKQEAgLTE4MCwyNyArMTk5LDggQEAgZGVmIGZvcndhcmRf
ZGVjbGFyYXRpb25zX2Zvcl9uYW1lc3BhY2UobmFtZXNwYWNlLCBraW5kX2FuZF90eXBlcyk6CiAg
ICAgcmV0dXJuICcnLmpvaW4ocmVzdWx0KQogCiAKLWRlZiBmb3J3YXJkX2RlY2xhcmF0aW9uc19h
bmRfaGVhZGVycyhyZWNlaXZlcik6Ci0gICAgdHlwZXNfYnlfbmFtZXNwYWNlID0gY29sbGVjdGlv
bnMuZGVmYXVsdGRpY3Qoc2V0KQotCi0gICAgaGVhZGVycyA9IHNldChbCi0gICAgICAgICciQXJn
dW1lbnRDb2RlcnMuaCInLAotICAgICAgICAnPHd0Zi9Gb3J3YXJkLmg+JywKLSAgICBdKQotCi0g
ICAgaGVhZGVyX2NvbmRpdGlvbnMgPSB7Ci0gICAgICAgICciTGF5ZXJIb3N0aW5nQ29udGV4dC5o
Iic6IFsiUExBVEZPUk0oQ09DT0EpIiwgXSwKLSAgICB9Ci0KLSAgICBub25fdGVtcGxhdGVfd3Rm
X3R5cGVzID0gZnJvemVuc2V0KFsKLSAgICAgICAgJ01hY2hTZW5kUmlnaHQnLAotICAgICAgICAn
U3RyaW5nJywKLSAgICBdKQotCi0gICAgaGVhZGVycy5hZGQoJyJDb25uZWN0aW9uLmgiJykKLSAg
ICBoZWFkZXJzLmFkZCgnPHd0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5oPicpCi0KLSAgICBub19m
b3J3YXJkX2RlY2xhcmF0aW9uX3R5cGVzID0gZnJvemVuc2V0KFsKK2RlZiB0eXBlc190aGF0X2Nh
bm5vdF9iZV9mb3J3YXJkX2RlY2xhcmVkKCk6CisgICAgcmV0dXJuIGZyb3plbnNldChbCiAgICAg
ICAgICdNYWNoU2VuZFJpZ2h0JywKICAgICAgICAgJ1N0cmluZycsCiAgICAgICAgICdXZWJDb3Jl
OjpEb2N1bWVudElkZW50aWZpZXInLApAQCAtMjI2LDYgKzIyNiwzMiBAQCBkZWYgZm9yd2FyZF9k
ZWNsYXJhdGlvbnNfYW5kX2hlYWRlcnMocmVjZWl2ZXIpOgogICAgICAgICAnV2ViS2l0OjpXZWJQ
YWdlUHJveHlJZGVudGlmaWVyJywKICAgICBdKQogCisKK2RlZiBjb25kaXRpb25zX2Zvcl9oZWFk
ZXIoaGVhZGVyKToKKyAgICBjb25kaXRpb25zID0geworICAgICAgICAnIkxheWVySG9zdGluZ0Nv
bnRleHQuaCInOiBbIlBMQVRGT1JNKENPQ09BKSIsIF0sCisgICAgfQorICAgIGlmIG5vdCBoZWFk
ZXIgaW4gY29uZGl0aW9uczoKKyAgICAgICAgcmV0dXJuIE5vbmUKKyAgICByZXR1cm4gY29uZGl0
aW9uc1toZWFkZXJdCisKKworZGVmIGZvcndhcmRfZGVjbGFyYXRpb25zX2FuZF9oZWFkZXJzKHJl
Y2VpdmVyKToKKyAgICB0eXBlc19ieV9uYW1lc3BhY2UgPSBjb2xsZWN0aW9ucy5kZWZhdWx0ZGlj
dChzZXQpCisKKyAgICBoZWFkZXJzID0gc2V0KFsKKyAgICAgICAgJyJBcmd1bWVudENvZGVycy5o
IicsCisgICAgICAgICc8d3RmL0ZvcndhcmQuaD4nLAorICAgICAgICAnIkNvbm5lY3Rpb24uaCIn
LAorICAgICAgICAnPHd0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5oPicsCisgICAgXSkKKworICAg
IG5vbl90ZW1wbGF0ZV93dGZfdHlwZXMgPSBmcm96ZW5zZXQoWworICAgICAgICAnTWFjaFNlbmRS
aWdodCcsCisgICAgICAgICdTdHJpbmcnLAorICAgIF0pCisKKyAgICBub19mb3J3YXJkX2RlY2xh
cmF0aW9uX3R5cGVzID0gdHlwZXNfdGhhdF9jYW5ub3RfYmVfZm9yd2FyZF9kZWNsYXJlZCgpCiAg
ICAgZm9yIHBhcmFtZXRlciBpbiByZWNlaXZlci5pdGVycGFyYW1ldGVycygpOgogICAgICAgICBr
aW5kID0gcGFyYW1ldGVyLmtpbmQKICAgICAgICAgdHlwZSA9IHBhcmFtZXRlci50eXBlCkBAIC0y
NTQsOCArMjgwLDY2IEBAIGRlZiBmb3J3YXJkX2RlY2xhcmF0aW9uc19hbmRfaGVhZGVycyhyZWNl
aXZlcik6CiAKICAgICBoZWFkZXJfaW5jbHVkZXMgPSBbXQogICAgIGZvciBoZWFkZXIgaW4gc29y
dGVkKGhlYWRlcnMpOgotICAgICAgICBpZiBoZWFkZXIgaW4gaGVhZGVyX2NvbmRpdGlvbnMgYW5k
IG5vdCBOb25lIGluIGhlYWRlcl9jb25kaXRpb25zW2hlYWRlcl06Ci0gICAgICAgICAgICBoZWFk
ZXJfaW5jbHVkZSA9ICcjaWYgJXNcbicgJSAnIHx8ICcuam9pbihzZXQoaGVhZGVyX2NvbmRpdGlv
bnNbaGVhZGVyXSkpCisgICAgICAgIGNvbmRpdGlvbnMgPSBjb25kaXRpb25zX2Zvcl9oZWFkZXIo
aGVhZGVyKQorICAgICAgICBpZiBjb25kaXRpb25zIGFuZCBub3QgTm9uZSBpbiBjb25kaXRpb25z
OgorICAgICAgICAgICAgaGVhZGVyX2luY2x1ZGUgPSAnI2lmICVzXG4nICUgJyB8fCAnLmpvaW4o
c2V0KGNvbmRpdGlvbnMpKQorICAgICAgICAgICAgaGVhZGVyX2luY2x1ZGUgKz0gJyNpbmNsdWRl
ICVzXG4nICUgaGVhZGVyCisgICAgICAgICAgICBoZWFkZXJfaW5jbHVkZSArPSAnI2VuZGlmXG4n
CisgICAgICAgICAgICBoZWFkZXJfaW5jbHVkZXMuYXBwZW5kKGhlYWRlcl9pbmNsdWRlKQorICAg
ICAgICBlbHNlOgorICAgICAgICAgICAgaGVhZGVyX2luY2x1ZGVzLmFwcGVuZCgnI2luY2x1ZGUg
JXNcbicgJSBoZWFkZXIpCisKKyAgICByZXR1cm4gKGZvcndhcmRfZGVjbGFyYXRpb25zLCBoZWFk
ZXJfaW5jbHVkZXMpCisKKworZGVmIGZvcndhcmRfZGVjbGFyYXRpb25zX2FuZF9oZWFkZXJzX2Zv
cl9yZXBsaWVzKHJlY2VpdmVyKToKKyAgICB0eXBlc19ieV9uYW1lc3BhY2UgPSBjb2xsZWN0aW9u
cy5kZWZhdWx0ZGljdChzZXQpCisKKyAgICBoZWFkZXJzID0gc2V0KFsKKyAgICAgICAgJzx3dGYv
Rm9yd2FyZC5oPicsCisgICAgXSkKKworICAgIG5vbl90ZW1wbGF0ZV93dGZfdHlwZXMgPSBmcm96
ZW5zZXQoWworICAgICAgICAnTWFjaFNlbmRSaWdodCcsCisgICAgICAgICdTdHJpbmcnLAorICAg
IF0pCisKKyAgICBub19mb3J3YXJkX2RlY2xhcmF0aW9uX3R5cGVzID0gdHlwZXNfdGhhdF9jYW5u
b3RfYmVfZm9yd2FyZF9kZWNsYXJlZCgpCisgICAgZm9yIG1lc3NhZ2UgaW4gcmVjZWl2ZXIubWVz
c2FnZXM6CisgICAgICAgIGlmIG1lc3NhZ2UucmVwbHlfcGFyYW1ldGVycyA9PSBOb25lIG9yIG5v
dCAobWVzc2FnZS5oYXNfYXR0cmlidXRlKFNZTkNIUk9OT1VTX0FUVFJJQlVURSkgb3IgbWVzc2Fn
ZS5oYXNfYXR0cmlidXRlKEFTWU5DX0FUVFJJQlVURSkpOgorICAgICAgICAgICAgY29udGludWUK
KworICAgICAgICBmb3IgcGFyYW1ldGVyIGluIG1lc3NhZ2UucmVwbHlfcGFyYW1ldGVyczoKKyAg
ICAgICAgICAgIGtpbmQgPSBwYXJhbWV0ZXIua2luZAorICAgICAgICAgICAgdHlwZSA9IHBhcmFt
ZXRlci50eXBlCisKKyAgICAgICAgICAgIGlmIHR5cGUuZmluZCgnPCcpICE9IC0xIG9yIHR5cGUg
aW4gbm9fZm9yd2FyZF9kZWNsYXJhdGlvbl90eXBlczoKKyAgICAgICAgICAgICAgICAjIERvbid0
IGZvcndhcmQgZGVjbGFyZSBjbGFzcyB0ZW1wbGF0ZXMuCisgICAgICAgICAgICAgICAgaGVhZGVy
cy51cGRhdGUoaGVhZGVyc19mb3JfdHlwZSh0eXBlKSkKKyAgICAgICAgICAgICAgICBjb250aW51
ZQorCisgICAgICAgICAgICBzcGxpdCA9IHR5cGUuc3BsaXQoJzo6JykKKworICAgICAgICAgICAg
IyBIYW5kbGUgV1RGIHR5cGVzIGV2ZW4gaWYgdGhlIFdURjo6IHByZWZpeCBpcyBub3QgZ2l2ZW4K
KyAgICAgICAgICAgIGlmIHNwbGl0WzBdIGluIG5vbl90ZW1wbGF0ZV93dGZfdHlwZXM6CisgICAg
ICAgICAgICAgICAgc3BsaXQuaW5zZXJ0KDAsICdXVEYnKQorCisgICAgICAgICAgICBpZiBsZW4o
c3BsaXQpID09IDI6CisgICAgICAgICAgICAgICAgbmFtZXNwYWNlID0gc3BsaXRbMF0KKyAgICAg
ICAgICAgICAgICBpbm5lcl90eXBlID0gc3BsaXRbMV0KKyAgICAgICAgICAgICAgICB0eXBlc19i
eV9uYW1lc3BhY2VbbmFtZXNwYWNlXS5hZGQoKGtpbmQsIGlubmVyX3R5cGUpKQorICAgICAgICAg
ICAgZWxpZiBsZW4oc3BsaXQpID4gMjoKKyAgICAgICAgICAgICAgICAjIFdlIHByb2JhYmx5IGhh
dmUgYSBuZXN0ZWQgc3RydWN0LCB3aGljaCBtZWFucyB3ZSBjYW4ndCBmb3J3YXJkIGRlY2xhcmUg
aXQuCisgICAgICAgICAgICAgICAgIyBJbmNsdWRlIGl0cyBoZWFkZXIgaW5zdGVhZC4KKyAgICAg
ICAgICAgICAgICBoZWFkZXJzLnVwZGF0ZShoZWFkZXJzX2Zvcl90eXBlKHR5cGUpKQorCisgICAg
Zm9yd2FyZF9kZWNsYXJhdGlvbnMgPSAnXG4nLmpvaW4oW2ZvcndhcmRfZGVjbGFyYXRpb25zX2Zv
cl9uYW1lc3BhY2UobmFtZXNwYWNlLCB0eXBlcykgZm9yIChuYW1lc3BhY2UsIHR5cGVzKSBpbiBz
b3J0ZWQodHlwZXNfYnlfbmFtZXNwYWNlLml0ZW1zKCkpXSkKKworICAgIGhlYWRlcl9pbmNsdWRl
cyA9IFtdCisgICAgZm9yIGhlYWRlciBpbiBzb3J0ZWQoaGVhZGVycyk6CisgICAgICAgIGNvbmRp
dGlvbnMgPSBjb25kaXRpb25zX2Zvcl9oZWFkZXIoaGVhZGVyKQorICAgICAgICBpZiBjb25kaXRp
b25zIGFuZCBub3QgTm9uZSBpbiBjb25kaXRpb25zOgorICAgICAgICAgICAgaGVhZGVyX2luY2x1
ZGUgPSAnI2lmICVzXG4nICUgJyB8fCAnLmpvaW4oc2V0KGNvbmRpdGlvbnMpKQogICAgICAgICAg
ICAgaGVhZGVyX2luY2x1ZGUgKz0gJyNpbmNsdWRlICVzXG4nICUgaGVhZGVyCiAgICAgICAgICAg
ICBoZWFkZXJfaW5jbHVkZSArPSAnI2VuZGlmXG4nCiAgICAgICAgICAgICBoZWFkZXJfaW5jbHVk
ZXMuYXBwZW5kKGhlYWRlcl9pbmNsdWRlKQpAQCAtMjY1LDkgKzM0OSwzOCBAQCBkZWYgZm9yd2Fy
ZF9kZWNsYXJhdGlvbnNfYW5kX2hlYWRlcnMocmVjZWl2ZXIpOgogICAgIHJldHVybiAoZm9yd2Fy
ZF9kZWNsYXJhdGlvbnMsIGhlYWRlcl9pbmNsdWRlcykKIAogCi1kZWYgZ2VuZXJhdGVfbWVzc2Fn
ZXNfaGVhZGVyKGZpbGUpOgotICAgIHJlY2VpdmVyID0gcGFyc2VyLnBhcnNlKGZpbGUpCitkZWYg
Z2VuZXJhdGVfbWVzc2FnZXNfcmVwbHlfaGVhZGVyKHJlY2VpdmVyKToKKyAgICByZXN1bHQgPSBb
XQogCisgICAgcmVzdWx0LmFwcGVuZChfbGljZW5zZV9oZWFkZXIpCisKKyAgICByZXN1bHQuYXBw
ZW5kKCcjcHJhZ21hIG9uY2VcbicpCisgICAgcmVzdWx0LmFwcGVuZCgnXG4nKQorCisgICAgaWYg
cmVjZWl2ZXIuY29uZGl0aW9uOgorICAgICAgICByZXN1bHQuYXBwZW5kKCcjaWYgJXNcblxuJyAl
IHJlY2VpdmVyLmNvbmRpdGlvbikKKworICAgIGZvcndhcmRfZGVjbGFyYXRpb25zLCBoZWFkZXJz
ID0gZm9yd2FyZF9kZWNsYXJhdGlvbnNfYW5kX2hlYWRlcnNfZm9yX3JlcGxpZXMocmVjZWl2ZXIp
CisKKyAgICByZXN1bHQgKz0gaGVhZGVycworICAgIHJlc3VsdC5hcHBlbmQoJ1xuJykKKworICAg
IHJlc3VsdC5hcHBlbmQoZm9yd2FyZF9kZWNsYXJhdGlvbnMpCisgICAgcmVzdWx0LmFwcGVuZCgn
XG4nKQorCisgICAgcmVzdWx0LmFwcGVuZCgnbmFtZXNwYWNlIE1lc3NhZ2VzIHtcbm5hbWVzcGFj
ZSAlcyB7XG4nICUgcmVjZWl2ZXIubmFtZSkKKyAgICByZXN1bHQuYXBwZW5kKCdcbicpCisgICAg
cmVzdWx0LmFwcGVuZCgnXG4nLmpvaW4oZmlsdGVyKE5vbmUsIFttZXNzYWdlX3RvX3JlcGx5X2Zv
cndhcmRfZGVjbGFyYXRpb24oeCkgZm9yIHggaW4gcmVjZWl2ZXIubWVzc2FnZXNdKSkpCisgICAg
cmVzdWx0LmFwcGVuZCgnXG4nKQorICAgIHJlc3VsdC5hcHBlbmQoJ30gLy8gbmFtZXNwYWNlICVz
XG59IC8vIG5hbWVzcGFjZSBNZXNzYWdlc1xuJyAlIHJlY2VpdmVyLm5hbWUpCisKKyAgICBpZiBy
ZWNlaXZlci5jb25kaXRpb246CisgICAgICAgIHJlc3VsdC5hcHBlbmQoJ1xuI2VuZGlmIC8vICVz
XG4nICUgcmVjZWl2ZXIuY29uZGl0aW9uKQorCisgICAgcmV0dXJuICcnLmpvaW4ocmVzdWx0KQor
CisKK2RlZiBnZW5lcmF0ZV9tZXNzYWdlc19oZWFkZXIocmVjZWl2ZXIpOgogICAgIHJlc3VsdCA9
IFtdCiAKICAgICByZXN1bHQuYXBwZW5kKF9saWNlbnNlX2hlYWRlcikKQEAgLTI3NSw2ICszODgs
OSBAQCBkZWYgZ2VuZXJhdGVfbWVzc2FnZXNfaGVhZGVyKGZpbGUpOgogICAgIHJlc3VsdC5hcHBl
bmQoJyNwcmFnbWEgb25jZVxuJykKICAgICByZXN1bHQuYXBwZW5kKCdcbicpCiAKKyAgICByZXN1
bHQuYXBwZW5kKCcjaW5jbHVkZSAiJXNNZXNzYWdlc1JlcGxpZXMuaCInICUgcmVjZWl2ZXIubmFt
ZSkKKyAgICByZXN1bHQuYXBwZW5kKCdcbicpCisKICAgICBpZiByZWNlaXZlci5jb25kaXRpb246
CiAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyNpZiAlc1xuXG4nICUgcmVjZWl2ZXIuY29uZGl0aW9u
KQogCkBAIC01MTUsOCArNjMxLDcgQEAgZGVmIGhlYWRlcnNfZm9yX3R5cGUodHlwZSk6CiAgICAg
cmV0dXJuIGhlYWRlcnMKIAogCi1kZWYgZ2VuZXJhdGVfbWVzc2FnZV9oYW5kbGVyKGZpbGUpOgot
ICAgIHJlY2VpdmVyID0gcGFyc2VyLnBhcnNlKGZpbGUpCitkZWYgZ2VuZXJhdGVfbWVzc2FnZV9o
YW5kbGVyKHJlY2VpdmVyKToKICAgICBoZWFkZXJfY29uZGl0aW9ucyA9IHsKICAgICAgICAgJyIl
cyInICUgbWVzc2FnZXNfaGVhZGVyX2ZpbGVuYW1lKHJlY2VpdmVyKTogW05vbmVdLAogICAgICAg
ICAnIkhhbmRsZU1lc3NhZ2UuaCInOiBbTm9uZV0sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3Bw
CmluZGV4IDkxY2Y5NDgwYzc1MThjZDliYjE3ZTlmY2E0ZTkxNmQwYjA3M2IwOGIuLmU1MTc3ZDAy
NDdiZjNmNzEwOTkzZThjNDgxNDU0NDhkNDIyZjAzODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJv
eHkuY3BwCkBAIC0zMCw2ICszMCw3IEBACiAKICNpbmNsdWRlICJTaGFyZWRSaW5nQnVmZmVyU3Rv
cmFnZS5oIgogI2luY2x1ZGUgIlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyTWVzc2FnZXMuaCIKKyNp
bmNsdWRlICJVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5TWVzc2FnZXMuaCIKICNpbmNsdWRl
ICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHkuaCIK
ICNpbmNsdWRlIDxXZWJDb3JlL0NBUmluZ0J1ZmZlci5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5o
CmluZGV4IDliZGRiOTkwOWRmN2U4ZmVmMWU1NDgwNmNiZTZiYzVjNDBjZmM1ODEuLjQ0NDYwZDRk
OTQwMGI2ZDExNjEzN2Y1MmZkNjA1NTdiODQ5ODFkMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5
LmgKQEAgLTMwLDcgKzMwLDYgQEAKICNpbmNsdWRlICJDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAi
TWVzc2FnZVJlY2VpdmVyLmgiCiAjaW5jbHVkZSAiVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaCIK
LSNpbmNsdWRlICJVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5TWVzc2FnZXMuaCIKICNpbmNs
dWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2UuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRQ
cm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkUHJveHku
aAppbmRleCA2M2IwZjg1ODFjYTJlOWJhYTFhNjU0NmE4MTgyMjZiMTZiMjA3NTM4Li5jZDBiMDBl
NTczMTE0ZTc3OTM2Y2I3OGQ3MTg1YzU2MDk3Y2VlODNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZFByb3h5LmgKQEAgLTI4LDcgKzI4LDYgQEAK
ICNpbmNsdWRlICJBUElPYmplY3QuaCIKICNpbmNsdWRlICJDb25uZWN0aW9uLmgiCiAjaW5jbHVk
ZSAiRG93bmxvYWRJRC5oIgotI2luY2x1ZGUgIkRvd25sb2FkUHJveHlNZXNzYWdlcy5oIgogI2lu
Y2x1ZGUgIlNhbmRib3hFeHRlbnNpb24uaCIKICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVx
dWVzdC5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAppbmRleCA2YzE5
MDUyOWRhZWUxMGIwNDBlZDdiMTA0Y2RkMzM2NTYyZWIzNWE3Li4xMjUzNDdiZjM2ZGNkNWI3MzI1
YWU4MDMzZGJhZjkzYmJkM2E2NTI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKQEAgLTM5LDYgKzM5LDcgQEAK
ICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25JbmZvLmgiCiAjaW5jbHVkZSAiTmV0
d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCIKICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vz
c01lc3NhZ2VzLmgiCisjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NQcm94eU1lc3NhZ2VzLmgiCiAj
aW5jbHVkZSAiU2FuZGJveEV4dGVuc2lvbi5oIgogI2lmIEhBVkUoU0VDX0tFWV9QUk9YWSkKICNp
bmNsdWRlICJTZWNLZXlQcm94eVN0b3JlLmgiCkBAIC01MSw2ICs1Miw3IEBACiAjaW5jbHVkZSAi
V2ViUHJvY2Vzc01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Bvb2wuaCIKICNpbmNs
dWRlICJXZWJQcm9jZXNzUHJveHkuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHlNZXNzYWdl
cy5oIgogI2luY2x1ZGUgIldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oIgogI2luY2x1
ZGUgIldlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5LmgiCiAjaW5jbHVkZSAiV2Vic2l0ZURh
dGEuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29y
a1Byb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3Jr
UHJvY2Vzc1Byb3h5LmgKaW5kZXggZGE0YmVkMjY4MjgxOGI0M2RhNDM4ODgxYjU2OGVjYzBiYWQ1
NjY0ZC4uMzVlMDQzZTU1MmNhMGQzOTUwODc3YTg1Yzg4ZWE1MGVlZmJiZDI5ZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5
LmgKQEAgLTI2LDIxICsyNiwyMyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJBdXhpbGlh
cnlQcm9jZXNzUHJveHkuaCIKLSNpZiBFTkFCTEUoTEVHQUNZX0NVU1RPTV9QUk9UT0NPTF9NQU5B
R0VSKQotI2luY2x1ZGUgIkxlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdlclByb3h5LmgiCi0jZW5k
aWYKLSNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJO
ZXR3b3JrUHJvY2Vzc1Byb3h5TWVzc2FnZXNSZXBsaWVzLmgiCiAjaW5jbHVkZSAiUHJvY2Vzc0xh
dW5jaGVyLmgiCiAjaW5jbHVkZSAiUHJvY2Vzc1Rocm90dGxlci5oIgogI2luY2x1ZGUgIlByb2Nl
c3NUaHJvdHRsZXJDbGllbnQuaCIKICNpbmNsdWRlICJVc2VyQ29udGVudENvbnRyb2xsZXJJZGVu
dGlmaWVyLmgiCi0jaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRl
ICJXZWJQcm9jZXNzUHJveHlNZXNzYWdlc1JlcGxpZXMuaCIKICNpbmNsdWRlICJXZWJzaXRlRGF0
YVN0b3JlLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9Dcm9zc1NpdGVOYXZpZ2F0aW9uRGF0YVRyYW5z
ZmVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL1JlZ2lzdHJhYmxlRG9tYWluLmg+CiAjaW5jbHVkZSA8bWVtb3J5PgogI2luY2x1ZGUg
PHd0Zi9EZXF1ZS5oPgogCisjaWYgRU5BQkxFKExFR0FDWV9DVVNUT01fUFJPVE9DT0xfTUFOQUdF
UikKKyNpbmNsdWRlICJMZWdhY3lDdXN0b21Qcm90b2NvbE1hbmFnZXJQcm94eS5oIgorI2VuZGlm
CisKIG5hbWVzcGFjZSBQQUwgewogY2xhc3MgU2Vzc2lvbklEOwogfQpAQCAtODcsNyArODksNyBA
QCBwdWJsaWM6CiAgICAgZXhwbGljaXQgTmV0d29ya1Byb2Nlc3NQcm94eShXZWJQcm9jZXNzUG9v
bCYpOwogICAgIH5OZXR3b3JrUHJvY2Vzc1Byb3h5KCk7CiAKLSAgICB2b2lkIGdldE5ldHdvcmtQ
cm9jZXNzQ29ubmVjdGlvbihXZWJQcm9jZXNzUHJveHkmLCBNZXNzYWdlczo6V2ViUHJvY2Vzc1By
b3h5OjpHZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBseSYmKTsKKyAgICB2
b2lkIGdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbihXZWJQcm9jZXNzUHJveHkmLCBNZXNzYWdl
czo6V2ViUHJvY2Vzc1Byb3h5OjpHZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25EZWxheWVkUmVw
bHkmJik7CiAKICAgICBEb3dubG9hZFByb3h5JiBjcmVhdGVEb3dubG9hZFByb3h5KFdlYnNpdGVE
YXRhU3RvcmUmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKTsKIApAQCAtMTY5LDcg
KzE3MSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHN5bmNBbGxDb29raWVzKCk7CiAgICAgdm9pZCBk
aWRTeW5jQWxsQ29va2llcygpOwogCi0gICAgdm9pZCB0ZXN0UHJvY2Vzc0luY29taW5nU3luY01l
c3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkoV2ViUGFnZVByb3h5SWRlbnRpZmllciwgTWVz
c2FnZXM6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OlRlc3RQcm9jZXNzSW5jb21pbmdTeW5jTWVzc2Fn
ZXNXaGVuV2FpdGluZ0ZvclN5bmNSZXBseTo6RGVsYXllZFJlcGx5JiYpOworICAgIHZvaWQgdGVz
dFByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5KFdlYlBh
Z2VQcm94eUlkZW50aWZpZXIsIE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpUZXN0UHJv
Y2Vzc0luY29taW5nU3luY01lc3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5jUmVwbHlEZWxheWVkUmVw
bHkmJik7CiAKICAgICBQcm9jZXNzVGhyb3R0bGVyJiB0aHJvdHRsZXIoKSB7IHJldHVybiBtX3Ro
cm90dGxlcjsgfQogICAgIFdlYlByb2Nlc3NQb29sJiBwcm9jZXNzUG9vbCgpIHsgcmV0dXJuIG1f
cHJvY2Vzc1Bvb2w7IH0KQEAgLTI0Miw3ICsyNDQsNyBAQCBwcml2YXRlOgogI2VuZGlmCiAKICNp
ZiBFTkFCTEUoU0FOREJPWF9FWFRFTlNJT05TKQotICAgIHZvaWQgZ2V0U2FuZGJveEV4dGVuc2lv
bnNGb3JCbG9iRmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mIHBhdGhzLCBNZXNzYWdlczo6TmV0
d29ya1Byb2Nlc3NQcm94eTo6R2V0U2FuZGJveEV4dGVuc2lvbnNGb3JCbG9iRmlsZXM6OkFzeW5j
UmVwbHkmJik7CisgICAgdm9pZCBnZXRTYW5kYm94RXh0ZW5zaW9uc0ZvckJsb2JGaWxlcyhjb25z
dCBWZWN0b3I8U3RyaW5nPiYgcGF0aHMsIE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpH
ZXRTYW5kYm94RXh0ZW5zaW9uc0ZvckJsb2JGaWxlc0FzeW5jUmVwbHkmJik7CiAjZW5kaWYKIAog
I2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKQEAgLTI2NSw3ICsyNjcsNyBAQCBwcml2YXRlOgog
CiAgICAgc3RydWN0IENvbm5lY3Rpb25SZXF1ZXN0IHsKICAgICAgICAgV2Vha1B0cjxXZWJQcm9j
ZXNzUHJveHk+IHdlYlByb2Nlc3M7Ci0gICAgICAgIE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6
OkdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6RGVsYXllZFJlcGx5IHJlcGx5OworICAgICAg
ICBNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25E
ZWxheWVkUmVwbHkgcmVwbHk7CiAgICAgfTsKICAgICB1aW50NjRfdCBtX2Nvbm5lY3Rpb25SZXF1
ZXN0SWRlbnRpZmllciB7IDAgfTsKICAgICBIYXNoTWFwPHVpbnQ2NF90LCBDb25uZWN0aW9uUmVx
dWVzdD4gbV9jb25uZWN0aW9uUmVxdWVzdHM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc01hbmFnZXIuY3BwCmluZGV4IDM3ODJjODRi
Njc3OWU5ZDhlMjA2OGE2YTE1OTkwNmY2N2EwZGE0MzAuLmU1M2FmMmZlODE0ZTBiMDFmZDZhODM3
ZDAzNGM0ODcxZTU4NTQ4ZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Bs
dWdpbnMvUGx1Z2luUHJvY2Vzc01hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc01hbmFnZXIuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAj
aWYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCiAKICNpbmNsdWRlICJQbHVnaW5Qcm9jZXNz
UHJveHkuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUg
IldlYnNpdGVEYXRhRmV0Y2hPcHRpb24uaCIKICNpbmNsdWRlIDx3dGYvQ3J5cHRvZ3JhcGhpY2Fs
bHlSYW5kb21OdW1iZXIuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc01hbmFn
ZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc01hbmFn
ZXIuaAppbmRleCA5NjVjYjIyOWUwY2NkNzc1NzgxZGZlZTA1Y2U5ZDU2YjFmNzE1MjE3Li45MzBm
MGExNzUwYjYyODMzNjg5YTNmNTRiNGZjODY3NmYzZmYxNmQ2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NNYW5hZ2VyLmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzTWFuYWdlci5oCkBAIC0z
MSw3ICszMSw3IEBACiAjaW5jbHVkZSAiUGx1Z2luUHJvY2Vzcy5oIgogI2luY2x1ZGUgIlBsdWdp
blByb2Nlc3NBdHRyaWJ1dGVzLmgiCiAjaW5jbHVkZSAiUHJvY2Vzc1Rocm90dGxlci5oIgotI2lu
Y2x1ZGUgIldlYlByb2Nlc3NQcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzc1By
b3h5TWVzc2FnZXNSZXBsaWVzLmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRl
IDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgpAQCAtNTcsNyAr
NTcsNyBAQCBwdWJsaWM6CiAKICAgICB1aW50NjRfdCBwbHVnaW5Qcm9jZXNzVG9rZW4oY29uc3Qg
UGx1Z2luTW9kdWxlSW5mbyYsIFBsdWdpblByb2Nlc3NUeXBlLCBQbHVnaW5Qcm9jZXNzU2FuZGJv
eFBvbGljeSk7CiAKLSAgICB2b2lkIGdldFBsdWdpblByb2Nlc3NDb25uZWN0aW9uKHVpbnQ2NF90
IHBsdWdpblByb2Nlc3NUb2tlbiwgTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0UGx1Z2lu
UHJvY2Vzc0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBseSYmKTsKKyAgICB2b2lkIGdldFBsdWdpblBy
b2Nlc3NDb25uZWN0aW9uKHVpbnQ2NF90IHBsdWdpblByb2Nlc3NUb2tlbiwgTWVzc2FnZXM6Oldl
YlByb2Nlc3NQcm94eTo6R2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25EZWxheWVkUmVwbHkmJik7
CiAgICAgdm9pZCByZW1vdmVQbHVnaW5Qcm9jZXNzUHJveHkoUGx1Z2luUHJvY2Vzc1Byb3h5Kik7
CiAKICAgICB2b2lkIGZldGNoV2Vic2l0ZURhdGEoY29uc3QgUGx1Z2luTW9kdWxlSW5mbyYsIE9w
dGlvblNldDxXZWJzaXRlRGF0YUZldGNoT3B0aW9uPiwgV1RGOjpGdW5jdGlvbjx2b2lkIChWZWN0
b3I8U3RyaW5nPik+JiYgY29tcGxldGlvbkhhbmRsZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmgKaW5kZXggODdiM2Y1MGVh
NGJiYzBjMzFiYjE5YjJjY2FhMjBhYzY0MDNlZjI4Mi4uNzIxOTkyMTE0ODUxNTEyNmU1Y2Q1ODYw
NTQ3M2U5MWFhZDg2MDdkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGx1
Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Q
bHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5oCkBAIC0zMyw3ICszMyw3IEBACiAjaW5jbHVkZSAi
UGx1Z2luUHJvY2Vzcy5oIgogI2luY2x1ZGUgIlBsdWdpblByb2Nlc3NBdHRyaWJ1dGVzLmgiCiAj
aW5jbHVkZSAiUHJvY2Vzc0xhdW5jaGVyLmgiCi0jaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5TWVz
c2FnZXMuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHlNZXNzYWdlc1JlcGxpZXMuaCIKICNp
bmNsdWRlIDx3dGYvRGVxdWUuaD4KIAogI2lmIFBMQVRGT1JNKENPQ09BKQpAQCAtNzEsNyArNzEs
NyBAQCBwdWJsaWM6CiAKICAgICAvLyBBc2tzIHRoZSBwbHVnLWluIHByb2Nlc3MgdG8gY3JlYXRl
IGEgbmV3IGNvbm5lY3Rpb24gdG8gYSB3ZWIgcHJvY2Vzcy4gVGhlIGNvbm5lY3Rpb24gaWRlbnRp
ZmllciB3aWxsIGJlCiAgICAgLy8gZW5jb2RlZCBpbiB0aGUgZ2l2ZW4gYXJndW1lbnQgZW5jb2Rl
ciBhbmQgc2VudCBiYWNrIHRvIHRoZSBjb25uZWN0aW9uIG9mIHRoZSBnaXZlbiB3ZWIgcHJvY2Vz
cy4KLSAgICB2b2lkIGdldFBsdWdpblByb2Nlc3NDb25uZWN0aW9uKE1lc3NhZ2VzOjpXZWJQcm9j
ZXNzUHJveHk6OkdldFBsdWdpblByb2Nlc3NDb25uZWN0aW9uOjpEZWxheWVkUmVwbHkmJik7Cisg
ICAgdm9pZCBnZXRQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbihNZXNzYWdlczo6V2ViUHJvY2Vzc1By
b3h5OjpHZXRQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbkRlbGF5ZWRSZXBseSYmKTsKIAogICAgIHZv
aWQgZmV0Y2hXZWJzaXRlRGF0YShDb21wbGV0aW9uSGFuZGxlcjx2b2lkIChWZWN0b3I8U3RyaW5n
Pik+JiYpOwogICAgIHZvaWQgZGVsZXRlV2Vic2l0ZURhdGEoV2FsbFRpbWUgbW9kaWZpZWRTaW5j
ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCAoKT4mJik7CkBAIC0xNDMsNyArMTQzLDcgQEAgcHJp
dmF0ZToKICAgICAvLyBUaGUgY29ubmVjdGlvbiB0byB0aGUgcGx1Zy1pbiBob3N0IHByb2Nlc3Mu
CiAgICAgUmVmUHRyPElQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOwogCi0gICAgRGVxdWU8
TWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb246OkRl
bGF5ZWRSZXBseT4gbV9wZW5kaW5nQ29ubmVjdGlvblJlcGxpZXM7CisgICAgRGVxdWU8TWVzc2Fn
ZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25EZWxheWVkUmVw
bHk+IG1fcGVuZGluZ0Nvbm5lY3Rpb25SZXBsaWVzOwogCiAgICAgVmVjdG9yPHVpbnQ2NF90PiBt
X3BlbmRpbmdGZXRjaFdlYnNpdGVEYXRhUmVxdWVzdHM7CiAgICAgSGFzaE1hcDx1aW50NjRfdCwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCAoVmVjdG9yPFN0cmluZz4pPj4gbV9wZW5kaW5nRmV0Y2hX
ZWJzaXRlRGF0YUNhbGxiYWNrczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1Byb3Zpc2lvbmFsUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm92aXNp
b25hbFBhZ2VQcm94eS5oCmluZGV4IDE3NTIxNTA0NzQ4YmZiNmYyMDYzY2UxNGNhNDVmZDFjYzcx
ODNlY2IuLmYzMDFhN2NiOWVhODY0MmExYWJmNDY0MTdkMTUzNTRiZjdjMmUwNjQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuaApAQCAtMjgsNyAr
MjgsNyBAQAogI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgogI2luY2x1ZGUgIlNhbmRib3hF
eHRlbnNpb24uaCIKICNpbmNsdWRlICJXZWJGcmFtZVBvbGljeUxpc3RlbmVyUHJveHkuaCIKLSNp
bmNsdWRlICJXZWJQYWdlUHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYlBhZ2VQcm94eU1l
c3NhZ2VzUmVwbGllcy5oIgogI2luY2x1ZGUgIldlYnNpdGVQb2xpY2llc0RhdGEuaCIKICNpbmNs
dWRlIDx3dGYvV2Vha1B0ci5oPgogCkBAIC0xMTEsNyArMTExLDcgQEAgcHJpdmF0ZToKICAgICB2
b2lkIGJhY2tGb3J3YXJkR29Ub0l0ZW0oY29uc3QgV2ViQ29yZTo6QmFja0ZvcndhcmRJdGVtSWRl
bnRpZmllciYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxl
JiYpPiYmKTsKICAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jKFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllciwgYm9vbCBpc01haW5GcmFtZSwgV2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW5EYXRhJiYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0X3Qg
bmF2aWdhdGlvbklELCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmLAogICAgICAgICBGcmFtZUluZm9E
YXRhJiYsIE9wdGlvbmFsPFdlYlBhZ2VQcm94eUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlE
LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29y
ZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJiByZXF1ZXN0Qm9k
eSwKLSAgICAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmIHJlZGlyZWN0UmVzcG9uc2Us
IGNvbnN0IFVzZXJEYXRhJiwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGVjaWRlUG9saWN5Rm9y
TmF2aWdhdGlvbkFjdGlvblN5bmM6OkRlbGF5ZWRSZXBseSYmKTsKKyAgICAgICAgV2ViQ29yZTo6
UmVzb3VyY2VSZXNwb25zZSYmIHJlZGlyZWN0UmVzcG9uc2UsIGNvbnN0IFVzZXJEYXRhJiwgTWVz
c2FnZXM6OldlYlBhZ2VQcm94eTo6RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmNE
ZWxheWVkUmVwbHkmJik7CiAjaWYgVVNFKFFVSUNLX0xPT0spCiAgICAgdm9pZCBkaWRSZXF1ZXN0
UGFzc3dvcmRGb3JRdWlja0xvb2tEb2N1bWVudEluTWFpbkZyYW1lKGNvbnN0IFN0cmluZyYgZmls
ZU5hbWUpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TdXNw
ZW5kZWRQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1N1c3BlbmRlZFBhZ2VQ
cm94eS5oCmluZGV4IDc2NGJlZGM3N2JlODFiNDViNDkyNjViYTExNWFjYWY3YjUwNzcwMjQuLmVl
MmM2YTM3NTI0ZjJjOTFhZGFmZWFhYmNmNzkzYWRlNmQ2MWQ4ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1N1c3BlbmRlZFBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1N1c3BlbmRlZFBhZ2VQcm94eS5oCkBAIC0yOCwxMSArMjgsMTUgQEAKICNp
bmNsdWRlICJDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiUHJvY2Vzc1Rocm90dGxlci5oIgogI2lu
Y2x1ZGUgIldlYkJhY2tGb3J3YXJkTGlzdEl0ZW0uaCIKLSNpbmNsdWRlICJXZWJQYWdlUHJveHlN
ZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYlBhZ2VQcm94eU1lc3NhZ2VzUmVwbGllcy5oIgogI2lu
Y2x1ZGUgPFdlYkNvcmUvRnJhbWVJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50
ZWQuaD4KICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCituYW1lc3BhY2UgV2ViQ29yZSB7Citj
bGFzcyBSZWdpc3RyYWJsZURvbWFpbjsKK30KKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNz
IFdlYkJhY2tGb3J3YXJkQ2FjaGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmNwcAppbmRleCBlYjkwYzVhYmQzMGJjODFjYTQwYzBkZjNmZjQ2YWI1MTUwNDZhNzhkLi41Zjhk
NTA2OTRlMDJmNjg5ZWYzMGYxMmEzMmJkZTdmNDM3YmFhNmJlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTE1MCw4ICsxNTAsNiBAQAogI2luY2x1ZGUgPFdl
YkNvcmUvRnJhbWVMb2FkZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0dsb2JhbEZyYW1lSWRlbnRp
Zmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvR2xvYmFsV2luZG93SWRlbnRpZmllci5oPgotI2lu
Y2x1ZGUgPFdlYkNvcmUvSlNET01CaW5kaW5nLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9KU0RPTUV4
Y2VwdGlvbkhhbmRsaW5nLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9MZW5ndGhCb3guaD4KICNpbmNs
dWRlIDxXZWJDb3JlL01JTUVUeXBlUmVnaXN0cnkuaD4KICNpbmNsdWRlIDxXZWJDb3JlL01lZGlh
U3RyZWFtUmVxdWVzdC5oPgpAQCAtMjU2LDYgKzI1NCwxNSBAQAogI2luY2x1ZGUgPGQzZDExXzEu
aD4KICNlbmRpZgogCituYW1lc3BhY2UgV2ViQ29yZSB7CitzdHJ1Y3QgRXhjZXB0aW9uRGV0YWls
cyB7CisgICAgU3RyaW5nIG1lc3NhZ2U7CisgICAgaW50IGxpbmVOdW1iZXIgeyAwIH07CisgICAg
aW50IGNvbHVtbk51bWJlciB7IDAgfTsKKyAgICBTdHJpbmcgc291cmNlVVJMOworfTsKK30KKwog
Ly8gVGhpcyBjb250cm9scyB3aGF0IHN0cmF0ZWd5IHdlIHVzZSBmb3IgbW91c2Ugd2hlZWwgY29h
bGVzY2luZy4KICNkZWZpbmUgTUVSR0VfV0hFRUxfRVZFTlRTIDEKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCA4NGU3NTVlY2RlMDhhMDI5ZmQ2NDIwNzM5ZjhjNzk1
MzI0ODczYjU1Li4zMjc4M2Y0ZGNkNjY5ODgxNzJmNjAzMzUzZjlkNWRiOTUwMmMyMjRjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtNjIsOSArNjIsOSBAQAogI2lu
Y2x1ZGUgIldlYlBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oIgogI2luY2x1ZGUgIldlYlBh
Z2VJbmplY3RlZEJ1bmRsZUNsaWVudC5oIgogI2luY2x1ZGUgIldlYlBhZ2VQcm94eUlkZW50aWZp
ZXIuaCIKKyNpbmNsdWRlICJXZWJQYWdlUHJveHlNZXNzYWdlc1JlcGxpZXMuaCIKICNpbmNsdWRl
ICJXZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eS5oIgogI2luY2x1ZGUgIldlYlByZWZlcmVuY2Vz
LmgiCi0jaW5jbHVkZSAiV2ViUGFnZVByb3h5TWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJQb3B1
cE1lbnVQcm94eS5oIgogI2luY2x1ZGUgIldlYlVuZG9TdGVwSUQuaCIKICNpbmNsdWRlICJXZWJz
aXRlUG9saWNpZXNEYXRhLmgiCkBAIC0xNzMsOCArMTczLDEzIEBAIGNsYXNzIFVJQ2xpZW50Owog
Y2xhc3MgVVJMUmVxdWVzdDsKIH0KIAorbmFtZXNwYWNlIEluc3BlY3RvciB7CitlbnVtIGNsYXNz
IEluc3BlY3RvclRhcmdldFR5cGUgOiB1aW50OF90OworfQorCiBuYW1lc3BhY2UgSVBDIHsKIGNs
YXNzIERlY29kZXI7CitjbGFzcyBGb3JtRGF0YVJlZmVyZW5jZTsKIH0KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewpAQCAtMjAwLDYgKzIwNSw3IEBAIGVudW0gY2xhc3MgRE9NUGFzdGVBY2Nlc3NSZXNw
b25zZSA6IHVpbnQ4X3Q7CiBlbnVtIGNsYXNzIExvY2tCYWNrRm9yd2FyZExpc3QgOiBib29sOwog
ZW51bSBjbGFzcyBIYXNJbnNlY3VyZUNvbnRlbnQgOiBib29sOwogZW51bSBjbGFzcyBOb3RpZmlj
YXRpb25EaXJlY3Rpb24gOiB1aW50OF90OworZW51bSBjbGFzcyBSb3V0ZVNoYXJpbmdQb2xpY3kg
OiB1aW50OF90OwogZW51bSBjbGFzcyBTaG91bGRTYW1wbGUgOiBib29sOwogZW51bSBjbGFzcyBT
aG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgOiBib29sOwogZW51bSBjbGFzcyBXcml0aW5nRGly
ZWN0aW9uIDogdWludDhfdDsKQEAgLTIwOSw5ICsyMTUsMTEgQEAgc3RydWN0IEJhY2tGb3J3YXJk
SXRlbUlkZW50aWZpZXI7CiBzdHJ1Y3QgQ29udGVudFJ1bGVMaXN0UmVzdWx0czsKIHN0cnVjdCBE
YXRhTGlzdFN1Z2dlc3Rpb25JbmZvcm1hdGlvbjsKIHN0cnVjdCBEaWN0aW9uYXJ5UG9wdXBJbmZv
Oworc3RydWN0IERyYWdJdGVtOwogc3RydWN0IEV4Y2VwdGlvbkRldGFpbHM7CiBzdHJ1Y3QgRmls
ZUNob29zZXJTZXR0aW5nczsKIHN0cnVjdCBHbG9iYWxXaW5kb3dJZGVudGlmaWVyOworc3RydWN0
IExpbmtJY29uOwogc3RydWN0IE1lZGlhU3RyZWFtUmVxdWVzdDsKIHN0cnVjdCBNb2NrV2ViQXV0
aGVudGljYXRpb25Db25maWd1cmF0aW9uOwogc3RydWN0IFByZXdhcm1JbmZvcm1hdGlvbjsKQEAg
LTI5MCwxOSArMjk4LDI3IEBAIGNsYXNzIFdlYlZpZXdEaWRNb3ZlVG9XaW5kb3dPYnNlcnZlcjsK
IAogc3RydWN0IEF0dHJpYnV0ZWRTdHJpbmc7CiBzdHJ1Y3QgQ29sb3JTcGFjZURhdGE7CitzdHJ1
Y3QgRGF0YURldGVjdGlvblJlc3VsdDsKIHN0cnVjdCBEb2N1bWVudEVkaXRpbmdDb250ZXh0Owog
c3RydWN0IERvY3VtZW50RWRpdGluZ0NvbnRleHRSZXF1ZXN0Owogc3RydWN0IEVkaXRpbmdSYW5n
ZTsKIHN0cnVjdCBFZGl0b3JTdGF0ZTsKK3N0cnVjdCBGb2N1c2VkRWxlbWVudEluZm9ybWF0aW9u
Owogc3RydWN0IEZvbnRJbmZvOwogc3RydWN0IEZyYW1lSW5mb0RhdGE7CiBzdHJ1Y3QgSW5zZXJ0
VGV4dE9wdGlvbnM7CitzdHJ1Y3QgSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb247CiBz
dHJ1Y3QgSW50ZXJhY3Rpb25JbmZvcm1hdGlvblJlcXVlc3Q7CiBzdHJ1Y3QgTG9hZFBhcmFtZXRl
cnM7CitzdHJ1Y3QgTmF2aWdhdGlvbkFjdGlvbkRhdGE7CiBzdHJ1Y3QgUGxhdGZvcm1Qb3B1cE1l
bnVEYXRhOwogc3RydWN0IFByaW50SW5mbzsKK3N0cnVjdCBQREZDb250ZXh0TWVudTsKIHN0cnVj
dCBXZWJBdXRvY29ycmVjdGlvbkRhdGE7CitzdHJ1Y3QgV2ViSGl0VGVzdFJlc3VsdERhdGE7Citz
dHJ1Y3QgV2ViTmF2aWdhdGlvbkRhdGFTdG9yZTsKIHN0cnVjdCBXZWJQb3B1cEl0ZW07CitzdHJ1
Y3QgV2ViU3BlZWNoU3ludGhlc2lzVm9pY2U7CiBzdHJ1Y3QgVVJMU2NoZW1lVGFza1BhcmFtZXRl
cnM7CiBzdHJ1Y3QgVXNlck1lc3NhZ2U7CiAKQEAgLTE0MzAsNyArMTQ0Niw3IEBAIHB1YmxpYzoK
IAogICAgIHZvaWQgc2V0Rm9jdXMoYm9vbCBmb2N1c2VkKTsKICAgICB2b2lkIHNldFdpbmRvd0Zy
YW1lKGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpOwotICAgIHZvaWQgZ2V0V2luZG93RnJhbWUo
TWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6R2V0V2luZG93RnJhbWU6OkRlbGF5ZWRSZXBseSYmKTsK
KyAgICB2b2lkIGdldFdpbmRvd0ZyYW1lKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkdldFdpbmRv
d0ZyYW1lRGVsYXllZFJlcGx5JiYpOwogICAgIHZvaWQgZ2V0V2luZG93RnJhbWVXaXRoQ2FsbGJh
Y2soRnVuY3Rpb248dm9pZChXZWJDb3JlOjpGbG9hdFJlY3QpPiYmKTsKIAogICAgIFdlYkNvcmU6
OlVzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb24gdXNlckludGVyZmFjZUxheW91dERpcmVjdGlv
bigpOwpAQCAtMTUzOCw3ICsxNTU0LDcgQEAgcHVibGljOgogICAgIHZvaWQgYmFja0ZvcndhcmRH
b1RvSXRlbVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBjb25zdCBXZWJDb3JlOjpCYWNr
Rm9yd2FyZEl0ZW1JZGVudGlmaWVyJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTYW5kYm94RXh0
ZW5zaW9uOjpIYW5kbGUmJik+JiYpOwogICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlv
bkFjdGlvblN5bmNTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyLCBib29sIGlzTWFpbkZyYW1lLCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEm
JiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQs
IE5hdmlnYXRpb25BY3Rpb25EYXRhJiYsCiAgICAgICAgIEZyYW1lSW5mb0RhdGEmJiwgT3B0aW9u
YWw8V2ViUGFnZVByb3h5SWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsIGNvbnN0IFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3QmJiwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJlcXVlc3RCb2R5LAotICAgICAgICBX
ZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYgcmVkaXJlY3RSZXNwb25zZSwgY29uc3QgVXNlckRh
dGEmLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0
aW9uU3luYzo6RGVsYXllZFJlcGx5JiYpOworICAgICAgICBXZWJDb3JlOjpSZXNvdXJjZVJlc3Bv
bnNlJiYgcmVkaXJlY3RSZXNwb25zZSwgY29uc3QgVXNlckRhdGEmLCBNZXNzYWdlczo6V2ViUGFn
ZVByb3h5OjpEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luY0RlbGF5ZWRSZXBseSYm
KTsKICNpZiBVU0UoUVVJQ0tfTE9PSykKICAgICB2b2lkIGRpZFJlcXVlc3RQYXNzd29yZEZvclF1
aWNrTG9va0RvY3VtZW50SW5NYWluRnJhbWVTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwg
Y29uc3QgU3RyaW5nJiBmaWxlTmFtZSk7CiAjZW5kaWYKQEAgLTE2NzksNyArMTY5NSw3IEBAIHBy
aXZhdGU6CiAgICAgICAgIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiByZWRpcmVjdFJlc3Bv
bnNlLCBjb25zdCBVc2VyRGF0YSYsIHVpbnQ2NF90IGxpc3RlbmVySUQpOwogICAgIHZvaWQgZGVj
aWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmMoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
LCBib29sIGlzTWFpbkZyYW1lLCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiwgV2ViQ29y
ZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRp
b25BY3Rpb25EYXRhJiYsCiAgICAgICAgIEZyYW1lSW5mb0RhdGEmJiwgT3B0aW9uYWw8V2ViUGFn
ZVByb3h5SWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwg
SVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJlcXVlc3RCb2R5LAotICAgICAgICBXZWJDb3JlOjpS
ZXNvdXJjZVJlc3BvbnNlJiYgcmVkaXJlY3RSZXNwb25zZSwgY29uc3QgVXNlckRhdGEmLCBNZXNz
YWdlczo6V2ViUGFnZVByb3h5OjpEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luYzo6
RGVsYXllZFJlcGx5JiYpOworICAgICAgICBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYgcmVk
aXJlY3RSZXNwb25zZSwgY29uc3QgVXNlckRhdGEmLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpE
ZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luY0RlbGF5ZWRSZXBseSYmKTsKICAgICB2
b2lkIGRlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbihXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYsIFdlYkNvcmU6OlBvbGljeUNo
ZWNrSWRlbnRpZmllciwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiwKICAgICAgICAgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0JiYsIGNvbnN0IFN0cmluZyYgZnJhbWVOYW1lLCB1aW50NjRfdCBsaXN0
ZW5lcklELCBjb25zdCBVc2VyRGF0YSYpOwogICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yUmVzcG9u
c2UoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdp
bkRhdGEmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRp
b25JRCwKQEAgLTE3MDAsMTEgKzE3MTYsMTEgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZFVwZGF0
ZUhpc3RvcnlUaXRsZShjb25zdCBTdHJpbmcmIHRpdGxlLCBjb25zdCBTdHJpbmcmIHVybCwgV2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyKTsKIAogICAgIC8vIFVJIGNsaWVudAotICAgIHZvaWQgY3Jl
YXRlTmV3UGFnZShjb25zdCBGcmFtZUluZm9EYXRhJiwgT3B0aW9uYWw8V2ViUGFnZVByb3h5SWRl
bnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBX
ZWJDb3JlOjpXaW5kb3dGZWF0dXJlcyYmLCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmLCBNZXNzYWdl
czo6V2ViUGFnZVByb3h5OjpDcmVhdGVOZXdQYWdlOjpEZWxheWVkUmVwbHkmJik7CisgICAgdm9p
ZCBjcmVhdGVOZXdQYWdlKGNvbnN0IEZyYW1lSW5mb0RhdGEmLCBPcHRpb25hbDxXZWJQYWdlUHJv
eHlJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0
JiYsIFdlYkNvcmU6OldpbmRvd0ZlYXR1cmVzJiYsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYsIE1l
c3NhZ2VzOjpXZWJQYWdlUHJveHk6OkNyZWF0ZU5ld1BhZ2VEZWxheWVkUmVwbHkmJik7CiAgICAg
dm9pZCBzaG93UGFnZSgpOwotICAgIHZvaWQgcnVuSmF2YVNjcmlwdEFsZXJ0KFdlYkNvcmU6OkZy
YW1lSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiwgY29uc3Qg
U3RyaW5nJiwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UnVuSmF2YVNjcmlwdEFsZXJ0OjpEZWxh
eWVkUmVwbHkmJik7Ci0gICAgdm9pZCBydW5KYXZhU2NyaXB0Q29uZmlybShXZWJDb3JlOjpGcmFt
ZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYsIGNvbnN0IFN0
cmluZyYsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJ1bkphdmFTY3JpcHRDb25maXJtOjpEZWxh
eWVkUmVwbHkmJik7Ci0gICAgdm9pZCBydW5KYXZhU2NyaXB0UHJvbXB0KFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiwgY29uc3QgU3Ry
aW5nJiwgY29uc3QgU3RyaW5nJiwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UnVuSmF2YVNjcmlw
dFByb21wdDo6RGVsYXllZFJlcGx5JiYpOworICAgIHZvaWQgcnVuSmF2YVNjcmlwdEFsZXJ0KFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRh
JiwgY29uc3QgU3RyaW5nJiwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UnVuSmF2YVNjcmlwdEFs
ZXJ0RGVsYXllZFJlcGx5JiYpOworICAgIHZvaWQgcnVuSmF2YVNjcmlwdENvbmZpcm0oV2ViQ29y
ZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmLCBj
b25zdCBTdHJpbmcmLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSdW5KYXZhU2NyaXB0Q29uZmly
bURlbGF5ZWRSZXBseSYmKTsKKyAgICB2b2lkIHJ1bkphdmFTY3JpcHRQcm9tcHQoV2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmLCBjb25z
dCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSdW5KYXZh
U2NyaXB0UHJvbXB0RGVsYXllZFJlcGx5JiYpOwogICAgIHZvaWQgc2V0U3RhdHVzVGV4dChjb25z
dCBTdHJpbmcmKTsKICAgICB2b2lkIG1vdXNlRGlkTW92ZU92ZXJFbGVtZW50KFdlYkhpdFRlc3RS
ZXN1bHREYXRhJiYsIHVpbnQzMl90IG1vZGlmaWVycywgVXNlckRhdGEmJik7CiAKQEAgLTE3MTIs
MjkgKzE3MjgsMjkgQEAgcHJpdmF0ZToKICAgICB2b2lkIHVuYXZhaWxhYmxlUGx1Z2luQnV0dG9u
Q2xpY2tlZCh1aW50MzJfdCBvcGFxdWVQbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbiwgY29uc3Qg
U3RyaW5nJiBtaW1lVHlwZSwgY29uc3QgU3RyaW5nJiBwbHVnaW5VUkxTdHJpbmcsIGNvbnN0IFN0
cmluZyYgcGx1Z2luc1BhZ2VVUkxTdHJpbmcsIGNvbnN0IFN0cmluZyYgZnJhbWVVUkxTdHJpbmcs
IGNvbnN0IFN0cmluZyYgcGFnZVVSTFN0cmluZyk7CiAjZW5kaWYgLy8gRU5BQkxFKE5FVFNDQVBF
X1BMVUdJTl9BUEkpCiAjaWYgRU5BQkxFKFdFQkdMKQotICAgIHZvaWQgd2ViR0xQb2xpY3lGb3JV
UkwoVVJMJiYsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OldlYkdMUG9saWN5Rm9yVVJMOjpEZWxh
eWVkUmVwbHkmJik7Ci0gICAgdm9pZCByZXNvbHZlV2ViR0xQb2xpY3lGb3JVUkwoVVJMJiYsIE1l
c3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJlc29sdmVXZWJHTFBvbGljeUZvclVSTDo6RGVsYXllZFJl
cGx5JiYpOworICAgIHZvaWQgd2ViR0xQb2xpY3lGb3JVUkwoVVJMJiYsIE1lc3NhZ2VzOjpXZWJQ
YWdlUHJveHk6OldlYkdMUG9saWN5Rm9yVVJMRGVsYXllZFJlcGx5JiYpOworICAgIHZvaWQgcmVz
b2x2ZVdlYkdMUG9saWN5Rm9yVVJMKFVSTCYmLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSZXNv
bHZlV2ViR0xQb2xpY3lGb3JVUkxEZWxheWVkUmVwbHkmJik7CiAjZW5kaWYgLy8gRU5BQkxFKFdF
QkdMKQogICAgIHZvaWQgc2V0VG9vbGJhcnNBcmVWaXNpYmxlKGJvb2wgdG9vbGJhcnNBcmVWaXNp
YmxlKTsKLSAgICB2b2lkIGdldFRvb2xiYXJzQXJlVmlzaWJsZShNZXNzYWdlczo6V2ViUGFnZVBy
b3h5OjpHZXRUb29sYmFyc0FyZVZpc2libGU6OkRlbGF5ZWRSZXBseSYmKTsKKyAgICB2b2lkIGdl
dFRvb2xiYXJzQXJlVmlzaWJsZShNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpHZXRUb29sYmFyc0Fy
ZVZpc2libGVEZWxheWVkUmVwbHkmJik7CiAgICAgdm9pZCBzZXRNZW51QmFySXNWaXNpYmxlKGJv
b2wgbWVudUJhcklzVmlzaWJsZSk7Ci0gICAgdm9pZCBnZXRNZW51QmFySXNWaXNpYmxlKE1lc3Nh
Z2VzOjpXZWJQYWdlUHJveHk6OkdldE1lbnVCYXJJc1Zpc2libGU6OkRlbGF5ZWRSZXBseSYmKTsK
KyAgICB2b2lkIGdldE1lbnVCYXJJc1Zpc2libGUoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6R2V0
TWVudUJhcklzVmlzaWJsZURlbGF5ZWRSZXBseSYmKTsKICAgICB2b2lkIHNldFN0YXR1c0Jhcklz
VmlzaWJsZShib29sIHN0YXR1c0JhcklzVmlzaWJsZSk7Ci0gICAgdm9pZCBnZXRTdGF0dXNCYXJJ
c1Zpc2libGUoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6R2V0U3RhdHVzQmFySXNWaXNpYmxlOjpE
ZWxheWVkUmVwbHkmJik7CisgICAgdm9pZCBnZXRTdGF0dXNCYXJJc1Zpc2libGUoTWVzc2FnZXM6
OldlYlBhZ2VQcm94eTo6R2V0U3RhdHVzQmFySXNWaXNpYmxlRGVsYXllZFJlcGx5JiYpOwogICAg
IHZvaWQgZ2V0SXNWaWV3VmlzaWJsZShib29sJik7CiAgICAgdm9pZCBzZXRJc1Jlc2l6YWJsZShi
b29sIGlzUmVzaXphYmxlKTsKLSAgICB2b2lkIHNjcmVlblRvUm9vdFZpZXcoY29uc3QgV2ViQ29y
ZTo6SW50UG9pbnQmIHNjcmVlblBvaW50LCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTY3JlZW5U
b1Jvb3RWaWV3OjpEZWxheWVkUmVwbHkmJik7Ci0gICAgdm9pZCByb290Vmlld1RvU2NyZWVuKGNv
bnN0IFdlYkNvcmU6OkludFJlY3QmIHZpZXdSZWN0LCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpS
b290Vmlld1RvU2NyZWVuOjpEZWxheWVkUmVwbHkmJik7CisgICAgdm9pZCBzY3JlZW5Ub1Jvb3RW
aWV3KGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBzY3JlZW5Qb2ludCwgTWVzc2FnZXM6OldlYlBh
Z2VQcm94eTo6U2NyZWVuVG9Sb290Vmlld0RlbGF5ZWRSZXBseSYmKTsKKyAgICB2b2lkIHJvb3RW
aWV3VG9TY3JlZW4oY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgdmlld1JlY3QsIE1lc3NhZ2VzOjpX
ZWJQYWdlUHJveHk6OlJvb3RWaWV3VG9TY3JlZW5EZWxheWVkUmVwbHkmJik7CiAgICAgdm9pZCBh
Y2Nlc3NpYmlsaXR5U2NyZWVuVG9Sb290Vmlldyhjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgc2Ny
ZWVuUG9pbnQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6SW50UG9pbnQpPiYmKTsK
ICAgICB2b2lkIHJvb3RWaWV3VG9BY2Nlc3NpYmlsaXR5U2NyZWVuKGNvbnN0IFdlYkNvcmU6Oklu
dFJlY3QmIHZpZXdSZWN0LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkludFJlY3Qp
PiYmKTsKLSAgICB2b2lkIHJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbChXZWJDb3JlOjpGcmFt
ZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYsIGNvbnN0IFN0
cmluZyYgbWVzc2FnZSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UnVuQmVmb3JlVW5sb2FkQ29u
ZmlybVBhbmVsOjpEZWxheWVkUmVwbHkmJik7CisgICAgdm9pZCBydW5CZWZvcmVVbmxvYWRDb25m
aXJtUGFuZWwoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbkRhdGEmLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIE1lc3NhZ2VzOjpXZWJQYWdlUHJv
eHk6OlJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbERlbGF5ZWRSZXBseSYmKTsKICAgICB2b2lk
IGRpZENoYW5nZVZpZXdwb3J0UHJvcGVydGllcyhjb25zdCBXZWJDb3JlOjpWaWV3cG9ydEF0dHJp
YnV0ZXMmKTsKICAgICB2b2lkIHBhZ2VEaWRTY3JvbGwoKTsKICAgICB2b2lkIHJ1bk9wZW5QYW5l
bChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2lu
RGF0YSYsIGNvbnN0IFdlYkNvcmU6OkZpbGVDaG9vc2VyU2V0dGluZ3MmKTsKICAgICB2b2lkIHNo
b3dTaGFyZVNoZWV0KGNvbnN0IFdlYkNvcmU6OlNoYXJlRGF0YVdpdGhQYXJzZWRVUkwmLCBTaGFy
ZVNoZWV0Q2FsbGJhY2tJRCk7CiAgICAgdm9pZCBwcmludEZyYW1lKFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKLSAgICB2b2lkIGV4Y2VlZGVk
RGF0YWJhc2VRdW90YShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgb3Jp
Z2luSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBkYXRhYmFzZU5hbWUsIGNvbnN0IFN0cmluZyYg
ZGlzcGxheU5hbWUsIHVpbnQ2NF90IGN1cnJlbnRRdW90YSwgdWludDY0X3QgY3VycmVudE9yaWdp
blVzYWdlLCB1aW50NjRfdCBjdXJyZW50RGF0YWJhc2VVc2FnZSwgdWludDY0X3QgZXhwZWN0ZWRV
c2FnZSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RXhjZWVkZWREYXRhYmFzZVF1b3RhOjpEZWxh
eWVkUmVwbHkmJik7Ci0gICAgdm9pZCByZWFjaGVkQXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3Rh
KGNvbnN0IFN0cmluZyYgb3JpZ2luSWRlbnRpZmllciwgdWludDY0X3QgY3VycmVudFF1b3RhLCB1
aW50NjRfdCB0b3RhbEJ5dGVzTmVlZGVkLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSZWFjaGVk
QXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhOjpEZWxheWVkUmVwbHkmJik7CisgICAgdm9pZCBl
eGNlZWRlZERhdGFiYXNlUXVvdGEoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBTdHJp
bmcmIG9yaWdpbklkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgZGF0YWJhc2VOYW1lLCBjb25zdCBT
dHJpbmcmIGRpc3BsYXlOYW1lLCB1aW50NjRfdCBjdXJyZW50UXVvdGEsIHVpbnQ2NF90IGN1cnJl
bnRPcmlnaW5Vc2FnZSwgdWludDY0X3QgY3VycmVudERhdGFiYXNlVXNhZ2UsIHVpbnQ2NF90IGV4
cGVjdGVkVXNhZ2UsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkV4Y2VlZGVkRGF0YWJhc2VRdW90
YURlbGF5ZWRSZXBseSYmKTsKKyAgICB2b2lkIHJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2lu
UXVvdGEoY29uc3QgU3RyaW5nJiBvcmlnaW5JZGVudGlmaWVyLCB1aW50NjRfdCBjdXJyZW50UXVv
dGEsIHVpbnQ2NF90IHRvdGFsQnl0ZXNOZWVkZWQsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJl
YWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGFEZWxheWVkUmVwbHkmJik7CiAgICAgdm9p
ZCByZXF1ZXN0R2VvbG9jYXRpb25QZXJtaXNzaW9uRm9yRnJhbWUodWludDY0X3QgZ2VvbG9jYXRp
b25JRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBTdHJpbmcgb3JpZ2luSWRlbnRpZmllcik7
CiAKICNpZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkKQEAgLTIwMjEsNyArMjAzNyw3
IEBAIHByaXZhdGU6CiAjZW5kaWYKIAogI2lmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQot
ICAgIHZvaWQgZmluZFBsdWdpbihjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCB1aW50MzJfdCBwcm9j
ZXNzVHlwZSwgY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcsIGNvbnN0IFN0cmluZyYgZnJhbWVVUkxT
dHJpbmcsIGNvbnN0IFN0cmluZyYgcGFnZVVSTFN0cmluZywgYm9vbCBhbGxvd09ubHlBcHBsaWNh
dGlvblBsdWdpbnMsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkZpbmRQbHVnaW46OkRlbGF5ZWRS
ZXBseSYmKTsKKyAgICB2b2lkIGZpbmRQbHVnaW4oY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgdWlu
dDMyX3QgcHJvY2Vzc1R5cGUsIGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nLCBjb25zdCBTdHJpbmcm
IGZyYW1lVVJMU3RyaW5nLCBjb25zdCBTdHJpbmcmIHBhZ2VVUkxTdHJpbmcsIGJvb2wgYWxsb3dP
bmx5QXBwbGljYXRpb25QbHVnaW5zLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpGaW5kUGx1Z2lu
RGVsYXllZFJlcGx5JiYpOwogI2VuZGlmCiAKICNpZiBVU0UoUVVJQ0tfTE9PSykKQEAgLTIwNTgs
NyArMjA3NCw3IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHN0YXJ0VVJMU2NoZW1lVGFzayhVUkxT
Y2hlbWVUYXNrUGFyYW1ldGVycyYmKTsKICAgICB2b2lkIHN0b3BVUkxTY2hlbWVUYXNrKHVpbnQ2
NF90IGhhbmRsZXJJZGVudGlmaWVyLCB1aW50NjRfdCB0YXNrSWRlbnRpZmllcik7Ci0gICAgdm9p
ZCBsb2FkU3luY2hyb25vdXNVUkxTY2hlbWVUYXNrKFVSTFNjaGVtZVRhc2tQYXJhbWV0ZXJzJiYs
IE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkxvYWRTeW5jaHJvbm91c1VSTFNjaGVtZVRhc2s6OkRl
bGF5ZWRSZXBseSYmKTsKKyAgICB2b2lkIGxvYWRTeW5jaHJvbm91c1VSTFNjaGVtZVRhc2soVVJM
U2NoZW1lVGFza1BhcmFtZXRlcnMmJiwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6TG9hZFN5bmNo
cm9ub3VzVVJMU2NoZW1lVGFza0RlbGF5ZWRSZXBseSYmKTsKIAogICAgIGJvb2wgY2hlY2tVUkxS
ZWNlaXZlZEZyb21DdXJyZW50T3JQcmV2aW91c1dlYlByb2Nlc3MoV2ViUHJvY2Vzc1Byb3h5Jiwg
Y29uc3QgU3RyaW5nJik7CiAgICAgYm9vbCBjaGVja1VSTFJlY2VpdmVkRnJvbUN1cnJlbnRPclBy
ZXZpb3VzV2ViUHJvY2VzcyhXZWJQcm9jZXNzUHJveHkmLCBjb25zdCBVUkwmKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAppbmRleCAxM2JhMTk1YjY2NjJlODgz
ODM3ZjMyYzcwZWU1ZGRjMGFiNmI4ZGExLi4wMzdkMjIyOTQyZjZhNDAwMDhhYTg0ZDk5YjMzNzFh
NjIxOWIxYzg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNz
UG9vbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3Bw
CkBAIC03Nyw2ICs3Nyw3IEBACiAjaW5jbHVkZSAiV2ViUHJvY2Vzc01lc3NhZ2VzLmgiCiAjaW5j
bHVkZSAiV2ViUHJvY2Vzc1Bvb2xNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NQcm94
eS5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3NQcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2Vi
c2l0ZURhdGFTdG9yZS5oIgogI2luY2x1ZGUgIldlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzLmgi
CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNDSW5saW5lcy5oPgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKaW5kZXggNzdkNWFlNTcxM2Y5NGMxMjlkM2MzY2I5M2Fj
Y2ZmZWI2OGFiMzBiYS4uY2RkNjhkNjc3NTViYTI2OTk5M2M5NDEwMjdiNjVmNjc4MTY1YjFjMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCkBAIC0zODEsOSArMzgx
LDkgQEAgcHVibGljOgogICAgIC8vIE5ldHdvcmsgUHJvY2VzcyBNYW5hZ2VtZW50CiAgICAgTmV0
d29ya1Byb2Nlc3NQcm94eSYgZW5zdXJlTmV0d29ya1Byb2Nlc3MoV2Vic2l0ZURhdGFTdG9yZSog
d2l0aFdlYnNpdGVEYXRhU3RvcmUgPSBudWxscHRyKTsKICAgICBOZXR3b3JrUHJvY2Vzc1Byb3h5
KiBuZXR3b3JrUHJvY2VzcygpIHsgcmV0dXJuIG1fbmV0d29ya1Byb2Nlc3MuZ2V0KCk7IH0KLSAg
ICB2b2lkIG5ldHdvcmtQcm9jZXNzQ3Jhc2hlZChOZXR3b3JrUHJvY2Vzc1Byb3h5JiwgVmVjdG9y
PHN0ZDo6cGFpcjxSZWZQdHI8V2ViUHJvY2Vzc1Byb3h5PiwgTWVzc2FnZXM6OldlYlByb2Nlc3NQ
cm94eTo6R2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpEZWxheWVkUmVwbHk+PiYmKTsKKyAg
ICB2b2lkIG5ldHdvcmtQcm9jZXNzQ3Jhc2hlZChOZXR3b3JrUHJvY2Vzc1Byb3h5JiwgVmVjdG9y
PHN0ZDo6cGFpcjxSZWZQdHI8V2ViUHJvY2Vzc1Byb3h5PiwgTWVzc2FnZXM6OldlYlByb2Nlc3NQ
cm94eTo6R2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uRGVsYXllZFJlcGx5Pj4mJik7CiAKLSAg
ICB2b2lkIGdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbihXZWJQcm9jZXNzUHJveHkmLCBNZXNz
YWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OkRlbGF5
ZWRSZXBseSYmKTsKKyAgICB2b2lkIGdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbihXZWJQcm9j
ZXNzUHJveHkmLCBNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXROZXR3b3JrUHJvY2Vzc0Nv
bm5lY3Rpb25EZWxheWVkUmVwbHkmJik7CiAKICAgICBib29sIGlzU2VydmljZVdvcmtlclBhZ2VJ
RChXZWJQYWdlUHJveHlJZGVudGlmaWVyKSBjb25zdDsKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JL
RVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHku
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCmluZGV4IDhhNDdl
ODEzZmY4ZmQ2MTkxNThjN2FlYzY2ZmUwYWFhYzAwMWVkOTguLjdkNzQ2NThjZDFhYjQ0YTc4Njk2
OGU4M2Y0ZjQ5YWIzNTkwZDc1NjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlByb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQcm94eS5oCkBAIC0zOCw3ICszOCw3IEBACiAjaW5jbHVkZSAiVmlzaWJsZVdlYlBhZ2VDb3Vu
dGVyLmgiCiAjaW5jbHVkZSAiV2ViQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIgogI2luY2x1ZGUg
IldlYlBhZ2VQcm94eUlkZW50aWZpZXIuaCIKLSNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHlNZXNz
YWdlcy5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3NQcm94eU1lc3NhZ2VzUmVwbGllcy5oIgogI2lu
Y2x1ZGUgPFdlYkNvcmUvRnJhbWVJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdl
SWRlbnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUHJvY2Vzc0lkZW50aWZpZXIuaD4KQEAg
LTYxLDYgKzYxLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgRGVmZXJyYWJsZU9uZVNo
b3RUaW1lcjsKIGNsYXNzIFJlc291cmNlUmVxdWVzdDsKIHN0cnVjdCBQbHVnaW5JbmZvOworc3Ry
dWN0IFByZXdhcm1JbmZvcm1hdGlvbjsKIHN0cnVjdCBTZWN1cml0eU9yaWdpbkRhdGE7CiB9CiAK
QEAgLTgwLDYgKzgxLDcgQEAgY2xhc3MgV2ViUHJvY2Vzc1Bvb2w7CiBjbGFzcyBXZWJVc2VyQ29u
dGVudENvbnRyb2xsZXJQcm94eTsKIGNsYXNzIFdlYnNpdGVEYXRhU3RvcmU7CiBlbnVtIGNsYXNz
IFdlYnNpdGVEYXRhVHlwZTsKK3N0cnVjdCBCYWNrRm9yd2FyZExpc3RJdGVtU3RhdGU7CiBzdHJ1
Y3QgVXNlck1lc3NhZ2U7CiBzdHJ1Y3QgV2ViTmF2aWdhdGlvbkRhdGFTdG9yZTsKIHN0cnVjdCBX
ZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOwpAQCAtMzgwLDEyICszODIsMTIgQEAgcHJpdmF0ZToK
ICAgICB2b2lkIGdldFBsdWdpbnMoYm9vbCByZWZyZXNoLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KFZlY3RvcjxXZWJDb3JlOjpQbHVnaW5JbmZvPiYmIHBsdWdpbnMsIFZlY3RvcjxXZWJDb3JlOjpQ
bHVnaW5JbmZvPiYmIGFwcGxpY2F0aW9uUGx1Z2lucywgT3B0aW9uYWw8VmVjdG9yPFdlYkNvcmU6
OlN1cHBvcnRlZFBsdWdpbklkZW50aWZpZXI+PiYmKT4mJik7CiAjZW5kaWYgLy8gRU5BQkxFKE5F
VFNDQVBFX1BMVUdJTl9BUEkpCiAjaWYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCi0gICAg
dm9pZCBnZXRQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbih1aW50NjRfdCBwbHVnaW5Qcm9jZXNzVG9r
ZW4sIE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldFBsdWdpblByb2Nlc3NDb25uZWN0aW9u
OjpEZWxheWVkUmVwbHkmJik7CisgICAgdm9pZCBnZXRQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbih1
aW50NjRfdCBwbHVnaW5Qcm9jZXNzVG9rZW4sIE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6Okdl
dFBsdWdpblByb2Nlc3NDb25uZWN0aW9uRGVsYXllZFJlcGx5JiYpOwogI2VuZGlmCiAgICAgdm9p
ZCBhZGRQbHVnSW5BdXRvU3RhcnRPcmlnaW5IYXNoKFN0cmluZyYmIHBhZ2VPcmlnaW4sIHVpbnQz
Ml90IGhhc2gpOwogICAgIHZvaWQgcGx1Z0luRGlkUmVjZWl2ZVVzZXJJbnRlcmFjdGlvbih1aW50
MzJfdCBoYXNoKTsKICAgICAKLSAgICB2b2lkIGdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbihN
ZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OkRl
bGF5ZWRSZXBseSYmKTsKKyAgICB2b2lkIGdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbihNZXNz
YWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25EZWxheWVk
UmVwbHkmJik7CiAKICAgICBib29sIHBsYXRmb3JtSXNCZWluZ0RlYnVnZ2VkKCkgY29uc3Q7CiAg
ICAgYm9vbCBzaG91bGRBbGxvd05vblZhbGlkSW5qZWN0ZWRDb2RlKCkgY29uc3Q7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5tbSBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3Lm1tCmluZGV4IDYyMWVhOTM2Yjg4
NzM0YzlmMmIxYjFjOTAzZGNhOTQzODYyNDY1M2YuLjk1ZWFlNWNiYTBiOTg5ZjFkODMzNDU2NDRj
ZTQ0OGM0MTA5NGE5MjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9X
S0NvbnRlbnRWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRl
bnRWaWV3Lm1tCkBAIC00OSw2ICs0OSw3IEBACiAjaW1wb3J0ICJXZWJGcmFtZVByb3h5LmgiCiAj
aW1wb3J0ICJXZWJLaXQySW5pdGlhbGl6ZS5oIgogI2ltcG9ydCAiV2ViUGFnZUdyb3VwLmgiCisj
aW1wb3J0ICJXZWJQYWdlUHJveHlNZXNzYWdlcy5oIgogI2ltcG9ydCAiV2ViUHJvY2Vzc1Bvb2wu
aCIKICNpbXBvcnQgIl9XS0ZyYW1lSGFuZGxlSW50ZXJuYWwuaCIKICNpbXBvcnQgIl9XS1dlYlZp
ZXdQcmludEZvcm1hdHRlckludGVybmFsLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQppbmRleCBiZGE2Y2NhNGM1
MTY2ZTIyYmMxZjZiYjE1ZWRjZTIzZjNkZWVjZGRkLi4wNDlkNjFjYzJlNjVjNTJiMDFiMDljMzYw
NDFjODg4NDUxMGNkYWZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3Mv
V0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KQEAgLTc2LDYgKzc2LDcgQEAKICNpbXBv
cnQgIldlYkV2ZW50LmgiCiAjaW1wb3J0ICJXZWJJT1NFdmVudEZhY3RvcnkuaCIKICNpbXBvcnQg
IldlYlBhZ2VNZXNzYWdlcy5oIgorI2ltcG9ydCAiV2ViUGFnZVByb3h5TWVzc2FnZXMuaCIKICNp
bXBvcnQgIldlYlByb2Nlc3NQcm94eS5oIgogI2ltcG9ydCAiX1dLQWN0aXZhdGVkRWxlbWVudElu
Zm9JbnRlcm5hbC5oIgogI2ltcG9ydCAiX1dLRWxlbWVudEFjdGlvbi5oIgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVh
UHJveHkubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvVGlsZWRDb3JlQW5pbWF0aW9u
RHJhd2luZ0FyZWFQcm94eS5tbQppbmRleCBjYTdiNmM1MTM4MTM1YWQzMGMyNjhiYTA1NTI4ZjIw
YWI5ODMyYTg4Li4xMThlNTgwMDMxOTAxODkzMmM5OTFjNjFjOGEwMTkyYmNlMmRmYjI4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJh
d2luZ0FyZWFQcm94eS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvVGlsZWRD
b3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94eS5tbQpAQCAtMzMsNiArMzMsNyBAQAogI2ltcG9y
dCAiRHJhd2luZ0FyZWFQcm94eU1lc3NhZ2VzLmgiCiAjaW1wb3J0ICJMYXllclRyZWVDb250ZXh0
LmgiCiAjaW1wb3J0ICJXZWJQYWdlUHJveHkuaCIKKyNpbXBvcnQgIldlYlBhZ2VQcm94eU1lc3Nh
Z2VzLmgiCiAjaW1wb3J0ICJXZWJQcm9jZXNzUHJveHkuaCIKICNpbXBvcnQgPHBhbC9zcGkvY29j
b2EvUXVhcnR6Q29yZVNQSS5oPgogI2ltcG9ydCA8d3RmL0Jsb2NrUHRyLmg+CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNl
L1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBkNTU3YzE3MGRi
NTM3YWJjZTYyNjJlZjg2MmQ5NGM4ZTlkYzU0NTM0Li5kNDI0ZmMxNDk1ZDU4OWI0ZWI0ODljY2Ey
MWJmYzhlNzMyYzk2ZjZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTQ1NDcsNyArNDU0Nyw2IEBACiAJCUMwQ0U3MkFDMTI0N0U3OEQw
MEJDMEVDNCAvKiBIYW5kbGVNZXNzYWdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEhhbmRsZU1lc3NhZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzBDRTcy
REIxMjQ3RThGNzAwQkMwRUM0IC8qIERlcml2ZWRTb3VyY2VzLm1ha2UgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBwYXRoID0gRGVyaXZlZFNvdXJjZXMubWFrZTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQzBDRTczMzYxMjQ3RjcwRTAwQkMwRUM0IC8qIGdlbmVyYXRlLW1lc3NhZ2UtcmVjZWl2ZXIu
cHkgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0LnNjcmlwdC5weXRob247IHBhdGggPSAiZ2VuZXJhdGUtbWVzc2Fn
ZS1yZWNlaXZlci5weSI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUMwQ0U3MzM3MTI0
N0Y3MEUwMEJDMEVDNCAvKiBnZW5lcmF0ZS1tZXNzYWdlcy1oZWFkZXIucHkgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0LnNjcmlwdC5weXRob247IHBhdGggPSAiZ2VuZXJhdGUtbWVzc2FnZXMtaGVhZGVyLnB5Ijsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzBFM0FBNDQxMjA5RTJCQTAwQTQ5RDAxIC8q
IE1vZHVsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNb2R1bGUuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzBFM0FBNDUxMjA5RTJCQTAwQTQ5RDAxIC8qIE1v
ZHVsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNb2R1bGUuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDMEUzQUE0ODEyMDlFNDUwMDBBNDlEMDEg
LyogTW9kdWxlQ0YuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTW9k
dWxlQ0YuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtOTAxMiw3ICs5MDExLDYg
QEAKIAkJCQkwRkMwODU2RTE4N0NFMEE5MDA3ODBEODYgLyogX19pbml0X18ucHkgKi8sCiAJCQkJ
NDE1Nzg1MzAyMTI3NkI2RjAwREQzODAwIC8qIGNvcHktd2ViY29udGVudC1yZXNvdXJjZXMtdG8t
cHJpdmF0ZS1oZWFkZXJzLnNoICovLAogCQkJCUMwQ0U3MzM2MTI0N0Y3MEUwMEJDMEVDNCAvKiBn
ZW5lcmF0ZS1tZXNzYWdlLXJlY2VpdmVyLnB5ICovLAotCQkJCUMwQ0U3MzM3MTI0N0Y3MEUwMEJD
MEVDNCAvKiBnZW5lcmF0ZS1tZXNzYWdlcy1oZWFkZXIucHkgKi8sCiAJCQkJN0NERTczQTExRjlE
QTQxNDAwMzkwMzEyIC8qIEdlbmVyYXRlUHJlZmVyZW5jZXMucmIgKi8sCiAJCQkJMEZDMDg1NkYx
ODdDRTBBOTAwNzgwRDg2IC8qIG1lc3NhZ2VzLnB5ICovLAogCQkJCTBGQzA4NTcwMTg3Q0UwQTkw
MDc4MEQ4NiAvKiBtb2RlbC5weSAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNw
cAppbmRleCA2MjIyODA4M2VmZTVjMWE5MzAyZjZlMzE3YjczY2RhNGFkODNmNjUwLi40YjRlMmVl
MjE2NzJmYmQ4Mzc0M2RlMDEyNDJmODBkODI0MTFjYTAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdl
ckNvbm5lY3Rpb24uY3BwCkBAIC00Myw2ICs0Myw3IEBACiAjaW5jbHVkZSAiV2ViUHJlZmVyZW5j
ZXNTdG9yZS5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNz
UG9vbE1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb25N
ZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbk1lc3Nh
Z2VzLmgiCiAjaW5jbHVkZSAiV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudC5oIgogI2lu
Y2x1ZGUgIldlYlNvY2tldFByb3ZpZGVyLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24u
aAppbmRleCAyNDc2MjVlZDk1YjUxZTNlZmRmYjVkOTY5ZDdjMGVmZDI5ZWZmYWRiLi5iZjhiNDdm
YmZkNmNhOGQ4MDU5ODc4YzA4MjVkODI5Yzc0YjU4OGM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJD
b25uZWN0aW9uLmgKQEAgLTMwLDcgKzMwLDcgQEAKICNpbmNsdWRlICJDb25uZWN0aW9uLmgiCiAj
aW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCiAjaW5jbHVkZSAiV2ViUGFnZVByb3h5SWRlbnRp
Zmllci5oIgotI2luY2x1ZGUgIldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uTWVzc2FnZXMu
aCIKKyNpbmNsdWRlICJXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbk1lc3NhZ2VzUmVwbGll
cy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvRW1wdHlGcmFtZUxvYWRlckNsaWVudC5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvU1dDb250ZXh0TWFuYWdlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2Vydmlj
ZVdvcmtlckNsaWVudERhdGEuaD4KQEAgLTg5LDcgKzg5LDcgQEAgcHJpdmF0ZToKICAgICB2b2lk
IGZpcmVBY3RpdmF0ZUV2ZW50KFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKTsKICAg
ICB2b2lkIHNvZnRVcGRhdGUoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIpOwogICAg
IHZvaWQgdGVybWluYXRlV29ya2VyKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKTsK
LSAgICB2b2lkIHN5bmNUZXJtaW5hdGVXb3JrZXIoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50
aWZpZXIsIE1lc3NhZ2VzOjpXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6U3luY1Rlcm1p
bmF0ZVdvcmtlcjo6RGVsYXllZFJlcGx5JiYpOworICAgIHZvaWQgc3luY1Rlcm1pbmF0ZVdvcmtl
cihXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgTWVzc2FnZXM6OldlYlNXQ29udGV4
dE1hbmFnZXJDb25uZWN0aW9uOjpTeW5jVGVybWluYXRlV29ya2VyRGVsYXllZFJlcGx5JiYpOwog
ICAgIHZvaWQgZmluZENsaWVudEJ5SWRlbnRpZmllckNvbXBsZXRlZCh1aW50NjRfdCByZXF1ZXN0
SWRlbnRpZmllciwgT3B0aW9uYWw8V2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudERhdGE+JiYs
IGJvb2wgaGFzU2VjdXJpdHlFcnJvcik7CiAgICAgdm9pZCBtYXRjaEFsbENvbXBsZXRlZCh1aW50
NjRfdCBtYXRjaEFsbFJlcXVlc3RJZGVudGlmaWVyLCBWZWN0b3I8V2ViQ29yZTo6U2VydmljZVdv
cmtlckNsaWVudERhdGE+JiYpOwogICAgIHZvaWQgY2xhaW1Db21wbGV0ZWQodWludDY0X3QgY2xh
aW1SZXF1ZXN0SWRlbnRpZmllcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmgKaW5kZXggYTYyMjRmMGE0MDY1YzI3N2RhZGE3ZDEwZDVmNzlhOGM1NzIwZDRlNy4u
OTQ2OGQzMTc2NWRmNTViNjhkYWRiMjZmODc0YTZiOTE3NGY4OWQ5ZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtNDgsOSArNDgsMTAgQEAKICNpbmNs
dWRlICJTaGFyZVNoZWV0Q2FsbGJhY2tJRC5oIgogI2luY2x1ZGUgIlNoYXJlZE1lbW9yeS5oIgog
I2luY2x1ZGUgIlN0b3JhZ2VOYW1lc3BhY2VJZGVudGlmaWVyLmgiCisjaW5jbHVkZSAiVHJhbnNh
Y3Rpb25JRC5oIgogI2luY2x1ZGUgIlVzZXJEYXRhLmgiCiAjaW5jbHVkZSAiV2ViQmFja0Zvcndh
cmRMaXN0UHJveHkuaCIKLSNpbmNsdWRlICJXZWJQYWdlTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJX
ZWJQYWdlTWVzc2FnZXNSZXBsaWVzLmgiCiAjaW5jbHVkZSAiV2ViVVJMU2NoZW1lSGFuZGxlci5o
IgogI2luY2x1ZGUgIldlYlVuZG9TdGVwSUQuaCIKICNpbmNsdWRlICJXZWJVc2VyQ29udGVudENv
bnRyb2xsZXIuaCIKQEAgLTEwMCw3ICsxMDEsNiBAQCB0eXBlZGVmIHN0cnVjdCBfQXRrT2JqZWN0
IEF0a09iamVjdDsKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAjaW5jbHVkZSAiR2VzdHVy
ZVR5cGVzLmgiCi0jaW5jbHVkZSAiV2ViUGFnZU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSA8V2ViQ29y
ZS9JbnRQb2ludEhhc2guaD4KICNpbmNsdWRlIDxXZWJDb3JlL1ZpZXdwb3J0Q29uZmlndXJhdGlv
bi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvV0tDb250ZW50T2JzZXJ2YXRpb24uaD4KQEAgLTE3NSw3
ICsxNzUsNiBAQCBjbGFzcyBSZXNvdXJjZVJlc3BvbnNlOwogY2xhc3MgU2VsZWN0aW9uUmVjdDsK
IGNsYXNzIFNoYXJlZEJ1ZmZlcjsKIGNsYXNzIFN1YnN0aXR1dGVEYXRhOwotY2xhc3MgU3ludGhl
dGljRWRpdGluZ0NvbW1hbmRUeXBlOwogY2xhc3MgVGV4dENoZWNraW5nUmVxdWVzdDsKIGNsYXNz
IFZpc2libGVQb3NpdGlvbjsKIApAQCAtMjU4LDEwICsyNTcsMTMgQEAgY2xhc3MgUmVtb3RlTGF5
ZXJUcmVlVHJhbnNhY3Rpb247CiAKIGVudW0gRmluZE9wdGlvbnMgOiB1aW50MTZfdDsKIGVudW0g
Y2xhc3MgRHJhZ0NvbnRyb2xsZXJBY3Rpb24gOiB1aW50OF90OworZW51bSBjbGFzcyBTeW50aGV0
aWNFZGl0aW5nQ29tbWFuZFR5cGUgOiB1aW50OF90OwogCiBzdHJ1Y3QgQXR0cmlidXRlZFN0cmlu
ZzsKIHN0cnVjdCBCYWNrRm9yd2FyZExpc3RJdGVtU3RhdGU7CiBzdHJ1Y3QgRGF0YURldGVjdGlv
blJlc3VsdDsKK3N0cnVjdCBEb2N1bWVudEVkaXRpbmdDb250ZXh0Oworc3RydWN0IERvY3VtZW50
RWRpdGluZ0NvbnRleHRSZXF1ZXN0Owogc3RydWN0IEVkaXRvclN0YXRlOwogc3RydWN0IEZvbnRJ
bmZvOwogc3RydWN0IEluc2VydFRleHRPcHRpb25zOwpAQCAtODc5LDcgKzg4MSw3IEBAIHB1Ymxp
YzoKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICB2b2lkIGNvbXB1dGVQ
YWdlc0ZvclByaW50aW5nQW5kRHJhd1RvUERGKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29u
c3QgUHJpbnRJbmZvJiwgQ2FsbGJhY2tJRCwgTWVzc2FnZXM6OldlYlBhZ2U6OkNvbXB1dGVQYWdl
c0ZvclByaW50aW5nQW5kRHJhd1RvUERGOjpEZWxheWVkUmVwbHkmJik7CisgICAgdm9pZCBjb21w
dXRlUGFnZXNGb3JQcmludGluZ0FuZERyYXdUb1BERihXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIs
IGNvbnN0IFByaW50SW5mbyYsIENhbGxiYWNrSUQsIE1lc3NhZ2VzOjpXZWJQYWdlOjpDb21wdXRl
UGFnZXNGb3JQcmludGluZ0FuZERyYXdUb1BERkRlbGF5ZWRSZXBseSYmKTsKICNlbmRpZgogCiAg
ICAgdm9pZCBkcmF3VG9QREYoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBPcHRpb25h
bDxXZWJDb3JlOjpGbG9hdFJlY3Q+JiwgQ2FsbGJhY2tJRCk7CkBAIC0xMzA3LDcgKzEzMDksNyBA
QCBwcml2YXRlOgogICAgIGJvb2wgZXhlY3V0ZUtleXByZXNzQ29tbWFuZHNJbnRlcm5hbChjb25z
dCBWZWN0b3I8V2ViQ29yZTo6S2V5cHJlc3NDb21tYW5kPiYsIFdlYkNvcmU6OktleWJvYXJkRXZl
bnQqKTsKICNlbmRpZgogCi0gICAgdm9pZCB0ZXN0UHJvY2Vzc0luY29taW5nU3luY01lc3NhZ2Vz
V2hlbldhaXRpbmdGb3JTeW5jUmVwbHkoTWVzc2FnZXM6OldlYlBhZ2U6OlRlc3RQcm9jZXNzSW5j
b21pbmdTeW5jTWVzc2FnZXNXaGVuV2FpdGluZ0ZvclN5bmNSZXBseTo6RGVsYXllZFJlcGx5JiYp
OworICAgIHZvaWQgdGVzdFByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9y
U3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJQYWdlOjpUZXN0UHJvY2Vzc0luY29taW5nU3luY01lc3Nh
Z2VzV2hlbldhaXRpbmdGb3JTeW5jUmVwbHlEZWxheWVkUmVwbHkmJik7CiAKICAgICB2b2lkIHVw
ZGF0ZURyYXdpbmdBcmVhTGF5ZXJUcmVlRnJlZXplU3RhdGUoKTsKICAgICBib29sIG1hcmtMYXll
cnNWb2xhdGlsZUltbWVkaWF0ZWx5SWZQb3NzaWJsZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0gYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQppbmRleCA2NjI2YzI0MzE0ZDVl
MWU5ODgwYmNhMGY4Y2Y2NDIwM2VlZGFkNTZiLi42NjczZDYzYjgyYWFjZWY2MzhkNDY1Mjc5YjJj
OWQwMmIyOTAxMmY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9pb3MvV2ViUGFnZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9pb3MvV2ViUGFnZUlPUy5tbQpAQCAtNTUsNiArNTUsNyBAQAogI2ltcG9ydCAiV2ViQ29yZUFy
Z3VtZW50Q29kZXJzLmgiCiAjaW1wb3J0ICJXZWJGcmFtZS5oIgogI2ltcG9ydCAiV2ViSW1hZ2Uu
aCIKKyNpbXBvcnQgIldlYlBhZ2VNZXNzYWdlcy5oIgogI2ltcG9ydCAiV2ViUGFnZVByb3h5TWVz
c2FnZXMuaCIKICNpbXBvcnQgIldlYlByZXZpZXdMb2FkZXJDbGllbnQuaCIKICNpbXBvcnQgIldl
YlByb2Nlc3MuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9W
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2Ev
VmlkZW9GdWxsc2NyZWVuTWFuYWdlci5oCmluZGV4IGNiYmJhY2QwNGIzYzQ1Y2MzYjhlYTg5NzQw
MjY3YWYwNjBlYThlNmIuLmQwNDAxNjE1NDEzMmZjNGJiODgwYTk1OTM4ODU4MzFmM2NhNTlhNjIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9WaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1ZpZGVvRnVs
bHNjcmVlbk1hbmFnZXIuaApAQCAtMjksNyArMjksNyBAQAogCiAjaW5jbHVkZSAiQ29ubmVjdGlv
bi5oIgogI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgotI2luY2x1ZGUgIlZpZGVvRnVsbHNj
cmVlbk1hbmFnZXJNZXNzYWdlcy5oIgorI2luY2x1ZGUgIlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJN
ZXNzYWdlc1JlcGxpZXMuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0V2ZW50TGlzdGVuZXIuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL0hUTUxNZWRpYUVsZW1lbnRFbnVtcy5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvUGxhdGZvcm1DQUxheWVyLmg+CkBAIC0xNTQsNyArMTU0LDcgQEAgcHJvdGVjdGVkOgogICAg
IHZvaWQgc2V0VmlkZW9MYXllckdyYXZpdHlFbnVtKHVpbnQ2NF90IGNvbnRleHRJZCwgdW5zaWdu
ZWQgZ3Jhdml0eSk7CiAgICAgdm9pZCBmdWxsc2NyZWVuTW9kZUNoYW5nZWQodWludDY0X3QgY29u
dGV4dElkLCBXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1v
ZGUpOwogICAgIHZvaWQgZnVsbHNjcmVlbk1heVJldHVyblRvSW5saW5lKHVpbnQ2NF90IGNvbnRl
eHRJZCwgYm9vbCBpc1BhZ2VWaXNpYmxlKTsKLSAgICB2b2lkIHJlcXVlc3RSb3V0ZVNoYXJpbmdQ
b2xpY3lBbmRDb250ZXh0VUlEKHVpbnQ2NF90IGNvbnRleHRJZCwgTWVzc2FnZXM6OlZpZGVvRnVs
bHNjcmVlbk1hbmFnZXI6OlJlcXVlc3RSb3V0ZVNoYXJpbmdQb2xpY3lBbmRDb250ZXh0VUlEOjpB
c3luY1JlcGx5JiYpOworICAgIHZvaWQgcmVxdWVzdFJvdXRlU2hhcmluZ1BvbGljeUFuZENvbnRl
eHRVSUQodWludDY0X3QgY29udGV4dElkLCBNZXNzYWdlczo6VmlkZW9GdWxsc2NyZWVuTWFuYWdl
cjo6UmVxdWVzdFJvdXRlU2hhcmluZ1BvbGljeUFuZENvbnRleHRVSURBc3luY1JlcGx5JiYpOwog
CiAgICAgV2ViUGFnZSogbV9wYWdlOwogICAgIFJlZjxQbGF5YmFja1Nlc3Npb25NYW5hZ2VyPiBt
X3BsYXliYWNrU2Vzc2lvbk1hbmFnZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvY29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tbSBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1tCmluZGV4IDUzMDAwNzMzMGI4
ODQyY2UxMDZiNWQ1ZjkzODlhMzU5NjNhMmM2ZDcuLmFjNDAzMmFmMDc5NjdiYTYzMTZlZGIyYmI3
ZGI2YWVkYzIwMTVhZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2Nv
YS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1tCkBAIC0zMSw2ICszMSw3IEBACiAjaW1w
b3J0ICJMYXllckhvc3RpbmdDb250ZXh0LmgiCiAjaW1wb3J0ICJMb2dnaW5nLmgiCiAjaW1wb3J0
ICJQbGF5YmFja1Nlc3Npb25NYW5hZ2VyLmgiCisjaW1wb3J0ICJWaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyTWVzc2FnZXMuaCIKICNpbXBvcnQgIlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eU1lc3Nh
Z2VzLmgiCiAjaW1wb3J0ICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKICNpbXBvcnQgIldlYlBh
Z2UuaCIK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>381522</attachid>
            <date>2019-10-22 01:06:46 -0700</date>
            <delta_ts>2019-10-22 10:09:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-203074-20191022010644.patch</filename>
            <type>text/plain</type>
            <size>91511</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUxNDE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGQ5MTNjMTc0ZjNmOTgxMmYx
MDliYTNlNGYzZjcwODVjYWMwODE4OTMuLmU1ODdkM2UwYmNjMmUzOWZhMzI4NmViN2FiOTRlMjQx
ODk4Y2U0MTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsODIgQEAKKzIwMTktMTAtMjEgIFRpbSBIb3J0
b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgTWFrZSBpdCBwb3NzaWJs
ZSB0byBub3QgaW5jbHVkZSBJUEMgTWVzc2FnZXMgaGVhZGVycyBpbiBvdGhlciBoZWFkZXJzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDMwNzQKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWtlIHRoZSBN
ZXNzYWdlcyBnZW5lcmF0b3IgZ2VuZXJhdGUgYSBuZXcgLU1lc3NhZ2VzUmVwbGllcy5oIGZpbGUs
IHdoaWNoCisgICAgICAgIG9ubHkgaW5jbHVkZXMgaGVhZGVycyBmb3IgYW5kIGRlZmluaXRpb25z
IG9mIERlbGF5ZWRSZXBseS9Bc3luY1JlcGx5IHR5cGVzLAorICAgICAgICB3aGljaCBuZWVkIHRv
IGJlIG1lbnRpb25lZCBhcyBhcmd1bWVudHMgdG8gbWVzc2FnZSBoYW5kZXIgbWV0aG9kcywgYW5k
CisgICAgICAgIHRodXMgbXVzdCBiZSBhdmFpbGFibGUgaW4gdmFyaW91cyBoZWFkZXJzIHRocm91
Z2hvdXQgdGhlIHByb2plY3QuCisKKyAgICAgICAgSW4gb3JkZXIgdG8gZG8gdGhpcywgd2UgaGF2
ZSB0byBkZS1uZXN0IHRoZW0gZnJvbSB0aGUgcHJpbWFyeSBtZXNzYWdlCisgICAgICAgIGNsYXNz
LCBidXQgd2UgdGhlbiAndXNpbmcnIHRoZW0gYmFjayBpbnRvIHBsYWNlIGluc2lkZSB0aGUgbWVz
c2FnZSBjbGFzcworICAgICAgICBzbyB0aGF0IG1vc3Qgb2YgdGhlIGNvZGUgZG9lc24ndCBuZWVk
IHRvIGNoYW5nZS4KKworICAgICAgICBUaGlzIGhlbHBzIHRvIHdpbGRseSBkZWNyZWFzZSB0aGUg
aGVhZGVyIGxvYWQgb2YgV2ViUGFnZS5oIGFuZCBXZWJQYWdlUHJveHkuaCwKKyAgICAgICAgZXNw
ZWNpYWxseSwgYmVjYXVzZSB0aGUgbnVtYmVyIG9mIGhlYWRlcnMgbmVlZGVkIGZvciB0eXBlcyBp
biB0aGVpciByZXBsaWVzCisgICAgICAgIGlzIG11Y2ggc21hbGxlciB0aGFuIHRoZSBudW1iZXIg
bmVlZGVkIGZvciBhbGwgbWVzc2FnZSByZWNlaXZlcnMuCisKKyAgICAgICAgQWxzbywgb25seSBp
bnZva2UgdGhlIE1lc3NhZ2VzIGdlbmVyYXRvciBvbmNlIHBlciBzb3VyY2UgZmlsZSwgYW5kCisg
ICAgICAgIG9ubHkgcGFyc2UgdGhlIHNvdXJjZSBmaWxlIG9uY2UsIGdlbmVyYXRpbmcgYWxsIHRo
cmVlIG91dHB1dCBmaWxlcworICAgICAgICBpbiBvbmUgaW52b2NhdGlvbi4KKworICAgICAgICBB
bmQgdGhlbiBjbGVhbiB1cCBhbGwgdGhlIG1pc3NpbmcgaW5kaXJlY3QgaW5jbHVkZXMgdGhhdCB3
ZSBsb3N0IGJ5IGRvaW5nIHRoaXMuCisKKyAgICAgICAgQWxsLWluLWFsbCB0aGlzIGlzIHdvcnRo
IHJvdWdobHkgOCUgb24gdGhlIFdlYktpdDIgQnVpbGQgVGltZSBCZW5jaG1hcmsuCisKKyAgICAg
ICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1pbnB1dC54Y2Zp
bGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwOgor
ICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNw
cDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cy5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHA6
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmg6CisgICAg
ICAgICogUGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250cm9sbGVyUHJveHkuY3BwOgorICAgICAgICAq
IFBsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5Lmg6CisgICAgICAgICogUGx1Z2lu
UHJvY2Vzcy9XZWJQcm9jZXNzQ29ubmVjdGlvbi5oOgorICAgICAgICAqIFNjcmlwdHMvTWFrZWZp
bGU6CisgICAgICAgICogU2NyaXB0cy9nZW5lcmF0ZS1tZXNzYWdlLXJlY2VpdmVyLnB5OgorICAg
ICAgICAobWFpbik6CisgICAgICAgICogU2NyaXB0cy9nZW5lcmF0ZS1tZXNzYWdlcy1oZWFkZXIu
cHk6IFJlbW92ZWQuCisgICAgICAgICogU2NyaXB0cy93ZWJraXQvTGVnYWN5TWVzc2FnZVJlY2Vp
dmVyLWV4cGVjdGVkLmNwcDoKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdC9MZWdhY3lNZXNzYWdl
cy1leHBlY3RlZC5oOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0L0xlZ2FjeU1lc3NhZ2VzUmVw
bGllcy1leHBlY3RlZC5oOiBBZGRlZC4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdC9NZXNzYWdl
UmVjZWl2ZXItZXhwZWN0ZWQuY3BwOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0L01lc3NhZ2VS
ZWNlaXZlclN1cGVyY2xhc3MtZXhwZWN0ZWQuY3BwOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0
L01lc3NhZ2VzLWV4cGVjdGVkLmg6CisgICAgICAgICogU2NyaXB0cy93ZWJraXQvTWVzc2FnZXNS
ZXBsaWVzLWV4cGVjdGVkLmg6IEFkZGVkLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0L01lc3Nh
Z2VzUmVwbGllc1N1cGVyY2xhc3NSZXBsaWVzLWV4cGVjdGVkLmg6IEFkZGVkLgorICAgICAgICAq
IFNjcmlwdHMvd2Via2l0L01lc3NhZ2VzU3VwZXJjbGFzcy1leHBlY3RlZC5oOgorICAgICAgICAq
IFNjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5OgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9V
c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29j
b2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9E
b3dubG9hZHMvRG93bmxvYWRQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05l
dHdvcmtQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdv
cmtQcm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9j
ZXNzTWFuYWdlci5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vz
c01hbmFnZXIuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJv
eHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvU3VzcGVuZGVkUGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHA6CisgICAgICAgICogVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQb29sLmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94
eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5tbToKKyAgICAgICAg
KiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbToKKyAgICAgICAgKiBV
SVByb2Nlc3MvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHkubW06CisgICAg
ICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcDoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uaDoKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbToKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29h
L1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1Zp
ZGVvRnVsbHNjcmVlbk1hbmFnZXIubW06CisKIDIwMTktMTAtMjEgIE1hdHQgTGV3aXMgIDxqbGV3
aXMzQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMjUxMzgx
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJL
aXQvQ01ha2VMaXN0cy50eHQKaW5kZXggMWUwNmU2MjYwY2QyZDk0ZTI0ODA4ZWI1N2YwNDI3MGYx
MzUzYTQxOC4uZWZjYzJlODVhNDQwOTllMzhlOGZjMTk3OTUyNjdkNDY0YzA2NzQ5MiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L0NN
YWtlTGlzdHMudHh0CkBAIC0zMDksMjEgKzMwOSwyMCBAQCBzZXQoV2ViS2l0X0FVVE9NQVRJT05f
UFJPVE9DT0xfR0VORVJBVE9SX0VYVFJBX0ZMQUdTCiBXRUJLSVRfRlJBTUVXT1JLX0RFQ0xBUkUo
V2ViS2l0KQogV0VCS0lUX0lOQ0xVREVfQ09ORklHX0ZJTEVTX0lGX0VYSVNUUygpCiAKLSMgSGVs
cGVyIG1hY3JvIHdoaWNoIHdyYXBzIGdlbmVyYXRlLW1lc3NhZ2UtcmVjZWl2ZXIucHkgYW5kIGdl
bmVyYXRlLW1lc3NhZ2UtaGVhZGVyLnB5IHNjcmlwdHMKKyMgSGVscGVyIG1hY3JvIHdoaWNoIHdy
YXBzIHRoZSBnZW5lcmF0ZS1tZXNzYWdlLXJlY2VpdmVyLnB5IHNjcmlwdAogIyAgIF9vdXRwdXRf
c291cmNlIGlzIGEgbGlzdCBuYW1lIHdoaWNoIHdpbGwgY29udGFpbiBnZW5lcmF0ZWQgc291cmNl
cy4oZWcuIFdlYktpdF9TT1VSQ0VTKQogIyAgIF9pbnB1dF9maWxlcyBhcmUgbWVzc2FnZXMuaW4g
ZmlsZXMgdG8gZ2VuZXJhdGUuCiBtYWNybyhHRU5FUkFURV9NRVNTQUdFX1NPVVJDRVMgX291dHB1
dF9zb3VyY2UgX2lucHV0X2ZpbGVzKQogICAgIGZvcmVhY2ggKF9maWxlICR7X2lucHV0X2ZpbGVz
fSkKICAgICAgICAgZ2V0X2ZpbGVuYW1lX2NvbXBvbmVudChfbmFtZSAke19maWxlfSBOQU1FX1dF
KQogICAgICAgICBhZGRfY3VzdG9tX2NvbW1hbmQoCi0gICAgICAgICAgICBPVVRQVVQgJHtXZWJL
aXRfREVSSVZFRF9TT1VSQ0VTX0RJUn0vJHtfbmFtZX1NZXNzYWdlUmVjZWl2ZXIuY3BwICR7V2Vi
S2l0X0RFUklWRURfU09VUkNFU19ESVJ9LyR7X25hbWV9TWVzc2FnZXMuaAorICAgICAgICAgICAg
T1VUUFVUICR7V2ViS2l0X0RFUklWRURfU09VUkNFU19ESVJ9LyR7X25hbWV9TWVzc2FnZVJlY2Vp
dmVyLmNwcCAke1dlYktpdF9ERVJJVkVEX1NPVVJDRVNfRElSfS8ke19uYW1lfU1lc3NhZ2VzLmgg
JHtXZWJLaXRfREVSSVZFRF9TT1VSQ0VTX0RJUn0vJHtfbmFtZX1NZXNzYWdlc1JlcGxpZXMuaAog
ICAgICAgICAgICAgTUFJTl9ERVBFTkRFTkNZICR7X2ZpbGV9CiAgICAgICAgICAgICBERVBFTkRT
ICR7V0VCS0lUX0RJUn0vU2NyaXB0cy93ZWJraXQvX19pbml0X18ucHkKICAgICAgICAgICAgICAg
ICAgICAgJHtXRUJLSVRfRElSfS9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQogICAgICAgICAg
ICAgICAgICAgICAke1dFQktJVF9ESVJ9L1NjcmlwdHMvd2Via2l0L21vZGVsLnB5CiAgICAgICAg
ICAgICAgICAgICAgICR7V0VCS0lUX0RJUn0vU2NyaXB0cy93ZWJraXQvcGFyc2VyLnB5Ci0gICAg
ICAgICAgICBDT01NQU5EICR7UFlUSE9OX0VYRUNVVEFCTEV9ICR7V0VCS0lUX0RJUn0vU2NyaXB0
cy9nZW5lcmF0ZS1tZXNzYWdlLXJlY2VpdmVyLnB5ICR7X2ZpbGV9ID4gJHtXZWJLaXRfREVSSVZF
RF9TT1VSQ0VTX0RJUn0vJHtfbmFtZX1NZXNzYWdlUmVjZWl2ZXIuY3BwCi0gICAgICAgICAgICBD
T01NQU5EICR7UFlUSE9OX0VYRUNVVEFCTEV9ICR7V0VCS0lUX0RJUn0vU2NyaXB0cy9nZW5lcmF0
ZS1tZXNzYWdlcy1oZWFkZXIucHkgJHtfZmlsZX0gPiAke1dlYktpdF9ERVJJVkVEX1NPVVJDRVNf
RElSfS8ke19uYW1lfU1lc3NhZ2VzLmgKKyAgICAgICAgICAgIENPTU1BTkQgJHtQWVRIT05fRVhF
Q1VUQUJMRX0gJHtXRUJLSVRfRElSfS9TY3JpcHRzL2dlbmVyYXRlLW1lc3NhZ2UtcmVjZWl2ZXIu
cHkgJHtfZmlsZX0gLS1pbXBsZW1lbnRhdGlvbiAke1dlYktpdF9ERVJJVkVEX1NPVVJDRVNfRElS
fS8ke19uYW1lfU1lc3NhZ2VSZWNlaXZlci5jcHAgLS1oZWFkZXIgJHtXZWJLaXRfREVSSVZFRF9T
T1VSQ0VTX0RJUn0vJHtfbmFtZX1NZXNzYWdlcy5oIC0tcmVwbHktaGVhZGVyICR7V2ViS2l0X0RF
UklWRURfU09VUkNFU19ESVJ9LyR7X25hbWV9TWVzc2FnZXNSZXBsaWVzLmgKICAgICAgICAgICAg
IFdPUktJTkdfRElSRUNUT1JZICR7V0VCS0lUX0RJUn0KICAgICAgICAgICAgIFZFUkJBVElNKQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxp
c3QgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKaW5kZXgg
ZjFhZGFkNjI2OWQwMTJjYWIxZGQ3MmI1OTA1MjU4ZWY5MDlmOTVhNi4uYzg0NTRiYmU0ZWQwYjJj
MjNlN2M0Y2VlMzM5MDg4MWJmNjgyNmFmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9EZXJp
dmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNv
dXJjZXMtaW5wdXQueGNmaWxlbGlzdApAQCAtNDYsNyArNDYsNiBAQCAkKFBST0pFQ1RfRElSKS9T
Y3JpcHRzL1ByZWZlcmVuY2VzVGVtcGxhdGVzL1dlYlByZWZlcmVuY2VzS2V5cy5oLmVyYgogJChQ
Uk9KRUNUX0RJUikvU2NyaXB0cy9QcmVmZXJlbmNlc1RlbXBsYXRlcy9XZWJQcmVmZXJlbmNlc1N0
b3JlRGVmYXVsdHNNYXAuY3BwLmVyYgogJChQUk9KRUNUX0RJUikvU2NyaXB0cy9nZW5lcmF0ZS1o
dHRwcy11cGdyYWRlLWRhdGFiYXNlLnNoCiAkKFBST0pFQ1RfRElSKS9TY3JpcHRzL2dlbmVyYXRl
LW1lc3NhZ2UtcmVjZWl2ZXIucHkKLSQoUFJPSkVDVF9ESVIpL1NjcmlwdHMvZ2VuZXJhdGUtbWVz
c2FnZXMtaGVhZGVyLnB5CiAkKFBST0pFQ1RfRElSKS9TY3JpcHRzL3dlYmtpdC9fX2luaXRfXy5w
eQogJChQUk9KRUNUX0RJUikvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKICQoUFJPSkVDVF9E
SVIpL1NjcmlwdHMvd2Via2l0L21vZGVsLnB5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rl
cml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5k
ZXggYzM5YzI5NzU1Njc2ZTJhNjUwOGZhN2ZlNDBkOTY4MTI1NGFmNzZlMC4uMjMxNzE1YTVmOTBj
ZjBjOGY4MDNmNzQ3ZGQxNTkwNDYzZDVhN2I2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9E
ZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFr
ZQpAQCAtMTg5LDcgKzE4OSw2IEBAIE1FU1NBR0VfUkVDRUlWRVJTID0gXAogCiBTQ1JJUFRTID0g
XAogICAgICQoV2ViS2l0MikvU2NyaXB0cy9nZW5lcmF0ZS1tZXNzYWdlLXJlY2VpdmVyLnB5IFwK
LSAgICAkKFdlYktpdDIpL1NjcmlwdHMvZ2VuZXJhdGUtbWVzc2FnZXMtaGVhZGVyLnB5IFwKICAg
ICAkKFdlYktpdDIpL1NjcmlwdHMvd2Via2l0L19faW5pdF9fLnB5IFwKICAgICAkKFdlYktpdDIp
L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5IFwKICAgICAkKFdlYktpdDIpL1NjcmlwdHMvd2Vi
a2l0L21vZGVsLnB5IFwKQEAgLTIwNiwxNSArMjA1LDEyIEBAIEhFQURFUl9GTEFHUyA9ICQoc2hl
bGwgZWNobyAkKEJVSUxUX1BST0RVQ1RTX0RJUikgJChIRUFERVJfU0VBUkNIX1BBVEhTKSAkKFNZ
U1RFCiBhbGwgOiBcCiAgICAgJChNRVNTQUdFX1JFQ0VJVkVSUzolPSVNZXNzYWdlUmVjZWl2ZXIu
Y3BwKSBcCiAgICAgJChNRVNTQUdFX1JFQ0VJVkVSUzolPSVNZXNzYWdlcy5oKSBcCisgICAgJChN
RVNTQUdFX1JFQ0VJVkVSUzolPSVNZXNzYWdlc1JlcGxpZXMuaCkgXAogIwogCi0lTWVzc2FnZVJl
Y2VpdmVyLmNwcCA6ICUubWVzc2FnZXMuaW4gJChTQ1JJUFRTKQotCUBlY2hvIEdlbmVyYXRpbmcg
bWVzc2FnZSByZWNlaXZlciBmb3IgJCouLi4KLQlAcHl0aG9uICQoV2ViS2l0MikvU2NyaXB0cy9n
ZW5lcmF0ZS1tZXNzYWdlLXJlY2VpdmVyLnB5ICQ8ID4gJEAKLQotJU1lc3NhZ2VzLmggOiAlLm1l
c3NhZ2VzLmluICQoU0NSSVBUUykKLQlAZWNobyBHZW5lcmF0aW5nIG1lc3NhZ2VzIGhlYWRlciBm
b3IgJCouLi4KLQlAcHl0aG9uICQoV2ViS2l0MikvU2NyaXB0cy9nZW5lcmF0ZS1tZXNzYWdlcy1o
ZWFkZXIucHkgJDwgPiAkQAorJU1lc3NhZ2VSZWNlaXZlci5jcHAgJU1lc3NhZ2VzLmggJU1lc3Nh
Z2VzUmVwbGllcy5oIDogJS5tZXNzYWdlcy5pbiAkKFNDUklQVFMpCisJQGVjaG8gR2VuZXJhdGlu
ZyBtZXNzYWdlcyByZWNlaXZlciBmb3IgJCouLi4KKwlAcHl0aG9uICQoV2ViS2l0MikvU2NyaXB0
cy9nZW5lcmF0ZS1tZXNzYWdlLXJlY2VpdmVyLnB5ICQ8IC0taW1wbGVtZW50YXRpb24gJCpNZXNz
YWdlUmVjZWl2ZXIuY3BwIC0taGVhZGVyICQqTWVzc2FnZXMuaCAtLXJlcGx5LWhlYWRlciAkKk1l
c3NhZ2VzUmVwbGllcy5oCiAKIFRFWFRfUFJFUFJPQ0VTU09SX0ZMQUdTPS1FIC1QIC13CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAKaW5kZXggMWRi
NGVjMjQ5MWQ2NjE3ZWNjOTRmYWRlMmU0ZTA3MmJmOWY5YjY5MC4uZTlkMDhlZTk1ZTc0MTRiYzlm
MzRjNDI1ZDM4ZDU5OGRlYzczZmNiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NTdG9yZS5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJBUElEaWN0
aW9uYXJ5LmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNz
LmgiCisjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NQcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAi
TmV0d29ya1Nlc3Npb24uaCIKICNpbmNsdWRlICJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJh
c2VTdG9yZS5oIgogI2luY2x1ZGUgIlJlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZS5o
IgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVj
dGlvblRvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAppbmRleCBjMzU3YWE2MjYyY2Y2MzJiOTZlNmY2
N2Y3OGY4MjdkYTZhNDYzYzEzLi5iOGQzZjk5YTAxZDc2Y2UxOTBiMTM4YWFlMWVmMmNjNWZhOTVl
N2VlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcApAQCAtMzEsNiArMzEsNyBAQAogI2lu
Y2x1ZGUgIkRhdGFSZWZlcmVuY2UuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAi
TmV0d29ya0NhY2hlLmgiCisjaW5jbHVkZSAiTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3NN
ZXNzYWdlcy5oIgogI2luY2x1ZGUgIk5ldHdvcmtNRE5TUmVnaXN0ZXJNZXNzYWdlcy5oIgogI2lu
Y2x1ZGUgIk5ldHdvcmtQcm9jZXNzLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NDb25uZWN0
aW9uTWVzc2FnZXMuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAppbmRleCBhMDJhMWMzYjk5YmVk
NTc5NzlmNWQ3ZDU2NzM2NzNiNjExYThlZWFhLi45N2IyNzQ0ZWQ2MDQzNmY0NzQ2NmIzNGNjYTll
NjNjMjU1NDNlNzcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCkBAIC0yOSwxMCArMjksMTIg
QEAKICNpbmNsdWRlICJDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiRG93bmxvYWRJRC5oIgogI2lu
Y2x1ZGUgIk5ldHdvcmtBY3Rpdml0eVRyYWNrZXIuaCIKLSNpbmNsdWRlICJOZXR3b3JrQ29ubmVj
dGlvblRvV2ViUHJvY2Vzc01lc3NhZ2VzLmgiCisjaW5jbHVkZSAiTmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3NNZXNzYWdlc1JlcGxpZXMuaCIKICNpbmNsdWRlICJOZXR3b3JrTUROU1JlZ2lz
dGVyLmgiCiAjaW5jbHVkZSAiTmV0d29ya1JUQ1Byb3ZpZGVyLmgiCiAjaW5jbHVkZSAiTmV0d29y
a1Jlc291cmNlTG9hZE1hcC5oIgorI2luY2x1ZGUgIlNhbmRib3hFeHRlbnNpb24uaCIKKyNpbmNs
dWRlICJXZWJQYWdlUHJveHlJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiV2ViUGF5bWVudENvb3Jk
aW5hdG9yUHJveHkuaCIKICNpbmNsdWRlICJXZWJSZXNvdXJjZUxvYWRPYnNlcnZlci5oIgogI2lu
Y2x1ZGUgPFdlYkNvcmUvRnJhbWVJZGVudGlmaWVyLmg+CkBAIC01MCw2ICs1Miw3IEBAIGNsYXNz
IFNlc3Npb25JRDsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgQmxvYkRhdGFGaWxlUmVm
ZXJlbmNlOworY2xhc3MgQmxvYlBhcnQ7CiBjbGFzcyBCbG9iUmVnaXN0cnlJbXBsOwogY2xhc3Mg
UmVzb3VyY2VFcnJvcjsKIGNsYXNzIFJlc291cmNlUmVxdWVzdDsKQEAgLTY0LDYgKzY3LDcgQEAg
bmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIE5ldHdvcmtQcm9jZXNzOwogY2xhc3MgTmV0d29y
a1Jlc291cmNlTG9hZGVyOworY2xhc3MgTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnM7CiBj
bGFzcyBOZXR3b3JrU2Vzc2lvbjsKIGNsYXNzIE5ldHdvcmtTb2NrZXRDaGFubmVsOwogY2xhc3Mg
TmV0d29ya1NvY2tldFN0cmVhbTsKQEAgLTE3Nyw4ICsxODEsOCBAQCBwcml2YXRlOgogICAgIHZv
aWQgZGlkUmVjZWl2ZVN5bmNOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzc01lc3NhZ2UoSVBD
OjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rl
cj4mKTsKIAogICAgIHZvaWQgc2NoZWR1bGVSZXNvdXJjZUxvYWQoTmV0d29ya1Jlc291cmNlTG9h
ZFBhcmFtZXRlcnMmJik7Ci0gICAgdm9pZCBwZXJmb3JtU3luY2hyb25vdXNMb2FkKE5ldHdvcmtS
ZXNvdXJjZUxvYWRQYXJhbWV0ZXJzJiYsIE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzczo6UGVyZm9ybVN5bmNocm9ub3VzTG9hZDo6RGVsYXllZFJlcGx5JiYpOwotICAgIHZv
aWQgdGVzdFByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5
KFdlYlBhZ2VQcm94eUlkZW50aWZpZXIsIE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzczo6VGVzdFByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yU3lu
Y1JlcGx5OjpEZWxheWVkUmVwbHkmJik7CisgICAgdm9pZCBwZXJmb3JtU3luY2hyb25vdXNMb2Fk
KE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzJiYsIE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVj
dGlvblRvV2ViUHJvY2Vzczo6UGVyZm9ybVN5bmNocm9ub3VzTG9hZERlbGF5ZWRSZXBseSYmKTsK
KyAgICB2b2lkIHRlc3RQcm9jZXNzSW5jb21pbmdTeW5jTWVzc2FnZXNXaGVuV2FpdGluZ0ZvclN5
bmNSZXBseShXZWJQYWdlUHJveHlJZGVudGlmaWVyLCBNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3M6OlRlc3RQcm9jZXNzSW5jb21pbmdTeW5jTWVzc2FnZXNXaGVuV2FpdGlu
Z0ZvclN5bmNSZXBseURlbGF5ZWRSZXBseSYmKTsKICAgICB2b2lkIGxvYWRQaW5nKE5ldHdvcmtS
ZXNvdXJjZUxvYWRQYXJhbWV0ZXJzJiYpOwogICAgIHZvaWQgcHJlZmV0Y2hETlMoY29uc3QgU3Ry
aW5nJik7CiAgICAgdm9pZCBwcmVjb25uZWN0VG8odWludDY0X3QgcHJlY29ubmVjdGlvbklkZW50
aWZpZXIsIE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzJiYpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4
IDRlM2MwMWUyNzAyYmQzNTAwM2E1MjUxNGRkYzE3Y2VjMzhiOTZkYWIuLmZmZmU1ZDA0NmI1MzRk
ZTA0N2M4MzY1YmI2MGY5NTNmMzcxZGVlZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAKQEAgLTMxLDYgKzMxLDcg
QEAKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTmV0d29ya0NhY2hlLmgiCiAjaW5j
bHVkZSAiTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCIKKyNpbmNsdWRlICJOZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzc01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiTmV0d29ya0xvYWQu
aCIKICNpbmNsdWRlICJOZXR3b3JrTG9hZENoZWNrZXIuaCIKICNpbmNsdWRlICJOZXR3b3JrUHJv
Y2Vzcy5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UmVzb3VyY2VMb2FkZXIuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jl
c291cmNlTG9hZGVyLmgKaW5kZXggOGQxNzllM2ViNDE2M2UxODk4YjVlMWRhMjdiMmU4NWNjOGIz
ZDU1NC4uNjZiMjU2MDA1MTZhODc5NjJmNzhkMjM4NjJhYzUwN2RhN2Q3ZTYzMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5o
CkBAIC0yOSw3ICsyOSw3IEBACiAjaW5jbHVkZSAiTWVzc2FnZVNlbmRlci5oIgogI2luY2x1ZGUg
Ik5ldHdvcmtDYWNoZS5oIgogI2luY2x1ZGUgIk5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
LmgiCi0jaW5jbHVkZSAiTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlcy5oIgor
I2luY2x1ZGUgIk5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzTWVzc2FnZXNSZXBsaWVzLmgi
CiAjaW5jbHVkZSAiTmV0d29ya0xvYWRDbGllbnQuaCIKICNpbmNsdWRlICJOZXR3b3JrUmVzb3Vy
Y2VMb2FkUGFyYW1ldGVycy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQWRDbGlja0F0dHJpYnV0aW9u
Lmg+CkBAIC02NSw3ICs2NSw3IEBAIGNsYXNzIE5ldHdvcmtSZXNvdXJjZUxvYWRlciBmaW5hbAog
ICAgICwgcHVibGljIFdlYkNvcmU6OkNvbnRlbnRTZWN1cml0eVBvbGljeUNsaWVudAogICAgICwg
cHVibGljIENhbk1ha2VXZWFrUHRyPE5ldHdvcmtSZXNvdXJjZUxvYWRlcj4gewogcHVibGljOgot
ICAgIHN0YXRpYyBSZWY8TmV0d29ya1Jlc291cmNlTG9hZGVyPiBjcmVhdGUoTmV0d29ya1Jlc291
cmNlTG9hZFBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzLCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2VzcyYgY29ubmVjdGlvbiwgTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
OjpQZXJmb3JtU3luY2hyb25vdXNMb2FkOjpEZWxheWVkUmVwbHkmJiByZXBseSA9IG51bGxwdHIp
CisgICAgc3RhdGljIFJlZjxOZXR3b3JrUmVzb3VyY2VMb2FkZXI+IGNyZWF0ZShOZXR3b3JrUmVz
b3VyY2VMb2FkUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMsIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzJiBjb25uZWN0aW9uLCBNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3M6OlBlcmZvcm1TeW5jaHJvbm91c0xvYWREZWxheWVkUmVwbHkmJiByZXBseSA9IG51bGxwdHIp
CiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBOZXR3b3JrUmVzb3VyY2VMb2Fk
ZXIoV1RGTW92ZShwYXJhbWV0ZXJzKSwgY29ubmVjdGlvbiwgV1RGTW92ZShyZXBseSkpKTsKICAg
ICB9CkBAIC0xMzEsNyArMTMxLDcgQEAgcHVibGljOgogI2VuZGlmCiAKIHByaXZhdGU6Ci0gICAg
TmV0d29ya1Jlc291cmNlTG9hZGVyKE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzJiYsIE5l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiwgTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9u
VG9XZWJQcm9jZXNzOjpQZXJmb3JtU3luY2hyb25vdXNMb2FkOjpEZWxheWVkUmVwbHkmJik7Cisg
ICAgTmV0d29ya1Jlc291cmNlTG9hZGVyKE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzJiYs
IE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiwgTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzOjpQZXJmb3JtU3luY2hyb25vdXNMb2FkRGVsYXllZFJlcGx5JiYpOwog
CiAgICAgLy8gSVBDOjpNZXNzYWdlU2VuZGVyCiAgICAgSVBDOjpDb25uZWN0aW9uKiBtZXNzYWdl
U2VuZGVyQ29ubmVjdGlvbigpIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9QbHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1BsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5LmNwcAppbmRleCBiNjQyMTQ0
YmQxYWViOTcwYzZmYzY3ODkxODg0MDJmZGFhODcxOTk3Li5lYTcxMWQzMmUyNTVmNzNjMzc1MmY0
MjlmMGVhNzIyMTViOWM5MzNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsdWdpblByb2Nl
c3MvUGx1Z2luQ29udHJvbGxlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsdWdpblBy
b2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5LmNwcApAQCAtNDAsNiArNDAsNyBAQAogI2luY2x1
ZGUgIlNoYXJlYWJsZUJpdG1hcC5oIgogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5o
IgogI2luY2x1ZGUgIldlYlByb2Nlc3NDb25uZWN0aW9uLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vz
c0Nvbm5lY3Rpb25NZXNzYWdlcy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvR3JhcGhpY3NDb250ZXh0
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9IVFRQSGVhZGVyTWFwLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9JZGVudGlmaWVyUmVwLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsdWdpblByb2Nl
c3MvUGx1Z2luQ29udHJvbGxlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1BsdWdpblByb2Nlc3Mv
UGx1Z2luQ29udHJvbGxlclByb3h5LmgKaW5kZXggYjk4Y2E5NGJjOWVmYzIzYjJlZDgxOGE1Yjc4
NDMzNzIzMTdlOWM2Ny4uYWQ0ZmNkOWQ4Y2NmNDJmMTJlZTQ4OGUwMTM0NmM2MTlhNzAxYjhkMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQ
cm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250cm9sbGVy
UHJveHkuaApAQCAtMzAsOSArMzAsOCBAQAogI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKICNpbmNs
dWRlICJQbHVnaW4uaCIKICNpbmNsdWRlICJQbHVnaW5Db250cm9sbGVyLmgiCi0jaW5jbHVkZSAi
UGx1Z2luQ29udHJvbGxlclByb3h5TWVzc2FnZXMuaCIKICNpbmNsdWRlICJTaGFyZWFibGVCaXRt
YXAuaCIKLSNpbmNsdWRlICJXZWJQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VzLmgiCisjaW5jbHVk
ZSAiV2ViUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlc1JlcGxpZXMuaCIKICNpbmNsdWRlIDxXZWJD
b3JlL1NlY3VyaXR5T3JpZ2luLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Vc2VyQWN0aXZpdHkuaD4K
ICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KQEAgLTc1LDggKzc0LDggQEAgcHVibGljOgog
CiAgICAgYm9vbCBpc0luaXRpYWxpemluZygpIGNvbnN0IHsgcmV0dXJuIG1faXNJbml0aWFsaXpp
bmc7IH0KICAgICAKLSAgICB2b2lkIHNldEluaXRpYWxpemF0aW9uUmVwbHkoTWVzc2FnZXM6Oldl
YlByb2Nlc3NDb25uZWN0aW9uOjpDcmVhdGVQbHVnaW46OkRlbGF5ZWRSZXBseSYmKTsKLSAgICBN
ZXNzYWdlczo6V2ViUHJvY2Vzc0Nvbm5lY3Rpb246OkNyZWF0ZVBsdWdpbjo6RGVsYXllZFJlcGx5
IHRha2VJbml0aWFsaXphdGlvblJlcGx5KCk7CisgICAgdm9pZCBzZXRJbml0aWFsaXphdGlvblJl
cGx5KE1lc3NhZ2VzOjpXZWJQcm9jZXNzQ29ubmVjdGlvbjo6Q3JlYXRlUGx1Z2luRGVsYXllZFJl
cGx5JiYpOworICAgIE1lc3NhZ2VzOjpXZWJQcm9jZXNzQ29ubmVjdGlvbjo6Q3JlYXRlUGx1Z2lu
RGVsYXllZFJlcGx5IHRha2VJbml0aWFsaXphdGlvblJlcGx5KCk7CiAKIHByaXZhdGU6CiAgICAg
dm9pZCBzdGFydFBhaW50VGltZXIoKTsKQEAgLTE4NCw3ICsxODMsNyBAQCBwcml2YXRlOgogICAg
IGJvb2wgbV9pc1Zpc2libGU7CiAgICAgYm9vbCBtX2lzV2luZG93VmlzaWJsZTsKIAotICAgIE1l
c3NhZ2VzOjpXZWJQcm9jZXNzQ29ubmVjdGlvbjo6Q3JlYXRlUGx1Z2luOjpEZWxheWVkUmVwbHkg
bV9pbml0aWFsaXphdGlvblJlcGx5OworICAgIE1lc3NhZ2VzOjpXZWJQcm9jZXNzQ29ubmVjdGlv
bjo6Q3JlYXRlUGx1Z2luRGVsYXllZFJlcGx5IG1faW5pdGlhbGl6YXRpb25SZXBseTsKIAogICAg
IFJlZlB0cjxQbHVnaW4+IG1fcGx1Z2luOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1Bs
dWdpblByb2Nlc3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvUGx1Z2lu
UHJvY2Vzcy9XZWJQcm9jZXNzQ29ubmVjdGlvbi5oCmluZGV4IDNhMGE3YTg5NzllMzMxN2QzNzcy
NjhmOGU2OTAyNGVhMmQ2MmNhMzQuLmVmMjQyMTBhOWIwNGQ4ZThhMjczNGRkZjhjYzEyYWJiM2Mw
MzA3OTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGx1Z2luUHJvY2Vzcy9XZWJQcm9jZXNz
Q29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvUGx1Z2luUHJvY2Vzcy9XZWJQcm9jZXNz
Q29ubmVjdGlvbi5oCkBAIC0yOSw3ICsyOSw3IEBACiAKICNpbmNsdWRlICJDb25uZWN0aW9uLmgi
CiAjaW5jbHVkZSAiUGx1Z2luLmgiCi0jaW5jbHVkZSAiV2ViUHJvY2Vzc0Nvbm5lY3Rpb25NZXNz
YWdlcy5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXNSZXBsaWVzLmgi
CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgog
CkBAIC02OSw5ICs2OSw5IEBAIHByaXZhdGU6CiAgICAgLy8gTWVzc2FnZSBoYW5kbGVycy4KICAg
ICB2b2lkIGRpZFJlY2VpdmVXZWJQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2UoSVBDOjpDb25uZWN0
aW9uJiwgSVBDOjpEZWNvZGVyJik7CiAgICAgdm9pZCBkaWRSZWNlaXZlU3luY1dlYlByb2Nlc3ND
b25uZWN0aW9uTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImLCBzdGQ6OnVu
aXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYpOwotICAgIHZvaWQgY3JlYXRlUGx1Z2luKGNvbnN0IFBs
dWdpbkNyZWF0aW9uUGFyYW1ldGVycyYsIE1lc3NhZ2VzOjpXZWJQcm9jZXNzQ29ubmVjdGlvbjo6
Q3JlYXRlUGx1Z2luOjpEZWxheWVkUmVwbHkmJik7CisgICAgdm9pZCBjcmVhdGVQbHVnaW4oY29u
c3QgUGx1Z2luQ3JlYXRpb25QYXJhbWV0ZXJzJiwgTWVzc2FnZXM6OldlYlByb2Nlc3NDb25uZWN0
aW9uOjpDcmVhdGVQbHVnaW5EZWxheWVkUmVwbHkmJik7CiAgICAgdm9pZCBjcmVhdGVQbHVnaW5B
c3luY2hyb25vdXNseShjb25zdCBQbHVnaW5DcmVhdGlvblBhcmFtZXRlcnMmKTsKLSAgICB2b2lk
IGRlc3Ryb3lQbHVnaW4odWludDY0X3QgcGx1Z2luSW5zdGFuY2VJRCwgYm9vbCBhc3luY2hyb25v
dXNDcmVhdGlvbkluY29tcGxldGUsIE1lc3NhZ2VzOjpXZWJQcm9jZXNzQ29ubmVjdGlvbjo6RGVz
dHJveVBsdWdpbjo6RGVsYXllZFJlcGx5JiYpOworICAgIHZvaWQgZGVzdHJveVBsdWdpbih1aW50
NjRfdCBwbHVnaW5JbnN0YW5jZUlELCBib29sIGFzeW5jaHJvbm91c0NyZWF0aW9uSW5jb21wbGV0
ZSwgTWVzc2FnZXM6OldlYlByb2Nlc3NDb25uZWN0aW9uOjpEZXN0cm95UGx1Z2luRGVsYXllZFJl
cGx5JiYpOwogICAgIAogICAgIHZvaWQgY3JlYXRlUGx1Z2luSW50ZXJuYWwoY29uc3QgUGx1Z2lu
Q3JlYXRpb25QYXJhbWV0ZXJzJiwgYm9vbCYgcmVzdWx0LCBib29sJiB3YW50c1doZWVsRXZlbnRz
LCB1aW50MzJfdCYgcmVtb3RlTGF5ZXJDbGllbnRJRCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvU2NyaXB0cy9NYWtlZmlsZSBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy9NYWtlZmlsZQpp
bmRleCA2NTgyMGYyMzUzMDVhMjRhMTkwMjk0OTA2ZGEzODhmMTYzNWIxNmRlLi41NDMyYzgyMTdh
ZDJkYTdkZDI5MThhNmE2MmM3NWI0NDcwZTJjODZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1NjcmlwdHMvTWFrZWZpbGUKKysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL01ha2VmaWxlCkBA
IC0xLDggKzEsNSBAQAogYWxsOgotCXB5dGhvbiAuL2dlbmVyYXRlLW1lc3NhZ2VzLWhlYWRlci5w
eSB3ZWJraXQvdGVzdC1zdXBlcmNsYXNzLW1lc3NhZ2VzLmluID4gd2Via2l0L01lc3NhZ2VzU3Vw
ZXJjbGFzcy1leHBlY3RlZC5oCi0JcHl0aG9uIC4vZ2VuZXJhdGUtbWVzc2FnZXMtaGVhZGVyLnB5
IHdlYmtpdC90ZXN0LWxlZ2FjeS1tZXNzYWdlcy5pbiA+IHdlYmtpdC9MZWdhY3lNZXNzYWdlcy1l
eHBlY3RlZC5oCi0JcHl0aG9uIC4vZ2VuZXJhdGUtbWVzc2FnZXMtaGVhZGVyLnB5IHdlYmtpdC90
ZXN0LW1lc3NhZ2VzLmluID4gd2Via2l0L01lc3NhZ2VzLWV4cGVjdGVkLmgKLQlweXRob24gLi9n
ZW5lcmF0ZS1tZXNzYWdlLXJlY2VpdmVyLnB5IHdlYmtpdC90ZXN0LXN1cGVyY2xhc3MtbWVzc2Fn
ZXMuaW4gPiB3ZWJraXQvTWVzc2FnZVJlY2VpdmVyU3VwZXJjbGFzcy1leHBlY3RlZC5jcHAKLQlw
eXRob24gLi9nZW5lcmF0ZS1tZXNzYWdlLXJlY2VpdmVyLnB5IHdlYmtpdC90ZXN0LWxlZ2FjeS1t
ZXNzYWdlcy5pbiA+IHdlYmtpdC9MZWdhY3lNZXNzYWdlUmVjZWl2ZXItZXhwZWN0ZWQuY3BwCi0J
cHl0aG9uIC4vZ2VuZXJhdGUtbWVzc2FnZS1yZWNlaXZlci5weSB3ZWJraXQvdGVzdC1tZXNzYWdl
cy5pbiA+IHdlYmtpdC9NZXNzYWdlUmVjZWl2ZXItZXhwZWN0ZWQuY3BwCisJcHl0aG9uIC4vZ2Vu
ZXJhdGUtbWVzc2FnZS1yZWNlaXZlci5weSB3ZWJraXQvdGVzdC1zdXBlcmNsYXNzLW1lc3NhZ2Vz
LmluIC0taW1wbGVtZW50YXRpb24gd2Via2l0L01lc3NhZ2VSZWNlaXZlclN1cGVyY2xhc3MtZXhw
ZWN0ZWQuY3BwIC0taGVhZGVyIHdlYmtpdC9NZXNzYWdlc1N1cGVyY2xhc3MtZXhwZWN0ZWQuaCAt
LXJlcGx5LWhlYWRlciB3ZWJraXQvTWVzc2FnZXNSZXBsaWVzU3VwZXJjbGFzc1JlcGxpZXMtZXhw
ZWN0ZWQuaAorCXB5dGhvbiAuL2dlbmVyYXRlLW1lc3NhZ2UtcmVjZWl2ZXIucHkgd2Via2l0L3Rl
c3QtbGVnYWN5LW1lc3NhZ2VzLmluIC0taW1wbGVtZW50YXRpb24gd2Via2l0L0xlZ2FjeU1lc3Nh
Z2VSZWNlaXZlci1leHBlY3RlZC5jcHAgLS1oZWFkZXIgd2Via2l0L0xlZ2FjeU1lc3NhZ2VzLWV4
cGVjdGVkLmggLS1yZXBseS1oZWFkZXIgd2Via2l0L0xlZ2FjeU1lc3NhZ2VzUmVwbGllcy1leHBl
Y3RlZC5oCisJcHl0aG9uIC4vZ2VuZXJhdGUtbWVzc2FnZS1yZWNlaXZlci5weSB3ZWJraXQvdGVz
dC1tZXNzYWdlcy5pbiAtLWltcGxlbWVudGF0aW9uIHdlYmtpdC9NZXNzYWdlUmVjZWl2ZXItZXhw
ZWN0ZWQuY3BwIC0taGVhZGVyIHdlYmtpdC9NZXNzYWdlcy1leHBlY3RlZC5oIC0tcmVwbHktaGVh
ZGVyIHdlYmtpdC9NZXNzYWdlc1JlcGxpZXMtZXhwZWN0ZWQuaAogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1NjcmlwdHMvZ2VuZXJhdGUtbWVzc2FnZS1yZWNlaXZlci5weSBiL1NvdXJjZS9X
ZWJLaXQvU2NyaXB0cy9nZW5lcmF0ZS1tZXNzYWdlLXJlY2VpdmVyLnB5CmluZGV4IDY0MTNhOGJm
MzZmMTI3ZDRmODNmZmI0OWY5MWNkODhkMzcwMzAyYzIuLjM1ZTQwNTgyZTc5YTNmMGNlOTMzN2E4
NmQ0ZTA5MzM3ZmJhNDExZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy9nZW5l
cmF0ZS1tZXNzYWdlLXJlY2VpdmVyLnB5CisrKyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy9nZW5l
cmF0ZS1tZXNzYWdlLXJlY2VpdmVyLnB5CkBAIC0yMywxOCArMjMsMzQgQEAKICMgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KIAogZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCB3aXRoX3N0YXRlbWVudAoraW1wb3J0IGFyZ3Bh
cnNlCiBpbXBvcnQgc3lzCiAKIGltcG9ydCB3ZWJraXQubWVzc2FnZXMKK2ltcG9ydCB3ZWJraXQu
cGFyc2VyCiAKIAogZGVmIG1haW4oYXJndj1Ob25lKToKLSAgICBpZiBub3QgYXJndjoKLSAgICAg
ICAgYXJndiA9IHN5cy5hcmd2Ci0gICAgaW5wdXRfcGF0aCA9IGFyZ3ZbMV0KLSAgICB3aXRoIG9w
ZW4oaW5wdXRfcGF0aCkgYXMgaW5wdXRfZmlsZToKLSAgICAgICAgIyBQeXRob24gMywgY2hhbmdl
IHRvOiAgcHJpbnQod2Via2l0Lm1lc3NhZ2VzLmdlbmVyYXRlX21lc3NhZ2VfaGFuZGxlcihpbnB1
dF9maWxlKSwgZW5kPScnKQotICAgICAgICBzeXMuc3Rkb3V0LndyaXRlKHdlYmtpdC5tZXNzYWdl
cy5nZW5lcmF0ZV9tZXNzYWdlX2hhbmRsZXIoaW5wdXRfZmlsZSkpCisgICAgcGFyc2VyID0gYXJn
cGFyc2UuQXJndW1lbnRQYXJzZXIoKQorICAgIHBhcnNlci5hZGRfYXJndW1lbnQoJ3NvdXJjZScp
CisgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgnLS1pbXBsZW1lbnRhdGlvbicsIHJlcXVpcmVkPVRy
dWUpCisgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgnLS1oZWFkZXInLCByZXF1aXJlZD1UcnVlKQor
ICAgIHBhcnNlci5hZGRfYXJndW1lbnQoJy0tcmVwbHktaGVhZGVyJywgcmVxdWlyZWQ9VHJ1ZSkK
KworICAgIGFyZ3MgPSBwYXJzZXIucGFyc2VfYXJncygpCisKKyAgICB3aXRoIG9wZW4oYXJncy5z
b3VyY2UpIGFzIHNvdXJjZV9maWxlOgorICAgICAgICByZWNlaXZlciA9IHdlYmtpdC5wYXJzZXIu
cGFyc2Uoc291cmNlX2ZpbGUpCisKKyAgICB3aXRoIG9wZW4oYXJncy5pbXBsZW1lbnRhdGlvbiwg
IncrIikgYXMgaW1wbGVtZW50YXRpb25fb3V0cHV0OgorICAgICAgICBpbXBsZW1lbnRhdGlvbl9v
dXRwdXQud3JpdGUod2Via2l0Lm1lc3NhZ2VzLmdlbmVyYXRlX21lc3NhZ2VfaGFuZGxlcihyZWNl
aXZlcikpCisKKyAgICB3aXRoIG9wZW4oYXJncy5oZWFkZXIsICJ3KyIpIGFzIGhlYWRlcl9vdXRw
dXQ6CisgICAgICAgIGhlYWRlcl9vdXRwdXQud3JpdGUod2Via2l0Lm1lc3NhZ2VzLmdlbmVyYXRl
X21lc3NhZ2VzX2hlYWRlcihyZWNlaXZlcikpCisKKyAgICB3aXRoIG9wZW4oYXJncy5yZXBseV9o
ZWFkZXIsICJ3KyIpIGFzIHJlcGx5X2hlYWRlcl9vdXRwdXQ6CisgICAgICAgIHJlcGx5X2hlYWRl
cl9vdXRwdXQud3JpdGUod2Via2l0Lm1lc3NhZ2VzLmdlbmVyYXRlX21lc3NhZ2VzX3JlcGx5X2hl
YWRlcihyZWNlaXZlcikpCisKICAgICByZXR1cm4gMAogCiBpZiBfX25hbWVfXyA9PSAnX19tYWlu
X18nOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL2dlbmVyYXRlLW1lc3NhZ2Vz
LWhlYWRlci5weSBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy9nZW5lcmF0ZS1tZXNzYWdlcy1oZWFk
ZXIucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFkNzNhNTI4MzQ4MzA5YWViMjEw
OGI0NDE5NjM4NGEzNDdlYmM2NjYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9TY3JpcHRzL2dlbmVyYXRlLW1lc3NhZ2VzLWhlYWRl
ci5weQorKysgL2Rldi9udWxsCkBAIC0xLDQxICswLDAgQEAKLSMhL3Vzci9iaW4vZW52IHB5dGhv
bgotIwotIyBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0jIGFyZSBtZXQ6Ci0jIDEuICBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAot
IyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgotIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSMgICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECi0jIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0j
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUKLSMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKLSMgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAotIyBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUgotIyBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgotIyBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLAotIyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi1mcm9tIF9fZnV0
dXJlX18gaW1wb3J0IHdpdGhfc3RhdGVtZW50Ci1pbXBvcnQgc3lzCi0KLWltcG9ydCB3ZWJraXQu
bWVzc2FnZXMKLQotCi1kZWYgbWFpbihhcmd2PU5vbmUpOgotICAgIGlmIG5vdCBhcmd2OgotICAg
ICAgICBhcmd2ID0gc3lzLmFyZ3YKLSAgICBpbnB1dF9wYXRoID0gYXJndlsxXQotICAgIHdpdGgg
b3BlbihpbnB1dF9wYXRoKSBhcyBpbnB1dF9maWxlOgotICAgICAgICAjIFB5dGhvbiAzLCBjaGFu
Z2UgdG86ICBwcmludCh3ZWJraXQubWVzc2FnZXMuZ2VuZXJhdGVfbWVzc2FnZXNfaGVhZGVyKGlu
cHV0X2ZpbGUpLCBlbmQ9JycpCi0gICAgICAgIHN5cy5zdGRvdXQud3JpdGUod2Via2l0Lm1lc3Nh
Z2VzLmdlbmVyYXRlX21lc3NhZ2VzX2hlYWRlcihpbnB1dF9maWxlKSkKLSAgICByZXR1cm4gMAot
Ci1pZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgotICAgIHN5cy5leGl0KG1haW4oc3lzLmFyZ3Yp
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9MZWdhY3lNZXNzYWdl
UmVjZWl2ZXItZXhwZWN0ZWQuY3BwIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9MZWdh
Y3lNZXNzYWdlUmVjZWl2ZXItZXhwZWN0ZWQuY3BwCmluZGV4IGZlYTg1MzY3NTM1Njc3MjYyYzdm
NzI0MmY0OGNkOWFjODMwMGYwOTAuLmQwYjg2NWY3ZjczZGU1Y2YzOWUwOTUzZmZmYTgyMjcxNmQw
YWI5MDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvTGVnYWN5TWVz
c2FnZVJlY2VpdmVyLWV4cGVjdGVkLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Vi
a2l0L0xlZ2FjeU1lc3NhZ2VSZWNlaXZlci1leHBlY3RlZC5jcHAKQEAgLTEsNSArMSw1IEBACiAv
KgotICogQ29weXJpZ2h0IChDKSAyMDEwLTIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwLTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L0xlZ2FjeU1lc3NhZ2VzLWV4cGVjdGVkLmggYi9Tb3Vy
Y2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L0xlZ2FjeU1lc3NhZ2VzLWV4cGVjdGVkLmgKaW5kZXgg
ZmZkMTNkM2U4YzIwYzhiOWJkZThjMmJhMzE1MTk5MTE0YjdmYmFmYS4uNDlhOTExNzY4YzExMzc0
YWFiZGRkNjYyOGNlYWMwYmQ3NzViZjA0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TY3Jp
cHRzL3dlYmtpdC9MZWdhY3lNZXNzYWdlcy1leHBlY3RlZC5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
U2NyaXB0cy93ZWJraXQvTGVnYWN5TWVzc2FnZXMtZXhwZWN0ZWQuaApAQCAtMSw1ICsxLDUgQEAK
IC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAtMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI0LDYgKzI0LDcg
QEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJXZWJQYWdlTWVzc2FnZXNSZXBsaWVzLmgi
CiAjaWYgKEVOQUJMRShXRUJLSVQyKSAmJiAoTkVTVEVEX01BU1RFUl9DT05ESVRJT04gfHwgTUFT
VEVSX09SICYmIE1BU1RFUl9BTkQpKQogCiAjaW5jbHVkZSAiQXJndW1lbnRDb2RlcnMuaCIKQEAg
LTM2MCw4ICszNjEsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIElQQzo6U3RyaW5nUmVmZXJlbmNl
IG5hbWUoKSB7IHJldHVybiBJUEM6OlN0cmluZ1JlZmVyZW5jZSgiR2V0UGx1Z2luUHJvY2Vzc0Nv
bm5lY3Rpb24iKTsgfQogICAgIHN0YXRpYyBjb25zdCBib29sIGlzU3luYyA9IHRydWU7CiAKLSAg
ICB1c2luZyBEZWxheWVkUmVwbHkgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IElQQzo6
Q29ubmVjdGlvbjo6SGFuZGxlJiBjb25uZWN0aW9uSGFuZGxlKT47Ci0gICAgc3RhdGljIHZvaWQg
c2VuZChzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYmLCBJUEM6OkNvbm5lY3Rpb24mLCBj
b25zdCBJUEM6OkNvbm5lY3Rpb246OkhhbmRsZSYgY29ubmVjdGlvbkhhbmRsZSk7CisgICAgdXNp
bmcgRGVsYXllZFJlcGx5ID0gR2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25EZWxheWVkUmVwbHk7
ICAgIHN0YXRpYyB2b2lkIHNlbmQoc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mJiwgSVBD
OjpDb25uZWN0aW9uJiwgY29uc3QgSVBDOjpDb25uZWN0aW9uOjpIYW5kbGUmIGNvbm5lY3Rpb25I
YW5kbGUpOwogICAgIHVzaW5nIFJlcGx5ID0gc3RkOjp0dXBsZTxJUEM6OkNvbm5lY3Rpb246Okhh
bmRsZSY+OwogICAgIHVzaW5nIFJlcGx5QXJndW1lbnRzID0gc3RkOjp0dXBsZTxJUEM6OkNvbm5l
Y3Rpb246OkhhbmRsZT47CiAgICAgZXhwbGljaXQgR2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24o
Y29uc3QgU3RyaW5nJiBwbHVnaW5QYXRoKQpAQCAtMzg2LDggKzM4Niw3IEBAIHB1YmxpYzoKICAg
ICBzdGF0aWMgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbmFtZSgpIHsgcmV0dXJuIElQQzo6U3RyaW5n
UmVmZXJlbmNlKCJUZXN0TXVsdGlwbGVBdHRyaWJ1dGVzIik7IH0KICAgICBzdGF0aWMgY29uc3Qg
Ym9vbCBpc1N5bmMgPSB0cnVlOwogCi0gICAgdXNpbmcgRGVsYXllZFJlcGx5ID0gQ29tcGxldGlv
bkhhbmRsZXI8dm9pZCgpPjsKLSAgICBzdGF0aWMgdm9pZCBzZW5kKHN0ZDo6dW5pcXVlX3B0cjxJ
UEM6OkVuY29kZXI+JiYsIElQQzo6Q29ubmVjdGlvbiYpOworICAgIHVzaW5nIERlbGF5ZWRSZXBs
eSA9IFRlc3RNdWx0aXBsZUF0dHJpYnV0ZXNEZWxheWVkUmVwbHk7ICAgIHN0YXRpYyB2b2lkIHNl
bmQoc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mJiwgSVBDOjpDb25uZWN0aW9uJik7CiAg
ICAgdXNpbmcgUmVwbHkgPSBzdGQ6OnR1cGxlPD47CiAgICAgdXNpbmcgUmVwbHlBcmd1bWVudHMg
PSBzdGQ6OnR1cGxlPD47CiAgICAgY29uc3QgQXJndW1lbnRzJiBhcmd1bWVudHMoKSBjb25zdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9MZWdhY3lNZXNzYWdlc1Jl
cGxpZXMtZXhwZWN0ZWQuaCBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvTGVnYWN5TWVz
c2FnZXNSZXBsaWVzLWV4cGVjdGVkLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjcwY2VhZmQ5ZmE1ZWNkY2NmYTFj
MjFjMDk3YWU3NDY0OWM4ZTRmYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2Ny
aXB0cy93ZWJraXQvTGVnYWN5TWVzc2FnZXNSZXBsaWVzLWV4cGVjdGVkLmgKQEAgLTAsMCArMSw0
MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMC0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisgKiBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IKKyAqIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwKKyAqIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisgKiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUgorICogQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyAqIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgKEVOQUJMRShXRUJL
SVQyKSAmJiAoTkVTVEVEX01BU1RFUl9DT05ESVRJT04gfHwgTUFTVEVSX09SICYmIE1BU1RFUl9B
TkQpKQorCisjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+
CisKKworbmFtZXNwYWNlIE1lc3NhZ2VzIHsKK25hbWVzcGFjZSBXZWJQYWdlIHsKKwordXNpbmcg
R2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25EZWxheWVkUmVwbHkgPSBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKGNvbnN0IElQQzo6Q29ubmVjdGlvbjo6SGFuZGxlJiBjb25uZWN0aW9uSGFuZGxlKT47
CisKK3VzaW5nIFRlc3RNdWx0aXBsZUF0dHJpYnV0ZXNEZWxheWVkUmVwbHkgPSBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKCk+OworCit9IC8vIG5hbWVzcGFjZSBXZWJQYWdlCit9IC8vIG5hbWVzcGFj
ZSBNZXNzYWdlcworCisjZW5kaWYgLy8gKEVOQUJMRShXRUJLSVQyKSAmJiAoTkVTVEVEX01BU1RF
Ul9DT05ESVRJT04gfHwgTUFTVEVSX09SICYmIE1BU1RFUl9BTkQpKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9NZXNzYWdlUmVjZWl2ZXItZXhwZWN0ZWQuY3BwIGIv
U291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9NZXNzYWdlUmVjZWl2ZXItZXhwZWN0ZWQuY3Bw
CmluZGV4IGI1Y2NlMWJhNGY1NmE3Yzg3Mzg0YTIwMjFlNDlkODUyMmFmNjgyYzAuLmEyNWE5MTJm
NjNhYThjZDc2ZjgwYmI5YzFlNTVjMjkzODMwOGU2NmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvU2NyaXB0cy93ZWJraXQvTWVzc2FnZVJlY2VpdmVyLWV4cGVjdGVkLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L01lc3NhZ2VSZWNlaXZlci1leHBlY3RlZC5jcHAKQEAg
LTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEwLTIwMTggQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwLTIwMTkgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L01lc3NhZ2VSZWNlaXZlclN1
cGVyY2xhc3MtZXhwZWN0ZWQuY3BwIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9NZXNz
YWdlUmVjZWl2ZXJTdXBlcmNsYXNzLWV4cGVjdGVkLmNwcAppbmRleCAxNDIxMmQ1YzhhYTUxMjgw
NTYwMGFmYWM5YmEyNzdiZDUzMWZhMzcwLi5iNjExYjI1ZTA4NjJkYjU5Nzk3NTk3OGRmNDA0Yzhh
MzUxMjc0ODcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L01lc3Nh
Z2VSZWNlaXZlclN1cGVyY2xhc3MtZXhwZWN0ZWQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2Ny
aXB0cy93ZWJraXQvTWVzc2FnZVJlY2VpdmVyU3VwZXJjbGFzcy1leHBlY3RlZC5jcHAKQEAgLTEs
NSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEwLTIwMTggQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwLTIwMTkgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L01lc3NhZ2VzLWV4cGVjdGVkLmgg
Yi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L01lc3NhZ2VzLWV4cGVjdGVkLmgKaW5kZXgg
ZmZkMTNkM2U4YzIwYzhiOWJkZThjMmJhMzE1MTk5MTE0YjdmYmFmYS4uNDlhOTExNzY4YzExMzc0
YWFiZGRkNjYyOGNlYWMwYmQ3NzViZjA0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TY3Jp
cHRzL3dlYmtpdC9NZXNzYWdlcy1leHBlY3RlZC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0
cy93ZWJraXQvTWVzc2FnZXMtZXhwZWN0ZWQuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTAtMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTAtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI0LDYgKzI0LDcgQEAKIAogI3ByYWdt
YSBvbmNlCiAKKyNpbmNsdWRlICJXZWJQYWdlTWVzc2FnZXNSZXBsaWVzLmgiCiAjaWYgKEVOQUJM
RShXRUJLSVQyKSAmJiAoTkVTVEVEX01BU1RFUl9DT05ESVRJT04gfHwgTUFTVEVSX09SICYmIE1B
U1RFUl9BTkQpKQogCiAjaW5jbHVkZSAiQXJndW1lbnRDb2RlcnMuaCIKQEAgLTM2MCw4ICszNjEs
NyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIElQQzo6U3RyaW5nUmVmZXJlbmNlIG5hbWUoKSB7IHJl
dHVybiBJUEM6OlN0cmluZ1JlZmVyZW5jZSgiR2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24iKTsg
fQogICAgIHN0YXRpYyBjb25zdCBib29sIGlzU3luYyA9IHRydWU7CiAKLSAgICB1c2luZyBEZWxh
eWVkUmVwbHkgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IElQQzo6Q29ubmVjdGlvbjo6
SGFuZGxlJiBjb25uZWN0aW9uSGFuZGxlKT47Ci0gICAgc3RhdGljIHZvaWQgc2VuZChzdGQ6OnVu
aXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYmLCBJUEM6OkNvbm5lY3Rpb24mLCBjb25zdCBJUEM6OkNv
bm5lY3Rpb246OkhhbmRsZSYgY29ubmVjdGlvbkhhbmRsZSk7CisgICAgdXNpbmcgRGVsYXllZFJl
cGx5ID0gR2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25EZWxheWVkUmVwbHk7ICAgIHN0YXRpYyB2
b2lkIHNlbmQoc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mJiwgSVBDOjpDb25uZWN0aW9u
JiwgY29uc3QgSVBDOjpDb25uZWN0aW9uOjpIYW5kbGUmIGNvbm5lY3Rpb25IYW5kbGUpOwogICAg
IHVzaW5nIFJlcGx5ID0gc3RkOjp0dXBsZTxJUEM6OkNvbm5lY3Rpb246OkhhbmRsZSY+OwogICAg
IHVzaW5nIFJlcGx5QXJndW1lbnRzID0gc3RkOjp0dXBsZTxJUEM6OkNvbm5lY3Rpb246OkhhbmRs
ZT47CiAgICAgZXhwbGljaXQgR2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24oY29uc3QgU3RyaW5n
JiBwbHVnaW5QYXRoKQpAQCAtMzg2LDggKzM4Niw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgSVBD
OjpTdHJpbmdSZWZlcmVuY2UgbmFtZSgpIHsgcmV0dXJuIElQQzo6U3RyaW5nUmVmZXJlbmNlKCJU
ZXN0TXVsdGlwbGVBdHRyaWJ1dGVzIik7IH0KICAgICBzdGF0aWMgY29uc3QgYm9vbCBpc1N5bmMg
PSB0cnVlOwogCi0gICAgdXNpbmcgRGVsYXllZFJlcGx5ID0gQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZCgpPjsKLSAgICBzdGF0aWMgdm9pZCBzZW5kKHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+
JiYsIElQQzo6Q29ubmVjdGlvbiYpOworICAgIHVzaW5nIERlbGF5ZWRSZXBseSA9IFRlc3RNdWx0
aXBsZUF0dHJpYnV0ZXNEZWxheWVkUmVwbHk7ICAgIHN0YXRpYyB2b2lkIHNlbmQoc3RkOjp1bmlx
dWVfcHRyPElQQzo6RW5jb2Rlcj4mJiwgSVBDOjpDb25uZWN0aW9uJik7CiAgICAgdXNpbmcgUmVw
bHkgPSBzdGQ6OnR1cGxlPD47CiAgICAgdXNpbmcgUmVwbHlBcmd1bWVudHMgPSBzdGQ6OnR1cGxl
PD47CiAgICAgY29uc3QgQXJndW1lbnRzJiBhcmd1bWVudHMoKSBjb25zdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9NZXNzYWdlc1JlcGxpZXMtZXhwZWN0ZWQuaCBi
L1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvTWVzc2FnZXNSZXBsaWVzLWV4cGVjdGVkLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZjcwY2VhZmQ5ZmE1ZWNkY2NmYTFjMjFjMDk3YWU3NDY0OWM4ZTRmYwotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvTWVzc2FnZXNSZXBs
aWVzLWV4cGVjdGVkLmgKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MC0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycgQU5ECisgKiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyAqIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyAqIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SCisgKiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorICogQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwKKyAqIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFn
bWEgb25jZQorCisjaWYgKEVOQUJMRShXRUJLSVQyKSAmJiAoTkVTVEVEX01BU1RFUl9DT05ESVRJ
T04gfHwgTUFTVEVSX09SICYmIE1BU1RFUl9BTkQpKQorCisjaW5jbHVkZSAiQ29ubmVjdGlvbi5o
IgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisKKworbmFtZXNwYWNlIE1lc3NhZ2VzIHsKK25h
bWVzcGFjZSBXZWJQYWdlIHsKKwordXNpbmcgR2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25EZWxh
eWVkUmVwbHkgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IElQQzo6Q29ubmVjdGlvbjo6
SGFuZGxlJiBjb25uZWN0aW9uSGFuZGxlKT47CisKK3VzaW5nIFRlc3RNdWx0aXBsZUF0dHJpYnV0
ZXNEZWxheWVkUmVwbHkgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+OworCit9IC8vIG5hbWVz
cGFjZSBXZWJQYWdlCit9IC8vIG5hbWVzcGFjZSBNZXNzYWdlcworCisjZW5kaWYgLy8gKEVOQUJM
RShXRUJLSVQyKSAmJiAoTkVTVEVEX01BU1RFUl9DT05ESVRJT04gfHwgTUFTVEVSX09SICYmIE1B
U1RFUl9BTkQpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9NZXNz
YWdlc1JlcGxpZXNTdXBlcmNsYXNzUmVwbGllcy1leHBlY3RlZC5oIGIvU291cmNlL1dlYktpdC9T
Y3JpcHRzL3dlYmtpdC9NZXNzYWdlc1JlcGxpZXNTdXBlcmNsYXNzUmVwbGllcy1leHBlY3RlZC5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjNmYTYzZjNkNjQ4ZjVhMDE3MjdlMTVjMTRjYWYxMTI0NjAzMjYyMDgKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L01lc3NhZ2VzUmVw
bGllc1N1cGVyY2xhc3NSZXBsaWVzLWV4cGVjdGVkLmgKQEAgLTAsMCArMSw1MiBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMC0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisgKiBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyAqIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwKKyAqIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisgKiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorICog
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwKKyAqIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiVGVzdENsYXNzTmFtZS5oIgor
I2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CisKKwor
bmFtZXNwYWNlIE1lc3NhZ2VzIHsKK25hbWVzcGFjZSBXZWJQYWdlIHsKKworI2lmIEVOQUJMRShU
RVNUX0ZFQVRVUkUpCit1c2luZyBUZXN0QXN5bmNNZXNzYWdlQXN5bmNSZXBseSA9IENvbXBsZXRp
b25IYW5kbGVyPHZvaWQodWludDY0X3QgcmVzdWx0KT47CisjZW5kaWYKKworI2lmIEVOQUJMRShU
RVNUX0ZFQVRVUkUpCit1c2luZyBUZXN0QXN5bmNNZXNzYWdlV2l0aE5vQXJndW1lbnRzQXN5bmNS
ZXBseSA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT47CisjZW5kaWYKKworI2lmIEVOQUJMRShU
RVNUX0ZFQVRVUkUpCit1c2luZyBUZXN0QXN5bmNNZXNzYWdlV2l0aE11bHRpcGxlQXJndW1lbnRz
QXN5bmNSZXBseSA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCBmbGFnLCB1aW50NjRfdCB2
YWx1ZSk+OworI2VuZGlmCisKK3VzaW5nIFRlc3RTeW5jTWVzc2FnZURlbGF5ZWRSZXBseSA9IENv
bXBsZXRpb25IYW5kbGVyPHZvaWQodWludDhfdCByZXBseSk+OworCit1c2luZyBUZXN0U3luY2hy
b25vdXNNZXNzYWdlRGVsYXllZFJlcGx5ID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBP
cHRpb25hbDxXZWJLaXQ6OlRlc3RDbGFzc05hbWU+JiBvcHRpb25hbFJlcGx5KT47CisKK30gLy8g
bmFtZXNwYWNlIFdlYlBhZ2UKK30gLy8gbmFtZXNwYWNlIE1lc3NhZ2VzCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L01lc3NhZ2VzU3VwZXJjbGFzcy1leHBlY3RlZC5o
IGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9NZXNzYWdlc1N1cGVyY2xhc3MtZXhwZWN0
ZWQuaAppbmRleCAwZjZmY2MyNjFhMjkxMDUyMzgzN2QwZTY0MDIzNTVhZGU4NTVhYmY3Li4yY2E1
YTY0ZjRhNmU1ZjgyNGRmZmVkOGZlOWIwZTU5NGY1NWJhMTk2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1NjcmlwdHMvd2Via2l0L01lc3NhZ2VzU3VwZXJjbGFzcy1leHBlY3RlZC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvTWVzc2FnZXNTdXBlcmNsYXNzLWV4cGVjdGVk
LmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEwLTIwMTggQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwLTIwMTkgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCkBAIC0yNCw2ICsyNCw3IEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAiV2ViUGFn
ZU1lc3NhZ2VzUmVwbGllcy5oIgogI2luY2x1ZGUgIkFyZ3VtZW50Q29kZXJzLmgiCiAjaW5jbHVk
ZSAiQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIlRlc3RDbGFzc05hbWUuaCIKQEAgLTc4LDggKzc5
LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lkIGNhbGxSZXBseShJUEM6OkRlY29kZXImLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKHVpbnQ2NF90JiYpPiYmKTsKICAgICBzdGF0aWMgdm9pZCBj
YW5jZWxSZXBseShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHVpbnQ2NF90JiYpPiYmKTsKICAgICBz
dGF0aWMgSVBDOjpTdHJpbmdSZWZlcmVuY2UgYXN5bmNNZXNzYWdlUmVwbHlOYW1lKCkgeyByZXR1
cm4geyAiVGVzdEFzeW5jTWVzc2FnZVJlcGx5IiB9OyB9Ci0gICAgdXNpbmcgQXN5bmNSZXBseSA9
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQodWludDY0X3QgcmVzdWx0KT47Ci0gICAgc3RhdGljIHZv
aWQgc2VuZChzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYmLCBJUEM6OkNvbm5lY3Rpb24m
LCB1aW50NjRfdCByZXN1bHQpOworICAgIHVzaW5nIEFzeW5jUmVwbHkgPSBUZXN0QXN5bmNNZXNz
YWdlQXN5bmNSZXBseTsgICAgc3RhdGljIHZvaWQgc2VuZChzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpF
bmNvZGVyPiYmLCBJUEM6OkNvbm5lY3Rpb24mLCB1aW50NjRfdCByZXN1bHQpOwogICAgIHVzaW5n
IFJlcGx5ID0gc3RkOjp0dXBsZTx1aW50NjRfdCY+OwogICAgIHVzaW5nIFJlcGx5QXJndW1lbnRz
ID0gc3RkOjp0dXBsZTx1aW50NjRfdD47CiAgICAgZXhwbGljaXQgVGVzdEFzeW5jTWVzc2FnZShX
ZWJLaXQ6OlRlc3RUd29TdGF0ZUVudW0gdHdvU3RhdGVFbnVtKQpAQCAtMTA5LDggKzEwOSw3IEBA
IHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBjYWxsUmVwbHkoSVBDOjpEZWNvZGVyJiwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICBzdGF0aWMgdm9pZCBjYW5jZWxSZXBseShDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHN0YXRpYyBJUEM6OlN0cmluZ1JlZmVyZW5j
ZSBhc3luY01lc3NhZ2VSZXBseU5hbWUoKSB7IHJldHVybiB7ICJUZXN0QXN5bmNNZXNzYWdlV2l0
aE5vQXJndW1lbnRzUmVwbHkiIH07IH0KLSAgICB1c2luZyBBc3luY1JlcGx5ID0gQ29tcGxldGlv
bkhhbmRsZXI8dm9pZCgpPjsKLSAgICBzdGF0aWMgdm9pZCBzZW5kKHN0ZDo6dW5pcXVlX3B0cjxJ
UEM6OkVuY29kZXI+JiYsIElQQzo6Q29ubmVjdGlvbiYpOworICAgIHVzaW5nIEFzeW5jUmVwbHkg
PSBUZXN0QXN5bmNNZXNzYWdlV2l0aE5vQXJndW1lbnRzQXN5bmNSZXBseTsgICAgc3RhdGljIHZv
aWQgc2VuZChzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYmLCBJUEM6OkNvbm5lY3Rpb24m
KTsKICAgICB1c2luZyBSZXBseSA9IHN0ZDo6dHVwbGU8PjsKICAgICB1c2luZyBSZXBseUFyZ3Vt
ZW50cyA9IHN0ZDo6dHVwbGU8PjsKICAgICBjb25zdCBBcmd1bWVudHMmIGFyZ3VtZW50cygpIGNv
bnN0CkBAIC0xMzUsOCArMTM0LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lkIGNhbGxSZXBs
eShJUEM6OkRlY29kZXImLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wmJiwgdWludDY0X3Qm
Jik+JiYpOwogICAgIHN0YXRpYyB2b2lkIGNhbmNlbFJlcGx5KENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoYm9vbCYmLCB1aW50NjRfdCYmKT4mJik7CiAgICAgc3RhdGljIElQQzo6U3RyaW5nUmVmZXJl
bmNlIGFzeW5jTWVzc2FnZVJlcGx5TmFtZSgpIHsgcmV0dXJuIHsgIlRlc3RBc3luY01lc3NhZ2VX
aXRoTXVsdGlwbGVBcmd1bWVudHNSZXBseSIgfTsgfQotICAgIHVzaW5nIEFzeW5jUmVwbHkgPSBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wgZmxhZywgdWludDY0X3QgdmFsdWUpPjsKLSAgICBz
dGF0aWMgdm9pZCBzZW5kKHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+JiYsIElQQzo6Q29u
bmVjdGlvbiYsIGJvb2wgZmxhZywgdWludDY0X3QgdmFsdWUpOworICAgIHVzaW5nIEFzeW5jUmVw
bHkgPSBUZXN0QXN5bmNNZXNzYWdlV2l0aE11bHRpcGxlQXJndW1lbnRzQXN5bmNSZXBseTsgICAg
c3RhdGljIHZvaWQgc2VuZChzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYmLCBJUEM6OkNv
bm5lY3Rpb24mLCBib29sIGZsYWcsIHVpbnQ2NF90IHZhbHVlKTsKICAgICB1c2luZyBSZXBseSA9
IHN0ZDo6dHVwbGU8Ym9vbCYsIHVpbnQ2NF90Jj47CiAgICAgdXNpbmcgUmVwbHlBcmd1bWVudHMg
PSBzdGQ6OnR1cGxlPGJvb2wsIHVpbnQ2NF90PjsKICAgICBjb25zdCBBcmd1bWVudHMmIGFyZ3Vt
ZW50cygpIGNvbnN0CkBAIC0xNTcsOCArMTU1LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBJUEM6
OlN0cmluZ1JlZmVyZW5jZSBuYW1lKCkgeyByZXR1cm4gSVBDOjpTdHJpbmdSZWZlcmVuY2UoIlRl
c3RTeW5jTWVzc2FnZSIpOyB9CiAgICAgc3RhdGljIGNvbnN0IGJvb2wgaXNTeW5jID0gdHJ1ZTsK
IAotICAgIHVzaW5nIERlbGF5ZWRSZXBseSA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQodWludDhf
dCByZXBseSk+OwotICAgIHN0YXRpYyB2b2lkIHNlbmQoc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5j
b2Rlcj4mJiwgSVBDOjpDb25uZWN0aW9uJiwgdWludDhfdCByZXBseSk7CisgICAgdXNpbmcgRGVs
YXllZFJlcGx5ID0gVGVzdFN5bmNNZXNzYWdlRGVsYXllZFJlcGx5OyAgICBzdGF0aWMgdm9pZCBz
ZW5kKHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+JiYsIElQQzo6Q29ubmVjdGlvbiYsIHVp
bnQ4X3QgcmVwbHkpOwogICAgIHVzaW5nIFJlcGx5ID0gc3RkOjp0dXBsZTx1aW50OF90Jj47CiAg
ICAgdXNpbmcgUmVwbHlBcmd1bWVudHMgPSBzdGQ6OnR1cGxlPHVpbnQ4X3Q+OwogICAgIGV4cGxp
Y2l0IFRlc3RTeW5jTWVzc2FnZSh1aW50MzJfdCBwYXJhbSkKQEAgLTE4Myw4ICsxODAsNyBAQCBw
dWJsaWM6CiAgICAgc3RhdGljIElQQzo6U3RyaW5nUmVmZXJlbmNlIG5hbWUoKSB7IHJldHVybiBJ
UEM6OlN0cmluZ1JlZmVyZW5jZSgiVGVzdFN5bmNocm9ub3VzTWVzc2FnZSIpOyB9CiAgICAgc3Rh
dGljIGNvbnN0IGJvb2wgaXNTeW5jID0gdHJ1ZTsKIAotICAgIHVzaW5nIERlbGF5ZWRSZXBseSA9
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgT3B0aW9uYWw8V2ViS2l0OjpUZXN0Q2xhc3NO
YW1lPiYgb3B0aW9uYWxSZXBseSk+OwotICAgIHN0YXRpYyB2b2lkIHNlbmQoc3RkOjp1bmlxdWVf
cHRyPElQQzo6RW5jb2Rlcj4mJiwgSVBDOjpDb25uZWN0aW9uJiwgY29uc3QgT3B0aW9uYWw8V2Vi
S2l0OjpUZXN0Q2xhc3NOYW1lPiYgb3B0aW9uYWxSZXBseSk7CisgICAgdXNpbmcgRGVsYXllZFJl
cGx5ID0gVGVzdFN5bmNocm9ub3VzTWVzc2FnZURlbGF5ZWRSZXBseTsgICAgc3RhdGljIHZvaWQg
c2VuZChzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYmLCBJUEM6OkNvbm5lY3Rpb24mLCBj
b25zdCBPcHRpb25hbDxXZWJLaXQ6OlRlc3RDbGFzc05hbWU+JiBvcHRpb25hbFJlcGx5KTsKICAg
ICB1c2luZyBSZXBseSA9IHN0ZDo6dHVwbGU8T3B0aW9uYWw8V2ViS2l0OjpUZXN0Q2xhc3NOYW1l
PiY+OwogICAgIHVzaW5nIFJlcGx5QXJndW1lbnRzID0gc3RkOjp0dXBsZTxPcHRpb25hbDxXZWJL
aXQ6OlRlc3RDbGFzc05hbWU+PjsKICAgICBleHBsaWNpdCBUZXN0U3luY2hyb25vdXNNZXNzYWdl
KGJvb2wgdmFsdWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21l
c3NhZ2VzLnB5IGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQppbmRl
eCAzNTYxMzRiYmM3MzAwMWI5YzFkNzk0NTMwMWI0MWEwYzQ0MzU3YmZmLi5lYTE4OWQ4OTExZWY3
MzRjNGVmOTI0NzllODlkOGZkZmU1MDg0MjZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1Nj
cmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CisrKyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJr
aXQvbWVzc2FnZXMucHkKQEAgLTMyLDcgKzMyLDcgQEAgU1lOQ0hST05PVVNfQVRUUklCVVRFID0g
J1N5bmNocm9ub3VzJwogQVNZTkNfQVRUUklCVVRFID0gJ0FzeW5jJwogCiBfbGljZW5zZV9oZWFk
ZXIgPSAiIiIvKgotICogQ29weXJpZ2h0IChDKSAyMDEwLTIwMTggQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwLTIwMTkgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xMTMs
OSArMTEzLDI5IEBAIGRlZiByZXBseV9hcmd1bWVudHNfdHlwZShtZXNzYWdlKToKICAgICByZXR1
cm4gJ3N0ZDo6dHVwbGU8JXM+JyAlICgnLCAnLmpvaW4ocGFyYW1ldGVyLnR5cGUgZm9yIHBhcmFt
ZXRlciBpbiBtZXNzYWdlLnJlcGx5X3BhcmFtZXRlcnMpKQogCiAKK2RlZiBtZXNzYWdlX3RvX3Jl
cGx5X2ZvcndhcmRfZGVjbGFyYXRpb24obWVzc2FnZSk6CisgICAgcmVzdWx0ID0gW10KKworICAg
IGlmIG1lc3NhZ2UucmVwbHlfcGFyYW1ldGVycyAhPSBOb25lIGFuZCAobWVzc2FnZS5oYXNfYXR0
cmlidXRlKFNZTkNIUk9OT1VTX0FUVFJJQlVURSkgb3IgbWVzc2FnZS5oYXNfYXR0cmlidXRlKEFT
WU5DX0FUVFJJQlVURSkpOgorICAgICAgICBzZW5kX3BhcmFtZXRlcnMgPSBbKGZ1bmN0aW9uX3Bh
cmFtZXRlcl90eXBlKHgudHlwZSwgeC5raW5kKSwgeC5uYW1lKSBmb3IgeCBpbiBtZXNzYWdlLnJl
cGx5X3BhcmFtZXRlcnNdCisgICAgICAgIGNvbXBsZXRpb25faGFuZGxlcl9wYXJhbWV0ZXJzID0g
JyVzJyAlICcsICcuam9pbihbJyAnLmpvaW4oeCkgZm9yIHggaW4gc2VuZF9wYXJhbWV0ZXJzXSkK
KworICAgICAgICBpZiBtZXNzYWdlLmhhc19hdHRyaWJ1dGUoQVNZTkNfQVRUUklCVVRFKToKKyAg
ICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJ3VzaW5nICVzQXN5bmNSZXBseScgJSBtZXNzYWdlLm5h
bWUpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCd1c2luZyAlc0Rl
bGF5ZWRSZXBseScgJSBtZXNzYWdlLm5hbWUpCisgICAgICAgIHJlc3VsdC5hcHBlbmQoJyA9IENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoJXMpPjtcbicgJSBjb21wbGV0aW9uX2hhbmRsZXJfcGFyYW1l
dGVycykKKworICAgIGlmIG5vdCByZXN1bHQ6CisgICAgICAgIHJldHVybiBOb25lCisKKyAgICBy
ZXR1cm4gc3Vycm91bmRfaW5fY29uZGl0aW9uKCcnLmpvaW4ocmVzdWx0KSwgbWVzc2FnZS5jb25k
aXRpb24pCisKKwogZGVmIG1lc3NhZ2VfdG9fc3RydWN0X2RlY2xhcmF0aW9uKG1lc3NhZ2UpOgog
ICAgIHJlc3VsdCA9IFtdCiAgICAgZnVuY3Rpb25fcGFyYW1ldGVycyA9IFsoZnVuY3Rpb25fcGFy
YW1ldGVyX3R5cGUoeC50eXBlLCB4LmtpbmQpLCB4Lm5hbWUpIGZvciB4IGluIG1lc3NhZ2UucGFy
YW1ldGVyc10KKwogICAgIHJlc3VsdC5hcHBlbmQoJ2NsYXNzICVzIHtcbicgJSBtZXNzYWdlLm5h
bWUpCiAgICAgcmVzdWx0LmFwcGVuZCgncHVibGljOlxuJykKICAgICByZXN1bHQuYXBwZW5kKCcg
ICAgdHlwZWRlZiAlcyBBcmd1bWVudHM7XG4nICUgYXJndW1lbnRzX3R5cGUobWVzc2FnZSkpCkBA
IC0xMzIsMTEgKzE1MiwxMCBAQCBkZWYgbWVzc2FnZV90b19zdHJ1Y3RfZGVjbGFyYXRpb24obWVz
c2FnZSk6CiAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcgICAgc3RhdGljIHZvaWQgY2FsbFJl
cGx5KElQQzo6RGVjb2RlciYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoJXMpPiYmKTtcbicgJSBt
b3ZlX3BhcmFtZXRlcnMpCiAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcgICAgc3RhdGljIHZv
aWQgY2FuY2VsUmVwbHkoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCglcyk+JiYpO1xuJyAlIG1vdmVf
cGFyYW1ldGVycykKICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyAgICBzdGF0aWMgSVBDOjpT
dHJpbmdSZWZlcmVuY2UgYXN5bmNNZXNzYWdlUmVwbHlOYW1lKCkgeyByZXR1cm4geyAiJXNSZXBs
eSIgfTsgfVxuJyAlIG1lc3NhZ2UubmFtZSkKLSAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyAg
ICB1c2luZyBBc3luY1JlcGx5JykKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyAgICB1c2lu
ZyBBc3luY1JlcGx5ID0gJXNBc3luY1JlcGx5OycgJSBtZXNzYWdlLm5hbWUpCiAgICAgICAgIGVs
aWYgbWVzc2FnZS5oYXNfYXR0cmlidXRlKFNZTkNIUk9OT1VTX0FUVFJJQlVURSk6Ci0gICAgICAg
ICAgICByZXN1bHQuYXBwZW5kKCcgICAgdXNpbmcgRGVsYXllZFJlcGx5JykKKyAgICAgICAgICAg
IHJlc3VsdC5hcHBlbmQoJyAgICB1c2luZyBEZWxheWVkUmVwbHkgPSAlc0RlbGF5ZWRSZXBseTsn
ICUgbWVzc2FnZS5uYW1lKQogICAgICAgICBpZiBtZXNzYWdlLmhhc19hdHRyaWJ1dGUoU1lOQ0hS
T05PVVNfQVRUUklCVVRFKSBvciBtZXNzYWdlLmhhc19hdHRyaWJ1dGUoQVNZTkNfQVRUUklCVVRF
KToKLSAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
JXMpPjtcbicgJSBjb21wbGV0aW9uX2hhbmRsZXJfcGFyYW1ldGVycykKICAgICAgICAgICAgIHJl
c3VsdC5hcHBlbmQoJyAgICBzdGF0aWMgdm9pZCBzZW5kKHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVu
Y29kZXI+JiYsIElQQzo6Q29ubmVjdGlvbiYnKQogICAgICAgICAgICAgaWYgbGVuKHNlbmRfcGFy
YW1ldGVycyk6CiAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnLCAlcycgJSBjb21wbGV0
aW9uX2hhbmRsZXJfcGFyYW1ldGVycykKQEAgLTE4MCwyNyArMTk5LDggQEAgZGVmIGZvcndhcmRf
ZGVjbGFyYXRpb25zX2Zvcl9uYW1lc3BhY2UobmFtZXNwYWNlLCBraW5kX2FuZF90eXBlcyk6CiAg
ICAgcmV0dXJuICcnLmpvaW4ocmVzdWx0KQogCiAKLWRlZiBmb3J3YXJkX2RlY2xhcmF0aW9uc19h
bmRfaGVhZGVycyhyZWNlaXZlcik6Ci0gICAgdHlwZXNfYnlfbmFtZXNwYWNlID0gY29sbGVjdGlv
bnMuZGVmYXVsdGRpY3Qoc2V0KQotCi0gICAgaGVhZGVycyA9IHNldChbCi0gICAgICAgICciQXJn
dW1lbnRDb2RlcnMuaCInLAotICAgICAgICAnPHd0Zi9Gb3J3YXJkLmg+JywKLSAgICBdKQotCi0g
ICAgaGVhZGVyX2NvbmRpdGlvbnMgPSB7Ci0gICAgICAgICciTGF5ZXJIb3N0aW5nQ29udGV4dC5o
Iic6IFsiUExBVEZPUk0oQ09DT0EpIiwgXSwKLSAgICB9Ci0KLSAgICBub25fdGVtcGxhdGVfd3Rm
X3R5cGVzID0gZnJvemVuc2V0KFsKLSAgICAgICAgJ01hY2hTZW5kUmlnaHQnLAotICAgICAgICAn
U3RyaW5nJywKLSAgICBdKQotCi0gICAgaGVhZGVycy5hZGQoJyJDb25uZWN0aW9uLmgiJykKLSAg
ICBoZWFkZXJzLmFkZCgnPHd0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5oPicpCi0KLSAgICBub19m
b3J3YXJkX2RlY2xhcmF0aW9uX3R5cGVzID0gZnJvemVuc2V0KFsKK2RlZiB0eXBlc190aGF0X2Nh
bm5vdF9iZV9mb3J3YXJkX2RlY2xhcmVkKCk6CisgICAgcmV0dXJuIGZyb3plbnNldChbCiAgICAg
ICAgICdNYWNoU2VuZFJpZ2h0JywKICAgICAgICAgJ1N0cmluZycsCiAgICAgICAgICdXZWJDb3Jl
OjpEb2N1bWVudElkZW50aWZpZXInLApAQCAtMjI2LDYgKzIyNiwzMiBAQCBkZWYgZm9yd2FyZF9k
ZWNsYXJhdGlvbnNfYW5kX2hlYWRlcnMocmVjZWl2ZXIpOgogICAgICAgICAnV2ViS2l0OjpXZWJQ
YWdlUHJveHlJZGVudGlmaWVyJywKICAgICBdKQogCisKK2RlZiBjb25kaXRpb25zX2Zvcl9oZWFk
ZXIoaGVhZGVyKToKKyAgICBjb25kaXRpb25zID0geworICAgICAgICAnIkxheWVySG9zdGluZ0Nv
bnRleHQuaCInOiBbIlBMQVRGT1JNKENPQ09BKSIsIF0sCisgICAgfQorICAgIGlmIG5vdCBoZWFk
ZXIgaW4gY29uZGl0aW9uczoKKyAgICAgICAgcmV0dXJuIE5vbmUKKyAgICByZXR1cm4gY29uZGl0
aW9uc1toZWFkZXJdCisKKworZGVmIGZvcndhcmRfZGVjbGFyYXRpb25zX2FuZF9oZWFkZXJzKHJl
Y2VpdmVyKToKKyAgICB0eXBlc19ieV9uYW1lc3BhY2UgPSBjb2xsZWN0aW9ucy5kZWZhdWx0ZGlj
dChzZXQpCisKKyAgICBoZWFkZXJzID0gc2V0KFsKKyAgICAgICAgJyJBcmd1bWVudENvZGVycy5o
IicsCisgICAgICAgICc8d3RmL0ZvcndhcmQuaD4nLAorICAgICAgICAnIkNvbm5lY3Rpb24uaCIn
LAorICAgICAgICAnPHd0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5oPicsCisgICAgXSkKKworICAg
IG5vbl90ZW1wbGF0ZV93dGZfdHlwZXMgPSBmcm96ZW5zZXQoWworICAgICAgICAnTWFjaFNlbmRS
aWdodCcsCisgICAgICAgICdTdHJpbmcnLAorICAgIF0pCisKKyAgICBub19mb3J3YXJkX2RlY2xh
cmF0aW9uX3R5cGVzID0gdHlwZXNfdGhhdF9jYW5ub3RfYmVfZm9yd2FyZF9kZWNsYXJlZCgpCiAg
ICAgZm9yIHBhcmFtZXRlciBpbiByZWNlaXZlci5pdGVycGFyYW1ldGVycygpOgogICAgICAgICBr
aW5kID0gcGFyYW1ldGVyLmtpbmQKICAgICAgICAgdHlwZSA9IHBhcmFtZXRlci50eXBlCkBAIC0y
NTQsOCArMjgwLDY2IEBAIGRlZiBmb3J3YXJkX2RlY2xhcmF0aW9uc19hbmRfaGVhZGVycyhyZWNl
aXZlcik6CiAKICAgICBoZWFkZXJfaW5jbHVkZXMgPSBbXQogICAgIGZvciBoZWFkZXIgaW4gc29y
dGVkKGhlYWRlcnMpOgotICAgICAgICBpZiBoZWFkZXIgaW4gaGVhZGVyX2NvbmRpdGlvbnMgYW5k
IG5vdCBOb25lIGluIGhlYWRlcl9jb25kaXRpb25zW2hlYWRlcl06Ci0gICAgICAgICAgICBoZWFk
ZXJfaW5jbHVkZSA9ICcjaWYgJXNcbicgJSAnIHx8ICcuam9pbihzZXQoaGVhZGVyX2NvbmRpdGlv
bnNbaGVhZGVyXSkpCisgICAgICAgIGNvbmRpdGlvbnMgPSBjb25kaXRpb25zX2Zvcl9oZWFkZXIo
aGVhZGVyKQorICAgICAgICBpZiBjb25kaXRpb25zIGFuZCBub3QgTm9uZSBpbiBjb25kaXRpb25z
OgorICAgICAgICAgICAgaGVhZGVyX2luY2x1ZGUgPSAnI2lmICVzXG4nICUgJyB8fCAnLmpvaW4o
c2V0KGNvbmRpdGlvbnMpKQorICAgICAgICAgICAgaGVhZGVyX2luY2x1ZGUgKz0gJyNpbmNsdWRl
ICVzXG4nICUgaGVhZGVyCisgICAgICAgICAgICBoZWFkZXJfaW5jbHVkZSArPSAnI2VuZGlmXG4n
CisgICAgICAgICAgICBoZWFkZXJfaW5jbHVkZXMuYXBwZW5kKGhlYWRlcl9pbmNsdWRlKQorICAg
ICAgICBlbHNlOgorICAgICAgICAgICAgaGVhZGVyX2luY2x1ZGVzLmFwcGVuZCgnI2luY2x1ZGUg
JXNcbicgJSBoZWFkZXIpCisKKyAgICByZXR1cm4gKGZvcndhcmRfZGVjbGFyYXRpb25zLCBoZWFk
ZXJfaW5jbHVkZXMpCisKKworZGVmIGZvcndhcmRfZGVjbGFyYXRpb25zX2FuZF9oZWFkZXJzX2Zv
cl9yZXBsaWVzKHJlY2VpdmVyKToKKyAgICB0eXBlc19ieV9uYW1lc3BhY2UgPSBjb2xsZWN0aW9u
cy5kZWZhdWx0ZGljdChzZXQpCisKKyAgICBoZWFkZXJzID0gc2V0KFsKKyAgICAgICAgJzx3dGYv
Rm9yd2FyZC5oPicsCisgICAgXSkKKworICAgIG5vbl90ZW1wbGF0ZV93dGZfdHlwZXMgPSBmcm96
ZW5zZXQoWworICAgICAgICAnTWFjaFNlbmRSaWdodCcsCisgICAgICAgICdTdHJpbmcnLAorICAg
IF0pCisKKyAgICBub19mb3J3YXJkX2RlY2xhcmF0aW9uX3R5cGVzID0gdHlwZXNfdGhhdF9jYW5u
b3RfYmVfZm9yd2FyZF9kZWNsYXJlZCgpCisgICAgZm9yIG1lc3NhZ2UgaW4gcmVjZWl2ZXIubWVz
c2FnZXM6CisgICAgICAgIGlmIG1lc3NhZ2UucmVwbHlfcGFyYW1ldGVycyA9PSBOb25lIG9yIG5v
dCAobWVzc2FnZS5oYXNfYXR0cmlidXRlKFNZTkNIUk9OT1VTX0FUVFJJQlVURSkgb3IgbWVzc2Fn
ZS5oYXNfYXR0cmlidXRlKEFTWU5DX0FUVFJJQlVURSkpOgorICAgICAgICAgICAgY29udGludWUK
KworICAgICAgICBmb3IgcGFyYW1ldGVyIGluIG1lc3NhZ2UucmVwbHlfcGFyYW1ldGVyczoKKyAg
ICAgICAgICAgIGtpbmQgPSBwYXJhbWV0ZXIua2luZAorICAgICAgICAgICAgdHlwZSA9IHBhcmFt
ZXRlci50eXBlCisKKyAgICAgICAgICAgIGlmIHR5cGUuZmluZCgnPCcpICE9IC0xIG9yIHR5cGUg
aW4gbm9fZm9yd2FyZF9kZWNsYXJhdGlvbl90eXBlczoKKyAgICAgICAgICAgICAgICAjIERvbid0
IGZvcndhcmQgZGVjbGFyZSBjbGFzcyB0ZW1wbGF0ZXMuCisgICAgICAgICAgICAgICAgaGVhZGVy
cy51cGRhdGUoaGVhZGVyc19mb3JfdHlwZSh0eXBlKSkKKyAgICAgICAgICAgICAgICBjb250aW51
ZQorCisgICAgICAgICAgICBzcGxpdCA9IHR5cGUuc3BsaXQoJzo6JykKKworICAgICAgICAgICAg
IyBIYW5kbGUgV1RGIHR5cGVzIGV2ZW4gaWYgdGhlIFdURjo6IHByZWZpeCBpcyBub3QgZ2l2ZW4K
KyAgICAgICAgICAgIGlmIHNwbGl0WzBdIGluIG5vbl90ZW1wbGF0ZV93dGZfdHlwZXM6CisgICAg
ICAgICAgICAgICAgc3BsaXQuaW5zZXJ0KDAsICdXVEYnKQorCisgICAgICAgICAgICBpZiBsZW4o
c3BsaXQpID09IDI6CisgICAgICAgICAgICAgICAgbmFtZXNwYWNlID0gc3BsaXRbMF0KKyAgICAg
ICAgICAgICAgICBpbm5lcl90eXBlID0gc3BsaXRbMV0KKyAgICAgICAgICAgICAgICB0eXBlc19i
eV9uYW1lc3BhY2VbbmFtZXNwYWNlXS5hZGQoKGtpbmQsIGlubmVyX3R5cGUpKQorICAgICAgICAg
ICAgZWxpZiBsZW4oc3BsaXQpID4gMjoKKyAgICAgICAgICAgICAgICAjIFdlIHByb2JhYmx5IGhh
dmUgYSBuZXN0ZWQgc3RydWN0LCB3aGljaCBtZWFucyB3ZSBjYW4ndCBmb3J3YXJkIGRlY2xhcmUg
aXQuCisgICAgICAgICAgICAgICAgIyBJbmNsdWRlIGl0cyBoZWFkZXIgaW5zdGVhZC4KKyAgICAg
ICAgICAgICAgICBoZWFkZXJzLnVwZGF0ZShoZWFkZXJzX2Zvcl90eXBlKHR5cGUpKQorCisgICAg
Zm9yd2FyZF9kZWNsYXJhdGlvbnMgPSAnXG4nLmpvaW4oW2ZvcndhcmRfZGVjbGFyYXRpb25zX2Zv
cl9uYW1lc3BhY2UobmFtZXNwYWNlLCB0eXBlcykgZm9yIChuYW1lc3BhY2UsIHR5cGVzKSBpbiBz
b3J0ZWQodHlwZXNfYnlfbmFtZXNwYWNlLml0ZW1zKCkpXSkKKworICAgIGhlYWRlcl9pbmNsdWRl
cyA9IFtdCisgICAgZm9yIGhlYWRlciBpbiBzb3J0ZWQoaGVhZGVycyk6CisgICAgICAgIGNvbmRp
dGlvbnMgPSBjb25kaXRpb25zX2Zvcl9oZWFkZXIoaGVhZGVyKQorICAgICAgICBpZiBjb25kaXRp
b25zIGFuZCBub3QgTm9uZSBpbiBjb25kaXRpb25zOgorICAgICAgICAgICAgaGVhZGVyX2luY2x1
ZGUgPSAnI2lmICVzXG4nICUgJyB8fCAnLmpvaW4oc2V0KGNvbmRpdGlvbnMpKQogICAgICAgICAg
ICAgaGVhZGVyX2luY2x1ZGUgKz0gJyNpbmNsdWRlICVzXG4nICUgaGVhZGVyCiAgICAgICAgICAg
ICBoZWFkZXJfaW5jbHVkZSArPSAnI2VuZGlmXG4nCiAgICAgICAgICAgICBoZWFkZXJfaW5jbHVk
ZXMuYXBwZW5kKGhlYWRlcl9pbmNsdWRlKQpAQCAtMjY1LDkgKzM0OSwzOCBAQCBkZWYgZm9yd2Fy
ZF9kZWNsYXJhdGlvbnNfYW5kX2hlYWRlcnMocmVjZWl2ZXIpOgogICAgIHJldHVybiAoZm9yd2Fy
ZF9kZWNsYXJhdGlvbnMsIGhlYWRlcl9pbmNsdWRlcykKIAogCi1kZWYgZ2VuZXJhdGVfbWVzc2Fn
ZXNfaGVhZGVyKGZpbGUpOgotICAgIHJlY2VpdmVyID0gcGFyc2VyLnBhcnNlKGZpbGUpCitkZWYg
Z2VuZXJhdGVfbWVzc2FnZXNfcmVwbHlfaGVhZGVyKHJlY2VpdmVyKToKKyAgICByZXN1bHQgPSBb
XQogCisgICAgcmVzdWx0LmFwcGVuZChfbGljZW5zZV9oZWFkZXIpCisKKyAgICByZXN1bHQuYXBw
ZW5kKCcjcHJhZ21hIG9uY2VcbicpCisgICAgcmVzdWx0LmFwcGVuZCgnXG4nKQorCisgICAgaWYg
cmVjZWl2ZXIuY29uZGl0aW9uOgorICAgICAgICByZXN1bHQuYXBwZW5kKCcjaWYgJXNcblxuJyAl
IHJlY2VpdmVyLmNvbmRpdGlvbikKKworICAgIGZvcndhcmRfZGVjbGFyYXRpb25zLCBoZWFkZXJz
ID0gZm9yd2FyZF9kZWNsYXJhdGlvbnNfYW5kX2hlYWRlcnNfZm9yX3JlcGxpZXMocmVjZWl2ZXIp
CisKKyAgICByZXN1bHQgKz0gaGVhZGVycworICAgIHJlc3VsdC5hcHBlbmQoJ1xuJykKKworICAg
IHJlc3VsdC5hcHBlbmQoZm9yd2FyZF9kZWNsYXJhdGlvbnMpCisgICAgcmVzdWx0LmFwcGVuZCgn
XG4nKQorCisgICAgcmVzdWx0LmFwcGVuZCgnbmFtZXNwYWNlIE1lc3NhZ2VzIHtcbm5hbWVzcGFj
ZSAlcyB7XG4nICUgcmVjZWl2ZXIubmFtZSkKKyAgICByZXN1bHQuYXBwZW5kKCdcbicpCisgICAg
cmVzdWx0LmFwcGVuZCgnXG4nLmpvaW4oZmlsdGVyKE5vbmUsIFttZXNzYWdlX3RvX3JlcGx5X2Zv
cndhcmRfZGVjbGFyYXRpb24oeCkgZm9yIHggaW4gcmVjZWl2ZXIubWVzc2FnZXNdKSkpCisgICAg
cmVzdWx0LmFwcGVuZCgnXG4nKQorICAgIHJlc3VsdC5hcHBlbmQoJ30gLy8gbmFtZXNwYWNlICVz
XG59IC8vIG5hbWVzcGFjZSBNZXNzYWdlc1xuJyAlIHJlY2VpdmVyLm5hbWUpCisKKyAgICBpZiBy
ZWNlaXZlci5jb25kaXRpb246CisgICAgICAgIHJlc3VsdC5hcHBlbmQoJ1xuI2VuZGlmIC8vICVz
XG4nICUgcmVjZWl2ZXIuY29uZGl0aW9uKQorCisgICAgcmV0dXJuICcnLmpvaW4ocmVzdWx0KQor
CisKK2RlZiBnZW5lcmF0ZV9tZXNzYWdlc19oZWFkZXIocmVjZWl2ZXIpOgogICAgIHJlc3VsdCA9
IFtdCiAKICAgICByZXN1bHQuYXBwZW5kKF9saWNlbnNlX2hlYWRlcikKQEAgLTI3NSw2ICszODgs
OSBAQCBkZWYgZ2VuZXJhdGVfbWVzc2FnZXNfaGVhZGVyKGZpbGUpOgogICAgIHJlc3VsdC5hcHBl
bmQoJyNwcmFnbWEgb25jZVxuJykKICAgICByZXN1bHQuYXBwZW5kKCdcbicpCiAKKyAgICByZXN1
bHQuYXBwZW5kKCcjaW5jbHVkZSAiJXNNZXNzYWdlc1JlcGxpZXMuaCInICUgcmVjZWl2ZXIubmFt
ZSkKKyAgICByZXN1bHQuYXBwZW5kKCdcbicpCisKICAgICBpZiByZWNlaXZlci5jb25kaXRpb246
CiAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyNpZiAlc1xuXG4nICUgcmVjZWl2ZXIuY29uZGl0aW9u
KQogCkBAIC01MTUsOCArNjMxLDcgQEAgZGVmIGhlYWRlcnNfZm9yX3R5cGUodHlwZSk6CiAgICAg
cmV0dXJuIGhlYWRlcnMKIAogCi1kZWYgZ2VuZXJhdGVfbWVzc2FnZV9oYW5kbGVyKGZpbGUpOgot
ICAgIHJlY2VpdmVyID0gcGFyc2VyLnBhcnNlKGZpbGUpCitkZWYgZ2VuZXJhdGVfbWVzc2FnZV9o
YW5kbGVyKHJlY2VpdmVyKToKICAgICBoZWFkZXJfY29uZGl0aW9ucyA9IHsKICAgICAgICAgJyIl
cyInICUgbWVzc2FnZXNfaGVhZGVyX2ZpbGVuYW1lKHJlY2VpdmVyKTogW05vbmVdLAogICAgICAg
ICAnIkhhbmRsZU1lc3NhZ2UuaCInOiBbTm9uZV0sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3Bw
CmluZGV4IDkxY2Y5NDgwYzc1MThjZDliYjE3ZTlmY2E0ZTkxNmQwYjA3M2IwOGIuLmU1MTc3ZDAy
NDdiZjNmNzEwOTkzZThjNDgxNDU0NDhkNDIyZjAzODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJv
eHkuY3BwCkBAIC0zMCw2ICszMCw3IEBACiAKICNpbmNsdWRlICJTaGFyZWRSaW5nQnVmZmVyU3Rv
cmFnZS5oIgogI2luY2x1ZGUgIlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyTWVzc2FnZXMuaCIKKyNp
bmNsdWRlICJVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5TWVzc2FnZXMuaCIKICNpbmNsdWRl
ICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHkuaCIK
ICNpbmNsdWRlIDxXZWJDb3JlL0NBUmluZ0J1ZmZlci5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5o
CmluZGV4IDliZGRiOTkwOWRmN2U4ZmVmMWU1NDgwNmNiZTZiYzVjNDBjZmM1ODEuLjQ0NDYwZDRk
OTQwMGI2ZDExNjEzN2Y1MmZkNjA1NTdiODQ5ODFkMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5
LmgKQEAgLTMwLDcgKzMwLDYgQEAKICNpbmNsdWRlICJDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAi
TWVzc2FnZVJlY2VpdmVyLmgiCiAjaW5jbHVkZSAiVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaCIK
LSNpbmNsdWRlICJVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5TWVzc2FnZXMuaCIKICNpbmNs
dWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2UuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRQ
cm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkUHJveHku
aAppbmRleCA2M2IwZjg1ODFjYTJlOWJhYTFhNjU0NmE4MTgyMjZiMTZiMjA3NTM4Li5jZDBiMDBl
NTczMTE0ZTc3OTM2Y2I3OGQ3MTg1YzU2MDk3Y2VlODNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZFByb3h5LmgKQEAgLTI4LDcgKzI4LDYgQEAK
ICNpbmNsdWRlICJBUElPYmplY3QuaCIKICNpbmNsdWRlICJDb25uZWN0aW9uLmgiCiAjaW5jbHVk
ZSAiRG93bmxvYWRJRC5oIgotI2luY2x1ZGUgIkRvd25sb2FkUHJveHlNZXNzYWdlcy5oIgogI2lu
Y2x1ZGUgIlNhbmRib3hFeHRlbnNpb24uaCIKICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVx
dWVzdC5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAppbmRleCA2YzE5
MDUyOWRhZWUxMGIwNDBlZDdiMTA0Y2RkMzM2NTYyZWIzNWE3Li4xMjUzNDdiZjM2ZGNkNWI3MzI1
YWU4MDMzZGJhZjkzYmJkM2E2NTI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKQEAgLTM5LDYgKzM5LDcgQEAK
ICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25JbmZvLmgiCiAjaW5jbHVkZSAiTmV0
d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCIKICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vz
c01lc3NhZ2VzLmgiCisjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NQcm94eU1lc3NhZ2VzLmgiCiAj
aW5jbHVkZSAiU2FuZGJveEV4dGVuc2lvbi5oIgogI2lmIEhBVkUoU0VDX0tFWV9QUk9YWSkKICNp
bmNsdWRlICJTZWNLZXlQcm94eVN0b3JlLmgiCkBAIC01MSw2ICs1Miw3IEBACiAjaW5jbHVkZSAi
V2ViUHJvY2Vzc01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Bvb2wuaCIKICNpbmNs
dWRlICJXZWJQcm9jZXNzUHJveHkuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHlNZXNzYWdl
cy5oIgogI2luY2x1ZGUgIldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oIgogI2luY2x1
ZGUgIldlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5LmgiCiAjaW5jbHVkZSAiV2Vic2l0ZURh
dGEuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29y
a1Byb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3Jr
UHJvY2Vzc1Byb3h5LmgKaW5kZXggZGE0YmVkMjY4MjgxOGI0M2RhNDM4ODgxYjU2OGVjYzBiYWQ1
NjY0ZC4uMzVlMDQzZTU1MmNhMGQzOTUwODc3YTg1Yzg4ZWE1MGVlZmJiZDI5ZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5
LmgKQEAgLTI2LDIxICsyNiwyMyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJBdXhpbGlh
cnlQcm9jZXNzUHJveHkuaCIKLSNpZiBFTkFCTEUoTEVHQUNZX0NVU1RPTV9QUk9UT0NPTF9NQU5B
R0VSKQotI2luY2x1ZGUgIkxlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdlclByb3h5LmgiCi0jZW5k
aWYKLSNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJO
ZXR3b3JrUHJvY2Vzc1Byb3h5TWVzc2FnZXNSZXBsaWVzLmgiCiAjaW5jbHVkZSAiUHJvY2Vzc0xh
dW5jaGVyLmgiCiAjaW5jbHVkZSAiUHJvY2Vzc1Rocm90dGxlci5oIgogI2luY2x1ZGUgIlByb2Nl
c3NUaHJvdHRsZXJDbGllbnQuaCIKICNpbmNsdWRlICJVc2VyQ29udGVudENvbnRyb2xsZXJJZGVu
dGlmaWVyLmgiCi0jaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRl
ICJXZWJQcm9jZXNzUHJveHlNZXNzYWdlc1JlcGxpZXMuaCIKICNpbmNsdWRlICJXZWJzaXRlRGF0
YVN0b3JlLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9Dcm9zc1NpdGVOYXZpZ2F0aW9uRGF0YVRyYW5z
ZmVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL1JlZ2lzdHJhYmxlRG9tYWluLmg+CiAjaW5jbHVkZSA8bWVtb3J5PgogI2luY2x1ZGUg
PHd0Zi9EZXF1ZS5oPgogCisjaWYgRU5BQkxFKExFR0FDWV9DVVNUT01fUFJPVE9DT0xfTUFOQUdF
UikKKyNpbmNsdWRlICJMZWdhY3lDdXN0b21Qcm90b2NvbE1hbmFnZXJQcm94eS5oIgorI2VuZGlm
CisKIG5hbWVzcGFjZSBQQUwgewogY2xhc3MgU2Vzc2lvbklEOwogfQpAQCAtODcsNyArODksNyBA
QCBwdWJsaWM6CiAgICAgZXhwbGljaXQgTmV0d29ya1Byb2Nlc3NQcm94eShXZWJQcm9jZXNzUG9v
bCYpOwogICAgIH5OZXR3b3JrUHJvY2Vzc1Byb3h5KCk7CiAKLSAgICB2b2lkIGdldE5ldHdvcmtQ
cm9jZXNzQ29ubmVjdGlvbihXZWJQcm9jZXNzUHJveHkmLCBNZXNzYWdlczo6V2ViUHJvY2Vzc1By
b3h5OjpHZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBseSYmKTsKKyAgICB2
b2lkIGdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbihXZWJQcm9jZXNzUHJveHkmLCBNZXNzYWdl
czo6V2ViUHJvY2Vzc1Byb3h5OjpHZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25EZWxheWVkUmVw
bHkmJik7CiAKICAgICBEb3dubG9hZFByb3h5JiBjcmVhdGVEb3dubG9hZFByb3h5KFdlYnNpdGVE
YXRhU3RvcmUmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKTsKIApAQCAtMTY5LDcg
KzE3MSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHN5bmNBbGxDb29raWVzKCk7CiAgICAgdm9pZCBk
aWRTeW5jQWxsQ29va2llcygpOwogCi0gICAgdm9pZCB0ZXN0UHJvY2Vzc0luY29taW5nU3luY01l
c3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkoV2ViUGFnZVByb3h5SWRlbnRpZmllciwgTWVz
c2FnZXM6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OlRlc3RQcm9jZXNzSW5jb21pbmdTeW5jTWVzc2Fn
ZXNXaGVuV2FpdGluZ0ZvclN5bmNSZXBseTo6RGVsYXllZFJlcGx5JiYpOworICAgIHZvaWQgdGVz
dFByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5KFdlYlBh
Z2VQcm94eUlkZW50aWZpZXIsIE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpUZXN0UHJv
Y2Vzc0luY29taW5nU3luY01lc3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5jUmVwbHlEZWxheWVkUmVw
bHkmJik7CiAKICAgICBQcm9jZXNzVGhyb3R0bGVyJiB0aHJvdHRsZXIoKSB7IHJldHVybiBtX3Ro
cm90dGxlcjsgfQogICAgIFdlYlByb2Nlc3NQb29sJiBwcm9jZXNzUG9vbCgpIHsgcmV0dXJuIG1f
cHJvY2Vzc1Bvb2w7IH0KQEAgLTI0Miw3ICsyNDQsNyBAQCBwcml2YXRlOgogI2VuZGlmCiAKICNp
ZiBFTkFCTEUoU0FOREJPWF9FWFRFTlNJT05TKQotICAgIHZvaWQgZ2V0U2FuZGJveEV4dGVuc2lv
bnNGb3JCbG9iRmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mIHBhdGhzLCBNZXNzYWdlczo6TmV0
d29ya1Byb2Nlc3NQcm94eTo6R2V0U2FuZGJveEV4dGVuc2lvbnNGb3JCbG9iRmlsZXM6OkFzeW5j
UmVwbHkmJik7CisgICAgdm9pZCBnZXRTYW5kYm94RXh0ZW5zaW9uc0ZvckJsb2JGaWxlcyhjb25z
dCBWZWN0b3I8U3RyaW5nPiYgcGF0aHMsIE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpH
ZXRTYW5kYm94RXh0ZW5zaW9uc0ZvckJsb2JGaWxlc0FzeW5jUmVwbHkmJik7CiAjZW5kaWYKIAog
I2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKQEAgLTI2NSw3ICsyNjcsNyBAQCBwcml2YXRlOgog
CiAgICAgc3RydWN0IENvbm5lY3Rpb25SZXF1ZXN0IHsKICAgICAgICAgV2Vha1B0cjxXZWJQcm9j
ZXNzUHJveHk+IHdlYlByb2Nlc3M7Ci0gICAgICAgIE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6
OkdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6RGVsYXllZFJlcGx5IHJlcGx5OworICAgICAg
ICBNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25E
ZWxheWVkUmVwbHkgcmVwbHk7CiAgICAgfTsKICAgICB1aW50NjRfdCBtX2Nvbm5lY3Rpb25SZXF1
ZXN0SWRlbnRpZmllciB7IDAgfTsKICAgICBIYXNoTWFwPHVpbnQ2NF90LCBDb25uZWN0aW9uUmVx
dWVzdD4gbV9jb25uZWN0aW9uUmVxdWVzdHM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc01hbmFnZXIuY3BwCmluZGV4IDM3ODJjODRi
Njc3OWU5ZDhlMjA2OGE2YTE1OTkwNmY2N2EwZGE0MzAuLmU1M2FmMmZlODE0ZTBiMDFmZDZhODM3
ZDAzNGM0ODcxZTU4NTQ4ZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Bs
dWdpbnMvUGx1Z2luUHJvY2Vzc01hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc01hbmFnZXIuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAj
aWYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCiAKICNpbmNsdWRlICJQbHVnaW5Qcm9jZXNz
UHJveHkuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUg
IldlYnNpdGVEYXRhRmV0Y2hPcHRpb24uaCIKICNpbmNsdWRlIDx3dGYvQ3J5cHRvZ3JhcGhpY2Fs
bHlSYW5kb21OdW1iZXIuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc01hbmFn
ZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc01hbmFn
ZXIuaAppbmRleCA5NjVjYjIyOWUwY2NkNzc1NzgxZGZlZTA1Y2U5ZDU2YjFmNzE1MjE3Li45MzBm
MGExNzUwYjYyODMzNjg5YTNmNTRiNGZjODY3NmYzZmYxNmQ2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NNYW5hZ2VyLmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzTWFuYWdlci5oCkBAIC0z
MSw3ICszMSw3IEBACiAjaW5jbHVkZSAiUGx1Z2luUHJvY2Vzcy5oIgogI2luY2x1ZGUgIlBsdWdp
blByb2Nlc3NBdHRyaWJ1dGVzLmgiCiAjaW5jbHVkZSAiUHJvY2Vzc1Rocm90dGxlci5oIgotI2lu
Y2x1ZGUgIldlYlByb2Nlc3NQcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzc1By
b3h5TWVzc2FnZXNSZXBsaWVzLmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRl
IDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgpAQCAtNTcsNyAr
NTcsNyBAQCBwdWJsaWM6CiAKICAgICB1aW50NjRfdCBwbHVnaW5Qcm9jZXNzVG9rZW4oY29uc3Qg
UGx1Z2luTW9kdWxlSW5mbyYsIFBsdWdpblByb2Nlc3NUeXBlLCBQbHVnaW5Qcm9jZXNzU2FuZGJv
eFBvbGljeSk7CiAKLSAgICB2b2lkIGdldFBsdWdpblByb2Nlc3NDb25uZWN0aW9uKHVpbnQ2NF90
IHBsdWdpblByb2Nlc3NUb2tlbiwgTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0UGx1Z2lu
UHJvY2Vzc0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBseSYmKTsKKyAgICB2b2lkIGdldFBsdWdpblBy
b2Nlc3NDb25uZWN0aW9uKHVpbnQ2NF90IHBsdWdpblByb2Nlc3NUb2tlbiwgTWVzc2FnZXM6Oldl
YlByb2Nlc3NQcm94eTo6R2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25EZWxheWVkUmVwbHkmJik7
CiAgICAgdm9pZCByZW1vdmVQbHVnaW5Qcm9jZXNzUHJveHkoUGx1Z2luUHJvY2Vzc1Byb3h5Kik7
CiAKICAgICB2b2lkIGZldGNoV2Vic2l0ZURhdGEoY29uc3QgUGx1Z2luTW9kdWxlSW5mbyYsIE9w
dGlvblNldDxXZWJzaXRlRGF0YUZldGNoT3B0aW9uPiwgV1RGOjpGdW5jdGlvbjx2b2lkIChWZWN0
b3I8U3RyaW5nPik+JiYgY29tcGxldGlvbkhhbmRsZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmgKaW5kZXggODdiM2Y1MGVh
NGJiYzBjMzFiYjE5YjJjY2FhMjBhYzY0MDNlZjI4Mi4uNzIxOTkyMTE0ODUxNTEyNmU1Y2Q1ODYw
NTQ3M2U5MWFhZDg2MDdkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGx1
Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Q
bHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5oCkBAIC0zMyw3ICszMyw3IEBACiAjaW5jbHVkZSAi
UGx1Z2luUHJvY2Vzcy5oIgogI2luY2x1ZGUgIlBsdWdpblByb2Nlc3NBdHRyaWJ1dGVzLmgiCiAj
aW5jbHVkZSAiUHJvY2Vzc0xhdW5jaGVyLmgiCi0jaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5TWVz
c2FnZXMuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHlNZXNzYWdlc1JlcGxpZXMuaCIKICNp
bmNsdWRlIDx3dGYvRGVxdWUuaD4KIAogI2lmIFBMQVRGT1JNKENPQ09BKQpAQCAtNzEsNyArNzEs
NyBAQCBwdWJsaWM6CiAKICAgICAvLyBBc2tzIHRoZSBwbHVnLWluIHByb2Nlc3MgdG8gY3JlYXRl
IGEgbmV3IGNvbm5lY3Rpb24gdG8gYSB3ZWIgcHJvY2Vzcy4gVGhlIGNvbm5lY3Rpb24gaWRlbnRp
ZmllciB3aWxsIGJlCiAgICAgLy8gZW5jb2RlZCBpbiB0aGUgZ2l2ZW4gYXJndW1lbnQgZW5jb2Rl
ciBhbmQgc2VudCBiYWNrIHRvIHRoZSBjb25uZWN0aW9uIG9mIHRoZSBnaXZlbiB3ZWIgcHJvY2Vz
cy4KLSAgICB2b2lkIGdldFBsdWdpblByb2Nlc3NDb25uZWN0aW9uKE1lc3NhZ2VzOjpXZWJQcm9j
ZXNzUHJveHk6OkdldFBsdWdpblByb2Nlc3NDb25uZWN0aW9uOjpEZWxheWVkUmVwbHkmJik7Cisg
ICAgdm9pZCBnZXRQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbihNZXNzYWdlczo6V2ViUHJvY2Vzc1By
b3h5OjpHZXRQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbkRlbGF5ZWRSZXBseSYmKTsKIAogICAgIHZv
aWQgZmV0Y2hXZWJzaXRlRGF0YShDb21wbGV0aW9uSGFuZGxlcjx2b2lkIChWZWN0b3I8U3RyaW5n
Pik+JiYpOwogICAgIHZvaWQgZGVsZXRlV2Vic2l0ZURhdGEoV2FsbFRpbWUgbW9kaWZpZWRTaW5j
ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCAoKT4mJik7CkBAIC0xNDMsNyArMTQzLDcgQEAgcHJp
dmF0ZToKICAgICAvLyBUaGUgY29ubmVjdGlvbiB0byB0aGUgcGx1Zy1pbiBob3N0IHByb2Nlc3Mu
CiAgICAgUmVmUHRyPElQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOwogCi0gICAgRGVxdWU8
TWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb246OkRl
bGF5ZWRSZXBseT4gbV9wZW5kaW5nQ29ubmVjdGlvblJlcGxpZXM7CisgICAgRGVxdWU8TWVzc2Fn
ZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25EZWxheWVkUmVw
bHk+IG1fcGVuZGluZ0Nvbm5lY3Rpb25SZXBsaWVzOwogCiAgICAgVmVjdG9yPHVpbnQ2NF90PiBt
X3BlbmRpbmdGZXRjaFdlYnNpdGVEYXRhUmVxdWVzdHM7CiAgICAgSGFzaE1hcDx1aW50NjRfdCwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCAoVmVjdG9yPFN0cmluZz4pPj4gbV9wZW5kaW5nRmV0Y2hX
ZWJzaXRlRGF0YUNhbGxiYWNrczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1Byb3Zpc2lvbmFsUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm92aXNp
b25hbFBhZ2VQcm94eS5oCmluZGV4IDE3NTIxNTA0NzQ4YmZiNmYyMDYzY2UxNGNhNDVmZDFjYzcx
ODNlY2IuLmYzMDFhN2NiOWVhODY0MmExYWJmNDY0MTdkMTUzNTRiZjdjMmUwNjQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuaApAQCAtMjgsNyAr
MjgsNyBAQAogI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgogI2luY2x1ZGUgIlNhbmRib3hF
eHRlbnNpb24uaCIKICNpbmNsdWRlICJXZWJGcmFtZVBvbGljeUxpc3RlbmVyUHJveHkuaCIKLSNp
bmNsdWRlICJXZWJQYWdlUHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYlBhZ2VQcm94eU1l
c3NhZ2VzUmVwbGllcy5oIgogI2luY2x1ZGUgIldlYnNpdGVQb2xpY2llc0RhdGEuaCIKICNpbmNs
dWRlIDx3dGYvV2Vha1B0ci5oPgogCkBAIC0xMTEsNyArMTExLDcgQEAgcHJpdmF0ZToKICAgICB2
b2lkIGJhY2tGb3J3YXJkR29Ub0l0ZW0oY29uc3QgV2ViQ29yZTo6QmFja0ZvcndhcmRJdGVtSWRl
bnRpZmllciYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxl
JiYpPiYmKTsKICAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jKFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllciwgYm9vbCBpc01haW5GcmFtZSwgV2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW5EYXRhJiYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0X3Qg
bmF2aWdhdGlvbklELCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmLAogICAgICAgICBGcmFtZUluZm9E
YXRhJiYsIE9wdGlvbmFsPFdlYlBhZ2VQcm94eUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlE
LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29y
ZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJiByZXF1ZXN0Qm9k
eSwKLSAgICAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmIHJlZGlyZWN0UmVzcG9uc2Us
IGNvbnN0IFVzZXJEYXRhJiwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGVjaWRlUG9saWN5Rm9y
TmF2aWdhdGlvbkFjdGlvblN5bmM6OkRlbGF5ZWRSZXBseSYmKTsKKyAgICAgICAgV2ViQ29yZTo6
UmVzb3VyY2VSZXNwb25zZSYmIHJlZGlyZWN0UmVzcG9uc2UsIGNvbnN0IFVzZXJEYXRhJiwgTWVz
c2FnZXM6OldlYlBhZ2VQcm94eTo6RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmNE
ZWxheWVkUmVwbHkmJik7CiAjaWYgVVNFKFFVSUNLX0xPT0spCiAgICAgdm9pZCBkaWRSZXF1ZXN0
UGFzc3dvcmRGb3JRdWlja0xvb2tEb2N1bWVudEluTWFpbkZyYW1lKGNvbnN0IFN0cmluZyYgZmls
ZU5hbWUpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TdXNw
ZW5kZWRQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1N1c3BlbmRlZFBhZ2VQ
cm94eS5oCmluZGV4IDc2NGJlZGM3N2JlODFiNDViNDkyNjViYTExNWFjYWY3YjUwNzcwMjQuLmVl
MmM2YTM3NTI0ZjJjOTFhZGFmZWFhYmNmNzkzYWRlNmQ2MWQ4ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1N1c3BlbmRlZFBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1N1c3BlbmRlZFBhZ2VQcm94eS5oCkBAIC0yOCwxMSArMjgsMTUgQEAKICNp
bmNsdWRlICJDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiUHJvY2Vzc1Rocm90dGxlci5oIgogI2lu
Y2x1ZGUgIldlYkJhY2tGb3J3YXJkTGlzdEl0ZW0uaCIKLSNpbmNsdWRlICJXZWJQYWdlUHJveHlN
ZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYlBhZ2VQcm94eU1lc3NhZ2VzUmVwbGllcy5oIgogI2lu
Y2x1ZGUgPFdlYkNvcmUvRnJhbWVJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50
ZWQuaD4KICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCituYW1lc3BhY2UgV2ViQ29yZSB7Citj
bGFzcyBSZWdpc3RyYWJsZURvbWFpbjsKK30KKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNz
IFdlYkJhY2tGb3J3YXJkQ2FjaGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmNwcAppbmRleCBlYjkwYzVhYmQzMGJjODFjYTQwYzBkZjNmZjQ2YWI1MTUwNDZhNzhkLi41Zjhk
NTA2OTRlMDJmNjg5ZWYzMGYxMmEzMmJkZTdmNDM3YmFhNmJlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTE1MCw4ICsxNTAsNiBAQAogI2luY2x1ZGUgPFdl
YkNvcmUvRnJhbWVMb2FkZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0dsb2JhbEZyYW1lSWRlbnRp
Zmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvR2xvYmFsV2luZG93SWRlbnRpZmllci5oPgotI2lu
Y2x1ZGUgPFdlYkNvcmUvSlNET01CaW5kaW5nLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9KU0RPTUV4
Y2VwdGlvbkhhbmRsaW5nLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9MZW5ndGhCb3guaD4KICNpbmNs
dWRlIDxXZWJDb3JlL01JTUVUeXBlUmVnaXN0cnkuaD4KICNpbmNsdWRlIDxXZWJDb3JlL01lZGlh
U3RyZWFtUmVxdWVzdC5oPgpAQCAtMjU2LDYgKzI1NCwxNSBAQAogI2luY2x1ZGUgPGQzZDExXzEu
aD4KICNlbmRpZgogCituYW1lc3BhY2UgV2ViQ29yZSB7CitzdHJ1Y3QgRXhjZXB0aW9uRGV0YWls
cyB7CisgICAgU3RyaW5nIG1lc3NhZ2U7CisgICAgaW50IGxpbmVOdW1iZXIgeyAwIH07CisgICAg
aW50IGNvbHVtbk51bWJlciB7IDAgfTsKKyAgICBTdHJpbmcgc291cmNlVVJMOworfTsKK30KKwog
Ly8gVGhpcyBjb250cm9scyB3aGF0IHN0cmF0ZWd5IHdlIHVzZSBmb3IgbW91c2Ugd2hlZWwgY29h
bGVzY2luZy4KICNkZWZpbmUgTUVSR0VfV0hFRUxfRVZFTlRTIDEKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCA4NGU3NTVlY2RlMDhhMDI5ZmQ2NDIwNzM5ZjhjNzk1
MzI0ODczYjU1Li40NTgxN2Q3YWRlZmQ0YjdjOTA0MjAyOTEyZmNiYmNkOGI3NDhhOTY3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtNjIsOSArNjIsOSBAQAogI2lu
Y2x1ZGUgIldlYlBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oIgogI2luY2x1ZGUgIldlYlBh
Z2VJbmplY3RlZEJ1bmRsZUNsaWVudC5oIgogI2luY2x1ZGUgIldlYlBhZ2VQcm94eUlkZW50aWZp
ZXIuaCIKKyNpbmNsdWRlICJXZWJQYWdlUHJveHlNZXNzYWdlc1JlcGxpZXMuaCIKICNpbmNsdWRl
ICJXZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eS5oIgogI2luY2x1ZGUgIldlYlByZWZlcmVuY2Vz
LmgiCi0jaW5jbHVkZSAiV2ViUGFnZVByb3h5TWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJQb3B1
cE1lbnVQcm94eS5oIgogI2luY2x1ZGUgIldlYlVuZG9TdGVwSUQuaCIKICNpbmNsdWRlICJXZWJz
aXRlUG9saWNpZXNEYXRhLmgiCkBAIC0xNzMsOCArMTczLDEzIEBAIGNsYXNzIFVJQ2xpZW50Owog
Y2xhc3MgVVJMUmVxdWVzdDsKIH0KIAorbmFtZXNwYWNlIEluc3BlY3RvciB7CitlbnVtIGNsYXNz
IEluc3BlY3RvclRhcmdldFR5cGUgOiB1aW50OF90OworfQorCiBuYW1lc3BhY2UgSVBDIHsKIGNs
YXNzIERlY29kZXI7CitjbGFzcyBGb3JtRGF0YVJlZmVyZW5jZTsKIH0KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewpAQCAtMjAwLDYgKzIwNSw3IEBAIGVudW0gY2xhc3MgRE9NUGFzdGVBY2Nlc3NSZXNw
b25zZSA6IHVpbnQ4X3Q7CiBlbnVtIGNsYXNzIExvY2tCYWNrRm9yd2FyZExpc3QgOiBib29sOwog
ZW51bSBjbGFzcyBIYXNJbnNlY3VyZUNvbnRlbnQgOiBib29sOwogZW51bSBjbGFzcyBOb3RpZmlj
YXRpb25EaXJlY3Rpb24gOiB1aW50OF90OworZW51bSBjbGFzcyBSb3V0ZVNoYXJpbmdQb2xpY3kg
OiB1aW50OF90OwogZW51bSBjbGFzcyBTaG91bGRTYW1wbGUgOiBib29sOwogZW51bSBjbGFzcyBT
aG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgOiBib29sOwogZW51bSBjbGFzcyBXcml0aW5nRGly
ZWN0aW9uIDogdWludDhfdDsKQEAgLTIwOSw5ICsyMTUsMTEgQEAgc3RydWN0IEJhY2tGb3J3YXJk
SXRlbUlkZW50aWZpZXI7CiBzdHJ1Y3QgQ29udGVudFJ1bGVMaXN0UmVzdWx0czsKIHN0cnVjdCBE
YXRhTGlzdFN1Z2dlc3Rpb25JbmZvcm1hdGlvbjsKIHN0cnVjdCBEaWN0aW9uYXJ5UG9wdXBJbmZv
Oworc3RydWN0IERyYWdJdGVtOwogc3RydWN0IEV4Y2VwdGlvbkRldGFpbHM7CiBzdHJ1Y3QgRmls
ZUNob29zZXJTZXR0aW5nczsKIHN0cnVjdCBHbG9iYWxXaW5kb3dJZGVudGlmaWVyOworc3RydWN0
IExpbmtJY29uOwogc3RydWN0IE1lZGlhU3RyZWFtUmVxdWVzdDsKIHN0cnVjdCBNb2NrV2ViQXV0
aGVudGljYXRpb25Db25maWd1cmF0aW9uOwogc3RydWN0IFByZXdhcm1JbmZvcm1hdGlvbjsKQEAg
LTI5MCwxOSArMjk4LDI4IEBAIGNsYXNzIFdlYlZpZXdEaWRNb3ZlVG9XaW5kb3dPYnNlcnZlcjsK
IAogc3RydWN0IEF0dHJpYnV0ZWRTdHJpbmc7CiBzdHJ1Y3QgQ29sb3JTcGFjZURhdGE7CitzdHJ1
Y3QgRGF0YURldGVjdGlvblJlc3VsdDsKIHN0cnVjdCBEb2N1bWVudEVkaXRpbmdDb250ZXh0Owog
c3RydWN0IERvY3VtZW50RWRpdGluZ0NvbnRleHRSZXF1ZXN0Owogc3RydWN0IEVkaXRpbmdSYW5n
ZTsKIHN0cnVjdCBFZGl0b3JTdGF0ZTsKK3N0cnVjdCBGb2N1c2VkRWxlbWVudEluZm9ybWF0aW9u
Owogc3RydWN0IEZvbnRJbmZvOwogc3RydWN0IEZyYW1lSW5mb0RhdGE7CiBzdHJ1Y3QgSW5zZXJ0
VGV4dE9wdGlvbnM7CitzdHJ1Y3QgSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb247CiBz
dHJ1Y3QgSW50ZXJhY3Rpb25JbmZvcm1hdGlvblJlcXVlc3Q7CiBzdHJ1Y3QgTG9hZFBhcmFtZXRl
cnM7CitzdHJ1Y3QgTmF2aWdhdGlvbkFjdGlvbkRhdGE7CiBzdHJ1Y3QgUGxhdGZvcm1Qb3B1cE1l
bnVEYXRhOwogc3RydWN0IFByaW50SW5mbzsKK3N0cnVjdCBQREZDb250ZXh0TWVudTsKIHN0cnVj
dCBXZWJBdXRvY29ycmVjdGlvbkRhdGE7CitzdHJ1Y3QgV2ViSGl0VGVzdFJlc3VsdERhdGE7Citz
dHJ1Y3QgV2ViTmF2aWdhdGlvbkRhdGFTdG9yZTsKIHN0cnVjdCBXZWJQb3B1cEl0ZW07CitzdHJ1
Y3QgV2ViU2VsZWN0aW9uRGF0YTsKK3N0cnVjdCBXZWJTcGVlY2hTeW50aGVzaXNWb2ljZTsKIHN0
cnVjdCBVUkxTY2hlbWVUYXNrUGFyYW1ldGVyczsKIHN0cnVjdCBVc2VyTWVzc2FnZTsKIApAQCAt
MTQzMCw3ICsxNDQ3LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBzZXRGb2N1cyhib29sIGZvY3Vz
ZWQpOwogICAgIHZvaWQgc2V0V2luZG93RnJhbWUoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0Jik7
Ci0gICAgdm9pZCBnZXRXaW5kb3dGcmFtZShNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpHZXRXaW5k
b3dGcmFtZTo6RGVsYXllZFJlcGx5JiYpOworICAgIHZvaWQgZ2V0V2luZG93RnJhbWUoTWVzc2Fn
ZXM6OldlYlBhZ2VQcm94eTo6R2V0V2luZG93RnJhbWVEZWxheWVkUmVwbHkmJik7CiAgICAgdm9p
ZCBnZXRXaW5kb3dGcmFtZVdpdGhDYWxsYmFjayhGdW5jdGlvbjx2b2lkKFdlYkNvcmU6OkZsb2F0
UmVjdCk+JiYpOwogCiAgICAgV2ViQ29yZTo6VXNlckludGVyZmFjZUxheW91dERpcmVjdGlvbiB1
c2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uKCk7CkBAIC0xNTM4LDcgKzE1NTUsNyBAQCBwdWJs
aWM6CiAgICAgdm9pZCBiYWNrRm9yd2FyZEdvVG9JdGVtU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJv
eHk+JiYsIGNvbnN0IFdlYkNvcmU6OkJhY2tGb3J3YXJkSXRlbUlkZW50aWZpZXImLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYmKT4mJik7CiAgICAgdm9p
ZCBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luY1NoYXJlZChSZWY8V2ViUHJvY2Vz
c1Byb3h5PiYmLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGJvb2wgaXNNYWluRnJhbWUsIFdl
YkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZp
ZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiwKICAgICAg
ICAgRnJhbWVJbmZvRGF0YSYmLCBPcHRpb25hbDxXZWJQYWdlUHJveHlJZGVudGlmaWVyPiBvcmln
aW5hdGluZ1BhZ2VJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmlnaW5hbFJl
cXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNl
JiYgcmVxdWVzdEJvZHksCi0gICAgICAgIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiByZWRp
cmVjdFJlc3BvbnNlLCBjb25zdCBVc2VyRGF0YSYsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRl
Y2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jOjpEZWxheWVkUmVwbHkmJik7CisgICAg
ICAgIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiByZWRpcmVjdFJlc3BvbnNlLCBjb25zdCBV
c2VyRGF0YSYsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRlY2lkZVBvbGljeUZvck5hdmlnYXRp
b25BY3Rpb25TeW5jRGVsYXllZFJlcGx5JiYpOwogI2lmIFVTRShRVUlDS19MT09LKQogICAgIHZv
aWQgZGlkUmVxdWVzdFBhc3N3b3JkRm9yUXVpY2tMb29rRG9jdW1lbnRJbk1haW5GcmFtZVNoYXJl
ZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBjb25zdCBTdHJpbmcmIGZpbGVOYW1lKTsKICNlbmRp
ZgpAQCAtMTY3OSw3ICsxNjk2LDcgQEAgcHJpdmF0ZToKICAgICAgICAgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXNwb25zZSYmIHJlZGlyZWN0UmVzcG9uc2UsIGNvbnN0IFVzZXJEYXRhJiwgdWludDY0X3Qg
bGlzdGVuZXJJRCk7CiAgICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3lu
YyhXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGJvb2wgaXNNYWluRnJhbWUsIFdlYkNvcmU6OlNl
Y3VyaXR5T3JpZ2luRGF0YSYmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2
NF90IG5hdmlnYXRpb25JRCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiwKICAgICAgICAgRnJhbWVJ
bmZvRGF0YSYmLCBPcHRpb25hbDxXZWJQYWdlUHJveHlJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1Bh
Z2VJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYgcmVxdWVz
dEJvZHksCi0gICAgICAgIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiByZWRpcmVjdFJlc3Bv
bnNlLCBjb25zdCBVc2VyRGF0YSYsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRlY2lkZVBvbGlj
eUZvck5hdmlnYXRpb25BY3Rpb25TeW5jOjpEZWxheWVkUmVwbHkmJik7CisgICAgICAgIFdlYkNv
cmU6OlJlc291cmNlUmVzcG9uc2UmJiByZWRpcmVjdFJlc3BvbnNlLCBjb25zdCBVc2VyRGF0YSYs
IE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25T
eW5jRGVsYXllZFJlcGx5JiYpOwogICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0
aW9uKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmln
aW5EYXRhJiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCBOYXZpZ2F0aW9uQWN0aW9u
RGF0YSYmLAogICAgICAgICBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgY29uc3QgU3RyaW5n
JiBmcmFtZU5hbWUsIHVpbnQ2NF90IGxpc3RlbmVySUQsIGNvbnN0IFVzZXJEYXRhJik7CiAgICAg
dm9pZCBkZWNpZGVQb2xpY3lGb3JSZXNwb25zZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNv
bnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRl
bnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELApAQCAtMTcwMCwxMSArMTcxNywxMSBAQCBw
cml2YXRlOgogICAgIHZvaWQgZGlkVXBkYXRlSGlzdG9yeVRpdGxlKGNvbnN0IFN0cmluZyYgdGl0
bGUsIGNvbnN0IFN0cmluZyYgdXJsLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpOwogCiAgICAg
Ly8gVUkgY2xpZW50Ci0gICAgdm9pZCBjcmVhdGVOZXdQYWdlKGNvbnN0IEZyYW1lSW5mb0RhdGEm
LCBPcHRpb25hbDxXZWJQYWdlUHJveHlJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwgV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIFdlYkNvcmU6OldpbmRvd0ZlYXR1cmVzJiYsIE5hdmln
YXRpb25BY3Rpb25EYXRhJiYsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkNyZWF0ZU5ld1BhZ2U6
OkRlbGF5ZWRSZXBseSYmKTsKKyAgICB2b2lkIGNyZWF0ZU5ld1BhZ2UoY29uc3QgRnJhbWVJbmZv
RGF0YSYsIE9wdGlvbmFsPFdlYlBhZ2VQcm94eUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlE
LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgV2ViQ29yZTo6V2luZG93RmVhdHVyZXMmJiwg
TmF2aWdhdGlvbkFjdGlvbkRhdGEmJiwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6Q3JlYXRlTmV3
UGFnZURlbGF5ZWRSZXBseSYmKTsKICAgICB2b2lkIHNob3dQYWdlKCk7Ci0gICAgdm9pZCBydW5K
YXZhU2NyaXB0QWxlcnQoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbkRhdGEmLCBjb25zdCBTdHJpbmcmLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5
OjpSdW5KYXZhU2NyaXB0QWxlcnQ6OkRlbGF5ZWRSZXBseSYmKTsKLSAgICB2b2lkIHJ1bkphdmFT
Y3JpcHRDb25maXJtKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW5EYXRhJiwgY29uc3QgU3RyaW5nJiwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6
UnVuSmF2YVNjcmlwdENvbmZpcm06OkRlbGF5ZWRSZXBseSYmKTsKLSAgICB2b2lkIHJ1bkphdmFT
Y3JpcHRQcm9tcHQoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbkRhdGEmLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBNZXNzYWdlczo6
V2ViUGFnZVByb3h5OjpSdW5KYXZhU2NyaXB0UHJvbXB0OjpEZWxheWVkUmVwbHkmJik7CisgICAg
dm9pZCBydW5KYXZhU2NyaXB0QWxlcnQoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBX
ZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmLCBjb25zdCBTdHJpbmcmLCBNZXNzYWdlczo6V2Vi
UGFnZVByb3h5OjpSdW5KYXZhU2NyaXB0QWxlcnREZWxheWVkUmVwbHkmJik7CisgICAgdm9pZCBy
dW5KYXZhU2NyaXB0Q29uZmlybShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNv
cmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYsIGNvbnN0IFN0cmluZyYsIE1lc3NhZ2VzOjpXZWJQYWdl
UHJveHk6OlJ1bkphdmFTY3JpcHRDb25maXJtRGVsYXllZFJlcGx5JiYpOworICAgIHZvaWQgcnVu
SmF2YVNjcmlwdFByb21wdChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luRGF0YSYsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIE1lc3Nh
Z2VzOjpXZWJQYWdlUHJveHk6OlJ1bkphdmFTY3JpcHRQcm9tcHREZWxheWVkUmVwbHkmJik7CiAg
ICAgdm9pZCBzZXRTdGF0dXNUZXh0KGNvbnN0IFN0cmluZyYpOwogICAgIHZvaWQgbW91c2VEaWRN
b3ZlT3ZlckVsZW1lbnQoV2ViSGl0VGVzdFJlc3VsdERhdGEmJiwgdWludDMyX3QgbW9kaWZpZXJz
LCBVc2VyRGF0YSYmKTsKIApAQCAtMTcxMiwyOSArMTcyOSwyOSBAQCBwcml2YXRlOgogICAgIHZv
aWQgdW5hdmFpbGFibGVQbHVnaW5CdXR0b25DbGlja2VkKHVpbnQzMl90IG9wYXF1ZVBsdWdpblVu
YXZhaWxhYmlsaXR5UmVhc29uLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBjb25zdCBTdHJpbmcm
IHBsdWdpblVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBwbHVnaW5zUGFnZVVSTFN0cmluZywgY29u
c3QgU3RyaW5nJiBmcmFtZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBwYWdlVVJMU3RyaW5nKTsK
ICNlbmRpZiAvLyBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKICNpZiBFTkFCTEUoV0VCR0wp
Ci0gICAgdm9pZCB3ZWJHTFBvbGljeUZvclVSTChVUkwmJiwgTWVzc2FnZXM6OldlYlBhZ2VQcm94
eTo6V2ViR0xQb2xpY3lGb3JVUkw6OkRlbGF5ZWRSZXBseSYmKTsKLSAgICB2b2lkIHJlc29sdmVX
ZWJHTFBvbGljeUZvclVSTChVUkwmJiwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UmVzb2x2ZVdl
YkdMUG9saWN5Rm9yVVJMOjpEZWxheWVkUmVwbHkmJik7CisgICAgdm9pZCB3ZWJHTFBvbGljeUZv
clVSTChVUkwmJiwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6V2ViR0xQb2xpY3lGb3JVUkxEZWxh
eWVkUmVwbHkmJik7CisgICAgdm9pZCByZXNvbHZlV2ViR0xQb2xpY3lGb3JVUkwoVVJMJiYsIE1l
c3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJlc29sdmVXZWJHTFBvbGljeUZvclVSTERlbGF5ZWRSZXBs
eSYmKTsKICNlbmRpZiAvLyBFTkFCTEUoV0VCR0wpCiAgICAgdm9pZCBzZXRUb29sYmFyc0FyZVZp
c2libGUoYm9vbCB0b29sYmFyc0FyZVZpc2libGUpOwotICAgIHZvaWQgZ2V0VG9vbGJhcnNBcmVW
aXNpYmxlKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkdldFRvb2xiYXJzQXJlVmlzaWJsZTo6RGVs
YXllZFJlcGx5JiYpOworICAgIHZvaWQgZ2V0VG9vbGJhcnNBcmVWaXNpYmxlKE1lc3NhZ2VzOjpX
ZWJQYWdlUHJveHk6OkdldFRvb2xiYXJzQXJlVmlzaWJsZURlbGF5ZWRSZXBseSYmKTsKICAgICB2
b2lkIHNldE1lbnVCYXJJc1Zpc2libGUoYm9vbCBtZW51QmFySXNWaXNpYmxlKTsKLSAgICB2b2lk
IGdldE1lbnVCYXJJc1Zpc2libGUoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6R2V0TWVudUJhcklz
VmlzaWJsZTo6RGVsYXllZFJlcGx5JiYpOworICAgIHZvaWQgZ2V0TWVudUJhcklzVmlzaWJsZShN
ZXNzYWdlczo6V2ViUGFnZVByb3h5OjpHZXRNZW51QmFySXNWaXNpYmxlRGVsYXllZFJlcGx5JiYp
OwogICAgIHZvaWQgc2V0U3RhdHVzQmFySXNWaXNpYmxlKGJvb2wgc3RhdHVzQmFySXNWaXNpYmxl
KTsKLSAgICB2b2lkIGdldFN0YXR1c0JhcklzVmlzaWJsZShNZXNzYWdlczo6V2ViUGFnZVByb3h5
OjpHZXRTdGF0dXNCYXJJc1Zpc2libGU6OkRlbGF5ZWRSZXBseSYmKTsKKyAgICB2b2lkIGdldFN0
YXR1c0JhcklzVmlzaWJsZShNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpHZXRTdGF0dXNCYXJJc1Zp
c2libGVEZWxheWVkUmVwbHkmJik7CiAgICAgdm9pZCBnZXRJc1ZpZXdWaXNpYmxlKGJvb2wmKTsK
ICAgICB2b2lkIHNldElzUmVzaXphYmxlKGJvb2wgaXNSZXNpemFibGUpOwotICAgIHZvaWQgc2Ny
ZWVuVG9Sb290Vmlldyhjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgc2NyZWVuUG9pbnQsIE1lc3Nh
Z2VzOjpXZWJQYWdlUHJveHk6OlNjcmVlblRvUm9vdFZpZXc6OkRlbGF5ZWRSZXBseSYmKTsKLSAg
ICB2b2lkIHJvb3RWaWV3VG9TY3JlZW4oY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgdmlld1JlY3Qs
IE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJvb3RWaWV3VG9TY3JlZW46OkRlbGF5ZWRSZXBseSYm
KTsKKyAgICB2b2lkIHNjcmVlblRvUm9vdFZpZXcoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHNj
cmVlblBvaW50LCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTY3JlZW5Ub1Jvb3RWaWV3RGVsYXll
ZFJlcGx5JiYpOworICAgIHZvaWQgcm9vdFZpZXdUb1NjcmVlbihjb25zdCBXZWJDb3JlOjpJbnRS
ZWN0JiB2aWV3UmVjdCwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6Um9vdFZpZXdUb1NjcmVlbkRl
bGF5ZWRSZXBseSYmKTsKICAgICB2b2lkIGFjY2Vzc2liaWxpdHlTY3JlZW5Ub1Jvb3RWaWV3KGNv
bnN0IFdlYkNvcmU6OkludFBvaW50JiBzY3JlZW5Qb2ludCwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChXZWJDb3JlOjpJbnRQb2ludCk+JiYpOwogICAgIHZvaWQgcm9vdFZpZXdUb0FjY2Vzc2liaWxp
dHlTY3JlZW4oY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgdmlld1JlY3QsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoV2ViQ29yZTo6SW50UmVjdCk+JiYpOwotICAgIHZvaWQgcnVuQmVmb3JlVW5sb2Fk
Q29uZmlybVBhbmVsKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW5EYXRhJiwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBNZXNzYWdlczo6V2ViUGFn
ZVByb3h5OjpSdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWw6OkRlbGF5ZWRSZXBseSYmKTsKKyAg
ICB2b2lkIHJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbChXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYsIGNvbnN0IFN0cmluZyYgbWVz
c2FnZSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVs
RGVsYXllZFJlcGx5JiYpOwogICAgIHZvaWQgZGlkQ2hhbmdlVmlld3BvcnRQcm9wZXJ0aWVzKGNv
bnN0IFdlYkNvcmU6OlZpZXdwb3J0QXR0cmlidXRlcyYpOwogICAgIHZvaWQgcGFnZURpZFNjcm9s
bCgpOwogICAgIHZvaWQgcnVuT3BlblBhbmVsKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29u
c3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiwgY29uc3QgV2ViQ29yZTo6RmlsZUNob29z
ZXJTZXR0aW5ncyYpOwogICAgIHZvaWQgc2hvd1NoYXJlU2hlZXQoY29uc3QgV2ViQ29yZTo6U2hh
cmVEYXRhV2l0aFBhcnNlZFVSTCYsIFNoYXJlU2hlZXRDYWxsYmFja0lEKTsKICAgICB2b2lkIHBy
aW50RnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KCk+JiYpOwotICAgIHZvaWQgZXhjZWVkZWREYXRhYmFzZVF1b3RhKFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllciwgY29uc3QgU3RyaW5nJiBvcmlnaW5JZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGRh
dGFiYXNlTmFtZSwgY29uc3QgU3RyaW5nJiBkaXNwbGF5TmFtZSwgdWludDY0X3QgY3VycmVudFF1
b3RhLCB1aW50NjRfdCBjdXJyZW50T3JpZ2luVXNhZ2UsIHVpbnQ2NF90IGN1cnJlbnREYXRhYmFz
ZVVzYWdlLCB1aW50NjRfdCBleHBlY3RlZFVzYWdlLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpF
eGNlZWRlZERhdGFiYXNlUXVvdGE6OkRlbGF5ZWRSZXBseSYmKTsKLSAgICB2b2lkIHJlYWNoZWRB
cHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoY29uc3QgU3RyaW5nJiBvcmlnaW5JZGVudGlmaWVy
LCB1aW50NjRfdCBjdXJyZW50UXVvdGEsIHVpbnQ2NF90IHRvdGFsQnl0ZXNOZWVkZWQsIE1lc3Nh
Z2VzOjpXZWJQYWdlUHJveHk6OlJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGE6OkRl
bGF5ZWRSZXBseSYmKTsKKyAgICB2b2lkIGV4Y2VlZGVkRGF0YWJhc2VRdW90YShXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgb3JpZ2luSWRlbnRpZmllciwgY29uc3QgU3Ry
aW5nJiBkYXRhYmFzZU5hbWUsIGNvbnN0IFN0cmluZyYgZGlzcGxheU5hbWUsIHVpbnQ2NF90IGN1
cnJlbnRRdW90YSwgdWludDY0X3QgY3VycmVudE9yaWdpblVzYWdlLCB1aW50NjRfdCBjdXJyZW50
RGF0YWJhc2VVc2FnZSwgdWludDY0X3QgZXhwZWN0ZWRVc2FnZSwgTWVzc2FnZXM6OldlYlBhZ2VQ
cm94eTo6RXhjZWVkZWREYXRhYmFzZVF1b3RhRGVsYXllZFJlcGx5JiYpOworICAgIHZvaWQgcmVh
Y2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YShjb25zdCBTdHJpbmcmIG9yaWdpbklkZW50
aWZpZXIsIHVpbnQ2NF90IGN1cnJlbnRRdW90YSwgdWludDY0X3QgdG90YWxCeXRlc05lZWRlZCwg
TWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90
YURlbGF5ZWRSZXBseSYmKTsKICAgICB2b2lkIHJlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25G
b3JGcmFtZSh1aW50NjRfdCBnZW9sb2NhdGlvbklELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIs
IFN0cmluZyBvcmlnaW5JZGVudGlmaWVyKTsKIAogI2lmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZP
Uk0oV1BFKQpAQCAtMjAyMSw3ICsyMDM4LDcgQEAgcHJpdmF0ZToKICNlbmRpZgogCiAjaWYgRU5B
QkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCi0gICAgdm9pZCBmaW5kUGx1Z2luKGNvbnN0IFN0cmlu
ZyYgbWltZVR5cGUsIHVpbnQzMl90IHByb2Nlc3NUeXBlLCBjb25zdCBTdHJpbmcmIHVybFN0cmlu
ZywgY29uc3QgU3RyaW5nJiBmcmFtZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBwYWdlVVJMU3Ry
aW5nLCBib29sIGFsbG93T25seUFwcGxpY2F0aW9uUGx1Z2lucywgTWVzc2FnZXM6OldlYlBhZ2VQ
cm94eTo6RmluZFBsdWdpbjo6RGVsYXllZFJlcGx5JiYpOworICAgIHZvaWQgZmluZFBsdWdpbihj
b25zdCBTdHJpbmcmIG1pbWVUeXBlLCB1aW50MzJfdCBwcm9jZXNzVHlwZSwgY29uc3QgU3RyaW5n
JiB1cmxTdHJpbmcsIGNvbnN0IFN0cmluZyYgZnJhbWVVUkxTdHJpbmcsIGNvbnN0IFN0cmluZyYg
cGFnZVVSTFN0cmluZywgYm9vbCBhbGxvd09ubHlBcHBsaWNhdGlvblBsdWdpbnMsIE1lc3NhZ2Vz
OjpXZWJQYWdlUHJveHk6OkZpbmRQbHVnaW5EZWxheWVkUmVwbHkmJik7CiAjZW5kaWYKIAogI2lm
IFVTRShRVUlDS19MT09LKQpAQCAtMjA1OCw3ICsyMDc1LDcgQEAgcHJpdmF0ZToKIAogICAgIHZv
aWQgc3RhcnRVUkxTY2hlbWVUYXNrKFVSTFNjaGVtZVRhc2tQYXJhbWV0ZXJzJiYpOwogICAgIHZv
aWQgc3RvcFVSTFNjaGVtZVRhc2sodWludDY0X3QgaGFuZGxlcklkZW50aWZpZXIsIHVpbnQ2NF90
IHRhc2tJZGVudGlmaWVyKTsKLSAgICB2b2lkIGxvYWRTeW5jaHJvbm91c1VSTFNjaGVtZVRhc2so
VVJMU2NoZW1lVGFza1BhcmFtZXRlcnMmJiwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6TG9hZFN5
bmNocm9ub3VzVVJMU2NoZW1lVGFzazo6RGVsYXllZFJlcGx5JiYpOworICAgIHZvaWQgbG9hZFN5
bmNocm9ub3VzVVJMU2NoZW1lVGFzayhVUkxTY2hlbWVUYXNrUGFyYW1ldGVycyYmLCBNZXNzYWdl
czo6V2ViUGFnZVByb3h5OjpMb2FkU3luY2hyb25vdXNVUkxTY2hlbWVUYXNrRGVsYXllZFJlcGx5
JiYpOwogCiAgICAgYm9vbCBjaGVja1VSTFJlY2VpdmVkRnJvbUN1cnJlbnRPclByZXZpb3VzV2Vi
UHJvY2VzcyhXZWJQcm9jZXNzUHJveHkmLCBjb25zdCBTdHJpbmcmKTsKICAgICBib29sIGNoZWNr
VVJMUmVjZWl2ZWRGcm9tQ3VycmVudE9yUHJldmlvdXNXZWJQcm9jZXNzKFdlYlByb2Nlc3NQcm94
eSYsIGNvbnN0IFVSTCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Bvb2wuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wu
Y3BwCmluZGV4IDEzYmExOTViNjY2MmU4ODM4MzdmMzJjNzBlZTVkZGMwYWI2YjhkYTEuLjAzN2Qy
MjI5NDJmNmE0MDAwOGFhODRkOTliMzM3MWE2MjE5YjFjODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKQEAgLTc3LDYgKzc3LDcgQEAKICNpbmNsdWRlICJX
ZWJQcm9jZXNzTWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzUG9vbE1lc3NhZ2VzLmgi
CiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5LmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5
TWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJzaXRlRGF0YVN0b3JlLmgiCiAjaW5jbHVkZSAiV2Vi
c2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0NJ
bmxpbmVzLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNz
UG9vbC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAppbmRleCA3
N2Q1YWU1NzEzZjk0YzEyOWQzYzNjYjkzYWNjZmZlYjY4YWIzMGJhLi5jZGQ2OGQ2Nzc1NWJhMjY5
OTkzYzk0MTAyN2I2NWY2NzgxNjViMWMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQcm9jZXNzUG9vbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQb29sLmgKQEAgLTM4MSw5ICszODEsOSBAQCBwdWJsaWM6CiAgICAgLy8gTmV0d29yayBQ
cm9jZXNzIE1hbmFnZW1lbnQKICAgICBOZXR3b3JrUHJvY2Vzc1Byb3h5JiBlbnN1cmVOZXR3b3Jr
UHJvY2VzcyhXZWJzaXRlRGF0YVN0b3JlKiB3aXRoV2Vic2l0ZURhdGFTdG9yZSA9IG51bGxwdHIp
OwogICAgIE5ldHdvcmtQcm9jZXNzUHJveHkqIG5ldHdvcmtQcm9jZXNzKCkgeyByZXR1cm4gbV9u
ZXR3b3JrUHJvY2Vzcy5nZXQoKTsgfQotICAgIHZvaWQgbmV0d29ya1Byb2Nlc3NDcmFzaGVkKE5l
dHdvcmtQcm9jZXNzUHJveHkmLCBWZWN0b3I8c3RkOjpwYWlyPFJlZlB0cjxXZWJQcm9jZXNzUHJv
eHk+LCBNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rp
b246OkRlbGF5ZWRSZXBseT4+JiYpOworICAgIHZvaWQgbmV0d29ya1Byb2Nlc3NDcmFzaGVkKE5l
dHdvcmtQcm9jZXNzUHJveHkmLCBWZWN0b3I8c3RkOjpwYWlyPFJlZlB0cjxXZWJQcm9jZXNzUHJv
eHk+LCBNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rp
b25EZWxheWVkUmVwbHk+PiYmKTsKIAotICAgIHZvaWQgZ2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0
aW9uKFdlYlByb2Nlc3NQcm94eSYsIE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldE5ldHdv
cmtQcm9jZXNzQ29ubmVjdGlvbjo6RGVsYXllZFJlcGx5JiYpOworICAgIHZvaWQgZ2V0TmV0d29y
a1Byb2Nlc3NDb25uZWN0aW9uKFdlYlByb2Nlc3NQcm94eSYsIE1lc3NhZ2VzOjpXZWJQcm9jZXNz
UHJveHk6OkdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbkRlbGF5ZWRSZXBseSYmKTsKIAogICAg
IGJvb2wgaXNTZXJ2aWNlV29ya2VyUGFnZUlEKFdlYlBhZ2VQcm94eUlkZW50aWZpZXIpIGNvbnN0
OwogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Byb3h5LmgKaW5kZXggOGE0N2U4MTNmZjhmZDYxOTE1OGM3YWVjNjZmZTBhYWFjMDAx
ZWQ5OC4uN2Q3NDY1OGNkMWFiNDRhNzg2OTY4ZTgzZjRmNDlhYjM1OTBkNzU2OSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKQEAgLTM4LDcgKzM4LDcgQEAKICNp
bmNsdWRlICJWaXNpYmxlV2ViUGFnZUNvdW50ZXIuaCIKICNpbmNsdWRlICJXZWJDb25uZWN0aW9u
VG9XZWJQcm9jZXNzLmgiCiAjaW5jbHVkZSAiV2ViUGFnZVByb3h5SWRlbnRpZmllci5oIgotI2lu
Y2x1ZGUgIldlYlByb2Nlc3NQcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzc1By
b3h5TWVzc2FnZXNSZXBsaWVzLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUlkZW50aWZpZXIu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2VJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9Qcm9jZXNzSWRlbnRpZmllci5oPgpAQCAtNjEsNiArNjEsNyBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiBjbGFzcyBEZWZlcnJhYmxlT25lU2hvdFRpbWVyOwogY2xhc3MgUmVzb3VyY2VSZXF1ZXN0
Owogc3RydWN0IFBsdWdpbkluZm87CitzdHJ1Y3QgUHJld2FybUluZm9ybWF0aW9uOwogc3RydWN0
IFNlY3VyaXR5T3JpZ2luRGF0YTsKIH0KIApAQCAtODAsNiArODEsNyBAQCBjbGFzcyBXZWJQcm9j
ZXNzUG9vbDsKIGNsYXNzIFdlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5OwogY2xhc3MgV2Vi
c2l0ZURhdGFTdG9yZTsKIGVudW0gY2xhc3MgV2Vic2l0ZURhdGFUeXBlOworc3RydWN0IEJhY2tG
b3J3YXJkTGlzdEl0ZW1TdGF0ZTsKIHN0cnVjdCBVc2VyTWVzc2FnZTsKIHN0cnVjdCBXZWJOYXZp
Z2F0aW9uRGF0YVN0b3JlOwogc3RydWN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM7CkBAIC0z
ODAsMTIgKzM4MiwxMiBAQCBwcml2YXRlOgogICAgIHZvaWQgZ2V0UGx1Z2lucyhib29sIHJlZnJl
c2gsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9yPFdlYkNvcmU6OlBsdWdpbkluZm8+JiYg
cGx1Z2lucywgVmVjdG9yPFdlYkNvcmU6OlBsdWdpbkluZm8+JiYgYXBwbGljYXRpb25QbHVnaW5z
LCBPcHRpb25hbDxWZWN0b3I8V2ViQ29yZTo6U3VwcG9ydGVkUGx1Z2luSWRlbnRpZmllcj4+JiYp
PiYmKTsKICNlbmRpZiAvLyBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKICNpZiBFTkFCTEUo
TkVUU0NBUEVfUExVR0lOX0FQSSkKLSAgICB2b2lkIGdldFBsdWdpblByb2Nlc3NDb25uZWN0aW9u
KHVpbnQ2NF90IHBsdWdpblByb2Nlc3NUb2tlbiwgTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6
R2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBseSYmKTsKKyAgICB2b2lkIGdl
dFBsdWdpblByb2Nlc3NDb25uZWN0aW9uKHVpbnQ2NF90IHBsdWdpblByb2Nlc3NUb2tlbiwgTWVz
c2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25EZWxheWVk
UmVwbHkmJik7CiAjZW5kaWYKICAgICB2b2lkIGFkZFBsdWdJbkF1dG9TdGFydE9yaWdpbkhhc2go
U3RyaW5nJiYgcGFnZU9yaWdpbiwgdWludDMyX3QgaGFzaCk7CiAgICAgdm9pZCBwbHVnSW5EaWRS
ZWNlaXZlVXNlckludGVyYWN0aW9uKHVpbnQzMl90IGhhc2gpOwogICAgIAotICAgIHZvaWQgZ2V0
TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldE5l
dHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6RGVsYXllZFJlcGx5JiYpOworICAgIHZvaWQgZ2V0TmV0
d29ya1Byb2Nlc3NDb25uZWN0aW9uKE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldE5ldHdv
cmtQcm9jZXNzQ29ubmVjdGlvbkRlbGF5ZWRSZXBseSYmKTsKIAogICAgIGJvb2wgcGxhdGZvcm1J
c0JlaW5nRGVidWdnZWQoKSBjb25zdDsKICAgICBib29sIHNob3VsZEFsbG93Tm9uVmFsaWRJbmpl
Y3RlZENvZGUoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lv
cy9XS0NvbnRlbnRWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVu
dFZpZXcubW0KaW5kZXggNjIxZWE5MzZiODg3MzRjOWYyYjFiMWM5MDNkY2E5NDM4NjI0NjUzZi4u
OTVlYWU1Y2JhMGI5ODlmMWQ4MzM0NTY0NGNlNDQ4YzQxMDk0YTkyOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcubW0KKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcubW0KQEAgLTQ5LDYgKzQ5LDcgQEAKICNp
bXBvcnQgIldlYkZyYW1lUHJveHkuaCIKICNpbXBvcnQgIldlYktpdDJJbml0aWFsaXplLmgiCiAj
aW1wb3J0ICJXZWJQYWdlR3JvdXAuaCIKKyNpbXBvcnQgIldlYlBhZ2VQcm94eU1lc3NhZ2VzLmgi
CiAjaW1wb3J0ICJXZWJQcm9jZXNzUG9vbC5oIgogI2ltcG9ydCAiX1dLRnJhbWVIYW5kbGVJbnRl
cm5hbC5oIgogI2ltcG9ydCAiX1dLV2ViVmlld1ByaW50Rm9ybWF0dGVySW50ZXJuYWwuaCIKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJh
Y3Rpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVy
YWN0aW9uLm1tCmluZGV4IGJkYTZjY2E0YzUxNjZlMjJiYzFmNmJiMTVlZGNlMjNmM2RlZWNkZGQu
LjA0OWQ2MWNjMmU2NWM1MmIwMWIwOWMzNjA0MWM4ODg0NTEwY2RhZmQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5t
bQpAQCAtNzYsNiArNzYsNyBAQAogI2ltcG9ydCAiV2ViRXZlbnQuaCIKICNpbXBvcnQgIldlYklP
U0V2ZW50RmFjdG9yeS5oIgogI2ltcG9ydCAiV2ViUGFnZU1lc3NhZ2VzLmgiCisjaW1wb3J0ICJX
ZWJQYWdlUHJveHlNZXNzYWdlcy5oIgogI2ltcG9ydCAiV2ViUHJvY2Vzc1Byb3h5LmgiCiAjaW1w
b3J0ICJfV0tBY3RpdmF0ZWRFbGVtZW50SW5mb0ludGVybmFsLmgiCiAjaW1wb3J0ICJfV0tFbGVt
ZW50QWN0aW9uLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvVGls
ZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94eS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5Lm1tCmluZGV4IGNhN2I2
YzUxMzgxMzVhZDMwYzI2OGJhMDU1MjhmMjBhYjk4MzJhODguLjExOGU1ODAwMzE5MDE4OTMyYzk5
MWM2MWM4YTAxOTJiY2UyZGZiMjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5Lm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5Lm1t
CkBAIC0zMyw2ICszMyw3IEBACiAjaW1wb3J0ICJEcmF3aW5nQXJlYVByb3h5TWVzc2FnZXMuaCIK
ICNpbXBvcnQgIkxheWVyVHJlZUNvbnRleHQuaCIKICNpbXBvcnQgIldlYlBhZ2VQcm94eS5oIgor
I2ltcG9ydCAiV2ViUGFnZVByb3h5TWVzc2FnZXMuaCIKICNpbXBvcnQgIldlYlByb2Nlc3NQcm94
eS5oIgogI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9RdWFydHpDb3JlU1BJLmg+CiAjaW1wb3J0IDx3
dGYvQmxvY2tQdHIuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCmluZGV4IGQ1NTdjMTcwZGI1MzdhYmNlNjI2MmVmODYyZDk0YzhlOWRjNTQ1MzQu
LmQ0MjRmYzE0OTVkNTg5YjRlYjQ4OWNjYTIxYmZjOGU3MzJjOTZmNmYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNl
L1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNDU0Nyw3ICs0NTQ3
LDYgQEAKIAkJQzBDRTcyQUMxMjQ3RTc4RDAwQkMwRUM0IC8qIEhhbmRsZU1lc3NhZ2UuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSGFuZGxlTWVzc2FnZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlDMENFNzJEQjEyNDdFOEY3MDBCQzBFQzQgLyogRGVyaXZlZFNv
dXJjZXMubWFrZSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBEZXJpdmVkU291cmNlcy5tYWtlOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDMENFNzMzNjEyNDdGNzBFMDBCQzBFQzQgLyog
Z2VuZXJhdGUtbWVzc2FnZS1yZWNlaXZlci5weSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuc2NyaXB0LnB5dGhv
bjsgcGF0aCA9ICJnZW5lcmF0ZS1tZXNzYWdlLXJlY2VpdmVyLnB5Ijsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKLQkJQzBDRTczMzcxMjQ3RjcwRTAwQkMwRUM0IC8qIGdlbmVyYXRlLW1lc3Nh
Z2VzLWhlYWRlci5weSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuc2NyaXB0LnB5dGhvbjsgcGF0aCA9ICJnZW5l
cmF0ZS1tZXNzYWdlcy1oZWFkZXIucHkiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlD
MEUzQUE0NDEyMDlFMkJBMDBBNDlEMDEgLyogTW9kdWxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IE1vZHVsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDMEUz
QUE0NTEyMDlFMkJBMDBBNDlEMDEgLyogTW9kdWxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IE1vZHVsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUMwRTNBQTQ4MTIwOUU0NTAwMEE0OUQwMSAvKiBNb2R1bGVDRi5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNb2R1bGVDRi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC05MDEyLDcgKzkwMTEsNiBAQAogCQkJCTBGQzA4NTZFMTg3Q0UwQTkwMDc4MEQ4
NiAvKiBfX2luaXRfXy5weSAqLywKIAkJCQk0MTU3ODUzMDIxMjc2QjZGMDBERDM4MDAgLyogY29w
eS13ZWJjb250ZW50LXJlc291cmNlcy10by1wcml2YXRlLWhlYWRlcnMuc2ggKi8sCiAJCQkJQzBD
RTczMzYxMjQ3RjcwRTAwQkMwRUM0IC8qIGdlbmVyYXRlLW1lc3NhZ2UtcmVjZWl2ZXIucHkgKi8s
Ci0JCQkJQzBDRTczMzcxMjQ3RjcwRTAwQkMwRUM0IC8qIGdlbmVyYXRlLW1lc3NhZ2VzLWhlYWRl
ci5weSAqLywKIAkJCQk3Q0RFNzNBMTFGOURBNDE0MDAzOTAzMTIgLyogR2VuZXJhdGVQcmVmZXJl
bmNlcy5yYiAqLywKIAkJCQkwRkMwODU2RjE4N0NFMEE5MDA3ODBEODYgLyogbWVzc2FnZXMucHkg
Ki8sCiAJCQkJMEZDMDg1NzAxODdDRTBBOTAwNzgwRDg2IC8qIG1vZGVsLnB5ICovLApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdl
ckNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dD
b250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwCmluZGV4IDYyMjI4MDgzZWZlNWMxYTkzMDJmNmUz
MTdiNzNjZGE0YWQ4M2Y2NTAuLjRiNGUyZWUyMTY3MmZiZDgzNzQzZGUwMTI0MmY4MGQ4MjQxMWNh
MDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29u
dGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
U3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAKQEAgLTQzLDYgKzQzLDcg
QEAKICNpbmNsdWRlICJXZWJQcmVmZXJlbmNlc1N0b3JlLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vz
cy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NQb29sTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJT
V0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbk1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViU1dTZXJ2
ZXJUb0NvbnRleHRDb25uZWN0aW9uTWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJTZXJ2aWNlV29y
a2VyRmV0Y2hUYXNrQ2xpZW50LmgiCiAjaW5jbHVkZSAiV2ViU29ja2V0UHJvdmlkZXIuaCIKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1h
bmFnZXJDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJT
V0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oCmluZGV4IDI0NzYyNWVkOTViNTFlM2VmZGZiNWQ5
NjlkN2MwZWZkMjllZmZhZGIuLmJmOGI0N2ZiZmQ2Y2E4ZDgwNTk4NzhjMDgyNWQ4MjljNzRiNTg4
YzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29u
dGV4dE1hbmFnZXJDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0
b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uaApAQCAtMzAsNyArMzAsNyBAQAog
I2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKICNp
bmNsdWRlICJXZWJQYWdlUHJveHlJZGVudGlmaWVyLmgiCi0jaW5jbHVkZSAiV2ViU1dDb250ZXh0
TWFuYWdlckNvbm5lY3Rpb25NZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYlNXQ29udGV4dE1hbmFn
ZXJDb25uZWN0aW9uTWVzc2FnZXNSZXBsaWVzLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9FbXB0eUZy
YW1lTG9hZGVyQ2xpZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TV0NvbnRleHRNYW5hZ2VyLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9TZXJ2aWNlV29ya2VyQ2xpZW50RGF0YS5oPgpAQCAtODksNyAr
ODksNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZmlyZUFjdGl2YXRlRXZlbnQoV2ViQ29yZTo6U2Vy
dmljZVdvcmtlcklkZW50aWZpZXIpOwogICAgIHZvaWQgc29mdFVwZGF0ZShXZWJDb3JlOjpTZXJ2
aWNlV29ya2VySWRlbnRpZmllcik7CiAgICAgdm9pZCB0ZXJtaW5hdGVXb3JrZXIoV2ViQ29yZTo6
U2VydmljZVdvcmtlcklkZW50aWZpZXIpOwotICAgIHZvaWQgc3luY1Rlcm1pbmF0ZVdvcmtlcihX
ZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgTWVzc2FnZXM6OldlYlNXQ29udGV4dE1h
bmFnZXJDb25uZWN0aW9uOjpTeW5jVGVybWluYXRlV29ya2VyOjpEZWxheWVkUmVwbHkmJik7Cisg
ICAgdm9pZCBzeW5jVGVybWluYXRlV29ya2VyKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlm
aWVyLCBNZXNzYWdlczo6V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OlN5bmNUZXJtaW5h
dGVXb3JrZXJEZWxheWVkUmVwbHkmJik7CiAgICAgdm9pZCBmaW5kQ2xpZW50QnlJZGVudGlmaWVy
Q29tcGxldGVkKHVpbnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyLCBPcHRpb25hbDxXZWJDb3JlOjpT
ZXJ2aWNlV29ya2VyQ2xpZW50RGF0YT4mJiwgYm9vbCBoYXNTZWN1cml0eUVycm9yKTsKICAgICB2
b2lkIG1hdGNoQWxsQ29tcGxldGVkKHVpbnQ2NF90IG1hdGNoQWxsUmVxdWVzdElkZW50aWZpZXIs
IFZlY3RvcjxXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YT4mJik7CiAgICAgdm9pZCBj
bGFpbUNvbXBsZXRlZCh1aW50NjRfdCBjbGFpbVJlcXVlc3RJZGVudGlmaWVyKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCBhNjIyNGYwYTQwNjVjMjc3
ZGFkYTdkMTBkNWY3OWE4YzU3MjBkNGU3Li45NDY4ZDMxNzY1ZGY1NWI2OGRhZGIyNmY4NzRhNmI5
MTc0Zjg5ZDlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5o
CkBAIC00OCw5ICs0OCwxMCBAQAogI2luY2x1ZGUgIlNoYXJlU2hlZXRDYWxsYmFja0lELmgiCiAj
aW5jbHVkZSAiU2hhcmVkTWVtb3J5LmgiCiAjaW5jbHVkZSAiU3RvcmFnZU5hbWVzcGFjZUlkZW50
aWZpZXIuaCIKKyNpbmNsdWRlICJUcmFuc2FjdGlvbklELmgiCiAjaW5jbHVkZSAiVXNlckRhdGEu
aCIKICNpbmNsdWRlICJXZWJCYWNrRm9yd2FyZExpc3RQcm94eS5oIgotI2luY2x1ZGUgIldlYlBh
Z2VNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYlBhZ2VNZXNzYWdlc1JlcGxpZXMuaCIKICNpbmNs
dWRlICJXZWJVUkxTY2hlbWVIYW5kbGVyLmgiCiAjaW5jbHVkZSAiV2ViVW5kb1N0ZXBJRC5oIgog
I2luY2x1ZGUgIldlYlVzZXJDb250ZW50Q29udHJvbGxlci5oIgpAQCAtMTAwLDcgKzEwMSw2IEBA
IHR5cGVkZWYgc3RydWN0IF9BdGtPYmplY3QgQXRrT2JqZWN0OwogCiAjaWYgUExBVEZPUk0oSU9T
X0ZBTUlMWSkKICNpbmNsdWRlICJHZXN0dXJlVHlwZXMuaCIKLSNpbmNsdWRlICJXZWJQYWdlTWVz
c2FnZXMuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0ludFBvaW50SGFzaC5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvVmlld3BvcnRDb25maWd1cmF0aW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9XS0NvbnRl
bnRPYnNlcnZhdGlvbi5oPgpAQCAtMTc1LDcgKzE3NSw2IEBAIGNsYXNzIFJlc291cmNlUmVzcG9u
c2U7CiBjbGFzcyBTZWxlY3Rpb25SZWN0OwogY2xhc3MgU2hhcmVkQnVmZmVyOwogY2xhc3MgU3Vi
c3RpdHV0ZURhdGE7Ci1jbGFzcyBTeW50aGV0aWNFZGl0aW5nQ29tbWFuZFR5cGU7CiBjbGFzcyBU
ZXh0Q2hlY2tpbmdSZXF1ZXN0OwogY2xhc3MgVmlzaWJsZVBvc2l0aW9uOwogCkBAIC0yNTgsMTAg
KzI1NywxMyBAQCBjbGFzcyBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjsKIAogZW51bSBGaW5k
T3B0aW9ucyA6IHVpbnQxNl90OwogZW51bSBjbGFzcyBEcmFnQ29udHJvbGxlckFjdGlvbiA6IHVp
bnQ4X3Q7CitlbnVtIGNsYXNzIFN5bnRoZXRpY0VkaXRpbmdDb21tYW5kVHlwZSA6IHVpbnQ4X3Q7
CiAKIHN0cnVjdCBBdHRyaWJ1dGVkU3RyaW5nOwogc3RydWN0IEJhY2tGb3J3YXJkTGlzdEl0ZW1T
dGF0ZTsKIHN0cnVjdCBEYXRhRGV0ZWN0aW9uUmVzdWx0Oworc3RydWN0IERvY3VtZW50RWRpdGlu
Z0NvbnRleHQ7CitzdHJ1Y3QgRG9jdW1lbnRFZGl0aW5nQ29udGV4dFJlcXVlc3Q7CiBzdHJ1Y3Qg
RWRpdG9yU3RhdGU7CiBzdHJ1Y3QgRm9udEluZm87CiBzdHJ1Y3QgSW5zZXJ0VGV4dE9wdGlvbnM7
CkBAIC04NzksNyArODgxLDcgQEAgcHVibGljOgogI2VuZGlmCiAKICNpZiBQTEFURk9STShJT1Nf
RkFNSUxZKQotICAgIHZvaWQgY29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmdBbmREcmF3VG9QREYoV2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBQcmludEluZm8mLCBDYWxsYmFja0lELCBNZXNz
YWdlczo6V2ViUGFnZTo6Q29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmdBbmREcmF3VG9QREY6OkRlbGF5
ZWRSZXBseSYmKTsKKyAgICB2b2lkIGNvbXB1dGVQYWdlc0ZvclByaW50aW5nQW5kRHJhd1RvUERG
KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgUHJpbnRJbmZvJiwgQ2FsbGJhY2tJRCwg
TWVzc2FnZXM6OldlYlBhZ2U6OkNvbXB1dGVQYWdlc0ZvclByaW50aW5nQW5kRHJhd1RvUERGRGVs
YXllZFJlcGx5JiYpOwogI2VuZGlmCiAKICAgICB2b2lkIGRyYXdUb1BERihXZWJDb3JlOjpGcmFt
ZUlkZW50aWZpZXIsIGNvbnN0IE9wdGlvbmFsPFdlYkNvcmU6OkZsb2F0UmVjdD4mLCBDYWxsYmFj
a0lEKTsKQEAgLTEzMDcsNyArMTMwOSw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBleGVjdXRlS2V5
cHJlc3NDb21tYW5kc0ludGVybmFsKGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpLZXlwcmVzc0NvbW1h
bmQ+JiwgV2ViQ29yZTo6S2V5Ym9hcmRFdmVudCopOwogI2VuZGlmCiAKLSAgICB2b2lkIHRlc3RQ
cm9jZXNzSW5jb21pbmdTeW5jTWVzc2FnZXNXaGVuV2FpdGluZ0ZvclN5bmNSZXBseShNZXNzYWdl
czo6V2ViUGFnZTo6VGVzdFByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9y
U3luY1JlcGx5OjpEZWxheWVkUmVwbHkmJik7CisgICAgdm9pZCB0ZXN0UHJvY2Vzc0luY29taW5n
U3luY01lc3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkoTWVzc2FnZXM6OldlYlBhZ2U6OlRl
c3RQcm9jZXNzSW5jb21pbmdTeW5jTWVzc2FnZXNXaGVuV2FpdGluZ0ZvclN5bmNSZXBseURlbGF5
ZWRSZXBseSYmKTsKIAogICAgIHZvaWQgdXBkYXRlRHJhd2luZ0FyZWFMYXllclRyZWVGcmVlemVT
dGF0ZSgpOwogICAgIGJvb2wgbWFya0xheWVyc1ZvbGF0aWxlSW1tZWRpYXRlbHlJZlBvc3NpYmxl
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2Vi
UGFnZUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdl
SU9TLm1tCmluZGV4IDY2MjZjMjQzMTRkNWUxZTk4ODBiY2EwZjhjZjY0MjAzZWVkYWQ1NmIuLjY2
NzNkNjNiODJhYWNlZjYzOGQ0NjUyNzliMmM5ZDAyYjI5MDEyZjQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCkBAIC01NSw2ICs1
NSw3IEBACiAjaW1wb3J0ICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKICNpbXBvcnQgIldlYkZy
YW1lLmgiCiAjaW1wb3J0ICJXZWJJbWFnZS5oIgorI2ltcG9ydCAiV2ViUGFnZU1lc3NhZ2VzLmgi
CiAjaW1wb3J0ICJXZWJQYWdlUHJveHlNZXNzYWdlcy5oIgogI2ltcG9ydCAiV2ViUHJldmlld0xv
YWRlckNsaWVudC5oIgogI2ltcG9ydCAiV2ViUHJvY2Vzcy5oIgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL1dlYlBhZ2VXUEUuY3BwIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL1dlYlBhZ2VXUEUuY3BwCmluZGV4IGMyYjUyNjU5
YTM2ZWE4M2U3YmRlNWNjZjE2ZmYyNzNlNDg0YzgxNTIuLjEyNGRlOTRmMDNiZjRhNzRkOGJlNDZi
Mzg2ZjBiNzYwNDZjNzAwY2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL3dwZS9XZWJQYWdlV1BFLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS93cGUvV2ViUGFnZVdQRS5jcHAKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUg
IldlYktpdFdlYlBhZ2VBY2Nlc3NpYmlsaXR5T2JqZWN0LmgiCiAjaW5jbHVkZSAiV2ViUGFnZVBy
b3h5LmgiCisjaW5jbHVkZSAiV2ViUGFnZVByb3h5TWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJQ
cmVmZXJlbmNlc0tleXMuaCIKICNpbmNsdWRlICJXZWJQcmVmZXJlbmNlc1N0b3JlLmgiCiAjaW5j
bHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuaCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmgKaW5kZXggY2JiYmFj
ZDA0YjNjNDVjYzNiOGVhODk3NDAyNjdhZjA2MGVhOGU2Yi4uZDA0MDE2MTU0MTMyZmM0YmI4ODBh
OTU5Mzg4NTgzMWYzY2E1OWE2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvY29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5oCkBAIC0yOSw3ICsyOSw3IEBACiAK
ICNpbmNsdWRlICJDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCi0j
aW5jbHVkZSAiVmlkZW9GdWxsc2NyZWVuTWFuYWdlck1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oIgogI2luY2x1ZGUgPFdlYkNvcmUv
RXZlbnRMaXN0ZW5lci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSFRNTE1lZGlhRWxlbWVudEVudW1z
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybUNBTGF5ZXIuaD4KQEAgLTE1NCw3ICsxNTQs
NyBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBzZXRWaWRlb0xheWVyR3Jhdml0eUVudW0odWludDY0
X3QgY29udGV4dElkLCB1bnNpZ25lZCBncmF2aXR5KTsKICAgICB2b2lkIGZ1bGxzY3JlZW5Nb2Rl
Q2hhbmdlZCh1aW50NjRfdCBjb250ZXh0SWQsIFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnRFbnVt
czo6VmlkZW9GdWxsc2NyZWVuTW9kZSk7CiAgICAgdm9pZCBmdWxsc2NyZWVuTWF5UmV0dXJuVG9J
bmxpbmUodWludDY0X3QgY29udGV4dElkLCBib29sIGlzUGFnZVZpc2libGUpOwotICAgIHZvaWQg
cmVxdWVzdFJvdXRlU2hhcmluZ1BvbGljeUFuZENvbnRleHRVSUQodWludDY0X3QgY29udGV4dElk
LCBNZXNzYWdlczo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6UmVxdWVzdFJvdXRlU2hhcmluZ1Bv
bGljeUFuZENvbnRleHRVSUQ6OkFzeW5jUmVwbHkmJik7CisgICAgdm9pZCByZXF1ZXN0Um91dGVT
aGFyaW5nUG9saWN5QW5kQ29udGV4dFVJRCh1aW50NjRfdCBjb250ZXh0SWQsIE1lc3NhZ2VzOjpW
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpSZXF1ZXN0Um91dGVTaGFyaW5nUG9saWN5QW5kQ29udGV4
dFVJREFzeW5jUmVwbHkmJik7CiAKICAgICBXZWJQYWdlKiBtX3BhZ2U7CiAgICAgUmVmPFBsYXli
YWNrU2Vzc2lvbk1hbmFnZXI+IG1fcGxheWJhY2tTZXNzaW9uTWFuYWdlcjsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1t
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIu
bW0KaW5kZXggNTMwMDA3MzMwYjg4NDJjZTEwNmI1ZDVmOTM4OWEzNTk2M2EyYzZkNy4uYWM0MDMy
YWYwNzk2N2JhNjMxNmVkYjJiYjdkYjZhZWRjMjAxNWFkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW0KKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW0KQEAg
LTMxLDYgKzMxLDcgQEAKICNpbXBvcnQgIkxheWVySG9zdGluZ0NvbnRleHQuaCIKICNpbXBvcnQg
IkxvZ2dpbmcuaCIKICNpbXBvcnQgIlBsYXliYWNrU2Vzc2lvbk1hbmFnZXIuaCIKKyNpbXBvcnQg
IlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJNZXNzYWdlcy5oIgogI2ltcG9ydCAiVmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlclByb3h5TWVzc2FnZXMuaCIKICNpbXBvcnQgIldlYkNvcmVBcmd1bWVudENvZGVy
cy5oIgogI2ltcG9ydCAiV2ViUGFnZS5oIgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>381557</attachid>
            <date>2019-10-22 10:09:25 -0700</date>
            <delta_ts>2019-10-22 10:51:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-203074-20191022100924.patch</filename>
            <type>text/plain</type>
            <size>97681</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUxNDE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTdiNTk4Yjg4ZGY3M2Qz
ZGVjOGIwOWI1MWRmMDNiYzllYjMzZjY5ZS4uY2RmNzA4NmZkY2U3MDg3N2NkZWJlNzA5MzBkNWU0
NDMwYTNhOWIwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE5LTEwLTIyICBUaW0g
SG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIE1ha2UgaXQgcG9z
c2libGUgdG8gbm90IGluY2x1ZGUgSVBDIE1lc3NhZ2VzIGhlYWRlcnMgaW4gb3RoZXIgaGVhZGVy
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAzMDc0
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYmluZGluZ3MvanMvRXhj
ZXB0aW9uRGV0YWlscy5oOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTUV4Y2Vw
dGlvbkhhbmRsaW5nLmg6CisgICAgICAgIFNwbGl0IHRoZSBFeGNlcHRpb25EZXRhaWxzIHN0cnVj
dCBvdXQgaW50byBpdHMgb3duIGZpbGUuCisKIDIwMTktMTAtMjEgIENocmlzIER1bWV6ICA8Y2R1
bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBTdXNwZW5kIGRlZGljYXRlZCB3b3JrZXIgdGhyZWFk
cyB3aGlsZSBpbiB0aGUgYmFjay9mb3J3YXJkIGNhY2hlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGQ5MTNjMTc0ZjNm
OTgxMmYxMDliYTNlNGYzZjcwODVjYWMwODE4OTMuLmU1ODdkM2UwYmNjMmUzOWZhMzI4NmViN2Fi
OTRlMjQxODk4Y2U0MTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsODIgQEAKKzIwMTktMTAtMjEgIFRp
bSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgTWFrZSBpdCBw
b3NzaWJsZSB0byBub3QgaW5jbHVkZSBJUEMgTWVzc2FnZXMgaGVhZGVycyBpbiBvdGhlciBoZWFk
ZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDMw
NzQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWtl
IHRoZSBNZXNzYWdlcyBnZW5lcmF0b3IgZ2VuZXJhdGUgYSBuZXcgLU1lc3NhZ2VzUmVwbGllcy5o
IGZpbGUsIHdoaWNoCisgICAgICAgIG9ubHkgaW5jbHVkZXMgaGVhZGVycyBmb3IgYW5kIGRlZmlu
aXRpb25zIG9mIERlbGF5ZWRSZXBseS9Bc3luY1JlcGx5IHR5cGVzLAorICAgICAgICB3aGljaCBu
ZWVkIHRvIGJlIG1lbnRpb25lZCBhcyBhcmd1bWVudHMgdG8gbWVzc2FnZSBoYW5kZXIgbWV0aG9k
cywgYW5kCisgICAgICAgIHRodXMgbXVzdCBiZSBhdmFpbGFibGUgaW4gdmFyaW91cyBoZWFkZXJz
IHRocm91Z2hvdXQgdGhlIHByb2plY3QuCisKKyAgICAgICAgSW4gb3JkZXIgdG8gZG8gdGhpcywg
d2UgaGF2ZSB0byBkZS1uZXN0IHRoZW0gZnJvbSB0aGUgcHJpbWFyeSBtZXNzYWdlCisgICAgICAg
IGNsYXNzLCBidXQgd2UgdGhlbiAndXNpbmcnIHRoZW0gYmFjayBpbnRvIHBsYWNlIGluc2lkZSB0
aGUgbWVzc2FnZSBjbGFzcworICAgICAgICBzbyB0aGF0IG1vc3Qgb2YgdGhlIGNvZGUgZG9lc24n
dCBuZWVkIHRvIGNoYW5nZS4KKworICAgICAgICBUaGlzIGhlbHBzIHRvIHdpbGRseSBkZWNyZWFz
ZSB0aGUgaGVhZGVyIGxvYWQgb2YgV2ViUGFnZS5oIGFuZCBXZWJQYWdlUHJveHkuaCwKKyAgICAg
ICAgZXNwZWNpYWxseSwgYmVjYXVzZSB0aGUgbnVtYmVyIG9mIGhlYWRlcnMgbmVlZGVkIGZvciB0
eXBlcyBpbiB0aGVpciByZXBsaWVzCisgICAgICAgIGlzIG11Y2ggc21hbGxlciB0aGFuIHRoZSBu
dW1iZXIgbmVlZGVkIGZvciBhbGwgbWVzc2FnZSByZWNlaXZlcnMuCisKKyAgICAgICAgQWxzbywg
b25seSBpbnZva2UgdGhlIE1lc3NhZ2VzIGdlbmVyYXRvciBvbmNlIHBlciBzb3VyY2UgZmlsZSwg
YW5kCisgICAgICAgIG9ubHkgcGFyc2UgdGhlIHNvdXJjZSBmaWxlIG9uY2UsIGdlbmVyYXRpbmcg
YWxsIHRocmVlIG91dHB1dCBmaWxlcworICAgICAgICBpbiBvbmUgaW52b2NhdGlvbi4KKworICAg
ICAgICBBbmQgdGhlbiBjbGVhbiB1cCBhbGwgdGhlIG1pc3NpbmcgaW5kaXJlY3QgaW5jbHVkZXMg
dGhhdCB3ZSBsb3N0IGJ5IGRvaW5nIHRoaXMuCisKKyAgICAgICAgQWxsLWluLWFsbCB0aGlzIGlz
IHdvcnRoIHJvdWdobHkgOCUgb24gdGhlIFdlYktpdDIgQnVpbGQgVGltZSBCZW5jaG1hcmsuCisK
KyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1pbnB1
dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICog
TmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUu
Y3BwOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzLmNwcDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzcy5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRl
ci5jcHA6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmg6
CisgICAgICAgICogUGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250cm9sbGVyUHJveHkuY3BwOgorICAg
ICAgICAqIFBsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5Lmg6CisgICAgICAgICog
UGx1Z2luUHJvY2Vzcy9XZWJQcm9jZXNzQ29ubmVjdGlvbi5oOgorICAgICAgICAqIFNjcmlwdHMv
TWFrZWZpbGU6CisgICAgICAgICogU2NyaXB0cy9nZW5lcmF0ZS1tZXNzYWdlLXJlY2VpdmVyLnB5
OgorICAgICAgICAobWFpbik6CisgICAgICAgICogU2NyaXB0cy9nZW5lcmF0ZS1tZXNzYWdlcy1o
ZWFkZXIucHk6IFJlbW92ZWQuCisgICAgICAgICogU2NyaXB0cy93ZWJraXQvTGVnYWN5TWVzc2Fn
ZVJlY2VpdmVyLWV4cGVjdGVkLmNwcDoKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdC9MZWdhY3lN
ZXNzYWdlcy1leHBlY3RlZC5oOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0L0xlZ2FjeU1lc3Nh
Z2VzUmVwbGllcy1leHBlY3RlZC5oOiBBZGRlZC4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdC9N
ZXNzYWdlUmVjZWl2ZXItZXhwZWN0ZWQuY3BwOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0L01l
c3NhZ2VSZWNlaXZlclN1cGVyY2xhc3MtZXhwZWN0ZWQuY3BwOgorICAgICAgICAqIFNjcmlwdHMv
d2Via2l0L01lc3NhZ2VzLWV4cGVjdGVkLmg6CisgICAgICAgICogU2NyaXB0cy93ZWJraXQvTWVz
c2FnZXNSZXBsaWVzLWV4cGVjdGVkLmg6IEFkZGVkLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0
L01lc3NhZ2VzUmVwbGllc1N1cGVyY2xhc3NSZXBsaWVzLWV4cGVjdGVkLmg6IEFkZGVkLgorICAg
ICAgICAqIFNjcmlwdHMvd2Via2l0L01lc3NhZ2VzU3VwZXJjbGFzcy1leHBlY3RlZC5oOgorICAg
ICAgICAqIFNjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5OgorICAgICAgICAqIFVJUHJvY2Vzcy9D
b2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcDoKKyAgICAgICAgKiBVSVByb2Nl
c3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3
b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3Jr
L05ldHdvcmtQcm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvUGx1Z2lucy9QbHVn
aW5Qcm9jZXNzTWFuYWdlci5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2lu
UHJvY2Vzc01hbmFnZXIuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9j
ZXNzUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvU3VzcGVuZGVkUGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHA6CisgICAgICAgICog
VUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nl
c3NQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5tbToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHkubW06
CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICog
V2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcDoKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24u
aDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2Nv
Y29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW06CisKIDIwMTktMTAtMjEgIE1hdHQgTGV3aXMg
IDxqbGV3aXMzQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCBy
MjUxMzgxLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCmluZGV4IDQzODE3OTVjMzViZTZhNjFiMjQ5MjI1N2VjYWVlM2I2ZTNkOGFjZWUuLjUx
MjU2ZTA4NTUzYjk0ZWU4ODdjNDY3YzFiYjJmMTMzODFlZTkyYWIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTcyMCw2ICs3MjAs
NyBAQAogCQkyRDA2MjE1MjFEQTYzQUEyMDBBN0ZCMjYgLyogV2ViS2l0TWVkaWFLZXlOZWVkZWRF
dmVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAy
RDA2MjE0NzFEQTYzQTc5MDBBN0ZCMjYgLyogV2ViS2l0TWVkaWFLZXlOZWVkZWRFdmVudC5jcHAg
Ki87IH07CiAJCTJEMEI0QUFCMThEQTFDQ0QwMDQzNERFMSAvKiBJT1N1cmZhY2UuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJEMEI0QUE5MThEQTFDQ0Qw
MDQzNERFMSAvKiBJT1N1cmZhY2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQkyRDI1Mzk2MzE4Q0U3RjYyMDAyNzAyMjIgLyogSW1hZ2VDb250cm9s
c0J1dHRvbkVsZW1lbnRNYWMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDJEMjUzOTYxMThDRTdGNjIwMDI3MDIyMiAvKiBJbWFnZUNvbnRyb2xzQnV0dG9u
RWxlbWVudE1hYy5oICovOyB9OworCQkyRDI5Mzg2QjIzNUY2QjY5MDBDN0YzQjIgLyogRXhjZXB0
aW9uRGV0YWlscy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMkQyOTM4NjkyMzVGNkI2ODAwQzdGM0IyIC8qIEV4Y2VwdGlvbkRldGFpbHMuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkyRDI5RUNDNjE5MkVD
QzgzMDA5ODRCNzggLyogRGlzcGxheVJlZnJlc2hNb25pdG9yQ2xpZW50LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRDI5RUNDMjE5MkVDQzgzMDA5ODRC
NzggLyogRGlzcGxheVJlZnJlc2hNb25pdG9yQ2xpZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMkQyOUVDQzgxOTJFQ0M4MzAwOTg0Qjc4IC8q
IERpc3BsYXlSZWZyZXNoTW9uaXRvck1hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJEMjlFQ0M0MTkyRUNDODMwMDk4NEI3OCAvKiBEaXNwbGF5
UmVmcmVzaE1vbml0b3JNYW5hZ2VyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJMkQyOUVDQ0ExOTJGMUYxRDAwOTg0Qjc4IC8qIERpc3BsYXlSZWZy
ZXNoTW9uaXRvcklPUy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMkQyOUVDQzkxOTJGMUYxRDAwOTg0Qjc4IC8qIERpc3BsYXlSZWZyZXNoTW9uaXRvcklP
Uy5oICovOyB9OwpAQCAtNjY0Nyw2ICs2NjQ4LDcgQEAKIAkJMkQxOTMyMTgxREE2NEUxOTAwQTU0
QTA4IC8qIFdlYktpdE1lZGlhS2V5RXJyb3IuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdl
YktpdE1lZGlhS2V5RXJyb3IuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRDI1
Mzk2MDE4Q0U3RjYyMDAyNzAyMjIgLyogSW1hZ2VDb250cm9sc0J1dHRvbkVsZW1lbnRNYWMuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW1hZ2VDb250cm9sc0J1dHRv
bkVsZW1lbnRNYWMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRDI1Mzk2MTE4
Q0U3RjYyMDAyNzAyMjIgLyogSW1hZ2VDb250cm9sc0J1dHRvbkVsZW1lbnRNYWMuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW1hZ2VDb250cm9sc0J1dHRvbkVsZW1lbnRNYWMu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkQyOTM4NjkyMzVGNkI2ODAwQzdGM0Iy
IC8qIEV4Y2VwdGlvbkRldGFpbHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
RXhjZXB0aW9uRGV0YWlscy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRDI5RUND
MTE5MkVDQzgzMDA5ODRCNzggLyogRGlzcGxheVJlZnJlc2hNb25pdG9yQ2xpZW50LmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERpc3BsYXlSZWZyZXNoTW9uaXRvckNs
aWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJEMjlFQ0MyMTkyRUNDODMw
MDk4NEI3OCAvKiBEaXNwbGF5UmVmcmVzaE1vbml0b3JDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gRGlzcGxheVJlZnJlc2hNb25pdG9yQ2xpZW50Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJEMjlFQ0MzMTkyRUNDODMwMDk4NEI3OCAvKiBEaXNwbGF5
UmVmcmVzaE1vbml0b3JNYW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IERpc3BsYXlSZWZyZXNoTW9uaXRvck1hbmFnZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtMjUwOTUsNiArMjUwOTcsNyBAQAogCQkJCTdDNTE2QUQyMUYzNTI1MjAw
MDM0QjZCRiAvKiBET01Qcm9taXNlUHJveHkuaCAqLywKIAkJCQlCQzUzREE0NzExNDMxMzREMDAw
RDgxN0UgLyogRE9NV3JhcHBlcldvcmxkLmNwcCAqLywKIAkJCQlCQzUzREEyRDExNDMxMjFFMDAw
RDgxN0UgLyogRE9NV3JhcHBlcldvcmxkLmggKi8sCisJCQkJMkQyOTM4NjkyMzVGNkI2ODAwQzdG
M0IyIC8qIEV4Y2VwdGlvbkRldGFpbHMuaCAqLywKIAkJCQkxNDMyRTg0ODBDNTE0OTNGMDBCMTUw
MEYgLyogR0NDb250cm9sbGVyLmNwcCAqLywKIAkJCQkxNDMyRTg0NjBDNTE0OTM4MDBCMTUwMEYg
LyogR0NDb250cm9sbGVyLmggKi8sCiAJCQkJQzU4NUE2NjAxMUQ0RkFDNTAwNEMzRTRCIC8qIElE
QkJpbmRpbmdVdGlsaXRpZXMuY3BwICovLApAQCAtMjk1MDcsNiArMjk1MTAsNyBAQAogCQkJCTkz
RDE5NjMzMUQ2Q0FCODIwMEZDN0U0NyAvKiBFeGNlcHRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJ
CTkzNUZCQ0YyMDlCQTE0M0IwMEUyMzBCMSAvKiBFeGNlcHRpb25Db2RlLmggaW4gSGVhZGVycyAq
LywKIAkJCQk1MUY2NDU2MjFGNDUzOThGMDBCNTRERUQgLyogRXhjZXB0aW9uRGF0YS5oIGluIEhl
YWRlcnMgKi8sCisJCQkJMkQyOTM4NkIyMzVGNkI2OTAwQzdGM0IyIC8qIEV4Y2VwdGlvbkRldGFp
bHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzRDE5NjMxMUQ2Q0FCNzYwMEZDN0U0NyAvKiBFeGNl
cHRpb25Pci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODM3RkIzNDUxRjlFQTA2RDAwRDBGQzMxIC8q
IEV4dGVuZGFibGVNZXNzYWdlRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxRENERjQ0MURB
MUM0NTQwMEVBNUI5MyAvKiBFeHRlbmRlZENvbG9yLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0V4Y2VwdGlvbkRldGFpbHMuaCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0V4Y2VwdGlvbkRldGFpbHMuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43Y2Zh
YTU0ZTM0ZGE1NTdmODNhNDdiODkyMDgwZjAyM2Y5MmVlODQyCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvRXhjZXB0aW9uRGV0YWlscy5oCkBAIC0wLDAgKzEs
MzkgQEAKKy8qCisqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisqCisqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyogYXJlIG1ldDoKKyogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisqCisqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQorKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDx3
dGYvRm9yd2FyZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0cnVjdCBFeGNlcHRpb25E
ZXRhaWxzIHsKKyAgICBTdHJpbmcgbWVzc2FnZTsKKyAgICBpbnQgbGluZU51bWJlciB7IDAgfTsK
KyAgICBpbnQgY29sdW1uTnVtYmVyIHsgMCB9OworICAgIFN0cmluZyBzb3VyY2VVUkw7Cit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmgKaW5kZXggNjRhYzNlMjY2OTBjYzZjZTNhMDk0
OGY2NjE1ZTljODBjNTVkYTNjZi4uZmZhMWUwMmExZTA3ODIzOWFkYjY2ODViYjQwNmViMjgzMjNm
MWI5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01FeGNlcHRp
b25IYW5kbGluZy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NRXhjZXB0
aW9uSGFuZGxpbmcuaApAQCAtMjMsNiArMjMsNyBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1
ZGUgIkV4Y2VwdGlvbkRldGFpbHMuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Pci5oIgogI2luY2x1
ZGUgPEphdmFTY3JpcHRDb3JlL1Rocm93U2NvcGUuaD4KIApAQCAtMzYsMTMgKzM3LDYgQEAgY2xh
c3MgQ2FjaGVkU2NyaXB0OwogY2xhc3MgRGVmZXJyZWRQcm9taXNlOwogY2xhc3MgSlNET01HbG9i
YWxPYmplY3Q7CiAKLXN0cnVjdCBFeGNlcHRpb25EZXRhaWxzIHsKLSAgICBTdHJpbmcgbWVzc2Fn
ZTsKLSAgICBpbnQgbGluZU51bWJlciB7IDAgfTsKLSAgICBpbnQgY29sdW1uTnVtYmVyIHsgMCB9
OwotICAgIFN0cmluZyBzb3VyY2VVUkw7Ci19OwotCiB2b2lkIHRocm93QXR0cmlidXRlVHlwZUVy
cm9yKEpTQzo6RXhlY1N0YXRlJiwgSlNDOjpUaHJvd1Njb3BlJiwgY29uc3QgY2hhciogaW50ZXJm
YWNlTmFtZSwgY29uc3QgY2hhciogYXR0cmlidXRlTmFtZSwgY29uc3QgY2hhciogZXhwZWN0ZWRU
eXBlKTsKIFdFQkNPUkVfRVhQT1JUIGJvb2wgdGhyb3dTZXR0ZXJUeXBlRXJyb3IoSlNDOjpFeGVj
U3RhdGUmLCBKU0M6OlRocm93U2NvcGUmLCBjb25zdCBjaGFyKiBpbnRlcmZhY2VOYW1lLCBjb25z
dCBjaGFyKiBhdHRyaWJ1dGVOYW1lKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DTWFr
ZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKaW5kZXggMWUwNmU2MjYw
Y2QyZDk0ZTI0ODA4ZWI1N2YwNDI3MGYxMzUzYTQxOC4uZWZjYzJlODVhNDQwOTllMzhlOGZjMTk3
OTUyNjdkNDY0YzA2NzQ5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4
dAorKysgYi9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0CkBAIC0zMDksMjEgKzMwOSwyMCBA
QCBzZXQoV2ViS2l0X0FVVE9NQVRJT05fUFJPVE9DT0xfR0VORVJBVE9SX0VYVFJBX0ZMQUdTCiBX
RUJLSVRfRlJBTUVXT1JLX0RFQ0xBUkUoV2ViS2l0KQogV0VCS0lUX0lOQ0xVREVfQ09ORklHX0ZJ
TEVTX0lGX0VYSVNUUygpCiAKLSMgSGVscGVyIG1hY3JvIHdoaWNoIHdyYXBzIGdlbmVyYXRlLW1l
c3NhZ2UtcmVjZWl2ZXIucHkgYW5kIGdlbmVyYXRlLW1lc3NhZ2UtaGVhZGVyLnB5IHNjcmlwdHMK
KyMgSGVscGVyIG1hY3JvIHdoaWNoIHdyYXBzIHRoZSBnZW5lcmF0ZS1tZXNzYWdlLXJlY2VpdmVy
LnB5IHNjcmlwdAogIyAgIF9vdXRwdXRfc291cmNlIGlzIGEgbGlzdCBuYW1lIHdoaWNoIHdpbGwg
Y29udGFpbiBnZW5lcmF0ZWQgc291cmNlcy4oZWcuIFdlYktpdF9TT1VSQ0VTKQogIyAgIF9pbnB1
dF9maWxlcyBhcmUgbWVzc2FnZXMuaW4gZmlsZXMgdG8gZ2VuZXJhdGUuCiBtYWNybyhHRU5FUkFU
RV9NRVNTQUdFX1NPVVJDRVMgX291dHB1dF9zb3VyY2UgX2lucHV0X2ZpbGVzKQogICAgIGZvcmVh
Y2ggKF9maWxlICR7X2lucHV0X2ZpbGVzfSkKICAgICAgICAgZ2V0X2ZpbGVuYW1lX2NvbXBvbmVu
dChfbmFtZSAke19maWxlfSBOQU1FX1dFKQogICAgICAgICBhZGRfY3VzdG9tX2NvbW1hbmQoCi0g
ICAgICAgICAgICBPVVRQVVQgJHtXZWJLaXRfREVSSVZFRF9TT1VSQ0VTX0RJUn0vJHtfbmFtZX1N
ZXNzYWdlUmVjZWl2ZXIuY3BwICR7V2ViS2l0X0RFUklWRURfU09VUkNFU19ESVJ9LyR7X25hbWV9
TWVzc2FnZXMuaAorICAgICAgICAgICAgT1VUUFVUICR7V2ViS2l0X0RFUklWRURfU09VUkNFU19E
SVJ9LyR7X25hbWV9TWVzc2FnZVJlY2VpdmVyLmNwcCAke1dlYktpdF9ERVJJVkVEX1NPVVJDRVNf
RElSfS8ke19uYW1lfU1lc3NhZ2VzLmggJHtXZWJLaXRfREVSSVZFRF9TT1VSQ0VTX0RJUn0vJHtf
bmFtZX1NZXNzYWdlc1JlcGxpZXMuaAogICAgICAgICAgICAgTUFJTl9ERVBFTkRFTkNZICR7X2Zp
bGV9CiAgICAgICAgICAgICBERVBFTkRTICR7V0VCS0lUX0RJUn0vU2NyaXB0cy93ZWJraXQvX19p
bml0X18ucHkKICAgICAgICAgICAgICAgICAgICAgJHtXRUJLSVRfRElSfS9TY3JpcHRzL3dlYmtp
dC9tZXNzYWdlcy5weQogICAgICAgICAgICAgICAgICAgICAke1dFQktJVF9ESVJ9L1NjcmlwdHMv
d2Via2l0L21vZGVsLnB5CiAgICAgICAgICAgICAgICAgICAgICR7V0VCS0lUX0RJUn0vU2NyaXB0
cy93ZWJraXQvcGFyc2VyLnB5Ci0gICAgICAgICAgICBDT01NQU5EICR7UFlUSE9OX0VYRUNVVEFC
TEV9ICR7V0VCS0lUX0RJUn0vU2NyaXB0cy9nZW5lcmF0ZS1tZXNzYWdlLXJlY2VpdmVyLnB5ICR7
X2ZpbGV9ID4gJHtXZWJLaXRfREVSSVZFRF9TT1VSQ0VTX0RJUn0vJHtfbmFtZX1NZXNzYWdlUmVj
ZWl2ZXIuY3BwCi0gICAgICAgICAgICBDT01NQU5EICR7UFlUSE9OX0VYRUNVVEFCTEV9ICR7V0VC
S0lUX0RJUn0vU2NyaXB0cy9nZW5lcmF0ZS1tZXNzYWdlcy1oZWFkZXIucHkgJHtfZmlsZX0gPiAk
e1dlYktpdF9ERVJJVkVEX1NPVVJDRVNfRElSfS8ke19uYW1lfU1lc3NhZ2VzLmgKKyAgICAgICAg
ICAgIENPTU1BTkQgJHtQWVRIT05fRVhFQ1VUQUJMRX0gJHtXRUJLSVRfRElSfS9TY3JpcHRzL2dl
bmVyYXRlLW1lc3NhZ2UtcmVjZWl2ZXIucHkgJHtfZmlsZX0gLS1pbXBsZW1lbnRhdGlvbiAke1dl
YktpdF9ERVJJVkVEX1NPVVJDRVNfRElSfS8ke19uYW1lfU1lc3NhZ2VSZWNlaXZlci5jcHAgLS1o
ZWFkZXIgJHtXZWJLaXRfREVSSVZFRF9TT1VSQ0VTX0RJUn0vJHtfbmFtZX1NZXNzYWdlcy5oIC0t
cmVwbHktaGVhZGVyICR7V2ViS2l0X0RFUklWRURfU09VUkNFU19ESVJ9LyR7X25hbWV9TWVzc2Fn
ZXNSZXBsaWVzLmgKICAgICAgICAgICAgIFdPUktJTkdfRElSRUNUT1JZICR7V0VCS0lUX0RJUn0K
ICAgICAgICAgICAgIFZFUkJBVElNKQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2
ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2Vz
LWlucHV0LnhjZmlsZWxpc3QKaW5kZXggZjFhZGFkNjI2OWQwMTJjYWIxZGQ3MmI1OTA1MjU4ZWY5
MDlmOTVhNi4uYzg0NTRiYmU0ZWQwYjJjMjNlN2M0Y2VlMzM5MDg4MWJmNjgyNmFmMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CisrKyBi
L1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdApAQCAtNDYsNyAr
NDYsNiBAQCAkKFBST0pFQ1RfRElSKS9TY3JpcHRzL1ByZWZlcmVuY2VzVGVtcGxhdGVzL1dlYlBy
ZWZlcmVuY2VzS2V5cy5oLmVyYgogJChQUk9KRUNUX0RJUikvU2NyaXB0cy9QcmVmZXJlbmNlc1Rl
bXBsYXRlcy9XZWJQcmVmZXJlbmNlc1N0b3JlRGVmYXVsdHNNYXAuY3BwLmVyYgogJChQUk9KRUNU
X0RJUikvU2NyaXB0cy9nZW5lcmF0ZS1odHRwcy11cGdyYWRlLWRhdGFiYXNlLnNoCiAkKFBST0pF
Q1RfRElSKS9TY3JpcHRzL2dlbmVyYXRlLW1lc3NhZ2UtcmVjZWl2ZXIucHkKLSQoUFJPSkVDVF9E
SVIpL1NjcmlwdHMvZ2VuZXJhdGUtbWVzc2FnZXMtaGVhZGVyLnB5CiAkKFBST0pFQ1RfRElSKS9T
Y3JpcHRzL3dlYmtpdC9fX2luaXRfXy5weQogJChQUk9KRUNUX0RJUikvU2NyaXB0cy93ZWJraXQv
bWVzc2FnZXMucHkKICQoUFJPSkVDVF9ESVIpL1NjcmlwdHMvd2Via2l0L21vZGVsLnB5CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViS2l0
L0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggYzM5YzI5NzU1Njc2ZTJhNjUwOGZhN2ZlNDBkOTY4
MTI1NGFmNzZlMC4uNDJjYzA1NDA3NGZjY2EyNmQ1MDlhOGQzZWNhZjdjY2Y5YzYwODZhMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9X
ZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtMTg5LDcgKzE4OSw2IEBAIE1FU1NBR0VfUkVD
RUlWRVJTID0gXAogCiBTQ1JJUFRTID0gXAogICAgICQoV2ViS2l0MikvU2NyaXB0cy9nZW5lcmF0
ZS1tZXNzYWdlLXJlY2VpdmVyLnB5IFwKLSAgICAkKFdlYktpdDIpL1NjcmlwdHMvZ2VuZXJhdGUt
bWVzc2FnZXMtaGVhZGVyLnB5IFwKICAgICAkKFdlYktpdDIpL1NjcmlwdHMvd2Via2l0L19faW5p
dF9fLnB5IFwKICAgICAkKFdlYktpdDIpL1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5IFwKICAg
ICAkKFdlYktpdDIpL1NjcmlwdHMvd2Via2l0L21vZGVsLnB5IFwKQEAgLTIwNiwxNSArMjA1LDEy
IEBAIEhFQURFUl9GTEFHUyA9ICQoc2hlbGwgZWNobyAkKEJVSUxUX1BST0RVQ1RTX0RJUikgJChI
RUFERVJfU0VBUkNIX1BBVEhTKSAkKFNZU1RFCiBhbGwgOiBcCiAgICAgJChNRVNTQUdFX1JFQ0VJ
VkVSUzolPSVNZXNzYWdlUmVjZWl2ZXIuY3BwKSBcCiAgICAgJChNRVNTQUdFX1JFQ0VJVkVSUzol
PSVNZXNzYWdlcy5oKSBcCisgICAgJChNRVNTQUdFX1JFQ0VJVkVSUzolPSVNZXNzYWdlc1JlcGxp
ZXMuaCkgXAogIwogCi0lTWVzc2FnZVJlY2VpdmVyLmNwcCA6ICUubWVzc2FnZXMuaW4gJChTQ1JJ
UFRTKQorJU1lc3NhZ2VSZWNlaXZlci5jcHAgJU1lc3NhZ2VzLmggJU1lc3NhZ2VzUmVwbGllcy5o
IDogJS5tZXNzYWdlcy5pbiAkKFNDUklQVFMpCiAJQGVjaG8gR2VuZXJhdGluZyBtZXNzYWdlIHJl
Y2VpdmVyIGZvciAkKi4uLgotCUBweXRob24gJChXZWJLaXQyKS9TY3JpcHRzL2dlbmVyYXRlLW1l
c3NhZ2UtcmVjZWl2ZXIucHkgJDwgPiAkQAotCi0lTWVzc2FnZXMuaCA6ICUubWVzc2FnZXMuaW4g
JChTQ1JJUFRTKQotCUBlY2hvIEdlbmVyYXRpbmcgbWVzc2FnZXMgaGVhZGVyIGZvciAkKi4uLgot
CUBweXRob24gJChXZWJLaXQyKS9TY3JpcHRzL2dlbmVyYXRlLW1lc3NhZ2VzLWhlYWRlci5weSAk
PCA+ICRACisJQHB5dGhvbiAkKFdlYktpdDIpL1NjcmlwdHMvZ2VuZXJhdGUtbWVzc2FnZS1yZWNl
aXZlci5weSAkPCAtLWltcGxlbWVudGF0aW9uICQqTWVzc2FnZVJlY2VpdmVyLmNwcCAtLWhlYWRl
ciAkKk1lc3NhZ2VzLmggLS1yZXBseS1oZWFkZXIgJCpNZXNzYWdlc1JlcGxpZXMuaAogCiBURVhU
X1BSRVBST0NFU1NPUl9GTEFHUz0tRSAtUCAtdwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3Jl
LmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwCmluZGV4IDFkYjRlYzI0OTFkNjYxN2VjYzk0ZmFkZTJl
NGUwNzJiZjlmOWI2OTAuLmU5ZDA4ZWU5NWU3NDE0YmM5ZjM0YzQyNWQzOGQ1OThkZWM3M2ZjYmIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwCkBA
IC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiQVBJRGljdGlvbmFyeS5oIgogI2luY2x1ZGUgIkxv
Z2dpbmcuaCIKICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzcy5oIgorI2luY2x1ZGUgIk5ldHdvcmtQ
cm9jZXNzUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIk5ldHdvcmtTZXNzaW9uLmgiCiAjaW5j
bHVkZSAiUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuaCIKICNpbmNsdWRlICJS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmUuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cy5jcHAKaW5kZXggYzM1N2FhNjI2MmNmNjMyYjk2ZTZmNjdmNzhmODI3ZGE2YTQ2M2MxMy4uYjhk
M2Y5OWEwMWQ3NmNlMTkwYjEzOGFhZTFlZjJjYzVmYTk1ZTdlZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzcy5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJEYXRhUmVmZXJlbmNlLmgi
CiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk5ldHdvcmtDYWNoZS5oIgorI2luY2x1
ZGUgIk5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzTWVzc2FnZXMuaCIKICNpbmNsdWRlICJO
ZXR3b3JrTUROU1JlZ2lzdGVyTWVzc2FnZXMuaCIKICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzcy5o
IgogI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VzLmgiCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9u
VG9XZWJQcm9jZXNzLmgKaW5kZXggYTAyYTFjM2I5OWJlZDU3OTc5ZjVkN2Q1NjczNjczYjYxMWE4
ZWVhYS4uOTdiMjc0NGVkNjA0MzZmNDc0NjZiMzRjY2E5ZTYzYzI1NTQzZTc3MCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MuaApAQCAtMjksMTAgKzI5LDEyIEBACiAjaW5jbHVkZSAiQ29ubmVjdGlv
bi5oIgogI2luY2x1ZGUgIkRvd25sb2FkSUQuaCIKICNpbmNsdWRlICJOZXR3b3JrQWN0aXZpdHlU
cmFja2VyLmgiCi0jaW5jbHVkZSAiTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdl
cy5oIgorI2luY2x1ZGUgIk5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzTWVzc2FnZXNSZXBs
aWVzLmgiCiAjaW5jbHVkZSAiTmV0d29ya01ETlNSZWdpc3Rlci5oIgogI2luY2x1ZGUgIk5ldHdv
cmtSVENQcm92aWRlci5oIgogI2luY2x1ZGUgIk5ldHdvcmtSZXNvdXJjZUxvYWRNYXAuaCIKKyNp
bmNsdWRlICJTYW5kYm94RXh0ZW5zaW9uLmgiCisjaW5jbHVkZSAiV2ViUGFnZVByb3h5SWRlbnRp
Zmllci5oIgogI2luY2x1ZGUgIldlYlBheW1lbnRDb29yZGluYXRvclByb3h5LmgiCiAjaW5jbHVk
ZSAiV2ViUmVzb3VyY2VMb2FkT2JzZXJ2ZXIuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lSWRl
bnRpZmllci5oPgpAQCAtNTAsNiArNTIsNyBAQCBjbGFzcyBTZXNzaW9uSUQ7CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIGNsYXNzIEJsb2JEYXRhRmlsZVJlZmVyZW5jZTsKK2NsYXNzIEJsb2JQYXJ0
OwogY2xhc3MgQmxvYlJlZ2lzdHJ5SW1wbDsKIGNsYXNzIFJlc291cmNlRXJyb3I7CiBjbGFzcyBS
ZXNvdXJjZVJlcXVlc3Q7CkBAIC02NCw2ICs2Nyw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBj
bGFzcyBOZXR3b3JrUHJvY2VzczsKIGNsYXNzIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjsKK2NsYXNz
IE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzOwogY2xhc3MgTmV0d29ya1Nlc3Npb247CiBj
bGFzcyBOZXR3b3JrU29ja2V0Q2hhbm5lbDsKIGNsYXNzIE5ldHdvcmtTb2NrZXRTdHJlYW07CkBA
IC0xNzcsOCArMTgxLDggQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVj
b2RlciYsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+Jik7CiAKICAgICB2b2lkIHNjaGVk
dWxlUmVzb3VyY2VMb2FkKE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzJiYpOwotICAgIHZv
aWQgcGVyZm9ybVN5bmNocm9ub3VzTG9hZChOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyYm
LCBNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OlBlcmZvcm1TeW5jaHJv
bm91c0xvYWQ6OkRlbGF5ZWRSZXBseSYmKTsKLSAgICB2b2lkIHRlc3RQcm9jZXNzSW5jb21pbmdT
eW5jTWVzc2FnZXNXaGVuV2FpdGluZ0ZvclN5bmNSZXBseShXZWJQYWdlUHJveHlJZGVudGlmaWVy
LCBNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OlRlc3RQcm9jZXNzSW5j
b21pbmdTeW5jTWVzc2FnZXNXaGVuV2FpdGluZ0ZvclN5bmNSZXBseTo6RGVsYXllZFJlcGx5JiYp
OworICAgIHZvaWQgcGVyZm9ybVN5bmNocm9ub3VzTG9hZChOZXR3b3JrUmVzb3VyY2VMb2FkUGFy
YW1ldGVycyYmLCBNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OlBlcmZv
cm1TeW5jaHJvbm91c0xvYWREZWxheWVkUmVwbHkmJik7CisgICAgdm9pZCB0ZXN0UHJvY2Vzc0lu
Y29taW5nU3luY01lc3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkoV2ViUGFnZVByb3h5SWRl
bnRpZmllciwgTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpUZXN0UHJv
Y2Vzc0luY29taW5nU3luY01lc3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5jUmVwbHlEZWxheWVkUmVw
bHkmJik7CiAgICAgdm9pZCBsb2FkUGluZyhOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyYm
KTsKICAgICB2b2lkIHByZWZldGNoRE5TKGNvbnN0IFN0cmluZyYpOwogICAgIHZvaWQgcHJlY29u
bmVjdFRvKHVpbnQ2NF90IHByZWNvbm5lY3Rpb25JZGVudGlmaWVyLCBOZXR3b3JrUmVzb3VyY2VM
b2FkUGFyYW1ldGVycyYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcAppbmRleCA0ZTNjMDFlMjcwMmJkMzUwMDNhNTI1
MTRkZGMxN2NlYzM4Yjk2ZGFiLi5mZmZlNWQwNDZiNTM0ZGUwNDdjODM2NWJiNjBmOTUzZjM3MWRl
ZWVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNv
dXJjZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UmVzb3VyY2VMb2FkZXIuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiTG9nZ2luZy5o
IgogI2luY2x1ZGUgIk5ldHdvcmtDYWNoZS5oIgogI2luY2x1ZGUgIk5ldHdvcmtDb25uZWN0aW9u
VG9XZWJQcm9jZXNzLmgiCisjaW5jbHVkZSAiTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3NN
ZXNzYWdlcy5oIgogI2luY2x1ZGUgIk5ldHdvcmtMb2FkLmgiCiAjaW5jbHVkZSAiTmV0d29ya0xv
YWRDaGVja2VyLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3MuaCIKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmggYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5oCmluZGV4IDhk
MTc5ZTNlYjQxNjNlMTg5OGI1ZTFkYTI3YjJlODVjYzhiM2Q1NTQuLjY2YjI1NjAwNTE2YTg3OTYy
Zjc4ZDIzODYyYWM1MDdkYTdkN2U2MzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuaApAQCAtMjksNyArMjksNyBAQAogI2lu
Y2x1ZGUgIk1lc3NhZ2VTZW5kZXIuaCIKICNpbmNsdWRlICJOZXR3b3JrQ2FjaGUuaCIKICNpbmNs
dWRlICJOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIgotI2luY2x1ZGUgIk5ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJOZXR3b3JrQ29ubmVj
dGlvblRvV2ViUHJvY2Vzc01lc3NhZ2VzUmVwbGllcy5oIgogI2luY2x1ZGUgIk5ldHdvcmtMb2Fk
Q2xpZW50LmgiCiAjaW5jbHVkZSAiTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMuaCIKICNp
bmNsdWRlIDxXZWJDb3JlL0FkQ2xpY2tBdHRyaWJ1dGlvbi5oPgpAQCAtNjUsNyArNjUsNyBAQCBj
bGFzcyBOZXR3b3JrUmVzb3VyY2VMb2FkZXIgZmluYWwKICAgICAsIHB1YmxpYyBXZWJDb3JlOjpD
b250ZW50U2VjdXJpdHlQb2xpY3lDbGllbnQKICAgICAsIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxO
ZXR3b3JrUmVzb3VyY2VMb2FkZXI+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPE5ldHdvcmtS
ZXNvdXJjZUxvYWRlcj4gY3JlYXRlKE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzJiYgcGFy
YW1ldGVycywgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGNvbm5lY3Rpb24sIE1lc3Nh
Z2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6UGVyZm9ybVN5bmNocm9ub3VzTG9h
ZDo6RGVsYXllZFJlcGx5JiYgcmVwbHkgPSBudWxscHRyKQorICAgIHN0YXRpYyBSZWY8TmV0d29y
a1Jlc291cmNlTG9hZGVyPiBjcmVhdGUoTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMmJiBw
YXJhbWV0ZXJzLCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgY29ubmVjdGlvbiwgTWVz
c2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpQZXJmb3JtU3luY2hyb25vdXNM
b2FkRGVsYXllZFJlcGx5JiYgcmVwbHkgPSBudWxscHRyKQogICAgIHsKICAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgTmV0d29ya1Jlc291cmNlTG9hZGVyKFdURk1vdmUocGFyYW1ldGVycyks
IGNvbm5lY3Rpb24sIFdURk1vdmUocmVwbHkpKSk7CiAgICAgfQpAQCAtMTMxLDcgKzEzMSw3IEBA
IHB1YmxpYzoKICNlbmRpZgogCiBwcml2YXRlOgotICAgIE5ldHdvcmtSZXNvdXJjZUxvYWRlcihO
ZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyYmLCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2VzcyYsIE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6UGVyZm9ybVN5
bmNocm9ub3VzTG9hZDo6RGVsYXllZFJlcGx5JiYpOworICAgIE5ldHdvcmtSZXNvdXJjZUxvYWRl
cihOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyYmLCBOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2VzcyYsIE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6UGVyZm9y
bVN5bmNocm9ub3VzTG9hZERlbGF5ZWRSZXBseSYmKTsKIAogICAgIC8vIElQQzo6TWVzc2FnZVNl
bmRlcgogICAgIElQQzo6Q29ubmVjdGlvbiogbWVzc2FnZVNlbmRlckNvbm5lY3Rpb24oKSBjb25z
dCBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGx1Z2luUHJvY2Vzcy9QbHVn
aW5Db250cm9sbGVyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9QbHVnaW5Qcm9jZXNzL1BsdWdp
bkNvbnRyb2xsZXJQcm94eS5jcHAKaW5kZXggYjY0MjE0NGJkMWFlYjk3MGM2ZmM2Nzg5MTg4NDAy
ZmRhYTg3MTk5Ny4uZWE3MTFkMzJlMjU1ZjczYzM3NTJmNDI5ZjBlYTcyMjE1YjljOTMzYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94
eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9QbHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQ
cm94eS5jcHAKQEAgLTQwLDYgKzQwLDcgQEAKICNpbmNsdWRlICJTaGFyZWFibGVCaXRtYXAuaCIK
ICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNz
Q29ubmVjdGlvbi5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMuaCIK
ICNpbmNsdWRlIDxXZWJDb3JlL0dyYXBoaWNzQ29udGV4dC5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
SFRUUEhlYWRlck1hcC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSWRlbnRpZmllclJlcC5oPgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94
eS5oIGIvU291cmNlL1dlYktpdC9QbHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5o
CmluZGV4IGI5OGNhOTRiYzllZmMyM2IyZWQ4MThhNWI3ODQzMzcyMzE3ZTljNjcuLmFkNGZjZDlk
OGNjZjQyZjEyZWU0ODhlMDEzNDZjNjE5YTcwMWI4ZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250cm9sbGVyUHJveHkuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1BsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5LmgKQEAgLTMwLDkgKzMwLDgg
QEAKICNpbmNsdWRlICJDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiUGx1Z2luLmgiCiAjaW5jbHVk
ZSAiUGx1Z2luQ29udHJvbGxlci5oIgotI2luY2x1ZGUgIlBsdWdpbkNvbnRyb2xsZXJQcm94eU1l
c3NhZ2VzLmgiCiAjaW5jbHVkZSAiU2hhcmVhYmxlQml0bWFwLmgiCi0jaW5jbHVkZSAiV2ViUHJv
Y2Vzc0Nvbm5lY3Rpb25NZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3NDb25uZWN0aW9u
TWVzc2FnZXNSZXBsaWVzLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbi5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvVXNlckFjdGl2aXR5Lmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlh
YmxlLmg+CkBAIC03NSw4ICs3NCw4IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgaXNJbml0aWFsaXpp
bmcoKSBjb25zdCB7IHJldHVybiBtX2lzSW5pdGlhbGl6aW5nOyB9CiAgICAgCi0gICAgdm9pZCBz
ZXRJbml0aWFsaXphdGlvblJlcGx5KE1lc3NhZ2VzOjpXZWJQcm9jZXNzQ29ubmVjdGlvbjo6Q3Jl
YXRlUGx1Z2luOjpEZWxheWVkUmVwbHkmJik7Ci0gICAgTWVzc2FnZXM6OldlYlByb2Nlc3NDb25u
ZWN0aW9uOjpDcmVhdGVQbHVnaW46OkRlbGF5ZWRSZXBseSB0YWtlSW5pdGlhbGl6YXRpb25SZXBs
eSgpOworICAgIHZvaWQgc2V0SW5pdGlhbGl6YXRpb25SZXBseShNZXNzYWdlczo6V2ViUHJvY2Vz
c0Nvbm5lY3Rpb246OkNyZWF0ZVBsdWdpbkRlbGF5ZWRSZXBseSYmKTsKKyAgICBNZXNzYWdlczo6
V2ViUHJvY2Vzc0Nvbm5lY3Rpb246OkNyZWF0ZVBsdWdpbkRlbGF5ZWRSZXBseSB0YWtlSW5pdGlh
bGl6YXRpb25SZXBseSgpOwogCiBwcml2YXRlOgogICAgIHZvaWQgc3RhcnRQYWludFRpbWVyKCk7
CkBAIC0xODQsNyArMTgzLDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1faXNWaXNpYmxlOwogICAg
IGJvb2wgbV9pc1dpbmRvd1Zpc2libGU7CiAKLSAgICBNZXNzYWdlczo6V2ViUHJvY2Vzc0Nvbm5l
Y3Rpb246OkNyZWF0ZVBsdWdpbjo6RGVsYXllZFJlcGx5IG1faW5pdGlhbGl6YXRpb25SZXBseTsK
KyAgICBNZXNzYWdlczo6V2ViUHJvY2Vzc0Nvbm5lY3Rpb246OkNyZWF0ZVBsdWdpbkRlbGF5ZWRS
ZXBseSBtX2luaXRpYWxpemF0aW9uUmVwbHk7CiAKICAgICBSZWZQdHI8UGx1Z2luPiBtX3BsdWdp
bjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbHVnaW5Qcm9jZXNzL1dlYlByb2Nlc3ND
b25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1BsdWdpblByb2Nlc3MvV2ViUHJvY2Vzc0Nvbm5l
Y3Rpb24uaAppbmRleCAzYTBhN2E4OTc5ZTMzMTdkMzc3MjY4ZjhlNjkwMjRlYTJkNjJjYTM0Li5l
ZjI0MjEwYTliMDRkOGU4YTI3MzRkZGY4Y2MxMmFiYjNjMDMwNzkxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1BsdWdpblByb2Nlc3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1BsdWdpblByb2Nlc3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uaApAQCAtMjksNyAr
MjksNyBAQAogCiAjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIlBsdWdpbi5oIgot
I2luY2x1ZGUgIldlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJQ
cm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VzUmVwbGllcy5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0
Lmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KIApAQCAtNjksOSArNjksOSBAQCBwcml2
YXRlOgogICAgIC8vIE1lc3NhZ2UgaGFuZGxlcnMuCiAgICAgdm9pZCBkaWRSZWNlaXZlV2ViUHJv
Y2Vzc0Nvbm5lY3Rpb25NZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpOwog
ICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNXZWJQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2UoSVBDOjpD
b25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4m
KTsKLSAgICB2b2lkIGNyZWF0ZVBsdWdpbihjb25zdCBQbHVnaW5DcmVhdGlvblBhcmFtZXRlcnMm
LCBNZXNzYWdlczo6V2ViUHJvY2Vzc0Nvbm5lY3Rpb246OkNyZWF0ZVBsdWdpbjo6RGVsYXllZFJl
cGx5JiYpOworICAgIHZvaWQgY3JlYXRlUGx1Z2luKGNvbnN0IFBsdWdpbkNyZWF0aW9uUGFyYW1l
dGVycyYsIE1lc3NhZ2VzOjpXZWJQcm9jZXNzQ29ubmVjdGlvbjo6Q3JlYXRlUGx1Z2luRGVsYXll
ZFJlcGx5JiYpOwogICAgIHZvaWQgY3JlYXRlUGx1Z2luQXN5bmNocm9ub3VzbHkoY29uc3QgUGx1
Z2luQ3JlYXRpb25QYXJhbWV0ZXJzJik7Ci0gICAgdm9pZCBkZXN0cm95UGx1Z2luKHVpbnQ2NF90
IHBsdWdpbkluc3RhbmNlSUQsIGJvb2wgYXN5bmNocm9ub3VzQ3JlYXRpb25JbmNvbXBsZXRlLCBN
ZXNzYWdlczo6V2ViUHJvY2Vzc0Nvbm5lY3Rpb246OkRlc3Ryb3lQbHVnaW46OkRlbGF5ZWRSZXBs
eSYmKTsKKyAgICB2b2lkIGRlc3Ryb3lQbHVnaW4odWludDY0X3QgcGx1Z2luSW5zdGFuY2VJRCwg
Ym9vbCBhc3luY2hyb25vdXNDcmVhdGlvbkluY29tcGxldGUsIE1lc3NhZ2VzOjpXZWJQcm9jZXNz
Q29ubmVjdGlvbjo6RGVzdHJveVBsdWdpbkRlbGF5ZWRSZXBseSYmKTsKICAgICAKICAgICB2b2lk
IGNyZWF0ZVBsdWdpbkludGVybmFsKGNvbnN0IFBsdWdpbkNyZWF0aW9uUGFyYW1ldGVycyYsIGJv
b2wmIHJlc3VsdCwgYm9vbCYgd2FudHNXaGVlbEV2ZW50cywgdWludDMyX3QmIHJlbW90ZUxheWVy
Q2xpZW50SUQpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvTWFrZWZpbGUg
Yi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvTWFrZWZpbGUKaW5kZXggNjU4MjBmMjM1MzA1YTI0YTE5
MDI5NDkwNmRhMzg4ZjE2MzViMTZkZS4uNTQzMmM4MjE3YWQyZGE3ZGQyOTE4YTZhNjJjNzViNDQ3
MGUyYzg2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TY3JpcHRzL01ha2VmaWxlCisrKyBi
L1NvdXJjZS9XZWJLaXQvU2NyaXB0cy9NYWtlZmlsZQpAQCAtMSw4ICsxLDUgQEAKIGFsbDoKLQlw
eXRob24gLi9nZW5lcmF0ZS1tZXNzYWdlcy1oZWFkZXIucHkgd2Via2l0L3Rlc3Qtc3VwZXJjbGFz
cy1tZXNzYWdlcy5pbiA+IHdlYmtpdC9NZXNzYWdlc1N1cGVyY2xhc3MtZXhwZWN0ZWQuaAotCXB5
dGhvbiAuL2dlbmVyYXRlLW1lc3NhZ2VzLWhlYWRlci5weSB3ZWJraXQvdGVzdC1sZWdhY3ktbWVz
c2FnZXMuaW4gPiB3ZWJraXQvTGVnYWN5TWVzc2FnZXMtZXhwZWN0ZWQuaAotCXB5dGhvbiAuL2dl
bmVyYXRlLW1lc3NhZ2VzLWhlYWRlci5weSB3ZWJraXQvdGVzdC1tZXNzYWdlcy5pbiA+IHdlYmtp
dC9NZXNzYWdlcy1leHBlY3RlZC5oCi0JcHl0aG9uIC4vZ2VuZXJhdGUtbWVzc2FnZS1yZWNlaXZl
ci5weSB3ZWJraXQvdGVzdC1zdXBlcmNsYXNzLW1lc3NhZ2VzLmluID4gd2Via2l0L01lc3NhZ2VS
ZWNlaXZlclN1cGVyY2xhc3MtZXhwZWN0ZWQuY3BwCi0JcHl0aG9uIC4vZ2VuZXJhdGUtbWVzc2Fn
ZS1yZWNlaXZlci5weSB3ZWJraXQvdGVzdC1sZWdhY3ktbWVzc2FnZXMuaW4gPiB3ZWJraXQvTGVn
YWN5TWVzc2FnZVJlY2VpdmVyLWV4cGVjdGVkLmNwcAotCXB5dGhvbiAuL2dlbmVyYXRlLW1lc3Nh
Z2UtcmVjZWl2ZXIucHkgd2Via2l0L3Rlc3QtbWVzc2FnZXMuaW4gPiB3ZWJraXQvTWVzc2FnZVJl
Y2VpdmVyLWV4cGVjdGVkLmNwcAorCXB5dGhvbiAuL2dlbmVyYXRlLW1lc3NhZ2UtcmVjZWl2ZXIu
cHkgd2Via2l0L3Rlc3Qtc3VwZXJjbGFzcy1tZXNzYWdlcy5pbiAtLWltcGxlbWVudGF0aW9uIHdl
YmtpdC9NZXNzYWdlUmVjZWl2ZXJTdXBlcmNsYXNzLWV4cGVjdGVkLmNwcCAtLWhlYWRlciB3ZWJr
aXQvTWVzc2FnZXNTdXBlcmNsYXNzLWV4cGVjdGVkLmggLS1yZXBseS1oZWFkZXIgd2Via2l0L01l
c3NhZ2VzUmVwbGllc1N1cGVyY2xhc3NSZXBsaWVzLWV4cGVjdGVkLmgKKwlweXRob24gLi9nZW5l
cmF0ZS1tZXNzYWdlLXJlY2VpdmVyLnB5IHdlYmtpdC90ZXN0LWxlZ2FjeS1tZXNzYWdlcy5pbiAt
LWltcGxlbWVudGF0aW9uIHdlYmtpdC9MZWdhY3lNZXNzYWdlUmVjZWl2ZXItZXhwZWN0ZWQuY3Bw
IC0taGVhZGVyIHdlYmtpdC9MZWdhY3lNZXNzYWdlcy1leHBlY3RlZC5oIC0tcmVwbHktaGVhZGVy
IHdlYmtpdC9MZWdhY3lNZXNzYWdlc1JlcGxpZXMtZXhwZWN0ZWQuaAorCXB5dGhvbiAuL2dlbmVy
YXRlLW1lc3NhZ2UtcmVjZWl2ZXIucHkgd2Via2l0L3Rlc3QtbWVzc2FnZXMuaW4gLS1pbXBsZW1l
bnRhdGlvbiB3ZWJraXQvTWVzc2FnZVJlY2VpdmVyLWV4cGVjdGVkLmNwcCAtLWhlYWRlciB3ZWJr
aXQvTWVzc2FnZXMtZXhwZWN0ZWQuaCAtLXJlcGx5LWhlYWRlciB3ZWJraXQvTWVzc2FnZXNSZXBs
aWVzLWV4cGVjdGVkLmgKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL2dlbmVy
YXRlLW1lc3NhZ2UtcmVjZWl2ZXIucHkgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvZ2VuZXJhdGUt
bWVzc2FnZS1yZWNlaXZlci5weQppbmRleCA2NDEzYThiZjM2ZjEyN2Q0ZjgzZmZiNDlmOTFjZDg4
ZDM3MDMwMmMyLi4zNWU0MDU4MmU3OWEzZjBjZTkzMzdhODZkNGUwOTMzN2ZiYTQxMWVlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvZ2VuZXJhdGUtbWVzc2FnZS1yZWNlaXZlci5w
eQorKysgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvZ2VuZXJhdGUtbWVzc2FnZS1yZWNlaXZlci5w
eQpAQCAtMjMsMTggKzIzLDM0IEBACiAjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKIGZyb20gX19mdXR1cmVfXyBp
bXBvcnQgd2l0aF9zdGF0ZW1lbnQKK2ltcG9ydCBhcmdwYXJzZQogaW1wb3J0IHN5cwogCiBpbXBv
cnQgd2Via2l0Lm1lc3NhZ2VzCitpbXBvcnQgd2Via2l0LnBhcnNlcgogCiAKIGRlZiBtYWluKGFy
Z3Y9Tm9uZSk6Ci0gICAgaWYgbm90IGFyZ3Y6Ci0gICAgICAgIGFyZ3YgPSBzeXMuYXJndgotICAg
IGlucHV0X3BhdGggPSBhcmd2WzFdCi0gICAgd2l0aCBvcGVuKGlucHV0X3BhdGgpIGFzIGlucHV0
X2ZpbGU6Ci0gICAgICAgICMgUHl0aG9uIDMsIGNoYW5nZSB0bzogIHByaW50KHdlYmtpdC5tZXNz
YWdlcy5nZW5lcmF0ZV9tZXNzYWdlX2hhbmRsZXIoaW5wdXRfZmlsZSksIGVuZD0nJykKLSAgICAg
ICAgc3lzLnN0ZG91dC53cml0ZSh3ZWJraXQubWVzc2FnZXMuZ2VuZXJhdGVfbWVzc2FnZV9oYW5k
bGVyKGlucHV0X2ZpbGUpKQorICAgIHBhcnNlciA9IGFyZ3BhcnNlLkFyZ3VtZW50UGFyc2VyKCkK
KyAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCdzb3VyY2UnKQorICAgIHBhcnNlci5hZGRfYXJndW1l
bnQoJy0taW1wbGVtZW50YXRpb24nLCByZXF1aXJlZD1UcnVlKQorICAgIHBhcnNlci5hZGRfYXJn
dW1lbnQoJy0taGVhZGVyJywgcmVxdWlyZWQ9VHJ1ZSkKKyAgICBwYXJzZXIuYWRkX2FyZ3VtZW50
KCctLXJlcGx5LWhlYWRlcicsIHJlcXVpcmVkPVRydWUpCisKKyAgICBhcmdzID0gcGFyc2VyLnBh
cnNlX2FyZ3MoKQorCisgICAgd2l0aCBvcGVuKGFyZ3Muc291cmNlKSBhcyBzb3VyY2VfZmlsZToK
KyAgICAgICAgcmVjZWl2ZXIgPSB3ZWJraXQucGFyc2VyLnBhcnNlKHNvdXJjZV9maWxlKQorCisg
ICAgd2l0aCBvcGVuKGFyZ3MuaW1wbGVtZW50YXRpb24sICJ3KyIpIGFzIGltcGxlbWVudGF0aW9u
X291dHB1dDoKKyAgICAgICAgaW1wbGVtZW50YXRpb25fb3V0cHV0LndyaXRlKHdlYmtpdC5tZXNz
YWdlcy5nZW5lcmF0ZV9tZXNzYWdlX2hhbmRsZXIocmVjZWl2ZXIpKQorCisgICAgd2l0aCBvcGVu
KGFyZ3MuaGVhZGVyLCAidysiKSBhcyBoZWFkZXJfb3V0cHV0OgorICAgICAgICBoZWFkZXJfb3V0
cHV0LndyaXRlKHdlYmtpdC5tZXNzYWdlcy5nZW5lcmF0ZV9tZXNzYWdlc19oZWFkZXIocmVjZWl2
ZXIpKQorCisgICAgd2l0aCBvcGVuKGFyZ3MucmVwbHlfaGVhZGVyLCAidysiKSBhcyByZXBseV9o
ZWFkZXJfb3V0cHV0OgorICAgICAgICByZXBseV9oZWFkZXJfb3V0cHV0LndyaXRlKHdlYmtpdC5t
ZXNzYWdlcy5nZW5lcmF0ZV9tZXNzYWdlc19yZXBseV9oZWFkZXIocmVjZWl2ZXIpKQorCiAgICAg
cmV0dXJuIDAKIAogaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvU2NyaXB0cy9nZW5lcmF0ZS1tZXNzYWdlcy1oZWFkZXIucHkgYi9Tb3VyY2UvV2Vi
S2l0L1NjcmlwdHMvZ2VuZXJhdGUtbWVzc2FnZXMtaGVhZGVyLnB5CmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBhZDczYTUyODM0ODMwOWFlYjIxMDhiNDQxOTYzODRhMzQ3ZWJjNjY2Li4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJL
aXQvU2NyaXB0cy9nZW5lcmF0ZS1tZXNzYWdlcy1oZWFkZXIucHkKKysrIC9kZXYvbnVsbApAQCAt
MSw0MSArMCwwIEBACi0jIS91c3IvYmluL2VudiBweXRob24KLSMKLSMgQ29weXJpZ2h0IChDKSAy
MDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwotIyBhcmUgbWV0OgotIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgMi4gIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0jICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0jICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotIwotIyBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnIEFORAotIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0jIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SCi0jIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKLSMgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKLSMgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIKLSMgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKLSMgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KLQotZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCB3aXRoX3N0YXRl
bWVudAotaW1wb3J0IHN5cwotCi1pbXBvcnQgd2Via2l0Lm1lc3NhZ2VzCi0KLQotZGVmIG1haW4o
YXJndj1Ob25lKToKLSAgICBpZiBub3QgYXJndjoKLSAgICAgICAgYXJndiA9IHN5cy5hcmd2Ci0g
ICAgaW5wdXRfcGF0aCA9IGFyZ3ZbMV0KLSAgICB3aXRoIG9wZW4oaW5wdXRfcGF0aCkgYXMgaW5w
dXRfZmlsZToKLSAgICAgICAgIyBQeXRob24gMywgY2hhbmdlIHRvOiAgcHJpbnQod2Via2l0Lm1l
c3NhZ2VzLmdlbmVyYXRlX21lc3NhZ2VzX2hlYWRlcihpbnB1dF9maWxlKSwgZW5kPScnKQotICAg
ICAgICBzeXMuc3Rkb3V0LndyaXRlKHdlYmtpdC5tZXNzYWdlcy5nZW5lcmF0ZV9tZXNzYWdlc19o
ZWFkZXIoaW5wdXRfZmlsZSkpCi0gICAgcmV0dXJuIDAKLQotaWYgX19uYW1lX18gPT0gJ19fbWFp
bl9fJzoKLSAgICBzeXMuZXhpdChtYWluKHN5cy5hcmd2KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvU2NyaXB0cy93ZWJraXQvTGVnYWN5TWVzc2FnZVJlY2VpdmVyLWV4cGVjdGVkLmNwcCBi
L1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvTGVnYWN5TWVzc2FnZVJlY2VpdmVyLWV4cGVj
dGVkLmNwcAppbmRleCBmZWE4NTM2NzUzNTY3NzI2MmM3ZjcyNDJmNDhjZDlhYzgzMDBmMDkwLi5k
MGI4NjVmN2Y3M2RlNWNmMzllMDk1M2ZmZmE4MjI3MTZkMGFiOTA1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L0xlZ2FjeU1lc3NhZ2VSZWNlaXZlci1leHBlY3RlZC5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9MZWdhY3lNZXNzYWdlUmVjZWl2
ZXItZXhwZWN0ZWQuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
MC0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAxMC0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtp
dC9MZWdhY3lNZXNzYWdlcy1leHBlY3RlZC5oIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtp
dC9MZWdhY3lNZXNzYWdlcy1leHBlY3RlZC5oCmluZGV4IGZmZDEzZDNlOGMyMGM4YjliZGU4YzJi
YTMxNTE5OTExNGI3ZmJhZmEuLmFlY2UxMjJhMWM2NWUwMjQzMjY2Y2E3MTExMGEwYTVmODZmZTY0
ZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvTGVnYWN5TWVzc2Fn
ZXMtZXhwZWN0ZWQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L0xlZ2FjeU1l
c3NhZ2VzLWV4cGVjdGVkLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAy
MDEwLTIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDEwLTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiQXJndW1lbnRD
b2RlcnMuaCIKICNpbmNsdWRlICJDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiUGx1Z2luLmgiCisj
aW5jbHVkZSAiV2ViUGFnZU1lc3NhZ2VzUmVwbGllcy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvR3Jh
cGhpY3NMYXllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvS2V5Ym9hcmRFdmVudC5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvUGx1Z2luRGF0YS5oPgpAQCAtMzYwLDcgKzM2MSw3IEBAIHB1YmxpYzoKICAg
ICBzdGF0aWMgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbmFtZSgpIHsgcmV0dXJuIElQQzo6U3RyaW5n
UmVmZXJlbmNlKCJHZXRQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbiIpOyB9CiAgICAgc3RhdGljIGNv
bnN0IGJvb2wgaXNTeW5jID0gdHJ1ZTsKIAotICAgIHVzaW5nIERlbGF5ZWRSZXBseSA9IENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgSVBDOjpDb25uZWN0aW9uOjpIYW5kbGUmIGNvbm5lY3Rp
b25IYW5kbGUpPjsKKyAgICB1c2luZyBEZWxheWVkUmVwbHkgPSBHZXRQbHVnaW5Qcm9jZXNzQ29u
bmVjdGlvbkRlbGF5ZWRSZXBseTsKICAgICBzdGF0aWMgdm9pZCBzZW5kKHN0ZDo6dW5pcXVlX3B0
cjxJUEM6OkVuY29kZXI+JiYsIElQQzo6Q29ubmVjdGlvbiYsIGNvbnN0IElQQzo6Q29ubmVjdGlv
bjo6SGFuZGxlJiBjb25uZWN0aW9uSGFuZGxlKTsKICAgICB1c2luZyBSZXBseSA9IHN0ZDo6dHVw
bGU8SVBDOjpDb25uZWN0aW9uOjpIYW5kbGUmPjsKICAgICB1c2luZyBSZXBseUFyZ3VtZW50cyA9
IHN0ZDo6dHVwbGU8SVBDOjpDb25uZWN0aW9uOjpIYW5kbGU+OwpAQCAtMzg2LDcgKzM4Nyw3IEBA
IHB1YmxpYzoKICAgICBzdGF0aWMgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbmFtZSgpIHsgcmV0dXJu
IElQQzo6U3RyaW5nUmVmZXJlbmNlKCJUZXN0TXVsdGlwbGVBdHRyaWJ1dGVzIik7IH0KICAgICBz
dGF0aWMgY29uc3QgYm9vbCBpc1N5bmMgPSB0cnVlOwogCi0gICAgdXNpbmcgRGVsYXllZFJlcGx5
ID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPjsKKyAgICB1c2luZyBEZWxheWVkUmVwbHkgPSBU
ZXN0TXVsdGlwbGVBdHRyaWJ1dGVzRGVsYXllZFJlcGx5OwogICAgIHN0YXRpYyB2b2lkIHNlbmQo
c3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mJiwgSVBDOjpDb25uZWN0aW9uJik7CiAgICAg
dXNpbmcgUmVwbHkgPSBzdGQ6OnR1cGxlPD47CiAgICAgdXNpbmcgUmVwbHlBcmd1bWVudHMgPSBz
dGQ6OnR1cGxlPD47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L0xl
Z2FjeU1lc3NhZ2VzUmVwbGllcy1leHBlY3RlZC5oIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dl
YmtpdC9MZWdhY3lNZXNzYWdlc1JlcGxpZXMtZXhwZWN0ZWQuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNzBjZWFm
ZDlmYTVlY2RjY2ZhMWMyMWMwOTdhZTc0NjQ5YzhlNGZjCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9MZWdhY3lNZXNzYWdlc1JlcGxpZXMtZXhwZWN0ZWQu
aApAQCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwLTIwMTkgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJyBBTkQKKyAqIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUgorICogQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorICogREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IK
KyAqIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSCisgKiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorICogT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNp
ZiAoRU5BQkxFKFdFQktJVDIpICYmIChORVNURURfTUFTVEVSX0NPTkRJVElPTiB8fCBNQVNURVJf
T1IgJiYgTUFTVEVSX0FORCkpCisKKyNpbmNsdWRlICJDb25uZWN0aW9uLmgiCisjaW5jbHVkZSA8
d3RmL0ZvcndhcmQuaD4KKworCituYW1lc3BhY2UgTWVzc2FnZXMgeworbmFtZXNwYWNlIFdlYlBh
Z2UgeworCit1c2luZyBHZXRQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbkRlbGF5ZWRSZXBseSA9IENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgSVBDOjpDb25uZWN0aW9uOjpIYW5kbGUmIGNvbm5l
Y3Rpb25IYW5kbGUpPjsKKwordXNpbmcgVGVzdE11bHRpcGxlQXR0cmlidXRlc0RlbGF5ZWRSZXBs
eSA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT47CisKK30gLy8gbmFtZXNwYWNlIFdlYlBhZ2UK
K30gLy8gbmFtZXNwYWNlIE1lc3NhZ2VzCisKKyNlbmRpZiAvLyAoRU5BQkxFKFdFQktJVDIpICYm
IChORVNURURfTUFTVEVSX0NPTkRJVElPTiB8fCBNQVNURVJfT1IgJiYgTUFTVEVSX0FORCkpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L01lc3NhZ2VSZWNlaXZlci1l
eHBlY3RlZC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L01lc3NhZ2VSZWNlaXZl
ci1leHBlY3RlZC5jcHAKaW5kZXggYjVjY2UxYmE0ZjU2YTdjODczODRhMjAyMWU0OWQ4NTIyYWY2
ODJjMC4uYTI1YTkxMmY2M2FhOGNkNzZmODBiYjljMWU1NWMyOTM4MzA4ZTY2ZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9NZXNzYWdlUmVjZWl2ZXItZXhwZWN0ZWQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvTWVzc2FnZVJlY2VpdmVyLWV4
cGVjdGVkLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAtMjAx
OCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAt
MjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvTWVz
c2FnZVJlY2VpdmVyU3VwZXJjbGFzcy1leHBlY3RlZC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1Njcmlw
dHMvd2Via2l0L01lc3NhZ2VSZWNlaXZlclN1cGVyY2xhc3MtZXhwZWN0ZWQuY3BwCmluZGV4IDE0
MjEyZDVjOGFhNTEyODA1NjAwYWZhYzliYTI3N2JkNTMxZmEzNzAuLmI2MTFiMjVlMDg2MmRiNTk3
OTc1OTc4ZGY0MDRjOGEzNTEyNzQ4NzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0
cy93ZWJraXQvTWVzc2FnZVJlY2VpdmVyU3VwZXJjbGFzcy1leHBlY3RlZC5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9NZXNzYWdlUmVjZWl2ZXJTdXBlcmNsYXNzLWV4cGVj
dGVkLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAtMjAxOCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAtMjAx
OSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvTWVzc2Fn
ZXMtZXhwZWN0ZWQuaCBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvTWVzc2FnZXMtZXhw
ZWN0ZWQuaAppbmRleCBmZmQxM2QzZThjMjBjOGI5YmRlOGMyYmEzMTUxOTkxMTRiN2ZiYWZhLi5h
ZWNlMTIyYTFjNjVlMDI0MzI2NmNhNzExMTBhMGE1Zjg2ZmU2NGVkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L01lc3NhZ2VzLWV4cGVjdGVkLmgKKysrIGIvU291cmNl
L1dlYktpdC9TY3JpcHRzL3dlYmtpdC9NZXNzYWdlcy1leHBlY3RlZC5oCkBAIC0xLDUgKzEsNSBA
QAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMC0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMC0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjksNiArMjks
NyBAQAogI2luY2x1ZGUgIkFyZ3VtZW50Q29kZXJzLmgiCiAjaW5jbHVkZSAiQ29ubmVjdGlvbi5o
IgogI2luY2x1ZGUgIlBsdWdpbi5oIgorI2luY2x1ZGUgIldlYlBhZ2VNZXNzYWdlc1JlcGxpZXMu
aCIKICNpbmNsdWRlIDxXZWJDb3JlL0dyYXBoaWNzTGF5ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L0tleWJvYXJkRXZlbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BsdWdpbkRhdGEuaD4KQEAgLTM2
MCw3ICszNjEsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIElQQzo6U3RyaW5nUmVmZXJlbmNlIG5h
bWUoKSB7IHJldHVybiBJUEM6OlN0cmluZ1JlZmVyZW5jZSgiR2V0UGx1Z2luUHJvY2Vzc0Nvbm5l
Y3Rpb24iKTsgfQogICAgIHN0YXRpYyBjb25zdCBib29sIGlzU3luYyA9IHRydWU7CiAKLSAgICB1
c2luZyBEZWxheWVkUmVwbHkgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IElQQzo6Q29u
bmVjdGlvbjo6SGFuZGxlJiBjb25uZWN0aW9uSGFuZGxlKT47CisgICAgdXNpbmcgRGVsYXllZFJl
cGx5ID0gR2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25EZWxheWVkUmVwbHk7CiAgICAgc3RhdGlj
IHZvaWQgc2VuZChzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYmLCBJUEM6OkNvbm5lY3Rp
b24mLCBjb25zdCBJUEM6OkNvbm5lY3Rpb246OkhhbmRsZSYgY29ubmVjdGlvbkhhbmRsZSk7CiAg
ICAgdXNpbmcgUmVwbHkgPSBzdGQ6OnR1cGxlPElQQzo6Q29ubmVjdGlvbjo6SGFuZGxlJj47CiAg
ICAgdXNpbmcgUmVwbHlBcmd1bWVudHMgPSBzdGQ6OnR1cGxlPElQQzo6Q29ubmVjdGlvbjo6SGFu
ZGxlPjsKQEAgLTM4Niw3ICszODcsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIElQQzo6U3RyaW5n
UmVmZXJlbmNlIG5hbWUoKSB7IHJldHVybiBJUEM6OlN0cmluZ1JlZmVyZW5jZSgiVGVzdE11bHRp
cGxlQXR0cmlidXRlcyIpOyB9CiAgICAgc3RhdGljIGNvbnN0IGJvb2wgaXNTeW5jID0gdHJ1ZTsK
IAotICAgIHVzaW5nIERlbGF5ZWRSZXBseSA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT47Cisg
ICAgdXNpbmcgRGVsYXllZFJlcGx5ID0gVGVzdE11bHRpcGxlQXR0cmlidXRlc0RlbGF5ZWRSZXBs
eTsKICAgICBzdGF0aWMgdm9pZCBzZW5kKHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+JiYs
IElQQzo6Q29ubmVjdGlvbiYpOwogICAgIHVzaW5nIFJlcGx5ID0gc3RkOjp0dXBsZTw+OwogICAg
IHVzaW5nIFJlcGx5QXJndW1lbnRzID0gc3RkOjp0dXBsZTw+OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9TY3JpcHRzL3dlYmtpdC9NZXNzYWdlc1JlcGxpZXMtZXhwZWN0ZWQuaCBiL1NvdXJj
ZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvTWVzc2FnZXNSZXBsaWVzLWV4cGVjdGVkLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZjcwY2VhZmQ5ZmE1ZWNkY2NmYTFjMjFjMDk3YWU3NDY0OWM4ZTRmYwotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvTWVzc2FnZXNSZXBsaWVzLWV4
cGVjdGVkLmgKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMC0yMDE5
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycgQU5ECisgKiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyAqIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyAqIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SCisgKiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorICogQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyAq
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25j
ZQorCisjaWYgKEVOQUJMRShXRUJLSVQyKSAmJiAoTkVTVEVEX01BU1RFUl9DT05ESVRJT04gfHwg
TUFTVEVSX09SICYmIE1BU1RFUl9BTkQpKQorCisjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgorI2lu
Y2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisKKworbmFtZXNwYWNlIE1lc3NhZ2VzIHsKK25hbWVzcGFj
ZSBXZWJQYWdlIHsKKwordXNpbmcgR2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25EZWxheWVkUmVw
bHkgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IElQQzo6Q29ubmVjdGlvbjo6SGFuZGxl
JiBjb25uZWN0aW9uSGFuZGxlKT47CisKK3VzaW5nIFRlc3RNdWx0aXBsZUF0dHJpYnV0ZXNEZWxh
eWVkUmVwbHkgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+OworCit9IC8vIG5hbWVzcGFjZSBX
ZWJQYWdlCit9IC8vIG5hbWVzcGFjZSBNZXNzYWdlcworCisjZW5kaWYgLy8gKEVOQUJMRShXRUJL
SVQyKSAmJiAoTkVTVEVEX01BU1RFUl9DT05ESVRJT04gfHwgTUFTVEVSX09SICYmIE1BU1RFUl9B
TkQpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9NZXNzYWdlc1Jl
cGxpZXNTdXBlcmNsYXNzUmVwbGllcy1leHBlY3RlZC5oIGIvU291cmNlL1dlYktpdC9TY3JpcHRz
L3dlYmtpdC9NZXNzYWdlc1JlcGxpZXNTdXBlcmNsYXNzUmVwbGllcy1leHBlY3RlZC5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjNmYTYzZjNkNjQ4ZjVhMDE3MjdlMTVjMTRjYWYxMTI0NjAzMjYyMDgKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L01lc3NhZ2VzUmVwbGllc1N1
cGVyY2xhc3NSZXBsaWVzLWV4cGVjdGVkLmgKQEAgLTAsMCArMSw1MiBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxMC0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisgKiBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyAqIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwKKyAqIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisgKiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorICogQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwKKyAqIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiVGVzdENsYXNzTmFtZS5oIgorI2luY2x1
ZGUgPHd0Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CisKKworbmFtZXNw
YWNlIE1lc3NhZ2VzIHsKK25hbWVzcGFjZSBXZWJQYWdlIHsKKworI2lmIEVOQUJMRShURVNUX0ZF
QVRVUkUpCit1c2luZyBUZXN0QXN5bmNNZXNzYWdlQXN5bmNSZXBseSA9IENvbXBsZXRpb25IYW5k
bGVyPHZvaWQodWludDY0X3QgcmVzdWx0KT47CisjZW5kaWYKKworI2lmIEVOQUJMRShURVNUX0ZF
QVRVUkUpCit1c2luZyBUZXN0QXN5bmNNZXNzYWdlV2l0aE5vQXJndW1lbnRzQXN5bmNSZXBseSA9
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT47CisjZW5kaWYKKworI2lmIEVOQUJMRShURVNUX0ZF
QVRVUkUpCit1c2luZyBUZXN0QXN5bmNNZXNzYWdlV2l0aE11bHRpcGxlQXJndW1lbnRzQXN5bmNS
ZXBseSA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCBmbGFnLCB1aW50NjRfdCB2YWx1ZSk+
OworI2VuZGlmCisKK3VzaW5nIFRlc3RTeW5jTWVzc2FnZURlbGF5ZWRSZXBseSA9IENvbXBsZXRp
b25IYW5kbGVyPHZvaWQodWludDhfdCByZXBseSk+OworCit1c2luZyBUZXN0U3luY2hyb25vdXNN
ZXNzYWdlRGVsYXllZFJlcGx5ID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBPcHRpb25h
bDxXZWJLaXQ6OlRlc3RDbGFzc05hbWU+JiBvcHRpb25hbFJlcGx5KT47CisKK30gLy8gbmFtZXNw
YWNlIFdlYlBhZ2UKK30gLy8gbmFtZXNwYWNlIE1lc3NhZ2VzCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1NjcmlwdHMvd2Via2l0L01lc3NhZ2VzU3VwZXJjbGFzcy1leHBlY3RlZC5oIGIvU291
cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9NZXNzYWdlc1N1cGVyY2xhc3MtZXhwZWN0ZWQuaApp
bmRleCAwZjZmY2MyNjFhMjkxMDUyMzgzN2QwZTY0MDIzNTVhZGU4NTVhYmY3Li5lZTgwNzFmNWQx
NzA2NzMzMDI1YmU4ZGY0Y2FmZGRkNTQyZjc2ZTFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1NjcmlwdHMvd2Via2l0L01lc3NhZ2VzU3VwZXJjbGFzcy1leHBlY3RlZC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvTWVzc2FnZXNTdXBlcmNsYXNzLWV4cGVjdGVkLmgKQEAg
LTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEwLTIwMTggQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwLTIwMTkgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBA
IC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiQXJndW1lbnRDb2RlcnMuaCIKICNpbmNsdWRlICJD
b25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiVGVzdENsYXNzTmFtZS5oIgorI2luY2x1ZGUgIldlYlBh
Z2VNZXNzYWdlc1JlcGxpZXMuaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUg
PHd0Zi9PcHRpb25hbC5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5oPgpA
QCAtNzgsNyArNzksNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHZvaWQgY2FsbFJlcGx5KElQQzo6
RGVjb2RlciYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQodWludDY0X3QmJik+JiYpOwogICAgIHN0
YXRpYyB2b2lkIGNhbmNlbFJlcGx5KENvbXBsZXRpb25IYW5kbGVyPHZvaWQodWludDY0X3QmJik+
JiYpOwogICAgIHN0YXRpYyBJUEM6OlN0cmluZ1JlZmVyZW5jZSBhc3luY01lc3NhZ2VSZXBseU5h
bWUoKSB7IHJldHVybiB7ICJUZXN0QXN5bmNNZXNzYWdlUmVwbHkiIH07IH0KLSAgICB1c2luZyBB
c3luY1JlcGx5ID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZCh1aW50NjRfdCByZXN1bHQpPjsKKyAg
ICB1c2luZyBBc3luY1JlcGx5ID0gVGVzdEFzeW5jTWVzc2FnZUFzeW5jUmVwbHk7CiAgICAgc3Rh
dGljIHZvaWQgc2VuZChzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYmLCBJUEM6OkNvbm5l
Y3Rpb24mLCB1aW50NjRfdCByZXN1bHQpOwogICAgIHVzaW5nIFJlcGx5ID0gc3RkOjp0dXBsZTx1
aW50NjRfdCY+OwogICAgIHVzaW5nIFJlcGx5QXJndW1lbnRzID0gc3RkOjp0dXBsZTx1aW50NjRf
dD47CkBAIC0xMDksNyArMTEwLDcgQEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lkIGNhbGxSZXBs
eShJUEM6OkRlY29kZXImLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHN0YXRp
YyB2b2lkIGNhbmNlbFJlcGx5KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgc3Rh
dGljIElQQzo6U3RyaW5nUmVmZXJlbmNlIGFzeW5jTWVzc2FnZVJlcGx5TmFtZSgpIHsgcmV0dXJu
IHsgIlRlc3RBc3luY01lc3NhZ2VXaXRoTm9Bcmd1bWVudHNSZXBseSIgfTsgfQotICAgIHVzaW5n
IEFzeW5jUmVwbHkgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+OworICAgIHVzaW5nIEFzeW5j
UmVwbHkgPSBUZXN0QXN5bmNNZXNzYWdlV2l0aE5vQXJndW1lbnRzQXN5bmNSZXBseTsKICAgICBz
dGF0aWMgdm9pZCBzZW5kKHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+JiYsIElQQzo6Q29u
bmVjdGlvbiYpOwogICAgIHVzaW5nIFJlcGx5ID0gc3RkOjp0dXBsZTw+OwogICAgIHVzaW5nIFJl
cGx5QXJndW1lbnRzID0gc3RkOjp0dXBsZTw+OwpAQCAtMTM1LDcgKzEzNiw3IEBAIHB1YmxpYzoK
ICAgICBzdGF0aWMgdm9pZCBjYWxsUmVwbHkoSVBDOjpEZWNvZGVyJiwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChib29sJiYsIHVpbnQ2NF90JiYpPiYmKTsKICAgICBzdGF0aWMgdm9pZCBjYW5jZWxS
ZXBseShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wmJiwgdWludDY0X3QmJik+JiYpOwogICAg
IHN0YXRpYyBJUEM6OlN0cmluZ1JlZmVyZW5jZSBhc3luY01lc3NhZ2VSZXBseU5hbWUoKSB7IHJl
dHVybiB7ICJUZXN0QXN5bmNNZXNzYWdlV2l0aE11bHRpcGxlQXJndW1lbnRzUmVwbHkiIH07IH0K
LSAgICB1c2luZyBBc3luY1JlcGx5ID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sIGZsYWcs
IHVpbnQ2NF90IHZhbHVlKT47CisgICAgdXNpbmcgQXN5bmNSZXBseSA9IFRlc3RBc3luY01lc3Nh
Z2VXaXRoTXVsdGlwbGVBcmd1bWVudHNBc3luY1JlcGx5OwogICAgIHN0YXRpYyB2b2lkIHNlbmQo
c3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mJiwgSVBDOjpDb25uZWN0aW9uJiwgYm9vbCBm
bGFnLCB1aW50NjRfdCB2YWx1ZSk7CiAgICAgdXNpbmcgUmVwbHkgPSBzdGQ6OnR1cGxlPGJvb2wm
LCB1aW50NjRfdCY+OwogICAgIHVzaW5nIFJlcGx5QXJndW1lbnRzID0gc3RkOjp0dXBsZTxib29s
LCB1aW50NjRfdD47CkBAIC0xNTcsNyArMTU4LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBJUEM6
OlN0cmluZ1JlZmVyZW5jZSBuYW1lKCkgeyByZXR1cm4gSVBDOjpTdHJpbmdSZWZlcmVuY2UoIlRl
c3RTeW5jTWVzc2FnZSIpOyB9CiAgICAgc3RhdGljIGNvbnN0IGJvb2wgaXNTeW5jID0gdHJ1ZTsK
IAotICAgIHVzaW5nIERlbGF5ZWRSZXBseSA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQodWludDhf
dCByZXBseSk+OworICAgIHVzaW5nIERlbGF5ZWRSZXBseSA9IFRlc3RTeW5jTWVzc2FnZURlbGF5
ZWRSZXBseTsKICAgICBzdGF0aWMgdm9pZCBzZW5kKHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29k
ZXI+JiYsIElQQzo6Q29ubmVjdGlvbiYsIHVpbnQ4X3QgcmVwbHkpOwogICAgIHVzaW5nIFJlcGx5
ID0gc3RkOjp0dXBsZTx1aW50OF90Jj47CiAgICAgdXNpbmcgUmVwbHlBcmd1bWVudHMgPSBzdGQ6
OnR1cGxlPHVpbnQ4X3Q+OwpAQCAtMTgzLDcgKzE4NCw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMg
SVBDOjpTdHJpbmdSZWZlcmVuY2UgbmFtZSgpIHsgcmV0dXJuIElQQzo6U3RyaW5nUmVmZXJlbmNl
KCJUZXN0U3luY2hyb25vdXNNZXNzYWdlIik7IH0KICAgICBzdGF0aWMgY29uc3QgYm9vbCBpc1N5
bmMgPSB0cnVlOwogCi0gICAgdXNpbmcgRGVsYXllZFJlcGx5ID0gQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChjb25zdCBPcHRpb25hbDxXZWJLaXQ6OlRlc3RDbGFzc05hbWU+JiBvcHRpb25hbFJlcGx5
KT47CisgICAgdXNpbmcgRGVsYXllZFJlcGx5ID0gVGVzdFN5bmNocm9ub3VzTWVzc2FnZURlbGF5
ZWRSZXBseTsKICAgICBzdGF0aWMgdm9pZCBzZW5kKHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29k
ZXI+JiYsIElQQzo6Q29ubmVjdGlvbiYsIGNvbnN0IE9wdGlvbmFsPFdlYktpdDo6VGVzdENsYXNz
TmFtZT4mIG9wdGlvbmFsUmVwbHkpOwogICAgIHVzaW5nIFJlcGx5ID0gc3RkOjp0dXBsZTxPcHRp
b25hbDxXZWJLaXQ6OlRlc3RDbGFzc05hbWU+Jj47CiAgICAgdXNpbmcgUmVwbHlBcmd1bWVudHMg
PSBzdGQ6OnR1cGxlPE9wdGlvbmFsPFdlYktpdDo6VGVzdENsYXNzTmFtZT4+OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weSBiL1NvdXJjZS9XZWJL
aXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKaW5kZXggMzU2MTM0YmJjNzMwMDFiOWMxZDc5
NDUzMDFiNDFhMGM0NDM1N2JmZi4uMjFkZTY4NTZlMDc5NDRmOGIxNzZlZDhiN2I5Mzk2YzY1YzAz
NmRiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5w
eQorKysgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CkBAIC0zMiw3
ICszMiw3IEBAIFNZTkNIUk9OT1VTX0FUVFJJQlVURSA9ICdTeW5jaHJvbm91cycKIEFTWU5DX0FU
VFJJQlVURSA9ICdBc3luYycKIAogX2xpY2Vuc2VfaGVhZGVyID0gIiIiLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxMC0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAxMC0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTEzLDkgKzExMywyOSBAQCBkZWYgcmVwbHlf
YXJndW1lbnRzX3R5cGUobWVzc2FnZSk6CiAgICAgcmV0dXJuICdzdGQ6OnR1cGxlPCVzPicgJSAo
JywgJy5qb2luKHBhcmFtZXRlci50eXBlIGZvciBwYXJhbWV0ZXIgaW4gbWVzc2FnZS5yZXBseV9w
YXJhbWV0ZXJzKSkKIAogCitkZWYgbWVzc2FnZV90b19yZXBseV9mb3J3YXJkX2RlY2xhcmF0aW9u
KG1lc3NhZ2UpOgorICAgIHJlc3VsdCA9IFtdCisKKyAgICBpZiBtZXNzYWdlLnJlcGx5X3BhcmFt
ZXRlcnMgIT0gTm9uZSBhbmQgKG1lc3NhZ2UuaGFzX2F0dHJpYnV0ZShTWU5DSFJPTk9VU19BVFRS
SUJVVEUpIG9yIG1lc3NhZ2UuaGFzX2F0dHJpYnV0ZShBU1lOQ19BVFRSSUJVVEUpKToKKyAgICAg
ICAgc2VuZF9wYXJhbWV0ZXJzID0gWyhmdW5jdGlvbl9wYXJhbWV0ZXJfdHlwZSh4LnR5cGUsIHgu
a2luZCksIHgubmFtZSkgZm9yIHggaW4gbWVzc2FnZS5yZXBseV9wYXJhbWV0ZXJzXQorICAgICAg
ICBjb21wbGV0aW9uX2hhbmRsZXJfcGFyYW1ldGVycyA9ICclcycgJSAnLCAnLmpvaW4oWycgJy5q
b2luKHgpIGZvciB4IGluIHNlbmRfcGFyYW1ldGVyc10pCisKKyAgICAgICAgaWYgbWVzc2FnZS5o
YXNfYXR0cmlidXRlKEFTWU5DX0FUVFJJQlVURSk6CisgICAgICAgICAgICByZXN1bHQuYXBwZW5k
KCd1c2luZyAlc0FzeW5jUmVwbHknICUgbWVzc2FnZS5uYW1lKQorICAgICAgICBlbHNlOgorICAg
ICAgICAgICAgcmVzdWx0LmFwcGVuZCgndXNpbmcgJXNEZWxheWVkUmVwbHknICUgbWVzc2FnZS5u
YW1lKQorICAgICAgICByZXN1bHQuYXBwZW5kKCcgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCVz
KT47XG4nICUgY29tcGxldGlvbl9oYW5kbGVyX3BhcmFtZXRlcnMpCisKKyAgICBpZiBub3QgcmVz
dWx0OgorICAgICAgICByZXR1cm4gTm9uZQorCisgICAgcmV0dXJuIHN1cnJvdW5kX2luX2NvbmRp
dGlvbignJy5qb2luKHJlc3VsdCksIG1lc3NhZ2UuY29uZGl0aW9uKQorCisKIGRlZiBtZXNzYWdl
X3RvX3N0cnVjdF9kZWNsYXJhdGlvbihtZXNzYWdlKToKICAgICByZXN1bHQgPSBbXQogICAgIGZ1
bmN0aW9uX3BhcmFtZXRlcnMgPSBbKGZ1bmN0aW9uX3BhcmFtZXRlcl90eXBlKHgudHlwZSwgeC5r
aW5kKSwgeC5uYW1lKSBmb3IgeCBpbiBtZXNzYWdlLnBhcmFtZXRlcnNdCisKICAgICByZXN1bHQu
YXBwZW5kKCdjbGFzcyAlcyB7XG4nICUgbWVzc2FnZS5uYW1lKQogICAgIHJlc3VsdC5hcHBlbmQo
J3B1YmxpYzpcbicpCiAgICAgcmVzdWx0LmFwcGVuZCgnICAgIHR5cGVkZWYgJXMgQXJndW1lbnRz
O1xuJyAlIGFyZ3VtZW50c190eXBlKG1lc3NhZ2UpKQpAQCAtMTMyLDExICsxNTIsMTAgQEAgZGVm
IG1lc3NhZ2VfdG9fc3RydWN0X2RlY2xhcmF0aW9uKG1lc3NhZ2UpOgogICAgICAgICAgICAgcmVz
dWx0LmFwcGVuZCgnICAgIHN0YXRpYyB2b2lkIGNhbGxSZXBseShJUEM6OkRlY29kZXImLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKCVzKT4mJik7XG4nICUgbW92ZV9wYXJhbWV0ZXJzKQogICAgICAg
ICAgICAgcmVzdWx0LmFwcGVuZCgnICAgIHN0YXRpYyB2b2lkIGNhbmNlbFJlcGx5KENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoJXMpPiYmKTtcbicgJSBtb3ZlX3BhcmFtZXRlcnMpCiAgICAgICAgICAg
ICByZXN1bHQuYXBwZW5kKCcgICAgc3RhdGljIElQQzo6U3RyaW5nUmVmZXJlbmNlIGFzeW5jTWVz
c2FnZVJlcGx5TmFtZSgpIHsgcmV0dXJuIHsgIiVzUmVwbHkiIH07IH1cbicgJSBtZXNzYWdlLm5h
bWUpCi0gICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcgICAgdXNpbmcgQXN5bmNSZXBseScpCisg
ICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcgICAgdXNpbmcgQXN5bmNSZXBseSA9ICVzQXN5bmNS
ZXBseTtcbicgJSBtZXNzYWdlLm5hbWUpCiAgICAgICAgIGVsaWYgbWVzc2FnZS5oYXNfYXR0cmli
dXRlKFNZTkNIUk9OT1VTX0FUVFJJQlVURSk6Ci0gICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcg
ICAgdXNpbmcgRGVsYXllZFJlcGx5JykKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyAgICB1
c2luZyBEZWxheWVkUmVwbHkgPSAlc0RlbGF5ZWRSZXBseTtcbicgJSBtZXNzYWdlLm5hbWUpCiAg
ICAgICAgIGlmIG1lc3NhZ2UuaGFzX2F0dHJpYnV0ZShTWU5DSFJPTk9VU19BVFRSSUJVVEUpIG9y
IG1lc3NhZ2UuaGFzX2F0dHJpYnV0ZShBU1lOQ19BVFRSSUJVVEUpOgotICAgICAgICAgICAgcmVz
dWx0LmFwcGVuZCgnID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZCglcyk+O1xuJyAlIGNvbXBsZXRp
b25faGFuZGxlcl9wYXJhbWV0ZXJzKQogICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnICAgIHN0
YXRpYyB2b2lkIHNlbmQoc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mJiwgSVBDOjpDb25u
ZWN0aW9uJicpCiAgICAgICAgICAgICBpZiBsZW4oc2VuZF9wYXJhbWV0ZXJzKToKICAgICAgICAg
ICAgICAgICByZXN1bHQuYXBwZW5kKCcsICVzJyAlIGNvbXBsZXRpb25faGFuZGxlcl9wYXJhbWV0
ZXJzKQpAQCAtMTgwLDI3ICsxOTksOCBAQCBkZWYgZm9yd2FyZF9kZWNsYXJhdGlvbnNfZm9yX25h
bWVzcGFjZShuYW1lc3BhY2UsIGtpbmRfYW5kX3R5cGVzKToKICAgICByZXR1cm4gJycuam9pbihy
ZXN1bHQpCiAKIAotZGVmIGZvcndhcmRfZGVjbGFyYXRpb25zX2FuZF9oZWFkZXJzKHJlY2VpdmVy
KToKLSAgICB0eXBlc19ieV9uYW1lc3BhY2UgPSBjb2xsZWN0aW9ucy5kZWZhdWx0ZGljdChzZXQp
Ci0KLSAgICBoZWFkZXJzID0gc2V0KFsKLSAgICAgICAgJyJBcmd1bWVudENvZGVycy5oIicsCi0g
ICAgICAgICc8d3RmL0ZvcndhcmQuaD4nLAotICAgIF0pCi0KLSAgICBoZWFkZXJfY29uZGl0aW9u
cyA9IHsKLSAgICAgICAgJyJMYXllckhvc3RpbmdDb250ZXh0LmgiJzogWyJQTEFURk9STShDT0NP
QSkiLCBdLAotICAgIH0KLQotICAgIG5vbl90ZW1wbGF0ZV93dGZfdHlwZXMgPSBmcm96ZW5zZXQo
WwotICAgICAgICAnTWFjaFNlbmRSaWdodCcsCi0gICAgICAgICdTdHJpbmcnLAotICAgIF0pCi0K
LSAgICBoZWFkZXJzLmFkZCgnIkNvbm5lY3Rpb24uaCInKQotICAgIGhlYWRlcnMuYWRkKCc8d3Rm
L1RocmVhZFNhZmVSZWZDb3VudGVkLmg+JykKLQotICAgIG5vX2ZvcndhcmRfZGVjbGFyYXRpb25f
dHlwZXMgPSBmcm96ZW5zZXQoWworZGVmIHR5cGVzX3RoYXRfY2Fubm90X2JlX2ZvcndhcmRfZGVj
bGFyZWQoKToKKyAgICByZXR1cm4gZnJvemVuc2V0KFsKICAgICAgICAgJ01hY2hTZW5kUmlnaHQn
LAogICAgICAgICAnU3RyaW5nJywKICAgICAgICAgJ1dlYkNvcmU6OkRvY3VtZW50SWRlbnRpZmll
cicsCkBAIC0yMjYsNiArMjI2LDMzIEBAIGRlZiBmb3J3YXJkX2RlY2xhcmF0aW9uc19hbmRfaGVh
ZGVycyhyZWNlaXZlcik6CiAgICAgICAgICdXZWJLaXQ6OldlYlBhZ2VQcm94eUlkZW50aWZpZXIn
LAogICAgIF0pCiAKKworZGVmIGNvbmRpdGlvbnNfZm9yX2hlYWRlcihoZWFkZXIpOgorICAgIGNv
bmRpdGlvbnMgPSB7CisgICAgICAgICciTGF5ZXJIb3N0aW5nQ29udGV4dC5oIic6IFsiUExBVEZP
Uk0oQ09DT0EpIiwgXSwKKyAgICB9CisgICAgaWYgbm90IGhlYWRlciBpbiBjb25kaXRpb25zOgor
ICAgICAgICByZXR1cm4gTm9uZQorICAgIHJldHVybiBjb25kaXRpb25zW2hlYWRlcl0KKworCitk
ZWYgZm9yd2FyZF9kZWNsYXJhdGlvbnNfYW5kX2hlYWRlcnMocmVjZWl2ZXIpOgorICAgIHR5cGVz
X2J5X25hbWVzcGFjZSA9IGNvbGxlY3Rpb25zLmRlZmF1bHRkaWN0KHNldCkKKworICAgIGhlYWRl
cnMgPSBzZXQoWworICAgICAgICAnIkFyZ3VtZW50Q29kZXJzLmgiJywKKyAgICAgICAgJzx3dGYv
Rm9yd2FyZC5oPicsCisgICAgICAgICciQ29ubmVjdGlvbi5oIicsCisgICAgICAgICc8d3RmL1Ro
cmVhZFNhZmVSZWZDb3VudGVkLmg+JywKKyAgICAgICAgJyIlc01lc3NhZ2VzUmVwbGllcy5oIicg
JSByZWNlaXZlci5uYW1lLAorICAgIF0pCisKKyAgICBub25fdGVtcGxhdGVfd3RmX3R5cGVzID0g
ZnJvemVuc2V0KFsKKyAgICAgICAgJ01hY2hTZW5kUmlnaHQnLAorICAgICAgICAnU3RyaW5nJywK
KyAgICBdKQorCisgICAgbm9fZm9yd2FyZF9kZWNsYXJhdGlvbl90eXBlcyA9IHR5cGVzX3RoYXRf
Y2Fubm90X2JlX2ZvcndhcmRfZGVjbGFyZWQoKQogICAgIGZvciBwYXJhbWV0ZXIgaW4gcmVjZWl2
ZXIuaXRlcnBhcmFtZXRlcnMoKToKICAgICAgICAga2luZCA9IHBhcmFtZXRlci5raW5kCiAgICAg
ICAgIHR5cGUgPSBwYXJhbWV0ZXIudHlwZQpAQCAtMjU0LDggKzI4MSw2NiBAQCBkZWYgZm9yd2Fy
ZF9kZWNsYXJhdGlvbnNfYW5kX2hlYWRlcnMocmVjZWl2ZXIpOgogCiAgICAgaGVhZGVyX2luY2x1
ZGVzID0gW10KICAgICBmb3IgaGVhZGVyIGluIHNvcnRlZChoZWFkZXJzKToKLSAgICAgICAgaWYg
aGVhZGVyIGluIGhlYWRlcl9jb25kaXRpb25zIGFuZCBub3QgTm9uZSBpbiBoZWFkZXJfY29uZGl0
aW9uc1toZWFkZXJdOgotICAgICAgICAgICAgaGVhZGVyX2luY2x1ZGUgPSAnI2lmICVzXG4nICUg
JyB8fCAnLmpvaW4oc2V0KGhlYWRlcl9jb25kaXRpb25zW2hlYWRlcl0pKQorICAgICAgICBjb25k
aXRpb25zID0gY29uZGl0aW9uc19mb3JfaGVhZGVyKGhlYWRlcikKKyAgICAgICAgaWYgY29uZGl0
aW9ucyBhbmQgbm90IE5vbmUgaW4gY29uZGl0aW9uczoKKyAgICAgICAgICAgIGhlYWRlcl9pbmNs
dWRlID0gJyNpZiAlc1xuJyAlICcgfHwgJy5qb2luKHNldChjb25kaXRpb25zKSkKKyAgICAgICAg
ICAgIGhlYWRlcl9pbmNsdWRlICs9ICcjaW5jbHVkZSAlc1xuJyAlIGhlYWRlcgorICAgICAgICAg
ICAgaGVhZGVyX2luY2x1ZGUgKz0gJyNlbmRpZlxuJworICAgICAgICAgICAgaGVhZGVyX2luY2x1
ZGVzLmFwcGVuZChoZWFkZXJfaW5jbHVkZSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGhl
YWRlcl9pbmNsdWRlcy5hcHBlbmQoJyNpbmNsdWRlICVzXG4nICUgaGVhZGVyKQorCisgICAgcmV0
dXJuIChmb3J3YXJkX2RlY2xhcmF0aW9ucywgaGVhZGVyX2luY2x1ZGVzKQorCisKK2RlZiBmb3J3
YXJkX2RlY2xhcmF0aW9uc19hbmRfaGVhZGVyc19mb3JfcmVwbGllcyhyZWNlaXZlcik6CisgICAg
dHlwZXNfYnlfbmFtZXNwYWNlID0gY29sbGVjdGlvbnMuZGVmYXVsdGRpY3Qoc2V0KQorCisgICAg
aGVhZGVycyA9IHNldChbCisgICAgICAgICc8d3RmL0ZvcndhcmQuaD4nLAorICAgIF0pCisKKyAg
ICBub25fdGVtcGxhdGVfd3RmX3R5cGVzID0gZnJvemVuc2V0KFsKKyAgICAgICAgJ01hY2hTZW5k
UmlnaHQnLAorICAgICAgICAnU3RyaW5nJywKKyAgICBdKQorCisgICAgbm9fZm9yd2FyZF9kZWNs
YXJhdGlvbl90eXBlcyA9IHR5cGVzX3RoYXRfY2Fubm90X2JlX2ZvcndhcmRfZGVjbGFyZWQoKQor
ICAgIGZvciBtZXNzYWdlIGluIHJlY2VpdmVyLm1lc3NhZ2VzOgorICAgICAgICBpZiBtZXNzYWdl
LnJlcGx5X3BhcmFtZXRlcnMgPT0gTm9uZSBvciBub3QgKG1lc3NhZ2UuaGFzX2F0dHJpYnV0ZShT
WU5DSFJPTk9VU19BVFRSSUJVVEUpIG9yIG1lc3NhZ2UuaGFzX2F0dHJpYnV0ZShBU1lOQ19BVFRS
SUJVVEUpKToKKyAgICAgICAgICAgIGNvbnRpbnVlCisKKyAgICAgICAgZm9yIHBhcmFtZXRlciBp
biBtZXNzYWdlLnJlcGx5X3BhcmFtZXRlcnM6CisgICAgICAgICAgICBraW5kID0gcGFyYW1ldGVy
LmtpbmQKKyAgICAgICAgICAgIHR5cGUgPSBwYXJhbWV0ZXIudHlwZQorCisgICAgICAgICAgICBp
ZiB0eXBlLmZpbmQoJzwnKSAhPSAtMSBvciB0eXBlIGluIG5vX2ZvcndhcmRfZGVjbGFyYXRpb25f
dHlwZXM6CisgICAgICAgICAgICAgICAgIyBEb24ndCBmb3J3YXJkIGRlY2xhcmUgY2xhc3MgdGVt
cGxhdGVzLgorICAgICAgICAgICAgICAgIGhlYWRlcnMudXBkYXRlKGhlYWRlcnNfZm9yX3R5cGUo
dHlwZSkpCisgICAgICAgICAgICAgICAgY29udGludWUKKworICAgICAgICAgICAgc3BsaXQgPSB0
eXBlLnNwbGl0KCc6OicpCisKKyAgICAgICAgICAgICMgSGFuZGxlIFdURiB0eXBlcyBldmVuIGlm
IHRoZSBXVEY6OiBwcmVmaXggaXMgbm90IGdpdmVuCisgICAgICAgICAgICBpZiBzcGxpdFswXSBp
biBub25fdGVtcGxhdGVfd3RmX3R5cGVzOgorICAgICAgICAgICAgICAgIHNwbGl0Lmluc2VydCgw
LCAnV1RGJykKKworICAgICAgICAgICAgaWYgbGVuKHNwbGl0KSA9PSAyOgorICAgICAgICAgICAg
ICAgIG5hbWVzcGFjZSA9IHNwbGl0WzBdCisgICAgICAgICAgICAgICAgaW5uZXJfdHlwZSA9IHNw
bGl0WzFdCisgICAgICAgICAgICAgICAgdHlwZXNfYnlfbmFtZXNwYWNlW25hbWVzcGFjZV0uYWRk
KChraW5kLCBpbm5lcl90eXBlKSkKKyAgICAgICAgICAgIGVsaWYgbGVuKHNwbGl0KSA+IDI6Cisg
ICAgICAgICAgICAgICAgIyBXZSBwcm9iYWJseSBoYXZlIGEgbmVzdGVkIHN0cnVjdCwgd2hpY2gg
bWVhbnMgd2UgY2FuJ3QgZm9yd2FyZCBkZWNsYXJlIGl0LgorICAgICAgICAgICAgICAgICMgSW5j
bHVkZSBpdHMgaGVhZGVyIGluc3RlYWQuCisgICAgICAgICAgICAgICAgaGVhZGVycy51cGRhdGUo
aGVhZGVyc19mb3JfdHlwZSh0eXBlKSkKKworICAgIGZvcndhcmRfZGVjbGFyYXRpb25zID0gJ1xu
Jy5qb2luKFtmb3J3YXJkX2RlY2xhcmF0aW9uc19mb3JfbmFtZXNwYWNlKG5hbWVzcGFjZSwgdHlw
ZXMpIGZvciAobmFtZXNwYWNlLCB0eXBlcykgaW4gc29ydGVkKHR5cGVzX2J5X25hbWVzcGFjZS5p
dGVtcygpKV0pCisKKyAgICBoZWFkZXJfaW5jbHVkZXMgPSBbXQorICAgIGZvciBoZWFkZXIgaW4g
c29ydGVkKGhlYWRlcnMpOgorICAgICAgICBjb25kaXRpb25zID0gY29uZGl0aW9uc19mb3JfaGVh
ZGVyKGhlYWRlcikKKyAgICAgICAgaWYgY29uZGl0aW9ucyBhbmQgbm90IE5vbmUgaW4gY29uZGl0
aW9uczoKKyAgICAgICAgICAgIGhlYWRlcl9pbmNsdWRlID0gJyNpZiAlc1xuJyAlICcgfHwgJy5q
b2luKHNldChjb25kaXRpb25zKSkKICAgICAgICAgICAgIGhlYWRlcl9pbmNsdWRlICs9ICcjaW5j
bHVkZSAlc1xuJyAlIGhlYWRlcgogICAgICAgICAgICAgaGVhZGVyX2luY2x1ZGUgKz0gJyNlbmRp
ZlxuJwogICAgICAgICAgICAgaGVhZGVyX2luY2x1ZGVzLmFwcGVuZChoZWFkZXJfaW5jbHVkZSkK
QEAgLTI2NSw5ICszNTAsMzggQEAgZGVmIGZvcndhcmRfZGVjbGFyYXRpb25zX2FuZF9oZWFkZXJz
KHJlY2VpdmVyKToKICAgICByZXR1cm4gKGZvcndhcmRfZGVjbGFyYXRpb25zLCBoZWFkZXJfaW5j
bHVkZXMpCiAKIAotZGVmIGdlbmVyYXRlX21lc3NhZ2VzX2hlYWRlcihmaWxlKToKLSAgICByZWNl
aXZlciA9IHBhcnNlci5wYXJzZShmaWxlKQorZGVmIGdlbmVyYXRlX21lc3NhZ2VzX3JlcGx5X2hl
YWRlcihyZWNlaXZlcik6CisgICAgcmVzdWx0ID0gW10KKworICAgIHJlc3VsdC5hcHBlbmQoX2xp
Y2Vuc2VfaGVhZGVyKQorCisgICAgcmVzdWx0LmFwcGVuZCgnI3ByYWdtYSBvbmNlXG4nKQorICAg
IHJlc3VsdC5hcHBlbmQoJ1xuJykKKworICAgIGlmIHJlY2VpdmVyLmNvbmRpdGlvbjoKKyAgICAg
ICAgcmVzdWx0LmFwcGVuZCgnI2lmICVzXG5cbicgJSByZWNlaXZlci5jb25kaXRpb24pCisKKyAg
ICBmb3J3YXJkX2RlY2xhcmF0aW9ucywgaGVhZGVycyA9IGZvcndhcmRfZGVjbGFyYXRpb25zX2Fu
ZF9oZWFkZXJzX2Zvcl9yZXBsaWVzKHJlY2VpdmVyKQorCisgICAgcmVzdWx0ICs9IGhlYWRlcnMK
KyAgICByZXN1bHQuYXBwZW5kKCdcbicpCisKKyAgICByZXN1bHQuYXBwZW5kKGZvcndhcmRfZGVj
bGFyYXRpb25zKQorICAgIHJlc3VsdC5hcHBlbmQoJ1xuJykKKworICAgIHJlc3VsdC5hcHBlbmQo
J25hbWVzcGFjZSBNZXNzYWdlcyB7XG5uYW1lc3BhY2UgJXMge1xuJyAlIHJlY2VpdmVyLm5hbWUp
CisgICAgcmVzdWx0LmFwcGVuZCgnXG4nKQorICAgIHJlc3VsdC5hcHBlbmQoJ1xuJy5qb2luKGZp
bHRlcihOb25lLCBbbWVzc2FnZV90b19yZXBseV9mb3J3YXJkX2RlY2xhcmF0aW9uKHgpIGZvciB4
IGluIHJlY2VpdmVyLm1lc3NhZ2VzXSkpKQorICAgIHJlc3VsdC5hcHBlbmQoJ1xuJykKKyAgICBy
ZXN1bHQuYXBwZW5kKCd9IC8vIG5hbWVzcGFjZSAlc1xufSAvLyBuYW1lc3BhY2UgTWVzc2FnZXNc
bicgJSByZWNlaXZlci5uYW1lKQorCisgICAgaWYgcmVjZWl2ZXIuY29uZGl0aW9uOgorICAgICAg
ICByZXN1bHQuYXBwZW5kKCdcbiNlbmRpZiAvLyAlc1xuJyAlIHJlY2VpdmVyLmNvbmRpdGlvbikK
KworICAgIHJldHVybiAnJy5qb2luKHJlc3VsdCkKKwogCitkZWYgZ2VuZXJhdGVfbWVzc2FnZXNf
aGVhZGVyKHJlY2VpdmVyKToKICAgICByZXN1bHQgPSBbXQogCiAgICAgcmVzdWx0LmFwcGVuZChf
bGljZW5zZV9oZWFkZXIpCkBAIC01MTUsOCArNjI5LDcgQEAgZGVmIGhlYWRlcnNfZm9yX3R5cGUo
dHlwZSk6CiAgICAgcmV0dXJuIGhlYWRlcnMKIAogCi1kZWYgZ2VuZXJhdGVfbWVzc2FnZV9oYW5k
bGVyKGZpbGUpOgotICAgIHJlY2VpdmVyID0gcGFyc2VyLnBhcnNlKGZpbGUpCitkZWYgZ2VuZXJh
dGVfbWVzc2FnZV9oYW5kbGVyKHJlY2VpdmVyKToKICAgICBoZWFkZXJfY29uZGl0aW9ucyA9IHsK
ICAgICAgICAgJyIlcyInICUgbWVzc2FnZXNfaGVhZGVyX2ZpbGVuYW1lKHJlY2VpdmVyKTogW05v
bmVdLAogICAgICAgICAnIkhhbmRsZU1lc3NhZ2UuaCInOiBbTm9uZV0sCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5
LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyUHJveHkuY3BwCmluZGV4IDkxY2Y5NDgwYzc1MThjZDliYjE3ZTlmY2E0ZTkxNmQwYjA3M2Iw
OGIuLmU1MTc3ZDAyNDdiZjNmNzEwOTkzZThjNDgxNDU0NDhkNDIyZjAzODEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJv
eHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyUHJveHkuY3BwCkBAIC0zMCw2ICszMCw3IEBACiAKICNpbmNsdWRlICJTaGFyZWRS
aW5nQnVmZmVyU3RvcmFnZS5oIgogI2luY2x1ZGUgIlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyTWVz
c2FnZXMuaCIKKyNpbmNsdWRlICJVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5TWVzc2FnZXMu
aCIKICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKICNpbmNsdWRlICJXZWJQcm9j
ZXNzUHJveHkuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0NBUmluZ0J1ZmZlci5oPgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQ
cm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXJQcm94eS5oCmluZGV4IDliZGRiOTkwOWRmN2U4ZmVmMWU1NDgwNmNiZTZiYzVjNDBjZmM1
ODEuLjQ0NDYwZDRkOTQwMGI2ZDExNjEzN2Y1MmZkNjA1NTdiODQ5ODFkMjUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJv
eHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJl
TWFuYWdlclByb3h5LmgKQEAgLTMwLDcgKzMwLDYgQEAKICNpbmNsdWRlICJDb25uZWN0aW9uLmgi
CiAjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCiAjaW5jbHVkZSAiVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXIuaCIKLSNpbmNsdWRlICJVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5TWVzc2Fn
ZXMuaCIKICNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2UuaD4KIAogbmFtZXNw
YWNlIFdlYktpdCB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Eb3dubG9h
ZHMvRG93bmxvYWRQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvRG93bmxvYWRzL0Rv
d25sb2FkUHJveHkuaAppbmRleCA2M2IwZjg1ODFjYTJlOWJhYTFhNjU0NmE4MTgyMjZiMTZiMjA3
NTM4Li5jZDBiMDBlNTczMTE0ZTc3OTM2Y2I3OGQ3MTg1YzU2MDk3Y2VlODNlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRQcm94eS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZFByb3h5LmgKQEAgLTI4
LDcgKzI4LDYgQEAKICNpbmNsdWRlICJBUElPYmplY3QuaCIKICNpbmNsdWRlICJDb25uZWN0aW9u
LmgiCiAjaW5jbHVkZSAiRG93bmxvYWRJRC5oIgotI2luY2x1ZGUgIkRvd25sb2FkUHJveHlNZXNz
YWdlcy5oIgogI2luY2x1ZGUgIlNhbmRib3hFeHRlbnNpb24uaCIKICNpbmNsdWRlIDxXZWJDb3Jl
L1Jlc291cmNlUmVxdWVzdC5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3Bw
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNw
cAppbmRleCA2YzE5MDUyOWRhZWUxMGIwNDBlZDdiMTA0Y2RkMzM2NTYyZWIzNWE3Li4xMjUzNDdi
ZjM2ZGNkNWI3MzI1YWU4MDMzZGJhZjkzYmJkM2E2NTI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKQEAgLTM5
LDYgKzM5LDcgQEAKICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25JbmZvLmgiCiAj
aW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCIKICNpbmNsdWRlICJO
ZXR3b3JrUHJvY2Vzc01lc3NhZ2VzLmgiCisjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NQcm94eU1l
c3NhZ2VzLmgiCiAjaW5jbHVkZSAiU2FuZGJveEV4dGVuc2lvbi5oIgogI2lmIEhBVkUoU0VDX0tF
WV9QUk9YWSkKICNpbmNsdWRlICJTZWNLZXlQcm94eVN0b3JlLmgiCkBAIC01MSw2ICs1Miw3IEBA
CiAjaW5jbHVkZSAiV2ViUHJvY2Vzc01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Bv
b2wuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHkuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNz
UHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9y
ZS5oIgogI2luY2x1ZGUgIldlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5LmgiCiAjaW5jbHVk
ZSAiV2Vic2l0ZURhdGEuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05l
dHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0
d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKaW5kZXggZGE0YmVkMjY4MjgxOGI0M2RhNDM4ODgx
YjU2OGVjYzBiYWQ1NjY0ZC4uMzVlMDQzZTU1MmNhMGQzOTUwODc3YTg1Yzg4ZWE1MGVlZmJiZDI5
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJv
Y2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3Jr
UHJvY2Vzc1Byb3h5LmgKQEAgLTI2LDIxICsyNiwyMyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNs
dWRlICJBdXhpbGlhcnlQcm9jZXNzUHJveHkuaCIKLSNpZiBFTkFCTEUoTEVHQUNZX0NVU1RPTV9Q
Uk9UT0NPTF9NQU5BR0VSKQotI2luY2x1ZGUgIkxlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdlclBy
b3h5LmgiCi0jZW5kaWYKLSNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCIK
KyNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc1Byb3h5TWVzc2FnZXNSZXBsaWVzLmgiCiAjaW5jbHVk
ZSAiUHJvY2Vzc0xhdW5jaGVyLmgiCiAjaW5jbHVkZSAiUHJvY2Vzc1Rocm90dGxlci5oIgogI2lu
Y2x1ZGUgIlByb2Nlc3NUaHJvdHRsZXJDbGllbnQuaCIKICNpbmNsdWRlICJVc2VyQ29udGVudENv
bnRyb2xsZXJJZGVudGlmaWVyLmgiCi0jaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5TWVzc2FnZXMu
aCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHlNZXNzYWdlc1JlcGxpZXMuaCIKICNpbmNsdWRl
ICJXZWJzaXRlRGF0YVN0b3JlLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9Dcm9zc1NpdGVOYXZpZ2F0
aW9uRGF0YVRyYW5zZmVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUlkZW50aWZpZXIuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL1JlZ2lzdHJhYmxlRG9tYWluLmg+CiAjaW5jbHVkZSA8bWVtb3J5
PgogI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgogCisjaWYgRU5BQkxFKExFR0FDWV9DVVNUT01fUFJP
VE9DT0xfTUFOQUdFUikKKyNpbmNsdWRlICJMZWdhY3lDdXN0b21Qcm90b2NvbE1hbmFnZXJQcm94
eS5oIgorI2VuZGlmCisKIG5hbWVzcGFjZSBQQUwgewogY2xhc3MgU2Vzc2lvbklEOwogfQpAQCAt
ODcsNyArODksNyBAQCBwdWJsaWM6CiAgICAgZXhwbGljaXQgTmV0d29ya1Byb2Nlc3NQcm94eShX
ZWJQcm9jZXNzUG9vbCYpOwogICAgIH5OZXR3b3JrUHJvY2Vzc1Byb3h5KCk7CiAKLSAgICB2b2lk
IGdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbihXZWJQcm9jZXNzUHJveHkmLCBNZXNzYWdlczo6
V2ViUHJvY2Vzc1Byb3h5OjpHZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBs
eSYmKTsKKyAgICB2b2lkIGdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbihXZWJQcm9jZXNzUHJv
eHkmLCBNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rp
b25EZWxheWVkUmVwbHkmJik7CiAKICAgICBEb3dubG9hZFByb3h5JiBjcmVhdGVEb3dubG9hZFBy
b3h5KFdlYnNpdGVEYXRhU3RvcmUmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKTsK
IApAQCAtMTY5LDcgKzE3MSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHN5bmNBbGxDb29raWVzKCk7
CiAgICAgdm9pZCBkaWRTeW5jQWxsQ29va2llcygpOwogCi0gICAgdm9pZCB0ZXN0UHJvY2Vzc0lu
Y29taW5nU3luY01lc3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkoV2ViUGFnZVByb3h5SWRl
bnRpZmllciwgTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OlRlc3RQcm9jZXNzSW5jb21p
bmdTeW5jTWVzc2FnZXNXaGVuV2FpdGluZ0ZvclN5bmNSZXBseTo6RGVsYXllZFJlcGx5JiYpOwor
ICAgIHZvaWQgdGVzdFByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yU3lu
Y1JlcGx5KFdlYlBhZ2VQcm94eUlkZW50aWZpZXIsIE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzc1By
b3h5OjpUZXN0UHJvY2Vzc0luY29taW5nU3luY01lc3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5jUmVw
bHlEZWxheWVkUmVwbHkmJik7CiAKICAgICBQcm9jZXNzVGhyb3R0bGVyJiB0aHJvdHRsZXIoKSB7
IHJldHVybiBtX3Rocm90dGxlcjsgfQogICAgIFdlYlByb2Nlc3NQb29sJiBwcm9jZXNzUG9vbCgp
IHsgcmV0dXJuIG1fcHJvY2Vzc1Bvb2w7IH0KQEAgLTI0Miw3ICsyNDQsNyBAQCBwcml2YXRlOgog
I2VuZGlmCiAKICNpZiBFTkFCTEUoU0FOREJPWF9FWFRFTlNJT05TKQotICAgIHZvaWQgZ2V0U2Fu
ZGJveEV4dGVuc2lvbnNGb3JCbG9iRmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mIHBhdGhzLCBN
ZXNzYWdlczo6TmV0d29ya1Byb2Nlc3NQcm94eTo6R2V0U2FuZGJveEV4dGVuc2lvbnNGb3JCbG9i
RmlsZXM6OkFzeW5jUmVwbHkmJik7CisgICAgdm9pZCBnZXRTYW5kYm94RXh0ZW5zaW9uc0ZvckJs
b2JGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGF0aHMsIE1lc3NhZ2VzOjpOZXR3b3JrUHJv
Y2Vzc1Byb3h5OjpHZXRTYW5kYm94RXh0ZW5zaW9uc0ZvckJsb2JGaWxlc0FzeW5jUmVwbHkmJik7
CiAjZW5kaWYKIAogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKQEAgLTI2NSw3ICsyNjcsNyBA
QCBwcml2YXRlOgogCiAgICAgc3RydWN0IENvbm5lY3Rpb25SZXF1ZXN0IHsKICAgICAgICAgV2Vh
a1B0cjxXZWJQcm9jZXNzUHJveHk+IHdlYlByb2Nlc3M7Ci0gICAgICAgIE1lc3NhZ2VzOjpXZWJQ
cm9jZXNzUHJveHk6OkdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6RGVsYXllZFJlcGx5IHJl
cGx5OworICAgICAgICBNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXROZXR3b3JrUHJvY2Vz
c0Nvbm5lY3Rpb25EZWxheWVkUmVwbHkgcmVwbHk7CiAgICAgfTsKICAgICB1aW50NjRfdCBtX2Nv
bm5lY3Rpb25SZXF1ZXN0SWRlbnRpZmllciB7IDAgfTsKICAgICBIYXNoTWFwPHVpbnQ2NF90LCBD
b25uZWN0aW9uUmVxdWVzdD4gbV9jb25uZWN0aW9uUmVxdWVzdHM7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NNYW5hZ2VyLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc01hbmFnZXIuY3BwCmlu
ZGV4IDM3ODJjODRiNjc3OWU5ZDhlMjA2OGE2YTE1OTkwNmY2N2EwZGE0MzAuLmU1M2FmMmZlODE0
ZTBiMDFmZDZhODM3ZDAzNGM0ODcxZTU4NTQ4ZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc01hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc01hbmFnZXIuY3BwCkBAIC0yOSw2
ICsyOSw3IEBACiAjaWYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCiAKICNpbmNsdWRlICJQ
bHVnaW5Qcm9jZXNzUHJveHkuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHlNZXNzYWdlcy5o
IgogI2luY2x1ZGUgIldlYnNpdGVEYXRhRmV0Y2hPcHRpb24uaCIKICNpbmNsdWRlIDx3dGYvQ3J5
cHRvZ3JhcGhpY2FsbHlSYW5kb21OdW1iZXIuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95
ZWQuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2lu
UHJvY2Vzc01hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2lu
UHJvY2Vzc01hbmFnZXIuaAppbmRleCA5NjVjYjIyOWUwY2NkNzc1NzgxZGZlZTA1Y2U5ZDU2YjFm
NzE1MjE3Li45MzBmMGExNzUwYjYyODMzNjg5YTNmNTRiNGZjODY3NmYzZmYxNmQ2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NNYW5hZ2Vy
LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzTWFu
YWdlci5oCkBAIC0zMSw3ICszMSw3IEBACiAjaW5jbHVkZSAiUGx1Z2luUHJvY2Vzcy5oIgogI2lu
Y2x1ZGUgIlBsdWdpblByb2Nlc3NBdHRyaWJ1dGVzLmgiCiAjaW5jbHVkZSAiUHJvY2Vzc1Rocm90
dGxlci5oIgotI2luY2x1ZGUgIldlYlByb2Nlc3NQcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSAi
V2ViUHJvY2Vzc1Byb3h5TWVzc2FnZXNSZXBsaWVzLmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQu
aD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5o
PgpAQCAtNTcsNyArNTcsNyBAQCBwdWJsaWM6CiAKICAgICB1aW50NjRfdCBwbHVnaW5Qcm9jZXNz
VG9rZW4oY29uc3QgUGx1Z2luTW9kdWxlSW5mbyYsIFBsdWdpblByb2Nlc3NUeXBlLCBQbHVnaW5Q
cm9jZXNzU2FuZGJveFBvbGljeSk7CiAKLSAgICB2b2lkIGdldFBsdWdpblByb2Nlc3NDb25uZWN0
aW9uKHVpbnQ2NF90IHBsdWdpblByb2Nlc3NUb2tlbiwgTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94
eTo6R2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBseSYmKTsKKyAgICB2b2lk
IGdldFBsdWdpblByb2Nlc3NDb25uZWN0aW9uKHVpbnQ2NF90IHBsdWdpblByb2Nlc3NUb2tlbiwg
TWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25EZWxh
eWVkUmVwbHkmJik7CiAgICAgdm9pZCByZW1vdmVQbHVnaW5Qcm9jZXNzUHJveHkoUGx1Z2luUHJv
Y2Vzc1Byb3h5Kik7CiAKICAgICB2b2lkIGZldGNoV2Vic2l0ZURhdGEoY29uc3QgUGx1Z2luTW9k
dWxlSW5mbyYsIE9wdGlvblNldDxXZWJzaXRlRGF0YUZldGNoT3B0aW9uPiwgV1RGOjpGdW5jdGlv
bjx2b2lkIChWZWN0b3I8U3RyaW5nPik+JiYgY29tcGxldGlvbkhhbmRsZXIpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmgKaW5k
ZXggODdiM2Y1MGVhNGJiYzBjMzFiYjE5YjJjY2FhMjBhYzY0MDNlZjI4Mi4uNzIxOTkyMTE0ODUx
NTEyNmU1Y2Q1ODYwNTQ3M2U5MWFhZDg2MDdkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5oCkBAIC0zMyw3ICszMyw3IEBA
CiAjaW5jbHVkZSAiUGx1Z2luUHJvY2Vzcy5oIgogI2luY2x1ZGUgIlBsdWdpblByb2Nlc3NBdHRy
aWJ1dGVzLmgiCiAjaW5jbHVkZSAiUHJvY2Vzc0xhdW5jaGVyLmgiCi0jaW5jbHVkZSAiV2ViUHJv
Y2Vzc1Byb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHlNZXNzYWdlc1Jl
cGxpZXMuaCIKICNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KIAogI2lmIFBMQVRGT1JNKENPQ09BKQpA
QCAtNzEsNyArNzEsNyBAQCBwdWJsaWM6CiAKICAgICAvLyBBc2tzIHRoZSBwbHVnLWluIHByb2Nl
c3MgdG8gY3JlYXRlIGEgbmV3IGNvbm5lY3Rpb24gdG8gYSB3ZWIgcHJvY2Vzcy4gVGhlIGNvbm5l
Y3Rpb24gaWRlbnRpZmllciB3aWxsIGJlCiAgICAgLy8gZW5jb2RlZCBpbiB0aGUgZ2l2ZW4gYXJn
dW1lbnQgZW5jb2RlciBhbmQgc2VudCBiYWNrIHRvIHRoZSBjb25uZWN0aW9uIG9mIHRoZSBnaXZl
biB3ZWIgcHJvY2Vzcy4KLSAgICB2b2lkIGdldFBsdWdpblByb2Nlc3NDb25uZWN0aW9uKE1lc3Nh
Z2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldFBsdWdpblByb2Nlc3NDb25uZWN0aW9uOjpEZWxheWVk
UmVwbHkmJik7CisgICAgdm9pZCBnZXRQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbihNZXNzYWdlczo6
V2ViUHJvY2Vzc1Byb3h5OjpHZXRQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbkRlbGF5ZWRSZXBseSYm
KTsKIAogICAgIHZvaWQgZmV0Y2hXZWJzaXRlRGF0YShDb21wbGV0aW9uSGFuZGxlcjx2b2lkIChW
ZWN0b3I8U3RyaW5nPik+JiYpOwogICAgIHZvaWQgZGVsZXRlV2Vic2l0ZURhdGEoV2FsbFRpbWUg
bW9kaWZpZWRTaW5jZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCAoKT4mJik7CkBAIC0xNDMsNyAr
MTQzLDcgQEAgcHJpdmF0ZToKICAgICAvLyBUaGUgY29ubmVjdGlvbiB0byB0aGUgcGx1Zy1pbiBo
b3N0IHByb2Nlc3MuCiAgICAgUmVmUHRyPElQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOwog
Ci0gICAgRGVxdWU8TWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0UGx1Z2luUHJvY2Vzc0Nv
bm5lY3Rpb246OkRlbGF5ZWRSZXBseT4gbV9wZW5kaW5nQ29ubmVjdGlvblJlcGxpZXM7CisgICAg
RGVxdWU8TWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rp
b25EZWxheWVkUmVwbHk+IG1fcGVuZGluZ0Nvbm5lY3Rpb25SZXBsaWVzOwogCiAgICAgVmVjdG9y
PHVpbnQ2NF90PiBtX3BlbmRpbmdGZXRjaFdlYnNpdGVEYXRhUmVxdWVzdHM7CiAgICAgSGFzaE1h
cDx1aW50NjRfdCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCAoVmVjdG9yPFN0cmluZz4pPj4gbV9w
ZW5kaW5nRmV0Y2hXZWJzaXRlRGF0YUNhbGxiYWNrczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5oCmluZGV4IDE3NTIxNTA0NzQ4YmZiNmYyMDYzY2Ux
NGNhNDVmZDFjYzcxODNlY2IuLmYzMDFhN2NiOWVhODY0MmExYWJmNDY0MTdkMTUzNTRiZjdjMmUw
NjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVBy
b3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHku
aApAQCAtMjgsNyArMjgsNyBAQAogI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgogI2luY2x1
ZGUgIlNhbmRib3hFeHRlbnNpb24uaCIKICNpbmNsdWRlICJXZWJGcmFtZVBvbGljeUxpc3RlbmVy
UHJveHkuaCIKLSNpbmNsdWRlICJXZWJQYWdlUHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldl
YlBhZ2VQcm94eU1lc3NhZ2VzUmVwbGllcy5oIgogI2luY2x1ZGUgIldlYnNpdGVQb2xpY2llc0Rh
dGEuaCIKICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCkBAIC0xMTEsNyArMTExLDcgQEAgcHJp
dmF0ZToKICAgICB2b2lkIGJhY2tGb3J3YXJkR29Ub0l0ZW0oY29uc3QgV2ViQ29yZTo6QmFja0Zv
cndhcmRJdGVtSWRlbnRpZmllciYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU2FuZGJveEV4dGVu
c2lvbjo6SGFuZGxlJiYpPiYmKTsKICAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25B
Y3Rpb25TeW5jKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgYm9vbCBpc01haW5GcmFtZSwgV2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmll
ciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmLAogICAgICAg
ICBGcmFtZUluZm9EYXRhJiYsIE9wdGlvbmFsPFdlYlBhZ2VQcm94eUlkZW50aWZpZXI+IG9yaWdp
bmF0aW5nUGFnZUlELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVx
dWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2Um
JiByZXF1ZXN0Qm9keSwKLSAgICAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmIHJlZGly
ZWN0UmVzcG9uc2UsIGNvbnN0IFVzZXJEYXRhJiwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGVj
aWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmM6OkRlbGF5ZWRSZXBseSYmKTsKKyAgICAg
ICAgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmIHJlZGlyZWN0UmVzcG9uc2UsIGNvbnN0IFVz
ZXJEYXRhJiwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlv
bkFjdGlvblN5bmNEZWxheWVkUmVwbHkmJik7CiAjaWYgVVNFKFFVSUNLX0xPT0spCiAgICAgdm9p
ZCBkaWRSZXF1ZXN0UGFzc3dvcmRGb3JRdWlja0xvb2tEb2N1bWVudEluTWFpbkZyYW1lKGNvbnN0
IFN0cmluZyYgZmlsZU5hbWUpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9TdXNwZW5kZWRQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1N1
c3BlbmRlZFBhZ2VQcm94eS5oCmluZGV4IDc2NGJlZGM3N2JlODFiNDViNDkyNjViYTExNWFjYWY3
YjUwNzcwMjQuLmVlMmM2YTM3NTI0ZjJjOTFhZGFmZWFhYmNmNzkzYWRlNmQ2MWQ4ZDcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1N1c3BlbmRlZFBhZ2VQcm94eS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1N1c3BlbmRlZFBhZ2VQcm94eS5oCkBAIC0yOCwxMSAr
MjgsMTUgQEAKICNpbmNsdWRlICJDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiUHJvY2Vzc1Rocm90
dGxlci5oIgogI2luY2x1ZGUgIldlYkJhY2tGb3J3YXJkTGlzdEl0ZW0uaCIKLSNpbmNsdWRlICJX
ZWJQYWdlUHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYlBhZ2VQcm94eU1lc3NhZ2VzUmVw
bGllcy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8
d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCituYW1lc3BhY2Ug
V2ViQ29yZSB7CitjbGFzcyBSZWdpc3RyYWJsZURvbWFpbjsKK30KKwogbmFtZXNwYWNlIFdlYktp
dCB7CiAKIGNsYXNzIFdlYkJhY2tGb3J3YXJkQ2FjaGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmNwcAppbmRleCBlYjkwYzVhYmQzMGJjODFjYTQwYzBkZjNmZjQ2YWI1MTUw
NDZhNzhkLi4zNmNmNGVhNGM1MDg5MGRmMWMyMDQ5NTNjNGI3NGMxNzJkNDM4ZjA5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTE0NCwxNCArMTQ0LDEzIEBA
CiAjaW5jbHVkZSA8V2ViQ29yZS9EcmFnRGF0YS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRWxlbWVu
dENvbnRleHQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0V2ZW50TmFtZXMuaD4KKyNpbmNsdWRlIDxX
ZWJDb3JlL0V4Y2VwdGlvbkRldGFpbHMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0Zsb2F0UmVjdC5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvRm9jdXNEaXJlY3Rpb24uaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L0ZvbnRBdHRyaWJ1dGVDaGFuZ2VzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUxvYWRlci5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvR2xvYmFsRnJhbWVJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9HbG9iYWxXaW5kb3dJZGVudGlmaWVyLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9KU0RP
TUJpbmRpbmcuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL0pTRE9NRXhjZXB0aW9uSGFuZGxpbmcuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL0xlbmd0aEJveC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTUlNRVR5
cGVSZWdpc3RyeS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFTdHJlYW1SZXF1ZXN0Lmg+CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IDg0ZTc1NWVjZGUwOGEwMjlm
ZDY0MjA3MzlmOGM3OTUzMjQ4NzNiNTUuLjQ1ODE3ZDdhZGVmZDRiN2M5MDQyMDI5MTJmY2JiY2Q4
Yjc0OGE5NjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC02Miw5
ICs2Miw5IEBACiAjaW5jbHVkZSAiV2ViUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmgiCiAj
aW5jbHVkZSAiV2ViUGFnZUluamVjdGVkQnVuZGxlQ2xpZW50LmgiCiAjaW5jbHVkZSAiV2ViUGFn
ZVByb3h5SWRlbnRpZmllci5oIgorI2luY2x1ZGUgIldlYlBhZ2VQcm94eU1lc3NhZ2VzUmVwbGll
cy5oIgogI2luY2x1ZGUgIldlYlBheW1lbnRDb29yZGluYXRvclByb3h5LmgiCiAjaW5jbHVkZSAi
V2ViUHJlZmVyZW5jZXMuaCIKLSNpbmNsdWRlICJXZWJQYWdlUHJveHlNZXNzYWdlcy5oIgogI2lu
Y2x1ZGUgIldlYlBvcHVwTWVudVByb3h5LmgiCiAjaW5jbHVkZSAiV2ViVW5kb1N0ZXBJRC5oIgog
I2luY2x1ZGUgIldlYnNpdGVQb2xpY2llc0RhdGEuaCIKQEAgLTE3Myw4ICsxNzMsMTMgQEAgY2xh
c3MgVUlDbGllbnQ7CiBjbGFzcyBVUkxSZXF1ZXN0OwogfQogCituYW1lc3BhY2UgSW5zcGVjdG9y
IHsKK2VudW0gY2xhc3MgSW5zcGVjdG9yVGFyZ2V0VHlwZSA6IHVpbnQ4X3Q7Cit9CisKIG5hbWVz
cGFjZSBJUEMgewogY2xhc3MgRGVjb2RlcjsKK2NsYXNzIEZvcm1EYXRhUmVmZXJlbmNlOwogfQog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0yMDAsNiArMjA1LDcgQEAgZW51bSBjbGFzcyBET01Q
YXN0ZUFjY2Vzc1Jlc3BvbnNlIDogdWludDhfdDsKIGVudW0gY2xhc3MgTG9ja0JhY2tGb3J3YXJk
TGlzdCA6IGJvb2w7CiBlbnVtIGNsYXNzIEhhc0luc2VjdXJlQ29udGVudCA6IGJvb2w7CiBlbnVt
IGNsYXNzIE5vdGlmaWNhdGlvbkRpcmVjdGlvbiA6IHVpbnQ4X3Q7CitlbnVtIGNsYXNzIFJvdXRl
U2hhcmluZ1BvbGljeSA6IHVpbnQ4X3Q7CiBlbnVtIGNsYXNzIFNob3VsZFNhbXBsZSA6IGJvb2w7
CiBlbnVtIGNsYXNzIFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCA6IGJvb2w7CiBlbnVtIGNs
YXNzIFdyaXRpbmdEaXJlY3Rpb24gOiB1aW50OF90OwpAQCAtMjA5LDkgKzIxNSwxMSBAQCBzdHJ1
Y3QgQmFja0ZvcndhcmRJdGVtSWRlbnRpZmllcjsKIHN0cnVjdCBDb250ZW50UnVsZUxpc3RSZXN1
bHRzOwogc3RydWN0IERhdGFMaXN0U3VnZ2VzdGlvbkluZm9ybWF0aW9uOwogc3RydWN0IERpY3Rp
b25hcnlQb3B1cEluZm87CitzdHJ1Y3QgRHJhZ0l0ZW07CiBzdHJ1Y3QgRXhjZXB0aW9uRGV0YWls
czsKIHN0cnVjdCBGaWxlQ2hvb3NlclNldHRpbmdzOwogc3RydWN0IEdsb2JhbFdpbmRvd0lkZW50
aWZpZXI7CitzdHJ1Y3QgTGlua0ljb247CiBzdHJ1Y3QgTWVkaWFTdHJlYW1SZXF1ZXN0Owogc3Ry
dWN0IE1vY2tXZWJBdXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRpb247CiBzdHJ1Y3QgUHJld2FybUlu
Zm9ybWF0aW9uOwpAQCAtMjkwLDE5ICsyOTgsMjggQEAgY2xhc3MgV2ViVmlld0RpZE1vdmVUb1dp
bmRvd09ic2VydmVyOwogCiBzdHJ1Y3QgQXR0cmlidXRlZFN0cmluZzsKIHN0cnVjdCBDb2xvclNw
YWNlRGF0YTsKK3N0cnVjdCBEYXRhRGV0ZWN0aW9uUmVzdWx0Owogc3RydWN0IERvY3VtZW50RWRp
dGluZ0NvbnRleHQ7CiBzdHJ1Y3QgRG9jdW1lbnRFZGl0aW5nQ29udGV4dFJlcXVlc3Q7CiBzdHJ1
Y3QgRWRpdGluZ1JhbmdlOwogc3RydWN0IEVkaXRvclN0YXRlOworc3RydWN0IEZvY3VzZWRFbGVt
ZW50SW5mb3JtYXRpb247CiBzdHJ1Y3QgRm9udEluZm87CiBzdHJ1Y3QgRnJhbWVJbmZvRGF0YTsK
IHN0cnVjdCBJbnNlcnRUZXh0T3B0aW9uczsKK3N0cnVjdCBJbnRlcmFjdGlvbkluZm9ybWF0aW9u
QXRQb3NpdGlvbjsKIHN0cnVjdCBJbnRlcmFjdGlvbkluZm9ybWF0aW9uUmVxdWVzdDsKIHN0cnVj
dCBMb2FkUGFyYW1ldGVyczsKK3N0cnVjdCBOYXZpZ2F0aW9uQWN0aW9uRGF0YTsKIHN0cnVjdCBQ
bGF0Zm9ybVBvcHVwTWVudURhdGE7CiBzdHJ1Y3QgUHJpbnRJbmZvOworc3RydWN0IFBERkNvbnRl
eHRNZW51Owogc3RydWN0IFdlYkF1dG9jb3JyZWN0aW9uRGF0YTsKK3N0cnVjdCBXZWJIaXRUZXN0
UmVzdWx0RGF0YTsKK3N0cnVjdCBXZWJOYXZpZ2F0aW9uRGF0YVN0b3JlOwogc3RydWN0IFdlYlBv
cHVwSXRlbTsKK3N0cnVjdCBXZWJTZWxlY3Rpb25EYXRhOworc3RydWN0IFdlYlNwZWVjaFN5bnRo
ZXNpc1ZvaWNlOwogc3RydWN0IFVSTFNjaGVtZVRhc2tQYXJhbWV0ZXJzOwogc3RydWN0IFVzZXJN
ZXNzYWdlOwogCkBAIC0xNDMwLDcgKzE0NDcsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNldEZv
Y3VzKGJvb2wgZm9jdXNlZCk7CiAgICAgdm9pZCBzZXRXaW5kb3dGcmFtZShjb25zdCBXZWJDb3Jl
OjpGbG9hdFJlY3QmKTsKLSAgICB2b2lkIGdldFdpbmRvd0ZyYW1lKE1lc3NhZ2VzOjpXZWJQYWdl
UHJveHk6OkdldFdpbmRvd0ZyYW1lOjpEZWxheWVkUmVwbHkmJik7CisgICAgdm9pZCBnZXRXaW5k
b3dGcmFtZShNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpHZXRXaW5kb3dGcmFtZURlbGF5ZWRSZXBs
eSYmKTsKICAgICB2b2lkIGdldFdpbmRvd0ZyYW1lV2l0aENhbGxiYWNrKEZ1bmN0aW9uPHZvaWQo
V2ViQ29yZTo6RmxvYXRSZWN0KT4mJik7CiAKICAgICBXZWJDb3JlOjpVc2VySW50ZXJmYWNlTGF5
b3V0RGlyZWN0aW9uIHVzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb24oKTsKQEAgLTE1MzgsNyAr
MTU1NSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGJhY2tGb3J3YXJkR29Ub0l0ZW1TaGFyZWQoUmVm
PFdlYlByb2Nlc3NQcm94eT4mJiwgY29uc3QgV2ViQ29yZTo6QmFja0ZvcndhcmRJdGVtSWRlbnRp
ZmllciYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJiYp
PiYmKTsKICAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jU2hhcmVk
KFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgYm9vbCBp
c01haW5GcmFtZSwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYsIFdlYkNvcmU6OlBvbGlj
eUNoZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBOYXZpZ2F0aW9uQWN0aW9u
RGF0YSYmLAogICAgICAgICBGcmFtZUluZm9EYXRhJiYsIE9wdGlvbmFsPFdlYlBhZ2VQcm94eUlk
ZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3QmIG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIElQQzo6Rm9y
bURhdGFSZWZlcmVuY2UmJiByZXF1ZXN0Qm9keSwKLSAgICAgICAgV2ViQ29yZTo6UmVzb3VyY2VS
ZXNwb25zZSYmIHJlZGlyZWN0UmVzcG9uc2UsIGNvbnN0IFVzZXJEYXRhJiwgTWVzc2FnZXM6Oldl
YlBhZ2VQcm94eTo6RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmM6OkRlbGF5ZWRS
ZXBseSYmKTsKKyAgICAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmIHJlZGlyZWN0UmVz
cG9uc2UsIGNvbnN0IFVzZXJEYXRhJiwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGVjaWRlUG9s
aWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmNEZWxheWVkUmVwbHkmJik7CiAjaWYgVVNFKFFVSUNL
X0xPT0spCiAgICAgdm9pZCBkaWRSZXF1ZXN0UGFzc3dvcmRGb3JRdWlja0xvb2tEb2N1bWVudElu
TWFpbkZyYW1lU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIGNvbnN0IFN0cmluZyYgZmls
ZU5hbWUpOwogI2VuZGlmCkBAIC0xNjc5LDcgKzE2OTYsNyBAQCBwcml2YXRlOgogICAgICAgICBX
ZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYgcmVkaXJlY3RSZXNwb25zZSwgY29uc3QgVXNlckRh
dGEmLCB1aW50NjRfdCBsaXN0ZW5lcklEKTsKICAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5hdmln
YXRpb25BY3Rpb25TeW5jKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgYm9vbCBpc01haW5GcmFt
ZSwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRl
bnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmLAog
ICAgICAgICBGcmFtZUluZm9EYXRhJiYsIE9wdGlvbmFsPFdlYlBhZ2VQcm94eUlkZW50aWZpZXI+
IG9yaWdpbmF0aW5nUGFnZUlELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdp
bmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIElQQzo6Rm9ybURhdGFSZWZl
cmVuY2UmJiByZXF1ZXN0Qm9keSwKLSAgICAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYm
IHJlZGlyZWN0UmVzcG9uc2UsIGNvbnN0IFVzZXJEYXRhJiwgTWVzc2FnZXM6OldlYlBhZ2VQcm94
eTo6RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmM6OkRlbGF5ZWRSZXBseSYmKTsK
KyAgICAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmIHJlZGlyZWN0UmVzcG9uc2UsIGNv
bnN0IFVzZXJEYXRhJiwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGVjaWRlUG9saWN5Rm9yTmF2
aWdhdGlvbkFjdGlvblN5bmNEZWxheWVkUmVwbHkmJik7CiAgICAgdm9pZCBkZWNpZGVQb2xpY3lG
b3JOZXdXaW5kb3dBY3Rpb24oV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbkRhdGEmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIE5h
dmlnYXRpb25BY3Rpb25EYXRhJiYsCiAgICAgICAgIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYm
LCBjb25zdCBTdHJpbmcmIGZyYW1lTmFtZSwgdWludDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNl
ckRhdGEmKTsKICAgICB2b2lkIGRlY2lkZVBvbGljeUZvclJlc3BvbnNlKFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiwgV2ViQ29yZTo6
UG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsCkBAIC0xNzAwLDEx
ICsxNzE3LDExIEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRVcGRhdGVIaXN0b3J5VGl0bGUoY29u
c3QgU3RyaW5nJiB0aXRsZSwgY29uc3QgU3RyaW5nJiB1cmwsIFdlYkNvcmU6OkZyYW1lSWRlbnRp
Zmllcik7CiAKICAgICAvLyBVSSBjbGllbnQKLSAgICB2b2lkIGNyZWF0ZU5ld1BhZ2UoY29uc3Qg
RnJhbWVJbmZvRGF0YSYsIE9wdGlvbmFsPFdlYlBhZ2VQcm94eUlkZW50aWZpZXI+IG9yaWdpbmF0
aW5nUGFnZUlELCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgV2ViQ29yZTo6V2luZG93RmVh
dHVyZXMmJiwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6
Q3JlYXRlTmV3UGFnZTo6RGVsYXllZFJlcGx5JiYpOworICAgIHZvaWQgY3JlYXRlTmV3UGFnZShj
b25zdCBGcmFtZUluZm9EYXRhJiwgT3B0aW9uYWw8V2ViUGFnZVByb3h5SWRlbnRpZmllcj4gb3Jp
Z2luYXRpbmdQYWdlSUQsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBXZWJDb3JlOjpXaW5k
b3dGZWF0dXJlcyYmLCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmLCBNZXNzYWdlczo6V2ViUGFnZVBy
b3h5OjpDcmVhdGVOZXdQYWdlRGVsYXllZFJlcGx5JiYpOwogICAgIHZvaWQgc2hvd1BhZ2UoKTsK
LSAgICB2b2lkIHJ1bkphdmFTY3JpcHRBbGVydChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNv
bnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYsIGNvbnN0IFN0cmluZyYsIE1lc3NhZ2Vz
OjpXZWJQYWdlUHJveHk6OlJ1bkphdmFTY3JpcHRBbGVydDo6RGVsYXllZFJlcGx5JiYpOwotICAg
IHZvaWQgcnVuSmF2YVNjcmlwdENvbmZpcm0oV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25z
dCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmLCBjb25zdCBTdHJpbmcmLCBNZXNzYWdlczo6
V2ViUGFnZVByb3h5OjpSdW5KYXZhU2NyaXB0Q29uZmlybTo6RGVsYXllZFJlcGx5JiYpOwotICAg
IHZvaWQgcnVuSmF2YVNjcmlwdFByb21wdChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0
IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmlu
ZyYsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJ1bkphdmFTY3JpcHRQcm9tcHQ6OkRlbGF5ZWRS
ZXBseSYmKTsKKyAgICB2b2lkIHJ1bkphdmFTY3JpcHRBbGVydChXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYsIGNvbnN0IFN0cmluZyYs
IE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJ1bkphdmFTY3JpcHRBbGVydERlbGF5ZWRSZXBseSYm
KTsKKyAgICB2b2lkIHJ1bkphdmFTY3JpcHRDb25maXJtKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
ciwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiwgY29uc3QgU3RyaW5nJiwgTWVz
c2FnZXM6OldlYlBhZ2VQcm94eTo6UnVuSmF2YVNjcmlwdENvbmZpcm1EZWxheWVkUmVwbHkmJik7
CisgICAgdm9pZCBydW5KYXZhU2NyaXB0UHJvbXB0KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwg
Y29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiwgY29uc3QgU3RyaW5nJiwgY29uc3Qg
U3RyaW5nJiwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UnVuSmF2YVNjcmlwdFByb21wdERlbGF5
ZWRSZXBseSYmKTsKICAgICB2b2lkIHNldFN0YXR1c1RleHQoY29uc3QgU3RyaW5nJik7CiAgICAg
dm9pZCBtb3VzZURpZE1vdmVPdmVyRWxlbWVudChXZWJIaXRUZXN0UmVzdWx0RGF0YSYmLCB1aW50
MzJfdCBtb2RpZmllcnMsIFVzZXJEYXRhJiYpOwogCkBAIC0xNzEyLDI5ICsxNzI5LDI5IEBAIHBy
aXZhdGU6CiAgICAgdm9pZCB1bmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWQodWludDMyX3Qg
b3BhcXVlUGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24sIGNvbnN0IFN0cmluZyYgbWltZVR5cGUs
IGNvbnN0IFN0cmluZyYgcGx1Z2luVVJMU3RyaW5nLCBjb25zdCBTdHJpbmcmIHBsdWdpbnNQYWdl
VVJMU3RyaW5nLCBjb25zdCBTdHJpbmcmIGZyYW1lVVJMU3RyaW5nLCBjb25zdCBTdHJpbmcmIHBh
Z2VVUkxTdHJpbmcpOwogI2VuZGlmIC8vIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQogI2lm
IEVOQUJMRShXRUJHTCkKLSAgICB2b2lkIHdlYkdMUG9saWN5Rm9yVVJMKFVSTCYmLCBNZXNzYWdl
czo6V2ViUGFnZVByb3h5OjpXZWJHTFBvbGljeUZvclVSTDo6RGVsYXllZFJlcGx5JiYpOwotICAg
IHZvaWQgcmVzb2x2ZVdlYkdMUG9saWN5Rm9yVVJMKFVSTCYmLCBNZXNzYWdlczo6V2ViUGFnZVBy
b3h5OjpSZXNvbHZlV2ViR0xQb2xpY3lGb3JVUkw6OkRlbGF5ZWRSZXBseSYmKTsKKyAgICB2b2lk
IHdlYkdMUG9saWN5Rm9yVVJMKFVSTCYmLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpXZWJHTFBv
bGljeUZvclVSTERlbGF5ZWRSZXBseSYmKTsKKyAgICB2b2lkIHJlc29sdmVXZWJHTFBvbGljeUZv
clVSTChVUkwmJiwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UmVzb2x2ZVdlYkdMUG9saWN5Rm9y
VVJMRGVsYXllZFJlcGx5JiYpOwogI2VuZGlmIC8vIEVOQUJMRShXRUJHTCkKICAgICB2b2lkIHNl
dFRvb2xiYXJzQXJlVmlzaWJsZShib29sIHRvb2xiYXJzQXJlVmlzaWJsZSk7Ci0gICAgdm9pZCBn
ZXRUb29sYmFyc0FyZVZpc2libGUoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6R2V0VG9vbGJhcnNB
cmVWaXNpYmxlOjpEZWxheWVkUmVwbHkmJik7CisgICAgdm9pZCBnZXRUb29sYmFyc0FyZVZpc2li
bGUoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6R2V0VG9vbGJhcnNBcmVWaXNpYmxlRGVsYXllZFJl
cGx5JiYpOwogICAgIHZvaWQgc2V0TWVudUJhcklzVmlzaWJsZShib29sIG1lbnVCYXJJc1Zpc2li
bGUpOwotICAgIHZvaWQgZ2V0TWVudUJhcklzVmlzaWJsZShNZXNzYWdlczo6V2ViUGFnZVByb3h5
OjpHZXRNZW51QmFySXNWaXNpYmxlOjpEZWxheWVkUmVwbHkmJik7CisgICAgdm9pZCBnZXRNZW51
QmFySXNWaXNpYmxlKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkdldE1lbnVCYXJJc1Zpc2libGVE
ZWxheWVkUmVwbHkmJik7CiAgICAgdm9pZCBzZXRTdGF0dXNCYXJJc1Zpc2libGUoYm9vbCBzdGF0
dXNCYXJJc1Zpc2libGUpOwotICAgIHZvaWQgZ2V0U3RhdHVzQmFySXNWaXNpYmxlKE1lc3NhZ2Vz
OjpXZWJQYWdlUHJveHk6OkdldFN0YXR1c0JhcklzVmlzaWJsZTo6RGVsYXllZFJlcGx5JiYpOwor
ICAgIHZvaWQgZ2V0U3RhdHVzQmFySXNWaXNpYmxlKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6Okdl
dFN0YXR1c0JhcklzVmlzaWJsZURlbGF5ZWRSZXBseSYmKTsKICAgICB2b2lkIGdldElzVmlld1Zp
c2libGUoYm9vbCYpOwogICAgIHZvaWQgc2V0SXNSZXNpemFibGUoYm9vbCBpc1Jlc2l6YWJsZSk7
Ci0gICAgdm9pZCBzY3JlZW5Ub1Jvb3RWaWV3KGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBzY3Jl
ZW5Qb2ludCwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6U2NyZWVuVG9Sb290Vmlldzo6RGVsYXll
ZFJlcGx5JiYpOwotICAgIHZvaWQgcm9vdFZpZXdUb1NjcmVlbihjb25zdCBXZWJDb3JlOjpJbnRS
ZWN0JiB2aWV3UmVjdCwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6Um9vdFZpZXdUb1NjcmVlbjo6
RGVsYXllZFJlcGx5JiYpOworICAgIHZvaWQgc2NyZWVuVG9Sb290Vmlldyhjb25zdCBXZWJDb3Jl
OjpJbnRQb2ludCYgc2NyZWVuUG9pbnQsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlNjcmVlblRv
Um9vdFZpZXdEZWxheWVkUmVwbHkmJik7CisgICAgdm9pZCByb290Vmlld1RvU2NyZWVuKGNvbnN0
IFdlYkNvcmU6OkludFJlY3QmIHZpZXdSZWN0LCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSb290
Vmlld1RvU2NyZWVuRGVsYXllZFJlcGx5JiYpOwogICAgIHZvaWQgYWNjZXNzaWJpbGl0eVNjcmVl
blRvUm9vdFZpZXcoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHNjcmVlblBvaW50LCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkludFBvaW50KT4mJik7CiAgICAgdm9pZCByb290Vmll
d1RvQWNjZXNzaWJpbGl0eVNjcmVlbihjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiB2aWV3UmVjdCwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpJbnRSZWN0KT4mJik7Ci0gICAgdm9pZCBy
dW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25z
dCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIE1l
c3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbDo6RGVsYXll
ZFJlcGx5JiYpOworICAgIHZvaWQgcnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKFdlYkNvcmU6
OkZyYW1lSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiwgY29u
c3QgU3RyaW5nJiBtZXNzYWdlLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSdW5CZWZvcmVVbmxv
YWRDb25maXJtUGFuZWxEZWxheWVkUmVwbHkmJik7CiAgICAgdm9pZCBkaWRDaGFuZ2VWaWV3cG9y
dFByb3BlcnRpZXMoY29uc3QgV2ViQ29yZTo6Vmlld3BvcnRBdHRyaWJ1dGVzJik7CiAgICAgdm9p
ZCBwYWdlRGlkU2Nyb2xsKCk7CiAgICAgdm9pZCBydW5PcGVuUGFuZWwoV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmLCBjb25zdCBXZWJD
b3JlOjpGaWxlQ2hvb3NlclNldHRpbmdzJik7CiAgICAgdm9pZCBzaG93U2hhcmVTaGVldChjb25z
dCBXZWJDb3JlOjpTaGFyZURhdGFXaXRoUGFyc2VkVVJMJiwgU2hhcmVTaGVldENhbGxiYWNrSUQp
OwogICAgIHZvaWQgcHJpbnRGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoKT4mJik7Ci0gICAgdm9pZCBleGNlZWRlZERhdGFiYXNlUXVvdGEoV2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG9yaWdpbklkZW50aWZpZXIsIGNv
bnN0IFN0cmluZyYgZGF0YWJhc2VOYW1lLCBjb25zdCBTdHJpbmcmIGRpc3BsYXlOYW1lLCB1aW50
NjRfdCBjdXJyZW50UXVvdGEsIHVpbnQ2NF90IGN1cnJlbnRPcmlnaW5Vc2FnZSwgdWludDY0X3Qg
Y3VycmVudERhdGFiYXNlVXNhZ2UsIHVpbnQ2NF90IGV4cGVjdGVkVXNhZ2UsIE1lc3NhZ2VzOjpX
ZWJQYWdlUHJveHk6OkV4Y2VlZGVkRGF0YWJhc2VRdW90YTo6RGVsYXllZFJlcGx5JiYpOwotICAg
IHZvaWQgcmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YShjb25zdCBTdHJpbmcmIG9y
aWdpbklkZW50aWZpZXIsIHVpbnQ2NF90IGN1cnJlbnRRdW90YSwgdWludDY0X3QgdG90YWxCeXRl
c05lZWRlZCwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVP
cmlnaW5RdW90YTo6RGVsYXllZFJlcGx5JiYpOworICAgIHZvaWQgZXhjZWVkZWREYXRhYmFzZVF1
b3RhKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBvcmlnaW5JZGVudGlm
aWVyLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlTmFtZSwgY29uc3QgU3RyaW5nJiBkaXNwbGF5TmFt
ZSwgdWludDY0X3QgY3VycmVudFF1b3RhLCB1aW50NjRfdCBjdXJyZW50T3JpZ2luVXNhZ2UsIHVp
bnQ2NF90IGN1cnJlbnREYXRhYmFzZVVzYWdlLCB1aW50NjRfdCBleHBlY3RlZFVzYWdlLCBNZXNz
YWdlczo6V2ViUGFnZVByb3h5OjpFeGNlZWRlZERhdGFiYXNlUXVvdGFEZWxheWVkUmVwbHkmJik7
CisgICAgdm9pZCByZWFjaGVkQXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKGNvbnN0IFN0cmlu
ZyYgb3JpZ2luSWRlbnRpZmllciwgdWludDY0X3QgY3VycmVudFF1b3RhLCB1aW50NjRfdCB0b3Rh
bEJ5dGVzTmVlZGVkLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSZWFjaGVkQXBwbGljYXRpb25D
YWNoZU9yaWdpblF1b3RhRGVsYXllZFJlcGx5JiYpOwogICAgIHZvaWQgcmVxdWVzdEdlb2xvY2F0
aW9uUGVybWlzc2lvbkZvckZyYW1lKHVpbnQ2NF90IGdlb2xvY2F0aW9uSUQsIFdlYkNvcmU6OkZy
YW1lSWRlbnRpZmllciwgU3RyaW5nIG9yaWdpbklkZW50aWZpZXIpOwogCiAjaWYgUExBVEZPUk0o
R1RLKSB8fCBQTEFURk9STShXUEUpCkBAIC0yMDIxLDcgKzIwMzgsNyBAQCBwcml2YXRlOgogI2Vu
ZGlmCiAKICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKLSAgICB2b2lkIGZpbmRQbHVn
aW4oY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgdWludDMyX3QgcHJvY2Vzc1R5cGUsIGNvbnN0IFN0
cmluZyYgdXJsU3RyaW5nLCBjb25zdCBTdHJpbmcmIGZyYW1lVVJMU3RyaW5nLCBjb25zdCBTdHJp
bmcmIHBhZ2VVUkxTdHJpbmcsIGJvb2wgYWxsb3dPbmx5QXBwbGljYXRpb25QbHVnaW5zLCBNZXNz
YWdlczo6V2ViUGFnZVByb3h5OjpGaW5kUGx1Z2luOjpEZWxheWVkUmVwbHkmJik7CisgICAgdm9p
ZCBmaW5kUGx1Z2luKGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIHVpbnQzMl90IHByb2Nlc3NUeXBl
LCBjb25zdCBTdHJpbmcmIHVybFN0cmluZywgY29uc3QgU3RyaW5nJiBmcmFtZVVSTFN0cmluZywg
Y29uc3QgU3RyaW5nJiBwYWdlVVJMU3RyaW5nLCBib29sIGFsbG93T25seUFwcGxpY2F0aW9uUGx1
Z2lucywgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RmluZFBsdWdpbkRlbGF5ZWRSZXBseSYmKTsK
ICNlbmRpZgogCiAjaWYgVVNFKFFVSUNLX0xPT0spCkBAIC0yMDU4LDcgKzIwNzUsNyBAQCBwcml2
YXRlOgogCiAgICAgdm9pZCBzdGFydFVSTFNjaGVtZVRhc2soVVJMU2NoZW1lVGFza1BhcmFtZXRl
cnMmJik7CiAgICAgdm9pZCBzdG9wVVJMU2NoZW1lVGFzayh1aW50NjRfdCBoYW5kbGVySWRlbnRp
ZmllciwgdWludDY0X3QgdGFza0lkZW50aWZpZXIpOwotICAgIHZvaWQgbG9hZFN5bmNocm9ub3Vz
VVJMU2NoZW1lVGFzayhVUkxTY2hlbWVUYXNrUGFyYW1ldGVycyYmLCBNZXNzYWdlczo6V2ViUGFn
ZVByb3h5OjpMb2FkU3luY2hyb25vdXNVUkxTY2hlbWVUYXNrOjpEZWxheWVkUmVwbHkmJik7Cisg
ICAgdm9pZCBsb2FkU3luY2hyb25vdXNVUkxTY2hlbWVUYXNrKFVSTFNjaGVtZVRhc2tQYXJhbWV0
ZXJzJiYsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkxvYWRTeW5jaHJvbm91c1VSTFNjaGVtZVRh
c2tEZWxheWVkUmVwbHkmJik7CiAKICAgICBib29sIGNoZWNrVVJMUmVjZWl2ZWRGcm9tQ3VycmVu
dE9yUHJldmlvdXNXZWJQcm9jZXNzKFdlYlByb2Nlc3NQcm94eSYsIGNvbnN0IFN0cmluZyYpOwog
ICAgIGJvb2wgY2hlY2tVUkxSZWNlaXZlZEZyb21DdXJyZW50T3JQcmV2aW91c1dlYlByb2Nlc3Mo
V2ViUHJvY2Vzc1Byb3h5JiwgY29uc3QgVVJMJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQcm9jZXNzUG9vbC5jcHAKaW5kZXggMTNiYTE5NWI2NjYyZTg4MzgzN2YzMmM3MGVlNWRkYzBh
YjZiOGRhMS4uMDM3ZDIyMjk0MmY2YTQwMDA4YWE4NGQ5OWIzMzcxYTYyMTliMWM4NyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcApAQCAtNzcsNiArNzcsNyBA
QAogI2luY2x1ZGUgIldlYlByb2Nlc3NNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NQ
b29sTWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHkuaCIKKyNpbmNsdWRlICJX
ZWJQcm9jZXNzUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYnNpdGVEYXRhU3RvcmUuaCIK
ICNpbmNsdWRlICJXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycy5oIgogI2luY2x1ZGUgPEphdmFT
Y3JpcHRDb3JlL0pTQ0lubGluZXMuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQb29sLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNz
UG9vbC5oCmluZGV4IDc3ZDVhZTU3MTNmOTRjMTI5ZDNjM2NiOTNhY2NmZmViNjhhYjMwYmEuLmNk
ZDY4ZDY3NzU1YmEyNjk5OTNjOTQxMDI3YjY1ZjY3ODE2NWIxYzIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaApAQCAtMzgxLDkgKzM4MSw5IEBAIHB1YmxpYzoKICAg
ICAvLyBOZXR3b3JrIFByb2Nlc3MgTWFuYWdlbWVudAogICAgIE5ldHdvcmtQcm9jZXNzUHJveHkm
IGVuc3VyZU5ldHdvcmtQcm9jZXNzKFdlYnNpdGVEYXRhU3RvcmUqIHdpdGhXZWJzaXRlRGF0YVN0
b3JlID0gbnVsbHB0cik7CiAgICAgTmV0d29ya1Byb2Nlc3NQcm94eSogbmV0d29ya1Byb2Nlc3Mo
KSB7IHJldHVybiBtX25ldHdvcmtQcm9jZXNzLmdldCgpOyB9Ci0gICAgdm9pZCBuZXR3b3JrUHJv
Y2Vzc0NyYXNoZWQoTmV0d29ya1Byb2Nlc3NQcm94eSYsIFZlY3RvcjxzdGQ6OnBhaXI8UmVmUHRy
PFdlYlByb2Nlc3NQcm94eT4sIE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldE5ldHdvcmtQ
cm9jZXNzQ29ubmVjdGlvbjo6RGVsYXllZFJlcGx5Pj4mJik7CisgICAgdm9pZCBuZXR3b3JrUHJv
Y2Vzc0NyYXNoZWQoTmV0d29ya1Byb2Nlc3NQcm94eSYsIFZlY3RvcjxzdGQ6OnBhaXI8UmVmUHRy
PFdlYlByb2Nlc3NQcm94eT4sIE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldE5ldHdvcmtQ
cm9jZXNzQ29ubmVjdGlvbkRlbGF5ZWRSZXBseT4+JiYpOwogCi0gICAgdm9pZCBnZXROZXR3b3Jr
UHJvY2Vzc0Nvbm5lY3Rpb24oV2ViUHJvY2Vzc1Byb3h5JiwgTWVzc2FnZXM6OldlYlByb2Nlc3NQ
cm94eTo6R2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpEZWxheWVkUmVwbHkmJik7CisgICAg
dm9pZCBnZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oV2ViUHJvY2Vzc1Byb3h5JiwgTWVzc2Fn
ZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uRGVsYXllZFJl
cGx5JiYpOwogCiAgICAgYm9vbCBpc1NlcnZpY2VXb3JrZXJQYWdlSUQoV2ViUGFnZVByb3h5SWRl
bnRpZmllcikgY29uc3Q7CiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAppbmRleCA4YTQ3ZTgxM2ZmOGZkNjE5MTU4Yzdh
ZWM2NmZlMGFhYWMwMDFlZDk4Li43ZDc0NjU4Y2QxYWI0NGE3ODY5NjhlODNmNGY0OWFiMzU5MGQ3
NTY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHku
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaApAQCAtMzgs
NyArMzgsNyBAQAogI2luY2x1ZGUgIlZpc2libGVXZWJQYWdlQ291bnRlci5oIgogI2luY2x1ZGUg
IldlYkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCIKICNpbmNsdWRlICJXZWJQYWdlUHJveHlJZGVu
dGlmaWVyLmgiCi0jaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRl
ICJXZWJQcm9jZXNzUHJveHlNZXNzYWdlc1JlcGxpZXMuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0Zy
YW1lSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZUlkZW50aWZpZXIuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL1Byb2Nlc3NJZGVudGlmaWVyLmg+CkBAIC02MSw2ICs2MSw3IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIERlZmVycmFibGVPbmVTaG90VGltZXI7CiBjbGFzcyBS
ZXNvdXJjZVJlcXVlc3Q7CiBzdHJ1Y3QgUGx1Z2luSW5mbzsKK3N0cnVjdCBQcmV3YXJtSW5mb3Jt
YXRpb247CiBzdHJ1Y3QgU2VjdXJpdHlPcmlnaW5EYXRhOwogfQogCkBAIC04MCw2ICs4MSw3IEBA
IGNsYXNzIFdlYlByb2Nlc3NQb29sOwogY2xhc3MgV2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJv
eHk7CiBjbGFzcyBXZWJzaXRlRGF0YVN0b3JlOwogZW51bSBjbGFzcyBXZWJzaXRlRGF0YVR5cGU7
CitzdHJ1Y3QgQmFja0ZvcndhcmRMaXN0SXRlbVN0YXRlOwogc3RydWN0IFVzZXJNZXNzYWdlOwog
c3RydWN0IFdlYk5hdmlnYXRpb25EYXRhU3RvcmU7CiBzdHJ1Y3QgV2ViUGFnZUNyZWF0aW9uUGFy
YW1ldGVyczsKQEAgLTM4MCwxMiArMzgyLDEyIEBAIHByaXZhdGU6CiAgICAgdm9pZCBnZXRQbHVn
aW5zKGJvb2wgcmVmcmVzaCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8V2ViQ29yZTo6
UGx1Z2luSW5mbz4mJiBwbHVnaW5zLCBWZWN0b3I8V2ViQ29yZTo6UGx1Z2luSW5mbz4mJiBhcHBs
aWNhdGlvblBsdWdpbnMsIE9wdGlvbmFsPFZlY3RvcjxXZWJDb3JlOjpTdXBwb3J0ZWRQbHVnaW5J
ZGVudGlmaWVyPj4mJik+JiYpOwogI2VuZGlmIC8vIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJ
KQogI2lmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQotICAgIHZvaWQgZ2V0UGx1Z2luUHJv
Y2Vzc0Nvbm5lY3Rpb24odWludDY0X3QgcGx1Z2luUHJvY2Vzc1Rva2VuLCBNZXNzYWdlczo6V2Vi
UHJvY2Vzc1Byb3h5OjpHZXRQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbjo6RGVsYXllZFJlcGx5JiYp
OworICAgIHZvaWQgZ2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24odWludDY0X3QgcGx1Z2luUHJv
Y2Vzc1Rva2VuLCBNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXRQbHVnaW5Qcm9jZXNzQ29u
bmVjdGlvbkRlbGF5ZWRSZXBseSYmKTsKICNlbmRpZgogICAgIHZvaWQgYWRkUGx1Z0luQXV0b1N0
YXJ0T3JpZ2luSGFzaChTdHJpbmcmJiBwYWdlT3JpZ2luLCB1aW50MzJfdCBoYXNoKTsKICAgICB2
b2lkIHBsdWdJbkRpZFJlY2VpdmVVc2VySW50ZXJhY3Rpb24odWludDMyX3QgaGFzaCk7CiAgICAg
Ci0gICAgdm9pZCBnZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oTWVzc2FnZXM6OldlYlByb2Nl
c3NQcm94eTo6R2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpEZWxheWVkUmVwbHkmJik7Cisg
ICAgdm9pZCBnZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oTWVzc2FnZXM6OldlYlByb2Nlc3NQ
cm94eTo6R2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uRGVsYXllZFJlcGx5JiYpOwogCiAgICAg
Ym9vbCBwbGF0Zm9ybUlzQmVpbmdEZWJ1Z2dlZCgpIGNvbnN0OwogICAgIGJvb2wgc2hvdWxkQWxs
b3dOb25WYWxpZEluamVjdGVkQ29kZSgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvV0tDb250ZW50Vmlldy5tbQppbmRleCA2MjFlYTkzNmI4ODczNGM5ZjJiMWIxYzkwM2Rj
YTk0Mzg2MjQ2NTNmLi45NWVhZTVjYmEwYjk4OWYxZDgzMzQ1NjQ0Y2U0NDhjNDEwOTRhOTI5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5tbQpAQCAtNDks
NiArNDksNyBAQAogI2ltcG9ydCAiV2ViRnJhbWVQcm94eS5oIgogI2ltcG9ydCAiV2ViS2l0Mklu
aXRpYWxpemUuaCIKICNpbXBvcnQgIldlYlBhZ2VHcm91cC5oIgorI2ltcG9ydCAiV2ViUGFnZVBy
b3h5TWVzc2FnZXMuaCIKICNpbXBvcnQgIldlYlByb2Nlc3NQb29sLmgiCiAjaW1wb3J0ICJfV0tG
cmFtZUhhbmRsZUludGVybmFsLmgiCiAjaW1wb3J0ICJfV0tXZWJWaWV3UHJpbnRGb3JtYXR0ZXJJ
bnRlcm5hbC5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29u
dGVudFZpZXdJbnRlcmFjdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0Nv
bnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KaW5kZXggYmRhNmNjYTRjNTE2NmUyMmJjMWY2YmIxNWVk
Y2UyM2YzZGVlY2RkZC4uMDQ5ZDYxY2MyZTY1YzUyYjAxYjA5YzM2MDQxYzg4ODQ1MTBjZGFmZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRl
cmFjdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmll
d0ludGVyYWN0aW9uLm1tCkBAIC03Niw2ICs3Niw3IEBACiAjaW1wb3J0ICJXZWJFdmVudC5oIgog
I2ltcG9ydCAiV2ViSU9TRXZlbnRGYWN0b3J5LmgiCiAjaW1wb3J0ICJXZWJQYWdlTWVzc2FnZXMu
aCIKKyNpbXBvcnQgIldlYlBhZ2VQcm94eU1lc3NhZ2VzLmgiCiAjaW1wb3J0ICJXZWJQcm9jZXNz
UHJveHkuaCIKICNpbXBvcnQgIl9XS0FjdGl2YXRlZEVsZW1lbnRJbmZvSW50ZXJuYWwuaCIKICNp
bXBvcnQgIl9XS0VsZW1lbnRBY3Rpb24uaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5Lm1tIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHku
bW0KaW5kZXggY2E3YjZjNTEzODEzNWFkMzBjMjY4YmEwNTUyOGYyMGFiOTgzMmE4OC4uMTE4ZTU4
MDAzMTkwMTg5MzJjOTkxYzYxYzhhMDE5MmJjZTJkZmIyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHkubW0K
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdp
bmdBcmVhUHJveHkubW0KQEAgLTMzLDYgKzMzLDcgQEAKICNpbXBvcnQgIkRyYXdpbmdBcmVhUHJv
eHlNZXNzYWdlcy5oIgogI2ltcG9ydCAiTGF5ZXJUcmVlQ29udGV4dC5oIgogI2ltcG9ydCAiV2Vi
UGFnZVByb3h5LmgiCisjaW1wb3J0ICJXZWJQYWdlUHJveHlNZXNzYWdlcy5oIgogI2ltcG9ydCAi
V2ViUHJvY2Vzc1Byb3h5LmgiCiAjaW1wb3J0IDxwYWwvc3BpL2NvY29hL1F1YXJ0ekNvcmVTUEku
aD4KICNpbXBvcnQgPHd0Zi9CbG9ja1B0ci5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZDU1N2MxNzBkYjUzN2FiY2U2MjYyZWY4NjJk
OTRjOGU5ZGM1NDUzNC4uZDQyNGZjMTQ5NWQ1ODliNGViNDg5Y2NhMjFiZmM4ZTczMmM5NmY2ZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBA
IC00NTQ3LDcgKzQ1NDcsNiBAQAogCQlDMENFNzJBQzEyNDdFNzhEMDBCQzBFQzQgLyogSGFuZGxl
TWVzc2FnZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBIYW5kbGVNZXNzYWdl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMwQ0U3MkRCMTI0N0U4RjcwMEJDMEVD
NCAvKiBEZXJpdmVkU291cmNlcy5tYWtlICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IERlcml2ZWRT
b3VyY2VzLm1ha2U7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMwQ0U3MzM2MTI0N0Y3
MEUwMEJDMEVDNCAvKiBnZW5lcmF0ZS1tZXNzYWdlLXJlY2VpdmVyLnB5ICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dC5zY3JpcHQucHl0aG9uOyBwYXRoID0gImdlbmVyYXRlLW1lc3NhZ2UtcmVjZWl2ZXIucHkiOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlDMENFNzMzNzEyNDdGNzBFMDBCQzBFQzQgLyog
Z2VuZXJhdGUtbWVzc2FnZXMtaGVhZGVyLnB5ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5zY3JpcHQucHl0aG9u
OyBwYXRoID0gImdlbmVyYXRlLW1lc3NhZ2VzLWhlYWRlci5weSI7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUMwRTNBQTQ0MTIwOUUyQkEwMEE0OUQwMSAvKiBNb2R1bGUuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTW9kdWxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUMwRTNBQTQ1MTIwOUUyQkEwMEE0OUQwMSAvKiBNb2R1bGUuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTW9kdWxlLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQzBFM0FBNDgxMjA5RTQ1MDAwQTQ5RDAxIC8qIE1vZHVsZUNGLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1vZHVsZUNGLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTkwMTIsNyArOTAxMSw2IEBACiAJCQkJMEZDMDg1NkUx
ODdDRTBBOTAwNzgwRDg2IC8qIF9faW5pdF9fLnB5ICovLAogCQkJCTQxNTc4NTMwMjEyNzZCNkYw
MEREMzgwMCAvKiBjb3B5LXdlYmNvbnRlbnQtcmVzb3VyY2VzLXRvLXByaXZhdGUtaGVhZGVycy5z
aCAqLywKIAkJCQlDMENFNzMzNjEyNDdGNzBFMDBCQzBFQzQgLyogZ2VuZXJhdGUtbWVzc2FnZS1y
ZWNlaXZlci5weSAqLywKLQkJCQlDMENFNzMzNzEyNDdGNzBFMDBCQzBFQzQgLyogZ2VuZXJhdGUt
bWVzc2FnZXMtaGVhZGVyLnB5ICovLAogCQkJCTdDREU3M0ExMUY5REE0MTQwMDM5MDMxMiAvKiBH
ZW5lcmF0ZVByZWZlcmVuY2VzLnJiICovLAogCQkJCTBGQzA4NTZGMTg3Q0UwQTkwMDc4MEQ4NiAv
KiBtZXNzYWdlcy5weSAqLywKIAkJCQkwRkMwODU3MDE4N0NFMEE5MDA3ODBEODYgLyogbW9kZWwu
cHkgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJT
V0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
U3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAKaW5kZXggNjIyMjgwODNl
ZmU1YzFhOTMwMmY2ZTMxN2I3M2NkYTRhZDgzZjY1MC4uNGI0ZTJlZTIxNjcyZmJkODM3NDNkZTAx
MjQyZjgwZDgyNDExY2EwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0
b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcApA
QCAtNDMsNiArNDMsNyBAQAogI2luY2x1ZGUgIldlYlByZWZlcmVuY2VzU3RvcmUuaCIKICNpbmNs
dWRlICJXZWJQcm9jZXNzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Bvb2xNZXNzYWdlcy5oIgor
I2luY2x1ZGUgIldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uTWVzc2FnZXMuaCIKICNpbmNs
dWRlICJXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb25NZXNzYWdlcy5oIgogI2luY2x1ZGUg
IldlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQuaCIKICNpbmNsdWRlICJXZWJTb2NrZXRQ
cm92aWRlci5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2Uv
V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmgKaW5kZXggMjQ3NjI1ZWQ5
NWI1MWUzZWZkZmI1ZDk2OWQ3YzBlZmQyOWVmZmFkYi4uYmY4YjQ3ZmJmZDZjYThkODA1OTg3OGMw
ODI1ZDgyOWM3NGI1ODhjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0
b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oCkBAIC0z
MCw3ICszMCw3IEBACiAjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIk1lc3NhZ2VS
ZWNlaXZlci5oIgogI2luY2x1ZGUgIldlYlBhZ2VQcm94eUlkZW50aWZpZXIuaCIKLSNpbmNsdWRl
ICJXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbk1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2Vi
U1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb25NZXNzYWdlc1JlcGxpZXMuaCIKICNpbmNsdWRlIDxX
ZWJDb3JlL0VtcHR5RnJhbWVMb2FkZXJDbGllbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NXQ29u
dGV4dE1hbmFnZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlcnZpY2VXb3JrZXJDbGllbnREYXRh
Lmg+CkBAIC04OSw3ICs4OSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBmaXJlQWN0aXZhdGVFdmVu
dChXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllcik7CiAgICAgdm9pZCBzb2Z0VXBkYXRl
KFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKTsKICAgICB2b2lkIHRlcm1pbmF0ZVdv
cmtlcihXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllcik7Ci0gICAgdm9pZCBzeW5jVGVy
bWluYXRlV29ya2VyKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBNZXNzYWdlczo6
V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OlN5bmNUZXJtaW5hdGVXb3JrZXI6OkRlbGF5
ZWRSZXBseSYmKTsKKyAgICB2b2lkIHN5bmNUZXJtaW5hdGVXb3JrZXIoV2ViQ29yZTo6U2Vydmlj
ZVdvcmtlcklkZW50aWZpZXIsIE1lc3NhZ2VzOjpXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlv
bjo6U3luY1Rlcm1pbmF0ZVdvcmtlckRlbGF5ZWRSZXBseSYmKTsKICAgICB2b2lkIGZpbmRDbGll
bnRCeUlkZW50aWZpZXJDb21wbGV0ZWQodWludDY0X3QgcmVxdWVzdElkZW50aWZpZXIsIE9wdGlv
bmFsPFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnREYXRhPiYmLCBib29sIGhhc1NlY3VyaXR5
RXJyb3IpOwogICAgIHZvaWQgbWF0Y2hBbGxDb21wbGV0ZWQodWludDY0X3QgbWF0Y2hBbGxSZXF1
ZXN0SWRlbnRpZmllciwgVmVjdG9yPFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnREYXRhPiYm
KTsKICAgICB2b2lkIGNsYWltQ29tcGxldGVkKHVpbnQ2NF90IGNsYWltUmVxdWVzdElkZW50aWZp
ZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IGE2
MjI0ZjBhNDA2NWMyNzdkYWRhN2QxMGQ1Zjc5YThjNTcyMGQ0ZTcuLjk0NjhkMzE3NjVkZjU1YjY4
ZGFkYjI2Zjg3NGE2YjkxNzRmODlkOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmgKQEAgLTQ4LDkgKzQ4LDEwIEBACiAjaW5jbHVkZSAiU2hhcmVTaGVldENh
bGxiYWNrSUQuaCIKICNpbmNsdWRlICJTaGFyZWRNZW1vcnkuaCIKICNpbmNsdWRlICJTdG9yYWdl
TmFtZXNwYWNlSWRlbnRpZmllci5oIgorI2luY2x1ZGUgIlRyYW5zYWN0aW9uSUQuaCIKICNpbmNs
dWRlICJVc2VyRGF0YS5oIgogI2luY2x1ZGUgIldlYkJhY2tGb3J3YXJkTGlzdFByb3h5LmgiCi0j
aW5jbHVkZSAiV2ViUGFnZU1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViUGFnZU1lc3NhZ2VzUmVw
bGllcy5oIgogI2luY2x1ZGUgIldlYlVSTFNjaGVtZUhhbmRsZXIuaCIKICNpbmNsdWRlICJXZWJV
bmRvU3RlcElELmgiCiAjaW5jbHVkZSAiV2ViVXNlckNvbnRlbnRDb250cm9sbGVyLmgiCkBAIC0x
MDAsNyArMTAxLDYgQEAgdHlwZWRlZiBzdHJ1Y3QgX0F0a09iamVjdCBBdGtPYmplY3Q7CiAKICNp
ZiBQTEFURk9STShJT1NfRkFNSUxZKQogI2luY2x1ZGUgIkdlc3R1cmVUeXBlcy5oIgotI2luY2x1
ZGUgIldlYlBhZ2VNZXNzYWdlcy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvSW50UG9pbnRIYXNoLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9WaWV3cG9ydENvbmZpZ3VyYXRpb24uaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL1dLQ29udGVudE9ic2VydmF0aW9uLmg+CkBAIC0xNzUsNyArMTc1LDYgQEAgY2xhc3Mg
UmVzb3VyY2VSZXNwb25zZTsKIGNsYXNzIFNlbGVjdGlvblJlY3Q7CiBjbGFzcyBTaGFyZWRCdWZm
ZXI7CiBjbGFzcyBTdWJzdGl0dXRlRGF0YTsKLWNsYXNzIFN5bnRoZXRpY0VkaXRpbmdDb21tYW5k
VHlwZTsKIGNsYXNzIFRleHRDaGVja2luZ1JlcXVlc3Q7CiBjbGFzcyBWaXNpYmxlUG9zaXRpb247
CiAKQEAgLTI1OCwxMCArMjU3LDEzIEBAIGNsYXNzIFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9u
OwogCiBlbnVtIEZpbmRPcHRpb25zIDogdWludDE2X3Q7CiBlbnVtIGNsYXNzIERyYWdDb250cm9s
bGVyQWN0aW9uIDogdWludDhfdDsKK2VudW0gY2xhc3MgU3ludGhldGljRWRpdGluZ0NvbW1hbmRU
eXBlIDogdWludDhfdDsKIAogc3RydWN0IEF0dHJpYnV0ZWRTdHJpbmc7CiBzdHJ1Y3QgQmFja0Zv
cndhcmRMaXN0SXRlbVN0YXRlOwogc3RydWN0IERhdGFEZXRlY3Rpb25SZXN1bHQ7CitzdHJ1Y3Qg
RG9jdW1lbnRFZGl0aW5nQ29udGV4dDsKK3N0cnVjdCBEb2N1bWVudEVkaXRpbmdDb250ZXh0UmVx
dWVzdDsKIHN0cnVjdCBFZGl0b3JTdGF0ZTsKIHN0cnVjdCBGb250SW5mbzsKIHN0cnVjdCBJbnNl
cnRUZXh0T3B0aW9uczsKQEAgLTg3OSw3ICs4ODEsNyBAQCBwdWJsaWM6CiAjZW5kaWYKIAogI2lm
IFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgdm9pZCBjb21wdXRlUGFnZXNGb3JQcmludGluZ0Fu
ZERyYXdUb1BERihXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFByaW50SW5mbyYsIENh
bGxiYWNrSUQsIE1lc3NhZ2VzOjpXZWJQYWdlOjpDb21wdXRlUGFnZXNGb3JQcmludGluZ0FuZERy
YXdUb1BERjo6RGVsYXllZFJlcGx5JiYpOworICAgIHZvaWQgY29tcHV0ZVBhZ2VzRm9yUHJpbnRp
bmdBbmREcmF3VG9QREYoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBQcmludEluZm8m
LCBDYWxsYmFja0lELCBNZXNzYWdlczo6V2ViUGFnZTo6Q29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmdB
bmREcmF3VG9QREZEZWxheWVkUmVwbHkmJik7CiAjZW5kaWYKIAogICAgIHZvaWQgZHJhd1RvUERG
KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgT3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRS
ZWN0PiYsIENhbGxiYWNrSUQpOwpAQCAtMTMwNyw3ICsxMzA5LDcgQEAgcHJpdmF0ZToKICAgICBi
b29sIGV4ZWN1dGVLZXlwcmVzc0NvbW1hbmRzSW50ZXJuYWwoY29uc3QgVmVjdG9yPFdlYkNvcmU6
OktleXByZXNzQ29tbWFuZD4mLCBXZWJDb3JlOjpLZXlib2FyZEV2ZW50Kik7CiAjZW5kaWYKIAot
ICAgIHZvaWQgdGVzdFByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yU3lu
Y1JlcGx5KE1lc3NhZ2VzOjpXZWJQYWdlOjpUZXN0UHJvY2Vzc0luY29taW5nU3luY01lc3NhZ2Vz
V2hlbldhaXRpbmdGb3JTeW5jUmVwbHk6OkRlbGF5ZWRSZXBseSYmKTsKKyAgICB2b2lkIHRlc3RQ
cm9jZXNzSW5jb21pbmdTeW5jTWVzc2FnZXNXaGVuV2FpdGluZ0ZvclN5bmNSZXBseShNZXNzYWdl
czo6V2ViUGFnZTo6VGVzdFByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9y
U3luY1JlcGx5RGVsYXllZFJlcGx5JiYpOwogCiAgICAgdm9pZCB1cGRhdGVEcmF3aW5nQXJlYUxh
eWVyVHJlZUZyZWV6ZVN0YXRlKCk7CiAgICAgYm9vbCBtYXJrTGF5ZXJzVm9sYXRpbGVJbW1lZGlh
dGVseUlmUG9zc2libGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvaW9zL1dlYlBhZ2VJT1MubW0KaW5kZXggNjYyNmMyNDMxNGQ1ZTFlOTg4MGJjYTBmOGNmNjQy
MDNlZWRhZDU2Yi4uNjY3M2Q2M2I4MmFhY2VmNjM4ZDQ2NTI3OWIyYzlkMDJiMjkwMTJmNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1Mu
bW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1Mu
bW0KQEAgLTU1LDYgKzU1LDcgQEAKICNpbXBvcnQgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgog
I2ltcG9ydCAiV2ViRnJhbWUuaCIKICNpbXBvcnQgIldlYkltYWdlLmgiCisjaW1wb3J0ICJXZWJQ
YWdlTWVzc2FnZXMuaCIKICNpbXBvcnQgIldlYlBhZ2VQcm94eU1lc3NhZ2VzLmgiCiAjaW1wb3J0
ICJXZWJQcmV2aWV3TG9hZGVyQ2xpZW50LmgiCiAjaW1wb3J0ICJXZWJQcm9jZXNzLmgiCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS93cGUvV2ViUGFnZVdQRS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS93cGUvV2ViUGFnZVdQRS5jcHAK
aW5kZXggYzJiNTI2NTlhMzZlYTgzZTdiZGU1Y2NmMTZmZjI3M2U0ODRjODE1Mi4uMTI0ZGU5NGYw
M2JmNGE3NGQ4YmU0NmIzODZmMGI3NjA0NmM3MDBjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL1dlYlBhZ2VXUEUuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9XZWJQYWdlV1BFLmNwcApAQCAtMjgsNiArMjgsNyBA
QAogCiAjaW5jbHVkZSAiV2ViS2l0V2ViUGFnZUFjY2Vzc2liaWxpdHlPYmplY3QuaCIKICNpbmNs
dWRlICJXZWJQYWdlUHJveHkuaCIKKyNpbmNsdWRlICJXZWJQYWdlUHJveHlNZXNzYWdlcy5oIgog
I2luY2x1ZGUgIldlYlByZWZlcmVuY2VzS2V5cy5oIgogI2luY2x1ZGUgIldlYlByZWZlcmVuY2Vz
U3RvcmUuaCIKICNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5o
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIu
aAppbmRleCBjYmJiYWNkMDRiM2M0NWNjM2I4ZWE4OTc0MDI2N2FmMDYwZWE4ZTZiLi5kMDQwMTYx
NTQxMzJmYzRiYjg4MGE5NTkzODg1ODMxZjNjYTU5YTYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvY29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmgKQEAgLTI5
LDcgKzI5LDcgQEAKIAogI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJNZXNzYWdl
UmVjZWl2ZXIuaCIKLSNpbmNsdWRlICJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyTWVzc2FnZXMuaCIK
KyNpbmNsdWRlICJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmgiCiAjaW5j
bHVkZSA8V2ViQ29yZS9FdmVudExpc3RlbmVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9IVE1MTWVk
aWFFbGVtZW50RW51bXMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtQ0FMYXllci5oPgpA
QCAtMTU0LDcgKzE1NCw3IEBAIHByb3RlY3RlZDoKICAgICB2b2lkIHNldFZpZGVvTGF5ZXJHcmF2
aXR5RW51bSh1aW50NjRfdCBjb250ZXh0SWQsIHVuc2lnbmVkIGdyYXZpdHkpOwogICAgIHZvaWQg
ZnVsbHNjcmVlbk1vZGVDaGFuZ2VkKHVpbnQ2NF90IGNvbnRleHRJZCwgV2ViQ29yZTo6SFRNTE1l
ZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlKTsKICAgICB2b2lkIGZ1bGxzY3Jl
ZW5NYXlSZXR1cm5Ub0lubGluZSh1aW50NjRfdCBjb250ZXh0SWQsIGJvb2wgaXNQYWdlVmlzaWJs
ZSk7Ci0gICAgdm9pZCByZXF1ZXN0Um91dGVTaGFyaW5nUG9saWN5QW5kQ29udGV4dFVJRCh1aW50
NjRfdCBjb250ZXh0SWQsIE1lc3NhZ2VzOjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpSZXF1ZXN0
Um91dGVTaGFyaW5nUG9saWN5QW5kQ29udGV4dFVJRDo6QXN5bmNSZXBseSYmKTsKKyAgICB2b2lk
IHJlcXVlc3RSb3V0ZVNoYXJpbmdQb2xpY3lBbmRDb250ZXh0VUlEKHVpbnQ2NF90IGNvbnRleHRJ
ZCwgTWVzc2FnZXM6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OlJlcXVlc3RSb3V0ZVNoYXJpbmdQ
b2xpY3lBbmRDb250ZXh0VUlEQXN5bmNSZXBseSYmKTsKIAogICAgIFdlYlBhZ2UqIG1fcGFnZTsK
ICAgICBSZWY8UGxheWJhY2tTZXNzaW9uTWFuYWdlcj4gbV9wbGF5YmFja1Nlc3Npb25NYW5hZ2Vy
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNj
cmVlbk1hbmFnZXIubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVmlkZW9GdWxs
c2NyZWVuTWFuYWdlci5tbQppbmRleCA1MzAwMDczMzBiODg0MmNlMTA2YjVkNWY5Mzg5YTM1OTYz
YTJjNmQ3Li5hYzQwMzJhZjA3OTY3YmE2MzE2ZWRiMmJiN2RiNmFlZGMyMDE1YWQ1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdl
ci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVmlkZW9GdWxsc2NyZWVu
TWFuYWdlci5tbQpAQCAtMzEsNiArMzEsNyBAQAogI2ltcG9ydCAiTGF5ZXJIb3N0aW5nQ29udGV4
dC5oIgogI2ltcG9ydCAiTG9nZ2luZy5oIgogI2ltcG9ydCAiUGxheWJhY2tTZXNzaW9uTWFuYWdl
ci5oIgorI2ltcG9ydCAiVmlkZW9GdWxsc2NyZWVuTWFuYWdlck1lc3NhZ2VzLmgiCiAjaW1wb3J0
ICJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHlNZXNzYWdlcy5oIgogI2ltcG9ydCAiV2ViQ29y
ZUFyZ3VtZW50Q29kZXJzLmgiCiAjaW1wb3J0ICJXZWJQYWdlLmgiCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>381564</attachid>
            <date>2019-10-22 10:51:41 -0700</date>
            <delta_ts>2019-10-22 11:17:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-203074-20191022105141.patch</filename>
            <type>text/plain</type>
            <size>97727</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUxNDM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmVkMDg2N2IyNTA4NTVj
MTRjYjMxYzcxNDRhZjcxODYxNzA4MDgzZi4uMjc1NmU4MDI0YzViZTNlYTdkYjg1MWYzOTQwZmE2
MjM2OWYzZjYxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE5LTEwLTIyICBUaW0g
SG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIE1ha2UgaXQgcG9z
c2libGUgdG8gbm90IGluY2x1ZGUgSVBDIE1lc3NhZ2VzIGhlYWRlcnMgaW4gb3RoZXIgaGVhZGVy
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAzMDc0
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYmluZGluZ3MvanMvRXhj
ZXB0aW9uRGV0YWlscy5oOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTUV4Y2Vw
dGlvbkhhbmRsaW5nLmg6CisgICAgICAgIFNwbGl0IHRoZSBFeGNlcHRpb25EZXRhaWxzIHN0cnVj
dCBvdXQgaW50byBpdHMgb3duIGZpbGUuCisKIDIwMTktMTAtMjIgIHlvdWVubiBmYWJsZXQgIDx5
b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSBtYXlIYXZlU2VydmljZVdvcmtlclJl
Z2lzdGVyZWRGb3JPcmlnaW4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggM2Q2ZmI5YjdlNDI3MTA2MDg3ZjdhNjlmODRl
Y2U2YjdjNDcxMmI3My4uZjQ0OTI3ZWVlYjRjMzhmN2U2YTI3ZjUxYjRhZjljOWJlNTRiZDk5YiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKQEAgLTEsMyArMSw4MiBAQAorMjAxOS0xMC0yMiAgVGltIEhvcnRvbiAgPHRpbW90
aHlfaG9ydG9uQGFwcGxlLmNvbT4KKworICAgICAgICBNYWtlIGl0IHBvc3NpYmxlIHRvIG5vdCBp
bmNsdWRlIElQQyBNZXNzYWdlcyBoZWFkZXJzIGluIG90aGVyIGhlYWRlcnMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMzA3NAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1ha2UgdGhlIE1lc3NhZ2VzIGdl
bmVyYXRvciBnZW5lcmF0ZSBhIG5ldyAtTWVzc2FnZXNSZXBsaWVzLmggZmlsZSwgd2hpY2gKKyAg
ICAgICAgb25seSBpbmNsdWRlcyBoZWFkZXJzIGZvciBhbmQgZGVmaW5pdGlvbnMgb2YgRGVsYXll
ZFJlcGx5L0FzeW5jUmVwbHkgdHlwZXMsCisgICAgICAgIHdoaWNoIG5lZWQgdG8gYmUgbWVudGlv
bmVkIGFzIGFyZ3VtZW50cyB0byBtZXNzYWdlIGhhbmRlciBtZXRob2RzLCBhbmQKKyAgICAgICAg
dGh1cyBtdXN0IGJlIGF2YWlsYWJsZSBpbiB2YXJpb3VzIGhlYWRlcnMgdGhyb3VnaG91dCB0aGUg
cHJvamVjdC4KKworICAgICAgICBJbiBvcmRlciB0byBkbyB0aGlzLCB3ZSBoYXZlIHRvIGRlLW5l
c3QgdGhlbSBmcm9tIHRoZSBwcmltYXJ5IG1lc3NhZ2UKKyAgICAgICAgY2xhc3MsIGJ1dCB3ZSB0
aGVuICd1c2luZycgdGhlbSBiYWNrIGludG8gcGxhY2UgaW5zaWRlIHRoZSBtZXNzYWdlIGNsYXNz
CisgICAgICAgIHNvIHRoYXQgbW9zdCBvZiB0aGUgY29kZSBkb2Vzbid0IG5lZWQgdG8gY2hhbmdl
LgorCisgICAgICAgIFRoaXMgaGVscHMgdG8gd2lsZGx5IGRlY3JlYXNlIHRoZSBoZWFkZXIgbG9h
ZCBvZiBXZWJQYWdlLmggYW5kIFdlYlBhZ2VQcm94eS5oLAorICAgICAgICBlc3BlY2lhbGx5LCBi
ZWNhdXNlIHRoZSBudW1iZXIgb2YgaGVhZGVycyBuZWVkZWQgZm9yIHR5cGVzIGluIHRoZWlyIHJl
cGxpZXMKKyAgICAgICAgaXMgbXVjaCBzbWFsbGVyIHRoYW4gdGhlIG51bWJlciBuZWVkZWQgZm9y
IGFsbCBtZXNzYWdlIHJlY2VpdmVycy4KKworICAgICAgICBBbHNvLCBvbmx5IGludm9rZSB0aGUg
TWVzc2FnZXMgZ2VuZXJhdG9yIG9uY2UgcGVyIHNvdXJjZSBmaWxlLCBhbmQKKyAgICAgICAgb25s
eSBwYXJzZSB0aGUgc291cmNlIGZpbGUgb25jZSwgZ2VuZXJhdGluZyBhbGwgdGhyZWUgb3V0cHV0
IGZpbGVzCisgICAgICAgIGluIG9uZSBpbnZvY2F0aW9uLgorCisgICAgICAgIEFuZCB0aGVuIGNs
ZWFuIHVwIGFsbCB0aGUgbWlzc2luZyBpbmRpcmVjdCBpbmNsdWRlcyB0aGF0IHdlIGxvc3QgYnkg
ZG9pbmcgdGhpcy4KKworICAgICAgICBBbGwtaW4tYWxsIHRoaXMgaXMgd29ydGggcm91Z2hseSA4
JSBvbiB0aGUgV2ViS2l0MiBCdWlsZCBUaW1lIEJlbmNobWFyay4KKworICAgICAgICAqIENNYWtl
TGlzdHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3Q6Cisg
ICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9D
bGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHA6CisgICAgICAgICog
TmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwOgorICAgICAg
ICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmg6CisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuaDoKKyAgICAgICAgKiBQbHVn
aW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5jcHA6CisgICAgICAgICogUGx1Z2luUHJv
Y2Vzcy9QbHVnaW5Db250cm9sbGVyUHJveHkuaDoKKyAgICAgICAgKiBQbHVnaW5Qcm9jZXNzL1dl
YlByb2Nlc3NDb25uZWN0aW9uLmg6CisgICAgICAgICogU2NyaXB0cy9NYWtlZmlsZToKKyAgICAg
ICAgKiBTY3JpcHRzL2dlbmVyYXRlLW1lc3NhZ2UtcmVjZWl2ZXIucHk6CisgICAgICAgIChtYWlu
KToKKyAgICAgICAgKiBTY3JpcHRzL2dlbmVyYXRlLW1lc3NhZ2VzLWhlYWRlci5weTogUmVtb3Zl
ZC4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdC9MZWdhY3lNZXNzYWdlUmVjZWl2ZXItZXhwZWN0
ZWQuY3BwOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0L0xlZ2FjeU1lc3NhZ2VzLWV4cGVjdGVk
Lmg6CisgICAgICAgICogU2NyaXB0cy93ZWJraXQvTGVnYWN5TWVzc2FnZXNSZXBsaWVzLWV4cGVj
dGVkLmg6IEFkZGVkLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0L01lc3NhZ2VSZWNlaXZlci1l
eHBlY3RlZC5jcHA6CisgICAgICAgICogU2NyaXB0cy93ZWJraXQvTWVzc2FnZVJlY2VpdmVyU3Vw
ZXJjbGFzcy1leHBlY3RlZC5jcHA6CisgICAgICAgICogU2NyaXB0cy93ZWJraXQvTWVzc2FnZXMt
ZXhwZWN0ZWQuaDoKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdC9NZXNzYWdlc1JlcGxpZXMtZXhw
ZWN0ZWQuaDogQWRkZWQuCisgICAgICAgICogU2NyaXB0cy93ZWJraXQvTWVzc2FnZXNSZXBsaWVz
U3VwZXJjbGFzc1JlcGxpZXMtZXhwZWN0ZWQuaDogQWRkZWQuCisgICAgICAgICogU2NyaXB0cy93
ZWJraXQvTWVzc2FnZXNTdXBlcmNsYXNzLWV4cGVjdGVkLmg6CisgICAgICAgICogU2NyaXB0cy93
ZWJraXQvbWVzc2FnZXMucHk6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyUHJveHkuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVk
aWFDYXB0dXJlTWFuYWdlclByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0Rvd25sb2Fkcy9E
b3dubG9hZFByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nl
c3NQcm94eS5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQ
cm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NNYW5hZ2Vy
LmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzTWFuYWdlci5o
OgorICAgICAgICAqIFVJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5oOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9TdXNwZW5kZWRQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgICog
VUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Bvb2wuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lmg6CisgICAg
ICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3Lm1tOgorICAgICAgICAqIFVJUHJvY2Vz
cy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tOgorICAgICAgICAqIFVJUHJvY2Vzcy9t
YWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94eS5tbToKKyAgICAgICAgKiBXZWJL
aXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3Jh
Z2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwOgorICAgICAgICAqIFdlYlByb2Nl
c3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oOgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdl
L2lvcy9XZWJQYWdlSU9TLm1tOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvVmlkZW9GdWxs
c2NyZWVuTWFuYWdlci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvVmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlci5tbToKKwogMjAxOS0xMC0yMiAgeW91ZW5uIGZhYmxldCAgPHlvdWVubkBhcHBs
ZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIG1heUhhdmVTZXJ2aWNlV29ya2VyUmVnaXN0ZXJlZEZv
ck9yaWdpbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCmluZGV4IDQzODE3OTVjMzViZTZhNjFiMjQ5MjI1N2VjYWVlM2I2ZTNkOGFjZWUuLjUx
MjU2ZTA4NTUzYjk0ZWU4ODdjNDY3YzFiYjJmMTMzODFlZTkyYWIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTcyMCw2ICs3MjAs
NyBAQAogCQkyRDA2MjE1MjFEQTYzQUEyMDBBN0ZCMjYgLyogV2ViS2l0TWVkaWFLZXlOZWVkZWRF
dmVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAy
RDA2MjE0NzFEQTYzQTc5MDBBN0ZCMjYgLyogV2ViS2l0TWVkaWFLZXlOZWVkZWRFdmVudC5jcHAg
Ki87IH07CiAJCTJEMEI0QUFCMThEQTFDQ0QwMDQzNERFMSAvKiBJT1N1cmZhY2UuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJEMEI0QUE5MThEQTFDQ0Qw
MDQzNERFMSAvKiBJT1N1cmZhY2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQkyRDI1Mzk2MzE4Q0U3RjYyMDAyNzAyMjIgLyogSW1hZ2VDb250cm9s
c0J1dHRvbkVsZW1lbnRNYWMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDJEMjUzOTYxMThDRTdGNjIwMDI3MDIyMiAvKiBJbWFnZUNvbnRyb2xzQnV0dG9u
RWxlbWVudE1hYy5oICovOyB9OworCQkyRDI5Mzg2QjIzNUY2QjY5MDBDN0YzQjIgLyogRXhjZXB0
aW9uRGV0YWlscy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMkQyOTM4NjkyMzVGNkI2ODAwQzdGM0IyIC8qIEV4Y2VwdGlvbkRldGFpbHMuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkyRDI5RUNDNjE5MkVD
QzgzMDA5ODRCNzggLyogRGlzcGxheVJlZnJlc2hNb25pdG9yQ2xpZW50LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRDI5RUNDMjE5MkVDQzgzMDA5ODRC
NzggLyogRGlzcGxheVJlZnJlc2hNb25pdG9yQ2xpZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMkQyOUVDQzgxOTJFQ0M4MzAwOTg0Qjc4IC8q
IERpc3BsYXlSZWZyZXNoTW9uaXRvck1hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJEMjlFQ0M0MTkyRUNDODMwMDk4NEI3OCAvKiBEaXNwbGF5
UmVmcmVzaE1vbml0b3JNYW5hZ2VyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJMkQyOUVDQ0ExOTJGMUYxRDAwOTg0Qjc4IC8qIERpc3BsYXlSZWZy
ZXNoTW9uaXRvcklPUy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMkQyOUVDQzkxOTJGMUYxRDAwOTg0Qjc4IC8qIERpc3BsYXlSZWZyZXNoTW9uaXRvcklP
Uy5oICovOyB9OwpAQCAtNjY0Nyw2ICs2NjQ4LDcgQEAKIAkJMkQxOTMyMTgxREE2NEUxOTAwQTU0
QTA4IC8qIFdlYktpdE1lZGlhS2V5RXJyb3IuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdl
YktpdE1lZGlhS2V5RXJyb3IuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRDI1
Mzk2MDE4Q0U3RjYyMDAyNzAyMjIgLyogSW1hZ2VDb250cm9sc0J1dHRvbkVsZW1lbnRNYWMuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW1hZ2VDb250cm9sc0J1dHRv
bkVsZW1lbnRNYWMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRDI1Mzk2MTE4
Q0U3RjYyMDAyNzAyMjIgLyogSW1hZ2VDb250cm9sc0J1dHRvbkVsZW1lbnRNYWMuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW1hZ2VDb250cm9sc0J1dHRvbkVsZW1lbnRNYWMu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkQyOTM4NjkyMzVGNkI2ODAwQzdGM0Iy
IC8qIEV4Y2VwdGlvbkRldGFpbHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
RXhjZXB0aW9uRGV0YWlscy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRDI5RUND
MTE5MkVDQzgzMDA5ODRCNzggLyogRGlzcGxheVJlZnJlc2hNb25pdG9yQ2xpZW50LmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERpc3BsYXlSZWZyZXNoTW9uaXRvckNs
aWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJEMjlFQ0MyMTkyRUNDODMw
MDk4NEI3OCAvKiBEaXNwbGF5UmVmcmVzaE1vbml0b3JDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gRGlzcGxheVJlZnJlc2hNb25pdG9yQ2xpZW50Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJEMjlFQ0MzMTkyRUNDODMwMDk4NEI3OCAvKiBEaXNwbGF5
UmVmcmVzaE1vbml0b3JNYW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IERpc3BsYXlSZWZyZXNoTW9uaXRvck1hbmFnZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtMjUwOTUsNiArMjUwOTcsNyBAQAogCQkJCTdDNTE2QUQyMUYzNTI1MjAw
MDM0QjZCRiAvKiBET01Qcm9taXNlUHJveHkuaCAqLywKIAkJCQlCQzUzREE0NzExNDMxMzREMDAw
RDgxN0UgLyogRE9NV3JhcHBlcldvcmxkLmNwcCAqLywKIAkJCQlCQzUzREEyRDExNDMxMjFFMDAw
RDgxN0UgLyogRE9NV3JhcHBlcldvcmxkLmggKi8sCisJCQkJMkQyOTM4NjkyMzVGNkI2ODAwQzdG
M0IyIC8qIEV4Y2VwdGlvbkRldGFpbHMuaCAqLywKIAkJCQkxNDMyRTg0ODBDNTE0OTNGMDBCMTUw
MEYgLyogR0NDb250cm9sbGVyLmNwcCAqLywKIAkJCQkxNDMyRTg0NjBDNTE0OTM4MDBCMTUwMEYg
LyogR0NDb250cm9sbGVyLmggKi8sCiAJCQkJQzU4NUE2NjAxMUQ0RkFDNTAwNEMzRTRCIC8qIElE
QkJpbmRpbmdVdGlsaXRpZXMuY3BwICovLApAQCAtMjk1MDcsNiArMjk1MTAsNyBAQAogCQkJCTkz
RDE5NjMzMUQ2Q0FCODIwMEZDN0U0NyAvKiBFeGNlcHRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJ
CTkzNUZCQ0YyMDlCQTE0M0IwMEUyMzBCMSAvKiBFeGNlcHRpb25Db2RlLmggaW4gSGVhZGVycyAq
LywKIAkJCQk1MUY2NDU2MjFGNDUzOThGMDBCNTRERUQgLyogRXhjZXB0aW9uRGF0YS5oIGluIEhl
YWRlcnMgKi8sCisJCQkJMkQyOTM4NkIyMzVGNkI2OTAwQzdGM0IyIC8qIEV4Y2VwdGlvbkRldGFp
bHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzRDE5NjMxMUQ2Q0FCNzYwMEZDN0U0NyAvKiBFeGNl
cHRpb25Pci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODM3RkIzNDUxRjlFQTA2RDAwRDBGQzMxIC8q
IEV4dGVuZGFibGVNZXNzYWdlRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxRENERjQ0MURB
MUM0NTQwMEVBNUI5MyAvKiBFeHRlbmRlZENvbG9yLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0V4Y2VwdGlvbkRldGFpbHMuaCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0V4Y2VwdGlvbkRldGFpbHMuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43Y2Zh
YTU0ZTM0ZGE1NTdmODNhNDdiODkyMDgwZjAyM2Y5MmVlODQyCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvRXhjZXB0aW9uRGV0YWlscy5oCkBAIC0wLDAgKzEs
MzkgQEAKKy8qCisqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisqCisqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyogYXJlIG1ldDoKKyogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisqCisqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQorKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDx3
dGYvRm9yd2FyZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0cnVjdCBFeGNlcHRpb25E
ZXRhaWxzIHsKKyAgICBTdHJpbmcgbWVzc2FnZTsKKyAgICBpbnQgbGluZU51bWJlciB7IDAgfTsK
KyAgICBpbnQgY29sdW1uTnVtYmVyIHsgMCB9OworICAgIFN0cmluZyBzb3VyY2VVUkw7Cit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmgKaW5kZXggNjIyYmQ0ODc4MDkwMmM5NTBhNTE3
YTFmMmM2Y2ZmYTVlNGEwNzQwNS4uOWI2MDg3YThiZmM5MDQzNzBhZjQ5YWZmYTNjMzkyYjVkZWZk
MmYxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01FeGNlcHRp
b25IYW5kbGluZy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NRXhjZXB0
aW9uSGFuZGxpbmcuaApAQCAtMjMsNiArMjMsNyBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1
ZGUgIkV4Y2VwdGlvbkRldGFpbHMuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Pci5oIgogI2luY2x1
ZGUgPEphdmFTY3JpcHRDb3JlL1Rocm93U2NvcGUuaD4KIApAQCAtMzYsMTMgKzM3LDYgQEAgY2xh
c3MgQ2FjaGVkU2NyaXB0OwogY2xhc3MgRGVmZXJyZWRQcm9taXNlOwogY2xhc3MgSlNET01HbG9i
YWxPYmplY3Q7CiAKLXN0cnVjdCBFeGNlcHRpb25EZXRhaWxzIHsKLSAgICBTdHJpbmcgbWVzc2Fn
ZTsKLSAgICBpbnQgbGluZU51bWJlciB7IDAgfTsKLSAgICBpbnQgY29sdW1uTnVtYmVyIHsgMCB9
OwotICAgIFN0cmluZyBzb3VyY2VVUkw7Ci19OwotCiB2b2lkIHRocm93QXR0cmlidXRlVHlwZUVy
cm9yKEpTQzo6SlNHbG9iYWxPYmplY3QmLCBKU0M6OlRocm93U2NvcGUmLCBjb25zdCBjaGFyKiBp
bnRlcmZhY2VOYW1lLCBjb25zdCBjaGFyKiBhdHRyaWJ1dGVOYW1lLCBjb25zdCBjaGFyKiBleHBl
Y3RlZFR5cGUpOwogV0VCQ09SRV9FWFBPUlQgYm9vbCB0aHJvd1NldHRlclR5cGVFcnJvcihKU0M6
OkpTR2xvYmFsT2JqZWN0JiwgSlNDOjpUaHJvd1Njb3BlJiwgY29uc3QgY2hhciogaW50ZXJmYWNl
TmFtZSwgY29uc3QgY2hhciogYXR0cmlidXRlTmFtZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0CmluZGV4
IDFlMDZlNjI2MGNkMmQ5NGUyNDgwOGViNTdmMDQyNzBmMTM1M2E0MTguLmVmY2MyZTg1YTQ0MDk5
ZTM4ZThmYzE5Nzk1MjY3ZDQ2NGMwNjc0OTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ01h
a2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dApAQCAtMzA5LDIx
ICszMDksMjAgQEAgc2V0KFdlYktpdF9BVVRPTUFUSU9OX1BST1RPQ09MX0dFTkVSQVRPUl9FWFRS
QV9GTEFHUwogV0VCS0lUX0ZSQU1FV09SS19ERUNMQVJFKFdlYktpdCkKIFdFQktJVF9JTkNMVURF
X0NPTkZJR19GSUxFU19JRl9FWElTVFMoKQogCi0jIEhlbHBlciBtYWNybyB3aGljaCB3cmFwcyBn
ZW5lcmF0ZS1tZXNzYWdlLXJlY2VpdmVyLnB5IGFuZCBnZW5lcmF0ZS1tZXNzYWdlLWhlYWRlci5w
eSBzY3JpcHRzCisjIEhlbHBlciBtYWNybyB3aGljaCB3cmFwcyB0aGUgZ2VuZXJhdGUtbWVzc2Fn
ZS1yZWNlaXZlci5weSBzY3JpcHQKICMgICBfb3V0cHV0X3NvdXJjZSBpcyBhIGxpc3QgbmFtZSB3
aGljaCB3aWxsIGNvbnRhaW4gZ2VuZXJhdGVkIHNvdXJjZXMuKGVnLiBXZWJLaXRfU09VUkNFUykK
ICMgICBfaW5wdXRfZmlsZXMgYXJlIG1lc3NhZ2VzLmluIGZpbGVzIHRvIGdlbmVyYXRlLgogbWFj
cm8oR0VORVJBVEVfTUVTU0FHRV9TT1VSQ0VTIF9vdXRwdXRfc291cmNlIF9pbnB1dF9maWxlcykK
ICAgICBmb3JlYWNoIChfZmlsZSAke19pbnB1dF9maWxlc30pCiAgICAgICAgIGdldF9maWxlbmFt
ZV9jb21wb25lbnQoX25hbWUgJHtfZmlsZX0gTkFNRV9XRSkKICAgICAgICAgYWRkX2N1c3RvbV9j
b21tYW5kKAotICAgICAgICAgICAgT1VUUFVUICR7V2ViS2l0X0RFUklWRURfU09VUkNFU19ESVJ9
LyR7X25hbWV9TWVzc2FnZVJlY2VpdmVyLmNwcCAke1dlYktpdF9ERVJJVkVEX1NPVVJDRVNfRElS
fS8ke19uYW1lfU1lc3NhZ2VzLmgKKyAgICAgICAgICAgIE9VVFBVVCAke1dlYktpdF9ERVJJVkVE
X1NPVVJDRVNfRElSfS8ke19uYW1lfU1lc3NhZ2VSZWNlaXZlci5jcHAgJHtXZWJLaXRfREVSSVZF
RF9TT1VSQ0VTX0RJUn0vJHtfbmFtZX1NZXNzYWdlcy5oICR7V2ViS2l0X0RFUklWRURfU09VUkNF
U19ESVJ9LyR7X25hbWV9TWVzc2FnZXNSZXBsaWVzLmgKICAgICAgICAgICAgIE1BSU5fREVQRU5E
RU5DWSAke19maWxlfQogICAgICAgICAgICAgREVQRU5EUyAke1dFQktJVF9ESVJ9L1NjcmlwdHMv
d2Via2l0L19faW5pdF9fLnB5CiAgICAgICAgICAgICAgICAgICAgICR7V0VCS0lUX0RJUn0vU2Ny
aXB0cy93ZWJraXQvbWVzc2FnZXMucHkKICAgICAgICAgICAgICAgICAgICAgJHtXRUJLSVRfRElS
fS9TY3JpcHRzL3dlYmtpdC9tb2RlbC5weQogICAgICAgICAgICAgICAgICAgICAke1dFQktJVF9E
SVJ9L1NjcmlwdHMvd2Via2l0L3BhcnNlci5weQotICAgICAgICAgICAgQ09NTUFORCAke1BZVEhP
Tl9FWEVDVVRBQkxFfSAke1dFQktJVF9ESVJ9L1NjcmlwdHMvZ2VuZXJhdGUtbWVzc2FnZS1yZWNl
aXZlci5weSAke19maWxlfSA+ICR7V2ViS2l0X0RFUklWRURfU09VUkNFU19ESVJ9LyR7X25hbWV9
TWVzc2FnZVJlY2VpdmVyLmNwcAotICAgICAgICAgICAgQ09NTUFORCAke1BZVEhPTl9FWEVDVVRB
QkxFfSAke1dFQktJVF9ESVJ9L1NjcmlwdHMvZ2VuZXJhdGUtbWVzc2FnZXMtaGVhZGVyLnB5ICR7
X2ZpbGV9ID4gJHtXZWJLaXRfREVSSVZFRF9TT1VSQ0VTX0RJUn0vJHtfbmFtZX1NZXNzYWdlcy5o
CisgICAgICAgICAgICBDT01NQU5EICR7UFlUSE9OX0VYRUNVVEFCTEV9ICR7V0VCS0lUX0RJUn0v
U2NyaXB0cy9nZW5lcmF0ZS1tZXNzYWdlLXJlY2VpdmVyLnB5ICR7X2ZpbGV9IC0taW1wbGVtZW50
YXRpb24gJHtXZWJLaXRfREVSSVZFRF9TT1VSQ0VTX0RJUn0vJHtfbmFtZX1NZXNzYWdlUmVjZWl2
ZXIuY3BwIC0taGVhZGVyICR7V2ViS2l0X0RFUklWRURfU09VUkNFU19ESVJ9LyR7X25hbWV9TWVz
c2FnZXMuaCAtLXJlcGx5LWhlYWRlciAke1dlYktpdF9ERVJJVkVEX1NPVVJDRVNfRElSfS8ke19u
YW1lfU1lc3NhZ2VzUmVwbGllcy5oCiAgICAgICAgICAgICBXT1JLSU5HX0RJUkVDVE9SWSAke1dF
QktJVF9ESVJ9CiAgICAgICAgICAgICBWRVJCQVRJTSkKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYktpdC9EZXJp
dmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CmluZGV4IGYxYWRhZDYyNjlkMDEyY2FiMWRkNzJi
NTkwNTI1OGVmOTA5Zjk1YTYuLmM4NDU0YmJlNGVkMGIyYzIzZTdjNGNlZTMzOTA4ODFiZjY4MjZh
ZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxl
bGlzdAorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QK
QEAgLTQ2LDcgKzQ2LDYgQEAgJChQUk9KRUNUX0RJUikvU2NyaXB0cy9QcmVmZXJlbmNlc1RlbXBs
YXRlcy9XZWJQcmVmZXJlbmNlc0tleXMuaC5lcmIKICQoUFJPSkVDVF9ESVIpL1NjcmlwdHMvUHJl
ZmVyZW5jZXNUZW1wbGF0ZXMvV2ViUHJlZmVyZW5jZXNTdG9yZURlZmF1bHRzTWFwLmNwcC5lcmIK
ICQoUFJPSkVDVF9ESVIpL1NjcmlwdHMvZ2VuZXJhdGUtaHR0cHMtdXBncmFkZS1kYXRhYmFzZS5z
aAogJChQUk9KRUNUX0RJUikvU2NyaXB0cy9nZW5lcmF0ZS1tZXNzYWdlLXJlY2VpdmVyLnB5Ci0k
KFBST0pFQ1RfRElSKS9TY3JpcHRzL2dlbmVyYXRlLW1lc3NhZ2VzLWhlYWRlci5weQogJChQUk9K
RUNUX0RJUikvU2NyaXB0cy93ZWJraXQvX19pbml0X18ucHkKICQoUFJPSkVDVF9ESVIpL1Njcmlw
dHMvd2Via2l0L21lc3NhZ2VzLnB5CiAkKFBST0pFQ1RfRElSKS9TY3JpcHRzL3dlYmtpdC9tb2Rl
bC5weQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291
cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IGMzOWMyOTc1NTY3NmUyYTY1MDhm
YTdmZTQwZDk2ODEyNTRhZjc2ZTAuLjQyY2MwNTQwNzRmY2NhMjZkNTA5YThkM2VjYWY3Y2NmOWM2
MDg2YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQorKysg
Yi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTE4OSw3ICsxODksNiBAQCBN
RVNTQUdFX1JFQ0VJVkVSUyA9IFwKIAogU0NSSVBUUyA9IFwKICAgICAkKFdlYktpdDIpL1Njcmlw
dHMvZ2VuZXJhdGUtbWVzc2FnZS1yZWNlaXZlci5weSBcCi0gICAgJChXZWJLaXQyKS9TY3JpcHRz
L2dlbmVyYXRlLW1lc3NhZ2VzLWhlYWRlci5weSBcCiAgICAgJChXZWJLaXQyKS9TY3JpcHRzL3dl
YmtpdC9fX2luaXRfXy5weSBcCiAgICAgJChXZWJLaXQyKS9TY3JpcHRzL3dlYmtpdC9tZXNzYWdl
cy5weSBcCiAgICAgJChXZWJLaXQyKS9TY3JpcHRzL3dlYmtpdC9tb2RlbC5weSBcCkBAIC0yMDYs
MTUgKzIwNSwxMiBAQCBIRUFERVJfRkxBR1MgPSAkKHNoZWxsIGVjaG8gJChCVUlMVF9QUk9EVUNU
U19ESVIpICQoSEVBREVSX1NFQVJDSF9QQVRIUykgJChTWVNURQogYWxsIDogXAogICAgICQoTUVT
U0FHRV9SRUNFSVZFUlM6JT0lTWVzc2FnZVJlY2VpdmVyLmNwcCkgXAogICAgICQoTUVTU0FHRV9S
RUNFSVZFUlM6JT0lTWVzc2FnZXMuaCkgXAorICAgICQoTUVTU0FHRV9SRUNFSVZFUlM6JT0lTWVz
c2FnZXNSZXBsaWVzLmgpIFwKICMKIAotJU1lc3NhZ2VSZWNlaXZlci5jcHAgOiAlLm1lc3NhZ2Vz
LmluICQoU0NSSVBUUykKKyVNZXNzYWdlUmVjZWl2ZXIuY3BwICVNZXNzYWdlcy5oICVNZXNzYWdl
c1JlcGxpZXMuaCA6ICUubWVzc2FnZXMuaW4gJChTQ1JJUFRTKQogCUBlY2hvIEdlbmVyYXRpbmcg
bWVzc2FnZSByZWNlaXZlciBmb3IgJCouLi4KLQlAcHl0aG9uICQoV2ViS2l0MikvU2NyaXB0cy9n
ZW5lcmF0ZS1tZXNzYWdlLXJlY2VpdmVyLnB5ICQ8ID4gJEAKLQotJU1lc3NhZ2VzLmggOiAlLm1l
c3NhZ2VzLmluICQoU0NSSVBUUykKLQlAZWNobyBHZW5lcmF0aW5nIG1lc3NhZ2VzIGhlYWRlciBm
b3IgJCouLi4KLQlAcHl0aG9uICQoV2ViS2l0MikvU2NyaXB0cy9nZW5lcmF0ZS1tZXNzYWdlcy1o
ZWFkZXIucHkgJDwgPiAkQAorCUBweXRob24gJChXZWJLaXQyKS9TY3JpcHRzL2dlbmVyYXRlLW1l
c3NhZ2UtcmVjZWl2ZXIucHkgJDwgLS1pbXBsZW1lbnRhdGlvbiAkKk1lc3NhZ2VSZWNlaXZlci5j
cHAgLS1oZWFkZXIgJCpNZXNzYWdlcy5oIC0tcmVwbHktaGVhZGVyICQqTWVzc2FnZXNSZXBsaWVz
LmgKIAogVEVYVF9QUkVQUk9DRVNTT1JfRkxBR1M9LUUgLVAgLXcKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRp
c3RpY3NTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIv
V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcAppbmRleCAxZGI0ZWMyNDkxZDY2MTdl
Y2M5NGZhZGUyZTRlMDcyYmY5ZjliNjkwLi5lOWQwOGVlOTVlNzQxNGJjOWYzNGM0MjVkMzhkNTk4
ZGVjNzNmY2JiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNz
aWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0
b3JlLmNwcApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkFQSURpY3Rpb25hcnkuaCIKICNp
bmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3MuaCIKKyNpbmNsdWRl
ICJOZXR3b3JrUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCIKICNpbmNsdWRlICJOZXR3b3JrU2Vzc2lv
bi5oIgogI2luY2x1ZGUgIlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmgiCiAj
aW5jbHVkZSAiUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlLmgiCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3MuY3BwCmluZGV4IGMzNTdhYTYyNjJjZjYzMmI5NmU2ZjY3Zjc4ZjgyN2RhNmE0
NjNjMTMuLmI4ZDNmOTlhMDFkNzZjZTE5MGIxMzhhYWUxZWYyY2M1ZmE5NWU3ZWUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiRGF0YVJl
ZmVyZW5jZS5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJOZXR3b3JrQ2FjaGUu
aCIKKyNpbmNsdWRlICJOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzc01lc3NhZ2VzLmgiCiAj
aW5jbHVkZSAiTmV0d29ya01ETlNSZWdpc3Rlck1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiTmV0d29y
a1Byb2Nlc3MuaCIKICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlcy5o
IgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVj
dGlvblRvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCmluZGV4IGEwMmExYzNiOTliZWQ1Nzk3OWY1ZDdkNTY3
MzY3M2I2MTFhOGVlYWEuLjk3YjI3NDRlZDYwNDM2ZjQ3NDY2YjM0Y2NhOWU2M2MyNTU0M2U3NzAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKQEAgLTI5LDEwICsyOSwxMiBAQAogI2luY2x1ZGUg
IkNvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJEb3dubG9hZElELmgiCiAjaW5jbHVkZSAiTmV0d29y
a0FjdGl2aXR5VHJhY2tlci5oIgotI2luY2x1ZGUgIk5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzc01l
c3NhZ2VzUmVwbGllcy5oIgogI2luY2x1ZGUgIk5ldHdvcmtNRE5TUmVnaXN0ZXIuaCIKICNpbmNs
dWRlICJOZXR3b3JrUlRDUHJvdmlkZXIuaCIKICNpbmNsdWRlICJOZXR3b3JrUmVzb3VyY2VMb2Fk
TWFwLmgiCisjaW5jbHVkZSAiU2FuZGJveEV4dGVuc2lvbi5oIgorI2luY2x1ZGUgIldlYlBhZ2VQ
cm94eUlkZW50aWZpZXIuaCIKICNpbmNsdWRlICJXZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eS5o
IgogI2luY2x1ZGUgIldlYlJlc291cmNlTG9hZE9ic2VydmVyLmgiCiAjaW5jbHVkZSA8V2ViQ29y
ZS9GcmFtZUlkZW50aWZpZXIuaD4KQEAgLTUwLDYgKzUyLDcgQEAgY2xhc3MgU2Vzc2lvbklEOwog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBCbG9iRGF0YUZpbGVSZWZlcmVuY2U7CitjbGFz
cyBCbG9iUGFydDsKIGNsYXNzIEJsb2JSZWdpc3RyeUltcGw7CiBjbGFzcyBSZXNvdXJjZUVycm9y
OwogY2xhc3MgUmVzb3VyY2VSZXF1ZXN0OwpAQCAtNjQsNiArNjcsNyBAQCBuYW1lc3BhY2UgV2Vi
S2l0IHsKIAogY2xhc3MgTmV0d29ya1Byb2Nlc3M7CiBjbGFzcyBOZXR3b3JrUmVzb3VyY2VMb2Fk
ZXI7CitjbGFzcyBOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVyczsKIGNsYXNzIE5ldHdvcmtT
ZXNzaW9uOwogY2xhc3MgTmV0d29ya1NvY2tldENoYW5uZWw7CiBjbGFzcyBOZXR3b3JrU29ja2V0
U3RyZWFtOwpAQCAtMTc3LDggKzE4MSw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRSZWNlaXZl
U3luY05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24m
LCBJUEM6OkRlY29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYpOwogCiAgICAg
dm9pZCBzY2hlZHVsZVJlc291cmNlTG9hZChOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyYm
KTsKLSAgICB2b2lkIHBlcmZvcm1TeW5jaHJvbm91c0xvYWQoTmV0d29ya1Jlc291cmNlTG9hZFBh
cmFtZXRlcnMmJiwgTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpQZXJm
b3JtU3luY2hyb25vdXNMb2FkOjpEZWxheWVkUmVwbHkmJik7Ci0gICAgdm9pZCB0ZXN0UHJvY2Vz
c0luY29taW5nU3luY01lc3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkoV2ViUGFnZVByb3h5
SWRlbnRpZmllciwgTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpUZXN0
UHJvY2Vzc0luY29taW5nU3luY01lc3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5jUmVwbHk6OkRlbGF5
ZWRSZXBseSYmKTsKKyAgICB2b2lkIHBlcmZvcm1TeW5jaHJvbm91c0xvYWQoTmV0d29ya1Jlc291
cmNlTG9hZFBhcmFtZXRlcnMmJiwgTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzOjpQZXJmb3JtU3luY2hyb25vdXNMb2FkRGVsYXllZFJlcGx5JiYpOworICAgIHZvaWQgdGVz
dFByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5KFdlYlBh
Z2VQcm94eUlkZW50aWZpZXIsIE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
czo6VGVzdFByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5
RGVsYXllZFJlcGx5JiYpOwogICAgIHZvaWQgbG9hZFBpbmcoTmV0d29ya1Jlc291cmNlTG9hZFBh
cmFtZXRlcnMmJik7CiAgICAgdm9pZCBwcmVmZXRjaEROUyhjb25zdCBTdHJpbmcmKTsKICAgICB2
b2lkIHByZWNvbm5lY3RUbyh1aW50NjRfdCBwcmVjb25uZWN0aW9uSWRlbnRpZmllciwgTmV0d29y
a1Jlc291cmNlTG9hZFBhcmFtZXRlcnMmJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggNGUzYzAxZTI3MDJi
ZDM1MDAzYTUyNTE0ZGRjMTdjZWMzOGI5NmRhYi4uZmZmZTVkMDQ2YjUzNGRlMDQ3YzgzNjViYjYw
Zjk1M2YzNzFkZWVlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUg
IkxvZ2dpbmcuaCIKICNpbmNsdWRlICJOZXR3b3JrQ2FjaGUuaCIKICNpbmNsdWRlICJOZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIgorI2luY2x1ZGUgIk5ldHdvcmtDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzTWVzc2FnZXMuaCIKICNpbmNsdWRlICJOZXR3b3JrTG9hZC5oIgogI2luY2x1ZGUg
Ik5ldHdvcmtMb2FkQ2hlY2tlci5oIgogI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzLmgiCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRl
ci5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIu
aAppbmRleCA4ZDE3OWUzZWI0MTYzZTE4OThiNWUxZGEyN2IyZTg1Y2M4YjNkNTU0Li42NmIyNTYw
MDUxNmE4Nzk2MmY3OGQyMzg2MmFjNTA3ZGE3ZDdlNjMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmgKQEAgLTI5LDcgKzI5
LDcgQEAKICNpbmNsdWRlICJNZXNzYWdlU2VuZGVyLmgiCiAjaW5jbHVkZSAiTmV0d29ya0NhY2hl
LmgiCiAjaW5jbHVkZSAiTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCIKLSNpbmNsdWRl
ICJOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzc01lc3NhZ2VzLmgiCisjaW5jbHVkZSAiTmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlc1JlcGxpZXMuaCIKICNpbmNsdWRlICJO
ZXR3b3JrTG9hZENsaWVudC5oIgogI2luY2x1ZGUgIk5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0
ZXJzLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9BZENsaWNrQXR0cmlidXRpb24uaD4KQEAgLTY1LDcg
KzY1LDcgQEAgY2xhc3MgTmV0d29ya1Jlc291cmNlTG9hZGVyIGZpbmFsCiAgICAgLCBwdWJsaWMg
V2ViQ29yZTo6Q29udGVudFNlY3VyaXR5UG9saWN5Q2xpZW50CiAgICAgLCBwdWJsaWMgQ2FuTWFr
ZVdlYWtQdHI8TmV0d29ya1Jlc291cmNlTG9hZGVyPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJl
ZjxOZXR3b3JrUmVzb3VyY2VMb2FkZXI+IGNyZWF0ZShOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1l
dGVycyYmIHBhcmFtZXRlcnMsIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBjb25uZWN0
aW9uLCBNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OlBlcmZvcm1TeW5j
aHJvbm91c0xvYWQ6OkRlbGF5ZWRSZXBseSYmIHJlcGx5ID0gbnVsbHB0cikKKyAgICBzdGF0aWMg
UmVmPE5ldHdvcmtSZXNvdXJjZUxvYWRlcj4gY3JlYXRlKE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJh
bWV0ZXJzJiYgcGFyYW1ldGVycywgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGNvbm5l
Y3Rpb24sIE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6UGVyZm9ybVN5
bmNocm9ub3VzTG9hZERlbGF5ZWRSZXBseSYmIHJlcGx5ID0gbnVsbHB0cikKICAgICB7CiAgICAg
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IE5ldHdvcmtSZXNvdXJjZUxvYWRlcihXVEZNb3ZlKHBh
cmFtZXRlcnMpLCBjb25uZWN0aW9uLCBXVEZNb3ZlKHJlcGx5KSkpOwogICAgIH0KQEAgLTEzMSw3
ICsxMzEsNyBAQCBwdWJsaWM6CiAjZW5kaWYKIAogcHJpdmF0ZToKLSAgICBOZXR3b3JrUmVzb3Vy
Y2VMb2FkZXIoTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMmJiwgTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MmLCBNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6
OlBlcmZvcm1TeW5jaHJvbm91c0xvYWQ6OkRlbGF5ZWRSZXBseSYmKTsKKyAgICBOZXR3b3JrUmVz
b3VyY2VMb2FkZXIoTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMmJiwgTmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MmLCBNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3M6OlBlcmZvcm1TeW5jaHJvbm91c0xvYWREZWxheWVkUmVwbHkmJik7CiAKICAgICAvLyBJUEM6
Ok1lc3NhZ2VTZW5kZXIKICAgICBJUEM6OkNvbm5lY3Rpb24qIG1lc3NhZ2VTZW5kZXJDb25uZWN0
aW9uKCkgY29uc3Qgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsdWdpblBy
b2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvUGx1Z2luUHJv
Y2Vzcy9QbHVnaW5Db250cm9sbGVyUHJveHkuY3BwCmluZGV4IGI2NDIxNDRiZDFhZWI5NzBjNmZj
Njc4OTE4ODQwMmZkYWE4NzE5OTcuLmVhNzExZDMyZTI1NWY3M2MzNzUyZjQyOWYwZWE3MjIxNWI5
YzkzM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250
cm9sbGVyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvUGx1Z2luUHJvY2Vzcy9QbHVnaW5D
b250cm9sbGVyUHJveHkuY3BwCkBAIC00MCw2ICs0MCw3IEBACiAjaW5jbHVkZSAiU2hhcmVhYmxl
Qml0bWFwLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCiAjaW5jbHVkZSAi
V2ViUHJvY2Vzc0Nvbm5lY3Rpb24uaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzQ29ubmVjdGlvbk1l
c3NhZ2VzLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9HcmFwaGljc0NvbnRleHQuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL0hUVFBIZWFkZXJNYXAuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0lkZW50aWZpZXJS
ZXAuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250
cm9sbGVyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250cm9s
bGVyUHJveHkuaAppbmRleCBiOThjYTk0YmM5ZWZjMjNiMmVkODE4YTViNzg0MzM3MjMxN2U5YzY3
Li5hZDRmY2Q5ZDhjY2Y0MmYxMmVlNDg4ZTAxMzQ2YzYxOWE3MDFiOGQyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1BsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5LmgKKysrIGIv
U291cmNlL1dlYktpdC9QbHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5oCkBAIC0z
MCw5ICszMCw4IEBACiAjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIlBsdWdpbi5o
IgogI2luY2x1ZGUgIlBsdWdpbkNvbnRyb2xsZXIuaCIKLSNpbmNsdWRlICJQbHVnaW5Db250cm9s
bGVyUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlNoYXJlYWJsZUJpdG1hcC5oIgotI2luY2x1
ZGUgIldlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNz
Q29ubmVjdGlvbk1lc3NhZ2VzUmVwbGllcy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlP
cmlnaW4uaD4KICNpbmNsdWRlIDxXZWJDb3JlL1VzZXJBY3Rpdml0eS5oPgogI2luY2x1ZGUgPHd0
Zi9Ob25jb3B5YWJsZS5oPgpAQCAtNzUsOCArNzQsOCBAQCBwdWJsaWM6CiAKICAgICBib29sIGlz
SW5pdGlhbGl6aW5nKCkgY29uc3QgeyByZXR1cm4gbV9pc0luaXRpYWxpemluZzsgfQogICAgIAot
ICAgIHZvaWQgc2V0SW5pdGlhbGl6YXRpb25SZXBseShNZXNzYWdlczo6V2ViUHJvY2Vzc0Nvbm5l
Y3Rpb246OkNyZWF0ZVBsdWdpbjo6RGVsYXllZFJlcGx5JiYpOwotICAgIE1lc3NhZ2VzOjpXZWJQ
cm9jZXNzQ29ubmVjdGlvbjo6Q3JlYXRlUGx1Z2luOjpEZWxheWVkUmVwbHkgdGFrZUluaXRpYWxp
emF0aW9uUmVwbHkoKTsKKyAgICB2b2lkIHNldEluaXRpYWxpemF0aW9uUmVwbHkoTWVzc2FnZXM6
OldlYlByb2Nlc3NDb25uZWN0aW9uOjpDcmVhdGVQbHVnaW5EZWxheWVkUmVwbHkmJik7CisgICAg
TWVzc2FnZXM6OldlYlByb2Nlc3NDb25uZWN0aW9uOjpDcmVhdGVQbHVnaW5EZWxheWVkUmVwbHkg
dGFrZUluaXRpYWxpemF0aW9uUmVwbHkoKTsKIAogcHJpdmF0ZToKICAgICB2b2lkIHN0YXJ0UGFp
bnRUaW1lcigpOwpAQCAtMTg0LDcgKzE4Myw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2lzVmlz
aWJsZTsKICAgICBib29sIG1faXNXaW5kb3dWaXNpYmxlOwogCi0gICAgTWVzc2FnZXM6OldlYlBy
b2Nlc3NDb25uZWN0aW9uOjpDcmVhdGVQbHVnaW46OkRlbGF5ZWRSZXBseSBtX2luaXRpYWxpemF0
aW9uUmVwbHk7CisgICAgTWVzc2FnZXM6OldlYlByb2Nlc3NDb25uZWN0aW9uOjpDcmVhdGVQbHVn
aW5EZWxheWVkUmVwbHkgbV9pbml0aWFsaXphdGlvblJlcGx5OwogCiAgICAgUmVmUHRyPFBsdWdp
bj4gbV9wbHVnaW47CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGx1Z2luUHJvY2Vzcy9X
ZWJQcm9jZXNzQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9QbHVnaW5Qcm9jZXNzL1dlYlBy
b2Nlc3NDb25uZWN0aW9uLmgKaW5kZXggM2EwYTdhODk3OWUzMzE3ZDM3NzI2OGY4ZTY5MDI0ZWEy
ZDYyY2EzNC4uZWYyNDIxMGE5YjA0ZDhlOGEyNzM0ZGRmOGNjMTJhYmIzYzAzMDc5MSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9QbHVnaW5Qcm9jZXNzL1dlYlByb2Nlc3NDb25uZWN0aW9uLmgK
KysrIGIvU291cmNlL1dlYktpdC9QbHVnaW5Qcm9jZXNzL1dlYlByb2Nlc3NDb25uZWN0aW9uLmgK
QEAgLTI5LDcgKzI5LDcgQEAKIAogI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJQ
bHVnaW4uaCIKLSNpbmNsdWRlICJXZWJQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VzLmgiCisjaW5j
bHVkZSAiV2ViUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlc1JlcGxpZXMuaCIKICNpbmNsdWRlIDx3
dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAKQEAgLTY5LDkgKzY5
LDkgQEAgcHJpdmF0ZToKICAgICAvLyBNZXNzYWdlIGhhbmRsZXJzLgogICAgIHZvaWQgZGlkUmVj
ZWl2ZVdlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRl
Y29kZXImKTsKICAgICB2b2lkIGRpZFJlY2VpdmVTeW5jV2ViUHJvY2Vzc0Nvbm5lY3Rpb25NZXNz
YWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6
OkVuY29kZXI+Jik7Ci0gICAgdm9pZCBjcmVhdGVQbHVnaW4oY29uc3QgUGx1Z2luQ3JlYXRpb25Q
YXJhbWV0ZXJzJiwgTWVzc2FnZXM6OldlYlByb2Nlc3NDb25uZWN0aW9uOjpDcmVhdGVQbHVnaW46
OkRlbGF5ZWRSZXBseSYmKTsKKyAgICB2b2lkIGNyZWF0ZVBsdWdpbihjb25zdCBQbHVnaW5DcmVh
dGlvblBhcmFtZXRlcnMmLCBNZXNzYWdlczo6V2ViUHJvY2Vzc0Nvbm5lY3Rpb246OkNyZWF0ZVBs
dWdpbkRlbGF5ZWRSZXBseSYmKTsKICAgICB2b2lkIGNyZWF0ZVBsdWdpbkFzeW5jaHJvbm91c2x5
KGNvbnN0IFBsdWdpbkNyZWF0aW9uUGFyYW1ldGVycyYpOwotICAgIHZvaWQgZGVzdHJveVBsdWdp
bih1aW50NjRfdCBwbHVnaW5JbnN0YW5jZUlELCBib29sIGFzeW5jaHJvbm91c0NyZWF0aW9uSW5j
b21wbGV0ZSwgTWVzc2FnZXM6OldlYlByb2Nlc3NDb25uZWN0aW9uOjpEZXN0cm95UGx1Z2luOjpE
ZWxheWVkUmVwbHkmJik7CisgICAgdm9pZCBkZXN0cm95UGx1Z2luKHVpbnQ2NF90IHBsdWdpbklu
c3RhbmNlSUQsIGJvb2wgYXN5bmNocm9ub3VzQ3JlYXRpb25JbmNvbXBsZXRlLCBNZXNzYWdlczo6
V2ViUHJvY2Vzc0Nvbm5lY3Rpb246OkRlc3Ryb3lQbHVnaW5EZWxheWVkUmVwbHkmJik7CiAgICAg
CiAgICAgdm9pZCBjcmVhdGVQbHVnaW5JbnRlcm5hbChjb25zdCBQbHVnaW5DcmVhdGlvblBhcmFt
ZXRlcnMmLCBib29sJiByZXN1bHQsIGJvb2wmIHdhbnRzV2hlZWxFdmVudHMsIHVpbnQzMl90JiBy
ZW1vdGVMYXllckNsaWVudElEKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRz
L01ha2VmaWxlIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL01ha2VmaWxlCmluZGV4IDY1ODIwZjIz
NTMwNWEyNGExOTAyOTQ5MDZkYTM4OGYxNjM1YjE2ZGUuLjU0MzJjODIxN2FkMmRhN2RkMjkxOGE2
YTYyYzc1YjQ0NzBlMmM4NmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy9NYWtl
ZmlsZQorKysgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvTWFrZWZpbGUKQEAgLTEsOCArMSw1IEBA
CiBhbGw6Ci0JcHl0aG9uIC4vZ2VuZXJhdGUtbWVzc2FnZXMtaGVhZGVyLnB5IHdlYmtpdC90ZXN0
LXN1cGVyY2xhc3MtbWVzc2FnZXMuaW4gPiB3ZWJraXQvTWVzc2FnZXNTdXBlcmNsYXNzLWV4cGVj
dGVkLmgKLQlweXRob24gLi9nZW5lcmF0ZS1tZXNzYWdlcy1oZWFkZXIucHkgd2Via2l0L3Rlc3Qt
bGVnYWN5LW1lc3NhZ2VzLmluID4gd2Via2l0L0xlZ2FjeU1lc3NhZ2VzLWV4cGVjdGVkLmgKLQlw
eXRob24gLi9nZW5lcmF0ZS1tZXNzYWdlcy1oZWFkZXIucHkgd2Via2l0L3Rlc3QtbWVzc2FnZXMu
aW4gPiB3ZWJraXQvTWVzc2FnZXMtZXhwZWN0ZWQuaAotCXB5dGhvbiAuL2dlbmVyYXRlLW1lc3Nh
Z2UtcmVjZWl2ZXIucHkgd2Via2l0L3Rlc3Qtc3VwZXJjbGFzcy1tZXNzYWdlcy5pbiA+IHdlYmtp
dC9NZXNzYWdlUmVjZWl2ZXJTdXBlcmNsYXNzLWV4cGVjdGVkLmNwcAotCXB5dGhvbiAuL2dlbmVy
YXRlLW1lc3NhZ2UtcmVjZWl2ZXIucHkgd2Via2l0L3Rlc3QtbGVnYWN5LW1lc3NhZ2VzLmluID4g
d2Via2l0L0xlZ2FjeU1lc3NhZ2VSZWNlaXZlci1leHBlY3RlZC5jcHAKLQlweXRob24gLi9nZW5l
cmF0ZS1tZXNzYWdlLXJlY2VpdmVyLnB5IHdlYmtpdC90ZXN0LW1lc3NhZ2VzLmluID4gd2Via2l0
L01lc3NhZ2VSZWNlaXZlci1leHBlY3RlZC5jcHAKKwlweXRob24gLi9nZW5lcmF0ZS1tZXNzYWdl
LXJlY2VpdmVyLnB5IHdlYmtpdC90ZXN0LXN1cGVyY2xhc3MtbWVzc2FnZXMuaW4gLS1pbXBsZW1l
bnRhdGlvbiB3ZWJraXQvTWVzc2FnZVJlY2VpdmVyU3VwZXJjbGFzcy1leHBlY3RlZC5jcHAgLS1o
ZWFkZXIgd2Via2l0L01lc3NhZ2VzU3VwZXJjbGFzcy1leHBlY3RlZC5oIC0tcmVwbHktaGVhZGVy
IHdlYmtpdC9NZXNzYWdlc1JlcGxpZXNTdXBlcmNsYXNzUmVwbGllcy1leHBlY3RlZC5oCisJcHl0
aG9uIC4vZ2VuZXJhdGUtbWVzc2FnZS1yZWNlaXZlci5weSB3ZWJraXQvdGVzdC1sZWdhY3ktbWVz
c2FnZXMuaW4gLS1pbXBsZW1lbnRhdGlvbiB3ZWJraXQvTGVnYWN5TWVzc2FnZVJlY2VpdmVyLWV4
cGVjdGVkLmNwcCAtLWhlYWRlciB3ZWJraXQvTGVnYWN5TWVzc2FnZXMtZXhwZWN0ZWQuaCAtLXJl
cGx5LWhlYWRlciB3ZWJraXQvTGVnYWN5TWVzc2FnZXNSZXBsaWVzLWV4cGVjdGVkLmgKKwlweXRo
b24gLi9nZW5lcmF0ZS1tZXNzYWdlLXJlY2VpdmVyLnB5IHdlYmtpdC90ZXN0LW1lc3NhZ2VzLmlu
IC0taW1wbGVtZW50YXRpb24gd2Via2l0L01lc3NhZ2VSZWNlaXZlci1leHBlY3RlZC5jcHAgLS1o
ZWFkZXIgd2Via2l0L01lc3NhZ2VzLWV4cGVjdGVkLmggLS1yZXBseS1oZWFkZXIgd2Via2l0L01l
c3NhZ2VzUmVwbGllcy1leHBlY3RlZC5oCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2Ny
aXB0cy9nZW5lcmF0ZS1tZXNzYWdlLXJlY2VpdmVyLnB5IGIvU291cmNlL1dlYktpdC9TY3JpcHRz
L2dlbmVyYXRlLW1lc3NhZ2UtcmVjZWl2ZXIucHkKaW5kZXggNjQxM2E4YmYzNmYxMjdkNGY4M2Zm
YjQ5ZjkxY2Q4OGQzNzAzMDJjMi4uMzVlNDA1ODJlNzlhM2YwY2U5MzM3YTg2ZDRlMDkzMzdmYmE0
MTFlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TY3JpcHRzL2dlbmVyYXRlLW1lc3NhZ2Ut
cmVjZWl2ZXIucHkKKysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL2dlbmVyYXRlLW1lc3NhZ2Ut
cmVjZWl2ZXIucHkKQEAgLTIzLDE4ICsyMywzNCBAQAogIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCiBmcm9tIF9f
ZnV0dXJlX18gaW1wb3J0IHdpdGhfc3RhdGVtZW50CitpbXBvcnQgYXJncGFyc2UKIGltcG9ydCBz
eXMKIAogaW1wb3J0IHdlYmtpdC5tZXNzYWdlcworaW1wb3J0IHdlYmtpdC5wYXJzZXIKIAogCiBk
ZWYgbWFpbihhcmd2PU5vbmUpOgotICAgIGlmIG5vdCBhcmd2OgotICAgICAgICBhcmd2ID0gc3lz
LmFyZ3YKLSAgICBpbnB1dF9wYXRoID0gYXJndlsxXQotICAgIHdpdGggb3BlbihpbnB1dF9wYXRo
KSBhcyBpbnB1dF9maWxlOgotICAgICAgICAjIFB5dGhvbiAzLCBjaGFuZ2UgdG86ICBwcmludCh3
ZWJraXQubWVzc2FnZXMuZ2VuZXJhdGVfbWVzc2FnZV9oYW5kbGVyKGlucHV0X2ZpbGUpLCBlbmQ9
JycpCi0gICAgICAgIHN5cy5zdGRvdXQud3JpdGUod2Via2l0Lm1lc3NhZ2VzLmdlbmVyYXRlX21l
c3NhZ2VfaGFuZGxlcihpbnB1dF9maWxlKSkKKyAgICBwYXJzZXIgPSBhcmdwYXJzZS5Bcmd1bWVu
dFBhcnNlcigpCisgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgnc291cmNlJykKKyAgICBwYXJzZXIu
YWRkX2FyZ3VtZW50KCctLWltcGxlbWVudGF0aW9uJywgcmVxdWlyZWQ9VHJ1ZSkKKyAgICBwYXJz
ZXIuYWRkX2FyZ3VtZW50KCctLWhlYWRlcicsIHJlcXVpcmVkPVRydWUpCisgICAgcGFyc2VyLmFk
ZF9hcmd1bWVudCgnLS1yZXBseS1oZWFkZXInLCByZXF1aXJlZD1UcnVlKQorCisgICAgYXJncyA9
IHBhcnNlci5wYXJzZV9hcmdzKCkKKworICAgIHdpdGggb3BlbihhcmdzLnNvdXJjZSkgYXMgc291
cmNlX2ZpbGU6CisgICAgICAgIHJlY2VpdmVyID0gd2Via2l0LnBhcnNlci5wYXJzZShzb3VyY2Vf
ZmlsZSkKKworICAgIHdpdGggb3BlbihhcmdzLmltcGxlbWVudGF0aW9uLCAidysiKSBhcyBpbXBs
ZW1lbnRhdGlvbl9vdXRwdXQ6CisgICAgICAgIGltcGxlbWVudGF0aW9uX291dHB1dC53cml0ZSh3
ZWJraXQubWVzc2FnZXMuZ2VuZXJhdGVfbWVzc2FnZV9oYW5kbGVyKHJlY2VpdmVyKSkKKworICAg
IHdpdGggb3BlbihhcmdzLmhlYWRlciwgIncrIikgYXMgaGVhZGVyX291dHB1dDoKKyAgICAgICAg
aGVhZGVyX291dHB1dC53cml0ZSh3ZWJraXQubWVzc2FnZXMuZ2VuZXJhdGVfbWVzc2FnZXNfaGVh
ZGVyKHJlY2VpdmVyKSkKKworICAgIHdpdGggb3BlbihhcmdzLnJlcGx5X2hlYWRlciwgIncrIikg
YXMgcmVwbHlfaGVhZGVyX291dHB1dDoKKyAgICAgICAgcmVwbHlfaGVhZGVyX291dHB1dC53cml0
ZSh3ZWJraXQubWVzc2FnZXMuZ2VuZXJhdGVfbWVzc2FnZXNfcmVwbHlfaGVhZGVyKHJlY2VpdmVy
KSkKKwogICAgIHJldHVybiAwCiAKIGlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvZ2VuZXJhdGUtbWVzc2FnZXMtaGVhZGVyLnB5IGIv
U291cmNlL1dlYktpdC9TY3JpcHRzL2dlbmVyYXRlLW1lc3NhZ2VzLWhlYWRlci5weQpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWQ3M2E1MjgzNDgzMDlhZWIyMTA4YjQ0MTk2Mzg0YTM0
N2ViYzY2Ni4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9T
b3VyY2UvV2ViS2l0L1NjcmlwdHMvZ2VuZXJhdGUtbWVzc2FnZXMtaGVhZGVyLnB5CisrKyAvZGV2
L251bGwKQEAgLTEsNDEgKzAsMCBAQAotIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCi0jCi0jIENvcHly
aWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKLSMgYXJlIG1ldDoKLSMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jICAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0j
IDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAotIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSMKLSMg
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJyBBTkQKLSMgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSMgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RQotIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUgotIyBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCi0jIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SCi0jIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCi0jIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCi0jIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLWZyb20gX19mdXR1cmVfXyBpbXBvcnQg
d2l0aF9zdGF0ZW1lbnQKLWltcG9ydCBzeXMKLQotaW1wb3J0IHdlYmtpdC5tZXNzYWdlcwotCi0K
LWRlZiBtYWluKGFyZ3Y9Tm9uZSk6Ci0gICAgaWYgbm90IGFyZ3Y6Ci0gICAgICAgIGFyZ3YgPSBz
eXMuYXJndgotICAgIGlucHV0X3BhdGggPSBhcmd2WzFdCi0gICAgd2l0aCBvcGVuKGlucHV0X3Bh
dGgpIGFzIGlucHV0X2ZpbGU6Ci0gICAgICAgICMgUHl0aG9uIDMsIGNoYW5nZSB0bzogIHByaW50
KHdlYmtpdC5tZXNzYWdlcy5nZW5lcmF0ZV9tZXNzYWdlc19oZWFkZXIoaW5wdXRfZmlsZSksIGVu
ZD0nJykKLSAgICAgICAgc3lzLnN0ZG91dC53cml0ZSh3ZWJraXQubWVzc2FnZXMuZ2VuZXJhdGVf
bWVzc2FnZXNfaGVhZGVyKGlucHV0X2ZpbGUpKQotICAgIHJldHVybiAwCi0KLWlmIF9fbmFtZV9f
ID09ICdfX21haW5fXyc6Ci0gICAgc3lzLmV4aXQobWFpbihzeXMuYXJndikpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L0xlZ2FjeU1lc3NhZ2VSZWNlaXZlci1leHBl
Y3RlZC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L0xlZ2FjeU1lc3NhZ2VSZWNl
aXZlci1leHBlY3RlZC5jcHAKaW5kZXggZmVhODUzNjc1MzU2NzcyNjJjN2Y3MjQyZjQ4Y2Q5YWM4
MzAwZjA5MC4uZDBiODY1ZjdmNzNkZTVjZjM5ZTA5NTNmZmZhODIyNzE2ZDBhYjkwNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9MZWdhY3lNZXNzYWdlUmVjZWl2ZXIt
ZXhwZWN0ZWQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvTGVnYWN5TWVz
c2FnZVJlY2VpdmVyLWV4cGVjdGVkLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTAtMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTAtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgog
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2Ny
aXB0cy93ZWJraXQvTGVnYWN5TWVzc2FnZXMtZXhwZWN0ZWQuaCBiL1NvdXJjZS9XZWJLaXQvU2Ny
aXB0cy93ZWJraXQvTGVnYWN5TWVzc2FnZXMtZXhwZWN0ZWQuaAppbmRleCBmZmQxM2QzZThjMjBj
OGI5YmRlOGMyYmEzMTUxOTkxMTRiN2ZiYWZhLi5hZWNlMTIyYTFjNjVlMDI0MzI2NmNhNzExMTBh
MGE1Zjg2ZmU2NGVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L0xl
Z2FjeU1lc3NhZ2VzLWV4cGVjdGVkLmgKKysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtp
dC9MZWdhY3lNZXNzYWdlcy1leHBlY3RlZC5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHly
aWdodCAoQykgMjAxMC0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAxMC0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUg
IkFyZ3VtZW50Q29kZXJzLmgiCiAjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIlBs
dWdpbi5oIgorI2luY2x1ZGUgIldlYlBhZ2VNZXNzYWdlc1JlcGxpZXMuaCIKICNpbmNsdWRlIDxX
ZWJDb3JlL0dyYXBoaWNzTGF5ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0tleWJvYXJkRXZlbnQu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL1BsdWdpbkRhdGEuaD4KQEAgLTM2MCw3ICszNjEsNyBAQCBw
dWJsaWM6CiAgICAgc3RhdGljIElQQzo6U3RyaW5nUmVmZXJlbmNlIG5hbWUoKSB7IHJldHVybiBJ
UEM6OlN0cmluZ1JlZmVyZW5jZSgiR2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24iKTsgfQogICAg
IHN0YXRpYyBjb25zdCBib29sIGlzU3luYyA9IHRydWU7CiAKLSAgICB1c2luZyBEZWxheWVkUmVw
bHkgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IElQQzo6Q29ubmVjdGlvbjo6SGFuZGxl
JiBjb25uZWN0aW9uSGFuZGxlKT47CisgICAgdXNpbmcgRGVsYXllZFJlcGx5ID0gR2V0UGx1Z2lu
UHJvY2Vzc0Nvbm5lY3Rpb25EZWxheWVkUmVwbHk7CiAgICAgc3RhdGljIHZvaWQgc2VuZChzdGQ6
OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYmLCBJUEM6OkNvbm5lY3Rpb24mLCBjb25zdCBJUEM6
OkNvbm5lY3Rpb246OkhhbmRsZSYgY29ubmVjdGlvbkhhbmRsZSk7CiAgICAgdXNpbmcgUmVwbHkg
PSBzdGQ6OnR1cGxlPElQQzo6Q29ubmVjdGlvbjo6SGFuZGxlJj47CiAgICAgdXNpbmcgUmVwbHlB
cmd1bWVudHMgPSBzdGQ6OnR1cGxlPElQQzo6Q29ubmVjdGlvbjo6SGFuZGxlPjsKQEAgLTM4Niw3
ICszODcsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIElQQzo6U3RyaW5nUmVmZXJlbmNlIG5hbWUo
KSB7IHJldHVybiBJUEM6OlN0cmluZ1JlZmVyZW5jZSgiVGVzdE11bHRpcGxlQXR0cmlidXRlcyIp
OyB9CiAgICAgc3RhdGljIGNvbnN0IGJvb2wgaXNTeW5jID0gdHJ1ZTsKIAotICAgIHVzaW5nIERl
bGF5ZWRSZXBseSA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT47CisgICAgdXNpbmcgRGVsYXll
ZFJlcGx5ID0gVGVzdE11bHRpcGxlQXR0cmlidXRlc0RlbGF5ZWRSZXBseTsKICAgICBzdGF0aWMg
dm9pZCBzZW5kKHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+JiYsIElQQzo6Q29ubmVjdGlv
biYpOwogICAgIHVzaW5nIFJlcGx5ID0gc3RkOjp0dXBsZTw+OwogICAgIHVzaW5nIFJlcGx5QXJn
dW1lbnRzID0gc3RkOjp0dXBsZTw+OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRz
L3dlYmtpdC9MZWdhY3lNZXNzYWdlc1JlcGxpZXMtZXhwZWN0ZWQuaCBiL1NvdXJjZS9XZWJLaXQv
U2NyaXB0cy93ZWJraXQvTGVnYWN5TWVzc2FnZXNSZXBsaWVzLWV4cGVjdGVkLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZjcwY2VhZmQ5ZmE1ZWNkY2NmYTFjMjFjMDk3YWU3NDY0OWM4ZTRmYwotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvTGVnYWN5TWVzc2FnZXNSZXBsaWVz
LWV4cGVjdGVkLmgKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMC0y
MDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
ICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycgQU5ECisgKiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyAqIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyAqIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SCisgKiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorICogQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwK
KyAqIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEg
b25jZQorCisjaWYgKEVOQUJMRShXRUJLSVQyKSAmJiAoTkVTVEVEX01BU1RFUl9DT05ESVRJT04g
fHwgTUFTVEVSX09SICYmIE1BU1RFUl9BTkQpKQorCisjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgor
I2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisKKworbmFtZXNwYWNlIE1lc3NhZ2VzIHsKK25hbWVz
cGFjZSBXZWJQYWdlIHsKKwordXNpbmcgR2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25EZWxheWVk
UmVwbHkgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IElQQzo6Q29ubmVjdGlvbjo6SGFu
ZGxlJiBjb25uZWN0aW9uSGFuZGxlKT47CisKK3VzaW5nIFRlc3RNdWx0aXBsZUF0dHJpYnV0ZXNE
ZWxheWVkUmVwbHkgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+OworCit9IC8vIG5hbWVzcGFj
ZSBXZWJQYWdlCit9IC8vIG5hbWVzcGFjZSBNZXNzYWdlcworCisjZW5kaWYgLy8gKEVOQUJMRShX
RUJLSVQyKSAmJiAoTkVTVEVEX01BU1RFUl9DT05ESVRJT04gfHwgTUFTVEVSX09SICYmIE1BU1RF
Ul9BTkQpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9NZXNzYWdl
UmVjZWl2ZXItZXhwZWN0ZWQuY3BwIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9NZXNz
YWdlUmVjZWl2ZXItZXhwZWN0ZWQuY3BwCmluZGV4IGI1Y2NlMWJhNGY1NmE3Yzg3Mzg0YTIwMjFl
NDlkODUyMmFmNjgyYzAuLmEyNWE5MTJmNjNhYThjZDc2ZjgwYmI5YzFlNTVjMjkzODMwOGU2NmYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvTWVzc2FnZVJlY2VpdmVy
LWV4cGVjdGVkLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L01lc3NhZ2VS
ZWNlaXZlci1leHBlY3RlZC5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChD
KSAyMDEwLTIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDEwLTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMv
d2Via2l0L01lc3NhZ2VSZWNlaXZlclN1cGVyY2xhc3MtZXhwZWN0ZWQuY3BwIGIvU291cmNlL1dl
YktpdC9TY3JpcHRzL3dlYmtpdC9NZXNzYWdlUmVjZWl2ZXJTdXBlcmNsYXNzLWV4cGVjdGVkLmNw
cAppbmRleCAxNDIxMmQ1YzhhYTUxMjgwNTYwMGFmYWM5YmEyNzdiZDUzMWZhMzcwLi5iNjExYjI1
ZTA4NjJkYjU5Nzk3NTk3OGRmNDA0YzhhMzUxMjc0ODcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1NjcmlwdHMvd2Via2l0L01lc3NhZ2VSZWNlaXZlclN1cGVyY2xhc3MtZXhwZWN0ZWQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvTWVzc2FnZVJlY2VpdmVyU3VwZXJj
bGFzcy1leHBlY3RlZC5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAy
MDEwLTIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDEwLTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Vi
a2l0L01lc3NhZ2VzLWV4cGVjdGVkLmggYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L01l
c3NhZ2VzLWV4cGVjdGVkLmgKaW5kZXggZmZkMTNkM2U4YzIwYzhiOWJkZThjMmJhMzE1MTk5MTE0
YjdmYmFmYS4uYWVjZTEyMmExYzY1ZTAyNDMyNjZjYTcxMTEwYTBhNWY4NmZlNjRlZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9NZXNzYWdlcy1leHBlY3RlZC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvTWVzc2FnZXMtZXhwZWN0ZWQuaApAQCAt
MSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAtMjAxOCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAtMjAxOSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAg
LTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJBcmd1bWVudENvZGVycy5oIgogI2luY2x1ZGUgIkNv
bm5lY3Rpb24uaCIKICNpbmNsdWRlICJQbHVnaW4uaCIKKyNpbmNsdWRlICJXZWJQYWdlTWVzc2Fn
ZXNSZXBsaWVzLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9HcmFwaGljc0xheWVyLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9LZXlib2FyZEV2ZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QbHVnaW5EYXRh
Lmg+CkBAIC0zNjAsNyArMzYxLDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBJUEM6OlN0cmluZ1Jl
ZmVyZW5jZSBuYW1lKCkgeyByZXR1cm4gSVBDOjpTdHJpbmdSZWZlcmVuY2UoIkdldFBsdWdpblBy
b2Nlc3NDb25uZWN0aW9uIik7IH0KICAgICBzdGF0aWMgY29uc3QgYm9vbCBpc1N5bmMgPSB0cnVl
OwogCi0gICAgdXNpbmcgRGVsYXllZFJlcGx5ID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25z
dCBJUEM6OkNvbm5lY3Rpb246OkhhbmRsZSYgY29ubmVjdGlvbkhhbmRsZSk+OworICAgIHVzaW5n
IERlbGF5ZWRSZXBseSA9IEdldFBsdWdpblByb2Nlc3NDb25uZWN0aW9uRGVsYXllZFJlcGx5Owog
ICAgIHN0YXRpYyB2b2lkIHNlbmQoc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mJiwgSVBD
OjpDb25uZWN0aW9uJiwgY29uc3QgSVBDOjpDb25uZWN0aW9uOjpIYW5kbGUmIGNvbm5lY3Rpb25I
YW5kbGUpOwogICAgIHVzaW5nIFJlcGx5ID0gc3RkOjp0dXBsZTxJUEM6OkNvbm5lY3Rpb246Okhh
bmRsZSY+OwogICAgIHVzaW5nIFJlcGx5QXJndW1lbnRzID0gc3RkOjp0dXBsZTxJUEM6OkNvbm5l
Y3Rpb246OkhhbmRsZT47CkBAIC0zODYsNyArMzg3LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBJ
UEM6OlN0cmluZ1JlZmVyZW5jZSBuYW1lKCkgeyByZXR1cm4gSVBDOjpTdHJpbmdSZWZlcmVuY2Uo
IlRlc3RNdWx0aXBsZUF0dHJpYnV0ZXMiKTsgfQogICAgIHN0YXRpYyBjb25zdCBib29sIGlzU3lu
YyA9IHRydWU7CiAKLSAgICB1c2luZyBEZWxheWVkUmVwbHkgPSBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKCk+OworICAgIHVzaW5nIERlbGF5ZWRSZXBseSA9IFRlc3RNdWx0aXBsZUF0dHJpYnV0ZXNE
ZWxheWVkUmVwbHk7CiAgICAgc3RhdGljIHZvaWQgc2VuZChzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpF
bmNvZGVyPiYmLCBJUEM6OkNvbm5lY3Rpb24mKTsKICAgICB1c2luZyBSZXBseSA9IHN0ZDo6dHVw
bGU8PjsKICAgICB1c2luZyBSZXBseUFyZ3VtZW50cyA9IHN0ZDo6dHVwbGU8PjsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvTWVzc2FnZXNSZXBsaWVzLWV4cGVjdGVk
LmggYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L01lc3NhZ2VzUmVwbGllcy1leHBlY3Rl
ZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmY3MGNlYWZkOWZhNWVjZGNjZmExYzIxYzA5N2FlNzQ2NDljOGU0ZmMK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L01lc3NhZ2Vz
UmVwbGllcy1leHBlY3RlZC5oCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTAtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorICogQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisgKiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisgKiBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUgorICogU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyAqIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksCisgKiBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
cHJhZ21hIG9uY2UKKworI2lmIChFTkFCTEUoV0VCS0lUMikgJiYgKE5FU1RFRF9NQVNURVJfQ09O
RElUSU9OIHx8IE1BU1RFUl9PUiAmJiBNQVNURVJfQU5EKSkKKworI2luY2x1ZGUgIkNvbm5lY3Rp
b24uaCIKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorCisKK25hbWVzcGFjZSBNZXNzYWdlcyB7
CituYW1lc3BhY2UgV2ViUGFnZSB7CisKK3VzaW5nIEdldFBsdWdpblByb2Nlc3NDb25uZWN0aW9u
RGVsYXllZFJlcGx5ID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBJUEM6OkNvbm5lY3Rp
b246OkhhbmRsZSYgY29ubmVjdGlvbkhhbmRsZSk+OworCit1c2luZyBUZXN0TXVsdGlwbGVBdHRy
aWJ1dGVzRGVsYXllZFJlcGx5ID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPjsKKworfSAvLyBu
YW1lc3BhY2UgV2ViUGFnZQorfSAvLyBuYW1lc3BhY2UgTWVzc2FnZXMKKworI2VuZGlmIC8vIChF
TkFCTEUoV0VCS0lUMikgJiYgKE5FU1RFRF9NQVNURVJfQ09ORElUSU9OIHx8IE1BU1RFUl9PUiAm
JiBNQVNURVJfQU5EKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQv
TWVzc2FnZXNSZXBsaWVzU3VwZXJjbGFzc1JlcGxpZXMtZXhwZWN0ZWQuaCBiL1NvdXJjZS9XZWJL
aXQvU2NyaXB0cy93ZWJraXQvTWVzc2FnZXNSZXBsaWVzU3VwZXJjbGFzc1JlcGxpZXMtZXhwZWN0
ZWQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4zZmE2M2YzZDY0OGY1YTAxNzI3ZTE1YzE0Y2FmMTEyNDYwMzI2MjA4
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9NZXNzYWdl
c1JlcGxpZXNTdXBlcmNsYXNzUmVwbGllcy1leHBlY3RlZC5oCkBAIC0wLDAgKzEsNTIgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTAtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAg
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorICogQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisgKiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMCisgKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorICogU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIK
KyAqIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisgKiBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIlRlc3RDbGFzc05hbWUu
aCIKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgor
CisKK25hbWVzcGFjZSBNZXNzYWdlcyB7CituYW1lc3BhY2UgV2ViUGFnZSB7CisKKyNpZiBFTkFC
TEUoVEVTVF9GRUFUVVJFKQordXNpbmcgVGVzdEFzeW5jTWVzc2FnZUFzeW5jUmVwbHkgPSBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKHVpbnQ2NF90IHJlc3VsdCk+OworI2VuZGlmCisKKyNpZiBFTkFC
TEUoVEVTVF9GRUFUVVJFKQordXNpbmcgVGVzdEFzeW5jTWVzc2FnZVdpdGhOb0FyZ3VtZW50c0Fz
eW5jUmVwbHkgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+OworI2VuZGlmCisKKyNpZiBFTkFC
TEUoVEVTVF9GRUFUVVJFKQordXNpbmcgVGVzdEFzeW5jTWVzc2FnZVdpdGhNdWx0aXBsZUFyZ3Vt
ZW50c0FzeW5jUmVwbHkgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wgZmxhZywgdWludDY0
X3QgdmFsdWUpPjsKKyNlbmRpZgorCit1c2luZyBUZXN0U3luY01lc3NhZ2VEZWxheWVkUmVwbHkg
PSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHVpbnQ4X3QgcmVwbHkpPjsKKwordXNpbmcgVGVzdFN5
bmNocm9ub3VzTWVzc2FnZURlbGF5ZWRSZXBseSA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29u
c3QgT3B0aW9uYWw8V2ViS2l0OjpUZXN0Q2xhc3NOYW1lPiYgb3B0aW9uYWxSZXBseSk+OworCit9
IC8vIG5hbWVzcGFjZSBXZWJQYWdlCit9IC8vIG5hbWVzcGFjZSBNZXNzYWdlcwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9NZXNzYWdlc1N1cGVyY2xhc3MtZXhwZWN0
ZWQuaCBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvTWVzc2FnZXNTdXBlcmNsYXNzLWV4
cGVjdGVkLmgKaW5kZXggMGY2ZmNjMjYxYTI5MTA1MjM4MzdkMGU2NDAyMzU1YWRlODU1YWJmNy4u
ZWU4MDcxZjVkMTcwNjczMzAyNWJlOGRmNGNhZmRkZDU0MmY3NmUxZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9NZXNzYWdlc1N1cGVyY2xhc3MtZXhwZWN0ZWQuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L01lc3NhZ2VzU3VwZXJjbGFzcy1leHBl
Y3RlZC5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMC0yMDE4IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMC0yMDE5
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwpAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIkFyZ3VtZW50Q29kZXJzLmgiCiAj
aW5jbHVkZSAiQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIlRlc3RDbGFzc05hbWUuaCIKKyNpbmNs
dWRlICJXZWJQYWdlTWVzc2FnZXNSZXBsaWVzLmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4K
ICNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNv
dW50ZWQuaD4KQEAgLTc4LDcgKzc5LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lkIGNhbGxS
ZXBseShJUEM6OkRlY29kZXImLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHVpbnQ2NF90JiYpPiYm
KTsKICAgICBzdGF0aWMgdm9pZCBjYW5jZWxSZXBseShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHVp
bnQ2NF90JiYpPiYmKTsKICAgICBzdGF0aWMgSVBDOjpTdHJpbmdSZWZlcmVuY2UgYXN5bmNNZXNz
YWdlUmVwbHlOYW1lKCkgeyByZXR1cm4geyAiVGVzdEFzeW5jTWVzc2FnZVJlcGx5IiB9OyB9Ci0g
ICAgdXNpbmcgQXN5bmNSZXBseSA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQodWludDY0X3QgcmVz
dWx0KT47CisgICAgdXNpbmcgQXN5bmNSZXBseSA9IFRlc3RBc3luY01lc3NhZ2VBc3luY1JlcGx5
OwogICAgIHN0YXRpYyB2b2lkIHNlbmQoc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mJiwg
SVBDOjpDb25uZWN0aW9uJiwgdWludDY0X3QgcmVzdWx0KTsKICAgICB1c2luZyBSZXBseSA9IHN0
ZDo6dHVwbGU8dWludDY0X3QmPjsKICAgICB1c2luZyBSZXBseUFyZ3VtZW50cyA9IHN0ZDo6dHVw
bGU8dWludDY0X3Q+OwpAQCAtMTA5LDcgKzExMCw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdm9p
ZCBjYWxsUmVwbHkoSVBDOjpEZWNvZGVyJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsK
ICAgICBzdGF0aWMgdm9pZCBjYW5jZWxSZXBseShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYp
OwogICAgIHN0YXRpYyBJUEM6OlN0cmluZ1JlZmVyZW5jZSBhc3luY01lc3NhZ2VSZXBseU5hbWUo
KSB7IHJldHVybiB7ICJUZXN0QXN5bmNNZXNzYWdlV2l0aE5vQXJndW1lbnRzUmVwbHkiIH07IH0K
LSAgICB1c2luZyBBc3luY1JlcGx5ID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPjsKKyAgICB1
c2luZyBBc3luY1JlcGx5ID0gVGVzdEFzeW5jTWVzc2FnZVdpdGhOb0FyZ3VtZW50c0FzeW5jUmVw
bHk7CiAgICAgc3RhdGljIHZvaWQgc2VuZChzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYm
LCBJUEM6OkNvbm5lY3Rpb24mKTsKICAgICB1c2luZyBSZXBseSA9IHN0ZDo6dHVwbGU8PjsKICAg
ICB1c2luZyBSZXBseUFyZ3VtZW50cyA9IHN0ZDo6dHVwbGU8PjsKQEAgLTEzNSw3ICsxMzYsNyBA
QCBwdWJsaWM6CiAgICAgc3RhdGljIHZvaWQgY2FsbFJlcGx5KElQQzo6RGVjb2RlciYsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoYm9vbCYmLCB1aW50NjRfdCYmKT4mJik7CiAgICAgc3RhdGljIHZv
aWQgY2FuY2VsUmVwbHkoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sJiYsIHVpbnQ2NF90JiYp
PiYmKTsKICAgICBzdGF0aWMgSVBDOjpTdHJpbmdSZWZlcmVuY2UgYXN5bmNNZXNzYWdlUmVwbHlO
YW1lKCkgeyByZXR1cm4geyAiVGVzdEFzeW5jTWVzc2FnZVdpdGhNdWx0aXBsZUFyZ3VtZW50c1Jl
cGx5IiB9OyB9Ci0gICAgdXNpbmcgQXN5bmNSZXBseSA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
Ym9vbCBmbGFnLCB1aW50NjRfdCB2YWx1ZSk+OworICAgIHVzaW5nIEFzeW5jUmVwbHkgPSBUZXN0
QXN5bmNNZXNzYWdlV2l0aE11bHRpcGxlQXJndW1lbnRzQXN5bmNSZXBseTsKICAgICBzdGF0aWMg
dm9pZCBzZW5kKHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+JiYsIElQQzo6Q29ubmVjdGlv
biYsIGJvb2wgZmxhZywgdWludDY0X3QgdmFsdWUpOwogICAgIHVzaW5nIFJlcGx5ID0gc3RkOjp0
dXBsZTxib29sJiwgdWludDY0X3QmPjsKICAgICB1c2luZyBSZXBseUFyZ3VtZW50cyA9IHN0ZDo6
dHVwbGU8Ym9vbCwgdWludDY0X3Q+OwpAQCAtMTU3LDcgKzE1OCw3IEBAIHB1YmxpYzoKICAgICBz
dGF0aWMgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbmFtZSgpIHsgcmV0dXJuIElQQzo6U3RyaW5nUmVm
ZXJlbmNlKCJUZXN0U3luY01lc3NhZ2UiKTsgfQogICAgIHN0YXRpYyBjb25zdCBib29sIGlzU3lu
YyA9IHRydWU7CiAKLSAgICB1c2luZyBEZWxheWVkUmVwbHkgPSBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKHVpbnQ4X3QgcmVwbHkpPjsKKyAgICB1c2luZyBEZWxheWVkUmVwbHkgPSBUZXN0U3luY01l
c3NhZ2VEZWxheWVkUmVwbHk7CiAgICAgc3RhdGljIHZvaWQgc2VuZChzdGQ6OnVuaXF1ZV9wdHI8
SVBDOjpFbmNvZGVyPiYmLCBJUEM6OkNvbm5lY3Rpb24mLCB1aW50OF90IHJlcGx5KTsKICAgICB1
c2luZyBSZXBseSA9IHN0ZDo6dHVwbGU8dWludDhfdCY+OwogICAgIHVzaW5nIFJlcGx5QXJndW1l
bnRzID0gc3RkOjp0dXBsZTx1aW50OF90PjsKQEAgLTE4Myw3ICsxODQsNyBAQCBwdWJsaWM6CiAg
ICAgc3RhdGljIElQQzo6U3RyaW5nUmVmZXJlbmNlIG5hbWUoKSB7IHJldHVybiBJUEM6OlN0cmlu
Z1JlZmVyZW5jZSgiVGVzdFN5bmNocm9ub3VzTWVzc2FnZSIpOyB9CiAgICAgc3RhdGljIGNvbnN0
IGJvb2wgaXNTeW5jID0gdHJ1ZTsKIAotICAgIHVzaW5nIERlbGF5ZWRSZXBseSA9IENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoY29uc3QgT3B0aW9uYWw8V2ViS2l0OjpUZXN0Q2xhc3NOYW1lPiYgb3B0
aW9uYWxSZXBseSk+OworICAgIHVzaW5nIERlbGF5ZWRSZXBseSA9IFRlc3RTeW5jaHJvbm91c01l
c3NhZ2VEZWxheWVkUmVwbHk7CiAgICAgc3RhdGljIHZvaWQgc2VuZChzdGQ6OnVuaXF1ZV9wdHI8
SVBDOjpFbmNvZGVyPiYmLCBJUEM6OkNvbm5lY3Rpb24mLCBjb25zdCBPcHRpb25hbDxXZWJLaXQ6
OlRlc3RDbGFzc05hbWU+JiBvcHRpb25hbFJlcGx5KTsKICAgICB1c2luZyBSZXBseSA9IHN0ZDo6
dHVwbGU8T3B0aW9uYWw8V2ViS2l0OjpUZXN0Q2xhc3NOYW1lPiY+OwogICAgIHVzaW5nIFJlcGx5
QXJndW1lbnRzID0gc3RkOjp0dXBsZTxPcHRpb25hbDxXZWJLaXQ6OlRlc3RDbGFzc05hbWU+PjsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkgYi9T
b3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CmluZGV4IDM1NjEzNGJiYzcz
MDAxYjljMWQ3OTQ1MzAxYjQxYTBjNDQzNTdiZmYuLjIxZGU2ODU2ZTA3OTQ0ZjhiMTc2ZWQ4Yjdi
OTM5NmM2NWMwMzZkYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQv
bWVzc2FnZXMucHkKKysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5w
eQpAQCAtMzIsNyArMzIsNyBAQCBTWU5DSFJPTk9VU19BVFRSSUJVVEUgPSAnU3luY2hyb25vdXMn
CiBBU1lOQ19BVFRSSUJVVEUgPSAnQXN5bmMnCiAKIF9saWNlbnNlX2hlYWRlciA9ICIiIi8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTAtMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTAtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTExMyw5ICsxMTMsMjkgQEAg
ZGVmIHJlcGx5X2FyZ3VtZW50c190eXBlKG1lc3NhZ2UpOgogICAgIHJldHVybiAnc3RkOjp0dXBs
ZTwlcz4nICUgKCcsICcuam9pbihwYXJhbWV0ZXIudHlwZSBmb3IgcGFyYW1ldGVyIGluIG1lc3Nh
Z2UucmVwbHlfcGFyYW1ldGVycykpCiAKIAorZGVmIG1lc3NhZ2VfdG9fcmVwbHlfZm9yd2FyZF9k
ZWNsYXJhdGlvbihtZXNzYWdlKToKKyAgICByZXN1bHQgPSBbXQorCisgICAgaWYgbWVzc2FnZS5y
ZXBseV9wYXJhbWV0ZXJzICE9IE5vbmUgYW5kIChtZXNzYWdlLmhhc19hdHRyaWJ1dGUoU1lOQ0hS
T05PVVNfQVRUUklCVVRFKSBvciBtZXNzYWdlLmhhc19hdHRyaWJ1dGUoQVNZTkNfQVRUUklCVVRF
KSk6CisgICAgICAgIHNlbmRfcGFyYW1ldGVycyA9IFsoZnVuY3Rpb25fcGFyYW1ldGVyX3R5cGUo
eC50eXBlLCB4LmtpbmQpLCB4Lm5hbWUpIGZvciB4IGluIG1lc3NhZ2UucmVwbHlfcGFyYW1ldGVy
c10KKyAgICAgICAgY29tcGxldGlvbl9oYW5kbGVyX3BhcmFtZXRlcnMgPSAnJXMnICUgJywgJy5q
b2luKFsnICcuam9pbih4KSBmb3IgeCBpbiBzZW5kX3BhcmFtZXRlcnNdKQorCisgICAgICAgIGlm
IG1lc3NhZ2UuaGFzX2F0dHJpYnV0ZShBU1lOQ19BVFRSSUJVVEUpOgorICAgICAgICAgICAgcmVz
dWx0LmFwcGVuZCgndXNpbmcgJXNBc3luY1JlcGx5JyAlIG1lc3NhZ2UubmFtZSkKKyAgICAgICAg
ZWxzZToKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJ3VzaW5nICVzRGVsYXllZFJlcGx5JyAl
IG1lc3NhZ2UubmFtZSkKKyAgICAgICAgcmVzdWx0LmFwcGVuZCgnID0gQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZCglcyk+O1xuJyAlIGNvbXBsZXRpb25faGFuZGxlcl9wYXJhbWV0ZXJzKQorCisgICAg
aWYgbm90IHJlc3VsdDoKKyAgICAgICAgcmV0dXJuIE5vbmUKKworICAgIHJldHVybiBzdXJyb3Vu
ZF9pbl9jb25kaXRpb24oJycuam9pbihyZXN1bHQpLCBtZXNzYWdlLmNvbmRpdGlvbikKKworCiBk
ZWYgbWVzc2FnZV90b19zdHJ1Y3RfZGVjbGFyYXRpb24obWVzc2FnZSk6CiAgICAgcmVzdWx0ID0g
W10KICAgICBmdW5jdGlvbl9wYXJhbWV0ZXJzID0gWyhmdW5jdGlvbl9wYXJhbWV0ZXJfdHlwZSh4
LnR5cGUsIHgua2luZCksIHgubmFtZSkgZm9yIHggaW4gbWVzc2FnZS5wYXJhbWV0ZXJzXQorCiAg
ICAgcmVzdWx0LmFwcGVuZCgnY2xhc3MgJXMge1xuJyAlIG1lc3NhZ2UubmFtZSkKICAgICByZXN1
bHQuYXBwZW5kKCdwdWJsaWM6XG4nKQogICAgIHJlc3VsdC5hcHBlbmQoJyAgICB0eXBlZGVmICVz
IEFyZ3VtZW50cztcbicgJSBhcmd1bWVudHNfdHlwZShtZXNzYWdlKSkKQEAgLTEzMiwxMSArMTUy
LDEwIEBAIGRlZiBtZXNzYWdlX3RvX3N0cnVjdF9kZWNsYXJhdGlvbihtZXNzYWdlKToKICAgICAg
ICAgICAgIHJlc3VsdC5hcHBlbmQoJyAgICBzdGF0aWMgdm9pZCBjYWxsUmVwbHkoSVBDOjpEZWNv
ZGVyJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCglcyk+JiYpO1xuJyAlIG1vdmVfcGFyYW1ldGVy
cykKICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyAgICBzdGF0aWMgdm9pZCBjYW5jZWxSZXBs
eShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCVzKT4mJik7XG4nICUgbW92ZV9wYXJhbWV0ZXJzKQog
ICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnICAgIHN0YXRpYyBJUEM6OlN0cmluZ1JlZmVyZW5j
ZSBhc3luY01lc3NhZ2VSZXBseU5hbWUoKSB7IHJldHVybiB7ICIlc1JlcGx5IiB9OyB9XG4nICUg
bWVzc2FnZS5uYW1lKQotICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnICAgIHVzaW5nIEFzeW5j
UmVwbHknKQorICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnICAgIHVzaW5nIEFzeW5jUmVwbHkg
PSAlc0FzeW5jUmVwbHk7XG4nICUgbWVzc2FnZS5uYW1lKQogICAgICAgICBlbGlmIG1lc3NhZ2Uu
aGFzX2F0dHJpYnV0ZShTWU5DSFJPTk9VU19BVFRSSUJVVEUpOgotICAgICAgICAgICAgcmVzdWx0
LmFwcGVuZCgnICAgIHVzaW5nIERlbGF5ZWRSZXBseScpCisgICAgICAgICAgICByZXN1bHQuYXBw
ZW5kKCcgICAgdXNpbmcgRGVsYXllZFJlcGx5ID0gJXNEZWxheWVkUmVwbHk7XG4nICUgbWVzc2Fn
ZS5uYW1lKQogICAgICAgICBpZiBtZXNzYWdlLmhhc19hdHRyaWJ1dGUoU1lOQ0hST05PVVNfQVRU
UklCVVRFKSBvciBtZXNzYWdlLmhhc19hdHRyaWJ1dGUoQVNZTkNfQVRUUklCVVRFKToKLSAgICAg
ICAgICAgIHJlc3VsdC5hcHBlbmQoJyA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoJXMpPjtcbicg
JSBjb21wbGV0aW9uX2hhbmRsZXJfcGFyYW1ldGVycykKICAgICAgICAgICAgIHJlc3VsdC5hcHBl
bmQoJyAgICBzdGF0aWMgdm9pZCBzZW5kKHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+JiYs
IElQQzo6Q29ubmVjdGlvbiYnKQogICAgICAgICAgICAgaWYgbGVuKHNlbmRfcGFyYW1ldGVycyk6
CiAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnLCAlcycgJSBjb21wbGV0aW9uX2hhbmRs
ZXJfcGFyYW1ldGVycykKQEAgLTE4MCwyNyArMTk5LDggQEAgZGVmIGZvcndhcmRfZGVjbGFyYXRp
b25zX2Zvcl9uYW1lc3BhY2UobmFtZXNwYWNlLCBraW5kX2FuZF90eXBlcyk6CiAgICAgcmV0dXJu
ICcnLmpvaW4ocmVzdWx0KQogCiAKLWRlZiBmb3J3YXJkX2RlY2xhcmF0aW9uc19hbmRfaGVhZGVy
cyhyZWNlaXZlcik6Ci0gICAgdHlwZXNfYnlfbmFtZXNwYWNlID0gY29sbGVjdGlvbnMuZGVmYXVs
dGRpY3Qoc2V0KQotCi0gICAgaGVhZGVycyA9IHNldChbCi0gICAgICAgICciQXJndW1lbnRDb2Rl
cnMuaCInLAotICAgICAgICAnPHd0Zi9Gb3J3YXJkLmg+JywKLSAgICBdKQotCi0gICAgaGVhZGVy
X2NvbmRpdGlvbnMgPSB7Ci0gICAgICAgICciTGF5ZXJIb3N0aW5nQ29udGV4dC5oIic6IFsiUExB
VEZPUk0oQ09DT0EpIiwgXSwKLSAgICB9Ci0KLSAgICBub25fdGVtcGxhdGVfd3RmX3R5cGVzID0g
ZnJvemVuc2V0KFsKLSAgICAgICAgJ01hY2hTZW5kUmlnaHQnLAotICAgICAgICAnU3RyaW5nJywK
LSAgICBdKQotCi0gICAgaGVhZGVycy5hZGQoJyJDb25uZWN0aW9uLmgiJykKLSAgICBoZWFkZXJz
LmFkZCgnPHd0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5oPicpCi0KLSAgICBub19mb3J3YXJkX2Rl
Y2xhcmF0aW9uX3R5cGVzID0gZnJvemVuc2V0KFsKK2RlZiB0eXBlc190aGF0X2Nhbm5vdF9iZV9m
b3J3YXJkX2RlY2xhcmVkKCk6CisgICAgcmV0dXJuIGZyb3plbnNldChbCiAgICAgICAgICdNYWNo
U2VuZFJpZ2h0JywKICAgICAgICAgJ1N0cmluZycsCiAgICAgICAgICdXZWJDb3JlOjpEb2N1bWVu
dElkZW50aWZpZXInLApAQCAtMjI2LDYgKzIyNiwzMyBAQCBkZWYgZm9yd2FyZF9kZWNsYXJhdGlv
bnNfYW5kX2hlYWRlcnMocmVjZWl2ZXIpOgogICAgICAgICAnV2ViS2l0OjpXZWJQYWdlUHJveHlJ
ZGVudGlmaWVyJywKICAgICBdKQogCisKK2RlZiBjb25kaXRpb25zX2Zvcl9oZWFkZXIoaGVhZGVy
KToKKyAgICBjb25kaXRpb25zID0geworICAgICAgICAnIkxheWVySG9zdGluZ0NvbnRleHQuaCIn
OiBbIlBMQVRGT1JNKENPQ09BKSIsIF0sCisgICAgfQorICAgIGlmIG5vdCBoZWFkZXIgaW4gY29u
ZGl0aW9uczoKKyAgICAgICAgcmV0dXJuIE5vbmUKKyAgICByZXR1cm4gY29uZGl0aW9uc1toZWFk
ZXJdCisKKworZGVmIGZvcndhcmRfZGVjbGFyYXRpb25zX2FuZF9oZWFkZXJzKHJlY2VpdmVyKToK
KyAgICB0eXBlc19ieV9uYW1lc3BhY2UgPSBjb2xsZWN0aW9ucy5kZWZhdWx0ZGljdChzZXQpCisK
KyAgICBoZWFkZXJzID0gc2V0KFsKKyAgICAgICAgJyJBcmd1bWVudENvZGVycy5oIicsCisgICAg
ICAgICc8d3RmL0ZvcndhcmQuaD4nLAorICAgICAgICAnIkNvbm5lY3Rpb24uaCInLAorICAgICAg
ICAnPHd0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5oPicsCisgICAgICAgICciJXNNZXNzYWdlc1Jl
cGxpZXMuaCInICUgcmVjZWl2ZXIubmFtZSwKKyAgICBdKQorCisgICAgbm9uX3RlbXBsYXRlX3d0
Zl90eXBlcyA9IGZyb3plbnNldChbCisgICAgICAgICdNYWNoU2VuZFJpZ2h0JywKKyAgICAgICAg
J1N0cmluZycsCisgICAgXSkKKworICAgIG5vX2ZvcndhcmRfZGVjbGFyYXRpb25fdHlwZXMgPSB0
eXBlc190aGF0X2Nhbm5vdF9iZV9mb3J3YXJkX2RlY2xhcmVkKCkKICAgICBmb3IgcGFyYW1ldGVy
IGluIHJlY2VpdmVyLml0ZXJwYXJhbWV0ZXJzKCk6CiAgICAgICAgIGtpbmQgPSBwYXJhbWV0ZXIu
a2luZAogICAgICAgICB0eXBlID0gcGFyYW1ldGVyLnR5cGUKQEAgLTI1NCw4ICsyODEsNjYgQEAg
ZGVmIGZvcndhcmRfZGVjbGFyYXRpb25zX2FuZF9oZWFkZXJzKHJlY2VpdmVyKToKIAogICAgIGhl
YWRlcl9pbmNsdWRlcyA9IFtdCiAgICAgZm9yIGhlYWRlciBpbiBzb3J0ZWQoaGVhZGVycyk6Ci0g
ICAgICAgIGlmIGhlYWRlciBpbiBoZWFkZXJfY29uZGl0aW9ucyBhbmQgbm90IE5vbmUgaW4gaGVh
ZGVyX2NvbmRpdGlvbnNbaGVhZGVyXToKLSAgICAgICAgICAgIGhlYWRlcl9pbmNsdWRlID0gJyNp
ZiAlc1xuJyAlICcgfHwgJy5qb2luKHNldChoZWFkZXJfY29uZGl0aW9uc1toZWFkZXJdKSkKKyAg
ICAgICAgY29uZGl0aW9ucyA9IGNvbmRpdGlvbnNfZm9yX2hlYWRlcihoZWFkZXIpCisgICAgICAg
IGlmIGNvbmRpdGlvbnMgYW5kIG5vdCBOb25lIGluIGNvbmRpdGlvbnM6CisgICAgICAgICAgICBo
ZWFkZXJfaW5jbHVkZSA9ICcjaWYgJXNcbicgJSAnIHx8ICcuam9pbihzZXQoY29uZGl0aW9ucykp
CisgICAgICAgICAgICBoZWFkZXJfaW5jbHVkZSArPSAnI2luY2x1ZGUgJXNcbicgJSBoZWFkZXIK
KyAgICAgICAgICAgIGhlYWRlcl9pbmNsdWRlICs9ICcjZW5kaWZcbicKKyAgICAgICAgICAgIGhl
YWRlcl9pbmNsdWRlcy5hcHBlbmQoaGVhZGVyX2luY2x1ZGUpCisgICAgICAgIGVsc2U6CisgICAg
ICAgICAgICBoZWFkZXJfaW5jbHVkZXMuYXBwZW5kKCcjaW5jbHVkZSAlc1xuJyAlIGhlYWRlcikK
KworICAgIHJldHVybiAoZm9yd2FyZF9kZWNsYXJhdGlvbnMsIGhlYWRlcl9pbmNsdWRlcykKKwor
CitkZWYgZm9yd2FyZF9kZWNsYXJhdGlvbnNfYW5kX2hlYWRlcnNfZm9yX3JlcGxpZXMocmVjZWl2
ZXIpOgorICAgIHR5cGVzX2J5X25hbWVzcGFjZSA9IGNvbGxlY3Rpb25zLmRlZmF1bHRkaWN0KHNl
dCkKKworICAgIGhlYWRlcnMgPSBzZXQoWworICAgICAgICAnPHd0Zi9Gb3J3YXJkLmg+JywKKyAg
ICBdKQorCisgICAgbm9uX3RlbXBsYXRlX3d0Zl90eXBlcyA9IGZyb3plbnNldChbCisgICAgICAg
ICdNYWNoU2VuZFJpZ2h0JywKKyAgICAgICAgJ1N0cmluZycsCisgICAgXSkKKworICAgIG5vX2Zv
cndhcmRfZGVjbGFyYXRpb25fdHlwZXMgPSB0eXBlc190aGF0X2Nhbm5vdF9iZV9mb3J3YXJkX2Rl
Y2xhcmVkKCkKKyAgICBmb3IgbWVzc2FnZSBpbiByZWNlaXZlci5tZXNzYWdlczoKKyAgICAgICAg
aWYgbWVzc2FnZS5yZXBseV9wYXJhbWV0ZXJzID09IE5vbmUgb3Igbm90IChtZXNzYWdlLmhhc19h
dHRyaWJ1dGUoU1lOQ0hST05PVVNfQVRUUklCVVRFKSBvciBtZXNzYWdlLmhhc19hdHRyaWJ1dGUo
QVNZTkNfQVRUUklCVVRFKSk6CisgICAgICAgICAgICBjb250aW51ZQorCisgICAgICAgIGZvciBw
YXJhbWV0ZXIgaW4gbWVzc2FnZS5yZXBseV9wYXJhbWV0ZXJzOgorICAgICAgICAgICAga2luZCA9
IHBhcmFtZXRlci5raW5kCisgICAgICAgICAgICB0eXBlID0gcGFyYW1ldGVyLnR5cGUKKworICAg
ICAgICAgICAgaWYgdHlwZS5maW5kKCc8JykgIT0gLTEgb3IgdHlwZSBpbiBub19mb3J3YXJkX2Rl
Y2xhcmF0aW9uX3R5cGVzOgorICAgICAgICAgICAgICAgICMgRG9uJ3QgZm9yd2FyZCBkZWNsYXJl
IGNsYXNzIHRlbXBsYXRlcy4KKyAgICAgICAgICAgICAgICBoZWFkZXJzLnVwZGF0ZShoZWFkZXJz
X2Zvcl90eXBlKHR5cGUpKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlCisKKyAgICAgICAgICAg
IHNwbGl0ID0gdHlwZS5zcGxpdCgnOjonKQorCisgICAgICAgICAgICAjIEhhbmRsZSBXVEYgdHlw
ZXMgZXZlbiBpZiB0aGUgV1RGOjogcHJlZml4IGlzIG5vdCBnaXZlbgorICAgICAgICAgICAgaWYg
c3BsaXRbMF0gaW4gbm9uX3RlbXBsYXRlX3d0Zl90eXBlczoKKyAgICAgICAgICAgICAgICBzcGxp
dC5pbnNlcnQoMCwgJ1dURicpCisKKyAgICAgICAgICAgIGlmIGxlbihzcGxpdCkgPT0gMjoKKyAg
ICAgICAgICAgICAgICBuYW1lc3BhY2UgPSBzcGxpdFswXQorICAgICAgICAgICAgICAgIGlubmVy
X3R5cGUgPSBzcGxpdFsxXQorICAgICAgICAgICAgICAgIHR5cGVzX2J5X25hbWVzcGFjZVtuYW1l
c3BhY2VdLmFkZCgoa2luZCwgaW5uZXJfdHlwZSkpCisgICAgICAgICAgICBlbGlmIGxlbihzcGxp
dCkgPiAyOgorICAgICAgICAgICAgICAgICMgV2UgcHJvYmFibHkgaGF2ZSBhIG5lc3RlZCBzdHJ1
Y3QsIHdoaWNoIG1lYW5zIHdlIGNhbid0IGZvcndhcmQgZGVjbGFyZSBpdC4KKyAgICAgICAgICAg
ICAgICAjIEluY2x1ZGUgaXRzIGhlYWRlciBpbnN0ZWFkLgorICAgICAgICAgICAgICAgIGhlYWRl
cnMudXBkYXRlKGhlYWRlcnNfZm9yX3R5cGUodHlwZSkpCisKKyAgICBmb3J3YXJkX2RlY2xhcmF0
aW9ucyA9ICdcbicuam9pbihbZm9yd2FyZF9kZWNsYXJhdGlvbnNfZm9yX25hbWVzcGFjZShuYW1l
c3BhY2UsIHR5cGVzKSBmb3IgKG5hbWVzcGFjZSwgdHlwZXMpIGluIHNvcnRlZCh0eXBlc19ieV9u
YW1lc3BhY2UuaXRlbXMoKSldKQorCisgICAgaGVhZGVyX2luY2x1ZGVzID0gW10KKyAgICBmb3Ig
aGVhZGVyIGluIHNvcnRlZChoZWFkZXJzKToKKyAgICAgICAgY29uZGl0aW9ucyA9IGNvbmRpdGlv
bnNfZm9yX2hlYWRlcihoZWFkZXIpCisgICAgICAgIGlmIGNvbmRpdGlvbnMgYW5kIG5vdCBOb25l
IGluIGNvbmRpdGlvbnM6CisgICAgICAgICAgICBoZWFkZXJfaW5jbHVkZSA9ICcjaWYgJXNcbicg
JSAnIHx8ICcuam9pbihzZXQoY29uZGl0aW9ucykpCiAgICAgICAgICAgICBoZWFkZXJfaW5jbHVk
ZSArPSAnI2luY2x1ZGUgJXNcbicgJSBoZWFkZXIKICAgICAgICAgICAgIGhlYWRlcl9pbmNsdWRl
ICs9ICcjZW5kaWZcbicKICAgICAgICAgICAgIGhlYWRlcl9pbmNsdWRlcy5hcHBlbmQoaGVhZGVy
X2luY2x1ZGUpCkBAIC0yNjUsOSArMzUwLDM4IEBAIGRlZiBmb3J3YXJkX2RlY2xhcmF0aW9uc19h
bmRfaGVhZGVycyhyZWNlaXZlcik6CiAgICAgcmV0dXJuIChmb3J3YXJkX2RlY2xhcmF0aW9ucywg
aGVhZGVyX2luY2x1ZGVzKQogCiAKLWRlZiBnZW5lcmF0ZV9tZXNzYWdlc19oZWFkZXIoZmlsZSk6
Ci0gICAgcmVjZWl2ZXIgPSBwYXJzZXIucGFyc2UoZmlsZSkKK2RlZiBnZW5lcmF0ZV9tZXNzYWdl
c19yZXBseV9oZWFkZXIocmVjZWl2ZXIpOgorICAgIHJlc3VsdCA9IFtdCisKKyAgICByZXN1bHQu
YXBwZW5kKF9saWNlbnNlX2hlYWRlcikKKworICAgIHJlc3VsdC5hcHBlbmQoJyNwcmFnbWEgb25j
ZVxuJykKKyAgICByZXN1bHQuYXBwZW5kKCdcbicpCisKKyAgICBpZiByZWNlaXZlci5jb25kaXRp
b246CisgICAgICAgIHJlc3VsdC5hcHBlbmQoJyNpZiAlc1xuXG4nICUgcmVjZWl2ZXIuY29uZGl0
aW9uKQorCisgICAgZm9yd2FyZF9kZWNsYXJhdGlvbnMsIGhlYWRlcnMgPSBmb3J3YXJkX2RlY2xh
cmF0aW9uc19hbmRfaGVhZGVyc19mb3JfcmVwbGllcyhyZWNlaXZlcikKKworICAgIHJlc3VsdCAr
PSBoZWFkZXJzCisgICAgcmVzdWx0LmFwcGVuZCgnXG4nKQorCisgICAgcmVzdWx0LmFwcGVuZChm
b3J3YXJkX2RlY2xhcmF0aW9ucykKKyAgICByZXN1bHQuYXBwZW5kKCdcbicpCisKKyAgICByZXN1
bHQuYXBwZW5kKCduYW1lc3BhY2UgTWVzc2FnZXMge1xubmFtZXNwYWNlICVzIHtcbicgJSByZWNl
aXZlci5uYW1lKQorICAgIHJlc3VsdC5hcHBlbmQoJ1xuJykKKyAgICByZXN1bHQuYXBwZW5kKCdc
bicuam9pbihmaWx0ZXIoTm9uZSwgW21lc3NhZ2VfdG9fcmVwbHlfZm9yd2FyZF9kZWNsYXJhdGlv
bih4KSBmb3IgeCBpbiByZWNlaXZlci5tZXNzYWdlc10pKSkKKyAgICByZXN1bHQuYXBwZW5kKCdc
bicpCisgICAgcmVzdWx0LmFwcGVuZCgnfSAvLyBuYW1lc3BhY2UgJXNcbn0gLy8gbmFtZXNwYWNl
IE1lc3NhZ2VzXG4nICUgcmVjZWl2ZXIubmFtZSkKKworICAgIGlmIHJlY2VpdmVyLmNvbmRpdGlv
bjoKKyAgICAgICAgcmVzdWx0LmFwcGVuZCgnXG4jZW5kaWYgLy8gJXNcbicgJSByZWNlaXZlci5j
b25kaXRpb24pCisKKyAgICByZXR1cm4gJycuam9pbihyZXN1bHQpCisKIAorZGVmIGdlbmVyYXRl
X21lc3NhZ2VzX2hlYWRlcihyZWNlaXZlcik6CiAgICAgcmVzdWx0ID0gW10KIAogICAgIHJlc3Vs
dC5hcHBlbmQoX2xpY2Vuc2VfaGVhZGVyKQpAQCAtNTE1LDggKzYyOSw3IEBAIGRlZiBoZWFkZXJz
X2Zvcl90eXBlKHR5cGUpOgogICAgIHJldHVybiBoZWFkZXJzCiAKIAotZGVmIGdlbmVyYXRlX21l
c3NhZ2VfaGFuZGxlcihmaWxlKToKLSAgICByZWNlaXZlciA9IHBhcnNlci5wYXJzZShmaWxlKQor
ZGVmIGdlbmVyYXRlX21lc3NhZ2VfaGFuZGxlcihyZWNlaXZlcik6CiAgICAgaGVhZGVyX2NvbmRp
dGlvbnMgPSB7CiAgICAgICAgICciJXMiJyAlIG1lc3NhZ2VzX2hlYWRlcl9maWxlbmFtZShyZWNl
aXZlcik6IFtOb25lXSwKICAgICAgICAgJyJIYW5kbGVNZXNzYWdlLmgiJzogW05vbmVdLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFD
YXB0dXJlTWFuYWdlclByb3h5LmNwcAppbmRleCA5MWNmOTQ4MGM3NTE4Y2Q5YmIxN2U5ZmNhNGU5
MTZkMGIwNzNiMDhiLi5lNTE3N2QwMjQ3YmYzZjcxMDk5M2U4YzQ4MTQ1NDQ4ZDQyMmYwMzgxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJl
TWFuYWdlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcApAQCAtMzAsNiArMzAsNyBAQAogCiAjaW5jbHVk
ZSAiU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UuaCIKICNpbmNsdWRlICJVc2VyTWVkaWFDYXB0dXJl
TWFuYWdlck1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94
eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCiAjaW5jbHVk
ZSAiV2ViUHJvY2Vzc1Byb3h5LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9DQVJpbmdCdWZmZXIuaD4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyUHJveHkuaAppbmRleCA5YmRkYjk5MDlkZjdlOGZlZjFlNTQ4MDZjYmU2
YmM1YzQwY2ZjNTgxLi40NDQ2MGQ0ZDk0MDBiNmQxMTYxMzdmNTJmZDYwNTU3Yjg0OTgxZDI1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJl
TWFuYWdlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oCkBAIC0zMCw3ICszMCw2IEBACiAjaW5jbHVkZSAiQ29u
bmVjdGlvbi5oIgogI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgogI2luY2x1ZGUgIlVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyLmgiCi0jaW5jbHVkZSAiVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQ
cm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlLmg+
CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvRG93bmxvYWRzL0Rvd25sb2FkUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Rv
d25sb2Fkcy9Eb3dubG9hZFByb3h5LmgKaW5kZXggNjNiMGY4NTgxY2EyZTliYWExYTY1NDZhODE4
MjI2YjE2YjIwNzUzOC4uY2QwYjAwZTU3MzExNGU3NzkzNmNiNzhkNzE4NWM1NjA5N2NlZTgzZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkUHJv
eHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRQcm94
eS5oCkBAIC0yOCw3ICsyOCw2IEBACiAjaW5jbHVkZSAiQVBJT2JqZWN0LmgiCiAjaW5jbHVkZSAi
Q29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIkRvd25sb2FkSUQuaCIKLSNpbmNsdWRlICJEb3dubG9h
ZFByb3h5TWVzc2FnZXMuaCIKICNpbmNsdWRlICJTYW5kYm94RXh0ZW5zaW9uLmgiCiAjaW5jbHVk
ZSA8V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vz
c1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nl
c3NQcm94eS5jcHAKaW5kZXggNmMxOTA1MjlkYWVlMTBiMDQwZWQ3YjEwNGNkZDMzNjU2MmViMzVh
Ny4uMTI1MzQ3YmYzNmRjZDViNzMyNWFlODAzM2RiYWY5M2JiZDNhNjUyOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHku
Y3BwCkBAIC0zOSw2ICszOSw3IEBACiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9u
SW5mby5oIgogI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCiAj
aW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NNZXNzYWdlcy5oIgorI2luY2x1ZGUgIk5ldHdvcmtQcm9j
ZXNzUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlNhbmRib3hFeHRlbnNpb24uaCIKICNpZiBI
QVZFKFNFQ19LRVlfUFJPWFkpCiAjaW5jbHVkZSAiU2VjS2V5UHJveHlTdG9yZS5oIgpAQCAtNTEs
NiArNTIsNyBAQAogI2luY2x1ZGUgIldlYlByb2Nlc3NNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldl
YlByb2Nlc3NQb29sLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5LmgiCisjaW5jbHVkZSAi
V2ViUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzU3RvcmUuaCIKICNpbmNsdWRlICJXZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eS5o
IgogI2luY2x1ZGUgIldlYnNpdGVEYXRhLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oCmluZGV4IGRhNGJlZDI2ODI4MThi
NDNkYTQzODg4MWI1NjhlY2MwYmFkNTY2NGQuLjM1ZTA0M2U1NTJjYTBkMzk1MDg3N2E4NWM4OGVh
NTBlZWZiYmQyOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsv
TmV0d29ya1Byb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdv
cmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oCkBAIC0yNiwyMSArMjYsMjMgQEAKICNwcmFnbWEgb25j
ZQogCiAjaW5jbHVkZSAiQXV4aWxpYXJ5UHJvY2Vzc1Byb3h5LmgiCi0jaWYgRU5BQkxFKExFR0FD
WV9DVVNUT01fUFJPVE9DT0xfTUFOQUdFUikKLSNpbmNsdWRlICJMZWdhY3lDdXN0b21Qcm90b2Nv
bE1hbmFnZXJQcm94eS5oIgotI2VuZGlmCi0jaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NQcm94eU1l
c3NhZ2VzLmgiCisjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NQcm94eU1lc3NhZ2VzUmVwbGllcy5o
IgogI2luY2x1ZGUgIlByb2Nlc3NMYXVuY2hlci5oIgogI2luY2x1ZGUgIlByb2Nlc3NUaHJvdHRs
ZXIuaCIKICNpbmNsdWRlICJQcm9jZXNzVGhyb3R0bGVyQ2xpZW50LmgiCiAjaW5jbHVkZSAiVXNl
ckNvbnRlbnRDb250cm9sbGVySWRlbnRpZmllci5oIgotI2luY2x1ZGUgIldlYlByb2Nlc3NQcm94
eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5TWVzc2FnZXNSZXBsaWVzLmgi
CiAjaW5jbHVkZSAiV2Vic2l0ZURhdGFTdG9yZS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQ3Jvc3NT
aXRlTmF2aWdhdGlvbkRhdGFUcmFuc2Zlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVJZGVu
dGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZWdpc3RyYWJsZURvbWFpbi5oPgogI2luY2x1
ZGUgPG1lbW9yeT4KICNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KIAorI2lmIEVOQUJMRShMRUdBQ1lf
Q1VTVE9NX1BST1RPQ09MX01BTkFHRVIpCisjaW5jbHVkZSAiTGVnYWN5Q3VzdG9tUHJvdG9jb2xN
YW5hZ2VyUHJveHkuaCIKKyNlbmRpZgorCiBuYW1lc3BhY2UgUEFMIHsKIGNsYXNzIFNlc3Npb25J
RDsKIH0KQEAgLTg3LDcgKzg5LDcgQEAgcHVibGljOgogICAgIGV4cGxpY2l0IE5ldHdvcmtQcm9j
ZXNzUHJveHkoV2ViUHJvY2Vzc1Bvb2wmKTsKICAgICB+TmV0d29ya1Byb2Nlc3NQcm94eSgpOwog
Ci0gICAgdm9pZCBnZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oV2ViUHJvY2Vzc1Byb3h5Jiwg
TWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpE
ZWxheWVkUmVwbHkmJik7CisgICAgdm9pZCBnZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oV2Vi
UHJvY2Vzc1Byb3h5JiwgTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0TmV0d29ya1Byb2Nl
c3NDb25uZWN0aW9uRGVsYXllZFJlcGx5JiYpOwogCiAgICAgRG93bmxvYWRQcm94eSYgY3JlYXRl
RG93bmxvYWRQcm94eShXZWJzaXRlRGF0YVN0b3JlJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0Jik7CiAKQEAgLTE2OSw3ICsxNzEsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzeW5jQWxs
Q29va2llcygpOwogICAgIHZvaWQgZGlkU3luY0FsbENvb2tpZXMoKTsKIAotICAgIHZvaWQgdGVz
dFByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5KFdlYlBh
Z2VQcm94eUlkZW50aWZpZXIsIE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpUZXN0UHJv
Y2Vzc0luY29taW5nU3luY01lc3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5jUmVwbHk6OkRlbGF5ZWRS
ZXBseSYmKTsKKyAgICB2b2lkIHRlc3RQcm9jZXNzSW5jb21pbmdTeW5jTWVzc2FnZXNXaGVuV2Fp
dGluZ0ZvclN5bmNSZXBseShXZWJQYWdlUHJveHlJZGVudGlmaWVyLCBNZXNzYWdlczo6TmV0d29y
a1Byb2Nlc3NQcm94eTo6VGVzdFByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5n
Rm9yU3luY1JlcGx5RGVsYXllZFJlcGx5JiYpOwogCiAgICAgUHJvY2Vzc1Rocm90dGxlciYgdGhy
b3R0bGVyKCkgeyByZXR1cm4gbV90aHJvdHRsZXI7IH0KICAgICBXZWJQcm9jZXNzUG9vbCYgcHJv
Y2Vzc1Bvb2woKSB7IHJldHVybiBtX3Byb2Nlc3NQb29sOyB9CkBAIC0yNDIsNyArMjQ0LDcgQEAg
cHJpdmF0ZToKICNlbmRpZgogCiAjaWYgRU5BQkxFKFNBTkRCT1hfRVhURU5TSU9OUykKLSAgICB2
b2lkIGdldFNhbmRib3hFeHRlbnNpb25zRm9yQmxvYkZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+
JiBwYXRocywgTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OkdldFNhbmRib3hFeHRlbnNp
b25zRm9yQmxvYkZpbGVzOjpBc3luY1JlcGx5JiYpOworICAgIHZvaWQgZ2V0U2FuZGJveEV4dGVu
c2lvbnNGb3JCbG9iRmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mIHBhdGhzLCBNZXNzYWdlczo6
TmV0d29ya1Byb2Nlc3NQcm94eTo6R2V0U2FuZGJveEV4dGVuc2lvbnNGb3JCbG9iRmlsZXNBc3lu
Y1JlcGx5JiYpOwogI2VuZGlmCiAKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCkBAIC0yNjUs
NyArMjY3LDcgQEAgcHJpdmF0ZToKIAogICAgIHN0cnVjdCBDb25uZWN0aW9uUmVxdWVzdCB7CiAg
ICAgICAgIFdlYWtQdHI8V2ViUHJvY2Vzc1Byb3h5PiB3ZWJQcm9jZXNzOwotICAgICAgICBNZXNz
YWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OkRlbGF5
ZWRSZXBseSByZXBseTsKKyAgICAgICAgTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0TmV0
d29ya1Byb2Nlc3NDb25uZWN0aW9uRGVsYXllZFJlcGx5IHJlcGx5OwogICAgIH07CiAgICAgdWlu
dDY0X3QgbV9jb25uZWN0aW9uUmVxdWVzdElkZW50aWZpZXIgeyAwIH07CiAgICAgSGFzaE1hcDx1
aW50NjRfdCwgQ29ubmVjdGlvblJlcXVlc3Q+IG1fY29ubmVjdGlvblJlcXVlc3RzOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzTWFuYWdl
ci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NNYW5h
Z2VyLmNwcAppbmRleCAzNzgyYzg0YjY3NzllOWQ4ZTIwNjhhNmExNTk5MDZmNjdhMGRhNDMwLi5l
NTNhZjJmZTgxNGUwYjAxZmQ2YTgzN2QwMzRjNDg3MWU1ODU0OGU1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NNYW5hZ2VyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NNYW5hZ2VyLmNw
cApAQCAtMjksNiArMjksNyBAQAogI2lmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQogCiAj
aW5jbHVkZSAiUGx1Z2luUHJvY2Vzc1Byb3h5LmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5
TWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJzaXRlRGF0YUZldGNoT3B0aW9uLmgiCiAjaW5jbHVk
ZSA8d3RmL0NyeXB0b2dyYXBoaWNhbGx5UmFuZG9tTnVtYmVyLmg+CiAjaW5jbHVkZSA8d3RmL05l
dmVyRGVzdHJveWVkLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QbHVn
aW5zL1BsdWdpblByb2Nlc3NNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QbHVn
aW5zL1BsdWdpblByb2Nlc3NNYW5hZ2VyLmgKaW5kZXggOTY1Y2IyMjllMGNjZDc3NTc4MWRmZWUw
NWNlOWQ1NmIxZjcxNTIxNy4uOTMwZjBhMTc1MGI2MjgzMzY4OWEzZjU0YjRmYzg2NzZmM2ZmMTZk
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9j
ZXNzTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2lu
UHJvY2Vzc01hbmFnZXIuaApAQCAtMzEsNyArMzEsNyBAQAogI2luY2x1ZGUgIlBsdWdpblByb2Nl
c3MuaCIKICNpbmNsdWRlICJQbHVnaW5Qcm9jZXNzQXR0cmlidXRlcy5oIgogI2luY2x1ZGUgIlBy
b2Nlc3NUaHJvdHRsZXIuaCIKLSNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHlNZXNzYWdlcy5oIgor
I2luY2x1ZGUgIldlYlByb2Nlc3NQcm94eU1lc3NhZ2VzUmVwbGllcy5oIgogI2luY2x1ZGUgPHd0
Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvTm9u
Y29weWFibGUuaD4KQEAgLTU3LDcgKzU3LDcgQEAgcHVibGljOgogCiAgICAgdWludDY0X3QgcGx1
Z2luUHJvY2Vzc1Rva2VuKGNvbnN0IFBsdWdpbk1vZHVsZUluZm8mLCBQbHVnaW5Qcm9jZXNzVHlw
ZSwgUGx1Z2luUHJvY2Vzc1NhbmRib3hQb2xpY3kpOwogCi0gICAgdm9pZCBnZXRQbHVnaW5Qcm9j
ZXNzQ29ubmVjdGlvbih1aW50NjRfdCBwbHVnaW5Qcm9jZXNzVG9rZW4sIE1lc3NhZ2VzOjpXZWJQ
cm9jZXNzUHJveHk6OkdldFBsdWdpblByb2Nlc3NDb25uZWN0aW9uOjpEZWxheWVkUmVwbHkmJik7
CisgICAgdm9pZCBnZXRQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbih1aW50NjRfdCBwbHVnaW5Qcm9j
ZXNzVG9rZW4sIE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldFBsdWdpblByb2Nlc3NDb25u
ZWN0aW9uRGVsYXllZFJlcGx5JiYpOwogICAgIHZvaWQgcmVtb3ZlUGx1Z2luUHJvY2Vzc1Byb3h5
KFBsdWdpblByb2Nlc3NQcm94eSopOwogCiAgICAgdm9pZCBmZXRjaFdlYnNpdGVEYXRhKGNvbnN0
IFBsdWdpbk1vZHVsZUluZm8mLCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFGZXRjaE9wdGlvbj4sIFdU
Rjo6RnVuY3Rpb248dm9pZCAoVmVjdG9yPFN0cmluZz4pPiYmIGNvbXBsZXRpb25IYW5kbGVyKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vz
c1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQ
cm94eS5oCmluZGV4IDg3YjNmNTBlYTRiYmMwYzMxYmIxOWIyY2NhYTIwYWM2NDAzZWYyODIuLjcy
MTk5MjExNDg1MTUxMjZlNWNkNTg2MDU0NzNlOTFhYWQ4NjA3ZDQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkuaApAQCAtMzMs
NyArMzMsNyBAQAogI2luY2x1ZGUgIlBsdWdpblByb2Nlc3MuaCIKICNpbmNsdWRlICJQbHVnaW5Q
cm9jZXNzQXR0cmlidXRlcy5oIgogI2luY2x1ZGUgIlByb2Nlc3NMYXVuY2hlci5oIgotI2luY2x1
ZGUgIldlYlByb2Nlc3NQcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5
TWVzc2FnZXNSZXBsaWVzLmgiCiAjaW5jbHVkZSA8d3RmL0RlcXVlLmg+CiAKICNpZiBQTEFURk9S
TShDT0NPQSkKQEAgLTcxLDcgKzcxLDcgQEAgcHVibGljOgogCiAgICAgLy8gQXNrcyB0aGUgcGx1
Zy1pbiBwcm9jZXNzIHRvIGNyZWF0ZSBhIG5ldyBjb25uZWN0aW9uIHRvIGEgd2ViIHByb2Nlc3Mu
IFRoZSBjb25uZWN0aW9uIGlkZW50aWZpZXIgd2lsbCBiZQogICAgIC8vIGVuY29kZWQgaW4gdGhl
IGdpdmVuIGFyZ3VtZW50IGVuY29kZXIgYW5kIHNlbnQgYmFjayB0byB0aGUgY29ubmVjdGlvbiBv
ZiB0aGUgZ2l2ZW4gd2ViIHByb2Nlc3MuCi0gICAgdm9pZCBnZXRQbHVnaW5Qcm9jZXNzQ29ubmVj
dGlvbihNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXRQbHVnaW5Qcm9jZXNzQ29ubmVjdGlv
bjo6RGVsYXllZFJlcGx5JiYpOworICAgIHZvaWQgZ2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24o
TWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25EZWxh
eWVkUmVwbHkmJik7CiAKICAgICB2b2lkIGZldGNoV2Vic2l0ZURhdGEoQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZCAoVmVjdG9yPFN0cmluZz4pPiYmKTsKICAgICB2b2lkIGRlbGV0ZVdlYnNpdGVEYXRh
KFdhbGxUaW1lIG1vZGlmaWVkU2luY2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQgKCk+JiYpOwpA
QCAtMTQzLDcgKzE0Myw3IEBAIHByaXZhdGU6CiAgICAgLy8gVGhlIGNvbm5lY3Rpb24gdG8gdGhl
IHBsdWctaW4gaG9zdCBwcm9jZXNzLgogICAgIFJlZlB0cjxJUEM6OkNvbm5lY3Rpb24+IG1fY29u
bmVjdGlvbjsKIAotICAgIERlcXVlPE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldFBsdWdp
blByb2Nlc3NDb25uZWN0aW9uOjpEZWxheWVkUmVwbHk+IG1fcGVuZGluZ0Nvbm5lY3Rpb25SZXBs
aWVzOworICAgIERlcXVlPE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldFBsdWdpblByb2Nl
c3NDb25uZWN0aW9uRGVsYXllZFJlcGx5PiBtX3BlbmRpbmdDb25uZWN0aW9uUmVwbGllczsKIAog
ICAgIFZlY3Rvcjx1aW50NjRfdD4gbV9wZW5kaW5nRmV0Y2hXZWJzaXRlRGF0YVJlcXVlc3RzOwog
ICAgIEhhc2hNYXA8dWludDY0X3QsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQgKFZlY3RvcjxTdHJp
bmc+KT4+IG1fcGVuZGluZ0ZldGNoV2Vic2l0ZURhdGFDYWxsYmFja3M7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5oIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuaAppbmRleCBkMzUyNTEzMzc4Y2Jm
NDkwNzc1OTJjNzhhNjRkYTBjN2Q4OTU5MTMyLi42ZDkzNzljNjJlMGI3ZjI1MTAyODgyNDExN2Mw
Zjg0MzZiODQ2MGRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm92aXNp
b25hbFBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFs
UGFnZVByb3h5LmgKQEAgLTI4LDcgKzI4LDcgQEAKICNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIu
aCIKICNpbmNsdWRlICJTYW5kYm94RXh0ZW5zaW9uLmgiCiAjaW5jbHVkZSAiV2ViRnJhbWVQb2xp
Y3lMaXN0ZW5lclByb3h5LmgiCi0jaW5jbHVkZSAiV2ViUGFnZVByb3h5TWVzc2FnZXMuaCIKKyNp
bmNsdWRlICJXZWJQYWdlUHJveHlNZXNzYWdlc1JlcGxpZXMuaCIKICNpbmNsdWRlICJXZWJzaXRl
UG9saWNpZXNEYXRhLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KICNp
bmNsdWRlIDx3dGYvV2Vha1B0ci5oPgpAQCAtMTEyLDcgKzExMiw3IEBAIHByaXZhdGU6CiAgICAg
dm9pZCBiYWNrRm9yd2FyZEdvVG9JdGVtKGNvbnN0IFdlYkNvcmU6OkJhY2tGb3J3YXJkSXRlbUlk
ZW50aWZpZXImLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFNhbmRib3hFeHRlbnNpb246OkhhbmRs
ZSYmKT4mJik7CiAgICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luYyhX
ZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGJvb2wgaXNNYWluRnJhbWUsIFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luRGF0YSYmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90
IG5hdmlnYXRpb25JRCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiwKICAgICAgICAgRnJhbWVJbmZv
RGF0YSYmLCBPcHRpb25hbDxXZWJQYWdlUHJveHlJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJ
RCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCYmLCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYgcmVxdWVzdEJv
ZHksCi0gICAgICAgIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiByZWRpcmVjdFJlc3BvbnNl
LCBjb25zdCBVc2VyRGF0YSYsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRlY2lkZVBvbGljeUZv
ck5hdmlnYXRpb25BY3Rpb25TeW5jOjpEZWxheWVkUmVwbHkmJik7CisgICAgICAgIFdlYkNvcmU6
OlJlc291cmNlUmVzcG9uc2UmJiByZWRpcmVjdFJlc3BvbnNlLCBjb25zdCBVc2VyRGF0YSYsIE1l
c3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5j
RGVsYXllZFJlcGx5JiYpOwogI2lmIFVTRShRVUlDS19MT09LKQogICAgIHZvaWQgZGlkUmVxdWVz
dFBhc3N3b3JkRm9yUXVpY2tMb29rRG9jdW1lbnRJbk1haW5GcmFtZShjb25zdCBTdHJpbmcmIGZp
bGVOYW1lKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3Vz
cGVuZGVkUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TdXNwZW5kZWRQYWdl
UHJveHkuaAppbmRleCA3NjRiZWRjNzdiZTgxYjQ1YjQ5MjY1YmExMTVhY2FmN2I1MDc3MDI0Li5l
ZTJjNmEzNzUyNGYyYzkxYWRhZmVhYWJjZjc5M2FkZTZkNjFkOGQ3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9TdXNwZW5kZWRQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9TdXNwZW5kZWRQYWdlUHJveHkuaApAQCAtMjgsMTEgKzI4LDE1IEBACiAj
aW5jbHVkZSAiQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIlByb2Nlc3NUaHJvdHRsZXIuaCIKICNp
bmNsdWRlICJXZWJCYWNrRm9yd2FyZExpc3RJdGVtLmgiCi0jaW5jbHVkZSAiV2ViUGFnZVByb3h5
TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJQYWdlUHJveHlNZXNzYWdlc1JlcGxpZXMuaCIKICNp
bmNsdWRlIDxXZWJDb3JlL0ZyYW1lSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3Vu
dGVkLmg+CiAjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KIAorbmFtZXNwYWNlIFdlYkNvcmUgewor
Y2xhc3MgUmVnaXN0cmFibGVEb21haW47Cit9CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFz
cyBXZWJCYWNrRm9yd2FyZENhY2hlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHAKaW5kZXggZjljNzc2MzE0M2IwNzE0Y2FiMWJhZjIzZTY5MjVlN2RkNWIyMjQyMy4uMzVm
NDlmZjJiYzljNjcyMjUxNzA0ODVjOTdkM2M5YzcwZDI4MDFmNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0xNDQsMTQgKzE0NCwxMyBAQAogI2luY2x1ZGUg
PFdlYkNvcmUvRHJhZ0RhdGEuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0VsZW1lbnRDb250ZXh0Lmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9FdmVudE5hbWVzLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9FeGNl
cHRpb25EZXRhaWxzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GbG9hdFJlY3QuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL0ZvY3VzRGlyZWN0aW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Gb250QXR0cmli
dXRlQ2hhbmdlcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVMb2FkZXIuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL0dsb2JhbEZyYW1lSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvR2xv
YmFsV2luZG93SWRlbnRpZmllci5oPgotI2luY2x1ZGUgPFdlYkNvcmUvSlNET01CaW5kaW5nLmg+
Ci0jaW5jbHVkZSA8V2ViQ29yZS9KU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9MZW5ndGhCb3guaD4KICNpbmNsdWRlIDxXZWJDb3JlL01JTUVUeXBlUmVnaXN0cnku
aD4KICNpbmNsdWRlIDxXZWJDb3JlL01lZGlhU3RyZWFtUmVxdWVzdC5oPgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCA4NGU3NTVlY2RlMDhhMDI5ZmQ2NDIwNzM5Zjhj
Nzk1MzI0ODczYjU1Li40NTgxN2Q3YWRlZmQ0YjdjOTA0MjAyOTEyZmNiYmNkOGI3NDhhOTY3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtNjIsOSArNjIsOSBAQAog
I2luY2x1ZGUgIldlYlBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oIgogI2luY2x1ZGUgIldl
YlBhZ2VJbmplY3RlZEJ1bmRsZUNsaWVudC5oIgogI2luY2x1ZGUgIldlYlBhZ2VQcm94eUlkZW50
aWZpZXIuaCIKKyNpbmNsdWRlICJXZWJQYWdlUHJveHlNZXNzYWdlc1JlcGxpZXMuaCIKICNpbmNs
dWRlICJXZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eS5oIgogI2luY2x1ZGUgIldlYlByZWZlcmVu
Y2VzLmgiCi0jaW5jbHVkZSAiV2ViUGFnZVByb3h5TWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJQ
b3B1cE1lbnVQcm94eS5oIgogI2luY2x1ZGUgIldlYlVuZG9TdGVwSUQuaCIKICNpbmNsdWRlICJX
ZWJzaXRlUG9saWNpZXNEYXRhLmgiCkBAIC0xNzMsOCArMTczLDEzIEBAIGNsYXNzIFVJQ2xpZW50
OwogY2xhc3MgVVJMUmVxdWVzdDsKIH0KIAorbmFtZXNwYWNlIEluc3BlY3RvciB7CitlbnVtIGNs
YXNzIEluc3BlY3RvclRhcmdldFR5cGUgOiB1aW50OF90OworfQorCiBuYW1lc3BhY2UgSVBDIHsK
IGNsYXNzIERlY29kZXI7CitjbGFzcyBGb3JtRGF0YVJlZmVyZW5jZTsKIH0KIAogbmFtZXNwYWNl
IFdlYkNvcmUgewpAQCAtMjAwLDYgKzIwNSw3IEBAIGVudW0gY2xhc3MgRE9NUGFzdGVBY2Nlc3NS
ZXNwb25zZSA6IHVpbnQ4X3Q7CiBlbnVtIGNsYXNzIExvY2tCYWNrRm9yd2FyZExpc3QgOiBib29s
OwogZW51bSBjbGFzcyBIYXNJbnNlY3VyZUNvbnRlbnQgOiBib29sOwogZW51bSBjbGFzcyBOb3Rp
ZmljYXRpb25EaXJlY3Rpb24gOiB1aW50OF90OworZW51bSBjbGFzcyBSb3V0ZVNoYXJpbmdQb2xp
Y3kgOiB1aW50OF90OwogZW51bSBjbGFzcyBTaG91bGRTYW1wbGUgOiBib29sOwogZW51bSBjbGFz
cyBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgOiBib29sOwogZW51bSBjbGFzcyBXcml0aW5n
RGlyZWN0aW9uIDogdWludDhfdDsKQEAgLTIwOSw5ICsyMTUsMTEgQEAgc3RydWN0IEJhY2tGb3J3
YXJkSXRlbUlkZW50aWZpZXI7CiBzdHJ1Y3QgQ29udGVudFJ1bGVMaXN0UmVzdWx0czsKIHN0cnVj
dCBEYXRhTGlzdFN1Z2dlc3Rpb25JbmZvcm1hdGlvbjsKIHN0cnVjdCBEaWN0aW9uYXJ5UG9wdXBJ
bmZvOworc3RydWN0IERyYWdJdGVtOwogc3RydWN0IEV4Y2VwdGlvbkRldGFpbHM7CiBzdHJ1Y3Qg
RmlsZUNob29zZXJTZXR0aW5nczsKIHN0cnVjdCBHbG9iYWxXaW5kb3dJZGVudGlmaWVyOworc3Ry
dWN0IExpbmtJY29uOwogc3RydWN0IE1lZGlhU3RyZWFtUmVxdWVzdDsKIHN0cnVjdCBNb2NrV2Vi
QXV0aGVudGljYXRpb25Db25maWd1cmF0aW9uOwogc3RydWN0IFByZXdhcm1JbmZvcm1hdGlvbjsK
QEAgLTI5MCwxOSArMjk4LDI4IEBAIGNsYXNzIFdlYlZpZXdEaWRNb3ZlVG9XaW5kb3dPYnNlcnZl
cjsKIAogc3RydWN0IEF0dHJpYnV0ZWRTdHJpbmc7CiBzdHJ1Y3QgQ29sb3JTcGFjZURhdGE7Citz
dHJ1Y3QgRGF0YURldGVjdGlvblJlc3VsdDsKIHN0cnVjdCBEb2N1bWVudEVkaXRpbmdDb250ZXh0
Owogc3RydWN0IERvY3VtZW50RWRpdGluZ0NvbnRleHRSZXF1ZXN0Owogc3RydWN0IEVkaXRpbmdS
YW5nZTsKIHN0cnVjdCBFZGl0b3JTdGF0ZTsKK3N0cnVjdCBGb2N1c2VkRWxlbWVudEluZm9ybWF0
aW9uOwogc3RydWN0IEZvbnRJbmZvOwogc3RydWN0IEZyYW1lSW5mb0RhdGE7CiBzdHJ1Y3QgSW5z
ZXJ0VGV4dE9wdGlvbnM7CitzdHJ1Y3QgSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb247
CiBzdHJ1Y3QgSW50ZXJhY3Rpb25JbmZvcm1hdGlvblJlcXVlc3Q7CiBzdHJ1Y3QgTG9hZFBhcmFt
ZXRlcnM7CitzdHJ1Y3QgTmF2aWdhdGlvbkFjdGlvbkRhdGE7CiBzdHJ1Y3QgUGxhdGZvcm1Qb3B1
cE1lbnVEYXRhOwogc3RydWN0IFByaW50SW5mbzsKK3N0cnVjdCBQREZDb250ZXh0TWVudTsKIHN0
cnVjdCBXZWJBdXRvY29ycmVjdGlvbkRhdGE7CitzdHJ1Y3QgV2ViSGl0VGVzdFJlc3VsdERhdGE7
CitzdHJ1Y3QgV2ViTmF2aWdhdGlvbkRhdGFTdG9yZTsKIHN0cnVjdCBXZWJQb3B1cEl0ZW07Citz
dHJ1Y3QgV2ViU2VsZWN0aW9uRGF0YTsKK3N0cnVjdCBXZWJTcGVlY2hTeW50aGVzaXNWb2ljZTsK
IHN0cnVjdCBVUkxTY2hlbWVUYXNrUGFyYW1ldGVyczsKIHN0cnVjdCBVc2VyTWVzc2FnZTsKIApA
QCAtMTQzMCw3ICsxNDQ3LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBzZXRGb2N1cyhib29sIGZv
Y3VzZWQpOwogICAgIHZvaWQgc2V0V2luZG93RnJhbWUoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0
Jik7Ci0gICAgdm9pZCBnZXRXaW5kb3dGcmFtZShNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpHZXRX
aW5kb3dGcmFtZTo6RGVsYXllZFJlcGx5JiYpOworICAgIHZvaWQgZ2V0V2luZG93RnJhbWUoTWVz
c2FnZXM6OldlYlBhZ2VQcm94eTo6R2V0V2luZG93RnJhbWVEZWxheWVkUmVwbHkmJik7CiAgICAg
dm9pZCBnZXRXaW5kb3dGcmFtZVdpdGhDYWxsYmFjayhGdW5jdGlvbjx2b2lkKFdlYkNvcmU6OkZs
b2F0UmVjdCk+JiYpOwogCiAgICAgV2ViQ29yZTo6VXNlckludGVyZmFjZUxheW91dERpcmVjdGlv
biB1c2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uKCk7CkBAIC0xNTM4LDcgKzE1NTUsNyBAQCBw
dWJsaWM6CiAgICAgdm9pZCBiYWNrRm9yd2FyZEdvVG9JdGVtU2hhcmVkKFJlZjxXZWJQcm9jZXNz
UHJveHk+JiYsIGNvbnN0IFdlYkNvcmU6OkJhY2tGb3J3YXJkSXRlbUlkZW50aWZpZXImLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYmKT4mJik7CiAgICAg
dm9pZCBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luY1NoYXJlZChSZWY8V2ViUHJv
Y2Vzc1Byb3h5PiYmLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGJvb2wgaXNNYWluRnJhbWUs
IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50
aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiwKICAg
ICAgICAgRnJhbWVJbmZvRGF0YSYmLCBPcHRpb25hbDxXZWJQYWdlUHJveHlJZGVudGlmaWVyPiBv
cmlnaW5hdGluZ1BhZ2VJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmlnaW5h
bFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBJUEM6OkZvcm1EYXRhUmVmZXJl
bmNlJiYgcmVxdWVzdEJvZHksCi0gICAgICAgIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiBy
ZWRpcmVjdFJlc3BvbnNlLCBjb25zdCBVc2VyRGF0YSYsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6
OkRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jOjpEZWxheWVkUmVwbHkmJik7Cisg
ICAgICAgIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiByZWRpcmVjdFJlc3BvbnNlLCBjb25z
dCBVc2VyRGF0YSYsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRlY2lkZVBvbGljeUZvck5hdmln
YXRpb25BY3Rpb25TeW5jRGVsYXllZFJlcGx5JiYpOwogI2lmIFVTRShRVUlDS19MT09LKQogICAg
IHZvaWQgZGlkUmVxdWVzdFBhc3N3b3JkRm9yUXVpY2tMb29rRG9jdW1lbnRJbk1haW5GcmFtZVNo
YXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBjb25zdCBTdHJpbmcmIGZpbGVOYW1lKTsKICNl
bmRpZgpAQCAtMTY3OSw3ICsxNjk2LDcgQEAgcHJpdmF0ZToKICAgICAgICAgV2ViQ29yZTo6UmVz
b3VyY2VSZXNwb25zZSYmIHJlZGlyZWN0UmVzcG9uc2UsIGNvbnN0IFVzZXJEYXRhJiwgdWludDY0
X3QgbGlzdGVuZXJJRCk7CiAgICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9u
U3luYyhXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGJvb2wgaXNNYWluRnJhbWUsIFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luRGF0YSYmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIHVp
bnQ2NF90IG5hdmlnYXRpb25JRCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiwKICAgICAgICAgRnJh
bWVJbmZvRGF0YSYmLCBPcHRpb25hbDxXZWJQYWdlUHJveHlJZGVudGlmaWVyPiBvcmlnaW5hdGlu
Z1BhZ2VJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3Qs
IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYgcmVx
dWVzdEJvZHksCi0gICAgICAgIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiByZWRpcmVjdFJl
c3BvbnNlLCBjb25zdCBVc2VyRGF0YSYsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRlY2lkZVBv
bGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jOjpEZWxheWVkUmVwbHkmJik7CisgICAgICAgIFdl
YkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiByZWRpcmVjdFJlc3BvbnNlLCBjb25zdCBVc2VyRGF0
YSYsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rp
b25TeW5jRGVsYXllZFJlcGx5JiYpOwogICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmV3V2luZG93
QWN0aW9uKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW5EYXRhJiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCBOYXZpZ2F0aW9uQWN0
aW9uRGF0YSYmLAogICAgICAgICBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgY29uc3QgU3Ry
aW5nJiBmcmFtZU5hbWUsIHVpbnQ2NF90IGxpc3RlbmVySUQsIGNvbnN0IFVzZXJEYXRhJik7CiAg
ICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JSZXNwb25zZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIs
IGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYsIFdlYkNvcmU6OlBvbGljeUNoZWNr
SWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELApAQCAtMTcwMCwxMSArMTcxNywxMSBA
QCBwcml2YXRlOgogICAgIHZvaWQgZGlkVXBkYXRlSGlzdG9yeVRpdGxlKGNvbnN0IFN0cmluZyYg
dGl0bGUsIGNvbnN0IFN0cmluZyYgdXJsLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpOwogCiAg
ICAgLy8gVUkgY2xpZW50Ci0gICAgdm9pZCBjcmVhdGVOZXdQYWdlKGNvbnN0IEZyYW1lSW5mb0Rh
dGEmLCBPcHRpb25hbDxXZWJQYWdlUHJveHlJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIFdlYkNvcmU6OldpbmRvd0ZlYXR1cmVzJiYsIE5h
dmlnYXRpb25BY3Rpb25EYXRhJiYsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkNyZWF0ZU5ld1Bh
Z2U6OkRlbGF5ZWRSZXBseSYmKTsKKyAgICB2b2lkIGNyZWF0ZU5ld1BhZ2UoY29uc3QgRnJhbWVJ
bmZvRGF0YSYsIE9wdGlvbmFsPFdlYlBhZ2VQcm94eUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFn
ZUlELCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgV2ViQ29yZTo6V2luZG93RmVhdHVyZXMm
JiwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6Q3JlYXRl
TmV3UGFnZURlbGF5ZWRSZXBseSYmKTsKICAgICB2b2lkIHNob3dQYWdlKCk7Ci0gICAgdm9pZCBy
dW5KYXZhU2NyaXB0QWxlcnQoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbkRhdGEmLCBjb25zdCBTdHJpbmcmLCBNZXNzYWdlczo6V2ViUGFnZVBy
b3h5OjpSdW5KYXZhU2NyaXB0QWxlcnQ6OkRlbGF5ZWRSZXBseSYmKTsKLSAgICB2b2lkIHJ1bkph
dmFTY3JpcHRDb25maXJtKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6
U2VjdXJpdHlPcmlnaW5EYXRhJiwgY29uc3QgU3RyaW5nJiwgTWVzc2FnZXM6OldlYlBhZ2VQcm94
eTo6UnVuSmF2YVNjcmlwdENvbmZpcm06OkRlbGF5ZWRSZXBseSYmKTsKLSAgICB2b2lkIHJ1bkph
dmFTY3JpcHRQcm9tcHQoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbkRhdGEmLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBNZXNzYWdl
czo6V2ViUGFnZVByb3h5OjpSdW5KYXZhU2NyaXB0UHJvbXB0OjpEZWxheWVkUmVwbHkmJik7Cisg
ICAgdm9pZCBydW5KYXZhU2NyaXB0QWxlcnQoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25z
dCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmLCBjb25zdCBTdHJpbmcmLCBNZXNzYWdlczo6
V2ViUGFnZVByb3h5OjpSdW5KYXZhU2NyaXB0QWxlcnREZWxheWVkUmVwbHkmJik7CisgICAgdm9p
ZCBydW5KYXZhU2NyaXB0Q29uZmlybShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFdl
YkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYsIGNvbnN0IFN0cmluZyYsIE1lc3NhZ2VzOjpXZWJQ
YWdlUHJveHk6OlJ1bkphdmFTY3JpcHRDb25maXJtRGVsYXllZFJlcGx5JiYpOworICAgIHZvaWQg
cnVuSmF2YVNjcmlwdFByb21wdChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNv
cmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIE1l
c3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJ1bkphdmFTY3JpcHRQcm9tcHREZWxheWVkUmVwbHkmJik7
CiAgICAgdm9pZCBzZXRTdGF0dXNUZXh0KGNvbnN0IFN0cmluZyYpOwogICAgIHZvaWQgbW91c2VE
aWRNb3ZlT3ZlckVsZW1lbnQoV2ViSGl0VGVzdFJlc3VsdERhdGEmJiwgdWludDMyX3QgbW9kaWZp
ZXJzLCBVc2VyRGF0YSYmKTsKIApAQCAtMTcxMiwyOSArMTcyOSwyOSBAQCBwcml2YXRlOgogICAg
IHZvaWQgdW5hdmFpbGFibGVQbHVnaW5CdXR0b25DbGlja2VkKHVpbnQzMl90IG9wYXF1ZVBsdWdp
blVuYXZhaWxhYmlsaXR5UmVhc29uLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBjb25zdCBTdHJp
bmcmIHBsdWdpblVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBwbHVnaW5zUGFnZVVSTFN0cmluZywg
Y29uc3QgU3RyaW5nJiBmcmFtZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBwYWdlVVJMU3RyaW5n
KTsKICNlbmRpZiAvLyBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKICNpZiBFTkFCTEUoV0VC
R0wpCi0gICAgdm9pZCB3ZWJHTFBvbGljeUZvclVSTChVUkwmJiwgTWVzc2FnZXM6OldlYlBhZ2VQ
cm94eTo6V2ViR0xQb2xpY3lGb3JVUkw6OkRlbGF5ZWRSZXBseSYmKTsKLSAgICB2b2lkIHJlc29s
dmVXZWJHTFBvbGljeUZvclVSTChVUkwmJiwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UmVzb2x2
ZVdlYkdMUG9saWN5Rm9yVVJMOjpEZWxheWVkUmVwbHkmJik7CisgICAgdm9pZCB3ZWJHTFBvbGlj
eUZvclVSTChVUkwmJiwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6V2ViR0xQb2xpY3lGb3JVUkxE
ZWxheWVkUmVwbHkmJik7CisgICAgdm9pZCByZXNvbHZlV2ViR0xQb2xpY3lGb3JVUkwoVVJMJiYs
IE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJlc29sdmVXZWJHTFBvbGljeUZvclVSTERlbGF5ZWRS
ZXBseSYmKTsKICNlbmRpZiAvLyBFTkFCTEUoV0VCR0wpCiAgICAgdm9pZCBzZXRUb29sYmFyc0Fy
ZVZpc2libGUoYm9vbCB0b29sYmFyc0FyZVZpc2libGUpOwotICAgIHZvaWQgZ2V0VG9vbGJhcnNB
cmVWaXNpYmxlKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkdldFRvb2xiYXJzQXJlVmlzaWJsZTo6
RGVsYXllZFJlcGx5JiYpOworICAgIHZvaWQgZ2V0VG9vbGJhcnNBcmVWaXNpYmxlKE1lc3NhZ2Vz
OjpXZWJQYWdlUHJveHk6OkdldFRvb2xiYXJzQXJlVmlzaWJsZURlbGF5ZWRSZXBseSYmKTsKICAg
ICB2b2lkIHNldE1lbnVCYXJJc1Zpc2libGUoYm9vbCBtZW51QmFySXNWaXNpYmxlKTsKLSAgICB2
b2lkIGdldE1lbnVCYXJJc1Zpc2libGUoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6R2V0TWVudUJh
cklzVmlzaWJsZTo6RGVsYXllZFJlcGx5JiYpOworICAgIHZvaWQgZ2V0TWVudUJhcklzVmlzaWJs
ZShNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpHZXRNZW51QmFySXNWaXNpYmxlRGVsYXllZFJlcGx5
JiYpOwogICAgIHZvaWQgc2V0U3RhdHVzQmFySXNWaXNpYmxlKGJvb2wgc3RhdHVzQmFySXNWaXNp
YmxlKTsKLSAgICB2b2lkIGdldFN0YXR1c0JhcklzVmlzaWJsZShNZXNzYWdlczo6V2ViUGFnZVBy
b3h5OjpHZXRTdGF0dXNCYXJJc1Zpc2libGU6OkRlbGF5ZWRSZXBseSYmKTsKKyAgICB2b2lkIGdl
dFN0YXR1c0JhcklzVmlzaWJsZShNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpHZXRTdGF0dXNCYXJJ
c1Zpc2libGVEZWxheWVkUmVwbHkmJik7CiAgICAgdm9pZCBnZXRJc1ZpZXdWaXNpYmxlKGJvb2wm
KTsKICAgICB2b2lkIHNldElzUmVzaXphYmxlKGJvb2wgaXNSZXNpemFibGUpOwotICAgIHZvaWQg
c2NyZWVuVG9Sb290Vmlldyhjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgc2NyZWVuUG9pbnQsIE1l
c3NhZ2VzOjpXZWJQYWdlUHJveHk6OlNjcmVlblRvUm9vdFZpZXc6OkRlbGF5ZWRSZXBseSYmKTsK
LSAgICB2b2lkIHJvb3RWaWV3VG9TY3JlZW4oY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgdmlld1Jl
Y3QsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJvb3RWaWV3VG9TY3JlZW46OkRlbGF5ZWRSZXBs
eSYmKTsKKyAgICB2b2lkIHNjcmVlblRvUm9vdFZpZXcoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQm
IHNjcmVlblBvaW50LCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTY3JlZW5Ub1Jvb3RWaWV3RGVs
YXllZFJlcGx5JiYpOworICAgIHZvaWQgcm9vdFZpZXdUb1NjcmVlbihjb25zdCBXZWJDb3JlOjpJ
bnRSZWN0JiB2aWV3UmVjdCwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6Um9vdFZpZXdUb1NjcmVl
bkRlbGF5ZWRSZXBseSYmKTsKICAgICB2b2lkIGFjY2Vzc2liaWxpdHlTY3JlZW5Ub1Jvb3RWaWV3
KGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBzY3JlZW5Qb2ludCwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChXZWJDb3JlOjpJbnRQb2ludCk+JiYpOwogICAgIHZvaWQgcm9vdFZpZXdUb0FjY2Vzc2li
aWxpdHlTY3JlZW4oY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgdmlld1JlY3QsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoV2ViQ29yZTo6SW50UmVjdCk+JiYpOwotICAgIHZvaWQgcnVuQmVmb3JlVW5s
b2FkQ29uZmlybVBhbmVsKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6
U2VjdXJpdHlPcmlnaW5EYXRhJiwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBNZXNzYWdlczo6V2Vi
UGFnZVByb3h5OjpSdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWw6OkRlbGF5ZWRSZXBseSYmKTsK
KyAgICB2b2lkIHJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbChXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYsIGNvbnN0IFN0cmluZyYg
bWVzc2FnZSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UnVuQmVmb3JlVW5sb2FkQ29uZmlybVBh
bmVsRGVsYXllZFJlcGx5JiYpOwogICAgIHZvaWQgZGlkQ2hhbmdlVmlld3BvcnRQcm9wZXJ0aWVz
KGNvbnN0IFdlYkNvcmU6OlZpZXdwb3J0QXR0cmlidXRlcyYpOwogICAgIHZvaWQgcGFnZURpZFNj
cm9sbCgpOwogICAgIHZvaWQgcnVuT3BlblBhbmVsKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwg
Y29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiwgY29uc3QgV2ViQ29yZTo6RmlsZUNo
b29zZXJTZXR0aW5ncyYpOwogICAgIHZvaWQgc2hvd1NoYXJlU2hlZXQoY29uc3QgV2ViQ29yZTo6
U2hhcmVEYXRhV2l0aFBhcnNlZFVSTCYsIFNoYXJlU2hlZXRDYWxsYmFja0lEKTsKICAgICB2b2lk
IHByaW50RnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKCk+JiYpOwotICAgIHZvaWQgZXhjZWVkZWREYXRhYmFzZVF1b3RhKFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBvcmlnaW5JZGVudGlmaWVyLCBjb25zdCBTdHJpbmcm
IGRhdGFiYXNlTmFtZSwgY29uc3QgU3RyaW5nJiBkaXNwbGF5TmFtZSwgdWludDY0X3QgY3VycmVu
dFF1b3RhLCB1aW50NjRfdCBjdXJyZW50T3JpZ2luVXNhZ2UsIHVpbnQ2NF90IGN1cnJlbnREYXRh
YmFzZVVzYWdlLCB1aW50NjRfdCBleHBlY3RlZFVzYWdlLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5
OjpFeGNlZWRlZERhdGFiYXNlUXVvdGE6OkRlbGF5ZWRSZXBseSYmKTsKLSAgICB2b2lkIHJlYWNo
ZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoY29uc3QgU3RyaW5nJiBvcmlnaW5JZGVudGlm
aWVyLCB1aW50NjRfdCBjdXJyZW50UXVvdGEsIHVpbnQ2NF90IHRvdGFsQnl0ZXNOZWVkZWQsIE1l
c3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGE6
OkRlbGF5ZWRSZXBseSYmKTsKKyAgICB2b2lkIGV4Y2VlZGVkRGF0YWJhc2VRdW90YShXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgb3JpZ2luSWRlbnRpZmllciwgY29uc3Qg
U3RyaW5nJiBkYXRhYmFzZU5hbWUsIGNvbnN0IFN0cmluZyYgZGlzcGxheU5hbWUsIHVpbnQ2NF90
IGN1cnJlbnRRdW90YSwgdWludDY0X3QgY3VycmVudE9yaWdpblVzYWdlLCB1aW50NjRfdCBjdXJy
ZW50RGF0YWJhc2VVc2FnZSwgdWludDY0X3QgZXhwZWN0ZWRVc2FnZSwgTWVzc2FnZXM6OldlYlBh
Z2VQcm94eTo6RXhjZWVkZWREYXRhYmFzZVF1b3RhRGVsYXllZFJlcGx5JiYpOworICAgIHZvaWQg
cmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YShjb25zdCBTdHJpbmcmIG9yaWdpbklk
ZW50aWZpZXIsIHVpbnQ2NF90IGN1cnJlbnRRdW90YSwgdWludDY0X3QgdG90YWxCeXRlc05lZWRl
ZCwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5R
dW90YURlbGF5ZWRSZXBseSYmKTsKICAgICB2b2lkIHJlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Np
b25Gb3JGcmFtZSh1aW50NjRfdCBnZW9sb2NhdGlvbklELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIsIFN0cmluZyBvcmlnaW5JZGVudGlmaWVyKTsKIAogI2lmIFBMQVRGT1JNKEdUSykgfHwgUExB
VEZPUk0oV1BFKQpAQCAtMjAyMSw3ICsyMDM4LDcgQEAgcHJpdmF0ZToKICNlbmRpZgogCiAjaWYg
RU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCi0gICAgdm9pZCBmaW5kUGx1Z2luKGNvbnN0IFN0
cmluZyYgbWltZVR5cGUsIHVpbnQzMl90IHByb2Nlc3NUeXBlLCBjb25zdCBTdHJpbmcmIHVybFN0
cmluZywgY29uc3QgU3RyaW5nJiBmcmFtZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBwYWdlVVJM
U3RyaW5nLCBib29sIGFsbG93T25seUFwcGxpY2F0aW9uUGx1Z2lucywgTWVzc2FnZXM6OldlYlBh
Z2VQcm94eTo6RmluZFBsdWdpbjo6RGVsYXllZFJlcGx5JiYpOworICAgIHZvaWQgZmluZFBsdWdp
bihjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCB1aW50MzJfdCBwcm9jZXNzVHlwZSwgY29uc3QgU3Ry
aW5nJiB1cmxTdHJpbmcsIGNvbnN0IFN0cmluZyYgZnJhbWVVUkxTdHJpbmcsIGNvbnN0IFN0cmlu
ZyYgcGFnZVVSTFN0cmluZywgYm9vbCBhbGxvd09ubHlBcHBsaWNhdGlvblBsdWdpbnMsIE1lc3Nh
Z2VzOjpXZWJQYWdlUHJveHk6OkZpbmRQbHVnaW5EZWxheWVkUmVwbHkmJik7CiAjZW5kaWYKIAog
I2lmIFVTRShRVUlDS19MT09LKQpAQCAtMjA1OCw3ICsyMDc1LDcgQEAgcHJpdmF0ZToKIAogICAg
IHZvaWQgc3RhcnRVUkxTY2hlbWVUYXNrKFVSTFNjaGVtZVRhc2tQYXJhbWV0ZXJzJiYpOwogICAg
IHZvaWQgc3RvcFVSTFNjaGVtZVRhc2sodWludDY0X3QgaGFuZGxlcklkZW50aWZpZXIsIHVpbnQ2
NF90IHRhc2tJZGVudGlmaWVyKTsKLSAgICB2b2lkIGxvYWRTeW5jaHJvbm91c1VSTFNjaGVtZVRh
c2soVVJMU2NoZW1lVGFza1BhcmFtZXRlcnMmJiwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6TG9h
ZFN5bmNocm9ub3VzVVJMU2NoZW1lVGFzazo6RGVsYXllZFJlcGx5JiYpOworICAgIHZvaWQgbG9h
ZFN5bmNocm9ub3VzVVJMU2NoZW1lVGFzayhVUkxTY2hlbWVUYXNrUGFyYW1ldGVycyYmLCBNZXNz
YWdlczo6V2ViUGFnZVByb3h5OjpMb2FkU3luY2hyb25vdXNVUkxTY2hlbWVUYXNrRGVsYXllZFJl
cGx5JiYpOwogCiAgICAgYm9vbCBjaGVja1VSTFJlY2VpdmVkRnJvbUN1cnJlbnRPclByZXZpb3Vz
V2ViUHJvY2VzcyhXZWJQcm9jZXNzUHJveHkmLCBjb25zdCBTdHJpbmcmKTsKICAgICBib29sIGNo
ZWNrVVJMUmVjZWl2ZWRGcm9tQ3VycmVudE9yUHJldmlvdXNXZWJQcm9jZXNzKFdlYlByb2Nlc3NQ
cm94eSYsIGNvbnN0IFVSTCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Bvb2wuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bv
b2wuY3BwCmluZGV4IDU3ZDdjMDdmYTgzZTFiOTg1MWE4NWMxNTA0MmEzMmNjNjE4NDg4NDguLjY1
NDgxYTQxNGMwOWRkNWIyMWZjYTY1MThlNTU5MDI5Y2NjYjk3ZTAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKQEAgLTc3LDYgKzc3LDcgQEAKICNpbmNsdWRl
ICJXZWJQcm9jZXNzTWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzUG9vbE1lc3NhZ2Vz
LmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5LmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzc1By
b3h5TWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJzaXRlRGF0YVN0b3JlLmgiCiAjaW5jbHVkZSAi
V2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9K
U0NJbmxpbmVzLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9j
ZXNzUG9vbC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAppbmRl
eCBjNzgzMDQ0MTYzNzBjZmNmNGE3OTY3MGIyZjE4YzUyYzhkMTE0NWM4Li4wNGNjYzk2YjljZWI1
ODhjNDQ4MGU0Y2Y0Y2I3NzVjZTQ3M2IzZWMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlByb2Nlc3NQb29sLmgKQEAgLTM4MSw5ICszODEsOSBAQCBwdWJsaWM6CiAgICAgLy8gTmV0d29y
ayBQcm9jZXNzIE1hbmFnZW1lbnQKICAgICBOZXR3b3JrUHJvY2Vzc1Byb3h5JiBlbnN1cmVOZXR3
b3JrUHJvY2VzcyhXZWJzaXRlRGF0YVN0b3JlKiB3aXRoV2Vic2l0ZURhdGFTdG9yZSA9IG51bGxw
dHIpOwogICAgIE5ldHdvcmtQcm9jZXNzUHJveHkqIG5ldHdvcmtQcm9jZXNzKCkgeyByZXR1cm4g
bV9uZXR3b3JrUHJvY2Vzcy5nZXQoKTsgfQotICAgIHZvaWQgbmV0d29ya1Byb2Nlc3NDcmFzaGVk
KE5ldHdvcmtQcm9jZXNzUHJveHkmLCBWZWN0b3I8c3RkOjpwYWlyPFJlZlB0cjxXZWJQcm9jZXNz
UHJveHk+LCBNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXROZXR3b3JrUHJvY2Vzc0Nvbm5l
Y3Rpb246OkRlbGF5ZWRSZXBseT4+JiYpOworICAgIHZvaWQgbmV0d29ya1Byb2Nlc3NDcmFzaGVk
KE5ldHdvcmtQcm9jZXNzUHJveHkmLCBWZWN0b3I8c3RkOjpwYWlyPFJlZlB0cjxXZWJQcm9jZXNz
UHJveHk+LCBNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXROZXR3b3JrUHJvY2Vzc0Nvbm5l
Y3Rpb25EZWxheWVkUmVwbHk+PiYmKTsKIAotICAgIHZvaWQgZ2V0TmV0d29ya1Byb2Nlc3NDb25u
ZWN0aW9uKFdlYlByb2Nlc3NQcm94eSYsIE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldE5l
dHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6RGVsYXllZFJlcGx5JiYpOworICAgIHZvaWQgZ2V0TmV0
d29ya1Byb2Nlc3NDb25uZWN0aW9uKFdlYlByb2Nlc3NQcm94eSYsIE1lc3NhZ2VzOjpXZWJQcm9j
ZXNzUHJveHk6OkdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbkRlbGF5ZWRSZXBseSYmKTsKIAog
ICAgIGJvb2wgaXNTZXJ2aWNlV29ya2VyUGFnZUlEKFdlYlBhZ2VQcm94eUlkZW50aWZpZXIpIGNv
bnN0OwogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Byb3h5LmgKaW5kZXggOGE0N2U4MTNmZjhmZDYxOTE1OGM3YWVjNjZmZTBhYWFj
MDAxZWQ5OC4uN2Q3NDY1OGNkMWFiNDRhNzg2OTY4ZTgzZjRmNDlhYjM1OTBkNzU2OSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKQEAgLTM4LDcgKzM4LDcgQEAK
ICNpbmNsdWRlICJWaXNpYmxlV2ViUGFnZUNvdW50ZXIuaCIKICNpbmNsdWRlICJXZWJDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLmgiCiAjaW5jbHVkZSAiV2ViUGFnZVByb3h5SWRlbnRpZmllci5oIgot
I2luY2x1ZGUgIldlYlByb2Nlc3NQcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vz
c1Byb3h5TWVzc2FnZXNSZXBsaWVzLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUlkZW50aWZp
ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2VJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9Qcm9jZXNzSWRlbnRpZmllci5oPgpAQCAtNjEsNiArNjEsNyBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiBjbGFzcyBEZWZlcnJhYmxlT25lU2hvdFRpbWVyOwogY2xhc3MgUmVzb3VyY2VSZXF1
ZXN0Owogc3RydWN0IFBsdWdpbkluZm87CitzdHJ1Y3QgUHJld2FybUluZm9ybWF0aW9uOwogc3Ry
dWN0IFNlY3VyaXR5T3JpZ2luRGF0YTsKIH0KIApAQCAtODAsNiArODEsNyBAQCBjbGFzcyBXZWJQ
cm9jZXNzUG9vbDsKIGNsYXNzIFdlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5OwogY2xhc3Mg
V2Vic2l0ZURhdGFTdG9yZTsKIGVudW0gY2xhc3MgV2Vic2l0ZURhdGFUeXBlOworc3RydWN0IEJh
Y2tGb3J3YXJkTGlzdEl0ZW1TdGF0ZTsKIHN0cnVjdCBVc2VyTWVzc2FnZTsKIHN0cnVjdCBXZWJO
YXZpZ2F0aW9uRGF0YVN0b3JlOwogc3RydWN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM7CkBA
IC0zODAsMTIgKzM4MiwxMiBAQCBwcml2YXRlOgogICAgIHZvaWQgZ2V0UGx1Z2lucyhib29sIHJl
ZnJlc2gsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9yPFdlYkNvcmU6OlBsdWdpbkluZm8+
JiYgcGx1Z2lucywgVmVjdG9yPFdlYkNvcmU6OlBsdWdpbkluZm8+JiYgYXBwbGljYXRpb25QbHVn
aW5zLCBPcHRpb25hbDxWZWN0b3I8V2ViQ29yZTo6U3VwcG9ydGVkUGx1Z2luSWRlbnRpZmllcj4+
JiYpPiYmKTsKICNlbmRpZiAvLyBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKICNpZiBFTkFC
TEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKLSAgICB2b2lkIGdldFBsdWdpblByb2Nlc3NDb25uZWN0
aW9uKHVpbnQ2NF90IHBsdWdpblByb2Nlc3NUb2tlbiwgTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94
eTo6R2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBseSYmKTsKKyAgICB2b2lk
IGdldFBsdWdpblByb2Nlc3NDb25uZWN0aW9uKHVpbnQ2NF90IHBsdWdpblByb2Nlc3NUb2tlbiwg
TWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25EZWxh
eWVkUmVwbHkmJik7CiAjZW5kaWYKICAgICB2b2lkIGFkZFBsdWdJbkF1dG9TdGFydE9yaWdpbkhh
c2goU3RyaW5nJiYgcGFnZU9yaWdpbiwgdWludDMyX3QgaGFzaCk7CiAgICAgdm9pZCBwbHVnSW5E
aWRSZWNlaXZlVXNlckludGVyYWN0aW9uKHVpbnQzMl90IGhhc2gpOwogICAgIAotICAgIHZvaWQg
Z2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6Okdl
dE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6RGVsYXllZFJlcGx5JiYpOworICAgIHZvaWQgZ2V0
TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldE5l
dHdvcmtQcm9jZXNzQ29ubmVjdGlvbkRlbGF5ZWRSZXBseSYmKTsKIAogICAgIGJvb2wgcGxhdGZv
cm1Jc0JlaW5nRGVidWdnZWQoKSBjb25zdDsKICAgICBib29sIHNob3VsZEFsbG93Tm9uVmFsaWRJ
bmplY3RlZENvZGUoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9XS0NvbnRlbnRWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29u
dGVudFZpZXcubW0KaW5kZXggNjIxZWE5MzZiODg3MzRjOWYyYjFiMWM5MDNkY2E5NDM4NjI0NjUz
Zi4uOTVlYWU1Y2JhMGI5ODlmMWQ4MzM0NTY0NGNlNDQ4YzQxMDk0YTkyOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcubW0KKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcubW0KQEAgLTQ5LDYgKzQ5LDcgQEAK
ICNpbXBvcnQgIldlYkZyYW1lUHJveHkuaCIKICNpbXBvcnQgIldlYktpdDJJbml0aWFsaXplLmgi
CiAjaW1wb3J0ICJXZWJQYWdlR3JvdXAuaCIKKyNpbXBvcnQgIldlYlBhZ2VQcm94eU1lc3NhZ2Vz
LmgiCiAjaW1wb3J0ICJXZWJQcm9jZXNzUG9vbC5oIgogI2ltcG9ydCAiX1dLRnJhbWVIYW5kbGVJ
bnRlcm5hbC5oIgogI2ltcG9ydCAiX1dLV2ViVmlld1ByaW50Rm9ybWF0dGVySW50ZXJuYWwuaCIK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50
ZXJhY3Rpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0lu
dGVyYWN0aW9uLm1tCmluZGV4IDIyYTM0ZWJlMGZhMWU2MzY4ZTNmYzYzODE3MzEwYzA3YjU0MGFh
ZDguLjQ3Zjg0MjU2ZDAxNzdhOTkxNmJiYTUxZTU5YjI2Njc5NTA2Njc4ZmIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0K
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlv
bi5tbQpAQCAtNzYsNiArNzYsNyBAQAogI2ltcG9ydCAiV2ViRXZlbnQuaCIKICNpbXBvcnQgIldl
YklPU0V2ZW50RmFjdG9yeS5oIgogI2ltcG9ydCAiV2ViUGFnZU1lc3NhZ2VzLmgiCisjaW1wb3J0
ICJXZWJQYWdlUHJveHlNZXNzYWdlcy5oIgogI2ltcG9ydCAiV2ViUHJvY2Vzc1Byb3h5LmgiCiAj
aW1wb3J0ICJfV0tBY3RpdmF0ZWRFbGVtZW50SW5mb0ludGVybmFsLmgiCiAjaW1wb3J0ICJfV0tF
bGVtZW50QWN0aW9uLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMv
VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94eS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5Lm1tCmluZGV4IGNh
N2I2YzUxMzgxMzVhZDMwYzI2OGJhMDU1MjhmMjBhYjk4MzJhODguLjExOGU1ODAwMzE5MDE4OTMy
Yzk5MWM2MWM4YTAxOTJiY2UyZGZiMjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5Lm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5
Lm1tCkBAIC0zMyw2ICszMyw3IEBACiAjaW1wb3J0ICJEcmF3aW5nQXJlYVByb3h5TWVzc2FnZXMu
aCIKICNpbXBvcnQgIkxheWVyVHJlZUNvbnRleHQuaCIKICNpbXBvcnQgIldlYlBhZ2VQcm94eS5o
IgorI2ltcG9ydCAiV2ViUGFnZVByb3h5TWVzc2FnZXMuaCIKICNpbXBvcnQgIldlYlByb2Nlc3NQ
cm94eS5oIgogI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9RdWFydHpDb3JlU1BJLmg+CiAjaW1wb3J0
IDx3dGYvQmxvY2tQdHIuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCmluZGV4IGQ1NTdjMTcwZGI1MzdhYmNlNjI2MmVmODYyZDk0YzhlOWRjNTQ1
MzQuLmQ0MjRmYzE0OTVkNTg5YjRlYjQ4OWNjYTIxYmZjOGU3MzJjOTZmNmYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291
cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNDU0Nyw3ICs0
NTQ3LDYgQEAKIAkJQzBDRTcyQUMxMjQ3RTc4RDAwQkMwRUM0IC8qIEhhbmRsZU1lc3NhZ2UuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSGFuZGxlTWVzc2FnZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlDMENFNzJEQjEyNDdFOEY3MDBCQzBFQzQgLyogRGVyaXZl
ZFNvdXJjZXMubWFrZSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBEZXJpdmVkU291cmNlcy5tYWtl
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDMENFNzMzNjEyNDdGNzBFMDBCQzBFQzQg
LyogZ2VuZXJhdGUtbWVzc2FnZS1yZWNlaXZlci5weSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuc2NyaXB0LnB5
dGhvbjsgcGF0aCA9ICJnZW5lcmF0ZS1tZXNzYWdlLXJlY2VpdmVyLnB5Ijsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKLQkJQzBDRTczMzcxMjQ3RjcwRTAwQkMwRUM0IC8qIGdlbmVyYXRlLW1l
c3NhZ2VzLWhlYWRlci5weSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuc2NyaXB0LnB5dGhvbjsgcGF0aCA9ICJn
ZW5lcmF0ZS1tZXNzYWdlcy1oZWFkZXIucHkiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlDMEUzQUE0NDEyMDlFMkJBMDBBNDlEMDEgLyogTW9kdWxlLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IE1vZHVsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlD
MEUzQUE0NTEyMDlFMkJBMDBBNDlEMDEgLyogTW9kdWxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IE1vZHVsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUMwRTNBQTQ4MTIwOUU0NTAwMEE0OUQwMSAvKiBNb2R1bGVDRi5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNb2R1bGVDRi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC05MDEyLDcgKzkwMTEsNiBAQAogCQkJCTBGQzA4NTZFMTg3Q0UwQTkwMDc4
MEQ4NiAvKiBfX2luaXRfXy5weSAqLywKIAkJCQk0MTU3ODUzMDIxMjc2QjZGMDBERDM4MDAgLyog
Y29weS13ZWJjb250ZW50LXJlc291cmNlcy10by1wcml2YXRlLWhlYWRlcnMuc2ggKi8sCiAJCQkJ
QzBDRTczMzYxMjQ3RjcwRTAwQkMwRUM0IC8qIGdlbmVyYXRlLW1lc3NhZ2UtcmVjZWl2ZXIucHkg
Ki8sCi0JCQkJQzBDRTczMzcxMjQ3RjcwRTAwQkMwRUM0IC8qIGdlbmVyYXRlLW1lc3NhZ2VzLWhl
YWRlci5weSAqLywKIAkJCQk3Q0RFNzNBMTFGOURBNDE0MDAzOTAzMTIgLyogR2VuZXJhdGVQcmVm
ZXJlbmNlcy5yYiAqLywKIAkJCQkwRkMwODU2RjE4N0NFMEE5MDA3ODBEODYgLyogbWVzc2FnZXMu
cHkgKi8sCiAJCQkJMEZDMDg1NzAxODdDRTBBOTAwNzgwRDg2IC8qIG1vZGVsLnB5ICovLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFu
YWdlckNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2Vi
U1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwCmluZGV4IDYyMjI4MDgzZWZlNWMxYTkzMDJm
NmUzMTdiNzNjZGE0YWQ4M2Y2NTAuLjRiNGUyZWUyMTY3MmZiZDgzNzQzZGUwMTI0MmY4MGQ4MjQx
MWNhMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNX
Q29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAKQEAgLTQzLDYgKzQz
LDcgQEAKICNpbmNsdWRlICJXZWJQcmVmZXJlbmNlc1N0b3JlLmgiCiAjaW5jbHVkZSAiV2ViUHJv
Y2Vzcy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NQb29sTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJX
ZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbk1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViU1dT
ZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uTWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJTZXJ2aWNl
V29ya2VyRmV0Y2hUYXNrQ2xpZW50LmgiCiAjaW5jbHVkZSAiV2ViU29ja2V0UHJvdmlkZXIuaCIK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4
dE1hbmFnZXJDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9X
ZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oCmluZGV4IDI0NzYyNWVkOTViNTFlM2VmZGZi
NWQ5NjlkN2MwZWZkMjllZmZhZGIuLmJmOGI0N2ZiZmQ2Y2E4ZDgwNTk4NzhjMDgyNWQ4MjljNzRi
NTg4YzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNX
Q29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uaApAQCAtMzAsNyArMzAsNyBA
QAogI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIK
ICNpbmNsdWRlICJXZWJQYWdlUHJveHlJZGVudGlmaWVyLmgiCi0jaW5jbHVkZSAiV2ViU1dDb250
ZXh0TWFuYWdlckNvbm5lY3Rpb25NZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYlNXQ29udGV4dE1h
bmFnZXJDb25uZWN0aW9uTWVzc2FnZXNSZXBsaWVzLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9FbXB0
eUZyYW1lTG9hZGVyQ2xpZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TV0NvbnRleHRNYW5hZ2Vy
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZXJ2aWNlV29ya2VyQ2xpZW50RGF0YS5oPgpAQCAtODks
NyArODksNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZmlyZUFjdGl2YXRlRXZlbnQoV2ViQ29yZTo6
U2VydmljZVdvcmtlcklkZW50aWZpZXIpOwogICAgIHZvaWQgc29mdFVwZGF0ZShXZWJDb3JlOjpT
ZXJ2aWNlV29ya2VySWRlbnRpZmllcik7CiAgICAgdm9pZCB0ZXJtaW5hdGVXb3JrZXIoV2ViQ29y
ZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIpOwotICAgIHZvaWQgc3luY1Rlcm1pbmF0ZVdvcmtl
cihXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgTWVzc2FnZXM6OldlYlNXQ29udGV4
dE1hbmFnZXJDb25uZWN0aW9uOjpTeW5jVGVybWluYXRlV29ya2VyOjpEZWxheWVkUmVwbHkmJik7
CisgICAgdm9pZCBzeW5jVGVybWluYXRlV29ya2VyKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVu
dGlmaWVyLCBNZXNzYWdlczo6V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OlN5bmNUZXJt
aW5hdGVXb3JrZXJEZWxheWVkUmVwbHkmJik7CiAgICAgdm9pZCBmaW5kQ2xpZW50QnlJZGVudGlm
aWVyQ29tcGxldGVkKHVpbnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyLCBPcHRpb25hbDxXZWJDb3Jl
OjpTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YT4mJiwgYm9vbCBoYXNTZWN1cml0eUVycm9yKTsKICAg
ICB2b2lkIG1hdGNoQWxsQ29tcGxldGVkKHVpbnQ2NF90IG1hdGNoQWxsUmVxdWVzdElkZW50aWZp
ZXIsIFZlY3RvcjxXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YT4mJik7CiAgICAgdm9p
ZCBjbGFpbUNvbXBsZXRlZCh1aW50NjRfdCBjbGFpbVJlcXVlc3RJZGVudGlmaWVyKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCBhNjIyNGYwYTQwNjVj
Mjc3ZGFkYTdkMTBkNWY3OWE4YzU3MjBkNGU3Li45NDY4ZDMxNzY1ZGY1NWI2OGRhZGIyNmY4NzRh
NmI5MTc0Zjg5ZDlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5oCkBAIC00OCw5ICs0OCwxMCBAQAogI2luY2x1ZGUgIlNoYXJlU2hlZXRDYWxsYmFja0lELmgi
CiAjaW5jbHVkZSAiU2hhcmVkTWVtb3J5LmgiCiAjaW5jbHVkZSAiU3RvcmFnZU5hbWVzcGFjZUlk
ZW50aWZpZXIuaCIKKyNpbmNsdWRlICJUcmFuc2FjdGlvbklELmgiCiAjaW5jbHVkZSAiVXNlckRh
dGEuaCIKICNpbmNsdWRlICJXZWJCYWNrRm9yd2FyZExpc3RQcm94eS5oIgotI2luY2x1ZGUgIldl
YlBhZ2VNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYlBhZ2VNZXNzYWdlc1JlcGxpZXMuaCIKICNp
bmNsdWRlICJXZWJVUkxTY2hlbWVIYW5kbGVyLmgiCiAjaW5jbHVkZSAiV2ViVW5kb1N0ZXBJRC5o
IgogI2luY2x1ZGUgIldlYlVzZXJDb250ZW50Q29udHJvbGxlci5oIgpAQCAtMTAwLDcgKzEwMSw2
IEBAIHR5cGVkZWYgc3RydWN0IF9BdGtPYmplY3QgQXRrT2JqZWN0OwogCiAjaWYgUExBVEZPUk0o
SU9TX0ZBTUlMWSkKICNpbmNsdWRlICJHZXN0dXJlVHlwZXMuaCIKLSNpbmNsdWRlICJXZWJQYWdl
TWVzc2FnZXMuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0ludFBvaW50SGFzaC5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvVmlld3BvcnRDb25maWd1cmF0aW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9XS0Nv
bnRlbnRPYnNlcnZhdGlvbi5oPgpAQCAtMTc1LDcgKzE3NSw2IEBAIGNsYXNzIFJlc291cmNlUmVz
cG9uc2U7CiBjbGFzcyBTZWxlY3Rpb25SZWN0OwogY2xhc3MgU2hhcmVkQnVmZmVyOwogY2xhc3Mg
U3Vic3RpdHV0ZURhdGE7Ci1jbGFzcyBTeW50aGV0aWNFZGl0aW5nQ29tbWFuZFR5cGU7CiBjbGFz
cyBUZXh0Q2hlY2tpbmdSZXF1ZXN0OwogY2xhc3MgVmlzaWJsZVBvc2l0aW9uOwogCkBAIC0yNTgs
MTAgKzI1NywxMyBAQCBjbGFzcyBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjsKIAogZW51bSBG
aW5kT3B0aW9ucyA6IHVpbnQxNl90OwogZW51bSBjbGFzcyBEcmFnQ29udHJvbGxlckFjdGlvbiA6
IHVpbnQ4X3Q7CitlbnVtIGNsYXNzIFN5bnRoZXRpY0VkaXRpbmdDb21tYW5kVHlwZSA6IHVpbnQ4
X3Q7CiAKIHN0cnVjdCBBdHRyaWJ1dGVkU3RyaW5nOwogc3RydWN0IEJhY2tGb3J3YXJkTGlzdEl0
ZW1TdGF0ZTsKIHN0cnVjdCBEYXRhRGV0ZWN0aW9uUmVzdWx0Oworc3RydWN0IERvY3VtZW50RWRp
dGluZ0NvbnRleHQ7CitzdHJ1Y3QgRG9jdW1lbnRFZGl0aW5nQ29udGV4dFJlcXVlc3Q7CiBzdHJ1
Y3QgRWRpdG9yU3RhdGU7CiBzdHJ1Y3QgRm9udEluZm87CiBzdHJ1Y3QgSW5zZXJ0VGV4dE9wdGlv
bnM7CkBAIC04NzksNyArODgxLDcgQEAgcHVibGljOgogI2VuZGlmCiAKICNpZiBQTEFURk9STShJ
T1NfRkFNSUxZKQotICAgIHZvaWQgY29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmdBbmREcmF3VG9QREYo
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBQcmludEluZm8mLCBDYWxsYmFja0lELCBN
ZXNzYWdlczo6V2ViUGFnZTo6Q29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmdBbmREcmF3VG9QREY6OkRl
bGF5ZWRSZXBseSYmKTsKKyAgICB2b2lkIGNvbXB1dGVQYWdlc0ZvclByaW50aW5nQW5kRHJhd1Rv
UERGKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgUHJpbnRJbmZvJiwgQ2FsbGJhY2tJ
RCwgTWVzc2FnZXM6OldlYlBhZ2U6OkNvbXB1dGVQYWdlc0ZvclByaW50aW5nQW5kRHJhd1RvUERG
RGVsYXllZFJlcGx5JiYpOwogI2VuZGlmCiAKICAgICB2b2lkIGRyYXdUb1BERihXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIsIGNvbnN0IE9wdGlvbmFsPFdlYkNvcmU6OkZsb2F0UmVjdD4mLCBDYWxs
YmFja0lEKTsKQEAgLTEzMDcsNyArMTMwOSw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBleGVjdXRl
S2V5cHJlc3NDb21tYW5kc0ludGVybmFsKGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpLZXlwcmVzc0Nv
bW1hbmQ+JiwgV2ViQ29yZTo6S2V5Ym9hcmRFdmVudCopOwogI2VuZGlmCiAKLSAgICB2b2lkIHRl
c3RQcm9jZXNzSW5jb21pbmdTeW5jTWVzc2FnZXNXaGVuV2FpdGluZ0ZvclN5bmNSZXBseShNZXNz
YWdlczo6V2ViUGFnZTo6VGVzdFByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5n
Rm9yU3luY1JlcGx5OjpEZWxheWVkUmVwbHkmJik7CisgICAgdm9pZCB0ZXN0UHJvY2Vzc0luY29t
aW5nU3luY01lc3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkoTWVzc2FnZXM6OldlYlBhZ2U6
OlRlc3RQcm9jZXNzSW5jb21pbmdTeW5jTWVzc2FnZXNXaGVuV2FpdGluZ0ZvclN5bmNSZXBseURl
bGF5ZWRSZXBseSYmKTsKIAogICAgIHZvaWQgdXBkYXRlRHJhd2luZ0FyZWFMYXllclRyZWVGcmVl
emVTdGF0ZSgpOwogICAgIGJvb2wgbWFya0xheWVyc1ZvbGF0aWxlSW1tZWRpYXRlbHlJZlBvc3Np
YmxlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3Mv
V2ViUGFnZUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQ
YWdlSU9TLm1tCmluZGV4IDY2MjZjMjQzMTRkNWUxZTk4ODBiY2EwZjhjZjY0MjAzZWVkYWQ1NmIu
LjY2NzNkNjNiODJhYWNlZjYzOGQ0NjUyNzliMmM5ZDAyYjI5MDEyZjQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCkBAIC01NSw2
ICs1NSw3IEBACiAjaW1wb3J0ICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKICNpbXBvcnQgIldl
YkZyYW1lLmgiCiAjaW1wb3J0ICJXZWJJbWFnZS5oIgorI2ltcG9ydCAiV2ViUGFnZU1lc3NhZ2Vz
LmgiCiAjaW1wb3J0ICJXZWJQYWdlUHJveHlNZXNzYWdlcy5oIgogI2ltcG9ydCAiV2ViUHJldmll
d0xvYWRlckNsaWVudC5oIgogI2ltcG9ydCAiV2ViUHJvY2Vzcy5oIgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL1dlYlBhZ2VXUEUuY3BwIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL1dlYlBhZ2VXUEUuY3BwCmluZGV4IGMyYjUy
NjU5YTM2ZWE4M2U3YmRlNWNjZjE2ZmYyNzNlNDg0YzgxNTIuLjEyNGRlOTRmMDNiZjRhNzRkOGJl
NDZiMzg2ZjBiNzYwNDZjNzAwY2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL3dwZS9XZWJQYWdlV1BFLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS93cGUvV2ViUGFnZVdQRS5jcHAKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2luY2x1
ZGUgIldlYktpdFdlYlBhZ2VBY2Nlc3NpYmlsaXR5T2JqZWN0LmgiCiAjaW5jbHVkZSAiV2ViUGFn
ZVByb3h5LmgiCisjaW5jbHVkZSAiV2ViUGFnZVByb3h5TWVzc2FnZXMuaCIKICNpbmNsdWRlICJX
ZWJQcmVmZXJlbmNlc0tleXMuaCIKICNpbmNsdWRlICJXZWJQcmVmZXJlbmNlc1N0b3JlLmgiCiAj
aW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuaCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmgKaW5kZXggY2Ji
YmFjZDA0YjNjNDVjYzNiOGVhODk3NDAyNjdhZjA2MGVhOGU2Yi4uZDA0MDE2MTU0MTMyZmM0YmI4
ODBhOTU5Mzg4NTgzMWYzY2E1OWE2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvY29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5oCkBAIC0yOSw3ICsyOSw3IEBA
CiAKICNpbmNsdWRlICJDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgi
Ci0jaW5jbHVkZSAiVmlkZW9GdWxsc2NyZWVuTWFuYWdlck1lc3NhZ2VzLmgiCisjaW5jbHVkZSAi
VmlkZW9GdWxsc2NyZWVuTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oIgogI2luY2x1ZGUgPFdlYkNv
cmUvRXZlbnRMaXN0ZW5lci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSFRNTE1lZGlhRWxlbWVudEVu
dW1zLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybUNBTGF5ZXIuaD4KQEAgLTE1NCw3ICsx
NTQsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBzZXRWaWRlb0xheWVyR3Jhdml0eUVudW0odWlu
dDY0X3QgY29udGV4dElkLCB1bnNpZ25lZCBncmF2aXR5KTsKICAgICB2b2lkIGZ1bGxzY3JlZW5N
b2RlQ2hhbmdlZCh1aW50NjRfdCBjb250ZXh0SWQsIFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnRF
bnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSk7CiAgICAgdm9pZCBmdWxsc2NyZWVuTWF5UmV0dXJu
VG9JbmxpbmUodWludDY0X3QgY29udGV4dElkLCBib29sIGlzUGFnZVZpc2libGUpOwotICAgIHZv
aWQgcmVxdWVzdFJvdXRlU2hhcmluZ1BvbGljeUFuZENvbnRleHRVSUQodWludDY0X3QgY29udGV4
dElkLCBNZXNzYWdlczo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6UmVxdWVzdFJvdXRlU2hhcmlu
Z1BvbGljeUFuZENvbnRleHRVSUQ6OkFzeW5jUmVwbHkmJik7CisgICAgdm9pZCByZXF1ZXN0Um91
dGVTaGFyaW5nUG9saWN5QW5kQ29udGV4dFVJRCh1aW50NjRfdCBjb250ZXh0SWQsIE1lc3NhZ2Vz
OjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpSZXF1ZXN0Um91dGVTaGFyaW5nUG9saWN5QW5kQ29u
dGV4dFVJREFzeW5jUmVwbHkmJik7CiAKICAgICBXZWJQYWdlKiBtX3BhZ2U7CiAgICAgUmVmPFBs
YXliYWNrU2Vzc2lvbk1hbmFnZXI+IG1fcGxheWJhY2tTZXNzaW9uTWFuYWdlcjsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
Lm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFn
ZXIubW0KaW5kZXggNTMwMDA3MzMwYjg4NDJjZTEwNmI1ZDVmOTM4OWEzNTk2M2EyYzZkNy4uYWM0
MDMyYWYwNzk2N2JhNjMxNmVkYjJiYjdkYjZhZWRjMjAxNWFkNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW0KKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW0K
QEAgLTMxLDYgKzMxLDcgQEAKICNpbXBvcnQgIkxheWVySG9zdGluZ0NvbnRleHQuaCIKICNpbXBv
cnQgIkxvZ2dpbmcuaCIKICNpbXBvcnQgIlBsYXliYWNrU2Vzc2lvbk1hbmFnZXIuaCIKKyNpbXBv
cnQgIlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJNZXNzYWdlcy5oIgogI2ltcG9ydCAiVmlkZW9GdWxs
c2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZXMuaCIKICNpbXBvcnQgIldlYkNvcmVBcmd1bWVudENv
ZGVycy5oIgogI2ltcG9ydCAiV2ViUGFnZS5oIgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>381568</attachid>
            <date>2019-10-22 11:17:26 -0700</date>
            <delta_ts>2019-10-22 13:02:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-203074-20191022111725.patch</filename>
            <type>text/plain</type>
            <size>98268</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUxNDQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmVkMDg2N2IyNTA4NTVj
MTRjYjMxYzcxNDRhZjcxODYxNzA4MDgzZi4uMjc1NmU4MDI0YzViZTNlYTdkYjg1MWYzOTQwZmE2
MjM2OWYzZjYxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE5LTEwLTIyICBUaW0g
SG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIE1ha2UgaXQgcG9z
c2libGUgdG8gbm90IGluY2x1ZGUgSVBDIE1lc3NhZ2VzIGhlYWRlcnMgaW4gb3RoZXIgaGVhZGVy
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAzMDc0
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYmluZGluZ3MvanMvRXhj
ZXB0aW9uRGV0YWlscy5oOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTUV4Y2Vw
dGlvbkhhbmRsaW5nLmg6CisgICAgICAgIFNwbGl0IHRoZSBFeGNlcHRpb25EZXRhaWxzIHN0cnVj
dCBvdXQgaW50byBpdHMgb3duIGZpbGUuCisKIDIwMTktMTAtMjIgIHlvdWVubiBmYWJsZXQgIDx5
b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSBtYXlIYXZlU2VydmljZVdvcmtlclJl
Z2lzdGVyZWRGb3JPcmlnaW4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggM2Q2ZmI5YjdlNDI3MTA2MDg3ZjdhNjlmODRl
Y2U2YjdjNDcxMmI3My4uZjQ0OTI3ZWVlYjRjMzhmN2U2YTI3ZjUxYjRhZjljOWJlNTRiZDk5YiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKQEAgLTEsMyArMSw4MiBAQAorMjAxOS0xMC0yMiAgVGltIEhvcnRvbiAgPHRpbW90
aHlfaG9ydG9uQGFwcGxlLmNvbT4KKworICAgICAgICBNYWtlIGl0IHBvc3NpYmxlIHRvIG5vdCBp
bmNsdWRlIElQQyBNZXNzYWdlcyBoZWFkZXJzIGluIG90aGVyIGhlYWRlcnMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMzA3NAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1ha2UgdGhlIE1lc3NhZ2VzIGdl
bmVyYXRvciBnZW5lcmF0ZSBhIG5ldyAtTWVzc2FnZXNSZXBsaWVzLmggZmlsZSwgd2hpY2gKKyAg
ICAgICAgb25seSBpbmNsdWRlcyBoZWFkZXJzIGZvciBhbmQgZGVmaW5pdGlvbnMgb2YgRGVsYXll
ZFJlcGx5L0FzeW5jUmVwbHkgdHlwZXMsCisgICAgICAgIHdoaWNoIG5lZWQgdG8gYmUgbWVudGlv
bmVkIGFzIGFyZ3VtZW50cyB0byBtZXNzYWdlIGhhbmRlciBtZXRob2RzLCBhbmQKKyAgICAgICAg
dGh1cyBtdXN0IGJlIGF2YWlsYWJsZSBpbiB2YXJpb3VzIGhlYWRlcnMgdGhyb3VnaG91dCB0aGUg
cHJvamVjdC4KKworICAgICAgICBJbiBvcmRlciB0byBkbyB0aGlzLCB3ZSBoYXZlIHRvIGRlLW5l
c3QgdGhlbSBmcm9tIHRoZSBwcmltYXJ5IG1lc3NhZ2UKKyAgICAgICAgY2xhc3MsIGJ1dCB3ZSB0
aGVuICd1c2luZycgdGhlbSBiYWNrIGludG8gcGxhY2UgaW5zaWRlIHRoZSBtZXNzYWdlIGNsYXNz
CisgICAgICAgIHNvIHRoYXQgbW9zdCBvZiB0aGUgY29kZSBkb2Vzbid0IG5lZWQgdG8gY2hhbmdl
LgorCisgICAgICAgIFRoaXMgaGVscHMgdG8gd2lsZGx5IGRlY3JlYXNlIHRoZSBoZWFkZXIgbG9h
ZCBvZiBXZWJQYWdlLmggYW5kIFdlYlBhZ2VQcm94eS5oLAorICAgICAgICBlc3BlY2lhbGx5LCBi
ZWNhdXNlIHRoZSBudW1iZXIgb2YgaGVhZGVycyBuZWVkZWQgZm9yIHR5cGVzIGluIHRoZWlyIHJl
cGxpZXMKKyAgICAgICAgaXMgbXVjaCBzbWFsbGVyIHRoYW4gdGhlIG51bWJlciBuZWVkZWQgZm9y
IGFsbCBtZXNzYWdlIHJlY2VpdmVycy4KKworICAgICAgICBBbHNvLCBvbmx5IGludm9rZSB0aGUg
TWVzc2FnZXMgZ2VuZXJhdG9yIG9uY2UgcGVyIHNvdXJjZSBmaWxlLCBhbmQKKyAgICAgICAgb25s
eSBwYXJzZSB0aGUgc291cmNlIGZpbGUgb25jZSwgZ2VuZXJhdGluZyBhbGwgdGhyZWUgb3V0cHV0
IGZpbGVzCisgICAgICAgIGluIG9uZSBpbnZvY2F0aW9uLgorCisgICAgICAgIEFuZCB0aGVuIGNs
ZWFuIHVwIGFsbCB0aGUgbWlzc2luZyBpbmRpcmVjdCBpbmNsdWRlcyB0aGF0IHdlIGxvc3QgYnkg
ZG9pbmcgdGhpcy4KKworICAgICAgICBBbGwtaW4tYWxsIHRoaXMgaXMgd29ydGggcm91Z2hseSA4
JSBvbiB0aGUgV2ViS2l0MiBCdWlsZCBUaW1lIEJlbmNobWFyay4KKworICAgICAgICAqIENNYWtl
TGlzdHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3Q6Cisg
ICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9D
bGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHA6CisgICAgICAgICog
TmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwOgorICAgICAg
ICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmg6CisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuaDoKKyAgICAgICAgKiBQbHVn
aW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5jcHA6CisgICAgICAgICogUGx1Z2luUHJv
Y2Vzcy9QbHVnaW5Db250cm9sbGVyUHJveHkuaDoKKyAgICAgICAgKiBQbHVnaW5Qcm9jZXNzL1dl
YlByb2Nlc3NDb25uZWN0aW9uLmg6CisgICAgICAgICogU2NyaXB0cy9NYWtlZmlsZToKKyAgICAg
ICAgKiBTY3JpcHRzL2dlbmVyYXRlLW1lc3NhZ2UtcmVjZWl2ZXIucHk6CisgICAgICAgIChtYWlu
KToKKyAgICAgICAgKiBTY3JpcHRzL2dlbmVyYXRlLW1lc3NhZ2VzLWhlYWRlci5weTogUmVtb3Zl
ZC4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdC9MZWdhY3lNZXNzYWdlUmVjZWl2ZXItZXhwZWN0
ZWQuY3BwOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0L0xlZ2FjeU1lc3NhZ2VzLWV4cGVjdGVk
Lmg6CisgICAgICAgICogU2NyaXB0cy93ZWJraXQvTGVnYWN5TWVzc2FnZXNSZXBsaWVzLWV4cGVj
dGVkLmg6IEFkZGVkLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0L01lc3NhZ2VSZWNlaXZlci1l
eHBlY3RlZC5jcHA6CisgICAgICAgICogU2NyaXB0cy93ZWJraXQvTWVzc2FnZVJlY2VpdmVyU3Vw
ZXJjbGFzcy1leHBlY3RlZC5jcHA6CisgICAgICAgICogU2NyaXB0cy93ZWJraXQvTWVzc2FnZXMt
ZXhwZWN0ZWQuaDoKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdC9NZXNzYWdlc1JlcGxpZXMtZXhw
ZWN0ZWQuaDogQWRkZWQuCisgICAgICAgICogU2NyaXB0cy93ZWJraXQvTWVzc2FnZXNSZXBsaWVz
U3VwZXJjbGFzc1JlcGxpZXMtZXhwZWN0ZWQuaDogQWRkZWQuCisgICAgICAgICogU2NyaXB0cy93
ZWJraXQvTWVzc2FnZXNTdXBlcmNsYXNzLWV4cGVjdGVkLmg6CisgICAgICAgICogU2NyaXB0cy93
ZWJraXQvbWVzc2FnZXMucHk6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyUHJveHkuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVk
aWFDYXB0dXJlTWFuYWdlclByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0Rvd25sb2Fkcy9E
b3dubG9hZFByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nl
c3NQcm94eS5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQ
cm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NNYW5hZ2Vy
LmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzTWFuYWdlci5o
OgorICAgICAgICAqIFVJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5oOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9TdXNwZW5kZWRQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgICog
VUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Bvb2wuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lmg6CisgICAg
ICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3Lm1tOgorICAgICAgICAqIFVJUHJvY2Vz
cy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tOgorICAgICAgICAqIFVJUHJvY2Vzcy9t
YWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94eS5tbToKKyAgICAgICAgKiBXZWJL
aXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3Jh
Z2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwOgorICAgICAgICAqIFdlYlByb2Nl
c3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oOgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdl
L2lvcy9XZWJQYWdlSU9TLm1tOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvVmlkZW9GdWxs
c2NyZWVuTWFuYWdlci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvVmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlci5tbToKKwogMjAxOS0xMC0yMiAgeW91ZW5uIGZhYmxldCAgPHlvdWVubkBhcHBs
ZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIG1heUhhdmVTZXJ2aWNlV29ya2VyUmVnaXN0ZXJlZEZv
ck9yaWdpbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZSBiL1NvdXJj
ZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKaW5kZXggYjdlZjFlMThiYjFmZWI2MjkzNTA5MzJlMDQw
NjRlZWNmNTk0YjQ3Mi4uZTc5ZDgxNTJhNmUyYjIwYjFkYzk5MWE0MzZlODFhZDc1NjhmNjRiOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9IZWFkZXJzLmNtYWtlCkBAIC0xODcsNiArMTg3LDcgQEAgc2V0KFdlYkNvcmVfUFJJVkFU
RV9GUkFNRVdPUktfSEVBREVSUwogICAgIGJpbmRpbmdzL2pzL0NhY2hlZFNjcmlwdEZldGNoZXIu
aAogICAgIGJpbmRpbmdzL2pzL0NvbW1vblZNLmgKICAgICBiaW5kaW5ncy9qcy9ET01XcmFwcGVy
V29ybGQuaAorICAgIGJpbmRpbmdzL2pzL0V4Y2VwdGlvbkRldGFpbHMuaAogICAgIGJpbmRpbmdz
L2pzL0dDQ29udHJvbGxlci5oCiAgICAgYmluZGluZ3MvanMvSURCQmluZGluZ1V0aWxpdGllcy5o
CiAgICAgYmluZGluZ3MvanMvSlNDU1NSdWxlQ3VzdG9tLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA0MzgxNzk1YzM1YmU2YTYx
YjI0OTIyNTdlY2FlZTNiNmUzZDhhY2VlLi41MTI1NmUwODU1M2I5NGVlODg3YzQ2N2MxYmIyZjEz
MzgxZWU5MmFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCkBAIC03MjAsNiArNzIwLDcgQEAKIAkJMkQwNjIxNTIxREE2M0FBMjAwQTdG
QjI2IC8qIFdlYktpdE1lZGlhS2V5TmVlZGVkRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkQwNjIxNDcxREE2M0E3OTAwQTdGQjI2IC8qIFdl
YktpdE1lZGlhS2V5TmVlZGVkRXZlbnQuY3BwICovOyB9OwogCQkyRDBCNEFBQjE4REExQ0NEMDA0
MzRERTEgLyogSU9TdXJmYWNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAyRDBCNEFBOTE4REExQ0NEMDA0MzRERTEgLyogSU9TdXJmYWNlLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMkQyNTM5NjMxOENF
N0Y2MjAwMjcwMjIyIC8qIEltYWdlQ29udHJvbHNCdXR0b25FbGVtZW50TWFjLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRDI1Mzk2MTE4Q0U3RjYyMDAy
NzAyMjIgLyogSW1hZ2VDb250cm9sc0J1dHRvbkVsZW1lbnRNYWMuaCAqLzsgfTsKKwkJMkQyOTM4
NkIyMzVGNkI2OTAwQzdGM0IyIC8qIEV4Y2VwdGlvbkRldGFpbHMuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJEMjkzODY5MjM1RjZCNjgwMEM3RjNCMiAv
KiBFeGNlcHRpb25EZXRhaWxzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJMkQyOUVDQzYxOTJFQ0M4MzAwOTg0Qjc4IC8qIERpc3BsYXlSZWZyZXNo
TW9uaXRvckNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMkQyOUVDQzIxOTJFQ0M4MzAwOTg0Qjc4IC8qIERpc3BsYXlSZWZyZXNoTW9uaXRvckNs
aWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTJEMjlFQ0M4MTkyRUNDODMwMDk4NEI3OCAvKiBEaXNwbGF5UmVmcmVzaE1vbml0b3JNYW5hZ2Vy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRDI5RUND
NDE5MkVDQzgzMDA5ODRCNzggLyogRGlzcGxheVJlZnJlc2hNb25pdG9yTWFuYWdlci5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTJEMjlFQ0NBMTky
RjFGMUQwMDk4NEI3OCAvKiBEaXNwbGF5UmVmcmVzaE1vbml0b3JJT1MuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJEMjlFQ0M5MTkyRjFGMUQwMDk4NEI3
OCAvKiBEaXNwbGF5UmVmcmVzaE1vbml0b3JJT1MuaCAqLzsgfTsKQEAgLTY2NDcsNiArNjY0OCw3
IEBACiAJCTJEMTkzMjE4MURBNjRFMTkwMEE1NEEwOCAvKiBXZWJLaXRNZWRpYUtleUVycm9yLmlk
bCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJLaXRNZWRpYUtleUVycm9yLmlkbDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkQyNTM5NjAxOENFN0Y2MjAwMjcwMjIyIC8qIEltYWdl
Q29udHJvbHNCdXR0b25FbGVtZW50TWFjLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEltYWdlQ29udHJvbHNCdXR0b25FbGVtZW50TWFjLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMkQyNTM5NjExOENFN0Y2MjAwMjcwMjIyIC8qIEltYWdlQ29udHJv
bHNCdXR0b25FbGVtZW50TWFjLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElt
YWdlQ29udHJvbHNCdXR0b25FbGVtZW50TWFjLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTJEMjkzODY5MjM1RjZCNjgwMEM3RjNCMiAvKiBFeGNlcHRpb25EZXRhaWxzLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEV4Y2VwdGlvbkRldGFpbHMuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkQyOUVDQzExOTJFQ0M4MzAwOTg0Qjc4IC8qIERpc3BsYXlS
ZWZyZXNoTW9uaXRvckNsaWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBEaXNwbGF5UmVmcmVzaE1vbml0b3JDbGllbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkyRDI5RUNDMjE5MkVDQzgzMDA5ODRCNzggLyogRGlzcGxheVJlZnJlc2hNb25p
dG9yQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERpc3BsYXlSZWZy
ZXNoTW9uaXRvckNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRDI5RUND
MzE5MkVDQzgzMDA5ODRCNzggLyogRGlzcGxheVJlZnJlc2hNb25pdG9yTWFuYWdlci5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEaXNwbGF5UmVmcmVzaE1vbml0b3JN
YW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI1MDk1LDYgKzI1MDk3
LDcgQEAKIAkJCQk3QzUxNkFEMjFGMzUyNTIwMDAzNEI2QkYgLyogRE9NUHJvbWlzZVByb3h5Lmgg
Ki8sCiAJCQkJQkM1M0RBNDcxMTQzMTM0RDAwMEQ4MTdFIC8qIERPTVdyYXBwZXJXb3JsZC5jcHAg
Ki8sCiAJCQkJQkM1M0RBMkQxMTQzMTIxRTAwMEQ4MTdFIC8qIERPTVdyYXBwZXJXb3JsZC5oICov
LAorCQkJCTJEMjkzODY5MjM1RjZCNjgwMEM3RjNCMiAvKiBFeGNlcHRpb25EZXRhaWxzLmggKi8s
CiAJCQkJMTQzMkU4NDgwQzUxNDkzRjAwQjE1MDBGIC8qIEdDQ29udHJvbGxlci5jcHAgKi8sCiAJ
CQkJMTQzMkU4NDYwQzUxNDkzODAwQjE1MDBGIC8qIEdDQ29udHJvbGxlci5oICovLAogCQkJCUM1
ODVBNjYwMTFENEZBQzUwMDRDM0U0QiAvKiBJREJCaW5kaW5nVXRpbGl0aWVzLmNwcCAqLywKQEAg
LTI5NTA3LDYgKzI5NTEwLDcgQEAKIAkJCQk5M0QxOTYzMzFENkNBQjgyMDBGQzdFNDcgLyogRXhj
ZXB0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzVGQkNGMjA5QkExNDNCMDBFMjMwQjEgLyog
RXhjZXB0aW9uQ29kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTFGNjQ1NjIxRjQ1Mzk4RjAwQjU0
REVEIC8qIEV4Y2VwdGlvbkRhdGEuaCBpbiBIZWFkZXJzICovLAorCQkJCTJEMjkzODZCMjM1RjZC
NjkwMEM3RjNCMiAvKiBFeGNlcHRpb25EZXRhaWxzLmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0Qx
OTYzMTFENkNBQjc2MDBGQzdFNDcgLyogRXhjZXB0aW9uT3IuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTgzN0ZCMzQ1MUY5RUEwNkQwMEQwRkMzMSAvKiBFeHRlbmRhYmxlTWVzc2FnZUV2ZW50LmggaW4g
SGVhZGVycyAqLywKIAkJCQkzMURDREY0NDFEQTFDNDU0MDBFQTVCOTMgLyogRXh0ZW5kZWRDb2xv
ci5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9FeGNlcHRpb25EZXRhaWxzLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9FeGNlcHRp
b25EZXRhaWxzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2NmYWE1NGUzNGRhNTU3ZjgzYTQ3Yjg5MjA4MGYwMjNm
OTJlZTg0MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0V4
Y2VwdGlvbkRldGFpbHMuaApAQCAtMCwwICsxLDM5IEBACisvKgorKiBDb3B5cmlnaHQgKEMpIDIw
MTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorKgorKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisqIGFyZSBtZXQ6CisqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorKgorKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SCisqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgor
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyovCisK
KyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitzdHJ1Y3QgRXhjZXB0aW9uRGV0YWlscyB7CisgICAgU3RyaW5nIG1lc3NhZ2U7
CisgICAgaW50IGxpbmVOdW1iZXIgeyAwIH07CisgICAgaW50IGNvbHVtbk51bWJlciB7IDAgfTsK
KyAgICBTdHJpbmcgc291cmNlVVJMOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01FeGNlcHRpb25IYW5kbGlu
Zy5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01FeGNlcHRpb25IYW5kbGluZy5o
CmluZGV4IDYyMmJkNDg3ODA5MDJjOTUwYTUxN2ExZjJjNmNmZmE1ZTRhMDc0MDUuLjliNjA4N2E4
YmZjOTA0MzcwYWY0OWFmZmEzYzM5MmI1ZGVmZDJmMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRE9NRXhjZXB0aW9uSGFuZGxpbmcuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmgKQEAgLTIzLDYgKzIzLDcg
QEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJFeGNlcHRpb25EZXRhaWxzLmgiCiAjaW5j
bHVkZSAiRXhjZXB0aW9uT3IuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9UaHJvd1Njb3Bl
Lmg+CiAKQEAgLTM2LDEzICszNyw2IEBAIGNsYXNzIENhY2hlZFNjcmlwdDsKIGNsYXNzIERlZmVy
cmVkUHJvbWlzZTsKIGNsYXNzIEpTRE9NR2xvYmFsT2JqZWN0OwogCi1zdHJ1Y3QgRXhjZXB0aW9u
RGV0YWlscyB7Ci0gICAgU3RyaW5nIG1lc3NhZ2U7Ci0gICAgaW50IGxpbmVOdW1iZXIgeyAwIH07
Ci0gICAgaW50IGNvbHVtbk51bWJlciB7IDAgfTsKLSAgICBTdHJpbmcgc291cmNlVVJMOwotfTsK
LQogdm9pZCB0aHJvd0F0dHJpYnV0ZVR5cGVFcnJvcihKU0M6OkpTR2xvYmFsT2JqZWN0JiwgSlND
OjpUaHJvd1Njb3BlJiwgY29uc3QgY2hhciogaW50ZXJmYWNlTmFtZSwgY29uc3QgY2hhciogYXR0
cmlidXRlTmFtZSwgY29uc3QgY2hhciogZXhwZWN0ZWRUeXBlKTsKIFdFQkNPUkVfRVhQT1JUIGJv
b2wgdGhyb3dTZXR0ZXJUeXBlRXJyb3IoSlNDOjpKU0dsb2JhbE9iamVjdCYsIEpTQzo6VGhyb3dT
Y29wZSYsIGNvbnN0IGNoYXIqIGludGVyZmFjZU5hbWUsIGNvbnN0IGNoYXIqIGF0dHJpYnV0ZU5h
bWUpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0IGIvU291cmNl
L1dlYktpdC9DTWFrZUxpc3RzLnR4dAppbmRleCAxZTA2ZTYyNjBjZDJkOTRlMjQ4MDhlYjU3ZjA0
MjcwZjEzNTNhNDE4Li5lZmNjMmU4NWE0NDA5OWUzOGU4ZmMxOTc5NTI2N2Q0NjRjMDY3NDkyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJL
aXQvQ01ha2VMaXN0cy50eHQKQEAgLTMwOSwyMSArMzA5LDIwIEBAIHNldChXZWJLaXRfQVVUT01B
VElPTl9QUk9UT0NPTF9HRU5FUkFUT1JfRVhUUkFfRkxBR1MKIFdFQktJVF9GUkFNRVdPUktfREVD
TEFSRShXZWJLaXQpCiBXRUJLSVRfSU5DTFVERV9DT05GSUdfRklMRVNfSUZfRVhJU1RTKCkKIAot
IyBIZWxwZXIgbWFjcm8gd2hpY2ggd3JhcHMgZ2VuZXJhdGUtbWVzc2FnZS1yZWNlaXZlci5weSBh
bmQgZ2VuZXJhdGUtbWVzc2FnZS1oZWFkZXIucHkgc2NyaXB0cworIyBIZWxwZXIgbWFjcm8gd2hp
Y2ggd3JhcHMgdGhlIGdlbmVyYXRlLW1lc3NhZ2UtcmVjZWl2ZXIucHkgc2NyaXB0CiAjICAgX291
dHB1dF9zb3VyY2UgaXMgYSBsaXN0IG5hbWUgd2hpY2ggd2lsbCBjb250YWluIGdlbmVyYXRlZCBz
b3VyY2VzLihlZy4gV2ViS2l0X1NPVVJDRVMpCiAjICAgX2lucHV0X2ZpbGVzIGFyZSBtZXNzYWdl
cy5pbiBmaWxlcyB0byBnZW5lcmF0ZS4KIG1hY3JvKEdFTkVSQVRFX01FU1NBR0VfU09VUkNFUyBf
b3V0cHV0X3NvdXJjZSBfaW5wdXRfZmlsZXMpCiAgICAgZm9yZWFjaCAoX2ZpbGUgJHtfaW5wdXRf
ZmlsZXN9KQogICAgICAgICBnZXRfZmlsZW5hbWVfY29tcG9uZW50KF9uYW1lICR7X2ZpbGV9IE5B
TUVfV0UpCiAgICAgICAgIGFkZF9jdXN0b21fY29tbWFuZCgKLSAgICAgICAgICAgIE9VVFBVVCAk
e1dlYktpdF9ERVJJVkVEX1NPVVJDRVNfRElSfS8ke19uYW1lfU1lc3NhZ2VSZWNlaXZlci5jcHAg
JHtXZWJLaXRfREVSSVZFRF9TT1VSQ0VTX0RJUn0vJHtfbmFtZX1NZXNzYWdlcy5oCisgICAgICAg
ICAgICBPVVRQVVQgJHtXZWJLaXRfREVSSVZFRF9TT1VSQ0VTX0RJUn0vJHtfbmFtZX1NZXNzYWdl
UmVjZWl2ZXIuY3BwICR7V2ViS2l0X0RFUklWRURfU09VUkNFU19ESVJ9LyR7X25hbWV9TWVzc2Fn
ZXMuaCAke1dlYktpdF9ERVJJVkVEX1NPVVJDRVNfRElSfS8ke19uYW1lfU1lc3NhZ2VzUmVwbGll
cy5oCiAgICAgICAgICAgICBNQUlOX0RFUEVOREVOQ1kgJHtfZmlsZX0KICAgICAgICAgICAgIERF
UEVORFMgJHtXRUJLSVRfRElSfS9TY3JpcHRzL3dlYmtpdC9fX2luaXRfXy5weQogICAgICAgICAg
ICAgICAgICAgICAke1dFQktJVF9ESVJ9L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CiAgICAg
ICAgICAgICAgICAgICAgICR7V0VCS0lUX0RJUn0vU2NyaXB0cy93ZWJraXQvbW9kZWwucHkKICAg
ICAgICAgICAgICAgICAgICAgJHtXRUJLSVRfRElSfS9TY3JpcHRzL3dlYmtpdC9wYXJzZXIucHkK
LSAgICAgICAgICAgIENPTU1BTkQgJHtQWVRIT05fRVhFQ1VUQUJMRX0gJHtXRUJLSVRfRElSfS9T
Y3JpcHRzL2dlbmVyYXRlLW1lc3NhZ2UtcmVjZWl2ZXIucHkgJHtfZmlsZX0gPiAke1dlYktpdF9E
RVJJVkVEX1NPVVJDRVNfRElSfS8ke19uYW1lfU1lc3NhZ2VSZWNlaXZlci5jcHAKLSAgICAgICAg
ICAgIENPTU1BTkQgJHtQWVRIT05fRVhFQ1VUQUJMRX0gJHtXRUJLSVRfRElSfS9TY3JpcHRzL2dl
bmVyYXRlLW1lc3NhZ2VzLWhlYWRlci5weSAke19maWxlfSA+ICR7V2ViS2l0X0RFUklWRURfU09V
UkNFU19ESVJ9LyR7X25hbWV9TWVzc2FnZXMuaAorICAgICAgICAgICAgQ09NTUFORCAke1BZVEhP
Tl9FWEVDVVRBQkxFfSAke1dFQktJVF9ESVJ9L1NjcmlwdHMvZ2VuZXJhdGUtbWVzc2FnZS1yZWNl
aXZlci5weSAke19maWxlfSAtLWltcGxlbWVudGF0aW9uICR7V2ViS2l0X0RFUklWRURfU09VUkNF
U19ESVJ9LyR7X25hbWV9TWVzc2FnZVJlY2VpdmVyLmNwcCAtLWhlYWRlciAke1dlYktpdF9ERVJJ
VkVEX1NPVVJDRVNfRElSfS8ke19uYW1lfU1lc3NhZ2VzLmggLS1yZXBseS1oZWFkZXIgJHtXZWJL
aXRfREVSSVZFRF9TT1VSQ0VTX0RJUn0vJHtfbmFtZX1NZXNzYWdlc1JlcGxpZXMuaAogICAgICAg
ICAgICAgV09SS0lOR19ESVJFQ1RPUlkgJHtXRUJLSVRfRElSfQogICAgICAgICAgICAgVkVSQkFU
SU0pCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNm
aWxlbGlzdCBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdApp
bmRleCBmMWFkYWQ2MjY5ZDAxMmNhYjFkZDcyYjU5MDUyNThlZjkwOWY5NWE2Li5jODQ1NGJiZTRl
ZDBiMmMyM2U3YzRjZWUzMzkwODgxYmY2ODI2YWYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYktpdC9EZXJp
dmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CkBAIC00Niw3ICs0Niw2IEBAICQoUFJPSkVDVF9E
SVIpL1NjcmlwdHMvUHJlZmVyZW5jZXNUZW1wbGF0ZXMvV2ViUHJlZmVyZW5jZXNLZXlzLmguZXJi
CiAkKFBST0pFQ1RfRElSKS9TY3JpcHRzL1ByZWZlcmVuY2VzVGVtcGxhdGVzL1dlYlByZWZlcmVu
Y2VzU3RvcmVEZWZhdWx0c01hcC5jcHAuZXJiCiAkKFBST0pFQ1RfRElSKS9TY3JpcHRzL2dlbmVy
YXRlLWh0dHBzLXVwZ3JhZGUtZGF0YWJhc2Uuc2gKICQoUFJPSkVDVF9ESVIpL1NjcmlwdHMvZ2Vu
ZXJhdGUtbWVzc2FnZS1yZWNlaXZlci5weQotJChQUk9KRUNUX0RJUikvU2NyaXB0cy9nZW5lcmF0
ZS1tZXNzYWdlcy1oZWFkZXIucHkKICQoUFJPSkVDVF9ESVIpL1NjcmlwdHMvd2Via2l0L19faW5p
dF9fLnB5CiAkKFBST0pFQ1RfRElSKS9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQogJChQUk9K
RUNUX0RJUikvU2NyaXB0cy93ZWJraXQvbW9kZWwucHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFr
ZQppbmRleCBjMzljMjk3NTU2NzZlMmE2NTA4ZmE3ZmU0MGQ5NjgxMjU0YWY3NmUwLi40MmNjMDU0
MDc0ZmNjYTI2ZDUwOWE4ZDNlY2FmN2NjZjljNjA4NmEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNl
cy5tYWtlCkBAIC0xODksNyArMTg5LDYgQEAgTUVTU0FHRV9SRUNFSVZFUlMgPSBcCiAKIFNDUklQ
VFMgPSBcCiAgICAgJChXZWJLaXQyKS9TY3JpcHRzL2dlbmVyYXRlLW1lc3NhZ2UtcmVjZWl2ZXIu
cHkgXAotICAgICQoV2ViS2l0MikvU2NyaXB0cy9nZW5lcmF0ZS1tZXNzYWdlcy1oZWFkZXIucHkg
XAogICAgICQoV2ViS2l0MikvU2NyaXB0cy93ZWJraXQvX19pbml0X18ucHkgXAogICAgICQoV2Vi
S2l0MikvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkgXAogICAgICQoV2ViS2l0MikvU2NyaXB0
cy93ZWJraXQvbW9kZWwucHkgXApAQCAtMjA2LDE1ICsyMDUsMTIgQEAgSEVBREVSX0ZMQUdTID0g
JChzaGVsbCBlY2hvICQoQlVJTFRfUFJPRFVDVFNfRElSKSAkKEhFQURFUl9TRUFSQ0hfUEFUSFMp
ICQoU1lTVEUKIGFsbCA6IFwKICAgICAkKE1FU1NBR0VfUkVDRUlWRVJTOiU9JU1lc3NhZ2VSZWNl
aXZlci5jcHApIFwKICAgICAkKE1FU1NBR0VfUkVDRUlWRVJTOiU9JU1lc3NhZ2VzLmgpIFwKKyAg
ICAkKE1FU1NBR0VfUkVDRUlWRVJTOiU9JU1lc3NhZ2VzUmVwbGllcy5oKSBcCiAjCiAKLSVNZXNz
YWdlUmVjZWl2ZXIuY3BwIDogJS5tZXNzYWdlcy5pbiAkKFNDUklQVFMpCislTWVzc2FnZVJlY2Vp
dmVyLmNwcCAlTWVzc2FnZXMuaCAlTWVzc2FnZXNSZXBsaWVzLmggOiAlLm1lc3NhZ2VzLmluICQo
U0NSSVBUUykKIAlAZWNobyBHZW5lcmF0aW5nIG1lc3NhZ2UgcmVjZWl2ZXIgZm9yICQqLi4uCi0J
QHB5dGhvbiAkKFdlYktpdDIpL1NjcmlwdHMvZ2VuZXJhdGUtbWVzc2FnZS1yZWNlaXZlci5weSAk
PCA+ICRACi0KLSVNZXNzYWdlcy5oIDogJS5tZXNzYWdlcy5pbiAkKFNDUklQVFMpCi0JQGVjaG8g
R2VuZXJhdGluZyBtZXNzYWdlcyBoZWFkZXIgZm9yICQqLi4uCi0JQHB5dGhvbiAkKFdlYktpdDIp
L1NjcmlwdHMvZ2VuZXJhdGUtbWVzc2FnZXMtaGVhZGVyLnB5ICQ8ID4gJEAKKwlAcHl0aG9uICQo
V2ViS2l0MikvU2NyaXB0cy9nZW5lcmF0ZS1tZXNzYWdlLXJlY2VpdmVyLnB5ICQ8IC0taW1wbGVt
ZW50YXRpb24gJCpNZXNzYWdlUmVjZWl2ZXIuY3BwIC0taGVhZGVyICQqTWVzc2FnZXMuaCAtLXJl
cGx5LWhlYWRlciAkKk1lc3NhZ2VzUmVwbGllcy5oCiAKIFRFWFRfUFJFUFJPQ0VTU09SX0ZMQUdT
PS1FIC1QIC13CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xh
c3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9y
ZS5jcHAKaW5kZXggMWRiNGVjMjQ5MWQ2NjE3ZWNjOTRmYWRlMmU0ZTA3MmJmOWY5YjY5MC4uZTlk
MDhlZTk1ZTc0MTRiYzlmMzRjNDI1ZDM4ZDU5OGRlYzczZmNiYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVy
L1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNp
bmNsdWRlICJBUElEaWN0aW9uYXJ5LmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUg
Ik5ldHdvcmtQcm9jZXNzLmgiCisjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NQcm94eU1lc3NhZ2Vz
LmgiCiAjaW5jbHVkZSAiTmV0d29ya1Nlc3Npb24uaCIKICNpbmNsdWRlICJSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5oIgogI2luY2x1ZGUgIlJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NNZW1vcnlTdG9yZS5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAppbmRleCBjMzU3YWE2
MjYyY2Y2MzJiOTZlNmY2N2Y3OGY4MjdkYTZhNDYzYzEzLi5iOGQzZjk5YTAxZDc2Y2UxOTBiMTM4
YWFlMWVmMmNjNWZhOTVlN2VlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcApAQCAtMzEs
NiArMzEsNyBAQAogI2luY2x1ZGUgIkRhdGFSZWZlcmVuY2UuaCIKICNpbmNsdWRlICJMb2dnaW5n
LmgiCiAjaW5jbHVkZSAiTmV0d29ya0NhY2hlLmgiCisjaW5jbHVkZSAiTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3NNZXNzYWdlcy5oIgogI2luY2x1ZGUgIk5ldHdvcmtNRE5TUmVnaXN0ZXJN
ZXNzYWdlcy5oIgogI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzLmgiCiAjaW5jbHVkZSAiTmV0d29y
a1Byb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAppbmRl
eCBhMDJhMWMzYjk5YmVkNTc5NzlmNWQ3ZDU2NzM2NzNiNjExYThlZWFhLi45N2IyNzQ0ZWQ2MDQz
NmY0NzQ2NmIzNGNjYTllNjNjMjU1NDNlNzcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKKysrIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCkBA
IC0yOSwxMCArMjksMTIgQEAKICNpbmNsdWRlICJDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiRG93
bmxvYWRJRC5oIgogI2luY2x1ZGUgIk5ldHdvcmtBY3Rpdml0eVRyYWNrZXIuaCIKLSNpbmNsdWRl
ICJOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzc01lc3NhZ2VzLmgiCisjaW5jbHVkZSAiTmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlc1JlcGxpZXMuaCIKICNpbmNsdWRlICJO
ZXR3b3JrTUROU1JlZ2lzdGVyLmgiCiAjaW5jbHVkZSAiTmV0d29ya1JUQ1Byb3ZpZGVyLmgiCiAj
aW5jbHVkZSAiTmV0d29ya1Jlc291cmNlTG9hZE1hcC5oIgorI2luY2x1ZGUgIlNhbmRib3hFeHRl
bnNpb24uaCIKKyNpbmNsdWRlICJXZWJQYWdlUHJveHlJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAi
V2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHkuaCIKICNpbmNsdWRlICJXZWJSZXNvdXJjZUxvYWRP
YnNlcnZlci5oIgogI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVJZGVudGlmaWVyLmg+CkBAIC01MCw2
ICs1Miw3IEBAIGNsYXNzIFNlc3Npb25JRDsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3Mg
QmxvYkRhdGFGaWxlUmVmZXJlbmNlOworY2xhc3MgQmxvYlBhcnQ7CiBjbGFzcyBCbG9iUmVnaXN0
cnlJbXBsOwogY2xhc3MgUmVzb3VyY2VFcnJvcjsKIGNsYXNzIFJlc291cmNlUmVxdWVzdDsKQEAg
LTY0LDYgKzY3LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIE5ldHdvcmtQcm9jZXNz
OwogY2xhc3MgTmV0d29ya1Jlc291cmNlTG9hZGVyOworY2xhc3MgTmV0d29ya1Jlc291cmNlTG9h
ZFBhcmFtZXRlcnM7CiBjbGFzcyBOZXR3b3JrU2Vzc2lvbjsKIGNsYXNzIE5ldHdvcmtTb2NrZXRD
aGFubmVsOwogY2xhc3MgTmV0d29ya1NvY2tldFN0cmVhbTsKQEAgLTE3Nyw4ICsxODEsOCBAQCBw
cml2YXRlOgogICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzc01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJiwgc3RkOjp1bmlxdWVf
cHRyPElQQzo6RW5jb2Rlcj4mKTsKIAogICAgIHZvaWQgc2NoZWR1bGVSZXNvdXJjZUxvYWQoTmV0
d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMmJik7Ci0gICAgdm9pZCBwZXJmb3JtU3luY2hyb25v
dXNMb2FkKE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzJiYsIE1lc3NhZ2VzOjpOZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzczo6UGVyZm9ybVN5bmNocm9ub3VzTG9hZDo6RGVsYXllZFJl
cGx5JiYpOwotICAgIHZvaWQgdGVzdFByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0
aW5nRm9yU3luY1JlcGx5KFdlYlBhZ2VQcm94eUlkZW50aWZpZXIsIE1lc3NhZ2VzOjpOZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzczo6VGVzdFByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1do
ZW5XYWl0aW5nRm9yU3luY1JlcGx5OjpEZWxheWVkUmVwbHkmJik7CisgICAgdm9pZCBwZXJmb3Jt
U3luY2hyb25vdXNMb2FkKE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzJiYsIE1lc3NhZ2Vz
OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6UGVyZm9ybVN5bmNocm9ub3VzTG9hZERl
bGF5ZWRSZXBseSYmKTsKKyAgICB2b2lkIHRlc3RQcm9jZXNzSW5jb21pbmdTeW5jTWVzc2FnZXNX
aGVuV2FpdGluZ0ZvclN5bmNSZXBseShXZWJQYWdlUHJveHlJZGVudGlmaWVyLCBNZXNzYWdlczo6
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OlRlc3RQcm9jZXNzSW5jb21pbmdTeW5jTWVz
c2FnZXNXaGVuV2FpdGluZ0ZvclN5bmNSZXBseURlbGF5ZWRSZXBseSYmKTsKICAgICB2b2lkIGxv
YWRQaW5nKE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzJiYpOwogICAgIHZvaWQgcHJlZmV0
Y2hETlMoY29uc3QgU3RyaW5nJik7CiAgICAgdm9pZCBwcmVjb25uZWN0VG8odWludDY0X3QgcHJl
Y29ubmVjdGlvbklkZW50aWZpZXIsIE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzJiYpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VM
b2FkZXIuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VM
b2FkZXIuY3BwCmluZGV4IDRlM2MwMWUyNzAyYmQzNTAwM2E1MjUxNGRkYzE3Y2VjMzhiOTZkYWIu
LmZmZmU1ZDA0NmI1MzRkZTA0N2M4MzY1YmI2MGY5NTNmMzcxZGVlZWMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAK
QEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTmV0d29y
a0NhY2hlLmgiCiAjaW5jbHVkZSAiTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCIKKyNp
bmNsdWRlICJOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzc01lc3NhZ2VzLmgiCiAjaW5jbHVk
ZSAiTmV0d29ya0xvYWQuaCIKICNpbmNsdWRlICJOZXR3b3JrTG9hZENoZWNrZXIuaCIKICNpbmNs
dWRlICJOZXR3b3JrUHJvY2Vzcy5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmgKaW5kZXggOGQxNzllM2ViNDE2M2UxODk4YjVl
MWRhMjdiMmU4NWNjOGIzZDU1NC4uNjZiMjU2MDA1MTZhODc5NjJmNzhkMjM4NjJhYzUwN2RhN2Q3
ZTYzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVz
b3VyY2VMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtS
ZXNvdXJjZUxvYWRlci5oCkBAIC0yOSw3ICsyOSw3IEBACiAjaW5jbHVkZSAiTWVzc2FnZVNlbmRl
ci5oIgogI2luY2x1ZGUgIk5ldHdvcmtDYWNoZS5oIgogI2luY2x1ZGUgIk5ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLmgiCi0jaW5jbHVkZSAiTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3NNZXNzYWdlcy5oIgorI2luY2x1ZGUgIk5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzTWVz
c2FnZXNSZXBsaWVzLmgiCiAjaW5jbHVkZSAiTmV0d29ya0xvYWRDbGllbnQuaCIKICNpbmNsdWRl
ICJOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQWRD
bGlja0F0dHJpYnV0aW9uLmg+CkBAIC02NSw3ICs2NSw3IEBAIGNsYXNzIE5ldHdvcmtSZXNvdXJj
ZUxvYWRlciBmaW5hbAogICAgICwgcHVibGljIFdlYkNvcmU6OkNvbnRlbnRTZWN1cml0eVBvbGlj
eUNsaWVudAogICAgICwgcHVibGljIENhbk1ha2VXZWFrUHRyPE5ldHdvcmtSZXNvdXJjZUxvYWRl
cj4gewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8TmV0d29ya1Jlc291cmNlTG9hZGVyPiBjcmVh
dGUoTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzLCBOZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2VzcyYgY29ubmVjdGlvbiwgTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzOjpQZXJmb3JtU3luY2hyb25vdXNMb2FkOjpEZWxheWVkUmVwbHkmJiBy
ZXBseSA9IG51bGxwdHIpCisgICAgc3RhdGljIFJlZjxOZXR3b3JrUmVzb3VyY2VMb2FkZXI+IGNy
ZWF0ZShOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMsIE5ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzJiBjb25uZWN0aW9uLCBNZXNzYWdlczo6TmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3M6OlBlcmZvcm1TeW5jaHJvbm91c0xvYWREZWxheWVkUmVwbHkmJiBy
ZXBseSA9IG51bGxwdHIpCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBOZXR3
b3JrUmVzb3VyY2VMb2FkZXIoV1RGTW92ZShwYXJhbWV0ZXJzKSwgY29ubmVjdGlvbiwgV1RGTW92
ZShyZXBseSkpKTsKICAgICB9CkBAIC0xMzEsNyArMTMxLDcgQEAgcHVibGljOgogI2VuZGlmCiAK
IHByaXZhdGU6Ci0gICAgTmV0d29ya1Jlc291cmNlTG9hZGVyKE5ldHdvcmtSZXNvdXJjZUxvYWRQ
YXJhbWV0ZXJzJiYsIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiwgTWVzc2FnZXM6Ok5l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpQZXJmb3JtU3luY2hyb25vdXNMb2FkOjpEZWxh
eWVkUmVwbHkmJik7CisgICAgTmV0d29ya1Jlc291cmNlTG9hZGVyKE5ldHdvcmtSZXNvdXJjZUxv
YWRQYXJhbWV0ZXJzJiYsIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiwgTWVzc2FnZXM6
Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpQZXJmb3JtU3luY2hyb25vdXNMb2FkRGVs
YXllZFJlcGx5JiYpOwogCiAgICAgLy8gSVBDOjpNZXNzYWdlU2VuZGVyCiAgICAgSVBDOjpDb25u
ZWN0aW9uKiBtZXNzYWdlU2VuZGVyQ29ubmVjdGlvbigpIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9QbHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1BsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5LmNw
cAppbmRleCBiNjQyMTQ0YmQxYWViOTcwYzZmYzY3ODkxODg0MDJmZGFhODcxOTk3Li5lYTcxMWQz
MmUyNTVmNzNjMzc1MmY0MjlmMGVhNzIyMTViOWM5MzNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1BsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1BsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5LmNwcApAQCAtNDAsNiAr
NDAsNyBAQAogI2luY2x1ZGUgIlNoYXJlYWJsZUJpdG1hcC5oIgogI2luY2x1ZGUgIldlYkNvcmVB
cmd1bWVudENvZGVycy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NDb25uZWN0aW9uLmgiCisjaW5j
bHVkZSAiV2ViUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlcy5oIgogI2luY2x1ZGUgPFdlYkNvcmUv
R3JhcGhpY3NDb250ZXh0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9IVFRQSGVhZGVyTWFwLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9JZGVudGlmaWVyUmVwLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1BsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0
L1BsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5LmgKaW5kZXggYjk4Y2E5NGJjOWVm
YzIzYjJlZDgxOGE1Yjc4NDMzNzIzMTdlOWM2Ny4uYWQ0ZmNkOWQ4Y2NmNDJmMTJlZTQ4OGUwMTM0
NmM2MTlhNzAxYjhkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbHVnaW5Qcm9jZXNzL1Bs
dWdpbkNvbnRyb2xsZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvUGx1Z2luUHJvY2Vzcy9Q
bHVnaW5Db250cm9sbGVyUHJveHkuaApAQCAtMzAsOSArMzAsOCBAQAogI2luY2x1ZGUgIkNvbm5l
Y3Rpb24uaCIKICNpbmNsdWRlICJQbHVnaW4uaCIKICNpbmNsdWRlICJQbHVnaW5Db250cm9sbGVy
LmgiCi0jaW5jbHVkZSAiUGx1Z2luQ29udHJvbGxlclByb3h5TWVzc2FnZXMuaCIKICNpbmNsdWRl
ICJTaGFyZWFibGVCaXRtYXAuaCIKLSNpbmNsdWRlICJXZWJQcm9jZXNzQ29ubmVjdGlvbk1lc3Nh
Z2VzLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlc1JlcGxpZXMuaCIK
ICNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9V
c2VyQWN0aXZpdHkuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KQEAgLTc1LDggKzc0
LDggQEAgcHVibGljOgogCiAgICAgYm9vbCBpc0luaXRpYWxpemluZygpIGNvbnN0IHsgcmV0dXJu
IG1faXNJbml0aWFsaXppbmc7IH0KICAgICAKLSAgICB2b2lkIHNldEluaXRpYWxpemF0aW9uUmVw
bHkoTWVzc2FnZXM6OldlYlByb2Nlc3NDb25uZWN0aW9uOjpDcmVhdGVQbHVnaW46OkRlbGF5ZWRS
ZXBseSYmKTsKLSAgICBNZXNzYWdlczo6V2ViUHJvY2Vzc0Nvbm5lY3Rpb246OkNyZWF0ZVBsdWdp
bjo6RGVsYXllZFJlcGx5IHRha2VJbml0aWFsaXphdGlvblJlcGx5KCk7CisgICAgdm9pZCBzZXRJ
bml0aWFsaXphdGlvblJlcGx5KE1lc3NhZ2VzOjpXZWJQcm9jZXNzQ29ubmVjdGlvbjo6Q3JlYXRl
UGx1Z2luRGVsYXllZFJlcGx5JiYpOworICAgIE1lc3NhZ2VzOjpXZWJQcm9jZXNzQ29ubmVjdGlv
bjo6Q3JlYXRlUGx1Z2luRGVsYXllZFJlcGx5IHRha2VJbml0aWFsaXphdGlvblJlcGx5KCk7CiAK
IHByaXZhdGU6CiAgICAgdm9pZCBzdGFydFBhaW50VGltZXIoKTsKQEAgLTE4NCw3ICsxODMsNyBA
QCBwcml2YXRlOgogICAgIGJvb2wgbV9pc1Zpc2libGU7CiAgICAgYm9vbCBtX2lzV2luZG93Vmlz
aWJsZTsKIAotICAgIE1lc3NhZ2VzOjpXZWJQcm9jZXNzQ29ubmVjdGlvbjo6Q3JlYXRlUGx1Z2lu
OjpEZWxheWVkUmVwbHkgbV9pbml0aWFsaXphdGlvblJlcGx5OworICAgIE1lc3NhZ2VzOjpXZWJQ
cm9jZXNzQ29ubmVjdGlvbjo6Q3JlYXRlUGx1Z2luRGVsYXllZFJlcGx5IG1faW5pdGlhbGl6YXRp
b25SZXBseTsKIAogICAgIFJlZlB0cjxQbHVnaW4+IG1fcGx1Z2luOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1BsdWdpblByb2Nlc3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uaCBiL1NvdXJj
ZS9XZWJLaXQvUGx1Z2luUHJvY2Vzcy9XZWJQcm9jZXNzQ29ubmVjdGlvbi5oCmluZGV4IDNhMGE3
YTg5NzllMzMxN2QzNzcyNjhmOGU2OTAyNGVhMmQ2MmNhMzQuLmVmMjQyMTBhOWIwNGQ4ZThhMjcz
NGRkZjhjYzEyYWJiM2MwMzA3OTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGx1Z2luUHJv
Y2Vzcy9XZWJQcm9jZXNzQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvUGx1Z2luUHJv
Y2Vzcy9XZWJQcm9jZXNzQ29ubmVjdGlvbi5oCkBAIC0yOSw3ICsyOSw3IEBACiAKICNpbmNsdWRl
ICJDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiUGx1Z2luLmgiCi0jaW5jbHVkZSAiV2ViUHJvY2Vz
c0Nvbm5lY3Rpb25NZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3NDb25uZWN0aW9uTWVz
c2FnZXNSZXBsaWVzLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYv
UmVmQ291bnRlZC5oPgogCkBAIC02OSw5ICs2OSw5IEBAIHByaXZhdGU6CiAgICAgLy8gTWVzc2Fn
ZSBoYW5kbGVycy4KICAgICB2b2lkIGRpZFJlY2VpdmVXZWJQcm9jZXNzQ29ubmVjdGlvbk1lc3Nh
Z2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJik7CiAgICAgdm9pZCBkaWRSZWNlaXZl
U3luY1dlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRl
Y29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYpOwotICAgIHZvaWQgY3JlYXRl
UGx1Z2luKGNvbnN0IFBsdWdpbkNyZWF0aW9uUGFyYW1ldGVycyYsIE1lc3NhZ2VzOjpXZWJQcm9j
ZXNzQ29ubmVjdGlvbjo6Q3JlYXRlUGx1Z2luOjpEZWxheWVkUmVwbHkmJik7CisgICAgdm9pZCBj
cmVhdGVQbHVnaW4oY29uc3QgUGx1Z2luQ3JlYXRpb25QYXJhbWV0ZXJzJiwgTWVzc2FnZXM6Oldl
YlByb2Nlc3NDb25uZWN0aW9uOjpDcmVhdGVQbHVnaW5EZWxheWVkUmVwbHkmJik7CiAgICAgdm9p
ZCBjcmVhdGVQbHVnaW5Bc3luY2hyb25vdXNseShjb25zdCBQbHVnaW5DcmVhdGlvblBhcmFtZXRl
cnMmKTsKLSAgICB2b2lkIGRlc3Ryb3lQbHVnaW4odWludDY0X3QgcGx1Z2luSW5zdGFuY2VJRCwg
Ym9vbCBhc3luY2hyb25vdXNDcmVhdGlvbkluY29tcGxldGUsIE1lc3NhZ2VzOjpXZWJQcm9jZXNz
Q29ubmVjdGlvbjo6RGVzdHJveVBsdWdpbjo6RGVsYXllZFJlcGx5JiYpOworICAgIHZvaWQgZGVz
dHJveVBsdWdpbih1aW50NjRfdCBwbHVnaW5JbnN0YW5jZUlELCBib29sIGFzeW5jaHJvbm91c0Ny
ZWF0aW9uSW5jb21wbGV0ZSwgTWVzc2FnZXM6OldlYlByb2Nlc3NDb25uZWN0aW9uOjpEZXN0cm95
UGx1Z2luRGVsYXllZFJlcGx5JiYpOwogICAgIAogICAgIHZvaWQgY3JlYXRlUGx1Z2luSW50ZXJu
YWwoY29uc3QgUGx1Z2luQ3JlYXRpb25QYXJhbWV0ZXJzJiwgYm9vbCYgcmVzdWx0LCBib29sJiB3
YW50c1doZWVsRXZlbnRzLCB1aW50MzJfdCYgcmVtb3RlTGF5ZXJDbGllbnRJRCk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy9NYWtlZmlsZSBiL1NvdXJjZS9XZWJLaXQvU2Ny
aXB0cy9NYWtlZmlsZQppbmRleCA2NTgyMGYyMzUzMDVhMjRhMTkwMjk0OTA2ZGEzODhmMTYzNWIx
NmRlLi41NDMyYzgyMTdhZDJkYTdkZDI5MThhNmE2MmM3NWI0NDcwZTJjODZlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvTWFrZWZpbGUKKysrIGIvU291cmNlL1dlYktpdC9TY3Jp
cHRzL01ha2VmaWxlCkBAIC0xLDggKzEsNSBAQAogYWxsOgotCXB5dGhvbiAuL2dlbmVyYXRlLW1l
c3NhZ2VzLWhlYWRlci5weSB3ZWJraXQvdGVzdC1zdXBlcmNsYXNzLW1lc3NhZ2VzLmluID4gd2Vi
a2l0L01lc3NhZ2VzU3VwZXJjbGFzcy1leHBlY3RlZC5oCi0JcHl0aG9uIC4vZ2VuZXJhdGUtbWVz
c2FnZXMtaGVhZGVyLnB5IHdlYmtpdC90ZXN0LWxlZ2FjeS1tZXNzYWdlcy5pbiA+IHdlYmtpdC9M
ZWdhY3lNZXNzYWdlcy1leHBlY3RlZC5oCi0JcHl0aG9uIC4vZ2VuZXJhdGUtbWVzc2FnZXMtaGVh
ZGVyLnB5IHdlYmtpdC90ZXN0LW1lc3NhZ2VzLmluID4gd2Via2l0L01lc3NhZ2VzLWV4cGVjdGVk
LmgKLQlweXRob24gLi9nZW5lcmF0ZS1tZXNzYWdlLXJlY2VpdmVyLnB5IHdlYmtpdC90ZXN0LXN1
cGVyY2xhc3MtbWVzc2FnZXMuaW4gPiB3ZWJraXQvTWVzc2FnZVJlY2VpdmVyU3VwZXJjbGFzcy1l
eHBlY3RlZC5jcHAKLQlweXRob24gLi9nZW5lcmF0ZS1tZXNzYWdlLXJlY2VpdmVyLnB5IHdlYmtp
dC90ZXN0LWxlZ2FjeS1tZXNzYWdlcy5pbiA+IHdlYmtpdC9MZWdhY3lNZXNzYWdlUmVjZWl2ZXIt
ZXhwZWN0ZWQuY3BwCi0JcHl0aG9uIC4vZ2VuZXJhdGUtbWVzc2FnZS1yZWNlaXZlci5weSB3ZWJr
aXQvdGVzdC1tZXNzYWdlcy5pbiA+IHdlYmtpdC9NZXNzYWdlUmVjZWl2ZXItZXhwZWN0ZWQuY3Bw
CisJcHl0aG9uIC4vZ2VuZXJhdGUtbWVzc2FnZS1yZWNlaXZlci5weSB3ZWJraXQvdGVzdC1zdXBl
cmNsYXNzLW1lc3NhZ2VzLmluIC0taW1wbGVtZW50YXRpb24gd2Via2l0L01lc3NhZ2VSZWNlaXZl
clN1cGVyY2xhc3MtZXhwZWN0ZWQuY3BwIC0taGVhZGVyIHdlYmtpdC9NZXNzYWdlc1N1cGVyY2xh
c3MtZXhwZWN0ZWQuaCAtLXJlcGx5LWhlYWRlciB3ZWJraXQvTWVzc2FnZXNSZXBsaWVzU3VwZXJj
bGFzc1JlcGxpZXMtZXhwZWN0ZWQuaAorCXB5dGhvbiAuL2dlbmVyYXRlLW1lc3NhZ2UtcmVjZWl2
ZXIucHkgd2Via2l0L3Rlc3QtbGVnYWN5LW1lc3NhZ2VzLmluIC0taW1wbGVtZW50YXRpb24gd2Vi
a2l0L0xlZ2FjeU1lc3NhZ2VSZWNlaXZlci1leHBlY3RlZC5jcHAgLS1oZWFkZXIgd2Via2l0L0xl
Z2FjeU1lc3NhZ2VzLWV4cGVjdGVkLmggLS1yZXBseS1oZWFkZXIgd2Via2l0L0xlZ2FjeU1lc3Nh
Z2VzUmVwbGllcy1leHBlY3RlZC5oCisJcHl0aG9uIC4vZ2VuZXJhdGUtbWVzc2FnZS1yZWNlaXZl
ci5weSB3ZWJraXQvdGVzdC1tZXNzYWdlcy5pbiAtLWltcGxlbWVudGF0aW9uIHdlYmtpdC9NZXNz
YWdlUmVjZWl2ZXItZXhwZWN0ZWQuY3BwIC0taGVhZGVyIHdlYmtpdC9NZXNzYWdlcy1leHBlY3Rl
ZC5oIC0tcmVwbHktaGVhZGVyIHdlYmtpdC9NZXNzYWdlc1JlcGxpZXMtZXhwZWN0ZWQuaAogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvZ2VuZXJhdGUtbWVzc2FnZS1yZWNlaXZl
ci5weSBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy9nZW5lcmF0ZS1tZXNzYWdlLXJlY2VpdmVyLnB5
CmluZGV4IDY0MTNhOGJmMzZmMTI3ZDRmODNmZmI0OWY5MWNkODhkMzcwMzAyYzIuLjM1ZTQwNTgy
ZTc5YTNmMGNlOTMzN2E4NmQ0ZTA5MzM3ZmJhNDExZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvU2NyaXB0cy9nZW5lcmF0ZS1tZXNzYWdlLXJlY2VpdmVyLnB5CisrKyBiL1NvdXJjZS9XZWJL
aXQvU2NyaXB0cy9nZW5lcmF0ZS1tZXNzYWdlLXJlY2VpdmVyLnB5CkBAIC0yMywxOCArMjMsMzQg
QEAKICMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KIAogZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCB3aXRoX3N0YXRlbWVu
dAoraW1wb3J0IGFyZ3BhcnNlCiBpbXBvcnQgc3lzCiAKIGltcG9ydCB3ZWJraXQubWVzc2FnZXMK
K2ltcG9ydCB3ZWJraXQucGFyc2VyCiAKIAogZGVmIG1haW4oYXJndj1Ob25lKToKLSAgICBpZiBu
b3QgYXJndjoKLSAgICAgICAgYXJndiA9IHN5cy5hcmd2Ci0gICAgaW5wdXRfcGF0aCA9IGFyZ3Zb
MV0KLSAgICB3aXRoIG9wZW4oaW5wdXRfcGF0aCkgYXMgaW5wdXRfZmlsZToKLSAgICAgICAgIyBQ
eXRob24gMywgY2hhbmdlIHRvOiAgcHJpbnQod2Via2l0Lm1lc3NhZ2VzLmdlbmVyYXRlX21lc3Nh
Z2VfaGFuZGxlcihpbnB1dF9maWxlKSwgZW5kPScnKQotICAgICAgICBzeXMuc3Rkb3V0LndyaXRl
KHdlYmtpdC5tZXNzYWdlcy5nZW5lcmF0ZV9tZXNzYWdlX2hhbmRsZXIoaW5wdXRfZmlsZSkpCisg
ICAgcGFyc2VyID0gYXJncGFyc2UuQXJndW1lbnRQYXJzZXIoKQorICAgIHBhcnNlci5hZGRfYXJn
dW1lbnQoJ3NvdXJjZScpCisgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgnLS1pbXBsZW1lbnRhdGlv
bicsIHJlcXVpcmVkPVRydWUpCisgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgnLS1oZWFkZXInLCBy
ZXF1aXJlZD1UcnVlKQorICAgIHBhcnNlci5hZGRfYXJndW1lbnQoJy0tcmVwbHktaGVhZGVyJywg
cmVxdWlyZWQ9VHJ1ZSkKKworICAgIGFyZ3MgPSBwYXJzZXIucGFyc2VfYXJncygpCisKKyAgICB3
aXRoIG9wZW4oYXJncy5zb3VyY2UpIGFzIHNvdXJjZV9maWxlOgorICAgICAgICByZWNlaXZlciA9
IHdlYmtpdC5wYXJzZXIucGFyc2Uoc291cmNlX2ZpbGUpCisKKyAgICB3aXRoIG9wZW4oYXJncy5p
bXBsZW1lbnRhdGlvbiwgIncrIikgYXMgaW1wbGVtZW50YXRpb25fb3V0cHV0OgorICAgICAgICBp
bXBsZW1lbnRhdGlvbl9vdXRwdXQud3JpdGUod2Via2l0Lm1lc3NhZ2VzLmdlbmVyYXRlX21lc3Nh
Z2VfaGFuZGxlcihyZWNlaXZlcikpCisKKyAgICB3aXRoIG9wZW4oYXJncy5oZWFkZXIsICJ3KyIp
IGFzIGhlYWRlcl9vdXRwdXQ6CisgICAgICAgIGhlYWRlcl9vdXRwdXQud3JpdGUod2Via2l0Lm1l
c3NhZ2VzLmdlbmVyYXRlX21lc3NhZ2VzX2hlYWRlcihyZWNlaXZlcikpCisKKyAgICB3aXRoIG9w
ZW4oYXJncy5yZXBseV9oZWFkZXIsICJ3KyIpIGFzIHJlcGx5X2hlYWRlcl9vdXRwdXQ6CisgICAg
ICAgIHJlcGx5X2hlYWRlcl9vdXRwdXQud3JpdGUod2Via2l0Lm1lc3NhZ2VzLmdlbmVyYXRlX21l
c3NhZ2VzX3JlcGx5X2hlYWRlcihyZWNlaXZlcikpCisKICAgICByZXR1cm4gMAogCiBpZiBfX25h
bWVfXyA9PSAnX19tYWluX18nOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL2dl
bmVyYXRlLW1lc3NhZ2VzLWhlYWRlci5weSBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy9nZW5lcmF0
ZS1tZXNzYWdlcy1oZWFkZXIucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFkNzNh
NTI4MzQ4MzA5YWViMjEwOGI0NDE5NjM4NGEzNDdlYmM2NjYuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9TY3JpcHRzL2dlbmVyYXRl
LW1lc3NhZ2VzLWhlYWRlci5weQorKysgL2Rldi9udWxsCkBAIC0xLDQxICswLDAgQEAKLSMhL3Vz
ci9iaW4vZW52IHB5dGhvbgotIwotIyBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0jIGFyZSBtZXQ6
Ci0jIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAotIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKLSMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECi0jIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRSBJTVBMSUVECi0jIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKLSMgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTAotIyBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgotIyBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgotIyBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLAotIyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgotCi1mcm9tIF9fZnV0dXJlX18gaW1wb3J0IHdpdGhfc3RhdGVtZW50Ci1pbXBvcnQgc3lzCi0K
LWltcG9ydCB3ZWJraXQubWVzc2FnZXMKLQotCi1kZWYgbWFpbihhcmd2PU5vbmUpOgotICAgIGlm
IG5vdCBhcmd2OgotICAgICAgICBhcmd2ID0gc3lzLmFyZ3YKLSAgICBpbnB1dF9wYXRoID0gYXJn
dlsxXQotICAgIHdpdGggb3BlbihpbnB1dF9wYXRoKSBhcyBpbnB1dF9maWxlOgotICAgICAgICAj
IFB5dGhvbiAzLCBjaGFuZ2UgdG86ICBwcmludCh3ZWJraXQubWVzc2FnZXMuZ2VuZXJhdGVfbWVz
c2FnZXNfaGVhZGVyKGlucHV0X2ZpbGUpLCBlbmQ9JycpCi0gICAgICAgIHN5cy5zdGRvdXQud3Jp
dGUod2Via2l0Lm1lc3NhZ2VzLmdlbmVyYXRlX21lc3NhZ2VzX2hlYWRlcihpbnB1dF9maWxlKSkK
LSAgICByZXR1cm4gMAotCi1pZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgotICAgIHN5cy5leGl0
KG1haW4oc3lzLmFyZ3YpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtp
dC9MZWdhY3lNZXNzYWdlUmVjZWl2ZXItZXhwZWN0ZWQuY3BwIGIvU291cmNlL1dlYktpdC9TY3Jp
cHRzL3dlYmtpdC9MZWdhY3lNZXNzYWdlUmVjZWl2ZXItZXhwZWN0ZWQuY3BwCmluZGV4IGZlYTg1
MzY3NTM1Njc3MjYyYzdmNzI0MmY0OGNkOWFjODMwMGYwOTAuLmQwYjg2NWY3ZjczZGU1Y2YzOWUw
OTUzZmZmYTgyMjcxNmQwYWI5MDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93
ZWJraXQvTGVnYWN5TWVzc2FnZVJlY2VpdmVyLWV4cGVjdGVkLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NjcmlwdHMvd2Via2l0L0xlZ2FjeU1lc3NhZ2VSZWNlaXZlci1leHBlY3RlZC5jcHAKQEAg
LTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEwLTIwMTggQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwLTIwMTkgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L0xlZ2FjeU1lc3NhZ2VzLWV4
cGVjdGVkLmggYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L0xlZ2FjeU1lc3NhZ2VzLWV4
cGVjdGVkLmgKaW5kZXggZmZkMTNkM2U4YzIwYzhiOWJkZThjMmJhMzE1MTk5MTE0YjdmYmFmYS4u
YWVjZTEyMmExYzY1ZTAyNDMyNjZjYTcxMTEwYTBhNWY4NmZlNjRlZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9MZWdhY3lNZXNzYWdlcy1leHBlY3RlZC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvTGVnYWN5TWVzc2FnZXMtZXhwZWN0ZWQuaApA
QCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAtMjAxOCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAtMjAxOSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
QEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJBcmd1bWVudENvZGVycy5oIgogI2luY2x1ZGUg
IkNvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJQbHVnaW4uaCIKKyNpbmNsdWRlICJXZWJQYWdlTWVz
c2FnZXNSZXBsaWVzLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9HcmFwaGljc0xheWVyLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9LZXlib2FyZEV2ZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QbHVnaW5E
YXRhLmg+CkBAIC0zNjAsNyArMzYxLDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBJUEM6OlN0cmlu
Z1JlZmVyZW5jZSBuYW1lKCkgeyByZXR1cm4gSVBDOjpTdHJpbmdSZWZlcmVuY2UoIkdldFBsdWdp
blByb2Nlc3NDb25uZWN0aW9uIik7IH0KICAgICBzdGF0aWMgY29uc3QgYm9vbCBpc1N5bmMgPSB0
cnVlOwogCi0gICAgdXNpbmcgRGVsYXllZFJlcGx5ID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChj
b25zdCBJUEM6OkNvbm5lY3Rpb246OkhhbmRsZSYgY29ubmVjdGlvbkhhbmRsZSk+OworICAgIHVz
aW5nIERlbGF5ZWRSZXBseSA9IEdldFBsdWdpblByb2Nlc3NDb25uZWN0aW9uRGVsYXllZFJlcGx5
OwogICAgIHN0YXRpYyB2b2lkIHNlbmQoc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mJiwg
SVBDOjpDb25uZWN0aW9uJiwgY29uc3QgSVBDOjpDb25uZWN0aW9uOjpIYW5kbGUmIGNvbm5lY3Rp
b25IYW5kbGUpOwogICAgIHVzaW5nIFJlcGx5ID0gc3RkOjp0dXBsZTxJUEM6OkNvbm5lY3Rpb246
OkhhbmRsZSY+OwogICAgIHVzaW5nIFJlcGx5QXJndW1lbnRzID0gc3RkOjp0dXBsZTxJUEM6OkNv
bm5lY3Rpb246OkhhbmRsZT47CkBAIC0zODYsNyArMzg3LDcgQEAgcHVibGljOgogICAgIHN0YXRp
YyBJUEM6OlN0cmluZ1JlZmVyZW5jZSBuYW1lKCkgeyByZXR1cm4gSVBDOjpTdHJpbmdSZWZlcmVu
Y2UoIlRlc3RNdWx0aXBsZUF0dHJpYnV0ZXMiKTsgfQogICAgIHN0YXRpYyBjb25zdCBib29sIGlz
U3luYyA9IHRydWU7CiAKLSAgICB1c2luZyBEZWxheWVkUmVwbHkgPSBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKCk+OworICAgIHVzaW5nIERlbGF5ZWRSZXBseSA9IFRlc3RNdWx0aXBsZUF0dHJpYnV0
ZXNEZWxheWVkUmVwbHk7CiAgICAgc3RhdGljIHZvaWQgc2VuZChzdGQ6OnVuaXF1ZV9wdHI8SVBD
OjpFbmNvZGVyPiYmLCBJUEM6OkNvbm5lY3Rpb24mKTsKICAgICB1c2luZyBSZXBseSA9IHN0ZDo6
dHVwbGU8PjsKICAgICB1c2luZyBSZXBseUFyZ3VtZW50cyA9IHN0ZDo6dHVwbGU8PjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvTGVnYWN5TWVzc2FnZXNSZXBsaWVz
LWV4cGVjdGVkLmggYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L0xlZ2FjeU1lc3NhZ2Vz
UmVwbGllcy1leHBlY3RlZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY3MGNlYWZkOWZhNWVjZGNjZmExYzIxYzA5
N2FlNzQ2NDljOGU0ZmMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMv
d2Via2l0L0xlZ2FjeU1lc3NhZ2VzUmVwbGllcy1leHBlY3RlZC5oCkBAIC0wLDAgKzEsNDMgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorICogQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisg
KiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMCisgKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorICogU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIKKyAqIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisgKiBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIChFTkFCTEUoV0VCS0lUMikg
JiYgKE5FU1RFRF9NQVNURVJfQ09ORElUSU9OIHx8IE1BU1RFUl9PUiAmJiBNQVNURVJfQU5EKSkK
KworI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorCisK
K25hbWVzcGFjZSBNZXNzYWdlcyB7CituYW1lc3BhY2UgV2ViUGFnZSB7CisKK3VzaW5nIEdldFBs
dWdpblByb2Nlc3NDb25uZWN0aW9uRGVsYXllZFJlcGx5ID0gQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChjb25zdCBJUEM6OkNvbm5lY3Rpb246OkhhbmRsZSYgY29ubmVjdGlvbkhhbmRsZSk+OworCit1
c2luZyBUZXN0TXVsdGlwbGVBdHRyaWJ1dGVzRGVsYXllZFJlcGx5ID0gQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZCgpPjsKKworfSAvLyBuYW1lc3BhY2UgV2ViUGFnZQorfSAvLyBuYW1lc3BhY2UgTWVz
c2FnZXMKKworI2VuZGlmIC8vIChFTkFCTEUoV0VCS0lUMikgJiYgKE5FU1RFRF9NQVNURVJfQ09O
RElUSU9OIHx8IE1BU1RFUl9PUiAmJiBNQVNURVJfQU5EKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvU2NyaXB0cy93ZWJraXQvTWVzc2FnZVJlY2VpdmVyLWV4cGVjdGVkLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvTWVzc2FnZVJlY2VpdmVyLWV4cGVjdGVkLmNwcAppbmRl
eCBiNWNjZTFiYTRmNTZhN2M4NzM4NGEyMDIxZTQ5ZDg1MjJhZjY4MmMwLi5hMjVhOTEyZjYzYWE4
Y2Q3NmY4MGJiOWMxZTU1YzI5MzgzMDhlNjZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1Nj
cmlwdHMvd2Via2l0L01lc3NhZ2VSZWNlaXZlci1leHBlY3RlZC5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9TY3JpcHRzL3dlYmtpdC9NZXNzYWdlUmVjZWl2ZXItZXhwZWN0ZWQuY3BwCkBAIC0xLDUg
KzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMC0yMDE4IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMC0yMDE5IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9NZXNzYWdlUmVjZWl2ZXJTdXBlcmNs
YXNzLWV4cGVjdGVkLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvTWVzc2FnZVJl
Y2VpdmVyU3VwZXJjbGFzcy1leHBlY3RlZC5jcHAKaW5kZXggMTQyMTJkNWM4YWE1MTI4MDU2MDBh
ZmFjOWJhMjc3YmQ1MzFmYTM3MC4uYjYxMWIyNWUwODYyZGI1OTc5NzU5NzhkZjQwNGM4YTM1MTI3
NDg3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9NZXNzYWdlUmVj
ZWl2ZXJTdXBlcmNsYXNzLWV4cGVjdGVkLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMv
d2Via2l0L01lc3NhZ2VSZWNlaXZlclN1cGVyY2xhc3MtZXhwZWN0ZWQuY3BwCkBAIC0xLDUgKzEs
NSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMC0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMC0yMDE5IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9NZXNzYWdlcy1leHBlY3RlZC5oIGIvU291
cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9NZXNzYWdlcy1leHBlY3RlZC5oCmluZGV4IGZmZDEz
ZDNlOGMyMGM4YjliZGU4YzJiYTMxNTE5OTExNGI3ZmJhZmEuLmFlY2UxMjJhMWM2NWUwMjQzMjY2
Y2E3MTExMGEwYTVmODZmZTY0ZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93
ZWJraXQvTWVzc2FnZXMtZXhwZWN0ZWQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Vi
a2l0L01lc3NhZ2VzLWV4cGVjdGVkLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDEwLTIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDEwLTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiQXJn
dW1lbnRDb2RlcnMuaCIKICNpbmNsdWRlICJDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiUGx1Z2lu
LmgiCisjaW5jbHVkZSAiV2ViUGFnZU1lc3NhZ2VzUmVwbGllcy5oIgogI2luY2x1ZGUgPFdlYkNv
cmUvR3JhcGhpY3NMYXllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvS2V5Ym9hcmRFdmVudC5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvUGx1Z2luRGF0YS5oPgpAQCAtMzYwLDcgKzM2MSw3IEBAIHB1Ymxp
YzoKICAgICBzdGF0aWMgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbmFtZSgpIHsgcmV0dXJuIElQQzo6
U3RyaW5nUmVmZXJlbmNlKCJHZXRQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbiIpOyB9CiAgICAgc3Rh
dGljIGNvbnN0IGJvb2wgaXNTeW5jID0gdHJ1ZTsKIAotICAgIHVzaW5nIERlbGF5ZWRSZXBseSA9
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgSVBDOjpDb25uZWN0aW9uOjpIYW5kbGUmIGNv
bm5lY3Rpb25IYW5kbGUpPjsKKyAgICB1c2luZyBEZWxheWVkUmVwbHkgPSBHZXRQbHVnaW5Qcm9j
ZXNzQ29ubmVjdGlvbkRlbGF5ZWRSZXBseTsKICAgICBzdGF0aWMgdm9pZCBzZW5kKHN0ZDo6dW5p
cXVlX3B0cjxJUEM6OkVuY29kZXI+JiYsIElQQzo6Q29ubmVjdGlvbiYsIGNvbnN0IElQQzo6Q29u
bmVjdGlvbjo6SGFuZGxlJiBjb25uZWN0aW9uSGFuZGxlKTsKICAgICB1c2luZyBSZXBseSA9IHN0
ZDo6dHVwbGU8SVBDOjpDb25uZWN0aW9uOjpIYW5kbGUmPjsKICAgICB1c2luZyBSZXBseUFyZ3Vt
ZW50cyA9IHN0ZDo6dHVwbGU8SVBDOjpDb25uZWN0aW9uOjpIYW5kbGU+OwpAQCAtMzg2LDcgKzM4
Nyw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbmFtZSgpIHsg
cmV0dXJuIElQQzo6U3RyaW5nUmVmZXJlbmNlKCJUZXN0TXVsdGlwbGVBdHRyaWJ1dGVzIik7IH0K
ICAgICBzdGF0aWMgY29uc3QgYm9vbCBpc1N5bmMgPSB0cnVlOwogCi0gICAgdXNpbmcgRGVsYXll
ZFJlcGx5ID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPjsKKyAgICB1c2luZyBEZWxheWVkUmVw
bHkgPSBUZXN0TXVsdGlwbGVBdHRyaWJ1dGVzRGVsYXllZFJlcGx5OwogICAgIHN0YXRpYyB2b2lk
IHNlbmQoc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mJiwgSVBDOjpDb25uZWN0aW9uJik7
CiAgICAgdXNpbmcgUmVwbHkgPSBzdGQ6OnR1cGxlPD47CiAgICAgdXNpbmcgUmVwbHlBcmd1bWVu
dHMgPSBzdGQ6OnR1cGxlPD47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Vi
a2l0L01lc3NhZ2VzUmVwbGllcy1leHBlY3RlZC5oIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dl
YmtpdC9NZXNzYWdlc1JlcGxpZXMtZXhwZWN0ZWQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNzBjZWFmZDlmYTVl
Y2RjY2ZhMWMyMWMwOTdhZTc0NjQ5YzhlNGZjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdC9TY3JpcHRzL3dlYmtpdC9NZXNzYWdlc1JlcGxpZXMtZXhwZWN0ZWQuaApAQCAtMCwwICsx
LDQzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwLTIwMTkgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyAq
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUgorICogQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTAorICogREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyAqIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSCisgKiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorICogT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiAoRU5BQkxFKFdF
QktJVDIpICYmIChORVNURURfTUFTVEVSX0NPTkRJVElPTiB8fCBNQVNURVJfT1IgJiYgTUFTVEVS
X0FORCkpCisKKyNpbmNsdWRlICJDb25uZWN0aW9uLmgiCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQu
aD4KKworCituYW1lc3BhY2UgTWVzc2FnZXMgeworbmFtZXNwYWNlIFdlYlBhZ2UgeworCit1c2lu
ZyBHZXRQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbkRlbGF5ZWRSZXBseSA9IENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoY29uc3QgSVBDOjpDb25uZWN0aW9uOjpIYW5kbGUmIGNvbm5lY3Rpb25IYW5kbGUp
PjsKKwordXNpbmcgVGVzdE11bHRpcGxlQXR0cmlidXRlc0RlbGF5ZWRSZXBseSA9IENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoKT47CisKK30gLy8gbmFtZXNwYWNlIFdlYlBhZ2UKK30gLy8gbmFtZXNw
YWNlIE1lc3NhZ2VzCisKKyNlbmRpZiAvLyAoRU5BQkxFKFdFQktJVDIpICYmIChORVNURURfTUFT
VEVSX0NPTkRJVElPTiB8fCBNQVNURVJfT1IgJiYgTUFTVEVSX0FORCkpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L01lc3NhZ2VzUmVwbGllc1N1cGVyY2xhc3NSZXBs
aWVzLWV4cGVjdGVkLmggYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L01lc3NhZ2VzUmVw
bGllc1N1cGVyY2xhc3NSZXBsaWVzLWV4cGVjdGVkLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2ZhNjNmM2Q2NDhm
NWEwMTcyN2UxNWMxNGNhZjExMjQ2MDMyNjIwOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQvU2NyaXB0cy93ZWJraXQvTWVzc2FnZXNSZXBsaWVzU3VwZXJjbGFzc1JlcGxpZXMtZXhw
ZWN0ZWQuaApAQCAtMCwwICsxLDUyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwLTIwMTkg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJyBBTkQKKyAqIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
CisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUgorICogQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorICogREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IKKyAqIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisgKiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorICog
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNl
CisKKyNpbmNsdWRlICJUZXN0Q2xhc3NOYW1lLmgiCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4K
KyNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KKworCituYW1lc3BhY2UgTWVzc2FnZXMgeworbmFt
ZXNwYWNlIFdlYlBhZ2UgeworCisjaWYgRU5BQkxFKFRFU1RfRkVBVFVSRSkKK3VzaW5nIFRlc3RB
c3luY01lc3NhZ2VBc3luY1JlcGx5ID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZCh1aW50NjRfdCBy
ZXN1bHQpPjsKKyNlbmRpZgorCisjaWYgRU5BQkxFKFRFU1RfRkVBVFVSRSkKK3VzaW5nIFRlc3RB
c3luY01lc3NhZ2VXaXRoTm9Bcmd1bWVudHNBc3luY1JlcGx5ID0gQ29tcGxldGlvbkhhbmRsZXI8
dm9pZCgpPjsKKyNlbmRpZgorCisjaWYgRU5BQkxFKFRFU1RfRkVBVFVSRSkKK3VzaW5nIFRlc3RB
c3luY01lc3NhZ2VXaXRoTXVsdGlwbGVBcmd1bWVudHNBc3luY1JlcGx5ID0gQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChib29sIGZsYWcsIHVpbnQ2NF90IHZhbHVlKT47CisjZW5kaWYKKwordXNpbmcg
VGVzdFN5bmNNZXNzYWdlRGVsYXllZFJlcGx5ID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZCh1aW50
OF90IHJlcGx5KT47CisKK3VzaW5nIFRlc3RTeW5jaHJvbm91c01lc3NhZ2VEZWxheWVkUmVwbHkg
PSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IE9wdGlvbmFsPFdlYktpdDo6VGVzdENsYXNz
TmFtZT4mIG9wdGlvbmFsUmVwbHkpPjsKKworfSAvLyBuYW1lc3BhY2UgV2ViUGFnZQorfSAvLyBu
YW1lc3BhY2UgTWVzc2FnZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJr
aXQvTWVzc2FnZXNTdXBlcmNsYXNzLWV4cGVjdGVkLmggYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMv
d2Via2l0L01lc3NhZ2VzU3VwZXJjbGFzcy1leHBlY3RlZC5oCmluZGV4IDBmNmZjYzI2MWEyOTEw
NTIzODM3ZDBlNjQwMjM1NWFkZTg1NWFiZjcuLmVlODA3MWY1ZDE3MDY3MzMwMjViZThkZjRjYWZk
ZGQ1NDJmNzZlMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvTWVz
c2FnZXNTdXBlcmNsYXNzLWV4cGVjdGVkLmgKKysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dl
YmtpdC9NZXNzYWdlc1N1cGVyY2xhc3MtZXhwZWN0ZWQuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTAtMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTAtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI3LDYgKzI3LDcgQEAKICNp
bmNsdWRlICJBcmd1bWVudENvZGVycy5oIgogI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKICNpbmNs
dWRlICJUZXN0Q2xhc3NOYW1lLmgiCisjaW5jbHVkZSAiV2ViUGFnZU1lc3NhZ2VzUmVwbGllcy5o
IgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CiAj
aW5jbHVkZSA8d3RmL1RocmVhZFNhZmVSZWZDb3VudGVkLmg+CkBAIC03OCw3ICs3OSw3IEBAIHB1
YmxpYzoKICAgICBzdGF0aWMgdm9pZCBjYWxsUmVwbHkoSVBDOjpEZWNvZGVyJiwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZCh1aW50NjRfdCYmKT4mJik7CiAgICAgc3RhdGljIHZvaWQgY2FuY2VsUmVw
bHkoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCh1aW50NjRfdCYmKT4mJik7CiAgICAgc3RhdGljIElQ
Qzo6U3RyaW5nUmVmZXJlbmNlIGFzeW5jTWVzc2FnZVJlcGx5TmFtZSgpIHsgcmV0dXJuIHsgIlRl
c3RBc3luY01lc3NhZ2VSZXBseSIgfTsgfQotICAgIHVzaW5nIEFzeW5jUmVwbHkgPSBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKHVpbnQ2NF90IHJlc3VsdCk+OworICAgIHVzaW5nIEFzeW5jUmVwbHkg
PSBUZXN0QXN5bmNNZXNzYWdlQXN5bmNSZXBseTsKICAgICBzdGF0aWMgdm9pZCBzZW5kKHN0ZDo6
dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+JiYsIElQQzo6Q29ubmVjdGlvbiYsIHVpbnQ2NF90IHJl
c3VsdCk7CiAgICAgdXNpbmcgUmVwbHkgPSBzdGQ6OnR1cGxlPHVpbnQ2NF90Jj47CiAgICAgdXNp
bmcgUmVwbHlBcmd1bWVudHMgPSBzdGQ6OnR1cGxlPHVpbnQ2NF90PjsKQEAgLTEwOSw3ICsxMTAs
NyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHZvaWQgY2FsbFJlcGx5KElQQzo6RGVjb2RlciYsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgc3RhdGljIHZvaWQgY2FuY2VsUmVwbHko
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICBzdGF0aWMgSVBDOjpTdHJpbmdSZWZl
cmVuY2UgYXN5bmNNZXNzYWdlUmVwbHlOYW1lKCkgeyByZXR1cm4geyAiVGVzdEFzeW5jTWVzc2Fn
ZVdpdGhOb0FyZ3VtZW50c1JlcGx5IiB9OyB9Ci0gICAgdXNpbmcgQXN5bmNSZXBseSA9IENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoKT47CisgICAgdXNpbmcgQXN5bmNSZXBseSA9IFRlc3RBc3luY01l
c3NhZ2VXaXRoTm9Bcmd1bWVudHNBc3luY1JlcGx5OwogICAgIHN0YXRpYyB2b2lkIHNlbmQoc3Rk
Ojp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mJiwgSVBDOjpDb25uZWN0aW9uJik7CiAgICAgdXNp
bmcgUmVwbHkgPSBzdGQ6OnR1cGxlPD47CiAgICAgdXNpbmcgUmVwbHlBcmd1bWVudHMgPSBzdGQ6
OnR1cGxlPD47CkBAIC0xMzUsNyArMTM2LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lkIGNh
bGxSZXBseShJUEM6OkRlY29kZXImLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wmJiwgdWlu
dDY0X3QmJik+JiYpOwogICAgIHN0YXRpYyB2b2lkIGNhbmNlbFJlcGx5KENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoYm9vbCYmLCB1aW50NjRfdCYmKT4mJik7CiAgICAgc3RhdGljIElQQzo6U3RyaW5n
UmVmZXJlbmNlIGFzeW5jTWVzc2FnZVJlcGx5TmFtZSgpIHsgcmV0dXJuIHsgIlRlc3RBc3luY01l
c3NhZ2VXaXRoTXVsdGlwbGVBcmd1bWVudHNSZXBseSIgfTsgfQotICAgIHVzaW5nIEFzeW5jUmVw
bHkgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wgZmxhZywgdWludDY0X3QgdmFsdWUpPjsK
KyAgICB1c2luZyBBc3luY1JlcGx5ID0gVGVzdEFzeW5jTWVzc2FnZVdpdGhNdWx0aXBsZUFyZ3Vt
ZW50c0FzeW5jUmVwbHk7CiAgICAgc3RhdGljIHZvaWQgc2VuZChzdGQ6OnVuaXF1ZV9wdHI8SVBD
OjpFbmNvZGVyPiYmLCBJUEM6OkNvbm5lY3Rpb24mLCBib29sIGZsYWcsIHVpbnQ2NF90IHZhbHVl
KTsKICAgICB1c2luZyBSZXBseSA9IHN0ZDo6dHVwbGU8Ym9vbCYsIHVpbnQ2NF90Jj47CiAgICAg
dXNpbmcgUmVwbHlBcmd1bWVudHMgPSBzdGQ6OnR1cGxlPGJvb2wsIHVpbnQ2NF90PjsKQEAgLTE1
Nyw3ICsxNTgsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIElQQzo6U3RyaW5nUmVmZXJlbmNlIG5h
bWUoKSB7IHJldHVybiBJUEM6OlN0cmluZ1JlZmVyZW5jZSgiVGVzdFN5bmNNZXNzYWdlIik7IH0K
ICAgICBzdGF0aWMgY29uc3QgYm9vbCBpc1N5bmMgPSB0cnVlOwogCi0gICAgdXNpbmcgRGVsYXll
ZFJlcGx5ID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZCh1aW50OF90IHJlcGx5KT47CisgICAgdXNp
bmcgRGVsYXllZFJlcGx5ID0gVGVzdFN5bmNNZXNzYWdlRGVsYXllZFJlcGx5OwogICAgIHN0YXRp
YyB2b2lkIHNlbmQoc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mJiwgSVBDOjpDb25uZWN0
aW9uJiwgdWludDhfdCByZXBseSk7CiAgICAgdXNpbmcgUmVwbHkgPSBzdGQ6OnR1cGxlPHVpbnQ4
X3QmPjsKICAgICB1c2luZyBSZXBseUFyZ3VtZW50cyA9IHN0ZDo6dHVwbGU8dWludDhfdD47CkBA
IC0xODMsNyArMTg0LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBJUEM6OlN0cmluZ1JlZmVyZW5j
ZSBuYW1lKCkgeyByZXR1cm4gSVBDOjpTdHJpbmdSZWZlcmVuY2UoIlRlc3RTeW5jaHJvbm91c01l
c3NhZ2UiKTsgfQogICAgIHN0YXRpYyBjb25zdCBib29sIGlzU3luYyA9IHRydWU7CiAKLSAgICB1
c2luZyBEZWxheWVkUmVwbHkgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IE9wdGlvbmFs
PFdlYktpdDo6VGVzdENsYXNzTmFtZT4mIG9wdGlvbmFsUmVwbHkpPjsKKyAgICB1c2luZyBEZWxh
eWVkUmVwbHkgPSBUZXN0U3luY2hyb25vdXNNZXNzYWdlRGVsYXllZFJlcGx5OwogICAgIHN0YXRp
YyB2b2lkIHNlbmQoc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mJiwgSVBDOjpDb25uZWN0
aW9uJiwgY29uc3QgT3B0aW9uYWw8V2ViS2l0OjpUZXN0Q2xhc3NOYW1lPiYgb3B0aW9uYWxSZXBs
eSk7CiAgICAgdXNpbmcgUmVwbHkgPSBzdGQ6OnR1cGxlPE9wdGlvbmFsPFdlYktpdDo6VGVzdENs
YXNzTmFtZT4mPjsKICAgICB1c2luZyBSZXBseUFyZ3VtZW50cyA9IHN0ZDo6dHVwbGU8T3B0aW9u
YWw8V2ViS2l0OjpUZXN0Q2xhc3NOYW1lPj47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1Nj
cmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5IGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9t
ZXNzYWdlcy5weQppbmRleCAzNTYxMzRiYmM3MzAwMWI5YzFkNzk0NTMwMWI0MWEwYzQ0MzU3YmZm
Li4yMWRlNjg1NmUwNzk0NGY4YjE3NmVkOGI3YjkzOTZjNjVjMDM2ZGI2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CisrKyBiL1NvdXJjZS9XZWJL
aXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKQEAgLTMyLDcgKzMyLDcgQEAgU1lOQ0hST05P
VVNfQVRUUklCVVRFID0gJ1N5bmNocm9ub3VzJwogQVNZTkNfQVRUUklCVVRFID0gJ0FzeW5jJwog
CiBfbGljZW5zZV9oZWFkZXIgPSAiIiIvKgotICogQ29weXJpZ2h0IChDKSAyMDEwLTIwMTggQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwLTIwMTkg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCkBAIC0xMTMsOSArMTEzLDI5IEBAIGRlZiByZXBseV9hcmd1bWVudHNfdHlwZShtZXNz
YWdlKToKICAgICByZXR1cm4gJ3N0ZDo6dHVwbGU8JXM+JyAlICgnLCAnLmpvaW4ocGFyYW1ldGVy
LnR5cGUgZm9yIHBhcmFtZXRlciBpbiBtZXNzYWdlLnJlcGx5X3BhcmFtZXRlcnMpKQogCiAKK2Rl
ZiBtZXNzYWdlX3RvX3JlcGx5X2ZvcndhcmRfZGVjbGFyYXRpb24obWVzc2FnZSk6CisgICAgcmVz
dWx0ID0gW10KKworICAgIGlmIG1lc3NhZ2UucmVwbHlfcGFyYW1ldGVycyAhPSBOb25lIGFuZCAo
bWVzc2FnZS5oYXNfYXR0cmlidXRlKFNZTkNIUk9OT1VTX0FUVFJJQlVURSkgb3IgbWVzc2FnZS5o
YXNfYXR0cmlidXRlKEFTWU5DX0FUVFJJQlVURSkpOgorICAgICAgICBzZW5kX3BhcmFtZXRlcnMg
PSBbKGZ1bmN0aW9uX3BhcmFtZXRlcl90eXBlKHgudHlwZSwgeC5raW5kKSwgeC5uYW1lKSBmb3Ig
eCBpbiBtZXNzYWdlLnJlcGx5X3BhcmFtZXRlcnNdCisgICAgICAgIGNvbXBsZXRpb25faGFuZGxl
cl9wYXJhbWV0ZXJzID0gJyVzJyAlICcsICcuam9pbihbJyAnLmpvaW4oeCkgZm9yIHggaW4gc2Vu
ZF9wYXJhbWV0ZXJzXSkKKworICAgICAgICBpZiBtZXNzYWdlLmhhc19hdHRyaWJ1dGUoQVNZTkNf
QVRUUklCVVRFKToKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJ3VzaW5nICVzQXN5bmNSZXBs
eScgJSBtZXNzYWdlLm5hbWUpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByZXN1bHQuYXBw
ZW5kKCd1c2luZyAlc0RlbGF5ZWRSZXBseScgJSBtZXNzYWdlLm5hbWUpCisgICAgICAgIHJlc3Vs
dC5hcHBlbmQoJyA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoJXMpPjtcbicgJSBjb21wbGV0aW9u
X2hhbmRsZXJfcGFyYW1ldGVycykKKworICAgIGlmIG5vdCByZXN1bHQ6CisgICAgICAgIHJldHVy
biBOb25lCisKKyAgICByZXR1cm4gc3Vycm91bmRfaW5fY29uZGl0aW9uKCcnLmpvaW4ocmVzdWx0
KSwgbWVzc2FnZS5jb25kaXRpb24pCisKKwogZGVmIG1lc3NhZ2VfdG9fc3RydWN0X2RlY2xhcmF0
aW9uKG1lc3NhZ2UpOgogICAgIHJlc3VsdCA9IFtdCiAgICAgZnVuY3Rpb25fcGFyYW1ldGVycyA9
IFsoZnVuY3Rpb25fcGFyYW1ldGVyX3R5cGUoeC50eXBlLCB4LmtpbmQpLCB4Lm5hbWUpIGZvciB4
IGluIG1lc3NhZ2UucGFyYW1ldGVyc10KKwogICAgIHJlc3VsdC5hcHBlbmQoJ2NsYXNzICVzIHtc
bicgJSBtZXNzYWdlLm5hbWUpCiAgICAgcmVzdWx0LmFwcGVuZCgncHVibGljOlxuJykKICAgICBy
ZXN1bHQuYXBwZW5kKCcgICAgdHlwZWRlZiAlcyBBcmd1bWVudHM7XG4nICUgYXJndW1lbnRzX3R5
cGUobWVzc2FnZSkpCkBAIC0xMzIsMTEgKzE1MiwxMCBAQCBkZWYgbWVzc2FnZV90b19zdHJ1Y3Rf
ZGVjbGFyYXRpb24obWVzc2FnZSk6CiAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcgICAgc3Rh
dGljIHZvaWQgY2FsbFJlcGx5KElQQzo6RGVjb2RlciYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
JXMpPiYmKTtcbicgJSBtb3ZlX3BhcmFtZXRlcnMpCiAgICAgICAgICAgICByZXN1bHQuYXBwZW5k
KCcgICAgc3RhdGljIHZvaWQgY2FuY2VsUmVwbHkoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCglcyk+
JiYpO1xuJyAlIG1vdmVfcGFyYW1ldGVycykKICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyAg
ICBzdGF0aWMgSVBDOjpTdHJpbmdSZWZlcmVuY2UgYXN5bmNNZXNzYWdlUmVwbHlOYW1lKCkgeyBy
ZXR1cm4geyAiJXNSZXBseSIgfTsgfVxuJyAlIG1lc3NhZ2UubmFtZSkKLSAgICAgICAgICAgIHJl
c3VsdC5hcHBlbmQoJyAgICB1c2luZyBBc3luY1JlcGx5JykKKyAgICAgICAgICAgIHJlc3VsdC5h
cHBlbmQoJyAgICB1c2luZyBBc3luY1JlcGx5ID0gJXNBc3luY1JlcGx5O1xuJyAlIG1lc3NhZ2Uu
bmFtZSkKICAgICAgICAgZWxpZiBtZXNzYWdlLmhhc19hdHRyaWJ1dGUoU1lOQ0hST05PVVNfQVRU
UklCVVRFKToKLSAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyAgICB1c2luZyBEZWxheWVkUmVw
bHknKQorICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnICAgIHVzaW5nIERlbGF5ZWRSZXBseSA9
ICVzRGVsYXllZFJlcGx5O1xuJyAlIG1lc3NhZ2UubmFtZSkKICAgICAgICAgaWYgbWVzc2FnZS5o
YXNfYXR0cmlidXRlKFNZTkNIUk9OT1VTX0FUVFJJQlVURSkgb3IgbWVzc2FnZS5oYXNfYXR0cmli
dXRlKEFTWU5DX0FUVFJJQlVURSk6Ci0gICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcgPSBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKCVzKT47XG4nICUgY29tcGxldGlvbl9oYW5kbGVyX3BhcmFtZXRl
cnMpCiAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcgICAgc3RhdGljIHZvaWQgc2VuZChzdGQ6
OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYmLCBJUEM6OkNvbm5lY3Rpb24mJykKICAgICAgICAg
ICAgIGlmIGxlbihzZW5kX3BhcmFtZXRlcnMpOgogICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBl
bmQoJywgJXMnICUgY29tcGxldGlvbl9oYW5kbGVyX3BhcmFtZXRlcnMpCkBAIC0xODAsMjcgKzE5
OSw4IEBAIGRlZiBmb3J3YXJkX2RlY2xhcmF0aW9uc19mb3JfbmFtZXNwYWNlKG5hbWVzcGFjZSwg
a2luZF9hbmRfdHlwZXMpOgogICAgIHJldHVybiAnJy5qb2luKHJlc3VsdCkKIAogCi1kZWYgZm9y
d2FyZF9kZWNsYXJhdGlvbnNfYW5kX2hlYWRlcnMocmVjZWl2ZXIpOgotICAgIHR5cGVzX2J5X25h
bWVzcGFjZSA9IGNvbGxlY3Rpb25zLmRlZmF1bHRkaWN0KHNldCkKLQotICAgIGhlYWRlcnMgPSBz
ZXQoWwotICAgICAgICAnIkFyZ3VtZW50Q29kZXJzLmgiJywKLSAgICAgICAgJzx3dGYvRm9yd2Fy
ZC5oPicsCi0gICAgXSkKLQotICAgIGhlYWRlcl9jb25kaXRpb25zID0gewotICAgICAgICAnIkxh
eWVySG9zdGluZ0NvbnRleHQuaCInOiBbIlBMQVRGT1JNKENPQ09BKSIsIF0sCi0gICAgfQotCi0g
ICAgbm9uX3RlbXBsYXRlX3d0Zl90eXBlcyA9IGZyb3plbnNldChbCi0gICAgICAgICdNYWNoU2Vu
ZFJpZ2h0JywKLSAgICAgICAgJ1N0cmluZycsCi0gICAgXSkKLQotICAgIGhlYWRlcnMuYWRkKCci
Q29ubmVjdGlvbi5oIicpCi0gICAgaGVhZGVycy5hZGQoJzx3dGYvVGhyZWFkU2FmZVJlZkNvdW50
ZWQuaD4nKQotCi0gICAgbm9fZm9yd2FyZF9kZWNsYXJhdGlvbl90eXBlcyA9IGZyb3plbnNldChb
CitkZWYgdHlwZXNfdGhhdF9jYW5ub3RfYmVfZm9yd2FyZF9kZWNsYXJlZCgpOgorICAgIHJldHVy
biBmcm96ZW5zZXQoWwogICAgICAgICAnTWFjaFNlbmRSaWdodCcsCiAgICAgICAgICdTdHJpbmcn
LAogICAgICAgICAnV2ViQ29yZTo6RG9jdW1lbnRJZGVudGlmaWVyJywKQEAgLTIyNiw2ICsyMjYs
MzMgQEAgZGVmIGZvcndhcmRfZGVjbGFyYXRpb25zX2FuZF9oZWFkZXJzKHJlY2VpdmVyKToKICAg
ICAgICAgJ1dlYktpdDo6V2ViUGFnZVByb3h5SWRlbnRpZmllcicsCiAgICAgXSkKIAorCitkZWYg
Y29uZGl0aW9uc19mb3JfaGVhZGVyKGhlYWRlcik6CisgICAgY29uZGl0aW9ucyA9IHsKKyAgICAg
ICAgJyJMYXllckhvc3RpbmdDb250ZXh0LmgiJzogWyJQTEFURk9STShDT0NPQSkiLCBdLAorICAg
IH0KKyAgICBpZiBub3QgaGVhZGVyIGluIGNvbmRpdGlvbnM6CisgICAgICAgIHJldHVybiBOb25l
CisgICAgcmV0dXJuIGNvbmRpdGlvbnNbaGVhZGVyXQorCisKK2RlZiBmb3J3YXJkX2RlY2xhcmF0
aW9uc19hbmRfaGVhZGVycyhyZWNlaXZlcik6CisgICAgdHlwZXNfYnlfbmFtZXNwYWNlID0gY29s
bGVjdGlvbnMuZGVmYXVsdGRpY3Qoc2V0KQorCisgICAgaGVhZGVycyA9IHNldChbCisgICAgICAg
ICciQXJndW1lbnRDb2RlcnMuaCInLAorICAgICAgICAnPHd0Zi9Gb3J3YXJkLmg+JywKKyAgICAg
ICAgJyJDb25uZWN0aW9uLmgiJywKKyAgICAgICAgJzx3dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQu
aD4nLAorICAgICAgICAnIiVzTWVzc2FnZXNSZXBsaWVzLmgiJyAlIHJlY2VpdmVyLm5hbWUsCisg
ICAgXSkKKworICAgIG5vbl90ZW1wbGF0ZV93dGZfdHlwZXMgPSBmcm96ZW5zZXQoWworICAgICAg
ICAnTWFjaFNlbmRSaWdodCcsCisgICAgICAgICdTdHJpbmcnLAorICAgIF0pCisKKyAgICBub19m
b3J3YXJkX2RlY2xhcmF0aW9uX3R5cGVzID0gdHlwZXNfdGhhdF9jYW5ub3RfYmVfZm9yd2FyZF9k
ZWNsYXJlZCgpCiAgICAgZm9yIHBhcmFtZXRlciBpbiByZWNlaXZlci5pdGVycGFyYW1ldGVycygp
OgogICAgICAgICBraW5kID0gcGFyYW1ldGVyLmtpbmQKICAgICAgICAgdHlwZSA9IHBhcmFtZXRl
ci50eXBlCkBAIC0yNTQsOCArMjgxLDY2IEBAIGRlZiBmb3J3YXJkX2RlY2xhcmF0aW9uc19hbmRf
aGVhZGVycyhyZWNlaXZlcik6CiAKICAgICBoZWFkZXJfaW5jbHVkZXMgPSBbXQogICAgIGZvciBo
ZWFkZXIgaW4gc29ydGVkKGhlYWRlcnMpOgotICAgICAgICBpZiBoZWFkZXIgaW4gaGVhZGVyX2Nv
bmRpdGlvbnMgYW5kIG5vdCBOb25lIGluIGhlYWRlcl9jb25kaXRpb25zW2hlYWRlcl06Ci0gICAg
ICAgICAgICBoZWFkZXJfaW5jbHVkZSA9ICcjaWYgJXNcbicgJSAnIHx8ICcuam9pbihzZXQoaGVh
ZGVyX2NvbmRpdGlvbnNbaGVhZGVyXSkpCisgICAgICAgIGNvbmRpdGlvbnMgPSBjb25kaXRpb25z
X2Zvcl9oZWFkZXIoaGVhZGVyKQorICAgICAgICBpZiBjb25kaXRpb25zIGFuZCBub3QgTm9uZSBp
biBjb25kaXRpb25zOgorICAgICAgICAgICAgaGVhZGVyX2luY2x1ZGUgPSAnI2lmICVzXG4nICUg
JyB8fCAnLmpvaW4oc2V0KGNvbmRpdGlvbnMpKQorICAgICAgICAgICAgaGVhZGVyX2luY2x1ZGUg
Kz0gJyNpbmNsdWRlICVzXG4nICUgaGVhZGVyCisgICAgICAgICAgICBoZWFkZXJfaW5jbHVkZSAr
PSAnI2VuZGlmXG4nCisgICAgICAgICAgICBoZWFkZXJfaW5jbHVkZXMuYXBwZW5kKGhlYWRlcl9p
bmNsdWRlKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgaGVhZGVyX2luY2x1ZGVzLmFwcGVu
ZCgnI2luY2x1ZGUgJXNcbicgJSBoZWFkZXIpCisKKyAgICByZXR1cm4gKGZvcndhcmRfZGVjbGFy
YXRpb25zLCBoZWFkZXJfaW5jbHVkZXMpCisKKworZGVmIGZvcndhcmRfZGVjbGFyYXRpb25zX2Fu
ZF9oZWFkZXJzX2Zvcl9yZXBsaWVzKHJlY2VpdmVyKToKKyAgICB0eXBlc19ieV9uYW1lc3BhY2Ug
PSBjb2xsZWN0aW9ucy5kZWZhdWx0ZGljdChzZXQpCisKKyAgICBoZWFkZXJzID0gc2V0KFsKKyAg
ICAgICAgJzx3dGYvRm9yd2FyZC5oPicsCisgICAgXSkKKworICAgIG5vbl90ZW1wbGF0ZV93dGZf
dHlwZXMgPSBmcm96ZW5zZXQoWworICAgICAgICAnTWFjaFNlbmRSaWdodCcsCisgICAgICAgICdT
dHJpbmcnLAorICAgIF0pCisKKyAgICBub19mb3J3YXJkX2RlY2xhcmF0aW9uX3R5cGVzID0gdHlw
ZXNfdGhhdF9jYW5ub3RfYmVfZm9yd2FyZF9kZWNsYXJlZCgpCisgICAgZm9yIG1lc3NhZ2UgaW4g
cmVjZWl2ZXIubWVzc2FnZXM6CisgICAgICAgIGlmIG1lc3NhZ2UucmVwbHlfcGFyYW1ldGVycyA9
PSBOb25lIG9yIG5vdCAobWVzc2FnZS5oYXNfYXR0cmlidXRlKFNZTkNIUk9OT1VTX0FUVFJJQlVU
RSkgb3IgbWVzc2FnZS5oYXNfYXR0cmlidXRlKEFTWU5DX0FUVFJJQlVURSkpOgorICAgICAgICAg
ICAgY29udGludWUKKworICAgICAgICBmb3IgcGFyYW1ldGVyIGluIG1lc3NhZ2UucmVwbHlfcGFy
YW1ldGVyczoKKyAgICAgICAgICAgIGtpbmQgPSBwYXJhbWV0ZXIua2luZAorICAgICAgICAgICAg
dHlwZSA9IHBhcmFtZXRlci50eXBlCisKKyAgICAgICAgICAgIGlmIHR5cGUuZmluZCgnPCcpICE9
IC0xIG9yIHR5cGUgaW4gbm9fZm9yd2FyZF9kZWNsYXJhdGlvbl90eXBlczoKKyAgICAgICAgICAg
ICAgICAjIERvbid0IGZvcndhcmQgZGVjbGFyZSBjbGFzcyB0ZW1wbGF0ZXMuCisgICAgICAgICAg
ICAgICAgaGVhZGVycy51cGRhdGUoaGVhZGVyc19mb3JfdHlwZSh0eXBlKSkKKyAgICAgICAgICAg
ICAgICBjb250aW51ZQorCisgICAgICAgICAgICBzcGxpdCA9IHR5cGUuc3BsaXQoJzo6JykKKwor
ICAgICAgICAgICAgIyBIYW5kbGUgV1RGIHR5cGVzIGV2ZW4gaWYgdGhlIFdURjo6IHByZWZpeCBp
cyBub3QgZ2l2ZW4KKyAgICAgICAgICAgIGlmIHNwbGl0WzBdIGluIG5vbl90ZW1wbGF0ZV93dGZf
dHlwZXM6CisgICAgICAgICAgICAgICAgc3BsaXQuaW5zZXJ0KDAsICdXVEYnKQorCisgICAgICAg
ICAgICBpZiBsZW4oc3BsaXQpID09IDI6CisgICAgICAgICAgICAgICAgbmFtZXNwYWNlID0gc3Bs
aXRbMF0KKyAgICAgICAgICAgICAgICBpbm5lcl90eXBlID0gc3BsaXRbMV0KKyAgICAgICAgICAg
ICAgICB0eXBlc19ieV9uYW1lc3BhY2VbbmFtZXNwYWNlXS5hZGQoKGtpbmQsIGlubmVyX3R5cGUp
KQorICAgICAgICAgICAgZWxpZiBsZW4oc3BsaXQpID4gMjoKKyAgICAgICAgICAgICAgICAjIFdl
IHByb2JhYmx5IGhhdmUgYSBuZXN0ZWQgc3RydWN0LCB3aGljaCBtZWFucyB3ZSBjYW4ndCBmb3J3
YXJkIGRlY2xhcmUgaXQuCisgICAgICAgICAgICAgICAgIyBJbmNsdWRlIGl0cyBoZWFkZXIgaW5z
dGVhZC4KKyAgICAgICAgICAgICAgICBoZWFkZXJzLnVwZGF0ZShoZWFkZXJzX2Zvcl90eXBlKHR5
cGUpKQorCisgICAgZm9yd2FyZF9kZWNsYXJhdGlvbnMgPSAnXG4nLmpvaW4oW2ZvcndhcmRfZGVj
bGFyYXRpb25zX2Zvcl9uYW1lc3BhY2UobmFtZXNwYWNlLCB0eXBlcykgZm9yIChuYW1lc3BhY2Us
IHR5cGVzKSBpbiBzb3J0ZWQodHlwZXNfYnlfbmFtZXNwYWNlLml0ZW1zKCkpXSkKKworICAgIGhl
YWRlcl9pbmNsdWRlcyA9IFtdCisgICAgZm9yIGhlYWRlciBpbiBzb3J0ZWQoaGVhZGVycyk6Cisg
ICAgICAgIGNvbmRpdGlvbnMgPSBjb25kaXRpb25zX2Zvcl9oZWFkZXIoaGVhZGVyKQorICAgICAg
ICBpZiBjb25kaXRpb25zIGFuZCBub3QgTm9uZSBpbiBjb25kaXRpb25zOgorICAgICAgICAgICAg
aGVhZGVyX2luY2x1ZGUgPSAnI2lmICVzXG4nICUgJyB8fCAnLmpvaW4oc2V0KGNvbmRpdGlvbnMp
KQogICAgICAgICAgICAgaGVhZGVyX2luY2x1ZGUgKz0gJyNpbmNsdWRlICVzXG4nICUgaGVhZGVy
CiAgICAgICAgICAgICBoZWFkZXJfaW5jbHVkZSArPSAnI2VuZGlmXG4nCiAgICAgICAgICAgICBo
ZWFkZXJfaW5jbHVkZXMuYXBwZW5kKGhlYWRlcl9pbmNsdWRlKQpAQCAtMjY1LDkgKzM1MCwzOCBA
QCBkZWYgZm9yd2FyZF9kZWNsYXJhdGlvbnNfYW5kX2hlYWRlcnMocmVjZWl2ZXIpOgogICAgIHJl
dHVybiAoZm9yd2FyZF9kZWNsYXJhdGlvbnMsIGhlYWRlcl9pbmNsdWRlcykKIAogCi1kZWYgZ2Vu
ZXJhdGVfbWVzc2FnZXNfaGVhZGVyKGZpbGUpOgotICAgIHJlY2VpdmVyID0gcGFyc2VyLnBhcnNl
KGZpbGUpCitkZWYgZ2VuZXJhdGVfbWVzc2FnZXNfcmVwbHlfaGVhZGVyKHJlY2VpdmVyKToKKyAg
ICByZXN1bHQgPSBbXQorCisgICAgcmVzdWx0LmFwcGVuZChfbGljZW5zZV9oZWFkZXIpCisKKyAg
ICByZXN1bHQuYXBwZW5kKCcjcHJhZ21hIG9uY2VcbicpCisgICAgcmVzdWx0LmFwcGVuZCgnXG4n
KQorCisgICAgaWYgcmVjZWl2ZXIuY29uZGl0aW9uOgorICAgICAgICByZXN1bHQuYXBwZW5kKCcj
aWYgJXNcblxuJyAlIHJlY2VpdmVyLmNvbmRpdGlvbikKKworICAgIGZvcndhcmRfZGVjbGFyYXRp
b25zLCBoZWFkZXJzID0gZm9yd2FyZF9kZWNsYXJhdGlvbnNfYW5kX2hlYWRlcnNfZm9yX3JlcGxp
ZXMocmVjZWl2ZXIpCisKKyAgICByZXN1bHQgKz0gaGVhZGVycworICAgIHJlc3VsdC5hcHBlbmQo
J1xuJykKKworICAgIHJlc3VsdC5hcHBlbmQoZm9yd2FyZF9kZWNsYXJhdGlvbnMpCisgICAgcmVz
dWx0LmFwcGVuZCgnXG4nKQorCisgICAgcmVzdWx0LmFwcGVuZCgnbmFtZXNwYWNlIE1lc3NhZ2Vz
IHtcbm5hbWVzcGFjZSAlcyB7XG4nICUgcmVjZWl2ZXIubmFtZSkKKyAgICByZXN1bHQuYXBwZW5k
KCdcbicpCisgICAgcmVzdWx0LmFwcGVuZCgnXG4nLmpvaW4oZmlsdGVyKE5vbmUsIFttZXNzYWdl
X3RvX3JlcGx5X2ZvcndhcmRfZGVjbGFyYXRpb24oeCkgZm9yIHggaW4gcmVjZWl2ZXIubWVzc2Fn
ZXNdKSkpCisgICAgcmVzdWx0LmFwcGVuZCgnXG4nKQorICAgIHJlc3VsdC5hcHBlbmQoJ30gLy8g
bmFtZXNwYWNlICVzXG59IC8vIG5hbWVzcGFjZSBNZXNzYWdlc1xuJyAlIHJlY2VpdmVyLm5hbWUp
CisKKyAgICBpZiByZWNlaXZlci5jb25kaXRpb246CisgICAgICAgIHJlc3VsdC5hcHBlbmQoJ1xu
I2VuZGlmIC8vICVzXG4nICUgcmVjZWl2ZXIuY29uZGl0aW9uKQorCisgICAgcmV0dXJuICcnLmpv
aW4ocmVzdWx0KQorCiAKK2RlZiBnZW5lcmF0ZV9tZXNzYWdlc19oZWFkZXIocmVjZWl2ZXIpOgog
ICAgIHJlc3VsdCA9IFtdCiAKICAgICByZXN1bHQuYXBwZW5kKF9saWNlbnNlX2hlYWRlcikKQEAg
LTUxNSw4ICs2MjksNyBAQCBkZWYgaGVhZGVyc19mb3JfdHlwZSh0eXBlKToKICAgICByZXR1cm4g
aGVhZGVycwogCiAKLWRlZiBnZW5lcmF0ZV9tZXNzYWdlX2hhbmRsZXIoZmlsZSk6Ci0gICAgcmVj
ZWl2ZXIgPSBwYXJzZXIucGFyc2UoZmlsZSkKK2RlZiBnZW5lcmF0ZV9tZXNzYWdlX2hhbmRsZXIo
cmVjZWl2ZXIpOgogICAgIGhlYWRlcl9jb25kaXRpb25zID0gewogICAgICAgICAnIiVzIicgJSBt
ZXNzYWdlc19oZWFkZXJfZmlsZW5hbWUocmVjZWl2ZXIpOiBbTm9uZV0sCiAgICAgICAgICciSGFu
ZGxlTWVzc2FnZS5oIic6IFtOb25lXSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAKaW5kZXgg
OTFjZjk0ODBjNzUxOGNkOWJiMTdlOWZjYTRlOTE2ZDBiMDczYjA4Yi4uZTUxNzdkMDI0N2JmM2Y3
MTA5OTNlOGM0ODE0NTQ0OGQ0MjJmMDM4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAK
QEAgLTMwLDYgKzMwLDcgQEAKIAogI2luY2x1ZGUgIlNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlLmgi
CiAjaW5jbHVkZSAiVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJNZXNzYWdlcy5oIgorI2luY2x1ZGUg
IlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYkNv
cmVBcmd1bWVudENvZGVycy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NQcm94eS5oIgogI2luY2x1
ZGUgPFdlYkNvcmUvQ0FSaW5nQnVmZmVyLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmgKaW5kZXgg
OWJkZGI5OTA5ZGY3ZThmZWYxZTU0ODA2Y2JlNmJjNWM0MGNmYzU4MS4uNDQ0NjBkNGQ5NDAwYjZk
MTE2MTM3ZjUyZmQ2MDU1N2I4NDk4MWQyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaApAQCAt
MzAsNyArMzAsNiBAQAogI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJNZXNzYWdl
UmVjZWl2ZXIuaCIKICNpbmNsdWRlICJVc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oIgotI2luY2x1
ZGUgIlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgPFdl
YkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJjZS5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZFByb3h5Lmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRQcm94eS5oCmluZGV4
IDYzYjBmODU4MWNhMmU5YmFhMWE2NTQ2YTgxODIyNmIxNmIyMDc1MzguLmNkMGIwMGU1NzMxMTRl
Nzc5MzZjYjc4ZDcxODVjNTYwOTdjZWU4M2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZFByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkUHJveHkuaApAQCAtMjgsNyArMjgsNiBAQAogI2luY2x1
ZGUgIkFQSU9iamVjdC5oIgogI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJEb3du
bG9hZElELmgiCi0jaW5jbHVkZSAiRG93bmxvYWRQcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAi
U2FuZGJveEV4dGVuc2lvbi5oIgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+
CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCmluZGV4IDZjMTkwNTI5ZGFl
ZTEwYjA0MGVkN2IxMDRjZGQzMzY1NjJlYjM1YTcuLjEyNTM0N2JmMzZkY2Q1YjczMjVhZTgwMzNk
YmFmOTNiYmQzYTY1MjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdv
cmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
TmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcApAQCAtMzksNiArMzksNyBAQAogI2luY2x1
ZGUgIk5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbkluZm8uaCIKICNpbmNsdWRlICJOZXR3b3JrUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIgogI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzTWVzc2Fn
ZXMuaCIKKyNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCIKICNpbmNsdWRl
ICJTYW5kYm94RXh0ZW5zaW9uLmgiCiAjaWYgSEFWRShTRUNfS0VZX1BST1hZKQogI2luY2x1ZGUg
IlNlY0tleVByb3h5U3RvcmUuaCIKQEAgLTUxLDYgKzUyLDcgQEAKICNpbmNsdWRlICJXZWJQcm9j
ZXNzTWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzUG9vbC5oIgogI2luY2x1ZGUgIldl
YlByb2Nlc3NQcm94eS5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3NQcm94eU1lc3NhZ2VzLmgiCiAj
aW5jbHVkZSAiV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmgiCiAjaW5jbHVkZSAiV2Vi
VXNlckNvbnRlbnRDb250cm9sbGVyUHJveHkuaCIKICNpbmNsdWRlICJXZWJzaXRlRGF0YS5oIgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vz
c1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNz
UHJveHkuaAppbmRleCBkYTRiZWQyNjgyODE4YjQzZGE0Mzg4ODFiNTY4ZWNjMGJhZDU2NjRkLi4z
NWUwNDNlNTUyY2EwZDM5NTA4NzdhODVjODhlYTUwZWVmYmJkMjllIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaApAQCAt
MjYsMjEgKzI2LDIzIEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkF1eGlsaWFyeVByb2Nl
c3NQcm94eS5oIgotI2lmIEVOQUJMRShMRUdBQ1lfQ1VTVE9NX1BST1RPQ09MX01BTkFHRVIpCi0j
aW5jbHVkZSAiTGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyUHJveHkuaCIKLSNlbmRpZgotI2lu
Y2x1ZGUgIk5ldHdvcmtQcm9jZXNzUHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgIk5ldHdvcmtQ
cm9jZXNzUHJveHlNZXNzYWdlc1JlcGxpZXMuaCIKICNpbmNsdWRlICJQcm9jZXNzTGF1bmNoZXIu
aCIKICNpbmNsdWRlICJQcm9jZXNzVGhyb3R0bGVyLmgiCiAjaW5jbHVkZSAiUHJvY2Vzc1Rocm90
dGxlckNsaWVudC5oIgogI2luY2x1ZGUgIlVzZXJDb250ZW50Q29udHJvbGxlcklkZW50aWZpZXIu
aCIKLSNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYlBy
b2Nlc3NQcm94eU1lc3NhZ2VzUmVwbGllcy5oIgogI2luY2x1ZGUgIldlYnNpdGVEYXRhU3RvcmUu
aCIKICNpbmNsdWRlIDxXZWJDb3JlL0Nyb3NzU2l0ZU5hdmlnYXRpb25EYXRhVHJhbnNmZXIuaD4K
KyNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
UmVnaXN0cmFibGVEb21haW4uaD4KICNpbmNsdWRlIDxtZW1vcnk+CiAjaW5jbHVkZSA8d3RmL0Rl
cXVlLmg+CiAKKyNpZiBFTkFCTEUoTEVHQUNZX0NVU1RPTV9QUk9UT0NPTF9NQU5BR0VSKQorI2lu
Y2x1ZGUgIkxlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdlclByb3h5LmgiCisjZW5kaWYKKwogbmFt
ZXNwYWNlIFBBTCB7CiBjbGFzcyBTZXNzaW9uSUQ7CiB9CkBAIC04Nyw3ICs4OSw3IEBAIHB1Ymxp
YzoKICAgICBleHBsaWNpdCBOZXR3b3JrUHJvY2Vzc1Byb3h5KFdlYlByb2Nlc3NQb29sJik7CiAg
ICAgfk5ldHdvcmtQcm9jZXNzUHJveHkoKTsKIAotICAgIHZvaWQgZ2V0TmV0d29ya1Byb2Nlc3ND
b25uZWN0aW9uKFdlYlByb2Nlc3NQcm94eSYsIE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6Okdl
dE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6RGVsYXllZFJlcGx5JiYpOworICAgIHZvaWQgZ2V0
TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKFdlYlByb2Nlc3NQcm94eSYsIE1lc3NhZ2VzOjpXZWJQ
cm9jZXNzUHJveHk6OkdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbkRlbGF5ZWRSZXBseSYmKTsK
IAogICAgIERvd25sb2FkUHJveHkmIGNyZWF0ZURvd25sb2FkUHJveHkoV2Vic2l0ZURhdGFTdG9y
ZSYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpOwogCkBAIC0xNjksNyArMTcxLDcg
QEAgcHVibGljOgogICAgIHZvaWQgc3luY0FsbENvb2tpZXMoKTsKICAgICB2b2lkIGRpZFN5bmNB
bGxDb29raWVzKCk7CiAKLSAgICB2b2lkIHRlc3RQcm9jZXNzSW5jb21pbmdTeW5jTWVzc2FnZXNX
aGVuV2FpdGluZ0ZvclN5bmNSZXBseShXZWJQYWdlUHJveHlJZGVudGlmaWVyLCBNZXNzYWdlczo6
TmV0d29ya1Byb2Nlc3NQcm94eTo6VGVzdFByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5X
YWl0aW5nRm9yU3luY1JlcGx5OjpEZWxheWVkUmVwbHkmJik7CisgICAgdm9pZCB0ZXN0UHJvY2Vz
c0luY29taW5nU3luY01lc3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkoV2ViUGFnZVByb3h5
SWRlbnRpZmllciwgTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OlRlc3RQcm9jZXNzSW5j
b21pbmdTeW5jTWVzc2FnZXNXaGVuV2FpdGluZ0ZvclN5bmNSZXBseURlbGF5ZWRSZXBseSYmKTsK
IAogICAgIFByb2Nlc3NUaHJvdHRsZXImIHRocm90dGxlcigpIHsgcmV0dXJuIG1fdGhyb3R0bGVy
OyB9CiAgICAgV2ViUHJvY2Vzc1Bvb2wmIHByb2Nlc3NQb29sKCkgeyByZXR1cm4gbV9wcm9jZXNz
UG9vbDsgfQpAQCAtMjQyLDcgKzI0NCw3IEBAIHByaXZhdGU6CiAjZW5kaWYKIAogI2lmIEVOQUJM
RShTQU5EQk9YX0VYVEVOU0lPTlMpCi0gICAgdm9pZCBnZXRTYW5kYm94RXh0ZW5zaW9uc0ZvckJs
b2JGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGF0aHMsIE1lc3NhZ2VzOjpOZXR3b3JrUHJv
Y2Vzc1Byb3h5OjpHZXRTYW5kYm94RXh0ZW5zaW9uc0ZvckJsb2JGaWxlczo6QXN5bmNSZXBseSYm
KTsKKyAgICB2b2lkIGdldFNhbmRib3hFeHRlbnNpb25zRm9yQmxvYkZpbGVzKGNvbnN0IFZlY3Rv
cjxTdHJpbmc+JiBwYXRocywgTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OkdldFNhbmRi
b3hFeHRlbnNpb25zRm9yQmxvYkZpbGVzQXN5bmNSZXBseSYmKTsKICNlbmRpZgogCiAjaWYgRU5B
QkxFKFNFUlZJQ0VfV09SS0VSKQpAQCAtMjY1LDcgKzI2Nyw3IEBAIHByaXZhdGU6CiAKICAgICBz
dHJ1Y3QgQ29ubmVjdGlvblJlcXVlc3QgewogICAgICAgICBXZWFrUHRyPFdlYlByb2Nlc3NQcm94
eT4gd2ViUHJvY2VzczsKLSAgICAgICAgTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0TmV0
d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpEZWxheWVkUmVwbHkgcmVwbHk7CisgICAgICAgIE1lc3Nh
Z2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbkRlbGF5ZWRS
ZXBseSByZXBseTsKICAgICB9OwogICAgIHVpbnQ2NF90IG1fY29ubmVjdGlvblJlcXVlc3RJZGVu
dGlmaWVyIHsgMCB9OwogICAgIEhhc2hNYXA8dWludDY0X3QsIENvbm5lY3Rpb25SZXF1ZXN0PiBt
X2Nvbm5lY3Rpb25SZXF1ZXN0czsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1BsdWdpbnMvUGx1Z2luUHJvY2Vzc01hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzTWFuYWdlci5jcHAKaW5kZXggMzc4MmM4NGI2Nzc5ZTlk
OGUyMDY4YTZhMTU5OTA2ZjY3YTBkYTQzMC4uZTUzYWYyZmU4MTRlMGIwMWZkNmE4MzdkMDM0YzQ4
NzFlNTg1NDhlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGx1Z2lucy9Q
bHVnaW5Qcm9jZXNzTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGx1
Z2lucy9QbHVnaW5Qcm9jZXNzTWFuYWdlci5jcHAKQEAgLTI5LDYgKzI5LDcgQEAKICNpZiBFTkFC
TEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKIAogI2luY2x1ZGUgIlBsdWdpblByb2Nlc3NQcm94eS5o
IgorI2luY2x1ZGUgIldlYlByb2Nlc3NQcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2Vic2l0
ZURhdGFGZXRjaE9wdGlvbi5oIgogI2luY2x1ZGUgPHd0Zi9DcnlwdG9ncmFwaGljYWxseVJhbmRv
bU51bWJlci5oPgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzTWFuYWdlci5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzTWFuYWdlci5oCmlu
ZGV4IDk2NWNiMjI5ZTBjY2Q3NzU3ODFkZmVlMDVjZTlkNTZiMWY3MTUyMTcuLjkzMGYwYTE3NTBi
NjI4MzM2ODlhM2Y1NGI0ZmM4Njc2ZjNmZjE2ZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc01hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NNYW5hZ2VyLmgKQEAgLTMxLDcgKzMx
LDcgQEAKICNpbmNsdWRlICJQbHVnaW5Qcm9jZXNzLmgiCiAjaW5jbHVkZSAiUGx1Z2luUHJvY2Vz
c0F0dHJpYnV0ZXMuaCIKICNpbmNsdWRlICJQcm9jZXNzVGhyb3R0bGVyLmgiCi0jaW5jbHVkZSAi
V2ViUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHlNZXNz
YWdlc1JlcGxpZXMuaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9I
YXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CkBAIC01Nyw3ICs1Nyw3IEBA
IHB1YmxpYzoKIAogICAgIHVpbnQ2NF90IHBsdWdpblByb2Nlc3NUb2tlbihjb25zdCBQbHVnaW5N
b2R1bGVJbmZvJiwgUGx1Z2luUHJvY2Vzc1R5cGUsIFBsdWdpblByb2Nlc3NTYW5kYm94UG9saWN5
KTsKIAotICAgIHZvaWQgZ2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24odWludDY0X3QgcGx1Z2lu
UHJvY2Vzc1Rva2VuLCBNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXRQbHVnaW5Qcm9jZXNz
Q29ubmVjdGlvbjo6RGVsYXllZFJlcGx5JiYpOworICAgIHZvaWQgZ2V0UGx1Z2luUHJvY2Vzc0Nv
bm5lY3Rpb24odWludDY0X3QgcGx1Z2luUHJvY2Vzc1Rva2VuLCBNZXNzYWdlczo6V2ViUHJvY2Vz
c1Byb3h5OjpHZXRQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbkRlbGF5ZWRSZXBseSYmKTsKICAgICB2
b2lkIHJlbW92ZVBsdWdpblByb2Nlc3NQcm94eShQbHVnaW5Qcm9jZXNzUHJveHkqKTsKIAogICAg
IHZvaWQgZmV0Y2hXZWJzaXRlRGF0YShjb25zdCBQbHVnaW5Nb2R1bGVJbmZvJiwgT3B0aW9uU2V0
PFdlYnNpdGVEYXRhRmV0Y2hPcHRpb24+LCBXVEY6OkZ1bmN0aW9uPHZvaWQgKFZlY3RvcjxTdHJp
bmc+KT4mJiBjb21wbGV0aW9uSGFuZGxlcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkuaAppbmRleCA4N2IzZjUwZWE0YmJjMGMz
MWJiMTliMmNjYWEyMGFjNjQwM2VmMjgyLi43MjE5OTIxMTQ4NTE1MTI2ZTVjZDU4NjA1NDczZTkx
YWFkODYwN2Q0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QbHVnaW5zL1Bs
dWdpblByb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BsdWdpbnMv
UGx1Z2luUHJvY2Vzc1Byb3h5LmgKQEAgLTMzLDcgKzMzLDcgQEAKICNpbmNsdWRlICJQbHVnaW5Q
cm9jZXNzLmgiCiAjaW5jbHVkZSAiUGx1Z2luUHJvY2Vzc0F0dHJpYnV0ZXMuaCIKICNpbmNsdWRl
ICJQcm9jZXNzTGF1bmNoZXIuaCIKLSNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHlNZXNzYWdlcy5o
IgorI2luY2x1ZGUgIldlYlByb2Nlc3NQcm94eU1lc3NhZ2VzUmVwbGllcy5oIgogI2luY2x1ZGUg
PHd0Zi9EZXF1ZS5oPgogCiAjaWYgUExBVEZPUk0oQ09DT0EpCkBAIC03MSw3ICs3MSw3IEBAIHB1
YmxpYzoKIAogICAgIC8vIEFza3MgdGhlIHBsdWctaW4gcHJvY2VzcyB0byBjcmVhdGUgYSBuZXcg
Y29ubmVjdGlvbiB0byBhIHdlYiBwcm9jZXNzLiBUaGUgY29ubmVjdGlvbiBpZGVudGlmaWVyIHdp
bGwgYmUKICAgICAvLyBlbmNvZGVkIGluIHRoZSBnaXZlbiBhcmd1bWVudCBlbmNvZGVyIGFuZCBz
ZW50IGJhY2sgdG8gdGhlIGNvbm5lY3Rpb24gb2YgdGhlIGdpdmVuIHdlYiBwcm9jZXNzLgotICAg
IHZvaWQgZ2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24oTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94
eTo6R2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBseSYmKTsKKyAgICB2b2lk
IGdldFBsdWdpblByb2Nlc3NDb25uZWN0aW9uKE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6Okdl
dFBsdWdpblByb2Nlc3NDb25uZWN0aW9uRGVsYXllZFJlcGx5JiYpOwogCiAgICAgdm9pZCBmZXRj
aFdlYnNpdGVEYXRhKENvbXBsZXRpb25IYW5kbGVyPHZvaWQgKFZlY3RvcjxTdHJpbmc+KT4mJik7
CiAgICAgdm9pZCBkZWxldGVXZWJzaXRlRGF0YShXYWxsVGltZSBtb2RpZmllZFNpbmNlLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkICgpPiYmKTsKQEAgLTE0Myw3ICsxNDMsNyBAQCBwcml2YXRlOgog
ICAgIC8vIFRoZSBjb25uZWN0aW9uIHRvIHRoZSBwbHVnLWluIGhvc3QgcHJvY2Vzcy4KICAgICBS
ZWZQdHI8SVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247CiAKLSAgICBEZXF1ZTxNZXNzYWdl
czo6V2ViUHJvY2Vzc1Byb3h5OjpHZXRQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbjo6RGVsYXllZFJl
cGx5PiBtX3BlbmRpbmdDb25uZWN0aW9uUmVwbGllczsKKyAgICBEZXF1ZTxNZXNzYWdlczo6V2Vi
UHJvY2Vzc1Byb3h5OjpHZXRQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbkRlbGF5ZWRSZXBseT4gbV9w
ZW5kaW5nQ29ubmVjdGlvblJlcGxpZXM7CiAKICAgICBWZWN0b3I8dWludDY0X3Q+IG1fcGVuZGlu
Z0ZldGNoV2Vic2l0ZURhdGFSZXF1ZXN0czsKICAgICBIYXNoTWFwPHVpbnQ2NF90LCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkIChWZWN0b3I8U3RyaW5nPik+PiBtX3BlbmRpbmdGZXRjaFdlYnNpdGVE
YXRhQ2FsbGJhY2tzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlz
aW9uYWxQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFn
ZVByb3h5LmgKaW5kZXggZDM1MjUxMzM3OGNiZjQ5MDc3NTkyYzc4YTY0ZGEwYzdkODk1OTEzMi4u
NmQ5Mzc5YzYyZTBiN2YyNTEwMjg4MjQxMTdjMGY4NDM2Yjg0NjBkZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5oCkBAIC0yOCw3ICsyOCw3IEBA
CiAjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCiAjaW5jbHVkZSAiU2FuZGJveEV4dGVuc2lv
bi5oIgogI2luY2x1ZGUgIldlYkZyYW1lUG9saWN5TGlzdGVuZXJQcm94eS5oIgotI2luY2x1ZGUg
IldlYlBhZ2VQcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViUGFnZVByb3h5TWVzc2FnZXNS
ZXBsaWVzLmgiCiAjaW5jbHVkZSAiV2Vic2l0ZVBvbGljaWVzRGF0YS5oIgogI2luY2x1ZGUgPFdl
YkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CiAjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KQEAgLTEx
Miw3ICsxMTIsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgYmFja0ZvcndhcmRHb1RvSXRlbShjb25z
dCBXZWJDb3JlOjpCYWNrRm9yd2FyZEl0ZW1JZGVudGlmaWVyJiwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmJik+JiYpOwogICAgIHZvaWQgZGVjaWRlUG9s
aWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmMoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBib29s
IGlzTWFpbkZyYW1lLCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiwgV2ViQ29yZTo6UG9s
aWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rp
b25EYXRhJiYsCiAgICAgICAgIEZyYW1lSW5mb0RhdGEmJiwgT3B0aW9uYWw8V2ViUGFnZVByb3h5
SWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCYgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgSVBDOjpG
b3JtRGF0YVJlZmVyZW5jZSYmIHJlcXVlc3RCb2R5LAotICAgICAgICBXZWJDb3JlOjpSZXNvdXJj
ZVJlc3BvbnNlJiYgcmVkaXJlY3RSZXNwb25zZSwgY29uc3QgVXNlckRhdGEmLCBNZXNzYWdlczo6
V2ViUGFnZVByb3h5OjpEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luYzo6RGVsYXll
ZFJlcGx5JiYpOworICAgICAgICBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYgcmVkaXJlY3RS
ZXNwb25zZSwgY29uc3QgVXNlckRhdGEmLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEZWNpZGVQ
b2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luY0RlbGF5ZWRSZXBseSYmKTsKICNpZiBVU0UoUVVJ
Q0tfTE9PSykKICAgICB2b2lkIGRpZFJlcXVlc3RQYXNzd29yZEZvclF1aWNrTG9va0RvY3VtZW50
SW5NYWluRnJhbWUoY29uc3QgU3RyaW5nJiBmaWxlTmFtZSk7CiAjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1N1c3BlbmRlZFBhZ2VQcm94eS5oIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvU3VzcGVuZGVkUGFnZVByb3h5LmgKaW5kZXggNzY0YmVkYzc3YmU4MWI0
NWI0OTI2NWJhMTE1YWNhZjdiNTA3NzAyNC4uZWUyYzZhMzc1MjRmMmM5MWFkYWZlYWFiY2Y3OTNh
ZGU2ZDYxZDhkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3VzcGVuZGVk
UGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3VzcGVuZGVkUGFnZVBy
b3h5LmgKQEAgLTI4LDExICsyOCwxNSBAQAogI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKICNpbmNs
dWRlICJQcm9jZXNzVGhyb3R0bGVyLmgiCiAjaW5jbHVkZSAiV2ViQmFja0ZvcndhcmRMaXN0SXRl
bS5oIgotI2luY2x1ZGUgIldlYlBhZ2VQcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViUGFn
ZVByb3h5TWVzc2FnZXNSZXBsaWVzLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUlkZW50aWZp
ZXIuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRy
Lmg+CiAKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIFJlZ2lzdHJhYmxlRG9tYWluOworfQor
CiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgV2ViQmFja0ZvcndhcmRDYWNoZTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IGY5Yzc3NjMxNDNiMDcxNGNh
YjFiYWYyM2U2OTI1ZTdkZDViMjI0MjMuLjM1ZjQ5ZmYyYmM5YzY3MjI1MTcwNDg1Yzk3ZDNjOWM3
MGQyODAxZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAt
MTQ0LDE0ICsxNDQsMTMgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0RyYWdEYXRhLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9FbGVtZW50Q29udGV4dC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRXZlbnROYW1l
cy5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRXhjZXB0aW9uRGV0YWlscy5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvRmxvYXRSZWN0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Gb2N1c0RpcmVjdGlvbi5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvRm9udEF0dHJpYnV0ZUNoYW5nZXMuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL0ZyYW1lTG9hZGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9HbG9iYWxGcmFtZUlkZW50aWZp
ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0dsb2JhbFdpbmRvd0lkZW50aWZpZXIuaD4KLSNpbmNs
dWRlIDxXZWJDb3JlL0pTRE9NQmluZGluZy5oPgotI2luY2x1ZGUgPFdlYkNvcmUvSlNET01FeGNl
cHRpb25IYW5kbGluZy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTGVuZ3RoQm94Lmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9NSU1FVHlwZVJlZ2lzdHJ5Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVN0
cmVhbVJlcXVlc3QuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXgg
ODRlNzU1ZWNkZTA4YTAyOWZkNjQyMDczOWY4Yzc5NTMyNDg3M2I1NS4uNDU4MTdkN2FkZWZkNGI3
YzkwNDIwMjkxMmZjYmJjZDhiNzQ4YTk2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmgKQEAgLTYyLDkgKzYyLDkgQEAKICNpbmNsdWRlICJXZWJQYWdlRGlhZ25vc3RpY0xv
Z2dpbmdDbGllbnQuaCIKICNpbmNsdWRlICJXZWJQYWdlSW5qZWN0ZWRCdW5kbGVDbGllbnQuaCIK
ICNpbmNsdWRlICJXZWJQYWdlUHJveHlJZGVudGlmaWVyLmgiCisjaW5jbHVkZSAiV2ViUGFnZVBy
b3h5TWVzc2FnZXNSZXBsaWVzLmgiCiAjaW5jbHVkZSAiV2ViUGF5bWVudENvb3JkaW5hdG9yUHJv
eHkuaCIKICNpbmNsdWRlICJXZWJQcmVmZXJlbmNlcy5oIgotI2luY2x1ZGUgIldlYlBhZ2VQcm94
eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViUG9wdXBNZW51UHJveHkuaCIKICNpbmNsdWRlICJX
ZWJVbmRvU3RlcElELmgiCiAjaW5jbHVkZSAiV2Vic2l0ZVBvbGljaWVzRGF0YS5oIgpAQCAtMTcz
LDggKzE3MywxMyBAQCBjbGFzcyBVSUNsaWVudDsKIGNsYXNzIFVSTFJlcXVlc3Q7CiB9CiAKK25h
bWVzcGFjZSBJbnNwZWN0b3IgeworZW51bSBjbGFzcyBJbnNwZWN0b3JUYXJnZXRUeXBlIDogdWlu
dDhfdDsKK30KKwogbmFtZXNwYWNlIElQQyB7CiBjbGFzcyBEZWNvZGVyOworY2xhc3MgRm9ybURh
dGFSZWZlcmVuY2U7CiB9CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTIwMCw2ICsyMDUsNyBA
QCBlbnVtIGNsYXNzIERPTVBhc3RlQWNjZXNzUmVzcG9uc2UgOiB1aW50OF90OwogZW51bSBjbGFz
cyBMb2NrQmFja0ZvcndhcmRMaXN0IDogYm9vbDsKIGVudW0gY2xhc3MgSGFzSW5zZWN1cmVDb250
ZW50IDogYm9vbDsKIGVudW0gY2xhc3MgTm90aWZpY2F0aW9uRGlyZWN0aW9uIDogdWludDhfdDsK
K2VudW0gY2xhc3MgUm91dGVTaGFyaW5nUG9saWN5IDogdWludDhfdDsKIGVudW0gY2xhc3MgU2hv
dWxkU2FtcGxlIDogYm9vbDsKIGVudW0gY2xhc3MgU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2Fk
IDogYm9vbDsKIGVudW0gY2xhc3MgV3JpdGluZ0RpcmVjdGlvbiA6IHVpbnQ4X3Q7CkBAIC0yMDks
OSArMjE1LDExIEBAIHN0cnVjdCBCYWNrRm9yd2FyZEl0ZW1JZGVudGlmaWVyOwogc3RydWN0IENv
bnRlbnRSdWxlTGlzdFJlc3VsdHM7CiBzdHJ1Y3QgRGF0YUxpc3RTdWdnZXN0aW9uSW5mb3JtYXRp
b247CiBzdHJ1Y3QgRGljdGlvbmFyeVBvcHVwSW5mbzsKK3N0cnVjdCBEcmFnSXRlbTsKIHN0cnVj
dCBFeGNlcHRpb25EZXRhaWxzOwogc3RydWN0IEZpbGVDaG9vc2VyU2V0dGluZ3M7CiBzdHJ1Y3Qg
R2xvYmFsV2luZG93SWRlbnRpZmllcjsKK3N0cnVjdCBMaW5rSWNvbjsKIHN0cnVjdCBNZWRpYVN0
cmVhbVJlcXVlc3Q7CiBzdHJ1Y3QgTW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbjsK
IHN0cnVjdCBQcmV3YXJtSW5mb3JtYXRpb247CkBAIC0yOTAsMTkgKzI5OCwyOCBAQCBjbGFzcyBX
ZWJWaWV3RGlkTW92ZVRvV2luZG93T2JzZXJ2ZXI7CiAKIHN0cnVjdCBBdHRyaWJ1dGVkU3RyaW5n
Owogc3RydWN0IENvbG9yU3BhY2VEYXRhOworc3RydWN0IERhdGFEZXRlY3Rpb25SZXN1bHQ7CiBz
dHJ1Y3QgRG9jdW1lbnRFZGl0aW5nQ29udGV4dDsKIHN0cnVjdCBEb2N1bWVudEVkaXRpbmdDb250
ZXh0UmVxdWVzdDsKIHN0cnVjdCBFZGl0aW5nUmFuZ2U7CiBzdHJ1Y3QgRWRpdG9yU3RhdGU7Citz
dHJ1Y3QgRm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbjsKIHN0cnVjdCBGb250SW5mbzsKIHN0cnVj
dCBGcmFtZUluZm9EYXRhOwogc3RydWN0IEluc2VydFRleHRPcHRpb25zOworc3RydWN0IEludGVy
YWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uOwogc3RydWN0IEludGVyYWN0aW9uSW5mb3JtYXRp
b25SZXF1ZXN0Owogc3RydWN0IExvYWRQYXJhbWV0ZXJzOworc3RydWN0IE5hdmlnYXRpb25BY3Rp
b25EYXRhOwogc3RydWN0IFBsYXRmb3JtUG9wdXBNZW51RGF0YTsKIHN0cnVjdCBQcmludEluZm87
CitzdHJ1Y3QgUERGQ29udGV4dE1lbnU7CiBzdHJ1Y3QgV2ViQXV0b2NvcnJlY3Rpb25EYXRhOwor
c3RydWN0IFdlYkhpdFRlc3RSZXN1bHREYXRhOworc3RydWN0IFdlYk5hdmlnYXRpb25EYXRhU3Rv
cmU7CiBzdHJ1Y3QgV2ViUG9wdXBJdGVtOworc3RydWN0IFdlYlNlbGVjdGlvbkRhdGE7CitzdHJ1
Y3QgV2ViU3BlZWNoU3ludGhlc2lzVm9pY2U7CiBzdHJ1Y3QgVVJMU2NoZW1lVGFza1BhcmFtZXRl
cnM7CiBzdHJ1Y3QgVXNlck1lc3NhZ2U7CiAKQEAgLTE0MzAsNyArMTQ0Nyw3IEBAIHB1YmxpYzoK
IAogICAgIHZvaWQgc2V0Rm9jdXMoYm9vbCBmb2N1c2VkKTsKICAgICB2b2lkIHNldFdpbmRvd0Zy
YW1lKGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpOwotICAgIHZvaWQgZ2V0V2luZG93RnJhbWUo
TWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6R2V0V2luZG93RnJhbWU6OkRlbGF5ZWRSZXBseSYmKTsK
KyAgICB2b2lkIGdldFdpbmRvd0ZyYW1lKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkdldFdpbmRv
d0ZyYW1lRGVsYXllZFJlcGx5JiYpOwogICAgIHZvaWQgZ2V0V2luZG93RnJhbWVXaXRoQ2FsbGJh
Y2soRnVuY3Rpb248dm9pZChXZWJDb3JlOjpGbG9hdFJlY3QpPiYmKTsKIAogICAgIFdlYkNvcmU6
OlVzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb24gdXNlckludGVyZmFjZUxheW91dERpcmVjdGlv
bigpOwpAQCAtMTUzOCw3ICsxNTU1LDcgQEAgcHVibGljOgogICAgIHZvaWQgYmFja0ZvcndhcmRH
b1RvSXRlbVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBjb25zdCBXZWJDb3JlOjpCYWNr
Rm9yd2FyZEl0ZW1JZGVudGlmaWVyJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTYW5kYm94RXh0
ZW5zaW9uOjpIYW5kbGUmJik+JiYpOwogICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlv
bkFjdGlvblN5bmNTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyLCBib29sIGlzTWFpbkZyYW1lLCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEm
JiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQs
IE5hdmlnYXRpb25BY3Rpb25EYXRhJiYsCiAgICAgICAgIEZyYW1lSW5mb0RhdGEmJiwgT3B0aW9u
YWw8V2ViUGFnZVByb3h5SWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsIGNvbnN0IFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3QmJiwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJlcXVlc3RCb2R5LAotICAgICAgICBX
ZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYgcmVkaXJlY3RSZXNwb25zZSwgY29uc3QgVXNlckRh
dGEmLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0
aW9uU3luYzo6RGVsYXllZFJlcGx5JiYpOworICAgICAgICBXZWJDb3JlOjpSZXNvdXJjZVJlc3Bv
bnNlJiYgcmVkaXJlY3RSZXNwb25zZSwgY29uc3QgVXNlckRhdGEmLCBNZXNzYWdlczo6V2ViUGFn
ZVByb3h5OjpEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luY0RlbGF5ZWRSZXBseSYm
KTsKICNpZiBVU0UoUVVJQ0tfTE9PSykKICAgICB2b2lkIGRpZFJlcXVlc3RQYXNzd29yZEZvclF1
aWNrTG9va0RvY3VtZW50SW5NYWluRnJhbWVTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwg
Y29uc3QgU3RyaW5nJiBmaWxlTmFtZSk7CiAjZW5kaWYKQEAgLTE2NzksNyArMTY5Niw3IEBAIHBy
aXZhdGU6CiAgICAgICAgIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiByZWRpcmVjdFJlc3Bv
bnNlLCBjb25zdCBVc2VyRGF0YSYsIHVpbnQ2NF90IGxpc3RlbmVySUQpOwogICAgIHZvaWQgZGVj
aWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmMoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
LCBib29sIGlzTWFpbkZyYW1lLCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiwgV2ViQ29y
ZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRp
b25BY3Rpb25EYXRhJiYsCiAgICAgICAgIEZyYW1lSW5mb0RhdGEmJiwgT3B0aW9uYWw8V2ViUGFn
ZVByb3h5SWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwg
SVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJlcXVlc3RCb2R5LAotICAgICAgICBXZWJDb3JlOjpS
ZXNvdXJjZVJlc3BvbnNlJiYgcmVkaXJlY3RSZXNwb25zZSwgY29uc3QgVXNlckRhdGEmLCBNZXNz
YWdlczo6V2ViUGFnZVByb3h5OjpEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luYzo6
RGVsYXllZFJlcGx5JiYpOworICAgICAgICBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYgcmVk
aXJlY3RSZXNwb25zZSwgY29uc3QgVXNlckRhdGEmLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpE
ZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luY0RlbGF5ZWRSZXBseSYmKTsKICAgICB2
b2lkIGRlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbihXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYsIFdlYkNvcmU6OlBvbGljeUNo
ZWNrSWRlbnRpZmllciwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiwKICAgICAgICAgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0JiYsIGNvbnN0IFN0cmluZyYgZnJhbWVOYW1lLCB1aW50NjRfdCBsaXN0
ZW5lcklELCBjb25zdCBVc2VyRGF0YSYpOwogICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yUmVzcG9u
c2UoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdp
bkRhdGEmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRp
b25JRCwKQEAgLTE3MDAsMTEgKzE3MTcsMTEgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZFVwZGF0
ZUhpc3RvcnlUaXRsZShjb25zdCBTdHJpbmcmIHRpdGxlLCBjb25zdCBTdHJpbmcmIHVybCwgV2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyKTsKIAogICAgIC8vIFVJIGNsaWVudAotICAgIHZvaWQgY3Jl
YXRlTmV3UGFnZShjb25zdCBGcmFtZUluZm9EYXRhJiwgT3B0aW9uYWw8V2ViUGFnZVByb3h5SWRl
bnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBX
ZWJDb3JlOjpXaW5kb3dGZWF0dXJlcyYmLCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmLCBNZXNzYWdl
czo6V2ViUGFnZVByb3h5OjpDcmVhdGVOZXdQYWdlOjpEZWxheWVkUmVwbHkmJik7CisgICAgdm9p
ZCBjcmVhdGVOZXdQYWdlKGNvbnN0IEZyYW1lSW5mb0RhdGEmLCBPcHRpb25hbDxXZWJQYWdlUHJv
eHlJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0
JiYsIFdlYkNvcmU6OldpbmRvd0ZlYXR1cmVzJiYsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYsIE1l
c3NhZ2VzOjpXZWJQYWdlUHJveHk6OkNyZWF0ZU5ld1BhZ2VEZWxheWVkUmVwbHkmJik7CiAgICAg
dm9pZCBzaG93UGFnZSgpOwotICAgIHZvaWQgcnVuSmF2YVNjcmlwdEFsZXJ0KFdlYkNvcmU6OkZy
YW1lSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiwgY29uc3Qg
U3RyaW5nJiwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UnVuSmF2YVNjcmlwdEFsZXJ0OjpEZWxh
eWVkUmVwbHkmJik7Ci0gICAgdm9pZCBydW5KYXZhU2NyaXB0Q29uZmlybShXZWJDb3JlOjpGcmFt
ZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYsIGNvbnN0IFN0
cmluZyYsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJ1bkphdmFTY3JpcHRDb25maXJtOjpEZWxh
eWVkUmVwbHkmJik7Ci0gICAgdm9pZCBydW5KYXZhU2NyaXB0UHJvbXB0KFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiwgY29uc3QgU3Ry
aW5nJiwgY29uc3QgU3RyaW5nJiwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UnVuSmF2YVNjcmlw
dFByb21wdDo6RGVsYXllZFJlcGx5JiYpOworICAgIHZvaWQgcnVuSmF2YVNjcmlwdEFsZXJ0KFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRh
JiwgY29uc3QgU3RyaW5nJiwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UnVuSmF2YVNjcmlwdEFs
ZXJ0RGVsYXllZFJlcGx5JiYpOworICAgIHZvaWQgcnVuSmF2YVNjcmlwdENvbmZpcm0oV2ViQ29y
ZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmLCBj
b25zdCBTdHJpbmcmLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSdW5KYXZhU2NyaXB0Q29uZmly
bURlbGF5ZWRSZXBseSYmKTsKKyAgICB2b2lkIHJ1bkphdmFTY3JpcHRQcm9tcHQoV2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmLCBjb25z
dCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSdW5KYXZh
U2NyaXB0UHJvbXB0RGVsYXllZFJlcGx5JiYpOwogICAgIHZvaWQgc2V0U3RhdHVzVGV4dChjb25z
dCBTdHJpbmcmKTsKICAgICB2b2lkIG1vdXNlRGlkTW92ZU92ZXJFbGVtZW50KFdlYkhpdFRlc3RS
ZXN1bHREYXRhJiYsIHVpbnQzMl90IG1vZGlmaWVycywgVXNlckRhdGEmJik7CiAKQEAgLTE3MTIs
MjkgKzE3MjksMjkgQEAgcHJpdmF0ZToKICAgICB2b2lkIHVuYXZhaWxhYmxlUGx1Z2luQnV0dG9u
Q2xpY2tlZCh1aW50MzJfdCBvcGFxdWVQbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbiwgY29uc3Qg
U3RyaW5nJiBtaW1lVHlwZSwgY29uc3QgU3RyaW5nJiBwbHVnaW5VUkxTdHJpbmcsIGNvbnN0IFN0
cmluZyYgcGx1Z2luc1BhZ2VVUkxTdHJpbmcsIGNvbnN0IFN0cmluZyYgZnJhbWVVUkxTdHJpbmcs
IGNvbnN0IFN0cmluZyYgcGFnZVVSTFN0cmluZyk7CiAjZW5kaWYgLy8gRU5BQkxFKE5FVFNDQVBF
X1BMVUdJTl9BUEkpCiAjaWYgRU5BQkxFKFdFQkdMKQotICAgIHZvaWQgd2ViR0xQb2xpY3lGb3JV
UkwoVVJMJiYsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OldlYkdMUG9saWN5Rm9yVVJMOjpEZWxh
eWVkUmVwbHkmJik7Ci0gICAgdm9pZCByZXNvbHZlV2ViR0xQb2xpY3lGb3JVUkwoVVJMJiYsIE1l
c3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJlc29sdmVXZWJHTFBvbGljeUZvclVSTDo6RGVsYXllZFJl
cGx5JiYpOworICAgIHZvaWQgd2ViR0xQb2xpY3lGb3JVUkwoVVJMJiYsIE1lc3NhZ2VzOjpXZWJQ
YWdlUHJveHk6OldlYkdMUG9saWN5Rm9yVVJMRGVsYXllZFJlcGx5JiYpOworICAgIHZvaWQgcmVz
b2x2ZVdlYkdMUG9saWN5Rm9yVVJMKFVSTCYmLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSZXNv
bHZlV2ViR0xQb2xpY3lGb3JVUkxEZWxheWVkUmVwbHkmJik7CiAjZW5kaWYgLy8gRU5BQkxFKFdF
QkdMKQogICAgIHZvaWQgc2V0VG9vbGJhcnNBcmVWaXNpYmxlKGJvb2wgdG9vbGJhcnNBcmVWaXNp
YmxlKTsKLSAgICB2b2lkIGdldFRvb2xiYXJzQXJlVmlzaWJsZShNZXNzYWdlczo6V2ViUGFnZVBy
b3h5OjpHZXRUb29sYmFyc0FyZVZpc2libGU6OkRlbGF5ZWRSZXBseSYmKTsKKyAgICB2b2lkIGdl
dFRvb2xiYXJzQXJlVmlzaWJsZShNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpHZXRUb29sYmFyc0Fy
ZVZpc2libGVEZWxheWVkUmVwbHkmJik7CiAgICAgdm9pZCBzZXRNZW51QmFySXNWaXNpYmxlKGJv
b2wgbWVudUJhcklzVmlzaWJsZSk7Ci0gICAgdm9pZCBnZXRNZW51QmFySXNWaXNpYmxlKE1lc3Nh
Z2VzOjpXZWJQYWdlUHJveHk6OkdldE1lbnVCYXJJc1Zpc2libGU6OkRlbGF5ZWRSZXBseSYmKTsK
KyAgICB2b2lkIGdldE1lbnVCYXJJc1Zpc2libGUoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6R2V0
TWVudUJhcklzVmlzaWJsZURlbGF5ZWRSZXBseSYmKTsKICAgICB2b2lkIHNldFN0YXR1c0Jhcklz
VmlzaWJsZShib29sIHN0YXR1c0JhcklzVmlzaWJsZSk7Ci0gICAgdm9pZCBnZXRTdGF0dXNCYXJJ
c1Zpc2libGUoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6R2V0U3RhdHVzQmFySXNWaXNpYmxlOjpE
ZWxheWVkUmVwbHkmJik7CisgICAgdm9pZCBnZXRTdGF0dXNCYXJJc1Zpc2libGUoTWVzc2FnZXM6
OldlYlBhZ2VQcm94eTo6R2V0U3RhdHVzQmFySXNWaXNpYmxlRGVsYXllZFJlcGx5JiYpOwogICAg
IHZvaWQgZ2V0SXNWaWV3VmlzaWJsZShib29sJik7CiAgICAgdm9pZCBzZXRJc1Jlc2l6YWJsZShi
b29sIGlzUmVzaXphYmxlKTsKLSAgICB2b2lkIHNjcmVlblRvUm9vdFZpZXcoY29uc3QgV2ViQ29y
ZTo6SW50UG9pbnQmIHNjcmVlblBvaW50LCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTY3JlZW5U
b1Jvb3RWaWV3OjpEZWxheWVkUmVwbHkmJik7Ci0gICAgdm9pZCByb290Vmlld1RvU2NyZWVuKGNv
bnN0IFdlYkNvcmU6OkludFJlY3QmIHZpZXdSZWN0LCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpS
b290Vmlld1RvU2NyZWVuOjpEZWxheWVkUmVwbHkmJik7CisgICAgdm9pZCBzY3JlZW5Ub1Jvb3RW
aWV3KGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBzY3JlZW5Qb2ludCwgTWVzc2FnZXM6OldlYlBh
Z2VQcm94eTo6U2NyZWVuVG9Sb290Vmlld0RlbGF5ZWRSZXBseSYmKTsKKyAgICB2b2lkIHJvb3RW
aWV3VG9TY3JlZW4oY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgdmlld1JlY3QsIE1lc3NhZ2VzOjpX
ZWJQYWdlUHJveHk6OlJvb3RWaWV3VG9TY3JlZW5EZWxheWVkUmVwbHkmJik7CiAgICAgdm9pZCBh
Y2Nlc3NpYmlsaXR5U2NyZWVuVG9Sb290Vmlldyhjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgc2Ny
ZWVuUG9pbnQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6SW50UG9pbnQpPiYmKTsK
ICAgICB2b2lkIHJvb3RWaWV3VG9BY2Nlc3NpYmlsaXR5U2NyZWVuKGNvbnN0IFdlYkNvcmU6Oklu
dFJlY3QmIHZpZXdSZWN0LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkludFJlY3Qp
PiYmKTsKLSAgICB2b2lkIHJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbChXZWJDb3JlOjpGcmFt
ZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYsIGNvbnN0IFN0
cmluZyYgbWVzc2FnZSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UnVuQmVmb3JlVW5sb2FkQ29u
ZmlybVBhbmVsOjpEZWxheWVkUmVwbHkmJik7CisgICAgdm9pZCBydW5CZWZvcmVVbmxvYWRDb25m
aXJtUGFuZWwoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbkRhdGEmLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIE1lc3NhZ2VzOjpXZWJQYWdlUHJv
eHk6OlJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbERlbGF5ZWRSZXBseSYmKTsKICAgICB2b2lk
IGRpZENoYW5nZVZpZXdwb3J0UHJvcGVydGllcyhjb25zdCBXZWJDb3JlOjpWaWV3cG9ydEF0dHJp
YnV0ZXMmKTsKICAgICB2b2lkIHBhZ2VEaWRTY3JvbGwoKTsKICAgICB2b2lkIHJ1bk9wZW5QYW5l
bChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2lu
RGF0YSYsIGNvbnN0IFdlYkNvcmU6OkZpbGVDaG9vc2VyU2V0dGluZ3MmKTsKICAgICB2b2lkIHNo
b3dTaGFyZVNoZWV0KGNvbnN0IFdlYkNvcmU6OlNoYXJlRGF0YVdpdGhQYXJzZWRVUkwmLCBTaGFy
ZVNoZWV0Q2FsbGJhY2tJRCk7CiAgICAgdm9pZCBwcmludEZyYW1lKFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKLSAgICB2b2lkIGV4Y2VlZGVk
RGF0YWJhc2VRdW90YShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgb3Jp
Z2luSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBkYXRhYmFzZU5hbWUsIGNvbnN0IFN0cmluZyYg
ZGlzcGxheU5hbWUsIHVpbnQ2NF90IGN1cnJlbnRRdW90YSwgdWludDY0X3QgY3VycmVudE9yaWdp
blVzYWdlLCB1aW50NjRfdCBjdXJyZW50RGF0YWJhc2VVc2FnZSwgdWludDY0X3QgZXhwZWN0ZWRV
c2FnZSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RXhjZWVkZWREYXRhYmFzZVF1b3RhOjpEZWxh
eWVkUmVwbHkmJik7Ci0gICAgdm9pZCByZWFjaGVkQXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3Rh
KGNvbnN0IFN0cmluZyYgb3JpZ2luSWRlbnRpZmllciwgdWludDY0X3QgY3VycmVudFF1b3RhLCB1
aW50NjRfdCB0b3RhbEJ5dGVzTmVlZGVkLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSZWFjaGVk
QXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhOjpEZWxheWVkUmVwbHkmJik7CisgICAgdm9pZCBl
eGNlZWRlZERhdGFiYXNlUXVvdGEoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBTdHJp
bmcmIG9yaWdpbklkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgZGF0YWJhc2VOYW1lLCBjb25zdCBT
dHJpbmcmIGRpc3BsYXlOYW1lLCB1aW50NjRfdCBjdXJyZW50UXVvdGEsIHVpbnQ2NF90IGN1cnJl
bnRPcmlnaW5Vc2FnZSwgdWludDY0X3QgY3VycmVudERhdGFiYXNlVXNhZ2UsIHVpbnQ2NF90IGV4
cGVjdGVkVXNhZ2UsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkV4Y2VlZGVkRGF0YWJhc2VRdW90
YURlbGF5ZWRSZXBseSYmKTsKKyAgICB2b2lkIHJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2lu
UXVvdGEoY29uc3QgU3RyaW5nJiBvcmlnaW5JZGVudGlmaWVyLCB1aW50NjRfdCBjdXJyZW50UXVv
dGEsIHVpbnQ2NF90IHRvdGFsQnl0ZXNOZWVkZWQsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJl
YWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGFEZWxheWVkUmVwbHkmJik7CiAgICAgdm9p
ZCByZXF1ZXN0R2VvbG9jYXRpb25QZXJtaXNzaW9uRm9yRnJhbWUodWludDY0X3QgZ2VvbG9jYXRp
b25JRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBTdHJpbmcgb3JpZ2luSWRlbnRpZmllcik7
CiAKICNpZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkKQEAgLTIwMjEsNyArMjAzOCw3
IEBAIHByaXZhdGU6CiAjZW5kaWYKIAogI2lmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQot
ICAgIHZvaWQgZmluZFBsdWdpbihjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCB1aW50MzJfdCBwcm9j
ZXNzVHlwZSwgY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcsIGNvbnN0IFN0cmluZyYgZnJhbWVVUkxT
dHJpbmcsIGNvbnN0IFN0cmluZyYgcGFnZVVSTFN0cmluZywgYm9vbCBhbGxvd09ubHlBcHBsaWNh
dGlvblBsdWdpbnMsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkZpbmRQbHVnaW46OkRlbGF5ZWRS
ZXBseSYmKTsKKyAgICB2b2lkIGZpbmRQbHVnaW4oY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgdWlu
dDMyX3QgcHJvY2Vzc1R5cGUsIGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nLCBjb25zdCBTdHJpbmcm
IGZyYW1lVVJMU3RyaW5nLCBjb25zdCBTdHJpbmcmIHBhZ2VVUkxTdHJpbmcsIGJvb2wgYWxsb3dP
bmx5QXBwbGljYXRpb25QbHVnaW5zLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpGaW5kUGx1Z2lu
RGVsYXllZFJlcGx5JiYpOwogI2VuZGlmCiAKICNpZiBVU0UoUVVJQ0tfTE9PSykKQEAgLTIwNTgs
NyArMjA3NSw3IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHN0YXJ0VVJMU2NoZW1lVGFzayhVUkxT
Y2hlbWVUYXNrUGFyYW1ldGVycyYmKTsKICAgICB2b2lkIHN0b3BVUkxTY2hlbWVUYXNrKHVpbnQ2
NF90IGhhbmRsZXJJZGVudGlmaWVyLCB1aW50NjRfdCB0YXNrSWRlbnRpZmllcik7Ci0gICAgdm9p
ZCBsb2FkU3luY2hyb25vdXNVUkxTY2hlbWVUYXNrKFVSTFNjaGVtZVRhc2tQYXJhbWV0ZXJzJiYs
IE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkxvYWRTeW5jaHJvbm91c1VSTFNjaGVtZVRhc2s6OkRl
bGF5ZWRSZXBseSYmKTsKKyAgICB2b2lkIGxvYWRTeW5jaHJvbm91c1VSTFNjaGVtZVRhc2soVVJM
U2NoZW1lVGFza1BhcmFtZXRlcnMmJiwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6TG9hZFN5bmNo
cm9ub3VzVVJMU2NoZW1lVGFza0RlbGF5ZWRSZXBseSYmKTsKIAogICAgIGJvb2wgY2hlY2tVUkxS
ZWNlaXZlZEZyb21DdXJyZW50T3JQcmV2aW91c1dlYlByb2Nlc3MoV2ViUHJvY2Vzc1Byb3h5Jiwg
Y29uc3QgU3RyaW5nJik7CiAgICAgYm9vbCBjaGVja1VSTFJlY2VpdmVkRnJvbUN1cnJlbnRPclBy
ZXZpb3VzV2ViUHJvY2VzcyhXZWJQcm9jZXNzUHJveHkmLCBjb25zdCBVUkwmKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAppbmRleCA1N2Q3YzA3ZmE4M2UxYjk4
NTFhODVjMTUwNDJhMzJjYzYxODQ4ODQ4Li42NTQ4MWE0MTRjMDlkZDViMjFmY2E2NTE4ZTU1OTAy
OWNjY2I5N2UwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNz
UG9vbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3Bw
CkBAIC03Nyw2ICs3Nyw3IEBACiAjaW5jbHVkZSAiV2ViUHJvY2Vzc01lc3NhZ2VzLmgiCiAjaW5j
bHVkZSAiV2ViUHJvY2Vzc1Bvb2xNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NQcm94
eS5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3NQcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2Vi
c2l0ZURhdGFTdG9yZS5oIgogI2luY2x1ZGUgIldlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzLmgi
CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNDSW5saW5lcy5oPgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKaW5kZXggYzc4MzA0NDE2MzcwY2ZjZjRhNzk2NzBiMmYx
OGM1MmM4ZDExNDVjOC4uMDRjY2M5NmI5Y2ViNTg4YzQ0ODBlNGNmNGNiNzc1Y2U0NzNiM2VjMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCkBAIC0zODEsOSArMzgx
LDkgQEAgcHVibGljOgogICAgIC8vIE5ldHdvcmsgUHJvY2VzcyBNYW5hZ2VtZW50CiAgICAgTmV0
d29ya1Byb2Nlc3NQcm94eSYgZW5zdXJlTmV0d29ya1Byb2Nlc3MoV2Vic2l0ZURhdGFTdG9yZSog
d2l0aFdlYnNpdGVEYXRhU3RvcmUgPSBudWxscHRyKTsKICAgICBOZXR3b3JrUHJvY2Vzc1Byb3h5
KiBuZXR3b3JrUHJvY2VzcygpIHsgcmV0dXJuIG1fbmV0d29ya1Byb2Nlc3MuZ2V0KCk7IH0KLSAg
ICB2b2lkIG5ldHdvcmtQcm9jZXNzQ3Jhc2hlZChOZXR3b3JrUHJvY2Vzc1Byb3h5JiwgVmVjdG9y
PHN0ZDo6cGFpcjxSZWZQdHI8V2ViUHJvY2Vzc1Byb3h5PiwgTWVzc2FnZXM6OldlYlByb2Nlc3NQ
cm94eTo6R2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpEZWxheWVkUmVwbHk+PiYmKTsKKyAg
ICB2b2lkIG5ldHdvcmtQcm9jZXNzQ3Jhc2hlZChOZXR3b3JrUHJvY2Vzc1Byb3h5JiwgVmVjdG9y
PHN0ZDo6cGFpcjxSZWZQdHI8V2ViUHJvY2Vzc1Byb3h5PiwgTWVzc2FnZXM6OldlYlByb2Nlc3NQ
cm94eTo6R2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uRGVsYXllZFJlcGx5Pj4mJik7CiAKLSAg
ICB2b2lkIGdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbihXZWJQcm9jZXNzUHJveHkmLCBNZXNz
YWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OkRlbGF5
ZWRSZXBseSYmKTsKKyAgICB2b2lkIGdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbihXZWJQcm9j
ZXNzUHJveHkmLCBNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXROZXR3b3JrUHJvY2Vzc0Nv
bm5lY3Rpb25EZWxheWVkUmVwbHkmJik7CiAKICAgICBib29sIGlzU2VydmljZVdvcmtlclBhZ2VJ
RChXZWJQYWdlUHJveHlJZGVudGlmaWVyKSBjb25zdDsKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JL
RVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHku
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCmluZGV4IDhhNDdl
ODEzZmY4ZmQ2MTkxNThjN2FlYzY2ZmUwYWFhYzAwMWVkOTguLjdkNzQ2NThjZDFhYjQ0YTc4Njk2
OGU4M2Y0ZjQ5YWIzNTkwZDc1NjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlByb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQcm94eS5oCkBAIC0zOCw3ICszOCw3IEBACiAjaW5jbHVkZSAiVmlzaWJsZVdlYlBhZ2VDb3Vu
dGVyLmgiCiAjaW5jbHVkZSAiV2ViQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIgogI2luY2x1ZGUg
IldlYlBhZ2VQcm94eUlkZW50aWZpZXIuaCIKLSNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHlNZXNz
YWdlcy5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3NQcm94eU1lc3NhZ2VzUmVwbGllcy5oIgogI2lu
Y2x1ZGUgPFdlYkNvcmUvRnJhbWVJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdl
SWRlbnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUHJvY2Vzc0lkZW50aWZpZXIuaD4KQEAg
LTYxLDYgKzYxLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgRGVmZXJyYWJsZU9uZVNo
b3RUaW1lcjsKIGNsYXNzIFJlc291cmNlUmVxdWVzdDsKIHN0cnVjdCBQbHVnaW5JbmZvOworc3Ry
dWN0IFByZXdhcm1JbmZvcm1hdGlvbjsKIHN0cnVjdCBTZWN1cml0eU9yaWdpbkRhdGE7CiB9CiAK
QEAgLTgwLDYgKzgxLDcgQEAgY2xhc3MgV2ViUHJvY2Vzc1Bvb2w7CiBjbGFzcyBXZWJVc2VyQ29u
dGVudENvbnRyb2xsZXJQcm94eTsKIGNsYXNzIFdlYnNpdGVEYXRhU3RvcmU7CiBlbnVtIGNsYXNz
IFdlYnNpdGVEYXRhVHlwZTsKK3N0cnVjdCBCYWNrRm9yd2FyZExpc3RJdGVtU3RhdGU7CiBzdHJ1
Y3QgVXNlck1lc3NhZ2U7CiBzdHJ1Y3QgV2ViTmF2aWdhdGlvbkRhdGFTdG9yZTsKIHN0cnVjdCBX
ZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOwpAQCAtMzgwLDEyICszODIsMTIgQEAgcHJpdmF0ZToK
ICAgICB2b2lkIGdldFBsdWdpbnMoYm9vbCByZWZyZXNoLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KFZlY3RvcjxXZWJDb3JlOjpQbHVnaW5JbmZvPiYmIHBsdWdpbnMsIFZlY3RvcjxXZWJDb3JlOjpQ
bHVnaW5JbmZvPiYmIGFwcGxpY2F0aW9uUGx1Z2lucywgT3B0aW9uYWw8VmVjdG9yPFdlYkNvcmU6
OlN1cHBvcnRlZFBsdWdpbklkZW50aWZpZXI+PiYmKT4mJik7CiAjZW5kaWYgLy8gRU5BQkxFKE5F
VFNDQVBFX1BMVUdJTl9BUEkpCiAjaWYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCi0gICAg
dm9pZCBnZXRQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbih1aW50NjRfdCBwbHVnaW5Qcm9jZXNzVG9r
ZW4sIE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldFBsdWdpblByb2Nlc3NDb25uZWN0aW9u
OjpEZWxheWVkUmVwbHkmJik7CisgICAgdm9pZCBnZXRQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbih1
aW50NjRfdCBwbHVnaW5Qcm9jZXNzVG9rZW4sIE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6Okdl
dFBsdWdpblByb2Nlc3NDb25uZWN0aW9uRGVsYXllZFJlcGx5JiYpOwogI2VuZGlmCiAgICAgdm9p
ZCBhZGRQbHVnSW5BdXRvU3RhcnRPcmlnaW5IYXNoKFN0cmluZyYmIHBhZ2VPcmlnaW4sIHVpbnQz
Ml90IGhhc2gpOwogICAgIHZvaWQgcGx1Z0luRGlkUmVjZWl2ZVVzZXJJbnRlcmFjdGlvbih1aW50
MzJfdCBoYXNoKTsKICAgICAKLSAgICB2b2lkIGdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbihN
ZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OkRl
bGF5ZWRSZXBseSYmKTsKKyAgICB2b2lkIGdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbihNZXNz
YWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25EZWxheWVk
UmVwbHkmJik7CiAKICAgICBib29sIHBsYXRmb3JtSXNCZWluZ0RlYnVnZ2VkKCkgY29uc3Q7CiAg
ICAgYm9vbCBzaG91bGRBbGxvd05vblZhbGlkSW5qZWN0ZWRDb2RlKCkgY29uc3Q7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5tbSBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3Lm1tCmluZGV4IDYyMWVhOTM2Yjg4
NzM0YzlmMmIxYjFjOTAzZGNhOTQzODYyNDY1M2YuLjk1ZWFlNWNiYTBiOTg5ZjFkODMzNDU2NDRj
ZTQ0OGM0MTA5NGE5MjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9X
S0NvbnRlbnRWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRl
bnRWaWV3Lm1tCkBAIC00OSw2ICs0OSw3IEBACiAjaW1wb3J0ICJXZWJGcmFtZVByb3h5LmgiCiAj
aW1wb3J0ICJXZWJLaXQySW5pdGlhbGl6ZS5oIgogI2ltcG9ydCAiV2ViUGFnZUdyb3VwLmgiCisj
aW1wb3J0ICJXZWJQYWdlUHJveHlNZXNzYWdlcy5oIgogI2ltcG9ydCAiV2ViUHJvY2Vzc1Bvb2wu
aCIKICNpbXBvcnQgIl9XS0ZyYW1lSGFuZGxlSW50ZXJuYWwuaCIKICNpbXBvcnQgIl9XS1dlYlZp
ZXdQcmludEZvcm1hdHRlckludGVybmFsLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQppbmRleCAyMmEzNGViZTBm
YTFlNjM2OGUzZmM2MzgxNzMxMGMwN2I1NDBhYWQ4Li40N2Y4NDI1NmQwMTc3YTk5MTZiYmE1MWU1
OWIyNjY3OTUwNjY3OGZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3Mv
V0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KQEAgLTc2LDYgKzc2LDcgQEAKICNpbXBv
cnQgIldlYkV2ZW50LmgiCiAjaW1wb3J0ICJXZWJJT1NFdmVudEZhY3RvcnkuaCIKICNpbXBvcnQg
IldlYlBhZ2VNZXNzYWdlcy5oIgorI2ltcG9ydCAiV2ViUGFnZVByb3h5TWVzc2FnZXMuaCIKICNp
bXBvcnQgIldlYlByb2Nlc3NQcm94eS5oIgogI2ltcG9ydCAiX1dLQWN0aXZhdGVkRWxlbWVudElu
Zm9JbnRlcm5hbC5oIgogI2ltcG9ydCAiX1dLRWxlbWVudEFjdGlvbi5oIgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVh
UHJveHkubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvVGlsZWRDb3JlQW5pbWF0aW9u
RHJhd2luZ0FyZWFQcm94eS5tbQppbmRleCBjYTdiNmM1MTM4MTM1YWQzMGMyNjhiYTA1NTI4ZjIw
YWI5ODMyYTg4Li4xMThlNTgwMDMxOTAxODkzMmM5OTFjNjFjOGEwMTkyYmNlMmRmYjI4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJh
d2luZ0FyZWFQcm94eS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvVGlsZWRD
b3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94eS5tbQpAQCAtMzMsNiArMzMsNyBAQAogI2ltcG9y
dCAiRHJhd2luZ0FyZWFQcm94eU1lc3NhZ2VzLmgiCiAjaW1wb3J0ICJMYXllclRyZWVDb250ZXh0
LmgiCiAjaW1wb3J0ICJXZWJQYWdlUHJveHkuaCIKKyNpbXBvcnQgIldlYlBhZ2VQcm94eU1lc3Nh
Z2VzLmgiCiAjaW1wb3J0ICJXZWJQcm9jZXNzUHJveHkuaCIKICNpbXBvcnQgPHBhbC9zcGkvY29j
b2EvUXVhcnR6Q29yZVNQSS5oPgogI2ltcG9ydCA8d3RmL0Jsb2NrUHRyLmg+CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNl
L1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBkNTU3YzE3MGRi
NTM3YWJjZTYyNjJlZjg2MmQ5NGM4ZTlkYzU0NTM0Li5kNDI0ZmMxNDk1ZDU4OWI0ZWI0ODljY2Ey
MWJmYzhlNzMyYzk2ZjZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTQ1NDcsNyArNDU0Nyw2IEBACiAJCUMwQ0U3MkFDMTI0N0U3OEQw
MEJDMEVDNCAvKiBIYW5kbGVNZXNzYWdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEhhbmRsZU1lc3NhZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzBDRTcy
REIxMjQ3RThGNzAwQkMwRUM0IC8qIERlcml2ZWRTb3VyY2VzLm1ha2UgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBwYXRoID0gRGVyaXZlZFNvdXJjZXMubWFrZTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQzBDRTczMzYxMjQ3RjcwRTAwQkMwRUM0IC8qIGdlbmVyYXRlLW1lc3NhZ2UtcmVjZWl2ZXIu
cHkgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0LnNjcmlwdC5weXRob247IHBhdGggPSAiZ2VuZXJhdGUtbWVzc2Fn
ZS1yZWNlaXZlci5weSI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUMwQ0U3MzM3MTI0
N0Y3MEUwMEJDMEVDNCAvKiBnZW5lcmF0ZS1tZXNzYWdlcy1oZWFkZXIucHkgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0LnNjcmlwdC5weXRob247IHBhdGggPSAiZ2VuZXJhdGUtbWVzc2FnZXMtaGVhZGVyLnB5Ijsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzBFM0FBNDQxMjA5RTJCQTAwQTQ5RDAxIC8q
IE1vZHVsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNb2R1bGUuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzBFM0FBNDUxMjA5RTJCQTAwQTQ5RDAxIC8qIE1v
ZHVsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNb2R1bGUuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDMEUzQUE0ODEyMDlFNDUwMDBBNDlEMDEg
LyogTW9kdWxlQ0YuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTW9k
dWxlQ0YuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtOTAxMiw3ICs5MDExLDYg
QEAKIAkJCQkwRkMwODU2RTE4N0NFMEE5MDA3ODBEODYgLyogX19pbml0X18ucHkgKi8sCiAJCQkJ
NDE1Nzg1MzAyMTI3NkI2RjAwREQzODAwIC8qIGNvcHktd2ViY29udGVudC1yZXNvdXJjZXMtdG8t
cHJpdmF0ZS1oZWFkZXJzLnNoICovLAogCQkJCUMwQ0U3MzM2MTI0N0Y3MEUwMEJDMEVDNCAvKiBn
ZW5lcmF0ZS1tZXNzYWdlLXJlY2VpdmVyLnB5ICovLAotCQkJCUMwQ0U3MzM3MTI0N0Y3MEUwMEJD
MEVDNCAvKiBnZW5lcmF0ZS1tZXNzYWdlcy1oZWFkZXIucHkgKi8sCiAJCQkJN0NERTczQTExRjlE
QTQxNDAwMzkwMzEyIC8qIEdlbmVyYXRlUHJlZmVyZW5jZXMucmIgKi8sCiAJCQkJMEZDMDg1NkYx
ODdDRTBBOTAwNzgwRDg2IC8qIG1lc3NhZ2VzLnB5ICovLAogCQkJCTBGQzA4NTcwMTg3Q0UwQTkw
MDc4MEQ4NiAvKiBtb2RlbC5weSAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNw
cAppbmRleCA2MjIyODA4M2VmZTVjMWE5MzAyZjZlMzE3YjczY2RhNGFkODNmNjUwLi40YjRlMmVl
MjE2NzJmYmQ4Mzc0M2RlMDEyNDJmODBkODI0MTFjYTAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdl
ckNvbm5lY3Rpb24uY3BwCkBAIC00Myw2ICs0Myw3IEBACiAjaW5jbHVkZSAiV2ViUHJlZmVyZW5j
ZXNTdG9yZS5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNz
UG9vbE1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb25N
ZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbk1lc3Nh
Z2VzLmgiCiAjaW5jbHVkZSAiV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudC5oIgogI2lu
Y2x1ZGUgIldlYlNvY2tldFByb3ZpZGVyLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24u
aAppbmRleCAyNDc2MjVlZDk1YjUxZTNlZmRmYjVkOTY5ZDdjMGVmZDI5ZWZmYWRiLi5iZjhiNDdm
YmZkNmNhOGQ4MDU5ODc4YzA4MjVkODI5Yzc0YjU4OGM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJD
b25uZWN0aW9uLmgKQEAgLTMwLDcgKzMwLDcgQEAKICNpbmNsdWRlICJDb25uZWN0aW9uLmgiCiAj
aW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCiAjaW5jbHVkZSAiV2ViUGFnZVByb3h5SWRlbnRp
Zmllci5oIgotI2luY2x1ZGUgIldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uTWVzc2FnZXMu
aCIKKyNpbmNsdWRlICJXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbk1lc3NhZ2VzUmVwbGll
cy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvRW1wdHlGcmFtZUxvYWRlckNsaWVudC5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvU1dDb250ZXh0TWFuYWdlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2Vydmlj
ZVdvcmtlckNsaWVudERhdGEuaD4KQEAgLTg5LDcgKzg5LDcgQEAgcHJpdmF0ZToKICAgICB2b2lk
IGZpcmVBY3RpdmF0ZUV2ZW50KFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKTsKICAg
ICB2b2lkIHNvZnRVcGRhdGUoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIpOwogICAg
IHZvaWQgdGVybWluYXRlV29ya2VyKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKTsK
LSAgICB2b2lkIHN5bmNUZXJtaW5hdGVXb3JrZXIoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50
aWZpZXIsIE1lc3NhZ2VzOjpXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6U3luY1Rlcm1p
bmF0ZVdvcmtlcjo6RGVsYXllZFJlcGx5JiYpOworICAgIHZvaWQgc3luY1Rlcm1pbmF0ZVdvcmtl
cihXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgTWVzc2FnZXM6OldlYlNXQ29udGV4
dE1hbmFnZXJDb25uZWN0aW9uOjpTeW5jVGVybWluYXRlV29ya2VyRGVsYXllZFJlcGx5JiYpOwog
ICAgIHZvaWQgZmluZENsaWVudEJ5SWRlbnRpZmllckNvbXBsZXRlZCh1aW50NjRfdCByZXF1ZXN0
SWRlbnRpZmllciwgT3B0aW9uYWw8V2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudERhdGE+JiYs
IGJvb2wgaGFzU2VjdXJpdHlFcnJvcik7CiAgICAgdm9pZCBtYXRjaEFsbENvbXBsZXRlZCh1aW50
NjRfdCBtYXRjaEFsbFJlcXVlc3RJZGVudGlmaWVyLCBWZWN0b3I8V2ViQ29yZTo6U2VydmljZVdv
cmtlckNsaWVudERhdGE+JiYpOwogICAgIHZvaWQgY2xhaW1Db21wbGV0ZWQodWludDY0X3QgY2xh
aW1SZXF1ZXN0SWRlbnRpZmllcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmgKaW5kZXggYTYyMjRmMGE0MDY1YzI3N2RhZGE3ZDEwZDVmNzlhOGM1NzIwZDRlNy4u
OTQ2OGQzMTc2NWRmNTViNjhkYWRiMjZmODc0YTZiOTE3NGY4OWQ5ZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtNDgsOSArNDgsMTAgQEAKICNpbmNs
dWRlICJTaGFyZVNoZWV0Q2FsbGJhY2tJRC5oIgogI2luY2x1ZGUgIlNoYXJlZE1lbW9yeS5oIgog
I2luY2x1ZGUgIlN0b3JhZ2VOYW1lc3BhY2VJZGVudGlmaWVyLmgiCisjaW5jbHVkZSAiVHJhbnNh
Y3Rpb25JRC5oIgogI2luY2x1ZGUgIlVzZXJEYXRhLmgiCiAjaW5jbHVkZSAiV2ViQmFja0Zvcndh
cmRMaXN0UHJveHkuaCIKLSNpbmNsdWRlICJXZWJQYWdlTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJX
ZWJQYWdlTWVzc2FnZXNSZXBsaWVzLmgiCiAjaW5jbHVkZSAiV2ViVVJMU2NoZW1lSGFuZGxlci5o
IgogI2luY2x1ZGUgIldlYlVuZG9TdGVwSUQuaCIKICNpbmNsdWRlICJXZWJVc2VyQ29udGVudENv
bnRyb2xsZXIuaCIKQEAgLTEwMCw3ICsxMDEsNiBAQCB0eXBlZGVmIHN0cnVjdCBfQXRrT2JqZWN0
IEF0a09iamVjdDsKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAjaW5jbHVkZSAiR2VzdHVy
ZVR5cGVzLmgiCi0jaW5jbHVkZSAiV2ViUGFnZU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSA8V2ViQ29y
ZS9JbnRQb2ludEhhc2guaD4KICNpbmNsdWRlIDxXZWJDb3JlL1ZpZXdwb3J0Q29uZmlndXJhdGlv
bi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvV0tDb250ZW50T2JzZXJ2YXRpb24uaD4KQEAgLTE3NSw3
ICsxNzUsNiBAQCBjbGFzcyBSZXNvdXJjZVJlc3BvbnNlOwogY2xhc3MgU2VsZWN0aW9uUmVjdDsK
IGNsYXNzIFNoYXJlZEJ1ZmZlcjsKIGNsYXNzIFN1YnN0aXR1dGVEYXRhOwotY2xhc3MgU3ludGhl
dGljRWRpdGluZ0NvbW1hbmRUeXBlOwogY2xhc3MgVGV4dENoZWNraW5nUmVxdWVzdDsKIGNsYXNz
IFZpc2libGVQb3NpdGlvbjsKIApAQCAtMjU4LDEwICsyNTcsMTMgQEAgY2xhc3MgUmVtb3RlTGF5
ZXJUcmVlVHJhbnNhY3Rpb247CiAKIGVudW0gRmluZE9wdGlvbnMgOiB1aW50MTZfdDsKIGVudW0g
Y2xhc3MgRHJhZ0NvbnRyb2xsZXJBY3Rpb24gOiB1aW50OF90OworZW51bSBjbGFzcyBTeW50aGV0
aWNFZGl0aW5nQ29tbWFuZFR5cGUgOiB1aW50OF90OwogCiBzdHJ1Y3QgQXR0cmlidXRlZFN0cmlu
ZzsKIHN0cnVjdCBCYWNrRm9yd2FyZExpc3RJdGVtU3RhdGU7CiBzdHJ1Y3QgRGF0YURldGVjdGlv
blJlc3VsdDsKK3N0cnVjdCBEb2N1bWVudEVkaXRpbmdDb250ZXh0Oworc3RydWN0IERvY3VtZW50
RWRpdGluZ0NvbnRleHRSZXF1ZXN0Owogc3RydWN0IEVkaXRvclN0YXRlOwogc3RydWN0IEZvbnRJ
bmZvOwogc3RydWN0IEluc2VydFRleHRPcHRpb25zOwpAQCAtODc5LDcgKzg4MSw3IEBAIHB1Ymxp
YzoKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICB2b2lkIGNvbXB1dGVQ
YWdlc0ZvclByaW50aW5nQW5kRHJhd1RvUERGKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29u
c3QgUHJpbnRJbmZvJiwgQ2FsbGJhY2tJRCwgTWVzc2FnZXM6OldlYlBhZ2U6OkNvbXB1dGVQYWdl
c0ZvclByaW50aW5nQW5kRHJhd1RvUERGOjpEZWxheWVkUmVwbHkmJik7CisgICAgdm9pZCBjb21w
dXRlUGFnZXNGb3JQcmludGluZ0FuZERyYXdUb1BERihXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIs
IGNvbnN0IFByaW50SW5mbyYsIENhbGxiYWNrSUQsIE1lc3NhZ2VzOjpXZWJQYWdlOjpDb21wdXRl
UGFnZXNGb3JQcmludGluZ0FuZERyYXdUb1BERkRlbGF5ZWRSZXBseSYmKTsKICNlbmRpZgogCiAg
ICAgdm9pZCBkcmF3VG9QREYoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBPcHRpb25h
bDxXZWJDb3JlOjpGbG9hdFJlY3Q+JiwgQ2FsbGJhY2tJRCk7CkBAIC0xMzA3LDcgKzEzMDksNyBA
QCBwcml2YXRlOgogICAgIGJvb2wgZXhlY3V0ZUtleXByZXNzQ29tbWFuZHNJbnRlcm5hbChjb25z
dCBWZWN0b3I8V2ViQ29yZTo6S2V5cHJlc3NDb21tYW5kPiYsIFdlYkNvcmU6OktleWJvYXJkRXZl
bnQqKTsKICNlbmRpZgogCi0gICAgdm9pZCB0ZXN0UHJvY2Vzc0luY29taW5nU3luY01lc3NhZ2Vz
V2hlbldhaXRpbmdGb3JTeW5jUmVwbHkoTWVzc2FnZXM6OldlYlBhZ2U6OlRlc3RQcm9jZXNzSW5j
b21pbmdTeW5jTWVzc2FnZXNXaGVuV2FpdGluZ0ZvclN5bmNSZXBseTo6RGVsYXllZFJlcGx5JiYp
OworICAgIHZvaWQgdGVzdFByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9y
U3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJQYWdlOjpUZXN0UHJvY2Vzc0luY29taW5nU3luY01lc3Nh
Z2VzV2hlbldhaXRpbmdGb3JTeW5jUmVwbHlEZWxheWVkUmVwbHkmJik7CiAKICAgICB2b2lkIHVw
ZGF0ZURyYXdpbmdBcmVhTGF5ZXJUcmVlRnJlZXplU3RhdGUoKTsKICAgICBib29sIG1hcmtMYXll
cnNWb2xhdGlsZUltbWVkaWF0ZWx5SWZQb3NzaWJsZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0gYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQppbmRleCA2NjI2YzI0MzE0ZDVl
MWU5ODgwYmNhMGY4Y2Y2NDIwM2VlZGFkNTZiLi42NjczZDYzYjgyYWFjZWY2MzhkNDY1Mjc5YjJj
OWQwMmIyOTAxMmY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9pb3MvV2ViUGFnZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9pb3MvV2ViUGFnZUlPUy5tbQpAQCAtNTUsNiArNTUsNyBAQAogI2ltcG9ydCAiV2ViQ29yZUFy
Z3VtZW50Q29kZXJzLmgiCiAjaW1wb3J0ICJXZWJGcmFtZS5oIgogI2ltcG9ydCAiV2ViSW1hZ2Uu
aCIKKyNpbXBvcnQgIldlYlBhZ2VNZXNzYWdlcy5oIgogI2ltcG9ydCAiV2ViUGFnZVByb3h5TWVz
c2FnZXMuaCIKICNpbXBvcnQgIldlYlByZXZpZXdMb2FkZXJDbGllbnQuaCIKICNpbXBvcnQgIldl
YlByb2Nlc3MuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L3dwZS9XZWJQYWdlV1BFLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL3dw
ZS9XZWJQYWdlV1BFLmNwcAppbmRleCBjMmI1MjY1OWEzNmVhODNlN2JkZTVjY2YxNmZmMjczZTQ4
NGM4MTUyLi4xMjRkZTk0ZjAzYmY0YTc0ZDhiZTQ2YjM4NmYwYjc2MDQ2YzcwMGNhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS93cGUvV2ViUGFnZVdQRS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL1dlYlBhZ2VXUEUuY3Bw
CkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJXZWJLaXRXZWJQYWdlQWNjZXNzaWJpbGl0
eU9iamVjdC5oIgogI2luY2x1ZGUgIldlYlBhZ2VQcm94eS5oIgorI2luY2x1ZGUgIldlYlBhZ2VQ
cm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViUHJlZmVyZW5jZXNLZXlzLmgiCiAjaW5jbHVk
ZSAiV2ViUHJlZmVyZW5jZXNTdG9yZS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50
ZWQuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9WaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVmlkZW9G
dWxsc2NyZWVuTWFuYWdlci5oCmluZGV4IGNiYmJhY2QwNGIzYzQ1Y2MzYjhlYTg5NzQwMjY3YWYw
NjBlYThlNmIuLmQwNDAxNjE1NDEzMmZjNGJiODgwYTk1OTM4ODU4MzFmM2NhNTlhNjIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNjcmVl
bk1hbmFnZXIuaApAQCAtMjksNyArMjksNyBAQAogCiAjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgog
I2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgotI2luY2x1ZGUgIlZpZGVvRnVsbHNjcmVlbk1h
bmFnZXJNZXNzYWdlcy5oIgorI2luY2x1ZGUgIlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJNZXNzYWdl
c1JlcGxpZXMuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0V2ZW50TGlzdGVuZXIuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL0hUTUxNZWRpYUVsZW1lbnRFbnVtcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGxh
dGZvcm1DQUxheWVyLmg+CkBAIC0xNTQsNyArMTU0LDcgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQg
c2V0VmlkZW9MYXllckdyYXZpdHlFbnVtKHVpbnQ2NF90IGNvbnRleHRJZCwgdW5zaWduZWQgZ3Jh
dml0eSk7CiAgICAgdm9pZCBmdWxsc2NyZWVuTW9kZUNoYW5nZWQodWludDY0X3QgY29udGV4dElk
LCBXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUpOwog
ICAgIHZvaWQgZnVsbHNjcmVlbk1heVJldHVyblRvSW5saW5lKHVpbnQ2NF90IGNvbnRleHRJZCwg
Ym9vbCBpc1BhZ2VWaXNpYmxlKTsKLSAgICB2b2lkIHJlcXVlc3RSb3V0ZVNoYXJpbmdQb2xpY3lB
bmRDb250ZXh0VUlEKHVpbnQ2NF90IGNvbnRleHRJZCwgTWVzc2FnZXM6OlZpZGVvRnVsbHNjcmVl
bk1hbmFnZXI6OlJlcXVlc3RSb3V0ZVNoYXJpbmdQb2xpY3lBbmRDb250ZXh0VUlEOjpBc3luY1Jl
cGx5JiYpOworICAgIHZvaWQgcmVxdWVzdFJvdXRlU2hhcmluZ1BvbGljeUFuZENvbnRleHRVSUQo
dWludDY0X3QgY29udGV4dElkLCBNZXNzYWdlczo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6UmVx
dWVzdFJvdXRlU2hhcmluZ1BvbGljeUFuZENvbnRleHRVSURBc3luY1JlcGx5JiYpOwogCiAgICAg
V2ViUGFnZSogbV9wYWdlOwogICAgIFJlZjxQbGF5YmFja1Nlc3Npb25NYW5hZ2VyPiBtX3BsYXli
YWNrU2Vzc2lvbk1hbmFnZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
Y29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1tCmluZGV4IDUzMDAwNzMzMGI4ODQyY2Ux
MDZiNWQ1ZjkzODlhMzU5NjNhMmM2ZDcuLmFjNDAzMmFmMDc5NjdiYTYzMTZlZGIyYmI3ZGI2YWVk
YzIwMTVhZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9WaWRl
b0Z1bGxzY3JlZW5NYW5hZ2VyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2Nv
YS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1tCkBAIC0zMSw2ICszMSw3IEBACiAjaW1wb3J0ICJM
YXllckhvc3RpbmdDb250ZXh0LmgiCiAjaW1wb3J0ICJMb2dnaW5nLmgiCiAjaW1wb3J0ICJQbGF5
YmFja1Nlc3Npb25NYW5hZ2VyLmgiCisjaW1wb3J0ICJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyTWVz
c2FnZXMuaCIKICNpbXBvcnQgIlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eU1lc3NhZ2VzLmgi
CiAjaW1wb3J0ICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKICNpbXBvcnQgIldlYlBhZ2UuaCIK
</data>

          </attachment>
      

    </bug>

</bugzilla>