<?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>176010</bug_id>
          
          <creation_ts>2017-08-26 22:23:12 -0700</creation_ts>
          <short_desc>[DFG] Optimize WeakMap::get by adding intrinsic and fixup</short_desc>
          <delta_ts>2017-09-27 12:54:05 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>benjamin</cc>
    
    <cc>buildbot</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>darin</cc>
    
    <cc>dbates</cc>
    
    <cc>fpizlo</cc>
    
    <cc>galpeter</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>ryanhaddad</cc>
    
    <cc>saam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1342713</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-08-26 22:23:12 -0700</bug_when>
    <thetext>It turns out that Ember.js non-debug takes 1% for WeakMap::get()!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1342715</commentid>
    <comment_count>1</comment_count>
      <attachid>319153</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-08-26 23:38:30 -0700</bug_when>
    <thetext>Created attachment 319153
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1342716</commentid>
    <comment_count>2</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-08-26 23:39:52 -0700</bug_when>
    <thetext>Attachment 319153 did not pass style-queue:


ERROR: Source/JavaScriptCore/dfg/DFGNodeType.h:439:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Total errors found: 1 in 33 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1342719</commentid>
    <comment_count>3</comment_count>
      <attachid>319154</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-08-26 23:44:19 -0700</bug_when>
    <thetext>Created attachment 319154
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1342720</commentid>
    <comment_count>4</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-08-26 23:47:12 -0700</bug_when>
    <thetext>Attachment 319154 did not pass style-queue:


ERROR: Source/JavaScriptCore/dfg/DFGNodeType.h:439:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Total errors found: 1 in 34 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1342721</commentid>
    <comment_count>5</comment_count>
      <attachid>319155</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-08-26 23:57:20 -0700</bug_when>
    <thetext>Created attachment 319155
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1342722</commentid>
    <comment_count>6</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-08-26 23:58:30 -0700</bug_when>
    <thetext>Attachment 319155 did not pass style-queue:


ERROR: Source/JavaScriptCore/dfg/DFGNodeType.h:439:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Total errors found: 1 in 34 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1342724</commentid>
    <comment_count>7</comment_count>
      <attachid>319157</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-08-27 00:12:21 -0700</bug_when>
    <thetext>Created attachment 319157
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1342725</commentid>
    <comment_count>8</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-08-27 00:14:46 -0700</bug_when>
    <thetext>Attachment 319157 did not pass style-queue:


ERROR: Source/JavaScriptCore/dfg/DFGNodeType.h:439:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Total errors found: 1 in 34 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1343489</commentid>
    <comment_count>9</comment_count>
      <attachid>319355</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-08-30 01:32:41 -0700</bug_when>
    <thetext>Created attachment 319355
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1343490</commentid>
    <comment_count>10</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-08-30 01:35:07 -0700</bug_when>
    <thetext>Attachment 319355 did not pass style-queue:


ERROR: Source/JavaScriptCore/dfg/DFGNodeType.h:439:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Total errors found: 1 in 38 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1345136</commentid>
    <comment_count>11</comment_count>
      <attachid>319355</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2017-09-03 21:55:51 -0700</bug_when>
    <thetext>Comment on attachment 319355
Patch

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

&gt; Source/JavaScriptCore/ChangeLog:15
&gt; +        1. We use fastGet to inline WeakMap#get operation in the native function.
&gt; +        Since this native function itself is very small, we should inline HashMap#get
&gt; +        entirely in this function.

Can we call this inlinedGet or inlineGet?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1345155</commentid>
    <comment_count>12</comment_count>
      <attachid>319355</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-09-03 22:34:07 -0700</bug_when>
    <thetext>Comment on attachment 319355
Patch

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

&gt;&gt; Source/JavaScriptCore/ChangeLog:15
&gt;&gt; +        entirely in this function.
&gt; 
&gt; Can we call this inlinedGet or inlineGet?

OK, renamed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1345156</commentid>
    <comment_count>13</comment_count>
      <attachid>319839</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-09-03 22:37:02 -0700</bug_when>
    <thetext>Created attachment 319839
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1345157</commentid>
    <comment_count>14</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-09-03 22:40:02 -0700</bug_when>
    <thetext>Attachment 319839 did not pass style-queue:


ERROR: Source/JavaScriptCore/dfg/DFGNodeType.h:437:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Total errors found: 1 in 42 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1347126</commentid>
    <comment_count>15</comment_count>
      <attachid>319839</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-09-09 10:16:47 -0700</bug_when>
    <thetext>Comment on attachment 319839
Patch

Ping?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1347266</commentid>
    <comment_count>16</comment_count>
      <attachid>319839</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2017-09-10 12:38:48 -0700</bug_when>
    <thetext>Comment on attachment 319839
Patch

I’d love to review but I am likely not familiar enough with JIT type speculation details to know if it is complete. In other words, I can’t really review the part of this in the bytecode, dfg, and jit directories. The part in the runtime and wtf directories look great to me (as well as the changes to rename fastGet to inlineGet), so consider those reviewed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1347269</commentid>
    <comment_count>17</comment_count>
      <attachid>319839</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2017-09-10 13:10:21 -0700</bug_when>
    <thetext>Comment on attachment 319839
Patch

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

R=me other than the AI issue.

&gt; Source/JavaScriptCore/dfg/DFGAbstractInterpreterInlines.h:1077
&gt; +        forNode(node).makeBytecodeTop();

Why bytecode top?

Isn’t this heap top?

(It cannot return empty)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1347367</commentid>
    <comment_count>18</comment_count>
      <attachid>319839</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-09-11 01:17:25 -0700</bug_when>
    <thetext>Comment on attachment 319839
Patch

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

&gt;&gt; Source/JavaScriptCore/dfg/DFGAbstractInterpreterInlines.h:1077
&gt;&gt; +        forNode(node).makeBytecodeTop();
&gt; 
&gt; Why bytecode top?
&gt; 
&gt; Isn’t this heap top?
&gt; 
&gt; (It cannot return empty)

Oops, right. Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1347368</commentid>
    <comment_count>19</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-09-11 01:19:48 -0700</bug_when>
    <thetext>Committed r221854: &lt;http://trac.webkit.org/changeset/221854&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1347527</commentid>
    <comment_count>20</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2017-09-11 12:02:39 -0700</bug_when>
    <thetext>(In reply to Yusuke Suzuki from comment #19)
&gt; Committed r221854: &lt;http://trac.webkit.org/changeset/221854&gt;
The test added with this change is failing on 32-bit JSC bots:
https://build.webkit.org/builders/Apple%20Sierra%2032-bit%20JSC%20%28BuildAndTest%29/builds/1812
https://build.webkit.org/builders/Apple%20El%20Capitan%2032-bit%20JSC%20%28BuildAndTest%29/builds/1467</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1347533</commentid>
    <comment_count>21</comment_count>
      <attachid>319839</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2017-09-11 12:11:08 -0700</bug_when>
    <thetext>Comment on attachment 319839
Patch

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

LGTM too. Just a couple of comments

&gt; Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp:2988
&gt; +        Node* hash = addToGraph(MapHash, key);

WeakMap uses the same hash as Map/Set? I guess we&apos;re relying on WTF::HashMap using Wang&apos;s int64 hash for objects? I feel like we should perhaps provide a hash inside WeakMapBase to make this explicit.

&gt; Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp:10361
&gt; +    m_jit.exceptionCheck();

is this actually possible?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1347534</commentid>
    <comment_count>22</comment_count>
      <attachid>319839</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2017-09-11 12:13:06 -0700</bug_when>
    <thetext>Comment on attachment 319839
Patch

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

&gt;&gt; Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp:2988
&gt;&gt; +        Node* hash = addToGraph(MapHash, key);
&gt; 
&gt; WeakMap uses the same hash as Map/Set? I guess we&apos;re relying on WTF::HashMap using Wang&apos;s int64 hash for objects? I feel like we should perhaps provide a hash inside WeakMapBase to make this explicit.

To expand a bit more on this, I want the freedom to change what MapHash does, along with the hash we use for JSMap/JSSet without having to change things in WTF. I was actually thinking of looking into this again recently. I think we can probably find something cheaper than Wang&apos;s int64 hash that&apos;s still good enough for JSMap/JSSet&apos;s needs. That&apos;s why I think we should explicitly pass a traits that defines a hash for WeakMapBase.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1347601</commentid>
    <comment_count>23</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2017-09-11 14:11:39 -0700</bug_when>
    <thetext>Reverted r221854 for reason:

The test added with this change fails on 32-bit JSC bots.

Committed r221876: &lt;http://trac.webkit.org/changeset/221876&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1347947</commentid>
    <comment_count>24</comment_count>
      <attachid>319839</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-09-12 09:57:45 -0700</bug_when>
    <thetext>Comment on attachment 319839
Patch

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

&gt;&gt;&gt; Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp:2988
&gt;&gt;&gt; +        Node* hash = addToGraph(MapHash, key);
&gt;&gt; 
&gt;&gt; WeakMap uses the same hash as Map/Set? I guess we&apos;re relying on WTF::HashMap using Wang&apos;s int64 hash for objects? I feel like we should perhaps provide a hash inside WeakMapBase to make this explicit.
&gt; 
&gt; To expand a bit more on this, I want the freedom to change what MapHash does, along with the hash we use for JSMap/JSSet without having to change things in WTF. I was actually thinking of looking into this again recently. I think we can probably find something cheaper than Wang&apos;s int64 hash that&apos;s still good enough for JSMap/JSSet&apos;s needs. That&apos;s why I think we should explicitly pass a traits that defines a hash for WeakMapBase.

Sounds nice. Yeah, we are currently using wang&apos;s hash function for HashMap. So functionality itself is ok.
I&apos;ll add an explicit HashFunction for WeakMap/Set&apos;s HashMap.

&gt;&gt; Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp:10361
&gt;&gt; +    m_jit.exceptionCheck();
&gt; 
&gt; is this actually possible?

We can drop this check. Dropped in a relanding patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1347950</commentid>
    <comment_count>25</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-09-12 10:00:58 -0700</bug_when>
    <thetext>(In reply to Ryan Haddad from comment #23)
&gt; Reverted r221854 for reason:
&gt; 
&gt; The test added with this change fails on 32-bit JSC bots.
&gt; 
&gt; Committed r221876: &lt;http://trac.webkit.org/changeset/221876&gt;

OK, 32bit is failing because MapHash is calculated against 64bit (JSValue bit pattern), while our HashMap uses 32bit pointer hash.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1347956</commentid>
    <comment_count>26</comment_count>
      <attachid>320554</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-09-12 10:22:53 -0700</bug_when>
    <thetext>Created attachment 320554
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1347957</commentid>
    <comment_count>27</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-09-12 10:25:50 -0700</bug_when>
    <thetext>Attachment 320554 did not pass style-queue:


ERROR: Source/JavaScriptCore/dfg/DFGNodeType.h:440:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Total errors found: 1 in 43 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1348218</commentid>
    <comment_count>28</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-09-13 00:02:32 -0700</bug_when>
    <thetext>Committed r221959: &lt;http://trac.webkit.org/changeset/221959&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1353722</commentid>
    <comment_count>29</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-09-27 12:54:05 -0700</bug_when>
    <thetext>&lt;rdar://problem/34694245&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>319153</attachid>
            <date>2017-08-26 23:38:30 -0700</date>
            <delta_ts>2017-08-26 23:44:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-176010-20170827153829.patch</filename>
            <type>text/plain</type>
            <size>45537</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIxMjMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAx
ZmQ5NWExMGFiNTcwMGVhYmFlMWMxNmZkYzEwZmYyNzhiMzhhMDY1Li5iMjFkMTc1MjlhNGRjYmMz
NmVhNzFiZWU4NmRjNTllNWY2MjJmOTFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
NSArMSw4MSBAQAogMjAxNy0wOC0yNiAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KIAorICAgICAgICBbREZHXSBPcHRpbWl6ZSBXZWFrTWFwOjpnZXQgYnkgYWRkaW5nIGlu
dHJpbnNpYyBhbmQgZml4dXAKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE3NjAxMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogYnl0ZWNvZGUvU3BlY3VsYXRlZFR5cGUuY3BwOgorICAgICAgICAoSlNDOjpk
dW1wU3BlY3VsYXRpb24pOgorICAgICAgICAoSlNDOjpzcGVjdWxhdGlvbkZyb21DbGFzc0luZm8p
OgorICAgICAgICAoSlNDOjpzcGVjdWxhdGlvbkZyb21KU1R5cGUpOgorICAgICAgICAoSlNDOjpz
cGVjdWxhdGlvbkZyb21TdHJpbmcpOgorICAgICAgICAqIGJ5dGVjb2RlL1NwZWN1bGF0ZWRUeXBl
Lmg6CisgICAgICAgICogZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmg6CisgICAg
ICAgIChKU0M6OkRGRzo6QWJzdHJhY3RJbnRlcnByZXRlcjxBYnN0cmFjdFN0YXRlVHlwZT46OmV4
ZWN1dGVFZmZlY3RzKToKKyAgICAgICAgKiBkZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwOgorICAg
ICAgICAoSlNDOjpERkc6OkJ5dGVDb2RlUGFyc2VyOjpoYW5kbGVJbnRyaW5zaWNDYWxsKToKKyAg
ICAgICAgKiBkZmcvREZHQ2xvYmJlcml6ZS5oOgorICAgICAgICAoSlNDOjpERkc6OmNsb2JiZXJp
emUpOgorICAgICAgICAqIGRmZy9ERkdEb2VzR0MuY3BwOgorICAgICAgICAoSlNDOjpERkc6OmRv
ZXNHQyk6CisgICAgICAgICogZGZnL0RGR0ZpeHVwUGhhc2UuY3BwOgorICAgICAgICAoSlNDOjpE
Rkc6OkZpeHVwUGhhc2U6OmZpeHVwTm9kZSk6CisgICAgICAgICogZGZnL0RGR0hlYXBMb2NhdGlv
bi5oOgorICAgICAgICAqIGRmZy9ERkdOb2RlLmg6CisgICAgICAgIChKU0M6OkRGRzo6Tm9kZTo6
aGFzSGVhcFByZWRpY3Rpb24pOgorICAgICAgICAqIGRmZy9ERkdOb2RlVHlwZS5oOgorICAgICAg
ICAqIGRmZy9ERkdPcGVyYXRpb25zLmNwcDoKKyAgICAgICAgKiBkZmcvREZHT3BlcmF0aW9ucy5o
OgorICAgICAgICAqIGRmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHA6CisgICAg
ICAgICogZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaDoKKyAgICAgICAgKEpTQzo6REZHOjpTYWZlVG9F
eGVjdXRlRWRnZTo6b3BlcmF0b3IoKSk6CisgICAgICAgIChKU0M6OkRGRzo6c2FmZVRvRXhlY3V0
ZSk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcDoKKyAgICAgICAgKEpTQzo6
REZHOjpTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlV2Vha01hcE9iamVjdCk6CisgICAgICAgIChK
U0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZVdlYWtTZXRPYmplY3QpOgorICAgICAg
ICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGUpOgorICAgICAgICAoSlNDOjpE
Rkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlV2Vha01hcEdldCk6CisgICAgICAgICogZGZnL0RG
R1NwZWN1bGF0aXZlSklULmg6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQu
Y3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlKToKKyAgICAg
ICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3Bl
Y3VsYXRpdmVKSVQ6OmNvbXBpbGUpOgorICAgICAgICAqIGRmZy9ERkdVc2VLaW5kLmNwcDoKKyAg
ICAgICAgKFdURjo6cHJpbnRJbnRlcm5hbCk6CisgICAgICAgICogZGZnL0RGR1VzZUtpbmQuaDoK
KyAgICAgICAgKEpTQzo6REZHOjp0eXBlRmlsdGVyRm9yKToKKyAgICAgICAgKEpTQzo6REZHOjpp
c0NlbGwpOgorICAgICAgICAqIGZ0bC9GVExDYXBhYmlsaXRpZXMuY3BwOgorICAgICAgICAoSlND
OjpGVEw6OmNhbkNvbXBpbGUpOgorICAgICAgICAqIGZ0bC9GVExMb3dlckRGR1RvQjMuY3BwOgor
ICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjpjb21waWxlTm9kZSk6CisgICAg
ICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6OmNvbXBpbGVXZWFrTWFwR2V0KToKKyAg
ICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6bG93V2Vha01hcE9iamVjdCk6Cisg
ICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6Omxvd1dlYWtTZXRPYmplY3QpOgor
ICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjpzcGVjdWxhdGUpOgorICAgICAg
ICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjpzcGVjdWxhdGVXZWFrTWFwT2JqZWN0KToK
KyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6c3BlY3VsYXRlV2Vha1NldE9i
amVjdCk6CisgICAgICAgICogcnVudGltZS9JbnRyaW5zaWMuY3BwOgorICAgICAgICAoSlNDOjpp
bnRyaW5zaWNOYW1lKToKKyAgICAgICAgKiBydW50aW1lL0ludHJpbnNpYy5oOgorICAgICAgICAq
IHJ1bnRpbWUvSlNUeXBlLmg6CisgICAgICAgICogcnVudGltZS9KU1dlYWtNYXAuaDoKKyAgICAg
ICAgKEpTQzo6aXNKU1dlYWtNYXApOgorICAgICAgICAqIHJ1bnRpbWUvSlNXZWFrU2V0Lmg6Cisg
ICAgICAgIChKU0M6OmlzSlNXZWFrU2V0KToKKyAgICAgICAgKiBydW50aW1lL1dlYWtNYXBCYXNl
LmNwcDoKKyAgICAgICAgKEpTQzo6V2Vha01hcEJhc2U6OmdldCk6IERlbGV0ZWQuCisgICAgICAg
ICogcnVudGltZS9XZWFrTWFwQmFzZS5oOgorICAgICAgICAoSlNDOjpXZWFrTWFwQmFzZTo6Z2V0
KToKKyAgICAgICAgKiBydW50aW1lL1dlYWtNYXBQcm90b3R5cGUuY3BwOgorICAgICAgICAoSlND
OjpXZWFrTWFwUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgIChKU0M6OmdldFdl
YWtNYXApOgorICAgICAgICAqIHJ1bnRpbWUvV2Vha1NldFByb3RvdHlwZS5jcHA6CisgICAgICAg
IChKU0M6OmdldFdlYWtTZXQpOgorCisyMDE3LTA4LTI2ICBZdXN1a2UgU3V6dWtpICA8dXRhdGFu
ZS50ZWFAZ21haWwuY29tPgorCiAgICAgICAgIFVucmV2aWV3ZWQsIHN1cHByZXNzIHdhcm5pbmdz
IGluIEdUSyBwb3J0CiAKICAgICAgICAgVGhlICJibG9jayIgdmFyaWFibGUgaGlkZXMgdGhlIGFy
Z3VtZW50IHZhcmlhYmxlLgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL1NwZWN1bGF0ZWRUeXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9T
cGVjdWxhdGVkVHlwZS5jcHAKaW5kZXggY2EyNTk0NzM3MGY4NTIxYTAzZjJkMTVlZjk1ZjcwNTRl
ZmM1ZDBkZi4uYmU5ZTY4MDFhNjU1YTk5ODBiZGQ2MmI0MGZmMjJjNTZjNTZiYzRiZCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1NwZWN1bGF0ZWRUeXBlLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3BlY3VsYXRlZFR5cGUuY3BwCkBA
IC0zNSw2ICszNSw4IEBACiAjaW5jbHVkZSAiSlNGdW5jdGlvbi5oIgogI2luY2x1ZGUgIkpTTWFw
LmgiCiAjaW5jbHVkZSAiSlNTZXQuaCIKKyNpbmNsdWRlICJKU1dlYWtNYXAuaCIKKyNpbmNsdWRl
ICJKU1dlYWtTZXQuaCIKICNpbmNsdWRlICJQcm94eU9iamVjdC5oIgogI2luY2x1ZGUgIlJlZ0V4
cE9iamVjdC5oIgogI2luY2x1ZGUgIlNjb3BlZEFyZ3VtZW50cy5oIgpAQCAtMTgwLDYgKzE4Miwx
NiBAQCB2b2lkIGR1bXBTcGVjdWxhdGlvbihQcmludFN0cmVhbSYgb3V0U3RyZWFtLCBTcGVjdWxh
dGVkVHlwZSB2YWx1ZSkKICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICBpc1RvcCA9
IGZhbHNlOwogCisgICAgICAgICAgICBpZiAodmFsdWUgJiBTcGVjV2Vha01hcE9iamVjdCkKKyAg
ICAgICAgICAgICAgICBzdHJPdXQucHJpbnQoIldlYWtNYXBPYmplY3QiKTsKKyAgICAgICAgICAg
IGVsc2UKKyAgICAgICAgICAgICAgICBpc1RvcCA9IGZhbHNlOworCisgICAgICAgICAgICBpZiAo
dmFsdWUgJiBTcGVjV2Vha1NldE9iamVjdCkKKyAgICAgICAgICAgICAgICBzdHJPdXQucHJpbnQo
IldlYWtTZXRPYmplY3QiKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBpc1Rv
cCA9IGZhbHNlOworCiAgICAgICAgICAgICBpZiAodmFsdWUgJiBTcGVjUHJveHlPYmplY3QpCiAg
ICAgICAgICAgICAgICAgc3RyT3V0LnByaW50KCJQcm94eU9iamVjdCIpOwogICAgICAgICAgICAg
ZWxzZQpAQCAtNDAyLDYgKzQxNCwxMiBAQCBTcGVjdWxhdGVkVHlwZSBzcGVjdWxhdGlvbkZyb21D
bGFzc0luZm8oY29uc3QgQ2xhc3NJbmZvKiBjbGFzc0luZm8pCiAgICAgaWYgKGNsYXNzSW5mbyA9
PSBKU1NldDo6aW5mbygpKQogICAgICAgICByZXR1cm4gU3BlY1NldE9iamVjdDsKIAorICAgIGlm
IChjbGFzc0luZm8gPT0gSlNXZWFrTWFwOjppbmZvKCkpCisgICAgICAgIHJldHVybiBTcGVjV2Vh
a01hcE9iamVjdDsKKworICAgIGlmIChjbGFzc0luZm8gPT0gSlNXZWFrU2V0OjppbmZvKCkpCisg
ICAgICAgIHJldHVybiBTcGVjV2Vha1NldE9iamVjdDsKKwogICAgIGlmIChjbGFzc0luZm8gPT0g
UHJveHlPYmplY3Q6OmluZm8oKSkKICAgICAgICAgcmV0dXJuIFNwZWNQcm94eU9iamVjdDsKICAg
ICAKQEAgLTUyMCw2ICs1MzgsMTAgQEAgU3BlY3VsYXRlZFR5cGUgc3BlY3VsYXRpb25Gcm9tSlNU
eXBlKEpTVHlwZSB0eXBlKQogICAgICAgICByZXR1cm4gU3BlY01hcE9iamVjdDsKICAgICBjYXNl
IEpTU2V0VHlwZToKICAgICAgICAgcmV0dXJuIFNwZWNTZXRPYmplY3Q7CisgICAgY2FzZSBKU1dl
YWtNYXBUeXBlOgorICAgICAgICByZXR1cm4gU3BlY1dlYWtNYXBPYmplY3Q7CisgICAgY2FzZSBK
U1dlYWtTZXRUeXBlOgorICAgICAgICByZXR1cm4gU3BlY1dlYWtTZXRPYmplY3Q7CiAgICAgZGVm
YXVsdDoKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgfQpAQCAtNzAxLDYgKzcy
MywxMCBAQCBTcGVjdWxhdGVkVHlwZSBzcGVjdWxhdGlvbkZyb21TdHJpbmcoY29uc3QgY2hhciog
c3BlY3VsYXRpb24pCiAgICAgICAgIHJldHVybiBTcGVjTWFwT2JqZWN0OwogICAgIGlmICghc3Ry
bmNtcChzcGVjdWxhdGlvbiwgIlNwZWNTZXRPYmplY3QiLCBzdHJsZW4oIlNwZWNTZXRPYmplY3Qi
KSkpCiAgICAgICAgIHJldHVybiBTcGVjU2V0T2JqZWN0OworICAgIGlmICghc3RybmNtcChzcGVj
dWxhdGlvbiwgIlNwZWNXZWFrTWFwT2JqZWN0Iiwgc3RybGVuKCJTcGVjV2Vha01hcE9iamVjdCIp
KSkKKyAgICAgICAgcmV0dXJuIFNwZWNXZWFrTWFwT2JqZWN0OworICAgIGlmICghc3RybmNtcChz
cGVjdWxhdGlvbiwgIlNwZWNXZWFrU2V0T2JqZWN0Iiwgc3RybGVuKCJTcGVjV2Vha1NldE9iamVj
dCIpKSkKKyAgICAgICAgcmV0dXJuIFNwZWNXZWFrU2V0T2JqZWN0OwogICAgIGlmICghc3RybmNt
cChzcGVjdWxhdGlvbiwgIlNwZWNQcm94eU9iamVjdCIsIHN0cmxlbigiU3BlY1Byb3h5T2JqZWN0
IikpKQogICAgICAgICByZXR1cm4gU3BlY1Byb3h5T2JqZWN0OwogICAgIGlmICghc3RybmNtcChz
cGVjdWxhdGlvbiwgIlNwZWNEZXJpdmVkQXJyYXkiLCBzdHJsZW4oIlNwZWNEZXJpdmVkQXJyYXki
KSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3BlY3VsYXRl
ZFR5cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TcGVjdWxhdGVkVHlwZS5o
CmluZGV4IGJlODkyZjI2OWE1YjFiNGQyMzNhNmZiMzBkNmIxOGY1NjI0ZGMwODIuLjc1ZTQ0MmQ3
OTMzZmQ1YWZkY2Y0ZWJhNTA2NmUwNmEyM2YyYzVjYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9TcGVjdWxhdGVkVHlwZS5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9TcGVjdWxhdGVkVHlwZS5oCkBAIC01OCwyNiArNTgsMjggQEAgc3Rh
dGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNTdHJpbmdPYmplY3QgICAgICAgPSAxdWxsIDw8
IDE0OyAvLyBJdCdzIGRlZmluaXQKIHN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjUmVn
RXhwT2JqZWN0ICAgICAgID0gMXVsbCA8PCAxNTsgLy8gSXQncyBkZWZpbml0ZWx5IGEgUmVnRXhw
T2JqZWN0IChhbmQgbm90IGFueSBzdWJjbGFzcyBvZiBSZWdFeHBPYmplY3QpLgogc3RhdGljIGNv
bnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNNYXBPYmplY3QgICAgICAgICAgPSAxdWxsIDw8IDE2OyAv
LyBJdCdzIGRlZmluaXRlbHkgYSBNYXAgb2JqZWN0IG9yIG9uZSBvZiBpdHMgc3ViY2xhc3Nlcy4K
IHN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjU2V0T2JqZWN0ICAgICAgICAgID0gMXVs
bCA8PCAxNzsgLy8gSXQncyBkZWZpbml0ZWx5IGEgU2V0IG9iamVjdCBvciBvbmUgb2YgaXRzIHN1
YmNsYXNzZXMuCi1zdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY1Byb3h5T2JqZWN0ICAg
ICAgICA9IDF1bGwgPDwgMTg7IC8vIEl0J3MgZGVmaW5pdGVseSBhIFByb3h5IG9iamVjdCBvciBv
bmUgb2YgaXRzIHN1YmNsYXNzZXMuCi1zdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0Rl
cml2ZWRBcnJheSAgICAgICA9IDF1bGwgPDwgMTk7IC8vIEl0J3MgZGVmaW5pdGVseSBhIERlcml2
ZWRBcnJheSBvYmplY3QuCi1zdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY09iamVjdE90
aGVyICAgICAgICA9IDF1bGwgPDwgMjA7IC8vIEl0J3MgZGVmaW5pdGVseSBhbiBvYmplY3QgYnV0
IG5vdCBKU0ZpbmFsT2JqZWN0LCBKU0FycmF5LCBvciBKU0Z1bmN0aW9uLgotc3RhdGljIGNvbnN0
IFNwZWN1bGF0ZWRUeXBlIFNwZWNPYmplY3QgICAgICAgICAgICAgPSBTcGVjRmluYWxPYmplY3Qg
fCBTcGVjQXJyYXkgfCBTcGVjRnVuY3Rpb24gfCBTcGVjVHlwZWRBcnJheVZpZXcgfCBTcGVjRGly
ZWN0QXJndW1lbnRzIHwgU3BlY1Njb3BlZEFyZ3VtZW50cyB8IFNwZWNTdHJpbmdPYmplY3QgfCBT
cGVjUmVnRXhwT2JqZWN0IHwgU3BlY01hcE9iamVjdCB8IFNwZWNTZXRPYmplY3QgfCBTcGVjUHJv
eHlPYmplY3QgfCBTcGVjRGVyaXZlZEFycmF5IHwgU3BlY09iamVjdE90aGVyOyAvLyBCaXRtYXNr
IHVzZWQgZm9yIHRlc3RpbmcgZm9yIGFueSBraW5kIG9mIG9iamVjdCBwcmVkaWN0aW9uLgotc3Rh
dGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNTdHJpbmdJZGVudCAgICAgICAgPSAxdWxsIDw8
IDIxOyAvLyBJdCdzIGRlZmluaXRlbHkgYSBKU1N0cmluZywgYW5kIGl0J3MgYW4gaWRlbnRpZmll
ci4KLXN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjU3RyaW5nVmFyICAgICAgICAgID0g
MXVsbCA8PCAyMjsgLy8gSXQncyBkZWZpbml0ZWx5IGEgSlNTdHJpbmcsIGFuZCBpdCdzIG5vdCBh
biBpZGVudGlmaWVyLgorc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNXZWFrTWFwT2Jq
ZWN0ICAgICAgPSAxdWxsIDw8IDE4OyAvLyBJdCdzIGRlZmluaXRlbHkgYSBXZWFrTWFwIG9iamVj
dCBvciBvbmUgb2YgaXRzIHN1YmNsYXNzZXMuCitzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUg
U3BlY1dlYWtTZXRPYmplY3QgICAgICA9IDF1bGwgPDwgMTk7IC8vIEl0J3MgZGVmaW5pdGVseSBh
IFdlYWtTZXQgb2JqZWN0IG9yIG9uZSBvZiBpdHMgc3ViY2xhc3Nlcy4KK3N0YXRpYyBjb25zdCBT
cGVjdWxhdGVkVHlwZSBTcGVjUHJveHlPYmplY3QgICAgICAgID0gMXVsbCA8PCAyMDsgLy8gSXQn
cyBkZWZpbml0ZWx5IGEgUHJveHkgb2JqZWN0IG9yIG9uZSBvZiBpdHMgc3ViY2xhc3Nlcy4KK3N0
YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjRGVyaXZlZEFycmF5ICAgICAgID0gMXVsbCA8
PCAyMTsgLy8gSXQncyBkZWZpbml0ZWx5IGEgRGVyaXZlZEFycmF5IG9iamVjdC4KK3N0YXRpYyBj
b25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjT2JqZWN0T3RoZXIgICAgICAgID0gMXVsbCA8PCAyMjsg
Ly8gSXQncyBkZWZpbml0ZWx5IGFuIG9iamVjdCBidXQgbm90IEpTRmluYWxPYmplY3QsIEpTQXJy
YXksIG9yIEpTRnVuY3Rpb24uCitzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY09iamVj
dCAgICAgICAgICAgICA9IFNwZWNGaW5hbE9iamVjdCB8IFNwZWNBcnJheSB8IFNwZWNGdW5jdGlv
biB8IFNwZWNUeXBlZEFycmF5VmlldyB8IFNwZWNEaXJlY3RBcmd1bWVudHMgfCBTcGVjU2NvcGVk
QXJndW1lbnRzIHwgU3BlY1N0cmluZ09iamVjdCB8IFNwZWNSZWdFeHBPYmplY3QgfCBTcGVjTWFw
T2JqZWN0IHwgU3BlY1NldE9iamVjdCB8IFNwZWNXZWFrTWFwT2JqZWN0IHwgU3BlY1dlYWtTZXRP
YmplY3QgfCBTcGVjUHJveHlPYmplY3QgfCBTcGVjRGVyaXZlZEFycmF5IHwgU3BlY09iamVjdE90
aGVyOyAvLyBCaXRtYXNrIHVzZWQgZm9yIHRlc3RpbmcgZm9yIGFueSBraW5kIG9mIG9iamVjdCBw
cmVkaWN0aW9uLgorc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNTdHJpbmdJZGVudCAg
ICAgICAgPSAxdWxsIDw8IDIzOyAvLyBJdCdzIGRlZmluaXRlbHkgYSBKU1N0cmluZywgYW5kIGl0
J3MgYW4gaWRlbnRpZmllci4KK3N0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjU3RyaW5n
VmFyICAgICAgICAgID0gMXVsbCA8PCAyNDsgLy8gSXQncyBkZWZpbml0ZWx5IGEgSlNTdHJpbmcs
IGFuZCBpdCdzIG5vdCBhbiBpZGVudGlmaWVyLgogc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBl
IFNwZWNTdHJpbmcgICAgICAgICAgICAgPSBTcGVjU3RyaW5nSWRlbnQgfCBTcGVjU3RyaW5nVmFy
OyAvLyBJdCdzIGRlZmluaXRlbHkgYSBKU1N0cmluZy4KLXN0YXRpYyBjb25zdCBTcGVjdWxhdGVk
VHlwZSBTcGVjU3ltYm9sICAgICAgICAgICAgID0gMXVsbCA8PCAyMzsgLy8gSXQncyBkZWZpbml0
ZWx5IGEgU3ltYm9sLgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNDZWxsT3RoZXIg
ICAgICAgICAgPSAxdWxsIDw8IDI0OyAvLyBJdCdzIGRlZmluaXRlbHkgYSBKU0NlbGwgYnV0IG5v
dCBhIHN1YmNsYXNzIG9mIEpTT2JqZWN0IGFuZCBkZWZpbml0ZWx5IG5vdCBhIEpTU3RyaW5nIG9y
IGEgU3ltYm9sLgorc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNTeW1ib2wgICAgICAg
ICAgICAgPSAxdWxsIDw8IDI1OyAvLyBJdCdzIGRlZmluaXRlbHkgYSBTeW1ib2wuCitzdGF0aWMg
Y29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0NlbGxPdGhlciAgICAgICAgICA9IDF1bGwgPDwgMjY7
IC8vIEl0J3MgZGVmaW5pdGVseSBhIEpTQ2VsbCBidXQgbm90IGEgc3ViY2xhc3Mgb2YgSlNPYmpl
Y3QgYW5kIGRlZmluaXRlbHkgbm90IGEgSlNTdHJpbmcgb3IgYSBTeW1ib2wuCiBzdGF0aWMgY29u
c3QgU3BlY3VsYXRlZFR5cGUgU3BlY0NlbGwgICAgICAgICAgICAgICA9IFNwZWNPYmplY3QgfCBT
cGVjU3RyaW5nIHwgU3BlY1N5bWJvbCB8IFNwZWNDZWxsT3RoZXI7IC8vIEl0J3MgZGVmaW5pdGVs
eSBhIEpTQ2VsbC4KLXN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjQm9vbEludDMyICAg
ICAgICAgID0gMXVsbCA8PCAyNTsgLy8gSXQncyBkZWZpbml0ZWx5IGFuIEludDMyIHdpdGggdmFs
dWUgMCBvciAxLgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNOb25Cb29sSW50MzIg
ICAgICAgPSAxdWxsIDw8IDI2OyAvLyBJdCdzIGRlZmluaXRlbHkgYW4gSW50MzIgd2l0aCB2YWx1
ZSBvdGhlciB0aGFuIDAgb3IgMS4KK3N0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjQm9v
bEludDMyICAgICAgICAgID0gMXVsbCA8PCAyNzsgLy8gSXQncyBkZWZpbml0ZWx5IGFuIEludDMy
IHdpdGggdmFsdWUgMCBvciAxLgorc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNOb25C
b29sSW50MzIgICAgICAgPSAxdWxsIDw8IDI4OyAvLyBJdCdzIGRlZmluaXRlbHkgYW4gSW50MzIg
d2l0aCB2YWx1ZSBvdGhlciB0aGFuIDAgb3IgMS4KIHN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlw
ZSBTcGVjSW50MzJPbmx5ICAgICAgICAgID0gU3BlY0Jvb2xJbnQzMiB8IFNwZWNOb25Cb29sSW50
MzI7IC8vIEl0J3MgZGVmaW5pdGVseSBhbiBJbnQzMi4KLXN0YXRpYyBjb25zdCBTcGVjdWxhdGVk
VHlwZSBTcGVjSW50NTJPbmx5ICAgICAgICAgID0gMXVsbCA8PCAyNzsgLy8gSXQncyBkZWZpbml0
ZWx5IGFuIEludDUyIGFuZCB3ZSBpbnRlbmQgaXQgdG8gdW5ib3ggaXQuIEl0J3MgYWxzbyBkZWZp
bml0ZWx5IG5vdCBhbiBJbnQzMi4KK3N0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjSW50
NTJPbmx5ICAgICAgICAgID0gMXVsbCA8PCAyOTsgLy8gSXQncyBkZWZpbml0ZWx5IGFuIEludDUy
IGFuZCB3ZSBpbnRlbmQgaXQgdG8gdW5ib3ggaXQuIEl0J3MgYWxzbyBkZWZpbml0ZWx5IG5vdCBh
biBJbnQzMi4KIHN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjQW55SW50ICAgICAgICAg
ICAgID0gU3BlY0ludDMyT25seSB8IFNwZWNJbnQ1Mk9ubHk7IC8vIEl0J3Mgc29tZXRoaW5nIHRo
YXQgd2UgY2FuIGRvIG1hY2hpbmUgaW50IGFyaXRobWV0aWMgb24uCi1zdGF0aWMgY29uc3QgU3Bl
Y3VsYXRlZFR5cGUgU3BlY0FueUludEFzRG91YmxlICAgICA9IDF1bGwgPDwgMjg7IC8vIEl0J3Mg
ZGVmaW5pdGVseSBhbiBJbnQ1MiBhbmQgaXQncyBpbnNpZGUgYSBkb3VibGUuCi1zdGF0aWMgY29u
c3QgU3BlY3VsYXRlZFR5cGUgU3BlY05vbkludEFzRG91YmxlICAgICA9IDF1bGwgPDwgMjk7IC8v
IEl0J3MgZGVmaW5pdGVseSBub3QgYW4gSW50NTIgYnV0IGl0J3MgYSByZWFsIG51bWJlciBhbmQg
aXQncyBhIGRvdWJsZS4KK3N0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjQW55SW50QXNE
b3VibGUgICAgID0gMXVsbCA8PCAzMDsgLy8gSXQncyBkZWZpbml0ZWx5IGFuIEludDUyIGFuZCBp
dCdzIGluc2lkZSBhIGRvdWJsZS4KK3N0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjTm9u
SW50QXNEb3VibGUgICAgID0gMXVsbCA8PCAzMTsgLy8gSXQncyBkZWZpbml0ZWx5IG5vdCBhbiBJ
bnQ1MiBidXQgaXQncyBhIHJlYWwgbnVtYmVyIGFuZCBpdCdzIGEgZG91YmxlLgogc3RhdGljIGNv
bnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNEb3VibGVSZWFsICAgICAgICAgPSBTcGVjTm9uSW50QXNE
b3VibGUgfCBTcGVjQW55SW50QXNEb3VibGU7IC8vIEl0J3MgZGVmaW5pdGVseSBhIG5vbi1OYU4g
ZG91YmxlLgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNEb3VibGVQdXJlTmFOICAg
ICAgPSAxdWxsIDw8IDMwOyAvLyBJdCdzIGRlZmluaXRlbHkgYSBOYU4gdGhhdCBpcyBzYWZlIHRv
IHRhZyAoaS5lLiBwdXJlKS4KLXN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjRG91Ymxl
SW1wdXJlTmFOICAgID0gMXVsbCA8PCAzMTsgLy8gSXQncyBkZWZpbml0ZWx5IGEgTmFOIHRoYXQg
aXMgdW5zYWZlIHRvIHRhZyAoaS5lLiBpbXB1cmUpLgorc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRU
eXBlIFNwZWNEb3VibGVQdXJlTmFOICAgICAgPSAxdWxsIDw8IDMyOyAvLyBJdCdzIGRlZmluaXRl
bHkgYSBOYU4gdGhhdCBpcyBzYWZlIHRvIHRhZyAoaS5lLiBwdXJlKS4KK3N0YXRpYyBjb25zdCBT
cGVjdWxhdGVkVHlwZSBTcGVjRG91YmxlSW1wdXJlTmFOICAgID0gMXVsbCA8PCAzMzsgLy8gSXQn
cyBkZWZpbml0ZWx5IGEgTmFOIHRoYXQgaXMgdW5zYWZlIHRvIHRhZyAoaS5lLiBpbXB1cmUpLgog
c3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNEb3VibGVOYU4gICAgICAgICAgPSBTcGVj
RG91YmxlUHVyZU5hTiB8IFNwZWNEb3VibGVJbXB1cmVOYU47IC8vIEl0J3MgZGVmaW5pdGVseSBz
b21lIGtpbmQgb2YgTmFOLgogc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNCeXRlY29k
ZURvdWJsZSAgICAgPSBTcGVjRG91YmxlUmVhbCB8IFNwZWNEb3VibGVQdXJlTmFOOyAvLyBJdCdz
IGVpdGhlciBhIG5vbi1OYU4gb3IgYSBOYU4gZG91YmxlLCBidXQgaXQncyBkZWZpbml0ZWx5IG5v
dCBpbXB1cmUgTmFOLgogc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNGdWxsRG91Ymxl
ICAgICAgICAgPSBTcGVjRG91YmxlUmVhbCB8IFNwZWNEb3VibGVOYU47IC8vIEl0J3MgZWl0aGVy
IGEgbm9uLU5hTiBvciBhIE5hTiBkb3VibGUuCkBAIC04NSwxMiArODcsMTIgQEAgc3RhdGljIGNv
bnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNCeXRlY29kZVJlYWxOdW1iZXIgPSBTcGVjSW50MzJPbmx5
IHwgU3BlY0RvdWJsZVIKIHN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjRnVsbFJlYWxO
dW1iZXIgICAgID0gU3BlY0FueUludCB8IFNwZWNEb3VibGVSZWFsOyAvLyBJdCdzIGVpdGhlciBh
biBJbnQzMiBvciBhIERvdWJsZVJlYWwsIG9yIGEgSW50NTIuCiBzdGF0aWMgY29uc3QgU3BlY3Vs
YXRlZFR5cGUgU3BlY0J5dGVjb2RlTnVtYmVyICAgICA9IFNwZWNJbnQzMk9ubHkgfCBTcGVjQnl0
ZWNvZGVEb3VibGU7IC8vIEl0J3MgZWl0aGVyIGFuIEludDMyIG9yIGEgRG91YmxlLCBhbmQgdGhl
IERvdWJsZSBjYW5ub3QgYmUgYW4gaW1wdXJlIE5hTi4KIHN0YXRpYyBjb25zdCBTcGVjdWxhdGVk
VHlwZSBTcGVjRnVsbE51bWJlciAgICAgICAgID0gU3BlY0FueUludCB8IFNwZWNGdWxsRG91Ymxl
OyAvLyBJdCdzIGVpdGhlciBhbiBJbnQzMiwgSW50NTIsIG9yIGEgRG91YmxlLCBhbmQgdGhlIERv
dWJsZSBjYW4gYmUgaW1wdXJlIE5hTi4KLXN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVj
Qm9vbGVhbiAgICAgICAgICAgID0gMXVsbCA8PCAzMjsgLy8gSXQncyBkZWZpbml0ZWx5IGEgQm9v
bGVhbi4KLXN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjT3RoZXIgICAgICAgICAgICAg
ID0gMXVsbCA8PCAzMzsgLy8gSXQncyBkZWZpbml0ZWx5IGVpdGhlciBOdWxsIG9yIFVuZGVmaW5l
ZC4KK3N0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjQm9vbGVhbiAgICAgICAgICAgID0g
MXVsbCA8PCAzNDsgLy8gSXQncyBkZWZpbml0ZWx5IGEgQm9vbGVhbi4KK3N0YXRpYyBjb25zdCBT
cGVjdWxhdGVkVHlwZSBTcGVjT3RoZXIgICAgICAgICAgICAgID0gMXVsbCA8PCAzNTsgLy8gSXQn
cyBkZWZpbml0ZWx5IGVpdGhlciBOdWxsIG9yIFVuZGVmaW5lZC4KIHN0YXRpYyBjb25zdCBTcGVj
dWxhdGVkVHlwZSBTcGVjTWlzYyAgICAgICAgICAgICAgID0gU3BlY0Jvb2xlYW4gfCBTcGVjT3Ro
ZXI7IC8vIEl0J3MgZGVmaW5pdGVseSBlaXRoZXIgYSBib29sZWFuLCBOdWxsLCBvciBVbmRlZmlu
ZWQuCiBzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0hlYXBUb3AgICAgICAgICAgICA9
IFNwZWNDZWxsIHwgU3BlY0J5dGVjb2RlTnVtYmVyIHwgU3BlY01pc2M7IC8vIEl0IGNhbiBiZSBh
bnkgb2YgdGhlIGFib3ZlLCBleGNlcHQgZm9yIFNwZWNJbnQ1Mk9ubHkgYW5kIFNwZWNEb3VibGVJ
bXB1cmVOYU4uCiBzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY1ByaW1pdGl2ZSAgICAg
ICAgICA9IFNwZWNTdHJpbmcgfCBTcGVjU3ltYm9sIHwgU3BlY0J5dGVjb2RlTnVtYmVyIHwgU3Bl
Y01pc2M7IC8vIEl0J3MgYW55IG5vbi1PYmplY3QgSlNWYWx1ZS4KLXN0YXRpYyBjb25zdCBTcGVj
dWxhdGVkVHlwZSBTcGVjRW1wdHkgICAgICAgICAgICAgID0gMXVsbCA8PCAzNDsgLy8gSXQncyBk
ZWZpbml0ZWx5IGFuIGVtcHR5IHZhbHVlIG1hcmtlci4KK3N0YXRpYyBjb25zdCBTcGVjdWxhdGVk
VHlwZSBTcGVjRW1wdHkgICAgICAgICAgICAgID0gMXVsbCA8PCAzNjsgLy8gSXQncyBkZWZpbml0
ZWx5IGFuIGVtcHR5IHZhbHVlIG1hcmtlci4KIHN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBT
cGVjQnl0ZWNvZGVUb3AgICAgICAgID0gU3BlY0hlYXBUb3AgfCBTcGVjRW1wdHk7IC8vIEl0IGNh
biBiZSBhbnkgb2YgdGhlIGFib3ZlLCBleGNlcHQgZm9yIFNwZWNJbnQ1Mk9ubHkgYW5kIFNwZWNE
b3VibGVJbXB1cmVOYU4uIENvcnJlc3BvbmRzIHRvIHdoYXQgY291bGQgYmUgZm91bmQgaW4gYSBi
eXRlY29kZSBsb2NhbC4KIHN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjRnVsbFRvcCAg
ICAgICAgICAgID0gU3BlY0J5dGVjb2RlVG9wIHwgU3BlY0Z1bGxOdW1iZXI7IC8vIEl0IGNhbiBi
ZSBhbnl0aGluZyB0aGF0IGJ5dGVjb2RlIGNvdWxkIHNlZSBwbHVzIGV4b3RpYyBlbmNvZGluZ3Mg
b2YgbnVtYmVycy4KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdB
YnN0cmFjdEludGVycHJldGVySW5saW5lcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oCmluZGV4IGJiYTA2ZGFjZGYxOWEzZjk2YTM3
YjQ5NmIwYzI3OGRhYjFkYTJlNDEuLjVjMjYzMWNmY2EwYTEyMjNlM2YwNGJjZWM5MzczYWQ2MzVi
ZDRjMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJ
bnRlcnByZXRlcklubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fi
c3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgKQEAgLTEwNzMsNiArMTA3MywxMCBAQCBib29sIEFi
c3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0ZVR5cGU+OjpleGVjdXRlRWZmZWN0cyh1bnNp
Z25lZCBjbG9iYmVyTGltaQogICAgICAgICB9CiAgICAgICAgIGJyZWFrOwogCisgICAgY2FzZSBX
ZWFrTWFwR2V0OgorICAgICAgICBmb3JOb2RlKG5vZGUpLm1ha2VCeXRlY29kZVRvcCgpOworICAg
ICAgICBicmVhazsKKwogICAgIGNhc2UgSXNFbXB0eToKICAgICBjYXNlIElzVW5kZWZpbmVkOgog
ICAgIGNhc2UgSXNCb29sZWFuOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdCeXRlQ29kZVBhcnNlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5
dGVDb2RlUGFyc2VyLmNwcAppbmRleCBlOTdiMzg3M2IzN2JiNzcwMTM3OGNmZWVmYzhiODA4NTFh
MWU3OTUwLi5lYzkwYzA4MzAxYzc0NDJjOTZkNmE1N2UxYjhmYzA0ZDU0M2ZmMzZiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcApAQCAtMjk0
Niw2ICsyOTQ2LDIxIEBAIGJvb2wgQnl0ZUNvZGVQYXJzZXI6OmhhbmRsZUludHJpbnNpY0NhbGwo
Tm9kZSogY2FsbGVlLCBpbnQgcmVzdWx0T3BlcmFuZCwgSW50cmluCiAgICAgICAgIHJldHVybiB0
cnVlOwogICAgIH0KIAorICAgIGNhc2UgSlNXZWFrTWFwR2V0SW50cmluc2ljOiB7CisgICAgICAg
IGlmIChhcmd1bWVudENvdW50SW5jbHVkaW5nVGhpcyAhPSAyKQorICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOworCisgICAgICAgIGlmIChtX2lubGluZVN0YWNrVG9wLT5tX2V4aXRQcm9maWxlLmhh
c0V4aXRTaXRlKG1fY3VycmVudEluZGV4LCBCYWRUeXBlKSkKKyAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKKworICAgICAgICBpbnNlcnRDaGVja3MoKTsKKyAgICAgICAgTm9kZSogbWFwID0gZ2V0
KHZpcnR1YWxSZWdpc3RlckZvckFyZ3VtZW50KDAsIHJlZ2lzdGVyT2Zmc2V0KSk7CisgICAgICAg
IE5vZGUqIGtleSA9IGdldCh2aXJ0dWFsUmVnaXN0ZXJGb3JBcmd1bWVudCgxLCByZWdpc3Rlck9m
ZnNldCkpOworICAgICAgICBOb2RlKiByZXN1bHQgPSBhZGRUb0dyYXBoKFdlYWtNYXBHZXQsIE9w
SW5mbygpLCBPcEluZm8ocHJlZGljdGlvbiksIG1hcCwga2V5KTsKKyAgICAgICAgc2V0KFZpcnR1
YWxSZWdpc3RlcihyZXN1bHRPcGVyYW5kKSwgcmVzdWx0KTsKKyAgICAgICAgcmV0dXJuIHRydWU7
CisgICAgfQorCiAgICAgY2FzZSBIYXNPd25Qcm9wZXJ0eUludHJpbnNpYzogewogICAgICAgICBp
ZiAoYXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMgIT0gMikKICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6
ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVyaXplLmgKaW5kZXggMTY2
ZTZhZjQ1ZjQ5NGVjZjZjNmMzYjFjMmFjMmU4ODI4ZjZkMmVlYy4uNmNhNWQ3MThjODM2MzcwYWNi
YWJkNmU5YTMwZDVhNGM2OTI1N2ZlYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdDbG9iYmVyaXplLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdD
bG9iYmVyaXplLmgKQEAgLTE1NDcsNiArMTU0Nyw3IEBAIHZvaWQgY2xvYmJlcml6ZShHcmFwaCYg
Z3JhcGgsIE5vZGUqIG5vZGUsIGNvbnN0IFJlYWRGdW5jdG9yJiByZWFkLCBjb25zdCBXcml0ZUZ1
CiAgICAgY2FzZSBNYXBIYXNoOgogICAgICAgICBkZWYoUHVyZVZhbHVlKG5vZGUpKTsKICAgICAg
ICAgcmV0dXJuOworCiAgICAgY2FzZSBHZXRNYXBCdWNrZXQ6IHsKICAgICAgICAgcmVhZChNaXNj
RmllbGRzKTsKICAgICAgICAgRWRnZSYgbWFwRWRnZSA9IG5vZGUtPmNoaWxkMSgpOwpAQCAtMTU1
NCwxMiArMTU1NSwxNCBAQCB2b2lkIGNsb2JiZXJpemUoR3JhcGgmIGdyYXBoLCBOb2RlKiBub2Rl
LCBjb25zdCBSZWFkRnVuY3RvciYgcmVhZCwgY29uc3QgV3JpdGVGdQogICAgICAgICBkZWYoSGVh
cExvY2F0aW9uKE1hcEJ1Y2tldExvYywgTWlzY0ZpZWxkcywgbWFwRWRnZSwga2V5RWRnZSksIExh
enlOb2RlKG5vZGUpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KKwogICAgIGNhc2UgR2V0TWFw
QnVja2V0SGVhZDogewogICAgICAgICByZWFkKE1pc2NGaWVsZHMpOwogICAgICAgICBFZGdlJiBt
YXBFZGdlID0gbm9kZS0+Y2hpbGQxKCk7CiAgICAgICAgIGRlZihIZWFwTG9jYXRpb24oTWFwQnVj
a2V0SGVhZExvYywgTWlzY0ZpZWxkcywgbWFwRWRnZSksIExhenlOb2RlKG5vZGUpKTsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KKwogICAgIGNhc2UgR2V0TWFwQnVja2V0TmV4dDogewogICAgICAg
ICByZWFkKE1pc2NGaWVsZHMpOwogICAgICAgICBMb2NhdGlvbktpbmQgbG9jYXRpb25LaW5kID0g
TWFwQnVja2V0TWFwTmV4dExvYzsKQEAgLTE1NjksMTIgKzE1NzIsMTQgQEAgdm9pZCBjbG9iYmVy
aXplKEdyYXBoJiBncmFwaCwgTm9kZSogbm9kZSwgY29uc3QgUmVhZEZ1bmN0b3ImIHJlYWQsIGNv
bnN0IFdyaXRlRnUKICAgICAgICAgZGVmKEhlYXBMb2NhdGlvbihsb2NhdGlvbktpbmQsIE1pc2NG
aWVsZHMsIGJ1Y2tldEVkZ2UpLCBMYXp5Tm9kZShub2RlKSk7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CisKICAgICBjYXNlIExvYWRLZXlGcm9tTWFwQnVja2V0OiB7CiAgICAgICAgIHJlYWQoTWlz
Y0ZpZWxkcyk7CiAgICAgICAgIEVkZ2UmIGJ1Y2tldEVkZ2UgPSBub2RlLT5jaGlsZDEoKTsKICAg
ICAgICAgZGVmKEhlYXBMb2NhdGlvbihNYXBCdWNrZXRLZXlMb2MsIE1pc2NGaWVsZHMsIGJ1Y2tl
dEVkZ2UpLCBMYXp5Tm9kZShub2RlKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CisKICAgICBj
YXNlIExvYWRWYWx1ZUZyb21NYXBCdWNrZXQ6IHsKICAgICAgICAgcmVhZChNaXNjRmllbGRzKTsK
ICAgICAgICAgRWRnZSYgYnVja2V0RWRnZSA9IG5vZGUtPmNoaWxkMSgpOwpAQCAtMTU4Miw2ICsx
NTg3LDE0IEBAIHZvaWQgY2xvYmJlcml6ZShHcmFwaCYgZ3JhcGgsIE5vZGUqIG5vZGUsIGNvbnN0
IFJlYWRGdW5jdG9yJiByZWFkLCBjb25zdCBXcml0ZUZ1CiAgICAgICAgIHJldHVybjsKICAgICB9
CiAKKyAgICBjYXNlIFdlYWtNYXBHZXQ6IHsKKyAgICAgICAgcmVhZChNaXNjRmllbGRzKTsKKyAg
ICAgICAgRWRnZSYgbWFwRWRnZSA9IG5vZGUtPmNoaWxkMSgpOworICAgICAgICBFZGdlJiBrZXlF
ZGdlID0gbm9kZS0+Y2hpbGQyKCk7CisgICAgICAgIGRlZihIZWFwTG9jYXRpb24oV2Vha01hcEdl
dExvYywgTWlzY0ZpZWxkcywgbWFwRWRnZSwga2V5RWRnZSksIExhenlOb2RlKG5vZGUpKTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIGNhc2UgVG9Mb3dlckNhc2U6CiAgICAgICAgIGRl
ZihQdXJlVmFsdWUobm9kZSkpOwogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0RvZXNHQy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0RvZXNHQy5jcHAKaW5kZXggNmQ5ZDIyODA1MGJiZjUzOWVhY2FiOWU3MDBiODYyYTli
MjkwZGU3MC4uZWM3ZTA1YTU3OGFmMDZkNjgzNWYwMTkwNTEzYzM3ZjM0NDA3MTdhZSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEb2VzR0MuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRG9lc0dDLmNwcApAQCAtMTk4LDYgKzE5OCw3IEBAIGJv
b2wgZG9lc0dDKEdyYXBoJiBncmFwaCwgTm9kZSogbm9kZSkKICAgICBjYXNlIEdldE1hcEJ1Y2tl
dE5leHQ6CiAgICAgY2FzZSBMb2FkS2V5RnJvbU1hcEJ1Y2tldDoKICAgICBjYXNlIExvYWRWYWx1
ZUZyb21NYXBCdWNrZXQ6CisgICAgY2FzZSBXZWFrTWFwR2V0OgogICAgIGNhc2UgVW5yZWFjaGFi
bGU6CiAgICAgY2FzZSBFeHRyYWN0Q2F0Y2hMb2NhbDoKICAgICBjYXNlIEV4dHJhY3RPU1JFbnRy
eUxvY2FsOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBo
YXNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAKaW5k
ZXggNjE1OTk5YzE3NzQyMjY5N2E3YzIzYWEzYjA5M2MyMDQ4NzZhZDUxNy4uZWJmNDIwODczMmQz
YjQ3MjgyZWQ3N2FmNjRjNjk0Mjg2NDIyNDI3OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCkBAIC0xODQ5LDYgKzE4NDksMTIgQEAgY2xhc3MgRml4dXBQ
aGFzZSA6IHB1YmxpYyBQaGFzZSB7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogCisg
ICAgICAgIGNhc2UgV2Vha01hcEdldDogeworICAgICAgICAgICAgZml4RWRnZTxXZWFrTWFwT2Jq
ZWN0VXNlPihub2RlLT5jaGlsZDEoKSk7CisgICAgICAgICAgICBmaXhFZGdlPE9iamVjdFVzZT4o
bm9kZS0+Y2hpbGQyKCkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKwogICAgICAg
ICBjYXNlIERlZmluZURhdGFQcm9wZXJ0eTogewogICAgICAgICAgICAgZml4RWRnZTxDZWxsVXNl
PihtX2dyYXBoLnZhckFyZ0NoaWxkKG5vZGUsIDApKTsKICAgICAgICAgICAgIEVkZ2UmIHByb3Bl
cnR5RWRnZSA9IG1fZ3JhcGgudmFyQXJnQ2hpbGQobm9kZSwgMSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0hlYXBMb2NhdGlvbi5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdIZWFwTG9jYXRpb24uaAppbmRleCBiODJjOTIyZGEyN2Y3ZTAwZjI3YjVh
YTMwNzdlZTQwNTU1MThlZWM0Li42NzY1NjVjZmJmMGQxMzEyMTk4Y2Q0MTRiMmEzYmE2NzYwYTBj
OTNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0hlYXBMb2NhdGlv
bi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSGVhcExvY2F0aW9uLmgKQEAg
LTY4LDYgKzY4LDcgQEAgZW51bSBMb2NhdGlvbktpbmQgewogICAgIE1hcEJ1Y2tldEtleUxvYywK
ICAgICBNYXBCdWNrZXRNYXBOZXh0TG9jLAogICAgIE1hcEJ1Y2tldFNldE5leHRMb2MsCisgICAg
V2Vha01hcEdldExvYywKICAgICBET01TdGF0ZUxvYywKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdOb2RlLmgKaW5kZXggZTcwZGI5NjExYzRiMDQyODI5NTk2MzQzMDI1YTczMzkzZjE3Y2Ix
NC4uMTU4OTcxOTA3NzkxZjg2YWJhYzA3M2M4ZmUxMjAwYzI5MDQ4Y2FiNCAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdOb2RlLmgKQEAgLTE1MzYsNiArMTUzNiw3IEBAIHN0cnVjdCBOb2RlIHsK
ICAgICAgICAgY2FzZSBBdG9taWNzU3ViOgogICAgICAgICBjYXNlIEF0b21pY3NYb3I6CiAgICAg
ICAgIGNhc2UgR2V0RHluYW1pY1ZhcjoKKyAgICAgICAgY2FzZSBXZWFrTWFwR2V0OgogICAgICAg
ICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVUeXBl
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVUeXBlLmgKaW5kZXggNjhmZDZm
OGMwZjA5MDFlYTkyMTFjYjc5ZWRlMGE3MWYxNmI1NzU4MS4uYmFkNTliZGY1YWY2OWYyYjRhNGQx
YmFiOTc0ZmE2ZWFkZjU3ZGFkYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdOb2RlVHlwZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5
cGUuaApAQCAtNDM2LDYgKzQzNiw4IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsK
ICAgICBtYWNybyhHZXRNYXBCdWNrZXROZXh0LCBOb2RlUmVzdWx0SlMpIFwKICAgICBtYWNybyhM
b2FkS2V5RnJvbU1hcEJ1Y2tldCwgTm9kZVJlc3VsdEpTKSBcCiAgICAgbWFjcm8oTG9hZFZhbHVl
RnJvbU1hcEJ1Y2tldCwgTm9kZVJlc3VsdEpTKSBcCisgICAgLyogTm9kZXMgZm9yIEpTV2Vha01h
cCBhbmQgSlNXZWFrU2V0ICovIFwKKyAgICBtYWNybyhXZWFrTWFwR2V0LCBOb2RlUmVzdWx0SlMp
IFwKICAgICBcCiAgICAgbWFjcm8oVG9Mb3dlckNhc2UsIE5vZGVSZXN1bHRKUykgXAogICAgIC8q
IE5vZGVzIGZvciBET00gSklUICovXApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdPcGVyYXRpb25zLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3Bl
cmF0aW9ucy5jcHAKaW5kZXggNWM0MWM4MzJjZWZjNzQ5NDljOTMxYzQwODA3N2E0NmNkNDBjY2Vh
ZC4uNTAzY2MxOTVkNWI4MDA5NjRjOGM3MTBkNTFmMDhmZjM0ZDU4ZWVmYyAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCkBAIC01NSw2ICs1NSw3IEBACiAj
aW5jbHVkZSAiSlNMZXhpY2FsRW52aXJvbm1lbnQuaCIKICNpbmNsdWRlICJKU01hcC5oIgogI2lu
Y2x1ZGUgIkpTU2V0LmgiCisjaW5jbHVkZSAiSlNXZWFrTWFwLmgiCiAjaW5jbHVkZSAiT2JqZWN0
Q29uc3RydWN0b3IuaCIKICNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiUGFyc2VJ
bnQuaCIKQEAgLTgyNSw2ICs4MjYsMTMgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBv
cGVyYXRpb25SZWdFeHBFeGVjR2VuZXJpYyhFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmEKICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGFzUmVnRXhwT2JqZWN0KGJhc2UpLT5leGVjKGV4ZWMsIGds
b2JhbE9iamVjdCwgaW5wdXQpKTsKIH0KIAorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBv
cGVyYXRpb25XZWFrTWFwR2V0KEV4ZWNTdGF0ZSogZXhlYywgSlNDZWxsKiB3ZWFrTWFwLCBKU0Nl
bGwqIG9iamVjdCkKK3sKKyAgICBWTSYgdm0gPSBleGVjLT52bSgpOworICAgIE5hdGl2ZUNhbGxG
cmFtZVRyYWNlciB0cmFjZXIoJnZtLCBleGVjKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGpzQ2FzdDxKU1dlYWtNYXAqPih3ZWFrTWFwKS0+Z2V0KGFzT2JqZWN0KG9iamVjdCkpKTsKK30K
KwogRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25QYXJzZUludE5vUmFkaXhH
ZW5lcmljKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgdmFsdWUpCiB7CiAgICAgVk0m
IHZtID0gZXhlYy0+dm0oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHT3BlcmF0aW9ucy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25z
LmgKaW5kZXggYzQ3NjhkYzYwYWY5ODdjMTU4NTMyODhmMDI4ZTJkNDYyOWJhNDk5My4uYTQ4MDNi
MjEyMGYzMmRiYmY3MmNlMmIyOWQ5ZDU0YTU2Nzk0NmZmYyAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdPcGVyYXRpb25zLmgKQEAgLTEzMSw2ICsxMzEsNyBAQCBFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkFycmF5UG9wQW5kUmVjb3Zlckxlbmd0aChFeGVjU3Rh
dGUqLCBKU0FycgogRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25SZWdFeHBF
eGVjU3RyaW5nKEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0KiwgUmVnRXhwT2JqZWN0KiwgSlNT
dHJpbmcqKSBXVEZfSU5URVJOQUw7CiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvblJlZ0V4cEV4ZWMoRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqLCBSZWdFeHBPYmplY3Qq
LCBFbmNvZGVkSlNWYWx1ZSkgV1RGX0lOVEVSTkFMOwogRW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBvcGVyYXRpb25SZWdFeHBFeGVjR2VuZXJpYyhFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVj
dCosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSkgV1RGX0lOVEVSTkFMOworRW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25XZWFrTWFwR2V0KEV4ZWNTdGF0ZSosIEpT
Q2VsbCosIEpTQ2VsbCopIFdURl9JTlRFUk5BTDsKIC8vIFRoZXNlIGNvbXBhcmlzb25zIHJldHVy
biBhIGJvb2xlYW4gd2l0aGluIGEgc2l6ZV90IHN1Y2ggdGhhdCB0aGUgdmFsdWUgaXMgemVybyBl
eHRlbmRlZCB0byBmaWxsIHRoZSByZWdpc3Rlci4KIHNpemVfdCBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvblJlZ0V4cFRlc3RTdHJpbmcoRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqLCBSZWdFeHBP
YmplY3QqLCBKU1N0cmluZyopIFdURl9JTlRFUk5BTDsKIHNpemVfdCBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvblJlZ0V4cFRlc3QoRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqLCBSZWdFeHBPYmpl
Y3QqLCBFbmNvZGVkSlNWYWx1ZSkgV1RGX0lOVEVSTkFMOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcApp
bmRleCA1YjBiOWVmNjM3YzIxZmVmMDQ1M2ZlYTkzYzU3YjRiZDFlNzFlYjNlLi5lNDE5MzI0NGY4
M2Y1MmVkMjdlOTI5ODQyOTI3MjlmYzRhZGQ4OTlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcApA
QCAtNzIyLDcgKzcyMiw4IEBAIGNsYXNzIFByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlIDogcHVi
bGljIFBoYXNlIHsKICAgICAgICAgY2FzZSBUb051bWJlcjoKICAgICAgICAgY2FzZSBHZXRBcmd1
bWVudDoKICAgICAgICAgY2FzZSBDYWxsRE9NR2V0dGVyOgotICAgICAgICBjYXNlIEdldER5bmFt
aWNWYXI6IHsKKyAgICAgICAgY2FzZSBHZXREeW5hbWljVmFyOgorICAgICAgICBjYXNlIFdlYWtN
YXBHZXQ6IHsKICAgICAgICAgICAgIHNldFByZWRpY3Rpb24obV9jdXJyZW50Tm9kZS0+Z2V0SGVh
cFByZWRpY3Rpb24oKSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTYWZlVG9FeGVjdXRlLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaAppbmRleCBhZDc2YjMzYjBmYWFm
MTg3ZGI0NmEzMDg5MmY0N2ZjYTdlM2I0NDlkLi4zMjcyMWUxZjQxYWFmOTI5OTRmNTM1N2YwNjI2
MWZiZmNkZWRlNjk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nh
ZmVUb0V4ZWN1dGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVUb0V4
ZWN1dGUuaApAQCAtNjIsNiArNjIsOCBAQCBjbGFzcyBTYWZlVG9FeGVjdXRlRWRnZSB7CiAgICAg
ICAgIGNhc2UgRGVyaXZlZEFycmF5VXNlOgogICAgICAgICBjYXNlIE1hcE9iamVjdFVzZToKICAg
ICAgICAgY2FzZSBTZXRPYmplY3RVc2U6CisgICAgICAgIGNhc2UgV2Vha01hcE9iamVjdFVzZToK
KyAgICAgICAgY2FzZSBXZWFrU2V0T2JqZWN0VXNlOgogICAgICAgICBjYXNlIE9iamVjdE9yT3Ro
ZXJVc2U6CiAgICAgICAgIGNhc2UgU3RyaW5nSWRlbnRVc2U6CiAgICAgICAgIGNhc2UgU3RyaW5n
VXNlOgpAQCAtMzg4LDYgKzM5MCw3IEBAIGJvb2wgc2FmZVRvRXhlY3V0ZShBYnN0cmFjdFN0YXRl
VHlwZSYgc3RhdGUsIEdyYXBoJiBncmFwaCwgTm9kZSogbm9kZSkKICAgICBjYXNlIEdldE1hcEJ1
Y2tldE5leHQ6CiAgICAgY2FzZSBMb2FkS2V5RnJvbU1hcEJ1Y2tldDoKICAgICBjYXNlIExvYWRW
YWx1ZUZyb21NYXBCdWNrZXQ6CisgICAgY2FzZSBXZWFrTWFwR2V0OgogICAgIGNhc2UgQXRvbWlj
c0FkZDoKICAgICBjYXNlIEF0b21pY3NBbmQ6CiAgICAgY2FzZSBBdG9taWNzQ29tcGFyZUV4Y2hh
bmdlOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2
ZUpJVC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNw
cAppbmRleCBmODM2MGI5ZmRiOTAxYmFjMjE0OWI5NDMyYjBlZTcyZWVjMGFkOTk2Li5kYjg2ODc1
YzRlZTJiMzA4NmMyOTNmNDZkNTY1MTRjZGY5ZWIxMWQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcApAQCAtODg4NCw2ICs4ODg0LDM0IEBA
IHZvaWQgU3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZVNldE9iamVjdChFZGdlIGVkZ2UpCiAgICAg
c3BlY3VsYXRlU2V0T2JqZWN0KGVkZ2UsIG9wZXJhbmQuZ3ByKCkpOwogfQogCit2b2lkIFNwZWN1
bGF0aXZlSklUOjpzcGVjdWxhdGVXZWFrTWFwT2JqZWN0KEVkZ2UgZWRnZSwgR1BSUmVnIGNlbGwp
Cit7CisgICAgc3BlY3VsYXRlQ2VsbFR5cGUoZWRnZSwgY2VsbCwgU3BlY1dlYWtNYXBPYmplY3Qs
IEpTV2Vha01hcFR5cGUpOworfQorCit2b2lkIFNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGVXZWFr
TWFwT2JqZWN0KEVkZ2UgZWRnZSkKK3sKKyAgICBpZiAoIW5lZWRzVHlwZUNoZWNrKGVkZ2UsIFNw
ZWNXZWFrTWFwT2JqZWN0KSkKKyAgICAgICAgcmV0dXJuOworCisgICAgU3BlY3VsYXRlQ2VsbE9w
ZXJhbmQgb3BlcmFuZCh0aGlzLCBlZGdlKTsKKyAgICBzcGVjdWxhdGVXZWFrTWFwT2JqZWN0KGVk
Z2UsIG9wZXJhbmQuZ3ByKCkpOworfQorCit2b2lkIFNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGVX
ZWFrU2V0T2JqZWN0KEVkZ2UgZWRnZSwgR1BSUmVnIGNlbGwpCit7CisgICAgc3BlY3VsYXRlQ2Vs
bFR5cGUoZWRnZSwgY2VsbCwgU3BlY1dlYWtTZXRPYmplY3QsIEpTV2Vha1NldFR5cGUpOworfQor
Cit2b2lkIFNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGVXZWFrU2V0T2JqZWN0KEVkZ2UgZWRnZSkK
K3sKKyAgICBpZiAoIW5lZWRzVHlwZUNoZWNrKGVkZ2UsIFNwZWNXZWFrU2V0T2JqZWN0KSkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgb3BlcmFuZCh0aGlzLCBl
ZGdlKTsKKyAgICBzcGVjdWxhdGVXZWFrU2V0T2JqZWN0KGVkZ2UsIG9wZXJhbmQuZ3ByKCkpOwor
fQorCiB2b2lkIFNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGVPYmplY3RPck90aGVyKEVkZ2UgZWRn
ZSkKIHsKICAgICBpZiAoIW5lZWRzVHlwZUNoZWNrKGVkZ2UsIFNwZWNPYmplY3QgfCBTcGVjT3Ro
ZXIpKQpAQCAtOTIwMiw2ICs5MjMwLDEyIEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0
ZShOb2RlKiwgRWRnZSBlZGdlKQogICAgIGNhc2UgU2V0T2JqZWN0VXNlOgogICAgICAgICBzcGVj
dWxhdGVTZXRPYmplY3QoZWRnZSk7CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgV2Vha01hcE9i
amVjdFVzZToKKyAgICAgICAgc3BlY3VsYXRlV2Vha01hcE9iamVjdChlZGdlKTsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBXZWFrU2V0T2JqZWN0VXNlOgorICAgICAgICBzcGVjdWxhdGVXZWFr
U2V0T2JqZWN0KGVkZ2UpOworICAgICAgICBicmVhazsKICAgICBjYXNlIE9iamVjdE9yT3RoZXJV
c2U6CiAgICAgICAgIHNwZWN1bGF0ZU9iamVjdE9yT3RoZXIoZWRnZSk7CiAgICAgICAgIGJyZWFr
OwpAQCAtMTAyODQsNiArMTAzMTgsMjYgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUxv
YWRWYWx1ZUZyb21NYXBCdWNrZXQoTm9kZSogbm9kZSkKICAgICBqc1ZhbHVlUmVzdWx0KHJlc3Vs
dFJlZ3MsIG5vZGUpOwogfQogCit2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlV2Vha01hcEdl
dChOb2RlKiBub2RlKQoreworICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIHdlYWtNYXAodGhpcywg
bm9kZS0+Y2hpbGQxKCkpOworICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIG9iamVjdCh0aGlzLCBu
b2RlLT5jaGlsZDIoKSk7CisgICAgSlNWYWx1ZVJlZ3NUZW1wb3JhcnkgcmVzdWx0KHRoaXMpOwor
CisgICAgR1BSUmVnIHdlYWtNYXBHUFIgPSB3ZWFrTWFwLmdwcigpOworICAgIEdQUlJlZyBvYmpl
Y3RHUFIgPSBvYmplY3QuZ3ByKCk7CisgICAgSlNWYWx1ZVJlZ3MgcmVzdWx0UmVncyA9IHJlc3Vs
dC5yZWdzKCk7CisKKyAgICBzcGVjdWxhdGVXZWFrTWFwT2JqZWN0KG5vZGUtPmNoaWxkMSgpLCB3
ZWFrTWFwR1BSKTsKKyAgICBzcGVjdWxhdGVPYmplY3Qobm9kZS0+Y2hpbGQyKCksIG9iamVjdEdQ
Uik7CisKKyAgICBmbHVzaFJlZ2lzdGVycygpOworICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9u
V2Vha01hcEdldCwgZXh0cmFjdFJlc3VsdChyZXN1bHRSZWdzKSwgd2Vha01hcEdQUiwgb2JqZWN0
R1BSKTsKKyAgICBtX2ppdC5leGNlcHRpb25DaGVjaygpOworCisgICAganNWYWx1ZVJlc3VsdChy
ZXN1bHRSZWdzLCBub2RlKTsKK30KKwogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkRGRwogCiAjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVK
SVQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaAppbmRl
eCBiNjEyMmVmMDYwNzZmNzAwNDdhNjJmZTU3ZDMyZjZkOGQyNWVhNDJjLi4zN2ViNDFmYTdlOGQ0
YTdjZjIzZTgzMzMzNjlkYTk1YmI2ZmQ2NzU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCkBAIC0yNzgxLDYgKzI3ODEsNyBAQCBjbGFzcyBTcGVj
dWxhdGl2ZUpJVCB7CiAgICAgdm9pZCBjb21waWxlQ2hlY2tTdWJDbGFzcyhOb2RlKik7CiAgICAg
dm9pZCBjb21waWxlR2V0TWFwQnVja2V0SGVhZChOb2RlKik7CiAgICAgdm9pZCBjb21waWxlR2V0
TWFwQnVja2V0TmV4dChOb2RlKik7CisgICAgdm9pZCBjb21waWxlV2Vha01hcEdldChOb2RlKik7
CiAgICAgdm9pZCBjb21waWxlTG9hZEtleUZyb21NYXBCdWNrZXQoTm9kZSopOwogICAgIHZvaWQg
Y29tcGlsZUxvYWRWYWx1ZUZyb21NYXBCdWNrZXQoTm9kZSopOwogICAgIApAQCAtMzAzNiw2ICsz
MDM3LDEwIEBAIGNsYXNzIFNwZWN1bGF0aXZlSklUIHsKICAgICB2b2lkIHNwZWN1bGF0ZU1hcE9i
amVjdChFZGdlLCBHUFJSZWcgY2VsbCk7CiAgICAgdm9pZCBzcGVjdWxhdGVTZXRPYmplY3QoRWRn
ZSk7CiAgICAgdm9pZCBzcGVjdWxhdGVTZXRPYmplY3QoRWRnZSwgR1BSUmVnIGNlbGwpOworICAg
IHZvaWQgc3BlY3VsYXRlV2Vha01hcE9iamVjdChFZGdlKTsKKyAgICB2b2lkIHNwZWN1bGF0ZVdl
YWtNYXBPYmplY3QoRWRnZSwgR1BSUmVnIGNlbGwpOworICAgIHZvaWQgc3BlY3VsYXRlV2Vha1Nl
dE9iamVjdChFZGdlKTsKKyAgICB2b2lkIHNwZWN1bGF0ZVdlYWtTZXRPYmplY3QoRWRnZSwgR1BS
UmVnIGNlbGwpOwogICAgIHZvaWQgc3BlY3VsYXRlT2JqZWN0T3JPdGhlcihFZGdlKTsKICAgICB2
b2lkIHNwZWN1bGF0ZVN0cmluZyhFZGdlIGVkZ2UsIEdQUlJlZyBjZWxsKTsKICAgICB2b2lkIHNw
ZWN1bGF0ZVN0cmluZ0lkZW50QW5kTG9hZFN0b3JhZ2UoRWRnZSBlZGdlLCBHUFJSZWcgc3RyaW5n
LCBHUFJSZWcgc3RvcmFnZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAppbmRleCAzNTQ0OWUzNWRmNjQ3YjkwMmQ0ZjM1NjM0
OWNkMjhiMjViOGNhNTY0Li5lZWVkOWZlODhlZTRmMDVlNDkwZGM5NjNiZDkxYjg4YTE3YjliNjM1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklU
MzJfNjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVK
SVQzMl82NC5jcHAKQEAgLTQ5MzEsNiArNDkzMSwxMCBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpj
b21waWxlKE5vZGUqIG5vZGUpCiAgICAgICAgIGNvbXBpbGVMb2FkVmFsdWVGcm9tTWFwQnVja2V0
KG5vZGUpOwogICAgICAgICBicmVhazsKIAorICAgIGNhc2UgV2Vha01hcEdldDoKKyAgICAgICAg
Y29tcGlsZVdlYWtNYXBHZXQobm9kZSk7CisgICAgICAgIGJyZWFrOworCiAgICAgY2FzZSBGbHVz
aDoKICAgICAgICAgYnJlYWs7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1NwZWN1bGF0aXZlSklUNjQuY3BwCmluZGV4IGQ0YzM4MzRiN2RmY2I1ODZlYmYyYjMzNzBkYTU3
YzBmYTQwMDAwZmMuLjYwNzRkNzcxZGZkMjkxZTNmYjY2ODAyN2U0OGRhNjFhOTk3ODZkMmIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNw
cApAQCAtNTI5MSw2ICs1MjkxLDEwIEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9k
ZSogbm9kZSkKICAgICAgICAgY29tcGlsZUxvYWRWYWx1ZUZyb21NYXBCdWNrZXQobm9kZSk7CiAg
ICAgICAgIGJyZWFrOwogCisgICAgY2FzZSBXZWFrTWFwR2V0OgorICAgICAgICBjb21waWxlV2Vh
a01hcEdldChub2RlKTsKKyAgICAgICAgYnJlYWs7CisKICAgICBjYXNlIFRvTG93ZXJDYXNlOiB7
CiAgICAgICAgIGNvbXBpbGVUb0xvd2VyQ2FzZShub2RlKTsKICAgICAgICAgYnJlYWs7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1VzZUtpbmQuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdVc2VLaW5kLmNwcAppbmRleCBlODM4MjliNzEzMDYxNzNk
ZTk1YjAxMDg4YmYzZTljZDg0ZmRmNmVjLi4yM2QwZGIwMDQwZTQzNTYwMTFiMjI2NDllYWIwODM0
M2M4NDExYjEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1VzZUtp
bmQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVXNlS2luZC5jcHAKQEAg
LTEwOSw2ICsxMDksMTIgQEAgdm9pZCBwcmludEludGVybmFsKFByaW50U3RyZWFtJiBvdXQsIFVz
ZUtpbmQgdXNlS2luZCkKICAgICBjYXNlIFNldE9iamVjdFVzZToKICAgICAgICAgb3V0LnByaW50
KCJTZXRPYmplY3RVc2UiKTsKICAgICAgICAgcmV0dXJuOworICAgIGNhc2UgV2Vha01hcE9iamVj
dFVzZToKKyAgICAgICAgb3V0LnByaW50KCJXZWFrTWFwT2JqZWN0VXNlIik7CisgICAgICAgIHJl
dHVybjsKKyAgICBjYXNlIFdlYWtTZXRPYmplY3RVc2U6CisgICAgICAgIG91dC5wcmludCgiV2Vh
a1NldE9iamVjdFVzZSIpOworICAgICAgICByZXR1cm47CiAgICAgY2FzZSBPYmplY3RPck90aGVy
VXNlOgogICAgICAgICBvdXQucHJpbnQoIk9iamVjdE9yT3RoZXIiKTsKICAgICAgICAgcmV0dXJu
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdVc2VLaW5kLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1VzZUtpbmQuaAppbmRleCA0NmUyNzIwMWM5ODZm
ZGZlM2I2MDZjNzU2MjM4OTBjMjBlMmYwMzU5Li43OTZkOGI0MGZjY2NhMDFjNGU1ZGEzODdkODI1
MGUxY2EyZmI0MjZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Vz
ZUtpbmQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1VzZUtpbmQuaApAQCAt
NjcsNiArNjcsOCBAQCBlbnVtIFVzZUtpbmQgewogICAgIFN5bWJvbFVzZSwKICAgICBNYXBPYmpl
Y3RVc2UsCiAgICAgU2V0T2JqZWN0VXNlLAorICAgIFdlYWtNYXBPYmplY3RVc2UsCisgICAgV2Vh
a1NldE9iamVjdFVzZSwKICAgICBTdHJpbmdPYmplY3RVc2UsCiAgICAgU3RyaW5nT3JTdHJpbmdP
YmplY3RVc2UsCiAgICAgTm90U3RyaW5nVmFyVXNlLApAQCAtMTQ5LDYgKzE1MSwxMCBAQCBpbmxp
bmUgU3BlY3VsYXRlZFR5cGUgdHlwZUZpbHRlckZvcihVc2VLaW5kIHVzZUtpbmQpCiAgICAgICAg
IHJldHVybiBTcGVjTWFwT2JqZWN0OwogICAgIGNhc2UgU2V0T2JqZWN0VXNlOgogICAgICAgICBy
ZXR1cm4gU3BlY1NldE9iamVjdDsKKyAgICBjYXNlIFdlYWtNYXBPYmplY3RVc2U6CisgICAgICAg
IHJldHVybiBTcGVjV2Vha01hcE9iamVjdDsKKyAgICBjYXNlIFdlYWtTZXRPYmplY3RVc2U6Cisg
ICAgICAgIHJldHVybiBTcGVjV2Vha1NldE9iamVjdDsKICAgICBjYXNlIFN0cmluZ09iamVjdFVz
ZToKICAgICAgICAgcmV0dXJuIFNwZWNTdHJpbmdPYmplY3Q7CiAgICAgY2FzZSBTdHJpbmdPclN0
cmluZ09iamVjdFVzZToKQEAgLTI0MSw2ICsyNDcsOCBAQCBpbmxpbmUgYm9vbCBpc0NlbGwoVXNl
S2luZCBraW5kKQogICAgIGNhc2UgU3RyaW5nT3JTdHJpbmdPYmplY3RVc2U6CiAgICAgY2FzZSBN
YXBPYmplY3RVc2U6CiAgICAgY2FzZSBTZXRPYmplY3RVc2U6CisgICAgY2FzZSBXZWFrTWFwT2Jq
ZWN0VXNlOgorICAgIGNhc2UgV2Vha1NldE9iamVjdFVzZToKICAgICAgICAgcmV0dXJuIHRydWU7
CiAgICAgZGVmYXVsdDoKICAgICAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDYXBhYmlsaXRpZXMuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Z0bC9GVExDYXBhYmlsaXRpZXMuY3BwCmluZGV4IGMyMTVhNjMyOTYxZjg2ZTFiZTYy
OGJiMWU5Yzk2YjY4Y2JmZWYxMzUuLmJmMGZlNjM5NTI1ZDA2ZjMzMjUxMjc2N2RmNjcwNDgyM2Nj
NmQ4N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJpbGl0
aWVzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENhcGFiaWxpdGllcy5j
cHAKQEAgLTE5OSw2ICsxOTksNyBAQCBpbmxpbmUgQ2FwYWJpbGl0eUxldmVsIGNhbkNvbXBpbGUo
Tm9kZSogbm9kZSkKICAgICBjYXNlIEdldE1hcEJ1Y2tldE5leHQ6CiAgICAgY2FzZSBMb2FkS2V5
RnJvbU1hcEJ1Y2tldDoKICAgICBjYXNlIExvYWRWYWx1ZUZyb21NYXBCdWNrZXQ6CisgICAgY2Fz
ZSBXZWFrTWFwR2V0OgogICAgIGNhc2UgSXNFbXB0eToKICAgICBjYXNlIElzVW5kZWZpbmVkOgog
ICAgIGNhc2UgSXNCb29sZWFuOgpAQCAtNDg2LDYgKzQ4Nyw4IEBAIENhcGFiaWxpdHlMZXZlbCBj
YW5Db21waWxlKEdyYXBoJiBncmFwaCkKICAgICAgICAgICAgICAgICBjYXNlIFN5bWJvbFVzZToK
ICAgICAgICAgICAgICAgICBjYXNlIE1hcE9iamVjdFVzZToKICAgICAgICAgICAgICAgICBjYXNl
IFNldE9iamVjdFVzZToKKyAgICAgICAgICAgICAgICBjYXNlIFdlYWtNYXBPYmplY3RVc2U6Cisg
ICAgICAgICAgICAgICAgY2FzZSBXZWFrU2V0T2JqZWN0VXNlOgogICAgICAgICAgICAgICAgIGNh
c2UgRmluYWxPYmplY3RVc2U6CiAgICAgICAgICAgICAgICAgY2FzZSBSZWdFeHBPYmplY3RVc2U6
CiAgICAgICAgICAgICAgICAgY2FzZSBQcm94eU9iamVjdFVzZToKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcAppbmRleCAzZWUyMTY5ZmZkOTE4MzU0ZDQx
NzU1MjIxOGUyYzE1ZWQ1MTk1MWVhLi5hYzFlZjg2NmU3ODcxNTM5M2M4NWQ4MWZjYjk0YjRkY2Ex
NDVjMGQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZH
VG9CMy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMu
Y3BwCkBAIC05ODQsNiArOTg0LDkgQEAgY2xhc3MgTG93ZXJERkdUb0IzIHsKICAgICAgICAgY2Fz
ZSBMb2FkVmFsdWVGcm9tTWFwQnVja2V0OgogICAgICAgICAgICAgY29tcGlsZUxvYWRWYWx1ZUZy
b21NYXBCdWNrZXQoKTsKICAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFdlYWtNYXBH
ZXQ6CisgICAgICAgICAgICBjb21waWxlV2Vha01hcEdldCgpOworICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgIGNhc2UgSXNPYmplY3Q6CiAgICAgICAgICAgICBjb21waWxlSXNPYmplY3QoKTsK
ICAgICAgICAgICAgIGJyZWFrOwpAQCAtODMyNCw2ICs4MzI3LDE0IEBAIGNsYXNzIExvd2VyREZH
VG9CMyB7CiAgICAgICAgIHNldEpTVmFsdWUobV9vdXQubG9hZDY0KG1hcEJ1Y2tldCwgbV9oZWFw
cy5IYXNoTWFwQnVja2V0X2tleSkpOwogICAgIH0KIAorICAgIHZvaWQgY29tcGlsZVdlYWtNYXBH
ZXQoKQorICAgIHsKKyAgICAgICAgTFZhbHVlIHdlYWtNYXAgPSBsb3dXZWFrTWFwT2JqZWN0KG1f
bm9kZS0+Y2hpbGQxKCkpOworICAgICAgICBMVmFsdWUgb2JqZWN0ID0gbG93T2JqZWN0KG1fbm9k
ZS0+Y2hpbGQyKCkpOworCisgICAgICAgIHNldEpTVmFsdWUodm1DYWxsKEludDY0LCBtX291dC5v
cGVyYXRpb24ob3BlcmF0aW9uV2Vha01hcEdldCksIG1fY2FsbEZyYW1lLCB3ZWFrTWFwLCBvYmpl
Y3QpKTsKKyAgICB9CisKICAgICB2b2lkIGNvbXBpbGVJc09iamVjdE9yTnVsbCgpCiAgICAgewog
ICAgICAgICBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gbV9ncmFwaC5nbG9iYWxPYmpl
Y3RGb3IobV9ub2RlLT5vcmlnaW4uc2VtYW50aWMpOwpAQCAtMTI3ODIsNiArMTI3OTMsMjAgQEAg
Y2xhc3MgTG93ZXJERkdUb0IzIHsKICAgICAgICAgc3BlY3VsYXRlU2V0T2JqZWN0KGVkZ2UsIHJl
c3VsdCk7CiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQorCisgICAgTFZhbHVlIGxvd1dl
YWtNYXBPYmplY3QoRWRnZSBlZGdlKQorICAgIHsKKyAgICAgICAgTFZhbHVlIHJlc3VsdCA9IGxv
d0NlbGwoZWRnZSk7CisgICAgICAgIHNwZWN1bGF0ZVdlYWtNYXBPYmplY3QoZWRnZSwgcmVzdWx0
KTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICBMVmFsdWUgbG93V2Vha1Nl
dE9iamVjdChFZGdlIGVkZ2UpCisgICAgeworICAgICAgICBMVmFsdWUgcmVzdWx0ID0gbG93Q2Vs
bChlZGdlKTsKKyAgICAgICAgc3BlY3VsYXRlV2Vha1NldE9iamVjdChlZGdlLCByZXN1bHQpOwor
ICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KICAgICAKICAgICBMVmFsdWUgbG93U3RyaW5n
KEVkZ2UgZWRnZSwgT3BlcmFuZFNwZWN1bGF0aW9uTW9kZSBtb2RlID0gQXV0b21hdGljT3BlcmFu
ZFNwZWN1bGF0aW9uKQogICAgIHsKQEAgLTEzMjM1LDYgKzEzMjYwLDEyIEBAIGNsYXNzIExvd2Vy
REZHVG9CMyB7CiAgICAgICAgIGNhc2UgU2V0T2JqZWN0VXNlOgogICAgICAgICAgICAgc3BlY3Vs
YXRlU2V0T2JqZWN0KGVkZ2UpOwogICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgV2Vh
a01hcE9iamVjdFVzZToKKyAgICAgICAgICAgIHNwZWN1bGF0ZVdlYWtNYXBPYmplY3QoZWRnZSk7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBXZWFrU2V0T2JqZWN0VXNlOgorICAg
ICAgICAgICAgc3BlY3VsYXRlV2Vha1NldE9iamVjdChlZGdlKTsKKyAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICBjYXNlIFN0cmluZ1VzZToKICAgICAgICAgICAgIHNwZWN1bGF0ZVN0cmluZyhl
ZGdlKTsKICAgICAgICAgICAgIGJyZWFrOwpAQCAtMTM2MzAsNiArMTM2NjEsMjggQEAgY2xhc3Mg
TG93ZXJERkdUb0IzIHsKICAgICB7CiAgICAgICAgIHNwZWN1bGF0ZVNldE9iamVjdChlZGdlLCBs
b3dDZWxsKGVkZ2UpKTsKICAgICB9CisKKyAgICB2b2lkIHNwZWN1bGF0ZVdlYWtNYXBPYmplY3Qo
RWRnZSBlZGdlLCBMVmFsdWUgY2VsbCkKKyAgICB7CisgICAgICAgIEZUTF9UWVBFX0NIRUNLKAor
ICAgICAgICAgICAganNWYWx1ZVZhbHVlKGNlbGwpLCBlZGdlLCBTcGVjV2Vha01hcE9iamVjdCwg
aXNOb3RUeXBlKGNlbGwsIEpTV2Vha01hcFR5cGUpKTsKKyAgICB9CisKKyAgICB2b2lkIHNwZWN1
bGF0ZVdlYWtNYXBPYmplY3QoRWRnZSBlZGdlKQorICAgIHsKKyAgICAgICAgc3BlY3VsYXRlV2Vh
a01hcE9iamVjdChlZGdlLCBsb3dDZWxsKGVkZ2UpKTsKKyAgICB9CisKKyAgICB2b2lkIHNwZWN1
bGF0ZVdlYWtTZXRPYmplY3QoRWRnZSBlZGdlLCBMVmFsdWUgY2VsbCkKKyAgICB7CisgICAgICAg
IEZUTF9UWVBFX0NIRUNLKAorICAgICAgICAgICAganNWYWx1ZVZhbHVlKGNlbGwpLCBlZGdlLCBT
cGVjV2Vha1NldE9iamVjdCwgaXNOb3RUeXBlKGNlbGwsIEpTV2Vha1NldFR5cGUpKTsKKyAgICB9
CisKKyAgICB2b2lkIHNwZWN1bGF0ZVdlYWtTZXRPYmplY3QoRWRnZSBlZGdlKQorICAgIHsKKyAg
ICAgICAgc3BlY3VsYXRlV2Vha1NldE9iamVjdChlZGdlLCBsb3dDZWxsKGVkZ2UpKTsKKyAgICB9
CiAgICAgCiAgICAgdm9pZCBzcGVjdWxhdGVTdHJpbmcoRWRnZSBlZGdlLCBMVmFsdWUgY2VsbCkK
ICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRyaW5z
aWMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50cmluc2ljLmNwcAppbmRl
eCBmOTg1NjNhYmE3MTcwM2IxMTJkY2Y4ODZlYzQ1NWE3MDVmYjVlZDBiLi45ZDEyZmZmOWRmNzVj
ZTE3ZDZhMDFiMzAzNmExYmE3YmExMzYzOTEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9JbnRyaW5zaWMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0ludHJpbnNpYy5jcHAKQEAgLTE1Myw2ICsxNTMsOCBAQCBjb25zdCBjaGFyKiBpbnRy
aW5zaWNOYW1lKEludHJpbnNpYyBpbnRyaW5zaWMpCiAgICAgICAgIHJldHVybiAiSlNTZXRCdWNr
ZXROZXh0SW50cmluc2ljIjsKICAgICBjYXNlIEpTU2V0QnVja2V0S2V5SW50cmluc2ljOgogICAg
ICAgICByZXR1cm4gIkpTU2V0QnVja2V0S2V5SW50cmluc2ljIjsKKyAgICBjYXNlIEpTV2Vha01h
cEdldEludHJpbnNpYzoKKyAgICAgICAgcmV0dXJuICJKU1dlYWtNYXBHZXRJbnRyaW5zaWMiOwog
ICAgIGNhc2UgSGFzT3duUHJvcGVydHlJbnRyaW5zaWM6CiAgICAgICAgIHJldHVybiAiSGFzT3du
UHJvcGVydHlJbnRyaW5zaWMiOwogICAgIGNhc2UgQXRvbWljc0FkZEludHJpbnNpYzoKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludHJpbnNpYy5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50cmluc2ljLmgKaW5kZXggNGM5MmE0ZDY0NDA0Mzhl
YTE5MGJkNzljYjMxY2E0YzhhMzY5YzA0Yy4uNzZmOTI3MmEwZmRiOTFiMTBkNzM3NDY2NWEzY2Qy
YjBjMTIzNTQ1NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50
cmluc2ljLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50cmluc2ljLmgK
QEAgLTg5LDYgKzg5LDkgQEAgZW51bSBJbnRyaW5zaWMgewogICAgIEpTU2V0QnVja2V0SGVhZElu
dHJpbnNpYywKICAgICBKU1NldEJ1Y2tldE5leHRJbnRyaW5zaWMsCiAgICAgSlNTZXRCdWNrZXRL
ZXlJbnRyaW5zaWMsCisgICAgSlNXZWFrTWFwR2V0SW50cmluc2ljLAorICAgIEpTV2Vha01hcEhh
c0ludHJpbnNpYywKKyAgICBKU1dlYWtTZXRIYXNJbnRyaW5zaWMsCiAgICAgSGFzT3duUHJvcGVy
dHlJbnRyaW5zaWMsCiAgICAgQXRvbWljc0FkZEludHJpbnNpYywKICAgICBBdG9taWNzQW5kSW50
cmluc2ljLApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBl
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGUuaAppbmRleCAyZjc3Y2Qw
Y2YxNGI3MThlY2FlYjkzZmM3YzdhZDUzZWFhZWZjN2VlLi5lZWUyYTVlYTUxOTc3MWFkYTUzOWUx
M2NkYTJiOWU1ZjMyMTdmNjQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU1R5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGUu
aApAQCAtOTQsNiArOTQsOCBAQCBlbnVtIEpTVHlwZSA6IHVpbnQ4X3QgewogICAgIFByb3h5T2Jq
ZWN0VHlwZSwKICAgICBKU01hcFR5cGUsCiAgICAgSlNTZXRUeXBlLAorICAgIEpTV2Vha01hcFR5
cGUsCisgICAgSlNXZWFrU2V0VHlwZSwKIAogICAgIFdlYkFzc2VtYmx5RnVuY3Rpb25UeXBlLAog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1dlYWtNYXAuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTV2Vha01hcC5oCmluZGV4IDVmOGZkMjEy
NWE5OGFiNDI1ZGNhYjg1NjQ1M2Q0Yjg5M2EwZjdmNDguLjc4OGFlYzNmNGEyOWJkZjAzNDEwNmJm
YzI1MjhkNTU4NDNkMjdmNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTV2Vha01hcC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTV2Vh
a01hcC5oCkBAIC0zOCw3ICszOCw3IEBAIGNsYXNzIEpTV2Vha01hcCBmaW5hbCA6IHB1YmxpYyBX
ZWFrTWFwQmFzZSB7CiAKICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoVk0m
IHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkKICAg
ICB7Ci0gICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBw
cm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsK
KyAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3Rv
dHlwZSwgVHlwZUluZm8oSlNXZWFrTWFwVHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOwog
ICAgIH0KIAogICAgIHN0YXRpYyBKU1dlYWtNYXAqIGNyZWF0ZShWTSYgdm0sIFN0cnVjdHVyZSog
c3RydWN0dXJlKQpAQCAtNjIsNCArNjIsMTYgQEAgY2xhc3MgSlNXZWFrTWFwIGZpbmFsIDogcHVi
bGljIFdlYWtNYXBCYXNlIHsKICAgICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nTmFtZShjb25zdCBK
U09iamVjdCosIEV4ZWNTdGF0ZSopOwogfTsKIAoraW5saW5lIGJvb2wgaXNKU1dlYWtNYXAoSlND
ZWxsKiBmcm9tKQoreworICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc19maW5hbDxKU1dlYWtNYXA+
Ojp2YWx1ZSwgIiIpOworICAgIHJldHVybiBmcm9tLT50eXBlKCkgPT0gSlNXZWFrTWFwVHlwZTsK
K30KKworaW5saW5lIGJvb2wgaXNKU1dlYWtNYXAoSlNWYWx1ZSBmcm9tKQoreworICAgIHN0YXRp
Y19hc3NlcnQoc3RkOjppc19maW5hbDxKU1dlYWtNYXA+Ojp2YWx1ZSwgIiIpOworICAgIHJldHVy
biBmcm9tLmlzQ2VsbCgpICYmIGZyb20uYXNDZWxsKCktPnR5cGUoKSA9PSBKU1dlYWtNYXBUeXBl
OworfQorCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTV2Vha1NldC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNXZWFrU2V0LmgKaW5kZXggNzU3MGY0MmVkNzBmZmUwZWYyM2U0Yzc0NjY5ZWMxODY4YTY4ODQ2
MS4uMjI4YzAzNmIzYTI4NzA5NDk1MmVlYTEwOTA1YjUwYTBhMmM0NTQxMyAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNXZWFrU2V0LmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNXZWFrU2V0LmgKQEAgLTM4LDcgKzM4LDcgQEAgY2xhc3Mg
SlNXZWFrU2V0IGZpbmFsIDogcHVibGljIFdlYWtNYXBCYXNlIHsKIAogICAgIHN0YXRpYyBTdHJ1
Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIEpTVmFsdWUgcHJvdG90eXBlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6
Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwg
U3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOworICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVh
dGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhKU1dlYWtTZXRUeXBlLCBT
dHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7CiAgICAgfQogCiAgICAgc3RhdGljIEpTV2Vha1NldCog
Y3JlYXRlKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCkBAIC02Miw0ICs2MiwxNiBAQCBj
bGFzcyBKU1dlYWtTZXQgZmluYWwgOiBwdWJsaWMgV2Vha01hcEJhc2UgewogICAgIHN0YXRpYyBT
dHJpbmcgdG9TdHJpbmdOYW1lKGNvbnN0IEpTT2JqZWN0KiwgRXhlY1N0YXRlKik7CiB9OwogCitp
bmxpbmUgYm9vbCBpc0pTV2Vha1NldChKU0NlbGwqIGZyb20pCit7CisgICAgc3RhdGljX2Fzc2Vy
dChzdGQ6OmlzX2ZpbmFsPEpTV2Vha1NldD46OnZhbHVlLCAiIik7CisgICAgcmV0dXJuIGZyb20t
PnR5cGUoKSA9PSBKU1dlYWtTZXRUeXBlOworfQorCitpbmxpbmUgYm9vbCBpc0pTV2Vha1NldChK
U1ZhbHVlIGZyb20pCit7CisgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX2ZpbmFsPEpTV2Vha1Nl
dD46OnZhbHVlLCAiIik7CisgICAgcmV0dXJuIGZyb20uaXNDZWxsKCkgJiYgZnJvbS5hc0NlbGwo
KS0+dHlwZSgpID09IEpTV2Vha1NldFR5cGU7Cit9CisKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2Vha01hcEJhc2UuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2Vha01hcEJhc2UuY3BwCmluZGV4IDBlNTEw
NjFhOTQ2YTllMWQzODExYTdlYjI1M2Q4M2Y1YzI3NDBlMjAuLjRmOTI0OTY3MDAxMThjZjFjMWEy
ZGFkMjQ5ODZhOGNiZjg5NzNlZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1dlYWtNYXBCYXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9XZWFrTWFwQmFzZS5jcHAKQEAgLTcyLDE0ICs3Miw2IEBAIHZvaWQgV2Vha01hcEJhc2U6OnNl
dChWTSYgdm0sIEpTT2JqZWN0KiBrZXksIEpTVmFsdWUgdmFsdWUpCiAgICAgcmVzdWx0Lml0ZXJh
dG9yLT52YWx1ZS5zZXQodm0sIHRoaXMsIHZhbHVlKTsKIH0KIAotSlNWYWx1ZSBXZWFrTWFwQmFz
ZTo6Z2V0KEpTT2JqZWN0KiBrZXkpCi17Ci0gICAgYXV0byBpdGVyID0gbV9tYXAuZmluZChrZXkp
OwotICAgIGlmIChpdGVyID09IG1fbWFwLmVuZCgpKQotICAgICAgICByZXR1cm4ganNVbmRlZmlu
ZWQoKTsKLSAgICByZXR1cm4gaXRlci0+dmFsdWUuZ2V0KCk7Ci19Ci0KIGJvb2wgV2Vha01hcEJh
c2U6OnJlbW92ZShKU09iamVjdCoga2V5KQogewogICAgIHJldHVybiBtX21hcC5yZW1vdmUoa2V5
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dlYWtNYXBCYXNl
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XZWFrTWFwQmFzZS5oCmluZGV4IGUz
YmMyYWY0MTZmNGUyNGJjZDhjODQ1YmYxMDk3NWY1Yjk2NDBkNTkuLjRmYzU5N2RiODU0NjhlMjg2
ZDhiY2E1YmE1MzA5NDIxM2I2YjZmNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1dlYWtNYXBCYXNlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvV2Vha01hcEJhc2UuaApAQCAtNzAsNCArNzAsMTEgQEAgY2xhc3MgV2Vha01hcEJhc2UgOiBw
dWJsaWMgSlNEZXN0cnVjdGlibGVPYmplY3QgewogICAgIE1hcFR5cGUgbV9tYXA7CiB9OwogCitp
bmxpbmUgSlNWYWx1ZSBXZWFrTWFwQmFzZTo6Z2V0KEpTT2JqZWN0KiBrZXkpCit7CisgICAgaWYg
KGF1dG8gcmVzdWx0ID0gbV9tYXAuZmFzdEdldChrZXkpKQorICAgICAgICByZXR1cm4gcmVzdWx0
LmdldCgpOworICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBK
U0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dlYWtNYXBQcm90
b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2Vha01hcFByb3RvdHlw
ZS5jcHAKaW5kZXggOGZhODYyZWNkYmZhMDMyMmQ4NGQ4MDYyMmZkOWZhMDgyMWViZTUwNC4uODVk
NDFlNmYxMzEyYWU4ZDRmOTMzNGEyYzI3NDJlZWI5YjYyYmYwMSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2Vha01hcFByb3RvdHlwZS5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2Vha01hcFByb3RvdHlwZS5jcHAKQEAgLTQ2LDI1ICs0
NiwyNSBAQCB2b2lkIFdlYWtNYXBQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKICAgICB2bS5wcm90b3R5cGVNYXAuYWRkUHJvdG90
eXBlKHRoaXMpOwogCiAgICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04o
dm0ucHJvcGVydHlOYW1lcy0+ZGVsZXRlS2V5d29yZCwgcHJvdG9GdW5jV2Vha01hcERlbGV0ZSwg
RG9udEVudW0sIDEpOwotICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9O
KHZtLnByb3BlcnR5TmFtZXMtPmdldCwgcHJvdG9GdW5jV2Vha01hcEdldCwgRG9udEVudW0sIDEp
OworICAgIEpTQ19OQVRJVkVfSU5UUklOU0lDX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTih2
bS5wcm9wZXJ0eU5hbWVzLT5nZXQsIHByb3RvRnVuY1dlYWtNYXBHZXQsIERvbnRFbnVtLCAxLCBK
U1dlYWtNYXBHZXRJbnRyaW5zaWMpOwogICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9U
UkFOU0lUSU9OKHZtLnByb3BlcnR5TmFtZXMtPmhhcywgcHJvdG9GdW5jV2Vha01hcEhhcywgRG9u
dEVudW0sIDEpOwogICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKHZt
LnByb3BlcnR5TmFtZXMtPnNldCwgcHJvdG9GdW5jV2Vha01hcFNldCwgRG9udEVudW0sIDIpOwog
CiAgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPnRv
U3RyaW5nVGFnU3ltYm9sLCBqc1N0cmluZygmdm0sICJXZWFrTWFwIiksIERvbnRFbnVtIHwgUmVh
ZE9ubHkpOwogfQogCi1zdGF0aWMgSlNXZWFrTWFwKiBnZXRXZWFrTWFwKENhbGxGcmFtZSogY2Fs
bEZyYW1lLCBKU1ZhbHVlIHZhbHVlKQorQUxXQVlTX0lOTElORSBzdGF0aWMgSlNXZWFrTWFwKiBn
ZXRXZWFrTWFwKENhbGxGcmFtZSogY2FsbEZyYW1lLCBKU1ZhbHVlIHZhbHVlKQogewogICAgIFZN
JiB2bSA9IGNhbGxGcmFtZS0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19T
Q09QRSh2bSk7CiAKLSAgICBpZiAoIXZhbHVlLmlzT2JqZWN0KCkpIHsKKyAgICBpZiAoVU5MSUtF
TFkoIXZhbHVlLmlzT2JqZWN0KCkpKSB7CiAgICAgICAgIHRocm93VHlwZUVycm9yKGNhbGxGcmFt
ZSwgc2NvcGUsIFdURjo6QVNDSUlMaXRlcmFsKCJDYWxsZWQgV2Vha01hcCBmdW5jdGlvbiBvbiBu
b24tb2JqZWN0IikpOwogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKLSAgICBpZiAo
SlNXZWFrTWFwKiB3ZWFrTWFwID0ganNEeW5hbWljQ2FzdDxKU1dlYWtNYXAqPih2bSwgdmFsdWUp
KQotICAgICAgICByZXR1cm4gd2Vha01hcDsKKyAgICBpZiAoTElLRUxZKGlzSlNXZWFrTWFwKGFz
T2JqZWN0KHZhbHVlKSkpKQorICAgICAgICByZXR1cm4ganNDYXN0PEpTV2Vha01hcCo+KHZhbHVl
KTsKIAogICAgIHRocm93VHlwZUVycm9yKGNhbGxGcmFtZSwgc2NvcGUsIFdURjo6QVNDSUlMaXRl
cmFsKCJDYWxsZWQgV2Vha01hcCBmdW5jdGlvbiBvbiBhIG5vbi1XZWFrTWFwIG9iamVjdCIpKTsK
ICAgICByZXR1cm4gbnVsbHB0cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1dlYWtTZXRQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvV2Vha1NldFByb3RvdHlwZS5jcHAKaW5kZXggMjEzNGQ5ODZiZjIzYWU5ZjExY2M0MzcyOTA3
NDI3YzFmZmFiNjg1Yi4uYWE4MjQzMDk1ZDU1YTc1NGM4MWZlNDY5N2NkZDczZDMxODM1N2NhMyAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2Vha1NldFByb3RvdHlw
ZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2Vha1NldFByb3RvdHlw
ZS5jcHAKQEAgLTUxLDE4ICs1MSwxOCBAQCB2b2lkIFdlYWtTZXRQcm90b3R5cGU6OmZpbmlzaENy
ZWF0aW9uKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKICAgICBwdXREaXJl
Y3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+dG9TdHJpbmdUYWdTeW1i
b2wsIGpzU3RyaW5nKCZ2bSwgIldlYWtTZXQiKSwgRG9udEVudW0gfCBSZWFkT25seSk7CiB9CiAK
LXN0YXRpYyBKU1dlYWtTZXQqIGdldFdlYWtTZXQoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEpTVmFs
dWUgdmFsdWUpCitBTFdBWVNfSU5MSU5FIHN0YXRpYyBKU1dlYWtTZXQqIGdldFdlYWtTZXQoQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUsIEpTVmFsdWUgdmFsdWUpCiB7CiAgICAgVk0mIHZtID0gY2FsbEZy
YW1lLT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKIAot
ICAgIGlmICghdmFsdWUuaXNPYmplY3QoKSkgeworICAgIGlmIChVTkxJS0VMWSghdmFsdWUuaXNP
YmplY3QoKSkpIHsKICAgICAgICAgdGhyb3dUeXBlRXJyb3IoY2FsbEZyYW1lLCBzY29wZSwgV1RG
OjpBU0NJSUxpdGVyYWwoIkNhbGxlZCBXZWFrU2V0IGZ1bmN0aW9uIG9uIG5vbi1vYmplY3QiKSk7
CiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIAotICAgIGlmIChKU1dlYWtTZXQqIHdl
YWtTZXQgPSBqc0R5bmFtaWNDYXN0PEpTV2Vha1NldCo+KHZtLCB2YWx1ZSkpCi0gICAgICAgIHJl
dHVybiB3ZWFrU2V0OworICAgIGlmIChMSUtFTFkoaXNKU1dlYWtTZXQoYXNPYmplY3QodmFsdWUp
KSkpCisgICAgICAgIHJldHVybiBqc0Nhc3Q8SlNXZWFrU2V0Kj4odmFsdWUpOwogCiAgICAgdGhy
b3dUeXBlRXJyb3IoY2FsbEZyYW1lLCBzY29wZSwgV1RGOjpBU0NJSUxpdGVyYWwoIkNhbGxlZCBX
ZWFrU2V0IGZ1bmN0aW9uIG9uIGEgbm9uLVdlYWtTZXQgb2JqZWN0IikpOwogICAgIHJldHVybiBu
dWxscHRyOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9DaGFuZ2VMb2cgYi9KU1Rlc3RzL0NoYW5nZUxv
ZwppbmRleCAxNzQ4MDhiMWY4NjUxMzkyZTYwOTUwMmMwMmEyMmNlZDg1YTE1NTUxLi4yMjUwMWM4
ZGNkZmFjYjk5NDA0MjYwNDQzYTdhMTdhMWFhMTAwOTY4IDEwMDY0NAotLS0gYS9KU1Rlc3RzL0No
YW5nZUxvZworKysgYi9KU1Rlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE3LTA4
LTI2ICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgorCisgICAgICAgIFtE
RkddIE9wdGltaXplIFdlYWtNYXA6OmdldCBieSBhZGRpbmcgaW50cmluc2ljIGFuZCBmaXh1cAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc2MDEwCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBtaWNyb2Jl
bmNobWFya3Mvd2Vhay1tYXAta2V5LmpzOiBBZGRlZC4KKyAgICAgICAgKGFzc2VydCk6CisgICAg
ICAgIChvYmplY3RLZXkpOgorICAgICAgICAobGV0LnN0YXJ0LkRhdGUubm93KToKKwogMjAxNy0w
OC0yNSAgU2FhbSBCYXJhdGkgIDxzYmFyYXRpQGFwcGxlLmNvbT4KIAogICAgICAgICBTdXBwb3J0
IGNvbXBpbGluZyBjYXRjaCBpbiB0aGUgREZHCmRpZmYgLS1naXQgYS9KU1Rlc3RzL21pY3JvYmVu
Y2htYXJrcy93ZWFrLW1hcC1rZXkuanMgYi9KU1Rlc3RzL21pY3JvYmVuY2htYXJrcy93ZWFrLW1h
cC1rZXkuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uN2Y1M2NlYmMzN2I4MDkwNWQ2Yzc3MWMwYTYxNWE0YjhlN2Q3
ODMwMgotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvbWljcm9iZW5jaG1hcmtzL3dlYWstbWFw
LWtleS5qcwpAQCAtMCwwICsxLDM0IEBACitmdW5jdGlvbiBhc3NlcnQoYikgeworICAgIGlmICgh
YikKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJCYWQhIik7Cit9Citub0lubGluZShhc3NlcnQp
OworCitsZXQgd2Vha01hcCA9IG5ldyBXZWFrTWFwOworCitmdW5jdGlvbiBvYmplY3RLZXkobykg
eworICAgIHJldHVybiB3ZWFrTWFwLmdldChvKTsKK30KK25vSW5saW5lKG9iamVjdEtleSk7CisK
K2NvbnN0IGl0ZXJzID0gMzAwMDAwOworbGV0IHN0YXJ0ID0gRGF0ZS5ub3coKTsKKworeworICAg
IGxldCBvID0ge2Y6IDIwfTsKKyAgICB2YXIgYXJyYXkgPSBbXTsKKyAgICBmb3IgKHZhciBpID0g
MDsgaSA8IDEwOyBpKyspIHsKKyAgICAgICAgbGV0IG5ld09iamVjdCA9IHsgZjogaSB9OworICAg
ICAgICB3ZWFrTWFwLnNldChuZXdPYmplY3QsIGkpOworICAgICAgICBhcnJheVtpXSA9IG5ld09i
amVjdDsKKyAgICB9CisKKyAgICBmb3IgKHZhciBqID0gMDsgaiA8IGl0ZXJzOyArK2opIHsKKyAg
ICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCAxMDsgaSsrKQorICAgICAgICAgICAgYXNzZXJ0KG9i
amVjdEtleShhcnJheVtpXSkgPT09IGkpOworICAgIH0KK30KKworY29uc3QgdmVyYm9zZSA9IGZh
bHNlOworaWYgKHZlcmJvc2UpCisgICAgcHJpbnQoRGF0ZS5ub3coKSAtIHN0YXJ0KTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>319154</attachid>
            <date>2017-08-26 23:44:19 -0700</date>
            <delta_ts>2017-08-26 23:57:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-176010-20170827154418.patch</filename>
            <type>text/plain</type>
            <size>49526</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIxMjMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAx
ZmQ5NWExMGFiNTcwMGVhYmFlMWMxNmZkYzEwZmYyNzhiMzhhMDY1Li4zOTdiMzQ3Nzg3MmI1NWU5
YzE4YWIxNjMxZDFmZWZlNjQ3NGI0MmRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
NSArMSwxNTIgQEAKIDIwMTctMDgtMjYgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFp
bC5jb20+CiAKKyAgICAgICAgW0RGR10gT3B0aW1pemUgV2Vha01hcDo6Z2V0IGJ5IGFkZGluZyBp
bnRyaW5zaWMgYW5kIGZpeHVwCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNzYwMTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIGJ5dGVjb2RlL1NwZWN1bGF0ZWRUeXBlLmNwcDoKKyAgICAgICAgKEpTQzo6
ZHVtcFNwZWN1bGF0aW9uKToKKyAgICAgICAgKEpTQzo6c3BlY3VsYXRpb25Gcm9tQ2xhc3NJbmZv
KToKKyAgICAgICAgKEpTQzo6c3BlY3VsYXRpb25Gcm9tSlNUeXBlKToKKyAgICAgICAgKEpTQzo6
c3BlY3VsYXRpb25Gcm9tU3RyaW5nKToKKyAgICAgICAgKiBieXRlY29kZS9TcGVjdWxhdGVkVHlw
ZS5oOgorICAgICAgICAqIGRmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oOgorICAg
ICAgICAoSlNDOjpERkc6OkFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0ZVR5cGU+Ojpl
eGVjdXRlRWZmZWN0cyk6CisgICAgICAgICogZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcDoKKyAg
ICAgICAgKEpTQzo6REZHOjpCeXRlQ29kZVBhcnNlcjo6aGFuZGxlSW50cmluc2ljQ2FsbCk6Cisg
ICAgICAgICogZGZnL0RGR0Nsb2JiZXJpemUuaDoKKyAgICAgICAgKEpTQzo6REZHOjpjbG9iYmVy
aXplKToKKyAgICAgICAgKiBkZmcvREZHRG9lc0dDLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpk
b2VzR0MpOgorICAgICAgICAqIGRmZy9ERkdGaXh1cFBoYXNlLmNwcDoKKyAgICAgICAgKEpTQzo6
REZHOjpGaXh1cFBoYXNlOjpmaXh1cE5vZGUpOgorICAgICAgICAqIGRmZy9ERkdIZWFwTG9jYXRp
b24uaDoKKyAgICAgICAgKiBkZmcvREZHTm9kZS5oOgorICAgICAgICAoSlNDOjpERkc6Ok5vZGU6
Omhhc0hlYXBQcmVkaWN0aW9uKToKKyAgICAgICAgKiBkZmcvREZHTm9kZVR5cGUuaDoKKyAgICAg
ICAgKiBkZmcvREZHT3BlcmF0aW9ucy5jcHA6CisgICAgICAgICogZGZnL0RGR09wZXJhdGlvbnMu
aDoKKyAgICAgICAgKiBkZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwOgorICAg
ICAgICAqIGRmZy9ERkdTYWZlVG9FeGVjdXRlLmg6CisgICAgICAgIChKU0M6OkRGRzo6U2FmZVRv
RXhlY3V0ZUVkZ2U6Om9wZXJhdG9yKCkpOgorICAgICAgICAoSlNDOjpERkc6OnNhZmVUb0V4ZWN1
dGUpOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHA6CisgICAgICAgIChKU0M6
OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZVdlYWtNYXBPYmplY3QpOgorICAgICAgICAo
SlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGVXZWFrU2V0T2JqZWN0KToKKyAgICAg
ICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlKToKKyAgICAgICAgKEpTQzo6
REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVdlYWtNYXBHZXQpOgorICAgICAgICAqIGRmZy9E
RkdTcGVjdWxhdGl2ZUpJVC5oOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0
LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZSk6CisgICAg
ICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNw
ZWN1bGF0aXZlSklUOjpjb21waWxlKToKKyAgICAgICAgKiBkZmcvREZHVXNlS2luZC5jcHA6Cisg
ICAgICAgIChXVEY6OnByaW50SW50ZXJuYWwpOgorICAgICAgICAqIGRmZy9ERkdVc2VLaW5kLmg6
CisgICAgICAgIChKU0M6OkRGRzo6dHlwZUZpbHRlckZvcik6CisgICAgICAgIChKU0M6OkRGRzo6
aXNDZWxsKToKKyAgICAgICAgKiBmdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcDoKKyAgICAgICAgKEpT
Qzo6RlRMOjpjYW5Db21waWxlKToKKyAgICAgICAgKiBmdGwvRlRMTG93ZXJERkdUb0IzLmNwcDoK
KyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6Y29tcGlsZU5vZGUpOgorICAg
ICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjpjb21waWxlV2Vha01hcEdldCk6Cisg
ICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6Omxvd1dlYWtNYXBPYmplY3QpOgor
ICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjpsb3dXZWFrU2V0T2JqZWN0KToK
KyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6c3BlY3VsYXRlKToKKyAgICAg
ICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6c3BlY3VsYXRlV2Vha01hcE9iamVjdCk6
CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6OnNwZWN1bGF0ZVdlYWtTZXRP
YmplY3QpOgorICAgICAgICAqIHJ1bnRpbWUvSW50cmluc2ljLmNwcDoKKyAgICAgICAgKEpTQzo6
aW50cmluc2ljTmFtZSk6CisgICAgICAgICogcnVudGltZS9JbnRyaW5zaWMuaDoKKyAgICAgICAg
KiBydW50aW1lL0pTVHlwZS5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNXZWFrTWFwLmg6CisgICAg
ICAgIChKU0M6OmlzSlNXZWFrTWFwKToKKyAgICAgICAgKiBydW50aW1lL0pTV2Vha1NldC5oOgor
ICAgICAgICAoSlNDOjppc0pTV2Vha1NldCk6CisgICAgICAgICogcnVudGltZS9XZWFrTWFwQmFz
ZS5jcHA6CisgICAgICAgIChKU0M6OldlYWtNYXBCYXNlOjpnZXQpOiBEZWxldGVkLgorICAgICAg
ICAqIHJ1bnRpbWUvV2Vha01hcEJhc2UuaDoKKyAgICAgICAgKEpTQzo6V2Vha01hcEJhc2U6Omdl
dCk6CisgICAgICAgICogcnVudGltZS9XZWFrTWFwUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpT
Qzo6V2Vha01hcFByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAoSlNDOjpnZXRX
ZWFrTWFwKToKKyAgICAgICAgKiBydW50aW1lL1dlYWtTZXRQcm90b3R5cGUuY3BwOgorICAgICAg
ICAoSlNDOjpnZXRXZWFrU2V0KToKKworICAgICAgICAqIGJ5dGVjb2RlL1NwZWN1bGF0ZWRUeXBl
LmNwcDoKKyAgICAgICAgKEpTQzo6ZHVtcFNwZWN1bGF0aW9uKToKKyAgICAgICAgKEpTQzo6c3Bl
Y3VsYXRpb25Gcm9tQ2xhc3NJbmZvKToKKyAgICAgICAgKEpTQzo6c3BlY3VsYXRpb25Gcm9tSlNU
eXBlKToKKyAgICAgICAgKEpTQzo6c3BlY3VsYXRpb25Gcm9tU3RyaW5nKToKKyAgICAgICAgKiBi
eXRlY29kZS9TcGVjdWxhdGVkVHlwZS5oOgorICAgICAgICAqIGRmZy9ERkdBYnN0cmFjdEludGVy
cHJldGVySW5saW5lcy5oOgorICAgICAgICAoSlNDOjpERkc6OkFic3RyYWN0SW50ZXJwcmV0ZXI8
QWJzdHJhY3RTdGF0ZVR5cGU+OjpleGVjdXRlRWZmZWN0cyk6CisgICAgICAgICogZGZnL0RGR0J5
dGVDb2RlUGFyc2VyLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpCeXRlQ29kZVBhcnNlcjo6aGFu
ZGxlSW50cmluc2ljQ2FsbCk6CisgICAgICAgICogZGZnL0RGR0Nsb2JiZXJpemUuaDoKKyAgICAg
ICAgKEpTQzo6REZHOjpjbG9iYmVyaXplKToKKyAgICAgICAgKiBkZmcvREZHRG9lc0dDLmNwcDoK
KyAgICAgICAgKEpTQzo6REZHOjpkb2VzR0MpOgorICAgICAgICAqIGRmZy9ERkdGaXh1cFBoYXNl
LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpGaXh1cFBoYXNlOjpmaXh1cE5vZGUpOgorICAgICAg
ICAqIGRmZy9ERkdIZWFwTG9jYXRpb24uY3BwOgorICAgICAgICAoV1RGOjpwcmludEludGVybmFs
KToKKyAgICAgICAgKiBkZmcvREZHSGVhcExvY2F0aW9uLmg6CisgICAgICAgICogZGZnL0RGR05v
ZGUuaDoKKyAgICAgICAgKEpTQzo6REZHOjpOb2RlOjpoYXNIZWFwUHJlZGljdGlvbik6CisgICAg
ICAgICogZGZnL0RGR05vZGVUeXBlLmg6CisgICAgICAgICogZGZnL0RGR09wZXJhdGlvbnMuY3Bw
OgorICAgICAgICAqIGRmZy9ERkdPcGVyYXRpb25zLmg6CisgICAgICAgICogZGZnL0RGR1ByZWRp
Y3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcDoKKyAgICAgICAgKiBkZmcvREZHU2FmZVRvRXhlY3V0
ZS5oOgorICAgICAgICAoSlNDOjpERkc6OlNhZmVUb0V4ZWN1dGVFZGdlOjpvcGVyYXRvcigpKToK
KyAgICAgICAgKEpTQzo6REZHOjpzYWZlVG9FeGVjdXRlKToKKyAgICAgICAgKiBkZmcvREZHU3Bl
Y3VsYXRpdmVKSVQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpzcGVj
dWxhdGVXZWFrTWFwT2JqZWN0KToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6
c3BlY3VsYXRlV2Vha1NldE9iamVjdCk6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVK
SVQ6OnNwZWN1bGF0ZSk6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBp
bGVXZWFrTWFwR2V0KToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQuaDoKKyAgICAg
ICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6
U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUpOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJ
VDY0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZSk6Cisg
ICAgICAgICogZGZnL0RGR1VzZUtpbmQuY3BwOgorICAgICAgICAoV1RGOjpwcmludEludGVybmFs
KToKKyAgICAgICAgKiBkZmcvREZHVXNlS2luZC5oOgorICAgICAgICAoSlNDOjpERkc6OnR5cGVG
aWx0ZXJGb3IpOgorICAgICAgICAoSlNDOjpERkc6OmlzQ2VsbCk6CisgICAgICAgICogZnRsL0ZU
TENhcGFiaWxpdGllcy5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6Y2FuQ29tcGlsZSk6CisgICAg
ICAgICogZnRsL0ZUTExvd2VyREZHVG9CMy5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpM
b3dlckRGR1RvQjM6OmNvbXBpbGVOb2RlKToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2Vy
REZHVG9CMzo6Y29tcGlsZVdlYWtNYXBHZXQpOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93
ZXJERkdUb0IzOjpsb3dXZWFrTWFwT2JqZWN0KToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxv
d2VyREZHVG9CMzo6bG93V2Vha1NldE9iamVjdCk6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpM
b3dlckRGR1RvQjM6OnNwZWN1bGF0ZSk6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRG
R1RvQjM6OnNwZWN1bGF0ZVdlYWtNYXBPYmplY3QpOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6
TG93ZXJERkdUb0IzOjpzcGVjdWxhdGVXZWFrU2V0T2JqZWN0KToKKyAgICAgICAgKiBydW50aW1l
L0ludHJpbnNpYy5jcHA6CisgICAgICAgIChKU0M6OmludHJpbnNpY05hbWUpOgorICAgICAgICAq
IHJ1bnRpbWUvSW50cmluc2ljLmg6CisgICAgICAgICogcnVudGltZS9KU1R5cGUuaDoKKyAgICAg
ICAgKiBydW50aW1lL0pTV2Vha01hcC5oOgorICAgICAgICAoSlNDOjppc0pTV2Vha01hcCk6Cisg
ICAgICAgICogcnVudGltZS9KU1dlYWtTZXQuaDoKKyAgICAgICAgKEpTQzo6aXNKU1dlYWtTZXQp
OgorICAgICAgICAqIHJ1bnRpbWUvV2Vha01hcEJhc2UuY3BwOgorICAgICAgICAoSlNDOjpXZWFr
TWFwQmFzZTo6Z2V0KTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL1dlYWtNYXBCYXNlLmg6
CisgICAgICAgIChKU0M6OldlYWtNYXBCYXNlOjpnZXQpOgorICAgICAgICAqIHJ1bnRpbWUvV2Vh
a01hcFByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OldlYWtNYXBQcm90b3R5cGU6OmZpbmlz
aENyZWF0aW9uKToKKyAgICAgICAgKEpTQzo6Z2V0V2Vha01hcCk6CisgICAgICAgICogcnVudGlt
ZS9XZWFrU2V0UHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6Z2V0V2Vha1NldCk6CisKKzIw
MTctMDgtMjYgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CisKICAgICAg
ICAgVW5yZXZpZXdlZCwgc3VwcHJlc3Mgd2FybmluZ3MgaW4gR1RLIHBvcnQKIAogICAgICAgICBU
aGUgImJsb2NrIiB2YXJpYWJsZSBoaWRlcyB0aGUgYXJndW1lbnQgdmFyaWFibGUuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3BlY3VsYXRlZFR5cGUuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1NwZWN1bGF0ZWRUeXBlLmNwcAppbmRleCBj
YTI1OTQ3MzcwZjg1MjFhMDNmMmQxNWVmOTVmNzA1NGVmYzVkMGRmLi5iZTllNjgwMWE2NTVhOTk4
MGJkZDYyYjQwZmYyMmM1NmM1NmJjNGJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvU3BlY3VsYXRlZFR5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9TcGVjdWxhdGVkVHlwZS5jcHAKQEAgLTM1LDYgKzM1LDggQEAKICNpbmNsdWRl
ICJKU0Z1bmN0aW9uLmgiCiAjaW5jbHVkZSAiSlNNYXAuaCIKICNpbmNsdWRlICJKU1NldC5oIgor
I2luY2x1ZGUgIkpTV2Vha01hcC5oIgorI2luY2x1ZGUgIkpTV2Vha1NldC5oIgogI2luY2x1ZGUg
IlByb3h5T2JqZWN0LmgiCiAjaW5jbHVkZSAiUmVnRXhwT2JqZWN0LmgiCiAjaW5jbHVkZSAiU2Nv
cGVkQXJndW1lbnRzLmgiCkBAIC0xODAsNiArMTgyLDE2IEBAIHZvaWQgZHVtcFNwZWN1bGF0aW9u
KFByaW50U3RyZWFtJiBvdXRTdHJlYW0sIFNwZWN1bGF0ZWRUeXBlIHZhbHVlKQogICAgICAgICAg
ICAgZWxzZQogICAgICAgICAgICAgICAgIGlzVG9wID0gZmFsc2U7CiAKKyAgICAgICAgICAgIGlm
ICh2YWx1ZSAmIFNwZWNXZWFrTWFwT2JqZWN0KQorICAgICAgICAgICAgICAgIHN0ck91dC5wcmlu
dCgiV2Vha01hcE9iamVjdCIpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGlz
VG9wID0gZmFsc2U7CisKKyAgICAgICAgICAgIGlmICh2YWx1ZSAmIFNwZWNXZWFrU2V0T2JqZWN0
KQorICAgICAgICAgICAgICAgIHN0ck91dC5wcmludCgiV2Vha1NldE9iamVjdCIpOworICAgICAg
ICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGlzVG9wID0gZmFsc2U7CisKICAgICAgICAgICAg
IGlmICh2YWx1ZSAmIFNwZWNQcm94eU9iamVjdCkKICAgICAgICAgICAgICAgICBzdHJPdXQucHJp
bnQoIlByb3h5T2JqZWN0Iik7CiAgICAgICAgICAgICBlbHNlCkBAIC00MDIsNiArNDE0LDEyIEBA
IFNwZWN1bGF0ZWRUeXBlIHNwZWN1bGF0aW9uRnJvbUNsYXNzSW5mbyhjb25zdCBDbGFzc0luZm8q
IGNsYXNzSW5mbykKICAgICBpZiAoY2xhc3NJbmZvID09IEpTU2V0OjppbmZvKCkpCiAgICAgICAg
IHJldHVybiBTcGVjU2V0T2JqZWN0OwogCisgICAgaWYgKGNsYXNzSW5mbyA9PSBKU1dlYWtNYXA6
OmluZm8oKSkKKyAgICAgICAgcmV0dXJuIFNwZWNXZWFrTWFwT2JqZWN0OworCisgICAgaWYgKGNs
YXNzSW5mbyA9PSBKU1dlYWtTZXQ6OmluZm8oKSkKKyAgICAgICAgcmV0dXJuIFNwZWNXZWFrU2V0
T2JqZWN0OworCiAgICAgaWYgKGNsYXNzSW5mbyA9PSBQcm94eU9iamVjdDo6aW5mbygpKQogICAg
ICAgICByZXR1cm4gU3BlY1Byb3h5T2JqZWN0OwogICAgIApAQCAtNTIwLDYgKzUzOCwxMCBAQCBT
cGVjdWxhdGVkVHlwZSBzcGVjdWxhdGlvbkZyb21KU1R5cGUoSlNUeXBlIHR5cGUpCiAgICAgICAg
IHJldHVybiBTcGVjTWFwT2JqZWN0OwogICAgIGNhc2UgSlNTZXRUeXBlOgogICAgICAgICByZXR1
cm4gU3BlY1NldE9iamVjdDsKKyAgICBjYXNlIEpTV2Vha01hcFR5cGU6CisgICAgICAgIHJldHVy
biBTcGVjV2Vha01hcE9iamVjdDsKKyAgICBjYXNlIEpTV2Vha1NldFR5cGU6CisgICAgICAgIHJl
dHVybiBTcGVjV2Vha1NldE9iamVjdDsKICAgICBkZWZhdWx0OgogICAgICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKICAgICB9CkBAIC03MDEsNiArNzIzLDEwIEBAIFNwZWN1bGF0ZWRUeXBlIHNw
ZWN1bGF0aW9uRnJvbVN0cmluZyhjb25zdCBjaGFyKiBzcGVjdWxhdGlvbikKICAgICAgICAgcmV0
dXJuIFNwZWNNYXBPYmplY3Q7CiAgICAgaWYgKCFzdHJuY21wKHNwZWN1bGF0aW9uLCAiU3BlY1Nl
dE9iamVjdCIsIHN0cmxlbigiU3BlY1NldE9iamVjdCIpKSkKICAgICAgICAgcmV0dXJuIFNwZWNT
ZXRPYmplY3Q7CisgICAgaWYgKCFzdHJuY21wKHNwZWN1bGF0aW9uLCAiU3BlY1dlYWtNYXBPYmpl
Y3QiLCBzdHJsZW4oIlNwZWNXZWFrTWFwT2JqZWN0IikpKQorICAgICAgICByZXR1cm4gU3BlY1dl
YWtNYXBPYmplY3Q7CisgICAgaWYgKCFzdHJuY21wKHNwZWN1bGF0aW9uLCAiU3BlY1dlYWtTZXRP
YmplY3QiLCBzdHJsZW4oIlNwZWNXZWFrU2V0T2JqZWN0IikpKQorICAgICAgICByZXR1cm4gU3Bl
Y1dlYWtTZXRPYmplY3Q7CiAgICAgaWYgKCFzdHJuY21wKHNwZWN1bGF0aW9uLCAiU3BlY1Byb3h5
T2JqZWN0Iiwgc3RybGVuKCJTcGVjUHJveHlPYmplY3QiKSkpCiAgICAgICAgIHJldHVybiBTcGVj
UHJveHlPYmplY3Q7CiAgICAgaWYgKCFzdHJuY21wKHNwZWN1bGF0aW9uLCAiU3BlY0Rlcml2ZWRB
cnJheSIsIHN0cmxlbigiU3BlY0Rlcml2ZWRBcnJheSIpKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TcGVjdWxhdGVkVHlwZS5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL1NwZWN1bGF0ZWRUeXBlLmgKaW5kZXggYmU4OTJmMjY5YTViMWI0ZDIz
M2E2ZmIzMGQ2YjE4ZjU2MjRkYzA4Mi4uNzVlNDQyZDc5MzNmZDVhZmRjZjRlYmE1MDY2ZTA2YTIz
ZjJjNWNhMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1NwZWN1
bGF0ZWRUeXBlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1NwZWN1bGF0
ZWRUeXBlLmgKQEAgLTU4LDI2ICs1OCwyOCBAQCBzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUg
U3BlY1N0cmluZ09iamVjdCAgICAgICA9IDF1bGwgPDwgMTQ7IC8vIEl0J3MgZGVmaW5pdAogc3Rh
dGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNSZWdFeHBPYmplY3QgICAgICAgPSAxdWxsIDw8
IDE1OyAvLyBJdCdzIGRlZmluaXRlbHkgYSBSZWdFeHBPYmplY3QgKGFuZCBub3QgYW55IHN1YmNs
YXNzIG9mIFJlZ0V4cE9iamVjdCkuCiBzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY01h
cE9iamVjdCAgICAgICAgICA9IDF1bGwgPDwgMTY7IC8vIEl0J3MgZGVmaW5pdGVseSBhIE1hcCBv
YmplY3Qgb3Igb25lIG9mIGl0cyBzdWJjbGFzc2VzLgogc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRU
eXBlIFNwZWNTZXRPYmplY3QgICAgICAgICAgPSAxdWxsIDw8IDE3OyAvLyBJdCdzIGRlZmluaXRl
bHkgYSBTZXQgb2JqZWN0IG9yIG9uZSBvZiBpdHMgc3ViY2xhc3Nlcy4KLXN0YXRpYyBjb25zdCBT
cGVjdWxhdGVkVHlwZSBTcGVjUHJveHlPYmplY3QgICAgICAgID0gMXVsbCA8PCAxODsgLy8gSXQn
cyBkZWZpbml0ZWx5IGEgUHJveHkgb2JqZWN0IG9yIG9uZSBvZiBpdHMgc3ViY2xhc3Nlcy4KLXN0
YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjRGVyaXZlZEFycmF5ICAgICAgID0gMXVsbCA8
PCAxOTsgLy8gSXQncyBkZWZpbml0ZWx5IGEgRGVyaXZlZEFycmF5IG9iamVjdC4KLXN0YXRpYyBj
b25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjT2JqZWN0T3RoZXIgICAgICAgID0gMXVsbCA8PCAyMDsg
Ly8gSXQncyBkZWZpbml0ZWx5IGFuIG9iamVjdCBidXQgbm90IEpTRmluYWxPYmplY3QsIEpTQXJy
YXksIG9yIEpTRnVuY3Rpb24uCi1zdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY09iamVj
dCAgICAgICAgICAgICA9IFNwZWNGaW5hbE9iamVjdCB8IFNwZWNBcnJheSB8IFNwZWNGdW5jdGlv
biB8IFNwZWNUeXBlZEFycmF5VmlldyB8IFNwZWNEaXJlY3RBcmd1bWVudHMgfCBTcGVjU2NvcGVk
QXJndW1lbnRzIHwgU3BlY1N0cmluZ09iamVjdCB8IFNwZWNSZWdFeHBPYmplY3QgfCBTcGVjTWFw
T2JqZWN0IHwgU3BlY1NldE9iamVjdCB8IFNwZWNQcm94eU9iamVjdCB8IFNwZWNEZXJpdmVkQXJy
YXkgfCBTcGVjT2JqZWN0T3RoZXI7IC8vIEJpdG1hc2sgdXNlZCBmb3IgdGVzdGluZyBmb3IgYW55
IGtpbmQgb2Ygb2JqZWN0IHByZWRpY3Rpb24uCi1zdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUg
U3BlY1N0cmluZ0lkZW50ICAgICAgICA9IDF1bGwgPDwgMjE7IC8vIEl0J3MgZGVmaW5pdGVseSBh
IEpTU3RyaW5nLCBhbmQgaXQncyBhbiBpZGVudGlmaWVyLgotc3RhdGljIGNvbnN0IFNwZWN1bGF0
ZWRUeXBlIFNwZWNTdHJpbmdWYXIgICAgICAgICAgPSAxdWxsIDw8IDIyOyAvLyBJdCdzIGRlZmlu
aXRlbHkgYSBKU1N0cmluZywgYW5kIGl0J3Mgbm90IGFuIGlkZW50aWZpZXIuCitzdGF0aWMgY29u
c3QgU3BlY3VsYXRlZFR5cGUgU3BlY1dlYWtNYXBPYmplY3QgICAgICA9IDF1bGwgPDwgMTg7IC8v
IEl0J3MgZGVmaW5pdGVseSBhIFdlYWtNYXAgb2JqZWN0IG9yIG9uZSBvZiBpdHMgc3ViY2xhc3Nl
cy4KK3N0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjV2Vha1NldE9iamVjdCAgICAgID0g
MXVsbCA8PCAxOTsgLy8gSXQncyBkZWZpbml0ZWx5IGEgV2Vha1NldCBvYmplY3Qgb3Igb25lIG9m
IGl0cyBzdWJjbGFzc2VzLgorc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNQcm94eU9i
amVjdCAgICAgICAgPSAxdWxsIDw8IDIwOyAvLyBJdCdzIGRlZmluaXRlbHkgYSBQcm94eSBvYmpl
Y3Qgb3Igb25lIG9mIGl0cyBzdWJjbGFzc2VzLgorc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBl
IFNwZWNEZXJpdmVkQXJyYXkgICAgICAgPSAxdWxsIDw8IDIxOyAvLyBJdCdzIGRlZmluaXRlbHkg
YSBEZXJpdmVkQXJyYXkgb2JqZWN0Lgorc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNP
YmplY3RPdGhlciAgICAgICAgPSAxdWxsIDw8IDIyOyAvLyBJdCdzIGRlZmluaXRlbHkgYW4gb2Jq
ZWN0IGJ1dCBub3QgSlNGaW5hbE9iamVjdCwgSlNBcnJheSwgb3IgSlNGdW5jdGlvbi4KK3N0YXRp
YyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjT2JqZWN0ICAgICAgICAgICAgID0gU3BlY0ZpbmFs
T2JqZWN0IHwgU3BlY0FycmF5IHwgU3BlY0Z1bmN0aW9uIHwgU3BlY1R5cGVkQXJyYXlWaWV3IHwg
U3BlY0RpcmVjdEFyZ3VtZW50cyB8IFNwZWNTY29wZWRBcmd1bWVudHMgfCBTcGVjU3RyaW5nT2Jq
ZWN0IHwgU3BlY1JlZ0V4cE9iamVjdCB8IFNwZWNNYXBPYmplY3QgfCBTcGVjU2V0T2JqZWN0IHwg
U3BlY1dlYWtNYXBPYmplY3QgfCBTcGVjV2Vha1NldE9iamVjdCB8IFNwZWNQcm94eU9iamVjdCB8
IFNwZWNEZXJpdmVkQXJyYXkgfCBTcGVjT2JqZWN0T3RoZXI7IC8vIEJpdG1hc2sgdXNlZCBmb3Ig
dGVzdGluZyBmb3IgYW55IGtpbmQgb2Ygb2JqZWN0IHByZWRpY3Rpb24uCitzdGF0aWMgY29uc3Qg
U3BlY3VsYXRlZFR5cGUgU3BlY1N0cmluZ0lkZW50ICAgICAgICA9IDF1bGwgPDwgMjM7IC8vIEl0
J3MgZGVmaW5pdGVseSBhIEpTU3RyaW5nLCBhbmQgaXQncyBhbiBpZGVudGlmaWVyLgorc3RhdGlj
IGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNTdHJpbmdWYXIgICAgICAgICAgPSAxdWxsIDw8IDI0
OyAvLyBJdCdzIGRlZmluaXRlbHkgYSBKU1N0cmluZywgYW5kIGl0J3Mgbm90IGFuIGlkZW50aWZp
ZXIuCiBzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY1N0cmluZyAgICAgICAgICAgICA9
IFNwZWNTdHJpbmdJZGVudCB8IFNwZWNTdHJpbmdWYXI7IC8vIEl0J3MgZGVmaW5pdGVseSBhIEpT
U3RyaW5nLgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNTeW1ib2wgICAgICAgICAg
ICAgPSAxdWxsIDw8IDIzOyAvLyBJdCdzIGRlZmluaXRlbHkgYSBTeW1ib2wuCi1zdGF0aWMgY29u
c3QgU3BlY3VsYXRlZFR5cGUgU3BlY0NlbGxPdGhlciAgICAgICAgICA9IDF1bGwgPDwgMjQ7IC8v
IEl0J3MgZGVmaW5pdGVseSBhIEpTQ2VsbCBidXQgbm90IGEgc3ViY2xhc3Mgb2YgSlNPYmplY3Qg
YW5kIGRlZmluaXRlbHkgbm90IGEgSlNTdHJpbmcgb3IgYSBTeW1ib2wuCitzdGF0aWMgY29uc3Qg
U3BlY3VsYXRlZFR5cGUgU3BlY1N5bWJvbCAgICAgICAgICAgICA9IDF1bGwgPDwgMjU7IC8vIEl0
J3MgZGVmaW5pdGVseSBhIFN5bWJvbC4KK3N0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVj
Q2VsbE90aGVyICAgICAgICAgID0gMXVsbCA8PCAyNjsgLy8gSXQncyBkZWZpbml0ZWx5IGEgSlND
ZWxsIGJ1dCBub3QgYSBzdWJjbGFzcyBvZiBKU09iamVjdCBhbmQgZGVmaW5pdGVseSBub3QgYSBK
U1N0cmluZyBvciBhIFN5bWJvbC4KIHN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjQ2Vs
bCAgICAgICAgICAgICAgID0gU3BlY09iamVjdCB8IFNwZWNTdHJpbmcgfCBTcGVjU3ltYm9sIHwg
U3BlY0NlbGxPdGhlcjsgLy8gSXQncyBkZWZpbml0ZWx5IGEgSlNDZWxsLgotc3RhdGljIGNvbnN0
IFNwZWN1bGF0ZWRUeXBlIFNwZWNCb29sSW50MzIgICAgICAgICAgPSAxdWxsIDw8IDI1OyAvLyBJ
dCdzIGRlZmluaXRlbHkgYW4gSW50MzIgd2l0aCB2YWx1ZSAwIG9yIDEuCi1zdGF0aWMgY29uc3Qg
U3BlY3VsYXRlZFR5cGUgU3BlY05vbkJvb2xJbnQzMiAgICAgICA9IDF1bGwgPDwgMjY7IC8vIEl0
J3MgZGVmaW5pdGVseSBhbiBJbnQzMiB3aXRoIHZhbHVlIG90aGVyIHRoYW4gMCBvciAxLgorc3Rh
dGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNCb29sSW50MzIgICAgICAgICAgPSAxdWxsIDw8
IDI3OyAvLyBJdCdzIGRlZmluaXRlbHkgYW4gSW50MzIgd2l0aCB2YWx1ZSAwIG9yIDEuCitzdGF0
aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY05vbkJvb2xJbnQzMiAgICAgICA9IDF1bGwgPDwg
Mjg7IC8vIEl0J3MgZGVmaW5pdGVseSBhbiBJbnQzMiB3aXRoIHZhbHVlIG90aGVyIHRoYW4gMCBv
ciAxLgogc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNJbnQzMk9ubHkgICAgICAgICAg
PSBTcGVjQm9vbEludDMyIHwgU3BlY05vbkJvb2xJbnQzMjsgLy8gSXQncyBkZWZpbml0ZWx5IGFu
IEludDMyLgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNJbnQ1Mk9ubHkgICAgICAg
ICAgPSAxdWxsIDw8IDI3OyAvLyBJdCdzIGRlZmluaXRlbHkgYW4gSW50NTIgYW5kIHdlIGludGVu
ZCBpdCB0byB1bmJveCBpdC4gSXQncyBhbHNvIGRlZmluaXRlbHkgbm90IGFuIEludDMyLgorc3Rh
dGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNJbnQ1Mk9ubHkgICAgICAgICAgPSAxdWxsIDw8
IDI5OyAvLyBJdCdzIGRlZmluaXRlbHkgYW4gSW50NTIgYW5kIHdlIGludGVuZCBpdCB0byB1bmJv
eCBpdC4gSXQncyBhbHNvIGRlZmluaXRlbHkgbm90IGFuIEludDMyLgogc3RhdGljIGNvbnN0IFNw
ZWN1bGF0ZWRUeXBlIFNwZWNBbnlJbnQgICAgICAgICAgICAgPSBTcGVjSW50MzJPbmx5IHwgU3Bl
Y0ludDUyT25seTsgLy8gSXQncyBzb21ldGhpbmcgdGhhdCB3ZSBjYW4gZG8gbWFjaGluZSBpbnQg
YXJpdGhtZXRpYyBvbi4KLXN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjQW55SW50QXNE
b3VibGUgICAgID0gMXVsbCA8PCAyODsgLy8gSXQncyBkZWZpbml0ZWx5IGFuIEludDUyIGFuZCBp
dCdzIGluc2lkZSBhIGRvdWJsZS4KLXN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjTm9u
SW50QXNEb3VibGUgICAgID0gMXVsbCA8PCAyOTsgLy8gSXQncyBkZWZpbml0ZWx5IG5vdCBhbiBJ
bnQ1MiBidXQgaXQncyBhIHJlYWwgbnVtYmVyIGFuZCBpdCdzIGEgZG91YmxlLgorc3RhdGljIGNv
bnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNBbnlJbnRBc0RvdWJsZSAgICAgPSAxdWxsIDw8IDMwOyAv
LyBJdCdzIGRlZmluaXRlbHkgYW4gSW50NTIgYW5kIGl0J3MgaW5zaWRlIGEgZG91YmxlLgorc3Rh
dGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNOb25JbnRBc0RvdWJsZSAgICAgPSAxdWxsIDw8
IDMxOyAvLyBJdCdzIGRlZmluaXRlbHkgbm90IGFuIEludDUyIGJ1dCBpdCdzIGEgcmVhbCBudW1i
ZXIgYW5kIGl0J3MgYSBkb3VibGUuCiBzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0Rv
dWJsZVJlYWwgICAgICAgICA9IFNwZWNOb25JbnRBc0RvdWJsZSB8IFNwZWNBbnlJbnRBc0RvdWJs
ZTsgLy8gSXQncyBkZWZpbml0ZWx5IGEgbm9uLU5hTiBkb3VibGUuCi1zdGF0aWMgY29uc3QgU3Bl
Y3VsYXRlZFR5cGUgU3BlY0RvdWJsZVB1cmVOYU4gICAgICA9IDF1bGwgPDwgMzA7IC8vIEl0J3Mg
ZGVmaW5pdGVseSBhIE5hTiB0aGF0IGlzIHNhZmUgdG8gdGFnIChpLmUuIHB1cmUpLgotc3RhdGlj
IGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNEb3VibGVJbXB1cmVOYU4gICAgPSAxdWxsIDw8IDMx
OyAvLyBJdCdzIGRlZmluaXRlbHkgYSBOYU4gdGhhdCBpcyB1bnNhZmUgdG8gdGFnIChpLmUuIGlt
cHVyZSkuCitzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0RvdWJsZVB1cmVOYU4gICAg
ICA9IDF1bGwgPDwgMzI7IC8vIEl0J3MgZGVmaW5pdGVseSBhIE5hTiB0aGF0IGlzIHNhZmUgdG8g
dGFnIChpLmUuIHB1cmUpLgorc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNEb3VibGVJ
bXB1cmVOYU4gICAgPSAxdWxsIDw8IDMzOyAvLyBJdCdzIGRlZmluaXRlbHkgYSBOYU4gdGhhdCBp
cyB1bnNhZmUgdG8gdGFnIChpLmUuIGltcHVyZSkuCiBzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5
cGUgU3BlY0RvdWJsZU5hTiAgICAgICAgICA9IFNwZWNEb3VibGVQdXJlTmFOIHwgU3BlY0RvdWJs
ZUltcHVyZU5hTjsgLy8gSXQncyBkZWZpbml0ZWx5IHNvbWUga2luZCBvZiBOYU4uCiBzdGF0aWMg
Y29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0J5dGVjb2RlRG91YmxlICAgICA9IFNwZWNEb3VibGVS
ZWFsIHwgU3BlY0RvdWJsZVB1cmVOYU47IC8vIEl0J3MgZWl0aGVyIGEgbm9uLU5hTiBvciBhIE5h
TiBkb3VibGUsIGJ1dCBpdCdzIGRlZmluaXRlbHkgbm90IGltcHVyZSBOYU4uCiBzdGF0aWMgY29u
c3QgU3BlY3VsYXRlZFR5cGUgU3BlY0Z1bGxEb3VibGUgICAgICAgICA9IFNwZWNEb3VibGVSZWFs
IHwgU3BlY0RvdWJsZU5hTjsgLy8gSXQncyBlaXRoZXIgYSBub24tTmFOIG9yIGEgTmFOIGRvdWJs
ZS4KQEAgLTg1LDEyICs4NywxMiBAQCBzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0J5
dGVjb2RlUmVhbE51bWJlciA9IFNwZWNJbnQzMk9ubHkgfCBTcGVjRG91YmxlUgogc3RhdGljIGNv
bnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNGdWxsUmVhbE51bWJlciAgICAgPSBTcGVjQW55SW50IHwg
U3BlY0RvdWJsZVJlYWw7IC8vIEl0J3MgZWl0aGVyIGFuIEludDMyIG9yIGEgRG91YmxlUmVhbCwg
b3IgYSBJbnQ1Mi4KIHN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjQnl0ZWNvZGVOdW1i
ZXIgICAgID0gU3BlY0ludDMyT25seSB8IFNwZWNCeXRlY29kZURvdWJsZTsgLy8gSXQncyBlaXRo
ZXIgYW4gSW50MzIgb3IgYSBEb3VibGUsIGFuZCB0aGUgRG91YmxlIGNhbm5vdCBiZSBhbiBpbXB1
cmUgTmFOLgogc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNGdWxsTnVtYmVyICAgICAg
ICAgPSBTcGVjQW55SW50IHwgU3BlY0Z1bGxEb3VibGU7IC8vIEl0J3MgZWl0aGVyIGFuIEludDMy
LCBJbnQ1Miwgb3IgYSBEb3VibGUsIGFuZCB0aGUgRG91YmxlIGNhbiBiZSBpbXB1cmUgTmFOLgot
c3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNCb29sZWFuICAgICAgICAgICAgPSAxdWxs
IDw8IDMyOyAvLyBJdCdzIGRlZmluaXRlbHkgYSBCb29sZWFuLgotc3RhdGljIGNvbnN0IFNwZWN1
bGF0ZWRUeXBlIFNwZWNPdGhlciAgICAgICAgICAgICAgPSAxdWxsIDw8IDMzOyAvLyBJdCdzIGRl
ZmluaXRlbHkgZWl0aGVyIE51bGwgb3IgVW5kZWZpbmVkLgorc3RhdGljIGNvbnN0IFNwZWN1bGF0
ZWRUeXBlIFNwZWNCb29sZWFuICAgICAgICAgICAgPSAxdWxsIDw8IDM0OyAvLyBJdCdzIGRlZmlu
aXRlbHkgYSBCb29sZWFuLgorc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNPdGhlciAg
ICAgICAgICAgICAgPSAxdWxsIDw8IDM1OyAvLyBJdCdzIGRlZmluaXRlbHkgZWl0aGVyIE51bGwg
b3IgVW5kZWZpbmVkLgogc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNNaXNjICAgICAg
ICAgICAgICAgPSBTcGVjQm9vbGVhbiB8IFNwZWNPdGhlcjsgLy8gSXQncyBkZWZpbml0ZWx5IGVp
dGhlciBhIGJvb2xlYW4sIE51bGwsIG9yIFVuZGVmaW5lZC4KIHN0YXRpYyBjb25zdCBTcGVjdWxh
dGVkVHlwZSBTcGVjSGVhcFRvcCAgICAgICAgICAgID0gU3BlY0NlbGwgfCBTcGVjQnl0ZWNvZGVO
dW1iZXIgfCBTcGVjTWlzYzsgLy8gSXQgY2FuIGJlIGFueSBvZiB0aGUgYWJvdmUsIGV4Y2VwdCBm
b3IgU3BlY0ludDUyT25seSBhbmQgU3BlY0RvdWJsZUltcHVyZU5hTi4KIHN0YXRpYyBjb25zdCBT
cGVjdWxhdGVkVHlwZSBTcGVjUHJpbWl0aXZlICAgICAgICAgID0gU3BlY1N0cmluZyB8IFNwZWNT
eW1ib2wgfCBTcGVjQnl0ZWNvZGVOdW1iZXIgfCBTcGVjTWlzYzsgLy8gSXQncyBhbnkgbm9uLU9i
amVjdCBKU1ZhbHVlLgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNFbXB0eSAgICAg
ICAgICAgICAgPSAxdWxsIDw8IDM0OyAvLyBJdCdzIGRlZmluaXRlbHkgYW4gZW1wdHkgdmFsdWUg
bWFya2VyLgorc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNFbXB0eSAgICAgICAgICAg
ICAgPSAxdWxsIDw8IDM2OyAvLyBJdCdzIGRlZmluaXRlbHkgYW4gZW1wdHkgdmFsdWUgbWFya2Vy
Lgogc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNCeXRlY29kZVRvcCAgICAgICAgPSBT
cGVjSGVhcFRvcCB8IFNwZWNFbXB0eTsgLy8gSXQgY2FuIGJlIGFueSBvZiB0aGUgYWJvdmUsIGV4
Y2VwdCBmb3IgU3BlY0ludDUyT25seSBhbmQgU3BlY0RvdWJsZUltcHVyZU5hTi4gQ29ycmVzcG9u
ZHMgdG8gd2hhdCBjb3VsZCBiZSBmb3VuZCBpbiBhIGJ5dGVjb2RlIGxvY2FsLgogc3RhdGljIGNv
bnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNGdWxsVG9wICAgICAgICAgICAgPSBTcGVjQnl0ZWNvZGVU
b3AgfCBTcGVjRnVsbE51bWJlcjsgLy8gSXQgY2FuIGJlIGFueXRoaW5nIHRoYXQgYnl0ZWNvZGUg
Y291bGQgc2VlIHBsdXMgZXhvdGljIGVuY29kaW5ncyBvZiBudW1iZXJzLgogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVz
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxp
bmVzLmgKaW5kZXggYmJhMDZkYWNkZjE5YTNmOTZhMzdiNDk2YjBjMjc4ZGFiMWRhMmU0MS4uNWMy
NjMxY2ZjYTBhMTIyM2UzZjA0YmNlYzkzNzNhZDYzNWJkNGMxOCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMu
aApAQCAtMTA3Myw2ICsxMDczLDEwIEBAIGJvb2wgQWJzdHJhY3RJbnRlcnByZXRlcjxBYnN0cmFj
dFN0YXRlVHlwZT46OmV4ZWN1dGVFZmZlY3RzKHVuc2lnbmVkIGNsb2JiZXJMaW1pCiAgICAgICAg
IH0KICAgICAgICAgYnJlYWs7CiAKKyAgICBjYXNlIFdlYWtNYXBHZXQ6CisgICAgICAgIGZvck5v
ZGUobm9kZSkubWFrZUJ5dGVjb2RlVG9wKCk7CisgICAgICAgIGJyZWFrOworCiAgICAgY2FzZSBJ
c0VtcHR5OgogICAgIGNhc2UgSXNVbmRlZmluZWQ6CiAgICAgY2FzZSBJc0Jvb2xlYW46CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCmluZGV4IGU5
N2IzODczYjM3YmI3NzAxMzc4Y2ZlZWZjOGI4MDg1MWExZTc5NTAuLmVjOTBjMDgzMDFjNzQ0MmM5
NmQ2YTU3ZTFiOGZjMDRkNTQzZmYzNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCkBAIC0yOTQ2LDYgKzI5NDYsMjEgQEAgYm9vbCBCeXRl
Q29kZVBhcnNlcjo6aGFuZGxlSW50cmluc2ljQ2FsbChOb2RlKiBjYWxsZWUsIGludCByZXN1bHRP
cGVyYW5kLCBJbnRyaW4KICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCisgICAgY2FzZSBK
U1dlYWtNYXBHZXRJbnRyaW5zaWM6IHsKKyAgICAgICAgaWYgKGFyZ3VtZW50Q291bnRJbmNsdWRp
bmdUaGlzICE9IDIpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgaWYgKG1f
aW5saW5lU3RhY2tUb3AtPm1fZXhpdFByb2ZpbGUuaGFzRXhpdFNpdGUobV9jdXJyZW50SW5kZXgs
IEJhZFR5cGUpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIGluc2VydENo
ZWNrcygpOworICAgICAgICBOb2RlKiBtYXAgPSBnZXQodmlydHVhbFJlZ2lzdGVyRm9yQXJndW1l
bnQoMCwgcmVnaXN0ZXJPZmZzZXQpKTsKKyAgICAgICAgTm9kZSoga2V5ID0gZ2V0KHZpcnR1YWxS
ZWdpc3RlckZvckFyZ3VtZW50KDEsIHJlZ2lzdGVyT2Zmc2V0KSk7CisgICAgICAgIE5vZGUqIHJl
c3VsdCA9IGFkZFRvR3JhcGgoV2Vha01hcEdldCwgT3BJbmZvKCksIE9wSW5mbyhwcmVkaWN0aW9u
KSwgbWFwLCBrZXkpOworICAgICAgICBzZXQoVmlydHVhbFJlZ2lzdGVyKHJlc3VsdE9wZXJhbmQp
LCByZXN1bHQpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKICAgICBjYXNlIEhhc093
blByb3BlcnR5SW50cmluc2ljOiB7CiAgICAgICAgIGlmIChhcmd1bWVudENvdW50SW5jbHVkaW5n
VGhpcyAhPSAyKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVyaXplLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0Nsb2JiZXJpemUuaAppbmRleCAxNjZlNmFmNDVmNDk0ZWNmNmM2YzNiMWMyYWMy
ZTg4MjhmNmQyZWVjLi42Y2E1ZDcxOGM4MzYzNzBhY2JhYmQ2ZTlhMzBkNWE0YzY5MjU3ZmVhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUuaApAQCAtMTU0Nyw2ICsx
NTQ3LDcgQEAgdm9pZCBjbG9iYmVyaXplKEdyYXBoJiBncmFwaCwgTm9kZSogbm9kZSwgY29uc3Qg
UmVhZEZ1bmN0b3ImIHJlYWQsIGNvbnN0IFdyaXRlRnUKICAgICBjYXNlIE1hcEhhc2g6CiAgICAg
ICAgIGRlZihQdXJlVmFsdWUobm9kZSkpOwogICAgICAgICByZXR1cm47CisKICAgICBjYXNlIEdl
dE1hcEJ1Y2tldDogewogICAgICAgICByZWFkKE1pc2NGaWVsZHMpOwogICAgICAgICBFZGdlJiBt
YXBFZGdlID0gbm9kZS0+Y2hpbGQxKCk7CkBAIC0xNTU0LDEyICsxNTU1LDE0IEBAIHZvaWQgY2xv
YmJlcml6ZShHcmFwaCYgZ3JhcGgsIE5vZGUqIG5vZGUsIGNvbnN0IFJlYWRGdW5jdG9yJiByZWFk
LCBjb25zdCBXcml0ZUZ1CiAgICAgICAgIGRlZihIZWFwTG9jYXRpb24oTWFwQnVja2V0TG9jLCBN
aXNjRmllbGRzLCBtYXBFZGdlLCBrZXlFZGdlKSwgTGF6eU5vZGUobm9kZSkpOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQorCiAgICAgY2FzZSBHZXRNYXBCdWNrZXRIZWFkOiB7CiAgICAgICAgIHJl
YWQoTWlzY0ZpZWxkcyk7CiAgICAgICAgIEVkZ2UmIG1hcEVkZ2UgPSBub2RlLT5jaGlsZDEoKTsK
ICAgICAgICAgZGVmKEhlYXBMb2NhdGlvbihNYXBCdWNrZXRIZWFkTG9jLCBNaXNjRmllbGRzLCBt
YXBFZGdlKSwgTGF6eU5vZGUobm9kZSkpOwogICAgICAgICByZXR1cm47CiAgICAgfQorCiAgICAg
Y2FzZSBHZXRNYXBCdWNrZXROZXh0OiB7CiAgICAgICAgIHJlYWQoTWlzY0ZpZWxkcyk7CiAgICAg
ICAgIExvY2F0aW9uS2luZCBsb2NhdGlvbktpbmQgPSBNYXBCdWNrZXRNYXBOZXh0TG9jOwpAQCAt
MTU2OSwxMiArMTU3MiwxNCBAQCB2b2lkIGNsb2JiZXJpemUoR3JhcGgmIGdyYXBoLCBOb2RlKiBu
b2RlLCBjb25zdCBSZWFkRnVuY3RvciYgcmVhZCwgY29uc3QgV3JpdGVGdQogICAgICAgICBkZWYo
SGVhcExvY2F0aW9uKGxvY2F0aW9uS2luZCwgTWlzY0ZpZWxkcywgYnVja2V0RWRnZSksIExhenlO
b2RlKG5vZGUpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KKwogICAgIGNhc2UgTG9hZEtleUZy
b21NYXBCdWNrZXQ6IHsKICAgICAgICAgcmVhZChNaXNjRmllbGRzKTsKICAgICAgICAgRWRnZSYg
YnVja2V0RWRnZSA9IG5vZGUtPmNoaWxkMSgpOwogICAgICAgICBkZWYoSGVhcExvY2F0aW9uKE1h
cEJ1Y2tldEtleUxvYywgTWlzY0ZpZWxkcywgYnVja2V0RWRnZSksIExhenlOb2RlKG5vZGUpKTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KKwogICAgIGNhc2UgTG9hZFZhbHVlRnJvbU1hcEJ1Y2tl
dDogewogICAgICAgICByZWFkKE1pc2NGaWVsZHMpOwogICAgICAgICBFZGdlJiBidWNrZXRFZGdl
ID0gbm9kZS0+Y2hpbGQxKCk7CkBAIC0xNTgyLDYgKzE1ODcsMTQgQEAgdm9pZCBjbG9iYmVyaXpl
KEdyYXBoJiBncmFwaCwgTm9kZSogbm9kZSwgY29uc3QgUmVhZEZ1bmN0b3ImIHJlYWQsIGNvbnN0
IFdyaXRlRnUKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAorICAgIGNhc2UgV2Vha01hcEdldDog
eworICAgICAgICByZWFkKE1pc2NGaWVsZHMpOworICAgICAgICBFZGdlJiBtYXBFZGdlID0gbm9k
ZS0+Y2hpbGQxKCk7CisgICAgICAgIEVkZ2UmIGtleUVkZ2UgPSBub2RlLT5jaGlsZDIoKTsKKyAg
ICAgICAgZGVmKEhlYXBMb2NhdGlvbihXZWFrTWFwR2V0TG9jLCBNaXNjRmllbGRzLCBtYXBFZGdl
LCBrZXlFZGdlKSwgTGF6eU5vZGUobm9kZSkpOworICAgICAgICByZXR1cm47CisgICAgfQorCiAg
ICAgY2FzZSBUb0xvd2VyQ2FzZToKICAgICAgICAgZGVmKFB1cmVWYWx1ZShub2RlKSk7CiAgICAg
ICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRG9l
c0dDLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRG9lc0dDLmNwcAppbmRleCA2
ZDlkMjI4MDUwYmJmNTM5ZWFjYWI5ZTcwMGI4NjJhOWIyOTBkZTcwLi5lYzdlMDVhNTc4YWYwNmQ2
ODM1ZjAxOTA1MTNjMzdmMzQ0MDcxN2FlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0RvZXNHQy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdE
b2VzR0MuY3BwCkBAIC0xOTgsNiArMTk4LDcgQEAgYm9vbCBkb2VzR0MoR3JhcGgmIGdyYXBoLCBO
b2RlKiBub2RlKQogICAgIGNhc2UgR2V0TWFwQnVja2V0TmV4dDoKICAgICBjYXNlIExvYWRLZXlG
cm9tTWFwQnVja2V0OgogICAgIGNhc2UgTG9hZFZhbHVlRnJvbU1hcEJ1Y2tldDoKKyAgICBjYXNl
IFdlYWtNYXBHZXQ6CiAgICAgY2FzZSBVbnJlYWNoYWJsZToKICAgICBjYXNlIEV4dHJhY3RDYXRj
aExvY2FsOgogICAgIGNhc2UgRXh0cmFjdE9TUkVudHJ5TG9jYWw6CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAppbmRleCA2MTU5OTljMTc3NDIyNjk3YTdjMjNh
YTNiMDkzYzIwNDg3NmFkNTE3Li5lYmY0MjA4NzMyZDNiNDcyODJlZDc3YWY2NGM2OTQyODY0MjI0
Mjc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2Uu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAKQEAg
LTE4NDksNiArMTg0OSwxMiBAQCBjbGFzcyBGaXh1cFBoYXNlIDogcHVibGljIFBoYXNlIHsKICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAKKyAgICAgICAgY2FzZSBXZWFrTWFwR2V0OiB7
CisgICAgICAgICAgICBmaXhFZGdlPFdlYWtNYXBPYmplY3RVc2U+KG5vZGUtPmNoaWxkMSgpKTsK
KyAgICAgICAgICAgIGZpeEVkZ2U8T2JqZWN0VXNlPihub2RlLT5jaGlsZDIoKSk7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgfQorCiAgICAgICAgIGNhc2UgRGVmaW5lRGF0YVByb3BlcnR5
OiB7CiAgICAgICAgICAgICBmaXhFZGdlPENlbGxVc2U+KG1fZ3JhcGgudmFyQXJnQ2hpbGQobm9k
ZSwgMCkpOwogICAgICAgICAgICAgRWRnZSYgcHJvcGVydHlFZGdlID0gbV9ncmFwaC52YXJBcmdD
aGlsZChub2RlLCAxKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
SGVhcExvY2F0aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSGVhcExvY2F0
aW9uLmNwcAppbmRleCA2MGJkNTcyNmJjNThjYjc0NjhkNzhkNTM2NGJmNDQ1ZmQ4Yjk4NjRlLi41
NWMwZjc0OTg3MGUwNjQwOTQ4YmZkMjExYmE0MzkxNjA5YWQxMTc0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0hlYXBMb2NhdGlvbi5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdIZWFwTG9jYXRpb24uY3BwCkBAIC0xNTksMjQgKzE1OSwzNSBA
QCB2b2lkIHByaW50SW50ZXJuYWwoUHJpbnRTdHJlYW0mIG91dCwgTG9jYXRpb25LaW5kIGtpbmQp
CiAgICAgY2FzZSBSZWdFeHBPYmplY3RMYXN0SW5kZXhMb2M6CiAgICAgICAgIG91dC5wcmludCgi
UmVnRXhwT2JqZWN0TGFzdEluZGV4TG9jIik7CiAgICAgICAgIHJldHVybjsKKwogICAgIGNhc2Ug
TWFwQnVja2V0TG9jOgogICAgICAgICBvdXQucHJpbnQoIk1hcEJ1Y2tldExvYyIpOwogICAgICAg
ICByZXR1cm47CisKICAgICBjYXNlIE1hcEJ1Y2tldEhlYWRMb2M6CiAgICAgICAgIG91dC5wcmlu
dCgiTWFwQnVja2V0SGVhZExvYyIpOwogICAgICAgICByZXR1cm47CisKICAgICBjYXNlIE1hcEJ1
Y2tldEtleUxvYzoKICAgICAgICAgb3V0LnByaW50KCJNYXBCdWNrZXRLZXlMb2MiKTsKICAgICAg
ICAgcmV0dXJuOworCiAgICAgY2FzZSBNYXBCdWNrZXRWYWx1ZUxvYzoKICAgICAgICAgb3V0LnBy
aW50KCJNYXBCdWNrZXRWYWx1ZUxvYyIpOwogICAgICAgICByZXR1cm47CisKICAgICBjYXNlIE1h
cEJ1Y2tldE1hcE5leHRMb2M6CiAgICAgICAgIG91dC5wcmludCgiTWFwQnVja2V0TWFwTmV4dExv
YyIpOwogICAgICAgICByZXR1cm47CisKICAgICBjYXNlIE1hcEJ1Y2tldFNldE5leHRMb2M6CiAg
ICAgICAgIG91dC5wcmludCgiTWFwQnVja2V0U2V0TmV4dExvYyIpOwogICAgICAgICByZXR1cm47
CisKKyAgICBjYXNlIFdlYWtNYXBHZXQ6CisgICAgICAgIG91dC5wcmludCgiV2Vha01hcEdldCIp
OworICAgICAgICByZXR1cm47CisKICAgICBjYXNlIERPTVN0YXRlTG9jOgogICAgICAgICBvdXQu
cHJpbnQoIkRPTVN0YXRlTG9jIik7CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSGVhcExvY2F0aW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0hlYXBMb2NhdGlvbi5oCmluZGV4IGI4MmM5MjJkYTI3ZjdlMDBmMjdiNWFh
MzA3N2VlNDA1NTUxOGVlYzQuLjY3NjU2NWNmYmYwZDEzMTIxOThjZDQxNGIyYTNiYTY3NjBhMGM5
M2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSGVhcExvY2F0aW9u
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdIZWFwTG9jYXRpb24uaApAQCAt
NjgsNiArNjgsNyBAQCBlbnVtIExvY2F0aW9uS2luZCB7CiAgICAgTWFwQnVja2V0S2V5TG9jLAog
ICAgIE1hcEJ1Y2tldE1hcE5leHRMb2MsCiAgICAgTWFwQnVja2V0U2V0TmV4dExvYywKKyAgICBX
ZWFrTWFwR2V0TG9jLAogICAgIERPTVN0YXRlTG9jLAogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR05vZGUuaAppbmRleCBlNzBkYjk2MTFjNGIwNDI4Mjk1OTYzNDMwMjVhNzMzOTNmMTdjYjE0
Li4xNTg5NzE5MDc3OTFmODZhYmFjMDczYzhmZTEyMDBjMjkwNDhjYWI0IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR05vZGUuaApAQCAtMTUzNiw2ICsxNTM2LDcgQEAgc3RydWN0IE5vZGUgewog
ICAgICAgICBjYXNlIEF0b21pY3NTdWI6CiAgICAgICAgIGNhc2UgQXRvbWljc1hvcjoKICAgICAg
ICAgY2FzZSBHZXREeW5hbWljVmFyOgorICAgICAgICBjYXNlIFdlYWtNYXBHZXQ6CiAgICAgICAg
ICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5cGUu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5cGUuaAppbmRleCA2OGZkNmY4
YzBmMDkwMWVhOTIxMWNiNzllZGUwYTcxZjE2YjU3NTgxLi5iYWQ1OWJkZjVhZjY5ZjJiNGE0ZDFi
YWI5NzRmYTZlYWRmNTdkYWRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR05vZGVUeXBlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlw
ZS5oCkBAIC00MzYsNiArNDM2LDggQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgewog
ICAgIG1hY3JvKEdldE1hcEJ1Y2tldE5leHQsIE5vZGVSZXN1bHRKUykgXAogICAgIG1hY3JvKExv
YWRLZXlGcm9tTWFwQnVja2V0LCBOb2RlUmVzdWx0SlMpIFwKICAgICBtYWNybyhMb2FkVmFsdWVG
cm9tTWFwQnVja2V0LCBOb2RlUmVzdWx0SlMpIFwKKyAgICAvKiBOb2RlcyBmb3IgSlNXZWFrTWFw
IGFuZCBKU1dlYWtTZXQgKi8gXAorICAgIG1hY3JvKFdlYWtNYXBHZXQsIE5vZGVSZXN1bHRKUykg
XAogICAgIFwKICAgICBtYWNybyhUb0xvd2VyQ2FzZSwgTm9kZVJlc3VsdEpTKSBcCiAgICAgLyog
Tm9kZXMgZm9yIERPTSBKSVQgKi9cCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR09wZXJhdGlvbnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVy
YXRpb25zLmNwcAppbmRleCA1YzQxYzgzMmNlZmM3NDk0OWM5MzFjNDA4MDc3YTQ2Y2Q0MGNjZWFk
Li41MDNjYzE5NWQ1YjgwMDk2NGM4YzcxMGQ1MWYwOGZmMzRkNThlZWZjIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAKQEAgLTU1LDYgKzU1LDcgQEAKICNp
bmNsdWRlICJKU0xleGljYWxFbnZpcm9ubWVudC5oIgogI2luY2x1ZGUgIkpTTWFwLmgiCiAjaW5j
bHVkZSAiSlNTZXQuaCIKKyNpbmNsdWRlICJKU1dlYWtNYXAuaCIKICNpbmNsdWRlICJPYmplY3RD
b25zdHJ1Y3Rvci5oIgogI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJQYXJzZUlu
dC5oIgpAQCAtODI1LDYgKzgyNiwxMyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvblJlZ0V4cEV4ZWNHZW5lcmljKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYQogICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoYXNSZWdFeHBPYmplY3QoYmFzZSktPmV4ZWMoZXhlYywgZ2xv
YmFsT2JqZWN0LCBpbnB1dCkpOwogfQogCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvbldlYWtNYXBHZXQoRXhlY1N0YXRlKiBleGVjLCBKU0NlbGwqIHdlYWtNYXAsIEpTQ2Vs
bCogb2JqZWN0KQoreworICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CisgICAgTmF0aXZlQ2FsbEZy
YW1lVHJhY2VyIHRyYWNlcigmdm0sIGV4ZWMpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
anNDYXN0PEpTV2Vha01hcCo+KHdlYWtNYXApLT5nZXQoYXNPYmplY3Qob2JqZWN0KSkpOworfQor
CiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblBhcnNlSW50Tm9SYWRpeEdl
bmVyaWMoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBWTSYg
dm0gPSBleGVjLT52bSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdPcGVyYXRpb25zLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMu
aAppbmRleCBjNDc2OGRjNjBhZjk4N2MxNTg1MzI4OGYwMjhlMmQ0NjI5YmE0OTkzLi5hNDgwM2Iy
MTIwZjMyZGJiZjcyY2UyYjI5ZDlkNTRhNTY3OTQ2ZmZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR09wZXJhdGlvbnMuaApAQCAtMTMxLDYgKzEzMSw3IEBAIEVuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQXJyYXlQb3BBbmRSZWNvdmVyTGVuZ3RoKEV4ZWNTdGF0
ZSosIEpTQXJyCiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblJlZ0V4cEV4
ZWNTdHJpbmcoRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqLCBSZWdFeHBPYmplY3QqLCBKU1N0
cmluZyopIFdURl9JTlRFUk5BTDsKIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uUmVnRXhwRXhlYyhFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCosIFJlZ0V4cE9iamVjdCos
IEVuY29kZWRKU1ZhbHVlKSBXVEZfSU5URVJOQUw7CiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIG9wZXJhdGlvblJlZ0V4cEV4ZWNHZW5lcmljKEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0
KiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlKSBXVEZfSU5URVJOQUw7CitFbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbldlYWtNYXBHZXQoRXhlY1N0YXRlKiwgSlND
ZWxsKiwgSlNDZWxsKikgV1RGX0lOVEVSTkFMOwogLy8gVGhlc2UgY29tcGFyaXNvbnMgcmV0dXJu
IGEgYm9vbGVhbiB3aXRoaW4gYSBzaXplX3Qgc3VjaCB0aGF0IHRoZSB2YWx1ZSBpcyB6ZXJvIGV4
dGVuZGVkIHRvIGZpbGwgdGhlIHJlZ2lzdGVyLgogc2l6ZV90IEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uUmVnRXhwVGVzdFN0cmluZyhFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCosIFJlZ0V4cE9i
amVjdCosIEpTU3RyaW5nKikgV1RGX0lOVEVSTkFMOwogc2l6ZV90IEpJVF9PUEVSQVRJT04gb3Bl
cmF0aW9uUmVnRXhwVGVzdChFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCosIFJlZ0V4cE9iamVj
dCosIEVuY29kZWRKU1ZhbHVlKSBXVEZfSU5URVJOQUw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwCmlu
ZGV4IDViMGI5ZWY2MzdjMjFmZWYwNDUzZmVhOTNjNTdiNGJkMWU3MWViM2UuLmU0MTkzMjQ0Zjgz
ZjUyZWQyN2U5Mjk4NDI5MjcyOWZjNGFkZDg5OWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwCkBA
IC03MjIsNyArNzIyLDggQEAgY2xhc3MgUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UgOiBwdWJs
aWMgUGhhc2UgewogICAgICAgICBjYXNlIFRvTnVtYmVyOgogICAgICAgICBjYXNlIEdldEFyZ3Vt
ZW50OgogICAgICAgICBjYXNlIENhbGxET01HZXR0ZXI6Ci0gICAgICAgIGNhc2UgR2V0RHluYW1p
Y1ZhcjogeworICAgICAgICBjYXNlIEdldER5bmFtaWNWYXI6CisgICAgICAgIGNhc2UgV2Vha01h
cEdldDogewogICAgICAgICAgICAgc2V0UHJlZGljdGlvbihtX2N1cnJlbnROb2RlLT5nZXRIZWFw
UHJlZGljdGlvbigpKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZVRvRXhlY3V0ZS5oCmluZGV4IGFkNzZiMzNiMGZhYWYx
ODdkYjQ2YTMwODkyZjQ3ZmNhN2UzYjQ0OWQuLjMyNzIxZTFmNDFhYWY5Mjk5NGY1MzU3ZjA2MjYx
ZmJmY2RlZGU2OTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2Fm
ZVRvRXhlY3V0ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZVRvRXhl
Y3V0ZS5oCkBAIC02Miw2ICs2Miw4IEBAIGNsYXNzIFNhZmVUb0V4ZWN1dGVFZGdlIHsKICAgICAg
ICAgY2FzZSBEZXJpdmVkQXJyYXlVc2U6CiAgICAgICAgIGNhc2UgTWFwT2JqZWN0VXNlOgogICAg
ICAgICBjYXNlIFNldE9iamVjdFVzZToKKyAgICAgICAgY2FzZSBXZWFrTWFwT2JqZWN0VXNlOgor
ICAgICAgICBjYXNlIFdlYWtTZXRPYmplY3RVc2U6CiAgICAgICAgIGNhc2UgT2JqZWN0T3JPdGhl
clVzZToKICAgICAgICAgY2FzZSBTdHJpbmdJZGVudFVzZToKICAgICAgICAgY2FzZSBTdHJpbmdV
c2U6CkBAIC0zODgsNiArMzkwLDcgQEAgYm9vbCBzYWZlVG9FeGVjdXRlKEFic3RyYWN0U3RhdGVU
eXBlJiBzdGF0ZSwgR3JhcGgmIGdyYXBoLCBOb2RlKiBub2RlKQogICAgIGNhc2UgR2V0TWFwQnVj
a2V0TmV4dDoKICAgICBjYXNlIExvYWRLZXlGcm9tTWFwQnVja2V0OgogICAgIGNhc2UgTG9hZFZh
bHVlRnJvbU1hcEJ1Y2tldDoKKyAgICBjYXNlIFdlYWtNYXBHZXQ6CiAgICAgY2FzZSBBdG9taWNz
QWRkOgogICAgIGNhc2UgQXRvbWljc0FuZDoKICAgICBjYXNlIEF0b21pY3NDb21wYXJlRXhjaGFu
Z2U6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZl
SklULmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3Bw
CmluZGV4IGY4MzYwYjlmZGI5MDFiYWMyMTQ5Yjk0MzJiMGVlNzJlZWMwYWQ5OTYuLmRiODY4NzVj
NGVlMmIzMDg2YzI5M2Y0NmQ1NjUxNGNkZjllYjExZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCkBAIC04ODg0LDYgKzg4ODQsMzQgQEAg
dm9pZCBTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlU2V0T2JqZWN0KEVkZ2UgZWRnZSkKICAgICBz
cGVjdWxhdGVTZXRPYmplY3QoZWRnZSwgb3BlcmFuZC5ncHIoKSk7CiB9CiAKK3ZvaWQgU3BlY3Vs
YXRpdmVKSVQ6OnNwZWN1bGF0ZVdlYWtNYXBPYmplY3QoRWRnZSBlZGdlLCBHUFJSZWcgY2VsbCkK
K3sKKyAgICBzcGVjdWxhdGVDZWxsVHlwZShlZGdlLCBjZWxsLCBTcGVjV2Vha01hcE9iamVjdCwg
SlNXZWFrTWFwVHlwZSk7Cit9CisKK3ZvaWQgU3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZVdlYWtN
YXBPYmplY3QoRWRnZSBlZGdlKQoreworICAgIGlmICghbmVlZHNUeXBlQ2hlY2soZWRnZSwgU3Bl
Y1dlYWtNYXBPYmplY3QpKQorICAgICAgICByZXR1cm47CisKKyAgICBTcGVjdWxhdGVDZWxsT3Bl
cmFuZCBvcGVyYW5kKHRoaXMsIGVkZ2UpOworICAgIHNwZWN1bGF0ZVdlYWtNYXBPYmplY3QoZWRn
ZSwgb3BlcmFuZC5ncHIoKSk7Cit9CisKK3ZvaWQgU3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZVdl
YWtTZXRPYmplY3QoRWRnZSBlZGdlLCBHUFJSZWcgY2VsbCkKK3sKKyAgICBzcGVjdWxhdGVDZWxs
VHlwZShlZGdlLCBjZWxsLCBTcGVjV2Vha1NldE9iamVjdCwgSlNXZWFrU2V0VHlwZSk7Cit9CisK
K3ZvaWQgU3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZVdlYWtTZXRPYmplY3QoRWRnZSBlZGdlKQor
eworICAgIGlmICghbmVlZHNUeXBlQ2hlY2soZWRnZSwgU3BlY1dlYWtTZXRPYmplY3QpKQorICAg
ICAgICByZXR1cm47CisKKyAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBvcGVyYW5kKHRoaXMsIGVk
Z2UpOworICAgIHNwZWN1bGF0ZVdlYWtTZXRPYmplY3QoZWRnZSwgb3BlcmFuZC5ncHIoKSk7Cit9
CisKIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZU9iamVjdE9yT3RoZXIoRWRnZSBlZGdl
KQogewogICAgIGlmICghbmVlZHNUeXBlQ2hlY2soZWRnZSwgU3BlY09iamVjdCB8IFNwZWNPdGhl
cikpCkBAIC05MjAyLDYgKzkyMzAsMTIgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRl
KE5vZGUqLCBFZGdlIGVkZ2UpCiAgICAgY2FzZSBTZXRPYmplY3RVc2U6CiAgICAgICAgIHNwZWN1
bGF0ZVNldE9iamVjdChlZGdlKTsKICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXZWFrTWFwT2Jq
ZWN0VXNlOgorICAgICAgICBzcGVjdWxhdGVXZWFrTWFwT2JqZWN0KGVkZ2UpOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFdlYWtTZXRPYmplY3RVc2U6CisgICAgICAgIHNwZWN1bGF0ZVdlYWtT
ZXRPYmplY3QoZWRnZSk7CisgICAgICAgIGJyZWFrOwogICAgIGNhc2UgT2JqZWN0T3JPdGhlclVz
ZToKICAgICAgICAgc3BlY3VsYXRlT2JqZWN0T3JPdGhlcihlZGdlKTsKICAgICAgICAgYnJlYWs7
CkBAIC0xMDI4NCw2ICsxMDMxOCwyNiBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlTG9h
ZFZhbHVlRnJvbU1hcEJ1Y2tldChOb2RlKiBub2RlKQogICAgIGpzVmFsdWVSZXN1bHQocmVzdWx0
UmVncywgbm9kZSk7CiB9CiAKK3ZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVXZWFrTWFwR2V0
KE5vZGUqIG5vZGUpCit7CisgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgd2Vha01hcCh0aGlzLCBu
b2RlLT5jaGlsZDEoKSk7CisgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgb2JqZWN0KHRoaXMsIG5v
ZGUtPmNoaWxkMigpKTsKKyAgICBKU1ZhbHVlUmVnc1RlbXBvcmFyeSByZXN1bHQodGhpcyk7CisK
KyAgICBHUFJSZWcgd2Vha01hcEdQUiA9IHdlYWtNYXAuZ3ByKCk7CisgICAgR1BSUmVnIG9iamVj
dEdQUiA9IG9iamVjdC5ncHIoKTsKKyAgICBKU1ZhbHVlUmVncyByZXN1bHRSZWdzID0gcmVzdWx0
LnJlZ3MoKTsKKworICAgIHNwZWN1bGF0ZVdlYWtNYXBPYmplY3Qobm9kZS0+Y2hpbGQxKCksIHdl
YWtNYXBHUFIpOworICAgIHNwZWN1bGF0ZU9iamVjdChub2RlLT5jaGlsZDIoKSwgb2JqZWN0R1BS
KTsKKworICAgIGZsdXNoUmVnaXN0ZXJzKCk7CisgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25X
ZWFrTWFwR2V0LCBleHRyYWN0UmVzdWx0KHJlc3VsdFJlZ3MpLCB3ZWFrTWFwR1BSLCBvYmplY3RH
UFIpOworICAgIG1faml0LmV4Y2VwdGlvbkNoZWNrKCk7CisKKyAgICBqc1ZhbHVlUmVzdWx0KHJl
c3VsdFJlZ3MsIG5vZGUpOworfQorCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6REZHCiAKICNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJ
VC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCmluZGV4
IGI2MTIyZWYwNjA3NmY3MDA0N2E2MmZlNTdkMzJmNmQ4ZDI1ZWE0MmMuLjM3ZWI0MWZhN2U4ZDRh
N2NmMjNlODMzMzM2OWRhOTViYjZmZDY3NTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1NwZWN1bGF0aXZlSklULmgKQEAgLTI3ODEsNiArMjc4MSw3IEBAIGNsYXNzIFNwZWN1
bGF0aXZlSklUIHsKICAgICB2b2lkIGNvbXBpbGVDaGVja1N1YkNsYXNzKE5vZGUqKTsKICAgICB2
b2lkIGNvbXBpbGVHZXRNYXBCdWNrZXRIZWFkKE5vZGUqKTsKICAgICB2b2lkIGNvbXBpbGVHZXRN
YXBCdWNrZXROZXh0KE5vZGUqKTsKKyAgICB2b2lkIGNvbXBpbGVXZWFrTWFwR2V0KE5vZGUqKTsK
ICAgICB2b2lkIGNvbXBpbGVMb2FkS2V5RnJvbU1hcEJ1Y2tldChOb2RlKik7CiAgICAgdm9pZCBj
b21waWxlTG9hZFZhbHVlRnJvbU1hcEJ1Y2tldChOb2RlKik7CiAgICAgCkBAIC0zMDM2LDYgKzMw
MzcsMTAgQEAgY2xhc3MgU3BlY3VsYXRpdmVKSVQgewogICAgIHZvaWQgc3BlY3VsYXRlTWFwT2Jq
ZWN0KEVkZ2UsIEdQUlJlZyBjZWxsKTsKICAgICB2b2lkIHNwZWN1bGF0ZVNldE9iamVjdChFZGdl
KTsKICAgICB2b2lkIHNwZWN1bGF0ZVNldE9iamVjdChFZGdlLCBHUFJSZWcgY2VsbCk7CisgICAg
dm9pZCBzcGVjdWxhdGVXZWFrTWFwT2JqZWN0KEVkZ2UpOworICAgIHZvaWQgc3BlY3VsYXRlV2Vh
a01hcE9iamVjdChFZGdlLCBHUFJSZWcgY2VsbCk7CisgICAgdm9pZCBzcGVjdWxhdGVXZWFrU2V0
T2JqZWN0KEVkZ2UpOworICAgIHZvaWQgc3BlY3VsYXRlV2Vha1NldE9iamVjdChFZGdlLCBHUFJS
ZWcgY2VsbCk7CiAgICAgdm9pZCBzcGVjdWxhdGVPYmplY3RPck90aGVyKEVkZ2UpOwogICAgIHZv
aWQgc3BlY3VsYXRlU3RyaW5nKEVkZ2UgZWRnZSwgR1BSUmVnIGNlbGwpOwogICAgIHZvaWQgc3Bl
Y3VsYXRlU3RyaW5nSWRlbnRBbmRMb2FkU3RvcmFnZShFZGdlIGVkZ2UsIEdQUlJlZyBzdHJpbmcs
IEdQUlJlZyBzdG9yYWdlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCmluZGV4IDM1NDQ5ZTM1ZGY2NDdiOTAyZDRmMzU2MzQ5
Y2QyOGIyNWI4Y2E1NjQuLmVlZWQ5ZmU4OGVlNGYwNWU0OTBkYzk2M2JkOTFiODhhMTdiOWI2MzUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQz
Ml82NC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJ
VDMyXzY0LmNwcApAQCAtNDkzMSw2ICs0OTMxLDEwIEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNv
bXBpbGUoTm9kZSogbm9kZSkKICAgICAgICAgY29tcGlsZUxvYWRWYWx1ZUZyb21NYXBCdWNrZXQo
bm9kZSk7CiAgICAgICAgIGJyZWFrOwogCisgICAgY2FzZSBXZWFrTWFwR2V0OgorICAgICAgICBj
b21waWxlV2Vha01hcEdldChub2RlKTsKKyAgICAgICAgYnJlYWs7CisKICAgICBjYXNlIEZsdXNo
OgogICAgICAgICBicmVhazsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
U3BlY3VsYXRpdmVKSVQ2NC5jcHAKaW5kZXggZDRjMzgzNGI3ZGZjYjU4NmViZjJiMzM3MGRhNTdj
MGZhNDAwMDBmYy4uNjA3NGQ3NzFkZmQyOTFlM2ZiNjY4MDI3ZTQ4ZGE2MWE5OTc4NmQyYiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3Bw
CkBAIC01MjkxLDYgKzUyOTEsMTAgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2Rl
KiBub2RlKQogICAgICAgICBjb21waWxlTG9hZFZhbHVlRnJvbU1hcEJ1Y2tldChub2RlKTsKICAg
ICAgICAgYnJlYWs7CiAKKyAgICBjYXNlIFdlYWtNYXBHZXQ6CisgICAgICAgIGNvbXBpbGVXZWFr
TWFwR2V0KG5vZGUpOworICAgICAgICBicmVhazsKKwogICAgIGNhc2UgVG9Mb3dlckNhc2U6IHsK
ICAgICAgICAgY29tcGlsZVRvTG93ZXJDYXNlKG5vZGUpOwogICAgICAgICBicmVhazsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVXNlS2luZC5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1VzZUtpbmQuY3BwCmluZGV4IGU4MzgyOWI3MTMwNjE3M2Rl
OTViMDEwODhiZjNlOWNkODRmZGY2ZWMuLjIzZDBkYjAwNDBlNDM1NjAxMWIyMjY0OWVhYjA4MzQz
Yzg0MTFiMTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVXNlS2lu
ZC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdVc2VLaW5kLmNwcApAQCAt
MTA5LDYgKzEwOSwxMiBAQCB2b2lkIHByaW50SW50ZXJuYWwoUHJpbnRTdHJlYW0mIG91dCwgVXNl
S2luZCB1c2VLaW5kKQogICAgIGNhc2UgU2V0T2JqZWN0VXNlOgogICAgICAgICBvdXQucHJpbnQo
IlNldE9iamVjdFVzZSIpOwogICAgICAgICByZXR1cm47CisgICAgY2FzZSBXZWFrTWFwT2JqZWN0
VXNlOgorICAgICAgICBvdXQucHJpbnQoIldlYWtNYXBPYmplY3RVc2UiKTsKKyAgICAgICAgcmV0
dXJuOworICAgIGNhc2UgV2Vha1NldE9iamVjdFVzZToKKyAgICAgICAgb3V0LnByaW50KCJXZWFr
U2V0T2JqZWN0VXNlIik7CisgICAgICAgIHJldHVybjsKICAgICBjYXNlIE9iamVjdE9yT3RoZXJV
c2U6CiAgICAgICAgIG91dC5wcmludCgiT2JqZWN0T3JPdGhlciIpOwogICAgICAgICByZXR1cm47
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1VzZUtpbmQuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVXNlS2luZC5oCmluZGV4IDQ2ZTI3MjAxYzk4NmZk
ZmUzYjYwNmM3NTYyMzg5MGMyMGUyZjAzNTkuLjc5NmQ4YjQwZmNjY2EwMWM0ZTVkYTM4N2Q4MjUw
ZTFjYTJmYjQyNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVXNl
S2luZC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVXNlS2luZC5oCkBAIC02
Nyw2ICs2Nyw4IEBAIGVudW0gVXNlS2luZCB7CiAgICAgU3ltYm9sVXNlLAogICAgIE1hcE9iamVj
dFVzZSwKICAgICBTZXRPYmplY3RVc2UsCisgICAgV2Vha01hcE9iamVjdFVzZSwKKyAgICBXZWFr
U2V0T2JqZWN0VXNlLAogICAgIFN0cmluZ09iamVjdFVzZSwKICAgICBTdHJpbmdPclN0cmluZ09i
amVjdFVzZSwKICAgICBOb3RTdHJpbmdWYXJVc2UsCkBAIC0xNDksNiArMTUxLDEwIEBAIGlubGlu
ZSBTcGVjdWxhdGVkVHlwZSB0eXBlRmlsdGVyRm9yKFVzZUtpbmQgdXNlS2luZCkKICAgICAgICAg
cmV0dXJuIFNwZWNNYXBPYmplY3Q7CiAgICAgY2FzZSBTZXRPYmplY3RVc2U6CiAgICAgICAgIHJl
dHVybiBTcGVjU2V0T2JqZWN0OworICAgIGNhc2UgV2Vha01hcE9iamVjdFVzZToKKyAgICAgICAg
cmV0dXJuIFNwZWNXZWFrTWFwT2JqZWN0OworICAgIGNhc2UgV2Vha1NldE9iamVjdFVzZToKKyAg
ICAgICAgcmV0dXJuIFNwZWNXZWFrU2V0T2JqZWN0OwogICAgIGNhc2UgU3RyaW5nT2JqZWN0VXNl
OgogICAgICAgICByZXR1cm4gU3BlY1N0cmluZ09iamVjdDsKICAgICBjYXNlIFN0cmluZ09yU3Ry
aW5nT2JqZWN0VXNlOgpAQCAtMjQxLDYgKzI0Nyw4IEBAIGlubGluZSBib29sIGlzQ2VsbChVc2VL
aW5kIGtpbmQpCiAgICAgY2FzZSBTdHJpbmdPclN0cmluZ09iamVjdFVzZToKICAgICBjYXNlIE1h
cE9iamVjdFVzZToKICAgICBjYXNlIFNldE9iamVjdFVzZToKKyAgICBjYXNlIFdlYWtNYXBPYmpl
Y3RVc2U6CisgICAgY2FzZSBXZWFrU2V0T2JqZWN0VXNlOgogICAgICAgICByZXR1cm4gdHJ1ZTsK
ICAgICBkZWZhdWx0OgogICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAKaW5kZXggYzIxNWE2MzI5NjFmODZlMWJlNjI4
YmIxZTljOTZiNjhjYmZlZjEzNS4uYmYwZmU2Mzk1MjVkMDZmMzMyNTEyNzY3ZGY2NzA0ODIzY2M2
ZDg3ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDYXBhYmlsaXRp
ZXMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNw
cApAQCAtMTk5LDYgKzE5OSw3IEBAIGlubGluZSBDYXBhYmlsaXR5TGV2ZWwgY2FuQ29tcGlsZShO
b2RlKiBub2RlKQogICAgIGNhc2UgR2V0TWFwQnVja2V0TmV4dDoKICAgICBjYXNlIExvYWRLZXlG
cm9tTWFwQnVja2V0OgogICAgIGNhc2UgTG9hZFZhbHVlRnJvbU1hcEJ1Y2tldDoKKyAgICBjYXNl
IFdlYWtNYXBHZXQ6CiAgICAgY2FzZSBJc0VtcHR5OgogICAgIGNhc2UgSXNVbmRlZmluZWQ6CiAg
ICAgY2FzZSBJc0Jvb2xlYW46CkBAIC00ODYsNiArNDg3LDggQEAgQ2FwYWJpbGl0eUxldmVsIGNh
bkNvbXBpbGUoR3JhcGgmIGdyYXBoKQogICAgICAgICAgICAgICAgIGNhc2UgU3ltYm9sVXNlOgog
ICAgICAgICAgICAgICAgIGNhc2UgTWFwT2JqZWN0VXNlOgogICAgICAgICAgICAgICAgIGNhc2Ug
U2V0T2JqZWN0VXNlOgorICAgICAgICAgICAgICAgIGNhc2UgV2Vha01hcE9iamVjdFVzZToKKyAg
ICAgICAgICAgICAgICBjYXNlIFdlYWtTZXRPYmplY3RVc2U6CiAgICAgICAgICAgICAgICAgY2Fz
ZSBGaW5hbE9iamVjdFVzZToKICAgICAgICAgICAgICAgICBjYXNlIFJlZ0V4cE9iamVjdFVzZToK
ICAgICAgICAgICAgICAgICBjYXNlIFByb3h5T2JqZWN0VXNlOgpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCmluZGV4IDNlZTIxNjlmZmQ5MTgzNTRkNDE3
NTUyMjE4ZTJjMTVlZDUxOTUxZWEuLmFjMWVmODY2ZTc4NzE1MzkzYzg1ZDgxZmNiOTRiNGRjYTE0
NWMwZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdU
b0IzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5j
cHAKQEAgLTk4NCw2ICs5ODQsOSBAQCBjbGFzcyBMb3dlckRGR1RvQjMgewogICAgICAgICBjYXNl
IExvYWRWYWx1ZUZyb21NYXBCdWNrZXQ6CiAgICAgICAgICAgICBjb21waWxlTG9hZFZhbHVlRnJv
bU1hcEJ1Y2tldCgpOwogICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgV2Vha01hcEdl
dDoKKyAgICAgICAgICAgIGNvbXBpbGVXZWFrTWFwR2V0KCk7CisgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgY2FzZSBJc09iamVjdDoKICAgICAgICAgICAgIGNvbXBpbGVJc09iamVjdCgpOwog
ICAgICAgICAgICAgYnJlYWs7CkBAIC04MzI0LDYgKzgzMjcsMTQgQEAgY2xhc3MgTG93ZXJERkdU
b0IzIHsKICAgICAgICAgc2V0SlNWYWx1ZShtX291dC5sb2FkNjQobWFwQnVja2V0LCBtX2hlYXBz
Lkhhc2hNYXBCdWNrZXRfa2V5KSk7CiAgICAgfQogCisgICAgdm9pZCBjb21waWxlV2Vha01hcEdl
dCgpCisgICAgeworICAgICAgICBMVmFsdWUgd2Vha01hcCA9IGxvd1dlYWtNYXBPYmplY3QobV9u
b2RlLT5jaGlsZDEoKSk7CisgICAgICAgIExWYWx1ZSBvYmplY3QgPSBsb3dPYmplY3QobV9ub2Rl
LT5jaGlsZDIoKSk7CisKKyAgICAgICAgc2V0SlNWYWx1ZSh2bUNhbGwoSW50NjQsIG1fb3V0Lm9w
ZXJhdGlvbihvcGVyYXRpb25XZWFrTWFwR2V0KSwgbV9jYWxsRnJhbWUsIHdlYWtNYXAsIG9iamVj
dCkpOworICAgIH0KKwogICAgIHZvaWQgY29tcGlsZUlzT2JqZWN0T3JOdWxsKCkKICAgICB7CiAg
ICAgICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBtX2dyYXBoLmdsb2JhbE9iamVj
dEZvcihtX25vZGUtPm9yaWdpbi5zZW1hbnRpYyk7CkBAIC0xMjc4Miw2ICsxMjc5MywyMCBAQCBj
bGFzcyBMb3dlckRGR1RvQjMgewogICAgICAgICBzcGVjdWxhdGVTZXRPYmplY3QoZWRnZSwgcmVz
dWx0KTsKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CisKKyAgICBMVmFsdWUgbG93V2Vh
a01hcE9iamVjdChFZGdlIGVkZ2UpCisgICAgeworICAgICAgICBMVmFsdWUgcmVzdWx0ID0gbG93
Q2VsbChlZGdlKTsKKyAgICAgICAgc3BlY3VsYXRlV2Vha01hcE9iamVjdChlZGdlLCByZXN1bHQp
OworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIExWYWx1ZSBsb3dXZWFrU2V0
T2JqZWN0KEVkZ2UgZWRnZSkKKyAgICB7CisgICAgICAgIExWYWx1ZSByZXN1bHQgPSBsb3dDZWxs
KGVkZ2UpOworICAgICAgICBzcGVjdWxhdGVXZWFrU2V0T2JqZWN0KGVkZ2UsIHJlc3VsdCk7Cisg
ICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQogICAgIAogICAgIExWYWx1ZSBsb3dTdHJpbmco
RWRnZSBlZGdlLCBPcGVyYW5kU3BlY3VsYXRpb25Nb2RlIG1vZGUgPSBBdXRvbWF0aWNPcGVyYW5k
U3BlY3VsYXRpb24pCiAgICAgewpAQCAtMTMyMzUsNiArMTMyNjAsMTIgQEAgY2xhc3MgTG93ZXJE
RkdUb0IzIHsKICAgICAgICAgY2FzZSBTZXRPYmplY3RVc2U6CiAgICAgICAgICAgICBzcGVjdWxh
dGVTZXRPYmplY3QoZWRnZSk7CiAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBXZWFr
TWFwT2JqZWN0VXNlOgorICAgICAgICAgICAgc3BlY3VsYXRlV2Vha01hcE9iamVjdChlZGdlKTsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFdlYWtTZXRPYmplY3RVc2U6CisgICAg
ICAgICAgICBzcGVjdWxhdGVXZWFrU2V0T2JqZWN0KGVkZ2UpOworICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgIGNhc2UgU3RyaW5nVXNlOgogICAgICAgICAgICAgc3BlY3VsYXRlU3RyaW5nKGVk
Z2UpOwogICAgICAgICAgICAgYnJlYWs7CkBAIC0xMzYzMCw2ICsxMzY2MSwyOCBAQCBjbGFzcyBM
b3dlckRGR1RvQjMgewogICAgIHsKICAgICAgICAgc3BlY3VsYXRlU2V0T2JqZWN0KGVkZ2UsIGxv
d0NlbGwoZWRnZSkpOwogICAgIH0KKworICAgIHZvaWQgc3BlY3VsYXRlV2Vha01hcE9iamVjdChF
ZGdlIGVkZ2UsIExWYWx1ZSBjZWxsKQorICAgIHsKKyAgICAgICAgRlRMX1RZUEVfQ0hFQ0soCisg
ICAgICAgICAgICBqc1ZhbHVlVmFsdWUoY2VsbCksIGVkZ2UsIFNwZWNXZWFrTWFwT2JqZWN0LCBp
c05vdFR5cGUoY2VsbCwgSlNXZWFrTWFwVHlwZSkpOworICAgIH0KKworICAgIHZvaWQgc3BlY3Vs
YXRlV2Vha01hcE9iamVjdChFZGdlIGVkZ2UpCisgICAgeworICAgICAgICBzcGVjdWxhdGVXZWFr
TWFwT2JqZWN0KGVkZ2UsIGxvd0NlbGwoZWRnZSkpOworICAgIH0KKworICAgIHZvaWQgc3BlY3Vs
YXRlV2Vha1NldE9iamVjdChFZGdlIGVkZ2UsIExWYWx1ZSBjZWxsKQorICAgIHsKKyAgICAgICAg
RlRMX1RZUEVfQ0hFQ0soCisgICAgICAgICAgICBqc1ZhbHVlVmFsdWUoY2VsbCksIGVkZ2UsIFNw
ZWNXZWFrU2V0T2JqZWN0LCBpc05vdFR5cGUoY2VsbCwgSlNXZWFrU2V0VHlwZSkpOworICAgIH0K
KworICAgIHZvaWQgc3BlY3VsYXRlV2Vha1NldE9iamVjdChFZGdlIGVkZ2UpCisgICAgeworICAg
ICAgICBzcGVjdWxhdGVXZWFrU2V0T2JqZWN0KGVkZ2UsIGxvd0NlbGwoZWRnZSkpOworICAgIH0K
ICAgICAKICAgICB2b2lkIHNwZWN1bGF0ZVN0cmluZyhFZGdlIGVkZ2UsIExWYWx1ZSBjZWxsKQog
ICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludHJpbnNp
Yy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRyaW5zaWMuY3BwCmluZGV4
IGY5ODU2M2FiYTcxNzAzYjExMmRjZjg4NmVjNDU1YTcwNWZiNWVkMGIuLjlkMTJmZmY5ZGY3NWNl
MTdkNmEwMWIzMDM2YTFiYTdiYTEzNjM5MTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0ludHJpbnNpYy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSW50cmluc2ljLmNwcApAQCAtMTUzLDYgKzE1Myw4IEBAIGNvbnN0IGNoYXIqIGludHJp
bnNpY05hbWUoSW50cmluc2ljIGludHJpbnNpYykKICAgICAgICAgcmV0dXJuICJKU1NldEJ1Y2tl
dE5leHRJbnRyaW5zaWMiOwogICAgIGNhc2UgSlNTZXRCdWNrZXRLZXlJbnRyaW5zaWM6CiAgICAg
ICAgIHJldHVybiAiSlNTZXRCdWNrZXRLZXlJbnRyaW5zaWMiOworICAgIGNhc2UgSlNXZWFrTWFw
R2V0SW50cmluc2ljOgorICAgICAgICByZXR1cm4gIkpTV2Vha01hcEdldEludHJpbnNpYyI7CiAg
ICAgY2FzZSBIYXNPd25Qcm9wZXJ0eUludHJpbnNpYzoKICAgICAgICAgcmV0dXJuICJIYXNPd25Q
cm9wZXJ0eUludHJpbnNpYyI7CiAgICAgY2FzZSBBdG9taWNzQWRkSW50cmluc2ljOgpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50cmluc2ljLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRyaW5zaWMuaAppbmRleCA0YzkyYTRkNjQ0MDQzOGVh
MTkwYmQ3OWNiMzFjYTRjOGEzNjljMDRjLi43NmY5MjcyYTBmZGI5MWIxMGQ3Mzc0NjY1YTNjZDJi
MGMxMjM1NDU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRy
aW5zaWMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRyaW5zaWMuaApA
QCAtODksNiArODksOSBAQCBlbnVtIEludHJpbnNpYyB7CiAgICAgSlNTZXRCdWNrZXRIZWFkSW50
cmluc2ljLAogICAgIEpTU2V0QnVja2V0TmV4dEludHJpbnNpYywKICAgICBKU1NldEJ1Y2tldEtl
eUludHJpbnNpYywKKyAgICBKU1dlYWtNYXBHZXRJbnRyaW5zaWMsCisgICAgSlNXZWFrTWFwSGFz
SW50cmluc2ljLAorICAgIEpTV2Vha1NldEhhc0ludHJpbnNpYywKICAgICBIYXNPd25Qcm9wZXJ0
eUludHJpbnNpYywKICAgICBBdG9taWNzQWRkSW50cmluc2ljLAogICAgIEF0b21pY3NBbmRJbnRy
aW5zaWMsCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGUu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVHlwZS5oCmluZGV4IDJmNzdjZDBj
ZjE0YjcxOGVjYWViOTNmYzdjN2FkNTNlYWFlZmM3ZWUuLmVlZTJhNWVhNTE5NzcxYWRhNTM5ZTEz
Y2RhMmI5ZTVmMzIxN2Y2NDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTVHlwZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVHlwZS5o
CkBAIC05NCw2ICs5NCw4IEBAIGVudW0gSlNUeXBlIDogdWludDhfdCB7CiAgICAgUHJveHlPYmpl
Y3RUeXBlLAogICAgIEpTTWFwVHlwZSwKICAgICBKU1NldFR5cGUsCisgICAgSlNXZWFrTWFwVHlw
ZSwKKyAgICBKU1dlYWtTZXRUeXBlLAogCiAgICAgV2ViQXNzZW1ibHlGdW5jdGlvblR5cGUsCiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTV2Vha01hcC5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNXZWFrTWFwLmgKaW5kZXggNWY4ZmQyMTI1
YTk4YWI0MjVkY2FiODU2NDUzZDRiODkzYTBmN2Y0OC4uNzg4YWVjM2Y0YTI5YmRmMDM0MTA2YmZj
MjUyOGQ1NTg0M2QyN2Y2NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNXZWFrTWFwLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNXZWFr
TWFwLmgKQEAgLTM4LDcgKzM4LDcgQEAgY2xhc3MgSlNXZWFrTWFwIGZpbmFsIDogcHVibGljIFdl
YWtNYXBCYXNlIHsKIAogICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShWTSYg
dm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKQogICAg
IHsKLSAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHBy
b3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOwor
ICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90
eXBlLCBUeXBlSW5mbyhKU1dlYWtNYXBUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7CiAg
ICAgfQogCiAgICAgc3RhdGljIEpTV2Vha01hcCogY3JlYXRlKFZNJiB2bSwgU3RydWN0dXJlKiBz
dHJ1Y3R1cmUpCkBAIC02Miw0ICs2MiwxNiBAQCBjbGFzcyBKU1dlYWtNYXAgZmluYWwgOiBwdWJs
aWMgV2Vha01hcEJhc2UgewogICAgIHN0YXRpYyBTdHJpbmcgdG9TdHJpbmdOYW1lKGNvbnN0IEpT
T2JqZWN0KiwgRXhlY1N0YXRlKik7CiB9OwogCitpbmxpbmUgYm9vbCBpc0pTV2Vha01hcChKU0Nl
bGwqIGZyb20pCit7CisgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX2ZpbmFsPEpTV2Vha01hcD46
OnZhbHVlLCAiIik7CisgICAgcmV0dXJuIGZyb20tPnR5cGUoKSA9PSBKU1dlYWtNYXBUeXBlOwor
fQorCitpbmxpbmUgYm9vbCBpc0pTV2Vha01hcChKU1ZhbHVlIGZyb20pCit7CisgICAgc3RhdGlj
X2Fzc2VydChzdGQ6OmlzX2ZpbmFsPEpTV2Vha01hcD46OnZhbHVlLCAiIik7CisgICAgcmV0dXJu
IGZyb20uaXNDZWxsKCkgJiYgZnJvbS5hc0NlbGwoKS0+dHlwZSgpID09IEpTV2Vha01hcFR5cGU7
Cit9CisKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNXZWFrU2V0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U1dlYWtTZXQuaAppbmRleCA3NTcwZjQyZWQ3MGZmZTBlZjIzZTRjNzQ2NjllYzE4NjhhNjg4NDYx
Li4yMjhjMDM2YjNhMjg3MDk0OTUyZWVhMTA5MDViNTBhMGEyYzQ1NDEzIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1dlYWtTZXQuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU1dlYWtTZXQuaApAQCAtMzgsNyArMzgsNyBAQCBjbGFzcyBK
U1dlYWtTZXQgZmluYWwgOiBwdWJsaWMgV2Vha01hcEJhc2UgewogCiAgICAgc3RhdGljIFN0cnVj
dHVyZSogY3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgewotICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpj
cmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBT
dHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7CisgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0
ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKEpTV2Vha1NldFR5cGUsIFN0
cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKICAgICB9CiAKICAgICBzdGF0aWMgSlNXZWFrU2V0KiBj
cmVhdGUoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKQEAgLTYyLDQgKzYyLDE2IEBAIGNs
YXNzIEpTV2Vha1NldCBmaW5hbCA6IHB1YmxpYyBXZWFrTWFwQmFzZSB7CiAgICAgc3RhdGljIFN0
cmluZyB0b1N0cmluZ05hbWUoY29uc3QgSlNPYmplY3QqLCBFeGVjU3RhdGUqKTsKIH07CiAKK2lu
bGluZSBib29sIGlzSlNXZWFrU2V0KEpTQ2VsbCogZnJvbSkKK3sKKyAgICBzdGF0aWNfYXNzZXJ0
KHN0ZDo6aXNfZmluYWw8SlNXZWFrU2V0Pjo6dmFsdWUsICIiKTsKKyAgICByZXR1cm4gZnJvbS0+
dHlwZSgpID09IEpTV2Vha1NldFR5cGU7Cit9CisKK2lubGluZSBib29sIGlzSlNXZWFrU2V0KEpT
VmFsdWUgZnJvbSkKK3sKKyAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfZmluYWw8SlNXZWFrU2V0
Pjo6dmFsdWUsICIiKTsKKyAgICByZXR1cm4gZnJvbS5pc0NlbGwoKSAmJiBmcm9tLmFzQ2VsbCgp
LT50eXBlKCkgPT0gSlNXZWFrU2V0VHlwZTsKK30KKwogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XZWFrTWFwQmFzZS5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XZWFrTWFwQmFzZS5jcHAKaW5kZXggMGU1MTA2
MWE5NDZhOWUxZDM4MTFhN2ViMjUzZDgzZjVjMjc0MGUyMC4uNGY5MjQ5NjcwMDExOGNmMWMxYTJk
YWQyNDk4NmE4Y2JmODk3M2VkNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvV2Vha01hcEJhc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1dlYWtNYXBCYXNlLmNwcApAQCAtNzIsMTQgKzcyLDYgQEAgdm9pZCBXZWFrTWFwQmFzZTo6c2V0
KFZNJiB2bSwgSlNPYmplY3QqIGtleSwgSlNWYWx1ZSB2YWx1ZSkKICAgICByZXN1bHQuaXRlcmF0
b3ItPnZhbHVlLnNldCh2bSwgdGhpcywgdmFsdWUpOwogfQogCi1KU1ZhbHVlIFdlYWtNYXBCYXNl
OjpnZXQoSlNPYmplY3QqIGtleSkKLXsKLSAgICBhdXRvIGl0ZXIgPSBtX21hcC5maW5kKGtleSk7
Ci0gICAgaWYgKGl0ZXIgPT0gbV9tYXAuZW5kKCkpCi0gICAgICAgIHJldHVybiBqc1VuZGVmaW5l
ZCgpOwotICAgIHJldHVybiBpdGVyLT52YWx1ZS5nZXQoKTsKLX0KLQogYm9vbCBXZWFrTWFwQmFz
ZTo6cmVtb3ZlKEpTT2JqZWN0KiBrZXkpCiB7CiAgICAgcmV0dXJuIG1fbWFwLnJlbW92ZShrZXkp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2Vha01hcEJhc2Uu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dlYWtNYXBCYXNlLmgKaW5kZXggZTNi
YzJhZjQxNmY0ZTI0YmNkOGM4NDViZjEwOTc1ZjViOTY0MGQ1OS4uNGZjNTk3ZGI4NTQ2OGUyODZk
OGJjYTViYTUzMDk0MjEzYjZiNmY1OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvV2Vha01hcEJhc2UuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9XZWFrTWFwQmFzZS5oCkBAIC03MCw0ICs3MCwxMSBAQCBjbGFzcyBXZWFrTWFwQmFzZSA6IHB1
YmxpYyBKU0Rlc3RydWN0aWJsZU9iamVjdCB7CiAgICAgTWFwVHlwZSBtX21hcDsKIH07CiAKK2lu
bGluZSBKU1ZhbHVlIFdlYWtNYXBCYXNlOjpnZXQoSlNPYmplY3QqIGtleSkKK3sKKyAgICBpZiAo
YXV0byByZXN1bHQgPSBtX21hcC5mYXN0R2V0KGtleSkpCisgICAgICAgIHJldHVybiByZXN1bHQu
Z2V0KCk7CisgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIEpT
QwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2Vha01hcFByb3Rv
dHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XZWFrTWFwUHJvdG90eXBl
LmNwcAppbmRleCA4ZmE4NjJlY2RiZmEwMzIyZDg0ZDgwNjIyZmQ5ZmEwODIxZWJlNTA0Li44NWQ0
MWU2ZjEzMTJhZThkNGY5MzM0YTJjMjc0MmVlYjliNjJiZjAxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9XZWFrTWFwUHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9XZWFrTWFwUHJvdG90eXBlLmNwcApAQCAtNDYsMjUgKzQ2
LDI1IEBAIHZvaWQgV2Vha01hcFByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQogICAgIHZtLnByb3RvdHlwZU1hcC5hZGRQcm90b3R5
cGUodGhpcyk7CiAKICAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTih2
bS5wcm9wZXJ0eU5hbWVzLT5kZWxldGVLZXl3b3JkLCBwcm90b0Z1bmNXZWFrTWFwRGVsZXRlLCBE
b250RW51bSwgMSk7Ci0gICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04o
dm0ucHJvcGVydHlOYW1lcy0+Z2V0LCBwcm90b0Z1bmNXZWFrTWFwR2V0LCBEb250RW51bSwgMSk7
CisgICAgSlNDX05BVElWRV9JTlRSSU5TSUNfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKHZt
LnByb3BlcnR5TmFtZXMtPmdldCwgcHJvdG9GdW5jV2Vha01hcEdldCwgRG9udEVudW0sIDEsIEpT
V2Vha01hcEdldEludHJpbnNpYyk7CiAgICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RS
QU5TSVRJT04odm0ucHJvcGVydHlOYW1lcy0+aGFzLCBwcm90b0Z1bmNXZWFrTWFwSGFzLCBEb250
RW51bSwgMSk7CiAgICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04odm0u
cHJvcGVydHlOYW1lcy0+c2V0LCBwcm90b0Z1bmNXZWFrTWFwU2V0LCBEb250RW51bSwgMik7CiAK
ICAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+dG9T
dHJpbmdUYWdTeW1ib2wsIGpzU3RyaW5nKCZ2bSwgIldlYWtNYXAiKSwgRG9udEVudW0gfCBSZWFk
T25seSk7CiB9CiAKLXN0YXRpYyBKU1dlYWtNYXAqIGdldFdlYWtNYXAoQ2FsbEZyYW1lKiBjYWxs
RnJhbWUsIEpTVmFsdWUgdmFsdWUpCitBTFdBWVNfSU5MSU5FIHN0YXRpYyBKU1dlYWtNYXAqIGdl
dFdlYWtNYXAoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEpTVmFsdWUgdmFsdWUpCiB7CiAgICAgVk0m
IHZtID0gY2FsbEZyYW1lLT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1ND
T1BFKHZtKTsKIAotICAgIGlmICghdmFsdWUuaXNPYmplY3QoKSkgeworICAgIGlmIChVTkxJS0VM
WSghdmFsdWUuaXNPYmplY3QoKSkpIHsKICAgICAgICAgdGhyb3dUeXBlRXJyb3IoY2FsbEZyYW1l
LCBzY29wZSwgV1RGOjpBU0NJSUxpdGVyYWwoIkNhbGxlZCBXZWFrTWFwIGZ1bmN0aW9uIG9uIG5v
bi1vYmplY3QiKSk7CiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIAotICAgIGlmIChK
U1dlYWtNYXAqIHdlYWtNYXAgPSBqc0R5bmFtaWNDYXN0PEpTV2Vha01hcCo+KHZtLCB2YWx1ZSkp
Ci0gICAgICAgIHJldHVybiB3ZWFrTWFwOworICAgIGlmIChMSUtFTFkoaXNKU1dlYWtNYXAoYXNP
YmplY3QodmFsdWUpKSkpCisgICAgICAgIHJldHVybiBqc0Nhc3Q8SlNXZWFrTWFwKj4odmFsdWUp
OwogCiAgICAgdGhyb3dUeXBlRXJyb3IoY2FsbEZyYW1lLCBzY29wZSwgV1RGOjpBU0NJSUxpdGVy
YWwoIkNhbGxlZCBXZWFrTWFwIGZ1bmN0aW9uIG9uIGEgbm9uLVdlYWtNYXAgb2JqZWN0IikpOwog
ICAgIHJldHVybiBudWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvV2Vha1NldFByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9XZWFrU2V0UHJvdG90eXBlLmNwcAppbmRleCAyMTM0ZDk4NmJmMjNhZTlmMTFjYzQzNzI5MDc0
MjdjMWZmYWI2ODViLi5hYTgyNDMwOTVkNTVhNzU0YzgxZmU0Njk3Y2RkNzNkMzE4MzU3Y2EzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XZWFrU2V0UHJvdG90eXBl
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XZWFrU2V0UHJvdG90eXBl
LmNwcApAQCAtNTEsMTggKzUxLDE4IEBAIHZvaWQgV2Vha1NldFByb3RvdHlwZTo6ZmluaXNoQ3Jl
YXRpb24oVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQogICAgIHB1dERpcmVj
dFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT50b1N0cmluZ1RhZ1N5bWJv
bCwganNTdHJpbmcoJnZtLCAiV2Vha1NldCIpLCBEb250RW51bSB8IFJlYWRPbmx5KTsKIH0KIAot
c3RhdGljIEpTV2Vha1NldCogZ2V0V2Vha1NldChDYWxsRnJhbWUqIGNhbGxGcmFtZSwgSlNWYWx1
ZSB2YWx1ZSkKK0FMV0FZU19JTkxJTkUgc3RhdGljIEpTV2Vha1NldCogZ2V0V2Vha1NldChDYWxs
RnJhbWUqIGNhbGxGcmFtZSwgSlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBWTSYgdm0gPSBjYWxsRnJh
bWUtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCi0g
ICAgaWYgKCF2YWx1ZS5pc09iamVjdCgpKSB7CisgICAgaWYgKFVOTElLRUxZKCF2YWx1ZS5pc09i
amVjdCgpKSkgewogICAgICAgICB0aHJvd1R5cGVFcnJvcihjYWxsRnJhbWUsIHNjb3BlLCBXVEY6
OkFTQ0lJTGl0ZXJhbCgiQ2FsbGVkIFdlYWtTZXQgZnVuY3Rpb24gb24gbm9uLW9iamVjdCIpKTsK
ICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogCi0gICAgaWYgKEpTV2Vha1NldCogd2Vh
a1NldCA9IGpzRHluYW1pY0Nhc3Q8SlNXZWFrU2V0Kj4odm0sIHZhbHVlKSkKLSAgICAgICAgcmV0
dXJuIHdlYWtTZXQ7CisgICAgaWYgKExJS0VMWShpc0pTV2Vha1NldChhc09iamVjdCh2YWx1ZSkp
KSkKKyAgICAgICAgcmV0dXJuIGpzQ2FzdDxKU1dlYWtTZXQqPih2YWx1ZSk7CiAKICAgICB0aHJv
d1R5cGVFcnJvcihjYWxsRnJhbWUsIHNjb3BlLCBXVEY6OkFTQ0lJTGl0ZXJhbCgiQ2FsbGVkIFdl
YWtTZXQgZnVuY3Rpb24gb24gYSBub24tV2Vha1NldCBvYmplY3QiKSk7CiAgICAgcmV0dXJuIG51
bGxwdHI7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL0NoYW5nZUxvZyBiL0pTVGVzdHMvQ2hhbmdlTG9n
CmluZGV4IDE3NDgwOGIxZjg2NTEzOTJlNjA5NTAyYzAyYTIyY2VkODVhMTU1NTEuLjIyNTAxYzhk
Y2RmYWNiOTk0MDQyNjA0NDNhN2ExN2ExYWExMDA5NjggMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvQ2hh
bmdlTG9nCisrKyBiL0pTVGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTctMDgt
MjYgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CisKKyAgICAgICAgW0RG
R10gT3B0aW1pemUgV2Vha01hcDo6Z2V0IGJ5IGFkZGluZyBpbnRyaW5zaWMgYW5kIGZpeHVwCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzYwMTAKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIG1pY3JvYmVu
Y2htYXJrcy93ZWFrLW1hcC1rZXkuanM6IEFkZGVkLgorICAgICAgICAoYXNzZXJ0KToKKyAgICAg
ICAgKG9iamVjdEtleSk6CisgICAgICAgIChsZXQuc3RhcnQuRGF0ZS5ub3cpOgorCiAyMDE3LTA4
LTI1ICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgogCiAgICAgICAgIFN1cHBvcnQg
Y29tcGlsaW5nIGNhdGNoIGluIHRoZSBERkcKZGlmZiAtLWdpdCBhL0pTVGVzdHMvbWljcm9iZW5j
aG1hcmtzL3dlYWstbWFwLWtleS5qcyBiL0pTVGVzdHMvbWljcm9iZW5jaG1hcmtzL3dlYWstbWFw
LWtleS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi43ZjUzY2ViYzM3YjgwOTA1ZDZjNzcxYzBhNjE1YTRiOGU3ZDc4
MzAyCi0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy9taWNyb2JlbmNobWFya3Mvd2Vhay1tYXAt
a2V5LmpzCkBAIC0wLDAgKzEsMzQgQEAKK2Z1bmN0aW9uIGFzc2VydChiKSB7CisgICAgaWYgKCFi
KQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkJhZCEiKTsKK30KK25vSW5saW5lKGFzc2VydCk7
CisKK2xldCB3ZWFrTWFwID0gbmV3IFdlYWtNYXA7CisKK2Z1bmN0aW9uIG9iamVjdEtleShvKSB7
CisgICAgcmV0dXJuIHdlYWtNYXAuZ2V0KG8pOworfQorbm9JbmxpbmUob2JqZWN0S2V5KTsKKwor
Y29uc3QgaXRlcnMgPSAzMDAwMDA7CitsZXQgc3RhcnQgPSBEYXRlLm5vdygpOworCit7CisgICAg
bGV0IG8gPSB7ZjogMjB9OworICAgIHZhciBhcnJheSA9IFtdOworICAgIGZvciAodmFyIGkgPSAw
OyBpIDwgMTA7IGkrKykgeworICAgICAgICBsZXQgbmV3T2JqZWN0ID0geyBmOiBpIH07CisgICAg
ICAgIHdlYWtNYXAuc2V0KG5ld09iamVjdCwgaSk7CisgICAgICAgIGFycmF5W2ldID0gbmV3T2Jq
ZWN0OworICAgIH0KKworICAgIGZvciAodmFyIGogPSAwOyBqIDwgaXRlcnM7ICsraikgeworICAg
ICAgICBmb3IgKGxldCBpID0gMDsgaSA8IDEwOyBpKyspCisgICAgICAgICAgICBhc3NlcnQob2Jq
ZWN0S2V5KGFycmF5W2ldKSA9PT0gaSk7CisgICAgfQorfQorCitjb25zdCB2ZXJib3NlID0gZmFs
c2U7CitpZiAodmVyYm9zZSkKKyAgICBwcmludChEYXRlLm5vdygpIC0gc3RhcnQpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>319155</attachid>
            <date>2017-08-26 23:57:20 -0700</date>
            <delta_ts>2017-08-27 00:12:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-176010-20170827155719.patch</filename>
            <type>text/plain</type>
            <size>46774</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIxMjMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAx
ZmQ5NWExMGFiNTcwMGVhYmFlMWMxNmZkYzEwZmYyNzhiMzhhMDY1Li4wOGQzZDg2YjhkN2U0NjE0
ZTU3Mzk2MDI0MWExNDc1NGIxNDdhNGNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
NSArMSw4MyBAQAogMjAxNy0wOC0yNiAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KIAorICAgICAgICBbREZHXSBPcHRpbWl6ZSBXZWFrTWFwOjpnZXQgYnkgYWRkaW5nIGlu
dHJpbnNpYyBhbmQgZml4dXAKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE3NjAxMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogYnl0ZWNvZGUvU3BlY3VsYXRlZFR5cGUuY3BwOgorICAgICAgICAoSlNDOjpk
dW1wU3BlY3VsYXRpb24pOgorICAgICAgICAoSlNDOjpzcGVjdWxhdGlvbkZyb21DbGFzc0luZm8p
OgorICAgICAgICAoSlNDOjpzcGVjdWxhdGlvbkZyb21KU1R5cGUpOgorICAgICAgICAoSlNDOjpz
cGVjdWxhdGlvbkZyb21TdHJpbmcpOgorICAgICAgICAqIGJ5dGVjb2RlL1NwZWN1bGF0ZWRUeXBl
Lmg6CisgICAgICAgICogZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmg6CisgICAg
ICAgIChKU0M6OkRGRzo6QWJzdHJhY3RJbnRlcnByZXRlcjxBYnN0cmFjdFN0YXRlVHlwZT46OmV4
ZWN1dGVFZmZlY3RzKToKKyAgICAgICAgKiBkZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwOgorICAg
ICAgICAoSlNDOjpERkc6OkJ5dGVDb2RlUGFyc2VyOjpoYW5kbGVJbnRyaW5zaWNDYWxsKToKKyAg
ICAgICAgKiBkZmcvREZHQ2xvYmJlcml6ZS5oOgorICAgICAgICAoSlNDOjpERkc6OmNsb2JiZXJp
emUpOgorICAgICAgICAqIGRmZy9ERkdEb2VzR0MuY3BwOgorICAgICAgICAoSlNDOjpERkc6OmRv
ZXNHQyk6CisgICAgICAgICogZGZnL0RGR0ZpeHVwUGhhc2UuY3BwOgorICAgICAgICAoSlNDOjpE
Rkc6OkZpeHVwUGhhc2U6OmZpeHVwTm9kZSk6CisgICAgICAgICogZGZnL0RGR0hlYXBMb2NhdGlv
bi5jcHA6CisgICAgICAgIChXVEY6OnByaW50SW50ZXJuYWwpOgorICAgICAgICAqIGRmZy9ERkdI
ZWFwTG9jYXRpb24uaDoKKyAgICAgICAgKiBkZmcvREZHTm9kZS5oOgorICAgICAgICAoSlNDOjpE
Rkc6Ok5vZGU6Omhhc0hlYXBQcmVkaWN0aW9uKToKKyAgICAgICAgKiBkZmcvREZHTm9kZVR5cGUu
aDoKKyAgICAgICAgKiBkZmcvREZHT3BlcmF0aW9ucy5jcHA6CisgICAgICAgICogZGZnL0RGR09w
ZXJhdGlvbnMuaDoKKyAgICAgICAgKiBkZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2Uu
Y3BwOgorICAgICAgICAqIGRmZy9ERkdTYWZlVG9FeGVjdXRlLmg6CisgICAgICAgIChKU0M6OkRG
Rzo6U2FmZVRvRXhlY3V0ZUVkZ2U6Om9wZXJhdG9yKCkpOgorICAgICAgICAoSlNDOjpERkc6OnNh
ZmVUb0V4ZWN1dGUpOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHA6CisgICAg
ICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZVdlYWtNYXBPYmplY3QpOgor
ICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGVXZWFrU2V0T2JqZWN0
KToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlKToKKyAgICAg
ICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVdlYWtNYXBHZXQpOgorICAgICAg
ICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2
ZUpJVDMyXzY0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGls
ZSk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwOgorICAgICAgICAoSlND
OjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlKToKKyAgICAgICAgKiBkZmcvREZHVXNlS2lu
ZC5jcHA6CisgICAgICAgIChXVEY6OnByaW50SW50ZXJuYWwpOgorICAgICAgICAqIGRmZy9ERkdV
c2VLaW5kLmg6CisgICAgICAgIChKU0M6OkRGRzo6dHlwZUZpbHRlckZvcik6CisgICAgICAgIChK
U0M6OkRGRzo6aXNDZWxsKToKKyAgICAgICAgKiBmdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcDoKKyAg
ICAgICAgKEpTQzo6RlRMOjpjYW5Db21waWxlKToKKyAgICAgICAgKiBmdGwvRlRMTG93ZXJERkdU
b0IzLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6Y29tcGlsZU5v
ZGUpOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjpjb21waWxlV2Vha01h
cEdldCk6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6Omxvd1dlYWtNYXBP
YmplY3QpOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjpsb3dXZWFrU2V0
T2JqZWN0KToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6c3BlY3VsYXRl
KToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6c3BlY3VsYXRlV2Vha01h
cE9iamVjdCk6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6OnNwZWN1bGF0
ZVdlYWtTZXRPYmplY3QpOgorICAgICAgICAqIHJ1bnRpbWUvSW50cmluc2ljLmNwcDoKKyAgICAg
ICAgKEpTQzo6aW50cmluc2ljTmFtZSk6CisgICAgICAgICogcnVudGltZS9JbnRyaW5zaWMuaDoK
KyAgICAgICAgKiBydW50aW1lL0pTVHlwZS5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNXZWFrTWFw
Lmg6CisgICAgICAgIChKU0M6OmlzSlNXZWFrTWFwKToKKyAgICAgICAgKiBydW50aW1lL0pTV2Vh
a1NldC5oOgorICAgICAgICAoSlNDOjppc0pTV2Vha1NldCk6CisgICAgICAgICogcnVudGltZS9X
ZWFrTWFwQmFzZS5jcHA6CisgICAgICAgIChKU0M6OldlYWtNYXBCYXNlOjpnZXQpOiBEZWxldGVk
LgorICAgICAgICAqIHJ1bnRpbWUvV2Vha01hcEJhc2UuaDoKKyAgICAgICAgKEpTQzo6V2Vha01h
cEJhc2U6OmdldCk6CisgICAgICAgICogcnVudGltZS9XZWFrTWFwUHJvdG90eXBlLmNwcDoKKyAg
ICAgICAgKEpTQzo6V2Vha01hcFByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAo
SlNDOjpnZXRXZWFrTWFwKToKKyAgICAgICAgKiBydW50aW1lL1dlYWtTZXRQcm90b3R5cGUuY3Bw
OgorICAgICAgICAoSlNDOjpnZXRXZWFrU2V0KToKKworMjAxNy0wOC0yNiAgWXVzdWtlIFN1enVr
aSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KKwogICAgICAgICBVbnJldmlld2VkLCBzdXBwcmVz
cyB3YXJuaW5ncyBpbiBHVEsgcG9ydAogCiAgICAgICAgIFRoZSAiYmxvY2siIHZhcmlhYmxlIGhp
ZGVzIHRoZSBhcmd1bWVudCB2YXJpYWJsZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9TcGVjdWxhdGVkVHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvU3BlY3VsYXRlZFR5cGUuY3BwCmluZGV4IGNhMjU5NDczNzBmODUyMWEwM2YyZDE1
ZWY5NWY3MDU0ZWZjNWQwZGYuLmJlOWU2ODAxYTY1NWE5OTgwYmRkNjJiNDBmZjIyYzU2YzU2YmM0
YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TcGVjdWxhdGVk
VHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1NwZWN1bGF0ZWRU
eXBlLmNwcApAQCAtMzUsNiArMzUsOCBAQAogI2luY2x1ZGUgIkpTRnVuY3Rpb24uaCIKICNpbmNs
dWRlICJKU01hcC5oIgogI2luY2x1ZGUgIkpTU2V0LmgiCisjaW5jbHVkZSAiSlNXZWFrTWFwLmgi
CisjaW5jbHVkZSAiSlNXZWFrU2V0LmgiCiAjaW5jbHVkZSAiUHJveHlPYmplY3QuaCIKICNpbmNs
dWRlICJSZWdFeHBPYmplY3QuaCIKICNpbmNsdWRlICJTY29wZWRBcmd1bWVudHMuaCIKQEAgLTE4
MCw2ICsxODIsMTYgQEAgdm9pZCBkdW1wU3BlY3VsYXRpb24oUHJpbnRTdHJlYW0mIG91dFN0cmVh
bSwgU3BlY3VsYXRlZFR5cGUgdmFsdWUpCiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAg
ICAgaXNUb3AgPSBmYWxzZTsKIAorICAgICAgICAgICAgaWYgKHZhbHVlICYgU3BlY1dlYWtNYXBP
YmplY3QpCisgICAgICAgICAgICAgICAgc3RyT3V0LnByaW50KCJXZWFrTWFwT2JqZWN0Iik7Cisg
ICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgaXNUb3AgPSBmYWxzZTsKKworICAgICAg
ICAgICAgaWYgKHZhbHVlICYgU3BlY1dlYWtTZXRPYmplY3QpCisgICAgICAgICAgICAgICAgc3Ry
T3V0LnByaW50KCJXZWFrU2V0T2JqZWN0Iik7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAg
ICAgICAgaXNUb3AgPSBmYWxzZTsKKwogICAgICAgICAgICAgaWYgKHZhbHVlICYgU3BlY1Byb3h5
T2JqZWN0KQogICAgICAgICAgICAgICAgIHN0ck91dC5wcmludCgiUHJveHlPYmplY3QiKTsKICAg
ICAgICAgICAgIGVsc2UKQEAgLTQwMiw2ICs0MTQsMTIgQEAgU3BlY3VsYXRlZFR5cGUgc3BlY3Vs
YXRpb25Gcm9tQ2xhc3NJbmZvKGNvbnN0IENsYXNzSW5mbyogY2xhc3NJbmZvKQogICAgIGlmIChj
bGFzc0luZm8gPT0gSlNTZXQ6OmluZm8oKSkKICAgICAgICAgcmV0dXJuIFNwZWNTZXRPYmplY3Q7
CiAKKyAgICBpZiAoY2xhc3NJbmZvID09IEpTV2Vha01hcDo6aW5mbygpKQorICAgICAgICByZXR1
cm4gU3BlY1dlYWtNYXBPYmplY3Q7CisKKyAgICBpZiAoY2xhc3NJbmZvID09IEpTV2Vha1NldDo6
aW5mbygpKQorICAgICAgICByZXR1cm4gU3BlY1dlYWtTZXRPYmplY3Q7CisKICAgICBpZiAoY2xh
c3NJbmZvID09IFByb3h5T2JqZWN0OjppbmZvKCkpCiAgICAgICAgIHJldHVybiBTcGVjUHJveHlP
YmplY3Q7CiAgICAgCkBAIC01MjAsNiArNTM4LDEwIEBAIFNwZWN1bGF0ZWRUeXBlIHNwZWN1bGF0
aW9uRnJvbUpTVHlwZShKU1R5cGUgdHlwZSkKICAgICAgICAgcmV0dXJuIFNwZWNNYXBPYmplY3Q7
CiAgICAgY2FzZSBKU1NldFR5cGU6CiAgICAgICAgIHJldHVybiBTcGVjU2V0T2JqZWN0OworICAg
IGNhc2UgSlNXZWFrTWFwVHlwZToKKyAgICAgICAgcmV0dXJuIFNwZWNXZWFrTWFwT2JqZWN0Owor
ICAgIGNhc2UgSlNXZWFrU2V0VHlwZToKKyAgICAgICAgcmV0dXJuIFNwZWNXZWFrU2V0T2JqZWN0
OwogICAgIGRlZmF1bHQ6CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIH0KQEAg
LTcwMSw2ICs3MjMsMTAgQEAgU3BlY3VsYXRlZFR5cGUgc3BlY3VsYXRpb25Gcm9tU3RyaW5nKGNv
bnN0IGNoYXIqIHNwZWN1bGF0aW9uKQogICAgICAgICByZXR1cm4gU3BlY01hcE9iamVjdDsKICAg
ICBpZiAoIXN0cm5jbXAoc3BlY3VsYXRpb24sICJTcGVjU2V0T2JqZWN0Iiwgc3RybGVuKCJTcGVj
U2V0T2JqZWN0IikpKQogICAgICAgICByZXR1cm4gU3BlY1NldE9iamVjdDsKKyAgICBpZiAoIXN0
cm5jbXAoc3BlY3VsYXRpb24sICJTcGVjV2Vha01hcE9iamVjdCIsIHN0cmxlbigiU3BlY1dlYWtN
YXBPYmplY3QiKSkpCisgICAgICAgIHJldHVybiBTcGVjV2Vha01hcE9iamVjdDsKKyAgICBpZiAo
IXN0cm5jbXAoc3BlY3VsYXRpb24sICJTcGVjV2Vha1NldE9iamVjdCIsIHN0cmxlbigiU3BlY1dl
YWtTZXRPYmplY3QiKSkpCisgICAgICAgIHJldHVybiBTcGVjV2Vha1NldE9iamVjdDsKICAgICBp
ZiAoIXN0cm5jbXAoc3BlY3VsYXRpb24sICJTcGVjUHJveHlPYmplY3QiLCBzdHJsZW4oIlNwZWNQ
cm94eU9iamVjdCIpKSkKICAgICAgICAgcmV0dXJuIFNwZWNQcm94eU9iamVjdDsKICAgICBpZiAo
IXN0cm5jbXAoc3BlY3VsYXRpb24sICJTcGVjRGVyaXZlZEFycmF5Iiwgc3RybGVuKCJTcGVjRGVy
aXZlZEFycmF5IikpKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L1NwZWN1bGF0ZWRUeXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3BlY3Vs
YXRlZFR5cGUuaAppbmRleCBiZTg5MmYyNjlhNWIxYjRkMjMzYTZmYjMwZDZiMThmNTYyNGRjMDgy
Li43NWU0NDJkNzkzM2ZkNWFmZGNmNGViYTUwNjZlMDZhMjNmMmM1Y2EyIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3BlY3VsYXRlZFR5cGUuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3BlY3VsYXRlZFR5cGUuaApAQCAtNTgsMjYgKzU4
LDI4IEBAIHN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjU3RyaW5nT2JqZWN0ICAgICAg
ID0gMXVsbCA8PCAxNDsgLy8gSXQncyBkZWZpbml0CiBzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5
cGUgU3BlY1JlZ0V4cE9iamVjdCAgICAgICA9IDF1bGwgPDwgMTU7IC8vIEl0J3MgZGVmaW5pdGVs
eSBhIFJlZ0V4cE9iamVjdCAoYW5kIG5vdCBhbnkgc3ViY2xhc3Mgb2YgUmVnRXhwT2JqZWN0KS4K
IHN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjTWFwT2JqZWN0ICAgICAgICAgID0gMXVs
bCA8PCAxNjsgLy8gSXQncyBkZWZpbml0ZWx5IGEgTWFwIG9iamVjdCBvciBvbmUgb2YgaXRzIHN1
YmNsYXNzZXMuCiBzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY1NldE9iamVjdCAgICAg
ICAgICA9IDF1bGwgPDwgMTc7IC8vIEl0J3MgZGVmaW5pdGVseSBhIFNldCBvYmplY3Qgb3Igb25l
IG9mIGl0cyBzdWJjbGFzc2VzLgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNQcm94
eU9iamVjdCAgICAgICAgPSAxdWxsIDw8IDE4OyAvLyBJdCdzIGRlZmluaXRlbHkgYSBQcm94eSBv
YmplY3Qgb3Igb25lIG9mIGl0cyBzdWJjbGFzc2VzLgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRU
eXBlIFNwZWNEZXJpdmVkQXJyYXkgICAgICAgPSAxdWxsIDw8IDE5OyAvLyBJdCdzIGRlZmluaXRl
bHkgYSBEZXJpdmVkQXJyYXkgb2JqZWN0Lgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNw
ZWNPYmplY3RPdGhlciAgICAgICAgPSAxdWxsIDw8IDIwOyAvLyBJdCdzIGRlZmluaXRlbHkgYW4g
b2JqZWN0IGJ1dCBub3QgSlNGaW5hbE9iamVjdCwgSlNBcnJheSwgb3IgSlNGdW5jdGlvbi4KLXN0
YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjT2JqZWN0ICAgICAgICAgICAgID0gU3BlY0Zp
bmFsT2JqZWN0IHwgU3BlY0FycmF5IHwgU3BlY0Z1bmN0aW9uIHwgU3BlY1R5cGVkQXJyYXlWaWV3
IHwgU3BlY0RpcmVjdEFyZ3VtZW50cyB8IFNwZWNTY29wZWRBcmd1bWVudHMgfCBTcGVjU3RyaW5n
T2JqZWN0IHwgU3BlY1JlZ0V4cE9iamVjdCB8IFNwZWNNYXBPYmplY3QgfCBTcGVjU2V0T2JqZWN0
IHwgU3BlY1Byb3h5T2JqZWN0IHwgU3BlY0Rlcml2ZWRBcnJheSB8IFNwZWNPYmplY3RPdGhlcjsg
Ly8gQml0bWFzayB1c2VkIGZvciB0ZXN0aW5nIGZvciBhbnkga2luZCBvZiBvYmplY3QgcHJlZGlj
dGlvbi4KLXN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjU3RyaW5nSWRlbnQgICAgICAg
ID0gMXVsbCA8PCAyMTsgLy8gSXQncyBkZWZpbml0ZWx5IGEgSlNTdHJpbmcsIGFuZCBpdCdzIGFu
IGlkZW50aWZpZXIuCi1zdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY1N0cmluZ1ZhciAg
ICAgICAgICA9IDF1bGwgPDwgMjI7IC8vIEl0J3MgZGVmaW5pdGVseSBhIEpTU3RyaW5nLCBhbmQg
aXQncyBub3QgYW4gaWRlbnRpZmllci4KK3N0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVj
V2Vha01hcE9iamVjdCAgICAgID0gMXVsbCA8PCAxODsgLy8gSXQncyBkZWZpbml0ZWx5IGEgV2Vh
a01hcCBvYmplY3Qgb3Igb25lIG9mIGl0cyBzdWJjbGFzc2VzLgorc3RhdGljIGNvbnN0IFNwZWN1
bGF0ZWRUeXBlIFNwZWNXZWFrU2V0T2JqZWN0ICAgICAgPSAxdWxsIDw8IDE5OyAvLyBJdCdzIGRl
ZmluaXRlbHkgYSBXZWFrU2V0IG9iamVjdCBvciBvbmUgb2YgaXRzIHN1YmNsYXNzZXMuCitzdGF0
aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY1Byb3h5T2JqZWN0ICAgICAgICA9IDF1bGwgPDwg
MjA7IC8vIEl0J3MgZGVmaW5pdGVseSBhIFByb3h5IG9iamVjdCBvciBvbmUgb2YgaXRzIHN1YmNs
YXNzZXMuCitzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0Rlcml2ZWRBcnJheSAgICAg
ICA9IDF1bGwgPDwgMjE7IC8vIEl0J3MgZGVmaW5pdGVseSBhIERlcml2ZWRBcnJheSBvYmplY3Qu
CitzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY09iamVjdE90aGVyICAgICAgICA9IDF1
bGwgPDwgMjI7IC8vIEl0J3MgZGVmaW5pdGVseSBhbiBvYmplY3QgYnV0IG5vdCBKU0ZpbmFsT2Jq
ZWN0LCBKU0FycmF5LCBvciBKU0Z1bmN0aW9uLgorc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBl
IFNwZWNPYmplY3QgICAgICAgICAgICAgPSBTcGVjRmluYWxPYmplY3QgfCBTcGVjQXJyYXkgfCBT
cGVjRnVuY3Rpb24gfCBTcGVjVHlwZWRBcnJheVZpZXcgfCBTcGVjRGlyZWN0QXJndW1lbnRzIHwg
U3BlY1Njb3BlZEFyZ3VtZW50cyB8IFNwZWNTdHJpbmdPYmplY3QgfCBTcGVjUmVnRXhwT2JqZWN0
IHwgU3BlY01hcE9iamVjdCB8IFNwZWNTZXRPYmplY3QgfCBTcGVjV2Vha01hcE9iamVjdCB8IFNw
ZWNXZWFrU2V0T2JqZWN0IHwgU3BlY1Byb3h5T2JqZWN0IHwgU3BlY0Rlcml2ZWRBcnJheSB8IFNw
ZWNPYmplY3RPdGhlcjsgLy8gQml0bWFzayB1c2VkIGZvciB0ZXN0aW5nIGZvciBhbnkga2luZCBv
ZiBvYmplY3QgcHJlZGljdGlvbi4KK3N0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjU3Ry
aW5nSWRlbnQgICAgICAgID0gMXVsbCA8PCAyMzsgLy8gSXQncyBkZWZpbml0ZWx5IGEgSlNTdHJp
bmcsIGFuZCBpdCdzIGFuIGlkZW50aWZpZXIuCitzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUg
U3BlY1N0cmluZ1ZhciAgICAgICAgICA9IDF1bGwgPDwgMjQ7IC8vIEl0J3MgZGVmaW5pdGVseSBh
IEpTU3RyaW5nLCBhbmQgaXQncyBub3QgYW4gaWRlbnRpZmllci4KIHN0YXRpYyBjb25zdCBTcGVj
dWxhdGVkVHlwZSBTcGVjU3RyaW5nICAgICAgICAgICAgID0gU3BlY1N0cmluZ0lkZW50IHwgU3Bl
Y1N0cmluZ1ZhcjsgLy8gSXQncyBkZWZpbml0ZWx5IGEgSlNTdHJpbmcuCi1zdGF0aWMgY29uc3Qg
U3BlY3VsYXRlZFR5cGUgU3BlY1N5bWJvbCAgICAgICAgICAgICA9IDF1bGwgPDwgMjM7IC8vIEl0
J3MgZGVmaW5pdGVseSBhIFN5bWJvbC4KLXN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVj
Q2VsbE90aGVyICAgICAgICAgID0gMXVsbCA8PCAyNDsgLy8gSXQncyBkZWZpbml0ZWx5IGEgSlND
ZWxsIGJ1dCBub3QgYSBzdWJjbGFzcyBvZiBKU09iamVjdCBhbmQgZGVmaW5pdGVseSBub3QgYSBK
U1N0cmluZyBvciBhIFN5bWJvbC4KK3N0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjU3lt
Ym9sICAgICAgICAgICAgID0gMXVsbCA8PCAyNTsgLy8gSXQncyBkZWZpbml0ZWx5IGEgU3ltYm9s
Lgorc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNDZWxsT3RoZXIgICAgICAgICAgPSAx
dWxsIDw8IDI2OyAvLyBJdCdzIGRlZmluaXRlbHkgYSBKU0NlbGwgYnV0IG5vdCBhIHN1YmNsYXNz
IG9mIEpTT2JqZWN0IGFuZCBkZWZpbml0ZWx5IG5vdCBhIEpTU3RyaW5nIG9yIGEgU3ltYm9sLgog
c3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNDZWxsICAgICAgICAgICAgICAgPSBTcGVj
T2JqZWN0IHwgU3BlY1N0cmluZyB8IFNwZWNTeW1ib2wgfCBTcGVjQ2VsbE90aGVyOyAvLyBJdCdz
IGRlZmluaXRlbHkgYSBKU0NlbGwuCi1zdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0Jv
b2xJbnQzMiAgICAgICAgICA9IDF1bGwgPDwgMjU7IC8vIEl0J3MgZGVmaW5pdGVseSBhbiBJbnQz
MiB3aXRoIHZhbHVlIDAgb3IgMS4KLXN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjTm9u
Qm9vbEludDMyICAgICAgID0gMXVsbCA8PCAyNjsgLy8gSXQncyBkZWZpbml0ZWx5IGFuIEludDMy
IHdpdGggdmFsdWUgb3RoZXIgdGhhbiAwIG9yIDEuCitzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5
cGUgU3BlY0Jvb2xJbnQzMiAgICAgICAgICA9IDF1bGwgPDwgMjc7IC8vIEl0J3MgZGVmaW5pdGVs
eSBhbiBJbnQzMiB3aXRoIHZhbHVlIDAgb3IgMS4KK3N0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlw
ZSBTcGVjTm9uQm9vbEludDMyICAgICAgID0gMXVsbCA8PCAyODsgLy8gSXQncyBkZWZpbml0ZWx5
IGFuIEludDMyIHdpdGggdmFsdWUgb3RoZXIgdGhhbiAwIG9yIDEuCiBzdGF0aWMgY29uc3QgU3Bl
Y3VsYXRlZFR5cGUgU3BlY0ludDMyT25seSAgICAgICAgICA9IFNwZWNCb29sSW50MzIgfCBTcGVj
Tm9uQm9vbEludDMyOyAvLyBJdCdzIGRlZmluaXRlbHkgYW4gSW50MzIuCi1zdGF0aWMgY29uc3Qg
U3BlY3VsYXRlZFR5cGUgU3BlY0ludDUyT25seSAgICAgICAgICA9IDF1bGwgPDwgMjc7IC8vIEl0
J3MgZGVmaW5pdGVseSBhbiBJbnQ1MiBhbmQgd2UgaW50ZW5kIGl0IHRvIHVuYm94IGl0LiBJdCdz
IGFsc28gZGVmaW5pdGVseSBub3QgYW4gSW50MzIuCitzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5
cGUgU3BlY0ludDUyT25seSAgICAgICAgICA9IDF1bGwgPDwgMjk7IC8vIEl0J3MgZGVmaW5pdGVs
eSBhbiBJbnQ1MiBhbmQgd2UgaW50ZW5kIGl0IHRvIHVuYm94IGl0LiBJdCdzIGFsc28gZGVmaW5p
dGVseSBub3QgYW4gSW50MzIuCiBzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0FueUlu
dCAgICAgICAgICAgICA9IFNwZWNJbnQzMk9ubHkgfCBTcGVjSW50NTJPbmx5OyAvLyBJdCdzIHNv
bWV0aGluZyB0aGF0IHdlIGNhbiBkbyBtYWNoaW5lIGludCBhcml0aG1ldGljIG9uLgotc3RhdGlj
IGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNBbnlJbnRBc0RvdWJsZSAgICAgPSAxdWxsIDw8IDI4
OyAvLyBJdCdzIGRlZmluaXRlbHkgYW4gSW50NTIgYW5kIGl0J3MgaW5zaWRlIGEgZG91YmxlLgot
c3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNOb25JbnRBc0RvdWJsZSAgICAgPSAxdWxs
IDw8IDI5OyAvLyBJdCdzIGRlZmluaXRlbHkgbm90IGFuIEludDUyIGJ1dCBpdCdzIGEgcmVhbCBu
dW1iZXIgYW5kIGl0J3MgYSBkb3VibGUuCitzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3Bl
Y0FueUludEFzRG91YmxlICAgICA9IDF1bGwgPDwgMzA7IC8vIEl0J3MgZGVmaW5pdGVseSBhbiBJ
bnQ1MiBhbmQgaXQncyBpbnNpZGUgYSBkb3VibGUuCitzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5
cGUgU3BlY05vbkludEFzRG91YmxlICAgICA9IDF1bGwgPDwgMzE7IC8vIEl0J3MgZGVmaW5pdGVs
eSBub3QgYW4gSW50NTIgYnV0IGl0J3MgYSByZWFsIG51bWJlciBhbmQgaXQncyBhIGRvdWJsZS4K
IHN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjRG91YmxlUmVhbCAgICAgICAgID0gU3Bl
Y05vbkludEFzRG91YmxlIHwgU3BlY0FueUludEFzRG91YmxlOyAvLyBJdCdzIGRlZmluaXRlbHkg
YSBub24tTmFOIGRvdWJsZS4KLXN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjRG91Ymxl
UHVyZU5hTiAgICAgID0gMXVsbCA8PCAzMDsgLy8gSXQncyBkZWZpbml0ZWx5IGEgTmFOIHRoYXQg
aXMgc2FmZSB0byB0YWcgKGkuZS4gcHVyZSkuCi1zdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUg
U3BlY0RvdWJsZUltcHVyZU5hTiAgICA9IDF1bGwgPDwgMzE7IC8vIEl0J3MgZGVmaW5pdGVseSBh
IE5hTiB0aGF0IGlzIHVuc2FmZSB0byB0YWcgKGkuZS4gaW1wdXJlKS4KK3N0YXRpYyBjb25zdCBT
cGVjdWxhdGVkVHlwZSBTcGVjRG91YmxlUHVyZU5hTiAgICAgID0gMXVsbCA8PCAzMjsgLy8gSXQn
cyBkZWZpbml0ZWx5IGEgTmFOIHRoYXQgaXMgc2FmZSB0byB0YWcgKGkuZS4gcHVyZSkuCitzdGF0
aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0RvdWJsZUltcHVyZU5hTiAgICA9IDF1bGwgPDwg
MzM7IC8vIEl0J3MgZGVmaW5pdGVseSBhIE5hTiB0aGF0IGlzIHVuc2FmZSB0byB0YWcgKGkuZS4g
aW1wdXJlKS4KIHN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjRG91YmxlTmFOICAgICAg
ICAgID0gU3BlY0RvdWJsZVB1cmVOYU4gfCBTcGVjRG91YmxlSW1wdXJlTmFOOyAvLyBJdCdzIGRl
ZmluaXRlbHkgc29tZSBraW5kIG9mIE5hTi4KIHN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBT
cGVjQnl0ZWNvZGVEb3VibGUgICAgID0gU3BlY0RvdWJsZVJlYWwgfCBTcGVjRG91YmxlUHVyZU5h
TjsgLy8gSXQncyBlaXRoZXIgYSBub24tTmFOIG9yIGEgTmFOIGRvdWJsZSwgYnV0IGl0J3MgZGVm
aW5pdGVseSBub3QgaW1wdXJlIE5hTi4KIHN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVj
RnVsbERvdWJsZSAgICAgICAgID0gU3BlY0RvdWJsZVJlYWwgfCBTcGVjRG91YmxlTmFOOyAvLyBJ
dCdzIGVpdGhlciBhIG5vbi1OYU4gb3IgYSBOYU4gZG91YmxlLgpAQCAtODUsMTIgKzg3LDEyIEBA
IHN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjQnl0ZWNvZGVSZWFsTnVtYmVyID0gU3Bl
Y0ludDMyT25seSB8IFNwZWNEb3VibGVSCiBzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3Bl
Y0Z1bGxSZWFsTnVtYmVyICAgICA9IFNwZWNBbnlJbnQgfCBTcGVjRG91YmxlUmVhbDsgLy8gSXQn
cyBlaXRoZXIgYW4gSW50MzIgb3IgYSBEb3VibGVSZWFsLCBvciBhIEludDUyLgogc3RhdGljIGNv
bnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNCeXRlY29kZU51bWJlciAgICAgPSBTcGVjSW50MzJPbmx5
IHwgU3BlY0J5dGVjb2RlRG91YmxlOyAvLyBJdCdzIGVpdGhlciBhbiBJbnQzMiBvciBhIERvdWJs
ZSwgYW5kIHRoZSBEb3VibGUgY2Fubm90IGJlIGFuIGltcHVyZSBOYU4uCiBzdGF0aWMgY29uc3Qg
U3BlY3VsYXRlZFR5cGUgU3BlY0Z1bGxOdW1iZXIgICAgICAgICA9IFNwZWNBbnlJbnQgfCBTcGVj
RnVsbERvdWJsZTsgLy8gSXQncyBlaXRoZXIgYW4gSW50MzIsIEludDUyLCBvciBhIERvdWJsZSwg
YW5kIHRoZSBEb3VibGUgY2FuIGJlIGltcHVyZSBOYU4uCi1zdGF0aWMgY29uc3QgU3BlY3VsYXRl
ZFR5cGUgU3BlY0Jvb2xlYW4gICAgICAgICAgICA9IDF1bGwgPDwgMzI7IC8vIEl0J3MgZGVmaW5p
dGVseSBhIEJvb2xlYW4uCi1zdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY090aGVyICAg
ICAgICAgICAgICA9IDF1bGwgPDwgMzM7IC8vIEl0J3MgZGVmaW5pdGVseSBlaXRoZXIgTnVsbCBv
ciBVbmRlZmluZWQuCitzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0Jvb2xlYW4gICAg
ICAgICAgICA9IDF1bGwgPDwgMzQ7IC8vIEl0J3MgZGVmaW5pdGVseSBhIEJvb2xlYW4uCitzdGF0
aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY090aGVyICAgICAgICAgICAgICA9IDF1bGwgPDwg
MzU7IC8vIEl0J3MgZGVmaW5pdGVseSBlaXRoZXIgTnVsbCBvciBVbmRlZmluZWQuCiBzdGF0aWMg
Y29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY01pc2MgICAgICAgICAgICAgICA9IFNwZWNCb29sZWFu
IHwgU3BlY090aGVyOyAvLyBJdCdzIGRlZmluaXRlbHkgZWl0aGVyIGEgYm9vbGVhbiwgTnVsbCwg
b3IgVW5kZWZpbmVkLgogc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNIZWFwVG9wICAg
ICAgICAgICAgPSBTcGVjQ2VsbCB8IFNwZWNCeXRlY29kZU51bWJlciB8IFNwZWNNaXNjOyAvLyBJ
dCBjYW4gYmUgYW55IG9mIHRoZSBhYm92ZSwgZXhjZXB0IGZvciBTcGVjSW50NTJPbmx5IGFuZCBT
cGVjRG91YmxlSW1wdXJlTmFOLgogc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNQcmlt
aXRpdmUgICAgICAgICAgPSBTcGVjU3RyaW5nIHwgU3BlY1N5bWJvbCB8IFNwZWNCeXRlY29kZU51
bWJlciB8IFNwZWNNaXNjOyAvLyBJdCdzIGFueSBub24tT2JqZWN0IEpTVmFsdWUuCi1zdGF0aWMg
Y29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0VtcHR5ICAgICAgICAgICAgICA9IDF1bGwgPDwgMzQ7
IC8vIEl0J3MgZGVmaW5pdGVseSBhbiBlbXB0eSB2YWx1ZSBtYXJrZXIuCitzdGF0aWMgY29uc3Qg
U3BlY3VsYXRlZFR5cGUgU3BlY0VtcHR5ICAgICAgICAgICAgICA9IDF1bGwgPDwgMzY7IC8vIEl0
J3MgZGVmaW5pdGVseSBhbiBlbXB0eSB2YWx1ZSBtYXJrZXIuCiBzdGF0aWMgY29uc3QgU3BlY3Vs
YXRlZFR5cGUgU3BlY0J5dGVjb2RlVG9wICAgICAgICA9IFNwZWNIZWFwVG9wIHwgU3BlY0VtcHR5
OyAvLyBJdCBjYW4gYmUgYW55IG9mIHRoZSBhYm92ZSwgZXhjZXB0IGZvciBTcGVjSW50NTJPbmx5
IGFuZCBTcGVjRG91YmxlSW1wdXJlTmFOLiBDb3JyZXNwb25kcyB0byB3aGF0IGNvdWxkIGJlIGZv
dW5kIGluIGEgYnl0ZWNvZGUgbG9jYWwuCiBzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3Bl
Y0Z1bGxUb3AgICAgICAgICAgICA9IFNwZWNCeXRlY29kZVRvcCB8IFNwZWNGdWxsTnVtYmVyOyAv
LyBJdCBjYW4gYmUgYW55dGhpbmcgdGhhdCBieXRlY29kZSBjb3VsZCBzZWUgcGx1cyBleG90aWMg
ZW5jb2RpbmdzIG9mIG51bWJlcnMuCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaAppbmRleCBiYmEwNmRhY2Rm
MTlhM2Y5NmEzN2I0OTZiMGMyNzhkYWIxZGEyZTQxLi41YzI2MzFjZmNhMGExMjIzZTNmMDRiY2Vj
OTM3M2FkNjM1YmQ0YzE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oCkBAIC0xMDczLDYgKzEwNzMsMTAg
QEAgYm9vbCBBYnN0cmFjdEludGVycHJldGVyPEFic3RyYWN0U3RhdGVUeXBlPjo6ZXhlY3V0ZUVm
ZmVjdHModW5zaWduZWQgY2xvYmJlckxpbWkKICAgICAgICAgfQogICAgICAgICBicmVhazsKIAor
ICAgIGNhc2UgV2Vha01hcEdldDoKKyAgICAgICAgZm9yTm9kZShub2RlKS5tYWtlQnl0ZWNvZGVU
b3AoKTsKKyAgICAgICAgYnJlYWs7CisKICAgICBjYXNlIElzRW1wdHk6CiAgICAgY2FzZSBJc1Vu
ZGVmaW5lZDoKICAgICBjYXNlIElzQm9vbGVhbjoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKaW5kZXggZTk3YjM4NzNiMzdiYjc3MDEzNzhjZmVl
ZmM4YjgwODUxYTFlNzk1MC4uZWM5MGMwODMwMWM3NDQyYzk2ZDZhNTdlMWI4ZmMwNGQ1NDNmZjM2
YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNl
ci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5j
cHAKQEAgLTI5NDYsNiArMjk0NiwyMSBAQCBib29sIEJ5dGVDb2RlUGFyc2VyOjpoYW5kbGVJbnRy
aW5zaWNDYWxsKE5vZGUqIGNhbGxlZSwgaW50IHJlc3VsdE9wZXJhbmQsIEludHJpbgogICAgICAg
ICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKKyAgICBjYXNlIEpTV2Vha01hcEdldEludHJpbnNpYzog
eworICAgICAgICBpZiAoYXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMgIT0gMikKKyAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICBpZiAobV9pbmxpbmVTdGFja1RvcC0+bV9leGl0
UHJvZmlsZS5oYXNFeGl0U2l0ZShtX2N1cnJlbnRJbmRleCwgQmFkVHlwZSkpCisgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgaW5zZXJ0Q2hlY2tzKCk7CisgICAgICAgIE5vZGUq
IG1hcCA9IGdldCh2aXJ0dWFsUmVnaXN0ZXJGb3JBcmd1bWVudCgwLCByZWdpc3Rlck9mZnNldCkp
OworICAgICAgICBOb2RlKiBrZXkgPSBnZXQodmlydHVhbFJlZ2lzdGVyRm9yQXJndW1lbnQoMSwg
cmVnaXN0ZXJPZmZzZXQpKTsKKyAgICAgICAgTm9kZSogcmVzdWx0ID0gYWRkVG9HcmFwaChXZWFr
TWFwR2V0LCBPcEluZm8oKSwgT3BJbmZvKHByZWRpY3Rpb24pLCBtYXAsIGtleSk7CisgICAgICAg
IHNldChWaXJ0dWFsUmVnaXN0ZXIocmVzdWx0T3BlcmFuZCksIHJlc3VsdCk7CisgICAgICAgIHJl
dHVybiB0cnVlOworICAgIH0KKwogICAgIGNhc2UgSGFzT3duUHJvcGVydHlJbnRyaW5zaWM6IHsK
ICAgICAgICAgaWYgKGFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzICE9IDIpCiAgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0Nsb2JiZXJpemUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5o
CmluZGV4IDE2NmU2YWY0NWY0OTRlY2Y2YzZjM2IxYzJhYzJlODgyOGY2ZDJlZWMuLjZjYTVkNzE4
YzgzNjM3MGFjYmFiZDZlOWEzMGQ1YTRjNjkyNTdmZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHQ2xvYmJlcml6ZS5oCkBAIC0xNTQ3LDYgKzE1NDcsNyBAQCB2b2lkIGNsb2JiZXJp
emUoR3JhcGgmIGdyYXBoLCBOb2RlKiBub2RlLCBjb25zdCBSZWFkRnVuY3RvciYgcmVhZCwgY29u
c3QgV3JpdGVGdQogICAgIGNhc2UgTWFwSGFzaDoKICAgICAgICAgZGVmKFB1cmVWYWx1ZShub2Rl
KSk7CiAgICAgICAgIHJldHVybjsKKwogICAgIGNhc2UgR2V0TWFwQnVja2V0OiB7CiAgICAgICAg
IHJlYWQoTWlzY0ZpZWxkcyk7CiAgICAgICAgIEVkZ2UmIG1hcEVkZ2UgPSBub2RlLT5jaGlsZDEo
KTsKQEAgLTE1NTQsMTIgKzE1NTUsMTQgQEAgdm9pZCBjbG9iYmVyaXplKEdyYXBoJiBncmFwaCwg
Tm9kZSogbm9kZSwgY29uc3QgUmVhZEZ1bmN0b3ImIHJlYWQsIGNvbnN0IFdyaXRlRnUKICAgICAg
ICAgZGVmKEhlYXBMb2NhdGlvbihNYXBCdWNrZXRMb2MsIE1pc2NGaWVsZHMsIG1hcEVkZ2UsIGtl
eUVkZ2UpLCBMYXp5Tm9kZShub2RlKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CisKICAgICBj
YXNlIEdldE1hcEJ1Y2tldEhlYWQ6IHsKICAgICAgICAgcmVhZChNaXNjRmllbGRzKTsKICAgICAg
ICAgRWRnZSYgbWFwRWRnZSA9IG5vZGUtPmNoaWxkMSgpOwogICAgICAgICBkZWYoSGVhcExvY2F0
aW9uKE1hcEJ1Y2tldEhlYWRMb2MsIE1pc2NGaWVsZHMsIG1hcEVkZ2UpLCBMYXp5Tm9kZShub2Rl
KSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CisKICAgICBjYXNlIEdldE1hcEJ1Y2tldE5leHQ6
IHsKICAgICAgICAgcmVhZChNaXNjRmllbGRzKTsKICAgICAgICAgTG9jYXRpb25LaW5kIGxvY2F0
aW9uS2luZCA9IE1hcEJ1Y2tldE1hcE5leHRMb2M7CkBAIC0xNTY5LDEyICsxNTcyLDE0IEBAIHZv
aWQgY2xvYmJlcml6ZShHcmFwaCYgZ3JhcGgsIE5vZGUqIG5vZGUsIGNvbnN0IFJlYWRGdW5jdG9y
JiByZWFkLCBjb25zdCBXcml0ZUZ1CiAgICAgICAgIGRlZihIZWFwTG9jYXRpb24obG9jYXRpb25L
aW5kLCBNaXNjRmllbGRzLCBidWNrZXRFZGdlKSwgTGF6eU5vZGUobm9kZSkpOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQorCiAgICAgY2FzZSBMb2FkS2V5RnJvbU1hcEJ1Y2tldDogewogICAgICAg
ICByZWFkKE1pc2NGaWVsZHMpOwogICAgICAgICBFZGdlJiBidWNrZXRFZGdlID0gbm9kZS0+Y2hp
bGQxKCk7CiAgICAgICAgIGRlZihIZWFwTG9jYXRpb24oTWFwQnVja2V0S2V5TG9jLCBNaXNjRmll
bGRzLCBidWNrZXRFZGdlKSwgTGF6eU5vZGUobm9kZSkpOwogICAgICAgICByZXR1cm47CiAgICAg
fQorCiAgICAgY2FzZSBMb2FkVmFsdWVGcm9tTWFwQnVja2V0OiB7CiAgICAgICAgIHJlYWQoTWlz
Y0ZpZWxkcyk7CiAgICAgICAgIEVkZ2UmIGJ1Y2tldEVkZ2UgPSBub2RlLT5jaGlsZDEoKTsKQEAg
LTE1ODIsNiArMTU4NywxNCBAQCB2b2lkIGNsb2JiZXJpemUoR3JhcGgmIGdyYXBoLCBOb2RlKiBu
b2RlLCBjb25zdCBSZWFkRnVuY3RvciYgcmVhZCwgY29uc3QgV3JpdGVGdQogICAgICAgICByZXR1
cm47CiAgICAgfQogCisgICAgY2FzZSBXZWFrTWFwR2V0OiB7CisgICAgICAgIHJlYWQoTWlzY0Zp
ZWxkcyk7CisgICAgICAgIEVkZ2UmIG1hcEVkZ2UgPSBub2RlLT5jaGlsZDEoKTsKKyAgICAgICAg
RWRnZSYga2V5RWRnZSA9IG5vZGUtPmNoaWxkMigpOworICAgICAgICBkZWYoSGVhcExvY2F0aW9u
KFdlYWtNYXBHZXRMb2MsIE1pc2NGaWVsZHMsIG1hcEVkZ2UsIGtleUVkZ2UpLCBMYXp5Tm9kZShu
b2RlKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBjYXNlIFRvTG93ZXJDYXNlOgog
ICAgICAgICBkZWYoUHVyZVZhbHVlKG5vZGUpKTsKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEb2VzR0MuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdEb2VzR0MuY3BwCmluZGV4IDZkOWQyMjgwNTBiYmY1MzllYWNhYjll
NzAwYjg2MmE5YjI5MGRlNzAuLmVjN2UwNWE1NzhhZjA2ZDY4MzVmMDE5MDUxM2MzN2YzNDQwNzE3
YWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRG9lc0dDLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RvZXNHQy5jcHAKQEAgLTE5OCw2ICsx
OTgsNyBAQCBib29sIGRvZXNHQyhHcmFwaCYgZ3JhcGgsIE5vZGUqIG5vZGUpCiAgICAgY2FzZSBH
ZXRNYXBCdWNrZXROZXh0OgogICAgIGNhc2UgTG9hZEtleUZyb21NYXBCdWNrZXQ6CiAgICAgY2Fz
ZSBMb2FkVmFsdWVGcm9tTWFwQnVja2V0OgorICAgIGNhc2UgV2Vha01hcEdldDoKICAgICBjYXNl
IFVucmVhY2hhYmxlOgogICAgIGNhc2UgRXh0cmFjdENhdGNoTG9jYWw6CiAgICAgY2FzZSBFeHRy
YWN0T1NSRW50cnlMb2NhbDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHRml4dXBQaGFzZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhh
c2UuY3BwCmluZGV4IDYxNTk5OWMxNzc0MjI2OTdhN2MyM2FhM2IwOTNjMjA0ODc2YWQ1MTcuLmVi
ZjQyMDg3MzJkM2I0NzI4MmVkNzdhZjY0YzY5NDI4NjQyMjQyNzkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcApAQCAtMTg0OSw2ICsxODQ5LDEyIEBAIGNs
YXNzIEZpeHVwUGhhc2UgOiBwdWJsaWMgUGhhc2UgewogICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgIH0KIAorICAgICAgICBjYXNlIFdlYWtNYXBHZXQ6IHsKKyAgICAgICAgICAgIGZpeEVkZ2U8
V2Vha01hcE9iamVjdFVzZT4obm9kZS0+Y2hpbGQxKCkpOworICAgICAgICAgICAgZml4RWRnZTxP
YmplY3RVc2U+KG5vZGUtPmNoaWxkMigpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9
CisKICAgICAgICAgY2FzZSBEZWZpbmVEYXRhUHJvcGVydHk6IHsKICAgICAgICAgICAgIGZpeEVk
Z2U8Q2VsbFVzZT4obV9ncmFwaC52YXJBcmdDaGlsZChub2RlLCAwKSk7CiAgICAgICAgICAgICBF
ZGdlJiBwcm9wZXJ0eUVkZ2UgPSBtX2dyYXBoLnZhckFyZ0NoaWxkKG5vZGUsIDEpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdIZWFwTG9jYXRpb24uY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdIZWFwTG9jYXRpb24uY3BwCmluZGV4IDYwYmQ1NzI2
YmM1OGNiNzQ2OGQ3OGQ1MzY0YmY0NDVmZDhiOTg2NGUuLjRlZDBlNDc2MmE1MWYyODAyN2M3NmM4
YTE0YzBkMmMxOGY5Y2RiNjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHSGVhcExvY2F0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0hl
YXBMb2NhdGlvbi5jcHAKQEAgLTE1OSwyNCArMTU5LDM1IEBAIHZvaWQgcHJpbnRJbnRlcm5hbChQ
cmludFN0cmVhbSYgb3V0LCBMb2NhdGlvbktpbmQga2luZCkKICAgICBjYXNlIFJlZ0V4cE9iamVj
dExhc3RJbmRleExvYzoKICAgICAgICAgb3V0LnByaW50KCJSZWdFeHBPYmplY3RMYXN0SW5kZXhM
b2MiKTsKICAgICAgICAgcmV0dXJuOworCiAgICAgY2FzZSBNYXBCdWNrZXRMb2M6CiAgICAgICAg
IG91dC5wcmludCgiTWFwQnVja2V0TG9jIik7CiAgICAgICAgIHJldHVybjsKKwogICAgIGNhc2Ug
TWFwQnVja2V0SGVhZExvYzoKICAgICAgICAgb3V0LnByaW50KCJNYXBCdWNrZXRIZWFkTG9jIik7
CiAgICAgICAgIHJldHVybjsKKwogICAgIGNhc2UgTWFwQnVja2V0S2V5TG9jOgogICAgICAgICBv
dXQucHJpbnQoIk1hcEJ1Y2tldEtleUxvYyIpOwogICAgICAgICByZXR1cm47CisKICAgICBjYXNl
IE1hcEJ1Y2tldFZhbHVlTG9jOgogICAgICAgICBvdXQucHJpbnQoIk1hcEJ1Y2tldFZhbHVlTG9j
Iik7CiAgICAgICAgIHJldHVybjsKKwogICAgIGNhc2UgTWFwQnVja2V0TWFwTmV4dExvYzoKICAg
ICAgICAgb3V0LnByaW50KCJNYXBCdWNrZXRNYXBOZXh0TG9jIik7CiAgICAgICAgIHJldHVybjsK
KwogICAgIGNhc2UgTWFwQnVja2V0U2V0TmV4dExvYzoKICAgICAgICAgb3V0LnByaW50KCJNYXBC
dWNrZXRTZXROZXh0TG9jIik7CiAgICAgICAgIHJldHVybjsKKworICAgIGNhc2UgV2Vha01hcEdl
dExvYzoKKyAgICAgICAgb3V0LnByaW50KCJXZWFrTWFwR2V0TG9jIik7CisgICAgICAgIHJldHVy
bjsKKwogICAgIGNhc2UgRE9NU3RhdGVMb2M6CiAgICAgICAgIG91dC5wcmludCgiRE9NU3RhdGVM
b2MiKTsKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdIZWFwTG9jYXRpb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSGVh
cExvY2F0aW9uLmgKaW5kZXggYjgyYzkyMmRhMjdmN2UwMGYyN2I1YWEzMDc3ZWU0MDU1NTE4ZWVj
NC4uNjc2NTY1Y2ZiZjBkMTMxMjE5OGNkNDE0YjJhM2JhNjc2MGEwYzkzYiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdIZWFwTG9jYXRpb24uaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0hlYXBMb2NhdGlvbi5oCkBAIC02OCw2ICs2OCw3IEBAIGVu
dW0gTG9jYXRpb25LaW5kIHsKICAgICBNYXBCdWNrZXRLZXlMb2MsCiAgICAgTWFwQnVja2V0TWFw
TmV4dExvYywKICAgICBNYXBCdWNrZXRTZXROZXh0TG9jLAorICAgIFdlYWtNYXBHZXRMb2MsCiAg
ICAgRE9NU3RhdGVMb2MsCiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR05vZGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZS5oCmluZGV4
IGU3MGRiOTYxMWM0YjA0MjgyOTU5NjM0MzAyNWE3MzM5M2YxN2NiMTQuLjE1ODk3MTkwNzc5MWY4
NmFiYWMwNzNjOGZlMTIwMGMyOTA0OGNhYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHTm9kZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9k
ZS5oCkBAIC0xNTM2LDYgKzE1MzYsNyBAQCBzdHJ1Y3QgTm9kZSB7CiAgICAgICAgIGNhc2UgQXRv
bWljc1N1YjoKICAgICAgICAgY2FzZSBBdG9taWNzWG9yOgogICAgICAgICBjYXNlIEdldER5bmFt
aWNWYXI6CisgICAgICAgIGNhc2UgV2Vha01hcEdldDoKICAgICAgICAgICAgIHJldHVybiB0cnVl
OwogICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oCmluZGV4IDY4ZmQ2ZjhjMGYwOTAxZWE5MjExY2I3
OWVkZTBhNzFmMTZiNTc1ODEuLmJhZDU5YmRmNWFmNjlmMmI0YTRkMWJhYjk3NGZhNmVhZGY1N2Rh
ZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5cGUuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVUeXBlLmgKQEAgLTQzNiw2ICs0
MzYsOCBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAgICAgbWFjcm8oR2V0TWFw
QnVja2V0TmV4dCwgTm9kZVJlc3VsdEpTKSBcCiAgICAgbWFjcm8oTG9hZEtleUZyb21NYXBCdWNr
ZXQsIE5vZGVSZXN1bHRKUykgXAogICAgIG1hY3JvKExvYWRWYWx1ZUZyb21NYXBCdWNrZXQsIE5v
ZGVSZXN1bHRKUykgXAorICAgIC8qIE5vZGVzIGZvciBKU1dlYWtNYXAgYW5kIEpTV2Vha1NldCAq
LyBcCisgICAgbWFjcm8oV2Vha01hcEdldCwgTm9kZVJlc3VsdEpTKSBcCiAgICAgXAogICAgIG1h
Y3JvKFRvTG93ZXJDYXNlLCBOb2RlUmVzdWx0SlMpIFwKICAgICAvKiBOb2RlcyBmb3IgRE9NIEpJ
VCAqL1wKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9u
cy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCmluZGV4
IDVjNDFjODMyY2VmYzc0OTQ5YzkzMWM0MDgwNzdhNDZjZDQwY2NlYWQuLjUwM2NjMTk1ZDViODAw
OTY0YzhjNzEwZDUxZjA4ZmYzNGQ1OGVlZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdPcGVyYXRpb25zLmNwcApAQCAtNTUsNiArNTUsNyBAQAogI2luY2x1ZGUgIkpTTGV4aWNh
bEVudmlyb25tZW50LmgiCiAjaW5jbHVkZSAiSlNNYXAuaCIKICNpbmNsdWRlICJKU1NldC5oIgor
I2luY2x1ZGUgIkpTV2Vha01hcC5oIgogI2luY2x1ZGUgIk9iamVjdENvbnN0cnVjdG9yLmgiCiAj
aW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIlBhcnNlSW50LmgiCkBAIC04MjUsNiAr
ODI2LDEzIEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUmVnRXhwRXhl
Y0dlbmVyaWMoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShhc1JlZ0V4cE9iamVjdChiYXNlKS0+ZXhlYyhleGVjLCBnbG9iYWxPYmplY3QsIGlucHV0
KSk7CiB9CiAKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uV2Vha01hcEdl
dChFeGVjU3RhdGUqIGV4ZWMsIEpTQ2VsbCogd2Vha01hcCwgSlNDZWxsKiBvYmplY3QpCit7Cisg
ICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKKyAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2Vy
KCZ2bSwgZXhlYyk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0Nhc3Q8SlNXZWFrTWFw
Kj4od2Vha01hcCktPmdldChhc09iamVjdChvYmplY3QpKSk7Cit9CisKIEVuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUGFyc2VJbnROb1JhZGl4R2VuZXJpYyhFeGVjU3RhdGUq
IGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHZhbHVlKQogewogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5oCmluZGV4IGM0NzY4ZGM2
MGFmOTg3YzE1ODUzMjg4ZjAyOGUyZDQ2MjliYTQ5OTMuLmE0ODAzYjIxMjBmMzJkYmJmNzJjZTJi
MjlkOWQ1NGE1Njc5NDZmZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHT3BlcmF0aW9ucy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0
aW9ucy5oCkBAIC0xMzEsNiArMTMxLDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBv
cGVyYXRpb25BcnJheVBvcEFuZFJlY292ZXJMZW5ndGgoRXhlY1N0YXRlKiwgSlNBcnIKIEVuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUmVnRXhwRXhlY1N0cmluZyhFeGVjU3Rh
dGUqLCBKU0dsb2JhbE9iamVjdCosIFJlZ0V4cE9iamVjdCosIEpTU3RyaW5nKikgV1RGX0lOVEVS
TkFMOwogRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25SZWdFeHBFeGVjKEV4
ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0KiwgUmVnRXhwT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUp
IFdURl9JTlRFUk5BTDsKIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUmVn
RXhwRXhlY0dlbmVyaWMoRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUpIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04gb3BlcmF0aW9uV2Vha01hcEdldChFeGVjU3RhdGUqLCBKU0NlbGwqLCBKU0NlbGwqKSBX
VEZfSU5URVJOQUw7CiAvLyBUaGVzZSBjb21wYXJpc29ucyByZXR1cm4gYSBib29sZWFuIHdpdGhp
biBhIHNpemVfdCBzdWNoIHRoYXQgdGhlIHZhbHVlIGlzIHplcm8gZXh0ZW5kZWQgdG8gZmlsbCB0
aGUgcmVnaXN0ZXIuCiBzaXplX3QgSklUX09QRVJBVElPTiBvcGVyYXRpb25SZWdFeHBUZXN0U3Ry
aW5nKEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0KiwgUmVnRXhwT2JqZWN0KiwgSlNTdHJpbmcq
KSBXVEZfSU5URVJOQUw7CiBzaXplX3QgSklUX09QRVJBVElPTiBvcGVyYXRpb25SZWdFeHBUZXN0
KEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0KiwgUmVnRXhwT2JqZWN0KiwgRW5jb2RlZEpTVmFs
dWUpIFdURl9JTlRFUk5BTDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAKaW5kZXggNWIwYjllZjYzN2My
MWZlZjA0NTNmZWE5M2M1N2I0YmQxZTcxZWIzZS4uZTQxOTMyNDRmODNmNTJlZDI3ZTkyOTg0Mjky
NzI5ZmM0YWRkODk5ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQ
cmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAKQEAgLTcyMiw3ICs3MjIsOCBA
QCBjbGFzcyBQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZSA6IHB1YmxpYyBQaGFzZSB7CiAgICAg
ICAgIGNhc2UgVG9OdW1iZXI6CiAgICAgICAgIGNhc2UgR2V0QXJndW1lbnQ6CiAgICAgICAgIGNh
c2UgQ2FsbERPTUdldHRlcjoKLSAgICAgICAgY2FzZSBHZXREeW5hbWljVmFyOiB7CisgICAgICAg
IGNhc2UgR2V0RHluYW1pY1ZhcjoKKyAgICAgICAgY2FzZSBXZWFrTWFwR2V0OiB7CiAgICAgICAg
ICAgICBzZXRQcmVkaWN0aW9uKG1fY3VycmVudE5vZGUtPmdldEhlYXBQcmVkaWN0aW9uKCkpOwog
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHU2FmZVRvRXhlY3V0ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdTYWZlVG9FeGVjdXRlLmgKaW5kZXggYWQ3NmIzM2IwZmFhZjE4N2RiNDZhMzA4OTJmNDdm
Y2E3ZTNiNDQ5ZC4uMzI3MjFlMWY0MWFhZjkyOTk0ZjUzNTdmMDYyNjFmYmZjZGVkZTY5OCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTYWZlVG9FeGVjdXRlLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTYWZlVG9FeGVjdXRlLmgKQEAgLTYyLDYg
KzYyLDggQEAgY2xhc3MgU2FmZVRvRXhlY3V0ZUVkZ2UgewogICAgICAgICBjYXNlIERlcml2ZWRB
cnJheVVzZToKICAgICAgICAgY2FzZSBNYXBPYmplY3RVc2U6CiAgICAgICAgIGNhc2UgU2V0T2Jq
ZWN0VXNlOgorICAgICAgICBjYXNlIFdlYWtNYXBPYmplY3RVc2U6CisgICAgICAgIGNhc2UgV2Vh
a1NldE9iamVjdFVzZToKICAgICAgICAgY2FzZSBPYmplY3RPck90aGVyVXNlOgogICAgICAgICBj
YXNlIFN0cmluZ0lkZW50VXNlOgogICAgICAgICBjYXNlIFN0cmluZ1VzZToKQEAgLTM4OCw2ICsz
OTAsNyBAQCBib29sIHNhZmVUb0V4ZWN1dGUoQWJzdHJhY3RTdGF0ZVR5cGUmIHN0YXRlLCBHcmFw
aCYgZ3JhcGgsIE5vZGUqIG5vZGUpCiAgICAgY2FzZSBHZXRNYXBCdWNrZXROZXh0OgogICAgIGNh
c2UgTG9hZEtleUZyb21NYXBCdWNrZXQ6CiAgICAgY2FzZSBMb2FkVmFsdWVGcm9tTWFwQnVja2V0
OgorICAgIGNhc2UgV2Vha01hcEdldDoKICAgICBjYXNlIEF0b21pY3NBZGQ6CiAgICAgY2FzZSBB
dG9taWNzQW5kOgogICAgIGNhc2UgQXRvbWljc0NvbXBhcmVFeGNoYW5nZToKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKaW5kZXggZjgzNjBiOWZk
YjkwMWJhYzIxNDliOTQzMmIwZWU3MmVlYzBhZDk5Ni4uZGI4Njg3NWM0ZWUyYjMwODZjMjkzZjQ2
ZDU2NTE0Y2RmOWViMTFkNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdTcGVjdWxhdGl2ZUpJVC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdT
cGVjdWxhdGl2ZUpJVC5jcHAKQEAgLTg4ODQsNiArODg4NCwzNCBAQCB2b2lkIFNwZWN1bGF0aXZl
SklUOjpzcGVjdWxhdGVTZXRPYmplY3QoRWRnZSBlZGdlKQogICAgIHNwZWN1bGF0ZVNldE9iamVj
dChlZGdlLCBvcGVyYW5kLmdwcigpKTsKIH0KIAordm9pZCBTcGVjdWxhdGl2ZUpJVDo6c3BlY3Vs
YXRlV2Vha01hcE9iamVjdChFZGdlIGVkZ2UsIEdQUlJlZyBjZWxsKQoreworICAgIHNwZWN1bGF0
ZUNlbGxUeXBlKGVkZ2UsIGNlbGwsIFNwZWNXZWFrTWFwT2JqZWN0LCBKU1dlYWtNYXBUeXBlKTsK
K30KKwordm9pZCBTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlV2Vha01hcE9iamVjdChFZGdlIGVk
Z2UpCit7CisgICAgaWYgKCFuZWVkc1R5cGVDaGVjayhlZGdlLCBTcGVjV2Vha01hcE9iamVjdCkp
CisgICAgICAgIHJldHVybjsKKworICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIG9wZXJhbmQodGhp
cywgZWRnZSk7CisgICAgc3BlY3VsYXRlV2Vha01hcE9iamVjdChlZGdlLCBvcGVyYW5kLmdwcigp
KTsKK30KKwordm9pZCBTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlV2Vha1NldE9iamVjdChFZGdl
IGVkZ2UsIEdQUlJlZyBjZWxsKQoreworICAgIHNwZWN1bGF0ZUNlbGxUeXBlKGVkZ2UsIGNlbGws
IFNwZWNXZWFrU2V0T2JqZWN0LCBKU1dlYWtTZXRUeXBlKTsKK30KKwordm9pZCBTcGVjdWxhdGl2
ZUpJVDo6c3BlY3VsYXRlV2Vha1NldE9iamVjdChFZGdlIGVkZ2UpCit7CisgICAgaWYgKCFuZWVk
c1R5cGVDaGVjayhlZGdlLCBTcGVjV2Vha1NldE9iamVjdCkpCisgICAgICAgIHJldHVybjsKKwor
ICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIG9wZXJhbmQodGhpcywgZWRnZSk7CisgICAgc3BlY3Vs
YXRlV2Vha1NldE9iamVjdChlZGdlLCBvcGVyYW5kLmdwcigpKTsKK30KKwogdm9pZCBTcGVjdWxh
dGl2ZUpJVDo6c3BlY3VsYXRlT2JqZWN0T3JPdGhlcihFZGdlIGVkZ2UpCiB7CiAgICAgaWYgKCFu
ZWVkc1R5cGVDaGVjayhlZGdlLCBTcGVjT2JqZWN0IHwgU3BlY090aGVyKSkKQEAgLTkyMDIsNiAr
OTIzMCwxMiBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGUoTm9kZSosIEVkZ2UgZWRn
ZSkKICAgICBjYXNlIFNldE9iamVjdFVzZToKICAgICAgICAgc3BlY3VsYXRlU2V0T2JqZWN0KGVk
Z2UpOwogICAgICAgICBicmVhazsKKyAgICBjYXNlIFdlYWtNYXBPYmplY3RVc2U6CisgICAgICAg
IHNwZWN1bGF0ZVdlYWtNYXBPYmplY3QoZWRnZSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
V2Vha1NldE9iamVjdFVzZToKKyAgICAgICAgc3BlY3VsYXRlV2Vha1NldE9iamVjdChlZGdlKTsK
KyAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBPYmplY3RPck90aGVyVXNlOgogICAgICAgICBzcGVj
dWxhdGVPYmplY3RPck90aGVyKGVkZ2UpOwogICAgICAgICBicmVhazsKQEAgLTEwMjg0LDYgKzEw
MzE4LDI2IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVMb2FkVmFsdWVGcm9tTWFwQnVj
a2V0KE5vZGUqIG5vZGUpCiAgICAganNWYWx1ZVJlc3VsdChyZXN1bHRSZWdzLCBub2RlKTsKIH0K
IAordm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVdlYWtNYXBHZXQoTm9kZSogbm9kZSkKK3sK
KyAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCB3ZWFrTWFwKHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsK
KyAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBvYmplY3QodGhpcywgbm9kZS0+Y2hpbGQyKCkpOwor
ICAgIEpTVmFsdWVSZWdzVGVtcG9yYXJ5IHJlc3VsdCh0aGlzKTsKKworICAgIEdQUlJlZyB3ZWFr
TWFwR1BSID0gd2Vha01hcC5ncHIoKTsKKyAgICBHUFJSZWcgb2JqZWN0R1BSID0gb2JqZWN0Lmdw
cigpOworICAgIEpTVmFsdWVSZWdzIHJlc3VsdFJlZ3MgPSByZXN1bHQucmVncygpOworCisgICAg
c3BlY3VsYXRlV2Vha01hcE9iamVjdChub2RlLT5jaGlsZDEoKSwgd2Vha01hcEdQUik7CisgICAg
c3BlY3VsYXRlT2JqZWN0KG5vZGUtPmNoaWxkMigpLCBvYmplY3RHUFIpOworCisgICAgZmx1c2hS
ZWdpc3RlcnMoKTsKKyAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvbldlYWtNYXBHZXQsIGV4dHJh
Y3RSZXN1bHQocmVzdWx0UmVncyksIHdlYWtNYXBHUFIsIG9iamVjdEdQUik7CisgICAgbV9qaXQu
ZXhjZXB0aW9uQ2hlY2soKTsKKworICAgIGpzVmFsdWVSZXN1bHQocmVzdWx0UmVncywgbm9kZSk7
Cit9CisKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpERkcKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgKaW5kZXggYjYxMjJlZjA2MDc2Zjcw
MDQ3YTYyZmU1N2QzMmY2ZDhkMjVlYTQyYy4uMzdlYjQxZmE3ZThkNGE3Y2YyM2U4MzMzMzY5ZGE5
NWJiNmZkNjc1NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVj
dWxhdGl2ZUpJVC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRp
dmVKSVQuaApAQCAtMjc4MSw2ICsyNzgxLDcgQEAgY2xhc3MgU3BlY3VsYXRpdmVKSVQgewogICAg
IHZvaWQgY29tcGlsZUNoZWNrU3ViQ2xhc3MoTm9kZSopOwogICAgIHZvaWQgY29tcGlsZUdldE1h
cEJ1Y2tldEhlYWQoTm9kZSopOwogICAgIHZvaWQgY29tcGlsZUdldE1hcEJ1Y2tldE5leHQoTm9k
ZSopOworICAgIHZvaWQgY29tcGlsZVdlYWtNYXBHZXQoTm9kZSopOwogICAgIHZvaWQgY29tcGls
ZUxvYWRLZXlGcm9tTWFwQnVja2V0KE5vZGUqKTsKICAgICB2b2lkIGNvbXBpbGVMb2FkVmFsdWVG
cm9tTWFwQnVja2V0KE5vZGUqKTsKICAgICAKQEAgLTMwMzYsNiArMzAzNywxMCBAQCBjbGFzcyBT
cGVjdWxhdGl2ZUpJVCB7CiAgICAgdm9pZCBzcGVjdWxhdGVNYXBPYmplY3QoRWRnZSwgR1BSUmVn
IGNlbGwpOwogICAgIHZvaWQgc3BlY3VsYXRlU2V0T2JqZWN0KEVkZ2UpOwogICAgIHZvaWQgc3Bl
Y3VsYXRlU2V0T2JqZWN0KEVkZ2UsIEdQUlJlZyBjZWxsKTsKKyAgICB2b2lkIHNwZWN1bGF0ZVdl
YWtNYXBPYmplY3QoRWRnZSk7CisgICAgdm9pZCBzcGVjdWxhdGVXZWFrTWFwT2JqZWN0KEVkZ2Us
IEdQUlJlZyBjZWxsKTsKKyAgICB2b2lkIHNwZWN1bGF0ZVdlYWtTZXRPYmplY3QoRWRnZSk7Cisg
ICAgdm9pZCBzcGVjdWxhdGVXZWFrU2V0T2JqZWN0KEVkZ2UsIEdQUlJlZyBjZWxsKTsKICAgICB2
b2lkIHNwZWN1bGF0ZU9iamVjdE9yT3RoZXIoRWRnZSk7CiAgICAgdm9pZCBzcGVjdWxhdGVTdHJp
bmcoRWRnZSBlZGdlLCBHUFJSZWcgY2VsbCk7CiAgICAgdm9pZCBzcGVjdWxhdGVTdHJpbmdJZGVu
dEFuZExvYWRTdG9yYWdlKEVkZ2UgZWRnZSwgR1BSUmVnIHN0cmluZywgR1BSUmVnIHN0b3JhZ2Up
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJ
VDMyXzY0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQz
Ml82NC5jcHAKaW5kZXggMzU0NDllMzVkZjY0N2I5MDJkNGYzNTYzNDljZDI4YjI1YjhjYTU2NC4u
ZWVlZDlmZTg4ZWU0ZjA1ZTQ5MGRjOTYzYmQ5MWI4OGExN2I5YjYzNSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCkBAIC00
OTMxLDYgKzQ5MzEsMTAgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2Rl
KQogICAgICAgICBjb21waWxlTG9hZFZhbHVlRnJvbU1hcEJ1Y2tldChub2RlKTsKICAgICAgICAg
YnJlYWs7CiAKKyAgICBjYXNlIFdlYWtNYXBHZXQ6CisgICAgICAgIGNvbXBpbGVXZWFrTWFwR2V0
KG5vZGUpOworICAgICAgICBicmVhazsKKwogICAgIGNhc2UgRmx1c2g6CiAgICAgICAgIGJyZWFr
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZl
SklUNjQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0
LmNwcAppbmRleCBkNGMzODM0YjdkZmNiNTg2ZWJmMmIzMzcwZGE1N2MwZmE0MDAwMGZjLi42MDc0
ZDc3MWRmZDI5MWUzZmI2NjgwMjdlNDhkYTYxYTk5Nzg2ZDJiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKQEAgLTUyOTEsNiArNTI5
MSwxMCBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUqIG5vZGUpCiAgICAgICAg
IGNvbXBpbGVMb2FkVmFsdWVGcm9tTWFwQnVja2V0KG5vZGUpOwogICAgICAgICBicmVhazsKIAor
ICAgIGNhc2UgV2Vha01hcEdldDoKKyAgICAgICAgY29tcGlsZVdlYWtNYXBHZXQobm9kZSk7Cisg
ICAgICAgIGJyZWFrOworCiAgICAgY2FzZSBUb0xvd2VyQ2FzZTogewogICAgICAgICBjb21waWxl
VG9Mb3dlckNhc2Uobm9kZSk7CiAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdVc2VLaW5kLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHVXNlS2luZC5jcHAKaW5kZXggZTgzODI5YjcxMzA2MTczZGU5NWIwMTA4OGJmM2U5Y2Q4
NGZkZjZlYy4uMjNkMGRiMDA0MGU0MzU2MDExYjIyNjQ5ZWFiMDgzNDNjODQxMWIxMCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdVc2VLaW5kLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1VzZUtpbmQuY3BwCkBAIC0xMDksNiArMTA5LDEyIEBA
IHZvaWQgcHJpbnRJbnRlcm5hbChQcmludFN0cmVhbSYgb3V0LCBVc2VLaW5kIHVzZUtpbmQpCiAg
ICAgY2FzZSBTZXRPYmplY3RVc2U6CiAgICAgICAgIG91dC5wcmludCgiU2V0T2JqZWN0VXNlIik7
CiAgICAgICAgIHJldHVybjsKKyAgICBjYXNlIFdlYWtNYXBPYmplY3RVc2U6CisgICAgICAgIG91
dC5wcmludCgiV2Vha01hcE9iamVjdFVzZSIpOworICAgICAgICByZXR1cm47CisgICAgY2FzZSBX
ZWFrU2V0T2JqZWN0VXNlOgorICAgICAgICBvdXQucHJpbnQoIldlYWtTZXRPYmplY3RVc2UiKTsK
KyAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgT2JqZWN0T3JPdGhlclVzZToKICAgICAgICAgb3V0
LnByaW50KCJPYmplY3RPck90aGVyIik7CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVXNlS2luZC5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdVc2VLaW5kLmgKaW5kZXggNDZlMjcyMDFjOTg2ZmRmZTNiNjA2Yzc1NjIzODkw
YzIwZTJmMDM1OS4uNzk2ZDhiNDBmY2NjYTAxYzRlNWRhMzg3ZDgyNTBlMWNhMmZiNDI2YyAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdVc2VLaW5kLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdVc2VLaW5kLmgKQEAgLTY3LDYgKzY3LDggQEAgZW51
bSBVc2VLaW5kIHsKICAgICBTeW1ib2xVc2UsCiAgICAgTWFwT2JqZWN0VXNlLAogICAgIFNldE9i
amVjdFVzZSwKKyAgICBXZWFrTWFwT2JqZWN0VXNlLAorICAgIFdlYWtTZXRPYmplY3RVc2UsCiAg
ICAgU3RyaW5nT2JqZWN0VXNlLAogICAgIFN0cmluZ09yU3RyaW5nT2JqZWN0VXNlLAogICAgIE5v
dFN0cmluZ1ZhclVzZSwKQEAgLTE0OSw2ICsxNTEsMTAgQEAgaW5saW5lIFNwZWN1bGF0ZWRUeXBl
IHR5cGVGaWx0ZXJGb3IoVXNlS2luZCB1c2VLaW5kKQogICAgICAgICByZXR1cm4gU3BlY01hcE9i
amVjdDsKICAgICBjYXNlIFNldE9iamVjdFVzZToKICAgICAgICAgcmV0dXJuIFNwZWNTZXRPYmpl
Y3Q7CisgICAgY2FzZSBXZWFrTWFwT2JqZWN0VXNlOgorICAgICAgICByZXR1cm4gU3BlY1dlYWtN
YXBPYmplY3Q7CisgICAgY2FzZSBXZWFrU2V0T2JqZWN0VXNlOgorICAgICAgICByZXR1cm4gU3Bl
Y1dlYWtTZXRPYmplY3Q7CiAgICAgY2FzZSBTdHJpbmdPYmplY3RVc2U6CiAgICAgICAgIHJldHVy
biBTcGVjU3RyaW5nT2JqZWN0OwogICAgIGNhc2UgU3RyaW5nT3JTdHJpbmdPYmplY3RVc2U6CkBA
IC0yNDEsNiArMjQ3LDggQEAgaW5saW5lIGJvb2wgaXNDZWxsKFVzZUtpbmQga2luZCkKICAgICBj
YXNlIFN0cmluZ09yU3RyaW5nT2JqZWN0VXNlOgogICAgIGNhc2UgTWFwT2JqZWN0VXNlOgogICAg
IGNhc2UgU2V0T2JqZWN0VXNlOgorICAgIGNhc2UgV2Vha01hcE9iamVjdFVzZToKKyAgICBjYXNl
IFdlYWtTZXRPYmplY3RVc2U6CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIGRlZmF1bHQ6CiAg
ICAgICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9m
dGwvRlRMQ2FwYWJpbGl0aWVzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2Fw
YWJpbGl0aWVzLmNwcAppbmRleCBjMjE1YTYzMjk2MWY4NmUxYmU2MjhiYjFlOWM5NmI2OGNiZmVm
MTM1Li5iZjBmZTYzOTUyNWQwNmYzMzI1MTI3NjdkZjY3MDQ4MjNjYzZkODdlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDYXBhYmlsaXRpZXMuY3BwCkBAIC0xOTksNiArMTk5
LDcgQEAgaW5saW5lIENhcGFiaWxpdHlMZXZlbCBjYW5Db21waWxlKE5vZGUqIG5vZGUpCiAgICAg
Y2FzZSBHZXRNYXBCdWNrZXROZXh0OgogICAgIGNhc2UgTG9hZEtleUZyb21NYXBCdWNrZXQ6CiAg
ICAgY2FzZSBMb2FkVmFsdWVGcm9tTWFwQnVja2V0OgorICAgIGNhc2UgV2Vha01hcEdldDoKICAg
ICBjYXNlIElzRW1wdHk6CiAgICAgY2FzZSBJc1VuZGVmaW5lZDoKICAgICBjYXNlIElzQm9vbGVh
bjoKQEAgLTQ4Niw2ICs0ODcsOCBAQCBDYXBhYmlsaXR5TGV2ZWwgY2FuQ29tcGlsZShHcmFwaCYg
Z3JhcGgpCiAgICAgICAgICAgICAgICAgY2FzZSBTeW1ib2xVc2U6CiAgICAgICAgICAgICAgICAg
Y2FzZSBNYXBPYmplY3RVc2U6CiAgICAgICAgICAgICAgICAgY2FzZSBTZXRPYmplY3RVc2U6Cisg
ICAgICAgICAgICAgICAgY2FzZSBXZWFrTWFwT2JqZWN0VXNlOgorICAgICAgICAgICAgICAgIGNh
c2UgV2Vha1NldE9iamVjdFVzZToKICAgICAgICAgICAgICAgICBjYXNlIEZpbmFsT2JqZWN0VXNl
OgogICAgICAgICAgICAgICAgIGNhc2UgUmVnRXhwT2JqZWN0VXNlOgogICAgICAgICAgICAgICAg
IGNhc2UgUHJveHlPYmplY3RVc2U6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExv
d2VyREZHVG9CMy5jcHAKaW5kZXggM2VlMjE2OWZmZDkxODM1NGQ0MTc1NTIyMThlMmMxNWVkNTE5
NTFlYS4uYWMxZWY4NjZlNzg3MTUzOTNjODVkODFmY2I5NGI0ZGNhMTQ1YzBkNCAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcApAQCAtOTg0LDYgKzk4
NCw5IEBAIGNsYXNzIExvd2VyREZHVG9CMyB7CiAgICAgICAgIGNhc2UgTG9hZFZhbHVlRnJvbU1h
cEJ1Y2tldDoKICAgICAgICAgICAgIGNvbXBpbGVMb2FkVmFsdWVGcm9tTWFwQnVja2V0KCk7CiAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBXZWFrTWFwR2V0OgorICAgICAgICAgICAg
Y29tcGlsZVdlYWtNYXBHZXQoKTsKKyAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIElz
T2JqZWN0OgogICAgICAgICAgICAgY29tcGlsZUlzT2JqZWN0KCk7CiAgICAgICAgICAgICBicmVh
azsKQEAgLTgzMjQsNiArODMyNywxNCBAQCBjbGFzcyBMb3dlckRGR1RvQjMgewogICAgICAgICBz
ZXRKU1ZhbHVlKG1fb3V0LmxvYWQ2NChtYXBCdWNrZXQsIG1faGVhcHMuSGFzaE1hcEJ1Y2tldF9r
ZXkpKTsKICAgICB9CiAKKyAgICB2b2lkIGNvbXBpbGVXZWFrTWFwR2V0KCkKKyAgICB7CisgICAg
ICAgIExWYWx1ZSB3ZWFrTWFwID0gbG93V2Vha01hcE9iamVjdChtX25vZGUtPmNoaWxkMSgpKTsK
KyAgICAgICAgTFZhbHVlIG9iamVjdCA9IGxvd09iamVjdChtX25vZGUtPmNoaWxkMigpKTsKKwor
ICAgICAgICBzZXRKU1ZhbHVlKHZtQ2FsbChJbnQ2NCwgbV9vdXQub3BlcmF0aW9uKG9wZXJhdGlv
bldlYWtNYXBHZXQpLCBtX2NhbGxGcmFtZSwgd2Vha01hcCwgb2JqZWN0KSk7CisgICAgfQorCiAg
ICAgdm9pZCBjb21waWxlSXNPYmplY3RPck51bGwoKQogICAgIHsKICAgICAgICAgSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCA9IG1fZ3JhcGguZ2xvYmFsT2JqZWN0Rm9yKG1fbm9kZS0+b3Jp
Z2luLnNlbWFudGljKTsKQEAgLTEyNzgyLDYgKzEyNzkzLDIwIEBAIGNsYXNzIExvd2VyREZHVG9C
MyB7CiAgICAgICAgIHNwZWN1bGF0ZVNldE9iamVjdChlZGdlLCByZXN1bHQpOwogICAgICAgICBy
ZXR1cm4gcmVzdWx0OwogICAgIH0KKworICAgIExWYWx1ZSBsb3dXZWFrTWFwT2JqZWN0KEVkZ2Ug
ZWRnZSkKKyAgICB7CisgICAgICAgIExWYWx1ZSByZXN1bHQgPSBsb3dDZWxsKGVkZ2UpOworICAg
ICAgICBzcGVjdWxhdGVXZWFrTWFwT2JqZWN0KGVkZ2UsIHJlc3VsdCk7CisgICAgICAgIHJldHVy
biByZXN1bHQ7CisgICAgfQorCisgICAgTFZhbHVlIGxvd1dlYWtTZXRPYmplY3QoRWRnZSBlZGdl
KQorICAgIHsKKyAgICAgICAgTFZhbHVlIHJlc3VsdCA9IGxvd0NlbGwoZWRnZSk7CisgICAgICAg
IHNwZWN1bGF0ZVdlYWtTZXRPYmplY3QoZWRnZSwgcmVzdWx0KTsKKyAgICAgICAgcmV0dXJuIHJl
c3VsdDsKKyAgICB9CiAgICAgCiAgICAgTFZhbHVlIGxvd1N0cmluZyhFZGdlIGVkZ2UsIE9wZXJh
bmRTcGVjdWxhdGlvbk1vZGUgbW9kZSA9IEF1dG9tYXRpY09wZXJhbmRTcGVjdWxhdGlvbikKICAg
ICB7CkBAIC0xMzIzNSw2ICsxMzI2MCwxMiBAQCBjbGFzcyBMb3dlckRGR1RvQjMgewogICAgICAg
ICBjYXNlIFNldE9iamVjdFVzZToKICAgICAgICAgICAgIHNwZWN1bGF0ZVNldE9iamVjdChlZGdl
KTsKICAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFdlYWtNYXBPYmplY3RVc2U6Cisg
ICAgICAgICAgICBzcGVjdWxhdGVXZWFrTWFwT2JqZWN0KGVkZ2UpOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGNhc2UgV2Vha1NldE9iamVjdFVzZToKKyAgICAgICAgICAgIHNwZWN1bGF0
ZVdlYWtTZXRPYmplY3QoZWRnZSk7CisgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBT
dHJpbmdVc2U6CiAgICAgICAgICAgICBzcGVjdWxhdGVTdHJpbmcoZWRnZSk7CiAgICAgICAgICAg
ICBicmVhazsKQEAgLTEzNjMwLDYgKzEzNjYxLDI4IEBAIGNsYXNzIExvd2VyREZHVG9CMyB7CiAg
ICAgewogICAgICAgICBzcGVjdWxhdGVTZXRPYmplY3QoZWRnZSwgbG93Q2VsbChlZGdlKSk7CiAg
ICAgfQorCisgICAgdm9pZCBzcGVjdWxhdGVXZWFrTWFwT2JqZWN0KEVkZ2UgZWRnZSwgTFZhbHVl
IGNlbGwpCisgICAgeworICAgICAgICBGVExfVFlQRV9DSEVDSygKKyAgICAgICAgICAgIGpzVmFs
dWVWYWx1ZShjZWxsKSwgZWRnZSwgU3BlY1dlYWtNYXBPYmplY3QsIGlzTm90VHlwZShjZWxsLCBK
U1dlYWtNYXBUeXBlKSk7CisgICAgfQorCisgICAgdm9pZCBzcGVjdWxhdGVXZWFrTWFwT2JqZWN0
KEVkZ2UgZWRnZSkKKyAgICB7CisgICAgICAgIHNwZWN1bGF0ZVdlYWtNYXBPYmplY3QoZWRnZSwg
bG93Q2VsbChlZGdlKSk7CisgICAgfQorCisgICAgdm9pZCBzcGVjdWxhdGVXZWFrU2V0T2JqZWN0
KEVkZ2UgZWRnZSwgTFZhbHVlIGNlbGwpCisgICAgeworICAgICAgICBGVExfVFlQRV9DSEVDSygK
KyAgICAgICAgICAgIGpzVmFsdWVWYWx1ZShjZWxsKSwgZWRnZSwgU3BlY1dlYWtTZXRPYmplY3Qs
IGlzTm90VHlwZShjZWxsLCBKU1dlYWtTZXRUeXBlKSk7CisgICAgfQorCisgICAgdm9pZCBzcGVj
dWxhdGVXZWFrU2V0T2JqZWN0KEVkZ2UgZWRnZSkKKyAgICB7CisgICAgICAgIHNwZWN1bGF0ZVdl
YWtTZXRPYmplY3QoZWRnZSwgbG93Q2VsbChlZGdlKSk7CisgICAgfQogICAgIAogICAgIHZvaWQg
c3BlY3VsYXRlU3RyaW5nKEVkZ2UgZWRnZSwgTFZhbHVlIGNlbGwpCiAgICAgewpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50cmluc2ljLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludHJpbnNpYy5jcHAKaW5kZXggZjk4NTYzYWJhNzE3MDNi
MTEyZGNmODg2ZWM0NTVhNzA1ZmI1ZWQwYi4uOWQxMmZmZjlkZjc1Y2UxN2Q2YTAxYjMwMzZhMWJh
N2JhMTM2MzkxMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50
cmluc2ljLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRyaW5zaWMu
Y3BwCkBAIC0xNTMsNiArMTUzLDggQEAgY29uc3QgY2hhciogaW50cmluc2ljTmFtZShJbnRyaW5z
aWMgaW50cmluc2ljKQogICAgICAgICByZXR1cm4gIkpTU2V0QnVja2V0TmV4dEludHJpbnNpYyI7
CiAgICAgY2FzZSBKU1NldEJ1Y2tldEtleUludHJpbnNpYzoKICAgICAgICAgcmV0dXJuICJKU1Nl
dEJ1Y2tldEtleUludHJpbnNpYyI7CisgICAgY2FzZSBKU1dlYWtNYXBHZXRJbnRyaW5zaWM6Cisg
ICAgICAgIHJldHVybiAiSlNXZWFrTWFwR2V0SW50cmluc2ljIjsKICAgICBjYXNlIEhhc093blBy
b3BlcnR5SW50cmluc2ljOgogICAgICAgICByZXR1cm4gIkhhc093blByb3BlcnR5SW50cmluc2lj
IjsKICAgICBjYXNlIEF0b21pY3NBZGRJbnRyaW5zaWM6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9JbnRyaW5zaWMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0ludHJpbnNpYy5oCmluZGV4IDRjOTJhNGQ2NDQwNDM4ZWExOTBiZDc5Y2IzMWNhNGM4
YTM2OWMwNGMuLjc2ZjkyNzJhMGZkYjkxYjEwZDczNzQ2NjVhM2NkMmIwYzEyMzU0NTcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludHJpbnNpYy5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludHJpbnNpYy5oCkBAIC04OSw2ICs4OSw5IEBA
IGVudW0gSW50cmluc2ljIHsKICAgICBKU1NldEJ1Y2tldEhlYWRJbnRyaW5zaWMsCiAgICAgSlNT
ZXRCdWNrZXROZXh0SW50cmluc2ljLAogICAgIEpTU2V0QnVja2V0S2V5SW50cmluc2ljLAorICAg
IEpTV2Vha01hcEdldEludHJpbnNpYywKKyAgICBKU1dlYWtNYXBIYXNJbnRyaW5zaWMsCisgICAg
SlNXZWFrU2V0SGFzSW50cmluc2ljLAogICAgIEhhc093blByb3BlcnR5SW50cmluc2ljLAogICAg
IEF0b21pY3NBZGRJbnRyaW5zaWMsCiAgICAgQXRvbWljc0FuZEludHJpbnNpYywKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVHlwZS5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBlLmgKaW5kZXggMmY3N2NkMGNmMTRiNzE4ZWNhZWI5M2Zj
N2M3YWQ1M2VhYWVmYzdlZS4uZWVlMmE1ZWE1MTk3NzFhZGE1MzllMTNjZGEyYjllNWYzMjE3ZjY0
MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBlLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBlLmgKQEAgLTk0LDYgKzk0LDgg
QEAgZW51bSBKU1R5cGUgOiB1aW50OF90IHsKICAgICBQcm94eU9iamVjdFR5cGUsCiAgICAgSlNN
YXBUeXBlLAogICAgIEpTU2V0VHlwZSwKKyAgICBKU1dlYWtNYXBUeXBlLAorICAgIEpTV2Vha1Nl
dFR5cGUsCiAKICAgICBXZWJBc3NlbWJseUZ1bmN0aW9uVHlwZSwKIApkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNXZWFrTWFwLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU1dlYWtNYXAuaAppbmRleCA1ZjhmZDIxMjVhOThhYjQyNWRjYWI4NTY0
NTNkNGI4OTNhMGY3ZjQ4Li43ODhhZWMzZjRhMjliZGYwMzQxMDZiZmMyNTI4ZDU1ODQzZDI3ZjY3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1dlYWtNYXAuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1dlYWtNYXAuaApAQCAtMzgsNyAr
MzgsNyBAQCBjbGFzcyBKU1dlYWtNYXAgZmluYWwgOiBwdWJsaWMgV2Vha01hcEJhc2UgewogCiAg
ICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgewotICAgICAgICByZXR1
cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5m
byhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7CisgICAgICAgIHJldHVybiBT
dHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKEpT
V2Vha01hcFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKICAgICB9CiAKICAgICBzdGF0
aWMgSlNXZWFrTWFwKiBjcmVhdGUoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKQEAgLTYy
LDQgKzYyLDE2IEBAIGNsYXNzIEpTV2Vha01hcCBmaW5hbCA6IHB1YmxpYyBXZWFrTWFwQmFzZSB7
CiAgICAgc3RhdGljIFN0cmluZyB0b1N0cmluZ05hbWUoY29uc3QgSlNPYmplY3QqLCBFeGVjU3Rh
dGUqKTsKIH07CiAKK2lubGluZSBib29sIGlzSlNXZWFrTWFwKEpTQ2VsbCogZnJvbSkKK3sKKyAg
ICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfZmluYWw8SlNXZWFrTWFwPjo6dmFsdWUsICIiKTsKKyAg
ICByZXR1cm4gZnJvbS0+dHlwZSgpID09IEpTV2Vha01hcFR5cGU7Cit9CisKK2lubGluZSBib29s
IGlzSlNXZWFrTWFwKEpTVmFsdWUgZnJvbSkKK3sKKyAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNf
ZmluYWw8SlNXZWFrTWFwPjo6dmFsdWUsICIiKTsKKyAgICByZXR1cm4gZnJvbS5pc0NlbGwoKSAm
JiBmcm9tLmFzQ2VsbCgpLT50eXBlKCkgPT0gSlNXZWFrTWFwVHlwZTsKK30KKwogfSAvLyBuYW1l
c3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1dl
YWtTZXQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTV2Vha1NldC5oCmluZGV4
IDc1NzBmNDJlZDcwZmZlMGVmMjNlNGM3NDY2OWVjMTg2OGE2ODg0NjEuLjIyOGMwMzZiM2EyODcw
OTQ5NTJlZWExMDkwNWI1MGEwYTJjNDU0MTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTV2Vha1NldC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTV2Vha1NldC5oCkBAIC0zOCw3ICszOCw3IEBAIGNsYXNzIEpTV2Vha1NldCBmaW5hbCA6
IHB1YmxpYyBXZWFrTWFwQmFzZSB7CiAKICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1
Y3R1cmUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3Rv
dHlwZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFs
T2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwg
aW5mbygpKTsKKyAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmpl
Y3QsIHByb3RvdHlwZSwgVHlwZUluZm8oSlNXZWFrU2V0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBp
bmZvKCkpOwogICAgIH0KIAogICAgIHN0YXRpYyBKU1dlYWtTZXQqIGNyZWF0ZShWTSYgdm0sIFN0
cnVjdHVyZSogc3RydWN0dXJlKQpAQCAtNjIsNCArNjIsMTYgQEAgY2xhc3MgSlNXZWFrU2V0IGZp
bmFsIDogcHVibGljIFdlYWtNYXBCYXNlIHsKICAgICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nTmFt
ZShjb25zdCBKU09iamVjdCosIEV4ZWNTdGF0ZSopOwogfTsKIAoraW5saW5lIGJvb2wgaXNKU1dl
YWtTZXQoSlNDZWxsKiBmcm9tKQoreworICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc19maW5hbDxK
U1dlYWtTZXQ+Ojp2YWx1ZSwgIiIpOworICAgIHJldHVybiBmcm9tLT50eXBlKCkgPT0gSlNXZWFr
U2V0VHlwZTsKK30KKworaW5saW5lIGJvb2wgaXNKU1dlYWtTZXQoSlNWYWx1ZSBmcm9tKQorewor
ICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc19maW5hbDxKU1dlYWtTZXQ+Ojp2YWx1ZSwgIiIpOwor
ICAgIHJldHVybiBmcm9tLmlzQ2VsbCgpICYmIGZyb20uYXNDZWxsKCktPnR5cGUoKSA9PSBKU1dl
YWtTZXRUeXBlOworfQorCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1dlYWtNYXBCYXNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1dlYWtNYXBCYXNlLmNwcAppbmRleCAwZTUxMDYxYTk0NmE5ZTFkMzgxMWE3
ZWIyNTNkODNmNWMyNzQwZTIwLi40ZjkyNDk2NzAwMTE4Y2YxYzFhMmRhZDI0OTg2YThjYmY4OTcz
ZWQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XZWFrTWFwQmFz
ZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2Vha01hcEJhc2UuY3Bw
CkBAIC03MiwxNCArNzIsNiBAQCB2b2lkIFdlYWtNYXBCYXNlOjpzZXQoVk0mIHZtLCBKU09iamVj
dCoga2V5LCBKU1ZhbHVlIHZhbHVlKQogICAgIHJlc3VsdC5pdGVyYXRvci0+dmFsdWUuc2V0KHZt
LCB0aGlzLCB2YWx1ZSk7CiB9CiAKLUpTVmFsdWUgV2Vha01hcEJhc2U6OmdldChKU09iamVjdCog
a2V5KQotewotICAgIGF1dG8gaXRlciA9IG1fbWFwLmZpbmQoa2V5KTsKLSAgICBpZiAoaXRlciA9
PSBtX21hcC5lbmQoKSkKLSAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci0gICAgcmV0dXJu
IGl0ZXItPnZhbHVlLmdldCgpOwotfQotCiBib29sIFdlYWtNYXBCYXNlOjpyZW1vdmUoSlNPYmpl
Y3QqIGtleSkKIHsKICAgICByZXR1cm4gbV9tYXAucmVtb3ZlKGtleSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XZWFrTWFwQmFzZS5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvV2Vha01hcEJhc2UuaAppbmRleCBlM2JjMmFmNDE2ZjRlMjRiY2Q4
Yzg0NWJmMTA5NzVmNWI5NjQwZDU5Li40ZmM1OTdkYjg1NDY4ZTI4NmQ4YmNhNWJhNTMwOTQyMTNi
NmI2ZjU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XZWFrTWFw
QmFzZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dlYWtNYXBCYXNlLmgK
QEAgLTcwLDQgKzcwLDExIEBAIGNsYXNzIFdlYWtNYXBCYXNlIDogcHVibGljIEpTRGVzdHJ1Y3Rp
YmxlT2JqZWN0IHsKICAgICBNYXBUeXBlIG1fbWFwOwogfTsKIAoraW5saW5lIEpTVmFsdWUgV2Vh
a01hcEJhc2U6OmdldChKU09iamVjdCoga2V5KQoreworICAgIGlmIChhdXRvIHJlc3VsdCA9IG1f
bWFwLmZhc3RHZXQoa2V5KSkKKyAgICAgICAgcmV0dXJuIHJlc3VsdC5nZXQoKTsKKyAgICByZXR1
cm4ganNVbmRlZmluZWQoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XZWFrTWFwUHJvdG90eXBlLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dlYWtNYXBQcm90b3R5cGUuY3BwCmluZGV4IDhmYTg2
MmVjZGJmYTAzMjJkODRkODA2MjJmZDlmYTA4MjFlYmU1MDQuLjg1ZDQxZTZmMTMxMmFlOGQ0Zjkz
MzRhMmMyNzQyZWViOWI2MmJmMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1dlYWtNYXBQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1dlYWtNYXBQcm90b3R5cGUuY3BwCkBAIC00NiwyNSArNDYsMjUgQEAgdm9pZCBXZWFr
TWFwUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QpCiAgICAgdm0ucHJvdG90eXBlTWFwLmFkZFByb3RvdHlwZSh0aGlzKTsKIAogICAg
IEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKHZtLnByb3BlcnR5TmFtZXMt
PmRlbGV0ZUtleXdvcmQsIHByb3RvRnVuY1dlYWtNYXBEZWxldGUsIERvbnRFbnVtLCAxKTsKLSAg
ICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0eU5hbWVz
LT5nZXQsIHByb3RvRnVuY1dlYWtNYXBHZXQsIERvbnRFbnVtLCAxKTsKKyAgICBKU0NfTkFUSVZF
X0lOVFJJTlNJQ19GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04odm0ucHJvcGVydHlOYW1lcy0+
Z2V0LCBwcm90b0Z1bmNXZWFrTWFwR2V0LCBEb250RW51bSwgMSwgSlNXZWFrTWFwR2V0SW50cmlu
c2ljKTsKICAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTih2bS5wcm9w
ZXJ0eU5hbWVzLT5oYXMsIHByb3RvRnVuY1dlYWtNYXBIYXMsIERvbnRFbnVtLCAxKTsKICAgICBK
U0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0eU5hbWVzLT5z
ZXQsIHByb3RvRnVuY1dlYWtNYXBTZXQsIERvbnRFbnVtLCAyKTsKIAogICAgIHB1dERpcmVjdFdp
dGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT50b1N0cmluZ1RhZ1N5bWJvbCwg
anNTdHJpbmcoJnZtLCAiV2Vha01hcCIpLCBEb250RW51bSB8IFJlYWRPbmx5KTsKIH0KIAotc3Rh
dGljIEpTV2Vha01hcCogZ2V0V2Vha01hcChDYWxsRnJhbWUqIGNhbGxGcmFtZSwgSlNWYWx1ZSB2
YWx1ZSkKK0FMV0FZU19JTkxJTkUgc3RhdGljIEpTV2Vha01hcCogZ2V0V2Vha01hcChDYWxsRnJh
bWUqIGNhbGxGcmFtZSwgSlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBWTSYgdm0gPSBjYWxsRnJhbWUt
PnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCi0gICAg
aWYgKCF2YWx1ZS5pc09iamVjdCgpKSB7CisgICAgaWYgKFVOTElLRUxZKCF2YWx1ZS5pc09iamVj
dCgpKSkgewogICAgICAgICB0aHJvd1R5cGVFcnJvcihjYWxsRnJhbWUsIHNjb3BlLCBXVEY6OkFT
Q0lJTGl0ZXJhbCgiQ2FsbGVkIFdlYWtNYXAgZnVuY3Rpb24gb24gbm9uLW9iamVjdCIpKTsKICAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogCi0gICAgaWYgKEpTV2Vha01hcCogd2Vha01h
cCA9IGpzRHluYW1pY0Nhc3Q8SlNXZWFrTWFwKj4odm0sIHZhbHVlKSkKLSAgICAgICAgcmV0dXJu
IHdlYWtNYXA7CisgICAgaWYgKExJS0VMWShpc0pTV2Vha01hcChhc09iamVjdCh2YWx1ZSkpKSkK
KyAgICAgICAgcmV0dXJuIGpzQ2FzdDxKU1dlYWtNYXAqPih2YWx1ZSk7CiAKICAgICB0aHJvd1R5
cGVFcnJvcihjYWxsRnJhbWUsIHNjb3BlLCBXVEY6OkFTQ0lJTGl0ZXJhbCgiQ2FsbGVkIFdlYWtN
YXAgZnVuY3Rpb24gb24gYSBub24tV2Vha01hcCBvYmplY3QiKSk7CiAgICAgcmV0dXJuIG51bGxw
dHI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XZWFrU2V0UHJv
dG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dlYWtTZXRQcm90b3R5
cGUuY3BwCmluZGV4IDIxMzRkOTg2YmYyM2FlOWYxMWNjNDM3MjkwNzQyN2MxZmZhYjY4NWIuLmFh
ODI0MzA5NWQ1NWE3NTRjODFmZTQ2OTdjZGQ3M2QzMTgzNTdjYTMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dlYWtTZXRQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dlYWtTZXRQcm90b3R5cGUuY3BwCkBAIC01MSwxOCAr
NTEsMTggQEAgdm9pZCBXZWFrU2V0UHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiAgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRp
b24odm0sIHZtLnByb3BlcnR5TmFtZXMtPnRvU3RyaW5nVGFnU3ltYm9sLCBqc1N0cmluZygmdm0s
ICJXZWFrU2V0IiksIERvbnRFbnVtIHwgUmVhZE9ubHkpOwogfQogCi1zdGF0aWMgSlNXZWFrU2V0
KiBnZXRXZWFrU2V0KENhbGxGcmFtZSogY2FsbEZyYW1lLCBKU1ZhbHVlIHZhbHVlKQorQUxXQVlT
X0lOTElORSBzdGF0aWMgSlNXZWFrU2V0KiBnZXRXZWFrU2V0KENhbGxGcmFtZSogY2FsbEZyYW1l
LCBKU1ZhbHVlIHZhbHVlKQogewogICAgIFZNJiB2bSA9IGNhbGxGcmFtZS0+dm0oKTsKICAgICBh
dXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKLSAgICBpZiAoIXZhbHVlLmlz
T2JqZWN0KCkpIHsKKyAgICBpZiAoVU5MSUtFTFkoIXZhbHVlLmlzT2JqZWN0KCkpKSB7CiAgICAg
ICAgIHRocm93VHlwZUVycm9yKGNhbGxGcmFtZSwgc2NvcGUsIFdURjo6QVNDSUlMaXRlcmFsKCJD
YWxsZWQgV2Vha1NldCBmdW5jdGlvbiBvbiBub24tb2JqZWN0IikpOwogICAgICAgICByZXR1cm4g
bnVsbHB0cjsKICAgICB9CiAKLSAgICBpZiAoSlNXZWFrU2V0KiB3ZWFrU2V0ID0ganNEeW5hbWlj
Q2FzdDxKU1dlYWtTZXQqPih2bSwgdmFsdWUpKQotICAgICAgICByZXR1cm4gd2Vha1NldDsKKyAg
ICBpZiAoTElLRUxZKGlzSlNXZWFrU2V0KGFzT2JqZWN0KHZhbHVlKSkpKQorICAgICAgICByZXR1
cm4ganNDYXN0PEpTV2Vha1NldCo+KHZhbHVlKTsKIAogICAgIHRocm93VHlwZUVycm9yKGNhbGxG
cmFtZSwgc2NvcGUsIFdURjo6QVNDSUlMaXRlcmFsKCJDYWxsZWQgV2Vha1NldCBmdW5jdGlvbiBv
biBhIG5vbi1XZWFrU2V0IG9iamVjdCIpKTsKICAgICByZXR1cm4gbnVsbHB0cjsKZGlmZiAtLWdp
dCBhL0pTVGVzdHMvQ2hhbmdlTG9nIGIvSlNUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMTc0ODA4YjFm
ODY1MTM5MmU2MDk1MDJjMDJhMjJjZWQ4NWExNTU1MS4uMjI1MDFjOGRjZGZhY2I5OTQwNDI2MDQ0
M2E3YTE3YTFhYTEwMDk2OCAxMDA2NDQKLS0tIGEvSlNUZXN0cy9DaGFuZ2VMb2cKKysrIGIvSlNU
ZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxNy0wOC0yNiAgWXVzdWtlIFN1enVr
aSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KKworICAgICAgICBbREZHXSBPcHRpbWl6ZSBXZWFr
TWFwOjpnZXQgYnkgYWRkaW5nIGludHJpbnNpYyBhbmQgZml4dXAKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NjAxMAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogbWljcm9iZW5jaG1hcmtzL3dlYWstbWFw
LWtleS5qczogQWRkZWQuCisgICAgICAgIChhc3NlcnQpOgorICAgICAgICAob2JqZWN0S2V5KToK
KyAgICAgICAgKGxldC5zdGFydC5EYXRlLm5vdyk6CisKIDIwMTctMDgtMjUgIFNhYW0gQmFyYXRp
ICA8c2JhcmF0aUBhcHBsZS5jb20+CiAKICAgICAgICAgU3VwcG9ydCBjb21waWxpbmcgY2F0Y2gg
aW4gdGhlIERGRwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9taWNyb2JlbmNobWFya3Mvd2Vhay1tYXAt
a2V5LmpzIGIvSlNUZXN0cy9taWNyb2JlbmNobWFya3Mvd2Vhay1tYXAta2V5LmpzCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjdmNTNjZWJjMzdiODA5MDVkNmM3NzFjMGE2MTVhNGI4ZTdkNzgzMDIKLS0tIC9kZXYvbnVs
bAorKysgYi9KU1Rlc3RzL21pY3JvYmVuY2htYXJrcy93ZWFrLW1hcC1rZXkuanMKQEAgLTAsMCAr
MSwzNCBAQAorZnVuY3Rpb24gYXNzZXJ0KGIpIHsKKyAgICBpZiAoIWIpCisgICAgICAgIHRocm93
IG5ldyBFcnJvcigiQmFkISIpOworfQorbm9JbmxpbmUoYXNzZXJ0KTsKKworbGV0IHdlYWtNYXAg
PSBuZXcgV2Vha01hcDsKKworZnVuY3Rpb24gb2JqZWN0S2V5KG8pIHsKKyAgICByZXR1cm4gd2Vh
a01hcC5nZXQobyk7Cit9Citub0lubGluZShvYmplY3RLZXkpOworCitjb25zdCBpdGVycyA9IDMw
MDAwMDsKK2xldCBzdGFydCA9IERhdGUubm93KCk7CisKK3sKKyAgICBsZXQgbyA9IHtmOiAyMH07
CisgICAgdmFyIGFycmF5ID0gW107CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDsgaSsrKSB7
CisgICAgICAgIGxldCBuZXdPYmplY3QgPSB7IGY6IGkgfTsKKyAgICAgICAgd2Vha01hcC5zZXQo
bmV3T2JqZWN0LCBpKTsKKyAgICAgICAgYXJyYXlbaV0gPSBuZXdPYmplY3Q7CisgICAgfQorCisg
ICAgZm9yICh2YXIgaiA9IDA7IGogPCBpdGVyczsgKytqKSB7CisgICAgICAgIGZvciAobGV0IGkg
PSAwOyBpIDwgMTA7IGkrKykKKyAgICAgICAgICAgIGFzc2VydChvYmplY3RLZXkoYXJyYXlbaV0p
ID09PSBpKTsKKyAgICB9Cit9CisKK2NvbnN0IHZlcmJvc2UgPSBmYWxzZTsKK2lmICh2ZXJib3Nl
KQorICAgIHByaW50KERhdGUubm93KCkgLSBzdGFydCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>319157</attachid>
            <date>2017-08-27 00:12:21 -0700</date>
            <delta_ts>2017-08-30 01:32:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-176010-20170827161219.patch</filename>
            <type>text/plain</type>
            <size>46657</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIxMjMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAx
ZmQ5NWExMGFiNTcwMGVhYmFlMWMxNmZkYzEwZmYyNzhiMzhhMDY1Li5kMDFjMTU2ODY4MTIwZDY3
MDRiZTkxYzEzZDY2M2Q1ZGZiN2ZjYjIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw4MSBAQAorMjAxNy0wOC0yNyAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbREZHXSBPcHRpbWl6ZSBXZWFrTWFwOjpnZXQgYnkgYWRkaW5nIGlu
dHJpbnNpYyBhbmQgZml4dXAKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE3NjAxMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogYnl0ZWNvZGUvU3BlY3VsYXRlZFR5cGUuY3BwOgorICAgICAgICAoSlNDOjpk
dW1wU3BlY3VsYXRpb24pOgorICAgICAgICAoSlNDOjpzcGVjdWxhdGlvbkZyb21DbGFzc0luZm8p
OgorICAgICAgICAoSlNDOjpzcGVjdWxhdGlvbkZyb21KU1R5cGUpOgorICAgICAgICAoSlNDOjpz
cGVjdWxhdGlvbkZyb21TdHJpbmcpOgorICAgICAgICAqIGJ5dGVjb2RlL1NwZWN1bGF0ZWRUeXBl
Lmg6CisgICAgICAgICogZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmg6CisgICAg
ICAgIChKU0M6OkRGRzo6QWJzdHJhY3RJbnRlcnByZXRlcjxBYnN0cmFjdFN0YXRlVHlwZT46OmV4
ZWN1dGVFZmZlY3RzKToKKyAgICAgICAgKiBkZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwOgorICAg
ICAgICAoSlNDOjpERkc6OkJ5dGVDb2RlUGFyc2VyOjpoYW5kbGVJbnRyaW5zaWNDYWxsKToKKyAg
ICAgICAgKiBkZmcvREZHQ2xvYmJlcml6ZS5oOgorICAgICAgICAoSlNDOjpERkc6OmNsb2JiZXJp
emUpOgorICAgICAgICAqIGRmZy9ERkdEb2VzR0MuY3BwOgorICAgICAgICAoSlNDOjpERkc6OmRv
ZXNHQyk6CisgICAgICAgICogZGZnL0RGR0ZpeHVwUGhhc2UuY3BwOgorICAgICAgICAoSlNDOjpE
Rkc6OkZpeHVwUGhhc2U6OmZpeHVwTm9kZSk6CisgICAgICAgICogZGZnL0RGR0hlYXBMb2NhdGlv
bi5jcHA6CisgICAgICAgIChXVEY6OnByaW50SW50ZXJuYWwpOgorICAgICAgICAqIGRmZy9ERkdI
ZWFwTG9jYXRpb24uaDoKKyAgICAgICAgKiBkZmcvREZHTm9kZS5oOgorICAgICAgICAoSlNDOjpE
Rkc6Ok5vZGU6Omhhc0hlYXBQcmVkaWN0aW9uKToKKyAgICAgICAgKiBkZmcvREZHTm9kZVR5cGUu
aDoKKyAgICAgICAgKiBkZmcvREZHT3BlcmF0aW9ucy5jcHA6CisgICAgICAgICogZGZnL0RGR09w
ZXJhdGlvbnMuaDoKKyAgICAgICAgKiBkZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2Uu
Y3BwOgorICAgICAgICAqIGRmZy9ERkdTYWZlVG9FeGVjdXRlLmg6CisgICAgICAgIChKU0M6OkRG
Rzo6U2FmZVRvRXhlY3V0ZUVkZ2U6Om9wZXJhdG9yKCkpOgorICAgICAgICAoSlNDOjpERkc6OnNh
ZmVUb0V4ZWN1dGUpOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHA6CisgICAg
ICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZVdlYWtNYXBPYmplY3QpOgor
ICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGVXZWFrU2V0T2JqZWN0
KToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlKToKKyAgICAg
ICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVdlYWtNYXBHZXQpOgorICAgICAg
ICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2
ZUpJVDMyXzY0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGls
ZSk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwOgorICAgICAgICAoSlND
OjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlKToKKyAgICAgICAgKiBkZmcvREZHVXNlS2lu
ZC5jcHA6CisgICAgICAgIChXVEY6OnByaW50SW50ZXJuYWwpOgorICAgICAgICAqIGRmZy9ERkdV
c2VLaW5kLmg6CisgICAgICAgIChKU0M6OkRGRzo6dHlwZUZpbHRlckZvcik6CisgICAgICAgIChK
U0M6OkRGRzo6aXNDZWxsKToKKyAgICAgICAgKiBmdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcDoKKyAg
ICAgICAgKEpTQzo6RlRMOjpjYW5Db21waWxlKToKKyAgICAgICAgKiBmdGwvRlRMTG93ZXJERkdU
b0IzLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6Y29tcGlsZU5v
ZGUpOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjpjb21waWxlV2Vha01h
cEdldCk6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6Omxvd1dlYWtNYXBP
YmplY3QpOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjpsb3dXZWFrU2V0
T2JqZWN0KToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6c3BlY3VsYXRl
KToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6c3BlY3VsYXRlV2Vha01h
cE9iamVjdCk6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6OnNwZWN1bGF0
ZVdlYWtTZXRPYmplY3QpOgorICAgICAgICAqIHJ1bnRpbWUvSW50cmluc2ljLmNwcDoKKyAgICAg
ICAgKEpTQzo6aW50cmluc2ljTmFtZSk6CisgICAgICAgICogcnVudGltZS9JbnRyaW5zaWMuaDoK
KyAgICAgICAgKiBydW50aW1lL0pTVHlwZS5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNXZWFrTWFw
Lmg6CisgICAgICAgIChKU0M6OmlzSlNXZWFrTWFwKToKKyAgICAgICAgKiBydW50aW1lL0pTV2Vh
a1NldC5oOgorICAgICAgICAoSlNDOjppc0pTV2Vha1NldCk6CisgICAgICAgICogcnVudGltZS9X
ZWFrTWFwQmFzZS5jcHA6CisgICAgICAgIChKU0M6OldlYWtNYXBCYXNlOjpnZXQpOiBEZWxldGVk
LgorICAgICAgICAqIHJ1bnRpbWUvV2Vha01hcEJhc2UuaDoKKyAgICAgICAgKEpTQzo6V2Vha01h
cEJhc2U6OmdldCk6CisgICAgICAgICogcnVudGltZS9XZWFrTWFwUHJvdG90eXBlLmNwcDoKKyAg
ICAgICAgKEpTQzo6V2Vha01hcFByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAo
SlNDOjpnZXRXZWFrTWFwKToKKyAgICAgICAgKiBydW50aW1lL1dlYWtTZXRQcm90b3R5cGUuY3Bw
OgorICAgICAgICAoSlNDOjpnZXRXZWFrU2V0KToKKwogMjAxNy0wOC0yNiAgWXVzdWtlIFN1enVr
aSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCBzdXBwcmVz
cyB3YXJuaW5ncyBpbiBHVEsgcG9ydApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL1NwZWN1bGF0ZWRUeXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9TcGVjdWxhdGVkVHlwZS5jcHAKaW5kZXggY2EyNTk0NzM3MGY4NTIxYTAzZjJkMTVlZjk1
ZjcwNTRlZmM1ZDBkZi4uYmU5ZTY4MDFhNjU1YTk5ODBiZGQ2MmI0MGZmMjJjNTZjNTZiYzRiZCAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1NwZWN1bGF0ZWRUeXBl
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3BlY3VsYXRlZFR5cGUu
Y3BwCkBAIC0zNSw2ICszNSw4IEBACiAjaW5jbHVkZSAiSlNGdW5jdGlvbi5oIgogI2luY2x1ZGUg
IkpTTWFwLmgiCiAjaW5jbHVkZSAiSlNTZXQuaCIKKyNpbmNsdWRlICJKU1dlYWtNYXAuaCIKKyNp
bmNsdWRlICJKU1dlYWtTZXQuaCIKICNpbmNsdWRlICJQcm94eU9iamVjdC5oIgogI2luY2x1ZGUg
IlJlZ0V4cE9iamVjdC5oIgogI2luY2x1ZGUgIlNjb3BlZEFyZ3VtZW50cy5oIgpAQCAtMTgwLDYg
KzE4MiwxNiBAQCB2b2lkIGR1bXBTcGVjdWxhdGlvbihQcmludFN0cmVhbSYgb3V0U3RyZWFtLCBT
cGVjdWxhdGVkVHlwZSB2YWx1ZSkKICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICBp
c1RvcCA9IGZhbHNlOwogCisgICAgICAgICAgICBpZiAodmFsdWUgJiBTcGVjV2Vha01hcE9iamVj
dCkKKyAgICAgICAgICAgICAgICBzdHJPdXQucHJpbnQoIldlYWtNYXBPYmplY3QiKTsKKyAgICAg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBpc1RvcCA9IGZhbHNlOworCisgICAgICAgICAg
ICBpZiAodmFsdWUgJiBTcGVjV2Vha1NldE9iamVjdCkKKyAgICAgICAgICAgICAgICBzdHJPdXQu
cHJpbnQoIldlYWtTZXRPYmplY3QiKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAg
ICBpc1RvcCA9IGZhbHNlOworCiAgICAgICAgICAgICBpZiAodmFsdWUgJiBTcGVjUHJveHlPYmpl
Y3QpCiAgICAgICAgICAgICAgICAgc3RyT3V0LnByaW50KCJQcm94eU9iamVjdCIpOwogICAgICAg
ICAgICAgZWxzZQpAQCAtNDAyLDYgKzQxNCwxMiBAQCBTcGVjdWxhdGVkVHlwZSBzcGVjdWxhdGlv
bkZyb21DbGFzc0luZm8oY29uc3QgQ2xhc3NJbmZvKiBjbGFzc0luZm8pCiAgICAgaWYgKGNsYXNz
SW5mbyA9PSBKU1NldDo6aW5mbygpKQogICAgICAgICByZXR1cm4gU3BlY1NldE9iamVjdDsKIAor
ICAgIGlmIChjbGFzc0luZm8gPT0gSlNXZWFrTWFwOjppbmZvKCkpCisgICAgICAgIHJldHVybiBT
cGVjV2Vha01hcE9iamVjdDsKKworICAgIGlmIChjbGFzc0luZm8gPT0gSlNXZWFrU2V0OjppbmZv
KCkpCisgICAgICAgIHJldHVybiBTcGVjV2Vha1NldE9iamVjdDsKKwogICAgIGlmIChjbGFzc0lu
Zm8gPT0gUHJveHlPYmplY3Q6OmluZm8oKSkKICAgICAgICAgcmV0dXJuIFNwZWNQcm94eU9iamVj
dDsKICAgICAKQEAgLTUyMCw2ICs1MzgsMTAgQEAgU3BlY3VsYXRlZFR5cGUgc3BlY3VsYXRpb25G
cm9tSlNUeXBlKEpTVHlwZSB0eXBlKQogICAgICAgICByZXR1cm4gU3BlY01hcE9iamVjdDsKICAg
ICBjYXNlIEpTU2V0VHlwZToKICAgICAgICAgcmV0dXJuIFNwZWNTZXRPYmplY3Q7CisgICAgY2Fz
ZSBKU1dlYWtNYXBUeXBlOgorICAgICAgICByZXR1cm4gU3BlY1dlYWtNYXBPYmplY3Q7CisgICAg
Y2FzZSBKU1dlYWtTZXRUeXBlOgorICAgICAgICByZXR1cm4gU3BlY1dlYWtTZXRPYmplY3Q7CiAg
ICAgZGVmYXVsdDoKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgfQpAQCAtNzAx
LDYgKzcyMywxMCBAQCBTcGVjdWxhdGVkVHlwZSBzcGVjdWxhdGlvbkZyb21TdHJpbmcoY29uc3Qg
Y2hhciogc3BlY3VsYXRpb24pCiAgICAgICAgIHJldHVybiBTcGVjTWFwT2JqZWN0OwogICAgIGlm
ICghc3RybmNtcChzcGVjdWxhdGlvbiwgIlNwZWNTZXRPYmplY3QiLCBzdHJsZW4oIlNwZWNTZXRP
YmplY3QiKSkpCiAgICAgICAgIHJldHVybiBTcGVjU2V0T2JqZWN0OworICAgIGlmICghc3RybmNt
cChzcGVjdWxhdGlvbiwgIlNwZWNXZWFrTWFwT2JqZWN0Iiwgc3RybGVuKCJTcGVjV2Vha01hcE9i
amVjdCIpKSkKKyAgICAgICAgcmV0dXJuIFNwZWNXZWFrTWFwT2JqZWN0OworICAgIGlmICghc3Ry
bmNtcChzcGVjdWxhdGlvbiwgIlNwZWNXZWFrU2V0T2JqZWN0Iiwgc3RybGVuKCJTcGVjV2Vha1Nl
dE9iamVjdCIpKSkKKyAgICAgICAgcmV0dXJuIFNwZWNXZWFrU2V0T2JqZWN0OwogICAgIGlmICgh
c3RybmNtcChzcGVjdWxhdGlvbiwgIlNwZWNQcm94eU9iamVjdCIsIHN0cmxlbigiU3BlY1Byb3h5
T2JqZWN0IikpKQogICAgICAgICByZXR1cm4gU3BlY1Byb3h5T2JqZWN0OwogICAgIGlmICghc3Ry
bmNtcChzcGVjdWxhdGlvbiwgIlNwZWNEZXJpdmVkQXJyYXkiLCBzdHJsZW4oIlNwZWNEZXJpdmVk
QXJyYXkiKSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3Bl
Y3VsYXRlZFR5cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TcGVjdWxhdGVk
VHlwZS5oCmluZGV4IGJlODkyZjI2OWE1YjFiNGQyMzNhNmZiMzBkNmIxOGY1NjI0ZGMwODIuLjc1
ZTQ0MmQ3OTMzZmQ1YWZkY2Y0ZWJhNTA2NmUwNmEyM2YyYzVjYTIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TcGVjdWxhdGVkVHlwZS5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TcGVjdWxhdGVkVHlwZS5oCkBAIC01OCwyNiArNTgsMjgg
QEAgc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNTdHJpbmdPYmplY3QgICAgICAgPSAx
dWxsIDw8IDE0OyAvLyBJdCdzIGRlZmluaXQKIHN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBT
cGVjUmVnRXhwT2JqZWN0ICAgICAgID0gMXVsbCA8PCAxNTsgLy8gSXQncyBkZWZpbml0ZWx5IGEg
UmVnRXhwT2JqZWN0IChhbmQgbm90IGFueSBzdWJjbGFzcyBvZiBSZWdFeHBPYmplY3QpLgogc3Rh
dGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNNYXBPYmplY3QgICAgICAgICAgPSAxdWxsIDw8
IDE2OyAvLyBJdCdzIGRlZmluaXRlbHkgYSBNYXAgb2JqZWN0IG9yIG9uZSBvZiBpdHMgc3ViY2xh
c3Nlcy4KIHN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjU2V0T2JqZWN0ICAgICAgICAg
ID0gMXVsbCA8PCAxNzsgLy8gSXQncyBkZWZpbml0ZWx5IGEgU2V0IG9iamVjdCBvciBvbmUgb2Yg
aXRzIHN1YmNsYXNzZXMuCi1zdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY1Byb3h5T2Jq
ZWN0ICAgICAgICA9IDF1bGwgPDwgMTg7IC8vIEl0J3MgZGVmaW5pdGVseSBhIFByb3h5IG9iamVj
dCBvciBvbmUgb2YgaXRzIHN1YmNsYXNzZXMuCi1zdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUg
U3BlY0Rlcml2ZWRBcnJheSAgICAgICA9IDF1bGwgPDwgMTk7IC8vIEl0J3MgZGVmaW5pdGVseSBh
IERlcml2ZWRBcnJheSBvYmplY3QuCi1zdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY09i
amVjdE90aGVyICAgICAgICA9IDF1bGwgPDwgMjA7IC8vIEl0J3MgZGVmaW5pdGVseSBhbiBvYmpl
Y3QgYnV0IG5vdCBKU0ZpbmFsT2JqZWN0LCBKU0FycmF5LCBvciBKU0Z1bmN0aW9uLgotc3RhdGlj
IGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNPYmplY3QgICAgICAgICAgICAgPSBTcGVjRmluYWxP
YmplY3QgfCBTcGVjQXJyYXkgfCBTcGVjRnVuY3Rpb24gfCBTcGVjVHlwZWRBcnJheVZpZXcgfCBT
cGVjRGlyZWN0QXJndW1lbnRzIHwgU3BlY1Njb3BlZEFyZ3VtZW50cyB8IFNwZWNTdHJpbmdPYmpl
Y3QgfCBTcGVjUmVnRXhwT2JqZWN0IHwgU3BlY01hcE9iamVjdCB8IFNwZWNTZXRPYmplY3QgfCBT
cGVjUHJveHlPYmplY3QgfCBTcGVjRGVyaXZlZEFycmF5IHwgU3BlY09iamVjdE90aGVyOyAvLyBC
aXRtYXNrIHVzZWQgZm9yIHRlc3RpbmcgZm9yIGFueSBraW5kIG9mIG9iamVjdCBwcmVkaWN0aW9u
Lgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNTdHJpbmdJZGVudCAgICAgICAgPSAx
dWxsIDw8IDIxOyAvLyBJdCdzIGRlZmluaXRlbHkgYSBKU1N0cmluZywgYW5kIGl0J3MgYW4gaWRl
bnRpZmllci4KLXN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjU3RyaW5nVmFyICAgICAg
ICAgID0gMXVsbCA8PCAyMjsgLy8gSXQncyBkZWZpbml0ZWx5IGEgSlNTdHJpbmcsIGFuZCBpdCdz
IG5vdCBhbiBpZGVudGlmaWVyLgorc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNXZWFr
TWFwT2JqZWN0ICAgICAgPSAxdWxsIDw8IDE4OyAvLyBJdCdzIGRlZmluaXRlbHkgYSBXZWFrTWFw
IG9iamVjdCBvciBvbmUgb2YgaXRzIHN1YmNsYXNzZXMuCitzdGF0aWMgY29uc3QgU3BlY3VsYXRl
ZFR5cGUgU3BlY1dlYWtTZXRPYmplY3QgICAgICA9IDF1bGwgPDwgMTk7IC8vIEl0J3MgZGVmaW5p
dGVseSBhIFdlYWtTZXQgb2JqZWN0IG9yIG9uZSBvZiBpdHMgc3ViY2xhc3Nlcy4KK3N0YXRpYyBj
b25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjUHJveHlPYmplY3QgICAgICAgID0gMXVsbCA8PCAyMDsg
Ly8gSXQncyBkZWZpbml0ZWx5IGEgUHJveHkgb2JqZWN0IG9yIG9uZSBvZiBpdHMgc3ViY2xhc3Nl
cy4KK3N0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjRGVyaXZlZEFycmF5ICAgICAgID0g
MXVsbCA8PCAyMTsgLy8gSXQncyBkZWZpbml0ZWx5IGEgRGVyaXZlZEFycmF5IG9iamVjdC4KK3N0
YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjT2JqZWN0T3RoZXIgICAgICAgID0gMXVsbCA8
PCAyMjsgLy8gSXQncyBkZWZpbml0ZWx5IGFuIG9iamVjdCBidXQgbm90IEpTRmluYWxPYmplY3Qs
IEpTQXJyYXksIG9yIEpTRnVuY3Rpb24uCitzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3Bl
Y09iamVjdCAgICAgICAgICAgICA9IFNwZWNGaW5hbE9iamVjdCB8IFNwZWNBcnJheSB8IFNwZWNG
dW5jdGlvbiB8IFNwZWNUeXBlZEFycmF5VmlldyB8IFNwZWNEaXJlY3RBcmd1bWVudHMgfCBTcGVj
U2NvcGVkQXJndW1lbnRzIHwgU3BlY1N0cmluZ09iamVjdCB8IFNwZWNSZWdFeHBPYmplY3QgfCBT
cGVjTWFwT2JqZWN0IHwgU3BlY1NldE9iamVjdCB8IFNwZWNXZWFrTWFwT2JqZWN0IHwgU3BlY1dl
YWtTZXRPYmplY3QgfCBTcGVjUHJveHlPYmplY3QgfCBTcGVjRGVyaXZlZEFycmF5IHwgU3BlY09i
amVjdE90aGVyOyAvLyBCaXRtYXNrIHVzZWQgZm9yIHRlc3RpbmcgZm9yIGFueSBraW5kIG9mIG9i
amVjdCBwcmVkaWN0aW9uLgorc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNTdHJpbmdJ
ZGVudCAgICAgICAgPSAxdWxsIDw8IDIzOyAvLyBJdCdzIGRlZmluaXRlbHkgYSBKU1N0cmluZywg
YW5kIGl0J3MgYW4gaWRlbnRpZmllci4KK3N0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVj
U3RyaW5nVmFyICAgICAgICAgID0gMXVsbCA8PCAyNDsgLy8gSXQncyBkZWZpbml0ZWx5IGEgSlNT
dHJpbmcsIGFuZCBpdCdzIG5vdCBhbiBpZGVudGlmaWVyLgogc3RhdGljIGNvbnN0IFNwZWN1bGF0
ZWRUeXBlIFNwZWNTdHJpbmcgICAgICAgICAgICAgPSBTcGVjU3RyaW5nSWRlbnQgfCBTcGVjU3Ry
aW5nVmFyOyAvLyBJdCdzIGRlZmluaXRlbHkgYSBKU1N0cmluZy4KLXN0YXRpYyBjb25zdCBTcGVj
dWxhdGVkVHlwZSBTcGVjU3ltYm9sICAgICAgICAgICAgID0gMXVsbCA8PCAyMzsgLy8gSXQncyBk
ZWZpbml0ZWx5IGEgU3ltYm9sLgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNDZWxs
T3RoZXIgICAgICAgICAgPSAxdWxsIDw8IDI0OyAvLyBJdCdzIGRlZmluaXRlbHkgYSBKU0NlbGwg
YnV0IG5vdCBhIHN1YmNsYXNzIG9mIEpTT2JqZWN0IGFuZCBkZWZpbml0ZWx5IG5vdCBhIEpTU3Ry
aW5nIG9yIGEgU3ltYm9sLgorc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNTeW1ib2wg
ICAgICAgICAgICAgPSAxdWxsIDw8IDI1OyAvLyBJdCdzIGRlZmluaXRlbHkgYSBTeW1ib2wuCitz
dGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0NlbGxPdGhlciAgICAgICAgICA9IDF1bGwg
PDwgMjY7IC8vIEl0J3MgZGVmaW5pdGVseSBhIEpTQ2VsbCBidXQgbm90IGEgc3ViY2xhc3Mgb2Yg
SlNPYmplY3QgYW5kIGRlZmluaXRlbHkgbm90IGEgSlNTdHJpbmcgb3IgYSBTeW1ib2wuCiBzdGF0
aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0NlbGwgICAgICAgICAgICAgICA9IFNwZWNPYmpl
Y3QgfCBTcGVjU3RyaW5nIHwgU3BlY1N5bWJvbCB8IFNwZWNDZWxsT3RoZXI7IC8vIEl0J3MgZGVm
aW5pdGVseSBhIEpTQ2VsbC4KLXN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjQm9vbElu
dDMyICAgICAgICAgID0gMXVsbCA8PCAyNTsgLy8gSXQncyBkZWZpbml0ZWx5IGFuIEludDMyIHdp
dGggdmFsdWUgMCBvciAxLgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNOb25Cb29s
SW50MzIgICAgICAgPSAxdWxsIDw8IDI2OyAvLyBJdCdzIGRlZmluaXRlbHkgYW4gSW50MzIgd2l0
aCB2YWx1ZSBvdGhlciB0aGFuIDAgb3IgMS4KK3N0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBT
cGVjQm9vbEludDMyICAgICAgICAgID0gMXVsbCA8PCAyNzsgLy8gSXQncyBkZWZpbml0ZWx5IGFu
IEludDMyIHdpdGggdmFsdWUgMCBvciAxLgorc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNw
ZWNOb25Cb29sSW50MzIgICAgICAgPSAxdWxsIDw8IDI4OyAvLyBJdCdzIGRlZmluaXRlbHkgYW4g
SW50MzIgd2l0aCB2YWx1ZSBvdGhlciB0aGFuIDAgb3IgMS4KIHN0YXRpYyBjb25zdCBTcGVjdWxh
dGVkVHlwZSBTcGVjSW50MzJPbmx5ICAgICAgICAgID0gU3BlY0Jvb2xJbnQzMiB8IFNwZWNOb25C
b29sSW50MzI7IC8vIEl0J3MgZGVmaW5pdGVseSBhbiBJbnQzMi4KLXN0YXRpYyBjb25zdCBTcGVj
dWxhdGVkVHlwZSBTcGVjSW50NTJPbmx5ICAgICAgICAgID0gMXVsbCA8PCAyNzsgLy8gSXQncyBk
ZWZpbml0ZWx5IGFuIEludDUyIGFuZCB3ZSBpbnRlbmQgaXQgdG8gdW5ib3ggaXQuIEl0J3MgYWxz
byBkZWZpbml0ZWx5IG5vdCBhbiBJbnQzMi4KK3N0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBT
cGVjSW50NTJPbmx5ICAgICAgICAgID0gMXVsbCA8PCAyOTsgLy8gSXQncyBkZWZpbml0ZWx5IGFu
IEludDUyIGFuZCB3ZSBpbnRlbmQgaXQgdG8gdW5ib3ggaXQuIEl0J3MgYWxzbyBkZWZpbml0ZWx5
IG5vdCBhbiBJbnQzMi4KIHN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjQW55SW50ICAg
ICAgICAgICAgID0gU3BlY0ludDMyT25seSB8IFNwZWNJbnQ1Mk9ubHk7IC8vIEl0J3Mgc29tZXRo
aW5nIHRoYXQgd2UgY2FuIGRvIG1hY2hpbmUgaW50IGFyaXRobWV0aWMgb24uCi1zdGF0aWMgY29u
c3QgU3BlY3VsYXRlZFR5cGUgU3BlY0FueUludEFzRG91YmxlICAgICA9IDF1bGwgPDwgMjg7IC8v
IEl0J3MgZGVmaW5pdGVseSBhbiBJbnQ1MiBhbmQgaXQncyBpbnNpZGUgYSBkb3VibGUuCi1zdGF0
aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY05vbkludEFzRG91YmxlICAgICA9IDF1bGwgPDwg
Mjk7IC8vIEl0J3MgZGVmaW5pdGVseSBub3QgYW4gSW50NTIgYnV0IGl0J3MgYSByZWFsIG51bWJl
ciBhbmQgaXQncyBhIGRvdWJsZS4KK3N0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjQW55
SW50QXNEb3VibGUgICAgID0gMXVsbCA8PCAzMDsgLy8gSXQncyBkZWZpbml0ZWx5IGFuIEludDUy
IGFuZCBpdCdzIGluc2lkZSBhIGRvdWJsZS4KK3N0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBT
cGVjTm9uSW50QXNEb3VibGUgICAgID0gMXVsbCA8PCAzMTsgLy8gSXQncyBkZWZpbml0ZWx5IG5v
dCBhbiBJbnQ1MiBidXQgaXQncyBhIHJlYWwgbnVtYmVyIGFuZCBpdCdzIGEgZG91YmxlLgogc3Rh
dGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNEb3VibGVSZWFsICAgICAgICAgPSBTcGVjTm9u
SW50QXNEb3VibGUgfCBTcGVjQW55SW50QXNEb3VibGU7IC8vIEl0J3MgZGVmaW5pdGVseSBhIG5v
bi1OYU4gZG91YmxlLgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNEb3VibGVQdXJl
TmFOICAgICAgPSAxdWxsIDw8IDMwOyAvLyBJdCdzIGRlZmluaXRlbHkgYSBOYU4gdGhhdCBpcyBz
YWZlIHRvIHRhZyAoaS5lLiBwdXJlKS4KLXN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVj
RG91YmxlSW1wdXJlTmFOICAgID0gMXVsbCA8PCAzMTsgLy8gSXQncyBkZWZpbml0ZWx5IGEgTmFO
IHRoYXQgaXMgdW5zYWZlIHRvIHRhZyAoaS5lLiBpbXB1cmUpLgorc3RhdGljIGNvbnN0IFNwZWN1
bGF0ZWRUeXBlIFNwZWNEb3VibGVQdXJlTmFOICAgICAgPSAxdWxsIDw8IDMyOyAvLyBJdCdzIGRl
ZmluaXRlbHkgYSBOYU4gdGhhdCBpcyBzYWZlIHRvIHRhZyAoaS5lLiBwdXJlKS4KK3N0YXRpYyBj
b25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjRG91YmxlSW1wdXJlTmFOICAgID0gMXVsbCA8PCAzMzsg
Ly8gSXQncyBkZWZpbml0ZWx5IGEgTmFOIHRoYXQgaXMgdW5zYWZlIHRvIHRhZyAoaS5lLiBpbXB1
cmUpLgogc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNEb3VibGVOYU4gICAgICAgICAg
PSBTcGVjRG91YmxlUHVyZU5hTiB8IFNwZWNEb3VibGVJbXB1cmVOYU47IC8vIEl0J3MgZGVmaW5p
dGVseSBzb21lIGtpbmQgb2YgTmFOLgogc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNC
eXRlY29kZURvdWJsZSAgICAgPSBTcGVjRG91YmxlUmVhbCB8IFNwZWNEb3VibGVQdXJlTmFOOyAv
LyBJdCdzIGVpdGhlciBhIG5vbi1OYU4gb3IgYSBOYU4gZG91YmxlLCBidXQgaXQncyBkZWZpbml0
ZWx5IG5vdCBpbXB1cmUgTmFOLgogc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNGdWxs
RG91YmxlICAgICAgICAgPSBTcGVjRG91YmxlUmVhbCB8IFNwZWNEb3VibGVOYU47IC8vIEl0J3Mg
ZWl0aGVyIGEgbm9uLU5hTiBvciBhIE5hTiBkb3VibGUuCkBAIC04NSwxMiArODcsMTIgQEAgc3Rh
dGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNCeXRlY29kZVJlYWxOdW1iZXIgPSBTcGVjSW50
MzJPbmx5IHwgU3BlY0RvdWJsZVIKIHN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjRnVs
bFJlYWxOdW1iZXIgICAgID0gU3BlY0FueUludCB8IFNwZWNEb3VibGVSZWFsOyAvLyBJdCdzIGVp
dGhlciBhbiBJbnQzMiBvciBhIERvdWJsZVJlYWwsIG9yIGEgSW50NTIuCiBzdGF0aWMgY29uc3Qg
U3BlY3VsYXRlZFR5cGUgU3BlY0J5dGVjb2RlTnVtYmVyICAgICA9IFNwZWNJbnQzMk9ubHkgfCBT
cGVjQnl0ZWNvZGVEb3VibGU7IC8vIEl0J3MgZWl0aGVyIGFuIEludDMyIG9yIGEgRG91YmxlLCBh
bmQgdGhlIERvdWJsZSBjYW5ub3QgYmUgYW4gaW1wdXJlIE5hTi4KIHN0YXRpYyBjb25zdCBTcGVj
dWxhdGVkVHlwZSBTcGVjRnVsbE51bWJlciAgICAgICAgID0gU3BlY0FueUludCB8IFNwZWNGdWxs
RG91YmxlOyAvLyBJdCdzIGVpdGhlciBhbiBJbnQzMiwgSW50NTIsIG9yIGEgRG91YmxlLCBhbmQg
dGhlIERvdWJsZSBjYW4gYmUgaW1wdXJlIE5hTi4KLXN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlw
ZSBTcGVjQm9vbGVhbiAgICAgICAgICAgID0gMXVsbCA8PCAzMjsgLy8gSXQncyBkZWZpbml0ZWx5
IGEgQm9vbGVhbi4KLXN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjT3RoZXIgICAgICAg
ICAgICAgID0gMXVsbCA8PCAzMzsgLy8gSXQncyBkZWZpbml0ZWx5IGVpdGhlciBOdWxsIG9yIFVu
ZGVmaW5lZC4KK3N0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjQm9vbGVhbiAgICAgICAg
ICAgID0gMXVsbCA8PCAzNDsgLy8gSXQncyBkZWZpbml0ZWx5IGEgQm9vbGVhbi4KK3N0YXRpYyBj
b25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjT3RoZXIgICAgICAgICAgICAgID0gMXVsbCA8PCAzNTsg
Ly8gSXQncyBkZWZpbml0ZWx5IGVpdGhlciBOdWxsIG9yIFVuZGVmaW5lZC4KIHN0YXRpYyBjb25z
dCBTcGVjdWxhdGVkVHlwZSBTcGVjTWlzYyAgICAgICAgICAgICAgID0gU3BlY0Jvb2xlYW4gfCBT
cGVjT3RoZXI7IC8vIEl0J3MgZGVmaW5pdGVseSBlaXRoZXIgYSBib29sZWFuLCBOdWxsLCBvciBV
bmRlZmluZWQuCiBzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0hlYXBUb3AgICAgICAg
ICAgICA9IFNwZWNDZWxsIHwgU3BlY0J5dGVjb2RlTnVtYmVyIHwgU3BlY01pc2M7IC8vIEl0IGNh
biBiZSBhbnkgb2YgdGhlIGFib3ZlLCBleGNlcHQgZm9yIFNwZWNJbnQ1Mk9ubHkgYW5kIFNwZWNE
b3VibGVJbXB1cmVOYU4uCiBzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY1ByaW1pdGl2
ZSAgICAgICAgICA9IFNwZWNTdHJpbmcgfCBTcGVjU3ltYm9sIHwgU3BlY0J5dGVjb2RlTnVtYmVy
IHwgU3BlY01pc2M7IC8vIEl0J3MgYW55IG5vbi1PYmplY3QgSlNWYWx1ZS4KLXN0YXRpYyBjb25z
dCBTcGVjdWxhdGVkVHlwZSBTcGVjRW1wdHkgICAgICAgICAgICAgID0gMXVsbCA8PCAzNDsgLy8g
SXQncyBkZWZpbml0ZWx5IGFuIGVtcHR5IHZhbHVlIG1hcmtlci4KK3N0YXRpYyBjb25zdCBTcGVj
dWxhdGVkVHlwZSBTcGVjRW1wdHkgICAgICAgICAgICAgID0gMXVsbCA8PCAzNjsgLy8gSXQncyBk
ZWZpbml0ZWx5IGFuIGVtcHR5IHZhbHVlIG1hcmtlci4KIHN0YXRpYyBjb25zdCBTcGVjdWxhdGVk
VHlwZSBTcGVjQnl0ZWNvZGVUb3AgICAgICAgID0gU3BlY0hlYXBUb3AgfCBTcGVjRW1wdHk7IC8v
IEl0IGNhbiBiZSBhbnkgb2YgdGhlIGFib3ZlLCBleGNlcHQgZm9yIFNwZWNJbnQ1Mk9ubHkgYW5k
IFNwZWNEb3VibGVJbXB1cmVOYU4uIENvcnJlc3BvbmRzIHRvIHdoYXQgY291bGQgYmUgZm91bmQg
aW4gYSBieXRlY29kZSBsb2NhbC4KIHN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjRnVs
bFRvcCAgICAgICAgICAgID0gU3BlY0J5dGVjb2RlVG9wIHwgU3BlY0Z1bGxOdW1iZXI7IC8vIEl0
IGNhbiBiZSBhbnl0aGluZyB0aGF0IGJ5dGVjb2RlIGNvdWxkIHNlZSBwbHVzIGV4b3RpYyBlbmNv
ZGluZ3Mgb2YgbnVtYmVycy4KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oCmluZGV4IGJiYTA2ZGFjZGYxOWEz
Zjk2YTM3YjQ5NmIwYzI3OGRhYjFkYTJlNDEuLjVjMjYzMWNmY2EwYTEyMjNlM2YwNGJjZWM5Mzcz
YWQ2MzViZDRjMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJz
dHJhY3RJbnRlcnByZXRlcklubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgKQEAgLTEwNzMsNiArMTA3MywxMCBAQCBi
b29sIEFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0ZVR5cGU+OjpleGVjdXRlRWZmZWN0
cyh1bnNpZ25lZCBjbG9iYmVyTGltaQogICAgICAgICB9CiAgICAgICAgIGJyZWFrOwogCisgICAg
Y2FzZSBXZWFrTWFwR2V0OgorICAgICAgICBmb3JOb2RlKG5vZGUpLm1ha2VCeXRlY29kZVRvcCgp
OworICAgICAgICBicmVhazsKKwogICAgIGNhc2UgSXNFbXB0eToKICAgICBjYXNlIElzVW5kZWZp
bmVkOgogICAgIGNhc2UgSXNCb29sZWFuOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0J5dGVDb2RlUGFyc2VyLmNwcAppbmRleCBlOTdiMzg3M2IzN2JiNzcwMTM3OGNmZWVmYzhi
ODA4NTFhMWU3OTUwLi5lYzkwYzA4MzAxYzc0NDJjOTZkNmE1N2UxYjhmYzA0ZDU0M2ZmMzZiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcApA
QCAtMjk0Niw2ICsyOTQ2LDIxIEBAIGJvb2wgQnl0ZUNvZGVQYXJzZXI6OmhhbmRsZUludHJpbnNp
Y0NhbGwoTm9kZSogY2FsbGVlLCBpbnQgcmVzdWx0T3BlcmFuZCwgSW50cmluCiAgICAgICAgIHJl
dHVybiB0cnVlOwogICAgIH0KIAorICAgIGNhc2UgSlNXZWFrTWFwR2V0SW50cmluc2ljOiB7Cisg
ICAgICAgIGlmIChhcmd1bWVudENvdW50SW5jbHVkaW5nVGhpcyAhPSAyKQorICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOworCisgICAgICAgIGlmIChtX2lubGluZVN0YWNrVG9wLT5tX2V4aXRQcm9m
aWxlLmhhc0V4aXRTaXRlKG1fY3VycmVudEluZGV4LCBCYWRUeXBlKSkKKyAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKKworICAgICAgICBpbnNlcnRDaGVja3MoKTsKKyAgICAgICAgTm9kZSogbWFw
ID0gZ2V0KHZpcnR1YWxSZWdpc3RlckZvckFyZ3VtZW50KDAsIHJlZ2lzdGVyT2Zmc2V0KSk7Cisg
ICAgICAgIE5vZGUqIGtleSA9IGdldCh2aXJ0dWFsUmVnaXN0ZXJGb3JBcmd1bWVudCgxLCByZWdp
c3Rlck9mZnNldCkpOworICAgICAgICBOb2RlKiByZXN1bHQgPSBhZGRUb0dyYXBoKFdlYWtNYXBH
ZXQsIE9wSW5mbygpLCBPcEluZm8ocHJlZGljdGlvbiksIG1hcCwga2V5KTsKKyAgICAgICAgc2V0
KFZpcnR1YWxSZWdpc3RlcihyZXN1bHRPcGVyYW5kKSwgcmVzdWx0KTsKKyAgICAgICAgcmV0dXJu
IHRydWU7CisgICAgfQorCiAgICAgY2FzZSBIYXNPd25Qcm9wZXJ0eUludHJpbnNpYzogewogICAg
ICAgICBpZiAoYXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMgIT0gMikKICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xv
YmJlcml6ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVyaXplLmgKaW5k
ZXggMTY2ZTZhZjQ1ZjQ5NGVjZjZjNmMzYjFjMmFjMmU4ODI4ZjZkMmVlYy4uNmNhNWQ3MThjODM2
MzcwYWNiYWJkNmU5YTMwZDVhNGM2OTI1N2ZlYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdDbG9iYmVyaXplLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdDbG9iYmVyaXplLmgKQEAgLTE1NDcsNiArMTU0Nyw3IEBAIHZvaWQgY2xvYmJlcml6ZShH
cmFwaCYgZ3JhcGgsIE5vZGUqIG5vZGUsIGNvbnN0IFJlYWRGdW5jdG9yJiByZWFkLCBjb25zdCBX
cml0ZUZ1CiAgICAgY2FzZSBNYXBIYXNoOgogICAgICAgICBkZWYoUHVyZVZhbHVlKG5vZGUpKTsK
ICAgICAgICAgcmV0dXJuOworCiAgICAgY2FzZSBHZXRNYXBCdWNrZXQ6IHsKICAgICAgICAgcmVh
ZChNaXNjRmllbGRzKTsKICAgICAgICAgRWRnZSYgbWFwRWRnZSA9IG5vZGUtPmNoaWxkMSgpOwpA
QCAtMTU1NCwxMiArMTU1NSwxNCBAQCB2b2lkIGNsb2JiZXJpemUoR3JhcGgmIGdyYXBoLCBOb2Rl
KiBub2RlLCBjb25zdCBSZWFkRnVuY3RvciYgcmVhZCwgY29uc3QgV3JpdGVGdQogICAgICAgICBk
ZWYoSGVhcExvY2F0aW9uKE1hcEJ1Y2tldExvYywgTWlzY0ZpZWxkcywgbWFwRWRnZSwga2V5RWRn
ZSksIExhenlOb2RlKG5vZGUpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KKwogICAgIGNhc2Ug
R2V0TWFwQnVja2V0SGVhZDogewogICAgICAgICByZWFkKE1pc2NGaWVsZHMpOwogICAgICAgICBF
ZGdlJiBtYXBFZGdlID0gbm9kZS0+Y2hpbGQxKCk7CiAgICAgICAgIGRlZihIZWFwTG9jYXRpb24o
TWFwQnVja2V0SGVhZExvYywgTWlzY0ZpZWxkcywgbWFwRWRnZSksIExhenlOb2RlKG5vZGUpKTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KKwogICAgIGNhc2UgR2V0TWFwQnVja2V0TmV4dDogewog
ICAgICAgICByZWFkKE1pc2NGaWVsZHMpOwogICAgICAgICBMb2NhdGlvbktpbmQgbG9jYXRpb25L
aW5kID0gTWFwQnVja2V0TWFwTmV4dExvYzsKQEAgLTE1NjksMTIgKzE1NzIsMTQgQEAgdm9pZCBj
bG9iYmVyaXplKEdyYXBoJiBncmFwaCwgTm9kZSogbm9kZSwgY29uc3QgUmVhZEZ1bmN0b3ImIHJl
YWQsIGNvbnN0IFdyaXRlRnUKICAgICAgICAgZGVmKEhlYXBMb2NhdGlvbihsb2NhdGlvbktpbmQs
IE1pc2NGaWVsZHMsIGJ1Y2tldEVkZ2UpLCBMYXp5Tm9kZShub2RlKSk7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CisKICAgICBjYXNlIExvYWRLZXlGcm9tTWFwQnVja2V0OiB7CiAgICAgICAgIHJl
YWQoTWlzY0ZpZWxkcyk7CiAgICAgICAgIEVkZ2UmIGJ1Y2tldEVkZ2UgPSBub2RlLT5jaGlsZDEo
KTsKICAgICAgICAgZGVmKEhlYXBMb2NhdGlvbihNYXBCdWNrZXRLZXlMb2MsIE1pc2NGaWVsZHMs
IGJ1Y2tldEVkZ2UpLCBMYXp5Tm9kZShub2RlKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CisK
ICAgICBjYXNlIExvYWRWYWx1ZUZyb21NYXBCdWNrZXQ6IHsKICAgICAgICAgcmVhZChNaXNjRmll
bGRzKTsKICAgICAgICAgRWRnZSYgYnVja2V0RWRnZSA9IG5vZGUtPmNoaWxkMSgpOwpAQCAtMTU4
Miw2ICsxNTg3LDE0IEBAIHZvaWQgY2xvYmJlcml6ZShHcmFwaCYgZ3JhcGgsIE5vZGUqIG5vZGUs
IGNvbnN0IFJlYWRGdW5jdG9yJiByZWFkLCBjb25zdCBXcml0ZUZ1CiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAKKyAgICBjYXNlIFdlYWtNYXBHZXQ6IHsKKyAgICAgICAgcmVhZChNaXNjRmllbGRz
KTsKKyAgICAgICAgRWRnZSYgbWFwRWRnZSA9IG5vZGUtPmNoaWxkMSgpOworICAgICAgICBFZGdl
JiBrZXlFZGdlID0gbm9kZS0+Y2hpbGQyKCk7CisgICAgICAgIGRlZihIZWFwTG9jYXRpb24oV2Vh
a01hcEdldExvYywgTWlzY0ZpZWxkcywgbWFwRWRnZSwga2V5RWRnZSksIExhenlOb2RlKG5vZGUp
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIGNhc2UgVG9Mb3dlckNhc2U6CiAgICAg
ICAgIGRlZihQdXJlVmFsdWUobm9kZSkpOwogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RvZXNHQy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0RvZXNHQy5jcHAKaW5kZXggNmQ5ZDIyODA1MGJiZjUzOWVhY2FiOWU3MDBi
ODYyYTliMjkwZGU3MC4uZWM3ZTA1YTU3OGFmMDZkNjgzNWYwMTkwNTEzYzM3ZjM0NDA3MTdhZSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEb2VzR0MuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRG9lc0dDLmNwcApAQCAtMTk4LDYgKzE5OCw3
IEBAIGJvb2wgZG9lc0dDKEdyYXBoJiBncmFwaCwgTm9kZSogbm9kZSkKICAgICBjYXNlIEdldE1h
cEJ1Y2tldE5leHQ6CiAgICAgY2FzZSBMb2FkS2V5RnJvbU1hcEJ1Y2tldDoKICAgICBjYXNlIExv
YWRWYWx1ZUZyb21NYXBCdWNrZXQ6CisgICAgY2FzZSBXZWFrTWFwR2V0OgogICAgIGNhc2UgVW5y
ZWFjaGFibGU6CiAgICAgY2FzZSBFeHRyYWN0Q2F0Y2hMb2NhbDoKICAgICBjYXNlIEV4dHJhY3RP
U1JFbnRyeUxvY2FsOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdG
aXh1cFBoYXNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5j
cHAKaW5kZXggNjE1OTk5YzE3NzQyMjY5N2E3YzIzYWEzYjA5M2MyMDQ4NzZhZDUxNy4uZWJmNDIw
ODczMmQzYjQ3MjgyZWQ3N2FmNjRjNjk0Mjg2NDIyNDI3OSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCkBAIC0xODQ5LDYgKzE4NDksMTIgQEAgY2xhc3Mg
Rml4dXBQaGFzZSA6IHB1YmxpYyBQaGFzZSB7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
fQogCisgICAgICAgIGNhc2UgV2Vha01hcEdldDogeworICAgICAgICAgICAgZml4RWRnZTxXZWFr
TWFwT2JqZWN0VXNlPihub2RlLT5jaGlsZDEoKSk7CisgICAgICAgICAgICBmaXhFZGdlPE9iamVj
dFVzZT4obm9kZS0+Y2hpbGQyKCkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKwog
ICAgICAgICBjYXNlIERlZmluZURhdGFQcm9wZXJ0eTogewogICAgICAgICAgICAgZml4RWRnZTxD
ZWxsVXNlPihtX2dyYXBoLnZhckFyZ0NoaWxkKG5vZGUsIDApKTsKICAgICAgICAgICAgIEVkZ2Um
IHByb3BlcnR5RWRnZSA9IG1fZ3JhcGgudmFyQXJnQ2hpbGQobm9kZSwgMSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0hlYXBMb2NhdGlvbi5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0hlYXBMb2NhdGlvbi5jcHAKaW5kZXggNjBiZDU3MjZiYzU4
Y2I3NDY4ZDc4ZDUzNjRiZjQ0NWZkOGI5ODY0ZS4uNGVkMGU0NzYyYTUxZjI4MDI3Yzc2YzhhMTRj
MGQyYzE4ZjljZGI2NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdI
ZWFwTG9jYXRpb24uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSGVhcExv
Y2F0aW9uLmNwcApAQCAtMTU5LDI0ICsxNTksMzUgQEAgdm9pZCBwcmludEludGVybmFsKFByaW50
U3RyZWFtJiBvdXQsIExvY2F0aW9uS2luZCBraW5kKQogICAgIGNhc2UgUmVnRXhwT2JqZWN0TGFz
dEluZGV4TG9jOgogICAgICAgICBvdXQucHJpbnQoIlJlZ0V4cE9iamVjdExhc3RJbmRleExvYyIp
OwogICAgICAgICByZXR1cm47CisKICAgICBjYXNlIE1hcEJ1Y2tldExvYzoKICAgICAgICAgb3V0
LnByaW50KCJNYXBCdWNrZXRMb2MiKTsKICAgICAgICAgcmV0dXJuOworCiAgICAgY2FzZSBNYXBC
dWNrZXRIZWFkTG9jOgogICAgICAgICBvdXQucHJpbnQoIk1hcEJ1Y2tldEhlYWRMb2MiKTsKICAg
ICAgICAgcmV0dXJuOworCiAgICAgY2FzZSBNYXBCdWNrZXRLZXlMb2M6CiAgICAgICAgIG91dC5w
cmludCgiTWFwQnVja2V0S2V5TG9jIik7CiAgICAgICAgIHJldHVybjsKKwogICAgIGNhc2UgTWFw
QnVja2V0VmFsdWVMb2M6CiAgICAgICAgIG91dC5wcmludCgiTWFwQnVja2V0VmFsdWVMb2MiKTsK
ICAgICAgICAgcmV0dXJuOworCiAgICAgY2FzZSBNYXBCdWNrZXRNYXBOZXh0TG9jOgogICAgICAg
ICBvdXQucHJpbnQoIk1hcEJ1Y2tldE1hcE5leHRMb2MiKTsKICAgICAgICAgcmV0dXJuOworCiAg
ICAgY2FzZSBNYXBCdWNrZXRTZXROZXh0TG9jOgogICAgICAgICBvdXQucHJpbnQoIk1hcEJ1Y2tl
dFNldE5leHRMb2MiKTsKICAgICAgICAgcmV0dXJuOworCisgICAgY2FzZSBXZWFrTWFwR2V0TG9j
OgorICAgICAgICBvdXQucHJpbnQoIldlYWtNYXBHZXRMb2MiKTsKKyAgICAgICAgcmV0dXJuOwor
CiAgICAgY2FzZSBET01TdGF0ZUxvYzoKICAgICAgICAgb3V0LnByaW50KCJET01TdGF0ZUxvYyIp
OwogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0hlYXBMb2NhdGlvbi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdIZWFwTG9j
YXRpb24uaAppbmRleCBiODJjOTIyZGEyN2Y3ZTAwZjI3YjVhYTMwNzdlZTQwNTU1MThlZWM0Li42
NzY1NjVjZmJmMGQxMzEyMTk4Y2Q0MTRiMmEzYmE2NzYwYTBjOTNiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0hlYXBMb2NhdGlvbi5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHSGVhcExvY2F0aW9uLmgKQEAgLTY4LDYgKzY4LDcgQEAgZW51bSBM
b2NhdGlvbktpbmQgewogICAgIE1hcEJ1Y2tldEtleUxvYywKICAgICBNYXBCdWNrZXRNYXBOZXh0
TG9jLAogICAgIE1hcEJ1Y2tldFNldE5leHRMb2MsCisgICAgV2Vha01hcEdldExvYywKICAgICBE
T01TdGF0ZUxvYywKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHTm9kZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgKaW5kZXggZTcw
ZGI5NjExYzRiMDQyODI5NTk2MzQzMDI1YTczMzkzZjE3Y2IxNC4uMTU4OTcxOTA3NzkxZjg2YWJh
YzA3M2M4ZmUxMjAwYzI5MDQ4Y2FiNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdOb2RlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgK
QEAgLTE1MzYsNiArMTUzNiw3IEBAIHN0cnVjdCBOb2RlIHsKICAgICAgICAgY2FzZSBBdG9taWNz
U3ViOgogICAgICAgICBjYXNlIEF0b21pY3NYb3I6CiAgICAgICAgIGNhc2UgR2V0RHluYW1pY1Zh
cjoKKyAgICAgICAgY2FzZSBXZWFrTWFwR2V0OgogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAg
ICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVUeXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR05vZGVUeXBlLmgKaW5kZXggNjhmZDZmOGMwZjA5MDFlYTkyMTFjYjc5ZWRl
MGE3MWYxNmI1NzU4MS4uYmFkNTliZGY1YWY2OWYyYjRhNGQxYmFiOTc0ZmE2ZWFkZjU3ZGFkYyAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5cGUuaApAQCAtNDM2LDYgKzQzNiw4
IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKICAgICBtYWNybyhHZXRNYXBCdWNr
ZXROZXh0LCBOb2RlUmVzdWx0SlMpIFwKICAgICBtYWNybyhMb2FkS2V5RnJvbU1hcEJ1Y2tldCwg
Tm9kZVJlc3VsdEpTKSBcCiAgICAgbWFjcm8oTG9hZFZhbHVlRnJvbU1hcEJ1Y2tldCwgTm9kZVJl
c3VsdEpTKSBcCisgICAgLyogTm9kZXMgZm9yIEpTV2Vha01hcCBhbmQgSlNXZWFrU2V0ICovIFwK
KyAgICBtYWNybyhXZWFrTWFwR2V0LCBOb2RlUmVzdWx0SlMpIFwKICAgICBcCiAgICAgbWFjcm8o
VG9Mb3dlckNhc2UsIE5vZGVSZXN1bHRKUykgXAogICAgIC8qIE5vZGVzIGZvciBET00gSklUICov
XApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAKaW5kZXggNWM0
MWM4MzJjZWZjNzQ5NDljOTMxYzQwODA3N2E0NmNkNDBjY2VhZC4uNTAzY2MxOTVkNWI4MDA5NjRj
OGM3MTBkNTFmMDhmZjM0ZDU4ZWVmYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdPcGVyYXRpb25zLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R09wZXJhdGlvbnMuY3BwCkBAIC01NSw2ICs1NSw3IEBACiAjaW5jbHVkZSAiSlNMZXhpY2FsRW52
aXJvbm1lbnQuaCIKICNpbmNsdWRlICJKU01hcC5oIgogI2luY2x1ZGUgIkpTU2V0LmgiCisjaW5j
bHVkZSAiSlNXZWFrTWFwLmgiCiAjaW5jbHVkZSAiT2JqZWN0Q29uc3RydWN0b3IuaCIKICNpbmNs
dWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiUGFyc2VJbnQuaCIKQEAgLTgyNSw2ICs4MjYs
MTMgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25SZWdFeHBFeGVjR2Vu
ZXJpYyhFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmEKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGFzUmVnRXhwT2JqZWN0KGJhc2UpLT5leGVjKGV4ZWMsIGdsb2JhbE9iamVjdCwgaW5wdXQpKTsK
IH0KIAorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25XZWFrTWFwR2V0KEV4
ZWNTdGF0ZSogZXhlYywgSlNDZWxsKiB3ZWFrTWFwLCBKU0NlbGwqIG9iamVjdCkKK3sKKyAgICBW
TSYgdm0gPSBleGVjLT52bSgpOworICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIoJnZt
LCBleGVjKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQ2FzdDxKU1dlYWtNYXAqPih3
ZWFrTWFwKS0+Z2V0KGFzT2JqZWN0KG9iamVjdCkpKTsKK30KKwogRW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiBvcGVyYXRpb25QYXJzZUludE5vUmFkaXhHZW5lcmljKEV4ZWNTdGF0ZSogZXhl
YywgRW5jb2RlZEpTVmFsdWUgdmFsdWUpCiB7CiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmgKaW5kZXggYzQ3NjhkYzYwYWY5
ODdjMTU4NTMyODhmMDI4ZTJkNDYyOWJhNDk5My4uYTQ4MDNiMjEyMGYzMmRiYmY3MmNlMmIyOWQ5
ZDU0YTU2Nzk0NmZmYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdP
cGVyYXRpb25zLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25z
LmgKQEAgLTEzMSw2ICsxMzEsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvbkFycmF5UG9wQW5kUmVjb3Zlckxlbmd0aChFeGVjU3RhdGUqLCBKU0FycgogRW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25SZWdFeHBFeGVjU3RyaW5nKEV4ZWNTdGF0ZSos
IEpTR2xvYmFsT2JqZWN0KiwgUmVnRXhwT2JqZWN0KiwgSlNTdHJpbmcqKSBXVEZfSU5URVJOQUw7
CiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblJlZ0V4cEV4ZWMoRXhlY1N0
YXRlKiwgSlNHbG9iYWxPYmplY3QqLCBSZWdFeHBPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSkgV1RG
X0lOVEVSTkFMOwogRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25SZWdFeHBF
eGVjR2VuZXJpYyhFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSkgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBvcGVyYXRpb25XZWFrTWFwR2V0KEV4ZWNTdGF0ZSosIEpTQ2VsbCosIEpTQ2VsbCopIFdURl9J
TlRFUk5BTDsKIC8vIFRoZXNlIGNvbXBhcmlzb25zIHJldHVybiBhIGJvb2xlYW4gd2l0aGluIGEg
c2l6ZV90IHN1Y2ggdGhhdCB0aGUgdmFsdWUgaXMgemVybyBleHRlbmRlZCB0byBmaWxsIHRoZSBy
ZWdpc3Rlci4KIHNpemVfdCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblJlZ0V4cFRlc3RTdHJpbmco
RXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqLCBSZWdFeHBPYmplY3QqLCBKU1N0cmluZyopIFdU
Rl9JTlRFUk5BTDsKIHNpemVfdCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblJlZ0V4cFRlc3QoRXhl
Y1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqLCBSZWdFeHBPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSkg
V1RGX0lOVEVSTkFMOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQ
cmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcAppbmRleCA1YjBiOWVmNjM3YzIxZmVm
MDQ1M2ZlYTkzYzU3YjRiZDFlNzFlYjNlLi5lNDE5MzI0NGY4M2Y1MmVkMjdlOTI5ODQyOTI3Mjlm
YzRhZGQ4OTlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRp
Y3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcApAQCAtNzIyLDcgKzcyMiw4IEBAIGNs
YXNzIFByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlIDogcHVibGljIFBoYXNlIHsKICAgICAgICAg
Y2FzZSBUb051bWJlcjoKICAgICAgICAgY2FzZSBHZXRBcmd1bWVudDoKICAgICAgICAgY2FzZSBD
YWxsRE9NR2V0dGVyOgotICAgICAgICBjYXNlIEdldER5bmFtaWNWYXI6IHsKKyAgICAgICAgY2Fz
ZSBHZXREeW5hbWljVmFyOgorICAgICAgICBjYXNlIFdlYWtNYXBHZXQ6IHsKICAgICAgICAgICAg
IHNldFByZWRpY3Rpb24obV9jdXJyZW50Tm9kZS0+Z2V0SGVhcFByZWRpY3Rpb24oKSk7CiAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdTYWZlVG9FeGVjdXRlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1NhZmVUb0V4ZWN1dGUuaAppbmRleCBhZDc2YjMzYjBmYWFmMTg3ZGI0NmEzMDg5MmY0N2ZjYTdl
M2I0NDlkLi4zMjcyMWUxZjQxYWFmOTI5OTRmNTM1N2YwNjI2MWZiZmNkZWRlNjk4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaApAQCAtNjIsNiArNjIs
OCBAQCBjbGFzcyBTYWZlVG9FeGVjdXRlRWRnZSB7CiAgICAgICAgIGNhc2UgRGVyaXZlZEFycmF5
VXNlOgogICAgICAgICBjYXNlIE1hcE9iamVjdFVzZToKICAgICAgICAgY2FzZSBTZXRPYmplY3RV
c2U6CisgICAgICAgIGNhc2UgV2Vha01hcE9iamVjdFVzZToKKyAgICAgICAgY2FzZSBXZWFrU2V0
T2JqZWN0VXNlOgogICAgICAgICBjYXNlIE9iamVjdE9yT3RoZXJVc2U6CiAgICAgICAgIGNhc2Ug
U3RyaW5nSWRlbnRVc2U6CiAgICAgICAgIGNhc2UgU3RyaW5nVXNlOgpAQCAtMzg4LDYgKzM5MCw3
IEBAIGJvb2wgc2FmZVRvRXhlY3V0ZShBYnN0cmFjdFN0YXRlVHlwZSYgc3RhdGUsIEdyYXBoJiBn
cmFwaCwgTm9kZSogbm9kZSkKICAgICBjYXNlIEdldE1hcEJ1Y2tldE5leHQ6CiAgICAgY2FzZSBM
b2FkS2V5RnJvbU1hcEJ1Y2tldDoKICAgICBjYXNlIExvYWRWYWx1ZUZyb21NYXBCdWNrZXQ6Cisg
ICAgY2FzZSBXZWFrTWFwR2V0OgogICAgIGNhc2UgQXRvbWljc0FkZDoKICAgICBjYXNlIEF0b21p
Y3NBbmQ6CiAgICAgY2FzZSBBdG9taWNzQ29tcGFyZUV4Y2hhbmdlOgpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAppbmRleCBmODM2MGI5ZmRiOTAx
YmFjMjE0OWI5NDMyYjBlZTcyZWVjMGFkOTk2Li5kYjg2ODc1YzRlZTJiMzA4NmMyOTNmNDZkNTY1
MTRjZGY5ZWIxMWQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nw
ZWN1bGF0aXZlSklULmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1
bGF0aXZlSklULmNwcApAQCAtODg4NCw2ICs4ODg0LDM0IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6
OnNwZWN1bGF0ZVNldE9iamVjdChFZGdlIGVkZ2UpCiAgICAgc3BlY3VsYXRlU2V0T2JqZWN0KGVk
Z2UsIG9wZXJhbmQuZ3ByKCkpOwogfQogCit2b2lkIFNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGVX
ZWFrTWFwT2JqZWN0KEVkZ2UgZWRnZSwgR1BSUmVnIGNlbGwpCit7CisgICAgc3BlY3VsYXRlQ2Vs
bFR5cGUoZWRnZSwgY2VsbCwgU3BlY1dlYWtNYXBPYmplY3QsIEpTV2Vha01hcFR5cGUpOworfQor
Cit2b2lkIFNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGVXZWFrTWFwT2JqZWN0KEVkZ2UgZWRnZSkK
K3sKKyAgICBpZiAoIW5lZWRzVHlwZUNoZWNrKGVkZ2UsIFNwZWNXZWFrTWFwT2JqZWN0KSkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgb3BlcmFuZCh0aGlzLCBl
ZGdlKTsKKyAgICBzcGVjdWxhdGVXZWFrTWFwT2JqZWN0KGVkZ2UsIG9wZXJhbmQuZ3ByKCkpOwor
fQorCit2b2lkIFNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGVXZWFrU2V0T2JqZWN0KEVkZ2UgZWRn
ZSwgR1BSUmVnIGNlbGwpCit7CisgICAgc3BlY3VsYXRlQ2VsbFR5cGUoZWRnZSwgY2VsbCwgU3Bl
Y1dlYWtTZXRPYmplY3QsIEpTV2Vha1NldFR5cGUpOworfQorCit2b2lkIFNwZWN1bGF0aXZlSklU
OjpzcGVjdWxhdGVXZWFrU2V0T2JqZWN0KEVkZ2UgZWRnZSkKK3sKKyAgICBpZiAoIW5lZWRzVHlw
ZUNoZWNrKGVkZ2UsIFNwZWNXZWFrU2V0T2JqZWN0KSkKKyAgICAgICAgcmV0dXJuOworCisgICAg
U3BlY3VsYXRlQ2VsbE9wZXJhbmQgb3BlcmFuZCh0aGlzLCBlZGdlKTsKKyAgICBzcGVjdWxhdGVX
ZWFrU2V0T2JqZWN0KGVkZ2UsIG9wZXJhbmQuZ3ByKCkpOworfQorCiB2b2lkIFNwZWN1bGF0aXZl
SklUOjpzcGVjdWxhdGVPYmplY3RPck90aGVyKEVkZ2UgZWRnZSkKIHsKICAgICBpZiAoIW5lZWRz
VHlwZUNoZWNrKGVkZ2UsIFNwZWNPYmplY3QgfCBTcGVjT3RoZXIpKQpAQCAtOTIwMiw2ICs5MjMw
LDEyIEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZShOb2RlKiwgRWRnZSBlZGdlKQog
ICAgIGNhc2UgU2V0T2JqZWN0VXNlOgogICAgICAgICBzcGVjdWxhdGVTZXRPYmplY3QoZWRnZSk7
CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgV2Vha01hcE9iamVjdFVzZToKKyAgICAgICAgc3Bl
Y3VsYXRlV2Vha01hcE9iamVjdChlZGdlKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXZWFr
U2V0T2JqZWN0VXNlOgorICAgICAgICBzcGVjdWxhdGVXZWFrU2V0T2JqZWN0KGVkZ2UpOworICAg
ICAgICBicmVhazsKICAgICBjYXNlIE9iamVjdE9yT3RoZXJVc2U6CiAgICAgICAgIHNwZWN1bGF0
ZU9iamVjdE9yT3RoZXIoZWRnZSk7CiAgICAgICAgIGJyZWFrOwpAQCAtMTAyODQsNiArMTAzMTgs
MjYgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUxvYWRWYWx1ZUZyb21NYXBCdWNrZXQo
Tm9kZSogbm9kZSkKICAgICBqc1ZhbHVlUmVzdWx0KHJlc3VsdFJlZ3MsIG5vZGUpOwogfQogCit2
b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlV2Vha01hcEdldChOb2RlKiBub2RlKQoreworICAg
IFNwZWN1bGF0ZUNlbGxPcGVyYW5kIHdlYWtNYXAodGhpcywgbm9kZS0+Y2hpbGQxKCkpOworICAg
IFNwZWN1bGF0ZUNlbGxPcGVyYW5kIG9iamVjdCh0aGlzLCBub2RlLT5jaGlsZDIoKSk7CisgICAg
SlNWYWx1ZVJlZ3NUZW1wb3JhcnkgcmVzdWx0KHRoaXMpOworCisgICAgR1BSUmVnIHdlYWtNYXBH
UFIgPSB3ZWFrTWFwLmdwcigpOworICAgIEdQUlJlZyBvYmplY3RHUFIgPSBvYmplY3QuZ3ByKCk7
CisgICAgSlNWYWx1ZVJlZ3MgcmVzdWx0UmVncyA9IHJlc3VsdC5yZWdzKCk7CisKKyAgICBzcGVj
dWxhdGVXZWFrTWFwT2JqZWN0KG5vZGUtPmNoaWxkMSgpLCB3ZWFrTWFwR1BSKTsKKyAgICBzcGVj
dWxhdGVPYmplY3Qobm9kZS0+Y2hpbGQyKCksIG9iamVjdEdQUik7CisKKyAgICBmbHVzaFJlZ2lz
dGVycygpOworICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uV2Vha01hcEdldCwgZXh0cmFjdFJl
c3VsdChyZXN1bHRSZWdzKSwgd2Vha01hcEdQUiwgb2JqZWN0R1BSKTsKKyAgICBtX2ppdC5leGNl
cHRpb25DaGVjaygpOworCisgICAganNWYWx1ZVJlc3VsdChyZXN1bHRSZWdzLCBub2RlKTsKK30K
KwogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkRGRwogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaAppbmRleCBiNjEyMmVmMDYwNzZmNzAwNDdh
NjJmZTU3ZDMyZjZkOGQyNWVhNDJjLi4zN2ViNDFmYTdlOGQ0YTdjZjIzZTgzMzMzNjlkYTk1YmI2
ZmQ2NzU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0
aXZlSklULmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJ
VC5oCkBAIC0yNzgxLDYgKzI3ODEsNyBAQCBjbGFzcyBTcGVjdWxhdGl2ZUpJVCB7CiAgICAgdm9p
ZCBjb21waWxlQ2hlY2tTdWJDbGFzcyhOb2RlKik7CiAgICAgdm9pZCBjb21waWxlR2V0TWFwQnVj
a2V0SGVhZChOb2RlKik7CiAgICAgdm9pZCBjb21waWxlR2V0TWFwQnVja2V0TmV4dChOb2RlKik7
CisgICAgdm9pZCBjb21waWxlV2Vha01hcEdldChOb2RlKik7CiAgICAgdm9pZCBjb21waWxlTG9h
ZEtleUZyb21NYXBCdWNrZXQoTm9kZSopOwogICAgIHZvaWQgY29tcGlsZUxvYWRWYWx1ZUZyb21N
YXBCdWNrZXQoTm9kZSopOwogICAgIApAQCAtMzAzNiw2ICszMDM3LDEwIEBAIGNsYXNzIFNwZWN1
bGF0aXZlSklUIHsKICAgICB2b2lkIHNwZWN1bGF0ZU1hcE9iamVjdChFZGdlLCBHUFJSZWcgY2Vs
bCk7CiAgICAgdm9pZCBzcGVjdWxhdGVTZXRPYmplY3QoRWRnZSk7CiAgICAgdm9pZCBzcGVjdWxh
dGVTZXRPYmplY3QoRWRnZSwgR1BSUmVnIGNlbGwpOworICAgIHZvaWQgc3BlY3VsYXRlV2Vha01h
cE9iamVjdChFZGdlKTsKKyAgICB2b2lkIHNwZWN1bGF0ZVdlYWtNYXBPYmplY3QoRWRnZSwgR1BS
UmVnIGNlbGwpOworICAgIHZvaWQgc3BlY3VsYXRlV2Vha1NldE9iamVjdChFZGdlKTsKKyAgICB2
b2lkIHNwZWN1bGF0ZVdlYWtTZXRPYmplY3QoRWRnZSwgR1BSUmVnIGNlbGwpOwogICAgIHZvaWQg
c3BlY3VsYXRlT2JqZWN0T3JPdGhlcihFZGdlKTsKICAgICB2b2lkIHNwZWN1bGF0ZVN0cmluZyhF
ZGdlIGVkZ2UsIEdQUlJlZyBjZWxsKTsKICAgICB2b2lkIHNwZWN1bGF0ZVN0cmluZ0lkZW50QW5k
TG9hZFN0b3JhZ2UoRWRnZSBlZGdlLCBHUFJSZWcgc3RyaW5nLCBHUFJSZWcgc3RvcmFnZSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJf
NjQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0
LmNwcAppbmRleCAzNTQ0OWUzNWRmNjQ3YjkwMmQ0ZjM1NjM0OWNkMjhiMjViOGNhNTY0Li5lZWVk
OWZlODhlZTRmMDVlNDkwZGM5NjNiZDkxYjg4YTE3YjliNjM1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKQEAgLTQ5MzEs
NiArNDkzMSwxMCBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUqIG5vZGUpCiAg
ICAgICAgIGNvbXBpbGVMb2FkVmFsdWVGcm9tTWFwQnVja2V0KG5vZGUpOwogICAgICAgICBicmVh
azsKIAorICAgIGNhc2UgV2Vha01hcEdldDoKKyAgICAgICAgY29tcGlsZVdlYWtNYXBHZXQobm9k
ZSk7CisgICAgICAgIGJyZWFrOworCiAgICAgY2FzZSBGbHVzaDoKICAgICAgICAgYnJlYWs7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2
NC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3Bw
CmluZGV4IGQ0YzM4MzRiN2RmY2I1ODZlYmYyYjMzNzBkYTU3YzBmYTQwMDAwZmMuLjYwNzRkNzcx
ZGZkMjkxZTNmYjY2ODAyN2U0OGRhNjFhOTk3ODZkMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcApAQCAtNTI5MSw2ICs1MjkxLDEw
IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkKICAgICAgICAgY29t
cGlsZUxvYWRWYWx1ZUZyb21NYXBCdWNrZXQobm9kZSk7CiAgICAgICAgIGJyZWFrOwogCisgICAg
Y2FzZSBXZWFrTWFwR2V0OgorICAgICAgICBjb21waWxlV2Vha01hcEdldChub2RlKTsKKyAgICAg
ICAgYnJlYWs7CisKICAgICBjYXNlIFRvTG93ZXJDYXNlOiB7CiAgICAgICAgIGNvbXBpbGVUb0xv
d2VyQ2FzZShub2RlKTsKICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1VzZUtpbmQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdVc2VLaW5kLmNwcAppbmRleCBlODM4MjliNzEzMDYxNzNkZTk1YjAxMDg4YmYzZTljZDg0ZmRm
NmVjLi4yM2QwZGIwMDQwZTQzNTYwMTFiMjI2NDllYWIwODM0M2M4NDExYjEwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1VzZUtpbmQuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHVXNlS2luZC5jcHAKQEAgLTEwOSw2ICsxMDksMTIgQEAgdm9p
ZCBwcmludEludGVybmFsKFByaW50U3RyZWFtJiBvdXQsIFVzZUtpbmQgdXNlS2luZCkKICAgICBj
YXNlIFNldE9iamVjdFVzZToKICAgICAgICAgb3V0LnByaW50KCJTZXRPYmplY3RVc2UiKTsKICAg
ICAgICAgcmV0dXJuOworICAgIGNhc2UgV2Vha01hcE9iamVjdFVzZToKKyAgICAgICAgb3V0LnBy
aW50KCJXZWFrTWFwT2JqZWN0VXNlIik7CisgICAgICAgIHJldHVybjsKKyAgICBjYXNlIFdlYWtT
ZXRPYmplY3RVc2U6CisgICAgICAgIG91dC5wcmludCgiV2Vha1NldE9iamVjdFVzZSIpOworICAg
ICAgICByZXR1cm47CiAgICAgY2FzZSBPYmplY3RPck90aGVyVXNlOgogICAgICAgICBvdXQucHJp
bnQoIk9iamVjdE9yT3RoZXIiKTsKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdVc2VLaW5kLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1VzZUtpbmQuaAppbmRleCA0NmUyNzIwMWM5ODZmZGZlM2I2MDZjNzU2MjM4OTBjMjBl
MmYwMzU5Li43OTZkOGI0MGZjY2NhMDFjNGU1ZGEzODdkODI1MGUxY2EyZmI0MjZjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1VzZUtpbmQuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1VzZUtpbmQuaApAQCAtNjcsNiArNjcsOCBAQCBlbnVtIFVz
ZUtpbmQgewogICAgIFN5bWJvbFVzZSwKICAgICBNYXBPYmplY3RVc2UsCiAgICAgU2V0T2JqZWN0
VXNlLAorICAgIFdlYWtNYXBPYmplY3RVc2UsCisgICAgV2Vha1NldE9iamVjdFVzZSwKICAgICBT
dHJpbmdPYmplY3RVc2UsCiAgICAgU3RyaW5nT3JTdHJpbmdPYmplY3RVc2UsCiAgICAgTm90U3Ry
aW5nVmFyVXNlLApAQCAtMTQ5LDYgKzE1MSwxMCBAQCBpbmxpbmUgU3BlY3VsYXRlZFR5cGUgdHlw
ZUZpbHRlckZvcihVc2VLaW5kIHVzZUtpbmQpCiAgICAgICAgIHJldHVybiBTcGVjTWFwT2JqZWN0
OwogICAgIGNhc2UgU2V0T2JqZWN0VXNlOgogICAgICAgICByZXR1cm4gU3BlY1NldE9iamVjdDsK
KyAgICBjYXNlIFdlYWtNYXBPYmplY3RVc2U6CisgICAgICAgIHJldHVybiBTcGVjV2Vha01hcE9i
amVjdDsKKyAgICBjYXNlIFdlYWtTZXRPYmplY3RVc2U6CisgICAgICAgIHJldHVybiBTcGVjV2Vh
a1NldE9iamVjdDsKICAgICBjYXNlIFN0cmluZ09iamVjdFVzZToKICAgICAgICAgcmV0dXJuIFNw
ZWNTdHJpbmdPYmplY3Q7CiAgICAgY2FzZSBTdHJpbmdPclN0cmluZ09iamVjdFVzZToKQEAgLTI0
MSw2ICsyNDcsOCBAQCBpbmxpbmUgYm9vbCBpc0NlbGwoVXNlS2luZCBraW5kKQogICAgIGNhc2Ug
U3RyaW5nT3JTdHJpbmdPYmplY3RVc2U6CiAgICAgY2FzZSBNYXBPYmplY3RVc2U6CiAgICAgY2Fz
ZSBTZXRPYmplY3RVc2U6CisgICAgY2FzZSBXZWFrTWFwT2JqZWN0VXNlOgorICAgIGNhc2UgV2Vh
a1NldE9iamVjdFVzZToKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgZGVmYXVsdDoKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9G
VExDYXBhYmlsaXRpZXMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDYXBhYmls
aXRpZXMuY3BwCmluZGV4IGMyMTVhNjMyOTYxZjg2ZTFiZTYyOGJiMWU5Yzk2YjY4Y2JmZWYxMzUu
LmJmMGZlNjM5NTI1ZDA2ZjMzMjUxMjc2N2RmNjcwNDgyM2NjNmQ4N2UgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAKQEAgLTE5OSw2ICsxOTksNyBA
QCBpbmxpbmUgQ2FwYWJpbGl0eUxldmVsIGNhbkNvbXBpbGUoTm9kZSogbm9kZSkKICAgICBjYXNl
IEdldE1hcEJ1Y2tldE5leHQ6CiAgICAgY2FzZSBMb2FkS2V5RnJvbU1hcEJ1Y2tldDoKICAgICBj
YXNlIExvYWRWYWx1ZUZyb21NYXBCdWNrZXQ6CisgICAgY2FzZSBXZWFrTWFwR2V0OgogICAgIGNh
c2UgSXNFbXB0eToKICAgICBjYXNlIElzVW5kZWZpbmVkOgogICAgIGNhc2UgSXNCb29sZWFuOgpA
QCAtNDg2LDYgKzQ4Nyw4IEBAIENhcGFiaWxpdHlMZXZlbCBjYW5Db21waWxlKEdyYXBoJiBncmFw
aCkKICAgICAgICAgICAgICAgICBjYXNlIFN5bWJvbFVzZToKICAgICAgICAgICAgICAgICBjYXNl
IE1hcE9iamVjdFVzZToKICAgICAgICAgICAgICAgICBjYXNlIFNldE9iamVjdFVzZToKKyAgICAg
ICAgICAgICAgICBjYXNlIFdlYWtNYXBPYmplY3RVc2U6CisgICAgICAgICAgICAgICAgY2FzZSBX
ZWFrU2V0T2JqZWN0VXNlOgogICAgICAgICAgICAgICAgIGNhc2UgRmluYWxPYmplY3RVc2U6CiAg
ICAgICAgICAgICAgICAgY2FzZSBSZWdFeHBPYmplY3RVc2U6CiAgICAgICAgICAgICAgICAgY2Fz
ZSBQcm94eU9iamVjdFVzZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwv
RlRMTG93ZXJERkdUb0IzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJE
RkdUb0IzLmNwcAppbmRleCAzZWUyMTY5ZmZkOTE4MzU0ZDQxNzU1MjIxOGUyYzE1ZWQ1MTk1MWVh
Li5hYzFlZjg2NmU3ODcxNTM5M2M4NWQ4MWZjYjk0YjRkY2ExNDVjMGQ0IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCkBAIC05ODQsNiArOTg0LDkg
QEAgY2xhc3MgTG93ZXJERkdUb0IzIHsKICAgICAgICAgY2FzZSBMb2FkVmFsdWVGcm9tTWFwQnVj
a2V0OgogICAgICAgICAgICAgY29tcGlsZUxvYWRWYWx1ZUZyb21NYXBCdWNrZXQoKTsKICAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFdlYWtNYXBHZXQ6CisgICAgICAgICAgICBjb21w
aWxlV2Vha01hcEdldCgpOworICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgSXNPYmpl
Y3Q6CiAgICAgICAgICAgICBjb21waWxlSXNPYmplY3QoKTsKICAgICAgICAgICAgIGJyZWFrOwpA
QCAtODMyNCw2ICs4MzI3LDE0IEBAIGNsYXNzIExvd2VyREZHVG9CMyB7CiAgICAgICAgIHNldEpT
VmFsdWUobV9vdXQubG9hZDY0KG1hcEJ1Y2tldCwgbV9oZWFwcy5IYXNoTWFwQnVja2V0X2tleSkp
OwogICAgIH0KIAorICAgIHZvaWQgY29tcGlsZVdlYWtNYXBHZXQoKQorICAgIHsKKyAgICAgICAg
TFZhbHVlIHdlYWtNYXAgPSBsb3dXZWFrTWFwT2JqZWN0KG1fbm9kZS0+Y2hpbGQxKCkpOworICAg
ICAgICBMVmFsdWUgb2JqZWN0ID0gbG93T2JqZWN0KG1fbm9kZS0+Y2hpbGQyKCkpOworCisgICAg
ICAgIHNldEpTVmFsdWUodm1DYWxsKEludDY0LCBtX291dC5vcGVyYXRpb24ob3BlcmF0aW9uV2Vh
a01hcEdldCksIG1fY2FsbEZyYW1lLCB3ZWFrTWFwLCBvYmplY3QpKTsKKyAgICB9CisKICAgICB2
b2lkIGNvbXBpbGVJc09iamVjdE9yTnVsbCgpCiAgICAgewogICAgICAgICBKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0ID0gbV9ncmFwaC5nbG9iYWxPYmplY3RGb3IobV9ub2RlLT5vcmlnaW4u
c2VtYW50aWMpOwpAQCAtMTI3ODIsNiArMTI3OTMsMjAgQEAgY2xhc3MgTG93ZXJERkdUb0IzIHsK
ICAgICAgICAgc3BlY3VsYXRlU2V0T2JqZWN0KGVkZ2UsIHJlc3VsdCk7CiAgICAgICAgIHJldHVy
biByZXN1bHQ7CiAgICAgfQorCisgICAgTFZhbHVlIGxvd1dlYWtNYXBPYmplY3QoRWRnZSBlZGdl
KQorICAgIHsKKyAgICAgICAgTFZhbHVlIHJlc3VsdCA9IGxvd0NlbGwoZWRnZSk7CisgICAgICAg
IHNwZWN1bGF0ZVdlYWtNYXBPYmplY3QoZWRnZSwgcmVzdWx0KTsKKyAgICAgICAgcmV0dXJuIHJl
c3VsdDsKKyAgICB9CisKKyAgICBMVmFsdWUgbG93V2Vha1NldE9iamVjdChFZGdlIGVkZ2UpCisg
ICAgeworICAgICAgICBMVmFsdWUgcmVzdWx0ID0gbG93Q2VsbChlZGdlKTsKKyAgICAgICAgc3Bl
Y3VsYXRlV2Vha1NldE9iamVjdChlZGdlLCByZXN1bHQpOworICAgICAgICByZXR1cm4gcmVzdWx0
OworICAgIH0KICAgICAKICAgICBMVmFsdWUgbG93U3RyaW5nKEVkZ2UgZWRnZSwgT3BlcmFuZFNw
ZWN1bGF0aW9uTW9kZSBtb2RlID0gQXV0b21hdGljT3BlcmFuZFNwZWN1bGF0aW9uKQogICAgIHsK
QEAgLTEzMjM1LDYgKzEzMjYwLDEyIEBAIGNsYXNzIExvd2VyREZHVG9CMyB7CiAgICAgICAgIGNh
c2UgU2V0T2JqZWN0VXNlOgogICAgICAgICAgICAgc3BlY3VsYXRlU2V0T2JqZWN0KGVkZ2UpOwog
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgV2Vha01hcE9iamVjdFVzZToKKyAgICAg
ICAgICAgIHNwZWN1bGF0ZVdlYWtNYXBPYmplY3QoZWRnZSk7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSBXZWFrU2V0T2JqZWN0VXNlOgorICAgICAgICAgICAgc3BlY3VsYXRlV2Vh
a1NldE9iamVjdChlZGdlKTsKKyAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIFN0cmlu
Z1VzZToKICAgICAgICAgICAgIHNwZWN1bGF0ZVN0cmluZyhlZGdlKTsKICAgICAgICAgICAgIGJy
ZWFrOwpAQCAtMTM2MzAsNiArMTM2NjEsMjggQEAgY2xhc3MgTG93ZXJERkdUb0IzIHsKICAgICB7
CiAgICAgICAgIHNwZWN1bGF0ZVNldE9iamVjdChlZGdlLCBsb3dDZWxsKGVkZ2UpKTsKICAgICB9
CisKKyAgICB2b2lkIHNwZWN1bGF0ZVdlYWtNYXBPYmplY3QoRWRnZSBlZGdlLCBMVmFsdWUgY2Vs
bCkKKyAgICB7CisgICAgICAgIEZUTF9UWVBFX0NIRUNLKAorICAgICAgICAgICAganNWYWx1ZVZh
bHVlKGNlbGwpLCBlZGdlLCBTcGVjV2Vha01hcE9iamVjdCwgaXNOb3RUeXBlKGNlbGwsIEpTV2Vh
a01hcFR5cGUpKTsKKyAgICB9CisKKyAgICB2b2lkIHNwZWN1bGF0ZVdlYWtNYXBPYmplY3QoRWRn
ZSBlZGdlKQorICAgIHsKKyAgICAgICAgc3BlY3VsYXRlV2Vha01hcE9iamVjdChlZGdlLCBsb3dD
ZWxsKGVkZ2UpKTsKKyAgICB9CisKKyAgICB2b2lkIHNwZWN1bGF0ZVdlYWtTZXRPYmplY3QoRWRn
ZSBlZGdlLCBMVmFsdWUgY2VsbCkKKyAgICB7CisgICAgICAgIEZUTF9UWVBFX0NIRUNLKAorICAg
ICAgICAgICAganNWYWx1ZVZhbHVlKGNlbGwpLCBlZGdlLCBTcGVjV2Vha1NldE9iamVjdCwgaXNO
b3RUeXBlKGNlbGwsIEpTV2Vha1NldFR5cGUpKTsKKyAgICB9CisKKyAgICB2b2lkIHNwZWN1bGF0
ZVdlYWtTZXRPYmplY3QoRWRnZSBlZGdlKQorICAgIHsKKyAgICAgICAgc3BlY3VsYXRlV2Vha1Nl
dE9iamVjdChlZGdlLCBsb3dDZWxsKGVkZ2UpKTsKKyAgICB9CiAgICAgCiAgICAgdm9pZCBzcGVj
dWxhdGVTdHJpbmcoRWRnZSBlZGdlLCBMVmFsdWUgY2VsbCkKICAgICB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRyaW5zaWMuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSW50cmluc2ljLmNwcAppbmRleCBmOTg1NjNhYmE3MTcwM2IxMTJk
Y2Y4ODZlYzQ1NWE3MDVmYjVlZDBiLi45ZDEyZmZmOWRmNzVjZTE3ZDZhMDFiMzAzNmExYmE3YmEx
MzYzOTEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRyaW5z
aWMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludHJpbnNpYy5jcHAK
QEAgLTE1Myw2ICsxNTMsOCBAQCBjb25zdCBjaGFyKiBpbnRyaW5zaWNOYW1lKEludHJpbnNpYyBp
bnRyaW5zaWMpCiAgICAgICAgIHJldHVybiAiSlNTZXRCdWNrZXROZXh0SW50cmluc2ljIjsKICAg
ICBjYXNlIEpTU2V0QnVja2V0S2V5SW50cmluc2ljOgogICAgICAgICByZXR1cm4gIkpTU2V0QnVj
a2V0S2V5SW50cmluc2ljIjsKKyAgICBjYXNlIEpTV2Vha01hcEdldEludHJpbnNpYzoKKyAgICAg
ICAgcmV0dXJuICJKU1dlYWtNYXBHZXRJbnRyaW5zaWMiOwogICAgIGNhc2UgSGFzT3duUHJvcGVy
dHlJbnRyaW5zaWM6CiAgICAgICAgIHJldHVybiAiSGFzT3duUHJvcGVydHlJbnRyaW5zaWMiOwog
ICAgIGNhc2UgQXRvbWljc0FkZEludHJpbnNpYzoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0ludHJpbnNpYy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSW50cmluc2ljLmgKaW5kZXggNGM5MmE0ZDY0NDA0MzhlYTE5MGJkNzljYjMxY2E0YzhhMzY5
YzA0Yy4uMjlkOTVmNzI5YWM1NGMxZjNhNTcwZmFiZjY4NGZlN2UzYjU3N2Q5MCAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50cmluc2ljLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50cmluc2ljLmgKQEAgLTg5LDYgKzg5LDcgQEAgZW51
bSBJbnRyaW5zaWMgewogICAgIEpTU2V0QnVja2V0SGVhZEludHJpbnNpYywKICAgICBKU1NldEJ1
Y2tldE5leHRJbnRyaW5zaWMsCiAgICAgSlNTZXRCdWNrZXRLZXlJbnRyaW5zaWMsCisgICAgSlNX
ZWFrTWFwR2V0SW50cmluc2ljLAogICAgIEhhc093blByb3BlcnR5SW50cmluc2ljLAogICAgIEF0
b21pY3NBZGRJbnRyaW5zaWMsCiAgICAgQXRvbWljc0FuZEludHJpbnNpYywKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVHlwZS5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNUeXBlLmgKaW5kZXggMmY3N2NkMGNmMTRiNzE4ZWNhZWI5M2ZjN2M3
YWQ1M2VhYWVmYzdlZS4uZWVlMmE1ZWE1MTk3NzFhZGE1MzllMTNjZGEyYjllNWYzMjE3ZjY0MSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBlLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBlLmgKQEAgLTk0LDYgKzk0LDggQEAg
ZW51bSBKU1R5cGUgOiB1aW50OF90IHsKICAgICBQcm94eU9iamVjdFR5cGUsCiAgICAgSlNNYXBU
eXBlLAogICAgIEpTU2V0VHlwZSwKKyAgICBKU1dlYWtNYXBUeXBlLAorICAgIEpTV2Vha1NldFR5
cGUsCiAKICAgICBXZWJBc3NlbWJseUZ1bmN0aW9uVHlwZSwKIApkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNXZWFrTWFwLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU1dlYWtNYXAuaAppbmRleCA1ZjhmZDIxMjVhOThhYjQyNWRjYWI4NTY0NTNk
NGI4OTNhMGY3ZjQ4Li43ODhhZWMzZjRhMjliZGYwMzQxMDZiZmMyNTI4ZDU1ODQzZDI3ZjY3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1dlYWtNYXAuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1dlYWtNYXAuaApAQCAtMzgsNyArMzgs
NyBAQCBjbGFzcyBKU1dlYWtNYXAgZmluYWwgOiBwdWJsaWMgV2Vha01hcEJhc2UgewogCiAgICAg
c3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgewotICAgICAgICByZXR1cm4g
U3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhP
YmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7CisgICAgICAgIHJldHVybiBTdHJ1
Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKEpTV2Vh
a01hcFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKICAgICB9CiAKICAgICBzdGF0aWMg
SlNXZWFrTWFwKiBjcmVhdGUoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKQEAgLTYyLDQg
KzYyLDE2IEBAIGNsYXNzIEpTV2Vha01hcCBmaW5hbCA6IHB1YmxpYyBXZWFrTWFwQmFzZSB7CiAg
ICAgc3RhdGljIFN0cmluZyB0b1N0cmluZ05hbWUoY29uc3QgSlNPYmplY3QqLCBFeGVjU3RhdGUq
KTsKIH07CiAKK2lubGluZSBib29sIGlzSlNXZWFrTWFwKEpTQ2VsbCogZnJvbSkKK3sKKyAgICBz
dGF0aWNfYXNzZXJ0KHN0ZDo6aXNfZmluYWw8SlNXZWFrTWFwPjo6dmFsdWUsICIiKTsKKyAgICBy
ZXR1cm4gZnJvbS0+dHlwZSgpID09IEpTV2Vha01hcFR5cGU7Cit9CisKK2lubGluZSBib29sIGlz
SlNXZWFrTWFwKEpTVmFsdWUgZnJvbSkKK3sKKyAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfZmlu
YWw8SlNXZWFrTWFwPjo6dmFsdWUsICIiKTsKKyAgICByZXR1cm4gZnJvbS5pc0NlbGwoKSAmJiBm
cm9tLmFzQ2VsbCgpLT50eXBlKCkgPT0gSlNXZWFrTWFwVHlwZTsKK30KKwogfSAvLyBuYW1lc3Bh
Y2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1dlYWtT
ZXQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTV2Vha1NldC5oCmluZGV4IDc1
NzBmNDJlZDcwZmZlMGVmMjNlNGM3NDY2OWVjMTg2OGE2ODg0NjEuLjIyOGMwMzZiM2EyODcwOTQ5
NTJlZWExMDkwNWI1MGEwYTJjNDU0MTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTV2Vha1NldC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTV2Vha1NldC5oCkBAIC0zOCw3ICszOCw3IEBAIGNsYXNzIEpTV2Vha1NldCBmaW5hbCA6IHB1
YmxpYyBXZWFrTWFwQmFzZSB7CiAKICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1
cmUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlw
ZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2Jq
ZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5m
bygpKTsKKyAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3Qs
IHByb3RvdHlwZSwgVHlwZUluZm8oSlNXZWFrU2V0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZv
KCkpOwogICAgIH0KIAogICAgIHN0YXRpYyBKU1dlYWtTZXQqIGNyZWF0ZShWTSYgdm0sIFN0cnVj
dHVyZSogc3RydWN0dXJlKQpAQCAtNjIsNCArNjIsMTYgQEAgY2xhc3MgSlNXZWFrU2V0IGZpbmFs
IDogcHVibGljIFdlYWtNYXBCYXNlIHsKICAgICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nTmFtZShj
b25zdCBKU09iamVjdCosIEV4ZWNTdGF0ZSopOwogfTsKIAoraW5saW5lIGJvb2wgaXNKU1dlYWtT
ZXQoSlNDZWxsKiBmcm9tKQoreworICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc19maW5hbDxKU1dl
YWtTZXQ+Ojp2YWx1ZSwgIiIpOworICAgIHJldHVybiBmcm9tLT50eXBlKCkgPT0gSlNXZWFrU2V0
VHlwZTsKK30KKworaW5saW5lIGJvb2wgaXNKU1dlYWtTZXQoSlNWYWx1ZSBmcm9tKQoreworICAg
IHN0YXRpY19hc3NlcnQoc3RkOjppc19maW5hbDxKU1dlYWtTZXQ+Ojp2YWx1ZSwgIiIpOworICAg
IHJldHVybiBmcm9tLmlzQ2VsbCgpICYmIGZyb20uYXNDZWxsKCktPnR5cGUoKSA9PSBKU1dlYWtT
ZXRUeXBlOworfQorCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1dlYWtNYXBCYXNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1dlYWtNYXBCYXNlLmNwcAppbmRleCAwZTUxMDYxYTk0NmE5ZTFkMzgxMWE3ZWIy
NTNkODNmNWMyNzQwZTIwLi40ZjkyNDk2NzAwMTE4Y2YxYzFhMmRhZDI0OTg2YThjYmY4OTczZWQ3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XZWFrTWFwQmFzZS5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2Vha01hcEJhc2UuY3BwCkBA
IC03MiwxNCArNzIsNiBAQCB2b2lkIFdlYWtNYXBCYXNlOjpzZXQoVk0mIHZtLCBKU09iamVjdCog
a2V5LCBKU1ZhbHVlIHZhbHVlKQogICAgIHJlc3VsdC5pdGVyYXRvci0+dmFsdWUuc2V0KHZtLCB0
aGlzLCB2YWx1ZSk7CiB9CiAKLUpTVmFsdWUgV2Vha01hcEJhc2U6OmdldChKU09iamVjdCoga2V5
KQotewotICAgIGF1dG8gaXRlciA9IG1fbWFwLmZpbmQoa2V5KTsKLSAgICBpZiAoaXRlciA9PSBt
X21hcC5lbmQoKSkKLSAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci0gICAgcmV0dXJuIGl0
ZXItPnZhbHVlLmdldCgpOwotfQotCiBib29sIFdlYWtNYXBCYXNlOjpyZW1vdmUoSlNPYmplY3Qq
IGtleSkKIHsKICAgICByZXR1cm4gbV9tYXAucmVtb3ZlKGtleSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XZWFrTWFwQmFzZS5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvV2Vha01hcEJhc2UuaAppbmRleCBlM2JjMmFmNDE2ZjRlMjRiY2Q4Yzg0
NWJmMTA5NzVmNWI5NjQwZDU5Li40ZmM1OTdkYjg1NDY4ZTI4NmQ4YmNhNWJhNTMwOTQyMTNiNmI2
ZjU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XZWFrTWFwQmFz
ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dlYWtNYXBCYXNlLmgKQEAg
LTcwLDQgKzcwLDExIEBAIGNsYXNzIFdlYWtNYXBCYXNlIDogcHVibGljIEpTRGVzdHJ1Y3RpYmxl
T2JqZWN0IHsKICAgICBNYXBUeXBlIG1fbWFwOwogfTsKIAoraW5saW5lIEpTVmFsdWUgV2Vha01h
cEJhc2U6OmdldChKU09iamVjdCoga2V5KQoreworICAgIGlmIChhdXRvIHJlc3VsdCA9IG1fbWFw
LmZhc3RHZXQoa2V5KSkKKyAgICAgICAgcmV0dXJuIHJlc3VsdC5nZXQoKTsKKyAgICByZXR1cm4g
anNVbmRlZmluZWQoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XZWFrTWFwUHJvdG90eXBlLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1dlYWtNYXBQcm90b3R5cGUuY3BwCmluZGV4IDhmYTg2MmVj
ZGJmYTAzMjJkODRkODA2MjJmZDlmYTA4MjFlYmU1MDQuLjg1ZDQxZTZmMTMxMmFlOGQ0ZjkzMzRh
MmMyNzQyZWViOWI2MmJmMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1dlYWtNYXBQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1dlYWtNYXBQcm90b3R5cGUuY3BwCkBAIC00NiwyNSArNDYsMjUgQEAgdm9pZCBXZWFrTWFw
UHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QpCiAgICAgdm0ucHJvdG90eXBlTWFwLmFkZFByb3RvdHlwZSh0aGlzKTsKIAogICAgIEpT
Q19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKHZtLnByb3BlcnR5TmFtZXMtPmRl
bGV0ZUtleXdvcmQsIHByb3RvRnVuY1dlYWtNYXBEZWxldGUsIERvbnRFbnVtLCAxKTsKLSAgICBK
U0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0eU5hbWVzLT5n
ZXQsIHByb3RvRnVuY1dlYWtNYXBHZXQsIERvbnRFbnVtLCAxKTsKKyAgICBKU0NfTkFUSVZFX0lO
VFJJTlNJQ19GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04odm0ucHJvcGVydHlOYW1lcy0+Z2V0
LCBwcm90b0Z1bmNXZWFrTWFwR2V0LCBEb250RW51bSwgMSwgSlNXZWFrTWFwR2V0SW50cmluc2lj
KTsKICAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0
eU5hbWVzLT5oYXMsIHByb3RvRnVuY1dlYWtNYXBIYXMsIERvbnRFbnVtLCAxKTsKICAgICBKU0Nf
TkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0eU5hbWVzLT5zZXQs
IHByb3RvRnVuY1dlYWtNYXBTZXQsIERvbnRFbnVtLCAyKTsKIAogICAgIHB1dERpcmVjdFdpdGhv
dXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT50b1N0cmluZ1RhZ1N5bWJvbCwganNT
dHJpbmcoJnZtLCAiV2Vha01hcCIpLCBEb250RW51bSB8IFJlYWRPbmx5KTsKIH0KIAotc3RhdGlj
IEpTV2Vha01hcCogZ2V0V2Vha01hcChDYWxsRnJhbWUqIGNhbGxGcmFtZSwgSlNWYWx1ZSB2YWx1
ZSkKK0FMV0FZU19JTkxJTkUgc3RhdGljIEpTV2Vha01hcCogZ2V0V2Vha01hcChDYWxsRnJhbWUq
IGNhbGxGcmFtZSwgSlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBWTSYgdm0gPSBjYWxsRnJhbWUtPnZt
KCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCi0gICAgaWYg
KCF2YWx1ZS5pc09iamVjdCgpKSB7CisgICAgaWYgKFVOTElLRUxZKCF2YWx1ZS5pc09iamVjdCgp
KSkgewogICAgICAgICB0aHJvd1R5cGVFcnJvcihjYWxsRnJhbWUsIHNjb3BlLCBXVEY6OkFTQ0lJ
TGl0ZXJhbCgiQ2FsbGVkIFdlYWtNYXAgZnVuY3Rpb24gb24gbm9uLW9iamVjdCIpKTsKICAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogCi0gICAgaWYgKEpTV2Vha01hcCogd2Vha01hcCA9
IGpzRHluYW1pY0Nhc3Q8SlNXZWFrTWFwKj4odm0sIHZhbHVlKSkKLSAgICAgICAgcmV0dXJuIHdl
YWtNYXA7CisgICAgaWYgKExJS0VMWShpc0pTV2Vha01hcChhc09iamVjdCh2YWx1ZSkpKSkKKyAg
ICAgICAgcmV0dXJuIGpzQ2FzdDxKU1dlYWtNYXAqPih2YWx1ZSk7CiAKICAgICB0aHJvd1R5cGVF
cnJvcihjYWxsRnJhbWUsIHNjb3BlLCBXVEY6OkFTQ0lJTGl0ZXJhbCgiQ2FsbGVkIFdlYWtNYXAg
ZnVuY3Rpb24gb24gYSBub24tV2Vha01hcCBvYmplY3QiKSk7CiAgICAgcmV0dXJuIG51bGxwdHI7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XZWFrU2V0UHJvdG90
eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dlYWtTZXRQcm90b3R5cGUu
Y3BwCmluZGV4IDIxMzRkOTg2YmYyM2FlOWYxMWNjNDM3MjkwNzQyN2MxZmZhYjY4NWIuLmFhODI0
MzA5NWQ1NWE3NTRjODFmZTQ2OTdjZGQ3M2QzMTgzNTdjYTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1dlYWtTZXRQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1dlYWtTZXRQcm90b3R5cGUuY3BwCkBAIC01MSwxOCArNTEs
MTggQEAgdm9pZCBXZWFrU2V0UHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiAgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24o
dm0sIHZtLnByb3BlcnR5TmFtZXMtPnRvU3RyaW5nVGFnU3ltYm9sLCBqc1N0cmluZygmdm0sICJX
ZWFrU2V0IiksIERvbnRFbnVtIHwgUmVhZE9ubHkpOwogfQogCi1zdGF0aWMgSlNXZWFrU2V0KiBn
ZXRXZWFrU2V0KENhbGxGcmFtZSogY2FsbEZyYW1lLCBKU1ZhbHVlIHZhbHVlKQorQUxXQVlTX0lO
TElORSBzdGF0aWMgSlNXZWFrU2V0KiBnZXRXZWFrU2V0KENhbGxGcmFtZSogY2FsbEZyYW1lLCBK
U1ZhbHVlIHZhbHVlKQogewogICAgIFZNJiB2bSA9IGNhbGxGcmFtZS0+dm0oKTsKICAgICBhdXRv
IHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKLSAgICBpZiAoIXZhbHVlLmlzT2Jq
ZWN0KCkpIHsKKyAgICBpZiAoVU5MSUtFTFkoIXZhbHVlLmlzT2JqZWN0KCkpKSB7CiAgICAgICAg
IHRocm93VHlwZUVycm9yKGNhbGxGcmFtZSwgc2NvcGUsIFdURjo6QVNDSUlMaXRlcmFsKCJDYWxs
ZWQgV2Vha1NldCBmdW5jdGlvbiBvbiBub24tb2JqZWN0IikpOwogICAgICAgICByZXR1cm4gbnVs
bHB0cjsKICAgICB9CiAKLSAgICBpZiAoSlNXZWFrU2V0KiB3ZWFrU2V0ID0ganNEeW5hbWljQ2Fz
dDxKU1dlYWtTZXQqPih2bSwgdmFsdWUpKQotICAgICAgICByZXR1cm4gd2Vha1NldDsKKyAgICBp
ZiAoTElLRUxZKGlzSlNXZWFrU2V0KGFzT2JqZWN0KHZhbHVlKSkpKQorICAgICAgICByZXR1cm4g
anNDYXN0PEpTV2Vha1NldCo+KHZhbHVlKTsKIAogICAgIHRocm93VHlwZUVycm9yKGNhbGxGcmFt
ZSwgc2NvcGUsIFdURjo6QVNDSUlMaXRlcmFsKCJDYWxsZWQgV2Vha1NldCBmdW5jdGlvbiBvbiBh
IG5vbi1XZWFrU2V0IG9iamVjdCIpKTsKICAgICByZXR1cm4gbnVsbHB0cjsKZGlmZiAtLWdpdCBh
L0pTVGVzdHMvQ2hhbmdlTG9nIGIvSlNUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMTc0ODA4YjFmODY1
MTM5MmU2MDk1MDJjMDJhMjJjZWQ4NWExNTU1MS4uZGM3ZjgzNjM0OWEyZmU1ZWY0NDRmY2E1MWI3
OGE5NmI2MzJjNzAzOCAxMDA2NDQKLS0tIGEvSlNUZXN0cy9DaGFuZ2VMb2cKKysrIGIvSlNUZXN0
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxNy0wOC0yNyAgWXVzdWtlIFN1enVraSAg
PHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KKworICAgICAgICBbREZHXSBPcHRpbWl6ZSBXZWFrTWFw
OjpnZXQgYnkgYWRkaW5nIGludHJpbnNpYyBhbmQgZml4dXAKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NjAxMAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogbWljcm9iZW5jaG1hcmtzL3dlYWstbWFwLWtl
eS5qczogQWRkZWQuCisgICAgICAgIChhc3NlcnQpOgorICAgICAgICAob2JqZWN0S2V5KToKKyAg
ICAgICAgKGxldC5zdGFydC5EYXRlLm5vdyk6CisKIDIwMTctMDgtMjUgIFNhYW0gQmFyYXRpICA8
c2JhcmF0aUBhcHBsZS5jb20+CiAKICAgICAgICAgU3VwcG9ydCBjb21waWxpbmcgY2F0Y2ggaW4g
dGhlIERGRwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9taWNyb2JlbmNobWFya3Mvd2Vhay1tYXAta2V5
LmpzIGIvSlNUZXN0cy9taWNyb2JlbmNobWFya3Mvd2Vhay1tYXAta2V5LmpzCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjdmNTNjZWJjMzdiODA5MDVkNmM3NzFjMGE2MTVhNGI4ZTdkNzgzMDIKLS0tIC9kZXYvbnVsbAor
KysgYi9KU1Rlc3RzL21pY3JvYmVuY2htYXJrcy93ZWFrLW1hcC1rZXkuanMKQEAgLTAsMCArMSwz
NCBAQAorZnVuY3Rpb24gYXNzZXJ0KGIpIHsKKyAgICBpZiAoIWIpCisgICAgICAgIHRocm93IG5l
dyBFcnJvcigiQmFkISIpOworfQorbm9JbmxpbmUoYXNzZXJ0KTsKKworbGV0IHdlYWtNYXAgPSBu
ZXcgV2Vha01hcDsKKworZnVuY3Rpb24gb2JqZWN0S2V5KG8pIHsKKyAgICByZXR1cm4gd2Vha01h
cC5nZXQobyk7Cit9Citub0lubGluZShvYmplY3RLZXkpOworCitjb25zdCBpdGVycyA9IDMwMDAw
MDsKK2xldCBzdGFydCA9IERhdGUubm93KCk7CisKK3sKKyAgICBsZXQgbyA9IHtmOiAyMH07Cisg
ICAgdmFyIGFycmF5ID0gW107CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDsgaSsrKSB7Cisg
ICAgICAgIGxldCBuZXdPYmplY3QgPSB7IGY6IGkgfTsKKyAgICAgICAgd2Vha01hcC5zZXQobmV3
T2JqZWN0LCBpKTsKKyAgICAgICAgYXJyYXlbaV0gPSBuZXdPYmplY3Q7CisgICAgfQorCisgICAg
Zm9yICh2YXIgaiA9IDA7IGogPCBpdGVyczsgKytqKSB7CisgICAgICAgIGZvciAobGV0IGkgPSAw
OyBpIDwgMTA7IGkrKykKKyAgICAgICAgICAgIGFzc2VydChvYmplY3RLZXkoYXJyYXlbaV0pID09
PSBpKTsKKyAgICB9Cit9CisKK2NvbnN0IHZlcmJvc2UgPSBmYWxzZTsKK2lmICh2ZXJib3NlKQor
ICAgIHByaW50KERhdGUubm93KCkgLSBzdGFydCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>319355</attachid>
            <date>2017-08-30 01:32:41 -0700</date>
            <delta_ts>2017-09-03 22:36:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-176010-20170830173240.patch</filename>
            <type>text/plain</type>
            <size>55516</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIxMzQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
NGU1M2Q4NDI4N2MxMTExZDcyM2VmM2YzYmIxZmFkZmJjNGJiOWEyLi42OTNhOGY4ZTYyMDNjMWRk
MGMwOWM4ZGQyNjMzZWJjN2UzNmU4YTExIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMTYgQEAKKzIwMTctMDgtMzAgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFp
bC5jb20+CisKKyAgICAgICAgW0RGR10gT3B0aW1pemUgV2Vha01hcDo6Z2V0IGJ5IGFkZGluZyBp
bnRyaW5zaWMgYW5kIGZpeHVwCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNzYwMTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBJdCByZXZlYWxzIHRoYXQgRW1iZXIuanMgY29uc3VtZXMgMy44JSBvZiBleGVj
dXRpb24gdGltZSBmb3IgV2Vha01hcCNnZXQuCisgICAgICAgIEl0IGlzIHVzZWQgZm9yIG1ldGEg
cHJvcGVydHkgZm9yIG9iamVjdHMgKHNlZSBwZWVrTWV0YSBmdW5jdGlvbiBpbiBFbWJlci5qcyku
CisKKyAgICAgICAgVGhpcyBwYXRjaCBvcHRpbWl6ZXMgV2Vha01hcCNnZXQuCisKKyAgICAgICAg
MS4gV2UgdXNlIGZhc3RHZXQgdG8gaW5saW5lIFdlYWtNYXAjZ2V0IG9wZXJhdGlvbiBpbiB0aGUg
bmF0aXZlIGZ1bmN0aW9uLgorICAgICAgICBTaW5jZSB0aGlzIG5hdGl2ZSBmdW5jdGlvbiBpdHNl
bGYgaXMgdmVyeSBzbWFsbCwgd2Ugc2hvdWxkIGlubGluZSBIYXNoTWFwI2dldAorICAgICAgICBl
bnRpcmVseSBpbiB0aGlzIGZ1bmN0aW9uLgorCisgICAgICAgIDIuIFdlIGFkZCBKU1dlYWtNYXBU
eXBlIGFuZCBKU1dlYWtTZXRUeXBlLiBUaGlzIGFsbG93cyB1cyB0byBwZXJmb3JtIGBpc0pTV2Vh
a01hcCgpYAorICAgICAgICB2ZXJ5IGZhc3QuIEFuZCB0aGlzIHBhdGNoIHdpcmVzIHRoaXMgdG8g
REZHIGFuZCBGVEwgdG8gYWRkIFdlYWtNYXBPYmplY3RVc2UgYW5kIFdlYWtTZXRPYmplY3RVc2UK
KyAgICAgICAgdG8gZHJvcCB1bm5lY2Vzc2FyeSB0eXBlIGNoZWNraW5nLiBXZSBhZGQgZml4dXAg
cnVsZXMgZm9yIFdlYWtNYXBHZXQgREZHIG5vZGUgYnkgdXNpbmcgV2Vha01hcE9iamVjdFVzZSwK
KyAgICAgICAgT2JqZWN0VXNlLCBhbmQgSW50MzJVc2UuCisKKyAgICAgICAgMy4gV2UgYWRkIGlu
dHJpbnNpYyBmb3IgV2Vha01hcCNnZXQsIGFuZCBoYW5kbGUgaXQgaW4gREZHIGFuZCBGVEwuIFdl
IHVzZSBNYXBIYXNoIHRvCisgICAgICAgIGNhbGN1bGF0ZSBoYXNoIHZhbHVlIGZvciB0aGUga2V5
J3MgT2JqZWN0IGFuZCB1c2UgdGhpcyBoYXNoIHZhbHVlIHRvIGxvb2sgdXAgdmFsdWUgZnJvbQor
ICAgICAgICBKU1dlYWtNYXAncyBIYXNoTWFwLiBDdXJyZW50bHksIHdlIGp1c3QgY2FsbCB0aGUg
b3BlcmF0aW9uV2Vha01hcEdldCBmdW5jdGlvbiBpbiBERkcgYW5kIEZUTC4KKyAgICAgICAgSXQg
aXMgd29ydGggY29uc2lkZXJpbmcgdGhhdCBpbXBsZW1lbnRpbmcgdGhpcyBvcGVyYXRpb24gZW50
aXJlbHkgaW4gSklULCBsaWtlIEdldE1hcEJ1Y2tldC4KKyAgICAgICAgQnV0IGFueXdheSwgdGhl
IGN1cnJlbnQgb25lIGFscmVhZHkgb3B0aW1pemVzIHRoZSBwZXJmb3JtYW5jZSwgc28gd2UgbGVh
dmUgdGhpcyBmb3IgdGhlIHN1YnNlcXVlbnQKKyAgICAgICAgcGF0Y2hlcy4KKworICAgICAgICBX
ZSBjdXJyZW50bHkgZG8gbm90IGltcGxlbWVudCBhbnkgb3RoZXIgaW50cmluc2ljcyAobGlrZSwg
V2Vha01hcCNoYXMsIFdlYWtTZXQpIGJlY2F1c2UgdGhleSBhcmUKKyAgICAgICAgbm90IHVzZWQg
aW4gRW1iZXIuanMgcmlnaHQgbm93LgorCisgICAgICAgIFRoaXMgcGF0Y2ggb3B0aW1pemVzIFdl
YWtNYXAjZ2V0IGJ5IDUwJS4KKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFz
ZWxpbmUgICAgICAgICAgICAgICAgICBwYXRjaGVkCisKKyAgICAgICAgd2Vhay1tYXAta2V5ICAg
ICAgICAgODguNjQ1NistMy45NTY0ICAgICBeICAgICA1OS4xNTAyKy0yLjI0MDYgICAgICAgIF4g
ZGVmaW5pdGVseSAxLjQ5ODd4IGZhc3RlcgorCisgICAgICAgICogYnl0ZWNvZGUvU3BlY3VsYXRl
ZFR5cGUuY3BwOgorICAgICAgICAoSlNDOjpkdW1wU3BlY3VsYXRpb24pOgorICAgICAgICAoSlND
OjpzcGVjdWxhdGlvbkZyb21DbGFzc0luZm8pOgorICAgICAgICAoSlNDOjpzcGVjdWxhdGlvbkZy
b21KU1R5cGUpOgorICAgICAgICAoSlNDOjpzcGVjdWxhdGlvbkZyb21TdHJpbmcpOgorICAgICAg
ICAqIGJ5dGVjb2RlL1NwZWN1bGF0ZWRUeXBlLmg6CisgICAgICAgICogZGZnL0RGR0Fic3RyYWN0
SW50ZXJwcmV0ZXJJbmxpbmVzLmg6CisgICAgICAgIChKU0M6OkRGRzo6QWJzdHJhY3RJbnRlcnBy
ZXRlcjxBYnN0cmFjdFN0YXRlVHlwZT46OmV4ZWN1dGVFZmZlY3RzKToKKyAgICAgICAgKiBkZmcv
REZHQnl0ZUNvZGVQYXJzZXIuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkJ5dGVDb2RlUGFyc2Vy
OjpoYW5kbGVJbnRyaW5zaWNDYWxsKToKKyAgICAgICAgKiBkZmcvREZHQ2xvYmJlcml6ZS5oOgor
ICAgICAgICAoSlNDOjpERkc6OmNsb2JiZXJpemUpOgorICAgICAgICAqIGRmZy9ERkdEb2VzR0Mu
Y3BwOgorICAgICAgICAoSlNDOjpERkc6OmRvZXNHQyk6CisgICAgICAgICogZGZnL0RGR0ZpeHVw
UGhhc2UuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkZpeHVwUGhhc2U6OmZpeHVwTm9kZSk6Cisg
ICAgICAgICogZGZnL0RGR0hlYXBMb2NhdGlvbi5jcHA6CisgICAgICAgIChXVEY6OnByaW50SW50
ZXJuYWwpOgorICAgICAgICAqIGRmZy9ERkdIZWFwTG9jYXRpb24uaDoKKyAgICAgICAgKiBkZmcv
REZHTm9kZS5oOgorICAgICAgICAoSlNDOjpERkc6Ok5vZGU6Omhhc0hlYXBQcmVkaWN0aW9uKToK
KyAgICAgICAgKiBkZmcvREZHTm9kZVR5cGUuaDoKKyAgICAgICAgKiBkZmcvREZHT3BlcmF0aW9u
cy5jcHA6CisgICAgICAgICogZGZnL0RGR09wZXJhdGlvbnMuaDoKKyAgICAgICAgKiBkZmcvREZH
UHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwOgorICAgICAgICAqIGRmZy9ERkdTYWZlVG9F
eGVjdXRlLmg6CisgICAgICAgIChKU0M6OkRGRzo6U2FmZVRvRXhlY3V0ZUVkZ2U6Om9wZXJhdG9y
KCkpOgorICAgICAgICAoSlNDOjpERkc6OnNhZmVUb0V4ZWN1dGUpOgorICAgICAgICAqIGRmZy9E
RkdTcGVjdWxhdGl2ZUpJVC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6
OnNwZWN1bGF0ZVdlYWtNYXBPYmplY3QpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZl
SklUOjpzcGVjdWxhdGVXZWFrU2V0T2JqZWN0KToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxh
dGl2ZUpJVDo6c3BlY3VsYXRlKToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6
Y29tcGlsZVdlYWtNYXBHZXQpOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oOgor
ICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjYWxsT3BlcmF0aW9uKToKKyAgICAg
ICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6
U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUpOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJ
VDY0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZSk6Cisg
ICAgICAgICogZGZnL0RGR1VzZUtpbmQuY3BwOgorICAgICAgICAoV1RGOjpwcmludEludGVybmFs
KToKKyAgICAgICAgKiBkZmcvREZHVXNlS2luZC5oOgorICAgICAgICAoSlNDOjpERkc6OnR5cGVG
aWx0ZXJGb3IpOgorICAgICAgICAoSlNDOjpERkc6OmlzQ2VsbCk6CisgICAgICAgICogZnRsL0ZU
TENhcGFiaWxpdGllcy5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6Y2FuQ29tcGlsZSk6CisgICAg
ICAgICogZnRsL0ZUTExvd2VyREZHVG9CMy5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpM
b3dlckRGR1RvQjM6OmNvbXBpbGVOb2RlKToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2Vy
REZHVG9CMzo6Y29tcGlsZVdlYWtNYXBHZXQpOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93
ZXJERkdUb0IzOjpsb3dXZWFrTWFwT2JqZWN0KToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxv
d2VyREZHVG9CMzo6bG93V2Vha1NldE9iamVjdCk6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpM
b3dlckRGR1RvQjM6OnNwZWN1bGF0ZSk6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRG
R1RvQjM6OnNwZWN1bGF0ZVdlYWtNYXBPYmplY3QpOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6
TG93ZXJERkdUb0IzOjpzcGVjdWxhdGVXZWFrU2V0T2JqZWN0KToKKyAgICAgICAgKiBqaXQvSklU
T3BlcmF0aW9ucy5oOgorICAgICAgICAqIHJ1bnRpbWUvSW50cmluc2ljLmNwcDoKKyAgICAgICAg
KEpTQzo6aW50cmluc2ljTmFtZSk6CisgICAgICAgICogcnVudGltZS9JbnRyaW5zaWMuaDoKKyAg
ICAgICAgKiBydW50aW1lL0pTVHlwZS5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNXZWFrTWFwLmg6
CisgICAgICAgIChKU0M6OmlzSlNXZWFrTWFwKToKKyAgICAgICAgKiBydW50aW1lL0pTV2Vha1Nl
dC5oOgorICAgICAgICAoSlNDOjppc0pTV2Vha1NldCk6CisgICAgICAgICogcnVudGltZS9XZWFr
TWFwQmFzZS5jcHA6CisgICAgICAgIChKU0M6OldlYWtNYXBCYXNlOjpnZXQpOgorICAgICAgICAq
IHJ1bnRpbWUvV2Vha01hcEJhc2UuaDoKKyAgICAgICAgKEpTQzo6V2Vha01hcEJhc2U6Okhhc2hU
cmFuc2xhdG9yOjpoYXNoKToKKyAgICAgICAgKEpTQzo6V2Vha01hcEJhc2U6Okhhc2hUcmFuc2xh
dG9yOjplcXVhbCk6CisgICAgICAgIChKU0M6OldlYWtNYXBCYXNlOjpmYXN0R2V0KToKKyAgICAg
ICAgKiBydW50aW1lL1dlYWtNYXBQcm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpXZWFrTWFw
UHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgIChKU0M6OmdldFdlYWtNYXApOgor
ICAgICAgICAoSlNDOjpwcm90b0Z1bmNXZWFrTWFwR2V0KToKKyAgICAgICAgKiBydW50aW1lL1dl
YWtTZXRQcm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpnZXRXZWFrU2V0KToKKwogMjAxNy0w
OC0yOSAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAgICAg
VW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjIyMTMxNy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYv
Q2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXggN2U2ZGY5MmIwOGViZjc3ODVi
ZDIyY2E1Njg4MDBmMTM1MTk0OTZiNS4uZDMyNzZlNjNjMmEwOTgwZDc4MTQ2OGQ3YzIwZWQyMGM2
YjA4MTZlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dU
Ri9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxNy0wOC0zMCAgWXVzdWtlIFN1enVraSAg
PHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KKworICAgICAgICBbREZHXSBPcHRpbWl6ZSBXZWFrTWFw
OjpnZXQgYnkgYWRkaW5nIGludHJpbnNpYyBhbmQgZml4dXAKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NjAxMAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBmYXN0R2V0IG1ldGhvZCB3aXRoIEhhc2hU
cmFuc2xhdG9yLgorCisgICAgICAgICogd3RmL0hhc2hNYXAuaDoKKyAgICAgICAgKFdURjo6WD46
OmZhc3RHZXQgY29uc3QpOgorCiAyMDE3LTA4LTI4ICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50
ZWFAZ21haWwuY29tPgogCiAgICAgICAgIFtKU0NdIFVzZSB0YWJsZSBiYXNlZCBhcHByb2FjaCBm
b3IgSlNPTi5zdHJpbmdpZnkncyBRdW90ZQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL1NwZWN1bGF0ZWRUeXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9TcGVjdWxhdGVkVHlwZS5jcHAKaW5kZXggY2EyNTk0NzM3MGY4NTIxYTAzZjJkMTVl
Zjk1ZjcwNTRlZmM1ZDBkZi4uYmU5ZTY4MDFhNjU1YTk5ODBiZGQ2MmI0MGZmMjJjNTZjNTZiYzRi
ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1NwZWN1bGF0ZWRU
eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3BlY3VsYXRlZFR5
cGUuY3BwCkBAIC0zNSw2ICszNSw4IEBACiAjaW5jbHVkZSAiSlNGdW5jdGlvbi5oIgogI2luY2x1
ZGUgIkpTTWFwLmgiCiAjaW5jbHVkZSAiSlNTZXQuaCIKKyNpbmNsdWRlICJKU1dlYWtNYXAuaCIK
KyNpbmNsdWRlICJKU1dlYWtTZXQuaCIKICNpbmNsdWRlICJQcm94eU9iamVjdC5oIgogI2luY2x1
ZGUgIlJlZ0V4cE9iamVjdC5oIgogI2luY2x1ZGUgIlNjb3BlZEFyZ3VtZW50cy5oIgpAQCAtMTgw
LDYgKzE4MiwxNiBAQCB2b2lkIGR1bXBTcGVjdWxhdGlvbihQcmludFN0cmVhbSYgb3V0U3RyZWFt
LCBTcGVjdWxhdGVkVHlwZSB2YWx1ZSkKICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAg
ICBpc1RvcCA9IGZhbHNlOwogCisgICAgICAgICAgICBpZiAodmFsdWUgJiBTcGVjV2Vha01hcE9i
amVjdCkKKyAgICAgICAgICAgICAgICBzdHJPdXQucHJpbnQoIldlYWtNYXBPYmplY3QiKTsKKyAg
ICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBpc1RvcCA9IGZhbHNlOworCisgICAgICAg
ICAgICBpZiAodmFsdWUgJiBTcGVjV2Vha1NldE9iamVjdCkKKyAgICAgICAgICAgICAgICBzdHJP
dXQucHJpbnQoIldlYWtTZXRPYmplY3QiKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAg
ICAgICBpc1RvcCA9IGZhbHNlOworCiAgICAgICAgICAgICBpZiAodmFsdWUgJiBTcGVjUHJveHlP
YmplY3QpCiAgICAgICAgICAgICAgICAgc3RyT3V0LnByaW50KCJQcm94eU9iamVjdCIpOwogICAg
ICAgICAgICAgZWxzZQpAQCAtNDAyLDYgKzQxNCwxMiBAQCBTcGVjdWxhdGVkVHlwZSBzcGVjdWxh
dGlvbkZyb21DbGFzc0luZm8oY29uc3QgQ2xhc3NJbmZvKiBjbGFzc0luZm8pCiAgICAgaWYgKGNs
YXNzSW5mbyA9PSBKU1NldDo6aW5mbygpKQogICAgICAgICByZXR1cm4gU3BlY1NldE9iamVjdDsK
IAorICAgIGlmIChjbGFzc0luZm8gPT0gSlNXZWFrTWFwOjppbmZvKCkpCisgICAgICAgIHJldHVy
biBTcGVjV2Vha01hcE9iamVjdDsKKworICAgIGlmIChjbGFzc0luZm8gPT0gSlNXZWFrU2V0Ojpp
bmZvKCkpCisgICAgICAgIHJldHVybiBTcGVjV2Vha1NldE9iamVjdDsKKwogICAgIGlmIChjbGFz
c0luZm8gPT0gUHJveHlPYmplY3Q6OmluZm8oKSkKICAgICAgICAgcmV0dXJuIFNwZWNQcm94eU9i
amVjdDsKICAgICAKQEAgLTUyMCw2ICs1MzgsMTAgQEAgU3BlY3VsYXRlZFR5cGUgc3BlY3VsYXRp
b25Gcm9tSlNUeXBlKEpTVHlwZSB0eXBlKQogICAgICAgICByZXR1cm4gU3BlY01hcE9iamVjdDsK
ICAgICBjYXNlIEpTU2V0VHlwZToKICAgICAgICAgcmV0dXJuIFNwZWNTZXRPYmplY3Q7CisgICAg
Y2FzZSBKU1dlYWtNYXBUeXBlOgorICAgICAgICByZXR1cm4gU3BlY1dlYWtNYXBPYmplY3Q7Cisg
ICAgY2FzZSBKU1dlYWtTZXRUeXBlOgorICAgICAgICByZXR1cm4gU3BlY1dlYWtTZXRPYmplY3Q7
CiAgICAgZGVmYXVsdDoKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgfQpAQCAt
NzAxLDYgKzcyMywxMCBAQCBTcGVjdWxhdGVkVHlwZSBzcGVjdWxhdGlvbkZyb21TdHJpbmcoY29u
c3QgY2hhciogc3BlY3VsYXRpb24pCiAgICAgICAgIHJldHVybiBTcGVjTWFwT2JqZWN0OwogICAg
IGlmICghc3RybmNtcChzcGVjdWxhdGlvbiwgIlNwZWNTZXRPYmplY3QiLCBzdHJsZW4oIlNwZWNT
ZXRPYmplY3QiKSkpCiAgICAgICAgIHJldHVybiBTcGVjU2V0T2JqZWN0OworICAgIGlmICghc3Ry
bmNtcChzcGVjdWxhdGlvbiwgIlNwZWNXZWFrTWFwT2JqZWN0Iiwgc3RybGVuKCJTcGVjV2Vha01h
cE9iamVjdCIpKSkKKyAgICAgICAgcmV0dXJuIFNwZWNXZWFrTWFwT2JqZWN0OworICAgIGlmICgh
c3RybmNtcChzcGVjdWxhdGlvbiwgIlNwZWNXZWFrU2V0T2JqZWN0Iiwgc3RybGVuKCJTcGVjV2Vh
a1NldE9iamVjdCIpKSkKKyAgICAgICAgcmV0dXJuIFNwZWNXZWFrU2V0T2JqZWN0OwogICAgIGlm
ICghc3RybmNtcChzcGVjdWxhdGlvbiwgIlNwZWNQcm94eU9iamVjdCIsIHN0cmxlbigiU3BlY1By
b3h5T2JqZWN0IikpKQogICAgICAgICByZXR1cm4gU3BlY1Byb3h5T2JqZWN0OwogICAgIGlmICgh
c3RybmNtcChzcGVjdWxhdGlvbiwgIlNwZWNEZXJpdmVkQXJyYXkiLCBzdHJsZW4oIlNwZWNEZXJp
dmVkQXJyYXkiKSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
U3BlY3VsYXRlZFR5cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TcGVjdWxh
dGVkVHlwZS5oCmluZGV4IGJlODkyZjI2OWE1YjFiNGQyMzNhNmZiMzBkNmIxOGY1NjI0ZGMwODIu
Ljc1ZTQ0MmQ3OTMzZmQ1YWZkY2Y0ZWJhNTA2NmUwNmEyM2YyYzVjYTIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TcGVjdWxhdGVkVHlwZS5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TcGVjdWxhdGVkVHlwZS5oCkBAIC01OCwyNiArNTgs
MjggQEAgc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNTdHJpbmdPYmplY3QgICAgICAg
PSAxdWxsIDw8IDE0OyAvLyBJdCdzIGRlZmluaXQKIHN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlw
ZSBTcGVjUmVnRXhwT2JqZWN0ICAgICAgID0gMXVsbCA8PCAxNTsgLy8gSXQncyBkZWZpbml0ZWx5
IGEgUmVnRXhwT2JqZWN0IChhbmQgbm90IGFueSBzdWJjbGFzcyBvZiBSZWdFeHBPYmplY3QpLgog
c3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNNYXBPYmplY3QgICAgICAgICAgPSAxdWxs
IDw8IDE2OyAvLyBJdCdzIGRlZmluaXRlbHkgYSBNYXAgb2JqZWN0IG9yIG9uZSBvZiBpdHMgc3Vi
Y2xhc3Nlcy4KIHN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjU2V0T2JqZWN0ICAgICAg
ICAgID0gMXVsbCA8PCAxNzsgLy8gSXQncyBkZWZpbml0ZWx5IGEgU2V0IG9iamVjdCBvciBvbmUg
b2YgaXRzIHN1YmNsYXNzZXMuCi1zdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY1Byb3h5
T2JqZWN0ICAgICAgICA9IDF1bGwgPDwgMTg7IC8vIEl0J3MgZGVmaW5pdGVseSBhIFByb3h5IG9i
amVjdCBvciBvbmUgb2YgaXRzIHN1YmNsYXNzZXMuCi1zdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5
cGUgU3BlY0Rlcml2ZWRBcnJheSAgICAgICA9IDF1bGwgPDwgMTk7IC8vIEl0J3MgZGVmaW5pdGVs
eSBhIERlcml2ZWRBcnJheSBvYmplY3QuCi1zdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3Bl
Y09iamVjdE90aGVyICAgICAgICA9IDF1bGwgPDwgMjA7IC8vIEl0J3MgZGVmaW5pdGVseSBhbiBv
YmplY3QgYnV0IG5vdCBKU0ZpbmFsT2JqZWN0LCBKU0FycmF5LCBvciBKU0Z1bmN0aW9uLgotc3Rh
dGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNPYmplY3QgICAgICAgICAgICAgPSBTcGVjRmlu
YWxPYmplY3QgfCBTcGVjQXJyYXkgfCBTcGVjRnVuY3Rpb24gfCBTcGVjVHlwZWRBcnJheVZpZXcg
fCBTcGVjRGlyZWN0QXJndW1lbnRzIHwgU3BlY1Njb3BlZEFyZ3VtZW50cyB8IFNwZWNTdHJpbmdP
YmplY3QgfCBTcGVjUmVnRXhwT2JqZWN0IHwgU3BlY01hcE9iamVjdCB8IFNwZWNTZXRPYmplY3Qg
fCBTcGVjUHJveHlPYmplY3QgfCBTcGVjRGVyaXZlZEFycmF5IHwgU3BlY09iamVjdE90aGVyOyAv
LyBCaXRtYXNrIHVzZWQgZm9yIHRlc3RpbmcgZm9yIGFueSBraW5kIG9mIG9iamVjdCBwcmVkaWN0
aW9uLgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNTdHJpbmdJZGVudCAgICAgICAg
PSAxdWxsIDw8IDIxOyAvLyBJdCdzIGRlZmluaXRlbHkgYSBKU1N0cmluZywgYW5kIGl0J3MgYW4g
aWRlbnRpZmllci4KLXN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjU3RyaW5nVmFyICAg
ICAgICAgID0gMXVsbCA8PCAyMjsgLy8gSXQncyBkZWZpbml0ZWx5IGEgSlNTdHJpbmcsIGFuZCBp
dCdzIG5vdCBhbiBpZGVudGlmaWVyLgorc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNX
ZWFrTWFwT2JqZWN0ICAgICAgPSAxdWxsIDw8IDE4OyAvLyBJdCdzIGRlZmluaXRlbHkgYSBXZWFr
TWFwIG9iamVjdCBvciBvbmUgb2YgaXRzIHN1YmNsYXNzZXMuCitzdGF0aWMgY29uc3QgU3BlY3Vs
YXRlZFR5cGUgU3BlY1dlYWtTZXRPYmplY3QgICAgICA9IDF1bGwgPDwgMTk7IC8vIEl0J3MgZGVm
aW5pdGVseSBhIFdlYWtTZXQgb2JqZWN0IG9yIG9uZSBvZiBpdHMgc3ViY2xhc3Nlcy4KK3N0YXRp
YyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjUHJveHlPYmplY3QgICAgICAgID0gMXVsbCA8PCAy
MDsgLy8gSXQncyBkZWZpbml0ZWx5IGEgUHJveHkgb2JqZWN0IG9yIG9uZSBvZiBpdHMgc3ViY2xh
c3Nlcy4KK3N0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjRGVyaXZlZEFycmF5ICAgICAg
ID0gMXVsbCA8PCAyMTsgLy8gSXQncyBkZWZpbml0ZWx5IGEgRGVyaXZlZEFycmF5IG9iamVjdC4K
K3N0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjT2JqZWN0T3RoZXIgICAgICAgID0gMXVs
bCA8PCAyMjsgLy8gSXQncyBkZWZpbml0ZWx5IGFuIG9iamVjdCBidXQgbm90IEpTRmluYWxPYmpl
Y3QsIEpTQXJyYXksIG9yIEpTRnVuY3Rpb24uCitzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUg
U3BlY09iamVjdCAgICAgICAgICAgICA9IFNwZWNGaW5hbE9iamVjdCB8IFNwZWNBcnJheSB8IFNw
ZWNGdW5jdGlvbiB8IFNwZWNUeXBlZEFycmF5VmlldyB8IFNwZWNEaXJlY3RBcmd1bWVudHMgfCBT
cGVjU2NvcGVkQXJndW1lbnRzIHwgU3BlY1N0cmluZ09iamVjdCB8IFNwZWNSZWdFeHBPYmplY3Qg
fCBTcGVjTWFwT2JqZWN0IHwgU3BlY1NldE9iamVjdCB8IFNwZWNXZWFrTWFwT2JqZWN0IHwgU3Bl
Y1dlYWtTZXRPYmplY3QgfCBTcGVjUHJveHlPYmplY3QgfCBTcGVjRGVyaXZlZEFycmF5IHwgU3Bl
Y09iamVjdE90aGVyOyAvLyBCaXRtYXNrIHVzZWQgZm9yIHRlc3RpbmcgZm9yIGFueSBraW5kIG9m
IG9iamVjdCBwcmVkaWN0aW9uLgorc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNTdHJp
bmdJZGVudCAgICAgICAgPSAxdWxsIDw8IDIzOyAvLyBJdCdzIGRlZmluaXRlbHkgYSBKU1N0cmlu
ZywgYW5kIGl0J3MgYW4gaWRlbnRpZmllci4KK3N0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBT
cGVjU3RyaW5nVmFyICAgICAgICAgID0gMXVsbCA8PCAyNDsgLy8gSXQncyBkZWZpbml0ZWx5IGEg
SlNTdHJpbmcsIGFuZCBpdCdzIG5vdCBhbiBpZGVudGlmaWVyLgogc3RhdGljIGNvbnN0IFNwZWN1
bGF0ZWRUeXBlIFNwZWNTdHJpbmcgICAgICAgICAgICAgPSBTcGVjU3RyaW5nSWRlbnQgfCBTcGVj
U3RyaW5nVmFyOyAvLyBJdCdzIGRlZmluaXRlbHkgYSBKU1N0cmluZy4KLXN0YXRpYyBjb25zdCBT
cGVjdWxhdGVkVHlwZSBTcGVjU3ltYm9sICAgICAgICAgICAgID0gMXVsbCA8PCAyMzsgLy8gSXQn
cyBkZWZpbml0ZWx5IGEgU3ltYm9sLgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWND
ZWxsT3RoZXIgICAgICAgICAgPSAxdWxsIDw8IDI0OyAvLyBJdCdzIGRlZmluaXRlbHkgYSBKU0Nl
bGwgYnV0IG5vdCBhIHN1YmNsYXNzIG9mIEpTT2JqZWN0IGFuZCBkZWZpbml0ZWx5IG5vdCBhIEpT
U3RyaW5nIG9yIGEgU3ltYm9sLgorc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNTeW1i
b2wgICAgICAgICAgICAgPSAxdWxsIDw8IDI1OyAvLyBJdCdzIGRlZmluaXRlbHkgYSBTeW1ib2wu
CitzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0NlbGxPdGhlciAgICAgICAgICA9IDF1
bGwgPDwgMjY7IC8vIEl0J3MgZGVmaW5pdGVseSBhIEpTQ2VsbCBidXQgbm90IGEgc3ViY2xhc3Mg
b2YgSlNPYmplY3QgYW5kIGRlZmluaXRlbHkgbm90IGEgSlNTdHJpbmcgb3IgYSBTeW1ib2wuCiBz
dGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0NlbGwgICAgICAgICAgICAgICA9IFNwZWNP
YmplY3QgfCBTcGVjU3RyaW5nIHwgU3BlY1N5bWJvbCB8IFNwZWNDZWxsT3RoZXI7IC8vIEl0J3Mg
ZGVmaW5pdGVseSBhIEpTQ2VsbC4KLXN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjQm9v
bEludDMyICAgICAgICAgID0gMXVsbCA8PCAyNTsgLy8gSXQncyBkZWZpbml0ZWx5IGFuIEludDMy
IHdpdGggdmFsdWUgMCBvciAxLgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNOb25C
b29sSW50MzIgICAgICAgPSAxdWxsIDw8IDI2OyAvLyBJdCdzIGRlZmluaXRlbHkgYW4gSW50MzIg
d2l0aCB2YWx1ZSBvdGhlciB0aGFuIDAgb3IgMS4KK3N0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlw
ZSBTcGVjQm9vbEludDMyICAgICAgICAgID0gMXVsbCA8PCAyNzsgLy8gSXQncyBkZWZpbml0ZWx5
IGFuIEludDMyIHdpdGggdmFsdWUgMCBvciAxLgorc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBl
IFNwZWNOb25Cb29sSW50MzIgICAgICAgPSAxdWxsIDw8IDI4OyAvLyBJdCdzIGRlZmluaXRlbHkg
YW4gSW50MzIgd2l0aCB2YWx1ZSBvdGhlciB0aGFuIDAgb3IgMS4KIHN0YXRpYyBjb25zdCBTcGVj
dWxhdGVkVHlwZSBTcGVjSW50MzJPbmx5ICAgICAgICAgID0gU3BlY0Jvb2xJbnQzMiB8IFNwZWNO
b25Cb29sSW50MzI7IC8vIEl0J3MgZGVmaW5pdGVseSBhbiBJbnQzMi4KLXN0YXRpYyBjb25zdCBT
cGVjdWxhdGVkVHlwZSBTcGVjSW50NTJPbmx5ICAgICAgICAgID0gMXVsbCA8PCAyNzsgLy8gSXQn
cyBkZWZpbml0ZWx5IGFuIEludDUyIGFuZCB3ZSBpbnRlbmQgaXQgdG8gdW5ib3ggaXQuIEl0J3Mg
YWxzbyBkZWZpbml0ZWx5IG5vdCBhbiBJbnQzMi4KK3N0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlw
ZSBTcGVjSW50NTJPbmx5ICAgICAgICAgID0gMXVsbCA8PCAyOTsgLy8gSXQncyBkZWZpbml0ZWx5
IGFuIEludDUyIGFuZCB3ZSBpbnRlbmQgaXQgdG8gdW5ib3ggaXQuIEl0J3MgYWxzbyBkZWZpbml0
ZWx5IG5vdCBhbiBJbnQzMi4KIHN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjQW55SW50
ICAgICAgICAgICAgID0gU3BlY0ludDMyT25seSB8IFNwZWNJbnQ1Mk9ubHk7IC8vIEl0J3Mgc29t
ZXRoaW5nIHRoYXQgd2UgY2FuIGRvIG1hY2hpbmUgaW50IGFyaXRobWV0aWMgb24uCi1zdGF0aWMg
Y29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0FueUludEFzRG91YmxlICAgICA9IDF1bGwgPDwgMjg7
IC8vIEl0J3MgZGVmaW5pdGVseSBhbiBJbnQ1MiBhbmQgaXQncyBpbnNpZGUgYSBkb3VibGUuCi1z
dGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY05vbkludEFzRG91YmxlICAgICA9IDF1bGwg
PDwgMjk7IC8vIEl0J3MgZGVmaW5pdGVseSBub3QgYW4gSW50NTIgYnV0IGl0J3MgYSByZWFsIG51
bWJlciBhbmQgaXQncyBhIGRvdWJsZS4KK3N0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVj
QW55SW50QXNEb3VibGUgICAgID0gMXVsbCA8PCAzMDsgLy8gSXQncyBkZWZpbml0ZWx5IGFuIElu
dDUyIGFuZCBpdCdzIGluc2lkZSBhIGRvdWJsZS4KK3N0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlw
ZSBTcGVjTm9uSW50QXNEb3VibGUgICAgID0gMXVsbCA8PCAzMTsgLy8gSXQncyBkZWZpbml0ZWx5
IG5vdCBhbiBJbnQ1MiBidXQgaXQncyBhIHJlYWwgbnVtYmVyIGFuZCBpdCdzIGEgZG91YmxlLgog
c3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNEb3VibGVSZWFsICAgICAgICAgPSBTcGVj
Tm9uSW50QXNEb3VibGUgfCBTcGVjQW55SW50QXNEb3VibGU7IC8vIEl0J3MgZGVmaW5pdGVseSBh
IG5vbi1OYU4gZG91YmxlLgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNEb3VibGVQ
dXJlTmFOICAgICAgPSAxdWxsIDw8IDMwOyAvLyBJdCdzIGRlZmluaXRlbHkgYSBOYU4gdGhhdCBp
cyBzYWZlIHRvIHRhZyAoaS5lLiBwdXJlKS4KLXN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBT
cGVjRG91YmxlSW1wdXJlTmFOICAgID0gMXVsbCA8PCAzMTsgLy8gSXQncyBkZWZpbml0ZWx5IGEg
TmFOIHRoYXQgaXMgdW5zYWZlIHRvIHRhZyAoaS5lLiBpbXB1cmUpLgorc3RhdGljIGNvbnN0IFNw
ZWN1bGF0ZWRUeXBlIFNwZWNEb3VibGVQdXJlTmFOICAgICAgPSAxdWxsIDw8IDMyOyAvLyBJdCdz
IGRlZmluaXRlbHkgYSBOYU4gdGhhdCBpcyBzYWZlIHRvIHRhZyAoaS5lLiBwdXJlKS4KK3N0YXRp
YyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjRG91YmxlSW1wdXJlTmFOICAgID0gMXVsbCA8PCAz
MzsgLy8gSXQncyBkZWZpbml0ZWx5IGEgTmFOIHRoYXQgaXMgdW5zYWZlIHRvIHRhZyAoaS5lLiBp
bXB1cmUpLgogc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNEb3VibGVOYU4gICAgICAg
ICAgPSBTcGVjRG91YmxlUHVyZU5hTiB8IFNwZWNEb3VibGVJbXB1cmVOYU47IC8vIEl0J3MgZGVm
aW5pdGVseSBzb21lIGtpbmQgb2YgTmFOLgogc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNw
ZWNCeXRlY29kZURvdWJsZSAgICAgPSBTcGVjRG91YmxlUmVhbCB8IFNwZWNEb3VibGVQdXJlTmFO
OyAvLyBJdCdzIGVpdGhlciBhIG5vbi1OYU4gb3IgYSBOYU4gZG91YmxlLCBidXQgaXQncyBkZWZp
bml0ZWx5IG5vdCBpbXB1cmUgTmFOLgogc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNG
dWxsRG91YmxlICAgICAgICAgPSBTcGVjRG91YmxlUmVhbCB8IFNwZWNEb3VibGVOYU47IC8vIEl0
J3MgZWl0aGVyIGEgbm9uLU5hTiBvciBhIE5hTiBkb3VibGUuCkBAIC04NSwxMiArODcsMTIgQEAg
c3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNCeXRlY29kZVJlYWxOdW1iZXIgPSBTcGVj
SW50MzJPbmx5IHwgU3BlY0RvdWJsZVIKIHN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVj
RnVsbFJlYWxOdW1iZXIgICAgID0gU3BlY0FueUludCB8IFNwZWNEb3VibGVSZWFsOyAvLyBJdCdz
IGVpdGhlciBhbiBJbnQzMiBvciBhIERvdWJsZVJlYWwsIG9yIGEgSW50NTIuCiBzdGF0aWMgY29u
c3QgU3BlY3VsYXRlZFR5cGUgU3BlY0J5dGVjb2RlTnVtYmVyICAgICA9IFNwZWNJbnQzMk9ubHkg
fCBTcGVjQnl0ZWNvZGVEb3VibGU7IC8vIEl0J3MgZWl0aGVyIGFuIEludDMyIG9yIGEgRG91Ymxl
LCBhbmQgdGhlIERvdWJsZSBjYW5ub3QgYmUgYW4gaW1wdXJlIE5hTi4KIHN0YXRpYyBjb25zdCBT
cGVjdWxhdGVkVHlwZSBTcGVjRnVsbE51bWJlciAgICAgICAgID0gU3BlY0FueUludCB8IFNwZWNG
dWxsRG91YmxlOyAvLyBJdCdzIGVpdGhlciBhbiBJbnQzMiwgSW50NTIsIG9yIGEgRG91YmxlLCBh
bmQgdGhlIERvdWJsZSBjYW4gYmUgaW1wdXJlIE5hTi4KLXN0YXRpYyBjb25zdCBTcGVjdWxhdGVk
VHlwZSBTcGVjQm9vbGVhbiAgICAgICAgICAgID0gMXVsbCA8PCAzMjsgLy8gSXQncyBkZWZpbml0
ZWx5IGEgQm9vbGVhbi4KLXN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjT3RoZXIgICAg
ICAgICAgICAgID0gMXVsbCA8PCAzMzsgLy8gSXQncyBkZWZpbml0ZWx5IGVpdGhlciBOdWxsIG9y
IFVuZGVmaW5lZC4KK3N0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjQm9vbGVhbiAgICAg
ICAgICAgID0gMXVsbCA8PCAzNDsgLy8gSXQncyBkZWZpbml0ZWx5IGEgQm9vbGVhbi4KK3N0YXRp
YyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjT3RoZXIgICAgICAgICAgICAgID0gMXVsbCA8PCAz
NTsgLy8gSXQncyBkZWZpbml0ZWx5IGVpdGhlciBOdWxsIG9yIFVuZGVmaW5lZC4KIHN0YXRpYyBj
b25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjTWlzYyAgICAgICAgICAgICAgID0gU3BlY0Jvb2xlYW4g
fCBTcGVjT3RoZXI7IC8vIEl0J3MgZGVmaW5pdGVseSBlaXRoZXIgYSBib29sZWFuLCBOdWxsLCBv
ciBVbmRlZmluZWQuCiBzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0hlYXBUb3AgICAg
ICAgICAgICA9IFNwZWNDZWxsIHwgU3BlY0J5dGVjb2RlTnVtYmVyIHwgU3BlY01pc2M7IC8vIEl0
IGNhbiBiZSBhbnkgb2YgdGhlIGFib3ZlLCBleGNlcHQgZm9yIFNwZWNJbnQ1Mk9ubHkgYW5kIFNw
ZWNEb3VibGVJbXB1cmVOYU4uCiBzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY1ByaW1p
dGl2ZSAgICAgICAgICA9IFNwZWNTdHJpbmcgfCBTcGVjU3ltYm9sIHwgU3BlY0J5dGVjb2RlTnVt
YmVyIHwgU3BlY01pc2M7IC8vIEl0J3MgYW55IG5vbi1PYmplY3QgSlNWYWx1ZS4KLXN0YXRpYyBj
b25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjRW1wdHkgICAgICAgICAgICAgID0gMXVsbCA8PCAzNDsg
Ly8gSXQncyBkZWZpbml0ZWx5IGFuIGVtcHR5IHZhbHVlIG1hcmtlci4KK3N0YXRpYyBjb25zdCBT
cGVjdWxhdGVkVHlwZSBTcGVjRW1wdHkgICAgICAgICAgICAgID0gMXVsbCA8PCAzNjsgLy8gSXQn
cyBkZWZpbml0ZWx5IGFuIGVtcHR5IHZhbHVlIG1hcmtlci4KIHN0YXRpYyBjb25zdCBTcGVjdWxh
dGVkVHlwZSBTcGVjQnl0ZWNvZGVUb3AgICAgICAgID0gU3BlY0hlYXBUb3AgfCBTcGVjRW1wdHk7
IC8vIEl0IGNhbiBiZSBhbnkgb2YgdGhlIGFib3ZlLCBleGNlcHQgZm9yIFNwZWNJbnQ1Mk9ubHkg
YW5kIFNwZWNEb3VibGVJbXB1cmVOYU4uIENvcnJlc3BvbmRzIHRvIHdoYXQgY291bGQgYmUgZm91
bmQgaW4gYSBieXRlY29kZSBsb2NhbC4KIHN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVj
RnVsbFRvcCAgICAgICAgICAgID0gU3BlY0J5dGVjb2RlVG9wIHwgU3BlY0Z1bGxOdW1iZXI7IC8v
IEl0IGNhbiBiZSBhbnl0aGluZyB0aGF0IGJ5dGVjb2RlIGNvdWxkIHNlZSBwbHVzIGV4b3RpYyBl
bmNvZGluZ3Mgb2YgbnVtYmVycy4KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oCmluZGV4IGZiNzM4ZTAyMGJh
MGZjNWU5Y2VmZjgwYzBiNDA0YWVmNDU3ZTdiMTUuLjEwMGE5MjY4ODEyNzAzYTc1N2NjYTZlYTJk
MTI5MmYyYTlhOTllMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
QWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgKQEAgLTEwNzMsNiArMTA3MywxMCBA
QCBib29sIEFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0ZVR5cGU+OjpleGVjdXRlRWZm
ZWN0cyh1bnNpZ25lZCBjbG9iYmVyTGltaQogICAgICAgICB9CiAgICAgICAgIGJyZWFrOwogCisg
ICAgY2FzZSBXZWFrTWFwR2V0OgorICAgICAgICBmb3JOb2RlKG5vZGUpLm1ha2VCeXRlY29kZVRv
cCgpOworICAgICAgICBicmVhazsKKwogICAgIGNhc2UgSXNFbXB0eToKICAgICBjYXNlIElzVW5k
ZWZpbmVkOgogICAgIGNhc2UgSXNCb29sZWFuOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAppbmRleCBlOTdiMzg3M2IzN2JiNzcwMTM3OGNmZWVm
YzhiODA4NTFhMWU3OTUwLi5iNWY3Mzk1NmVlMTNlNzYzNjkxOTQyOTI3NDA3ZDMzOWM0ZGY0ZmE2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2Vy
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNw
cApAQCAtMjk0Niw2ICsyOTQ2LDIyIEBAIGJvb2wgQnl0ZUNvZGVQYXJzZXI6OmhhbmRsZUludHJp
bnNpY0NhbGwoTm9kZSogY2FsbGVlLCBpbnQgcmVzdWx0T3BlcmFuZCwgSW50cmluCiAgICAgICAg
IHJldHVybiB0cnVlOwogICAgIH0KIAorICAgIGNhc2UgSlNXZWFrTWFwR2V0SW50cmluc2ljOiB7
CisgICAgICAgIGlmIChhcmd1bWVudENvdW50SW5jbHVkaW5nVGhpcyAhPSAyKQorICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIGlmIChtX2lubGluZVN0YWNrVG9wLT5tX2V4aXRQ
cm9maWxlLmhhc0V4aXRTaXRlKG1fY3VycmVudEluZGV4LCBCYWRUeXBlKSkKKyAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKKworICAgICAgICBpbnNlcnRDaGVja3MoKTsKKyAgICAgICAgTm9kZSog
bWFwID0gZ2V0KHZpcnR1YWxSZWdpc3RlckZvckFyZ3VtZW50KDAsIHJlZ2lzdGVyT2Zmc2V0KSk7
CisgICAgICAgIE5vZGUqIGtleSA9IGdldCh2aXJ0dWFsUmVnaXN0ZXJGb3JBcmd1bWVudCgxLCBy
ZWdpc3Rlck9mZnNldCkpOworICAgICAgICBOb2RlKiBoYXNoID0gYWRkVG9HcmFwaChNYXBIYXNo
LCBrZXkpOworICAgICAgICBOb2RlKiByZXN1bHQgPSBhZGRUb0dyYXBoKFdlYWtNYXBHZXQsIE9w
SW5mbygpLCBPcEluZm8ocHJlZGljdGlvbiksIG1hcCwga2V5LCBoYXNoKTsKKyAgICAgICAgc2V0
KFZpcnR1YWxSZWdpc3RlcihyZXN1bHRPcGVyYW5kKSwgcmVzdWx0KTsKKyAgICAgICAgcmV0dXJu
IHRydWU7CisgICAgfQorCiAgICAgY2FzZSBIYXNPd25Qcm9wZXJ0eUludHJpbnNpYzogewogICAg
ICAgICBpZiAoYXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMgIT0gMikKICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xv
YmJlcml6ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVyaXplLmgKaW5k
ZXggMTY2ZTZhZjQ1ZjQ5NGVjZjZjNmMzYjFjMmFjMmU4ODI4ZjZkMmVlYy4uNmNhNWQ3MThjODM2
MzcwYWNiYWJkNmU5YTMwZDVhNGM2OTI1N2ZlYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdDbG9iYmVyaXplLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdDbG9iYmVyaXplLmgKQEAgLTE1NDcsNiArMTU0Nyw3IEBAIHZvaWQgY2xvYmJlcml6ZShH
cmFwaCYgZ3JhcGgsIE5vZGUqIG5vZGUsIGNvbnN0IFJlYWRGdW5jdG9yJiByZWFkLCBjb25zdCBX
cml0ZUZ1CiAgICAgY2FzZSBNYXBIYXNoOgogICAgICAgICBkZWYoUHVyZVZhbHVlKG5vZGUpKTsK
ICAgICAgICAgcmV0dXJuOworCiAgICAgY2FzZSBHZXRNYXBCdWNrZXQ6IHsKICAgICAgICAgcmVh
ZChNaXNjRmllbGRzKTsKICAgICAgICAgRWRnZSYgbWFwRWRnZSA9IG5vZGUtPmNoaWxkMSgpOwpA
QCAtMTU1NCwxMiArMTU1NSwxNCBAQCB2b2lkIGNsb2JiZXJpemUoR3JhcGgmIGdyYXBoLCBOb2Rl
KiBub2RlLCBjb25zdCBSZWFkRnVuY3RvciYgcmVhZCwgY29uc3QgV3JpdGVGdQogICAgICAgICBk
ZWYoSGVhcExvY2F0aW9uKE1hcEJ1Y2tldExvYywgTWlzY0ZpZWxkcywgbWFwRWRnZSwga2V5RWRn
ZSksIExhenlOb2RlKG5vZGUpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KKwogICAgIGNhc2Ug
R2V0TWFwQnVja2V0SGVhZDogewogICAgICAgICByZWFkKE1pc2NGaWVsZHMpOwogICAgICAgICBF
ZGdlJiBtYXBFZGdlID0gbm9kZS0+Y2hpbGQxKCk7CiAgICAgICAgIGRlZihIZWFwTG9jYXRpb24o
TWFwQnVja2V0SGVhZExvYywgTWlzY0ZpZWxkcywgbWFwRWRnZSksIExhenlOb2RlKG5vZGUpKTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KKwogICAgIGNhc2UgR2V0TWFwQnVja2V0TmV4dDogewog
ICAgICAgICByZWFkKE1pc2NGaWVsZHMpOwogICAgICAgICBMb2NhdGlvbktpbmQgbG9jYXRpb25L
aW5kID0gTWFwQnVja2V0TWFwTmV4dExvYzsKQEAgLTE1NjksMTIgKzE1NzIsMTQgQEAgdm9pZCBj
bG9iYmVyaXplKEdyYXBoJiBncmFwaCwgTm9kZSogbm9kZSwgY29uc3QgUmVhZEZ1bmN0b3ImIHJl
YWQsIGNvbnN0IFdyaXRlRnUKICAgICAgICAgZGVmKEhlYXBMb2NhdGlvbihsb2NhdGlvbktpbmQs
IE1pc2NGaWVsZHMsIGJ1Y2tldEVkZ2UpLCBMYXp5Tm9kZShub2RlKSk7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CisKICAgICBjYXNlIExvYWRLZXlGcm9tTWFwQnVja2V0OiB7CiAgICAgICAgIHJl
YWQoTWlzY0ZpZWxkcyk7CiAgICAgICAgIEVkZ2UmIGJ1Y2tldEVkZ2UgPSBub2RlLT5jaGlsZDEo
KTsKICAgICAgICAgZGVmKEhlYXBMb2NhdGlvbihNYXBCdWNrZXRLZXlMb2MsIE1pc2NGaWVsZHMs
IGJ1Y2tldEVkZ2UpLCBMYXp5Tm9kZShub2RlKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CisK
ICAgICBjYXNlIExvYWRWYWx1ZUZyb21NYXBCdWNrZXQ6IHsKICAgICAgICAgcmVhZChNaXNjRmll
bGRzKTsKICAgICAgICAgRWRnZSYgYnVja2V0RWRnZSA9IG5vZGUtPmNoaWxkMSgpOwpAQCAtMTU4
Miw2ICsxNTg3LDE0IEBAIHZvaWQgY2xvYmJlcml6ZShHcmFwaCYgZ3JhcGgsIE5vZGUqIG5vZGUs
IGNvbnN0IFJlYWRGdW5jdG9yJiByZWFkLCBjb25zdCBXcml0ZUZ1CiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAKKyAgICBjYXNlIFdlYWtNYXBHZXQ6IHsKKyAgICAgICAgcmVhZChNaXNjRmllbGRz
KTsKKyAgICAgICAgRWRnZSYgbWFwRWRnZSA9IG5vZGUtPmNoaWxkMSgpOworICAgICAgICBFZGdl
JiBrZXlFZGdlID0gbm9kZS0+Y2hpbGQyKCk7CisgICAgICAgIGRlZihIZWFwTG9jYXRpb24oV2Vh
a01hcEdldExvYywgTWlzY0ZpZWxkcywgbWFwRWRnZSwga2V5RWRnZSksIExhenlOb2RlKG5vZGUp
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIGNhc2UgVG9Mb3dlckNhc2U6CiAgICAg
ICAgIGRlZihQdXJlVmFsdWUobm9kZSkpOwogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RvZXNHQy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0RvZXNHQy5jcHAKaW5kZXggNmQ5ZDIyODA1MGJiZjUzOWVhY2FiOWU3MDBi
ODYyYTliMjkwZGU3MC4uZWM3ZTA1YTU3OGFmMDZkNjgzNWYwMTkwNTEzYzM3ZjM0NDA3MTdhZSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEb2VzR0MuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRG9lc0dDLmNwcApAQCAtMTk4LDYgKzE5OCw3
IEBAIGJvb2wgZG9lc0dDKEdyYXBoJiBncmFwaCwgTm9kZSogbm9kZSkKICAgICBjYXNlIEdldE1h
cEJ1Y2tldE5leHQ6CiAgICAgY2FzZSBMb2FkS2V5RnJvbU1hcEJ1Y2tldDoKICAgICBjYXNlIExv
YWRWYWx1ZUZyb21NYXBCdWNrZXQ6CisgICAgY2FzZSBXZWFrTWFwR2V0OgogICAgIGNhc2UgVW5y
ZWFjaGFibGU6CiAgICAgY2FzZSBFeHRyYWN0Q2F0Y2hMb2NhbDoKICAgICBjYXNlIEV4dHJhY3RP
U1JFbnRyeUxvY2FsOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdG
aXh1cFBoYXNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5j
cHAKaW5kZXggNjE1OTk5YzE3NzQyMjY5N2E3YzIzYWEzYjA5M2MyMDQ4NzZhZDUxNy4uMmM3NTUy
YTcwZDE1ZDE1MmQyZDhiZTc0Y2Q0YjIwMGE3ZTZhNzExNSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCkBAIC0xODQ5LDYgKzE4NDksMTMgQEAgY2xhc3Mg
Rml4dXBQaGFzZSA6IHB1YmxpYyBQaGFzZSB7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
fQogCisgICAgICAgIGNhc2UgV2Vha01hcEdldDogeworICAgICAgICAgICAgZml4RWRnZTxXZWFr
TWFwT2JqZWN0VXNlPihub2RlLT5jaGlsZDEoKSk7CisgICAgICAgICAgICBmaXhFZGdlPE9iamVj
dFVzZT4obm9kZS0+Y2hpbGQyKCkpOworICAgICAgICAgICAgZml4RWRnZTxJbnQzMlVzZT4obm9k
ZS0+Y2hpbGQzKCkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKwogICAgICAgICBj
YXNlIERlZmluZURhdGFQcm9wZXJ0eTogewogICAgICAgICAgICAgZml4RWRnZTxDZWxsVXNlPiht
X2dyYXBoLnZhckFyZ0NoaWxkKG5vZGUsIDApKTsKICAgICAgICAgICAgIEVkZ2UmIHByb3BlcnR5
RWRnZSA9IG1fZ3JhcGgudmFyQXJnQ2hpbGQobm9kZSwgMSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0hlYXBMb2NhdGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0hlYXBMb2NhdGlvbi5jcHAKaW5kZXggNjBiZDU3MjZiYzU4Y2I3NDY4ZDc4
ZDUzNjRiZjQ0NWZkOGI5ODY0ZS4uNGVkMGU0NzYyYTUxZjI4MDI3Yzc2YzhhMTRjMGQyYzE4Zjlj
ZGI2NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdIZWFwTG9jYXRp
b24uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSGVhcExvY2F0aW9uLmNw
cApAQCAtMTU5LDI0ICsxNTksMzUgQEAgdm9pZCBwcmludEludGVybmFsKFByaW50U3RyZWFtJiBv
dXQsIExvY2F0aW9uS2luZCBraW5kKQogICAgIGNhc2UgUmVnRXhwT2JqZWN0TGFzdEluZGV4TG9j
OgogICAgICAgICBvdXQucHJpbnQoIlJlZ0V4cE9iamVjdExhc3RJbmRleExvYyIpOwogICAgICAg
ICByZXR1cm47CisKICAgICBjYXNlIE1hcEJ1Y2tldExvYzoKICAgICAgICAgb3V0LnByaW50KCJN
YXBCdWNrZXRMb2MiKTsKICAgICAgICAgcmV0dXJuOworCiAgICAgY2FzZSBNYXBCdWNrZXRIZWFk
TG9jOgogICAgICAgICBvdXQucHJpbnQoIk1hcEJ1Y2tldEhlYWRMb2MiKTsKICAgICAgICAgcmV0
dXJuOworCiAgICAgY2FzZSBNYXBCdWNrZXRLZXlMb2M6CiAgICAgICAgIG91dC5wcmludCgiTWFw
QnVja2V0S2V5TG9jIik7CiAgICAgICAgIHJldHVybjsKKwogICAgIGNhc2UgTWFwQnVja2V0VmFs
dWVMb2M6CiAgICAgICAgIG91dC5wcmludCgiTWFwQnVja2V0VmFsdWVMb2MiKTsKICAgICAgICAg
cmV0dXJuOworCiAgICAgY2FzZSBNYXBCdWNrZXRNYXBOZXh0TG9jOgogICAgICAgICBvdXQucHJp
bnQoIk1hcEJ1Y2tldE1hcE5leHRMb2MiKTsKICAgICAgICAgcmV0dXJuOworCiAgICAgY2FzZSBN
YXBCdWNrZXRTZXROZXh0TG9jOgogICAgICAgICBvdXQucHJpbnQoIk1hcEJ1Y2tldFNldE5leHRM
b2MiKTsKICAgICAgICAgcmV0dXJuOworCisgICAgY2FzZSBXZWFrTWFwR2V0TG9jOgorICAgICAg
ICBvdXQucHJpbnQoIldlYWtNYXBHZXRMb2MiKTsKKyAgICAgICAgcmV0dXJuOworCiAgICAgY2Fz
ZSBET01TdGF0ZUxvYzoKICAgICAgICAgb3V0LnByaW50KCJET01TdGF0ZUxvYyIpOwogICAgICAg
ICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0hlYXBM
b2NhdGlvbi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdIZWFwTG9jYXRpb24uaApp
bmRleCBiODJjOTIyZGEyN2Y3ZTAwZjI3YjVhYTMwNzdlZTQwNTU1MThlZWM0Li42NzY1NjVjZmJm
MGQxMzEyMTk4Y2Q0MTRiMmEzYmE2NzYwYTBjOTNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0hlYXBMb2NhdGlvbi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHSGVhcExvY2F0aW9uLmgKQEAgLTY4LDYgKzY4LDcgQEAgZW51bSBMb2NhdGlvbktp
bmQgewogICAgIE1hcEJ1Y2tldEtleUxvYywKICAgICBNYXBCdWNrZXRNYXBOZXh0TG9jLAogICAg
IE1hcEJ1Y2tldFNldE5leHRMb2MsCisgICAgV2Vha01hcEdldExvYywKICAgICBET01TdGF0ZUxv
YywKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZS5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgKaW5kZXggM2UyM2QwNDMyMWU4
NTM2MTE5ODJkNDIxZmRhM2NiZTc4MTJhZGZmNS4uOTQ4MjRmMTYxYTYwY2ExYmI1ZjMwNDdmZDg4
Njc5MzFkN2M4MDQ2ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdO
b2RlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgKQEAgLTE1NDUs
NiArMTU0NSw3IEBAIHN0cnVjdCBOb2RlIHsKICAgICAgICAgY2FzZSBBdG9taWNzU3ViOgogICAg
ICAgICBjYXNlIEF0b21pY3NYb3I6CiAgICAgICAgIGNhc2UgR2V0RHluYW1pY1ZhcjoKKyAgICAg
ICAgY2FzZSBXZWFrTWFwR2V0OgogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIGRl
ZmF1bHQ6CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR05vZGVUeXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR05vZGVUeXBlLmgKaW5kZXggNjhmZDZmOGMwZjA5MDFlYTkyMTFjYjc5ZWRlMGE3MWYxNmI1
NzU4MS4uYmFkNTliZGY1YWY2OWYyYjRhNGQxYmFiOTc0ZmE2ZWFkZjU3ZGFkYyAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5cGUuaApAQCAtNDM2LDYgKzQzNiw4IEBAIG5hbWVz
cGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKICAgICBtYWNybyhHZXRNYXBCdWNrZXROZXh0LCBO
b2RlUmVzdWx0SlMpIFwKICAgICBtYWNybyhMb2FkS2V5RnJvbU1hcEJ1Y2tldCwgTm9kZVJlc3Vs
dEpTKSBcCiAgICAgbWFjcm8oTG9hZFZhbHVlRnJvbU1hcEJ1Y2tldCwgTm9kZVJlc3VsdEpTKSBc
CisgICAgLyogTm9kZXMgZm9yIEpTV2Vha01hcCBhbmQgSlNXZWFrU2V0ICovIFwKKyAgICBtYWNy
byhXZWFrTWFwR2V0LCBOb2RlUmVzdWx0SlMpIFwKICAgICBcCiAgICAgbWFjcm8oVG9Mb3dlckNh
c2UsIE5vZGVSZXN1bHRKUykgXAogICAgIC8qIE5vZGVzIGZvciBET00gSklUICovXApkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAKaW5kZXggNWM0MWM4MzJjZWZj
NzQ5NDljOTMxYzQwODA3N2E0NmNkNDBjY2VhZC4uNDVkMTgyMTEyOTAwOThkZWM0Y2QyNzYxNzc3
YzhmNTJmYjFlYWQ4MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdP
cGVyYXRpb25zLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlv
bnMuY3BwCkBAIC01NSw2ICs1NSw3IEBACiAjaW5jbHVkZSAiSlNMZXhpY2FsRW52aXJvbm1lbnQu
aCIKICNpbmNsdWRlICJKU01hcC5oIgogI2luY2x1ZGUgIkpTU2V0LmgiCisjaW5jbHVkZSAiSlNX
ZWFrTWFwLmgiCiAjaW5jbHVkZSAiT2JqZWN0Q29uc3RydWN0b3IuaCIKICNpbmNsdWRlICJPcGVy
YXRpb25zLmgiCiAjaW5jbHVkZSAiUGFyc2VJbnQuaCIKQEAgLTgyNSw2ICs4MjYsMTMgQEAgRW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25SZWdFeHBFeGVjR2VuZXJpYyhFeGVj
U3RhdGUqIGV4ZWMsIEpTR2xvYmEKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGFzUmVnRXhw
T2JqZWN0KGJhc2UpLT5leGVjKGV4ZWMsIGdsb2JhbE9iamVjdCwgaW5wdXQpKTsKIH0KIAorRW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25XZWFrTWFwR2V0KEV4ZWNTdGF0ZSog
ZXhlYywgSlNDZWxsKiB3ZWFrTWFwLCBKU0NlbGwqIG9iamVjdCwgaW50MzJfdCBoYXNoKQorewor
ICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CisgICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNl
cigmdm0sIGV4ZWMpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNDYXN0PEpTV2Vha01h
cCo+KHdlYWtNYXApLT5mYXN0R2V0KGFzT2JqZWN0KG9iamVjdCksIGhhc2gpKTsKK30KKwogRW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25QYXJzZUludE5vUmFkaXhHZW5lcmlj
KEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgdmFsdWUpCiB7CiAgICAgVk0mIHZtID0g
ZXhlYy0+dm0oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3Bl
cmF0aW9ucy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmgKaW5k
ZXggYzQ3NjhkYzYwYWY5ODdjMTU4NTMyODhmMDI4ZTJkNDYyOWJhNDk5My4uY2Q5NTgzMjhlNzRk
YjdiYTA4NWFjNWYxOTZkMjYzZjc2MTYxMTYxZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdPcGVyYXRpb25zLmgKQEAgLTEzMSw2ICsxMzEsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIG9wZXJhdGlvbkFycmF5UG9wQW5kUmVjb3Zlckxlbmd0aChFeGVjU3RhdGUqLCBK
U0FycgogRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25SZWdFeHBFeGVjU3Ry
aW5nKEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0KiwgUmVnRXhwT2JqZWN0KiwgSlNTdHJpbmcq
KSBXVEZfSU5URVJOQUw7CiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblJl
Z0V4cEV4ZWMoRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqLCBSZWdFeHBPYmplY3QqLCBFbmNv
ZGVkSlNWYWx1ZSkgV1RGX0lOVEVSTkFMOwogRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBv
cGVyYXRpb25SZWdFeHBFeGVjR2VuZXJpYyhFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCosIEVu
Y29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSkgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25XZWFrTWFwR2V0KEV4ZWNTdGF0ZSosIEpTQ2VsbCos
IEpTQ2VsbCosIGludDMyX3QpIFdURl9JTlRFUk5BTDsKIC8vIFRoZXNlIGNvbXBhcmlzb25zIHJl
dHVybiBhIGJvb2xlYW4gd2l0aGluIGEgc2l6ZV90IHN1Y2ggdGhhdCB0aGUgdmFsdWUgaXMgemVy
byBleHRlbmRlZCB0byBmaWxsIHRoZSByZWdpc3Rlci4KIHNpemVfdCBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvblJlZ0V4cFRlc3RTdHJpbmcoRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqLCBSZWdF
eHBPYmplY3QqLCBKU1N0cmluZyopIFdURl9JTlRFUk5BTDsKIHNpemVfdCBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvblJlZ0V4cFRlc3QoRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqLCBSZWdFeHBP
YmplY3QqLCBFbmNvZGVkSlNWYWx1ZSkgV1RGX0lOVEVSTkFMOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNw
cAppbmRleCA1YjBiOWVmNjM3YzIxZmVmMDQ1M2ZlYTkzYzU3YjRiZDFlNzFlYjNlLi5lNDE5MzI0
NGY4M2Y1MmVkMjdlOTI5ODQyOTI3MjlmYzRhZGQ4OTlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNw
cApAQCAtNzIyLDcgKzcyMiw4IEBAIGNsYXNzIFByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlIDog
cHVibGljIFBoYXNlIHsKICAgICAgICAgY2FzZSBUb051bWJlcjoKICAgICAgICAgY2FzZSBHZXRB
cmd1bWVudDoKICAgICAgICAgY2FzZSBDYWxsRE9NR2V0dGVyOgotICAgICAgICBjYXNlIEdldER5
bmFtaWNWYXI6IHsKKyAgICAgICAgY2FzZSBHZXREeW5hbWljVmFyOgorICAgICAgICBjYXNlIFdl
YWtNYXBHZXQ6IHsKICAgICAgICAgICAgIHNldFByZWRpY3Rpb24obV9jdXJyZW50Tm9kZS0+Z2V0
SGVhcFByZWRpY3Rpb24oKSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTYWZlVG9FeGVjdXRlLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaAppbmRleCBhZDc2YjMzYjBm
YWFmMTg3ZGI0NmEzMDg5MmY0N2ZjYTdlM2I0NDlkLi4zMjcyMWUxZjQxYWFmOTI5OTRmNTM1N2Yw
NjI2MWZiZmNkZWRlNjk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1NhZmVUb0V4ZWN1dGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVU
b0V4ZWN1dGUuaApAQCAtNjIsNiArNjIsOCBAQCBjbGFzcyBTYWZlVG9FeGVjdXRlRWRnZSB7CiAg
ICAgICAgIGNhc2UgRGVyaXZlZEFycmF5VXNlOgogICAgICAgICBjYXNlIE1hcE9iamVjdFVzZToK
ICAgICAgICAgY2FzZSBTZXRPYmplY3RVc2U6CisgICAgICAgIGNhc2UgV2Vha01hcE9iamVjdFVz
ZToKKyAgICAgICAgY2FzZSBXZWFrU2V0T2JqZWN0VXNlOgogICAgICAgICBjYXNlIE9iamVjdE9y
T3RoZXJVc2U6CiAgICAgICAgIGNhc2UgU3RyaW5nSWRlbnRVc2U6CiAgICAgICAgIGNhc2UgU3Ry
aW5nVXNlOgpAQCAtMzg4LDYgKzM5MCw3IEBAIGJvb2wgc2FmZVRvRXhlY3V0ZShBYnN0cmFjdFN0
YXRlVHlwZSYgc3RhdGUsIEdyYXBoJiBncmFwaCwgTm9kZSogbm9kZSkKICAgICBjYXNlIEdldE1h
cEJ1Y2tldE5leHQ6CiAgICAgY2FzZSBMb2FkS2V5RnJvbU1hcEJ1Y2tldDoKICAgICBjYXNlIExv
YWRWYWx1ZUZyb21NYXBCdWNrZXQ6CisgICAgY2FzZSBXZWFrTWFwR2V0OgogICAgIGNhc2UgQXRv
bWljc0FkZDoKICAgICBjYXNlIEF0b21pY3NBbmQ6CiAgICAgY2FzZSBBdG9taWNzQ29tcGFyZUV4
Y2hhbmdlOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxh
dGl2ZUpJVC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklU
LmNwcAppbmRleCBmODM2MGI5ZmRiOTAxYmFjMjE0OWI5NDMyYjBlZTcyZWVjMGFkOTk2Li45NDE2
OGQ1YjQ3ZDljOGExMWIzYTM2MDE4ZWI2MWNkMGJmYWZjN2RmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcApAQCAtODg4NCw2ICs4ODg0LDM0
IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZVNldE9iamVjdChFZGdlIGVkZ2UpCiAg
ICAgc3BlY3VsYXRlU2V0T2JqZWN0KGVkZ2UsIG9wZXJhbmQuZ3ByKCkpOwogfQogCit2b2lkIFNw
ZWN1bGF0aXZlSklUOjpzcGVjdWxhdGVXZWFrTWFwT2JqZWN0KEVkZ2UgZWRnZSwgR1BSUmVnIGNl
bGwpCit7CisgICAgc3BlY3VsYXRlQ2VsbFR5cGUoZWRnZSwgY2VsbCwgU3BlY1dlYWtNYXBPYmpl
Y3QsIEpTV2Vha01hcFR5cGUpOworfQorCit2b2lkIFNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGVX
ZWFrTWFwT2JqZWN0KEVkZ2UgZWRnZSkKK3sKKyAgICBpZiAoIW5lZWRzVHlwZUNoZWNrKGVkZ2Us
IFNwZWNXZWFrTWFwT2JqZWN0KSkKKyAgICAgICAgcmV0dXJuOworCisgICAgU3BlY3VsYXRlQ2Vs
bE9wZXJhbmQgb3BlcmFuZCh0aGlzLCBlZGdlKTsKKyAgICBzcGVjdWxhdGVXZWFrTWFwT2JqZWN0
KGVkZ2UsIG9wZXJhbmQuZ3ByKCkpOworfQorCit2b2lkIFNwZWN1bGF0aXZlSklUOjpzcGVjdWxh
dGVXZWFrU2V0T2JqZWN0KEVkZ2UgZWRnZSwgR1BSUmVnIGNlbGwpCit7CisgICAgc3BlY3VsYXRl
Q2VsbFR5cGUoZWRnZSwgY2VsbCwgU3BlY1dlYWtTZXRPYmplY3QsIEpTV2Vha1NldFR5cGUpOwor
fQorCit2b2lkIFNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGVXZWFrU2V0T2JqZWN0KEVkZ2UgZWRn
ZSkKK3sKKyAgICBpZiAoIW5lZWRzVHlwZUNoZWNrKGVkZ2UsIFNwZWNXZWFrU2V0T2JqZWN0KSkK
KyAgICAgICAgcmV0dXJuOworCisgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgb3BlcmFuZCh0aGlz
LCBlZGdlKTsKKyAgICBzcGVjdWxhdGVXZWFrU2V0T2JqZWN0KGVkZ2UsIG9wZXJhbmQuZ3ByKCkp
OworfQorCiB2b2lkIFNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGVPYmplY3RPck90aGVyKEVkZ2Ug
ZWRnZSkKIHsKICAgICBpZiAoIW5lZWRzVHlwZUNoZWNrKGVkZ2UsIFNwZWNPYmplY3QgfCBTcGVj
T3RoZXIpKQpAQCAtOTIwMiw2ICs5MjMwLDEyIEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OnNwZWN1
bGF0ZShOb2RlKiwgRWRnZSBlZGdlKQogICAgIGNhc2UgU2V0T2JqZWN0VXNlOgogICAgICAgICBz
cGVjdWxhdGVTZXRPYmplY3QoZWRnZSk7CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgV2Vha01h
cE9iamVjdFVzZToKKyAgICAgICAgc3BlY3VsYXRlV2Vha01hcE9iamVjdChlZGdlKTsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBXZWFrU2V0T2JqZWN0VXNlOgorICAgICAgICBzcGVjdWxhdGVX
ZWFrU2V0T2JqZWN0KGVkZ2UpOworICAgICAgICBicmVhazsKICAgICBjYXNlIE9iamVjdE9yT3Ro
ZXJVc2U6CiAgICAgICAgIHNwZWN1bGF0ZU9iamVjdE9yT3RoZXIoZWRnZSk7CiAgICAgICAgIGJy
ZWFrOwpAQCAtMTAyODQsNiArMTAzMTgsMjggQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGls
ZUxvYWRWYWx1ZUZyb21NYXBCdWNrZXQoTm9kZSogbm9kZSkKICAgICBqc1ZhbHVlUmVzdWx0KHJl
c3VsdFJlZ3MsIG5vZGUpOwogfQogCit2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlV2Vha01h
cEdldChOb2RlKiBub2RlKQoreworICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIHdlYWtNYXAodGhp
cywgbm9kZS0+Y2hpbGQxKCkpOworICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIG9iamVjdCh0aGlz
LCBub2RlLT5jaGlsZDIoKSk7CisgICAgU3BlY3VsYXRlSW50MzJPcGVyYW5kIGhhc2godGhpcywg
bm9kZS0+Y2hpbGQzKCkpOworICAgIEpTVmFsdWVSZWdzVGVtcG9yYXJ5IHJlc3VsdCh0aGlzKTsK
KworICAgIEdQUlJlZyB3ZWFrTWFwR1BSID0gd2Vha01hcC5ncHIoKTsKKyAgICBHUFJSZWcgb2Jq
ZWN0R1BSID0gb2JqZWN0LmdwcigpOworICAgIEdQUlJlZyBoYXNoR1BSID0gaGFzaC5ncHIoKTsK
KyAgICBKU1ZhbHVlUmVncyByZXN1bHRSZWdzID0gcmVzdWx0LnJlZ3MoKTsKKworICAgIHNwZWN1
bGF0ZVdlYWtNYXBPYmplY3Qobm9kZS0+Y2hpbGQxKCksIHdlYWtNYXBHUFIpOworICAgIHNwZWN1
bGF0ZU9iamVjdChub2RlLT5jaGlsZDIoKSwgb2JqZWN0R1BSKTsKKworICAgIGZsdXNoUmVnaXN0
ZXJzKCk7CisgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25XZWFrTWFwR2V0LCByZXN1bHRSZWdz
LCB3ZWFrTWFwR1BSLCBvYmplY3RHUFIsIGhhc2hHUFIpOworICAgIG1faml0LmV4Y2VwdGlvbkNo
ZWNrKCk7CisKKyAgICBqc1ZhbHVlUmVzdWx0KHJlc3VsdFJlZ3MsIG5vZGUpOworfQorCiB9IH0g
Ly8gbmFtZXNwYWNlIEpTQzo6REZHCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCmluZGV4IGI2MTIyZWYwNjA3NmY3MDA0N2E2MmZlNTdk
MzJmNmQ4ZDI1ZWE0MmMuLjhjOGRlZGM3OGVlODI4ZmY4MGNlZDg0OGM2ZTg1NTFiOGEwYjRlMjMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgKQEAg
LTE4MTMsNiArMTgxMywxMSBAQCBjbGFzcyBTcGVjdWxhdGl2ZUpJVCB7CiAgICAgICAgIG1faml0
LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShhcmcxLCBhcmcyKTsKICAgICAgICAgcmV0dXJu
IGFwcGVuZENhbGxTZXRSZXN1bHQob3BlcmF0aW9uLCByZXN1bHQpOwogICAgIH0KKyAgICBKSVRD
b21waWxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VDQ1ogb3BlcmF0aW9u
LCBKU1ZhbHVlUmVncyByZXN1bHQsIEdQUlJlZyBhcmcxLCBHUFJSZWcgYXJnMiwgR1BSUmVnIGFy
ZzMpCisgICAgeworICAgICAgICBtX2ppdC5zZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoYXJn
MSwgYXJnMiwgYXJnMyk7CisgICAgICAgIHJldHVybiBhcHBlbmRDYWxsU2V0UmVzdWx0KG9wZXJh
dGlvbiwgcmVzdWx0LnBheWxvYWRHUFIoKSk7CisgICAgfQogICAgIEpJVENvbXBpbGVyOjpDYWxs
IGNhbGxPcGVyYXRpb24oSl9KSVRPcGVyYXRpb25fRUNKIG9wZXJhdGlvbiwgR1BSUmVnIHJlc3Vs
dCwgR1BSUmVnIGFyZzEsIEdQUlJlZyBhcmcyKQogICAgIHsKICAgICAgICAgbV9qaXQuc2V0dXBB
cmd1bWVudHNXaXRoRXhlY1N0YXRlKGFyZzEsIGFyZzIpOwpAQCAtMjM4MSw2ICsyMzg2LDExIEBA
IGNsYXNzIFNwZWN1bGF0aXZlSklUIHsKICAgICAgICAgbV9qaXQuc2V0dXBBcmd1bWVudHNXaXRo
RXhlY1N0YXRlKGFyZzEsIGFyZzIpOwogICAgICAgICByZXR1cm4gYXBwZW5kQ2FsbFNldFJlc3Vs
dChvcGVyYXRpb24sIHJlc3VsdC5wYXlsb2FkR1BSKCksIHJlc3VsdC50YWdHUFIoKSk7CiAgICAg
fQorICAgIEpJVENvbXBpbGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oSl9KSVRPcGVyYXRpb25fRUND
WiBvcGVyYXRpb24sIEpTVmFsdWVSZWdzIHJlc3VsdCwgR1BSUmVnIGFyZzEsIEdQUlJlZyBhcmcy
LCBHUFJSZWcgYXJnMykKKyAgICB7CisgICAgICAgIG1faml0LnNldHVwQXJndW1lbnRzV2l0aEV4
ZWNTdGF0ZShhcmcxLCBhcmcyLCBhcmczKTsKKyAgICAgICAgcmV0dXJuIGFwcGVuZENhbGxTZXRS
ZXN1bHQob3BlcmF0aW9uLCByZXN1bHQucGF5bG9hZEdQUigpLCByZXN1bHQudGFnR1BSKCkpOwor
ICAgIH0KIAogICAgIEpJVENvbXBpbGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRp
b25fRU9aRCBvcGVyYXRpb24sIEdQUlJlZyBhcmcxLCBHUFJSZWcgYXJnMiwgRlBSUmVnIGFyZzMp
CiAgICAgewpAQCAtMjc4MSw2ICsyNzkxLDcgQEAgY2xhc3MgU3BlY3VsYXRpdmVKSVQgewogICAg
IHZvaWQgY29tcGlsZUNoZWNrU3ViQ2xhc3MoTm9kZSopOwogICAgIHZvaWQgY29tcGlsZUdldE1h
cEJ1Y2tldEhlYWQoTm9kZSopOwogICAgIHZvaWQgY29tcGlsZUdldE1hcEJ1Y2tldE5leHQoTm9k
ZSopOworICAgIHZvaWQgY29tcGlsZVdlYWtNYXBHZXQoTm9kZSopOwogICAgIHZvaWQgY29tcGls
ZUxvYWRLZXlGcm9tTWFwQnVja2V0KE5vZGUqKTsKICAgICB2b2lkIGNvbXBpbGVMb2FkVmFsdWVG
cm9tTWFwQnVja2V0KE5vZGUqKTsKICAgICAKQEAgLTMwMzYsNiArMzA0NywxMCBAQCBjbGFzcyBT
cGVjdWxhdGl2ZUpJVCB7CiAgICAgdm9pZCBzcGVjdWxhdGVNYXBPYmplY3QoRWRnZSwgR1BSUmVn
IGNlbGwpOwogICAgIHZvaWQgc3BlY3VsYXRlU2V0T2JqZWN0KEVkZ2UpOwogICAgIHZvaWQgc3Bl
Y3VsYXRlU2V0T2JqZWN0KEVkZ2UsIEdQUlJlZyBjZWxsKTsKKyAgICB2b2lkIHNwZWN1bGF0ZVdl
YWtNYXBPYmplY3QoRWRnZSk7CisgICAgdm9pZCBzcGVjdWxhdGVXZWFrTWFwT2JqZWN0KEVkZ2Us
IEdQUlJlZyBjZWxsKTsKKyAgICB2b2lkIHNwZWN1bGF0ZVdlYWtTZXRPYmplY3QoRWRnZSk7Cisg
ICAgdm9pZCBzcGVjdWxhdGVXZWFrU2V0T2JqZWN0KEVkZ2UsIEdQUlJlZyBjZWxsKTsKICAgICB2
b2lkIHNwZWN1bGF0ZU9iamVjdE9yT3RoZXIoRWRnZSk7CiAgICAgdm9pZCBzcGVjdWxhdGVTdHJp
bmcoRWRnZSBlZGdlLCBHUFJSZWcgY2VsbCk7CiAgICAgdm9pZCBzcGVjdWxhdGVTdHJpbmdJZGVu
dEFuZExvYWRTdG9yYWdlKEVkZ2UgZWRnZSwgR1BSUmVnIHN0cmluZywgR1BSUmVnIHN0b3JhZ2Up
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJ
VDMyXzY0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQz
Ml82NC5jcHAKaW5kZXggMzU0NDllMzVkZjY0N2I5MDJkNGYzNTYzNDljZDI4YjI1YjhjYTU2NC4u
ZWVlZDlmZTg4ZWU0ZjA1ZTQ5MGRjOTYzYmQ5MWI4OGExN2I5YjYzNSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCkBAIC00
OTMxLDYgKzQ5MzEsMTAgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2Rl
KQogICAgICAgICBjb21waWxlTG9hZFZhbHVlRnJvbU1hcEJ1Y2tldChub2RlKTsKICAgICAgICAg
YnJlYWs7CiAKKyAgICBjYXNlIFdlYWtNYXBHZXQ6CisgICAgICAgIGNvbXBpbGVXZWFrTWFwR2V0
KG5vZGUpOworICAgICAgICBicmVhazsKKwogICAgIGNhc2UgRmx1c2g6CiAgICAgICAgIGJyZWFr
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZl
SklUNjQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0
LmNwcAppbmRleCBkNGMzODM0YjdkZmNiNTg2ZWJmMmIzMzcwZGE1N2MwZmE0MDAwMGZjLi42MDc0
ZDc3MWRmZDI5MWUzZmI2NjgwMjdlNDhkYTYxYTk5Nzg2ZDJiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKQEAgLTUyOTEsNiArNTI5
MSwxMCBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUqIG5vZGUpCiAgICAgICAg
IGNvbXBpbGVMb2FkVmFsdWVGcm9tTWFwQnVja2V0KG5vZGUpOwogICAgICAgICBicmVhazsKIAor
ICAgIGNhc2UgV2Vha01hcEdldDoKKyAgICAgICAgY29tcGlsZVdlYWtNYXBHZXQobm9kZSk7Cisg
ICAgICAgIGJyZWFrOworCiAgICAgY2FzZSBUb0xvd2VyQ2FzZTogewogICAgICAgICBjb21waWxl
VG9Mb3dlckNhc2Uobm9kZSk7CiAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdVc2VLaW5kLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHVXNlS2luZC5jcHAKaW5kZXggZTgzODI5YjcxMzA2MTczZGU5NWIwMTA4OGJmM2U5Y2Q4
NGZkZjZlYy4uMjNkMGRiMDA0MGU0MzU2MDExYjIyNjQ5ZWFiMDgzNDNjODQxMWIxMCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdVc2VLaW5kLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1VzZUtpbmQuY3BwCkBAIC0xMDksNiArMTA5LDEyIEBA
IHZvaWQgcHJpbnRJbnRlcm5hbChQcmludFN0cmVhbSYgb3V0LCBVc2VLaW5kIHVzZUtpbmQpCiAg
ICAgY2FzZSBTZXRPYmplY3RVc2U6CiAgICAgICAgIG91dC5wcmludCgiU2V0T2JqZWN0VXNlIik7
CiAgICAgICAgIHJldHVybjsKKyAgICBjYXNlIFdlYWtNYXBPYmplY3RVc2U6CisgICAgICAgIG91
dC5wcmludCgiV2Vha01hcE9iamVjdFVzZSIpOworICAgICAgICByZXR1cm47CisgICAgY2FzZSBX
ZWFrU2V0T2JqZWN0VXNlOgorICAgICAgICBvdXQucHJpbnQoIldlYWtTZXRPYmplY3RVc2UiKTsK
KyAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgT2JqZWN0T3JPdGhlclVzZToKICAgICAgICAgb3V0
LnByaW50KCJPYmplY3RPck90aGVyIik7CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVXNlS2luZC5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdVc2VLaW5kLmgKaW5kZXggNDZlMjcyMDFjOTg2ZmRmZTNiNjA2Yzc1NjIzODkw
YzIwZTJmMDM1OS4uNzk2ZDhiNDBmY2NjYTAxYzRlNWRhMzg3ZDgyNTBlMWNhMmZiNDI2YyAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdVc2VLaW5kLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdVc2VLaW5kLmgKQEAgLTY3LDYgKzY3LDggQEAgZW51
bSBVc2VLaW5kIHsKICAgICBTeW1ib2xVc2UsCiAgICAgTWFwT2JqZWN0VXNlLAogICAgIFNldE9i
amVjdFVzZSwKKyAgICBXZWFrTWFwT2JqZWN0VXNlLAorICAgIFdlYWtTZXRPYmplY3RVc2UsCiAg
ICAgU3RyaW5nT2JqZWN0VXNlLAogICAgIFN0cmluZ09yU3RyaW5nT2JqZWN0VXNlLAogICAgIE5v
dFN0cmluZ1ZhclVzZSwKQEAgLTE0OSw2ICsxNTEsMTAgQEAgaW5saW5lIFNwZWN1bGF0ZWRUeXBl
IHR5cGVGaWx0ZXJGb3IoVXNlS2luZCB1c2VLaW5kKQogICAgICAgICByZXR1cm4gU3BlY01hcE9i
amVjdDsKICAgICBjYXNlIFNldE9iamVjdFVzZToKICAgICAgICAgcmV0dXJuIFNwZWNTZXRPYmpl
Y3Q7CisgICAgY2FzZSBXZWFrTWFwT2JqZWN0VXNlOgorICAgICAgICByZXR1cm4gU3BlY1dlYWtN
YXBPYmplY3Q7CisgICAgY2FzZSBXZWFrU2V0T2JqZWN0VXNlOgorICAgICAgICByZXR1cm4gU3Bl
Y1dlYWtTZXRPYmplY3Q7CiAgICAgY2FzZSBTdHJpbmdPYmplY3RVc2U6CiAgICAgICAgIHJldHVy
biBTcGVjU3RyaW5nT2JqZWN0OwogICAgIGNhc2UgU3RyaW5nT3JTdHJpbmdPYmplY3RVc2U6CkBA
IC0yNDEsNiArMjQ3LDggQEAgaW5saW5lIGJvb2wgaXNDZWxsKFVzZUtpbmQga2luZCkKICAgICBj
YXNlIFN0cmluZ09yU3RyaW5nT2JqZWN0VXNlOgogICAgIGNhc2UgTWFwT2JqZWN0VXNlOgogICAg
IGNhc2UgU2V0T2JqZWN0VXNlOgorICAgIGNhc2UgV2Vha01hcE9iamVjdFVzZToKKyAgICBjYXNl
IFdlYWtTZXRPYmplY3RVc2U6CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIGRlZmF1bHQ6CiAg
ICAgICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9m
dGwvRlRMQ2FwYWJpbGl0aWVzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2Fw
YWJpbGl0aWVzLmNwcAppbmRleCBjMjE1YTYzMjk2MWY4NmUxYmU2MjhiYjFlOWM5NmI2OGNiZmVm
MTM1Li5iZjBmZTYzOTUyNWQwNmYzMzI1MTI3NjdkZjY3MDQ4MjNjYzZkODdlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDYXBhYmlsaXRpZXMuY3BwCkBAIC0xOTksNiArMTk5
LDcgQEAgaW5saW5lIENhcGFiaWxpdHlMZXZlbCBjYW5Db21waWxlKE5vZGUqIG5vZGUpCiAgICAg
Y2FzZSBHZXRNYXBCdWNrZXROZXh0OgogICAgIGNhc2UgTG9hZEtleUZyb21NYXBCdWNrZXQ6CiAg
ICAgY2FzZSBMb2FkVmFsdWVGcm9tTWFwQnVja2V0OgorICAgIGNhc2UgV2Vha01hcEdldDoKICAg
ICBjYXNlIElzRW1wdHk6CiAgICAgY2FzZSBJc1VuZGVmaW5lZDoKICAgICBjYXNlIElzQm9vbGVh
bjoKQEAgLTQ4Niw2ICs0ODcsOCBAQCBDYXBhYmlsaXR5TGV2ZWwgY2FuQ29tcGlsZShHcmFwaCYg
Z3JhcGgpCiAgICAgICAgICAgICAgICAgY2FzZSBTeW1ib2xVc2U6CiAgICAgICAgICAgICAgICAg
Y2FzZSBNYXBPYmplY3RVc2U6CiAgICAgICAgICAgICAgICAgY2FzZSBTZXRPYmplY3RVc2U6Cisg
ICAgICAgICAgICAgICAgY2FzZSBXZWFrTWFwT2JqZWN0VXNlOgorICAgICAgICAgICAgICAgIGNh
c2UgV2Vha1NldE9iamVjdFVzZToKICAgICAgICAgICAgICAgICBjYXNlIEZpbmFsT2JqZWN0VXNl
OgogICAgICAgICAgICAgICAgIGNhc2UgUmVnRXhwT2JqZWN0VXNlOgogICAgICAgICAgICAgICAg
IGNhc2UgUHJveHlPYmplY3RVc2U6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExv
d2VyREZHVG9CMy5jcHAKaW5kZXggM2VlMjE2OWZmZDkxODM1NGQ0MTc1NTIyMThlMmMxNWVkNTE5
NTFlYS4uMWQ1MDNhYTgzNGY4ZjY2OTU3Mzk5MDhlZDQ4OGMyYmFjMTM0NzU3OCAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcApAQCAtOTg0LDYgKzk4
NCw5IEBAIGNsYXNzIExvd2VyREZHVG9CMyB7CiAgICAgICAgIGNhc2UgTG9hZFZhbHVlRnJvbU1h
cEJ1Y2tldDoKICAgICAgICAgICAgIGNvbXBpbGVMb2FkVmFsdWVGcm9tTWFwQnVja2V0KCk7CiAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBXZWFrTWFwR2V0OgorICAgICAgICAgICAg
Y29tcGlsZVdlYWtNYXBHZXQoKTsKKyAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIElz
T2JqZWN0OgogICAgICAgICAgICAgY29tcGlsZUlzT2JqZWN0KCk7CiAgICAgICAgICAgICBicmVh
azsKQEAgLTgzMjQsNiArODMyNywxNSBAQCBjbGFzcyBMb3dlckRGR1RvQjMgewogICAgICAgICBz
ZXRKU1ZhbHVlKG1fb3V0LmxvYWQ2NChtYXBCdWNrZXQsIG1faGVhcHMuSGFzaE1hcEJ1Y2tldF9r
ZXkpKTsKICAgICB9CiAKKyAgICB2b2lkIGNvbXBpbGVXZWFrTWFwR2V0KCkKKyAgICB7CisgICAg
ICAgIExWYWx1ZSB3ZWFrTWFwID0gbG93V2Vha01hcE9iamVjdChtX25vZGUtPmNoaWxkMSgpKTsK
KyAgICAgICAgTFZhbHVlIG9iamVjdCA9IGxvd09iamVjdChtX25vZGUtPmNoaWxkMigpKTsKKyAg
ICAgICAgTFZhbHVlIGhhc2ggPSBsb3dJbnQzMihtX25vZGUtPmNoaWxkMygpKTsKKworICAgICAg
ICBzZXRKU1ZhbHVlKHZtQ2FsbChJbnQ2NCwgbV9vdXQub3BlcmF0aW9uKG9wZXJhdGlvbldlYWtN
YXBHZXQpLCBtX2NhbGxGcmFtZSwgd2Vha01hcCwgb2JqZWN0LCBoYXNoKSk7CisgICAgfQorCiAg
ICAgdm9pZCBjb21waWxlSXNPYmplY3RPck51bGwoKQogICAgIHsKICAgICAgICAgSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCA9IG1fZ3JhcGguZ2xvYmFsT2JqZWN0Rm9yKG1fbm9kZS0+b3Jp
Z2luLnNlbWFudGljKTsKQEAgLTEyNzgyLDYgKzEyNzk0LDIwIEBAIGNsYXNzIExvd2VyREZHVG9C
MyB7CiAgICAgICAgIHNwZWN1bGF0ZVNldE9iamVjdChlZGdlLCByZXN1bHQpOwogICAgICAgICBy
ZXR1cm4gcmVzdWx0OwogICAgIH0KKworICAgIExWYWx1ZSBsb3dXZWFrTWFwT2JqZWN0KEVkZ2Ug
ZWRnZSkKKyAgICB7CisgICAgICAgIExWYWx1ZSByZXN1bHQgPSBsb3dDZWxsKGVkZ2UpOworICAg
ICAgICBzcGVjdWxhdGVXZWFrTWFwT2JqZWN0KGVkZ2UsIHJlc3VsdCk7CisgICAgICAgIHJldHVy
biByZXN1bHQ7CisgICAgfQorCisgICAgTFZhbHVlIGxvd1dlYWtTZXRPYmplY3QoRWRnZSBlZGdl
KQorICAgIHsKKyAgICAgICAgTFZhbHVlIHJlc3VsdCA9IGxvd0NlbGwoZWRnZSk7CisgICAgICAg
IHNwZWN1bGF0ZVdlYWtTZXRPYmplY3QoZWRnZSwgcmVzdWx0KTsKKyAgICAgICAgcmV0dXJuIHJl
c3VsdDsKKyAgICB9CiAgICAgCiAgICAgTFZhbHVlIGxvd1N0cmluZyhFZGdlIGVkZ2UsIE9wZXJh
bmRTcGVjdWxhdGlvbk1vZGUgbW9kZSA9IEF1dG9tYXRpY09wZXJhbmRTcGVjdWxhdGlvbikKICAg
ICB7CkBAIC0xMzIzNSw2ICsxMzI2MSwxMiBAQCBjbGFzcyBMb3dlckRGR1RvQjMgewogICAgICAg
ICBjYXNlIFNldE9iamVjdFVzZToKICAgICAgICAgICAgIHNwZWN1bGF0ZVNldE9iamVjdChlZGdl
KTsKICAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFdlYWtNYXBPYmplY3RVc2U6Cisg
ICAgICAgICAgICBzcGVjdWxhdGVXZWFrTWFwT2JqZWN0KGVkZ2UpOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGNhc2UgV2Vha1NldE9iamVjdFVzZToKKyAgICAgICAgICAgIHNwZWN1bGF0
ZVdlYWtTZXRPYmplY3QoZWRnZSk7CisgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBT
dHJpbmdVc2U6CiAgICAgICAgICAgICBzcGVjdWxhdGVTdHJpbmcoZWRnZSk7CiAgICAgICAgICAg
ICBicmVhazsKQEAgLTEzNjMwLDYgKzEzNjYyLDI4IEBAIGNsYXNzIExvd2VyREZHVG9CMyB7CiAg
ICAgewogICAgICAgICBzcGVjdWxhdGVTZXRPYmplY3QoZWRnZSwgbG93Q2VsbChlZGdlKSk7CiAg
ICAgfQorCisgICAgdm9pZCBzcGVjdWxhdGVXZWFrTWFwT2JqZWN0KEVkZ2UgZWRnZSwgTFZhbHVl
IGNlbGwpCisgICAgeworICAgICAgICBGVExfVFlQRV9DSEVDSygKKyAgICAgICAgICAgIGpzVmFs
dWVWYWx1ZShjZWxsKSwgZWRnZSwgU3BlY1dlYWtNYXBPYmplY3QsIGlzTm90VHlwZShjZWxsLCBK
U1dlYWtNYXBUeXBlKSk7CisgICAgfQorCisgICAgdm9pZCBzcGVjdWxhdGVXZWFrTWFwT2JqZWN0
KEVkZ2UgZWRnZSkKKyAgICB7CisgICAgICAgIHNwZWN1bGF0ZVdlYWtNYXBPYmplY3QoZWRnZSwg
bG93Q2VsbChlZGdlKSk7CisgICAgfQorCisgICAgdm9pZCBzcGVjdWxhdGVXZWFrU2V0T2JqZWN0
KEVkZ2UgZWRnZSwgTFZhbHVlIGNlbGwpCisgICAgeworICAgICAgICBGVExfVFlQRV9DSEVDSygK
KyAgICAgICAgICAgIGpzVmFsdWVWYWx1ZShjZWxsKSwgZWRnZSwgU3BlY1dlYWtTZXRPYmplY3Qs
IGlzTm90VHlwZShjZWxsLCBKU1dlYWtTZXRUeXBlKSk7CisgICAgfQorCisgICAgdm9pZCBzcGVj
dWxhdGVXZWFrU2V0T2JqZWN0KEVkZ2UgZWRnZSkKKyAgICB7CisgICAgICAgIHNwZWN1bGF0ZVdl
YWtTZXRPYmplY3QoZWRnZSwgbG93Q2VsbChlZGdlKSk7CisgICAgfQogICAgIAogICAgIHZvaWQg
c3BlY3VsYXRlU3RyaW5nKEVkZ2UgZWRnZSwgTFZhbHVlIGNlbGwpCiAgICAgewpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuaAppbmRleCBlNmQxY2Q0OWIxNjRkMWI3MGQ2
ZjNmMGFmZTMxZTc3NzE5Zjc4ZTNhLi4wYTk4N2I4NTdmY2JmMWVkYzcxODUyOWI1ODBjMmMyYTAw
ZjY0ODY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlv
bnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuaApAQCAt
MTI2LDYgKzEyNiw3IEBAIHR5cGVkZWYgRW5jb2RlZEpTVmFsdWUgKEpJVF9PUEVSQVRJT04gKkpf
SklUT3BlcmF0aW9uX0VBYXBKKShFeGVjU3RhdGUqLCBBcnJheUFsCiB0eXBlZGVmIEVuY29kZWRK
U1ZhbHVlIChKSVRfT1BFUkFUSU9OICpKX0pJVE9wZXJhdGlvbl9FQWFwSmNwWikoRXhlY1N0YXRl
KiwgQXJyYXlBbGxvY2F0aW9uUHJvZmlsZSosIGNvbnN0IEpTVmFsdWUqLCBpbnQzMl90KTsKIHR5
cGVkZWYgRW5jb2RlZEpTVmFsdWUgKEpJVF9PUEVSQVRJT04gKkpfSklUT3BlcmF0aW9uX0VDKShF
eGVjU3RhdGUqLCBKU0NlbGwqKTsKIHR5cGVkZWYgRW5jb2RlZEpTVmFsdWUgKEpJVF9PUEVSQVRJ
T04gKkpfSklUT3BlcmF0aW9uX0VDQykoRXhlY1N0YXRlKiwgSlNDZWxsKiwgSlNDZWxsKik7Cit0
eXBlZGVmIEVuY29kZWRKU1ZhbHVlIChKSVRfT1BFUkFUSU9OICpKX0pJVE9wZXJhdGlvbl9FQ0Na
KShFeGVjU3RhdGUqLCBKU0NlbGwqLCBKU0NlbGwqLCBpbnQzMl90KTsKIHR5cGVkZWYgRW5jb2Rl
ZEpTVmFsdWUgKEpJVF9PUEVSQVRJT04gKkpfSklUT3BlcmF0aW9uX0VDSSkoRXhlY1N0YXRlKiwg
SlNDZWxsKiwgVW5pcXVlZFN0cmluZ0ltcGwqKTsKIHR5cGVkZWYgRW5jb2RlZEpTVmFsdWUgKEpJ
VF9PUEVSQVRJT04gKkpfSklUT3BlcmF0aW9uX0VDSikoRXhlY1N0YXRlKiwgSlNDZWxsKiwgRW5j
b2RlZEpTVmFsdWUpOwogdHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSAoSklUX09QRVJBVElPTiAqSl9K
SVRPcGVyYXRpb25fRUNaKShFeGVjU3RhdGUqLCBKU0NlbGwqLCBpbnQzMl90KTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludHJpbnNpYy5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRyaW5zaWMuY3BwCmluZGV4IGY5ODU2M2FiYTcxNzAz
YjExMmRjZjg4NmVjNDU1YTcwNWZiNWVkMGIuLjlkMTJmZmY5ZGY3NWNlMTdkNmEwMWIzMDM2YTFi
YTdiYTEzNjM5MTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0lu
dHJpbnNpYy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50cmluc2lj
LmNwcApAQCAtMTUzLDYgKzE1Myw4IEBAIGNvbnN0IGNoYXIqIGludHJpbnNpY05hbWUoSW50cmlu
c2ljIGludHJpbnNpYykKICAgICAgICAgcmV0dXJuICJKU1NldEJ1Y2tldE5leHRJbnRyaW5zaWMi
OwogICAgIGNhc2UgSlNTZXRCdWNrZXRLZXlJbnRyaW5zaWM6CiAgICAgICAgIHJldHVybiAiSlNT
ZXRCdWNrZXRLZXlJbnRyaW5zaWMiOworICAgIGNhc2UgSlNXZWFrTWFwR2V0SW50cmluc2ljOgor
ICAgICAgICByZXR1cm4gIkpTV2Vha01hcEdldEludHJpbnNpYyI7CiAgICAgY2FzZSBIYXNPd25Q
cm9wZXJ0eUludHJpbnNpYzoKICAgICAgICAgcmV0dXJuICJIYXNPd25Qcm9wZXJ0eUludHJpbnNp
YyI7CiAgICAgY2FzZSBBdG9taWNzQWRkSW50cmluc2ljOgpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50cmluc2ljLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9JbnRyaW5zaWMuaAppbmRleCA0YzkyYTRkNjQ0MDQzOGVhMTkwYmQ3OWNiMzFjYTRj
OGEzNjljMDRjLi4yOWQ5NWY3MjlhYzU0YzFmM2E1NzBmYWJmNjg0ZmU3ZTNiNTc3ZDkwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRyaW5zaWMuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRyaW5zaWMuaApAQCAtODksNiArODksNyBA
QCBlbnVtIEludHJpbnNpYyB7CiAgICAgSlNTZXRCdWNrZXRIZWFkSW50cmluc2ljLAogICAgIEpT
U2V0QnVja2V0TmV4dEludHJpbnNpYywKICAgICBKU1NldEJ1Y2tldEtleUludHJpbnNpYywKKyAg
ICBKU1dlYWtNYXBHZXRJbnRyaW5zaWMsCiAgICAgSGFzT3duUHJvcGVydHlJbnRyaW5zaWMsCiAg
ICAgQXRvbWljc0FkZEludHJpbnNpYywKICAgICBBdG9taWNzQW5kSW50cmluc2ljLApkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBlLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGUuaAppbmRleCAyZjc3Y2QwY2YxNGI3MThlY2FlYjkz
ZmM3YzdhZDUzZWFhZWZjN2VlLi5lZWUyYTVlYTUxOTc3MWFkYTUzOWUxM2NkYTJiOWU1ZjMyMTdm
NjQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGUuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGUuaApAQCAtOTQsNiArOTQs
OCBAQCBlbnVtIEpTVHlwZSA6IHVpbnQ4X3QgewogICAgIFByb3h5T2JqZWN0VHlwZSwKICAgICBK
U01hcFR5cGUsCiAgICAgSlNTZXRUeXBlLAorICAgIEpTV2Vha01hcFR5cGUsCisgICAgSlNXZWFr
U2V0VHlwZSwKIAogICAgIFdlYkFzc2VtYmx5RnVuY3Rpb25UeXBlLAogCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1dlYWtNYXAuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTV2Vha01hcC5oCmluZGV4IDVmOGZkMjEyNWE5OGFiNDI1ZGNhYjg1
NjQ1M2Q0Yjg5M2EwZjdmNDguLjc4OGFlYzNmNGEyOWJkZjAzNDEwNmJmYzI1MjhkNTU4NDNkMjdm
NjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTV2Vha01hcC5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTV2Vha01hcC5oCkBAIC0zOCw3
ICszOCw3IEBAIGNsYXNzIEpTV2Vha01hcCBmaW5hbCA6IHB1YmxpYyBXZWFrTWFwQmFzZSB7CiAK
ICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoVk0mIHZtLCBKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICB7Ci0gICAgICAgIHJl
dHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJ
bmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKKyAgICAgICAgcmV0dXJu
IFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8o
SlNXZWFrTWFwVHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOwogICAgIH0KIAogICAgIHN0
YXRpYyBKU1dlYWtNYXAqIGNyZWF0ZShWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQpAQCAt
NjIsNCArNjIsMTYgQEAgY2xhc3MgSlNXZWFrTWFwIGZpbmFsIDogcHVibGljIFdlYWtNYXBCYXNl
IHsKICAgICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nTmFtZShjb25zdCBKU09iamVjdCosIEV4ZWNT
dGF0ZSopOwogfTsKIAoraW5saW5lIGJvb2wgaXNKU1dlYWtNYXAoSlNDZWxsKiBmcm9tKQorewor
ICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc19maW5hbDxKU1dlYWtNYXA+Ojp2YWx1ZSwgIiIpOwor
ICAgIHJldHVybiBmcm9tLT50eXBlKCkgPT0gSlNXZWFrTWFwVHlwZTsKK30KKworaW5saW5lIGJv
b2wgaXNKU1dlYWtNYXAoSlNWYWx1ZSBmcm9tKQoreworICAgIHN0YXRpY19hc3NlcnQoc3RkOjpp
c19maW5hbDxKU1dlYWtNYXA+Ojp2YWx1ZSwgIiIpOworICAgIHJldHVybiBmcm9tLmlzQ2VsbCgp
ICYmIGZyb20uYXNDZWxsKCktPnR5cGUoKSA9PSBKU1dlYWtNYXBUeXBlOworfQorCiB9IC8vIG5h
bWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
V2Vha1NldC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNXZWFrU2V0LmgKaW5k
ZXggNzU3MGY0MmVkNzBmZmUwZWYyM2U0Yzc0NjY5ZWMxODY4YTY4ODQ2MS4uMjI4YzAzNmIzYTI4
NzA5NDk1MmVlYTEwOTA1YjUwYTBhMmM0NTQxMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNXZWFrU2V0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNXZWFrU2V0LmgKQEAgLTM4LDcgKzM4LDcgQEAgY2xhc3MgSlNXZWFrU2V0IGZpbmFs
IDogcHVibGljIFdlYWtNYXBCYXNlIHsKIAogICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0
cnVjdHVyZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJv
dG90eXBlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9i
YWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3Mp
LCBpbmZvKCkpOworICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9i
amVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhKU1dlYWtTZXRUeXBlLCBTdHJ1Y3R1cmVGbGFncyks
IGluZm8oKSk7CiAgICAgfQogCiAgICAgc3RhdGljIEpTV2Vha1NldCogY3JlYXRlKFZNJiB2bSwg
U3RydWN0dXJlKiBzdHJ1Y3R1cmUpCkBAIC02Miw0ICs2MiwxNiBAQCBjbGFzcyBKU1dlYWtTZXQg
ZmluYWwgOiBwdWJsaWMgV2Vha01hcEJhc2UgewogICAgIHN0YXRpYyBTdHJpbmcgdG9TdHJpbmdO
YW1lKGNvbnN0IEpTT2JqZWN0KiwgRXhlY1N0YXRlKik7CiB9OwogCitpbmxpbmUgYm9vbCBpc0pT
V2Vha1NldChKU0NlbGwqIGZyb20pCit7CisgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX2ZpbmFs
PEpTV2Vha1NldD46OnZhbHVlLCAiIik7CisgICAgcmV0dXJuIGZyb20tPnR5cGUoKSA9PSBKU1dl
YWtTZXRUeXBlOworfQorCitpbmxpbmUgYm9vbCBpc0pTV2Vha1NldChKU1ZhbHVlIGZyb20pCit7
CisgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX2ZpbmFsPEpTV2Vha1NldD46OnZhbHVlLCAiIik7
CisgICAgcmV0dXJuIGZyb20uaXNDZWxsKCkgJiYgZnJvbS5hc0NlbGwoKS0+dHlwZSgpID09IEpT
V2Vha1NldFR5cGU7Cit9CisKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2Vha01hcEJhc2UuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvV2Vha01hcEJhc2UuY3BwCmluZGV4IDBlNTEwNjFhOTQ2YTllMWQzODEx
YTdlYjI1M2Q4M2Y1YzI3NDBlMjAuLjE3NzNkNTZhZDc2ZTVkY2ViNTFmOTI3Y2RhZDUzN2EyZjll
OWY0ODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dlYWtNYXBC
YXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XZWFrTWFwQmFzZS5j
cHAKQEAgLTY1LDYgKzY1LDExIEBAIHZvaWQgV2Vha01hcEJhc2U6OnZpc2l0Q2hpbGRyZW4oSlND
ZWxsKiBjZWxsLCBTbG90VmlzaXRvciYgdmlzaXRvcikKICAgICB2aXNpdG9yLnJlcG9ydEV4dHJh
TWVtb3J5VmlzaXRlZCh0aGlzT2JqLT5tX21hcC5jYXBhY2l0eSgpICogKHNpemVvZihKU09iamVj
dCopICsgc2l6ZW9mKFdyaXRlQmFycmllcjxVbmtub3duPikpKTsKIH0KIAorSlNWYWx1ZSBXZWFr
TWFwQmFzZTo6Z2V0KEpTT2JqZWN0KiBrZXkpCit7CisgICAgcmV0dXJuIGZhc3RHZXQoa2V5KTsK
K30KKwogdm9pZCBXZWFrTWFwQmFzZTo6c2V0KFZNJiB2bSwgSlNPYmplY3QqIGtleSwgSlNWYWx1
ZSB2YWx1ZSkKIHsKICAgICAvLyBIZXJlIHdlIGZvcmNlIHRoZSB3cml0ZSBiYXJyaWVyIG9uIHRo
ZSBrZXkuCkBAIC03MiwxNCArNzcsNiBAQCB2b2lkIFdlYWtNYXBCYXNlOjpzZXQoVk0mIHZtLCBK
U09iamVjdCoga2V5LCBKU1ZhbHVlIHZhbHVlKQogICAgIHJlc3VsdC5pdGVyYXRvci0+dmFsdWUu
c2V0KHZtLCB0aGlzLCB2YWx1ZSk7CiB9CiAKLUpTVmFsdWUgV2Vha01hcEJhc2U6OmdldChKU09i
amVjdCoga2V5KQotewotICAgIGF1dG8gaXRlciA9IG1fbWFwLmZpbmQoa2V5KTsKLSAgICBpZiAo
aXRlciA9PSBtX21hcC5lbmQoKSkKLSAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci0gICAg
cmV0dXJuIGl0ZXItPnZhbHVlLmdldCgpOwotfQotCiBib29sIFdlYWtNYXBCYXNlOjpyZW1vdmUo
SlNPYmplY3QqIGtleSkKIHsKICAgICByZXR1cm4gbV9tYXAucmVtb3ZlKGtleSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XZWFrTWFwQmFzZS5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2Vha01hcEJhc2UuaAppbmRleCBlM2JjMmFmNDE2ZjRl
MjRiY2Q4Yzg0NWJmMTA5NzVmNWI5NjQwZDU5Li4xZTFlMDFiZjI0MGNhNGFlZmJkYmRmY2UxZDVi
YTljMjg2Nzk1NmM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9X
ZWFrTWFwQmFzZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dlYWtNYXBC
YXNlLmgKQEAgLTM4LDYgKzM4LDggQEAgY2xhc3MgV2Vha01hcEJhc2UgOiBwdWJsaWMgSlNEZXN0
cnVjdGlibGVPYmplY3QgewogCiAgICAgdm9pZCBzZXQoVk0mLCBKU09iamVjdCosIEpTVmFsdWUp
OwogICAgIEpTVmFsdWUgZ2V0KEpTT2JqZWN0Kik7CisgICAgSlNWYWx1ZSBmYXN0R2V0KEpTT2Jq
ZWN0Kik7CisgICAgSlNWYWx1ZSBmYXN0R2V0KEpTT2JqZWN0KiwgaW50MzJfdCBoYXNoKTsKICAg
ICBib29sIHJlbW92ZShKU09iamVjdCopOwogICAgIGJvb2wgY29udGFpbnMoSlNPYmplY3QqKTsK
ICAgICB2b2lkIGNsZWFyKCk7CkBAIC01Nyw2ICs1OSwxOSBAQCBjbGFzcyBXZWFrTWFwQmFzZSA6
IHB1YmxpYyBKU0Rlc3RydWN0aWJsZU9iamVjdCB7CiAgICAgV2Vha01hcEJhc2UoVk0mLCBTdHJ1
Y3R1cmUqKTsKICAgICBzdGF0aWMgdm9pZCBkZXN0cm95KEpTQ2VsbCopOwogCisgICAgdXNpbmcg
S2V5V2l0aEhhc2ggPSBzdGQ6OnBhaXI8SlNPYmplY3QqLCB1bnNpZ25lZD47CisgICAgc3RydWN0
IEhhc2hUcmFuc2xhdG9yIHsKKyAgICAgICAgc3RhdGljIGlubGluZSB1bnNpZ25lZCBoYXNoKGNv
bnN0IEtleVdpdGhIYXNoJiBrZXlXaXRoSGFzaCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0
dXJuIGtleVdpdGhIYXNoLnNlY29uZDsKKyAgICAgICAgfQorCisgICAgICAgIHN0YXRpYyBpbmxp
bmUgYm9vbCBlcXVhbChKU09iamVjdCoga2V5LCBjb25zdCBLZXlXaXRoSGFzaCYga2V5V2l0aEhh
c2gpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBrZXkgPT0ga2V5V2l0aEhhc2guZmly
c3Q7CisgICAgICAgIH0KKyAgICB9OworCiAgICAgY2xhc3MgRGVhZEtleUNsZWFuZXIgOiBwdWJs
aWMgVW5jb25kaXRpb25hbEZpbmFsaXplciwgcHVibGljIFdlYWtSZWZlcmVuY2VIYXJ2ZXN0ZXIg
ewogICAgIHB1YmxpYzoKICAgICAgICAgV2Vha01hcEJhc2UqIHRhcmdldCgpOwpAQCAtNzAsNCAr
ODUsMTkgQEAgY2xhc3MgV2Vha01hcEJhc2UgOiBwdWJsaWMgSlNEZXN0cnVjdGlibGVPYmplY3Qg
ewogICAgIE1hcFR5cGUgbV9tYXA7CiB9OwogCitBTFdBWVNfSU5MSU5FIEpTVmFsdWUgV2Vha01h
cEJhc2U6OmZhc3RHZXQoSlNPYmplY3QqIGtleSkKK3sKKyAgICBpZiAoYXV0byByZXN1bHQgPSBt
X21hcC5mYXN0R2V0KGtleSkpCisgICAgICAgIHJldHVybiByZXN1bHQuZ2V0KCk7CisgICAgcmV0
dXJuIGpzVW5kZWZpbmVkKCk7Cit9CisKK0FMV0FZU19JTkxJTkUgSlNWYWx1ZSBXZWFrTWFwQmFz
ZTo6ZmFzdEdldChKU09iamVjdCoga2V5LCBpbnQzMl90IGhhc2gpCit7CisgICAgS2V5V2l0aEhh
c2gga2V5V2l0aEhhc2ggeyBrZXksIGhhc2ggfTsKKyAgICBpZiAoYXV0byByZXN1bHQgPSBtX21h
cC5mYXN0R2V0PEhhc2hUcmFuc2xhdG9yPihrZXlXaXRoSGFzaCkpCisgICAgICAgIHJldHVybiBy
ZXN1bHQuZ2V0KCk7CisgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Cit9CisKIH0gLy8gbmFtZXNw
YWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2Vha01h
cFByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XZWFrTWFwUHJv
dG90eXBlLmNwcAppbmRleCA4ZmE4NjJlY2RiZmEwMzIyZDg0ZDgwNjIyZmQ5ZmEwODIxZWJlNTA0
Li5iZDYwOTA4ODkzY2UwNGQxYzkyODBkOGQzZDJlNWM1Yzg3ZTg5NzBjIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XZWFrTWFwUHJvdG90eXBlLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XZWFrTWFwUHJvdG90eXBlLmNwcApAQCAtNDYs
MjUgKzQ2LDI1IEBAIHZvaWQgV2Vha01hcFByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZt
LCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQogICAgIHZtLnByb3RvdHlwZU1hcC5hZGRQ
cm90b3R5cGUodGhpcyk7CiAKICAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJ
VElPTih2bS5wcm9wZXJ0eU5hbWVzLT5kZWxldGVLZXl3b3JkLCBwcm90b0Z1bmNXZWFrTWFwRGVs
ZXRlLCBEb250RW51bSwgMSk7Ci0gICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5T
SVRJT04odm0ucHJvcGVydHlOYW1lcy0+Z2V0LCBwcm90b0Z1bmNXZWFrTWFwR2V0LCBEb250RW51
bSwgMSk7CisgICAgSlNDX05BVElWRV9JTlRSSU5TSUNfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lU
SU9OKHZtLnByb3BlcnR5TmFtZXMtPmdldCwgcHJvdG9GdW5jV2Vha01hcEdldCwgRG9udEVudW0s
IDEsIEpTV2Vha01hcEdldEludHJpbnNpYyk7CiAgICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRI
T1VUX1RSQU5TSVRJT04odm0ucHJvcGVydHlOYW1lcy0+aGFzLCBwcm90b0Z1bmNXZWFrTWFwSGFz
LCBEb250RW51bSwgMSk7CiAgICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJ
T04odm0ucHJvcGVydHlOYW1lcy0+c2V0LCBwcm90b0Z1bmNXZWFrTWFwU2V0LCBEb250RW51bSwg
Mik7CiAKICAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1l
cy0+dG9TdHJpbmdUYWdTeW1ib2wsIGpzU3RyaW5nKCZ2bSwgIldlYWtNYXAiKSwgRG9udEVudW0g
fCBSZWFkT25seSk7CiB9CiAKLXN0YXRpYyBKU1dlYWtNYXAqIGdldFdlYWtNYXAoQ2FsbEZyYW1l
KiBjYWxsRnJhbWUsIEpTVmFsdWUgdmFsdWUpCitBTFdBWVNfSU5MSU5FIHN0YXRpYyBKU1dlYWtN
YXAqIGdldFdlYWtNYXAoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEpTVmFsdWUgdmFsdWUpCiB7CiAg
ICAgVk0mIHZtID0gY2FsbEZyYW1lLT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKIAotICAgIGlmICghdmFsdWUuaXNPYmplY3QoKSkgeworICAgIGlmIChV
TkxJS0VMWSghdmFsdWUuaXNPYmplY3QoKSkpIHsKICAgICAgICAgdGhyb3dUeXBlRXJyb3IoY2Fs
bEZyYW1lLCBzY29wZSwgV1RGOjpBU0NJSUxpdGVyYWwoIkNhbGxlZCBXZWFrTWFwIGZ1bmN0aW9u
IG9uIG5vbi1vYmplY3QiKSk7CiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIAotICAg
IGlmIChKU1dlYWtNYXAqIHdlYWtNYXAgPSBqc0R5bmFtaWNDYXN0PEpTV2Vha01hcCo+KHZtLCB2
YWx1ZSkpCi0gICAgICAgIHJldHVybiB3ZWFrTWFwOworICAgIGlmIChMSUtFTFkoaXNKU1dlYWtN
YXAoYXNPYmplY3QodmFsdWUpKSkpCisgICAgICAgIHJldHVybiBqc0Nhc3Q8SlNXZWFrTWFwKj4o
dmFsdWUpOwogCiAgICAgdGhyb3dUeXBlRXJyb3IoY2FsbEZyYW1lLCBzY29wZSwgV1RGOjpBU0NJ
SUxpdGVyYWwoIkNhbGxlZCBXZWFrTWFwIGZ1bmN0aW9uIG9uIGEgbm9uLVdlYWtNYXAgb2JqZWN0
IikpOwogICAgIHJldHVybiBudWxscHRyOwpAQCAtODcsNyArODcsNyBAQCBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIHByb3RvRnVuY1dlYWtNYXBHZXQoQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
CiAgICAgSlNWYWx1ZSBrZXkgPSBjYWxsRnJhbWUtPmFyZ3VtZW50KDApOwogICAgIGlmICgha2V5
LmlzT2JqZWN0KCkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQo
KSk7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShtYXAtPmdldChhc09iamVjdChrZXkpKSk7
CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShtYXAtPmZhc3RHZXQoYXNPYmplY3Qoa2V5KSkp
OwogfQogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHByb3RvRnVuY1dlYWtNYXBIYXMo
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9XZWFrU2V0UHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1dlYWtTZXRQcm90b3R5cGUuY3BwCmluZGV4IDIxMzRkOTg2YmYyM2FlOWYxMWNjNDM3Mjkw
NzQyN2MxZmZhYjY4NWIuLmFhODI0MzA5NWQ1NWE3NTRjODFmZTQ2OTdjZGQ3M2QzMTgzNTdjYTMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dlYWtTZXRQcm90b3R5
cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dlYWtTZXRQcm90b3R5
cGUuY3BwCkBAIC01MSwxOCArNTEsMTggQEAgdm9pZCBXZWFrU2V0UHJvdG90eXBlOjpmaW5pc2hD
cmVhdGlvbihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiAgICAgcHV0RGly
ZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPnRvU3RyaW5nVGFnU3lt
Ym9sLCBqc1N0cmluZygmdm0sICJXZWFrU2V0IiksIERvbnRFbnVtIHwgUmVhZE9ubHkpOwogfQog
Ci1zdGF0aWMgSlNXZWFrU2V0KiBnZXRXZWFrU2V0KENhbGxGcmFtZSogY2FsbEZyYW1lLCBKU1Zh
bHVlIHZhbHVlKQorQUxXQVlTX0lOTElORSBzdGF0aWMgSlNXZWFrU2V0KiBnZXRXZWFrU2V0KENh
bGxGcmFtZSogY2FsbEZyYW1lLCBKU1ZhbHVlIHZhbHVlKQogewogICAgIFZNJiB2bSA9IGNhbGxG
cmFtZS0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAK
LSAgICBpZiAoIXZhbHVlLmlzT2JqZWN0KCkpIHsKKyAgICBpZiAoVU5MSUtFTFkoIXZhbHVlLmlz
T2JqZWN0KCkpKSB7CiAgICAgICAgIHRocm93VHlwZUVycm9yKGNhbGxGcmFtZSwgc2NvcGUsIFdU
Rjo6QVNDSUlMaXRlcmFsKCJDYWxsZWQgV2Vha1NldCBmdW5jdGlvbiBvbiBub24tb2JqZWN0Iikp
OwogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKLSAgICBpZiAoSlNXZWFrU2V0KiB3
ZWFrU2V0ID0ganNEeW5hbWljQ2FzdDxKU1dlYWtTZXQqPih2bSwgdmFsdWUpKQotICAgICAgICBy
ZXR1cm4gd2Vha1NldDsKKyAgICBpZiAoTElLRUxZKGlzSlNXZWFrU2V0KGFzT2JqZWN0KHZhbHVl
KSkpKQorICAgICAgICByZXR1cm4ganNDYXN0PEpTV2Vha1NldCo+KHZhbHVlKTsKIAogICAgIHRo
cm93VHlwZUVycm9yKGNhbGxGcmFtZSwgc2NvcGUsIFdURjo6QVNDSUlMaXRlcmFsKCJDYWxsZWQg
V2Vha1NldCBmdW5jdGlvbiBvbiBhIG5vbi1XZWFrU2V0IG9iamVjdCIpKTsKICAgICByZXR1cm4g
bnVsbHB0cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0hhc2hNYXAuaCBiL1NvdXJjZS9X
VEYvd3RmL0hhc2hNYXAuaAppbmRleCBmYzc3MWI5YTFiMDhmNWNhYzAwNDY2Njc0ZGRlMTA5ZjUz
MDUxNWU3Li5lNjFkZGZkN2ExMGZjNTBkNmJjNDdkZTVhYTFhZmNkYzY2MzZmOWY3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV1RGL3d0Zi9IYXNoTWFwLmgKKysrIGIvU291cmNlL1dURi93dGYvSGFzaE1h
cC5oCkBAIC0xNDQsNiArMTQ0LDcgQEAgY2xhc3MgSGFzaE1hcCBmaW5hbCB7CiAgICAgdGVtcGxh
dGU8dHlwZW5hbWUgSGFzaFRyYW5zbGF0b3IsIHR5cGVuYW1lIFQ+IGNvbnN0X2l0ZXJhdG9yIGZp
bmQoY29uc3QgVCYpIGNvbnN0OwogICAgIHRlbXBsYXRlPHR5cGVuYW1lIEhhc2hUcmFuc2xhdG9y
LCB0eXBlbmFtZSBUPiBib29sIGNvbnRhaW5zKGNvbnN0IFQmKSBjb25zdDsKICAgICB0ZW1wbGF0
ZTx0eXBlbmFtZSBIYXNoVHJhbnNsYXRvciwgdHlwZW5hbWUgVD4gTWFwcGVkUGVla1R5cGUgZ2V0
KGNvbnN0IFQmKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBIYXNoVHJhbnNsYXRvciwg
dHlwZW5hbWUgVD4gTWFwcGVkUGVla1R5cGUgZmFzdEdldChjb25zdCBUJikgY29uc3Q7CiAKICAg
ICAvLyBBbiBhbHRlcm5hdGUgdmVyc2lvbiBvZiBhZGQoKSB0aGF0IGZpbmRzIHRoZSBvYmplY3Qg
YnkgaGFzaGluZyBhbmQgY29tcGFyaW5nCiAgICAgLy8gd2l0aCBzb21lIG90aGVyIHR5cGUsIHRv
IGF2b2lkIHRoZSBjb3N0IG9mIHR5cGUgY29udmVyc2lvbiBpZiB0aGUgb2JqZWN0IGlzIGFscmVh
ZHkKQEAgLTMwNiw2ICszMDcsMTYgQEAgYXV0byBIYXNoTWFwPFQsIFUsIFYsIFcsIFg+OjpnZXQo
Y29uc3QgVFlQRSYgdmFsdWUpIGNvbnN0IC0+IE1hcHBlZFBlZWtUeXBlCiAKIHRlbXBsYXRlPHR5
cGVuYW1lIFQsIHR5cGVuYW1lIFUsIHR5cGVuYW1lIFYsIHR5cGVuYW1lIFcsIHR5cGVuYW1lIFg+
CiB0ZW1wbGF0ZTx0eXBlbmFtZSBIYXNoVHJhbnNsYXRvciwgdHlwZW5hbWUgVFlQRT4KK2F1dG8g
SGFzaE1hcDxULCBVLCBWLCBXLCBYPjo6ZmFzdEdldChjb25zdCBUWVBFJiB2YWx1ZSkgY29uc3Qg
LT4gTWFwcGVkUGVla1R5cGUKK3sKKyAgICBhdXRvKiBlbnRyeSA9IGNvbnN0X2Nhc3Q8SGFzaFRh
YmxlVHlwZSY+KG1faW1wbCkudGVtcGxhdGUgaW5saW5lTG9va3VwPEhhc2hNYXBUcmFuc2xhdG9y
QWRhcHRlcjxLZXlWYWx1ZVBhaXJUcmFpdHMsIEhhc2hUcmFuc2xhdG9yPj4odmFsdWUpOworICAg
IGlmICghZW50cnkpCisgICAgICAgIHJldHVybiBNYXBwZWRUcmFpdHM6OnBlZWsoTWFwcGVkVHJh
aXRzOjplbXB0eVZhbHVlKCkpOworICAgIHJldHVybiBNYXBwZWRUcmFpdHM6OnBlZWsoZW50cnkt
PnZhbHVlKTsKK30KKwordGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVSwgdHlwZW5hbWUg
ViwgdHlwZW5hbWUgVywgdHlwZW5hbWUgWD4KK3RlbXBsYXRlPHR5cGVuYW1lIEhhc2hUcmFuc2xh
dG9yLCB0eXBlbmFtZSBUWVBFPgogaW5saW5lIGJvb2wgSGFzaE1hcDxULCBVLCBWLCBXLCBYPjo6
Y29udGFpbnMoY29uc3QgVFlQRSYgdmFsdWUpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1faW1wbC50
ZW1wbGF0ZSBjb250YWluczxIYXNoTWFwVHJhbnNsYXRvckFkYXB0ZXI8S2V5VmFsdWVQYWlyVHJh
aXRzLCBIYXNoVHJhbnNsYXRvcj4+KHZhbHVlKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvQ2hhbmdl
TG9nIGIvSlNUZXN0cy9DaGFuZ2VMb2cKaW5kZXggY2VkZjM5OGIyYzZjMGJjNDYzYjY1NzllMWUw
N2I0ZDg1NzJlNGM5Yi4uYTc3OGMwNDY2ODE0YmU3NWQ5NDkyNGU3MzBiYTRjODFhZGIyODJlNyAx
MDA2NDQKLS0tIGEvSlNUZXN0cy9DaGFuZ2VMb2cKKysrIGIvSlNUZXN0cy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNSBAQAorMjAxNy0wOC0zMCAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdt
YWlsLmNvbT4KKworICAgICAgICBbREZHXSBPcHRpbWl6ZSBXZWFrTWFwOjpnZXQgYnkgYWRkaW5n
IGludHJpbnNpYyBhbmQgZml4dXAKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE3NjAxMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogbWljcm9iZW5jaG1hcmtzL3dlYWstbWFwLWtleS5qczogQWRkZWQuCisg
ICAgICAgIChhc3NlcnQpOgorICAgICAgICAob2JqZWN0S2V5KToKKyAgICAgICAgKGxldC5zdGFy
dC5EYXRlLm5vdyk6CisKIDIwMTctMDgtMjkgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBn
bWFpbC5jb20+CiAKICAgICAgICAgW0pTQ10gVXNlIHJlaWZ5aW5nIHN5c3RlbSBmb3IgIm5hbWUi
IHByb3BlcnR5IG9mIGJ1aWx0aW4gSlNGdW5jdGlvbgpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9taWNy
b2JlbmNobWFya3Mvd2Vhay1tYXAta2V5LmpzIGIvSlNUZXN0cy9taWNyb2JlbmNobWFya3Mvd2Vh
ay1tYXAta2V5LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdmNTNjZWJjMzdiODA5MDVkNmM3NzFjMGE2MTVhNGI4
ZTdkNzgzMDIKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL21pY3JvYmVuY2htYXJrcy93ZWFr
LW1hcC1rZXkuanMKQEAgLTAsMCArMSwzNCBAQAorZnVuY3Rpb24gYXNzZXJ0KGIpIHsKKyAgICBp
ZiAoIWIpCisgICAgICAgIHRocm93IG5ldyBFcnJvcigiQmFkISIpOworfQorbm9JbmxpbmUoYXNz
ZXJ0KTsKKworbGV0IHdlYWtNYXAgPSBuZXcgV2Vha01hcDsKKworZnVuY3Rpb24gb2JqZWN0S2V5
KG8pIHsKKyAgICByZXR1cm4gd2Vha01hcC5nZXQobyk7Cit9Citub0lubGluZShvYmplY3RLZXkp
OworCitjb25zdCBpdGVycyA9IDMwMDAwMDsKK2xldCBzdGFydCA9IERhdGUubm93KCk7CisKK3sK
KyAgICBsZXQgbyA9IHtmOiAyMH07CisgICAgdmFyIGFycmF5ID0gW107CisgICAgZm9yICh2YXIg
aSA9IDA7IGkgPCAxMDsgaSsrKSB7CisgICAgICAgIGxldCBuZXdPYmplY3QgPSB7IGY6IGkgfTsK
KyAgICAgICAgd2Vha01hcC5zZXQobmV3T2JqZWN0LCBpKTsKKyAgICAgICAgYXJyYXlbaV0gPSBu
ZXdPYmplY3Q7CisgICAgfQorCisgICAgZm9yICh2YXIgaiA9IDA7IGogPCBpdGVyczsgKytqKSB7
CisgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgMTA7IGkrKykKKyAgICAgICAgICAgIGFzc2Vy
dChvYmplY3RLZXkoYXJyYXlbaV0pID09PSBpKTsKKyAgICB9Cit9CisKK2NvbnN0IHZlcmJvc2Ug
PSBmYWxzZTsKK2lmICh2ZXJib3NlKQorICAgIHByaW50KERhdGUubm93KCkgLSBzdGFydCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>319839</attachid>
            <date>2017-09-03 22:37:02 -0700</date>
            <delta_ts>2017-09-10 13:10:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-176010-20170904143700.patch</filename>
            <type>text/plain</type>
            <size>59510</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIxNTY5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
NTYzOTg5ZjMzZTAzMDUzZjdlZDk2MzhjMmJmYWFhOTUwY2JkYzBlLi5hNThjOTVkODNkYTYyYzBj
MjcxMjdiYzBlOTZlOTllNmMzM2E4ZDExIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMTggQEAKKzIwMTctMDktMDMgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFp
bC5jb20+CisKKyAgICAgICAgW0RGR10gT3B0aW1pemUgV2Vha01hcDo6Z2V0IGJ5IGFkZGluZyBp
bnRyaW5zaWMgYW5kIGZpeHVwCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNzYwMTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBJdCByZXZlYWxzIHRoYXQgRW1iZXIuanMgY29uc3VtZXMgMy44JSBvZiBleGVj
dXRpb24gdGltZSBmb3IgV2Vha01hcCNnZXQuCisgICAgICAgIEl0IGlzIHVzZWQgZm9yIG1ldGEg
cHJvcGVydHkgZm9yIG9iamVjdHMgKHNlZSBwZWVrTWV0YSBmdW5jdGlvbiBpbiBFbWJlci5qcyku
CisKKyAgICAgICAgVGhpcyBwYXRjaCBvcHRpbWl6ZXMgV2Vha01hcCNnZXQuCisKKyAgICAgICAg
MS4gV2UgdXNlIGlubGluZUdldCB0byBpbmxpbmUgV2Vha01hcCNnZXQgb3BlcmF0aW9uIGluIHRo
ZSBuYXRpdmUgZnVuY3Rpb24uCisgICAgICAgIFNpbmNlIHRoaXMgbmF0aXZlIGZ1bmN0aW9uIGl0
c2VsZiBpcyB2ZXJ5IHNtYWxsLCB3ZSBzaG91bGQgaW5saW5lIEhhc2hNYXAjZ2V0CisgICAgICAg
IGVudGlyZWx5IGluIHRoaXMgZnVuY3Rpb24uCisKKyAgICAgICAgMi4gV2UgYWRkIEpTV2Vha01h
cFR5cGUgYW5kIEpTV2Vha1NldFR5cGUuIFRoaXMgYWxsb3dzIHVzIHRvIHBlcmZvcm0gYGlzSlNX
ZWFrTWFwKClgCisgICAgICAgIHZlcnkgZmFzdC4gQW5kIHRoaXMgcGF0Y2ggd2lyZXMgdGhpcyB0
byBERkcgYW5kIEZUTCB0byBhZGQgV2Vha01hcE9iamVjdFVzZSBhbmQgV2Vha1NldE9iamVjdFVz
ZQorICAgICAgICB0byBkcm9wIHVubmVjZXNzYXJ5IHR5cGUgY2hlY2tpbmcuIFdlIGFkZCBmaXh1
cCBydWxlcyBmb3IgV2Vha01hcEdldCBERkcgbm9kZSBieSB1c2luZyBXZWFrTWFwT2JqZWN0VXNl
LAorICAgICAgICBPYmplY3RVc2UsIGFuZCBJbnQzMlVzZS4KKworICAgICAgICAzLiBXZSBhZGQg
aW50cmluc2ljIGZvciBXZWFrTWFwI2dldCwgYW5kIGhhbmRsZSBpdCBpbiBERkcgYW5kIEZUTC4g
V2UgdXNlIE1hcEhhc2ggdG8KKyAgICAgICAgY2FsY3VsYXRlIGhhc2ggdmFsdWUgZm9yIHRoZSBr
ZXkncyBPYmplY3QgYW5kIHVzZSB0aGlzIGhhc2ggdmFsdWUgdG8gbG9vayB1cCB2YWx1ZSBmcm9t
CisgICAgICAgIEpTV2Vha01hcCdzIEhhc2hNYXAuIEN1cnJlbnRseSwgd2UganVzdCBjYWxsIHRo
ZSBvcGVyYXRpb25XZWFrTWFwR2V0IGZ1bmN0aW9uIGluIERGRyBhbmQgRlRMLgorICAgICAgICBJ
dCBpcyB3b3J0aCBjb25zaWRlcmluZyB0aGF0IGltcGxlbWVudGluZyB0aGlzIG9wZXJhdGlvbiBl
bnRpcmVseSBpbiBKSVQsIGxpa2UgR2V0TWFwQnVja2V0LgorICAgICAgICBCdXQgYW55d2F5LCB0
aGUgY3VycmVudCBvbmUgYWxyZWFkeSBvcHRpbWl6ZXMgdGhlIHBlcmZvcm1hbmNlLCBzbyB3ZSBs
ZWF2ZSB0aGlzIGZvciB0aGUgc3Vic2VxdWVudAorICAgICAgICBwYXRjaGVzLgorCisgICAgICAg
IFdlIGN1cnJlbnRseSBkbyBub3QgaW1wbGVtZW50IGFueSBvdGhlciBpbnRyaW5zaWNzIChsaWtl
LCBXZWFrTWFwI2hhcywgV2Vha1NldCkgYmVjYXVzZSB0aGV5IGFyZQorICAgICAgICBub3QgdXNl
ZCBpbiBFbWJlci5qcyByaWdodCBub3cuCisKKyAgICAgICAgVGhpcyBwYXRjaCBvcHRpbWl6ZXMg
V2Vha01hcCNnZXQgYnkgNTAlLgorCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBi
YXNlbGluZSAgICAgICAgICAgICAgICAgIHBhdGNoZWQKKworICAgICAgICB3ZWFrLW1hcC1rZXkg
ICAgICAgICA4OC42NDU2Ky0zLjk1NjQgICAgIF4gICAgIDU5LjE1MDIrLTIuMjQwNiAgICAgICAg
XiBkZWZpbml0ZWx5IDEuNDk4N3ggZmFzdGVyCisKKyAgICAgICAgKiBieXRlY29kZS9EaXJlY3RF
dmFsQ29kZUNhY2hlLmg6CisgICAgICAgIChKU0M6OkRpcmVjdEV2YWxDb2RlQ2FjaGU6OnRyeUdl
dCk6CisgICAgICAgICogYnl0ZWNvZGUvU3BlY3VsYXRlZFR5cGUuY3BwOgorICAgICAgICAoSlND
OjpkdW1wU3BlY3VsYXRpb24pOgorICAgICAgICAoSlNDOjpzcGVjdWxhdGlvbkZyb21DbGFzc0lu
Zm8pOgorICAgICAgICAoSlNDOjpzcGVjdWxhdGlvbkZyb21KU1R5cGUpOgorICAgICAgICAoSlND
OjpzcGVjdWxhdGlvbkZyb21TdHJpbmcpOgorICAgICAgICAqIGJ5dGVjb2RlL1NwZWN1bGF0ZWRU
eXBlLmg6CisgICAgICAgICogZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmg6Cisg
ICAgICAgIChKU0M6OkRGRzo6QWJzdHJhY3RJbnRlcnByZXRlcjxBYnN0cmFjdFN0YXRlVHlwZT46
OmV4ZWN1dGVFZmZlY3RzKToKKyAgICAgICAgKiBkZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwOgor
ICAgICAgICAoSlNDOjpERkc6OkJ5dGVDb2RlUGFyc2VyOjpoYW5kbGVJbnRyaW5zaWNDYWxsKToK
KyAgICAgICAgKiBkZmcvREZHQ2xvYmJlcml6ZS5oOgorICAgICAgICAoSlNDOjpERkc6OmNsb2Ji
ZXJpemUpOgorICAgICAgICAqIGRmZy9ERkdEb2VzR0MuY3BwOgorICAgICAgICAoSlNDOjpERkc6
OmRvZXNHQyk6CisgICAgICAgICogZGZnL0RGR0ZpeHVwUGhhc2UuY3BwOgorICAgICAgICAoSlND
OjpERkc6OkZpeHVwUGhhc2U6OmZpeHVwTm9kZSk6CisgICAgICAgICogZGZnL0RGR0hlYXBMb2Nh
dGlvbi5jcHA6CisgICAgICAgIChXVEY6OnByaW50SW50ZXJuYWwpOgorICAgICAgICAqIGRmZy9E
RkdIZWFwTG9jYXRpb24uaDoKKyAgICAgICAgKiBkZmcvREZHTm9kZS5oOgorICAgICAgICAoSlND
OjpERkc6Ok5vZGU6Omhhc0hlYXBQcmVkaWN0aW9uKToKKyAgICAgICAgKiBkZmcvREZHTm9kZVR5
cGUuaDoKKyAgICAgICAgKiBkZmcvREZHT3BlcmF0aW9ucy5jcHA6CisgICAgICAgICogZGZnL0RG
R09wZXJhdGlvbnMuaDoKKyAgICAgICAgKiBkZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhh
c2UuY3BwOgorICAgICAgICAqIGRmZy9ERkdTYWZlVG9FeGVjdXRlLmg6CisgICAgICAgIChKU0M6
OkRGRzo6U2FmZVRvRXhlY3V0ZUVkZ2U6Om9wZXJhdG9yKCkpOgorICAgICAgICAoSlNDOjpERkc6
OnNhZmVUb0V4ZWN1dGUpOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHA6Cisg
ICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZVdlYWtNYXBPYmplY3Qp
OgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGVXZWFrU2V0T2Jq
ZWN0KToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlKToKKyAg
ICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVdlYWtNYXBHZXQpOgorICAg
ICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1
bGF0aXZlSklUOjpjYWxsT3BlcmF0aW9uKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVK
SVQzMl82NC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUp
OgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcDoKKyAgICAgICAgKEpTQzo6
REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZSk6CisgICAgICAgICogZGZnL0RGR1VzZUtpbmQu
Y3BwOgorICAgICAgICAoV1RGOjpwcmludEludGVybmFsKToKKyAgICAgICAgKiBkZmcvREZHVXNl
S2luZC5oOgorICAgICAgICAoSlNDOjpERkc6OnR5cGVGaWx0ZXJGb3IpOgorICAgICAgICAoSlND
OjpERkc6OmlzQ2VsbCk6CisgICAgICAgICogZnRsL0ZUTENhcGFiaWxpdGllcy5jcHA6CisgICAg
ICAgIChKU0M6OkZUTDo6Y2FuQ29tcGlsZSk6CisgICAgICAgICogZnRsL0ZUTExvd2VyREZHVG9C
My5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6OmNvbXBpbGVOb2Rl
KToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6Y29tcGlsZVdlYWtNYXBH
ZXQpOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjpsb3dXZWFrTWFwT2Jq
ZWN0KToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6bG93V2Vha1NldE9i
amVjdCk6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6OnNwZWN1bGF0ZSk6
CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6OnNwZWN1bGF0ZVdlYWtNYXBP
YmplY3QpOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjpzcGVjdWxhdGVX
ZWFrU2V0T2JqZWN0KToKKyAgICAgICAgKiBqaXQvSklUT3BlcmF0aW9ucy5oOgorICAgICAgICAq
IHJ1bnRpbWUvSW50cmluc2ljLmNwcDoKKyAgICAgICAgKEpTQzo6aW50cmluc2ljTmFtZSk6Cisg
ICAgICAgICogcnVudGltZS9JbnRyaW5zaWMuaDoKKyAgICAgICAgKiBydW50aW1lL0pTVHlwZS5o
OgorICAgICAgICAqIHJ1bnRpbWUvSlNXZWFrTWFwLmg6CisgICAgICAgIChKU0M6OmlzSlNXZWFr
TWFwKToKKyAgICAgICAgKiBydW50aW1lL0pTV2Vha1NldC5oOgorICAgICAgICAoSlNDOjppc0pT
V2Vha1NldCk6CisgICAgICAgICogcnVudGltZS9XZWFrTWFwQmFzZS5jcHA6CisgICAgICAgIChK
U0M6OldlYWtNYXBCYXNlOjpnZXQpOgorICAgICAgICAqIHJ1bnRpbWUvV2Vha01hcEJhc2UuaDoK
KyAgICAgICAgKEpTQzo6V2Vha01hcEJhc2U6Okhhc2hUcmFuc2xhdG9yOjpoYXNoKToKKyAgICAg
ICAgKEpTQzo6V2Vha01hcEJhc2U6Okhhc2hUcmFuc2xhdG9yOjplcXVhbCk6CisgICAgICAgIChK
U0M6OldlYWtNYXBCYXNlOjppbmxpbmVHZXQpOgorICAgICAgICAqIHJ1bnRpbWUvV2Vha01hcFBy
b3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OldlYWtNYXBQcm90b3R5cGU6OmZpbmlzaENyZWF0
aW9uKToKKyAgICAgICAgKEpTQzo6Z2V0V2Vha01hcCk6CisgICAgICAgIChKU0M6OnByb3RvRnVu
Y1dlYWtNYXBHZXQpOgorICAgICAgICAqIHJ1bnRpbWUvV2Vha1NldFByb3RvdHlwZS5jcHA6Cisg
ICAgICAgIChKU0M6OmdldFdlYWtTZXQpOgorCiAyMDE3LTA5LTAzICBEYXJpbiBBZGxlciAgPGRh
cmluQGFwcGxlLmNvbT4KIAogICAgICAgICBUcnkgdG8gZml4IFdpbmRvd3MgYnVpbGQuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4
IDdkMjc1M2ZlZjEzMzRhMjg3YzhkMThiZTlmNWVmZTcxNjk4YTY5ZTkuLjBmMzM0MWI0ZTY0ODA5
OTYwNzE1MjJlZDgyODhjNjU3NGViNGZmMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMjAgQEAKIDIwMTctMDkt
MDMgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CiAKKyAgICAgICAgW0RG
R10gT3B0aW1pemUgV2Vha01hcDo6Z2V0IGJ5IGFkZGluZyBpbnRyaW5zaWMgYW5kIGZpeHVwCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzYwMTAKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgaW5saW5l
R2V0IG1ldGhvZCB3aXRoIEhhc2hUcmFuc2xhdG9yLgorCisgICAgICAgICogd3RmL0hhc2hNYXAu
aDoKKyAgICAgICAgKFdURjo6WD46OmlubGluZUdldCBjb25zdCk6CisgICAgICAgIChXVEY6Ok1h
cHBlZFRyYWl0cz46OmlubGluZUdldCBjb25zdCk6CisgICAgICAgIChXVEY6Ok1hcHBlZFRyYWl0
cz46OmZhc3RHZXQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIHd0Zi9Mb2dnaW5nSGFzaE1h
cC5oOgorCisyMDE3LTA5LTAzICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29t
PgorCiAgICAgICAgIFtXVEZdIEFkZCBDKyswMyBhbGxvY2F0b3IgaW50ZXJmYWNlIGZvciBHQ0Mg
PCA2CiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzYz
MDEKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCmluZGV4IDQzNzdhZTc4ZjM4MzlmNjE2NDViNTAwOGRmNmI3YmI3YzBiOGVm
MjIuLmFkZGVmYmI3ZmQ1ZDljNDcxNTViNGI4NjE3ZjQwNDZjMjZkMGJlNTAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
QEAgLTEsNSArMSwxNSBAQAogMjAxNy0wOS0wMyAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVh
QGdtYWlsLmNvbT4KIAorICAgICAgICBbREZHXSBPcHRpbWl6ZSBXZWFrTWFwOjpnZXQgYnkgYWRk
aW5nIGludHJpbnNpYyBhbmQgZml4dXAKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE3NjAxMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxKb2JNYW5hZ2VyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkN1cmxKb2JMaXN0OjpmaW5pc2hKb2JzKToKKworMjAxNy0w
OS0wMyAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KKwogICAgICAgICBT
dHJpbmcjdXRmOCgpIGFsbG9jYXRlcyBuZXcgQ1N0cmluZwogICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc2MzAyCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9EaXJlY3RFdmFsQ29kZUNhY2hlLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvRGlyZWN0RXZhbENvZGVDYWNoZS5oCmluZGV4IGUwNzUzNTdh
OGYzNTFjZDNkY2M3MTRiMTYyMzEyMDBmY2VhNDE5MDMuLjU5NmYyNjg0MGY3YjE3NTcwMTg3ZjE4
ZmI2NzliOGUxYjVmZTkyYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9EaXJlY3RFdmFsQ29kZUNhY2hlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL0RpcmVjdEV2YWxDb2RlQ2FjaGUuaApAQCAtODYsNyArODYsNyBAQCBuYW1lc3BhY2Ug
SlNDIHsKIAogICAgICAgICBEaXJlY3RFdmFsRXhlY3V0YWJsZSogdHJ5R2V0KGNvbnN0IFN0cmlu
ZyYgZXZhbFNvdXJjZSwgQ2FsbFNpdGVJbmRleCBjYWxsU2l0ZUluZGV4KQogICAgICAgICB7Ci0g
ICAgICAgICAgICByZXR1cm4gbV9jYWNoZU1hcC5mYXN0R2V0KENhY2hlS2V5KGV2YWxTb3VyY2Us
IGNhbGxTaXRlSW5kZXgpKS5nZXQoKTsKKyAgICAgICAgICAgIHJldHVybiBtX2NhY2hlTWFwLmlu
bGluZUdldChDYWNoZUtleShldmFsU291cmNlLCBjYWxsU2l0ZUluZGV4KSkuZ2V0KCk7CiAgICAg
ICAgIH0KICAgICAgICAgCiAgICAgICAgIHZvaWQgc2V0KEV4ZWNTdGF0ZSogZXhlYywgSlNDZWxs
KiBvd25lciwgY29uc3QgU3RyaW5nJiBldmFsU291cmNlLCBDYWxsU2l0ZUluZGV4IGNhbGxTaXRl
SW5kZXgsIERpcmVjdEV2YWxFeGVjdXRhYmxlKiBldmFsRXhlY3V0YWJsZSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TcGVjdWxhdGVkVHlwZS5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3BlY3VsYXRlZFR5cGUuY3BwCmluZGV4IGNhMjU5
NDczNzBmODUyMWEwM2YyZDE1ZWY5NWY3MDU0ZWZjNWQwZGYuLmJlOWU2ODAxYTY1NWE5OTgwYmRk
NjJiNDBmZjIyYzU2YzU2YmM0YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9TcGVjdWxhdGVkVHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL1NwZWN1bGF0ZWRUeXBlLmNwcApAQCAtMzUsNiArMzUsOCBAQAogI2luY2x1ZGUgIkpT
RnVuY3Rpb24uaCIKICNpbmNsdWRlICJKU01hcC5oIgogI2luY2x1ZGUgIkpTU2V0LmgiCisjaW5j
bHVkZSAiSlNXZWFrTWFwLmgiCisjaW5jbHVkZSAiSlNXZWFrU2V0LmgiCiAjaW5jbHVkZSAiUHJv
eHlPYmplY3QuaCIKICNpbmNsdWRlICJSZWdFeHBPYmplY3QuaCIKICNpbmNsdWRlICJTY29wZWRB
cmd1bWVudHMuaCIKQEAgLTE4MCw2ICsxODIsMTYgQEAgdm9pZCBkdW1wU3BlY3VsYXRpb24oUHJp
bnRTdHJlYW0mIG91dFN0cmVhbSwgU3BlY3VsYXRlZFR5cGUgdmFsdWUpCiAgICAgICAgICAgICBl
bHNlCiAgICAgICAgICAgICAgICAgaXNUb3AgPSBmYWxzZTsKIAorICAgICAgICAgICAgaWYgKHZh
bHVlICYgU3BlY1dlYWtNYXBPYmplY3QpCisgICAgICAgICAgICAgICAgc3RyT3V0LnByaW50KCJX
ZWFrTWFwT2JqZWN0Iik7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgaXNUb3Ag
PSBmYWxzZTsKKworICAgICAgICAgICAgaWYgKHZhbHVlICYgU3BlY1dlYWtTZXRPYmplY3QpCisg
ICAgICAgICAgICAgICAgc3RyT3V0LnByaW50KCJXZWFrU2V0T2JqZWN0Iik7CisgICAgICAgICAg
ICBlbHNlCisgICAgICAgICAgICAgICAgaXNUb3AgPSBmYWxzZTsKKwogICAgICAgICAgICAgaWYg
KHZhbHVlICYgU3BlY1Byb3h5T2JqZWN0KQogICAgICAgICAgICAgICAgIHN0ck91dC5wcmludCgi
UHJveHlPYmplY3QiKTsKICAgICAgICAgICAgIGVsc2UKQEAgLTQwMiw2ICs0MTQsMTIgQEAgU3Bl
Y3VsYXRlZFR5cGUgc3BlY3VsYXRpb25Gcm9tQ2xhc3NJbmZvKGNvbnN0IENsYXNzSW5mbyogY2xh
c3NJbmZvKQogICAgIGlmIChjbGFzc0luZm8gPT0gSlNTZXQ6OmluZm8oKSkKICAgICAgICAgcmV0
dXJuIFNwZWNTZXRPYmplY3Q7CiAKKyAgICBpZiAoY2xhc3NJbmZvID09IEpTV2Vha01hcDo6aW5m
bygpKQorICAgICAgICByZXR1cm4gU3BlY1dlYWtNYXBPYmplY3Q7CisKKyAgICBpZiAoY2xhc3NJ
bmZvID09IEpTV2Vha1NldDo6aW5mbygpKQorICAgICAgICByZXR1cm4gU3BlY1dlYWtTZXRPYmpl
Y3Q7CisKICAgICBpZiAoY2xhc3NJbmZvID09IFByb3h5T2JqZWN0OjppbmZvKCkpCiAgICAgICAg
IHJldHVybiBTcGVjUHJveHlPYmplY3Q7CiAgICAgCkBAIC01MjAsNiArNTM4LDEwIEBAIFNwZWN1
bGF0ZWRUeXBlIHNwZWN1bGF0aW9uRnJvbUpTVHlwZShKU1R5cGUgdHlwZSkKICAgICAgICAgcmV0
dXJuIFNwZWNNYXBPYmplY3Q7CiAgICAgY2FzZSBKU1NldFR5cGU6CiAgICAgICAgIHJldHVybiBT
cGVjU2V0T2JqZWN0OworICAgIGNhc2UgSlNXZWFrTWFwVHlwZToKKyAgICAgICAgcmV0dXJuIFNw
ZWNXZWFrTWFwT2JqZWN0OworICAgIGNhc2UgSlNXZWFrU2V0VHlwZToKKyAgICAgICAgcmV0dXJu
IFNwZWNXZWFrU2V0T2JqZWN0OwogICAgIGRlZmF1bHQ6CiAgICAgICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOwogICAgIH0KQEAgLTcwMSw2ICs3MjMsMTAgQEAgU3BlY3VsYXRlZFR5cGUgc3BlY3Vs
YXRpb25Gcm9tU3RyaW5nKGNvbnN0IGNoYXIqIHNwZWN1bGF0aW9uKQogICAgICAgICByZXR1cm4g
U3BlY01hcE9iamVjdDsKICAgICBpZiAoIXN0cm5jbXAoc3BlY3VsYXRpb24sICJTcGVjU2V0T2Jq
ZWN0Iiwgc3RybGVuKCJTcGVjU2V0T2JqZWN0IikpKQogICAgICAgICByZXR1cm4gU3BlY1NldE9i
amVjdDsKKyAgICBpZiAoIXN0cm5jbXAoc3BlY3VsYXRpb24sICJTcGVjV2Vha01hcE9iamVjdCIs
IHN0cmxlbigiU3BlY1dlYWtNYXBPYmplY3QiKSkpCisgICAgICAgIHJldHVybiBTcGVjV2Vha01h
cE9iamVjdDsKKyAgICBpZiAoIXN0cm5jbXAoc3BlY3VsYXRpb24sICJTcGVjV2Vha1NldE9iamVj
dCIsIHN0cmxlbigiU3BlY1dlYWtTZXRPYmplY3QiKSkpCisgICAgICAgIHJldHVybiBTcGVjV2Vh
a1NldE9iamVjdDsKICAgICBpZiAoIXN0cm5jbXAoc3BlY3VsYXRpb24sICJTcGVjUHJveHlPYmpl
Y3QiLCBzdHJsZW4oIlNwZWNQcm94eU9iamVjdCIpKSkKICAgICAgICAgcmV0dXJuIFNwZWNQcm94
eU9iamVjdDsKICAgICBpZiAoIXN0cm5jbXAoc3BlY3VsYXRpb24sICJTcGVjRGVyaXZlZEFycmF5
Iiwgc3RybGVuKCJTcGVjRGVyaXZlZEFycmF5IikpKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL1NwZWN1bGF0ZWRUeXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvU3BlY3VsYXRlZFR5cGUuaAppbmRleCBiZTg5MmYyNjlhNWIxYjRkMjMzYTZm
YjMwZDZiMThmNTYyNGRjMDgyLi43NWU0NDJkNzkzM2ZkNWFmZGNmNGViYTUwNjZlMDZhMjNmMmM1
Y2EyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3BlY3VsYXRl
ZFR5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3BlY3VsYXRlZFR5
cGUuaApAQCAtNTgsMjYgKzU4LDI4IEBAIHN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVj
U3RyaW5nT2JqZWN0ICAgICAgID0gMXVsbCA8PCAxNDsgLy8gSXQncyBkZWZpbml0CiBzdGF0aWMg
Y29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY1JlZ0V4cE9iamVjdCAgICAgICA9IDF1bGwgPDwgMTU7
IC8vIEl0J3MgZGVmaW5pdGVseSBhIFJlZ0V4cE9iamVjdCAoYW5kIG5vdCBhbnkgc3ViY2xhc3Mg
b2YgUmVnRXhwT2JqZWN0KS4KIHN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjTWFwT2Jq
ZWN0ICAgICAgICAgID0gMXVsbCA8PCAxNjsgLy8gSXQncyBkZWZpbml0ZWx5IGEgTWFwIG9iamVj
dCBvciBvbmUgb2YgaXRzIHN1YmNsYXNzZXMuCiBzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUg
U3BlY1NldE9iamVjdCAgICAgICAgICA9IDF1bGwgPDwgMTc7IC8vIEl0J3MgZGVmaW5pdGVseSBh
IFNldCBvYmplY3Qgb3Igb25lIG9mIGl0cyBzdWJjbGFzc2VzLgotc3RhdGljIGNvbnN0IFNwZWN1
bGF0ZWRUeXBlIFNwZWNQcm94eU9iamVjdCAgICAgICAgPSAxdWxsIDw8IDE4OyAvLyBJdCdzIGRl
ZmluaXRlbHkgYSBQcm94eSBvYmplY3Qgb3Igb25lIG9mIGl0cyBzdWJjbGFzc2VzLgotc3RhdGlj
IGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNEZXJpdmVkQXJyYXkgICAgICAgPSAxdWxsIDw8IDE5
OyAvLyBJdCdzIGRlZmluaXRlbHkgYSBEZXJpdmVkQXJyYXkgb2JqZWN0Lgotc3RhdGljIGNvbnN0
IFNwZWN1bGF0ZWRUeXBlIFNwZWNPYmplY3RPdGhlciAgICAgICAgPSAxdWxsIDw8IDIwOyAvLyBJ
dCdzIGRlZmluaXRlbHkgYW4gb2JqZWN0IGJ1dCBub3QgSlNGaW5hbE9iamVjdCwgSlNBcnJheSwg
b3IgSlNGdW5jdGlvbi4KLXN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjT2JqZWN0ICAg
ICAgICAgICAgID0gU3BlY0ZpbmFsT2JqZWN0IHwgU3BlY0FycmF5IHwgU3BlY0Z1bmN0aW9uIHwg
U3BlY1R5cGVkQXJyYXlWaWV3IHwgU3BlY0RpcmVjdEFyZ3VtZW50cyB8IFNwZWNTY29wZWRBcmd1
bWVudHMgfCBTcGVjU3RyaW5nT2JqZWN0IHwgU3BlY1JlZ0V4cE9iamVjdCB8IFNwZWNNYXBPYmpl
Y3QgfCBTcGVjU2V0T2JqZWN0IHwgU3BlY1Byb3h5T2JqZWN0IHwgU3BlY0Rlcml2ZWRBcnJheSB8
IFNwZWNPYmplY3RPdGhlcjsgLy8gQml0bWFzayB1c2VkIGZvciB0ZXN0aW5nIGZvciBhbnkga2lu
ZCBvZiBvYmplY3QgcHJlZGljdGlvbi4KLXN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVj
U3RyaW5nSWRlbnQgICAgICAgID0gMXVsbCA8PCAyMTsgLy8gSXQncyBkZWZpbml0ZWx5IGEgSlNT
dHJpbmcsIGFuZCBpdCdzIGFuIGlkZW50aWZpZXIuCi1zdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5
cGUgU3BlY1N0cmluZ1ZhciAgICAgICAgICA9IDF1bGwgPDwgMjI7IC8vIEl0J3MgZGVmaW5pdGVs
eSBhIEpTU3RyaW5nLCBhbmQgaXQncyBub3QgYW4gaWRlbnRpZmllci4KK3N0YXRpYyBjb25zdCBT
cGVjdWxhdGVkVHlwZSBTcGVjV2Vha01hcE9iamVjdCAgICAgID0gMXVsbCA8PCAxODsgLy8gSXQn
cyBkZWZpbml0ZWx5IGEgV2Vha01hcCBvYmplY3Qgb3Igb25lIG9mIGl0cyBzdWJjbGFzc2VzLgor
c3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNXZWFrU2V0T2JqZWN0ICAgICAgPSAxdWxs
IDw8IDE5OyAvLyBJdCdzIGRlZmluaXRlbHkgYSBXZWFrU2V0IG9iamVjdCBvciBvbmUgb2YgaXRz
IHN1YmNsYXNzZXMuCitzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY1Byb3h5T2JqZWN0
ICAgICAgICA9IDF1bGwgPDwgMjA7IC8vIEl0J3MgZGVmaW5pdGVseSBhIFByb3h5IG9iamVjdCBv
ciBvbmUgb2YgaXRzIHN1YmNsYXNzZXMuCitzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3Bl
Y0Rlcml2ZWRBcnJheSAgICAgICA9IDF1bGwgPDwgMjE7IC8vIEl0J3MgZGVmaW5pdGVseSBhIERl
cml2ZWRBcnJheSBvYmplY3QuCitzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY09iamVj
dE90aGVyICAgICAgICA9IDF1bGwgPDwgMjI7IC8vIEl0J3MgZGVmaW5pdGVseSBhbiBvYmplY3Qg
YnV0IG5vdCBKU0ZpbmFsT2JqZWN0LCBKU0FycmF5LCBvciBKU0Z1bmN0aW9uLgorc3RhdGljIGNv
bnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNPYmplY3QgICAgICAgICAgICAgPSBTcGVjRmluYWxPYmpl
Y3QgfCBTcGVjQXJyYXkgfCBTcGVjRnVuY3Rpb24gfCBTcGVjVHlwZWRBcnJheVZpZXcgfCBTcGVj
RGlyZWN0QXJndW1lbnRzIHwgU3BlY1Njb3BlZEFyZ3VtZW50cyB8IFNwZWNTdHJpbmdPYmplY3Qg
fCBTcGVjUmVnRXhwT2JqZWN0IHwgU3BlY01hcE9iamVjdCB8IFNwZWNTZXRPYmplY3QgfCBTcGVj
V2Vha01hcE9iamVjdCB8IFNwZWNXZWFrU2V0T2JqZWN0IHwgU3BlY1Byb3h5T2JqZWN0IHwgU3Bl
Y0Rlcml2ZWRBcnJheSB8IFNwZWNPYmplY3RPdGhlcjsgLy8gQml0bWFzayB1c2VkIGZvciB0ZXN0
aW5nIGZvciBhbnkga2luZCBvZiBvYmplY3QgcHJlZGljdGlvbi4KK3N0YXRpYyBjb25zdCBTcGVj
dWxhdGVkVHlwZSBTcGVjU3RyaW5nSWRlbnQgICAgICAgID0gMXVsbCA8PCAyMzsgLy8gSXQncyBk
ZWZpbml0ZWx5IGEgSlNTdHJpbmcsIGFuZCBpdCdzIGFuIGlkZW50aWZpZXIuCitzdGF0aWMgY29u
c3QgU3BlY3VsYXRlZFR5cGUgU3BlY1N0cmluZ1ZhciAgICAgICAgICA9IDF1bGwgPDwgMjQ7IC8v
IEl0J3MgZGVmaW5pdGVseSBhIEpTU3RyaW5nLCBhbmQgaXQncyBub3QgYW4gaWRlbnRpZmllci4K
IHN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjU3RyaW5nICAgICAgICAgICAgID0gU3Bl
Y1N0cmluZ0lkZW50IHwgU3BlY1N0cmluZ1ZhcjsgLy8gSXQncyBkZWZpbml0ZWx5IGEgSlNTdHJp
bmcuCi1zdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY1N5bWJvbCAgICAgICAgICAgICA9
IDF1bGwgPDwgMjM7IC8vIEl0J3MgZGVmaW5pdGVseSBhIFN5bWJvbC4KLXN0YXRpYyBjb25zdCBT
cGVjdWxhdGVkVHlwZSBTcGVjQ2VsbE90aGVyICAgICAgICAgID0gMXVsbCA8PCAyNDsgLy8gSXQn
cyBkZWZpbml0ZWx5IGEgSlNDZWxsIGJ1dCBub3QgYSBzdWJjbGFzcyBvZiBKU09iamVjdCBhbmQg
ZGVmaW5pdGVseSBub3QgYSBKU1N0cmluZyBvciBhIFN5bWJvbC4KK3N0YXRpYyBjb25zdCBTcGVj
dWxhdGVkVHlwZSBTcGVjU3ltYm9sICAgICAgICAgICAgID0gMXVsbCA8PCAyNTsgLy8gSXQncyBk
ZWZpbml0ZWx5IGEgU3ltYm9sLgorc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNDZWxs
T3RoZXIgICAgICAgICAgPSAxdWxsIDw8IDI2OyAvLyBJdCdzIGRlZmluaXRlbHkgYSBKU0NlbGwg
YnV0IG5vdCBhIHN1YmNsYXNzIG9mIEpTT2JqZWN0IGFuZCBkZWZpbml0ZWx5IG5vdCBhIEpTU3Ry
aW5nIG9yIGEgU3ltYm9sLgogc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNDZWxsICAg
ICAgICAgICAgICAgPSBTcGVjT2JqZWN0IHwgU3BlY1N0cmluZyB8IFNwZWNTeW1ib2wgfCBTcGVj
Q2VsbE90aGVyOyAvLyBJdCdzIGRlZmluaXRlbHkgYSBKU0NlbGwuCi1zdGF0aWMgY29uc3QgU3Bl
Y3VsYXRlZFR5cGUgU3BlY0Jvb2xJbnQzMiAgICAgICAgICA9IDF1bGwgPDwgMjU7IC8vIEl0J3Mg
ZGVmaW5pdGVseSBhbiBJbnQzMiB3aXRoIHZhbHVlIDAgb3IgMS4KLXN0YXRpYyBjb25zdCBTcGVj
dWxhdGVkVHlwZSBTcGVjTm9uQm9vbEludDMyICAgICAgID0gMXVsbCA8PCAyNjsgLy8gSXQncyBk
ZWZpbml0ZWx5IGFuIEludDMyIHdpdGggdmFsdWUgb3RoZXIgdGhhbiAwIG9yIDEuCitzdGF0aWMg
Y29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0Jvb2xJbnQzMiAgICAgICAgICA9IDF1bGwgPDwgMjc7
IC8vIEl0J3MgZGVmaW5pdGVseSBhbiBJbnQzMiB3aXRoIHZhbHVlIDAgb3IgMS4KK3N0YXRpYyBj
b25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjTm9uQm9vbEludDMyICAgICAgID0gMXVsbCA8PCAyODsg
Ly8gSXQncyBkZWZpbml0ZWx5IGFuIEludDMyIHdpdGggdmFsdWUgb3RoZXIgdGhhbiAwIG9yIDEu
CiBzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0ludDMyT25seSAgICAgICAgICA9IFNw
ZWNCb29sSW50MzIgfCBTcGVjTm9uQm9vbEludDMyOyAvLyBJdCdzIGRlZmluaXRlbHkgYW4gSW50
MzIuCi1zdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0ludDUyT25seSAgICAgICAgICA9
IDF1bGwgPDwgMjc7IC8vIEl0J3MgZGVmaW5pdGVseSBhbiBJbnQ1MiBhbmQgd2UgaW50ZW5kIGl0
IHRvIHVuYm94IGl0LiBJdCdzIGFsc28gZGVmaW5pdGVseSBub3QgYW4gSW50MzIuCitzdGF0aWMg
Y29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0ludDUyT25seSAgICAgICAgICA9IDF1bGwgPDwgMjk7
IC8vIEl0J3MgZGVmaW5pdGVseSBhbiBJbnQ1MiBhbmQgd2UgaW50ZW5kIGl0IHRvIHVuYm94IGl0
LiBJdCdzIGFsc28gZGVmaW5pdGVseSBub3QgYW4gSW50MzIuCiBzdGF0aWMgY29uc3QgU3BlY3Vs
YXRlZFR5cGUgU3BlY0FueUludCAgICAgICAgICAgICA9IFNwZWNJbnQzMk9ubHkgfCBTcGVjSW50
NTJPbmx5OyAvLyBJdCdzIHNvbWV0aGluZyB0aGF0IHdlIGNhbiBkbyBtYWNoaW5lIGludCBhcml0
aG1ldGljIG9uLgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNBbnlJbnRBc0RvdWJs
ZSAgICAgPSAxdWxsIDw8IDI4OyAvLyBJdCdzIGRlZmluaXRlbHkgYW4gSW50NTIgYW5kIGl0J3Mg
aW5zaWRlIGEgZG91YmxlLgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNOb25JbnRB
c0RvdWJsZSAgICAgPSAxdWxsIDw8IDI5OyAvLyBJdCdzIGRlZmluaXRlbHkgbm90IGFuIEludDUy
IGJ1dCBpdCdzIGEgcmVhbCBudW1iZXIgYW5kIGl0J3MgYSBkb3VibGUuCitzdGF0aWMgY29uc3Qg
U3BlY3VsYXRlZFR5cGUgU3BlY0FueUludEFzRG91YmxlICAgICA9IDF1bGwgPDwgMzA7IC8vIEl0
J3MgZGVmaW5pdGVseSBhbiBJbnQ1MiBhbmQgaXQncyBpbnNpZGUgYSBkb3VibGUuCitzdGF0aWMg
Y29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY05vbkludEFzRG91YmxlICAgICA9IDF1bGwgPDwgMzE7
IC8vIEl0J3MgZGVmaW5pdGVseSBub3QgYW4gSW50NTIgYnV0IGl0J3MgYSByZWFsIG51bWJlciBh
bmQgaXQncyBhIGRvdWJsZS4KIHN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjRG91Ymxl
UmVhbCAgICAgICAgID0gU3BlY05vbkludEFzRG91YmxlIHwgU3BlY0FueUludEFzRG91YmxlOyAv
LyBJdCdzIGRlZmluaXRlbHkgYSBub24tTmFOIGRvdWJsZS4KLXN0YXRpYyBjb25zdCBTcGVjdWxh
dGVkVHlwZSBTcGVjRG91YmxlUHVyZU5hTiAgICAgID0gMXVsbCA8PCAzMDsgLy8gSXQncyBkZWZp
bml0ZWx5IGEgTmFOIHRoYXQgaXMgc2FmZSB0byB0YWcgKGkuZS4gcHVyZSkuCi1zdGF0aWMgY29u
c3QgU3BlY3VsYXRlZFR5cGUgU3BlY0RvdWJsZUltcHVyZU5hTiAgICA9IDF1bGwgPDwgMzE7IC8v
IEl0J3MgZGVmaW5pdGVseSBhIE5hTiB0aGF0IGlzIHVuc2FmZSB0byB0YWcgKGkuZS4gaW1wdXJl
KS4KK3N0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjRG91YmxlUHVyZU5hTiAgICAgID0g
MXVsbCA8PCAzMjsgLy8gSXQncyBkZWZpbml0ZWx5IGEgTmFOIHRoYXQgaXMgc2FmZSB0byB0YWcg
KGkuZS4gcHVyZSkuCitzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0RvdWJsZUltcHVy
ZU5hTiAgICA9IDF1bGwgPDwgMzM7IC8vIEl0J3MgZGVmaW5pdGVseSBhIE5hTiB0aGF0IGlzIHVu
c2FmZSB0byB0YWcgKGkuZS4gaW1wdXJlKS4KIHN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBT
cGVjRG91YmxlTmFOICAgICAgICAgID0gU3BlY0RvdWJsZVB1cmVOYU4gfCBTcGVjRG91YmxlSW1w
dXJlTmFOOyAvLyBJdCdzIGRlZmluaXRlbHkgc29tZSBraW5kIG9mIE5hTi4KIHN0YXRpYyBjb25z
dCBTcGVjdWxhdGVkVHlwZSBTcGVjQnl0ZWNvZGVEb3VibGUgICAgID0gU3BlY0RvdWJsZVJlYWwg
fCBTcGVjRG91YmxlUHVyZU5hTjsgLy8gSXQncyBlaXRoZXIgYSBub24tTmFOIG9yIGEgTmFOIGRv
dWJsZSwgYnV0IGl0J3MgZGVmaW5pdGVseSBub3QgaW1wdXJlIE5hTi4KIHN0YXRpYyBjb25zdCBT
cGVjdWxhdGVkVHlwZSBTcGVjRnVsbERvdWJsZSAgICAgICAgID0gU3BlY0RvdWJsZVJlYWwgfCBT
cGVjRG91YmxlTmFOOyAvLyBJdCdzIGVpdGhlciBhIG5vbi1OYU4gb3IgYSBOYU4gZG91YmxlLgpA
QCAtODUsMTIgKzg3LDEyIEBAIHN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjQnl0ZWNv
ZGVSZWFsTnVtYmVyID0gU3BlY0ludDMyT25seSB8IFNwZWNEb3VibGVSCiBzdGF0aWMgY29uc3Qg
U3BlY3VsYXRlZFR5cGUgU3BlY0Z1bGxSZWFsTnVtYmVyICAgICA9IFNwZWNBbnlJbnQgfCBTcGVj
RG91YmxlUmVhbDsgLy8gSXQncyBlaXRoZXIgYW4gSW50MzIgb3IgYSBEb3VibGVSZWFsLCBvciBh
IEludDUyLgogc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNCeXRlY29kZU51bWJlciAg
ICAgPSBTcGVjSW50MzJPbmx5IHwgU3BlY0J5dGVjb2RlRG91YmxlOyAvLyBJdCdzIGVpdGhlciBh
biBJbnQzMiBvciBhIERvdWJsZSwgYW5kIHRoZSBEb3VibGUgY2Fubm90IGJlIGFuIGltcHVyZSBO
YU4uCiBzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0Z1bGxOdW1iZXIgICAgICAgICA9
IFNwZWNBbnlJbnQgfCBTcGVjRnVsbERvdWJsZTsgLy8gSXQncyBlaXRoZXIgYW4gSW50MzIsIElu
dDUyLCBvciBhIERvdWJsZSwgYW5kIHRoZSBEb3VibGUgY2FuIGJlIGltcHVyZSBOYU4uCi1zdGF0
aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0Jvb2xlYW4gICAgICAgICAgICA9IDF1bGwgPDwg
MzI7IC8vIEl0J3MgZGVmaW5pdGVseSBhIEJvb2xlYW4uCi1zdGF0aWMgY29uc3QgU3BlY3VsYXRl
ZFR5cGUgU3BlY090aGVyICAgICAgICAgICAgICA9IDF1bGwgPDwgMzM7IC8vIEl0J3MgZGVmaW5p
dGVseSBlaXRoZXIgTnVsbCBvciBVbmRlZmluZWQuCitzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5
cGUgU3BlY0Jvb2xlYW4gICAgICAgICAgICA9IDF1bGwgPDwgMzQ7IC8vIEl0J3MgZGVmaW5pdGVs
eSBhIEJvb2xlYW4uCitzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY090aGVyICAgICAg
ICAgICAgICA9IDF1bGwgPDwgMzU7IC8vIEl0J3MgZGVmaW5pdGVseSBlaXRoZXIgTnVsbCBvciBV
bmRlZmluZWQuCiBzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY01pc2MgICAgICAgICAg
ICAgICA9IFNwZWNCb29sZWFuIHwgU3BlY090aGVyOyAvLyBJdCdzIGRlZmluaXRlbHkgZWl0aGVy
IGEgYm9vbGVhbiwgTnVsbCwgb3IgVW5kZWZpbmVkLgogc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRU
eXBlIFNwZWNIZWFwVG9wICAgICAgICAgICAgPSBTcGVjQ2VsbCB8IFNwZWNCeXRlY29kZU51bWJl
ciB8IFNwZWNNaXNjOyAvLyBJdCBjYW4gYmUgYW55IG9mIHRoZSBhYm92ZSwgZXhjZXB0IGZvciBT
cGVjSW50NTJPbmx5IGFuZCBTcGVjRG91YmxlSW1wdXJlTmFOLgogc3RhdGljIGNvbnN0IFNwZWN1
bGF0ZWRUeXBlIFNwZWNQcmltaXRpdmUgICAgICAgICAgPSBTcGVjU3RyaW5nIHwgU3BlY1N5bWJv
bCB8IFNwZWNCeXRlY29kZU51bWJlciB8IFNwZWNNaXNjOyAvLyBJdCdzIGFueSBub24tT2JqZWN0
IEpTVmFsdWUuCi1zdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0VtcHR5ICAgICAgICAg
ICAgICA9IDF1bGwgPDwgMzQ7IC8vIEl0J3MgZGVmaW5pdGVseSBhbiBlbXB0eSB2YWx1ZSBtYXJr
ZXIuCitzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0VtcHR5ICAgICAgICAgICAgICA9
IDF1bGwgPDwgMzY7IC8vIEl0J3MgZGVmaW5pdGVseSBhbiBlbXB0eSB2YWx1ZSBtYXJrZXIuCiBz
dGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0J5dGVjb2RlVG9wICAgICAgICA9IFNwZWNI
ZWFwVG9wIHwgU3BlY0VtcHR5OyAvLyBJdCBjYW4gYmUgYW55IG9mIHRoZSBhYm92ZSwgZXhjZXB0
IGZvciBTcGVjSW50NTJPbmx5IGFuZCBTcGVjRG91YmxlSW1wdXJlTmFOLiBDb3JyZXNwb25kcyB0
byB3aGF0IGNvdWxkIGJlIGZvdW5kIGluIGEgYnl0ZWNvZGUgbG9jYWwuCiBzdGF0aWMgY29uc3Qg
U3BlY3VsYXRlZFR5cGUgU3BlY0Z1bGxUb3AgICAgICAgICAgICA9IFNwZWNCeXRlY29kZVRvcCB8
IFNwZWNGdWxsTnVtYmVyOyAvLyBJdCBjYW4gYmUgYW55dGhpbmcgdGhhdCBieXRlY29kZSBjb3Vs
ZCBzZWUgcGx1cyBleG90aWMgZW5jb2RpbmdzIG9mIG51bWJlcnMuCiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMu
aAppbmRleCBhMWEyMTZhMjgxOWI1MzMyNjI0N2MzODAyODVjOThkY2EyMGZiNDU0Li5lNWExY2I1
YzQ3MmE0YmVmMjA5YjM5ZTZlODY4YmEzNTdmM2JmNjc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oCkBA
IC0xMDczLDYgKzEwNzMsMTAgQEAgYm9vbCBBYnN0cmFjdEludGVycHJldGVyPEFic3RyYWN0U3Rh
dGVUeXBlPjo6ZXhlY3V0ZUVmZmVjdHModW5zaWduZWQgY2xvYmJlckxpbWkKICAgICAgICAgfQog
ICAgICAgICBicmVhazsKIAorICAgIGNhc2UgV2Vha01hcEdldDoKKyAgICAgICAgZm9yTm9kZShu
b2RlKS5tYWtlQnl0ZWNvZGVUb3AoKTsKKyAgICAgICAgYnJlYWs7CisKICAgICBjYXNlIElzRW1w
dHk6CiAgICAgY2FzZSBJc1VuZGVmaW5lZDoKICAgICBjYXNlIElzQm9vbGVhbjoKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKaW5kZXggMjc5YzE1
MTFhZjM3ZjE1N2E5NjI2ZWFiYjdkZDJlNzVmMTJjYTgwYi4uYTE3YmYxMzM0NTMyNGY1ODQ2Yjgy
M2Q3NGE4MmQ5NDUxMGFlZjE5MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdCeXRlQ29kZVBhcnNlci5jcHAKQEAgLTI5NzUsNiArMjk3NSwyMiBAQCBib29sIEJ5dGVDb2Rl
UGFyc2VyOjpoYW5kbGVJbnRyaW5zaWNDYWxsKE5vZGUqIGNhbGxlZSwgaW50IHJlc3VsdE9wZXJh
bmQsIEludHJpbgogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKKyAgICBjYXNlIEpTV2Vh
a01hcEdldEludHJpbnNpYzogeworICAgICAgICBpZiAoYXJndW1lbnRDb3VudEluY2x1ZGluZ1Ro
aXMgIT0gMikKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICBpZiAobV9pbmxp
bmVTdGFja1RvcC0+bV9leGl0UHJvZmlsZS5oYXNFeGl0U2l0ZShtX2N1cnJlbnRJbmRleCwgQmFk
VHlwZSkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgaW5zZXJ0Q2hlY2tz
KCk7CisgICAgICAgIE5vZGUqIG1hcCA9IGdldCh2aXJ0dWFsUmVnaXN0ZXJGb3JBcmd1bWVudCgw
LCByZWdpc3Rlck9mZnNldCkpOworICAgICAgICBOb2RlKiBrZXkgPSBnZXQodmlydHVhbFJlZ2lz
dGVyRm9yQXJndW1lbnQoMSwgcmVnaXN0ZXJPZmZzZXQpKTsKKyAgICAgICAgTm9kZSogaGFzaCA9
IGFkZFRvR3JhcGgoTWFwSGFzaCwga2V5KTsKKyAgICAgICAgTm9kZSogcmVzdWx0ID0gYWRkVG9H
cmFwaChXZWFrTWFwR2V0LCBPcEluZm8oKSwgT3BJbmZvKHByZWRpY3Rpb24pLCBtYXAsIGtleSwg
aGFzaCk7CisgICAgICAgIHNldChWaXJ0dWFsUmVnaXN0ZXIocmVzdWx0T3BlcmFuZCksIHJlc3Vs
dCk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKwogICAgIGNhc2UgSGFzT3duUHJvcGVy
dHlJbnRyaW5zaWM6IHsKICAgICAgICAgaWYgKGFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzICE9
IDIpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHQ2xvYmJlcml6ZS5oCmluZGV4IDY2OTFiZjlhNDZjMTU4OTljZGI0YzFiMmExOTE2ZDYyMjU0
ZDhkMmEuLmZjNTNkYzYxZDliMGYzZmE0YjJiMDM2M2FhN2E2NTZmYjMzMzZlMTcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oCkBAIC0xNTQ0LDYgKzE1NDQsNyBA
QCB2b2lkIGNsb2JiZXJpemUoR3JhcGgmIGdyYXBoLCBOb2RlKiBub2RlLCBjb25zdCBSZWFkRnVu
Y3RvciYgcmVhZCwgY29uc3QgV3JpdGVGdQogICAgIGNhc2UgTWFwSGFzaDoKICAgICAgICAgZGVm
KFB1cmVWYWx1ZShub2RlKSk7CiAgICAgICAgIHJldHVybjsKKwogICAgIGNhc2UgR2V0TWFwQnVj
a2V0OiB7CiAgICAgICAgIHJlYWQoTWlzY0ZpZWxkcyk7CiAgICAgICAgIEVkZ2UmIG1hcEVkZ2Ug
PSBub2RlLT5jaGlsZDEoKTsKQEAgLTE1NTEsMTIgKzE1NTIsMTQgQEAgdm9pZCBjbG9iYmVyaXpl
KEdyYXBoJiBncmFwaCwgTm9kZSogbm9kZSwgY29uc3QgUmVhZEZ1bmN0b3ImIHJlYWQsIGNvbnN0
IFdyaXRlRnUKICAgICAgICAgZGVmKEhlYXBMb2NhdGlvbihNYXBCdWNrZXRMb2MsIE1pc2NGaWVs
ZHMsIG1hcEVkZ2UsIGtleUVkZ2UpLCBMYXp5Tm9kZShub2RlKSk7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CisKICAgICBjYXNlIEdldE1hcEJ1Y2tldEhlYWQ6IHsKICAgICAgICAgcmVhZChNaXNj
RmllbGRzKTsKICAgICAgICAgRWRnZSYgbWFwRWRnZSA9IG5vZGUtPmNoaWxkMSgpOwogICAgICAg
ICBkZWYoSGVhcExvY2F0aW9uKE1hcEJ1Y2tldEhlYWRMb2MsIE1pc2NGaWVsZHMsIG1hcEVkZ2Up
LCBMYXp5Tm9kZShub2RlKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CisKICAgICBjYXNlIEdl
dE1hcEJ1Y2tldE5leHQ6IHsKICAgICAgICAgcmVhZChNaXNjRmllbGRzKTsKICAgICAgICAgTG9j
YXRpb25LaW5kIGxvY2F0aW9uS2luZCA9IE1hcEJ1Y2tldE1hcE5leHRMb2M7CkBAIC0xNTY2LDEy
ICsxNTY5LDE0IEBAIHZvaWQgY2xvYmJlcml6ZShHcmFwaCYgZ3JhcGgsIE5vZGUqIG5vZGUsIGNv
bnN0IFJlYWRGdW5jdG9yJiByZWFkLCBjb25zdCBXcml0ZUZ1CiAgICAgICAgIGRlZihIZWFwTG9j
YXRpb24obG9jYXRpb25LaW5kLCBNaXNjRmllbGRzLCBidWNrZXRFZGdlKSwgTGF6eU5vZGUobm9k
ZSkpOwogICAgICAgICByZXR1cm47CiAgICAgfQorCiAgICAgY2FzZSBMb2FkS2V5RnJvbU1hcEJ1
Y2tldDogewogICAgICAgICByZWFkKE1pc2NGaWVsZHMpOwogICAgICAgICBFZGdlJiBidWNrZXRF
ZGdlID0gbm9kZS0+Y2hpbGQxKCk7CiAgICAgICAgIGRlZihIZWFwTG9jYXRpb24oTWFwQnVja2V0
S2V5TG9jLCBNaXNjRmllbGRzLCBidWNrZXRFZGdlKSwgTGF6eU5vZGUobm9kZSkpOwogICAgICAg
ICByZXR1cm47CiAgICAgfQorCiAgICAgY2FzZSBMb2FkVmFsdWVGcm9tTWFwQnVja2V0OiB7CiAg
ICAgICAgIHJlYWQoTWlzY0ZpZWxkcyk7CiAgICAgICAgIEVkZ2UmIGJ1Y2tldEVkZ2UgPSBub2Rl
LT5jaGlsZDEoKTsKQEAgLTE1NzksNiArMTU4NCwxNCBAQCB2b2lkIGNsb2JiZXJpemUoR3JhcGgm
IGdyYXBoLCBOb2RlKiBub2RlLCBjb25zdCBSZWFkRnVuY3RvciYgcmVhZCwgY29uc3QgV3JpdGVG
dQogICAgICAgICByZXR1cm47CiAgICAgfQogCisgICAgY2FzZSBXZWFrTWFwR2V0OiB7CisgICAg
ICAgIHJlYWQoTWlzY0ZpZWxkcyk7CisgICAgICAgIEVkZ2UmIG1hcEVkZ2UgPSBub2RlLT5jaGls
ZDEoKTsKKyAgICAgICAgRWRnZSYga2V5RWRnZSA9IG5vZGUtPmNoaWxkMigpOworICAgICAgICBk
ZWYoSGVhcExvY2F0aW9uKFdlYWtNYXBHZXRMb2MsIE1pc2NGaWVsZHMsIG1hcEVkZ2UsIGtleUVk
Z2UpLCBMYXp5Tm9kZShub2RlKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBjYXNl
IFRvTG93ZXJDYXNlOgogICAgICAgICBkZWYoUHVyZVZhbHVlKG5vZGUpKTsKICAgICAgICAgcmV0
dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEb2VzR0MuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEb2VzR0MuY3BwCmluZGV4IDZkOWQyMjgw
NTBiYmY1MzllYWNhYjllNzAwYjg2MmE5YjI5MGRlNzAuLmVjN2UwNWE1NzhhZjA2ZDY4MzVmMDE5
MDUxM2MzN2YzNDQwNzE3YWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHRG9lc0dDLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RvZXNHQy5j
cHAKQEAgLTE5OCw2ICsxOTgsNyBAQCBib29sIGRvZXNHQyhHcmFwaCYgZ3JhcGgsIE5vZGUqIG5v
ZGUpCiAgICAgY2FzZSBHZXRNYXBCdWNrZXROZXh0OgogICAgIGNhc2UgTG9hZEtleUZyb21NYXBC
dWNrZXQ6CiAgICAgY2FzZSBMb2FkVmFsdWVGcm9tTWFwQnVja2V0OgorICAgIGNhc2UgV2Vha01h
cEdldDoKICAgICBjYXNlIFVucmVhY2hhYmxlOgogICAgIGNhc2UgRXh0cmFjdENhdGNoTG9jYWw6
CiAgICAgY2FzZSBFeHRyYWN0T1NSRW50cnlMb2NhbDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCmluZGV4IGFhMGJlM2NiOTQwYjk1ODg4NjUyNWNlM2M0ZWI0
NWE2MzA4NTFiMTkuLmQxZDhmNGVkZTQwOGFhMzAwMDZlZmZiZmRjNDcwZjAzMTg4YjcxMjEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcApAQCAtMTg0OSw2
ICsxODQ5LDEzIEBAIGNsYXNzIEZpeHVwUGhhc2UgOiBwdWJsaWMgUGhhc2UgewogICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgIH0KIAorICAgICAgICBjYXNlIFdlYWtNYXBHZXQ6IHsKKyAgICAg
ICAgICAgIGZpeEVkZ2U8V2Vha01hcE9iamVjdFVzZT4obm9kZS0+Y2hpbGQxKCkpOworICAgICAg
ICAgICAgZml4RWRnZTxPYmplY3RVc2U+KG5vZGUtPmNoaWxkMigpKTsKKyAgICAgICAgICAgIGZp
eEVkZ2U8SW50MzJVc2U+KG5vZGUtPmNoaWxkMygpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICB9CisKICAgICAgICAgY2FzZSBEZWZpbmVEYXRhUHJvcGVydHk6IHsKICAgICAgICAgICAg
IGZpeEVkZ2U8Q2VsbFVzZT4obV9ncmFwaC52YXJBcmdDaGlsZChub2RlLCAwKSk7CiAgICAgICAg
ICAgICBFZGdlJiBwcm9wZXJ0eUVkZ2UgPSBtX2dyYXBoLnZhckFyZ0NoaWxkKG5vZGUsIDEpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdIZWFwTG9jYXRpb24uY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdIZWFwTG9jYXRpb24uY3BwCmluZGV4IDYw
YmQ1NzI2YmM1OGNiNzQ2OGQ3OGQ1MzY0YmY0NDVmZDhiOTg2NGUuLjRlZDBlNDc2MmE1MWYyODAy
N2M3NmM4YTE0YzBkMmMxOGY5Y2RiNjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHSGVhcExvY2F0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0hlYXBMb2NhdGlvbi5jcHAKQEAgLTE1OSwyNCArMTU5LDM1IEBAIHZvaWQgcHJpbnRJbnRl
cm5hbChQcmludFN0cmVhbSYgb3V0LCBMb2NhdGlvbktpbmQga2luZCkKICAgICBjYXNlIFJlZ0V4
cE9iamVjdExhc3RJbmRleExvYzoKICAgICAgICAgb3V0LnByaW50KCJSZWdFeHBPYmplY3RMYXN0
SW5kZXhMb2MiKTsKICAgICAgICAgcmV0dXJuOworCiAgICAgY2FzZSBNYXBCdWNrZXRMb2M6CiAg
ICAgICAgIG91dC5wcmludCgiTWFwQnVja2V0TG9jIik7CiAgICAgICAgIHJldHVybjsKKwogICAg
IGNhc2UgTWFwQnVja2V0SGVhZExvYzoKICAgICAgICAgb3V0LnByaW50KCJNYXBCdWNrZXRIZWFk
TG9jIik7CiAgICAgICAgIHJldHVybjsKKwogICAgIGNhc2UgTWFwQnVja2V0S2V5TG9jOgogICAg
ICAgICBvdXQucHJpbnQoIk1hcEJ1Y2tldEtleUxvYyIpOwogICAgICAgICByZXR1cm47CisKICAg
ICBjYXNlIE1hcEJ1Y2tldFZhbHVlTG9jOgogICAgICAgICBvdXQucHJpbnQoIk1hcEJ1Y2tldFZh
bHVlTG9jIik7CiAgICAgICAgIHJldHVybjsKKwogICAgIGNhc2UgTWFwQnVja2V0TWFwTmV4dExv
YzoKICAgICAgICAgb3V0LnByaW50KCJNYXBCdWNrZXRNYXBOZXh0TG9jIik7CiAgICAgICAgIHJl
dHVybjsKKwogICAgIGNhc2UgTWFwQnVja2V0U2V0TmV4dExvYzoKICAgICAgICAgb3V0LnByaW50
KCJNYXBCdWNrZXRTZXROZXh0TG9jIik7CiAgICAgICAgIHJldHVybjsKKworICAgIGNhc2UgV2Vh
a01hcEdldExvYzoKKyAgICAgICAgb3V0LnByaW50KCJXZWFrTWFwR2V0TG9jIik7CisgICAgICAg
IHJldHVybjsKKwogICAgIGNhc2UgRE9NU3RhdGVMb2M6CiAgICAgICAgIG91dC5wcmludCgiRE9N
U3RhdGVMb2MiKTsKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdIZWFwTG9jYXRpb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHSGVhcExvY2F0aW9uLmgKaW5kZXggYjgyYzkyMmRhMjdmN2UwMGYyN2I1YWEzMDc3ZWU0MDU1
NTE4ZWVjNC4uNjc2NTY1Y2ZiZjBkMTMxMjE5OGNkNDE0YjJhM2JhNjc2MGEwYzkzYiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdIZWFwTG9jYXRpb24uaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0hlYXBMb2NhdGlvbi5oCkBAIC02OCw2ICs2OCw3
IEBAIGVudW0gTG9jYXRpb25LaW5kIHsKICAgICBNYXBCdWNrZXRLZXlMb2MsCiAgICAgTWFwQnVj
a2V0TWFwTmV4dExvYywKICAgICBNYXBCdWNrZXRTZXROZXh0TG9jLAorICAgIFdlYWtNYXBHZXRM
b2MsCiAgICAgRE9NU3RhdGVMb2MsCiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR05vZGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZS5o
CmluZGV4IGJlNTc2MmJiNzFiZTA3YWFiNTA3ODVjNDFlY2RiNjA5MWM3MDg5MzAuLjdjOWU2ZDYz
NmZlZjgwNzUyYzExNDk4NDg2ZDJhMmUzOGI3YWQ4MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHTm9kZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHTm9kZS5oCkBAIC0xNTQ1LDYgKzE1NDUsNyBAQCBzdHJ1Y3QgTm9kZSB7CiAgICAgICAgIGNh
c2UgQXRvbWljc1N1YjoKICAgICAgICAgY2FzZSBBdG9taWNzWG9yOgogICAgICAgICBjYXNlIEdl
dER5bmFtaWNWYXI6CisgICAgICAgIGNhc2UgV2Vha01hcEdldDoKICAgICAgICAgICAgIHJldHVy
biB0cnVlOwogICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oCmluZGV4IGU5ZjA3NmM5MzQwZmE0ODg2
YjE5OWI5N2U0MjdhOWIwMGE3NmI3YzYuLjE3NzUyNTVjNzE4ZjI3YmRmYmI0NGJiNmEwOTdkMmVm
ZTEzYTU1ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5
cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVUeXBlLmgKQEAgLTQz
NCw2ICs0MzQsOCBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAgICAgbWFjcm8o
R2V0TWFwQnVja2V0TmV4dCwgTm9kZVJlc3VsdEpTKSBcCiAgICAgbWFjcm8oTG9hZEtleUZyb21N
YXBCdWNrZXQsIE5vZGVSZXN1bHRKUykgXAogICAgIG1hY3JvKExvYWRWYWx1ZUZyb21NYXBCdWNr
ZXQsIE5vZGVSZXN1bHRKUykgXAorICAgIC8qIE5vZGVzIGZvciBKU1dlYWtNYXAgYW5kIEpTV2Vh
a1NldCAqLyBcCisgICAgbWFjcm8oV2Vha01hcEdldCwgTm9kZVJlc3VsdEpTKSBcCiAgICAgXAog
ICAgIG1hY3JvKFRvTG93ZXJDYXNlLCBOb2RlUmVzdWx0SlMpIFwKICAgICAvKiBOb2RlcyBmb3Ig
RE9NIEpJVCAqL1wKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3Bl
cmF0aW9ucy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3Bw
CmluZGV4IDExNjQxNGQwODgxNmZjNGM3N2E0MGEyYmY2NzQxZWUwNjFhYTBmNzUuLjE3YWZhODlh
Njg0MmFhZDNmZThhM2EzNGQwNTVlODFiZDU2MGFmOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcApAQCAtNTUsNiArNTUsNyBAQAogI2luY2x1ZGUgIkpT
TGV4aWNhbEVudmlyb25tZW50LmgiCiAjaW5jbHVkZSAiSlNNYXAuaCIKICNpbmNsdWRlICJKU1Nl
dC5oIgorI2luY2x1ZGUgIkpTV2Vha01hcC5oIgogI2luY2x1ZGUgIk9iamVjdENvbnN0cnVjdG9y
LmgiCiAjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIlBhcnNlSW50LmgiCkBAIC04
MjUsNiArODI2LDEzIEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUmVn
RXhwRXhlY0dlbmVyaWMoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhCiAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShhc1JlZ0V4cE9iamVjdChiYXNlKS0+ZXhlYyhleGVjLCBnbG9iYWxPYmplY3Qs
IGlucHV0KSk7CiB9CiAKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uV2Vh
a01hcEdldChFeGVjU3RhdGUqIGV4ZWMsIEpTQ2VsbCogd2Vha01hcCwgSlNDZWxsKiBvYmplY3Qs
IGludDMyX3QgaGFzaCkKK3sKKyAgICBWTSYgdm0gPSBleGVjLT52bSgpOworICAgIE5hdGl2ZUNh
bGxGcmFtZVRyYWNlciB0cmFjZXIoJnZtLCBleGVjKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGpzQ2FzdDxKU1dlYWtNYXAqPih3ZWFrTWFwKS0+aW5saW5lR2V0KGFzT2JqZWN0KG9iamVj
dCksIGhhc2gpKTsKK30KKwogRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25Q
YXJzZUludE5vUmFkaXhHZW5lcmljKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgdmFs
dWUpCiB7CiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdPcGVyYXRpb25zLmgKaW5kZXggNjYyMjE3YmJkNTMwMDYyYjMyZTk1MzY5ODg1NGUxNWJj
MmYwMTEzYS4uZWRiNWYxMDA5YmViOWM5YmJhMGE4MjNlYjBjZDM0ZTI3MzM0ZWNlYiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmgKQEAgLTEzMSw2ICsxMzEsNyBA
QCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkFycmF5UG9wQW5kUmVjb3Zl
ckxlbmd0aChFeGVjU3RhdGUqLCBKU0FycgogRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBv
cGVyYXRpb25SZWdFeHBFeGVjU3RyaW5nKEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0KiwgUmVn
RXhwT2JqZWN0KiwgSlNTdHJpbmcqKSBXVEZfSU5URVJOQUw7CiBFbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIG9wZXJhdGlvblJlZ0V4cEV4ZWMoRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3Qq
LCBSZWdFeHBPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSkgV1RGX0lOVEVSTkFMOwogRW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25SZWdFeHBFeGVjR2VuZXJpYyhFeGVjU3RhdGUq
LCBKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSkgV1RGX0lO
VEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25XZWFrTWFwR2V0
KEV4ZWNTdGF0ZSosIEpTQ2VsbCosIEpTQ2VsbCosIGludDMyX3QpIFdURl9JTlRFUk5BTDsKIC8v
IFRoZXNlIGNvbXBhcmlzb25zIHJldHVybiBhIGJvb2xlYW4gd2l0aGluIGEgc2l6ZV90IHN1Y2gg
dGhhdCB0aGUgdmFsdWUgaXMgemVybyBleHRlbmRlZCB0byBmaWxsIHRoZSByZWdpc3Rlci4KIHNp
emVfdCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblJlZ0V4cFRlc3RTdHJpbmcoRXhlY1N0YXRlKiwg
SlNHbG9iYWxPYmplY3QqLCBSZWdFeHBPYmplY3QqLCBKU1N0cmluZyopIFdURl9JTlRFUk5BTDsK
IHNpemVfdCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblJlZ0V4cFRlc3QoRXhlY1N0YXRlKiwgSlNH
bG9iYWxPYmplY3QqLCBSZWdFeHBPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSkgV1RGX0lOVEVSTkFM
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJv
cGFnYXRpb25QaGFzZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rp
b25Qcm9wYWdhdGlvblBoYXNlLmNwcAppbmRleCBlNTViMWY3OTIxZjY2NjViZmYwOTdmNmNjOWQy
ZWM1YjI4NWE0NWY2Li40M2E0NTY0NjY0Y2Q2NmY0NjkxZWY5ZTE2NTY3ZGRhMTNlNjQ0MmIxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdh
dGlvblBoYXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rp
b25Qcm9wYWdhdGlvblBoYXNlLmNwcApAQCAtNzIyLDcgKzcyMiw4IEBAIGNsYXNzIFByZWRpY3Rp
b25Qcm9wYWdhdGlvblBoYXNlIDogcHVibGljIFBoYXNlIHsKICAgICAgICAgY2FzZSBUb051bWJl
cjoKICAgICAgICAgY2FzZSBHZXRBcmd1bWVudDoKICAgICAgICAgY2FzZSBDYWxsRE9NR2V0dGVy
OgotICAgICAgICBjYXNlIEdldER5bmFtaWNWYXI6IHsKKyAgICAgICAgY2FzZSBHZXREeW5hbWlj
VmFyOgorICAgICAgICBjYXNlIFdlYWtNYXBHZXQ6IHsKICAgICAgICAgICAgIHNldFByZWRpY3Rp
b24obV9jdXJyZW50Tm9kZS0+Z2V0SGVhcFByZWRpY3Rpb24oKSk7CiAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdT
YWZlVG9FeGVjdXRlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVUb0V4ZWN1
dGUuaAppbmRleCBhZDc2YjMzYjBmYWFmMTg3ZGI0NmEzMDg5MmY0N2ZjYTdlM2I0NDlkLi4zMjcy
MWUxZjQxYWFmOTI5OTRmNTM1N2YwNjI2MWZiZmNkZWRlNjk4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaApAQCAtNjIsNiArNjIsOCBAQCBjbGFzcyBT
YWZlVG9FeGVjdXRlRWRnZSB7CiAgICAgICAgIGNhc2UgRGVyaXZlZEFycmF5VXNlOgogICAgICAg
ICBjYXNlIE1hcE9iamVjdFVzZToKICAgICAgICAgY2FzZSBTZXRPYmplY3RVc2U6CisgICAgICAg
IGNhc2UgV2Vha01hcE9iamVjdFVzZToKKyAgICAgICAgY2FzZSBXZWFrU2V0T2JqZWN0VXNlOgog
ICAgICAgICBjYXNlIE9iamVjdE9yT3RoZXJVc2U6CiAgICAgICAgIGNhc2UgU3RyaW5nSWRlbnRV
c2U6CiAgICAgICAgIGNhc2UgU3RyaW5nVXNlOgpAQCAtMzg4LDYgKzM5MCw3IEBAIGJvb2wgc2Fm
ZVRvRXhlY3V0ZShBYnN0cmFjdFN0YXRlVHlwZSYgc3RhdGUsIEdyYXBoJiBncmFwaCwgTm9kZSog
bm9kZSkKICAgICBjYXNlIEdldE1hcEJ1Y2tldE5leHQ6CiAgICAgY2FzZSBMb2FkS2V5RnJvbU1h
cEJ1Y2tldDoKICAgICBjYXNlIExvYWRWYWx1ZUZyb21NYXBCdWNrZXQ6CisgICAgY2FzZSBXZWFr
TWFwR2V0OgogICAgIGNhc2UgQXRvbWljc0FkZDoKICAgICBjYXNlIEF0b21pY3NBbmQ6CiAgICAg
Y2FzZSBBdG9taWNzQ29tcGFyZUV4Y2hhbmdlOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAppbmRleCBjMjAyOTA4MjMwNzRiMDZjMWEwMzQ5YWFj
ZjRkODExN2Q4ODE3MjJlLi43OWVhZjMzZjk4YjhmMDExZTlkOWIzMjM1MGE0ZTA1Mjc4YjE1MjQ4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklU
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNw
cApAQCAtODg4NCw2ICs4ODg0LDM0IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZVNl
dE9iamVjdChFZGdlIGVkZ2UpCiAgICAgc3BlY3VsYXRlU2V0T2JqZWN0KGVkZ2UsIG9wZXJhbmQu
Z3ByKCkpOwogfQogCit2b2lkIFNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGVXZWFrTWFwT2JqZWN0
KEVkZ2UgZWRnZSwgR1BSUmVnIGNlbGwpCit7CisgICAgc3BlY3VsYXRlQ2VsbFR5cGUoZWRnZSwg
Y2VsbCwgU3BlY1dlYWtNYXBPYmplY3QsIEpTV2Vha01hcFR5cGUpOworfQorCit2b2lkIFNwZWN1
bGF0aXZlSklUOjpzcGVjdWxhdGVXZWFrTWFwT2JqZWN0KEVkZ2UgZWRnZSkKK3sKKyAgICBpZiAo
IW5lZWRzVHlwZUNoZWNrKGVkZ2UsIFNwZWNXZWFrTWFwT2JqZWN0KSkKKyAgICAgICAgcmV0dXJu
OworCisgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgb3BlcmFuZCh0aGlzLCBlZGdlKTsKKyAgICBz
cGVjdWxhdGVXZWFrTWFwT2JqZWN0KGVkZ2UsIG9wZXJhbmQuZ3ByKCkpOworfQorCit2b2lkIFNw
ZWN1bGF0aXZlSklUOjpzcGVjdWxhdGVXZWFrU2V0T2JqZWN0KEVkZ2UgZWRnZSwgR1BSUmVnIGNl
bGwpCit7CisgICAgc3BlY3VsYXRlQ2VsbFR5cGUoZWRnZSwgY2VsbCwgU3BlY1dlYWtTZXRPYmpl
Y3QsIEpTV2Vha1NldFR5cGUpOworfQorCit2b2lkIFNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGVX
ZWFrU2V0T2JqZWN0KEVkZ2UgZWRnZSkKK3sKKyAgICBpZiAoIW5lZWRzVHlwZUNoZWNrKGVkZ2Us
IFNwZWNXZWFrU2V0T2JqZWN0KSkKKyAgICAgICAgcmV0dXJuOworCisgICAgU3BlY3VsYXRlQ2Vs
bE9wZXJhbmQgb3BlcmFuZCh0aGlzLCBlZGdlKTsKKyAgICBzcGVjdWxhdGVXZWFrU2V0T2JqZWN0
KGVkZ2UsIG9wZXJhbmQuZ3ByKCkpOworfQorCiB2b2lkIFNwZWN1bGF0aXZlSklUOjpzcGVjdWxh
dGVPYmplY3RPck90aGVyKEVkZ2UgZWRnZSkKIHsKICAgICBpZiAoIW5lZWRzVHlwZUNoZWNrKGVk
Z2UsIFNwZWNPYmplY3QgfCBTcGVjT3RoZXIpKQpAQCAtOTIwMiw2ICs5MjMwLDEyIEBAIHZvaWQg
U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZShOb2RlKiwgRWRnZSBlZGdlKQogICAgIGNhc2UgU2V0
T2JqZWN0VXNlOgogICAgICAgICBzcGVjdWxhdGVTZXRPYmplY3QoZWRnZSk7CiAgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgV2Vha01hcE9iamVjdFVzZToKKyAgICAgICAgc3BlY3VsYXRlV2Vha01h
cE9iamVjdChlZGdlKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXZWFrU2V0T2JqZWN0VXNl
OgorICAgICAgICBzcGVjdWxhdGVXZWFrU2V0T2JqZWN0KGVkZ2UpOworICAgICAgICBicmVhazsK
ICAgICBjYXNlIE9iamVjdE9yT3RoZXJVc2U6CiAgICAgICAgIHNwZWN1bGF0ZU9iamVjdE9yT3Ro
ZXIoZWRnZSk7CiAgICAgICAgIGJyZWFrOwpAQCAtMTAzMDcsNiArMTAzNDEsMjggQEAgdm9pZCBT
cGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVRocm93U3RhdGljRXJyb3IoTm9kZSogbm9kZSkKICAgICBu
b1Jlc3VsdChub2RlKTsKIH0KIAordm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVdlYWtNYXBH
ZXQoTm9kZSogbm9kZSkKK3sKKyAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCB3ZWFrTWFwKHRoaXMs
IG5vZGUtPmNoaWxkMSgpKTsKKyAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBvYmplY3QodGhpcywg
bm9kZS0+Y2hpbGQyKCkpOworICAgIFNwZWN1bGF0ZUludDMyT3BlcmFuZCBoYXNoKHRoaXMsIG5v
ZGUtPmNoaWxkMygpKTsKKyAgICBKU1ZhbHVlUmVnc1RlbXBvcmFyeSByZXN1bHQodGhpcyk7CisK
KyAgICBHUFJSZWcgd2Vha01hcEdQUiA9IHdlYWtNYXAuZ3ByKCk7CisgICAgR1BSUmVnIG9iamVj
dEdQUiA9IG9iamVjdC5ncHIoKTsKKyAgICBHUFJSZWcgaGFzaEdQUiA9IGhhc2guZ3ByKCk7Cisg
ICAgSlNWYWx1ZVJlZ3MgcmVzdWx0UmVncyA9IHJlc3VsdC5yZWdzKCk7CisKKyAgICBzcGVjdWxh
dGVXZWFrTWFwT2JqZWN0KG5vZGUtPmNoaWxkMSgpLCB3ZWFrTWFwR1BSKTsKKyAgICBzcGVjdWxh
dGVPYmplY3Qobm9kZS0+Y2hpbGQyKCksIG9iamVjdEdQUik7CisKKyAgICBmbHVzaFJlZ2lzdGVy
cygpOworICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uV2Vha01hcEdldCwgcmVzdWx0UmVncywg
d2Vha01hcEdQUiwgb2JqZWN0R1BSLCBoYXNoR1BSKTsKKyAgICBtX2ppdC5leGNlcHRpb25DaGVj
aygpOworCisgICAganNWYWx1ZVJlc3VsdChyZXN1bHRSZWdzLCBub2RlKTsKK30KKwogfSB9IC8v
IG5hbWVzcGFjZSBKU0M6OkRGRwogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHU3BlY3VsYXRpdmVKSVQuaAppbmRleCBmMzRmZDQ2YzI4OGQ0YzcyMmYzNjBlY2ViYTQw
NGY0OTNmOGY0ZGI3Li44N2Q0ZWMzMTMwNzdlMGI4YjhmYTBmODk3YzBiYzg5ZmY3ZDZmMmE4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCkBAIC0x
ODI4LDYgKzE4MjgsMTEgQEAgY2xhc3MgU3BlY3VsYXRpdmVKSVQgewogICAgICAgICBtX2ppdC5z
ZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoYXJnMSwgYXJnMik7CiAgICAgICAgIHJldHVybiBh
cHBlbmRDYWxsU2V0UmVzdWx0KG9wZXJhdGlvbiwgcmVzdWx0KTsKICAgICB9CisgICAgSklUQ29t
cGlsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FQ0NaIG9wZXJhdGlvbiwg
SlNWYWx1ZVJlZ3MgcmVzdWx0LCBHUFJSZWcgYXJnMSwgR1BSUmVnIGFyZzIsIEdQUlJlZyBhcmcz
KQorICAgIHsKKyAgICAgICAgbV9qaXQuc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKGFyZzEs
IGFyZzIsIGFyZzMpOworICAgICAgICByZXR1cm4gYXBwZW5kQ2FsbFNldFJlc3VsdChvcGVyYXRp
b24sIHJlc3VsdC5wYXlsb2FkR1BSKCkpOworICAgIH0KICAgICBKSVRDb21waWxlcjo6Q2FsbCBj
YWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VDSiBvcGVyYXRpb24sIEdQUlJlZyByZXN1bHQs
IEdQUlJlZyBhcmcxLCBHUFJSZWcgYXJnMikKICAgICB7CiAgICAgICAgIG1faml0LnNldHVwQXJn
dW1lbnRzV2l0aEV4ZWNTdGF0ZShhcmcxLCBhcmcyKTsKQEAgLTIzOTYsNiArMjQwMSwxMSBAQCBj
bGFzcyBTcGVjdWxhdGl2ZUpJVCB7CiAgICAgICAgIG1faml0LnNldHVwQXJndW1lbnRzV2l0aEV4
ZWNTdGF0ZShhcmcxLCBhcmcyKTsKICAgICAgICAgcmV0dXJuIGFwcGVuZENhbGxTZXRSZXN1bHQo
b3BlcmF0aW9uLCByZXN1bHQucGF5bG9hZEdQUigpLCByZXN1bHQudGFnR1BSKCkpOwogICAgIH0K
KyAgICBKSVRDb21waWxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VDQ1og
b3BlcmF0aW9uLCBKU1ZhbHVlUmVncyByZXN1bHQsIEdQUlJlZyBhcmcxLCBHUFJSZWcgYXJnMiwg
R1BSUmVnIGFyZzMpCisgICAgeworICAgICAgICBtX2ppdC5zZXR1cEFyZ3VtZW50c1dpdGhFeGVj
U3RhdGUoYXJnMSwgYXJnMiwgYXJnMyk7CisgICAgICAgIHJldHVybiBhcHBlbmRDYWxsU2V0UmVz
dWx0KG9wZXJhdGlvbiwgcmVzdWx0LnBheWxvYWRHUFIoKSwgcmVzdWx0LnRhZ0dQUigpKTsKKyAg
ICB9CiAKICAgICBKSVRDb21waWxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9u
X0VPWkQgb3BlcmF0aW9uLCBHUFJSZWcgYXJnMSwgR1BSUmVnIGFyZzIsIEZQUlJlZyBhcmczKQog
ICAgIHsKQEAgLTI3OTAsNiArMjgwMCw3IEBAIGNsYXNzIFNwZWN1bGF0aXZlSklUIHsKICAgICB2
b2lkIGNvbXBpbGVDaGVja1N1YkNsYXNzKE5vZGUqKTsKICAgICB2b2lkIGNvbXBpbGVHZXRNYXBC
dWNrZXRIZWFkKE5vZGUqKTsKICAgICB2b2lkIGNvbXBpbGVHZXRNYXBCdWNrZXROZXh0KE5vZGUq
KTsKKyAgICB2b2lkIGNvbXBpbGVXZWFrTWFwR2V0KE5vZGUqKTsKICAgICB2b2lkIGNvbXBpbGVM
b2FkS2V5RnJvbU1hcEJ1Y2tldChOb2RlKik7CiAgICAgdm9pZCBjb21waWxlTG9hZFZhbHVlRnJv
bU1hcEJ1Y2tldChOb2RlKik7CiAgICAgCkBAIC0zMDQ3LDYgKzMwNTgsMTAgQEAgY2xhc3MgU3Bl
Y3VsYXRpdmVKSVQgewogICAgIHZvaWQgc3BlY3VsYXRlTWFwT2JqZWN0KEVkZ2UsIEdQUlJlZyBj
ZWxsKTsKICAgICB2b2lkIHNwZWN1bGF0ZVNldE9iamVjdChFZGdlKTsKICAgICB2b2lkIHNwZWN1
bGF0ZVNldE9iamVjdChFZGdlLCBHUFJSZWcgY2VsbCk7CisgICAgdm9pZCBzcGVjdWxhdGVXZWFr
TWFwT2JqZWN0KEVkZ2UpOworICAgIHZvaWQgc3BlY3VsYXRlV2Vha01hcE9iamVjdChFZGdlLCBH
UFJSZWcgY2VsbCk7CisgICAgdm9pZCBzcGVjdWxhdGVXZWFrU2V0T2JqZWN0KEVkZ2UpOworICAg
IHZvaWQgc3BlY3VsYXRlV2Vha1NldE9iamVjdChFZGdlLCBHUFJSZWcgY2VsbCk7CiAgICAgdm9p
ZCBzcGVjdWxhdGVPYmplY3RPck90aGVyKEVkZ2UpOwogICAgIHZvaWQgc3BlY3VsYXRlU3RyaW5n
KEVkZ2UgZWRnZSwgR1BSUmVnIGNlbGwpOwogICAgIHZvaWQgc3BlY3VsYXRlU3RyaW5nSWRlbnRB
bmRMb2FkU3RvcmFnZShFZGdlIGVkZ2UsIEdQUlJlZyBzdHJpbmcsIEdQUlJlZyBzdG9yYWdlKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQz
Ml82NC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJf
NjQuY3BwCmluZGV4IDg0NjVkZTI3MGY4YjJmNDU3MTU0YjM4NjIxNWViMTlmNDU1ZDY3Y2QuLjFm
N2EyMDY1MjQzNjhmZWE2NmM5MmI3ZjcyMDdhZWI4NWZiZGRjMzIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcApAQCAtNDkz
Myw2ICs0OTMzLDEwIEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkK
ICAgICAgICAgY29tcGlsZUxvYWRWYWx1ZUZyb21NYXBCdWNrZXQobm9kZSk7CiAgICAgICAgIGJy
ZWFrOwogCisgICAgY2FzZSBXZWFrTWFwR2V0OgorICAgICAgICBjb21waWxlV2Vha01hcEdldChu
b2RlKTsKKyAgICAgICAgYnJlYWs7CisKICAgICBjYXNlIEZsdXNoOgogICAgICAgICBicmVhazsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJ
VDY0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5j
cHAKaW5kZXggYzJmZGNlOWI5Y2IwOGNiNDM4ODcyN2MwZjAxZTVmNmQ3MGUxZjNkOC4uMDc5MjU5
YzE0N2MwOTNjMDNkMGQ5MTZiMjI5ZDBlNmY5MjhkNjMzOCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCkBAIC01MjkzLDYgKzUyOTMs
MTAgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQogICAgICAgICBj
b21waWxlTG9hZFZhbHVlRnJvbU1hcEJ1Y2tldChub2RlKTsKICAgICAgICAgYnJlYWs7CiAKKyAg
ICBjYXNlIFdlYWtNYXBHZXQ6CisgICAgICAgIGNvbXBpbGVXZWFrTWFwR2V0KG5vZGUpOworICAg
ICAgICBicmVhazsKKwogICAgIGNhc2UgVG9Mb3dlckNhc2U6IHsKICAgICAgICAgY29tcGlsZVRv
TG93ZXJDYXNlKG5vZGUpOwogICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHVXNlS2luZC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1VzZUtpbmQuY3BwCmluZGV4IGU4MzgyOWI3MTMwNjE3M2RlOTViMDEwODhiZjNlOWNkODRm
ZGY2ZWMuLjIzZDBkYjAwNDBlNDM1NjAxMWIyMjY0OWVhYjA4MzQzYzg0MTFiMTAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVXNlS2luZC5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdVc2VLaW5kLmNwcApAQCAtMTA5LDYgKzEwOSwxMiBAQCB2
b2lkIHByaW50SW50ZXJuYWwoUHJpbnRTdHJlYW0mIG91dCwgVXNlS2luZCB1c2VLaW5kKQogICAg
IGNhc2UgU2V0T2JqZWN0VXNlOgogICAgICAgICBvdXQucHJpbnQoIlNldE9iamVjdFVzZSIpOwog
ICAgICAgICByZXR1cm47CisgICAgY2FzZSBXZWFrTWFwT2JqZWN0VXNlOgorICAgICAgICBvdXQu
cHJpbnQoIldlYWtNYXBPYmplY3RVc2UiKTsKKyAgICAgICAgcmV0dXJuOworICAgIGNhc2UgV2Vh
a1NldE9iamVjdFVzZToKKyAgICAgICAgb3V0LnByaW50KCJXZWFrU2V0T2JqZWN0VXNlIik7Cisg
ICAgICAgIHJldHVybjsKICAgICBjYXNlIE9iamVjdE9yT3RoZXJVc2U6CiAgICAgICAgIG91dC5w
cmludCgiT2JqZWN0T3JPdGhlciIpOwogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1VzZUtpbmQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHVXNlS2luZC5oCmluZGV4IDQ2ZTI3MjAxYzk4NmZkZmUzYjYwNmM3NTYyMzg5MGMy
MGUyZjAzNTkuLjc5NmQ4YjQwZmNjY2EwMWM0ZTVkYTM4N2Q4MjUwZTFjYTJmYjQyNmMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVXNlS2luZC5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVXNlS2luZC5oCkBAIC02Nyw2ICs2Nyw4IEBAIGVudW0g
VXNlS2luZCB7CiAgICAgU3ltYm9sVXNlLAogICAgIE1hcE9iamVjdFVzZSwKICAgICBTZXRPYmpl
Y3RVc2UsCisgICAgV2Vha01hcE9iamVjdFVzZSwKKyAgICBXZWFrU2V0T2JqZWN0VXNlLAogICAg
IFN0cmluZ09iamVjdFVzZSwKICAgICBTdHJpbmdPclN0cmluZ09iamVjdFVzZSwKICAgICBOb3RT
dHJpbmdWYXJVc2UsCkBAIC0xNDksNiArMTUxLDEwIEBAIGlubGluZSBTcGVjdWxhdGVkVHlwZSB0
eXBlRmlsdGVyRm9yKFVzZUtpbmQgdXNlS2luZCkKICAgICAgICAgcmV0dXJuIFNwZWNNYXBPYmpl
Y3Q7CiAgICAgY2FzZSBTZXRPYmplY3RVc2U6CiAgICAgICAgIHJldHVybiBTcGVjU2V0T2JqZWN0
OworICAgIGNhc2UgV2Vha01hcE9iamVjdFVzZToKKyAgICAgICAgcmV0dXJuIFNwZWNXZWFrTWFw
T2JqZWN0OworICAgIGNhc2UgV2Vha1NldE9iamVjdFVzZToKKyAgICAgICAgcmV0dXJuIFNwZWNX
ZWFrU2V0T2JqZWN0OwogICAgIGNhc2UgU3RyaW5nT2JqZWN0VXNlOgogICAgICAgICByZXR1cm4g
U3BlY1N0cmluZ09iamVjdDsKICAgICBjYXNlIFN0cmluZ09yU3RyaW5nT2JqZWN0VXNlOgpAQCAt
MjQxLDYgKzI0Nyw4IEBAIGlubGluZSBib29sIGlzQ2VsbChVc2VLaW5kIGtpbmQpCiAgICAgY2Fz
ZSBTdHJpbmdPclN0cmluZ09iamVjdFVzZToKICAgICBjYXNlIE1hcE9iamVjdFVzZToKICAgICBj
YXNlIFNldE9iamVjdFVzZToKKyAgICBjYXNlIFdlYWtNYXBPYmplY3RVc2U6CisgICAgY2FzZSBX
ZWFrU2V0T2JqZWN0VXNlOgogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICBkZWZhdWx0OgogICAg
ICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRs
L0ZUTENhcGFiaWxpdGllcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENhcGFi
aWxpdGllcy5jcHAKaW5kZXggYzIxNWE2MzI5NjFmODZlMWJlNjI4YmIxZTljOTZiNjhjYmZlZjEz
NS4uYmYwZmU2Mzk1MjVkMDZmMzMyNTEyNzY3ZGY2NzA0ODIzY2M2ZDg3ZSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDYXBhYmlsaXRpZXMuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcApAQCAtMTk5LDYgKzE5OSw3
IEBAIGlubGluZSBDYXBhYmlsaXR5TGV2ZWwgY2FuQ29tcGlsZShOb2RlKiBub2RlKQogICAgIGNh
c2UgR2V0TWFwQnVja2V0TmV4dDoKICAgICBjYXNlIExvYWRLZXlGcm9tTWFwQnVja2V0OgogICAg
IGNhc2UgTG9hZFZhbHVlRnJvbU1hcEJ1Y2tldDoKKyAgICBjYXNlIFdlYWtNYXBHZXQ6CiAgICAg
Y2FzZSBJc0VtcHR5OgogICAgIGNhc2UgSXNVbmRlZmluZWQ6CiAgICAgY2FzZSBJc0Jvb2xlYW46
CkBAIC00ODYsNiArNDg3LDggQEAgQ2FwYWJpbGl0eUxldmVsIGNhbkNvbXBpbGUoR3JhcGgmIGdy
YXBoKQogICAgICAgICAgICAgICAgIGNhc2UgU3ltYm9sVXNlOgogICAgICAgICAgICAgICAgIGNh
c2UgTWFwT2JqZWN0VXNlOgogICAgICAgICAgICAgICAgIGNhc2UgU2V0T2JqZWN0VXNlOgorICAg
ICAgICAgICAgICAgIGNhc2UgV2Vha01hcE9iamVjdFVzZToKKyAgICAgICAgICAgICAgICBjYXNl
IFdlYWtTZXRPYmplY3RVc2U6CiAgICAgICAgICAgICAgICAgY2FzZSBGaW5hbE9iamVjdFVzZToK
ICAgICAgICAgICAgICAgICBjYXNlIFJlZ0V4cE9iamVjdFVzZToKICAgICAgICAgICAgICAgICBj
YXNlIFByb3h5T2JqZWN0VXNlOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0
bC9GVExMb3dlckRGR1RvQjMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dl
ckRGR1RvQjMuY3BwCmluZGV4IGU3YjI0NjJhYjBhMzk5MTM1YzViYzMxMWZlN2ViYTcxZjdiZjQ3
ZjYuLjliY2ZlYjcxMzgwNWU2YTQ5MmI5NjQ5NjRiZmZjOGQ0ZjhlYjZjNGQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKQEAgLTk4OCw2ICs5ODgs
OSBAQCBjbGFzcyBMb3dlckRGR1RvQjMgewogICAgICAgICBjYXNlIExvYWRWYWx1ZUZyb21NYXBC
dWNrZXQ6CiAgICAgICAgICAgICBjb21waWxlTG9hZFZhbHVlRnJvbU1hcEJ1Y2tldCgpOwogICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgV2Vha01hcEdldDoKKyAgICAgICAgICAgIGNv
bXBpbGVXZWFrTWFwR2V0KCk7CisgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBJc09i
amVjdDoKICAgICAgICAgICAgIGNvbXBpbGVJc09iamVjdCgpOwogICAgICAgICAgICAgYnJlYWs7
CkBAIC04MzM3LDYgKzgzNDAsMTUgQEAgY2xhc3MgTG93ZXJERkdUb0IzIHsKICAgICAgICAgc2V0
SlNWYWx1ZShtX291dC5sb2FkNjQobWFwQnVja2V0LCBtX2hlYXBzLkhhc2hNYXBCdWNrZXRfa2V5
KSk7CiAgICAgfQogCisgICAgdm9pZCBjb21waWxlV2Vha01hcEdldCgpCisgICAgeworICAgICAg
ICBMVmFsdWUgd2Vha01hcCA9IGxvd1dlYWtNYXBPYmplY3QobV9ub2RlLT5jaGlsZDEoKSk7Cisg
ICAgICAgIExWYWx1ZSBvYmplY3QgPSBsb3dPYmplY3QobV9ub2RlLT5jaGlsZDIoKSk7CisgICAg
ICAgIExWYWx1ZSBoYXNoID0gbG93SW50MzIobV9ub2RlLT5jaGlsZDMoKSk7CisKKyAgICAgICAg
c2V0SlNWYWx1ZSh2bUNhbGwoSW50NjQsIG1fb3V0Lm9wZXJhdGlvbihvcGVyYXRpb25XZWFrTWFw
R2V0KSwgbV9jYWxsRnJhbWUsIHdlYWtNYXAsIG9iamVjdCwgaGFzaCkpOworICAgIH0KKwogICAg
IHZvaWQgY29tcGlsZUlzT2JqZWN0T3JOdWxsKCkKICAgICB7CiAgICAgICAgIEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QgPSBtX2dyYXBoLmdsb2JhbE9iamVjdEZvcihtX25vZGUtPm9yaWdp
bi5zZW1hbnRpYyk7CkBAIC0xMjc5NSw2ICsxMjgwNywyMCBAQCBjbGFzcyBMb3dlckRGR1RvQjMg
ewogICAgICAgICBzcGVjdWxhdGVTZXRPYmplY3QoZWRnZSwgcmVzdWx0KTsKICAgICAgICAgcmV0
dXJuIHJlc3VsdDsKICAgICB9CisKKyAgICBMVmFsdWUgbG93V2Vha01hcE9iamVjdChFZGdlIGVk
Z2UpCisgICAgeworICAgICAgICBMVmFsdWUgcmVzdWx0ID0gbG93Q2VsbChlZGdlKTsKKyAgICAg
ICAgc3BlY3VsYXRlV2Vha01hcE9iamVjdChlZGdlLCByZXN1bHQpOworICAgICAgICByZXR1cm4g
cmVzdWx0OworICAgIH0KKworICAgIExWYWx1ZSBsb3dXZWFrU2V0T2JqZWN0KEVkZ2UgZWRnZSkK
KyAgICB7CisgICAgICAgIExWYWx1ZSByZXN1bHQgPSBsb3dDZWxsKGVkZ2UpOworICAgICAgICBz
cGVjdWxhdGVXZWFrU2V0T2JqZWN0KGVkZ2UsIHJlc3VsdCk7CisgICAgICAgIHJldHVybiByZXN1
bHQ7CisgICAgfQogICAgIAogICAgIExWYWx1ZSBsb3dTdHJpbmcoRWRnZSBlZGdlLCBPcGVyYW5k
U3BlY3VsYXRpb25Nb2RlIG1vZGUgPSBBdXRvbWF0aWNPcGVyYW5kU3BlY3VsYXRpb24pCiAgICAg
ewpAQCAtMTMyNDgsNiArMTMyNzQsMTIgQEAgY2xhc3MgTG93ZXJERkdUb0IzIHsKICAgICAgICAg
Y2FzZSBTZXRPYmplY3RVc2U6CiAgICAgICAgICAgICBzcGVjdWxhdGVTZXRPYmplY3QoZWRnZSk7
CiAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBXZWFrTWFwT2JqZWN0VXNlOgorICAg
ICAgICAgICAgc3BlY3VsYXRlV2Vha01hcE9iamVjdChlZGdlKTsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICBjYXNlIFdlYWtTZXRPYmplY3RVc2U6CisgICAgICAgICAgICBzcGVjdWxhdGVX
ZWFrU2V0T2JqZWN0KGVkZ2UpOworICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgU3Ry
aW5nVXNlOgogICAgICAgICAgICAgc3BlY3VsYXRlU3RyaW5nKGVkZ2UpOwogICAgICAgICAgICAg
YnJlYWs7CkBAIC0xMzY0Myw2ICsxMzY3NSwyOCBAQCBjbGFzcyBMb3dlckRGR1RvQjMgewogICAg
IHsKICAgICAgICAgc3BlY3VsYXRlU2V0T2JqZWN0KGVkZ2UsIGxvd0NlbGwoZWRnZSkpOwogICAg
IH0KKworICAgIHZvaWQgc3BlY3VsYXRlV2Vha01hcE9iamVjdChFZGdlIGVkZ2UsIExWYWx1ZSBj
ZWxsKQorICAgIHsKKyAgICAgICAgRlRMX1RZUEVfQ0hFQ0soCisgICAgICAgICAgICBqc1ZhbHVl
VmFsdWUoY2VsbCksIGVkZ2UsIFNwZWNXZWFrTWFwT2JqZWN0LCBpc05vdFR5cGUoY2VsbCwgSlNX
ZWFrTWFwVHlwZSkpOworICAgIH0KKworICAgIHZvaWQgc3BlY3VsYXRlV2Vha01hcE9iamVjdChF
ZGdlIGVkZ2UpCisgICAgeworICAgICAgICBzcGVjdWxhdGVXZWFrTWFwT2JqZWN0KGVkZ2UsIGxv
d0NlbGwoZWRnZSkpOworICAgIH0KKworICAgIHZvaWQgc3BlY3VsYXRlV2Vha1NldE9iamVjdChF
ZGdlIGVkZ2UsIExWYWx1ZSBjZWxsKQorICAgIHsKKyAgICAgICAgRlRMX1RZUEVfQ0hFQ0soCisg
ICAgICAgICAgICBqc1ZhbHVlVmFsdWUoY2VsbCksIGVkZ2UsIFNwZWNXZWFrU2V0T2JqZWN0LCBp
c05vdFR5cGUoY2VsbCwgSlNXZWFrU2V0VHlwZSkpOworICAgIH0KKworICAgIHZvaWQgc3BlY3Vs
YXRlV2Vha1NldE9iamVjdChFZGdlIGVkZ2UpCisgICAgeworICAgICAgICBzcGVjdWxhdGVXZWFr
U2V0T2JqZWN0KGVkZ2UsIGxvd0NlbGwoZWRnZSkpOworICAgIH0KICAgICAKICAgICB2b2lkIHNw
ZWN1bGF0ZVN0cmluZyhFZGdlIGVkZ2UsIExWYWx1ZSBjZWxsKQogICAgIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmgKaW5kZXggOWI1MDlmZTVhZDA3YTk3NTNjYThl
ODc3NTM5NTIyNmIyMmQ4NzgxZi4uMDFiMzFjOWUzMGY3ZGIxNGNiMDQ0ZTFhM2M4NGExMGJjN2I4
NGQ3MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25z
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmgKQEAgLTEy
Niw2ICsxMjYsNyBAQCB0eXBlZGVmIEVuY29kZWRKU1ZhbHVlIChKSVRfT1BFUkFUSU9OICpKX0pJ
VE9wZXJhdGlvbl9FQWFwSikoRXhlY1N0YXRlKiwgQXJyYXlBbAogdHlwZWRlZiBFbmNvZGVkSlNW
YWx1ZSAoSklUX09QRVJBVElPTiAqSl9KSVRPcGVyYXRpb25fRUFhcEpjcFopKEV4ZWNTdGF0ZSos
IEFycmF5QWxsb2NhdGlvblByb2ZpbGUqLCBjb25zdCBKU1ZhbHVlKiwgaW50MzJfdCk7CiB0eXBl
ZGVmIEVuY29kZWRKU1ZhbHVlIChKSVRfT1BFUkFUSU9OICpKX0pJVE9wZXJhdGlvbl9FQykoRXhl
Y1N0YXRlKiwgSlNDZWxsKik7CiB0eXBlZGVmIEVuY29kZWRKU1ZhbHVlIChKSVRfT1BFUkFUSU9O
ICpKX0pJVE9wZXJhdGlvbl9FQ0MpKEV4ZWNTdGF0ZSosIEpTQ2VsbCosIEpTQ2VsbCopOwordHlw
ZWRlZiBFbmNvZGVkSlNWYWx1ZSAoSklUX09QRVJBVElPTiAqSl9KSVRPcGVyYXRpb25fRUNDWiko
RXhlY1N0YXRlKiwgSlNDZWxsKiwgSlNDZWxsKiwgaW50MzJfdCk7CiB0eXBlZGVmIEVuY29kZWRK
U1ZhbHVlIChKSVRfT1BFUkFUSU9OICpKX0pJVE9wZXJhdGlvbl9FQ0kpKEV4ZWNTdGF0ZSosIEpT
Q2VsbCosIFVuaXF1ZWRTdHJpbmdJbXBsKik7CiB0eXBlZGVmIEVuY29kZWRKU1ZhbHVlIChKSVRf
T1BFUkFUSU9OICpKX0pJVE9wZXJhdGlvbl9FQ0opKEV4ZWNTdGF0ZSosIEpTQ2VsbCosIEVuY29k
ZWRKU1ZhbHVlKTsKIHR5cGVkZWYgRW5jb2RlZEpTVmFsdWUgKEpJVF9PUEVSQVRJT04gKkpfSklU
T3BlcmF0aW9uX0VDWikoRXhlY1N0YXRlKiwgSlNDZWxsKiwgaW50MzJfdCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRyaW5zaWMuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50cmluc2ljLmNwcAppbmRleCBmOTg1NjNhYmE3MTcwM2Ix
MTJkY2Y4ODZlYzQ1NWE3MDVmYjVlZDBiLi45ZDEyZmZmOWRmNzVjZTE3ZDZhMDFiMzAzNmExYmE3
YmExMzYzOTEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRy
aW5zaWMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludHJpbnNpYy5j
cHAKQEAgLTE1Myw2ICsxNTMsOCBAQCBjb25zdCBjaGFyKiBpbnRyaW5zaWNOYW1lKEludHJpbnNp
YyBpbnRyaW5zaWMpCiAgICAgICAgIHJldHVybiAiSlNTZXRCdWNrZXROZXh0SW50cmluc2ljIjsK
ICAgICBjYXNlIEpTU2V0QnVja2V0S2V5SW50cmluc2ljOgogICAgICAgICByZXR1cm4gIkpTU2V0
QnVja2V0S2V5SW50cmluc2ljIjsKKyAgICBjYXNlIEpTV2Vha01hcEdldEludHJpbnNpYzoKKyAg
ICAgICAgcmV0dXJuICJKU1dlYWtNYXBHZXRJbnRyaW5zaWMiOwogICAgIGNhc2UgSGFzT3duUHJv
cGVydHlJbnRyaW5zaWM6CiAgICAgICAgIHJldHVybiAiSGFzT3duUHJvcGVydHlJbnRyaW5zaWMi
OwogICAgIGNhc2UgQXRvbWljc0FkZEludHJpbnNpYzoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0ludHJpbnNpYy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSW50cmluc2ljLmgKaW5kZXggNGM5MmE0ZDY0NDA0MzhlYTE5MGJkNzljYjMxY2E0Yzhh
MzY5YzA0Yy4uMjlkOTVmNzI5YWM1NGMxZjNhNTcwZmFiZjY4NGZlN2UzYjU3N2Q5MCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50cmluc2ljLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50cmluc2ljLmgKQEAgLTg5LDYgKzg5LDcgQEAg
ZW51bSBJbnRyaW5zaWMgewogICAgIEpTU2V0QnVja2V0SGVhZEludHJpbnNpYywKICAgICBKU1Nl
dEJ1Y2tldE5leHRJbnRyaW5zaWMsCiAgICAgSlNTZXRCdWNrZXRLZXlJbnRyaW5zaWMsCisgICAg
SlNXZWFrTWFwR2V0SW50cmluc2ljLAogICAgIEhhc093blByb3BlcnR5SW50cmluc2ljLAogICAg
IEF0b21pY3NBZGRJbnRyaW5zaWMsCiAgICAgQXRvbWljc0FuZEludHJpbnNpYywKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVHlwZS5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBlLmgKaW5kZXggMmY3N2NkMGNmMTRiNzE4ZWNhZWI5M2Zj
N2M3YWQ1M2VhYWVmYzdlZS4uZWVlMmE1ZWE1MTk3NzFhZGE1MzllMTNjZGEyYjllNWYzMjE3ZjY0
MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBlLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBlLmgKQEAgLTk0LDYgKzk0LDgg
QEAgZW51bSBKU1R5cGUgOiB1aW50OF90IHsKICAgICBQcm94eU9iamVjdFR5cGUsCiAgICAgSlNN
YXBUeXBlLAogICAgIEpTU2V0VHlwZSwKKyAgICBKU1dlYWtNYXBUeXBlLAorICAgIEpTV2Vha1Nl
dFR5cGUsCiAKICAgICBXZWJBc3NlbWJseUZ1bmN0aW9uVHlwZSwKIApkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNXZWFrTWFwLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU1dlYWtNYXAuaAppbmRleCA1ZjhmZDIxMjVhOThhYjQyNWRjYWI4NTY0
NTNkNGI4OTNhMGY3ZjQ4Li43ODhhZWMzZjRhMjliZGYwMzQxMDZiZmMyNTI4ZDU1ODQzZDI3ZjY3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1dlYWtNYXAuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1dlYWtNYXAuaApAQCAtMzgsNyAr
MzgsNyBAQCBjbGFzcyBKU1dlYWtNYXAgZmluYWwgOiBwdWJsaWMgV2Vha01hcEJhc2UgewogCiAg
ICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgewotICAgICAgICByZXR1
cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5m
byhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7CisgICAgICAgIHJldHVybiBT
dHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKEpT
V2Vha01hcFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKICAgICB9CiAKICAgICBzdGF0
aWMgSlNXZWFrTWFwKiBjcmVhdGUoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKQEAgLTYy
LDQgKzYyLDE2IEBAIGNsYXNzIEpTV2Vha01hcCBmaW5hbCA6IHB1YmxpYyBXZWFrTWFwQmFzZSB7
CiAgICAgc3RhdGljIFN0cmluZyB0b1N0cmluZ05hbWUoY29uc3QgSlNPYmplY3QqLCBFeGVjU3Rh
dGUqKTsKIH07CiAKK2lubGluZSBib29sIGlzSlNXZWFrTWFwKEpTQ2VsbCogZnJvbSkKK3sKKyAg
ICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfZmluYWw8SlNXZWFrTWFwPjo6dmFsdWUsICIiKTsKKyAg
ICByZXR1cm4gZnJvbS0+dHlwZSgpID09IEpTV2Vha01hcFR5cGU7Cit9CisKK2lubGluZSBib29s
IGlzSlNXZWFrTWFwKEpTVmFsdWUgZnJvbSkKK3sKKyAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNf
ZmluYWw8SlNXZWFrTWFwPjo6dmFsdWUsICIiKTsKKyAgICByZXR1cm4gZnJvbS5pc0NlbGwoKSAm
JiBmcm9tLmFzQ2VsbCgpLT50eXBlKCkgPT0gSlNXZWFrTWFwVHlwZTsKK30KKwogfSAvLyBuYW1l
c3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1dl
YWtTZXQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTV2Vha1NldC5oCmluZGV4
IDc1NzBmNDJlZDcwZmZlMGVmMjNlNGM3NDY2OWVjMTg2OGE2ODg0NjEuLjIyOGMwMzZiM2EyODcw
OTQ5NTJlZWExMDkwNWI1MGEwYTJjNDU0MTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTV2Vha1NldC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTV2Vha1NldC5oCkBAIC0zOCw3ICszOCw3IEBAIGNsYXNzIEpTV2Vha1NldCBmaW5hbCA6
IHB1YmxpYyBXZWFrTWFwQmFzZSB7CiAKICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1
Y3R1cmUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3Rv
dHlwZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFs
T2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwg
aW5mbygpKTsKKyAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmpl
Y3QsIHByb3RvdHlwZSwgVHlwZUluZm8oSlNXZWFrU2V0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBp
bmZvKCkpOwogICAgIH0KIAogICAgIHN0YXRpYyBKU1dlYWtTZXQqIGNyZWF0ZShWTSYgdm0sIFN0
cnVjdHVyZSogc3RydWN0dXJlKQpAQCAtNjIsNCArNjIsMTYgQEAgY2xhc3MgSlNXZWFrU2V0IGZp
bmFsIDogcHVibGljIFdlYWtNYXBCYXNlIHsKICAgICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nTmFt
ZShjb25zdCBKU09iamVjdCosIEV4ZWNTdGF0ZSopOwogfTsKIAoraW5saW5lIGJvb2wgaXNKU1dl
YWtTZXQoSlNDZWxsKiBmcm9tKQoreworICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc19maW5hbDxK
U1dlYWtTZXQ+Ojp2YWx1ZSwgIiIpOworICAgIHJldHVybiBmcm9tLT50eXBlKCkgPT0gSlNXZWFr
U2V0VHlwZTsKK30KKworaW5saW5lIGJvb2wgaXNKU1dlYWtTZXQoSlNWYWx1ZSBmcm9tKQorewor
ICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc19maW5hbDxKU1dlYWtTZXQ+Ojp2YWx1ZSwgIiIpOwor
ICAgIHJldHVybiBmcm9tLmlzQ2VsbCgpICYmIGZyb20uYXNDZWxsKCktPnR5cGUoKSA9PSBKU1dl
YWtTZXRUeXBlOworfQorCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1dlYWtNYXBCYXNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1dlYWtNYXBCYXNlLmNwcAppbmRleCAwZTUxMDYxYTk0NmE5ZTFkMzgxMWE3
ZWIyNTNkODNmNWMyNzQwZTIwLi44NWMyMDAzMDI5OThiMWUwN2Y2ZTBiMzcwMTRlMmIyZGYyMmFh
OTA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XZWFrTWFwQmFz
ZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2Vha01hcEJhc2UuY3Bw
CkBAIC02NSw2ICs2NSwxMSBAQCB2b2lkIFdlYWtNYXBCYXNlOjp2aXNpdENoaWxkcmVuKEpTQ2Vs
bCogY2VsbCwgU2xvdFZpc2l0b3ImIHZpc2l0b3IpCiAgICAgdmlzaXRvci5yZXBvcnRFeHRyYU1l
bW9yeVZpc2l0ZWQodGhpc09iai0+bV9tYXAuY2FwYWNpdHkoKSAqIChzaXplb2YoSlNPYmplY3Qq
KSArIHNpemVvZihXcml0ZUJhcnJpZXI8VW5rbm93bj4pKSk7CiB9CiAKK0pTVmFsdWUgV2Vha01h
cEJhc2U6OmdldChKU09iamVjdCoga2V5KQoreworICAgIHJldHVybiBpbmxpbmVHZXQoa2V5KTsK
K30KKwogdm9pZCBXZWFrTWFwQmFzZTo6c2V0KFZNJiB2bSwgSlNPYmplY3QqIGtleSwgSlNWYWx1
ZSB2YWx1ZSkKIHsKICAgICAvLyBIZXJlIHdlIGZvcmNlIHRoZSB3cml0ZSBiYXJyaWVyIG9uIHRo
ZSBrZXkuCkBAIC03MiwxNCArNzcsNiBAQCB2b2lkIFdlYWtNYXBCYXNlOjpzZXQoVk0mIHZtLCBK
U09iamVjdCoga2V5LCBKU1ZhbHVlIHZhbHVlKQogICAgIHJlc3VsdC5pdGVyYXRvci0+dmFsdWUu
c2V0KHZtLCB0aGlzLCB2YWx1ZSk7CiB9CiAKLUpTVmFsdWUgV2Vha01hcEJhc2U6OmdldChKU09i
amVjdCoga2V5KQotewotICAgIGF1dG8gaXRlciA9IG1fbWFwLmZpbmQoa2V5KTsKLSAgICBpZiAo
aXRlciA9PSBtX21hcC5lbmQoKSkKLSAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci0gICAg
cmV0dXJuIGl0ZXItPnZhbHVlLmdldCgpOwotfQotCiBib29sIFdlYWtNYXBCYXNlOjpyZW1vdmUo
SlNPYmplY3QqIGtleSkKIHsKICAgICByZXR1cm4gbV9tYXAucmVtb3ZlKGtleSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XZWFrTWFwQmFzZS5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2Vha01hcEJhc2UuaAppbmRleCBlM2JjMmFmNDE2ZjRl
MjRiY2Q4Yzg0NWJmMTA5NzVmNWI5NjQwZDU5Li4wMWM4OTNiNjA5MjAyODBlOGFjMjA5OWI4NGQ2
ZThjMTk5MTA3MWEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9X
ZWFrTWFwQmFzZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dlYWtNYXBC
YXNlLmgKQEAgLTM4LDYgKzM4LDggQEAgY2xhc3MgV2Vha01hcEJhc2UgOiBwdWJsaWMgSlNEZXN0
cnVjdGlibGVPYmplY3QgewogCiAgICAgdm9pZCBzZXQoVk0mLCBKU09iamVjdCosIEpTVmFsdWUp
OwogICAgIEpTVmFsdWUgZ2V0KEpTT2JqZWN0Kik7CisgICAgSlNWYWx1ZSBpbmxpbmVHZXQoSlNP
YmplY3QqKTsKKyAgICBKU1ZhbHVlIGlubGluZUdldChKU09iamVjdCosIGludDMyX3QgaGFzaCk7
CiAgICAgYm9vbCByZW1vdmUoSlNPYmplY3QqKTsKICAgICBib29sIGNvbnRhaW5zKEpTT2JqZWN0
Kik7CiAgICAgdm9pZCBjbGVhcigpOwpAQCAtNTcsNiArNTksMTkgQEAgY2xhc3MgV2Vha01hcEJh
c2UgOiBwdWJsaWMgSlNEZXN0cnVjdGlibGVPYmplY3QgewogICAgIFdlYWtNYXBCYXNlKFZNJiwg
U3RydWN0dXJlKik7CiAgICAgc3RhdGljIHZvaWQgZGVzdHJveShKU0NlbGwqKTsKIAorICAgIHVz
aW5nIEtleVdpdGhIYXNoID0gc3RkOjpwYWlyPEpTT2JqZWN0KiwgdW5zaWduZWQ+OworICAgIHN0
cnVjdCBIYXNoVHJhbnNsYXRvciB7CisgICAgICAgIHN0YXRpYyBpbmxpbmUgdW5zaWduZWQgaGFz
aChjb25zdCBLZXlXaXRoSGFzaCYga2V5V2l0aEhhc2gpCisgICAgICAgIHsKKyAgICAgICAgICAg
IHJldHVybiBrZXlXaXRoSGFzaC5zZWNvbmQ7CisgICAgICAgIH0KKworICAgICAgICBzdGF0aWMg
aW5saW5lIGJvb2wgZXF1YWwoSlNPYmplY3QqIGtleSwgY29uc3QgS2V5V2l0aEhhc2gmIGtleVdp
dGhIYXNoKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4ga2V5ID09IGtleVdpdGhIYXNo
LmZpcnN0OworICAgICAgICB9CisgICAgfTsKKwogICAgIGNsYXNzIERlYWRLZXlDbGVhbmVyIDog
cHVibGljIFVuY29uZGl0aW9uYWxGaW5hbGl6ZXIsIHB1YmxpYyBXZWFrUmVmZXJlbmNlSGFydmVz
dGVyIHsKICAgICBwdWJsaWM6CiAgICAgICAgIFdlYWtNYXBCYXNlKiB0YXJnZXQoKTsKQEAgLTcw
LDQgKzg1LDE5IEBAIGNsYXNzIFdlYWtNYXBCYXNlIDogcHVibGljIEpTRGVzdHJ1Y3RpYmxlT2Jq
ZWN0IHsKICAgICBNYXBUeXBlIG1fbWFwOwogfTsKIAorQUxXQVlTX0lOTElORSBKU1ZhbHVlIFdl
YWtNYXBCYXNlOjppbmxpbmVHZXQoSlNPYmplY3QqIGtleSkKK3sKKyAgICBpZiAoYXV0byByZXN1
bHQgPSBtX21hcC5pbmxpbmVHZXQoa2V5KSkKKyAgICAgICAgcmV0dXJuIHJlc3VsdC5nZXQoKTsK
KyAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKK30KKworQUxXQVlTX0lOTElORSBKU1ZhbHVlIFdl
YWtNYXBCYXNlOjppbmxpbmVHZXQoSlNPYmplY3QqIGtleSwgaW50MzJfdCBoYXNoKQoreworICAg
IEtleVdpdGhIYXNoIGtleVdpdGhIYXNoIHsga2V5LCBoYXNoIH07CisgICAgaWYgKGF1dG8gcmVz
dWx0ID0gbV9tYXAuaW5saW5lR2V0PEhhc2hUcmFuc2xhdG9yPihrZXlXaXRoSGFzaCkpCisgICAg
ICAgIHJldHVybiByZXN1bHQuZ2V0KCk7CisgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Cit9CisK
IH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvV2Vha01hcFByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9XZWFrTWFwUHJvdG90eXBlLmNwcAppbmRleCA4ZmE4NjJlY2RiZmEwMzIyZDg0ZDgwNjIyZmQ5
ZmEwODIxZWJlNTA0Li5kNmIxYWZjNGE2YTE5MzQ5N2RhODJjZDhkYTZmODM0YTQ0M2NiMGE4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XZWFrTWFwUHJvdG90eXBl
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XZWFrTWFwUHJvdG90eXBl
LmNwcApAQCAtNDYsMjUgKzQ2LDI1IEBAIHZvaWQgV2Vha01hcFByb3RvdHlwZTo6ZmluaXNoQ3Jl
YXRpb24oVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQogICAgIHZtLnByb3Rv
dHlwZU1hcC5hZGRQcm90b3R5cGUodGhpcyk7CiAKICAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJ
VEhPVVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0eU5hbWVzLT5kZWxldGVLZXl3b3JkLCBwcm90b0Z1
bmNXZWFrTWFwRGVsZXRlLCBEb250RW51bSwgMSk7Ci0gICAgSlNDX05BVElWRV9GVU5DVElPTl9X
SVRIT1VUX1RSQU5TSVRJT04odm0ucHJvcGVydHlOYW1lcy0+Z2V0LCBwcm90b0Z1bmNXZWFrTWFw
R2V0LCBEb250RW51bSwgMSk7CisgICAgSlNDX05BVElWRV9JTlRSSU5TSUNfRlVOQ1RJT05fV0lU
SE9VVF9UUkFOU0lUSU9OKHZtLnByb3BlcnR5TmFtZXMtPmdldCwgcHJvdG9GdW5jV2Vha01hcEdl
dCwgRG9udEVudW0sIDEsIEpTV2Vha01hcEdldEludHJpbnNpYyk7CiAgICAgSlNDX05BVElWRV9G
VU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04odm0ucHJvcGVydHlOYW1lcy0+aGFzLCBwcm90b0Z1
bmNXZWFrTWFwSGFzLCBEb250RW51bSwgMSk7CiAgICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRI
T1VUX1RSQU5TSVRJT04odm0ucHJvcGVydHlOYW1lcy0+c2V0LCBwcm90b0Z1bmNXZWFrTWFwU2V0
LCBEb250RW51bSwgMik7CiAKICAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0u
cHJvcGVydHlOYW1lcy0+dG9TdHJpbmdUYWdTeW1ib2wsIGpzU3RyaW5nKCZ2bSwgIldlYWtNYXAi
KSwgRG9udEVudW0gfCBSZWFkT25seSk7CiB9CiAKLXN0YXRpYyBKU1dlYWtNYXAqIGdldFdlYWtN
YXAoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEpTVmFsdWUgdmFsdWUpCitBTFdBWVNfSU5MSU5FIHN0
YXRpYyBKU1dlYWtNYXAqIGdldFdlYWtNYXAoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEpTVmFsdWUg
dmFsdWUpCiB7CiAgICAgVk0mIHZtID0gY2FsbEZyYW1lLT52bSgpOwogICAgIGF1dG8gc2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKIAotICAgIGlmICghdmFsdWUuaXNPYmplY3QoKSkg
eworICAgIGlmIChVTkxJS0VMWSghdmFsdWUuaXNPYmplY3QoKSkpIHsKICAgICAgICAgdGhyb3dU
eXBlRXJyb3IoY2FsbEZyYW1lLCBzY29wZSwgV1RGOjpBU0NJSUxpdGVyYWwoIkNhbGxlZCBXZWFr
TWFwIGZ1bmN0aW9uIG9uIG5vbi1vYmplY3QiKSk7CiAgICAgICAgIHJldHVybiBudWxscHRyOwog
ICAgIH0KIAotICAgIGlmIChKU1dlYWtNYXAqIHdlYWtNYXAgPSBqc0R5bmFtaWNDYXN0PEpTV2Vh
a01hcCo+KHZtLCB2YWx1ZSkpCi0gICAgICAgIHJldHVybiB3ZWFrTWFwOworICAgIGlmIChMSUtF
TFkoaXNKU1dlYWtNYXAoYXNPYmplY3QodmFsdWUpKSkpCisgICAgICAgIHJldHVybiBqc0Nhc3Q8
SlNXZWFrTWFwKj4odmFsdWUpOwogCiAgICAgdGhyb3dUeXBlRXJyb3IoY2FsbEZyYW1lLCBzY29w
ZSwgV1RGOjpBU0NJSUxpdGVyYWwoIkNhbGxlZCBXZWFrTWFwIGZ1bmN0aW9uIG9uIGEgbm9uLVdl
YWtNYXAgb2JqZWN0IikpOwogICAgIHJldHVybiBudWxscHRyOwpAQCAtODcsNyArODcsNyBAQCBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHByb3RvRnVuY1dlYWtNYXBHZXQoQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpCiAgICAgSlNWYWx1ZSBrZXkgPSBjYWxsRnJhbWUtPmFyZ3VtZW50KDApOwog
ICAgIGlmICgha2V5LmlzT2JqZWN0KCkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
anNVbmRlZmluZWQoKSk7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShtYXAtPmdldChhc09i
amVjdChrZXkpKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShtYXAtPmlubGluZUdldChh
c09iamVjdChrZXkpKSk7CiB9CiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcHJvdG9G
dW5jV2Vha01hcEhhcyhDYWxsRnJhbWUqIGNhbGxGcmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1dlYWtTZXRQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvV2Vha1NldFByb3RvdHlwZS5jcHAKaW5kZXggMjEzNGQ5ODZiZjIz
YWU5ZjExY2M0MzcyOTA3NDI3YzFmZmFiNjg1Yi4uYWE4MjQzMDk1ZDU1YTc1NGM4MWZlNDY5N2Nk
ZDczZDMxODM1N2NhMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
V2Vha1NldFByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
V2Vha1NldFByb3RvdHlwZS5jcHAKQEAgLTUxLDE4ICs1MSwxOCBAQCB2b2lkIFdlYWtTZXRQcm90
b3R5cGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCkKICAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+
dG9TdHJpbmdUYWdTeW1ib2wsIGpzU3RyaW5nKCZ2bSwgIldlYWtTZXQiKSwgRG9udEVudW0gfCBS
ZWFkT25seSk7CiB9CiAKLXN0YXRpYyBKU1dlYWtTZXQqIGdldFdlYWtTZXQoQ2FsbEZyYW1lKiBj
YWxsRnJhbWUsIEpTVmFsdWUgdmFsdWUpCitBTFdBWVNfSU5MSU5FIHN0YXRpYyBKU1dlYWtTZXQq
IGdldFdlYWtTZXQoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEpTVmFsdWUgdmFsdWUpCiB7CiAgICAg
Vk0mIHZtID0gY2FsbEZyYW1lLT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9X
X1NDT1BFKHZtKTsKIAotICAgIGlmICghdmFsdWUuaXNPYmplY3QoKSkgeworICAgIGlmIChVTkxJ
S0VMWSghdmFsdWUuaXNPYmplY3QoKSkpIHsKICAgICAgICAgdGhyb3dUeXBlRXJyb3IoY2FsbEZy
YW1lLCBzY29wZSwgV1RGOjpBU0NJSUxpdGVyYWwoIkNhbGxlZCBXZWFrU2V0IGZ1bmN0aW9uIG9u
IG5vbi1vYmplY3QiKSk7CiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIAotICAgIGlm
IChKU1dlYWtTZXQqIHdlYWtTZXQgPSBqc0R5bmFtaWNDYXN0PEpTV2Vha1NldCo+KHZtLCB2YWx1
ZSkpCi0gICAgICAgIHJldHVybiB3ZWFrU2V0OworICAgIGlmIChMSUtFTFkoaXNKU1dlYWtTZXQo
YXNPYmplY3QodmFsdWUpKSkpCisgICAgICAgIHJldHVybiBqc0Nhc3Q8SlNXZWFrU2V0Kj4odmFs
dWUpOwogCiAgICAgdGhyb3dUeXBlRXJyb3IoY2FsbEZyYW1lLCBzY29wZSwgV1RGOjpBU0NJSUxp
dGVyYWwoIkNhbGxlZCBXZWFrU2V0IGZ1bmN0aW9uIG9uIGEgbm9uLVdlYWtTZXQgb2JqZWN0Iikp
OwogICAgIHJldHVybiBudWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvSGFzaE1h
cC5oIGIvU291cmNlL1dURi93dGYvSGFzaE1hcC5oCmluZGV4IGZjNzcxYjlhMWIwOGY1Y2FjMDA0
NjY2NzRkZGUxMDlmNTMwNTE1ZTcuLjFhMjZjOWY2MmFjM2VmMWYyYTQ1YzdjMDIwNTUzNzUwOGFj
MjAwN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0hhc2hNYXAuaAorKysgYi9Tb3VyY2Uv
V1RGL3d0Zi9IYXNoTWFwLmgKQEAgLTEwNiw3ICsxMDYsNyBAQCBjbGFzcyBIYXNoTWFwIGZpbmFs
IHsKICAgICBNYXBwZWRQZWVrVHlwZSBnZXQoY29uc3QgS2V5VHlwZSYpIGNvbnN0OwogCiAgICAg
Ly8gU2FtZSBhcyBnZXQoKSwgYnV0IGFnZ3Jlc3NpdmVseSBpbmxpbmVkLgotICAgIE1hcHBlZFBl
ZWtUeXBlIGZhc3RHZXQoY29uc3QgS2V5VHlwZSYpIGNvbnN0OworICAgIE1hcHBlZFBlZWtUeXBl
IGlubGluZUdldChjb25zdCBLZXlUeXBlJikgY29uc3Q7CiAKICAgICAvLyBSZXBsYWNlcyB0aGUg
dmFsdWUgYnV0IG5vdCB0aGUga2V5IGlmIHRoZSBrZXkgaXMgYWxyZWFkeSBwcmVzZW50LgogICAg
IC8vIFJldHVybiB2YWx1ZSBpbmNsdWRlcyBib3RoIGFuIGl0ZXJhdG9yIHRvIHRoZSBrZXkgbG9j
YXRpb24sCkBAIC0xNDQsNiArMTQ0LDcgQEAgY2xhc3MgSGFzaE1hcCBmaW5hbCB7CiAgICAgdGVt
cGxhdGU8dHlwZW5hbWUgSGFzaFRyYW5zbGF0b3IsIHR5cGVuYW1lIFQ+IGNvbnN0X2l0ZXJhdG9y
IGZpbmQoY29uc3QgVCYpIGNvbnN0OwogICAgIHRlbXBsYXRlPHR5cGVuYW1lIEhhc2hUcmFuc2xh
dG9yLCB0eXBlbmFtZSBUPiBib29sIGNvbnRhaW5zKGNvbnN0IFQmKSBjb25zdDsKICAgICB0ZW1w
bGF0ZTx0eXBlbmFtZSBIYXNoVHJhbnNsYXRvciwgdHlwZW5hbWUgVD4gTWFwcGVkUGVla1R5cGUg
Z2V0KGNvbnN0IFQmKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBIYXNoVHJhbnNsYXRv
ciwgdHlwZW5hbWUgVD4gTWFwcGVkUGVla1R5cGUgaW5saW5lR2V0KGNvbnN0IFQmKSBjb25zdDsK
IAogICAgIC8vIEFuIGFsdGVybmF0ZSB2ZXJzaW9uIG9mIGFkZCgpIHRoYXQgZmluZHMgdGhlIG9i
amVjdCBieSBoYXNoaW5nIGFuZCBjb21wYXJpbmcKICAgICAvLyB3aXRoIHNvbWUgb3RoZXIgdHlw
ZSwgdG8gYXZvaWQgdGhlIGNvc3Qgb2YgdHlwZSBjb252ZXJzaW9uIGlmIHRoZSBvYmplY3QgaXMg
YWxyZWFkeQpAQCAtMzA2LDYgKzMwNywxNiBAQCBhdXRvIEhhc2hNYXA8VCwgVSwgViwgVywgWD46
OmdldChjb25zdCBUWVBFJiB2YWx1ZSkgY29uc3QgLT4gTWFwcGVkUGVla1R5cGUKIAogdGVtcGxh
dGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVSwgdHlwZW5hbWUgViwgdHlwZW5hbWUgVywgdHlwZW5h
bWUgWD4KIHRlbXBsYXRlPHR5cGVuYW1lIEhhc2hUcmFuc2xhdG9yLCB0eXBlbmFtZSBUWVBFPgor
YXV0byBIYXNoTWFwPFQsIFUsIFYsIFcsIFg+OjppbmxpbmVHZXQoY29uc3QgVFlQRSYgdmFsdWUp
IGNvbnN0IC0+IE1hcHBlZFBlZWtUeXBlCit7CisgICAgYXV0byogZW50cnkgPSBjb25zdF9jYXN0
PEhhc2hUYWJsZVR5cGUmPihtX2ltcGwpLnRlbXBsYXRlIGlubGluZUxvb2t1cDxIYXNoTWFwVHJh
bnNsYXRvckFkYXB0ZXI8S2V5VmFsdWVQYWlyVHJhaXRzLCBIYXNoVHJhbnNsYXRvcj4+KHZhbHVl
KTsKKyAgICBpZiAoIWVudHJ5KQorICAgICAgICByZXR1cm4gTWFwcGVkVHJhaXRzOjpwZWVrKE1h
cHBlZFRyYWl0czo6ZW1wdHlWYWx1ZSgpKTsKKyAgICByZXR1cm4gTWFwcGVkVHJhaXRzOjpwZWVr
KGVudHJ5LT52YWx1ZSk7Cit9CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFUsIHR5
cGVuYW1lIFYsIHR5cGVuYW1lIFcsIHR5cGVuYW1lIFg+Cit0ZW1wbGF0ZTx0eXBlbmFtZSBIYXNo
VHJhbnNsYXRvciwgdHlwZW5hbWUgVFlQRT4KIGlubGluZSBib29sIEhhc2hNYXA8VCwgVSwgViwg
VywgWD46OmNvbnRhaW5zKGNvbnN0IFRZUEUmIHZhbHVlKSBjb25zdAogewogICAgIHJldHVybiBt
X2ltcGwudGVtcGxhdGUgY29udGFpbnM8SGFzaE1hcFRyYW5zbGF0b3JBZGFwdGVyPEtleVZhbHVl
UGFpclRyYWl0cywgSGFzaFRyYW5zbGF0b3I+Pih2YWx1ZSk7CkBAIC00MDcsNyArNDE4LDcgQEAg
aW5saW5lIGF1dG8gSGFzaE1hcDxULCBVLCBWLCBXLCBNYXBwZWRUcmFpdHM+OjpnZXQoY29uc3Qg
S2V5VHlwZSYga2V5KSBjb25zdCAtPgogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFt
ZSBVLCB0eXBlbmFtZSBWLCB0eXBlbmFtZSBXLCB0eXBlbmFtZSBNYXBwZWRUcmFpdHM+Ci1BTFdB
WVNfSU5MSU5FIGF1dG8gSGFzaE1hcDxULCBVLCBWLCBXLCBNYXBwZWRUcmFpdHM+OjpmYXN0R2V0
KGNvbnN0IEtleVR5cGUmIGtleSkgY29uc3QgLT4gTWFwcGVkUGVla1R5cGUKK0FMV0FZU19JTkxJ
TkUgYXV0byBIYXNoTWFwPFQsIFUsIFYsIFcsIE1hcHBlZFRyYWl0cz46OmlubGluZUdldChjb25z
dCBLZXlUeXBlJiBrZXkpIGNvbnN0IC0+IE1hcHBlZFBlZWtUeXBlCiB7CiAgICAgS2V5VmFsdWVQ
YWlyVHlwZSogZW50cnkgPSBjb25zdF9jYXN0PEhhc2hUYWJsZVR5cGUmPihtX2ltcGwpLnRlbXBs
YXRlIGlubGluZUxvb2t1cDxJZGVudGl0eVRyYW5zbGF0b3JUeXBlPihrZXkpOwogICAgIGlmICgh
ZW50cnkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9Mb2dnaW5nSGFzaE1hcC5oIGIvU291
cmNlL1dURi93dGYvTG9nZ2luZ0hhc2hNYXAuaAppbmRleCBlOGIxM2JmYzUwMDliMzcxOTE0MDU4
NmNjMDA3NWFhZDc2NTlmNjYxLi5mZjhlNzkwZmEzZWZhZTg0ZDg4NzdmNDdlZmE0NTkzN2Q2NjM2
ZjM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9Mb2dnaW5nSGFzaE1hcC5oCisrKyBiL1Nv
dXJjZS9XVEYvd3RmL0xvZ2dpbmdIYXNoTWFwLmgKQEAgLTE1MiwxMCArMTUyLDEwIEBAIGNsYXNz
IExvZ2dpbmdIYXNoTWFwIGZpbmFsIHsKICAgICAgICAgcmV0dXJuIG1fbWFwLmdldChrZXkpOwog
ICAgIH0KICAgICAKLSAgICBNYXBwZWRQZWVrVHlwZSBmYXN0R2V0KGNvbnN0IEtleVR5cGUmIGtl
eSkgY29uc3QKKyAgICBNYXBwZWRQZWVrVHlwZSBpbmxpbmVHZXQoY29uc3QgS2V5VHlwZSYga2V5
KSBjb25zdAogICAgIHsKICAgICAgICAgZmluZChrZXkpOwotICAgICAgICByZXR1cm4gbV9tYXAu
ZmFzdEdldChrZXkpOworICAgICAgICByZXR1cm4gbV9tYXAuaW5saW5lR2V0KGtleSk7CiAgICAg
fQogICAgIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFBhc3NlZFR5cGU+CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybEpvYk1hbmFnZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxKb2JNYW5hZ2VyLmNwcApp
bmRleCA2NGFlMDkwYWE4ZDAwYWQ3ODc5NDBjMmQ1MWRmNzdlNGZlY2ZjMGIwLi4xNTVlODA0NmRj
N2Y5MDIzMDg0YzcxOTVmNWE3YmI4NWZmM2E4OTJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybEpvYk1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsSm9iTWFuYWdlci5jcHAKQEAgLTY1LDcg
KzY1LDcgQEAgY2xhc3MgQ3VybEpvYkxpc3QgOiBwdWJsaWMgQ3VybE11bHRpSGFuZGxlIHsKICAg
ICAgICAgICAgIGlmICghbV9hY3RpdmVKb2JzLmNvbnRhaW5zKHRpY2tldCkpCiAgICAgICAgICAg
ICAgICAgY29udGludWU7CiAgICAgICAgICAgICByZW1vdmVIYW5kbGUodGlja2V0KTsKLSAgICAg
ICAgICAgIG5vdGlmeVJlc3VsdChtX2FjdGl2ZUpvYnMuZmFzdEdldCh0aWNrZXQpLCByZXN1bHQp
OworICAgICAgICAgICAgbm90aWZ5UmVzdWx0KG1fYWN0aXZlSm9icy5pbmxpbmVHZXQodGlja2V0
KSwgcmVzdWx0KTsKICAgICAgICAgICAgIG1fYWN0aXZlSm9icy5yZW1vdmUodGlja2V0KTsKICAg
ICAgICAgfQogICAgIH0KZGlmZiAtLWdpdCBhL0pTVGVzdHMvQ2hhbmdlTG9nIGIvSlNUZXN0cy9D
aGFuZ2VMb2cKaW5kZXggMWJhNTg2YTY1MTI5YjdjNDY2OGQyY2ZhMDI3OWM2YzAxNGY5ZDM3ZS4u
NDI0NDgxNTQ3YWJiMDhlNjY0ZDcyMzYxZjU1NGQwYmE2YmJlZWZhMyAxMDA2NDQKLS0tIGEvSlNU
ZXN0cy9DaGFuZ2VMb2cKKysrIGIvSlNUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAor
MjAxNy0wOS0wMyAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KKworICAg
ICAgICBbREZHXSBPcHRpbWl6ZSBXZWFrTWFwOjpnZXQgYnkgYWRkaW5nIGludHJpbnNpYyBhbmQg
Zml4dXAKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3
NjAxMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
bWljcm9iZW5jaG1hcmtzL3dlYWstbWFwLWtleS5qczogQWRkZWQuCisgICAgICAgIChhc3NlcnQp
OgorICAgICAgICAob2JqZWN0S2V5KToKKyAgICAgICAgKGxldC5zdGFydC5EYXRlLm5vdyk6CisK
IDIwMTctMDktMDIgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CiAKICAg
ICAgICAgW0RGR10gUmVsYXggYXJpdHkgcmVxdWlyZW1lbnQKZGlmZiAtLWdpdCBhL0pTVGVzdHMv
bWljcm9iZW5jaG1hcmtzL3dlYWstbWFwLWtleS5qcyBiL0pTVGVzdHMvbWljcm9iZW5jaG1hcmtz
L3dlYWstbWFwLWtleS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZjUzY2ViYzM3YjgwOTA1ZDZjNzcxYzBhNjE1
YTRiOGU3ZDc4MzAyCi0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy9taWNyb2JlbmNobWFya3Mv
d2Vhay1tYXAta2V5LmpzCkBAIC0wLDAgKzEsMzQgQEAKK2Z1bmN0aW9uIGFzc2VydChiKSB7Cisg
ICAgaWYgKCFiKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkJhZCEiKTsKK30KK25vSW5saW5l
KGFzc2VydCk7CisKK2xldCB3ZWFrTWFwID0gbmV3IFdlYWtNYXA7CisKK2Z1bmN0aW9uIG9iamVj
dEtleShvKSB7CisgICAgcmV0dXJuIHdlYWtNYXAuZ2V0KG8pOworfQorbm9JbmxpbmUob2JqZWN0
S2V5KTsKKworY29uc3QgaXRlcnMgPSAzMDAwMDA7CitsZXQgc3RhcnQgPSBEYXRlLm5vdygpOwor
Cit7CisgICAgbGV0IG8gPSB7ZjogMjB9OworICAgIHZhciBhcnJheSA9IFtdOworICAgIGZvciAo
dmFyIGkgPSAwOyBpIDwgMTA7IGkrKykgeworICAgICAgICBsZXQgbmV3T2JqZWN0ID0geyBmOiBp
IH07CisgICAgICAgIHdlYWtNYXAuc2V0KG5ld09iamVjdCwgaSk7CisgICAgICAgIGFycmF5W2ld
ID0gbmV3T2JqZWN0OworICAgIH0KKworICAgIGZvciAodmFyIGogPSAwOyBqIDwgaXRlcnM7ICsr
aikgeworICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IDEwOyBpKyspCisgICAgICAgICAgICBh
c3NlcnQob2JqZWN0S2V5KGFycmF5W2ldKSA9PT0gaSk7CisgICAgfQorfQorCitjb25zdCB2ZXJi
b3NlID0gZmFsc2U7CitpZiAodmVyYm9zZSkKKyAgICBwcmludChEYXRlLm5vdygpIC0gc3RhcnQp
Owo=
</data>
<flag name="review"
          id="340028"
          type_id="1"
          status="+"
          setter="fpizlo"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>320554</attachid>
            <date>2017-09-12 10:22:53 -0700</date>
            <delta_ts>2017-09-12 10:22:53 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-176010-20170913022252.patch</filename>
            <type>text/plain</type>
            <size>60987</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIxOTI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
YzgyZjNlZjRiYTgwZDBlY2RjODRkN2MwNjljNTk3NDdjMGUyNWMzLi5hYjBmNTVlYjhiNTUyYjFk
MDhkYWE2M2RjMjAzMmU4ZWE0YmZlMzQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMjEgQEAKKzIwMTctMDktMTIgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFp
bC5jb20+CisKKyAgICAgICAgW0RGR10gT3B0aW1pemUgV2Vha01hcDo6Z2V0IGJ5IGFkZGluZyBp
bnRyaW5zaWMgYW5kIGZpeHVwCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNzYwMTAKKworICAgICAgICBSZXZpZXdlZCBieSBGaWxpcCBQaXpsby4KKwor
ICAgICAgICBJdCByZXZlYWxzIHRoYXQgRW1iZXIuanMgY29uc3VtZXMgMy44JSBvZiBleGVjdXRp
b24gdGltZSBmb3IgV2Vha01hcCNnZXQuCisgICAgICAgIEl0IGlzIHVzZWQgZm9yIG1ldGEgcHJv
cGVydHkgZm9yIG9iamVjdHMgKHNlZSBwZWVrTWV0YSBmdW5jdGlvbiBpbiBFbWJlci5qcykuCisK
KyAgICAgICAgVGhpcyBwYXRjaCBvcHRpbWl6ZXMgV2Vha01hcCNnZXQuCisKKyAgICAgICAgMS4g
V2UgdXNlIGlubGluZUdldCB0byBpbmxpbmUgV2Vha01hcCNnZXQgb3BlcmF0aW9uIGluIHRoZSBu
YXRpdmUgZnVuY3Rpb24uCisgICAgICAgIFNpbmNlIHRoaXMgbmF0aXZlIGZ1bmN0aW9uIGl0c2Vs
ZiBpcyB2ZXJ5IHNtYWxsLCB3ZSBzaG91bGQgaW5saW5lIEhhc2hNYXAjZ2V0CisgICAgICAgIGVu
dGlyZWx5IGluIHRoaXMgZnVuY3Rpb24uCisKKyAgICAgICAgMi4gV2UgYWRkIEpTV2Vha01hcFR5
cGUgYW5kIEpTV2Vha1NldFR5cGUuIFRoaXMgYWxsb3dzIHVzIHRvIHBlcmZvcm0gYGlzSlNXZWFr
TWFwKClgCisgICAgICAgIHZlcnkgZmFzdC4gQW5kIHRoaXMgcGF0Y2ggd2lyZXMgdGhpcyB0byBE
RkcgYW5kIEZUTCB0byBhZGQgV2Vha01hcE9iamVjdFVzZSBhbmQgV2Vha1NldE9iamVjdFVzZQor
ICAgICAgICB0byBkcm9wIHVubmVjZXNzYXJ5IHR5cGUgY2hlY2tpbmcuIFdlIGFkZCBmaXh1cCBy
dWxlcyBmb3IgV2Vha01hcEdldCBERkcgbm9kZSBieSB1c2luZyBXZWFrTWFwT2JqZWN0VXNlLAor
ICAgICAgICBPYmplY3RVc2UsIGFuZCBJbnQzMlVzZS4KKworICAgICAgICAzLiBXZSBhZGQgaW50
cmluc2ljIGZvciBXZWFrTWFwI2dldCwgYW5kIGhhbmRsZSBpdCBpbiBERkcgYW5kIEZUTC4gV2Ug
dXNlIE1hcEhhc2ggdG8KKyAgICAgICAgY2FsY3VsYXRlIGhhc2ggdmFsdWUgZm9yIHRoZSBrZXkn
cyBPYmplY3QgYW5kIHVzZSB0aGlzIGhhc2ggdmFsdWUgdG8gbG9vayB1cCB2YWx1ZSBmcm9tCisg
ICAgICAgIEpTV2Vha01hcCdzIEhhc2hNYXAuIEN1cnJlbnRseSwgd2UganVzdCBjYWxsIHRoZSBv
cGVyYXRpb25XZWFrTWFwR2V0IGZ1bmN0aW9uIGluIERGRyBhbmQgRlRMLgorICAgICAgICBJdCBp
cyB3b3J0aCBjb25zaWRlcmluZyB0aGF0IGltcGxlbWVudGluZyB0aGlzIG9wZXJhdGlvbiBlbnRp
cmVseSBpbiBKSVQsIGxpa2UgR2V0TWFwQnVja2V0LgorICAgICAgICBCdXQgYW55d2F5LCB0aGUg
Y3VycmVudCBvbmUgYWxyZWFkeSBvcHRpbWl6ZXMgdGhlIHBlcmZvcm1hbmNlLCBzbyB3ZSBsZWF2
ZSB0aGlzIGZvciB0aGUgc3Vic2VxdWVudAorICAgICAgICBwYXRjaGVzLgorCisgICAgICAgIFdl
IGN1cnJlbnRseSBkbyBub3QgaW1wbGVtZW50IGFueSBvdGhlciBpbnRyaW5zaWNzIChsaWtlLCBX
ZWFrTWFwI2hhcywgV2Vha1NldCkgYmVjYXVzZSB0aGV5IGFyZQorICAgICAgICBub3QgdXNlZCBp
biBFbWJlci5qcyByaWdodCBub3cuCisKKyAgICAgICAgVGhpcyBwYXRjaCBvcHRpbWl6ZXMgV2Vh
a01hcCNnZXQgYnkgNTAlLgorCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYXNl
bGluZSAgICAgICAgICAgICAgICAgIHBhdGNoZWQKKworICAgICAgICB3ZWFrLW1hcC1rZXkgICAg
ICAgICA4OC42NDU2Ky0zLjk1NjQgICAgIF4gICAgIDU5LjE1MDIrLTIuMjQwNiAgICAgICAgXiBk
ZWZpbml0ZWx5IDEuNDk4N3ggZmFzdGVyCisKKyAgICAgICAgKiBieXRlY29kZS9EaXJlY3RFdmFs
Q29kZUNhY2hlLmg6CisgICAgICAgIChKU0M6OkRpcmVjdEV2YWxDb2RlQ2FjaGU6OnRyeUdldCk6
CisgICAgICAgICogYnl0ZWNvZGUvU3BlY3VsYXRlZFR5cGUuY3BwOgorICAgICAgICAoSlNDOjpk
dW1wU3BlY3VsYXRpb24pOgorICAgICAgICAoSlNDOjpzcGVjdWxhdGlvbkZyb21DbGFzc0luZm8p
OgorICAgICAgICAoSlNDOjpzcGVjdWxhdGlvbkZyb21KU1R5cGUpOgorICAgICAgICAoSlNDOjpz
cGVjdWxhdGlvbkZyb21TdHJpbmcpOgorICAgICAgICAqIGJ5dGVjb2RlL1NwZWN1bGF0ZWRUeXBl
Lmg6CisgICAgICAgICogZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmg6CisgICAg
ICAgIChKU0M6OkRGRzo6QWJzdHJhY3RJbnRlcnByZXRlcjxBYnN0cmFjdFN0YXRlVHlwZT46OmV4
ZWN1dGVFZmZlY3RzKToKKyAgICAgICAgKiBkZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwOgorICAg
ICAgICAoSlNDOjpERkc6OkJ5dGVDb2RlUGFyc2VyOjpoYW5kbGVJbnRyaW5zaWNDYWxsKToKKyAg
ICAgICAgKiBkZmcvREZHQ2xvYmJlcml6ZS5oOgorICAgICAgICAoSlNDOjpERkc6OmNsb2JiZXJp
emUpOgorICAgICAgICAqIGRmZy9ERkdEb2VzR0MuY3BwOgorICAgICAgICAoSlNDOjpERkc6OmRv
ZXNHQyk6CisgICAgICAgICogZGZnL0RGR0ZpeHVwUGhhc2UuY3BwOgorICAgICAgICAoSlNDOjpE
Rkc6OkZpeHVwUGhhc2U6OmZpeHVwTm9kZSk6CisgICAgICAgICogZGZnL0RGR0hlYXBMb2NhdGlv
bi5jcHA6CisgICAgICAgIChXVEY6OnByaW50SW50ZXJuYWwpOgorICAgICAgICAqIGRmZy9ERkdI
ZWFwTG9jYXRpb24uaDoKKyAgICAgICAgKiBkZmcvREZHTm9kZS5oOgorICAgICAgICAoSlNDOjpE
Rkc6Ok5vZGU6Omhhc0hlYXBQcmVkaWN0aW9uKToKKyAgICAgICAgKiBkZmcvREZHTm9kZVR5cGUu
aDoKKyAgICAgICAgKiBkZmcvREZHT3BlcmF0aW9ucy5jcHA6CisgICAgICAgICogZGZnL0RGR09w
ZXJhdGlvbnMuaDoKKyAgICAgICAgKiBkZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2Uu
Y3BwOgorICAgICAgICAqIGRmZy9ERkdTYWZlVG9FeGVjdXRlLmg6CisgICAgICAgIChKU0M6OkRG
Rzo6U2FmZVRvRXhlY3V0ZUVkZ2U6Om9wZXJhdG9yKCkpOgorICAgICAgICAoSlNDOjpERkc6OnNh
ZmVUb0V4ZWN1dGUpOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHA6CisgICAg
ICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZVdlYWtNYXBPYmplY3QpOgor
ICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGVXZWFrU2V0T2JqZWN0
KToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlKToKKyAgICAg
ICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVdlYWtNYXBHZXQpOgorICAgICAg
ICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0
aXZlSklUOjpjYWxsT3BlcmF0aW9uKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQz
Ml82NC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUpOgor
ICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcDoKKyAgICAgICAgKEpTQzo6REZH
OjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZSk6CisgICAgICAgICogZGZnL0RGR1VzZUtpbmQuY3Bw
OgorICAgICAgICAoV1RGOjpwcmludEludGVybmFsKToKKyAgICAgICAgKiBkZmcvREZHVXNlS2lu
ZC5oOgorICAgICAgICAoSlNDOjpERkc6OnR5cGVGaWx0ZXJGb3IpOgorICAgICAgICAoSlNDOjpE
Rkc6OmlzQ2VsbCk6CisgICAgICAgICogZnRsL0ZUTENhcGFiaWxpdGllcy5jcHA6CisgICAgICAg
IChKU0M6OkZUTDo6Y2FuQ29tcGlsZSk6CisgICAgICAgICogZnRsL0ZUTExvd2VyREZHVG9CMy5j
cHA6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6OmNvbXBpbGVOb2RlKToK
KyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6Y29tcGlsZVdlYWtNYXBHZXQp
OgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjpsb3dXZWFrTWFwT2JqZWN0
KToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6bG93V2Vha1NldE9iamVj
dCk6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6OnNwZWN1bGF0ZSk6Cisg
ICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6OnNwZWN1bGF0ZVdlYWtNYXBPYmpl
Y3QpOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjpzcGVjdWxhdGVXZWFr
U2V0T2JqZWN0KToKKyAgICAgICAgKiBqaXQvSklUT3BlcmF0aW9ucy5oOgorICAgICAgICAqIHJ1
bnRpbWUvSGFzaE1hcEltcGwuaDoKKyAgICAgICAgKEpTQzo6V2Vha01hcEhhc2g6Omhhc2gpOgor
ICAgICAgICAoSlNDOjpXZWFrTWFwSGFzaDo6ZXF1YWwpOgorICAgICAgICAqIHJ1bnRpbWUvSW50
cmluc2ljLmNwcDoKKyAgICAgICAgKEpTQzo6aW50cmluc2ljTmFtZSk6CisgICAgICAgICogcnVu
dGltZS9JbnRyaW5zaWMuaDoKKyAgICAgICAgKiBydW50aW1lL0pTVHlwZS5oOgorICAgICAgICAq
IHJ1bnRpbWUvSlNXZWFrTWFwLmg6CisgICAgICAgIChKU0M6OmlzSlNXZWFrTWFwKToKKyAgICAg
ICAgKiBydW50aW1lL0pTV2Vha1NldC5oOgorICAgICAgICAoSlNDOjppc0pTV2Vha1NldCk6Cisg
ICAgICAgICogcnVudGltZS9XZWFrTWFwQmFzZS5jcHA6CisgICAgICAgIChKU0M6OldlYWtNYXBC
YXNlOjpnZXQpOgorICAgICAgICAqIHJ1bnRpbWUvV2Vha01hcEJhc2UuaDoKKyAgICAgICAgKEpT
Qzo6V2Vha01hcEJhc2U6Okhhc2hUcmFuc2xhdG9yOjpoYXNoKToKKyAgICAgICAgKEpTQzo6V2Vh
a01hcEJhc2U6Okhhc2hUcmFuc2xhdG9yOjplcXVhbCk6CisgICAgICAgIChKU0M6OldlYWtNYXBC
YXNlOjppbmxpbmVHZXQpOgorICAgICAgICAqIHJ1bnRpbWUvV2Vha01hcFByb3RvdHlwZS5jcHA6
CisgICAgICAgIChKU0M6OldlYWtNYXBQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKToKKyAgICAg
ICAgKEpTQzo6Z2V0V2Vha01hcCk6CisgICAgICAgIChKU0M6OnByb3RvRnVuY1dlYWtNYXBHZXQp
OgorICAgICAgICAqIHJ1bnRpbWUvV2Vha1NldFByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6
OmdldFdlYWtTZXQpOgorCiAyMDE3LTA5LTExICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNv
bT4KIAogICAgICAgICBNb3JlIGV4Y2VwdGlvbiBjaGVjayBib29rLWtlZXBpbmcgbmVlZGVkIGZv
dW5kIGJ5IDMyLWJpdCBKU0MgdGVzdCBmYWlsdXJlcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYv
Q2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXggMjFlMDBlYTNjYjk5NTRlYWZi
MjFlZDhjN2Q1ZDhmMGVlNTMzMThiZi4uNzJmZThmNzAzZDFjZTA2MWQ3ZWEzNmQxYjdjMGQwM2My
NDA4YWY0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dU
Ri9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxNy0wOS0xMiAgWXVzdWtlIFN1enVraSAg
PHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KKworICAgICAgICBbREZHXSBPcHRpbWl6ZSBXZWFrTWFw
OjpnZXQgYnkgYWRkaW5nIGludHJpbnNpYyBhbmQgZml4dXAKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NjAxMAorCisgICAgICAgIFJldmlld2VkIGJ5
IEZpbGlwIFBpemxvLgorCisgICAgICAgIEFkZCBpbmxpbmVHZXQgbWV0aG9kIHdpdGggSGFzaFRy
YW5zbGF0b3IuCisKKyAgICAgICAgKiB3dGYvSGFzaE1hcC5oOgorICAgICAgICAoV1RGOjpYPjo6
aW5saW5lR2V0IGNvbnN0KToKKyAgICAgICAgKFdURjo6TWFwcGVkVHJhaXRzPjo6aW5saW5lR2V0
IGNvbnN0KToKKyAgICAgICAgKFdURjo6TWFwcGVkVHJhaXRzPjo6ZmFzdEdldCBjb25zdCk6IERl
bGV0ZWQuCisgICAgICAgICogd3RmL0xvZ2dpbmdIYXNoTWFwLmg6CisKIDIwMTctMDktMTIgIEJy
ZW50IEZ1bGdoYW0gIDxiZnVsZ2hhbUBhcHBsZS5jb20+CiAKICAgICAgICAgU2hvdyBwdW55Y29k
ZSB0byB1c2VyIGlmIGEgVVJMIG1peGVzIEFybWVuaWFuIFNlaCBvciBWbyB3aXRoIG90aGVyIHNj
cmlwdHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwppbmRleCA3NWEyZWU0NzAyZDM5MTQ3MWYzNGRkZTBmNzA5NzQ2MTRkNGVm
MjYzLi4xMTk0NjgyNDA2YTljZTNmMGZkMzEzMjM3NGRkMjU4M2Q3Mjk4NjkzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTMgQEAKKzIwMTctMDktMTIgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRl
YUBnbWFpbC5jb20+CisKKyAgICAgICAgW0RGR10gT3B0aW1pemUgV2Vha01hcDo6Z2V0IGJ5IGFk
ZGluZyBpbnRyaW5zaWMgYW5kIGZpeHVwCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNzYwMTAKKworICAgICAgICBSZXZpZXdlZCBieSBGaWxpcCBQaXps
by4KKworICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsSm9iTWFuYWdlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDdXJsSm9iTGlzdDo6ZmluaXNoSm9icyk6CisKIDIwMTctMDkt
MTIgIERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJ
T04gKHIyMTU3ODQpOiBUaGUgdGl0bGUgb2YgcmlnaHQtdG8tbGVmdCBwYWdlcyBhcmUgZW1wdHkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9EaXJlY3RFdmFsQ29k
ZUNhY2hlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvRGlyZWN0RXZhbENvZGVD
YWNoZS5oCmluZGV4IGUwNzUzNTdhOGYzNTFjZDNkY2M3MTRiMTYyMzEyMDBmY2VhNDE5MDMuLjU5
NmYyNjg0MGY3YjE3NTcwMTg3ZjE4ZmI2NzliOGUxYjVmZTkyYjEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9EaXJlY3RFdmFsQ29kZUNhY2hlLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0RpcmVjdEV2YWxDb2RlQ2FjaGUuaApAQCAtODYs
NyArODYsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBEaXJlY3RFdmFsRXhlY3V0YWJs
ZSogdHJ5R2V0KGNvbnN0IFN0cmluZyYgZXZhbFNvdXJjZSwgQ2FsbFNpdGVJbmRleCBjYWxsU2l0
ZUluZGV4KQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gbV9jYWNoZU1hcC5mYXN0R2V0
KENhY2hlS2V5KGV2YWxTb3VyY2UsIGNhbGxTaXRlSW5kZXgpKS5nZXQoKTsKKyAgICAgICAgICAg
IHJldHVybiBtX2NhY2hlTWFwLmlubGluZUdldChDYWNoZUtleShldmFsU291cmNlLCBjYWxsU2l0
ZUluZGV4KSkuZ2V0KCk7CiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIHZvaWQgc2V0KEV4
ZWNTdGF0ZSogZXhlYywgSlNDZWxsKiBvd25lciwgY29uc3QgU3RyaW5nJiBldmFsU291cmNlLCBD
YWxsU2l0ZUluZGV4IGNhbGxTaXRlSW5kZXgsIERpcmVjdEV2YWxFeGVjdXRhYmxlKiBldmFsRXhl
Y3V0YWJsZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TcGVj
dWxhdGVkVHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3BlY3VsYXRl
ZFR5cGUuY3BwCmluZGV4IGNhMjU5NDczNzBmODUyMWEwM2YyZDE1ZWY5NWY3MDU0ZWZjNWQwZGYu
LmJlOWU2ODAxYTY1NWE5OTgwYmRkNjJiNDBmZjIyYzU2YzU2YmM0YmQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TcGVjdWxhdGVkVHlwZS5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1NwZWN1bGF0ZWRUeXBlLmNwcApAQCAtMzUsNiAr
MzUsOCBAQAogI2luY2x1ZGUgIkpTRnVuY3Rpb24uaCIKICNpbmNsdWRlICJKU01hcC5oIgogI2lu
Y2x1ZGUgIkpTU2V0LmgiCisjaW5jbHVkZSAiSlNXZWFrTWFwLmgiCisjaW5jbHVkZSAiSlNXZWFr
U2V0LmgiCiAjaW5jbHVkZSAiUHJveHlPYmplY3QuaCIKICNpbmNsdWRlICJSZWdFeHBPYmplY3Qu
aCIKICNpbmNsdWRlICJTY29wZWRBcmd1bWVudHMuaCIKQEAgLTE4MCw2ICsxODIsMTYgQEAgdm9p
ZCBkdW1wU3BlY3VsYXRpb24oUHJpbnRTdHJlYW0mIG91dFN0cmVhbSwgU3BlY3VsYXRlZFR5cGUg
dmFsdWUpCiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgaXNUb3AgPSBmYWxzZTsK
IAorICAgICAgICAgICAgaWYgKHZhbHVlICYgU3BlY1dlYWtNYXBPYmplY3QpCisgICAgICAgICAg
ICAgICAgc3RyT3V0LnByaW50KCJXZWFrTWFwT2JqZWN0Iik7CisgICAgICAgICAgICBlbHNlCisg
ICAgICAgICAgICAgICAgaXNUb3AgPSBmYWxzZTsKKworICAgICAgICAgICAgaWYgKHZhbHVlICYg
U3BlY1dlYWtTZXRPYmplY3QpCisgICAgICAgICAgICAgICAgc3RyT3V0LnByaW50KCJXZWFrU2V0
T2JqZWN0Iik7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgaXNUb3AgPSBmYWxz
ZTsKKwogICAgICAgICAgICAgaWYgKHZhbHVlICYgU3BlY1Byb3h5T2JqZWN0KQogICAgICAgICAg
ICAgICAgIHN0ck91dC5wcmludCgiUHJveHlPYmplY3QiKTsKICAgICAgICAgICAgIGVsc2UKQEAg
LTQwMiw2ICs0MTQsMTIgQEAgU3BlY3VsYXRlZFR5cGUgc3BlY3VsYXRpb25Gcm9tQ2xhc3NJbmZv
KGNvbnN0IENsYXNzSW5mbyogY2xhc3NJbmZvKQogICAgIGlmIChjbGFzc0luZm8gPT0gSlNTZXQ6
OmluZm8oKSkKICAgICAgICAgcmV0dXJuIFNwZWNTZXRPYmplY3Q7CiAKKyAgICBpZiAoY2xhc3NJ
bmZvID09IEpTV2Vha01hcDo6aW5mbygpKQorICAgICAgICByZXR1cm4gU3BlY1dlYWtNYXBPYmpl
Y3Q7CisKKyAgICBpZiAoY2xhc3NJbmZvID09IEpTV2Vha1NldDo6aW5mbygpKQorICAgICAgICBy
ZXR1cm4gU3BlY1dlYWtTZXRPYmplY3Q7CisKICAgICBpZiAoY2xhc3NJbmZvID09IFByb3h5T2Jq
ZWN0OjppbmZvKCkpCiAgICAgICAgIHJldHVybiBTcGVjUHJveHlPYmplY3Q7CiAgICAgCkBAIC01
MjAsNiArNTM4LDEwIEBAIFNwZWN1bGF0ZWRUeXBlIHNwZWN1bGF0aW9uRnJvbUpTVHlwZShKU1R5
cGUgdHlwZSkKICAgICAgICAgcmV0dXJuIFNwZWNNYXBPYmplY3Q7CiAgICAgY2FzZSBKU1NldFR5
cGU6CiAgICAgICAgIHJldHVybiBTcGVjU2V0T2JqZWN0OworICAgIGNhc2UgSlNXZWFrTWFwVHlw
ZToKKyAgICAgICAgcmV0dXJuIFNwZWNXZWFrTWFwT2JqZWN0OworICAgIGNhc2UgSlNXZWFrU2V0
VHlwZToKKyAgICAgICAgcmV0dXJuIFNwZWNXZWFrU2V0T2JqZWN0OwogICAgIGRlZmF1bHQ6CiAg
ICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIH0KQEAgLTcwMSw2ICs3MjMsMTAgQEAg
U3BlY3VsYXRlZFR5cGUgc3BlY3VsYXRpb25Gcm9tU3RyaW5nKGNvbnN0IGNoYXIqIHNwZWN1bGF0
aW9uKQogICAgICAgICByZXR1cm4gU3BlY01hcE9iamVjdDsKICAgICBpZiAoIXN0cm5jbXAoc3Bl
Y3VsYXRpb24sICJTcGVjU2V0T2JqZWN0Iiwgc3RybGVuKCJTcGVjU2V0T2JqZWN0IikpKQogICAg
ICAgICByZXR1cm4gU3BlY1NldE9iamVjdDsKKyAgICBpZiAoIXN0cm5jbXAoc3BlY3VsYXRpb24s
ICJTcGVjV2Vha01hcE9iamVjdCIsIHN0cmxlbigiU3BlY1dlYWtNYXBPYmplY3QiKSkpCisgICAg
ICAgIHJldHVybiBTcGVjV2Vha01hcE9iamVjdDsKKyAgICBpZiAoIXN0cm5jbXAoc3BlY3VsYXRp
b24sICJTcGVjV2Vha1NldE9iamVjdCIsIHN0cmxlbigiU3BlY1dlYWtTZXRPYmplY3QiKSkpCisg
ICAgICAgIHJldHVybiBTcGVjV2Vha1NldE9iamVjdDsKICAgICBpZiAoIXN0cm5jbXAoc3BlY3Vs
YXRpb24sICJTcGVjUHJveHlPYmplY3QiLCBzdHJsZW4oIlNwZWNQcm94eU9iamVjdCIpKSkKICAg
ICAgICAgcmV0dXJuIFNwZWNQcm94eU9iamVjdDsKICAgICBpZiAoIXN0cm5jbXAoc3BlY3VsYXRp
b24sICJTcGVjRGVyaXZlZEFycmF5Iiwgc3RybGVuKCJTcGVjRGVyaXZlZEFycmF5IikpKQpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1NwZWN1bGF0ZWRUeXBlLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3BlY3VsYXRlZFR5cGUuaAppbmRleCBi
YWI2MGNjZjI0NjUxZGU5NmI2OTJmNDI5MzU3MjY2YTE5NmVmMDNkLi4yZGI4NWRhOTlmY2I1Nzg3
MTUwZDY5ZjliZjNkZGMxZGI5OGNkZjQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvU3BlY3VsYXRlZFR5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvU3BlY3VsYXRlZFR5cGUuaApAQCAtNTgsMjYgKzU4LDI4IEBAIHN0YXRpYyBjb25z
dCBTcGVjdWxhdGVkVHlwZSBTcGVjU3RyaW5nT2JqZWN0ICAgICAgID0gMXVsbCA8PCAxNDsgLy8g
SXQncyBkZWZpbml0CiBzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY1JlZ0V4cE9iamVj
dCAgICAgICA9IDF1bGwgPDwgMTU7IC8vIEl0J3MgZGVmaW5pdGVseSBhIFJlZ0V4cE9iamVjdCAo
YW5kIG5vdCBhbnkgc3ViY2xhc3Mgb2YgUmVnRXhwT2JqZWN0KS4KIHN0YXRpYyBjb25zdCBTcGVj
dWxhdGVkVHlwZSBTcGVjTWFwT2JqZWN0ICAgICAgICAgID0gMXVsbCA8PCAxNjsgLy8gSXQncyBk
ZWZpbml0ZWx5IGEgTWFwIG9iamVjdCBvciBvbmUgb2YgaXRzIHN1YmNsYXNzZXMuCiBzdGF0aWMg
Y29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY1NldE9iamVjdCAgICAgICAgICA9IDF1bGwgPDwgMTc7
IC8vIEl0J3MgZGVmaW5pdGVseSBhIFNldCBvYmplY3Qgb3Igb25lIG9mIGl0cyBzdWJjbGFzc2Vz
Lgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNQcm94eU9iamVjdCAgICAgICAgPSAx
dWxsIDw8IDE4OyAvLyBJdCdzIGRlZmluaXRlbHkgYSBQcm94eSBvYmplY3Qgb3Igb25lIG9mIGl0
cyBzdWJjbGFzc2VzLgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNEZXJpdmVkQXJy
YXkgICAgICAgPSAxdWxsIDw8IDE5OyAvLyBJdCdzIGRlZmluaXRlbHkgYSBEZXJpdmVkQXJyYXkg
b2JqZWN0Lgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNPYmplY3RPdGhlciAgICAg
ICAgPSAxdWxsIDw8IDIwOyAvLyBJdCdzIGRlZmluaXRlbHkgYW4gb2JqZWN0IGJ1dCBub3QgSlNG
aW5hbE9iamVjdCwgSlNBcnJheSwgb3IgSlNGdW5jdGlvbi4KLXN0YXRpYyBjb25zdCBTcGVjdWxh
dGVkVHlwZSBTcGVjT2JqZWN0ICAgICAgICAgICAgID0gU3BlY0ZpbmFsT2JqZWN0IHwgU3BlY0Fy
cmF5IHwgU3BlY0Z1bmN0aW9uIHwgU3BlY1R5cGVkQXJyYXlWaWV3IHwgU3BlY0RpcmVjdEFyZ3Vt
ZW50cyB8IFNwZWNTY29wZWRBcmd1bWVudHMgfCBTcGVjU3RyaW5nT2JqZWN0IHwgU3BlY1JlZ0V4
cE9iamVjdCB8IFNwZWNNYXBPYmplY3QgfCBTcGVjU2V0T2JqZWN0IHwgU3BlY1Byb3h5T2JqZWN0
IHwgU3BlY0Rlcml2ZWRBcnJheSB8IFNwZWNPYmplY3RPdGhlcjsgLy8gQml0bWFzayB1c2VkIGZv
ciB0ZXN0aW5nIGZvciBhbnkga2luZCBvZiBvYmplY3QgcHJlZGljdGlvbi4KLXN0YXRpYyBjb25z
dCBTcGVjdWxhdGVkVHlwZSBTcGVjU3RyaW5nSWRlbnQgICAgICAgID0gMXVsbCA8PCAyMTsgLy8g
SXQncyBkZWZpbml0ZWx5IGEgSlNTdHJpbmcsIGFuZCBpdCdzIGFuIGlkZW50aWZpZXIuCi1zdGF0
aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY1N0cmluZ1ZhciAgICAgICAgICA9IDF1bGwgPDwg
MjI7IC8vIEl0J3MgZGVmaW5pdGVseSBhIEpTU3RyaW5nLCBhbmQgaXQncyBub3QgYW4gaWRlbnRp
Zmllci4KK3N0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjV2Vha01hcE9iamVjdCAgICAg
ID0gMXVsbCA8PCAxODsgLy8gSXQncyBkZWZpbml0ZWx5IGEgV2Vha01hcCBvYmplY3Qgb3Igb25l
IG9mIGl0cyBzdWJjbGFzc2VzLgorc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNXZWFr
U2V0T2JqZWN0ICAgICAgPSAxdWxsIDw8IDE5OyAvLyBJdCdzIGRlZmluaXRlbHkgYSBXZWFrU2V0
IG9iamVjdCBvciBvbmUgb2YgaXRzIHN1YmNsYXNzZXMuCitzdGF0aWMgY29uc3QgU3BlY3VsYXRl
ZFR5cGUgU3BlY1Byb3h5T2JqZWN0ICAgICAgICA9IDF1bGwgPDwgMjA7IC8vIEl0J3MgZGVmaW5p
dGVseSBhIFByb3h5IG9iamVjdCBvciBvbmUgb2YgaXRzIHN1YmNsYXNzZXMuCitzdGF0aWMgY29u
c3QgU3BlY3VsYXRlZFR5cGUgU3BlY0Rlcml2ZWRBcnJheSAgICAgICA9IDF1bGwgPDwgMjE7IC8v
IEl0J3MgZGVmaW5pdGVseSBhIERlcml2ZWRBcnJheSBvYmplY3QuCitzdGF0aWMgY29uc3QgU3Bl
Y3VsYXRlZFR5cGUgU3BlY09iamVjdE90aGVyICAgICAgICA9IDF1bGwgPDwgMjI7IC8vIEl0J3Mg
ZGVmaW5pdGVseSBhbiBvYmplY3QgYnV0IG5vdCBKU0ZpbmFsT2JqZWN0LCBKU0FycmF5LCBvciBK
U0Z1bmN0aW9uLgorc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNPYmplY3QgICAgICAg
ICAgICAgPSBTcGVjRmluYWxPYmplY3QgfCBTcGVjQXJyYXkgfCBTcGVjRnVuY3Rpb24gfCBTcGVj
VHlwZWRBcnJheVZpZXcgfCBTcGVjRGlyZWN0QXJndW1lbnRzIHwgU3BlY1Njb3BlZEFyZ3VtZW50
cyB8IFNwZWNTdHJpbmdPYmplY3QgfCBTcGVjUmVnRXhwT2JqZWN0IHwgU3BlY01hcE9iamVjdCB8
IFNwZWNTZXRPYmplY3QgfCBTcGVjV2Vha01hcE9iamVjdCB8IFNwZWNXZWFrU2V0T2JqZWN0IHwg
U3BlY1Byb3h5T2JqZWN0IHwgU3BlY0Rlcml2ZWRBcnJheSB8IFNwZWNPYmplY3RPdGhlcjsgLy8g
Qml0bWFzayB1c2VkIGZvciB0ZXN0aW5nIGZvciBhbnkga2luZCBvZiBvYmplY3QgcHJlZGljdGlv
bi4KK3N0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjU3RyaW5nSWRlbnQgICAgICAgID0g
MXVsbCA8PCAyMzsgLy8gSXQncyBkZWZpbml0ZWx5IGEgSlNTdHJpbmcsIGFuZCBpdCdzIGFuIGlk
ZW50aWZpZXIuCitzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY1N0cmluZ1ZhciAgICAg
ICAgICA9IDF1bGwgPDwgMjQ7IC8vIEl0J3MgZGVmaW5pdGVseSBhIEpTU3RyaW5nLCBhbmQgaXQn
cyBub3QgYW4gaWRlbnRpZmllci4KIHN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjU3Ry
aW5nICAgICAgICAgICAgID0gU3BlY1N0cmluZ0lkZW50IHwgU3BlY1N0cmluZ1ZhcjsgLy8gSXQn
cyBkZWZpbml0ZWx5IGEgSlNTdHJpbmcuCi1zdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3Bl
Y1N5bWJvbCAgICAgICAgICAgICA9IDF1bGwgPDwgMjM7IC8vIEl0J3MgZGVmaW5pdGVseSBhIFN5
bWJvbC4KLXN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjQ2VsbE90aGVyICAgICAgICAg
ID0gMXVsbCA8PCAyNDsgLy8gSXQncyBkZWZpbml0ZWx5IGEgSlNDZWxsIGJ1dCBub3QgYSBzdWJj
bGFzcyBvZiBKU09iamVjdCBhbmQgZGVmaW5pdGVseSBub3QgYSBKU1N0cmluZyBvciBhIFN5bWJv
bC4KK3N0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjU3ltYm9sICAgICAgICAgICAgID0g
MXVsbCA8PCAyNTsgLy8gSXQncyBkZWZpbml0ZWx5IGEgU3ltYm9sLgorc3RhdGljIGNvbnN0IFNw
ZWN1bGF0ZWRUeXBlIFNwZWNDZWxsT3RoZXIgICAgICAgICAgPSAxdWxsIDw8IDI2OyAvLyBJdCdz
IGRlZmluaXRlbHkgYSBKU0NlbGwgYnV0IG5vdCBhIHN1YmNsYXNzIG9mIEpTT2JqZWN0IGFuZCBk
ZWZpbml0ZWx5IG5vdCBhIEpTU3RyaW5nIG9yIGEgU3ltYm9sLgogc3RhdGljIGNvbnN0IFNwZWN1
bGF0ZWRUeXBlIFNwZWNDZWxsICAgICAgICAgICAgICAgPSBTcGVjT2JqZWN0IHwgU3BlY1N0cmlu
ZyB8IFNwZWNTeW1ib2wgfCBTcGVjQ2VsbE90aGVyOyAvLyBJdCdzIGRlZmluaXRlbHkgYSBKU0Nl
bGwuCi1zdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0Jvb2xJbnQzMiAgICAgICAgICA9
IDF1bGwgPDwgMjU7IC8vIEl0J3MgZGVmaW5pdGVseSBhbiBJbnQzMiB3aXRoIHZhbHVlIDAgb3Ig
MS4KLXN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjTm9uQm9vbEludDMyICAgICAgID0g
MXVsbCA8PCAyNjsgLy8gSXQncyBkZWZpbml0ZWx5IGFuIEludDMyIHdpdGggdmFsdWUgb3RoZXIg
dGhhbiAwIG9yIDEuCitzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0Jvb2xJbnQzMiAg
ICAgICAgICA9IDF1bGwgPDwgMjc7IC8vIEl0J3MgZGVmaW5pdGVseSBhbiBJbnQzMiB3aXRoIHZh
bHVlIDAgb3IgMS4KK3N0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjTm9uQm9vbEludDMy
ICAgICAgID0gMXVsbCA8PCAyODsgLy8gSXQncyBkZWZpbml0ZWx5IGFuIEludDMyIHdpdGggdmFs
dWUgb3RoZXIgdGhhbiAwIG9yIDEuCiBzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0lu
dDMyT25seSAgICAgICAgICA9IFNwZWNCb29sSW50MzIgfCBTcGVjTm9uQm9vbEludDMyOyAvLyBJ
dCdzIGRlZmluaXRlbHkgYW4gSW50MzIuCi1zdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3Bl
Y0ludDUyT25seSAgICAgICAgICA9IDF1bGwgPDwgMjc7IC8vIEl0J3MgZGVmaW5pdGVseSBhbiBJ
bnQ1MiBhbmQgd2UgaW50ZW5kIGl0IHRvIHVuYm94IGl0LiBJdCdzIGFsc28gZGVmaW5pdGVseSBu
b3QgYW4gSW50MzIuCitzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0ludDUyT25seSAg
ICAgICAgICA9IDF1bGwgPDwgMjk7IC8vIEl0J3MgZGVmaW5pdGVseSBhbiBJbnQ1MiBhbmQgd2Ug
aW50ZW5kIGl0IHRvIHVuYm94IGl0LiBJdCdzIGFsc28gZGVmaW5pdGVseSBub3QgYW4gSW50MzIu
CiBzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0FueUludCAgICAgICAgICAgICA9IFNw
ZWNJbnQzMk9ubHkgfCBTcGVjSW50NTJPbmx5OyAvLyBJdCdzIHNvbWV0aGluZyB0aGF0IHdlIGNh
biBkbyBtYWNoaW5lIGludCBhcml0aG1ldGljIG9uLgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRU
eXBlIFNwZWNBbnlJbnRBc0RvdWJsZSAgICAgPSAxdWxsIDw8IDI4OyAvLyBJdCdzIGRlZmluaXRl
bHkgYW4gSW50NTIgYW5kIGl0J3MgaW5zaWRlIGEgZG91YmxlLgotc3RhdGljIGNvbnN0IFNwZWN1
bGF0ZWRUeXBlIFNwZWNOb25JbnRBc0RvdWJsZSAgICAgPSAxdWxsIDw8IDI5OyAvLyBJdCdzIGRl
ZmluaXRlbHkgbm90IGFuIEludDUyIGJ1dCBpdCdzIGEgcmVhbCBudW1iZXIgYW5kIGl0J3MgYSBk
b3VibGUuCitzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0FueUludEFzRG91YmxlICAg
ICA9IDF1bGwgPDwgMzA7IC8vIEl0J3MgZGVmaW5pdGVseSBhbiBJbnQ1MiBhbmQgaXQncyBpbnNp
ZGUgYSBkb3VibGUuCitzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY05vbkludEFzRG91
YmxlICAgICA9IDF1bGwgPDwgMzE7IC8vIEl0J3MgZGVmaW5pdGVseSBub3QgYW4gSW50NTIgYnV0
IGl0J3MgYSByZWFsIG51bWJlciBhbmQgaXQncyBhIGRvdWJsZS4KIHN0YXRpYyBjb25zdCBTcGVj
dWxhdGVkVHlwZSBTcGVjRG91YmxlUmVhbCAgICAgICAgID0gU3BlY05vbkludEFzRG91YmxlIHwg
U3BlY0FueUludEFzRG91YmxlOyAvLyBJdCdzIGRlZmluaXRlbHkgYSBub24tTmFOIGRvdWJsZS4K
LXN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjRG91YmxlUHVyZU5hTiAgICAgID0gMXVs
bCA8PCAzMDsgLy8gSXQncyBkZWZpbml0ZWx5IGEgTmFOIHRoYXQgaXMgc2FmZSB0byB0YWcgKGku
ZS4gcHVyZSkuCi1zdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0RvdWJsZUltcHVyZU5h
TiAgICA9IDF1bGwgPDwgMzE7IC8vIEl0J3MgZGVmaW5pdGVseSBhIE5hTiB0aGF0IGlzIHVuc2Fm
ZSB0byB0YWcgKGkuZS4gaW1wdXJlKS4KK3N0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVj
RG91YmxlUHVyZU5hTiAgICAgID0gMXVsbCA8PCAzMjsgLy8gSXQncyBkZWZpbml0ZWx5IGEgTmFO
IHRoYXQgaXMgc2FmZSB0byB0YWcgKGkuZS4gcHVyZSkuCitzdGF0aWMgY29uc3QgU3BlY3VsYXRl
ZFR5cGUgU3BlY0RvdWJsZUltcHVyZU5hTiAgICA9IDF1bGwgPDwgMzM7IC8vIEl0J3MgZGVmaW5p
dGVseSBhIE5hTiB0aGF0IGlzIHVuc2FmZSB0byB0YWcgKGkuZS4gaW1wdXJlKS4KIHN0YXRpYyBj
b25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjRG91YmxlTmFOICAgICAgICAgID0gU3BlY0RvdWJsZVB1
cmVOYU4gfCBTcGVjRG91YmxlSW1wdXJlTmFOOyAvLyBJdCdzIGRlZmluaXRlbHkgc29tZSBraW5k
IG9mIE5hTi4KIHN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjQnl0ZWNvZGVEb3VibGUg
ICAgID0gU3BlY0RvdWJsZVJlYWwgfCBTcGVjRG91YmxlUHVyZU5hTjsgLy8gSXQncyBlaXRoZXIg
YSBub24tTmFOIG9yIGEgTmFOIGRvdWJsZSwgYnV0IGl0J3MgZGVmaW5pdGVseSBub3QgaW1wdXJl
IE5hTi4KIHN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjRnVsbERvdWJsZSAgICAgICAg
ID0gU3BlY0RvdWJsZVJlYWwgfCBTcGVjRG91YmxlTmFOOyAvLyBJdCdzIGVpdGhlciBhIG5vbi1O
YU4gb3IgYSBOYU4gZG91YmxlLgpAQCAtODUsMTIgKzg3LDEyIEBAIHN0YXRpYyBjb25zdCBTcGVj
dWxhdGVkVHlwZSBTcGVjQnl0ZWNvZGVSZWFsTnVtYmVyID0gU3BlY0ludDMyT25seSB8IFNwZWNE
b3VibGVSCiBzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0Z1bGxSZWFsTnVtYmVyICAg
ICA9IFNwZWNBbnlJbnQgfCBTcGVjRG91YmxlUmVhbDsgLy8gSXQncyBlaXRoZXIgYW4gSW50MzIg
b3IgYSBEb3VibGVSZWFsLCBvciBhIEludDUyLgogc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBl
IFNwZWNCeXRlY29kZU51bWJlciAgICAgPSBTcGVjSW50MzJPbmx5IHwgU3BlY0J5dGVjb2RlRG91
YmxlOyAvLyBJdCdzIGVpdGhlciBhbiBJbnQzMiBvciBhIERvdWJsZSwgYW5kIHRoZSBEb3VibGUg
Y2Fubm90IGJlIGFuIGltcHVyZSBOYU4uCiBzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3Bl
Y0Z1bGxOdW1iZXIgICAgICAgICA9IFNwZWNBbnlJbnQgfCBTcGVjRnVsbERvdWJsZTsgLy8gSXQn
cyBlaXRoZXIgYW4gSW50MzIsIEludDUyLCBvciBhIERvdWJsZSwgYW5kIHRoZSBEb3VibGUgY2Fu
IGJlIGltcHVyZSBOYU4uCi1zdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0Jvb2xlYW4g
ICAgICAgICAgICA9IDF1bGwgPDwgMzI7IC8vIEl0J3MgZGVmaW5pdGVseSBhIEJvb2xlYW4uCi1z
dGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY090aGVyICAgICAgICAgICAgICA9IDF1bGwg
PDwgMzM7IC8vIEl0J3MgZGVmaW5pdGVseSBlaXRoZXIgTnVsbCBvciBVbmRlZmluZWQuCitzdGF0
aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0Jvb2xlYW4gICAgICAgICAgICA9IDF1bGwgPDwg
MzQ7IC8vIEl0J3MgZGVmaW5pdGVseSBhIEJvb2xlYW4uCitzdGF0aWMgY29uc3QgU3BlY3VsYXRl
ZFR5cGUgU3BlY090aGVyICAgICAgICAgICAgICA9IDF1bGwgPDwgMzU7IC8vIEl0J3MgZGVmaW5p
dGVseSBlaXRoZXIgTnVsbCBvciBVbmRlZmluZWQuCiBzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5
cGUgU3BlY01pc2MgICAgICAgICAgICAgICA9IFNwZWNCb29sZWFuIHwgU3BlY090aGVyOyAvLyBJ
dCdzIGRlZmluaXRlbHkgZWl0aGVyIGEgYm9vbGVhbiwgTnVsbCwgb3IgVW5kZWZpbmVkLgogc3Rh
dGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNIZWFwVG9wICAgICAgICAgICAgPSBTcGVjQ2Vs
bCB8IFNwZWNCeXRlY29kZU51bWJlciB8IFNwZWNNaXNjOyAvLyBJdCBjYW4gYmUgYW55IG9mIHRo
ZSBhYm92ZSwgZXhjZXB0IGZvciBTcGVjSW50NTJPbmx5IGFuZCBTcGVjRG91YmxlSW1wdXJlTmFO
Lgogc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNQcmltaXRpdmUgICAgICAgICAgPSBT
cGVjU3RyaW5nIHwgU3BlY1N5bWJvbCB8IFNwZWNCeXRlY29kZU51bWJlciB8IFNwZWNNaXNjOyAv
LyBJdCdzIGFueSBub24tT2JqZWN0IEpTVmFsdWUuCi1zdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5
cGUgU3BlY0VtcHR5ICAgICAgICAgICAgICA9IDF1bGwgPDwgMzQ7IC8vIEl0J3MgZGVmaW5pdGVs
eSBhbiBlbXB0eSB2YWx1ZSBtYXJrZXIuCitzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3Bl
Y0VtcHR5ICAgICAgICAgICAgICA9IDF1bGwgPDwgMzY7IC8vIEl0J3MgZGVmaW5pdGVseSBhbiBl
bXB0eSB2YWx1ZSBtYXJrZXIuCiBzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0J5dGVj
b2RlVG9wICAgICAgICA9IFNwZWNIZWFwVG9wIHwgU3BlY0VtcHR5OyAvLyBJdCBjYW4gYmUgYW55
IG9mIHRoZSBhYm92ZSwgZXhjZXB0IGZvciBTcGVjSW50NTJPbmx5IGFuZCBTcGVjRG91YmxlSW1w
dXJlTmFOLiBDb3JyZXNwb25kcyB0byB3aGF0IGNvdWxkIGJlIGZvdW5kIGluIGEgYnl0ZWNvZGUg
bG9jYWwuCiBzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0Z1bGxUb3AgICAgICAgICAg
ICA9IFNwZWNCeXRlY29kZVRvcCB8IFNwZWNGdWxsTnVtYmVyOyAvLyBJdCBjYW4gYmUgYW55dGhp
bmcgdGhhdCBieXRlY29kZSBjb3VsZCBzZWUgcGx1cyBleG90aWMgZW5jb2RpbmdzIG9mIG51bWJl
cnMuCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJ
bnRlcnByZXRlcklubGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJh
Y3RJbnRlcnByZXRlcklubGluZXMuaAppbmRleCAzMDE0ODU0YTFhMmQ2M2JmNTkxMjhhNDA5MTY5
NDRiYThkM2E4OTkxLi4wYzcyMjRhOTMzNDUzOTRiYzQzNmQzNDljNjgzMDc5YzVjN2RmNDQ4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0
ZXJJbmxpbmVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdElu
dGVycHJldGVySW5saW5lcy5oCkBAIC0xMDk5LDYgKzEwOTksMTAgQEAgYm9vbCBBYnN0cmFjdElu
dGVycHJldGVyPEFic3RyYWN0U3RhdGVUeXBlPjo6ZXhlY3V0ZUVmZmVjdHModW5zaWduZWQgY2xv
YmJlckxpbWkKICAgICAgICAgfQogICAgICAgICBicmVhazsKIAorICAgIGNhc2UgV2Vha01hcEdl
dDoKKyAgICAgICAgZm9yTm9kZShub2RlKS5tYWtlSGVhcFRvcCgpOworICAgICAgICBicmVhazsK
KwogICAgIGNhc2UgSXNFbXB0eToKICAgICBjYXNlIElzVW5kZWZpbmVkOgogICAgIGNhc2UgSXNC
b29sZWFuOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29k
ZVBhcnNlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2Vy
LmNwcAppbmRleCBiNDlmMmU5Y2NhY2NjZjhkYjUyNmUyNWMzNDY4ZjQyM2IwNmE1NzA2Li4xYjVk
N2FlZWI4MjcxYTFhN2Y3NDIyMjIyNmJkYTdkNWE1NzIwZTA4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcApAQCAtMjk3NSw2ICsyOTc1LDIy
IEBAIGJvb2wgQnl0ZUNvZGVQYXJzZXI6OmhhbmRsZUludHJpbnNpY0NhbGwoTm9kZSogY2FsbGVl
LCBpbnQgcmVzdWx0T3BlcmFuZCwgSW50cmluCiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0K
IAorICAgIGNhc2UgSlNXZWFrTWFwR2V0SW50cmluc2ljOiB7CisgICAgICAgIGlmIChhcmd1bWVu
dENvdW50SW5jbHVkaW5nVGhpcyAhPSAyKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisg
ICAgICAgIGlmIChtX2lubGluZVN0YWNrVG9wLT5tX2V4aXRQcm9maWxlLmhhc0V4aXRTaXRlKG1f
Y3VycmVudEluZGV4LCBCYWRUeXBlKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAg
ICAgICBpbnNlcnRDaGVja3MoKTsKKyAgICAgICAgTm9kZSogbWFwID0gZ2V0KHZpcnR1YWxSZWdp
c3RlckZvckFyZ3VtZW50KDAsIHJlZ2lzdGVyT2Zmc2V0KSk7CisgICAgICAgIE5vZGUqIGtleSA9
IGdldCh2aXJ0dWFsUmVnaXN0ZXJGb3JBcmd1bWVudCgxLCByZWdpc3Rlck9mZnNldCkpOworICAg
ICAgICBOb2RlKiBoYXNoID0gYWRkVG9HcmFwaChNYXBIYXNoLCBrZXkpOworICAgICAgICBOb2Rl
KiByZXN1bHQgPSBhZGRUb0dyYXBoKFdlYWtNYXBHZXQsIE9wSW5mbygpLCBPcEluZm8ocHJlZGlj
dGlvbiksIG1hcCwga2V5LCBoYXNoKTsKKyAgICAgICAgc2V0KFZpcnR1YWxSZWdpc3RlcihyZXN1
bHRPcGVyYW5kKSwgcmVzdWx0KTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCiAgICAg
Y2FzZSBIYXNPd25Qcm9wZXJ0eUludHJpbnNpYzogewogICAgICAgICBpZiAoYXJndW1lbnRDb3Vu
dEluY2x1ZGluZ1RoaXMgIT0gMikKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVyaXplLmgKaW5kZXggNTJiZDhjMTQ0N2JjYTg1MThm
YzEyZDJmYjlhZTllNTRlNzE3OGM4Zi4uNzExYTQ1M2UyM2MxMWU2MmFmMWQzMzBlNGU1MTI3YTJh
YTc5YmRmYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVy
aXplLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVyaXplLmgKQEAg
LTE1NDcsNiArMTU0Nyw3IEBAIHZvaWQgY2xvYmJlcml6ZShHcmFwaCYgZ3JhcGgsIE5vZGUqIG5v
ZGUsIGNvbnN0IFJlYWRGdW5jdG9yJiByZWFkLCBjb25zdCBXcml0ZUZ1CiAgICAgY2FzZSBNYXBI
YXNoOgogICAgICAgICBkZWYoUHVyZVZhbHVlKG5vZGUpKTsKICAgICAgICAgcmV0dXJuOworCiAg
ICAgY2FzZSBHZXRNYXBCdWNrZXQ6IHsKICAgICAgICAgcmVhZChNaXNjRmllbGRzKTsKICAgICAg
ICAgRWRnZSYgbWFwRWRnZSA9IG5vZGUtPmNoaWxkMSgpOwpAQCAtMTU1NCwxMiArMTU1NSwxNCBA
QCB2b2lkIGNsb2JiZXJpemUoR3JhcGgmIGdyYXBoLCBOb2RlKiBub2RlLCBjb25zdCBSZWFkRnVu
Y3RvciYgcmVhZCwgY29uc3QgV3JpdGVGdQogICAgICAgICBkZWYoSGVhcExvY2F0aW9uKE1hcEJ1
Y2tldExvYywgTWlzY0ZpZWxkcywgbWFwRWRnZSwga2V5RWRnZSksIExhenlOb2RlKG5vZGUpKTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KKwogICAgIGNhc2UgR2V0TWFwQnVja2V0SGVhZDogewog
ICAgICAgICByZWFkKE1pc2NGaWVsZHMpOwogICAgICAgICBFZGdlJiBtYXBFZGdlID0gbm9kZS0+
Y2hpbGQxKCk7CiAgICAgICAgIGRlZihIZWFwTG9jYXRpb24oTWFwQnVja2V0SGVhZExvYywgTWlz
Y0ZpZWxkcywgbWFwRWRnZSksIExhenlOb2RlKG5vZGUpKTsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KKwogICAgIGNhc2UgR2V0TWFwQnVja2V0TmV4dDogewogICAgICAgICByZWFkKE1pc2NGaWVs
ZHMpOwogICAgICAgICBMb2NhdGlvbktpbmQgbG9jYXRpb25LaW5kID0gTWFwQnVja2V0TWFwTmV4
dExvYzsKQEAgLTE1NjksMTIgKzE1NzIsMTQgQEAgdm9pZCBjbG9iYmVyaXplKEdyYXBoJiBncmFw
aCwgTm9kZSogbm9kZSwgY29uc3QgUmVhZEZ1bmN0b3ImIHJlYWQsIGNvbnN0IFdyaXRlRnUKICAg
ICAgICAgZGVmKEhlYXBMb2NhdGlvbihsb2NhdGlvbktpbmQsIE1pc2NGaWVsZHMsIGJ1Y2tldEVk
Z2UpLCBMYXp5Tm9kZShub2RlKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CisKICAgICBjYXNl
IExvYWRLZXlGcm9tTWFwQnVja2V0OiB7CiAgICAgICAgIHJlYWQoTWlzY0ZpZWxkcyk7CiAgICAg
ICAgIEVkZ2UmIGJ1Y2tldEVkZ2UgPSBub2RlLT5jaGlsZDEoKTsKICAgICAgICAgZGVmKEhlYXBM
b2NhdGlvbihNYXBCdWNrZXRLZXlMb2MsIE1pc2NGaWVsZHMsIGJ1Y2tldEVkZ2UpLCBMYXp5Tm9k
ZShub2RlKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CisKICAgICBjYXNlIExvYWRWYWx1ZUZy
b21NYXBCdWNrZXQ6IHsKICAgICAgICAgcmVhZChNaXNjRmllbGRzKTsKICAgICAgICAgRWRnZSYg
YnVja2V0RWRnZSA9IG5vZGUtPmNoaWxkMSgpOwpAQCAtMTU4Miw2ICsxNTg3LDE0IEBAIHZvaWQg
Y2xvYmJlcml6ZShHcmFwaCYgZ3JhcGgsIE5vZGUqIG5vZGUsIGNvbnN0IFJlYWRGdW5jdG9yJiBy
ZWFkLCBjb25zdCBXcml0ZUZ1CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKKyAgICBjYXNlIFdl
YWtNYXBHZXQ6IHsKKyAgICAgICAgcmVhZChNaXNjRmllbGRzKTsKKyAgICAgICAgRWRnZSYgbWFw
RWRnZSA9IG5vZGUtPmNoaWxkMSgpOworICAgICAgICBFZGdlJiBrZXlFZGdlID0gbm9kZS0+Y2hp
bGQyKCk7CisgICAgICAgIGRlZihIZWFwTG9jYXRpb24oV2Vha01hcEdldExvYywgTWlzY0ZpZWxk
cywgbWFwRWRnZSwga2V5RWRnZSksIExhenlOb2RlKG5vZGUpKTsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKwogICAgIGNhc2UgVG9Mb3dlckNhc2U6CiAgICAgICAgIGRlZihQdXJlVmFsdWUobm9k
ZSkpOwogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0RvZXNHQy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RvZXNHQy5j
cHAKaW5kZXggMDgzYzc1NTQ0MGI0N2FhM2UyMWFjMjVhMTE1MzJiMGNlMzViOTM2Yi4uZGE3MTk3
NjVmMWRlZWVhNmE3Y2I2Mzg2ZjU2OTM4OTU4YjQ4NzYyNyAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdEb2VzR0MuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHRG9lc0dDLmNwcApAQCAtMjAzLDYgKzIwMyw3IEBAIGJvb2wgZG9lc0dDKEdyYXBo
JiBncmFwaCwgTm9kZSogbm9kZSkKICAgICBjYXNlIEdldE1hcEJ1Y2tldE5leHQ6CiAgICAgY2Fz
ZSBMb2FkS2V5RnJvbU1hcEJ1Y2tldDoKICAgICBjYXNlIExvYWRWYWx1ZUZyb21NYXBCdWNrZXQ6
CisgICAgY2FzZSBXZWFrTWFwR2V0OgogICAgIGNhc2UgVW5yZWFjaGFibGU6CiAgICAgY2FzZSBF
eHRyYWN0Q2F0Y2hMb2NhbDoKICAgICBjYXNlIEV4dHJhY3RPU1JFbnRyeUxvY2FsOgpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAKaW5kZXggMmZmNmJmMDEwNmJj
ZTJlNzdkNjdhNzNhODNmNzAwMTcwYWFmOWNjOC4uNjI5ODk0YjQ0N2E0MTlkMWJmZTJmMzQyOWY0
MmQ5ZThhODFlYWI4ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdG
aXh1cFBoYXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhh
c2UuY3BwCkBAIC0xOTAwLDYgKzE5MDAsMTMgQEAgY2xhc3MgRml4dXBQaGFzZSA6IHB1YmxpYyBQ
aGFzZSB7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogCisgICAgICAgIGNhc2UgV2Vh
a01hcEdldDogeworICAgICAgICAgICAgZml4RWRnZTxXZWFrTWFwT2JqZWN0VXNlPihub2RlLT5j
aGlsZDEoKSk7CisgICAgICAgICAgICBmaXhFZGdlPE9iamVjdFVzZT4obm9kZS0+Y2hpbGQyKCkp
OworICAgICAgICAgICAgZml4RWRnZTxJbnQzMlVzZT4obm9kZS0+Y2hpbGQzKCkpOworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIH0KKwogICAgICAgICBjYXNlIERlZmluZURhdGFQcm9wZXJ0
eTogewogICAgICAgICAgICAgZml4RWRnZTxDZWxsVXNlPihtX2dyYXBoLnZhckFyZ0NoaWxkKG5v
ZGUsIDApKTsKICAgICAgICAgICAgIEVkZ2UmIHByb3BlcnR5RWRnZSA9IG1fZ3JhcGgudmFyQXJn
Q2hpbGQobm9kZSwgMSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0hlYXBMb2NhdGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0hlYXBMb2Nh
dGlvbi5jcHAKaW5kZXggNjBiZDU3MjZiYzU4Y2I3NDY4ZDc4ZDUzNjRiZjQ0NWZkOGI5ODY0ZS4u
NGVkMGU0NzYyYTUxZjI4MDI3Yzc2YzhhMTRjMGQyYzE4ZjljZGI2NiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdIZWFwTG9jYXRpb24uY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHSGVhcExvY2F0aW9uLmNwcApAQCAtMTU5LDI0ICsxNTksMzUg
QEAgdm9pZCBwcmludEludGVybmFsKFByaW50U3RyZWFtJiBvdXQsIExvY2F0aW9uS2luZCBraW5k
KQogICAgIGNhc2UgUmVnRXhwT2JqZWN0TGFzdEluZGV4TG9jOgogICAgICAgICBvdXQucHJpbnQo
IlJlZ0V4cE9iamVjdExhc3RJbmRleExvYyIpOwogICAgICAgICByZXR1cm47CisKICAgICBjYXNl
IE1hcEJ1Y2tldExvYzoKICAgICAgICAgb3V0LnByaW50KCJNYXBCdWNrZXRMb2MiKTsKICAgICAg
ICAgcmV0dXJuOworCiAgICAgY2FzZSBNYXBCdWNrZXRIZWFkTG9jOgogICAgICAgICBvdXQucHJp
bnQoIk1hcEJ1Y2tldEhlYWRMb2MiKTsKICAgICAgICAgcmV0dXJuOworCiAgICAgY2FzZSBNYXBC
dWNrZXRLZXlMb2M6CiAgICAgICAgIG91dC5wcmludCgiTWFwQnVja2V0S2V5TG9jIik7CiAgICAg
ICAgIHJldHVybjsKKwogICAgIGNhc2UgTWFwQnVja2V0VmFsdWVMb2M6CiAgICAgICAgIG91dC5w
cmludCgiTWFwQnVja2V0VmFsdWVMb2MiKTsKICAgICAgICAgcmV0dXJuOworCiAgICAgY2FzZSBN
YXBCdWNrZXRNYXBOZXh0TG9jOgogICAgICAgICBvdXQucHJpbnQoIk1hcEJ1Y2tldE1hcE5leHRM
b2MiKTsKICAgICAgICAgcmV0dXJuOworCiAgICAgY2FzZSBNYXBCdWNrZXRTZXROZXh0TG9jOgog
ICAgICAgICBvdXQucHJpbnQoIk1hcEJ1Y2tldFNldE5leHRMb2MiKTsKICAgICAgICAgcmV0dXJu
OworCisgICAgY2FzZSBXZWFrTWFwR2V0TG9jOgorICAgICAgICBvdXQucHJpbnQoIldlYWtNYXBH
ZXRMb2MiKTsKKyAgICAgICAgcmV0dXJuOworCiAgICAgY2FzZSBET01TdGF0ZUxvYzoKICAgICAg
ICAgb3V0LnByaW50KCJET01TdGF0ZUxvYyIpOwogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0hlYXBMb2NhdGlvbi5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdIZWFwTG9jYXRpb24uaAppbmRleCBiODJjOTIyZGEyN2Y3ZTAw
ZjI3YjVhYTMwNzdlZTQwNTU1MThlZWM0Li42NzY1NjVjZmJmMGQxMzEyMTk4Y2Q0MTRiMmEzYmE2
NzYwYTBjOTNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0hlYXBM
b2NhdGlvbi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSGVhcExvY2F0aW9u
LmgKQEAgLTY4LDYgKzY4LDcgQEAgZW51bSBMb2NhdGlvbktpbmQgewogICAgIE1hcEJ1Y2tldEtl
eUxvYywKICAgICBNYXBCdWNrZXRNYXBOZXh0TG9jLAogICAgIE1hcEJ1Y2tldFNldE5leHRMb2Ms
CisgICAgV2Vha01hcEdldExvYywKICAgICBET01TdGF0ZUxvYywKIH07CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZS5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdOb2RlLmgKaW5kZXggMjEzOTE5MGEyMDUwMmY2ZGUwNGQ2OGMyNTAyNjBkZDAz
OGViOWNmYy4uYmZjOTU5OWNjYzNhYjc0MTZmNTc2YWRmM2RhYjg3YzU5ZmYxNThiNyAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgKQEAgLTE1NzksNiArMTU3OSw3IEBAIHN0cnVjdCBO
b2RlIHsKICAgICAgICAgY2FzZSBBdG9taWNzU3ViOgogICAgICAgICBjYXNlIEF0b21pY3NYb3I6
CiAgICAgICAgIGNhc2UgR2V0RHluYW1pY1ZhcjoKKyAgICAgICAgY2FzZSBXZWFrTWFwR2V0Ogog
ICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05v
ZGVUeXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVUeXBlLmgKaW5kZXgg
MGU1YmI3ODI4OTMyZGRlNWUxNjNlODJjZGM0YjljNmU0YjIyNDU3MC4uMTM4ZjIzNjA1ZGI3YmNk
YTI2ZmE0NjVlNzE4ZDUyN2NlYmIzZWIwMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdOb2RlVHlwZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
Tm9kZVR5cGUuaApAQCAtNDM3LDYgKzQzNyw4IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2Ug
REZHIHsKICAgICBtYWNybyhHZXRNYXBCdWNrZXROZXh0LCBOb2RlUmVzdWx0SlMpIFwKICAgICBt
YWNybyhMb2FkS2V5RnJvbU1hcEJ1Y2tldCwgTm9kZVJlc3VsdEpTKSBcCiAgICAgbWFjcm8oTG9h
ZFZhbHVlRnJvbU1hcEJ1Y2tldCwgTm9kZVJlc3VsdEpTKSBcCisgICAgLyogTm9kZXMgZm9yIEpT
V2Vha01hcCBhbmQgSlNXZWFrU2V0ICovIFwKKyAgICBtYWNybyhXZWFrTWFwR2V0LCBOb2RlUmVz
dWx0SlMpIFwKICAgICBcCiAgICAgbWFjcm8oVG9Mb3dlckNhc2UsIE5vZGVSZXN1bHRKUykgXAog
ICAgIC8qIE5vZGVzIGZvciBET00gSklUICovXApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHT3BlcmF0aW9ucy5jcHAKaW5kZXggZjIyNzA3MDI4OGFlMjllMjJjMjcwODQwODYwMWZjNjBm
M2ZmMjY3MS4uZDE5YTdjNzU3OGZiYjU3ZGQzZDYxYjE5NTJiNzNiYTQyZGFhZGQ3YSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCkBAIC01NSw2ICs1NSw3
IEBACiAjaW5jbHVkZSAiSlNMZXhpY2FsRW52aXJvbm1lbnQuaCIKICNpbmNsdWRlICJKU01hcC5o
IgogI2luY2x1ZGUgIkpTU2V0LmgiCisjaW5jbHVkZSAiSlNXZWFrTWFwLmgiCiAjaW5jbHVkZSAi
T2JqZWN0Q29uc3RydWN0b3IuaCIKICNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAi
UGFyc2VJbnQuaCIKQEAgLTk0OSw2ICs5NTAsMTMgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBvcGVyYXRpb25SZWdFeHBFeGVjR2VuZXJpYyhFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmEK
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGFzUmVnRXhwT2JqZWN0KGJhc2UpLT5leGVjKGV4
ZWMsIGdsb2JhbE9iamVjdCwgaW5wdXQpKTsKIH0KIAorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBvcGVyYXRpb25XZWFrTWFwR2V0KEV4ZWNTdGF0ZSogZXhlYywgSlNDZWxsKiB3ZWFrTWFw
LCBKU0NlbGwqIG9iamVjdCwgaW50MzJfdCBoYXNoKQoreworICAgIFZNJiB2bSA9IGV4ZWMtPnZt
KCk7CisgICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcigmdm0sIGV4ZWMpOworICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoanNDYXN0PEpTV2Vha01hcCo+KHdlYWtNYXApLT5pbmxpbmVH
ZXQoYXNPYmplY3Qob2JqZWN0KSwgaGFzaCkpOworfQorCiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIG9wZXJhdGlvblBhcnNlSW50Tm9SYWRpeEdlbmVyaWMoRXhlY1N0YXRlKiBleGVjLCBF
bmNvZGVkSlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuaAppbmRleCA0MmNhNzg0ZjkzZGI5ZDIw
OTRhOGRlZTNkZTUzNDhjNWQ0M2ZlOWQzLi41NDc2YmIxMDgwMjI2YmEwMGJkN2Y1ZWFiZDlkOTJj
NjllZGFmYWYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJh
dGlvbnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuaApA
QCAtMTQxLDYgKzE0MSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9u
QXJyYXlQb3BBbmRSZWNvdmVyTGVuZ3RoKEV4ZWNTdGF0ZSosIEpTQXJyCiBFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblJlZ0V4cEV4ZWNTdHJpbmcoRXhlY1N0YXRlKiwgSlNH
bG9iYWxPYmplY3QqLCBSZWdFeHBPYmplY3QqLCBKU1N0cmluZyopIFdURl9JTlRFUk5BTDsKIEVu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUmVnRXhwRXhlYyhFeGVjU3RhdGUq
LCBKU0dsb2JhbE9iamVjdCosIFJlZ0V4cE9iamVjdCosIEVuY29kZWRKU1ZhbHVlKSBXVEZfSU5U
RVJOQUw7CiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblJlZ0V4cEV4ZWNH
ZW5lcmljKEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvbldlYWtNYXBHZXQoRXhlY1N0YXRlKiwgSlNDZWxsKiwgSlNDZWxsKiwgaW50MzJfdCkg
V1RGX0lOVEVSTkFMOwogLy8gVGhlc2UgY29tcGFyaXNvbnMgcmV0dXJuIGEgYm9vbGVhbiB3aXRo
aW4gYSBzaXplX3Qgc3VjaCB0aGF0IHRoZSB2YWx1ZSBpcyB6ZXJvIGV4dGVuZGVkIHRvIGZpbGwg
dGhlIHJlZ2lzdGVyLgogc2l6ZV90IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUmVnRXhwVGVzdFN0
cmluZyhFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCosIFJlZ0V4cE9iamVjdCosIEpTU3RyaW5n
KikgV1RGX0lOVEVSTkFMOwogc2l6ZV90IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUmVnRXhwVGVz
dChFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCosIFJlZ0V4cE9iamVjdCosIEVuY29kZWRKU1Zh
bHVlKSBXVEZfSU5URVJOQUw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwCmluZGV4IDk1NGY3OTRmZWQ4
ZDZjOTNhYWFmM2MwNmM3MGVhMTRkZTVlODNiMDQuLmY2ZjVmNTdlM2ExN2I1MzIwNzJlMTA1YjAw
YTFiZDJmYjg3NjJjYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
UHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwCkBAIC03MjIsNyArNzIyLDgg
QEAgY2xhc3MgUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UgOiBwdWJsaWMgUGhhc2UgewogICAg
ICAgICBjYXNlIFRvTnVtYmVyOgogICAgICAgICBjYXNlIEdldEFyZ3VtZW50OgogICAgICAgICBj
YXNlIENhbGxET01HZXR0ZXI6Ci0gICAgICAgIGNhc2UgR2V0RHluYW1pY1ZhcjogeworICAgICAg
ICBjYXNlIEdldER5bmFtaWNWYXI6CisgICAgICAgIGNhc2UgV2Vha01hcEdldDogewogICAgICAg
ICAgICAgc2V0UHJlZGljdGlvbihtX2N1cnJlbnROb2RlLT5nZXRIZWFwUHJlZGljdGlvbigpKTsK
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHU2FmZVRvRXhlY3V0ZS5oCmluZGV4IDNjYmQ5NTAyOGE5ZDdkYjRlMmY0YzdjNjUzZDNm
YmIxNWIxZjRiNjMuLjJiMGMzOGY2YmE4YjQzNGNkNWIxNjIxZDY5ODIyN2I0NTg4YWY1NmEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZVRvRXhlY3V0ZS5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZVRvRXhlY3V0ZS5oCkBAIC02Myw2
ICs2Myw4IEBAIGNsYXNzIFNhZmVUb0V4ZWN1dGVFZGdlIHsKICAgICAgICAgY2FzZSBEZXJpdmVk
QXJyYXlVc2U6CiAgICAgICAgIGNhc2UgTWFwT2JqZWN0VXNlOgogICAgICAgICBjYXNlIFNldE9i
amVjdFVzZToKKyAgICAgICAgY2FzZSBXZWFrTWFwT2JqZWN0VXNlOgorICAgICAgICBjYXNlIFdl
YWtTZXRPYmplY3RVc2U6CiAgICAgICAgIGNhc2UgT2JqZWN0T3JPdGhlclVzZToKICAgICAgICAg
Y2FzZSBTdHJpbmdJZGVudFVzZToKICAgICAgICAgY2FzZSBTdHJpbmdVc2U6CkBAIC00MTIsNiAr
NDE0LDcgQEAgYm9vbCBzYWZlVG9FeGVjdXRlKEFic3RyYWN0U3RhdGVUeXBlJiBzdGF0ZSwgR3Jh
cGgmIGdyYXBoLCBOb2RlKiBub2RlKQogICAgIGNhc2UgR2V0TWFwQnVja2V0TmV4dDoKICAgICBj
YXNlIExvYWRLZXlGcm9tTWFwQnVja2V0OgogICAgIGNhc2UgTG9hZFZhbHVlRnJvbU1hcEJ1Y2tl
dDoKKyAgICBjYXNlIFdlYWtNYXBHZXQ6CiAgICAgY2FzZSBBdG9taWNzQWRkOgogICAgIGNhc2Ug
QXRvbWljc0FuZDoKICAgICBjYXNlIEF0b21pY3NDb21wYXJlRXhjaGFuZ2U6CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCmluZGV4IGE3ZmM0NGVi
OWU1NTk5YzQ1YThiOTVlOGFiZDkzMmMyNDNlOTAxMDQuLmVkNmRiNDEzMDU4YzgwZDI1MDBmMGRj
YmQyNTE2OTdiMTBjZmUwOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHU3BlY3VsYXRpdmVKSVQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
U3BlY3VsYXRpdmVKSVQuY3BwCkBAIC04OTg0LDYgKzg5ODQsMzQgQEAgdm9pZCBTcGVjdWxhdGl2
ZUpJVDo6c3BlY3VsYXRlU2V0T2JqZWN0KEVkZ2UgZWRnZSkKICAgICBzcGVjdWxhdGVTZXRPYmpl
Y3QoZWRnZSwgb3BlcmFuZC5ncHIoKSk7CiB9CiAKK3ZvaWQgU3BlY3VsYXRpdmVKSVQ6OnNwZWN1
bGF0ZVdlYWtNYXBPYmplY3QoRWRnZSBlZGdlLCBHUFJSZWcgY2VsbCkKK3sKKyAgICBzcGVjdWxh
dGVDZWxsVHlwZShlZGdlLCBjZWxsLCBTcGVjV2Vha01hcE9iamVjdCwgSlNXZWFrTWFwVHlwZSk7
Cit9CisKK3ZvaWQgU3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZVdlYWtNYXBPYmplY3QoRWRnZSBl
ZGdlKQoreworICAgIGlmICghbmVlZHNUeXBlQ2hlY2soZWRnZSwgU3BlY1dlYWtNYXBPYmplY3Qp
KQorICAgICAgICByZXR1cm47CisKKyAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBvcGVyYW5kKHRo
aXMsIGVkZ2UpOworICAgIHNwZWN1bGF0ZVdlYWtNYXBPYmplY3QoZWRnZSwgb3BlcmFuZC5ncHIo
KSk7Cit9CisKK3ZvaWQgU3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZVdlYWtTZXRPYmplY3QoRWRn
ZSBlZGdlLCBHUFJSZWcgY2VsbCkKK3sKKyAgICBzcGVjdWxhdGVDZWxsVHlwZShlZGdlLCBjZWxs
LCBTcGVjV2Vha1NldE9iamVjdCwgSlNXZWFrU2V0VHlwZSk7Cit9CisKK3ZvaWQgU3BlY3VsYXRp
dmVKSVQ6OnNwZWN1bGF0ZVdlYWtTZXRPYmplY3QoRWRnZSBlZGdlKQoreworICAgIGlmICghbmVl
ZHNUeXBlQ2hlY2soZWRnZSwgU3BlY1dlYWtTZXRPYmplY3QpKQorICAgICAgICByZXR1cm47CisK
KyAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBvcGVyYW5kKHRoaXMsIGVkZ2UpOworICAgIHNwZWN1
bGF0ZVdlYWtTZXRPYmplY3QoZWRnZSwgb3BlcmFuZC5ncHIoKSk7Cit9CisKIHZvaWQgU3BlY3Vs
YXRpdmVKSVQ6OnNwZWN1bGF0ZU9iamVjdE9yT3RoZXIoRWRnZSBlZGdlKQogewogICAgIGlmICgh
bmVlZHNUeXBlQ2hlY2soZWRnZSwgU3BlY09iamVjdCB8IFNwZWNPdGhlcikpCkBAIC05MzAyLDYg
KzkzMzAsMTIgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlKE5vZGUqLCBFZGdlIGVk
Z2UpCiAgICAgY2FzZSBTZXRPYmplY3RVc2U6CiAgICAgICAgIHNwZWN1bGF0ZVNldE9iamVjdChl
ZGdlKTsKICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXZWFrTWFwT2JqZWN0VXNlOgorICAgICAg
ICBzcGVjdWxhdGVXZWFrTWFwT2JqZWN0KGVkZ2UpOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IFdlYWtTZXRPYmplY3RVc2U6CisgICAgICAgIHNwZWN1bGF0ZVdlYWtTZXRPYmplY3QoZWRnZSk7
CisgICAgICAgIGJyZWFrOwogICAgIGNhc2UgT2JqZWN0T3JPdGhlclVzZToKICAgICAgICAgc3Bl
Y3VsYXRlT2JqZWN0T3JPdGhlcihlZGdlKTsKICAgICAgICAgYnJlYWs7CkBAIC0xMDQwNyw2ICsx
MDQ0MSwyOCBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlVGhyb3dTdGF0aWNFcnJvcihO
b2RlKiBub2RlKQogICAgIG5vUmVzdWx0KG5vZGUpOwogfQogCit2b2lkIFNwZWN1bGF0aXZlSklU
Ojpjb21waWxlV2Vha01hcEdldChOb2RlKiBub2RlKQoreworICAgIFNwZWN1bGF0ZUNlbGxPcGVy
YW5kIHdlYWtNYXAodGhpcywgbm9kZS0+Y2hpbGQxKCkpOworICAgIFNwZWN1bGF0ZUNlbGxPcGVy
YW5kIG9iamVjdCh0aGlzLCBub2RlLT5jaGlsZDIoKSk7CisgICAgU3BlY3VsYXRlSW50MzJPcGVy
YW5kIGhhc2godGhpcywgbm9kZS0+Y2hpbGQzKCkpOworICAgIEpTVmFsdWVSZWdzVGVtcG9yYXJ5
IHJlc3VsdCh0aGlzKTsKKworICAgIEdQUlJlZyB3ZWFrTWFwR1BSID0gd2Vha01hcC5ncHIoKTsK
KyAgICBHUFJSZWcgb2JqZWN0R1BSID0gb2JqZWN0LmdwcigpOworICAgIEdQUlJlZyBoYXNoR1BS
ID0gaGFzaC5ncHIoKTsKKyAgICBKU1ZhbHVlUmVncyByZXN1bHRSZWdzID0gcmVzdWx0LnJlZ3Mo
KTsKKworICAgIHNwZWN1bGF0ZVdlYWtNYXBPYmplY3Qobm9kZS0+Y2hpbGQxKCksIHdlYWtNYXBH
UFIpOworICAgIHNwZWN1bGF0ZU9iamVjdChub2RlLT5jaGlsZDIoKSwgb2JqZWN0R1BSKTsKKwor
ICAgIGZsdXNoUmVnaXN0ZXJzKCk7CisgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25XZWFrTWFw
R2V0LCByZXN1bHRSZWdzLCB3ZWFrTWFwR1BSLCBvYmplY3RHUFIsIGhhc2hHUFIpOworICAgIC8v
IE5vIGV4Y2VwdGlvbiBjaGVjayBoZXJlIHNpbmNlIG9wZXJhdGlvbldlYWtNYXBHZXQgbmV2ZXIg
dGhyb3dzIGFuIGV4Y2VwdGlvbi4KKworICAgIGpzVmFsdWVSZXN1bHQocmVzdWx0UmVncywgbm9k
ZSk7Cit9CisKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpERkcKIAogI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgKaW5kZXggYWU5YjI0YzM4MDg5
ODMzY2I4NTgwMTY1NzA1MWI3NWJmZDMxN2YzMi4uYmI1NWNlM2FkMWUzMGNhNjA0ODkzYjI4OTRj
Yzk2OTM3ZWMzMTdlNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdT
cGVjdWxhdGl2ZUpJVC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3Vs
YXRpdmVKSVQuaApAQCAtMTgyOCw2ICsxODI4LDExIEBAIGNsYXNzIFNwZWN1bGF0aXZlSklUIHsK
ICAgICAgICAgbV9qaXQuc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKGFyZzEsIGFyZzIpOwog
ICAgICAgICByZXR1cm4gYXBwZW5kQ2FsbFNldFJlc3VsdChvcGVyYXRpb24sIHJlc3VsdCk7CiAg
ICAgfQorICAgIEpJVENvbXBpbGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oSl9KSVRPcGVyYXRpb25f
RUNDWiBvcGVyYXRpb24sIEpTVmFsdWVSZWdzIHJlc3VsdCwgR1BSUmVnIGFyZzEsIEdQUlJlZyBh
cmcyLCBHUFJSZWcgYXJnMykKKyAgICB7CisgICAgICAgIG1faml0LnNldHVwQXJndW1lbnRzV2l0
aEV4ZWNTdGF0ZShhcmcxLCBhcmcyLCBhcmczKTsKKyAgICAgICAgcmV0dXJuIGFwcGVuZENhbGxT
ZXRSZXN1bHQob3BlcmF0aW9uLCByZXN1bHQucGF5bG9hZEdQUigpKTsKKyAgICB9CiAgICAgSklU
Q29tcGlsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FQ0ogb3BlcmF0aW9u
LCBHUFJSZWcgcmVzdWx0LCBHUFJSZWcgYXJnMSwgR1BSUmVnIGFyZzIpCiAgICAgewogICAgICAg
ICBtX2ppdC5zZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoYXJnMSwgYXJnMik7CkBAIC0yNDAx
LDYgKzI0MDYsMTEgQEAgY2xhc3MgU3BlY3VsYXRpdmVKSVQgewogICAgICAgICBtX2ppdC5zZXR1
cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoYXJnMSwgYXJnMik7CiAgICAgICAgIHJldHVybiBhcHBl
bmRDYWxsU2V0UmVzdWx0KG9wZXJhdGlvbiwgcmVzdWx0LnBheWxvYWRHUFIoKSwgcmVzdWx0LnRh
Z0dQUigpKTsKICAgICB9CisgICAgSklUQ29tcGlsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJ
VE9wZXJhdGlvbl9FQ0NaIG9wZXJhdGlvbiwgSlNWYWx1ZVJlZ3MgcmVzdWx0LCBHUFJSZWcgYXJn
MSwgR1BSUmVnIGFyZzIsIEdQUlJlZyBhcmczKQorICAgIHsKKyAgICAgICAgbV9qaXQuc2V0dXBB
cmd1bWVudHNXaXRoRXhlY1N0YXRlKGFyZzEsIGFyZzIsIGFyZzMpOworICAgICAgICByZXR1cm4g
YXBwZW5kQ2FsbFNldFJlc3VsdChvcGVyYXRpb24sIHJlc3VsdC5wYXlsb2FkR1BSKCksIHJlc3Vs
dC50YWdHUFIoKSk7CisgICAgfQogCiAgICAgSklUQ29tcGlsZXI6OkNhbGwgY2FsbE9wZXJhdGlv
bihWX0pJVE9wZXJhdGlvbl9FT1pEIG9wZXJhdGlvbiwgR1BSUmVnIGFyZzEsIEdQUlJlZyBhcmcy
LCBGUFJSZWcgYXJnMykKICAgICB7CkBAIC0yODAxLDYgKzI4MTEsNyBAQCBjbGFzcyBTcGVjdWxh
dGl2ZUpJVCB7CiAgICAgdm9pZCBjb21waWxlQ2hlY2tTdWJDbGFzcyhOb2RlKik7CiAgICAgdm9p
ZCBjb21waWxlR2V0TWFwQnVja2V0SGVhZChOb2RlKik7CiAgICAgdm9pZCBjb21waWxlR2V0TWFw
QnVja2V0TmV4dChOb2RlKik7CisgICAgdm9pZCBjb21waWxlV2Vha01hcEdldChOb2RlKik7CiAg
ICAgdm9pZCBjb21waWxlTG9hZEtleUZyb21NYXBCdWNrZXQoTm9kZSopOwogICAgIHZvaWQgY29t
cGlsZUxvYWRWYWx1ZUZyb21NYXBCdWNrZXQoTm9kZSopOwogICAgIApAQCAtMzA2Miw2ICszMDcz
LDEwIEBAIGNsYXNzIFNwZWN1bGF0aXZlSklUIHsKICAgICB2b2lkIHNwZWN1bGF0ZU1hcE9iamVj
dChFZGdlLCBHUFJSZWcgY2VsbCk7CiAgICAgdm9pZCBzcGVjdWxhdGVTZXRPYmplY3QoRWRnZSk7
CiAgICAgdm9pZCBzcGVjdWxhdGVTZXRPYmplY3QoRWRnZSwgR1BSUmVnIGNlbGwpOworICAgIHZv
aWQgc3BlY3VsYXRlV2Vha01hcE9iamVjdChFZGdlKTsKKyAgICB2b2lkIHNwZWN1bGF0ZVdlYWtN
YXBPYmplY3QoRWRnZSwgR1BSUmVnIGNlbGwpOworICAgIHZvaWQgc3BlY3VsYXRlV2Vha1NldE9i
amVjdChFZGdlKTsKKyAgICB2b2lkIHNwZWN1bGF0ZVdlYWtTZXRPYmplY3QoRWRnZSwgR1BSUmVn
IGNlbGwpOwogICAgIHZvaWQgc3BlY3VsYXRlT2JqZWN0T3JPdGhlcihFZGdlKTsKICAgICB2b2lk
IHNwZWN1bGF0ZVN0cmluZyhFZGdlIGVkZ2UsIEdQUlJlZyBjZWxsKTsKICAgICB2b2lkIHNwZWN1
bGF0ZVN0cmluZ0lkZW50QW5kTG9hZFN0b3JhZ2UoRWRnZSBlZGdlLCBHUFJSZWcgc3RyaW5nLCBH
UFJSZWcgc3RvcmFnZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdT
cGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAppbmRleCBhZmM0YWJjZDYwMTRmMGM5ZjNkNmM5NmE4MmU2
ODI2YzI0Njc2ZWRjLi5lNGE4ZDE3NWRhNzQ4NTA2ZGU0YzVmMWVjZjgwZjIwZGEzNDAxYWQ5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJf
NjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQz
Ml82NC5jcHAKQEAgLTQ5NjQsNiArNDk2NCwxMCBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21w
aWxlKE5vZGUqIG5vZGUpCiAgICAgICAgIGNvbXBpbGVMb2FkVmFsdWVGcm9tTWFwQnVja2V0KG5v
ZGUpOwogICAgICAgICBicmVhazsKIAorICAgIGNhc2UgV2Vha01hcEdldDoKKyAgICAgICAgY29t
cGlsZVdlYWtNYXBHZXQobm9kZSk7CisgICAgICAgIGJyZWFrOworCiAgICAgY2FzZSBGbHVzaDoK
ICAgICAgICAgYnJlYWs7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nw
ZWN1bGF0aXZlSklUNjQuY3BwCmluZGV4IDJlNjVkOWZkN2NmMmFmY2Q4MGQ2ZDc3MDA4MzMzNzhm
Njg5ZDgxMzUuLjFjZGY1Zjk4YTY5NTEyNzk5YTliN2U2YjRhMTAwNGVlMzFmM2Y1MGEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcApA
QCAtNTMzNCw2ICs1MzM0LDEwIEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSog
bm9kZSkKICAgICAgICAgY29tcGlsZUxvYWRWYWx1ZUZyb21NYXBCdWNrZXQobm9kZSk7CiAgICAg
ICAgIGJyZWFrOwogCisgICAgY2FzZSBXZWFrTWFwR2V0OgorICAgICAgICBjb21waWxlV2Vha01h
cEdldChub2RlKTsKKyAgICAgICAgYnJlYWs7CisKICAgICBjYXNlIFRvTG93ZXJDYXNlOiB7CiAg
ICAgICAgIGNvbXBpbGVUb0xvd2VyQ2FzZShub2RlKTsKICAgICAgICAgYnJlYWs7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1VzZUtpbmQuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdVc2VLaW5kLmNwcAppbmRleCBlODM4MjliNzEzMDYxNzNkZTk1
YjAxMDg4YmYzZTljZDg0ZmRmNmVjLi4yM2QwZGIwMDQwZTQzNTYwMTFiMjI2NDllYWIwODM0M2M4
NDExYjEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1VzZUtpbmQu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVXNlS2luZC5jcHAKQEAgLTEw
OSw2ICsxMDksMTIgQEAgdm9pZCBwcmludEludGVybmFsKFByaW50U3RyZWFtJiBvdXQsIFVzZUtp
bmQgdXNlS2luZCkKICAgICBjYXNlIFNldE9iamVjdFVzZToKICAgICAgICAgb3V0LnByaW50KCJT
ZXRPYmplY3RVc2UiKTsKICAgICAgICAgcmV0dXJuOworICAgIGNhc2UgV2Vha01hcE9iamVjdFVz
ZToKKyAgICAgICAgb3V0LnByaW50KCJXZWFrTWFwT2JqZWN0VXNlIik7CisgICAgICAgIHJldHVy
bjsKKyAgICBjYXNlIFdlYWtTZXRPYmplY3RVc2U6CisgICAgICAgIG91dC5wcmludCgiV2Vha1Nl
dE9iamVjdFVzZSIpOworICAgICAgICByZXR1cm47CiAgICAgY2FzZSBPYmplY3RPck90aGVyVXNl
OgogICAgICAgICBvdXQucHJpbnQoIk9iamVjdE9yT3RoZXIiKTsKICAgICAgICAgcmV0dXJuOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdVc2VLaW5kLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1VzZUtpbmQuaAppbmRleCA0NmUyNzIwMWM5ODZmZGZl
M2I2MDZjNzU2MjM4OTBjMjBlMmYwMzU5Li43OTZkOGI0MGZjY2NhMDFjNGU1ZGEzODdkODI1MGUx
Y2EyZmI0MjZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1VzZUtp
bmQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1VzZUtpbmQuaApAQCAtNjcs
NiArNjcsOCBAQCBlbnVtIFVzZUtpbmQgewogICAgIFN5bWJvbFVzZSwKICAgICBNYXBPYmplY3RV
c2UsCiAgICAgU2V0T2JqZWN0VXNlLAorICAgIFdlYWtNYXBPYmplY3RVc2UsCisgICAgV2Vha1Nl
dE9iamVjdFVzZSwKICAgICBTdHJpbmdPYmplY3RVc2UsCiAgICAgU3RyaW5nT3JTdHJpbmdPYmpl
Y3RVc2UsCiAgICAgTm90U3RyaW5nVmFyVXNlLApAQCAtMTQ5LDYgKzE1MSwxMCBAQCBpbmxpbmUg
U3BlY3VsYXRlZFR5cGUgdHlwZUZpbHRlckZvcihVc2VLaW5kIHVzZUtpbmQpCiAgICAgICAgIHJl
dHVybiBTcGVjTWFwT2JqZWN0OwogICAgIGNhc2UgU2V0T2JqZWN0VXNlOgogICAgICAgICByZXR1
cm4gU3BlY1NldE9iamVjdDsKKyAgICBjYXNlIFdlYWtNYXBPYmplY3RVc2U6CisgICAgICAgIHJl
dHVybiBTcGVjV2Vha01hcE9iamVjdDsKKyAgICBjYXNlIFdlYWtTZXRPYmplY3RVc2U6CisgICAg
ICAgIHJldHVybiBTcGVjV2Vha1NldE9iamVjdDsKICAgICBjYXNlIFN0cmluZ09iamVjdFVzZToK
ICAgICAgICAgcmV0dXJuIFNwZWNTdHJpbmdPYmplY3Q7CiAgICAgY2FzZSBTdHJpbmdPclN0cmlu
Z09iamVjdFVzZToKQEAgLTI0MSw2ICsyNDcsOCBAQCBpbmxpbmUgYm9vbCBpc0NlbGwoVXNlS2lu
ZCBraW5kKQogICAgIGNhc2UgU3RyaW5nT3JTdHJpbmdPYmplY3RVc2U6CiAgICAgY2FzZSBNYXBP
YmplY3RVc2U6CiAgICAgY2FzZSBTZXRPYmplY3RVc2U6CisgICAgY2FzZSBXZWFrTWFwT2JqZWN0
VXNlOgorICAgIGNhc2UgV2Vha1NldE9iamVjdFVzZToKICAgICAgICAgcmV0dXJuIHRydWU7CiAg
ICAgZGVmYXVsdDoKICAgICAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Z0bC9GVExDYXBhYmlsaXRpZXMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2Z0bC9GVExDYXBhYmlsaXRpZXMuY3BwCmluZGV4IDAzNDBmYzAyY2Y3ZjI2NTU5ZTU0YzNk
YzFmMzE5Nzg5ZjUyNDk2YmUuLjQ1NzQ1MWMyM2JmMWJiMzk3NzE4MGIwMzYxMzQwNTkyODFjYjlm
M2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJpbGl0aWVz
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAK
QEAgLTIwMSw2ICsyMDEsNyBAQCBpbmxpbmUgQ2FwYWJpbGl0eUxldmVsIGNhbkNvbXBpbGUoTm9k
ZSogbm9kZSkKICAgICBjYXNlIEdldE1hcEJ1Y2tldE5leHQ6CiAgICAgY2FzZSBMb2FkS2V5RnJv
bU1hcEJ1Y2tldDoKICAgICBjYXNlIExvYWRWYWx1ZUZyb21NYXBCdWNrZXQ6CisgICAgY2FzZSBX
ZWFrTWFwR2V0OgogICAgIGNhc2UgSXNFbXB0eToKICAgICBjYXNlIElzVW5kZWZpbmVkOgogICAg
IGNhc2UgSXNCb29sZWFuOgpAQCAtNDkxLDYgKzQ5Miw4IEBAIENhcGFiaWxpdHlMZXZlbCBjYW5D
b21waWxlKEdyYXBoJiBncmFwaCkKICAgICAgICAgICAgICAgICBjYXNlIFN5bWJvbFVzZToKICAg
ICAgICAgICAgICAgICBjYXNlIE1hcE9iamVjdFVzZToKICAgICAgICAgICAgICAgICBjYXNlIFNl
dE9iamVjdFVzZToKKyAgICAgICAgICAgICAgICBjYXNlIFdlYWtNYXBPYmplY3RVc2U6CisgICAg
ICAgICAgICAgICAgY2FzZSBXZWFrU2V0T2JqZWN0VXNlOgogICAgICAgICAgICAgICAgIGNhc2Ug
RmluYWxPYmplY3RVc2U6CiAgICAgICAgICAgICAgICAgY2FzZSBSZWdFeHBPYmplY3RVc2U6CiAg
ICAgICAgICAgICAgICAgY2FzZSBQcm94eU9iamVjdFVzZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcAppbmRleCA4NDA3NDM5OGFmNGEyMjhlNGQ3ZDcw
NDdlZDRhNDdkMGVhMDQ3YWM5Li4wNjZjYjM5NDg4YjcyMjE5Zjc2MjIyNjA3MTQ4NWI2OTc0NmQx
ZjVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9C
My5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3Bw
CkBAIC0xMDI4LDYgKzEwMjgsOSBAQCBjbGFzcyBMb3dlckRGR1RvQjMgewogICAgICAgICBjYXNl
IExvYWRWYWx1ZUZyb21NYXBCdWNrZXQ6CiAgICAgICAgICAgICBjb21waWxlTG9hZFZhbHVlRnJv
bU1hcEJ1Y2tldCgpOwogICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgV2Vha01hcEdl
dDoKKyAgICAgICAgICAgIGNvbXBpbGVXZWFrTWFwR2V0KCk7CisgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgY2FzZSBJc09iamVjdDoKICAgICAgICAgICAgIGNvbXBpbGVJc09iamVjdCgpOwog
ICAgICAgICAgICAgYnJlYWs7CkBAIC04NDcxLDYgKzg0NzQsMTUgQEAgY2xhc3MgTG93ZXJERkdU
b0IzIHsKICAgICAgICAgc2V0SlNWYWx1ZShtX291dC5sb2FkNjQobWFwQnVja2V0LCBtX2hlYXBz
Lkhhc2hNYXBCdWNrZXRfa2V5KSk7CiAgICAgfQogCisgICAgdm9pZCBjb21waWxlV2Vha01hcEdl
dCgpCisgICAgeworICAgICAgICBMVmFsdWUgd2Vha01hcCA9IGxvd1dlYWtNYXBPYmplY3QobV9u
b2RlLT5jaGlsZDEoKSk7CisgICAgICAgIExWYWx1ZSBvYmplY3QgPSBsb3dPYmplY3QobV9ub2Rl
LT5jaGlsZDIoKSk7CisgICAgICAgIExWYWx1ZSBoYXNoID0gbG93SW50MzIobV9ub2RlLT5jaGls
ZDMoKSk7CisKKyAgICAgICAgc2V0SlNWYWx1ZSh2bUNhbGwoSW50NjQsIG1fb3V0Lm9wZXJhdGlv
bihvcGVyYXRpb25XZWFrTWFwR2V0KSwgbV9jYWxsRnJhbWUsIHdlYWtNYXAsIG9iamVjdCwgaGFz
aCkpOworICAgIH0KKwogICAgIHZvaWQgY29tcGlsZUlzT2JqZWN0T3JOdWxsKCkKICAgICB7CiAg
ICAgICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBtX2dyYXBoLmdsb2JhbE9iamVj
dEZvcihtX25vZGUtPm9yaWdpbi5zZW1hbnRpYyk7CkBAIC0xMjk1Miw2ICsxMjk2NCwyMCBAQCBj
bGFzcyBMb3dlckRGR1RvQjMgewogICAgICAgICBzcGVjdWxhdGVTZXRPYmplY3QoZWRnZSwgcmVz
dWx0KTsKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CisKKyAgICBMVmFsdWUgbG93V2Vh
a01hcE9iamVjdChFZGdlIGVkZ2UpCisgICAgeworICAgICAgICBMVmFsdWUgcmVzdWx0ID0gbG93
Q2VsbChlZGdlKTsKKyAgICAgICAgc3BlY3VsYXRlV2Vha01hcE9iamVjdChlZGdlLCByZXN1bHQp
OworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIExWYWx1ZSBsb3dXZWFrU2V0
T2JqZWN0KEVkZ2UgZWRnZSkKKyAgICB7CisgICAgICAgIExWYWx1ZSByZXN1bHQgPSBsb3dDZWxs
KGVkZ2UpOworICAgICAgICBzcGVjdWxhdGVXZWFrU2V0T2JqZWN0KGVkZ2UsIHJlc3VsdCk7Cisg
ICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQogICAgIAogICAgIExWYWx1ZSBsb3dTdHJpbmco
RWRnZSBlZGdlLCBPcGVyYW5kU3BlY3VsYXRpb25Nb2RlIG1vZGUgPSBBdXRvbWF0aWNPcGVyYW5k
U3BlY3VsYXRpb24pCiAgICAgewpAQCAtMTM0MDUsNiArMTM0MzEsMTIgQEAgY2xhc3MgTG93ZXJE
RkdUb0IzIHsKICAgICAgICAgY2FzZSBTZXRPYmplY3RVc2U6CiAgICAgICAgICAgICBzcGVjdWxh
dGVTZXRPYmplY3QoZWRnZSk7CiAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBXZWFr
TWFwT2JqZWN0VXNlOgorICAgICAgICAgICAgc3BlY3VsYXRlV2Vha01hcE9iamVjdChlZGdlKTsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFdlYWtTZXRPYmplY3RVc2U6CisgICAg
ICAgICAgICBzcGVjdWxhdGVXZWFrU2V0T2JqZWN0KGVkZ2UpOworICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgIGNhc2UgU3RyaW5nVXNlOgogICAgICAgICAgICAgc3BlY3VsYXRlU3RyaW5nKGVk
Z2UpOwogICAgICAgICAgICAgYnJlYWs7CkBAIC0xMzgwMCw2ICsxMzgzMiwyOCBAQCBjbGFzcyBM
b3dlckRGR1RvQjMgewogICAgIHsKICAgICAgICAgc3BlY3VsYXRlU2V0T2JqZWN0KGVkZ2UsIGxv
d0NlbGwoZWRnZSkpOwogICAgIH0KKworICAgIHZvaWQgc3BlY3VsYXRlV2Vha01hcE9iamVjdChF
ZGdlIGVkZ2UsIExWYWx1ZSBjZWxsKQorICAgIHsKKyAgICAgICAgRlRMX1RZUEVfQ0hFQ0soCisg
ICAgICAgICAgICBqc1ZhbHVlVmFsdWUoY2VsbCksIGVkZ2UsIFNwZWNXZWFrTWFwT2JqZWN0LCBp
c05vdFR5cGUoY2VsbCwgSlNXZWFrTWFwVHlwZSkpOworICAgIH0KKworICAgIHZvaWQgc3BlY3Vs
YXRlV2Vha01hcE9iamVjdChFZGdlIGVkZ2UpCisgICAgeworICAgICAgICBzcGVjdWxhdGVXZWFr
TWFwT2JqZWN0KGVkZ2UsIGxvd0NlbGwoZWRnZSkpOworICAgIH0KKworICAgIHZvaWQgc3BlY3Vs
YXRlV2Vha1NldE9iamVjdChFZGdlIGVkZ2UsIExWYWx1ZSBjZWxsKQorICAgIHsKKyAgICAgICAg
RlRMX1RZUEVfQ0hFQ0soCisgICAgICAgICAgICBqc1ZhbHVlVmFsdWUoY2VsbCksIGVkZ2UsIFNw
ZWNXZWFrU2V0T2JqZWN0LCBpc05vdFR5cGUoY2VsbCwgSlNXZWFrU2V0VHlwZSkpOworICAgIH0K
KworICAgIHZvaWQgc3BlY3VsYXRlV2Vha1NldE9iamVjdChFZGdlIGVkZ2UpCisgICAgeworICAg
ICAgICBzcGVjdWxhdGVXZWFrU2V0T2JqZWN0KGVkZ2UsIGxvd0NlbGwoZWRnZSkpOworICAgIH0K
ICAgICAKICAgICB2b2lkIHNwZWN1bGF0ZVN0cmluZyhFZGdlIGVkZ2UsIExWYWx1ZSBjZWxsKQog
ICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9u
cy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmgKaW5kZXggYzIz
YzQwYmY0YjExODkzZDJlMWYyMTI1OWQwZWEzMmIxNDI0NzE1ZS4uM2RmYmVmNDkwYmU4OTM3NzI0
YjE4MTExNGI1MmEwM2Y2NjY2NmUwYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRPcGVyYXRpb25zLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRP
cGVyYXRpb25zLmgKQEAgLTEyNiw2ICsxMjYsNyBAQCB0eXBlZGVmIEVuY29kZWRKU1ZhbHVlIChK
SVRfT1BFUkFUSU9OICpKX0pJVE9wZXJhdGlvbl9FQWFwSikoRXhlY1N0YXRlKiwgQXJyYXlBbAog
dHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSAoSklUX09QRVJBVElPTiAqSl9KSVRPcGVyYXRpb25fRUFh
cEpjcFopKEV4ZWNTdGF0ZSosIEFycmF5QWxsb2NhdGlvblByb2ZpbGUqLCBjb25zdCBKU1ZhbHVl
KiwgaW50MzJfdCk7CiB0eXBlZGVmIEVuY29kZWRKU1ZhbHVlIChKSVRfT1BFUkFUSU9OICpKX0pJ
VE9wZXJhdGlvbl9FQykoRXhlY1N0YXRlKiwgSlNDZWxsKik7CiB0eXBlZGVmIEVuY29kZWRKU1Zh
bHVlIChKSVRfT1BFUkFUSU9OICpKX0pJVE9wZXJhdGlvbl9FQ0MpKEV4ZWNTdGF0ZSosIEpTQ2Vs
bCosIEpTQ2VsbCopOwordHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSAoSklUX09QRVJBVElPTiAqSl9K
SVRPcGVyYXRpb25fRUNDWikoRXhlY1N0YXRlKiwgSlNDZWxsKiwgSlNDZWxsKiwgaW50MzJfdCk7
CiB0eXBlZGVmIEVuY29kZWRKU1ZhbHVlIChKSVRfT1BFUkFUSU9OICpKX0pJVE9wZXJhdGlvbl9F
Q0kpKEV4ZWNTdGF0ZSosIEpTQ2VsbCosIFVuaXF1ZWRTdHJpbmdJbXBsKik7CiB0eXBlZGVmIEVu
Y29kZWRKU1ZhbHVlIChKSVRfT1BFUkFUSU9OICpKX0pJVE9wZXJhdGlvbl9FQ0opKEV4ZWNTdGF0
ZSosIEpTQ2VsbCosIEVuY29kZWRKU1ZhbHVlKTsKIHR5cGVkZWYgRW5jb2RlZEpTVmFsdWUgKEpJ
VF9PUEVSQVRJT04gKkpfSklUT3BlcmF0aW9uX0VDWikoRXhlY1N0YXRlKiwgSlNDZWxsKiwgaW50
MzJfdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9IYXNoTWFw
SW1wbC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSGFzaE1hcEltcGwuaAppbmRl
eCBjYjRkY2FhNjY2YTcwYjYxNTU3MjY4YWM0NDE4Zjk4NWUwODdlNzRlLi45MzdiOTRhNzdmZThl
ZTQ5MDNiMjIzY2EyMmNjMjM4MGIyYjdmOTQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9IYXNoTWFwSW1wbC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0hhc2hNYXBJbXBsLmgKQEAgLTI2OCw2ICsyNjgsMTUgQEAgc3RhdGljIEFMV0FZU19J
TkxJTkUgdWludDMyX3Qgd2FuZ3NJbnQ2NEhhc2godWludDY0X3Qga2V5KQogICAgIHJldHVybiBz
dGF0aWNfY2FzdDx1bnNpZ25lZD4oa2V5KTsKIH0KIAorc3RydWN0IFdlYWtNYXBIYXNoIHsKKyAg
ICBzdGF0aWMgdW5zaWduZWQgaGFzaChKU09iamVjdCoga2V5KQorICAgIHsKKyAgICAgICAgcmV0
dXJuIHdhbmdzSW50NjRIYXNoKEpTVmFsdWU6OmVuY29kZShrZXkpKTsKKyAgICB9CisgICAgc3Rh
dGljIGJvb2wgZXF1YWwoSlNPYmplY3QqIGEsIEpTT2JqZWN0KiBiKSB7IHJldHVybiBhID09IGI7
IH0KKyAgICBzdGF0aWMgY29uc3QgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9
IHRydWU7Cit9OworCiBBTFdBWVNfSU5MSU5FIHVpbnQzMl90IGpzTWFwSGFzaChFeGVjU3RhdGUq
IGV4ZWMsIFZNJiB2bSwgSlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBBU1NFUlRfV0lUSF9NRVNTQUdF
KG5vcm1hbGl6ZU1hcEtleSh2YWx1ZSkgPT0gdmFsdWUsICJXZSBleHBlY3Qgbm9ybWFsaXplZCB2
YWx1ZXMgZmxvd2luZyBpbnRvIHRoaXMgZnVuY3Rpb24uIik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRyaW5zaWMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSW50cmluc2ljLmNwcAppbmRleCBmOTg1NjNhYmE3MTcwM2IxMTJkY2Y4ODZl
YzQ1NWE3MDVmYjVlZDBiLi45ZDEyZmZmOWRmNzVjZTE3ZDZhMDFiMzAzNmExYmE3YmExMzYzOTEz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRyaW5zaWMuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludHJpbnNpYy5jcHAKQEAgLTE1
Myw2ICsxNTMsOCBAQCBjb25zdCBjaGFyKiBpbnRyaW5zaWNOYW1lKEludHJpbnNpYyBpbnRyaW5z
aWMpCiAgICAgICAgIHJldHVybiAiSlNTZXRCdWNrZXROZXh0SW50cmluc2ljIjsKICAgICBjYXNl
IEpTU2V0QnVja2V0S2V5SW50cmluc2ljOgogICAgICAgICByZXR1cm4gIkpTU2V0QnVja2V0S2V5
SW50cmluc2ljIjsKKyAgICBjYXNlIEpTV2Vha01hcEdldEludHJpbnNpYzoKKyAgICAgICAgcmV0
dXJuICJKU1dlYWtNYXBHZXRJbnRyaW5zaWMiOwogICAgIGNhc2UgSGFzT3duUHJvcGVydHlJbnRy
aW5zaWM6CiAgICAgICAgIHJldHVybiAiSGFzT3duUHJvcGVydHlJbnRyaW5zaWMiOwogICAgIGNh
c2UgQXRvbWljc0FkZEludHJpbnNpYzoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0ludHJpbnNpYy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50
cmluc2ljLmgKaW5kZXggNGM5MmE0ZDY0NDA0MzhlYTE5MGJkNzljYjMxY2E0YzhhMzY5YzA0Yy4u
MjlkOTVmNzI5YWM1NGMxZjNhNTcwZmFiZjY4NGZlN2UzYjU3N2Q5MCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50cmluc2ljLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSW50cmluc2ljLmgKQEAgLTg5LDYgKzg5LDcgQEAgZW51bSBJbnRy
aW5zaWMgewogICAgIEpTU2V0QnVja2V0SGVhZEludHJpbnNpYywKICAgICBKU1NldEJ1Y2tldE5l
eHRJbnRyaW5zaWMsCiAgICAgSlNTZXRCdWNrZXRLZXlJbnRyaW5zaWMsCisgICAgSlNXZWFrTWFw
R2V0SW50cmluc2ljLAogICAgIEhhc093blByb3BlcnR5SW50cmluc2ljLAogICAgIEF0b21pY3NB
ZGRJbnRyaW5zaWMsCiAgICAgQXRvbWljc0FuZEludHJpbnNpYywKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVHlwZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNUeXBlLmgKaW5kZXggMmY3N2NkMGNmMTRiNzE4ZWNhZWI5M2ZjN2M3YWQ1M2Vh
YWVmYzdlZS4uZWVlMmE1ZWE1MTk3NzFhZGE1MzllMTNjZGEyYjllNWYzMjE3ZjY0MSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBlLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBlLmgKQEAgLTk0LDYgKzk0LDggQEAgZW51bSBK
U1R5cGUgOiB1aW50OF90IHsKICAgICBQcm94eU9iamVjdFR5cGUsCiAgICAgSlNNYXBUeXBlLAog
ICAgIEpTU2V0VHlwZSwKKyAgICBKU1dlYWtNYXBUeXBlLAorICAgIEpTV2Vha1NldFR5cGUsCiAK
ICAgICBXZWJBc3NlbWJseUZ1bmN0aW9uVHlwZSwKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNXZWFrTWFwLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU1dlYWtNYXAuaAppbmRleCA1ZjhmZDIxMjVhOThhYjQyNWRjYWI4NTY0NTNkNGI4OTNh
MGY3ZjQ4Li43ODhhZWMzZjRhMjliZGYwMzQxMDZiZmMyNTI4ZDU1ODQzZDI3ZjY3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1dlYWtNYXAuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1dlYWtNYXAuaApAQCAtMzgsNyArMzgsNyBAQCBj
bGFzcyBKU1dlYWtNYXAgZmluYWwgOiBwdWJsaWMgV2Vha01hcEJhc2UgewogCiAgICAgc3RhdGlj
IFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgewotICAgICAgICByZXR1cm4gU3RydWN0
dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RU
eXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7CisgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6
OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKEpTV2Vha01hcFR5
cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKICAgICB9CiAKICAgICBzdGF0aWMgSlNXZWFr
TWFwKiBjcmVhdGUoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKQEAgLTYyLDQgKzYyLDE2
IEBAIGNsYXNzIEpTV2Vha01hcCBmaW5hbCA6IHB1YmxpYyBXZWFrTWFwQmFzZSB7CiAgICAgc3Rh
dGljIFN0cmluZyB0b1N0cmluZ05hbWUoY29uc3QgSlNPYmplY3QqLCBFeGVjU3RhdGUqKTsKIH07
CiAKK2lubGluZSBib29sIGlzSlNXZWFrTWFwKEpTQ2VsbCogZnJvbSkKK3sKKyAgICBzdGF0aWNf
YXNzZXJ0KHN0ZDo6aXNfZmluYWw8SlNXZWFrTWFwPjo6dmFsdWUsICIiKTsKKyAgICByZXR1cm4g
ZnJvbS0+dHlwZSgpID09IEpTV2Vha01hcFR5cGU7Cit9CisKK2lubGluZSBib29sIGlzSlNXZWFr
TWFwKEpTVmFsdWUgZnJvbSkKK3sKKyAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfZmluYWw8SlNX
ZWFrTWFwPjo6dmFsdWUsICIiKTsKKyAgICByZXR1cm4gZnJvbS5pc0NlbGwoKSAmJiBmcm9tLmFz
Q2VsbCgpLT50eXBlKCkgPT0gSlNXZWFrTWFwVHlwZTsKK30KKwogfSAvLyBuYW1lc3BhY2UgSlND
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1dlYWtTZXQuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTV2Vha1NldC5oCmluZGV4IDc1NzBmNDJl
ZDcwZmZlMGVmMjNlNGM3NDY2OWVjMTg2OGE2ODg0NjEuLjIyOGMwMzZiM2EyODcwOTQ5NTJlZWEx
MDkwNWI1MGEwYTJjNDU0MTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTV2Vha1NldC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTV2Vh
a1NldC5oCkBAIC0zOCw3ICszOCw3IEBAIGNsYXNzIEpTV2Vha1NldCBmaW5hbCA6IHB1YmxpYyBX
ZWFrTWFwQmFzZSB7CiAKICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoVk0m
IHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkKICAg
ICB7Ci0gICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBw
cm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsK
KyAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3Rv
dHlwZSwgVHlwZUluZm8oSlNXZWFrU2V0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOwog
ICAgIH0KIAogICAgIHN0YXRpYyBKU1dlYWtTZXQqIGNyZWF0ZShWTSYgdm0sIFN0cnVjdHVyZSog
c3RydWN0dXJlKQpAQCAtNjIsNCArNjIsMTYgQEAgY2xhc3MgSlNXZWFrU2V0IGZpbmFsIDogcHVi
bGljIFdlYWtNYXBCYXNlIHsKICAgICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nTmFtZShjb25zdCBK
U09iamVjdCosIEV4ZWNTdGF0ZSopOwogfTsKIAoraW5saW5lIGJvb2wgaXNKU1dlYWtTZXQoSlND
ZWxsKiBmcm9tKQoreworICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc19maW5hbDxKU1dlYWtTZXQ+
Ojp2YWx1ZSwgIiIpOworICAgIHJldHVybiBmcm9tLT50eXBlKCkgPT0gSlNXZWFrU2V0VHlwZTsK
K30KKworaW5saW5lIGJvb2wgaXNKU1dlYWtTZXQoSlNWYWx1ZSBmcm9tKQoreworICAgIHN0YXRp
Y19hc3NlcnQoc3RkOjppc19maW5hbDxKU1dlYWtTZXQ+Ojp2YWx1ZSwgIiIpOworICAgIHJldHVy
biBmcm9tLmlzQ2VsbCgpICYmIGZyb20uYXNDZWxsKCktPnR5cGUoKSA9PSBKU1dlYWtTZXRUeXBl
OworfQorCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1dlYWtNYXBCYXNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1dlYWtNYXBCYXNlLmNwcAppbmRleCAwZTUxMDYxYTk0NmE5ZTFkMzgxMWE3ZWIyNTNkODNm
NWMyNzQwZTIwLi44NWMyMDAzMDI5OThiMWUwN2Y2ZTBiMzcwMTRlMmIyZGYyMmFhOTA1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XZWFrTWFwQmFzZS5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2Vha01hcEJhc2UuY3BwCkBAIC02NSw2
ICs2NSwxMSBAQCB2b2lkIFdlYWtNYXBCYXNlOjp2aXNpdENoaWxkcmVuKEpTQ2VsbCogY2VsbCwg
U2xvdFZpc2l0b3ImIHZpc2l0b3IpCiAgICAgdmlzaXRvci5yZXBvcnRFeHRyYU1lbW9yeVZpc2l0
ZWQodGhpc09iai0+bV9tYXAuY2FwYWNpdHkoKSAqIChzaXplb2YoSlNPYmplY3QqKSArIHNpemVv
ZihXcml0ZUJhcnJpZXI8VW5rbm93bj4pKSk7CiB9CiAKK0pTVmFsdWUgV2Vha01hcEJhc2U6Omdl
dChKU09iamVjdCoga2V5KQoreworICAgIHJldHVybiBpbmxpbmVHZXQoa2V5KTsKK30KKwogdm9p
ZCBXZWFrTWFwQmFzZTo6c2V0KFZNJiB2bSwgSlNPYmplY3QqIGtleSwgSlNWYWx1ZSB2YWx1ZSkK
IHsKICAgICAvLyBIZXJlIHdlIGZvcmNlIHRoZSB3cml0ZSBiYXJyaWVyIG9uIHRoZSBrZXkuCkBA
IC03MiwxNCArNzcsNiBAQCB2b2lkIFdlYWtNYXBCYXNlOjpzZXQoVk0mIHZtLCBKU09iamVjdCog
a2V5LCBKU1ZhbHVlIHZhbHVlKQogICAgIHJlc3VsdC5pdGVyYXRvci0+dmFsdWUuc2V0KHZtLCB0
aGlzLCB2YWx1ZSk7CiB9CiAKLUpTVmFsdWUgV2Vha01hcEJhc2U6OmdldChKU09iamVjdCoga2V5
KQotewotICAgIGF1dG8gaXRlciA9IG1fbWFwLmZpbmQoa2V5KTsKLSAgICBpZiAoaXRlciA9PSBt
X21hcC5lbmQoKSkKLSAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci0gICAgcmV0dXJuIGl0
ZXItPnZhbHVlLmdldCgpOwotfQotCiBib29sIFdlYWtNYXBCYXNlOjpyZW1vdmUoSlNPYmplY3Qq
IGtleSkKIHsKICAgICByZXR1cm4gbV9tYXAucmVtb3ZlKGtleSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XZWFrTWFwQmFzZS5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvV2Vha01hcEJhc2UuaAppbmRleCBlM2JjMmFmNDE2ZjRlMjRiY2Q4Yzg0
NWJmMTA5NzVmNWI5NjQwZDU5Li5kYTlkODljODE1ZGRjMmNiZWQwZDg2YmIyNTljMmY3MWNmY2E4
OTNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XZWFrTWFwQmFz
ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dlYWtNYXBCYXNlLmgKQEAg
LTI1LDYgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJIYXNoTWFwSW1wbC5o
IgogI2luY2x1ZGUgIkpTRGVzdHJ1Y3RpYmxlT2JqZWN0LmgiCiAjaW5jbHVkZSAiU3RydWN0dXJl
LmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KQEAgLTM4LDEzICszOSwxNSBAQCBjbGFzcyBX
ZWFrTWFwQmFzZSA6IHB1YmxpYyBKU0Rlc3RydWN0aWJsZU9iamVjdCB7CiAKICAgICB2b2lkIHNl
dChWTSYsIEpTT2JqZWN0KiwgSlNWYWx1ZSk7CiAgICAgSlNWYWx1ZSBnZXQoSlNPYmplY3QqKTsK
KyAgICBKU1ZhbHVlIGlubGluZUdldChKU09iamVjdCopOworICAgIEpTVmFsdWUgaW5saW5lR2V0
KEpTT2JqZWN0KiwgaW50MzJfdCBoYXNoKTsKICAgICBib29sIHJlbW92ZShKU09iamVjdCopOwog
ICAgIGJvb2wgY29udGFpbnMoSlNPYmplY3QqKTsKICAgICB2b2lkIGNsZWFyKCk7CiAKICAgICBE
RUNMQVJFX0lORk87CiAKLSAgICB1c2luZyBNYXBUeXBlID0gSGFzaE1hcDxKU09iamVjdCosIFdy
aXRlQmFycmllcjxVbmtub3duPj47CisgICAgdXNpbmcgTWFwVHlwZSA9IEhhc2hNYXA8SlNPYmpl
Y3QqLCBXcml0ZUJhcnJpZXI8VW5rbm93bj4sIFdlYWtNYXBIYXNoPjsKICAgICBNYXBUeXBlOjpj
b25zdF9pdGVyYXRvciBiZWdpbigpIGNvbnN0IHsgcmV0dXJuIG1fbWFwLmJlZ2luKCk7IH0KICAg
ICBNYXBUeXBlOjpjb25zdF9pdGVyYXRvciBlbmQoKSBjb25zdCB7IHJldHVybiBtX21hcC5lbmQo
KTsgfQogCkBAIC01Nyw2ICs2MCwxOSBAQCBjbGFzcyBXZWFrTWFwQmFzZSA6IHB1YmxpYyBKU0Rl
c3RydWN0aWJsZU9iamVjdCB7CiAgICAgV2Vha01hcEJhc2UoVk0mLCBTdHJ1Y3R1cmUqKTsKICAg
ICBzdGF0aWMgdm9pZCBkZXN0cm95KEpTQ2VsbCopOwogCisgICAgdXNpbmcgS2V5V2l0aEhhc2gg
PSBzdGQ6OnBhaXI8SlNPYmplY3QqLCB1bnNpZ25lZD47CisgICAgc3RydWN0IEhhc2hUcmFuc2xh
dG9yIHsKKyAgICAgICAgc3RhdGljIGlubGluZSB1bnNpZ25lZCBoYXNoKGNvbnN0IEtleVdpdGhI
YXNoJiBrZXlXaXRoSGFzaCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGtleVdpdGhI
YXNoLnNlY29uZDsKKyAgICAgICAgfQorCisgICAgICAgIHN0YXRpYyBpbmxpbmUgYm9vbCBlcXVh
bChKU09iamVjdCoga2V5LCBjb25zdCBLZXlXaXRoSGFzaCYga2V5V2l0aEhhc2gpCisgICAgICAg
IHsKKyAgICAgICAgICAgIHJldHVybiBrZXkgPT0ga2V5V2l0aEhhc2guZmlyc3Q7CisgICAgICAg
IH0KKyAgICB9OworCiAgICAgY2xhc3MgRGVhZEtleUNsZWFuZXIgOiBwdWJsaWMgVW5jb25kaXRp
b25hbEZpbmFsaXplciwgcHVibGljIFdlYWtSZWZlcmVuY2VIYXJ2ZXN0ZXIgewogICAgIHB1Ymxp
YzoKICAgICAgICAgV2Vha01hcEJhc2UqIHRhcmdldCgpOwpAQCAtNzAsNCArODYsMTkgQEAgY2xh
c3MgV2Vha01hcEJhc2UgOiBwdWJsaWMgSlNEZXN0cnVjdGlibGVPYmplY3QgewogICAgIE1hcFR5
cGUgbV9tYXA7CiB9OwogCitBTFdBWVNfSU5MSU5FIEpTVmFsdWUgV2Vha01hcEJhc2U6OmlubGlu
ZUdldChKU09iamVjdCoga2V5KQoreworICAgIGlmIChhdXRvIHJlc3VsdCA9IG1fbWFwLmlubGlu
ZUdldChrZXkpKQorICAgICAgICByZXR1cm4gcmVzdWx0LmdldCgpOworICAgIHJldHVybiBqc1Vu
ZGVmaW5lZCgpOworfQorCitBTFdBWVNfSU5MSU5FIEpTVmFsdWUgV2Vha01hcEJhc2U6OmlubGlu
ZUdldChKU09iamVjdCoga2V5LCBpbnQzMl90IGhhc2gpCit7CisgICAgS2V5V2l0aEhhc2gga2V5
V2l0aEhhc2ggeyBrZXksIGhhc2ggfTsKKyAgICBpZiAoYXV0byByZXN1bHQgPSBtX21hcC5pbmxp
bmVHZXQ8SGFzaFRyYW5zbGF0b3I+KGtleVdpdGhIYXNoKSkKKyAgICAgICAgcmV0dXJuIHJlc3Vs
dC5nZXQoKTsKKyAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKK30KKwogfSAvLyBuYW1lc3BhY2Ug
SlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XZWFrTWFwUHJv
dG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dlYWtNYXBQcm90b3R5
cGUuY3BwCmluZGV4IDM3MGE3OGEyMThmODFkYjExZTYwMGIyNGRlYzRlNWQ0Zjk4MjAyNGYuLjUz
MzRiMTM5MTU4ODRhODkwMGM0MmJkNDFhOTcyYzRmMDBkYmQ3YWQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dlYWtNYXBQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dlYWtNYXBQcm90b3R5cGUuY3BwCkBAIC00NiwyNSAr
NDYsMjUgQEAgdm9pZCBXZWFrTWFwUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiAgICAgdm0ucHJvdG90eXBlTWFwLmFkZFByb3Rv
dHlwZSh0aGlzKTsKIAogICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9O
KHZtLnByb3BlcnR5TmFtZXMtPmRlbGV0ZUtleXdvcmQsIHByb3RvRnVuY1dlYWtNYXBEZWxldGUs
IERvbnRFbnVtLCAxKTsKLSAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElP
Tih2bS5wcm9wZXJ0eU5hbWVzLT5nZXQsIHByb3RvRnVuY1dlYWtNYXBHZXQsIERvbnRFbnVtLCAx
KTsKKyAgICBKU0NfTkFUSVZFX0lOVFJJTlNJQ19GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04o
dm0ucHJvcGVydHlOYW1lcy0+Z2V0LCBwcm90b0Z1bmNXZWFrTWFwR2V0LCBEb250RW51bSwgMSwg
SlNXZWFrTWFwR2V0SW50cmluc2ljKTsKICAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRf
VFJBTlNJVElPTih2bS5wcm9wZXJ0eU5hbWVzLT5oYXMsIHByb3RvRnVuY1dlYWtNYXBIYXMsIERv
bnRFbnVtLCAxKTsKICAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTih2
bS5wcm9wZXJ0eU5hbWVzLT5zZXQsIHByb3RvRnVuY1dlYWtNYXBTZXQsIERvbnRFbnVtLCAyKTsK
IAogICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT50
b1N0cmluZ1RhZ1N5bWJvbCwganNTdHJpbmcoJnZtLCAiV2Vha01hcCIpLCBEb250RW51bSB8IFJl
YWRPbmx5KTsKIH0KIAotc3RhdGljIEpTV2Vha01hcCogZ2V0V2Vha01hcChDYWxsRnJhbWUqIGNh
bGxGcmFtZSwgSlNWYWx1ZSB2YWx1ZSkKK0FMV0FZU19JTkxJTkUgc3RhdGljIEpTV2Vha01hcCog
Z2V0V2Vha01hcChDYWxsRnJhbWUqIGNhbGxGcmFtZSwgSlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBW
TSYgdm0gPSBjYWxsRnJhbWUtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1df
U0NPUEUodm0pOwogCi0gICAgaWYgKCF2YWx1ZS5pc09iamVjdCgpKSB7CisgICAgaWYgKFVOTElL
RUxZKCF2YWx1ZS5pc09iamVjdCgpKSkgewogICAgICAgICB0aHJvd1R5cGVFcnJvcihjYWxsRnJh
bWUsIHNjb3BlLCBXVEY6OkFTQ0lJTGl0ZXJhbCgiQ2FsbGVkIFdlYWtNYXAgZnVuY3Rpb24gb24g
bm9uLW9iamVjdCIpKTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogCi0gICAgaWYg
KEpTV2Vha01hcCogd2Vha01hcCA9IGpzRHluYW1pY0Nhc3Q8SlNXZWFrTWFwKj4odm0sIHZhbHVl
KSkKLSAgICAgICAgcmV0dXJuIHdlYWtNYXA7CisgICAgaWYgKExJS0VMWShpc0pTV2Vha01hcChh
c09iamVjdCh2YWx1ZSkpKSkKKyAgICAgICAgcmV0dXJuIGpzQ2FzdDxKU1dlYWtNYXAqPih2YWx1
ZSk7CiAKICAgICB0aHJvd1R5cGVFcnJvcihjYWxsRnJhbWUsIHNjb3BlLCBXVEY6OkFTQ0lJTGl0
ZXJhbCgiQ2FsbGVkIFdlYWtNYXAgZnVuY3Rpb24gb24gYSBub24tV2Vha01hcCBvYmplY3QiKSk7
CiAgICAgcmV0dXJuIG51bGxwdHI7CkBAIC04Nyw3ICs4Nyw3IEBAIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgcHJvdG9GdW5jV2Vha01hcEdldChDYWxsRnJhbWUqIGNhbGxGcmFtZSkKICAg
ICBKU1ZhbHVlIGtleSA9IGNhbGxGcmFtZS0+YXJndW1lbnQoMCk7CiAgICAgaWYgKCFrZXkuaXNP
YmplY3QoKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsK
LSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKG1hcC0+Z2V0KGFzT2JqZWN0KGtleSkpKTsKKyAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKG1hcC0+aW5saW5lR2V0KGFzT2JqZWN0KGtleSkpKTsK
IH0KIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBwcm90b0Z1bmNXZWFrTWFwSGFzKENh
bGxGcmFtZSogY2FsbEZyYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvV2Vha1NldFByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9XZWFrU2V0UHJvdG90eXBlLmNwcAppbmRleCA3MWJlNjU1NjM5OTBhOTcwNDlhZmRiMTUzMjYy
M2Q3MzBjZmZkYzA2Li41ODM4YjRmMGFmMDNhZWZlOTgzNjdhNjE3YjUzNDFlYzViZWRlY2RjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XZWFrU2V0UHJvdG90eXBl
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XZWFrU2V0UHJvdG90eXBl
LmNwcApAQCAtNTEsMTggKzUxLDE4IEBAIHZvaWQgV2Vha1NldFByb3RvdHlwZTo6ZmluaXNoQ3Jl
YXRpb24oVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQogICAgIHB1dERpcmVj
dFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT50b1N0cmluZ1RhZ1N5bWJv
bCwganNTdHJpbmcoJnZtLCAiV2Vha1NldCIpLCBEb250RW51bSB8IFJlYWRPbmx5KTsKIH0KIAot
c3RhdGljIEpTV2Vha1NldCogZ2V0V2Vha1NldChDYWxsRnJhbWUqIGNhbGxGcmFtZSwgSlNWYWx1
ZSB2YWx1ZSkKK0FMV0FZU19JTkxJTkUgc3RhdGljIEpTV2Vha1NldCogZ2V0V2Vha1NldChDYWxs
RnJhbWUqIGNhbGxGcmFtZSwgSlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBWTSYgdm0gPSBjYWxsRnJh
bWUtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCi0g
ICAgaWYgKCF2YWx1ZS5pc09iamVjdCgpKSB7CisgICAgaWYgKFVOTElLRUxZKCF2YWx1ZS5pc09i
amVjdCgpKSkgewogICAgICAgICB0aHJvd1R5cGVFcnJvcihjYWxsRnJhbWUsIHNjb3BlLCBXVEY6
OkFTQ0lJTGl0ZXJhbCgiQ2FsbGVkIFdlYWtTZXQgZnVuY3Rpb24gb24gbm9uLW9iamVjdCIpKTsK
ICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogCi0gICAgaWYgKEpTV2Vha1NldCogd2Vh
a1NldCA9IGpzRHluYW1pY0Nhc3Q8SlNXZWFrU2V0Kj4odm0sIHZhbHVlKSkKLSAgICAgICAgcmV0
dXJuIHdlYWtTZXQ7CisgICAgaWYgKExJS0VMWShpc0pTV2Vha1NldChhc09iamVjdCh2YWx1ZSkp
KSkKKyAgICAgICAgcmV0dXJuIGpzQ2FzdDxKU1dlYWtTZXQqPih2YWx1ZSk7CiAKICAgICB0aHJv
d1R5cGVFcnJvcihjYWxsRnJhbWUsIHNjb3BlLCBXVEY6OkFTQ0lJTGl0ZXJhbCgiQ2FsbGVkIFdl
YWtTZXQgZnVuY3Rpb24gb24gYSBub24tV2Vha1NldCBvYmplY3QiKSk7CiAgICAgcmV0dXJuIG51
bGxwdHI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9IYXNoTWFwLmggYi9Tb3VyY2UvV1RG
L3d0Zi9IYXNoTWFwLmgKaW5kZXggZmM3NzFiOWExYjA4ZjVjYWMwMDQ2NjY3NGRkZTEwOWY1MzA1
MTVlNy4uMWEyNmM5ZjYyYWMzZWYxZjJhNDVjN2MwMjA1NTM3NTA4YWMyMDA3ZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dURi93dGYvSGFzaE1hcC5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0hhc2hNYXAu
aApAQCAtMTA2LDcgKzEwNiw3IEBAIGNsYXNzIEhhc2hNYXAgZmluYWwgewogICAgIE1hcHBlZFBl
ZWtUeXBlIGdldChjb25zdCBLZXlUeXBlJikgY29uc3Q7CiAKICAgICAvLyBTYW1lIGFzIGdldCgp
LCBidXQgYWdncmVzc2l2ZWx5IGlubGluZWQuCi0gICAgTWFwcGVkUGVla1R5cGUgZmFzdEdldChj
b25zdCBLZXlUeXBlJikgY29uc3Q7CisgICAgTWFwcGVkUGVla1R5cGUgaW5saW5lR2V0KGNvbnN0
IEtleVR5cGUmKSBjb25zdDsKIAogICAgIC8vIFJlcGxhY2VzIHRoZSB2YWx1ZSBidXQgbm90IHRo
ZSBrZXkgaWYgdGhlIGtleSBpcyBhbHJlYWR5IHByZXNlbnQuCiAgICAgLy8gUmV0dXJuIHZhbHVl
IGluY2x1ZGVzIGJvdGggYW4gaXRlcmF0b3IgdG8gdGhlIGtleSBsb2NhdGlvbiwKQEAgLTE0NCw2
ICsxNDQsNyBAQCBjbGFzcyBIYXNoTWFwIGZpbmFsIHsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBI
YXNoVHJhbnNsYXRvciwgdHlwZW5hbWUgVD4gY29uc3RfaXRlcmF0b3IgZmluZChjb25zdCBUJikg
Y29uc3Q7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgSGFzaFRyYW5zbGF0b3IsIHR5cGVuYW1lIFQ+
IGJvb2wgY29udGFpbnMoY29uc3QgVCYpIGNvbnN0OwogICAgIHRlbXBsYXRlPHR5cGVuYW1lIEhh
c2hUcmFuc2xhdG9yLCB0eXBlbmFtZSBUPiBNYXBwZWRQZWVrVHlwZSBnZXQoY29uc3QgVCYpIGNv
bnN0OworICAgIHRlbXBsYXRlPHR5cGVuYW1lIEhhc2hUcmFuc2xhdG9yLCB0eXBlbmFtZSBUPiBN
YXBwZWRQZWVrVHlwZSBpbmxpbmVHZXQoY29uc3QgVCYpIGNvbnN0OwogCiAgICAgLy8gQW4gYWx0
ZXJuYXRlIHZlcnNpb24gb2YgYWRkKCkgdGhhdCBmaW5kcyB0aGUgb2JqZWN0IGJ5IGhhc2hpbmcg
YW5kIGNvbXBhcmluZwogICAgIC8vIHdpdGggc29tZSBvdGhlciB0eXBlLCB0byBhdm9pZCB0aGUg
Y29zdCBvZiB0eXBlIGNvbnZlcnNpb24gaWYgdGhlIG9iamVjdCBpcyBhbHJlYWR5CkBAIC0zMDYs
NiArMzA3LDE2IEBAIGF1dG8gSGFzaE1hcDxULCBVLCBWLCBXLCBYPjo6Z2V0KGNvbnN0IFRZUEUm
IHZhbHVlKSBjb25zdCAtPiBNYXBwZWRQZWVrVHlwZQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0
eXBlbmFtZSBVLCB0eXBlbmFtZSBWLCB0eXBlbmFtZSBXLCB0eXBlbmFtZSBYPgogdGVtcGxhdGU8
dHlwZW5hbWUgSGFzaFRyYW5zbGF0b3IsIHR5cGVuYW1lIFRZUEU+CithdXRvIEhhc2hNYXA8VCwg
VSwgViwgVywgWD46OmlubGluZUdldChjb25zdCBUWVBFJiB2YWx1ZSkgY29uc3QgLT4gTWFwcGVk
UGVla1R5cGUKK3sKKyAgICBhdXRvKiBlbnRyeSA9IGNvbnN0X2Nhc3Q8SGFzaFRhYmxlVHlwZSY+
KG1faW1wbCkudGVtcGxhdGUgaW5saW5lTG9va3VwPEhhc2hNYXBUcmFuc2xhdG9yQWRhcHRlcjxL
ZXlWYWx1ZVBhaXJUcmFpdHMsIEhhc2hUcmFuc2xhdG9yPj4odmFsdWUpOworICAgIGlmICghZW50
cnkpCisgICAgICAgIHJldHVybiBNYXBwZWRUcmFpdHM6OnBlZWsoTWFwcGVkVHJhaXRzOjplbXB0
eVZhbHVlKCkpOworICAgIHJldHVybiBNYXBwZWRUcmFpdHM6OnBlZWsoZW50cnktPnZhbHVlKTsK
K30KKwordGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVSwgdHlwZW5hbWUgViwgdHlwZW5h
bWUgVywgdHlwZW5hbWUgWD4KK3RlbXBsYXRlPHR5cGVuYW1lIEhhc2hUcmFuc2xhdG9yLCB0eXBl
bmFtZSBUWVBFPgogaW5saW5lIGJvb2wgSGFzaE1hcDxULCBVLCBWLCBXLCBYPjo6Y29udGFpbnMo
Y29uc3QgVFlQRSYgdmFsdWUpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1faW1wbC50ZW1wbGF0ZSBj
b250YWluczxIYXNoTWFwVHJhbnNsYXRvckFkYXB0ZXI8S2V5VmFsdWVQYWlyVHJhaXRzLCBIYXNo
VHJhbnNsYXRvcj4+KHZhbHVlKTsKQEAgLTQwNyw3ICs0MTgsNyBAQCBpbmxpbmUgYXV0byBIYXNo
TWFwPFQsIFUsIFYsIFcsIE1hcHBlZFRyYWl0cz46OmdldChjb25zdCBLZXlUeXBlJiBrZXkpIGNv
bnN0IC0+CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFUsIHR5cGVuYW1lIFYs
IHR5cGVuYW1lIFcsIHR5cGVuYW1lIE1hcHBlZFRyYWl0cz4KLUFMV0FZU19JTkxJTkUgYXV0byBI
YXNoTWFwPFQsIFUsIFYsIFcsIE1hcHBlZFRyYWl0cz46OmZhc3RHZXQoY29uc3QgS2V5VHlwZSYg
a2V5KSBjb25zdCAtPiBNYXBwZWRQZWVrVHlwZQorQUxXQVlTX0lOTElORSBhdXRvIEhhc2hNYXA8
VCwgVSwgViwgVywgTWFwcGVkVHJhaXRzPjo6aW5saW5lR2V0KGNvbnN0IEtleVR5cGUmIGtleSkg
Y29uc3QgLT4gTWFwcGVkUGVla1R5cGUKIHsKICAgICBLZXlWYWx1ZVBhaXJUeXBlKiBlbnRyeSA9
IGNvbnN0X2Nhc3Q8SGFzaFRhYmxlVHlwZSY+KG1faW1wbCkudGVtcGxhdGUgaW5saW5lTG9va3Vw
PElkZW50aXR5VHJhbnNsYXRvclR5cGU+KGtleSk7CiAgICAgaWYgKCFlbnRyeSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XVEYvd3RmL0xvZ2dpbmdIYXNoTWFwLmggYi9Tb3VyY2UvV1RGL3d0Zi9Mb2dn
aW5nSGFzaE1hcC5oCmluZGV4IGU4YjEzYmZjNTAwOWIzNzE5MTQwNTg2Y2MwMDc1YWFkNzY1OWY2
NjEuLmZmOGU3OTBmYTNlZmFlODRkODg3N2Y0N2VmYTQ1OTM3ZDY2MzZmMzcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XVEYvd3RmL0xvZ2dpbmdIYXNoTWFwLmgKKysrIGIvU291cmNlL1dURi93dGYvTG9n
Z2luZ0hhc2hNYXAuaApAQCAtMTUyLDEwICsxNTIsMTAgQEAgY2xhc3MgTG9nZ2luZ0hhc2hNYXAg
ZmluYWwgewogICAgICAgICByZXR1cm4gbV9tYXAuZ2V0KGtleSk7CiAgICAgfQogICAgIAotICAg
IE1hcHBlZFBlZWtUeXBlIGZhc3RHZXQoY29uc3QgS2V5VHlwZSYga2V5KSBjb25zdAorICAgIE1h
cHBlZFBlZWtUeXBlIGlubGluZUdldChjb25zdCBLZXlUeXBlJiBrZXkpIGNvbnN0CiAgICAgewog
ICAgICAgICBmaW5kKGtleSk7Ci0gICAgICAgIHJldHVybiBtX21hcC5mYXN0R2V0KGtleSk7Cisg
ICAgICAgIHJldHVybiBtX21hcC5pbmxpbmVHZXQoa2V5KTsKICAgICB9CiAgICAgCiAgICAgdGVt
cGxhdGU8dHlwZW5hbWUgUGFzc2VkVHlwZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvY3VybC9DdXJsSm9iTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybEpvYk1hbmFnZXIuY3BwCmluZGV4IDY0YWUwOTBhYThk
MDBhZDc4Nzk0MGMyZDUxZGY3N2U0ZmVjZmMwYjAuLjE1NWU4MDQ2ZGM3ZjkwMjMwODRjNzE5NWY1
YTdiYjg1ZmYzYTg5MmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvY3VybC9DdXJsSm9iTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9jdXJsL0N1cmxKb2JNYW5hZ2VyLmNwcApAQCAtNjUsNyArNjUsNyBAQCBjbGFzcyBD
dXJsSm9iTGlzdCA6IHB1YmxpYyBDdXJsTXVsdGlIYW5kbGUgewogICAgICAgICAgICAgaWYgKCFt
X2FjdGl2ZUpvYnMuY29udGFpbnModGlja2V0KSkKICAgICAgICAgICAgICAgICBjb250aW51ZTsK
ICAgICAgICAgICAgIHJlbW92ZUhhbmRsZSh0aWNrZXQpOwotICAgICAgICAgICAgbm90aWZ5UmVz
dWx0KG1fYWN0aXZlSm9icy5mYXN0R2V0KHRpY2tldCksIHJlc3VsdCk7CisgICAgICAgICAgICBu
b3RpZnlSZXN1bHQobV9hY3RpdmVKb2JzLmlubGluZUdldCh0aWNrZXQpLCByZXN1bHQpOwogICAg
ICAgICAgICAgbV9hY3RpdmVKb2JzLnJlbW92ZSh0aWNrZXQpOwogICAgICAgICB9CiAgICAgfQpk
aWZmIC0tZ2l0IGEvSlNUZXN0cy9DaGFuZ2VMb2cgYi9KU1Rlc3RzL0NoYW5nZUxvZwppbmRleCAz
YWFhNGYzNDFlZGYzOWI3ODIzZDQ2YTgyYTFmZTkxYzM4OWM2NWMyLi4xNzUwZGUwZGQwMmI5ZmEz
ZTM2NTEwMzIzMzA3NGUzNDJhZDlhYmVmIDEwMDY0NAotLS0gYS9KU1Rlc3RzL0NoYW5nZUxvZwor
KysgYi9KU1Rlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE3LTA5LTEyICBZdXN1
a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgorCisgICAgICAgIFtERkddIE9wdGlt
aXplIFdlYWtNYXA6OmdldCBieSBhZGRpbmcgaW50cmluc2ljIGFuZCBmaXh1cAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc2MDEwCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgRmlsaXAgUGl6bG8uCisKKyAgICAgICAgKiBtaWNyb2JlbmNobWFya3Mvd2Vh
ay1tYXAta2V5LmpzOiBBZGRlZC4KKyAgICAgICAgKGFzc2VydCk6CisgICAgICAgIChvYmplY3RL
ZXkpOgorICAgICAgICAobGV0LnN0YXJ0LkRhdGUubm93KToKKwogMjAxNy0wOS0xMiAgUnlhbiBI
YWRkYWQgIDxyeWFuaGFkZGFkQGFwcGxlLmNvbT4KIAogICAgICAgICBTa2lwIHN0cmVzcy92YWx1
ZS10by1ib29sZWFuLmpzIG9uIERlYnVnIGJvdHMuCmRpZmYgLS1naXQgYS9KU1Rlc3RzL21pY3Jv
YmVuY2htYXJrcy93ZWFrLW1hcC1rZXkuanMgYi9KU1Rlc3RzL21pY3JvYmVuY2htYXJrcy93ZWFr
LW1hcC1rZXkuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2Y1M2NlYmMzN2I4MDkwNWQ2Yzc3MWMwYTYxNWE0Yjhl
N2Q3ODMwMgotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvbWljcm9iZW5jaG1hcmtzL3dlYWst
bWFwLWtleS5qcwpAQCAtMCwwICsxLDM0IEBACitmdW5jdGlvbiBhc3NlcnQoYikgeworICAgIGlm
ICghYikKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJCYWQhIik7Cit9Citub0lubGluZShhc3Nl
cnQpOworCitsZXQgd2Vha01hcCA9IG5ldyBXZWFrTWFwOworCitmdW5jdGlvbiBvYmplY3RLZXko
bykgeworICAgIHJldHVybiB3ZWFrTWFwLmdldChvKTsKK30KK25vSW5saW5lKG9iamVjdEtleSk7
CisKK2NvbnN0IGl0ZXJzID0gMzAwMDAwOworbGV0IHN0YXJ0ID0gRGF0ZS5ub3coKTsKKworewor
ICAgIGxldCBvID0ge2Y6IDIwfTsKKyAgICB2YXIgYXJyYXkgPSBbXTsKKyAgICBmb3IgKHZhciBp
ID0gMDsgaSA8IDEwOyBpKyspIHsKKyAgICAgICAgbGV0IG5ld09iamVjdCA9IHsgZjogaSB9Owor
ICAgICAgICB3ZWFrTWFwLnNldChuZXdPYmplY3QsIGkpOworICAgICAgICBhcnJheVtpXSA9IG5l
d09iamVjdDsKKyAgICB9CisKKyAgICBmb3IgKHZhciBqID0gMDsgaiA8IGl0ZXJzOyArK2opIHsK
KyAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCAxMDsgaSsrKQorICAgICAgICAgICAgYXNzZXJ0
KG9iamVjdEtleShhcnJheVtpXSkgPT09IGkpOworICAgIH0KK30KKworY29uc3QgdmVyYm9zZSA9
IGZhbHNlOworaWYgKHZlcmJvc2UpCisgICAgcHJpbnQoRGF0ZS5ub3coKSAtIHN0YXJ0KTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>