<?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>206450</bug_id>
          
          <creation_ts>2020-01-17 15:30:57 -0800</creation_ts>
          <short_desc>Frequent NetworkConnectionToWebProcess::CookiesEnabled sync IPC when browsing reddit.com</short_desc>
          <delta_ts>2020-01-22 15:58:53 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</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>DoNotImportToRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>206442</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>aakash_jain</cc>
    
    <cc>achristensen</cc>
    
    <cc>annulen</cc>
    
    <cc>beidson</cc>
    
    <cc>berto</cc>
    
    <cc>cgarcia</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>dbates</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>galpeter</cc>
    
    <cc>ggaren</cc>
    
    <cc>gustavo</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>japhet</cc>
    
    <cc>ryanhaddad</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sam</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1608235</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-01-17 15:30:57 -0800</bug_when>
    <thetext>Frequent NetworkConnectionToWebProcess::CookiesEnabled sync IPC when browsing reddit.com. Happens every time the page script calls navigator.cookieEnabled.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1608243</commentid>
    <comment_count>1</comment_count>
      <attachid>388099</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-01-17 15:35:46 -0800</bug_when>
    <thetext>Created attachment 388099
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1608262</commentid>
    <comment_count>2</comment_count>
      <attachid>388104</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-01-17 16:00:15 -0800</bug_when>
    <thetext>Created attachment 388104
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1608470</commentid>
    <comment_count>3</comment_count>
      <attachid>388104</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-01-18 12:03:19 -0800</bug_when>
    <thetext>Comment on attachment 388104
Patch

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

&gt; Source/WebKit/WebProcess/Network/NetworkProcessConnection.cpp:234
&gt; +bool NetworkProcessConnection::cookiesEnabled()
&gt; +{
&gt; +    if (m_cachedCookiedEnabled)
&gt; +        return *m_cachedCookiedEnabled;
&gt; +
&gt; +    bool result = false;
&gt; +    connection().sendSync(Messages::NetworkConnectionToWebProcess::CookiesEnabled(), Messages::NetworkConnectionToWebProcess::CookiesEnabled::Reply(result), 0);
&gt; +    m_cachedCookiedEnabled = result;
&gt; +    return result;
&gt; +}

What is the value of keeping this sync vs. having the network process proactively update the WebProcesses whenever the policy changes? e.g. cookieAcceptPolicyMayHaveChanged becomes cookieAcceptPolicyChanged(newPolicy).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1608510</commentid>
    <comment_count>4</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2020-01-18 20:27:09 -0800</bug_when>
    <thetext>That would mean waking up all WebContent processes just for bookkeeping. Which may be frozen.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1608596</commentid>
    <comment_count>5</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-01-19 10:32:52 -0800</bug_when>
    <thetext>(In reply to Alexey Proskuryakov from comment #4)
&gt; That would mean waking up all WebContent processes just for bookkeeping.
&gt; Which may be frozen.

It seems like for cache invalidation via cookieAcceptPolicyMayHaveChanged you also have to wake up all WebContent processes just for book keeping, no? It that&apos;s something to optimize for, seems like having a stardarized delayed updating mechanism might be useful.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1608816</commentid>
    <comment_count>6</comment_count>
      <attachid>388104</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-01-20 12:02:46 -0800</bug_when>
    <thetext>Comment on attachment 388104
Patch

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

&gt;&gt; Source/WebKit/WebProcess/Network/NetworkProcessConnection.cpp:234
&gt;&gt; +}
&gt; 
&gt; What is the value of keeping this sync vs. having the network process proactively update the WebProcesses whenever the policy changes? e.g. cookieAcceptPolicyMayHaveChanged becomes cookieAcceptPolicyChanged(newPolicy).

I was going to ask the same thing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1609047</commentid>
    <comment_count>7</comment_count>
      <attachid>388104</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-01-21 08:13:30 -0800</bug_when>
    <thetext>Comment on attachment 388104
Patch

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

&gt;&gt;&gt; Source/WebKit/WebProcess/Network/NetworkProcessConnection.cpp:234
&gt;&gt;&gt; +}
&gt;&gt; 
&gt;&gt; What is the value of keeping this sync vs. having the network process proactively update the WebProcesses whenever the policy changes? e.g. cookieAcceptPolicyMayHaveChanged becomes cookieAcceptPolicyChanged(newPolicy).
&gt; 
&gt; I was going to ask the same thing.

We would need to both send the initial value to the WebContent process (maybe when it gets the IPC connection to the network process) and then keep the value in sync, whenever it changes. It is a bit of extra code complexity. My patch gets most of the perf benefit with a bit less complexity. That&apos;s not to say that we cannot do better but I believe my patch was a step in the right direction.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1609048</commentid>
    <comment_count>8</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-01-21 08:14:16 -0800</bug_when>
    <thetext>(In reply to Alexey Proskuryakov from comment #4)
&gt; That would mean waking up all WebContent processes just for bookkeeping.
&gt; Which may be frozen.

Sending an IPC to a suspended process does not wake it up, unless you actually explicitly take a process assertion to do so when sending the IPC.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1609056</commentid>
    <comment_count>9</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-01-21 08:28:38 -0800</bug_when>
    <thetext>(In reply to Chris Dumez from comment #7)
&gt; Comment on attachment 388104 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=388104&amp;action=review
&gt; 
&gt; &gt;&gt;&gt; Source/WebKit/WebProcess/Network/NetworkProcessConnection.cpp:234
&gt; &gt;&gt;&gt; +}
&gt; &gt;&gt; 
&gt; &gt;&gt; What is the value of keeping this sync vs. having the network process proactively update the WebProcesses whenever the policy changes? e.g. cookieAcceptPolicyMayHaveChanged becomes cookieAcceptPolicyChanged(newPolicy).
&gt; &gt; 
&gt; &gt; I was going to ask the same thing.
&gt; 
&gt; We would need to both send the initial value to the WebContent process
&gt; (maybe when it gets the IPC connection to the network process) and then keep
&gt; the value in sync, whenever it changes. It is a bit of extra code
&gt; complexity. My patch gets most of the perf benefit with a bit less
&gt; complexity. That&apos;s not to say that we cannot do better but I believe my
&gt; patch was a step in the right direction.

I generally think getting rid of the sync IPC rather than adding caching, where possible, should be done, even at the cost of a little more complexity (though in this case I don&apos;t really think it would be any more complex). The sync IPC tends to come back and bite you at an inopportune time.

Given you already have to do cache invalidation via CookieAcceptPolicyMayHaveChanged, I would expect setting an initial value when getting the network process connection would be all that remains (famous last words on my part there). Probably could add the bit to NetworkProcessConnectionInfo.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1609068</commentid>
    <comment_count>10</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-01-21 08:39:15 -0800</bug_when>
    <thetext>(In reply to Sam Weinig from comment #9)
&gt; (In reply to Chris Dumez from comment #7)
&gt; &gt; Comment on attachment 388104 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=388104&amp;action=review
&gt; &gt; 
&gt; &gt; &gt;&gt;&gt; Source/WebKit/WebProcess/Network/NetworkProcessConnection.cpp:234
&gt; &gt; &gt;&gt;&gt; +}
&gt; &gt; &gt;&gt; 
&gt; &gt; &gt;&gt; What is the value of keeping this sync vs. having the network process proactively update the WebProcesses whenever the policy changes? e.g. cookieAcceptPolicyMayHaveChanged becomes cookieAcceptPolicyChanged(newPolicy).
&gt; &gt; &gt; 
&gt; &gt; &gt; I was going to ask the same thing.
&gt; &gt; 
&gt; &gt; We would need to both send the initial value to the WebContent process
&gt; &gt; (maybe when it gets the IPC connection to the network process) and then keep
&gt; &gt; the value in sync, whenever it changes. It is a bit of extra code
&gt; &gt; complexity. My patch gets most of the perf benefit with a bit less
&gt; &gt; complexity. That&apos;s not to say that we cannot do better but I believe my
&gt; &gt; patch was a step in the right direction.
&gt; 
&gt; I generally think getting rid of the sync IPC rather than adding caching,
&gt; where possible, should be done, even at the cost of a little more complexity
&gt; (though in this case I don&apos;t really think it would be any more complex). The
&gt; sync IPC tends to come back and bite you at an inopportune time.
&gt; 
&gt; Given you already have to do cache invalidation via
&gt; CookieAcceptPolicyMayHaveChanged, I would expect setting an initial value
&gt; when getting the network process connection would be all that remains
&gt; (famous last words on my part there). Probably could add the bit to
&gt; NetworkProcessConnectionInfo.

Ok, I will look into this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1609255</commentid>
    <comment_count>11</comment_count>
      <attachid>388343</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-01-21 13:49:06 -0800</bug_when>
    <thetext>Created attachment 388343
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1609272</commentid>
    <comment_count>12</comment_count>
      <attachid>388345</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-01-21 14:08:10 -0800</bug_when>
    <thetext>Created attachment 388345
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1609274</commentid>
    <comment_count>13</comment_count>
      <attachid>388346</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-01-21 14:10:31 -0800</bug_when>
    <thetext>Created attachment 388346
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1609276</commentid>
    <comment_count>14</comment_count>
      <attachid>388347</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-01-21 14:13:14 -0800</bug_when>
    <thetext>Created attachment 388347
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1609302</commentid>
    <comment_count>15</comment_count>
      <attachid>388353</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-01-21 14:39:34 -0800</bug_when>
    <thetext>Created attachment 388353
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1609311</commentid>
    <comment_count>16</comment_count>
      <attachid>388354</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-01-21 14:53:46 -0800</bug_when>
    <thetext>Created attachment 388354
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1609312</commentid>
    <comment_count>17</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2020-01-21 14:54:32 -0800</bug_when>
    <thetext>Thanks for the patch. If this patch contains new public API please make sure it follows the guidelines for new WebKit2 GTK+ API. See http://trac.webkit.org/wiki/WebKitGTK/AddingNewWebKit2API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1609320</commentid>
    <comment_count>18</comment_count>
      <attachid>388358</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-01-21 15:01:52 -0800</bug_when>
    <thetext>Created attachment 388358
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1609323</commentid>
    <comment_count>19</comment_count>
      <attachid>388359</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-01-21 15:13:10 -0800</bug_when>
    <thetext>Created attachment 388359
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1609389</commentid>
    <comment_count>20</comment_count>
      <attachid>388359</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-01-21 17:11:37 -0800</bug_when>
    <thetext>Comment on attachment 388359
Patch

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

&gt; Source/WebCore/platform/network/cf/NetworkStorageSessionCFNetWin.cpp:272
&gt; +    if (policy == CFHTTPCookieStorageAcceptPolicyAlways)
&gt; +        return HTTPCookieAcceptPolicy::AlwaysAccept;
&gt; +    if (policy == CFHTTPCookieStorageAcceptPolicyOnlyFromMainDocumentDomain)
&gt; +        return HTTPCookieAcceptPolicy::OnlyFromMainDocumentDomain;
&gt; +    if (policy == CFHTTPCookieStorageAcceptPolicyExclusivelyFromMainDocumentDomain)
&gt; +        return HTTPCookieAcceptPolicy::ExclusivelyFromMainDocumentDomain;
&gt; +
&gt; +    return HTTPCookieAcceptPolicy::Never;

Why not use a switch? I guess because it’s not an enum we don’t get that extra compiler checking, but I’d still be tempted to write it that way.

&gt; Source/WebCore/platform/network/cocoa/NetworkStorageSessionCocoa.mm:464
&gt; +    if (cookieAcceptPolicy == NSHTTPCookieAcceptPolicyAlways)
&gt; +        return HTTPCookieAcceptPolicy::AlwaysAccept;
&gt; +    if (cookieAcceptPolicy == NSHTTPCookieAcceptPolicyOnlyFromMainDocumentDomain)
&gt; +        return HTTPCookieAcceptPolicy::OnlyFromMainDocumentDomain;
&gt; +    if (cookieAcceptPolicy == NSHTTPCookieAcceptPolicyExclusivelyFromMainDocumentDomain)
&gt; +        return HTTPCookieAcceptPolicy::ExclusivelyFromMainDocumentDomain;
&gt;      END_BLOCK_OBJC_EXCEPTIONS;
&gt; -    return false;
&gt; +
&gt; +    return HTTPCookieAcceptPolicy::Never;

Ditto.

&gt; Source/WebCore/platform/network/soup/NetworkStorageSessionSoup.cpp:252
&gt; +    if (policy == SOUP_COOKIE_JAR_ACCEPT_ALWAYS)
&gt; +        return HTTPCookieAcceptPolicy::AlwaysAccept;
&gt; +    if (policy == SOUP_COOKIE_JAR_ACCEPT_NO_THIRD_PARTY)
&gt; +        return HTTPCookieAcceptPolicy::OnlyFromMainDocumentDomain;
&gt; +    return HTTPCookieAcceptPolicy::Never;

Ditto.

&gt; Source/WebKit/NetworkProcess/Cookies/WebCookieManager.cpp:158
&gt; +#if PLATFORM(COCOA)
&gt; +    completionHandler(WebCookieManager::platformGetHTTPCookieAcceptPolicy());
&gt; +#else
&gt; +    completionHandler(m_process.defaultStorageSession().cookieAcceptPolicy());
&gt; +#endif

I don’t understand why Cocoa is different here. Maybe it should be obvious but somehow it’s not.

&gt; Source/WebKit/NetworkProcess/NetworkProcess.cpp:390
&gt; +    HTTPCookieAcceptPolicy cookieAcceptPolicy = HTTPCookieAcceptPolicy::Never;
&gt; +    if (auto* storage = storageSession(sessionID))
&gt; +        cookieAcceptPolicy = storage-&gt;cookieAcceptPolicy();
&gt; +
&gt; +    completionHandler(WTFMove(ipcConnection-&gt;second), cookieAcceptPolicy);

Consider:

    auto* storage = storageSession(sessionID);
    completionHandler(WTFMove(ipcConnection-&gt;second),
        storage ? storage-&gt;cookieAcceptPolicy() : HTTPCookieAcceptPolicy::Never);

Maybe you still like the if better?

&gt; Source/WebKit/UIProcess/API/Cocoa/WKProcessPool.mm:203
&gt; +static WebCore::HTTPCookieAcceptPolicy toHTTPCookieAcceptPolicy(NSHTTPCookieAcceptPolicy policy)

Seems to duplicate code in NetworkStorageSession::cookieAcceptPolicy. Might be nice to find a way to share these conversion functions.

&gt; Source/WebKit/WebProcess/Network/NetworkProcessConnection.h:84
&gt; +    bool cookiesEnabled();

Maybe const.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1609553</commentid>
    <comment_count>21</comment_count>
      <attachid>388359</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-01-22 08:37:42 -0800</bug_when>
    <thetext>Comment on attachment 388359
Patch

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

&gt;&gt; Source/WebCore/platform/network/cf/NetworkStorageSessionCFNetWin.cpp:272
&gt;&gt; +    return HTTPCookieAcceptPolicy::Never;
&gt; 
&gt; Why not use a switch? I guess because it’s not an enum we don’t get that extra compiler checking, but I’d still be tempted to write it that way.

Because it was not an enum I did not use a switch, but I guess you&apos;re right, it does not hurt to use an enum, we simply don&apos;t get the extra validation.

&gt;&gt; Source/WebCore/platform/network/cocoa/NetworkStorageSessionCocoa.mm:464
&gt;&gt; +    return HTTPCookieAcceptPolicy::Never;
&gt; 
&gt; Ditto.

Ok.

&gt;&gt; Source/WebKit/NetworkProcess/Cookies/WebCookieManager.cpp:158
&gt;&gt; +#endif
&gt; 
&gt; I don’t understand why Cocoa is different here. Maybe it should be obvious but somehow it’s not.

I will double check. I don&apos;t remember exactly but I think it was me trying to be conservative because the Cocoa implementation was slightly different (used Cocoa directly instead of m_process.defaultStorageSession()). I was worried about constructing the DefaultStorageSession unnecessarily, which may not be an issue.

&gt;&gt; Source/WebKit/NetworkProcess/NetworkProcess.cpp:390
&gt;&gt; +    completionHandler(WTFMove(ipcConnection-&gt;second), cookieAcceptPolicy);
&gt; 
&gt; Consider:
&gt; 
&gt;     auto* storage = storageSession(sessionID);
&gt;     completionHandler(WTFMove(ipcConnection-&gt;second),
&gt;         storage ? storage-&gt;cookieAcceptPolicy() : HTTPCookieAcceptPolicy::Never);
&gt; 
&gt; Maybe you still like the if better?

I like your proposal, will update.

&gt;&gt; Source/WebKit/UIProcess/API/Cocoa/WKProcessPool.mm:203
&gt;&gt; +static WebCore::HTTPCookieAcceptPolicy toHTTPCookieAcceptPolicy(NSHTTPCookieAcceptPolicy policy)
&gt; 
&gt; Seems to duplicate code in NetworkStorageSession::cookieAcceptPolicy. Might be nice to find a way to share these conversion functions.

Oh, indeed.

&gt;&gt; Source/WebKit/WebProcess/Network/NetworkProcessConnection.h:84
&gt;&gt; +    bool cookiesEnabled();
&gt; 
&gt; Maybe const.

Ok.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1609577</commentid>
    <comment_count>22</comment_count>
      <attachid>388426</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-01-22 09:11:45 -0800</bug_when>
    <thetext>Created attachment 388426
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1609649</commentid>
    <comment_count>23</comment_count>
      <attachid>388426</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-01-22 11:31:20 -0800</bug_when>
    <thetext>Comment on attachment 388426
Patch

Clearing flags on attachment: 388426

Committed r254931: &lt;https://trac.webkit.org/changeset/254931&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1609650</commentid>
    <comment_count>24</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-01-22 11:31:22 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1609815</commentid>
    <comment_count>25</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-01-22 15:57:41 -0800</bug_when>
    <thetext>&lt;rdar://problem/58814695&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>388099</attachid>
            <date>2020-01-17 15:35:46 -0800</date>
            <delta_ts>2020-01-17 16:00:13 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-206450-20200117153546.patch</filename>
            <type>text/plain</type>
            <size>11627</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0NzU2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDU1MjAxMGU4MzEzMTQ2NDQ2
NmIyNzI2Y2Q4MmZkYWEwODcwOGZjNGMuLjQ5M2QwMTExZmI2ZWY3Y2I2Yjc2OWU4ZGZlOTUzN2Vi
NDdkY2VkNWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzMgQEAKKzIwMjAtMDEtMTcgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBGcmVxdWVudCBOZXR3b3JrQ29ubmVj
dGlvblRvV2ViUHJvY2Vzczo6Q29va2llc0VuYWJsZWQgc3luYyBJUEMgd2hlbiBicm93c2luZyBy
ZWRkaXQuY29tCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMDY0NTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBGcmVxdWVudCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Q29va2llc0VuYWJsZWQg
c3luYyBJUEMgd2hlbiBicm93c2luZyByZWRkaXQuY29tLiBUaGlzCisgICAgICAgIGhhcHBlbnMg
ZXZlcnkgdGltZSB0aGUgcGFnZSBzY3JpcHQgY2FsbHMgbmF2aWdhdG9yLmNvb2tpZUVuYWJsZWQu
IFRvIGFkZHJlc3MgdGhlIGlzc3VlLCB3ZSBub3cKKyAgICAgICAgY2FjaGUgdGhlIGZsYWcgb24g
dGhlIFdlYkNvbnRlbnQgcHJvY2VzcyBzaWRlIGFuZCBtYWtlIHN1cmUgdG8gY2xlYXIgdGhpcyBj
YWNoZWQgZmxhZyB3aGVuZXZlcgorICAgICAgICB0aGUgY29va2llIHBvbGljeSBnZXRzIGNoYW5n
ZWQuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDb29raWVNYW5hZ2VyOjpzZXRIVFRQQ29va2llQWNj
ZXB0UG9saWN5KToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzOjpzZXRPbkxpbmVTdGF0ZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzOjpjb29raWVBY2NlcHRQb2xpY3lNYXlIYXZlQ2hhbmdlZCk6CisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaDoKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJL
aXQ6Ok5ldHdvcmtQcm9jZXNzOjpjb29raWVBY2NlcHRQb2xpY3lNYXlIYXZlQ2hhbmdlZCk6Cisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjp3cml0ZUJsb2JzVG9UZW1wb3JhcnlGaWxl
cyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6Y29va2llc0Vu
YWJsZWQpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OmNvb2tp
ZUFjY2VwdFBvbGljeU1heUhhdmVDaGFuZ2VkKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdv
cmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3
b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViQ29va2llSmFyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ29v
a2llSmFyOjpjb29raWVzRW5hYmxlZCBjb25zdCk6CisKIDIwMjAtMDEtMTcgIENocmlzIER1bWV6
ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBGcmVxdWVudCBzeW5jIEJhY2tGb3J3YXJk
QmFja0xpc3RDb3VudC9CYWNrRm9yd2FyZEZvcndhcmRMaXN0Q291bnQgSVBDIG9uIHJlZGRpdC5j
b20KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ29va2llcy9XZWJD
b29raWVNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ29va2llcy9X
ZWJDb29raWVNYW5hZ2VyLmNwcAppbmRleCA1ZDZmMDUyMjE0OGVhZjZjYTBhOTJlOTYyZTRlODI4
ZTdkYTdmNzJiLi41NTcyNThiZDUwMGZjMzM5MjA2YmE5NjgzYzA0ZDY2OTdhNTMyMDBiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFu
YWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Db29raWVzL1dlYkNv
b2tpZU1hbmFnZXIuY3BwCkBAIC0xNDQsNiArMTQ0LDcgQEAgdm9pZCBXZWJDb29raWVNYW5hZ2Vy
OjpzdG9wT2JzZXJ2aW5nQ29va2llQ2hhbmdlcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiB2
b2lkIFdlYkNvb2tpZU1hbmFnZXI6OnNldEhUVFBDb29raWVBY2NlcHRQb2xpY3koSFRUUENvb2tp
ZUFjY2VwdFBvbGljeSBwb2xpY3ksIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0
aW9uSGFuZGxlcikKIHsKICAgICBwbGF0Zm9ybVNldEhUVFBDb29raWVBY2NlcHRQb2xpY3kocG9s
aWN5KTsKKyAgICBtX3Byb2Nlc3MuY29va2llQWNjZXB0UG9saWN5TWF5SGF2ZUNoYW5nZWQoKTsK
IAogICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3Bw
CmluZGV4IGIyZDRjNmMxZjYxOTYwNzE0MmVhYzc3MjRiY2JiYTA4MThmM2IwNTIuLjAzNmVjZDc2
MDlhYTlhZGFiZjA4OTQ3YTdiZTNjNTRiZGNkYzg0NDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MuY3BwCkBAIC00NjMsNiArNDYzLDExIEBAIHZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3M6OnNldE9uTGluZVN0YXRlKGJvb2wgaXNPbkxpbmUpCiAgICAgbV9jb25uZWN0aW9uLT5z
ZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OlNldE9uTGluZVN0YXRlKGlz
T25MaW5lKSwgMCk7CiB9CiAKK3ZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNv
b2tpZUFjY2VwdFBvbGljeU1heUhhdmVDaGFuZ2VkKCkKK3sKKyAgICBtX2Nvbm5lY3Rpb24tPnNl
bmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6Q29va2llQWNjZXB0UG9saWN5
TWF5SGF2ZUNoYW5nZWQoKSwgMCk7Cit9CisKIHZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3M6OnJlbW92ZUxvYWRJZGVudGlmaWVyKFJlc291cmNlTG9hZElkZW50aWZpZXIgaWRlbnRp
ZmllcikKIHsKICAgICBSRUxFQVNFX0FTU0VSVChpZGVudGlmaWVyKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mu
aCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MuaAppbmRleCA4Mzk3NDMxYzAzMzEzY2MyYzA1MGQ1MTJjOTUyYWU3ZTNmZWU5YTY1Li44
YjY0YzQ0MmNlZmMxZmIyMDIyMzliMjg5ZTVlY2ZhMjdjYWY3YjdkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgK
KysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzcy5oCkBAIC0xNjcsNiArMTY3LDggQEAgcHVibGljOgogCiAgICAgTmV0d29ya1NjaGVt
ZVJlZ2lzdHJ5JiBzY2hlbWVSZWdpc3RyeSgpIHsgcmV0dXJuIG1fc2NoZW1lUmVnaXN0cnkuZ2V0
KCk7IH0KIAorICAgIHZvaWQgY29va2llQWNjZXB0UG9saWN5TWF5SGF2ZUNoYW5nZWQoKTsKKwog
cHJpdmF0ZToKICAgICBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyhOZXR3b3JrUHJvY2Vz
cyYsIFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyLCBQQUw6OlNlc3Npb25JRCwgSVBDOjpDb25u
ZWN0aW9uOjpJZGVudGlmaWVyKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtQcm9jZXNzLmNwcAppbmRleCAzOTkyNmViNmFhODhhOWEyNjFiMzQwNzg1Zjc0MThi
ODlmZjIxMTY4Li4zMDRiOTdkMjI2NGJjMWY0N2I5ODFmNmE3Y2YxODU4YjY3NzlhN2M5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcApAQCAt
NTA3LDYgKzUwNywxMiBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjplbnN1cmVTZXNzaW9uKGNvbnN0
IFBBTDo6U2Vzc2lvbklEJiBzZXNzaW9uSUQsIGJvb2wgc2hvdWxkVQogI2VuZGlmCiB9CiAKK3Zv
aWQgTmV0d29ya1Byb2Nlc3M6OmNvb2tpZUFjY2VwdFBvbGljeU1heUhhdmVDaGFuZ2VkKCkKK3sK
KyAgICBmb3IgKGF1dG8mIGNvbm5lY3Rpb24gOiBtX3dlYlByb2Nlc3NDb25uZWN0aW9ucy52YWx1
ZXMoKSkKKyAgICAgICAgY29ubmVjdGlvbi0+Y29va2llQWNjZXB0UG9saWN5TWF5SGF2ZUNoYW5n
ZWQoKTsKK30KKwogV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uKiBOZXR3b3JrUHJvY2Vz
czo6c3RvcmFnZVNlc3Npb24oY29uc3QgUEFMOjpTZXNzaW9uSUQmIHNlc3Npb25JRCkgY29uc3QK
IHsKICAgICBpZiAoc2Vzc2lvbklEID09IFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklE
KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9j
ZXNzLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKaW5k
ZXggM2VmODZlYzMwYTAxNTg4M2RjYWM3OWEyMmJmNTI4NmM1ZWZjMjFlNC4uNjIwZjk4MjI1Nzk0
ZGY5NzM1MzE4OGMxZDc3YWExYTY5ODQ4MmYzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaApAQCAtMzQzLDYgKzM0Myw4IEBAIHB1YmxpYzoKICAg
ICB2b2lkIHJlc2V0U2VydmljZVdvcmtlckZldGNoVGltZW91dEZvclRlc3RpbmcoQ29tcGxldGlv
bkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICBTZWNvbmRzIHNlcnZpY2VXb3JrZXJGZXRjaFRpbWVv
dXQoKSBjb25zdCB7IHJldHVybiBtX3NlcnZpY2VXb3JrZXJGZXRjaFRpbWVvdXQ7IH0KIAorICAg
IHZvaWQgY29va2llQWNjZXB0UG9saWN5TWF5SGF2ZUNoYW5nZWQoKTsKKwogcHJpdmF0ZToKICAg
ICB2b2lkIHBsYXRmb3JtSW5pdGlhbGl6ZU5ldHdvcmtQcm9jZXNzKGNvbnN0IE5ldHdvcmtQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJik7CiAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6Ok5l
dHdvcmtTdG9yYWdlU2Vzc2lvbj4gcGxhdGZvcm1DcmVhdGVEZWZhdWx0U3RvcmFnZVNlc3Npb24o
KSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL05l
dHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0
d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCmluZGV4IGZkMDBkNzg2NGI1YTUzZmI3
NDMwZTE2Yjg3MGNhNjJjYjAwYWRkYTQuLmNiYmJkYjRmYzBhMzg5ZTc2Y2IwMDc3ZGVhNDFiOGE1
YjVkMmRkMTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL05l
dHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmNwcApAQCAtMjA0LDcgKzIwNCw3IEBA
IHZvaWQgTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2Uo
SVBDOjpDb25uZWN0aW9uJiwgSVBDOjpTCiAKIHZvaWQgTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9u
Ojp3cml0ZUJsb2JzVG9UZW1wb3JhcnlGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgYmxvYlVS
THMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9yPFN0cmluZz4mJiBmaWxlUGF0aHMpPiYm
IGNvbXBsZXRpb25IYW5kbGVyKQogewotICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3Vy
ZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kV2l0aEFzeW5jUmVw
bHkoTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpXcml0ZUJsb2JzVG9U
ZW1wb3JhcnlGaWxlcyhibG9iVVJMcyksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAg
ICBjb25uZWN0aW9uKCkuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVj
dGlvblRvV2ViUHJvY2Vzczo6V3JpdGVCbG9ic1RvVGVtcG9yYXJ5RmlsZXMoYmxvYlVSTHMpLCBX
VEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKIHZvaWQgTmV0d29ya1Byb2Nlc3NDb25u
ZWN0aW9uOjpkaWRGaW5pc2hQaW5nTG9hZCh1aW50NjRfdCBwaW5nTG9hZElkZW50aWZpZXIsIFJl
c291cmNlRXJyb3ImJiBlcnJvciwgUmVzb3VyY2VSZXNwb25zZSYmIHJlc3BvbnNlKQpAQCAtMjIy
LDYgKzIyMiwyMiBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6c2V0T25MaW5lU3Rh
dGUoYm9vbCBpc09uTGluZSkKICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJMb2FkZXJT
dHJhdGVneSgpLnNldE9uTGluZVN0YXRlKGlzT25MaW5lKTsKIH0KIAorYm9vbCBOZXR3b3JrUHJv
Y2Vzc0Nvbm5lY3Rpb246OmNvb2tpZXNFbmFibGVkKCkKK3sKKyAgICBpZiAobV9jYWNoZWRDb29r
aWVkRW5hYmxlZCkKKyAgICAgICAgcmV0dXJuICptX2NhY2hlZENvb2tpZWRFbmFibGVkOworCisg
ICAgYm9vbCByZXN1bHQgPSBmYWxzZTsKKyAgICBjb25uZWN0aW9uKCkuc2VuZFN5bmMoTWVzc2Fn
ZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpDb29raWVzRW5hYmxlZCgpLCBNZXNz
YWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OkNvb2tpZXNFbmFibGVkOjpSZXBs
eShyZXN1bHQpLCAwKTsKKyAgICBtX2NhY2hlZENvb2tpZWRFbmFibGVkID0gcmVzdWx0OworICAg
IHJldHVybiByZXN1bHQ7Cit9CisKK3ZvaWQgTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpjb29r
aWVBY2NlcHRQb2xpY3lNYXlIYXZlQ2hhbmdlZCgpCit7CisgICAgbV9jYWNoZWRDb29raWVkRW5h
YmxlZCA9IFdURjo6bnVsbG9wdDsKK30KKwogI2lmIEVOQUJMRShTSEFSRUFCTEVfUkVTT1VSQ0Up
CiB2b2lkIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkQ2FjaGVSZXNvdXJjZShjb25zdCBS
ZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFNoYXJlYWJsZVJlc291cmNlOjpIYW5kbGUm
IGhhbmRsZSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3Jr
L05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05l
dHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmgKaW5kZXggMmE0OTZhOWU0ZTQzMzllYjA1
ODRhYTIyNjQyMWY2MjBiMTBkZGNkYi4uNjk0Mjk5NGY2MTc3Mzg1NzliZmJhMTQyMGM0NWRkZmM0
NmI2ZWRjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0
d29ya1Byb2Nlc3NDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05l
dHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmgKQEAgLTgwLDYgKzgwLDggQEAgcHVibGlj
OgogICAgIE9wdGlvbmFsPGF1ZGl0X3Rva2VuX3Q+IG5ldHdvcmtQcm9jZXNzQXVkaXRUb2tlbigp
IGNvbnN0IHsgcmV0dXJuIG1fbmV0d29ya1Byb2Nlc3NBdWRpdFRva2VuOyB9CiAjZW5kaWYKIAor
ICAgIGJvb2wgY29va2llc0VuYWJsZWQoKTsKKwogcHJpdmF0ZToKICAgICBOZXR3b3JrUHJvY2Vz
c0Nvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyKTsKIApAQCAtOTIsNiArOTQs
NyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkRmluaXNoUGluZ0xvYWQodWludDY0X3QgcGluZ0xv
YWRJZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiYsIFdlYkNvcmU6OlJlc291cmNl
UmVzcG9uc2UmJik7CiAgICAgdm9pZCBkaWRGaW5pc2hQcmVjb25uZWN0aW9uKHVpbnQ2NF90IHBy
ZWNvbm5lY3Rpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiYpOwogICAgIHZv
aWQgc2V0T25MaW5lU3RhdGUoYm9vbCBpc09uTGluZSk7CisgICAgdm9pZCBjb29raWVBY2NlcHRQ
b2xpY3lNYXlIYXZlQ2hhbmdlZCgpOwogCiAgICAgdm9pZCBjaGVja1Byb2Nlc3NMb2NhbFBvcnRG
b3JBY3Rpdml0eShjb25zdCBXZWJDb3JlOjpNZXNzYWdlUG9ydElkZW50aWZpZXImLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6Ok1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyOjpIYXNB
Y3Rpdml0eSk+JiYpOwogICAgIHZvaWQgbWVzc2FnZXNBdmFpbGFibGVGb3JQb3J0KGNvbnN0IFdl
YkNvcmU6Ok1lc3NhZ2VQb3J0SWRlbnRpZmllciYpOwpAQCAtMTE0LDYgKzExNyw3IEBAIHByaXZh
dGU6CiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQogICAgIFJlZlB0cjxXZWJTV0NsaWVudENv
bm5lY3Rpb24+IG1fc3dDb25uZWN0aW9uOwogI2VuZGlmCisgICAgT3B0aW9uYWw8Ym9vbD4gbV9j
YWNoZWRDb29raWVkRW5hYmxlZDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25u
ZWN0aW9uLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0
d29ya1Byb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluCmluZGV4IDRkNjM0YzU3YjljNzk5NTA0
OGEwODBmMjdmM2UzMmU1MzA1MjZhZWIuLjg0ZDAzNDI2Mzg0NDg4YTk4N2NjNDg2N2MyNTgwNmVh
ZWZlZmQzMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL05l
dHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4KQEAg
LTI5LDYgKzI5LDcgQEAgbWVzc2FnZXMgLT4gTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uIExlZ2Fj
eVJlY2VpdmVyIHsKICAgICBEaWRGaW5pc2hQaW5nTG9hZCh1aW50NjRfdCBwaW5nTG9hZElkZW50
aWZpZXIsIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgZXJyb3IsIFdlYkNvcmU6OlJlc291cmNlUmVz
cG9uc2UgcmVzcG9uc2UpCiAgICAgRGlkRmluaXNoUHJlY29ubmVjdGlvbih1aW50NjRfdCBwcmVj
b25uZWN0aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBlcnJvcikKICAgICBT
ZXRPbkxpbmVTdGF0ZShib29sIGlzT25MaW5lKTsKKyAgICBDb29raWVBY2NlcHRQb2xpY3lNYXlI
YXZlQ2hhbmdlZCgpOwogCiAgICAgQ2hlY2tQcm9jZXNzTG9jYWxQb3J0Rm9yQWN0aXZpdHkoc3Ry
dWN0IFdlYkNvcmU6Ok1lc3NhZ2VQb3J0SWRlbnRpZmllciBwb3J0KSAtPiAoV2ViQ29yZTo6TWVz
c2FnZVBvcnRDaGFubmVsUHJvdmlkZXI6Okhhc0FjdGl2aXR5IGhhc0FjdGl2aXR5KSBBc3luYwog
ICAgIE1lc3NhZ2VzQXZhaWxhYmxlRm9yUG9ydChzdHJ1Y3QgV2ViQ29yZTo6TWVzc2FnZVBvcnRJ
ZGVudGlmaWVyIHBvcnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJDb29raWVKYXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViQ29va2llSmFyLmNwcAppbmRleCA1ODgwYmJmYzRkOTg2YzFlNTAxODY5ZGU5NTRkNmE1Nzkx
ODczY2I3Li4zZDdhODU5NWE0NDViZDYxZmMzYjY5M2Q0MjMwNWRhMGIzZGMwZGM1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJDb29raWVKYXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkNvb2tpZUphci5jcHAKQEAg
LTEyOSwxMiArMTI5LDkgQEAgdm9pZCBXZWJDb29raWVKYXI6OnNldENvb2tpZXMoV2ViQ29yZTo6
RG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBVUkwmIHVybCwgY29uc3QKICAgICBXZWJQcm9jZXNz
OjpzaW5nbGV0b24oKS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9u
KCkuc2VuZChNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OlNldENvb2tp
ZXNGcm9tRE9NKGRvY3VtZW50LmZpcnN0UGFydHlGb3JDb29raWVzKCksIHNhbWVTaXRlSW5mbyhk
b2N1bWVudCksIHVybCwgZnJhbWVJRCwgcGFnZUlELCBzaG91bGRBc2tJVFBJbk5ldHdvcmtQcm9j
ZXNzLCBjb29raWVTdHJpbmcpLCAwKTsKIH0KIAotYm9vbCBXZWJDb29raWVKYXI6OmNvb2tpZXNF
bmFibGVkKGNvbnN0IFdlYkNvcmU6OkRvY3VtZW50JiBkb2N1bWVudCkgY29uc3QKK2Jvb2wgV2Vi
Q29va2llSmFyOjpjb29raWVzRW5hYmxlZChjb25zdCBEb2N1bWVudCYpIGNvbnN0CiB7Ci0gICAg
Ym9vbCByZXN1bHQgPSBmYWxzZTsKLSAgICBpZiAoIVdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVu
c3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kU3luYyhNZXNz
YWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OkNvb2tpZXNFbmFibGVkKCksIE1l
c3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Q29va2llc0VuYWJsZWQ6OlJl
cGx5KHJlc3VsdCksIDApKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgcmV0dXJuIHJlc3Vs
dDsKKyAgICByZXR1cm4gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nl
c3NDb25uZWN0aW9uKCkuY29va2llc0VuYWJsZWQoKTsKIH0KIAogc3RkOjpwYWlyPFN0cmluZywg
V2ViQ29yZTo6U2VjdXJlQ29va2llc0FjY2Vzc2VkPiBXZWJDb29raWVKYXI6OmNvb2tpZVJlcXVl
c3RIZWFkZXJGaWVsZFZhbHVlKGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6
U2FtZVNpdGVJbmZvJiBzYW1lU2l0ZUluZm8sIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDxGcmFt
ZUlkZW50aWZpZXI+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIFdl
YkNvcmU6OkluY2x1ZGVTZWN1cmVDb29raWVzIGluY2x1ZGVTZWN1cmVDb29raWVzKSBjb25zdAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>388104</attachid>
            <date>2020-01-17 16:00:15 -0800</date>
            <delta_ts>2020-01-21 13:49:04 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-206450-20200117160014.patch</filename>
            <type>text/plain</type>
            <size>12243</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0NzU2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDU1MjAxMGU4MzEzMTQ2NDQ2
NmIyNzI2Y2Q4MmZkYWEwODcwOGZjNGMuLmNmNTI1NDBjYjBkYzYwMzI4M2NmYTNkNmMyMWJmNDMz
MTFlMTZmMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzcgQEAKKzIwMjAtMDEtMTcgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBGcmVxdWVudCBOZXR3b3JrQ29ubmVj
dGlvblRvV2ViUHJvY2Vzczo6Q29va2llc0VuYWJsZWQgc3luYyBJUEMgd2hlbiBicm93c2luZyBy
ZWRkaXQuY29tCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMDY0NTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBGcmVxdWVudCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Q29va2llc0VuYWJsZWQg
c3luYyBJUEMgd2hlbiBicm93c2luZyByZWRkaXQuY29tLiBUaGlzCisgICAgICAgIGhhcHBlbnMg
ZXZlcnkgdGltZSB0aGUgcGFnZSBzY3JpcHQgY2FsbHMgbmF2aWdhdG9yLmNvb2tpZUVuYWJsZWQu
IFRvIGFkZHJlc3MgdGhlIGlzc3VlLCB3ZSBub3cKKyAgICAgICAgY2FjaGUgdGhlIGZsYWcgb24g
dGhlIFdlYkNvbnRlbnQgcHJvY2VzcyBzaWRlIGFuZCBtYWtlIHN1cmUgdG8gY2xlYXIgdGhpcyBj
YWNoZWQgZmxhZyB3aGVuZXZlcgorICAgICAgICB0aGUgY29va2llIHBvbGljeSBnZXRzIGNoYW5n
ZWQuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDb29raWVNYW5hZ2VyOjpzZXRIVFRQQ29va2llQWNj
ZXB0UG9saWN5KToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzOjpzZXRPbkxpbmVTdGF0ZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzOjpjb29raWVBY2NlcHRQb2xpY3lNYXlIYXZlQ2hhbmdlZCk6CisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaDoKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJL
aXQ6Ok5ldHdvcmtQcm9jZXNzOjpjb29raWVBY2NlcHRQb2xpY3lNYXlIYXZlQ2hhbmdlZCk6Cisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjp3cml0ZUJsb2JzVG9UZW1wb3JhcnlGaWxl
cyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6Y29va2llc0Vu
YWJsZWQpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OmNvb2tp
ZUFjY2VwdFBvbGljeU1heUhhdmVDaGFuZ2VkKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdv
cmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3
b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbjoKKworICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViUGFnZS9XZWJDb29raWVKYXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJD
b29raWVKYXI6OmNvb2tpZXNFbmFibGVkIGNvbnN0KToKKyAgICAgICAgLSBSZXR1cm4gZmFsc2Ug
ZWFybHkgaWYgdGhlIGRvY3VtZW50IGhhcyBubyBmcmFtZSAvIHBhZ2UgKGNvb2tpZS1hdmVyc2Ug
YXMgcGVyIHNwZWMpCisgICAgICAgIC0gUmV0dXJuIGZhbHNlIGVhcmx5IGlmIElUUCBpcyBlbmFi
bGVkIGFuZCBpdCBpcyBhIHRoaXJkLXBhcnR5IGlmcmFtZSB3aXRob3V0IHN0b3JhZ2UKKyAgICAg
ICAgICBhY2Nlc3MuIFRoaXMgYnlwYXNzZXMgdGhlIHN5bmMgSVBDIGNhbGwgY29tcGxldGVseSBm
b3Igc3VjaCBpZnJhbWVzLgorCiAyMDIwLTAxLTE3ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBs
ZS5jb20+CiAKICAgICAgICAgRnJlcXVlbnQgc3luYyBCYWNrRm9yd2FyZEJhY2tMaXN0Q291bnQv
QmFja0ZvcndhcmRGb3J3YXJkTGlzdENvdW50IElQQyBvbiByZWRkaXQuY29tCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlci5j
cHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdl
ci5jcHAKaW5kZXggNWQ2ZjA1MjIxNDhlYWY2Y2EwYTkyZTk2MmU0ZTgyOGU3ZGE3ZjcyYi4uNTU3
MjU4YmQ1MDBmYzMzOTIwNmJhOTY4M2MwNGQ2Njk3YTUzMjAwYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ29va2llcy9XZWJDb29raWVNYW5hZ2VyLmNw
cApAQCAtMTQ0LDYgKzE0NCw3IEBAIHZvaWQgV2ViQ29va2llTWFuYWdlcjo6c3RvcE9ic2Vydmlu
Z0Nvb2tpZUNoYW5nZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogdm9pZCBXZWJDb29raWVN
YW5hZ2VyOjpzZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KEhUVFBDb29raWVBY2NlcHRQb2xpY3kg
cG9saWN5LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7
CiAgICAgcGxhdGZvcm1TZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KHBvbGljeSk7CisgICAgbV9w
cm9jZXNzLmNvb2tpZUFjY2VwdFBvbGljeU1heUhhdmVDaGFuZ2VkKCk7CiAKICAgICBjb21wbGV0
aW9uSGFuZGxlcigpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAppbmRleCBiMmQ0YzZj
MWY2MTk2MDcxNDJlYWM3NzI0YmNiYmEwODE4ZjNiMDUyLi4wMzZlY2Q3NjA5YWE5YWRhYmYwODk0
N2E3YmUzYzU0YmRjZGM4NDQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcApAQCAtNDYz
LDYgKzQ2MywxMSBAQCB2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpzZXRPbkxp
bmVTdGF0ZShib29sIGlzT25MaW5lKQogICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6
TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpTZXRPbkxpbmVTdGF0ZShpc09uTGluZSksIDApOwog
fQogCit2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpjb29raWVBY2NlcHRQb2xp
Y3lNYXlIYXZlQ2hhbmdlZCgpCit7CisgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpO
ZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OkNvb2tpZUFjY2VwdFBvbGljeU1heUhhdmVDaGFuZ2Vk
KCksIDApOworfQorCiB2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpyZW1vdmVM
b2FkSWRlbnRpZmllcihSZXNvdXJjZUxvYWRJZGVudGlmaWVyIGlkZW50aWZpZXIpCiB7CiAgICAg
UkVMRUFTRV9BU1NFUlQoaWRlbnRpZmllcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKaW5kZXgg
ODM5NzQzMWMwMzMxM2NjMmMwNTBkNTEyYzk1MmFlN2UzZmVlOWE2NS4uOGI2NGM0NDJjZWZjMWZi
MjAyMjM5YjI4OWU1ZWNmYTI3Y2FmN2I3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaApAQCAt
MTY3LDYgKzE2Nyw4IEBAIHB1YmxpYzoKIAogICAgIE5ldHdvcmtTY2hlbWVSZWdpc3RyeSYgc2No
ZW1lUmVnaXN0cnkoKSB7IHJldHVybiBtX3NjaGVtZVJlZ2lzdHJ5LmdldCgpOyB9CiAKKyAgICB2
b2lkIGNvb2tpZUFjY2VwdFBvbGljeU1heUhhdmVDaGFuZ2VkKCk7CisKIHByaXZhdGU6CiAgICAg
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoTmV0d29ya1Byb2Nlc3MmLCBXZWJDb3JlOjpQ
cm9jZXNzSWRlbnRpZmllciwgUEFMOjpTZXNzaW9uSUQsIElQQzo6Q29ubmVjdGlvbjo6SWRlbnRp
Zmllcik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Byb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vz
cy5jcHAKaW5kZXggMzk5MjZlYjZhYTg4YTlhMjYxYjM0MDc4NWY3NDE4Yjg5ZmYyMTE2OC4uMzA0
Yjk3ZDIyNjRiYzFmNDdiOTgxZjZhN2NmMTg1OGI2Nzc5YTdjOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKQEAgLTUwNyw2ICs1MDcsMTIg
QEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6ZW5zdXJlU2Vzc2lvbihjb25zdCBQQUw6OlNlc3Npb25J
RCYgc2Vzc2lvbklELCBib29sIHNob3VsZFUKICNlbmRpZgogfQogCit2b2lkIE5ldHdvcmtQcm9j
ZXNzOjpjb29raWVBY2NlcHRQb2xpY3lNYXlIYXZlQ2hhbmdlZCgpCit7CisgICAgZm9yIChhdXRv
JiBjb25uZWN0aW9uIDogbV93ZWJQcm9jZXNzQ29ubmVjdGlvbnMudmFsdWVzKCkpCisgICAgICAg
IGNvbm5lY3Rpb24tPmNvb2tpZUFjY2VwdFBvbGljeU1heUhhdmVDaGFuZ2VkKCk7Cit9CisKIFdl
YkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbiogTmV0d29ya1Byb2Nlc3M6OnN0b3JhZ2VTZXNz
aW9uKGNvbnN0IFBBTDo6U2Vzc2lvbklEJiBzZXNzaW9uSUQpIGNvbnN0CiB7CiAgICAgaWYgKHNl
c3Npb25JRCA9PSBQQUw6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCmluZGV4IDNlZjg2ZWMzMGEw
MTU4ODNkY2FjNzlhMjJiZjUyODZjNWVmYzIxZTQuLjYyMGY5ODIyNTc5NGRmOTczNTMxODhjMWQ3
N2FhMWE2OTg0ODJmMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Byb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtQcm9jZXNzLmgKQEAgLTM0Myw2ICszNDMsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCByZXNldFNl
cnZpY2VXb3JrZXJGZXRjaFRpbWVvdXRGb3JUZXN0aW5nKENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
KT4mJik7CiAgICAgU2Vjb25kcyBzZXJ2aWNlV29ya2VyRmV0Y2hUaW1lb3V0KCkgY29uc3QgeyBy
ZXR1cm4gbV9zZXJ2aWNlV29ya2VyRmV0Y2hUaW1lb3V0OyB9CiAKKyAgICB2b2lkIGNvb2tpZUFj
Y2VwdFBvbGljeU1heUhhdmVDaGFuZ2VkKCk7CisKIHByaXZhdGU6CiAgICAgdm9pZCBwbGF0Zm9y
bUluaXRpYWxpemVOZXR3b3JrUHJvY2Vzcyhjb25zdCBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVycyYpOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNl
c3Npb24+IHBsYXRmb3JtQ3JlYXRlRGVmYXVsdFN0b3JhZ2VTZXNzaW9uKCkgY29uc3Q7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nv
bm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1By
b2Nlc3NDb25uZWN0aW9uLmNwcAppbmRleCBmZDAwZDc4NjRiNWE1M2ZiNzQzMGUxNmI4NzBjYTYy
Y2IwMGFkZGE0Li5jYmJiZGI0ZmMwYTM4OWU3NmNiMDA3N2RlYTQxYjhhNWI1ZDJkZDExIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nv
bm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdv
cmtQcm9jZXNzQ29ubmVjdGlvbi5jcHAKQEAgLTIwNCw3ICsyMDQsNyBAQCB2b2lkIE5ldHdvcmtQ
cm9jZXNzQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKElQQzo6Q29ubmVjdGlv
biYsIElQQzo6UwogCiB2b2lkIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6d3JpdGVCbG9ic1Rv
VGVtcG9yYXJ5RmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mIGJsb2JVUkxzLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKFZlY3RvcjxTdHJpbmc+JiYgZmlsZVBhdGhzKT4mJiBjb21wbGV0aW9uSGFu
ZGxlcikKIHsKLSAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVOZXR3b3JrUHJvY2Vz
c0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpO
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6V3JpdGVCbG9ic1RvVGVtcG9yYXJ5RmlsZXMo
YmxvYlVSTHMpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAgY29ubmVjdGlvbigp
LnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3M6OldyaXRlQmxvYnNUb1RlbXBvcmFyeUZpbGVzKGJsb2JVUkxzKSwgV1RGTW92ZShjb21wbGV0
aW9uSGFuZGxlcikpOwogfQogCiB2b2lkIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkRmlu
aXNoUGluZ0xvYWQodWludDY0X3QgcGluZ0xvYWRJZGVudGlmaWVyLCBSZXNvdXJjZUVycm9yJiYg
ZXJyb3IsIFJlc291cmNlUmVzcG9uc2UmJiByZXNwb25zZSkKQEAgLTIyMiw2ICsyMjIsMjIgQEAg
dm9pZCBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OnNldE9uTGluZVN0YXRlKGJvb2wgaXNPbkxp
bmUpCiAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViTG9hZGVyU3RyYXRlZ3koKS5zZXRP
bkxpbmVTdGF0ZShpc09uTGluZSk7CiB9CiAKK2Jvb2wgTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9u
Ojpjb29raWVzRW5hYmxlZCgpCit7CisgICAgaWYgKG1fY2FjaGVkQ29va2llZEVuYWJsZWQpCisg
ICAgICAgIHJldHVybiAqbV9jYWNoZWRDb29raWVkRW5hYmxlZDsKKworICAgIGJvb2wgcmVzdWx0
ID0gZmFsc2U7CisgICAgY29ubmVjdGlvbigpLnNlbmRTeW5jKE1lc3NhZ2VzOjpOZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzczo6Q29va2llc0VuYWJsZWQoKSwgTWVzc2FnZXM6Ok5ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzOjpDb29raWVzRW5hYmxlZDo6UmVwbHkocmVzdWx0KSwgMCk7
CisgICAgbV9jYWNoZWRDb29raWVkRW5hYmxlZCA9IHJlc3VsdDsKKyAgICByZXR1cm4gcmVzdWx0
OworfQorCit2b2lkIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6Y29va2llQWNjZXB0UG9saWN5
TWF5SGF2ZUNoYW5nZWQoKQoreworICAgIG1fY2FjaGVkQ29va2llZEVuYWJsZWQgPSBXVEY6Om51
bGxvcHQ7Cit9CisKICNpZiBFTkFCTEUoU0hBUkVBQkxFX1JFU09VUkNFKQogdm9pZCBOZXR3b3Jr
UHJvY2Vzc0Nvbm5lY3Rpb246OmRpZENhY2hlUmVzb3VyY2UoY29uc3QgUmVzb3VyY2VSZXF1ZXN0
JiByZXF1ZXN0LCBjb25zdCBTaGFyZWFibGVSZXNvdXJjZTo6SGFuZGxlJiBoYW5kbGUpCiB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vz
c0Nvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQ
cm9jZXNzQ29ubmVjdGlvbi5oCmluZGV4IDJhNDk2YTllNGU0MzM5ZWIwNTg0YWEyMjY0MjFmNjIw
YjEwZGRjZGIuLjY5NDI5OTRmNjE3NzM4NTc5YmZiYTE0MjBjNDVkZGZjNDZiNmVkY2UgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29u
bmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQ
cm9jZXNzQ29ubmVjdGlvbi5oCkBAIC04MCw2ICs4MCw4IEBAIHB1YmxpYzoKICAgICBPcHRpb25h
bDxhdWRpdF90b2tlbl90PiBuZXR3b3JrUHJvY2Vzc0F1ZGl0VG9rZW4oKSBjb25zdCB7IHJldHVy
biBtX25ldHdvcmtQcm9jZXNzQXVkaXRUb2tlbjsgfQogI2VuZGlmCiAKKyAgICBib29sIGNvb2tp
ZXNFbmFibGVkKCk7CisKIHByaXZhdGU6CiAgICAgTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKElQ
Qzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllcik7CiAKQEAgLTkyLDYgKzk0LDcgQEAgcHJpdmF0ZToK
ICAgICB2b2lkIGRpZEZpbmlzaFBpbmdMb2FkKHVpbnQ2NF90IHBpbmdMb2FkSWRlbnRpZmllciwg
V2ViQ29yZTo6UmVzb3VyY2VFcnJvciYmLCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYpOwog
ICAgIHZvaWQgZGlkRmluaXNoUHJlY29ubmVjdGlvbih1aW50NjRfdCBwcmVjb25uZWN0aW9uSWRl
bnRpZmllciwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYmKTsKICAgICB2b2lkIHNldE9uTGluZVN0
YXRlKGJvb2wgaXNPbkxpbmUpOworICAgIHZvaWQgY29va2llQWNjZXB0UG9saWN5TWF5SGF2ZUNo
YW5nZWQoKTsKIAogICAgIHZvaWQgY2hlY2tQcm9jZXNzTG9jYWxQb3J0Rm9yQWN0aXZpdHkoY29u
c3QgV2ViQ29yZTo6TWVzc2FnZVBvcnRJZGVudGlmaWVyJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChXZWJDb3JlOjpNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlcjo6SGFzQWN0aXZpdHkpPiYmKTsK
ICAgICB2b2lkIG1lc3NhZ2VzQXZhaWxhYmxlRm9yUG9ydChjb25zdCBXZWJDb3JlOjpNZXNzYWdl
UG9ydElkZW50aWZpZXImKTsKQEAgLTExNCw2ICsxMTcsNyBAQCBwcml2YXRlOgogI2lmIEVOQUJM
RShTRVJWSUNFX1dPUktFUikKICAgICBSZWZQdHI8V2ViU1dDbGllbnRDb25uZWN0aW9uPiBtX3N3
Q29ubmVjdGlvbjsKICNlbmRpZgorICAgIE9wdGlvbmFsPGJvb2w+IG1fY2FjaGVkQ29va2llZEVu
YWJsZWQ7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdl
cy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29u
bmVjdGlvbi5tZXNzYWdlcy5pbgppbmRleCA0ZDYzNGM1N2I5Yzc5OTUwNDhhMDgwZjI3ZjNlMzJl
NTMwNTI2YWViLi44NGQwMzQyNjM4NDQ4OGE5ODdjYzQ4NjdjMjU4MDZlYWVmZWZkMzI3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nv
bm5lY3Rpb24ubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdv
cmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluCkBAIC0yOSw2ICsyOSw3IEBA
IG1lc3NhZ2VzIC0+IE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbiBMZWdhY3lSZWNlaXZlciB7CiAg
ICAgRGlkRmluaXNoUGluZ0xvYWQodWludDY0X3QgcGluZ0xvYWRJZGVudGlmaWVyLCBXZWJDb3Jl
OjpSZXNvdXJjZUVycm9yIGVycm9yLCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNl
KQogICAgIERpZEZpbmlzaFByZWNvbm5lY3Rpb24odWludDY0X3QgcHJlY29ubmVjdGlvbklkZW50
aWZpZXIsIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgZXJyb3IpCiAgICAgU2V0T25MaW5lU3RhdGUo
Ym9vbCBpc09uTGluZSk7CisgICAgQ29va2llQWNjZXB0UG9saWN5TWF5SGF2ZUNoYW5nZWQoKTsK
IAogICAgIENoZWNrUHJvY2Vzc0xvY2FsUG9ydEZvckFjdGl2aXR5KHN0cnVjdCBXZWJDb3JlOjpN
ZXNzYWdlUG9ydElkZW50aWZpZXIgcG9ydCkgLT4gKFdlYkNvcmU6Ok1lc3NhZ2VQb3J0Q2hhbm5l
bFByb3ZpZGVyOjpIYXNBY3Rpdml0eSBoYXNBY3Rpdml0eSkgQXN5bmMKICAgICBNZXNzYWdlc0F2
YWlsYWJsZUZvclBvcnQoc3RydWN0IFdlYkNvcmU6Ok1lc3NhZ2VQb3J0SWRlbnRpZmllciBwb3J0
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViQ29va2ll
SmFyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkNvb2tpZUphci5j
cHAKaW5kZXggNTg4MGJiZmM0ZDk4NmMxZTUwMTg2OWRlOTU0ZDZhNTc5MTg3M2NiNy4uMzI1ODMw
NWM3ODlkNzc1ZmUxNWMxYzA4MjhjMzZlOWUyZjJhODYwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViQ29va2llSmFyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJDb29raWVKYXIuY3BwCkBAIC0xMjksMTIgKzEyOSwx
OSBAQCB2b2lkIFdlYkNvb2tpZUphcjo6c2V0Q29va2llcyhXZWJDb3JlOjpEb2N1bWVudCYgZG9j
dW1lbnQsIGNvbnN0IFVSTCYgdXJsLCBjb25zdAogICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigp
LmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kKE1lc3Nh
Z2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6U2V0Q29va2llc0Zyb21ET00oZG9j
dW1lbnQuZmlyc3RQYXJ0eUZvckNvb2tpZXMoKSwgc2FtZVNpdGVJbmZvKGRvY3VtZW50KSwgdXJs
LCBmcmFtZUlELCBwYWdlSUQsIHNob3VsZEFza0lUUEluTmV0d29ya1Byb2Nlc3MsIGNvb2tpZVN0
cmluZyksIDApOwogfQogCi1ib29sIFdlYkNvb2tpZUphcjo6Y29va2llc0VuYWJsZWQoY29uc3Qg
V2ViQ29yZTo6RG9jdW1lbnQmIGRvY3VtZW50KSBjb25zdAorYm9vbCBXZWJDb29raWVKYXI6OmNv
b2tpZXNFbmFibGVkKGNvbnN0IERvY3VtZW50JiBkb2N1bWVudCkgY29uc3QKIHsKLSAgICBib29s
IHJlc3VsdCA9IGZhbHNlOwotICAgIGlmICghV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJl
TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmRTeW5jKE1lc3NhZ2Vz
OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Q29va2llc0VuYWJsZWQoKSwgTWVzc2Fn
ZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpDb29raWVzRW5hYmxlZDo6UmVwbHko
cmVzdWx0KSwgMCkpCisgICAgYXV0byogd2ViRnJhbWUgPSBkb2N1bWVudC5mcmFtZSgpID8gV2Vi
RnJhbWU6OmZyb21Db3JlRnJhbWUoKmRvY3VtZW50LmZyYW1lKCkpIDogbnVsbHB0cjsKKyAgICBp
ZiAoIXdlYkZyYW1lIHx8ICF3ZWJGcmFtZS0+cGFnZSgpKQogICAgICAgICByZXR1cm4gZmFsc2U7
Ci0gICAgcmV0dXJuIHJlc3VsdDsKKworI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJ
Q1MpCisgICAgU2hvdWxkQXNrSVRQIGR1bW15OworICAgIGlmIChzaG91bGRCbG9ja0Nvb2tpZXMo
d2ViRnJhbWUsIGRvY3VtZW50LmZpcnN0UGFydHlGb3JDb29raWVzKCksIGRvY3VtZW50LmNvb2tp
ZVVSTCgpLCBkdW1teSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyNlbmRpZgorCisgICAgcmV0
dXJuIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlv
bigpLmNvb2tpZXNFbmFibGVkKCk7CiB9CiAKIHN0ZDo6cGFpcjxTdHJpbmcsIFdlYkNvcmU6OlNl
Y3VyZUNvb2tpZXNBY2Nlc3NlZD4gV2ViQ29va2llSmFyOjpjb29raWVSZXF1ZXN0SGVhZGVyRmll
bGRWYWx1ZShjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlNhbWVTaXRlSW5m
byYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVy
PiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBXZWJDb3JlOjpJbmNs
dWRlU2VjdXJlQ29va2llcyBpbmNsdWRlU2VjdXJlQ29va2llcykgY29uc3QK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>388343</attachid>
            <date>2020-01-21 13:49:06 -0800</date>
            <delta_ts>2020-01-21 14:08:09 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-206450-20200121134905.patch</filename>
            <type>text/plain</type>
            <size>78500</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0ODYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmVhNDFhNTRiNzcwOGQ4
OWUwMDQ3NTFmZDdkNTRjNGU3NzMxYTYwNS4uYzUyZTdjOWFhNDAwMzlhZTJmZDk3M2NiOGMxMTE4
ZjliMzJmNThkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIwLTAxLTIxICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgRnJlcXVlbnQgTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3M6OkNvb2tpZXNFbmFibGVkIHN5bmMgSVBDIHdoZW4gYnJvd3Np
bmcgcmVkZGl0LmNvbQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjA2NDUwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgTW92ZSBIVFRQQ29va2llQWNjZXB0UG9saWN5LmggaGVhZGVyIGZyb20gV2ViS2l0IHRv
IFdlYkNvcmUgc28gdGhhdCB0aGUgSFRUUENvb2tpZUFjY2VwdFBvbGljeSBlbnVtCisgICAgICAg
IGNhbiBiZSB1c2VkIGluIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbi4gUmVwbGFjZSBOZXR3b3JrU3Rv
cmFnZVNlc3Npb246OmNvb2tpZXNFbmFibGVkKCkgd2l0aCBhIG1vcmUKKyAgICAgICAgZGV0YWls
ZWQgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpjb29raWVBY2NlcHRQb2xpY3koKSBtZXRob2QuCisK
KyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICog
bG9hZGVyL0Nvb2tpZUphci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb29raWVKYXI6OmNvb2tp
ZXNFbmFibGVkIGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL0hUVFBDb29raWVB
Y2NlcHRQb2xpY3kuaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL0hUVFBDb29r
aWVBY2NlcHRQb2xpY3kuaC4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9y
YWdlU2Vzc2lvbi5jcHA6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFn
ZVNlc3Npb24uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2NmL05ldHdvcmtTdG9yYWdl
U2Vzc2lvbkNGTmV0V2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vz
c2lvbjo6Y29va2llQWNjZXB0UG9saWN5IGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3
b3JrL2NvY29hL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkNvY29hLm1tOgorICAgICAgICAoV2ViQ29y
ZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpjb29raWVBY2NlcHRQb2xpY3kgY29uc3QpOgorICAg
ICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY3VybC9OZXR3b3JrU3RvcmFnZVNlc3Npb25DdXJsLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y29va2llQWNjZXB0
UG9saWN5IGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvTmV0d29ya1N0
b3JhZ2VTZXNzaW9uU291cC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNl
c3Npb246OmNvb2tpZUFjY2VwdFBvbGljeSBjb25zdCk6CisKIDIwMjAtMDEtMjEgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBNaW5vciBpbXByb3ZlbWVudHMgdG8g
U3RvcmFnZUFyZWFNYXAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggOGY3MTE0ZDQ2YTA3NDAwYmQyM2IxYzg2MDhlZWQ1
YzY1ZTU2NWY1ZS4uNDg4Y2YwNDA3ZWIzOGRjNWIzM2UzOWY1NTU0YjA4YjViZDBhZThhMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKQEAgLTEsMyArMSw3NyBAQAorMjAyMC0wMS0yMSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpA
YXBwbGUuY29tPgorCisgICAgICAgIEZyZXF1ZW50IE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzOjpDb29raWVzRW5hYmxlZCBzeW5jIElQQyB3aGVuIGJyb3dzaW5nIHJlZGRpdC5jb20KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNjQ1MAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZyZXF1ZW50IE5l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpDb29raWVzRW5hYmxlZCBzeW5jIElQQyB3aGVu
IGJyb3dzaW5nIHJlZGRpdC5jb20uIFRoaXMKKyAgICAgICAgaGFwcGVucyBldmVyeSB0aW1lIHRo
ZSBwYWdlIHNjcmlwdCBjYWxscyBuYXZpZ2F0b3IuY29va2llRW5hYmxlZC4gVG8gYWRkcmVzcyB0
aGUgaXNzdWUsIHdlIG5vdworICAgICAgICBzdG9yZSB0aGUgImNvb2tpZSBhY2NlcHQgcG9saWN5
IiBvbiB0aGUgV2ViQ29udGVudCBwcm9jZXNzIHNpZGUuIFRoaXMgYWxsb3dzIHVzIHRvIGtub3cK
KyAgICAgICAgc3luY2hyb25vdXNseSBvbiB0aGUgV2ViQ29udGVudCBwcm9jZXNzIGlmIGNvb2tp
ZXMgYXJlIGVuYWJsZWQgb3Igbm90IGFuZCB3aXRob3V0IGFueSBJUEMgdG8KKyAgICAgICAgdGhl
IG5ldHdvcmsgcHJvY2Vzcy4gVG8gYWNoaWV2ZSB0aGlzLCBJIGFkZGVkIGEgbmV3IGNvb2tpZUFj
Y2VwdFBvbGljeSBtZW1iZXIgdG8KKyAgICAgICAgTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uSW5m
byBzbyB0aGF0IHRoZSBXZWJDb250ZW50IHByb2Nlc3MgaXMgYXdhcmUgb2YgdGhlIGluaXRpYWwg
cG9saWN5IHdoZW4KKyAgICAgICAgaXQgY29ubmVjdHMgdG8gdGhlIG5ldHdvcmsgcHJvY2Vzcy4g
VGhlIHBvbGljeSBvbiB0aGUgV2ViQ29udGVudCBwcm9jZXNzIHNpZGUgaXMgdGhlbiBrZXB0IHVw
CisgICAgICAgIHRvIGRhdGUgdmlhIElQQ3MgZnJvbSB0aGUgbmV0d29yayBwcm9jZXNzIHRvIHRo
ZSBXZWJDb250ZW50IHByb2Nlc3NlcyB3aGVuZXZlciB0aGUgY29va2llCisgICAgICAgIGFjY2Vw
dCBwb2xpY3kgY2hhbmdlcy4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0Nvb2tpZXMvV2Vi
Q29va2llTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNvb2tpZU1hbmFnZXI6OnNl
dEhUVFBDb29raWVBY2NlcHRQb2xpY3kpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb29raWVNYW5h
Z2VyOjpnZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9D
b29raWVzL1dlYkNvb2tpZU1hbmFnZXIubWVzc2FnZXMuaW46CisgICAgICAgICogTmV0d29ya1By
b2Nlc3MvQ29va2llcy9jdXJsL1dlYkNvb2tpZU1hbmFnZXJDdXJsLmNwcDoKKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy9Db29raWVzL21hYy9XZWJDb29raWVNYW5hZ2VyTWFjLm1tOgorICAgICAg
ICAqIE5ldHdvcmtQcm9jZXNzL0Nvb2tpZXMvc291cC9XZWJDb29raWVNYW5hZ2VyU291cC5jcHA6
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Y29v
a2llQWNjZXB0UG9saWN5Q2hhbmdlZCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBOZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9j
ZXNzOjpjcmVhdGVOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcyk6CisgICAgICAgIChXZWJL
aXQ6Ok5ldHdvcmtQcm9jZXNzOjpjb29raWVBY2NlcHRQb2xpY3lDaGFuZ2VkKToKKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oOgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNz
L05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmg6CisgICAgICAgICogU2hhcmVkL1dl
YlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQ
SUhUVFBDb29raWVTdG9yZS5jcHA6CisgICAgICAgIChBUEk6OkhUVFBDb29raWVTdG9yZTo6c2V0
SFRUUENvb2tpZUFjY2VwdFBvbGljeSk6CisgICAgICAgIChBUEk6OkhUVFBDb29raWVTdG9yZTo6
c2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeUluRGVmYXVsdFVJUHJvY2Vzc0Nvb2tpZVN0b3JlKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQSUhUVFBDb29raWVTdG9yZS5oOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaDoKKyAgICAgICAgKFdlYktpdDo6dG9IVFRQQ29v
a2llQWNjZXB0UG9saWN5KToKKyAgICAgICAgKFdlYktpdDo6dG9BUEkpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvQ29jb2EvQVBJSFRUUENvb2tpZVN0b3JlQ29jb2EubW06CisgICAgICAgIChB
UEk6OnRvTlNIVFRQQ29va2llQWNjZXB0UG9saWN5KToKKyAgICAgICAgKEFQSTo6SFRUUENvb2tp
ZVN0b3JlOjpzZXRIVFRQQ29va2llQWNjZXB0UG9saWN5SW5EZWZhdWx0VUlQcm9jZXNzQ29va2ll
U3RvcmUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tIVFRQQ29va2llU3RvcmUu
bW06CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1tOgorICAg
ICAgICAodG9IVFRQQ29va2llQWNjZXB0UG9saWN5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvTmV0
d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1By
b2Nlc3NQcm94eTo6b3Blbk5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbik6CisgICAgICAgICogVUlQ
cm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQ
cm9jZXNzUG9vbC5oOgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
OgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24u
Y3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246Ok5ldHdvcmtQ
cm9jZXNzQ29ubmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzQ29ubmVj
dGlvbjo6d3JpdGVCbG9ic1RvVGVtcG9yYXJ5RmlsZXMpOgorICAgICAgICAoV2ViS2l0OjpOZXR3
b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OmNvb2tpZXNFbmFibGVkKToKKyAgICAgICAgKFdlYktpdDo6
TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpjb29raWVBY2NlcHRQb2xpY3lDaGFuZ2VkKToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmg6Cisg
ICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6Y3JlYXRlKToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2Vz
LmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rp
b25JbmZvLmg6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbkluZm86
OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzQ29ubmVjdGlv
bkluZm86OmRlY29kZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkNvb2tpZUph
ci5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNvb2tpZUphcjo6Y29va2llc0VuYWJsZWQgY29u
c3QpOgorICAgICAgICAtIFJldHVybiBmYWxzZSBlYXJseSBpZiB0aGUgZG9jdW1lbnQgaGFzIG5v
IGZyYW1lIC8gcGFnZSAoY29va2llLWF2ZXJzZSBhcyBwZXIgc3BlYykKKyAgICAgICAgLSBSZXR1
cm4gZmFsc2UgZWFybHkgaWYgSVRQIGlzIGVuYWJsZWQgYW5kIGl0IGlzIGEgdGhpcmQtcGFydHkg
aWZyYW1lIHdpdGhvdXQgc3RvcmFnZQorICAgICAgICAgIGFjY2Vzcy4gVGhpcyBieXBhc3NlcyB0
aGUgc3luYyBJUEMgY2FsbCBjb21wbGV0ZWx5IGZvciBzdWNoIGlmcmFtZXMuCisKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNz
OjplbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24pOgorCiAyMDIwLTAxLTIxICBDaHJpcyBE
dW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgTWlub3IgaW1wcm92ZW1lbnRzIHRv
IFN0b3JhZ2VBcmVhTWFwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKaW5kZXggZDViM2NlYWVkZWNkNjMwNjgzYThkODBlOTgyMmIzZGY0MWQ3
NjIwZS4uZjA2ZTlkODNjOWE0M2M4ZDcyYjNlOTE2MTBhMzRkNjhhMDUxNTQ1MSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTI1
Miw2ICsxMjUyLDcgQEAKIAkJNDZCOTUxOUEyMDdENjM1NDAwQTdEMkREIC8qIFJlbW90ZUZyYW1l
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NkI5NTE5
MjIwN0Q2MzJFMDBBN0QyREQgLyogUmVtb3RlRnJhbWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0NkI5NUJGNTIyMzFDRkQ2MDA1M0E1MDQgLyog
RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250cm9sbGVyLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NkI5NUJGNDIyMzFDRkI4MDA1M0E1
MDQgLyogRGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250cm9sbGVyLmggKi87IH07
CiAJCTQ2QkNCQkMyMjA4NTAwOEYwMDcxMDYzOCAvKiBKU1JlbW90ZURPTVdpbmRvd0Jhc2UuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2QkNCQkMwMjA4
NTAwN0YwMDcxMDYzOCAvKiBKU1JlbW90ZURPTVdpbmRvd0Jhc2UuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk0NkMwOTYyMTIzRDc4REQ2MDA2NTdD
MDkgLyogSFRUUENvb2tpZUFjY2VwdFBvbGljeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNDZDMDk2MjAyM0Q3OERENjAwNjU3QzA5IC8qIEhUVFBDb29r
aWVBY2NlcHRQb2xpY3kuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk0NkMzNzY2MjIwODUxNzdEMDBDNzM4MjkgLyogSlNSZW1vdGVET01XaW5kb3cu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2QzM3NjYx
MjA4NTE3NkQwMEM3MzgyOSAvKiBKU1JlbW90ZURPTVdpbmRvdy5oICovOyB9OwogCQk0NkM2OTZD
QjFFNzIwNUY3MDA1OTc5MzcgLyogQ1BVTW9uaXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDZDNjk2QzkxRTcyMDVFNDAwNTk3OTM3IC8qIENQVU1v
bml0b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQk0NkM2OTZDQzFFNzIwNUZDMDA1OTc5MzcgLyogQ1BVTW9uaXRvci5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NkM2OTZDQTFFNzIwNUU0MDA1OTc5
MzcgLyogQ1BVTW9uaXRvci5jcHAgKi87IH07CkBAIC03NzgzLDYgKzc3ODQsNyBAQAogCQk0NkJD
QkJDMDIwODUwMDdGMDA3MTA2MzggLyogSlNSZW1vdGVET01XaW5kb3dCYXNlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTUmVtb3RlRE9NV2luZG93QmFzZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk0NkJDQkJDMTIwODUwMDgwMDA3MTA2MzggLyogSlNSZW1v
dGVET01XaW5kb3dCYXNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEpTUmVtb3RlRE9NV2luZG93QmFzZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTQ2QkNCQkMzMjA4NTAwQTcwMDcxMDYzOCAvKiBSZW1vdGVET01XaW5kb3cuaWRsICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgcGF0aCA9IFJlbW90ZURPTVdpbmRvdy5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTQ2QzA5NjIwMjNENzhERDYwMDY1N0MwOSAvKiBIVFRQQ29va2llQWNjZXB0UG9s
aWN5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhUVFBDb29raWVBY2NlcHRQb2xpY3kuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDZDMzc2NUYyMDg1MTc2QzAwQzczODI5IC8qIEpTUmVtb3Rl
RE9NV2luZG93LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTUmVt
b3RlRE9NV2luZG93LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDZDMzc2NjEy
MDg1MTc2RDAwQzczODI5IC8qIEpTUmVtb3RlRE9NV2luZG93LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEpTUmVtb3RlRE9NV2luZG93Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTQ2QzY5NkM5MUU3MjA1RTQwMDU5NzkzNyAvKiBDUFVNb25pdG9yLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENQVU1vbml0b3IuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTIwNDU1LDYgKzIwNDU3LDcgQEAKIAkJCQk1MTRDNzY1QjBDRTkyM0Ex
MDA3RUYzQ0QgLyogRm9ybURhdGEuaCAqLywKIAkJCQkwODVCOTJCODBFRkRFNzNEMDBFNjEyM0Mg
LyogRm9ybURhdGFCdWlsZGVyLmNwcCAqLywKIAkJCQkwODVCOTJCOTBFRkRFNzNEMDBFNjEyM0Mg
LyogRm9ybURhdGFCdWlsZGVyLmggKi8sCisJCQkJNDZDMDk2MjAyM0Q3OERENjAwNjU3QzA5IC8q
IEhUVFBDb29raWVBY2NlcHRQb2xpY3kuaCAqLywKIAkJCQkwQjhDNTZEMzBGMjg2MjdGMDAwNTAy
RTEgLyogSFRUUEhlYWRlck1hcC5jcHAgKi8sCiAJCQkJNTE0Qzc2NUMwQ0U5MjNBMTAwN0VGM0NE
IC8qIEhUVFBIZWFkZXJNYXAuaCAqLywKIAkJCQkxQUM5MDBCRjE5NDNBRjNEMDA4NjI1QjUgLyog
SFRUUEhlYWRlck5hbWVzLmluICovLApAQCAtMzAyMzIsNiArMzAyMzUsNyBAQAogCQkJCUE4RUE3
Q0IwMEExOTJCOUMwMEE4RUY1RiAvKiBIVE1MUHJlRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJOTc3QjM4NzMxMjI4ODNFOTAwQjgxRkY4IC8qIEhUTUxQcmVsb2FkU2Nhbm5lci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQTQzQkY1OTkxMTQ5MjkwQTAwQzY0M0NBIC8qIEhUTUxQcm9ncmVzc0Vs
ZW1lbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTQ2QzA5NjIxMjNENzhERDYwMDY1N0MwOSAvKiBI
VFRQQ29va2llQWNjZXB0UG9saWN5LmggaW4gSGVhZGVycyAqLywKIAkJCQlBOENGRjdBMzBBMTU2
OTc4MDAwQTQyMzQgLyogSFRNTFF1b3RlRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThE
MjIzRkUxNkI1MkU0RTAwMTU3Mjg4IC8qIEhUTUxSZXNvdXJjZVByZWxvYWRlci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQTg3MURDMjUwQTE1MjA1NzAwQjEyQTY4IC8qIEhUTUxTY3JpcHRFbGVtZW50
LmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Db29r
aWVKYXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nvb2tpZUphci5jcHAKaW5kZXggMjM5
MDY2OGRmODMxMTNmZGExNzMwMzgwYzI0OTEyMDZiZDM4OTA1Yy4uYTA3YTMwMmE0MjM5MTQxYmY5
NDc1ZGY0ZjVlYzVkYzY5ODUwZDMyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0Nvb2tpZUphci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nvb2tpZUphci5jcHAK
QEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lTG9h
ZGVyLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJDbGllbnQuaCIKKyNpbmNsdWRlICJIVFRQQ29v
a2llQWNjZXB0UG9saWN5LmgiCiAjaW5jbHVkZSAiTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmgiCiAj
aW5jbHVkZSAiTmV0d29ya2luZ0NvbnRleHQuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmF0ZWdp
ZXMuaCIKQEAgLTEyMiw3ICsxMjMsNyBAQCB2b2lkIENvb2tpZUphcjo6c2V0Q29va2llcyhEb2N1
bWVudCYgZG9jdW1lbnQsIGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIGNvbwogYm9vbCBD
b29raWVKYXI6OmNvb2tpZXNFbmFibGVkKGNvbnN0IERvY3VtZW50JikgY29uc3QKIHsKICAgICBp
ZiAoYXV0byogc2Vzc2lvbiA9IG1fc3RvcmFnZVNlc3Npb25Qcm92aWRlci0+c3RvcmFnZVNlc3Np
b24oKSkKLSAgICAgICAgcmV0dXJuIHNlc3Npb24tPmNvb2tpZXNFbmFibGVkKCk7CisgICAgICAg
IHJldHVybiBzZXNzaW9uLT5jb29raWVBY2NlcHRQb2xpY3koKSAhPSBIVFRQQ29va2llQWNjZXB0
UG9saWN5OjpOZXZlcjsKIAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIHJldHVybiBm
YWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvSFRUUENv
b2tpZUFjY2VwdFBvbGljeS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9IVFRQ
Q29va2llQWNjZXB0UG9saWN5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGU2M2ZiMzVkNDBmN2IyYmNjYTU5Zjg2
Y2FhYWZiZjI2NjVjMmI2NAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvSFRUUENvb2tpZUFjY2VwdFBvbGljeS5oCkBAIC0wLDAgKzEsNTEgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTEtMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
KyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEg
b25jZQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2VudW0gY2xhc3MgSFRUUENvb2tpZUFjY2Vw
dFBvbGljeSA6IHVpbnQ4X3QgeworICAgIEFsd2F5c0FjY2VwdCA9IDAsCisgICAgTmV2ZXIgPSAx
LAorICAgIE9ubHlGcm9tTWFpbkRvY3VtZW50RG9tYWluID0gMiwKKyAgICBFeGNsdXNpdmVseUZy
b21NYWluRG9jdW1lbnREb21haW4gPSAzLAorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisK
K25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6
OkhUVFBDb29raWVBY2NlcHRQb2xpY3k+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVz
PAorICAgICAgICBXZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0UG9saWN5LAorICAgICAgICBXZWJD
b3JlOjpIVFRQQ29va2llQWNjZXB0UG9saWN5OjpBbHdheXNBY2NlcHQsCisgICAgICAgIFdlYkNv
cmU6OkhUVFBDb29raWVBY2NlcHRQb2xpY3k6Ok5ldmVyLAorICAgICAgICBXZWJDb3JlOjpIVFRQ
Q29va2llQWNjZXB0UG9saWN5OjpPbmx5RnJvbU1haW5Eb2N1bWVudERvbWFpbiwKKyAgICAgICAg
V2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBvbGljeTo6RXhjbHVzaXZlbHlGcm9tTWFpbkRvY3Vt
ZW50RG9tYWluCisgICAgPjsKK307CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmNwcAppbmRleCA1MTVkYmYx
OTlmNzE1Y2IwZDQzZjM0ZmQ1M2MzMjM2OTE4MWM5M2U1Li4yOTk0Mjc1NjI1OGU5MjQzYzNiMGEx
MDBiMWEzZjZmNzJhODQ3NThjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb24uY3BwCkBAIC0yNiw2ICsyNiw3IEBA
CiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmgi
CiAKKyNpbmNsdWRlICJIVFRQQ29va2llQWNjZXB0UG9saWN5LmgiCiAjaW5jbHVkZSAiUnVudGlt
ZUFwcGxpY2F0aW9uQ2hlY2tzLmgiCiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAj
aW5jbHVkZSA8d3RmL1Byb2Nlc3NQcml2aWxlZ2UuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oCmluZGV4IDM3MjBh
YzVlODViMDk4ZTQ4MzVjYjY3N2MwNTgxZTBiMzA1ZGQ1NWMuLjY1MDZmMTA3NzA2NWE0ZDIxZjc5
ODAxOTJmM2Q3NTA3ZWJjMjNhOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaApAQCAtNzIsNiArNzIsNyBAQCBz
dHJ1Y3QgQ29va2llOwogc3RydWN0IENvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFByb3h5Owogc3Ry
dWN0IFNhbWVTaXRlSW5mbzsKIAorZW51bSBjbGFzcyBIVFRQQ29va2llQWNjZXB0UG9saWN5IDog
dWludDhfdDsKIGVudW0gY2xhc3MgSW5jbHVkZVNlY3VyZUNvb2tpZXMgOiBib29sOwogZW51bSBj
bGFzcyBJbmNsdWRlSHR0cE9ubHlDb29raWVzIDogYm9vbDsKIGVudW0gY2xhc3MgVGhpcmRQYXJ0
eUNvb2tpZUJsb2NraW5nTW9kZSA6IHVpbnQ4X3QgeyBBbGwsIEFsbE9uU2l0ZXNXaXRob3V0VXNl
ckludGVyYWN0aW9uLCBPbmx5QWNjb3JkaW5nVG9QZXJEb21haW5Qb2xpY3kgfTsKQEAgLTEyNSw3
ICsxMjYsNyBAQCBwdWJsaWM6CiAgICAgTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQoKSBjb25z
dDsKICNlbmRpZgogCi0gICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBjb29raWVzRW5hYmxlZCgpIGNv
bnN0OworICAgIFdFQkNPUkVfRVhQT1JUIEhUVFBDb29raWVBY2NlcHRQb2xpY3kgY29va2llQWNj
ZXB0UG9saWN5KCkgY29uc3Q7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRDb29raWUoY29u
c3QgQ29va2llJik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRDb29raWVzKGNvbnN0IFZl
Y3RvcjxDb29raWU+JiwgY29uc3QgVVJMJiwgY29uc3QgVVJMJiBtYWluRG9jdW1lbnRVUkwpOwog
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0Q29va2llc0Zyb21ET00oY29uc3QgVVJMJiBmaXJz
dFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmLCBPcHRpb25hbDxGcmFtZUlk
ZW50aWZpZXI+LCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4sIFNob3VsZEFza0lUUCwgY29uc3Qg
U3RyaW5nJikgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL2NmL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkNGTmV0V2luLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvY2YvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ0ZOZXRXaW4uY3BwCmlu
ZGV4IDUyZGFjYzY4NmQ4M2JhMjk4MTMwNzkwNTlhYzg1NTFmYTYxZTkzYmMuLjA2YTUzYjJmYTE4
MzVhOGJkMWQ5ZjU0MWM0MDBmZmE2MmZmMGNiOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvY2YvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ0ZOZXRXaW4uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvTmV0d29ya1N0b3JhZ2VTZXNz
aW9uQ0ZOZXRXaW4uY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJDb29raWUuaCIK
ICNpbmNsdWRlICJDb29raWVSZXF1ZXN0SGVhZGVyRmllbGRQcm94eS5oIgorI2luY2x1ZGUgIkhU
VFBDb29raWVBY2NlcHRQb2xpY3kuaCIKICNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgogI2lu
Y2x1ZGUgPENGTmV0d29yay9DRkhUVFBDb29raWVzUHJpdi5oPgogI2luY2x1ZGUgPENvcmVGb3Vu
ZGF0aW9uL0NvcmVGb3VuZGF0aW9uLmg+CkBAIC0yNTgsMTAgKzI1OSwxNyBAQCBzdGQ6OnBhaXI8
U3RyaW5nLCBib29sPiBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmNvb2tpZVJlcXVlc3RIZWFkZXJG
aWVsZFZhbHVlKGNvbgogICAgIHJldHVybiBjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZSho
ZWFkZXJGaWVsZFByb3h5LmZpcnN0UGFydHksIGhlYWRlckZpZWxkUHJveHkuc2FtZVNpdGVJbmZv
LCBoZWFkZXJGaWVsZFByb3h5LnVybCwgaGVhZGVyRmllbGRQcm94eS5mcmFtZUlELCBoZWFkZXJG
aWVsZFByb3h5LnBhZ2VJRCwgaGVhZGVyRmllbGRQcm94eS5pbmNsdWRlU2VjdXJlQ29va2llcywg
U2hvdWxkQXNrSVRQOjpZZXMpOwogfQogCi1ib29sIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y29v
a2llc0VuYWJsZWQoKSBjb25zdAorSFRUUENvb2tpZUFjY2VwdFBvbGljeSBOZXR3b3JrU3RvcmFn
ZVNlc3Npb246OmNvb2tpZUFjY2VwdFBvbGljeSgpIGNvbnN0CiB7CiAgICAgQ0ZIVFRQQ29va2ll
U3RvcmFnZUFjY2VwdFBvbGljeSBwb2xpY3kgPSBDRkhUVFBDb29raWVTdG9yYWdlR2V0Q29va2ll
QWNjZXB0UG9saWN5KGNvb2tpZVN0b3JhZ2UoKS5nZXQoKSk7Ci0gICAgcmV0dXJuIHBvbGljeSA9
PSBDRkhUVFBDb29raWVTdG9yYWdlQWNjZXB0UG9saWN5T25seUZyb21NYWluRG9jdW1lbnREb21h
aW4gfHwgcG9saWN5ID09IENGSFRUUENvb2tpZVN0b3JhZ2VBY2NlcHRQb2xpY3lFeGNsdXNpdmVs
eUZyb21NYWluRG9jdW1lbnREb21haW4gfHwgcG9saWN5ID09IENGSFRUUENvb2tpZVN0b3JhZ2VB
Y2NlcHRQb2xpY3lBbHdheXM7CisgICAgaWYgKHBvbGljeSA9PSBDRkhUVFBDb29raWVTdG9yYWdl
QWNjZXB0UG9saWN5QWx3YXlzKQorICAgICAgICByZXR1cm4gSFRUUENvb2tpZUFjY2VwdFBvbGlj
eTo6QWx3YXlzQWNjZXB0OworICAgIGlmIChwb2xpY3kgPT0gQ0ZIVFRQQ29va2llU3RvcmFnZUFj
Y2VwdFBvbGljeU9ubHlGcm9tTWFpbkRvY3VtZW50RG9tYWluKQorICAgICAgICByZXR1cm4gSFRU
UENvb2tpZUFjY2VwdFBvbGljeTo6T25seUZyb21NYWluRG9jdW1lbnREb21haW47CisgICAgaWYg
KHBvbGljeSA9PSBDRkhUVFBDb29raWVTdG9yYWdlQWNjZXB0UG9saWN5RXhjbHVzaXZlbHlGcm9t
TWFpbkRvY3VtZW50RG9tYWluKQorICAgICAgICByZXR1cm4gSFRUUENvb2tpZUFjY2VwdFBvbGlj
eTo6RXhjbHVzaXZlbHlGcm9tTWFpbkRvY3VtZW50RG9tYWluOworCisgICAgcmV0dXJuIEhUVFBD
b29raWVBY2NlcHRQb2xpY3k6Ok5ldmVyOwogfQogCiBib29sIE5ldHdvcmtTdG9yYWdlU2Vzc2lv
bjo6Z2V0UmF3Q29va2llcyhjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5m
byYsIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIE9w
dGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIFNob3VsZEFza0lUUCwgVmVjdG9yPENvb2tp
ZT4mIHJhd0Nvb2tpZXMpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL2NvY29hL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkNvY29hLm1tIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2NvYS9OZXR3b3JrU3RvcmFnZVNlc3Npb25Db2NvYS5t
bQppbmRleCA5ZjY3NjVlYTY3ZDEwY2VmM2I2MmVkNWNlMDBiOTg4ODE5NGYyY2QxLi5mZDFhZTU4
ZDc1MzEwZjc0NjY1N2ZiY2Q5MWQ2ZWI3NmQ3NjU3ZDA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkNvY29hLm1t
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2EvTmV0d29ya1N0b3Jh
Z2VTZXNzaW9uQ29jb2EubW0KQEAgLTI5LDYgKzI5LDcgQEAKICNpbXBvcnQgIkNvb2tpZS5oIgog
I2ltcG9ydCAiQ29va2llUmVxdWVzdEhlYWRlckZpZWxkUHJveHkuaCIKICNpbXBvcnQgIkNvb2tp
ZVN0b3JhZ2VPYnNlcnZlci5oIgorI2ltcG9ydCAiSFRUUENvb2tpZUFjY2VwdFBvbGljeS5oIgog
I2ltcG9ydCAiU2FtZVNpdGVJbmZvLmgiCiAjaW1wb3J0IDxwYWwvc3BpL2NmL0NGTmV0d29ya1NQ
SS5oPgogI2ltcG9ydCA8d3RmL0Jsb2NrT2JqQ0V4Y2VwdGlvbnMuaD4KQEAgLTQ0OCwxNSArNDQ5
LDE5IEBAIHN0YXRpYyBOU0hUVFBDb29raWVBY2NlcHRQb2xpY3kgaHR0cENvb2tpZUFjY2VwdFBv
bGljeShDRkhUVFBDb29raWVTdG9yYWdlUmVmIGNvCiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PE5T
SFRUUENvb2tpZUFjY2VwdFBvbGljeT4oQ0ZIVFRQQ29va2llU3RvcmFnZUdldENvb2tpZUFjY2Vw
dFBvbGljeShjb29raWVTdG9yYWdlKSk7CiB9CiAKLWJvb2wgTmV0d29ya1N0b3JhZ2VTZXNzaW9u
Ojpjb29raWVzRW5hYmxlZCgpIGNvbnN0CitIVFRQQ29va2llQWNjZXB0UG9saWN5IE5ldHdvcmtT
dG9yYWdlU2Vzc2lvbjo6Y29va2llQWNjZXB0UG9saWN5KCkgY29uc3QKIHsKICAgICBCRUdJTl9C
TE9DS19PQkpDX0VYQ0VQVElPTlM7Ci0KICAgICBOU0hUVFBDb29raWVBY2NlcHRQb2xpY3kgY29v
a2llQWNjZXB0UG9saWN5ID0gaHR0cENvb2tpZUFjY2VwdFBvbGljeShjb29raWVTdG9yYWdlKCku
Z2V0KCkpOwotICAgIHJldHVybiBjb29raWVBY2NlcHRQb2xpY3kgPT0gTlNIVFRQQ29va2llQWNj
ZXB0UG9saWN5QWx3YXlzIHx8IGNvb2tpZUFjY2VwdFBvbGljeSA9PSBOU0hUVFBDb29raWVBY2Nl
cHRQb2xpY3lPbmx5RnJvbU1haW5Eb2N1bWVudERvbWFpbiB8fCBjb29raWVBY2NlcHRQb2xpY3kg
PT0gTlNIVFRQQ29va2llQWNjZXB0UG9saWN5RXhjbHVzaXZlbHlGcm9tTWFpbkRvY3VtZW50RG9t
YWluOwotCisgICAgaWYgKGNvb2tpZUFjY2VwdFBvbGljeSA9PSBOU0hUVFBDb29raWVBY2NlcHRQ
b2xpY3lBbHdheXMpCisgICAgICAgIHJldHVybiBIVFRQQ29va2llQWNjZXB0UG9saWN5OjpBbHdh
eXNBY2NlcHQ7CisgICAgaWYgKGNvb2tpZUFjY2VwdFBvbGljeSA9PSBOU0hUVFBDb29raWVBY2Nl
cHRQb2xpY3lPbmx5RnJvbU1haW5Eb2N1bWVudERvbWFpbikKKyAgICAgICAgcmV0dXJuIEhUVFBD
b29raWVBY2NlcHRQb2xpY3k6Ok9ubHlGcm9tTWFpbkRvY3VtZW50RG9tYWluOworICAgIGlmIChj
b29raWVBY2NlcHRQb2xpY3kgPT0gTlNIVFRQQ29va2llQWNjZXB0UG9saWN5RXhjbHVzaXZlbHlG
cm9tTWFpbkRvY3VtZW50RG9tYWluKQorICAgICAgICByZXR1cm4gSFRUUENvb2tpZUFjY2VwdFBv
bGljeTo6RXhjbHVzaXZlbHlGcm9tTWFpbkRvY3VtZW50RG9tYWluOwogICAgIEVORF9CTE9DS19P
QkpDX0VYQ0VQVElPTlM7Ci0gICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIEhUVFBDb29r
aWVBY2NlcHRQb2xpY3k6Ok5ldmVyOwogfQogCiBib29sIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6
Z2V0UmF3Q29va2llcyhjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYg
c2FtZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBm
cmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBTaG91bGRBc2tJVFAgc2hv
dWxkQXNrSVRQLCBWZWN0b3I8Q29va2llPiYgcmF3Q29va2llcykgY29uc3QKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9OZXR3b3JrU3RvcmFnZVNlc3Np
b25DdXJsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9OZXR3b3Jr
U3RvcmFnZVNlc3Npb25DdXJsLmNwcAppbmRleCBkNzA0NTA0ZTY0OTkxZDc0ZjMxNzBkODM3OGRj
MmRlMjY0ODMwMmFiLi5iZjljNjdhMWVjZTZlYjFmMGE2NDIwMDdmMGUxZDk2ZWQ3ZDVkZjMwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvTmV0d29ya1N0
b3JhZ2VTZXNzaW9uQ3VybC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9jdXJsL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkN1cmwuY3BwCkBAIC04NSw5ICs4NSwyMSBAQCB2
b2lkIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6c2V0Q29va2llc0Zyb21ET00oY29uc3QgVVJMJiBm
aXJzdFBhcnR5LCBjb25zdCBTYW1lUwogICAgIGNvb2tpZVN0b3JhZ2UoKS5zZXRDb29raWVzRnJv
bURPTSgqdGhpcywgZmlyc3RQYXJ0eSwgc2FtZVNpdGVJbmZvLCB1cmwsIGZyYW1lSUQsIHBhZ2VJ
RCwgdmFsdWUpOwogfQogCi1ib29sIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y29va2llc0VuYWJs
ZWQoKSBjb25zdAotewotICAgIHJldHVybiBjb29raWVTdG9yYWdlKCkuY29va2llc0VuYWJsZWQo
KnRoaXMpOworSFRUUENvb2tpZUFjY2VwdFBvbGljeSBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmNv
b2tpZUFjY2VwdFBvbGljeSgpIGNvbnN0Cit7CisgICAgc3dpdGNoIChjb29raWVTdG9yYWdlKCku
Y29va2llQWNjZXB0UG9saWN5KCp0aGlzKSkgeworICAgIGNhc2UgQ29va2llQWNjZXB0UG9saWN5
OjpBbHdheXM6CisgICAgICAgIHJldHVybiBIVFRQQ29va2llQWNjZXB0UG9saWN5OjpBbHdheXNB
Y2NlcHQ7CisgICAgY2FzZSBDb29raWVBY2NlcHRQb2xpY3k6Ok5ldmVyOgorICAgICAgICByZXR1
cm4gSFRUUENvb2tpZUFjY2VwdFBvbGljeTo6TmV2ZXI7CisgICAgY2FzZSBDb29raWVBY2NlcHRQ
b2xpY3k6Ok9ubHlGcm9tTWFpbkRvY3VtZW50RG9tYWluOgorICAgICAgICByZXR1cm4gSFRUUENv
b2tpZUFjY2VwdFBvbGljeTo6T25seUZyb21NYWluRG9jdW1lbnREb21haW47CisgICAgY2FzZSBD
b29raWVBY2NlcHRQb2xpY3k6OkV4Y2x1c2l2ZWx5RnJvbU1haW5Eb2N1bWVudERvbWFpbjoKKyAg
ICAgICAgcmV0dXJuIEhUVFBDb29raWVBY2NlcHRQb2xpY3k6OkV4Y2x1c2l2ZWx5RnJvbU1haW5E
b2N1bWVudERvbWFpbjsKKyAgICB9CisKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICBy
ZXR1cm4gSFRUUENvb2tpZUFjY2VwdFBvbGljeTo6T25seUZyb21NYWluRG9jdW1lbnREb21haW47
CiB9CiAKIHN0ZDo6cGFpcjxTdHJpbmcsIGJvb2w+IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y29v
a2llc0ZvckRPTShjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYgc2Ft
ZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFt
ZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBJbmNsdWRlU2VjdXJlQ29va2ll
cyBpbmNsdWRlU2VjdXJlQ29va2llcywgU2hvdWxkQXNrSVRQKSBjb25zdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL05ldHdvcmtTdG9yYWdlU2Vzc2lv
blNvdXAuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL05ldHdvcmtT
dG9yYWdlU2Vzc2lvblNvdXAuY3BwCmluZGV4IGUwNTUwNzZjN2UxZGJjMjQwZWYyMzliN2RlMjA1
YzNhODU5NDVmOTIuLjZkZGI1OTdhYWFjYWI5YzMzYWQ2NWMwZWZkODdjYmU1NzgxNDE5MmUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9OZXR3b3JrU3Rv
cmFnZVNlc3Npb25Tb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L3NvdXAvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU291cC5jcHAKQEAgLTM0LDYgKzM0LDcgQEAKICNp
bmNsdWRlICJDb29raWUuaCIKICNpbmNsdWRlICJDb29raWVSZXF1ZXN0SGVhZGVyRmllbGRQcm94
eS5oIgogI2luY2x1ZGUgIkdVbmlxdWVQdHJTb3VwLmgiCisjaW5jbHVkZSAiSFRUUENvb2tpZUFj
Y2VwdFBvbGljeS5oIgogI2luY2x1ZGUgIlJlc291cmNlSGFuZGxlLmgiCiAjaW5jbHVkZSAiU291
cE5ldHdvcmtTZXNzaW9uLmgiCiAjaW5jbHVkZSAiVVJMU291cC5oIgpAQCAtMjQxLDEwICsyNDIs
MTQgQEAgdm9pZCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OnNhdmVDcmVkZW50aWFsVG9QZXJzaXN0
ZW50U3RvcmFnZShjb25zdCBQcm90ZWN0aW9uU3AKICNlbmRpZgogfQogCi1ib29sIE5ldHdvcmtT
dG9yYWdlU2Vzc2lvbjo6Y29va2llc0VuYWJsZWQoKSBjb25zdAorSFRUUENvb2tpZUFjY2VwdFBv
bGljeSBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmNvb2tpZUFjY2VwdFBvbGljeSgpIGNvbnN0CiB7
CiAgICAgYXV0byBwb2xpY3kgPSBzb3VwX2Nvb2tpZV9qYXJfZ2V0X2FjY2VwdF9wb2xpY3koY29v
a2llU3RvcmFnZSgpKTsKLSAgICByZXR1cm4gcG9saWN5ID09IFNPVVBfQ09PS0lFX0pBUl9BQ0NF
UFRfQUxXQVlTIHx8IHBvbGljeSA9PSBTT1VQX0NPT0tJRV9KQVJfQUNDRVBUX05PX1RISVJEX1BB
UlRZOworICAgIGlmIChwb2xpY3kgPT0gU09VUF9DT09LSUVfSkFSX0FDQ0VQVF9BTFdBWVMpCisg
ICAgICAgIHJldHVybiBIVFRQQ29va2llQWNjZXB0UG9saWN5OjpBbHdheXNBY2NlcHQ7CisgICAg
aWYgKHBvbGljeSA9PSBTT1VQX0NPT0tJRV9KQVJfQUNDRVBUX05PX1RISVJEX1BBUlRZKQorICAg
ICAgICByZXR1cm4gSFRUUENvb2tpZUFjY2VwdFBvbGljeTo6T25seUZyb21NYWluRG9jdW1lbnRE
b21haW47CisgICAgcmV0dXJuIEhUVFBDb29raWVBY2NlcHRQb2xpY3k6Ok5ldmVyOwogfQogCiBz
dGF0aWMgaW5saW5lIGJvb2wgaHR0cE9ubHlDb29raWVFeGlzdHMoY29uc3QgR1NMaXN0KiBjb29r
aWVzLCBjb25zdCBnY2hhciogbmFtZSwgY29uc3QgZ2NoYXIqIHBhdGgpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlci5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlci5j
cHAKaW5kZXggNWQ2ZjA1MjIxNDhlYWY2Y2EwYTkyZTk2MmU0ZTgyOGU3ZGE3ZjcyYi4uNmUyOGFk
ZmZlZmNlYzdmMGUzZTVkYTYxOWYxMzI5N2ZiZThkMzYzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ29va2llcy9XZWJDb29raWVNYW5hZ2VyLmNwcApA
QCAtMTQ0LDEzICsxNDQsMTggQEAgdm9pZCBXZWJDb29raWVNYW5hZ2VyOjpzdG9wT2JzZXJ2aW5n
Q29va2llQ2hhbmdlcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiB2b2lkIFdlYkNvb2tpZU1h
bmFnZXI6OnNldEhUVFBDb29raWVBY2NlcHRQb2xpY3koSFRUUENvb2tpZUFjY2VwdFBvbGljeSBw
b2xpY3ksIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsK
ICAgICBwbGF0Zm9ybVNldEhUVFBDb29raWVBY2NlcHRQb2xpY3kocG9saWN5KTsKKyAgICBtX3By
b2Nlc3MuY29va2llQWNjZXB0UG9saWN5Q2hhbmdlZChwb2xpY3kpOwogCiAgICAgY29tcGxldGlv
bkhhbmRsZXIoKTsKIH0KIAogdm9pZCBXZWJDb29raWVNYW5hZ2VyOjpnZXRIVFRQQ29va2llQWNj
ZXB0UG9saWN5KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoSFRUUENvb2tpZUFjY2VwdFBvbGljeSk+
JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAgY29tcGxldGlvbkhhbmRsZXIocGxhdGZvcm1H
ZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KCkpOworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIGNv
bXBsZXRpb25IYW5kbGVyKFdlYkNvb2tpZU1hbmFnZXI6OnBsYXRmb3JtR2V0SFRUUENvb2tpZUFj
Y2VwdFBvbGljeSgpKTsKKyNlbHNlCisgICAgY29tcGxldGlvbkhhbmRsZXIobV9wcm9jZXNzLmRl
ZmF1bHRTdG9yYWdlU2Vzc2lvbigpLmNvb2tpZUFjY2VwdFBvbGljeSgpKTsKKyNlbmRpZgogfQog
CiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvQ29va2llcy9XZWJDb29raWVNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlci5oCmluZGV4IDQwNmJiOTBhNzY1ZjVj
OWY2ZmUzZjljY2M5ODFmNDJkZDE0Zjg5YmEuLjJjMWQyN2MzMjQzYmI2Y2UyMTY3MzljMjI0ZWM1
OWZlNWJiZGE0OWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ29v
a2llcy9XZWJDb29raWVNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIuaApAQCAtMzksMTIgKzM5LDEyIEBACiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIHN0cnVjdCBDb29raWU7CitlbnVtIGNsYXNzIEhUVFBDb29raWVBY2Nl
cHRQb2xpY3kgOiB1aW50OF90OwogfQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgTmV0
d29ya1Byb2Nlc3M7Ci1lbnVtIGNsYXNzIEhUVFBDb29raWVBY2NlcHRQb2xpY3kgOiB1aW50OF90
OwogCiBjbGFzcyBXZWJDb29raWVNYW5hZ2VyIDogcHVibGljIE5ldHdvcmtQcm9jZXNzU3VwcGxl
bWVudCwgcHVibGljIElQQzo6TWVzc2FnZVJlY2VpdmVyIHsKICAgICBXVEZfTUFLRV9GQVNUX0FM
TE9DQVRFRDsKQEAgLTU1LDcgKzU1LDcgQEAgcHVibGljOgogCiAgICAgc3RhdGljIGNvbnN0IGNo
YXIqIHN1cHBsZW1lbnROYW1lKCk7CiAKLSAgICB2b2lkIHNldEhUVFBDb29raWVBY2NlcHRQb2xp
Y3koSFRUUENvb2tpZUFjY2VwdFBvbGljeSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsK
KyAgICB2b2lkIHNldEhUVFBDb29raWVBY2NlcHRQb2xpY3koV2ViQ29yZTo6SFRUUENvb2tpZUFj
Y2VwdFBvbGljeSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKIAogI2lmIFVTRShTT1VQ
KQogICAgIHZvaWQgc2V0Q29va2llUGVyc2lzdGVudFN0b3JhZ2UoUEFMOjpTZXNzaW9uSUQsIGNv
bnN0IFN0cmluZyYgc3RvcmFnZVBhdGgsIFNvdXBDb29raWVQZXJzaXN0ZW50U3RvcmFnZVR5cGUp
OwpAQCAtNzksOSArNzksMTEgQEAgcHJpdmF0ZToKICAgICB2b2lkIGdldEFsbENvb2tpZXMoUEFM
OjpTZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9yPFdlYkNvcmU6OkNvb2tp
ZT4mJik+JiYpOwogICAgIHZvaWQgZ2V0Q29va2llcyhQQUw6OlNlc3Npb25JRCwgY29uc3QgVVJM
JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8V2ViQ29yZTo6Q29va2llPiYmKT4mJik7
CiAKLSAgICB2b2lkIHBsYXRmb3JtU2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShIVFRQQ29va2ll
QWNjZXB0UG9saWN5KTsKLSAgICB2b2lkIGdldEhUVFBDb29raWVBY2NlcHRQb2xpY3koQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChIVFRQQ29va2llQWNjZXB0UG9saWN5KT4mJik7Ci0gICAgSFRUUENv
b2tpZUFjY2VwdFBvbGljeSBwbGF0Zm9ybUdldEhUVFBDb29raWVBY2NlcHRQb2xpY3koKTsKKyAg
ICB2b2lkIHBsYXRmb3JtU2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShXZWJDb3JlOjpIVFRQQ29v
a2llQWNjZXB0UG9saWN5KTsKKyAgICB2b2lkIGdldEhUVFBDb29raWVBY2NlcHRQb2xpY3koQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0UG9saWN5KT4mJik7
CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgV2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBvbGlj
eSBwbGF0Zm9ybUdldEhUVFBDb29raWVBY2NlcHRQb2xpY3koKTsKKyNlbmRpZgogCiAgICAgdm9p
ZCBzdGFydE9ic2VydmluZ0Nvb2tpZUNoYW5nZXMoUEFMOjpTZXNzaW9uSUQpOwogICAgIHZvaWQg
c3RvcE9ic2VydmluZ0Nvb2tpZUNoYW5nZXMoUEFMOjpTZXNzaW9uSUQpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIubWVz
c2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2ll
TWFuYWdlci5tZXNzYWdlcy5pbgppbmRleCBhZjRjMDliNzMxZmIwNDk4ZGEzYzUzNzgyYjU4M2Vi
YjhiMzMwNGQxLi5hY2Q3NTQ0MGQ4M2YzNDY2NTBjOWYzM2I3NWI1ZDVkMDkzNTIxM2JhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFu
YWdlci5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Nvb2tp
ZXMvV2ViQ29va2llTWFuYWdlci5tZXNzYWdlcy5pbgpAQCAtMzUsOCArMzUsOCBAQCBtZXNzYWdl
cyAtPiBXZWJDb29raWVNYW5hZ2VyIE5vdFJlZkNvdW50ZWQgewogICAgIHZvaWQgRGVsZXRlQ29v
a2llKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgc3RydWN0IFdlYkNvcmU6OkNvb2tpZSBjb29r
aWUpIC0+ICgpIEFzeW5jCiAgICAgdm9pZCBEZWxldGVBbGxDb29raWVzTW9kaWZpZWRTaW5jZShQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdhbGxUaW1lIHRpbWUpIC0+ICgpIEFzeW5jCiAKLSAg
ICB2b2lkIFNldEhUVFBDb29raWVBY2NlcHRQb2xpY3koZW51bTp1aW50OF90IFdlYktpdDo6SFRU
UENvb2tpZUFjY2VwdFBvbGljeSBwb2xpY3kpIC0+ICgpIEFzeW5jCi0gICAgdm9pZCBHZXRIVFRQ
Q29va2llQWNjZXB0UG9saWN5KCkgLT4gKGVudW06dWludDhfdCBXZWJLaXQ6OkhUVFBDb29raWVB
Y2NlcHRQb2xpY3kgcG9saWN5KSBBc3luYworICAgIHZvaWQgU2V0SFRUUENvb2tpZUFjY2VwdFBv
bGljeShlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBvbGljeSBwb2xpY3kp
IC0+ICgpIEFzeW5jCisgICAgdm9pZCBHZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KCkgLT4gKGVu
dW06dWludDhfdCBXZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0UG9saWN5IHBvbGljeSkgQXN5bmMK
ICAgICAKICAgICB2b2lkIFN0YXJ0T2JzZXJ2aW5nQ29va2llQ2hhbmdlcyhQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQpCiAgICAgdm9pZCBTdG9wT2JzZXJ2aW5nQ29va2llQ2hhbmdlcyhQQUw6OlNl
c3Npb25JRCBzZXNzaW9uSUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL0Nvb2tpZXMvY3VybC9XZWJDb29raWVNYW5hZ2VyQ3VybC5jcHAgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL0Nvb2tpZXMvY3VybC9XZWJDb29raWVNYW5hZ2VyQ3VybC5jcHAKaW5k
ZXggYzFhMzZjZGU5YjVlZWU2Zjc1MTlmZTAxMzBlYjAzN2ZhZTI1NzIxYi4uN2E1Y2IzOTZlMjlj
ODhkODQ4MGZhMWNiNjM3MGNiYzQ1YmZmZTdkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9Db29raWVzL2N1cmwvV2ViQ29va2llTWFuYWdlckN1cmwuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ29va2llcy9jdXJsL1dlYkNvb2tpZU1hbmFn
ZXJDdXJsLmNwcApAQCAtMjYsOCArMjYsOCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1
ZGUgIldlYkNvb2tpZU1hbmFnZXIuaCIKIAotI2luY2x1ZGUgIkhUVFBDb29raWVBY2NlcHRQb2xp
Y3kuaCIKICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzcy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvSFRU
UENvb2tpZUFjY2VwdFBvbGljeS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTmV0d29ya1N0b3JhZ2VT
ZXNzaW9uLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtNTcsMjIgKzU3LDQgQEAgdm9pZCBX
ZWJDb29raWVNYW5hZ2VyOjpwbGF0Zm9ybVNldEhUVFBDb29raWVBY2NlcHRQb2xpY3koSFRUUENv
b2tpZUFjY2VwdFBvbGljeQogICAgIH0pOwogfQogCi1IVFRQQ29va2llQWNjZXB0UG9saWN5IFdl
YkNvb2tpZU1hbmFnZXI6OnBsYXRmb3JtR2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeSgpCi17Ci0g
ICAgY29uc3QgYXV0byYgbmV0d29ya1N0b3JhZ2VTZXNzaW9uID0gbV9wcm9jZXNzLmRlZmF1bHRT
dG9yYWdlU2Vzc2lvbigpOwotICAgIHN3aXRjaCAobmV0d29ya1N0b3JhZ2VTZXNzaW9uLmNvb2tp
ZVN0b3JhZ2UoKS5jb29raWVBY2NlcHRQb2xpY3kobmV0d29ya1N0b3JhZ2VTZXNzaW9uKSkgewot
ICAgIGNhc2UgQ29va2llQWNjZXB0UG9saWN5OjpBbHdheXM6Ci0gICAgICAgIHJldHVybiBIVFRQ
Q29va2llQWNjZXB0UG9saWN5OjpBbHdheXNBY2NlcHQ7Ci0gICAgY2FzZSBDb29raWVBY2NlcHRQ
b2xpY3k6Ok5ldmVyOgotICAgICAgICByZXR1cm4gSFRUUENvb2tpZUFjY2VwdFBvbGljeTo6TmV2
ZXI7Ci0gICAgY2FzZSBDb29raWVBY2NlcHRQb2xpY3k6Ok9ubHlGcm9tTWFpbkRvY3VtZW50RG9t
YWluOgotICAgICAgICByZXR1cm4gSFRUUENvb2tpZUFjY2VwdFBvbGljeTo6T25seUZyb21NYWlu
RG9jdW1lbnREb21haW47Ci0gICAgY2FzZSBDb29raWVBY2NlcHRQb2xpY3k6OkV4Y2x1c2l2ZWx5
RnJvbU1haW5Eb2N1bWVudERvbWFpbjoKLSAgICAgICAgcmV0dXJuIEhUVFBDb29raWVBY2NlcHRQ
b2xpY3k6OkV4Y2x1c2l2ZWx5RnJvbU1haW5Eb2N1bWVudERvbWFpbjsKLSAgICB9Ci0KLSAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gSFRUUENvb2tpZUFjY2VwdFBvbGljeTo6
T25seUZyb21NYWluRG9jdW1lbnREb21haW47Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYktpdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Db29raWVzL21hYy9XZWJD
b29raWVNYW5hZ2VyTWFjLm1tIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Db29raWVz
L21hYy9XZWJDb29raWVNYW5hZ2VyTWFjLm1tCmluZGV4IGJjOWU5MjQzZDQyNzM4ZDBmZTJjNjI4
Y2Q3ZDQxOWVhMWE0MDZlZjcuLjVjOGIzNGM4MjU1ZGJkZjc5MDkwYzkxOGYxMTE3YTRlYzE1ODE3
MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ29va2llcy9tYWMv
V2ViQ29va2llTWFuYWdlck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L0Nvb2tpZXMvbWFjL1dlYkNvb2tpZU1hbmFnZXJNYWMubW0KQEAgLTI2LDkgKzI2LDkgQEAKICNp
bXBvcnQgImNvbmZpZy5oIgogI2ltcG9ydCAiV2ViQ29va2llTWFuYWdlci5oIgogCi0jaW1wb3J0
ICJIVFRQQ29va2llQWNjZXB0UG9saWN5LmgiCiAjaW1wb3J0ICJOZXR3b3JrUHJvY2Vzcy5oIgog
I2ltcG9ydCAiTmV0d29ya1Nlc3Npb24uaCIKKyNpbXBvcnQgPFdlYkNvcmUvSFRUUENvb2tpZUFj
Y2VwdFBvbGljeS5oPgogI2ltcG9ydCA8V2ViQ29yZS9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaD4K
ICNpbXBvcnQgPHBhbC9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmg+CiAjaW1wb3J0IDx3dGYvUHJvY2Vz
c1ByaXZpbGVnZS5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9D
b29raWVzL3NvdXAvV2ViQ29va2llTWFuYWdlclNvdXAuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9Db29raWVzL3NvdXAvV2ViQ29va2llTWFuYWdlclNvdXAuY3BwCmluZGV4IGVh
OTE1MjJjMDlhNDgwY2Q2MmY0Yzg5YWM4NDJjN2VkMTMyMjFiODEuLmNiZmNhZWU1NjNhMTI2Njhk
NDMyMTk2MmMwNjhmMjkyMThiZTMyNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvQ29va2llcy9zb3VwL1dlYkNvb2tpZU1hbmFnZXJTb3VwLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Nvb2tpZXMvc291cC9XZWJDb29raWVNYW5hZ2VyU291
cC5jcHAKQEAgLTI2LDEwICsyNiwxMCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUg
IldlYkNvb2tpZU1hbmFnZXIuaCIKIAotI2luY2x1ZGUgIkhUVFBDb29raWVBY2NlcHRQb2xpY3ku
aCIKICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzcy5oIgogI2luY2x1ZGUgIk5ldHdvcmtTZXNzaW9u
U291cC5oIgogI2luY2x1ZGUgIlNvdXBDb29raWVQZXJzaXN0ZW50U3RvcmFnZVR5cGUuaCIKKyNp
bmNsdWRlIDxXZWJDb3JlL0hUVFBDb29raWVBY2NlcHRQb2xpY3kuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU291cE5ldHdv
cmtTZXNzaW9uLmg+CiAjaW5jbHVkZSA8bGlic291cC9zb3VwLmg+CkBAIC02MCwyMSArNjAsNiBA
QCB2b2lkIFdlYkNvb2tpZU1hbmFnZXI6OnBsYXRmb3JtU2V0SFRUUENvb2tpZUFjY2VwdFBvbGlj
eShIVFRQQ29va2llQWNjZXB0UG9saWN5CiAgICAgfSk7CiB9CiAKLUhUVFBDb29raWVBY2NlcHRQ
b2xpY3kgV2ViQ29va2llTWFuYWdlcjo6cGxhdGZvcm1HZXRIVFRQQ29va2llQWNjZXB0UG9saWN5
KCkKLXsKLSAgICBzd2l0Y2ggKHNvdXBfY29va2llX2phcl9nZXRfYWNjZXB0X3BvbGljeShtX3By
b2Nlc3MuZGVmYXVsdFN0b3JhZ2VTZXNzaW9uKCkuY29va2llU3RvcmFnZSgpKSkgewotICAgIGNh
c2UgU09VUF9DT09LSUVfSkFSX0FDQ0VQVF9BTFdBWVM6Ci0gICAgICAgIHJldHVybiBIVFRQQ29v
a2llQWNjZXB0UG9saWN5OjpBbHdheXNBY2NlcHQ7Ci0gICAgY2FzZSBTT1VQX0NPT0tJRV9KQVJf
QUNDRVBUX05FVkVSOgotICAgICAgICByZXR1cm4gSFRUUENvb2tpZUFjY2VwdFBvbGljeTo6TmV2
ZXI7Ci0gICAgY2FzZSBTT1VQX0NPT0tJRV9KQVJfQUNDRVBUX05PX1RISVJEX1BBUlRZOgotICAg
ICAgICByZXR1cm4gSFRUUENvb2tpZUFjY2VwdFBvbGljeTo6T25seUZyb21NYWluRG9jdW1lbnRE
b21haW47Ci0gICAgfQotCi0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIEhU
VFBDb29raWVBY2NlcHRQb2xpY3k6Ok9ubHlGcm9tTWFpbkRvY3VtZW50RG9tYWluOwotfQotCiB2
b2lkIFdlYkNvb2tpZU1hbmFnZXI6OnNldENvb2tpZVBlcnNpc3RlbnRTdG9yYWdlKFBBTDo6U2Vz
c2lvbklEIHNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiBzdG9yYWdlUGF0aCwgU291cENvb2tpZVBl
cnNpc3RlbnRTdG9yYWdlVHlwZSBzdG9yYWdlVHlwZSkKIHsKICAgICBpZiAoYXV0byogbmV0d29y
a1Nlc3Npb24gPSBtX3Byb2Nlc3MubmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzcy5jcHAKaW5kZXggYjJkNGM2YzFmNjE5NjA3MTQyZWFjNzcyNGJjYmJhMDgx
OGYzYjA1Mi4uZDE4YmUzMGU2Nzg1ZGZjMDgxMjc4NmI1ZTQ4YjUzNzhmZDBmODNlOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKQEAgLTQ2Myw2ICs0NjMsMTEgQEAgdm9pZCBOZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzczo6c2V0T25MaW5lU3RhdGUoYm9vbCBpc09uTGluZSkKICAg
ICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6
U2V0T25MaW5lU3RhdGUoaXNPbkxpbmUpLCAwKTsKIH0KIAordm9pZCBOZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzczo6Y29va2llQWNjZXB0UG9saWN5Q2hhbmdlZChIVFRQQ29va2llQWNjZXB0
UG9saWN5IG5ld1BvbGljeSkKK3sKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6Ok5l
dHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6Q29va2llQWNjZXB0UG9saWN5Q2hhbmdlZChuZXdQb2xp
Y3kpLCAwKTsKK30KKwogdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6cmVtb3Zl
TG9hZElkZW50aWZpZXIoUmVzb3VyY2VMb2FkSWRlbnRpZmllciBpZGVudGlmaWVyKQogewogICAg
IFJFTEVBU0VfQVNTRVJUKGlkZW50aWZpZXIpOwpAQCAtNTkzLDE0ICs1OTgsNiBAQCB2b2lkIE5l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpzZXRDb29raWVzRnJvbURPTShjb25zdCBVUkwm
IGZpcnN0UGFydHksIGNvbgogI2VuZGlmCiB9CiAKLXZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3M6OmNvb2tpZXNFbmFibGVkKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYg
Y29tcGxldGlvbkhhbmRsZXIpCi17Ci0gICAgYXV0byogbmV0d29ya1N0b3JhZ2VTZXNzaW9uID0g
c3RvcmFnZVNlc3Npb24oKTsKLSAgICBpZiAoIW5ldHdvcmtTdG9yYWdlU2Vzc2lvbikKLSAgICAg
ICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsKLSAgICBjb21wbGV0aW9uSGFuZGxl
cihuZXR3b3JrU3RvcmFnZVNlc3Npb24tPmNvb2tpZXNFbmFibGVkKCkpOwotfQotCiB2b2lkIE5l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1
ZShjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZv
LCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRp
b25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBJbmNsdWRlU2VjdXJlQ29va2llcyBpbmNsdWRl
U2VjdXJlQ29va2llcywgU2hvdWxkQXNrSVRQIHNob3VsZEFza0lUUCwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChTdHJpbmcsIGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIGF1dG8q
IG5ldHdvcmtTdG9yYWdlU2Vzc2lvbiA9IHN0b3JhZ2VTZXNzaW9uKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
LmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzLmgKaW5kZXggODM5NzQzMWMwMzMxM2NjMmMwNTBkNTEyYzk1MmFlN2UzZmVlOWE2NS4u
ZTgzNWU2NDFiNjA5MjZkYmQzNGY0NDFmNGUzOGQwNWM3Yzc1ZjJjNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MuaApAQCAtNjEsNiArNjEsNyBAQCBlbnVtIGNsYXNzIFN0b3JhZ2VBY2Nlc3NXYXNH
cmFudGVkIDogYm9vbDsKIGVudW0gY2xhc3MgU2hvdWxkQXNrSVRQIDogYm9vbDsKIHN0cnVjdCBT
YW1lU2l0ZUluZm87CiAKK2VudW0gY2xhc3MgSFRUUENvb2tpZUFjY2VwdFBvbGljeSA6IHVpbnQ4
X3Q7CiBlbnVtIGNsYXNzIEluY2x1ZGVTZWN1cmVDb29raWVzIDogYm9vbDsKIH0KIApAQCAtMTY3
LDYgKzE2OCw4IEBAIHB1YmxpYzoKIAogICAgIE5ldHdvcmtTY2hlbWVSZWdpc3RyeSYgc2NoZW1l
UmVnaXN0cnkoKSB7IHJldHVybiBtX3NjaGVtZVJlZ2lzdHJ5LmdldCgpOyB9CiAKKyAgICB2b2lk
IGNvb2tpZUFjY2VwdFBvbGljeUNoYW5nZWQoV2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBvbGlj
eSk7CisKIHByaXZhdGU6CiAgICAgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoTmV0d29y
a1Byb2Nlc3MmLCBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciwgUEFMOjpTZXNzaW9uSUQsIElQ
Qzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllcik7CiAKQEAgLTIwMCw3ICsyMDMsNiBAQCBwcml2YXRl
OgogCiAgICAgdm9pZCBjb29raWVzRm9yRE9NKGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3Qg
V2ViQ29yZTo6U2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiwgV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6SW5jbHVkZVNlY3VyZUNvb2tp
ZXMsIFdlYkNvcmU6OlNob3VsZEFza0lUUCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcg
Y29va2llU3RyaW5nLCBib29sIHNlY3VyZUNvb2tpZXNBY2Nlc3NlZCk+JiYpOwogICAgIHZvaWQg
c2V0Q29va2llc0Zyb21ET00oY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBXZWJDb3JlOjpT
YW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkNv
cmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpTaG91bGRBc2tJVFAsIGNvbnN0IFN0cmluZyYp
OwotICAgIHZvaWQgY29va2llc0VuYWJsZWQoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4m
Jik7CiAgICAgdm9pZCBjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShjb25zdCBVUkwmIGZp
cnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYsIE9wdGlv
bmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4sIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVu
dGlmaWVyPiwgV2ViQ29yZTo6SW5jbHVkZVNlY3VyZUNvb2tpZXMsIFdlYkNvcmU6OlNob3VsZEFz
a0lUUCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcgY29va2llU3RyaW5nLCBib29sIHNl
Y3VyZUNvb2tpZXNBY2Nlc3NlZCk+JiYpOwogICAgIHZvaWQgZ2V0UmF3Q29va2llcyhjb25zdCBV
UkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYs
IE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4sIE9wdGlvbmFsPFdlYkNvcmU6OlBh
Z2VJZGVudGlmaWVyPiwgV2ViQ29yZTo6U2hvdWxkQXNrSVRQLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKFZlY3RvcjxXZWJDb3JlOjpDb29raWU+JiYpPiYmKTsKICAgICB2b2lkIGRlbGV0ZUNvb2tp
ZShjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIGNvb2tpZU5hbWUpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5t
ZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KaW5kZXggODRjZmJkZjNmYjkzNGQ3OTE0MzcxNjIx
MWEyNTA2ZmNmNjEzNGQ1YS4uMDIwYjQ3YTc3YjczYzE4YTZhNjJkNDY1MDE1YTdjYTRiYzNhYjA1
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVj
dGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCkBAIC0zNiw3
ICszNiw2IEBAIG1lc3NhZ2VzIC0+IE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzIExlZ2Fj
eVJlY2VpdmVyIHsKIAogICAgIENvb2tpZXNGb3JET00oVVJMIGZpcnN0UGFydHksIHN0cnVjdCBX
ZWJDb3JlOjpTYW1lU2l0ZUluZm8gc2FtZVNpdGVJbmZvLCBVUkwgdXJsLCBXZWJDb3JlOjpGcmFt
ZUlkZW50aWZpZXIgZnJhbWVJRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCBlbnVt
OmJvb2wgV2ViQ29yZTo6SW5jbHVkZVNlY3VyZUNvb2tpZXMgaW5jbHVkZVNlY3VyZUNvb2tpZXMs
IGVudW06Ym9vbCBXZWJDb3JlOjpTaG91bGRBc2tJVFAgc2hvdWxkQXNrSVRQKSAtPiAoU3RyaW5n
IGNvb2tpZVN0cmluZywgYm9vbCBkaWRBY2Nlc3NTZWN1cmVDb29raWVzKSBTeW5jaHJvbm91cwog
ICAgIFNldENvb2tpZXNGcm9tRE9NKFVSTCBmaXJzdFBhcnR5LCBzdHJ1Y3QgV2ViQ29yZTo6U2Ft
ZVNpdGVJbmZvIHNhbWVTaXRlSW5mbywgVVJMIHVybCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
IGZyYW1lSUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgZW51bTpib29sIFdlYkNv
cmU6OlNob3VsZEFza0lUUCBzaG91bGRBc2tJVFAsIFN0cmluZyBjb29raWVTdHJpbmcpCi0gICAg
Q29va2llc0VuYWJsZWQoKSAtPiAoYm9vbCBlbmFibGVkKSBTeW5jaHJvbm91cwogICAgIENvb2tp
ZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKFVSTCBmaXJzdFBhcnR5LCBzdHJ1Y3QgV2ViQ29yZTo6
U2FtZVNpdGVJbmZvIHNhbWVTaXRlSW5mbywgVVJMIHVybCwgT3B0aW9uYWw8V2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4g
cGFnZUlELCBlbnVtOmJvb2wgV2ViQ29yZTo6SW5jbHVkZVNlY3VyZUNvb2tpZXMgaW5jbHVkZVNl
Y3VyZUNvb2tpZXMsIGVudW06Ym9vbCBXZWJDb3JlOjpTaG91bGRBc2tJVFAgc2hvdWxkQXNrSVRQ
KSAtPiAoU3RyaW5nIGNvb2tpZVN0cmluZywgYm9vbCBkaWRBY2Nlc3NTZWN1cmVDb29raWVzKSBT
eW5jaHJvbm91cwogICAgIEdldFJhd0Nvb2tpZXMoVVJMIGZpcnN0UGFydHksIHN0cnVjdCBXZWJD
b3JlOjpTYW1lU2l0ZUluZm8gc2FtZVNpdGVJbmZvLCBVUkwgdXJsLCBPcHRpb25hbDxXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlm
aWVyPiBwYWdlSUQsIGVudW06Ym9vbCBXZWJDb3JlOjpTaG91bGRBc2tJVFAgc2hvdWxkQXNrSVRQ
KSAtPiAoVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4gY29va2llcykgU3luY2hyb25vdXMKICAgICBE
ZWxldGVDb29raWUoVVJMIHVybCwgU3RyaW5nIGNvb2tpZU5hbWUpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCmluZGV4IDM5OTI2ZWI2YWE4OGE5
YTI2MWIzNDA3ODVmNzQxOGI4OWZmMjExNjguLmFmMjRjZmZmODcxOWI3ODBiNWI4MDgyZjJhM2U4
MTEyMTI3YzcxYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Byb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Byb2Nlc3MuY3BwCkBAIC03MCw2ICs3MCw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9ETlMuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL0RlcHJlY2F0ZWRHbG9iYWxTZXR0aW5ncy5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0hU
VFBDb29raWVBY2NlcHRQb2xpY3kuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0xlZ2FjeVNjaGVtZVJl
Z2lzdHJ5Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Mb2dJbml0aWFsaXphdGlvbi5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvTUlNRVR5cGVSZWdpc3RyeS5oPgpAQCAtMzY4LDExICszNjksMTEgQEAgdm9p
ZCBOZXR3b3JrUHJvY2Vzczo6aW5pdGlhbGl6ZUNvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uKiBj
b25uZWN0aW9uKQogICAgICAgICBzdXBwbGVtZW50LT5pbml0aWFsaXplQ29ubmVjdGlvbihjb25u
ZWN0aW9uKTsKIH0KIAotdm9pZCBOZXR3b3JrUHJvY2Vzczo6Y3JlYXRlTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MoUHJvY2Vzc0lkZW50aWZpZXIgaWRlbnRpZmllciwgUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPElQQzo6QXR0YWNo
bWVudD4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIE5ldHdvcmtQcm9jZXNzOjpjcmVh
dGVOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyhQcm9jZXNzSWRlbnRpZmllciBpZGVudGlm
aWVyLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0
aW9uYWw8SVBDOjpBdHRhY2htZW50PiYmLCBIVFRQQ29va2llQWNjZXB0UG9saWN5KT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKIHsKICAgICBhdXRvIGlwY0Nvbm5lY3Rpb24gPSBjcmVhdGVJUENDb25u
ZWN0aW9uUGFpcigpOwogICAgIGlmICghaXBjQ29ubmVjdGlvbikgewotICAgICAgICBjb21wbGV0
aW9uSGFuZGxlcih7IH0pOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcih7IH0sIEhUVFBDb29r
aWVBY2NlcHRQb2xpY3k6Ok5ldmVyKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtMzgy
LDcgKzM4MywxMSBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpjcmVhdGVOZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2VzcyhQcm9jZXNzSWRlbnRpZmllciBpZGVudAogICAgIEFTU0VSVCghbV93ZWJQ
cm9jZXNzQ29ubmVjdGlvbnMuY29udGFpbnMoaWRlbnRpZmllcikpOwogICAgIG1fd2ViUHJvY2Vz
c0Nvbm5lY3Rpb25zLmFkZChpZGVudGlmaWVyLCBXVEZNb3ZlKG5ld0Nvbm5lY3Rpb24pKTsKIAot
ICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUoaXBjQ29ubmVjdGlvbi0+c2Vjb25kKSk7Cisg
ICAgSFRUUENvb2tpZUFjY2VwdFBvbGljeSBjb29raWVBY2NlcHRQb2xpY3kgPSBIVFRQQ29va2ll
QWNjZXB0UG9saWN5OjpOZXZlcjsKKyAgICBpZiAoYXV0byogc3RvcmFnZSA9IHN0b3JhZ2VTZXNz
aW9uKHNlc3Npb25JRCkpCisgICAgICAgIGNvb2tpZUFjY2VwdFBvbGljeSA9IHN0b3JhZ2UtPmNv
b2tpZUFjY2VwdFBvbGljeSgpOworCisgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShpcGND
b25uZWN0aW9uLT5zZWNvbmQpLCBjb29raWVBY2NlcHRQb2xpY3kpOwogCiAgICAgY29ubmVjdGlv
bi5zZXRPbkxpbmVTdGF0ZShOZXR3b3JrU3RhdGVOb3RpZmllcjo6c2luZ2xldG9uKCkub25MaW5l
KCkpOwogCkBAIC01MDcsNiArNTEyLDEyIEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmVuc3VyZVNl
c3Npb24oY29uc3QgUEFMOjpTZXNzaW9uSUQmIHNlc3Npb25JRCwgYm9vbCBzaG91bGRVCiAjZW5k
aWYKIH0KIAordm9pZCBOZXR3b3JrUHJvY2Vzczo6Y29va2llQWNjZXB0UG9saWN5Q2hhbmdlZChI
VFRQQ29va2llQWNjZXB0UG9saWN5IG5ld1BvbGljeSkKK3sKKyAgICBmb3IgKGF1dG8mIGNvbm5l
Y3Rpb24gOiBtX3dlYlByb2Nlc3NDb25uZWN0aW9ucy52YWx1ZXMoKSkKKyAgICAgICAgY29ubmVj
dGlvbi0+Y29va2llQWNjZXB0UG9saWN5Q2hhbmdlZChuZXdQb2xpY3kpOworfQorCiBXZWJDb3Jl
OjpOZXR3b3JrU3RvcmFnZVNlc3Npb24qIE5ldHdvcmtQcm9jZXNzOjpzdG9yYWdlU2Vzc2lvbihj
b25zdCBQQUw6OlNlc3Npb25JRCYgc2Vzc2lvbklEKSBjb25zdAogewogICAgIGlmIChzZXNzaW9u
SUQgPT0gUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaCBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAppbmRleCAzZWY4NmVjMzBhMDE1ODgz
ZGNhYzc5YTIyYmY1Mjg2YzVlZmMyMWU0Li45NDVmNzQ0MTM4Y2RmMTQ5NzczMDEwNmYwOTM5NGVj
NzI2NzU3NmU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJv
Y2Vzcy5oCkBAIC04MSw2ICs4MSw3IEBAIGNsYXNzIFN0b3JhZ2VRdW90YU1hbmFnZXI7CiBjbGFz
cyBOZXR3b3JrU3RvcmFnZVNlc3Npb247CiBjbGFzcyBSZXNvdXJjZUVycm9yOwogY2xhc3MgU1dT
ZXJ2ZXI7CitlbnVtIGNsYXNzIEhUVFBDb29raWVBY2NlcHRQb2xpY3kgOiB1aW50OF90OwogZW51
bSBjbGFzcyBJbmNsdWRlSHR0cE9ubHlDb29raWVzIDogYm9vbDsKIGVudW0gY2xhc3MgU3RvcmVk
Q3JlZGVudGlhbHNQb2xpY3kgOiB1aW50OF90OwogZW51bSBjbGFzcyBTdG9yYWdlQWNjZXNzUHJv
bXB0V2FzU2hvd24gOiBib29sOwpAQCAtMzQzLDYgKzM0NCw4IEBAIHB1YmxpYzoKICAgICB2b2lk
IHJlc2V0U2VydmljZVdvcmtlckZldGNoVGltZW91dEZvclRlc3RpbmcoQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZCgpPiYmKTsKICAgICBTZWNvbmRzIHNlcnZpY2VXb3JrZXJGZXRjaFRpbWVvdXQoKSBj
b25zdCB7IHJldHVybiBtX3NlcnZpY2VXb3JrZXJGZXRjaFRpbWVvdXQ7IH0KIAorICAgIHZvaWQg
Y29va2llQWNjZXB0UG9saWN5Q2hhbmdlZChXZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0UG9saWN5
KTsKKwogcHJpdmF0ZToKICAgICB2b2lkIHBsYXRmb3JtSW5pdGlhbGl6ZU5ldHdvcmtQcm9jZXNz
KGNvbnN0IE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJik7CiAgICAgc3RkOjp1bmlx
dWVfcHRyPFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbj4gcGxhdGZvcm1DcmVhdGVEZWZh
dWx0U3RvcmFnZVNlc3Npb24oKSBjb25zdDsKQEAgLTM4Myw3ICszODYsNyBAQCBwcml2YXRlOgog
ICAgIC8vIE1lc3NhZ2UgSGFuZGxlcnMKICAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTmV0d29ya1By
b2Nlc3NNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYsIHN0ZDo6dW5pcXVl
X3B0cjxJUEM6OkVuY29kZXI+Jik7CiAgICAgdm9pZCBpbml0aWFsaXplTmV0d29ya1Byb2Nlc3Mo
TmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmJik7Ci0gICAgdm9pZCBjcmVhdGVOZXR3
b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyhXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciwgUEFM
OjpTZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8SVBDOjpBdHRhY2ht
ZW50PiYmKT4mJik7CisgICAgdm9pZCBjcmVhdGVOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cyhXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciwgUEFMOjpTZXNzaW9uSUQsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoT3B0aW9uYWw8SVBDOjpBdHRhY2htZW50PiYmLCBXZWJDb3JlOjpIVFRQQ29v
a2llQWNjZXB0UG9saWN5KT4mJik7CiAKICAgICB2b2lkIGZldGNoV2Vic2l0ZURhdGEoUEFMOjpT
ZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+LCBPcHRpb25TZXQ8V2Vic2l0ZURh
dGFGZXRjaE9wdGlvbj4sIHVpbnQ2NF90IGNhbGxiYWNrSUQpOwogICAgIHZvaWQgZGVsZXRlV2Vi
c2l0ZURhdGEoUEFMOjpTZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+LCBXYWxs
VGltZSBtb2RpZmllZFNpbmNlLCB1aW50NjRfdCBjYWxsYmFja0lEKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4gYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCmlu
ZGV4IGE1NjYxM2NkYTM0YzdlM2FjZTU1NGZkNzhiMzU5NGJhYmFiZDY2MDYuLjM5ZDExZjNhMjY1
MzMzNjZiNjliMmY3MDVhOWRkYjFjYzMxYzE4YTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgpAQCAtMjUsNyAr
MjUsNyBAQCBtZXNzYWdlcyAtPiBOZXR3b3JrUHJvY2VzcyBMZWdhY3lSZWNlaXZlciB7CiAgICAg
SW5pdGlhbGl6ZU5ldHdvcmtQcm9jZXNzKHN0cnVjdCBXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzIHByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMpCiAKICAgICAjIENyZWF0
ZXMgYSBjb25uZWN0aW9uIGZvciBjb21tdW5pY2F0aW9uIHdpdGggYSBXZWJQcm9jZXNzCi0gICAg
Q3JlYXRlTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoV2ViQ29yZTo6UHJvY2Vzc0lkZW50
aWZpZXIgcHJvY2Vzc0lkZW50aWZpZXIsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgLT4gKE9w
dGlvbmFsPElQQzo6QXR0YWNobWVudD4gY29ubmVjdGlvbklkZW50aWZpZXIpIEFzeW5jCisgICAg
Q3JlYXRlTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoV2ViQ29yZTo6UHJvY2Vzc0lkZW50
aWZpZXIgcHJvY2Vzc0lkZW50aWZpZXIsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgLT4gKE9w
dGlvbmFsPElQQzo6QXR0YWNobWVudD4gY29ubmVjdGlvbklkZW50aWZpZXIsIGVudW06dWludDhf
dCBXZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0UG9saWN5IGNvb2tpZUFjY2VwdFBvbGljeSkgQXN5
bmMKIAogI2lmIFVTRShTT1VQKQogICAgIFNldElnbm9yZVRMU0Vycm9ycyhib29sIGlnbm9yZVRM
U0Vycm9ycykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAppbmRleCAyYzAyNjZjZTVlZGMy
Y2U1ZTkwMmQzMTVhOGFiZjY3MmFlM2IyZjUxLi42YjUxNzVhNzYxMjg4NWE0ZjYzODYwZDNmNmQ5
OThmNzA1ZTU5NWU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCkBAIC0zNCw3ICsz
NCw3IEBACiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKICNpZiBVU0UoU09VUCkK
LSNpbmNsdWRlICJIVFRQQ29va2llQWNjZXB0UG9saWN5LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9I
VFRQQ29va2llQWNjZXB0UG9saWN5Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Tb3VwTmV0d29ya1By
b3h5U2V0dGluZ3MuaD4KICNlbmRpZgogCkBAIC03NSw3ICs3NSw3IEBAIHN0cnVjdCBOZXR3b3Jr
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyB7CiAgICAgV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRl
cnMgZGVmYXVsdERhdGFTdG9yZVBhcmFtZXRlcnM7CiAgICAgCiAjaWYgVVNFKFNPVVApCi0gICAg
SFRUUENvb2tpZUFjY2VwdFBvbGljeSBjb29raWVBY2NlcHRQb2xpY3kgeyBIVFRQQ29va2llQWNj
ZXB0UG9saWN5OjpBbHdheXNBY2NlcHQgfTsKKyAgICBXZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0
UG9saWN5IGNvb2tpZUFjY2VwdFBvbGljeSB7IFdlYkNvcmU6OkhUVFBDb29raWVBY2NlcHRQb2xp
Y3k6OkFsd2F5c0FjY2VwdCB9OwogICAgIGJvb2wgaWdub3JlVExTRXJyb3JzIHsgZmFsc2UgfTsK
ICAgICBWZWN0b3I8U3RyaW5nPiBsYW5ndWFnZXM7CiAgICAgV2ViQ29yZTo6U291cE5ldHdvcmtQ
cm94eVNldHRpbmdzIHByb3h5U2V0dGluZ3M7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9IVFRQQ29va2llQWNjZXB0UG9saWN5LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9IVFRQ
Q29va2llQWNjZXB0UG9saWN5LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ1N2My
MzQ0YzljODk4NmZmNmUyMzIzMzA1YTI4NDMzZDg2ZWEwZWIuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvSFRUUENvb2tp
ZUFjY2VwdFBvbGljeS5oCisrKyAvZGV2L251bGwKQEAgLTEsNTEgKzAsMCBAQAotLyoKLSAqIENv
cHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
Ci0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
Ci0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi1uYW1l
c3BhY2UgV2ViS2l0IHsKLQotZW51bSBjbGFzcyBIVFRQQ29va2llQWNjZXB0UG9saWN5IDogdWlu
dDhfdCB7Ci0gICAgQWx3YXlzQWNjZXB0ID0gMCwKLSAgICBOZXZlciA9IDEsCi0gICAgT25seUZy
b21NYWluRG9jdW1lbnREb21haW4gPSAyLAotICAgIEV4Y2x1c2l2ZWx5RnJvbU1haW5Eb2N1bWVu
dERvbWFpbiA9IDMsCi19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotbmFtZXNwYWNlIFdU
RiB7Ci0KLXRlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViS2l0OjpIVFRQQ29va2llQWNj
ZXB0UG9saWN5PiB7Ci0gICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKLSAgICAgICAgV2Vi
S2l0OjpIVFRQQ29va2llQWNjZXB0UG9saWN5LAotICAgICAgICBXZWJLaXQ6OkhUVFBDb29raWVB
Y2NlcHRQb2xpY3k6OkFsd2F5c0FjY2VwdCwKLSAgICAgICAgV2ViS2l0OjpIVFRQQ29va2llQWNj
ZXB0UG9saWN5OjpOZXZlciwKLSAgICAgICAgV2ViS2l0OjpIVFRQQ29va2llQWNjZXB0UG9saWN5
OjpPbmx5RnJvbU1haW5Eb2N1bWVudERvbWFpbiwKLSAgICAgICAgV2ViS2l0OjpIVFRQQ29va2ll
QWNjZXB0UG9saWN5OjpFeGNsdXNpdmVseUZyb21NYWluRG9jdW1lbnREb21haW4KLSAgICA+Owot
fTsKLQotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVycy5oCmluZGV4IDQ5NmNmYzlmN2U4NGFhYzYyNmJlMTdlN2U1YjAxNmI4ZDVjYzUw
MGYuLmI0MzAyZDY4Y2U3YzE2OTYyZWViODcyNzdjNWY4M2ZiODdmNDg4YzQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKQEAg
LTQ3LDcgKzQ3LDcgQEAKICNlbmRpZgogCiAjaWYgVVNFKFNPVVApCi0jaW5jbHVkZSAiSFRUUENv
b2tpZUFjY2VwdFBvbGljeS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvSFRUUENvb2tpZUFjY2VwdFBv
bGljeS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU291cE5ldHdvcmtQcm94eVNldHRpbmdzLmg+CiAj
ZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUhUVFBD
b29raWVTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJSFRUUENvb2tp
ZVN0b3JlLmNwcAppbmRleCBjMmY3ZWEyMDExMDUwMTJlMmU3MzQ5OGFjMTc3ZmRmZDMwODNjOTE3
Li4yZWUzMGJkZmJmNzg1OTc3MTQyYmE3N2NlMGEzYjgwZTljNmNmMzVhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJSFRUUENvb2tpZVN0b3JlLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJSFRUUENvb2tpZVN0b3JlLmNwcApAQCAtMzEs
NiArMzEsNyBAQAogI2luY2x1ZGUgIldlYnNpdGVEYXRhU3RvcmUuaCIKICNpbmNsdWRlIDxXZWJD
b3JlL0Nvb2tpZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQ29va2llU3RvcmFnZS5oPgorI2luY2x1
ZGUgPFdlYkNvcmUvSFRUUENvb2tpZUFjY2VwdFBvbGljeS5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
TmV0d29ya1N0b3JhZ2VTZXNzaW9uLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CkBAIC0x
MzMsNyArMTM0LDcgQEAgdm9pZCBIVFRQQ29va2llU3RvcmU6OmRlbGV0ZUFsbENvb2tpZXMoQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW4KICAgICBSdW5Mb29wOjptYWlu
KCkuZGlzcGF0Y2goV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQogCi12b2lkIEhUVFBD
b29raWVTdG9yZTo6c2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShXZWJLaXQ6OkhUVFBDb29raWVB
Y2NlcHRQb2xpY3kgcG9saWN5LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlv
bkhhbmRsZXIpCit2b2lkIEhUVFBDb29raWVTdG9yZTo6c2V0SFRUUENvb2tpZUFjY2VwdFBvbGlj
eShXZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0UG9saWN5IHBvbGljeSwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIGF1dG8qIHBvb2wgPSBtX293
bmluZ0RhdGFTdG9yZS0+cHJvY2Vzc1Bvb2xGb3JDb29raWVTdG9yYWdlT3BlcmF0aW9ucygpOwog
ICAgIGlmICghcG9vbCkgewpAQCAtMjc5LDcgKzI4MCw3IEBAIHZvaWQgSFRUUENvb2tpZVN0b3Jl
OjpkZWxldGVDb29raWVGcm9tRGVmYXVsdFVJUHJvY2Vzc0Nvb2tpZVN0b3JlKGNvbnN0IFdlYkNv
cmU6CiB2b2lkIEhUVFBDb29raWVTdG9yZTo6c3RhcnRPYnNlcnZpbmdDaGFuZ2VzVG9EZWZhdWx0
VUlQcm9jZXNzQ29va2llU3RvcmUoRnVuY3Rpb248dm9pZCgpPiYmKSB7IH0KIHZvaWQgSFRUUENv
b2tpZVN0b3JlOjpzdG9wT2JzZXJ2aW5nQ2hhbmdlc1RvRGVmYXVsdFVJUHJvY2Vzc0Nvb2tpZVN0
b3JlKCkgeyB9CiB2b2lkIEhUVFBDb29raWVTdG9yZTo6ZGVsZXRlQ29va2llc0luRGVmYXVsdFVJ
UHJvY2Vzc0Nvb2tpZVN0b3JlKCkgeyB9Ci12b2lkIEhUVFBDb29raWVTdG9yZTo6c2V0SFRUUENv
b2tpZUFjY2VwdFBvbGljeUluRGVmYXVsdFVJUHJvY2Vzc0Nvb2tpZVN0b3JlKFdlYktpdDo6SFRU
UENvb2tpZUFjY2VwdFBvbGljeSkgeyB9Cit2b2lkIEhUVFBDb29raWVTdG9yZTo6c2V0SFRUUENv
b2tpZUFjY2VwdFBvbGljeUluRGVmYXVsdFVJUHJvY2Vzc0Nvb2tpZVN0b3JlKFdlYkNvcmU6OkhU
VFBDb29raWVBY2NlcHRQb2xpY3kpIHsgfQogI2VuZGlmCiAgICAgCiB9IC8vIG5hbWVzcGFjZSBB
UEkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElIVFRQQ29va2ll
U3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElIVFRQQ29va2llU3RvcmUu
aAppbmRleCAyZTQxZjYyNGQ0NzRmNWZmNDFlMTUyNTEyMGY1YmY3YTZiYjI2ZDNkLi44MTc5YzQ0
ZjRlNThkMmI2Mjk4NTVjYTkxNTkwOTRmNDMyYzQ2YzdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQVBJSFRUUENvb2tpZVN0b3JlLmgKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0FQSUhUVFBDb29raWVTdG9yZS5oCkBAIC0yNiw3ICsyNiw2IEBACiAj
cHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkFQSU9iamVjdC5oIgotI2luY2x1ZGUgIkhUVFBDb29r
aWVBY2NlcHRQb2xpY3kuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0Nvb2tpZS5oPgogI2luY2x1ZGUg
PHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CkBAIC0z
NywxMiArMzYsMTIgQEAgc3RydWN0IENvb2tpZTsKICNpZiBQTEFURk9STShDT0NPQSkKIGNsYXNz
IENvb2tpZVN0b3JhZ2VPYnNlcnZlcjsKICNlbmRpZgorZW51bSBjbGFzcyBIVFRQQ29va2llQWNj
ZXB0UG9saWN5IDogdWludDhfdDsKIH0KIAogbmFtZXNwYWNlIFdlYktpdCB7CiBjbGFzcyBXZWJD
b29raWVNYW5hZ2VyUHJveHk7CiBjbGFzcyBXZWJzaXRlRGF0YVN0b3JlOwotZW51bSBjbGFzcyBI
VFRQQ29va2llQWNjZXB0UG9saWN5IDogdWludDhfdDsKIH0KIAogbmFtZXNwYWNlIEFQSSB7CkBA
IC02Myw3ICs2Miw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGRlbGV0ZUNvb2tpZShjb25zdCBXZWJD
b3JlOjpDb29raWUmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIAogICAgIHZv
aWQgZGVsZXRlQWxsQ29va2llcyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwotICAgIHZv
aWQgc2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShXZWJLaXQ6OkhUVFBDb29raWVBY2NlcHRQb2xp
Y3ksIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CisgICAgdm9pZCBzZXRIVFRQQ29va2ll
QWNjZXB0UG9saWN5KFdlYkNvcmU6OkhUVFBDb29raWVBY2NlcHRQb2xpY3ksIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoKT4mJik7CiAKICAgICBjbGFzcyBPYnNlcnZlciB7CiAgICAgcHVibGljOgpA
QCAtOTAsNyArODksNyBAQCBwcml2YXRlOgogICAgIHZvaWQgc3RhcnRPYnNlcnZpbmdDaGFuZ2Vz
VG9EZWZhdWx0VUlQcm9jZXNzQ29va2llU3RvcmUoRnVuY3Rpb248dm9pZCgpPiYmKTsKICAgICB2
b2lkIHN0b3BPYnNlcnZpbmdDaGFuZ2VzVG9EZWZhdWx0VUlQcm9jZXNzQ29va2llU3RvcmUoKTsK
ICAgICB2b2lkIGRlbGV0ZUNvb2tpZXNJbkRlZmF1bHRVSVByb2Nlc3NDb29raWVTdG9yZSgpOwot
ICAgIHZvaWQgc2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeUluRGVmYXVsdFVJUHJvY2Vzc0Nvb2tp
ZVN0b3JlKFdlYktpdDo6SFRUUENvb2tpZUFjY2VwdFBvbGljeSk7CisgICAgdm9pZCBzZXRIVFRQ
Q29va2llQWNjZXB0UG9saWN5SW5EZWZhdWx0VUlQcm9jZXNzQ29va2llU3RvcmUoV2ViQ29yZTo6
SFRUUENvb2tpZUFjY2VwdFBvbGljeSk7CiAgICAgCiAgICAgLy8gRklYTUU6IFRoaXMgaXMgYSBy
ZWZlcmVuY2UgY3ljbGUuCiAgICAgUmVmPFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZT4gbV9vd25p
bmdEYXRhU3RvcmU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9X
S0FQSUNhc3QuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oCmlu
ZGV4IDAwZDE2MjcyNzAyOGE2NmI0MDdiMzVkNTYxOGQ5MDVjMWVhM2JhMDQuLjgxMDU1YTYxOWJh
MTlmNTY1MjJjNDc4MDFhNWEwY2FjM2M1ZmZjNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9DL1dLQVBJQ2FzdC5oCkBAIC0yOCw3ICsyOCw2IEBACiAjZGVmaW5lIFdLQVBJQ2FzdF9o
CiAKICNpbmNsdWRlICJDYWNoZU1vZGVsLmgiCi0jaW5jbHVkZSAiSFRUUENvb2tpZUFjY2VwdFBv
bGljeS5oIgogI2luY2x1ZGUgIkluamVjdGVkQnVuZGxlSGl0VGVzdFJlc3VsdE1lZGlhVHlwZS5o
IgogI2luY2x1ZGUgIlBsdWdpbk1vZHVsZUluZm8uaCIKICNpbmNsdWRlICJQcm9jZXNzVGVybWlu
YXRpb25SZWFzb24uaCIKQEAgLTQ2LDYgKzQ1LDcgQEAKICNpbmNsdWRlICJXS1NoYXJlZEFQSUNh
c3QuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0NyZWRlbnRpYWwuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L0ZyYW1lTG9hZGVyVHlwZXMuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0hUVFBDb29raWVBY2NlcHRQ
b2xpY3kuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BsdWdpbkRhdGEuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1Byb3RlY3Rpb25TcGFjZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2V0dGluZ3MuaD4KQEAg
LTM2OSwzMyArMzY5LDMzIEBAIGlubGluZSBSZXNvdXJjZUNhY2hlc1RvQ2xlYXIgdG9SZXNvdXJj
ZUNhY2hlc1RvQ2xlYXIoV0tSZXNvdXJjZUNhY2hlc1RvQ2xlYXIgd2tSCiAgICAgcmV0dXJuIEFs
bFJlc291cmNlQ2FjaGVzOwogfQogCi1pbmxpbmUgSFRUUENvb2tpZUFjY2VwdFBvbGljeSB0b0hU
VFBDb29raWVBY2NlcHRQb2xpY3koV0tIVFRQQ29va2llQWNjZXB0UG9saWN5IHBvbGljeSkKK2lu
bGluZSBXZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0UG9saWN5IHRvSFRUUENvb2tpZUFjY2VwdFBv
bGljeShXS0hUVFBDb29raWVBY2NlcHRQb2xpY3kgcG9saWN5KQogewogICAgIHN3aXRjaCAocG9s
aWN5KSB7CiAgICAgY2FzZSBrV0tIVFRQQ29va2llQWNjZXB0UG9saWN5QWx3YXlzOgotICAgICAg
ICByZXR1cm4gSFRUUENvb2tpZUFjY2VwdFBvbGljeTo6QWx3YXlzQWNjZXB0OworICAgICAgICBy
ZXR1cm4gV2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBvbGljeTo6QWx3YXlzQWNjZXB0OwogICAg
IGNhc2Uga1dLSFRUUENvb2tpZUFjY2VwdFBvbGljeU5ldmVyOgotICAgICAgICByZXR1cm4gSFRU
UENvb2tpZUFjY2VwdFBvbGljeTo6TmV2ZXI7CisgICAgICAgIHJldHVybiBXZWJDb3JlOjpIVFRQ
Q29va2llQWNjZXB0UG9saWN5OjpOZXZlcjsKICAgICBjYXNlIGtXS0hUVFBDb29raWVBY2NlcHRQ
b2xpY3lPbmx5RnJvbU1haW5Eb2N1bWVudERvbWFpbjoKLSAgICAgICAgcmV0dXJuIEhUVFBDb29r
aWVBY2NlcHRQb2xpY3k6Ok9ubHlGcm9tTWFpbkRvY3VtZW50RG9tYWluOworICAgICAgICByZXR1
cm4gV2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBvbGljeTo6T25seUZyb21NYWluRG9jdW1lbnRE
b21haW47CiAgICAgY2FzZSBrV0tIVFRQQ29va2llQWNjZXB0UG9saWN5RXhjbHVzaXZlbHlGcm9t
TWFpbkRvY3VtZW50RG9tYWluOgotICAgICAgICByZXR1cm4gSFRUUENvb2tpZUFjY2VwdFBvbGlj
eTo6RXhjbHVzaXZlbHlGcm9tTWFpbkRvY3VtZW50RG9tYWluOworICAgICAgICByZXR1cm4gV2Vi
Q29yZTo6SFRUUENvb2tpZUFjY2VwdFBvbGljeTo6RXhjbHVzaXZlbHlGcm9tTWFpbkRvY3VtZW50
RG9tYWluOwogICAgIH0KIAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiBI
VFRQQ29va2llQWNjZXB0UG9saWN5OjpBbHdheXNBY2NlcHQ7CisgICAgcmV0dXJuIFdlYkNvcmU6
OkhUVFBDb29raWVBY2NlcHRQb2xpY3k6OkFsd2F5c0FjY2VwdDsKIH0KIAotaW5saW5lIFdLSFRU
UENvb2tpZUFjY2VwdFBvbGljeSB0b0FQSShIVFRQQ29va2llQWNjZXB0UG9saWN5IHBvbGljeSkK
K2lubGluZSBXS0hUVFBDb29raWVBY2NlcHRQb2xpY3kgdG9BUEkoV2ViQ29yZTo6SFRUUENvb2tp
ZUFjY2VwdFBvbGljeSBwb2xpY3kpCiB7CiAgICAgc3dpdGNoIChwb2xpY3kpIHsKLSAgICBjYXNl
IEhUVFBDb29raWVBY2NlcHRQb2xpY3k6OkFsd2F5c0FjY2VwdDoKKyAgICBjYXNlIFdlYkNvcmU6
OkhUVFBDb29raWVBY2NlcHRQb2xpY3k6OkFsd2F5c0FjY2VwdDoKICAgICAgICAgcmV0dXJuIGtX
S0hUVFBDb29raWVBY2NlcHRQb2xpY3lBbHdheXM7Ci0gICAgY2FzZSBIVFRQQ29va2llQWNjZXB0
UG9saWN5OjpOZXZlcjoKKyAgICBjYXNlIFdlYkNvcmU6OkhUVFBDb29raWVBY2NlcHRQb2xpY3k6
Ok5ldmVyOgogICAgICAgICByZXR1cm4ga1dLSFRUUENvb2tpZUFjY2VwdFBvbGljeU5ldmVyOwot
ICAgIGNhc2UgSFRUUENvb2tpZUFjY2VwdFBvbGljeTo6T25seUZyb21NYWluRG9jdW1lbnREb21h
aW46CisgICAgY2FzZSBXZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0UG9saWN5OjpPbmx5RnJvbU1h
aW5Eb2N1bWVudERvbWFpbjoKICAgICAgICAgcmV0dXJuIGtXS0hUVFBDb29raWVBY2NlcHRQb2xp
Y3lPbmx5RnJvbU1haW5Eb2N1bWVudERvbWFpbjsKLSAgICBjYXNlIEhUVFBDb29raWVBY2NlcHRQ
b2xpY3k6OkV4Y2x1c2l2ZWx5RnJvbU1haW5Eb2N1bWVudERvbWFpbjoKKyAgICBjYXNlIFdlYkNv
cmU6OkhUVFBDb29raWVBY2NlcHRQb2xpY3k6OkV4Y2x1c2l2ZWx5RnJvbU1haW5Eb2N1bWVudERv
bWFpbjoKICAgICAgICAgcmV0dXJuIGtXS0hUVFBDb29raWVBY2NlcHRQb2xpY3lFeGNsdXNpdmVs
eUZyb21NYWluRG9jdW1lbnREb21haW47CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvQVBJSFRUUENvb2tpZVN0b3JlQ29jb2EubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvQVBJSFRUUENvb2tpZVN0b3JlQ29jb2EubW0K
aW5kZXggYWQxOTY3NjFkNDg0MDIxYWJiNjNmYzlkNWVkMDdlZDY1ZmZlNDRjYi4uNzkxMjAxYzQ3
N2U1ZDhhMTcxNzQxM2YwMjFlMmJmNzUyNTYzNjhjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL0FQSUhUVFBDb29raWVTdG9yZUNvY29hLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9BUElIVFRQQ29va2llU3RvcmVDb2NvYS5t
bQpAQCAtMjgsNiArMjgsNyBAQAogCiAjaW5jbHVkZSA8V2ViQ29yZS9Db29raWUuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL0Nvb2tpZVN0b3JhZ2VPYnNlcnZlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUv
SFRUUENvb2tpZUFjY2VwdFBvbGljeS5oPgogI2luY2x1ZGUgPHBhbC9zcGkvY2YvQ0ZOZXR3b3Jr
U1BJLmg+CiAKIG5hbWVzcGFjZSBBUEkgewpAQCAtNzUsMjMgKzc2LDIzIEBAIHZvaWQgSFRUUENv
b2tpZVN0b3JlOjpkZWxldGVDb29raWVzSW5EZWZhdWx0VUlQcm9jZXNzQ29va2llU3RvcmUoKQog
ICAgIFtbTlNIVFRQQ29va2llU3RvcmFnZSBzaGFyZWRIVFRQQ29va2llU3RvcmFnZV0gcmVtb3Zl
Q29va2llc1NpbmNlRGF0ZTpbTlNEYXRlIGRpc3RhbnRQYXN0XV07CiB9CiAKLXN0YXRpYyBOU0hU
VFBDb29raWVBY2NlcHRQb2xpY3kgdG9OU0hUVFBDb29raWVBY2NlcHRQb2xpY3koV2ViS2l0OjpI
VFRQQ29va2llQWNjZXB0UG9saWN5IHBvbGljeSkKK3N0YXRpYyBOU0hUVFBDb29raWVBY2NlcHRQ
b2xpY3kgdG9OU0hUVFBDb29raWVBY2NlcHRQb2xpY3koV2ViQ29yZTo6SFRUUENvb2tpZUFjY2Vw
dFBvbGljeSBwb2xpY3kpCiB7CiAgICAgc3dpdGNoIChwb2xpY3kpIHsKLSAgICBjYXNlIFdlYktp
dDo6SFRUUENvb2tpZUFjY2VwdFBvbGljeTo6QWx3YXlzQWNjZXB0OgorICAgIGNhc2UgV2ViQ29y
ZTo6SFRUUENvb2tpZUFjY2VwdFBvbGljeTo6QWx3YXlzQWNjZXB0OgogICAgICAgICByZXR1cm4g
TlNIVFRQQ29va2llQWNjZXB0UG9saWN5QWx3YXlzOwotICAgIGNhc2UgV2ViS2l0OjpIVFRQQ29v
a2llQWNjZXB0UG9saWN5OjpOZXZlcjoKKyAgICBjYXNlIFdlYkNvcmU6OkhUVFBDb29raWVBY2Nl
cHRQb2xpY3k6Ok5ldmVyOgogICAgICAgICByZXR1cm4gTlNIVFRQQ29va2llQWNjZXB0UG9saWN5
TmV2ZXI7Ci0gICAgY2FzZSBXZWJLaXQ6OkhUVFBDb29raWVBY2NlcHRQb2xpY3k6Ok9ubHlGcm9t
TWFpbkRvY3VtZW50RG9tYWluOgorICAgIGNhc2UgV2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBv
bGljeTo6T25seUZyb21NYWluRG9jdW1lbnREb21haW46CiAgICAgICAgIHJldHVybiBOU0hUVFBD
b29raWVBY2NlcHRQb2xpY3lPbmx5RnJvbU1haW5Eb2N1bWVudERvbWFpbjsKLSAgICBjYXNlIFdl
YktpdDo6SFRUUENvb2tpZUFjY2VwdFBvbGljeTo6RXhjbHVzaXZlbHlGcm9tTWFpbkRvY3VtZW50
RG9tYWluOgorICAgIGNhc2UgV2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBvbGljeTo6RXhjbHVz
aXZlbHlGcm9tTWFpbkRvY3VtZW50RG9tYWluOgogICAgICAgICByZXR1cm4gKE5TSFRUUENvb2tp
ZUFjY2VwdFBvbGljeSlOU0hUVFBDb29raWVBY2NlcHRQb2xpY3lFeGNsdXNpdmVseUZyb21NYWlu
RG9jdW1lbnREb21haW47CiAgICAgfQogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIHJl
dHVybiBOU0hUVFBDb29raWVBY2NlcHRQb2xpY3lBbHdheXM7CiB9CiAKLXZvaWQgSFRUUENvb2tp
ZVN0b3JlOjpzZXRIVFRQQ29va2llQWNjZXB0UG9saWN5SW5EZWZhdWx0VUlQcm9jZXNzQ29va2ll
U3RvcmUoV2ViS2l0OjpIVFRQQ29va2llQWNjZXB0UG9saWN5IHBvbGljeSkKK3ZvaWQgSFRUUENv
b2tpZVN0b3JlOjpzZXRIVFRQQ29va2llQWNjZXB0UG9saWN5SW5EZWZhdWx0VUlQcm9jZXNzQ29v
a2llU3RvcmUoV2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBvbGljeSBwb2xpY3kpCiB7CiAgICAg
W1tOU0hUVFBDb29raWVTdG9yYWdlIHNoYXJlZEhUVFBDb29raWVTdG9yYWdlXSBzZXRDb29raWVB
Y2NlcHRQb2xpY3k6dG9OU0hUVFBDb29raWVBY2NlcHRQb2xpY3kocG9saWN5KV07CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tIVFRQQ29va2llU3Rv
cmUubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tIVFRQQ29va2llU3Rv
cmUubW0KaW5kZXggODFkMzcwM2IwZWVhODJlNWU2YzYyZjMyMjJhYzRlNjgxOWY2YjNhNi4uOWI0
NjYzYzRjYWI2ODRlM2Q3NGM5NjU2MzhmYjJlMmZjNjgzYjgzNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLSFRUUENvb2tpZVN0b3JlLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0hUVFBDb29raWVTdG9yZS5tbQpAQCAt
MjYsOCArMjYsOCBAQAogI2ltcG9ydCAiY29uZmlnLmgiCiAjaW1wb3J0ICJXS0hUVFBDb29raWVT
dG9yZUludGVybmFsLmgiCiAKLSNpbXBvcnQgIkhUVFBDb29raWVBY2NlcHRQb2xpY3kuaCIKICNp
bXBvcnQgPFdlYkNvcmUvQ29va2llLmg+CisjaW1wb3J0IDxXZWJDb3JlL0hUVFBDb29raWVBY2Nl
cHRQb2xpY3kuaD4KICNpbXBvcnQgPHBhbC9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmg+CiAjaW1wb3J0
IDx3dGYvSGFzaE1hcC5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2wubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5tbQppbmRleCAwOGU1
YjlmMDEzNWVhZmUxYWE4ZjRkZTRhODJiNmI4OTBiYjkxOWIzLi4zZmZjZmI4OTMzN2ZmMDk0NDlm
OGFhOWYyOGZkZmJjZDQyZWJmZTRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5tbQpAQCAtMjAwLDIxICsyMDAsMjEgQEAgLSAodm9p
ZClfc2V0Q2FuSGFuZGxlSFRUUFNTZXJ2ZXJUcnVzdEV2YWx1YXRpb246KEJPT0wpdmFsdWUKIHsK
IH0KIAotc3RhdGljIFdlYktpdDo6SFRUUENvb2tpZUFjY2VwdFBvbGljeSB0b0hUVFBDb29raWVB
Y2NlcHRQb2xpY3koTlNIVFRQQ29va2llQWNjZXB0UG9saWN5IHBvbGljeSkKK3N0YXRpYyBXZWJD
b3JlOjpIVFRQQ29va2llQWNjZXB0UG9saWN5IHRvSFRUUENvb2tpZUFjY2VwdFBvbGljeShOU0hU
VFBDb29raWVBY2NlcHRQb2xpY3kgcG9saWN5KQogewogICAgIHN3aXRjaCAoc3RhdGljX2Nhc3Q8
TlNVSW50ZWdlcj4ocG9saWN5KSkgewogICAgIGNhc2UgTlNIVFRQQ29va2llQWNjZXB0UG9saWN5
QWx3YXlzOgotICAgICAgICByZXR1cm4gV2ViS2l0OjpIVFRQQ29va2llQWNjZXB0UG9saWN5OjpB
bHdheXNBY2NlcHQ7CisgICAgICAgIHJldHVybiBXZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0UG9s
aWN5OjpBbHdheXNBY2NlcHQ7CiAgICAgY2FzZSBOU0hUVFBDb29raWVBY2NlcHRQb2xpY3lOZXZl
cjoKLSAgICAgICAgcmV0dXJuIFdlYktpdDo6SFRUUENvb2tpZUFjY2VwdFBvbGljeTo6TmV2ZXI7
CisgICAgICAgIHJldHVybiBXZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0UG9saWN5OjpOZXZlcjsK
ICAgICBjYXNlIE5TSFRUUENvb2tpZUFjY2VwdFBvbGljeU9ubHlGcm9tTWFpbkRvY3VtZW50RG9t
YWluOgotICAgICAgICByZXR1cm4gV2ViS2l0OjpIVFRQQ29va2llQWNjZXB0UG9saWN5OjpPbmx5
RnJvbU1haW5Eb2N1bWVudERvbWFpbjsKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkhUVFBDb29r
aWVBY2NlcHRQb2xpY3k6Ok9ubHlGcm9tTWFpbkRvY3VtZW50RG9tYWluOwogICAgIGNhc2UgTlNI
VFRQQ29va2llQWNjZXB0UG9saWN5RXhjbHVzaXZlbHlGcm9tTWFpbkRvY3VtZW50RG9tYWluOgot
ICAgICAgICByZXR1cm4gV2ViS2l0OjpIVFRQQ29va2llQWNjZXB0UG9saWN5OjpFeGNsdXNpdmVs
eUZyb21NYWluRG9jdW1lbnREb21haW47CisgICAgICAgIHJldHVybiBXZWJDb3JlOjpIVFRQQ29v
a2llQWNjZXB0UG9saWN5OjpFeGNsdXNpdmVseUZyb21NYWluRG9jdW1lbnREb21haW47CiAgICAg
fQogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIFdlYktpdDo6SFRUUENv
b2tpZUFjY2VwdFBvbGljeTo6QWx3YXlzQWNjZXB0OworICAgIHJldHVybiBXZWJDb3JlOjpIVFRQ
Q29va2llQWNjZXB0UG9saWN5OjpBbHdheXNBY2NlcHQ7CiB9CiAKIC0gKHZvaWQpX3NldENvb2tp
ZUFjY2VwdFBvbGljeTooTlNIVFRQQ29va2llQWNjZXB0UG9saWN5KXBvbGljeQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNw
cCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5j
cHAKaW5kZXggOWNiOTBmMThjNTQyYzZhYTU2ZmFlYjYwMDdkMjZmZGYxZDBiZWE4ZS4uYmExNmUz
MjYwNWIyMGFlNjJlMzc2OTdkMTBhYzk4YTU0MWUxNzNlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCkBAIC0x
NDcsNyArMTQ3LDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpnZXROZXR3b3JrUHJvY2Vz
c0Nvbm5lY3Rpb24oV2ViUHJvY2Vzc1Byb3h5JiB3ZWJQcm9jZXMKIAogdm9pZCBOZXR3b3JrUHJv
Y2Vzc1Byb3h5OjpvcGVuTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKHVpbnQ2NF90IGNvbm5lY3Rp
b25SZXF1ZXN0SWRlbnRpZmllciwgV2ViUHJvY2Vzc1Byb3h5JiB3ZWJQcm9jZXNzUHJveHkpCiB7
Ci0gICAgY29ubmVjdGlvbigpLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQ
cm9jZXNzOjpDcmVhdGVOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyB7IHdlYlByb2Nlc3NQ
cm94eS5jb3JlUHJvY2Vzc0lkZW50aWZpZXIoKSwgd2ViUHJvY2Vzc1Byb3h5LnNlc3Npb25JRCgp
IH0sIFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpLCB3ZWJQcm9jZXNzUHJveHkg
PSBtYWtlV2Vha1B0cih3ZWJQcm9jZXNzUHJveHkpLCBjb25uZWN0aW9uUmVxdWVzdElkZW50aWZp
ZXJdKGF1dG8mJiBjb25uZWN0aW9uSWRlbnRpZmllcikgbXV0YWJsZSB7CisgICAgY29ubmVjdGlv
bigpLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpDcmVhdGVO
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyB7IHdlYlByb2Nlc3NQcm94eS5jb3JlUHJvY2Vz
c0lkZW50aWZpZXIoKSwgd2ViUHJvY2Vzc1Byb3h5LnNlc3Npb25JRCgpIH0sIFt0aGlzLCB3ZWFr
VGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpLCB3ZWJQcm9jZXNzUHJveHkgPSBtYWtlV2Vha1B0cih3
ZWJQcm9jZXNzUHJveHkpLCBjb25uZWN0aW9uUmVxdWVzdElkZW50aWZpZXJdKGF1dG8mJiBjb25u
ZWN0aW9uSWRlbnRpZmllciwgSFRUUENvb2tpZUFjY2VwdFBvbGljeSBjb29raWVBY2NlcHRQb2xp
Y3kpIG11dGFibGUgewogICAgICAgICBpZiAoIXdlYWtUaGlzKQogICAgICAgICAgICAgcmV0dXJu
OwogCkBAIC0xNjEsMTAgKzE2MSwxMCBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6Om9wZW5O
ZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24odWludDY0X3QgY29ubmVjdGlvblJlcXVlcwogICAgICAg
ICBhdXRvIHJlcXVlc3QgPSBtX2Nvbm5lY3Rpb25SZXF1ZXN0cy50YWtlKGNvbm5lY3Rpb25SZXF1
ZXN0SWRlbnRpZmllcik7CiAKICNpZiBVU0UoVU5JWF9ET01BSU5fU09DS0VUUykgfHwgT1MoV0lO
RE9XUykKLSAgICAgICAgcmVxdWVzdC5yZXBseShOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25JbmZv
IHsgV1RGTW92ZSgqY29ubmVjdGlvbklkZW50aWZpZXIpIH0pOworICAgICAgICByZXF1ZXN0LnJl
cGx5KE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbkluZm8geyBXVEZNb3ZlKCpjb25uZWN0aW9uSWRl
bnRpZmllciksIGNvb2tpZUFjY2VwdFBvbGljeSB9KTsKICNlbGlmIE9TKERBUldJTikKICAgICAg
ICAgTUVTU0FHRV9DSEVDSyhNQUNIX1BPUlRfVkFMSUQoY29ubmVjdGlvbklkZW50aWZpZXItPnBv
cnQoKSkpOwotICAgICAgICByZXF1ZXN0LnJlcGx5KE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbklu
Zm8geyBJUEM6OkF0dGFjaG1lbnQgeyBjb25uZWN0aW9uSWRlbnRpZmllci0+cG9ydCgpLCBNQUNI
X01TR19UWVBFX01PVkVfU0VORCB9LCBjb25uZWN0aW9uKCktPmdldEF1ZGl0VG9rZW4oKSB9KTsK
KyAgICAgICAgcmVxdWVzdC5yZXBseShOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25JbmZvIHsgSVBD
OjpBdHRhY2htZW50IHsgY29ubmVjdGlvbklkZW50aWZpZXItPnBvcnQoKSwgTUFDSF9NU0dfVFlQ
RV9NT1ZFX1NFTkQgfSwgY29va2llQWNjZXB0UG9saWN5LCBjb25uZWN0aW9uKCktPmdldEF1ZGl0
VG9rZW4oKSB9KTsKICNlbHNlCiAgICAgICAgIG5vdEltcGxlbWVudGVkKCk7CiAjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eS5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5LmgKaW5kZXgg
NThiODJmZDEwYzhjMjYyMTU0ODkwMWIxMzVkNWZlOWE4ZDk3NWJkNC4uMGJkZmMwZDRlNDdjNDM2
ZjU4NWNmMjljMDlkNTFhMjliYzgxMWE5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViQ29va2llTWFuYWdlclByb3h5LmgKQEAgLTUzLDcgKzUzLDcgQEAgY2xhc3MgV2ViUHJv
Y2Vzc1Bvb2w7CiBjbGFzcyBXZWJQcm9jZXNzUHJveHk7CiAKIHR5cGVkZWYgR2VuZXJpY0NhbGxi
YWNrPEFQSTo6QXJyYXkqPiBBcnJheUNhbGxiYWNrOwotdHlwZWRlZiBHZW5lcmljQ2FsbGJhY2s8
SFRUUENvb2tpZUFjY2VwdFBvbGljeT4gSFRUUENvb2tpZUFjY2VwdFBvbGljeUNhbGxiYWNrOwor
dHlwZWRlZiBHZW5lcmljQ2FsbGJhY2s8V2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBvbGljeT4g
SFRUUENvb2tpZUFjY2VwdFBvbGljeUNhbGxiYWNrOwogdHlwZWRlZiBHZW5lcmljQ2FsbGJhY2s8
Y29uc3QgVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4mPiBHZXRDb29raWVzQ2FsbGJhY2s7CiAKIGNs
YXNzIFdlYkNvb2tpZU1hbmFnZXJQcm94eSA6IHB1YmxpYyBBUEk6Ok9iamVjdEltcGw8QVBJOjpP
YmplY3Q6OlR5cGU6OkNvb2tpZU1hbmFnZXI+LCBwdWJsaWMgV2ViQ29udGV4dFN1cHBsZW1lbnQs
IHByaXZhdGUgSVBDOjpNZXNzYWdlUmVjZWl2ZXIgewpAQCAtNzcsOCArNzcsOCBAQCBwdWJsaWM6
CiAgICAgdm9pZCBnZXRBbGxDb29raWVzKFBBTDo6U2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKFZlY3RvcjxXZWJDb3JlOjpDb29raWU+JiYpPiYmKTsKICAgICB2b2lkIGdldENvb2tp
ZXMoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFVSTCYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVj
dG9yPFdlYkNvcmU6OkNvb2tpZT4mJik+JiYpOwogCi0gICAgdm9pZCBzZXRIVFRQQ29va2llQWNj
ZXB0UG9saWN5KFBBTDo6U2Vzc2lvbklELCBIVFRQQ29va2llQWNjZXB0UG9saWN5LCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwotICAgIHZvaWQgZ2V0SFRUUENvb2tpZUFjY2VwdFBvbGlj
eShQQUw6OlNlc3Npb25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChIVFRQQ29va2llQWNjZXB0
UG9saWN5KT4mJik7CisgICAgdm9pZCBzZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KFBBTDo6U2Vz
c2lvbklELCBXZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0UG9saWN5LCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKCk+JiYpOworICAgIHZvaWQgZ2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShQQUw6OlNl
c3Npb25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0
UG9saWN5KT4mJik7CiAKICAgICB2b2lkIHN0YXJ0T2JzZXJ2aW5nQ29va2llQ2hhbmdlcyhQQUw6
OlNlc3Npb25JRCk7CiAgICAgdm9pZCBzdG9wT2JzZXJ2aW5nQ29va2llQ2hhbmdlcyhQQUw6OlNl
c3Npb25JRCk7CkBAIC0xMTksNyArMTE5LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZFJlY2Vp
dmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIG92ZXJyaWRlOwogCiAj
aWYgUExBVEZPUk0oQ09DT0EpCi0gICAgdm9pZCBwZXJzaXN0SFRUUENvb2tpZUFjY2VwdFBvbGlj
eShIVFRQQ29va2llQWNjZXB0UG9saWN5KTsKKyAgICB2b2lkIHBlcnNpc3RIVFRQQ29va2llQWNj
ZXB0UG9saWN5KFdlYkNvcmU6OkhUVFBDb29raWVBY2NlcHRQb2xpY3kpOwogI2VuZGlmCiAKICAg
ICBIYXNoTWFwPFBBTDo6U2Vzc2lvbklELCBXVEY6OkZ1bmN0aW9uPHZvaWQgKCk+PiBtX2xlZ2Fj
eUNvb2tpZU9ic2VydmVyczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlByb2Nlc3NQb29sLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5o
CmluZGV4IDFkYmQxODFkNDEzZThmYmE0MDVkODFiYzBhNGY5NGU0ZTc5NjJiOTguLmE1MDFkZTM3
Mzc1ZDc4MDhlYjMyZDE2MGVlM2Y0MTU5ODA5MGE4ZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUHJvY2Vzc1Bvb2wuaApAQCAtMjk0LDcgKzI5NCw3IEBAIHB1YmxpYzoKICAgICB2b2lk
IHN0b3BNZW1vcnlTYW1wbGVyKCk7CiAKICNpZiBVU0UoU09VUCkKLSAgICB2b2lkIHNldEluaXRp
YWxIVFRQQ29va2llQWNjZXB0UG9saWN5KEhUVFBDb29raWVBY2NlcHRQb2xpY3kgcG9saWN5KSB7
IG1faW5pdGlhbEhUVFBDb29raWVBY2NlcHRQb2xpY3kgPSBwb2xpY3k7IH0KKyAgICB2b2lkIHNl
dEluaXRpYWxIVFRQQ29va2llQWNjZXB0UG9saWN5KFdlYkNvcmU6OkhUVFBDb29raWVBY2NlcHRQ
b2xpY3kgcG9saWN5KSB7IG1faW5pdGlhbEhUVFBDb29raWVBY2NlcHRQb2xpY3kgPSBwb2xpY3k7
IH0KICAgICB2b2lkIHNldE5ldHdvcmtQcm94eVNldHRpbmdzKGNvbnN0IFdlYkNvcmU6OlNvdXBO
ZXR3b3JrUHJveHlTZXR0aW5ncyYpOwogI2VuZGlmCiAgICAgdm9pZCBzZXRFbmhhbmNlZEFjY2Vz
c2liaWxpdHkoYm9vbCk7CkBAIC02NzcsNyArNjc3LDcgQEAgcHJpdmF0ZToKICAgICBXZWJDb250
ZXh0U3VwcGxlbWVudE1hcCBtX3N1cHBsZW1lbnRzOwogCiAjaWYgVVNFKFNPVVApCi0gICAgSFRU
UENvb2tpZUFjY2VwdFBvbGljeSBtX2luaXRpYWxIVFRQQ29va2llQWNjZXB0UG9saWN5IHsgSFRU
UENvb2tpZUFjY2VwdFBvbGljeTo6T25seUZyb21NYWluRG9jdW1lbnREb21haW4gfTsKKyAgICBI
VFRQQ29va2llQWNjZXB0UG9saWN5IG1faW5pdGlhbEhUVFBDb29raWVBY2NlcHRQb2xpY3kgeyBX
ZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0UG9saWN5OjpPbmx5RnJvbU1haW5Eb2N1bWVudERvbWFp
biB9OwogICAgIFdlYkNvcmU6OlNvdXBOZXR3b3JrUHJveHlTZXR0aW5ncyBtX25ldHdvcmtQcm94
eVNldHRpbmdzOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCmluZGV4IDZhZGVhNTg1MGY4ODY0M2FmNzBmODk1MDMxYjM4NjE1NmIy
ZTQzZjguLmU4Nzg3ODk5ZWYwMmZmMGViOGY0NWYwZTExZjI2MzdiM2RjZjBiN2IgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIv
U291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtODgyLDcg
Kzg4Miw2IEBACiAJCTM3REZBNzAwMTgxMEJCOTIwMDFGNEE5RiAvKiBXS0ZvdW5kYXRpb24uaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDM3REZBNkZGMTgx
MEJCOTIwMDFGNEE5RiAvKiBXS0ZvdW5kYXRpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQdWJsaWMsICk7IH07IH07CiAJCTM3RTI1RDZFMThGREU1RDYwMDVEM0EwMCAvKiBBUElG
b3JtQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAzN0UyNUQ2RDE4RkRFNUQ2MDA1RDNBMDAgLyogQVBJRm9ybUNsaWVudC5oICovOyB9OwogCQkz
N0Y2MjNCODEyQTU3QjYyMDBFM0ZERjYgLyogV0tGaW5kT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzdGNjIzQjcxMkE1N0I2MjAwRTNGREY2
IC8qIFdLRmluZE9wdGlvbnMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwotCQkzN0Y5MERFMzEzNzY1NjBFMDA1MUNGNjggLyogSFRUUENvb2tpZUFjY2Vw
dFBvbGljeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RjYzODk1NEYxMzNCRUYzODAwODk0MUQ1IC8qIEhUVFBDb29raWVBY2NlcHRQb2xpY3kuaCAqLzsg
fTsKIAkJMzdGQzE5NDcxODUwRkJGMjAwOENGQTQ3IC8qIFdLQnJvd3NpbmdDb250ZXh0TG9hZERl
bGVnYXRlUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMzdGQzE5NDYxODUwRkJGMjAwOENGQTQ3IC8qIFdLQnJvd3NpbmdDb250ZXh0TG9hZERl
bGVnYXRlUHJpdmF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTM3RkMxOTRCMTg1MTBENkEwMDhDRkE0NyAvKiBXS05TVVJMQXV0aGVudGljYXRp
b25DaGFsbGVuZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDM3RkMxOTQ5MTg1MTBENkEwMDhDRkE0NyAvKiBXS05TVVJMQXV0aGVudGljYXRpb25DaGFs
bGVuZ2UuaCAqLzsgfTsKIAkJM0Y0MThFRjkxODg3QkQ5NzAwMjc5NUZEIC8qIFZpZGVvRnVsbHNj
cmVlbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gM0Y0MThFRjUxODg3QkQ5NzAwMjc5NUZEIC8qIFZpZGVvRnVs
bHNjcmVlbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OwpAQCAtMjExOSw5ICsyMTE4
LDkgQEAKIAkJMDdCOTNGRjUyM0FGMENCODAwMzZGOEVBIC8qIFJlbW90ZU1lZGlhUGxheWVyQ29u
ZmlndXJhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVNZWRpYVBsYXllckNvbmZpZ3VyYXRp
b24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDdCQUYzNTYyM0EyQ0MxNzAwNDQy
NTdFIC8qIFJlbW90ZU1lZGlhUGxheWVyUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlTWVk
aWFQbGF5ZXJQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwN0JBRjM1NzIz
QTJDQzE5MDA0NDI1N0UgLyogUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBSZW1vdGVNZWRpYVBsYXllclByb3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJMDdFMTlFRjgyM0Q0MDFGMDAwOTRGRkI0IC8qIE1lZGlhUGxheWVyUHJpdmF0ZVJl
bW90ZU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5h
bWUgPSBNZWRpYVBsYXllclByaXZhdGVSZW1vdGVNZXNzYWdlUmVjZWl2ZXIuY3BwOyBwYXRoID0g
TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKLQkJMDdFMTlFRjkyM0Q0MDFGMDAwOTRGRkI0IC8qIE1lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZU1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9
IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZU1lc3NhZ2VzLmg7IHBhdGggPSBNZWRpYVBsYXllclBy
aXZhdGVSZW1vdGVNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwN0Ux
OUVGQTIzRDQwMUYwMDA5NEZGQjQgLyogTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlTWVzc2FnZXNS
ZXBsaWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IE1lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZU1lc3NhZ2VzUmVwbGllcy5oOyBwYXRoID0gTWVkaWFQbGF5ZXJQcml2YXRlUmVt
b3RlTWVzc2FnZXNSZXBsaWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA3RTE5
RUY4MjNENDAxRjAwMDk0RkZCNCAvKiBNZWRpYVBsYXllclByaXZhdGVSZW1vdGVNZXNzYWdlUmVj
ZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJMDdFMTlFRjkyM0Q0MDFGMDAwOTRGRkI0IC8qIE1lZGlhUGxheWVyUHJpdmF0ZVJl
bW90ZU1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhUGxh
eWVyUHJpdmF0ZVJlbW90ZU1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTA3RTE5RUZBMjNENDAxRjAwMDk0RkZCNCAvKiBNZWRpYVBsYXllclByaXZhdGVSZW1vdGVNZXNz
YWdlc1JlcGxpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlTWVzc2FnZXNSZXBsaWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTA4NjdENkE1RkU4NDAzMDdDMDJBQUMwNyAvKiBBcHBLaXQuZnJhbWV3b3JrICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gd3JhcHBlci5mcmFt
ZXdvcms7IG5hbWUgPSBBcHBLaXQuZnJhbWV3b3JrOyBwYXRoID0gL1N5c3RlbS9MaWJyYXJ5L0Zy
YW1ld29ya3MvQXBwS2l0LmZyYW1ld29yazsgc291cmNlVHJlZSA9ICI8YWJzb2x1dGU+IjsgfTsK
IAkJMDg5QzE2NjdGRTg0MTE1OEMwMkFBQzA3IC8qIGVuICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5wbGlzdC5z
dHJpbmdzOyBuYW1lID0gZW47IHBhdGggPSBlbi5scHJvai9JbmZvUGxpc3Quc3RyaW5nczsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEU5N0Q3NEMyMDBFOEZGMzAwQkY2NjQzIC8qIFNh
ZmVCcm93c2luZ1NQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTYWZlQnJvd3NpbmdTUEkuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTUxMzAsNyArNTEyOSw2IEBACiAJCUY2MTEzRTI2MTI2
Q0UxOUIwMDU3RDBBNyAvKiBXS1VzZXJDb250ZW50VVJMUGF0dGVybi5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXS1VzZXJDb250ZW50VVJMUGF0dGVybi5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY2MTEzRTI3MTI2Q0UxOUIwMDU3RDBBNyAvKiBX
S1VzZXJDb250ZW50VVJMUGF0dGVybi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBXS1VzZXJDb250ZW50VVJMUGF0dGVybi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlGNjM0NDQ1NTEyQTg4NUM4MDAwNjEyRDggLyogQVBJU2VjdXJpdHlPcmlnaW4uaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQVBJU2VjdXJpdHlPcmlnaW4uaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRjYzODk1NEYxMzNCRUYzODAwODk0MUQ1IC8qIEhUVFBDb29r
aWVBY2NlcHRQb2xpY3kuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSFRUUENv
b2tpZUFjY2VwdFBvbGljeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNkEwQzEz
RjEzMjgxRTZFMDA3MDQzMEYgLyogUmVzb3VyY2VDYWNoZXNUb0NsZWFyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlc291cmNlQ2FjaGVzVG9DbGVhci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlGNkE5MDgxMTEzM0MxRjNEMDA4MkMzRjQgLyogV2ViQ29va2ll
TWFuYWdlck1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdl
YkNvb2tpZU1hbmFnZXJNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY2RDYz
MkJBMTMzRDE4MUIwMDc0M0Q3NyAvKiBXZWJDb29raWVNYW5hZ2VyUHJveHlNYWMubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJDb29raWVNYW5hZ2VyUHJveHlN
YWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC01Njk3LDcgKzU2OTUsNiBAQAog
CQkJCTFBMTRGOERGMUQ3NEM4MzQwMDZDQkVDNiAvKiBGcmFtZUluZm9EYXRhLmNwcCAqLywKIAkJ
CQkxQTE0RjhFMDFENzRDODM0MDA2Q0JFQzYgLyogRnJhbWVJbmZvRGF0YS5oICovLAogCQkJCTFB
Qzc1QTFBMUIzMzY4MjcwMDU2NzQ1QiAvKiBIYW5nRGV0ZWN0aW9uRGlzYWJsZXIuaCAqLywKLQkJ
CQlGNjM4OTU0RjEzM0JFRjM4MDA4OTQxRDUgLyogSFRUUENvb2tpZUFjY2VwdFBvbGljeS5oICov
LAogCQkJCUJDQ0Y2QjIzMTJDOTNFN0EwMDhGOUMzNSAvKiBJbWFnZU9wdGlvbnMuaCAqLywKIAkJ
CQkxQTkyREMxMjEyRjhCQUI5MDAxN0FGNjUgLyogTGF5ZXJUcmVlQ29udGV4dC5jcHAgKi8sCiAJ
CQkJMUE5MkRDMTAxMkY4QkE0NjAwMTdBRjY1IC8qIExheWVyVHJlZUNvbnRleHQuaCAqLywKQEAg
LTEwMjE4LDcgKzEwMjE1LDYgQEAKIAkJCQk1NzcyRjIwNjIxN0RCRDZBMDA1NkJGMkMgLyogSGlk
U2VydmljZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzEyQ0M5RjIyMTVCMDZGMTAwREU0MENBIC8q
IEhpZ2hQZXJmb3JtYW5jZUdQVU1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTgzOUEyRjMy
MUUyMDY3NDUwMDM5MDU3RSAvKiBIaWdoUGVyZm9ybWFuY2VHcmFwaGljc1VzYWdlU2FtcGxlci5o
IGluIEhlYWRlcnMgKi8sCi0JCQkJMzdGOTBERTMxMzc2NTYwRTAwNTFDRjY4IC8qIEhUVFBDb29r
aWVBY2NlcHRQb2xpY3kuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxQzBDOTc0MURERDc2MDAwMDMy
Q0FEMyAvKiBJY29uTG9hZGluZ0RlbGVnYXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MUUzNTFD
QjE4MEYyQ0NDMDBFNTNCRTkgLyogSURCVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQlC
Q0NGNkIyNTEyQzkzRTdBMDA4RjlDMzUgLyogSW1hZ2VPcHRpb25zLmggaW4gSGVhZGVycyAqLywK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9j
ZXNzQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3
b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCmluZGV4IGZkMDBkNzg2NGI1YTUzZmI3NDMwZTE2Yjg3
MGNhNjJjYjAwYWRkYTQuLjFlNzAzNTRmNmI3MTQxOTYwMmQ5NGIwZjU0MzMxMzJhNjM0MTE4NzQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9j
ZXNzQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsv
TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmNwcApAQCAtNTYsNiArNTYsNyBAQAogI2luY2x1ZGUg
IldlYlNvY2tldFN0cmVhbS5oIgogI2luY2x1ZGUgIldlYlNvY2tldFN0cmVhbU1lc3NhZ2VzLmgi
CiAjaW5jbHVkZSA8V2ViQ29yZS9DYWNoZWRSZXNvdXJjZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUv
SFRUUENvb2tpZUFjY2VwdFBvbGljeS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTWVtb3J5Q2FjaGUu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL01lc3NhZ2VQb3J0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9T
aGFyZWRCdWZmZXIuaD4KQEAgLTY4LDggKzY5LDkgQEAKIG5hbWVzcGFjZSBXZWJLaXQgewogdXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKLU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6TmV0d29y
a1Byb2Nlc3NDb25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciBjb25uZWN0aW9u
SWRlbnRpZmllcikKK05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6TmV0d29ya1Byb2Nlc3NDb25u
ZWN0aW9uKElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRpZmllciwg
SFRUUENvb2tpZUFjY2VwdFBvbGljeSBjb29raWVBY2NlcHRQb2xpY3kpCiAgICAgOiBtX2Nvbm5l
Y3Rpb24oSVBDOjpDb25uZWN0aW9uOjpjcmVhdGVDbGllbnRDb25uZWN0aW9uKGNvbm5lY3Rpb25J
ZGVudGlmaWVyLCAqdGhpcykpCisgICAgLCBtX2Nvb2tpZUFjY2VwdFBvbGljeShjb29raWVBY2Nl
cHRQb2xpY3kpCiB7CiAgICAgbV9jb25uZWN0aW9uLT5vcGVuKCk7CiB9CkBAIC0yMDQsNyArMjA2
LDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVJbnZhbGlkTWVz
c2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OlMKIAogdm9pZCBOZXR3b3JrUHJvY2Vzc0Nvbm5l
Y3Rpb246OndyaXRlQmxvYnNUb1RlbXBvcmFyeUZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBi
bG9iVVJMcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8U3RyaW5nPiYmIGZpbGVQYXRo
cyk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCku
ZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmRXaXRoQXN5
bmNSZXBseShNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OldyaXRlQmxv
YnNUb1RlbXBvcmFyeUZpbGVzKGJsb2JVUkxzKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikp
OworICAgIGNvbm5lY3Rpb24oKS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzOjpXcml0ZUJsb2JzVG9UZW1wb3JhcnlGaWxlcyhibG9iVVJM
cyksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAogdm9pZCBOZXR3b3JrUHJvY2Vz
c0Nvbm5lY3Rpb246OmRpZEZpbmlzaFBpbmdMb2FkKHVpbnQ2NF90IHBpbmdMb2FkSWRlbnRpZmll
ciwgUmVzb3VyY2VFcnJvciYmIGVycm9yLCBSZXNvdXJjZVJlc3BvbnNlJiYgcmVzcG9uc2UpCkBA
IC0yMjIsNiArMjI0LDE2IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpzZXRPbkxp
bmVTdGF0ZShib29sIGlzT25MaW5lKQogICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYkxv
YWRlclN0cmF0ZWd5KCkuc2V0T25MaW5lU3RhdGUoaXNPbkxpbmUpOwogfQogCitib29sIE5ldHdv
cmtQcm9jZXNzQ29ubmVjdGlvbjo6Y29va2llc0VuYWJsZWQoKQoreworICAgIHJldHVybiBtX2Nv
b2tpZUFjY2VwdFBvbGljeSAhPSBIVFRQQ29va2llQWNjZXB0UG9saWN5OjpOZXZlcjsKK30KKwor
dm9pZCBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OmNvb2tpZUFjY2VwdFBvbGljeUNoYW5nZWQo
SFRUUENvb2tpZUFjY2VwdFBvbGljeSBuZXdQb2xpY3kpCit7CisgICAgbV9jb29raWVBY2NlcHRQ
b2xpY3kgPSBuZXdQb2xpY3k7Cit9CisKICNpZiBFTkFCTEUoU0hBUkVBQkxFX1JFU09VUkNFKQog
dm9pZCBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZENhY2hlUmVzb3VyY2UoY29uc3QgUmVz
b3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBTaGFyZWFibGVSZXNvdXJjZTo6SGFuZGxlJiBo
YW5kbGUpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9O
ZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3
b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5oCmluZGV4IDJhNDk2YTllNGU0MzM5ZWIwNTg0
YWEyMjY0MjFmNjIwYjEwZGRjZGIuLmRkMTA0MTY3ZjU0MTQ4MDNhNTJhMjI1YTNhZmVjZmZjZjk0
ZDBjNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdv
cmtQcm9jZXNzQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3
b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5oCkBAIC00Myw2ICs0Myw3IEBAIGNsYXNzIFJl
c291cmNlUmVxdWVzdDsKIGNsYXNzIFJlc291cmNlUmVzcG9uc2U7CiBzdHJ1Y3QgTWVzc2FnZVBv
cnRJZGVudGlmaWVyOwogc3RydWN0IE1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzOworZW51bSBjbGFz
cyBIVFRQQ29va2llQWNjZXB0UG9saWN5IDogdWludDhfdDsKIH0KIAogbmFtZXNwYWNlIFdlYktp
dCB7CkBAIC01NCw5ICs1NSw5IEBAIHR5cGVkZWYgdWludDY0X3QgUmVzb3VyY2VMb2FkSWRlbnRp
ZmllcjsKIAogY2xhc3MgTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uIDogcHVibGljIFJlZkNvdW50
ZWQ8TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uPiwgSVBDOjpDb25uZWN0aW9uOjpDbGllbnQgewog
cHVibGljOgotICAgIHN0YXRpYyBSZWY8TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uPiBjcmVhdGUo
SVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyKQorICAgIHN0
YXRpYyBSZWY8TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uPiBjcmVhdGUoSVBDOjpDb25uZWN0aW9u
OjpJZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpIVFRQQ29va2llQWNj
ZXB0UG9saWN5IGh0dHBDb29raWVBY2NlcHRQb2xpY3kpCiAgICAgewotICAgICAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oY29ubmVjdGlvbklkZW50aWZp
ZXIpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTmV0d29ya1Byb2Nlc3NDb25uZWN0
aW9uKGNvbm5lY3Rpb25JZGVudGlmaWVyLCBodHRwQ29va2llQWNjZXB0UG9saWN5KSk7CiAgICAg
fQogICAgIH5OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKTsKICAgICAKQEAgLTgwLDggKzgxLDEw
IEBAIHB1YmxpYzoKICAgICBPcHRpb25hbDxhdWRpdF90b2tlbl90PiBuZXR3b3JrUHJvY2Vzc0F1
ZGl0VG9rZW4oKSBjb25zdCB7IHJldHVybiBtX25ldHdvcmtQcm9jZXNzQXVkaXRUb2tlbjsgfQog
I2VuZGlmCiAKKyAgICBib29sIGNvb2tpZXNFbmFibGVkKCk7CisKIHByaXZhdGU6Ci0gICAgTmV0
d29ya1Byb2Nlc3NDb25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllcik7CisgICAg
TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciwgV2Vi
Q29yZTo6SFRUUENvb2tpZUFjY2VwdFBvbGljeSk7CiAKICAgICAvLyBJUEM6OkNvbm5lY3Rpb246
OkNsaWVudAogICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBD
OjpEZWNvZGVyJikgb3ZlcnJpZGU7CkBAIC05Miw2ICs5NSw3IEBAIHByaXZhdGU6CiAgICAgdm9p
ZCBkaWRGaW5pc2hQaW5nTG9hZCh1aW50NjRfdCBwaW5nTG9hZElkZW50aWZpZXIsIFdlYkNvcmU6
OlJlc291cmNlRXJyb3ImJiwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmKTsKICAgICB2b2lk
IGRpZEZpbmlzaFByZWNvbm5lY3Rpb24odWludDY0X3QgcHJlY29ubmVjdGlvbklkZW50aWZpZXIs
IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImJik7CiAgICAgdm9pZCBzZXRPbkxpbmVTdGF0ZShib29s
IGlzT25MaW5lKTsKKyAgICB2b2lkIGNvb2tpZUFjY2VwdFBvbGljeUNoYW5nZWQoV2ViQ29yZTo6
SFRUUENvb2tpZUFjY2VwdFBvbGljeSk7CiAKICAgICB2b2lkIGNoZWNrUHJvY2Vzc0xvY2FsUG9y
dEZvckFjdGl2aXR5KGNvbnN0IFdlYkNvcmU6Ok1lc3NhZ2VQb3J0SWRlbnRpZmllciYsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6TWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXI6Okhh
c0FjdGl2aXR5KT4mJik7CiAgICAgdm9pZCBtZXNzYWdlc0F2YWlsYWJsZUZvclBvcnQoY29uc3Qg
V2ViQ29yZTo6TWVzc2FnZVBvcnRJZGVudGlmaWVyJik7CkBAIC0xMTQsNiArMTE4LDcgQEAgcHJp
dmF0ZToKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCiAgICAgUmVmUHRyPFdlYlNXQ2xpZW50
Q29ubmVjdGlvbj4gbV9zd0Nvbm5lY3Rpb247CiAjZW5kaWYKKyAgICBXZWJDb3JlOjpIVFRQQ29v
a2llQWNjZXB0UG9saWN5IG1fY29va2llQWNjZXB0UG9saWN5OwogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9O
ZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4KaW5kZXgg
NGQ2MzRjNTdiOWM3OTk1MDQ4YTA4MGYyN2YzZTMyZTUzMDUyNmFlYi4uMmFhNjg4NmU1N2E1OTlj
YmMxN2MzNWY2Yjc0ZTk5ZDJhYjNhODllNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlv
bi5tZXNzYWdlcy5pbgpAQCAtMjksNiArMjksNyBAQCBtZXNzYWdlcyAtPiBOZXR3b3JrUHJvY2Vz
c0Nvbm5lY3Rpb24gTGVnYWN5UmVjZWl2ZXIgewogICAgIERpZEZpbmlzaFBpbmdMb2FkKHVpbnQ2
NF90IHBpbmdMb2FkSWRlbnRpZmllciwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBlcnJvciwgV2Vi
Q29yZTo6UmVzb3VyY2VSZXNwb25zZSByZXNwb25zZSkKICAgICBEaWRGaW5pc2hQcmVjb25uZWN0
aW9uKHVpbnQ2NF90IHByZWNvbm5lY3Rpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZUVy
cm9yIGVycm9yKQogICAgIFNldE9uTGluZVN0YXRlKGJvb2wgaXNPbkxpbmUpOworICAgIENvb2tp
ZUFjY2VwdFBvbGljeUNoYW5nZWQoZW51bTp1aW50OF90IFdlYkNvcmU6OkhUVFBDb29raWVBY2Nl
cHRQb2xpY3kgcG9saWN5KTsKIAogICAgIENoZWNrUHJvY2Vzc0xvY2FsUG9ydEZvckFjdGl2aXR5
KHN0cnVjdCBXZWJDb3JlOjpNZXNzYWdlUG9ydElkZW50aWZpZXIgcG9ydCkgLT4gKFdlYkNvcmU6
Ok1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyOjpIYXNBY3Rpdml0eSBoYXNBY3Rpdml0eSkgQXN5
bmMKICAgICBNZXNzYWdlc0F2YWlsYWJsZUZvclBvcnQoc3RydWN0IFdlYkNvcmU6Ok1lc3NhZ2VQ
b3J0SWRlbnRpZmllciBwb3J0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uSW5mby5oIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uSW5mby5oCmluZGV4IDVj
MDU2OGM0YWExZjljZGZkODhjMzFhM2UzZmQ3YTRjZGJjODk0YTQuLjM2N2I4YTM4MDllMzdiMTVi
ZGJlMGI0NmE0MTg1Njc3N2ZiYWYyZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbkluZm8uaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25JbmZvLmgK
QEAgLTI1LDEwICsyNSwxMyBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgPFdlYkNvcmUv
SFRUUENvb2tpZUFjY2VwdFBvbGljeS5oPgorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogc3RydWN0
IE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbkluZm8gewogICAgIElQQzo6QXR0YWNobWVudCBjb25u
ZWN0aW9uOworICAgIFdlYkNvcmU6OkhUVFBDb29raWVBY2NlcHRQb2xpY3kgY29va2llQWNjZXB0
UG9saWN5OwogI2lmIEhBVkUoQVVESVRfVE9LRU4pCiAgICAgT3B0aW9uYWw8YXVkaXRfdG9rZW5f
dD4gYXVkaXRUb2tlbjsKICNlbmRpZgpAQCAtNjEsNiArNjQsNyBAQCBzdHJ1Y3QgTmV0d29ya1By
b2Nlc3NDb25uZWN0aW9uSW5mbyB7CiAgICAgdm9pZCBlbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNv
ZGVyKSBjb25zdAogICAgIHsKICAgICAgICAgZW5jb2RlciA8PCBjb25uZWN0aW9uOworICAgICAg
ICBlbmNvZGVyIDw8IGNvb2tpZUFjY2VwdFBvbGljeTsKICNpZiBIQVZFKEFVRElUX1RPS0VOKQog
ICAgICAgICBlbmNvZGVyIDw8IGF1ZGl0VG9rZW47CiAjZW5kaWYKQEAgLTcwLDYgKzc0LDggQEAg
c3RydWN0IE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbkluZm8gewogICAgIHsKICAgICAgICAgaWYg
KCFkZWNvZGVyLmRlY29kZShpbmZvLmNvbm5lY3Rpb24pKQogICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlRW51bShpbmZvLmNvb2tpZUFjY2VwdFBv
bGljeSkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAjaWYgSEFWRShBVURJVF9UT0tFTikK
ICAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShpbmZvLmF1ZGl0VG9rZW4pKQogICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViQ29va2llSmFyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYkNvb2tpZUphci5jcHAKaW5kZXggNTg4MGJiZmM0ZDk4NmMxZTUwMTg2OWRlOTU0ZDZhNTc5
MTg3M2NiNy4uMzI1ODMwNWM3ODlkNzc1ZmUxNWMxYzA4MjhjMzZlOWUyZjJhODYwOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViQ29va2llSmFyLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJDb29raWVKYXIuY3BwCkBA
IC0xMjksMTIgKzEyOSwxOSBAQCB2b2lkIFdlYkNvb2tpZUphcjo6c2V0Q29va2llcyhXZWJDb3Jl
OjpEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFVSTCYgdXJsLCBjb25zdAogICAgIFdlYlByb2Nl
c3M6OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rp
b24oKS5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6U2V0Q29v
a2llc0Zyb21ET00oZG9jdW1lbnQuZmlyc3RQYXJ0eUZvckNvb2tpZXMoKSwgc2FtZVNpdGVJbmZv
KGRvY3VtZW50KSwgdXJsLCBmcmFtZUlELCBwYWdlSUQsIHNob3VsZEFza0lUUEluTmV0d29ya1By
b2Nlc3MsIGNvb2tpZVN0cmluZyksIDApOwogfQogCi1ib29sIFdlYkNvb2tpZUphcjo6Y29va2ll
c0VuYWJsZWQoY29uc3QgV2ViQ29yZTo6RG9jdW1lbnQmIGRvY3VtZW50KSBjb25zdAorYm9vbCBX
ZWJDb29raWVKYXI6OmNvb2tpZXNFbmFibGVkKGNvbnN0IERvY3VtZW50JiBkb2N1bWVudCkgY29u
c3QKIHsKLSAgICBib29sIHJlc3VsdCA9IGZhbHNlOwotICAgIGlmICghV2ViUHJvY2Vzczo6c2lu
Z2xldG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNl
bmRTeW5jKE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Q29va2llc0Vu
YWJsZWQoKSwgTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpDb29raWVz
RW5hYmxlZDo6UmVwbHkocmVzdWx0KSwgMCkpCisgICAgYXV0byogd2ViRnJhbWUgPSBkb2N1bWVu
dC5mcmFtZSgpID8gV2ViRnJhbWU6OmZyb21Db3JlRnJhbWUoKmRvY3VtZW50LmZyYW1lKCkpIDog
bnVsbHB0cjsKKyAgICBpZiAoIXdlYkZyYW1lIHx8ICF3ZWJGcmFtZS0+cGFnZSgpKQogICAgICAg
ICByZXR1cm4gZmFsc2U7Ci0gICAgcmV0dXJuIHJlc3VsdDsKKworI2lmIEVOQUJMRShSRVNPVVJD
RV9MT0FEX1NUQVRJU1RJQ1MpCisgICAgU2hvdWxkQXNrSVRQIGR1bW15OworICAgIGlmIChzaG91
bGRCbG9ja0Nvb2tpZXMod2ViRnJhbWUsIGRvY3VtZW50LmZpcnN0UGFydHlGb3JDb29raWVzKCks
IGRvY3VtZW50LmNvb2tpZVVSTCgpLCBkdW1teSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyNl
bmRpZgorCisgICAgcmV0dXJuIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQ
cm9jZXNzQ29ubmVjdGlvbigpLmNvb2tpZXNFbmFibGVkKCk7CiB9CiAKIHN0ZDo6cGFpcjxTdHJp
bmcsIFdlYkNvcmU6OlNlY3VyZUNvb2tpZXNBY2Nlc3NlZD4gV2ViQ29va2llSmFyOjpjb29raWVS
ZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNv
cmU6OlNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8
RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlE
LCBXZWJDb3JlOjpJbmNsdWRlU2VjdXJlQ29va2llcyBpbmNsdWRlU2VjdXJlQ29va2llcykgY29u
c3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAppbmRleCBjYTQxOGNkNzAy
ZjhlY2QzNmQyMTFlZTZkZGJhYTZhZjc5ZjBlMjVmLi42NWM5YmM0Y2E3NmFjOTUwZGQ5NjgyZTEy
MjRkY2I4ZjZlMGU0OGZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3Bw
CkBAIC0xMTkxLDcgKzExOTEsNyBAQCBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24mIFdlYlByb2Nl
c3M6OmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpCiAgICAgICAgIGlmICghSVBDOjpD
b25uZWN0aW9uOjppZGVudGlmaWVySXNWYWxpZChjb25uZWN0aW9uSW5mby5pZGVudGlmaWVyKCkp
KQogICAgICAgICAgICAgQ1JBU0goKTsKIAotICAgICAgICBtX25ldHdvcmtQcm9jZXNzQ29ubmVj
dGlvbiA9IE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6Y3JlYXRlKGNvbm5lY3Rpb25JbmZvLnJl
bGVhc2VJZGVudGlmaWVyKCkpOworICAgICAgICBtX25ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbiA9
IE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6Y3JlYXRlKGNvbm5lY3Rpb25JbmZvLnJlbGVhc2VJ
ZGVudGlmaWVyKCksIGNvbm5lY3Rpb25JbmZvLmNvb2tpZUFjY2VwdFBvbGljeSk7CiAjaWYgSEFW
RShBVURJVF9UT0tFTikKICAgICAgICAgbV9uZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24tPnNldE5l
dHdvcmtQcm9jZXNzQXVkaXRUb2tlbihXVEZNb3ZlKGNvbm5lY3Rpb25JbmZvLmF1ZGl0VG9rZW4p
KTsKICNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>388345</attachid>
            <date>2020-01-21 14:08:10 -0800</date>
            <delta_ts>2020-01-21 14:10:29 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-206450-20200121140809.patch</filename>
            <type>text/plain</type>
            <size>80743</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0ODYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmVhNDFhNTRiNzcwOGQ4
OWUwMDQ3NTFmZDdkNTRjNGU3NzMxYTYwNS4uYzUyZTdjOWFhNDAwMzlhZTJmZDk3M2NiOGMxMTE4
ZjliMzJmNThkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIwLTAxLTIxICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgRnJlcXVlbnQgTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3M6OkNvb2tpZXNFbmFibGVkIHN5bmMgSVBDIHdoZW4gYnJvd3Np
bmcgcmVkZGl0LmNvbQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjA2NDUwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgTW92ZSBIVFRQQ29va2llQWNjZXB0UG9saWN5LmggaGVhZGVyIGZyb20gV2ViS2l0IHRv
IFdlYkNvcmUgc28gdGhhdCB0aGUgSFRUUENvb2tpZUFjY2VwdFBvbGljeSBlbnVtCisgICAgICAg
IGNhbiBiZSB1c2VkIGluIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbi4gUmVwbGFjZSBOZXR3b3JrU3Rv
cmFnZVNlc3Npb246OmNvb2tpZXNFbmFibGVkKCkgd2l0aCBhIG1vcmUKKyAgICAgICAgZGV0YWls
ZWQgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpjb29raWVBY2NlcHRQb2xpY3koKSBtZXRob2QuCisK
KyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICog
bG9hZGVyL0Nvb2tpZUphci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb29raWVKYXI6OmNvb2tp
ZXNFbmFibGVkIGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL0hUVFBDb29raWVB
Y2NlcHRQb2xpY3kuaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL0hUVFBDb29r
aWVBY2NlcHRQb2xpY3kuaC4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9y
YWdlU2Vzc2lvbi5jcHA6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFn
ZVNlc3Npb24uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2NmL05ldHdvcmtTdG9yYWdl
U2Vzc2lvbkNGTmV0V2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vz
c2lvbjo6Y29va2llQWNjZXB0UG9saWN5IGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3
b3JrL2NvY29hL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkNvY29hLm1tOgorICAgICAgICAoV2ViQ29y
ZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpjb29raWVBY2NlcHRQb2xpY3kgY29uc3QpOgorICAg
ICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY3VybC9OZXR3b3JrU3RvcmFnZVNlc3Npb25DdXJsLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y29va2llQWNjZXB0
UG9saWN5IGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvTmV0d29ya1N0
b3JhZ2VTZXNzaW9uU291cC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNl
c3Npb246OmNvb2tpZUFjY2VwdFBvbGljeSBjb25zdCk6CisKIDIwMjAtMDEtMjEgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBNaW5vciBpbXByb3ZlbWVudHMgdG8g
U3RvcmFnZUFyZWFNYXAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggOGY3MTE0ZDQ2YTA3NDAwYmQyM2IxYzg2MDhlZWQ1
YzY1ZTU2NWY1ZS4uNDg4Y2YwNDA3ZWIzOGRjNWIzM2UzOWY1NTU0YjA4YjViZDBhZThhMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKQEAgLTEsMyArMSw3NyBAQAorMjAyMC0wMS0yMSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpA
YXBwbGUuY29tPgorCisgICAgICAgIEZyZXF1ZW50IE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzOjpDb29raWVzRW5hYmxlZCBzeW5jIElQQyB3aGVuIGJyb3dzaW5nIHJlZGRpdC5jb20KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNjQ1MAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZyZXF1ZW50IE5l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpDb29raWVzRW5hYmxlZCBzeW5jIElQQyB3aGVu
IGJyb3dzaW5nIHJlZGRpdC5jb20uIFRoaXMKKyAgICAgICAgaGFwcGVucyBldmVyeSB0aW1lIHRo
ZSBwYWdlIHNjcmlwdCBjYWxscyBuYXZpZ2F0b3IuY29va2llRW5hYmxlZC4gVG8gYWRkcmVzcyB0
aGUgaXNzdWUsIHdlIG5vdworICAgICAgICBzdG9yZSB0aGUgImNvb2tpZSBhY2NlcHQgcG9saWN5
IiBvbiB0aGUgV2ViQ29udGVudCBwcm9jZXNzIHNpZGUuIFRoaXMgYWxsb3dzIHVzIHRvIGtub3cK
KyAgICAgICAgc3luY2hyb25vdXNseSBvbiB0aGUgV2ViQ29udGVudCBwcm9jZXNzIGlmIGNvb2tp
ZXMgYXJlIGVuYWJsZWQgb3Igbm90IGFuZCB3aXRob3V0IGFueSBJUEMgdG8KKyAgICAgICAgdGhl
IG5ldHdvcmsgcHJvY2Vzcy4gVG8gYWNoaWV2ZSB0aGlzLCBJIGFkZGVkIGEgbmV3IGNvb2tpZUFj
Y2VwdFBvbGljeSBtZW1iZXIgdG8KKyAgICAgICAgTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uSW5m
byBzbyB0aGF0IHRoZSBXZWJDb250ZW50IHByb2Nlc3MgaXMgYXdhcmUgb2YgdGhlIGluaXRpYWwg
cG9saWN5IHdoZW4KKyAgICAgICAgaXQgY29ubmVjdHMgdG8gdGhlIG5ldHdvcmsgcHJvY2Vzcy4g
VGhlIHBvbGljeSBvbiB0aGUgV2ViQ29udGVudCBwcm9jZXNzIHNpZGUgaXMgdGhlbiBrZXB0IHVw
CisgICAgICAgIHRvIGRhdGUgdmlhIElQQ3MgZnJvbSB0aGUgbmV0d29yayBwcm9jZXNzIHRvIHRo
ZSBXZWJDb250ZW50IHByb2Nlc3NlcyB3aGVuZXZlciB0aGUgY29va2llCisgICAgICAgIGFjY2Vw
dCBwb2xpY3kgY2hhbmdlcy4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0Nvb2tpZXMvV2Vi
Q29va2llTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNvb2tpZU1hbmFnZXI6OnNl
dEhUVFBDb29raWVBY2NlcHRQb2xpY3kpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb29raWVNYW5h
Z2VyOjpnZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9D
b29raWVzL1dlYkNvb2tpZU1hbmFnZXIubWVzc2FnZXMuaW46CisgICAgICAgICogTmV0d29ya1By
b2Nlc3MvQ29va2llcy9jdXJsL1dlYkNvb2tpZU1hbmFnZXJDdXJsLmNwcDoKKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy9Db29raWVzL21hYy9XZWJDb29raWVNYW5hZ2VyTWFjLm1tOgorICAgICAg
ICAqIE5ldHdvcmtQcm9jZXNzL0Nvb2tpZXMvc291cC9XZWJDb29raWVNYW5hZ2VyU291cC5jcHA6
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Y29v
a2llQWNjZXB0UG9saWN5Q2hhbmdlZCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBOZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9j
ZXNzOjpjcmVhdGVOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcyk6CisgICAgICAgIChXZWJL
aXQ6Ok5ldHdvcmtQcm9jZXNzOjpjb29raWVBY2NlcHRQb2xpY3lDaGFuZ2VkKToKKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oOgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNz
L05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmg6CisgICAgICAgICogU2hhcmVkL1dl
YlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQ
SUhUVFBDb29raWVTdG9yZS5jcHA6CisgICAgICAgIChBUEk6OkhUVFBDb29raWVTdG9yZTo6c2V0
SFRUUENvb2tpZUFjY2VwdFBvbGljeSk6CisgICAgICAgIChBUEk6OkhUVFBDb29raWVTdG9yZTo6
c2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeUluRGVmYXVsdFVJUHJvY2Vzc0Nvb2tpZVN0b3JlKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQSUhUVFBDb29raWVTdG9yZS5oOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaDoKKyAgICAgICAgKFdlYktpdDo6dG9IVFRQQ29v
a2llQWNjZXB0UG9saWN5KToKKyAgICAgICAgKFdlYktpdDo6dG9BUEkpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvQ29jb2EvQVBJSFRUUENvb2tpZVN0b3JlQ29jb2EubW06CisgICAgICAgIChB
UEk6OnRvTlNIVFRQQ29va2llQWNjZXB0UG9saWN5KToKKyAgICAgICAgKEFQSTo6SFRUUENvb2tp
ZVN0b3JlOjpzZXRIVFRQQ29va2llQWNjZXB0UG9saWN5SW5EZWZhdWx0VUlQcm9jZXNzQ29va2ll
U3RvcmUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tIVFRQQ29va2llU3RvcmUu
bW06CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1tOgorICAg
ICAgICAodG9IVFRQQ29va2llQWNjZXB0UG9saWN5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvTmV0
d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1By
b2Nlc3NQcm94eTo6b3Blbk5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbik6CisgICAgICAgICogVUlQ
cm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQ
cm9jZXNzUG9vbC5oOgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
OgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24u
Y3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246Ok5ldHdvcmtQ
cm9jZXNzQ29ubmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzQ29ubmVj
dGlvbjo6d3JpdGVCbG9ic1RvVGVtcG9yYXJ5RmlsZXMpOgorICAgICAgICAoV2ViS2l0OjpOZXR3
b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OmNvb2tpZXNFbmFibGVkKToKKyAgICAgICAgKFdlYktpdDo6
TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpjb29raWVBY2NlcHRQb2xpY3lDaGFuZ2VkKToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmg6Cisg
ICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6Y3JlYXRlKToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2Vz
LmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rp
b25JbmZvLmg6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbkluZm86
OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzQ29ubmVjdGlv
bkluZm86OmRlY29kZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkNvb2tpZUph
ci5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNvb2tpZUphcjo6Y29va2llc0VuYWJsZWQgY29u
c3QpOgorICAgICAgICAtIFJldHVybiBmYWxzZSBlYXJseSBpZiB0aGUgZG9jdW1lbnQgaGFzIG5v
IGZyYW1lIC8gcGFnZSAoY29va2llLWF2ZXJzZSBhcyBwZXIgc3BlYykKKyAgICAgICAgLSBSZXR1
cm4gZmFsc2UgZWFybHkgaWYgSVRQIGlzIGVuYWJsZWQgYW5kIGl0IGlzIGEgdGhpcmQtcGFydHkg
aWZyYW1lIHdpdGhvdXQgc3RvcmFnZQorICAgICAgICAgIGFjY2Vzcy4gVGhpcyBieXBhc3NlcyB0
aGUgc3luYyBJUEMgY2FsbCBjb21wbGV0ZWx5IGZvciBzdWNoIGlmcmFtZXMuCisKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNz
OjplbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24pOgorCiAyMDIwLTAxLTIxICBDaHJpcyBE
dW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgTWlub3IgaW1wcm92ZW1lbnRzIHRv
IFN0b3JhZ2VBcmVhTWFwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtl
IGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCBiYjg3ODA2MTgzNzQxZjk2MjY4
Mzg2OGVmYzY4OTEwMmJjNGY0YTJkLi5jNzk5N2Q2MGVhMjE0NjIxOTkxMzljYWMwOTg2ZTk2NWEz
MTIxMGVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAgLTEyMjIsNiArMTIyMiw3IEBAIHNldChXZWJD
b3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBwbGF0Zm9ybS9uZXR3b3JrL0ROUy5o
CiAgICAgcGxhdGZvcm0vbmV0d29yay9ETlNSZXNvbHZlUXVldWUuaAogICAgIHBsYXRmb3JtL25l
dHdvcmsvRm9ybURhdGEuaAorICAgIHBsYXRmb3JtL25ldHdvcmsvSFRUUENvb2tpZUFjZXB0UG9s
aWN5LmgKICAgICBwbGF0Zm9ybS9uZXR3b3JrL0hUVFBIZWFkZXJNYXAuaAogICAgIHBsYXRmb3Jt
L25ldHdvcmsvSFRUUFBhcnNlcnMuaAogICAgIHBsYXRmb3JtL25ldHdvcmsvTmV0d29ya0xvYWRJ
bmZvcm1hdGlvbi5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKaW5kZXggZDViM2NlYWVkZWNkNjMwNjgzYThkODBlOTgyMmIzZGY0MWQ3NjIw
ZS4uYmMwMWY2YzUyNjc5ZjIxYTI1N2YyYWE0MWMxOTMyNzgxY2U0YjQxNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTI1Miw2
ICsxMjUyLDcgQEAKIAkJNDZCOTUxOUEyMDdENjM1NDAwQTdEMkREIC8qIFJlbW90ZUZyYW1lLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NkI5NTE5MjIw
N0Q2MzJFMDBBN0QyREQgLyogUmVtb3RlRnJhbWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0NkI5NUJGNTIyMzFDRkQ2MDA1M0E1MDQgLyogRGV2
aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NkI5NUJGNDIyMzFDRkI4MDA1M0E1MDQg
LyogRGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250cm9sbGVyLmggKi87IH07CiAJ
CTQ2QkNCQkMyMjA4NTAwOEYwMDcxMDYzOCAvKiBKU1JlbW90ZURPTVdpbmRvd0Jhc2UuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2QkNCQkMwMjA4NTAw
N0YwMDcxMDYzOCAvKiBKU1JlbW90ZURPTVdpbmRvd0Jhc2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk0NkMwOTYyMTIzRDc4REQ2MDA2NTdDMDkg
LyogSFRUUENvb2tpZUFjY2VwdFBvbGljeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNDZDMDk2MjAyM0Q3OERENjAwNjU3QzA5IC8qIEhUVFBDb29raWVB
Y2NlcHRQb2xpY3kuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQk0NkMzNzY2MjIwODUxNzdEMDBDNzM4MjkgLyogSlNSZW1vdGVET01XaW5kb3cuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2QzM3NjYxMjA4
NTE3NkQwMEM3MzgyOSAvKiBKU1JlbW90ZURPTVdpbmRvdy5oICovOyB9OwogCQk0NkM2OTZDQjFF
NzIwNUY3MDA1OTc5MzcgLyogQ1BVTW9uaXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNDZDNjk2QzkxRTcyMDVFNDAwNTk3OTM3IC8qIENQVU1vbml0
b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0
NkM2OTZDQzFFNzIwNUZDMDA1OTc5MzcgLyogQ1BVTW9uaXRvci5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NkM2OTZDQTFFNzIwNUU0MDA1OTc5Mzcg
LyogQ1BVTW9uaXRvci5jcHAgKi87IH07CkBAIC03NzgzLDYgKzc3ODQsNyBAQAogCQk0NkJDQkJD
MDIwODUwMDdGMDA3MTA2MzggLyogSlNSZW1vdGVET01XaW5kb3dCYXNlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTUmVtb3RlRE9NV2luZG93QmFzZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk0NkJDQkJDMTIwODUwMDgwMDA3MTA2MzggLyogSlNSZW1vdGVE
T01XaW5kb3dCYXNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpT
UmVtb3RlRE9NV2luZG93QmFzZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2
QkNCQkMzMjA4NTAwQTcwMDcxMDYzOCAvKiBSZW1vdGVET01XaW5kb3cuaWRsICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dDsgcGF0aCA9IFJlbW90ZURPTVdpbmRvdy5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTQ2QzA5NjIwMjNENzhERDYwMDY1N0MwOSAvKiBIVFRQQ29va2llQWNjZXB0UG9saWN5
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEhUVFBDb29raWVBY2NlcHRQb2xpY3kuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNDZDMzc2NUYyMDg1MTc2QzAwQzczODI5IC8qIEpTUmVtb3RlRE9N
V2luZG93LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTUmVtb3Rl
RE9NV2luZG93LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDZDMzc2NjEyMDg1
MTc2RDAwQzczODI5IC8qIEpTUmVtb3RlRE9NV2luZG93LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEpTUmVtb3RlRE9NV2luZG93Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTQ2QzY5NkM5MUU3MjA1RTQwMDU5NzkzNyAvKiBDUFVNb25pdG9yLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENQVU1vbml0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTIwNDU1LDYgKzIwNDU3LDcgQEAKIAkJCQk1MTRDNzY1QjBDRTkyM0ExMDA3
RUYzQ0QgLyogRm9ybURhdGEuaCAqLywKIAkJCQkwODVCOTJCODBFRkRFNzNEMDBFNjEyM0MgLyog
Rm9ybURhdGFCdWlsZGVyLmNwcCAqLywKIAkJCQkwODVCOTJCOTBFRkRFNzNEMDBFNjEyM0MgLyog
Rm9ybURhdGFCdWlsZGVyLmggKi8sCisJCQkJNDZDMDk2MjAyM0Q3OERENjAwNjU3QzA5IC8qIEhU
VFBDb29raWVBY2NlcHRQb2xpY3kuaCAqLywKIAkJCQkwQjhDNTZEMzBGMjg2MjdGMDAwNTAyRTEg
LyogSFRUUEhlYWRlck1hcC5jcHAgKi8sCiAJCQkJNTE0Qzc2NUMwQ0U5MjNBMTAwN0VGM0NEIC8q
IEhUVFBIZWFkZXJNYXAuaCAqLywKIAkJCQkxQUM5MDBCRjE5NDNBRjNEMDA4NjI1QjUgLyogSFRU
UEhlYWRlck5hbWVzLmluICovLApAQCAtMzAyNjYsNiArMzAyNjksNyBAQAogCQkJCUU0NDYxM0FC
MENENjMzMTAwMEZBREE3NSAvKiBIVE1MVmlkZW9FbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJ
CQkxRDJGOEUwNTIzNDQ3NTFEMDA5OTNCNjggLyogSFRNTFZpZGVvRWxlbWVudFBpY3R1cmVJblBp
Y3R1cmUuaCBpbiBIZWFkZXJzICovLAogCQkJCTgzOUFBRkVEMUEwQzBDOEQwMDYwNUY5OSAvKiBI
VE1MV0JSRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDZDMDk2MjEyM0Q3OERENjAwNjU3
QzA5IC8qIEhUVFBDb29raWVBY2NlcHRQb2xpY3kuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDQTFE
RUM2MUY3MUYxQzcwMEU3MUJEMyAvKiBIVFRQSGVhZGVyRmllbGQuaCBpbiBIZWFkZXJzICovLAog
CQkJCTUxNEM3NjcxMENFOTIzQTEwMDdFRjNDRCAvKiBIVFRQSGVhZGVyTWFwLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkxQUI1RUJEMjE5NEE1MEYzMDA1OUFDNzAgLyogSFRUUEhlYWRlck5hbWVzLmgg
aW4gSGVhZGVycyAqLywKQEAgLTMxMzY4LDYgKzMxMzcyLDcgQEAKIAkJCQkxMTk5RkE0NjIwOEUz
NUEzMDAyMzU4Q0MgLyogTGF5b3V0Q29udGFpbmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk2RjI2
QkI2QzIzMzQzRTZGMDAyRjJCRUEgLyogTGF5b3V0Q29udGV4dC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMTEzMTBDRjUyMEJBNEE0QzAwNjVBOEQwIC8qIExheW91dERlc2NlbmRhbnRJdGVyYXRvci5o
IGluIEhlYWRlcnMgKi8sCisJCQkJRTQxODAyNTUyM0Q0NTQ5QjAwRkZCMDcxIC8qIExheW91dElu
dGVncmF0aW9uQm94VHJlZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTRBQkFCREQyMzYwODhGRTAw
RkE0MzQ1IC8qIExheW91dEludGVncmF0aW9uTGluZUxheW91dC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMTEzMTBDRjQyMEJBNEEzRDAwNjVBOEQwIC8qIExheW91dEl0ZXJhdG9yLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk5MzFENzJGNjE1RkU2OTUzMDBDNEMwN0UgLyogTGF5b3V0TWlsZXN0b25lLmgg
aW4gSGVhZGVycyAqLywKQEAgLTMyMDYyLDcgKzMyMDY3LDYgQEAKIAkJCQk0NThGRTQwQTE1ODlE
RjBCMDA1NjA5RTYgLyogUmVuZGVyU2VhcmNoRmllbGQuaCBpbiBIZWFkZXJzICovLAogCQkJCTBG
MTFBNTRGMEYzOTIzMzEwMEMzNzg4NCAvKiBSZW5kZXJTZWxlY3Rpb25JbmZvLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlBQjI0N0E2RDBBRkQ2MzgzMDAzRkE1RkQgLyogUmVuZGVyU2xpZGVyLmggaW4g
SGVhZGVycyAqLywKLQkJCQlFNDE4MDI1NTIzRDQ1NDlCMDBGRkIwNzEgLyogTGF5b3V0SW50ZWdy
YXRpb25Cb3hUcmVlLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMTk1NUE4ODE2MEQxOTkyMDA4NTgw
MjUgLyogUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uaCBpbiBIZWFkZXJzICovLAogCQkJCUJDOEM4
RkFFMEREQ0QzMUIwMEI1OTJGNCAvKiBSZW5kZXJTdHlsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QkM1RUI2NjgwRTgxQ0I3MTAwQjI1OTY1IC8qIFJlbmRlclN0eWxlQ29uc3RhbnRzLmggaW4gSGVh
ZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Db29raWVKYXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nvb2tpZUphci5jcHAKaW5kZXggMjM5MDY2OGRmODMx
MTNmZGExNzMwMzgwYzI0OTEyMDZiZDM4OTA1Yy4uYTA3YTMwMmE0MjM5MTQxYmY5NDc1ZGY0ZjVl
YzVkYzY5ODUwZDMyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nvb2tpZUph
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nvb2tpZUphci5jcHAKQEAgLTMyLDYg
KzMyLDcgQEAKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCiAj
aW5jbHVkZSAiRnJhbWVMb2FkZXJDbGllbnQuaCIKKyNpbmNsdWRlICJIVFRQQ29va2llQWNjZXB0
UG9saWN5LmgiCiAjaW5jbHVkZSAiTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmgiCiAjaW5jbHVkZSAi
TmV0d29ya2luZ0NvbnRleHQuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmF0ZWdpZXMuaCIKQEAg
LTEyMiw3ICsxMjMsNyBAQCB2b2lkIENvb2tpZUphcjo6c2V0Q29va2llcyhEb2N1bWVudCYgZG9j
dW1lbnQsIGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIGNvbwogYm9vbCBDb29raWVKYXI6
OmNvb2tpZXNFbmFibGVkKGNvbnN0IERvY3VtZW50JikgY29uc3QKIHsKICAgICBpZiAoYXV0byog
c2Vzc2lvbiA9IG1fc3RvcmFnZVNlc3Npb25Qcm92aWRlci0+c3RvcmFnZVNlc3Npb24oKSkKLSAg
ICAgICAgcmV0dXJuIHNlc3Npb24tPmNvb2tpZXNFbmFibGVkKCk7CisgICAgICAgIHJldHVybiBz
ZXNzaW9uLT5jb29raWVBY2NlcHRQb2xpY3koKSAhPSBIVFRQQ29va2llQWNjZXB0UG9saWN5OjpO
ZXZlcjsKIAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIHJldHVybiBmYWxzZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvSFRUUENvb2tpZUFjY2Vw
dFBvbGljeS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9IVFRQQ29va2llQWNj
ZXB0UG9saWN5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGU2M2ZiMzVkNDBmN2IyYmNjYTU5Zjg2Y2FhYWZiZjI2
NjVjMmI2NAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvSFRUUENvb2tpZUFjY2VwdFBvbGljeS5oCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTEtMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK2VudW0gY2xhc3MgSFRUUENvb2tpZUFjY2VwdFBvbGljeSA6
IHVpbnQ4X3QgeworICAgIEFsd2F5c0FjY2VwdCA9IDAsCisgICAgTmV2ZXIgPSAxLAorICAgIE9u
bHlGcm9tTWFpbkRvY3VtZW50RG9tYWluID0gMiwKKyAgICBFeGNsdXNpdmVseUZyb21NYWluRG9j
dW1lbnREb21haW4gPSAzLAorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKK25hbWVzcGFj
ZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OkhUVFBDb29r
aWVBY2NlcHRQb2xpY3k+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgICAg
ICBXZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0UG9saWN5LAorICAgICAgICBXZWJDb3JlOjpIVFRQ
Q29va2llQWNjZXB0UG9saWN5OjpBbHdheXNBY2NlcHQsCisgICAgICAgIFdlYkNvcmU6OkhUVFBD
b29raWVBY2NlcHRQb2xpY3k6Ok5ldmVyLAorICAgICAgICBXZWJDb3JlOjpIVFRQQ29va2llQWNj
ZXB0UG9saWN5OjpPbmx5RnJvbU1haW5Eb2N1bWVudERvbWFpbiwKKyAgICAgICAgV2ViQ29yZTo6
SFRUUENvb2tpZUFjY2VwdFBvbGljeTo6RXhjbHVzaXZlbHlGcm9tTWFpbkRvY3VtZW50RG9tYWlu
CisgICAgPjsKK307CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmNwcAppbmRleCA1MTVkYmYxOTlmNzE1Y2Iw
ZDQzZjM0ZmQ1M2MzMjM2OTE4MWM5M2U1Li4yOTk0Mjc1NjI1OGU5MjQzYzNiMGExMDBiMWEzZjZm
NzJhODQ3NThjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05l
dHdvcmtTdG9yYWdlU2Vzc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb24uY3BwCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVk
ZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmgiCiAKKyNpbmNs
dWRlICJIVFRQQ29va2llQWNjZXB0UG9saWN5LmgiCiAjaW5jbHVkZSAiUnVudGltZUFwcGxpY2F0
aW9uQ2hlY2tzLmgiCiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAjaW5jbHVkZSA8
d3RmL1Byb2Nlc3NQcml2aWxlZ2UuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oCmluZGV4IDM3MjBhYzVlODViMDk4
ZTQ4MzVjYjY3N2MwNTgxZTBiMzA1ZGQ1NWMuLjY1MDZmMTA3NzA2NWE0ZDIxZjc5ODAxOTJmM2Q3
NTA3ZWJjMjNhOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
TmV0d29ya1N0b3JhZ2VTZXNzaW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaApAQCAtNzIsNiArNzIsNyBAQCBzdHJ1Y3QgQ29v
a2llOwogc3RydWN0IENvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFByb3h5Owogc3RydWN0IFNhbWVT
aXRlSW5mbzsKIAorZW51bSBjbGFzcyBIVFRQQ29va2llQWNjZXB0UG9saWN5IDogdWludDhfdDsK
IGVudW0gY2xhc3MgSW5jbHVkZVNlY3VyZUNvb2tpZXMgOiBib29sOwogZW51bSBjbGFzcyBJbmNs
dWRlSHR0cE9ubHlDb29raWVzIDogYm9vbDsKIGVudW0gY2xhc3MgVGhpcmRQYXJ0eUNvb2tpZUJs
b2NraW5nTW9kZSA6IHVpbnQ4X3QgeyBBbGwsIEFsbE9uU2l0ZXNXaXRob3V0VXNlckludGVyYWN0
aW9uLCBPbmx5QWNjb3JkaW5nVG9QZXJEb21haW5Qb2xpY3kgfTsKQEAgLTEyNSw3ICsxMjYsNyBA
QCBwdWJsaWM6CiAgICAgTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQoKSBjb25zdDsKICNlbmRp
ZgogCi0gICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBjb29raWVzRW5hYmxlZCgpIGNvbnN0OworICAg
IFdFQkNPUkVfRVhQT1JUIEhUVFBDb29raWVBY2NlcHRQb2xpY3kgY29va2llQWNjZXB0UG9saWN5
KCkgY29uc3Q7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRDb29raWUoY29uc3QgQ29va2ll
Jik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRDb29raWVzKGNvbnN0IFZlY3RvcjxDb29r
aWU+JiwgY29uc3QgVVJMJiwgY29uc3QgVVJMJiBtYWluRG9jdW1lbnRVUkwpOwogICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgc2V0Q29va2llc0Zyb21ET00oY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBj
b25zdCBTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+
LCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4sIFNob3VsZEFza0lUUCwgY29uc3QgU3RyaW5nJikg
Y29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL05l
dHdvcmtTdG9yYWdlU2Vzc2lvbkNGTmV0V2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvY2YvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ0ZOZXRXaW4uY3BwCmluZGV4IDUyZGFj
YzY4NmQ4M2JhMjk4MTMwNzkwNTlhYzg1NTFmYTYxZTkzYmMuLjA2YTUzYjJmYTE4MzVhOGJkMWQ5
ZjU0MWM0MDBmZmE2MmZmMGNiOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvY2YvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ0ZOZXRXaW4uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ0ZOZXRX
aW4uY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJDb29raWUuaCIKICNpbmNsdWRl
ICJDb29raWVSZXF1ZXN0SGVhZGVyRmllbGRQcm94eS5oIgorI2luY2x1ZGUgIkhUVFBDb29raWVB
Y2NlcHRQb2xpY3kuaCIKICNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgogI2luY2x1ZGUgPENG
TmV0d29yay9DRkhUVFBDb29raWVzUHJpdi5oPgogI2luY2x1ZGUgPENvcmVGb3VuZGF0aW9uL0Nv
cmVGb3VuZGF0aW9uLmg+CkBAIC0yNTgsMTAgKzI1OSwxNyBAQCBzdGQ6OnBhaXI8U3RyaW5nLCBi
b29sPiBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVl
KGNvbgogICAgIHJldHVybiBjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShoZWFkZXJGaWVs
ZFByb3h5LmZpcnN0UGFydHksIGhlYWRlckZpZWxkUHJveHkuc2FtZVNpdGVJbmZvLCBoZWFkZXJG
aWVsZFByb3h5LnVybCwgaGVhZGVyRmllbGRQcm94eS5mcmFtZUlELCBoZWFkZXJGaWVsZFByb3h5
LnBhZ2VJRCwgaGVhZGVyRmllbGRQcm94eS5pbmNsdWRlU2VjdXJlQ29va2llcywgU2hvdWxkQXNr
SVRQOjpZZXMpOwogfQogCi1ib29sIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y29va2llc0VuYWJs
ZWQoKSBjb25zdAorSFRUUENvb2tpZUFjY2VwdFBvbGljeSBOZXR3b3JrU3RvcmFnZVNlc3Npb246
OmNvb2tpZUFjY2VwdFBvbGljeSgpIGNvbnN0CiB7CiAgICAgQ0ZIVFRQQ29va2llU3RvcmFnZUFj
Y2VwdFBvbGljeSBwb2xpY3kgPSBDRkhUVFBDb29raWVTdG9yYWdlR2V0Q29va2llQWNjZXB0UG9s
aWN5KGNvb2tpZVN0b3JhZ2UoKS5nZXQoKSk7Ci0gICAgcmV0dXJuIHBvbGljeSA9PSBDRkhUVFBD
b29raWVTdG9yYWdlQWNjZXB0UG9saWN5T25seUZyb21NYWluRG9jdW1lbnREb21haW4gfHwgcG9s
aWN5ID09IENGSFRUUENvb2tpZVN0b3JhZ2VBY2NlcHRQb2xpY3lFeGNsdXNpdmVseUZyb21NYWlu
RG9jdW1lbnREb21haW4gfHwgcG9saWN5ID09IENGSFRUUENvb2tpZVN0b3JhZ2VBY2NlcHRQb2xp
Y3lBbHdheXM7CisgICAgaWYgKHBvbGljeSA9PSBDRkhUVFBDb29raWVTdG9yYWdlQWNjZXB0UG9s
aWN5QWx3YXlzKQorICAgICAgICByZXR1cm4gSFRUUENvb2tpZUFjY2VwdFBvbGljeTo6QWx3YXlz
QWNjZXB0OworICAgIGlmIChwb2xpY3kgPT0gQ0ZIVFRQQ29va2llU3RvcmFnZUFjY2VwdFBvbGlj
eU9ubHlGcm9tTWFpbkRvY3VtZW50RG9tYWluKQorICAgICAgICByZXR1cm4gSFRUUENvb2tpZUFj
Y2VwdFBvbGljeTo6T25seUZyb21NYWluRG9jdW1lbnREb21haW47CisgICAgaWYgKHBvbGljeSA9
PSBDRkhUVFBDb29raWVTdG9yYWdlQWNjZXB0UG9saWN5RXhjbHVzaXZlbHlGcm9tTWFpbkRvY3Vt
ZW50RG9tYWluKQorICAgICAgICByZXR1cm4gSFRUUENvb2tpZUFjY2VwdFBvbGljeTo6RXhjbHVz
aXZlbHlGcm9tTWFpbkRvY3VtZW50RG9tYWluOworCisgICAgcmV0dXJuIEhUVFBDb29raWVBY2Nl
cHRQb2xpY3k6Ok5ldmVyOwogfQogCiBib29sIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Z2V0UmF3
Q29va2llcyhjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYsIGNvbnN0
IFVSTCYgdXJsLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIE9wdGlvbmFsPFBh
Z2VJZGVudGlmaWVyPiBwYWdlSUQsIFNob3VsZEFza0lUUCwgVmVjdG9yPENvb2tpZT4mIHJhd0Nv
b2tpZXMpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L2NvY29hL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkNvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9jb2NvYS9OZXR3b3JrU3RvcmFnZVNlc3Npb25Db2NvYS5tbQppbmRleCA5
ZjY3NjVlYTY3ZDEwY2VmM2I2MmVkNWNlMDBiOTg4ODE5NGYyY2QxLi5mZDFhZTU4ZDc1MzEwZjc0
NjY1N2ZiY2Q5MWQ2ZWI3NmQ3NjU3ZDA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL2NvY29hL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkNvY29hLm1tCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2EvTmV0d29ya1N0b3JhZ2VTZXNzaW9u
Q29jb2EubW0KQEAgLTI5LDYgKzI5LDcgQEAKICNpbXBvcnQgIkNvb2tpZS5oIgogI2ltcG9ydCAi
Q29va2llUmVxdWVzdEhlYWRlckZpZWxkUHJveHkuaCIKICNpbXBvcnQgIkNvb2tpZVN0b3JhZ2VP
YnNlcnZlci5oIgorI2ltcG9ydCAiSFRUUENvb2tpZUFjY2VwdFBvbGljeS5oIgogI2ltcG9ydCAi
U2FtZVNpdGVJbmZvLmgiCiAjaW1wb3J0IDxwYWwvc3BpL2NmL0NGTmV0d29ya1NQSS5oPgogI2lt
cG9ydCA8d3RmL0Jsb2NrT2JqQ0V4Y2VwdGlvbnMuaD4KQEAgLTQ0OCwxNSArNDQ5LDE5IEBAIHN0
YXRpYyBOU0hUVFBDb29raWVBY2NlcHRQb2xpY3kgaHR0cENvb2tpZUFjY2VwdFBvbGljeShDRkhU
VFBDb29raWVTdG9yYWdlUmVmIGNvCiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PE5TSFRUUENvb2tp
ZUFjY2VwdFBvbGljeT4oQ0ZIVFRQQ29va2llU3RvcmFnZUdldENvb2tpZUFjY2VwdFBvbGljeShj
b29raWVTdG9yYWdlKSk7CiB9CiAKLWJvb2wgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpjb29raWVz
RW5hYmxlZCgpIGNvbnN0CitIVFRQQ29va2llQWNjZXB0UG9saWN5IE5ldHdvcmtTdG9yYWdlU2Vz
c2lvbjo6Y29va2llQWNjZXB0UG9saWN5KCkgY29uc3QKIHsKICAgICBCRUdJTl9CTE9DS19PQkpD
X0VYQ0VQVElPTlM7Ci0KICAgICBOU0hUVFBDb29raWVBY2NlcHRQb2xpY3kgY29va2llQWNjZXB0
UG9saWN5ID0gaHR0cENvb2tpZUFjY2VwdFBvbGljeShjb29raWVTdG9yYWdlKCkuZ2V0KCkpOwot
ICAgIHJldHVybiBjb29raWVBY2NlcHRQb2xpY3kgPT0gTlNIVFRQQ29va2llQWNjZXB0UG9saWN5
QWx3YXlzIHx8IGNvb2tpZUFjY2VwdFBvbGljeSA9PSBOU0hUVFBDb29raWVBY2NlcHRQb2xpY3lP
bmx5RnJvbU1haW5Eb2N1bWVudERvbWFpbiB8fCBjb29raWVBY2NlcHRQb2xpY3kgPT0gTlNIVFRQ
Q29va2llQWNjZXB0UG9saWN5RXhjbHVzaXZlbHlGcm9tTWFpbkRvY3VtZW50RG9tYWluOwotCisg
ICAgaWYgKGNvb2tpZUFjY2VwdFBvbGljeSA9PSBOU0hUVFBDb29raWVBY2NlcHRQb2xpY3lBbHdh
eXMpCisgICAgICAgIHJldHVybiBIVFRQQ29va2llQWNjZXB0UG9saWN5OjpBbHdheXNBY2NlcHQ7
CisgICAgaWYgKGNvb2tpZUFjY2VwdFBvbGljeSA9PSBOU0hUVFBDb29raWVBY2NlcHRQb2xpY3lP
bmx5RnJvbU1haW5Eb2N1bWVudERvbWFpbikKKyAgICAgICAgcmV0dXJuIEhUVFBDb29raWVBY2Nl
cHRQb2xpY3k6Ok9ubHlGcm9tTWFpbkRvY3VtZW50RG9tYWluOworICAgIGlmIChjb29raWVBY2Nl
cHRQb2xpY3kgPT0gTlNIVFRQQ29va2llQWNjZXB0UG9saWN5RXhjbHVzaXZlbHlGcm9tTWFpbkRv
Y3VtZW50RG9tYWluKQorICAgICAgICByZXR1cm4gSFRUUENvb2tpZUFjY2VwdFBvbGljeTo6RXhj
bHVzaXZlbHlGcm9tTWFpbkRvY3VtZW50RG9tYWluOwogICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQ
VElPTlM7Ci0gICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIEhUVFBDb29raWVBY2NlcHRQ
b2xpY3k6Ok5ldmVyOwogfQogCiBib29sIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Z2V0UmF3Q29v
a2llcyhjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJ
bmZvLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBP
cHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBTaG91bGRBc2tJVFAgc2hvdWxkQXNrSVRQ
LCBWZWN0b3I8Q29va2llPiYgcmF3Q29va2llcykgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9OZXR3b3JrU3RvcmFnZVNlc3Npb25DdXJsLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9OZXR3b3JrU3RvcmFnZVNl
c3Npb25DdXJsLmNwcAppbmRleCBkNzA0NTA0ZTY0OTkxZDc0ZjMxNzBkODM3OGRjMmRlMjY0ODMw
MmFiLi5iZjljNjdhMWVjZTZlYjFmMGE2NDIwMDdmMGUxZDk2ZWQ3ZDVkZjMwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvTmV0d29ya1N0b3JhZ2VTZXNz
aW9uQ3VybC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL05l
dHdvcmtTdG9yYWdlU2Vzc2lvbkN1cmwuY3BwCkBAIC04NSw5ICs4NSwyMSBAQCB2b2lkIE5ldHdv
cmtTdG9yYWdlU2Vzc2lvbjo6c2V0Q29va2llc0Zyb21ET00oY29uc3QgVVJMJiBmaXJzdFBhcnR5
LCBjb25zdCBTYW1lUwogICAgIGNvb2tpZVN0b3JhZ2UoKS5zZXRDb29raWVzRnJvbURPTSgqdGhp
cywgZmlyc3RQYXJ0eSwgc2FtZVNpdGVJbmZvLCB1cmwsIGZyYW1lSUQsIHBhZ2VJRCwgdmFsdWUp
OwogfQogCi1ib29sIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y29va2llc0VuYWJsZWQoKSBjb25z
dAotewotICAgIHJldHVybiBjb29raWVTdG9yYWdlKCkuY29va2llc0VuYWJsZWQoKnRoaXMpOwor
SFRUUENvb2tpZUFjY2VwdFBvbGljeSBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmNvb2tpZUFjY2Vw
dFBvbGljeSgpIGNvbnN0Cit7CisgICAgc3dpdGNoIChjb29raWVTdG9yYWdlKCkuY29va2llQWNj
ZXB0UG9saWN5KCp0aGlzKSkgeworICAgIGNhc2UgQ29va2llQWNjZXB0UG9saWN5OjpBbHdheXM6
CisgICAgICAgIHJldHVybiBIVFRQQ29va2llQWNjZXB0UG9saWN5OjpBbHdheXNBY2NlcHQ7Cisg
ICAgY2FzZSBDb29raWVBY2NlcHRQb2xpY3k6Ok5ldmVyOgorICAgICAgICByZXR1cm4gSFRUUENv
b2tpZUFjY2VwdFBvbGljeTo6TmV2ZXI7CisgICAgY2FzZSBDb29raWVBY2NlcHRQb2xpY3k6Ok9u
bHlGcm9tTWFpbkRvY3VtZW50RG9tYWluOgorICAgICAgICByZXR1cm4gSFRUUENvb2tpZUFjY2Vw
dFBvbGljeTo6T25seUZyb21NYWluRG9jdW1lbnREb21haW47CisgICAgY2FzZSBDb29raWVBY2Nl
cHRQb2xpY3k6OkV4Y2x1c2l2ZWx5RnJvbU1haW5Eb2N1bWVudERvbWFpbjoKKyAgICAgICAgcmV0
dXJuIEhUVFBDb29raWVBY2NlcHRQb2xpY3k6OkV4Y2x1c2l2ZWx5RnJvbU1haW5Eb2N1bWVudERv
bWFpbjsKKyAgICB9CisKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gSFRU
UENvb2tpZUFjY2VwdFBvbGljeTo6T25seUZyb21NYWluRG9jdW1lbnREb21haW47CiB9CiAKIHN0
ZDo6cGFpcjxTdHJpbmcsIGJvb2w+IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y29va2llc0ZvckRP
TShjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZv
LCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRp
b25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBJbmNsdWRlU2VjdXJlQ29va2llcyBpbmNsdWRl
U2VjdXJlQ29va2llcywgU2hvdWxkQXNrSVRQKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL05ldHdvcmtTdG9yYWdlU2Vzc2lvblNvdXAuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL05ldHdvcmtTdG9yYWdlU2Vz
c2lvblNvdXAuY3BwCmluZGV4IGUwNTUwNzZjN2UxZGJjMjQwZWYyMzliN2RlMjA1YzNhODU5NDVm
OTIuLjZkZGI1OTdhYWFjYWI5YzMzYWQ2NWMwZWZkODdjYmU1NzgxNDE5MmUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9OZXR3b3JrU3RvcmFnZVNlc3Np
b25Tb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvTmV0
d29ya1N0b3JhZ2VTZXNzaW9uU291cC5jcHAKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJD
b29raWUuaCIKICNpbmNsdWRlICJDb29raWVSZXF1ZXN0SGVhZGVyRmllbGRQcm94eS5oIgogI2lu
Y2x1ZGUgIkdVbmlxdWVQdHJTb3VwLmgiCisjaW5jbHVkZSAiSFRUUENvb2tpZUFjY2VwdFBvbGlj
eS5oIgogI2luY2x1ZGUgIlJlc291cmNlSGFuZGxlLmgiCiAjaW5jbHVkZSAiU291cE5ldHdvcmtT
ZXNzaW9uLmgiCiAjaW5jbHVkZSAiVVJMU291cC5oIgpAQCAtMjQxLDEwICsyNDIsMTQgQEAgdm9p
ZCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OnNhdmVDcmVkZW50aWFsVG9QZXJzaXN0ZW50U3RvcmFn
ZShjb25zdCBQcm90ZWN0aW9uU3AKICNlbmRpZgogfQogCi1ib29sIE5ldHdvcmtTdG9yYWdlU2Vz
c2lvbjo6Y29va2llc0VuYWJsZWQoKSBjb25zdAorSFRUUENvb2tpZUFjY2VwdFBvbGljeSBOZXR3
b3JrU3RvcmFnZVNlc3Npb246OmNvb2tpZUFjY2VwdFBvbGljeSgpIGNvbnN0CiB7CiAgICAgYXV0
byBwb2xpY3kgPSBzb3VwX2Nvb2tpZV9qYXJfZ2V0X2FjY2VwdF9wb2xpY3koY29va2llU3RvcmFn
ZSgpKTsKLSAgICByZXR1cm4gcG9saWN5ID09IFNPVVBfQ09PS0lFX0pBUl9BQ0NFUFRfQUxXQVlT
IHx8IHBvbGljeSA9PSBTT1VQX0NPT0tJRV9KQVJfQUNDRVBUX05PX1RISVJEX1BBUlRZOworICAg
IGlmIChwb2xpY3kgPT0gU09VUF9DT09LSUVfSkFSX0FDQ0VQVF9BTFdBWVMpCisgICAgICAgIHJl
dHVybiBIVFRQQ29va2llQWNjZXB0UG9saWN5OjpBbHdheXNBY2NlcHQ7CisgICAgaWYgKHBvbGlj
eSA9PSBTT1VQX0NPT0tJRV9KQVJfQUNDRVBUX05PX1RISVJEX1BBUlRZKQorICAgICAgICByZXR1
cm4gSFRUUENvb2tpZUFjY2VwdFBvbGljeTo6T25seUZyb21NYWluRG9jdW1lbnREb21haW47Cisg
ICAgcmV0dXJuIEhUVFBDb29raWVBY2NlcHRQb2xpY3k6Ok5ldmVyOwogfQogCiBzdGF0aWMgaW5s
aW5lIGJvb2wgaHR0cE9ubHlDb29raWVFeGlzdHMoY29uc3QgR1NMaXN0KiBjb29raWVzLCBjb25z
dCBnY2hhciogbmFtZSwgY29uc3QgZ2NoYXIqIHBhdGgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlci5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlci5jcHAKaW5kZXgg
NWQ2ZjA1MjIxNDhlYWY2Y2EwYTkyZTk2MmU0ZTgyOGU3ZGE3ZjcyYi4uNmUyOGFkZmZlZmNlYzdm
MGUzZTVkYTYxOWYxMzI5N2ZiZThkMzYzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvQ29va2llcy9XZWJDb29raWVNYW5hZ2VyLmNwcApAQCAtMTQ0LDEz
ICsxNDQsMTggQEAgdm9pZCBXZWJDb29raWVNYW5hZ2VyOjpzdG9wT2JzZXJ2aW5nQ29va2llQ2hh
bmdlcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiB2b2lkIFdlYkNvb2tpZU1hbmFnZXI6OnNl
dEhUVFBDb29raWVBY2NlcHRQb2xpY3koSFRUUENvb2tpZUFjY2VwdFBvbGljeSBwb2xpY3ksIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBwbGF0
Zm9ybVNldEhUVFBDb29raWVBY2NlcHRQb2xpY3kocG9saWN5KTsKKyAgICBtX3Byb2Nlc3MuY29v
a2llQWNjZXB0UG9saWN5Q2hhbmdlZChwb2xpY3kpOwogCiAgICAgY29tcGxldGlvbkhhbmRsZXIo
KTsKIH0KIAogdm9pZCBXZWJDb29raWVNYW5hZ2VyOjpnZXRIVFRQQ29va2llQWNjZXB0UG9saWN5
KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoSFRUUENvb2tpZUFjY2VwdFBvbGljeSk+JiYgY29tcGxl
dGlvbkhhbmRsZXIpCiB7Ci0gICAgY29tcGxldGlvbkhhbmRsZXIocGxhdGZvcm1HZXRIVFRQQ29v
a2llQWNjZXB0UG9saWN5KCkpOworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIGNvbXBsZXRpb25I
YW5kbGVyKFdlYkNvb2tpZU1hbmFnZXI6OnBsYXRmb3JtR2V0SFRUUENvb2tpZUFjY2VwdFBvbGlj
eSgpKTsKKyNlbHNlCisgICAgY29tcGxldGlvbkhhbmRsZXIobV9wcm9jZXNzLmRlZmF1bHRTdG9y
YWdlU2Vzc2lvbigpLmNvb2tpZUFjY2VwdFBvbGljeSgpKTsKKyNlbmRpZgogfQogCiB9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
Q29va2llcy9XZWJDb29raWVNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlci5oCmluZGV4IDQwNmJiOTBhNzY1ZjVjOWY2ZmUzZjlj
Y2M5ODFmNDJkZDE0Zjg5YmEuLjJjMWQyN2MzMjQzYmI2Y2UyMTY3MzljMjI0ZWM1OWZlNWJiZGE0
OWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ29va2llcy9XZWJD
b29raWVNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Db29raWVz
L1dlYkNvb2tpZU1hbmFnZXIuaApAQCAtMzksMTIgKzM5LDEyIEBACiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIHN0cnVjdCBDb29raWU7CitlbnVtIGNsYXNzIEhUVFBDb29raWVBY2NlcHRQb2xpY3kg
OiB1aW50OF90OwogfQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgTmV0d29ya1Byb2Nl
c3M7Ci1lbnVtIGNsYXNzIEhUVFBDb29raWVBY2NlcHRQb2xpY3kgOiB1aW50OF90OwogCiBjbGFz
cyBXZWJDb29raWVNYW5hZ2VyIDogcHVibGljIE5ldHdvcmtQcm9jZXNzU3VwcGxlbWVudCwgcHVi
bGljIElQQzo6TWVzc2FnZVJlY2VpdmVyIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsK
QEAgLTU1LDcgKzU1LDcgQEAgcHVibGljOgogCiAgICAgc3RhdGljIGNvbnN0IGNoYXIqIHN1cHBs
ZW1lbnROYW1lKCk7CiAKLSAgICB2b2lkIHNldEhUVFBDb29raWVBY2NlcHRQb2xpY3koSFRUUENv
b2tpZUFjY2VwdFBvbGljeSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKKyAgICB2b2lk
IHNldEhUVFBDb29raWVBY2NlcHRQb2xpY3koV2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBvbGlj
eSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKIAogI2lmIFVTRShTT1VQKQogICAgIHZv
aWQgc2V0Q29va2llUGVyc2lzdGVudFN0b3JhZ2UoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFN0cmlu
ZyYgc3RvcmFnZVBhdGgsIFNvdXBDb29raWVQZXJzaXN0ZW50U3RvcmFnZVR5cGUpOwpAQCAtNzks
OSArNzksMTEgQEAgcHJpdmF0ZToKICAgICB2b2lkIGdldEFsbENvb2tpZXMoUEFMOjpTZXNzaW9u
SUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4mJik+JiYp
OwogICAgIHZvaWQgZ2V0Q29va2llcyhQQUw6OlNlc3Npb25JRCwgY29uc3QgVVJMJiwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8V2ViQ29yZTo6Q29va2llPiYmKT4mJik7CiAKLSAgICB2
b2lkIHBsYXRmb3JtU2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShIVFRQQ29va2llQWNjZXB0UG9s
aWN5KTsKLSAgICB2b2lkIGdldEhUVFBDb29raWVBY2NlcHRQb2xpY3koQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChIVFRQQ29va2llQWNjZXB0UG9saWN5KT4mJik7Ci0gICAgSFRUUENvb2tpZUFjY2Vw
dFBvbGljeSBwbGF0Zm9ybUdldEhUVFBDb29raWVBY2NlcHRQb2xpY3koKTsKKyAgICB2b2lkIHBs
YXRmb3JtU2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShXZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0
UG9saWN5KTsKKyAgICB2b2lkIGdldEhUVFBDb29raWVBY2NlcHRQb2xpY3koQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChXZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0UG9saWN5KT4mJik7CisjaWYgUExB
VEZPUk0oQ09DT0EpCisgICAgV2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBvbGljeSBwbGF0Zm9y
bUdldEhUVFBDb29raWVBY2NlcHRQb2xpY3koKTsKKyNlbmRpZgogCiAgICAgdm9pZCBzdGFydE9i
c2VydmluZ0Nvb2tpZUNoYW5nZXMoUEFMOjpTZXNzaW9uSUQpOwogICAgIHZvaWQgc3RvcE9ic2Vy
dmluZ0Nvb2tpZUNoYW5nZXMoUEFMOjpTZXNzaW9uSUQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIubWVzc2FnZXMuaW4g
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlci5t
ZXNzYWdlcy5pbgppbmRleCBhZjRjMDliNzMxZmIwNDk4ZGEzYzUzNzgyYjU4M2ViYjhiMzMwNGQx
Li5hY2Q3NTQ0MGQ4M2YzNDY2NTBjOWYzM2I3NWI1ZDVkMDkzNTIxM2JhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlci5tZXNz
YWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Nvb2tpZXMvV2ViQ29v
a2llTWFuYWdlci5tZXNzYWdlcy5pbgpAQCAtMzUsOCArMzUsOCBAQCBtZXNzYWdlcyAtPiBXZWJD
b29raWVNYW5hZ2VyIE5vdFJlZkNvdW50ZWQgewogICAgIHZvaWQgRGVsZXRlQ29va2llKFBBTDo6
U2Vzc2lvbklEIHNlc3Npb25JRCwgc3RydWN0IFdlYkNvcmU6OkNvb2tpZSBjb29raWUpIC0+ICgp
IEFzeW5jCiAgICAgdm9pZCBEZWxldGVBbGxDb29raWVzTW9kaWZpZWRTaW5jZShQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQsIFdhbGxUaW1lIHRpbWUpIC0+ICgpIEFzeW5jCiAKLSAgICB2b2lkIFNl
dEhUVFBDb29raWVBY2NlcHRQb2xpY3koZW51bTp1aW50OF90IFdlYktpdDo6SFRUUENvb2tpZUFj
Y2VwdFBvbGljeSBwb2xpY3kpIC0+ICgpIEFzeW5jCi0gICAgdm9pZCBHZXRIVFRQQ29va2llQWNj
ZXB0UG9saWN5KCkgLT4gKGVudW06dWludDhfdCBXZWJLaXQ6OkhUVFBDb29raWVBY2NlcHRQb2xp
Y3kgcG9saWN5KSBBc3luYworICAgIHZvaWQgU2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShlbnVt
OnVpbnQ4X3QgV2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBvbGljeSBwb2xpY3kpIC0+ICgpIEFz
eW5jCisgICAgdm9pZCBHZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KCkgLT4gKGVudW06dWludDhf
dCBXZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0UG9saWN5IHBvbGljeSkgQXN5bmMKICAgICAKICAg
ICB2b2lkIFN0YXJ0T2JzZXJ2aW5nQ29va2llQ2hhbmdlcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQpCiAgICAgdm9pZCBTdG9wT2JzZXJ2aW5nQ29va2llQ2hhbmdlcyhQQUw6OlNlc3Npb25JRCBz
ZXNzaW9uSUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Nvb2tp
ZXMvY3VybC9XZWJDb29raWVNYW5hZ2VyQ3VybC5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL0Nvb2tpZXMvY3VybC9XZWJDb29raWVNYW5hZ2VyQ3VybC5jcHAKaW5kZXggYzFhMzZj
ZGU5YjVlZWU2Zjc1MTlmZTAxMzBlYjAzN2ZhZTI1NzIxYi4uN2E1Y2IzOTZlMjljODhkODQ4MGZh
MWNiNjM3MGNiYzQ1YmZmZTdkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9Db29raWVzL2N1cmwvV2ViQ29va2llTWFuYWdlckN1cmwuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ29va2llcy9jdXJsL1dlYkNvb2tpZU1hbmFnZXJDdXJsLmNw
cApAQCAtMjYsOCArMjYsOCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIldlYkNv
b2tpZU1hbmFnZXIuaCIKIAotI2luY2x1ZGUgIkhUVFBDb29raWVBY2NlcHRQb2xpY3kuaCIKICNp
bmNsdWRlICJOZXR3b3JrUHJvY2Vzcy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvSFRUUENvb2tpZUFj
Y2VwdFBvbGljeS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmg+
CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtNTcsMjIgKzU3LDQgQEAgdm9pZCBXZWJDb29raWVN
YW5hZ2VyOjpwbGF0Zm9ybVNldEhUVFBDb29raWVBY2NlcHRQb2xpY3koSFRUUENvb2tpZUFjY2Vw
dFBvbGljeQogICAgIH0pOwogfQogCi1IVFRQQ29va2llQWNjZXB0UG9saWN5IFdlYkNvb2tpZU1h
bmFnZXI6OnBsYXRmb3JtR2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeSgpCi17Ci0gICAgY29uc3Qg
YXV0byYgbmV0d29ya1N0b3JhZ2VTZXNzaW9uID0gbV9wcm9jZXNzLmRlZmF1bHRTdG9yYWdlU2Vz
c2lvbigpOwotICAgIHN3aXRjaCAobmV0d29ya1N0b3JhZ2VTZXNzaW9uLmNvb2tpZVN0b3JhZ2Uo
KS5jb29raWVBY2NlcHRQb2xpY3kobmV0d29ya1N0b3JhZ2VTZXNzaW9uKSkgewotICAgIGNhc2Ug
Q29va2llQWNjZXB0UG9saWN5OjpBbHdheXM6Ci0gICAgICAgIHJldHVybiBIVFRQQ29va2llQWNj
ZXB0UG9saWN5OjpBbHdheXNBY2NlcHQ7Ci0gICAgY2FzZSBDb29raWVBY2NlcHRQb2xpY3k6Ok5l
dmVyOgotICAgICAgICByZXR1cm4gSFRUUENvb2tpZUFjY2VwdFBvbGljeTo6TmV2ZXI7Ci0gICAg
Y2FzZSBDb29raWVBY2NlcHRQb2xpY3k6Ok9ubHlGcm9tTWFpbkRvY3VtZW50RG9tYWluOgotICAg
ICAgICByZXR1cm4gSFRUUENvb2tpZUFjY2VwdFBvbGljeTo6T25seUZyb21NYWluRG9jdW1lbnRE
b21haW47Ci0gICAgY2FzZSBDb29raWVBY2NlcHRQb2xpY3k6OkV4Y2x1c2l2ZWx5RnJvbU1haW5E
b2N1bWVudERvbWFpbjoKLSAgICAgICAgcmV0dXJuIEhUVFBDb29raWVBY2NlcHRQb2xpY3k6OkV4
Y2x1c2l2ZWx5RnJvbU1haW5Eb2N1bWVudERvbWFpbjsKLSAgICB9Ci0KLSAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKLSAgICByZXR1cm4gSFRUUENvb2tpZUFjY2VwdFBvbGljeTo6T25seUZyb21N
YWluRG9jdW1lbnREb21haW47Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Db29raWVzL21hYy9XZWJDb29raWVNYW5h
Z2VyTWFjLm1tIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Db29raWVzL21hYy9XZWJD
b29raWVNYW5hZ2VyTWFjLm1tCmluZGV4IGJjOWU5MjQzZDQyNzM4ZDBmZTJjNjI4Y2Q3ZDQxOWVh
MWE0MDZlZjcuLjVjOGIzNGM4MjU1ZGJkZjc5MDkwYzkxOGYxMTE3YTRlYzE1ODE3MzYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ29va2llcy9tYWMvV2ViQ29va2ll
TWFuYWdlck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Nvb2tpZXMv
bWFjL1dlYkNvb2tpZU1hbmFnZXJNYWMubW0KQEAgLTI2LDkgKzI2LDkgQEAKICNpbXBvcnQgImNv
bmZpZy5oIgogI2ltcG9ydCAiV2ViQ29va2llTWFuYWdlci5oIgogCi0jaW1wb3J0ICJIVFRQQ29v
a2llQWNjZXB0UG9saWN5LmgiCiAjaW1wb3J0ICJOZXR3b3JrUHJvY2Vzcy5oIgogI2ltcG9ydCAi
TmV0d29ya1Nlc3Npb24uaCIKKyNpbXBvcnQgPFdlYkNvcmUvSFRUUENvb2tpZUFjY2VwdFBvbGlj
eS5oPgogI2ltcG9ydCA8V2ViQ29yZS9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaD4KICNpbXBvcnQg
PHBhbC9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmg+CiAjaW1wb3J0IDx3dGYvUHJvY2Vzc1ByaXZpbGVn
ZS5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Db29raWVzL3Nv
dXAvV2ViQ29va2llTWFuYWdlclNvdXAuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9Db29raWVzL3NvdXAvV2ViQ29va2llTWFuYWdlclNvdXAuY3BwCmluZGV4IGVhOTE1MjJjMDlh
NDgwY2Q2MmY0Yzg5YWM4NDJjN2VkMTMyMjFiODEuLmNiZmNhZWU1NjNhMTI2NjhkNDMyMTk2MmMw
NjhmMjkyMThiZTMyNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
Q29va2llcy9zb3VwL1dlYkNvb2tpZU1hbmFnZXJTb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL0Nvb2tpZXMvc291cC9XZWJDb29raWVNYW5hZ2VyU291cC5jcHAKQEAg
LTI2LDEwICsyNiwxMCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIldlYkNvb2tp
ZU1hbmFnZXIuaCIKIAotI2luY2x1ZGUgIkhUVFBDb29raWVBY2NlcHRQb2xpY3kuaCIKICNpbmNs
dWRlICJOZXR3b3JrUHJvY2Vzcy5oIgogI2luY2x1ZGUgIk5ldHdvcmtTZXNzaW9uU291cC5oIgog
I2luY2x1ZGUgIlNvdXBDb29raWVQZXJzaXN0ZW50U3RvcmFnZVR5cGUuaCIKKyNpbmNsdWRlIDxX
ZWJDb3JlL0hUVFBDb29raWVBY2NlcHRQb2xpY3kuaD4KICNpbmNsdWRlIDxXZWJDb3JlL05ldHdv
cmtTdG9yYWdlU2Vzc2lvbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU291cE5ldHdvcmtTZXNzaW9u
Lmg+CiAjaW5jbHVkZSA8bGlic291cC9zb3VwLmg+CkBAIC02MCwyMSArNjAsNiBAQCB2b2lkIFdl
YkNvb2tpZU1hbmFnZXI6OnBsYXRmb3JtU2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShIVFRQQ29v
a2llQWNjZXB0UG9saWN5CiAgICAgfSk7CiB9CiAKLUhUVFBDb29raWVBY2NlcHRQb2xpY3kgV2Vi
Q29va2llTWFuYWdlcjo6cGxhdGZvcm1HZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KCkKLXsKLSAg
ICBzd2l0Y2ggKHNvdXBfY29va2llX2phcl9nZXRfYWNjZXB0X3BvbGljeShtX3Byb2Nlc3MuZGVm
YXVsdFN0b3JhZ2VTZXNzaW9uKCkuY29va2llU3RvcmFnZSgpKSkgewotICAgIGNhc2UgU09VUF9D
T09LSUVfSkFSX0FDQ0VQVF9BTFdBWVM6Ci0gICAgICAgIHJldHVybiBIVFRQQ29va2llQWNjZXB0
UG9saWN5OjpBbHdheXNBY2NlcHQ7Ci0gICAgY2FzZSBTT1VQX0NPT0tJRV9KQVJfQUNDRVBUX05F
VkVSOgotICAgICAgICByZXR1cm4gSFRUUENvb2tpZUFjY2VwdFBvbGljeTo6TmV2ZXI7Ci0gICAg
Y2FzZSBTT1VQX0NPT0tJRV9KQVJfQUNDRVBUX05PX1RISVJEX1BBUlRZOgotICAgICAgICByZXR1
cm4gSFRUUENvb2tpZUFjY2VwdFBvbGljeTo6T25seUZyb21NYWluRG9jdW1lbnREb21haW47Ci0g
ICAgfQotCi0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIEhUVFBDb29raWVB
Y2NlcHRQb2xpY3k6Ok9ubHlGcm9tTWFpbkRvY3VtZW50RG9tYWluOwotfQotCiB2b2lkIFdlYkNv
b2tpZU1hbmFnZXI6OnNldENvb2tpZVBlcnNpc3RlbnRTdG9yYWdlKFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCwgY29uc3QgU3RyaW5nJiBzdG9yYWdlUGF0aCwgU291cENvb2tpZVBlcnNpc3RlbnRT
dG9yYWdlVHlwZSBzdG9yYWdlVHlwZSkKIHsKICAgICBpZiAoYXV0byogbmV0d29ya1Nlc3Npb24g
PSBtX3Byb2Nlc3MubmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3Bw
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy5jcHAKaW5kZXggYjJkNGM2YzFmNjE5NjA3MTQyZWFjNzcyNGJjYmJhMDgxOGYzYjA1Mi4u
ZDE4YmUzMGU2Nzg1ZGZjMDgxMjc4NmI1ZTQ4YjUzNzhmZDBmODNlOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2Vzcy5jcHAKQEAgLTQ2Myw2ICs0NjMsMTEgQEAgdm9pZCBOZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzczo6c2V0T25MaW5lU3RhdGUoYm9vbCBpc09uTGluZSkKICAgICBtX2Nvbm5l
Y3Rpb24tPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6U2V0T25MaW5l
U3RhdGUoaXNPbkxpbmUpLCAwKTsKIH0KIAordm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzczo6Y29va2llQWNjZXB0UG9saWN5Q2hhbmdlZChIVFRQQ29va2llQWNjZXB0UG9saWN5IG5l
d1BvbGljeSkKK3sKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9j
ZXNzQ29ubmVjdGlvbjo6Q29va2llQWNjZXB0UG9saWN5Q2hhbmdlZChuZXdQb2xpY3kpLCAwKTsK
K30KKwogdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6cmVtb3ZlTG9hZElkZW50
aWZpZXIoUmVzb3VyY2VMb2FkSWRlbnRpZmllciBpZGVudGlmaWVyKQogewogICAgIFJFTEVBU0Vf
QVNTRVJUKGlkZW50aWZpZXIpOwpAQCAtNTkzLDE0ICs1OTgsNiBAQCB2b2lkIE5ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzOjpzZXRDb29raWVzRnJvbURPTShjb25zdCBVUkwmIGZpcnN0UGFy
dHksIGNvbgogI2VuZGlmCiB9CiAKLXZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6
OmNvb2tpZXNFbmFibGVkKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlv
bkhhbmRsZXIpCi17Ci0gICAgYXV0byogbmV0d29ya1N0b3JhZ2VTZXNzaW9uID0gc3RvcmFnZVNl
c3Npb24oKTsKLSAgICBpZiAoIW5ldHdvcmtTdG9yYWdlU2Vzc2lvbikKLSAgICAgICAgcmV0dXJu
IGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsKLSAgICBjb21wbGV0aW9uSGFuZGxlcihuZXR3b3Jr
U3RvcmFnZVNlc3Npb24tPmNvb2tpZXNFbmFibGVkKCkpOwotfQotCiB2b2lkIE5ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzOjpjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShjb25zdCBV
UkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBjb25zdCBV
UkwmIHVybCwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25hbDxQYWdl
SWRlbnRpZmllcj4gcGFnZUlELCBJbmNsdWRlU2VjdXJlQ29va2llcyBpbmNsdWRlU2VjdXJlQ29v
a2llcywgU2hvdWxkQXNrSVRQIHNob3VsZEFza0lUUCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChT
dHJpbmcsIGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIGF1dG8qIG5ldHdvcmtT
dG9yYWdlU2Vzc2lvbiA9IHN0b3JhZ2VTZXNzaW9uKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmggYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgK
aW5kZXggODM5NzQzMWMwMzMxM2NjMmMwNTBkNTEyYzk1MmFlN2UzZmVlOWE2NS4uZTgzNWU2NDFi
NjA5MjZkYmQzNGY0NDFmNGUzOGQwNWM3Yzc1ZjJjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mu
aApAQCAtNjEsNiArNjEsNyBAQCBlbnVtIGNsYXNzIFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkIDog
Ym9vbDsKIGVudW0gY2xhc3MgU2hvdWxkQXNrSVRQIDogYm9vbDsKIHN0cnVjdCBTYW1lU2l0ZUlu
Zm87CiAKK2VudW0gY2xhc3MgSFRUUENvb2tpZUFjY2VwdFBvbGljeSA6IHVpbnQ4X3Q7CiBlbnVt
IGNsYXNzIEluY2x1ZGVTZWN1cmVDb29raWVzIDogYm9vbDsKIH0KIApAQCAtMTY3LDYgKzE2OCw4
IEBAIHB1YmxpYzoKIAogICAgIE5ldHdvcmtTY2hlbWVSZWdpc3RyeSYgc2NoZW1lUmVnaXN0cnko
KSB7IHJldHVybiBtX3NjaGVtZVJlZ2lzdHJ5LmdldCgpOyB9CiAKKyAgICB2b2lkIGNvb2tpZUFj
Y2VwdFBvbGljeUNoYW5nZWQoV2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBvbGljeSk7CisKIHBy
aXZhdGU6CiAgICAgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoTmV0d29ya1Byb2Nlc3Mm
LCBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciwgUEFMOjpTZXNzaW9uSUQsIElQQzo6Q29ubmVj
dGlvbjo6SWRlbnRpZmllcik7CiAKQEAgLTIwMCw3ICsyMDMsNiBAQCBwcml2YXRlOgogCiAgICAg
dm9pZCBjb29raWVzRm9yRE9NKGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6
U2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJD
b3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6SW5jbHVkZVNlY3VyZUNvb2tpZXMsIFdlYkNv
cmU6OlNob3VsZEFza0lUUCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcgY29va2llU3Ry
aW5nLCBib29sIHNlY3VyZUNvb2tpZXNBY2Nlc3NlZCk+JiYpOwogICAgIHZvaWQgc2V0Q29va2ll
c0Zyb21ET00oY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBXZWJDb3JlOjpTYW1lU2l0ZUlu
Zm8mLCBjb25zdCBVUkwmLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6OlBhZ2VJ
ZGVudGlmaWVyLCBXZWJDb3JlOjpTaG91bGRBc2tJVFAsIGNvbnN0IFN0cmluZyYpOwotICAgIHZv
aWQgY29va2llc0VuYWJsZWQoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CiAgICAg
dm9pZCBjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShjb25zdCBVUkwmIGZpcnN0UGFydHks
IGNvbnN0IFdlYkNvcmU6OlNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYsIE9wdGlvbmFsPFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllcj4sIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiwg
V2ViQ29yZTo6SW5jbHVkZVNlY3VyZUNvb2tpZXMsIFdlYkNvcmU6OlNob3VsZEFza0lUUCwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcgY29va2llU3RyaW5nLCBib29sIHNlY3VyZUNvb2tp
ZXNBY2Nlc3NlZCk+JiYpOwogICAgIHZvaWQgZ2V0UmF3Q29va2llcyhjb25zdCBVUkwmIGZpcnN0
UGFydHksIGNvbnN0IFdlYkNvcmU6OlNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYsIE9wdGlvbmFs
PFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4sIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlm
aWVyPiwgV2ViQ29yZTo6U2hvdWxkQXNrSVRQLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFZlY3Rv
cjxXZWJDb3JlOjpDb29raWU+JiYpPiYmKTsKICAgICB2b2lkIGRlbGV0ZUNvb2tpZShjb25zdCBV
UkwmLCBjb25zdCBTdHJpbmcmIGNvb2tpZU5hbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5p
biBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MubWVzc2FnZXMuaW4KaW5kZXggODRjZmJkZjNmYjkzNGQ3OTE0MzcxNjIxMWEyNTA2ZmNm
NjEzNGQ1YS4uMDIwYjQ3YTc3YjczYzE4YTZhNjJkNDY1MDE1YTdjYTRiYzNhYjA1MCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzcy5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCkBAIC0zNiw3ICszNiw2IEBA
IG1lc3NhZ2VzIC0+IE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzIExlZ2FjeVJlY2VpdmVy
IHsKIAogICAgIENvb2tpZXNGb3JET00oVVJMIGZpcnN0UGFydHksIHN0cnVjdCBXZWJDb3JlOjpT
YW1lU2l0ZUluZm8gc2FtZVNpdGVJbmZvLCBVUkwgdXJsLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIgZnJhbWVJRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCBlbnVtOmJvb2wgV2Vi
Q29yZTo6SW5jbHVkZVNlY3VyZUNvb2tpZXMgaW5jbHVkZVNlY3VyZUNvb2tpZXMsIGVudW06Ym9v
bCBXZWJDb3JlOjpTaG91bGRBc2tJVFAgc2hvdWxkQXNrSVRQKSAtPiAoU3RyaW5nIGNvb2tpZVN0
cmluZywgYm9vbCBkaWRBY2Nlc3NTZWN1cmVDb29raWVzKSBTeW5jaHJvbm91cwogICAgIFNldENv
b2tpZXNGcm9tRE9NKFVSTCBmaXJzdFBhcnR5LCBzdHJ1Y3QgV2ViQ29yZTo6U2FtZVNpdGVJbmZv
IHNhbWVTaXRlSW5mbywgVVJMIHVybCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQs
IFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgZW51bTpib29sIFdlYkNvcmU6OlNob3Vs
ZEFza0lUUCBzaG91bGRBc2tJVFAsIFN0cmluZyBjb29raWVTdHJpbmcpCi0gICAgQ29va2llc0Vu
YWJsZWQoKSAtPiAoYm9vbCBlbmFibGVkKSBTeW5jaHJvbm91cwogICAgIENvb2tpZVJlcXVlc3RI
ZWFkZXJGaWVsZFZhbHVlKFVSTCBmaXJzdFBhcnR5LCBzdHJ1Y3QgV2ViQ29yZTo6U2FtZVNpdGVJ
bmZvIHNhbWVTaXRlSW5mbywgVVJMIHVybCwgT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyPiBmcmFtZUlELCBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBl
bnVtOmJvb2wgV2ViQ29yZTo6SW5jbHVkZVNlY3VyZUNvb2tpZXMgaW5jbHVkZVNlY3VyZUNvb2tp
ZXMsIGVudW06Ym9vbCBXZWJDb3JlOjpTaG91bGRBc2tJVFAgc2hvdWxkQXNrSVRQKSAtPiAoU3Ry
aW5nIGNvb2tpZVN0cmluZywgYm9vbCBkaWRBY2Nlc3NTZWN1cmVDb29raWVzKSBTeW5jaHJvbm91
cwogICAgIEdldFJhd0Nvb2tpZXMoVVJMIGZpcnN0UGFydHksIHN0cnVjdCBXZWJDb3JlOjpTYW1l
U2l0ZUluZm8gc2FtZVNpdGVJbmZvLCBVUkwgdXJsLCBPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXI+IGZyYW1lSUQsIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiBwYWdl
SUQsIGVudW06Ym9vbCBXZWJDb3JlOjpTaG91bGRBc2tJVFAgc2hvdWxkQXNrSVRQKSAtPiAoVmVj
dG9yPFdlYkNvcmU6OkNvb2tpZT4gY29va2llcykgU3luY2hyb25vdXMKICAgICBEZWxldGVDb29r
aWUoVVJMIHVybCwgU3RyaW5nIGNvb2tpZU5hbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCmluZGV4IDM5OTI2ZWI2YWE4OGE5YTI2MWIzNDA3
ODVmNzQxOGI4OWZmMjExNjguLmFmMjRjZmZmODcxOWI3ODBiNWI4MDgyZjJhM2U4MTEyMTI3Yzcx
YmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nl
c3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3Mu
Y3BwCkBAIC03MCw2ICs3MCw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9ETlMuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL0RlcHJlY2F0ZWRHbG9iYWxTZXR0aW5ncy5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
RGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0hUVFBDb29raWVB
Y2NlcHRQb2xpY3kuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0xlZ2FjeVNjaGVtZVJlZ2lzdHJ5Lmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9Mb2dJbml0aWFsaXphdGlvbi5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvTUlNRVR5cGVSZWdpc3RyeS5oPgpAQCAtMzY4LDExICszNjksMTEgQEAgdm9pZCBOZXR3b3Jr
UHJvY2Vzczo6aW5pdGlhbGl6ZUNvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9u
KQogICAgICAgICBzdXBwbGVtZW50LT5pbml0aWFsaXplQ29ubmVjdGlvbihjb25uZWN0aW9uKTsK
IH0KIAotdm9pZCBOZXR3b3JrUHJvY2Vzczo6Y3JlYXRlTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MoUHJvY2Vzc0lkZW50aWZpZXIgaWRlbnRpZmllciwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPElQQzo6QXR0YWNobWVudD4mJik+
JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIE5ldHdvcmtQcm9jZXNzOjpjcmVhdGVOZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2VzcyhQcm9jZXNzSWRlbnRpZmllciBpZGVudGlmaWVyLCBQQUw6
OlNlc3Npb25JRCBzZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8SVBD
OjpBdHRhY2htZW50PiYmLCBIVFRQQ29va2llQWNjZXB0UG9saWN5KT4mJiBjb21wbGV0aW9uSGFu
ZGxlcikKIHsKICAgICBhdXRvIGlwY0Nvbm5lY3Rpb24gPSBjcmVhdGVJUENDb25uZWN0aW9uUGFp
cigpOwogICAgIGlmICghaXBjQ29ubmVjdGlvbikgewotICAgICAgICBjb21wbGV0aW9uSGFuZGxl
cih7IH0pOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcih7IH0sIEhUVFBDb29raWVBY2NlcHRQ
b2xpY3k6Ok5ldmVyKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtMzgyLDcgKzM4Mywx
MSBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpjcmVhdGVOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2VzcyhQcm9jZXNzSWRlbnRpZmllciBpZGVudAogICAgIEFTU0VSVCghbV93ZWJQcm9jZXNzQ29u
bmVjdGlvbnMuY29udGFpbnMoaWRlbnRpZmllcikpOwogICAgIG1fd2ViUHJvY2Vzc0Nvbm5lY3Rp
b25zLmFkZChpZGVudGlmaWVyLCBXVEZNb3ZlKG5ld0Nvbm5lY3Rpb24pKTsKIAotICAgIGNvbXBs
ZXRpb25IYW5kbGVyKFdURk1vdmUoaXBjQ29ubmVjdGlvbi0+c2Vjb25kKSk7CisgICAgSFRUUENv
b2tpZUFjY2VwdFBvbGljeSBjb29raWVBY2NlcHRQb2xpY3kgPSBIVFRQQ29va2llQWNjZXB0UG9s
aWN5OjpOZXZlcjsKKyAgICBpZiAoYXV0byogc3RvcmFnZSA9IHN0b3JhZ2VTZXNzaW9uKHNlc3Np
b25JRCkpCisgICAgICAgIGNvb2tpZUFjY2VwdFBvbGljeSA9IHN0b3JhZ2UtPmNvb2tpZUFjY2Vw
dFBvbGljeSgpOworCisgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShpcGNDb25uZWN0aW9u
LT5zZWNvbmQpLCBjb29raWVBY2NlcHRQb2xpY3kpOwogCiAgICAgY29ubmVjdGlvbi5zZXRPbkxp
bmVTdGF0ZShOZXR3b3JrU3RhdGVOb3RpZmllcjo6c2luZ2xldG9uKCkub25MaW5lKCkpOwogCkBA
IC01MDcsNiArNTEyLDEyIEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmVuc3VyZVNlc3Npb24oY29u
c3QgUEFMOjpTZXNzaW9uSUQmIHNlc3Npb25JRCwgYm9vbCBzaG91bGRVCiAjZW5kaWYKIH0KIAor
dm9pZCBOZXR3b3JrUHJvY2Vzczo6Y29va2llQWNjZXB0UG9saWN5Q2hhbmdlZChIVFRQQ29va2ll
QWNjZXB0UG9saWN5IG5ld1BvbGljeSkKK3sKKyAgICBmb3IgKGF1dG8mIGNvbm5lY3Rpb24gOiBt
X3dlYlByb2Nlc3NDb25uZWN0aW9ucy52YWx1ZXMoKSkKKyAgICAgICAgY29ubmVjdGlvbi0+Y29v
a2llQWNjZXB0UG9saWN5Q2hhbmdlZChuZXdQb2xpY3kpOworfQorCiBXZWJDb3JlOjpOZXR3b3Jr
U3RvcmFnZVNlc3Npb24qIE5ldHdvcmtQcm9jZXNzOjpzdG9yYWdlU2Vzc2lvbihjb25zdCBQQUw6
OlNlc3Npb25JRCYgc2Vzc2lvbklEKSBjb25zdAogewogICAgIGlmIChzZXNzaW9uSUQgPT0gUEFM
OjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAppbmRleCAzZWY4NmVjMzBhMDE1ODgzZGNhYzc5YTIy
YmY1Mjg2YzVlZmMyMWU0Li45NDVmNzQ0MTM4Y2RmMTQ5NzczMDEwNmYwOTM5NGVjNzI2NzU3NmU0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNz
LmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCkBA
IC04MSw2ICs4MSw3IEBAIGNsYXNzIFN0b3JhZ2VRdW90YU1hbmFnZXI7CiBjbGFzcyBOZXR3b3Jr
U3RvcmFnZVNlc3Npb247CiBjbGFzcyBSZXNvdXJjZUVycm9yOwogY2xhc3MgU1dTZXJ2ZXI7Citl
bnVtIGNsYXNzIEhUVFBDb29raWVBY2NlcHRQb2xpY3kgOiB1aW50OF90OwogZW51bSBjbGFzcyBJ
bmNsdWRlSHR0cE9ubHlDb29raWVzIDogYm9vbDsKIGVudW0gY2xhc3MgU3RvcmVkQ3JlZGVudGlh
bHNQb2xpY3kgOiB1aW50OF90OwogZW51bSBjbGFzcyBTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hv
d24gOiBib29sOwpAQCAtMzQzLDYgKzM0NCw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlc2V0U2Vy
dmljZVdvcmtlckZldGNoVGltZW91dEZvclRlc3RpbmcoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgp
PiYmKTsKICAgICBTZWNvbmRzIHNlcnZpY2VXb3JrZXJGZXRjaFRpbWVvdXQoKSBjb25zdCB7IHJl
dHVybiBtX3NlcnZpY2VXb3JrZXJGZXRjaFRpbWVvdXQ7IH0KIAorICAgIHZvaWQgY29va2llQWNj
ZXB0UG9saWN5Q2hhbmdlZChXZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0UG9saWN5KTsKKwogcHJp
dmF0ZToKICAgICB2b2lkIHBsYXRmb3JtSW5pdGlhbGl6ZU5ldHdvcmtQcm9jZXNzKGNvbnN0IE5l
dHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJik7CiAgICAgc3RkOjp1bmlxdWVfcHRyPFdl
YkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbj4gcGxhdGZvcm1DcmVhdGVEZWZhdWx0U3RvcmFn
ZVNlc3Npb24oKSBjb25zdDsKQEAgLTM4Myw3ICszODYsNyBAQCBwcml2YXRlOgogICAgIC8vIE1l
c3NhZ2UgSGFuZGxlcnMKICAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTmV0d29ya1Byb2Nlc3NNZXNz
YWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6
OkVuY29kZXI+Jik7CiAgICAgdm9pZCBpbml0aWFsaXplTmV0d29ya1Byb2Nlc3MoTmV0d29ya1By
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmJik7Ci0gICAgdm9pZCBjcmVhdGVOZXR3b3JrQ29ubmVj
dGlvblRvV2ViUHJvY2VzcyhXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciwgUEFMOjpTZXNzaW9u
SUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8SVBDOjpBdHRhY2htZW50PiYmKT4m
Jik7CisgICAgdm9pZCBjcmVhdGVOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyhXZWJDb3Jl
OjpQcm9jZXNzSWRlbnRpZmllciwgUEFMOjpTZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoT3B0aW9uYWw8SVBDOjpBdHRhY2htZW50PiYmLCBXZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0
UG9saWN5KT4mJik7CiAKICAgICB2b2lkIGZldGNoV2Vic2l0ZURhdGEoUEFMOjpTZXNzaW9uSUQs
IE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+LCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFGZXRjaE9w
dGlvbj4sIHVpbnQ2NF90IGNhbGxiYWNrSUQpOwogICAgIHZvaWQgZGVsZXRlV2Vic2l0ZURhdGEo
UEFMOjpTZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+LCBXYWxsVGltZSBtb2Rp
ZmllZFNpbmNlLCB1aW50NjRfdCBjYWxsYmFja0lEKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCmluZGV4IGE1NjYx
M2NkYTM0YzdlM2FjZTU1NGZkNzhiMzU5NGJhYmFiZDY2MDYuLjM5ZDExZjNhMjY1MzMzNjZiNjli
MmY3MDVhOWRkYjFjYzMxYzE4YTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgpAQCAtMjUsNyArMjUsNyBAQCBt
ZXNzYWdlcyAtPiBOZXR3b3JrUHJvY2VzcyBMZWdhY3lSZWNlaXZlciB7CiAgICAgSW5pdGlhbGl6
ZU5ldHdvcmtQcm9jZXNzKHN0cnVjdCBXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzIHByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMpCiAKICAgICAjIENyZWF0ZXMgYSBjb25u
ZWN0aW9uIGZvciBjb21tdW5pY2F0aW9uIHdpdGggYSBXZWJQcm9jZXNzCi0gICAgQ3JlYXRlTmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIgcHJv
Y2Vzc0lkZW50aWZpZXIsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgLT4gKE9wdGlvbmFsPElQ
Qzo6QXR0YWNobWVudD4gY29ubmVjdGlvbklkZW50aWZpZXIpIEFzeW5jCisgICAgQ3JlYXRlTmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIgcHJv
Y2Vzc0lkZW50aWZpZXIsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgLT4gKE9wdGlvbmFsPElQ
Qzo6QXR0YWNobWVudD4gY29ubmVjdGlvbklkZW50aWZpZXIsIGVudW06dWludDhfdCBXZWJDb3Jl
OjpIVFRQQ29va2llQWNjZXB0UG9saWN5IGNvb2tpZUFjY2VwdFBvbGljeSkgQXN5bmMKIAogI2lm
IFVTRShTT1VQKQogICAgIFNldElnbm9yZVRMU0Vycm9ycyhib29sIGlnbm9yZVRMU0Vycm9ycykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAppbmRleCAyYzAyNjZjZTVlZGMyY2U1ZTkwMmQz
MTVhOGFiZjY3MmFlM2IyZjUxLi42YjUxNzVhNzYxMjg4NWE0ZjYzODYwZDNmNmQ5OThmNzA1ZTU5
NWU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCkBAIC0zNCw3ICszNCw3IEBACiAj
aW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKICNpZiBVU0UoU09VUCkKLSNpbmNsdWRl
ICJIVFRQQ29va2llQWNjZXB0UG9saWN5LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9IVFRQQ29va2ll
QWNjZXB0UG9saWN5Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Tb3VwTmV0d29ya1Byb3h5U2V0dGlu
Z3MuaD4KICNlbmRpZgogCkBAIC03NSw3ICs3NSw3IEBAIHN0cnVjdCBOZXR3b3JrUHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVycyB7CiAgICAgV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMgZGVmYXVs
dERhdGFTdG9yZVBhcmFtZXRlcnM7CiAgICAgCiAjaWYgVVNFKFNPVVApCi0gICAgSFRUUENvb2tp
ZUFjY2VwdFBvbGljeSBjb29raWVBY2NlcHRQb2xpY3kgeyBIVFRQQ29va2llQWNjZXB0UG9saWN5
OjpBbHdheXNBY2NlcHQgfTsKKyAgICBXZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0UG9saWN5IGNv
b2tpZUFjY2VwdFBvbGljeSB7IFdlYkNvcmU6OkhUVFBDb29raWVBY2NlcHRQb2xpY3k6OkFsd2F5
c0FjY2VwdCB9OwogICAgIGJvb2wgaWdub3JlVExTRXJyb3JzIHsgZmFsc2UgfTsKICAgICBWZWN0
b3I8U3RyaW5nPiBsYW5ndWFnZXM7CiAgICAgV2ViQ29yZTo6U291cE5ldHdvcmtQcm94eVNldHRp
bmdzIHByb3h5U2V0dGluZ3M7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9IVFRQ
Q29va2llQWNjZXB0UG9saWN5LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9IVFRQQ29va2llQWNj
ZXB0UG9saWN5LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ1N2MyMzQ0YzljODk4
NmZmNmUyMzIzMzA1YTI4NDMzZDg2ZWEwZWIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvSFRUUENvb2tpZUFjY2VwdFBv
bGljeS5oCisrKyAvZGV2L251bGwKQEAgLTEsNTEgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
Ci0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi1uYW1lc3BhY2UgV2Vi
S2l0IHsKLQotZW51bSBjbGFzcyBIVFRQQ29va2llQWNjZXB0UG9saWN5IDogdWludDhfdCB7Ci0g
ICAgQWx3YXlzQWNjZXB0ID0gMCwKLSAgICBOZXZlciA9IDEsCi0gICAgT25seUZyb21NYWluRG9j
dW1lbnREb21haW4gPSAyLAotICAgIEV4Y2x1c2l2ZWx5RnJvbU1haW5Eb2N1bWVudERvbWFpbiA9
IDMsCi19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotbmFtZXNwYWNlIFdURiB7Ci0KLXRl
bXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViS2l0OjpIVFRQQ29va2llQWNjZXB0UG9saWN5
PiB7Ci0gICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKLSAgICAgICAgV2ViS2l0OjpIVFRQ
Q29va2llQWNjZXB0UG9saWN5LAotICAgICAgICBXZWJLaXQ6OkhUVFBDb29raWVBY2NlcHRQb2xp
Y3k6OkFsd2F5c0FjY2VwdCwKLSAgICAgICAgV2ViS2l0OjpIVFRQQ29va2llQWNjZXB0UG9saWN5
OjpOZXZlciwKLSAgICAgICAgV2ViS2l0OjpIVFRQQ29va2llQWNjZXB0UG9saWN5OjpPbmx5RnJv
bU1haW5Eb2N1bWVudERvbWFpbiwKLSAgICAgICAgV2ViS2l0OjpIVFRQQ29va2llQWNjZXB0UG9s
aWN5OjpFeGNsdXNpdmVseUZyb21NYWluRG9jdW1lbnREb21haW4KLSAgICA+OwotfTsKLQotfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVycy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
cy5oCmluZGV4IDQ5NmNmYzlmN2U4NGFhYzYyNmJlMTdlN2U1YjAxNmI4ZDVjYzUwMGYuLmI0MzAy
ZDY4Y2U3YzE2OTYyZWViODcyNzdjNWY4M2ZiODdmNDg4YzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKQEAgLTQ3LDcgKzQ3
LDcgQEAKICNlbmRpZgogCiAjaWYgVVNFKFNPVVApCi0jaW5jbHVkZSAiSFRUUENvb2tpZUFjY2Vw
dFBvbGljeS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvSFRUUENvb2tpZUFjY2VwdFBvbGljeS5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvU291cE5ldHdvcmtQcm94eVNldHRpbmdzLmg+CiAjZW5kaWYKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUhUVFBDb29raWVTdG9y
ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJSFRUUENvb2tpZVN0b3JlLmNw
cAppbmRleCBjMmY3ZWEyMDExMDUwMTJlMmU3MzQ5OGFjMTc3ZmRmZDMwODNjOTE3Li4yZWUzMGJk
ZmJmNzg1OTc3MTQyYmE3N2NlMGEzYjgwZTljNmNmMzVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQVBJSFRUUENvb2tpZVN0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQVBJSFRUUENvb2tpZVN0b3JlLmNwcApAQCAtMzEsNiArMzEsNyBA
QAogI2luY2x1ZGUgIldlYnNpdGVEYXRhU3RvcmUuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0Nvb2tp
ZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQ29va2llU3RvcmFnZS5oPgorI2luY2x1ZGUgPFdlYkNv
cmUvSFRUUENvb2tpZUFjY2VwdFBvbGljeS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTmV0d29ya1N0
b3JhZ2VTZXNzaW9uLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CkBAIC0xMzMsNyArMTM0
LDcgQEAgdm9pZCBIVFRQQ29va2llU3RvcmU6OmRlbGV0ZUFsbENvb2tpZXMoQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW4KICAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0
Y2goV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQogCi12b2lkIEhUVFBDb29raWVTdG9y
ZTo6c2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShXZWJLaXQ6OkhUVFBDb29raWVBY2NlcHRQb2xp
Y3kgcG9saWN5LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIp
Cit2b2lkIEhUVFBDb29raWVTdG9yZTo6c2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShXZWJDb3Jl
OjpIVFRQQ29va2llQWNjZXB0UG9saWN5IHBvbGljeSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgp
PiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIGF1dG8qIHBvb2wgPSBtX293bmluZ0RhdGFT
dG9yZS0+cHJvY2Vzc1Bvb2xGb3JDb29raWVTdG9yYWdlT3BlcmF0aW9ucygpOwogICAgIGlmICgh
cG9vbCkgewpAQCAtMjc5LDcgKzI4MCw3IEBAIHZvaWQgSFRUUENvb2tpZVN0b3JlOjpkZWxldGVD
b29raWVGcm9tRGVmYXVsdFVJUHJvY2Vzc0Nvb2tpZVN0b3JlKGNvbnN0IFdlYkNvcmU6CiB2b2lk
IEhUVFBDb29raWVTdG9yZTo6c3RhcnRPYnNlcnZpbmdDaGFuZ2VzVG9EZWZhdWx0VUlQcm9jZXNz
Q29va2llU3RvcmUoRnVuY3Rpb248dm9pZCgpPiYmKSB7IH0KIHZvaWQgSFRUUENvb2tpZVN0b3Jl
OjpzdG9wT2JzZXJ2aW5nQ2hhbmdlc1RvRGVmYXVsdFVJUHJvY2Vzc0Nvb2tpZVN0b3JlKCkgeyB9
CiB2b2lkIEhUVFBDb29raWVTdG9yZTo6ZGVsZXRlQ29va2llc0luRGVmYXVsdFVJUHJvY2Vzc0Nv
b2tpZVN0b3JlKCkgeyB9Ci12b2lkIEhUVFBDb29raWVTdG9yZTo6c2V0SFRUUENvb2tpZUFjY2Vw
dFBvbGljeUluRGVmYXVsdFVJUHJvY2Vzc0Nvb2tpZVN0b3JlKFdlYktpdDo6SFRUUENvb2tpZUFj
Y2VwdFBvbGljeSkgeyB9Cit2b2lkIEhUVFBDb29raWVTdG9yZTo6c2V0SFRUUENvb2tpZUFjY2Vw
dFBvbGljeUluRGVmYXVsdFVJUHJvY2Vzc0Nvb2tpZVN0b3JlKFdlYkNvcmU6OkhUVFBDb29raWVB
Y2NlcHRQb2xpY3kpIHsgfQogI2VuZGlmCiAgICAgCiB9IC8vIG5hbWVzcGFjZSBBUEkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElIVFRQQ29va2llU3RvcmUuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElIVFRQQ29va2llU3RvcmUuaAppbmRleCAy
ZTQxZjYyNGQ0NzRmNWZmNDFlMTUyNTEyMGY1YmY3YTZiYjI2ZDNkLi44MTc5YzQ0ZjRlNThkMmI2
Mjk4NTVjYTkxNTkwOTRmNDMyYzQ2YzdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQVBJSFRUUENvb2tpZVN0b3JlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0FQSUhUVFBDb29raWVTdG9yZS5oCkBAIC0yNiw3ICsyNiw2IEBACiAjcHJhZ21hIG9u
Y2UKIAogI2luY2x1ZGUgIkFQSU9iamVjdC5oIgotI2luY2x1ZGUgIkhUVFBDb29raWVBY2NlcHRQ
b2xpY3kuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0Nvb2tpZS5oPgogI2luY2x1ZGUgPHd0Zi9Db21w
bGV0aW9uSGFuZGxlci5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CkBAIC0zNywxMiArMzYs
MTIgQEAgc3RydWN0IENvb2tpZTsKICNpZiBQTEFURk9STShDT0NPQSkKIGNsYXNzIENvb2tpZVN0
b3JhZ2VPYnNlcnZlcjsKICNlbmRpZgorZW51bSBjbGFzcyBIVFRQQ29va2llQWNjZXB0UG9saWN5
IDogdWludDhfdDsKIH0KIAogbmFtZXNwYWNlIFdlYktpdCB7CiBjbGFzcyBXZWJDb29raWVNYW5h
Z2VyUHJveHk7CiBjbGFzcyBXZWJzaXRlRGF0YVN0b3JlOwotZW51bSBjbGFzcyBIVFRQQ29va2ll
QWNjZXB0UG9saWN5IDogdWludDhfdDsKIH0KIAogbmFtZXNwYWNlIEFQSSB7CkBAIC02Myw3ICs2
Miw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGRlbGV0ZUNvb2tpZShjb25zdCBXZWJDb3JlOjpDb29r
aWUmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIAogICAgIHZvaWQgZGVsZXRl
QWxsQ29va2llcyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwotICAgIHZvaWQgc2V0SFRU
UENvb2tpZUFjY2VwdFBvbGljeShXZWJLaXQ6OkhUVFBDb29raWVBY2NlcHRQb2xpY3ksIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CisgICAgdm9pZCBzZXRIVFRQQ29va2llQWNjZXB0UG9s
aWN5KFdlYkNvcmU6OkhUVFBDb29raWVBY2NlcHRQb2xpY3ksIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoKT4mJik7CiAKICAgICBjbGFzcyBPYnNlcnZlciB7CiAgICAgcHVibGljOgpAQCAtOTAsNyAr
ODksNyBAQCBwcml2YXRlOgogICAgIHZvaWQgc3RhcnRPYnNlcnZpbmdDaGFuZ2VzVG9EZWZhdWx0
VUlQcm9jZXNzQ29va2llU3RvcmUoRnVuY3Rpb248dm9pZCgpPiYmKTsKICAgICB2b2lkIHN0b3BP
YnNlcnZpbmdDaGFuZ2VzVG9EZWZhdWx0VUlQcm9jZXNzQ29va2llU3RvcmUoKTsKICAgICB2b2lk
IGRlbGV0ZUNvb2tpZXNJbkRlZmF1bHRVSVByb2Nlc3NDb29raWVTdG9yZSgpOwotICAgIHZvaWQg
c2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeUluRGVmYXVsdFVJUHJvY2Vzc0Nvb2tpZVN0b3JlKFdl
YktpdDo6SFRUUENvb2tpZUFjY2VwdFBvbGljeSk7CisgICAgdm9pZCBzZXRIVFRQQ29va2llQWNj
ZXB0UG9saWN5SW5EZWZhdWx0VUlQcm9jZXNzQ29va2llU3RvcmUoV2ViQ29yZTo6SFRUUENvb2tp
ZUFjY2VwdFBvbGljeSk7CiAgICAgCiAgICAgLy8gRklYTUU6IFRoaXMgaXMgYSByZWZlcmVuY2Ug
Y3ljbGUuCiAgICAgUmVmPFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZT4gbV9vd25pbmdEYXRhU3Rv
cmU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3Qu
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oCmluZGV4IDAwZDE2
MjcyNzAyOGE2NmI0MDdiMzVkNTYxOGQ5MDVjMWVhM2JhMDQuLjgxMDU1YTYxOWJhMTlmNTY1MjJj
NDc4MDFhNWEwY2FjM2M1ZmZjNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9DL1dLQVBJQ2FzdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dL
QVBJQ2FzdC5oCkBAIC0yOCw3ICsyOCw2IEBACiAjZGVmaW5lIFdLQVBJQ2FzdF9oCiAKICNpbmNs
dWRlICJDYWNoZU1vZGVsLmgiCi0jaW5jbHVkZSAiSFRUUENvb2tpZUFjY2VwdFBvbGljeS5oIgog
I2luY2x1ZGUgIkluamVjdGVkQnVuZGxlSGl0VGVzdFJlc3VsdE1lZGlhVHlwZS5oIgogI2luY2x1
ZGUgIlBsdWdpbk1vZHVsZUluZm8uaCIKICNpbmNsdWRlICJQcm9jZXNzVGVybWluYXRpb25SZWFz
b24uaCIKQEAgLTQ2LDYgKzQ1LDcgQEAKICNpbmNsdWRlICJXS1NoYXJlZEFQSUNhc3QuaCIKICNp
bmNsdWRlIDxXZWJDb3JlL0NyZWRlbnRpYWwuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lTG9h
ZGVyVHlwZXMuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0hUVFBDb29raWVBY2NlcHRQb2xpY3kuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL1BsdWdpbkRhdGEuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Byb3Rl
Y3Rpb25TcGFjZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2V0dGluZ3MuaD4KQEAgLTM2OSwzMyAr
MzY5LDMzIEBAIGlubGluZSBSZXNvdXJjZUNhY2hlc1RvQ2xlYXIgdG9SZXNvdXJjZUNhY2hlc1Rv
Q2xlYXIoV0tSZXNvdXJjZUNhY2hlc1RvQ2xlYXIgd2tSCiAgICAgcmV0dXJuIEFsbFJlc291cmNl
Q2FjaGVzOwogfQogCi1pbmxpbmUgSFRUUENvb2tpZUFjY2VwdFBvbGljeSB0b0hUVFBDb29raWVB
Y2NlcHRQb2xpY3koV0tIVFRQQ29va2llQWNjZXB0UG9saWN5IHBvbGljeSkKK2lubGluZSBXZWJD
b3JlOjpIVFRQQ29va2llQWNjZXB0UG9saWN5IHRvSFRUUENvb2tpZUFjY2VwdFBvbGljeShXS0hU
VFBDb29raWVBY2NlcHRQb2xpY3kgcG9saWN5KQogewogICAgIHN3aXRjaCAocG9saWN5KSB7CiAg
ICAgY2FzZSBrV0tIVFRQQ29va2llQWNjZXB0UG9saWN5QWx3YXlzOgotICAgICAgICByZXR1cm4g
SFRUUENvb2tpZUFjY2VwdFBvbGljeTo6QWx3YXlzQWNjZXB0OworICAgICAgICByZXR1cm4gV2Vi
Q29yZTo6SFRUUENvb2tpZUFjY2VwdFBvbGljeTo6QWx3YXlzQWNjZXB0OwogICAgIGNhc2Uga1dL
SFRUUENvb2tpZUFjY2VwdFBvbGljeU5ldmVyOgotICAgICAgICByZXR1cm4gSFRUUENvb2tpZUFj
Y2VwdFBvbGljeTo6TmV2ZXI7CisgICAgICAgIHJldHVybiBXZWJDb3JlOjpIVFRQQ29va2llQWNj
ZXB0UG9saWN5OjpOZXZlcjsKICAgICBjYXNlIGtXS0hUVFBDb29raWVBY2NlcHRQb2xpY3lPbmx5
RnJvbU1haW5Eb2N1bWVudERvbWFpbjoKLSAgICAgICAgcmV0dXJuIEhUVFBDb29raWVBY2NlcHRQ
b2xpY3k6Ok9ubHlGcm9tTWFpbkRvY3VtZW50RG9tYWluOworICAgICAgICByZXR1cm4gV2ViQ29y
ZTo6SFRUUENvb2tpZUFjY2VwdFBvbGljeTo6T25seUZyb21NYWluRG9jdW1lbnREb21haW47CiAg
ICAgY2FzZSBrV0tIVFRQQ29va2llQWNjZXB0UG9saWN5RXhjbHVzaXZlbHlGcm9tTWFpbkRvY3Vt
ZW50RG9tYWluOgotICAgICAgICByZXR1cm4gSFRUUENvb2tpZUFjY2VwdFBvbGljeTo6RXhjbHVz
aXZlbHlGcm9tTWFpbkRvY3VtZW50RG9tYWluOworICAgICAgICByZXR1cm4gV2ViQ29yZTo6SFRU
UENvb2tpZUFjY2VwdFBvbGljeTo6RXhjbHVzaXZlbHlGcm9tTWFpbkRvY3VtZW50RG9tYWluOwog
ICAgIH0KIAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiBIVFRQQ29va2ll
QWNjZXB0UG9saWN5OjpBbHdheXNBY2NlcHQ7CisgICAgcmV0dXJuIFdlYkNvcmU6OkhUVFBDb29r
aWVBY2NlcHRQb2xpY3k6OkFsd2F5c0FjY2VwdDsKIH0KIAotaW5saW5lIFdLSFRUUENvb2tpZUFj
Y2VwdFBvbGljeSB0b0FQSShIVFRQQ29va2llQWNjZXB0UG9saWN5IHBvbGljeSkKK2lubGluZSBX
S0hUVFBDb29raWVBY2NlcHRQb2xpY3kgdG9BUEkoV2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBv
bGljeSBwb2xpY3kpCiB7CiAgICAgc3dpdGNoIChwb2xpY3kpIHsKLSAgICBjYXNlIEhUVFBDb29r
aWVBY2NlcHRQb2xpY3k6OkFsd2F5c0FjY2VwdDoKKyAgICBjYXNlIFdlYkNvcmU6OkhUVFBDb29r
aWVBY2NlcHRQb2xpY3k6OkFsd2F5c0FjY2VwdDoKICAgICAgICAgcmV0dXJuIGtXS0hUVFBDb29r
aWVBY2NlcHRQb2xpY3lBbHdheXM7Ci0gICAgY2FzZSBIVFRQQ29va2llQWNjZXB0UG9saWN5OjpO
ZXZlcjoKKyAgICBjYXNlIFdlYkNvcmU6OkhUVFBDb29raWVBY2NlcHRQb2xpY3k6Ok5ldmVyOgog
ICAgICAgICByZXR1cm4ga1dLSFRUUENvb2tpZUFjY2VwdFBvbGljeU5ldmVyOwotICAgIGNhc2Ug
SFRUUENvb2tpZUFjY2VwdFBvbGljeTo6T25seUZyb21NYWluRG9jdW1lbnREb21haW46CisgICAg
Y2FzZSBXZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0UG9saWN5OjpPbmx5RnJvbU1haW5Eb2N1bWVu
dERvbWFpbjoKICAgICAgICAgcmV0dXJuIGtXS0hUVFBDb29raWVBY2NlcHRQb2xpY3lPbmx5RnJv
bU1haW5Eb2N1bWVudERvbWFpbjsKLSAgICBjYXNlIEhUVFBDb29raWVBY2NlcHRQb2xpY3k6OkV4
Y2x1c2l2ZWx5RnJvbU1haW5Eb2N1bWVudERvbWFpbjoKKyAgICBjYXNlIFdlYkNvcmU6OkhUVFBD
b29raWVBY2NlcHRQb2xpY3k6OkV4Y2x1c2l2ZWx5RnJvbU1haW5Eb2N1bWVudERvbWFpbjoKICAg
ICAgICAgcmV0dXJuIGtXS0hUVFBDb29raWVBY2NlcHRQb2xpY3lFeGNsdXNpdmVseUZyb21NYWlu
RG9jdW1lbnREb21haW47CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvQVBJSFRUUENvb2tpZVN0b3JlQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvQVBJSFRUUENvb2tpZVN0b3JlQ29jb2EubW0KaW5kZXggYWQx
OTY3NjFkNDg0MDIxYWJiNjNmYzlkNWVkMDdlZDY1ZmZlNDRjYi4uNzkxMjAxYzQ3N2U1ZDhhMTcx
NzQxM2YwMjFlMmJmNzUyNTYzNjhjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL0FQSUhUVFBDb29raWVTdG9yZUNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9BUElIVFRQQ29va2llU3RvcmVDb2NvYS5tbQpAQCAtMjgs
NiArMjgsNyBAQAogCiAjaW5jbHVkZSA8V2ViQ29yZS9Db29raWUuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL0Nvb2tpZVN0b3JhZ2VPYnNlcnZlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvSFRUUENvb2tp
ZUFjY2VwdFBvbGljeS5oPgogI2luY2x1ZGUgPHBhbC9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmg+CiAK
IG5hbWVzcGFjZSBBUEkgewpAQCAtNzUsMjMgKzc2LDIzIEBAIHZvaWQgSFRUUENvb2tpZVN0b3Jl
OjpkZWxldGVDb29raWVzSW5EZWZhdWx0VUlQcm9jZXNzQ29va2llU3RvcmUoKQogICAgIFtbTlNI
VFRQQ29va2llU3RvcmFnZSBzaGFyZWRIVFRQQ29va2llU3RvcmFnZV0gcmVtb3ZlQ29va2llc1Np
bmNlRGF0ZTpbTlNEYXRlIGRpc3RhbnRQYXN0XV07CiB9CiAKLXN0YXRpYyBOU0hUVFBDb29raWVB
Y2NlcHRQb2xpY3kgdG9OU0hUVFBDb29raWVBY2NlcHRQb2xpY3koV2ViS2l0OjpIVFRQQ29va2ll
QWNjZXB0UG9saWN5IHBvbGljeSkKK3N0YXRpYyBOU0hUVFBDb29raWVBY2NlcHRQb2xpY3kgdG9O
U0hUVFBDb29raWVBY2NlcHRQb2xpY3koV2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBvbGljeSBw
b2xpY3kpCiB7CiAgICAgc3dpdGNoIChwb2xpY3kpIHsKLSAgICBjYXNlIFdlYktpdDo6SFRUUENv
b2tpZUFjY2VwdFBvbGljeTo6QWx3YXlzQWNjZXB0OgorICAgIGNhc2UgV2ViQ29yZTo6SFRUUENv
b2tpZUFjY2VwdFBvbGljeTo6QWx3YXlzQWNjZXB0OgogICAgICAgICByZXR1cm4gTlNIVFRQQ29v
a2llQWNjZXB0UG9saWN5QWx3YXlzOwotICAgIGNhc2UgV2ViS2l0OjpIVFRQQ29va2llQWNjZXB0
UG9saWN5OjpOZXZlcjoKKyAgICBjYXNlIFdlYkNvcmU6OkhUVFBDb29raWVBY2NlcHRQb2xpY3k6
Ok5ldmVyOgogICAgICAgICByZXR1cm4gTlNIVFRQQ29va2llQWNjZXB0UG9saWN5TmV2ZXI7Ci0g
ICAgY2FzZSBXZWJLaXQ6OkhUVFBDb29raWVBY2NlcHRQb2xpY3k6Ok9ubHlGcm9tTWFpbkRvY3Vt
ZW50RG9tYWluOgorICAgIGNhc2UgV2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBvbGljeTo6T25s
eUZyb21NYWluRG9jdW1lbnREb21haW46CiAgICAgICAgIHJldHVybiBOU0hUVFBDb29raWVBY2Nl
cHRQb2xpY3lPbmx5RnJvbU1haW5Eb2N1bWVudERvbWFpbjsKLSAgICBjYXNlIFdlYktpdDo6SFRU
UENvb2tpZUFjY2VwdFBvbGljeTo6RXhjbHVzaXZlbHlGcm9tTWFpbkRvY3VtZW50RG9tYWluOgor
ICAgIGNhc2UgV2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBvbGljeTo6RXhjbHVzaXZlbHlGcm9t
TWFpbkRvY3VtZW50RG9tYWluOgogICAgICAgICByZXR1cm4gKE5TSFRUUENvb2tpZUFjY2VwdFBv
bGljeSlOU0hUVFBDb29raWVBY2NlcHRQb2xpY3lFeGNsdXNpdmVseUZyb21NYWluRG9jdW1lbnRE
b21haW47CiAgICAgfQogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIHJldHVybiBOU0hU
VFBDb29raWVBY2NlcHRQb2xpY3lBbHdheXM7CiB9CiAKLXZvaWQgSFRUUENvb2tpZVN0b3JlOjpz
ZXRIVFRQQ29va2llQWNjZXB0UG9saWN5SW5EZWZhdWx0VUlQcm9jZXNzQ29va2llU3RvcmUoV2Vi
S2l0OjpIVFRQQ29va2llQWNjZXB0UG9saWN5IHBvbGljeSkKK3ZvaWQgSFRUUENvb2tpZVN0b3Jl
OjpzZXRIVFRQQ29va2llQWNjZXB0UG9saWN5SW5EZWZhdWx0VUlQcm9jZXNzQ29va2llU3RvcmUo
V2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBvbGljeSBwb2xpY3kpCiB7CiAgICAgW1tOU0hUVFBD
b29raWVTdG9yYWdlIHNoYXJlZEhUVFBDb29raWVTdG9yYWdlXSBzZXRDb29raWVBY2NlcHRQb2xp
Y3k6dG9OU0hUVFBDb29raWVBY2NlcHRQb2xpY3kocG9saWN5KV07CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tIVFRQQ29va2llU3RvcmUubW0gYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tIVFRQQ29va2llU3RvcmUubW0KaW5k
ZXggODFkMzcwM2IwZWVhODJlNWU2YzYyZjMyMjJhYzRlNjgxOWY2YjNhNi4uOWI0NjYzYzRjYWI2
ODRlM2Q3NGM5NjU2MzhmYjJlMmZjNjgzYjgzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLSFRUUENvb2tpZVN0b3JlLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0hUVFBDb29raWVTdG9yZS5tbQpAQCAtMjYsOCArMjYs
OCBAQAogI2ltcG9ydCAiY29uZmlnLmgiCiAjaW1wb3J0ICJXS0hUVFBDb29raWVTdG9yZUludGVy
bmFsLmgiCiAKLSNpbXBvcnQgIkhUVFBDb29raWVBY2NlcHRQb2xpY3kuaCIKICNpbXBvcnQgPFdl
YkNvcmUvQ29va2llLmg+CisjaW1wb3J0IDxXZWJDb3JlL0hUVFBDb29raWVBY2NlcHRQb2xpY3ku
aD4KICNpbXBvcnQgPHBhbC9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmg+CiAjaW1wb3J0IDx3dGYvSGFz
aE1hcC5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2wubW0gYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5tbQppbmRleCAwOGU1YjlmMDEzNWVh
ZmUxYWE4ZjRkZTRhODJiNmI4OTBiYjkxOWIzLi4zZmZjZmI4OTMzN2ZmMDk0NDlmOGFhOWYyOGZk
ZmJjZDQyZWJmZTRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tQcm9jZXNzUG9vbC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tQcm9jZXNzUG9vbC5tbQpAQCAtMjAwLDIxICsyMDAsMjEgQEAgLSAodm9pZClfc2V0Q2Fu
SGFuZGxlSFRUUFNTZXJ2ZXJUcnVzdEV2YWx1YXRpb246KEJPT0wpdmFsdWUKIHsKIH0KIAotc3Rh
dGljIFdlYktpdDo6SFRUUENvb2tpZUFjY2VwdFBvbGljeSB0b0hUVFBDb29raWVBY2NlcHRQb2xp
Y3koTlNIVFRQQ29va2llQWNjZXB0UG9saWN5IHBvbGljeSkKK3N0YXRpYyBXZWJDb3JlOjpIVFRQ
Q29va2llQWNjZXB0UG9saWN5IHRvSFRUUENvb2tpZUFjY2VwdFBvbGljeShOU0hUVFBDb29raWVB
Y2NlcHRQb2xpY3kgcG9saWN5KQogewogICAgIHN3aXRjaCAoc3RhdGljX2Nhc3Q8TlNVSW50ZWdl
cj4ocG9saWN5KSkgewogICAgIGNhc2UgTlNIVFRQQ29va2llQWNjZXB0UG9saWN5QWx3YXlzOgot
ICAgICAgICByZXR1cm4gV2ViS2l0OjpIVFRQQ29va2llQWNjZXB0UG9saWN5OjpBbHdheXNBY2Nl
cHQ7CisgICAgICAgIHJldHVybiBXZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0UG9saWN5OjpBbHdh
eXNBY2NlcHQ7CiAgICAgY2FzZSBOU0hUVFBDb29raWVBY2NlcHRQb2xpY3lOZXZlcjoKLSAgICAg
ICAgcmV0dXJuIFdlYktpdDo6SFRUUENvb2tpZUFjY2VwdFBvbGljeTo6TmV2ZXI7CisgICAgICAg
IHJldHVybiBXZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0UG9saWN5OjpOZXZlcjsKICAgICBjYXNl
IE5TSFRUUENvb2tpZUFjY2VwdFBvbGljeU9ubHlGcm9tTWFpbkRvY3VtZW50RG9tYWluOgotICAg
ICAgICByZXR1cm4gV2ViS2l0OjpIVFRQQ29va2llQWNjZXB0UG9saWN5OjpPbmx5RnJvbU1haW5E
b2N1bWVudERvbWFpbjsKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkhUVFBDb29raWVBY2NlcHRQ
b2xpY3k6Ok9ubHlGcm9tTWFpbkRvY3VtZW50RG9tYWluOwogICAgIGNhc2UgTlNIVFRQQ29va2ll
QWNjZXB0UG9saWN5RXhjbHVzaXZlbHlGcm9tTWFpbkRvY3VtZW50RG9tYWluOgotICAgICAgICBy
ZXR1cm4gV2ViS2l0OjpIVFRQQ29va2llQWNjZXB0UG9saWN5OjpFeGNsdXNpdmVseUZyb21NYWlu
RG9jdW1lbnREb21haW47CisgICAgICAgIHJldHVybiBXZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0
UG9saWN5OjpFeGNsdXNpdmVseUZyb21NYWluRG9jdW1lbnREb21haW47CiAgICAgfQogCiAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIFdlYktpdDo6SFRUUENvb2tpZUFjY2Vw
dFBvbGljeTo6QWx3YXlzQWNjZXB0OworICAgIHJldHVybiBXZWJDb3JlOjpIVFRQQ29va2llQWNj
ZXB0UG9saWN5OjpBbHdheXNBY2NlcHQ7CiB9CiAKIC0gKHZvaWQpX3NldENvb2tpZUFjY2VwdFBv
bGljeTooTlNIVFRQQ29va2llQWNjZXB0UG9saWN5KXBvbGljeQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKaW5kZXgg
OWNiOTBmMThjNTQyYzZhYTU2ZmFlYjYwMDdkMjZmZGYxZDBiZWE4ZS4uYmExNmUzMjYwNWIyMGFl
NjJlMzc2OTdkMTBhYzk4YTU0MWUxNzNlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCkBAIC0xNDcsNyArMTQ3
LDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpnZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rp
b24oV2ViUHJvY2Vzc1Byb3h5JiB3ZWJQcm9jZXMKIAogdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5
OjpvcGVuTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKHVpbnQ2NF90IGNvbm5lY3Rpb25SZXF1ZXN0
SWRlbnRpZmllciwgV2ViUHJvY2Vzc1Byb3h5JiB3ZWJQcm9jZXNzUHJveHkpCiB7Ci0gICAgY29u
bmVjdGlvbigpLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpD
cmVhdGVOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyB7IHdlYlByb2Nlc3NQcm94eS5jb3Jl
UHJvY2Vzc0lkZW50aWZpZXIoKSwgd2ViUHJvY2Vzc1Byb3h5LnNlc3Npb25JRCgpIH0sIFt0aGlz
LCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpLCB3ZWJQcm9jZXNzUHJveHkgPSBtYWtlV2Vh
a1B0cih3ZWJQcm9jZXNzUHJveHkpLCBjb25uZWN0aW9uUmVxdWVzdElkZW50aWZpZXJdKGF1dG8m
JiBjb25uZWN0aW9uSWRlbnRpZmllcikgbXV0YWJsZSB7CisgICAgY29ubmVjdGlvbigpLT5zZW5k
V2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpDcmVhdGVOZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2VzcyB7IHdlYlByb2Nlc3NQcm94eS5jb3JlUHJvY2Vzc0lkZW50aWZp
ZXIoKSwgd2ViUHJvY2Vzc1Byb3h5LnNlc3Npb25JRCgpIH0sIFt0aGlzLCB3ZWFrVGhpcyA9IG1h
a2VXZWFrUHRyKHRoaXMpLCB3ZWJQcm9jZXNzUHJveHkgPSBtYWtlV2Vha1B0cih3ZWJQcm9jZXNz
UHJveHkpLCBjb25uZWN0aW9uUmVxdWVzdElkZW50aWZpZXJdKGF1dG8mJiBjb25uZWN0aW9uSWRl
bnRpZmllciwgSFRUUENvb2tpZUFjY2VwdFBvbGljeSBjb29raWVBY2NlcHRQb2xpY3kpIG11dGFi
bGUgewogICAgICAgICBpZiAoIXdlYWtUaGlzKQogICAgICAgICAgICAgcmV0dXJuOwogCkBAIC0x
NjEsMTAgKzE2MSwxMCBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6Om9wZW5OZXR3b3JrUHJv
Y2Vzc0Nvbm5lY3Rpb24odWludDY0X3QgY29ubmVjdGlvblJlcXVlcwogICAgICAgICBhdXRvIHJl
cXVlc3QgPSBtX2Nvbm5lY3Rpb25SZXF1ZXN0cy50YWtlKGNvbm5lY3Rpb25SZXF1ZXN0SWRlbnRp
Zmllcik7CiAKICNpZiBVU0UoVU5JWF9ET01BSU5fU09DS0VUUykgfHwgT1MoV0lORE9XUykKLSAg
ICAgICAgcmVxdWVzdC5yZXBseShOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25JbmZvIHsgV1RGTW92
ZSgqY29ubmVjdGlvbklkZW50aWZpZXIpIH0pOworICAgICAgICByZXF1ZXN0LnJlcGx5KE5ldHdv
cmtQcm9jZXNzQ29ubmVjdGlvbkluZm8geyBXVEZNb3ZlKCpjb25uZWN0aW9uSWRlbnRpZmllciks
IGNvb2tpZUFjY2VwdFBvbGljeSB9KTsKICNlbGlmIE9TKERBUldJTikKICAgICAgICAgTUVTU0FH
RV9DSEVDSyhNQUNIX1BPUlRfVkFMSUQoY29ubmVjdGlvbklkZW50aWZpZXItPnBvcnQoKSkpOwot
ICAgICAgICByZXF1ZXN0LnJlcGx5KE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbkluZm8geyBJUEM6
OkF0dGFjaG1lbnQgeyBjb25uZWN0aW9uSWRlbnRpZmllci0+cG9ydCgpLCBNQUNIX01TR19UWVBF
X01PVkVfU0VORCB9LCBjb25uZWN0aW9uKCktPmdldEF1ZGl0VG9rZW4oKSB9KTsKKyAgICAgICAg
cmVxdWVzdC5yZXBseShOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25JbmZvIHsgSVBDOjpBdHRhY2ht
ZW50IHsgY29ubmVjdGlvbklkZW50aWZpZXItPnBvcnQoKSwgTUFDSF9NU0dfVFlQRV9NT1ZFX1NF
TkQgfSwgY29va2llQWNjZXB0UG9saWN5LCBjb25uZWN0aW9uKCktPmdldEF1ZGl0VG9rZW4oKSB9
KTsKICNlbHNlCiAgICAgICAgIG5vdEltcGxlbWVudGVkKCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eS5oIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5LmgKaW5kZXggNThiODJmZDEw
YzhjMjYyMTU0ODkwMWIxMzVkNWZlOWE4ZDk3NWJkNC4uMGJkZmMwZDRlNDdjNDM2ZjU4NWNmMjlj
MDlkNTFhMjliYzgxMWE5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
Q29va2llTWFuYWdlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29v
a2llTWFuYWdlclByb3h5LmgKQEAgLTUzLDcgKzUzLDcgQEAgY2xhc3MgV2ViUHJvY2Vzc1Bvb2w7
CiBjbGFzcyBXZWJQcm9jZXNzUHJveHk7CiAKIHR5cGVkZWYgR2VuZXJpY0NhbGxiYWNrPEFQSTo6
QXJyYXkqPiBBcnJheUNhbGxiYWNrOwotdHlwZWRlZiBHZW5lcmljQ2FsbGJhY2s8SFRUUENvb2tp
ZUFjY2VwdFBvbGljeT4gSFRUUENvb2tpZUFjY2VwdFBvbGljeUNhbGxiYWNrOwordHlwZWRlZiBH
ZW5lcmljQ2FsbGJhY2s8V2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBvbGljeT4gSFRUUENvb2tp
ZUFjY2VwdFBvbGljeUNhbGxiYWNrOwogdHlwZWRlZiBHZW5lcmljQ2FsbGJhY2s8Y29uc3QgVmVj
dG9yPFdlYkNvcmU6OkNvb2tpZT4mPiBHZXRDb29raWVzQ2FsbGJhY2s7CiAKIGNsYXNzIFdlYkNv
b2tpZU1hbmFnZXJQcm94eSA6IHB1YmxpYyBBUEk6Ok9iamVjdEltcGw8QVBJOjpPYmplY3Q6OlR5
cGU6OkNvb2tpZU1hbmFnZXI+LCBwdWJsaWMgV2ViQ29udGV4dFN1cHBsZW1lbnQsIHByaXZhdGUg
SVBDOjpNZXNzYWdlUmVjZWl2ZXIgewpAQCAtNzcsOCArNzcsOCBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBnZXRBbGxDb29raWVzKFBBTDo6U2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFZl
Y3RvcjxXZWJDb3JlOjpDb29raWU+JiYpPiYmKTsKICAgICB2b2lkIGdldENvb2tpZXMoUEFMOjpT
ZXNzaW9uSUQsIGNvbnN0IFVSTCYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9yPFdlYkNv
cmU6OkNvb2tpZT4mJik+JiYpOwogCi0gICAgdm9pZCBzZXRIVFRQQ29va2llQWNjZXB0UG9saWN5
KFBBTDo6U2Vzc2lvbklELCBIVFRQQ29va2llQWNjZXB0UG9saWN5LCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKCk+JiYpOwotICAgIHZvaWQgZ2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShQQUw6OlNl
c3Npb25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChIVFRQQ29va2llQWNjZXB0UG9saWN5KT4m
Jik7CisgICAgdm9pZCBzZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KFBBTDo6U2Vzc2lvbklELCBX
ZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0UG9saWN5LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+
JiYpOworICAgIHZvaWQgZ2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShQQUw6OlNlc3Npb25JRCwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0UG9saWN5KT4m
Jik7CiAKICAgICB2b2lkIHN0YXJ0T2JzZXJ2aW5nQ29va2llQ2hhbmdlcyhQQUw6OlNlc3Npb25J
RCk7CiAgICAgdm9pZCBzdG9wT2JzZXJ2aW5nQ29va2llQ2hhbmdlcyhQQUw6OlNlc3Npb25JRCk7
CkBAIC0xMTksNyArMTE5LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdl
KElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIG92ZXJyaWRlOwogCiAjaWYgUExBVEZP
Uk0oQ09DT0EpCi0gICAgdm9pZCBwZXJzaXN0SFRUUENvb2tpZUFjY2VwdFBvbGljeShIVFRQQ29v
a2llQWNjZXB0UG9saWN5KTsKKyAgICB2b2lkIHBlcnNpc3RIVFRQQ29va2llQWNjZXB0UG9saWN5
KFdlYkNvcmU6OkhUVFBDb29raWVBY2NlcHRQb2xpY3kpOwogI2VuZGlmCiAKICAgICBIYXNoTWFw
PFBBTDo6U2Vzc2lvbklELCBXVEY6OkZ1bmN0aW9uPHZvaWQgKCk+PiBtX2xlZ2FjeUNvb2tpZU9i
c2VydmVyczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
b29sLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCmluZGV4IDFk
YmQxODFkNDEzZThmYmE0MDVkODFiYzBhNGY5NGU0ZTc5NjJiOTguLmE1MDFkZTM3Mzc1ZDc4MDhl
YjMyZDE2MGVlM2Y0MTU5ODA5MGE4ZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQb29sLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Bvb2wuaApAQCAtMjk0LDcgKzI5NCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHN0b3BNZW1v
cnlTYW1wbGVyKCk7CiAKICNpZiBVU0UoU09VUCkKLSAgICB2b2lkIHNldEluaXRpYWxIVFRQQ29v
a2llQWNjZXB0UG9saWN5KEhUVFBDb29raWVBY2NlcHRQb2xpY3kgcG9saWN5KSB7IG1faW5pdGlh
bEhUVFBDb29raWVBY2NlcHRQb2xpY3kgPSBwb2xpY3k7IH0KKyAgICB2b2lkIHNldEluaXRpYWxI
VFRQQ29va2llQWNjZXB0UG9saWN5KFdlYkNvcmU6OkhUVFBDb29raWVBY2NlcHRQb2xpY3kgcG9s
aWN5KSB7IG1faW5pdGlhbEhUVFBDb29raWVBY2NlcHRQb2xpY3kgPSBwb2xpY3k7IH0KICAgICB2
b2lkIHNldE5ldHdvcmtQcm94eVNldHRpbmdzKGNvbnN0IFdlYkNvcmU6OlNvdXBOZXR3b3JrUHJv
eHlTZXR0aW5ncyYpOwogI2VuZGlmCiAgICAgdm9pZCBzZXRFbmhhbmNlZEFjY2Vzc2liaWxpdHko
Ym9vbCk7CkBAIC02NzcsNyArNjc3LDcgQEAgcHJpdmF0ZToKICAgICBXZWJDb250ZXh0U3VwcGxl
bWVudE1hcCBtX3N1cHBsZW1lbnRzOwogCiAjaWYgVVNFKFNPVVApCi0gICAgSFRUUENvb2tpZUFj
Y2VwdFBvbGljeSBtX2luaXRpYWxIVFRQQ29va2llQWNjZXB0UG9saWN5IHsgSFRUUENvb2tpZUFj
Y2VwdFBvbGljeTo6T25seUZyb21NYWluRG9jdW1lbnREb21haW4gfTsKKyAgICBIVFRQQ29va2ll
QWNjZXB0UG9saWN5IG1faW5pdGlhbEhUVFBDb29raWVBY2NlcHRQb2xpY3kgeyBXZWJDb3JlOjpI
VFRQQ29va2llQWNjZXB0UG9saWN5OjpPbmx5RnJvbU1haW5Eb2N1bWVudERvbWFpbiB9OwogICAg
IFdlYkNvcmU6OlNvdXBOZXR3b3JrUHJveHlTZXR0aW5ncyBtX25ldHdvcmtQcm94eVNldHRpbmdz
OwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJD
b29raWVNYW5hZ2VyUHJveHlNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2Vi
Q29va2llTWFuYWdlclByb3h5TWFjLm1tCmluZGV4IGVlZDk3YWJlZDYwM2EzZGNiZTExYjc5NzJm
NDcxMDFiOWI5NGU3MjguLjg4OTVmNjBkMmVjZDY2OTg1MTUzYTcyOTQxYTdiZTFmZTYzMDFiNTQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJDb29raWVNYW5hZ2Vy
UHJveHlNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYkNvb2tpZU1h
bmFnZXJQcm94eU1hYy5tbQpAQCAtMzEsNyArMzEsNyBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsK
IAotdm9pZCBXZWJDb29raWVNYW5hZ2VyUHJveHk6OnBlcnNpc3RIVFRQQ29va2llQWNjZXB0UG9s
aWN5KEhUVFBDb29raWVBY2NlcHRQb2xpY3kgcG9saWN5KQordm9pZCBXZWJDb29raWVNYW5hZ2Vy
UHJveHk6OnBlcnNpc3RIVFRQQ29va2llQWNjZXB0UG9saWN5KFdlYkNvcmU6OkhUVFBDb29raWVB
Y2NlcHRQb2xpY3kgcG9saWN5KQogewogICAgIEFTU0VSVChoYXNQcm9jZXNzUHJpdmlsZWdlKFBy
b2Nlc3NQcml2aWxlZ2U6OkNhbkFjY2Vzc1Jhd0Nvb2tpZXMpKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJL
aXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNmFkZWE1ODUwZjg4NjQz
YWY3MGY4OTUwMzFiMzg2MTU2YjJlNDNmOC4uZTg3ODc4OTllZjAyZmYwZWI4ZjQ1ZjBlMTFmMjYz
N2IzZGNmMGI3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCkBAIC04ODIsNyArODgyLDYgQEAKIAkJMzdERkE3MDAxODEwQkI5MjAwMUY0QTlG
IC8qIFdLRm91bmRhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMzdERkE2RkYxODEwQkI5MjAwMUY0QTlGIC8qIFdLRm91bmRhdGlvbi5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFB1YmxpYywgKTsgfTsgfTsKIAkJMzdFMjVENkUxOEZE
RTVENjAwNUQzQTAwIC8qIEFQSUZvcm1DbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDM3RTI1RDZEMThGREU1RDYwMDVEM0EwMCAvKiBBUElGb3Jt
Q2xpZW50LmggKi87IH07CiAJCTM3RjYyM0I4MTJBNTdCNjIwMEUzRkRGNiAvKiBXS0ZpbmRPcHRp
b25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzN0Y2
MjNCNzEyQTU3QjYyMDBFM0ZERjYgLyogV0tGaW5kT3B0aW9ucy5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTM3RjkwREUzMTM3NjU2MEUwMDUxQ0Y2
OCAvKiBIVFRQQ29va2llQWNjZXB0UG9saWN5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBGNjM4OTU0RjEzM0JFRjM4MDA4OTQxRDUgLyogSFRUUENvb2tp
ZUFjY2VwdFBvbGljeS5oICovOyB9OwogCQkzN0ZDMTk0NzE4NTBGQkYyMDA4Q0ZBNDcgLyogV0tC
cm93c2luZ0NvbnRleHRMb2FkRGVsZWdhdGVQcml2YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzN0ZDMTk0NjE4NTBGQkYyMDA4Q0ZBNDcgLyogV0tC
cm93c2luZ0NvbnRleHRMb2FkRGVsZWdhdGVQcml2YXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMzdGQzE5NEIxODUxMEQ2QTAwOENGQTQ3IC8q
IFdLTlNVUkxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzdGQzE5NDkxODUxMEQ2QTAwOENGQTQ3IC8qIFdLTlNV
UkxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZS5oICovOyB9OwogCQkzRjQxOEVGOTE4ODdCRDk3MDAy
Nzk1RkQgLyogVmlkZW9GdWxsc2NyZWVuTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzRjQxOEVGNTE4ODdCRDk3
MDAyNzk1RkQgLyogVmlkZW9GdWxsc2NyZWVuTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi87
IH07CkBAIC0yMTE5LDkgKzIxMTgsOSBAQAogCQkwN0I5M0ZGNTIzQUYwQ0I4MDAzNkY4RUEgLyog
UmVtb3RlTWVkaWFQbGF5ZXJDb25maWd1cmF0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZU1l
ZGlhUGxheWVyQ29uZmlndXJhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkw
N0JBRjM1NjIzQTJDQzE3MDA0NDI1N0UgLyogUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBSZW1vdGVNZWRpYVBsYXllclByb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTA3QkFGMzU3MjNBMkNDMTkwMDQ0MjU3RSAvKiBSZW1vdGVNZWRpYVBsYXllclBy
b3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZU1lZGlhUGxheWVyUHJveHkuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwN0UxOUVGODIzRDQwMUYwMDA5NEZGQjQgLyog
TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZU1lc3NhZ2VS
ZWNlaXZlci5jcHA7IHBhdGggPSBNZWRpYVBsYXllclByaXZhdGVSZW1vdGVNZXNzYWdlUmVjZWl2
ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwN0UxOUVGOTIzRDQwMUYwMDA5
NEZGQjQgLyogTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBuYW1lID0gTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlTWVzc2FnZXMuaDsg
cGF0aCA9IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZU1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCTA3RTE5RUZBMjNENDAxRjAwMDk0RkZCNCAvKiBNZWRpYVBsYXllclBy
aXZhdGVSZW1vdGVNZXNzYWdlc1JlcGxpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBu
YW1lID0gTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlTWVzc2FnZXNSZXBsaWVzLmg7IHBhdGggPSBN
ZWRpYVBsYXllclByaXZhdGVSZW1vdGVNZXNzYWdlc1JlcGxpZXMuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJMDdFMTlFRjgyM0Q0MDFGMDAwOTRGRkI0IC8qIE1lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBNZWRpYVBsYXllclByaXZhdGVSZW1vdGVNZXNzYWdlUmVjZWl2ZXIuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwN0UxOUVGOTIzRDQwMUYwMDA5NEZGQjQgLyog
TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlTWVzc2FnZXMuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDdFMTlFRkEyM0Q0MDFGMDAwOTRGRkI0IC8qIE1lZGlhUGxh
eWVyUHJpdmF0ZVJlbW90ZU1lc3NhZ2VzUmVwbGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBNZWRpYVBsYXllclByaXZhdGVSZW1vdGVNZXNzYWdlc1JlcGxpZXMuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDg2N0Q2QTVGRTg0MDMwN0MwMkFBQzA3IC8qIEFw
cEtpdC5mcmFtZXdvcmsgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSB3cmFwcGVyLmZyYW1ld29yazsgbmFtZSA9IEFwcEtpdC5mcmFtZXdvcms7IHBhdGgg
PSAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BcHBLaXQuZnJhbWV3b3JrOyBzb3VyY2VUcmVl
ID0gIjxhYnNvbHV0ZT4iOyB9OwogCQkwODlDMTY2N0ZFODQxMTU4QzAyQUFDMDcgLyogZW4gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0LnBsaXN0LnN0cmluZ3M7IG5hbWUgPSBlbjsgcGF0aCA9IGVuLmxwcm9qL0lu
Zm9QbGlzdC5zdHJpbmdzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRTk3RDc0QzIw
MEU4RkYzMDBCRjY2NDMgLyogU2FmZUJyb3dzaW5nU1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNhZmVC
cm93c2luZ1NQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNTEzMCw3ICs1MTI5
LDYgQEAKIAkJRjYxMTNFMjYxMjZDRTE5QjAwNTdEMEE3IC8qIFdLVXNlckNvbnRlbnRVUkxQYXR0
ZXJuLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdLVXNlckNvbnRl
bnRVUkxQYXR0ZXJuLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjYxMTNFMjcx
MjZDRTE5QjAwNTdEMEE3IC8qIFdLVXNlckNvbnRlbnRVUkxQYXR0ZXJuLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLVXNlckNvbnRlbnRVUkxQYXR0ZXJuLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY2MzQ0NDU1MTJBODg1QzgwMDA2MTJEOCAvKiBBUElTZWN1
cml0eU9yaWdpbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBUElTZWN1cml0
eU9yaWdpbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlGNjM4OTU0RjEzM0JFRjM4
MDA4OTQxRDUgLyogSFRUUENvb2tpZUFjY2VwdFBvbGljeS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBIVFRQQ29va2llQWNjZXB0UG9saWN5Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUY2QTBDMTNGMTMyODFFNkUwMDcwNDMwRiAvKiBSZXNvdXJjZUNhY2hlc1Rv
Q2xlYXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVzb3VyY2VDYWNoZXNU
b0NsZWFyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY2QTkwODExMTMzQzFGM0Qw
MDgyQzNGNCAvKiBXZWJDb29raWVNYW5hZ2VyTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBwYXRoID0gV2ViQ29va2llTWFuYWdlck1hYy5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJRjZENjMyQkExMzNEMTgxQjAwNzQzRDc3IC8qIFdlYkNvb2tpZU1hbmFn
ZXJQcm94eU1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdl
YkNvb2tpZU1hbmFnZXJQcm94eU1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTU2OTcsNyArNTY5NSw2IEBACiAJCQkJMUExNEY4REYxRDc0QzgzNDAwNkNCRUM2IC8qIEZyYW1l
SW5mb0RhdGEuY3BwICovLAogCQkJCTFBMTRGOEUwMUQ3NEM4MzQwMDZDQkVDNiAvKiBGcmFtZUlu
Zm9EYXRhLmggKi8sCiAJCQkJMUFDNzVBMUExQjMzNjgyNzAwNTY3NDVCIC8qIEhhbmdEZXRlY3Rp
b25EaXNhYmxlci5oICovLAotCQkJCUY2Mzg5NTRGMTMzQkVGMzgwMDg5NDFENSAvKiBIVFRQQ29v
a2llQWNjZXB0UG9saWN5LmggKi8sCiAJCQkJQkNDRjZCMjMxMkM5M0U3QTAwOEY5QzM1IC8qIElt
YWdlT3B0aW9ucy5oICovLAogCQkJCTFBOTJEQzEyMTJGOEJBQjkwMDE3QUY2NSAvKiBMYXllclRy
ZWVDb250ZXh0LmNwcCAqLywKIAkJCQkxQTkyREMxMDEyRjhCQTQ2MDAxN0FGNjUgLyogTGF5ZXJU
cmVlQ29udGV4dC5oICovLApAQCAtMTAyMTgsNyArMTAyMTUsNiBAQAogCQkJCTU3NzJGMjA2MjE3
REJENkEwMDU2QkYyQyAvKiBIaWRTZXJ2aWNlLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMTJDQzlG
MjIxNUIwNkYxMDBERTQwQ0EgLyogSGlnaFBlcmZvcm1hbmNlR1BVTWFuYWdlci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJODM5QTJGMzIxRTIwNjc0NTAwMzkwNTdFIC8qIEhpZ2hQZXJmb3JtYW5jZUdy
YXBoaWNzVXNhZ2VTYW1wbGVyLmggaW4gSGVhZGVycyAqLywKLQkJCQkzN0Y5MERFMzEzNzY1NjBF
MDA1MUNGNjggLyogSFRUUENvb2tpZUFjY2VwdFBvbGljeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NTFDMEM5NzQxRERENzYwMDAwMzJDQUQzIC8qIEljb25Mb2FkaW5nRGVsZWdhdGUuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTUxRTM1MUNCMTgwRjJDQ0MwMEU1M0JFOSAvKiBJREJVdGlsaXRpZXMuaCBp
biBIZWFkZXJzICovLAogCQkJCUJDQ0Y2QjI1MTJDOTNFN0EwMDhGOUMzNSAvKiBJbWFnZU9wdGlv
bnMuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5jcHAKaW5kZXggZmQwMGQ3
ODY0YjVhNTNmYjc0MzBlMTZiODcwY2E2MmNiMDBhZGRhNC4uMWU3MDM1NGY2YjcxNDE5NjAyZDk0
YjBmNTQzMzEzMmE2MzQxMTg3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCkBAIC01Niw2
ICs1Niw3IEBACiAjaW5jbHVkZSAiV2ViU29ja2V0U3RyZWFtLmgiCiAjaW5jbHVkZSAiV2ViU29j
a2V0U3RyZWFtTWVzc2FnZXMuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0NhY2hlZFJlc291cmNlLmg+
CisjaW5jbHVkZSA8V2ViQ29yZS9IVFRQQ29va2llQWNjZXB0UG9saWN5Lmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9NZW1vcnlDYWNoZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTWVzc2FnZVBvcnQuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL1NoYXJlZEJ1ZmZlci5oPgpAQCAtNjgsOCArNjksOSBAQAogbmFt
ZXNwYWNlIFdlYktpdCB7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAotTmV0d29ya1Byb2Nl
c3NDb25uZWN0aW9uOjpOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uOjpJ
ZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyKQorTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9u
OjpOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyIGNv
bm5lY3Rpb25JZGVudGlmaWVyLCBIVFRQQ29va2llQWNjZXB0UG9saWN5IGNvb2tpZUFjY2VwdFBv
bGljeSkKICAgICA6IG1fY29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb246OmNyZWF0ZUNsaWVudENv
bm5lY3Rpb24oY29ubmVjdGlvbklkZW50aWZpZXIsICp0aGlzKSkKKyAgICAsIG1fY29va2llQWNj
ZXB0UG9saWN5KGNvb2tpZUFjY2VwdFBvbGljeSkKIHsKICAgICBtX2Nvbm5lY3Rpb24tPm9wZW4o
KTsKIH0KQEAgLTIwNCw3ICsyMDYsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6
ZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6UwogCiB2b2lk
IE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6d3JpdGVCbG9ic1RvVGVtcG9yYXJ5RmlsZXMoY29u
c3QgVmVjdG9yPFN0cmluZz4mIGJsb2JVUkxzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFZlY3Rv
cjxTdHJpbmc+JiYgZmlsZVBhdGhzKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBXZWJQ
cm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25u
ZWN0aW9uKCkuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2Vzczo6V3JpdGVCbG9ic1RvVGVtcG9yYXJ5RmlsZXMoYmxvYlVSTHMpLCBXVEZNb3Zl
KGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAgY29ubmVjdGlvbigpLnNlbmRXaXRoQXN5bmNSZXBs
eShNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OldyaXRlQmxvYnNUb1Rl
bXBvcmFyeUZpbGVzKGJsb2JVUkxzKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQog
CiB2b2lkIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkRmluaXNoUGluZ0xvYWQodWludDY0
X3QgcGluZ0xvYWRJZGVudGlmaWVyLCBSZXNvdXJjZUVycm9yJiYgZXJyb3IsIFJlc291cmNlUmVz
cG9uc2UmJiByZXNwb25zZSkKQEAgLTIyMiw2ICsyMjQsMTYgQEAgdm9pZCBOZXR3b3JrUHJvY2Vz
c0Nvbm5lY3Rpb246OnNldE9uTGluZVN0YXRlKGJvb2wgaXNPbkxpbmUpCiAgICAgV2ViUHJvY2Vz
czo6c2luZ2xldG9uKCkud2ViTG9hZGVyU3RyYXRlZ3koKS5zZXRPbkxpbmVTdGF0ZShpc09uTGlu
ZSk7CiB9CiAKK2Jvb2wgTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpjb29raWVzRW5hYmxlZCgp
Cit7CisgICAgcmV0dXJuIG1fY29va2llQWNjZXB0UG9saWN5ICE9IEhUVFBDb29raWVBY2NlcHRQ
b2xpY3k6Ok5ldmVyOworfQorCit2b2lkIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6Y29va2ll
QWNjZXB0UG9saWN5Q2hhbmdlZChIVFRQQ29va2llQWNjZXB0UG9saWN5IG5ld1BvbGljeSkKK3sK
KyAgICBtX2Nvb2tpZUFjY2VwdFBvbGljeSA9IG5ld1BvbGljeTsKK30KKwogI2lmIEVOQUJMRShT
SEFSRUFCTEVfUkVTT1VSQ0UpCiB2b2lkIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkQ2Fj
aGVSZXNvdXJjZShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFNoYXJlYWJs
ZVJlc291cmNlOjpIYW5kbGUmIGhhbmRsZSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5oIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmgKaW5kZXgg
MmE0OTZhOWU0ZTQzMzllYjA1ODRhYTIyNjQyMWY2MjBiMTBkZGNkYi4uZGQxMDQxNjdmNTQxNDgw
M2E1MmEyMjVhM2FmZWNmZmNmOTRkMGM2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmgKQEAgLTQz
LDYgKzQzLDcgQEAgY2xhc3MgUmVzb3VyY2VSZXF1ZXN0OwogY2xhc3MgUmVzb3VyY2VSZXNwb25z
ZTsKIHN0cnVjdCBNZXNzYWdlUG9ydElkZW50aWZpZXI7CiBzdHJ1Y3QgTWVzc2FnZVdpdGhNZXNz
YWdlUG9ydHM7CitlbnVtIGNsYXNzIEhUVFBDb29raWVBY2NlcHRQb2xpY3kgOiB1aW50OF90Owog
fQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTU0LDkgKzU1LDkgQEAgdHlwZWRlZiB1aW50NjRf
dCBSZXNvdXJjZUxvYWRJZGVudGlmaWVyOwogCiBjbGFzcyBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rp
b24gOiBwdWJsaWMgUmVmQ291bnRlZDxOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24+LCBJUEM6OkNv
bm5lY3Rpb246OkNsaWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxOZXR3b3JrUHJvY2Vz
c0Nvbm5lY3Rpb24+IGNyZWF0ZShJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIgY29ubmVjdGlv
bklkZW50aWZpZXIpCisgICAgc3RhdGljIFJlZjxOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24+IGNy
ZWF0ZShJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIgY29ubmVjdGlvbklkZW50aWZpZXIsIFdl
YkNvcmU6OkhUVFBDb29raWVBY2NlcHRQb2xpY3kgaHR0cENvb2tpZUFjY2VwdFBvbGljeSkKICAg
ICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlv
bihjb25uZWN0aW9uSWRlbnRpZmllcikpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBO
ZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oY29ubmVjdGlvbklkZW50aWZpZXIsIGh0dHBDb29raWVB
Y2NlcHRQb2xpY3kpKTsKICAgICB9CiAgICAgfk5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpOwog
ICAgIApAQCAtODAsOCArODEsMTAgQEAgcHVibGljOgogICAgIE9wdGlvbmFsPGF1ZGl0X3Rva2Vu
X3Q+IG5ldHdvcmtQcm9jZXNzQXVkaXRUb2tlbigpIGNvbnN0IHsgcmV0dXJuIG1fbmV0d29ya1By
b2Nlc3NBdWRpdFRva2VuOyB9CiAjZW5kaWYKIAorICAgIGJvb2wgY29va2llc0VuYWJsZWQoKTsK
KwogcHJpdmF0ZToKLSAgICBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9u
OjpJZGVudGlmaWVyKTsKKyAgICBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oSVBDOjpDb25uZWN0
aW9uOjpJZGVudGlmaWVyLCBXZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0UG9saWN5KTsKIAogICAg
IC8vIElQQzo6Q29ubmVjdGlvbjo6Q2xpZW50CiAgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJ
UEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBvdmVycmlkZTsKQEAgLTkyLDYgKzk1LDcg
QEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZEZpbmlzaFBpbmdMb2FkKHVpbnQ2NF90IHBpbmdMb2Fk
SWRlbnRpZmllciwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYmLCBXZWJDb3JlOjpSZXNvdXJjZVJl
c3BvbnNlJiYpOwogICAgIHZvaWQgZGlkRmluaXNoUHJlY29ubmVjdGlvbih1aW50NjRfdCBwcmVj
b25uZWN0aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYmKTsKICAgICB2b2lk
IHNldE9uTGluZVN0YXRlKGJvb2wgaXNPbkxpbmUpOworICAgIHZvaWQgY29va2llQWNjZXB0UG9s
aWN5Q2hhbmdlZChXZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0UG9saWN5KTsKIAogICAgIHZvaWQg
Y2hlY2tQcm9jZXNzTG9jYWxQb3J0Rm9yQWN0aXZpdHkoY29uc3QgV2ViQ29yZTo6TWVzc2FnZVBv
cnRJZGVudGlmaWVyJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpNZXNzYWdlUG9y
dENoYW5uZWxQcm92aWRlcjo6SGFzQWN0aXZpdHkpPiYmKTsKICAgICB2b2lkIG1lc3NhZ2VzQXZh
aWxhYmxlRm9yUG9ydChjb25zdCBXZWJDb3JlOjpNZXNzYWdlUG9ydElkZW50aWZpZXImKTsKQEAg
LTExNCw2ICsxMTgsNyBAQCBwcml2YXRlOgogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKICAg
ICBSZWZQdHI8V2ViU1dDbGllbnRDb25uZWN0aW9uPiBtX3N3Q29ubmVjdGlvbjsKICNlbmRpZgor
ICAgIFdlYkNvcmU6OkhUVFBDb29raWVBY2NlcHRQb2xpY3kgbV9jb29raWVBY2NlcHRQb2xpY3k7
CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbiBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlv
bi5tZXNzYWdlcy5pbgppbmRleCA0ZDYzNGM1N2I5Yzc5OTUwNDhhMDgwZjI3ZjNlMzJlNTMwNTI2
YWViLi4yYWE2ODg2ZTU3YTU5OWNiYzE3YzM1ZjZiNzRlOTlkMmFiM2E4OWU1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rp
b24ubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0
d29ya1Byb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluCkBAIC0yOSw2ICsyOSw3IEBAIG1lc3Nh
Z2VzIC0+IE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbiBMZWdhY3lSZWNlaXZlciB7CiAgICAgRGlk
RmluaXNoUGluZ0xvYWQodWludDY0X3QgcGluZ0xvYWRJZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNv
dXJjZUVycm9yIGVycm9yLCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlKQogICAg
IERpZEZpbmlzaFByZWNvbm5lY3Rpb24odWludDY0X3QgcHJlY29ubmVjdGlvbklkZW50aWZpZXIs
IFdlYkNvcmU6OlJlc291cmNlRXJyb3IgZXJyb3IpCiAgICAgU2V0T25MaW5lU3RhdGUoYm9vbCBp
c09uTGluZSk7CisgICAgQ29va2llQWNjZXB0UG9saWN5Q2hhbmdlZChlbnVtOnVpbnQ4X3QgV2Vi
Q29yZTo6SFRUUENvb2tpZUFjY2VwdFBvbGljeSBwb2xpY3kpOwogCiAgICAgQ2hlY2tQcm9jZXNz
TG9jYWxQb3J0Rm9yQWN0aXZpdHkoc3RydWN0IFdlYkNvcmU6Ok1lc3NhZ2VQb3J0SWRlbnRpZmll
ciBwb3J0KSAtPiAoV2ViQ29yZTo6TWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXI6Okhhc0FjdGl2
aXR5IGhhc0FjdGl2aXR5KSBBc3luYwogICAgIE1lc3NhZ2VzQXZhaWxhYmxlRm9yUG9ydChzdHJ1
Y3QgV2ViQ29yZTo6TWVzc2FnZVBvcnRJZGVudGlmaWVyIHBvcnQpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25JbmZv
LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5l
Y3Rpb25JbmZvLmgKaW5kZXggNWMwNTY4YzRhYTFmOWNkZmQ4OGMzMWEzZTNmZDdhNGNkYmM4OTRh
NC4uMzY3YjhhMzgwOWUzN2IxNWJkYmUwYjQ2YTQxODU2Nzc3ZmJhZjJmOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9u
SW5mby5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9j
ZXNzQ29ubmVjdGlvbkluZm8uaApAQCAtMjUsMTAgKzI1LDEzIEBACiAKICNwcmFnbWEgb25jZQog
CisjaW5jbHVkZSA8V2ViQ29yZS9IVFRQQ29va2llQWNjZXB0UG9saWN5Lmg+CisKIG5hbWVzcGFj
ZSBXZWJLaXQgewogCiBzdHJ1Y3QgTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uSW5mbyB7CiAgICAg
SVBDOjpBdHRhY2htZW50IGNvbm5lY3Rpb247CisgICAgV2ViQ29yZTo6SFRUUENvb2tpZUFjY2Vw
dFBvbGljeSBjb29raWVBY2NlcHRQb2xpY3k7CiAjaWYgSEFWRShBVURJVF9UT0tFTikKICAgICBP
cHRpb25hbDxhdWRpdF90b2tlbl90PiBhdWRpdFRva2VuOwogI2VuZGlmCkBAIC02MSw2ICs2NCw3
IEBAIHN0cnVjdCBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25JbmZvIHsKICAgICB2b2lkIGVuY29k
ZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgewogICAgICAgICBlbmNvZGVyIDw8
IGNvbm5lY3Rpb247CisgICAgICAgIGVuY29kZXIgPDwgY29va2llQWNjZXB0UG9saWN5OwogI2lm
IEhBVkUoQVVESVRfVE9LRU4pCiAgICAgICAgIGVuY29kZXIgPDwgYXVkaXRUb2tlbjsKICNlbmRp
ZgpAQCAtNzAsNiArNzQsOCBAQCBzdHJ1Y3QgTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uSW5mbyB7
CiAgICAgewogICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGluZm8uY29ubmVjdGlvbikpCiAg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGVFbnVt
KGluZm8uY29va2llQWNjZXB0UG9saWN5KSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICNp
ZiBIQVZFKEFVRElUX1RPS0VOKQogICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGluZm8uYXVk
aXRUb2tlbikpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJDb29raWVKYXIuY3BwIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViQ29va2llSmFyLmNwcAppbmRleCA1ODgwYmJmYzRkOTg2
YzFlNTAxODY5ZGU5NTRkNmE1NzkxODczY2I3Li4zMjU4MzA1Yzc4OWQ3NzVmZTE1YzFjMDgyOGMz
NmU5ZTJmMmE4NjA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJDb29raWVKYXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYkNvb2tpZUphci5jcHAKQEAgLTEyOSwxMiArMTI5LDE5IEBAIHZvaWQgV2ViQ29va2llSmFy
OjpzZXRDb29raWVzKFdlYkNvcmU6OkRvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgVVJMJiB1cmws
IGNvbnN0CiAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nlc3ND
b25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9u
VG9XZWJQcm9jZXNzOjpTZXRDb29raWVzRnJvbURPTShkb2N1bWVudC5maXJzdFBhcnR5Rm9yQ29v
a2llcygpLCBzYW1lU2l0ZUluZm8oZG9jdW1lbnQpLCB1cmwsIGZyYW1lSUQsIHBhZ2VJRCwgc2hv
dWxkQXNrSVRQSW5OZXR3b3JrUHJvY2VzcywgY29va2llU3RyaW5nKSwgMCk7CiB9CiAKLWJvb2wg
V2ViQ29va2llSmFyOjpjb29raWVzRW5hYmxlZChjb25zdCBXZWJDb3JlOjpEb2N1bWVudCYgZG9j
dW1lbnQpIGNvbnN0Citib29sIFdlYkNvb2tpZUphcjo6Y29va2llc0VuYWJsZWQoY29uc3QgRG9j
dW1lbnQmIGRvY3VtZW50KSBjb25zdAogewotICAgIGJvb2wgcmVzdWx0ID0gZmFsc2U7Ci0gICAg
aWYgKCFXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rp
b24oKS5jb25uZWN0aW9uKCkuc2VuZFN5bmMoTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzOjpDb29raWVzRW5hYmxlZCgpLCBNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3M6OkNvb2tpZXNFbmFibGVkOjpSZXBseShyZXN1bHQpLCAwKSkKKyAgICBhdXRv
KiB3ZWJGcmFtZSA9IGRvY3VtZW50LmZyYW1lKCkgPyBXZWJGcmFtZTo6ZnJvbUNvcmVGcmFtZSgq
ZG9jdW1lbnQuZnJhbWUoKSkgOiBudWxscHRyOworICAgIGlmICghd2ViRnJhbWUgfHwgIXdlYkZy
YW1lLT5wYWdlKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICByZXR1cm4gcmVzdWx0Owor
CisjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyAgICBTaG91bGRBc2tJVFAg
ZHVtbXk7CisgICAgaWYgKHNob3VsZEJsb2NrQ29va2llcyh3ZWJGcmFtZSwgZG9jdW1lbnQuZmly
c3RQYXJ0eUZvckNvb2tpZXMoKSwgZG9jdW1lbnQuY29va2llVVJMKCksIGR1bW15KSkKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworI2VuZGlmCisKKyAgICByZXR1cm4gV2ViUHJvY2Vzczo6c2luZ2xl
dG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkuY29va2llc0VuYWJsZWQoKTsK
IH0KIAogc3RkOjpwYWlyPFN0cmluZywgV2ViQ29yZTo6U2VjdXJlQ29va2llc0FjY2Vzc2VkPiBX
ZWJDb29raWVKYXI6OmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKGNvbnN0IFVSTCYgZmly
c3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6U2FtZVNpdGVJbmZvJiBzYW1lU2l0ZUluZm8sIGNvbnN0
IFVSTCYgdXJsLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIE9wdGlvbmFsPFBh
Z2VJZGVudGlmaWVyPiBwYWdlSUQsIFdlYkNvcmU6OkluY2x1ZGVTZWN1cmVDb29raWVzIGluY2x1
ZGVTZWN1cmVDb29raWVzKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3Mu
Y3BwCmluZGV4IGNhNDE4Y2Q3MDJmOGVjZDM2ZDIxMWVlNmRkYmFhNmFmNzlmMGUyNWYuLjY1Yzli
YzRjYTc2YWM5NTBkZDk2ODJlMTIyNGRjYjhmNmUwZTQ4ZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUHJvY2Vzcy5jcHAKQEAgLTExOTEsNyArMTE5MSw3IEBAIE5ldHdvcmtQcm9jZXNz
Q29ubmVjdGlvbiYgV2ViUHJvY2Vzczo6ZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkK
ICAgICAgICAgaWYgKCFJUEM6OkNvbm5lY3Rpb246OmlkZW50aWZpZXJJc1ZhbGlkKGNvbm5lY3Rp
b25JbmZvLmlkZW50aWZpZXIoKSkpCiAgICAgICAgICAgICBDUkFTSCgpOwogCi0gICAgICAgIG1f
bmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uID0gTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpjcmVh
dGUoY29ubmVjdGlvbkluZm8ucmVsZWFzZUlkZW50aWZpZXIoKSk7CisgICAgICAgIG1fbmV0d29y
a1Byb2Nlc3NDb25uZWN0aW9uID0gTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpjcmVhdGUoY29u
bmVjdGlvbkluZm8ucmVsZWFzZUlkZW50aWZpZXIoKSwgY29ubmVjdGlvbkluZm8uY29va2llQWNj
ZXB0UG9saWN5KTsKICNpZiBIQVZFKEFVRElUX1RPS0VOKQogICAgICAgICBtX25ldHdvcmtQcm9j
ZXNzQ29ubmVjdGlvbi0+c2V0TmV0d29ya1Byb2Nlc3NBdWRpdFRva2VuKFdURk1vdmUoY29ubmVj
dGlvbkluZm8uYXVkaXRUb2tlbikpOwogI2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>388346</attachid>
            <date>2020-01-21 14:10:31 -0800</date>
            <delta_ts>2020-01-21 14:13:12 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-206450-20200121141030.patch</filename>
            <type>text/plain</type>
            <size>79768</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0ODgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGJlNzFhNWRjNDQxN2Rm
OGFlM2VjNzg3MjNiMmYzZDI5NjQxYTdhMC4uNGNjYzNlZWRjN2IxMTU5ZTVjNmMyMTQzZmEyNGVh
ZWE4YmYyMzljMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIwLTAxLTIxICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgRnJlcXVlbnQgTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3M6OkNvb2tpZXNFbmFibGVkIHN5bmMgSVBDIHdoZW4gYnJvd3Np
bmcgcmVkZGl0LmNvbQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjA2NDUwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgTW92ZSBIVFRQQ29va2llQWNjZXB0UG9saWN5LmggaGVhZGVyIGZyb20gV2ViS2l0IHRv
IFdlYkNvcmUgc28gdGhhdCB0aGUgSFRUUENvb2tpZUFjY2VwdFBvbGljeSBlbnVtCisgICAgICAg
IGNhbiBiZSB1c2VkIGluIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbi4gUmVwbGFjZSBOZXR3b3JrU3Rv
cmFnZVNlc3Npb246OmNvb2tpZXNFbmFibGVkKCkgd2l0aCBhIG1vcmUKKyAgICAgICAgZGV0YWls
ZWQgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpjb29raWVBY2NlcHRQb2xpY3koKSBtZXRob2QuCisK
KyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICog
bG9hZGVyL0Nvb2tpZUphci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb29raWVKYXI6OmNvb2tp
ZXNFbmFibGVkIGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL0hUVFBDb29raWVB
Y2NlcHRQb2xpY3kuaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL0hUVFBDb29r
aWVBY2NlcHRQb2xpY3kuaC4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9y
YWdlU2Vzc2lvbi5jcHA6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFn
ZVNlc3Npb24uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2NmL05ldHdvcmtTdG9yYWdl
U2Vzc2lvbkNGTmV0V2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vz
c2lvbjo6Y29va2llQWNjZXB0UG9saWN5IGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3
b3JrL2NvY29hL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkNvY29hLm1tOgorICAgICAgICAoV2ViQ29y
ZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpjb29raWVBY2NlcHRQb2xpY3kgY29uc3QpOgorICAg
ICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY3VybC9OZXR3b3JrU3RvcmFnZVNlc3Npb25DdXJsLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y29va2llQWNjZXB0
UG9saWN5IGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvTmV0d29ya1N0
b3JhZ2VTZXNzaW9uU291cC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNl
c3Npb246OmNvb2tpZUFjY2VwdFBvbGljeSBjb25zdCk6CisKIDIwMjAtMDEtMjEgIFl1c3VrZSBT
dXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAgICAgICBbV1RGXSBBdG9tU3RyaW5nVGFi
bGUgc2hvdWxkIGJlIHNtYWxsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGJmNGZlNThlZDZjM2FmZThhYzZmODA0MWU3
ZjRlYzJmNTJjYzA5ZmMuLjhlMjc0ZTRjMDdiZjk1ODAxMDg2ZjJiOGIwYTU4NzllYzA3NWU3YmEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsNzcgQEAKKzIwMjAtMDEtMjEgIENocmlzIER1bWV6ICA8Y2R1
bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBGcmVxdWVudCBOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzczo6Q29va2llc0VuYWJsZWQgc3luYyBJUEMgd2hlbiBicm93c2luZyByZWRkaXQuY29t
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDY0NTAK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGcmVxdWVu
dCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Q29va2llc0VuYWJsZWQgc3luYyBJUEMg
d2hlbiBicm93c2luZyByZWRkaXQuY29tLiBUaGlzCisgICAgICAgIGhhcHBlbnMgZXZlcnkgdGlt
ZSB0aGUgcGFnZSBzY3JpcHQgY2FsbHMgbmF2aWdhdG9yLmNvb2tpZUVuYWJsZWQuIFRvIGFkZHJl
c3MgdGhlIGlzc3VlLCB3ZSBub3cKKyAgICAgICAgc3RvcmUgdGhlICJjb29raWUgYWNjZXB0IHBv
bGljeSIgb24gdGhlIFdlYkNvbnRlbnQgcHJvY2VzcyBzaWRlLiBUaGlzIGFsbG93cyB1cyB0byBr
bm93CisgICAgICAgIHN5bmNocm9ub3VzbHkgb24gdGhlIFdlYkNvbnRlbnQgcHJvY2VzcyBpZiBj
b29raWVzIGFyZSBlbmFibGVkIG9yIG5vdCBhbmQgd2l0aG91dCBhbnkgSVBDIHRvCisgICAgICAg
IHRoZSBuZXR3b3JrIHByb2Nlc3MuIFRvIGFjaGlldmUgdGhpcywgSSBhZGRlZCBhIG5ldyBjb29r
aWVBY2NlcHRQb2xpY3kgbWVtYmVyIHRvCisgICAgICAgIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlv
bkluZm8gc28gdGhhdCB0aGUgV2ViQ29udGVudCBwcm9jZXNzIGlzIGF3YXJlIG9mIHRoZSBpbml0
aWFsIHBvbGljeSB3aGVuCisgICAgICAgIGl0IGNvbm5lY3RzIHRvIHRoZSBuZXR3b3JrIHByb2Nl
c3MuIFRoZSBwb2xpY3kgb24gdGhlIFdlYkNvbnRlbnQgcHJvY2VzcyBzaWRlIGlzIHRoZW4ga2Vw
dCB1cAorICAgICAgICB0byBkYXRlIHZpYSBJUENzIGZyb20gdGhlIG5ldHdvcmsgcHJvY2VzcyB0
byB0aGUgV2ViQ29udGVudCBwcm9jZXNzZXMgd2hlbmV2ZXIgdGhlIGNvb2tpZQorICAgICAgICBh
Y2NlcHQgcG9saWN5IGNoYW5nZXMuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9Db29raWVz
L1dlYkNvb2tpZU1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDb29raWVNYW5hZ2Vy
OjpzZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29va2ll
TWFuYWdlcjo6Z2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeSk6CisgICAgICAgICogTmV0d29ya1By
b2Nlc3MvQ29va2llcy9XZWJDb29raWVNYW5hZ2VyLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nl
c3MvQ29va2llcy9XZWJDb29raWVNYW5hZ2VyLm1lc3NhZ2VzLmluOgorICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL0Nvb2tpZXMvY3VybC9XZWJDb29raWVNYW5hZ2VyQ3VybC5jcHA6CisgICAgICAg
ICogTmV0d29ya1Byb2Nlc3MvQ29va2llcy9tYWMvV2ViQ29va2llTWFuYWdlck1hYy5tbToKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9Db29raWVzL3NvdXAvV2ViQ29va2llTWFuYWdlclNvdXAu
Y3BwOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6
OmNvb2tpZUFjY2VwdFBvbGljeUNoYW5nZWQpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
UHJvY2Vzczo6Y3JlYXRlTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MpOgorICAgICAgICAo
V2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6Y29va2llQWNjZXB0UG9saWN5Q2hhbmdlZCk6CisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaDoKKyAgICAgICAgKiBOZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oOgorICAgICAgICAqIFNoYXJl
ZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9BUElIVFRQQ29va2llU3RvcmUuY3BwOgorICAgICAgICAoQVBJOjpIVFRQQ29va2llU3RvcmU6
OnNldEhUVFBDb29raWVBY2NlcHRQb2xpY3kpOgorICAgICAgICAoQVBJOjpIVFRQQ29va2llU3Rv
cmU6OnNldEhUVFBDb29raWVBY2NlcHRQb2xpY3lJbkRlZmF1bHRVSVByb2Nlc3NDb29raWVTdG9y
ZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElIVFRQQ29va2llU3RvcmUuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0Lmg6CisgICAgICAgIChXZWJLaXQ6OnRvSFRU
UENvb2tpZUFjY2VwdFBvbGljeSk6CisgICAgICAgIChXZWJLaXQ6OnRvQVBJKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL0NvY29hL0FQSUhUVFBDb29raWVTdG9yZUNvY29hLm1tOgorICAgICAg
ICAoQVBJOjp0b05TSFRUUENvb2tpZUFjY2VwdFBvbGljeSk6CisgICAgICAgIChBUEk6OkhUVFBD
b29raWVTdG9yZTo6c2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeUluRGVmYXVsdFVJUHJvY2Vzc0Nv
b2tpZVN0b3JlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLSFRUUENvb2tpZVN0
b3JlLm1tOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5tbToK
KyAgICAgICAgKHRvSFRUUENvb2tpZUFjY2VwdFBvbGljeSk6CisgICAgICAgICogVUlQcm9jZXNz
L05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtQcm9jZXNzUHJveHk6Om9wZW5OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24pOgorICAgICAgICAq
IFVJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Bvb2wuaDoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0
aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpOZXR3
b3JrUHJvY2Vzc0Nvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc0Nv
bm5lY3Rpb246OndyaXRlQmxvYnNUb1RlbXBvcmFyeUZpbGVzKToKKyAgICAgICAgKFdlYktpdDo6
TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpjb29raWVzRW5hYmxlZCk6CisgICAgICAgIChXZWJL
aXQ6Ok5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6Y29va2llQWNjZXB0UG9saWN5Q2hhbmdlZCk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5o
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OmNyZWF0ZSk6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5tZXNz
YWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25u
ZWN0aW9uSW5mby5oOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25J
bmZvOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc0Nvbm5l
Y3Rpb25JbmZvOjpkZWNvZGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJDb29r
aWVKYXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDb29raWVKYXI6OmNvb2tpZXNFbmFibGVk
IGNvbnN0KToKKyAgICAgICAgLSBSZXR1cm4gZmFsc2UgZWFybHkgaWYgdGhlIGRvY3VtZW50IGhh
cyBubyBmcmFtZSAvIHBhZ2UgKGNvb2tpZS1hdmVyc2UgYXMgcGVyIHNwZWMpCisgICAgICAgIC0g
UmV0dXJuIGZhbHNlIGVhcmx5IGlmIElUUCBpcyBlbmFibGVkIGFuZCBpdCBpcyBhIHRoaXJkLXBh
cnR5IGlmcmFtZSB3aXRob3V0IHN0b3JhZ2UKKyAgICAgICAgICBhY2Nlc3MuIFRoaXMgYnlwYXNz
ZXMgdGhlIHN5bmMgSVBDIGNhbGwgY29tcGxldGVseSBmb3Igc3VjaCBpZnJhbWVzLgorCisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJv
Y2Vzczo6ZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKToKKwogMjAyMC0wMS0yMSAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFttYWNPU10gQWRkIG1hbmFn
ZWQgcHJlZmVyZW5jZSB0byBhbGxvdyBzeW5jaHJvbm91cyBYSFIgZHVyaW5nIHBhZ2UgZGlzbWlz
c2FsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291cmNlL1dl
YkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCBiYjg3ODA2MTgzNzQxZjk2MjY4Mzg2OGVmYzY4OTEw
MmJjNGY0YTJkLi5jNzk5N2Q2MGVhMjE0NjIxOTkxMzljYWMwOTg2ZTk2NWEzMTIxMGVhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0hlYWRlcnMuY21ha2UKQEAgLTEyMjIsNiArMTIyMiw3IEBAIHNldChXZWJDb3JlX1BSSVZBVEVf
RlJBTUVXT1JLX0hFQURFUlMKICAgICBwbGF0Zm9ybS9uZXR3b3JrL0ROUy5oCiAgICAgcGxhdGZv
cm0vbmV0d29yay9ETlNSZXNvbHZlUXVldWUuaAogICAgIHBsYXRmb3JtL25ldHdvcmsvRm9ybURh
dGEuaAorICAgIHBsYXRmb3JtL25ldHdvcmsvSFRUUENvb2tpZUFjZXB0UG9saWN5LmgKICAgICBw
bGF0Zm9ybS9uZXR3b3JrL0hUVFBIZWFkZXJNYXAuaAogICAgIHBsYXRmb3JtL25ldHdvcmsvSFRU
UFBhcnNlcnMuaAogICAgIHBsYXRmb3JtL25ldHdvcmsvTmV0d29ya0xvYWRJbmZvcm1hdGlvbi5o
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
aW5kZXggOWE3MmNiMTNhZTJlNzliZTYwOThjOTMzNzY0Yzc0ZjAyMWU1Yzk4ZS4uOWNjNDgzYTU5
NmU4NjRhNDRiZjg1MDI0YjMwMWE4MzFkYWU2YmRkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTI1Miw2ICsxMjUyLDcgQEAK
IAkJNDZCOTUxOUEyMDdENjM1NDAwQTdEMkREIC8qIFJlbW90ZUZyYW1lLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NkI5NTE5MjIwN0Q2MzJFMDBBN0Qy
REQgLyogUmVtb3RlRnJhbWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQk0NkI5NUJGNTIyMzFDRkQ2MDA1M0E1MDQgLyogRGV2aWNlT3JpZW50YXRp
b25BbmRNb3Rpb25BY2Nlc3NDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA0NkI5NUJGNDIyMzFDRkI4MDA1M0E1MDQgLyogRGV2aWNlT3Jp
ZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250cm9sbGVyLmggKi87IH07CiAJCTQ2QkNCQkMyMjA4
NTAwOEYwMDcxMDYzOCAvKiBKU1JlbW90ZURPTVdpbmRvd0Jhc2UuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2QkNCQkMwMjA4NTAwN0YwMDcxMDYzOCAv
KiBKU1JlbW90ZURPTVdpbmRvd0Jhc2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OworCQk0NkMwOTYyMTIzRDc4REQ2MDA2NTdDMDkgLyogSFRUUENvb2tp
ZUFjY2VwdFBvbGljeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNDZDMDk2MjAyM0Q3OERENjAwNjU3QzA5IC8qIEhUVFBDb29raWVBY2NlcHRQb2xpY3ku
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0NkMz
NzY2MjIwODUxNzdEMDBDNzM4MjkgLyogSlNSZW1vdGVET01XaW5kb3cuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2QzM3NjYxMjA4NTE3NkQwMEM3Mzgy
OSAvKiBKU1JlbW90ZURPTVdpbmRvdy5oICovOyB9OwogCQk0NkM2OTZDQjFFNzIwNUY3MDA1OTc5
MzcgLyogQ1BVTW9uaXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNDZDNjk2QzkxRTcyMDVFNDAwNTk3OTM3IC8qIENQVU1vbml0b3IuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0NkM2OTZDQzFFNzIw
NUZDMDA1OTc5MzcgLyogQ1BVTW9uaXRvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA0NkM2OTZDQTFFNzIwNUU0MDA1OTc5MzcgLyogQ1BVTW9uaXRv
ci5jcHAgKi87IH07CkBAIC03NzgzLDYgKzc3ODQsNyBAQAogCQk0NkJDQkJDMDIwODUwMDdGMDA3
MTA2MzggLyogSlNSZW1vdGVET01XaW5kb3dCYXNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEpTUmVtb3RlRE9NV2luZG93QmFzZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk0NkJDQkJDMTIwODUwMDgwMDA3MTA2MzggLyogSlNSZW1vdGVET01XaW5kb3dCYXNl
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTUmVtb3RlRE9NV2lu
ZG93QmFzZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2QkNCQkMzMjA4NTAw
QTcwMDcxMDYzOCAvKiBSZW1vdGVET01XaW5kb3cuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9
IFJlbW90ZURPTVdpbmRvdy5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ2QzA5
NjIwMjNENzhERDYwMDY1N0MwOSAvKiBIVFRQQ29va2llQWNjZXB0UG9saWN5LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEhUVFBDb29raWVBY2NlcHRQb2xpY3kuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNDZDMzc2NUYyMDg1MTc2QzAwQzczODI5IC8qIEpTUmVtb3RlRE9NV2luZG93LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTUmVtb3RlRE9NV2luZG93LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDZDMzc2NjEyMDg1MTc2RDAwQzczODI5
IC8qIEpTUmVtb3RlRE9NV2luZG93LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEpTUmVtb3RlRE9NV2luZG93Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2QzY5
NkM5MUU3MjA1RTQwMDU5NzkzNyAvKiBDUFVNb25pdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IENQVU1vbml0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTIwNDYxLDYgKzIwNDYzLDcgQEAKIAkJCQk1MTRDNzY1QjBDRTkyM0ExMDA3RUYzQ0QgLyogRm9y
bURhdGEuaCAqLywKIAkJCQkwODVCOTJCODBFRkRFNzNEMDBFNjEyM0MgLyogRm9ybURhdGFCdWls
ZGVyLmNwcCAqLywKIAkJCQkwODVCOTJCOTBFRkRFNzNEMDBFNjEyM0MgLyogRm9ybURhdGFCdWls
ZGVyLmggKi8sCisJCQkJNDZDMDk2MjAyM0Q3OERENjAwNjU3QzA5IC8qIEhUVFBDb29raWVBY2Nl
cHRQb2xpY3kuaCAqLywKIAkJCQkwQjhDNTZEMzBGMjg2MjdGMDAwNTAyRTEgLyogSFRUUEhlYWRl
ck1hcC5jcHAgKi8sCiAJCQkJNTE0Qzc2NUMwQ0U5MjNBMTAwN0VGM0NEIC8qIEhUVFBIZWFkZXJN
YXAuaCAqLywKIAkJCQkxQUM5MDBCRjE5NDNBRjNEMDA4NjI1QjUgLyogSFRUUEhlYWRlck5hbWVz
LmluICovLApAQCAtMzAyNzgsNiArMzAyODEsNyBAQAogCQkJCUU0NDYxM0FCMENENjMzMTAwMEZB
REE3NSAvKiBIVE1MVmlkZW9FbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkxRDJGOEUwNTIz
NDQ3NTFEMDA5OTNCNjggLyogSFRNTFZpZGVvRWxlbWVudFBpY3R1cmVJblBpY3R1cmUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTgzOUFBRkVEMUEwQzBDOEQwMDYwNUY5OSAvKiBIVE1MV0JSRWxlbWVu
dC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDZDMDk2MjEyM0Q3OERENjAwNjU3QzA5IC8qIEhUVFBD
b29raWVBY2NlcHRQb2xpY3kuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDQTFERUM2MUY3MUYxQzcw
MEU3MUJEMyAvKiBIVFRQSGVhZGVyRmllbGQuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxNEM3Njcx
MENFOTIzQTEwMDdFRjNDRCAvKiBIVFRQSGVhZGVyTWFwLmggaW4gSGVhZGVycyAqLywKIAkJCQkx
QUI1RUJEMjE5NEE1MEYzMDA1OUFDNzAgLyogSFRUUEhlYWRlck5hbWVzLmggaW4gSGVhZGVycyAq
LywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Db29raWVKYXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0Nvb2tpZUphci5jcHAKaW5kZXggMjM5MDY2OGRmODMxMTNmZGEx
NzMwMzgwYzI0OTEyMDZiZDM4OTA1Yy4uYTA3YTMwMmE0MjM5MTQxYmY5NDc1ZGY0ZjVlYzVkYzY5
ODUwZDMyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nvb2tpZUphci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nvb2tpZUphci5jcHAKQEAgLTMyLDYgKzMyLDcg
QEAKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCiAjaW5jbHVk
ZSAiRnJhbWVMb2FkZXJDbGllbnQuaCIKKyNpbmNsdWRlICJIVFRQQ29va2llQWNjZXB0UG9saWN5
LmgiCiAjaW5jbHVkZSAiTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmgiCiAjaW5jbHVkZSAiTmV0d29y
a2luZ0NvbnRleHQuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmF0ZWdpZXMuaCIKQEAgLTEyMiw3
ICsxMjMsNyBAQCB2b2lkIENvb2tpZUphcjo6c2V0Q29va2llcyhEb2N1bWVudCYgZG9jdW1lbnQs
IGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIGNvbwogYm9vbCBDb29raWVKYXI6OmNvb2tp
ZXNFbmFibGVkKGNvbnN0IERvY3VtZW50JikgY29uc3QKIHsKICAgICBpZiAoYXV0byogc2Vzc2lv
biA9IG1fc3RvcmFnZVNlc3Npb25Qcm92aWRlci0+c3RvcmFnZVNlc3Npb24oKSkKLSAgICAgICAg
cmV0dXJuIHNlc3Npb24tPmNvb2tpZXNFbmFibGVkKCk7CisgICAgICAgIHJldHVybiBzZXNzaW9u
LT5jb29raWVBY2NlcHRQb2xpY3koKSAhPSBIVFRQQ29va2llQWNjZXB0UG9saWN5OjpOZXZlcjsK
IAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvSFRUUENvb2tpZUFjY2VwdFBvbGlj
eS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9IVFRQQ29va2llQWNjZXB0UG9s
aWN5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNGU2M2ZiMzVkNDBmN2IyYmNjYTU5Zjg2Y2FhYWZiZjI2NjVjMmI2
NAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvSFRU
UENvb2tpZUFjY2VwdFBvbGljeS5oCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTEtMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisg
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK2VudW0gY2xhc3MgSFRUUENvb2tpZUFjY2VwdFBvbGljeSA6IHVpbnQ4
X3QgeworICAgIEFsd2F5c0FjY2VwdCA9IDAsCisgICAgTmV2ZXIgPSAxLAorICAgIE9ubHlGcm9t
TWFpbkRvY3VtZW50RG9tYWluID0gMiwKKyAgICBFeGNsdXNpdmVseUZyb21NYWluRG9jdW1lbnRE
b21haW4gPSAzLAorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKK25hbWVzcGFjZSBXVEYg
eworCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OkhUVFBDb29raWVBY2Nl
cHRQb2xpY3k+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgICAgICBXZWJD
b3JlOjpIVFRQQ29va2llQWNjZXB0UG9saWN5LAorICAgICAgICBXZWJDb3JlOjpIVFRQQ29va2ll
QWNjZXB0UG9saWN5OjpBbHdheXNBY2NlcHQsCisgICAgICAgIFdlYkNvcmU6OkhUVFBDb29raWVB
Y2NlcHRQb2xpY3k6Ok5ldmVyLAorICAgICAgICBXZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0UG9s
aWN5OjpPbmx5RnJvbU1haW5Eb2N1bWVudERvbWFpbiwKKyAgICAgICAgV2ViQ29yZTo6SFRUUENv
b2tpZUFjY2VwdFBvbGljeTo6RXhjbHVzaXZlbHlGcm9tTWFpbkRvY3VtZW50RG9tYWluCisgICAg
PjsKK307CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
TmV0d29ya1N0b3JhZ2VTZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmNwcAppbmRleCA1MTVkYmYxOTlmNzE1Y2IwZDQzZjM0
ZmQ1M2MzMjM2OTE4MWM5M2U1Li4yOTk0Mjc1NjI1OGU5MjQzYzNiMGExMDBiMWEzZjZmNzJhODQ3
NThjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtT
dG9yYWdlU2Vzc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9O
ZXR3b3JrU3RvcmFnZVNlc3Npb24uY3BwCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAiY29u
ZmlnLmgiCiAjaW5jbHVkZSAiTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmgiCiAKKyNpbmNsdWRlICJI
VFRQQ29va2llQWNjZXB0UG9saWN5LmgiCiAjaW5jbHVkZSAiUnVudGltZUFwcGxpY2F0aW9uQ2hl
Y2tzLmgiCiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAjaW5jbHVkZSA8d3RmL1By
b2Nlc3NQcml2aWxlZ2UuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oCmluZGV4IDM3MjBhYzVlODViMDk4ZTQ4MzVj
YjY3N2MwNTgxZTBiMzA1ZGQ1NWMuLjY1MDZmMTA3NzA2NWE0ZDIxZjc5ODAxOTJmM2Q3NTA3ZWJj
MjNhOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29y
a1N0b3JhZ2VTZXNzaW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9O
ZXR3b3JrU3RvcmFnZVNlc3Npb24uaApAQCAtNzIsNiArNzIsNyBAQCBzdHJ1Y3QgQ29va2llOwog
c3RydWN0IENvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFByb3h5Owogc3RydWN0IFNhbWVTaXRlSW5m
bzsKIAorZW51bSBjbGFzcyBIVFRQQ29va2llQWNjZXB0UG9saWN5IDogdWludDhfdDsKIGVudW0g
Y2xhc3MgSW5jbHVkZVNlY3VyZUNvb2tpZXMgOiBib29sOwogZW51bSBjbGFzcyBJbmNsdWRlSHR0
cE9ubHlDb29raWVzIDogYm9vbDsKIGVudW0gY2xhc3MgVGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5n
TW9kZSA6IHVpbnQ4X3QgeyBBbGwsIEFsbE9uU2l0ZXNXaXRob3V0VXNlckludGVyYWN0aW9uLCBP
bmx5QWNjb3JkaW5nVG9QZXJEb21haW5Qb2xpY3kgfTsKQEAgLTEyNSw3ICsxMjYsNyBAQCBwdWJs
aWM6CiAgICAgTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQoKSBjb25zdDsKICNlbmRpZgogCi0g
ICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBjb29raWVzRW5hYmxlZCgpIGNvbnN0OworICAgIFdFQkNP
UkVfRVhQT1JUIEhUVFBDb29raWVBY2NlcHRQb2xpY3kgY29va2llQWNjZXB0UG9saWN5KCkgY29u
c3Q7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRDb29raWUoY29uc3QgQ29va2llJik7CiAg
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRDb29raWVzKGNvbnN0IFZlY3RvcjxDb29raWU+Jiwg
Y29uc3QgVVJMJiwgY29uc3QgVVJMJiBtYWluRG9jdW1lbnRVUkwpOwogICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgc2V0Q29va2llc0Zyb21ET00oY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBT
YW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+LCBPcHRp
b25hbDxQYWdlSWRlbnRpZmllcj4sIFNob3VsZEFza0lUUCwgY29uc3QgU3RyaW5nJikgY29uc3Q7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL05ldHdvcmtT
dG9yYWdlU2Vzc2lvbkNGTmV0V2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvY2YvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ0ZOZXRXaW4uY3BwCmluZGV4IDUyZGFjYzY4NmQ4
M2JhMjk4MTMwNzkwNTlhYzg1NTFmYTYxZTkzYmMuLjA2YTUzYjJmYTE4MzVhOGJkMWQ5ZjU0MWM0
MDBmZmE2MmZmMGNiOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvY2YvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ0ZOZXRXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ0ZOZXRXaW4uY3Bw
CkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJDb29raWUuaCIKICNpbmNsdWRlICJDb29r
aWVSZXF1ZXN0SGVhZGVyRmllbGRQcm94eS5oIgorI2luY2x1ZGUgIkhUVFBDb29raWVBY2NlcHRQ
b2xpY3kuaCIKICNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgogI2luY2x1ZGUgPENGTmV0d29y
ay9DRkhUVFBDb29raWVzUHJpdi5oPgogI2luY2x1ZGUgPENvcmVGb3VuZGF0aW9uL0NvcmVGb3Vu
ZGF0aW9uLmg+CkBAIC0yNTgsMTAgKzI1OSwxNyBAQCBzdGQ6OnBhaXI8U3RyaW5nLCBib29sPiBO
ZXR3b3JrU3RvcmFnZVNlc3Npb246OmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKGNvbgog
ICAgIHJldHVybiBjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShoZWFkZXJGaWVsZFByb3h5
LmZpcnN0UGFydHksIGhlYWRlckZpZWxkUHJveHkuc2FtZVNpdGVJbmZvLCBoZWFkZXJGaWVsZFBy
b3h5LnVybCwgaGVhZGVyRmllbGRQcm94eS5mcmFtZUlELCBoZWFkZXJGaWVsZFByb3h5LnBhZ2VJ
RCwgaGVhZGVyRmllbGRQcm94eS5pbmNsdWRlU2VjdXJlQ29va2llcywgU2hvdWxkQXNrSVRQOjpZ
ZXMpOwogfQogCi1ib29sIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y29va2llc0VuYWJsZWQoKSBj
b25zdAorSFRUUENvb2tpZUFjY2VwdFBvbGljeSBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmNvb2tp
ZUFjY2VwdFBvbGljeSgpIGNvbnN0CiB7CiAgICAgQ0ZIVFRQQ29va2llU3RvcmFnZUFjY2VwdFBv
bGljeSBwb2xpY3kgPSBDRkhUVFBDb29raWVTdG9yYWdlR2V0Q29va2llQWNjZXB0UG9saWN5KGNv
b2tpZVN0b3JhZ2UoKS5nZXQoKSk7Ci0gICAgcmV0dXJuIHBvbGljeSA9PSBDRkhUVFBDb29raWVT
dG9yYWdlQWNjZXB0UG9saWN5T25seUZyb21NYWluRG9jdW1lbnREb21haW4gfHwgcG9saWN5ID09
IENGSFRUUENvb2tpZVN0b3JhZ2VBY2NlcHRQb2xpY3lFeGNsdXNpdmVseUZyb21NYWluRG9jdW1l
bnREb21haW4gfHwgcG9saWN5ID09IENGSFRUUENvb2tpZVN0b3JhZ2VBY2NlcHRQb2xpY3lBbHdh
eXM7CisgICAgaWYgKHBvbGljeSA9PSBDRkhUVFBDb29raWVTdG9yYWdlQWNjZXB0UG9saWN5QWx3
YXlzKQorICAgICAgICByZXR1cm4gSFRUUENvb2tpZUFjY2VwdFBvbGljeTo6QWx3YXlzQWNjZXB0
OworICAgIGlmIChwb2xpY3kgPT0gQ0ZIVFRQQ29va2llU3RvcmFnZUFjY2VwdFBvbGljeU9ubHlG
cm9tTWFpbkRvY3VtZW50RG9tYWluKQorICAgICAgICByZXR1cm4gSFRUUENvb2tpZUFjY2VwdFBv
bGljeTo6T25seUZyb21NYWluRG9jdW1lbnREb21haW47CisgICAgaWYgKHBvbGljeSA9PSBDRkhU
VFBDb29raWVTdG9yYWdlQWNjZXB0UG9saWN5RXhjbHVzaXZlbHlGcm9tTWFpbkRvY3VtZW50RG9t
YWluKQorICAgICAgICByZXR1cm4gSFRUUENvb2tpZUFjY2VwdFBvbGljeTo6RXhjbHVzaXZlbHlG
cm9tTWFpbkRvY3VtZW50RG9tYWluOworCisgICAgcmV0dXJuIEhUVFBDb29raWVBY2NlcHRQb2xp
Y3k6Ok5ldmVyOwogfQogCiBib29sIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Z2V0UmF3Q29va2ll
cyhjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYg
dXJsLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVu
dGlmaWVyPiBwYWdlSUQsIFNob3VsZEFza0lUUCwgVmVjdG9yPENvb2tpZT4mIHJhd0Nvb2tpZXMp
IGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29h
L05ldHdvcmtTdG9yYWdlU2Vzc2lvbkNvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9jb2NvYS9OZXR3b3JrU3RvcmFnZVNlc3Npb25Db2NvYS5tbQppbmRleCA5ZjY3NjVl
YTY3ZDEwY2VmM2I2MmVkNWNlMDBiOTg4ODE5NGYyY2QxLi5mZDFhZTU4ZDc1MzEwZjc0NjY1N2Zi
Y2Q5MWQ2ZWI3NmQ3NjU3ZDA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL2NvY29hL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkNvY29hLm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2EvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ29jb2Eu
bW0KQEAgLTI5LDYgKzI5LDcgQEAKICNpbXBvcnQgIkNvb2tpZS5oIgogI2ltcG9ydCAiQ29va2ll
UmVxdWVzdEhlYWRlckZpZWxkUHJveHkuaCIKICNpbXBvcnQgIkNvb2tpZVN0b3JhZ2VPYnNlcnZl
ci5oIgorI2ltcG9ydCAiSFRUUENvb2tpZUFjY2VwdFBvbGljeS5oIgogI2ltcG9ydCAiU2FtZVNp
dGVJbmZvLmgiCiAjaW1wb3J0IDxwYWwvc3BpL2NmL0NGTmV0d29ya1NQSS5oPgogI2ltcG9ydCA8
d3RmL0Jsb2NrT2JqQ0V4Y2VwdGlvbnMuaD4KQEAgLTQ0OCwxNSArNDQ5LDE5IEBAIHN0YXRpYyBO
U0hUVFBDb29raWVBY2NlcHRQb2xpY3kgaHR0cENvb2tpZUFjY2VwdFBvbGljeShDRkhUVFBDb29r
aWVTdG9yYWdlUmVmIGNvCiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PE5TSFRUUENvb2tpZUFjY2Vw
dFBvbGljeT4oQ0ZIVFRQQ29va2llU3RvcmFnZUdldENvb2tpZUFjY2VwdFBvbGljeShjb29raWVT
dG9yYWdlKSk7CiB9CiAKLWJvb2wgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpjb29raWVzRW5hYmxl
ZCgpIGNvbnN0CitIVFRQQ29va2llQWNjZXB0UG9saWN5IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6
Y29va2llQWNjZXB0UG9saWN5KCkgY29uc3QKIHsKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQ
VElPTlM7Ci0KICAgICBOU0hUVFBDb29raWVBY2NlcHRQb2xpY3kgY29va2llQWNjZXB0UG9saWN5
ID0gaHR0cENvb2tpZUFjY2VwdFBvbGljeShjb29raWVTdG9yYWdlKCkuZ2V0KCkpOwotICAgIHJl
dHVybiBjb29raWVBY2NlcHRQb2xpY3kgPT0gTlNIVFRQQ29va2llQWNjZXB0UG9saWN5QWx3YXlz
IHx8IGNvb2tpZUFjY2VwdFBvbGljeSA9PSBOU0hUVFBDb29raWVBY2NlcHRQb2xpY3lPbmx5RnJv
bU1haW5Eb2N1bWVudERvbWFpbiB8fCBjb29raWVBY2NlcHRQb2xpY3kgPT0gTlNIVFRQQ29va2ll
QWNjZXB0UG9saWN5RXhjbHVzaXZlbHlGcm9tTWFpbkRvY3VtZW50RG9tYWluOwotCisgICAgaWYg
KGNvb2tpZUFjY2VwdFBvbGljeSA9PSBOU0hUVFBDb29raWVBY2NlcHRQb2xpY3lBbHdheXMpCisg
ICAgICAgIHJldHVybiBIVFRQQ29va2llQWNjZXB0UG9saWN5OjpBbHdheXNBY2NlcHQ7CisgICAg
aWYgKGNvb2tpZUFjY2VwdFBvbGljeSA9PSBOU0hUVFBDb29raWVBY2NlcHRQb2xpY3lPbmx5RnJv
bU1haW5Eb2N1bWVudERvbWFpbikKKyAgICAgICAgcmV0dXJuIEhUVFBDb29raWVBY2NlcHRQb2xp
Y3k6Ok9ubHlGcm9tTWFpbkRvY3VtZW50RG9tYWluOworICAgIGlmIChjb29raWVBY2NlcHRQb2xp
Y3kgPT0gTlNIVFRQQ29va2llQWNjZXB0UG9saWN5RXhjbHVzaXZlbHlGcm9tTWFpbkRvY3VtZW50
RG9tYWluKQorICAgICAgICByZXR1cm4gSFRUUENvb2tpZUFjY2VwdFBvbGljeTo6RXhjbHVzaXZl
bHlGcm9tTWFpbkRvY3VtZW50RG9tYWluOwogICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7
Ci0gICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIEhUVFBDb29raWVBY2NlcHRQb2xpY3k6
Ok5ldmVyOwogfQogCiBib29sIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Z2V0UmF3Q29va2llcyhj
b25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBj
b25zdCBVUkwmIHVybCwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25h
bDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBTaG91bGRBc2tJVFAgc2hvdWxkQXNrSVRQLCBWZWN0
b3I8Q29va2llPiYgcmF3Q29va2llcykgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvY3VybC9OZXR3b3JrU3RvcmFnZVNlc3Npb25DdXJsLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9OZXR3b3JrU3RvcmFnZVNlc3Npb25D
dXJsLmNwcAppbmRleCBkNzA0NTA0ZTY0OTkxZDc0ZjMxNzBkODM3OGRjMmRlMjY0ODMwMmFiLi5i
ZjljNjdhMWVjZTZlYjFmMGE2NDIwMDdmMGUxZDk2ZWQ3ZDVkZjMwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ3Vy
bC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL05ldHdvcmtT
dG9yYWdlU2Vzc2lvbkN1cmwuY3BwCkBAIC04NSw5ICs4NSwyMSBAQCB2b2lkIE5ldHdvcmtTdG9y
YWdlU2Vzc2lvbjo6c2V0Q29va2llc0Zyb21ET00oY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25z
dCBTYW1lUwogICAgIGNvb2tpZVN0b3JhZ2UoKS5zZXRDb29raWVzRnJvbURPTSgqdGhpcywgZmly
c3RQYXJ0eSwgc2FtZVNpdGVJbmZvLCB1cmwsIGZyYW1lSUQsIHBhZ2VJRCwgdmFsdWUpOwogfQog
Ci1ib29sIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y29va2llc0VuYWJsZWQoKSBjb25zdAotewot
ICAgIHJldHVybiBjb29raWVTdG9yYWdlKCkuY29va2llc0VuYWJsZWQoKnRoaXMpOworSFRUUENv
b2tpZUFjY2VwdFBvbGljeSBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmNvb2tpZUFjY2VwdFBvbGlj
eSgpIGNvbnN0Cit7CisgICAgc3dpdGNoIChjb29raWVTdG9yYWdlKCkuY29va2llQWNjZXB0UG9s
aWN5KCp0aGlzKSkgeworICAgIGNhc2UgQ29va2llQWNjZXB0UG9saWN5OjpBbHdheXM6CisgICAg
ICAgIHJldHVybiBIVFRQQ29va2llQWNjZXB0UG9saWN5OjpBbHdheXNBY2NlcHQ7CisgICAgY2Fz
ZSBDb29raWVBY2NlcHRQb2xpY3k6Ok5ldmVyOgorICAgICAgICByZXR1cm4gSFRUUENvb2tpZUFj
Y2VwdFBvbGljeTo6TmV2ZXI7CisgICAgY2FzZSBDb29raWVBY2NlcHRQb2xpY3k6Ok9ubHlGcm9t
TWFpbkRvY3VtZW50RG9tYWluOgorICAgICAgICByZXR1cm4gSFRUUENvb2tpZUFjY2VwdFBvbGlj
eTo6T25seUZyb21NYWluRG9jdW1lbnREb21haW47CisgICAgY2FzZSBDb29raWVBY2NlcHRQb2xp
Y3k6OkV4Y2x1c2l2ZWx5RnJvbU1haW5Eb2N1bWVudERvbWFpbjoKKyAgICAgICAgcmV0dXJuIEhU
VFBDb29raWVBY2NlcHRQb2xpY3k6OkV4Y2x1c2l2ZWx5RnJvbU1haW5Eb2N1bWVudERvbWFpbjsK
KyAgICB9CisKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gSFRUUENvb2tp
ZUFjY2VwdFBvbGljeTo6T25seUZyb21NYWluRG9jdW1lbnREb21haW47CiB9CiAKIHN0ZDo6cGFp
cjxTdHJpbmcsIGJvb2w+IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y29va2llc0ZvckRPTShjb25z
dCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBjb25z
dCBVUkwmIHVybCwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25hbDxQ
YWdlSWRlbnRpZmllcj4gcGFnZUlELCBJbmNsdWRlU2VjdXJlQ29va2llcyBpbmNsdWRlU2VjdXJl
Q29va2llcywgU2hvdWxkQXNrSVRQKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9zb3VwL05ldHdvcmtTdG9yYWdlU2Vzc2lvblNvdXAuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL05ldHdvcmtTdG9yYWdlU2Vzc2lvblNv
dXAuY3BwCmluZGV4IGUwNTUwNzZjN2UxZGJjMjQwZWYyMzliN2RlMjA1YzNhODU5NDVmOTIuLjZk
ZGI1OTdhYWFjYWI5YzMzYWQ2NWMwZWZkODdjYmU1NzgxNDE5MmUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9OZXR3b3JrU3RvcmFnZVNlc3Npb25Tb3Vw
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvTmV0d29ya1N0
b3JhZ2VTZXNzaW9uU291cC5jcHAKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJDb29raWUu
aCIKICNpbmNsdWRlICJDb29raWVSZXF1ZXN0SGVhZGVyRmllbGRQcm94eS5oIgogI2luY2x1ZGUg
IkdVbmlxdWVQdHJTb3VwLmgiCisjaW5jbHVkZSAiSFRUUENvb2tpZUFjY2VwdFBvbGljeS5oIgog
I2luY2x1ZGUgIlJlc291cmNlSGFuZGxlLmgiCiAjaW5jbHVkZSAiU291cE5ldHdvcmtTZXNzaW9u
LmgiCiAjaW5jbHVkZSAiVVJMU291cC5oIgpAQCAtMjQxLDEwICsyNDIsMTQgQEAgdm9pZCBOZXR3
b3JrU3RvcmFnZVNlc3Npb246OnNhdmVDcmVkZW50aWFsVG9QZXJzaXN0ZW50U3RvcmFnZShjb25z
dCBQcm90ZWN0aW9uU3AKICNlbmRpZgogfQogCi1ib29sIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6
Y29va2llc0VuYWJsZWQoKSBjb25zdAorSFRUUENvb2tpZUFjY2VwdFBvbGljeSBOZXR3b3JrU3Rv
cmFnZVNlc3Npb246OmNvb2tpZUFjY2VwdFBvbGljeSgpIGNvbnN0CiB7CiAgICAgYXV0byBwb2xp
Y3kgPSBzb3VwX2Nvb2tpZV9qYXJfZ2V0X2FjY2VwdF9wb2xpY3koY29va2llU3RvcmFnZSgpKTsK
LSAgICByZXR1cm4gcG9saWN5ID09IFNPVVBfQ09PS0lFX0pBUl9BQ0NFUFRfQUxXQVlTIHx8IHBv
bGljeSA9PSBTT1VQX0NPT0tJRV9KQVJfQUNDRVBUX05PX1RISVJEX1BBUlRZOworICAgIGlmIChw
b2xpY3kgPT0gU09VUF9DT09LSUVfSkFSX0FDQ0VQVF9BTFdBWVMpCisgICAgICAgIHJldHVybiBI
VFRQQ29va2llQWNjZXB0UG9saWN5OjpBbHdheXNBY2NlcHQ7CisgICAgaWYgKHBvbGljeSA9PSBT
T1VQX0NPT0tJRV9KQVJfQUNDRVBUX05PX1RISVJEX1BBUlRZKQorICAgICAgICByZXR1cm4gSFRU
UENvb2tpZUFjY2VwdFBvbGljeTo6T25seUZyb21NYWluRG9jdW1lbnREb21haW47CisgICAgcmV0
dXJuIEhUVFBDb29raWVBY2NlcHRQb2xpY3k6Ok5ldmVyOwogfQogCiBzdGF0aWMgaW5saW5lIGJv
b2wgaHR0cE9ubHlDb29raWVFeGlzdHMoY29uc3QgR1NMaXN0KiBjb29raWVzLCBjb25zdCBnY2hh
ciogbmFtZSwgY29uc3QgZ2NoYXIqIHBhdGgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlci5jcHAKaW5kZXggNWQ2ZjA1
MjIxNDhlYWY2Y2EwYTkyZTk2MmU0ZTgyOGU3ZGE3ZjcyYi4uNmUyOGFkZmZlZmNlYzdmMGUzZTVk
YTYxOWYxMzI5N2ZiZThkMzYzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvQ29va2llcy9XZWJDb29raWVNYW5hZ2VyLmNwcApAQCAtMTQ0LDEzICsxNDQs
MTggQEAgdm9pZCBXZWJDb29raWVNYW5hZ2VyOjpzdG9wT2JzZXJ2aW5nQ29va2llQ2hhbmdlcyhQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiB2b2lkIFdlYkNvb2tpZU1hbmFnZXI6OnNldEhUVFBD
b29raWVBY2NlcHRQb2xpY3koSFRUUENvb2tpZUFjY2VwdFBvbGljeSBwb2xpY3ksIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBwbGF0Zm9ybVNl
dEhUVFBDb29raWVBY2NlcHRQb2xpY3kocG9saWN5KTsKKyAgICBtX3Byb2Nlc3MuY29va2llQWNj
ZXB0UG9saWN5Q2hhbmdlZChwb2xpY3kpOwogCiAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKIH0K
IAogdm9pZCBXZWJDb29raWVNYW5hZ2VyOjpnZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoSFRUUENvb2tpZUFjY2VwdFBvbGljeSk+JiYgY29tcGxldGlvbkhh
bmRsZXIpCiB7Ci0gICAgY29tcGxldGlvbkhhbmRsZXIocGxhdGZvcm1HZXRIVFRQQ29va2llQWNj
ZXB0UG9saWN5KCkpOworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIGNvbXBsZXRpb25IYW5kbGVy
KFdlYkNvb2tpZU1hbmFnZXI6OnBsYXRmb3JtR2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeSgpKTsK
KyNlbHNlCisgICAgY29tcGxldGlvbkhhbmRsZXIobV9wcm9jZXNzLmRlZmF1bHRTdG9yYWdlU2Vz
c2lvbigpLmNvb2tpZUFjY2VwdFBvbGljeSgpKTsKKyNlbmRpZgogfQogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ29va2ll
cy9XZWJDb29raWVNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Nvb2tp
ZXMvV2ViQ29va2llTWFuYWdlci5oCmluZGV4IDQwNmJiOTBhNzY1ZjVjOWY2ZmUzZjljY2M5ODFm
NDJkZDE0Zjg5YmEuLjJjMWQyN2MzMjQzYmI2Y2UyMTY3MzljMjI0ZWM1OWZlNWJiZGE0OWQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ29va2llcy9XZWJDb29raWVN
YW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Db29raWVzL1dlYkNv
b2tpZU1hbmFnZXIuaApAQCAtMzksMTIgKzM5LDEyIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IHN0cnVjdCBDb29raWU7CitlbnVtIGNsYXNzIEhUVFBDb29raWVBY2NlcHRQb2xpY3kgOiB1aW50
OF90OwogfQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgTmV0d29ya1Byb2Nlc3M7Ci1l
bnVtIGNsYXNzIEhUVFBDb29raWVBY2NlcHRQb2xpY3kgOiB1aW50OF90OwogCiBjbGFzcyBXZWJD
b29raWVNYW5hZ2VyIDogcHVibGljIE5ldHdvcmtQcm9jZXNzU3VwcGxlbWVudCwgcHVibGljIElQ
Qzo6TWVzc2FnZVJlY2VpdmVyIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKQEAgLTU1
LDcgKzU1LDcgQEAgcHVibGljOgogCiAgICAgc3RhdGljIGNvbnN0IGNoYXIqIHN1cHBsZW1lbnRO
YW1lKCk7CiAKLSAgICB2b2lkIHNldEhUVFBDb29raWVBY2NlcHRQb2xpY3koSFRUUENvb2tpZUFj
Y2VwdFBvbGljeSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKKyAgICB2b2lkIHNldEhU
VFBDb29raWVBY2NlcHRQb2xpY3koV2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBvbGljeSwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKIAogI2lmIFVTRShTT1VQKQogICAgIHZvaWQgc2V0
Q29va2llUGVyc2lzdGVudFN0b3JhZ2UoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgc3Rv
cmFnZVBhdGgsIFNvdXBDb29raWVQZXJzaXN0ZW50U3RvcmFnZVR5cGUpOwpAQCAtNzksOSArNzks
MTEgQEAgcHJpdmF0ZToKICAgICB2b2lkIGdldEFsbENvb2tpZXMoUEFMOjpTZXNzaW9uSUQsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4mJik+JiYpOwogICAg
IHZvaWQgZ2V0Q29va2llcyhQQUw6OlNlc3Npb25JRCwgY29uc3QgVVJMJiwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChWZWN0b3I8V2ViQ29yZTo6Q29va2llPiYmKT4mJik7CiAKLSAgICB2b2lkIHBs
YXRmb3JtU2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShIVFRQQ29va2llQWNjZXB0UG9saWN5KTsK
LSAgICB2b2lkIGdldEhUVFBDb29raWVBY2NlcHRQb2xpY3koQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChIVFRQQ29va2llQWNjZXB0UG9saWN5KT4mJik7Ci0gICAgSFRUUENvb2tpZUFjY2VwdFBvbGlj
eSBwbGF0Zm9ybUdldEhUVFBDb29raWVBY2NlcHRQb2xpY3koKTsKKyAgICB2b2lkIHBsYXRmb3Jt
U2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShXZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0UG9saWN5
KTsKKyAgICB2b2lkIGdldEhUVFBDb29raWVBY2NlcHRQb2xpY3koQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChXZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0UG9saWN5KT4mJik7CisjaWYgUExBVEZPUk0o
Q09DT0EpCisgICAgV2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBvbGljeSBwbGF0Zm9ybUdldEhU
VFBDb29raWVBY2NlcHRQb2xpY3koKTsKKyNlbmRpZgogCiAgICAgdm9pZCBzdGFydE9ic2Vydmlu
Z0Nvb2tpZUNoYW5nZXMoUEFMOjpTZXNzaW9uSUQpOwogICAgIHZvaWQgc3RvcE9ic2VydmluZ0Nv
b2tpZUNoYW5nZXMoUEFMOjpTZXNzaW9uSUQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIubWVzc2FnZXMuaW4gYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlci5tZXNzYWdl
cy5pbgppbmRleCBhZjRjMDliNzMxZmIwNDk4ZGEzYzUzNzgyYjU4M2ViYjhiMzMwNGQxLi5hY2Q3
NTQ0MGQ4M2YzNDY2NTBjOWYzM2I3NWI1ZDVkMDkzNTIxM2JhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlci5tZXNzYWdlcy5p
bgorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFu
YWdlci5tZXNzYWdlcy5pbgpAQCAtMzUsOCArMzUsOCBAQCBtZXNzYWdlcyAtPiBXZWJDb29raWVN
YW5hZ2VyIE5vdFJlZkNvdW50ZWQgewogICAgIHZvaWQgRGVsZXRlQ29va2llKFBBTDo6U2Vzc2lv
bklEIHNlc3Npb25JRCwgc3RydWN0IFdlYkNvcmU6OkNvb2tpZSBjb29raWUpIC0+ICgpIEFzeW5j
CiAgICAgdm9pZCBEZWxldGVBbGxDb29raWVzTW9kaWZpZWRTaW5jZShQQUw6OlNlc3Npb25JRCBz
ZXNzaW9uSUQsIFdhbGxUaW1lIHRpbWUpIC0+ICgpIEFzeW5jCiAKLSAgICB2b2lkIFNldEhUVFBD
b29raWVBY2NlcHRQb2xpY3koZW51bTp1aW50OF90IFdlYktpdDo6SFRUUENvb2tpZUFjY2VwdFBv
bGljeSBwb2xpY3kpIC0+ICgpIEFzeW5jCi0gICAgdm9pZCBHZXRIVFRQQ29va2llQWNjZXB0UG9s
aWN5KCkgLT4gKGVudW06dWludDhfdCBXZWJLaXQ6OkhUVFBDb29raWVBY2NlcHRQb2xpY3kgcG9s
aWN5KSBBc3luYworICAgIHZvaWQgU2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShlbnVtOnVpbnQ4
X3QgV2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBvbGljeSBwb2xpY3kpIC0+ICgpIEFzeW5jCisg
ICAgdm9pZCBHZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KCkgLT4gKGVudW06dWludDhfdCBXZWJD
b3JlOjpIVFRQQ29va2llQWNjZXB0UG9saWN5IHBvbGljeSkgQXN5bmMKICAgICAKICAgICB2b2lk
IFN0YXJ0T2JzZXJ2aW5nQ29va2llQ2hhbmdlcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiAg
ICAgdm9pZCBTdG9wT2JzZXJ2aW5nQ29va2llQ2hhbmdlcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Nvb2tpZXMvY3Vy
bC9XZWJDb29raWVNYW5hZ2VyQ3VybC5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L0Nvb2tpZXMvY3VybC9XZWJDb29raWVNYW5hZ2VyQ3VybC5jcHAKaW5kZXggYzFhMzZjZGU5YjVl
ZWU2Zjc1MTlmZTAxMzBlYjAzN2ZhZTI1NzIxYi4uN2E1Y2IzOTZlMjljODhkODQ4MGZhMWNiNjM3
MGNiYzQ1YmZmZTdkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9D
b29raWVzL2N1cmwvV2ViQ29va2llTWFuYWdlckN1cmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvQ29va2llcy9jdXJsL1dlYkNvb2tpZU1hbmFnZXJDdXJsLmNwcApAQCAt
MjYsOCArMjYsOCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIldlYkNvb2tpZU1h
bmFnZXIuaCIKIAotI2luY2x1ZGUgIkhUVFBDb29raWVBY2NlcHRQb2xpY3kuaCIKICNpbmNsdWRl
ICJOZXR3b3JrUHJvY2Vzcy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvSFRUUENvb2tpZUFjY2VwdFBv
bGljeS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmg+CiAKIG5h
bWVzcGFjZSBXZWJLaXQgewpAQCAtNTcsMjIgKzU3LDQgQEAgdm9pZCBXZWJDb29raWVNYW5hZ2Vy
OjpwbGF0Zm9ybVNldEhUVFBDb29raWVBY2NlcHRQb2xpY3koSFRUUENvb2tpZUFjY2VwdFBvbGlj
eQogICAgIH0pOwogfQogCi1IVFRQQ29va2llQWNjZXB0UG9saWN5IFdlYkNvb2tpZU1hbmFnZXI6
OnBsYXRmb3JtR2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeSgpCi17Ci0gICAgY29uc3QgYXV0byYg
bmV0d29ya1N0b3JhZ2VTZXNzaW9uID0gbV9wcm9jZXNzLmRlZmF1bHRTdG9yYWdlU2Vzc2lvbigp
OwotICAgIHN3aXRjaCAobmV0d29ya1N0b3JhZ2VTZXNzaW9uLmNvb2tpZVN0b3JhZ2UoKS5jb29r
aWVBY2NlcHRQb2xpY3kobmV0d29ya1N0b3JhZ2VTZXNzaW9uKSkgewotICAgIGNhc2UgQ29va2ll
QWNjZXB0UG9saWN5OjpBbHdheXM6Ci0gICAgICAgIHJldHVybiBIVFRQQ29va2llQWNjZXB0UG9s
aWN5OjpBbHdheXNBY2NlcHQ7Ci0gICAgY2FzZSBDb29raWVBY2NlcHRQb2xpY3k6Ok5ldmVyOgot
ICAgICAgICByZXR1cm4gSFRUUENvb2tpZUFjY2VwdFBvbGljeTo6TmV2ZXI7Ci0gICAgY2FzZSBD
b29raWVBY2NlcHRQb2xpY3k6Ok9ubHlGcm9tTWFpbkRvY3VtZW50RG9tYWluOgotICAgICAgICBy
ZXR1cm4gSFRUUENvb2tpZUFjY2VwdFBvbGljeTo6T25seUZyb21NYWluRG9jdW1lbnREb21haW47
Ci0gICAgY2FzZSBDb29raWVBY2NlcHRQb2xpY3k6OkV4Y2x1c2l2ZWx5RnJvbU1haW5Eb2N1bWVu
dERvbWFpbjoKLSAgICAgICAgcmV0dXJuIEhUVFBDb29raWVBY2NlcHRQb2xpY3k6OkV4Y2x1c2l2
ZWx5RnJvbU1haW5Eb2N1bWVudERvbWFpbjsKLSAgICB9Ci0KLSAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKLSAgICByZXR1cm4gSFRUUENvb2tpZUFjY2VwdFBvbGljeTo6T25seUZyb21NYWluRG9j
dW1lbnREb21haW47Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Db29raWVzL21hYy9XZWJDb29raWVNYW5hZ2VyTWFj
Lm1tIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Db29raWVzL21hYy9XZWJDb29raWVN
YW5hZ2VyTWFjLm1tCmluZGV4IGJjOWU5MjQzZDQyNzM4ZDBmZTJjNjI4Y2Q3ZDQxOWVhMWE0MDZl
ZjcuLjVjOGIzNGM4MjU1ZGJkZjc5MDkwYzkxOGYxMTE3YTRlYzE1ODE3MzYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ29va2llcy9tYWMvV2ViQ29va2llTWFuYWdl
ck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Nvb2tpZXMvbWFjL1dl
YkNvb2tpZU1hbmFnZXJNYWMubW0KQEAgLTI2LDkgKzI2LDkgQEAKICNpbXBvcnQgImNvbmZpZy5o
IgogI2ltcG9ydCAiV2ViQ29va2llTWFuYWdlci5oIgogCi0jaW1wb3J0ICJIVFRQQ29va2llQWNj
ZXB0UG9saWN5LmgiCiAjaW1wb3J0ICJOZXR3b3JrUHJvY2Vzcy5oIgogI2ltcG9ydCAiTmV0d29y
a1Nlc3Npb24uaCIKKyNpbXBvcnQgPFdlYkNvcmUvSFRUUENvb2tpZUFjY2VwdFBvbGljeS5oPgog
I2ltcG9ydCA8V2ViQ29yZS9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaD4KICNpbXBvcnQgPHBhbC9z
cGkvY2YvQ0ZOZXR3b3JrU1BJLmg+CiAjaW1wb3J0IDx3dGYvUHJvY2Vzc1ByaXZpbGVnZS5oPgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Db29raWVzL3NvdXAvV2Vi
Q29va2llTWFuYWdlclNvdXAuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Db29r
aWVzL3NvdXAvV2ViQ29va2llTWFuYWdlclNvdXAuY3BwCmluZGV4IGVhOTE1MjJjMDlhNDgwY2Q2
MmY0Yzg5YWM4NDJjN2VkMTMyMjFiODEuLmNiZmNhZWU1NjNhMTI2NjhkNDMyMTk2MmMwNjhmMjky
MThiZTMyNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ29va2ll
cy9zb3VwL1dlYkNvb2tpZU1hbmFnZXJTb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL0Nvb2tpZXMvc291cC9XZWJDb29raWVNYW5hZ2VyU291cC5jcHAKQEAgLTI2LDEw
ICsyNiwxMCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIldlYkNvb2tpZU1hbmFn
ZXIuaCIKIAotI2luY2x1ZGUgIkhUVFBDb29raWVBY2NlcHRQb2xpY3kuaCIKICNpbmNsdWRlICJO
ZXR3b3JrUHJvY2Vzcy5oIgogI2luY2x1ZGUgIk5ldHdvcmtTZXNzaW9uU291cC5oIgogI2luY2x1
ZGUgIlNvdXBDb29raWVQZXJzaXN0ZW50U3RvcmFnZVR5cGUuaCIKKyNpbmNsdWRlIDxXZWJDb3Jl
L0hUVFBDb29raWVBY2NlcHRQb2xpY3kuaD4KICNpbmNsdWRlIDxXZWJDb3JlL05ldHdvcmtTdG9y
YWdlU2Vzc2lvbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU291cE5ldHdvcmtTZXNzaW9uLmg+CiAj
aW5jbHVkZSA8bGlic291cC9zb3VwLmg+CkBAIC02MCwyMSArNjAsNiBAQCB2b2lkIFdlYkNvb2tp
ZU1hbmFnZXI6OnBsYXRmb3JtU2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShIVFRQQ29va2llQWNj
ZXB0UG9saWN5CiAgICAgfSk7CiB9CiAKLUhUVFBDb29raWVBY2NlcHRQb2xpY3kgV2ViQ29va2ll
TWFuYWdlcjo6cGxhdGZvcm1HZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KCkKLXsKLSAgICBzd2l0
Y2ggKHNvdXBfY29va2llX2phcl9nZXRfYWNjZXB0X3BvbGljeShtX3Byb2Nlc3MuZGVmYXVsdFN0
b3JhZ2VTZXNzaW9uKCkuY29va2llU3RvcmFnZSgpKSkgewotICAgIGNhc2UgU09VUF9DT09LSUVf
SkFSX0FDQ0VQVF9BTFdBWVM6Ci0gICAgICAgIHJldHVybiBIVFRQQ29va2llQWNjZXB0UG9saWN5
OjpBbHdheXNBY2NlcHQ7Ci0gICAgY2FzZSBTT1VQX0NPT0tJRV9KQVJfQUNDRVBUX05FVkVSOgot
ICAgICAgICByZXR1cm4gSFRUUENvb2tpZUFjY2VwdFBvbGljeTo6TmV2ZXI7Ci0gICAgY2FzZSBT
T1VQX0NPT0tJRV9KQVJfQUNDRVBUX05PX1RISVJEX1BBUlRZOgotICAgICAgICByZXR1cm4gSFRU
UENvb2tpZUFjY2VwdFBvbGljeTo6T25seUZyb21NYWluRG9jdW1lbnREb21haW47Ci0gICAgfQot
Ci0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIEhUVFBDb29raWVBY2NlcHRQ
b2xpY3k6Ok9ubHlGcm9tTWFpbkRvY3VtZW50RG9tYWluOwotfQotCiB2b2lkIFdlYkNvb2tpZU1h
bmFnZXI6OnNldENvb2tpZVBlcnNpc3RlbnRTdG9yYWdlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCwgY29uc3QgU3RyaW5nJiBzdG9yYWdlUGF0aCwgU291cENvb2tpZVBlcnNpc3RlbnRTdG9yYWdl
VHlwZSBzdG9yYWdlVHlwZSkKIHsKICAgICBpZiAoYXV0byogbmV0d29ya1Nlc3Npb24gPSBtX3By
b2Nlc3MubmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5j
cHAKaW5kZXggYjJkNGM2YzFmNjE5NjA3MTQyZWFjNzcyNGJjYmJhMDgxOGYzYjA1Mi4uZDE4YmUz
MGU2Nzg1ZGZjMDgxMjc4NmI1ZTQ4YjUzNzhmZDBmODNlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy5jcHAKQEAgLTQ2Myw2ICs0NjMsMTEgQEAgdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzczo6c2V0T25MaW5lU3RhdGUoYm9vbCBpc09uTGluZSkKICAgICBtX2Nvbm5lY3Rpb24t
PnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6U2V0T25MaW5lU3RhdGUo
aXNPbkxpbmUpLCAwKTsKIH0KIAordm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6
Y29va2llQWNjZXB0UG9saWN5Q2hhbmdlZChIVFRQQ29va2llQWNjZXB0UG9saWN5IG5ld1BvbGlj
eSkKK3sKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzQ29u
bmVjdGlvbjo6Q29va2llQWNjZXB0UG9saWN5Q2hhbmdlZChuZXdQb2xpY3kpLCAwKTsKK30KKwog
dm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6cmVtb3ZlTG9hZElkZW50aWZpZXIo
UmVzb3VyY2VMb2FkSWRlbnRpZmllciBpZGVudGlmaWVyKQogewogICAgIFJFTEVBU0VfQVNTRVJU
KGlkZW50aWZpZXIpOwpAQCAtNTkzLDE0ICs1OTgsNiBAQCB2b2lkIE5ldHdvcmtDb25uZWN0aW9u
VG9XZWJQcm9jZXNzOjpzZXRDb29raWVzRnJvbURPTShjb25zdCBVUkwmIGZpcnN0UGFydHksIGNv
bgogI2VuZGlmCiB9CiAKLXZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNvb2tp
ZXNFbmFibGVkKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRs
ZXIpCi17Ci0gICAgYXV0byogbmV0d29ya1N0b3JhZ2VTZXNzaW9uID0gc3RvcmFnZVNlc3Npb24o
KTsKLSAgICBpZiAoIW5ldHdvcmtTdG9yYWdlU2Vzc2lvbikKLSAgICAgICAgcmV0dXJuIGNvbXBs
ZXRpb25IYW5kbGVyKGZhbHNlKTsKLSAgICBjb21wbGV0aW9uSGFuZGxlcihuZXR3b3JrU3RvcmFn
ZVNlc3Npb24tPmNvb2tpZXNFbmFibGVkKCkpOwotfQotCiB2b2lkIE5ldHdvcmtDb25uZWN0aW9u
VG9XZWJQcm9jZXNzOjpjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShjb25zdCBVUkwmIGZp
cnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVy
bCwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRp
Zmllcj4gcGFnZUlELCBJbmNsdWRlU2VjdXJlQ29va2llcyBpbmNsdWRlU2VjdXJlQ29va2llcywg
U2hvdWxkQXNrSVRQIHNob3VsZEFza0lUUCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcs
IGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIGF1dG8qIG5ldHdvcmtTdG9yYWdl
U2Vzc2lvbiA9IHN0b3JhZ2VTZXNzaW9uKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKaW5kZXgg
ODM5NzQzMWMwMzMxM2NjMmMwNTBkNTEyYzk1MmFlN2UzZmVlOWE2NS4uZTgzNWU2NDFiNjA5MjZk
YmQzNGY0NDFmNGUzOGQwNWM3Yzc1ZjJjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaApAQCAt
NjEsNiArNjEsNyBAQCBlbnVtIGNsYXNzIFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkIDogYm9vbDsK
IGVudW0gY2xhc3MgU2hvdWxkQXNrSVRQIDogYm9vbDsKIHN0cnVjdCBTYW1lU2l0ZUluZm87CiAK
K2VudW0gY2xhc3MgSFRUUENvb2tpZUFjY2VwdFBvbGljeSA6IHVpbnQ4X3Q7CiBlbnVtIGNsYXNz
IEluY2x1ZGVTZWN1cmVDb29raWVzIDogYm9vbDsKIH0KIApAQCAtMTY3LDYgKzE2OCw4IEBAIHB1
YmxpYzoKIAogICAgIE5ldHdvcmtTY2hlbWVSZWdpc3RyeSYgc2NoZW1lUmVnaXN0cnkoKSB7IHJl
dHVybiBtX3NjaGVtZVJlZ2lzdHJ5LmdldCgpOyB9CiAKKyAgICB2b2lkIGNvb2tpZUFjY2VwdFBv
bGljeUNoYW5nZWQoV2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBvbGljeSk7CisKIHByaXZhdGU6
CiAgICAgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoTmV0d29ya1Byb2Nlc3MmLCBXZWJD
b3JlOjpQcm9jZXNzSWRlbnRpZmllciwgUEFMOjpTZXNzaW9uSUQsIElQQzo6Q29ubmVjdGlvbjo6
SWRlbnRpZmllcik7CiAKQEAgLTIwMCw3ICsyMDMsNiBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBj
b29raWVzRm9yRE9NKGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6U2FtZVNp
dGVJbmZvJiwgY29uc3QgVVJMJiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJDb3JlOjpQ
YWdlSWRlbnRpZmllciwgV2ViQ29yZTo6SW5jbHVkZVNlY3VyZUNvb2tpZXMsIFdlYkNvcmU6OlNo
b3VsZEFza0lUUCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcgY29va2llU3RyaW5nLCBi
b29sIHNlY3VyZUNvb2tpZXNBY2Nlc3NlZCk+JiYpOwogICAgIHZvaWQgc2V0Q29va2llc0Zyb21E
T00oY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBXZWJDb3JlOjpTYW1lU2l0ZUluZm8mLCBj
b25zdCBVUkwmLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6OlBhZ2VJZGVudGlm
aWVyLCBXZWJDb3JlOjpTaG91bGRBc2tJVFAsIGNvbnN0IFN0cmluZyYpOwotICAgIHZvaWQgY29v
a2llc0VuYWJsZWQoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CiAgICAgdm9pZCBj
b29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0
IFdlYkNvcmU6OlNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYsIE9wdGlvbmFsPFdlYkNvcmU6OkZy
YW1lSWRlbnRpZmllcj4sIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiwgV2ViQ29y
ZTo6SW5jbHVkZVNlY3VyZUNvb2tpZXMsIFdlYkNvcmU6OlNob3VsZEFza0lUUCwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChTdHJpbmcgY29va2llU3RyaW5nLCBib29sIHNlY3VyZUNvb2tpZXNBY2Nl
c3NlZCk+JiYpOwogICAgIHZvaWQgZ2V0UmF3Q29va2llcyhjb25zdCBVUkwmIGZpcnN0UGFydHks
IGNvbnN0IFdlYkNvcmU6OlNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYsIE9wdGlvbmFsPFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllcj4sIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiwg
V2ViQ29yZTo6U2hvdWxkQXNrSVRQLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFZlY3RvcjxXZWJD
b3JlOjpDb29raWU+JiYpPiYmKTsKICAgICB2b2lkIGRlbGV0ZUNvb2tpZShjb25zdCBVUkwmLCBj
b25zdCBTdHJpbmcmIGNvb2tpZU5hbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mu
bWVzc2FnZXMuaW4KaW5kZXggODRjZmJkZjNmYjkzNGQ3OTE0MzcxNjIxMWEyNTA2ZmNmNjEzNGQ1
YS4uMDIwYjQ3YTc3YjczYzE4YTZhNjJkNDY1MDE1YTdjYTRiYzNhYjA1MCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cy5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCkBAIC0zNiw3ICszNiw2IEBAIG1lc3Nh
Z2VzIC0+IE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzIExlZ2FjeVJlY2VpdmVyIHsKIAog
ICAgIENvb2tpZXNGb3JET00oVVJMIGZpcnN0UGFydHksIHN0cnVjdCBXZWJDb3JlOjpTYW1lU2l0
ZUluZm8gc2FtZVNpdGVJbmZvLCBVUkwgdXJsLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJh
bWVJRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCBlbnVtOmJvb2wgV2ViQ29yZTo6
SW5jbHVkZVNlY3VyZUNvb2tpZXMgaW5jbHVkZVNlY3VyZUNvb2tpZXMsIGVudW06Ym9vbCBXZWJD
b3JlOjpTaG91bGRBc2tJVFAgc2hvdWxkQXNrSVRQKSAtPiAoU3RyaW5nIGNvb2tpZVN0cmluZywg
Ym9vbCBkaWRBY2Nlc3NTZWN1cmVDb29raWVzKSBTeW5jaHJvbm91cwogICAgIFNldENvb2tpZXNG
cm9tRE9NKFVSTCBmaXJzdFBhcnR5LCBzdHJ1Y3QgV2ViQ29yZTo6U2FtZVNpdGVJbmZvIHNhbWVT
aXRlSW5mbywgVVJMIHVybCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFdlYkNv
cmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgZW51bTpib29sIFdlYkNvcmU6OlNob3VsZEFza0lU
UCBzaG91bGRBc2tJVFAsIFN0cmluZyBjb29raWVTdHJpbmcpCi0gICAgQ29va2llc0VuYWJsZWQo
KSAtPiAoYm9vbCBlbmFibGVkKSBTeW5jaHJvbm91cwogICAgIENvb2tpZVJlcXVlc3RIZWFkZXJG
aWVsZFZhbHVlKFVSTCBmaXJzdFBhcnR5LCBzdHJ1Y3QgV2ViQ29yZTo6U2FtZVNpdGVJbmZvIHNh
bWVTaXRlSW5mbywgVVJMIHVybCwgT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiBm
cmFtZUlELCBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBlbnVtOmJv
b2wgV2ViQ29yZTo6SW5jbHVkZVNlY3VyZUNvb2tpZXMgaW5jbHVkZVNlY3VyZUNvb2tpZXMsIGVu
dW06Ym9vbCBXZWJDb3JlOjpTaG91bGRBc2tJVFAgc2hvdWxkQXNrSVRQKSAtPiAoU3RyaW5nIGNv
b2tpZVN0cmluZywgYm9vbCBkaWRBY2Nlc3NTZWN1cmVDb29raWVzKSBTeW5jaHJvbm91cwogICAg
IEdldFJhd0Nvb2tpZXMoVVJMIGZpcnN0UGFydHksIHN0cnVjdCBXZWJDb3JlOjpTYW1lU2l0ZUlu
Zm8gc2FtZVNpdGVJbmZvLCBVUkwgdXJsLCBPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXI+IGZyYW1lSUQsIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIGVu
dW06Ym9vbCBXZWJDb3JlOjpTaG91bGRBc2tJVFAgc2hvdWxkQXNrSVRQKSAtPiAoVmVjdG9yPFdl
YkNvcmU6OkNvb2tpZT4gY29va2llcykgU3luY2hyb25vdXMKICAgICBEZWxldGVDb29raWUoVVJM
IHVybCwgU3RyaW5nIGNvb2tpZU5hbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Byb2Nlc3MuY3BwCmluZGV4IDM5OTI2ZWI2YWE4OGE5YTI2MWIzNDA3ODVmNzQx
OGI4OWZmMjExNjguLmFmMjRjZmZmODcxOWI3ODBiNWI4MDgyZjJhM2U4MTEyMTI3YzcxYmEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCkBA
IC03MCw2ICs3MCw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9ETlMuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL0RlcHJlY2F0ZWRHbG9iYWxTZXR0aW5ncy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRGlhZ25v
c3RpY0xvZ2dpbmdDbGllbnQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0hUVFBDb29raWVBY2NlcHRQ
b2xpY3kuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0xlZ2FjeVNjaGVtZVJlZ2lzdHJ5Lmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9Mb2dJbml0aWFsaXphdGlvbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTUlN
RVR5cGVSZWdpc3RyeS5oPgpAQCAtMzY4LDExICszNjksMTEgQEAgdm9pZCBOZXR3b3JrUHJvY2Vz
czo6aW5pdGlhbGl6ZUNvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uKQogICAg
ICAgICBzdXBwbGVtZW50LT5pbml0aWFsaXplQ29ubmVjdGlvbihjb25uZWN0aW9uKTsKIH0KIAot
dm9pZCBOZXR3b3JrUHJvY2Vzczo6Y3JlYXRlTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mo
UHJvY2Vzc0lkZW50aWZpZXIgaWRlbnRpZmllciwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPElQQzo6QXR0YWNobWVudD4mJik+JiYgY29t
cGxldGlvbkhhbmRsZXIpCit2b2lkIE5ldHdvcmtQcm9jZXNzOjpjcmVhdGVOZXR3b3JrQ29ubmVj
dGlvblRvV2ViUHJvY2VzcyhQcm9jZXNzSWRlbnRpZmllciBpZGVudGlmaWVyLCBQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8SVBDOjpBdHRh
Y2htZW50PiYmLCBIVFRQQ29va2llQWNjZXB0UG9saWN5KT4mJiBjb21wbGV0aW9uSGFuZGxlcikK
IHsKICAgICBhdXRvIGlwY0Nvbm5lY3Rpb24gPSBjcmVhdGVJUENDb25uZWN0aW9uUGFpcigpOwog
ICAgIGlmICghaXBjQ29ubmVjdGlvbikgewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcih7IH0p
OworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcih7IH0sIEhUVFBDb29raWVBY2NlcHRQb2xpY3k6
Ok5ldmVyKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtMzgyLDcgKzM4MywxMSBAQCB2
b2lkIE5ldHdvcmtQcm9jZXNzOjpjcmVhdGVOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyhQ
cm9jZXNzSWRlbnRpZmllciBpZGVudAogICAgIEFTU0VSVCghbV93ZWJQcm9jZXNzQ29ubmVjdGlv
bnMuY29udGFpbnMoaWRlbnRpZmllcikpOwogICAgIG1fd2ViUHJvY2Vzc0Nvbm5lY3Rpb25zLmFk
ZChpZGVudGlmaWVyLCBXVEZNb3ZlKG5ld0Nvbm5lY3Rpb24pKTsKIAotICAgIGNvbXBsZXRpb25I
YW5kbGVyKFdURk1vdmUoaXBjQ29ubmVjdGlvbi0+c2Vjb25kKSk7CisgICAgSFRUUENvb2tpZUFj
Y2VwdFBvbGljeSBjb29raWVBY2NlcHRQb2xpY3kgPSBIVFRQQ29va2llQWNjZXB0UG9saWN5OjpO
ZXZlcjsKKyAgICBpZiAoYXV0byogc3RvcmFnZSA9IHN0b3JhZ2VTZXNzaW9uKHNlc3Npb25JRCkp
CisgICAgICAgIGNvb2tpZUFjY2VwdFBvbGljeSA9IHN0b3JhZ2UtPmNvb2tpZUFjY2VwdFBvbGlj
eSgpOworCisgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShpcGNDb25uZWN0aW9uLT5zZWNv
bmQpLCBjb29raWVBY2NlcHRQb2xpY3kpOwogCiAgICAgY29ubmVjdGlvbi5zZXRPbkxpbmVTdGF0
ZShOZXR3b3JrU3RhdGVOb3RpZmllcjo6c2luZ2xldG9uKCkub25MaW5lKCkpOwogCkBAIC01MDcs
NiArNTEyLDEyIEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmVuc3VyZVNlc3Npb24oY29uc3QgUEFM
OjpTZXNzaW9uSUQmIHNlc3Npb25JRCwgYm9vbCBzaG91bGRVCiAjZW5kaWYKIH0KIAordm9pZCBO
ZXR3b3JrUHJvY2Vzczo6Y29va2llQWNjZXB0UG9saWN5Q2hhbmdlZChIVFRQQ29va2llQWNjZXB0
UG9saWN5IG5ld1BvbGljeSkKK3sKKyAgICBmb3IgKGF1dG8mIGNvbm5lY3Rpb24gOiBtX3dlYlBy
b2Nlc3NDb25uZWN0aW9ucy52YWx1ZXMoKSkKKyAgICAgICAgY29ubmVjdGlvbi0+Y29va2llQWNj
ZXB0UG9saWN5Q2hhbmdlZChuZXdQb2xpY3kpOworfQorCiBXZWJDb3JlOjpOZXR3b3JrU3RvcmFn
ZVNlc3Npb24qIE5ldHdvcmtQcm9jZXNzOjpzdG9yYWdlU2Vzc2lvbihjb25zdCBQQUw6OlNlc3Np
b25JRCYgc2Vzc2lvbklEKSBjb25zdAogewogICAgIGlmIChzZXNzaW9uSUQgPT0gUEFMOjpTZXNz
aW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Byb2Nlc3MuaAppbmRleCBjYWFkYzIwMWJiMjRmNTJkMGQ3ZDNhZWNiODljZDll
M2IwYWJhNjI3Li5kNmQ5NTQ1MzM5NjhhMWM0MWMyNWY0NTIwYWYzODNkMzE2NDcxOTY4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKKysr
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCkBAIC04MSw2
ICs4MSw3IEBAIGNsYXNzIFN0b3JhZ2VRdW90YU1hbmFnZXI7CiBjbGFzcyBOZXR3b3JrU3RvcmFn
ZVNlc3Npb247CiBjbGFzcyBSZXNvdXJjZUVycm9yOwogY2xhc3MgU1dTZXJ2ZXI7CitlbnVtIGNs
YXNzIEhUVFBDb29raWVBY2NlcHRQb2xpY3kgOiB1aW50OF90OwogZW51bSBjbGFzcyBJbmNsdWRl
SHR0cE9ubHlDb29raWVzIDogYm9vbDsKIGVudW0gY2xhc3MgU3RvcmVkQ3JlZGVudGlhbHNQb2xp
Y3kgOiB1aW50OF90OwogZW51bSBjbGFzcyBTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24gOiBi
b29sOwpAQCAtMzQ0LDYgKzM0NSw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlc2V0U2VydmljZVdv
cmtlckZldGNoVGltZW91dEZvclRlc3RpbmcoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsK
ICAgICBTZWNvbmRzIHNlcnZpY2VXb3JrZXJGZXRjaFRpbWVvdXQoKSBjb25zdCB7IHJldHVybiBt
X3NlcnZpY2VXb3JrZXJGZXRjaFRpbWVvdXQ7IH0KIAorICAgIHZvaWQgY29va2llQWNjZXB0UG9s
aWN5Q2hhbmdlZChXZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0UG9saWN5KTsKKwogcHJpdmF0ZToK
ICAgICB2b2lkIHBsYXRmb3JtSW5pdGlhbGl6ZU5ldHdvcmtQcm9jZXNzKGNvbnN0IE5ldHdvcmtQ
cm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJik7CiAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6
Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbj4gcGxhdGZvcm1DcmVhdGVEZWZhdWx0U3RvcmFnZVNlc3Np
b24oKSBjb25zdDsKQEAgLTM4NCw3ICszODcsNyBAQCBwcml2YXRlOgogICAgIC8vIE1lc3NhZ2Ug
SGFuZGxlcnMKICAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTmV0d29ya1Byb2Nlc3NNZXNzYWdlKElQ
Qzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29k
ZXI+Jik7CiAgICAgdm9pZCBpbml0aWFsaXplTmV0d29ya1Byb2Nlc3MoTmV0d29ya1Byb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnMmJik7Ci0gICAgdm9pZCBjcmVhdGVOZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2VzcyhXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciwgUEFMOjpTZXNzaW9uSUQsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8SVBDOjpBdHRhY2htZW50PiYmKT4mJik7Cisg
ICAgdm9pZCBjcmVhdGVOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyhXZWJDb3JlOjpQcm9j
ZXNzSWRlbnRpZmllciwgUEFMOjpTZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0
aW9uYWw8SVBDOjpBdHRhY2htZW50PiYmLCBXZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0UG9saWN5
KT4mJik7CiAKICAgICB2b2lkIGZldGNoV2Vic2l0ZURhdGEoUEFMOjpTZXNzaW9uSUQsIE9wdGlv
blNldDxXZWJzaXRlRGF0YVR5cGU+LCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFGZXRjaE9wdGlvbj4s
IHVpbnQ2NF90IGNhbGxiYWNrSUQpOwogICAgIHZvaWQgZGVsZXRlV2Vic2l0ZURhdGEoUEFMOjpT
ZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+LCBXYWxsVGltZSBtb2RpZmllZFNp
bmNlLCB1aW50NjRfdCBjYWxsYmFja0lEKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCmluZGV4IGE1NjYxM2NkYTM0
YzdlM2FjZTU1NGZkNzhiMzU5NGJhYmFiZDY2MDYuLjM5ZDExZjNhMjY1MzMzNjZiNjliMmY3MDVh
OWRkYjFjYzMxYzE4YTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgpAQCAtMjUsNyArMjUsNyBAQCBtZXNzYWdl
cyAtPiBOZXR3b3JrUHJvY2VzcyBMZWdhY3lSZWNlaXZlciB7CiAgICAgSW5pdGlhbGl6ZU5ldHdv
cmtQcm9jZXNzKHN0cnVjdCBXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
IHByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMpCiAKICAgICAjIENyZWF0ZXMgYSBjb25uZWN0aW9u
IGZvciBjb21tdW5pY2F0aW9uIHdpdGggYSBXZWJQcm9jZXNzCi0gICAgQ3JlYXRlTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MoV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIgcHJvY2Vzc0lk
ZW50aWZpZXIsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgLT4gKE9wdGlvbmFsPElQQzo6QXR0
YWNobWVudD4gY29ubmVjdGlvbklkZW50aWZpZXIpIEFzeW5jCisgICAgQ3JlYXRlTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MoV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIgcHJvY2Vzc0lk
ZW50aWZpZXIsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgLT4gKE9wdGlvbmFsPElQQzo6QXR0
YWNobWVudD4gY29ubmVjdGlvbklkZW50aWZpZXIsIGVudW06dWludDhfdCBXZWJDb3JlOjpIVFRQ
Q29va2llQWNjZXB0UG9saWN5IGNvb2tpZUFjY2VwdFBvbGljeSkgQXN5bmMKIAogI2lmIFVTRShT
T1VQKQogICAgIFNldElnbm9yZVRMU0Vycm9ycyhib29sIGlnbm9yZVRMU0Vycm9ycykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMuaAppbmRleCA1MDllMzY3YTFiMGI2YWQzOTAxY2Q1ZGUxMjJi
ZmVjYTMwZjNjNzUyLi5jYjZjMzEwOWY4ZWE0MTMzMzM5NjFjODdjMmVmNmQ2OTgxNzc4ZWYyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCkBAIC0zNCw3ICszNCw3IEBACiAjaW5jbHVk
ZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKICNpZiBVU0UoU09VUCkKLSNpbmNsdWRlICJIVFRQ
Q29va2llQWNjZXB0UG9saWN5LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9IVFRQQ29va2llQWNjZXB0
UG9saWN5Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Tb3VwTmV0d29ya1Byb3h5U2V0dGluZ3MuaD4K
ICNlbmRpZgogCkBAIC03Niw3ICs3Niw3IEBAIHN0cnVjdCBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVycyB7CiAgICAgV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMgZGVmYXVsdERhdGFT
dG9yZVBhcmFtZXRlcnM7CiAgICAgCiAjaWYgVVNFKFNPVVApCi0gICAgSFRUUENvb2tpZUFjY2Vw
dFBvbGljeSBjb29raWVBY2NlcHRQb2xpY3kgeyBIVFRQQ29va2llQWNjZXB0UG9saWN5OjpBbHdh
eXNBY2NlcHQgfTsKKyAgICBXZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0UG9saWN5IGNvb2tpZUFj
Y2VwdFBvbGljeSB7IFdlYkNvcmU6OkhUVFBDb29raWVBY2NlcHRQb2xpY3k6OkFsd2F5c0FjY2Vw
dCB9OwogICAgIGJvb2wgaWdub3JlVExTRXJyb3JzIHsgZmFsc2UgfTsKICAgICBWZWN0b3I8U3Ry
aW5nPiBsYW5ndWFnZXM7CiAgICAgV2ViQ29yZTo6U291cE5ldHdvcmtQcm94eVNldHRpbmdzIHBy
b3h5U2V0dGluZ3M7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9IVFRQQ29va2ll
QWNjZXB0UG9saWN5LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9IVFRQQ29va2llQWNjZXB0UG9s
aWN5LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ1N2MyMzQ0YzljODk4NmZmNmUy
MzIzMzA1YTI4NDMzZDg2ZWEwZWIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvSFRUUENvb2tpZUFjY2VwdFBvbGljeS5o
CisrKyAvZGV2L251bGwKQEAgLTEsNTEgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
MSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
Ci0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0g
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi1uYW1lc3BhY2UgV2ViS2l0IHsK
LQotZW51bSBjbGFzcyBIVFRQQ29va2llQWNjZXB0UG9saWN5IDogdWludDhfdCB7Ci0gICAgQWx3
YXlzQWNjZXB0ID0gMCwKLSAgICBOZXZlciA9IDEsCi0gICAgT25seUZyb21NYWluRG9jdW1lbnRE
b21haW4gPSAyLAotICAgIEV4Y2x1c2l2ZWx5RnJvbU1haW5Eb2N1bWVudERvbWFpbiA9IDMsCi19
OwotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotbmFtZXNwYWNlIFdURiB7Ci0KLXRlbXBsYXRl
PD4gc3RydWN0IEVudW1UcmFpdHM8V2ViS2l0OjpIVFRQQ29va2llQWNjZXB0UG9saWN5PiB7Ci0g
ICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKLSAgICAgICAgV2ViS2l0OjpIVFRQQ29va2ll
QWNjZXB0UG9saWN5LAotICAgICAgICBXZWJLaXQ6OkhUVFBDb29raWVBY2NlcHRQb2xpY3k6OkFs
d2F5c0FjY2VwdCwKLSAgICAgICAgV2ViS2l0OjpIVFRQQ29va2llQWNjZXB0UG9saWN5OjpOZXZl
ciwKLSAgICAgICAgV2ViS2l0OjpIVFRQQ29va2llQWNjZXB0UG9saWN5OjpPbmx5RnJvbU1haW5E
b2N1bWVudERvbWFpbiwKLSAgICAgICAgV2ViS2l0OjpIVFRQQ29va2llQWNjZXB0UG9saWN5OjpF
eGNsdXNpdmVseUZyb21NYWluRG9jdW1lbnREb21haW4KLSAgICA+OwotfTsKLQotfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5o
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCmlu
ZGV4IDQ5NmNmYzlmN2U4NGFhYzYyNmJlMTdlN2U1YjAxNmI4ZDVjYzUwMGYuLmI0MzAyZDY4Y2U3
YzE2OTYyZWViODcyNzdjNWY4M2ZiODdmNDg4YzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKQEAgLTQ3LDcgKzQ3LDcgQEAK
ICNlbmRpZgogCiAjaWYgVVNFKFNPVVApCi0jaW5jbHVkZSAiSFRUUENvb2tpZUFjY2VwdFBvbGlj
eS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvSFRUUENvb2tpZUFjY2VwdFBvbGljeS5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvU291cE5ldHdvcmtQcm94eVNldHRpbmdzLmg+CiAjZW5kaWYKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUhUVFBDb29raWVTdG9yZS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJSFRUUENvb2tpZVN0b3JlLmNwcAppbmRl
eCBjMmY3ZWEyMDExMDUwMTJlMmU3MzQ5OGFjMTc3ZmRmZDMwODNjOTE3Li4yZWUzMGJkZmJmNzg1
OTc3MTQyYmE3N2NlMGEzYjgwZTljNmNmMzVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQVBJSFRUUENvb2tpZVN0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQVBJSFRUUENvb2tpZVN0b3JlLmNwcApAQCAtMzEsNiArMzEsNyBAQAogI2lu
Y2x1ZGUgIldlYnNpdGVEYXRhU3RvcmUuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0Nvb2tpZS5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvQ29va2llU3RvcmFnZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvSFRU
UENvb2tpZUFjY2VwdFBvbGljeS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTmV0d29ya1N0b3JhZ2VT
ZXNzaW9uLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CkBAIC0xMzMsNyArMTM0LDcgQEAg
dm9pZCBIVFRQQ29va2llU3RvcmU6OmRlbGV0ZUFsbENvb2tpZXMoQ29tcGxldGlvbkhhbmRsZXI8
dm9pZCgpPiYmIGNvbXBsZXRpb25IYW4KICAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2goV1RG
TW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQogCi12b2lkIEhUVFBDb29raWVTdG9yZTo6c2V0
SFRUUENvb2tpZUFjY2VwdFBvbGljeShXZWJLaXQ6OkhUVFBDb29raWVBY2NlcHRQb2xpY3kgcG9s
aWN5LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lk
IEhUVFBDb29raWVTdG9yZTo6c2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShXZWJDb3JlOjpIVFRQ
Q29va2llQWNjZXB0UG9saWN5IHBvbGljeSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNv
bXBsZXRpb25IYW5kbGVyKQogewogICAgIGF1dG8qIHBvb2wgPSBtX293bmluZ0RhdGFTdG9yZS0+
cHJvY2Vzc1Bvb2xGb3JDb29raWVTdG9yYWdlT3BlcmF0aW9ucygpOwogICAgIGlmICghcG9vbCkg
ewpAQCAtMjc5LDcgKzI4MCw3IEBAIHZvaWQgSFRUUENvb2tpZVN0b3JlOjpkZWxldGVDb29raWVG
cm9tRGVmYXVsdFVJUHJvY2Vzc0Nvb2tpZVN0b3JlKGNvbnN0IFdlYkNvcmU6CiB2b2lkIEhUVFBD
b29raWVTdG9yZTo6c3RhcnRPYnNlcnZpbmdDaGFuZ2VzVG9EZWZhdWx0VUlQcm9jZXNzQ29va2ll
U3RvcmUoRnVuY3Rpb248dm9pZCgpPiYmKSB7IH0KIHZvaWQgSFRUUENvb2tpZVN0b3JlOjpzdG9w
T2JzZXJ2aW5nQ2hhbmdlc1RvRGVmYXVsdFVJUHJvY2Vzc0Nvb2tpZVN0b3JlKCkgeyB9CiB2b2lk
IEhUVFBDb29raWVTdG9yZTo6ZGVsZXRlQ29va2llc0luRGVmYXVsdFVJUHJvY2Vzc0Nvb2tpZVN0
b3JlKCkgeyB9Ci12b2lkIEhUVFBDb29raWVTdG9yZTo6c2V0SFRUUENvb2tpZUFjY2VwdFBvbGlj
eUluRGVmYXVsdFVJUHJvY2Vzc0Nvb2tpZVN0b3JlKFdlYktpdDo6SFRUUENvb2tpZUFjY2VwdFBv
bGljeSkgeyB9Cit2b2lkIEhUVFBDb29raWVTdG9yZTo6c2V0SFRUUENvb2tpZUFjY2VwdFBvbGlj
eUluRGVmYXVsdFVJUHJvY2Vzc0Nvb2tpZVN0b3JlKFdlYkNvcmU6OkhUVFBDb29raWVBY2NlcHRQ
b2xpY3kpIHsgfQogI2VuZGlmCiAgICAgCiB9IC8vIG5hbWVzcGFjZSBBUEkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElIVFRQQ29va2llU3RvcmUuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElIVFRQQ29va2llU3RvcmUuaAppbmRleCAyZTQxZjYy
NGQ0NzRmNWZmNDFlMTUyNTEyMGY1YmY3YTZiYjI2ZDNkLi44MTc5YzQ0ZjRlNThkMmI2Mjk4NTVj
YTkxNTkwOTRmNDMyYzQ2YzdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQVBJSFRUUENvb2tpZVN0b3JlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0FQSUhUVFBDb29raWVTdG9yZS5oCkBAIC0yNiw3ICsyNiw2IEBACiAjcHJhZ21hIG9uY2UKIAog
I2luY2x1ZGUgIkFQSU9iamVjdC5oIgotI2luY2x1ZGUgIkhUVFBDb29raWVBY2NlcHRQb2xpY3ku
aCIKICNpbmNsdWRlIDxXZWJDb3JlL0Nvb2tpZS5oPgogI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9u
SGFuZGxlci5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CkBAIC0zNywxMiArMzYsMTIgQEAg
c3RydWN0IENvb2tpZTsKICNpZiBQTEFURk9STShDT0NPQSkKIGNsYXNzIENvb2tpZVN0b3JhZ2VP
YnNlcnZlcjsKICNlbmRpZgorZW51bSBjbGFzcyBIVFRQQ29va2llQWNjZXB0UG9saWN5IDogdWlu
dDhfdDsKIH0KIAogbmFtZXNwYWNlIFdlYktpdCB7CiBjbGFzcyBXZWJDb29raWVNYW5hZ2VyUHJv
eHk7CiBjbGFzcyBXZWJzaXRlRGF0YVN0b3JlOwotZW51bSBjbGFzcyBIVFRQQ29va2llQWNjZXB0
UG9saWN5IDogdWludDhfdDsKIH0KIAogbmFtZXNwYWNlIEFQSSB7CkBAIC02Myw3ICs2Miw3IEBA
IHB1YmxpYzoKICAgICB2b2lkIGRlbGV0ZUNvb2tpZShjb25zdCBXZWJDb3JlOjpDb29raWUmLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIAogICAgIHZvaWQgZGVsZXRlQWxsQ29v
a2llcyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwotICAgIHZvaWQgc2V0SFRUUENvb2tp
ZUFjY2VwdFBvbGljeShXZWJLaXQ6OkhUVFBDb29raWVBY2NlcHRQb2xpY3ksIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoKT4mJik7CisgICAgdm9pZCBzZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KFdl
YkNvcmU6OkhUVFBDb29raWVBY2NlcHRQb2xpY3ksIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4m
Jik7CiAKICAgICBjbGFzcyBPYnNlcnZlciB7CiAgICAgcHVibGljOgpAQCAtOTAsNyArODksNyBA
QCBwcml2YXRlOgogICAgIHZvaWQgc3RhcnRPYnNlcnZpbmdDaGFuZ2VzVG9EZWZhdWx0VUlQcm9j
ZXNzQ29va2llU3RvcmUoRnVuY3Rpb248dm9pZCgpPiYmKTsKICAgICB2b2lkIHN0b3BPYnNlcnZp
bmdDaGFuZ2VzVG9EZWZhdWx0VUlQcm9jZXNzQ29va2llU3RvcmUoKTsKICAgICB2b2lkIGRlbGV0
ZUNvb2tpZXNJbkRlZmF1bHRVSVByb2Nlc3NDb29raWVTdG9yZSgpOwotICAgIHZvaWQgc2V0SFRU
UENvb2tpZUFjY2VwdFBvbGljeUluRGVmYXVsdFVJUHJvY2Vzc0Nvb2tpZVN0b3JlKFdlYktpdDo6
SFRUUENvb2tpZUFjY2VwdFBvbGljeSk7CisgICAgdm9pZCBzZXRIVFRQQ29va2llQWNjZXB0UG9s
aWN5SW5EZWZhdWx0VUlQcm9jZXNzQ29va2llU3RvcmUoV2ViQ29yZTo6SFRUUENvb2tpZUFjY2Vw
dFBvbGljeSk7CiAgICAgCiAgICAgLy8gRklYTUU6IFRoaXMgaXMgYSByZWZlcmVuY2UgY3ljbGUu
CiAgICAgUmVmPFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZT4gbV9vd25pbmdEYXRhU3RvcmU7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oCmluZGV4IDAwZDE2MjcyNzAy
OGE2NmI0MDdiMzVkNTYxOGQ5MDVjMWVhM2JhMDQuLjgxMDU1YTYxOWJhMTlmNTY1MjJjNDc4MDFh
NWEwY2FjM2M1ZmZjNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
L1dLQVBJQ2FzdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2Fz
dC5oCkBAIC0yOCw3ICsyOCw2IEBACiAjZGVmaW5lIFdLQVBJQ2FzdF9oCiAKICNpbmNsdWRlICJD
YWNoZU1vZGVsLmgiCi0jaW5jbHVkZSAiSFRUUENvb2tpZUFjY2VwdFBvbGljeS5oIgogI2luY2x1
ZGUgIkluamVjdGVkQnVuZGxlSGl0VGVzdFJlc3VsdE1lZGlhVHlwZS5oIgogI2luY2x1ZGUgIlBs
dWdpbk1vZHVsZUluZm8uaCIKICNpbmNsdWRlICJQcm9jZXNzVGVybWluYXRpb25SZWFzb24uaCIK
QEAgLTQ2LDYgKzQ1LDcgQEAKICNpbmNsdWRlICJXS1NoYXJlZEFQSUNhc3QuaCIKICNpbmNsdWRl
IDxXZWJDb3JlL0NyZWRlbnRpYWwuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lTG9hZGVyVHlw
ZXMuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0hUVFBDb29raWVBY2NlcHRQb2xpY3kuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL1BsdWdpbkRhdGEuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Byb3RlY3Rpb25T
cGFjZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2V0dGluZ3MuaD4KQEAgLTM2OSwzMyArMzY5LDMz
IEBAIGlubGluZSBSZXNvdXJjZUNhY2hlc1RvQ2xlYXIgdG9SZXNvdXJjZUNhY2hlc1RvQ2xlYXIo
V0tSZXNvdXJjZUNhY2hlc1RvQ2xlYXIgd2tSCiAgICAgcmV0dXJuIEFsbFJlc291cmNlQ2FjaGVz
OwogfQogCi1pbmxpbmUgSFRUUENvb2tpZUFjY2VwdFBvbGljeSB0b0hUVFBDb29raWVBY2NlcHRQ
b2xpY3koV0tIVFRQQ29va2llQWNjZXB0UG9saWN5IHBvbGljeSkKK2lubGluZSBXZWJDb3JlOjpI
VFRQQ29va2llQWNjZXB0UG9saWN5IHRvSFRUUENvb2tpZUFjY2VwdFBvbGljeShXS0hUVFBDb29r
aWVBY2NlcHRQb2xpY3kgcG9saWN5KQogewogICAgIHN3aXRjaCAocG9saWN5KSB7CiAgICAgY2Fz
ZSBrV0tIVFRQQ29va2llQWNjZXB0UG9saWN5QWx3YXlzOgotICAgICAgICByZXR1cm4gSFRUUENv
b2tpZUFjY2VwdFBvbGljeTo6QWx3YXlzQWNjZXB0OworICAgICAgICByZXR1cm4gV2ViQ29yZTo6
SFRUUENvb2tpZUFjY2VwdFBvbGljeTo6QWx3YXlzQWNjZXB0OwogICAgIGNhc2Uga1dLSFRUUENv
b2tpZUFjY2VwdFBvbGljeU5ldmVyOgotICAgICAgICByZXR1cm4gSFRUUENvb2tpZUFjY2VwdFBv
bGljeTo6TmV2ZXI7CisgICAgICAgIHJldHVybiBXZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0UG9s
aWN5OjpOZXZlcjsKICAgICBjYXNlIGtXS0hUVFBDb29raWVBY2NlcHRQb2xpY3lPbmx5RnJvbU1h
aW5Eb2N1bWVudERvbWFpbjoKLSAgICAgICAgcmV0dXJuIEhUVFBDb29raWVBY2NlcHRQb2xpY3k6
Ok9ubHlGcm9tTWFpbkRvY3VtZW50RG9tYWluOworICAgICAgICByZXR1cm4gV2ViQ29yZTo6SFRU
UENvb2tpZUFjY2VwdFBvbGljeTo6T25seUZyb21NYWluRG9jdW1lbnREb21haW47CiAgICAgY2Fz
ZSBrV0tIVFRQQ29va2llQWNjZXB0UG9saWN5RXhjbHVzaXZlbHlGcm9tTWFpbkRvY3VtZW50RG9t
YWluOgotICAgICAgICByZXR1cm4gSFRUUENvb2tpZUFjY2VwdFBvbGljeTo6RXhjbHVzaXZlbHlG
cm9tTWFpbkRvY3VtZW50RG9tYWluOworICAgICAgICByZXR1cm4gV2ViQ29yZTo6SFRUUENvb2tp
ZUFjY2VwdFBvbGljeTo6RXhjbHVzaXZlbHlGcm9tTWFpbkRvY3VtZW50RG9tYWluOwogICAgIH0K
IAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiBIVFRQQ29va2llQWNjZXB0
UG9saWN5OjpBbHdheXNBY2NlcHQ7CisgICAgcmV0dXJuIFdlYkNvcmU6OkhUVFBDb29raWVBY2Nl
cHRQb2xpY3k6OkFsd2F5c0FjY2VwdDsKIH0KIAotaW5saW5lIFdLSFRUUENvb2tpZUFjY2VwdFBv
bGljeSB0b0FQSShIVFRQQ29va2llQWNjZXB0UG9saWN5IHBvbGljeSkKK2lubGluZSBXS0hUVFBD
b29raWVBY2NlcHRQb2xpY3kgdG9BUEkoV2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBvbGljeSBw
b2xpY3kpCiB7CiAgICAgc3dpdGNoIChwb2xpY3kpIHsKLSAgICBjYXNlIEhUVFBDb29raWVBY2Nl
cHRQb2xpY3k6OkFsd2F5c0FjY2VwdDoKKyAgICBjYXNlIFdlYkNvcmU6OkhUVFBDb29raWVBY2Nl
cHRQb2xpY3k6OkFsd2F5c0FjY2VwdDoKICAgICAgICAgcmV0dXJuIGtXS0hUVFBDb29raWVBY2Nl
cHRQb2xpY3lBbHdheXM7Ci0gICAgY2FzZSBIVFRQQ29va2llQWNjZXB0UG9saWN5OjpOZXZlcjoK
KyAgICBjYXNlIFdlYkNvcmU6OkhUVFBDb29raWVBY2NlcHRQb2xpY3k6Ok5ldmVyOgogICAgICAg
ICByZXR1cm4ga1dLSFRUUENvb2tpZUFjY2VwdFBvbGljeU5ldmVyOwotICAgIGNhc2UgSFRUUENv
b2tpZUFjY2VwdFBvbGljeTo6T25seUZyb21NYWluRG9jdW1lbnREb21haW46CisgICAgY2FzZSBX
ZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0UG9saWN5OjpPbmx5RnJvbU1haW5Eb2N1bWVudERvbWFp
bjoKICAgICAgICAgcmV0dXJuIGtXS0hUVFBDb29raWVBY2NlcHRQb2xpY3lPbmx5RnJvbU1haW5E
b2N1bWVudERvbWFpbjsKLSAgICBjYXNlIEhUVFBDb29raWVBY2NlcHRQb2xpY3k6OkV4Y2x1c2l2
ZWx5RnJvbU1haW5Eb2N1bWVudERvbWFpbjoKKyAgICBjYXNlIFdlYkNvcmU6OkhUVFBDb29raWVB
Y2NlcHRQb2xpY3k6OkV4Y2x1c2l2ZWx5RnJvbU1haW5Eb2N1bWVudERvbWFpbjoKICAgICAgICAg
cmV0dXJuIGtXS0hUVFBDb29raWVBY2NlcHRQb2xpY3lFeGNsdXNpdmVseUZyb21NYWluRG9jdW1l
bnREb21haW47CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvQVBJSFRUUENvb2tpZVN0b3JlQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvQVBJSFRUUENvb2tpZVN0b3JlQ29jb2EubW0KaW5kZXggYWQxOTY3NjFk
NDg0MDIxYWJiNjNmYzlkNWVkMDdlZDY1ZmZlNDRjYi4uNzkxMjAxYzQ3N2U1ZDhhMTcxNzQxM2Yw
MjFlMmJmNzUyNTYzNjhjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL0FQSUhUVFBDb29raWVTdG9yZUNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9BUElIVFRQQ29va2llU3RvcmVDb2NvYS5tbQpAQCAtMjgsNiArMjgs
NyBAQAogCiAjaW5jbHVkZSA8V2ViQ29yZS9Db29raWUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0Nv
b2tpZVN0b3JhZ2VPYnNlcnZlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvSFRUUENvb2tpZUFjY2Vw
dFBvbGljeS5oPgogI2luY2x1ZGUgPHBhbC9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmg+CiAKIG5hbWVz
cGFjZSBBUEkgewpAQCAtNzUsMjMgKzc2LDIzIEBAIHZvaWQgSFRUUENvb2tpZVN0b3JlOjpkZWxl
dGVDb29raWVzSW5EZWZhdWx0VUlQcm9jZXNzQ29va2llU3RvcmUoKQogICAgIFtbTlNIVFRQQ29v
a2llU3RvcmFnZSBzaGFyZWRIVFRQQ29va2llU3RvcmFnZV0gcmVtb3ZlQ29va2llc1NpbmNlRGF0
ZTpbTlNEYXRlIGRpc3RhbnRQYXN0XV07CiB9CiAKLXN0YXRpYyBOU0hUVFBDb29raWVBY2NlcHRQ
b2xpY3kgdG9OU0hUVFBDb29raWVBY2NlcHRQb2xpY3koV2ViS2l0OjpIVFRQQ29va2llQWNjZXB0
UG9saWN5IHBvbGljeSkKK3N0YXRpYyBOU0hUVFBDb29raWVBY2NlcHRQb2xpY3kgdG9OU0hUVFBD
b29raWVBY2NlcHRQb2xpY3koV2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBvbGljeSBwb2xpY3kp
CiB7CiAgICAgc3dpdGNoIChwb2xpY3kpIHsKLSAgICBjYXNlIFdlYktpdDo6SFRUUENvb2tpZUFj
Y2VwdFBvbGljeTo6QWx3YXlzQWNjZXB0OgorICAgIGNhc2UgV2ViQ29yZTo6SFRUUENvb2tpZUFj
Y2VwdFBvbGljeTo6QWx3YXlzQWNjZXB0OgogICAgICAgICByZXR1cm4gTlNIVFRQQ29va2llQWNj
ZXB0UG9saWN5QWx3YXlzOwotICAgIGNhc2UgV2ViS2l0OjpIVFRQQ29va2llQWNjZXB0UG9saWN5
OjpOZXZlcjoKKyAgICBjYXNlIFdlYkNvcmU6OkhUVFBDb29raWVBY2NlcHRQb2xpY3k6Ok5ldmVy
OgogICAgICAgICByZXR1cm4gTlNIVFRQQ29va2llQWNjZXB0UG9saWN5TmV2ZXI7Ci0gICAgY2Fz
ZSBXZWJLaXQ6OkhUVFBDb29raWVBY2NlcHRQb2xpY3k6Ok9ubHlGcm9tTWFpbkRvY3VtZW50RG9t
YWluOgorICAgIGNhc2UgV2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBvbGljeTo6T25seUZyb21N
YWluRG9jdW1lbnREb21haW46CiAgICAgICAgIHJldHVybiBOU0hUVFBDb29raWVBY2NlcHRQb2xp
Y3lPbmx5RnJvbU1haW5Eb2N1bWVudERvbWFpbjsKLSAgICBjYXNlIFdlYktpdDo6SFRUUENvb2tp
ZUFjY2VwdFBvbGljeTo6RXhjbHVzaXZlbHlGcm9tTWFpbkRvY3VtZW50RG9tYWluOgorICAgIGNh
c2UgV2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBvbGljeTo6RXhjbHVzaXZlbHlGcm9tTWFpbkRv
Y3VtZW50RG9tYWluOgogICAgICAgICByZXR1cm4gKE5TSFRUUENvb2tpZUFjY2VwdFBvbGljeSlO
U0hUVFBDb29raWVBY2NlcHRQb2xpY3lFeGNsdXNpdmVseUZyb21NYWluRG9jdW1lbnREb21haW47
CiAgICAgfQogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIHJldHVybiBOU0hUVFBDb29r
aWVBY2NlcHRQb2xpY3lBbHdheXM7CiB9CiAKLXZvaWQgSFRUUENvb2tpZVN0b3JlOjpzZXRIVFRQ
Q29va2llQWNjZXB0UG9saWN5SW5EZWZhdWx0VUlQcm9jZXNzQ29va2llU3RvcmUoV2ViS2l0OjpI
VFRQQ29va2llQWNjZXB0UG9saWN5IHBvbGljeSkKK3ZvaWQgSFRUUENvb2tpZVN0b3JlOjpzZXRI
VFRQQ29va2llQWNjZXB0UG9saWN5SW5EZWZhdWx0VUlQcm9jZXNzQ29va2llU3RvcmUoV2ViQ29y
ZTo6SFRUUENvb2tpZUFjY2VwdFBvbGljeSBwb2xpY3kpCiB7CiAgICAgW1tOU0hUVFBDb29raWVT
dG9yYWdlIHNoYXJlZEhUVFBDb29raWVTdG9yYWdlXSBzZXRDb29raWVBY2NlcHRQb2xpY3k6dG9O
U0hUVFBDb29raWVBY2NlcHRQb2xpY3kocG9saWN5KV07CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tIVFRQQ29va2llU3RvcmUubW0gYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tIVFRQQ29va2llU3RvcmUubW0KaW5kZXggODFk
MzcwM2IwZWVhODJlNWU2YzYyZjMyMjJhYzRlNjgxOWY2YjNhNi4uOWI0NjYzYzRjYWI2ODRlM2Q3
NGM5NjU2MzhmYjJlMmZjNjgzYjgzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLSFRUUENvb2tpZVN0b3JlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS0hUVFBDb29raWVTdG9yZS5tbQpAQCAtMjYsOCArMjYsOCBAQAog
I2ltcG9ydCAiY29uZmlnLmgiCiAjaW1wb3J0ICJXS0hUVFBDb29raWVTdG9yZUludGVybmFsLmgi
CiAKLSNpbXBvcnQgIkhUVFBDb29raWVBY2NlcHRQb2xpY3kuaCIKICNpbXBvcnQgPFdlYkNvcmUv
Q29va2llLmg+CisjaW1wb3J0IDxXZWJDb3JlL0hUVFBDb29raWVBY2NlcHRQb2xpY3kuaD4KICNp
bXBvcnQgPHBhbC9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmg+CiAjaW1wb3J0IDx3dGYvSGFzaE1hcC5o
PgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2wubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5tbQppbmRleCAwOGU1YjlmMDEzNWVhZmUxYWE4
ZjRkZTRhODJiNmI4OTBiYjkxOWIzLi4zZmZjZmI4OTMzN2ZmMDk0NDlmOGFhOWYyOGZkZmJjZDQy
ZWJmZTRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQ
cm9jZXNzUG9vbC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQ
cm9jZXNzUG9vbC5tbQpAQCAtMjAwLDIxICsyMDAsMjEgQEAgLSAodm9pZClfc2V0Q2FuSGFuZGxl
SFRUUFNTZXJ2ZXJUcnVzdEV2YWx1YXRpb246KEJPT0wpdmFsdWUKIHsKIH0KIAotc3RhdGljIFdl
YktpdDo6SFRUUENvb2tpZUFjY2VwdFBvbGljeSB0b0hUVFBDb29raWVBY2NlcHRQb2xpY3koTlNI
VFRQQ29va2llQWNjZXB0UG9saWN5IHBvbGljeSkKK3N0YXRpYyBXZWJDb3JlOjpIVFRQQ29va2ll
QWNjZXB0UG9saWN5IHRvSFRUUENvb2tpZUFjY2VwdFBvbGljeShOU0hUVFBDb29raWVBY2NlcHRQ
b2xpY3kgcG9saWN5KQogewogICAgIHN3aXRjaCAoc3RhdGljX2Nhc3Q8TlNVSW50ZWdlcj4ocG9s
aWN5KSkgewogICAgIGNhc2UgTlNIVFRQQ29va2llQWNjZXB0UG9saWN5QWx3YXlzOgotICAgICAg
ICByZXR1cm4gV2ViS2l0OjpIVFRQQ29va2llQWNjZXB0UG9saWN5OjpBbHdheXNBY2NlcHQ7Cisg
ICAgICAgIHJldHVybiBXZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0UG9saWN5OjpBbHdheXNBY2Nl
cHQ7CiAgICAgY2FzZSBOU0hUVFBDb29raWVBY2NlcHRQb2xpY3lOZXZlcjoKLSAgICAgICAgcmV0
dXJuIFdlYktpdDo6SFRUUENvb2tpZUFjY2VwdFBvbGljeTo6TmV2ZXI7CisgICAgICAgIHJldHVy
biBXZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0UG9saWN5OjpOZXZlcjsKICAgICBjYXNlIE5TSFRU
UENvb2tpZUFjY2VwdFBvbGljeU9ubHlGcm9tTWFpbkRvY3VtZW50RG9tYWluOgotICAgICAgICBy
ZXR1cm4gV2ViS2l0OjpIVFRQQ29va2llQWNjZXB0UG9saWN5OjpPbmx5RnJvbU1haW5Eb2N1bWVu
dERvbWFpbjsKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkhUVFBDb29raWVBY2NlcHRQb2xpY3k6
Ok9ubHlGcm9tTWFpbkRvY3VtZW50RG9tYWluOwogICAgIGNhc2UgTlNIVFRQQ29va2llQWNjZXB0
UG9saWN5RXhjbHVzaXZlbHlGcm9tTWFpbkRvY3VtZW50RG9tYWluOgotICAgICAgICByZXR1cm4g
V2ViS2l0OjpIVFRQQ29va2llQWNjZXB0UG9saWN5OjpFeGNsdXNpdmVseUZyb21NYWluRG9jdW1l
bnREb21haW47CisgICAgICAgIHJldHVybiBXZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0UG9saWN5
OjpFeGNsdXNpdmVseUZyb21NYWluRG9jdW1lbnREb21haW47CiAgICAgfQogCiAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIFdlYktpdDo6SFRUUENvb2tpZUFjY2VwdFBvbGlj
eTo6QWx3YXlzQWNjZXB0OworICAgIHJldHVybiBXZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0UG9s
aWN5OjpBbHdheXNBY2NlcHQ7CiB9CiAKIC0gKHZvaWQpX3NldENvb2tpZUFjY2VwdFBvbGljeToo
TlNIVFRQQ29va2llQWNjZXB0UG9saWN5KXBvbGljeQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKaW5kZXggOWNiOTBm
MThjNTQyYzZhYTU2ZmFlYjYwMDdkMjZmZGYxZDBiZWE4ZS4uYmExNmUzMjYwNWIyMGFlNjJlMzc2
OTdkMTBhYzk4YTU0MWUxNzNlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
TmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCkBAIC0xNDcsNyArMTQ3LDcgQEAg
dm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpnZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oV2Vi
UHJvY2Vzc1Byb3h5JiB3ZWJQcm9jZXMKIAogdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpvcGVu
TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKHVpbnQ2NF90IGNvbm5lY3Rpb25SZXF1ZXN0SWRlbnRp
ZmllciwgV2ViUHJvY2Vzc1Byb3h5JiB3ZWJQcm9jZXNzUHJveHkpCiB7Ci0gICAgY29ubmVjdGlv
bigpLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpDcmVhdGVO
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyB7IHdlYlByb2Nlc3NQcm94eS5jb3JlUHJvY2Vz
c0lkZW50aWZpZXIoKSwgd2ViUHJvY2Vzc1Byb3h5LnNlc3Npb25JRCgpIH0sIFt0aGlzLCB3ZWFr
VGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpLCB3ZWJQcm9jZXNzUHJveHkgPSBtYWtlV2Vha1B0cih3
ZWJQcm9jZXNzUHJveHkpLCBjb25uZWN0aW9uUmVxdWVzdElkZW50aWZpZXJdKGF1dG8mJiBjb25u
ZWN0aW9uSWRlbnRpZmllcikgbXV0YWJsZSB7CisgICAgY29ubmVjdGlvbigpLT5zZW5kV2l0aEFz
eW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpDcmVhdGVOZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2VzcyB7IHdlYlByb2Nlc3NQcm94eS5jb3JlUHJvY2Vzc0lkZW50aWZpZXIoKSwg
d2ViUHJvY2Vzc1Byb3h5LnNlc3Npb25JRCgpIH0sIFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFr
UHRyKHRoaXMpLCB3ZWJQcm9jZXNzUHJveHkgPSBtYWtlV2Vha1B0cih3ZWJQcm9jZXNzUHJveHkp
LCBjb25uZWN0aW9uUmVxdWVzdElkZW50aWZpZXJdKGF1dG8mJiBjb25uZWN0aW9uSWRlbnRpZmll
ciwgSFRUUENvb2tpZUFjY2VwdFBvbGljeSBjb29raWVBY2NlcHRQb2xpY3kpIG11dGFibGUgewog
ICAgICAgICBpZiAoIXdlYWtUaGlzKQogICAgICAgICAgICAgcmV0dXJuOwogCkBAIC0xNjEsMTAg
KzE2MSwxMCBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6Om9wZW5OZXR3b3JrUHJvY2Vzc0Nv
bm5lY3Rpb24odWludDY0X3QgY29ubmVjdGlvblJlcXVlcwogICAgICAgICBhdXRvIHJlcXVlc3Qg
PSBtX2Nvbm5lY3Rpb25SZXF1ZXN0cy50YWtlKGNvbm5lY3Rpb25SZXF1ZXN0SWRlbnRpZmllcik7
CiAKICNpZiBVU0UoVU5JWF9ET01BSU5fU09DS0VUUykgfHwgT1MoV0lORE9XUykKLSAgICAgICAg
cmVxdWVzdC5yZXBseShOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25JbmZvIHsgV1RGTW92ZSgqY29u
bmVjdGlvbklkZW50aWZpZXIpIH0pOworICAgICAgICByZXF1ZXN0LnJlcGx5KE5ldHdvcmtQcm9j
ZXNzQ29ubmVjdGlvbkluZm8geyBXVEZNb3ZlKCpjb25uZWN0aW9uSWRlbnRpZmllciksIGNvb2tp
ZUFjY2VwdFBvbGljeSB9KTsKICNlbGlmIE9TKERBUldJTikKICAgICAgICAgTUVTU0FHRV9DSEVD
SyhNQUNIX1BPUlRfVkFMSUQoY29ubmVjdGlvbklkZW50aWZpZXItPnBvcnQoKSkpOwotICAgICAg
ICByZXF1ZXN0LnJlcGx5KE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbkluZm8geyBJUEM6OkF0dGFj
aG1lbnQgeyBjb25uZWN0aW9uSWRlbnRpZmllci0+cG9ydCgpLCBNQUNIX01TR19UWVBFX01PVkVf
U0VORCB9LCBjb25uZWN0aW9uKCktPmdldEF1ZGl0VG9rZW4oKSB9KTsKKyAgICAgICAgcmVxdWVz
dC5yZXBseShOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25JbmZvIHsgSVBDOjpBdHRhY2htZW50IHsg
Y29ubmVjdGlvbklkZW50aWZpZXItPnBvcnQoKSwgTUFDSF9NU0dfVFlQRV9NT1ZFX1NFTkQgfSwg
Y29va2llQWNjZXB0UG9saWN5LCBjb25uZWN0aW9uKCktPmdldEF1ZGl0VG9rZW4oKSB9KTsKICNl
bHNlCiAgICAgICAgIG5vdEltcGxlbWVudGVkKCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5LmgKaW5kZXggNThiODJmZDEwYzhjMjYy
MTU0ODkwMWIxMzVkNWZlOWE4ZDk3NWJkNC4uMGJkZmMwZDRlNDdjNDM2ZjU4NWNmMjljMDlkNTFh
MjliYzgxMWE5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29va2ll
TWFuYWdlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29va2llTWFu
YWdlclByb3h5LmgKQEAgLTUzLDcgKzUzLDcgQEAgY2xhc3MgV2ViUHJvY2Vzc1Bvb2w7CiBjbGFz
cyBXZWJQcm9jZXNzUHJveHk7CiAKIHR5cGVkZWYgR2VuZXJpY0NhbGxiYWNrPEFQSTo6QXJyYXkq
PiBBcnJheUNhbGxiYWNrOwotdHlwZWRlZiBHZW5lcmljQ2FsbGJhY2s8SFRUUENvb2tpZUFjY2Vw
dFBvbGljeT4gSFRUUENvb2tpZUFjY2VwdFBvbGljeUNhbGxiYWNrOwordHlwZWRlZiBHZW5lcmlj
Q2FsbGJhY2s8V2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBvbGljeT4gSFRUUENvb2tpZUFjY2Vw
dFBvbGljeUNhbGxiYWNrOwogdHlwZWRlZiBHZW5lcmljQ2FsbGJhY2s8Y29uc3QgVmVjdG9yPFdl
YkNvcmU6OkNvb2tpZT4mPiBHZXRDb29raWVzQ2FsbGJhY2s7CiAKIGNsYXNzIFdlYkNvb2tpZU1h
bmFnZXJQcm94eSA6IHB1YmxpYyBBUEk6Ok9iamVjdEltcGw8QVBJOjpPYmplY3Q6OlR5cGU6OkNv
b2tpZU1hbmFnZXI+LCBwdWJsaWMgV2ViQ29udGV4dFN1cHBsZW1lbnQsIHByaXZhdGUgSVBDOjpN
ZXNzYWdlUmVjZWl2ZXIgewpAQCAtNzcsOCArNzcsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBnZXRB
bGxDb29raWVzKFBBTDo6U2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFZlY3RvcjxX
ZWJDb3JlOjpDb29raWU+JiYpPiYmKTsKICAgICB2b2lkIGdldENvb2tpZXMoUEFMOjpTZXNzaW9u
SUQsIGNvbnN0IFVSTCYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9yPFdlYkNvcmU6OkNv
b2tpZT4mJik+JiYpOwogCi0gICAgdm9pZCBzZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KFBBTDo6
U2Vzc2lvbklELCBIVFRQQ29va2llQWNjZXB0UG9saWN5LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KCk+JiYpOwotICAgIHZvaWQgZ2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShQQUw6OlNlc3Npb25J
RCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChIVFRQQ29va2llQWNjZXB0UG9saWN5KT4mJik7Cisg
ICAgdm9pZCBzZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KFBBTDo6U2Vzc2lvbklELCBXZWJDb3Jl
OjpIVFRQQ29va2llQWNjZXB0UG9saWN5LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwor
ICAgIHZvaWQgZ2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShQQUw6OlNlc3Npb25JRCwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0UG9saWN5KT4mJik7CiAK
ICAgICB2b2lkIHN0YXJ0T2JzZXJ2aW5nQ29va2llQ2hhbmdlcyhQQUw6OlNlc3Npb25JRCk7CiAg
ICAgdm9pZCBzdG9wT2JzZXJ2aW5nQ29va2llQ2hhbmdlcyhQQUw6OlNlc3Npb25JRCk7CkBAIC0x
MTksNyArMTE5LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6
Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIG92ZXJyaWRlOwogCiAjaWYgUExBVEZPUk0oQ09D
T0EpCi0gICAgdm9pZCBwZXJzaXN0SFRUUENvb2tpZUFjY2VwdFBvbGljeShIVFRQQ29va2llQWNj
ZXB0UG9saWN5KTsKKyAgICB2b2lkIHBlcnNpc3RIVFRQQ29va2llQWNjZXB0UG9saWN5KFdlYkNv
cmU6OkhUVFBDb29raWVBY2NlcHRQb2xpY3kpOwogI2VuZGlmCiAKICAgICBIYXNoTWFwPFBBTDo6
U2Vzc2lvbklELCBXVEY6OkZ1bmN0aW9uPHZvaWQgKCk+PiBtX2xlZ2FjeUNvb2tpZU9ic2VydmVy
czsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCmluZGV4IDFkYmQxODFk
NDEzZThmYmE0MDVkODFiYzBhNGY5NGU0ZTc5NjJiOTguLmE1MDFkZTM3Mzc1ZDc4MDhlYjMyZDE2
MGVlM2Y0MTU5ODA5MGE4ZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlByb2Nlc3NQb29sLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bv
b2wuaApAQCAtMjk0LDcgKzI5NCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHN0b3BNZW1vcnlTYW1w
bGVyKCk7CiAKICNpZiBVU0UoU09VUCkKLSAgICB2b2lkIHNldEluaXRpYWxIVFRQQ29va2llQWNj
ZXB0UG9saWN5KEhUVFBDb29raWVBY2NlcHRQb2xpY3kgcG9saWN5KSB7IG1faW5pdGlhbEhUVFBD
b29raWVBY2NlcHRQb2xpY3kgPSBwb2xpY3k7IH0KKyAgICB2b2lkIHNldEluaXRpYWxIVFRQQ29v
a2llQWNjZXB0UG9saWN5KFdlYkNvcmU6OkhUVFBDb29raWVBY2NlcHRQb2xpY3kgcG9saWN5KSB7
IG1faW5pdGlhbEhUVFBDb29raWVBY2NlcHRQb2xpY3kgPSBwb2xpY3k7IH0KICAgICB2b2lkIHNl
dE5ldHdvcmtQcm94eVNldHRpbmdzKGNvbnN0IFdlYkNvcmU6OlNvdXBOZXR3b3JrUHJveHlTZXR0
aW5ncyYpOwogI2VuZGlmCiAgICAgdm9pZCBzZXRFbmhhbmNlZEFjY2Vzc2liaWxpdHkoYm9vbCk7
CkBAIC02NzcsNyArNjc3LDcgQEAgcHJpdmF0ZToKICAgICBXZWJDb250ZXh0U3VwcGxlbWVudE1h
cCBtX3N1cHBsZW1lbnRzOwogCiAjaWYgVVNFKFNPVVApCi0gICAgSFRUUENvb2tpZUFjY2VwdFBv
bGljeSBtX2luaXRpYWxIVFRQQ29va2llQWNjZXB0UG9saWN5IHsgSFRUUENvb2tpZUFjY2VwdFBv
bGljeTo6T25seUZyb21NYWluRG9jdW1lbnREb21haW4gfTsKKyAgICBIVFRQQ29va2llQWNjZXB0
UG9saWN5IG1faW5pdGlhbEhUVFBDb29raWVBY2NlcHRQb2xpY3kgeyBXZWJDb3JlOjpIVFRQQ29v
a2llQWNjZXB0UG9saWN5OjpPbmx5RnJvbU1haW5Eb2N1bWVudERvbWFpbiB9OwogICAgIFdlYkNv
cmU6OlNvdXBOZXR3b3JrUHJveHlTZXR0aW5ncyBtX25ldHdvcmtQcm94eVNldHRpbmdzOwogI2Vu
ZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJDb29raWVN
YW5hZ2VyUHJveHlNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViQ29va2ll
TWFuYWdlclByb3h5TWFjLm1tCmluZGV4IGVlZDk3YWJlZDYwM2EzZGNiZTExYjc5NzJmNDcxMDFi
OWI5NGU3MjguLjg4OTVmNjBkMmVjZDY2OTg1MTUzYTcyOTQxYTdiZTFmZTYzMDFiNTQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJDb29raWVNYW5hZ2VyUHJveHlN
YWMubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYkNvb2tpZU1hbmFnZXJQ
cm94eU1hYy5tbQpAQCAtMzEsNyArMzEsNyBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotdm9p
ZCBXZWJDb29raWVNYW5hZ2VyUHJveHk6OnBlcnNpc3RIVFRQQ29va2llQWNjZXB0UG9saWN5KEhU
VFBDb29raWVBY2NlcHRQb2xpY3kgcG9saWN5KQordm9pZCBXZWJDb29raWVNYW5hZ2VyUHJveHk6
OnBlcnNpc3RIVFRQQ29va2llQWNjZXB0UG9saWN5KFdlYkNvcmU6OkhUVFBDb29raWVBY2NlcHRQ
b2xpY3kgcG9saWN5KQogewogICAgIEFTU0VSVChoYXNQcm9jZXNzUHJpdmlsZWdlKFByb2Nlc3NQ
cml2aWxlZ2U6OkNhbkFjY2Vzc1Jhd0Nvb2tpZXMpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2Vi
S2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNmFkZWE1ODUwZjg4NjQzYWY3MGY4
OTUwMzFiMzg2MTU2YjJlNDNmOC4uZTg3ODc4OTllZjAyZmYwZWI4ZjQ1ZjBlMTFmMjYzN2IzZGNm
MGI3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCkBAIC04ODIsNyArODgyLDYgQEAKIAkJMzdERkE3MDAxODEwQkI5MjAwMUY0QTlGIC8qIFdL
Rm91bmRhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMzdERkE2RkYxODEwQkI5MjAwMUY0QTlGIC8qIFdLRm91bmRhdGlvbi5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFB1YmxpYywgKTsgfTsgfTsKIAkJMzdFMjVENkUxOEZERTVENjAw
NUQzQTAwIC8qIEFQSUZvcm1DbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDM3RTI1RDZEMThGREU1RDYwMDVEM0EwMCAvKiBBUElGb3JtQ2xpZW50
LmggKi87IH07CiAJCTM3RjYyM0I4MTJBNTdCNjIwMEUzRkRGNiAvKiBXS0ZpbmRPcHRpb25zLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzN0Y2MjNCNzEy
QTU3QjYyMDBFM0ZERjYgLyogV0tGaW5kT3B0aW9ucy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTM3RjkwREUzMTM3NjU2MEUwMDUxQ0Y2OCAvKiBI
VFRQQ29va2llQWNjZXB0UG9saWN5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBGNjM4OTU0RjEzM0JFRjM4MDA4OTQxRDUgLyogSFRUUENvb2tpZUFjY2Vw
dFBvbGljeS5oICovOyB9OwogCQkzN0ZDMTk0NzE4NTBGQkYyMDA4Q0ZBNDcgLyogV0tCcm93c2lu
Z0NvbnRleHRMb2FkRGVsZWdhdGVQcml2YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAzN0ZDMTk0NjE4NTBGQkYyMDA4Q0ZBNDcgLyogV0tCcm93c2lu
Z0NvbnRleHRMb2FkRGVsZWdhdGVQcml2YXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMzdGQzE5NEIxODUxMEQ2QTAwOENGQTQ3IC8qIFdLTlNV
UkxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMzdGQzE5NDkxODUxMEQ2QTAwOENGQTQ3IC8qIFdLTlNVUkxBdXRo
ZW50aWNhdGlvbkNoYWxsZW5nZS5oICovOyB9OwogCQkzRjQxOEVGOTE4ODdCRDk3MDAyNzk1RkQg
LyogVmlkZW9GdWxsc2NyZWVuTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzRjQxOEVGNTE4ODdCRDk3MDAyNzk1
RkQgLyogVmlkZW9GdWxsc2NyZWVuTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CkBA
IC0yMTE5LDkgKzIxMTgsOSBAQAogCQkwN0I5M0ZGNTIzQUYwQ0I4MDAzNkY4RUEgLyogUmVtb3Rl
TWVkaWFQbGF5ZXJDb25maWd1cmF0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZU1lZGlhUGxh
eWVyQ29uZmlndXJhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwN0JBRjM1
NjIzQTJDQzE3MDA0NDI1N0UgLyogUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBSZW1vdGVNZWRpYVBsYXllclByb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTA3QkFGMzU3MjNBMkNDMTkwMDQ0MjU3RSAvKiBSZW1vdGVNZWRpYVBsYXllclByb3h5LmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZU1lZGlhUGxheWVyUHJveHkuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQkwN0UxOUVGODIzRDQwMUYwMDA5NEZGQjQgLyogTWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgbmFtZSA9IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZU1lc3NhZ2VSZWNlaXZl
ci5jcHA7IHBhdGggPSBNZWRpYVBsYXllclByaXZhdGVSZW1vdGVNZXNzYWdlUmVjZWl2ZXIuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwN0UxOUVGOTIzRDQwMUYwMDA5NEZGQjQg
LyogTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBuYW1lID0gTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlTWVzc2FnZXMuaDsgcGF0aCA9
IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZU1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCTA3RTE5RUZBMjNENDAxRjAwMDk0RkZCNCAvKiBNZWRpYVBsYXllclByaXZhdGVS
ZW1vdGVNZXNzYWdlc1JlcGxpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0g
TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlTWVzc2FnZXNSZXBsaWVzLmg7IHBhdGggPSBNZWRpYVBs
YXllclByaXZhdGVSZW1vdGVNZXNzYWdlc1JlcGxpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJMDdFMTlFRjgyM0Q0MDFGMDAwOTRGRkI0IC8qIE1lZGlhUGxheWVyUHJpdmF0ZVJl
bW90ZU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBNZWRpYVBsYXllclByaXZhdGVSZW1vdGVNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkwN0UxOUVGOTIzRDQwMUYwMDA5NEZGQjQgLyogTWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJMDdFMTlFRkEyM0Q0MDFGMDAwOTRGRkI0IC8qIE1lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZU1lc3NhZ2VzUmVwbGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBNZWRpYVBsYXllclByaXZhdGVSZW1vdGVNZXNzYWdlc1JlcGxpZXMuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDg2N0Q2QTVGRTg0MDMwN0MwMkFBQzA3IC8qIEFwcEtpdC5m
cmFtZXdvcmsgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSB3cmFwcGVyLmZyYW1ld29yazsgbmFtZSA9IEFwcEtpdC5mcmFtZXdvcms7IHBhdGggPSAvU3lz
dGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BcHBLaXQuZnJhbWV3b3JrOyBzb3VyY2VUcmVlID0gIjxh
YnNvbHV0ZT4iOyB9OwogCQkwODlDMTY2N0ZFODQxMTU4QzAyQUFDMDcgLyogZW4gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0LnBsaXN0LnN0cmluZ3M7IG5hbWUgPSBlbjsgcGF0aCA9IGVuLmxwcm9qL0luZm9QbGlz
dC5zdHJpbmdzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRTk3RDc0QzIwMEU4RkYz
MDBCRjY2NDMgLyogU2FmZUJyb3dzaW5nU1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNhZmVCcm93c2lu
Z1NQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNTEzMCw3ICs1MTI5LDYgQEAK
IAkJRjYxMTNFMjYxMjZDRTE5QjAwNTdEMEE3IC8qIFdLVXNlckNvbnRlbnRVUkxQYXR0ZXJuLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdLVXNlckNvbnRlbnRVUkxQ
YXR0ZXJuLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjYxMTNFMjcxMjZDRTE5
QjAwNTdEMEE3IC8qIFdLVXNlckNvbnRlbnRVUkxQYXR0ZXJuLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFdLVXNlckNvbnRlbnRVUkxQYXR0ZXJuLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUY2MzQ0NDU1MTJBODg1QzgwMDA2MTJEOCAvKiBBUElTZWN1cml0eU9y
aWdpbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBUElTZWN1cml0eU9yaWdp
bi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlGNjM4OTU0RjEzM0JFRjM4MDA4OTQx
RDUgLyogSFRUUENvb2tpZUFjY2VwdFBvbGljeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBIVFRQQ29va2llQWNjZXB0UG9saWN5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUY2QTBDMTNGMTMyODFFNkUwMDcwNDMwRiAvKiBSZXNvdXJjZUNhY2hlc1RvQ2xlYXIu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVzb3VyY2VDYWNoZXNUb0NsZWFy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY2QTkwODExMTMzQzFGM0QwMDgyQzNG
NCAvKiBXZWJDb29raWVNYW5hZ2VyTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gV2ViQ29va2llTWFuYWdlck1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRjZENjMyQkExMzNEMTgxQjAwNzQzRDc3IC8qIFdlYkNvb2tpZU1hbmFnZXJQcm94
eU1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkNvb2tp
ZU1hbmFnZXJQcm94eU1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTU2OTcs
NyArNTY5NSw2IEBACiAJCQkJMUExNEY4REYxRDc0QzgzNDAwNkNCRUM2IC8qIEZyYW1lSW5mb0Rh
dGEuY3BwICovLAogCQkJCTFBMTRGOEUwMUQ3NEM4MzQwMDZDQkVDNiAvKiBGcmFtZUluZm9EYXRh
LmggKi8sCiAJCQkJMUFDNzVBMUExQjMzNjgyNzAwNTY3NDVCIC8qIEhhbmdEZXRlY3Rpb25EaXNh
Ymxlci5oICovLAotCQkJCUY2Mzg5NTRGMTMzQkVGMzgwMDg5NDFENSAvKiBIVFRQQ29va2llQWNj
ZXB0UG9saWN5LmggKi8sCiAJCQkJQkNDRjZCMjMxMkM5M0U3QTAwOEY5QzM1IC8qIEltYWdlT3B0
aW9ucy5oICovLAogCQkJCTFBOTJEQzEyMTJGOEJBQjkwMDE3QUY2NSAvKiBMYXllclRyZWVDb250
ZXh0LmNwcCAqLywKIAkJCQkxQTkyREMxMDEyRjhCQTQ2MDAxN0FGNjUgLyogTGF5ZXJUcmVlQ29u
dGV4dC5oICovLApAQCAtMTAyMTgsNyArMTAyMTUsNiBAQAogCQkJCTU3NzJGMjA2MjE3REJENkEw
MDU2QkYyQyAvKiBIaWRTZXJ2aWNlLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMTJDQzlGMjIxNUIw
NkYxMDBERTQwQ0EgLyogSGlnaFBlcmZvcm1hbmNlR1BVTWFuYWdlci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJODM5QTJGMzIxRTIwNjc0NTAwMzkwNTdFIC8qIEhpZ2hQZXJmb3JtYW5jZUdyYXBoaWNz
VXNhZ2VTYW1wbGVyLmggaW4gSGVhZGVycyAqLywKLQkJCQkzN0Y5MERFMzEzNzY1NjBFMDA1MUNG
NjggLyogSFRUUENvb2tpZUFjY2VwdFBvbGljeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTFDMEM5
NzQxRERENzYwMDAwMzJDQUQzIC8qIEljb25Mb2FkaW5nRGVsZWdhdGUuaCBpbiBIZWFkZXJzICov
LAogCQkJCTUxRTM1MUNCMTgwRjJDQ0MwMEU1M0JFOSAvKiBJREJVdGlsaXRpZXMuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUJDQ0Y2QjI1MTJDOTNFN0EwMDhGOUMzNSAvKiBJbWFnZU9wdGlvbnMuaCBp
biBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdv
cmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5jcHAKaW5kZXggZmQwMGQ3ODY0YjVh
NTNmYjc0MzBlMTZiODcwY2E2MmNiMDBhZGRhNC4uMWU3MDM1NGY2YjcxNDE5NjAyZDk0YjBmNTQz
MzEzMmE2MzQxMTg3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdv
cmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCkBAIC01Niw2ICs1Niw3
IEBACiAjaW5jbHVkZSAiV2ViU29ja2V0U3RyZWFtLmgiCiAjaW5jbHVkZSAiV2ViU29ja2V0U3Ry
ZWFtTWVzc2FnZXMuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0NhY2hlZFJlc291cmNlLmg+CisjaW5j
bHVkZSA8V2ViQ29yZS9IVFRQQ29va2llQWNjZXB0UG9saWN5Lmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9NZW1vcnlDYWNoZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTWVzc2FnZVBvcnQuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL1NoYXJlZEJ1ZmZlci5oPgpAQCAtNjgsOCArNjksOSBAQAogbmFtZXNwYWNl
IFdlYktpdCB7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAotTmV0d29ya1Byb2Nlc3NDb25u
ZWN0aW9uOjpOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uOjpJZGVudGlm
aWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyKQorTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpOZXR3
b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyIGNvbm5lY3Rp
b25JZGVudGlmaWVyLCBIVFRQQ29va2llQWNjZXB0UG9saWN5IGNvb2tpZUFjY2VwdFBvbGljeSkK
ICAgICA6IG1fY29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb246OmNyZWF0ZUNsaWVudENvbm5lY3Rp
b24oY29ubmVjdGlvbklkZW50aWZpZXIsICp0aGlzKSkKKyAgICAsIG1fY29va2llQWNjZXB0UG9s
aWN5KGNvb2tpZUFjY2VwdFBvbGljeSkKIHsKICAgICBtX2Nvbm5lY3Rpb24tPm9wZW4oKTsKIH0K
QEAgLTIwNCw3ICsyMDYsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkUmVj
ZWl2ZUludmFsaWRNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6UwogCiB2b2lkIE5ldHdv
cmtQcm9jZXNzQ29ubmVjdGlvbjo6d3JpdGVCbG9ic1RvVGVtcG9yYXJ5RmlsZXMoY29uc3QgVmVj
dG9yPFN0cmluZz4mIGJsb2JVUkxzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFZlY3RvcjxTdHJp
bmc+JiYgZmlsZVBhdGhzKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBXZWJQcm9jZXNz
OjpzaW5nbGV0b24oKS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9u
KCkuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzczo6V3JpdGVCbG9ic1RvVGVtcG9yYXJ5RmlsZXMoYmxvYlVSTHMpLCBXVEZNb3ZlKGNvbXBs
ZXRpb25IYW5kbGVyKSk7CisgICAgY29ubmVjdGlvbigpLnNlbmRXaXRoQXN5bmNSZXBseShNZXNz
YWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OldyaXRlQmxvYnNUb1RlbXBvcmFy
eUZpbGVzKGJsb2JVUkxzKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQogCiB2b2lk
IE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkRmluaXNoUGluZ0xvYWQodWludDY0X3QgcGlu
Z0xvYWRJZGVudGlmaWVyLCBSZXNvdXJjZUVycm9yJiYgZXJyb3IsIFJlc291cmNlUmVzcG9uc2Um
JiByZXNwb25zZSkKQEAgLTIyMiw2ICsyMjQsMTYgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc0Nvbm5l
Y3Rpb246OnNldE9uTGluZVN0YXRlKGJvb2wgaXNPbkxpbmUpCiAgICAgV2ViUHJvY2Vzczo6c2lu
Z2xldG9uKCkud2ViTG9hZGVyU3RyYXRlZ3koKS5zZXRPbkxpbmVTdGF0ZShpc09uTGluZSk7CiB9
CiAKK2Jvb2wgTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpjb29raWVzRW5hYmxlZCgpCit7Cisg
ICAgcmV0dXJuIG1fY29va2llQWNjZXB0UG9saWN5ICE9IEhUVFBDb29raWVBY2NlcHRQb2xpY3k6
Ok5ldmVyOworfQorCit2b2lkIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6Y29va2llQWNjZXB0
UG9saWN5Q2hhbmdlZChIVFRQQ29va2llQWNjZXB0UG9saWN5IG5ld1BvbGljeSkKK3sKKyAgICBt
X2Nvb2tpZUFjY2VwdFBvbGljeSA9IG5ld1BvbGljeTsKK30KKwogI2lmIEVOQUJMRShTSEFSRUFC
TEVfUkVTT1VSQ0UpCiB2b2lkIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkQ2FjaGVSZXNv
dXJjZShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFNoYXJlYWJsZVJlc291
cmNlOjpIYW5kbGUmIGhhbmRsZSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmgKaW5kZXggMmE0OTZh
OWU0ZTQzMzllYjA1ODRhYTIyNjQyMWY2MjBiMTBkZGNkYi4uZGQxMDQxNjdmNTQxNDgwM2E1MmEy
MjVhM2FmZWNmZmNmOTRkMGM2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmgKQEAgLTQzLDYgKzQz
LDcgQEAgY2xhc3MgUmVzb3VyY2VSZXF1ZXN0OwogY2xhc3MgUmVzb3VyY2VSZXNwb25zZTsKIHN0
cnVjdCBNZXNzYWdlUG9ydElkZW50aWZpZXI7CiBzdHJ1Y3QgTWVzc2FnZVdpdGhNZXNzYWdlUG9y
dHM7CitlbnVtIGNsYXNzIEhUVFBDb29raWVBY2NlcHRQb2xpY3kgOiB1aW50OF90OwogfQogCiBu
YW1lc3BhY2UgV2ViS2l0IHsKQEAgLTU0LDkgKzU1LDkgQEAgdHlwZWRlZiB1aW50NjRfdCBSZXNv
dXJjZUxvYWRJZGVudGlmaWVyOwogCiBjbGFzcyBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24gOiBw
dWJsaWMgUmVmQ291bnRlZDxOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24+LCBJUEM6OkNvbm5lY3Rp
b246OkNsaWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxOZXR3b3JrUHJvY2Vzc0Nvbm5l
Y3Rpb24+IGNyZWF0ZShJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIgY29ubmVjdGlvbklkZW50
aWZpZXIpCisgICAgc3RhdGljIFJlZjxOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24+IGNyZWF0ZShJ
UEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIgY29ubmVjdGlvbklkZW50aWZpZXIsIFdlYkNvcmU6
OkhUVFBDb29raWVBY2NlcHRQb2xpY3kgaHR0cENvb2tpZUFjY2VwdFBvbGljeSkKICAgICB7Ci0g
ICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbihjb25u
ZWN0aW9uSWRlbnRpZmllcikpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBOZXR3b3Jr
UHJvY2Vzc0Nvbm5lY3Rpb24oY29ubmVjdGlvbklkZW50aWZpZXIsIGh0dHBDb29raWVBY2NlcHRQ
b2xpY3kpKTsKICAgICB9CiAgICAgfk5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpOwogICAgIApA
QCAtODAsOCArODEsMTAgQEAgcHVibGljOgogICAgIE9wdGlvbmFsPGF1ZGl0X3Rva2VuX3Q+IG5l
dHdvcmtQcm9jZXNzQXVkaXRUb2tlbigpIGNvbnN0IHsgcmV0dXJuIG1fbmV0d29ya1Byb2Nlc3NB
dWRpdFRva2VuOyB9CiAjZW5kaWYKIAorICAgIGJvb2wgY29va2llc0VuYWJsZWQoKTsKKwogcHJp
dmF0ZToKLSAgICBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uOjpJZGVu
dGlmaWVyKTsKKyAgICBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uOjpJ
ZGVudGlmaWVyLCBXZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0UG9saWN5KTsKIAogICAgIC8vIElQ
Qzo6Q29ubmVjdGlvbjo6Q2xpZW50CiAgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNv
bm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBvdmVycmlkZTsKQEAgLTkyLDYgKzk1LDcgQEAgcHJp
dmF0ZToKICAgICB2b2lkIGRpZEZpbmlzaFBpbmdMb2FkKHVpbnQ2NF90IHBpbmdMb2FkSWRlbnRp
ZmllciwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYmLCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNl
JiYpOwogICAgIHZvaWQgZGlkRmluaXNoUHJlY29ubmVjdGlvbih1aW50NjRfdCBwcmVjb25uZWN0
aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYmKTsKICAgICB2b2lkIHNldE9u
TGluZVN0YXRlKGJvb2wgaXNPbkxpbmUpOworICAgIHZvaWQgY29va2llQWNjZXB0UG9saWN5Q2hh
bmdlZChXZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0UG9saWN5KTsKIAogICAgIHZvaWQgY2hlY2tQ
cm9jZXNzTG9jYWxQb3J0Rm9yQWN0aXZpdHkoY29uc3QgV2ViQ29yZTo6TWVzc2FnZVBvcnRJZGVu
dGlmaWVyJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpNZXNzYWdlUG9ydENoYW5u
ZWxQcm92aWRlcjo6SGFzQWN0aXZpdHkpPiYmKTsKICAgICB2b2lkIG1lc3NhZ2VzQXZhaWxhYmxl
Rm9yUG9ydChjb25zdCBXZWJDb3JlOjpNZXNzYWdlUG9ydElkZW50aWZpZXImKTsKQEAgLTExNCw2
ICsxMTgsNyBAQCBwcml2YXRlOgogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKICAgICBSZWZQ
dHI8V2ViU1dDbGllbnRDb25uZWN0aW9uPiBtX3N3Q29ubmVjdGlvbjsKICNlbmRpZgorICAgIFdl
YkNvcmU6OkhUVFBDb29raWVBY2NlcHRQb2xpY3kgbV9jb29raWVBY2NlcHRQb2xpY3k7CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbiBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5tZXNz
YWdlcy5pbgppbmRleCA0ZDYzNGM1N2I5Yzc5OTUwNDhhMDgwZjI3ZjNlMzJlNTMwNTI2YWViLi4y
YWE2ODg2ZTU3YTU5OWNiYzE3YzM1ZjZiNzRlOTlkMmFiM2E4OWU1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24ubWVz
c2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1By
b2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluCkBAIC0yOSw2ICsyOSw3IEBAIG1lc3NhZ2VzIC0+
IE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbiBMZWdhY3lSZWNlaXZlciB7CiAgICAgRGlkRmluaXNo
UGluZ0xvYWQodWludDY0X3QgcGluZ0xvYWRJZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZUVy
cm9yIGVycm9yLCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlKQogICAgIERpZEZp
bmlzaFByZWNvbm5lY3Rpb24odWludDY0X3QgcHJlY29ubmVjdGlvbklkZW50aWZpZXIsIFdlYkNv
cmU6OlJlc291cmNlRXJyb3IgZXJyb3IpCiAgICAgU2V0T25MaW5lU3RhdGUoYm9vbCBpc09uTGlu
ZSk7CisgICAgQ29va2llQWNjZXB0UG9saWN5Q2hhbmdlZChlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6
SFRUUENvb2tpZUFjY2VwdFBvbGljeSBwb2xpY3kpOwogCiAgICAgQ2hlY2tQcm9jZXNzTG9jYWxQ
b3J0Rm9yQWN0aXZpdHkoc3RydWN0IFdlYkNvcmU6Ok1lc3NhZ2VQb3J0SWRlbnRpZmllciBwb3J0
KSAtPiAoV2ViQ29yZTo6TWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXI6Okhhc0FjdGl2aXR5IGhh
c0FjdGl2aXR5KSBBc3luYwogICAgIE1lc3NhZ2VzQXZhaWxhYmxlRm9yUG9ydChzdHJ1Y3QgV2Vi
Q29yZTo6TWVzc2FnZVBvcnRJZGVudGlmaWVyIHBvcnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25JbmZvLmggYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25J
bmZvLmgKaW5kZXggNWMwNTY4YzRhYTFmOWNkZmQ4OGMzMWEzZTNmZDdhNGNkYmM4OTRhNC4uMzY3
YjhhMzgwOWUzN2IxNWJkYmUwYjQ2YTQxODU2Nzc3ZmJhZjJmOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uSW5mby5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29u
bmVjdGlvbkluZm8uaApAQCAtMjUsMTAgKzI1LDEzIEBACiAKICNwcmFnbWEgb25jZQogCisjaW5j
bHVkZSA8V2ViQ29yZS9IVFRQQ29va2llQWNjZXB0UG9saWN5Lmg+CisKIG5hbWVzcGFjZSBXZWJL
aXQgewogCiBzdHJ1Y3QgTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uSW5mbyB7CiAgICAgSVBDOjpB
dHRhY2htZW50IGNvbm5lY3Rpb247CisgICAgV2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBvbGlj
eSBjb29raWVBY2NlcHRQb2xpY3k7CiAjaWYgSEFWRShBVURJVF9UT0tFTikKICAgICBPcHRpb25h
bDxhdWRpdF90b2tlbl90PiBhdWRpdFRva2VuOwogI2VuZGlmCkBAIC02MSw2ICs2NCw3IEBAIHN0
cnVjdCBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25JbmZvIHsKICAgICB2b2lkIGVuY29kZShJUEM6
OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgewogICAgICAgICBlbmNvZGVyIDw8IGNvbm5l
Y3Rpb247CisgICAgICAgIGVuY29kZXIgPDwgY29va2llQWNjZXB0UG9saWN5OwogI2lmIEhBVkUo
QVVESVRfVE9LRU4pCiAgICAgICAgIGVuY29kZXIgPDwgYXVkaXRUb2tlbjsKICNlbmRpZgpAQCAt
NzAsNiArNzQsOCBAQCBzdHJ1Y3QgTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uSW5mbyB7CiAgICAg
ewogICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGluZm8uY29ubmVjdGlvbikpCiAgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGVFbnVtKGluZm8u
Y29va2llQWNjZXB0UG9saWN5KSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICNpZiBIQVZF
KEFVRElUX1RPS0VOKQogICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGluZm8uYXVkaXRUb2tl
bikpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJDb29raWVKYXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViQ29va2llSmFyLmNwcAppbmRleCA1ODgwYmJmYzRkOTg2YzFlNTAx
ODY5ZGU5NTRkNmE1NzkxODczY2I3Li4zMjU4MzA1Yzc4OWQ3NzVmZTE1YzFjMDgyOGMzNmU5ZTJm
MmE4NjA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJD
b29raWVKYXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkNv
b2tpZUphci5jcHAKQEAgLTEyOSwxMiArMTI5LDE5IEBAIHZvaWQgV2ViQ29va2llSmFyOjpzZXRD
b29raWVzKFdlYkNvcmU6OkRvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgVVJMJiB1cmwsIGNvbnN0
CiAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0
aW9uKCkuY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzOjpTZXRDb29raWVzRnJvbURPTShkb2N1bWVudC5maXJzdFBhcnR5Rm9yQ29va2llcygp
LCBzYW1lU2l0ZUluZm8oZG9jdW1lbnQpLCB1cmwsIGZyYW1lSUQsIHBhZ2VJRCwgc2hvdWxkQXNr
SVRQSW5OZXR3b3JrUHJvY2VzcywgY29va2llU3RyaW5nKSwgMCk7CiB9CiAKLWJvb2wgV2ViQ29v
a2llSmFyOjpjb29raWVzRW5hYmxlZChjb25zdCBXZWJDb3JlOjpEb2N1bWVudCYgZG9jdW1lbnQp
IGNvbnN0Citib29sIFdlYkNvb2tpZUphcjo6Y29va2llc0VuYWJsZWQoY29uc3QgRG9jdW1lbnQm
IGRvY3VtZW50KSBjb25zdAogewotICAgIGJvb2wgcmVzdWx0ID0gZmFsc2U7Ci0gICAgaWYgKCFX
ZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5j
b25uZWN0aW9uKCkuc2VuZFN5bmMoTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzOjpDb29raWVzRW5hYmxlZCgpLCBNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3M6OkNvb2tpZXNFbmFibGVkOjpSZXBseShyZXN1bHQpLCAwKSkKKyAgICBhdXRvKiB3ZWJG
cmFtZSA9IGRvY3VtZW50LmZyYW1lKCkgPyBXZWJGcmFtZTo6ZnJvbUNvcmVGcmFtZSgqZG9jdW1l
bnQuZnJhbWUoKSkgOiBudWxscHRyOworICAgIGlmICghd2ViRnJhbWUgfHwgIXdlYkZyYW1lLT5w
YWdlKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICByZXR1cm4gcmVzdWx0OworCisjaWYg
RU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyAgICBTaG91bGRBc2tJVFAgZHVtbXk7
CisgICAgaWYgKHNob3VsZEJsb2NrQ29va2llcyh3ZWJGcmFtZSwgZG9jdW1lbnQuZmlyc3RQYXJ0
eUZvckNvb2tpZXMoKSwgZG9jdW1lbnQuY29va2llVVJMKCksIGR1bW15KSkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworI2VuZGlmCisKKyAgICByZXR1cm4gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCku
ZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkuY29va2llc0VuYWJsZWQoKTsKIH0KIAog
c3RkOjpwYWlyPFN0cmluZywgV2ViQ29yZTo6U2VjdXJlQ29va2llc0FjY2Vzc2VkPiBXZWJDb29r
aWVKYXI6OmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKGNvbnN0IFVSTCYgZmlyc3RQYXJ0
eSwgY29uc3QgV2ViQ29yZTo6U2FtZVNpdGVJbmZvJiBzYW1lU2l0ZUluZm8sIGNvbnN0IFVSTCYg
dXJsLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVu
dGlmaWVyPiBwYWdlSUQsIFdlYkNvcmU6OkluY2x1ZGVTZWN1cmVDb29raWVzIGluY2x1ZGVTZWN1
cmVDb29raWVzKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCmlu
ZGV4IGNhNDE4Y2Q3MDJmOGVjZDM2ZDIxMWVlNmRkYmFhNmFmNzlmMGUyNWYuLjY1YzliYzRjYTc2
YWM5NTBkZDk2ODJlMTIyNGRjYjhmNmUwZTQ4ZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUHJvY2Vzcy5jcHAKQEAgLTExOTEsNyArMTE5MSw3IEBAIE5ldHdvcmtQcm9jZXNzQ29ubmVj
dGlvbiYgV2ViUHJvY2Vzczo6ZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkKICAgICAg
ICAgaWYgKCFJUEM6OkNvbm5lY3Rpb246OmlkZW50aWZpZXJJc1ZhbGlkKGNvbm5lY3Rpb25JbmZv
LmlkZW50aWZpZXIoKSkpCiAgICAgICAgICAgICBDUkFTSCgpOwogCi0gICAgICAgIG1fbmV0d29y
a1Byb2Nlc3NDb25uZWN0aW9uID0gTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpjcmVhdGUoY29u
bmVjdGlvbkluZm8ucmVsZWFzZUlkZW50aWZpZXIoKSk7CisgICAgICAgIG1fbmV0d29ya1Byb2Nl
c3NDb25uZWN0aW9uID0gTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpjcmVhdGUoY29ubmVjdGlv
bkluZm8ucmVsZWFzZUlkZW50aWZpZXIoKSwgY29ubmVjdGlvbkluZm8uY29va2llQWNjZXB0UG9s
aWN5KTsKICNpZiBIQVZFKEFVRElUX1RPS0VOKQogICAgICAgICBtX25ldHdvcmtQcm9jZXNzQ29u
bmVjdGlvbi0+c2V0TmV0d29ya1Byb2Nlc3NBdWRpdFRva2VuKFdURk1vdmUoY29ubmVjdGlvbklu
Zm8uYXVkaXRUb2tlbikpOwogI2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>388347</attachid>
            <date>2020-01-21 14:13:14 -0800</date>
            <delta_ts>2020-01-21 14:39:32 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-206450-20200121141313.patch</filename>
            <type>text/plain</type>
            <size>79769</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0ODgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGJlNzFhNWRjNDQxN2Rm
OGFlM2VjNzg3MjNiMmYzZDI5NjQxYTdhMC4uNGNjYzNlZWRjN2IxMTU5ZTVjNmMyMTQzZmEyNGVh
ZWE4YmYyMzljMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIwLTAxLTIxICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgRnJlcXVlbnQgTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3M6OkNvb2tpZXNFbmFibGVkIHN5bmMgSVBDIHdoZW4gYnJvd3Np
bmcgcmVkZGl0LmNvbQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjA2NDUwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgTW92ZSBIVFRQQ29va2llQWNjZXB0UG9saWN5LmggaGVhZGVyIGZyb20gV2ViS2l0IHRv
IFdlYkNvcmUgc28gdGhhdCB0aGUgSFRUUENvb2tpZUFjY2VwdFBvbGljeSBlbnVtCisgICAgICAg
IGNhbiBiZSB1c2VkIGluIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbi4gUmVwbGFjZSBOZXR3b3JrU3Rv
cmFnZVNlc3Npb246OmNvb2tpZXNFbmFibGVkKCkgd2l0aCBhIG1vcmUKKyAgICAgICAgZGV0YWls
ZWQgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpjb29raWVBY2NlcHRQb2xpY3koKSBtZXRob2QuCisK
KyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICog
bG9hZGVyL0Nvb2tpZUphci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb29raWVKYXI6OmNvb2tp
ZXNFbmFibGVkIGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL0hUVFBDb29raWVB
Y2NlcHRQb2xpY3kuaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL0hUVFBDb29r
aWVBY2NlcHRQb2xpY3kuaC4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9y
YWdlU2Vzc2lvbi5jcHA6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFn
ZVNlc3Npb24uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2NmL05ldHdvcmtTdG9yYWdl
U2Vzc2lvbkNGTmV0V2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vz
c2lvbjo6Y29va2llQWNjZXB0UG9saWN5IGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3
b3JrL2NvY29hL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkNvY29hLm1tOgorICAgICAgICAoV2ViQ29y
ZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpjb29raWVBY2NlcHRQb2xpY3kgY29uc3QpOgorICAg
ICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY3VybC9OZXR3b3JrU3RvcmFnZVNlc3Npb25DdXJsLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y29va2llQWNjZXB0
UG9saWN5IGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvTmV0d29ya1N0
b3JhZ2VTZXNzaW9uU291cC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNl
c3Npb246OmNvb2tpZUFjY2VwdFBvbGljeSBjb25zdCk6CisKIDIwMjAtMDEtMjEgIFl1c3VrZSBT
dXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAgICAgICBbV1RGXSBBdG9tU3RyaW5nVGFi
bGUgc2hvdWxkIGJlIHNtYWxsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGJmNGZlNThlZDZjM2FmZThhYzZmODA0MWU3
ZjRlYzJmNTJjYzA5ZmMuLjhlMjc0ZTRjMDdiZjk1ODAxMDg2ZjJiOGIwYTU4NzllYzA3NWU3YmEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsNzcgQEAKKzIwMjAtMDEtMjEgIENocmlzIER1bWV6ICA8Y2R1
bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBGcmVxdWVudCBOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzczo6Q29va2llc0VuYWJsZWQgc3luYyBJUEMgd2hlbiBicm93c2luZyByZWRkaXQuY29t
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDY0NTAK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGcmVxdWVu
dCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Q29va2llc0VuYWJsZWQgc3luYyBJUEMg
d2hlbiBicm93c2luZyByZWRkaXQuY29tLiBUaGlzCisgICAgICAgIGhhcHBlbnMgZXZlcnkgdGlt
ZSB0aGUgcGFnZSBzY3JpcHQgY2FsbHMgbmF2aWdhdG9yLmNvb2tpZUVuYWJsZWQuIFRvIGFkZHJl
c3MgdGhlIGlzc3VlLCB3ZSBub3cKKyAgICAgICAgc3RvcmUgdGhlICJjb29raWUgYWNjZXB0IHBv
bGljeSIgb24gdGhlIFdlYkNvbnRlbnQgcHJvY2VzcyBzaWRlLiBUaGlzIGFsbG93cyB1cyB0byBr
bm93CisgICAgICAgIHN5bmNocm9ub3VzbHkgb24gdGhlIFdlYkNvbnRlbnQgcHJvY2VzcyBpZiBj
b29raWVzIGFyZSBlbmFibGVkIG9yIG5vdCBhbmQgd2l0aG91dCBhbnkgSVBDIHRvCisgICAgICAg
IHRoZSBuZXR3b3JrIHByb2Nlc3MuIFRvIGFjaGlldmUgdGhpcywgSSBhZGRlZCBhIG5ldyBjb29r
aWVBY2NlcHRQb2xpY3kgbWVtYmVyIHRvCisgICAgICAgIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlv
bkluZm8gc28gdGhhdCB0aGUgV2ViQ29udGVudCBwcm9jZXNzIGlzIGF3YXJlIG9mIHRoZSBpbml0
aWFsIHBvbGljeSB3aGVuCisgICAgICAgIGl0IGNvbm5lY3RzIHRvIHRoZSBuZXR3b3JrIHByb2Nl
c3MuIFRoZSBwb2xpY3kgb24gdGhlIFdlYkNvbnRlbnQgcHJvY2VzcyBzaWRlIGlzIHRoZW4ga2Vw
dCB1cAorICAgICAgICB0byBkYXRlIHZpYSBJUENzIGZyb20gdGhlIG5ldHdvcmsgcHJvY2VzcyB0
byB0aGUgV2ViQ29udGVudCBwcm9jZXNzZXMgd2hlbmV2ZXIgdGhlIGNvb2tpZQorICAgICAgICBh
Y2NlcHQgcG9saWN5IGNoYW5nZXMuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9Db29raWVz
L1dlYkNvb2tpZU1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDb29raWVNYW5hZ2Vy
OjpzZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29va2ll
TWFuYWdlcjo6Z2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeSk6CisgICAgICAgICogTmV0d29ya1By
b2Nlc3MvQ29va2llcy9XZWJDb29raWVNYW5hZ2VyLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nl
c3MvQ29va2llcy9XZWJDb29raWVNYW5hZ2VyLm1lc3NhZ2VzLmluOgorICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL0Nvb2tpZXMvY3VybC9XZWJDb29raWVNYW5hZ2VyQ3VybC5jcHA6CisgICAgICAg
ICogTmV0d29ya1Byb2Nlc3MvQ29va2llcy9tYWMvV2ViQ29va2llTWFuYWdlck1hYy5tbToKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9Db29raWVzL3NvdXAvV2ViQ29va2llTWFuYWdlclNvdXAu
Y3BwOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6
OmNvb2tpZUFjY2VwdFBvbGljeUNoYW5nZWQpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
UHJvY2Vzczo6Y3JlYXRlTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MpOgorICAgICAgICAo
V2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6Y29va2llQWNjZXB0UG9saWN5Q2hhbmdlZCk6CisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaDoKKyAgICAgICAgKiBOZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oOgorICAgICAgICAqIFNoYXJl
ZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9BUElIVFRQQ29va2llU3RvcmUuY3BwOgorICAgICAgICAoQVBJOjpIVFRQQ29va2llU3RvcmU6
OnNldEhUVFBDb29raWVBY2NlcHRQb2xpY3kpOgorICAgICAgICAoQVBJOjpIVFRQQ29va2llU3Rv
cmU6OnNldEhUVFBDb29raWVBY2NlcHRQb2xpY3lJbkRlZmF1bHRVSVByb2Nlc3NDb29raWVTdG9y
ZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElIVFRQQ29va2llU3RvcmUuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0Lmg6CisgICAgICAgIChXZWJLaXQ6OnRvSFRU
UENvb2tpZUFjY2VwdFBvbGljeSk6CisgICAgICAgIChXZWJLaXQ6OnRvQVBJKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL0NvY29hL0FQSUhUVFBDb29raWVTdG9yZUNvY29hLm1tOgorICAgICAg
ICAoQVBJOjp0b05TSFRUUENvb2tpZUFjY2VwdFBvbGljeSk6CisgICAgICAgIChBUEk6OkhUVFBD
b29raWVTdG9yZTo6c2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeUluRGVmYXVsdFVJUHJvY2Vzc0Nv
b2tpZVN0b3JlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLSFRUUENvb2tpZVN0
b3JlLm1tOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5tbToK
KyAgICAgICAgKHRvSFRUUENvb2tpZUFjY2VwdFBvbGljeSk6CisgICAgICAgICogVUlQcm9jZXNz
L05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtQcm9jZXNzUHJveHk6Om9wZW5OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24pOgorICAgICAgICAq
IFVJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Bvb2wuaDoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0
aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpOZXR3
b3JrUHJvY2Vzc0Nvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc0Nv
bm5lY3Rpb246OndyaXRlQmxvYnNUb1RlbXBvcmFyeUZpbGVzKToKKyAgICAgICAgKFdlYktpdDo6
TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpjb29raWVzRW5hYmxlZCk6CisgICAgICAgIChXZWJL
aXQ6Ok5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6Y29va2llQWNjZXB0UG9saWN5Q2hhbmdlZCk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5o
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OmNyZWF0ZSk6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5tZXNz
YWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25u
ZWN0aW9uSW5mby5oOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25J
bmZvOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc0Nvbm5l
Y3Rpb25JbmZvOjpkZWNvZGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJDb29r
aWVKYXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDb29raWVKYXI6OmNvb2tpZXNFbmFibGVk
IGNvbnN0KToKKyAgICAgICAgLSBSZXR1cm4gZmFsc2UgZWFybHkgaWYgdGhlIGRvY3VtZW50IGhh
cyBubyBmcmFtZSAvIHBhZ2UgKGNvb2tpZS1hdmVyc2UgYXMgcGVyIHNwZWMpCisgICAgICAgIC0g
UmV0dXJuIGZhbHNlIGVhcmx5IGlmIElUUCBpcyBlbmFibGVkIGFuZCBpdCBpcyBhIHRoaXJkLXBh
cnR5IGlmcmFtZSB3aXRob3V0IHN0b3JhZ2UKKyAgICAgICAgICBhY2Nlc3MuIFRoaXMgYnlwYXNz
ZXMgdGhlIHN5bmMgSVBDIGNhbGwgY29tcGxldGVseSBmb3Igc3VjaCBpZnJhbWVzLgorCisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJv
Y2Vzczo6ZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKToKKwogMjAyMC0wMS0yMSAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFttYWNPU10gQWRkIG1hbmFn
ZWQgcHJlZmVyZW5jZSB0byBhbGxvdyBzeW5jaHJvbm91cyBYSFIgZHVyaW5nIHBhZ2UgZGlzbWlz
c2FsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291cmNlL1dl
YkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCBiYjg3ODA2MTgzNzQxZjk2MjY4Mzg2OGVmYzY4OTEw
MmJjNGY0YTJkLi45ZjVkMmM3MjFjMDUxMTUwNDdjODJhODQ0ZmQxZDI5OWU3ZmZiMDNlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0hlYWRlcnMuY21ha2UKQEAgLTEyMjIsNiArMTIyMiw3IEBAIHNldChXZWJDb3JlX1BSSVZBVEVf
RlJBTUVXT1JLX0hFQURFUlMKICAgICBwbGF0Zm9ybS9uZXR3b3JrL0ROUy5oCiAgICAgcGxhdGZv
cm0vbmV0d29yay9ETlNSZXNvbHZlUXVldWUuaAogICAgIHBsYXRmb3JtL25ldHdvcmsvRm9ybURh
dGEuaAorICAgIHBsYXRmb3JtL25ldHdvcmsvSFRUUENvb2tpZUFjY2VwdFBvbGljeS5oCiAgICAg
cGxhdGZvcm0vbmV0d29yay9IVFRQSGVhZGVyTWFwLmgKICAgICBwbGF0Zm9ybS9uZXR3b3JrL0hU
VFBQYXJzZXJzLmgKICAgICBwbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtMb2FkSW5mb3JtYXRpb24u
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CmluZGV4IDlhNzJjYjEzYWUyZTc5YmU2MDk4YzkzMzc2NGM3NGYwMjFlNWM5OGUuLjljYzQ4M2E1
OTZlODY0YTQ0YmY4NTAyNGIzMDFhODMxZGFlNmJkZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEyNTIsNiArMTI1Miw3IEBA
CiAJCTQ2Qjk1MTlBMjA3RDYzNTQwMEE3RDJERCAvKiBSZW1vdGVGcmFtZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDZCOTUxOTIyMDdENjMyRTAwQTdE
MkREIC8qIFJlbW90ZUZyYW1lLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJNDZCOTVCRjUyMjMxQ0ZENjAwNTNBNTA0IC8qIERldmljZU9yaWVudGF0
aW9uQW5kTW90aW9uQWNjZXNzQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNDZCOTVCRjQyMjMxQ0ZCODAwNTNBNTA0IC8qIERldmljZU9y
aWVudGF0aW9uQW5kTW90aW9uQWNjZXNzQ29udHJvbGxlci5oICovOyB9OwogCQk0NkJDQkJDMjIw
ODUwMDhGMDA3MTA2MzggLyogSlNSZW1vdGVET01XaW5kb3dCYXNlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NkJDQkJDMDIwODUwMDdGMDA3MTA2Mzgg
LyogSlNSZW1vdGVET01XaW5kb3dCYXNlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKKwkJNDZDMDk2MjEyM0Q3OERENjAwNjU3QzA5IC8qIEhUVFBDb29r
aWVBY2NlcHRQb2xpY3kuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDQ2QzA5NjIwMjNENzhERDYwMDY1N0MwOSAvKiBIVFRQQ29va2llQWNjZXB0UG9saWN5
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDZD
Mzc2NjIyMDg1MTc3RDAwQzczODI5IC8qIEpTUmVtb3RlRE9NV2luZG93LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NkMzNzY2MTIwODUxNzZEMDBDNzM4
MjkgLyogSlNSZW1vdGVET01XaW5kb3cuaCAqLzsgfTsKIAkJNDZDNjk2Q0IxRTcyMDVGNzAwNTk3
OTM3IC8qIENQVU1vbml0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDQ2QzY5NkM5MUU3MjA1RTQwMDU5NzkzNyAvKiBDUFVNb25pdG9yLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDZDNjk2Q0MxRTcy
MDVGQzAwNTk3OTM3IC8qIENQVU1vbml0b3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNDZDNjk2Q0ExRTcyMDVFNDAwNTk3OTM3IC8qIENQVU1vbml0
b3IuY3BwICovOyB9OwpAQCAtNzc4Myw2ICs3Nzg0LDcgQEAKIAkJNDZCQ0JCQzAyMDg1MDA3RjAw
NzEwNjM4IC8qIEpTUmVtb3RlRE9NV2luZG93QmFzZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBKU1JlbW90ZURPTVdpbmRvd0Jhc2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNDZCQ0JCQzEyMDg1MDA4MDAwNzEwNjM4IC8qIEpTUmVtb3RlRE9NV2luZG93QmFz
ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1JlbW90ZURPTVdp
bmRvd0Jhc2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NkJDQkJDMzIwODUw
MEE3MDA3MTA2MzggLyogUmVtb3RlRE9NV2luZG93LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGgg
PSBSZW1vdGVET01XaW5kb3cuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0NkMw
OTYyMDIzRDc4REQ2MDA2NTdDMDkgLyogSFRUUENvb2tpZUFjY2VwdFBvbGljeS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBIVFRQQ29va2llQWNjZXB0UG9saWN5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTQ2QzM3NjVGMjA4NTE3NkMwMEM3MzgyOSAvKiBKU1JlbW90ZURPTVdpbmRvdy5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1JlbW90ZURPTVdpbmRvdy5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2QzM3NjYxMjA4NTE3NkQwMEM3Mzgy
OSAvKiBKU1JlbW90ZURPTVdpbmRvdy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBKU1JlbW90ZURPTVdpbmRvdy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NkM2
OTZDOTFFNzIwNUU0MDA1OTc5MzcgLyogQ1BVTW9uaXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBDUFVNb25pdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0yMDQ2MSw2ICsyMDQ2Myw3IEBACiAJCQkJNTE0Qzc2NUIwQ0U5MjNBMTAwN0VGM0NEIC8qIEZv
cm1EYXRhLmggKi8sCiAJCQkJMDg1QjkyQjgwRUZERTczRDAwRTYxMjNDIC8qIEZvcm1EYXRhQnVp
bGRlci5jcHAgKi8sCiAJCQkJMDg1QjkyQjkwRUZERTczRDAwRTYxMjNDIC8qIEZvcm1EYXRhQnVp
bGRlci5oICovLAorCQkJCTQ2QzA5NjIwMjNENzhERDYwMDY1N0MwOSAvKiBIVFRQQ29va2llQWNj
ZXB0UG9saWN5LmggKi8sCiAJCQkJMEI4QzU2RDMwRjI4NjI3RjAwMDUwMkUxIC8qIEhUVFBIZWFk
ZXJNYXAuY3BwICovLAogCQkJCTUxNEM3NjVDMENFOTIzQTEwMDdFRjNDRCAvKiBIVFRQSGVhZGVy
TWFwLmggKi8sCiAJCQkJMUFDOTAwQkYxOTQzQUYzRDAwODYyNUI1IC8qIEhUVFBIZWFkZXJOYW1l
cy5pbiAqLywKQEAgLTMwMjc4LDYgKzMwMjgxLDcgQEAKIAkJCQlFNDQ2MTNBQjBDRDYzMzEwMDBG
QURBNzUgLyogSFRNTFZpZGVvRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUQyRjhFMDUy
MzQ0NzUxRDAwOTkzQjY4IC8qIEhUTUxWaWRlb0VsZW1lbnRQaWN0dXJlSW5QaWN0dXJlLmggaW4g
SGVhZGVycyAqLywKIAkJCQk4MzlBQUZFRDFBMEMwQzhEMDA2MDVGOTkgLyogSFRNTFdCUkVsZW1l
bnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTQ2QzA5NjIxMjNENzhERDYwMDY1N0MwOSAvKiBIVFRQ
Q29va2llQWNjZXB0UG9saWN5LmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0ExREVDNjFGNzFGMUM3
MDBFNzFCRDMgLyogSFRUUEhlYWRlckZpZWxkLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTRDNzY3
MTBDRTkyM0ExMDA3RUYzQ0QgLyogSFRUUEhlYWRlck1hcC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MUFCNUVCRDIxOTRBNTBGMzAwNTlBQzcwIC8qIEhUVFBIZWFkZXJOYW1lcy5oIGluIEhlYWRlcnMg
Ki8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ29va2llSmFyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9Db29raWVKYXIuY3BwCmluZGV4IDIzOTA2NjhkZjgzMTEzZmRh
MTczMDM4MGMyNDkxMjA2YmQzODkwNWMuLmEwN2EzMDJhNDIzOTE0MWJmOTQ3NWRmNGY1ZWM1ZGM2
OTg1MGQzMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Db29raWVKYXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Db29raWVKYXIuY3BwCkBAIC0zMiw2ICszMiw3
IEBACiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgogI2luY2x1
ZGUgIkZyYW1lTG9hZGVyQ2xpZW50LmgiCisjaW5jbHVkZSAiSFRUUENvb2tpZUFjY2VwdFBvbGlj
eS5oIgogI2luY2x1ZGUgIk5ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oIgogI2luY2x1ZGUgIk5ldHdv
cmtpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJhdGVnaWVzLmgiCkBAIC0xMjIs
NyArMTIzLDcgQEAgdm9pZCBDb29raWVKYXI6OnNldENvb2tpZXMoRG9jdW1lbnQmIGRvY3VtZW50
LCBjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBjb28KIGJvb2wgQ29va2llSmFyOjpjb29r
aWVzRW5hYmxlZChjb25zdCBEb2N1bWVudCYpIGNvbnN0CiB7CiAgICAgaWYgKGF1dG8qIHNlc3Np
b24gPSBtX3N0b3JhZ2VTZXNzaW9uUHJvdmlkZXItPnN0b3JhZ2VTZXNzaW9uKCkpCi0gICAgICAg
IHJldHVybiBzZXNzaW9uLT5jb29raWVzRW5hYmxlZCgpOworICAgICAgICByZXR1cm4gc2Vzc2lv
bi0+Y29va2llQWNjZXB0UG9saWN5KCkgIT0gSFRUUENvb2tpZUFjY2VwdFBvbGljeTo6TmV2ZXI7
CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0hUVFBDb29raWVBY2NlcHRQb2xp
Y3kuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvSFRUUENvb2tpZUFjY2VwdFBv
bGljeS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjRlNjNmYjM1ZDQwZjdiMmJjY2E1OWY4NmNhYWFmYmYyNjY1YzJi
NjQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0hU
VFBDb29raWVBY2NlcHRQb2xpY3kuaApAQCAtMCwwICsxLDUxIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDExLTIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAor
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitlbnVtIGNsYXNzIEhUVFBDb29raWVBY2NlcHRQb2xpY3kgOiB1aW50
OF90IHsKKyAgICBBbHdheXNBY2NlcHQgPSAwLAorICAgIE5ldmVyID0gMSwKKyAgICBPbmx5RnJv
bU1haW5Eb2N1bWVudERvbWFpbiA9IDIsCisgICAgRXhjbHVzaXZlbHlGcm9tTWFpbkRvY3VtZW50
RG9tYWluID0gMywKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCituYW1lc3BhY2UgV1RG
IHsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpIVFRQQ29va2llQWNj
ZXB0UG9saWN5PiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAgICAgICAgV2Vi
Q29yZTo6SFRUUENvb2tpZUFjY2VwdFBvbGljeSwKKyAgICAgICAgV2ViQ29yZTo6SFRUUENvb2tp
ZUFjY2VwdFBvbGljeTo6QWx3YXlzQWNjZXB0LAorICAgICAgICBXZWJDb3JlOjpIVFRQQ29va2ll
QWNjZXB0UG9saWN5OjpOZXZlciwKKyAgICAgICAgV2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBv
bGljeTo6T25seUZyb21NYWluRG9jdW1lbnREb21haW4sCisgICAgICAgIFdlYkNvcmU6OkhUVFBD
b29raWVBY2NlcHRQb2xpY3k6OkV4Y2x1c2l2ZWx5RnJvbU1haW5Eb2N1bWVudERvbWFpbgorICAg
ID47Cit9OworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5jcHAKaW5kZXggNTE1ZGJmMTk5ZjcxNWNiMGQ0M2Yz
NGZkNTNjMzIzNjkxODFjOTNlNS4uMjk5NDI3NTYyNThlOTI0M2MzYjBhMTAwYjFhM2Y2ZjcyYTg0
NzU4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3Jr
U3RvcmFnZVNlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
TmV0d29ya1N0b3JhZ2VTZXNzaW9uLmNwcApAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgImNv
bmZpZy5oIgogI2luY2x1ZGUgIk5ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oIgogCisjaW5jbHVkZSAi
SFRUUENvb2tpZUFjY2VwdFBvbGljeS5oIgogI2luY2x1ZGUgIlJ1bnRpbWVBcHBsaWNhdGlvbkNo
ZWNrcy5oIgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogI2luY2x1ZGUgPHd0Zi9Q
cm9jZXNzUHJpdmlsZWdlLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaAppbmRleCAzNzIwYWM1ZTg1YjA5OGU0ODM1
Y2I2NzdjMDU4MWUwYjMwNWRkNTVjLi42NTA2ZjEwNzcwNjVhNGQyMWY3OTgwMTkyZjNkNzUwN2Vi
YzIzYTllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdv
cmtTdG9yYWdlU2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
TmV0d29ya1N0b3JhZ2VTZXNzaW9uLmgKQEAgLTcyLDYgKzcyLDcgQEAgc3RydWN0IENvb2tpZTsK
IHN0cnVjdCBDb29raWVSZXF1ZXN0SGVhZGVyRmllbGRQcm94eTsKIHN0cnVjdCBTYW1lU2l0ZUlu
Zm87CiAKK2VudW0gY2xhc3MgSFRUUENvb2tpZUFjY2VwdFBvbGljeSA6IHVpbnQ4X3Q7CiBlbnVt
IGNsYXNzIEluY2x1ZGVTZWN1cmVDb29raWVzIDogYm9vbDsKIGVudW0gY2xhc3MgSW5jbHVkZUh0
dHBPbmx5Q29va2llcyA6IGJvb2w7CiBlbnVtIGNsYXNzIFRoaXJkUGFydHlDb29raWVCbG9ja2lu
Z01vZGUgOiB1aW50OF90IHsgQWxsLCBBbGxPblNpdGVzV2l0aG91dFVzZXJJbnRlcmFjdGlvbiwg
T25seUFjY29yZGluZ1RvUGVyRG9tYWluUG9saWN5IH07CkBAIC0xMjUsNyArMTI2LDcgQEAgcHVi
bGljOgogICAgIE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0KCkgY29uc3Q7CiAjZW5kaWYKIAot
ICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgY29va2llc0VuYWJsZWQoKSBjb25zdDsKKyAgICBXRUJD
T1JFX0VYUE9SVCBIVFRQQ29va2llQWNjZXB0UG9saWN5IGNvb2tpZUFjY2VwdFBvbGljeSgpIGNv
bnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0Q29va2llKGNvbnN0IENvb2tpZSYpOwog
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0Q29va2llcyhjb25zdCBWZWN0b3I8Q29va2llPiYs
IGNvbnN0IFVSTCYsIGNvbnN0IFVSTCYgbWFpbkRvY3VtZW50VVJMKTsKICAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIHNldENvb2tpZXNGcm9tRE9NKGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3Qg
U2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiwgT3B0
aW9uYWw8UGFnZUlkZW50aWZpZXI+LCBTaG91bGRBc2tJVFAsIGNvbnN0IFN0cmluZyYpIGNvbnN0
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9OZXR3b3Jr
U3RvcmFnZVNlc3Npb25DRk5ldFdpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL2NmL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkNGTmV0V2luLmNwcAppbmRleCA1MmRhY2M2ODZk
ODNiYTI5ODEzMDc5MDU5YWM4NTUxZmE2MWU5M2JjLi4wNmE1M2IyZmExODM1YThiZDFkOWY1NDFj
NDAwZmZhNjJmZjBjYjkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL2NmL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkNGTmV0V2luLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkNGTmV0V2luLmNw
cApAQCAtMjgsNiArMjgsNyBAQAogCiAjaW5jbHVkZSAiQ29va2llLmgiCiAjaW5jbHVkZSAiQ29v
a2llUmVxdWVzdEhlYWRlckZpZWxkUHJveHkuaCIKKyNpbmNsdWRlICJIVFRQQ29va2llQWNjZXB0
UG9saWN5LmgiCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRlIDxDRk5ldHdv
cmsvQ0ZIVFRQQ29va2llc1ByaXYuaD4KICNpbmNsdWRlIDxDb3JlRm91bmRhdGlvbi9Db3JlRm91
bmRhdGlvbi5oPgpAQCAtMjU4LDEwICsyNTksMTcgQEAgc3RkOjpwYWlyPFN0cmluZywgYm9vbD4g
TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShjb24K
ICAgICByZXR1cm4gY29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoaGVhZGVyRmllbGRQcm94
eS5maXJzdFBhcnR5LCBoZWFkZXJGaWVsZFByb3h5LnNhbWVTaXRlSW5mbywgaGVhZGVyRmllbGRQ
cm94eS51cmwsIGhlYWRlckZpZWxkUHJveHkuZnJhbWVJRCwgaGVhZGVyRmllbGRQcm94eS5wYWdl
SUQsIGhlYWRlckZpZWxkUHJveHkuaW5jbHVkZVNlY3VyZUNvb2tpZXMsIFNob3VsZEFza0lUUDo6
WWVzKTsKIH0KIAotYm9vbCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmNvb2tpZXNFbmFibGVkKCkg
Y29uc3QKK0hUVFBDb29raWVBY2NlcHRQb2xpY3kgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpjb29r
aWVBY2NlcHRQb2xpY3koKSBjb25zdAogewogICAgIENGSFRUUENvb2tpZVN0b3JhZ2VBY2NlcHRQ
b2xpY3kgcG9saWN5ID0gQ0ZIVFRQQ29va2llU3RvcmFnZUdldENvb2tpZUFjY2VwdFBvbGljeShj
b29raWVTdG9yYWdlKCkuZ2V0KCkpOwotICAgIHJldHVybiBwb2xpY3kgPT0gQ0ZIVFRQQ29va2ll
U3RvcmFnZUFjY2VwdFBvbGljeU9ubHlGcm9tTWFpbkRvY3VtZW50RG9tYWluIHx8IHBvbGljeSA9
PSBDRkhUVFBDb29raWVTdG9yYWdlQWNjZXB0UG9saWN5RXhjbHVzaXZlbHlGcm9tTWFpbkRvY3Vt
ZW50RG9tYWluIHx8IHBvbGljeSA9PSBDRkhUVFBDb29raWVTdG9yYWdlQWNjZXB0UG9saWN5QWx3
YXlzOworICAgIGlmIChwb2xpY3kgPT0gQ0ZIVFRQQ29va2llU3RvcmFnZUFjY2VwdFBvbGljeUFs
d2F5cykKKyAgICAgICAgcmV0dXJuIEhUVFBDb29raWVBY2NlcHRQb2xpY3k6OkFsd2F5c0FjY2Vw
dDsKKyAgICBpZiAocG9saWN5ID09IENGSFRUUENvb2tpZVN0b3JhZ2VBY2NlcHRQb2xpY3lPbmx5
RnJvbU1haW5Eb2N1bWVudERvbWFpbikKKyAgICAgICAgcmV0dXJuIEhUVFBDb29raWVBY2NlcHRQ
b2xpY3k6Ok9ubHlGcm9tTWFpbkRvY3VtZW50RG9tYWluOworICAgIGlmIChwb2xpY3kgPT0gQ0ZI
VFRQQ29va2llU3RvcmFnZUFjY2VwdFBvbGljeUV4Y2x1c2l2ZWx5RnJvbU1haW5Eb2N1bWVudERv
bWFpbikKKyAgICAgICAgcmV0dXJuIEhUVFBDb29raWVBY2NlcHRQb2xpY3k6OkV4Y2x1c2l2ZWx5
RnJvbU1haW5Eb2N1bWVudERvbWFpbjsKKworICAgIHJldHVybiBIVFRQQ29va2llQWNjZXB0UG9s
aWN5OjpOZXZlcjsKIH0KIAogYm9vbCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmdldFJhd0Nvb2tp
ZXMoY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwm
IHVybCwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRl
bnRpZmllcj4gcGFnZUlELCBTaG91bGRBc2tJVFAsIFZlY3RvcjxDb29raWU+JiByYXdDb29raWVz
KSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2Nv
YS9OZXR3b3JrU3RvcmFnZVNlc3Npb25Db2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvY29jb2EvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ29jb2EubW0KaW5kZXggOWY2NzY1
ZWE2N2QxMGNlZjNiNjJlZDVjZTAwYjk4ODgxOTRmMmNkMS4uZmQxYWU1OGQ3NTMxMGY3NDY2NTdm
YmNkOTFkNmViNzZkNzY1N2QwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9jb2NvYS9OZXR3b3JrU3RvcmFnZVNlc3Npb25Db2NvYS5tbQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkNvY29h
Lm1tCkBAIC0yOSw2ICsyOSw3IEBACiAjaW1wb3J0ICJDb29raWUuaCIKICNpbXBvcnQgIkNvb2tp
ZVJlcXVlc3RIZWFkZXJGaWVsZFByb3h5LmgiCiAjaW1wb3J0ICJDb29raWVTdG9yYWdlT2JzZXJ2
ZXIuaCIKKyNpbXBvcnQgIkhUVFBDb29raWVBY2NlcHRQb2xpY3kuaCIKICNpbXBvcnQgIlNhbWVT
aXRlSW5mby5oIgogI2ltcG9ydCA8cGFsL3NwaS9jZi9DRk5ldHdvcmtTUEkuaD4KICNpbXBvcnQg
PHd0Zi9CbG9ja09iakNFeGNlcHRpb25zLmg+CkBAIC00NDgsMTUgKzQ0OSwxOSBAQCBzdGF0aWMg
TlNIVFRQQ29va2llQWNjZXB0UG9saWN5IGh0dHBDb29raWVBY2NlcHRQb2xpY3koQ0ZIVFRQQ29v
a2llU3RvcmFnZVJlZiBjbwogICAgIHJldHVybiBzdGF0aWNfY2FzdDxOU0hUVFBDb29raWVBY2Nl
cHRQb2xpY3k+KENGSFRUUENvb2tpZVN0b3JhZ2VHZXRDb29raWVBY2NlcHRQb2xpY3koY29va2ll
U3RvcmFnZSkpOwogfQogCi1ib29sIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y29va2llc0VuYWJs
ZWQoKSBjb25zdAorSFRUUENvb2tpZUFjY2VwdFBvbGljeSBOZXR3b3JrU3RvcmFnZVNlc3Npb246
OmNvb2tpZUFjY2VwdFBvbGljeSgpIGNvbnN0CiB7CiAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENF
UFRJT05TOwotCiAgICAgTlNIVFRQQ29va2llQWNjZXB0UG9saWN5IGNvb2tpZUFjY2VwdFBvbGlj
eSA9IGh0dHBDb29raWVBY2NlcHRQb2xpY3koY29va2llU3RvcmFnZSgpLmdldCgpKTsKLSAgICBy
ZXR1cm4gY29va2llQWNjZXB0UG9saWN5ID09IE5TSFRUUENvb2tpZUFjY2VwdFBvbGljeUFsd2F5
cyB8fCBjb29raWVBY2NlcHRQb2xpY3kgPT0gTlNIVFRQQ29va2llQWNjZXB0UG9saWN5T25seUZy
b21NYWluRG9jdW1lbnREb21haW4gfHwgY29va2llQWNjZXB0UG9saWN5ID09IE5TSFRUUENvb2tp
ZUFjY2VwdFBvbGljeUV4Y2x1c2l2ZWx5RnJvbU1haW5Eb2N1bWVudERvbWFpbjsKLQorICAgIGlm
IChjb29raWVBY2NlcHRQb2xpY3kgPT0gTlNIVFRQQ29va2llQWNjZXB0UG9saWN5QWx3YXlzKQor
ICAgICAgICByZXR1cm4gSFRUUENvb2tpZUFjY2VwdFBvbGljeTo6QWx3YXlzQWNjZXB0OworICAg
IGlmIChjb29raWVBY2NlcHRQb2xpY3kgPT0gTlNIVFRQQ29va2llQWNjZXB0UG9saWN5T25seUZy
b21NYWluRG9jdW1lbnREb21haW4pCisgICAgICAgIHJldHVybiBIVFRQQ29va2llQWNjZXB0UG9s
aWN5OjpPbmx5RnJvbU1haW5Eb2N1bWVudERvbWFpbjsKKyAgICBpZiAoY29va2llQWNjZXB0UG9s
aWN5ID09IE5TSFRUUENvb2tpZUFjY2VwdFBvbGljeUV4Y2x1c2l2ZWx5RnJvbU1haW5Eb2N1bWVu
dERvbWFpbikKKyAgICAgICAgcmV0dXJuIEhUVFBDb29raWVBY2NlcHRQb2xpY3k6OkV4Y2x1c2l2
ZWx5RnJvbU1haW5Eb2N1bWVudERvbWFpbjsKICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05T
OwotICAgIHJldHVybiBmYWxzZTsKKworICAgIHJldHVybiBIVFRQQ29va2llQWNjZXB0UG9saWN5
OjpOZXZlcjsKIH0KIAogYm9vbCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmdldFJhd0Nvb2tpZXMo
Y29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5mbywg
Y29uc3QgVVJMJiB1cmwsIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9u
YWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgU2hvdWxkQXNrSVRQIHNob3VsZEFza0lUUCwgVmVj
dG9yPENvb2tpZT4mIHJhd0Nvb2tpZXMpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ3VybC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvTmV0d29ya1N0b3JhZ2VTZXNzaW9u
Q3VybC5jcHAKaW5kZXggZDcwNDUwNGU2NDk5MWQ3NGYzMTcwZDgzNzhkYzJkZTI2NDgzMDJhYi4u
YmY5YzY3YTFlY2U2ZWIxZjBhNjQyMDA3ZjBlMWQ5NmVkN2Q1ZGYzMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkN1
cmwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9OZXR3b3Jr
U3RvcmFnZVNlc3Npb25DdXJsLmNwcApAQCAtODUsOSArODUsMjEgQEAgdm9pZCBOZXR3b3JrU3Rv
cmFnZVNlc3Npb246OnNldENvb2tpZXNGcm9tRE9NKGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29u
c3QgU2FtZVMKICAgICBjb29raWVTdG9yYWdlKCkuc2V0Q29va2llc0Zyb21ET00oKnRoaXMsIGZp
cnN0UGFydHksIHNhbWVTaXRlSW5mbywgdXJsLCBmcmFtZUlELCBwYWdlSUQsIHZhbHVlKTsKIH0K
IAotYm9vbCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmNvb2tpZXNFbmFibGVkKCkgY29uc3QKLXsK
LSAgICByZXR1cm4gY29va2llU3RvcmFnZSgpLmNvb2tpZXNFbmFibGVkKCp0aGlzKTsKK0hUVFBD
b29raWVBY2NlcHRQb2xpY3kgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpjb29raWVBY2NlcHRQb2xp
Y3koKSBjb25zdAoreworICAgIHN3aXRjaCAoY29va2llU3RvcmFnZSgpLmNvb2tpZUFjY2VwdFBv
bGljeSgqdGhpcykpIHsKKyAgICBjYXNlIENvb2tpZUFjY2VwdFBvbGljeTo6QWx3YXlzOgorICAg
ICAgICByZXR1cm4gSFRUUENvb2tpZUFjY2VwdFBvbGljeTo6QWx3YXlzQWNjZXB0OworICAgIGNh
c2UgQ29va2llQWNjZXB0UG9saWN5OjpOZXZlcjoKKyAgICAgICAgcmV0dXJuIEhUVFBDb29raWVB
Y2NlcHRQb2xpY3k6Ok5ldmVyOworICAgIGNhc2UgQ29va2llQWNjZXB0UG9saWN5OjpPbmx5RnJv
bU1haW5Eb2N1bWVudERvbWFpbjoKKyAgICAgICAgcmV0dXJuIEhUVFBDb29raWVBY2NlcHRQb2xp
Y3k6Ok9ubHlGcm9tTWFpbkRvY3VtZW50RG9tYWluOworICAgIGNhc2UgQ29va2llQWNjZXB0UG9s
aWN5OjpFeGNsdXNpdmVseUZyb21NYWluRG9jdW1lbnREb21haW46CisgICAgICAgIHJldHVybiBI
VFRQQ29va2llQWNjZXB0UG9saWN5OjpFeGNsdXNpdmVseUZyb21NYWluRG9jdW1lbnREb21haW47
CisgICAgfQorCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIEhUVFBDb29r
aWVBY2NlcHRQb2xpY3k6Ok9ubHlGcm9tTWFpbkRvY3VtZW50RG9tYWluOwogfQogCiBzdGQ6OnBh
aXI8U3RyaW5nLCBib29sPiBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmNvb2tpZXNGb3JET00oY29u
c3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5mbywgY29u
c3QgVVJMJiB1cmwsIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9uYWw8
UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgSW5jbHVkZVNlY3VyZUNvb2tpZXMgaW5jbHVkZVNlY3Vy
ZUNvb2tpZXMsIFNob3VsZEFza0lUUCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvc291cC9OZXR3b3JrU3RvcmFnZVNlc3Npb25Tb3VwLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9OZXR3b3JrU3RvcmFnZVNlc3Npb25T
b3VwLmNwcAppbmRleCBlMDU1MDc2YzdlMWRiYzI0MGVmMjM5YjdkZTIwNWMzYTg1OTQ1ZjkyLi42
ZGRiNTk3YWFhY2FiOWMzM2FkNjVjMGVmZDg3Y2JlNTc4MTQxOTJlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU291
cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL05ldHdvcmtT
dG9yYWdlU2Vzc2lvblNvdXAuY3BwCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiQ29va2ll
LmgiCiAjaW5jbHVkZSAiQ29va2llUmVxdWVzdEhlYWRlckZpZWxkUHJveHkuaCIKICNpbmNsdWRl
ICJHVW5pcXVlUHRyU291cC5oIgorI2luY2x1ZGUgIkhUVFBDb29raWVBY2NlcHRQb2xpY3kuaCIK
ICNpbmNsdWRlICJSZXNvdXJjZUhhbmRsZS5oIgogI2luY2x1ZGUgIlNvdXBOZXR3b3JrU2Vzc2lv
bi5oIgogI2luY2x1ZGUgIlVSTFNvdXAuaCIKQEAgLTI0MSwxMCArMjQyLDE0IEBAIHZvaWQgTmV0
d29ya1N0b3JhZ2VTZXNzaW9uOjpzYXZlQ3JlZGVudGlhbFRvUGVyc2lzdGVudFN0b3JhZ2UoY29u
c3QgUHJvdGVjdGlvblNwCiAjZW5kaWYKIH0KIAotYm9vbCBOZXR3b3JrU3RvcmFnZVNlc3Npb246
OmNvb2tpZXNFbmFibGVkKCkgY29uc3QKK0hUVFBDb29raWVBY2NlcHRQb2xpY3kgTmV0d29ya1N0
b3JhZ2VTZXNzaW9uOjpjb29raWVBY2NlcHRQb2xpY3koKSBjb25zdAogewogICAgIGF1dG8gcG9s
aWN5ID0gc291cF9jb29raWVfamFyX2dldF9hY2NlcHRfcG9saWN5KGNvb2tpZVN0b3JhZ2UoKSk7
Ci0gICAgcmV0dXJuIHBvbGljeSA9PSBTT1VQX0NPT0tJRV9KQVJfQUNDRVBUX0FMV0FZUyB8fCBw
b2xpY3kgPT0gU09VUF9DT09LSUVfSkFSX0FDQ0VQVF9OT19USElSRF9QQVJUWTsKKyAgICBpZiAo
cG9saWN5ID09IFNPVVBfQ09PS0lFX0pBUl9BQ0NFUFRfQUxXQVlTKQorICAgICAgICByZXR1cm4g
SFRUUENvb2tpZUFjY2VwdFBvbGljeTo6QWx3YXlzQWNjZXB0OworICAgIGlmIChwb2xpY3kgPT0g
U09VUF9DT09LSUVfSkFSX0FDQ0VQVF9OT19USElSRF9QQVJUWSkKKyAgICAgICAgcmV0dXJuIEhU
VFBDb29raWVBY2NlcHRQb2xpY3k6Ok9ubHlGcm9tTWFpbkRvY3VtZW50RG9tYWluOworICAgIHJl
dHVybiBIVFRQQ29va2llQWNjZXB0UG9saWN5OjpOZXZlcjsKIH0KIAogc3RhdGljIGlubGluZSBi
b29sIGh0dHBPbmx5Q29va2llRXhpc3RzKGNvbnN0IEdTTGlzdCogY29va2llcywgY29uc3QgZ2No
YXIqIG5hbWUsIGNvbnN0IGdjaGFyKiBwYXRoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIuY3BwCmluZGV4IDVkNmYw
NTIyMTQ4ZWFmNmNhMGE5MmU5NjJlNGU4MjhlN2RhN2Y3MmIuLjZlMjhhZGZmZWZjZWM3ZjBlM2U1
ZGE2MTlmMTMyOTdmYmU4ZDM2MzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvQ29va2llcy9XZWJDb29raWVNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlci5jcHAKQEAgLTE0NCwxMyArMTQ0
LDE4IEBAIHZvaWQgV2ViQ29va2llTWFuYWdlcjo6c3RvcE9ic2VydmluZ0Nvb2tpZUNoYW5nZXMo
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogdm9pZCBXZWJDb29raWVNYW5hZ2VyOjpzZXRIVFRQ
Q29va2llQWNjZXB0UG9saWN5KEhUVFBDb29raWVBY2NlcHRQb2xpY3kgcG9saWN5LCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgcGxhdGZvcm1T
ZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KHBvbGljeSk7CisgICAgbV9wcm9jZXNzLmNvb2tpZUFj
Y2VwdFBvbGljeUNoYW5nZWQocG9saWN5KTsKIAogICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CiB9
CiAKIHZvaWQgV2ViQ29va2llTWFuYWdlcjo6Z2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKEhUVFBDb29raWVBY2NlcHRQb2xpY3kpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKQogewotICAgIGNvbXBsZXRpb25IYW5kbGVyKHBsYXRmb3JtR2V0SFRUUENvb2tpZUFj
Y2VwdFBvbGljeSgpKTsKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBjb21wbGV0aW9uSGFuZGxl
cihXZWJDb29raWVNYW5hZ2VyOjpwbGF0Zm9ybUdldEhUVFBDb29raWVBY2NlcHRQb2xpY3koKSk7
CisjZWxzZQorICAgIGNvbXBsZXRpb25IYW5kbGVyKG1fcHJvY2Vzcy5kZWZhdWx0U3RvcmFnZVNl
c3Npb24oKS5jb29raWVBY2NlcHRQb2xpY3koKSk7CisjZW5kaWYKIH0KIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Nvb2tp
ZXMvV2ViQ29va2llTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Db29r
aWVzL1dlYkNvb2tpZU1hbmFnZXIuaAppbmRleCA0MDZiYjkwYTc2NWY1YzlmNmZlM2Y5Y2NjOTgx
ZjQyZGQxNGY4OWJhLi4yYzFkMjdjMzI0M2JiNmNlMjE2NzM5YzIyNGVjNTlmZTViYmRhNDlkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2ll
TWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ29va2llcy9XZWJD
b29raWVNYW5hZ2VyLmgKQEAgLTM5LDEyICszOSwxMiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiBzdHJ1Y3QgQ29va2llOworZW51bSBjbGFzcyBIVFRQQ29va2llQWNjZXB0UG9saWN5IDogdWlu
dDhfdDsKIH0KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIE5ldHdvcmtQcm9jZXNzOwot
ZW51bSBjbGFzcyBIVFRQQ29va2llQWNjZXB0UG9saWN5IDogdWludDhfdDsKIAogY2xhc3MgV2Vi
Q29va2llTWFuYWdlciA6IHB1YmxpYyBOZXR3b3JrUHJvY2Vzc1N1cHBsZW1lbnQsIHB1YmxpYyBJ
UEM6Ok1lc3NhZ2VSZWNlaXZlciB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CkBAIC01
NSw3ICs1NSw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBjb25zdCBjaGFyKiBzdXBwbGVtZW50
TmFtZSgpOwogCi0gICAgdm9pZCBzZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KEhUVFBDb29raWVB
Y2NlcHRQb2xpY3ksIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CisgICAgdm9pZCBzZXRI
VFRQQ29va2llQWNjZXB0UG9saWN5KFdlYkNvcmU6OkhUVFBDb29raWVBY2NlcHRQb2xpY3ksIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAKICNpZiBVU0UoU09VUCkKICAgICB2b2lkIHNl
dENvb2tpZVBlcnNpc3RlbnRTdG9yYWdlKFBBTDo6U2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIHN0
b3JhZ2VQYXRoLCBTb3VwQ29va2llUGVyc2lzdGVudFN0b3JhZ2VUeXBlKTsKQEAgLTc5LDkgKzc5
LDExIEBAIHByaXZhdGU6CiAgICAgdm9pZCBnZXRBbGxDb29raWVzKFBBTDo6U2Vzc2lvbklELCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKFZlY3RvcjxXZWJDb3JlOjpDb29raWU+JiYpPiYmKTsKICAg
ICB2b2lkIGdldENvb2tpZXMoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFVSTCYsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4mJik+JiYpOwogCi0gICAgdm9pZCBw
bGF0Zm9ybVNldEhUVFBDb29raWVBY2NlcHRQb2xpY3koSFRUUENvb2tpZUFjY2VwdFBvbGljeSk7
Ci0gICAgdm9pZCBnZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoSFRUUENvb2tpZUFjY2VwdFBvbGljeSk+JiYpOwotICAgIEhUVFBDb29raWVBY2NlcHRQb2xp
Y3kgcGxhdGZvcm1HZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KCk7CisgICAgdm9pZCBwbGF0Zm9y
bVNldEhUVFBDb29raWVBY2NlcHRQb2xpY3koV2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBvbGlj
eSk7CisgICAgdm9pZCBnZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoV2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBvbGljeSk+JiYpOworI2lmIFBMQVRGT1JN
KENPQ09BKQorICAgIFdlYkNvcmU6OkhUVFBDb29raWVBY2NlcHRQb2xpY3kgcGxhdGZvcm1HZXRI
VFRQQ29va2llQWNjZXB0UG9saWN5KCk7CisjZW5kaWYKIAogICAgIHZvaWQgc3RhcnRPYnNlcnZp
bmdDb29raWVDaGFuZ2VzKFBBTDo6U2Vzc2lvbklEKTsKICAgICB2b2lkIHN0b3BPYnNlcnZpbmdD
b29raWVDaGFuZ2VzKFBBTDo6U2Vzc2lvbklEKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvQ29va2llcy9XZWJDb29raWVNYW5hZ2VyLm1lc3NhZ2VzLmluIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIubWVzc2Fn
ZXMuaW4KaW5kZXggYWY0YzA5YjczMWZiMDQ5OGRhM2M1Mzc4MmI1ODNlYmI4YjMzMDRkMS4uYWNk
NzU0NDBkODNmMzQ2NjUwYzlmMzNiNzViNWQ1ZDA5MzUyMTNiYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIubWVzc2FnZXMu
aW4KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1h
bmFnZXIubWVzc2FnZXMuaW4KQEAgLTM1LDggKzM1LDggQEAgbWVzc2FnZXMgLT4gV2ViQ29va2ll
TWFuYWdlciBOb3RSZWZDb3VudGVkIHsKICAgICB2b2lkIERlbGV0ZUNvb2tpZShQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQsIHN0cnVjdCBXZWJDb3JlOjpDb29raWUgY29va2llKSAtPiAoKSBBc3lu
YwogICAgIHZvaWQgRGVsZXRlQWxsQ29va2llc01vZGlmaWVkU2luY2UoUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvbklELCBXYWxsVGltZSB0aW1lKSAtPiAoKSBBc3luYwogCi0gICAgdm9pZCBTZXRIVFRQ
Q29va2llQWNjZXB0UG9saWN5KGVudW06dWludDhfdCBXZWJLaXQ6OkhUVFBDb29raWVBY2NlcHRQ
b2xpY3kgcG9saWN5KSAtPiAoKSBBc3luYwotICAgIHZvaWQgR2V0SFRUUENvb2tpZUFjY2VwdFBv
bGljeSgpIC0+IChlbnVtOnVpbnQ4X3QgV2ViS2l0OjpIVFRQQ29va2llQWNjZXB0UG9saWN5IHBv
bGljeSkgQXN5bmMKKyAgICB2b2lkIFNldEhUVFBDb29raWVBY2NlcHRQb2xpY3koZW51bTp1aW50
OF90IFdlYkNvcmU6OkhUVFBDb29raWVBY2NlcHRQb2xpY3kgcG9saWN5KSAtPiAoKSBBc3luYwor
ICAgIHZvaWQgR2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeSgpIC0+IChlbnVtOnVpbnQ4X3QgV2Vi
Q29yZTo6SFRUUENvb2tpZUFjY2VwdFBvbGljeSBwb2xpY3kpIEFzeW5jCiAgICAgCiAgICAgdm9p
ZCBTdGFydE9ic2VydmluZ0Nvb2tpZUNoYW5nZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQog
ICAgIHZvaWQgU3RvcE9ic2VydmluZ0Nvb2tpZUNoYW5nZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Db29raWVzL2N1
cmwvV2ViQ29va2llTWFuYWdlckN1cmwuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9Db29raWVzL2N1cmwvV2ViQ29va2llTWFuYWdlckN1cmwuY3BwCmluZGV4IGMxYTM2Y2RlOWI1
ZWVlNmY3NTE5ZmUwMTMwZWIwMzdmYWUyNTcyMWIuLjdhNWNiMzk2ZTI5Yzg4ZDg0ODBmYTFjYjYz
NzBjYmM0NWJmZmU3ZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
Q29va2llcy9jdXJsL1dlYkNvb2tpZU1hbmFnZXJDdXJsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL0Nvb2tpZXMvY3VybC9XZWJDb29raWVNYW5hZ2VyQ3VybC5jcHAKQEAg
LTI2LDggKzI2LDggQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJXZWJDb29raWVN
YW5hZ2VyLmgiCiAKLSNpbmNsdWRlICJIVFRQQ29va2llQWNjZXB0UG9saWN5LmgiCiAjaW5jbHVk
ZSAiTmV0d29ya1Byb2Nlc3MuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0hUVFBDb29raWVBY2NlcHRQ
b2xpY3kuaD4KICNpbmNsdWRlIDxXZWJDb3JlL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oPgogCiBu
YW1lc3BhY2UgV2ViS2l0IHsKQEAgLTU3LDIyICs1Nyw0IEBAIHZvaWQgV2ViQ29va2llTWFuYWdl
cjo6cGxhdGZvcm1TZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KEhUVFBDb29raWVBY2NlcHRQb2xp
Y3kKICAgICB9KTsKIH0KIAotSFRUUENvb2tpZUFjY2VwdFBvbGljeSBXZWJDb29raWVNYW5hZ2Vy
OjpwbGF0Zm9ybUdldEhUVFBDb29raWVBY2NlcHRQb2xpY3koKQotewotICAgIGNvbnN0IGF1dG8m
IG5ldHdvcmtTdG9yYWdlU2Vzc2lvbiA9IG1fcHJvY2Vzcy5kZWZhdWx0U3RvcmFnZVNlc3Npb24o
KTsKLSAgICBzd2l0Y2ggKG5ldHdvcmtTdG9yYWdlU2Vzc2lvbi5jb29raWVTdG9yYWdlKCkuY29v
a2llQWNjZXB0UG9saWN5KG5ldHdvcmtTdG9yYWdlU2Vzc2lvbikpIHsKLSAgICBjYXNlIENvb2tp
ZUFjY2VwdFBvbGljeTo6QWx3YXlzOgotICAgICAgICByZXR1cm4gSFRUUENvb2tpZUFjY2VwdFBv
bGljeTo6QWx3YXlzQWNjZXB0OwotICAgIGNhc2UgQ29va2llQWNjZXB0UG9saWN5OjpOZXZlcjoK
LSAgICAgICAgcmV0dXJuIEhUVFBDb29raWVBY2NlcHRQb2xpY3k6Ok5ldmVyOwotICAgIGNhc2Ug
Q29va2llQWNjZXB0UG9saWN5OjpPbmx5RnJvbU1haW5Eb2N1bWVudERvbWFpbjoKLSAgICAgICAg
cmV0dXJuIEhUVFBDb29raWVBY2NlcHRQb2xpY3k6Ok9ubHlGcm9tTWFpbkRvY3VtZW50RG9tYWlu
OwotICAgIGNhc2UgQ29va2llQWNjZXB0UG9saWN5OjpFeGNsdXNpdmVseUZyb21NYWluRG9jdW1l
bnREb21haW46Ci0gICAgICAgIHJldHVybiBIVFRQQ29va2llQWNjZXB0UG9saWN5OjpFeGNsdXNp
dmVseUZyb21NYWluRG9jdW1lbnREb21haW47Ci0gICAgfQotCi0gICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7Ci0gICAgcmV0dXJuIEhUVFBDb29raWVBY2NlcHRQb2xpY3k6Ok9ubHlGcm9tTWFpbkRv
Y3VtZW50RG9tYWluOwotfQotCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ29va2llcy9tYWMvV2ViQ29va2llTWFuYWdlck1h
Yy5tbSBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ29va2llcy9tYWMvV2ViQ29va2ll
TWFuYWdlck1hYy5tbQppbmRleCBiYzllOTI0M2Q0MjczOGQwZmUyYzYyOGNkN2Q0MTllYTFhNDA2
ZWY3Li41YzhiMzRjODI1NWRiZGY3OTA5MGM5MThmMTExN2E0ZWMxNTgxNzM2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Nvb2tpZXMvbWFjL1dlYkNvb2tpZU1hbmFn
ZXJNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Db29raWVzL21hYy9X
ZWJDb29raWVNYW5hZ2VyTWFjLm1tCkBAIC0yNiw5ICsyNiw5IEBACiAjaW1wb3J0ICJjb25maWcu
aCIKICNpbXBvcnQgIldlYkNvb2tpZU1hbmFnZXIuaCIKIAotI2ltcG9ydCAiSFRUUENvb2tpZUFj
Y2VwdFBvbGljeS5oIgogI2ltcG9ydCAiTmV0d29ya1Byb2Nlc3MuaCIKICNpbXBvcnQgIk5ldHdv
cmtTZXNzaW9uLmgiCisjaW1wb3J0IDxXZWJDb3JlL0hUVFBDb29raWVBY2NlcHRQb2xpY3kuaD4K
ICNpbXBvcnQgPFdlYkNvcmUvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmg+CiAjaW1wb3J0IDxwYWwv
c3BpL2NmL0NGTmV0d29ya1NQSS5oPgogI2ltcG9ydCA8d3RmL1Byb2Nlc3NQcml2aWxlZ2UuaD4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ29va2llcy9zb3VwL1dl
YkNvb2tpZU1hbmFnZXJTb3VwLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ29v
a2llcy9zb3VwL1dlYkNvb2tpZU1hbmFnZXJTb3VwLmNwcAppbmRleCBlYTkxNTIyYzA5YTQ4MGNk
NjJmNGM4OWFjODQyYzdlZDEzMjIxYjgxLi5jYmZjYWVlNTYzYTEyNjY4ZDQzMjE5NjJjMDY4ZjI5
MjE4YmUzMjU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Nvb2tp
ZXMvc291cC9XZWJDb29raWVNYW5hZ2VyU291cC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9Db29raWVzL3NvdXAvV2ViQ29va2llTWFuYWdlclNvdXAuY3BwCkBAIC0yNiwx
MCArMjYsMTAgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJXZWJDb29raWVNYW5h
Z2VyLmgiCiAKLSNpbmNsdWRlICJIVFRQQ29va2llQWNjZXB0UG9saWN5LmgiCiAjaW5jbHVkZSAi
TmV0d29ya1Byb2Nlc3MuaCIKICNpbmNsdWRlICJOZXR3b3JrU2Vzc2lvblNvdXAuaCIKICNpbmNs
dWRlICJTb3VwQ29va2llUGVyc2lzdGVudFN0b3JhZ2VUeXBlLmgiCisjaW5jbHVkZSA8V2ViQ29y
ZS9IVFRQQ29va2llQWNjZXB0UG9saWN5Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9OZXR3b3JrU3Rv
cmFnZVNlc3Npb24uaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NvdXBOZXR3b3JrU2Vzc2lvbi5oPgog
I2luY2x1ZGUgPGxpYnNvdXAvc291cC5oPgpAQCAtNjAsMjEgKzYwLDYgQEAgdm9pZCBXZWJDb29r
aWVNYW5hZ2VyOjpwbGF0Zm9ybVNldEhUVFBDb29raWVBY2NlcHRQb2xpY3koSFRUUENvb2tpZUFj
Y2VwdFBvbGljeQogICAgIH0pOwogfQogCi1IVFRQQ29va2llQWNjZXB0UG9saWN5IFdlYkNvb2tp
ZU1hbmFnZXI6OnBsYXRmb3JtR2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeSgpCi17Ci0gICAgc3dp
dGNoIChzb3VwX2Nvb2tpZV9qYXJfZ2V0X2FjY2VwdF9wb2xpY3kobV9wcm9jZXNzLmRlZmF1bHRT
dG9yYWdlU2Vzc2lvbigpLmNvb2tpZVN0b3JhZ2UoKSkpIHsKLSAgICBjYXNlIFNPVVBfQ09PS0lF
X0pBUl9BQ0NFUFRfQUxXQVlTOgotICAgICAgICByZXR1cm4gSFRUUENvb2tpZUFjY2VwdFBvbGlj
eTo6QWx3YXlzQWNjZXB0OwotICAgIGNhc2UgU09VUF9DT09LSUVfSkFSX0FDQ0VQVF9ORVZFUjoK
LSAgICAgICAgcmV0dXJuIEhUVFBDb29raWVBY2NlcHRQb2xpY3k6Ok5ldmVyOwotICAgIGNhc2Ug
U09VUF9DT09LSUVfSkFSX0FDQ0VQVF9OT19USElSRF9QQVJUWToKLSAgICAgICAgcmV0dXJuIEhU
VFBDb29raWVBY2NlcHRQb2xpY3k6Ok9ubHlGcm9tTWFpbkRvY3VtZW50RG9tYWluOwotICAgIH0K
LQotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiBIVFRQQ29va2llQWNjZXB0
UG9saWN5OjpPbmx5RnJvbU1haW5Eb2N1bWVudERvbWFpbjsKLX0KLQogdm9pZCBXZWJDb29raWVN
YW5hZ2VyOjpzZXRDb29raWVQZXJzaXN0ZW50U3RvcmFnZShQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQsIGNvbnN0IFN0cmluZyYgc3RvcmFnZVBhdGgsIFNvdXBDb29raWVQZXJzaXN0ZW50U3RvcmFn
ZVR5cGUgc3RvcmFnZVR5cGUpCiB7CiAgICAgaWYgKGF1dG8qIG5ldHdvcmtTZXNzaW9uID0gbV9w
cm9jZXNzLm5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mu
Y3BwCmluZGV4IGIyZDRjNmMxZjYxOTYwNzE0MmVhYzc3MjRiY2JiYTA4MThmM2IwNTIuLmQxOGJl
MzBlNjc4NWRmYzA4MTI3ODZiNWU0OGI1Mzc4ZmQwZjgzZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MuY3BwCkBAIC00NjMsNiArNDYzLDExIEBAIHZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3M6OnNldE9uTGluZVN0YXRlKGJvb2wgaXNPbkxpbmUpCiAgICAgbV9jb25uZWN0aW9u
LT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OlNldE9uTGluZVN0YXRl
KGlzT25MaW5lKSwgMCk7CiB9CiAKK3ZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6
OmNvb2tpZUFjY2VwdFBvbGljeUNoYW5nZWQoSFRUUENvb2tpZUFjY2VwdFBvbGljeSBuZXdQb2xp
Y3kpCit7CisgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzc0Nv
bm5lY3Rpb246OkNvb2tpZUFjY2VwdFBvbGljeUNoYW5nZWQobmV3UG9saWN5KSwgMCk7Cit9CisK
IHZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnJlbW92ZUxvYWRJZGVudGlmaWVy
KFJlc291cmNlTG9hZElkZW50aWZpZXIgaWRlbnRpZmllcikKIHsKICAgICBSRUxFQVNFX0FTU0VS
VChpZGVudGlmaWVyKTsKQEAgLTU5MywxNCArNTk4LDYgQEAgdm9pZCBOZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzczo6c2V0Q29va2llc0Zyb21ET00oY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBj
b24KICNlbmRpZgogfQogCi12b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpjb29r
aWVzRW5hYmxlZChDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5k
bGVyKQotewotICAgIGF1dG8qIG5ldHdvcmtTdG9yYWdlU2Vzc2lvbiA9IHN0b3JhZ2VTZXNzaW9u
KCk7Ci0gICAgaWYgKCFuZXR3b3JrU3RvcmFnZVNlc3Npb24pCi0gICAgICAgIHJldHVybiBjb21w
bGV0aW9uSGFuZGxlcihmYWxzZSk7Ci0gICAgY29tcGxldGlvbkhhbmRsZXIobmV0d29ya1N0b3Jh
Z2VTZXNzaW9uLT5jb29raWVzRW5hYmxlZCgpKTsKLX0KLQogdm9pZCBOZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzczo6Y29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoY29uc3QgVVJMJiBm
aXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5mbywgY29uc3QgVVJMJiB1
cmwsIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50
aWZpZXI+IHBhZ2VJRCwgSW5jbHVkZVNlY3VyZUNvb2tpZXMgaW5jbHVkZVNlY3VyZUNvb2tpZXMs
IFNob3VsZEFza0lUUCBzaG91bGRBc2tJVFAsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5n
LCBib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBhdXRvKiBuZXR3b3JrU3RvcmFn
ZVNlc3Npb24gPSBzdG9yYWdlU2Vzc2lvbigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCmluZGV4
IDgzOTc0MzFjMDMzMTNjYzJjMDUwZDUxMmM5NTJhZTdlM2ZlZTlhNjUuLmU4MzVlNjQxYjYwOTI2
ZGJkMzRmNDQxZjRlMzhkMDVjN2M3NWYyYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKQEAg
LTYxLDYgKzYxLDcgQEAgZW51bSBjbGFzcyBTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCA6IGJvb2w7
CiBlbnVtIGNsYXNzIFNob3VsZEFza0lUUCA6IGJvb2w7CiBzdHJ1Y3QgU2FtZVNpdGVJbmZvOwog
CitlbnVtIGNsYXNzIEhUVFBDb29raWVBY2NlcHRQb2xpY3kgOiB1aW50OF90OwogZW51bSBjbGFz
cyBJbmNsdWRlU2VjdXJlQ29va2llcyA6IGJvb2w7CiB9CiAKQEAgLTE2Nyw2ICsxNjgsOCBAQCBw
dWJsaWM6CiAKICAgICBOZXR3b3JrU2NoZW1lUmVnaXN0cnkmIHNjaGVtZVJlZ2lzdHJ5KCkgeyBy
ZXR1cm4gbV9zY2hlbWVSZWdpc3RyeS5nZXQoKTsgfQogCisgICAgdm9pZCBjb29raWVBY2NlcHRQ
b2xpY3lDaGFuZ2VkKFdlYkNvcmU6OkhUVFBDb29raWVBY2NlcHRQb2xpY3kpOworCiBwcml2YXRl
OgogICAgIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzKE5ldHdvcmtQcm9jZXNzJiwgV2Vi
Q29yZTo6UHJvY2Vzc0lkZW50aWZpZXIsIFBBTDo6U2Vzc2lvbklELCBJUEM6OkNvbm5lY3Rpb246
OklkZW50aWZpZXIpOwogCkBAIC0yMDAsNyArMjAzLDYgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQg
Y29va2llc0ZvckRPTShjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlNhbWVT
aXRlSW5mbyYsIGNvbnN0IFVSTCYsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgV2ViQ29yZTo6
UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OkluY2x1ZGVTZWN1cmVDb29raWVzLCBXZWJDb3JlOjpT
aG91bGRBc2tJVFAsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nIGNvb2tpZVN0cmluZywg
Ym9vbCBzZWN1cmVDb29raWVzQWNjZXNzZWQpPiYmKTsKICAgICB2b2lkIHNldENvb2tpZXNGcm9t
RE9NKGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6U2FtZVNpdGVJbmZvJiwg
Y29uc3QgVVJMJiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJDb3JlOjpQYWdlSWRlbnRp
ZmllciwgV2ViQ29yZTo6U2hvdWxkQXNrSVRQLCBjb25zdCBTdHJpbmcmKTsKLSAgICB2b2lkIGNv
b2tpZXNFbmFibGVkKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwogICAgIHZvaWQg
Y29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25z
dCBXZWJDb3JlOjpTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmLCBPcHRpb25hbDxXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXI+LCBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4sIFdlYkNv
cmU6OkluY2x1ZGVTZWN1cmVDb29raWVzLCBXZWJDb3JlOjpTaG91bGRBc2tJVFAsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoU3RyaW5nIGNvb2tpZVN0cmluZywgYm9vbCBzZWN1cmVDb29raWVzQWNj
ZXNzZWQpPiYmKTsKICAgICB2b2lkIGdldFJhd0Nvb2tpZXMoY29uc3QgVVJMJiBmaXJzdFBhcnR5
LCBjb25zdCBXZWJDb3JlOjpTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmLCBPcHRpb25hbDxXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXI+LCBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4s
IFdlYkNvcmU6OlNob3VsZEFza0lUUCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8V2Vi
Q29yZTo6Q29va2llPiYmKT4mJik7CiAgICAgdm9pZCBkZWxldGVDb29raWUoY29uc3QgVVJMJiwg
Y29uc3QgU3RyaW5nJiBjb29raWVOYW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4gYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
Lm1lc3NhZ2VzLmluCmluZGV4IDg0Y2ZiZGYzZmI5MzRkNzkxNDM3MTYyMTFhMjUwNmZjZjYxMzRk
NWEuLjAyMGI0N2E3N2I3M2MxOGE2YTYyZDQ2NTAxNWE3Y2E0YmMzYWIwNTAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgpAQCAtMzYsNyArMzYsNiBAQCBtZXNz
YWdlcyAtPiBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyBMZWdhY3lSZWNlaXZlciB7CiAK
ICAgICBDb29raWVzRm9yRE9NKFVSTCBmaXJzdFBhcnR5LCBzdHJ1Y3QgV2ViQ29yZTo6U2FtZVNp
dGVJbmZvIHNhbWVTaXRlSW5mbywgVVJMIHVybCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZy
YW1lSUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgZW51bTpib29sIFdlYkNvcmU6
OkluY2x1ZGVTZWN1cmVDb29raWVzIGluY2x1ZGVTZWN1cmVDb29raWVzLCBlbnVtOmJvb2wgV2Vi
Q29yZTo6U2hvdWxkQXNrSVRQIHNob3VsZEFza0lUUCkgLT4gKFN0cmluZyBjb29raWVTdHJpbmcs
IGJvb2wgZGlkQWNjZXNzU2VjdXJlQ29va2llcykgU3luY2hyb25vdXMKICAgICBTZXRDb29raWVz
RnJvbURPTShVUkwgZmlyc3RQYXJ0eSwgc3RydWN0IFdlYkNvcmU6OlNhbWVTaXRlSW5mbyBzYW1l
U2l0ZUluZm8sIFVSTCB1cmwsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBXZWJD
b3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIGVudW06Ym9vbCBXZWJDb3JlOjpTaG91bGRBc2tJ
VFAgc2hvdWxkQXNrSVRQLCBTdHJpbmcgY29va2llU3RyaW5nKQotICAgIENvb2tpZXNFbmFibGVk
KCkgLT4gKGJvb2wgZW5hYmxlZCkgU3luY2hyb25vdXMKICAgICBDb29raWVSZXF1ZXN0SGVhZGVy
RmllbGRWYWx1ZShVUkwgZmlyc3RQYXJ0eSwgc3RydWN0IFdlYkNvcmU6OlNhbWVTaXRlSW5mbyBz
YW1lU2l0ZUluZm8sIFVSTCB1cmwsIE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4g
ZnJhbWVJRCwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgZW51bTpi
b29sIFdlYkNvcmU6OkluY2x1ZGVTZWN1cmVDb29raWVzIGluY2x1ZGVTZWN1cmVDb29raWVzLCBl
bnVtOmJvb2wgV2ViQ29yZTo6U2hvdWxkQXNrSVRQIHNob3VsZEFza0lUUCkgLT4gKFN0cmluZyBj
b29raWVTdHJpbmcsIGJvb2wgZGlkQWNjZXNzU2VjdXJlQ29va2llcykgU3luY2hyb25vdXMKICAg
ICBHZXRSYXdDb29raWVzKFVSTCBmaXJzdFBhcnR5LCBzdHJ1Y3QgV2ViQ29yZTo6U2FtZVNpdGVJ
bmZvIHNhbWVTaXRlSW5mbywgVVJMIHVybCwgT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyPiBmcmFtZUlELCBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBl
bnVtOmJvb2wgV2ViQ29yZTo6U2hvdWxkQXNrSVRQIHNob3VsZEFza0lUUCkgLT4gKFZlY3RvcjxX
ZWJDb3JlOjpDb29raWU+IGNvb2tpZXMpIFN5bmNocm9ub3VzCiAgICAgRGVsZXRlQ29va2llKFVS
TCB1cmwsIFN0cmluZyBjb29raWVOYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtQcm9jZXNzLmNwcAppbmRleCAzOTkyNmViNmFhODhhOWEyNjFiMzQwNzg1Zjc0
MThiODlmZjIxMTY4Li5hZjI0Y2ZmZjg3MTliNzgwYjViODA4MmYyYTNlODExMjEyN2M3MWJhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcApA
QCAtNzAsNiArNzAsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvRE5TLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9EZXByZWNhdGVkR2xvYmFsU2V0dGluZ3MuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0RpYWdu
b3N0aWNMb2dnaW5nQ2xpZW50Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9IVFRQQ29va2llQWNjZXB0
UG9saWN5Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9MZWdhY3lTY2hlbWVSZWdpc3RyeS5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvTG9nSW5pdGlhbGl6YXRpb24uaD4KICNpbmNsdWRlIDxXZWJDb3JlL01J
TUVUeXBlUmVnaXN0cnkuaD4KQEAgLTM2OCwxMSArMzY5LDExIEBAIHZvaWQgTmV0d29ya1Byb2Nl
c3M6OmluaXRpYWxpemVDb25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbikKICAg
ICAgICAgc3VwcGxlbWVudC0+aW5pdGlhbGl6ZUNvbm5lY3Rpb24oY29ubmVjdGlvbik7CiB9CiAK
LXZvaWQgTmV0d29ya1Byb2Nlc3M6OmNyZWF0ZU5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
KFByb2Nlc3NJZGVudGlmaWVyIGlkZW50aWZpZXIsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxJUEM6OkF0dGFjaG1lbnQ+JiYpPiYmIGNv
bXBsZXRpb25IYW5kbGVyKQordm9pZCBOZXR3b3JrUHJvY2Vzczo6Y3JlYXRlTmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MoUHJvY2Vzc0lkZW50aWZpZXIgaWRlbnRpZmllciwgUEFMOjpTZXNz
aW9uSUQgc2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPElQQzo6QXR0
YWNobWVudD4mJiwgSFRUUENvb2tpZUFjY2VwdFBvbGljeSk+JiYgY29tcGxldGlvbkhhbmRsZXIp
CiB7CiAgICAgYXV0byBpcGNDb25uZWN0aW9uID0gY3JlYXRlSVBDQ29ubmVjdGlvblBhaXIoKTsK
ICAgICBpZiAoIWlwY0Nvbm5lY3Rpb24pIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoeyB9
KTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoeyB9LCBIVFRQQ29va2llQWNjZXB0UG9saWN5
OjpOZXZlcik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTM4Miw3ICszODMsMTEgQEAg
dm9pZCBOZXR3b3JrUHJvY2Vzczo6Y3JlYXRlTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mo
UHJvY2Vzc0lkZW50aWZpZXIgaWRlbnQKICAgICBBU1NFUlQoIW1fd2ViUHJvY2Vzc0Nvbm5lY3Rp
b25zLmNvbnRhaW5zKGlkZW50aWZpZXIpKTsKICAgICBtX3dlYlByb2Nlc3NDb25uZWN0aW9ucy5h
ZGQoaWRlbnRpZmllciwgV1RGTW92ZShuZXdDb25uZWN0aW9uKSk7CiAKLSAgICBjb21wbGV0aW9u
SGFuZGxlcihXVEZNb3ZlKGlwY0Nvbm5lY3Rpb24tPnNlY29uZCkpOworICAgIEhUVFBDb29raWVB
Y2NlcHRQb2xpY3kgY29va2llQWNjZXB0UG9saWN5ID0gSFRUUENvb2tpZUFjY2VwdFBvbGljeTo6
TmV2ZXI7CisgICAgaWYgKGF1dG8qIHN0b3JhZ2UgPSBzdG9yYWdlU2Vzc2lvbihzZXNzaW9uSUQp
KQorICAgICAgICBjb29raWVBY2NlcHRQb2xpY3kgPSBzdG9yYWdlLT5jb29raWVBY2NlcHRQb2xp
Y3koKTsKKworICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUoaXBjQ29ubmVjdGlvbi0+c2Vj
b25kKSwgY29va2llQWNjZXB0UG9saWN5KTsKIAogICAgIGNvbm5lY3Rpb24uc2V0T25MaW5lU3Rh
dGUoTmV0d29ya1N0YXRlTm90aWZpZXI6OnNpbmdsZXRvbigpLm9uTGluZSgpKTsKIApAQCAtNTA3
LDYgKzUxMiwxMiBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjplbnN1cmVTZXNzaW9uKGNvbnN0IFBB
TDo6U2Vzc2lvbklEJiBzZXNzaW9uSUQsIGJvb2wgc2hvdWxkVQogI2VuZGlmCiB9CiAKK3ZvaWQg
TmV0d29ya1Byb2Nlc3M6OmNvb2tpZUFjY2VwdFBvbGljeUNoYW5nZWQoSFRUUENvb2tpZUFjY2Vw
dFBvbGljeSBuZXdQb2xpY3kpCit7CisgICAgZm9yIChhdXRvJiBjb25uZWN0aW9uIDogbV93ZWJQ
cm9jZXNzQ29ubmVjdGlvbnMudmFsdWVzKCkpCisgICAgICAgIGNvbm5lY3Rpb24tPmNvb2tpZUFj
Y2VwdFBvbGljeUNoYW5nZWQobmV3UG9saWN5KTsKK30KKwogV2ViQ29yZTo6TmV0d29ya1N0b3Jh
Z2VTZXNzaW9uKiBOZXR3b3JrUHJvY2Vzczo6c3RvcmFnZVNlc3Npb24oY29uc3QgUEFMOjpTZXNz
aW9uSUQmIHNlc3Npb25JRCkgY29uc3QKIHsKICAgICBpZiAoc2Vzc2lvbklEID09IFBBTDo6U2Vz
c2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtQcm9jZXNzLmgKaW5kZXggY2FhZGMyMDFiYjI0ZjUyZDBkN2QzYWVjYjg5Y2Q5
ZTNiMGFiYTYyNy4uZDZkOTU0NTMzOTY4YTFjNDFjMjVmNDUyMGFmMzgzZDMxNjQ3MTk2OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaApAQCAtODEs
NiArODEsNyBAQCBjbGFzcyBTdG9yYWdlUXVvdGFNYW5hZ2VyOwogY2xhc3MgTmV0d29ya1N0b3Jh
Z2VTZXNzaW9uOwogY2xhc3MgUmVzb3VyY2VFcnJvcjsKIGNsYXNzIFNXU2VydmVyOworZW51bSBj
bGFzcyBIVFRQQ29va2llQWNjZXB0UG9saWN5IDogdWludDhfdDsKIGVudW0gY2xhc3MgSW5jbHVk
ZUh0dHBPbmx5Q29va2llcyA6IGJvb2w7CiBlbnVtIGNsYXNzIFN0b3JlZENyZWRlbnRpYWxzUG9s
aWN5IDogdWludDhfdDsKIGVudW0gY2xhc3MgU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duIDog
Ym9vbDsKQEAgLTM0NCw2ICszNDUsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCByZXNldFNlcnZpY2VX
b3JrZXJGZXRjaFRpbWVvdXRGb3JUZXN0aW5nKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7
CiAgICAgU2Vjb25kcyBzZXJ2aWNlV29ya2VyRmV0Y2hUaW1lb3V0KCkgY29uc3QgeyByZXR1cm4g
bV9zZXJ2aWNlV29ya2VyRmV0Y2hUaW1lb3V0OyB9CiAKKyAgICB2b2lkIGNvb2tpZUFjY2VwdFBv
bGljeUNoYW5nZWQoV2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBvbGljeSk7CisKIHByaXZhdGU6
CiAgICAgdm9pZCBwbGF0Zm9ybUluaXRpYWxpemVOZXR3b3JrUHJvY2Vzcyhjb25zdCBOZXR3b3Jr
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYpOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3Jl
OjpOZXR3b3JrU3RvcmFnZVNlc3Npb24+IHBsYXRmb3JtQ3JlYXRlRGVmYXVsdFN0b3JhZ2VTZXNz
aW9uKCkgY29uc3Q7CkBAIC0zODQsNyArMzg3LDcgQEAgcHJpdmF0ZToKICAgICAvLyBNZXNzYWdl
IEhhbmRsZXJzCiAgICAgdm9pZCBkaWRSZWNlaXZlU3luY05ldHdvcmtQcm9jZXNzTWVzc2FnZShJ
UEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNv
ZGVyPiYpOwogICAgIHZvaWQgaW5pdGlhbGl6ZU5ldHdvcmtQcm9jZXNzKE5ldHdvcmtQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzJiYpOwotICAgIHZvaWQgY3JlYXRlTmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3MoV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIsIFBBTDo6U2Vzc2lvbklELCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPElQQzo6QXR0YWNobWVudD4mJik+JiYpOwor
ICAgIHZvaWQgY3JlYXRlTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoV2ViQ29yZTo6UHJv
Y2Vzc0lkZW50aWZpZXIsIFBBTDo6U2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9w
dGlvbmFsPElQQzo6QXR0YWNobWVudD4mJiwgV2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBvbGlj
eSk+JiYpOwogCiAgICAgdm9pZCBmZXRjaFdlYnNpdGVEYXRhKFBBTDo6U2Vzc2lvbklELCBPcHRp
b25TZXQ8V2Vic2l0ZURhdGFUeXBlPiwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhRmV0Y2hPcHRpb24+
LCB1aW50NjRfdCBjYWxsYmFja0lEKTsKICAgICB2b2lkIGRlbGV0ZVdlYnNpdGVEYXRhKFBBTDo6
U2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiwgV2FsbFRpbWUgbW9kaWZpZWRT
aW5jZSwgdWludDY0X3QgY2FsbGJhY2tJRCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgppbmRleCBhNTY2MTNjZGEz
NGM3ZTNhY2U1NTRmZDc4YjM1OTRiYWJhYmQ2NjA2Li4zOWQxMWYzYTI2NTMzMzY2YjY5YjJmNzA1
YTlkZGIxY2MzMWMxOGE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4KQEAgLTI1LDcgKzI1LDcgQEAgbWVzc2Fn
ZXMgLT4gTmV0d29ya1Byb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewogICAgIEluaXRpYWxpemVOZXR3
b3JrUHJvY2VzcyhzdHJ1Y3QgV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
cyBwcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzKQogCiAgICAgIyBDcmVhdGVzIGEgY29ubmVjdGlv
biBmb3IgY29tbXVuaWNhdGlvbiB3aXRoIGEgV2ViUHJvY2VzcwotICAgIENyZWF0ZU5ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzKFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyIHByb2Nlc3NJ
ZGVudGlmaWVyLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+IChPcHRpb25hbDxJUEM6OkF0
dGFjaG1lbnQ+IGNvbm5lY3Rpb25JZGVudGlmaWVyKSBBc3luYworICAgIENyZWF0ZU5ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzKFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyIHByb2Nlc3NJ
ZGVudGlmaWVyLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+IChPcHRpb25hbDxJUEM6OkF0
dGFjaG1lbnQ+IGNvbm5lY3Rpb25JZGVudGlmaWVyLCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6SFRU
UENvb2tpZUFjY2VwdFBvbGljeSBjb29raWVBY2NlcHRQb2xpY3kpIEFzeW5jCiAKICNpZiBVU0Uo
U09VUCkKICAgICBTZXRJZ25vcmVUTFNFcnJvcnMoYm9vbCBpZ25vcmVUTFNFcnJvcnMpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKaW5kZXggNTA5ZTM2N2ExYjBiNmFkMzkwMWNkNWRlMTIy
YmZlY2EzMGYzYzc1Mi4uY2I2YzMxMDlmOGVhNDEzMzMzOTYxYzg3YzJlZjZkNjk4MTc3OGVmMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaApAQCAtMzQsNyArMzQsNyBAQAogI2luY2x1
ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiAjaWYgVVNFKFNPVVApCi0jaW5jbHVkZSAiSFRU
UENvb2tpZUFjY2VwdFBvbGljeS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvSFRUUENvb2tpZUFjY2Vw
dFBvbGljeS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU291cE5ldHdvcmtQcm94eVNldHRpbmdzLmg+
CiAjZW5kaWYKIApAQCAtNzYsNyArNzYsNyBAQCBzdHJ1Y3QgTmV0d29ya1Byb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnMgewogICAgIFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzIGRlZmF1bHREYXRh
U3RvcmVQYXJhbWV0ZXJzOwogICAgIAogI2lmIFVTRShTT1VQKQotICAgIEhUVFBDb29raWVBY2Nl
cHRQb2xpY3kgY29va2llQWNjZXB0UG9saWN5IHsgSFRUUENvb2tpZUFjY2VwdFBvbGljeTo6QWx3
YXlzQWNjZXB0IH07CisgICAgV2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBvbGljeSBjb29raWVB
Y2NlcHRQb2xpY3kgeyBXZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0UG9saWN5OjpBbHdheXNBY2Nl
cHQgfTsKICAgICBib29sIGlnbm9yZVRMU0Vycm9ycyB7IGZhbHNlIH07CiAgICAgVmVjdG9yPFN0
cmluZz4gbGFuZ3VhZ2VzOwogICAgIFdlYkNvcmU6OlNvdXBOZXR3b3JrUHJveHlTZXR0aW5ncyBw
cm94eVNldHRpbmdzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvSFRUUENvb2tp
ZUFjY2VwdFBvbGljeS5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvSFRUUENvb2tpZUFjY2VwdFBv
bGljeS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0NTdjMjM0NGM5Yzg5ODZmZjZl
MjMyMzMwNWEyODQzM2Q4NmVhMGViLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0hUVFBDb29raWVBY2NlcHRQb2xpY3ku
aAorKysgL2Rldi9udWxsCkBAIC0xLDUxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQot
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotbmFtZXNwYWNlIFdlYktpdCB7
Ci0KLWVudW0gY2xhc3MgSFRUUENvb2tpZUFjY2VwdFBvbGljeSA6IHVpbnQ4X3QgewotICAgIEFs
d2F5c0FjY2VwdCA9IDAsCi0gICAgTmV2ZXIgPSAxLAotICAgIE9ubHlGcm9tTWFpbkRvY3VtZW50
RG9tYWluID0gMiwKLSAgICBFeGNsdXNpdmVseUZyb21NYWluRG9jdW1lbnREb21haW4gPSAzLAot
fTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLW5hbWVzcGFjZSBXVEYgewotCi10ZW1wbGF0
ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYktpdDo6SFRUUENvb2tpZUFjY2VwdFBvbGljeT4gewot
ICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8Ci0gICAgICAgIFdlYktpdDo6SFRUUENvb2tp
ZUFjY2VwdFBvbGljeSwKLSAgICAgICAgV2ViS2l0OjpIVFRQQ29va2llQWNjZXB0UG9saWN5OjpB
bHdheXNBY2NlcHQsCi0gICAgICAgIFdlYktpdDo6SFRUUENvb2tpZUFjY2VwdFBvbGljeTo6TmV2
ZXIsCi0gICAgICAgIFdlYktpdDo6SFRUUENvb2tpZUFjY2VwdFBvbGljeTo6T25seUZyb21NYWlu
RG9jdW1lbnREb21haW4sCi0gICAgICAgIFdlYktpdDo6SFRUUENvb2tpZUFjY2VwdFBvbGljeTo6
RXhjbHVzaXZlbHlGcm9tTWFpbkRvY3VtZW50RG9tYWluCi0gICAgPjsKLX07Ci0KLX0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMu
aCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaApp
bmRleCA0OTZjZmM5ZjdlODRhYWM2MjZiZTE3ZTdlNWIwMTZiOGQ1Y2M1MDBmLi5iNDMwMmQ2OGNl
N2MxNjk2MmVlYjg3Mjc3YzVmODNmYjg3ZjQ4OGM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKKysrIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCkBAIC00Nyw3ICs0Nyw3IEBA
CiAjZW5kaWYKIAogI2lmIFVTRShTT1VQKQotI2luY2x1ZGUgIkhUVFBDb29raWVBY2NlcHRQb2xp
Y3kuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0hUVFBDb29raWVBY2NlcHRQb2xpY3kuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL1NvdXBOZXR3b3JrUHJveHlTZXR0aW5ncy5oPgogI2VuZGlmCiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElIVFRQQ29va2llU3RvcmUuY3Bw
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUhUVFBDb29raWVTdG9yZS5jcHAKaW5k
ZXggYzJmN2VhMjAxMTA1MDEyZTJlNzM0OThhYzE3N2ZkZmQzMDgzYzkxNy4uMmVlMzBiZGZiZjc4
NTk3NzE0MmJhNzdjZTBhM2I4MGU5YzZjZjM1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0FQSUhUVFBDb29raWVTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0FQSUhUVFBDb29raWVTdG9yZS5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNp
bmNsdWRlICJXZWJzaXRlRGF0YVN0b3JlLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9Db29raWUuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL0Nvb2tpZVN0b3JhZ2UuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0hU
VFBDb29raWVBY2NlcHRQb2xpY3kuaD4KICNpbmNsdWRlIDxXZWJDb3JlL05ldHdvcmtTdG9yYWdl
U2Vzc2lvbi5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwpAQCAtMTMzLDcgKzEzNCw3IEBA
IHZvaWQgSFRUUENvb2tpZVN0b3JlOjpkZWxldGVBbGxDb29raWVzKENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuCiAgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFdU
Rk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAotdm9pZCBIVFRQQ29va2llU3RvcmU6OnNl
dEhUVFBDb29raWVBY2NlcHRQb2xpY3koV2ViS2l0OjpIVFRQQ29va2llQWNjZXB0UG9saWN5IHBv
bGljeSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9p
ZCBIVFRQQ29va2llU3RvcmU6OnNldEhUVFBDb29raWVBY2NlcHRQb2xpY3koV2ViQ29yZTo6SFRU
UENvb2tpZUFjY2VwdFBvbGljeSBwb2xpY3ksIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBj
b21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBhdXRvKiBwb29sID0gbV9vd25pbmdEYXRhU3RvcmUt
PnByb2Nlc3NQb29sRm9yQ29va2llU3RvcmFnZU9wZXJhdGlvbnMoKTsKICAgICBpZiAoIXBvb2wp
IHsKQEAgLTI3OSw3ICsyODAsNyBAQCB2b2lkIEhUVFBDb29raWVTdG9yZTo6ZGVsZXRlQ29va2ll
RnJvbURlZmF1bHRVSVByb2Nlc3NDb29raWVTdG9yZShjb25zdCBXZWJDb3JlOgogdm9pZCBIVFRQ
Q29va2llU3RvcmU6OnN0YXJ0T2JzZXJ2aW5nQ2hhbmdlc1RvRGVmYXVsdFVJUHJvY2Vzc0Nvb2tp
ZVN0b3JlKEZ1bmN0aW9uPHZvaWQoKT4mJikgeyB9CiB2b2lkIEhUVFBDb29raWVTdG9yZTo6c3Rv
cE9ic2VydmluZ0NoYW5nZXNUb0RlZmF1bHRVSVByb2Nlc3NDb29raWVTdG9yZSgpIHsgfQogdm9p
ZCBIVFRQQ29va2llU3RvcmU6OmRlbGV0ZUNvb2tpZXNJbkRlZmF1bHRVSVByb2Nlc3NDb29raWVT
dG9yZSgpIHsgfQotdm9pZCBIVFRQQ29va2llU3RvcmU6OnNldEhUVFBDb29raWVBY2NlcHRQb2xp
Y3lJbkRlZmF1bHRVSVByb2Nlc3NDb29raWVTdG9yZShXZWJLaXQ6OkhUVFBDb29raWVBY2NlcHRQ
b2xpY3kpIHsgfQordm9pZCBIVFRQQ29va2llU3RvcmU6OnNldEhUVFBDb29raWVBY2NlcHRQb2xp
Y3lJbkRlZmF1bHRVSVByb2Nlc3NDb29raWVTdG9yZShXZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0
UG9saWN5KSB7IH0KICNlbmRpZgogICAgIAogfSAvLyBuYW1lc3BhY2UgQVBJCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJSFRUUENvb2tpZVN0b3JlLmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJSFRUUENvb2tpZVN0b3JlLmgKaW5kZXggMmU0MWY2
MjRkNDc0ZjVmZjQxZTE1MjUxMjBmNWJmN2E2YmIyNmQzZC4uODE3OWM0NGY0ZTU4ZDJiNjI5ODU1
Y2E5MTU5MDk0ZjQzMmM0NmM3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0FQSUhUVFBDb29raWVTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9BUElIVFRQQ29va2llU3RvcmUuaApAQCAtMjYsNyArMjYsNiBAQAogI3ByYWdtYSBvbmNlCiAK
ICNpbmNsdWRlICJBUElPYmplY3QuaCIKLSNpbmNsdWRlICJIVFRQQ29va2llQWNjZXB0UG9saWN5
LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9Db29raWUuaD4KICNpbmNsdWRlIDx3dGYvQ29tcGxldGlv
bkhhbmRsZXIuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgpAQCAtMzcsMTIgKzM2LDEyIEBA
IHN0cnVjdCBDb29raWU7CiAjaWYgUExBVEZPUk0oQ09DT0EpCiBjbGFzcyBDb29raWVTdG9yYWdl
T2JzZXJ2ZXI7CiAjZW5kaWYKK2VudW0gY2xhc3MgSFRUUENvb2tpZUFjY2VwdFBvbGljeSA6IHVp
bnQ4X3Q7CiB9CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3MgV2ViQ29va2llTWFuYWdlclBy
b3h5OwogY2xhc3MgV2Vic2l0ZURhdGFTdG9yZTsKLWVudW0gY2xhc3MgSFRUUENvb2tpZUFjY2Vw
dFBvbGljeSA6IHVpbnQ4X3Q7CiB9CiAKIG5hbWVzcGFjZSBBUEkgewpAQCAtNjMsNyArNjIsNyBA
QCBwdWJsaWM6CiAgICAgdm9pZCBkZWxldGVDb29raWUoY29uc3QgV2ViQ29yZTo6Q29va2llJiwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICAKICAgICB2b2lkIGRlbGV0ZUFsbENv
b2tpZXMoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKLSAgICB2b2lkIHNldEhUVFBDb29r
aWVBY2NlcHRQb2xpY3koV2ViS2l0OjpIVFRQQ29va2llQWNjZXB0UG9saWN5LCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKCk+JiYpOworICAgIHZvaWQgc2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShX
ZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0UG9saWN5LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+
JiYpOwogCiAgICAgY2xhc3MgT2JzZXJ2ZXIgewogICAgIHB1YmxpYzoKQEAgLTkwLDcgKzg5LDcg
QEAgcHJpdmF0ZToKICAgICB2b2lkIHN0YXJ0T2JzZXJ2aW5nQ2hhbmdlc1RvRGVmYXVsdFVJUHJv
Y2Vzc0Nvb2tpZVN0b3JlKEZ1bmN0aW9uPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzdG9wT2JzZXJ2
aW5nQ2hhbmdlc1RvRGVmYXVsdFVJUHJvY2Vzc0Nvb2tpZVN0b3JlKCk7CiAgICAgdm9pZCBkZWxl
dGVDb29raWVzSW5EZWZhdWx0VUlQcm9jZXNzQ29va2llU3RvcmUoKTsKLSAgICB2b2lkIHNldEhU
VFBDb29raWVBY2NlcHRQb2xpY3lJbkRlZmF1bHRVSVByb2Nlc3NDb29raWVTdG9yZShXZWJLaXQ6
OkhUVFBDb29raWVBY2NlcHRQb2xpY3kpOworICAgIHZvaWQgc2V0SFRUUENvb2tpZUFjY2VwdFBv
bGljeUluRGVmYXVsdFVJUHJvY2Vzc0Nvb2tpZVN0b3JlKFdlYkNvcmU6OkhUVFBDb29raWVBY2Nl
cHRQb2xpY3kpOwogICAgIAogICAgIC8vIEZJWE1FOiBUaGlzIGlzIGEgcmVmZXJlbmNlIGN5Y2xl
LgogICAgIFJlZjxXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU+IG1fb3duaW5nRGF0YVN0b3JlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmggYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaAppbmRleCAwMGQxNjI3Mjcw
MjhhNjZiNDA3YjM1ZDU2MThkOTA1YzFlYTNiYTA0Li44MTA1NWE2MTliYTE5ZjU2NTIyYzQ3ODAx
YTVhMGNhYzNjNWZmYzQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Qy9XS0FQSUNhc3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNh
c3QuaApAQCAtMjgsNyArMjgsNiBAQAogI2RlZmluZSBXS0FQSUNhc3RfaAogCiAjaW5jbHVkZSAi
Q2FjaGVNb2RlbC5oIgotI2luY2x1ZGUgIkhUVFBDb29raWVBY2NlcHRQb2xpY3kuaCIKICNpbmNs
dWRlICJJbmplY3RlZEJ1bmRsZUhpdFRlc3RSZXN1bHRNZWRpYVR5cGUuaCIKICNpbmNsdWRlICJQ
bHVnaW5Nb2R1bGVJbmZvLmgiCiAjaW5jbHVkZSAiUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uLmgi
CkBAIC00Niw2ICs0NSw3IEBACiAjaW5jbHVkZSAiV0tTaGFyZWRBUElDYXN0LmgiCiAjaW5jbHVk
ZSA8V2ViQ29yZS9DcmVkZW50aWFsLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUxvYWRlclR5
cGVzLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9IVFRQQ29va2llQWNjZXB0UG9saWN5Lmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9QbHVnaW5EYXRhLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Qcm90ZWN0aW9u
U3BhY2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NldHRpbmdzLmg+CkBAIC0zNjksMzMgKzM2OSwz
MyBAQCBpbmxpbmUgUmVzb3VyY2VDYWNoZXNUb0NsZWFyIHRvUmVzb3VyY2VDYWNoZXNUb0NsZWFy
KFdLUmVzb3VyY2VDYWNoZXNUb0NsZWFyIHdrUgogICAgIHJldHVybiBBbGxSZXNvdXJjZUNhY2hl
czsKIH0KIAotaW5saW5lIEhUVFBDb29raWVBY2NlcHRQb2xpY3kgdG9IVFRQQ29va2llQWNjZXB0
UG9saWN5KFdLSFRUUENvb2tpZUFjY2VwdFBvbGljeSBwb2xpY3kpCitpbmxpbmUgV2ViQ29yZTo6
SFRUUENvb2tpZUFjY2VwdFBvbGljeSB0b0hUVFBDb29raWVBY2NlcHRQb2xpY3koV0tIVFRQQ29v
a2llQWNjZXB0UG9saWN5IHBvbGljeSkKIHsKICAgICBzd2l0Y2ggKHBvbGljeSkgewogICAgIGNh
c2Uga1dLSFRUUENvb2tpZUFjY2VwdFBvbGljeUFsd2F5czoKLSAgICAgICAgcmV0dXJuIEhUVFBD
b29raWVBY2NlcHRQb2xpY3k6OkFsd2F5c0FjY2VwdDsKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6
OkhUVFBDb29raWVBY2NlcHRQb2xpY3k6OkFsd2F5c0FjY2VwdDsKICAgICBjYXNlIGtXS0hUVFBD
b29raWVBY2NlcHRQb2xpY3lOZXZlcjoKLSAgICAgICAgcmV0dXJuIEhUVFBDb29raWVBY2NlcHRQ
b2xpY3k6Ok5ldmVyOworICAgICAgICByZXR1cm4gV2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBv
bGljeTo6TmV2ZXI7CiAgICAgY2FzZSBrV0tIVFRQQ29va2llQWNjZXB0UG9saWN5T25seUZyb21N
YWluRG9jdW1lbnREb21haW46Ci0gICAgICAgIHJldHVybiBIVFRQQ29va2llQWNjZXB0UG9saWN5
OjpPbmx5RnJvbU1haW5Eb2N1bWVudERvbWFpbjsKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkhU
VFBDb29raWVBY2NlcHRQb2xpY3k6Ok9ubHlGcm9tTWFpbkRvY3VtZW50RG9tYWluOwogICAgIGNh
c2Uga1dLSFRUUENvb2tpZUFjY2VwdFBvbGljeUV4Y2x1c2l2ZWx5RnJvbU1haW5Eb2N1bWVudERv
bWFpbjoKLSAgICAgICAgcmV0dXJuIEhUVFBDb29raWVBY2NlcHRQb2xpY3k6OkV4Y2x1c2l2ZWx5
RnJvbU1haW5Eb2N1bWVudERvbWFpbjsKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkhUVFBDb29r
aWVBY2NlcHRQb2xpY3k6OkV4Y2x1c2l2ZWx5RnJvbU1haW5Eb2N1bWVudERvbWFpbjsKICAgICB9
CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gSFRUUENvb2tpZUFjY2Vw
dFBvbGljeTo6QWx3YXlzQWNjZXB0OworICAgIHJldHVybiBXZWJDb3JlOjpIVFRQQ29va2llQWNj
ZXB0UG9saWN5OjpBbHdheXNBY2NlcHQ7CiB9CiAKLWlubGluZSBXS0hUVFBDb29raWVBY2NlcHRQ
b2xpY3kgdG9BUEkoSFRUUENvb2tpZUFjY2VwdFBvbGljeSBwb2xpY3kpCitpbmxpbmUgV0tIVFRQ
Q29va2llQWNjZXB0UG9saWN5IHRvQVBJKFdlYkNvcmU6OkhUVFBDb29raWVBY2NlcHRQb2xpY3kg
cG9saWN5KQogewogICAgIHN3aXRjaCAocG9saWN5KSB7Ci0gICAgY2FzZSBIVFRQQ29va2llQWNj
ZXB0UG9saWN5OjpBbHdheXNBY2NlcHQ6CisgICAgY2FzZSBXZWJDb3JlOjpIVFRQQ29va2llQWNj
ZXB0UG9saWN5OjpBbHdheXNBY2NlcHQ6CiAgICAgICAgIHJldHVybiBrV0tIVFRQQ29va2llQWNj
ZXB0UG9saWN5QWx3YXlzOwotICAgIGNhc2UgSFRUUENvb2tpZUFjY2VwdFBvbGljeTo6TmV2ZXI6
CisgICAgY2FzZSBXZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0UG9saWN5OjpOZXZlcjoKICAgICAg
ICAgcmV0dXJuIGtXS0hUVFBDb29raWVBY2NlcHRQb2xpY3lOZXZlcjsKLSAgICBjYXNlIEhUVFBD
b29raWVBY2NlcHRQb2xpY3k6Ok9ubHlGcm9tTWFpbkRvY3VtZW50RG9tYWluOgorICAgIGNhc2Ug
V2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBvbGljeTo6T25seUZyb21NYWluRG9jdW1lbnREb21h
aW46CiAgICAgICAgIHJldHVybiBrV0tIVFRQQ29va2llQWNjZXB0UG9saWN5T25seUZyb21NYWlu
RG9jdW1lbnREb21haW47Ci0gICAgY2FzZSBIVFRQQ29va2llQWNjZXB0UG9saWN5OjpFeGNsdXNp
dmVseUZyb21NYWluRG9jdW1lbnREb21haW46CisgICAgY2FzZSBXZWJDb3JlOjpIVFRQQ29va2ll
QWNjZXB0UG9saWN5OjpFeGNsdXNpdmVseUZyb21NYWluRG9jdW1lbnREb21haW46CiAgICAgICAg
IHJldHVybiBrV0tIVFRQQ29va2llQWNjZXB0UG9saWN5RXhjbHVzaXZlbHlGcm9tTWFpbkRvY3Vt
ZW50RG9tYWluOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL0FQSUhUVFBDb29raWVTdG9yZUNvY29hLm1tIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL0FQSUhUVFBDb29raWVTdG9yZUNvY29hLm1tCmluZGV4IGFkMTk2NzYx
ZDQ4NDAyMWFiYjYzZmM5ZDVlZDA3ZWQ2NWZmZTQ0Y2IuLjc5MTIwMWM0NzdlNWQ4YTE3MTc0MTNm
MDIxZTJiZjc1MjU2MzY4Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9BUElIVFRQQ29va2llU3RvcmVDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvQVBJSFRUUENvb2tpZVN0b3JlQ29jb2EubW0KQEAgLTI4LDYgKzI4
LDcgQEAKIAogI2luY2x1ZGUgPFdlYkNvcmUvQ29va2llLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9D
b29raWVTdG9yYWdlT2JzZXJ2ZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0hUVFBDb29raWVBY2Nl
cHRQb2xpY3kuaD4KICNpbmNsdWRlIDxwYWwvc3BpL2NmL0NGTmV0d29ya1NQSS5oPgogCiBuYW1l
c3BhY2UgQVBJIHsKQEAgLTc1LDIzICs3NiwyMyBAQCB2b2lkIEhUVFBDb29raWVTdG9yZTo6ZGVs
ZXRlQ29va2llc0luRGVmYXVsdFVJUHJvY2Vzc0Nvb2tpZVN0b3JlKCkKICAgICBbW05TSFRUUENv
b2tpZVN0b3JhZ2Ugc2hhcmVkSFRUUENvb2tpZVN0b3JhZ2VdIHJlbW92ZUNvb2tpZXNTaW5jZURh
dGU6W05TRGF0ZSBkaXN0YW50UGFzdF1dOwogfQogCi1zdGF0aWMgTlNIVFRQQ29va2llQWNjZXB0
UG9saWN5IHRvTlNIVFRQQ29va2llQWNjZXB0UG9saWN5KFdlYktpdDo6SFRUUENvb2tpZUFjY2Vw
dFBvbGljeSBwb2xpY3kpCitzdGF0aWMgTlNIVFRQQ29va2llQWNjZXB0UG9saWN5IHRvTlNIVFRQ
Q29va2llQWNjZXB0UG9saWN5KFdlYkNvcmU6OkhUVFBDb29raWVBY2NlcHRQb2xpY3kgcG9saWN5
KQogewogICAgIHN3aXRjaCAocG9saWN5KSB7Ci0gICAgY2FzZSBXZWJLaXQ6OkhUVFBDb29raWVB
Y2NlcHRQb2xpY3k6OkFsd2F5c0FjY2VwdDoKKyAgICBjYXNlIFdlYkNvcmU6OkhUVFBDb29raWVB
Y2NlcHRQb2xpY3k6OkFsd2F5c0FjY2VwdDoKICAgICAgICAgcmV0dXJuIE5TSFRUUENvb2tpZUFj
Y2VwdFBvbGljeUFsd2F5czsKLSAgICBjYXNlIFdlYktpdDo6SFRUUENvb2tpZUFjY2VwdFBvbGlj
eTo6TmV2ZXI6CisgICAgY2FzZSBXZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0UG9saWN5OjpOZXZl
cjoKICAgICAgICAgcmV0dXJuIE5TSFRUUENvb2tpZUFjY2VwdFBvbGljeU5ldmVyOwotICAgIGNh
c2UgV2ViS2l0OjpIVFRQQ29va2llQWNjZXB0UG9saWN5OjpPbmx5RnJvbU1haW5Eb2N1bWVudERv
bWFpbjoKKyAgICBjYXNlIFdlYkNvcmU6OkhUVFBDb29raWVBY2NlcHRQb2xpY3k6Ok9ubHlGcm9t
TWFpbkRvY3VtZW50RG9tYWluOgogICAgICAgICByZXR1cm4gTlNIVFRQQ29va2llQWNjZXB0UG9s
aWN5T25seUZyb21NYWluRG9jdW1lbnREb21haW47Ci0gICAgY2FzZSBXZWJLaXQ6OkhUVFBDb29r
aWVBY2NlcHRQb2xpY3k6OkV4Y2x1c2l2ZWx5RnJvbU1haW5Eb2N1bWVudERvbWFpbjoKKyAgICBj
YXNlIFdlYkNvcmU6OkhUVFBDb29raWVBY2NlcHRQb2xpY3k6OkV4Y2x1c2l2ZWx5RnJvbU1haW5E
b2N1bWVudERvbWFpbjoKICAgICAgICAgcmV0dXJuIChOU0hUVFBDb29raWVBY2NlcHRQb2xpY3kp
TlNIVFRQQ29va2llQWNjZXB0UG9saWN5RXhjbHVzaXZlbHlGcm9tTWFpbkRvY3VtZW50RG9tYWlu
OwogICAgIH0KICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICByZXR1cm4gTlNIVFRQQ29v
a2llQWNjZXB0UG9saWN5QWx3YXlzOwogfQogCi12b2lkIEhUVFBDb29raWVTdG9yZTo6c2V0SFRU
UENvb2tpZUFjY2VwdFBvbGljeUluRGVmYXVsdFVJUHJvY2Vzc0Nvb2tpZVN0b3JlKFdlYktpdDo6
SFRUUENvb2tpZUFjY2VwdFBvbGljeSBwb2xpY3kpCit2b2lkIEhUVFBDb29raWVTdG9yZTo6c2V0
SFRUUENvb2tpZUFjY2VwdFBvbGljeUluRGVmYXVsdFVJUHJvY2Vzc0Nvb2tpZVN0b3JlKFdlYkNv
cmU6OkhUVFBDb29raWVBY2NlcHRQb2xpY3kgcG9saWN5KQogewogICAgIFtbTlNIVFRQQ29va2ll
U3RvcmFnZSBzaGFyZWRIVFRQQ29va2llU3RvcmFnZV0gc2V0Q29va2llQWNjZXB0UG9saWN5OnRv
TlNIVFRQQ29va2llQWNjZXB0UG9saWN5KHBvbGljeSldOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLSFRUUENvb2tpZVN0b3JlLm1tIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLSFRUUENvb2tpZVN0b3JlLm1tCmluZGV4IDgx
ZDM3MDNiMGVlYTgyZTVlNmM2MmYzMjIyYWM0ZTY4MTlmNmIzYTYuLjliNDY2M2M0Y2FiNjg0ZTNk
NzRjOTY1NjM4ZmIyZTJmYzY4M2I4MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS0hUVFBDb29raWVTdG9yZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tIVFRQQ29va2llU3RvcmUubW0KQEAgLTI2LDggKzI2LDggQEAK
ICNpbXBvcnQgImNvbmZpZy5oIgogI2ltcG9ydCAiV0tIVFRQQ29va2llU3RvcmVJbnRlcm5hbC5o
IgogCi0jaW1wb3J0ICJIVFRQQ29va2llQWNjZXB0UG9saWN5LmgiCiAjaW1wb3J0IDxXZWJDb3Jl
L0Nvb2tpZS5oPgorI2ltcG9ydCA8V2ViQ29yZS9IVFRQQ29va2llQWNjZXB0UG9saWN5Lmg+CiAj
aW1wb3J0IDxwYWwvc3BpL2NmL0NGTmV0d29ya1NQSS5oPgogI2ltcG9ydCA8d3RmL0hhc2hNYXAu
aD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1tIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2wubW0KaW5kZXggMDhlNWI5ZjAxMzVlYWZlMWFh
OGY0ZGU0YTgyYjZiODkwYmI5MTliMy4uM2ZmY2ZiODkzMzdmZjA5NDQ5ZjhhYTlmMjhmZGZiY2Q0
MmViZmU0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
UHJvY2Vzc1Bvb2wubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
UHJvY2Vzc1Bvb2wubW0KQEAgLTIwMCwyMSArMjAwLDIxIEBAIC0gKHZvaWQpX3NldENhbkhhbmRs
ZUhUVFBTU2VydmVyVHJ1c3RFdmFsdWF0aW9uOihCT09MKXZhbHVlCiB7CiB9CiAKLXN0YXRpYyBX
ZWJLaXQ6OkhUVFBDb29raWVBY2NlcHRQb2xpY3kgdG9IVFRQQ29va2llQWNjZXB0UG9saWN5KE5T
SFRUUENvb2tpZUFjY2VwdFBvbGljeSBwb2xpY3kpCitzdGF0aWMgV2ViQ29yZTo6SFRUUENvb2tp
ZUFjY2VwdFBvbGljeSB0b0hUVFBDb29raWVBY2NlcHRQb2xpY3koTlNIVFRQQ29va2llQWNjZXB0
UG9saWN5IHBvbGljeSkKIHsKICAgICBzd2l0Y2ggKHN0YXRpY19jYXN0PE5TVUludGVnZXI+KHBv
bGljeSkpIHsKICAgICBjYXNlIE5TSFRUUENvb2tpZUFjY2VwdFBvbGljeUFsd2F5czoKLSAgICAg
ICAgcmV0dXJuIFdlYktpdDo6SFRUUENvb2tpZUFjY2VwdFBvbGljeTo6QWx3YXlzQWNjZXB0Owor
ICAgICAgICByZXR1cm4gV2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBvbGljeTo6QWx3YXlzQWNj
ZXB0OwogICAgIGNhc2UgTlNIVFRQQ29va2llQWNjZXB0UG9saWN5TmV2ZXI6Ci0gICAgICAgIHJl
dHVybiBXZWJLaXQ6OkhUVFBDb29raWVBY2NlcHRQb2xpY3k6Ok5ldmVyOworICAgICAgICByZXR1
cm4gV2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBvbGljeTo6TmV2ZXI7CiAgICAgY2FzZSBOU0hU
VFBDb29raWVBY2NlcHRQb2xpY3lPbmx5RnJvbU1haW5Eb2N1bWVudERvbWFpbjoKLSAgICAgICAg
cmV0dXJuIFdlYktpdDo6SFRUUENvb2tpZUFjY2VwdFBvbGljeTo6T25seUZyb21NYWluRG9jdW1l
bnREb21haW47CisgICAgICAgIHJldHVybiBXZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0UG9saWN5
OjpPbmx5RnJvbU1haW5Eb2N1bWVudERvbWFpbjsKICAgICBjYXNlIE5TSFRUUENvb2tpZUFjY2Vw
dFBvbGljeUV4Y2x1c2l2ZWx5RnJvbU1haW5Eb2N1bWVudERvbWFpbjoKLSAgICAgICAgcmV0dXJu
IFdlYktpdDo6SFRUUENvb2tpZUFjY2VwdFBvbGljeTo6RXhjbHVzaXZlbHlGcm9tTWFpbkRvY3Vt
ZW50RG9tYWluOworICAgICAgICByZXR1cm4gV2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBvbGlj
eTo6RXhjbHVzaXZlbHlGcm9tTWFpbkRvY3VtZW50RG9tYWluOwogICAgIH0KIAogICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiBXZWJLaXQ6OkhUVFBDb29raWVBY2NlcHRQb2xp
Y3k6OkFsd2F5c0FjY2VwdDsKKyAgICByZXR1cm4gV2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBv
bGljeTo6QWx3YXlzQWNjZXB0OwogfQogCiAtICh2b2lkKV9zZXRDb29raWVBY2NlcHRQb2xpY3k6
KE5TSFRUUENvb2tpZUFjY2VwdFBvbGljeSlwb2xpY3kKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCmluZGV4IDljYjkw
ZjE4YzU0MmM2YWE1NmZhZWI2MDA3ZDI2ZmRmMWQwYmVhOGUuLmJhMTZlMzI2MDViMjBhZTYyZTM3
Njk3ZDEwYWM5OGE1NDFlMTczZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcApAQCAtMTQ3LDcgKzE0Nyw3IEBA
IHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6Z2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKFdl
YlByb2Nlc3NQcm94eSYgd2ViUHJvY2VzCiAKIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6b3Bl
bk5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbih1aW50NjRfdCBjb25uZWN0aW9uUmVxdWVzdElkZW50
aWZpZXIsIFdlYlByb2Nlc3NQcm94eSYgd2ViUHJvY2Vzc1Byb3h5KQogewotICAgIGNvbm5lY3Rp
b24oKS0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6Q3JlYXRl
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MgeyB3ZWJQcm9jZXNzUHJveHkuY29yZVByb2Nl
c3NJZGVudGlmaWVyKCksIHdlYlByb2Nlc3NQcm94eS5zZXNzaW9uSUQoKSB9LCBbdGhpcywgd2Vh
a1RoaXMgPSBtYWtlV2Vha1B0cih0aGlzKSwgd2ViUHJvY2Vzc1Byb3h5ID0gbWFrZVdlYWtQdHIo
d2ViUHJvY2Vzc1Byb3h5KSwgY29ubmVjdGlvblJlcXVlc3RJZGVudGlmaWVyXShhdXRvJiYgY29u
bmVjdGlvbklkZW50aWZpZXIpIG11dGFibGUgeworICAgIGNvbm5lY3Rpb24oKS0+c2VuZFdpdGhB
c3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6Q3JlYXRlTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MgeyB3ZWJQcm9jZXNzUHJveHkuY29yZVByb2Nlc3NJZGVudGlmaWVyKCks
IHdlYlByb2Nlc3NQcm94eS5zZXNzaW9uSUQoKSB9LCBbdGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vh
a1B0cih0aGlzKSwgd2ViUHJvY2Vzc1Byb3h5ID0gbWFrZVdlYWtQdHIod2ViUHJvY2Vzc1Byb3h5
KSwgY29ubmVjdGlvblJlcXVlc3RJZGVudGlmaWVyXShhdXRvJiYgY29ubmVjdGlvbklkZW50aWZp
ZXIsIEhUVFBDb29raWVBY2NlcHRQb2xpY3kgY29va2llQWNjZXB0UG9saWN5KSBtdXRhYmxlIHsK
ICAgICAgICAgaWYgKCF3ZWFrVGhpcykKICAgICAgICAgICAgIHJldHVybjsKIApAQCAtMTYxLDEw
ICsxNjEsMTAgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpvcGVuTmV0d29ya1Byb2Nlc3ND
b25uZWN0aW9uKHVpbnQ2NF90IGNvbm5lY3Rpb25SZXF1ZXMKICAgICAgICAgYXV0byByZXF1ZXN0
ID0gbV9jb25uZWN0aW9uUmVxdWVzdHMudGFrZShjb25uZWN0aW9uUmVxdWVzdElkZW50aWZpZXIp
OwogCiAjaWYgVVNFKFVOSVhfRE9NQUlOX1NPQ0tFVFMpIHx8IE9TKFdJTkRPV1MpCi0gICAgICAg
IHJlcXVlc3QucmVwbHkoTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uSW5mbyB7IFdURk1vdmUoKmNv
bm5lY3Rpb25JZGVudGlmaWVyKSB9KTsKKyAgICAgICAgcmVxdWVzdC5yZXBseShOZXR3b3JrUHJv
Y2Vzc0Nvbm5lY3Rpb25JbmZvIHsgV1RGTW92ZSgqY29ubmVjdGlvbklkZW50aWZpZXIpLCBjb29r
aWVBY2NlcHRQb2xpY3kgfSk7CiAjZWxpZiBPUyhEQVJXSU4pCiAgICAgICAgIE1FU1NBR0VfQ0hF
Q0soTUFDSF9QT1JUX1ZBTElEKGNvbm5lY3Rpb25JZGVudGlmaWVyLT5wb3J0KCkpKTsKLSAgICAg
ICAgcmVxdWVzdC5yZXBseShOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25JbmZvIHsgSVBDOjpBdHRh
Y2htZW50IHsgY29ubmVjdGlvbklkZW50aWZpZXItPnBvcnQoKSwgTUFDSF9NU0dfVFlQRV9NT1ZF
X1NFTkQgfSwgY29ubmVjdGlvbigpLT5nZXRBdWRpdFRva2VuKCkgfSk7CisgICAgICAgIHJlcXVl
c3QucmVwbHkoTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uSW5mbyB7IElQQzo6QXR0YWNobWVudCB7
IGNvbm5lY3Rpb25JZGVudGlmaWVyLT5wb3J0KCksIE1BQ0hfTVNHX1RZUEVfTU9WRV9TRU5EIH0s
IGNvb2tpZUFjY2VwdFBvbGljeSwgY29ubmVjdGlvbigpLT5nZXRBdWRpdFRva2VuKCkgfSk7CiAj
ZWxzZQogICAgICAgICBub3RJbXBsZW1lbnRlZCgpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eS5oCmluZGV4IDU4YjgyZmQxMGM4YzI2
MjE1NDg5MDFiMTM1ZDVmZTlhOGQ5NzViZDQuLjBiZGZjMGQ0ZTQ3YzQzNmY1ODVjZjI5YzA5ZDUx
YTI5YmM4MTFhOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvb2tp
ZU1hbmFnZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvb2tpZU1h
bmFnZXJQcm94eS5oCkBAIC01Myw3ICs1Myw3IEBAIGNsYXNzIFdlYlByb2Nlc3NQb29sOwogY2xh
c3MgV2ViUHJvY2Vzc1Byb3h5OwogCiB0eXBlZGVmIEdlbmVyaWNDYWxsYmFjazxBUEk6OkFycmF5
Kj4gQXJyYXlDYWxsYmFjazsKLXR5cGVkZWYgR2VuZXJpY0NhbGxiYWNrPEhUVFBDb29raWVBY2Nl
cHRQb2xpY3k+IEhUVFBDb29raWVBY2NlcHRQb2xpY3lDYWxsYmFjazsKK3R5cGVkZWYgR2VuZXJp
Y0NhbGxiYWNrPFdlYkNvcmU6OkhUVFBDb29raWVBY2NlcHRQb2xpY3k+IEhUVFBDb29raWVBY2Nl
cHRQb2xpY3lDYWxsYmFjazsKIHR5cGVkZWYgR2VuZXJpY0NhbGxiYWNrPGNvbnN0IFZlY3RvcjxX
ZWJDb3JlOjpDb29raWU+Jj4gR2V0Q29va2llc0NhbGxiYWNrOwogCiBjbGFzcyBXZWJDb29raWVN
YW5hZ2VyUHJveHkgOiBwdWJsaWMgQVBJOjpPYmplY3RJbXBsPEFQSTo6T2JqZWN0OjpUeXBlOjpD
b29raWVNYW5hZ2VyPiwgcHVibGljIFdlYkNvbnRleHRTdXBwbGVtZW50LCBwcml2YXRlIElQQzo6
TWVzc2FnZVJlY2VpdmVyIHsKQEAgLTc3LDggKzc3LDggQEAgcHVibGljOgogICAgIHZvaWQgZ2V0
QWxsQ29va2llcyhQQUw6OlNlc3Npb25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8
V2ViQ29yZTo6Q29va2llPiYmKT4mJik7CiAgICAgdm9pZCBnZXRDb29raWVzKFBBTDo6U2Vzc2lv
bklELCBjb25zdCBVUkwmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFZlY3RvcjxXZWJDb3JlOjpD
b29raWU+JiYpPiYmKTsKIAotICAgIHZvaWQgc2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShQQUw6
OlNlc3Npb25JRCwgSFRUUENvb2tpZUFjY2VwdFBvbGljeSwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZCgpPiYmKTsKLSAgICB2b2lkIGdldEhUVFBDb29raWVBY2NlcHRQb2xpY3koUEFMOjpTZXNzaW9u
SUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoSFRUUENvb2tpZUFjY2VwdFBvbGljeSk+JiYpOwor
ICAgIHZvaWQgc2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShQQUw6OlNlc3Npb25JRCwgV2ViQ29y
ZTo6SFRUUENvb2tpZUFjY2VwdFBvbGljeSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsK
KyAgICB2b2lkIGdldEhUVFBDb29raWVBY2NlcHRQb2xpY3koUEFMOjpTZXNzaW9uSUQsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBvbGljeSk+JiYpOwog
CiAgICAgdm9pZCBzdGFydE9ic2VydmluZ0Nvb2tpZUNoYW5nZXMoUEFMOjpTZXNzaW9uSUQpOwog
ICAgIHZvaWQgc3RvcE9ic2VydmluZ0Nvb2tpZUNoYW5nZXMoUEFMOjpTZXNzaW9uSUQpOwpAQCAt
MTE5LDcgKzExOSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6
OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBvdmVycmlkZTsKIAogI2lmIFBMQVRGT1JNKENP
Q09BKQotICAgIHZvaWQgcGVyc2lzdEhUVFBDb29raWVBY2NlcHRQb2xpY3koSFRUUENvb2tpZUFj
Y2VwdFBvbGljeSk7CisgICAgdm9pZCBwZXJzaXN0SFRUUENvb2tpZUFjY2VwdFBvbGljeShXZWJD
b3JlOjpIVFRQQ29va2llQWNjZXB0UG9saWN5KTsKICNlbmRpZgogCiAgICAgSGFzaE1hcDxQQUw6
OlNlc3Npb25JRCwgV1RGOjpGdW5jdGlvbjx2b2lkICgpPj4gbV9sZWdhY3lDb29raWVPYnNlcnZl
cnM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAppbmRleCAxZGJkMTgx
ZDQxM2U4ZmJhNDA1ZDgxYmMwYTRmOTRlNGU3OTYyYjk4Li5hNTAxZGUzNzM3NWQ3ODA4ZWIzMmQx
NjBlZTNmNDE1OTgwOTBhOGQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQcm9jZXNzUG9vbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
b29sLmgKQEAgLTI5NCw3ICsyOTQsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzdG9wTWVtb3J5U2Ft
cGxlcigpOwogCiAjaWYgVVNFKFNPVVApCi0gICAgdm9pZCBzZXRJbml0aWFsSFRUUENvb2tpZUFj
Y2VwdFBvbGljeShIVFRQQ29va2llQWNjZXB0UG9saWN5IHBvbGljeSkgeyBtX2luaXRpYWxIVFRQ
Q29va2llQWNjZXB0UG9saWN5ID0gcG9saWN5OyB9CisgICAgdm9pZCBzZXRJbml0aWFsSFRUUENv
b2tpZUFjY2VwdFBvbGljeShXZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0UG9saWN5IHBvbGljeSkg
eyBtX2luaXRpYWxIVFRQQ29va2llQWNjZXB0UG9saWN5ID0gcG9saWN5OyB9CiAgICAgdm9pZCBz
ZXROZXR3b3JrUHJveHlTZXR0aW5ncyhjb25zdCBXZWJDb3JlOjpTb3VwTmV0d29ya1Byb3h5U2V0
dGluZ3MmKTsKICNlbmRpZgogICAgIHZvaWQgc2V0RW5oYW5jZWRBY2Nlc3NpYmlsaXR5KGJvb2wp
OwpAQCAtNjc3LDcgKzY3Nyw3IEBAIHByaXZhdGU6CiAgICAgV2ViQ29udGV4dFN1cHBsZW1lbnRN
YXAgbV9zdXBwbGVtZW50czsKIAogI2lmIFVTRShTT1VQKQotICAgIEhUVFBDb29raWVBY2NlcHRQ
b2xpY3kgbV9pbml0aWFsSFRUUENvb2tpZUFjY2VwdFBvbGljeSB7IEhUVFBDb29raWVBY2NlcHRQ
b2xpY3k6Ok9ubHlGcm9tTWFpbkRvY3VtZW50RG9tYWluIH07CisgICAgSFRUUENvb2tpZUFjY2Vw
dFBvbGljeSBtX2luaXRpYWxIVFRQQ29va2llQWNjZXB0UG9saWN5IHsgV2ViQ29yZTo6SFRUUENv
b2tpZUFjY2VwdFBvbGljeTo6T25seUZyb21NYWluRG9jdW1lbnREb21haW4gfTsKICAgICBXZWJD
b3JlOjpTb3VwTmV0d29ya1Byb3h5U2V0dGluZ3MgbV9uZXR3b3JrUHJveHlTZXR0aW5nczsKICNl
bmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViQ29va2ll
TWFuYWdlclByb3h5TWFjLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYkNvb2tp
ZU1hbmFnZXJQcm94eU1hYy5tbQppbmRleCBlZWQ5N2FiZWQ2MDNhM2RjYmUxMWI3OTcyZjQ3MTAx
YjliOTRlNzI4Li44ODk1ZjYwZDJlY2Q2Njk4NTE1M2E3Mjk0MWE3YmUxZmU2MzAxYjU0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViQ29va2llTWFuYWdlclByb3h5
TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJDb29raWVNYW5hZ2Vy
UHJveHlNYWMubW0KQEAgLTMxLDcgKzMxLDcgQEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLXZv
aWQgV2ViQ29va2llTWFuYWdlclByb3h5OjpwZXJzaXN0SFRUUENvb2tpZUFjY2VwdFBvbGljeShI
VFRQQ29va2llQWNjZXB0UG9saWN5IHBvbGljeSkKK3ZvaWQgV2ViQ29va2llTWFuYWdlclByb3h5
OjpwZXJzaXN0SFRUUENvb2tpZUFjY2VwdFBvbGljeShXZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0
UG9saWN5IHBvbGljeSkKIHsKICAgICBBU1NFUlQoaGFzUHJvY2Vzc1ByaXZpbGVnZShQcm9jZXNz
UHJpdmlsZWdlOjpDYW5BY2Nlc3NSYXdDb29raWVzKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dl
YktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDZhZGVhNTg1MGY4ODY0M2FmNzBm
ODk1MDMxYjM4NjE1NmIyZTQzZjguLmU4Nzg3ODk5ZWYwMmZmMGViOGY0NWYwZTExZjI2MzdiM2Rj
ZjBiN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagpAQCAtODgyLDcgKzg4Miw2IEBACiAJCTM3REZBNzAwMTgxMEJCOTIwMDFGNEE5RiAvKiBX
S0ZvdW5kYXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDM3REZBNkZGMTgxMEJCOTIwMDFGNEE5RiAvKiBXS0ZvdW5kYXRpb24uaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQdWJsaWMsICk7IH07IH07CiAJCTM3RTI1RDZFMThGREU1RDYw
MDVEM0EwMCAvKiBBUElGb3JtQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAzN0UyNUQ2RDE4RkRFNUQ2MDA1RDNBMDAgLyogQVBJRm9ybUNsaWVu
dC5oICovOyB9OwogCQkzN0Y2MjNCODEyQTU3QjYyMDBFM0ZERjYgLyogV0tGaW5kT3B0aW9ucy5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzdGNjIzQjcx
MkE1N0I2MjAwRTNGREY2IC8qIFdLRmluZE9wdGlvbnMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQkzN0Y5MERFMzEzNzY1NjBFMDA1MUNGNjggLyog
SFRUUENvb2tpZUFjY2VwdFBvbGljeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRjYzODk1NEYxMzNCRUYzODAwODk0MUQ1IC8qIEhUVFBDb29raWVBY2Nl
cHRQb2xpY3kuaCAqLzsgfTsKIAkJMzdGQzE5NDcxODUwRkJGMjAwOENGQTQ3IC8qIFdLQnJvd3Np
bmdDb250ZXh0TG9hZERlbGVnYXRlUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMzdGQzE5NDYxODUwRkJGMjAwOENGQTQ3IC8qIFdLQnJvd3Np
bmdDb250ZXh0TG9hZERlbGVnYXRlUHJpdmF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTM3RkMxOTRCMTg1MTBENkEwMDhDRkE0NyAvKiBXS05T
VVJMQXV0aGVudGljYXRpb25DaGFsbGVuZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDM3RkMxOTQ5MTg1MTBENkEwMDhDRkE0NyAvKiBXS05TVVJMQXV0
aGVudGljYXRpb25DaGFsbGVuZ2UuaCAqLzsgfTsKIAkJM0Y0MThFRjkxODg3QkQ5NzAwMjc5NUZE
IC8qIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gM0Y0MThFRjUxODg3QkQ5NzAwMjc5
NUZEIC8qIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OwpA
QCAtMjExOSw5ICsyMTE4LDkgQEAKIAkJMDdCOTNGRjUyM0FGMENCODAwMzZGOEVBIC8qIFJlbW90
ZU1lZGlhUGxheWVyQ29uZmlndXJhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVNZWRpYVBs
YXllckNvbmZpZ3VyYXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDdCQUYz
NTYyM0EyQ0MxNzAwNDQyNTdFIC8qIFJlbW90ZU1lZGlhUGxheWVyUHJveHkuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkwN0JBRjM1NzIzQTJDQzE5MDA0NDI1N0UgLyogUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVNZWRpYVBsYXllclByb3h5LmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMDdFMTlFRjgyM0Q0MDFGMDAwOTRGRkI0IC8qIE1lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IG5hbWUgPSBNZWRpYVBsYXllclByaXZhdGVSZW1vdGVNZXNzYWdlUmVjZWl2
ZXIuY3BwOyBwYXRoID0gTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlTWVzc2FnZVJlY2VpdmVyLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMDdFMTlFRjkyM0Q0MDFGMDAwOTRGRkI0
IC8qIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZU1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgbmFtZSA9IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZU1lc3NhZ2VzLmg7IHBhdGgg
PSBNZWRpYVBsYXllclByaXZhdGVSZW1vdGVNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwotCQkwN0UxOUVGQTIzRDQwMUYwMDA5NEZGQjQgLyogTWVkaWFQbGF5ZXJQcml2YXRl
UmVtb3RlTWVzc2FnZXNSZXBsaWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9
IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZU1lc3NhZ2VzUmVwbGllcy5oOyBwYXRoID0gTWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlTWVzc2FnZXNSZXBsaWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTA3RTE5RUY4MjNENDAxRjAwMDk0RkZCNCAvKiBNZWRpYVBsYXllclByaXZhdGVS
ZW1vdGVNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDdFMTlFRjkyM0Q0MDFGMDAwOTRGRkI0IC8qIE1lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZU1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZU1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTA3RTE5RUZBMjNENDAxRjAwMDk0RkZCNCAvKiBNZWRpYVBsYXllclBy
aXZhdGVSZW1vdGVNZXNzYWdlc1JlcGxpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlTWVzc2FnZXNSZXBsaWVzLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA4NjdENkE1RkU4NDAzMDdDMDJBQUMwNyAvKiBBcHBLaXQu
ZnJhbWV3b3JrICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gd3JhcHBlci5mcmFtZXdvcms7IG5hbWUgPSBBcHBLaXQuZnJhbWV3b3JrOyBwYXRoID0gL1N5
c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXBwS2l0LmZyYW1ld29yazsgc291cmNlVHJlZSA9ICI8
YWJzb2x1dGU+IjsgfTsKIAkJMDg5QzE2NjdGRTg0MTE1OEMwMkFBQzA3IC8qIGVuICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dC5wbGlzdC5zdHJpbmdzOyBuYW1lID0gZW47IHBhdGggPSBlbi5scHJvai9JbmZvUGxp
c3Quc3RyaW5nczsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEU5N0Q3NEMyMDBFOEZG
MzAwQkY2NjQzIC8qIFNhZmVCcm93c2luZ1NQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTYWZlQnJvd3Np
bmdTUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTUxMzAsNyArNTEyOSw2IEBA
CiAJCUY2MTEzRTI2MTI2Q0UxOUIwMDU3RDBBNyAvKiBXS1VzZXJDb250ZW50VVJMUGF0dGVybi5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXS1VzZXJDb250ZW50VVJM
UGF0dGVybi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY2MTEzRTI3MTI2Q0Ux
OUIwMDU3RDBBNyAvKiBXS1VzZXJDb250ZW50VVJMUGF0dGVybi5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBXS1VzZXJDb250ZW50VVJMUGF0dGVybi5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlGNjM0NDQ1NTEyQTg4NUM4MDAwNjEyRDggLyogQVBJU2VjdXJpdHlP
cmlnaW4uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQVBJU2VjdXJpdHlPcmln
aW4uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRjYzODk1NEYxMzNCRUYzODAwODk0
MUQ1IC8qIEhUVFBDb29raWVBY2NlcHRQb2xpY3kuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gSFRUUENvb2tpZUFjY2VwdFBvbGljeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlGNkEwQzEzRjEzMjgxRTZFMDA3MDQzMEYgLyogUmVzb3VyY2VDYWNoZXNUb0NsZWFy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlc291cmNlQ2FjaGVzVG9DbGVh
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNkE5MDgxMTEzM0MxRjNEMDA4MkMz
RjQgLyogV2ViQ29va2llTWFuYWdlck1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgcGF0aCA9IFdlYkNvb2tpZU1hbmFnZXJNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUY2RDYzMkJBMTMzRDE4MUIwMDc0M0Q3NyAvKiBXZWJDb29raWVNYW5hZ2VyUHJv
eHlNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJDb29r
aWVNYW5hZ2VyUHJveHlNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC01Njk3
LDcgKzU2OTUsNiBAQAogCQkJCTFBMTRGOERGMUQ3NEM4MzQwMDZDQkVDNiAvKiBGcmFtZUluZm9E
YXRhLmNwcCAqLywKIAkJCQkxQTE0RjhFMDFENzRDODM0MDA2Q0JFQzYgLyogRnJhbWVJbmZvRGF0
YS5oICovLAogCQkJCTFBQzc1QTFBMUIzMzY4MjcwMDU2NzQ1QiAvKiBIYW5nRGV0ZWN0aW9uRGlz
YWJsZXIuaCAqLywKLQkJCQlGNjM4OTU0RjEzM0JFRjM4MDA4OTQxRDUgLyogSFRUUENvb2tpZUFj
Y2VwdFBvbGljeS5oICovLAogCQkJCUJDQ0Y2QjIzMTJDOTNFN0EwMDhGOUMzNSAvKiBJbWFnZU9w
dGlvbnMuaCAqLywKIAkJCQkxQTkyREMxMjEyRjhCQUI5MDAxN0FGNjUgLyogTGF5ZXJUcmVlQ29u
dGV4dC5jcHAgKi8sCiAJCQkJMUE5MkRDMTAxMkY4QkE0NjAwMTdBRjY1IC8qIExheWVyVHJlZUNv
bnRleHQuaCAqLywKQEAgLTEwMjE4LDcgKzEwMjE1LDYgQEAKIAkJCQk1NzcyRjIwNjIxN0RCRDZB
MDA1NkJGMkMgLyogSGlkU2VydmljZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzEyQ0M5RjIyMTVC
MDZGMTAwREU0MENBIC8qIEhpZ2hQZXJmb3JtYW5jZUdQVU1hbmFnZXIuaCBpbiBIZWFkZXJzICov
LAogCQkJCTgzOUEyRjMyMUUyMDY3NDUwMDM5MDU3RSAvKiBIaWdoUGVyZm9ybWFuY2VHcmFwaGlj
c1VzYWdlU2FtcGxlci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMzdGOTBERTMxMzc2NTYwRTAwNTFD
RjY4IC8qIEhUVFBDb29raWVBY2NlcHRQb2xpY3kuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxQzBD
OTc0MURERDc2MDAwMDMyQ0FEMyAvKiBJY29uTG9hZGluZ0RlbGVnYXRlLmggaW4gSGVhZGVycyAq
LywKIAkJCQk1MUUzNTFDQjE4MEYyQ0NDMDBFNTNCRTkgLyogSURCVXRpbGl0aWVzLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlCQ0NGNkIyNTEyQzkzRTdBMDA4RjlDMzUgLyogSW1hZ2VPcHRpb25zLmgg
aW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3
b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCmluZGV4IGZkMDBkNzg2NGI1
YTUzZmI3NDMwZTE2Yjg3MGNhNjJjYjAwYWRkYTQuLjFlNzAzNTRmNmI3MTQxOTYwMmQ5NGIwZjU0
MzMxMzJhNjM0MTE4NzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3
b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmNwcApAQCAtNTYsNiArNTYs
NyBAQAogI2luY2x1ZGUgIldlYlNvY2tldFN0cmVhbS5oIgogI2luY2x1ZGUgIldlYlNvY2tldFN0
cmVhbU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9DYWNoZWRSZXNvdXJjZS5oPgorI2lu
Y2x1ZGUgPFdlYkNvcmUvSFRUUENvb2tpZUFjY2VwdFBvbGljeS5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvTWVtb3J5Q2FjaGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL01lc3NhZ2VQb3J0Lmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9TaGFyZWRCdWZmZXIuaD4KQEAgLTY4LDggKzY5LDkgQEAKIG5hbWVzcGFj
ZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKLU5ldHdvcmtQcm9jZXNzQ29u
bmVjdGlvbjo6TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbjo6SWRlbnRp
ZmllciBjb25uZWN0aW9uSWRlbnRpZmllcikKK05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6TmV0
d29ya1Byb2Nlc3NDb25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciBjb25uZWN0
aW9uSWRlbnRpZmllciwgSFRUUENvb2tpZUFjY2VwdFBvbGljeSBjb29raWVBY2NlcHRQb2xpY3kp
CiAgICAgOiBtX2Nvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uOjpjcmVhdGVDbGllbnRDb25uZWN0
aW9uKGNvbm5lY3Rpb25JZGVudGlmaWVyLCAqdGhpcykpCisgICAgLCBtX2Nvb2tpZUFjY2VwdFBv
bGljeShjb29raWVBY2NlcHRQb2xpY3kpCiB7CiAgICAgbV9jb25uZWN0aW9uLT5vcGVuKCk7CiB9
CkBAIC0yMDQsNyArMjA2LDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJl
Y2VpdmVJbnZhbGlkTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OlMKIAogdm9pZCBOZXR3
b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OndyaXRlQmxvYnNUb1RlbXBvcmFyeUZpbGVzKGNvbnN0IFZl
Y3RvcjxTdHJpbmc+JiBibG9iVVJMcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8U3Ry
aW5nPiYmIGZpbGVQYXRocyk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAgV2ViUHJvY2Vz
czo6c2luZ2xldG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlv
bigpLnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3M6OldyaXRlQmxvYnNUb1RlbXBvcmFyeUZpbGVzKGJsb2JVUkxzKSwgV1RGTW92ZShjb21w
bGV0aW9uSGFuZGxlcikpOworICAgIGNvbm5lY3Rpb24oKS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVz
c2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpXcml0ZUJsb2JzVG9UZW1wb3Jh
cnlGaWxlcyhibG9iVVJMcyksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAogdm9p
ZCBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZEZpbmlzaFBpbmdMb2FkKHVpbnQ2NF90IHBp
bmdMb2FkSWRlbnRpZmllciwgUmVzb3VyY2VFcnJvciYmIGVycm9yLCBSZXNvdXJjZVJlc3BvbnNl
JiYgcmVzcG9uc2UpCkBAIC0yMjIsNiArMjI0LDE2IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NDb25u
ZWN0aW9uOjpzZXRPbkxpbmVTdGF0ZShib29sIGlzT25MaW5lKQogICAgIFdlYlByb2Nlc3M6OnNp
bmdsZXRvbigpLndlYkxvYWRlclN0cmF0ZWd5KCkuc2V0T25MaW5lU3RhdGUoaXNPbkxpbmUpOwog
fQogCitib29sIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6Y29va2llc0VuYWJsZWQoKQorewor
ICAgIHJldHVybiBtX2Nvb2tpZUFjY2VwdFBvbGljeSAhPSBIVFRQQ29va2llQWNjZXB0UG9saWN5
OjpOZXZlcjsKK30KKwordm9pZCBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OmNvb2tpZUFjY2Vw
dFBvbGljeUNoYW5nZWQoSFRUUENvb2tpZUFjY2VwdFBvbGljeSBuZXdQb2xpY3kpCit7CisgICAg
bV9jb29raWVBY2NlcHRQb2xpY3kgPSBuZXdQb2xpY3k7Cit9CisKICNpZiBFTkFCTEUoU0hBUkVB
QkxFX1JFU09VUkNFKQogdm9pZCBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZENhY2hlUmVz
b3VyY2UoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBTaGFyZWFibGVSZXNv
dXJjZTo6SGFuZGxlJiBoYW5kbGUpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5oCmluZGV4IDJhNDk2
YTllNGU0MzM5ZWIwNTg0YWEyMjY0MjFmNjIwYjEwZGRjZGIuLmRkMTA0MTY3ZjU0MTQ4MDNhNTJh
MjI1YTNhZmVjZmZjZjk0ZDBjNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5oCkBAIC00Myw2ICs0
Myw3IEBAIGNsYXNzIFJlc291cmNlUmVxdWVzdDsKIGNsYXNzIFJlc291cmNlUmVzcG9uc2U7CiBz
dHJ1Y3QgTWVzc2FnZVBvcnRJZGVudGlmaWVyOwogc3RydWN0IE1lc3NhZ2VXaXRoTWVzc2FnZVBv
cnRzOworZW51bSBjbGFzcyBIVFRQQ29va2llQWNjZXB0UG9saWN5IDogdWludDhfdDsKIH0KIAog
bmFtZXNwYWNlIFdlYktpdCB7CkBAIC01NCw5ICs1NSw5IEBAIHR5cGVkZWYgdWludDY0X3QgUmVz
b3VyY2VMb2FkSWRlbnRpZmllcjsKIAogY2xhc3MgTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uIDog
cHVibGljIFJlZkNvdW50ZWQ8TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uPiwgSVBDOjpDb25uZWN0
aW9uOjpDbGllbnQgewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8TmV0d29ya1Byb2Nlc3NDb25u
ZWN0aW9uPiBjcmVhdGUoSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVu
dGlmaWVyKQorICAgIHN0YXRpYyBSZWY8TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uPiBjcmVhdGUo
SVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyLCBXZWJDb3Jl
OjpIVFRQQ29va2llQWNjZXB0UG9saWN5IGh0dHBDb29raWVBY2NlcHRQb2xpY3kpCiAgICAgewot
ICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oY29u
bmVjdGlvbklkZW50aWZpZXIpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTmV0d29y
a1Byb2Nlc3NDb25uZWN0aW9uKGNvbm5lY3Rpb25JZGVudGlmaWVyLCBodHRwQ29va2llQWNjZXB0
UG9saWN5KSk7CiAgICAgfQogICAgIH5OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKTsKICAgICAK
QEAgLTgwLDggKzgxLDEwIEBAIHB1YmxpYzoKICAgICBPcHRpb25hbDxhdWRpdF90b2tlbl90PiBu
ZXR3b3JrUHJvY2Vzc0F1ZGl0VG9rZW4oKSBjb25zdCB7IHJldHVybiBtX25ldHdvcmtQcm9jZXNz
QXVkaXRUb2tlbjsgfQogI2VuZGlmCiAKKyAgICBib29sIGNvb2tpZXNFbmFibGVkKCk7CisKIHBy
aXZhdGU6Ci0gICAgTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbjo6SWRl
bnRpZmllcik7CisgICAgTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbjo6
SWRlbnRpZmllciwgV2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBvbGljeSk7CiAKICAgICAvLyBJ
UEM6OkNvbm5lY3Rpb246OkNsaWVudAogICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpD
b25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgb3ZlcnJpZGU7CkBAIC05Miw2ICs5NSw3IEBAIHBy
aXZhdGU6CiAgICAgdm9pZCBkaWRGaW5pc2hQaW5nTG9hZCh1aW50NjRfdCBwaW5nTG9hZElkZW50
aWZpZXIsIFdlYkNvcmU6OlJlc291cmNlRXJyb3ImJiwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25z
ZSYmKTsKICAgICB2b2lkIGRpZEZpbmlzaFByZWNvbm5lY3Rpb24odWludDY0X3QgcHJlY29ubmVj
dGlvbklkZW50aWZpZXIsIFdlYkNvcmU6OlJlc291cmNlRXJyb3ImJik7CiAgICAgdm9pZCBzZXRP
bkxpbmVTdGF0ZShib29sIGlzT25MaW5lKTsKKyAgICB2b2lkIGNvb2tpZUFjY2VwdFBvbGljeUNo
YW5nZWQoV2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBvbGljeSk7CiAKICAgICB2b2lkIGNoZWNr
UHJvY2Vzc0xvY2FsUG9ydEZvckFjdGl2aXR5KGNvbnN0IFdlYkNvcmU6Ok1lc3NhZ2VQb3J0SWRl
bnRpZmllciYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6TWVzc2FnZVBvcnRDaGFu
bmVsUHJvdmlkZXI6Okhhc0FjdGl2aXR5KT4mJik7CiAgICAgdm9pZCBtZXNzYWdlc0F2YWlsYWJs
ZUZvclBvcnQoY29uc3QgV2ViQ29yZTo6TWVzc2FnZVBvcnRJZGVudGlmaWVyJik7CkBAIC0xMTQs
NiArMTE4LDcgQEAgcHJpdmF0ZToKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCiAgICAgUmVm
UHRyPFdlYlNXQ2xpZW50Q29ubmVjdGlvbj4gbV9zd0Nvbm5lY3Rpb247CiAjZW5kaWYKKyAgICBX
ZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0UG9saWN5IG1fY29va2llQWNjZXB0UG9saWN5OwogfTsK
IAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4gYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24ubWVz
c2FnZXMuaW4KaW5kZXggNGQ2MzRjNTdiOWM3OTk1MDQ4YTA4MGYyN2YzZTMyZTUzMDUyNmFlYi4u
MmFhNjg4NmU1N2E1OTljYmMxN2MzNWY2Yjc0ZTk5ZDJhYjNhODllNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLm1l
c3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQ
cm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgpAQCAtMjksNiArMjksNyBAQCBtZXNzYWdlcyAt
PiBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24gTGVnYWN5UmVjZWl2ZXIgewogICAgIERpZEZpbmlz
aFBpbmdMb2FkKHVpbnQ2NF90IHBpbmdMb2FkSWRlbnRpZmllciwgV2ViQ29yZTo6UmVzb3VyY2VF
cnJvciBlcnJvciwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSByZXNwb25zZSkKICAgICBEaWRG
aW5pc2hQcmVjb25uZWN0aW9uKHVpbnQ2NF90IHByZWNvbm5lY3Rpb25JZGVudGlmaWVyLCBXZWJD
b3JlOjpSZXNvdXJjZUVycm9yIGVycm9yKQogICAgIFNldE9uTGluZVN0YXRlKGJvb2wgaXNPbkxp
bmUpOworICAgIENvb2tpZUFjY2VwdFBvbGljeUNoYW5nZWQoZW51bTp1aW50OF90IFdlYkNvcmU6
OkhUVFBDb29raWVBY2NlcHRQb2xpY3kgcG9saWN5KTsKIAogICAgIENoZWNrUHJvY2Vzc0xvY2Fs
UG9ydEZvckFjdGl2aXR5KHN0cnVjdCBXZWJDb3JlOjpNZXNzYWdlUG9ydElkZW50aWZpZXIgcG9y
dCkgLT4gKFdlYkNvcmU6Ok1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyOjpIYXNBY3Rpdml0eSBo
YXNBY3Rpdml0eSkgQXN5bmMKICAgICBNZXNzYWdlc0F2YWlsYWJsZUZvclBvcnQoc3RydWN0IFdl
YkNvcmU6Ok1lc3NhZ2VQb3J0SWRlbnRpZmllciBwb3J0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uSW5mby5oIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9u
SW5mby5oCmluZGV4IDVjMDU2OGM0YWExZjljZGZkODhjMzFhM2UzZmQ3YTRjZGJjODk0YTQuLjM2
N2I4YTM4MDllMzdiMTViZGJlMGI0NmE0MTg1Njc3N2ZiYWYyZjggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbkluZm8u
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nv
bm5lY3Rpb25JbmZvLmgKQEAgLTI1LDEwICsyNSwxMyBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2lu
Y2x1ZGUgPFdlYkNvcmUvSFRUUENvb2tpZUFjY2VwdFBvbGljeS5oPgorCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKIAogc3RydWN0IE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbkluZm8gewogICAgIElQQzo6
QXR0YWNobWVudCBjb25uZWN0aW9uOworICAgIFdlYkNvcmU6OkhUVFBDb29raWVBY2NlcHRQb2xp
Y3kgY29va2llQWNjZXB0UG9saWN5OwogI2lmIEhBVkUoQVVESVRfVE9LRU4pCiAgICAgT3B0aW9u
YWw8YXVkaXRfdG9rZW5fdD4gYXVkaXRUb2tlbjsKICNlbmRpZgpAQCAtNjEsNiArNjQsNyBAQCBz
dHJ1Y3QgTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uSW5mbyB7CiAgICAgdm9pZCBlbmNvZGUoSVBD
OjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIHsKICAgICAgICAgZW5jb2RlciA8PCBjb25u
ZWN0aW9uOworICAgICAgICBlbmNvZGVyIDw8IGNvb2tpZUFjY2VwdFBvbGljeTsKICNpZiBIQVZF
KEFVRElUX1RPS0VOKQogICAgICAgICBlbmNvZGVyIDw8IGF1ZGl0VG9rZW47CiAjZW5kaWYKQEAg
LTcwLDYgKzc0LDggQEAgc3RydWN0IE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbkluZm8gewogICAg
IHsKICAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShpbmZvLmNvbm5lY3Rpb24pKQogICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlRW51bShpbmZv
LmNvb2tpZUFjY2VwdFBvbGljeSkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAjaWYgSEFW
RShBVURJVF9UT0tFTikKICAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShpbmZvLmF1ZGl0VG9r
ZW4pKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViQ29va2llSmFyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYkNvb2tpZUphci5jcHAKaW5kZXggNTg4MGJiZmM0ZDk4NmMxZTUw
MTg2OWRlOTU0ZDZhNTc5MTg3M2NiNy4uMzI1ODMwNWM3ODlkNzc1ZmUxNWMxYzA4MjhjMzZlOWUy
ZjJhODYwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
Q29va2llSmFyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJD
b29raWVKYXIuY3BwCkBAIC0xMjksMTIgKzEyOSwxOSBAQCB2b2lkIFdlYkNvb2tpZUphcjo6c2V0
Q29va2llcyhXZWJDb3JlOjpEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFVSTCYgdXJsLCBjb25z
dAogICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVj
dGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzczo6U2V0Q29va2llc0Zyb21ET00oZG9jdW1lbnQuZmlyc3RQYXJ0eUZvckNvb2tpZXMo
KSwgc2FtZVNpdGVJbmZvKGRvY3VtZW50KSwgdXJsLCBmcmFtZUlELCBwYWdlSUQsIHNob3VsZEFz
a0lUUEluTmV0d29ya1Byb2Nlc3MsIGNvb2tpZVN0cmluZyksIDApOwogfQogCi1ib29sIFdlYkNv
b2tpZUphcjo6Y29va2llc0VuYWJsZWQoY29uc3QgV2ViQ29yZTo6RG9jdW1lbnQmIGRvY3VtZW50
KSBjb25zdAorYm9vbCBXZWJDb29raWVKYXI6OmNvb2tpZXNFbmFibGVkKGNvbnN0IERvY3VtZW50
JiBkb2N1bWVudCkgY29uc3QKIHsKLSAgICBib29sIHJlc3VsdCA9IGZhbHNlOwotICAgIGlmICgh
V2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCku
Y29ubmVjdGlvbigpLnNlbmRTeW5jKE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzczo6Q29va2llc0VuYWJsZWQoKSwgTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzOjpDb29raWVzRW5hYmxlZDo6UmVwbHkocmVzdWx0KSwgMCkpCisgICAgYXV0byogd2Vi
RnJhbWUgPSBkb2N1bWVudC5mcmFtZSgpID8gV2ViRnJhbWU6OmZyb21Db3JlRnJhbWUoKmRvY3Vt
ZW50LmZyYW1lKCkpIDogbnVsbHB0cjsKKyAgICBpZiAoIXdlYkZyYW1lIHx8ICF3ZWJGcmFtZS0+
cGFnZSgpKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgcmV0dXJuIHJlc3VsdDsKKworI2lm
IEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisgICAgU2hvdWxkQXNrSVRQIGR1bW15
OworICAgIGlmIChzaG91bGRCbG9ja0Nvb2tpZXMod2ViRnJhbWUsIGRvY3VtZW50LmZpcnN0UGFy
dHlGb3JDb29raWVzKCksIGRvY3VtZW50LmNvb2tpZVVSTCgpLCBkdW1teSkpCisgICAgICAgIHJl
dHVybiBmYWxzZTsKKyNlbmRpZgorCisgICAgcmV0dXJuIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigp
LmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLmNvb2tpZXNFbmFibGVkKCk7CiB9CiAK
IHN0ZDo6cGFpcjxTdHJpbmcsIFdlYkNvcmU6OlNlY3VyZUNvb2tpZXNBY2Nlc3NlZD4gV2ViQ29v
a2llSmFyOjpjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShjb25zdCBVUkwmIGZpcnN0UGFy
dHksIGNvbnN0IFdlYkNvcmU6OlNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwm
IHVybCwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRl
bnRpZmllcj4gcGFnZUlELCBXZWJDb3JlOjpJbmNsdWRlU2VjdXJlQ29va2llcyBpbmNsdWRlU2Vj
dXJlQ29va2llcykgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApp
bmRleCBjYTQxOGNkNzAyZjhlY2QzNmQyMTFlZTZkZGJhYTZhZjc5ZjBlMjVmLi42NWM5YmM0Y2E3
NmFjOTUwZGQ5NjgyZTEyMjRkY2I4ZjZlMGU0OGZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlByb2Nlc3MuY3BwCkBAIC0xMTkxLDcgKzExOTEsNyBAQCBOZXR3b3JrUHJvY2Vzc0Nvbm5l
Y3Rpb24mIFdlYlByb2Nlc3M6OmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpCiAgICAg
ICAgIGlmICghSVBDOjpDb25uZWN0aW9uOjppZGVudGlmaWVySXNWYWxpZChjb25uZWN0aW9uSW5m
by5pZGVudGlmaWVyKCkpKQogICAgICAgICAgICAgQ1JBU0goKTsKIAotICAgICAgICBtX25ldHdv
cmtQcm9jZXNzQ29ubmVjdGlvbiA9IE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6Y3JlYXRlKGNv
bm5lY3Rpb25JbmZvLnJlbGVhc2VJZGVudGlmaWVyKCkpOworICAgICAgICBtX25ldHdvcmtQcm9j
ZXNzQ29ubmVjdGlvbiA9IE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6Y3JlYXRlKGNvbm5lY3Rp
b25JbmZvLnJlbGVhc2VJZGVudGlmaWVyKCksIGNvbm5lY3Rpb25JbmZvLmNvb2tpZUFjY2VwdFBv
bGljeSk7CiAjaWYgSEFWRShBVURJVF9UT0tFTikKICAgICAgICAgbV9uZXR3b3JrUHJvY2Vzc0Nv
bm5lY3Rpb24tPnNldE5ldHdvcmtQcm9jZXNzQXVkaXRUb2tlbihXVEZNb3ZlKGNvbm5lY3Rpb25J
bmZvLmF1ZGl0VG9rZW4pKTsKICNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>388353</attachid>
            <date>2020-01-21 14:39:34 -0800</date>
            <delta_ts>2020-01-21 14:53:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-206450-20200121143933.patch</filename>
            <type>text/plain</type>
            <size>79778</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0ODgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGJlNzFhNWRjNDQxN2Rm
OGFlM2VjNzg3MjNiMmYzZDI5NjQxYTdhMC4uNGNjYzNlZWRjN2IxMTU5ZTVjNmMyMTQzZmEyNGVh
ZWE4YmYyMzljMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIwLTAxLTIxICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgRnJlcXVlbnQgTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3M6OkNvb2tpZXNFbmFibGVkIHN5bmMgSVBDIHdoZW4gYnJvd3Np
bmcgcmVkZGl0LmNvbQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjA2NDUwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgTW92ZSBIVFRQQ29va2llQWNjZXB0UG9saWN5LmggaGVhZGVyIGZyb20gV2ViS2l0IHRv
IFdlYkNvcmUgc28gdGhhdCB0aGUgSFRUUENvb2tpZUFjY2VwdFBvbGljeSBlbnVtCisgICAgICAg
IGNhbiBiZSB1c2VkIGluIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbi4gUmVwbGFjZSBOZXR3b3JrU3Rv
cmFnZVNlc3Npb246OmNvb2tpZXNFbmFibGVkKCkgd2l0aCBhIG1vcmUKKyAgICAgICAgZGV0YWls
ZWQgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpjb29raWVBY2NlcHRQb2xpY3koKSBtZXRob2QuCisK
KyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICog
bG9hZGVyL0Nvb2tpZUphci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb29raWVKYXI6OmNvb2tp
ZXNFbmFibGVkIGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL0hUVFBDb29raWVB
Y2NlcHRQb2xpY3kuaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL0hUVFBDb29r
aWVBY2NlcHRQb2xpY3kuaC4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9y
YWdlU2Vzc2lvbi5jcHA6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFn
ZVNlc3Npb24uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2NmL05ldHdvcmtTdG9yYWdl
U2Vzc2lvbkNGTmV0V2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vz
c2lvbjo6Y29va2llQWNjZXB0UG9saWN5IGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3
b3JrL2NvY29hL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkNvY29hLm1tOgorICAgICAgICAoV2ViQ29y
ZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpjb29raWVBY2NlcHRQb2xpY3kgY29uc3QpOgorICAg
ICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY3VybC9OZXR3b3JrU3RvcmFnZVNlc3Npb25DdXJsLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y29va2llQWNjZXB0
UG9saWN5IGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvTmV0d29ya1N0
b3JhZ2VTZXNzaW9uU291cC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNl
c3Npb246OmNvb2tpZUFjY2VwdFBvbGljeSBjb25zdCk6CisKIDIwMjAtMDEtMjEgIFl1c3VrZSBT
dXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAgICAgICBbV1RGXSBBdG9tU3RyaW5nVGFi
bGUgc2hvdWxkIGJlIHNtYWxsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGJmNGZlNThlZDZjM2FmZThhYzZmODA0MWU3
ZjRlYzJmNTJjYzA5ZmMuLjhlMjc0ZTRjMDdiZjk1ODAxMDg2ZjJiOGIwYTU4NzllYzA3NWU3YmEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsNzcgQEAKKzIwMjAtMDEtMjEgIENocmlzIER1bWV6ICA8Y2R1
bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBGcmVxdWVudCBOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzczo6Q29va2llc0VuYWJsZWQgc3luYyBJUEMgd2hlbiBicm93c2luZyByZWRkaXQuY29t
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDY0NTAK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGcmVxdWVu
dCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Q29va2llc0VuYWJsZWQgc3luYyBJUEMg
d2hlbiBicm93c2luZyByZWRkaXQuY29tLiBUaGlzCisgICAgICAgIGhhcHBlbnMgZXZlcnkgdGlt
ZSB0aGUgcGFnZSBzY3JpcHQgY2FsbHMgbmF2aWdhdG9yLmNvb2tpZUVuYWJsZWQuIFRvIGFkZHJl
c3MgdGhlIGlzc3VlLCB3ZSBub3cKKyAgICAgICAgc3RvcmUgdGhlICJjb29raWUgYWNjZXB0IHBv
bGljeSIgb24gdGhlIFdlYkNvbnRlbnQgcHJvY2VzcyBzaWRlLiBUaGlzIGFsbG93cyB1cyB0byBr
bm93CisgICAgICAgIHN5bmNocm9ub3VzbHkgb24gdGhlIFdlYkNvbnRlbnQgcHJvY2VzcyBpZiBj
b29raWVzIGFyZSBlbmFibGVkIG9yIG5vdCBhbmQgd2l0aG91dCBhbnkgSVBDIHRvCisgICAgICAg
IHRoZSBuZXR3b3JrIHByb2Nlc3MuIFRvIGFjaGlldmUgdGhpcywgSSBhZGRlZCBhIG5ldyBjb29r
aWVBY2NlcHRQb2xpY3kgbWVtYmVyIHRvCisgICAgICAgIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlv
bkluZm8gc28gdGhhdCB0aGUgV2ViQ29udGVudCBwcm9jZXNzIGlzIGF3YXJlIG9mIHRoZSBpbml0
aWFsIHBvbGljeSB3aGVuCisgICAgICAgIGl0IGNvbm5lY3RzIHRvIHRoZSBuZXR3b3JrIHByb2Nl
c3MuIFRoZSBwb2xpY3kgb24gdGhlIFdlYkNvbnRlbnQgcHJvY2VzcyBzaWRlIGlzIHRoZW4ga2Vw
dCB1cAorICAgICAgICB0byBkYXRlIHZpYSBJUENzIGZyb20gdGhlIG5ldHdvcmsgcHJvY2VzcyB0
byB0aGUgV2ViQ29udGVudCBwcm9jZXNzZXMgd2hlbmV2ZXIgdGhlIGNvb2tpZQorICAgICAgICBh
Y2NlcHQgcG9saWN5IGNoYW5nZXMuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9Db29raWVz
L1dlYkNvb2tpZU1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDb29raWVNYW5hZ2Vy
OjpzZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29va2ll
TWFuYWdlcjo6Z2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeSk6CisgICAgICAgICogTmV0d29ya1By
b2Nlc3MvQ29va2llcy9XZWJDb29raWVNYW5hZ2VyLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nl
c3MvQ29va2llcy9XZWJDb29raWVNYW5hZ2VyLm1lc3NhZ2VzLmluOgorICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL0Nvb2tpZXMvY3VybC9XZWJDb29raWVNYW5hZ2VyQ3VybC5jcHA6CisgICAgICAg
ICogTmV0d29ya1Byb2Nlc3MvQ29va2llcy9tYWMvV2ViQ29va2llTWFuYWdlck1hYy5tbToKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9Db29raWVzL3NvdXAvV2ViQ29va2llTWFuYWdlclNvdXAu
Y3BwOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6
OmNvb2tpZUFjY2VwdFBvbGljeUNoYW5nZWQpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
UHJvY2Vzczo6Y3JlYXRlTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MpOgorICAgICAgICAo
V2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6Y29va2llQWNjZXB0UG9saWN5Q2hhbmdlZCk6CisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaDoKKyAgICAgICAgKiBOZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oOgorICAgICAgICAqIFNoYXJl
ZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9BUElIVFRQQ29va2llU3RvcmUuY3BwOgorICAgICAgICAoQVBJOjpIVFRQQ29va2llU3RvcmU6
OnNldEhUVFBDb29raWVBY2NlcHRQb2xpY3kpOgorICAgICAgICAoQVBJOjpIVFRQQ29va2llU3Rv
cmU6OnNldEhUVFBDb29raWVBY2NlcHRQb2xpY3lJbkRlZmF1bHRVSVByb2Nlc3NDb29raWVTdG9y
ZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElIVFRQQ29va2llU3RvcmUuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0Lmg6CisgICAgICAgIChXZWJLaXQ6OnRvSFRU
UENvb2tpZUFjY2VwdFBvbGljeSk6CisgICAgICAgIChXZWJLaXQ6OnRvQVBJKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL0NvY29hL0FQSUhUVFBDb29raWVTdG9yZUNvY29hLm1tOgorICAgICAg
ICAoQVBJOjp0b05TSFRUUENvb2tpZUFjY2VwdFBvbGljeSk6CisgICAgICAgIChBUEk6OkhUVFBD
b29raWVTdG9yZTo6c2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeUluRGVmYXVsdFVJUHJvY2Vzc0Nv
b2tpZVN0b3JlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLSFRUUENvb2tpZVN0
b3JlLm1tOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5tbToK
KyAgICAgICAgKHRvSFRUUENvb2tpZUFjY2VwdFBvbGljeSk6CisgICAgICAgICogVUlQcm9jZXNz
L05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtQcm9jZXNzUHJveHk6Om9wZW5OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24pOgorICAgICAgICAq
IFVJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Bvb2wuaDoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0
aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpOZXR3
b3JrUHJvY2Vzc0Nvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc0Nv
bm5lY3Rpb246OndyaXRlQmxvYnNUb1RlbXBvcmFyeUZpbGVzKToKKyAgICAgICAgKFdlYktpdDo6
TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpjb29raWVzRW5hYmxlZCk6CisgICAgICAgIChXZWJL
aXQ6Ok5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6Y29va2llQWNjZXB0UG9saWN5Q2hhbmdlZCk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5o
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OmNyZWF0ZSk6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5tZXNz
YWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25u
ZWN0aW9uSW5mby5oOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25J
bmZvOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc0Nvbm5l
Y3Rpb25JbmZvOjpkZWNvZGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJDb29r
aWVKYXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDb29raWVKYXI6OmNvb2tpZXNFbmFibGVk
IGNvbnN0KToKKyAgICAgICAgLSBSZXR1cm4gZmFsc2UgZWFybHkgaWYgdGhlIGRvY3VtZW50IGhh
cyBubyBmcmFtZSAvIHBhZ2UgKGNvb2tpZS1hdmVyc2UgYXMgcGVyIHNwZWMpCisgICAgICAgIC0g
UmV0dXJuIGZhbHNlIGVhcmx5IGlmIElUUCBpcyBlbmFibGVkIGFuZCBpdCBpcyBhIHRoaXJkLXBh
cnR5IGlmcmFtZSB3aXRob3V0IHN0b3JhZ2UKKyAgICAgICAgICBhY2Nlc3MuIFRoaXMgYnlwYXNz
ZXMgdGhlIHN5bmMgSVBDIGNhbGwgY29tcGxldGVseSBmb3Igc3VjaCBpZnJhbWVzLgorCisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJv
Y2Vzczo6ZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKToKKwogMjAyMC0wMS0yMSAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFttYWNPU10gQWRkIG1hbmFn
ZWQgcHJlZmVyZW5jZSB0byBhbGxvdyBzeW5jaHJvbm91cyBYSFIgZHVyaW5nIHBhZ2UgZGlzbWlz
c2FsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291cmNlL1dl
YkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCBiYjg3ODA2MTgzNzQxZjk2MjY4Mzg2OGVmYzY4OTEw
MmJjNGY0YTJkLi45ZjVkMmM3MjFjMDUxMTUwNDdjODJhODQ0ZmQxZDI5OWU3ZmZiMDNlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0hlYWRlcnMuY21ha2UKQEAgLTEyMjIsNiArMTIyMiw3IEBAIHNldChXZWJDb3JlX1BSSVZBVEVf
RlJBTUVXT1JLX0hFQURFUlMKICAgICBwbGF0Zm9ybS9uZXR3b3JrL0ROUy5oCiAgICAgcGxhdGZv
cm0vbmV0d29yay9ETlNSZXNvbHZlUXVldWUuaAogICAgIHBsYXRmb3JtL25ldHdvcmsvRm9ybURh
dGEuaAorICAgIHBsYXRmb3JtL25ldHdvcmsvSFRUUENvb2tpZUFjY2VwdFBvbGljeS5oCiAgICAg
cGxhdGZvcm0vbmV0d29yay9IVFRQSGVhZGVyTWFwLmgKICAgICBwbGF0Zm9ybS9uZXR3b3JrL0hU
VFBQYXJzZXJzLmgKICAgICBwbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtMb2FkSW5mb3JtYXRpb24u
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CmluZGV4IDlhNzJjYjEzYWUyZTc5YmU2MDk4YzkzMzc2NGM3NGYwMjFlNWM5OGUuLjljYzQ4M2E1
OTZlODY0YTQ0YmY4NTAyNGIzMDFhODMxZGFlNmJkZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEyNTIsNiArMTI1Miw3IEBA
CiAJCTQ2Qjk1MTlBMjA3RDYzNTQwMEE3RDJERCAvKiBSZW1vdGVGcmFtZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDZCOTUxOTIyMDdENjMyRTAwQTdE
MkREIC8qIFJlbW90ZUZyYW1lLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJNDZCOTVCRjUyMjMxQ0ZENjAwNTNBNTA0IC8qIERldmljZU9yaWVudGF0
aW9uQW5kTW90aW9uQWNjZXNzQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNDZCOTVCRjQyMjMxQ0ZCODAwNTNBNTA0IC8qIERldmljZU9y
aWVudGF0aW9uQW5kTW90aW9uQWNjZXNzQ29udHJvbGxlci5oICovOyB9OwogCQk0NkJDQkJDMjIw
ODUwMDhGMDA3MTA2MzggLyogSlNSZW1vdGVET01XaW5kb3dCYXNlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NkJDQkJDMDIwODUwMDdGMDA3MTA2Mzgg
LyogSlNSZW1vdGVET01XaW5kb3dCYXNlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKKwkJNDZDMDk2MjEyM0Q3OERENjAwNjU3QzA5IC8qIEhUVFBDb29r
aWVBY2NlcHRQb2xpY3kuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDQ2QzA5NjIwMjNENzhERDYwMDY1N0MwOSAvKiBIVFRQQ29va2llQWNjZXB0UG9saWN5
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDZD
Mzc2NjIyMDg1MTc3RDAwQzczODI5IC8qIEpTUmVtb3RlRE9NV2luZG93LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NkMzNzY2MTIwODUxNzZEMDBDNzM4
MjkgLyogSlNSZW1vdGVET01XaW5kb3cuaCAqLzsgfTsKIAkJNDZDNjk2Q0IxRTcyMDVGNzAwNTk3
OTM3IC8qIENQVU1vbml0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDQ2QzY5NkM5MUU3MjA1RTQwMDU5NzkzNyAvKiBDUFVNb25pdG9yLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDZDNjk2Q0MxRTcy
MDVGQzAwNTk3OTM3IC8qIENQVU1vbml0b3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNDZDNjk2Q0ExRTcyMDVFNDAwNTk3OTM3IC8qIENQVU1vbml0
b3IuY3BwICovOyB9OwpAQCAtNzc4Myw2ICs3Nzg0LDcgQEAKIAkJNDZCQ0JCQzAyMDg1MDA3RjAw
NzEwNjM4IC8qIEpTUmVtb3RlRE9NV2luZG93QmFzZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBKU1JlbW90ZURPTVdpbmRvd0Jhc2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNDZCQ0JCQzEyMDg1MDA4MDAwNzEwNjM4IC8qIEpTUmVtb3RlRE9NV2luZG93QmFz
ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1JlbW90ZURPTVdp
bmRvd0Jhc2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NkJDQkJDMzIwODUw
MEE3MDA3MTA2MzggLyogUmVtb3RlRE9NV2luZG93LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGgg
PSBSZW1vdGVET01XaW5kb3cuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0NkMw
OTYyMDIzRDc4REQ2MDA2NTdDMDkgLyogSFRUUENvb2tpZUFjY2VwdFBvbGljeS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBIVFRQQ29va2llQWNjZXB0UG9saWN5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTQ2QzM3NjVGMjA4NTE3NkMwMEM3MzgyOSAvKiBKU1JlbW90ZURPTVdpbmRvdy5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1JlbW90ZURPTVdpbmRvdy5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2QzM3NjYxMjA4NTE3NkQwMEM3Mzgy
OSAvKiBKU1JlbW90ZURPTVdpbmRvdy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBKU1JlbW90ZURPTVdpbmRvdy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NkM2
OTZDOTFFNzIwNUU0MDA1OTc5MzcgLyogQ1BVTW9uaXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBDUFVNb25pdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0yMDQ2MSw2ICsyMDQ2Myw3IEBACiAJCQkJNTE0Qzc2NUIwQ0U5MjNBMTAwN0VGM0NEIC8qIEZv
cm1EYXRhLmggKi8sCiAJCQkJMDg1QjkyQjgwRUZERTczRDAwRTYxMjNDIC8qIEZvcm1EYXRhQnVp
bGRlci5jcHAgKi8sCiAJCQkJMDg1QjkyQjkwRUZERTczRDAwRTYxMjNDIC8qIEZvcm1EYXRhQnVp
bGRlci5oICovLAorCQkJCTQ2QzA5NjIwMjNENzhERDYwMDY1N0MwOSAvKiBIVFRQQ29va2llQWNj
ZXB0UG9saWN5LmggKi8sCiAJCQkJMEI4QzU2RDMwRjI4NjI3RjAwMDUwMkUxIC8qIEhUVFBIZWFk
ZXJNYXAuY3BwICovLAogCQkJCTUxNEM3NjVDMENFOTIzQTEwMDdFRjNDRCAvKiBIVFRQSGVhZGVy
TWFwLmggKi8sCiAJCQkJMUFDOTAwQkYxOTQzQUYzRDAwODYyNUI1IC8qIEhUVFBIZWFkZXJOYW1l
cy5pbiAqLywKQEAgLTMwMjc4LDYgKzMwMjgxLDcgQEAKIAkJCQlFNDQ2MTNBQjBDRDYzMzEwMDBG
QURBNzUgLyogSFRNTFZpZGVvRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUQyRjhFMDUy
MzQ0NzUxRDAwOTkzQjY4IC8qIEhUTUxWaWRlb0VsZW1lbnRQaWN0dXJlSW5QaWN0dXJlLmggaW4g
SGVhZGVycyAqLywKIAkJCQk4MzlBQUZFRDFBMEMwQzhEMDA2MDVGOTkgLyogSFRNTFdCUkVsZW1l
bnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTQ2QzA5NjIxMjNENzhERDYwMDY1N0MwOSAvKiBIVFRQ
Q29va2llQWNjZXB0UG9saWN5LmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0ExREVDNjFGNzFGMUM3
MDBFNzFCRDMgLyogSFRUUEhlYWRlckZpZWxkLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTRDNzY3
MTBDRTkyM0ExMDA3RUYzQ0QgLyogSFRUUEhlYWRlck1hcC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MUFCNUVCRDIxOTRBNTBGMzAwNTlBQzcwIC8qIEhUVFBIZWFkZXJOYW1lcy5oIGluIEhlYWRlcnMg
Ki8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ29va2llSmFyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9Db29raWVKYXIuY3BwCmluZGV4IDIzOTA2NjhkZjgzMTEzZmRh
MTczMDM4MGMyNDkxMjA2YmQzODkwNWMuLmEwN2EzMDJhNDIzOTE0MWJmOTQ3NWRmNGY1ZWM1ZGM2
OTg1MGQzMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Db29raWVKYXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Db29raWVKYXIuY3BwCkBAIC0zMiw2ICszMiw3
IEBACiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgogI2luY2x1
ZGUgIkZyYW1lTG9hZGVyQ2xpZW50LmgiCisjaW5jbHVkZSAiSFRUUENvb2tpZUFjY2VwdFBvbGlj
eS5oIgogI2luY2x1ZGUgIk5ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oIgogI2luY2x1ZGUgIk5ldHdv
cmtpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJhdGVnaWVzLmgiCkBAIC0xMjIs
NyArMTIzLDcgQEAgdm9pZCBDb29raWVKYXI6OnNldENvb2tpZXMoRG9jdW1lbnQmIGRvY3VtZW50
LCBjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBjb28KIGJvb2wgQ29va2llSmFyOjpjb29r
aWVzRW5hYmxlZChjb25zdCBEb2N1bWVudCYpIGNvbnN0CiB7CiAgICAgaWYgKGF1dG8qIHNlc3Np
b24gPSBtX3N0b3JhZ2VTZXNzaW9uUHJvdmlkZXItPnN0b3JhZ2VTZXNzaW9uKCkpCi0gICAgICAg
IHJldHVybiBzZXNzaW9uLT5jb29raWVzRW5hYmxlZCgpOworICAgICAgICByZXR1cm4gc2Vzc2lv
bi0+Y29va2llQWNjZXB0UG9saWN5KCkgIT0gSFRUUENvb2tpZUFjY2VwdFBvbGljeTo6TmV2ZXI7
CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0hUVFBDb29raWVBY2NlcHRQb2xp
Y3kuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvSFRUUENvb2tpZUFjY2VwdFBv
bGljeS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjRlNjNmYjM1ZDQwZjdiMmJjY2E1OWY4NmNhYWFmYmYyNjY1YzJi
NjQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0hU
VFBDb29raWVBY2NlcHRQb2xpY3kuaApAQCAtMCwwICsxLDUxIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDExLTIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAor
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitlbnVtIGNsYXNzIEhUVFBDb29raWVBY2NlcHRQb2xpY3kgOiB1aW50
OF90IHsKKyAgICBBbHdheXNBY2NlcHQgPSAwLAorICAgIE5ldmVyID0gMSwKKyAgICBPbmx5RnJv
bU1haW5Eb2N1bWVudERvbWFpbiA9IDIsCisgICAgRXhjbHVzaXZlbHlGcm9tTWFpbkRvY3VtZW50
RG9tYWluID0gMywKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCituYW1lc3BhY2UgV1RG
IHsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpIVFRQQ29va2llQWNj
ZXB0UG9saWN5PiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAgICAgICAgV2Vi
Q29yZTo6SFRUUENvb2tpZUFjY2VwdFBvbGljeSwKKyAgICAgICAgV2ViQ29yZTo6SFRUUENvb2tp
ZUFjY2VwdFBvbGljeTo6QWx3YXlzQWNjZXB0LAorICAgICAgICBXZWJDb3JlOjpIVFRQQ29va2ll
QWNjZXB0UG9saWN5OjpOZXZlciwKKyAgICAgICAgV2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBv
bGljeTo6T25seUZyb21NYWluRG9jdW1lbnREb21haW4sCisgICAgICAgIFdlYkNvcmU6OkhUVFBD
b29raWVBY2NlcHRQb2xpY3k6OkV4Y2x1c2l2ZWx5RnJvbU1haW5Eb2N1bWVudERvbWFpbgorICAg
ID47Cit9OworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5jcHAKaW5kZXggNTE1ZGJmMTk5ZjcxNWNiMGQ0M2Yz
NGZkNTNjMzIzNjkxODFjOTNlNS4uMjk5NDI3NTYyNThlOTI0M2MzYjBhMTAwYjFhM2Y2ZjcyYTg0
NzU4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3Jr
U3RvcmFnZVNlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
TmV0d29ya1N0b3JhZ2VTZXNzaW9uLmNwcApAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgImNv
bmZpZy5oIgogI2luY2x1ZGUgIk5ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oIgogCisjaW5jbHVkZSAi
SFRUUENvb2tpZUFjY2VwdFBvbGljeS5oIgogI2luY2x1ZGUgIlJ1bnRpbWVBcHBsaWNhdGlvbkNo
ZWNrcy5oIgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogI2luY2x1ZGUgPHd0Zi9Q
cm9jZXNzUHJpdmlsZWdlLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaAppbmRleCAzNzIwYWM1ZTg1YjA5OGU0ODM1
Y2I2NzdjMDU4MWUwYjMwNWRkNTVjLi42NTA2ZjEwNzcwNjVhNGQyMWY3OTgwMTkyZjNkNzUwN2Vi
YzIzYTllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdv
cmtTdG9yYWdlU2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
TmV0d29ya1N0b3JhZ2VTZXNzaW9uLmgKQEAgLTcyLDYgKzcyLDcgQEAgc3RydWN0IENvb2tpZTsK
IHN0cnVjdCBDb29raWVSZXF1ZXN0SGVhZGVyRmllbGRQcm94eTsKIHN0cnVjdCBTYW1lU2l0ZUlu
Zm87CiAKK2VudW0gY2xhc3MgSFRUUENvb2tpZUFjY2VwdFBvbGljeSA6IHVpbnQ4X3Q7CiBlbnVt
IGNsYXNzIEluY2x1ZGVTZWN1cmVDb29raWVzIDogYm9vbDsKIGVudW0gY2xhc3MgSW5jbHVkZUh0
dHBPbmx5Q29va2llcyA6IGJvb2w7CiBlbnVtIGNsYXNzIFRoaXJkUGFydHlDb29raWVCbG9ja2lu
Z01vZGUgOiB1aW50OF90IHsgQWxsLCBBbGxPblNpdGVzV2l0aG91dFVzZXJJbnRlcmFjdGlvbiwg
T25seUFjY29yZGluZ1RvUGVyRG9tYWluUG9saWN5IH07CkBAIC0xMjUsNyArMTI2LDcgQEAgcHVi
bGljOgogICAgIE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0KCkgY29uc3Q7CiAjZW5kaWYKIAot
ICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgY29va2llc0VuYWJsZWQoKSBjb25zdDsKKyAgICBXRUJD
T1JFX0VYUE9SVCBIVFRQQ29va2llQWNjZXB0UG9saWN5IGNvb2tpZUFjY2VwdFBvbGljeSgpIGNv
bnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0Q29va2llKGNvbnN0IENvb2tpZSYpOwog
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0Q29va2llcyhjb25zdCBWZWN0b3I8Q29va2llPiYs
IGNvbnN0IFVSTCYsIGNvbnN0IFVSTCYgbWFpbkRvY3VtZW50VVJMKTsKICAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIHNldENvb2tpZXNGcm9tRE9NKGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3Qg
U2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiwgT3B0
aW9uYWw8UGFnZUlkZW50aWZpZXI+LCBTaG91bGRBc2tJVFAsIGNvbnN0IFN0cmluZyYpIGNvbnN0
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9OZXR3b3Jr
U3RvcmFnZVNlc3Npb25DRk5ldFdpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL2NmL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkNGTmV0V2luLmNwcAppbmRleCA1MmRhY2M2ODZk
ODNiYTI5ODEzMDc5MDU5YWM4NTUxZmE2MWU5M2JjLi4wNmE1M2IyZmExODM1YThiZDFkOWY1NDFj
NDAwZmZhNjJmZjBjYjkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL2NmL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkNGTmV0V2luLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkNGTmV0V2luLmNw
cApAQCAtMjgsNiArMjgsNyBAQAogCiAjaW5jbHVkZSAiQ29va2llLmgiCiAjaW5jbHVkZSAiQ29v
a2llUmVxdWVzdEhlYWRlckZpZWxkUHJveHkuaCIKKyNpbmNsdWRlICJIVFRQQ29va2llQWNjZXB0
UG9saWN5LmgiCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRlIDxDRk5ldHdv
cmsvQ0ZIVFRQQ29va2llc1ByaXYuaD4KICNpbmNsdWRlIDxDb3JlRm91bmRhdGlvbi9Db3JlRm91
bmRhdGlvbi5oPgpAQCAtMjU4LDEwICsyNTksMTcgQEAgc3RkOjpwYWlyPFN0cmluZywgYm9vbD4g
TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShjb24K
ICAgICByZXR1cm4gY29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoaGVhZGVyRmllbGRQcm94
eS5maXJzdFBhcnR5LCBoZWFkZXJGaWVsZFByb3h5LnNhbWVTaXRlSW5mbywgaGVhZGVyRmllbGRQ
cm94eS51cmwsIGhlYWRlckZpZWxkUHJveHkuZnJhbWVJRCwgaGVhZGVyRmllbGRQcm94eS5wYWdl
SUQsIGhlYWRlckZpZWxkUHJveHkuaW5jbHVkZVNlY3VyZUNvb2tpZXMsIFNob3VsZEFza0lUUDo6
WWVzKTsKIH0KIAotYm9vbCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmNvb2tpZXNFbmFibGVkKCkg
Y29uc3QKK0hUVFBDb29raWVBY2NlcHRQb2xpY3kgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpjb29r
aWVBY2NlcHRQb2xpY3koKSBjb25zdAogewogICAgIENGSFRUUENvb2tpZVN0b3JhZ2VBY2NlcHRQ
b2xpY3kgcG9saWN5ID0gQ0ZIVFRQQ29va2llU3RvcmFnZUdldENvb2tpZUFjY2VwdFBvbGljeShj
b29raWVTdG9yYWdlKCkuZ2V0KCkpOwotICAgIHJldHVybiBwb2xpY3kgPT0gQ0ZIVFRQQ29va2ll
U3RvcmFnZUFjY2VwdFBvbGljeU9ubHlGcm9tTWFpbkRvY3VtZW50RG9tYWluIHx8IHBvbGljeSA9
PSBDRkhUVFBDb29raWVTdG9yYWdlQWNjZXB0UG9saWN5RXhjbHVzaXZlbHlGcm9tTWFpbkRvY3Vt
ZW50RG9tYWluIHx8IHBvbGljeSA9PSBDRkhUVFBDb29raWVTdG9yYWdlQWNjZXB0UG9saWN5QWx3
YXlzOworICAgIGlmIChwb2xpY3kgPT0gQ0ZIVFRQQ29va2llU3RvcmFnZUFjY2VwdFBvbGljeUFs
d2F5cykKKyAgICAgICAgcmV0dXJuIEhUVFBDb29raWVBY2NlcHRQb2xpY3k6OkFsd2F5c0FjY2Vw
dDsKKyAgICBpZiAocG9saWN5ID09IENGSFRUUENvb2tpZVN0b3JhZ2VBY2NlcHRQb2xpY3lPbmx5
RnJvbU1haW5Eb2N1bWVudERvbWFpbikKKyAgICAgICAgcmV0dXJuIEhUVFBDb29raWVBY2NlcHRQ
b2xpY3k6Ok9ubHlGcm9tTWFpbkRvY3VtZW50RG9tYWluOworICAgIGlmIChwb2xpY3kgPT0gQ0ZI
VFRQQ29va2llU3RvcmFnZUFjY2VwdFBvbGljeUV4Y2x1c2l2ZWx5RnJvbU1haW5Eb2N1bWVudERv
bWFpbikKKyAgICAgICAgcmV0dXJuIEhUVFBDb29raWVBY2NlcHRQb2xpY3k6OkV4Y2x1c2l2ZWx5
RnJvbU1haW5Eb2N1bWVudERvbWFpbjsKKworICAgIHJldHVybiBIVFRQQ29va2llQWNjZXB0UG9s
aWN5OjpOZXZlcjsKIH0KIAogYm9vbCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmdldFJhd0Nvb2tp
ZXMoY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwm
IHVybCwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRl
bnRpZmllcj4gcGFnZUlELCBTaG91bGRBc2tJVFAsIFZlY3RvcjxDb29raWU+JiByYXdDb29raWVz
KSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2Nv
YS9OZXR3b3JrU3RvcmFnZVNlc3Npb25Db2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvY29jb2EvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ29jb2EubW0KaW5kZXggOWY2NzY1
ZWE2N2QxMGNlZjNiNjJlZDVjZTAwYjk4ODgxOTRmMmNkMS4uZmQxYWU1OGQ3NTMxMGY3NDY2NTdm
YmNkOTFkNmViNzZkNzY1N2QwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9jb2NvYS9OZXR3b3JrU3RvcmFnZVNlc3Npb25Db2NvYS5tbQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkNvY29h
Lm1tCkBAIC0yOSw2ICsyOSw3IEBACiAjaW1wb3J0ICJDb29raWUuaCIKICNpbXBvcnQgIkNvb2tp
ZVJlcXVlc3RIZWFkZXJGaWVsZFByb3h5LmgiCiAjaW1wb3J0ICJDb29raWVTdG9yYWdlT2JzZXJ2
ZXIuaCIKKyNpbXBvcnQgIkhUVFBDb29raWVBY2NlcHRQb2xpY3kuaCIKICNpbXBvcnQgIlNhbWVT
aXRlSW5mby5oIgogI2ltcG9ydCA8cGFsL3NwaS9jZi9DRk5ldHdvcmtTUEkuaD4KICNpbXBvcnQg
PHd0Zi9CbG9ja09iakNFeGNlcHRpb25zLmg+CkBAIC00NDgsMTUgKzQ0OSwxOSBAQCBzdGF0aWMg
TlNIVFRQQ29va2llQWNjZXB0UG9saWN5IGh0dHBDb29raWVBY2NlcHRQb2xpY3koQ0ZIVFRQQ29v
a2llU3RvcmFnZVJlZiBjbwogICAgIHJldHVybiBzdGF0aWNfY2FzdDxOU0hUVFBDb29raWVBY2Nl
cHRQb2xpY3k+KENGSFRUUENvb2tpZVN0b3JhZ2VHZXRDb29raWVBY2NlcHRQb2xpY3koY29va2ll
U3RvcmFnZSkpOwogfQogCi1ib29sIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y29va2llc0VuYWJs
ZWQoKSBjb25zdAorSFRUUENvb2tpZUFjY2VwdFBvbGljeSBOZXR3b3JrU3RvcmFnZVNlc3Npb246
OmNvb2tpZUFjY2VwdFBvbGljeSgpIGNvbnN0CiB7CiAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENF
UFRJT05TOwotCiAgICAgTlNIVFRQQ29va2llQWNjZXB0UG9saWN5IGNvb2tpZUFjY2VwdFBvbGlj
eSA9IGh0dHBDb29raWVBY2NlcHRQb2xpY3koY29va2llU3RvcmFnZSgpLmdldCgpKTsKLSAgICBy
ZXR1cm4gY29va2llQWNjZXB0UG9saWN5ID09IE5TSFRUUENvb2tpZUFjY2VwdFBvbGljeUFsd2F5
cyB8fCBjb29raWVBY2NlcHRQb2xpY3kgPT0gTlNIVFRQQ29va2llQWNjZXB0UG9saWN5T25seUZy
b21NYWluRG9jdW1lbnREb21haW4gfHwgY29va2llQWNjZXB0UG9saWN5ID09IE5TSFRUUENvb2tp
ZUFjY2VwdFBvbGljeUV4Y2x1c2l2ZWx5RnJvbU1haW5Eb2N1bWVudERvbWFpbjsKLQorICAgIGlm
IChjb29raWVBY2NlcHRQb2xpY3kgPT0gTlNIVFRQQ29va2llQWNjZXB0UG9saWN5QWx3YXlzKQor
ICAgICAgICByZXR1cm4gSFRUUENvb2tpZUFjY2VwdFBvbGljeTo6QWx3YXlzQWNjZXB0OworICAg
IGlmIChjb29raWVBY2NlcHRQb2xpY3kgPT0gTlNIVFRQQ29va2llQWNjZXB0UG9saWN5T25seUZy
b21NYWluRG9jdW1lbnREb21haW4pCisgICAgICAgIHJldHVybiBIVFRQQ29va2llQWNjZXB0UG9s
aWN5OjpPbmx5RnJvbU1haW5Eb2N1bWVudERvbWFpbjsKKyAgICBpZiAoY29va2llQWNjZXB0UG9s
aWN5ID09IE5TSFRUUENvb2tpZUFjY2VwdFBvbGljeUV4Y2x1c2l2ZWx5RnJvbU1haW5Eb2N1bWVu
dERvbWFpbikKKyAgICAgICAgcmV0dXJuIEhUVFBDb29raWVBY2NlcHRQb2xpY3k6OkV4Y2x1c2l2
ZWx5RnJvbU1haW5Eb2N1bWVudERvbWFpbjsKICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05T
OwotICAgIHJldHVybiBmYWxzZTsKKworICAgIHJldHVybiBIVFRQQ29va2llQWNjZXB0UG9saWN5
OjpOZXZlcjsKIH0KIAogYm9vbCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmdldFJhd0Nvb2tpZXMo
Y29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5mbywg
Y29uc3QgVVJMJiB1cmwsIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9u
YWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgU2hvdWxkQXNrSVRQIHNob3VsZEFza0lUUCwgVmVj
dG9yPENvb2tpZT4mIHJhd0Nvb2tpZXMpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ3VybC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvTmV0d29ya1N0b3JhZ2VTZXNzaW9u
Q3VybC5jcHAKaW5kZXggZDcwNDUwNGU2NDk5MWQ3NGYzMTcwZDgzNzhkYzJkZTI2NDgzMDJhYi4u
YmY5YzY3YTFlY2U2ZWIxZjBhNjQyMDA3ZjBlMWQ5NmVkN2Q1ZGYzMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkN1
cmwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9OZXR3b3Jr
U3RvcmFnZVNlc3Npb25DdXJsLmNwcApAQCAtODUsOSArODUsMjEgQEAgdm9pZCBOZXR3b3JrU3Rv
cmFnZVNlc3Npb246OnNldENvb2tpZXNGcm9tRE9NKGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29u
c3QgU2FtZVMKICAgICBjb29raWVTdG9yYWdlKCkuc2V0Q29va2llc0Zyb21ET00oKnRoaXMsIGZp
cnN0UGFydHksIHNhbWVTaXRlSW5mbywgdXJsLCBmcmFtZUlELCBwYWdlSUQsIHZhbHVlKTsKIH0K
IAotYm9vbCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmNvb2tpZXNFbmFibGVkKCkgY29uc3QKLXsK
LSAgICByZXR1cm4gY29va2llU3RvcmFnZSgpLmNvb2tpZXNFbmFibGVkKCp0aGlzKTsKK0hUVFBD
b29raWVBY2NlcHRQb2xpY3kgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpjb29raWVBY2NlcHRQb2xp
Y3koKSBjb25zdAoreworICAgIHN3aXRjaCAoY29va2llU3RvcmFnZSgpLmNvb2tpZUFjY2VwdFBv
bGljeSgqdGhpcykpIHsKKyAgICBjYXNlIENvb2tpZUFjY2VwdFBvbGljeTo6QWx3YXlzOgorICAg
ICAgICByZXR1cm4gSFRUUENvb2tpZUFjY2VwdFBvbGljeTo6QWx3YXlzQWNjZXB0OworICAgIGNh
c2UgQ29va2llQWNjZXB0UG9saWN5OjpOZXZlcjoKKyAgICAgICAgcmV0dXJuIEhUVFBDb29raWVB
Y2NlcHRQb2xpY3k6Ok5ldmVyOworICAgIGNhc2UgQ29va2llQWNjZXB0UG9saWN5OjpPbmx5RnJv
bU1haW5Eb2N1bWVudERvbWFpbjoKKyAgICAgICAgcmV0dXJuIEhUVFBDb29raWVBY2NlcHRQb2xp
Y3k6Ok9ubHlGcm9tTWFpbkRvY3VtZW50RG9tYWluOworICAgIGNhc2UgQ29va2llQWNjZXB0UG9s
aWN5OjpFeGNsdXNpdmVseUZyb21NYWluRG9jdW1lbnREb21haW46CisgICAgICAgIHJldHVybiBI
VFRQQ29va2llQWNjZXB0UG9saWN5OjpFeGNsdXNpdmVseUZyb21NYWluRG9jdW1lbnREb21haW47
CisgICAgfQorCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIEhUVFBDb29r
aWVBY2NlcHRQb2xpY3k6Ok9ubHlGcm9tTWFpbkRvY3VtZW50RG9tYWluOwogfQogCiBzdGQ6OnBh
aXI8U3RyaW5nLCBib29sPiBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmNvb2tpZXNGb3JET00oY29u
c3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5mbywgY29u
c3QgVVJMJiB1cmwsIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9uYWw8
UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgSW5jbHVkZVNlY3VyZUNvb2tpZXMgaW5jbHVkZVNlY3Vy
ZUNvb2tpZXMsIFNob3VsZEFza0lUUCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvc291cC9OZXR3b3JrU3RvcmFnZVNlc3Npb25Tb3VwLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9OZXR3b3JrU3RvcmFnZVNlc3Npb25T
b3VwLmNwcAppbmRleCBlMDU1MDc2YzdlMWRiYzI0MGVmMjM5YjdkZTIwNWMzYTg1OTQ1ZjkyLi42
ZGRiNTk3YWFhY2FiOWMzM2FkNjVjMGVmZDg3Y2JlNTc4MTQxOTJlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU291
cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL05ldHdvcmtT
dG9yYWdlU2Vzc2lvblNvdXAuY3BwCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiQ29va2ll
LmgiCiAjaW5jbHVkZSAiQ29va2llUmVxdWVzdEhlYWRlckZpZWxkUHJveHkuaCIKICNpbmNsdWRl
ICJHVW5pcXVlUHRyU291cC5oIgorI2luY2x1ZGUgIkhUVFBDb29raWVBY2NlcHRQb2xpY3kuaCIK
ICNpbmNsdWRlICJSZXNvdXJjZUhhbmRsZS5oIgogI2luY2x1ZGUgIlNvdXBOZXR3b3JrU2Vzc2lv
bi5oIgogI2luY2x1ZGUgIlVSTFNvdXAuaCIKQEAgLTI0MSwxMCArMjQyLDE0IEBAIHZvaWQgTmV0
d29ya1N0b3JhZ2VTZXNzaW9uOjpzYXZlQ3JlZGVudGlhbFRvUGVyc2lzdGVudFN0b3JhZ2UoY29u
c3QgUHJvdGVjdGlvblNwCiAjZW5kaWYKIH0KIAotYm9vbCBOZXR3b3JrU3RvcmFnZVNlc3Npb246
OmNvb2tpZXNFbmFibGVkKCkgY29uc3QKK0hUVFBDb29raWVBY2NlcHRQb2xpY3kgTmV0d29ya1N0
b3JhZ2VTZXNzaW9uOjpjb29raWVBY2NlcHRQb2xpY3koKSBjb25zdAogewogICAgIGF1dG8gcG9s
aWN5ID0gc291cF9jb29raWVfamFyX2dldF9hY2NlcHRfcG9saWN5KGNvb2tpZVN0b3JhZ2UoKSk7
Ci0gICAgcmV0dXJuIHBvbGljeSA9PSBTT1VQX0NPT0tJRV9KQVJfQUNDRVBUX0FMV0FZUyB8fCBw
b2xpY3kgPT0gU09VUF9DT09LSUVfSkFSX0FDQ0VQVF9OT19USElSRF9QQVJUWTsKKyAgICBpZiAo
cG9saWN5ID09IFNPVVBfQ09PS0lFX0pBUl9BQ0NFUFRfQUxXQVlTKQorICAgICAgICByZXR1cm4g
SFRUUENvb2tpZUFjY2VwdFBvbGljeTo6QWx3YXlzQWNjZXB0OworICAgIGlmIChwb2xpY3kgPT0g
U09VUF9DT09LSUVfSkFSX0FDQ0VQVF9OT19USElSRF9QQVJUWSkKKyAgICAgICAgcmV0dXJuIEhU
VFBDb29raWVBY2NlcHRQb2xpY3k6Ok9ubHlGcm9tTWFpbkRvY3VtZW50RG9tYWluOworICAgIHJl
dHVybiBIVFRQQ29va2llQWNjZXB0UG9saWN5OjpOZXZlcjsKIH0KIAogc3RhdGljIGlubGluZSBi
b29sIGh0dHBPbmx5Q29va2llRXhpc3RzKGNvbnN0IEdTTGlzdCogY29va2llcywgY29uc3QgZ2No
YXIqIG5hbWUsIGNvbnN0IGdjaGFyKiBwYXRoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIuY3BwCmluZGV4IDVkNmYw
NTIyMTQ4ZWFmNmNhMGE5MmU5NjJlNGU4MjhlN2RhN2Y3MmIuLjZlMjhhZGZmZWZjZWM3ZjBlM2U1
ZGE2MTlmMTMyOTdmYmU4ZDM2MzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvQ29va2llcy9XZWJDb29raWVNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlci5jcHAKQEAgLTE0NCwxMyArMTQ0
LDE4IEBAIHZvaWQgV2ViQ29va2llTWFuYWdlcjo6c3RvcE9ic2VydmluZ0Nvb2tpZUNoYW5nZXMo
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogdm9pZCBXZWJDb29raWVNYW5hZ2VyOjpzZXRIVFRQ
Q29va2llQWNjZXB0UG9saWN5KEhUVFBDb29raWVBY2NlcHRQb2xpY3kgcG9saWN5LCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgcGxhdGZvcm1T
ZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KHBvbGljeSk7CisgICAgbV9wcm9jZXNzLmNvb2tpZUFj
Y2VwdFBvbGljeUNoYW5nZWQocG9saWN5KTsKIAogICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CiB9
CiAKIHZvaWQgV2ViQ29va2llTWFuYWdlcjo6Z2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKEhUVFBDb29raWVBY2NlcHRQb2xpY3kpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKQogewotICAgIGNvbXBsZXRpb25IYW5kbGVyKHBsYXRmb3JtR2V0SFRUUENvb2tpZUFj
Y2VwdFBvbGljeSgpKTsKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBjb21wbGV0aW9uSGFuZGxl
cihXZWJDb29raWVNYW5hZ2VyOjpwbGF0Zm9ybUdldEhUVFBDb29raWVBY2NlcHRQb2xpY3koKSk7
CisjZWxzZQorICAgIGNvbXBsZXRpb25IYW5kbGVyKG1fcHJvY2Vzcy5kZWZhdWx0U3RvcmFnZVNl
c3Npb24oKS5jb29raWVBY2NlcHRQb2xpY3koKSk7CisjZW5kaWYKIH0KIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Nvb2tp
ZXMvV2ViQ29va2llTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Db29r
aWVzL1dlYkNvb2tpZU1hbmFnZXIuaAppbmRleCA0MDZiYjkwYTc2NWY1YzlmNmZlM2Y5Y2NjOTgx
ZjQyZGQxNGY4OWJhLi4yYzFkMjdjMzI0M2JiNmNlMjE2NzM5YzIyNGVjNTlmZTViYmRhNDlkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2ll
TWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ29va2llcy9XZWJD
b29raWVNYW5hZ2VyLmgKQEAgLTM5LDEyICszOSwxMiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiBzdHJ1Y3QgQ29va2llOworZW51bSBjbGFzcyBIVFRQQ29va2llQWNjZXB0UG9saWN5IDogdWlu
dDhfdDsKIH0KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIE5ldHdvcmtQcm9jZXNzOwot
ZW51bSBjbGFzcyBIVFRQQ29va2llQWNjZXB0UG9saWN5IDogdWludDhfdDsKIAogY2xhc3MgV2Vi
Q29va2llTWFuYWdlciA6IHB1YmxpYyBOZXR3b3JrUHJvY2Vzc1N1cHBsZW1lbnQsIHB1YmxpYyBJ
UEM6Ok1lc3NhZ2VSZWNlaXZlciB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CkBAIC01
NSw3ICs1NSw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBjb25zdCBjaGFyKiBzdXBwbGVtZW50
TmFtZSgpOwogCi0gICAgdm9pZCBzZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KEhUVFBDb29raWVB
Y2NlcHRQb2xpY3ksIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CisgICAgdm9pZCBzZXRI
VFRQQ29va2llQWNjZXB0UG9saWN5KFdlYkNvcmU6OkhUVFBDb29raWVBY2NlcHRQb2xpY3ksIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAKICNpZiBVU0UoU09VUCkKICAgICB2b2lkIHNl
dENvb2tpZVBlcnNpc3RlbnRTdG9yYWdlKFBBTDo6U2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIHN0
b3JhZ2VQYXRoLCBTb3VwQ29va2llUGVyc2lzdGVudFN0b3JhZ2VUeXBlKTsKQEAgLTc5LDkgKzc5
LDExIEBAIHByaXZhdGU6CiAgICAgdm9pZCBnZXRBbGxDb29raWVzKFBBTDo6U2Vzc2lvbklELCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKFZlY3RvcjxXZWJDb3JlOjpDb29raWU+JiYpPiYmKTsKICAg
ICB2b2lkIGdldENvb2tpZXMoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFVSTCYsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4mJik+JiYpOwogCi0gICAgdm9pZCBw
bGF0Zm9ybVNldEhUVFBDb29raWVBY2NlcHRQb2xpY3koSFRUUENvb2tpZUFjY2VwdFBvbGljeSk7
Ci0gICAgdm9pZCBnZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoSFRUUENvb2tpZUFjY2VwdFBvbGljeSk+JiYpOwotICAgIEhUVFBDb29raWVBY2NlcHRQb2xp
Y3kgcGxhdGZvcm1HZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KCk7CisgICAgdm9pZCBwbGF0Zm9y
bVNldEhUVFBDb29raWVBY2NlcHRQb2xpY3koV2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBvbGlj
eSk7CisgICAgdm9pZCBnZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoV2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBvbGljeSk+JiYpOworI2lmIFBMQVRGT1JN
KENPQ09BKQorICAgIFdlYkNvcmU6OkhUVFBDb29raWVBY2NlcHRQb2xpY3kgcGxhdGZvcm1HZXRI
VFRQQ29va2llQWNjZXB0UG9saWN5KCk7CisjZW5kaWYKIAogICAgIHZvaWQgc3RhcnRPYnNlcnZp
bmdDb29raWVDaGFuZ2VzKFBBTDo6U2Vzc2lvbklEKTsKICAgICB2b2lkIHN0b3BPYnNlcnZpbmdD
b29raWVDaGFuZ2VzKFBBTDo6U2Vzc2lvbklEKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvQ29va2llcy9XZWJDb29raWVNYW5hZ2VyLm1lc3NhZ2VzLmluIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIubWVzc2Fn
ZXMuaW4KaW5kZXggYWY0YzA5YjczMWZiMDQ5OGRhM2M1Mzc4MmI1ODNlYmI4YjMzMDRkMS4uYWNk
NzU0NDBkODNmMzQ2NjUwYzlmMzNiNzViNWQ1ZDA5MzUyMTNiYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIubWVzc2FnZXMu
aW4KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1h
bmFnZXIubWVzc2FnZXMuaW4KQEAgLTM1LDggKzM1LDggQEAgbWVzc2FnZXMgLT4gV2ViQ29va2ll
TWFuYWdlciBOb3RSZWZDb3VudGVkIHsKICAgICB2b2lkIERlbGV0ZUNvb2tpZShQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQsIHN0cnVjdCBXZWJDb3JlOjpDb29raWUgY29va2llKSAtPiAoKSBBc3lu
YwogICAgIHZvaWQgRGVsZXRlQWxsQ29va2llc01vZGlmaWVkU2luY2UoUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvbklELCBXYWxsVGltZSB0aW1lKSAtPiAoKSBBc3luYwogCi0gICAgdm9pZCBTZXRIVFRQ
Q29va2llQWNjZXB0UG9saWN5KGVudW06dWludDhfdCBXZWJLaXQ6OkhUVFBDb29raWVBY2NlcHRQ
b2xpY3kgcG9saWN5KSAtPiAoKSBBc3luYwotICAgIHZvaWQgR2V0SFRUUENvb2tpZUFjY2VwdFBv
bGljeSgpIC0+IChlbnVtOnVpbnQ4X3QgV2ViS2l0OjpIVFRQQ29va2llQWNjZXB0UG9saWN5IHBv
bGljeSkgQXN5bmMKKyAgICB2b2lkIFNldEhUVFBDb29raWVBY2NlcHRQb2xpY3koZW51bTp1aW50
OF90IFdlYkNvcmU6OkhUVFBDb29raWVBY2NlcHRQb2xpY3kgcG9saWN5KSAtPiAoKSBBc3luYwor
ICAgIHZvaWQgR2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeSgpIC0+IChlbnVtOnVpbnQ4X3QgV2Vi
Q29yZTo6SFRUUENvb2tpZUFjY2VwdFBvbGljeSBwb2xpY3kpIEFzeW5jCiAgICAgCiAgICAgdm9p
ZCBTdGFydE9ic2VydmluZ0Nvb2tpZUNoYW5nZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQog
ICAgIHZvaWQgU3RvcE9ic2VydmluZ0Nvb2tpZUNoYW5nZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Db29raWVzL2N1
cmwvV2ViQ29va2llTWFuYWdlckN1cmwuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9Db29raWVzL2N1cmwvV2ViQ29va2llTWFuYWdlckN1cmwuY3BwCmluZGV4IGMxYTM2Y2RlOWI1
ZWVlNmY3NTE5ZmUwMTMwZWIwMzdmYWUyNTcyMWIuLjdhNWNiMzk2ZTI5Yzg4ZDg0ODBmYTFjYjYz
NzBjYmM0NWJmZmU3ZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
Q29va2llcy9jdXJsL1dlYkNvb2tpZU1hbmFnZXJDdXJsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL0Nvb2tpZXMvY3VybC9XZWJDb29raWVNYW5hZ2VyQ3VybC5jcHAKQEAg
LTI2LDggKzI2LDggQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJXZWJDb29raWVN
YW5hZ2VyLmgiCiAKLSNpbmNsdWRlICJIVFRQQ29va2llQWNjZXB0UG9saWN5LmgiCiAjaW5jbHVk
ZSAiTmV0d29ya1Byb2Nlc3MuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0hUVFBDb29raWVBY2NlcHRQ
b2xpY3kuaD4KICNpbmNsdWRlIDxXZWJDb3JlL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oPgogCiBu
YW1lc3BhY2UgV2ViS2l0IHsKQEAgLTU3LDIyICs1Nyw0IEBAIHZvaWQgV2ViQ29va2llTWFuYWdl
cjo6cGxhdGZvcm1TZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KEhUVFBDb29raWVBY2NlcHRQb2xp
Y3kKICAgICB9KTsKIH0KIAotSFRUUENvb2tpZUFjY2VwdFBvbGljeSBXZWJDb29raWVNYW5hZ2Vy
OjpwbGF0Zm9ybUdldEhUVFBDb29raWVBY2NlcHRQb2xpY3koKQotewotICAgIGNvbnN0IGF1dG8m
IG5ldHdvcmtTdG9yYWdlU2Vzc2lvbiA9IG1fcHJvY2Vzcy5kZWZhdWx0U3RvcmFnZVNlc3Npb24o
KTsKLSAgICBzd2l0Y2ggKG5ldHdvcmtTdG9yYWdlU2Vzc2lvbi5jb29raWVTdG9yYWdlKCkuY29v
a2llQWNjZXB0UG9saWN5KG5ldHdvcmtTdG9yYWdlU2Vzc2lvbikpIHsKLSAgICBjYXNlIENvb2tp
ZUFjY2VwdFBvbGljeTo6QWx3YXlzOgotICAgICAgICByZXR1cm4gSFRUUENvb2tpZUFjY2VwdFBv
bGljeTo6QWx3YXlzQWNjZXB0OwotICAgIGNhc2UgQ29va2llQWNjZXB0UG9saWN5OjpOZXZlcjoK
LSAgICAgICAgcmV0dXJuIEhUVFBDb29raWVBY2NlcHRQb2xpY3k6Ok5ldmVyOwotICAgIGNhc2Ug
Q29va2llQWNjZXB0UG9saWN5OjpPbmx5RnJvbU1haW5Eb2N1bWVudERvbWFpbjoKLSAgICAgICAg
cmV0dXJuIEhUVFBDb29raWVBY2NlcHRQb2xpY3k6Ok9ubHlGcm9tTWFpbkRvY3VtZW50RG9tYWlu
OwotICAgIGNhc2UgQ29va2llQWNjZXB0UG9saWN5OjpFeGNsdXNpdmVseUZyb21NYWluRG9jdW1l
bnREb21haW46Ci0gICAgICAgIHJldHVybiBIVFRQQ29va2llQWNjZXB0UG9saWN5OjpFeGNsdXNp
dmVseUZyb21NYWluRG9jdW1lbnREb21haW47Ci0gICAgfQotCi0gICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7Ci0gICAgcmV0dXJuIEhUVFBDb29raWVBY2NlcHRQb2xpY3k6Ok9ubHlGcm9tTWFpbkRv
Y3VtZW50RG9tYWluOwotfQotCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ29va2llcy9tYWMvV2ViQ29va2llTWFuYWdlck1h
Yy5tbSBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ29va2llcy9tYWMvV2ViQ29va2ll
TWFuYWdlck1hYy5tbQppbmRleCBiYzllOTI0M2Q0MjczOGQwZmUyYzYyOGNkN2Q0MTllYTFhNDA2
ZWY3Li41YzhiMzRjODI1NWRiZGY3OTA5MGM5MThmMTExN2E0ZWMxNTgxNzM2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Nvb2tpZXMvbWFjL1dlYkNvb2tpZU1hbmFn
ZXJNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Db29raWVzL21hYy9X
ZWJDb29raWVNYW5hZ2VyTWFjLm1tCkBAIC0yNiw5ICsyNiw5IEBACiAjaW1wb3J0ICJjb25maWcu
aCIKICNpbXBvcnQgIldlYkNvb2tpZU1hbmFnZXIuaCIKIAotI2ltcG9ydCAiSFRUUENvb2tpZUFj
Y2VwdFBvbGljeS5oIgogI2ltcG9ydCAiTmV0d29ya1Byb2Nlc3MuaCIKICNpbXBvcnQgIk5ldHdv
cmtTZXNzaW9uLmgiCisjaW1wb3J0IDxXZWJDb3JlL0hUVFBDb29raWVBY2NlcHRQb2xpY3kuaD4K
ICNpbXBvcnQgPFdlYkNvcmUvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmg+CiAjaW1wb3J0IDxwYWwv
c3BpL2NmL0NGTmV0d29ya1NQSS5oPgogI2ltcG9ydCA8d3RmL1Byb2Nlc3NQcml2aWxlZ2UuaD4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ29va2llcy9zb3VwL1dl
YkNvb2tpZU1hbmFnZXJTb3VwLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ29v
a2llcy9zb3VwL1dlYkNvb2tpZU1hbmFnZXJTb3VwLmNwcAppbmRleCBlYTkxNTIyYzA5YTQ4MGNk
NjJmNGM4OWFjODQyYzdlZDEzMjIxYjgxLi5jYmZjYWVlNTYzYTEyNjY4ZDQzMjE5NjJjMDY4ZjI5
MjE4YmUzMjU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Nvb2tp
ZXMvc291cC9XZWJDb29raWVNYW5hZ2VyU291cC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9Db29raWVzL3NvdXAvV2ViQ29va2llTWFuYWdlclNvdXAuY3BwCkBAIC0yNiwx
MCArMjYsMTAgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJXZWJDb29raWVNYW5h
Z2VyLmgiCiAKLSNpbmNsdWRlICJIVFRQQ29va2llQWNjZXB0UG9saWN5LmgiCiAjaW5jbHVkZSAi
TmV0d29ya1Byb2Nlc3MuaCIKICNpbmNsdWRlICJOZXR3b3JrU2Vzc2lvblNvdXAuaCIKICNpbmNs
dWRlICJTb3VwQ29va2llUGVyc2lzdGVudFN0b3JhZ2VUeXBlLmgiCisjaW5jbHVkZSA8V2ViQ29y
ZS9IVFRQQ29va2llQWNjZXB0UG9saWN5Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9OZXR3b3JrU3Rv
cmFnZVNlc3Npb24uaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NvdXBOZXR3b3JrU2Vzc2lvbi5oPgog
I2luY2x1ZGUgPGxpYnNvdXAvc291cC5oPgpAQCAtNjAsMjEgKzYwLDYgQEAgdm9pZCBXZWJDb29r
aWVNYW5hZ2VyOjpwbGF0Zm9ybVNldEhUVFBDb29raWVBY2NlcHRQb2xpY3koSFRUUENvb2tpZUFj
Y2VwdFBvbGljeQogICAgIH0pOwogfQogCi1IVFRQQ29va2llQWNjZXB0UG9saWN5IFdlYkNvb2tp
ZU1hbmFnZXI6OnBsYXRmb3JtR2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeSgpCi17Ci0gICAgc3dp
dGNoIChzb3VwX2Nvb2tpZV9qYXJfZ2V0X2FjY2VwdF9wb2xpY3kobV9wcm9jZXNzLmRlZmF1bHRT
dG9yYWdlU2Vzc2lvbigpLmNvb2tpZVN0b3JhZ2UoKSkpIHsKLSAgICBjYXNlIFNPVVBfQ09PS0lF
X0pBUl9BQ0NFUFRfQUxXQVlTOgotICAgICAgICByZXR1cm4gSFRUUENvb2tpZUFjY2VwdFBvbGlj
eTo6QWx3YXlzQWNjZXB0OwotICAgIGNhc2UgU09VUF9DT09LSUVfSkFSX0FDQ0VQVF9ORVZFUjoK
LSAgICAgICAgcmV0dXJuIEhUVFBDb29raWVBY2NlcHRQb2xpY3k6Ok5ldmVyOwotICAgIGNhc2Ug
U09VUF9DT09LSUVfSkFSX0FDQ0VQVF9OT19USElSRF9QQVJUWToKLSAgICAgICAgcmV0dXJuIEhU
VFBDb29raWVBY2NlcHRQb2xpY3k6Ok9ubHlGcm9tTWFpbkRvY3VtZW50RG9tYWluOwotICAgIH0K
LQotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiBIVFRQQ29va2llQWNjZXB0
UG9saWN5OjpPbmx5RnJvbU1haW5Eb2N1bWVudERvbWFpbjsKLX0KLQogdm9pZCBXZWJDb29raWVN
YW5hZ2VyOjpzZXRDb29raWVQZXJzaXN0ZW50U3RvcmFnZShQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQsIGNvbnN0IFN0cmluZyYgc3RvcmFnZVBhdGgsIFNvdXBDb29raWVQZXJzaXN0ZW50U3RvcmFn
ZVR5cGUgc3RvcmFnZVR5cGUpCiB7CiAgICAgaWYgKGF1dG8qIG5ldHdvcmtTZXNzaW9uID0gbV9w
cm9jZXNzLm5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mu
Y3BwCmluZGV4IGIyZDRjNmMxZjYxOTYwNzE0MmVhYzc3MjRiY2JiYTA4MThmM2IwNTIuLmQxOGJl
MzBlNjc4NWRmYzA4MTI3ODZiNWU0OGI1Mzc4ZmQwZjgzZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MuY3BwCkBAIC00NjMsNiArNDYzLDExIEBAIHZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3M6OnNldE9uTGluZVN0YXRlKGJvb2wgaXNPbkxpbmUpCiAgICAgbV9jb25uZWN0aW9u
LT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OlNldE9uTGluZVN0YXRl
KGlzT25MaW5lKSwgMCk7CiB9CiAKK3ZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6
OmNvb2tpZUFjY2VwdFBvbGljeUNoYW5nZWQoSFRUUENvb2tpZUFjY2VwdFBvbGljeSBuZXdQb2xp
Y3kpCit7CisgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzc0Nv
bm5lY3Rpb246OkNvb2tpZUFjY2VwdFBvbGljeUNoYW5nZWQobmV3UG9saWN5KSwgMCk7Cit9CisK
IHZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnJlbW92ZUxvYWRJZGVudGlmaWVy
KFJlc291cmNlTG9hZElkZW50aWZpZXIgaWRlbnRpZmllcikKIHsKICAgICBSRUxFQVNFX0FTU0VS
VChpZGVudGlmaWVyKTsKQEAgLTU5MywxNCArNTk4LDYgQEAgdm9pZCBOZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzczo6c2V0Q29va2llc0Zyb21ET00oY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBj
b24KICNlbmRpZgogfQogCi12b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpjb29r
aWVzRW5hYmxlZChDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5k
bGVyKQotewotICAgIGF1dG8qIG5ldHdvcmtTdG9yYWdlU2Vzc2lvbiA9IHN0b3JhZ2VTZXNzaW9u
KCk7Ci0gICAgaWYgKCFuZXR3b3JrU3RvcmFnZVNlc3Npb24pCi0gICAgICAgIHJldHVybiBjb21w
bGV0aW9uSGFuZGxlcihmYWxzZSk7Ci0gICAgY29tcGxldGlvbkhhbmRsZXIobmV0d29ya1N0b3Jh
Z2VTZXNzaW9uLT5jb29raWVzRW5hYmxlZCgpKTsKLX0KLQogdm9pZCBOZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzczo6Y29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoY29uc3QgVVJMJiBm
aXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5mbywgY29uc3QgVVJMJiB1
cmwsIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50
aWZpZXI+IHBhZ2VJRCwgSW5jbHVkZVNlY3VyZUNvb2tpZXMgaW5jbHVkZVNlY3VyZUNvb2tpZXMs
IFNob3VsZEFza0lUUCBzaG91bGRBc2tJVFAsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5n
LCBib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBhdXRvKiBuZXR3b3JrU3RvcmFn
ZVNlc3Npb24gPSBzdG9yYWdlU2Vzc2lvbigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCmluZGV4
IDgzOTc0MzFjMDMzMTNjYzJjMDUwZDUxMmM5NTJhZTdlM2ZlZTlhNjUuLmU4MzVlNjQxYjYwOTI2
ZGJkMzRmNDQxZjRlMzhkMDVjN2M3NWYyYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKQEAg
LTYxLDYgKzYxLDcgQEAgZW51bSBjbGFzcyBTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCA6IGJvb2w7
CiBlbnVtIGNsYXNzIFNob3VsZEFza0lUUCA6IGJvb2w7CiBzdHJ1Y3QgU2FtZVNpdGVJbmZvOwog
CitlbnVtIGNsYXNzIEhUVFBDb29raWVBY2NlcHRQb2xpY3kgOiB1aW50OF90OwogZW51bSBjbGFz
cyBJbmNsdWRlU2VjdXJlQ29va2llcyA6IGJvb2w7CiB9CiAKQEAgLTE2Nyw2ICsxNjgsOCBAQCBw
dWJsaWM6CiAKICAgICBOZXR3b3JrU2NoZW1lUmVnaXN0cnkmIHNjaGVtZVJlZ2lzdHJ5KCkgeyBy
ZXR1cm4gbV9zY2hlbWVSZWdpc3RyeS5nZXQoKTsgfQogCisgICAgdm9pZCBjb29raWVBY2NlcHRQ
b2xpY3lDaGFuZ2VkKFdlYkNvcmU6OkhUVFBDb29raWVBY2NlcHRQb2xpY3kpOworCiBwcml2YXRl
OgogICAgIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzKE5ldHdvcmtQcm9jZXNzJiwgV2Vi
Q29yZTo6UHJvY2Vzc0lkZW50aWZpZXIsIFBBTDo6U2Vzc2lvbklELCBJUEM6OkNvbm5lY3Rpb246
OklkZW50aWZpZXIpOwogCkBAIC0yMDAsNyArMjAzLDYgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQg
Y29va2llc0ZvckRPTShjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlNhbWVT
aXRlSW5mbyYsIGNvbnN0IFVSTCYsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgV2ViQ29yZTo6
UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OkluY2x1ZGVTZWN1cmVDb29raWVzLCBXZWJDb3JlOjpT
aG91bGRBc2tJVFAsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nIGNvb2tpZVN0cmluZywg
Ym9vbCBzZWN1cmVDb29raWVzQWNjZXNzZWQpPiYmKTsKICAgICB2b2lkIHNldENvb2tpZXNGcm9t
RE9NKGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6U2FtZVNpdGVJbmZvJiwg
Y29uc3QgVVJMJiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJDb3JlOjpQYWdlSWRlbnRp
ZmllciwgV2ViQ29yZTo6U2hvdWxkQXNrSVRQLCBjb25zdCBTdHJpbmcmKTsKLSAgICB2b2lkIGNv
b2tpZXNFbmFibGVkKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwogICAgIHZvaWQg
Y29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25z
dCBXZWJDb3JlOjpTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmLCBPcHRpb25hbDxXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXI+LCBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4sIFdlYkNv
cmU6OkluY2x1ZGVTZWN1cmVDb29raWVzLCBXZWJDb3JlOjpTaG91bGRBc2tJVFAsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoU3RyaW5nIGNvb2tpZVN0cmluZywgYm9vbCBzZWN1cmVDb29raWVzQWNj
ZXNzZWQpPiYmKTsKICAgICB2b2lkIGdldFJhd0Nvb2tpZXMoY29uc3QgVVJMJiBmaXJzdFBhcnR5
LCBjb25zdCBXZWJDb3JlOjpTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmLCBPcHRpb25hbDxXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXI+LCBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4s
IFdlYkNvcmU6OlNob3VsZEFza0lUUCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8V2Vi
Q29yZTo6Q29va2llPiYmKT4mJik7CiAgICAgdm9pZCBkZWxldGVDb29raWUoY29uc3QgVVJMJiwg
Y29uc3QgU3RyaW5nJiBjb29raWVOYW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4gYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
Lm1lc3NhZ2VzLmluCmluZGV4IDg0Y2ZiZGYzZmI5MzRkNzkxNDM3MTYyMTFhMjUwNmZjZjYxMzRk
NWEuLjAyMGI0N2E3N2I3M2MxOGE2YTYyZDQ2NTAxNWE3Y2E0YmMzYWIwNTAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgpAQCAtMzYsNyArMzYsNiBAQCBtZXNz
YWdlcyAtPiBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyBMZWdhY3lSZWNlaXZlciB7CiAK
ICAgICBDb29raWVzRm9yRE9NKFVSTCBmaXJzdFBhcnR5LCBzdHJ1Y3QgV2ViQ29yZTo6U2FtZVNp
dGVJbmZvIHNhbWVTaXRlSW5mbywgVVJMIHVybCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZy
YW1lSUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgZW51bTpib29sIFdlYkNvcmU6
OkluY2x1ZGVTZWN1cmVDb29raWVzIGluY2x1ZGVTZWN1cmVDb29raWVzLCBlbnVtOmJvb2wgV2Vi
Q29yZTo6U2hvdWxkQXNrSVRQIHNob3VsZEFza0lUUCkgLT4gKFN0cmluZyBjb29raWVTdHJpbmcs
IGJvb2wgZGlkQWNjZXNzU2VjdXJlQ29va2llcykgU3luY2hyb25vdXMKICAgICBTZXRDb29raWVz
RnJvbURPTShVUkwgZmlyc3RQYXJ0eSwgc3RydWN0IFdlYkNvcmU6OlNhbWVTaXRlSW5mbyBzYW1l
U2l0ZUluZm8sIFVSTCB1cmwsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBXZWJD
b3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIGVudW06Ym9vbCBXZWJDb3JlOjpTaG91bGRBc2tJ
VFAgc2hvdWxkQXNrSVRQLCBTdHJpbmcgY29va2llU3RyaW5nKQotICAgIENvb2tpZXNFbmFibGVk
KCkgLT4gKGJvb2wgZW5hYmxlZCkgU3luY2hyb25vdXMKICAgICBDb29raWVSZXF1ZXN0SGVhZGVy
RmllbGRWYWx1ZShVUkwgZmlyc3RQYXJ0eSwgc3RydWN0IFdlYkNvcmU6OlNhbWVTaXRlSW5mbyBz
YW1lU2l0ZUluZm8sIFVSTCB1cmwsIE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4g
ZnJhbWVJRCwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgZW51bTpi
b29sIFdlYkNvcmU6OkluY2x1ZGVTZWN1cmVDb29raWVzIGluY2x1ZGVTZWN1cmVDb29raWVzLCBl
bnVtOmJvb2wgV2ViQ29yZTo6U2hvdWxkQXNrSVRQIHNob3VsZEFza0lUUCkgLT4gKFN0cmluZyBj
b29raWVTdHJpbmcsIGJvb2wgZGlkQWNjZXNzU2VjdXJlQ29va2llcykgU3luY2hyb25vdXMKICAg
ICBHZXRSYXdDb29raWVzKFVSTCBmaXJzdFBhcnR5LCBzdHJ1Y3QgV2ViQ29yZTo6U2FtZVNpdGVJ
bmZvIHNhbWVTaXRlSW5mbywgVVJMIHVybCwgT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyPiBmcmFtZUlELCBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBl
bnVtOmJvb2wgV2ViQ29yZTo6U2hvdWxkQXNrSVRQIHNob3VsZEFza0lUUCkgLT4gKFZlY3RvcjxX
ZWJDb3JlOjpDb29raWU+IGNvb2tpZXMpIFN5bmNocm9ub3VzCiAgICAgRGVsZXRlQ29va2llKFVS
TCB1cmwsIFN0cmluZyBjb29raWVOYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtQcm9jZXNzLmNwcAppbmRleCAzOTkyNmViNmFhODhhOWEyNjFiMzQwNzg1Zjc0
MThiODlmZjIxMTY4Li5hZjI0Y2ZmZjg3MTliNzgwYjViODA4MmYyYTNlODExMjEyN2M3MWJhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcApA
QCAtNzAsNiArNzAsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvRE5TLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9EZXByZWNhdGVkR2xvYmFsU2V0dGluZ3MuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0RpYWdu
b3N0aWNMb2dnaW5nQ2xpZW50Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9IVFRQQ29va2llQWNjZXB0
UG9saWN5Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9MZWdhY3lTY2hlbWVSZWdpc3RyeS5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvTG9nSW5pdGlhbGl6YXRpb24uaD4KICNpbmNsdWRlIDxXZWJDb3JlL01J
TUVUeXBlUmVnaXN0cnkuaD4KQEAgLTM2OCwxMSArMzY5LDExIEBAIHZvaWQgTmV0d29ya1Byb2Nl
c3M6OmluaXRpYWxpemVDb25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbikKICAg
ICAgICAgc3VwcGxlbWVudC0+aW5pdGlhbGl6ZUNvbm5lY3Rpb24oY29ubmVjdGlvbik7CiB9CiAK
LXZvaWQgTmV0d29ya1Byb2Nlc3M6OmNyZWF0ZU5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
KFByb2Nlc3NJZGVudGlmaWVyIGlkZW50aWZpZXIsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxJUEM6OkF0dGFjaG1lbnQ+JiYpPiYmIGNv
bXBsZXRpb25IYW5kbGVyKQordm9pZCBOZXR3b3JrUHJvY2Vzczo6Y3JlYXRlTmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MoUHJvY2Vzc0lkZW50aWZpZXIgaWRlbnRpZmllciwgUEFMOjpTZXNz
aW9uSUQgc2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPElQQzo6QXR0
YWNobWVudD4mJiwgSFRUUENvb2tpZUFjY2VwdFBvbGljeSk+JiYgY29tcGxldGlvbkhhbmRsZXIp
CiB7CiAgICAgYXV0byBpcGNDb25uZWN0aW9uID0gY3JlYXRlSVBDQ29ubmVjdGlvblBhaXIoKTsK
ICAgICBpZiAoIWlwY0Nvbm5lY3Rpb24pIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoeyB9
KTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoeyB9LCBIVFRQQ29va2llQWNjZXB0UG9saWN5
OjpOZXZlcik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTM4Miw3ICszODMsMTEgQEAg
dm9pZCBOZXR3b3JrUHJvY2Vzczo6Y3JlYXRlTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mo
UHJvY2Vzc0lkZW50aWZpZXIgaWRlbnQKICAgICBBU1NFUlQoIW1fd2ViUHJvY2Vzc0Nvbm5lY3Rp
b25zLmNvbnRhaW5zKGlkZW50aWZpZXIpKTsKICAgICBtX3dlYlByb2Nlc3NDb25uZWN0aW9ucy5h
ZGQoaWRlbnRpZmllciwgV1RGTW92ZShuZXdDb25uZWN0aW9uKSk7CiAKLSAgICBjb21wbGV0aW9u
SGFuZGxlcihXVEZNb3ZlKGlwY0Nvbm5lY3Rpb24tPnNlY29uZCkpOworICAgIEhUVFBDb29raWVB
Y2NlcHRQb2xpY3kgY29va2llQWNjZXB0UG9saWN5ID0gSFRUUENvb2tpZUFjY2VwdFBvbGljeTo6
TmV2ZXI7CisgICAgaWYgKGF1dG8qIHN0b3JhZ2UgPSBzdG9yYWdlU2Vzc2lvbihzZXNzaW9uSUQp
KQorICAgICAgICBjb29raWVBY2NlcHRQb2xpY3kgPSBzdG9yYWdlLT5jb29raWVBY2NlcHRQb2xp
Y3koKTsKKworICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUoaXBjQ29ubmVjdGlvbi0+c2Vj
b25kKSwgY29va2llQWNjZXB0UG9saWN5KTsKIAogICAgIGNvbm5lY3Rpb24uc2V0T25MaW5lU3Rh
dGUoTmV0d29ya1N0YXRlTm90aWZpZXI6OnNpbmdsZXRvbigpLm9uTGluZSgpKTsKIApAQCAtNTA3
LDYgKzUxMiwxMiBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjplbnN1cmVTZXNzaW9uKGNvbnN0IFBB
TDo6U2Vzc2lvbklEJiBzZXNzaW9uSUQsIGJvb2wgc2hvdWxkVQogI2VuZGlmCiB9CiAKK3ZvaWQg
TmV0d29ya1Byb2Nlc3M6OmNvb2tpZUFjY2VwdFBvbGljeUNoYW5nZWQoSFRUUENvb2tpZUFjY2Vw
dFBvbGljeSBuZXdQb2xpY3kpCit7CisgICAgZm9yIChhdXRvJiBjb25uZWN0aW9uIDogbV93ZWJQ
cm9jZXNzQ29ubmVjdGlvbnMudmFsdWVzKCkpCisgICAgICAgIGNvbm5lY3Rpb24tPmNvb2tpZUFj
Y2VwdFBvbGljeUNoYW5nZWQobmV3UG9saWN5KTsKK30KKwogV2ViQ29yZTo6TmV0d29ya1N0b3Jh
Z2VTZXNzaW9uKiBOZXR3b3JrUHJvY2Vzczo6c3RvcmFnZVNlc3Npb24oY29uc3QgUEFMOjpTZXNz
aW9uSUQmIHNlc3Npb25JRCkgY29uc3QKIHsKICAgICBpZiAoc2Vzc2lvbklEID09IFBBTDo6U2Vz
c2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtQcm9jZXNzLmgKaW5kZXggY2FhZGMyMDFiYjI0ZjUyZDBkN2QzYWVjYjg5Y2Q5
ZTNiMGFiYTYyNy4uZDZkOTU0NTMzOTY4YTFjNDFjMjVmNDUyMGFmMzgzZDMxNjQ3MTk2OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaApAQCAtODEs
NiArODEsNyBAQCBjbGFzcyBTdG9yYWdlUXVvdGFNYW5hZ2VyOwogY2xhc3MgTmV0d29ya1N0b3Jh
Z2VTZXNzaW9uOwogY2xhc3MgUmVzb3VyY2VFcnJvcjsKIGNsYXNzIFNXU2VydmVyOworZW51bSBj
bGFzcyBIVFRQQ29va2llQWNjZXB0UG9saWN5IDogdWludDhfdDsKIGVudW0gY2xhc3MgSW5jbHVk
ZUh0dHBPbmx5Q29va2llcyA6IGJvb2w7CiBlbnVtIGNsYXNzIFN0b3JlZENyZWRlbnRpYWxzUG9s
aWN5IDogdWludDhfdDsKIGVudW0gY2xhc3MgU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duIDog
Ym9vbDsKQEAgLTM0NCw2ICszNDUsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCByZXNldFNlcnZpY2VX
b3JrZXJGZXRjaFRpbWVvdXRGb3JUZXN0aW5nKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7
CiAgICAgU2Vjb25kcyBzZXJ2aWNlV29ya2VyRmV0Y2hUaW1lb3V0KCkgY29uc3QgeyByZXR1cm4g
bV9zZXJ2aWNlV29ya2VyRmV0Y2hUaW1lb3V0OyB9CiAKKyAgICB2b2lkIGNvb2tpZUFjY2VwdFBv
bGljeUNoYW5nZWQoV2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBvbGljeSk7CisKIHByaXZhdGU6
CiAgICAgdm9pZCBwbGF0Zm9ybUluaXRpYWxpemVOZXR3b3JrUHJvY2Vzcyhjb25zdCBOZXR3b3Jr
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYpOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3Jl
OjpOZXR3b3JrU3RvcmFnZVNlc3Npb24+IHBsYXRmb3JtQ3JlYXRlRGVmYXVsdFN0b3JhZ2VTZXNz
aW9uKCkgY29uc3Q7CkBAIC0zODQsNyArMzg3LDcgQEAgcHJpdmF0ZToKICAgICAvLyBNZXNzYWdl
IEhhbmRsZXJzCiAgICAgdm9pZCBkaWRSZWNlaXZlU3luY05ldHdvcmtQcm9jZXNzTWVzc2FnZShJ
UEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNv
ZGVyPiYpOwogICAgIHZvaWQgaW5pdGlhbGl6ZU5ldHdvcmtQcm9jZXNzKE5ldHdvcmtQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzJiYpOwotICAgIHZvaWQgY3JlYXRlTmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3MoV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIsIFBBTDo6U2Vzc2lvbklELCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPElQQzo6QXR0YWNobWVudD4mJik+JiYpOwor
ICAgIHZvaWQgY3JlYXRlTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoV2ViQ29yZTo6UHJv
Y2Vzc0lkZW50aWZpZXIsIFBBTDo6U2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9w
dGlvbmFsPElQQzo6QXR0YWNobWVudD4mJiwgV2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBvbGlj
eSk+JiYpOwogCiAgICAgdm9pZCBmZXRjaFdlYnNpdGVEYXRhKFBBTDo6U2Vzc2lvbklELCBPcHRp
b25TZXQ8V2Vic2l0ZURhdGFUeXBlPiwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhRmV0Y2hPcHRpb24+
LCB1aW50NjRfdCBjYWxsYmFja0lEKTsKICAgICB2b2lkIGRlbGV0ZVdlYnNpdGVEYXRhKFBBTDo6
U2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiwgV2FsbFRpbWUgbW9kaWZpZWRT
aW5jZSwgdWludDY0X3QgY2FsbGJhY2tJRCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgppbmRleCBhNTY2MTNjZGEz
NGM3ZTNhY2U1NTRmZDc4YjM1OTRiYWJhYmQ2NjA2Li4zOWQxMWYzYTI2NTMzMzY2YjY5YjJmNzA1
YTlkZGIxY2MzMWMxOGE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4KQEAgLTI1LDcgKzI1LDcgQEAgbWVzc2Fn
ZXMgLT4gTmV0d29ya1Byb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewogICAgIEluaXRpYWxpemVOZXR3
b3JrUHJvY2VzcyhzdHJ1Y3QgV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
cyBwcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzKQogCiAgICAgIyBDcmVhdGVzIGEgY29ubmVjdGlv
biBmb3IgY29tbXVuaWNhdGlvbiB3aXRoIGEgV2ViUHJvY2VzcwotICAgIENyZWF0ZU5ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzKFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyIHByb2Nlc3NJ
ZGVudGlmaWVyLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+IChPcHRpb25hbDxJUEM6OkF0
dGFjaG1lbnQ+IGNvbm5lY3Rpb25JZGVudGlmaWVyKSBBc3luYworICAgIENyZWF0ZU5ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzKFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyIHByb2Nlc3NJ
ZGVudGlmaWVyLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+IChPcHRpb25hbDxJUEM6OkF0
dGFjaG1lbnQ+IGNvbm5lY3Rpb25JZGVudGlmaWVyLCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6SFRU
UENvb2tpZUFjY2VwdFBvbGljeSBjb29raWVBY2NlcHRQb2xpY3kpIEFzeW5jCiAKICNpZiBVU0Uo
U09VUCkKICAgICBTZXRJZ25vcmVUTFNFcnJvcnMoYm9vbCBpZ25vcmVUTFNFcnJvcnMpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKaW5kZXggNTA5ZTM2N2ExYjBiNmFkMzkwMWNkNWRlMTIy
YmZlY2EzMGYzYzc1Mi4uY2I2YzMxMDlmOGVhNDEzMzMzOTYxYzg3YzJlZjZkNjk4MTc3OGVmMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaApAQCAtMzQsNyArMzQsNyBAQAogI2luY2x1
ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiAjaWYgVVNFKFNPVVApCi0jaW5jbHVkZSAiSFRU
UENvb2tpZUFjY2VwdFBvbGljeS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvSFRUUENvb2tpZUFjY2Vw
dFBvbGljeS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU291cE5ldHdvcmtQcm94eVNldHRpbmdzLmg+
CiAjZW5kaWYKIApAQCAtNzYsNyArNzYsNyBAQCBzdHJ1Y3QgTmV0d29ya1Byb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnMgewogICAgIFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzIGRlZmF1bHREYXRh
U3RvcmVQYXJhbWV0ZXJzOwogICAgIAogI2lmIFVTRShTT1VQKQotICAgIEhUVFBDb29raWVBY2Nl
cHRQb2xpY3kgY29va2llQWNjZXB0UG9saWN5IHsgSFRUUENvb2tpZUFjY2VwdFBvbGljeTo6QWx3
YXlzQWNjZXB0IH07CisgICAgV2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBvbGljeSBjb29raWVB
Y2NlcHRQb2xpY3kgeyBXZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0UG9saWN5OjpBbHdheXNBY2Nl
cHQgfTsKICAgICBib29sIGlnbm9yZVRMU0Vycm9ycyB7IGZhbHNlIH07CiAgICAgVmVjdG9yPFN0
cmluZz4gbGFuZ3VhZ2VzOwogICAgIFdlYkNvcmU6OlNvdXBOZXR3b3JrUHJveHlTZXR0aW5ncyBw
cm94eVNldHRpbmdzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvSFRUUENvb2tp
ZUFjY2VwdFBvbGljeS5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvSFRUUENvb2tpZUFjY2VwdFBv
bGljeS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0NTdjMjM0NGM5Yzg5ODZmZjZl
MjMyMzMwNWEyODQzM2Q4NmVhMGViLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0hUVFBDb29raWVBY2NlcHRQb2xpY3ku
aAorKysgL2Rldi9udWxsCkBAIC0xLDUxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQot
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotbmFtZXNwYWNlIFdlYktpdCB7
Ci0KLWVudW0gY2xhc3MgSFRUUENvb2tpZUFjY2VwdFBvbGljeSA6IHVpbnQ4X3QgewotICAgIEFs
d2F5c0FjY2VwdCA9IDAsCi0gICAgTmV2ZXIgPSAxLAotICAgIE9ubHlGcm9tTWFpbkRvY3VtZW50
RG9tYWluID0gMiwKLSAgICBFeGNsdXNpdmVseUZyb21NYWluRG9jdW1lbnREb21haW4gPSAzLAot
fTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLW5hbWVzcGFjZSBXVEYgewotCi10ZW1wbGF0
ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYktpdDo6SFRUUENvb2tpZUFjY2VwdFBvbGljeT4gewot
ICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8Ci0gICAgICAgIFdlYktpdDo6SFRUUENvb2tp
ZUFjY2VwdFBvbGljeSwKLSAgICAgICAgV2ViS2l0OjpIVFRQQ29va2llQWNjZXB0UG9saWN5OjpB
bHdheXNBY2NlcHQsCi0gICAgICAgIFdlYktpdDo6SFRUUENvb2tpZUFjY2VwdFBvbGljeTo6TmV2
ZXIsCi0gICAgICAgIFdlYktpdDo6SFRUUENvb2tpZUFjY2VwdFBvbGljeTo6T25seUZyb21NYWlu
RG9jdW1lbnREb21haW4sCi0gICAgICAgIFdlYktpdDo6SFRUUENvb2tpZUFjY2VwdFBvbGljeTo6
RXhjbHVzaXZlbHlGcm9tTWFpbkRvY3VtZW50RG9tYWluCi0gICAgPjsKLX07Ci0KLX0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMu
aCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaApp
bmRleCA0OTZjZmM5ZjdlODRhYWM2MjZiZTE3ZTdlNWIwMTZiOGQ1Y2M1MDBmLi5iNDMwMmQ2OGNl
N2MxNjk2MmVlYjg3Mjc3YzVmODNmYjg3ZjQ4OGM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKKysrIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCkBAIC00Nyw3ICs0Nyw3IEBA
CiAjZW5kaWYKIAogI2lmIFVTRShTT1VQKQotI2luY2x1ZGUgIkhUVFBDb29raWVBY2NlcHRQb2xp
Y3kuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0hUVFBDb29raWVBY2NlcHRQb2xpY3kuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL1NvdXBOZXR3b3JrUHJveHlTZXR0aW5ncy5oPgogI2VuZGlmCiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElIVFRQQ29va2llU3RvcmUuY3Bw
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUhUVFBDb29raWVTdG9yZS5jcHAKaW5k
ZXggYzJmN2VhMjAxMTA1MDEyZTJlNzM0OThhYzE3N2ZkZmQzMDgzYzkxNy4uMmVlMzBiZGZiZjc4
NTk3NzE0MmJhNzdjZTBhM2I4MGU5YzZjZjM1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0FQSUhUVFBDb29raWVTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0FQSUhUVFBDb29raWVTdG9yZS5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNp
bmNsdWRlICJXZWJzaXRlRGF0YVN0b3JlLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9Db29raWUuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL0Nvb2tpZVN0b3JhZ2UuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0hU
VFBDb29raWVBY2NlcHRQb2xpY3kuaD4KICNpbmNsdWRlIDxXZWJDb3JlL05ldHdvcmtTdG9yYWdl
U2Vzc2lvbi5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwpAQCAtMTMzLDcgKzEzNCw3IEBA
IHZvaWQgSFRUUENvb2tpZVN0b3JlOjpkZWxldGVBbGxDb29raWVzKENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuCiAgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFdU
Rk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAotdm9pZCBIVFRQQ29va2llU3RvcmU6OnNl
dEhUVFBDb29raWVBY2NlcHRQb2xpY3koV2ViS2l0OjpIVFRQQ29va2llQWNjZXB0UG9saWN5IHBv
bGljeSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9p
ZCBIVFRQQ29va2llU3RvcmU6OnNldEhUVFBDb29raWVBY2NlcHRQb2xpY3koV2ViQ29yZTo6SFRU
UENvb2tpZUFjY2VwdFBvbGljeSBwb2xpY3ksIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBj
b21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBhdXRvKiBwb29sID0gbV9vd25pbmdEYXRhU3RvcmUt
PnByb2Nlc3NQb29sRm9yQ29va2llU3RvcmFnZU9wZXJhdGlvbnMoKTsKICAgICBpZiAoIXBvb2wp
IHsKQEAgLTI3OSw3ICsyODAsNyBAQCB2b2lkIEhUVFBDb29raWVTdG9yZTo6ZGVsZXRlQ29va2ll
RnJvbURlZmF1bHRVSVByb2Nlc3NDb29raWVTdG9yZShjb25zdCBXZWJDb3JlOgogdm9pZCBIVFRQ
Q29va2llU3RvcmU6OnN0YXJ0T2JzZXJ2aW5nQ2hhbmdlc1RvRGVmYXVsdFVJUHJvY2Vzc0Nvb2tp
ZVN0b3JlKEZ1bmN0aW9uPHZvaWQoKT4mJikgeyB9CiB2b2lkIEhUVFBDb29raWVTdG9yZTo6c3Rv
cE9ic2VydmluZ0NoYW5nZXNUb0RlZmF1bHRVSVByb2Nlc3NDb29raWVTdG9yZSgpIHsgfQogdm9p
ZCBIVFRQQ29va2llU3RvcmU6OmRlbGV0ZUNvb2tpZXNJbkRlZmF1bHRVSVByb2Nlc3NDb29raWVT
dG9yZSgpIHsgfQotdm9pZCBIVFRQQ29va2llU3RvcmU6OnNldEhUVFBDb29raWVBY2NlcHRQb2xp
Y3lJbkRlZmF1bHRVSVByb2Nlc3NDb29raWVTdG9yZShXZWJLaXQ6OkhUVFBDb29raWVBY2NlcHRQ
b2xpY3kpIHsgfQordm9pZCBIVFRQQ29va2llU3RvcmU6OnNldEhUVFBDb29raWVBY2NlcHRQb2xp
Y3lJbkRlZmF1bHRVSVByb2Nlc3NDb29raWVTdG9yZShXZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0
UG9saWN5KSB7IH0KICNlbmRpZgogICAgIAogfSAvLyBuYW1lc3BhY2UgQVBJCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJSFRUUENvb2tpZVN0b3JlLmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJSFRUUENvb2tpZVN0b3JlLmgKaW5kZXggMmU0MWY2
MjRkNDc0ZjVmZjQxZTE1MjUxMjBmNWJmN2E2YmIyNmQzZC4uODE3OWM0NGY0ZTU4ZDJiNjI5ODU1
Y2E5MTU5MDk0ZjQzMmM0NmM3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0FQSUhUVFBDb29raWVTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9BUElIVFRQQ29va2llU3RvcmUuaApAQCAtMjYsNyArMjYsNiBAQAogI3ByYWdtYSBvbmNlCiAK
ICNpbmNsdWRlICJBUElPYmplY3QuaCIKLSNpbmNsdWRlICJIVFRQQ29va2llQWNjZXB0UG9saWN5
LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9Db29raWUuaD4KICNpbmNsdWRlIDx3dGYvQ29tcGxldGlv
bkhhbmRsZXIuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgpAQCAtMzcsMTIgKzM2LDEyIEBA
IHN0cnVjdCBDb29raWU7CiAjaWYgUExBVEZPUk0oQ09DT0EpCiBjbGFzcyBDb29raWVTdG9yYWdl
T2JzZXJ2ZXI7CiAjZW5kaWYKK2VudW0gY2xhc3MgSFRUUENvb2tpZUFjY2VwdFBvbGljeSA6IHVp
bnQ4X3Q7CiB9CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3MgV2ViQ29va2llTWFuYWdlclBy
b3h5OwogY2xhc3MgV2Vic2l0ZURhdGFTdG9yZTsKLWVudW0gY2xhc3MgSFRUUENvb2tpZUFjY2Vw
dFBvbGljeSA6IHVpbnQ4X3Q7CiB9CiAKIG5hbWVzcGFjZSBBUEkgewpAQCAtNjMsNyArNjIsNyBA
QCBwdWJsaWM6CiAgICAgdm9pZCBkZWxldGVDb29raWUoY29uc3QgV2ViQ29yZTo6Q29va2llJiwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICAKICAgICB2b2lkIGRlbGV0ZUFsbENv
b2tpZXMoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKLSAgICB2b2lkIHNldEhUVFBDb29r
aWVBY2NlcHRQb2xpY3koV2ViS2l0OjpIVFRQQ29va2llQWNjZXB0UG9saWN5LCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKCk+JiYpOworICAgIHZvaWQgc2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShX
ZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0UG9saWN5LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+
JiYpOwogCiAgICAgY2xhc3MgT2JzZXJ2ZXIgewogICAgIHB1YmxpYzoKQEAgLTkwLDcgKzg5LDcg
QEAgcHJpdmF0ZToKICAgICB2b2lkIHN0YXJ0T2JzZXJ2aW5nQ2hhbmdlc1RvRGVmYXVsdFVJUHJv
Y2Vzc0Nvb2tpZVN0b3JlKEZ1bmN0aW9uPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzdG9wT2JzZXJ2
aW5nQ2hhbmdlc1RvRGVmYXVsdFVJUHJvY2Vzc0Nvb2tpZVN0b3JlKCk7CiAgICAgdm9pZCBkZWxl
dGVDb29raWVzSW5EZWZhdWx0VUlQcm9jZXNzQ29va2llU3RvcmUoKTsKLSAgICB2b2lkIHNldEhU
VFBDb29raWVBY2NlcHRQb2xpY3lJbkRlZmF1bHRVSVByb2Nlc3NDb29raWVTdG9yZShXZWJLaXQ6
OkhUVFBDb29raWVBY2NlcHRQb2xpY3kpOworICAgIHZvaWQgc2V0SFRUUENvb2tpZUFjY2VwdFBv
bGljeUluRGVmYXVsdFVJUHJvY2Vzc0Nvb2tpZVN0b3JlKFdlYkNvcmU6OkhUVFBDb29raWVBY2Nl
cHRQb2xpY3kpOwogICAgIAogICAgIC8vIEZJWE1FOiBUaGlzIGlzIGEgcmVmZXJlbmNlIGN5Y2xl
LgogICAgIFJlZjxXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU+IG1fb3duaW5nRGF0YVN0b3JlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmggYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaAppbmRleCAwMGQxNjI3Mjcw
MjhhNjZiNDA3YjM1ZDU2MThkOTA1YzFlYTNiYTA0Li44MTA1NWE2MTliYTE5ZjU2NTIyYzQ3ODAx
YTVhMGNhYzNjNWZmYzQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Qy9XS0FQSUNhc3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNh
c3QuaApAQCAtMjgsNyArMjgsNiBAQAogI2RlZmluZSBXS0FQSUNhc3RfaAogCiAjaW5jbHVkZSAi
Q2FjaGVNb2RlbC5oIgotI2luY2x1ZGUgIkhUVFBDb29raWVBY2NlcHRQb2xpY3kuaCIKICNpbmNs
dWRlICJJbmplY3RlZEJ1bmRsZUhpdFRlc3RSZXN1bHRNZWRpYVR5cGUuaCIKICNpbmNsdWRlICJQ
bHVnaW5Nb2R1bGVJbmZvLmgiCiAjaW5jbHVkZSAiUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uLmgi
CkBAIC00Niw2ICs0NSw3IEBACiAjaW5jbHVkZSAiV0tTaGFyZWRBUElDYXN0LmgiCiAjaW5jbHVk
ZSA8V2ViQ29yZS9DcmVkZW50aWFsLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUxvYWRlclR5
cGVzLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9IVFRQQ29va2llQWNjZXB0UG9saWN5Lmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9QbHVnaW5EYXRhLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Qcm90ZWN0aW9u
U3BhY2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NldHRpbmdzLmg+CkBAIC0zNjksMzMgKzM2OSwz
MyBAQCBpbmxpbmUgUmVzb3VyY2VDYWNoZXNUb0NsZWFyIHRvUmVzb3VyY2VDYWNoZXNUb0NsZWFy
KFdLUmVzb3VyY2VDYWNoZXNUb0NsZWFyIHdrUgogICAgIHJldHVybiBBbGxSZXNvdXJjZUNhY2hl
czsKIH0KIAotaW5saW5lIEhUVFBDb29raWVBY2NlcHRQb2xpY3kgdG9IVFRQQ29va2llQWNjZXB0
UG9saWN5KFdLSFRUUENvb2tpZUFjY2VwdFBvbGljeSBwb2xpY3kpCitpbmxpbmUgV2ViQ29yZTo6
SFRUUENvb2tpZUFjY2VwdFBvbGljeSB0b0hUVFBDb29raWVBY2NlcHRQb2xpY3koV0tIVFRQQ29v
a2llQWNjZXB0UG9saWN5IHBvbGljeSkKIHsKICAgICBzd2l0Y2ggKHBvbGljeSkgewogICAgIGNh
c2Uga1dLSFRUUENvb2tpZUFjY2VwdFBvbGljeUFsd2F5czoKLSAgICAgICAgcmV0dXJuIEhUVFBD
b29raWVBY2NlcHRQb2xpY3k6OkFsd2F5c0FjY2VwdDsKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6
OkhUVFBDb29raWVBY2NlcHRQb2xpY3k6OkFsd2F5c0FjY2VwdDsKICAgICBjYXNlIGtXS0hUVFBD
b29raWVBY2NlcHRQb2xpY3lOZXZlcjoKLSAgICAgICAgcmV0dXJuIEhUVFBDb29raWVBY2NlcHRQ
b2xpY3k6Ok5ldmVyOworICAgICAgICByZXR1cm4gV2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBv
bGljeTo6TmV2ZXI7CiAgICAgY2FzZSBrV0tIVFRQQ29va2llQWNjZXB0UG9saWN5T25seUZyb21N
YWluRG9jdW1lbnREb21haW46Ci0gICAgICAgIHJldHVybiBIVFRQQ29va2llQWNjZXB0UG9saWN5
OjpPbmx5RnJvbU1haW5Eb2N1bWVudERvbWFpbjsKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkhU
VFBDb29raWVBY2NlcHRQb2xpY3k6Ok9ubHlGcm9tTWFpbkRvY3VtZW50RG9tYWluOwogICAgIGNh
c2Uga1dLSFRUUENvb2tpZUFjY2VwdFBvbGljeUV4Y2x1c2l2ZWx5RnJvbU1haW5Eb2N1bWVudERv
bWFpbjoKLSAgICAgICAgcmV0dXJuIEhUVFBDb29raWVBY2NlcHRQb2xpY3k6OkV4Y2x1c2l2ZWx5
RnJvbU1haW5Eb2N1bWVudERvbWFpbjsKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkhUVFBDb29r
aWVBY2NlcHRQb2xpY3k6OkV4Y2x1c2l2ZWx5RnJvbU1haW5Eb2N1bWVudERvbWFpbjsKICAgICB9
CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gSFRUUENvb2tpZUFjY2Vw
dFBvbGljeTo6QWx3YXlzQWNjZXB0OworICAgIHJldHVybiBXZWJDb3JlOjpIVFRQQ29va2llQWNj
ZXB0UG9saWN5OjpBbHdheXNBY2NlcHQ7CiB9CiAKLWlubGluZSBXS0hUVFBDb29raWVBY2NlcHRQ
b2xpY3kgdG9BUEkoSFRUUENvb2tpZUFjY2VwdFBvbGljeSBwb2xpY3kpCitpbmxpbmUgV0tIVFRQ
Q29va2llQWNjZXB0UG9saWN5IHRvQVBJKFdlYkNvcmU6OkhUVFBDb29raWVBY2NlcHRQb2xpY3kg
cG9saWN5KQogewogICAgIHN3aXRjaCAocG9saWN5KSB7Ci0gICAgY2FzZSBIVFRQQ29va2llQWNj
ZXB0UG9saWN5OjpBbHdheXNBY2NlcHQ6CisgICAgY2FzZSBXZWJDb3JlOjpIVFRQQ29va2llQWNj
ZXB0UG9saWN5OjpBbHdheXNBY2NlcHQ6CiAgICAgICAgIHJldHVybiBrV0tIVFRQQ29va2llQWNj
ZXB0UG9saWN5QWx3YXlzOwotICAgIGNhc2UgSFRUUENvb2tpZUFjY2VwdFBvbGljeTo6TmV2ZXI6
CisgICAgY2FzZSBXZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0UG9saWN5OjpOZXZlcjoKICAgICAg
ICAgcmV0dXJuIGtXS0hUVFBDb29raWVBY2NlcHRQb2xpY3lOZXZlcjsKLSAgICBjYXNlIEhUVFBD
b29raWVBY2NlcHRQb2xpY3k6Ok9ubHlGcm9tTWFpbkRvY3VtZW50RG9tYWluOgorICAgIGNhc2Ug
V2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBvbGljeTo6T25seUZyb21NYWluRG9jdW1lbnREb21h
aW46CiAgICAgICAgIHJldHVybiBrV0tIVFRQQ29va2llQWNjZXB0UG9saWN5T25seUZyb21NYWlu
RG9jdW1lbnREb21haW47Ci0gICAgY2FzZSBIVFRQQ29va2llQWNjZXB0UG9saWN5OjpFeGNsdXNp
dmVseUZyb21NYWluRG9jdW1lbnREb21haW46CisgICAgY2FzZSBXZWJDb3JlOjpIVFRQQ29va2ll
QWNjZXB0UG9saWN5OjpFeGNsdXNpdmVseUZyb21NYWluRG9jdW1lbnREb21haW46CiAgICAgICAg
IHJldHVybiBrV0tIVFRQQ29va2llQWNjZXB0UG9saWN5RXhjbHVzaXZlbHlGcm9tTWFpbkRvY3Vt
ZW50RG9tYWluOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL0FQSUhUVFBDb29raWVTdG9yZUNvY29hLm1tIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL0FQSUhUVFBDb29raWVTdG9yZUNvY29hLm1tCmluZGV4IGFkMTk2NzYx
ZDQ4NDAyMWFiYjYzZmM5ZDVlZDA3ZWQ2NWZmZTQ0Y2IuLjc5MTIwMWM0NzdlNWQ4YTE3MTc0MTNm
MDIxZTJiZjc1MjU2MzY4Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9BUElIVFRQQ29va2llU3RvcmVDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvQVBJSFRUUENvb2tpZVN0b3JlQ29jb2EubW0KQEAgLTI4LDYgKzI4
LDcgQEAKIAogI2luY2x1ZGUgPFdlYkNvcmUvQ29va2llLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9D
b29raWVTdG9yYWdlT2JzZXJ2ZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0hUVFBDb29raWVBY2Nl
cHRQb2xpY3kuaD4KICNpbmNsdWRlIDxwYWwvc3BpL2NmL0NGTmV0d29ya1NQSS5oPgogCiBuYW1l
c3BhY2UgQVBJIHsKQEAgLTc1LDIzICs3NiwyMyBAQCB2b2lkIEhUVFBDb29raWVTdG9yZTo6ZGVs
ZXRlQ29va2llc0luRGVmYXVsdFVJUHJvY2Vzc0Nvb2tpZVN0b3JlKCkKICAgICBbW05TSFRUUENv
b2tpZVN0b3JhZ2Ugc2hhcmVkSFRUUENvb2tpZVN0b3JhZ2VdIHJlbW92ZUNvb2tpZXNTaW5jZURh
dGU6W05TRGF0ZSBkaXN0YW50UGFzdF1dOwogfQogCi1zdGF0aWMgTlNIVFRQQ29va2llQWNjZXB0
UG9saWN5IHRvTlNIVFRQQ29va2llQWNjZXB0UG9saWN5KFdlYktpdDo6SFRUUENvb2tpZUFjY2Vw
dFBvbGljeSBwb2xpY3kpCitzdGF0aWMgTlNIVFRQQ29va2llQWNjZXB0UG9saWN5IHRvTlNIVFRQ
Q29va2llQWNjZXB0UG9saWN5KFdlYkNvcmU6OkhUVFBDb29raWVBY2NlcHRQb2xpY3kgcG9saWN5
KQogewogICAgIHN3aXRjaCAocG9saWN5KSB7Ci0gICAgY2FzZSBXZWJLaXQ6OkhUVFBDb29raWVB
Y2NlcHRQb2xpY3k6OkFsd2F5c0FjY2VwdDoKKyAgICBjYXNlIFdlYkNvcmU6OkhUVFBDb29raWVB
Y2NlcHRQb2xpY3k6OkFsd2F5c0FjY2VwdDoKICAgICAgICAgcmV0dXJuIE5TSFRUUENvb2tpZUFj
Y2VwdFBvbGljeUFsd2F5czsKLSAgICBjYXNlIFdlYktpdDo6SFRUUENvb2tpZUFjY2VwdFBvbGlj
eTo6TmV2ZXI6CisgICAgY2FzZSBXZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0UG9saWN5OjpOZXZl
cjoKICAgICAgICAgcmV0dXJuIE5TSFRUUENvb2tpZUFjY2VwdFBvbGljeU5ldmVyOwotICAgIGNh
c2UgV2ViS2l0OjpIVFRQQ29va2llQWNjZXB0UG9saWN5OjpPbmx5RnJvbU1haW5Eb2N1bWVudERv
bWFpbjoKKyAgICBjYXNlIFdlYkNvcmU6OkhUVFBDb29raWVBY2NlcHRQb2xpY3k6Ok9ubHlGcm9t
TWFpbkRvY3VtZW50RG9tYWluOgogICAgICAgICByZXR1cm4gTlNIVFRQQ29va2llQWNjZXB0UG9s
aWN5T25seUZyb21NYWluRG9jdW1lbnREb21haW47Ci0gICAgY2FzZSBXZWJLaXQ6OkhUVFBDb29r
aWVBY2NlcHRQb2xpY3k6OkV4Y2x1c2l2ZWx5RnJvbU1haW5Eb2N1bWVudERvbWFpbjoKKyAgICBj
YXNlIFdlYkNvcmU6OkhUVFBDb29raWVBY2NlcHRQb2xpY3k6OkV4Y2x1c2l2ZWx5RnJvbU1haW5E
b2N1bWVudERvbWFpbjoKICAgICAgICAgcmV0dXJuIChOU0hUVFBDb29raWVBY2NlcHRQb2xpY3kp
TlNIVFRQQ29va2llQWNjZXB0UG9saWN5RXhjbHVzaXZlbHlGcm9tTWFpbkRvY3VtZW50RG9tYWlu
OwogICAgIH0KICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICByZXR1cm4gTlNIVFRQQ29v
a2llQWNjZXB0UG9saWN5QWx3YXlzOwogfQogCi12b2lkIEhUVFBDb29raWVTdG9yZTo6c2V0SFRU
UENvb2tpZUFjY2VwdFBvbGljeUluRGVmYXVsdFVJUHJvY2Vzc0Nvb2tpZVN0b3JlKFdlYktpdDo6
SFRUUENvb2tpZUFjY2VwdFBvbGljeSBwb2xpY3kpCit2b2lkIEhUVFBDb29raWVTdG9yZTo6c2V0
SFRUUENvb2tpZUFjY2VwdFBvbGljeUluRGVmYXVsdFVJUHJvY2Vzc0Nvb2tpZVN0b3JlKFdlYkNv
cmU6OkhUVFBDb29raWVBY2NlcHRQb2xpY3kgcG9saWN5KQogewogICAgIFtbTlNIVFRQQ29va2ll
U3RvcmFnZSBzaGFyZWRIVFRQQ29va2llU3RvcmFnZV0gc2V0Q29va2llQWNjZXB0UG9saWN5OnRv
TlNIVFRQQ29va2llQWNjZXB0UG9saWN5KHBvbGljeSldOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLSFRUUENvb2tpZVN0b3JlLm1tIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLSFRUUENvb2tpZVN0b3JlLm1tCmluZGV4IDgx
ZDM3MDNiMGVlYTgyZTVlNmM2MmYzMjIyYWM0ZTY4MTlmNmIzYTYuLjliNDY2M2M0Y2FiNjg0ZTNk
NzRjOTY1NjM4ZmIyZTJmYzY4M2I4MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS0hUVFBDb29raWVTdG9yZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tIVFRQQ29va2llU3RvcmUubW0KQEAgLTI2LDggKzI2LDggQEAK
ICNpbXBvcnQgImNvbmZpZy5oIgogI2ltcG9ydCAiV0tIVFRQQ29va2llU3RvcmVJbnRlcm5hbC5o
IgogCi0jaW1wb3J0ICJIVFRQQ29va2llQWNjZXB0UG9saWN5LmgiCiAjaW1wb3J0IDxXZWJDb3Jl
L0Nvb2tpZS5oPgorI2ltcG9ydCA8V2ViQ29yZS9IVFRQQ29va2llQWNjZXB0UG9saWN5Lmg+CiAj
aW1wb3J0IDxwYWwvc3BpL2NmL0NGTmV0d29ya1NQSS5oPgogI2ltcG9ydCA8d3RmL0hhc2hNYXAu
aD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1tIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2wubW0KaW5kZXggMDhlNWI5ZjAxMzVlYWZlMWFh
OGY0ZGU0YTgyYjZiODkwYmI5MTliMy4uM2ZmY2ZiODkzMzdmZjA5NDQ5ZjhhYTlmMjhmZGZiY2Q0
MmViZmU0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
UHJvY2Vzc1Bvb2wubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
UHJvY2Vzc1Bvb2wubW0KQEAgLTIwMCwyMSArMjAwLDIxIEBAIC0gKHZvaWQpX3NldENhbkhhbmRs
ZUhUVFBTU2VydmVyVHJ1c3RFdmFsdWF0aW9uOihCT09MKXZhbHVlCiB7CiB9CiAKLXN0YXRpYyBX
ZWJLaXQ6OkhUVFBDb29raWVBY2NlcHRQb2xpY3kgdG9IVFRQQ29va2llQWNjZXB0UG9saWN5KE5T
SFRUUENvb2tpZUFjY2VwdFBvbGljeSBwb2xpY3kpCitzdGF0aWMgV2ViQ29yZTo6SFRUUENvb2tp
ZUFjY2VwdFBvbGljeSB0b0hUVFBDb29raWVBY2NlcHRQb2xpY3koTlNIVFRQQ29va2llQWNjZXB0
UG9saWN5IHBvbGljeSkKIHsKICAgICBzd2l0Y2ggKHN0YXRpY19jYXN0PE5TVUludGVnZXI+KHBv
bGljeSkpIHsKICAgICBjYXNlIE5TSFRUUENvb2tpZUFjY2VwdFBvbGljeUFsd2F5czoKLSAgICAg
ICAgcmV0dXJuIFdlYktpdDo6SFRUUENvb2tpZUFjY2VwdFBvbGljeTo6QWx3YXlzQWNjZXB0Owor
ICAgICAgICByZXR1cm4gV2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBvbGljeTo6QWx3YXlzQWNj
ZXB0OwogICAgIGNhc2UgTlNIVFRQQ29va2llQWNjZXB0UG9saWN5TmV2ZXI6Ci0gICAgICAgIHJl
dHVybiBXZWJLaXQ6OkhUVFBDb29raWVBY2NlcHRQb2xpY3k6Ok5ldmVyOworICAgICAgICByZXR1
cm4gV2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBvbGljeTo6TmV2ZXI7CiAgICAgY2FzZSBOU0hU
VFBDb29raWVBY2NlcHRQb2xpY3lPbmx5RnJvbU1haW5Eb2N1bWVudERvbWFpbjoKLSAgICAgICAg
cmV0dXJuIFdlYktpdDo6SFRUUENvb2tpZUFjY2VwdFBvbGljeTo6T25seUZyb21NYWluRG9jdW1l
bnREb21haW47CisgICAgICAgIHJldHVybiBXZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0UG9saWN5
OjpPbmx5RnJvbU1haW5Eb2N1bWVudERvbWFpbjsKICAgICBjYXNlIE5TSFRUUENvb2tpZUFjY2Vw
dFBvbGljeUV4Y2x1c2l2ZWx5RnJvbU1haW5Eb2N1bWVudERvbWFpbjoKLSAgICAgICAgcmV0dXJu
IFdlYktpdDo6SFRUUENvb2tpZUFjY2VwdFBvbGljeTo6RXhjbHVzaXZlbHlGcm9tTWFpbkRvY3Vt
ZW50RG9tYWluOworICAgICAgICByZXR1cm4gV2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBvbGlj
eTo6RXhjbHVzaXZlbHlGcm9tTWFpbkRvY3VtZW50RG9tYWluOwogICAgIH0KIAogICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiBXZWJLaXQ6OkhUVFBDb29raWVBY2NlcHRQb2xp
Y3k6OkFsd2F5c0FjY2VwdDsKKyAgICByZXR1cm4gV2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBv
bGljeTo6QWx3YXlzQWNjZXB0OwogfQogCiAtICh2b2lkKV9zZXRDb29raWVBY2NlcHRQb2xpY3k6
KE5TSFRUUENvb2tpZUFjY2VwdFBvbGljeSlwb2xpY3kKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCmluZGV4IDljYjkw
ZjE4YzU0MmM2YWE1NmZhZWI2MDA3ZDI2ZmRmMWQwYmVhOGUuLmJhMTZlMzI2MDViMjBhZTYyZTM3
Njk3ZDEwYWM5OGE1NDFlMTczZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcApAQCAtMTQ3LDcgKzE0Nyw3IEBA
IHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6Z2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKFdl
YlByb2Nlc3NQcm94eSYgd2ViUHJvY2VzCiAKIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6b3Bl
bk5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbih1aW50NjRfdCBjb25uZWN0aW9uUmVxdWVzdElkZW50
aWZpZXIsIFdlYlByb2Nlc3NQcm94eSYgd2ViUHJvY2Vzc1Byb3h5KQogewotICAgIGNvbm5lY3Rp
b24oKS0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6Q3JlYXRl
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MgeyB3ZWJQcm9jZXNzUHJveHkuY29yZVByb2Nl
c3NJZGVudGlmaWVyKCksIHdlYlByb2Nlc3NQcm94eS5zZXNzaW9uSUQoKSB9LCBbdGhpcywgd2Vh
a1RoaXMgPSBtYWtlV2Vha1B0cih0aGlzKSwgd2ViUHJvY2Vzc1Byb3h5ID0gbWFrZVdlYWtQdHIo
d2ViUHJvY2Vzc1Byb3h5KSwgY29ubmVjdGlvblJlcXVlc3RJZGVudGlmaWVyXShhdXRvJiYgY29u
bmVjdGlvbklkZW50aWZpZXIpIG11dGFibGUgeworICAgIGNvbm5lY3Rpb24oKS0+c2VuZFdpdGhB
c3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6Q3JlYXRlTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MgeyB3ZWJQcm9jZXNzUHJveHkuY29yZVByb2Nlc3NJZGVudGlmaWVyKCks
IHdlYlByb2Nlc3NQcm94eS5zZXNzaW9uSUQoKSB9LCBbdGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vh
a1B0cih0aGlzKSwgd2ViUHJvY2Vzc1Byb3h5ID0gbWFrZVdlYWtQdHIod2ViUHJvY2Vzc1Byb3h5
KSwgY29ubmVjdGlvblJlcXVlc3RJZGVudGlmaWVyXShhdXRvJiYgY29ubmVjdGlvbklkZW50aWZp
ZXIsIEhUVFBDb29raWVBY2NlcHRQb2xpY3kgY29va2llQWNjZXB0UG9saWN5KSBtdXRhYmxlIHsK
ICAgICAgICAgaWYgKCF3ZWFrVGhpcykKICAgICAgICAgICAgIHJldHVybjsKIApAQCAtMTYxLDEw
ICsxNjEsMTAgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpvcGVuTmV0d29ya1Byb2Nlc3ND
b25uZWN0aW9uKHVpbnQ2NF90IGNvbm5lY3Rpb25SZXF1ZXMKICAgICAgICAgYXV0byByZXF1ZXN0
ID0gbV9jb25uZWN0aW9uUmVxdWVzdHMudGFrZShjb25uZWN0aW9uUmVxdWVzdElkZW50aWZpZXIp
OwogCiAjaWYgVVNFKFVOSVhfRE9NQUlOX1NPQ0tFVFMpIHx8IE9TKFdJTkRPV1MpCi0gICAgICAg
IHJlcXVlc3QucmVwbHkoTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uSW5mbyB7IFdURk1vdmUoKmNv
bm5lY3Rpb25JZGVudGlmaWVyKSB9KTsKKyAgICAgICAgcmVxdWVzdC5yZXBseShOZXR3b3JrUHJv
Y2Vzc0Nvbm5lY3Rpb25JbmZvIHsgV1RGTW92ZSgqY29ubmVjdGlvbklkZW50aWZpZXIpLCBjb29r
aWVBY2NlcHRQb2xpY3kgfSk7CiAjZWxpZiBPUyhEQVJXSU4pCiAgICAgICAgIE1FU1NBR0VfQ0hF
Q0soTUFDSF9QT1JUX1ZBTElEKGNvbm5lY3Rpb25JZGVudGlmaWVyLT5wb3J0KCkpKTsKLSAgICAg
ICAgcmVxdWVzdC5yZXBseShOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25JbmZvIHsgSVBDOjpBdHRh
Y2htZW50IHsgY29ubmVjdGlvbklkZW50aWZpZXItPnBvcnQoKSwgTUFDSF9NU0dfVFlQRV9NT1ZF
X1NFTkQgfSwgY29ubmVjdGlvbigpLT5nZXRBdWRpdFRva2VuKCkgfSk7CisgICAgICAgIHJlcXVl
c3QucmVwbHkoTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uSW5mbyB7IElQQzo6QXR0YWNobWVudCB7
IGNvbm5lY3Rpb25JZGVudGlmaWVyLT5wb3J0KCksIE1BQ0hfTVNHX1RZUEVfTU9WRV9TRU5EIH0s
IGNvb2tpZUFjY2VwdFBvbGljeSwgY29ubmVjdGlvbigpLT5nZXRBdWRpdFRva2VuKCkgfSk7CiAj
ZWxzZQogICAgICAgICBub3RJbXBsZW1lbnRlZCgpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eS5oCmluZGV4IDU4YjgyZmQxMGM4YzI2
MjE1NDg5MDFiMTM1ZDVmZTlhOGQ5NzViZDQuLjBiZGZjMGQ0ZTQ3YzQzNmY1ODVjZjI5YzA5ZDUx
YTI5YmM4MTFhOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvb2tp
ZU1hbmFnZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvb2tpZU1h
bmFnZXJQcm94eS5oCkBAIC01Myw3ICs1Myw3IEBAIGNsYXNzIFdlYlByb2Nlc3NQb29sOwogY2xh
c3MgV2ViUHJvY2Vzc1Byb3h5OwogCiB0eXBlZGVmIEdlbmVyaWNDYWxsYmFjazxBUEk6OkFycmF5
Kj4gQXJyYXlDYWxsYmFjazsKLXR5cGVkZWYgR2VuZXJpY0NhbGxiYWNrPEhUVFBDb29raWVBY2Nl
cHRQb2xpY3k+IEhUVFBDb29raWVBY2NlcHRQb2xpY3lDYWxsYmFjazsKK3R5cGVkZWYgR2VuZXJp
Y0NhbGxiYWNrPFdlYkNvcmU6OkhUVFBDb29raWVBY2NlcHRQb2xpY3k+IEhUVFBDb29raWVBY2Nl
cHRQb2xpY3lDYWxsYmFjazsKIHR5cGVkZWYgR2VuZXJpY0NhbGxiYWNrPGNvbnN0IFZlY3RvcjxX
ZWJDb3JlOjpDb29raWU+Jj4gR2V0Q29va2llc0NhbGxiYWNrOwogCiBjbGFzcyBXZWJDb29raWVN
YW5hZ2VyUHJveHkgOiBwdWJsaWMgQVBJOjpPYmplY3RJbXBsPEFQSTo6T2JqZWN0OjpUeXBlOjpD
b29raWVNYW5hZ2VyPiwgcHVibGljIFdlYkNvbnRleHRTdXBwbGVtZW50LCBwcml2YXRlIElQQzo6
TWVzc2FnZVJlY2VpdmVyIHsKQEAgLTc3LDggKzc3LDggQEAgcHVibGljOgogICAgIHZvaWQgZ2V0
QWxsQ29va2llcyhQQUw6OlNlc3Npb25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8
V2ViQ29yZTo6Q29va2llPiYmKT4mJik7CiAgICAgdm9pZCBnZXRDb29raWVzKFBBTDo6U2Vzc2lv
bklELCBjb25zdCBVUkwmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFZlY3RvcjxXZWJDb3JlOjpD
b29raWU+JiYpPiYmKTsKIAotICAgIHZvaWQgc2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShQQUw6
OlNlc3Npb25JRCwgSFRUUENvb2tpZUFjY2VwdFBvbGljeSwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZCgpPiYmKTsKLSAgICB2b2lkIGdldEhUVFBDb29raWVBY2NlcHRQb2xpY3koUEFMOjpTZXNzaW9u
SUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoSFRUUENvb2tpZUFjY2VwdFBvbGljeSk+JiYpOwor
ICAgIHZvaWQgc2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShQQUw6OlNlc3Npb25JRCwgV2ViQ29y
ZTo6SFRUUENvb2tpZUFjY2VwdFBvbGljeSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsK
KyAgICB2b2lkIGdldEhUVFBDb29raWVBY2NlcHRQb2xpY3koUEFMOjpTZXNzaW9uSUQsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBvbGljeSk+JiYpOwog
CiAgICAgdm9pZCBzdGFydE9ic2VydmluZ0Nvb2tpZUNoYW5nZXMoUEFMOjpTZXNzaW9uSUQpOwog
ICAgIHZvaWQgc3RvcE9ic2VydmluZ0Nvb2tpZUNoYW5nZXMoUEFMOjpTZXNzaW9uSUQpOwpAQCAt
MTE5LDcgKzExOSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6
OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBvdmVycmlkZTsKIAogI2lmIFBMQVRGT1JNKENP
Q09BKQotICAgIHZvaWQgcGVyc2lzdEhUVFBDb29raWVBY2NlcHRQb2xpY3koSFRUUENvb2tpZUFj
Y2VwdFBvbGljeSk7CisgICAgdm9pZCBwZXJzaXN0SFRUUENvb2tpZUFjY2VwdFBvbGljeShXZWJD
b3JlOjpIVFRQQ29va2llQWNjZXB0UG9saWN5KTsKICNlbmRpZgogCiAgICAgSGFzaE1hcDxQQUw6
OlNlc3Npb25JRCwgV1RGOjpGdW5jdGlvbjx2b2lkICgpPj4gbV9sZWdhY3lDb29raWVPYnNlcnZl
cnM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAppbmRleCAxZGJkMTgx
ZDQxM2U4ZmJhNDA1ZDgxYmMwYTRmOTRlNGU3OTYyYjk4Li42NGIxZGJjZTRjOTA3NTM2OTk5YjFj
MmE1ZWIzMTQ2NzBmNDIzZTFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQcm9jZXNzUG9vbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
b29sLmgKQEAgLTI5NCw3ICsyOTQsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzdG9wTWVtb3J5U2Ft
cGxlcigpOwogCiAjaWYgVVNFKFNPVVApCi0gICAgdm9pZCBzZXRJbml0aWFsSFRUUENvb2tpZUFj
Y2VwdFBvbGljeShIVFRQQ29va2llQWNjZXB0UG9saWN5IHBvbGljeSkgeyBtX2luaXRpYWxIVFRQ
Q29va2llQWNjZXB0UG9saWN5ID0gcG9saWN5OyB9CisgICAgdm9pZCBzZXRJbml0aWFsSFRUUENv
b2tpZUFjY2VwdFBvbGljeShXZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0UG9saWN5IHBvbGljeSkg
eyBtX2luaXRpYWxIVFRQQ29va2llQWNjZXB0UG9saWN5ID0gcG9saWN5OyB9CiAgICAgdm9pZCBz
ZXROZXR3b3JrUHJveHlTZXR0aW5ncyhjb25zdCBXZWJDb3JlOjpTb3VwTmV0d29ya1Byb3h5U2V0
dGluZ3MmKTsKICNlbmRpZgogICAgIHZvaWQgc2V0RW5oYW5jZWRBY2Nlc3NpYmlsaXR5KGJvb2wp
OwpAQCAtNjc3LDcgKzY3Nyw3IEBAIHByaXZhdGU6CiAgICAgV2ViQ29udGV4dFN1cHBsZW1lbnRN
YXAgbV9zdXBwbGVtZW50czsKIAogI2lmIFVTRShTT1VQKQotICAgIEhUVFBDb29raWVBY2NlcHRQ
b2xpY3kgbV9pbml0aWFsSFRUUENvb2tpZUFjY2VwdFBvbGljeSB7IEhUVFBDb29raWVBY2NlcHRQ
b2xpY3k6Ok9ubHlGcm9tTWFpbkRvY3VtZW50RG9tYWluIH07CisgICAgV2ViQ29yZTo6SFRUUENv
b2tpZUFjY2VwdFBvbGljeSBtX2luaXRpYWxIVFRQQ29va2llQWNjZXB0UG9saWN5IHsgV2ViQ29y
ZTo6SFRUUENvb2tpZUFjY2VwdFBvbGljeTo6T25seUZyb21NYWluRG9jdW1lbnREb21haW4gfTsK
ICAgICBXZWJDb3JlOjpTb3VwTmV0d29ya1Byb3h5U2V0dGluZ3MgbV9uZXR3b3JrUHJveHlTZXR0
aW5nczsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMv
V2ViQ29va2llTWFuYWdlclByb3h5TWFjLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFj
L1dlYkNvb2tpZU1hbmFnZXJQcm94eU1hYy5tbQppbmRleCBlZWQ5N2FiZWQ2MDNhM2RjYmUxMWI3
OTcyZjQ3MTAxYjliOTRlNzI4Li44ODk1ZjYwZDJlY2Q2Njk4NTE1M2E3Mjk0MWE3YmUxZmU2MzAx
YjU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViQ29va2llTWFu
YWdlclByb3h5TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJDb29r
aWVNYW5hZ2VyUHJveHlNYWMubW0KQEAgLTMxLDcgKzMxLDcgQEAKIAogbmFtZXNwYWNlIFdlYktp
dCB7CiAKLXZvaWQgV2ViQ29va2llTWFuYWdlclByb3h5OjpwZXJzaXN0SFRUUENvb2tpZUFjY2Vw
dFBvbGljeShIVFRQQ29va2llQWNjZXB0UG9saWN5IHBvbGljeSkKK3ZvaWQgV2ViQ29va2llTWFu
YWdlclByb3h5OjpwZXJzaXN0SFRUUENvb2tpZUFjY2VwdFBvbGljeShXZWJDb3JlOjpIVFRQQ29v
a2llQWNjZXB0UG9saWN5IHBvbGljeSkKIHsKICAgICBBU1NFUlQoaGFzUHJvY2Vzc1ByaXZpbGVn
ZShQcm9jZXNzUHJpdmlsZWdlOjpDYW5BY2Nlc3NSYXdDb29raWVzKSk7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2Uv
V2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDZhZGVhNTg1MGY4
ODY0M2FmNzBmODk1MDMxYjM4NjE1NmIyZTQzZjguLmU4Nzg3ODk5ZWYwMmZmMGViOGY0NWYwZTEx
ZjI2MzdiM2RjZjBiN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagpAQCAtODgyLDcgKzg4Miw2IEBACiAJCTM3REZBNzAwMTgxMEJCOTIwMDFG
NEE5RiAvKiBXS0ZvdW5kYXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDM3REZBNkZGMTgxMEJCOTIwMDFGNEE5RiAvKiBXS0ZvdW5kYXRpb24uaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQdWJsaWMsICk7IH07IH07CiAJCTM3RTI1RDZF
MThGREU1RDYwMDVEM0EwMCAvKiBBUElGb3JtQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzN0UyNUQ2RDE4RkRFNUQ2MDA1RDNBMDAgLyogQVBJ
Rm9ybUNsaWVudC5oICovOyB9OwogCQkzN0Y2MjNCODEyQTU3QjYyMDBFM0ZERjYgLyogV0tGaW5k
T3B0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MzdGNjIzQjcxMkE1N0I2MjAwRTNGREY2IC8qIFdLRmluZE9wdGlvbnMuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQkzN0Y5MERFMzEzNzY1NjBFMDA1
MUNGNjggLyogSFRUUENvb2tpZUFjY2VwdFBvbGljeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjYzODk1NEYxMzNCRUYzODAwODk0MUQ1IC8qIEhUVFBD
b29raWVBY2NlcHRQb2xpY3kuaCAqLzsgfTsKIAkJMzdGQzE5NDcxODUwRkJGMjAwOENGQTQ3IC8q
IFdLQnJvd3NpbmdDb250ZXh0TG9hZERlbGVnYXRlUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzdGQzE5NDYxODUwRkJGMjAwOENGQTQ3IC8q
IFdLQnJvd3NpbmdDb250ZXh0TG9hZERlbGVnYXRlUHJpdmF0ZS5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTM3RkMxOTRCMTg1MTBENkEwMDhDRkE0
NyAvKiBXS05TVVJMQXV0aGVudGljYXRpb25DaGFsbGVuZ2UuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDM3RkMxOTQ5MTg1MTBENkEwMDhDRkE0NyAvKiBX
S05TVVJMQXV0aGVudGljYXRpb25DaGFsbGVuZ2UuaCAqLzsgfTsKIAkJM0Y0MThFRjkxODg3QkQ5
NzAwMjc5NUZEIC8qIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gM0Y0MThFRjUxODg3
QkQ5NzAwMjc5NUZEIC8qIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3Bw
ICovOyB9OwpAQCAtMjExOSw5ICsyMTE4LDkgQEAKIAkJMDdCOTNGRjUyM0FGMENCODAwMzZGOEVB
IC8qIFJlbW90ZU1lZGlhUGxheWVyQ29uZmlndXJhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1v
dGVNZWRpYVBsYXllckNvbmZpZ3VyYXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMDdCQUYzNTYyM0EyQ0MxNzAwNDQyNTdFIC8qIFJlbW90ZU1lZGlhUGxheWVyUHJveHkuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkwN0JBRjM1NzIzQTJDQzE5MDA0NDI1N0UgLyogUmVtb3RlTWVkaWFQbGF5
ZXJQcm94eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVNZWRpYVBsYXllclByb3h5LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMDdFMTlFRjgyM0Q0MDFGMDAwOTRGRkI0
IC8qIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBNZWRpYVBsYXllclByaXZhdGVSZW1vdGVNZXNz
YWdlUmVjZWl2ZXIuY3BwOyBwYXRoID0gTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlTWVzc2FnZVJl
Y2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMDdFMTlFRjkyM0Q0MDFG
MDAwOTRGRkI0IC8qIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZU1lc3NhZ2VzLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZU1lc3NhZ2Vz
Lmg7IHBhdGggPSBNZWRpYVBsYXllclByaXZhdGVSZW1vdGVNZXNzYWdlcy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwotCQkwN0UxOUVGQTIzRDQwMUYwMDA5NEZGQjQgLyogTWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlTWVzc2FnZXNSZXBsaWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgbmFtZSA9IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZU1lc3NhZ2VzUmVwbGllcy5oOyBwYXRo
ID0gTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlTWVzc2FnZXNSZXBsaWVzLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTA3RTE5RUY4MjNENDAxRjAwMDk0RkZCNCAvKiBNZWRpYVBsYXll
clByaXZhdGVSZW1vdGVNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlTWVzc2FnZVJlY2VpdmVyLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDdFMTlFRjkyM0Q0MDFGMDAwOTRGRkI0
IC8qIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZU1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZU1lc3NhZ2VzLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA3RTE5RUZBMjNENDAxRjAwMDk0RkZCNCAvKiBNZWRp
YVBsYXllclByaXZhdGVSZW1vdGVNZXNzYWdlc1JlcGxpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlTWVzc2FnZXNSZXBsaWVzLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA4NjdENkE1RkU4NDAzMDdDMDJBQUMwNyAv
KiBBcHBLaXQuZnJhbWV3b3JrICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gd3JhcHBlci5mcmFtZXdvcms7IG5hbWUgPSBBcHBLaXQuZnJhbWV3b3JrOyBw
YXRoID0gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXBwS2l0LmZyYW1ld29yazsgc291cmNl
VHJlZSA9ICI8YWJzb2x1dGU+IjsgfTsKIAkJMDg5QzE2NjdGRTg0MTE1OEMwMkFBQzA3IC8qIGVu
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dC5wbGlzdC5zdHJpbmdzOyBuYW1lID0gZW47IHBhdGggPSBlbi5scHJv
ai9JbmZvUGxpc3Quc3RyaW5nczsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEU5N0Q3
NEMyMDBFOEZGMzAwQkY2NjQzIC8qIFNhZmVCcm93c2luZ1NQSS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBT
YWZlQnJvd3NpbmdTUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTUxMzAsNyAr
NTEyOSw2IEBACiAJCUY2MTEzRTI2MTI2Q0UxOUIwMDU3RDBBNyAvKiBXS1VzZXJDb250ZW50VVJM
UGF0dGVybi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXS1VzZXJD
b250ZW50VVJMUGF0dGVybi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY2MTEz
RTI3MTI2Q0UxOUIwMDU3RDBBNyAvKiBXS1VzZXJDb250ZW50VVJMUGF0dGVybi5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1VzZXJDb250ZW50VVJMUGF0dGVybi5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNjM0NDQ1NTEyQTg4NUM4MDAwNjEyRDggLyogQVBJ
U2VjdXJpdHlPcmlnaW4uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQVBJU2Vj
dXJpdHlPcmlnaW4uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRjYzODk1NEYxMzNC
RUYzODAwODk0MUQ1IC8qIEhUVFBDb29raWVBY2NlcHRQb2xpY3kuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gSFRUUENvb2tpZUFjY2VwdFBvbGljeS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlGNkEwQzEzRjEzMjgxRTZFMDA3MDQzMEYgLyogUmVzb3VyY2VDYWNo
ZXNUb0NsZWFyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlc291cmNlQ2Fj
aGVzVG9DbGVhci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNkE5MDgxMTEzM0Mx
RjNEMDA4MkMzRjQgLyogV2ViQ29va2llTWFuYWdlck1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkNvb2tpZU1hbmFnZXJNYWMubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUY2RDYzMkJBMTMzRDE4MUIwMDc0M0Q3NyAvKiBXZWJDb29raWVN
YW5hZ2VyUHJveHlNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBXZWJDb29raWVNYW5hZ2VyUHJveHlNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC01Njk3LDcgKzU2OTUsNiBAQAogCQkJCTFBMTRGOERGMUQ3NEM4MzQwMDZDQkVDNiAvKiBG
cmFtZUluZm9EYXRhLmNwcCAqLywKIAkJCQkxQTE0RjhFMDFENzRDODM0MDA2Q0JFQzYgLyogRnJh
bWVJbmZvRGF0YS5oICovLAogCQkJCTFBQzc1QTFBMUIzMzY4MjcwMDU2NzQ1QiAvKiBIYW5nRGV0
ZWN0aW9uRGlzYWJsZXIuaCAqLywKLQkJCQlGNjM4OTU0RjEzM0JFRjM4MDA4OTQxRDUgLyogSFRU
UENvb2tpZUFjY2VwdFBvbGljeS5oICovLAogCQkJCUJDQ0Y2QjIzMTJDOTNFN0EwMDhGOUMzNSAv
KiBJbWFnZU9wdGlvbnMuaCAqLywKIAkJCQkxQTkyREMxMjEyRjhCQUI5MDAxN0FGNjUgLyogTGF5
ZXJUcmVlQ29udGV4dC5jcHAgKi8sCiAJCQkJMUE5MkRDMTAxMkY4QkE0NjAwMTdBRjY1IC8qIExh
eWVyVHJlZUNvbnRleHQuaCAqLywKQEAgLTEwMjE4LDcgKzEwMjE1LDYgQEAKIAkJCQk1NzcyRjIw
NjIxN0RCRDZBMDA1NkJGMkMgLyogSGlkU2VydmljZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzEy
Q0M5RjIyMTVCMDZGMTAwREU0MENBIC8qIEhpZ2hQZXJmb3JtYW5jZUdQVU1hbmFnZXIuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTgzOUEyRjMyMUUyMDY3NDUwMDM5MDU3RSAvKiBIaWdoUGVyZm9ybWFu
Y2VHcmFwaGljc1VzYWdlU2FtcGxlci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMzdGOTBERTMxMzc2
NTYwRTAwNTFDRjY4IC8qIEhUVFBDb29raWVBY2NlcHRQb2xpY3kuaCBpbiBIZWFkZXJzICovLAog
CQkJCTUxQzBDOTc0MURERDc2MDAwMDMyQ0FEMyAvKiBJY29uTG9hZGluZ0RlbGVnYXRlLmggaW4g
SGVhZGVycyAqLywKIAkJCQk1MUUzNTFDQjE4MEYyQ0NDMDBFNTNCRTkgLyogSURCVXRpbGl0aWVz
LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0NGNkIyNTEyQzkzRTdBMDA4RjlDMzUgLyogSW1hZ2VP
cHRpb25zLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCmluZGV4IGZk
MDBkNzg2NGI1YTUzZmI3NDMwZTE2Yjg3MGNhNjJjYjAwYWRkYTQuLjFlNzAzNTRmNmI3MTQxOTYw
MmQ5NGIwZjU0MzMxMzJhNjM0MTE4NzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmNwcApAQCAt
NTYsNiArNTYsNyBAQAogI2luY2x1ZGUgIldlYlNvY2tldFN0cmVhbS5oIgogI2luY2x1ZGUgIldl
YlNvY2tldFN0cmVhbU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9DYWNoZWRSZXNvdXJj
ZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvSFRUUENvb2tpZUFjY2VwdFBvbGljeS5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvTWVtb3J5Q2FjaGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL01lc3NhZ2VQb3J0
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TaGFyZWRCdWZmZXIuaD4KQEAgLTY4LDggKzY5LDkgQEAK
IG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKLU5ldHdvcmtQ
cm9jZXNzQ29ubmVjdGlvbjo6TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKElQQzo6Q29ubmVjdGlv
bjo6SWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRpZmllcikKK05ldHdvcmtQcm9jZXNzQ29ubmVj
dGlvbjo6TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmll
ciBjb25uZWN0aW9uSWRlbnRpZmllciwgSFRUUENvb2tpZUFjY2VwdFBvbGljeSBjb29raWVBY2Nl
cHRQb2xpY3kpCiAgICAgOiBtX2Nvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uOjpjcmVhdGVDbGll
bnRDb25uZWN0aW9uKGNvbm5lY3Rpb25JZGVudGlmaWVyLCAqdGhpcykpCisgICAgLCBtX2Nvb2tp
ZUFjY2VwdFBvbGljeShjb29raWVBY2NlcHRQb2xpY3kpCiB7CiAgICAgbV9jb25uZWN0aW9uLT5v
cGVuKCk7CiB9CkBAIC0yMDQsNyArMjA2LDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rp
b246OmRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OlMKIAog
dm9pZCBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OndyaXRlQmxvYnNUb1RlbXBvcmFyeUZpbGVz
KGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBibG9iVVJMcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChW
ZWN0b3I8U3RyaW5nPiYmIGZpbGVQYXRocyk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAg
V2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCku
Y29ubmVjdGlvbigpLnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3M6OldyaXRlQmxvYnNUb1RlbXBvcmFyeUZpbGVzKGJsb2JVUkxzKSwgV1RG
TW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworICAgIGNvbm5lY3Rpb24oKS5zZW5kV2l0aEFzeW5j
UmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpXcml0ZUJsb2Jz
VG9UZW1wb3JhcnlGaWxlcyhibG9iVVJMcyksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsK
IH0KIAogdm9pZCBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZEZpbmlzaFBpbmdMb2FkKHVp
bnQ2NF90IHBpbmdMb2FkSWRlbnRpZmllciwgUmVzb3VyY2VFcnJvciYmIGVycm9yLCBSZXNvdXJj
ZVJlc3BvbnNlJiYgcmVzcG9uc2UpCkBAIC0yMjIsNiArMjI0LDE2IEBAIHZvaWQgTmV0d29ya1By
b2Nlc3NDb25uZWN0aW9uOjpzZXRPbkxpbmVTdGF0ZShib29sIGlzT25MaW5lKQogICAgIFdlYlBy
b2Nlc3M6OnNpbmdsZXRvbigpLndlYkxvYWRlclN0cmF0ZWd5KCkuc2V0T25MaW5lU3RhdGUoaXNP
bkxpbmUpOwogfQogCitib29sIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6Y29va2llc0VuYWJs
ZWQoKQoreworICAgIHJldHVybiBtX2Nvb2tpZUFjY2VwdFBvbGljeSAhPSBIVFRQQ29va2llQWNj
ZXB0UG9saWN5OjpOZXZlcjsKK30KKwordm9pZCBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OmNv
b2tpZUFjY2VwdFBvbGljeUNoYW5nZWQoSFRUUENvb2tpZUFjY2VwdFBvbGljeSBuZXdQb2xpY3kp
Cit7CisgICAgbV9jb29raWVBY2NlcHRQb2xpY3kgPSBuZXdQb2xpY3k7Cit9CisKICNpZiBFTkFC
TEUoU0hBUkVBQkxFX1JFU09VUkNFKQogdm9pZCBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OmRp
ZENhY2hlUmVzb3VyY2UoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBTaGFy
ZWFibGVSZXNvdXJjZTo6SGFuZGxlJiBoYW5kbGUpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uaCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5oCmlu
ZGV4IDJhNDk2YTllNGU0MzM5ZWIwNTg0YWEyMjY0MjFmNjIwYjEwZGRjZGIuLmRkMTA0MTY3ZjU0
MTQ4MDNhNTJhMjI1YTNhZmVjZmZjZjk0ZDBjNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5oCkBA
IC00Myw2ICs0Myw3IEBAIGNsYXNzIFJlc291cmNlUmVxdWVzdDsKIGNsYXNzIFJlc291cmNlUmVz
cG9uc2U7CiBzdHJ1Y3QgTWVzc2FnZVBvcnRJZGVudGlmaWVyOwogc3RydWN0IE1lc3NhZ2VXaXRo
TWVzc2FnZVBvcnRzOworZW51bSBjbGFzcyBIVFRQQ29va2llQWNjZXB0UG9saWN5IDogdWludDhf
dDsKIH0KIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC01NCw5ICs1NSw5IEBAIHR5cGVkZWYgdWlu
dDY0X3QgUmVzb3VyY2VMb2FkSWRlbnRpZmllcjsKIAogY2xhc3MgTmV0d29ya1Byb2Nlc3NDb25u
ZWN0aW9uIDogcHVibGljIFJlZkNvdW50ZWQ8TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uPiwgSVBD
OjpDb25uZWN0aW9uOjpDbGllbnQgewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8TmV0d29ya1By
b2Nlc3NDb25uZWN0aW9uPiBjcmVhdGUoSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyIGNvbm5l
Y3Rpb25JZGVudGlmaWVyKQorICAgIHN0YXRpYyBSZWY8TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9u
PiBjcmVhdGUoSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVudGlmaWVy
LCBXZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0UG9saWN5IGh0dHBDb29raWVBY2NlcHRQb2xpY3kp
CiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBOZXR3b3JrUHJvY2Vzc0Nvbm5l
Y3Rpb24oY29ubmVjdGlvbklkZW50aWZpZXIpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKGNvbm5lY3Rpb25JZGVudGlmaWVyLCBodHRwQ29v
a2llQWNjZXB0UG9saWN5KSk7CiAgICAgfQogICAgIH5OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24o
KTsKICAgICAKQEAgLTgwLDggKzgxLDEwIEBAIHB1YmxpYzoKICAgICBPcHRpb25hbDxhdWRpdF90
b2tlbl90PiBuZXR3b3JrUHJvY2Vzc0F1ZGl0VG9rZW4oKSBjb25zdCB7IHJldHVybiBtX25ldHdv
cmtQcm9jZXNzQXVkaXRUb2tlbjsgfQogI2VuZGlmCiAKKyAgICBib29sIGNvb2tpZXNFbmFibGVk
KCk7CisKIHByaXZhdGU6Ci0gICAgTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKElQQzo6Q29ubmVj
dGlvbjo6SWRlbnRpZmllcik7CisgICAgTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKElQQzo6Q29u
bmVjdGlvbjo6SWRlbnRpZmllciwgV2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBvbGljeSk7CiAK
ICAgICAvLyBJUEM6OkNvbm5lY3Rpb246OkNsaWVudAogICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3Nh
Z2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgb3ZlcnJpZGU7CkBAIC05Miw2ICs5
NSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRGaW5pc2hQaW5nTG9hZCh1aW50NjRfdCBwaW5n
TG9hZElkZW50aWZpZXIsIFdlYkNvcmU6OlJlc291cmNlRXJyb3ImJiwgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXNwb25zZSYmKTsKICAgICB2b2lkIGRpZEZpbmlzaFByZWNvbm5lY3Rpb24odWludDY0X3Qg
cHJlY29ubmVjdGlvbklkZW50aWZpZXIsIFdlYkNvcmU6OlJlc291cmNlRXJyb3ImJik7CiAgICAg
dm9pZCBzZXRPbkxpbmVTdGF0ZShib29sIGlzT25MaW5lKTsKKyAgICB2b2lkIGNvb2tpZUFjY2Vw
dFBvbGljeUNoYW5nZWQoV2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBvbGljeSk7CiAKICAgICB2
b2lkIGNoZWNrUHJvY2Vzc0xvY2FsUG9ydEZvckFjdGl2aXR5KGNvbnN0IFdlYkNvcmU6Ok1lc3Nh
Z2VQb3J0SWRlbnRpZmllciYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6TWVzc2Fn
ZVBvcnRDaGFubmVsUHJvdmlkZXI6Okhhc0FjdGl2aXR5KT4mJik7CiAgICAgdm9pZCBtZXNzYWdl
c0F2YWlsYWJsZUZvclBvcnQoY29uc3QgV2ViQ29yZTo6TWVzc2FnZVBvcnRJZGVudGlmaWVyJik7
CkBAIC0xMTQsNiArMTE4LDcgQEAgcHJpdmF0ZToKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIp
CiAgICAgUmVmUHRyPFdlYlNXQ2xpZW50Q29ubmVjdGlvbj4gbV9zd0Nvbm5lY3Rpb247CiAjZW5k
aWYKKyAgICBXZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0UG9saWN5IG1fY29va2llQWNjZXB0UG9s
aWN5OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMu
aW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5l
Y3Rpb24ubWVzc2FnZXMuaW4KaW5kZXggNGQ2MzRjNTdiOWM3OTk1MDQ4YTA4MGYyN2YzZTMyZTUz
MDUyNmFlYi4uMmFhNjg4NmU1N2E1OTljYmMxN2MzNWY2Yjc0ZTk5ZDJhYjNhODllNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25u
ZWN0aW9uLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3Jr
L05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgpAQCAtMjksNiArMjksNyBAQCBt
ZXNzYWdlcyAtPiBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24gTGVnYWN5UmVjZWl2ZXIgewogICAg
IERpZEZpbmlzaFBpbmdMb2FkKHVpbnQ2NF90IHBpbmdMb2FkSWRlbnRpZmllciwgV2ViQ29yZTo6
UmVzb3VyY2VFcnJvciBlcnJvciwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSByZXNwb25zZSkK
ICAgICBEaWRGaW5pc2hQcmVjb25uZWN0aW9uKHVpbnQ2NF90IHByZWNvbm5lY3Rpb25JZGVudGlm
aWVyLCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGVycm9yKQogICAgIFNldE9uTGluZVN0YXRlKGJv
b2wgaXNPbkxpbmUpOworICAgIENvb2tpZUFjY2VwdFBvbGljeUNoYW5nZWQoZW51bTp1aW50OF90
IFdlYkNvcmU6OkhUVFBDb29raWVBY2NlcHRQb2xpY3kgcG9saWN5KTsKIAogICAgIENoZWNrUHJv
Y2Vzc0xvY2FsUG9ydEZvckFjdGl2aXR5KHN0cnVjdCBXZWJDb3JlOjpNZXNzYWdlUG9ydElkZW50
aWZpZXIgcG9ydCkgLT4gKFdlYkNvcmU6Ok1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyOjpIYXNB
Y3Rpdml0eSBoYXNBY3Rpdml0eSkgQXN5bmMKICAgICBNZXNzYWdlc0F2YWlsYWJsZUZvclBvcnQo
c3RydWN0IFdlYkNvcmU6Ok1lc3NhZ2VQb3J0SWRlbnRpZmllciBwb3J0KQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9u
SW5mby5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3ND
b25uZWN0aW9uSW5mby5oCmluZGV4IDVjMDU2OGM0YWExZjljZGZkODhjMzFhM2UzZmQ3YTRjZGJj
ODk0YTQuLjM2N2I4YTM4MDllMzdiMTViZGJlMGI0NmE0MTg1Njc3N2ZiYWYyZjggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVj
dGlvbkluZm8uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3Jr
UHJvY2Vzc0Nvbm5lY3Rpb25JbmZvLmgKQEAgLTI1LDEwICsyNSwxMyBAQAogCiAjcHJhZ21hIG9u
Y2UKIAorI2luY2x1ZGUgPFdlYkNvcmUvSFRUUENvb2tpZUFjY2VwdFBvbGljeS5oPgorCiBuYW1l
c3BhY2UgV2ViS2l0IHsKIAogc3RydWN0IE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbkluZm8gewog
ICAgIElQQzo6QXR0YWNobWVudCBjb25uZWN0aW9uOworICAgIFdlYkNvcmU6OkhUVFBDb29raWVB
Y2NlcHRQb2xpY3kgY29va2llQWNjZXB0UG9saWN5OwogI2lmIEhBVkUoQVVESVRfVE9LRU4pCiAg
ICAgT3B0aW9uYWw8YXVkaXRfdG9rZW5fdD4gYXVkaXRUb2tlbjsKICNlbmRpZgpAQCAtNjEsNiAr
NjQsNyBAQCBzdHJ1Y3QgTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uSW5mbyB7CiAgICAgdm9pZCBl
bmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIHsKICAgICAgICAgZW5jb2Rl
ciA8PCBjb25uZWN0aW9uOworICAgICAgICBlbmNvZGVyIDw8IGNvb2tpZUFjY2VwdFBvbGljeTsK
ICNpZiBIQVZFKEFVRElUX1RPS0VOKQogICAgICAgICBlbmNvZGVyIDw8IGF1ZGl0VG9rZW47CiAj
ZW5kaWYKQEAgLTcwLDYgKzc0LDggQEAgc3RydWN0IE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbklu
Zm8gewogICAgIHsKICAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShpbmZvLmNvbm5lY3Rpb24p
KQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
RW51bShpbmZvLmNvb2tpZUFjY2VwdFBvbGljeSkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CiAjaWYgSEFWRShBVURJVF9UT0tFTikKICAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShpbmZv
LmF1ZGl0VG9rZW4pKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViQ29va2llSmFyLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkNvb2tpZUphci5jcHAKaW5kZXggNTg4MGJiZmM0
ZDk4NmMxZTUwMTg2OWRlOTU0ZDZhNTc5MTg3M2NiNy4uMzI1ODMwNWM3ODlkNzc1ZmUxNWMxYzA4
MjhjMzZlOWUyZjJhODYwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViQ29va2llSmFyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJDb29raWVKYXIuY3BwCkBAIC0xMjksMTIgKzEyOSwxOSBAQCB2b2lkIFdlYkNvb2tp
ZUphcjo6c2V0Q29va2llcyhXZWJDb3JlOjpEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFVSTCYg
dXJsLCBjb25zdAogICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQcm9j
ZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVj
dGlvblRvV2ViUHJvY2Vzczo6U2V0Q29va2llc0Zyb21ET00oZG9jdW1lbnQuZmlyc3RQYXJ0eUZv
ckNvb2tpZXMoKSwgc2FtZVNpdGVJbmZvKGRvY3VtZW50KSwgdXJsLCBmcmFtZUlELCBwYWdlSUQs
IHNob3VsZEFza0lUUEluTmV0d29ya1Byb2Nlc3MsIGNvb2tpZVN0cmluZyksIDApOwogfQogCi1i
b29sIFdlYkNvb2tpZUphcjo6Y29va2llc0VuYWJsZWQoY29uc3QgV2ViQ29yZTo6RG9jdW1lbnQm
IGRvY3VtZW50KSBjb25zdAorYm9vbCBXZWJDb29raWVKYXI6OmNvb2tpZXNFbmFibGVkKGNvbnN0
IERvY3VtZW50JiBkb2N1bWVudCkgY29uc3QKIHsKLSAgICBib29sIHJlc3VsdCA9IGZhbHNlOwot
ICAgIGlmICghV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25u
ZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmRTeW5jKE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzczo6Q29va2llc0VuYWJsZWQoKSwgTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzOjpDb29raWVzRW5hYmxlZDo6UmVwbHkocmVzdWx0KSwgMCkpCisgICAg
YXV0byogd2ViRnJhbWUgPSBkb2N1bWVudC5mcmFtZSgpID8gV2ViRnJhbWU6OmZyb21Db3JlRnJh
bWUoKmRvY3VtZW50LmZyYW1lKCkpIDogbnVsbHB0cjsKKyAgICBpZiAoIXdlYkZyYW1lIHx8ICF3
ZWJGcmFtZS0+cGFnZSgpKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgcmV0dXJuIHJlc3Vs
dDsKKworI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisgICAgU2hvdWxkQXNr
SVRQIGR1bW15OworICAgIGlmIChzaG91bGRCbG9ja0Nvb2tpZXMod2ViRnJhbWUsIGRvY3VtZW50
LmZpcnN0UGFydHlGb3JDb29raWVzKCksIGRvY3VtZW50LmNvb2tpZVVSTCgpLCBkdW1teSkpCisg
ICAgICAgIHJldHVybiBmYWxzZTsKKyNlbmRpZgorCisgICAgcmV0dXJuIFdlYlByb2Nlc3M6OnNp
bmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLmNvb2tpZXNFbmFibGVk
KCk7CiB9CiAKIHN0ZDo6cGFpcjxTdHJpbmcsIFdlYkNvcmU6OlNlY3VyZUNvb2tpZXNBY2Nlc3Nl
ZD4gV2ViQ29va2llSmFyOjpjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShjb25zdCBVUkwm
IGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBj
b25zdCBVUkwmIHVybCwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25h
bDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBXZWJDb3JlOjpJbmNsdWRlU2VjdXJlQ29va2llcyBp
bmNsdWRlU2VjdXJlQ29va2llcykgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9j
ZXNzLmNwcAppbmRleCBjYTQxOGNkNzAyZjhlY2QzNmQyMTFlZTZkZGJhYTZhZjc5ZjBlMjVmLi42
NWM5YmM0Y2E3NmFjOTUwZGQ5NjgyZTEyMjRkY2I4ZjZlMGU0OGZlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCkBAIC0xMTkxLDcgKzExOTEsNyBAQCBOZXR3b3JrUHJv
Y2Vzc0Nvbm5lY3Rpb24mIFdlYlByb2Nlc3M6OmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlv
bigpCiAgICAgICAgIGlmICghSVBDOjpDb25uZWN0aW9uOjppZGVudGlmaWVySXNWYWxpZChjb25u
ZWN0aW9uSW5mby5pZGVudGlmaWVyKCkpKQogICAgICAgICAgICAgQ1JBU0goKTsKIAotICAgICAg
ICBtX25ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbiA9IE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6
Y3JlYXRlKGNvbm5lY3Rpb25JbmZvLnJlbGVhc2VJZGVudGlmaWVyKCkpOworICAgICAgICBtX25l
dHdvcmtQcm9jZXNzQ29ubmVjdGlvbiA9IE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6Y3JlYXRl
KGNvbm5lY3Rpb25JbmZvLnJlbGVhc2VJZGVudGlmaWVyKCksIGNvbm5lY3Rpb25JbmZvLmNvb2tp
ZUFjY2VwdFBvbGljeSk7CiAjaWYgSEFWRShBVURJVF9UT0tFTikKICAgICAgICAgbV9uZXR3b3Jr
UHJvY2Vzc0Nvbm5lY3Rpb24tPnNldE5ldHdvcmtQcm9jZXNzQXVkaXRUb2tlbihXVEZNb3ZlKGNv
bm5lY3Rpb25JbmZvLmF1ZGl0VG9rZW4pKTsKICNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>388354</attachid>
            <date>2020-01-21 14:53:46 -0800</date>
            <delta_ts>2020-01-21 15:01:50 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-206450-20200121145345.patch</filename>
            <type>text/plain</type>
            <size>82325</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0ODgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGJlNzFhNWRjNDQxN2Rm
OGFlM2VjNzg3MjNiMmYzZDI5NjQxYTdhMC4uNGNjYzNlZWRjN2IxMTU5ZTVjNmMyMTQzZmEyNGVh
ZWE4YmYyMzljMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIwLTAxLTIxICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgRnJlcXVlbnQgTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3M6OkNvb2tpZXNFbmFibGVkIHN5bmMgSVBDIHdoZW4gYnJvd3Np
bmcgcmVkZGl0LmNvbQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjA2NDUwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgTW92ZSBIVFRQQ29va2llQWNjZXB0UG9saWN5LmggaGVhZGVyIGZyb20gV2ViS2l0IHRv
IFdlYkNvcmUgc28gdGhhdCB0aGUgSFRUUENvb2tpZUFjY2VwdFBvbGljeSBlbnVtCisgICAgICAg
IGNhbiBiZSB1c2VkIGluIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbi4gUmVwbGFjZSBOZXR3b3JrU3Rv
cmFnZVNlc3Npb246OmNvb2tpZXNFbmFibGVkKCkgd2l0aCBhIG1vcmUKKyAgICAgICAgZGV0YWls
ZWQgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpjb29raWVBY2NlcHRQb2xpY3koKSBtZXRob2QuCisK
KyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICog
bG9hZGVyL0Nvb2tpZUphci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb29raWVKYXI6OmNvb2tp
ZXNFbmFibGVkIGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL0hUVFBDb29raWVB
Y2NlcHRQb2xpY3kuaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL0hUVFBDb29r
aWVBY2NlcHRQb2xpY3kuaC4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9y
YWdlU2Vzc2lvbi5jcHA6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFn
ZVNlc3Npb24uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2NmL05ldHdvcmtTdG9yYWdl
U2Vzc2lvbkNGTmV0V2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vz
c2lvbjo6Y29va2llQWNjZXB0UG9saWN5IGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3
b3JrL2NvY29hL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkNvY29hLm1tOgorICAgICAgICAoV2ViQ29y
ZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpjb29raWVBY2NlcHRQb2xpY3kgY29uc3QpOgorICAg
ICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY3VybC9OZXR3b3JrU3RvcmFnZVNlc3Npb25DdXJsLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y29va2llQWNjZXB0
UG9saWN5IGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvTmV0d29ya1N0
b3JhZ2VTZXNzaW9uU291cC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNl
c3Npb246OmNvb2tpZUFjY2VwdFBvbGljeSBjb25zdCk6CisKIDIwMjAtMDEtMjEgIFl1c3VrZSBT
dXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAgICAgICBbV1RGXSBBdG9tU3RyaW5nVGFi
bGUgc2hvdWxkIGJlIHNtYWxsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGJmNGZlNThlZDZjM2FmZThhYzZmODA0MWU3
ZjRlYzJmNTJjYzA5ZmMuLjhlMjc0ZTRjMDdiZjk1ODAxMDg2ZjJiOGIwYTU4NzllYzA3NWU3YmEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsNzcgQEAKKzIwMjAtMDEtMjEgIENocmlzIER1bWV6ICA8Y2R1
bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBGcmVxdWVudCBOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzczo6Q29va2llc0VuYWJsZWQgc3luYyBJUEMgd2hlbiBicm93c2luZyByZWRkaXQuY29t
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDY0NTAK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGcmVxdWVu
dCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Q29va2llc0VuYWJsZWQgc3luYyBJUEMg
d2hlbiBicm93c2luZyByZWRkaXQuY29tLiBUaGlzCisgICAgICAgIGhhcHBlbnMgZXZlcnkgdGlt
ZSB0aGUgcGFnZSBzY3JpcHQgY2FsbHMgbmF2aWdhdG9yLmNvb2tpZUVuYWJsZWQuIFRvIGFkZHJl
c3MgdGhlIGlzc3VlLCB3ZSBub3cKKyAgICAgICAgc3RvcmUgdGhlICJjb29raWUgYWNjZXB0IHBv
bGljeSIgb24gdGhlIFdlYkNvbnRlbnQgcHJvY2VzcyBzaWRlLiBUaGlzIGFsbG93cyB1cyB0byBr
bm93CisgICAgICAgIHN5bmNocm9ub3VzbHkgb24gdGhlIFdlYkNvbnRlbnQgcHJvY2VzcyBpZiBj
b29raWVzIGFyZSBlbmFibGVkIG9yIG5vdCBhbmQgd2l0aG91dCBhbnkgSVBDIHRvCisgICAgICAg
IHRoZSBuZXR3b3JrIHByb2Nlc3MuIFRvIGFjaGlldmUgdGhpcywgSSBhZGRlZCBhIG5ldyBjb29r
aWVBY2NlcHRQb2xpY3kgbWVtYmVyIHRvCisgICAgICAgIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlv
bkluZm8gc28gdGhhdCB0aGUgV2ViQ29udGVudCBwcm9jZXNzIGlzIGF3YXJlIG9mIHRoZSBpbml0
aWFsIHBvbGljeSB3aGVuCisgICAgICAgIGl0IGNvbm5lY3RzIHRvIHRoZSBuZXR3b3JrIHByb2Nl
c3MuIFRoZSBwb2xpY3kgb24gdGhlIFdlYkNvbnRlbnQgcHJvY2VzcyBzaWRlIGlzIHRoZW4ga2Vw
dCB1cAorICAgICAgICB0byBkYXRlIHZpYSBJUENzIGZyb20gdGhlIG5ldHdvcmsgcHJvY2VzcyB0
byB0aGUgV2ViQ29udGVudCBwcm9jZXNzZXMgd2hlbmV2ZXIgdGhlIGNvb2tpZQorICAgICAgICBh
Y2NlcHQgcG9saWN5IGNoYW5nZXMuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9Db29raWVz
L1dlYkNvb2tpZU1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDb29raWVNYW5hZ2Vy
OjpzZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29va2ll
TWFuYWdlcjo6Z2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeSk6CisgICAgICAgICogTmV0d29ya1By
b2Nlc3MvQ29va2llcy9XZWJDb29raWVNYW5hZ2VyLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nl
c3MvQ29va2llcy9XZWJDb29raWVNYW5hZ2VyLm1lc3NhZ2VzLmluOgorICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL0Nvb2tpZXMvY3VybC9XZWJDb29raWVNYW5hZ2VyQ3VybC5jcHA6CisgICAgICAg
ICogTmV0d29ya1Byb2Nlc3MvQ29va2llcy9tYWMvV2ViQ29va2llTWFuYWdlck1hYy5tbToKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9Db29raWVzL3NvdXAvV2ViQ29va2llTWFuYWdlclNvdXAu
Y3BwOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6
OmNvb2tpZUFjY2VwdFBvbGljeUNoYW5nZWQpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
UHJvY2Vzczo6Y3JlYXRlTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MpOgorICAgICAgICAo
V2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6Y29va2llQWNjZXB0UG9saWN5Q2hhbmdlZCk6CisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaDoKKyAgICAgICAgKiBOZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oOgorICAgICAgICAqIFNoYXJl
ZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9BUElIVFRQQ29va2llU3RvcmUuY3BwOgorICAgICAgICAoQVBJOjpIVFRQQ29va2llU3RvcmU6
OnNldEhUVFBDb29raWVBY2NlcHRQb2xpY3kpOgorICAgICAgICAoQVBJOjpIVFRQQ29va2llU3Rv
cmU6OnNldEhUVFBDb29raWVBY2NlcHRQb2xpY3lJbkRlZmF1bHRVSVByb2Nlc3NDb29raWVTdG9y
ZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElIVFRQQ29va2llU3RvcmUuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0Lmg6CisgICAgICAgIChXZWJLaXQ6OnRvSFRU
UENvb2tpZUFjY2VwdFBvbGljeSk6CisgICAgICAgIChXZWJLaXQ6OnRvQVBJKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL0NvY29hL0FQSUhUVFBDb29raWVTdG9yZUNvY29hLm1tOgorICAgICAg
ICAoQVBJOjp0b05TSFRUUENvb2tpZUFjY2VwdFBvbGljeSk6CisgICAgICAgIChBUEk6OkhUVFBD
b29raWVTdG9yZTo6c2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeUluRGVmYXVsdFVJUHJvY2Vzc0Nv
b2tpZVN0b3JlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLSFRUUENvb2tpZVN0
b3JlLm1tOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5tbToK
KyAgICAgICAgKHRvSFRUUENvb2tpZUFjY2VwdFBvbGljeSk6CisgICAgICAgICogVUlQcm9jZXNz
L05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtQcm9jZXNzUHJveHk6Om9wZW5OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24pOgorICAgICAgICAq
IFVJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Bvb2wuaDoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0
aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpOZXR3
b3JrUHJvY2Vzc0Nvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc0Nv
bm5lY3Rpb246OndyaXRlQmxvYnNUb1RlbXBvcmFyeUZpbGVzKToKKyAgICAgICAgKFdlYktpdDo6
TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpjb29raWVzRW5hYmxlZCk6CisgICAgICAgIChXZWJL
aXQ6Ok5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6Y29va2llQWNjZXB0UG9saWN5Q2hhbmdlZCk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5o
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OmNyZWF0ZSk6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5tZXNz
YWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25u
ZWN0aW9uSW5mby5oOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25J
bmZvOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc0Nvbm5l
Y3Rpb25JbmZvOjpkZWNvZGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJDb29r
aWVKYXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDb29raWVKYXI6OmNvb2tpZXNFbmFibGVk
IGNvbnN0KToKKyAgICAgICAgLSBSZXR1cm4gZmFsc2UgZWFybHkgaWYgdGhlIGRvY3VtZW50IGhh
cyBubyBmcmFtZSAvIHBhZ2UgKGNvb2tpZS1hdmVyc2UgYXMgcGVyIHNwZWMpCisgICAgICAgIC0g
UmV0dXJuIGZhbHNlIGVhcmx5IGlmIElUUCBpcyBlbmFibGVkIGFuZCBpdCBpcyBhIHRoaXJkLXBh
cnR5IGlmcmFtZSB3aXRob3V0IHN0b3JhZ2UKKyAgICAgICAgICBhY2Nlc3MuIFRoaXMgYnlwYXNz
ZXMgdGhlIHN5bmMgSVBDIGNhbGwgY29tcGxldGVseSBmb3Igc3VjaCBpZnJhbWVzLgorCisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJv
Y2Vzczo6ZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKToKKwogMjAyMC0wMS0yMSAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFttYWNPU10gQWRkIG1hbmFn
ZWQgcHJlZmVyZW5jZSB0byBhbGxvdyBzeW5jaHJvbm91cyBYSFIgZHVyaW5nIHBhZ2UgZGlzbWlz
c2FsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291cmNlL1dl
YkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCBiYjg3ODA2MTgzNzQxZjk2MjY4Mzg2OGVmYzY4OTEw
MmJjNGY0YTJkLi45ZjVkMmM3MjFjMDUxMTUwNDdjODJhODQ0ZmQxZDI5OWU3ZmZiMDNlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0hlYWRlcnMuY21ha2UKQEAgLTEyMjIsNiArMTIyMiw3IEBAIHNldChXZWJDb3JlX1BSSVZBVEVf
RlJBTUVXT1JLX0hFQURFUlMKICAgICBwbGF0Zm9ybS9uZXR3b3JrL0ROUy5oCiAgICAgcGxhdGZv
cm0vbmV0d29yay9ETlNSZXNvbHZlUXVldWUuaAogICAgIHBsYXRmb3JtL25ldHdvcmsvRm9ybURh
dGEuaAorICAgIHBsYXRmb3JtL25ldHdvcmsvSFRUUENvb2tpZUFjY2VwdFBvbGljeS5oCiAgICAg
cGxhdGZvcm0vbmV0d29yay9IVFRQSGVhZGVyTWFwLmgKICAgICBwbGF0Zm9ybS9uZXR3b3JrL0hU
VFBQYXJzZXJzLmgKICAgICBwbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtMb2FkSW5mb3JtYXRpb24u
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CmluZGV4IDlhNzJjYjEzYWUyZTc5YmU2MDk4YzkzMzc2NGM3NGYwMjFlNWM5OGUuLjljYzQ4M2E1
OTZlODY0YTQ0YmY4NTAyNGIzMDFhODMxZGFlNmJkZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEyNTIsNiArMTI1Miw3IEBA
CiAJCTQ2Qjk1MTlBMjA3RDYzNTQwMEE3RDJERCAvKiBSZW1vdGVGcmFtZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDZCOTUxOTIyMDdENjMyRTAwQTdE
MkREIC8qIFJlbW90ZUZyYW1lLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJNDZCOTVCRjUyMjMxQ0ZENjAwNTNBNTA0IC8qIERldmljZU9yaWVudGF0
aW9uQW5kTW90aW9uQWNjZXNzQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNDZCOTVCRjQyMjMxQ0ZCODAwNTNBNTA0IC8qIERldmljZU9y
aWVudGF0aW9uQW5kTW90aW9uQWNjZXNzQ29udHJvbGxlci5oICovOyB9OwogCQk0NkJDQkJDMjIw
ODUwMDhGMDA3MTA2MzggLyogSlNSZW1vdGVET01XaW5kb3dCYXNlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NkJDQkJDMDIwODUwMDdGMDA3MTA2Mzgg
LyogSlNSZW1vdGVET01XaW5kb3dCYXNlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKKwkJNDZDMDk2MjEyM0Q3OERENjAwNjU3QzA5IC8qIEhUVFBDb29r
aWVBY2NlcHRQb2xpY3kuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDQ2QzA5NjIwMjNENzhERDYwMDY1N0MwOSAvKiBIVFRQQ29va2llQWNjZXB0UG9saWN5
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDZD
Mzc2NjIyMDg1MTc3RDAwQzczODI5IC8qIEpTUmVtb3RlRE9NV2luZG93LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NkMzNzY2MTIwODUxNzZEMDBDNzM4
MjkgLyogSlNSZW1vdGVET01XaW5kb3cuaCAqLzsgfTsKIAkJNDZDNjk2Q0IxRTcyMDVGNzAwNTk3
OTM3IC8qIENQVU1vbml0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDQ2QzY5NkM5MUU3MjA1RTQwMDU5NzkzNyAvKiBDUFVNb25pdG9yLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDZDNjk2Q0MxRTcy
MDVGQzAwNTk3OTM3IC8qIENQVU1vbml0b3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNDZDNjk2Q0ExRTcyMDVFNDAwNTk3OTM3IC8qIENQVU1vbml0
b3IuY3BwICovOyB9OwpAQCAtNzc4Myw2ICs3Nzg0LDcgQEAKIAkJNDZCQ0JCQzAyMDg1MDA3RjAw
NzEwNjM4IC8qIEpTUmVtb3RlRE9NV2luZG93QmFzZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBKU1JlbW90ZURPTVdpbmRvd0Jhc2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNDZCQ0JCQzEyMDg1MDA4MDAwNzEwNjM4IC8qIEpTUmVtb3RlRE9NV2luZG93QmFz
ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1JlbW90ZURPTVdp
bmRvd0Jhc2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NkJDQkJDMzIwODUw
MEE3MDA3MTA2MzggLyogUmVtb3RlRE9NV2luZG93LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGgg
PSBSZW1vdGVET01XaW5kb3cuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0NkMw
OTYyMDIzRDc4REQ2MDA2NTdDMDkgLyogSFRUUENvb2tpZUFjY2VwdFBvbGljeS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBIVFRQQ29va2llQWNjZXB0UG9saWN5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTQ2QzM3NjVGMjA4NTE3NkMwMEM3MzgyOSAvKiBKU1JlbW90ZURPTVdpbmRvdy5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1JlbW90ZURPTVdpbmRvdy5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2QzM3NjYxMjA4NTE3NkQwMEM3Mzgy
OSAvKiBKU1JlbW90ZURPTVdpbmRvdy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBKU1JlbW90ZURPTVdpbmRvdy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NkM2
OTZDOTFFNzIwNUU0MDA1OTc5MzcgLyogQ1BVTW9uaXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBDUFVNb25pdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0yMDQ2MSw2ICsyMDQ2Myw3IEBACiAJCQkJNTE0Qzc2NUIwQ0U5MjNBMTAwN0VGM0NEIC8qIEZv
cm1EYXRhLmggKi8sCiAJCQkJMDg1QjkyQjgwRUZERTczRDAwRTYxMjNDIC8qIEZvcm1EYXRhQnVp
bGRlci5jcHAgKi8sCiAJCQkJMDg1QjkyQjkwRUZERTczRDAwRTYxMjNDIC8qIEZvcm1EYXRhQnVp
bGRlci5oICovLAorCQkJCTQ2QzA5NjIwMjNENzhERDYwMDY1N0MwOSAvKiBIVFRQQ29va2llQWNj
ZXB0UG9saWN5LmggKi8sCiAJCQkJMEI4QzU2RDMwRjI4NjI3RjAwMDUwMkUxIC8qIEhUVFBIZWFk
ZXJNYXAuY3BwICovLAogCQkJCTUxNEM3NjVDMENFOTIzQTEwMDdFRjNDRCAvKiBIVFRQSGVhZGVy
TWFwLmggKi8sCiAJCQkJMUFDOTAwQkYxOTQzQUYzRDAwODYyNUI1IC8qIEhUVFBIZWFkZXJOYW1l
cy5pbiAqLywKQEAgLTMwMjc4LDYgKzMwMjgxLDcgQEAKIAkJCQlFNDQ2MTNBQjBDRDYzMzEwMDBG
QURBNzUgLyogSFRNTFZpZGVvRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUQyRjhFMDUy
MzQ0NzUxRDAwOTkzQjY4IC8qIEhUTUxWaWRlb0VsZW1lbnRQaWN0dXJlSW5QaWN0dXJlLmggaW4g
SGVhZGVycyAqLywKIAkJCQk4MzlBQUZFRDFBMEMwQzhEMDA2MDVGOTkgLyogSFRNTFdCUkVsZW1l
bnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTQ2QzA5NjIxMjNENzhERDYwMDY1N0MwOSAvKiBIVFRQ
Q29va2llQWNjZXB0UG9saWN5LmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0ExREVDNjFGNzFGMUM3
MDBFNzFCRDMgLyogSFRUUEhlYWRlckZpZWxkLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTRDNzY3
MTBDRTkyM0ExMDA3RUYzQ0QgLyogSFRUUEhlYWRlck1hcC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MUFCNUVCRDIxOTRBNTBGMzAwNTlBQzcwIC8qIEhUVFBIZWFkZXJOYW1lcy5oIGluIEhlYWRlcnMg
Ki8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ29va2llSmFyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9Db29raWVKYXIuY3BwCmluZGV4IDIzOTA2NjhkZjgzMTEzZmRh
MTczMDM4MGMyNDkxMjA2YmQzODkwNWMuLmEwN2EzMDJhNDIzOTE0MWJmOTQ3NWRmNGY1ZWM1ZGM2
OTg1MGQzMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Db29raWVKYXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Db29raWVKYXIuY3BwCkBAIC0zMiw2ICszMiw3
IEBACiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgogI2luY2x1
ZGUgIkZyYW1lTG9hZGVyQ2xpZW50LmgiCisjaW5jbHVkZSAiSFRUUENvb2tpZUFjY2VwdFBvbGlj
eS5oIgogI2luY2x1ZGUgIk5ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oIgogI2luY2x1ZGUgIk5ldHdv
cmtpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJhdGVnaWVzLmgiCkBAIC0xMjIs
NyArMTIzLDcgQEAgdm9pZCBDb29raWVKYXI6OnNldENvb2tpZXMoRG9jdW1lbnQmIGRvY3VtZW50
LCBjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBjb28KIGJvb2wgQ29va2llSmFyOjpjb29r
aWVzRW5hYmxlZChjb25zdCBEb2N1bWVudCYpIGNvbnN0CiB7CiAgICAgaWYgKGF1dG8qIHNlc3Np
b24gPSBtX3N0b3JhZ2VTZXNzaW9uUHJvdmlkZXItPnN0b3JhZ2VTZXNzaW9uKCkpCi0gICAgICAg
IHJldHVybiBzZXNzaW9uLT5jb29raWVzRW5hYmxlZCgpOworICAgICAgICByZXR1cm4gc2Vzc2lv
bi0+Y29va2llQWNjZXB0UG9saWN5KCkgIT0gSFRUUENvb2tpZUFjY2VwdFBvbGljeTo6TmV2ZXI7
CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0hUVFBDb29raWVBY2NlcHRQb2xp
Y3kuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvSFRUUENvb2tpZUFjY2VwdFBv
bGljeS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjRlNjNmYjM1ZDQwZjdiMmJjY2E1OWY4NmNhYWFmYmYyNjY1YzJi
NjQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0hU
VFBDb29raWVBY2NlcHRQb2xpY3kuaApAQCAtMCwwICsxLDUxIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDExLTIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAor
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitlbnVtIGNsYXNzIEhUVFBDb29raWVBY2NlcHRQb2xpY3kgOiB1aW50
OF90IHsKKyAgICBBbHdheXNBY2NlcHQgPSAwLAorICAgIE5ldmVyID0gMSwKKyAgICBPbmx5RnJv
bU1haW5Eb2N1bWVudERvbWFpbiA9IDIsCisgICAgRXhjbHVzaXZlbHlGcm9tTWFpbkRvY3VtZW50
RG9tYWluID0gMywKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCituYW1lc3BhY2UgV1RG
IHsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpIVFRQQ29va2llQWNj
ZXB0UG9saWN5PiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAgICAgICAgV2Vi
Q29yZTo6SFRUUENvb2tpZUFjY2VwdFBvbGljeSwKKyAgICAgICAgV2ViQ29yZTo6SFRUUENvb2tp
ZUFjY2VwdFBvbGljeTo6QWx3YXlzQWNjZXB0LAorICAgICAgICBXZWJDb3JlOjpIVFRQQ29va2ll
QWNjZXB0UG9saWN5OjpOZXZlciwKKyAgICAgICAgV2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBv
bGljeTo6T25seUZyb21NYWluRG9jdW1lbnREb21haW4sCisgICAgICAgIFdlYkNvcmU6OkhUVFBD
b29raWVBY2NlcHRQb2xpY3k6OkV4Y2x1c2l2ZWx5RnJvbU1haW5Eb2N1bWVudERvbWFpbgorICAg
ID47Cit9OworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5jcHAKaW5kZXggNTE1ZGJmMTk5ZjcxNWNiMGQ0M2Yz
NGZkNTNjMzIzNjkxODFjOTNlNS4uMjk5NDI3NTYyNThlOTI0M2MzYjBhMTAwYjFhM2Y2ZjcyYTg0
NzU4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3Jr
U3RvcmFnZVNlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
TmV0d29ya1N0b3JhZ2VTZXNzaW9uLmNwcApAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgImNv
bmZpZy5oIgogI2luY2x1ZGUgIk5ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oIgogCisjaW5jbHVkZSAi
SFRUUENvb2tpZUFjY2VwdFBvbGljeS5oIgogI2luY2x1ZGUgIlJ1bnRpbWVBcHBsaWNhdGlvbkNo
ZWNrcy5oIgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogI2luY2x1ZGUgPHd0Zi9Q
cm9jZXNzUHJpdmlsZWdlLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaAppbmRleCAzNzIwYWM1ZTg1YjA5OGU0ODM1
Y2I2NzdjMDU4MWUwYjMwNWRkNTVjLi42NTA2ZjEwNzcwNjVhNGQyMWY3OTgwMTkyZjNkNzUwN2Vi
YzIzYTllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdv
cmtTdG9yYWdlU2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
TmV0d29ya1N0b3JhZ2VTZXNzaW9uLmgKQEAgLTcyLDYgKzcyLDcgQEAgc3RydWN0IENvb2tpZTsK
IHN0cnVjdCBDb29raWVSZXF1ZXN0SGVhZGVyRmllbGRQcm94eTsKIHN0cnVjdCBTYW1lU2l0ZUlu
Zm87CiAKK2VudW0gY2xhc3MgSFRUUENvb2tpZUFjY2VwdFBvbGljeSA6IHVpbnQ4X3Q7CiBlbnVt
IGNsYXNzIEluY2x1ZGVTZWN1cmVDb29raWVzIDogYm9vbDsKIGVudW0gY2xhc3MgSW5jbHVkZUh0
dHBPbmx5Q29va2llcyA6IGJvb2w7CiBlbnVtIGNsYXNzIFRoaXJkUGFydHlDb29raWVCbG9ja2lu
Z01vZGUgOiB1aW50OF90IHsgQWxsLCBBbGxPblNpdGVzV2l0aG91dFVzZXJJbnRlcmFjdGlvbiwg
T25seUFjY29yZGluZ1RvUGVyRG9tYWluUG9saWN5IH07CkBAIC0xMjUsNyArMTI2LDcgQEAgcHVi
bGljOgogICAgIE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0KCkgY29uc3Q7CiAjZW5kaWYKIAot
ICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgY29va2llc0VuYWJsZWQoKSBjb25zdDsKKyAgICBXRUJD
T1JFX0VYUE9SVCBIVFRQQ29va2llQWNjZXB0UG9saWN5IGNvb2tpZUFjY2VwdFBvbGljeSgpIGNv
bnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0Q29va2llKGNvbnN0IENvb2tpZSYpOwog
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0Q29va2llcyhjb25zdCBWZWN0b3I8Q29va2llPiYs
IGNvbnN0IFVSTCYsIGNvbnN0IFVSTCYgbWFpbkRvY3VtZW50VVJMKTsKICAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIHNldENvb2tpZXNGcm9tRE9NKGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3Qg
U2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiwgT3B0
aW9uYWw8UGFnZUlkZW50aWZpZXI+LCBTaG91bGRBc2tJVFAsIGNvbnN0IFN0cmluZyYpIGNvbnN0
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9OZXR3b3Jr
U3RvcmFnZVNlc3Npb25DRk5ldFdpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL2NmL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkNGTmV0V2luLmNwcAppbmRleCA1MmRhY2M2ODZk
ODNiYTI5ODEzMDc5MDU5YWM4NTUxZmE2MWU5M2JjLi4wNmE1M2IyZmExODM1YThiZDFkOWY1NDFj
NDAwZmZhNjJmZjBjYjkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL2NmL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkNGTmV0V2luLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkNGTmV0V2luLmNw
cApAQCAtMjgsNiArMjgsNyBAQAogCiAjaW5jbHVkZSAiQ29va2llLmgiCiAjaW5jbHVkZSAiQ29v
a2llUmVxdWVzdEhlYWRlckZpZWxkUHJveHkuaCIKKyNpbmNsdWRlICJIVFRQQ29va2llQWNjZXB0
UG9saWN5LmgiCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRlIDxDRk5ldHdv
cmsvQ0ZIVFRQQ29va2llc1ByaXYuaD4KICNpbmNsdWRlIDxDb3JlRm91bmRhdGlvbi9Db3JlRm91
bmRhdGlvbi5oPgpAQCAtMjU4LDEwICsyNTksMTcgQEAgc3RkOjpwYWlyPFN0cmluZywgYm9vbD4g
TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShjb24K
ICAgICByZXR1cm4gY29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoaGVhZGVyRmllbGRQcm94
eS5maXJzdFBhcnR5LCBoZWFkZXJGaWVsZFByb3h5LnNhbWVTaXRlSW5mbywgaGVhZGVyRmllbGRQ
cm94eS51cmwsIGhlYWRlckZpZWxkUHJveHkuZnJhbWVJRCwgaGVhZGVyRmllbGRQcm94eS5wYWdl
SUQsIGhlYWRlckZpZWxkUHJveHkuaW5jbHVkZVNlY3VyZUNvb2tpZXMsIFNob3VsZEFza0lUUDo6
WWVzKTsKIH0KIAotYm9vbCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmNvb2tpZXNFbmFibGVkKCkg
Y29uc3QKK0hUVFBDb29raWVBY2NlcHRQb2xpY3kgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpjb29r
aWVBY2NlcHRQb2xpY3koKSBjb25zdAogewogICAgIENGSFRUUENvb2tpZVN0b3JhZ2VBY2NlcHRQ
b2xpY3kgcG9saWN5ID0gQ0ZIVFRQQ29va2llU3RvcmFnZUdldENvb2tpZUFjY2VwdFBvbGljeShj
b29raWVTdG9yYWdlKCkuZ2V0KCkpOwotICAgIHJldHVybiBwb2xpY3kgPT0gQ0ZIVFRQQ29va2ll
U3RvcmFnZUFjY2VwdFBvbGljeU9ubHlGcm9tTWFpbkRvY3VtZW50RG9tYWluIHx8IHBvbGljeSA9
PSBDRkhUVFBDb29raWVTdG9yYWdlQWNjZXB0UG9saWN5RXhjbHVzaXZlbHlGcm9tTWFpbkRvY3Vt
ZW50RG9tYWluIHx8IHBvbGljeSA9PSBDRkhUVFBDb29raWVTdG9yYWdlQWNjZXB0UG9saWN5QWx3
YXlzOworICAgIGlmIChwb2xpY3kgPT0gQ0ZIVFRQQ29va2llU3RvcmFnZUFjY2VwdFBvbGljeUFs
d2F5cykKKyAgICAgICAgcmV0dXJuIEhUVFBDb29raWVBY2NlcHRQb2xpY3k6OkFsd2F5c0FjY2Vw
dDsKKyAgICBpZiAocG9saWN5ID09IENGSFRUUENvb2tpZVN0b3JhZ2VBY2NlcHRQb2xpY3lPbmx5
RnJvbU1haW5Eb2N1bWVudERvbWFpbikKKyAgICAgICAgcmV0dXJuIEhUVFBDb29raWVBY2NlcHRQ
b2xpY3k6Ok9ubHlGcm9tTWFpbkRvY3VtZW50RG9tYWluOworICAgIGlmIChwb2xpY3kgPT0gQ0ZI
VFRQQ29va2llU3RvcmFnZUFjY2VwdFBvbGljeUV4Y2x1c2l2ZWx5RnJvbU1haW5Eb2N1bWVudERv
bWFpbikKKyAgICAgICAgcmV0dXJuIEhUVFBDb29raWVBY2NlcHRQb2xpY3k6OkV4Y2x1c2l2ZWx5
RnJvbU1haW5Eb2N1bWVudERvbWFpbjsKKworICAgIHJldHVybiBIVFRQQ29va2llQWNjZXB0UG9s
aWN5OjpOZXZlcjsKIH0KIAogYm9vbCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmdldFJhd0Nvb2tp
ZXMoY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwm
IHVybCwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRl
bnRpZmllcj4gcGFnZUlELCBTaG91bGRBc2tJVFAsIFZlY3RvcjxDb29raWU+JiByYXdDb29raWVz
KSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2Nv
YS9OZXR3b3JrU3RvcmFnZVNlc3Npb25Db2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvY29jb2EvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ29jb2EubW0KaW5kZXggOWY2NzY1
ZWE2N2QxMGNlZjNiNjJlZDVjZTAwYjk4ODgxOTRmMmNkMS4uZmQxYWU1OGQ3NTMxMGY3NDY2NTdm
YmNkOTFkNmViNzZkNzY1N2QwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9jb2NvYS9OZXR3b3JrU3RvcmFnZVNlc3Npb25Db2NvYS5tbQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkNvY29h
Lm1tCkBAIC0yOSw2ICsyOSw3IEBACiAjaW1wb3J0ICJDb29raWUuaCIKICNpbXBvcnQgIkNvb2tp
ZVJlcXVlc3RIZWFkZXJGaWVsZFByb3h5LmgiCiAjaW1wb3J0ICJDb29raWVTdG9yYWdlT2JzZXJ2
ZXIuaCIKKyNpbXBvcnQgIkhUVFBDb29raWVBY2NlcHRQb2xpY3kuaCIKICNpbXBvcnQgIlNhbWVT
aXRlSW5mby5oIgogI2ltcG9ydCA8cGFsL3NwaS9jZi9DRk5ldHdvcmtTUEkuaD4KICNpbXBvcnQg
PHd0Zi9CbG9ja09iakNFeGNlcHRpb25zLmg+CkBAIC00NDgsMTUgKzQ0OSwxOSBAQCBzdGF0aWMg
TlNIVFRQQ29va2llQWNjZXB0UG9saWN5IGh0dHBDb29raWVBY2NlcHRQb2xpY3koQ0ZIVFRQQ29v
a2llU3RvcmFnZVJlZiBjbwogICAgIHJldHVybiBzdGF0aWNfY2FzdDxOU0hUVFBDb29raWVBY2Nl
cHRQb2xpY3k+KENGSFRUUENvb2tpZVN0b3JhZ2VHZXRDb29raWVBY2NlcHRQb2xpY3koY29va2ll
U3RvcmFnZSkpOwogfQogCi1ib29sIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y29va2llc0VuYWJs
ZWQoKSBjb25zdAorSFRUUENvb2tpZUFjY2VwdFBvbGljeSBOZXR3b3JrU3RvcmFnZVNlc3Npb246
OmNvb2tpZUFjY2VwdFBvbGljeSgpIGNvbnN0CiB7CiAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENF
UFRJT05TOwotCiAgICAgTlNIVFRQQ29va2llQWNjZXB0UG9saWN5IGNvb2tpZUFjY2VwdFBvbGlj
eSA9IGh0dHBDb29raWVBY2NlcHRQb2xpY3koY29va2llU3RvcmFnZSgpLmdldCgpKTsKLSAgICBy
ZXR1cm4gY29va2llQWNjZXB0UG9saWN5ID09IE5TSFRUUENvb2tpZUFjY2VwdFBvbGljeUFsd2F5
cyB8fCBjb29raWVBY2NlcHRQb2xpY3kgPT0gTlNIVFRQQ29va2llQWNjZXB0UG9saWN5T25seUZy
b21NYWluRG9jdW1lbnREb21haW4gfHwgY29va2llQWNjZXB0UG9saWN5ID09IE5TSFRUUENvb2tp
ZUFjY2VwdFBvbGljeUV4Y2x1c2l2ZWx5RnJvbU1haW5Eb2N1bWVudERvbWFpbjsKLQorICAgIGlm
IChjb29raWVBY2NlcHRQb2xpY3kgPT0gTlNIVFRQQ29va2llQWNjZXB0UG9saWN5QWx3YXlzKQor
ICAgICAgICByZXR1cm4gSFRUUENvb2tpZUFjY2VwdFBvbGljeTo6QWx3YXlzQWNjZXB0OworICAg
IGlmIChjb29raWVBY2NlcHRQb2xpY3kgPT0gTlNIVFRQQ29va2llQWNjZXB0UG9saWN5T25seUZy
b21NYWluRG9jdW1lbnREb21haW4pCisgICAgICAgIHJldHVybiBIVFRQQ29va2llQWNjZXB0UG9s
aWN5OjpPbmx5RnJvbU1haW5Eb2N1bWVudERvbWFpbjsKKyAgICBpZiAoY29va2llQWNjZXB0UG9s
aWN5ID09IE5TSFRUUENvb2tpZUFjY2VwdFBvbGljeUV4Y2x1c2l2ZWx5RnJvbU1haW5Eb2N1bWVu
dERvbWFpbikKKyAgICAgICAgcmV0dXJuIEhUVFBDb29raWVBY2NlcHRQb2xpY3k6OkV4Y2x1c2l2
ZWx5RnJvbU1haW5Eb2N1bWVudERvbWFpbjsKICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05T
OwotICAgIHJldHVybiBmYWxzZTsKKworICAgIHJldHVybiBIVFRQQ29va2llQWNjZXB0UG9saWN5
OjpOZXZlcjsKIH0KIAogYm9vbCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmdldFJhd0Nvb2tpZXMo
Y29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5mbywg
Y29uc3QgVVJMJiB1cmwsIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9u
YWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgU2hvdWxkQXNrSVRQIHNob3VsZEFza0lUUCwgVmVj
dG9yPENvb2tpZT4mIHJhd0Nvb2tpZXMpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ3VybC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvTmV0d29ya1N0b3JhZ2VTZXNzaW9u
Q3VybC5jcHAKaW5kZXggZDcwNDUwNGU2NDk5MWQ3NGYzMTcwZDgzNzhkYzJkZTI2NDgzMDJhYi4u
YmY5YzY3YTFlY2U2ZWIxZjBhNjQyMDA3ZjBlMWQ5NmVkN2Q1ZGYzMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkN1
cmwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9OZXR3b3Jr
U3RvcmFnZVNlc3Npb25DdXJsLmNwcApAQCAtODUsOSArODUsMjEgQEAgdm9pZCBOZXR3b3JrU3Rv
cmFnZVNlc3Npb246OnNldENvb2tpZXNGcm9tRE9NKGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29u
c3QgU2FtZVMKICAgICBjb29raWVTdG9yYWdlKCkuc2V0Q29va2llc0Zyb21ET00oKnRoaXMsIGZp
cnN0UGFydHksIHNhbWVTaXRlSW5mbywgdXJsLCBmcmFtZUlELCBwYWdlSUQsIHZhbHVlKTsKIH0K
IAotYm9vbCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmNvb2tpZXNFbmFibGVkKCkgY29uc3QKLXsK
LSAgICByZXR1cm4gY29va2llU3RvcmFnZSgpLmNvb2tpZXNFbmFibGVkKCp0aGlzKTsKK0hUVFBD
b29raWVBY2NlcHRQb2xpY3kgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpjb29raWVBY2NlcHRQb2xp
Y3koKSBjb25zdAoreworICAgIHN3aXRjaCAoY29va2llU3RvcmFnZSgpLmNvb2tpZUFjY2VwdFBv
bGljeSgqdGhpcykpIHsKKyAgICBjYXNlIENvb2tpZUFjY2VwdFBvbGljeTo6QWx3YXlzOgorICAg
ICAgICByZXR1cm4gSFRUUENvb2tpZUFjY2VwdFBvbGljeTo6QWx3YXlzQWNjZXB0OworICAgIGNh
c2UgQ29va2llQWNjZXB0UG9saWN5OjpOZXZlcjoKKyAgICAgICAgcmV0dXJuIEhUVFBDb29raWVB
Y2NlcHRQb2xpY3k6Ok5ldmVyOworICAgIGNhc2UgQ29va2llQWNjZXB0UG9saWN5OjpPbmx5RnJv
bU1haW5Eb2N1bWVudERvbWFpbjoKKyAgICAgICAgcmV0dXJuIEhUVFBDb29raWVBY2NlcHRQb2xp
Y3k6Ok9ubHlGcm9tTWFpbkRvY3VtZW50RG9tYWluOworICAgIGNhc2UgQ29va2llQWNjZXB0UG9s
aWN5OjpFeGNsdXNpdmVseUZyb21NYWluRG9jdW1lbnREb21haW46CisgICAgICAgIHJldHVybiBI
VFRQQ29va2llQWNjZXB0UG9saWN5OjpFeGNsdXNpdmVseUZyb21NYWluRG9jdW1lbnREb21haW47
CisgICAgfQorCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIEhUVFBDb29r
aWVBY2NlcHRQb2xpY3k6Ok9ubHlGcm9tTWFpbkRvY3VtZW50RG9tYWluOwogfQogCiBzdGQ6OnBh
aXI8U3RyaW5nLCBib29sPiBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmNvb2tpZXNGb3JET00oY29u
c3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5mbywgY29u
c3QgVVJMJiB1cmwsIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9uYWw8
UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgSW5jbHVkZVNlY3VyZUNvb2tpZXMgaW5jbHVkZVNlY3Vy
ZUNvb2tpZXMsIFNob3VsZEFza0lUUCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvc291cC9OZXR3b3JrU3RvcmFnZVNlc3Npb25Tb3VwLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9OZXR3b3JrU3RvcmFnZVNlc3Npb25T
b3VwLmNwcAppbmRleCBlMDU1MDc2YzdlMWRiYzI0MGVmMjM5YjdkZTIwNWMzYTg1OTQ1ZjkyLi42
ZGRiNTk3YWFhY2FiOWMzM2FkNjVjMGVmZDg3Y2JlNTc4MTQxOTJlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU291
cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL05ldHdvcmtT
dG9yYWdlU2Vzc2lvblNvdXAuY3BwCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiQ29va2ll
LmgiCiAjaW5jbHVkZSAiQ29va2llUmVxdWVzdEhlYWRlckZpZWxkUHJveHkuaCIKICNpbmNsdWRl
ICJHVW5pcXVlUHRyU291cC5oIgorI2luY2x1ZGUgIkhUVFBDb29raWVBY2NlcHRQb2xpY3kuaCIK
ICNpbmNsdWRlICJSZXNvdXJjZUhhbmRsZS5oIgogI2luY2x1ZGUgIlNvdXBOZXR3b3JrU2Vzc2lv
bi5oIgogI2luY2x1ZGUgIlVSTFNvdXAuaCIKQEAgLTI0MSwxMCArMjQyLDE0IEBAIHZvaWQgTmV0
d29ya1N0b3JhZ2VTZXNzaW9uOjpzYXZlQ3JlZGVudGlhbFRvUGVyc2lzdGVudFN0b3JhZ2UoY29u
c3QgUHJvdGVjdGlvblNwCiAjZW5kaWYKIH0KIAotYm9vbCBOZXR3b3JrU3RvcmFnZVNlc3Npb246
OmNvb2tpZXNFbmFibGVkKCkgY29uc3QKK0hUVFBDb29raWVBY2NlcHRQb2xpY3kgTmV0d29ya1N0
b3JhZ2VTZXNzaW9uOjpjb29raWVBY2NlcHRQb2xpY3koKSBjb25zdAogewogICAgIGF1dG8gcG9s
aWN5ID0gc291cF9jb29raWVfamFyX2dldF9hY2NlcHRfcG9saWN5KGNvb2tpZVN0b3JhZ2UoKSk7
Ci0gICAgcmV0dXJuIHBvbGljeSA9PSBTT1VQX0NPT0tJRV9KQVJfQUNDRVBUX0FMV0FZUyB8fCBw
b2xpY3kgPT0gU09VUF9DT09LSUVfSkFSX0FDQ0VQVF9OT19USElSRF9QQVJUWTsKKyAgICBpZiAo
cG9saWN5ID09IFNPVVBfQ09PS0lFX0pBUl9BQ0NFUFRfQUxXQVlTKQorICAgICAgICByZXR1cm4g
SFRUUENvb2tpZUFjY2VwdFBvbGljeTo6QWx3YXlzQWNjZXB0OworICAgIGlmIChwb2xpY3kgPT0g
U09VUF9DT09LSUVfSkFSX0FDQ0VQVF9OT19USElSRF9QQVJUWSkKKyAgICAgICAgcmV0dXJuIEhU
VFBDb29raWVBY2NlcHRQb2xpY3k6Ok9ubHlGcm9tTWFpbkRvY3VtZW50RG9tYWluOworICAgIHJl
dHVybiBIVFRQQ29va2llQWNjZXB0UG9saWN5OjpOZXZlcjsKIH0KIAogc3RhdGljIGlubGluZSBi
b29sIGh0dHBPbmx5Q29va2llRXhpc3RzKGNvbnN0IEdTTGlzdCogY29va2llcywgY29uc3QgZ2No
YXIqIG5hbWUsIGNvbnN0IGdjaGFyKiBwYXRoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIuY3BwCmluZGV4IDVkNmYw
NTIyMTQ4ZWFmNmNhMGE5MmU5NjJlNGU4MjhlN2RhN2Y3MmIuLjZlMjhhZGZmZWZjZWM3ZjBlM2U1
ZGE2MTlmMTMyOTdmYmU4ZDM2MzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvQ29va2llcy9XZWJDb29raWVNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlci5jcHAKQEAgLTE0NCwxMyArMTQ0
LDE4IEBAIHZvaWQgV2ViQ29va2llTWFuYWdlcjo6c3RvcE9ic2VydmluZ0Nvb2tpZUNoYW5nZXMo
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogdm9pZCBXZWJDb29raWVNYW5hZ2VyOjpzZXRIVFRQ
Q29va2llQWNjZXB0UG9saWN5KEhUVFBDb29raWVBY2NlcHRQb2xpY3kgcG9saWN5LCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgcGxhdGZvcm1T
ZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KHBvbGljeSk7CisgICAgbV9wcm9jZXNzLmNvb2tpZUFj
Y2VwdFBvbGljeUNoYW5nZWQocG9saWN5KTsKIAogICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CiB9
CiAKIHZvaWQgV2ViQ29va2llTWFuYWdlcjo6Z2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKEhUVFBDb29raWVBY2NlcHRQb2xpY3kpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKQogewotICAgIGNvbXBsZXRpb25IYW5kbGVyKHBsYXRmb3JtR2V0SFRUUENvb2tpZUFj
Y2VwdFBvbGljeSgpKTsKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBjb21wbGV0aW9uSGFuZGxl
cihXZWJDb29raWVNYW5hZ2VyOjpwbGF0Zm9ybUdldEhUVFBDb29raWVBY2NlcHRQb2xpY3koKSk7
CisjZWxzZQorICAgIGNvbXBsZXRpb25IYW5kbGVyKG1fcHJvY2Vzcy5kZWZhdWx0U3RvcmFnZVNl
c3Npb24oKS5jb29raWVBY2NlcHRQb2xpY3koKSk7CisjZW5kaWYKIH0KIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Nvb2tp
ZXMvV2ViQ29va2llTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Db29r
aWVzL1dlYkNvb2tpZU1hbmFnZXIuaAppbmRleCA0MDZiYjkwYTc2NWY1YzlmNmZlM2Y5Y2NjOTgx
ZjQyZGQxNGY4OWJhLi4yYzFkMjdjMzI0M2JiNmNlMjE2NzM5YzIyNGVjNTlmZTViYmRhNDlkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2ll
TWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ29va2llcy9XZWJD
b29raWVNYW5hZ2VyLmgKQEAgLTM5LDEyICszOSwxMiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiBzdHJ1Y3QgQ29va2llOworZW51bSBjbGFzcyBIVFRQQ29va2llQWNjZXB0UG9saWN5IDogdWlu
dDhfdDsKIH0KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIE5ldHdvcmtQcm9jZXNzOwot
ZW51bSBjbGFzcyBIVFRQQ29va2llQWNjZXB0UG9saWN5IDogdWludDhfdDsKIAogY2xhc3MgV2Vi
Q29va2llTWFuYWdlciA6IHB1YmxpYyBOZXR3b3JrUHJvY2Vzc1N1cHBsZW1lbnQsIHB1YmxpYyBJ
UEM6Ok1lc3NhZ2VSZWNlaXZlciB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CkBAIC01
NSw3ICs1NSw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBjb25zdCBjaGFyKiBzdXBwbGVtZW50
TmFtZSgpOwogCi0gICAgdm9pZCBzZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KEhUVFBDb29raWVB
Y2NlcHRQb2xpY3ksIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CisgICAgdm9pZCBzZXRI
VFRQQ29va2llQWNjZXB0UG9saWN5KFdlYkNvcmU6OkhUVFBDb29raWVBY2NlcHRQb2xpY3ksIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAKICNpZiBVU0UoU09VUCkKICAgICB2b2lkIHNl
dENvb2tpZVBlcnNpc3RlbnRTdG9yYWdlKFBBTDo6U2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIHN0
b3JhZ2VQYXRoLCBTb3VwQ29va2llUGVyc2lzdGVudFN0b3JhZ2VUeXBlKTsKQEAgLTc5LDkgKzc5
LDExIEBAIHByaXZhdGU6CiAgICAgdm9pZCBnZXRBbGxDb29raWVzKFBBTDo6U2Vzc2lvbklELCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKFZlY3RvcjxXZWJDb3JlOjpDb29raWU+JiYpPiYmKTsKICAg
ICB2b2lkIGdldENvb2tpZXMoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFVSTCYsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4mJik+JiYpOwogCi0gICAgdm9pZCBw
bGF0Zm9ybVNldEhUVFBDb29raWVBY2NlcHRQb2xpY3koSFRUUENvb2tpZUFjY2VwdFBvbGljeSk7
Ci0gICAgdm9pZCBnZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoSFRUUENvb2tpZUFjY2VwdFBvbGljeSk+JiYpOwotICAgIEhUVFBDb29raWVBY2NlcHRQb2xp
Y3kgcGxhdGZvcm1HZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KCk7CisgICAgdm9pZCBwbGF0Zm9y
bVNldEhUVFBDb29raWVBY2NlcHRQb2xpY3koV2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBvbGlj
eSk7CisgICAgdm9pZCBnZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoV2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBvbGljeSk+JiYpOworI2lmIFBMQVRGT1JN
KENPQ09BKQorICAgIFdlYkNvcmU6OkhUVFBDb29raWVBY2NlcHRQb2xpY3kgcGxhdGZvcm1HZXRI
VFRQQ29va2llQWNjZXB0UG9saWN5KCk7CisjZW5kaWYKIAogICAgIHZvaWQgc3RhcnRPYnNlcnZp
bmdDb29raWVDaGFuZ2VzKFBBTDo6U2Vzc2lvbklEKTsKICAgICB2b2lkIHN0b3BPYnNlcnZpbmdD
b29raWVDaGFuZ2VzKFBBTDo6U2Vzc2lvbklEKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvQ29va2llcy9XZWJDb29raWVNYW5hZ2VyLm1lc3NhZ2VzLmluIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIubWVzc2Fn
ZXMuaW4KaW5kZXggYWY0YzA5YjczMWZiMDQ5OGRhM2M1Mzc4MmI1ODNlYmI4YjMzMDRkMS4uYWNk
NzU0NDBkODNmMzQ2NjUwYzlmMzNiNzViNWQ1ZDA5MzUyMTNiYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIubWVzc2FnZXMu
aW4KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1h
bmFnZXIubWVzc2FnZXMuaW4KQEAgLTM1LDggKzM1LDggQEAgbWVzc2FnZXMgLT4gV2ViQ29va2ll
TWFuYWdlciBOb3RSZWZDb3VudGVkIHsKICAgICB2b2lkIERlbGV0ZUNvb2tpZShQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQsIHN0cnVjdCBXZWJDb3JlOjpDb29raWUgY29va2llKSAtPiAoKSBBc3lu
YwogICAgIHZvaWQgRGVsZXRlQWxsQ29va2llc01vZGlmaWVkU2luY2UoUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvbklELCBXYWxsVGltZSB0aW1lKSAtPiAoKSBBc3luYwogCi0gICAgdm9pZCBTZXRIVFRQ
Q29va2llQWNjZXB0UG9saWN5KGVudW06dWludDhfdCBXZWJLaXQ6OkhUVFBDb29raWVBY2NlcHRQ
b2xpY3kgcG9saWN5KSAtPiAoKSBBc3luYwotICAgIHZvaWQgR2V0SFRUUENvb2tpZUFjY2VwdFBv
bGljeSgpIC0+IChlbnVtOnVpbnQ4X3QgV2ViS2l0OjpIVFRQQ29va2llQWNjZXB0UG9saWN5IHBv
bGljeSkgQXN5bmMKKyAgICB2b2lkIFNldEhUVFBDb29raWVBY2NlcHRQb2xpY3koZW51bTp1aW50
OF90IFdlYkNvcmU6OkhUVFBDb29raWVBY2NlcHRQb2xpY3kgcG9saWN5KSAtPiAoKSBBc3luYwor
ICAgIHZvaWQgR2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeSgpIC0+IChlbnVtOnVpbnQ4X3QgV2Vi
Q29yZTo6SFRUUENvb2tpZUFjY2VwdFBvbGljeSBwb2xpY3kpIEFzeW5jCiAgICAgCiAgICAgdm9p
ZCBTdGFydE9ic2VydmluZ0Nvb2tpZUNoYW5nZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQog
ICAgIHZvaWQgU3RvcE9ic2VydmluZ0Nvb2tpZUNoYW5nZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Db29raWVzL2N1
cmwvV2ViQ29va2llTWFuYWdlckN1cmwuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9Db29raWVzL2N1cmwvV2ViQ29va2llTWFuYWdlckN1cmwuY3BwCmluZGV4IGMxYTM2Y2RlOWI1
ZWVlNmY3NTE5ZmUwMTMwZWIwMzdmYWUyNTcyMWIuLjdhNWNiMzk2ZTI5Yzg4ZDg0ODBmYTFjYjYz
NzBjYmM0NWJmZmU3ZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
Q29va2llcy9jdXJsL1dlYkNvb2tpZU1hbmFnZXJDdXJsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL0Nvb2tpZXMvY3VybC9XZWJDb29raWVNYW5hZ2VyQ3VybC5jcHAKQEAg
LTI2LDggKzI2LDggQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJXZWJDb29raWVN
YW5hZ2VyLmgiCiAKLSNpbmNsdWRlICJIVFRQQ29va2llQWNjZXB0UG9saWN5LmgiCiAjaW5jbHVk
ZSAiTmV0d29ya1Byb2Nlc3MuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0hUVFBDb29raWVBY2NlcHRQ
b2xpY3kuaD4KICNpbmNsdWRlIDxXZWJDb3JlL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oPgogCiBu
YW1lc3BhY2UgV2ViS2l0IHsKQEAgLTU3LDIyICs1Nyw0IEBAIHZvaWQgV2ViQ29va2llTWFuYWdl
cjo6cGxhdGZvcm1TZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KEhUVFBDb29raWVBY2NlcHRQb2xp
Y3kKICAgICB9KTsKIH0KIAotSFRUUENvb2tpZUFjY2VwdFBvbGljeSBXZWJDb29raWVNYW5hZ2Vy
OjpwbGF0Zm9ybUdldEhUVFBDb29raWVBY2NlcHRQb2xpY3koKQotewotICAgIGNvbnN0IGF1dG8m
IG5ldHdvcmtTdG9yYWdlU2Vzc2lvbiA9IG1fcHJvY2Vzcy5kZWZhdWx0U3RvcmFnZVNlc3Npb24o
KTsKLSAgICBzd2l0Y2ggKG5ldHdvcmtTdG9yYWdlU2Vzc2lvbi5jb29raWVTdG9yYWdlKCkuY29v
a2llQWNjZXB0UG9saWN5KG5ldHdvcmtTdG9yYWdlU2Vzc2lvbikpIHsKLSAgICBjYXNlIENvb2tp
ZUFjY2VwdFBvbGljeTo6QWx3YXlzOgotICAgICAgICByZXR1cm4gSFRUUENvb2tpZUFjY2VwdFBv
bGljeTo6QWx3YXlzQWNjZXB0OwotICAgIGNhc2UgQ29va2llQWNjZXB0UG9saWN5OjpOZXZlcjoK
LSAgICAgICAgcmV0dXJuIEhUVFBDb29raWVBY2NlcHRQb2xpY3k6Ok5ldmVyOwotICAgIGNhc2Ug
Q29va2llQWNjZXB0UG9saWN5OjpPbmx5RnJvbU1haW5Eb2N1bWVudERvbWFpbjoKLSAgICAgICAg
cmV0dXJuIEhUVFBDb29raWVBY2NlcHRQb2xpY3k6Ok9ubHlGcm9tTWFpbkRvY3VtZW50RG9tYWlu
OwotICAgIGNhc2UgQ29va2llQWNjZXB0UG9saWN5OjpFeGNsdXNpdmVseUZyb21NYWluRG9jdW1l
bnREb21haW46Ci0gICAgICAgIHJldHVybiBIVFRQQ29va2llQWNjZXB0UG9saWN5OjpFeGNsdXNp
dmVseUZyb21NYWluRG9jdW1lbnREb21haW47Ci0gICAgfQotCi0gICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7Ci0gICAgcmV0dXJuIEhUVFBDb29raWVBY2NlcHRQb2xpY3k6Ok9ubHlGcm9tTWFpbkRv
Y3VtZW50RG9tYWluOwotfQotCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ29va2llcy9tYWMvV2ViQ29va2llTWFuYWdlck1h
Yy5tbSBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ29va2llcy9tYWMvV2ViQ29va2ll
TWFuYWdlck1hYy5tbQppbmRleCBiYzllOTI0M2Q0MjczOGQwZmUyYzYyOGNkN2Q0MTllYTFhNDA2
ZWY3Li41YzhiMzRjODI1NWRiZGY3OTA5MGM5MThmMTExN2E0ZWMxNTgxNzM2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Nvb2tpZXMvbWFjL1dlYkNvb2tpZU1hbmFn
ZXJNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Db29raWVzL21hYy9X
ZWJDb29raWVNYW5hZ2VyTWFjLm1tCkBAIC0yNiw5ICsyNiw5IEBACiAjaW1wb3J0ICJjb25maWcu
aCIKICNpbXBvcnQgIldlYkNvb2tpZU1hbmFnZXIuaCIKIAotI2ltcG9ydCAiSFRUUENvb2tpZUFj
Y2VwdFBvbGljeS5oIgogI2ltcG9ydCAiTmV0d29ya1Byb2Nlc3MuaCIKICNpbXBvcnQgIk5ldHdv
cmtTZXNzaW9uLmgiCisjaW1wb3J0IDxXZWJDb3JlL0hUVFBDb29raWVBY2NlcHRQb2xpY3kuaD4K
ICNpbXBvcnQgPFdlYkNvcmUvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmg+CiAjaW1wb3J0IDxwYWwv
c3BpL2NmL0NGTmV0d29ya1NQSS5oPgogI2ltcG9ydCA8d3RmL1Byb2Nlc3NQcml2aWxlZ2UuaD4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ29va2llcy9zb3VwL1dl
YkNvb2tpZU1hbmFnZXJTb3VwLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ29v
a2llcy9zb3VwL1dlYkNvb2tpZU1hbmFnZXJTb3VwLmNwcAppbmRleCBlYTkxNTIyYzA5YTQ4MGNk
NjJmNGM4OWFjODQyYzdlZDEzMjIxYjgxLi5jYmZjYWVlNTYzYTEyNjY4ZDQzMjE5NjJjMDY4ZjI5
MjE4YmUzMjU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Nvb2tp
ZXMvc291cC9XZWJDb29raWVNYW5hZ2VyU291cC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9Db29raWVzL3NvdXAvV2ViQ29va2llTWFuYWdlclNvdXAuY3BwCkBAIC0yNiwx
MCArMjYsMTAgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJXZWJDb29raWVNYW5h
Z2VyLmgiCiAKLSNpbmNsdWRlICJIVFRQQ29va2llQWNjZXB0UG9saWN5LmgiCiAjaW5jbHVkZSAi
TmV0d29ya1Byb2Nlc3MuaCIKICNpbmNsdWRlICJOZXR3b3JrU2Vzc2lvblNvdXAuaCIKICNpbmNs
dWRlICJTb3VwQ29va2llUGVyc2lzdGVudFN0b3JhZ2VUeXBlLmgiCisjaW5jbHVkZSA8V2ViQ29y
ZS9IVFRQQ29va2llQWNjZXB0UG9saWN5Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9OZXR3b3JrU3Rv
cmFnZVNlc3Npb24uaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NvdXBOZXR3b3JrU2Vzc2lvbi5oPgog
I2luY2x1ZGUgPGxpYnNvdXAvc291cC5oPgpAQCAtNjAsMjEgKzYwLDYgQEAgdm9pZCBXZWJDb29r
aWVNYW5hZ2VyOjpwbGF0Zm9ybVNldEhUVFBDb29raWVBY2NlcHRQb2xpY3koSFRUUENvb2tpZUFj
Y2VwdFBvbGljeQogICAgIH0pOwogfQogCi1IVFRQQ29va2llQWNjZXB0UG9saWN5IFdlYkNvb2tp
ZU1hbmFnZXI6OnBsYXRmb3JtR2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeSgpCi17Ci0gICAgc3dp
dGNoIChzb3VwX2Nvb2tpZV9qYXJfZ2V0X2FjY2VwdF9wb2xpY3kobV9wcm9jZXNzLmRlZmF1bHRT
dG9yYWdlU2Vzc2lvbigpLmNvb2tpZVN0b3JhZ2UoKSkpIHsKLSAgICBjYXNlIFNPVVBfQ09PS0lF
X0pBUl9BQ0NFUFRfQUxXQVlTOgotICAgICAgICByZXR1cm4gSFRUUENvb2tpZUFjY2VwdFBvbGlj
eTo6QWx3YXlzQWNjZXB0OwotICAgIGNhc2UgU09VUF9DT09LSUVfSkFSX0FDQ0VQVF9ORVZFUjoK
LSAgICAgICAgcmV0dXJuIEhUVFBDb29raWVBY2NlcHRQb2xpY3k6Ok5ldmVyOwotICAgIGNhc2Ug
U09VUF9DT09LSUVfSkFSX0FDQ0VQVF9OT19USElSRF9QQVJUWToKLSAgICAgICAgcmV0dXJuIEhU
VFBDb29raWVBY2NlcHRQb2xpY3k6Ok9ubHlGcm9tTWFpbkRvY3VtZW50RG9tYWluOwotICAgIH0K
LQotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiBIVFRQQ29va2llQWNjZXB0
UG9saWN5OjpPbmx5RnJvbU1haW5Eb2N1bWVudERvbWFpbjsKLX0KLQogdm9pZCBXZWJDb29raWVN
YW5hZ2VyOjpzZXRDb29raWVQZXJzaXN0ZW50U3RvcmFnZShQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQsIGNvbnN0IFN0cmluZyYgc3RvcmFnZVBhdGgsIFNvdXBDb29raWVQZXJzaXN0ZW50U3RvcmFn
ZVR5cGUgc3RvcmFnZVR5cGUpCiB7CiAgICAgaWYgKGF1dG8qIG5ldHdvcmtTZXNzaW9uID0gbV9w
cm9jZXNzLm5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mu
Y3BwCmluZGV4IGIyZDRjNmMxZjYxOTYwNzE0MmVhYzc3MjRiY2JiYTA4MThmM2IwNTIuLmQxOGJl
MzBlNjc4NWRmYzA4MTI3ODZiNWU0OGI1Mzc4ZmQwZjgzZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MuY3BwCkBAIC00NjMsNiArNDYzLDExIEBAIHZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3M6OnNldE9uTGluZVN0YXRlKGJvb2wgaXNPbkxpbmUpCiAgICAgbV9jb25uZWN0aW9u
LT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OlNldE9uTGluZVN0YXRl
KGlzT25MaW5lKSwgMCk7CiB9CiAKK3ZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6
OmNvb2tpZUFjY2VwdFBvbGljeUNoYW5nZWQoSFRUUENvb2tpZUFjY2VwdFBvbGljeSBuZXdQb2xp
Y3kpCit7CisgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzc0Nv
bm5lY3Rpb246OkNvb2tpZUFjY2VwdFBvbGljeUNoYW5nZWQobmV3UG9saWN5KSwgMCk7Cit9CisK
IHZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnJlbW92ZUxvYWRJZGVudGlmaWVy
KFJlc291cmNlTG9hZElkZW50aWZpZXIgaWRlbnRpZmllcikKIHsKICAgICBSRUxFQVNFX0FTU0VS
VChpZGVudGlmaWVyKTsKQEAgLTU5MywxNCArNTk4LDYgQEAgdm9pZCBOZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzczo6c2V0Q29va2llc0Zyb21ET00oY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBj
b24KICNlbmRpZgogfQogCi12b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpjb29r
aWVzRW5hYmxlZChDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5k
bGVyKQotewotICAgIGF1dG8qIG5ldHdvcmtTdG9yYWdlU2Vzc2lvbiA9IHN0b3JhZ2VTZXNzaW9u
KCk7Ci0gICAgaWYgKCFuZXR3b3JrU3RvcmFnZVNlc3Npb24pCi0gICAgICAgIHJldHVybiBjb21w
bGV0aW9uSGFuZGxlcihmYWxzZSk7Ci0gICAgY29tcGxldGlvbkhhbmRsZXIobmV0d29ya1N0b3Jh
Z2VTZXNzaW9uLT5jb29raWVzRW5hYmxlZCgpKTsKLX0KLQogdm9pZCBOZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzczo6Y29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoY29uc3QgVVJMJiBm
aXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5mbywgY29uc3QgVVJMJiB1
cmwsIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50
aWZpZXI+IHBhZ2VJRCwgSW5jbHVkZVNlY3VyZUNvb2tpZXMgaW5jbHVkZVNlY3VyZUNvb2tpZXMs
IFNob3VsZEFza0lUUCBzaG91bGRBc2tJVFAsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5n
LCBib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBhdXRvKiBuZXR3b3JrU3RvcmFn
ZVNlc3Npb24gPSBzdG9yYWdlU2Vzc2lvbigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCmluZGV4
IDgzOTc0MzFjMDMzMTNjYzJjMDUwZDUxMmM5NTJhZTdlM2ZlZTlhNjUuLmU4MzVlNjQxYjYwOTI2
ZGJkMzRmNDQxZjRlMzhkMDVjN2M3NWYyYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKQEAg
LTYxLDYgKzYxLDcgQEAgZW51bSBjbGFzcyBTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCA6IGJvb2w7
CiBlbnVtIGNsYXNzIFNob3VsZEFza0lUUCA6IGJvb2w7CiBzdHJ1Y3QgU2FtZVNpdGVJbmZvOwog
CitlbnVtIGNsYXNzIEhUVFBDb29raWVBY2NlcHRQb2xpY3kgOiB1aW50OF90OwogZW51bSBjbGFz
cyBJbmNsdWRlU2VjdXJlQ29va2llcyA6IGJvb2w7CiB9CiAKQEAgLTE2Nyw2ICsxNjgsOCBAQCBw
dWJsaWM6CiAKICAgICBOZXR3b3JrU2NoZW1lUmVnaXN0cnkmIHNjaGVtZVJlZ2lzdHJ5KCkgeyBy
ZXR1cm4gbV9zY2hlbWVSZWdpc3RyeS5nZXQoKTsgfQogCisgICAgdm9pZCBjb29raWVBY2NlcHRQ
b2xpY3lDaGFuZ2VkKFdlYkNvcmU6OkhUVFBDb29raWVBY2NlcHRQb2xpY3kpOworCiBwcml2YXRl
OgogICAgIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzKE5ldHdvcmtQcm9jZXNzJiwgV2Vi
Q29yZTo6UHJvY2Vzc0lkZW50aWZpZXIsIFBBTDo6U2Vzc2lvbklELCBJUEM6OkNvbm5lY3Rpb246
OklkZW50aWZpZXIpOwogCkBAIC0yMDAsNyArMjAzLDYgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQg
Y29va2llc0ZvckRPTShjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlNhbWVT
aXRlSW5mbyYsIGNvbnN0IFVSTCYsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgV2ViQ29yZTo6
UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OkluY2x1ZGVTZWN1cmVDb29raWVzLCBXZWJDb3JlOjpT
aG91bGRBc2tJVFAsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nIGNvb2tpZVN0cmluZywg
Ym9vbCBzZWN1cmVDb29raWVzQWNjZXNzZWQpPiYmKTsKICAgICB2b2lkIHNldENvb2tpZXNGcm9t
RE9NKGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6U2FtZVNpdGVJbmZvJiwg
Y29uc3QgVVJMJiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJDb3JlOjpQYWdlSWRlbnRp
ZmllciwgV2ViQ29yZTo6U2hvdWxkQXNrSVRQLCBjb25zdCBTdHJpbmcmKTsKLSAgICB2b2lkIGNv
b2tpZXNFbmFibGVkKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwogICAgIHZvaWQg
Y29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25z
dCBXZWJDb3JlOjpTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmLCBPcHRpb25hbDxXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXI+LCBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4sIFdlYkNv
cmU6OkluY2x1ZGVTZWN1cmVDb29raWVzLCBXZWJDb3JlOjpTaG91bGRBc2tJVFAsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoU3RyaW5nIGNvb2tpZVN0cmluZywgYm9vbCBzZWN1cmVDb29raWVzQWNj
ZXNzZWQpPiYmKTsKICAgICB2b2lkIGdldFJhd0Nvb2tpZXMoY29uc3QgVVJMJiBmaXJzdFBhcnR5
LCBjb25zdCBXZWJDb3JlOjpTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmLCBPcHRpb25hbDxXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXI+LCBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4s
IFdlYkNvcmU6OlNob3VsZEFza0lUUCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8V2Vi
Q29yZTo6Q29va2llPiYmKT4mJik7CiAgICAgdm9pZCBkZWxldGVDb29raWUoY29uc3QgVVJMJiwg
Y29uc3QgU3RyaW5nJiBjb29raWVOYW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4gYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
Lm1lc3NhZ2VzLmluCmluZGV4IDg0Y2ZiZGYzZmI5MzRkNzkxNDM3MTYyMTFhMjUwNmZjZjYxMzRk
NWEuLjAyMGI0N2E3N2I3M2MxOGE2YTYyZDQ2NTAxNWE3Y2E0YmMzYWIwNTAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgpAQCAtMzYsNyArMzYsNiBAQCBtZXNz
YWdlcyAtPiBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyBMZWdhY3lSZWNlaXZlciB7CiAK
ICAgICBDb29raWVzRm9yRE9NKFVSTCBmaXJzdFBhcnR5LCBzdHJ1Y3QgV2ViQ29yZTo6U2FtZVNp
dGVJbmZvIHNhbWVTaXRlSW5mbywgVVJMIHVybCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZy
YW1lSUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgZW51bTpib29sIFdlYkNvcmU6
OkluY2x1ZGVTZWN1cmVDb29raWVzIGluY2x1ZGVTZWN1cmVDb29raWVzLCBlbnVtOmJvb2wgV2Vi
Q29yZTo6U2hvdWxkQXNrSVRQIHNob3VsZEFza0lUUCkgLT4gKFN0cmluZyBjb29raWVTdHJpbmcs
IGJvb2wgZGlkQWNjZXNzU2VjdXJlQ29va2llcykgU3luY2hyb25vdXMKICAgICBTZXRDb29raWVz
RnJvbURPTShVUkwgZmlyc3RQYXJ0eSwgc3RydWN0IFdlYkNvcmU6OlNhbWVTaXRlSW5mbyBzYW1l
U2l0ZUluZm8sIFVSTCB1cmwsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBXZWJD
b3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIGVudW06Ym9vbCBXZWJDb3JlOjpTaG91bGRBc2tJ
VFAgc2hvdWxkQXNrSVRQLCBTdHJpbmcgY29va2llU3RyaW5nKQotICAgIENvb2tpZXNFbmFibGVk
KCkgLT4gKGJvb2wgZW5hYmxlZCkgU3luY2hyb25vdXMKICAgICBDb29raWVSZXF1ZXN0SGVhZGVy
RmllbGRWYWx1ZShVUkwgZmlyc3RQYXJ0eSwgc3RydWN0IFdlYkNvcmU6OlNhbWVTaXRlSW5mbyBz
YW1lU2l0ZUluZm8sIFVSTCB1cmwsIE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4g
ZnJhbWVJRCwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgZW51bTpi
b29sIFdlYkNvcmU6OkluY2x1ZGVTZWN1cmVDb29raWVzIGluY2x1ZGVTZWN1cmVDb29raWVzLCBl
bnVtOmJvb2wgV2ViQ29yZTo6U2hvdWxkQXNrSVRQIHNob3VsZEFza0lUUCkgLT4gKFN0cmluZyBj
b29raWVTdHJpbmcsIGJvb2wgZGlkQWNjZXNzU2VjdXJlQ29va2llcykgU3luY2hyb25vdXMKICAg
ICBHZXRSYXdDb29raWVzKFVSTCBmaXJzdFBhcnR5LCBzdHJ1Y3QgV2ViQ29yZTo6U2FtZVNpdGVJ
bmZvIHNhbWVTaXRlSW5mbywgVVJMIHVybCwgT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyPiBmcmFtZUlELCBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBl
bnVtOmJvb2wgV2ViQ29yZTo6U2hvdWxkQXNrSVRQIHNob3VsZEFza0lUUCkgLT4gKFZlY3RvcjxX
ZWJDb3JlOjpDb29raWU+IGNvb2tpZXMpIFN5bmNocm9ub3VzCiAgICAgRGVsZXRlQ29va2llKFVS
TCB1cmwsIFN0cmluZyBjb29raWVOYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtQcm9jZXNzLmNwcAppbmRleCAzOTkyNmViNmFhODhhOWEyNjFiMzQwNzg1Zjc0
MThiODlmZjIxMTY4Li5hZjI0Y2ZmZjg3MTliNzgwYjViODA4MmYyYTNlODExMjEyN2M3MWJhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcApA
QCAtNzAsNiArNzAsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvRE5TLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9EZXByZWNhdGVkR2xvYmFsU2V0dGluZ3MuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0RpYWdu
b3N0aWNMb2dnaW5nQ2xpZW50Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9IVFRQQ29va2llQWNjZXB0
UG9saWN5Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9MZWdhY3lTY2hlbWVSZWdpc3RyeS5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvTG9nSW5pdGlhbGl6YXRpb24uaD4KICNpbmNsdWRlIDxXZWJDb3JlL01J
TUVUeXBlUmVnaXN0cnkuaD4KQEAgLTM2OCwxMSArMzY5LDExIEBAIHZvaWQgTmV0d29ya1Byb2Nl
c3M6OmluaXRpYWxpemVDb25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbikKICAg
ICAgICAgc3VwcGxlbWVudC0+aW5pdGlhbGl6ZUNvbm5lY3Rpb24oY29ubmVjdGlvbik7CiB9CiAK
LXZvaWQgTmV0d29ya1Byb2Nlc3M6OmNyZWF0ZU5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
KFByb2Nlc3NJZGVudGlmaWVyIGlkZW50aWZpZXIsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxJUEM6OkF0dGFjaG1lbnQ+JiYpPiYmIGNv
bXBsZXRpb25IYW5kbGVyKQordm9pZCBOZXR3b3JrUHJvY2Vzczo6Y3JlYXRlTmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MoUHJvY2Vzc0lkZW50aWZpZXIgaWRlbnRpZmllciwgUEFMOjpTZXNz
aW9uSUQgc2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPElQQzo6QXR0
YWNobWVudD4mJiwgSFRUUENvb2tpZUFjY2VwdFBvbGljeSk+JiYgY29tcGxldGlvbkhhbmRsZXIp
CiB7CiAgICAgYXV0byBpcGNDb25uZWN0aW9uID0gY3JlYXRlSVBDQ29ubmVjdGlvblBhaXIoKTsK
ICAgICBpZiAoIWlwY0Nvbm5lY3Rpb24pIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoeyB9
KTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoeyB9LCBIVFRQQ29va2llQWNjZXB0UG9saWN5
OjpOZXZlcik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTM4Miw3ICszODMsMTEgQEAg
dm9pZCBOZXR3b3JrUHJvY2Vzczo6Y3JlYXRlTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mo
UHJvY2Vzc0lkZW50aWZpZXIgaWRlbnQKICAgICBBU1NFUlQoIW1fd2ViUHJvY2Vzc0Nvbm5lY3Rp
b25zLmNvbnRhaW5zKGlkZW50aWZpZXIpKTsKICAgICBtX3dlYlByb2Nlc3NDb25uZWN0aW9ucy5h
ZGQoaWRlbnRpZmllciwgV1RGTW92ZShuZXdDb25uZWN0aW9uKSk7CiAKLSAgICBjb21wbGV0aW9u
SGFuZGxlcihXVEZNb3ZlKGlwY0Nvbm5lY3Rpb24tPnNlY29uZCkpOworICAgIEhUVFBDb29raWVB
Y2NlcHRQb2xpY3kgY29va2llQWNjZXB0UG9saWN5ID0gSFRUUENvb2tpZUFjY2VwdFBvbGljeTo6
TmV2ZXI7CisgICAgaWYgKGF1dG8qIHN0b3JhZ2UgPSBzdG9yYWdlU2Vzc2lvbihzZXNzaW9uSUQp
KQorICAgICAgICBjb29raWVBY2NlcHRQb2xpY3kgPSBzdG9yYWdlLT5jb29raWVBY2NlcHRQb2xp
Y3koKTsKKworICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUoaXBjQ29ubmVjdGlvbi0+c2Vj
b25kKSwgY29va2llQWNjZXB0UG9saWN5KTsKIAogICAgIGNvbm5lY3Rpb24uc2V0T25MaW5lU3Rh
dGUoTmV0d29ya1N0YXRlTm90aWZpZXI6OnNpbmdsZXRvbigpLm9uTGluZSgpKTsKIApAQCAtNTA3
LDYgKzUxMiwxMiBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjplbnN1cmVTZXNzaW9uKGNvbnN0IFBB
TDo6U2Vzc2lvbklEJiBzZXNzaW9uSUQsIGJvb2wgc2hvdWxkVQogI2VuZGlmCiB9CiAKK3ZvaWQg
TmV0d29ya1Byb2Nlc3M6OmNvb2tpZUFjY2VwdFBvbGljeUNoYW5nZWQoSFRUUENvb2tpZUFjY2Vw
dFBvbGljeSBuZXdQb2xpY3kpCit7CisgICAgZm9yIChhdXRvJiBjb25uZWN0aW9uIDogbV93ZWJQ
cm9jZXNzQ29ubmVjdGlvbnMudmFsdWVzKCkpCisgICAgICAgIGNvbm5lY3Rpb24tPmNvb2tpZUFj
Y2VwdFBvbGljeUNoYW5nZWQobmV3UG9saWN5KTsKK30KKwogV2ViQ29yZTo6TmV0d29ya1N0b3Jh
Z2VTZXNzaW9uKiBOZXR3b3JrUHJvY2Vzczo6c3RvcmFnZVNlc3Npb24oY29uc3QgUEFMOjpTZXNz
aW9uSUQmIHNlc3Npb25JRCkgY29uc3QKIHsKICAgICBpZiAoc2Vzc2lvbklEID09IFBBTDo6U2Vz
c2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtQcm9jZXNzLmgKaW5kZXggY2FhZGMyMDFiYjI0ZjUyZDBkN2QzYWVjYjg5Y2Q5
ZTNiMGFiYTYyNy4uZDZkOTU0NTMzOTY4YTFjNDFjMjVmNDUyMGFmMzgzZDMxNjQ3MTk2OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaApAQCAtODEs
NiArODEsNyBAQCBjbGFzcyBTdG9yYWdlUXVvdGFNYW5hZ2VyOwogY2xhc3MgTmV0d29ya1N0b3Jh
Z2VTZXNzaW9uOwogY2xhc3MgUmVzb3VyY2VFcnJvcjsKIGNsYXNzIFNXU2VydmVyOworZW51bSBj
bGFzcyBIVFRQQ29va2llQWNjZXB0UG9saWN5IDogdWludDhfdDsKIGVudW0gY2xhc3MgSW5jbHVk
ZUh0dHBPbmx5Q29va2llcyA6IGJvb2w7CiBlbnVtIGNsYXNzIFN0b3JlZENyZWRlbnRpYWxzUG9s
aWN5IDogdWludDhfdDsKIGVudW0gY2xhc3MgU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duIDog
Ym9vbDsKQEAgLTM0NCw2ICszNDUsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCByZXNldFNlcnZpY2VX
b3JrZXJGZXRjaFRpbWVvdXRGb3JUZXN0aW5nKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7
CiAgICAgU2Vjb25kcyBzZXJ2aWNlV29ya2VyRmV0Y2hUaW1lb3V0KCkgY29uc3QgeyByZXR1cm4g
bV9zZXJ2aWNlV29ya2VyRmV0Y2hUaW1lb3V0OyB9CiAKKyAgICB2b2lkIGNvb2tpZUFjY2VwdFBv
bGljeUNoYW5nZWQoV2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBvbGljeSk7CisKIHByaXZhdGU6
CiAgICAgdm9pZCBwbGF0Zm9ybUluaXRpYWxpemVOZXR3b3JrUHJvY2Vzcyhjb25zdCBOZXR3b3Jr
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYpOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3Jl
OjpOZXR3b3JrU3RvcmFnZVNlc3Npb24+IHBsYXRmb3JtQ3JlYXRlRGVmYXVsdFN0b3JhZ2VTZXNz
aW9uKCkgY29uc3Q7CkBAIC0zODQsNyArMzg3LDcgQEAgcHJpdmF0ZToKICAgICAvLyBNZXNzYWdl
IEhhbmRsZXJzCiAgICAgdm9pZCBkaWRSZWNlaXZlU3luY05ldHdvcmtQcm9jZXNzTWVzc2FnZShJ
UEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNv
ZGVyPiYpOwogICAgIHZvaWQgaW5pdGlhbGl6ZU5ldHdvcmtQcm9jZXNzKE5ldHdvcmtQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzJiYpOwotICAgIHZvaWQgY3JlYXRlTmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3MoV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIsIFBBTDo6U2Vzc2lvbklELCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPElQQzo6QXR0YWNobWVudD4mJik+JiYpOwor
ICAgIHZvaWQgY3JlYXRlTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoV2ViQ29yZTo6UHJv
Y2Vzc0lkZW50aWZpZXIsIFBBTDo6U2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9w
dGlvbmFsPElQQzo6QXR0YWNobWVudD4mJiwgV2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBvbGlj
eSk+JiYpOwogCiAgICAgdm9pZCBmZXRjaFdlYnNpdGVEYXRhKFBBTDo6U2Vzc2lvbklELCBPcHRp
b25TZXQ8V2Vic2l0ZURhdGFUeXBlPiwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhRmV0Y2hPcHRpb24+
LCB1aW50NjRfdCBjYWxsYmFja0lEKTsKICAgICB2b2lkIGRlbGV0ZVdlYnNpdGVEYXRhKFBBTDo6
U2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiwgV2FsbFRpbWUgbW9kaWZpZWRT
aW5jZSwgdWludDY0X3QgY2FsbGJhY2tJRCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgppbmRleCBhNTY2MTNjZGEz
NGM3ZTNhY2U1NTRmZDc4YjM1OTRiYWJhYmQ2NjA2Li4zOWQxMWYzYTI2NTMzMzY2YjY5YjJmNzA1
YTlkZGIxY2MzMWMxOGE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4KQEAgLTI1LDcgKzI1LDcgQEAgbWVzc2Fn
ZXMgLT4gTmV0d29ya1Byb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewogICAgIEluaXRpYWxpemVOZXR3
b3JrUHJvY2VzcyhzdHJ1Y3QgV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
cyBwcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzKQogCiAgICAgIyBDcmVhdGVzIGEgY29ubmVjdGlv
biBmb3IgY29tbXVuaWNhdGlvbiB3aXRoIGEgV2ViUHJvY2VzcwotICAgIENyZWF0ZU5ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzKFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyIHByb2Nlc3NJ
ZGVudGlmaWVyLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+IChPcHRpb25hbDxJUEM6OkF0
dGFjaG1lbnQ+IGNvbm5lY3Rpb25JZGVudGlmaWVyKSBBc3luYworICAgIENyZWF0ZU5ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzKFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyIHByb2Nlc3NJ
ZGVudGlmaWVyLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+IChPcHRpb25hbDxJUEM6OkF0
dGFjaG1lbnQ+IGNvbm5lY3Rpb25JZGVudGlmaWVyLCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6SFRU
UENvb2tpZUFjY2VwdFBvbGljeSBjb29raWVBY2NlcHRQb2xpY3kpIEFzeW5jCiAKICNpZiBVU0Uo
U09VUCkKICAgICBTZXRJZ25vcmVUTFNFcnJvcnMoYm9vbCBpZ25vcmVUTFNFcnJvcnMpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKaW5kZXggNTA5ZTM2N2ExYjBiNmFkMzkwMWNkNWRlMTIy
YmZlY2EzMGYzYzc1Mi4uY2I2YzMxMDlmOGVhNDEzMzMzOTYxYzg3YzJlZjZkNjk4MTc3OGVmMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaApAQCAtMzQsNyArMzQsNyBAQAogI2luY2x1
ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiAjaWYgVVNFKFNPVVApCi0jaW5jbHVkZSAiSFRU
UENvb2tpZUFjY2VwdFBvbGljeS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvSFRUUENvb2tpZUFjY2Vw
dFBvbGljeS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU291cE5ldHdvcmtQcm94eVNldHRpbmdzLmg+
CiAjZW5kaWYKIApAQCAtNzYsNyArNzYsNyBAQCBzdHJ1Y3QgTmV0d29ya1Byb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnMgewogICAgIFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzIGRlZmF1bHREYXRh
U3RvcmVQYXJhbWV0ZXJzOwogICAgIAogI2lmIFVTRShTT1VQKQotICAgIEhUVFBDb29raWVBY2Nl
cHRQb2xpY3kgY29va2llQWNjZXB0UG9saWN5IHsgSFRUUENvb2tpZUFjY2VwdFBvbGljeTo6QWx3
YXlzQWNjZXB0IH07CisgICAgV2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBvbGljeSBjb29raWVB
Y2NlcHRQb2xpY3kgeyBXZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0UG9saWN5OjpBbHdheXNBY2Nl
cHQgfTsKICAgICBib29sIGlnbm9yZVRMU0Vycm9ycyB7IGZhbHNlIH07CiAgICAgVmVjdG9yPFN0
cmluZz4gbGFuZ3VhZ2VzOwogICAgIFdlYkNvcmU6OlNvdXBOZXR3b3JrUHJveHlTZXR0aW5ncyBw
cm94eVNldHRpbmdzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvSFRUUENvb2tp
ZUFjY2VwdFBvbGljeS5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvSFRUUENvb2tpZUFjY2VwdFBv
bGljeS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0NTdjMjM0NGM5Yzg5ODZmZjZl
MjMyMzMwNWEyODQzM2Q4NmVhMGViLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0hUVFBDb29raWVBY2NlcHRQb2xpY3ku
aAorKysgL2Rldi9udWxsCkBAIC0xLDUxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQot
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotbmFtZXNwYWNlIFdlYktpdCB7
Ci0KLWVudW0gY2xhc3MgSFRUUENvb2tpZUFjY2VwdFBvbGljeSA6IHVpbnQ4X3QgewotICAgIEFs
d2F5c0FjY2VwdCA9IDAsCi0gICAgTmV2ZXIgPSAxLAotICAgIE9ubHlGcm9tTWFpbkRvY3VtZW50
RG9tYWluID0gMiwKLSAgICBFeGNsdXNpdmVseUZyb21NYWluRG9jdW1lbnREb21haW4gPSAzLAot
fTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLW5hbWVzcGFjZSBXVEYgewotCi10ZW1wbGF0
ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYktpdDo6SFRUUENvb2tpZUFjY2VwdFBvbGljeT4gewot
ICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8Ci0gICAgICAgIFdlYktpdDo6SFRUUENvb2tp
ZUFjY2VwdFBvbGljeSwKLSAgICAgICAgV2ViS2l0OjpIVFRQQ29va2llQWNjZXB0UG9saWN5OjpB
bHdheXNBY2NlcHQsCi0gICAgICAgIFdlYktpdDo6SFRUUENvb2tpZUFjY2VwdFBvbGljeTo6TmV2
ZXIsCi0gICAgICAgIFdlYktpdDo6SFRUUENvb2tpZUFjY2VwdFBvbGljeTo6T25seUZyb21NYWlu
RG9jdW1lbnREb21haW4sCi0gICAgICAgIFdlYktpdDo6SFRUUENvb2tpZUFjY2VwdFBvbGljeTo6
RXhjbHVzaXZlbHlGcm9tTWFpbkRvY3VtZW50RG9tYWluCi0gICAgPjsKLX07Ci0KLX0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMu
aCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaApp
bmRleCA0OTZjZmM5ZjdlODRhYWM2MjZiZTE3ZTdlNWIwMTZiOGQ1Y2M1MDBmLi5iNDMwMmQ2OGNl
N2MxNjk2MmVlYjg3Mjc3YzVmODNmYjg3ZjQ4OGM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKKysrIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCkBAIC00Nyw3ICs0Nyw3IEBA
CiAjZW5kaWYKIAogI2lmIFVTRShTT1VQKQotI2luY2x1ZGUgIkhUVFBDb29raWVBY2NlcHRQb2xp
Y3kuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0hUVFBDb29raWVBY2NlcHRQb2xpY3kuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL1NvdXBOZXR3b3JrUHJveHlTZXR0aW5ncy5oPgogI2VuZGlmCiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElIVFRQQ29va2llU3RvcmUuY3Bw
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUhUVFBDb29raWVTdG9yZS5jcHAKaW5k
ZXggYzJmN2VhMjAxMTA1MDEyZTJlNzM0OThhYzE3N2ZkZmQzMDgzYzkxNy4uMmVlMzBiZGZiZjc4
NTk3NzE0MmJhNzdjZTBhM2I4MGU5YzZjZjM1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0FQSUhUVFBDb29raWVTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0FQSUhUVFBDb29raWVTdG9yZS5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNp
bmNsdWRlICJXZWJzaXRlRGF0YVN0b3JlLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9Db29raWUuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL0Nvb2tpZVN0b3JhZ2UuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0hU
VFBDb29raWVBY2NlcHRQb2xpY3kuaD4KICNpbmNsdWRlIDxXZWJDb3JlL05ldHdvcmtTdG9yYWdl
U2Vzc2lvbi5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwpAQCAtMTMzLDcgKzEzNCw3IEBA
IHZvaWQgSFRUUENvb2tpZVN0b3JlOjpkZWxldGVBbGxDb29raWVzKENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuCiAgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFdU
Rk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAotdm9pZCBIVFRQQ29va2llU3RvcmU6OnNl
dEhUVFBDb29raWVBY2NlcHRQb2xpY3koV2ViS2l0OjpIVFRQQ29va2llQWNjZXB0UG9saWN5IHBv
bGljeSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9p
ZCBIVFRQQ29va2llU3RvcmU6OnNldEhUVFBDb29raWVBY2NlcHRQb2xpY3koV2ViQ29yZTo6SFRU
UENvb2tpZUFjY2VwdFBvbGljeSBwb2xpY3ksIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBj
b21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBhdXRvKiBwb29sID0gbV9vd25pbmdEYXRhU3RvcmUt
PnByb2Nlc3NQb29sRm9yQ29va2llU3RvcmFnZU9wZXJhdGlvbnMoKTsKICAgICBpZiAoIXBvb2wp
IHsKQEAgLTI3OSw3ICsyODAsNyBAQCB2b2lkIEhUVFBDb29raWVTdG9yZTo6ZGVsZXRlQ29va2ll
RnJvbURlZmF1bHRVSVByb2Nlc3NDb29raWVTdG9yZShjb25zdCBXZWJDb3JlOgogdm9pZCBIVFRQ
Q29va2llU3RvcmU6OnN0YXJ0T2JzZXJ2aW5nQ2hhbmdlc1RvRGVmYXVsdFVJUHJvY2Vzc0Nvb2tp
ZVN0b3JlKEZ1bmN0aW9uPHZvaWQoKT4mJikgeyB9CiB2b2lkIEhUVFBDb29raWVTdG9yZTo6c3Rv
cE9ic2VydmluZ0NoYW5nZXNUb0RlZmF1bHRVSVByb2Nlc3NDb29raWVTdG9yZSgpIHsgfQogdm9p
ZCBIVFRQQ29va2llU3RvcmU6OmRlbGV0ZUNvb2tpZXNJbkRlZmF1bHRVSVByb2Nlc3NDb29raWVT
dG9yZSgpIHsgfQotdm9pZCBIVFRQQ29va2llU3RvcmU6OnNldEhUVFBDb29raWVBY2NlcHRQb2xp
Y3lJbkRlZmF1bHRVSVByb2Nlc3NDb29raWVTdG9yZShXZWJLaXQ6OkhUVFBDb29raWVBY2NlcHRQ
b2xpY3kpIHsgfQordm9pZCBIVFRQQ29va2llU3RvcmU6OnNldEhUVFBDb29raWVBY2NlcHRQb2xp
Y3lJbkRlZmF1bHRVSVByb2Nlc3NDb29raWVTdG9yZShXZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0
UG9saWN5KSB7IH0KICNlbmRpZgogICAgIAogfSAvLyBuYW1lc3BhY2UgQVBJCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJSFRUUENvb2tpZVN0b3JlLmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJSFRUUENvb2tpZVN0b3JlLmgKaW5kZXggMmU0MWY2
MjRkNDc0ZjVmZjQxZTE1MjUxMjBmNWJmN2E2YmIyNmQzZC4uODE3OWM0NGY0ZTU4ZDJiNjI5ODU1
Y2E5MTU5MDk0ZjQzMmM0NmM3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0FQSUhUVFBDb29raWVTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9BUElIVFRQQ29va2llU3RvcmUuaApAQCAtMjYsNyArMjYsNiBAQAogI3ByYWdtYSBvbmNlCiAK
ICNpbmNsdWRlICJBUElPYmplY3QuaCIKLSNpbmNsdWRlICJIVFRQQ29va2llQWNjZXB0UG9saWN5
LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9Db29raWUuaD4KICNpbmNsdWRlIDx3dGYvQ29tcGxldGlv
bkhhbmRsZXIuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgpAQCAtMzcsMTIgKzM2LDEyIEBA
IHN0cnVjdCBDb29raWU7CiAjaWYgUExBVEZPUk0oQ09DT0EpCiBjbGFzcyBDb29raWVTdG9yYWdl
T2JzZXJ2ZXI7CiAjZW5kaWYKK2VudW0gY2xhc3MgSFRUUENvb2tpZUFjY2VwdFBvbGljeSA6IHVp
bnQ4X3Q7CiB9CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3MgV2ViQ29va2llTWFuYWdlclBy
b3h5OwogY2xhc3MgV2Vic2l0ZURhdGFTdG9yZTsKLWVudW0gY2xhc3MgSFRUUENvb2tpZUFjY2Vw
dFBvbGljeSA6IHVpbnQ4X3Q7CiB9CiAKIG5hbWVzcGFjZSBBUEkgewpAQCAtNjMsNyArNjIsNyBA
QCBwdWJsaWM6CiAgICAgdm9pZCBkZWxldGVDb29raWUoY29uc3QgV2ViQ29yZTo6Q29va2llJiwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICAKICAgICB2b2lkIGRlbGV0ZUFsbENv
b2tpZXMoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKLSAgICB2b2lkIHNldEhUVFBDb29r
aWVBY2NlcHRQb2xpY3koV2ViS2l0OjpIVFRQQ29va2llQWNjZXB0UG9saWN5LCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKCk+JiYpOworICAgIHZvaWQgc2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShX
ZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0UG9saWN5LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+
JiYpOwogCiAgICAgY2xhc3MgT2JzZXJ2ZXIgewogICAgIHB1YmxpYzoKQEAgLTkwLDcgKzg5LDcg
QEAgcHJpdmF0ZToKICAgICB2b2lkIHN0YXJ0T2JzZXJ2aW5nQ2hhbmdlc1RvRGVmYXVsdFVJUHJv
Y2Vzc0Nvb2tpZVN0b3JlKEZ1bmN0aW9uPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzdG9wT2JzZXJ2
aW5nQ2hhbmdlc1RvRGVmYXVsdFVJUHJvY2Vzc0Nvb2tpZVN0b3JlKCk7CiAgICAgdm9pZCBkZWxl
dGVDb29raWVzSW5EZWZhdWx0VUlQcm9jZXNzQ29va2llU3RvcmUoKTsKLSAgICB2b2lkIHNldEhU
VFBDb29raWVBY2NlcHRQb2xpY3lJbkRlZmF1bHRVSVByb2Nlc3NDb29raWVTdG9yZShXZWJLaXQ6
OkhUVFBDb29raWVBY2NlcHRQb2xpY3kpOworICAgIHZvaWQgc2V0SFRUUENvb2tpZUFjY2VwdFBv
bGljeUluRGVmYXVsdFVJUHJvY2Vzc0Nvb2tpZVN0b3JlKFdlYkNvcmU6OkhUVFBDb29raWVBY2Nl
cHRQb2xpY3kpOwogICAgIAogICAgIC8vIEZJWE1FOiBUaGlzIGlzIGEgcmVmZXJlbmNlIGN5Y2xl
LgogICAgIFJlZjxXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU+IG1fb3duaW5nRGF0YVN0b3JlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmggYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaAppbmRleCAwMGQxNjI3Mjcw
MjhhNjZiNDA3YjM1ZDU2MThkOTA1YzFlYTNiYTA0Li44MTA1NWE2MTliYTE5ZjU2NTIyYzQ3ODAx
YTVhMGNhYzNjNWZmYzQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Qy9XS0FQSUNhc3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNh
c3QuaApAQCAtMjgsNyArMjgsNiBAQAogI2RlZmluZSBXS0FQSUNhc3RfaAogCiAjaW5jbHVkZSAi
Q2FjaGVNb2RlbC5oIgotI2luY2x1ZGUgIkhUVFBDb29raWVBY2NlcHRQb2xpY3kuaCIKICNpbmNs
dWRlICJJbmplY3RlZEJ1bmRsZUhpdFRlc3RSZXN1bHRNZWRpYVR5cGUuaCIKICNpbmNsdWRlICJQ
bHVnaW5Nb2R1bGVJbmZvLmgiCiAjaW5jbHVkZSAiUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uLmgi
CkBAIC00Niw2ICs0NSw3IEBACiAjaW5jbHVkZSAiV0tTaGFyZWRBUElDYXN0LmgiCiAjaW5jbHVk
ZSA8V2ViQ29yZS9DcmVkZW50aWFsLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUxvYWRlclR5
cGVzLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9IVFRQQ29va2llQWNjZXB0UG9saWN5Lmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9QbHVnaW5EYXRhLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Qcm90ZWN0aW9u
U3BhY2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NldHRpbmdzLmg+CkBAIC0zNjksMzMgKzM2OSwz
MyBAQCBpbmxpbmUgUmVzb3VyY2VDYWNoZXNUb0NsZWFyIHRvUmVzb3VyY2VDYWNoZXNUb0NsZWFy
KFdLUmVzb3VyY2VDYWNoZXNUb0NsZWFyIHdrUgogICAgIHJldHVybiBBbGxSZXNvdXJjZUNhY2hl
czsKIH0KIAotaW5saW5lIEhUVFBDb29raWVBY2NlcHRQb2xpY3kgdG9IVFRQQ29va2llQWNjZXB0
UG9saWN5KFdLSFRUUENvb2tpZUFjY2VwdFBvbGljeSBwb2xpY3kpCitpbmxpbmUgV2ViQ29yZTo6
SFRUUENvb2tpZUFjY2VwdFBvbGljeSB0b0hUVFBDb29raWVBY2NlcHRQb2xpY3koV0tIVFRQQ29v
a2llQWNjZXB0UG9saWN5IHBvbGljeSkKIHsKICAgICBzd2l0Y2ggKHBvbGljeSkgewogICAgIGNh
c2Uga1dLSFRUUENvb2tpZUFjY2VwdFBvbGljeUFsd2F5czoKLSAgICAgICAgcmV0dXJuIEhUVFBD
b29raWVBY2NlcHRQb2xpY3k6OkFsd2F5c0FjY2VwdDsKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6
OkhUVFBDb29raWVBY2NlcHRQb2xpY3k6OkFsd2F5c0FjY2VwdDsKICAgICBjYXNlIGtXS0hUVFBD
b29raWVBY2NlcHRQb2xpY3lOZXZlcjoKLSAgICAgICAgcmV0dXJuIEhUVFBDb29raWVBY2NlcHRQ
b2xpY3k6Ok5ldmVyOworICAgICAgICByZXR1cm4gV2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBv
bGljeTo6TmV2ZXI7CiAgICAgY2FzZSBrV0tIVFRQQ29va2llQWNjZXB0UG9saWN5T25seUZyb21N
YWluRG9jdW1lbnREb21haW46Ci0gICAgICAgIHJldHVybiBIVFRQQ29va2llQWNjZXB0UG9saWN5
OjpPbmx5RnJvbU1haW5Eb2N1bWVudERvbWFpbjsKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkhU
VFBDb29raWVBY2NlcHRQb2xpY3k6Ok9ubHlGcm9tTWFpbkRvY3VtZW50RG9tYWluOwogICAgIGNh
c2Uga1dLSFRUUENvb2tpZUFjY2VwdFBvbGljeUV4Y2x1c2l2ZWx5RnJvbU1haW5Eb2N1bWVudERv
bWFpbjoKLSAgICAgICAgcmV0dXJuIEhUVFBDb29raWVBY2NlcHRQb2xpY3k6OkV4Y2x1c2l2ZWx5
RnJvbU1haW5Eb2N1bWVudERvbWFpbjsKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkhUVFBDb29r
aWVBY2NlcHRQb2xpY3k6OkV4Y2x1c2l2ZWx5RnJvbU1haW5Eb2N1bWVudERvbWFpbjsKICAgICB9
CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gSFRUUENvb2tpZUFjY2Vw
dFBvbGljeTo6QWx3YXlzQWNjZXB0OworICAgIHJldHVybiBXZWJDb3JlOjpIVFRQQ29va2llQWNj
ZXB0UG9saWN5OjpBbHdheXNBY2NlcHQ7CiB9CiAKLWlubGluZSBXS0hUVFBDb29raWVBY2NlcHRQ
b2xpY3kgdG9BUEkoSFRUUENvb2tpZUFjY2VwdFBvbGljeSBwb2xpY3kpCitpbmxpbmUgV0tIVFRQ
Q29va2llQWNjZXB0UG9saWN5IHRvQVBJKFdlYkNvcmU6OkhUVFBDb29raWVBY2NlcHRQb2xpY3kg
cG9saWN5KQogewogICAgIHN3aXRjaCAocG9saWN5KSB7Ci0gICAgY2FzZSBIVFRQQ29va2llQWNj
ZXB0UG9saWN5OjpBbHdheXNBY2NlcHQ6CisgICAgY2FzZSBXZWJDb3JlOjpIVFRQQ29va2llQWNj
ZXB0UG9saWN5OjpBbHdheXNBY2NlcHQ6CiAgICAgICAgIHJldHVybiBrV0tIVFRQQ29va2llQWNj
ZXB0UG9saWN5QWx3YXlzOwotICAgIGNhc2UgSFRUUENvb2tpZUFjY2VwdFBvbGljeTo6TmV2ZXI6
CisgICAgY2FzZSBXZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0UG9saWN5OjpOZXZlcjoKICAgICAg
ICAgcmV0dXJuIGtXS0hUVFBDb29raWVBY2NlcHRQb2xpY3lOZXZlcjsKLSAgICBjYXNlIEhUVFBD
b29raWVBY2NlcHRQb2xpY3k6Ok9ubHlGcm9tTWFpbkRvY3VtZW50RG9tYWluOgorICAgIGNhc2Ug
V2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBvbGljeTo6T25seUZyb21NYWluRG9jdW1lbnREb21h
aW46CiAgICAgICAgIHJldHVybiBrV0tIVFRQQ29va2llQWNjZXB0UG9saWN5T25seUZyb21NYWlu
RG9jdW1lbnREb21haW47Ci0gICAgY2FzZSBIVFRQQ29va2llQWNjZXB0UG9saWN5OjpFeGNsdXNp
dmVseUZyb21NYWluRG9jdW1lbnREb21haW46CisgICAgY2FzZSBXZWJDb3JlOjpIVFRQQ29va2ll
QWNjZXB0UG9saWN5OjpFeGNsdXNpdmVseUZyb21NYWluRG9jdW1lbnREb21haW46CiAgICAgICAg
IHJldHVybiBrV0tIVFRQQ29va2llQWNjZXB0UG9saWN5RXhjbHVzaXZlbHlGcm9tTWFpbkRvY3Vt
ZW50RG9tYWluOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL0FQSUhUVFBDb29raWVTdG9yZUNvY29hLm1tIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL0FQSUhUVFBDb29raWVTdG9yZUNvY29hLm1tCmluZGV4IGFkMTk2NzYx
ZDQ4NDAyMWFiYjYzZmM5ZDVlZDA3ZWQ2NWZmZTQ0Y2IuLjc5MTIwMWM0NzdlNWQ4YTE3MTc0MTNm
MDIxZTJiZjc1MjU2MzY4Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9BUElIVFRQQ29va2llU3RvcmVDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvQVBJSFRUUENvb2tpZVN0b3JlQ29jb2EubW0KQEAgLTI4LDYgKzI4
LDcgQEAKIAogI2luY2x1ZGUgPFdlYkNvcmUvQ29va2llLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9D
b29raWVTdG9yYWdlT2JzZXJ2ZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0hUVFBDb29raWVBY2Nl
cHRQb2xpY3kuaD4KICNpbmNsdWRlIDxwYWwvc3BpL2NmL0NGTmV0d29ya1NQSS5oPgogCiBuYW1l
c3BhY2UgQVBJIHsKQEAgLTc1LDIzICs3NiwyMyBAQCB2b2lkIEhUVFBDb29raWVTdG9yZTo6ZGVs
ZXRlQ29va2llc0luRGVmYXVsdFVJUHJvY2Vzc0Nvb2tpZVN0b3JlKCkKICAgICBbW05TSFRUUENv
b2tpZVN0b3JhZ2Ugc2hhcmVkSFRUUENvb2tpZVN0b3JhZ2VdIHJlbW92ZUNvb2tpZXNTaW5jZURh
dGU6W05TRGF0ZSBkaXN0YW50UGFzdF1dOwogfQogCi1zdGF0aWMgTlNIVFRQQ29va2llQWNjZXB0
UG9saWN5IHRvTlNIVFRQQ29va2llQWNjZXB0UG9saWN5KFdlYktpdDo6SFRUUENvb2tpZUFjY2Vw
dFBvbGljeSBwb2xpY3kpCitzdGF0aWMgTlNIVFRQQ29va2llQWNjZXB0UG9saWN5IHRvTlNIVFRQ
Q29va2llQWNjZXB0UG9saWN5KFdlYkNvcmU6OkhUVFBDb29raWVBY2NlcHRQb2xpY3kgcG9saWN5
KQogewogICAgIHN3aXRjaCAocG9saWN5KSB7Ci0gICAgY2FzZSBXZWJLaXQ6OkhUVFBDb29raWVB
Y2NlcHRQb2xpY3k6OkFsd2F5c0FjY2VwdDoKKyAgICBjYXNlIFdlYkNvcmU6OkhUVFBDb29raWVB
Y2NlcHRQb2xpY3k6OkFsd2F5c0FjY2VwdDoKICAgICAgICAgcmV0dXJuIE5TSFRUUENvb2tpZUFj
Y2VwdFBvbGljeUFsd2F5czsKLSAgICBjYXNlIFdlYktpdDo6SFRUUENvb2tpZUFjY2VwdFBvbGlj
eTo6TmV2ZXI6CisgICAgY2FzZSBXZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0UG9saWN5OjpOZXZl
cjoKICAgICAgICAgcmV0dXJuIE5TSFRUUENvb2tpZUFjY2VwdFBvbGljeU5ldmVyOwotICAgIGNh
c2UgV2ViS2l0OjpIVFRQQ29va2llQWNjZXB0UG9saWN5OjpPbmx5RnJvbU1haW5Eb2N1bWVudERv
bWFpbjoKKyAgICBjYXNlIFdlYkNvcmU6OkhUVFBDb29raWVBY2NlcHRQb2xpY3k6Ok9ubHlGcm9t
TWFpbkRvY3VtZW50RG9tYWluOgogICAgICAgICByZXR1cm4gTlNIVFRQQ29va2llQWNjZXB0UG9s
aWN5T25seUZyb21NYWluRG9jdW1lbnREb21haW47Ci0gICAgY2FzZSBXZWJLaXQ6OkhUVFBDb29r
aWVBY2NlcHRQb2xpY3k6OkV4Y2x1c2l2ZWx5RnJvbU1haW5Eb2N1bWVudERvbWFpbjoKKyAgICBj
YXNlIFdlYkNvcmU6OkhUVFBDb29raWVBY2NlcHRQb2xpY3k6OkV4Y2x1c2l2ZWx5RnJvbU1haW5E
b2N1bWVudERvbWFpbjoKICAgICAgICAgcmV0dXJuIChOU0hUVFBDb29raWVBY2NlcHRQb2xpY3kp
TlNIVFRQQ29va2llQWNjZXB0UG9saWN5RXhjbHVzaXZlbHlGcm9tTWFpbkRvY3VtZW50RG9tYWlu
OwogICAgIH0KICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICByZXR1cm4gTlNIVFRQQ29v
a2llQWNjZXB0UG9saWN5QWx3YXlzOwogfQogCi12b2lkIEhUVFBDb29raWVTdG9yZTo6c2V0SFRU
UENvb2tpZUFjY2VwdFBvbGljeUluRGVmYXVsdFVJUHJvY2Vzc0Nvb2tpZVN0b3JlKFdlYktpdDo6
SFRUUENvb2tpZUFjY2VwdFBvbGljeSBwb2xpY3kpCit2b2lkIEhUVFBDb29raWVTdG9yZTo6c2V0
SFRUUENvb2tpZUFjY2VwdFBvbGljeUluRGVmYXVsdFVJUHJvY2Vzc0Nvb2tpZVN0b3JlKFdlYkNv
cmU6OkhUVFBDb29raWVBY2NlcHRQb2xpY3kgcG9saWN5KQogewogICAgIFtbTlNIVFRQQ29va2ll
U3RvcmFnZSBzaGFyZWRIVFRQQ29va2llU3RvcmFnZV0gc2V0Q29va2llQWNjZXB0UG9saWN5OnRv
TlNIVFRQQ29va2llQWNjZXB0UG9saWN5KHBvbGljeSldOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLSFRUUENvb2tpZVN0b3JlLm1tIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLSFRUUENvb2tpZVN0b3JlLm1tCmluZGV4IDgx
ZDM3MDNiMGVlYTgyZTVlNmM2MmYzMjIyYWM0ZTY4MTlmNmIzYTYuLjliNDY2M2M0Y2FiNjg0ZTNk
NzRjOTY1NjM4ZmIyZTJmYzY4M2I4MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS0hUVFBDb29raWVTdG9yZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tIVFRQQ29va2llU3RvcmUubW0KQEAgLTI2LDggKzI2LDggQEAK
ICNpbXBvcnQgImNvbmZpZy5oIgogI2ltcG9ydCAiV0tIVFRQQ29va2llU3RvcmVJbnRlcm5hbC5o
IgogCi0jaW1wb3J0ICJIVFRQQ29va2llQWNjZXB0UG9saWN5LmgiCiAjaW1wb3J0IDxXZWJDb3Jl
L0Nvb2tpZS5oPgorI2ltcG9ydCA8V2ViQ29yZS9IVFRQQ29va2llQWNjZXB0UG9saWN5Lmg+CiAj
aW1wb3J0IDxwYWwvc3BpL2NmL0NGTmV0d29ya1NQSS5oPgogI2ltcG9ydCA8d3RmL0hhc2hNYXAu
aD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1tIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2wubW0KaW5kZXggMDhlNWI5ZjAxMzVlYWZlMWFh
OGY0ZGU0YTgyYjZiODkwYmI5MTliMy4uM2ZmY2ZiODkzMzdmZjA5NDQ5ZjhhYTlmMjhmZGZiY2Q0
MmViZmU0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
UHJvY2Vzc1Bvb2wubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
UHJvY2Vzc1Bvb2wubW0KQEAgLTIwMCwyMSArMjAwLDIxIEBAIC0gKHZvaWQpX3NldENhbkhhbmRs
ZUhUVFBTU2VydmVyVHJ1c3RFdmFsdWF0aW9uOihCT09MKXZhbHVlCiB7CiB9CiAKLXN0YXRpYyBX
ZWJLaXQ6OkhUVFBDb29raWVBY2NlcHRQb2xpY3kgdG9IVFRQQ29va2llQWNjZXB0UG9saWN5KE5T
SFRUUENvb2tpZUFjY2VwdFBvbGljeSBwb2xpY3kpCitzdGF0aWMgV2ViQ29yZTo6SFRUUENvb2tp
ZUFjY2VwdFBvbGljeSB0b0hUVFBDb29raWVBY2NlcHRQb2xpY3koTlNIVFRQQ29va2llQWNjZXB0
UG9saWN5IHBvbGljeSkKIHsKICAgICBzd2l0Y2ggKHN0YXRpY19jYXN0PE5TVUludGVnZXI+KHBv
bGljeSkpIHsKICAgICBjYXNlIE5TSFRUUENvb2tpZUFjY2VwdFBvbGljeUFsd2F5czoKLSAgICAg
ICAgcmV0dXJuIFdlYktpdDo6SFRUUENvb2tpZUFjY2VwdFBvbGljeTo6QWx3YXlzQWNjZXB0Owor
ICAgICAgICByZXR1cm4gV2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBvbGljeTo6QWx3YXlzQWNj
ZXB0OwogICAgIGNhc2UgTlNIVFRQQ29va2llQWNjZXB0UG9saWN5TmV2ZXI6Ci0gICAgICAgIHJl
dHVybiBXZWJLaXQ6OkhUVFBDb29raWVBY2NlcHRQb2xpY3k6Ok5ldmVyOworICAgICAgICByZXR1
cm4gV2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBvbGljeTo6TmV2ZXI7CiAgICAgY2FzZSBOU0hU
VFBDb29raWVBY2NlcHRQb2xpY3lPbmx5RnJvbU1haW5Eb2N1bWVudERvbWFpbjoKLSAgICAgICAg
cmV0dXJuIFdlYktpdDo6SFRUUENvb2tpZUFjY2VwdFBvbGljeTo6T25seUZyb21NYWluRG9jdW1l
bnREb21haW47CisgICAgICAgIHJldHVybiBXZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0UG9saWN5
OjpPbmx5RnJvbU1haW5Eb2N1bWVudERvbWFpbjsKICAgICBjYXNlIE5TSFRUUENvb2tpZUFjY2Vw
dFBvbGljeUV4Y2x1c2l2ZWx5RnJvbU1haW5Eb2N1bWVudERvbWFpbjoKLSAgICAgICAgcmV0dXJu
IFdlYktpdDo6SFRUUENvb2tpZUFjY2VwdFBvbGljeTo6RXhjbHVzaXZlbHlGcm9tTWFpbkRvY3Vt
ZW50RG9tYWluOworICAgICAgICByZXR1cm4gV2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBvbGlj
eTo6RXhjbHVzaXZlbHlGcm9tTWFpbkRvY3VtZW50RG9tYWluOwogICAgIH0KIAogICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiBXZWJLaXQ6OkhUVFBDb29raWVBY2NlcHRQb2xp
Y3k6OkFsd2F5c0FjY2VwdDsKKyAgICByZXR1cm4gV2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBv
bGljeTo6QWx3YXlzQWNjZXB0OwogfQogCiAtICh2b2lkKV9zZXRDb29raWVBY2NlcHRQb2xpY3k6
KE5TSFRUUENvb2tpZUFjY2VwdFBvbGljeSlwb2xpY3kKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdENvb2tpZU1hbmFnZXIuY3BwIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0Q29va2llTWFuYWdlci5jcHAKaW5kZXggYjhj
NTA5MDEzM2UyZGMzNjA4YWNlNDFkYTE0OTJhMTlkZWU5OGEwMy4uOWQ4N2IwZjAwMTY2MDMzMDQ0
ZGFlNmJjZTE3NjU3MDcyNzQ5YTAzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL2dsaWIvV2ViS2l0Q29va2llTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0Q29va2llTWFuYWdlci5jcHAKQEAgLTI4LDYgKzI4LDcg
QEAKICNpbmNsdWRlICJXZWJLaXRXZWJzaXRlRGF0YU1hbmFnZXJQcml2YXRlLmgiCiAjaW5jbHVk
ZSAiV2ViS2l0V2Vic2l0ZURhdGFQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2Vic2l0ZURhdGFSZWNv
cmQuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0hUVFBDb29raWVBY2NlcHRQb2xpY3kuaD4KICNpbmNs
dWRlIDxnbGliL2dpMThuLWxpYi5oPgogI2luY2x1ZGUgPHBhbC9TZXNzaW9uSUQuaD4KICNpbmNs
dWRlIDx3dGYvZ2xpYi9HUmVmUHRyLmg+CkBAIC04NywxNCArODgsMTQgQEAgc3RhdGljIGlubGlu
ZSBTb3VwQ29va2llUGVyc2lzdGVudFN0b3JhZ2VUeXBlIHRvU291cENvb2tpZVBlcnNpc3RlbnRT
dG9yYWdlVHlwZSgKICAgICB9CiB9CiAKLXN0YXRpYyBpbmxpbmUgV2ViS2l0Q29va2llQWNjZXB0
UG9saWN5IHRvV2ViS2l0Q29va2llQWNjZXB0UG9saWN5KEhUVFBDb29raWVBY2NlcHRQb2xpY3kg
aHR0cFBvbGljeSkKK3N0YXRpYyBpbmxpbmUgV2ViS2l0Q29va2llQWNjZXB0UG9saWN5IHRvV2Vi
S2l0Q29va2llQWNjZXB0UG9saWN5KFdlYkNvcmU6OkhUVFBDb29raWVBY2NlcHRQb2xpY3kgaHR0
cFBvbGljeSkKIHsKICAgICBzd2l0Y2ggKGh0dHBQb2xpY3kpIHsKLSAgICBjYXNlIEhUVFBDb29r
aWVBY2NlcHRQb2xpY3k6OkFsd2F5c0FjY2VwdDoKKyAgICBjYXNlIFdlYkNvcmU6OkhUVFBDb29r
aWVBY2NlcHRQb2xpY3k6OkFsd2F5c0FjY2VwdDoKICAgICAgICAgcmV0dXJuIFdFQktJVF9DT09L
SUVfUE9MSUNZX0FDQ0VQVF9BTFdBWVM7Ci0gICAgY2FzZSBIVFRQQ29va2llQWNjZXB0UG9saWN5
OjpOZXZlcjoKKyAgICBjYXNlIFdlYkNvcmU6OkhUVFBDb29raWVBY2NlcHRQb2xpY3k6Ok5ldmVy
OgogICAgICAgICByZXR1cm4gV0VCS0lUX0NPT0tJRV9QT0xJQ1lfQUNDRVBUX05FVkVSOwotICAg
IGNhc2UgSFRUUENvb2tpZUFjY2VwdFBvbGljeTo6T25seUZyb21NYWluRG9jdW1lbnREb21haW46
CisgICAgY2FzZSBXZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0UG9saWN5OjpPbmx5RnJvbU1haW5E
b2N1bWVudERvbWFpbjoKICAgICAgICAgcmV0dXJuIFdFQktJVF9DT09LSUVfUE9MSUNZX0FDQ0VQ
VF9OT19USElSRF9QQVJUWTsKICAgICBkZWZhdWx0OgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKQEAgLTEwMiwxOCArMTAzLDE4IEBAIHN0YXRpYyBpbmxpbmUgV2ViS2l0Q29va2llQWNj
ZXB0UG9saWN5IHRvV2ViS2l0Q29va2llQWNjZXB0UG9saWN5KEhUVFBDb29raWVBY2NlCiAgICAg
fQogfQogCi1zdGF0aWMgaW5saW5lIEhUVFBDb29raWVBY2NlcHRQb2xpY3kgdG9IVFRQQ29va2ll
QWNjZXB0UG9saWN5KFdlYktpdENvb2tpZUFjY2VwdFBvbGljeSBraXRQb2xpY3kpCitzdGF0aWMg
aW5saW5lIFdlYkNvcmU6OkhUVFBDb29raWVBY2NlcHRQb2xpY3kgdG9IVFRQQ29va2llQWNjZXB0
UG9saWN5KFdlYktpdENvb2tpZUFjY2VwdFBvbGljeSBraXRQb2xpY3kpCiB7CiAgICAgc3dpdGNo
IChraXRQb2xpY3kpIHsKICAgICBjYXNlIFdFQktJVF9DT09LSUVfUE9MSUNZX0FDQ0VQVF9BTFdB
WVM6Ci0gICAgICAgIHJldHVybiBIVFRQQ29va2llQWNjZXB0UG9saWN5OjpBbHdheXNBY2NlcHQ7
CisgICAgICAgIHJldHVybiBXZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0UG9saWN5OjpBbHdheXNB
Y2NlcHQ7CiAgICAgY2FzZSBXRUJLSVRfQ09PS0lFX1BPTElDWV9BQ0NFUFRfTkVWRVI6Ci0gICAg
ICAgIHJldHVybiBIVFRQQ29va2llQWNjZXB0UG9saWN5OjpOZXZlcjsKKyAgICAgICAgcmV0dXJu
IFdlYkNvcmU6OkhUVFBDb29raWVBY2NlcHRQb2xpY3k6Ok5ldmVyOwogICAgIGNhc2UgV0VCS0lU
X0NPT0tJRV9QT0xJQ1lfQUNDRVBUX05PX1RISVJEX1BBUlRZOgotICAgICAgICByZXR1cm4gSFRU
UENvb2tpZUFjY2VwdFBvbGljeTo6T25seUZyb21NYWluRG9jdW1lbnREb21haW47CisgICAgICAg
IHJldHVybiBXZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0UG9saWN5OjpPbmx5RnJvbU1haW5Eb2N1
bWVudERvbWFpbjsKICAgICBkZWZhdWx0OgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
LSAgICAgICAgcmV0dXJuIEhUVFBDb29raWVBY2NlcHRQb2xpY3k6OkFsd2F5c0FjY2VwdDsKKyAg
ICAgICAgcmV0dXJuIFdlYkNvcmU6OkhUVFBDb29raWVBY2NlcHRQb2xpY3k6OkFsd2F5c0FjY2Vw
dDsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdv
cmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3
b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCmluZGV4IDljYjkwZjE4YzU0MmM2YWE1NmZhZWI2
MDA3ZDI2ZmRmMWQwYmVhOGUuLmJhMTZlMzI2MDViMjBhZTYyZTM3Njk3ZDEwYWM5OGE1NDFlMTcz
ZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1By
b2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3
b3JrUHJvY2Vzc1Byb3h5LmNwcApAQCAtMTQ3LDcgKzE0Nyw3IEBAIHZvaWQgTmV0d29ya1Byb2Nl
c3NQcm94eTo6Z2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKFdlYlByb2Nlc3NQcm94eSYgd2Vi
UHJvY2VzCiAKIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6b3Blbk5ldHdvcmtQcm9jZXNzQ29u
bmVjdGlvbih1aW50NjRfdCBjb25uZWN0aW9uUmVxdWVzdElkZW50aWZpZXIsIFdlYlByb2Nlc3NQ
cm94eSYgd2ViUHJvY2Vzc1Byb3h5KQogewotICAgIGNvbm5lY3Rpb24oKS0+c2VuZFdpdGhBc3lu
Y1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6Q3JlYXRlTmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3MgeyB3ZWJQcm9jZXNzUHJveHkuY29yZVByb2Nlc3NJZGVudGlmaWVyKCksIHdl
YlByb2Nlc3NQcm94eS5zZXNzaW9uSUQoKSB9LCBbdGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0
cih0aGlzKSwgd2ViUHJvY2Vzc1Byb3h5ID0gbWFrZVdlYWtQdHIod2ViUHJvY2Vzc1Byb3h5KSwg
Y29ubmVjdGlvblJlcXVlc3RJZGVudGlmaWVyXShhdXRvJiYgY29ubmVjdGlvbklkZW50aWZpZXIp
IG11dGFibGUgeworICAgIGNvbm5lY3Rpb24oKS0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2Vz
OjpOZXR3b3JrUHJvY2Vzczo6Q3JlYXRlTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MgeyB3
ZWJQcm9jZXNzUHJveHkuY29yZVByb2Nlc3NJZGVudGlmaWVyKCksIHdlYlByb2Nlc3NQcm94eS5z
ZXNzaW9uSUQoKSB9LCBbdGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cih0aGlzKSwgd2ViUHJv
Y2Vzc1Byb3h5ID0gbWFrZVdlYWtQdHIod2ViUHJvY2Vzc1Byb3h5KSwgY29ubmVjdGlvblJlcXVl
c3RJZGVudGlmaWVyXShhdXRvJiYgY29ubmVjdGlvbklkZW50aWZpZXIsIEhUVFBDb29raWVBY2Nl
cHRQb2xpY3kgY29va2llQWNjZXB0UG9saWN5KSBtdXRhYmxlIHsKICAgICAgICAgaWYgKCF3ZWFr
VGhpcykKICAgICAgICAgICAgIHJldHVybjsKIApAQCAtMTYxLDEwICsxNjEsMTAgQEAgdm9pZCBO
ZXR3b3JrUHJvY2Vzc1Byb3h5OjpvcGVuTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKHVpbnQ2NF90
IGNvbm5lY3Rpb25SZXF1ZXMKICAgICAgICAgYXV0byByZXF1ZXN0ID0gbV9jb25uZWN0aW9uUmVx
dWVzdHMudGFrZShjb25uZWN0aW9uUmVxdWVzdElkZW50aWZpZXIpOwogCiAjaWYgVVNFKFVOSVhf
RE9NQUlOX1NPQ0tFVFMpIHx8IE9TKFdJTkRPV1MpCi0gICAgICAgIHJlcXVlc3QucmVwbHkoTmV0
d29ya1Byb2Nlc3NDb25uZWN0aW9uSW5mbyB7IFdURk1vdmUoKmNvbm5lY3Rpb25JZGVudGlmaWVy
KSB9KTsKKyAgICAgICAgcmVxdWVzdC5yZXBseShOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25JbmZv
IHsgV1RGTW92ZSgqY29ubmVjdGlvbklkZW50aWZpZXIpLCBjb29raWVBY2NlcHRQb2xpY3kgfSk7
CiAjZWxpZiBPUyhEQVJXSU4pCiAgICAgICAgIE1FU1NBR0VfQ0hFQ0soTUFDSF9QT1JUX1ZBTElE
KGNvbm5lY3Rpb25JZGVudGlmaWVyLT5wb3J0KCkpKTsKLSAgICAgICAgcmVxdWVzdC5yZXBseShO
ZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25JbmZvIHsgSVBDOjpBdHRhY2htZW50IHsgY29ubmVjdGlv
bklkZW50aWZpZXItPnBvcnQoKSwgTUFDSF9NU0dfVFlQRV9NT1ZFX1NFTkQgfSwgY29ubmVjdGlv
bigpLT5nZXRBdWRpdFRva2VuKCkgfSk7CisgICAgICAgIHJlcXVlc3QucmVwbHkoTmV0d29ya1By
b2Nlc3NDb25uZWN0aW9uSW5mbyB7IElQQzo6QXR0YWNobWVudCB7IGNvbm5lY3Rpb25JZGVudGlm
aWVyLT5wb3J0KCksIE1BQ0hfTVNHX1RZUEVfTU9WRV9TRU5EIH0sIGNvb2tpZUFjY2VwdFBvbGlj
eSwgY29ubmVjdGlvbigpLT5nZXRBdWRpdFRva2VuKCkgfSk7CiAjZWxzZQogICAgICAgICBub3RJ
bXBsZW1lbnRlZCgpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJDb29raWVNYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNv
b2tpZU1hbmFnZXJQcm94eS5oCmluZGV4IDU4YjgyZmQxMGM4YzI2MjE1NDg5MDFiMTM1ZDVmZTlh
OGQ5NzViZDQuLjBiZGZjMGQ0ZTQ3YzQzNmY1ODVjZjI5YzA5ZDUxYTI5YmM4MTFhOWQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eS5oCkBAIC01
Myw3ICs1Myw3IEBAIGNsYXNzIFdlYlByb2Nlc3NQb29sOwogY2xhc3MgV2ViUHJvY2Vzc1Byb3h5
OwogCiB0eXBlZGVmIEdlbmVyaWNDYWxsYmFjazxBUEk6OkFycmF5Kj4gQXJyYXlDYWxsYmFjazsK
LXR5cGVkZWYgR2VuZXJpY0NhbGxiYWNrPEhUVFBDb29raWVBY2NlcHRQb2xpY3k+IEhUVFBDb29r
aWVBY2NlcHRQb2xpY3lDYWxsYmFjazsKK3R5cGVkZWYgR2VuZXJpY0NhbGxiYWNrPFdlYkNvcmU6
OkhUVFBDb29raWVBY2NlcHRQb2xpY3k+IEhUVFBDb29raWVBY2NlcHRQb2xpY3lDYWxsYmFjazsK
IHR5cGVkZWYgR2VuZXJpY0NhbGxiYWNrPGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpDb29raWU+Jj4g
R2V0Q29va2llc0NhbGxiYWNrOwogCiBjbGFzcyBXZWJDb29raWVNYW5hZ2VyUHJveHkgOiBwdWJs
aWMgQVBJOjpPYmplY3RJbXBsPEFQSTo6T2JqZWN0OjpUeXBlOjpDb29raWVNYW5hZ2VyPiwgcHVi
bGljIFdlYkNvbnRleHRTdXBwbGVtZW50LCBwcml2YXRlIElQQzo6TWVzc2FnZVJlY2VpdmVyIHsK
QEAgLTc3LDggKzc3LDggQEAgcHVibGljOgogICAgIHZvaWQgZ2V0QWxsQ29va2llcyhQQUw6OlNl
c3Npb25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8V2ViQ29yZTo6Q29va2llPiYm
KT4mJik7CiAgICAgdm9pZCBnZXRDb29raWVzKFBBTDo6U2Vzc2lvbklELCBjb25zdCBVUkwmLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKFZlY3RvcjxXZWJDb3JlOjpDb29raWU+JiYpPiYmKTsKIAot
ICAgIHZvaWQgc2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShQQUw6OlNlc3Npb25JRCwgSFRUUENv
b2tpZUFjY2VwdFBvbGljeSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKLSAgICB2b2lk
IGdldEhUVFBDb29raWVBY2NlcHRQb2xpY3koUEFMOjpTZXNzaW9uSUQsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoSFRUUENvb2tpZUFjY2VwdFBvbGljeSk+JiYpOworICAgIHZvaWQgc2V0SFRUUENv
b2tpZUFjY2VwdFBvbGljeShQQUw6OlNlc3Npb25JRCwgV2ViQ29yZTo6SFRUUENvb2tpZUFjY2Vw
dFBvbGljeSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKKyAgICB2b2lkIGdldEhUVFBD
b29raWVBY2NlcHRQb2xpY3koUEFMOjpTZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
V2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBvbGljeSk+JiYpOwogCiAgICAgdm9pZCBzdGFydE9i
c2VydmluZ0Nvb2tpZUNoYW5nZXMoUEFMOjpTZXNzaW9uSUQpOwogICAgIHZvaWQgc3RvcE9ic2Vy
dmluZ0Nvb2tpZUNoYW5nZXMoUEFMOjpTZXNzaW9uSUQpOwpAQCAtMTE5LDcgKzExOSw3IEBAIHBy
aXZhdGU6CiAgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6
OkRlY29kZXImKSBvdmVycmlkZTsKIAogI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIHZvaWQgcGVy
c2lzdEhUVFBDb29raWVBY2NlcHRQb2xpY3koSFRUUENvb2tpZUFjY2VwdFBvbGljeSk7CisgICAg
dm9pZCBwZXJzaXN0SFRUUENvb2tpZUFjY2VwdFBvbGljeShXZWJDb3JlOjpIVFRQQ29va2llQWNj
ZXB0UG9saWN5KTsKICNlbmRpZgogCiAgICAgSGFzaE1hcDxQQUw6OlNlc3Npb25JRCwgV1RGOjpG
dW5jdGlvbjx2b2lkICgpPj4gbV9sZWdhY3lDb29raWVPYnNlcnZlcnM7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAppbmRleCAxZGJkMTgxZDQxM2U4ZmJhNDA1ZDgxYmMw
YTRmOTRlNGU3OTYyYjk4Li42NGIxZGJjZTRjOTA3NTM2OTk5YjFjMmE1ZWIzMTQ2NzBmNDIzZTFl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKQEAgLTI5NCw3ICsy
OTQsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzdG9wTWVtb3J5U2FtcGxlcigpOwogCiAjaWYgVVNF
KFNPVVApCi0gICAgdm9pZCBzZXRJbml0aWFsSFRUUENvb2tpZUFjY2VwdFBvbGljeShIVFRQQ29v
a2llQWNjZXB0UG9saWN5IHBvbGljeSkgeyBtX2luaXRpYWxIVFRQQ29va2llQWNjZXB0UG9saWN5
ID0gcG9saWN5OyB9CisgICAgdm9pZCBzZXRJbml0aWFsSFRUUENvb2tpZUFjY2VwdFBvbGljeShX
ZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0UG9saWN5IHBvbGljeSkgeyBtX2luaXRpYWxIVFRQQ29v
a2llQWNjZXB0UG9saWN5ID0gcG9saWN5OyB9CiAgICAgdm9pZCBzZXROZXR3b3JrUHJveHlTZXR0
aW5ncyhjb25zdCBXZWJDb3JlOjpTb3VwTmV0d29ya1Byb3h5U2V0dGluZ3MmKTsKICNlbmRpZgog
ICAgIHZvaWQgc2V0RW5oYW5jZWRBY2Nlc3NpYmlsaXR5KGJvb2wpOwpAQCAtNjc3LDcgKzY3Nyw3
IEBAIHByaXZhdGU6CiAgICAgV2ViQ29udGV4dFN1cHBsZW1lbnRNYXAgbV9zdXBwbGVtZW50czsK
IAogI2lmIFVTRShTT1VQKQotICAgIEhUVFBDb29raWVBY2NlcHRQb2xpY3kgbV9pbml0aWFsSFRU
UENvb2tpZUFjY2VwdFBvbGljeSB7IEhUVFBDb29raWVBY2NlcHRQb2xpY3k6Ok9ubHlGcm9tTWFp
bkRvY3VtZW50RG9tYWluIH07CisgICAgV2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBvbGljeSBt
X2luaXRpYWxIVFRQQ29va2llQWNjZXB0UG9saWN5IHsgV2ViQ29yZTo6SFRUUENvb2tpZUFjY2Vw
dFBvbGljeTo6T25seUZyb21NYWluRG9jdW1lbnREb21haW4gfTsKICAgICBXZWJDb3JlOjpTb3Vw
TmV0d29ya1Byb3h5U2V0dGluZ3MgbV9uZXR3b3JrUHJveHlTZXR0aW5nczsKICNlbmRpZgogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViQ29va2llTWFuYWdlclBy
b3h5TWFjLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYkNvb2tpZU1hbmFnZXJQ
cm94eU1hYy5tbQppbmRleCBlZWQ5N2FiZWQ2MDNhM2RjYmUxMWI3OTcyZjQ3MTAxYjliOTRlNzI4
Li44ODk1ZjYwZDJlY2Q2Njk4NTE1M2E3Mjk0MWE3YmUxZmU2MzAxYjU0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViQ29va2llTWFuYWdlclByb3h5TWFjLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJDb29raWVNYW5hZ2VyUHJveHlNYWMu
bW0KQEAgLTMxLDcgKzMxLDcgQEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLXZvaWQgV2ViQ29v
a2llTWFuYWdlclByb3h5OjpwZXJzaXN0SFRUUENvb2tpZUFjY2VwdFBvbGljeShIVFRQQ29va2ll
QWNjZXB0UG9saWN5IHBvbGljeSkKK3ZvaWQgV2ViQ29va2llTWFuYWdlclByb3h5OjpwZXJzaXN0
SFRUUENvb2tpZUFjY2VwdFBvbGljeShXZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0UG9saWN5IHBv
bGljeSkKIHsKICAgICBBU1NFUlQoaGFzUHJvY2Vzc1ByaXZpbGVnZShQcm9jZXNzUHJpdmlsZWdl
OjpDYW5BY2Nlc3NSYXdDb29raWVzKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
S2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDZhZGVhNTg1MGY4ODY0M2FmNzBmODk1MDMxYjM4
NjE1NmIyZTQzZjguLmU4Nzg3ODk5ZWYwMmZmMGViOGY0NWYwZTExZjI2MzdiM2RjZjBiN2IgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
KysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAt
ODgyLDcgKzg4Miw2IEBACiAJCTM3REZBNzAwMTgxMEJCOTIwMDFGNEE5RiAvKiBXS0ZvdW5kYXRp
b24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDM3REZB
NkZGMTgxMEJCOTIwMDFGNEE5RiAvKiBXS0ZvdW5kYXRpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQdWJsaWMsICk7IH07IH07CiAJCTM3RTI1RDZFMThGREU1RDYwMDVEM0EwMCAv
KiBBUElGb3JtQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAzN0UyNUQ2RDE4RkRFNUQ2MDA1RDNBMDAgLyogQVBJRm9ybUNsaWVudC5oICovOyB9
OwogCQkzN0Y2MjNCODEyQTU3QjYyMDBFM0ZERjYgLyogV0tGaW5kT3B0aW9ucy5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzdGNjIzQjcxMkE1N0I2MjAw
RTNGREY2IC8qIFdLRmluZE9wdGlvbnMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwotCQkzN0Y5MERFMzEzNzY1NjBFMDA1MUNGNjggLyogSFRUUENvb2tp
ZUFjY2VwdFBvbGljeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRjYzODk1NEYxMzNCRUYzODAwODk0MUQ1IC8qIEhUVFBDb29raWVBY2NlcHRQb2xpY3ku
aCAqLzsgfTsKIAkJMzdGQzE5NDcxODUwRkJGMjAwOENGQTQ3IC8qIFdLQnJvd3NpbmdDb250ZXh0
TG9hZERlbGVnYXRlUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMzdGQzE5NDYxODUwRkJGMjAwOENGQTQ3IC8qIFdLQnJvd3NpbmdDb250ZXh0
TG9hZERlbGVnYXRlUHJpdmF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTM3RkMxOTRCMTg1MTBENkEwMDhDRkE0NyAvKiBXS05TVVJMQXV0aGVu
dGljYXRpb25DaGFsbGVuZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDM3RkMxOTQ5MTg1MTBENkEwMDhDRkE0NyAvKiBXS05TVVJMQXV0aGVudGljYXRp
b25DaGFsbGVuZ2UuaCAqLzsgfTsKIAkJM0Y0MThFRjkxODg3QkQ5NzAwMjc5NUZEIC8qIFZpZGVv
RnVsbHNjcmVlbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gM0Y0MThFRjUxODg3QkQ5NzAwMjc5NUZEIC8qIFZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OwpAQCAtMjExOSw5
ICsyMTE4LDkgQEAKIAkJMDdCOTNGRjUyM0FGMENCODAwMzZGOEVBIC8qIFJlbW90ZU1lZGlhUGxh
eWVyQ29uZmlndXJhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVNZWRpYVBsYXllckNvbmZp
Z3VyYXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDdCQUYzNTYyM0EyQ0Mx
NzAwNDQyNTdFIC8qIFJlbW90ZU1lZGlhUGxheWVyUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVt
b3RlTWVkaWFQbGF5ZXJQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwN0JB
RjM1NzIzQTJDQzE5MDA0NDI1N0UgLyogUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBSZW1vdGVNZWRpYVBsYXllclByb3h5LmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKLQkJMDdFMTlFRjgyM0Q0MDFGMDAwOTRGRkI0IC8qIE1lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IG5hbWUgPSBNZWRpYVBsYXllclByaXZhdGVSZW1vdGVNZXNzYWdlUmVjZWl2ZXIuY3BwOyBw
YXRoID0gTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMDdFMTlFRjkyM0Q0MDFGMDAwOTRGRkI0IC8qIE1lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZU1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
bmFtZSA9IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZU1lc3NhZ2VzLmg7IHBhdGggPSBNZWRpYVBs
YXllclByaXZhdGVSZW1vdGVNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQkwN0UxOUVGQTIzRDQwMUYwMDA5NEZGQjQgLyogTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlTWVz
c2FnZXNSZXBsaWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IE1lZGlhUGxh
eWVyUHJpdmF0ZVJlbW90ZU1lc3NhZ2VzUmVwbGllcy5oOyBwYXRoID0gTWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlTWVzc2FnZXNSZXBsaWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTA3RTE5RUY4MjNENDAxRjAwMDk0RkZCNCAvKiBNZWRpYVBsYXllclByaXZhdGVSZW1vdGVNZXNz
YWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVk
aWFQbGF5ZXJQcml2YXRlUmVtb3RlTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJMDdFMTlFRjkyM0Q0MDFGMDAwOTRGRkI0IC8qIE1lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZU1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZU1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTA3RTE5RUZBMjNENDAxRjAwMDk0RkZCNCAvKiBNZWRpYVBsYXllclByaXZhdGVSZW1v
dGVNZXNzYWdlc1JlcGxpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVk
aWFQbGF5ZXJQcml2YXRlUmVtb3RlTWVzc2FnZXNSZXBsaWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTA4NjdENkE1RkU4NDAzMDdDMDJBQUMwNyAvKiBBcHBLaXQuZnJhbWV3b3Jr
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gd3JhcHBl
ci5mcmFtZXdvcms7IG5hbWUgPSBBcHBLaXQuZnJhbWV3b3JrOyBwYXRoID0gL1N5c3RlbS9MaWJy
YXJ5L0ZyYW1ld29ya3MvQXBwS2l0LmZyYW1ld29yazsgc291cmNlVHJlZSA9ICI8YWJzb2x1dGU+
IjsgfTsKIAkJMDg5QzE2NjdGRTg0MTE1OEMwMkFBQzA3IC8qIGVuICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5w
bGlzdC5zdHJpbmdzOyBuYW1lID0gZW47IHBhdGggPSBlbi5scHJvai9JbmZvUGxpc3Quc3RyaW5n
czsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEU5N0Q3NEMyMDBFOEZGMzAwQkY2NjQz
IC8qIFNhZmVCcm93c2luZ1NQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTYWZlQnJvd3NpbmdTUEkuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTUxMzAsNyArNTEyOSw2IEBACiAJCUY2MTEz
RTI2MTI2Q0UxOUIwMDU3RDBBNyAvKiBXS1VzZXJDb250ZW50VVJMUGF0dGVybi5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXS1VzZXJDb250ZW50VVJMUGF0dGVybi5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY2MTEzRTI3MTI2Q0UxOUIwMDU3RDBB
NyAvKiBXS1VzZXJDb250ZW50VVJMUGF0dGVybi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBXS1VzZXJDb250ZW50VVJMUGF0dGVybi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlGNjM0NDQ1NTEyQTg4NUM4MDAwNjEyRDggLyogQVBJU2VjdXJpdHlPcmlnaW4uaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQVBJU2VjdXJpdHlPcmlnaW4uaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRjYzODk1NEYxMzNCRUYzODAwODk0MUQ1IC8qIEhU
VFBDb29raWVBY2NlcHRQb2xpY3kuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
SFRUUENvb2tpZUFjY2VwdFBvbGljeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlG
NkEwQzEzRjEzMjgxRTZFMDA3MDQzMEYgLyogUmVzb3VyY2VDYWNoZXNUb0NsZWFyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlc291cmNlQ2FjaGVzVG9DbGVhci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNkE5MDgxMTEzM0MxRjNEMDA4MkMzRjQgLyogV2Vi
Q29va2llTWFuYWdlck1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IFdlYkNvb2tpZU1hbmFnZXJNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUY2RDYzMkJBMTMzRDE4MUIwMDc0M0Q3NyAvKiBXZWJDb29raWVNYW5hZ2VyUHJveHlNYWMubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJDb29raWVNYW5hZ2Vy
UHJveHlNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC01Njk3LDcgKzU2OTUs
NiBAQAogCQkJCTFBMTRGOERGMUQ3NEM4MzQwMDZDQkVDNiAvKiBGcmFtZUluZm9EYXRhLmNwcCAq
LywKIAkJCQkxQTE0RjhFMDFENzRDODM0MDA2Q0JFQzYgLyogRnJhbWVJbmZvRGF0YS5oICovLAog
CQkJCTFBQzc1QTFBMUIzMzY4MjcwMDU2NzQ1QiAvKiBIYW5nRGV0ZWN0aW9uRGlzYWJsZXIuaCAq
LywKLQkJCQlGNjM4OTU0RjEzM0JFRjM4MDA4OTQxRDUgLyogSFRUUENvb2tpZUFjY2VwdFBvbGlj
eS5oICovLAogCQkJCUJDQ0Y2QjIzMTJDOTNFN0EwMDhGOUMzNSAvKiBJbWFnZU9wdGlvbnMuaCAq
LywKIAkJCQkxQTkyREMxMjEyRjhCQUI5MDAxN0FGNjUgLyogTGF5ZXJUcmVlQ29udGV4dC5jcHAg
Ki8sCiAJCQkJMUE5MkRDMTAxMkY4QkE0NjAwMTdBRjY1IC8qIExheWVyVHJlZUNvbnRleHQuaCAq
LywKQEAgLTEwMjE4LDcgKzEwMjE1LDYgQEAKIAkJCQk1NzcyRjIwNjIxN0RCRDZBMDA1NkJGMkMg
LyogSGlkU2VydmljZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzEyQ0M5RjIyMTVCMDZGMTAwREU0
MENBIC8qIEhpZ2hQZXJmb3JtYW5jZUdQVU1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTgz
OUEyRjMyMUUyMDY3NDUwMDM5MDU3RSAvKiBIaWdoUGVyZm9ybWFuY2VHcmFwaGljc1VzYWdlU2Ft
cGxlci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMzdGOTBERTMxMzc2NTYwRTAwNTFDRjY4IC8qIEhU
VFBDb29raWVBY2NlcHRQb2xpY3kuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxQzBDOTc0MURERDc2
MDAwMDMyQ0FEMyAvKiBJY29uTG9hZGluZ0RlbGVnYXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1
MUUzNTFDQjE4MEYyQ0NDMDBFNTNCRTkgLyogSURCVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLywK
IAkJCQlCQ0NGNkIyNTEyQzkzRTdBMDA4RjlDMzUgLyogSW1hZ2VPcHRpb25zLmggaW4gSGVhZGVy
cyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdv
cmtQcm9jZXNzQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29y
ay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCmluZGV4IGZkMDBkNzg2NGI1YTUzZmI3NDMw
ZTE2Yjg3MGNhNjJjYjAwYWRkYTQuLjFlNzAzNTRmNmI3MTQxOTYwMmQ5NGIwZjU0MzMxMzJhNjM0
MTE4NzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdv
cmtQcm9jZXNzQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05l
dHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmNwcApAQCAtNTYsNiArNTYsNyBAQAogI2lu
Y2x1ZGUgIldlYlNvY2tldFN0cmVhbS5oIgogI2luY2x1ZGUgIldlYlNvY2tldFN0cmVhbU1lc3Nh
Z2VzLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9DYWNoZWRSZXNvdXJjZS5oPgorI2luY2x1ZGUgPFdl
YkNvcmUvSFRUUENvb2tpZUFjY2VwdFBvbGljeS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTWVtb3J5
Q2FjaGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL01lc3NhZ2VQb3J0Lmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9TaGFyZWRCdWZmZXIuaD4KQEAgLTY4LDggKzY5LDkgQEAKIG5hbWVzcGFjZSBXZWJLaXQg
ewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKLU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6
TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciBjb25u
ZWN0aW9uSWRlbnRpZmllcikKK05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6TmV0d29ya1Byb2Nl
c3NDb25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRp
ZmllciwgSFRUUENvb2tpZUFjY2VwdFBvbGljeSBjb29raWVBY2NlcHRQb2xpY3kpCiAgICAgOiBt
X2Nvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uOjpjcmVhdGVDbGllbnRDb25uZWN0aW9uKGNvbm5l
Y3Rpb25JZGVudGlmaWVyLCAqdGhpcykpCisgICAgLCBtX2Nvb2tpZUFjY2VwdFBvbGljeShjb29r
aWVBY2NlcHRQb2xpY3kpCiB7CiAgICAgbV9jb25uZWN0aW9uLT5vcGVuKCk7CiB9CkBAIC0yMDQs
NyArMjA2LDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVJbnZh
bGlkTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OlMKIAogdm9pZCBOZXR3b3JrUHJvY2Vz
c0Nvbm5lY3Rpb246OndyaXRlQmxvYnNUb1RlbXBvcmFyeUZpbGVzKGNvbnN0IFZlY3RvcjxTdHJp
bmc+JiBibG9iVVJMcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8U3RyaW5nPiYmIGZp
bGVQYXRocyk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAgV2ViUHJvY2Vzczo6c2luZ2xl
dG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmRX
aXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6Oldy
aXRlQmxvYnNUb1RlbXBvcmFyeUZpbGVzKGJsb2JVUkxzKSwgV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlcikpOworICAgIGNvbm5lY3Rpb24oKS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpXcml0ZUJsb2JzVG9UZW1wb3JhcnlGaWxlcyhi
bG9iVVJMcyksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAogdm9pZCBOZXR3b3Jr
UHJvY2Vzc0Nvbm5lY3Rpb246OmRpZEZpbmlzaFBpbmdMb2FkKHVpbnQ2NF90IHBpbmdMb2FkSWRl
bnRpZmllciwgUmVzb3VyY2VFcnJvciYmIGVycm9yLCBSZXNvdXJjZVJlc3BvbnNlJiYgcmVzcG9u
c2UpCkBAIC0yMjIsNiArMjI0LDE2IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpz
ZXRPbkxpbmVTdGF0ZShib29sIGlzT25MaW5lKQogICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigp
LndlYkxvYWRlclN0cmF0ZWd5KCkuc2V0T25MaW5lU3RhdGUoaXNPbkxpbmUpOwogfQogCitib29s
IE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6Y29va2llc0VuYWJsZWQoKQoreworICAgIHJldHVy
biBtX2Nvb2tpZUFjY2VwdFBvbGljeSAhPSBIVFRQQ29va2llQWNjZXB0UG9saWN5OjpOZXZlcjsK
K30KKwordm9pZCBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OmNvb2tpZUFjY2VwdFBvbGljeUNo
YW5nZWQoSFRUUENvb2tpZUFjY2VwdFBvbGljeSBuZXdQb2xpY3kpCit7CisgICAgbV9jb29raWVB
Y2NlcHRQb2xpY3kgPSBuZXdQb2xpY3k7Cit9CisKICNpZiBFTkFCTEUoU0hBUkVBQkxFX1JFU09V
UkNFKQogdm9pZCBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZENhY2hlUmVzb3VyY2UoY29u
c3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBTaGFyZWFibGVSZXNvdXJjZTo6SGFu
ZGxlJiBoYW5kbGUpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0
d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5oCmluZGV4IDJhNDk2YTllNGU0MzM5
ZWIwNTg0YWEyMjY0MjFmNjIwYjEwZGRjZGIuLmRkMTA0MTY3ZjU0MTQ4MDNhNTJhMjI1YTNhZmVj
ZmZjZjk0ZDBjNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3Jr
L05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5oCkBAIC00Myw2ICs0Myw3IEBAIGNs
YXNzIFJlc291cmNlUmVxdWVzdDsKIGNsYXNzIFJlc291cmNlUmVzcG9uc2U7CiBzdHJ1Y3QgTWVz
c2FnZVBvcnRJZGVudGlmaWVyOwogc3RydWN0IE1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzOworZW51
bSBjbGFzcyBIVFRQQ29va2llQWNjZXB0UG9saWN5IDogdWludDhfdDsKIH0KIAogbmFtZXNwYWNl
IFdlYktpdCB7CkBAIC01NCw5ICs1NSw5IEBAIHR5cGVkZWYgdWludDY0X3QgUmVzb3VyY2VMb2Fk
SWRlbnRpZmllcjsKIAogY2xhc3MgTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uIDogcHVibGljIFJl
ZkNvdW50ZWQ8TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uPiwgSVBDOjpDb25uZWN0aW9uOjpDbGll
bnQgewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uPiBj
cmVhdGUoSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyKQor
ICAgIHN0YXRpYyBSZWY8TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uPiBjcmVhdGUoSVBDOjpDb25u
ZWN0aW9uOjpJZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpIVFRQQ29v
a2llQWNjZXB0UG9saWN5IGh0dHBDb29raWVBY2NlcHRQb2xpY3kpCiAgICAgewotICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oY29ubmVjdGlvbklk
ZW50aWZpZXIpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTmV0d29ya1Byb2Nlc3ND
b25uZWN0aW9uKGNvbm5lY3Rpb25JZGVudGlmaWVyLCBodHRwQ29va2llQWNjZXB0UG9saWN5KSk7
CiAgICAgfQogICAgIH5OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKTsKICAgICAKQEAgLTgwLDgg
KzgxLDEwIEBAIHB1YmxpYzoKICAgICBPcHRpb25hbDxhdWRpdF90b2tlbl90PiBuZXR3b3JrUHJv
Y2Vzc0F1ZGl0VG9rZW4oKSBjb25zdCB7IHJldHVybiBtX25ldHdvcmtQcm9jZXNzQXVkaXRUb2tl
bjsgfQogI2VuZGlmCiAKKyAgICBib29sIGNvb2tpZXNFbmFibGVkKCk7CisKIHByaXZhdGU6Ci0g
ICAgTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllcik7
CisgICAgTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmll
ciwgV2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBvbGljeSk7CiAKICAgICAvLyBJUEM6OkNvbm5l
Y3Rpb246OkNsaWVudAogICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9u
JiwgSVBDOjpEZWNvZGVyJikgb3ZlcnJpZGU7CkBAIC05Miw2ICs5NSw3IEBAIHByaXZhdGU6CiAg
ICAgdm9pZCBkaWRGaW5pc2hQaW5nTG9hZCh1aW50NjRfdCBwaW5nTG9hZElkZW50aWZpZXIsIFdl
YkNvcmU6OlJlc291cmNlRXJyb3ImJiwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmKTsKICAg
ICB2b2lkIGRpZEZpbmlzaFByZWNvbm5lY3Rpb24odWludDY0X3QgcHJlY29ubmVjdGlvbklkZW50
aWZpZXIsIFdlYkNvcmU6OlJlc291cmNlRXJyb3ImJik7CiAgICAgdm9pZCBzZXRPbkxpbmVTdGF0
ZShib29sIGlzT25MaW5lKTsKKyAgICB2b2lkIGNvb2tpZUFjY2VwdFBvbGljeUNoYW5nZWQoV2Vi
Q29yZTo6SFRUUENvb2tpZUFjY2VwdFBvbGljeSk7CiAKICAgICB2b2lkIGNoZWNrUHJvY2Vzc0xv
Y2FsUG9ydEZvckFjdGl2aXR5KGNvbnN0IFdlYkNvcmU6Ok1lc3NhZ2VQb3J0SWRlbnRpZmllciYs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6TWVzc2FnZVBvcnRDaGFubmVsUHJvdmlk
ZXI6Okhhc0FjdGl2aXR5KT4mJik7CiAgICAgdm9pZCBtZXNzYWdlc0F2YWlsYWJsZUZvclBvcnQo
Y29uc3QgV2ViQ29yZTo6TWVzc2FnZVBvcnRJZGVudGlmaWVyJik7CkBAIC0xMTQsNiArMTE4LDcg
QEAgcHJpdmF0ZToKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCiAgICAgUmVmUHRyPFdlYlNX
Q2xpZW50Q29ubmVjdGlvbj4gbV9zd0Nvbm5lY3Rpb247CiAjZW5kaWYKKyAgICBXZWJDb3JlOjpI
VFRQQ29va2llQWNjZXB0UG9saWN5IG1fY29va2llQWNjZXB0UG9saWN5OwogfTsKIAogfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0
d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4K
aW5kZXggNGQ2MzRjNTdiOWM3OTk1MDQ4YTA4MGYyN2YzZTMyZTUzMDUyNmFlYi4uMmFhNjg4NmU1
N2E1OTljYmMxN2MzNWY2Yjc0ZTk5ZDJhYjNhODllNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmlu
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29u
bmVjdGlvbi5tZXNzYWdlcy5pbgpAQCAtMjksNiArMjksNyBAQCBtZXNzYWdlcyAtPiBOZXR3b3Jr
UHJvY2Vzc0Nvbm5lY3Rpb24gTGVnYWN5UmVjZWl2ZXIgewogICAgIERpZEZpbmlzaFBpbmdMb2Fk
KHVpbnQ2NF90IHBpbmdMb2FkSWRlbnRpZmllciwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBlcnJv
ciwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSByZXNwb25zZSkKICAgICBEaWRGaW5pc2hQcmVj
b25uZWN0aW9uKHVpbnQ2NF90IHByZWNvbm5lY3Rpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNv
dXJjZUVycm9yIGVycm9yKQogICAgIFNldE9uTGluZVN0YXRlKGJvb2wgaXNPbkxpbmUpOworICAg
IENvb2tpZUFjY2VwdFBvbGljeUNoYW5nZWQoZW51bTp1aW50OF90IFdlYkNvcmU6OkhUVFBDb29r
aWVBY2NlcHRQb2xpY3kgcG9saWN5KTsKIAogICAgIENoZWNrUHJvY2Vzc0xvY2FsUG9ydEZvckFj
dGl2aXR5KHN0cnVjdCBXZWJDb3JlOjpNZXNzYWdlUG9ydElkZW50aWZpZXIgcG9ydCkgLT4gKFdl
YkNvcmU6Ok1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyOjpIYXNBY3Rpdml0eSBoYXNBY3Rpdml0
eSkgQXN5bmMKICAgICBNZXNzYWdlc0F2YWlsYWJsZUZvclBvcnQoc3RydWN0IFdlYkNvcmU6Ok1l
c3NhZ2VQb3J0SWRlbnRpZmllciBwb3J0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uSW5mby5oIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uSW5mby5oCmlu
ZGV4IDVjMDU2OGM0YWExZjljZGZkODhjMzFhM2UzZmQ3YTRjZGJjODk0YTQuLjM2N2I4YTM4MDll
MzdiMTViZGJlMGI0NmE0MTg1Njc3N2ZiYWYyZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbkluZm8uaAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25J
bmZvLmgKQEAgLTI1LDEwICsyNSwxMyBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgPFdl
YkNvcmUvSFRUUENvb2tpZUFjY2VwdFBvbGljeS5oPgorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAog
c3RydWN0IE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbkluZm8gewogICAgIElQQzo6QXR0YWNobWVu
dCBjb25uZWN0aW9uOworICAgIFdlYkNvcmU6OkhUVFBDb29raWVBY2NlcHRQb2xpY3kgY29va2ll
QWNjZXB0UG9saWN5OwogI2lmIEhBVkUoQVVESVRfVE9LRU4pCiAgICAgT3B0aW9uYWw8YXVkaXRf
dG9rZW5fdD4gYXVkaXRUb2tlbjsKICNlbmRpZgpAQCAtNjEsNiArNjQsNyBAQCBzdHJ1Y3QgTmV0
d29ya1Byb2Nlc3NDb25uZWN0aW9uSW5mbyB7CiAgICAgdm9pZCBlbmNvZGUoSVBDOjpFbmNvZGVy
JiBlbmNvZGVyKSBjb25zdAogICAgIHsKICAgICAgICAgZW5jb2RlciA8PCBjb25uZWN0aW9uOwor
ICAgICAgICBlbmNvZGVyIDw8IGNvb2tpZUFjY2VwdFBvbGljeTsKICNpZiBIQVZFKEFVRElUX1RP
S0VOKQogICAgICAgICBlbmNvZGVyIDw8IGF1ZGl0VG9rZW47CiAjZW5kaWYKQEAgLTcwLDYgKzc0
LDggQEAgc3RydWN0IE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbkluZm8gewogICAgIHsKICAgICAg
ICAgaWYgKCFkZWNvZGVyLmRlY29kZShpbmZvLmNvbm5lY3Rpb24pKQogICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlRW51bShpbmZvLmNvb2tpZUFj
Y2VwdFBvbGljeSkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAjaWYgSEFWRShBVURJVF9U
T0tFTikKICAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShpbmZvLmF1ZGl0VG9rZW4pKQogICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViQ29va2llSmFyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYkNvb2tpZUphci5jcHAKaW5kZXggNTg4MGJiZmM0ZDk4NmMxZTUwMTg2OWRlOTU0
ZDZhNTc5MTg3M2NiNy4uMzI1ODMwNWM3ODlkNzc1ZmUxNWMxYzA4MjhjMzZlOWUyZjJhODYwOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViQ29va2llSmFy
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJDb29raWVKYXIu
Y3BwCkBAIC0xMjksMTIgKzEyOSwxOSBAQCB2b2lkIFdlYkNvb2tpZUphcjo6c2V0Q29va2llcyhX
ZWJDb3JlOjpEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFVSTCYgdXJsLCBjb25zdAogICAgIFdl
YlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLmNv
bm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6
U2V0Q29va2llc0Zyb21ET00oZG9jdW1lbnQuZmlyc3RQYXJ0eUZvckNvb2tpZXMoKSwgc2FtZVNp
dGVJbmZvKGRvY3VtZW50KSwgdXJsLCBmcmFtZUlELCBwYWdlSUQsIHNob3VsZEFza0lUUEluTmV0
d29ya1Byb2Nlc3MsIGNvb2tpZVN0cmluZyksIDApOwogfQogCi1ib29sIFdlYkNvb2tpZUphcjo6
Y29va2llc0VuYWJsZWQoY29uc3QgV2ViQ29yZTo6RG9jdW1lbnQmIGRvY3VtZW50KSBjb25zdAor
Ym9vbCBXZWJDb29raWVKYXI6OmNvb2tpZXNFbmFibGVkKGNvbnN0IERvY3VtZW50JiBkb2N1bWVu
dCkgY29uc3QKIHsKLSAgICBib29sIHJlc3VsdCA9IGZhbHNlOwotICAgIGlmICghV2ViUHJvY2Vz
czo6c2luZ2xldG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlv
bigpLnNlbmRTeW5jKE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Q29v
a2llc0VuYWJsZWQoKSwgTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpD
b29raWVzRW5hYmxlZDo6UmVwbHkocmVzdWx0KSwgMCkpCisgICAgYXV0byogd2ViRnJhbWUgPSBk
b2N1bWVudC5mcmFtZSgpID8gV2ViRnJhbWU6OmZyb21Db3JlRnJhbWUoKmRvY3VtZW50LmZyYW1l
KCkpIDogbnVsbHB0cjsKKyAgICBpZiAoIXdlYkZyYW1lIHx8ICF3ZWJGcmFtZS0+cGFnZSgpKQog
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgcmV0dXJuIHJlc3VsdDsKKworI2lmIEVOQUJMRShS
RVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisgICAgU2hvdWxkQXNrSVRQIGR1bW15OworICAgIGlm
IChzaG91bGRCbG9ja0Nvb2tpZXMod2ViRnJhbWUsIGRvY3VtZW50LmZpcnN0UGFydHlGb3JDb29r
aWVzKCksIGRvY3VtZW50LmNvb2tpZVVSTCgpLCBkdW1teSkpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKyNlbmRpZgorCisgICAgcmV0dXJuIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZU5l
dHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLmNvb2tpZXNFbmFibGVkKCk7CiB9CiAKIHN0ZDo6cGFp
cjxTdHJpbmcsIFdlYkNvcmU6OlNlY3VyZUNvb2tpZXNBY2Nlc3NlZD4gV2ViQ29va2llSmFyOjpj
b29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0
IFdlYkNvcmU6OlNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVybCwgT3B0
aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4g
cGFnZUlELCBXZWJDb3JlOjpJbmNsdWRlU2VjdXJlQ29va2llcyBpbmNsdWRlU2VjdXJlQ29va2ll
cykgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNz
LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAppbmRleCBjYTQx
OGNkNzAyZjhlY2QzNmQyMTFlZTZkZGJhYTZhZjc5ZjBlMjVmLi42NWM5YmM0Y2E3NmFjOTUwZGQ5
NjgyZTEyMjRkY2I4ZjZlMGU0OGZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nl
c3MuY3BwCkBAIC0xMTkxLDcgKzExOTEsNyBAQCBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24mIFdl
YlByb2Nlc3M6OmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpCiAgICAgICAgIGlmICgh
SVBDOjpDb25uZWN0aW9uOjppZGVudGlmaWVySXNWYWxpZChjb25uZWN0aW9uSW5mby5pZGVudGlm
aWVyKCkpKQogICAgICAgICAgICAgQ1JBU0goKTsKIAotICAgICAgICBtX25ldHdvcmtQcm9jZXNz
Q29ubmVjdGlvbiA9IE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6Y3JlYXRlKGNvbm5lY3Rpb25J
bmZvLnJlbGVhc2VJZGVudGlmaWVyKCkpOworICAgICAgICBtX25ldHdvcmtQcm9jZXNzQ29ubmVj
dGlvbiA9IE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6Y3JlYXRlKGNvbm5lY3Rpb25JbmZvLnJl
bGVhc2VJZGVudGlmaWVyKCksIGNvbm5lY3Rpb25JbmZvLmNvb2tpZUFjY2VwdFBvbGljeSk7CiAj
aWYgSEFWRShBVURJVF9UT0tFTikKICAgICAgICAgbV9uZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24t
PnNldE5ldHdvcmtQcm9jZXNzQXVkaXRUb2tlbihXVEZNb3ZlKGNvbm5lY3Rpb25JbmZvLmF1ZGl0
VG9rZW4pKTsKICNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>388358</attachid>
            <date>2020-01-21 15:01:52 -0800</date>
            <delta_ts>2020-01-21 15:13:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-206450-20200121150151.patch</filename>
            <type>text/plain</type>
            <size>82887</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0ODgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGJlNzFhNWRjNDQxN2Rm
OGFlM2VjNzg3MjNiMmYzZDI5NjQxYTdhMC4uNGNjYzNlZWRjN2IxMTU5ZTVjNmMyMTQzZmEyNGVh
ZWE4YmYyMzljMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIwLTAxLTIxICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgRnJlcXVlbnQgTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3M6OkNvb2tpZXNFbmFibGVkIHN5bmMgSVBDIHdoZW4gYnJvd3Np
bmcgcmVkZGl0LmNvbQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjA2NDUwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgTW92ZSBIVFRQQ29va2llQWNjZXB0UG9saWN5LmggaGVhZGVyIGZyb20gV2ViS2l0IHRv
IFdlYkNvcmUgc28gdGhhdCB0aGUgSFRUUENvb2tpZUFjY2VwdFBvbGljeSBlbnVtCisgICAgICAg
IGNhbiBiZSB1c2VkIGluIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbi4gUmVwbGFjZSBOZXR3b3JrU3Rv
cmFnZVNlc3Npb246OmNvb2tpZXNFbmFibGVkKCkgd2l0aCBhIG1vcmUKKyAgICAgICAgZGV0YWls
ZWQgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpjb29raWVBY2NlcHRQb2xpY3koKSBtZXRob2QuCisK
KyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICog
bG9hZGVyL0Nvb2tpZUphci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb29raWVKYXI6OmNvb2tp
ZXNFbmFibGVkIGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL0hUVFBDb29raWVB
Y2NlcHRQb2xpY3kuaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL0hUVFBDb29r
aWVBY2NlcHRQb2xpY3kuaC4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9y
YWdlU2Vzc2lvbi5jcHA6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFn
ZVNlc3Npb24uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2NmL05ldHdvcmtTdG9yYWdl
U2Vzc2lvbkNGTmV0V2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vz
c2lvbjo6Y29va2llQWNjZXB0UG9saWN5IGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3
b3JrL2NvY29hL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkNvY29hLm1tOgorICAgICAgICAoV2ViQ29y
ZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpjb29raWVBY2NlcHRQb2xpY3kgY29uc3QpOgorICAg
ICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY3VybC9OZXR3b3JrU3RvcmFnZVNlc3Npb25DdXJsLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y29va2llQWNjZXB0
UG9saWN5IGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvTmV0d29ya1N0
b3JhZ2VTZXNzaW9uU291cC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNl
c3Npb246OmNvb2tpZUFjY2VwdFBvbGljeSBjb25zdCk6CisKIDIwMjAtMDEtMjEgIFl1c3VrZSBT
dXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAgICAgICBbV1RGXSBBdG9tU3RyaW5nVGFi
bGUgc2hvdWxkIGJlIHNtYWxsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGJmNGZlNThlZDZjM2FmZThhYzZmODA0MWU3
ZjRlYzJmNTJjYzA5ZmMuLjhlMjc0ZTRjMDdiZjk1ODAxMDg2ZjJiOGIwYTU4NzllYzA3NWU3YmEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsNzcgQEAKKzIwMjAtMDEtMjEgIENocmlzIER1bWV6ICA8Y2R1
bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBGcmVxdWVudCBOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzczo6Q29va2llc0VuYWJsZWQgc3luYyBJUEMgd2hlbiBicm93c2luZyByZWRkaXQuY29t
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDY0NTAK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGcmVxdWVu
dCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Q29va2llc0VuYWJsZWQgc3luYyBJUEMg
d2hlbiBicm93c2luZyByZWRkaXQuY29tLiBUaGlzCisgICAgICAgIGhhcHBlbnMgZXZlcnkgdGlt
ZSB0aGUgcGFnZSBzY3JpcHQgY2FsbHMgbmF2aWdhdG9yLmNvb2tpZUVuYWJsZWQuIFRvIGFkZHJl
c3MgdGhlIGlzc3VlLCB3ZSBub3cKKyAgICAgICAgc3RvcmUgdGhlICJjb29raWUgYWNjZXB0IHBv
bGljeSIgb24gdGhlIFdlYkNvbnRlbnQgcHJvY2VzcyBzaWRlLiBUaGlzIGFsbG93cyB1cyB0byBr
bm93CisgICAgICAgIHN5bmNocm9ub3VzbHkgb24gdGhlIFdlYkNvbnRlbnQgcHJvY2VzcyBpZiBj
b29raWVzIGFyZSBlbmFibGVkIG9yIG5vdCBhbmQgd2l0aG91dCBhbnkgSVBDIHRvCisgICAgICAg
IHRoZSBuZXR3b3JrIHByb2Nlc3MuIFRvIGFjaGlldmUgdGhpcywgSSBhZGRlZCBhIG5ldyBjb29r
aWVBY2NlcHRQb2xpY3kgbWVtYmVyIHRvCisgICAgICAgIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlv
bkluZm8gc28gdGhhdCB0aGUgV2ViQ29udGVudCBwcm9jZXNzIGlzIGF3YXJlIG9mIHRoZSBpbml0
aWFsIHBvbGljeSB3aGVuCisgICAgICAgIGl0IGNvbm5lY3RzIHRvIHRoZSBuZXR3b3JrIHByb2Nl
c3MuIFRoZSBwb2xpY3kgb24gdGhlIFdlYkNvbnRlbnQgcHJvY2VzcyBzaWRlIGlzIHRoZW4ga2Vw
dCB1cAorICAgICAgICB0byBkYXRlIHZpYSBJUENzIGZyb20gdGhlIG5ldHdvcmsgcHJvY2VzcyB0
byB0aGUgV2ViQ29udGVudCBwcm9jZXNzZXMgd2hlbmV2ZXIgdGhlIGNvb2tpZQorICAgICAgICBh
Y2NlcHQgcG9saWN5IGNoYW5nZXMuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9Db29raWVz
L1dlYkNvb2tpZU1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDb29raWVNYW5hZ2Vy
OjpzZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29va2ll
TWFuYWdlcjo6Z2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeSk6CisgICAgICAgICogTmV0d29ya1By
b2Nlc3MvQ29va2llcy9XZWJDb29raWVNYW5hZ2VyLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nl
c3MvQ29va2llcy9XZWJDb29raWVNYW5hZ2VyLm1lc3NhZ2VzLmluOgorICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL0Nvb2tpZXMvY3VybC9XZWJDb29raWVNYW5hZ2VyQ3VybC5jcHA6CisgICAgICAg
ICogTmV0d29ya1Byb2Nlc3MvQ29va2llcy9tYWMvV2ViQ29va2llTWFuYWdlck1hYy5tbToKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9Db29raWVzL3NvdXAvV2ViQ29va2llTWFuYWdlclNvdXAu
Y3BwOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6
OmNvb2tpZUFjY2VwdFBvbGljeUNoYW5nZWQpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
UHJvY2Vzczo6Y3JlYXRlTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MpOgorICAgICAgICAo
V2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6Y29va2llQWNjZXB0UG9saWN5Q2hhbmdlZCk6CisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaDoKKyAgICAgICAgKiBOZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oOgorICAgICAgICAqIFNoYXJl
ZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9BUElIVFRQQ29va2llU3RvcmUuY3BwOgorICAgICAgICAoQVBJOjpIVFRQQ29va2llU3RvcmU6
OnNldEhUVFBDb29raWVBY2NlcHRQb2xpY3kpOgorICAgICAgICAoQVBJOjpIVFRQQ29va2llU3Rv
cmU6OnNldEhUVFBDb29raWVBY2NlcHRQb2xpY3lJbkRlZmF1bHRVSVByb2Nlc3NDb29raWVTdG9y
ZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElIVFRQQ29va2llU3RvcmUuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0Lmg6CisgICAgICAgIChXZWJLaXQ6OnRvSFRU
UENvb2tpZUFjY2VwdFBvbGljeSk6CisgICAgICAgIChXZWJLaXQ6OnRvQVBJKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL0NvY29hL0FQSUhUVFBDb29raWVTdG9yZUNvY29hLm1tOgorICAgICAg
ICAoQVBJOjp0b05TSFRUUENvb2tpZUFjY2VwdFBvbGljeSk6CisgICAgICAgIChBUEk6OkhUVFBD
b29raWVTdG9yZTo6c2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeUluRGVmYXVsdFVJUHJvY2Vzc0Nv
b2tpZVN0b3JlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLSFRUUENvb2tpZVN0
b3JlLm1tOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5tbToK
KyAgICAgICAgKHRvSFRUUENvb2tpZUFjY2VwdFBvbGljeSk6CisgICAgICAgICogVUlQcm9jZXNz
L05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtQcm9jZXNzUHJveHk6Om9wZW5OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24pOgorICAgICAgICAq
IFVJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Bvb2wuaDoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0
aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpOZXR3
b3JrUHJvY2Vzc0Nvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc0Nv
bm5lY3Rpb246OndyaXRlQmxvYnNUb1RlbXBvcmFyeUZpbGVzKToKKyAgICAgICAgKFdlYktpdDo6
TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpjb29raWVzRW5hYmxlZCk6CisgICAgICAgIChXZWJL
aXQ6Ok5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6Y29va2llQWNjZXB0UG9saWN5Q2hhbmdlZCk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5o
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OmNyZWF0ZSk6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5tZXNz
YWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25u
ZWN0aW9uSW5mby5oOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25J
bmZvOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc0Nvbm5l
Y3Rpb25JbmZvOjpkZWNvZGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJDb29r
aWVKYXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDb29raWVKYXI6OmNvb2tpZXNFbmFibGVk
IGNvbnN0KToKKyAgICAgICAgLSBSZXR1cm4gZmFsc2UgZWFybHkgaWYgdGhlIGRvY3VtZW50IGhh
cyBubyBmcmFtZSAvIHBhZ2UgKGNvb2tpZS1hdmVyc2UgYXMgcGVyIHNwZWMpCisgICAgICAgIC0g
UmV0dXJuIGZhbHNlIGVhcmx5IGlmIElUUCBpcyBlbmFibGVkIGFuZCBpdCBpcyBhIHRoaXJkLXBh
cnR5IGlmcmFtZSB3aXRob3V0IHN0b3JhZ2UKKyAgICAgICAgICBhY2Nlc3MuIFRoaXMgYnlwYXNz
ZXMgdGhlIHN5bmMgSVBDIGNhbGwgY29tcGxldGVseSBmb3Igc3VjaCBpZnJhbWVzLgorCisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJv
Y2Vzczo6ZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKToKKwogMjAyMC0wMS0yMSAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFttYWNPU10gQWRkIG1hbmFn
ZWQgcHJlZmVyZW5jZSB0byBhbGxvdyBzeW5jaHJvbm91cyBYSFIgZHVyaW5nIHBhZ2UgZGlzbWlz
c2FsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291cmNlL1dl
YkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCBiYjg3ODA2MTgzNzQxZjk2MjY4Mzg2OGVmYzY4OTEw
MmJjNGY0YTJkLi45ZjVkMmM3MjFjMDUxMTUwNDdjODJhODQ0ZmQxZDI5OWU3ZmZiMDNlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0hlYWRlcnMuY21ha2UKQEAgLTEyMjIsNiArMTIyMiw3IEBAIHNldChXZWJDb3JlX1BSSVZBVEVf
RlJBTUVXT1JLX0hFQURFUlMKICAgICBwbGF0Zm9ybS9uZXR3b3JrL0ROUy5oCiAgICAgcGxhdGZv
cm0vbmV0d29yay9ETlNSZXNvbHZlUXVldWUuaAogICAgIHBsYXRmb3JtL25ldHdvcmsvRm9ybURh
dGEuaAorICAgIHBsYXRmb3JtL25ldHdvcmsvSFRUUENvb2tpZUFjY2VwdFBvbGljeS5oCiAgICAg
cGxhdGZvcm0vbmV0d29yay9IVFRQSGVhZGVyTWFwLmgKICAgICBwbGF0Zm9ybS9uZXR3b3JrL0hU
VFBQYXJzZXJzLmgKICAgICBwbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtMb2FkSW5mb3JtYXRpb24u
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CmluZGV4IDlhNzJjYjEzYWUyZTc5YmU2MDk4YzkzMzc2NGM3NGYwMjFlNWM5OGUuLjljYzQ4M2E1
OTZlODY0YTQ0YmY4NTAyNGIzMDFhODMxZGFlNmJkZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEyNTIsNiArMTI1Miw3IEBA
CiAJCTQ2Qjk1MTlBMjA3RDYzNTQwMEE3RDJERCAvKiBSZW1vdGVGcmFtZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDZCOTUxOTIyMDdENjMyRTAwQTdE
MkREIC8qIFJlbW90ZUZyYW1lLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJNDZCOTVCRjUyMjMxQ0ZENjAwNTNBNTA0IC8qIERldmljZU9yaWVudGF0
aW9uQW5kTW90aW9uQWNjZXNzQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNDZCOTVCRjQyMjMxQ0ZCODAwNTNBNTA0IC8qIERldmljZU9y
aWVudGF0aW9uQW5kTW90aW9uQWNjZXNzQ29udHJvbGxlci5oICovOyB9OwogCQk0NkJDQkJDMjIw
ODUwMDhGMDA3MTA2MzggLyogSlNSZW1vdGVET01XaW5kb3dCYXNlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NkJDQkJDMDIwODUwMDdGMDA3MTA2Mzgg
LyogSlNSZW1vdGVET01XaW5kb3dCYXNlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKKwkJNDZDMDk2MjEyM0Q3OERENjAwNjU3QzA5IC8qIEhUVFBDb29r
aWVBY2NlcHRQb2xpY3kuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDQ2QzA5NjIwMjNENzhERDYwMDY1N0MwOSAvKiBIVFRQQ29va2llQWNjZXB0UG9saWN5
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDZD
Mzc2NjIyMDg1MTc3RDAwQzczODI5IC8qIEpTUmVtb3RlRE9NV2luZG93LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NkMzNzY2MTIwODUxNzZEMDBDNzM4
MjkgLyogSlNSZW1vdGVET01XaW5kb3cuaCAqLzsgfTsKIAkJNDZDNjk2Q0IxRTcyMDVGNzAwNTk3
OTM3IC8qIENQVU1vbml0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDQ2QzY5NkM5MUU3MjA1RTQwMDU5NzkzNyAvKiBDUFVNb25pdG9yLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDZDNjk2Q0MxRTcy
MDVGQzAwNTk3OTM3IC8qIENQVU1vbml0b3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNDZDNjk2Q0ExRTcyMDVFNDAwNTk3OTM3IC8qIENQVU1vbml0
b3IuY3BwICovOyB9OwpAQCAtNzc4Myw2ICs3Nzg0LDcgQEAKIAkJNDZCQ0JCQzAyMDg1MDA3RjAw
NzEwNjM4IC8qIEpTUmVtb3RlRE9NV2luZG93QmFzZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBKU1JlbW90ZURPTVdpbmRvd0Jhc2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNDZCQ0JCQzEyMDg1MDA4MDAwNzEwNjM4IC8qIEpTUmVtb3RlRE9NV2luZG93QmFz
ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1JlbW90ZURPTVdp
bmRvd0Jhc2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NkJDQkJDMzIwODUw
MEE3MDA3MTA2MzggLyogUmVtb3RlRE9NV2luZG93LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGgg
PSBSZW1vdGVET01XaW5kb3cuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0NkMw
OTYyMDIzRDc4REQ2MDA2NTdDMDkgLyogSFRUUENvb2tpZUFjY2VwdFBvbGljeS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBIVFRQQ29va2llQWNjZXB0UG9saWN5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTQ2QzM3NjVGMjA4NTE3NkMwMEM3MzgyOSAvKiBKU1JlbW90ZURPTVdpbmRvdy5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1JlbW90ZURPTVdpbmRvdy5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2QzM3NjYxMjA4NTE3NkQwMEM3Mzgy
OSAvKiBKU1JlbW90ZURPTVdpbmRvdy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBKU1JlbW90ZURPTVdpbmRvdy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NkM2
OTZDOTFFNzIwNUU0MDA1OTc5MzcgLyogQ1BVTW9uaXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBDUFVNb25pdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0yMDQ2MSw2ICsyMDQ2Myw3IEBACiAJCQkJNTE0Qzc2NUIwQ0U5MjNBMTAwN0VGM0NEIC8qIEZv
cm1EYXRhLmggKi8sCiAJCQkJMDg1QjkyQjgwRUZERTczRDAwRTYxMjNDIC8qIEZvcm1EYXRhQnVp
bGRlci5jcHAgKi8sCiAJCQkJMDg1QjkyQjkwRUZERTczRDAwRTYxMjNDIC8qIEZvcm1EYXRhQnVp
bGRlci5oICovLAorCQkJCTQ2QzA5NjIwMjNENzhERDYwMDY1N0MwOSAvKiBIVFRQQ29va2llQWNj
ZXB0UG9saWN5LmggKi8sCiAJCQkJMEI4QzU2RDMwRjI4NjI3RjAwMDUwMkUxIC8qIEhUVFBIZWFk
ZXJNYXAuY3BwICovLAogCQkJCTUxNEM3NjVDMENFOTIzQTEwMDdFRjNDRCAvKiBIVFRQSGVhZGVy
TWFwLmggKi8sCiAJCQkJMUFDOTAwQkYxOTQzQUYzRDAwODYyNUI1IC8qIEhUVFBIZWFkZXJOYW1l
cy5pbiAqLywKQEAgLTMwMjc4LDYgKzMwMjgxLDcgQEAKIAkJCQlFNDQ2MTNBQjBDRDYzMzEwMDBG
QURBNzUgLyogSFRNTFZpZGVvRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUQyRjhFMDUy
MzQ0NzUxRDAwOTkzQjY4IC8qIEhUTUxWaWRlb0VsZW1lbnRQaWN0dXJlSW5QaWN0dXJlLmggaW4g
SGVhZGVycyAqLywKIAkJCQk4MzlBQUZFRDFBMEMwQzhEMDA2MDVGOTkgLyogSFRNTFdCUkVsZW1l
bnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTQ2QzA5NjIxMjNENzhERDYwMDY1N0MwOSAvKiBIVFRQ
Q29va2llQWNjZXB0UG9saWN5LmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0ExREVDNjFGNzFGMUM3
MDBFNzFCRDMgLyogSFRUUEhlYWRlckZpZWxkLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTRDNzY3
MTBDRTkyM0ExMDA3RUYzQ0QgLyogSFRUUEhlYWRlck1hcC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MUFCNUVCRDIxOTRBNTBGMzAwNTlBQzcwIC8qIEhUVFBIZWFkZXJOYW1lcy5oIGluIEhlYWRlcnMg
Ki8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ29va2llSmFyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9Db29raWVKYXIuY3BwCmluZGV4IDIzOTA2NjhkZjgzMTEzZmRh
MTczMDM4MGMyNDkxMjA2YmQzODkwNWMuLmEwN2EzMDJhNDIzOTE0MWJmOTQ3NWRmNGY1ZWM1ZGM2
OTg1MGQzMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Db29raWVKYXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Db29raWVKYXIuY3BwCkBAIC0zMiw2ICszMiw3
IEBACiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgogI2luY2x1
ZGUgIkZyYW1lTG9hZGVyQ2xpZW50LmgiCisjaW5jbHVkZSAiSFRUUENvb2tpZUFjY2VwdFBvbGlj
eS5oIgogI2luY2x1ZGUgIk5ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oIgogI2luY2x1ZGUgIk5ldHdv
cmtpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJhdGVnaWVzLmgiCkBAIC0xMjIs
NyArMTIzLDcgQEAgdm9pZCBDb29raWVKYXI6OnNldENvb2tpZXMoRG9jdW1lbnQmIGRvY3VtZW50
LCBjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBjb28KIGJvb2wgQ29va2llSmFyOjpjb29r
aWVzRW5hYmxlZChjb25zdCBEb2N1bWVudCYpIGNvbnN0CiB7CiAgICAgaWYgKGF1dG8qIHNlc3Np
b24gPSBtX3N0b3JhZ2VTZXNzaW9uUHJvdmlkZXItPnN0b3JhZ2VTZXNzaW9uKCkpCi0gICAgICAg
IHJldHVybiBzZXNzaW9uLT5jb29raWVzRW5hYmxlZCgpOworICAgICAgICByZXR1cm4gc2Vzc2lv
bi0+Y29va2llQWNjZXB0UG9saWN5KCkgIT0gSFRUUENvb2tpZUFjY2VwdFBvbGljeTo6TmV2ZXI7
CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0hUVFBDb29raWVBY2NlcHRQb2xp
Y3kuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvSFRUUENvb2tpZUFjY2VwdFBv
bGljeS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjRlNjNmYjM1ZDQwZjdiMmJjY2E1OWY4NmNhYWFmYmYyNjY1YzJi
NjQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0hU
VFBDb29raWVBY2NlcHRQb2xpY3kuaApAQCAtMCwwICsxLDUxIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDExLTIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAor
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitlbnVtIGNsYXNzIEhUVFBDb29raWVBY2NlcHRQb2xpY3kgOiB1aW50
OF90IHsKKyAgICBBbHdheXNBY2NlcHQgPSAwLAorICAgIE5ldmVyID0gMSwKKyAgICBPbmx5RnJv
bU1haW5Eb2N1bWVudERvbWFpbiA9IDIsCisgICAgRXhjbHVzaXZlbHlGcm9tTWFpbkRvY3VtZW50
RG9tYWluID0gMywKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCituYW1lc3BhY2UgV1RG
IHsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpIVFRQQ29va2llQWNj
ZXB0UG9saWN5PiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAgICAgICAgV2Vi
Q29yZTo6SFRUUENvb2tpZUFjY2VwdFBvbGljeSwKKyAgICAgICAgV2ViQ29yZTo6SFRUUENvb2tp
ZUFjY2VwdFBvbGljeTo6QWx3YXlzQWNjZXB0LAorICAgICAgICBXZWJDb3JlOjpIVFRQQ29va2ll
QWNjZXB0UG9saWN5OjpOZXZlciwKKyAgICAgICAgV2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBv
bGljeTo6T25seUZyb21NYWluRG9jdW1lbnREb21haW4sCisgICAgICAgIFdlYkNvcmU6OkhUVFBD
b29raWVBY2NlcHRQb2xpY3k6OkV4Y2x1c2l2ZWx5RnJvbU1haW5Eb2N1bWVudERvbWFpbgorICAg
ID47Cit9OworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5jcHAKaW5kZXggNTE1ZGJmMTk5ZjcxNWNiMGQ0M2Yz
NGZkNTNjMzIzNjkxODFjOTNlNS4uMjk5NDI3NTYyNThlOTI0M2MzYjBhMTAwYjFhM2Y2ZjcyYTg0
NzU4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3Jr
U3RvcmFnZVNlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
TmV0d29ya1N0b3JhZ2VTZXNzaW9uLmNwcApAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgImNv
bmZpZy5oIgogI2luY2x1ZGUgIk5ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oIgogCisjaW5jbHVkZSAi
SFRUUENvb2tpZUFjY2VwdFBvbGljeS5oIgogI2luY2x1ZGUgIlJ1bnRpbWVBcHBsaWNhdGlvbkNo
ZWNrcy5oIgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogI2luY2x1ZGUgPHd0Zi9Q
cm9jZXNzUHJpdmlsZWdlLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaAppbmRleCAzNzIwYWM1ZTg1YjA5OGU0ODM1
Y2I2NzdjMDU4MWUwYjMwNWRkNTVjLi42NTA2ZjEwNzcwNjVhNGQyMWY3OTgwMTkyZjNkNzUwN2Vi
YzIzYTllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdv
cmtTdG9yYWdlU2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
TmV0d29ya1N0b3JhZ2VTZXNzaW9uLmgKQEAgLTcyLDYgKzcyLDcgQEAgc3RydWN0IENvb2tpZTsK
IHN0cnVjdCBDb29raWVSZXF1ZXN0SGVhZGVyRmllbGRQcm94eTsKIHN0cnVjdCBTYW1lU2l0ZUlu
Zm87CiAKK2VudW0gY2xhc3MgSFRUUENvb2tpZUFjY2VwdFBvbGljeSA6IHVpbnQ4X3Q7CiBlbnVt
IGNsYXNzIEluY2x1ZGVTZWN1cmVDb29raWVzIDogYm9vbDsKIGVudW0gY2xhc3MgSW5jbHVkZUh0
dHBPbmx5Q29va2llcyA6IGJvb2w7CiBlbnVtIGNsYXNzIFRoaXJkUGFydHlDb29raWVCbG9ja2lu
Z01vZGUgOiB1aW50OF90IHsgQWxsLCBBbGxPblNpdGVzV2l0aG91dFVzZXJJbnRlcmFjdGlvbiwg
T25seUFjY29yZGluZ1RvUGVyRG9tYWluUG9saWN5IH07CkBAIC0xMjUsNyArMTI2LDcgQEAgcHVi
bGljOgogICAgIE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0KCkgY29uc3Q7CiAjZW5kaWYKIAot
ICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgY29va2llc0VuYWJsZWQoKSBjb25zdDsKKyAgICBXRUJD
T1JFX0VYUE9SVCBIVFRQQ29va2llQWNjZXB0UG9saWN5IGNvb2tpZUFjY2VwdFBvbGljeSgpIGNv
bnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0Q29va2llKGNvbnN0IENvb2tpZSYpOwog
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0Q29va2llcyhjb25zdCBWZWN0b3I8Q29va2llPiYs
IGNvbnN0IFVSTCYsIGNvbnN0IFVSTCYgbWFpbkRvY3VtZW50VVJMKTsKICAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIHNldENvb2tpZXNGcm9tRE9NKGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3Qg
U2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiwgT3B0
aW9uYWw8UGFnZUlkZW50aWZpZXI+LCBTaG91bGRBc2tJVFAsIGNvbnN0IFN0cmluZyYpIGNvbnN0
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9OZXR3b3Jr
U3RvcmFnZVNlc3Npb25DRk5ldFdpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL2NmL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkNGTmV0V2luLmNwcAppbmRleCA1MmRhY2M2ODZk
ODNiYTI5ODEzMDc5MDU5YWM4NTUxZmE2MWU5M2JjLi4wNmE1M2IyZmExODM1YThiZDFkOWY1NDFj
NDAwZmZhNjJmZjBjYjkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL2NmL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkNGTmV0V2luLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkNGTmV0V2luLmNw
cApAQCAtMjgsNiArMjgsNyBAQAogCiAjaW5jbHVkZSAiQ29va2llLmgiCiAjaW5jbHVkZSAiQ29v
a2llUmVxdWVzdEhlYWRlckZpZWxkUHJveHkuaCIKKyNpbmNsdWRlICJIVFRQQ29va2llQWNjZXB0
UG9saWN5LmgiCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRlIDxDRk5ldHdv
cmsvQ0ZIVFRQQ29va2llc1ByaXYuaD4KICNpbmNsdWRlIDxDb3JlRm91bmRhdGlvbi9Db3JlRm91
bmRhdGlvbi5oPgpAQCAtMjU4LDEwICsyNTksMTcgQEAgc3RkOjpwYWlyPFN0cmluZywgYm9vbD4g
TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShjb24K
ICAgICByZXR1cm4gY29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoaGVhZGVyRmllbGRQcm94
eS5maXJzdFBhcnR5LCBoZWFkZXJGaWVsZFByb3h5LnNhbWVTaXRlSW5mbywgaGVhZGVyRmllbGRQ
cm94eS51cmwsIGhlYWRlckZpZWxkUHJveHkuZnJhbWVJRCwgaGVhZGVyRmllbGRQcm94eS5wYWdl
SUQsIGhlYWRlckZpZWxkUHJveHkuaW5jbHVkZVNlY3VyZUNvb2tpZXMsIFNob3VsZEFza0lUUDo6
WWVzKTsKIH0KIAotYm9vbCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmNvb2tpZXNFbmFibGVkKCkg
Y29uc3QKK0hUVFBDb29raWVBY2NlcHRQb2xpY3kgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpjb29r
aWVBY2NlcHRQb2xpY3koKSBjb25zdAogewogICAgIENGSFRUUENvb2tpZVN0b3JhZ2VBY2NlcHRQ
b2xpY3kgcG9saWN5ID0gQ0ZIVFRQQ29va2llU3RvcmFnZUdldENvb2tpZUFjY2VwdFBvbGljeShj
b29raWVTdG9yYWdlKCkuZ2V0KCkpOwotICAgIHJldHVybiBwb2xpY3kgPT0gQ0ZIVFRQQ29va2ll
U3RvcmFnZUFjY2VwdFBvbGljeU9ubHlGcm9tTWFpbkRvY3VtZW50RG9tYWluIHx8IHBvbGljeSA9
PSBDRkhUVFBDb29raWVTdG9yYWdlQWNjZXB0UG9saWN5RXhjbHVzaXZlbHlGcm9tTWFpbkRvY3Vt
ZW50RG9tYWluIHx8IHBvbGljeSA9PSBDRkhUVFBDb29raWVTdG9yYWdlQWNjZXB0UG9saWN5QWx3
YXlzOworICAgIGlmIChwb2xpY3kgPT0gQ0ZIVFRQQ29va2llU3RvcmFnZUFjY2VwdFBvbGljeUFs
d2F5cykKKyAgICAgICAgcmV0dXJuIEhUVFBDb29raWVBY2NlcHRQb2xpY3k6OkFsd2F5c0FjY2Vw
dDsKKyAgICBpZiAocG9saWN5ID09IENGSFRUUENvb2tpZVN0b3JhZ2VBY2NlcHRQb2xpY3lPbmx5
RnJvbU1haW5Eb2N1bWVudERvbWFpbikKKyAgICAgICAgcmV0dXJuIEhUVFBDb29raWVBY2NlcHRQ
b2xpY3k6Ok9ubHlGcm9tTWFpbkRvY3VtZW50RG9tYWluOworICAgIGlmIChwb2xpY3kgPT0gQ0ZI
VFRQQ29va2llU3RvcmFnZUFjY2VwdFBvbGljeUV4Y2x1c2l2ZWx5RnJvbU1haW5Eb2N1bWVudERv
bWFpbikKKyAgICAgICAgcmV0dXJuIEhUVFBDb29raWVBY2NlcHRQb2xpY3k6OkV4Y2x1c2l2ZWx5
RnJvbU1haW5Eb2N1bWVudERvbWFpbjsKKworICAgIHJldHVybiBIVFRQQ29va2llQWNjZXB0UG9s
aWN5OjpOZXZlcjsKIH0KIAogYm9vbCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmdldFJhd0Nvb2tp
ZXMoY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwm
IHVybCwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRl
bnRpZmllcj4gcGFnZUlELCBTaG91bGRBc2tJVFAsIFZlY3RvcjxDb29raWU+JiByYXdDb29raWVz
KSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2Nv
YS9OZXR3b3JrU3RvcmFnZVNlc3Npb25Db2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvY29jb2EvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ29jb2EubW0KaW5kZXggOWY2NzY1
ZWE2N2QxMGNlZjNiNjJlZDVjZTAwYjk4ODgxOTRmMmNkMS4uZmQxYWU1OGQ3NTMxMGY3NDY2NTdm
YmNkOTFkNmViNzZkNzY1N2QwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9jb2NvYS9OZXR3b3JrU3RvcmFnZVNlc3Npb25Db2NvYS5tbQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkNvY29h
Lm1tCkBAIC0yOSw2ICsyOSw3IEBACiAjaW1wb3J0ICJDb29raWUuaCIKICNpbXBvcnQgIkNvb2tp
ZVJlcXVlc3RIZWFkZXJGaWVsZFByb3h5LmgiCiAjaW1wb3J0ICJDb29raWVTdG9yYWdlT2JzZXJ2
ZXIuaCIKKyNpbXBvcnQgIkhUVFBDb29raWVBY2NlcHRQb2xpY3kuaCIKICNpbXBvcnQgIlNhbWVT
aXRlSW5mby5oIgogI2ltcG9ydCA8cGFsL3NwaS9jZi9DRk5ldHdvcmtTUEkuaD4KICNpbXBvcnQg
PHd0Zi9CbG9ja09iakNFeGNlcHRpb25zLmg+CkBAIC00NDgsMTUgKzQ0OSwxOSBAQCBzdGF0aWMg
TlNIVFRQQ29va2llQWNjZXB0UG9saWN5IGh0dHBDb29raWVBY2NlcHRQb2xpY3koQ0ZIVFRQQ29v
a2llU3RvcmFnZVJlZiBjbwogICAgIHJldHVybiBzdGF0aWNfY2FzdDxOU0hUVFBDb29raWVBY2Nl
cHRQb2xpY3k+KENGSFRUUENvb2tpZVN0b3JhZ2VHZXRDb29raWVBY2NlcHRQb2xpY3koY29va2ll
U3RvcmFnZSkpOwogfQogCi1ib29sIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y29va2llc0VuYWJs
ZWQoKSBjb25zdAorSFRUUENvb2tpZUFjY2VwdFBvbGljeSBOZXR3b3JrU3RvcmFnZVNlc3Npb246
OmNvb2tpZUFjY2VwdFBvbGljeSgpIGNvbnN0CiB7CiAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENF
UFRJT05TOwotCiAgICAgTlNIVFRQQ29va2llQWNjZXB0UG9saWN5IGNvb2tpZUFjY2VwdFBvbGlj
eSA9IGh0dHBDb29raWVBY2NlcHRQb2xpY3koY29va2llU3RvcmFnZSgpLmdldCgpKTsKLSAgICBy
ZXR1cm4gY29va2llQWNjZXB0UG9saWN5ID09IE5TSFRUUENvb2tpZUFjY2VwdFBvbGljeUFsd2F5
cyB8fCBjb29raWVBY2NlcHRQb2xpY3kgPT0gTlNIVFRQQ29va2llQWNjZXB0UG9saWN5T25seUZy
b21NYWluRG9jdW1lbnREb21haW4gfHwgY29va2llQWNjZXB0UG9saWN5ID09IE5TSFRUUENvb2tp
ZUFjY2VwdFBvbGljeUV4Y2x1c2l2ZWx5RnJvbU1haW5Eb2N1bWVudERvbWFpbjsKLQorICAgIGlm
IChjb29raWVBY2NlcHRQb2xpY3kgPT0gTlNIVFRQQ29va2llQWNjZXB0UG9saWN5QWx3YXlzKQor
ICAgICAgICByZXR1cm4gSFRUUENvb2tpZUFjY2VwdFBvbGljeTo6QWx3YXlzQWNjZXB0OworICAg
IGlmIChjb29raWVBY2NlcHRQb2xpY3kgPT0gTlNIVFRQQ29va2llQWNjZXB0UG9saWN5T25seUZy
b21NYWluRG9jdW1lbnREb21haW4pCisgICAgICAgIHJldHVybiBIVFRQQ29va2llQWNjZXB0UG9s
aWN5OjpPbmx5RnJvbU1haW5Eb2N1bWVudERvbWFpbjsKKyAgICBpZiAoY29va2llQWNjZXB0UG9s
aWN5ID09IE5TSFRUUENvb2tpZUFjY2VwdFBvbGljeUV4Y2x1c2l2ZWx5RnJvbU1haW5Eb2N1bWVu
dERvbWFpbikKKyAgICAgICAgcmV0dXJuIEhUVFBDb29raWVBY2NlcHRQb2xpY3k6OkV4Y2x1c2l2
ZWx5RnJvbU1haW5Eb2N1bWVudERvbWFpbjsKICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05T
OwotICAgIHJldHVybiBmYWxzZTsKKworICAgIHJldHVybiBIVFRQQ29va2llQWNjZXB0UG9saWN5
OjpOZXZlcjsKIH0KIAogYm9vbCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmdldFJhd0Nvb2tpZXMo
Y29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5mbywg
Y29uc3QgVVJMJiB1cmwsIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9u
YWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgU2hvdWxkQXNrSVRQIHNob3VsZEFza0lUUCwgVmVj
dG9yPENvb2tpZT4mIHJhd0Nvb2tpZXMpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ3VybC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvTmV0d29ya1N0b3JhZ2VTZXNzaW9u
Q3VybC5jcHAKaW5kZXggZDcwNDUwNGU2NDk5MWQ3NGYzMTcwZDgzNzhkYzJkZTI2NDgzMDJhYi4u
YmY5YzY3YTFlY2U2ZWIxZjBhNjQyMDA3ZjBlMWQ5NmVkN2Q1ZGYzMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkN1
cmwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9OZXR3b3Jr
U3RvcmFnZVNlc3Npb25DdXJsLmNwcApAQCAtODUsOSArODUsMjEgQEAgdm9pZCBOZXR3b3JrU3Rv
cmFnZVNlc3Npb246OnNldENvb2tpZXNGcm9tRE9NKGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29u
c3QgU2FtZVMKICAgICBjb29raWVTdG9yYWdlKCkuc2V0Q29va2llc0Zyb21ET00oKnRoaXMsIGZp
cnN0UGFydHksIHNhbWVTaXRlSW5mbywgdXJsLCBmcmFtZUlELCBwYWdlSUQsIHZhbHVlKTsKIH0K
IAotYm9vbCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmNvb2tpZXNFbmFibGVkKCkgY29uc3QKLXsK
LSAgICByZXR1cm4gY29va2llU3RvcmFnZSgpLmNvb2tpZXNFbmFibGVkKCp0aGlzKTsKK0hUVFBD
b29raWVBY2NlcHRQb2xpY3kgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpjb29raWVBY2NlcHRQb2xp
Y3koKSBjb25zdAoreworICAgIHN3aXRjaCAoY29va2llU3RvcmFnZSgpLmNvb2tpZUFjY2VwdFBv
bGljeSgqdGhpcykpIHsKKyAgICBjYXNlIENvb2tpZUFjY2VwdFBvbGljeTo6QWx3YXlzOgorICAg
ICAgICByZXR1cm4gSFRUUENvb2tpZUFjY2VwdFBvbGljeTo6QWx3YXlzQWNjZXB0OworICAgIGNh
c2UgQ29va2llQWNjZXB0UG9saWN5OjpOZXZlcjoKKyAgICAgICAgcmV0dXJuIEhUVFBDb29raWVB
Y2NlcHRQb2xpY3k6Ok5ldmVyOworICAgIGNhc2UgQ29va2llQWNjZXB0UG9saWN5OjpPbmx5RnJv
bU1haW5Eb2N1bWVudERvbWFpbjoKKyAgICAgICAgcmV0dXJuIEhUVFBDb29raWVBY2NlcHRQb2xp
Y3k6Ok9ubHlGcm9tTWFpbkRvY3VtZW50RG9tYWluOworICAgIGNhc2UgQ29va2llQWNjZXB0UG9s
aWN5OjpFeGNsdXNpdmVseUZyb21NYWluRG9jdW1lbnREb21haW46CisgICAgICAgIHJldHVybiBI
VFRQQ29va2llQWNjZXB0UG9saWN5OjpFeGNsdXNpdmVseUZyb21NYWluRG9jdW1lbnREb21haW47
CisgICAgfQorCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIEhUVFBDb29r
aWVBY2NlcHRQb2xpY3k6Ok9ubHlGcm9tTWFpbkRvY3VtZW50RG9tYWluOwogfQogCiBzdGQ6OnBh
aXI8U3RyaW5nLCBib29sPiBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmNvb2tpZXNGb3JET00oY29u
c3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5mbywgY29u
c3QgVVJMJiB1cmwsIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9uYWw8
UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgSW5jbHVkZVNlY3VyZUNvb2tpZXMgaW5jbHVkZVNlY3Vy
ZUNvb2tpZXMsIFNob3VsZEFza0lUUCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvc291cC9OZXR3b3JrU3RvcmFnZVNlc3Npb25Tb3VwLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9OZXR3b3JrU3RvcmFnZVNlc3Npb25T
b3VwLmNwcAppbmRleCBlMDU1MDc2YzdlMWRiYzI0MGVmMjM5YjdkZTIwNWMzYTg1OTQ1ZjkyLi42
ZGRiNTk3YWFhY2FiOWMzM2FkNjVjMGVmZDg3Y2JlNTc4MTQxOTJlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU291
cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL05ldHdvcmtT
dG9yYWdlU2Vzc2lvblNvdXAuY3BwCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiQ29va2ll
LmgiCiAjaW5jbHVkZSAiQ29va2llUmVxdWVzdEhlYWRlckZpZWxkUHJveHkuaCIKICNpbmNsdWRl
ICJHVW5pcXVlUHRyU291cC5oIgorI2luY2x1ZGUgIkhUVFBDb29raWVBY2NlcHRQb2xpY3kuaCIK
ICNpbmNsdWRlICJSZXNvdXJjZUhhbmRsZS5oIgogI2luY2x1ZGUgIlNvdXBOZXR3b3JrU2Vzc2lv
bi5oIgogI2luY2x1ZGUgIlVSTFNvdXAuaCIKQEAgLTI0MSwxMCArMjQyLDE0IEBAIHZvaWQgTmV0
d29ya1N0b3JhZ2VTZXNzaW9uOjpzYXZlQ3JlZGVudGlhbFRvUGVyc2lzdGVudFN0b3JhZ2UoY29u
c3QgUHJvdGVjdGlvblNwCiAjZW5kaWYKIH0KIAotYm9vbCBOZXR3b3JrU3RvcmFnZVNlc3Npb246
OmNvb2tpZXNFbmFibGVkKCkgY29uc3QKK0hUVFBDb29raWVBY2NlcHRQb2xpY3kgTmV0d29ya1N0
b3JhZ2VTZXNzaW9uOjpjb29raWVBY2NlcHRQb2xpY3koKSBjb25zdAogewogICAgIGF1dG8gcG9s
aWN5ID0gc291cF9jb29raWVfamFyX2dldF9hY2NlcHRfcG9saWN5KGNvb2tpZVN0b3JhZ2UoKSk7
Ci0gICAgcmV0dXJuIHBvbGljeSA9PSBTT1VQX0NPT0tJRV9KQVJfQUNDRVBUX0FMV0FZUyB8fCBw
b2xpY3kgPT0gU09VUF9DT09LSUVfSkFSX0FDQ0VQVF9OT19USElSRF9QQVJUWTsKKyAgICBpZiAo
cG9saWN5ID09IFNPVVBfQ09PS0lFX0pBUl9BQ0NFUFRfQUxXQVlTKQorICAgICAgICByZXR1cm4g
SFRUUENvb2tpZUFjY2VwdFBvbGljeTo6QWx3YXlzQWNjZXB0OworICAgIGlmIChwb2xpY3kgPT0g
U09VUF9DT09LSUVfSkFSX0FDQ0VQVF9OT19USElSRF9QQVJUWSkKKyAgICAgICAgcmV0dXJuIEhU
VFBDb29raWVBY2NlcHRQb2xpY3k6Ok9ubHlGcm9tTWFpbkRvY3VtZW50RG9tYWluOworICAgIHJl
dHVybiBIVFRQQ29va2llQWNjZXB0UG9saWN5OjpOZXZlcjsKIH0KIAogc3RhdGljIGlubGluZSBi
b29sIGh0dHBPbmx5Q29va2llRXhpc3RzKGNvbnN0IEdTTGlzdCogY29va2llcywgY29uc3QgZ2No
YXIqIG5hbWUsIGNvbnN0IGdjaGFyKiBwYXRoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIuY3BwCmluZGV4IDVkNmYw
NTIyMTQ4ZWFmNmNhMGE5MmU5NjJlNGU4MjhlN2RhN2Y3MmIuLjZlMjhhZGZmZWZjZWM3ZjBlM2U1
ZGE2MTlmMTMyOTdmYmU4ZDM2MzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvQ29va2llcy9XZWJDb29raWVNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlci5jcHAKQEAgLTE0NCwxMyArMTQ0
LDE4IEBAIHZvaWQgV2ViQ29va2llTWFuYWdlcjo6c3RvcE9ic2VydmluZ0Nvb2tpZUNoYW5nZXMo
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogdm9pZCBXZWJDb29raWVNYW5hZ2VyOjpzZXRIVFRQ
Q29va2llQWNjZXB0UG9saWN5KEhUVFBDb29raWVBY2NlcHRQb2xpY3kgcG9saWN5LCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgcGxhdGZvcm1T
ZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KHBvbGljeSk7CisgICAgbV9wcm9jZXNzLmNvb2tpZUFj
Y2VwdFBvbGljeUNoYW5nZWQocG9saWN5KTsKIAogICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CiB9
CiAKIHZvaWQgV2ViQ29va2llTWFuYWdlcjo6Z2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKEhUVFBDb29raWVBY2NlcHRQb2xpY3kpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKQogewotICAgIGNvbXBsZXRpb25IYW5kbGVyKHBsYXRmb3JtR2V0SFRUUENvb2tpZUFj
Y2VwdFBvbGljeSgpKTsKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBjb21wbGV0aW9uSGFuZGxl
cihXZWJDb29raWVNYW5hZ2VyOjpwbGF0Zm9ybUdldEhUVFBDb29raWVBY2NlcHRQb2xpY3koKSk7
CisjZWxzZQorICAgIGNvbXBsZXRpb25IYW5kbGVyKG1fcHJvY2Vzcy5kZWZhdWx0U3RvcmFnZVNl
c3Npb24oKS5jb29raWVBY2NlcHRQb2xpY3koKSk7CisjZW5kaWYKIH0KIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Nvb2tp
ZXMvV2ViQ29va2llTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Db29r
aWVzL1dlYkNvb2tpZU1hbmFnZXIuaAppbmRleCA0MDZiYjkwYTc2NWY1YzlmNmZlM2Y5Y2NjOTgx
ZjQyZGQxNGY4OWJhLi4yYzFkMjdjMzI0M2JiNmNlMjE2NzM5YzIyNGVjNTlmZTViYmRhNDlkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2ll
TWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ29va2llcy9XZWJD
b29raWVNYW5hZ2VyLmgKQEAgLTM5LDEyICszOSwxMiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiBzdHJ1Y3QgQ29va2llOworZW51bSBjbGFzcyBIVFRQQ29va2llQWNjZXB0UG9saWN5IDogdWlu
dDhfdDsKIH0KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIE5ldHdvcmtQcm9jZXNzOwot
ZW51bSBjbGFzcyBIVFRQQ29va2llQWNjZXB0UG9saWN5IDogdWludDhfdDsKIAogY2xhc3MgV2Vi
Q29va2llTWFuYWdlciA6IHB1YmxpYyBOZXR3b3JrUHJvY2Vzc1N1cHBsZW1lbnQsIHB1YmxpYyBJ
UEM6Ok1lc3NhZ2VSZWNlaXZlciB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CkBAIC01
NSw3ICs1NSw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBjb25zdCBjaGFyKiBzdXBwbGVtZW50
TmFtZSgpOwogCi0gICAgdm9pZCBzZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KEhUVFBDb29raWVB
Y2NlcHRQb2xpY3ksIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CisgICAgdm9pZCBzZXRI
VFRQQ29va2llQWNjZXB0UG9saWN5KFdlYkNvcmU6OkhUVFBDb29raWVBY2NlcHRQb2xpY3ksIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAKICNpZiBVU0UoU09VUCkKICAgICB2b2lkIHNl
dENvb2tpZVBlcnNpc3RlbnRTdG9yYWdlKFBBTDo6U2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIHN0
b3JhZ2VQYXRoLCBTb3VwQ29va2llUGVyc2lzdGVudFN0b3JhZ2VUeXBlKTsKQEAgLTc5LDkgKzc5
LDExIEBAIHByaXZhdGU6CiAgICAgdm9pZCBnZXRBbGxDb29raWVzKFBBTDo6U2Vzc2lvbklELCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKFZlY3RvcjxXZWJDb3JlOjpDb29raWU+JiYpPiYmKTsKICAg
ICB2b2lkIGdldENvb2tpZXMoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFVSTCYsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4mJik+JiYpOwogCi0gICAgdm9pZCBw
bGF0Zm9ybVNldEhUVFBDb29raWVBY2NlcHRQb2xpY3koSFRUUENvb2tpZUFjY2VwdFBvbGljeSk7
Ci0gICAgdm9pZCBnZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoSFRUUENvb2tpZUFjY2VwdFBvbGljeSk+JiYpOwotICAgIEhUVFBDb29raWVBY2NlcHRQb2xp
Y3kgcGxhdGZvcm1HZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KCk7CisgICAgdm9pZCBwbGF0Zm9y
bVNldEhUVFBDb29raWVBY2NlcHRQb2xpY3koV2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBvbGlj
eSk7CisgICAgdm9pZCBnZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoV2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBvbGljeSk+JiYpOworI2lmIFBMQVRGT1JN
KENPQ09BKQorICAgIFdlYkNvcmU6OkhUVFBDb29raWVBY2NlcHRQb2xpY3kgcGxhdGZvcm1HZXRI
VFRQQ29va2llQWNjZXB0UG9saWN5KCk7CisjZW5kaWYKIAogICAgIHZvaWQgc3RhcnRPYnNlcnZp
bmdDb29raWVDaGFuZ2VzKFBBTDo6U2Vzc2lvbklEKTsKICAgICB2b2lkIHN0b3BPYnNlcnZpbmdD
b29raWVDaGFuZ2VzKFBBTDo6U2Vzc2lvbklEKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvQ29va2llcy9XZWJDb29raWVNYW5hZ2VyLm1lc3NhZ2VzLmluIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIubWVzc2Fn
ZXMuaW4KaW5kZXggYWY0YzA5YjczMWZiMDQ5OGRhM2M1Mzc4MmI1ODNlYmI4YjMzMDRkMS4uYWNk
NzU0NDBkODNmMzQ2NjUwYzlmMzNiNzViNWQ1ZDA5MzUyMTNiYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIubWVzc2FnZXMu
aW4KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1h
bmFnZXIubWVzc2FnZXMuaW4KQEAgLTM1LDggKzM1LDggQEAgbWVzc2FnZXMgLT4gV2ViQ29va2ll
TWFuYWdlciBOb3RSZWZDb3VudGVkIHsKICAgICB2b2lkIERlbGV0ZUNvb2tpZShQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQsIHN0cnVjdCBXZWJDb3JlOjpDb29raWUgY29va2llKSAtPiAoKSBBc3lu
YwogICAgIHZvaWQgRGVsZXRlQWxsQ29va2llc01vZGlmaWVkU2luY2UoUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvbklELCBXYWxsVGltZSB0aW1lKSAtPiAoKSBBc3luYwogCi0gICAgdm9pZCBTZXRIVFRQ
Q29va2llQWNjZXB0UG9saWN5KGVudW06dWludDhfdCBXZWJLaXQ6OkhUVFBDb29raWVBY2NlcHRQ
b2xpY3kgcG9saWN5KSAtPiAoKSBBc3luYwotICAgIHZvaWQgR2V0SFRUUENvb2tpZUFjY2VwdFBv
bGljeSgpIC0+IChlbnVtOnVpbnQ4X3QgV2ViS2l0OjpIVFRQQ29va2llQWNjZXB0UG9saWN5IHBv
bGljeSkgQXN5bmMKKyAgICB2b2lkIFNldEhUVFBDb29raWVBY2NlcHRQb2xpY3koZW51bTp1aW50
OF90IFdlYkNvcmU6OkhUVFBDb29raWVBY2NlcHRQb2xpY3kgcG9saWN5KSAtPiAoKSBBc3luYwor
ICAgIHZvaWQgR2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeSgpIC0+IChlbnVtOnVpbnQ4X3QgV2Vi
Q29yZTo6SFRUUENvb2tpZUFjY2VwdFBvbGljeSBwb2xpY3kpIEFzeW5jCiAgICAgCiAgICAgdm9p
ZCBTdGFydE9ic2VydmluZ0Nvb2tpZUNoYW5nZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQog
ICAgIHZvaWQgU3RvcE9ic2VydmluZ0Nvb2tpZUNoYW5nZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Db29raWVzL2N1
cmwvV2ViQ29va2llTWFuYWdlckN1cmwuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9Db29raWVzL2N1cmwvV2ViQ29va2llTWFuYWdlckN1cmwuY3BwCmluZGV4IGMxYTM2Y2RlOWI1
ZWVlNmY3NTE5ZmUwMTMwZWIwMzdmYWUyNTcyMWIuLjdhNWNiMzk2ZTI5Yzg4ZDg0ODBmYTFjYjYz
NzBjYmM0NWJmZmU3ZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
Q29va2llcy9jdXJsL1dlYkNvb2tpZU1hbmFnZXJDdXJsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL0Nvb2tpZXMvY3VybC9XZWJDb29raWVNYW5hZ2VyQ3VybC5jcHAKQEAg
LTI2LDggKzI2LDggQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJXZWJDb29raWVN
YW5hZ2VyLmgiCiAKLSNpbmNsdWRlICJIVFRQQ29va2llQWNjZXB0UG9saWN5LmgiCiAjaW5jbHVk
ZSAiTmV0d29ya1Byb2Nlc3MuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0hUVFBDb29raWVBY2NlcHRQ
b2xpY3kuaD4KICNpbmNsdWRlIDxXZWJDb3JlL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oPgogCiBu
YW1lc3BhY2UgV2ViS2l0IHsKQEAgLTU3LDIyICs1Nyw0IEBAIHZvaWQgV2ViQ29va2llTWFuYWdl
cjo6cGxhdGZvcm1TZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KEhUVFBDb29raWVBY2NlcHRQb2xp
Y3kKICAgICB9KTsKIH0KIAotSFRUUENvb2tpZUFjY2VwdFBvbGljeSBXZWJDb29raWVNYW5hZ2Vy
OjpwbGF0Zm9ybUdldEhUVFBDb29raWVBY2NlcHRQb2xpY3koKQotewotICAgIGNvbnN0IGF1dG8m
IG5ldHdvcmtTdG9yYWdlU2Vzc2lvbiA9IG1fcHJvY2Vzcy5kZWZhdWx0U3RvcmFnZVNlc3Npb24o
KTsKLSAgICBzd2l0Y2ggKG5ldHdvcmtTdG9yYWdlU2Vzc2lvbi5jb29raWVTdG9yYWdlKCkuY29v
a2llQWNjZXB0UG9saWN5KG5ldHdvcmtTdG9yYWdlU2Vzc2lvbikpIHsKLSAgICBjYXNlIENvb2tp
ZUFjY2VwdFBvbGljeTo6QWx3YXlzOgotICAgICAgICByZXR1cm4gSFRUUENvb2tpZUFjY2VwdFBv
bGljeTo6QWx3YXlzQWNjZXB0OwotICAgIGNhc2UgQ29va2llQWNjZXB0UG9saWN5OjpOZXZlcjoK
LSAgICAgICAgcmV0dXJuIEhUVFBDb29raWVBY2NlcHRQb2xpY3k6Ok5ldmVyOwotICAgIGNhc2Ug
Q29va2llQWNjZXB0UG9saWN5OjpPbmx5RnJvbU1haW5Eb2N1bWVudERvbWFpbjoKLSAgICAgICAg
cmV0dXJuIEhUVFBDb29raWVBY2NlcHRQb2xpY3k6Ok9ubHlGcm9tTWFpbkRvY3VtZW50RG9tYWlu
OwotICAgIGNhc2UgQ29va2llQWNjZXB0UG9saWN5OjpFeGNsdXNpdmVseUZyb21NYWluRG9jdW1l
bnREb21haW46Ci0gICAgICAgIHJldHVybiBIVFRQQ29va2llQWNjZXB0UG9saWN5OjpFeGNsdXNp
dmVseUZyb21NYWluRG9jdW1lbnREb21haW47Ci0gICAgfQotCi0gICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7Ci0gICAgcmV0dXJuIEhUVFBDb29raWVBY2NlcHRQb2xpY3k6Ok9ubHlGcm9tTWFpbkRv
Y3VtZW50RG9tYWluOwotfQotCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ29va2llcy9tYWMvV2ViQ29va2llTWFuYWdlck1h
Yy5tbSBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ29va2llcy9tYWMvV2ViQ29va2ll
TWFuYWdlck1hYy5tbQppbmRleCBiYzllOTI0M2Q0MjczOGQwZmUyYzYyOGNkN2Q0MTllYTFhNDA2
ZWY3Li41YzhiMzRjODI1NWRiZGY3OTA5MGM5MThmMTExN2E0ZWMxNTgxNzM2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Nvb2tpZXMvbWFjL1dlYkNvb2tpZU1hbmFn
ZXJNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Db29raWVzL21hYy9X
ZWJDb29raWVNYW5hZ2VyTWFjLm1tCkBAIC0yNiw5ICsyNiw5IEBACiAjaW1wb3J0ICJjb25maWcu
aCIKICNpbXBvcnQgIldlYkNvb2tpZU1hbmFnZXIuaCIKIAotI2ltcG9ydCAiSFRUUENvb2tpZUFj
Y2VwdFBvbGljeS5oIgogI2ltcG9ydCAiTmV0d29ya1Byb2Nlc3MuaCIKICNpbXBvcnQgIk5ldHdv
cmtTZXNzaW9uLmgiCisjaW1wb3J0IDxXZWJDb3JlL0hUVFBDb29raWVBY2NlcHRQb2xpY3kuaD4K
ICNpbXBvcnQgPFdlYkNvcmUvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmg+CiAjaW1wb3J0IDxwYWwv
c3BpL2NmL0NGTmV0d29ya1NQSS5oPgogI2ltcG9ydCA8d3RmL1Byb2Nlc3NQcml2aWxlZ2UuaD4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ29va2llcy9zb3VwL1dl
YkNvb2tpZU1hbmFnZXJTb3VwLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ29v
a2llcy9zb3VwL1dlYkNvb2tpZU1hbmFnZXJTb3VwLmNwcAppbmRleCBlYTkxNTIyYzA5YTQ4MGNk
NjJmNGM4OWFjODQyYzdlZDEzMjIxYjgxLi5jYmZjYWVlNTYzYTEyNjY4ZDQzMjE5NjJjMDY4ZjI5
MjE4YmUzMjU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Nvb2tp
ZXMvc291cC9XZWJDb29raWVNYW5hZ2VyU291cC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9Db29raWVzL3NvdXAvV2ViQ29va2llTWFuYWdlclNvdXAuY3BwCkBAIC0yNiwx
MCArMjYsMTAgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJXZWJDb29raWVNYW5h
Z2VyLmgiCiAKLSNpbmNsdWRlICJIVFRQQ29va2llQWNjZXB0UG9saWN5LmgiCiAjaW5jbHVkZSAi
TmV0d29ya1Byb2Nlc3MuaCIKICNpbmNsdWRlICJOZXR3b3JrU2Vzc2lvblNvdXAuaCIKICNpbmNs
dWRlICJTb3VwQ29va2llUGVyc2lzdGVudFN0b3JhZ2VUeXBlLmgiCisjaW5jbHVkZSA8V2ViQ29y
ZS9IVFRQQ29va2llQWNjZXB0UG9saWN5Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9OZXR3b3JrU3Rv
cmFnZVNlc3Npb24uaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NvdXBOZXR3b3JrU2Vzc2lvbi5oPgog
I2luY2x1ZGUgPGxpYnNvdXAvc291cC5oPgpAQCAtNjAsMjEgKzYwLDYgQEAgdm9pZCBXZWJDb29r
aWVNYW5hZ2VyOjpwbGF0Zm9ybVNldEhUVFBDb29raWVBY2NlcHRQb2xpY3koSFRUUENvb2tpZUFj
Y2VwdFBvbGljeQogICAgIH0pOwogfQogCi1IVFRQQ29va2llQWNjZXB0UG9saWN5IFdlYkNvb2tp
ZU1hbmFnZXI6OnBsYXRmb3JtR2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeSgpCi17Ci0gICAgc3dp
dGNoIChzb3VwX2Nvb2tpZV9qYXJfZ2V0X2FjY2VwdF9wb2xpY3kobV9wcm9jZXNzLmRlZmF1bHRT
dG9yYWdlU2Vzc2lvbigpLmNvb2tpZVN0b3JhZ2UoKSkpIHsKLSAgICBjYXNlIFNPVVBfQ09PS0lF
X0pBUl9BQ0NFUFRfQUxXQVlTOgotICAgICAgICByZXR1cm4gSFRUUENvb2tpZUFjY2VwdFBvbGlj
eTo6QWx3YXlzQWNjZXB0OwotICAgIGNhc2UgU09VUF9DT09LSUVfSkFSX0FDQ0VQVF9ORVZFUjoK
LSAgICAgICAgcmV0dXJuIEhUVFBDb29raWVBY2NlcHRQb2xpY3k6Ok5ldmVyOwotICAgIGNhc2Ug
U09VUF9DT09LSUVfSkFSX0FDQ0VQVF9OT19USElSRF9QQVJUWToKLSAgICAgICAgcmV0dXJuIEhU
VFBDb29raWVBY2NlcHRQb2xpY3k6Ok9ubHlGcm9tTWFpbkRvY3VtZW50RG9tYWluOwotICAgIH0K
LQotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiBIVFRQQ29va2llQWNjZXB0
UG9saWN5OjpPbmx5RnJvbU1haW5Eb2N1bWVudERvbWFpbjsKLX0KLQogdm9pZCBXZWJDb29raWVN
YW5hZ2VyOjpzZXRDb29raWVQZXJzaXN0ZW50U3RvcmFnZShQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQsIGNvbnN0IFN0cmluZyYgc3RvcmFnZVBhdGgsIFNvdXBDb29raWVQZXJzaXN0ZW50U3RvcmFn
ZVR5cGUgc3RvcmFnZVR5cGUpCiB7CiAgICAgaWYgKGF1dG8qIG5ldHdvcmtTZXNzaW9uID0gbV9w
cm9jZXNzLm5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mu
Y3BwCmluZGV4IGIyZDRjNmMxZjYxOTYwNzE0MmVhYzc3MjRiY2JiYTA4MThmM2IwNTIuLmQxOGJl
MzBlNjc4NWRmYzA4MTI3ODZiNWU0OGI1Mzc4ZmQwZjgzZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MuY3BwCkBAIC00NjMsNiArNDYzLDExIEBAIHZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3M6OnNldE9uTGluZVN0YXRlKGJvb2wgaXNPbkxpbmUpCiAgICAgbV9jb25uZWN0aW9u
LT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OlNldE9uTGluZVN0YXRl
KGlzT25MaW5lKSwgMCk7CiB9CiAKK3ZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6
OmNvb2tpZUFjY2VwdFBvbGljeUNoYW5nZWQoSFRUUENvb2tpZUFjY2VwdFBvbGljeSBuZXdQb2xp
Y3kpCit7CisgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzc0Nv
bm5lY3Rpb246OkNvb2tpZUFjY2VwdFBvbGljeUNoYW5nZWQobmV3UG9saWN5KSwgMCk7Cit9CisK
IHZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnJlbW92ZUxvYWRJZGVudGlmaWVy
KFJlc291cmNlTG9hZElkZW50aWZpZXIgaWRlbnRpZmllcikKIHsKICAgICBSRUxFQVNFX0FTU0VS
VChpZGVudGlmaWVyKTsKQEAgLTU5MywxNCArNTk4LDYgQEAgdm9pZCBOZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzczo6c2V0Q29va2llc0Zyb21ET00oY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBj
b24KICNlbmRpZgogfQogCi12b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpjb29r
aWVzRW5hYmxlZChDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5k
bGVyKQotewotICAgIGF1dG8qIG5ldHdvcmtTdG9yYWdlU2Vzc2lvbiA9IHN0b3JhZ2VTZXNzaW9u
KCk7Ci0gICAgaWYgKCFuZXR3b3JrU3RvcmFnZVNlc3Npb24pCi0gICAgICAgIHJldHVybiBjb21w
bGV0aW9uSGFuZGxlcihmYWxzZSk7Ci0gICAgY29tcGxldGlvbkhhbmRsZXIobmV0d29ya1N0b3Jh
Z2VTZXNzaW9uLT5jb29raWVzRW5hYmxlZCgpKTsKLX0KLQogdm9pZCBOZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzczo6Y29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoY29uc3QgVVJMJiBm
aXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5mbywgY29uc3QgVVJMJiB1
cmwsIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50
aWZpZXI+IHBhZ2VJRCwgSW5jbHVkZVNlY3VyZUNvb2tpZXMgaW5jbHVkZVNlY3VyZUNvb2tpZXMs
IFNob3VsZEFza0lUUCBzaG91bGRBc2tJVFAsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5n
LCBib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBhdXRvKiBuZXR3b3JrU3RvcmFn
ZVNlc3Npb24gPSBzdG9yYWdlU2Vzc2lvbigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCmluZGV4
IDgzOTc0MzFjMDMzMTNjYzJjMDUwZDUxMmM5NTJhZTdlM2ZlZTlhNjUuLmU4MzVlNjQxYjYwOTI2
ZGJkMzRmNDQxZjRlMzhkMDVjN2M3NWYyYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKQEAg
LTYxLDYgKzYxLDcgQEAgZW51bSBjbGFzcyBTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCA6IGJvb2w7
CiBlbnVtIGNsYXNzIFNob3VsZEFza0lUUCA6IGJvb2w7CiBzdHJ1Y3QgU2FtZVNpdGVJbmZvOwog
CitlbnVtIGNsYXNzIEhUVFBDb29raWVBY2NlcHRQb2xpY3kgOiB1aW50OF90OwogZW51bSBjbGFz
cyBJbmNsdWRlU2VjdXJlQ29va2llcyA6IGJvb2w7CiB9CiAKQEAgLTE2Nyw2ICsxNjgsOCBAQCBw
dWJsaWM6CiAKICAgICBOZXR3b3JrU2NoZW1lUmVnaXN0cnkmIHNjaGVtZVJlZ2lzdHJ5KCkgeyBy
ZXR1cm4gbV9zY2hlbWVSZWdpc3RyeS5nZXQoKTsgfQogCisgICAgdm9pZCBjb29raWVBY2NlcHRQ
b2xpY3lDaGFuZ2VkKFdlYkNvcmU6OkhUVFBDb29raWVBY2NlcHRQb2xpY3kpOworCiBwcml2YXRl
OgogICAgIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzKE5ldHdvcmtQcm9jZXNzJiwgV2Vi
Q29yZTo6UHJvY2Vzc0lkZW50aWZpZXIsIFBBTDo6U2Vzc2lvbklELCBJUEM6OkNvbm5lY3Rpb246
OklkZW50aWZpZXIpOwogCkBAIC0yMDAsNyArMjAzLDYgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQg
Y29va2llc0ZvckRPTShjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlNhbWVT
aXRlSW5mbyYsIGNvbnN0IFVSTCYsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgV2ViQ29yZTo6
UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OkluY2x1ZGVTZWN1cmVDb29raWVzLCBXZWJDb3JlOjpT
aG91bGRBc2tJVFAsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nIGNvb2tpZVN0cmluZywg
Ym9vbCBzZWN1cmVDb29raWVzQWNjZXNzZWQpPiYmKTsKICAgICB2b2lkIHNldENvb2tpZXNGcm9t
RE9NKGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6U2FtZVNpdGVJbmZvJiwg
Y29uc3QgVVJMJiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJDb3JlOjpQYWdlSWRlbnRp
ZmllciwgV2ViQ29yZTo6U2hvdWxkQXNrSVRQLCBjb25zdCBTdHJpbmcmKTsKLSAgICB2b2lkIGNv
b2tpZXNFbmFibGVkKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwogICAgIHZvaWQg
Y29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25z
dCBXZWJDb3JlOjpTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmLCBPcHRpb25hbDxXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXI+LCBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4sIFdlYkNv
cmU6OkluY2x1ZGVTZWN1cmVDb29raWVzLCBXZWJDb3JlOjpTaG91bGRBc2tJVFAsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoU3RyaW5nIGNvb2tpZVN0cmluZywgYm9vbCBzZWN1cmVDb29raWVzQWNj
ZXNzZWQpPiYmKTsKICAgICB2b2lkIGdldFJhd0Nvb2tpZXMoY29uc3QgVVJMJiBmaXJzdFBhcnR5
LCBjb25zdCBXZWJDb3JlOjpTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmLCBPcHRpb25hbDxXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXI+LCBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4s
IFdlYkNvcmU6OlNob3VsZEFza0lUUCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8V2Vi
Q29yZTo6Q29va2llPiYmKT4mJik7CiAgICAgdm9pZCBkZWxldGVDb29raWUoY29uc3QgVVJMJiwg
Y29uc3QgU3RyaW5nJiBjb29raWVOYW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4gYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
Lm1lc3NhZ2VzLmluCmluZGV4IDg0Y2ZiZGYzZmI5MzRkNzkxNDM3MTYyMTFhMjUwNmZjZjYxMzRk
NWEuLjAyMGI0N2E3N2I3M2MxOGE2YTYyZDQ2NTAxNWE3Y2E0YmMzYWIwNTAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgpAQCAtMzYsNyArMzYsNiBAQCBtZXNz
YWdlcyAtPiBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyBMZWdhY3lSZWNlaXZlciB7CiAK
ICAgICBDb29raWVzRm9yRE9NKFVSTCBmaXJzdFBhcnR5LCBzdHJ1Y3QgV2ViQ29yZTo6U2FtZVNp
dGVJbmZvIHNhbWVTaXRlSW5mbywgVVJMIHVybCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZy
YW1lSUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgZW51bTpib29sIFdlYkNvcmU6
OkluY2x1ZGVTZWN1cmVDb29raWVzIGluY2x1ZGVTZWN1cmVDb29raWVzLCBlbnVtOmJvb2wgV2Vi
Q29yZTo6U2hvdWxkQXNrSVRQIHNob3VsZEFza0lUUCkgLT4gKFN0cmluZyBjb29raWVTdHJpbmcs
IGJvb2wgZGlkQWNjZXNzU2VjdXJlQ29va2llcykgU3luY2hyb25vdXMKICAgICBTZXRDb29raWVz
RnJvbURPTShVUkwgZmlyc3RQYXJ0eSwgc3RydWN0IFdlYkNvcmU6OlNhbWVTaXRlSW5mbyBzYW1l
U2l0ZUluZm8sIFVSTCB1cmwsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBXZWJD
b3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIGVudW06Ym9vbCBXZWJDb3JlOjpTaG91bGRBc2tJ
VFAgc2hvdWxkQXNrSVRQLCBTdHJpbmcgY29va2llU3RyaW5nKQotICAgIENvb2tpZXNFbmFibGVk
KCkgLT4gKGJvb2wgZW5hYmxlZCkgU3luY2hyb25vdXMKICAgICBDb29raWVSZXF1ZXN0SGVhZGVy
RmllbGRWYWx1ZShVUkwgZmlyc3RQYXJ0eSwgc3RydWN0IFdlYkNvcmU6OlNhbWVTaXRlSW5mbyBz
YW1lU2l0ZUluZm8sIFVSTCB1cmwsIE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4g
ZnJhbWVJRCwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgZW51bTpi
b29sIFdlYkNvcmU6OkluY2x1ZGVTZWN1cmVDb29raWVzIGluY2x1ZGVTZWN1cmVDb29raWVzLCBl
bnVtOmJvb2wgV2ViQ29yZTo6U2hvdWxkQXNrSVRQIHNob3VsZEFza0lUUCkgLT4gKFN0cmluZyBj
b29raWVTdHJpbmcsIGJvb2wgZGlkQWNjZXNzU2VjdXJlQ29va2llcykgU3luY2hyb25vdXMKICAg
ICBHZXRSYXdDb29raWVzKFVSTCBmaXJzdFBhcnR5LCBzdHJ1Y3QgV2ViQ29yZTo6U2FtZVNpdGVJ
bmZvIHNhbWVTaXRlSW5mbywgVVJMIHVybCwgT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyPiBmcmFtZUlELCBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBl
bnVtOmJvb2wgV2ViQ29yZTo6U2hvdWxkQXNrSVRQIHNob3VsZEFza0lUUCkgLT4gKFZlY3RvcjxX
ZWJDb3JlOjpDb29raWU+IGNvb2tpZXMpIFN5bmNocm9ub3VzCiAgICAgRGVsZXRlQ29va2llKFVS
TCB1cmwsIFN0cmluZyBjb29raWVOYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtQcm9jZXNzLmNwcAppbmRleCAzOTkyNmViNmFhODhhOWEyNjFiMzQwNzg1Zjc0
MThiODlmZjIxMTY4Li5hZjI0Y2ZmZjg3MTliNzgwYjViODA4MmYyYTNlODExMjEyN2M3MWJhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcApA
QCAtNzAsNiArNzAsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvRE5TLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9EZXByZWNhdGVkR2xvYmFsU2V0dGluZ3MuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0RpYWdu
b3N0aWNMb2dnaW5nQ2xpZW50Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9IVFRQQ29va2llQWNjZXB0
UG9saWN5Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9MZWdhY3lTY2hlbWVSZWdpc3RyeS5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvTG9nSW5pdGlhbGl6YXRpb24uaD4KICNpbmNsdWRlIDxXZWJDb3JlL01J
TUVUeXBlUmVnaXN0cnkuaD4KQEAgLTM2OCwxMSArMzY5LDExIEBAIHZvaWQgTmV0d29ya1Byb2Nl
c3M6OmluaXRpYWxpemVDb25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbikKICAg
ICAgICAgc3VwcGxlbWVudC0+aW5pdGlhbGl6ZUNvbm5lY3Rpb24oY29ubmVjdGlvbik7CiB9CiAK
LXZvaWQgTmV0d29ya1Byb2Nlc3M6OmNyZWF0ZU5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
KFByb2Nlc3NJZGVudGlmaWVyIGlkZW50aWZpZXIsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxJUEM6OkF0dGFjaG1lbnQ+JiYpPiYmIGNv
bXBsZXRpb25IYW5kbGVyKQordm9pZCBOZXR3b3JrUHJvY2Vzczo6Y3JlYXRlTmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MoUHJvY2Vzc0lkZW50aWZpZXIgaWRlbnRpZmllciwgUEFMOjpTZXNz
aW9uSUQgc2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPElQQzo6QXR0
YWNobWVudD4mJiwgSFRUUENvb2tpZUFjY2VwdFBvbGljeSk+JiYgY29tcGxldGlvbkhhbmRsZXIp
CiB7CiAgICAgYXV0byBpcGNDb25uZWN0aW9uID0gY3JlYXRlSVBDQ29ubmVjdGlvblBhaXIoKTsK
ICAgICBpZiAoIWlwY0Nvbm5lY3Rpb24pIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoeyB9
KTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoeyB9LCBIVFRQQ29va2llQWNjZXB0UG9saWN5
OjpOZXZlcik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTM4Miw3ICszODMsMTEgQEAg
dm9pZCBOZXR3b3JrUHJvY2Vzczo6Y3JlYXRlTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mo
UHJvY2Vzc0lkZW50aWZpZXIgaWRlbnQKICAgICBBU1NFUlQoIW1fd2ViUHJvY2Vzc0Nvbm5lY3Rp
b25zLmNvbnRhaW5zKGlkZW50aWZpZXIpKTsKICAgICBtX3dlYlByb2Nlc3NDb25uZWN0aW9ucy5h
ZGQoaWRlbnRpZmllciwgV1RGTW92ZShuZXdDb25uZWN0aW9uKSk7CiAKLSAgICBjb21wbGV0aW9u
SGFuZGxlcihXVEZNb3ZlKGlwY0Nvbm5lY3Rpb24tPnNlY29uZCkpOworICAgIEhUVFBDb29raWVB
Y2NlcHRQb2xpY3kgY29va2llQWNjZXB0UG9saWN5ID0gSFRUUENvb2tpZUFjY2VwdFBvbGljeTo6
TmV2ZXI7CisgICAgaWYgKGF1dG8qIHN0b3JhZ2UgPSBzdG9yYWdlU2Vzc2lvbihzZXNzaW9uSUQp
KQorICAgICAgICBjb29raWVBY2NlcHRQb2xpY3kgPSBzdG9yYWdlLT5jb29raWVBY2NlcHRQb2xp
Y3koKTsKKworICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUoaXBjQ29ubmVjdGlvbi0+c2Vj
b25kKSwgY29va2llQWNjZXB0UG9saWN5KTsKIAogICAgIGNvbm5lY3Rpb24uc2V0T25MaW5lU3Rh
dGUoTmV0d29ya1N0YXRlTm90aWZpZXI6OnNpbmdsZXRvbigpLm9uTGluZSgpKTsKIApAQCAtNTA3
LDYgKzUxMiwxMiBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjplbnN1cmVTZXNzaW9uKGNvbnN0IFBB
TDo6U2Vzc2lvbklEJiBzZXNzaW9uSUQsIGJvb2wgc2hvdWxkVQogI2VuZGlmCiB9CiAKK3ZvaWQg
TmV0d29ya1Byb2Nlc3M6OmNvb2tpZUFjY2VwdFBvbGljeUNoYW5nZWQoSFRUUENvb2tpZUFjY2Vw
dFBvbGljeSBuZXdQb2xpY3kpCit7CisgICAgZm9yIChhdXRvJiBjb25uZWN0aW9uIDogbV93ZWJQ
cm9jZXNzQ29ubmVjdGlvbnMudmFsdWVzKCkpCisgICAgICAgIGNvbm5lY3Rpb24tPmNvb2tpZUFj
Y2VwdFBvbGljeUNoYW5nZWQobmV3UG9saWN5KTsKK30KKwogV2ViQ29yZTo6TmV0d29ya1N0b3Jh
Z2VTZXNzaW9uKiBOZXR3b3JrUHJvY2Vzczo6c3RvcmFnZVNlc3Npb24oY29uc3QgUEFMOjpTZXNz
aW9uSUQmIHNlc3Npb25JRCkgY29uc3QKIHsKICAgICBpZiAoc2Vzc2lvbklEID09IFBBTDo6U2Vz
c2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtQcm9jZXNzLmgKaW5kZXggY2FhZGMyMDFiYjI0ZjUyZDBkN2QzYWVjYjg5Y2Q5
ZTNiMGFiYTYyNy4uZDZkOTU0NTMzOTY4YTFjNDFjMjVmNDUyMGFmMzgzZDMxNjQ3MTk2OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaApAQCAtODEs
NiArODEsNyBAQCBjbGFzcyBTdG9yYWdlUXVvdGFNYW5hZ2VyOwogY2xhc3MgTmV0d29ya1N0b3Jh
Z2VTZXNzaW9uOwogY2xhc3MgUmVzb3VyY2VFcnJvcjsKIGNsYXNzIFNXU2VydmVyOworZW51bSBj
bGFzcyBIVFRQQ29va2llQWNjZXB0UG9saWN5IDogdWludDhfdDsKIGVudW0gY2xhc3MgSW5jbHVk
ZUh0dHBPbmx5Q29va2llcyA6IGJvb2w7CiBlbnVtIGNsYXNzIFN0b3JlZENyZWRlbnRpYWxzUG9s
aWN5IDogdWludDhfdDsKIGVudW0gY2xhc3MgU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duIDog
Ym9vbDsKQEAgLTM0NCw2ICszNDUsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCByZXNldFNlcnZpY2VX
b3JrZXJGZXRjaFRpbWVvdXRGb3JUZXN0aW5nKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7
CiAgICAgU2Vjb25kcyBzZXJ2aWNlV29ya2VyRmV0Y2hUaW1lb3V0KCkgY29uc3QgeyByZXR1cm4g
bV9zZXJ2aWNlV29ya2VyRmV0Y2hUaW1lb3V0OyB9CiAKKyAgICB2b2lkIGNvb2tpZUFjY2VwdFBv
bGljeUNoYW5nZWQoV2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBvbGljeSk7CisKIHByaXZhdGU6
CiAgICAgdm9pZCBwbGF0Zm9ybUluaXRpYWxpemVOZXR3b3JrUHJvY2Vzcyhjb25zdCBOZXR3b3Jr
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYpOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3Jl
OjpOZXR3b3JrU3RvcmFnZVNlc3Npb24+IHBsYXRmb3JtQ3JlYXRlRGVmYXVsdFN0b3JhZ2VTZXNz
aW9uKCkgY29uc3Q7CkBAIC0zODQsNyArMzg3LDcgQEAgcHJpdmF0ZToKICAgICAvLyBNZXNzYWdl
IEhhbmRsZXJzCiAgICAgdm9pZCBkaWRSZWNlaXZlU3luY05ldHdvcmtQcm9jZXNzTWVzc2FnZShJ
UEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNv
ZGVyPiYpOwogICAgIHZvaWQgaW5pdGlhbGl6ZU5ldHdvcmtQcm9jZXNzKE5ldHdvcmtQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzJiYpOwotICAgIHZvaWQgY3JlYXRlTmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3MoV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIsIFBBTDo6U2Vzc2lvbklELCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPElQQzo6QXR0YWNobWVudD4mJik+JiYpOwor
ICAgIHZvaWQgY3JlYXRlTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoV2ViQ29yZTo6UHJv
Y2Vzc0lkZW50aWZpZXIsIFBBTDo6U2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9w
dGlvbmFsPElQQzo6QXR0YWNobWVudD4mJiwgV2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBvbGlj
eSk+JiYpOwogCiAgICAgdm9pZCBmZXRjaFdlYnNpdGVEYXRhKFBBTDo6U2Vzc2lvbklELCBPcHRp
b25TZXQ8V2Vic2l0ZURhdGFUeXBlPiwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhRmV0Y2hPcHRpb24+
LCB1aW50NjRfdCBjYWxsYmFja0lEKTsKICAgICB2b2lkIGRlbGV0ZVdlYnNpdGVEYXRhKFBBTDo6
U2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiwgV2FsbFRpbWUgbW9kaWZpZWRT
aW5jZSwgdWludDY0X3QgY2FsbGJhY2tJRCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgppbmRleCBhNTY2MTNjZGEz
NGM3ZTNhY2U1NTRmZDc4YjM1OTRiYWJhYmQ2NjA2Li4zOWQxMWYzYTI2NTMzMzY2YjY5YjJmNzA1
YTlkZGIxY2MzMWMxOGE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4KQEAgLTI1LDcgKzI1LDcgQEAgbWVzc2Fn
ZXMgLT4gTmV0d29ya1Byb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewogICAgIEluaXRpYWxpemVOZXR3
b3JrUHJvY2VzcyhzdHJ1Y3QgV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
cyBwcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzKQogCiAgICAgIyBDcmVhdGVzIGEgY29ubmVjdGlv
biBmb3IgY29tbXVuaWNhdGlvbiB3aXRoIGEgV2ViUHJvY2VzcwotICAgIENyZWF0ZU5ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzKFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyIHByb2Nlc3NJ
ZGVudGlmaWVyLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+IChPcHRpb25hbDxJUEM6OkF0
dGFjaG1lbnQ+IGNvbm5lY3Rpb25JZGVudGlmaWVyKSBBc3luYworICAgIENyZWF0ZU5ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzKFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyIHByb2Nlc3NJ
ZGVudGlmaWVyLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+IChPcHRpb25hbDxJUEM6OkF0
dGFjaG1lbnQ+IGNvbm5lY3Rpb25JZGVudGlmaWVyLCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6SFRU
UENvb2tpZUFjY2VwdFBvbGljeSBjb29raWVBY2NlcHRQb2xpY3kpIEFzeW5jCiAKICNpZiBVU0Uo
U09VUCkKICAgICBTZXRJZ25vcmVUTFNFcnJvcnMoYm9vbCBpZ25vcmVUTFNFcnJvcnMpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKaW5kZXggNTA5ZTM2N2ExYjBiNmFkMzkwMWNkNWRlMTIy
YmZlY2EzMGYzYzc1Mi4uY2I2YzMxMDlmOGVhNDEzMzMzOTYxYzg3YzJlZjZkNjk4MTc3OGVmMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaApAQCAtMzQsNyArMzQsNyBAQAogI2luY2x1
ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiAjaWYgVVNFKFNPVVApCi0jaW5jbHVkZSAiSFRU
UENvb2tpZUFjY2VwdFBvbGljeS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvSFRUUENvb2tpZUFjY2Vw
dFBvbGljeS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU291cE5ldHdvcmtQcm94eVNldHRpbmdzLmg+
CiAjZW5kaWYKIApAQCAtNzYsNyArNzYsNyBAQCBzdHJ1Y3QgTmV0d29ya1Byb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnMgewogICAgIFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzIGRlZmF1bHREYXRh
U3RvcmVQYXJhbWV0ZXJzOwogICAgIAogI2lmIFVTRShTT1VQKQotICAgIEhUVFBDb29raWVBY2Nl
cHRQb2xpY3kgY29va2llQWNjZXB0UG9saWN5IHsgSFRUUENvb2tpZUFjY2VwdFBvbGljeTo6QWx3
YXlzQWNjZXB0IH07CisgICAgV2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBvbGljeSBjb29raWVB
Y2NlcHRQb2xpY3kgeyBXZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0UG9saWN5OjpBbHdheXNBY2Nl
cHQgfTsKICAgICBib29sIGlnbm9yZVRMU0Vycm9ycyB7IGZhbHNlIH07CiAgICAgVmVjdG9yPFN0
cmluZz4gbGFuZ3VhZ2VzOwogICAgIFdlYkNvcmU6OlNvdXBOZXR3b3JrUHJveHlTZXR0aW5ncyBw
cm94eVNldHRpbmdzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvSFRUUENvb2tp
ZUFjY2VwdFBvbGljeS5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvSFRUUENvb2tpZUFjY2VwdFBv
bGljeS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0NTdjMjM0NGM5Yzg5ODZmZjZl
MjMyMzMwNWEyODQzM2Q4NmVhMGViLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0hUVFBDb29raWVBY2NlcHRQb2xpY3ku
aAorKysgL2Rldi9udWxsCkBAIC0xLDUxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQot
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotbmFtZXNwYWNlIFdlYktpdCB7
Ci0KLWVudW0gY2xhc3MgSFRUUENvb2tpZUFjY2VwdFBvbGljeSA6IHVpbnQ4X3QgewotICAgIEFs
d2F5c0FjY2VwdCA9IDAsCi0gICAgTmV2ZXIgPSAxLAotICAgIE9ubHlGcm9tTWFpbkRvY3VtZW50
RG9tYWluID0gMiwKLSAgICBFeGNsdXNpdmVseUZyb21NYWluRG9jdW1lbnREb21haW4gPSAzLAot
fTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLW5hbWVzcGFjZSBXVEYgewotCi10ZW1wbGF0
ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYktpdDo6SFRUUENvb2tpZUFjY2VwdFBvbGljeT4gewot
ICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8Ci0gICAgICAgIFdlYktpdDo6SFRUUENvb2tp
ZUFjY2VwdFBvbGljeSwKLSAgICAgICAgV2ViS2l0OjpIVFRQQ29va2llQWNjZXB0UG9saWN5OjpB
bHdheXNBY2NlcHQsCi0gICAgICAgIFdlYktpdDo6SFRUUENvb2tpZUFjY2VwdFBvbGljeTo6TmV2
ZXIsCi0gICAgICAgIFdlYktpdDo6SFRUUENvb2tpZUFjY2VwdFBvbGljeTo6T25seUZyb21NYWlu
RG9jdW1lbnREb21haW4sCi0gICAgICAgIFdlYktpdDo6SFRUUENvb2tpZUFjY2VwdFBvbGljeTo6
RXhjbHVzaXZlbHlGcm9tTWFpbkRvY3VtZW50RG9tYWluCi0gICAgPjsKLX07Ci0KLX0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMu
aCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaApp
bmRleCA0OTZjZmM5ZjdlODRhYWM2MjZiZTE3ZTdlNWIwMTZiOGQ1Y2M1MDBmLi5iNDMwMmQ2OGNl
N2MxNjk2MmVlYjg3Mjc3YzVmODNmYjg3ZjQ4OGM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKKysrIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCkBAIC00Nyw3ICs0Nyw3IEBA
CiAjZW5kaWYKIAogI2lmIFVTRShTT1VQKQotI2luY2x1ZGUgIkhUVFBDb29raWVBY2NlcHRQb2xp
Y3kuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0hUVFBDb29raWVBY2NlcHRQb2xpY3kuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL1NvdXBOZXR3b3JrUHJveHlTZXR0aW5ncy5oPgogI2VuZGlmCiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElIVFRQQ29va2llU3RvcmUuY3Bw
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUhUVFBDb29raWVTdG9yZS5jcHAKaW5k
ZXggYzJmN2VhMjAxMTA1MDEyZTJlNzM0OThhYzE3N2ZkZmQzMDgzYzkxNy4uMmVlMzBiZGZiZjc4
NTk3NzE0MmJhNzdjZTBhM2I4MGU5YzZjZjM1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0FQSUhUVFBDb29raWVTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0FQSUhUVFBDb29raWVTdG9yZS5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNp
bmNsdWRlICJXZWJzaXRlRGF0YVN0b3JlLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9Db29raWUuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL0Nvb2tpZVN0b3JhZ2UuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0hU
VFBDb29raWVBY2NlcHRQb2xpY3kuaD4KICNpbmNsdWRlIDxXZWJDb3JlL05ldHdvcmtTdG9yYWdl
U2Vzc2lvbi5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwpAQCAtMTMzLDcgKzEzNCw3IEBA
IHZvaWQgSFRUUENvb2tpZVN0b3JlOjpkZWxldGVBbGxDb29raWVzKENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuCiAgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFdU
Rk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAotdm9pZCBIVFRQQ29va2llU3RvcmU6OnNl
dEhUVFBDb29raWVBY2NlcHRQb2xpY3koV2ViS2l0OjpIVFRQQ29va2llQWNjZXB0UG9saWN5IHBv
bGljeSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9p
ZCBIVFRQQ29va2llU3RvcmU6OnNldEhUVFBDb29raWVBY2NlcHRQb2xpY3koV2ViQ29yZTo6SFRU
UENvb2tpZUFjY2VwdFBvbGljeSBwb2xpY3ksIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBj
b21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBhdXRvKiBwb29sID0gbV9vd25pbmdEYXRhU3RvcmUt
PnByb2Nlc3NQb29sRm9yQ29va2llU3RvcmFnZU9wZXJhdGlvbnMoKTsKICAgICBpZiAoIXBvb2wp
IHsKQEAgLTI3OSw3ICsyODAsNyBAQCB2b2lkIEhUVFBDb29raWVTdG9yZTo6ZGVsZXRlQ29va2ll
RnJvbURlZmF1bHRVSVByb2Nlc3NDb29raWVTdG9yZShjb25zdCBXZWJDb3JlOgogdm9pZCBIVFRQ
Q29va2llU3RvcmU6OnN0YXJ0T2JzZXJ2aW5nQ2hhbmdlc1RvRGVmYXVsdFVJUHJvY2Vzc0Nvb2tp
ZVN0b3JlKEZ1bmN0aW9uPHZvaWQoKT4mJikgeyB9CiB2b2lkIEhUVFBDb29raWVTdG9yZTo6c3Rv
cE9ic2VydmluZ0NoYW5nZXNUb0RlZmF1bHRVSVByb2Nlc3NDb29raWVTdG9yZSgpIHsgfQogdm9p
ZCBIVFRQQ29va2llU3RvcmU6OmRlbGV0ZUNvb2tpZXNJbkRlZmF1bHRVSVByb2Nlc3NDb29raWVT
dG9yZSgpIHsgfQotdm9pZCBIVFRQQ29va2llU3RvcmU6OnNldEhUVFBDb29raWVBY2NlcHRQb2xp
Y3lJbkRlZmF1bHRVSVByb2Nlc3NDb29raWVTdG9yZShXZWJLaXQ6OkhUVFBDb29raWVBY2NlcHRQ
b2xpY3kpIHsgfQordm9pZCBIVFRQQ29va2llU3RvcmU6OnNldEhUVFBDb29raWVBY2NlcHRQb2xp
Y3lJbkRlZmF1bHRVSVByb2Nlc3NDb29raWVTdG9yZShXZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0
UG9saWN5KSB7IH0KICNlbmRpZgogICAgIAogfSAvLyBuYW1lc3BhY2UgQVBJCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJSFRUUENvb2tpZVN0b3JlLmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJSFRUUENvb2tpZVN0b3JlLmgKaW5kZXggMmU0MWY2
MjRkNDc0ZjVmZjQxZTE1MjUxMjBmNWJmN2E2YmIyNmQzZC4uODE3OWM0NGY0ZTU4ZDJiNjI5ODU1
Y2E5MTU5MDk0ZjQzMmM0NmM3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0FQSUhUVFBDb29raWVTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9BUElIVFRQQ29va2llU3RvcmUuaApAQCAtMjYsNyArMjYsNiBAQAogI3ByYWdtYSBvbmNlCiAK
ICNpbmNsdWRlICJBUElPYmplY3QuaCIKLSNpbmNsdWRlICJIVFRQQ29va2llQWNjZXB0UG9saWN5
LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9Db29raWUuaD4KICNpbmNsdWRlIDx3dGYvQ29tcGxldGlv
bkhhbmRsZXIuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgpAQCAtMzcsMTIgKzM2LDEyIEBA
IHN0cnVjdCBDb29raWU7CiAjaWYgUExBVEZPUk0oQ09DT0EpCiBjbGFzcyBDb29raWVTdG9yYWdl
T2JzZXJ2ZXI7CiAjZW5kaWYKK2VudW0gY2xhc3MgSFRUUENvb2tpZUFjY2VwdFBvbGljeSA6IHVp
bnQ4X3Q7CiB9CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3MgV2ViQ29va2llTWFuYWdlclBy
b3h5OwogY2xhc3MgV2Vic2l0ZURhdGFTdG9yZTsKLWVudW0gY2xhc3MgSFRUUENvb2tpZUFjY2Vw
dFBvbGljeSA6IHVpbnQ4X3Q7CiB9CiAKIG5hbWVzcGFjZSBBUEkgewpAQCAtNjMsNyArNjIsNyBA
QCBwdWJsaWM6CiAgICAgdm9pZCBkZWxldGVDb29raWUoY29uc3QgV2ViQ29yZTo6Q29va2llJiwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICAKICAgICB2b2lkIGRlbGV0ZUFsbENv
b2tpZXMoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKLSAgICB2b2lkIHNldEhUVFBDb29r
aWVBY2NlcHRQb2xpY3koV2ViS2l0OjpIVFRQQ29va2llQWNjZXB0UG9saWN5LCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKCk+JiYpOworICAgIHZvaWQgc2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShX
ZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0UG9saWN5LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+
JiYpOwogCiAgICAgY2xhc3MgT2JzZXJ2ZXIgewogICAgIHB1YmxpYzoKQEAgLTkwLDcgKzg5LDcg
QEAgcHJpdmF0ZToKICAgICB2b2lkIHN0YXJ0T2JzZXJ2aW5nQ2hhbmdlc1RvRGVmYXVsdFVJUHJv
Y2Vzc0Nvb2tpZVN0b3JlKEZ1bmN0aW9uPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzdG9wT2JzZXJ2
aW5nQ2hhbmdlc1RvRGVmYXVsdFVJUHJvY2Vzc0Nvb2tpZVN0b3JlKCk7CiAgICAgdm9pZCBkZWxl
dGVDb29raWVzSW5EZWZhdWx0VUlQcm9jZXNzQ29va2llU3RvcmUoKTsKLSAgICB2b2lkIHNldEhU
VFBDb29raWVBY2NlcHRQb2xpY3lJbkRlZmF1bHRVSVByb2Nlc3NDb29raWVTdG9yZShXZWJLaXQ6
OkhUVFBDb29raWVBY2NlcHRQb2xpY3kpOworICAgIHZvaWQgc2V0SFRUUENvb2tpZUFjY2VwdFBv
bGljeUluRGVmYXVsdFVJUHJvY2Vzc0Nvb2tpZVN0b3JlKFdlYkNvcmU6OkhUVFBDb29raWVBY2Nl
cHRQb2xpY3kpOwogICAgIAogICAgIC8vIEZJWE1FOiBUaGlzIGlzIGEgcmVmZXJlbmNlIGN5Y2xl
LgogICAgIFJlZjxXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU+IG1fb3duaW5nRGF0YVN0b3JlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmggYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaAppbmRleCAwMGQxNjI3Mjcw
MjhhNjZiNDA3YjM1ZDU2MThkOTA1YzFlYTNiYTA0Li44MTA1NWE2MTliYTE5ZjU2NTIyYzQ3ODAx
YTVhMGNhYzNjNWZmYzQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Qy9XS0FQSUNhc3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNh
c3QuaApAQCAtMjgsNyArMjgsNiBAQAogI2RlZmluZSBXS0FQSUNhc3RfaAogCiAjaW5jbHVkZSAi
Q2FjaGVNb2RlbC5oIgotI2luY2x1ZGUgIkhUVFBDb29raWVBY2NlcHRQb2xpY3kuaCIKICNpbmNs
dWRlICJJbmplY3RlZEJ1bmRsZUhpdFRlc3RSZXN1bHRNZWRpYVR5cGUuaCIKICNpbmNsdWRlICJQ
bHVnaW5Nb2R1bGVJbmZvLmgiCiAjaW5jbHVkZSAiUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uLmgi
CkBAIC00Niw2ICs0NSw3IEBACiAjaW5jbHVkZSAiV0tTaGFyZWRBUElDYXN0LmgiCiAjaW5jbHVk
ZSA8V2ViQ29yZS9DcmVkZW50aWFsLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUxvYWRlclR5
cGVzLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9IVFRQQ29va2llQWNjZXB0UG9saWN5Lmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9QbHVnaW5EYXRhLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Qcm90ZWN0aW9u
U3BhY2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NldHRpbmdzLmg+CkBAIC0zNjksMzMgKzM2OSwz
MyBAQCBpbmxpbmUgUmVzb3VyY2VDYWNoZXNUb0NsZWFyIHRvUmVzb3VyY2VDYWNoZXNUb0NsZWFy
KFdLUmVzb3VyY2VDYWNoZXNUb0NsZWFyIHdrUgogICAgIHJldHVybiBBbGxSZXNvdXJjZUNhY2hl
czsKIH0KIAotaW5saW5lIEhUVFBDb29raWVBY2NlcHRQb2xpY3kgdG9IVFRQQ29va2llQWNjZXB0
UG9saWN5KFdLSFRUUENvb2tpZUFjY2VwdFBvbGljeSBwb2xpY3kpCitpbmxpbmUgV2ViQ29yZTo6
SFRUUENvb2tpZUFjY2VwdFBvbGljeSB0b0hUVFBDb29raWVBY2NlcHRQb2xpY3koV0tIVFRQQ29v
a2llQWNjZXB0UG9saWN5IHBvbGljeSkKIHsKICAgICBzd2l0Y2ggKHBvbGljeSkgewogICAgIGNh
c2Uga1dLSFRUUENvb2tpZUFjY2VwdFBvbGljeUFsd2F5czoKLSAgICAgICAgcmV0dXJuIEhUVFBD
b29raWVBY2NlcHRQb2xpY3k6OkFsd2F5c0FjY2VwdDsKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6
OkhUVFBDb29raWVBY2NlcHRQb2xpY3k6OkFsd2F5c0FjY2VwdDsKICAgICBjYXNlIGtXS0hUVFBD
b29raWVBY2NlcHRQb2xpY3lOZXZlcjoKLSAgICAgICAgcmV0dXJuIEhUVFBDb29raWVBY2NlcHRQ
b2xpY3k6Ok5ldmVyOworICAgICAgICByZXR1cm4gV2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBv
bGljeTo6TmV2ZXI7CiAgICAgY2FzZSBrV0tIVFRQQ29va2llQWNjZXB0UG9saWN5T25seUZyb21N
YWluRG9jdW1lbnREb21haW46Ci0gICAgICAgIHJldHVybiBIVFRQQ29va2llQWNjZXB0UG9saWN5
OjpPbmx5RnJvbU1haW5Eb2N1bWVudERvbWFpbjsKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkhU
VFBDb29raWVBY2NlcHRQb2xpY3k6Ok9ubHlGcm9tTWFpbkRvY3VtZW50RG9tYWluOwogICAgIGNh
c2Uga1dLSFRUUENvb2tpZUFjY2VwdFBvbGljeUV4Y2x1c2l2ZWx5RnJvbU1haW5Eb2N1bWVudERv
bWFpbjoKLSAgICAgICAgcmV0dXJuIEhUVFBDb29raWVBY2NlcHRQb2xpY3k6OkV4Y2x1c2l2ZWx5
RnJvbU1haW5Eb2N1bWVudERvbWFpbjsKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkhUVFBDb29r
aWVBY2NlcHRQb2xpY3k6OkV4Y2x1c2l2ZWx5RnJvbU1haW5Eb2N1bWVudERvbWFpbjsKICAgICB9
CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gSFRUUENvb2tpZUFjY2Vw
dFBvbGljeTo6QWx3YXlzQWNjZXB0OworICAgIHJldHVybiBXZWJDb3JlOjpIVFRQQ29va2llQWNj
ZXB0UG9saWN5OjpBbHdheXNBY2NlcHQ7CiB9CiAKLWlubGluZSBXS0hUVFBDb29raWVBY2NlcHRQ
b2xpY3kgdG9BUEkoSFRUUENvb2tpZUFjY2VwdFBvbGljeSBwb2xpY3kpCitpbmxpbmUgV0tIVFRQ
Q29va2llQWNjZXB0UG9saWN5IHRvQVBJKFdlYkNvcmU6OkhUVFBDb29raWVBY2NlcHRQb2xpY3kg
cG9saWN5KQogewogICAgIHN3aXRjaCAocG9saWN5KSB7Ci0gICAgY2FzZSBIVFRQQ29va2llQWNj
ZXB0UG9saWN5OjpBbHdheXNBY2NlcHQ6CisgICAgY2FzZSBXZWJDb3JlOjpIVFRQQ29va2llQWNj
ZXB0UG9saWN5OjpBbHdheXNBY2NlcHQ6CiAgICAgICAgIHJldHVybiBrV0tIVFRQQ29va2llQWNj
ZXB0UG9saWN5QWx3YXlzOwotICAgIGNhc2UgSFRUUENvb2tpZUFjY2VwdFBvbGljeTo6TmV2ZXI6
CisgICAgY2FzZSBXZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0UG9saWN5OjpOZXZlcjoKICAgICAg
ICAgcmV0dXJuIGtXS0hUVFBDb29raWVBY2NlcHRQb2xpY3lOZXZlcjsKLSAgICBjYXNlIEhUVFBD
b29raWVBY2NlcHRQb2xpY3k6Ok9ubHlGcm9tTWFpbkRvY3VtZW50RG9tYWluOgorICAgIGNhc2Ug
V2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBvbGljeTo6T25seUZyb21NYWluRG9jdW1lbnREb21h
aW46CiAgICAgICAgIHJldHVybiBrV0tIVFRQQ29va2llQWNjZXB0UG9saWN5T25seUZyb21NYWlu
RG9jdW1lbnREb21haW47Ci0gICAgY2FzZSBIVFRQQ29va2llQWNjZXB0UG9saWN5OjpFeGNsdXNp
dmVseUZyb21NYWluRG9jdW1lbnREb21haW46CisgICAgY2FzZSBXZWJDb3JlOjpIVFRQQ29va2ll
QWNjZXB0UG9saWN5OjpFeGNsdXNpdmVseUZyb21NYWluRG9jdW1lbnREb21haW46CiAgICAgICAg
IHJldHVybiBrV0tIVFRQQ29va2llQWNjZXB0UG9saWN5RXhjbHVzaXZlbHlGcm9tTWFpbkRvY3Vt
ZW50RG9tYWluOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL0FQSUhUVFBDb29raWVTdG9yZUNvY29hLm1tIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL0FQSUhUVFBDb29raWVTdG9yZUNvY29hLm1tCmluZGV4IGFkMTk2NzYx
ZDQ4NDAyMWFiYjYzZmM5ZDVlZDA3ZWQ2NWZmZTQ0Y2IuLjc5MTIwMWM0NzdlNWQ4YTE3MTc0MTNm
MDIxZTJiZjc1MjU2MzY4Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9BUElIVFRQQ29va2llU3RvcmVDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvQVBJSFRUUENvb2tpZVN0b3JlQ29jb2EubW0KQEAgLTI4LDYgKzI4
LDcgQEAKIAogI2luY2x1ZGUgPFdlYkNvcmUvQ29va2llLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9D
b29raWVTdG9yYWdlT2JzZXJ2ZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0hUVFBDb29raWVBY2Nl
cHRQb2xpY3kuaD4KICNpbmNsdWRlIDxwYWwvc3BpL2NmL0NGTmV0d29ya1NQSS5oPgogCiBuYW1l
c3BhY2UgQVBJIHsKQEAgLTc1LDIzICs3NiwyMyBAQCB2b2lkIEhUVFBDb29raWVTdG9yZTo6ZGVs
ZXRlQ29va2llc0luRGVmYXVsdFVJUHJvY2Vzc0Nvb2tpZVN0b3JlKCkKICAgICBbW05TSFRUUENv
b2tpZVN0b3JhZ2Ugc2hhcmVkSFRUUENvb2tpZVN0b3JhZ2VdIHJlbW92ZUNvb2tpZXNTaW5jZURh
dGU6W05TRGF0ZSBkaXN0YW50UGFzdF1dOwogfQogCi1zdGF0aWMgTlNIVFRQQ29va2llQWNjZXB0
UG9saWN5IHRvTlNIVFRQQ29va2llQWNjZXB0UG9saWN5KFdlYktpdDo6SFRUUENvb2tpZUFjY2Vw
dFBvbGljeSBwb2xpY3kpCitzdGF0aWMgTlNIVFRQQ29va2llQWNjZXB0UG9saWN5IHRvTlNIVFRQ
Q29va2llQWNjZXB0UG9saWN5KFdlYkNvcmU6OkhUVFBDb29raWVBY2NlcHRQb2xpY3kgcG9saWN5
KQogewogICAgIHN3aXRjaCAocG9saWN5KSB7Ci0gICAgY2FzZSBXZWJLaXQ6OkhUVFBDb29raWVB
Y2NlcHRQb2xpY3k6OkFsd2F5c0FjY2VwdDoKKyAgICBjYXNlIFdlYkNvcmU6OkhUVFBDb29raWVB
Y2NlcHRQb2xpY3k6OkFsd2F5c0FjY2VwdDoKICAgICAgICAgcmV0dXJuIE5TSFRUUENvb2tpZUFj
Y2VwdFBvbGljeUFsd2F5czsKLSAgICBjYXNlIFdlYktpdDo6SFRUUENvb2tpZUFjY2VwdFBvbGlj
eTo6TmV2ZXI6CisgICAgY2FzZSBXZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0UG9saWN5OjpOZXZl
cjoKICAgICAgICAgcmV0dXJuIE5TSFRUUENvb2tpZUFjY2VwdFBvbGljeU5ldmVyOwotICAgIGNh
c2UgV2ViS2l0OjpIVFRQQ29va2llQWNjZXB0UG9saWN5OjpPbmx5RnJvbU1haW5Eb2N1bWVudERv
bWFpbjoKKyAgICBjYXNlIFdlYkNvcmU6OkhUVFBDb29raWVBY2NlcHRQb2xpY3k6Ok9ubHlGcm9t
TWFpbkRvY3VtZW50RG9tYWluOgogICAgICAgICByZXR1cm4gTlNIVFRQQ29va2llQWNjZXB0UG9s
aWN5T25seUZyb21NYWluRG9jdW1lbnREb21haW47Ci0gICAgY2FzZSBXZWJLaXQ6OkhUVFBDb29r
aWVBY2NlcHRQb2xpY3k6OkV4Y2x1c2l2ZWx5RnJvbU1haW5Eb2N1bWVudERvbWFpbjoKKyAgICBj
YXNlIFdlYkNvcmU6OkhUVFBDb29raWVBY2NlcHRQb2xpY3k6OkV4Y2x1c2l2ZWx5RnJvbU1haW5E
b2N1bWVudERvbWFpbjoKICAgICAgICAgcmV0dXJuIChOU0hUVFBDb29raWVBY2NlcHRQb2xpY3kp
TlNIVFRQQ29va2llQWNjZXB0UG9saWN5RXhjbHVzaXZlbHlGcm9tTWFpbkRvY3VtZW50RG9tYWlu
OwogICAgIH0KICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICByZXR1cm4gTlNIVFRQQ29v
a2llQWNjZXB0UG9saWN5QWx3YXlzOwogfQogCi12b2lkIEhUVFBDb29raWVTdG9yZTo6c2V0SFRU
UENvb2tpZUFjY2VwdFBvbGljeUluRGVmYXVsdFVJUHJvY2Vzc0Nvb2tpZVN0b3JlKFdlYktpdDo6
SFRUUENvb2tpZUFjY2VwdFBvbGljeSBwb2xpY3kpCit2b2lkIEhUVFBDb29raWVTdG9yZTo6c2V0
SFRUUENvb2tpZUFjY2VwdFBvbGljeUluRGVmYXVsdFVJUHJvY2Vzc0Nvb2tpZVN0b3JlKFdlYkNv
cmU6OkhUVFBDb29raWVBY2NlcHRQb2xpY3kgcG9saWN5KQogewogICAgIFtbTlNIVFRQQ29va2ll
U3RvcmFnZSBzaGFyZWRIVFRQQ29va2llU3RvcmFnZV0gc2V0Q29va2llQWNjZXB0UG9saWN5OnRv
TlNIVFRQQ29va2llQWNjZXB0UG9saWN5KHBvbGljeSldOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLSFRUUENvb2tpZVN0b3JlLm1tIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLSFRUUENvb2tpZVN0b3JlLm1tCmluZGV4IDgx
ZDM3MDNiMGVlYTgyZTVlNmM2MmYzMjIyYWM0ZTY4MTlmNmIzYTYuLjliNDY2M2M0Y2FiNjg0ZTNk
NzRjOTY1NjM4ZmIyZTJmYzY4M2I4MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS0hUVFBDb29raWVTdG9yZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tIVFRQQ29va2llU3RvcmUubW0KQEAgLTI2LDggKzI2LDggQEAK
ICNpbXBvcnQgImNvbmZpZy5oIgogI2ltcG9ydCAiV0tIVFRQQ29va2llU3RvcmVJbnRlcm5hbC5o
IgogCi0jaW1wb3J0ICJIVFRQQ29va2llQWNjZXB0UG9saWN5LmgiCiAjaW1wb3J0IDxXZWJDb3Jl
L0Nvb2tpZS5oPgorI2ltcG9ydCA8V2ViQ29yZS9IVFRQQ29va2llQWNjZXB0UG9saWN5Lmg+CiAj
aW1wb3J0IDxwYWwvc3BpL2NmL0NGTmV0d29ya1NQSS5oPgogI2ltcG9ydCA8d3RmL0hhc2hNYXAu
aD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1tIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2wubW0KaW5kZXggMDhlNWI5ZjAxMzVlYWZlMWFh
OGY0ZGU0YTgyYjZiODkwYmI5MTliMy4uM2ZmY2ZiODkzMzdmZjA5NDQ5ZjhhYTlmMjhmZGZiY2Q0
MmViZmU0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
UHJvY2Vzc1Bvb2wubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
UHJvY2Vzc1Bvb2wubW0KQEAgLTIwMCwyMSArMjAwLDIxIEBAIC0gKHZvaWQpX3NldENhbkhhbmRs
ZUhUVFBTU2VydmVyVHJ1c3RFdmFsdWF0aW9uOihCT09MKXZhbHVlCiB7CiB9CiAKLXN0YXRpYyBX
ZWJLaXQ6OkhUVFBDb29raWVBY2NlcHRQb2xpY3kgdG9IVFRQQ29va2llQWNjZXB0UG9saWN5KE5T
SFRUUENvb2tpZUFjY2VwdFBvbGljeSBwb2xpY3kpCitzdGF0aWMgV2ViQ29yZTo6SFRUUENvb2tp
ZUFjY2VwdFBvbGljeSB0b0hUVFBDb29raWVBY2NlcHRQb2xpY3koTlNIVFRQQ29va2llQWNjZXB0
UG9saWN5IHBvbGljeSkKIHsKICAgICBzd2l0Y2ggKHN0YXRpY19jYXN0PE5TVUludGVnZXI+KHBv
bGljeSkpIHsKICAgICBjYXNlIE5TSFRUUENvb2tpZUFjY2VwdFBvbGljeUFsd2F5czoKLSAgICAg
ICAgcmV0dXJuIFdlYktpdDo6SFRUUENvb2tpZUFjY2VwdFBvbGljeTo6QWx3YXlzQWNjZXB0Owor
ICAgICAgICByZXR1cm4gV2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBvbGljeTo6QWx3YXlzQWNj
ZXB0OwogICAgIGNhc2UgTlNIVFRQQ29va2llQWNjZXB0UG9saWN5TmV2ZXI6Ci0gICAgICAgIHJl
dHVybiBXZWJLaXQ6OkhUVFBDb29raWVBY2NlcHRQb2xpY3k6Ok5ldmVyOworICAgICAgICByZXR1
cm4gV2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBvbGljeTo6TmV2ZXI7CiAgICAgY2FzZSBOU0hU
VFBDb29raWVBY2NlcHRQb2xpY3lPbmx5RnJvbU1haW5Eb2N1bWVudERvbWFpbjoKLSAgICAgICAg
cmV0dXJuIFdlYktpdDo6SFRUUENvb2tpZUFjY2VwdFBvbGljeTo6T25seUZyb21NYWluRG9jdW1l
bnREb21haW47CisgICAgICAgIHJldHVybiBXZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0UG9saWN5
OjpPbmx5RnJvbU1haW5Eb2N1bWVudERvbWFpbjsKICAgICBjYXNlIE5TSFRUUENvb2tpZUFjY2Vw
dFBvbGljeUV4Y2x1c2l2ZWx5RnJvbU1haW5Eb2N1bWVudERvbWFpbjoKLSAgICAgICAgcmV0dXJu
IFdlYktpdDo6SFRUUENvb2tpZUFjY2VwdFBvbGljeTo6RXhjbHVzaXZlbHlGcm9tTWFpbkRvY3Vt
ZW50RG9tYWluOworICAgICAgICByZXR1cm4gV2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBvbGlj
eTo6RXhjbHVzaXZlbHlGcm9tTWFpbkRvY3VtZW50RG9tYWluOwogICAgIH0KIAogICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiBXZWJLaXQ6OkhUVFBDb29raWVBY2NlcHRQb2xp
Y3k6OkFsd2F5c0FjY2VwdDsKKyAgICByZXR1cm4gV2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBv
bGljeTo6QWx3YXlzQWNjZXB0OwogfQogCiAtICh2b2lkKV9zZXRDb29raWVBY2NlcHRQb2xpY3k6
KE5TSFRUUENvb2tpZUFjY2VwdFBvbGljeSlwb2xpY3kKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdENvb2tpZU1hbmFnZXIuY3BwIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0Q29va2llTWFuYWdlci5jcHAKaW5kZXggYjhj
NTA5MDEzM2UyZGMzNjA4YWNlNDFkYTE0OTJhMTlkZWU5OGEwMy4uMjdmYmRlMjI3MTQ4MGZkM2Zl
ZjI5MDMwMWM0ZWE3YWE1NmVhZTRhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL2dsaWIvV2ViS2l0Q29va2llTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0Q29va2llTWFuYWdlci5jcHAKQEAgLTI4LDYgKzI4LDcg
QEAKICNpbmNsdWRlICJXZWJLaXRXZWJzaXRlRGF0YU1hbmFnZXJQcml2YXRlLmgiCiAjaW5jbHVk
ZSAiV2ViS2l0V2Vic2l0ZURhdGFQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2Vic2l0ZURhdGFSZWNv
cmQuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0hUVFBDb29raWVBY2NlcHRQb2xpY3kuaD4KICNpbmNs
dWRlIDxnbGliL2dpMThuLWxpYi5oPgogI2luY2x1ZGUgPHBhbC9TZXNzaW9uSUQuaD4KICNpbmNs
dWRlIDx3dGYvZ2xpYi9HUmVmUHRyLmg+CkBAIC04NywxNCArODgsMTQgQEAgc3RhdGljIGlubGlu
ZSBTb3VwQ29va2llUGVyc2lzdGVudFN0b3JhZ2VUeXBlIHRvU291cENvb2tpZVBlcnNpc3RlbnRT
dG9yYWdlVHlwZSgKICAgICB9CiB9CiAKLXN0YXRpYyBpbmxpbmUgV2ViS2l0Q29va2llQWNjZXB0
UG9saWN5IHRvV2ViS2l0Q29va2llQWNjZXB0UG9saWN5KEhUVFBDb29raWVBY2NlcHRQb2xpY3kg
aHR0cFBvbGljeSkKK3N0YXRpYyBpbmxpbmUgV2ViS2l0Q29va2llQWNjZXB0UG9saWN5IHRvV2Vi
S2l0Q29va2llQWNjZXB0UG9saWN5KFdlYkNvcmU6OkhUVFBDb29raWVBY2NlcHRQb2xpY3kgaHR0
cFBvbGljeSkKIHsKICAgICBzd2l0Y2ggKGh0dHBQb2xpY3kpIHsKLSAgICBjYXNlIEhUVFBDb29r
aWVBY2NlcHRQb2xpY3k6OkFsd2F5c0FjY2VwdDoKKyAgICBjYXNlIFdlYkNvcmU6OkhUVFBDb29r
aWVBY2NlcHRQb2xpY3k6OkFsd2F5c0FjY2VwdDoKICAgICAgICAgcmV0dXJuIFdFQktJVF9DT09L
SUVfUE9MSUNZX0FDQ0VQVF9BTFdBWVM7Ci0gICAgY2FzZSBIVFRQQ29va2llQWNjZXB0UG9saWN5
OjpOZXZlcjoKKyAgICBjYXNlIFdlYkNvcmU6OkhUVFBDb29raWVBY2NlcHRQb2xpY3k6Ok5ldmVy
OgogICAgICAgICByZXR1cm4gV0VCS0lUX0NPT0tJRV9QT0xJQ1lfQUNDRVBUX05FVkVSOwotICAg
IGNhc2UgSFRUUENvb2tpZUFjY2VwdFBvbGljeTo6T25seUZyb21NYWluRG9jdW1lbnREb21haW46
CisgICAgY2FzZSBXZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0UG9saWN5OjpPbmx5RnJvbU1haW5E
b2N1bWVudERvbWFpbjoKICAgICAgICAgcmV0dXJuIFdFQktJVF9DT09LSUVfUE9MSUNZX0FDQ0VQ
VF9OT19USElSRF9QQVJUWTsKICAgICBkZWZhdWx0OgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKQEAgLTEwMiwxOCArMTAzLDE4IEBAIHN0YXRpYyBpbmxpbmUgV2ViS2l0Q29va2llQWNj
ZXB0UG9saWN5IHRvV2ViS2l0Q29va2llQWNjZXB0UG9saWN5KEhUVFBDb29raWVBY2NlCiAgICAg
fQogfQogCi1zdGF0aWMgaW5saW5lIEhUVFBDb29raWVBY2NlcHRQb2xpY3kgdG9IVFRQQ29va2ll
QWNjZXB0UG9saWN5KFdlYktpdENvb2tpZUFjY2VwdFBvbGljeSBraXRQb2xpY3kpCitzdGF0aWMg
aW5saW5lIFdlYkNvcmU6OkhUVFBDb29raWVBY2NlcHRQb2xpY3kgdG9IVFRQQ29va2llQWNjZXB0
UG9saWN5KFdlYktpdENvb2tpZUFjY2VwdFBvbGljeSBraXRQb2xpY3kpCiB7CiAgICAgc3dpdGNo
IChraXRQb2xpY3kpIHsKICAgICBjYXNlIFdFQktJVF9DT09LSUVfUE9MSUNZX0FDQ0VQVF9BTFdB
WVM6Ci0gICAgICAgIHJldHVybiBIVFRQQ29va2llQWNjZXB0UG9saWN5OjpBbHdheXNBY2NlcHQ7
CisgICAgICAgIHJldHVybiBXZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0UG9saWN5OjpBbHdheXNB
Y2NlcHQ7CiAgICAgY2FzZSBXRUJLSVRfQ09PS0lFX1BPTElDWV9BQ0NFUFRfTkVWRVI6Ci0gICAg
ICAgIHJldHVybiBIVFRQQ29va2llQWNjZXB0UG9saWN5OjpOZXZlcjsKKyAgICAgICAgcmV0dXJu
IFdlYkNvcmU6OkhUVFBDb29raWVBY2NlcHRQb2xpY3k6Ok5ldmVyOwogICAgIGNhc2UgV0VCS0lU
X0NPT0tJRV9QT0xJQ1lfQUNDRVBUX05PX1RISVJEX1BBUlRZOgotICAgICAgICByZXR1cm4gSFRU
UENvb2tpZUFjY2VwdFBvbGljeTo6T25seUZyb21NYWluRG9jdW1lbnREb21haW47CisgICAgICAg
IHJldHVybiBXZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0UG9saWN5OjpPbmx5RnJvbU1haW5Eb2N1
bWVudERvbWFpbjsKICAgICBkZWZhdWx0OgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
LSAgICAgICAgcmV0dXJuIEhUVFBDb29raWVBY2NlcHRQb2xpY3k6OkFsd2F5c0FjY2VwdDsKKyAg
ICAgICAgcmV0dXJuIFdlYkNvcmU6OkhUVFBDb29raWVBY2NlcHRQb2xpY3k6OkFsd2F5c0FjY2Vw
dDsKICAgICB9CiB9CiAKQEAgLTIxOCw3ICsyMTksNyBAQCB2b2lkIHdlYmtpdF9jb29raWVfbWFu
YWdlcl9nZXRfYWNjZXB0X3BvbGljeShXZWJLaXRDb29raWVNYW5hZ2VyKiBtYW5hZ2VyLCBHQ2Fu
YwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgcHJvY2Vzc1Bvb2xzWzBdLT5zdXBwbGVt
ZW50PFdlYkNvb2tpZU1hbmFnZXJQcm94eT4oKS0+Z2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeSht
YW5hZ2VyLT5wcml2LT5zZXNzaW9uSUQoKSwgW3Rhc2sgPSBXVEZNb3ZlKHRhc2spXShIVFRQQ29v
a2llQWNjZXB0UG9saWN5IHBvbGljeSkgeworICAgIHByb2Nlc3NQb29sc1swXS0+c3VwcGxlbWVu
dDxXZWJDb29raWVNYW5hZ2VyUHJveHk+KCktPmdldEhUVFBDb29raWVBY2NlcHRQb2xpY3kobWFu
YWdlci0+cHJpdi0+c2Vzc2lvbklEKCksIFt0YXNrID0gV1RGTW92ZSh0YXNrKV0oV2ViQ29yZTo6
SFRUUENvb2tpZUFjY2VwdFBvbGljeSBwb2xpY3kpIHsKICAgICAgICAgZ190YXNrX3JldHVybl9p
bnQodGFzay5nZXQoKSwgdG9XZWJLaXRDb29raWVBY2NlcHRQb2xpY3kocG9saWN5KSk7CiAgICAg
fSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdv
cmtQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3
b3JrUHJvY2Vzc1Byb3h5LmNwcAppbmRleCA5Y2I5MGYxOGM1NDJjNmFhNTZmYWViNjAwN2QyNmZk
ZjFkMGJlYThlLi5iYTE2ZTMyNjA1YjIwYWU2MmUzNzY5N2QxMGFjOThhNTQxZTE3M2UzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJv
eHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nl
c3NQcm94eS5jcHAKQEAgLTE0Nyw3ICsxNDcsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6
OmdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbihXZWJQcm9jZXNzUHJveHkmIHdlYlByb2Nlcwog
CiB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6Om9wZW5OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24o
dWludDY0X3QgY29ubmVjdGlvblJlcXVlc3RJZGVudGlmaWVyLCBXZWJQcm9jZXNzUHJveHkmIHdl
YlByb2Nlc3NQcm94eSkKIHsKLSAgICBjb25uZWN0aW9uKCktPnNlbmRXaXRoQXN5bmNSZXBseShN
ZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OkNyZWF0ZU5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzIHsgd2ViUHJvY2Vzc1Byb3h5LmNvcmVQcm9jZXNzSWRlbnRpZmllcigpLCB3ZWJQcm9jZXNz
UHJveHkuc2Vzc2lvbklEKCkgfSwgW3RoaXMsIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyks
IHdlYlByb2Nlc3NQcm94eSA9IG1ha2VXZWFrUHRyKHdlYlByb2Nlc3NQcm94eSksIGNvbm5lY3Rp
b25SZXF1ZXN0SWRlbnRpZmllcl0oYXV0byYmIGNvbm5lY3Rpb25JZGVudGlmaWVyKSBtdXRhYmxl
IHsKKyAgICBjb25uZWN0aW9uKCktPnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29y
a1Byb2Nlc3M6OkNyZWF0ZU5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzIHsgd2ViUHJvY2Vz
c1Byb3h5LmNvcmVQcm9jZXNzSWRlbnRpZmllcigpLCB3ZWJQcm9jZXNzUHJveHkuc2Vzc2lvbklE
KCkgfSwgW3RoaXMsIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyksIHdlYlByb2Nlc3NQcm94
eSA9IG1ha2VXZWFrUHRyKHdlYlByb2Nlc3NQcm94eSksIGNvbm5lY3Rpb25SZXF1ZXN0SWRlbnRp
Zmllcl0oYXV0byYmIGNvbm5lY3Rpb25JZGVudGlmaWVyLCBIVFRQQ29va2llQWNjZXB0UG9saWN5
IGNvb2tpZUFjY2VwdFBvbGljeSkgbXV0YWJsZSB7CiAgICAgICAgIGlmICghd2Vha1RoaXMpCiAg
ICAgICAgICAgICByZXR1cm47CiAKQEAgLTE2MSwxMCArMTYxLDEwIEBAIHZvaWQgTmV0d29ya1By
b2Nlc3NQcm94eTo6b3Blbk5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbih1aW50NjRfdCBjb25uZWN0
aW9uUmVxdWVzCiAgICAgICAgIGF1dG8gcmVxdWVzdCA9IG1fY29ubmVjdGlvblJlcXVlc3RzLnRh
a2UoY29ubmVjdGlvblJlcXVlc3RJZGVudGlmaWVyKTsKIAogI2lmIFVTRShVTklYX0RPTUFJTl9T
T0NLRVRTKSB8fCBPUyhXSU5ET1dTKQotICAgICAgICByZXF1ZXN0LnJlcGx5KE5ldHdvcmtQcm9j
ZXNzQ29ubmVjdGlvbkluZm8geyBXVEZNb3ZlKCpjb25uZWN0aW9uSWRlbnRpZmllcikgfSk7Cisg
ICAgICAgIHJlcXVlc3QucmVwbHkoTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uSW5mbyB7IFdURk1v
dmUoKmNvbm5lY3Rpb25JZGVudGlmaWVyKSwgY29va2llQWNjZXB0UG9saWN5IH0pOwogI2VsaWYg
T1MoREFSV0lOKQogICAgICAgICBNRVNTQUdFX0NIRUNLKE1BQ0hfUE9SVF9WQUxJRChjb25uZWN0
aW9uSWRlbnRpZmllci0+cG9ydCgpKSk7Ci0gICAgICAgIHJlcXVlc3QucmVwbHkoTmV0d29ya1By
b2Nlc3NDb25uZWN0aW9uSW5mbyB7IElQQzo6QXR0YWNobWVudCB7IGNvbm5lY3Rpb25JZGVudGlm
aWVyLT5wb3J0KCksIE1BQ0hfTVNHX1RZUEVfTU9WRV9TRU5EIH0sIGNvbm5lY3Rpb24oKS0+Z2V0
QXVkaXRUb2tlbigpIH0pOworICAgICAgICByZXF1ZXN0LnJlcGx5KE5ldHdvcmtQcm9jZXNzQ29u
bmVjdGlvbkluZm8geyBJUEM6OkF0dGFjaG1lbnQgeyBjb25uZWN0aW9uSWRlbnRpZmllci0+cG9y
dCgpLCBNQUNIX01TR19UWVBFX01PVkVfU0VORCB9LCBjb29raWVBY2NlcHRQb2xpY3ksIGNvbm5l
Y3Rpb24oKS0+Z2V0QXVkaXRUb2tlbigpIH0pOwogI2Vsc2UKICAgICAgICAgbm90SW1wbGVtZW50
ZWQoKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29v
a2llTWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb29raWVNYW5h
Z2VyUHJveHkuaAppbmRleCA1OGI4MmZkMTBjOGMyNjIxNTQ4OTAxYjEzNWQ1ZmU5YThkOTc1YmQ0
Li4wYmRmYzBkNGU0N2M0MzZmNTg1Y2YyOWMwOWQ1MWEyOWJjODExYTlkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJveHkuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJveHkuaApAQCAtNTMsNyArNTMs
NyBAQCBjbGFzcyBXZWJQcm9jZXNzUG9vbDsKIGNsYXNzIFdlYlByb2Nlc3NQcm94eTsKIAogdHlw
ZWRlZiBHZW5lcmljQ2FsbGJhY2s8QVBJOjpBcnJheSo+IEFycmF5Q2FsbGJhY2s7Ci10eXBlZGVm
IEdlbmVyaWNDYWxsYmFjazxIVFRQQ29va2llQWNjZXB0UG9saWN5PiBIVFRQQ29va2llQWNjZXB0
UG9saWN5Q2FsbGJhY2s7Cit0eXBlZGVmIEdlbmVyaWNDYWxsYmFjazxXZWJDb3JlOjpIVFRQQ29v
a2llQWNjZXB0UG9saWN5PiBIVFRQQ29va2llQWNjZXB0UG9saWN5Q2FsbGJhY2s7CiB0eXBlZGVm
IEdlbmVyaWNDYWxsYmFjazxjb25zdCBWZWN0b3I8V2ViQ29yZTo6Q29va2llPiY+IEdldENvb2tp
ZXNDYWxsYmFjazsKIAogY2xhc3MgV2ViQ29va2llTWFuYWdlclByb3h5IDogcHVibGljIEFQSTo6
T2JqZWN0SW1wbDxBUEk6Ok9iamVjdDo6VHlwZTo6Q29va2llTWFuYWdlcj4sIHB1YmxpYyBXZWJD
b250ZXh0U3VwcGxlbWVudCwgcHJpdmF0ZSBJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7CkBAIC03Nyw4
ICs3Nyw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGdldEFsbENvb2tpZXMoUEFMOjpTZXNzaW9uSUQs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4mJik+JiYpOwog
ICAgIHZvaWQgZ2V0Q29va2llcyhQQUw6OlNlc3Npb25JRCwgY29uc3QgVVJMJiwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChWZWN0b3I8V2ViQ29yZTo6Q29va2llPiYmKT4mJik7CiAKLSAgICB2b2lk
IHNldEhUVFBDb29raWVBY2NlcHRQb2xpY3koUEFMOjpTZXNzaW9uSUQsIEhUVFBDb29raWVBY2Nl
cHRQb2xpY3ksIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7Ci0gICAgdm9pZCBnZXRIVFRQ
Q29va2llQWNjZXB0UG9saWN5KFBBTDo6U2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KEhUVFBDb29raWVBY2NlcHRQb2xpY3kpPiYmKTsKKyAgICB2b2lkIHNldEhUVFBDb29raWVBY2Nl
cHRQb2xpY3koUEFMOjpTZXNzaW9uSUQsIFdlYkNvcmU6OkhUVFBDb29raWVBY2NlcHRQb2xpY3ks
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CisgICAgdm9pZCBnZXRIVFRQQ29va2llQWNj
ZXB0UG9saWN5KFBBTDo6U2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6
OkhUVFBDb29raWVBY2NlcHRQb2xpY3kpPiYmKTsKIAogICAgIHZvaWQgc3RhcnRPYnNlcnZpbmdD
b29raWVDaGFuZ2VzKFBBTDo6U2Vzc2lvbklEKTsKICAgICB2b2lkIHN0b3BPYnNlcnZpbmdDb29r
aWVDaGFuZ2VzKFBBTDo6U2Vzc2lvbklEKTsKQEAgLTExOSw3ICsxMTksNyBAQCBwcml2YXRlOgog
ICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVy
Jikgb3ZlcnJpZGU7CiAKICNpZiBQTEFURk9STShDT0NPQSkKLSAgICB2b2lkIHBlcnNpc3RIVFRQ
Q29va2llQWNjZXB0UG9saWN5KEhUVFBDb29raWVBY2NlcHRQb2xpY3kpOworICAgIHZvaWQgcGVy
c2lzdEhUVFBDb29raWVBY2NlcHRQb2xpY3koV2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBvbGlj
eSk7CiAjZW5kaWYKIAogICAgIEhhc2hNYXA8UEFMOjpTZXNzaW9uSUQsIFdURjo6RnVuY3Rpb248
dm9pZCAoKT4+IG1fbGVnYWN5Q29va2llT2JzZXJ2ZXJzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlByb2Nlc3NQb29sLmgKaW5kZXggMWRiZDE4MWQ0MTNlOGZiYTQwNWQ4MWJjMGE0Zjk0ZTRl
Nzk2MmI5OC4uNjRiMWRiY2U0YzkwNzUzNjk5OWIxYzJhNWViMzE0NjcwZjQyM2UxZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCkBAIC0yOTQsNyArMjk0LDcgQEAg
cHVibGljOgogICAgIHZvaWQgc3RvcE1lbW9yeVNhbXBsZXIoKTsKIAogI2lmIFVTRShTT1VQKQot
ICAgIHZvaWQgc2V0SW5pdGlhbEhUVFBDb29raWVBY2NlcHRQb2xpY3koSFRUUENvb2tpZUFjY2Vw
dFBvbGljeSBwb2xpY3kpIHsgbV9pbml0aWFsSFRUUENvb2tpZUFjY2VwdFBvbGljeSA9IHBvbGlj
eTsgfQorICAgIHZvaWQgc2V0SW5pdGlhbEhUVFBDb29raWVBY2NlcHRQb2xpY3koV2ViQ29yZTo6
SFRUUENvb2tpZUFjY2VwdFBvbGljeSBwb2xpY3kpIHsgbV9pbml0aWFsSFRUUENvb2tpZUFjY2Vw
dFBvbGljeSA9IHBvbGljeTsgfQogICAgIHZvaWQgc2V0TmV0d29ya1Byb3h5U2V0dGluZ3MoY29u
c3QgV2ViQ29yZTo6U291cE5ldHdvcmtQcm94eVNldHRpbmdzJik7CiAjZW5kaWYKICAgICB2b2lk
IHNldEVuaGFuY2VkQWNjZXNzaWJpbGl0eShib29sKTsKQEAgLTY3Nyw3ICs2NzcsNyBAQCBwcml2
YXRlOgogICAgIFdlYkNvbnRleHRTdXBwbGVtZW50TWFwIG1fc3VwcGxlbWVudHM7CiAKICNpZiBV
U0UoU09VUCkKLSAgICBIVFRQQ29va2llQWNjZXB0UG9saWN5IG1faW5pdGlhbEhUVFBDb29raWVB
Y2NlcHRQb2xpY3kgeyBIVFRQQ29va2llQWNjZXB0UG9saWN5OjpPbmx5RnJvbU1haW5Eb2N1bWVu
dERvbWFpbiB9OworICAgIFdlYkNvcmU6OkhUVFBDb29raWVBY2NlcHRQb2xpY3kgbV9pbml0aWFs
SFRUUENvb2tpZUFjY2VwdFBvbGljeSB7IFdlYkNvcmU6OkhUVFBDb29raWVBY2NlcHRQb2xpY3k6
Ok9ubHlGcm9tTWFpbkRvY3VtZW50RG9tYWluIH07CiAgICAgV2ViQ29yZTo6U291cE5ldHdvcmtQ
cm94eVNldHRpbmdzIG1fbmV0d29ya1Byb3h5U2V0dGluZ3M7CiAjZW5kaWYKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYkNvb2tpZU1hbmFnZXJQcm94eU1hYy5t
bSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJDb29raWVNYW5hZ2VyUHJveHlNYWMu
bW0KaW5kZXggZWVkOTdhYmVkNjAzYTNkY2JlMTFiNzk3MmY0NzEwMWI5Yjk0ZTcyOC4uODg5NWY2
MGQyZWNkNjY5ODUxNTNhNzI5NDFhN2JlMWZlNjMwMWI1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvbWFjL1dlYkNvb2tpZU1hbmFnZXJQcm94eU1hYy5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViQ29va2llTWFuYWdlclByb3h5TWFjLm1tCkBAIC0z
MSw3ICszMSw3IEBACiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi12b2lkIFdlYkNvb2tpZU1hbmFn
ZXJQcm94eTo6cGVyc2lzdEhUVFBDb29raWVBY2NlcHRQb2xpY3koSFRUUENvb2tpZUFjY2VwdFBv
bGljeSBwb2xpY3kpCit2b2lkIFdlYkNvb2tpZU1hbmFnZXJQcm94eTo6cGVyc2lzdEhUVFBDb29r
aWVBY2NlcHRQb2xpY3koV2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBvbGljeSBwb2xpY3kpCiB7
CiAgICAgQVNTRVJUKGhhc1Byb2Nlc3NQcml2aWxlZ2UoUHJvY2Vzc1ByaXZpbGVnZTo6Q2FuQWNj
ZXNzUmF3Q29va2llcykpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCA2YWRlYTU4NTBmODg2NDNhZjcwZjg5NTAzMWIzODYxNTZiMmU0
M2Y4Li5lODc4Nzg5OWVmMDJmZjBlYjhmNDVmMGUxMWYyNjM3YjNkY2YwYjdiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTg4Miw3ICs4
ODIsNiBAQAogCQkzN0RGQTcwMDE4MTBCQjkyMDAxRjRBOUYgLyogV0tGb3VuZGF0aW9uLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzN0RGQTZGRjE4MTBC
QjkyMDAxRjRBOUYgLyogV0tGb3VuZGF0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHVibGljLCApOyB9OyB9OwogCQkzN0UyNUQ2RTE4RkRFNUQ2MDA1RDNBMDAgLyogQVBJRm9y
bUNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MzdFMjVENkQxOEZERTVENjAwNUQzQTAwIC8qIEFQSUZvcm1DbGllbnQuaCAqLzsgfTsKIAkJMzdG
NjIzQjgxMkE1N0I2MjAwRTNGREY2IC8qIFdLRmluZE9wdGlvbnMuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDM3RjYyM0I3MTJBNTdCNjIwMEUzRkRGNiAv
KiBXS0ZpbmRPcHRpb25zLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKLQkJMzdGOTBERTMxMzc2NTYwRTAwNTFDRjY4IC8qIEhUVFBDb29raWVBY2NlcHRQ
b2xpY3kuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY2
Mzg5NTRGMTMzQkVGMzgwMDg5NDFENSAvKiBIVFRQQ29va2llQWNjZXB0UG9saWN5LmggKi87IH07
CiAJCTM3RkMxOTQ3MTg1MEZCRjIwMDhDRkE0NyAvKiBXS0Jyb3dzaW5nQ29udGV4dExvYWREZWxl
Z2F0ZVByaXZhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDM3RkMxOTQ2MTg1MEZCRjIwMDhDRkE0NyAvKiBXS0Jyb3dzaW5nQ29udGV4dExvYWREZWxl
Z2F0ZVByaXZhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQkzN0ZDMTk0QjE4NTEwRDZBMDA4Q0ZBNDcgLyogV0tOU1VSTEF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAzN0ZDMTk0OTE4NTEwRDZBMDA4Q0ZBNDcgLyogV0tOU1VSTEF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlLmggKi87IH07CiAJCTNGNDE4RUY5MTg4N0JEOTcwMDI3OTVGRCAvKiBWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDNGNDE4RUY1MTg4N0JEOTcwMDI3OTVGRCAvKiBWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKQEAgLTIxMTksOSArMjExOCw5
IEBACiAJCTA3QjkzRkY1MjNBRjBDQjgwMDM2RjhFQSAvKiBSZW1vdGVNZWRpYVBsYXllckNvbmZp
Z3VyYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlTWVkaWFQbGF5ZXJDb25maWd1cmF0aW9u
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3QkFGMzU2MjNBMkNDMTcwMDQ0MjU3
RSAvKiBSZW1vdGVNZWRpYVBsYXllclByb3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZU1lZGlh
UGxheWVyUHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDdCQUYzNTcyM0Ey
Q0MxOTAwNDQyNTdFIC8qIFJlbW90ZU1lZGlhUGxheWVyUHJveHkuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07Ci0JCTA3RTE5RUY4MjNENDAxRjAwMDk0RkZCNCAvKiBNZWRpYVBsYXllclByaXZhdGVSZW1v
dGVNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1l
ID0gTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlTWVzc2FnZVJlY2VpdmVyLmNwcDsgcGF0aCA9IE1l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZU1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCTA3RTE5RUY5MjNENDAxRjAwMDk0RkZCNCAvKiBNZWRpYVBsYXllclBy
aXZhdGVSZW1vdGVNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBN
ZWRpYVBsYXllclByaXZhdGVSZW1vdGVNZXNzYWdlcy5oOyBwYXRoID0gTWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMDdFMTlF
RkEyM0Q0MDFGMDAwOTRGRkI0IC8qIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZU1lc3NhZ2VzUmVw
bGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBNZWRpYVBsYXllclByaXZh
dGVSZW1vdGVNZXNzYWdlc1JlcGxpZXMuaDsgcGF0aCA9IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZU1lc3NhZ2VzUmVwbGllcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwN0UxOUVG
ODIzRDQwMUYwMDA5NEZGQjQgLyogTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlTWVzc2FnZVJlY2Vp
dmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZU1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTA3RTE5RUY5MjNENDAxRjAwMDk0RkZCNCAvKiBNZWRpYVBsYXllclByaXZhdGVSZW1v
dGVNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVBsYXll
clByaXZhdGVSZW1vdGVNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkw
N0UxOUVGQTIzRDQwMUYwMDA5NEZGQjQgLyogTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlTWVzc2Fn
ZXNSZXBsaWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZU1lc3NhZ2VzUmVwbGllcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkwODY3RDZBNUZFODQwMzA3QzAyQUFDMDcgLyogQXBwS2l0LmZyYW1ld29yayAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHdyYXBwZXIuZnJhbWV3
b3JrOyBuYW1lID0gQXBwS2l0LmZyYW1ld29yazsgcGF0aCA9IC9TeXN0ZW0vTGlicmFyeS9GcmFt
ZXdvcmtzL0FwcEtpdC5mcmFtZXdvcms7IHNvdXJjZVRyZWUgPSAiPGFic29sdXRlPiI7IH07CiAJ
CTA4OUMxNjY3RkU4NDExNThDMDJBQUMwNyAvKiBlbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQucGxpc3Quc3Ry
aW5nczsgbmFtZSA9IGVuOyBwYXRoID0gZW4ubHByb2ovSW5mb1BsaXN0LnN0cmluZ3M7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBFOTdENzRDMjAwRThGRjMwMEJGNjY0MyAvKiBTYWZl
QnJvd3NpbmdTUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2FmZUJyb3dzaW5nU1BJLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC01MTMwLDcgKzUxMjksNiBAQAogCQlGNjExM0UyNjEyNkNF
MTlCMDA1N0QwQTcgLyogV0tVc2VyQ29udGVudFVSTFBhdHRlcm4uY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV0tVc2VyQ29udGVudFVSTFBhdHRlcm4uY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNjExM0UyNzEyNkNFMTlCMDA1N0QwQTcgLyogV0tV
c2VyQ29udGVudFVSTFBhdHRlcm4uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
V0tVc2VyQ29udGVudFVSTFBhdHRlcm4uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RjYzNDQ0NTUxMkE4ODVDODAwMDYxMkQ4IC8qIEFQSVNlY3VyaXR5T3JpZ2luLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFQSVNlY3VyaXR5T3JpZ2luLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCUY2Mzg5NTRGMTMzQkVGMzgwMDg5NDFENSAvKiBIVFRQQ29va2ll
QWNjZXB0UG9saWN5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhUVFBDb29r
aWVBY2NlcHRQb2xpY3kuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjZBMEMxM0Yx
MzI4MUU2RTAwNzA0MzBGIC8qIFJlc291cmNlQ2FjaGVzVG9DbGVhci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBSZXNvdXJjZUNhY2hlc1RvQ2xlYXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRjZBOTA4MTExMzNDMUYzRDAwODJDM0Y0IC8qIFdlYkNvb2tpZU1h
bmFnZXJNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJD
b29raWVNYW5hZ2VyTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNkQ2MzJC
QTEzM0QxODFCMDA3NDNENzcgLyogV2ViQ29va2llTWFuYWdlclByb3h5TWFjLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViQ29va2llTWFuYWdlclByb3h5TWFj
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNTY5Nyw3ICs1Njk1LDYgQEAKIAkJ
CQkxQTE0RjhERjFENzRDODM0MDA2Q0JFQzYgLyogRnJhbWVJbmZvRGF0YS5jcHAgKi8sCiAJCQkJ
MUExNEY4RTAxRDc0QzgzNDAwNkNCRUM2IC8qIEZyYW1lSW5mb0RhdGEuaCAqLywKIAkJCQkxQUM3
NUExQTFCMzM2ODI3MDA1Njc0NUIgLyogSGFuZ0RldGVjdGlvbkRpc2FibGVyLmggKi8sCi0JCQkJ
RjYzODk1NEYxMzNCRUYzODAwODk0MUQ1IC8qIEhUVFBDb29raWVBY2NlcHRQb2xpY3kuaCAqLywK
IAkJCQlCQ0NGNkIyMzEyQzkzRTdBMDA4RjlDMzUgLyogSW1hZ2VPcHRpb25zLmggKi8sCiAJCQkJ
MUE5MkRDMTIxMkY4QkFCOTAwMTdBRjY1IC8qIExheWVyVHJlZUNvbnRleHQuY3BwICovLAogCQkJ
CTFBOTJEQzEwMTJGOEJBNDYwMDE3QUY2NSAvKiBMYXllclRyZWVDb250ZXh0LmggKi8sCkBAIC0x
MDIxOCw3ICsxMDIxNSw2IEBACiAJCQkJNTc3MkYyMDYyMTdEQkQ2QTAwNTZCRjJDIC8qIEhpZFNl
cnZpY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxMkNDOUYyMjE1QjA2RjEwMERFNDBDQSAvKiBI
aWdoUGVyZm9ybWFuY2VHUFVNYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQk4MzlBMkYzMjFF
MjA2NzQ1MDAzOTA1N0UgLyogSGlnaFBlcmZvcm1hbmNlR3JhcGhpY3NVc2FnZVNhbXBsZXIuaCBp
biBIZWFkZXJzICovLAotCQkJCTM3RjkwREUzMTM3NjU2MEUwMDUxQ0Y2OCAvKiBIVFRQQ29va2ll
QWNjZXB0UG9saWN5LmggaW4gSGVhZGVycyAqLywKIAkJCQk1MUMwQzk3NDFEREQ3NjAwMDAzMkNB
RDMgLyogSWNvbkxvYWRpbmdEZWxlZ2F0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTFFMzUxQ0Ix
ODBGMkNDQzAwRTUzQkU5IC8qIElEQlV0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkND
RjZCMjUxMkM5M0U3QTAwOEY5QzM1IC8qIEltYWdlT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8sCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vz
c0Nvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29y
a1Byb2Nlc3NDb25uZWN0aW9uLmNwcAppbmRleCBmZDAwZDc4NjRiNWE1M2ZiNzQzMGUxNmI4NzBj
YTYyY2IwMGFkZGE0Li4xZTcwMzU0ZjZiNzE0MTk2MDJkOTRiMGY1NDMzMTMyYTYzNDExODc0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vz
c0Nvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL05l
dHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5jcHAKQEAgLTU2LDYgKzU2LDcgQEAKICNpbmNsdWRlICJX
ZWJTb2NrZXRTdHJlYW0uaCIKICNpbmNsdWRlICJXZWJTb2NrZXRTdHJlYW1NZXNzYWdlcy5oIgog
I2luY2x1ZGUgPFdlYkNvcmUvQ2FjaGVkUmVzb3VyY2UuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0hU
VFBDb29raWVBY2NlcHRQb2xpY3kuaD4KICNpbmNsdWRlIDxXZWJDb3JlL01lbW9yeUNhY2hlLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9NZXNzYWdlUG9ydC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2hh
cmVkQnVmZmVyLmg+CkBAIC02OCw4ICs2OSw5IEBACiBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5n
IG5hbWVzcGFjZSBXZWJDb3JlOwogCi1OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246Ok5ldHdvcmtQ
cm9jZXNzQ29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIgY29ubmVjdGlvbklk
ZW50aWZpZXIpCitOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246Ok5ldHdvcmtQcm9jZXNzQ29ubmVj
dGlvbihJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIgY29ubmVjdGlvbklkZW50aWZpZXIsIEhU
VFBDb29raWVBY2NlcHRQb2xpY3kgY29va2llQWNjZXB0UG9saWN5KQogICAgIDogbV9jb25uZWN0
aW9uKElQQzo6Q29ubmVjdGlvbjo6Y3JlYXRlQ2xpZW50Q29ubmVjdGlvbihjb25uZWN0aW9uSWRl
bnRpZmllciwgKnRoaXMpKQorICAgICwgbV9jb29raWVBY2NlcHRQb2xpY3koY29va2llQWNjZXB0
UG9saWN5KQogewogICAgIG1fY29ubmVjdGlvbi0+b3BlbigpOwogfQpAQCAtMjA0LDcgKzIwNiw3
IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlSW52YWxpZE1lc3Nh
Z2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpTCiAKIHZvaWQgTmV0d29ya1Byb2Nlc3NDb25uZWN0
aW9uOjp3cml0ZUJsb2JzVG9UZW1wb3JhcnlGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgYmxv
YlVSTHMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9yPFN0cmluZz4mJiBmaWxlUGF0aHMp
PiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewotICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVu
c3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kV2l0aEFzeW5j
UmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpXcml0ZUJsb2Jz
VG9UZW1wb3JhcnlGaWxlcyhibG9iVVJMcyksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsK
KyAgICBjb25uZWN0aW9uKCkuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzczo6V3JpdGVCbG9ic1RvVGVtcG9yYXJ5RmlsZXMoYmxvYlVSTHMp
LCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKIHZvaWQgTmV0d29ya1Byb2Nlc3ND
b25uZWN0aW9uOjpkaWRGaW5pc2hQaW5nTG9hZCh1aW50NjRfdCBwaW5nTG9hZElkZW50aWZpZXIs
IFJlc291cmNlRXJyb3ImJiBlcnJvciwgUmVzb3VyY2VSZXNwb25zZSYmIHJlc3BvbnNlKQpAQCAt
MjIyLDYgKzIyNCwxNiBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6c2V0T25MaW5l
U3RhdGUoYm9vbCBpc09uTGluZSkKICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJMb2Fk
ZXJTdHJhdGVneSgpLnNldE9uTGluZVN0YXRlKGlzT25MaW5lKTsKIH0KIAorYm9vbCBOZXR3b3Jr
UHJvY2Vzc0Nvbm5lY3Rpb246OmNvb2tpZXNFbmFibGVkKCkKK3sKKyAgICByZXR1cm4gbV9jb29r
aWVBY2NlcHRQb2xpY3kgIT0gSFRUUENvb2tpZUFjY2VwdFBvbGljeTo6TmV2ZXI7Cit9CisKK3Zv
aWQgTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpjb29raWVBY2NlcHRQb2xpY3lDaGFuZ2VkKEhU
VFBDb29raWVBY2NlcHRQb2xpY3kgbmV3UG9saWN5KQoreworICAgIG1fY29va2llQWNjZXB0UG9s
aWN5ID0gbmV3UG9saWN5OworfQorCiAjaWYgRU5BQkxFKFNIQVJFQUJMRV9SRVNPVVJDRSkKIHZv
aWQgTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpkaWRDYWNoZVJlc291cmNlKGNvbnN0IFJlc291
cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgU2hhcmVhYmxlUmVzb3VyY2U6OkhhbmRsZSYgaGFu
ZGxlKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0
d29ya1Byb2Nlc3NDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29y
ay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uaAppbmRleCAyYTQ5NmE5ZTRlNDMzOWViMDU4NGFh
MjI2NDIxZjYyMGIxMGRkY2RiLi5kZDEwNDE2N2Y1NDE0ODAzYTUyYTIyNWEzYWZlY2ZmY2Y5NGQw
YzYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3Jr
UHJvY2Vzc0Nvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29y
ay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uaApAQCAtNDMsNiArNDMsNyBAQCBjbGFzcyBSZXNv
dXJjZVJlcXVlc3Q7CiBjbGFzcyBSZXNvdXJjZVJlc3BvbnNlOwogc3RydWN0IE1lc3NhZ2VQb3J0
SWRlbnRpZmllcjsKIHN0cnVjdCBNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0czsKK2VudW0gY2xhc3Mg
SFRUUENvb2tpZUFjY2VwdFBvbGljeSA6IHVpbnQ4X3Q7CiB9CiAKIG5hbWVzcGFjZSBXZWJLaXQg
ewpAQCAtNTQsOSArNTUsOSBAQCB0eXBlZGVmIHVpbnQ2NF90IFJlc291cmNlTG9hZElkZW50aWZp
ZXI7CiAKIGNsYXNzIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbiA6IHB1YmxpYyBSZWZDb3VudGVk
PE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbj4sIElQQzo6Q29ubmVjdGlvbjo6Q2xpZW50IHsKIHB1
YmxpYzoKLSAgICBzdGF0aWMgUmVmPE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbj4gY3JlYXRlKElQ
Qzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRpZmllcikKKyAgICBzdGF0
aWMgUmVmPE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbj4gY3JlYXRlKElQQzo6Q29ubmVjdGlvbjo6
SWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6SFRUUENvb2tpZUFjY2Vw
dFBvbGljeSBodHRwQ29va2llQWNjZXB0UG9saWN5KQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKGNvbm5lY3Rpb25JZGVudGlmaWVy
KSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlv
bihjb25uZWN0aW9uSWRlbnRpZmllciwgaHR0cENvb2tpZUFjY2VwdFBvbGljeSkpOwogICAgIH0K
ICAgICB+TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCk7CiAgICAgCkBAIC04MCw4ICs4MSwxMCBA
QCBwdWJsaWM6CiAgICAgT3B0aW9uYWw8YXVkaXRfdG9rZW5fdD4gbmV0d29ya1Byb2Nlc3NBdWRp
dFRva2VuKCkgY29uc3QgeyByZXR1cm4gbV9uZXR3b3JrUHJvY2Vzc0F1ZGl0VG9rZW47IH0KICNl
bmRpZgogCisgICAgYm9vbCBjb29raWVzRW5hYmxlZCgpOworCiBwcml2YXRlOgotICAgIE5ldHdv
cmtQcm9jZXNzQ29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIpOworICAgIE5l
dHdvcmtQcm9jZXNzQ29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIsIFdlYkNv
cmU6OkhUVFBDb29raWVBY2NlcHRQb2xpY3kpOwogCiAgICAgLy8gSVBDOjpDb25uZWN0aW9uOjpD
bGllbnQKICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6
RGVjb2RlciYpIG92ZXJyaWRlOwpAQCAtOTIsNiArOTUsNyBAQCBwcml2YXRlOgogICAgIHZvaWQg
ZGlkRmluaXNoUGluZ0xvYWQodWludDY0X3QgcGluZ0xvYWRJZGVudGlmaWVyLCBXZWJDb3JlOjpS
ZXNvdXJjZUVycm9yJiYsIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJik7CiAgICAgdm9pZCBk
aWRGaW5pc2hQcmVjb25uZWN0aW9uKHVpbnQ2NF90IHByZWNvbm5lY3Rpb25JZGVudGlmaWVyLCBX
ZWJDb3JlOjpSZXNvdXJjZUVycm9yJiYpOwogICAgIHZvaWQgc2V0T25MaW5lU3RhdGUoYm9vbCBp
c09uTGluZSk7CisgICAgdm9pZCBjb29raWVBY2NlcHRQb2xpY3lDaGFuZ2VkKFdlYkNvcmU6OkhU
VFBDb29raWVBY2NlcHRQb2xpY3kpOwogCiAgICAgdm9pZCBjaGVja1Byb2Nlc3NMb2NhbFBvcnRG
b3JBY3Rpdml0eShjb25zdCBXZWJDb3JlOjpNZXNzYWdlUG9ydElkZW50aWZpZXImLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6Ok1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyOjpIYXNB
Y3Rpdml0eSk+JiYpOwogICAgIHZvaWQgbWVzc2FnZXNBdmFpbGFibGVGb3JQb3J0KGNvbnN0IFdl
YkNvcmU6Ok1lc3NhZ2VQb3J0SWRlbnRpZmllciYpOwpAQCAtMTE0LDYgKzExOCw3IEBAIHByaXZh
dGU6CiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQogICAgIFJlZlB0cjxXZWJTV0NsaWVudENv
bm5lY3Rpb24+IG1fc3dDb25uZWN0aW9uOwogI2VuZGlmCisgICAgV2ViQ29yZTo6SFRUUENvb2tp
ZUFjY2VwdFBvbGljeSBtX2Nvb2tpZUFjY2VwdFBvbGljeTsKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0
d29ya1Byb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluCmluZGV4IDRk
NjM0YzU3YjljNzk5NTA0OGEwODBmMjdmM2UzMmU1MzA1MjZhZWIuLjJhYTY4ODZlNTdhNTk5Y2Jj
MTdjMzVmNmI3NGU5OWQyYWIzYTg5ZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24u
bWVzc2FnZXMuaW4KQEAgLTI5LDYgKzI5LDcgQEAgbWVzc2FnZXMgLT4gTmV0d29ya1Byb2Nlc3ND
b25uZWN0aW9uIExlZ2FjeVJlY2VpdmVyIHsKICAgICBEaWRGaW5pc2hQaW5nTG9hZCh1aW50NjRf
dCBwaW5nTG9hZElkZW50aWZpZXIsIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgZXJyb3IsIFdlYkNv
cmU6OlJlc291cmNlUmVzcG9uc2UgcmVzcG9uc2UpCiAgICAgRGlkRmluaXNoUHJlY29ubmVjdGlv
bih1aW50NjRfdCBwcmVjb25uZWN0aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6UmVzb3VyY2VFcnJv
ciBlcnJvcikKICAgICBTZXRPbkxpbmVTdGF0ZShib29sIGlzT25MaW5lKTsKKyAgICBDb29raWVB
Y2NlcHRQb2xpY3lDaGFuZ2VkKGVudW06dWludDhfdCBXZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0
UG9saWN5IHBvbGljeSk7CiAKICAgICBDaGVja1Byb2Nlc3NMb2NhbFBvcnRGb3JBY3Rpdml0eShz
dHJ1Y3QgV2ViQ29yZTo6TWVzc2FnZVBvcnRJZGVudGlmaWVyIHBvcnQpIC0+IChXZWJDb3JlOjpN
ZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlcjo6SGFzQWN0aXZpdHkgaGFzQWN0aXZpdHkpIEFzeW5j
CiAgICAgTWVzc2FnZXNBdmFpbGFibGVGb3JQb3J0KHN0cnVjdCBXZWJDb3JlOjpNZXNzYWdlUG9y
dElkZW50aWZpZXIgcG9ydCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9O
ZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbkluZm8uaCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbkluZm8uaAppbmRleCA1YzA1
NjhjNGFhMWY5Y2RmZDg4YzMxYTNlM2ZkN2E0Y2RiYzg5NGE0Li4zNjdiOGEzODA5ZTM3YjE1YmRi
ZTBiNDZhNDE4NTY3NzdmYmFmMmY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25JbmZvLmgKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uSW5mby5oCkBA
IC0yNSwxMCArMjUsMTMgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlIDxXZWJDb3JlL0hU
VFBDb29raWVBY2NlcHRQb2xpY3kuaD4KKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIHN0cnVjdCBO
ZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25JbmZvIHsKICAgICBJUEM6OkF0dGFjaG1lbnQgY29ubmVj
dGlvbjsKKyAgICBXZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0UG9saWN5IGNvb2tpZUFjY2VwdFBv
bGljeTsKICNpZiBIQVZFKEFVRElUX1RPS0VOKQogICAgIE9wdGlvbmFsPGF1ZGl0X3Rva2VuX3Q+
IGF1ZGl0VG9rZW47CiAjZW5kaWYKQEAgLTYxLDYgKzY0LDcgQEAgc3RydWN0IE5ldHdvcmtQcm9j
ZXNzQ29ubmVjdGlvbkluZm8gewogICAgIHZvaWQgZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2Rl
cikgY29uc3QKICAgICB7CiAgICAgICAgIGVuY29kZXIgPDwgY29ubmVjdGlvbjsKKyAgICAgICAg
ZW5jb2RlciA8PCBjb29raWVBY2NlcHRQb2xpY3k7CiAjaWYgSEFWRShBVURJVF9UT0tFTikKICAg
ICAgICAgZW5jb2RlciA8PCBhdWRpdFRva2VuOwogI2VuZGlmCkBAIC03MCw2ICs3NCw4IEBAIHN0
cnVjdCBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25JbmZvIHsKICAgICB7CiAgICAgICAgIGlmICgh
ZGVjb2Rlci5kZWNvZGUoaW5mby5jb25uZWN0aW9uKSkKICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZUVudW0oaW5mby5jb29raWVBY2NlcHRQb2xp
Y3kpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogI2lmIEhBVkUoQVVESVRfVE9LRU4pCiAg
ICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaW5mby5hdWRpdFRva2VuKSkKICAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYkNvb2tpZUphci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJDb29raWVKYXIuY3BwCmluZGV4IDU4ODBiYmZjNGQ5ODZjMWU1MDE4NjlkZTk1NGQ2YTU3OTE4
NzNjYjcuLjMyNTgzMDVjNzg5ZDc3NWZlMTVjMWMwODI4YzM2ZTllMmYyYTg2MDkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkNvb2tpZUphci5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViQ29va2llSmFyLmNwcApAQCAt
MTI5LDEyICsxMjksMTkgQEAgdm9pZCBXZWJDb29raWVKYXI6OnNldENvb2tpZXMoV2ViQ29yZTo6
RG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBVUkwmIHVybCwgY29uc3QKICAgICBXZWJQcm9jZXNz
OjpzaW5nbGV0b24oKS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9u
KCkuc2VuZChNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OlNldENvb2tp
ZXNGcm9tRE9NKGRvY3VtZW50LmZpcnN0UGFydHlGb3JDb29raWVzKCksIHNhbWVTaXRlSW5mbyhk
b2N1bWVudCksIHVybCwgZnJhbWVJRCwgcGFnZUlELCBzaG91bGRBc2tJVFBJbk5ldHdvcmtQcm9j
ZXNzLCBjb29raWVTdHJpbmcpLCAwKTsKIH0KIAotYm9vbCBXZWJDb29raWVKYXI6OmNvb2tpZXNF
bmFibGVkKGNvbnN0IFdlYkNvcmU6OkRvY3VtZW50JiBkb2N1bWVudCkgY29uc3QKK2Jvb2wgV2Vi
Q29va2llSmFyOjpjb29raWVzRW5hYmxlZChjb25zdCBEb2N1bWVudCYgZG9jdW1lbnQpIGNvbnN0
CiB7Ci0gICAgYm9vbCByZXN1bHQgPSBmYWxzZTsKLSAgICBpZiAoIVdlYlByb2Nlc3M6OnNpbmds
ZXRvbigpLmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5k
U3luYyhNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OkNvb2tpZXNFbmFi
bGVkKCksIE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Q29va2llc0Vu
YWJsZWQ6OlJlcGx5KHJlc3VsdCksIDApKQorICAgIGF1dG8qIHdlYkZyYW1lID0gZG9jdW1lbnQu
ZnJhbWUoKSA/IFdlYkZyYW1lOjpmcm9tQ29yZUZyYW1lKCpkb2N1bWVudC5mcmFtZSgpKSA6IG51
bGxwdHI7CisgICAgaWYgKCF3ZWJGcmFtZSB8fCAhd2ViRnJhbWUtPnBhZ2UoKSkKICAgICAgICAg
cmV0dXJuIGZhbHNlOwotICAgIHJldHVybiByZXN1bHQ7CisKKyNpZiBFTkFCTEUoUkVTT1VSQ0Vf
TE9BRF9TVEFUSVNUSUNTKQorICAgIFNob3VsZEFza0lUUCBkdW1teTsKKyAgICBpZiAoc2hvdWxk
QmxvY2tDb29raWVzKHdlYkZyYW1lLCBkb2N1bWVudC5maXJzdFBhcnR5Rm9yQ29va2llcygpLCBk
b2N1bWVudC5jb29raWVVUkwoKSwgZHVtbXkpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisjZW5k
aWYKKworICAgIHJldHVybiBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVOZXR3b3JrUHJv
Y2Vzc0Nvbm5lY3Rpb24oKS5jb29raWVzRW5hYmxlZCgpOwogfQogCiBzdGQ6OnBhaXI8U3RyaW5n
LCBXZWJDb3JlOjpTZWN1cmVDb29raWVzQWNjZXNzZWQ+IFdlYkNvb2tpZUphcjo6Y29va2llUmVx
dWVzdEhlYWRlckZpZWxkVmFsdWUoY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBXZWJDb3Jl
OjpTYW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5mbywgY29uc3QgVVJMJiB1cmwsIE9wdGlvbmFsPEZy
YW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwg
V2ViQ29yZTo6SW5jbHVkZVNlY3VyZUNvb2tpZXMgaW5jbHVkZVNlY3VyZUNvb2tpZXMpIGNvbnN0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKaW5kZXggY2E0MThjZDcwMmY4
ZWNkMzZkMjExZWU2ZGRiYWE2YWY3OWYwZTI1Zi4uNjVjOWJjNGNhNzZhYzk1MGRkOTY4MmUxMjI0
ZGNiOGY2ZTBlNDhmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBy
b2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApA
QCAtMTE5MSw3ICsxMTkxLDcgQEAgTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uJiBXZWJQcm9jZXNz
OjplbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKQogICAgICAgICBpZiAoIUlQQzo6Q29u
bmVjdGlvbjo6aWRlbnRpZmllcklzVmFsaWQoY29ubmVjdGlvbkluZm8uaWRlbnRpZmllcigpKSkK
ICAgICAgICAgICAgIENSQVNIKCk7CiAKLSAgICAgICAgbV9uZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rp
b24gPSBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OmNyZWF0ZShjb25uZWN0aW9uSW5mby5yZWxl
YXNlSWRlbnRpZmllcigpKTsKKyAgICAgICAgbV9uZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24gPSBO
ZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OmNyZWF0ZShjb25uZWN0aW9uSW5mby5yZWxlYXNlSWRl
bnRpZmllcigpLCBjb25uZWN0aW9uSW5mby5jb29raWVBY2NlcHRQb2xpY3kpOwogI2lmIEhBVkUo
QVVESVRfVE9LRU4pCiAgICAgICAgIG1fbmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLT5zZXROZXR3
b3JrUHJvY2Vzc0F1ZGl0VG9rZW4oV1RGTW92ZShjb25uZWN0aW9uSW5mby5hdWRpdFRva2VuKSk7
CiAjZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>388359</attachid>
            <date>2020-01-21 15:13:10 -0800</date>
            <delta_ts>2020-01-22 09:11:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-206450-20200121151309.patch</filename>
            <type>text/plain</type>
            <size>83220</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0ODgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGJlNzFhNWRjNDQxN2Rm
OGFlM2VjNzg3MjNiMmYzZDI5NjQxYTdhMC4uNGNjYzNlZWRjN2IxMTU5ZTVjNmMyMTQzZmEyNGVh
ZWE4YmYyMzljMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIwLTAxLTIxICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgRnJlcXVlbnQgTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3M6OkNvb2tpZXNFbmFibGVkIHN5bmMgSVBDIHdoZW4gYnJvd3Np
bmcgcmVkZGl0LmNvbQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjA2NDUwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgTW92ZSBIVFRQQ29va2llQWNjZXB0UG9saWN5LmggaGVhZGVyIGZyb20gV2ViS2l0IHRv
IFdlYkNvcmUgc28gdGhhdCB0aGUgSFRUUENvb2tpZUFjY2VwdFBvbGljeSBlbnVtCisgICAgICAg
IGNhbiBiZSB1c2VkIGluIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbi4gUmVwbGFjZSBOZXR3b3JrU3Rv
cmFnZVNlc3Npb246OmNvb2tpZXNFbmFibGVkKCkgd2l0aCBhIG1vcmUKKyAgICAgICAgZGV0YWls
ZWQgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpjb29raWVBY2NlcHRQb2xpY3koKSBtZXRob2QuCisK
KyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICog
bG9hZGVyL0Nvb2tpZUphci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb29raWVKYXI6OmNvb2tp
ZXNFbmFibGVkIGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL0hUVFBDb29raWVB
Y2NlcHRQb2xpY3kuaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL0hUVFBDb29r
aWVBY2NlcHRQb2xpY3kuaC4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9y
YWdlU2Vzc2lvbi5jcHA6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFn
ZVNlc3Npb24uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2NmL05ldHdvcmtTdG9yYWdl
U2Vzc2lvbkNGTmV0V2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vz
c2lvbjo6Y29va2llQWNjZXB0UG9saWN5IGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3
b3JrL2NvY29hL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkNvY29hLm1tOgorICAgICAgICAoV2ViQ29y
ZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpjb29raWVBY2NlcHRQb2xpY3kgY29uc3QpOgorICAg
ICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY3VybC9OZXR3b3JrU3RvcmFnZVNlc3Npb25DdXJsLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y29va2llQWNjZXB0
UG9saWN5IGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvTmV0d29ya1N0
b3JhZ2VTZXNzaW9uU291cC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNl
c3Npb246OmNvb2tpZUFjY2VwdFBvbGljeSBjb25zdCk6CisKIDIwMjAtMDEtMjEgIFl1c3VrZSBT
dXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAgICAgICBbV1RGXSBBdG9tU3RyaW5nVGFi
bGUgc2hvdWxkIGJlIHNtYWxsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGJmNGZlNThlZDZjM2FmZThhYzZmODA0MWU3
ZjRlYzJmNTJjYzA5ZmMuLjhlMjc0ZTRjMDdiZjk1ODAxMDg2ZjJiOGIwYTU4NzllYzA3NWU3YmEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsNzcgQEAKKzIwMjAtMDEtMjEgIENocmlzIER1bWV6ICA8Y2R1
bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBGcmVxdWVudCBOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzczo6Q29va2llc0VuYWJsZWQgc3luYyBJUEMgd2hlbiBicm93c2luZyByZWRkaXQuY29t
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDY0NTAK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGcmVxdWVu
dCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Q29va2llc0VuYWJsZWQgc3luYyBJUEMg
d2hlbiBicm93c2luZyByZWRkaXQuY29tLiBUaGlzCisgICAgICAgIGhhcHBlbnMgZXZlcnkgdGlt
ZSB0aGUgcGFnZSBzY3JpcHQgY2FsbHMgbmF2aWdhdG9yLmNvb2tpZUVuYWJsZWQuIFRvIGFkZHJl
c3MgdGhlIGlzc3VlLCB3ZSBub3cKKyAgICAgICAgc3RvcmUgdGhlICJjb29raWUgYWNjZXB0IHBv
bGljeSIgb24gdGhlIFdlYkNvbnRlbnQgcHJvY2VzcyBzaWRlLiBUaGlzIGFsbG93cyB1cyB0byBr
bm93CisgICAgICAgIHN5bmNocm9ub3VzbHkgb24gdGhlIFdlYkNvbnRlbnQgcHJvY2VzcyBpZiBj
b29raWVzIGFyZSBlbmFibGVkIG9yIG5vdCBhbmQgd2l0aG91dCBhbnkgSVBDIHRvCisgICAgICAg
IHRoZSBuZXR3b3JrIHByb2Nlc3MuIFRvIGFjaGlldmUgdGhpcywgSSBhZGRlZCBhIG5ldyBjb29r
aWVBY2NlcHRQb2xpY3kgbWVtYmVyIHRvCisgICAgICAgIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlv
bkluZm8gc28gdGhhdCB0aGUgV2ViQ29udGVudCBwcm9jZXNzIGlzIGF3YXJlIG9mIHRoZSBpbml0
aWFsIHBvbGljeSB3aGVuCisgICAgICAgIGl0IGNvbm5lY3RzIHRvIHRoZSBuZXR3b3JrIHByb2Nl
c3MuIFRoZSBwb2xpY3kgb24gdGhlIFdlYkNvbnRlbnQgcHJvY2VzcyBzaWRlIGlzIHRoZW4ga2Vw
dCB1cAorICAgICAgICB0byBkYXRlIHZpYSBJUENzIGZyb20gdGhlIG5ldHdvcmsgcHJvY2VzcyB0
byB0aGUgV2ViQ29udGVudCBwcm9jZXNzZXMgd2hlbmV2ZXIgdGhlIGNvb2tpZQorICAgICAgICBh
Y2NlcHQgcG9saWN5IGNoYW5nZXMuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9Db29raWVz
L1dlYkNvb2tpZU1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDb29raWVNYW5hZ2Vy
OjpzZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29va2ll
TWFuYWdlcjo6Z2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeSk6CisgICAgICAgICogTmV0d29ya1By
b2Nlc3MvQ29va2llcy9XZWJDb29raWVNYW5hZ2VyLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nl
c3MvQ29va2llcy9XZWJDb29raWVNYW5hZ2VyLm1lc3NhZ2VzLmluOgorICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL0Nvb2tpZXMvY3VybC9XZWJDb29raWVNYW5hZ2VyQ3VybC5jcHA6CisgICAgICAg
ICogTmV0d29ya1Byb2Nlc3MvQ29va2llcy9tYWMvV2ViQ29va2llTWFuYWdlck1hYy5tbToKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9Db29raWVzL3NvdXAvV2ViQ29va2llTWFuYWdlclNvdXAu
Y3BwOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6
OmNvb2tpZUFjY2VwdFBvbGljeUNoYW5nZWQpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
UHJvY2Vzczo6Y3JlYXRlTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MpOgorICAgICAgICAo
V2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6Y29va2llQWNjZXB0UG9saWN5Q2hhbmdlZCk6CisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaDoKKyAgICAgICAgKiBOZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oOgorICAgICAgICAqIFNoYXJl
ZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9BUElIVFRQQ29va2llU3RvcmUuY3BwOgorICAgICAgICAoQVBJOjpIVFRQQ29va2llU3RvcmU6
OnNldEhUVFBDb29raWVBY2NlcHRQb2xpY3kpOgorICAgICAgICAoQVBJOjpIVFRQQ29va2llU3Rv
cmU6OnNldEhUVFBDb29raWVBY2NlcHRQb2xpY3lJbkRlZmF1bHRVSVByb2Nlc3NDb29raWVTdG9y
ZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElIVFRQQ29va2llU3RvcmUuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0Lmg6CisgICAgICAgIChXZWJLaXQ6OnRvSFRU
UENvb2tpZUFjY2VwdFBvbGljeSk6CisgICAgICAgIChXZWJLaXQ6OnRvQVBJKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL0NvY29hL0FQSUhUVFBDb29raWVTdG9yZUNvY29hLm1tOgorICAgICAg
ICAoQVBJOjp0b05TSFRUUENvb2tpZUFjY2VwdFBvbGljeSk6CisgICAgICAgIChBUEk6OkhUVFBD
b29raWVTdG9yZTo6c2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeUluRGVmYXVsdFVJUHJvY2Vzc0Nv
b2tpZVN0b3JlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLSFRUUENvb2tpZVN0
b3JlLm1tOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5tbToK
KyAgICAgICAgKHRvSFRUUENvb2tpZUFjY2VwdFBvbGljeSk6CisgICAgICAgICogVUlQcm9jZXNz
L05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtQcm9jZXNzUHJveHk6Om9wZW5OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24pOgorICAgICAgICAq
IFVJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Bvb2wuaDoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0
aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpOZXR3
b3JrUHJvY2Vzc0Nvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc0Nv
bm5lY3Rpb246OndyaXRlQmxvYnNUb1RlbXBvcmFyeUZpbGVzKToKKyAgICAgICAgKFdlYktpdDo6
TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpjb29raWVzRW5hYmxlZCk6CisgICAgICAgIChXZWJL
aXQ6Ok5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6Y29va2llQWNjZXB0UG9saWN5Q2hhbmdlZCk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5o
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OmNyZWF0ZSk6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5tZXNz
YWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25u
ZWN0aW9uSW5mby5oOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25J
bmZvOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc0Nvbm5l
Y3Rpb25JbmZvOjpkZWNvZGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJDb29r
aWVKYXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDb29raWVKYXI6OmNvb2tpZXNFbmFibGVk
IGNvbnN0KToKKyAgICAgICAgLSBSZXR1cm4gZmFsc2UgZWFybHkgaWYgdGhlIGRvY3VtZW50IGhh
cyBubyBmcmFtZSAvIHBhZ2UgKGNvb2tpZS1hdmVyc2UgYXMgcGVyIHNwZWMpCisgICAgICAgIC0g
UmV0dXJuIGZhbHNlIGVhcmx5IGlmIElUUCBpcyBlbmFibGVkIGFuZCBpdCBpcyBhIHRoaXJkLXBh
cnR5IGlmcmFtZSB3aXRob3V0IHN0b3JhZ2UKKyAgICAgICAgICBhY2Nlc3MuIFRoaXMgYnlwYXNz
ZXMgdGhlIHN5bmMgSVBDIGNhbGwgY29tcGxldGVseSBmb3Igc3VjaCBpZnJhbWVzLgorCisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJv
Y2Vzczo6ZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKToKKwogMjAyMC0wMS0yMSAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFttYWNPU10gQWRkIG1hbmFn
ZWQgcHJlZmVyZW5jZSB0byBhbGxvdyBzeW5jaHJvbm91cyBYSFIgZHVyaW5nIHBhZ2UgZGlzbWlz
c2FsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291cmNlL1dl
YkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCBiYjg3ODA2MTgzNzQxZjk2MjY4Mzg2OGVmYzY4OTEw
MmJjNGY0YTJkLi45ZjVkMmM3MjFjMDUxMTUwNDdjODJhODQ0ZmQxZDI5OWU3ZmZiMDNlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0hlYWRlcnMuY21ha2UKQEAgLTEyMjIsNiArMTIyMiw3IEBAIHNldChXZWJDb3JlX1BSSVZBVEVf
RlJBTUVXT1JLX0hFQURFUlMKICAgICBwbGF0Zm9ybS9uZXR3b3JrL0ROUy5oCiAgICAgcGxhdGZv
cm0vbmV0d29yay9ETlNSZXNvbHZlUXVldWUuaAogICAgIHBsYXRmb3JtL25ldHdvcmsvRm9ybURh
dGEuaAorICAgIHBsYXRmb3JtL25ldHdvcmsvSFRUUENvb2tpZUFjY2VwdFBvbGljeS5oCiAgICAg
cGxhdGZvcm0vbmV0d29yay9IVFRQSGVhZGVyTWFwLmgKICAgICBwbGF0Zm9ybS9uZXR3b3JrL0hU
VFBQYXJzZXJzLmgKICAgICBwbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtMb2FkSW5mb3JtYXRpb24u
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CmluZGV4IDlhNzJjYjEzYWUyZTc5YmU2MDk4YzkzMzc2NGM3NGYwMjFlNWM5OGUuLjljYzQ4M2E1
OTZlODY0YTQ0YmY4NTAyNGIzMDFhODMxZGFlNmJkZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEyNTIsNiArMTI1Miw3IEBA
CiAJCTQ2Qjk1MTlBMjA3RDYzNTQwMEE3RDJERCAvKiBSZW1vdGVGcmFtZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDZCOTUxOTIyMDdENjMyRTAwQTdE
MkREIC8qIFJlbW90ZUZyYW1lLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJNDZCOTVCRjUyMjMxQ0ZENjAwNTNBNTA0IC8qIERldmljZU9yaWVudGF0
aW9uQW5kTW90aW9uQWNjZXNzQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNDZCOTVCRjQyMjMxQ0ZCODAwNTNBNTA0IC8qIERldmljZU9y
aWVudGF0aW9uQW5kTW90aW9uQWNjZXNzQ29udHJvbGxlci5oICovOyB9OwogCQk0NkJDQkJDMjIw
ODUwMDhGMDA3MTA2MzggLyogSlNSZW1vdGVET01XaW5kb3dCYXNlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NkJDQkJDMDIwODUwMDdGMDA3MTA2Mzgg
LyogSlNSZW1vdGVET01XaW5kb3dCYXNlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKKwkJNDZDMDk2MjEyM0Q3OERENjAwNjU3QzA5IC8qIEhUVFBDb29r
aWVBY2NlcHRQb2xpY3kuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDQ2QzA5NjIwMjNENzhERDYwMDY1N0MwOSAvKiBIVFRQQ29va2llQWNjZXB0UG9saWN5
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDZD
Mzc2NjIyMDg1MTc3RDAwQzczODI5IC8qIEpTUmVtb3RlRE9NV2luZG93LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NkMzNzY2MTIwODUxNzZEMDBDNzM4
MjkgLyogSlNSZW1vdGVET01XaW5kb3cuaCAqLzsgfTsKIAkJNDZDNjk2Q0IxRTcyMDVGNzAwNTk3
OTM3IC8qIENQVU1vbml0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDQ2QzY5NkM5MUU3MjA1RTQwMDU5NzkzNyAvKiBDUFVNb25pdG9yLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDZDNjk2Q0MxRTcy
MDVGQzAwNTk3OTM3IC8qIENQVU1vbml0b3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNDZDNjk2Q0ExRTcyMDVFNDAwNTk3OTM3IC8qIENQVU1vbml0
b3IuY3BwICovOyB9OwpAQCAtNzc4Myw2ICs3Nzg0LDcgQEAKIAkJNDZCQ0JCQzAyMDg1MDA3RjAw
NzEwNjM4IC8qIEpTUmVtb3RlRE9NV2luZG93QmFzZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBKU1JlbW90ZURPTVdpbmRvd0Jhc2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNDZCQ0JCQzEyMDg1MDA4MDAwNzEwNjM4IC8qIEpTUmVtb3RlRE9NV2luZG93QmFz
ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1JlbW90ZURPTVdp
bmRvd0Jhc2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NkJDQkJDMzIwODUw
MEE3MDA3MTA2MzggLyogUmVtb3RlRE9NV2luZG93LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGgg
PSBSZW1vdGVET01XaW5kb3cuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0NkMw
OTYyMDIzRDc4REQ2MDA2NTdDMDkgLyogSFRUUENvb2tpZUFjY2VwdFBvbGljeS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBIVFRQQ29va2llQWNjZXB0UG9saWN5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTQ2QzM3NjVGMjA4NTE3NkMwMEM3MzgyOSAvKiBKU1JlbW90ZURPTVdpbmRvdy5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1JlbW90ZURPTVdpbmRvdy5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2QzM3NjYxMjA4NTE3NkQwMEM3Mzgy
OSAvKiBKU1JlbW90ZURPTVdpbmRvdy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBKU1JlbW90ZURPTVdpbmRvdy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NkM2
OTZDOTFFNzIwNUU0MDA1OTc5MzcgLyogQ1BVTW9uaXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBDUFVNb25pdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0yMDQ2MSw2ICsyMDQ2Myw3IEBACiAJCQkJNTE0Qzc2NUIwQ0U5MjNBMTAwN0VGM0NEIC8qIEZv
cm1EYXRhLmggKi8sCiAJCQkJMDg1QjkyQjgwRUZERTczRDAwRTYxMjNDIC8qIEZvcm1EYXRhQnVp
bGRlci5jcHAgKi8sCiAJCQkJMDg1QjkyQjkwRUZERTczRDAwRTYxMjNDIC8qIEZvcm1EYXRhQnVp
bGRlci5oICovLAorCQkJCTQ2QzA5NjIwMjNENzhERDYwMDY1N0MwOSAvKiBIVFRQQ29va2llQWNj
ZXB0UG9saWN5LmggKi8sCiAJCQkJMEI4QzU2RDMwRjI4NjI3RjAwMDUwMkUxIC8qIEhUVFBIZWFk
ZXJNYXAuY3BwICovLAogCQkJCTUxNEM3NjVDMENFOTIzQTEwMDdFRjNDRCAvKiBIVFRQSGVhZGVy
TWFwLmggKi8sCiAJCQkJMUFDOTAwQkYxOTQzQUYzRDAwODYyNUI1IC8qIEhUVFBIZWFkZXJOYW1l
cy5pbiAqLywKQEAgLTMwMjc4LDYgKzMwMjgxLDcgQEAKIAkJCQlFNDQ2MTNBQjBDRDYzMzEwMDBG
QURBNzUgLyogSFRNTFZpZGVvRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUQyRjhFMDUy
MzQ0NzUxRDAwOTkzQjY4IC8qIEhUTUxWaWRlb0VsZW1lbnRQaWN0dXJlSW5QaWN0dXJlLmggaW4g
SGVhZGVycyAqLywKIAkJCQk4MzlBQUZFRDFBMEMwQzhEMDA2MDVGOTkgLyogSFRNTFdCUkVsZW1l
bnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTQ2QzA5NjIxMjNENzhERDYwMDY1N0MwOSAvKiBIVFRQ
Q29va2llQWNjZXB0UG9saWN5LmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0ExREVDNjFGNzFGMUM3
MDBFNzFCRDMgLyogSFRUUEhlYWRlckZpZWxkLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTRDNzY3
MTBDRTkyM0ExMDA3RUYzQ0QgLyogSFRUUEhlYWRlck1hcC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MUFCNUVCRDIxOTRBNTBGMzAwNTlBQzcwIC8qIEhUVFBIZWFkZXJOYW1lcy5oIGluIEhlYWRlcnMg
Ki8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ29va2llSmFyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9Db29raWVKYXIuY3BwCmluZGV4IDIzOTA2NjhkZjgzMTEzZmRh
MTczMDM4MGMyNDkxMjA2YmQzODkwNWMuLmEwN2EzMDJhNDIzOTE0MWJmOTQ3NWRmNGY1ZWM1ZGM2
OTg1MGQzMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Db29raWVKYXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Db29raWVKYXIuY3BwCkBAIC0zMiw2ICszMiw3
IEBACiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgogI2luY2x1
ZGUgIkZyYW1lTG9hZGVyQ2xpZW50LmgiCisjaW5jbHVkZSAiSFRUUENvb2tpZUFjY2VwdFBvbGlj
eS5oIgogI2luY2x1ZGUgIk5ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oIgogI2luY2x1ZGUgIk5ldHdv
cmtpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJhdGVnaWVzLmgiCkBAIC0xMjIs
NyArMTIzLDcgQEAgdm9pZCBDb29raWVKYXI6OnNldENvb2tpZXMoRG9jdW1lbnQmIGRvY3VtZW50
LCBjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBjb28KIGJvb2wgQ29va2llSmFyOjpjb29r
aWVzRW5hYmxlZChjb25zdCBEb2N1bWVudCYpIGNvbnN0CiB7CiAgICAgaWYgKGF1dG8qIHNlc3Np
b24gPSBtX3N0b3JhZ2VTZXNzaW9uUHJvdmlkZXItPnN0b3JhZ2VTZXNzaW9uKCkpCi0gICAgICAg
IHJldHVybiBzZXNzaW9uLT5jb29raWVzRW5hYmxlZCgpOworICAgICAgICByZXR1cm4gc2Vzc2lv
bi0+Y29va2llQWNjZXB0UG9saWN5KCkgIT0gSFRUUENvb2tpZUFjY2VwdFBvbGljeTo6TmV2ZXI7
CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0hUVFBDb29raWVBY2NlcHRQb2xp
Y3kuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvSFRUUENvb2tpZUFjY2VwdFBv
bGljeS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjRlNjNmYjM1ZDQwZjdiMmJjY2E1OWY4NmNhYWFmYmYyNjY1YzJi
NjQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0hU
VFBDb29raWVBY2NlcHRQb2xpY3kuaApAQCAtMCwwICsxLDUxIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDExLTIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAor
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitlbnVtIGNsYXNzIEhUVFBDb29raWVBY2NlcHRQb2xpY3kgOiB1aW50
OF90IHsKKyAgICBBbHdheXNBY2NlcHQgPSAwLAorICAgIE5ldmVyID0gMSwKKyAgICBPbmx5RnJv
bU1haW5Eb2N1bWVudERvbWFpbiA9IDIsCisgICAgRXhjbHVzaXZlbHlGcm9tTWFpbkRvY3VtZW50
RG9tYWluID0gMywKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCituYW1lc3BhY2UgV1RG
IHsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpIVFRQQ29va2llQWNj
ZXB0UG9saWN5PiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAgICAgICAgV2Vi
Q29yZTo6SFRUUENvb2tpZUFjY2VwdFBvbGljeSwKKyAgICAgICAgV2ViQ29yZTo6SFRUUENvb2tp
ZUFjY2VwdFBvbGljeTo6QWx3YXlzQWNjZXB0LAorICAgICAgICBXZWJDb3JlOjpIVFRQQ29va2ll
QWNjZXB0UG9saWN5OjpOZXZlciwKKyAgICAgICAgV2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBv
bGljeTo6T25seUZyb21NYWluRG9jdW1lbnREb21haW4sCisgICAgICAgIFdlYkNvcmU6OkhUVFBD
b29raWVBY2NlcHRQb2xpY3k6OkV4Y2x1c2l2ZWx5RnJvbU1haW5Eb2N1bWVudERvbWFpbgorICAg
ID47Cit9OworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5jcHAKaW5kZXggNTE1ZGJmMTk5ZjcxNWNiMGQ0M2Yz
NGZkNTNjMzIzNjkxODFjOTNlNS4uMjk5NDI3NTYyNThlOTI0M2MzYjBhMTAwYjFhM2Y2ZjcyYTg0
NzU4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3Jr
U3RvcmFnZVNlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
TmV0d29ya1N0b3JhZ2VTZXNzaW9uLmNwcApAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgImNv
bmZpZy5oIgogI2luY2x1ZGUgIk5ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oIgogCisjaW5jbHVkZSAi
SFRUUENvb2tpZUFjY2VwdFBvbGljeS5oIgogI2luY2x1ZGUgIlJ1bnRpbWVBcHBsaWNhdGlvbkNo
ZWNrcy5oIgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogI2luY2x1ZGUgPHd0Zi9Q
cm9jZXNzUHJpdmlsZWdlLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaAppbmRleCAzNzIwYWM1ZTg1YjA5OGU0ODM1
Y2I2NzdjMDU4MWUwYjMwNWRkNTVjLi42NTA2ZjEwNzcwNjVhNGQyMWY3OTgwMTkyZjNkNzUwN2Vi
YzIzYTllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdv
cmtTdG9yYWdlU2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
TmV0d29ya1N0b3JhZ2VTZXNzaW9uLmgKQEAgLTcyLDYgKzcyLDcgQEAgc3RydWN0IENvb2tpZTsK
IHN0cnVjdCBDb29raWVSZXF1ZXN0SGVhZGVyRmllbGRQcm94eTsKIHN0cnVjdCBTYW1lU2l0ZUlu
Zm87CiAKK2VudW0gY2xhc3MgSFRUUENvb2tpZUFjY2VwdFBvbGljeSA6IHVpbnQ4X3Q7CiBlbnVt
IGNsYXNzIEluY2x1ZGVTZWN1cmVDb29raWVzIDogYm9vbDsKIGVudW0gY2xhc3MgSW5jbHVkZUh0
dHBPbmx5Q29va2llcyA6IGJvb2w7CiBlbnVtIGNsYXNzIFRoaXJkUGFydHlDb29raWVCbG9ja2lu
Z01vZGUgOiB1aW50OF90IHsgQWxsLCBBbGxPblNpdGVzV2l0aG91dFVzZXJJbnRlcmFjdGlvbiwg
T25seUFjY29yZGluZ1RvUGVyRG9tYWluUG9saWN5IH07CkBAIC0xMjUsNyArMTI2LDcgQEAgcHVi
bGljOgogICAgIE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0KCkgY29uc3Q7CiAjZW5kaWYKIAot
ICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgY29va2llc0VuYWJsZWQoKSBjb25zdDsKKyAgICBXRUJD
T1JFX0VYUE9SVCBIVFRQQ29va2llQWNjZXB0UG9saWN5IGNvb2tpZUFjY2VwdFBvbGljeSgpIGNv
bnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0Q29va2llKGNvbnN0IENvb2tpZSYpOwog
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0Q29va2llcyhjb25zdCBWZWN0b3I8Q29va2llPiYs
IGNvbnN0IFVSTCYsIGNvbnN0IFVSTCYgbWFpbkRvY3VtZW50VVJMKTsKICAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIHNldENvb2tpZXNGcm9tRE9NKGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3Qg
U2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiwgT3B0
aW9uYWw8UGFnZUlkZW50aWZpZXI+LCBTaG91bGRBc2tJVFAsIGNvbnN0IFN0cmluZyYpIGNvbnN0
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9OZXR3b3Jr
U3RvcmFnZVNlc3Npb25DRk5ldFdpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL2NmL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkNGTmV0V2luLmNwcAppbmRleCA1MmRhY2M2ODZk
ODNiYTI5ODEzMDc5MDU5YWM4NTUxZmE2MWU5M2JjLi4wNmE1M2IyZmExODM1YThiZDFkOWY1NDFj
NDAwZmZhNjJmZjBjYjkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL2NmL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkNGTmV0V2luLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkNGTmV0V2luLmNw
cApAQCAtMjgsNiArMjgsNyBAQAogCiAjaW5jbHVkZSAiQ29va2llLmgiCiAjaW5jbHVkZSAiQ29v
a2llUmVxdWVzdEhlYWRlckZpZWxkUHJveHkuaCIKKyNpbmNsdWRlICJIVFRQQ29va2llQWNjZXB0
UG9saWN5LmgiCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRlIDxDRk5ldHdv
cmsvQ0ZIVFRQQ29va2llc1ByaXYuaD4KICNpbmNsdWRlIDxDb3JlRm91bmRhdGlvbi9Db3JlRm91
bmRhdGlvbi5oPgpAQCAtMjU4LDEwICsyNTksMTcgQEAgc3RkOjpwYWlyPFN0cmluZywgYm9vbD4g
TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShjb24K
ICAgICByZXR1cm4gY29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoaGVhZGVyRmllbGRQcm94
eS5maXJzdFBhcnR5LCBoZWFkZXJGaWVsZFByb3h5LnNhbWVTaXRlSW5mbywgaGVhZGVyRmllbGRQ
cm94eS51cmwsIGhlYWRlckZpZWxkUHJveHkuZnJhbWVJRCwgaGVhZGVyRmllbGRQcm94eS5wYWdl
SUQsIGhlYWRlckZpZWxkUHJveHkuaW5jbHVkZVNlY3VyZUNvb2tpZXMsIFNob3VsZEFza0lUUDo6
WWVzKTsKIH0KIAotYm9vbCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmNvb2tpZXNFbmFibGVkKCkg
Y29uc3QKK0hUVFBDb29raWVBY2NlcHRQb2xpY3kgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpjb29r
aWVBY2NlcHRQb2xpY3koKSBjb25zdAogewogICAgIENGSFRUUENvb2tpZVN0b3JhZ2VBY2NlcHRQ
b2xpY3kgcG9saWN5ID0gQ0ZIVFRQQ29va2llU3RvcmFnZUdldENvb2tpZUFjY2VwdFBvbGljeShj
b29raWVTdG9yYWdlKCkuZ2V0KCkpOwotICAgIHJldHVybiBwb2xpY3kgPT0gQ0ZIVFRQQ29va2ll
U3RvcmFnZUFjY2VwdFBvbGljeU9ubHlGcm9tTWFpbkRvY3VtZW50RG9tYWluIHx8IHBvbGljeSA9
PSBDRkhUVFBDb29raWVTdG9yYWdlQWNjZXB0UG9saWN5RXhjbHVzaXZlbHlGcm9tTWFpbkRvY3Vt
ZW50RG9tYWluIHx8IHBvbGljeSA9PSBDRkhUVFBDb29raWVTdG9yYWdlQWNjZXB0UG9saWN5QWx3
YXlzOworICAgIGlmIChwb2xpY3kgPT0gQ0ZIVFRQQ29va2llU3RvcmFnZUFjY2VwdFBvbGljeUFs
d2F5cykKKyAgICAgICAgcmV0dXJuIEhUVFBDb29raWVBY2NlcHRQb2xpY3k6OkFsd2F5c0FjY2Vw
dDsKKyAgICBpZiAocG9saWN5ID09IENGSFRUUENvb2tpZVN0b3JhZ2VBY2NlcHRQb2xpY3lPbmx5
RnJvbU1haW5Eb2N1bWVudERvbWFpbikKKyAgICAgICAgcmV0dXJuIEhUVFBDb29raWVBY2NlcHRQ
b2xpY3k6Ok9ubHlGcm9tTWFpbkRvY3VtZW50RG9tYWluOworICAgIGlmIChwb2xpY3kgPT0gQ0ZI
VFRQQ29va2llU3RvcmFnZUFjY2VwdFBvbGljeUV4Y2x1c2l2ZWx5RnJvbU1haW5Eb2N1bWVudERv
bWFpbikKKyAgICAgICAgcmV0dXJuIEhUVFBDb29raWVBY2NlcHRQb2xpY3k6OkV4Y2x1c2l2ZWx5
RnJvbU1haW5Eb2N1bWVudERvbWFpbjsKKworICAgIHJldHVybiBIVFRQQ29va2llQWNjZXB0UG9s
aWN5OjpOZXZlcjsKIH0KIAogYm9vbCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmdldFJhd0Nvb2tp
ZXMoY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwm
IHVybCwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRl
bnRpZmllcj4gcGFnZUlELCBTaG91bGRBc2tJVFAsIFZlY3RvcjxDb29raWU+JiByYXdDb29raWVz
KSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2Nv
YS9OZXR3b3JrU3RvcmFnZVNlc3Npb25Db2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvY29jb2EvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ29jb2EubW0KaW5kZXggOWY2NzY1
ZWE2N2QxMGNlZjNiNjJlZDVjZTAwYjk4ODgxOTRmMmNkMS4uZmQxYWU1OGQ3NTMxMGY3NDY2NTdm
YmNkOTFkNmViNzZkNzY1N2QwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9jb2NvYS9OZXR3b3JrU3RvcmFnZVNlc3Npb25Db2NvYS5tbQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkNvY29h
Lm1tCkBAIC0yOSw2ICsyOSw3IEBACiAjaW1wb3J0ICJDb29raWUuaCIKICNpbXBvcnQgIkNvb2tp
ZVJlcXVlc3RIZWFkZXJGaWVsZFByb3h5LmgiCiAjaW1wb3J0ICJDb29raWVTdG9yYWdlT2JzZXJ2
ZXIuaCIKKyNpbXBvcnQgIkhUVFBDb29raWVBY2NlcHRQb2xpY3kuaCIKICNpbXBvcnQgIlNhbWVT
aXRlSW5mby5oIgogI2ltcG9ydCA8cGFsL3NwaS9jZi9DRk5ldHdvcmtTUEkuaD4KICNpbXBvcnQg
PHd0Zi9CbG9ja09iakNFeGNlcHRpb25zLmg+CkBAIC00NDgsMTUgKzQ0OSwxOSBAQCBzdGF0aWMg
TlNIVFRQQ29va2llQWNjZXB0UG9saWN5IGh0dHBDb29raWVBY2NlcHRQb2xpY3koQ0ZIVFRQQ29v
a2llU3RvcmFnZVJlZiBjbwogICAgIHJldHVybiBzdGF0aWNfY2FzdDxOU0hUVFBDb29raWVBY2Nl
cHRQb2xpY3k+KENGSFRUUENvb2tpZVN0b3JhZ2VHZXRDb29raWVBY2NlcHRQb2xpY3koY29va2ll
U3RvcmFnZSkpOwogfQogCi1ib29sIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y29va2llc0VuYWJs
ZWQoKSBjb25zdAorSFRUUENvb2tpZUFjY2VwdFBvbGljeSBOZXR3b3JrU3RvcmFnZVNlc3Npb246
OmNvb2tpZUFjY2VwdFBvbGljeSgpIGNvbnN0CiB7CiAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENF
UFRJT05TOwotCiAgICAgTlNIVFRQQ29va2llQWNjZXB0UG9saWN5IGNvb2tpZUFjY2VwdFBvbGlj
eSA9IGh0dHBDb29raWVBY2NlcHRQb2xpY3koY29va2llU3RvcmFnZSgpLmdldCgpKTsKLSAgICBy
ZXR1cm4gY29va2llQWNjZXB0UG9saWN5ID09IE5TSFRUUENvb2tpZUFjY2VwdFBvbGljeUFsd2F5
cyB8fCBjb29raWVBY2NlcHRQb2xpY3kgPT0gTlNIVFRQQ29va2llQWNjZXB0UG9saWN5T25seUZy
b21NYWluRG9jdW1lbnREb21haW4gfHwgY29va2llQWNjZXB0UG9saWN5ID09IE5TSFRUUENvb2tp
ZUFjY2VwdFBvbGljeUV4Y2x1c2l2ZWx5RnJvbU1haW5Eb2N1bWVudERvbWFpbjsKLQorICAgIGlm
IChjb29raWVBY2NlcHRQb2xpY3kgPT0gTlNIVFRQQ29va2llQWNjZXB0UG9saWN5QWx3YXlzKQor
ICAgICAgICByZXR1cm4gSFRUUENvb2tpZUFjY2VwdFBvbGljeTo6QWx3YXlzQWNjZXB0OworICAg
IGlmIChjb29raWVBY2NlcHRQb2xpY3kgPT0gTlNIVFRQQ29va2llQWNjZXB0UG9saWN5T25seUZy
b21NYWluRG9jdW1lbnREb21haW4pCisgICAgICAgIHJldHVybiBIVFRQQ29va2llQWNjZXB0UG9s
aWN5OjpPbmx5RnJvbU1haW5Eb2N1bWVudERvbWFpbjsKKyAgICBpZiAoY29va2llQWNjZXB0UG9s
aWN5ID09IE5TSFRUUENvb2tpZUFjY2VwdFBvbGljeUV4Y2x1c2l2ZWx5RnJvbU1haW5Eb2N1bWVu
dERvbWFpbikKKyAgICAgICAgcmV0dXJuIEhUVFBDb29raWVBY2NlcHRQb2xpY3k6OkV4Y2x1c2l2
ZWx5RnJvbU1haW5Eb2N1bWVudERvbWFpbjsKICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05T
OwotICAgIHJldHVybiBmYWxzZTsKKworICAgIHJldHVybiBIVFRQQ29va2llQWNjZXB0UG9saWN5
OjpOZXZlcjsKIH0KIAogYm9vbCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmdldFJhd0Nvb2tpZXMo
Y29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5mbywg
Y29uc3QgVVJMJiB1cmwsIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9u
YWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgU2hvdWxkQXNrSVRQIHNob3VsZEFza0lUUCwgVmVj
dG9yPENvb2tpZT4mIHJhd0Nvb2tpZXMpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ3VybC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvTmV0d29ya1N0b3JhZ2VTZXNzaW9u
Q3VybC5jcHAKaW5kZXggZDcwNDUwNGU2NDk5MWQ3NGYzMTcwZDgzNzhkYzJkZTI2NDgzMDJhYi4u
YmY5YzY3YTFlY2U2ZWIxZjBhNjQyMDA3ZjBlMWQ5NmVkN2Q1ZGYzMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkN1
cmwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9OZXR3b3Jr
U3RvcmFnZVNlc3Npb25DdXJsLmNwcApAQCAtODUsOSArODUsMjEgQEAgdm9pZCBOZXR3b3JrU3Rv
cmFnZVNlc3Npb246OnNldENvb2tpZXNGcm9tRE9NKGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29u
c3QgU2FtZVMKICAgICBjb29raWVTdG9yYWdlKCkuc2V0Q29va2llc0Zyb21ET00oKnRoaXMsIGZp
cnN0UGFydHksIHNhbWVTaXRlSW5mbywgdXJsLCBmcmFtZUlELCBwYWdlSUQsIHZhbHVlKTsKIH0K
IAotYm9vbCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmNvb2tpZXNFbmFibGVkKCkgY29uc3QKLXsK
LSAgICByZXR1cm4gY29va2llU3RvcmFnZSgpLmNvb2tpZXNFbmFibGVkKCp0aGlzKTsKK0hUVFBD
b29raWVBY2NlcHRQb2xpY3kgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpjb29raWVBY2NlcHRQb2xp
Y3koKSBjb25zdAoreworICAgIHN3aXRjaCAoY29va2llU3RvcmFnZSgpLmNvb2tpZUFjY2VwdFBv
bGljeSgqdGhpcykpIHsKKyAgICBjYXNlIENvb2tpZUFjY2VwdFBvbGljeTo6QWx3YXlzOgorICAg
ICAgICByZXR1cm4gSFRUUENvb2tpZUFjY2VwdFBvbGljeTo6QWx3YXlzQWNjZXB0OworICAgIGNh
c2UgQ29va2llQWNjZXB0UG9saWN5OjpOZXZlcjoKKyAgICAgICAgcmV0dXJuIEhUVFBDb29raWVB
Y2NlcHRQb2xpY3k6Ok5ldmVyOworICAgIGNhc2UgQ29va2llQWNjZXB0UG9saWN5OjpPbmx5RnJv
bU1haW5Eb2N1bWVudERvbWFpbjoKKyAgICAgICAgcmV0dXJuIEhUVFBDb29raWVBY2NlcHRQb2xp
Y3k6Ok9ubHlGcm9tTWFpbkRvY3VtZW50RG9tYWluOworICAgIGNhc2UgQ29va2llQWNjZXB0UG9s
aWN5OjpFeGNsdXNpdmVseUZyb21NYWluRG9jdW1lbnREb21haW46CisgICAgICAgIHJldHVybiBI
VFRQQ29va2llQWNjZXB0UG9saWN5OjpFeGNsdXNpdmVseUZyb21NYWluRG9jdW1lbnREb21haW47
CisgICAgfQorCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIEhUVFBDb29r
aWVBY2NlcHRQb2xpY3k6Ok9ubHlGcm9tTWFpbkRvY3VtZW50RG9tYWluOwogfQogCiBzdGQ6OnBh
aXI8U3RyaW5nLCBib29sPiBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmNvb2tpZXNGb3JET00oY29u
c3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5mbywgY29u
c3QgVVJMJiB1cmwsIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9uYWw8
UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgSW5jbHVkZVNlY3VyZUNvb2tpZXMgaW5jbHVkZVNlY3Vy
ZUNvb2tpZXMsIFNob3VsZEFza0lUUCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvc291cC9OZXR3b3JrU3RvcmFnZVNlc3Npb25Tb3VwLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9OZXR3b3JrU3RvcmFnZVNlc3Npb25T
b3VwLmNwcAppbmRleCBlMDU1MDc2YzdlMWRiYzI0MGVmMjM5YjdkZTIwNWMzYTg1OTQ1ZjkyLi42
ZGRiNTk3YWFhY2FiOWMzM2FkNjVjMGVmZDg3Y2JlNTc4MTQxOTJlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU291
cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL05ldHdvcmtT
dG9yYWdlU2Vzc2lvblNvdXAuY3BwCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiQ29va2ll
LmgiCiAjaW5jbHVkZSAiQ29va2llUmVxdWVzdEhlYWRlckZpZWxkUHJveHkuaCIKICNpbmNsdWRl
ICJHVW5pcXVlUHRyU291cC5oIgorI2luY2x1ZGUgIkhUVFBDb29raWVBY2NlcHRQb2xpY3kuaCIK
ICNpbmNsdWRlICJSZXNvdXJjZUhhbmRsZS5oIgogI2luY2x1ZGUgIlNvdXBOZXR3b3JrU2Vzc2lv
bi5oIgogI2luY2x1ZGUgIlVSTFNvdXAuaCIKQEAgLTI0MSwxMCArMjQyLDE0IEBAIHZvaWQgTmV0
d29ya1N0b3JhZ2VTZXNzaW9uOjpzYXZlQ3JlZGVudGlhbFRvUGVyc2lzdGVudFN0b3JhZ2UoY29u
c3QgUHJvdGVjdGlvblNwCiAjZW5kaWYKIH0KIAotYm9vbCBOZXR3b3JrU3RvcmFnZVNlc3Npb246
OmNvb2tpZXNFbmFibGVkKCkgY29uc3QKK0hUVFBDb29raWVBY2NlcHRQb2xpY3kgTmV0d29ya1N0
b3JhZ2VTZXNzaW9uOjpjb29raWVBY2NlcHRQb2xpY3koKSBjb25zdAogewogICAgIGF1dG8gcG9s
aWN5ID0gc291cF9jb29raWVfamFyX2dldF9hY2NlcHRfcG9saWN5KGNvb2tpZVN0b3JhZ2UoKSk7
Ci0gICAgcmV0dXJuIHBvbGljeSA9PSBTT1VQX0NPT0tJRV9KQVJfQUNDRVBUX0FMV0FZUyB8fCBw
b2xpY3kgPT0gU09VUF9DT09LSUVfSkFSX0FDQ0VQVF9OT19USElSRF9QQVJUWTsKKyAgICBpZiAo
cG9saWN5ID09IFNPVVBfQ09PS0lFX0pBUl9BQ0NFUFRfQUxXQVlTKQorICAgICAgICByZXR1cm4g
SFRUUENvb2tpZUFjY2VwdFBvbGljeTo6QWx3YXlzQWNjZXB0OworICAgIGlmIChwb2xpY3kgPT0g
U09VUF9DT09LSUVfSkFSX0FDQ0VQVF9OT19USElSRF9QQVJUWSkKKyAgICAgICAgcmV0dXJuIEhU
VFBDb29raWVBY2NlcHRQb2xpY3k6Ok9ubHlGcm9tTWFpbkRvY3VtZW50RG9tYWluOworICAgIHJl
dHVybiBIVFRQQ29va2llQWNjZXB0UG9saWN5OjpOZXZlcjsKIH0KIAogc3RhdGljIGlubGluZSBi
b29sIGh0dHBPbmx5Q29va2llRXhpc3RzKGNvbnN0IEdTTGlzdCogY29va2llcywgY29uc3QgZ2No
YXIqIG5hbWUsIGNvbnN0IGdjaGFyKiBwYXRoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIuY3BwCmluZGV4IDVkNmYw
NTIyMTQ4ZWFmNmNhMGE5MmU5NjJlNGU4MjhlN2RhN2Y3MmIuLjZlMjhhZGZmZWZjZWM3ZjBlM2U1
ZGE2MTlmMTMyOTdmYmU4ZDM2MzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvQ29va2llcy9XZWJDb29raWVNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlci5jcHAKQEAgLTE0NCwxMyArMTQ0
LDE4IEBAIHZvaWQgV2ViQ29va2llTWFuYWdlcjo6c3RvcE9ic2VydmluZ0Nvb2tpZUNoYW5nZXMo
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogdm9pZCBXZWJDb29raWVNYW5hZ2VyOjpzZXRIVFRQ
Q29va2llQWNjZXB0UG9saWN5KEhUVFBDb29raWVBY2NlcHRQb2xpY3kgcG9saWN5LCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgcGxhdGZvcm1T
ZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KHBvbGljeSk7CisgICAgbV9wcm9jZXNzLmNvb2tpZUFj
Y2VwdFBvbGljeUNoYW5nZWQocG9saWN5KTsKIAogICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CiB9
CiAKIHZvaWQgV2ViQ29va2llTWFuYWdlcjo6Z2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKEhUVFBDb29raWVBY2NlcHRQb2xpY3kpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKQogewotICAgIGNvbXBsZXRpb25IYW5kbGVyKHBsYXRmb3JtR2V0SFRUUENvb2tpZUFj
Y2VwdFBvbGljeSgpKTsKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBjb21wbGV0aW9uSGFuZGxl
cihXZWJDb29raWVNYW5hZ2VyOjpwbGF0Zm9ybUdldEhUVFBDb29raWVBY2NlcHRQb2xpY3koKSk7
CisjZWxzZQorICAgIGNvbXBsZXRpb25IYW5kbGVyKG1fcHJvY2Vzcy5kZWZhdWx0U3RvcmFnZVNl
c3Npb24oKS5jb29raWVBY2NlcHRQb2xpY3koKSk7CisjZW5kaWYKIH0KIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Nvb2tp
ZXMvV2ViQ29va2llTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Db29r
aWVzL1dlYkNvb2tpZU1hbmFnZXIuaAppbmRleCA0MDZiYjkwYTc2NWY1YzlmNmZlM2Y5Y2NjOTgx
ZjQyZGQxNGY4OWJhLi4yYzFkMjdjMzI0M2JiNmNlMjE2NzM5YzIyNGVjNTlmZTViYmRhNDlkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2ll
TWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ29va2llcy9XZWJD
b29raWVNYW5hZ2VyLmgKQEAgLTM5LDEyICszOSwxMiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiBzdHJ1Y3QgQ29va2llOworZW51bSBjbGFzcyBIVFRQQ29va2llQWNjZXB0UG9saWN5IDogdWlu
dDhfdDsKIH0KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIE5ldHdvcmtQcm9jZXNzOwot
ZW51bSBjbGFzcyBIVFRQQ29va2llQWNjZXB0UG9saWN5IDogdWludDhfdDsKIAogY2xhc3MgV2Vi
Q29va2llTWFuYWdlciA6IHB1YmxpYyBOZXR3b3JrUHJvY2Vzc1N1cHBsZW1lbnQsIHB1YmxpYyBJ
UEM6Ok1lc3NhZ2VSZWNlaXZlciB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CkBAIC01
NSw3ICs1NSw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBjb25zdCBjaGFyKiBzdXBwbGVtZW50
TmFtZSgpOwogCi0gICAgdm9pZCBzZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KEhUVFBDb29raWVB
Y2NlcHRQb2xpY3ksIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CisgICAgdm9pZCBzZXRI
VFRQQ29va2llQWNjZXB0UG9saWN5KFdlYkNvcmU6OkhUVFBDb29raWVBY2NlcHRQb2xpY3ksIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAKICNpZiBVU0UoU09VUCkKICAgICB2b2lkIHNl
dENvb2tpZVBlcnNpc3RlbnRTdG9yYWdlKFBBTDo6U2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIHN0
b3JhZ2VQYXRoLCBTb3VwQ29va2llUGVyc2lzdGVudFN0b3JhZ2VUeXBlKTsKQEAgLTc5LDkgKzc5
LDExIEBAIHByaXZhdGU6CiAgICAgdm9pZCBnZXRBbGxDb29raWVzKFBBTDo6U2Vzc2lvbklELCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKFZlY3RvcjxXZWJDb3JlOjpDb29raWU+JiYpPiYmKTsKICAg
ICB2b2lkIGdldENvb2tpZXMoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFVSTCYsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4mJik+JiYpOwogCi0gICAgdm9pZCBw
bGF0Zm9ybVNldEhUVFBDb29raWVBY2NlcHRQb2xpY3koSFRUUENvb2tpZUFjY2VwdFBvbGljeSk7
Ci0gICAgdm9pZCBnZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoSFRUUENvb2tpZUFjY2VwdFBvbGljeSk+JiYpOwotICAgIEhUVFBDb29raWVBY2NlcHRQb2xp
Y3kgcGxhdGZvcm1HZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KCk7CisgICAgdm9pZCBwbGF0Zm9y
bVNldEhUVFBDb29raWVBY2NlcHRQb2xpY3koV2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBvbGlj
eSk7CisgICAgdm9pZCBnZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoV2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBvbGljeSk+JiYpOworI2lmIFBMQVRGT1JN
KENPQ09BKQorICAgIFdlYkNvcmU6OkhUVFBDb29raWVBY2NlcHRQb2xpY3kgcGxhdGZvcm1HZXRI
VFRQQ29va2llQWNjZXB0UG9saWN5KCk7CisjZW5kaWYKIAogICAgIHZvaWQgc3RhcnRPYnNlcnZp
bmdDb29raWVDaGFuZ2VzKFBBTDo6U2Vzc2lvbklEKTsKICAgICB2b2lkIHN0b3BPYnNlcnZpbmdD
b29raWVDaGFuZ2VzKFBBTDo6U2Vzc2lvbklEKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvQ29va2llcy9XZWJDb29raWVNYW5hZ2VyLm1lc3NhZ2VzLmluIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIubWVzc2Fn
ZXMuaW4KaW5kZXggYWY0YzA5YjczMWZiMDQ5OGRhM2M1Mzc4MmI1ODNlYmI4YjMzMDRkMS4uYWNk
NzU0NDBkODNmMzQ2NjUwYzlmMzNiNzViNWQ1ZDA5MzUyMTNiYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIubWVzc2FnZXMu
aW4KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1h
bmFnZXIubWVzc2FnZXMuaW4KQEAgLTM1LDggKzM1LDggQEAgbWVzc2FnZXMgLT4gV2ViQ29va2ll
TWFuYWdlciBOb3RSZWZDb3VudGVkIHsKICAgICB2b2lkIERlbGV0ZUNvb2tpZShQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQsIHN0cnVjdCBXZWJDb3JlOjpDb29raWUgY29va2llKSAtPiAoKSBBc3lu
YwogICAgIHZvaWQgRGVsZXRlQWxsQ29va2llc01vZGlmaWVkU2luY2UoUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvbklELCBXYWxsVGltZSB0aW1lKSAtPiAoKSBBc3luYwogCi0gICAgdm9pZCBTZXRIVFRQ
Q29va2llQWNjZXB0UG9saWN5KGVudW06dWludDhfdCBXZWJLaXQ6OkhUVFBDb29raWVBY2NlcHRQ
b2xpY3kgcG9saWN5KSAtPiAoKSBBc3luYwotICAgIHZvaWQgR2V0SFRUUENvb2tpZUFjY2VwdFBv
bGljeSgpIC0+IChlbnVtOnVpbnQ4X3QgV2ViS2l0OjpIVFRQQ29va2llQWNjZXB0UG9saWN5IHBv
bGljeSkgQXN5bmMKKyAgICB2b2lkIFNldEhUVFBDb29raWVBY2NlcHRQb2xpY3koZW51bTp1aW50
OF90IFdlYkNvcmU6OkhUVFBDb29raWVBY2NlcHRQb2xpY3kgcG9saWN5KSAtPiAoKSBBc3luYwor
ICAgIHZvaWQgR2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeSgpIC0+IChlbnVtOnVpbnQ4X3QgV2Vi
Q29yZTo6SFRUUENvb2tpZUFjY2VwdFBvbGljeSBwb2xpY3kpIEFzeW5jCiAgICAgCiAgICAgdm9p
ZCBTdGFydE9ic2VydmluZ0Nvb2tpZUNoYW5nZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQog
ICAgIHZvaWQgU3RvcE9ic2VydmluZ0Nvb2tpZUNoYW5nZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Db29raWVzL2N1
cmwvV2ViQ29va2llTWFuYWdlckN1cmwuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9Db29raWVzL2N1cmwvV2ViQ29va2llTWFuYWdlckN1cmwuY3BwCmluZGV4IGMxYTM2Y2RlOWI1
ZWVlNmY3NTE5ZmUwMTMwZWIwMzdmYWUyNTcyMWIuLjdhNWNiMzk2ZTI5Yzg4ZDg0ODBmYTFjYjYz
NzBjYmM0NWJmZmU3ZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
Q29va2llcy9jdXJsL1dlYkNvb2tpZU1hbmFnZXJDdXJsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL0Nvb2tpZXMvY3VybC9XZWJDb29raWVNYW5hZ2VyQ3VybC5jcHAKQEAg
LTI2LDggKzI2LDggQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJXZWJDb29raWVN
YW5hZ2VyLmgiCiAKLSNpbmNsdWRlICJIVFRQQ29va2llQWNjZXB0UG9saWN5LmgiCiAjaW5jbHVk
ZSAiTmV0d29ya1Byb2Nlc3MuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0hUVFBDb29raWVBY2NlcHRQ
b2xpY3kuaD4KICNpbmNsdWRlIDxXZWJDb3JlL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oPgogCiBu
YW1lc3BhY2UgV2ViS2l0IHsKQEAgLTU3LDIyICs1Nyw0IEBAIHZvaWQgV2ViQ29va2llTWFuYWdl
cjo6cGxhdGZvcm1TZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KEhUVFBDb29raWVBY2NlcHRQb2xp
Y3kKICAgICB9KTsKIH0KIAotSFRUUENvb2tpZUFjY2VwdFBvbGljeSBXZWJDb29raWVNYW5hZ2Vy
OjpwbGF0Zm9ybUdldEhUVFBDb29raWVBY2NlcHRQb2xpY3koKQotewotICAgIGNvbnN0IGF1dG8m
IG5ldHdvcmtTdG9yYWdlU2Vzc2lvbiA9IG1fcHJvY2Vzcy5kZWZhdWx0U3RvcmFnZVNlc3Npb24o
KTsKLSAgICBzd2l0Y2ggKG5ldHdvcmtTdG9yYWdlU2Vzc2lvbi5jb29raWVTdG9yYWdlKCkuY29v
a2llQWNjZXB0UG9saWN5KG5ldHdvcmtTdG9yYWdlU2Vzc2lvbikpIHsKLSAgICBjYXNlIENvb2tp
ZUFjY2VwdFBvbGljeTo6QWx3YXlzOgotICAgICAgICByZXR1cm4gSFRUUENvb2tpZUFjY2VwdFBv
bGljeTo6QWx3YXlzQWNjZXB0OwotICAgIGNhc2UgQ29va2llQWNjZXB0UG9saWN5OjpOZXZlcjoK
LSAgICAgICAgcmV0dXJuIEhUVFBDb29raWVBY2NlcHRQb2xpY3k6Ok5ldmVyOwotICAgIGNhc2Ug
Q29va2llQWNjZXB0UG9saWN5OjpPbmx5RnJvbU1haW5Eb2N1bWVudERvbWFpbjoKLSAgICAgICAg
cmV0dXJuIEhUVFBDb29raWVBY2NlcHRQb2xpY3k6Ok9ubHlGcm9tTWFpbkRvY3VtZW50RG9tYWlu
OwotICAgIGNhc2UgQ29va2llQWNjZXB0UG9saWN5OjpFeGNsdXNpdmVseUZyb21NYWluRG9jdW1l
bnREb21haW46Ci0gICAgICAgIHJldHVybiBIVFRQQ29va2llQWNjZXB0UG9saWN5OjpFeGNsdXNp
dmVseUZyb21NYWluRG9jdW1lbnREb21haW47Ci0gICAgfQotCi0gICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7Ci0gICAgcmV0dXJuIEhUVFBDb29raWVBY2NlcHRQb2xpY3k6Ok9ubHlGcm9tTWFpbkRv
Y3VtZW50RG9tYWluOwotfQotCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ29va2llcy9tYWMvV2ViQ29va2llTWFuYWdlck1h
Yy5tbSBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ29va2llcy9tYWMvV2ViQ29va2ll
TWFuYWdlck1hYy5tbQppbmRleCBiYzllOTI0M2Q0MjczOGQwZmUyYzYyOGNkN2Q0MTllYTFhNDA2
ZWY3Li41YzhiMzRjODI1NWRiZGY3OTA5MGM5MThmMTExN2E0ZWMxNTgxNzM2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Nvb2tpZXMvbWFjL1dlYkNvb2tpZU1hbmFn
ZXJNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Db29raWVzL21hYy9X
ZWJDb29raWVNYW5hZ2VyTWFjLm1tCkBAIC0yNiw5ICsyNiw5IEBACiAjaW1wb3J0ICJjb25maWcu
aCIKICNpbXBvcnQgIldlYkNvb2tpZU1hbmFnZXIuaCIKIAotI2ltcG9ydCAiSFRUUENvb2tpZUFj
Y2VwdFBvbGljeS5oIgogI2ltcG9ydCAiTmV0d29ya1Byb2Nlc3MuaCIKICNpbXBvcnQgIk5ldHdv
cmtTZXNzaW9uLmgiCisjaW1wb3J0IDxXZWJDb3JlL0hUVFBDb29raWVBY2NlcHRQb2xpY3kuaD4K
ICNpbXBvcnQgPFdlYkNvcmUvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmg+CiAjaW1wb3J0IDxwYWwv
c3BpL2NmL0NGTmV0d29ya1NQSS5oPgogI2ltcG9ydCA8d3RmL1Byb2Nlc3NQcml2aWxlZ2UuaD4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ29va2llcy9zb3VwL1dl
YkNvb2tpZU1hbmFnZXJTb3VwLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ29v
a2llcy9zb3VwL1dlYkNvb2tpZU1hbmFnZXJTb3VwLmNwcAppbmRleCBlYTkxNTIyYzA5YTQ4MGNk
NjJmNGM4OWFjODQyYzdlZDEzMjIxYjgxLi5jYmZjYWVlNTYzYTEyNjY4ZDQzMjE5NjJjMDY4ZjI5
MjE4YmUzMjU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Nvb2tp
ZXMvc291cC9XZWJDb29raWVNYW5hZ2VyU291cC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9Db29raWVzL3NvdXAvV2ViQ29va2llTWFuYWdlclNvdXAuY3BwCkBAIC0yNiwx
MCArMjYsMTAgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJXZWJDb29raWVNYW5h
Z2VyLmgiCiAKLSNpbmNsdWRlICJIVFRQQ29va2llQWNjZXB0UG9saWN5LmgiCiAjaW5jbHVkZSAi
TmV0d29ya1Byb2Nlc3MuaCIKICNpbmNsdWRlICJOZXR3b3JrU2Vzc2lvblNvdXAuaCIKICNpbmNs
dWRlICJTb3VwQ29va2llUGVyc2lzdGVudFN0b3JhZ2VUeXBlLmgiCisjaW5jbHVkZSA8V2ViQ29y
ZS9IVFRQQ29va2llQWNjZXB0UG9saWN5Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9OZXR3b3JrU3Rv
cmFnZVNlc3Npb24uaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NvdXBOZXR3b3JrU2Vzc2lvbi5oPgog
I2luY2x1ZGUgPGxpYnNvdXAvc291cC5oPgpAQCAtNjAsMjEgKzYwLDYgQEAgdm9pZCBXZWJDb29r
aWVNYW5hZ2VyOjpwbGF0Zm9ybVNldEhUVFBDb29raWVBY2NlcHRQb2xpY3koSFRUUENvb2tpZUFj
Y2VwdFBvbGljeQogICAgIH0pOwogfQogCi1IVFRQQ29va2llQWNjZXB0UG9saWN5IFdlYkNvb2tp
ZU1hbmFnZXI6OnBsYXRmb3JtR2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeSgpCi17Ci0gICAgc3dp
dGNoIChzb3VwX2Nvb2tpZV9qYXJfZ2V0X2FjY2VwdF9wb2xpY3kobV9wcm9jZXNzLmRlZmF1bHRT
dG9yYWdlU2Vzc2lvbigpLmNvb2tpZVN0b3JhZ2UoKSkpIHsKLSAgICBjYXNlIFNPVVBfQ09PS0lF
X0pBUl9BQ0NFUFRfQUxXQVlTOgotICAgICAgICByZXR1cm4gSFRUUENvb2tpZUFjY2VwdFBvbGlj
eTo6QWx3YXlzQWNjZXB0OwotICAgIGNhc2UgU09VUF9DT09LSUVfSkFSX0FDQ0VQVF9ORVZFUjoK
LSAgICAgICAgcmV0dXJuIEhUVFBDb29raWVBY2NlcHRQb2xpY3k6Ok5ldmVyOwotICAgIGNhc2Ug
U09VUF9DT09LSUVfSkFSX0FDQ0VQVF9OT19USElSRF9QQVJUWToKLSAgICAgICAgcmV0dXJuIEhU
VFBDb29raWVBY2NlcHRQb2xpY3k6Ok9ubHlGcm9tTWFpbkRvY3VtZW50RG9tYWluOwotICAgIH0K
LQotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiBIVFRQQ29va2llQWNjZXB0
UG9saWN5OjpPbmx5RnJvbU1haW5Eb2N1bWVudERvbWFpbjsKLX0KLQogdm9pZCBXZWJDb29raWVN
YW5hZ2VyOjpzZXRDb29raWVQZXJzaXN0ZW50U3RvcmFnZShQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQsIGNvbnN0IFN0cmluZyYgc3RvcmFnZVBhdGgsIFNvdXBDb29raWVQZXJzaXN0ZW50U3RvcmFn
ZVR5cGUgc3RvcmFnZVR5cGUpCiB7CiAgICAgaWYgKGF1dG8qIG5ldHdvcmtTZXNzaW9uID0gbV9w
cm9jZXNzLm5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mu
Y3BwCmluZGV4IGIyZDRjNmMxZjYxOTYwNzE0MmVhYzc3MjRiY2JiYTA4MThmM2IwNTIuLjY4ZjY4
NWFmYmE3NmNmMjIzMDQ2ZjRhYjE0YzMwNTU1YWIwODkyYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MuY3BwCkBAIC02Myw2ICs2Myw3IEBACiAjaW5jbHVkZSAiV2ViU1dTZXJ2ZXJUb0NvbnRl
eHRDb25uZWN0aW9uTWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJzaXRlRGF0YVN0b3JlUGFyYW1l
dGVycy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvRG9jdW1lbnRTdG9yYWdlQWNjZXNzLmg+CisjaW5j
bHVkZSA8V2ViQ29yZS9IVFRQQ29va2llQWNjZXB0UG9saWN5Lmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlTG9h
ZE9ic2VydmVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzLmg+
CkBAIC00NjMsNiArNDY0LDExIEBAIHZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6
OnNldE9uTGluZVN0YXRlKGJvb2wgaXNPbkxpbmUpCiAgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1l
c3NhZ2VzOjpOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OlNldE9uTGluZVN0YXRlKGlzT25MaW5l
KSwgMCk7CiB9CiAKK3ZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNvb2tpZUFj
Y2VwdFBvbGljeUNoYW5nZWQoSFRUUENvb2tpZUFjY2VwdFBvbGljeSBuZXdQb2xpY3kpCit7Cisg
ICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246
OkNvb2tpZUFjY2VwdFBvbGljeUNoYW5nZWQobmV3UG9saWN5KSwgMCk7Cit9CisKIHZvaWQgTmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnJlbW92ZUxvYWRJZGVudGlmaWVyKFJlc291cmNl
TG9hZElkZW50aWZpZXIgaWRlbnRpZmllcikKIHsKICAgICBSRUxFQVNFX0FTU0VSVChpZGVudGlm
aWVyKTsKQEAgLTU5MywxNCArNTk5LDYgQEAgdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzczo6c2V0Q29va2llc0Zyb21ET00oY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb24KICNlbmRp
ZgogfQogCi12b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpjb29raWVzRW5hYmxl
ZChDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQotewot
ICAgIGF1dG8qIG5ldHdvcmtTdG9yYWdlU2Vzc2lvbiA9IHN0b3JhZ2VTZXNzaW9uKCk7Ci0gICAg
aWYgKCFuZXR3b3JrU3RvcmFnZVNlc3Npb24pCi0gICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFu
ZGxlcihmYWxzZSk7Ci0gICAgY29tcGxldGlvbkhhbmRsZXIobmV0d29ya1N0b3JhZ2VTZXNzaW9u
LT5jb29raWVzRW5hYmxlZCgpKTsKLX0KLQogdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzczo6Y29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoY29uc3QgVVJMJiBmaXJzdFBhcnR5
LCBjb25zdCBTYW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5mbywgY29uc3QgVVJMJiB1cmwsIE9wdGlv
bmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBh
Z2VJRCwgSW5jbHVkZVNlY3VyZUNvb2tpZXMgaW5jbHVkZVNlY3VyZUNvb2tpZXMsIFNob3VsZEFz
a0lUUCBzaG91bGRBc2tJVFAsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nLCBib29sKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBhdXRvKiBuZXR3b3JrU3RvcmFnZVNlc3Npb24g
PSBzdG9yYWdlU2Vzc2lvbigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCmluZGV4IDgzOTc0MzFj
MDMzMTNjYzJjMDUwZDUxMmM5NTJhZTdlM2ZlZTlhNjUuLmU4MzVlNjQxYjYwOTI2ZGJkMzRmNDQx
ZjRlMzhkMDVjN2M3NWYyYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKQEAgLTYxLDYgKzYx
LDcgQEAgZW51bSBjbGFzcyBTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCA6IGJvb2w7CiBlbnVtIGNs
YXNzIFNob3VsZEFza0lUUCA6IGJvb2w7CiBzdHJ1Y3QgU2FtZVNpdGVJbmZvOwogCitlbnVtIGNs
YXNzIEhUVFBDb29raWVBY2NlcHRQb2xpY3kgOiB1aW50OF90OwogZW51bSBjbGFzcyBJbmNsdWRl
U2VjdXJlQ29va2llcyA6IGJvb2w7CiB9CiAKQEAgLTE2Nyw2ICsxNjgsOCBAQCBwdWJsaWM6CiAK
ICAgICBOZXR3b3JrU2NoZW1lUmVnaXN0cnkmIHNjaGVtZVJlZ2lzdHJ5KCkgeyByZXR1cm4gbV9z
Y2hlbWVSZWdpc3RyeS5nZXQoKTsgfQogCisgICAgdm9pZCBjb29raWVBY2NlcHRQb2xpY3lDaGFu
Z2VkKFdlYkNvcmU6OkhUVFBDb29raWVBY2NlcHRQb2xpY3kpOworCiBwcml2YXRlOgogICAgIE5l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzKE5ldHdvcmtQcm9jZXNzJiwgV2ViQ29yZTo6UHJv
Y2Vzc0lkZW50aWZpZXIsIFBBTDo6U2Vzc2lvbklELCBJUEM6OkNvbm5lY3Rpb246OklkZW50aWZp
ZXIpOwogCkBAIC0yMDAsNyArMjAzLDYgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgY29va2llc0Zv
ckRPTShjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlNhbWVTaXRlSW5mbyYs
IGNvbnN0IFVSTCYsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgV2ViQ29yZTo6UGFnZUlkZW50
aWZpZXIsIFdlYkNvcmU6OkluY2x1ZGVTZWN1cmVDb29raWVzLCBXZWJDb3JlOjpTaG91bGRBc2tJ
VFAsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nIGNvb2tpZVN0cmluZywgYm9vbCBzZWN1
cmVDb29raWVzQWNjZXNzZWQpPiYmKTsKICAgICB2b2lkIHNldENvb2tpZXNGcm9tRE9NKGNvbnN0
IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6U2FtZVNpdGVJbmZvJiwgY29uc3QgVVJM
JiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2Vi
Q29yZTo6U2hvdWxkQXNrSVRQLCBjb25zdCBTdHJpbmcmKTsKLSAgICB2b2lkIGNvb2tpZXNFbmFi
bGVkKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwogICAgIHZvaWQgY29va2llUmVx
dWVzdEhlYWRlckZpZWxkVmFsdWUoY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBXZWJDb3Jl
OjpTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmLCBPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXI+LCBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4sIFdlYkNvcmU6OkluY2x1
ZGVTZWN1cmVDb29raWVzLCBXZWJDb3JlOjpTaG91bGRBc2tJVFAsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoU3RyaW5nIGNvb2tpZVN0cmluZywgYm9vbCBzZWN1cmVDb29raWVzQWNjZXNzZWQpPiYm
KTsKICAgICB2b2lkIGdldFJhd0Nvb2tpZXMoY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBX
ZWJDb3JlOjpTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmLCBPcHRpb25hbDxXZWJDb3JlOjpGcmFt
ZUlkZW50aWZpZXI+LCBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4sIFdlYkNvcmU6
OlNob3VsZEFza0lUUCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8V2ViQ29yZTo6Q29v
a2llPiYmKT4mJik7CiAgICAgdm9pZCBkZWxldGVDb29raWUoY29uc3QgVVJMJiwgY29uc3QgU3Ry
aW5nJiBjb29raWVOYW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2Vz
LmluCmluZGV4IDg0Y2ZiZGYzZmI5MzRkNzkxNDM3MTYyMTFhMjUwNmZjZjYxMzRkNWEuLjAyMGI0
N2E3N2I3M2MxOGE2YTYyZDQ2NTAxNWE3Y2E0YmMzYWIwNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2Fn
ZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgpAQCAtMzYsNyArMzYsNiBAQCBtZXNzYWdlcyAtPiBO
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyBMZWdhY3lSZWNlaXZlciB7CiAKICAgICBDb29r
aWVzRm9yRE9NKFVSTCBmaXJzdFBhcnR5LCBzdHJ1Y3QgV2ViQ29yZTo6U2FtZVNpdGVJbmZvIHNh
bWVTaXRlSW5mbywgVVJMIHVybCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFdl
YkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgZW51bTpib29sIFdlYkNvcmU6OkluY2x1ZGVT
ZWN1cmVDb29raWVzIGluY2x1ZGVTZWN1cmVDb29raWVzLCBlbnVtOmJvb2wgV2ViQ29yZTo6U2hv
dWxkQXNrSVRQIHNob3VsZEFza0lUUCkgLT4gKFN0cmluZyBjb29raWVTdHJpbmcsIGJvb2wgZGlk
QWNjZXNzU2VjdXJlQ29va2llcykgU3luY2hyb25vdXMKICAgICBTZXRDb29raWVzRnJvbURPTShV
UkwgZmlyc3RQYXJ0eSwgc3RydWN0IFdlYkNvcmU6OlNhbWVTaXRlSW5mbyBzYW1lU2l0ZUluZm8s
IFVSTCB1cmwsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBXZWJDb3JlOjpQYWdl
SWRlbnRpZmllciBwYWdlSUQsIGVudW06Ym9vbCBXZWJDb3JlOjpTaG91bGRBc2tJVFAgc2hvdWxk
QXNrSVRQLCBTdHJpbmcgY29va2llU3RyaW5nKQotICAgIENvb2tpZXNFbmFibGVkKCkgLT4gKGJv
b2wgZW5hYmxlZCkgU3luY2hyb25vdXMKICAgICBDb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1
ZShVUkwgZmlyc3RQYXJ0eSwgc3RydWN0IFdlYkNvcmU6OlNhbWVTaXRlSW5mbyBzYW1lU2l0ZUlu
Zm8sIFVSTCB1cmwsIE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwg
T3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgZW51bTpib29sIFdlYkNv
cmU6OkluY2x1ZGVTZWN1cmVDb29raWVzIGluY2x1ZGVTZWN1cmVDb29raWVzLCBlbnVtOmJvb2wg
V2ViQ29yZTo6U2hvdWxkQXNrSVRQIHNob3VsZEFza0lUUCkgLT4gKFN0cmluZyBjb29raWVTdHJp
bmcsIGJvb2wgZGlkQWNjZXNzU2VjdXJlQ29va2llcykgU3luY2hyb25vdXMKICAgICBHZXRSYXdD
b29raWVzKFVSTCBmaXJzdFBhcnR5LCBzdHJ1Y3QgV2ViQ29yZTo6U2FtZVNpdGVJbmZvIHNhbWVT
aXRlSW5mbywgVVJMIHVybCwgT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiBmcmFt
ZUlELCBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBlbnVtOmJvb2wg
V2ViQ29yZTo6U2hvdWxkQXNrSVRQIHNob3VsZEFza0lUUCkgLT4gKFZlY3RvcjxXZWJDb3JlOjpD
b29raWU+IGNvb2tpZXMpIFN5bmNocm9ub3VzCiAgICAgRGVsZXRlQ29va2llKFVSTCB1cmwsIFN0
cmluZyBjb29raWVOYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtQcm9jZXNzLmNwcAppbmRleCAzOTkyNmViNmFhODhhOWEyNjFiMzQwNzg1Zjc0MThiODlmZjIx
MTY4Li5hZjI0Y2ZmZjg3MTliNzgwYjViODA4MmYyYTNlODExMjEyN2M3MWJhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcApAQCAtNzAsNiAr
NzAsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvRE5TLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9EZXBy
ZWNhdGVkR2xvYmFsU2V0dGluZ3MuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0RpYWdub3N0aWNMb2dn
aW5nQ2xpZW50Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9IVFRQQ29va2llQWNjZXB0UG9saWN5Lmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9MZWdhY3lTY2hlbWVSZWdpc3RyeS5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvTG9nSW5pdGlhbGl6YXRpb24uaD4KICNpbmNsdWRlIDxXZWJDb3JlL01JTUVUeXBlUmVn
aXN0cnkuaD4KQEAgLTM2OCwxMSArMzY5LDExIEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmluaXRp
YWxpemVDb25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbikKICAgICAgICAgc3Vw
cGxlbWVudC0+aW5pdGlhbGl6ZUNvbm5lY3Rpb24oY29ubmVjdGlvbik7CiB9CiAKLXZvaWQgTmV0
d29ya1Byb2Nlc3M6OmNyZWF0ZU5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzKFByb2Nlc3NJ
ZGVudGlmaWVyIGlkZW50aWZpZXIsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChPcHRpb25hbDxJUEM6OkF0dGFjaG1lbnQ+JiYpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKQordm9pZCBOZXR3b3JrUHJvY2Vzczo6Y3JlYXRlTmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MoUHJvY2Vzc0lkZW50aWZpZXIgaWRlbnRpZmllciwgUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPElQQzo6QXR0YWNobWVudD4m
JiwgSFRUUENvb2tpZUFjY2VwdFBvbGljeSk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAg
YXV0byBpcGNDb25uZWN0aW9uID0gY3JlYXRlSVBDQ29ubmVjdGlvblBhaXIoKTsKICAgICBpZiAo
IWlwY0Nvbm5lY3Rpb24pIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoeyB9KTsKKyAgICAg
ICAgY29tcGxldGlvbkhhbmRsZXIoeyB9LCBIVFRQQ29va2llQWNjZXB0UG9saWN5OjpOZXZlcik7
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTM4Miw3ICszODMsMTEgQEAgdm9pZCBOZXR3
b3JrUHJvY2Vzczo6Y3JlYXRlTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoUHJvY2Vzc0lk
ZW50aWZpZXIgaWRlbnQKICAgICBBU1NFUlQoIW1fd2ViUHJvY2Vzc0Nvbm5lY3Rpb25zLmNvbnRh
aW5zKGlkZW50aWZpZXIpKTsKICAgICBtX3dlYlByb2Nlc3NDb25uZWN0aW9ucy5hZGQoaWRlbnRp
ZmllciwgV1RGTW92ZShuZXdDb25uZWN0aW9uKSk7CiAKLSAgICBjb21wbGV0aW9uSGFuZGxlcihX
VEZNb3ZlKGlwY0Nvbm5lY3Rpb24tPnNlY29uZCkpOworICAgIEhUVFBDb29raWVBY2NlcHRQb2xp
Y3kgY29va2llQWNjZXB0UG9saWN5ID0gSFRUUENvb2tpZUFjY2VwdFBvbGljeTo6TmV2ZXI7Cisg
ICAgaWYgKGF1dG8qIHN0b3JhZ2UgPSBzdG9yYWdlU2Vzc2lvbihzZXNzaW9uSUQpKQorICAgICAg
ICBjb29raWVBY2NlcHRQb2xpY3kgPSBzdG9yYWdlLT5jb29raWVBY2NlcHRQb2xpY3koKTsKKwor
ICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUoaXBjQ29ubmVjdGlvbi0+c2Vjb25kKSwgY29v
a2llQWNjZXB0UG9saWN5KTsKIAogICAgIGNvbm5lY3Rpb24uc2V0T25MaW5lU3RhdGUoTmV0d29y
a1N0YXRlTm90aWZpZXI6OnNpbmdsZXRvbigpLm9uTGluZSgpKTsKIApAQCAtNTA3LDYgKzUxMiwx
MiBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjplbnN1cmVTZXNzaW9uKGNvbnN0IFBBTDo6U2Vzc2lv
bklEJiBzZXNzaW9uSUQsIGJvb2wgc2hvdWxkVQogI2VuZGlmCiB9CiAKK3ZvaWQgTmV0d29ya1By
b2Nlc3M6OmNvb2tpZUFjY2VwdFBvbGljeUNoYW5nZWQoSFRUUENvb2tpZUFjY2VwdFBvbGljeSBu
ZXdQb2xpY3kpCit7CisgICAgZm9yIChhdXRvJiBjb25uZWN0aW9uIDogbV93ZWJQcm9jZXNzQ29u
bmVjdGlvbnMudmFsdWVzKCkpCisgICAgICAgIGNvbm5lY3Rpb24tPmNvb2tpZUFjY2VwdFBvbGlj
eUNoYW5nZWQobmV3UG9saWN5KTsKK30KKwogV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9u
KiBOZXR3b3JrUHJvY2Vzczo6c3RvcmFnZVNlc3Npb24oY29uc3QgUEFMOjpTZXNzaW9uSUQmIHNl
c3Npb25JRCkgY29uc3QKIHsKICAgICBpZiAoc2Vzc2lvbklEID09IFBBTDo6U2Vzc2lvbklEOjpk
ZWZhdWx0U2Vzc2lvbklEKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtQcm9jZXNzLmgKaW5kZXggY2FhZGMyMDFiYjI0ZjUyZDBkN2QzYWVjYjg5Y2Q5ZTNiMGFiYTYy
Ny4uZDZkOTU0NTMzOTY4YTFjNDFjMjVmNDUyMGFmMzgzZDMxNjQ3MTk2OCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaApAQCAtODEsNiArODEsNyBA
QCBjbGFzcyBTdG9yYWdlUXVvdGFNYW5hZ2VyOwogY2xhc3MgTmV0d29ya1N0b3JhZ2VTZXNzaW9u
OwogY2xhc3MgUmVzb3VyY2VFcnJvcjsKIGNsYXNzIFNXU2VydmVyOworZW51bSBjbGFzcyBIVFRQ
Q29va2llQWNjZXB0UG9saWN5IDogdWludDhfdDsKIGVudW0gY2xhc3MgSW5jbHVkZUh0dHBPbmx5
Q29va2llcyA6IGJvb2w7CiBlbnVtIGNsYXNzIFN0b3JlZENyZWRlbnRpYWxzUG9saWN5IDogdWlu
dDhfdDsKIGVudW0gY2xhc3MgU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duIDogYm9vbDsKQEAg
LTM0NCw2ICszNDUsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCByZXNldFNlcnZpY2VXb3JrZXJGZXRj
aFRpbWVvdXRGb3JUZXN0aW5nKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgU2Vj
b25kcyBzZXJ2aWNlV29ya2VyRmV0Y2hUaW1lb3V0KCkgY29uc3QgeyByZXR1cm4gbV9zZXJ2aWNl
V29ya2VyRmV0Y2hUaW1lb3V0OyB9CiAKKyAgICB2b2lkIGNvb2tpZUFjY2VwdFBvbGljeUNoYW5n
ZWQoV2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBvbGljeSk7CisKIHByaXZhdGU6CiAgICAgdm9p
ZCBwbGF0Zm9ybUluaXRpYWxpemVOZXR3b3JrUHJvY2Vzcyhjb25zdCBOZXR3b3JrUHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVycyYpOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpOZXR3b3Jr
U3RvcmFnZVNlc3Npb24+IHBsYXRmb3JtQ3JlYXRlRGVmYXVsdFN0b3JhZ2VTZXNzaW9uKCkgY29u
c3Q7CkBAIC0zODQsNyArMzg3LDcgQEAgcHJpdmF0ZToKICAgICAvLyBNZXNzYWdlIEhhbmRsZXJz
CiAgICAgdm9pZCBkaWRSZWNlaXZlU3luY05ldHdvcmtQcm9jZXNzTWVzc2FnZShJUEM6OkNvbm5l
Y3Rpb24mLCBJUEM6OkRlY29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYpOwog
ICAgIHZvaWQgaW5pdGlhbGl6ZU5ldHdvcmtQcm9jZXNzKE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzJiYpOwotICAgIHZvaWQgY3JlYXRlTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MoV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIsIFBBTDo6U2Vzc2lvbklELCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKE9wdGlvbmFsPElQQzo6QXR0YWNobWVudD4mJik+JiYpOworICAgIHZvaWQg
Y3JlYXRlTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoV2ViQ29yZTo6UHJvY2Vzc0lkZW50
aWZpZXIsIFBBTDo6U2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPElQ
Qzo6QXR0YWNobWVudD4mJiwgV2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBvbGljeSk+JiYpOwog
CiAgICAgdm9pZCBmZXRjaFdlYnNpdGVEYXRhKFBBTDo6U2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vi
c2l0ZURhdGFUeXBlPiwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhRmV0Y2hPcHRpb24+LCB1aW50NjRf
dCBjYWxsYmFja0lEKTsKICAgICB2b2lkIGRlbGV0ZVdlYnNpdGVEYXRhKFBBTDo6U2Vzc2lvbklE
LCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiwgV2FsbFRpbWUgbW9kaWZpZWRTaW5jZSwgdWlu
dDY0X3QgY2FsbGJhY2tJRCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgppbmRleCBhNTY2MTNjZGEzNGM3ZTNhY2U1
NTRmZDc4YjM1OTRiYWJhYmQ2NjA2Li4zOWQxMWYzYTI2NTMzMzY2YjY5YjJmNzA1YTlkZGIxY2Mz
MWMxOGE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQ
cm9jZXNzLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4KQEAgLTI1LDcgKzI1LDcgQEAgbWVzc2FnZXMgLT4gTmV0
d29ya1Byb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewogICAgIEluaXRpYWxpemVOZXR3b3JrUHJvY2Vz
cyhzdHJ1Y3QgV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyBwcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzKQogCiAgICAgIyBDcmVhdGVzIGEgY29ubmVjdGlvbiBmb3IgY29t
bXVuaWNhdGlvbiB3aXRoIGEgV2ViUHJvY2VzcwotICAgIENyZWF0ZU5ldHdvcmtDb25uZWN0aW9u
VG9XZWJQcm9jZXNzKFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyIHByb2Nlc3NJZGVudGlmaWVy
LCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+IChPcHRpb25hbDxJUEM6OkF0dGFjaG1lbnQ+
IGNvbm5lY3Rpb25JZGVudGlmaWVyKSBBc3luYworICAgIENyZWF0ZU5ldHdvcmtDb25uZWN0aW9u
VG9XZWJQcm9jZXNzKFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyIHByb2Nlc3NJZGVudGlmaWVy
LCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+IChPcHRpb25hbDxJUEM6OkF0dGFjaG1lbnQ+
IGNvbm5lY3Rpb25JZGVudGlmaWVyLCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6SFRUUENvb2tpZUFj
Y2VwdFBvbGljeSBjb29raWVBY2NlcHRQb2xpY3kpIEFzeW5jCiAKICNpZiBVU0UoU09VUCkKICAg
ICBTZXRJZ25vcmVUTFNFcnJvcnMoYm9vbCBpZ25vcmVUTFNFcnJvcnMpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzLmgKaW5kZXggNTA5ZTM2N2ExYjBiNmFkMzkwMWNkNWRlMTIyYmZlY2EzMGYz
Yzc1Mi4uY2I2YzMxMDlmOGVhNDEzMzMzOTYxYzg3YzJlZjZkNjk4MTc3OGVmMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMuaApAQCAtMzQsNyArMzQsNyBAQAogI2luY2x1ZGUgPHd0Zi90
ZXh0L1dURlN0cmluZy5oPgogCiAjaWYgVVNFKFNPVVApCi0jaW5jbHVkZSAiSFRUUENvb2tpZUFj
Y2VwdFBvbGljeS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvSFRUUENvb2tpZUFjY2VwdFBvbGljeS5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvU291cE5ldHdvcmtQcm94eVNldHRpbmdzLmg+CiAjZW5kaWYK
IApAQCAtNzYsNyArNzYsNyBAQCBzdHJ1Y3QgTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnMgewogICAgIFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzIGRlZmF1bHREYXRhU3RvcmVQYXJh
bWV0ZXJzOwogICAgIAogI2lmIFVTRShTT1VQKQotICAgIEhUVFBDb29raWVBY2NlcHRQb2xpY3kg
Y29va2llQWNjZXB0UG9saWN5IHsgSFRUUENvb2tpZUFjY2VwdFBvbGljeTo6QWx3YXlzQWNjZXB0
IH07CisgICAgV2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBvbGljeSBjb29raWVBY2NlcHRQb2xp
Y3kgeyBXZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0UG9saWN5OjpBbHdheXNBY2NlcHQgfTsKICAg
ICBib29sIGlnbm9yZVRMU0Vycm9ycyB7IGZhbHNlIH07CiAgICAgVmVjdG9yPFN0cmluZz4gbGFu
Z3VhZ2VzOwogICAgIFdlYkNvcmU6OlNvdXBOZXR3b3JrUHJveHlTZXR0aW5ncyBwcm94eVNldHRp
bmdzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvSFRUUENvb2tpZUFjY2VwdFBv
bGljeS5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvSFRUUENvb2tpZUFjY2VwdFBvbGljeS5oCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0NTdjMjM0NGM5Yzg5ODZmZjZlMjMyMzMwNWEy
ODQzM2Q4NmVhMGViLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0hUVFBDb29raWVBY2NlcHRQb2xpY3kuaAorKysgL2Rl
di9udWxsCkBAIC0xLDUxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
Ci0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
LSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLWVudW0g
Y2xhc3MgSFRUUENvb2tpZUFjY2VwdFBvbGljeSA6IHVpbnQ4X3QgewotICAgIEFsd2F5c0FjY2Vw
dCA9IDAsCi0gICAgTmV2ZXIgPSAxLAotICAgIE9ubHlGcm9tTWFpbkRvY3VtZW50RG9tYWluID0g
MiwKLSAgICBFeGNsdXNpdmVseUZyb21NYWluRG9jdW1lbnREb21haW4gPSAzLAotfTsKLQotfSAv
LyBuYW1lc3BhY2UgV2ViS2l0Ci0KLW5hbWVzcGFjZSBXVEYgewotCi10ZW1wbGF0ZTw+IHN0cnVj
dCBFbnVtVHJhaXRzPFdlYktpdDo6SFRUUENvb2tpZUFjY2VwdFBvbGljeT4gewotICAgIHVzaW5n
IHZhbHVlcyA9IEVudW1WYWx1ZXM8Ci0gICAgICAgIFdlYktpdDo6SFRUUENvb2tpZUFjY2VwdFBv
bGljeSwKLSAgICAgICAgV2ViS2l0OjpIVFRQQ29va2llQWNjZXB0UG9saWN5OjpBbHdheXNBY2Nl
cHQsCi0gICAgICAgIFdlYktpdDo6SFRUUENvb2tpZUFjY2VwdFBvbGljeTo6TmV2ZXIsCi0gICAg
ICAgIFdlYktpdDo6SFRUUENvb2tpZUFjY2VwdFBvbGljeTo6T25seUZyb21NYWluRG9jdW1lbnRE
b21haW4sCi0gICAgICAgIFdlYktpdDo6SFRUUENvb2tpZUFjY2VwdFBvbGljeTo6RXhjbHVzaXZl
bHlGcm9tTWFpbkRvY3VtZW50RG9tYWluCi0gICAgPjsKLX07Ci0KLX0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAppbmRleCA0OTZj
ZmM5ZjdlODRhYWM2MjZiZTE3ZTdlNWIwMTZiOGQ1Y2M1MDBmLi5iNDMwMmQ2OGNlN2MxNjk2MmVl
Yjg3Mjc3YzVmODNmYjg3ZjQ4OGM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCkBAIC00Nyw3ICs0Nyw3IEBACiAjZW5kaWYK
IAogI2lmIFVTRShTT1VQKQotI2luY2x1ZGUgIkhUVFBDb29raWVBY2NlcHRQb2xpY3kuaCIKKyNp
bmNsdWRlIDxXZWJDb3JlL0hUVFBDb29raWVBY2NlcHRQb2xpY3kuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1NvdXBOZXR3b3JrUHJveHlTZXR0aW5ncy5oPgogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElIVFRQQ29va2llU3RvcmUuY3BwIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUhUVFBDb29raWVTdG9yZS5jcHAKaW5kZXggYzJmN2Vh
MjAxMTA1MDEyZTJlNzM0OThhYzE3N2ZkZmQzMDgzYzkxNy4uMmVlMzBiZGZiZjc4NTk3NzE0MmJh
NzdjZTBhM2I4MGU5YzZjZjM1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0FQSUhUVFBDb29raWVTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0FQSUhUVFBDb29raWVTdG9yZS5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJX
ZWJzaXRlRGF0YVN0b3JlLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9Db29raWUuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL0Nvb2tpZVN0b3JhZ2UuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0hUVFBDb29raWVB
Y2NlcHRQb2xpY3kuaD4KICNpbmNsdWRlIDxXZWJDb3JlL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5o
PgogCiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwpAQCAtMTMzLDcgKzEzNCw3IEBAIHZvaWQgSFRU
UENvb2tpZVN0b3JlOjpkZWxldGVBbGxDb29raWVzKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4m
JiBjb21wbGV0aW9uSGFuCiAgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFdURk1vdmUoY29t
cGxldGlvbkhhbmRsZXIpKTsKIH0KIAotdm9pZCBIVFRQQ29va2llU3RvcmU6OnNldEhUVFBDb29r
aWVBY2NlcHRQb2xpY3koV2ViS2l0OjpIVFRQQ29va2llQWNjZXB0UG9saWN5IHBvbGljeSwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBIVFRQQ29v
a2llU3RvcmU6OnNldEhUVFBDb29raWVBY2NlcHRQb2xpY3koV2ViQ29yZTo6SFRUUENvb2tpZUFj
Y2VwdFBvbGljeSBwb2xpY3ksIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9u
SGFuZGxlcikKIHsKICAgICBhdXRvKiBwb29sID0gbV9vd25pbmdEYXRhU3RvcmUtPnByb2Nlc3NQ
b29sRm9yQ29va2llU3RvcmFnZU9wZXJhdGlvbnMoKTsKICAgICBpZiAoIXBvb2wpIHsKQEAgLTI3
OSw3ICsyODAsNyBAQCB2b2lkIEhUVFBDb29raWVTdG9yZTo6ZGVsZXRlQ29va2llRnJvbURlZmF1
bHRVSVByb2Nlc3NDb29raWVTdG9yZShjb25zdCBXZWJDb3JlOgogdm9pZCBIVFRQQ29va2llU3Rv
cmU6OnN0YXJ0T2JzZXJ2aW5nQ2hhbmdlc1RvRGVmYXVsdFVJUHJvY2Vzc0Nvb2tpZVN0b3JlKEZ1
bmN0aW9uPHZvaWQoKT4mJikgeyB9CiB2b2lkIEhUVFBDb29raWVTdG9yZTo6c3RvcE9ic2Vydmlu
Z0NoYW5nZXNUb0RlZmF1bHRVSVByb2Nlc3NDb29raWVTdG9yZSgpIHsgfQogdm9pZCBIVFRQQ29v
a2llU3RvcmU6OmRlbGV0ZUNvb2tpZXNJbkRlZmF1bHRVSVByb2Nlc3NDb29raWVTdG9yZSgpIHsg
fQotdm9pZCBIVFRQQ29va2llU3RvcmU6OnNldEhUVFBDb29raWVBY2NlcHRQb2xpY3lJbkRlZmF1
bHRVSVByb2Nlc3NDb29raWVTdG9yZShXZWJLaXQ6OkhUVFBDb29raWVBY2NlcHRQb2xpY3kpIHsg
fQordm9pZCBIVFRQQ29va2llU3RvcmU6OnNldEhUVFBDb29raWVBY2NlcHRQb2xpY3lJbkRlZmF1
bHRVSVByb2Nlc3NDb29raWVTdG9yZShXZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0UG9saWN5KSB7
IH0KICNlbmRpZgogICAgIAogfSAvLyBuYW1lc3BhY2UgQVBJCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJSFRUUENvb2tpZVN0b3JlLmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQVBJSFRUUENvb2tpZVN0b3JlLmgKaW5kZXggMmU0MWY2MjRkNDc0ZjVm
ZjQxZTE1MjUxMjBmNWJmN2E2YmIyNmQzZC4uODE3OWM0NGY0ZTU4ZDJiNjI5ODU1Y2E5MTU5MDk0
ZjQzMmM0NmM3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUhU
VFBDb29raWVTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElIVFRQ
Q29va2llU3RvcmUuaApAQCAtMjYsNyArMjYsNiBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRl
ICJBUElPYmplY3QuaCIKLSNpbmNsdWRlICJIVFRQQ29va2llQWNjZXB0UG9saWN5LmgiCiAjaW5j
bHVkZSA8V2ViQ29yZS9Db29raWUuaD4KICNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIu
aD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgpAQCAtMzcsMTIgKzM2LDEyIEBAIHN0cnVjdCBD
b29raWU7CiAjaWYgUExBVEZPUk0oQ09DT0EpCiBjbGFzcyBDb29raWVTdG9yYWdlT2JzZXJ2ZXI7
CiAjZW5kaWYKK2VudW0gY2xhc3MgSFRUUENvb2tpZUFjY2VwdFBvbGljeSA6IHVpbnQ4X3Q7CiB9
CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3MgV2ViQ29va2llTWFuYWdlclByb3h5OwogY2xh
c3MgV2Vic2l0ZURhdGFTdG9yZTsKLWVudW0gY2xhc3MgSFRUUENvb2tpZUFjY2VwdFBvbGljeSA6
IHVpbnQ4X3Q7CiB9CiAKIG5hbWVzcGFjZSBBUEkgewpAQCAtNjMsNyArNjIsNyBAQCBwdWJsaWM6
CiAgICAgdm9pZCBkZWxldGVDb29raWUoY29uc3QgV2ViQ29yZTo6Q29va2llJiwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICAKICAgICB2b2lkIGRlbGV0ZUFsbENvb2tpZXMoQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKLSAgICB2b2lkIHNldEhUVFBDb29raWVBY2NlcHRQ
b2xpY3koV2ViS2l0OjpIVFRQQ29va2llQWNjZXB0UG9saWN5LCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKCk+JiYpOworICAgIHZvaWQgc2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShXZWJDb3JlOjpI
VFRQQ29va2llQWNjZXB0UG9saWN5LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogCiAg
ICAgY2xhc3MgT2JzZXJ2ZXIgewogICAgIHB1YmxpYzoKQEAgLTkwLDcgKzg5LDcgQEAgcHJpdmF0
ZToKICAgICB2b2lkIHN0YXJ0T2JzZXJ2aW5nQ2hhbmdlc1RvRGVmYXVsdFVJUHJvY2Vzc0Nvb2tp
ZVN0b3JlKEZ1bmN0aW9uPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzdG9wT2JzZXJ2aW5nQ2hhbmdl
c1RvRGVmYXVsdFVJUHJvY2Vzc0Nvb2tpZVN0b3JlKCk7CiAgICAgdm9pZCBkZWxldGVDb29raWVz
SW5EZWZhdWx0VUlQcm9jZXNzQ29va2llU3RvcmUoKTsKLSAgICB2b2lkIHNldEhUVFBDb29raWVB
Y2NlcHRQb2xpY3lJbkRlZmF1bHRVSVByb2Nlc3NDb29raWVTdG9yZShXZWJLaXQ6OkhUVFBDb29r
aWVBY2NlcHRQb2xpY3kpOworICAgIHZvaWQgc2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeUluRGVm
YXVsdFVJUHJvY2Vzc0Nvb2tpZVN0b3JlKFdlYkNvcmU6OkhUVFBDb29raWVBY2NlcHRQb2xpY3kp
OwogICAgIAogICAgIC8vIEZJWE1FOiBUaGlzIGlzIGEgcmVmZXJlbmNlIGN5Y2xlLgogICAgIFJl
ZjxXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU+IG1fb3duaW5nRGF0YVN0b3JlOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaAppbmRleCAwMGQxNjI3MjcwMjhhNjZiNDA3
YjM1ZDU2MThkOTA1YzFlYTNiYTA0Li44MTA1NWE2MTliYTE5ZjU2NTIyYzQ3ODAxYTVhMGNhYzNj
NWZmYzQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNh
c3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaApAQCAt
MjgsNyArMjgsNiBAQAogI2RlZmluZSBXS0FQSUNhc3RfaAogCiAjaW5jbHVkZSAiQ2FjaGVNb2Rl
bC5oIgotI2luY2x1ZGUgIkhUVFBDb29raWVBY2NlcHRQb2xpY3kuaCIKICNpbmNsdWRlICJJbmpl
Y3RlZEJ1bmRsZUhpdFRlc3RSZXN1bHRNZWRpYVR5cGUuaCIKICNpbmNsdWRlICJQbHVnaW5Nb2R1
bGVJbmZvLmgiCiAjaW5jbHVkZSAiUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uLmgiCkBAIC00Niw2
ICs0NSw3IEBACiAjaW5jbHVkZSAiV0tTaGFyZWRBUElDYXN0LmgiCiAjaW5jbHVkZSA8V2ViQ29y
ZS9DcmVkZW50aWFsLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUxvYWRlclR5cGVzLmg+Cisj
aW5jbHVkZSA8V2ViQ29yZS9IVFRQQ29va2llQWNjZXB0UG9saWN5Lmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9QbHVnaW5EYXRhLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Qcm90ZWN0aW9uU3BhY2UuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL1NldHRpbmdzLmg+CkBAIC0zNjksMzMgKzM2OSwzMyBAQCBpbmxp
bmUgUmVzb3VyY2VDYWNoZXNUb0NsZWFyIHRvUmVzb3VyY2VDYWNoZXNUb0NsZWFyKFdLUmVzb3Vy
Y2VDYWNoZXNUb0NsZWFyIHdrUgogICAgIHJldHVybiBBbGxSZXNvdXJjZUNhY2hlczsKIH0KIAot
aW5saW5lIEhUVFBDb29raWVBY2NlcHRQb2xpY3kgdG9IVFRQQ29va2llQWNjZXB0UG9saWN5KFdL
SFRUUENvb2tpZUFjY2VwdFBvbGljeSBwb2xpY3kpCitpbmxpbmUgV2ViQ29yZTo6SFRUUENvb2tp
ZUFjY2VwdFBvbGljeSB0b0hUVFBDb29raWVBY2NlcHRQb2xpY3koV0tIVFRQQ29va2llQWNjZXB0
UG9saWN5IHBvbGljeSkKIHsKICAgICBzd2l0Y2ggKHBvbGljeSkgewogICAgIGNhc2Uga1dLSFRU
UENvb2tpZUFjY2VwdFBvbGljeUFsd2F5czoKLSAgICAgICAgcmV0dXJuIEhUVFBDb29raWVBY2Nl
cHRQb2xpY3k6OkFsd2F5c0FjY2VwdDsKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkhUVFBDb29r
aWVBY2NlcHRQb2xpY3k6OkFsd2F5c0FjY2VwdDsKICAgICBjYXNlIGtXS0hUVFBDb29raWVBY2Nl
cHRQb2xpY3lOZXZlcjoKLSAgICAgICAgcmV0dXJuIEhUVFBDb29raWVBY2NlcHRQb2xpY3k6Ok5l
dmVyOworICAgICAgICByZXR1cm4gV2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBvbGljeTo6TmV2
ZXI7CiAgICAgY2FzZSBrV0tIVFRQQ29va2llQWNjZXB0UG9saWN5T25seUZyb21NYWluRG9jdW1l
bnREb21haW46Ci0gICAgICAgIHJldHVybiBIVFRQQ29va2llQWNjZXB0UG9saWN5OjpPbmx5RnJv
bU1haW5Eb2N1bWVudERvbWFpbjsKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkhUVFBDb29raWVB
Y2NlcHRQb2xpY3k6Ok9ubHlGcm9tTWFpbkRvY3VtZW50RG9tYWluOwogICAgIGNhc2Uga1dLSFRU
UENvb2tpZUFjY2VwdFBvbGljeUV4Y2x1c2l2ZWx5RnJvbU1haW5Eb2N1bWVudERvbWFpbjoKLSAg
ICAgICAgcmV0dXJuIEhUVFBDb29raWVBY2NlcHRQb2xpY3k6OkV4Y2x1c2l2ZWx5RnJvbU1haW5E
b2N1bWVudERvbWFpbjsKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkhUVFBDb29raWVBY2NlcHRQ
b2xpY3k6OkV4Y2x1c2l2ZWx5RnJvbU1haW5Eb2N1bWVudERvbWFpbjsKICAgICB9CiAKICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gSFRUUENvb2tpZUFjY2VwdFBvbGljeTo6
QWx3YXlzQWNjZXB0OworICAgIHJldHVybiBXZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0UG9saWN5
OjpBbHdheXNBY2NlcHQ7CiB9CiAKLWlubGluZSBXS0hUVFBDb29raWVBY2NlcHRQb2xpY3kgdG9B
UEkoSFRUUENvb2tpZUFjY2VwdFBvbGljeSBwb2xpY3kpCitpbmxpbmUgV0tIVFRQQ29va2llQWNj
ZXB0UG9saWN5IHRvQVBJKFdlYkNvcmU6OkhUVFBDb29raWVBY2NlcHRQb2xpY3kgcG9saWN5KQog
ewogICAgIHN3aXRjaCAocG9saWN5KSB7Ci0gICAgY2FzZSBIVFRQQ29va2llQWNjZXB0UG9saWN5
OjpBbHdheXNBY2NlcHQ6CisgICAgY2FzZSBXZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0UG9saWN5
OjpBbHdheXNBY2NlcHQ6CiAgICAgICAgIHJldHVybiBrV0tIVFRQQ29va2llQWNjZXB0UG9saWN5
QWx3YXlzOwotICAgIGNhc2UgSFRUUENvb2tpZUFjY2VwdFBvbGljeTo6TmV2ZXI6CisgICAgY2Fz
ZSBXZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0UG9saWN5OjpOZXZlcjoKICAgICAgICAgcmV0dXJu
IGtXS0hUVFBDb29raWVBY2NlcHRQb2xpY3lOZXZlcjsKLSAgICBjYXNlIEhUVFBDb29raWVBY2Nl
cHRQb2xpY3k6Ok9ubHlGcm9tTWFpbkRvY3VtZW50RG9tYWluOgorICAgIGNhc2UgV2ViQ29yZTo6
SFRUUENvb2tpZUFjY2VwdFBvbGljeTo6T25seUZyb21NYWluRG9jdW1lbnREb21haW46CiAgICAg
ICAgIHJldHVybiBrV0tIVFRQQ29va2llQWNjZXB0UG9saWN5T25seUZyb21NYWluRG9jdW1lbnRE
b21haW47Ci0gICAgY2FzZSBIVFRQQ29va2llQWNjZXB0UG9saWN5OjpFeGNsdXNpdmVseUZyb21N
YWluRG9jdW1lbnREb21haW46CisgICAgY2FzZSBXZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0UG9s
aWN5OjpFeGNsdXNpdmVseUZyb21NYWluRG9jdW1lbnREb21haW46CiAgICAgICAgIHJldHVybiBr
V0tIVFRQQ29va2llQWNjZXB0UG9saWN5RXhjbHVzaXZlbHlGcm9tTWFpbkRvY3VtZW50RG9tYWlu
OwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L0FQSUhUVFBDb29raWVTdG9yZUNvY29hLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL0FQSUhUVFBDb29raWVTdG9yZUNvY29hLm1tCmluZGV4IGFkMTk2NzYxZDQ4NDAyMWFi
YjYzZmM5ZDVlZDA3ZWQ2NWZmZTQ0Y2IuLjc5MTIwMWM0NzdlNWQ4YTE3MTc0MTNmMDIxZTJiZjc1
MjU2MzY4Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9B
UElIVFRQQ29va2llU3RvcmVDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvQVBJSFRUUENvb2tpZVN0b3JlQ29jb2EubW0KQEAgLTI4LDYgKzI4LDcgQEAKIAog
I2luY2x1ZGUgPFdlYkNvcmUvQ29va2llLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Db29raWVTdG9y
YWdlT2JzZXJ2ZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0hUVFBDb29raWVBY2NlcHRQb2xpY3ku
aD4KICNpbmNsdWRlIDxwYWwvc3BpL2NmL0NGTmV0d29ya1NQSS5oPgogCiBuYW1lc3BhY2UgQVBJ
IHsKQEAgLTc1LDIzICs3NiwyMyBAQCB2b2lkIEhUVFBDb29raWVTdG9yZTo6ZGVsZXRlQ29va2ll
c0luRGVmYXVsdFVJUHJvY2Vzc0Nvb2tpZVN0b3JlKCkKICAgICBbW05TSFRUUENvb2tpZVN0b3Jh
Z2Ugc2hhcmVkSFRUUENvb2tpZVN0b3JhZ2VdIHJlbW92ZUNvb2tpZXNTaW5jZURhdGU6W05TRGF0
ZSBkaXN0YW50UGFzdF1dOwogfQogCi1zdGF0aWMgTlNIVFRQQ29va2llQWNjZXB0UG9saWN5IHRv
TlNIVFRQQ29va2llQWNjZXB0UG9saWN5KFdlYktpdDo6SFRUUENvb2tpZUFjY2VwdFBvbGljeSBw
b2xpY3kpCitzdGF0aWMgTlNIVFRQQ29va2llQWNjZXB0UG9saWN5IHRvTlNIVFRQQ29va2llQWNj
ZXB0UG9saWN5KFdlYkNvcmU6OkhUVFBDb29raWVBY2NlcHRQb2xpY3kgcG9saWN5KQogewogICAg
IHN3aXRjaCAocG9saWN5KSB7Ci0gICAgY2FzZSBXZWJLaXQ6OkhUVFBDb29raWVBY2NlcHRQb2xp
Y3k6OkFsd2F5c0FjY2VwdDoKKyAgICBjYXNlIFdlYkNvcmU6OkhUVFBDb29raWVBY2NlcHRQb2xp
Y3k6OkFsd2F5c0FjY2VwdDoKICAgICAgICAgcmV0dXJuIE5TSFRUUENvb2tpZUFjY2VwdFBvbGlj
eUFsd2F5czsKLSAgICBjYXNlIFdlYktpdDo6SFRUUENvb2tpZUFjY2VwdFBvbGljeTo6TmV2ZXI6
CisgICAgY2FzZSBXZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0UG9saWN5OjpOZXZlcjoKICAgICAg
ICAgcmV0dXJuIE5TSFRUUENvb2tpZUFjY2VwdFBvbGljeU5ldmVyOwotICAgIGNhc2UgV2ViS2l0
OjpIVFRQQ29va2llQWNjZXB0UG9saWN5OjpPbmx5RnJvbU1haW5Eb2N1bWVudERvbWFpbjoKKyAg
ICBjYXNlIFdlYkNvcmU6OkhUVFBDb29raWVBY2NlcHRQb2xpY3k6Ok9ubHlGcm9tTWFpbkRvY3Vt
ZW50RG9tYWluOgogICAgICAgICByZXR1cm4gTlNIVFRQQ29va2llQWNjZXB0UG9saWN5T25seUZy
b21NYWluRG9jdW1lbnREb21haW47Ci0gICAgY2FzZSBXZWJLaXQ6OkhUVFBDb29raWVBY2NlcHRQ
b2xpY3k6OkV4Y2x1c2l2ZWx5RnJvbU1haW5Eb2N1bWVudERvbWFpbjoKKyAgICBjYXNlIFdlYkNv
cmU6OkhUVFBDb29raWVBY2NlcHRQb2xpY3k6OkV4Y2x1c2l2ZWx5RnJvbU1haW5Eb2N1bWVudERv
bWFpbjoKICAgICAgICAgcmV0dXJuIChOU0hUVFBDb29raWVBY2NlcHRQb2xpY3kpTlNIVFRQQ29v
a2llQWNjZXB0UG9saWN5RXhjbHVzaXZlbHlGcm9tTWFpbkRvY3VtZW50RG9tYWluOwogICAgIH0K
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICByZXR1cm4gTlNIVFRQQ29va2llQWNjZXB0
UG9saWN5QWx3YXlzOwogfQogCi12b2lkIEhUVFBDb29raWVTdG9yZTo6c2V0SFRUUENvb2tpZUFj
Y2VwdFBvbGljeUluRGVmYXVsdFVJUHJvY2Vzc0Nvb2tpZVN0b3JlKFdlYktpdDo6SFRUUENvb2tp
ZUFjY2VwdFBvbGljeSBwb2xpY3kpCit2b2lkIEhUVFBDb29raWVTdG9yZTo6c2V0SFRUUENvb2tp
ZUFjY2VwdFBvbGljeUluRGVmYXVsdFVJUHJvY2Vzc0Nvb2tpZVN0b3JlKFdlYkNvcmU6OkhUVFBD
b29raWVBY2NlcHRQb2xpY3kgcG9saWN5KQogewogICAgIFtbTlNIVFRQQ29va2llU3RvcmFnZSBz
aGFyZWRIVFRQQ29va2llU3RvcmFnZV0gc2V0Q29va2llQWNjZXB0UG9saWN5OnRvTlNIVFRQQ29v
a2llQWNjZXB0UG9saWN5KHBvbGljeSldOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLSFRUUENvb2tpZVN0b3JlLm1tIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLSFRUUENvb2tpZVN0b3JlLm1tCmluZGV4IDgxZDM3MDNiMGVl
YTgyZTVlNmM2MmYzMjIyYWM0ZTY4MTlmNmIzYTYuLjliNDY2M2M0Y2FiNjg0ZTNkNzRjOTY1NjM4
ZmIyZTJmYzY4M2I4MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS0hUVFBDb29raWVTdG9yZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tIVFRQQ29va2llU3RvcmUubW0KQEAgLTI2LDggKzI2LDggQEAKICNpbXBvcnQg
ImNvbmZpZy5oIgogI2ltcG9ydCAiV0tIVFRQQ29va2llU3RvcmVJbnRlcm5hbC5oIgogCi0jaW1w
b3J0ICJIVFRQQ29va2llQWNjZXB0UG9saWN5LmgiCiAjaW1wb3J0IDxXZWJDb3JlL0Nvb2tpZS5o
PgorI2ltcG9ydCA8V2ViQ29yZS9IVFRQQ29va2llQWNjZXB0UG9saWN5Lmg+CiAjaW1wb3J0IDxw
YWwvc3BpL2NmL0NGTmV0d29ya1NQSS5oPgogI2ltcG9ydCA8d3RmL0hhc2hNYXAuaD4KICNpbXBv
cnQgPHd0Zi9SZXRhaW5QdHIuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLUHJvY2Vzc1Bvb2wubW0KaW5kZXggMDhlNWI5ZjAxMzVlYWZlMWFhOGY0ZGU0YTgy
YjZiODkwYmI5MTliMy4uM2ZmY2ZiODkzMzdmZjA5NDQ5ZjhhYTlmMjhmZGZiY2Q0MmViZmU0YiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bv
b2wubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bv
b2wubW0KQEAgLTIwMCwyMSArMjAwLDIxIEBAIC0gKHZvaWQpX3NldENhbkhhbmRsZUhUVFBTU2Vy
dmVyVHJ1c3RFdmFsdWF0aW9uOihCT09MKXZhbHVlCiB7CiB9CiAKLXN0YXRpYyBXZWJLaXQ6OkhU
VFBDb29raWVBY2NlcHRQb2xpY3kgdG9IVFRQQ29va2llQWNjZXB0UG9saWN5KE5TSFRUUENvb2tp
ZUFjY2VwdFBvbGljeSBwb2xpY3kpCitzdGF0aWMgV2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBv
bGljeSB0b0hUVFBDb29raWVBY2NlcHRQb2xpY3koTlNIVFRQQ29va2llQWNjZXB0UG9saWN5IHBv
bGljeSkKIHsKICAgICBzd2l0Y2ggKHN0YXRpY19jYXN0PE5TVUludGVnZXI+KHBvbGljeSkpIHsK
ICAgICBjYXNlIE5TSFRUUENvb2tpZUFjY2VwdFBvbGljeUFsd2F5czoKLSAgICAgICAgcmV0dXJu
IFdlYktpdDo6SFRUUENvb2tpZUFjY2VwdFBvbGljeTo6QWx3YXlzQWNjZXB0OworICAgICAgICBy
ZXR1cm4gV2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBvbGljeTo6QWx3YXlzQWNjZXB0OwogICAg
IGNhc2UgTlNIVFRQQ29va2llQWNjZXB0UG9saWN5TmV2ZXI6Ci0gICAgICAgIHJldHVybiBXZWJL
aXQ6OkhUVFBDb29raWVBY2NlcHRQb2xpY3k6Ok5ldmVyOworICAgICAgICByZXR1cm4gV2ViQ29y
ZTo6SFRUUENvb2tpZUFjY2VwdFBvbGljeTo6TmV2ZXI7CiAgICAgY2FzZSBOU0hUVFBDb29raWVB
Y2NlcHRQb2xpY3lPbmx5RnJvbU1haW5Eb2N1bWVudERvbWFpbjoKLSAgICAgICAgcmV0dXJuIFdl
YktpdDo6SFRUUENvb2tpZUFjY2VwdFBvbGljeTo6T25seUZyb21NYWluRG9jdW1lbnREb21haW47
CisgICAgICAgIHJldHVybiBXZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0UG9saWN5OjpPbmx5RnJv
bU1haW5Eb2N1bWVudERvbWFpbjsKICAgICBjYXNlIE5TSFRUUENvb2tpZUFjY2VwdFBvbGljeUV4
Y2x1c2l2ZWx5RnJvbU1haW5Eb2N1bWVudERvbWFpbjoKLSAgICAgICAgcmV0dXJuIFdlYktpdDo6
SFRUUENvb2tpZUFjY2VwdFBvbGljeTo6RXhjbHVzaXZlbHlGcm9tTWFpbkRvY3VtZW50RG9tYWlu
OworICAgICAgICByZXR1cm4gV2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBvbGljeTo6RXhjbHVz
aXZlbHlGcm9tTWFpbkRvY3VtZW50RG9tYWluOwogICAgIH0KIAogICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOwotICAgIHJldHVybiBXZWJLaXQ6OkhUVFBDb29raWVBY2NlcHRQb2xpY3k6OkFsd2F5
c0FjY2VwdDsKKyAgICByZXR1cm4gV2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBvbGljeTo6QWx3
YXlzQWNjZXB0OwogfQogCiAtICh2b2lkKV9zZXRDb29raWVBY2NlcHRQb2xpY3k6KE5TSFRUUENv
b2tpZUFjY2VwdFBvbGljeSlwb2xpY3kKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9nbGliL1dlYktpdENvb2tpZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL2dsaWIvV2ViS2l0Q29va2llTWFuYWdlci5jcHAKaW5kZXggYjhjNTA5MDEzM2Uy
ZGMzNjA4YWNlNDFkYTE0OTJhMTlkZWU5OGEwMy4uMjdmYmRlMjI3MTQ4MGZkM2ZlZjI5MDMwMWM0
ZWE3YWE1NmVhZTRhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2ds
aWIvV2ViS2l0Q29va2llTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL2dsaWIvV2ViS2l0Q29va2llTWFuYWdlci5jcHAKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNs
dWRlICJXZWJLaXRXZWJzaXRlRGF0YU1hbmFnZXJQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0
V2Vic2l0ZURhdGFQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2Vic2l0ZURhdGFSZWNvcmQuaCIKKyNp
bmNsdWRlIDxXZWJDb3JlL0hUVFBDb29raWVBY2NlcHRQb2xpY3kuaD4KICNpbmNsdWRlIDxnbGli
L2dpMThuLWxpYi5oPgogI2luY2x1ZGUgPHBhbC9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDx3dGYv
Z2xpYi9HUmVmUHRyLmg+CkBAIC04NywxNCArODgsMTQgQEAgc3RhdGljIGlubGluZSBTb3VwQ29v
a2llUGVyc2lzdGVudFN0b3JhZ2VUeXBlIHRvU291cENvb2tpZVBlcnNpc3RlbnRTdG9yYWdlVHlw
ZSgKICAgICB9CiB9CiAKLXN0YXRpYyBpbmxpbmUgV2ViS2l0Q29va2llQWNjZXB0UG9saWN5IHRv
V2ViS2l0Q29va2llQWNjZXB0UG9saWN5KEhUVFBDb29raWVBY2NlcHRQb2xpY3kgaHR0cFBvbGlj
eSkKK3N0YXRpYyBpbmxpbmUgV2ViS2l0Q29va2llQWNjZXB0UG9saWN5IHRvV2ViS2l0Q29va2ll
QWNjZXB0UG9saWN5KFdlYkNvcmU6OkhUVFBDb29raWVBY2NlcHRQb2xpY3kgaHR0cFBvbGljeSkK
IHsKICAgICBzd2l0Y2ggKGh0dHBQb2xpY3kpIHsKLSAgICBjYXNlIEhUVFBDb29raWVBY2NlcHRQ
b2xpY3k6OkFsd2F5c0FjY2VwdDoKKyAgICBjYXNlIFdlYkNvcmU6OkhUVFBDb29raWVBY2NlcHRQ
b2xpY3k6OkFsd2F5c0FjY2VwdDoKICAgICAgICAgcmV0dXJuIFdFQktJVF9DT09LSUVfUE9MSUNZ
X0FDQ0VQVF9BTFdBWVM7Ci0gICAgY2FzZSBIVFRQQ29va2llQWNjZXB0UG9saWN5OjpOZXZlcjoK
KyAgICBjYXNlIFdlYkNvcmU6OkhUVFBDb29raWVBY2NlcHRQb2xpY3k6Ok5ldmVyOgogICAgICAg
ICByZXR1cm4gV0VCS0lUX0NPT0tJRV9QT0xJQ1lfQUNDRVBUX05FVkVSOwotICAgIGNhc2UgSFRU
UENvb2tpZUFjY2VwdFBvbGljeTo6T25seUZyb21NYWluRG9jdW1lbnREb21haW46CisgICAgY2Fz
ZSBXZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0UG9saWN5OjpPbmx5RnJvbU1haW5Eb2N1bWVudERv
bWFpbjoKICAgICAgICAgcmV0dXJuIFdFQktJVF9DT09LSUVfUE9MSUNZX0FDQ0VQVF9OT19USElS
RF9QQVJUWTsKICAgICBkZWZhdWx0OgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAg
LTEwMiwxOCArMTAzLDE4IEBAIHN0YXRpYyBpbmxpbmUgV2ViS2l0Q29va2llQWNjZXB0UG9saWN5
IHRvV2ViS2l0Q29va2llQWNjZXB0UG9saWN5KEhUVFBDb29raWVBY2NlCiAgICAgfQogfQogCi1z
dGF0aWMgaW5saW5lIEhUVFBDb29raWVBY2NlcHRQb2xpY3kgdG9IVFRQQ29va2llQWNjZXB0UG9s
aWN5KFdlYktpdENvb2tpZUFjY2VwdFBvbGljeSBraXRQb2xpY3kpCitzdGF0aWMgaW5saW5lIFdl
YkNvcmU6OkhUVFBDb29raWVBY2NlcHRQb2xpY3kgdG9IVFRQQ29va2llQWNjZXB0UG9saWN5KFdl
YktpdENvb2tpZUFjY2VwdFBvbGljeSBraXRQb2xpY3kpCiB7CiAgICAgc3dpdGNoIChraXRQb2xp
Y3kpIHsKICAgICBjYXNlIFdFQktJVF9DT09LSUVfUE9MSUNZX0FDQ0VQVF9BTFdBWVM6Ci0gICAg
ICAgIHJldHVybiBIVFRQQ29va2llQWNjZXB0UG9saWN5OjpBbHdheXNBY2NlcHQ7CisgICAgICAg
IHJldHVybiBXZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0UG9saWN5OjpBbHdheXNBY2NlcHQ7CiAg
ICAgY2FzZSBXRUJLSVRfQ09PS0lFX1BPTElDWV9BQ0NFUFRfTkVWRVI6Ci0gICAgICAgIHJldHVy
biBIVFRQQ29va2llQWNjZXB0UG9saWN5OjpOZXZlcjsKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6
OkhUVFBDb29raWVBY2NlcHRQb2xpY3k6Ok5ldmVyOwogICAgIGNhc2UgV0VCS0lUX0NPT0tJRV9Q
T0xJQ1lfQUNDRVBUX05PX1RISVJEX1BBUlRZOgotICAgICAgICByZXR1cm4gSFRUUENvb2tpZUFj
Y2VwdFBvbGljeTo6T25seUZyb21NYWluRG9jdW1lbnREb21haW47CisgICAgICAgIHJldHVybiBX
ZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0UG9saWN5OjpPbmx5RnJvbU1haW5Eb2N1bWVudERvbWFp
bjsKICAgICBkZWZhdWx0OgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAg
cmV0dXJuIEhUVFBDb29raWVBY2NlcHRQb2xpY3k6OkFsd2F5c0FjY2VwdDsKKyAgICAgICAgcmV0
dXJuIFdlYkNvcmU6OkhUVFBDb29raWVBY2NlcHRQb2xpY3k6OkFsd2F5c0FjY2VwdDsKICAgICB9
CiB9CiAKQEAgLTIxOCw3ICsyMTksNyBAQCB2b2lkIHdlYmtpdF9jb29raWVfbWFuYWdlcl9nZXRf
YWNjZXB0X3BvbGljeShXZWJLaXRDb29raWVNYW5hZ2VyKiBtYW5hZ2VyLCBHQ2FuYwogICAgICAg
ICByZXR1cm47CiAgICAgfQogCi0gICAgcHJvY2Vzc1Bvb2xzWzBdLT5zdXBwbGVtZW50PFdlYkNv
b2tpZU1hbmFnZXJQcm94eT4oKS0+Z2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShtYW5hZ2VyLT5w
cml2LT5zZXNzaW9uSUQoKSwgW3Rhc2sgPSBXVEZNb3ZlKHRhc2spXShIVFRQQ29va2llQWNjZXB0
UG9saWN5IHBvbGljeSkgeworICAgIHByb2Nlc3NQb29sc1swXS0+c3VwcGxlbWVudDxXZWJDb29r
aWVNYW5hZ2VyUHJveHk+KCktPmdldEhUVFBDb29raWVBY2NlcHRQb2xpY3kobWFuYWdlci0+cHJp
di0+c2Vzc2lvbklEKCksIFt0YXNrID0gV1RGTW92ZSh0YXNrKV0oV2ViQ29yZTo6SFRUUENvb2tp
ZUFjY2VwdFBvbGljeSBwb2xpY3kpIHsKICAgICAgICAgZ190YXNrX3JldHVybl9pbnQodGFzay5n
ZXQoKSwgdG9XZWJLaXRDb29raWVBY2NlcHRQb2xpY3kocG9saWN5KSk7CiAgICAgfSk7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNz
UHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vz
c1Byb3h5LmNwcAppbmRleCA5Y2I5MGYxOGM1NDJjNmFhNTZmYWViNjAwN2QyNmZkZjFkMGJlYThl
Li5iYTE2ZTMyNjA1YjIwYWU2MmUzNzY5N2QxMGFjOThhNTQxZTE3M2UzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5j
cHAKQEAgLTE0Nyw3ICsxNDcsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmdldE5ldHdv
cmtQcm9jZXNzQ29ubmVjdGlvbihXZWJQcm9jZXNzUHJveHkmIHdlYlByb2NlcwogCiB2b2lkIE5l
dHdvcmtQcm9jZXNzUHJveHk6Om9wZW5OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24odWludDY0X3Qg
Y29ubmVjdGlvblJlcXVlc3RJZGVudGlmaWVyLCBXZWJQcm9jZXNzUHJveHkmIHdlYlByb2Nlc3NQ
cm94eSkKIHsKLSAgICBjb25uZWN0aW9uKCktPnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6
TmV0d29ya1Byb2Nlc3M6OkNyZWF0ZU5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzIHsgd2Vi
UHJvY2Vzc1Byb3h5LmNvcmVQcm9jZXNzSWRlbnRpZmllcigpLCB3ZWJQcm9jZXNzUHJveHkuc2Vz
c2lvbklEKCkgfSwgW3RoaXMsIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyksIHdlYlByb2Nl
c3NQcm94eSA9IG1ha2VXZWFrUHRyKHdlYlByb2Nlc3NQcm94eSksIGNvbm5lY3Rpb25SZXF1ZXN0
SWRlbnRpZmllcl0oYXV0byYmIGNvbm5lY3Rpb25JZGVudGlmaWVyKSBtdXRhYmxlIHsKKyAgICBj
b25uZWN0aW9uKCktPnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6
OkNyZWF0ZU5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzIHsgd2ViUHJvY2Vzc1Byb3h5LmNv
cmVQcm9jZXNzSWRlbnRpZmllcigpLCB3ZWJQcm9jZXNzUHJveHkuc2Vzc2lvbklEKCkgfSwgW3Ro
aXMsIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyksIHdlYlByb2Nlc3NQcm94eSA9IG1ha2VX
ZWFrUHRyKHdlYlByb2Nlc3NQcm94eSksIGNvbm5lY3Rpb25SZXF1ZXN0SWRlbnRpZmllcl0oYXV0
byYmIGNvbm5lY3Rpb25JZGVudGlmaWVyLCBIVFRQQ29va2llQWNjZXB0UG9saWN5IGNvb2tpZUFj
Y2VwdFBvbGljeSkgbXV0YWJsZSB7CiAgICAgICAgIGlmICghd2Vha1RoaXMpCiAgICAgICAgICAg
ICByZXR1cm47CiAKQEAgLTE2MSwxMCArMTYxLDEwIEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94
eTo6b3Blbk5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbih1aW50NjRfdCBjb25uZWN0aW9uUmVxdWVz
CiAgICAgICAgIGF1dG8gcmVxdWVzdCA9IG1fY29ubmVjdGlvblJlcXVlc3RzLnRha2UoY29ubmVj
dGlvblJlcXVlc3RJZGVudGlmaWVyKTsKIAogI2lmIFVTRShVTklYX0RPTUFJTl9TT0NLRVRTKSB8
fCBPUyhXSU5ET1dTKQotICAgICAgICByZXF1ZXN0LnJlcGx5KE5ldHdvcmtQcm9jZXNzQ29ubmVj
dGlvbkluZm8geyBXVEZNb3ZlKCpjb25uZWN0aW9uSWRlbnRpZmllcikgfSk7CisgICAgICAgIHJl
cXVlc3QucmVwbHkoTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uSW5mbyB7IFdURk1vdmUoKmNvbm5l
Y3Rpb25JZGVudGlmaWVyKSwgY29va2llQWNjZXB0UG9saWN5IH0pOwogI2VsaWYgT1MoREFSV0lO
KQogICAgICAgICBNRVNTQUdFX0NIRUNLKE1BQ0hfUE9SVF9WQUxJRChjb25uZWN0aW9uSWRlbnRp
Zmllci0+cG9ydCgpKSk7Ci0gICAgICAgIHJlcXVlc3QucmVwbHkoTmV0d29ya1Byb2Nlc3NDb25u
ZWN0aW9uSW5mbyB7IElQQzo6QXR0YWNobWVudCB7IGNvbm5lY3Rpb25JZGVudGlmaWVyLT5wb3J0
KCksIE1BQ0hfTVNHX1RZUEVfTU9WRV9TRU5EIH0sIGNvbm5lY3Rpb24oKS0+Z2V0QXVkaXRUb2tl
bigpIH0pOworICAgICAgICByZXF1ZXN0LnJlcGx5KE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbklu
Zm8geyBJUEM6OkF0dGFjaG1lbnQgeyBjb25uZWN0aW9uSWRlbnRpZmllci0+cG9ydCgpLCBNQUNI
X01TR19UWVBFX01PVkVfU0VORCB9LCBjb29raWVBY2NlcHRQb2xpY3ksIGNvbm5lY3Rpb24oKS0+
Z2V0QXVkaXRUb2tlbigpIH0pOwogI2Vsc2UKICAgICAgICAgbm90SW1wbGVtZW50ZWQoKTsKICNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29va2llTWFuYWdl
clByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJveHku
aAppbmRleCA1OGI4MmZkMTBjOGMyNjIxNTQ4OTAxYjEzNWQ1ZmU5YThkOTc1YmQ0Li4wYmRmYzBk
NGU0N2M0MzZmNTg1Y2YyOWMwOWQ1MWEyOWJjODExYTlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJveHkuaApAQCAtNTMsNyArNTMsNyBAQCBjbGFz
cyBXZWJQcm9jZXNzUG9vbDsKIGNsYXNzIFdlYlByb2Nlc3NQcm94eTsKIAogdHlwZWRlZiBHZW5l
cmljQ2FsbGJhY2s8QVBJOjpBcnJheSo+IEFycmF5Q2FsbGJhY2s7Ci10eXBlZGVmIEdlbmVyaWND
YWxsYmFjazxIVFRQQ29va2llQWNjZXB0UG9saWN5PiBIVFRQQ29va2llQWNjZXB0UG9saWN5Q2Fs
bGJhY2s7Cit0eXBlZGVmIEdlbmVyaWNDYWxsYmFjazxXZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0
UG9saWN5PiBIVFRQQ29va2llQWNjZXB0UG9saWN5Q2FsbGJhY2s7CiB0eXBlZGVmIEdlbmVyaWND
YWxsYmFjazxjb25zdCBWZWN0b3I8V2ViQ29yZTo6Q29va2llPiY+IEdldENvb2tpZXNDYWxsYmFj
azsKIAogY2xhc3MgV2ViQ29va2llTWFuYWdlclByb3h5IDogcHVibGljIEFQSTo6T2JqZWN0SW1w
bDxBUEk6Ok9iamVjdDo6VHlwZTo6Q29va2llTWFuYWdlcj4sIHB1YmxpYyBXZWJDb250ZXh0U3Vw
cGxlbWVudCwgcHJpdmF0ZSBJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7CkBAIC03Nyw4ICs3Nyw4IEBA
IHB1YmxpYzoKICAgICB2b2lkIGdldEFsbENvb2tpZXMoUEFMOjpTZXNzaW9uSUQsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4mJik+JiYpOwogICAgIHZvaWQg
Z2V0Q29va2llcyhQQUw6OlNlc3Npb25JRCwgY29uc3QgVVJMJiwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChWZWN0b3I8V2ViQ29yZTo6Q29va2llPiYmKT4mJik7CiAKLSAgICB2b2lkIHNldEhUVFBD
b29raWVBY2NlcHRQb2xpY3koUEFMOjpTZXNzaW9uSUQsIEhUVFBDb29raWVBY2NlcHRQb2xpY3ks
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7Ci0gICAgdm9pZCBnZXRIVFRQQ29va2llQWNj
ZXB0UG9saWN5KFBBTDo6U2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEhUVFBDb29r
aWVBY2NlcHRQb2xpY3kpPiYmKTsKKyAgICB2b2lkIHNldEhUVFBDb29raWVBY2NlcHRQb2xpY3ko
UEFMOjpTZXNzaW9uSUQsIFdlYkNvcmU6OkhUVFBDb29raWVBY2NlcHRQb2xpY3ksIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoKT4mJik7CisgICAgdm9pZCBnZXRIVFRQQ29va2llQWNjZXB0UG9saWN5
KFBBTDo6U2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkhUVFBDb29r
aWVBY2NlcHRQb2xpY3kpPiYmKTsKIAogICAgIHZvaWQgc3RhcnRPYnNlcnZpbmdDb29raWVDaGFu
Z2VzKFBBTDo6U2Vzc2lvbklEKTsKICAgICB2b2lkIHN0b3BPYnNlcnZpbmdDb29raWVDaGFuZ2Vz
KFBBTDo6U2Vzc2lvbklEKTsKQEAgLTExOSw3ICsxMTksNyBAQCBwcml2YXRlOgogICAgIHZvaWQg
ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgb3ZlcnJp
ZGU7CiAKICNpZiBQTEFURk9STShDT0NPQSkKLSAgICB2b2lkIHBlcnNpc3RIVFRQQ29va2llQWNj
ZXB0UG9saWN5KEhUVFBDb29raWVBY2NlcHRQb2xpY3kpOworICAgIHZvaWQgcGVyc2lzdEhUVFBD
b29raWVBY2NlcHRQb2xpY3koV2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBvbGljeSk7CiAjZW5k
aWYKIAogICAgIEhhc2hNYXA8UEFMOjpTZXNzaW9uSUQsIFdURjo6RnVuY3Rpb248dm9pZCAoKT4+
IG1fbGVnYWN5Q29va2llT2JzZXJ2ZXJzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQb29sLmgKaW5kZXggMWRiZDE4MWQ0MTNlOGZiYTQwNWQ4MWJjMGE0Zjk0ZTRlNzk2MmI5OC4u
NjRiMWRiY2U0YzkwNzUzNjk5OWIxYzJhNWViMzE0NjcwZjQyM2UxZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCkBAIC0yOTQsNyArMjk0LDcgQEAgcHVibGljOgog
ICAgIHZvaWQgc3RvcE1lbW9yeVNhbXBsZXIoKTsKIAogI2lmIFVTRShTT1VQKQotICAgIHZvaWQg
c2V0SW5pdGlhbEhUVFBDb29raWVBY2NlcHRQb2xpY3koSFRUUENvb2tpZUFjY2VwdFBvbGljeSBw
b2xpY3kpIHsgbV9pbml0aWFsSFRUUENvb2tpZUFjY2VwdFBvbGljeSA9IHBvbGljeTsgfQorICAg
IHZvaWQgc2V0SW5pdGlhbEhUVFBDb29raWVBY2NlcHRQb2xpY3koV2ViQ29yZTo6SFRUUENvb2tp
ZUFjY2VwdFBvbGljeSBwb2xpY3kpIHsgbV9pbml0aWFsSFRUUENvb2tpZUFjY2VwdFBvbGljeSA9
IHBvbGljeTsgfQogICAgIHZvaWQgc2V0TmV0d29ya1Byb3h5U2V0dGluZ3MoY29uc3QgV2ViQ29y
ZTo6U291cE5ldHdvcmtQcm94eVNldHRpbmdzJik7CiAjZW5kaWYKICAgICB2b2lkIHNldEVuaGFu
Y2VkQWNjZXNzaWJpbGl0eShib29sKTsKQEAgLTY3Nyw3ICs2NzcsNyBAQCBwcml2YXRlOgogICAg
IFdlYkNvbnRleHRTdXBwbGVtZW50TWFwIG1fc3VwcGxlbWVudHM7CiAKICNpZiBVU0UoU09VUCkK
LSAgICBIVFRQQ29va2llQWNjZXB0UG9saWN5IG1faW5pdGlhbEhUVFBDb29raWVBY2NlcHRQb2xp
Y3kgeyBIVFRQQ29va2llQWNjZXB0UG9saWN5OjpPbmx5RnJvbU1haW5Eb2N1bWVudERvbWFpbiB9
OworICAgIFdlYkNvcmU6OkhUVFBDb29raWVBY2NlcHRQb2xpY3kgbV9pbml0aWFsSFRUUENvb2tp
ZUFjY2VwdFBvbGljeSB7IFdlYkNvcmU6OkhUVFBDb29raWVBY2NlcHRQb2xpY3k6Ok9ubHlGcm9t
TWFpbkRvY3VtZW50RG9tYWluIH07CiAgICAgV2ViQ29yZTo6U291cE5ldHdvcmtQcm94eVNldHRp
bmdzIG1fbmV0d29ya1Byb3h5U2V0dGluZ3M7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYkNvb2tpZU1hbmFnZXJQcm94eU1hYy5tbSBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJDb29raWVNYW5hZ2VyUHJveHlNYWMubW0KaW5kZXgg
ZWVkOTdhYmVkNjAzYTNkY2JlMTFiNzk3MmY0NzEwMWI5Yjk0ZTcyOC4uODg5NWY2MGQyZWNkNjY5
ODUxNTNhNzI5NDFhN2JlMWZlNjMwMWI1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvbWFjL1dlYkNvb2tpZU1hbmFnZXJQcm94eU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9tYWMvV2ViQ29va2llTWFuYWdlclByb3h5TWFjLm1tCkBAIC0zMSw3ICszMSw3
IEBACiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi12b2lkIFdlYkNvb2tpZU1hbmFnZXJQcm94eTo6
cGVyc2lzdEhUVFBDb29raWVBY2NlcHRQb2xpY3koSFRUUENvb2tpZUFjY2VwdFBvbGljeSBwb2xp
Y3kpCit2b2lkIFdlYkNvb2tpZU1hbmFnZXJQcm94eTo6cGVyc2lzdEhUVFBDb29raWVBY2NlcHRQ
b2xpY3koV2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBvbGljeSBwb2xpY3kpCiB7CiAgICAgQVNT
RVJUKGhhc1Byb2Nlc3NQcml2aWxlZ2UoUHJvY2Vzc1ByaXZpbGVnZTo6Q2FuQWNjZXNzUmF3Q29v
a2llcykpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagppbmRleCA2YWRlYTU4NTBmODg2NDNhZjcwZjg5NTAzMWIzODYxNTZiMmU0M2Y4Li5lODc4
Nzg5OWVmMDJmZjBlYjhmNDVmMGUxMWYyNjM3YjNkY2YwYjdiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTg4Miw3ICs4ODIsNiBAQAog
CQkzN0RGQTcwMDE4MTBCQjkyMDAxRjRBOUYgLyogV0tGb3VuZGF0aW9uLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzN0RGQTZGRjE4MTBCQjkyMDAxRjRB
OUYgLyogV0tGb3VuZGF0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHVibGlj
LCApOyB9OyB9OwogCQkzN0UyNUQ2RTE4RkRFNUQ2MDA1RDNBMDAgLyogQVBJRm9ybUNsaWVudC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzdFMjVENkQx
OEZERTVENjAwNUQzQTAwIC8qIEFQSUZvcm1DbGllbnQuaCAqLzsgfTsKIAkJMzdGNjIzQjgxMkE1
N0I2MjAwRTNGREY2IC8qIFdLRmluZE9wdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDM3RjYyM0I3MTJBNTdCNjIwMEUzRkRGNiAvKiBXS0ZpbmRP
cHRpb25zLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
LQkJMzdGOTBERTMxMzc2NTYwRTAwNTFDRjY4IC8qIEhUVFBDb29raWVBY2NlcHRQb2xpY3kuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY2Mzg5NTRGMTMz
QkVGMzgwMDg5NDFENSAvKiBIVFRQQ29va2llQWNjZXB0UG9saWN5LmggKi87IH07CiAJCTM3RkMx
OTQ3MTg1MEZCRjIwMDhDRkE0NyAvKiBXS0Jyb3dzaW5nQ29udGV4dExvYWREZWxlZ2F0ZVByaXZh
dGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDM3RkMx
OTQ2MTg1MEZCRjIwMDhDRkE0NyAvKiBXS0Jyb3dzaW5nQ29udGV4dExvYWREZWxlZ2F0ZVByaXZh
dGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkz
N0ZDMTk0QjE4NTEwRDZBMDA4Q0ZBNDcgLyogV0tOU1VSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzN0ZDMTk0
OTE4NTEwRDZBMDA4Q0ZBNDcgLyogV0tOU1VSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLmggKi87
IH07CiAJCTNGNDE4RUY5MTg4N0JEOTcwMDI3OTVGRCAvKiBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDNGNDE4RUY1MTg4N0JEOTcwMDI3OTVGRCAvKiBWaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKQEAgLTIxMTksOSArMjExOCw5IEBACiAJCTA3
QjkzRkY1MjNBRjBDQjgwMDM2RjhFQSAvKiBSZW1vdGVNZWRpYVBsYXllckNvbmZpZ3VyYXRpb24u
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlTWVkaWFQbGF5ZXJDb25maWd1cmF0aW9uLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3QkFGMzU2MjNBMkNDMTcwMDQ0MjU3RSAvKiBSZW1v
dGVNZWRpYVBsYXllclByb3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZU1lZGlhUGxheWVyUHJv
eHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDdCQUYzNTcyM0EyQ0MxOTAwNDQy
NTdFIC8qIFJlbW90ZU1lZGlhUGxheWVyUHJveHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVt
b3RlTWVkaWFQbGF5ZXJQcm94eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTA3
RTE5RUY4MjNENDAxRjAwMDk0RkZCNCAvKiBNZWRpYVBsYXllclByaXZhdGVSZW1vdGVNZXNzYWdl
UmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlTWVzc2FnZVJlY2VpdmVyLmNwcDsgcGF0aCA9IE1lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZU1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07Ci0JCTA3RTE5RUY5MjNENDAxRjAwMDk0RkZCNCAvKiBNZWRpYVBsYXllclByaXZhdGVSZW1v
dGVNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBNZWRpYVBsYXll
clByaXZhdGVSZW1vdGVNZXNzYWdlcy5oOyBwYXRoID0gTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
TWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMDdFMTlFRkEyM0Q0MDFG
MDAwOTRGRkI0IC8qIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZU1lc3NhZ2VzUmVwbGllcy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBNZWRpYVBsYXllclByaXZhdGVSZW1vdGVN
ZXNzYWdlc1JlcGxpZXMuaDsgcGF0aCA9IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZU1lc3NhZ2Vz
UmVwbGllcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwN0UxOUVGODIzRDQwMUYw
MDA5NEZGQjQgLyogTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlTWVzc2FnZVJlY2VpdmVyLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlhUGxheWVyUHJpdmF0ZVJl
bW90ZU1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA3
RTE5RUY5MjNENDAxRjAwMDk0RkZCNCAvKiBNZWRpYVBsYXllclByaXZhdGVSZW1vdGVNZXNzYWdl
cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVBsYXllclByaXZhdGVS
ZW1vdGVNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwN0UxOUVGQTIz
RDQwMUYwMDA5NEZGQjQgLyogTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlTWVzc2FnZXNSZXBsaWVz
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhUGxheWVyUHJpdmF0ZVJl
bW90ZU1lc3NhZ2VzUmVwbGllcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwODY3
RDZBNUZFODQwMzA3QzAyQUFDMDcgLyogQXBwS2l0LmZyYW1ld29yayAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHdyYXBwZXIuZnJhbWV3b3JrOyBuYW1l
ID0gQXBwS2l0LmZyYW1ld29yazsgcGF0aCA9IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0Fw
cEtpdC5mcmFtZXdvcms7IHNvdXJjZVRyZWUgPSAiPGFic29sdXRlPiI7IH07CiAJCTA4OUMxNjY3
RkU4NDExNThDMDJBQUMwNyAvKiBlbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQucGxpc3Quc3RyaW5nczsgbmFt
ZSA9IGVuOyBwYXRoID0gZW4ubHByb2ovSW5mb1BsaXN0LnN0cmluZ3M7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTBFOTdENzRDMjAwRThGRjMwMEJGNjY0MyAvKiBTYWZlQnJvd3NpbmdT
UEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gU2FmZUJyb3dzaW5nU1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC01MTMwLDcgKzUxMjksNiBAQAogCQlGNjExM0UyNjEyNkNFMTlCMDA1N0Qw
QTcgLyogV0tVc2VyQ29udGVudFVSTFBhdHRlcm4uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gV0tVc2VyQ29udGVudFVSTFBhdHRlcm4uY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlGNjExM0UyNzEyNkNFMTlCMDA1N0QwQTcgLyogV0tVc2VyQ29udGVu
dFVSTFBhdHRlcm4uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tVc2VyQ29u
dGVudFVSTFBhdHRlcm4uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjYzNDQ0NTUx
MkE4ODVDODAwMDYxMkQ4IC8qIEFQSVNlY3VyaXR5T3JpZ2luLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEFQSVNlY3VyaXR5T3JpZ2luLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCUY2Mzg5NTRGMTMzQkVGMzgwMDg5NDFENSAvKiBIVFRQQ29va2llQWNjZXB0UG9s
aWN5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhUVFBDb29raWVBY2NlcHRQ
b2xpY3kuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjZBMEMxM0YxMzI4MUU2RTAw
NzA0MzBGIC8qIFJlc291cmNlQ2FjaGVzVG9DbGVhci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBSZXNvdXJjZUNhY2hlc1RvQ2xlYXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRjZBOTA4MTExMzNDMUYzRDAwODJDM0Y0IC8qIFdlYkNvb2tpZU1hbmFnZXJNYWMu
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJDb29raWVNYW5h
Z2VyTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNkQ2MzJCQTEzM0QxODFC
MDA3NDNENzcgLyogV2ViQ29va2llTWFuYWdlclByb3h5TWFjLm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViQ29va2llTWFuYWdlclByb3h5TWFjLm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNTY5Nyw3ICs1Njk1LDYgQEAKIAkJCQkxQTE0RjhE
RjFENzRDODM0MDA2Q0JFQzYgLyogRnJhbWVJbmZvRGF0YS5jcHAgKi8sCiAJCQkJMUExNEY4RTAx
RDc0QzgzNDAwNkNCRUM2IC8qIEZyYW1lSW5mb0RhdGEuaCAqLywKIAkJCQkxQUM3NUExQTFCMzM2
ODI3MDA1Njc0NUIgLyogSGFuZ0RldGVjdGlvbkRpc2FibGVyLmggKi8sCi0JCQkJRjYzODk1NEYx
MzNCRUYzODAwODk0MUQ1IC8qIEhUVFBDb29raWVBY2NlcHRQb2xpY3kuaCAqLywKIAkJCQlCQ0NG
NkIyMzEyQzkzRTdBMDA4RjlDMzUgLyogSW1hZ2VPcHRpb25zLmggKi8sCiAJCQkJMUE5MkRDMTIx
MkY4QkFCOTAwMTdBRjY1IC8qIExheWVyVHJlZUNvbnRleHQuY3BwICovLAogCQkJCTFBOTJEQzEw
MTJGOEJBNDYwMDE3QUY2NSAvKiBMYXllclRyZWVDb250ZXh0LmggKi8sCkBAIC0xMDIxOCw3ICsx
MDIxNSw2IEBACiAJCQkJNTc3MkYyMDYyMTdEQkQ2QTAwNTZCRjJDIC8qIEhpZFNlcnZpY2UuaCBp
biBIZWFkZXJzICovLAogCQkJCTMxMkNDOUYyMjE1QjA2RjEwMERFNDBDQSAvKiBIaWdoUGVyZm9y
bWFuY2VHUFVNYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQk4MzlBMkYzMjFFMjA2NzQ1MDAz
OTA1N0UgLyogSGlnaFBlcmZvcm1hbmNlR3JhcGhpY3NVc2FnZVNhbXBsZXIuaCBpbiBIZWFkZXJz
ICovLAotCQkJCTM3RjkwREUzMTM3NjU2MEUwMDUxQ0Y2OCAvKiBIVFRQQ29va2llQWNjZXB0UG9s
aWN5LmggaW4gSGVhZGVycyAqLywKIAkJCQk1MUMwQzk3NDFEREQ3NjAwMDAzMkNBRDMgLyogSWNv
bkxvYWRpbmdEZWxlZ2F0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTFFMzUxQ0IxODBGMkNDQzAw
RTUzQkU5IC8qIElEQlV0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNDRjZCMjUxMkM5
M0U3QTAwOEY5QzM1IC8qIEltYWdlT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rp
b24uY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3ND
b25uZWN0aW9uLmNwcAppbmRleCBmZDAwZDc4NjRiNWE1M2ZiNzQzMGUxNmI4NzBjYTYyY2IwMGFk
ZGE0Li4xZTcwMzU0ZjZiNzE0MTk2MDJkOTRiMGY1NDMzMTMyYTYzNDExODc0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rp
b24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9j
ZXNzQ29ubmVjdGlvbi5jcHAKQEAgLTU2LDYgKzU2LDcgQEAKICNpbmNsdWRlICJXZWJTb2NrZXRT
dHJlYW0uaCIKICNpbmNsdWRlICJXZWJTb2NrZXRTdHJlYW1NZXNzYWdlcy5oIgogI2luY2x1ZGUg
PFdlYkNvcmUvQ2FjaGVkUmVzb3VyY2UuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0hUVFBDb29raWVB
Y2NlcHRQb2xpY3kuaD4KICNpbmNsdWRlIDxXZWJDb3JlL01lbW9yeUNhY2hlLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9NZXNzYWdlUG9ydC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2hhcmVkQnVmZmVy
Lmg+CkBAIC02OCw4ICs2OSw5IEBACiBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFj
ZSBXZWJDb3JlOwogCi1OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246Ok5ldHdvcmtQcm9jZXNzQ29u
bmVjdGlvbihJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIgY29ubmVjdGlvbklkZW50aWZpZXIp
CitOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246Ok5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbihJUEM6
OkNvbm5lY3Rpb246OklkZW50aWZpZXIgY29ubmVjdGlvbklkZW50aWZpZXIsIEhUVFBDb29raWVB
Y2NlcHRQb2xpY3kgY29va2llQWNjZXB0UG9saWN5KQogICAgIDogbV9jb25uZWN0aW9uKElQQzo6
Q29ubmVjdGlvbjo6Y3JlYXRlQ2xpZW50Q29ubmVjdGlvbihjb25uZWN0aW9uSWRlbnRpZmllciwg
KnRoaXMpKQorICAgICwgbV9jb29raWVBY2NlcHRQb2xpY3koY29va2llQWNjZXB0UG9saWN5KQog
ewogICAgIG1fY29ubmVjdGlvbi0+b3BlbigpOwogfQpAQCAtMjA0LDcgKzIwNiw3IEBAIHZvaWQg
TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoSVBDOjpD
b25uZWN0aW9uJiwgSVBDOjpTCiAKIHZvaWQgTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjp3cml0
ZUJsb2JzVG9UZW1wb3JhcnlGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgYmxvYlVSTHMsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9yPFN0cmluZz4mJiBmaWxlUGF0aHMpPiYmIGNvbXBs
ZXRpb25IYW5kbGVyKQogewotICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdv
cmtQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVz
c2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpXcml0ZUJsb2JzVG9UZW1wb3Jh
cnlGaWxlcyhibG9iVVJMcyksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICBjb25u
ZWN0aW9uKCkuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2Vzczo6V3JpdGVCbG9ic1RvVGVtcG9yYXJ5RmlsZXMoYmxvYlVSTHMpLCBXVEZNb3Zl
KGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKIHZvaWQgTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9u
OjpkaWRGaW5pc2hQaW5nTG9hZCh1aW50NjRfdCBwaW5nTG9hZElkZW50aWZpZXIsIFJlc291cmNl
RXJyb3ImJiBlcnJvciwgUmVzb3VyY2VSZXNwb25zZSYmIHJlc3BvbnNlKQpAQCAtMjIyLDYgKzIy
NCwxNiBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6c2V0T25MaW5lU3RhdGUoYm9v
bCBpc09uTGluZSkKICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJMb2FkZXJTdHJhdGVn
eSgpLnNldE9uTGluZVN0YXRlKGlzT25MaW5lKTsKIH0KIAorYm9vbCBOZXR3b3JrUHJvY2Vzc0Nv
bm5lY3Rpb246OmNvb2tpZXNFbmFibGVkKCkKK3sKKyAgICByZXR1cm4gbV9jb29raWVBY2NlcHRQ
b2xpY3kgIT0gSFRUUENvb2tpZUFjY2VwdFBvbGljeTo6TmV2ZXI7Cit9CisKK3ZvaWQgTmV0d29y
a1Byb2Nlc3NDb25uZWN0aW9uOjpjb29raWVBY2NlcHRQb2xpY3lDaGFuZ2VkKEhUVFBDb29raWVB
Y2NlcHRQb2xpY3kgbmV3UG9saWN5KQoreworICAgIG1fY29va2llQWNjZXB0UG9saWN5ID0gbmV3
UG9saWN5OworfQorCiAjaWYgRU5BQkxFKFNIQVJFQUJMRV9SRVNPVVJDRSkKIHZvaWQgTmV0d29y
a1Byb2Nlc3NDb25uZWN0aW9uOjpkaWRDYWNoZVJlc291cmNlKGNvbnN0IFJlc291cmNlUmVxdWVz
dCYgcmVxdWVzdCwgY29uc3QgU2hhcmVhYmxlUmVzb3VyY2U6OkhhbmRsZSYgaGFuZGxlKQogewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nl
c3NDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3Jr
UHJvY2Vzc0Nvbm5lY3Rpb24uaAppbmRleCAyYTQ5NmE5ZTRlNDMzOWViMDU4NGFhMjI2NDIxZjYy
MGIxMGRkY2RiLi5kZDEwNDE2N2Y1NDE0ODAzYTUyYTIyNWEzYWZlY2ZmY2Y5NGQwYzYyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nv
bm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3Jr
UHJvY2Vzc0Nvbm5lY3Rpb24uaApAQCAtNDMsNiArNDMsNyBAQCBjbGFzcyBSZXNvdXJjZVJlcXVl
c3Q7CiBjbGFzcyBSZXNvdXJjZVJlc3BvbnNlOwogc3RydWN0IE1lc3NhZ2VQb3J0SWRlbnRpZmll
cjsKIHN0cnVjdCBNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0czsKK2VudW0gY2xhc3MgSFRUUENvb2tp
ZUFjY2VwdFBvbGljeSA6IHVpbnQ4X3Q7CiB9CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtNTQs
OSArNTUsOSBAQCB0eXBlZGVmIHVpbnQ2NF90IFJlc291cmNlTG9hZElkZW50aWZpZXI7CiAKIGNs
YXNzIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbiA6IHB1YmxpYyBSZWZDb3VudGVkPE5ldHdvcmtQ
cm9jZXNzQ29ubmVjdGlvbj4sIElQQzo6Q29ubmVjdGlvbjo6Q2xpZW50IHsKIHB1YmxpYzoKLSAg
ICBzdGF0aWMgUmVmPE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbj4gY3JlYXRlKElQQzo6Q29ubmVj
dGlvbjo6SWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRpZmllcikKKyAgICBzdGF0aWMgUmVmPE5l
dHdvcmtQcm9jZXNzQ29ubmVjdGlvbj4gY3JlYXRlKElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmll
ciBjb25uZWN0aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBvbGljeSBo
dHRwQ29va2llQWNjZXB0UG9saWN5KQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKGNvbm5lY3Rpb25JZGVudGlmaWVyKSk7CisgICAg
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbihjb25uZWN0
aW9uSWRlbnRpZmllciwgaHR0cENvb2tpZUFjY2VwdFBvbGljeSkpOwogICAgIH0KICAgICB+TmV0
d29ya1Byb2Nlc3NDb25uZWN0aW9uKCk7CiAgICAgCkBAIC04MCw4ICs4MSwxMCBAQCBwdWJsaWM6
CiAgICAgT3B0aW9uYWw8YXVkaXRfdG9rZW5fdD4gbmV0d29ya1Byb2Nlc3NBdWRpdFRva2VuKCkg
Y29uc3QgeyByZXR1cm4gbV9uZXR3b3JrUHJvY2Vzc0F1ZGl0VG9rZW47IH0KICNlbmRpZgogCisg
ICAgYm9vbCBjb29raWVzRW5hYmxlZCgpOworCiBwcml2YXRlOgotICAgIE5ldHdvcmtQcm9jZXNz
Q29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIpOworICAgIE5ldHdvcmtQcm9j
ZXNzQ29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIsIFdlYkNvcmU6OkhUVFBD
b29raWVBY2NlcHRQb2xpY3kpOwogCiAgICAgLy8gSVBDOjpDb25uZWN0aW9uOjpDbGllbnQKICAg
ICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYp
IG92ZXJyaWRlOwpAQCAtOTIsNiArOTUsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkRmluaXNo
UGluZ0xvYWQodWludDY0X3QgcGluZ0xvYWRJZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZUVy
cm9yJiYsIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJik7CiAgICAgdm9pZCBkaWRGaW5pc2hQ
cmVjb25uZWN0aW9uKHVpbnQ2NF90IHByZWNvbm5lY3Rpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpS
ZXNvdXJjZUVycm9yJiYpOwogICAgIHZvaWQgc2V0T25MaW5lU3RhdGUoYm9vbCBpc09uTGluZSk7
CisgICAgdm9pZCBjb29raWVBY2NlcHRQb2xpY3lDaGFuZ2VkKFdlYkNvcmU6OkhUVFBDb29raWVB
Y2NlcHRQb2xpY3kpOwogCiAgICAgdm9pZCBjaGVja1Byb2Nlc3NMb2NhbFBvcnRGb3JBY3Rpdml0
eShjb25zdCBXZWJDb3JlOjpNZXNzYWdlUG9ydElkZW50aWZpZXImLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKFdlYkNvcmU6Ok1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyOjpIYXNBY3Rpdml0eSk+
JiYpOwogICAgIHZvaWQgbWVzc2FnZXNBdmFpbGFibGVGb3JQb3J0KGNvbnN0IFdlYkNvcmU6Ok1l
c3NhZ2VQb3J0SWRlbnRpZmllciYpOwpAQCAtMTE0LDYgKzExOCw3IEBAIHByaXZhdGU6CiAjaWYg
RU5BQkxFKFNFUlZJQ0VfV09SS0VSKQogICAgIFJlZlB0cjxXZWJTV0NsaWVudENvbm5lY3Rpb24+
IG1fc3dDb25uZWN0aW9uOwogI2VuZGlmCisgICAgV2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBv
bGljeSBtX2Nvb2tpZUFjY2VwdFBvbGljeTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nl
c3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdv
cmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluCmluZGV4IDRkNjM0YzU3Yjlj
Nzk5NTA0OGEwODBmMjdmM2UzMmU1MzA1MjZhZWIuLjJhYTY4ODZlNTdhNTk5Y2JjMTdjMzVmNmI3
NGU5OWQyYWIzYTg5ZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3
b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMu
aW4KQEAgLTI5LDYgKzI5LDcgQEAgbWVzc2FnZXMgLT4gTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9u
IExlZ2FjeVJlY2VpdmVyIHsKICAgICBEaWRGaW5pc2hQaW5nTG9hZCh1aW50NjRfdCBwaW5nTG9h
ZElkZW50aWZpZXIsIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgZXJyb3IsIFdlYkNvcmU6OlJlc291
cmNlUmVzcG9uc2UgcmVzcG9uc2UpCiAgICAgRGlkRmluaXNoUHJlY29ubmVjdGlvbih1aW50NjRf
dCBwcmVjb25uZWN0aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBlcnJvcikK
ICAgICBTZXRPbkxpbmVTdGF0ZShib29sIGlzT25MaW5lKTsKKyAgICBDb29raWVBY2NlcHRQb2xp
Y3lDaGFuZ2VkKGVudW06dWludDhfdCBXZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0UG9saWN5IHBv
bGljeSk7CiAKICAgICBDaGVja1Byb2Nlc3NMb2NhbFBvcnRGb3JBY3Rpdml0eShzdHJ1Y3QgV2Vi
Q29yZTo6TWVzc2FnZVBvcnRJZGVudGlmaWVyIHBvcnQpIC0+IChXZWJDb3JlOjpNZXNzYWdlUG9y
dENoYW5uZWxQcm92aWRlcjo6SGFzQWN0aXZpdHkgaGFzQWN0aXZpdHkpIEFzeW5jCiAgICAgTWVz
c2FnZXNBdmFpbGFibGVGb3JQb3J0KHN0cnVjdCBXZWJDb3JlOjpNZXNzYWdlUG9ydElkZW50aWZp
ZXIgcG9ydCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL05l
dHdvcmtQcm9jZXNzQ29ubmVjdGlvbkluZm8uaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9O
ZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbkluZm8uaAppbmRleCA1YzA1NjhjNGFhMWY5
Y2RmZDg4YzMxYTNlM2ZkN2E0Y2RiYzg5NGE0Li4zNjdiOGEzODA5ZTM3YjE1YmRiZTBiNDZhNDE4
NTY3NzdmYmFmMmY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29y
ay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25JbmZvLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uSW5mby5oCkBAIC0yNSwxMCAr
MjUsMTMgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlIDxXZWJDb3JlL0hUVFBDb29raWVB
Y2NlcHRQb2xpY3kuaD4KKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIHN0cnVjdCBOZXR3b3JrUHJv
Y2Vzc0Nvbm5lY3Rpb25JbmZvIHsKICAgICBJUEM6OkF0dGFjaG1lbnQgY29ubmVjdGlvbjsKKyAg
ICBXZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0UG9saWN5IGNvb2tpZUFjY2VwdFBvbGljeTsKICNp
ZiBIQVZFKEFVRElUX1RPS0VOKQogICAgIE9wdGlvbmFsPGF1ZGl0X3Rva2VuX3Q+IGF1ZGl0VG9r
ZW47CiAjZW5kaWYKQEAgLTYxLDYgKzY0LDcgQEAgc3RydWN0IE5ldHdvcmtQcm9jZXNzQ29ubmVj
dGlvbkluZm8gewogICAgIHZvaWQgZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QK
ICAgICB7CiAgICAgICAgIGVuY29kZXIgPDwgY29ubmVjdGlvbjsKKyAgICAgICAgZW5jb2RlciA8
PCBjb29raWVBY2NlcHRQb2xpY3k7CiAjaWYgSEFWRShBVURJVF9UT0tFTikKICAgICAgICAgZW5j
b2RlciA8PCBhdWRpdFRva2VuOwogI2VuZGlmCkBAIC03MCw2ICs3NCw4IEBAIHN0cnVjdCBOZXR3
b3JrUHJvY2Vzc0Nvbm5lY3Rpb25JbmZvIHsKICAgICB7CiAgICAgICAgIGlmICghZGVjb2Rlci5k
ZWNvZGUoaW5mby5jb25uZWN0aW9uKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAg
ICAgaWYgKCFkZWNvZGVyLmRlY29kZUVudW0oaW5mby5jb29raWVBY2NlcHRQb2xpY3kpKQorICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogI2lmIEhBVkUoQVVESVRfVE9LRU4pCiAgICAgICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUoaW5mby5hdWRpdFRva2VuKSkKICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkNv
b2tpZUphci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJDb29raWVK
YXIuY3BwCmluZGV4IDU4ODBiYmZjNGQ5ODZjMWU1MDE4NjlkZTk1NGQ2YTU3OTE4NzNjYjcuLjMy
NTgzMDVjNzg5ZDc3NWZlMTVjMWMwODI4YzM2ZTllMmYyYTg2MDkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkNvb2tpZUphci5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViQ29va2llSmFyLmNwcApAQCAtMTI5LDEyICsx
MjksMTkgQEAgdm9pZCBXZWJDb29raWVKYXI6OnNldENvb2tpZXMoV2ViQ29yZTo6RG9jdW1lbnQm
IGRvY3VtZW50LCBjb25zdCBVUkwmIHVybCwgY29uc3QKICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0
b24oKS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZChN
ZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OlNldENvb2tpZXNGcm9tRE9N
KGRvY3VtZW50LmZpcnN0UGFydHlGb3JDb29raWVzKCksIHNhbWVTaXRlSW5mbyhkb2N1bWVudCks
IHVybCwgZnJhbWVJRCwgcGFnZUlELCBzaG91bGRBc2tJVFBJbk5ldHdvcmtQcm9jZXNzLCBjb29r
aWVTdHJpbmcpLCAwKTsKIH0KIAotYm9vbCBXZWJDb29raWVKYXI6OmNvb2tpZXNFbmFibGVkKGNv
bnN0IFdlYkNvcmU6OkRvY3VtZW50JiBkb2N1bWVudCkgY29uc3QKK2Jvb2wgV2ViQ29va2llSmFy
Ojpjb29raWVzRW5hYmxlZChjb25zdCBEb2N1bWVudCYgZG9jdW1lbnQpIGNvbnN0CiB7Ci0gICAg
Ym9vbCByZXN1bHQgPSBmYWxzZTsKLSAgICBpZiAoIVdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVu
c3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kU3luYyhNZXNz
YWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OkNvb2tpZXNFbmFibGVkKCksIE1l
c3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Q29va2llc0VuYWJsZWQ6OlJl
cGx5KHJlc3VsdCksIDApKQorICAgIGF1dG8qIHdlYkZyYW1lID0gZG9jdW1lbnQuZnJhbWUoKSA/
IFdlYkZyYW1lOjpmcm9tQ29yZUZyYW1lKCpkb2N1bWVudC5mcmFtZSgpKSA6IG51bGxwdHI7Cisg
ICAgaWYgKCF3ZWJGcmFtZSB8fCAhd2ViRnJhbWUtPnBhZ2UoKSkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwotICAgIHJldHVybiByZXN1bHQ7CisKKyNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFU
SVNUSUNTKQorICAgIFNob3VsZEFza0lUUCBkdW1teTsKKyAgICBpZiAoc2hvdWxkQmxvY2tDb29r
aWVzKHdlYkZyYW1lLCBkb2N1bWVudC5maXJzdFBhcnR5Rm9yQ29va2llcygpLCBkb2N1bWVudC5j
b29raWVVUkwoKSwgZHVtbXkpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisjZW5kaWYKKworICAg
IHJldHVybiBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5l
Y3Rpb24oKS5jb29raWVzRW5hYmxlZCgpOwogfQogCiBzdGQ6OnBhaXI8U3RyaW5nLCBXZWJDb3Jl
OjpTZWN1cmVDb29raWVzQWNjZXNzZWQ+IFdlYkNvb2tpZUphcjo6Y29va2llUmVxdWVzdEhlYWRl
ckZpZWxkVmFsdWUoY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBXZWJDb3JlOjpTYW1lU2l0
ZUluZm8mIHNhbWVTaXRlSW5mbywgY29uc3QgVVJMJiB1cmwsIE9wdGlvbmFsPEZyYW1lSWRlbnRp
Zmllcj4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgV2ViQ29yZTo6
SW5jbHVkZVNlY3VyZUNvb2tpZXMgaW5jbHVkZVNlY3VyZUNvb2tpZXMpIGNvbnN0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKaW5kZXggY2E0MThjZDcwMmY4ZWNkMzZkMjEx
ZWU2ZGRiYWE2YWY3OWYwZTI1Zi4uNjVjOWJjNGNhNzZhYzk1MGRkOTY4MmUxMjI0ZGNiOGY2ZTBl
NDhmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApAQCAtMTE5MSw3
ICsxMTkxLDcgQEAgTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uJiBXZWJQcm9jZXNzOjplbnN1cmVO
ZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKQogICAgICAgICBpZiAoIUlQQzo6Q29ubmVjdGlvbjo6
aWRlbnRpZmllcklzVmFsaWQoY29ubmVjdGlvbkluZm8uaWRlbnRpZmllcigpKSkKICAgICAgICAg
ICAgIENSQVNIKCk7CiAKLSAgICAgICAgbV9uZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24gPSBOZXR3
b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OmNyZWF0ZShjb25uZWN0aW9uSW5mby5yZWxlYXNlSWRlbnRp
ZmllcigpKTsKKyAgICAgICAgbV9uZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24gPSBOZXR3b3JrUHJv
Y2Vzc0Nvbm5lY3Rpb246OmNyZWF0ZShjb25uZWN0aW9uSW5mby5yZWxlYXNlSWRlbnRpZmllcigp
LCBjb25uZWN0aW9uSW5mby5jb29raWVBY2NlcHRQb2xpY3kpOwogI2lmIEhBVkUoQVVESVRfVE9L
RU4pCiAgICAgICAgIG1fbmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLT5zZXROZXR3b3JrUHJvY2Vz
c0F1ZGl0VG9rZW4oV1RGTW92ZShjb25uZWN0aW9uSW5mby5hdWRpdFRva2VuKSk7CiAjZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>388426</attachid>
            <date>2020-01-22 09:11:45 -0800</date>
            <delta_ts>2020-01-22 11:31:20 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-206450-20200122091145.patch</filename>
            <type>text/plain</type>
            <size>89879</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0OTI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWEwMGQwZWRmYzEwMDVj
MzgzMDIyMzlmYzdkNzQzZTI4Y2U0MTkyYi4uZjYwNzYzNmU3NzAyM2I1MTI3N2JlZWM0NjFkYzkx
ZWM3ZGJmZDAyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIwLTAxLTIyICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgRnJlcXVlbnQgTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3M6OkNvb2tpZXNFbmFibGVkIHN5bmMgSVBDIHdoZW4gYnJvd3Np
bmcgcmVkZGl0LmNvbQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjA2NDUwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAg
ICAgTW92ZSBIVFRQQ29va2llQWNjZXB0UG9saWN5LmggaGVhZGVyIGZyb20gV2ViS2l0IHRvIFdl
YkNvcmUgc28gdGhhdCB0aGUgSFRUUENvb2tpZUFjY2VwdFBvbGljeSBlbnVtCisgICAgICAgIGNh
biBiZSB1c2VkIGluIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbi4gUmVwbGFjZSBOZXR3b3JrU3RvcmFn
ZVNlc3Npb246OmNvb2tpZXNFbmFibGVkKCkgd2l0aCBhIG1vcmUKKyAgICAgICAgZGV0YWlsZWQg
TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpjb29raWVBY2NlcHRQb2xpY3koKSBtZXRob2QuCisKKyAg
ICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogbG9h
ZGVyL0Nvb2tpZUphci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb29raWVKYXI6OmNvb2tpZXNF
bmFibGVkIGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL0hUVFBDb29raWVBY2Nl
cHRQb2xpY3kuaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL0hUVFBDb29raWVB
Y2NlcHRQb2xpY3kuaC4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdl
U2Vzc2lvbi5jcHA6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNl
c3Npb24uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2NmL05ldHdvcmtTdG9yYWdlU2Vz
c2lvbkNGTmV0V2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lv
bjo6Y29va2llQWNjZXB0UG9saWN5IGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3Jr
L2NvY29hL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkNvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6
TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpjb29raWVBY2NlcHRQb2xpY3kgY29uc3QpOgorICAgICAg
ICAqIHBsYXRmb3JtL25ldHdvcmsvY3VybC9OZXR3b3JrU3RvcmFnZVNlc3Npb25DdXJsLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y29va2llQWNjZXB0UG9s
aWN5IGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvTmV0d29ya1N0b3Jh
Z2VTZXNzaW9uU291cC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Np
b246OmNvb2tpZUFjY2VwdFBvbGljeSBjb25zdCk6CisKIDIwMjAtMDEtMjIgIEFudHRpIEtvaXZp
c3RvICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIFtMRkNdW0ludGVncmF0aW9uXSBEaXNh
YmxlIGludGVncmF0aW9uIHRvIHNlZSBwZXJmb3JtYW5jZSBpbXBhY3QKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNGQz
NTVlNzgwMTE4YTk4ODFmMDliZWU1NGFlNjVlMzRlOTdlNTUyNi4uOGMwOGUwMzAwNmI5NTRlMWZm
MWVlZjBiMzI3ZDc4ODE4Njk3NDE2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3NyBAQAorMjAyMC0w
MS0yMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEZyZXF1ZW50
IE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpDb29raWVzRW5hYmxlZCBzeW5jIElQQyB3
aGVuIGJyb3dzaW5nIHJlZGRpdC5jb20KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIwNjQ1MAorCisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVy
LgorCisgICAgICAgIEZyZXF1ZW50IE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpDb29r
aWVzRW5hYmxlZCBzeW5jIElQQyB3aGVuIGJyb3dzaW5nIHJlZGRpdC5jb20uIFRoaXMKKyAgICAg
ICAgaGFwcGVucyBldmVyeSB0aW1lIHRoZSBwYWdlIHNjcmlwdCBjYWxscyBuYXZpZ2F0b3IuY29v
a2llRW5hYmxlZC4gVG8gYWRkcmVzcyB0aGUgaXNzdWUsIHdlIG5vdworICAgICAgICBzdG9yZSB0
aGUgImNvb2tpZSBhY2NlcHQgcG9saWN5IiBvbiB0aGUgV2ViQ29udGVudCBwcm9jZXNzIHNpZGUu
IFRoaXMgYWxsb3dzIHVzIHRvIGtub3cKKyAgICAgICAgc3luY2hyb25vdXNseSBvbiB0aGUgV2Vi
Q29udGVudCBwcm9jZXNzIGlmIGNvb2tpZXMgYXJlIGVuYWJsZWQgb3Igbm90IGFuZCB3aXRob3V0
IGFueSBJUEMgdG8KKyAgICAgICAgdGhlIG5ldHdvcmsgcHJvY2Vzcy4gVG8gYWNoaWV2ZSB0aGlz
LCBJIGFkZGVkIGEgbmV3IGNvb2tpZUFjY2VwdFBvbGljeSBtZW1iZXIgdG8KKyAgICAgICAgTmV0
d29ya1Byb2Nlc3NDb25uZWN0aW9uSW5mbyBzbyB0aGF0IHRoZSBXZWJDb250ZW50IHByb2Nlc3Mg
aXMgYXdhcmUgb2YgdGhlIGluaXRpYWwgcG9saWN5IHdoZW4KKyAgICAgICAgaXQgY29ubmVjdHMg
dG8gdGhlIG5ldHdvcmsgcHJvY2Vzcy4gVGhlIHBvbGljeSBvbiB0aGUgV2ViQ29udGVudCBwcm9j
ZXNzIHNpZGUgaXMgdGhlbiBrZXB0IHVwCisgICAgICAgIHRvIGRhdGUgdmlhIElQQ3MgZnJvbSB0
aGUgbmV0d29yayBwcm9jZXNzIHRvIHRoZSBXZWJDb250ZW50IHByb2Nlc3NlcyB3aGVuZXZlciB0
aGUgY29va2llCisgICAgICAgIGFjY2VwdCBwb2xpY3kgY2hhbmdlcy4KKworICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYkNvb2tpZU1hbmFnZXI6OnNldEhUVFBDb29raWVBY2NlcHRQb2xpY3kpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJDb29raWVNYW5hZ2VyOjpnZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KToK
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIuaDoKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIubWVzc2FnZXMu
aW46CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvQ29va2llcy9jdXJsL1dlYkNvb2tpZU1hbmFn
ZXJDdXJsLmNwcDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9Db29raWVzL21hYy9XZWJDb29r
aWVNYW5hZ2VyTWFjLm1tOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0Nvb2tpZXMvc291cC9X
ZWJDb29raWVNYW5hZ2VyU291cC5jcHA6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzczo6Y29va2llQWNjZXB0UG9saWN5Q2hhbmdlZCk6CisgICAgICAg
ICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaDoKKyAgICAg
ICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdl
cy5pbjoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHA6CisgICAg
ICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpjcmVhdGVOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpjb29raWVBY2NlcHRQ
b2xpY3lDaGFuZ2VkKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5o
OgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluOgor
ICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
Lmg6CisgICAgICAgICogU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQSUhUVFBDb29raWVTdG9yZS5jcHA6CisgICAgICAgIChB
UEk6OkhUVFBDb29raWVTdG9yZTo6c2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeSk6CisgICAgICAg
IChBUEk6OkhUVFBDb29raWVTdG9yZTo6c2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeUluRGVmYXVs
dFVJUHJvY2Vzc0Nvb2tpZVN0b3JlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQSUhUVFBD
b29raWVTdG9yZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaDoKKyAg
ICAgICAgKFdlYktpdDo6dG9IVFRQQ29va2llQWNjZXB0UG9saWN5KToKKyAgICAgICAgKFdlYktp
dDo6dG9BUEkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvQVBJSFRUUENvb2tpZVN0
b3JlQ29jb2EubW06CisgICAgICAgIChBUEk6OnRvTlNIVFRQQ29va2llQWNjZXB0UG9saWN5KToK
KyAgICAgICAgKEFQSTo6SFRUUENvb2tpZVN0b3JlOjpzZXRIVFRQQ29va2llQWNjZXB0UG9saWN5
SW5EZWZhdWx0VUlQcm9jZXNzQ29va2llU3RvcmUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tIVFRQQ29va2llU3RvcmUubW06CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1Byb2Nlc3NQb29sLm1tOgorICAgICAgICAodG9IVFRQQ29va2llQWNjZXB0UG9saWN5KToK
KyAgICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6b3Blbk5ldHdvcmtQcm9jZXNzQ29u
bmVjdGlvbik6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eS5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oOgorICAgICAgICAqIFdlYktpdC54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay9O
ZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJv
Y2Vzc0Nvbm5lY3Rpb246Ok5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbik6CisgICAgICAgIChXZWJL
aXQ6Ok5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6d3JpdGVCbG9ic1RvVGVtcG9yYXJ5RmlsZXMp
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OmNvb2tpZXNFbmFi
bGVkKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpjb29raWVB
Y2NlcHRQb2xpY3lDaGFuZ2VkKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvTmV0d29y
a1Byb2Nlc3NDb25uZWN0aW9uLmg6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzQ29u
bmVjdGlvbjo6Y3JlYXRlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1By
b2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29y
ay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25JbmZvLmg6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtQcm9jZXNzQ29ubmVjdGlvbkluZm86OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6
Ok5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbkluZm86OmRlY29kZSk6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYkNvb2tpZUphci5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNvb2tp
ZUphcjo6Y29va2llc0VuYWJsZWQgY29uc3QpOgorICAgICAgICAtIFJldHVybiBmYWxzZSBlYXJs
eSBpZiB0aGUgZG9jdW1lbnQgaGFzIG5vIGZyYW1lIC8gcGFnZSAoY29va2llLWF2ZXJzZSBhcyBw
ZXIgc3BlYykKKyAgICAgICAgLSBSZXR1cm4gZmFsc2UgZWFybHkgaWYgSVRQIGlzIGVuYWJsZWQg
YW5kIGl0IGlzIGEgdGhpcmQtcGFydHkgaWZyYW1lIHdpdGhvdXQgc3RvcmFnZQorICAgICAgICAg
IGFjY2Vzcy4gVGhpcyBieXBhc3NlcyB0aGUgc3luYyBJUEMgY2FsbCBjb21wbGV0ZWx5IGZvciBz
dWNoIGlmcmFtZXMuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjplbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24p
OgorCiAyMDIwLTAxLTIyICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAg
ICAgW0lQQyBIYXJkZW5pbmddIE9ubHkgcHJvY2VzcyBNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3Mg
bWVzc2FnZXMgd2hlbiBzZW50IGJ5IHRoZSBVSVByb2Nlc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCmluZGV4
IDQ1NTJjMDVhNzM5Zjc1ODc4YjY3ZmE0ZTY4ODBlNmM3NDY1ZTYxOTYuLmYyNGFmYTlkMTEyMTZk
OWUyMjRiOTljYWRiODUzZTgwM2NiNTkwM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0hl
YWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpAQCAtMTIyNCw2
ICsxMjI0LDcgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIHBs
YXRmb3JtL25ldHdvcmsvRE5TLmgKICAgICBwbGF0Zm9ybS9uZXR3b3JrL0ROU1Jlc29sdmVRdWV1
ZS5oCiAgICAgcGxhdGZvcm0vbmV0d29yay9Gb3JtRGF0YS5oCisgICAgcGxhdGZvcm0vbmV0d29y
ay9IVFRQQ29va2llQWNjZXB0UG9saWN5LmgKICAgICBwbGF0Zm9ybS9uZXR3b3JrL0hUVFBIZWFk
ZXJNYXAuaAogICAgIHBsYXRmb3JtL25ldHdvcmsvSFRUUFBhcnNlcnMuaAogICAgIHBsYXRmb3Jt
L25ldHdvcmsvTmV0d29ya0xvYWRJbmZvcm1hdGlvbi5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZGE5MmNkZTkxZWI3YWU4NGE1
ZjFlN2ZkNWFmMjcyMTc1YTRjODM0NC4uYzM4NmY3MzI1ZDYxZDM2MzY0OTMzNDBiNjUyZjRhMmYx
MzlmNWUyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagpAQCAtMTI1Miw2ICsxMjUyLDcgQEAKIAkJNDZCOTUxOUEyMDdENjM1NDAwQTdE
MkREIC8qIFJlbW90ZUZyYW1lLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA0NkI5NTE5MjIwN0Q2MzJFMDBBN0QyREQgLyogUmVtb3RlRnJhbWUuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0NkI5NUJGNTIy
MzFDRkQ2MDA1M0E1MDQgLyogRGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250cm9s
bGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NkI5
NUJGNDIyMzFDRkI4MDA1M0E1MDQgLyogRGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3ND
b250cm9sbGVyLmggKi87IH07CiAJCTQ2QkNCQkMyMjA4NTAwOEYwMDcxMDYzOCAvKiBKU1JlbW90
ZURPTVdpbmRvd0Jhc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDQ2QkNCQkMwMjA4NTAwN0YwMDcxMDYzOCAvKiBKU1JlbW90ZURPTVdpbmRvd0Jhc2Uu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk0NkMw
OTYyMTIzRDc4REQ2MDA2NTdDMDkgLyogSFRUUENvb2tpZUFjY2VwdFBvbGljeS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDZDMDk2MjAyM0Q3OERENjAw
NjU3QzA5IC8qIEhUVFBDb29raWVBY2NlcHRQb2xpY3kuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0NkMzNzY2MjIwODUxNzdEMDBDNzM4MjkgLyog
SlNSZW1vdGVET01XaW5kb3cuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDQ2QzM3NjYxMjA4NTE3NkQwMEM3MzgyOSAvKiBKU1JlbW90ZURPTVdpbmRvdy5o
ICovOyB9OwogCQk0NkM2OTZDQjFFNzIwNUY3MDA1OTc5MzcgLyogQ1BVTW9uaXRvci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDZDNjk2QzkxRTcyMDVF
NDAwNTk3OTM3IC8qIENQVU1vbml0b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQk0NkM2OTZDQzFFNzIwNUZDMDA1OTc5MzcgLyogQ1BVTW9uaXRv
ci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NkM2
OTZDQTFFNzIwNUU0MDA1OTc5MzcgLyogQ1BVTW9uaXRvci5jcHAgKi87IH07CkBAIC0xMjYxLDYg
KzEyNjIsNyBAQAogCQk0NkRGRjQ5ODFEQzI2MDMxMDBCODBCNDggLyogU2hhZG93Um9vdE1vZGUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2REZGNDk2
MURDMjYwMTMwMEI4MEI0OCAvKiBTaGFkb3dSb290TW9kZS5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQ2REZGNDlDMURDMjYyMEIwMEI4MEI0OCAv
KiBKU1NoYWRvd1Jvb3RNb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA0NkRGRjQ5QTFEQzI2MUY5MDBCODBCNDggLyogSlNTaGFkb3dSb290TW9kZS5o
ICovOyB9OwogCQk0NkUwQzBERTIzQzAwNkU5MDA1RTQ3QUUgLyogRHJhZ0V2ZW50LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NkUwQzBEQTIzQzAwNkIz
MDA1RTQ3QUUgLyogRHJhZ0V2ZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKKwkJNDZFMTM5RjgyM0Q4QjhFQjAwNzU4NDhFIC8qIEhUVFBDb29raWVB
Y2NlcHRQb2xpY3lDb2NvYS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNDZFMTM5RjYyM0Q4QjhFNzAwNzU4NDhFIC8qIEhUVFBDb29raWVBY2NlcHRQb2xp
Y3lDb2NvYS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTQ2RTE2NjZFMUZDQzg2QTIwMEM5NzEwQiAvKiBEb2N1bWVudElkZW50aWZpZXIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2RTE2NjZDMUZDQzg2
ODcwMEM5NzEwQiAvKiBEb2N1bWVudElkZW50aWZpZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0NkU3OTE0OTFGOTdFMDFBMDAxOTk3MzkgLyog
SlNWaXNpYmlsaXR5U3RhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDQ2RTc5MTQ2MUY5N0UwMTcwMDE5OTczOSAvKiBKU1Zpc2liaWxpdHlTdGF0ZS5o
ICovOyB9OwogCQk0NkVCMzdDQTFGOTdDQ0QyMDBCNjU1MjMgLyogSlNTZXJ2aWNlV29ya2VyQ2xp
ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NkVC
MzdDMzFGOTdDQ0NCMDBCNjU1MjMgLyogSlNTZXJ2aWNlV29ya2VyQ2xpZW50LmggKi87IH07CkBA
IC03Nzg1LDYgKzc3ODcsNyBAQAogCQk0NkJDQkJDMDIwODUwMDdGMDA3MTA2MzggLyogSlNSZW1v
dGVET01XaW5kb3dCYXNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTUmVt
b3RlRE9NV2luZG93QmFzZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NkJDQkJD
MTIwODUwMDgwMDA3MTA2MzggLyogSlNSZW1vdGVET01XaW5kb3dCYXNlLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTUmVtb3RlRE9NV2luZG93QmFzZS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2QkNCQkMzMjA4NTAwQTcwMDcxMDYzOCAvKiBS
ZW1vdGVET01XaW5kb3cuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJlbW90ZURPTVdpbmRv
dy5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ2QzA5NjIwMjNENzhERDYwMDY1
N0MwOSAvKiBIVFRQQ29va2llQWNjZXB0UG9saWN5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhUVFBDb29r
aWVBY2NlcHRQb2xpY3kuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDZDMzc2NUYy
MDg1MTc2QzAwQzczODI5IC8qIEpTUmVtb3RlRE9NV2luZG93LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTUmVtb3RlRE9NV2luZG93LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNDZDMzc2NjEyMDg1MTc2RDAwQzczODI5IC8qIEpTUmVtb3RlRE9N
V2luZG93LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTUmVtb3RlRE9NV2lu
ZG93Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2QzY5NkM5MUU3MjA1RTQwMDU5
NzkzNyAvKiBDUFVNb25pdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENQ
VU1vbml0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTc4MDIsNiArNzgwNSw3
IEBACiAJCTQ2RTBDMERBMjNDMDA2QjMwMDVFNDdBRSAvKiBEcmFnRXZlbnQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRHJhZ0V2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTQ2RTBDMERDMjNDMDA2QjQwMDVFNDdBRSAvKiBEcmFnRXZlbnQuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRHJhZ0V2ZW50LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDZFMEMwREQyM0MwMDZCNDAwNUU0N0FFIC8qIERyYWdFdmVu
dC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gRHJhZ0V2ZW50LmlkbDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJNDZFMTM5RjYyM0Q4QjhFNzAwNzU4NDhFIC8qIEhUVFBDb29raWVB
Y2NlcHRQb2xpY3lDb2NvYS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBIVFRQ
Q29va2llQWNjZXB0UG9saWN5Q29jb2EuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NDZFMTY2NkMxRkNDODY4NzAwQzk3MTBCIC8qIERvY3VtZW50SWRlbnRpZmllci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEb2N1bWVudElkZW50aWZpZXIuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDZFNzkxNDUxRjk3RTAxNzAwMTk5NzM5IC8qIEpTVmlzaWJp
bGl0eVN0YXRlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTVmlz
aWJpbGl0eVN0YXRlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDZFNzkxNDYx
Rjk3RTAxNzAwMTk5NzM5IC8qIEpTVmlzaWJpbGl0eVN0YXRlLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEpTVmlzaWJpbGl0eVN0YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC0yMDQ2NSw2ICsyMDQ2OSw3IEBACiAJCQkJNTE0Qzc2NUIwQ0U5MjNBMTAwN0VG
M0NEIC8qIEZvcm1EYXRhLmggKi8sCiAJCQkJMDg1QjkyQjgwRUZERTczRDAwRTYxMjNDIC8qIEZv
cm1EYXRhQnVpbGRlci5jcHAgKi8sCiAJCQkJMDg1QjkyQjkwRUZERTczRDAwRTYxMjNDIC8qIEZv
cm1EYXRhQnVpbGRlci5oICovLAorCQkJCTQ2QzA5NjIwMjNENzhERDYwMDY1N0MwOSAvKiBIVFRQ
Q29va2llQWNjZXB0UG9saWN5LmggKi8sCiAJCQkJMEI4QzU2RDMwRjI4NjI3RjAwMDUwMkUxIC8q
IEhUVFBIZWFkZXJNYXAuY3BwICovLAogCQkJCTUxNEM3NjVDMENFOTIzQTEwMDdFRjNDRCAvKiBI
VFRQSGVhZGVyTWFwLmggKi8sCiAJCQkJMUFDOTAwQkYxOTQzQUYzRDAwODYyNUI1IC8qIEhUVFBI
ZWFkZXJOYW1lcy5pbiAqLywKQEAgLTIxNDQ5LDYgKzIxNDU0LDcgQEAKIAkJCQk1MTIwQkJBQzFG
MUNFNzcwMDBFRkVCRjEgLyogQ29va2llU3RvcmFnZU9ic2VydmVyLm1tICovLAogCQkJCTM3OTI5
MTdDMTk4NzY3OEYwMEY0QjY2MSAvKiBDcmVkZW50aWFsQ29jb2EuaCAqLywKIAkJCQkzNzkyOTE3
QjE5ODc2NzhGMDBGNEI2NjEgLyogQ3JlZGVudGlhbENvY29hLm1tICovLAorCQkJCTQ2RTEzOUY2
MjNEOEI4RTcwMDc1ODQ4RSAvKiBIVFRQQ29va2llQWNjZXB0UG9saWN5Q29jb2EuaCAqLywKIAkJ
CQk1QzlCODYwQjFDMjFFM0M2MDAxMTBGMzYgLyogTmV0d29ya0xvYWRNZXRyaWNzLm1tICovLAog
CQkJCTUxRDEyNDhBMUU3MzYyNUMwMDJCMjgyMCAvKiBOZXR3b3JrU3RvcmFnZVNlc3Npb25Db2Nv
YS5tbSAqLywKIAkJCQkzNzJBREEzNzE5N0Y0N0I5MDBGQzUwMUUgLyogUHJvdGVjdGlvblNwYWNl
Q29jb2EuaCAqLywKQEAgLTMwMjg1LDYgKzMwMjkxLDggQEAKIAkJCQlFNDQ2MTNBQjBDRDYzMzEw
MDBGQURBNzUgLyogSFRNTFZpZGVvRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUQyRjhF
MDUyMzQ0NzUxRDAwOTkzQjY4IC8qIEhUTUxWaWRlb0VsZW1lbnRQaWN0dXJlSW5QaWN0dXJlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk4MzlBQUZFRDFBMEMwQzhEMDA2MDVGOTkgLyogSFRNTFdCUkVs
ZW1lbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTQ2QzA5NjIxMjNENzhERDYwMDY1N0MwOSAvKiBI
VFRQQ29va2llQWNjZXB0UG9saWN5LmggaW4gSGVhZGVycyAqLywKKwkJCQk0NkUxMzlGODIzRDhC
OEVCMDA3NTg0OEUgLyogSFRUUENvb2tpZUFjY2VwdFBvbGljeUNvY29hLmggaW4gSGVhZGVycyAq
LywKIAkJCQk1Q0ExREVDNjFGNzFGMUM3MDBFNzFCRDMgLyogSFRUUEhlYWRlckZpZWxkLmggaW4g
SGVhZGVycyAqLywKIAkJCQk1MTRDNzY3MTBDRTkyM0ExMDA3RUYzQ0QgLyogSFRUUEhlYWRlck1h
cC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFCNUVCRDIxOTRBNTBGMzAwNTlBQzcwIC8qIEhUVFBI
ZWFkZXJOYW1lcy5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvQ29va2llSmFyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Db29raWVKYXIuY3Bw
CmluZGV4IDIzOTA2NjhkZjgzMTEzZmRhMTczMDM4MGMyNDkxMjA2YmQzODkwNWMuLmEwN2EzMDJh
NDIzOTE0MWJmOTQ3NWRmNGY1ZWM1ZGM2OTg1MGQzMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9Db29raWVKYXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Db29r
aWVKYXIuY3BwCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRl
ICJGcmFtZUxvYWRlci5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyQ2xpZW50LmgiCisjaW5jbHVk
ZSAiSFRUUENvb2tpZUFjY2VwdFBvbGljeS5oIgogI2luY2x1ZGUgIk5ldHdvcmtTdG9yYWdlU2Vz
c2lvbi5oIgogI2luY2x1ZGUgIk5ldHdvcmtpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiUGxhdGZv
cm1TdHJhdGVnaWVzLmgiCkBAIC0xMjIsNyArMTIzLDcgQEAgdm9pZCBDb29raWVKYXI6OnNldENv
b2tpZXMoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBj
b28KIGJvb2wgQ29va2llSmFyOjpjb29raWVzRW5hYmxlZChjb25zdCBEb2N1bWVudCYpIGNvbnN0
CiB7CiAgICAgaWYgKGF1dG8qIHNlc3Npb24gPSBtX3N0b3JhZ2VTZXNzaW9uUHJvdmlkZXItPnN0
b3JhZ2VTZXNzaW9uKCkpCi0gICAgICAgIHJldHVybiBzZXNzaW9uLT5jb29raWVzRW5hYmxlZCgp
OworICAgICAgICByZXR1cm4gc2Vzc2lvbi0+Y29va2llQWNjZXB0UG9saWN5KCkgIT0gSFRUUENv
b2tpZUFjY2VwdFBvbGljeTo6TmV2ZXI7CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAg
ICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL0hUVFBDb29raWVBY2NlcHRQb2xpY3kuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvSFRUUENvb2tpZUFjY2VwdFBvbGljeS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRlNjNmYjM1ZDQwZjdi
MmJjY2E1OWY4NmNhYWFmYmYyNjY1YzJiNjQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL0hUVFBDb29raWVBY2NlcHRQb2xpY3kuaApAQCAtMCwwICsx
LDUxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExLTIwMjAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjcHJhZ21hIG9uY2UKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitlbnVtIGNsYXNzIEhUVFBD
b29raWVBY2NlcHRQb2xpY3kgOiB1aW50OF90IHsKKyAgICBBbHdheXNBY2NlcHQgPSAwLAorICAg
IE5ldmVyID0gMSwKKyAgICBPbmx5RnJvbU1haW5Eb2N1bWVudERvbWFpbiA9IDIsCisgICAgRXhj
bHVzaXZlbHlGcm9tTWFpbkRvY3VtZW50RG9tYWluID0gMywKK307CisKK30gLy8gbmFtZXNwYWNl
IFdlYktpdAorCituYW1lc3BhY2UgV1RGIHsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0
czxXZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0UG9saWN5PiB7CisgICAgdXNpbmcgdmFsdWVzID0g
RW51bVZhbHVlczwKKyAgICAgICAgV2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBvbGljeSwKKyAg
ICAgICAgV2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBvbGljeTo6QWx3YXlzQWNjZXB0LAorICAg
ICAgICBXZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0UG9saWN5OjpOZXZlciwKKyAgICAgICAgV2Vi
Q29yZTo6SFRUUENvb2tpZUFjY2VwdFBvbGljeTo6T25seUZyb21NYWluRG9jdW1lbnREb21haW4s
CisgICAgICAgIFdlYkNvcmU6OkhUVFBDb29raWVBY2NlcHRQb2xpY3k6OkV4Y2x1c2l2ZWx5RnJv
bU1haW5Eb2N1bWVudERvbWFpbgorICAgID47Cit9OworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5jcHAKaW5k
ZXggNTE1ZGJmMTk5ZjcxNWNiMGQ0M2YzNGZkNTNjMzIzNjkxODFjOTNlNS4uMjk5NDI3NTYyNThl
OTI0M2MzYjBhMTAwYjFhM2Y2ZjcyYTg0NzU4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmNwcApAQCAtMjYs
NiArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIk5ldHdvcmtTdG9yYWdl
U2Vzc2lvbi5oIgogCisjaW5jbHVkZSAiSFRUUENvb2tpZUFjY2VwdFBvbGljeS5oIgogI2luY2x1
ZGUgIlJ1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oIgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ry
b3llZC5oPgogI2luY2x1ZGUgPHd0Zi9Qcm9jZXNzUHJpdmlsZWdlLmg+CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaApp
bmRleCAzNzIwYWM1ZTg1YjA5OGU0ODM1Y2I2NzdjMDU4MWUwYjMwNWRkNTVjLi42NTA2ZjEwNzcw
NjVhNGQyMWY3OTgwMTkyZjNkNzUwN2ViYzIzYTllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmgKQEAgLTcyLDYg
KzcyLDcgQEAgc3RydWN0IENvb2tpZTsKIHN0cnVjdCBDb29raWVSZXF1ZXN0SGVhZGVyRmllbGRQ
cm94eTsKIHN0cnVjdCBTYW1lU2l0ZUluZm87CiAKK2VudW0gY2xhc3MgSFRUUENvb2tpZUFjY2Vw
dFBvbGljeSA6IHVpbnQ4X3Q7CiBlbnVtIGNsYXNzIEluY2x1ZGVTZWN1cmVDb29raWVzIDogYm9v
bDsKIGVudW0gY2xhc3MgSW5jbHVkZUh0dHBPbmx5Q29va2llcyA6IGJvb2w7CiBlbnVtIGNsYXNz
IFRoaXJkUGFydHlDb29raWVCbG9ja2luZ01vZGUgOiB1aW50OF90IHsgQWxsLCBBbGxPblNpdGVz
V2l0aG91dFVzZXJJbnRlcmFjdGlvbiwgT25seUFjY29yZGluZ1RvUGVyRG9tYWluUG9saWN5IH07
CkBAIC0xMjUsNyArMTI2LDcgQEAgcHVibGljOgogICAgIE5ldHdvcmtpbmdDb250ZXh0KiBjb250
ZXh0KCkgY29uc3Q7CiAjZW5kaWYKIAotICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgY29va2llc0Vu
YWJsZWQoKSBjb25zdDsKKyAgICBXRUJDT1JFX0VYUE9SVCBIVFRQQ29va2llQWNjZXB0UG9saWN5
IGNvb2tpZUFjY2VwdFBvbGljeSgpIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0
Q29va2llKGNvbnN0IENvb2tpZSYpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0Q29va2ll
cyhjb25zdCBWZWN0b3I8Q29va2llPiYsIGNvbnN0IFVSTCYsIGNvbnN0IFVSTCYgbWFpbkRvY3Vt
ZW50VVJMKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldENvb2tpZXNGcm9tRE9NKGNvbnN0
IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiwgT3B0aW9u
YWw8RnJhbWVJZGVudGlmaWVyPiwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+LCBTaG91bGRBc2tJ
VFAsIGNvbnN0IFN0cmluZyYpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9jZi9OZXR3b3JrU3RvcmFnZVNlc3Npb25DRk5ldFdpbi5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkNGTmV0
V2luLmNwcAppbmRleCA1MmRhY2M2ODZkODNiYTI5ODEzMDc5MDU5YWM4NTUxZmE2MWU5M2JjLi4x
YWEwZjU0NWQ4YmQ1YzE1ODNkZGY0NmQwNTM0NGU1NzE3OGU4NWUyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkNGTmV0
V2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL05ldHdvcmtT
dG9yYWdlU2Vzc2lvbkNGTmV0V2luLmNwcApAQCAtMjgsNiArMjgsNyBAQAogCiAjaW5jbHVkZSAi
Q29va2llLmgiCiAjaW5jbHVkZSAiQ29va2llUmVxdWVzdEhlYWRlckZpZWxkUHJveHkuaCIKKyNp
bmNsdWRlICJIVFRQQ29va2llQWNjZXB0UG9saWN5LmgiCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50
ZWQuaCIKICNpbmNsdWRlIDxDRk5ldHdvcmsvQ0ZIVFRQQ29va2llc1ByaXYuaD4KICNpbmNsdWRl
IDxDb3JlRm91bmRhdGlvbi9Db3JlRm91bmRhdGlvbi5oPgpAQCAtMjU4LDEwICsyNTksMTggQEAg
c3RkOjpwYWlyPFN0cmluZywgYm9vbD4gTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpjb29raWVSZXF1
ZXN0SGVhZGVyRmllbGRWYWx1ZShjb24KICAgICByZXR1cm4gY29va2llUmVxdWVzdEhlYWRlckZp
ZWxkVmFsdWUoaGVhZGVyRmllbGRQcm94eS5maXJzdFBhcnR5LCBoZWFkZXJGaWVsZFByb3h5LnNh
bWVTaXRlSW5mbywgaGVhZGVyRmllbGRQcm94eS51cmwsIGhlYWRlckZpZWxkUHJveHkuZnJhbWVJ
RCwgaGVhZGVyRmllbGRQcm94eS5wYWdlSUQsIGhlYWRlckZpZWxkUHJveHkuaW5jbHVkZVNlY3Vy
ZUNvb2tpZXMsIFNob3VsZEFza0lUUDo6WWVzKTsKIH0KIAotYm9vbCBOZXR3b3JrU3RvcmFnZVNl
c3Npb246OmNvb2tpZXNFbmFibGVkKCkgY29uc3QKK0hUVFBDb29raWVBY2NlcHRQb2xpY3kgTmV0
d29ya1N0b3JhZ2VTZXNzaW9uOjpjb29raWVBY2NlcHRQb2xpY3koKSBjb25zdAogewotICAgIENG
SFRUUENvb2tpZVN0b3JhZ2VBY2NlcHRQb2xpY3kgcG9saWN5ID0gQ0ZIVFRQQ29va2llU3RvcmFn
ZUdldENvb2tpZUFjY2VwdFBvbGljeShjb29raWVTdG9yYWdlKCkuZ2V0KCkpOwotICAgIHJldHVy
biBwb2xpY3kgPT0gQ0ZIVFRQQ29va2llU3RvcmFnZUFjY2VwdFBvbGljeU9ubHlGcm9tTWFpbkRv
Y3VtZW50RG9tYWluIHx8IHBvbGljeSA9PSBDRkhUVFBDb29raWVTdG9yYWdlQWNjZXB0UG9saWN5
RXhjbHVzaXZlbHlGcm9tTWFpbkRvY3VtZW50RG9tYWluIHx8IHBvbGljeSA9PSBDRkhUVFBDb29r
aWVTdG9yYWdlQWNjZXB0UG9saWN5QWx3YXlzOworICAgIHN3aXRjaCAoQ0ZIVFRQQ29va2llU3Rv
cmFnZUdldENvb2tpZUFjY2VwdFBvbGljeShjb29raWVTdG9yYWdlKCkuZ2V0KCkpKSB7CisgICAg
Y2FzZSBDRkhUVFBDb29raWVTdG9yYWdlQWNjZXB0UG9saWN5QWx3YXlzOgorICAgICAgICByZXR1
cm4gSFRUUENvb2tpZUFjY2VwdFBvbGljeTo6QWx3YXlzQWNjZXB0OworICAgIGNhc2UgQ0ZIVFRQ
Q29va2llU3RvcmFnZUFjY2VwdFBvbGljeU9ubHlGcm9tTWFpbkRvY3VtZW50RG9tYWluOgorICAg
ICAgICByZXR1cm4gSFRUUENvb2tpZUFjY2VwdFBvbGljeTo6T25seUZyb21NYWluRG9jdW1lbnRE
b21haW47CisgICAgY2FzZSBDRkhUVFBDb29raWVTdG9yYWdlQWNjZXB0UG9saWN5RXhjbHVzaXZl
bHlGcm9tTWFpbkRvY3VtZW50RG9tYWluOgorICAgICAgICByZXR1cm4gSFRUUENvb2tpZUFjY2Vw
dFBvbGljeTo6RXhjbHVzaXZlbHlGcm9tTWFpbkRvY3VtZW50RG9tYWluOworICAgIGRlZmF1bHQ6
CisgICAgICAgIHJldHVybiBIVFRQQ29va2llQWNjZXB0UG9saWN5OjpOZXZlcjsKKyAgICB9CiB9
CiAKIGJvb2wgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpnZXRSYXdDb29raWVzKGNvbnN0IFVSTCYg
Zmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiB1cmwsIE9wdGlvbmFs
PEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJ
RCwgU2hvdWxkQXNrSVRQLCBWZWN0b3I8Q29va2llPiYgcmF3Q29va2llcykgY29uc3QKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2EvSFRUUENvb2tpZUFj
Y2VwdFBvbGljeUNvY29hLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29h
L0hUVFBDb29raWVBY2NlcHRQb2xpY3lDb2NvYS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYwODc3YWU2MmRkYjRi
ODkyOWJkOGU1MWFjMDAzM2MwNDAyYjEwYjMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL0hUVFBDb29raWVBY2NlcHRQb2xpY3lDb2NvYS5o
CkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEtMjAyMCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiSFRUUENvb2tpZUFjY2VwdFBv
bGljeS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2lubGluZSBIVFRQQ29va2llQWNjZXB0
UG9saWN5IHRvSFRUUENvb2tpZUFjY2VwdFBvbGljeShOU0hUVFBDb29raWVBY2NlcHRQb2xpY3kg
cG9saWN5KQoreworICAgIHN3aXRjaCAoc3RhdGljX2Nhc3Q8TlNVSW50ZWdlcj4ocG9saWN5KSkg
eworICAgIGNhc2UgTlNIVFRQQ29va2llQWNjZXB0UG9saWN5QWx3YXlzOgorICAgICAgICByZXR1
cm4gV2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBvbGljeTo6QWx3YXlzQWNjZXB0OworICAgIGNh
c2UgTlNIVFRQQ29va2llQWNjZXB0UG9saWN5TmV2ZXI6CisgICAgICAgIHJldHVybiBXZWJDb3Jl
OjpIVFRQQ29va2llQWNjZXB0UG9saWN5OjpOZXZlcjsKKyAgICBjYXNlIE5TSFRUUENvb2tpZUFj
Y2VwdFBvbGljeU9ubHlGcm9tTWFpbkRvY3VtZW50RG9tYWluOgorICAgICAgICByZXR1cm4gV2Vi
Q29yZTo6SFRUUENvb2tpZUFjY2VwdFBvbGljeTo6T25seUZyb21NYWluRG9jdW1lbnREb21haW47
CisgICAgY2FzZSBOU0hUVFBDb29raWVBY2NlcHRQb2xpY3lFeGNsdXNpdmVseUZyb21NYWluRG9j
dW1lbnREb21haW46CisgICAgICAgIHJldHVybiBXZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0UG9s
aWN5OjpFeGNsdXNpdmVseUZyb21NYWluRG9jdW1lbnREb21haW47CisgICAgfQorCisgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIFdlYkNvcmU6OkhUVFBDb29raWVBY2NlcHRQ
b2xpY3k6Ok5ldmVyOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL2NvY29hL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkNvY29hLm1tIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2NvYS9OZXR3b3JrU3RvcmFnZVNlc3Npb25Db2NvYS5t
bQppbmRleCBiNWVkNGQ1YTMyZDMwY2NkNGQzMTY2MGY2MzY1OTk4OGE0YmNjMjE3Li4xYWJmNDhj
NDMzZjQzYjc1NzgxNjZlMGFkNzQ3MDgwY2U2M2E4NjMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkNvY29hLm1t
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2EvTmV0d29ya1N0b3Jh
Z2VTZXNzaW9uQ29jb2EubW0KQEAgLTI5LDYgKzI5LDcgQEAKICNpbXBvcnQgIkNvb2tpZS5oIgog
I2ltcG9ydCAiQ29va2llUmVxdWVzdEhlYWRlckZpZWxkUHJveHkuaCIKICNpbXBvcnQgIkNvb2tp
ZVN0b3JhZ2VPYnNlcnZlci5oIgorI2ltcG9ydCAiSFRUUENvb2tpZUFjY2VwdFBvbGljeUNvY29h
LmgiCiAjaW1wb3J0ICJTYW1lU2l0ZUluZm8uaCIKICNpbXBvcnQgPHBhbC9zcGkvY2YvQ0ZOZXR3
b3JrU1BJLmg+CiAjaW1wb3J0IDx3dGYvQmxvY2tPYmpDRXhjZXB0aW9ucy5oPgpAQCAtNDQxLDE1
ICs0NDIsMTQgQEAgc3RhdGljIE5TSFRUUENvb2tpZUFjY2VwdFBvbGljeSBodHRwQ29va2llQWNj
ZXB0UG9saWN5KENGSFRUUENvb2tpZVN0b3JhZ2VSZWYgY28KICAgICByZXR1cm4gc3RhdGljX2Nh
c3Q8TlNIVFRQQ29va2llQWNjZXB0UG9saWN5PihDRkhUVFBDb29raWVTdG9yYWdlR2V0Q29va2ll
QWNjZXB0UG9saWN5KGNvb2tpZVN0b3JhZ2UpKTsKIH0KIAotYm9vbCBOZXR3b3JrU3RvcmFnZVNl
c3Npb246OmNvb2tpZXNFbmFibGVkKCkgY29uc3QKK0hUVFBDb29raWVBY2NlcHRQb2xpY3kgTmV0
d29ya1N0b3JhZ2VTZXNzaW9uOjpjb29raWVBY2NlcHRQb2xpY3koKSBjb25zdAogewogICAgIEJF
R0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKLQotICAgIE5TSFRUUENvb2tpZUFjY2VwdFBvbGlj
eSBjb29raWVBY2NlcHRQb2xpY3kgPSBodHRwQ29va2llQWNjZXB0UG9saWN5KGNvb2tpZVN0b3Jh
Z2UoKS5nZXQoKSk7Ci0gICAgcmV0dXJuIGNvb2tpZUFjY2VwdFBvbGljeSA9PSBOU0hUVFBDb29r
aWVBY2NlcHRQb2xpY3lBbHdheXMgfHwgY29va2llQWNjZXB0UG9saWN5ID09IE5TSFRUUENvb2tp
ZUFjY2VwdFBvbGljeU9ubHlGcm9tTWFpbkRvY3VtZW50RG9tYWluIHx8IGNvb2tpZUFjY2VwdFBv
bGljeSA9PSBOU0hUVFBDb29raWVBY2NlcHRQb2xpY3lFeGNsdXNpdmVseUZyb21NYWluRG9jdW1l
bnREb21haW47Ci0KKyAgICBhdXRvIHBvbGljeSA9IGh0dHBDb29raWVBY2NlcHRQb2xpY3koY29v
a2llU3RvcmFnZSgpLmdldCgpKTsKKyAgICByZXR1cm4gdG9IVFRQQ29va2llQWNjZXB0UG9saWN5
KHBvbGljeSk7CiAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKLSAgICByZXR1cm4gZmFs
c2U7CisKKyAgICByZXR1cm4gSFRUUENvb2tpZUFjY2VwdFBvbGljeTo6TmV2ZXI7CiB9CiAKIGJv
b2wgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpnZXRSYXdDb29raWVzKGNvbnN0IFVSTCYgZmlyc3RQ
YXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiBzYW1lU2l0ZUluZm8sIGNvbnN0IFVSTCYgdXJsLCBP
cHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVy
PiBwYWdlSUQsIFNob3VsZEFza0lUUCBzaG91bGRBc2tJVFAsIFZlY3RvcjxDb29raWU+JiByYXdD
b29raWVzKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9jdXJsL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkN1cmwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9jdXJsL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkN1cmwuY3BwCmluZGV4IGQ3
MDQ1MDRlNjQ5OTFkNzRmMzE3MGQ4Mzc4ZGMyZGUyNjQ4MzAyYWIuLjVjZjFlMWVhMmE3MTJhNzAz
M2U4MzkwZGE3ODEyODNjNjIwYjFjYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvY3VybC9OZXR3b3JrU3RvcmFnZVNlc3Npb25DdXJsLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ3Vy
bC5jcHAKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJDb29raWVKYXJEQi5oIgogI2luY2x1
ZGUgIkNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFByb3h5LmgiCiAjaW5jbHVkZSAiQ3VybENvbnRl
eHQuaCIKKyNpbmNsdWRlICJIVFRQQ29va2llQWNjZXB0UG9saWN5LmgiCiAjaW5jbHVkZSAiTmV0
d29ya2luZ0NvbnRleHQuaCIKICNpbmNsdWRlICJSZXNvdXJjZUhhbmRsZS5oIgogI2luY2x1ZGUg
PHd0Zi9GaWxlU3lzdGVtLmg+CkBAIC04NSw5ICs4NiwyMSBAQCB2b2lkIE5ldHdvcmtTdG9yYWdl
U2Vzc2lvbjo6c2V0Q29va2llc0Zyb21ET00oY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBT
YW1lUwogICAgIGNvb2tpZVN0b3JhZ2UoKS5zZXRDb29raWVzRnJvbURPTSgqdGhpcywgZmlyc3RQ
YXJ0eSwgc2FtZVNpdGVJbmZvLCB1cmwsIGZyYW1lSUQsIHBhZ2VJRCwgdmFsdWUpOwogfQogCi1i
b29sIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y29va2llc0VuYWJsZWQoKSBjb25zdAorSFRUUENv
b2tpZUFjY2VwdFBvbGljeSBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmNvb2tpZUFjY2VwdFBvbGlj
eSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIGNvb2tpZVN0b3JhZ2UoKS5jb29raWVzRW5hYmxlZCgq
dGhpcyk7CisgICAgc3dpdGNoIChjb29raWVTdG9yYWdlKCkuY29va2llQWNjZXB0UG9saWN5KCp0
aGlzKSkgeworICAgIGNhc2UgQ29va2llQWNjZXB0UG9saWN5OjpBbHdheXM6CisgICAgICAgIHJl
dHVybiBIVFRQQ29va2llQWNjZXB0UG9saWN5OjpBbHdheXNBY2NlcHQ7CisgICAgY2FzZSBDb29r
aWVBY2NlcHRQb2xpY3k6Ok5ldmVyOgorICAgICAgICByZXR1cm4gSFRUUENvb2tpZUFjY2VwdFBv
bGljeTo6TmV2ZXI7CisgICAgY2FzZSBDb29raWVBY2NlcHRQb2xpY3k6Ok9ubHlGcm9tTWFpbkRv
Y3VtZW50RG9tYWluOgorICAgICAgICByZXR1cm4gSFRUUENvb2tpZUFjY2VwdFBvbGljeTo6T25s
eUZyb21NYWluRG9jdW1lbnREb21haW47CisgICAgY2FzZSBDb29raWVBY2NlcHRQb2xpY3k6OkV4
Y2x1c2l2ZWx5RnJvbU1haW5Eb2N1bWVudERvbWFpbjoKKyAgICAgICAgcmV0dXJuIEhUVFBDb29r
aWVBY2NlcHRQb2xpY3k6OkV4Y2x1c2l2ZWx5RnJvbU1haW5Eb2N1bWVudERvbWFpbjsKKyAgICB9
CisKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gSFRUUENvb2tpZUFjY2Vw
dFBvbGljeTo6T25seUZyb21NYWluRG9jdW1lbnREb21haW47CiB9CiAKIHN0ZDo6cGFpcjxTdHJp
bmcsIGJvb2w+IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y29va2llc0ZvckRPTShjb25zdCBVUkwm
IGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwm
IHVybCwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRl
bnRpZmllcj4gcGFnZUlELCBJbmNsdWRlU2VjdXJlQ29va2llcyBpbmNsdWRlU2VjdXJlQ29va2ll
cywgU2hvdWxkQXNrSVRQKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9zb3VwL05ldHdvcmtTdG9yYWdlU2Vzc2lvblNvdXAuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL05ldHdvcmtTdG9yYWdlU2Vzc2lvblNvdXAuY3Bw
CmluZGV4IGUwNTUwNzZjN2UxZGJjMjQwZWYyMzliN2RlMjA1YzNhODU5NDVmOTIuLjk0N2UyM2U1
YTIyMTYyZTcxNmI1YTMyMDNmNGJiMjk1NmQ5Nzc0YzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9OZXR3b3JrU3RvcmFnZVNlc3Npb25Tb3VwLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvTmV0d29ya1N0b3JhZ2VT
ZXNzaW9uU291cC5jcHAKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJDb29raWUuaCIKICNp
bmNsdWRlICJDb29raWVSZXF1ZXN0SGVhZGVyRmllbGRQcm94eS5oIgogI2luY2x1ZGUgIkdVbmlx
dWVQdHJTb3VwLmgiCisjaW5jbHVkZSAiSFRUUENvb2tpZUFjY2VwdFBvbGljeS5oIgogI2luY2x1
ZGUgIlJlc291cmNlSGFuZGxlLmgiCiAjaW5jbHVkZSAiU291cE5ldHdvcmtTZXNzaW9uLmgiCiAj
aW5jbHVkZSAiVVJMU291cC5oIgpAQCAtMjQxLDEwICsyNDIsMTYgQEAgdm9pZCBOZXR3b3JrU3Rv
cmFnZVNlc3Npb246OnNhdmVDcmVkZW50aWFsVG9QZXJzaXN0ZW50U3RvcmFnZShjb25zdCBQcm90
ZWN0aW9uU3AKICNlbmRpZgogfQogCi1ib29sIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y29va2ll
c0VuYWJsZWQoKSBjb25zdAorSFRUUENvb2tpZUFjY2VwdFBvbGljeSBOZXR3b3JrU3RvcmFnZVNl
c3Npb246OmNvb2tpZUFjY2VwdFBvbGljeSgpIGNvbnN0CiB7Ci0gICAgYXV0byBwb2xpY3kgPSBz
b3VwX2Nvb2tpZV9qYXJfZ2V0X2FjY2VwdF9wb2xpY3koY29va2llU3RvcmFnZSgpKTsKLSAgICBy
ZXR1cm4gcG9saWN5ID09IFNPVVBfQ09PS0lFX0pBUl9BQ0NFUFRfQUxXQVlTIHx8IHBvbGljeSA9
PSBTT1VQX0NPT0tJRV9KQVJfQUNDRVBUX05PX1RISVJEX1BBUlRZOworICAgIHN3aXRjaCAoc291
cF9jb29raWVfamFyX2dldF9hY2NlcHRfcG9saWN5KGNvb2tpZVN0b3JhZ2UoKSkpIHsKKyAgICBj
YXNlIFNPVVBfQ09PS0lFX0pBUl9BQ0NFUFRfQUxXQVlTOgorICAgICAgICByZXR1cm4gSFRUUENv
b2tpZUFjY2VwdFBvbGljeTo6QWx3YXlzQWNjZXB0OworICAgIGNhc2UgU09VUF9DT09LSUVfSkFS
X0FDQ0VQVF9OT19USElSRF9QQVJUWToKKyAgICAgICAgcmV0dXJuIEhUVFBDb29raWVBY2NlcHRQ
b2xpY3k6Ok9ubHlGcm9tTWFpbkRvY3VtZW50RG9tYWluOworICAgIGRlZmF1bHQ6CisgICAgICAg
IHJldHVybiBIVFRQQ29va2llQWNjZXB0UG9saWN5OjpOZXZlcjsKKyAgICB9CiB9CiAKIHN0YXRp
YyBpbmxpbmUgYm9vbCBodHRwT25seUNvb2tpZUV4aXN0cyhjb25zdCBHU0xpc3QqIGNvb2tpZXMs
IGNvbnN0IGdjaGFyKiBuYW1lLCBjb25zdCBnY2hhciogcGF0aCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ29va2llcy9XZWJDb29raWVNYW5hZ2VyLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ29va2llcy9XZWJDb29raWVNYW5hZ2VyLmNwcApp
bmRleCA1ZDZmMDUyMjE0OGVhZjZjYTBhOTJlOTYyZTRlODI4ZTdkYTdmNzJiLi5mY2UyMzg5ODdh
Nzg1MGYxOGM5ZjMwNmM1MGU5OGNlOTg4ZDEyNWZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlci5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIuY3BwCkBAIC0x
NDQsMTMgKzE0NCwxNCBAQCB2b2lkIFdlYkNvb2tpZU1hbmFnZXI6OnN0b3BPYnNlcnZpbmdDb29r
aWVDaGFuZ2VzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKIHZvaWQgV2ViQ29va2llTWFuYWdl
cjo6c2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShIVFRQQ29va2llQWNjZXB0UG9saWN5IHBvbGlj
eSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAg
IHBsYXRmb3JtU2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShwb2xpY3kpOworICAgIG1fcHJvY2Vz
cy5jb29raWVBY2NlcHRQb2xpY3lDaGFuZ2VkKHBvbGljeSk7CiAKICAgICBjb21wbGV0aW9uSGFu
ZGxlcigpOwogfQogCiB2b2lkIFdlYkNvb2tpZU1hbmFnZXI6OmdldEhUVFBDb29raWVBY2NlcHRQ
b2xpY3koQ29tcGxldGlvbkhhbmRsZXI8dm9pZChIVFRQQ29va2llQWNjZXB0UG9saWN5KT4mJiBj
b21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBjb21wbGV0aW9uSGFuZGxlcihwbGF0Zm9ybUdldEhU
VFBDb29raWVBY2NlcHRQb2xpY3koKSk7CisgICAgY29tcGxldGlvbkhhbmRsZXIobV9wcm9jZXNz
LmRlZmF1bHRTdG9yYWdlU2Vzc2lvbigpLmNvb2tpZUFjY2VwdFBvbGljeSgpKTsKIH0KIAogfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIuaAppbmRleCA0MDZiYjkwYTc2NWY1YzlmNmZl
M2Y5Y2NjOTgxZjQyZGQxNGY4OWJhLi5jYTdmNTVlODY2YmRhZDRiMWUzNTJlOGY2NDA1N2JhYmM0
NjI4MzJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Nvb2tpZXMv
V2ViQ29va2llTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ29v
a2llcy9XZWJDb29raWVNYW5hZ2VyLmgKQEAgLTM5LDEyICszOSwxMiBAQAogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiBzdHJ1Y3QgQ29va2llOworZW51bSBjbGFzcyBIVFRQQ29va2llQWNjZXB0UG9s
aWN5IDogdWludDhfdDsKIH0KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIE5ldHdvcmtQ
cm9jZXNzOwotZW51bSBjbGFzcyBIVFRQQ29va2llQWNjZXB0UG9saWN5IDogdWludDhfdDsKIAog
Y2xhc3MgV2ViQ29va2llTWFuYWdlciA6IHB1YmxpYyBOZXR3b3JrUHJvY2Vzc1N1cHBsZW1lbnQs
IHB1YmxpYyBJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FU
RUQ7CkBAIC01NSw3ICs1NSw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBjb25zdCBjaGFyKiBz
dXBwbGVtZW50TmFtZSgpOwogCi0gICAgdm9pZCBzZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KEhU
VFBDb29raWVBY2NlcHRQb2xpY3ksIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CisgICAg
dm9pZCBzZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KFdlYkNvcmU6OkhUVFBDb29raWVBY2NlcHRQ
b2xpY3ksIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAKICNpZiBVU0UoU09VUCkKICAg
ICB2b2lkIHNldENvb2tpZVBlcnNpc3RlbnRTdG9yYWdlKFBBTDo6U2Vzc2lvbklELCBjb25zdCBT
dHJpbmcmIHN0b3JhZ2VQYXRoLCBTb3VwQ29va2llUGVyc2lzdGVudFN0b3JhZ2VUeXBlKTsKQEAg
LTc5LDkgKzc5LDggQEAgcHJpdmF0ZToKICAgICB2b2lkIGdldEFsbENvb2tpZXMoUEFMOjpTZXNz
aW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4mJik+
JiYpOwogICAgIHZvaWQgZ2V0Q29va2llcyhQQUw6OlNlc3Npb25JRCwgY29uc3QgVVJMJiwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8V2ViQ29yZTo6Q29va2llPiYmKT4mJik7CiAKLSAg
ICB2b2lkIHBsYXRmb3JtU2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShIVFRQQ29va2llQWNjZXB0
UG9saWN5KTsKLSAgICB2b2lkIGdldEhUVFBDb29raWVBY2NlcHRQb2xpY3koQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChIVFRQQ29va2llQWNjZXB0UG9saWN5KT4mJik7Ci0gICAgSFRUUENvb2tpZUFj
Y2VwdFBvbGljeSBwbGF0Zm9ybUdldEhUVFBDb29raWVBY2NlcHRQb2xpY3koKTsKKyAgICB2b2lk
IHBsYXRmb3JtU2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShXZWJDb3JlOjpIVFRQQ29va2llQWNj
ZXB0UG9saWN5KTsKKyAgICB2b2lkIGdldEhUVFBDb29raWVBY2NlcHRQb2xpY3koQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChXZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0UG9saWN5KT4mJik7CiAKICAg
ICB2b2lkIHN0YXJ0T2JzZXJ2aW5nQ29va2llQ2hhbmdlcyhQQUw6OlNlc3Npb25JRCk7CiAgICAg
dm9pZCBzdG9wT2JzZXJ2aW5nQ29va2llQ2hhbmdlcyhQQUw6OlNlc3Npb25JRCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdl
ci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ29va2llcy9XZWJD
b29raWVNYW5hZ2VyLm1lc3NhZ2VzLmluCmluZGV4IGFmNGMwOWI3MzFmYjA0OThkYTNjNTM3ODJi
NTgzZWJiOGIzMzA0ZDEuLmFjZDc1NDQwZDgzZjM0NjY1MGM5ZjMzYjc1YjVkNWQwOTM1MjEzYmEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ29va2llcy9XZWJDb29r
aWVNYW5hZ2VyLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
Q29va2llcy9XZWJDb29raWVNYW5hZ2VyLm1lc3NhZ2VzLmluCkBAIC0zNSw4ICszNSw4IEBAIG1l
c3NhZ2VzIC0+IFdlYkNvb2tpZU1hbmFnZXIgTm90UmVmQ291bnRlZCB7CiAgICAgdm9pZCBEZWxl
dGVDb29raWUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBzdHJ1Y3QgV2ViQ29yZTo6Q29va2ll
IGNvb2tpZSkgLT4gKCkgQXN5bmMKICAgICB2b2lkIERlbGV0ZUFsbENvb2tpZXNNb2RpZmllZFNp
bmNlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2FsbFRpbWUgdGltZSkgLT4gKCkgQXN5bmMK
IAotICAgIHZvaWQgU2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShlbnVtOnVpbnQ4X3QgV2ViS2l0
OjpIVFRQQ29va2llQWNjZXB0UG9saWN5IHBvbGljeSkgLT4gKCkgQXN5bmMKLSAgICB2b2lkIEdl
dEhUVFBDb29raWVBY2NlcHRQb2xpY3koKSAtPiAoZW51bTp1aW50OF90IFdlYktpdDo6SFRUUENv
b2tpZUFjY2VwdFBvbGljeSBwb2xpY3kpIEFzeW5jCisgICAgdm9pZCBTZXRIVFRQQ29va2llQWNj
ZXB0UG9saWN5KGVudW06dWludDhfdCBXZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0UG9saWN5IHBv
bGljeSkgLT4gKCkgQXN5bmMKKyAgICB2b2lkIEdldEhUVFBDb29raWVBY2NlcHRQb2xpY3koKSAt
PiAoZW51bTp1aW50OF90IFdlYkNvcmU6OkhUVFBDb29raWVBY2NlcHRQb2xpY3kgcG9saWN5KSBB
c3luYwogICAgIAogICAgIHZvaWQgU3RhcnRPYnNlcnZpbmdDb29raWVDaGFuZ2VzKFBBTDo6U2Vz
c2lvbklEIHNlc3Npb25JRCkKICAgICB2b2lkIFN0b3BPYnNlcnZpbmdDb29raWVDaGFuZ2VzKFBB
TDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvQ29va2llcy9jdXJsL1dlYkNvb2tpZU1hbmFnZXJDdXJsLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ29va2llcy9jdXJsL1dlYkNvb2tpZU1hbmFnZXJDdXJsLmNw
cAppbmRleCBjMWEzNmNkZTliNWVlZTZmNzUxOWZlMDEzMGViMDM3ZmFlMjU3MjFiLi43YTVjYjM5
NmUyOWM4OGQ4NDgwZmExY2I2MzcwY2JjNDViZmZlN2RlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL0Nvb2tpZXMvY3VybC9XZWJDb29raWVNYW5hZ2VyQ3VybC5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Db29raWVzL2N1cmwvV2ViQ29va2ll
TWFuYWdlckN1cmwuY3BwCkBAIC0yNiw4ICsyNiw4IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAj
aW5jbHVkZSAiV2ViQ29va2llTWFuYWdlci5oIgogCi0jaW5jbHVkZSAiSFRUUENvb2tpZUFjY2Vw
dFBvbGljeS5oIgogI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzLmgiCisjaW5jbHVkZSA8V2ViQ29y
ZS9IVFRQQ29va2llQWNjZXB0UG9saWN5Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9OZXR3b3JrU3Rv
cmFnZVNlc3Npb24uaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC01NywyMiArNTcsNCBAQCB2
b2lkIFdlYkNvb2tpZU1hbmFnZXI6OnBsYXRmb3JtU2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShI
VFRQQ29va2llQWNjZXB0UG9saWN5CiAgICAgfSk7CiB9CiAKLUhUVFBDb29raWVBY2NlcHRQb2xp
Y3kgV2ViQ29va2llTWFuYWdlcjo6cGxhdGZvcm1HZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KCkK
LXsKLSAgICBjb25zdCBhdXRvJiBuZXR3b3JrU3RvcmFnZVNlc3Npb24gPSBtX3Byb2Nlc3MuZGVm
YXVsdFN0b3JhZ2VTZXNzaW9uKCk7Ci0gICAgc3dpdGNoIChuZXR3b3JrU3RvcmFnZVNlc3Npb24u
Y29va2llU3RvcmFnZSgpLmNvb2tpZUFjY2VwdFBvbGljeShuZXR3b3JrU3RvcmFnZVNlc3Npb24p
KSB7Ci0gICAgY2FzZSBDb29raWVBY2NlcHRQb2xpY3k6OkFsd2F5czoKLSAgICAgICAgcmV0dXJu
IEhUVFBDb29raWVBY2NlcHRQb2xpY3k6OkFsd2F5c0FjY2VwdDsKLSAgICBjYXNlIENvb2tpZUFj
Y2VwdFBvbGljeTo6TmV2ZXI6Ci0gICAgICAgIHJldHVybiBIVFRQQ29va2llQWNjZXB0UG9saWN5
OjpOZXZlcjsKLSAgICBjYXNlIENvb2tpZUFjY2VwdFBvbGljeTo6T25seUZyb21NYWluRG9jdW1l
bnREb21haW46Ci0gICAgICAgIHJldHVybiBIVFRQQ29va2llQWNjZXB0UG9saWN5OjpPbmx5RnJv
bU1haW5Eb2N1bWVudERvbWFpbjsKLSAgICBjYXNlIENvb2tpZUFjY2VwdFBvbGljeTo6RXhjbHVz
aXZlbHlGcm9tTWFpbkRvY3VtZW50RG9tYWluOgotICAgICAgICByZXR1cm4gSFRUUENvb2tpZUFj
Y2VwdFBvbGljeTo6RXhjbHVzaXZlbHlGcm9tTWFpbkRvY3VtZW50RG9tYWluOwotICAgIH0KLQot
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiBIVFRQQ29va2llQWNjZXB0UG9s
aWN5OjpPbmx5RnJvbU1haW5Eb2N1bWVudERvbWFpbjsKLX0KLQogfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Nvb2tpZXMvbWFj
L1dlYkNvb2tpZU1hbmFnZXJNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Nv
b2tpZXMvbWFjL1dlYkNvb2tpZU1hbmFnZXJNYWMubW0KaW5kZXggYmM5ZTkyNDNkNDI3MzhkMGZl
MmM2MjhjZDdkNDE5ZWExYTQwNmVmNy4uMTlmNTg3OGQ2NjJjMzZiYmQ3ZmM2Mzg0N2JjZDc4YWM5
YmJjMmI5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Db29raWVz
L21hYy9XZWJDb29raWVNYW5hZ2VyTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvQ29va2llcy9tYWMvV2ViQ29va2llTWFuYWdlck1hYy5tbQpAQCAtMjYsOSArMjYsOSBA
QAogI2ltcG9ydCAiY29uZmlnLmgiCiAjaW1wb3J0ICJXZWJDb29raWVNYW5hZ2VyLmgiCiAKLSNp
bXBvcnQgIkhUVFBDb29raWVBY2NlcHRQb2xpY3kuaCIKICNpbXBvcnQgIk5ldHdvcmtQcm9jZXNz
LmgiCiAjaW1wb3J0ICJOZXR3b3JrU2Vzc2lvbi5oIgorI2ltcG9ydCA8V2ViQ29yZS9IVFRQQ29v
a2llQWNjZXB0UG9saWN5Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL05ldHdvcmtTdG9yYWdlU2Vzc2lv
bi5oPgogI2ltcG9ydCA8cGFsL3NwaS9jZi9DRk5ldHdvcmtTUEkuaD4KICNpbXBvcnQgPHd0Zi9Q
cm9jZXNzUHJpdmlsZWdlLmg+CkBAIC02NSwyMyArNjUsNCBAQCB2b2lkIFdlYkNvb2tpZU1hbmFn
ZXI6OnBsYXRmb3JtU2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShIVFRQQ29va2llQWNjZXB0UG9s
aWN5CiAgICAgfSk7CiB9CiAKLUhUVFBDb29raWVBY2NlcHRQb2xpY3kgV2ViQ29va2llTWFuYWdl
cjo6cGxhdGZvcm1HZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KCkKLXsKLSAgICBBU1NFUlQoaGFz
UHJvY2Vzc1ByaXZpbGVnZShQcm9jZXNzUHJpdmlsZWdlOjpDYW5BY2Nlc3NSYXdDb29raWVzKSk7
Ci0KLSAgICBzd2l0Y2ggKFtbTlNIVFRQQ29va2llU3RvcmFnZSBzaGFyZWRIVFRQQ29va2llU3Rv
cmFnZV0gY29va2llQWNjZXB0UG9saWN5XSkgewotICAgIGNhc2UgTlNIVFRQQ29va2llQWNjZXB0
UG9saWN5QWx3YXlzOgotICAgICAgICByZXR1cm4gSFRUUENvb2tpZUFjY2VwdFBvbGljeTo6QWx3
YXlzQWNjZXB0OwotICAgIGNhc2UgTlNIVFRQQ29va2llQWNjZXB0UG9saWN5T25seUZyb21NYWlu
RG9jdW1lbnREb21haW46Ci0gICAgICAgIHJldHVybiBIVFRQQ29va2llQWNjZXB0UG9saWN5OjpP
bmx5RnJvbU1haW5Eb2N1bWVudERvbWFpbjsKLSAgICBjYXNlIE5TSFRUUENvb2tpZUFjY2VwdFBv
bGljeUV4Y2x1c2l2ZWx5RnJvbU1haW5Eb2N1bWVudERvbWFpbjoKLSAgICAgICAgcmV0dXJuIEhU
VFBDb29raWVBY2NlcHRQb2xpY3k6OkV4Y2x1c2l2ZWx5RnJvbU1haW5Eb2N1bWVudERvbWFpbjsK
LSAgICBjYXNlIE5TSFRUUENvb2tpZUFjY2VwdFBvbGljeU5ldmVyOgotICAgICAgICByZXR1cm4g
SFRUUENvb2tpZUFjY2VwdFBvbGljeTo6TmV2ZXI7Ci0gICAgfQotCi0gICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7Ci0gICAgcmV0dXJuIEhUVFBDb29raWVBY2NlcHRQb2xpY3k6OkFsd2F5c0FjY2Vw
dDsKLX0KLQogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL0Nvb2tpZXMvc291cC9XZWJDb29raWVNYW5hZ2VyU291cC5jcHAgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Nvb2tpZXMvc291cC9XZWJDb29raWVNYW5hZ2Vy
U291cC5jcHAKaW5kZXggZWE5MTUyMmMwOWE0ODBjZDYyZjRjODlhYzg0MmM3ZWQxMzIyMWI4MS4u
Y2JmY2FlZTU2M2ExMjY2OGQ0MzIxOTYyYzA2OGYyOTIxOGJlMzI1OSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Db29raWVzL3NvdXAvV2ViQ29va2llTWFuYWdlclNv
dXAuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ29va2llcy9zb3VwL1dl
YkNvb2tpZU1hbmFnZXJTb3VwLmNwcApAQCAtMjYsMTAgKzI2LDEwIEBACiAjaW5jbHVkZSAiY29u
ZmlnLmgiCiAjaW5jbHVkZSAiV2ViQ29va2llTWFuYWdlci5oIgogCi0jaW5jbHVkZSAiSFRUUENv
b2tpZUFjY2VwdFBvbGljeS5oIgogI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzLmgiCiAjaW5jbHVk
ZSAiTmV0d29ya1Nlc3Npb25Tb3VwLmgiCiAjaW5jbHVkZSAiU291cENvb2tpZVBlcnNpc3RlbnRT
dG9yYWdlVHlwZS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvSFRUUENvb2tpZUFjY2VwdFBvbGljeS5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9Tb3VwTmV0d29ya1Nlc3Npb24uaD4KICNpbmNsdWRlIDxsaWJzb3VwL3NvdXAuaD4K
QEAgLTYwLDIxICs2MCw2IEBAIHZvaWQgV2ViQ29va2llTWFuYWdlcjo6cGxhdGZvcm1TZXRIVFRQ
Q29va2llQWNjZXB0UG9saWN5KEhUVFBDb29raWVBY2NlcHRQb2xpY3kKICAgICB9KTsKIH0KIAot
SFRUUENvb2tpZUFjY2VwdFBvbGljeSBXZWJDb29raWVNYW5hZ2VyOjpwbGF0Zm9ybUdldEhUVFBD
b29raWVBY2NlcHRQb2xpY3koKQotewotICAgIHN3aXRjaCAoc291cF9jb29raWVfamFyX2dldF9h
Y2NlcHRfcG9saWN5KG1fcHJvY2Vzcy5kZWZhdWx0U3RvcmFnZVNlc3Npb24oKS5jb29raWVTdG9y
YWdlKCkpKSB7Ci0gICAgY2FzZSBTT1VQX0NPT0tJRV9KQVJfQUNDRVBUX0FMV0FZUzoKLSAgICAg
ICAgcmV0dXJuIEhUVFBDb29raWVBY2NlcHRQb2xpY3k6OkFsd2F5c0FjY2VwdDsKLSAgICBjYXNl
IFNPVVBfQ09PS0lFX0pBUl9BQ0NFUFRfTkVWRVI6Ci0gICAgICAgIHJldHVybiBIVFRQQ29va2ll
QWNjZXB0UG9saWN5OjpOZXZlcjsKLSAgICBjYXNlIFNPVVBfQ09PS0lFX0pBUl9BQ0NFUFRfTk9f
VEhJUkRfUEFSVFk6Ci0gICAgICAgIHJldHVybiBIVFRQQ29va2llQWNjZXB0UG9saWN5OjpPbmx5
RnJvbU1haW5Eb2N1bWVudERvbWFpbjsKLSAgICB9Ci0KLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKLSAgICByZXR1cm4gSFRUUENvb2tpZUFjY2VwdFBvbGljeTo6T25seUZyb21NYWluRG9jdW1l
bnREb21haW47Ci19Ci0KIHZvaWQgV2ViQ29va2llTWFuYWdlcjo6c2V0Q29va2llUGVyc2lzdGVu
dFN0b3JhZ2UoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIHN0b3JhZ2VQ
YXRoLCBTb3VwQ29va2llUGVyc2lzdGVudFN0b3JhZ2VUeXBlIHN0b3JhZ2VUeXBlKQogewogICAg
IGlmIChhdXRvKiBuZXR3b3JrU2Vzc2lvbiA9IG1fcHJvY2Vzcy5uZXR3b3JrU2Vzc2lvbihzZXNz
aW9uSUQpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAppbmRleCBhMjZjMTM1NjdiOTFiM2U5
MDg3MDJiNGE2OTdkMjNjNTcyMjZhMTZmLi5hN2JjMTQwZTM3NTllMGMxYTNkMzMzZDQ0MGI5MGU3
YWU2OTkxZWVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcApAQCAtNjMsNiArNjMsNyBA
QAogI2luY2x1ZGUgIldlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbk1lc3NhZ2VzLmgiCiAj
aW5jbHVkZSAiV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMuaCIKICNpbmNsdWRlIDxXZWJDb3Jl
L0RvY3VtZW50U3RvcmFnZUFjY2Vzcy5oPgorI2luY2x1ZGUgPFdlYkNvcmUvSFRUUENvb2tpZUFj
Y2VwdFBvbGljeS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUxvYWRPYnNlcnZlci5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvUmVzb3VyY2VMb2FkU3RhdGlzdGljcy5oPgpAQCAtNDY5LDYgKzQ3MCwxMSBAQCB2b2lk
IE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpzZXRPbkxpbmVTdGF0ZShib29sIGlzT25M
aW5lKQogICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3NDb25u
ZWN0aW9uOjpTZXRPbkxpbmVTdGF0ZShpc09uTGluZSksIDApOwogfQogCit2b2lkIE5ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzOjpjb29raWVBY2NlcHRQb2xpY3lDaGFuZ2VkKEhUVFBDb29r
aWVBY2NlcHRQb2xpY3kgbmV3UG9saWN5KQoreworICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNz
YWdlczo6TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpDb29raWVBY2NlcHRQb2xpY3lDaGFuZ2Vk
KG5ld1BvbGljeSksIDApOworfQorCiB2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
OjpyZW1vdmVMb2FkSWRlbnRpZmllcihSZXNvdXJjZUxvYWRJZGVudGlmaWVyIGlkZW50aWZpZXIp
CiB7CiAgICAgUkVMRUFTRV9BU1NFUlQoaWRlbnRpZmllcik7CkBAIC01OTksMTQgKzYwNSw2IEBA
IHZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnNldENvb2tpZXNGcm9tRE9NKGNv
bnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uCiAjZW5kaWYKIH0KIAotdm9pZCBOZXR3b3JrQ29ubmVj
dGlvblRvV2ViUHJvY2Vzczo6Y29va2llc0VuYWJsZWQoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChi
b29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKLXsKLSAgICBhdXRvKiBuZXR3b3JrU3RvcmFnZVNl
c3Npb24gPSBzdG9yYWdlU2Vzc2lvbigpOwotICAgIGlmICghbmV0d29ya1N0b3JhZ2VTZXNzaW9u
KQotICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOwotICAgIGNvbXBsZXRp
b25IYW5kbGVyKG5ldHdvcmtTdG9yYWdlU2Vzc2lvbi0+Y29va2llc0VuYWJsZWQoKSk7Ci19Ci0K
IHZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNvb2tpZVJlcXVlc3RIZWFkZXJG
aWVsZFZhbHVlKGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiBzYW1l
U2l0ZUluZm8sIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1l
SUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIEluY2x1ZGVTZWN1cmVDb29raWVz
IGluY2x1ZGVTZWN1cmVDb29raWVzLCBTaG91bGRBc2tJVFAgc2hvdWxkQXNrSVRQLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKFN0cmluZywgYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAg
ICAgYXV0byogbmV0d29ya1N0b3JhZ2VTZXNzaW9uID0gc3RvcmFnZVNlc3Npb24oKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MuaAppbmRleCBmMmU5ZWFjZWQ4YWMxOWI5YzY3YWExMWZlODIxY2M0MmE5
OWY4NTQ3Li43ZDQ5OWMxM2Y5MmFlYmI2MTgzMTE0Y2U3MDE0YzE1ODMwNmRjNmI2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVj
dGlvblRvV2ViUHJvY2Vzcy5oCkBAIC02MSw2ICs2MSw3IEBAIGVudW0gY2xhc3MgU3RvcmFnZUFj
Y2Vzc1dhc0dyYW50ZWQgOiBib29sOwogZW51bSBjbGFzcyBTaG91bGRBc2tJVFAgOiBib29sOwog
c3RydWN0IFNhbWVTaXRlSW5mbzsKIAorZW51bSBjbGFzcyBIVFRQQ29va2llQWNjZXB0UG9saWN5
IDogdWludDhfdDsKIGVudW0gY2xhc3MgSW5jbHVkZVNlY3VyZUNvb2tpZXMgOiBib29sOwogfQog
CkBAIC0xNjcsNiArMTY4LDggQEAgcHVibGljOgogCiAgICAgTmV0d29ya1NjaGVtZVJlZ2lzdHJ5
JiBzY2hlbWVSZWdpc3RyeSgpIHsgcmV0dXJuIG1fc2NoZW1lUmVnaXN0cnkuZ2V0KCk7IH0KIAor
ICAgIHZvaWQgY29va2llQWNjZXB0UG9saWN5Q2hhbmdlZChXZWJDb3JlOjpIVFRQQ29va2llQWNj
ZXB0UG9saWN5KTsKKwogcHJpdmF0ZToKICAgICBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cyhOZXR3b3JrUHJvY2VzcyYsIFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyLCBQQUw6OlNlc3Np
b25JRCwgSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyKTsKIApAQCAtMjAwLDcgKzIwMyw2IEBA
IHByaXZhdGU6CiAKICAgICB2b2lkIGNvb2tpZXNGb3JET00oY29uc3QgVVJMJiBmaXJzdFBhcnR5
LCBjb25zdCBXZWJDb3JlOjpTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmLCBXZWJDb3JlOjpGcmFt
ZUlkZW50aWZpZXIsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpJbmNsdWRlU2Vj
dXJlQ29va2llcywgV2ViQ29yZTo6U2hvdWxkQXNrSVRQLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KFN0cmluZyBjb29raWVTdHJpbmcsIGJvb2wgc2VjdXJlQ29va2llc0FjY2Vzc2VkKT4mJik7CiAg
ICAgdm9pZCBzZXRDb29raWVzRnJvbURPTShjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdl
YkNvcmU6OlNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
ciwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OlNob3VsZEFza0lUUCwgY29uc3Qg
U3RyaW5nJik7Ci0gICAgdm9pZCBjb29raWVzRW5hYmxlZChDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KGJvb2wpPiYmKTsKICAgICB2b2lkIGNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKGNvbnN0
IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6U2FtZVNpdGVJbmZvJiwgY29uc3QgVVJM
JiwgT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiwgT3B0aW9uYWw8V2ViQ29yZTo6
UGFnZUlkZW50aWZpZXI+LCBXZWJDb3JlOjpJbmNsdWRlU2VjdXJlQ29va2llcywgV2ViQ29yZTo6
U2hvdWxkQXNrSVRQLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0cmluZyBjb29raWVTdHJpbmcs
IGJvb2wgc2VjdXJlQ29va2llc0FjY2Vzc2VkKT4mJik7CiAgICAgdm9pZCBnZXRSYXdDb29raWVz
KGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6U2FtZVNpdGVJbmZvJiwgY29u
c3QgVVJMJiwgT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiwgT3B0aW9uYWw8V2Vi
Q29yZTo6UGFnZUlkZW50aWZpZXI+LCBXZWJDb3JlOjpTaG91bGRBc2tJVFAsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4mJik+JiYpOwogICAgIHZvaWQgZGVs
ZXRlQ29va2llKGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYgY29va2llTmFtZSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgppbmRleCAzYmNkZTYwMDFjZjI3Yzhh
YzE5OTU3MzIyNjQ3ODViNWNiOGRjY2I0Li44N2I2OTRlMjE0MGEzNmRmZjQ4Y2Q2YjMwN2EzOTIx
OGE5ODNjZDY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4K
QEAgLTM2LDcgKzM2LDYgQEAgbWVzc2FnZXMgLT4gTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MgTGVnYWN5UmVjZWl2ZXIgewogCiAgICAgQ29va2llc0ZvckRPTShVUkwgZmlyc3RQYXJ0eSwg
c3RydWN0IFdlYkNvcmU6OlNhbWVTaXRlSW5mbyBzYW1lU2l0ZUluZm8sIFVSTCB1cmwsIFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdl
SUQsIGVudW06Ym9vbCBXZWJDb3JlOjpJbmNsdWRlU2VjdXJlQ29va2llcyBpbmNsdWRlU2VjdXJl
Q29va2llcywgZW51bTpib29sIFdlYkNvcmU6OlNob3VsZEFza0lUUCBzaG91bGRBc2tJVFApIC0+
IChTdHJpbmcgY29va2llU3RyaW5nLCBib29sIGRpZEFjY2Vzc1NlY3VyZUNvb2tpZXMpIFN5bmNo
cm9ub3VzCiAgICAgU2V0Q29va2llc0Zyb21ET00oVVJMIGZpcnN0UGFydHksIHN0cnVjdCBXZWJD
b3JlOjpTYW1lU2l0ZUluZm8gc2FtZVNpdGVJbmZvLCBVUkwgdXJsLCBXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXIgZnJhbWVJRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCBlbnVtOmJv
b2wgV2ViQ29yZTo6U2hvdWxkQXNrSVRQIHNob3VsZEFza0lUUCwgU3RyaW5nIGNvb2tpZVN0cmlu
ZykKLSAgICBDb29raWVzRW5hYmxlZCgpIC0+IChib29sIGVuYWJsZWQpIFN5bmNocm9ub3VzCiAg
ICAgQ29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoVVJMIGZpcnN0UGFydHksIHN0cnVjdCBX
ZWJDb3JlOjpTYW1lU2l0ZUluZm8gc2FtZVNpdGVJbmZvLCBVUkwgdXJsLCBPcHRpb25hbDxXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVu
dGlmaWVyPiBwYWdlSUQsIGVudW06Ym9vbCBXZWJDb3JlOjpJbmNsdWRlU2VjdXJlQ29va2llcyBp
bmNsdWRlU2VjdXJlQ29va2llcywgZW51bTpib29sIFdlYkNvcmU6OlNob3VsZEFza0lUUCBzaG91
bGRBc2tJVFApIC0+IChTdHJpbmcgY29va2llU3RyaW5nLCBib29sIGRpZEFjY2Vzc1NlY3VyZUNv
b2tpZXMpIFN5bmNocm9ub3VzCiAgICAgR2V0UmF3Q29va2llcyhVUkwgZmlyc3RQYXJ0eSwgc3Ry
dWN0IFdlYkNvcmU6OlNhbWVTaXRlSW5mbyBzYW1lU2l0ZUluZm8sIFVSTCB1cmwsIE9wdGlvbmFs
PFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9uYWw8V2ViQ29yZTo6UGFn
ZUlkZW50aWZpZXI+IHBhZ2VJRCwgZW51bTpib29sIFdlYkNvcmU6OlNob3VsZEFza0lUUCBzaG91
bGRBc2tJVFApIC0+IChWZWN0b3I8V2ViQ29yZTo6Q29va2llPiBjb29raWVzKSBTeW5jaHJvbm91
cwogICAgIERlbGV0ZUNvb2tpZShVUkwgdXJsLCBTdHJpbmcgY29va2llTmFtZSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKaW5kZXggNDcxMDAz
ZGRlNzQ5YTY0MmYwZjEwZTNlMThmMTQzYmU2ZDZiY2UzYy4uMmUzNDlmMTBkYTMxYjcxOGM5NGYz
OWQyNzUxZmM5ZDI5NmY0MGJjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUHJvY2Vzcy5jcHAKQEAgLTcwLDYgKzcwLDcgQEAKICNpbmNsdWRlIDxXZWJDb3Jl
L0ROUy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRGVwcmVjYXRlZEdsb2JhbFNldHRpbmdzLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9EaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oPgorI2luY2x1ZGUgPFdl
YkNvcmUvSFRUUENvb2tpZUFjY2VwdFBvbGljeS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTGVnYWN5
U2NoZW1lUmVnaXN0cnkuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0xvZ0luaXRpYWxpemF0aW9uLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9NSU1FVHlwZVJlZ2lzdHJ5Lmg+CkBAIC0zODIsMTEgKzM4Mywx
MSBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjppbml0aWFsaXplQ29ubmVjdGlvbihJUEM6OkNvbm5l
Y3Rpb24qIGNvbm5lY3Rpb24pCiAgICAgICAgIHN1cHBsZW1lbnQtPmluaXRpYWxpemVDb25uZWN0
aW9uKGNvbm5lY3Rpb24pOwogfQogCi12b2lkIE5ldHdvcmtQcm9jZXNzOjpjcmVhdGVOZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2VzcyhQcm9jZXNzSWRlbnRpZmllciBpZGVudGlmaWVyLCBQQUw6
OlNlc3Npb25JRCBzZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8SVBD
OjpBdHRhY2htZW50PiYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgTmV0d29ya1Byb2Nl
c3M6OmNyZWF0ZU5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzKFByb2Nlc3NJZGVudGlmaWVy
IGlkZW50aWZpZXIsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChPcHRpb25hbDxJUEM6OkF0dGFjaG1lbnQ+JiYsIEhUVFBDb29raWVBY2NlcHRQb2xpY3kp
PiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIGF1dG8gaXBjQ29ubmVjdGlvbiA9IGNyZWF0
ZUlQQ0Nvbm5lY3Rpb25QYWlyKCk7CiAgICAgaWYgKCFpcGNDb25uZWN0aW9uKSB7Ci0gICAgICAg
IGNvbXBsZXRpb25IYW5kbGVyKHsgfSk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHsgfSwg
SFRUUENvb2tpZUFjY2VwdFBvbGljeTo6TmV2ZXIpOwogICAgICAgICByZXR1cm47CiAgICAgfQog
CkBAIC0zOTYsNyArMzk3LDggQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6Y3JlYXRlTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MoUHJvY2Vzc0lkZW50aWZpZXIgaWRlbnQKICAgICBBU1NFUlQo
IW1fd2ViUHJvY2Vzc0Nvbm5lY3Rpb25zLmNvbnRhaW5zKGlkZW50aWZpZXIpKTsKICAgICBtX3dl
YlByb2Nlc3NDb25uZWN0aW9ucy5hZGQoaWRlbnRpZmllciwgV1RGTW92ZShuZXdDb25uZWN0aW9u
KSk7CiAKLSAgICBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKGlwY0Nvbm5lY3Rpb24tPnNlY29u
ZCkpOworICAgIGF1dG8qIHN0b3JhZ2UgPSBzdG9yYWdlU2Vzc2lvbihzZXNzaW9uSUQpOworICAg
IGNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUoaXBjQ29ubmVjdGlvbi0+c2Vjb25kKSwgc3RvcmFn
ZSA/IHN0b3JhZ2UtPmNvb2tpZUFjY2VwdFBvbGljeSgpIDogSFRUUENvb2tpZUFjY2VwdFBvbGlj
eTo6TmV2ZXIpOwogCiAgICAgY29ubmVjdGlvbi5zZXRPbkxpbmVTdGF0ZShOZXR3b3JrU3RhdGVO
b3RpZmllcjo6c2luZ2xldG9uKCkub25MaW5lKCkpOwogCkBAIC01MjEsNiArNTIzLDEyIEBAIHZv
aWQgTmV0d29ya1Byb2Nlc3M6OmVuc3VyZVNlc3Npb24oY29uc3QgUEFMOjpTZXNzaW9uSUQmIHNl
c3Npb25JRCwgYm9vbCBzaG91bGRVCiAjZW5kaWYKIH0KIAordm9pZCBOZXR3b3JrUHJvY2Vzczo6
Y29va2llQWNjZXB0UG9saWN5Q2hhbmdlZChIVFRQQ29va2llQWNjZXB0UG9saWN5IG5ld1BvbGlj
eSkKK3sKKyAgICBmb3IgKGF1dG8mIGNvbm5lY3Rpb24gOiBtX3dlYlByb2Nlc3NDb25uZWN0aW9u
cy52YWx1ZXMoKSkKKyAgICAgICAgY29ubmVjdGlvbi0+Y29va2llQWNjZXB0UG9saWN5Q2hhbmdl
ZChuZXdQb2xpY3kpOworfQorCiBXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24qIE5ldHdv
cmtQcm9jZXNzOjpzdG9yYWdlU2Vzc2lvbihjb25zdCBQQUw6OlNlc3Npb25JRCYgc2Vzc2lvbklE
KSBjb25zdAogewogICAgIGlmIChzZXNzaW9uSUQgPT0gUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRT
ZXNzaW9uSUQoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Byb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nl
c3MuaAppbmRleCAzYjZiNzc0N2E0YjM0MjUwZjI1MzhhMGYyNjg4MzBhZDJjNDRlNjQxLi5mMzIx
ZGYyOTBlOTRlODY2YmFiYTZlZTdkMzZiYjFmZDIyMzZjYmZlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCkBAIC04MSw2ICs4MSw3IEBAIGNsYXNz
IFN0b3JhZ2VRdW90YU1hbmFnZXI7CiBjbGFzcyBOZXR3b3JrU3RvcmFnZVNlc3Npb247CiBjbGFz
cyBSZXNvdXJjZUVycm9yOwogY2xhc3MgU1dTZXJ2ZXI7CitlbnVtIGNsYXNzIEhUVFBDb29raWVB
Y2NlcHRQb2xpY3kgOiB1aW50OF90OwogZW51bSBjbGFzcyBJbmNsdWRlSHR0cE9ubHlDb29raWVz
IDogYm9vbDsKIGVudW0gY2xhc3MgU3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgOiB1aW50OF90Owog
ZW51bSBjbGFzcyBTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24gOiBib29sOwpAQCAtMzQxLDYg
KzM0Miw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlc2V0U2VydmljZVdvcmtlckZldGNoVGltZW91
dEZvclRlc3RpbmcoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICBTZWNvbmRzIHNl
cnZpY2VXb3JrZXJGZXRjaFRpbWVvdXQoKSBjb25zdCB7IHJldHVybiBtX3NlcnZpY2VXb3JrZXJG
ZXRjaFRpbWVvdXQ7IH0KIAorICAgIHZvaWQgY29va2llQWNjZXB0UG9saWN5Q2hhbmdlZChXZWJD
b3JlOjpIVFRQQ29va2llQWNjZXB0UG9saWN5KTsKKwogcHJpdmF0ZToKICAgICB2b2lkIHBsYXRm
b3JtSW5pdGlhbGl6ZU5ldHdvcmtQcm9jZXNzKGNvbnN0IE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzJik7CiAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdl
U2Vzc2lvbj4gcGxhdGZvcm1DcmVhdGVEZWZhdWx0U3RvcmFnZVNlc3Npb24oKSBjb25zdDsKQEAg
LTM4Myw3ICszODYsNyBAQCBwcml2YXRlOgogICAgIC8vIE1lc3NhZ2UgSGFuZGxlcnMKICAgICB2
b2lkIGRpZFJlY2VpdmVTeW5jTmV0d29ya1Byb2Nlc3NNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYs
IElQQzo6RGVjb2RlciYsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+Jik7CiAgICAgdm9p
ZCBpbml0aWFsaXplTmV0d29ya1Byb2Nlc3MoTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnMmJik7Ci0gICAgdm9pZCBjcmVhdGVOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyhXZWJD
b3JlOjpQcm9jZXNzSWRlbnRpZmllciwgUEFMOjpTZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoT3B0aW9uYWw8SVBDOjpBdHRhY2htZW50PiYmKT4mJik7CisgICAgdm9pZCBjcmVhdGVO
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyhXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciwg
UEFMOjpTZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8SVBDOjpBdHRh
Y2htZW50PiYmLCBXZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0UG9saWN5KT4mJik7CiAKICAgICB2
b2lkIGZldGNoV2Vic2l0ZURhdGEoUEFMOjpTZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0
YVR5cGU+LCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFGZXRjaE9wdGlvbj4sIHVpbnQ2NF90IGNhbGxi
YWNrSUQpOwogICAgIHZvaWQgZGVsZXRlV2Vic2l0ZURhdGEoUEFMOjpTZXNzaW9uSUQsIE9wdGlv
blNldDxXZWJzaXRlRGF0YVR5cGU+LCBXYWxsVGltZSBtb2RpZmllZFNpbmNlLCB1aW50NjRfdCBj
YWxsYmFja0lEKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCmluZGV4IDRhOWUzYTIyMWEzNTBhMzIyYmMzZjI4YjU2
NmQ2NWE0NDY1YmU5YWYuLjQzMzQ0N2JhMTRlNDMwMmU5Nzg1MDdmYjUxMmU5OTMwOTZjZWQ0YzIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3Mu
bWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJv
Y2Vzcy5tZXNzYWdlcy5pbgpAQCAtMjUsNyArMjUsNyBAQCBtZXNzYWdlcyAtPiBOZXR3b3JrUHJv
Y2VzcyBMZWdhY3lSZWNlaXZlciB7CiAgICAgSW5pdGlhbGl6ZU5ldHdvcmtQcm9jZXNzKHN0cnVj
dCBXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzIHByb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnMpCiAKICAgICAjIENyZWF0ZXMgYSBjb25uZWN0aW9uIGZvciBjb21tdW5pY2F0
aW9uIHdpdGggYSBXZWJQcm9jZXNzCi0gICAgQ3JlYXRlTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MoV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIgcHJvY2Vzc0lkZW50aWZpZXIsIFBBTDo6
U2Vzc2lvbklEIHNlc3Npb25JRCkgLT4gKE9wdGlvbmFsPElQQzo6QXR0YWNobWVudD4gY29ubmVj
dGlvbklkZW50aWZpZXIpIEFzeW5jCisgICAgQ3JlYXRlTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MoV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIgcHJvY2Vzc0lkZW50aWZpZXIsIFBBTDo6
U2Vzc2lvbklEIHNlc3Npb25JRCkgLT4gKE9wdGlvbmFsPElQQzo6QXR0YWNobWVudD4gY29ubmVj
dGlvbklkZW50aWZpZXIsIGVudW06dWludDhfdCBXZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0UG9s
aWN5IGNvb2tpZUFjY2VwdFBvbGljeSkgQXN5bmMKIAogI2lmIFVTRShTT1VQKQogICAgIFNldEln
bm9yZVRMU0Vycm9ycyhib29sIGlnbm9yZVRMU0Vycm9ycykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnMuaAppbmRleCA1MDllMzY3YTFiMGI2YWQzOTAxY2Q1ZGUxMjJiZmVjYTMwZjNjNzUyLi5j
YjZjMzEwOWY4ZWE0MTMzMzM5NjFjODdjMmVmNmQ2OTgxNzc4ZWYyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
LmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycy5oCkBAIC0zNCw3ICszNCw3IEBACiAjaW5jbHVkZSA8d3RmL3RleHQvV1RG
U3RyaW5nLmg+CiAKICNpZiBVU0UoU09VUCkKLSNpbmNsdWRlICJIVFRQQ29va2llQWNjZXB0UG9s
aWN5LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9IVFRQQ29va2llQWNjZXB0UG9saWN5Lmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9Tb3VwTmV0d29ya1Byb3h5U2V0dGluZ3MuaD4KICNlbmRpZgogCkBAIC03
Niw3ICs3Niw3IEBAIHN0cnVjdCBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyB7CiAg
ICAgV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMgZGVmYXVsdERhdGFTdG9yZVBhcmFtZXRlcnM7
CiAgICAgCiAjaWYgVVNFKFNPVVApCi0gICAgSFRUUENvb2tpZUFjY2VwdFBvbGljeSBjb29raWVB
Y2NlcHRQb2xpY3kgeyBIVFRQQ29va2llQWNjZXB0UG9saWN5OjpBbHdheXNBY2NlcHQgfTsKKyAg
ICBXZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0UG9saWN5IGNvb2tpZUFjY2VwdFBvbGljeSB7IFdl
YkNvcmU6OkhUVFBDb29raWVBY2NlcHRQb2xpY3k6OkFsd2F5c0FjY2VwdCB9OwogICAgIGJvb2wg
aWdub3JlVExTRXJyb3JzIHsgZmFsc2UgfTsKICAgICBWZWN0b3I8U3RyaW5nPiBsYW5ndWFnZXM7
CiAgICAgV2ViQ29yZTo6U291cE5ldHdvcmtQcm94eVNldHRpbmdzIHByb3h5U2V0dGluZ3M7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9IVFRQQ29va2llQWNjZXB0UG9saWN5Lmgg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9IVFRQQ29va2llQWNjZXB0UG9saWN5LmgKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ1N2MyMzQ0YzljODk4NmZmNmUyMzIzMzA1YTI4NDMzZDg2
ZWEwZWIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291
cmNlL1dlYktpdC9TaGFyZWQvSFRUUENvb2tpZUFjY2VwdFBvbGljeS5oCisrKyAvZGV2L251bGwK
QEAgLTEsNTEgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFy
ZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
LSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgot
ICovCi0KLSNwcmFnbWEgb25jZQotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotZW51bSBjbGFzcyBI
VFRQQ29va2llQWNjZXB0UG9saWN5IDogdWludDhfdCB7Ci0gICAgQWx3YXlzQWNjZXB0ID0gMCwK
LSAgICBOZXZlciA9IDEsCi0gICAgT25seUZyb21NYWluRG9jdW1lbnREb21haW4gPSAyLAotICAg
IEV4Y2x1c2l2ZWx5RnJvbU1haW5Eb2N1bWVudERvbWFpbiA9IDMsCi19OwotCi19IC8vIG5hbWVz
cGFjZSBXZWJLaXQKLQotbmFtZXNwYWNlIFdURiB7Ci0KLXRlbXBsYXRlPD4gc3RydWN0IEVudW1U
cmFpdHM8V2ViS2l0OjpIVFRQQ29va2llQWNjZXB0UG9saWN5PiB7Ci0gICAgdXNpbmcgdmFsdWVz
ID0gRW51bVZhbHVlczwKLSAgICAgICAgV2ViS2l0OjpIVFRQQ29va2llQWNjZXB0UG9saWN5LAot
ICAgICAgICBXZWJLaXQ6OkhUVFBDb29raWVBY2NlcHRQb2xpY3k6OkFsd2F5c0FjY2VwdCwKLSAg
ICAgICAgV2ViS2l0OjpIVFRQQ29va2llQWNjZXB0UG9saWN5OjpOZXZlciwKLSAgICAgICAgV2Vi
S2l0OjpIVFRQQ29va2llQWNjZXB0UG9saWN5OjpPbmx5RnJvbU1haW5Eb2N1bWVudERvbWFpbiwK
LSAgICAgICAgV2ViS2l0OjpIVFRQQ29va2llQWNjZXB0UG9saWN5OjpFeGNsdXNpdmVseUZyb21N
YWluRG9jdW1lbnREb21haW4KLSAgICA+OwotfTsKLQotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCmluZGV4IDQ5NmNmYzlmN2U4
NGFhYzYyNmJlMTdlN2U1YjAxNmI4ZDVjYzUwMGYuLmI0MzAyZDY4Y2U3YzE2OTYyZWViODcyNzdj
NWY4M2ZiODdmNDg4YzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKQEAgLTQ3LDcgKzQ3LDcgQEAKICNlbmRpZgogCiAjaWYg
VVNFKFNPVVApCi0jaW5jbHVkZSAiSFRUUENvb2tpZUFjY2VwdFBvbGljeS5oIgorI2luY2x1ZGUg
PFdlYkNvcmUvSFRUUENvb2tpZUFjY2VwdFBvbGljeS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU291
cE5ldHdvcmtQcm94eVNldHRpbmdzLmg+CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0FQSUhUVFBDb29raWVTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQVBJSFRUUENvb2tpZVN0b3JlLmNwcAppbmRleCBjMmY3ZWEyMDExMDUw
MTJlMmU3MzQ5OGFjMTc3ZmRmZDMwODNjOTE3Li4yZWUzMGJkZmJmNzg1OTc3MTQyYmE3N2NlMGEz
YjgwZTljNmNmMzVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJ
SFRUUENvb2tpZVN0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJ
SFRUUENvb2tpZVN0b3JlLmNwcApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIldlYnNpdGVE
YXRhU3RvcmUuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0Nvb2tpZS5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvQ29va2llU3RvcmFnZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvSFRUUENvb2tpZUFjY2VwdFBv
bGljeS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmg+CiAKIHVz
aW5nIG5hbWVzcGFjZSBXZWJLaXQ7CkBAIC0xMzMsNyArMTM0LDcgQEAgdm9pZCBIVFRQQ29va2ll
U3RvcmU6OmRlbGV0ZUFsbENvb2tpZXMoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBs
ZXRpb25IYW4KICAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2goV1RGTW92ZShjb21wbGV0aW9u
SGFuZGxlcikpOwogfQogCi12b2lkIEhUVFBDb29raWVTdG9yZTo6c2V0SFRUUENvb2tpZUFjY2Vw
dFBvbGljeShXZWJLaXQ6OkhUVFBDb29raWVBY2NlcHRQb2xpY3kgcG9saWN5LCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIEhUVFBDb29raWVTdG9y
ZTo6c2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShXZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0UG9s
aWN5IHBvbGljeSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVy
KQogewogICAgIGF1dG8qIHBvb2wgPSBtX293bmluZ0RhdGFTdG9yZS0+cHJvY2Vzc1Bvb2xGb3JD
b29raWVTdG9yYWdlT3BlcmF0aW9ucygpOwogICAgIGlmICghcG9vbCkgewpAQCAtMjc5LDcgKzI4
MCw3IEBAIHZvaWQgSFRUUENvb2tpZVN0b3JlOjpkZWxldGVDb29raWVGcm9tRGVmYXVsdFVJUHJv
Y2Vzc0Nvb2tpZVN0b3JlKGNvbnN0IFdlYkNvcmU6CiB2b2lkIEhUVFBDb29raWVTdG9yZTo6c3Rh
cnRPYnNlcnZpbmdDaGFuZ2VzVG9EZWZhdWx0VUlQcm9jZXNzQ29va2llU3RvcmUoRnVuY3Rpb248
dm9pZCgpPiYmKSB7IH0KIHZvaWQgSFRUUENvb2tpZVN0b3JlOjpzdG9wT2JzZXJ2aW5nQ2hhbmdl
c1RvRGVmYXVsdFVJUHJvY2Vzc0Nvb2tpZVN0b3JlKCkgeyB9CiB2b2lkIEhUVFBDb29raWVTdG9y
ZTo6ZGVsZXRlQ29va2llc0luRGVmYXVsdFVJUHJvY2Vzc0Nvb2tpZVN0b3JlKCkgeyB9Ci12b2lk
IEhUVFBDb29raWVTdG9yZTo6c2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeUluRGVmYXVsdFVJUHJv
Y2Vzc0Nvb2tpZVN0b3JlKFdlYktpdDo6SFRUUENvb2tpZUFjY2VwdFBvbGljeSkgeyB9Cit2b2lk
IEhUVFBDb29raWVTdG9yZTo6c2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeUluRGVmYXVsdFVJUHJv
Y2Vzc0Nvb2tpZVN0b3JlKFdlYkNvcmU6OkhUVFBDb29raWVBY2NlcHRQb2xpY3kpIHsgfQogI2Vu
ZGlmCiAgICAgCiB9IC8vIG5hbWVzcGFjZSBBUEkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9BUElIVFRQQ29va2llU3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9BUElIVFRQQ29va2llU3RvcmUuaAppbmRleCAyZTQxZjYyNGQ0NzRmNWZmNDFlMTUy
NTEyMGY1YmY3YTZiYjI2ZDNkLi44MTc5YzQ0ZjRlNThkMmI2Mjk4NTVjYTkxNTkwOTRmNDMyYzQ2
YzdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJSFRUUENvb2tp
ZVN0b3JlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUhUVFBDb29raWVT
dG9yZS5oCkBAIC0yNiw3ICsyNiw2IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkFQSU9i
amVjdC5oIgotI2luY2x1ZGUgIkhUVFBDb29raWVBY2NlcHRQb2xpY3kuaCIKICNpbmNsdWRlIDxX
ZWJDb3JlL0Nvb2tpZS5oPgogI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogI2lu
Y2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CkBAIC0zNywxMiArMzYsMTIgQEAgc3RydWN0IENvb2tpZTsK
ICNpZiBQTEFURk9STShDT0NPQSkKIGNsYXNzIENvb2tpZVN0b3JhZ2VPYnNlcnZlcjsKICNlbmRp
ZgorZW51bSBjbGFzcyBIVFRQQ29va2llQWNjZXB0UG9saWN5IDogdWludDhfdDsKIH0KIAogbmFt
ZXNwYWNlIFdlYktpdCB7CiBjbGFzcyBXZWJDb29raWVNYW5hZ2VyUHJveHk7CiBjbGFzcyBXZWJz
aXRlRGF0YVN0b3JlOwotZW51bSBjbGFzcyBIVFRQQ29va2llQWNjZXB0UG9saWN5IDogdWludDhf
dDsKIH0KIAogbmFtZXNwYWNlIEFQSSB7CkBAIC02Myw3ICs2Miw3IEBAIHB1YmxpYzoKICAgICB2
b2lkIGRlbGV0ZUNvb2tpZShjb25zdCBXZWJDb3JlOjpDb29raWUmLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKCk+JiYpOwogICAgIAogICAgIHZvaWQgZGVsZXRlQWxsQ29va2llcyhDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKCk+JiYpOwotICAgIHZvaWQgc2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShX
ZWJLaXQ6OkhUVFBDb29raWVBY2NlcHRQb2xpY3ksIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4m
Jik7CisgICAgdm9pZCBzZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KFdlYkNvcmU6OkhUVFBDb29r
aWVBY2NlcHRQb2xpY3ksIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAKICAgICBjbGFz
cyBPYnNlcnZlciB7CiAgICAgcHVibGljOgpAQCAtOTAsNyArODksNyBAQCBwcml2YXRlOgogICAg
IHZvaWQgc3RhcnRPYnNlcnZpbmdDaGFuZ2VzVG9EZWZhdWx0VUlQcm9jZXNzQ29va2llU3RvcmUo
RnVuY3Rpb248dm9pZCgpPiYmKTsKICAgICB2b2lkIHN0b3BPYnNlcnZpbmdDaGFuZ2VzVG9EZWZh
dWx0VUlQcm9jZXNzQ29va2llU3RvcmUoKTsKICAgICB2b2lkIGRlbGV0ZUNvb2tpZXNJbkRlZmF1
bHRVSVByb2Nlc3NDb29raWVTdG9yZSgpOwotICAgIHZvaWQgc2V0SFRUUENvb2tpZUFjY2VwdFBv
bGljeUluRGVmYXVsdFVJUHJvY2Vzc0Nvb2tpZVN0b3JlKFdlYktpdDo6SFRUUENvb2tpZUFjY2Vw
dFBvbGljeSk7CisgICAgdm9pZCBzZXRIVFRQQ29va2llQWNjZXB0UG9saWN5SW5EZWZhdWx0VUlQ
cm9jZXNzQ29va2llU3RvcmUoV2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBvbGljeSk7CiAgICAg
CiAgICAgLy8gRklYTUU6IFRoaXMgaXMgYSByZWZlcmVuY2UgY3ljbGUuCiAgICAgUmVmPFdlYktp
dDo6V2Vic2l0ZURhdGFTdG9yZT4gbV9vd25pbmdEYXRhU3RvcmU7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oCmluZGV4IDAwZDE2MjcyNzAyOGE2NmI0MDdiMzVkNTYx
OGQ5MDVjMWVhM2JhMDQuLjgxMDU1YTYxOWJhMTlmNTY1MjJjNDc4MDFhNWEwY2FjM2M1ZmZjNDkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oCkBAIC0yOCw3ICsy
OCw2IEBACiAjZGVmaW5lIFdLQVBJQ2FzdF9oCiAKICNpbmNsdWRlICJDYWNoZU1vZGVsLmgiCi0j
aW5jbHVkZSAiSFRUUENvb2tpZUFjY2VwdFBvbGljeS5oIgogI2luY2x1ZGUgIkluamVjdGVkQnVu
ZGxlSGl0VGVzdFJlc3VsdE1lZGlhVHlwZS5oIgogI2luY2x1ZGUgIlBsdWdpbk1vZHVsZUluZm8u
aCIKICNpbmNsdWRlICJQcm9jZXNzVGVybWluYXRpb25SZWFzb24uaCIKQEAgLTQ2LDYgKzQ1LDcg
QEAKICNpbmNsdWRlICJXS1NoYXJlZEFQSUNhc3QuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0NyZWRl
bnRpYWwuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lTG9hZGVyVHlwZXMuaD4KKyNpbmNsdWRl
IDxXZWJDb3JlL0hUVFBDb29raWVBY2NlcHRQb2xpY3kuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Bs
dWdpbkRhdGEuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Byb3RlY3Rpb25TcGFjZS5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvU2V0dGluZ3MuaD4KQEAgLTM2OSwzMyArMzY5LDMzIEBAIGlubGluZSBSZXNv
dXJjZUNhY2hlc1RvQ2xlYXIgdG9SZXNvdXJjZUNhY2hlc1RvQ2xlYXIoV0tSZXNvdXJjZUNhY2hl
c1RvQ2xlYXIgd2tSCiAgICAgcmV0dXJuIEFsbFJlc291cmNlQ2FjaGVzOwogfQogCi1pbmxpbmUg
SFRUUENvb2tpZUFjY2VwdFBvbGljeSB0b0hUVFBDb29raWVBY2NlcHRQb2xpY3koV0tIVFRQQ29v
a2llQWNjZXB0UG9saWN5IHBvbGljeSkKK2lubGluZSBXZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0
UG9saWN5IHRvSFRUUENvb2tpZUFjY2VwdFBvbGljeShXS0hUVFBDb29raWVBY2NlcHRQb2xpY3kg
cG9saWN5KQogewogICAgIHN3aXRjaCAocG9saWN5KSB7CiAgICAgY2FzZSBrV0tIVFRQQ29va2ll
QWNjZXB0UG9saWN5QWx3YXlzOgotICAgICAgICByZXR1cm4gSFRUUENvb2tpZUFjY2VwdFBvbGlj
eTo6QWx3YXlzQWNjZXB0OworICAgICAgICByZXR1cm4gV2ViQ29yZTo6SFRUUENvb2tpZUFjY2Vw
dFBvbGljeTo6QWx3YXlzQWNjZXB0OwogICAgIGNhc2Uga1dLSFRUUENvb2tpZUFjY2VwdFBvbGlj
eU5ldmVyOgotICAgICAgICByZXR1cm4gSFRUUENvb2tpZUFjY2VwdFBvbGljeTo6TmV2ZXI7Cisg
ICAgICAgIHJldHVybiBXZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0UG9saWN5OjpOZXZlcjsKICAg
ICBjYXNlIGtXS0hUVFBDb29raWVBY2NlcHRQb2xpY3lPbmx5RnJvbU1haW5Eb2N1bWVudERvbWFp
bjoKLSAgICAgICAgcmV0dXJuIEhUVFBDb29raWVBY2NlcHRQb2xpY3k6Ok9ubHlGcm9tTWFpbkRv
Y3VtZW50RG9tYWluOworICAgICAgICByZXR1cm4gV2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBv
bGljeTo6T25seUZyb21NYWluRG9jdW1lbnREb21haW47CiAgICAgY2FzZSBrV0tIVFRQQ29va2ll
QWNjZXB0UG9saWN5RXhjbHVzaXZlbHlGcm9tTWFpbkRvY3VtZW50RG9tYWluOgotICAgICAgICBy
ZXR1cm4gSFRUUENvb2tpZUFjY2VwdFBvbGljeTo6RXhjbHVzaXZlbHlGcm9tTWFpbkRvY3VtZW50
RG9tYWluOworICAgICAgICByZXR1cm4gV2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBvbGljeTo6
RXhjbHVzaXZlbHlGcm9tTWFpbkRvY3VtZW50RG9tYWluOwogICAgIH0KIAogICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiBIVFRQQ29va2llQWNjZXB0UG9saWN5OjpBbHdheXNB
Y2NlcHQ7CisgICAgcmV0dXJuIFdlYkNvcmU6OkhUVFBDb29raWVBY2NlcHRQb2xpY3k6OkFsd2F5
c0FjY2VwdDsKIH0KIAotaW5saW5lIFdLSFRUUENvb2tpZUFjY2VwdFBvbGljeSB0b0FQSShIVFRQ
Q29va2llQWNjZXB0UG9saWN5IHBvbGljeSkKK2lubGluZSBXS0hUVFBDb29raWVBY2NlcHRQb2xp
Y3kgdG9BUEkoV2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBvbGljeSBwb2xpY3kpCiB7CiAgICAg
c3dpdGNoIChwb2xpY3kpIHsKLSAgICBjYXNlIEhUVFBDb29raWVBY2NlcHRQb2xpY3k6OkFsd2F5
c0FjY2VwdDoKKyAgICBjYXNlIFdlYkNvcmU6OkhUVFBDb29raWVBY2NlcHRQb2xpY3k6OkFsd2F5
c0FjY2VwdDoKICAgICAgICAgcmV0dXJuIGtXS0hUVFBDb29raWVBY2NlcHRQb2xpY3lBbHdheXM7
Ci0gICAgY2FzZSBIVFRQQ29va2llQWNjZXB0UG9saWN5OjpOZXZlcjoKKyAgICBjYXNlIFdlYkNv
cmU6OkhUVFBDb29raWVBY2NlcHRQb2xpY3k6Ok5ldmVyOgogICAgICAgICByZXR1cm4ga1dLSFRU
UENvb2tpZUFjY2VwdFBvbGljeU5ldmVyOwotICAgIGNhc2UgSFRUUENvb2tpZUFjY2VwdFBvbGlj
eTo6T25seUZyb21NYWluRG9jdW1lbnREb21haW46CisgICAgY2FzZSBXZWJDb3JlOjpIVFRQQ29v
a2llQWNjZXB0UG9saWN5OjpPbmx5RnJvbU1haW5Eb2N1bWVudERvbWFpbjoKICAgICAgICAgcmV0
dXJuIGtXS0hUVFBDb29raWVBY2NlcHRQb2xpY3lPbmx5RnJvbU1haW5Eb2N1bWVudERvbWFpbjsK
LSAgICBjYXNlIEhUVFBDb29raWVBY2NlcHRQb2xpY3k6OkV4Y2x1c2l2ZWx5RnJvbU1haW5Eb2N1
bWVudERvbWFpbjoKKyAgICBjYXNlIFdlYkNvcmU6OkhUVFBDb29raWVBY2NlcHRQb2xpY3k6OkV4
Y2x1c2l2ZWx5RnJvbU1haW5Eb2N1bWVudERvbWFpbjoKICAgICAgICAgcmV0dXJuIGtXS0hUVFBD
b29raWVBY2NlcHRQb2xpY3lFeGNsdXNpdmVseUZyb21NYWluRG9jdW1lbnREb21haW47CiAgICAg
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvQVBJSFRU
UENvb2tpZVN0b3JlQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
QVBJSFRUUENvb2tpZVN0b3JlQ29jb2EubW0KaW5kZXggYWQxOTY3NjFkNDg0MDIxYWJiNjNmYzlk
NWVkMDdlZDY1ZmZlNDRjYi4uNzkxMjAxYzQ3N2U1ZDhhMTcxNzQxM2YwMjFlMmJmNzUyNTYzNjhj
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL0FQSUhUVFBD
b29raWVTdG9yZUNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9BUElIVFRQQ29va2llU3RvcmVDb2NvYS5tbQpAQCAtMjgsNiArMjgsNyBAQAogCiAjaW5jbHVk
ZSA8V2ViQ29yZS9Db29raWUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0Nvb2tpZVN0b3JhZ2VPYnNl
cnZlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvSFRUUENvb2tpZUFjY2VwdFBvbGljeS5oPgogI2lu
Y2x1ZGUgPHBhbC9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmg+CiAKIG5hbWVzcGFjZSBBUEkgewpAQCAt
NzUsMjMgKzc2LDIzIEBAIHZvaWQgSFRUUENvb2tpZVN0b3JlOjpkZWxldGVDb29raWVzSW5EZWZh
dWx0VUlQcm9jZXNzQ29va2llU3RvcmUoKQogICAgIFtbTlNIVFRQQ29va2llU3RvcmFnZSBzaGFy
ZWRIVFRQQ29va2llU3RvcmFnZV0gcmVtb3ZlQ29va2llc1NpbmNlRGF0ZTpbTlNEYXRlIGRpc3Rh
bnRQYXN0XV07CiB9CiAKLXN0YXRpYyBOU0hUVFBDb29raWVBY2NlcHRQb2xpY3kgdG9OU0hUVFBD
b29raWVBY2NlcHRQb2xpY3koV2ViS2l0OjpIVFRQQ29va2llQWNjZXB0UG9saWN5IHBvbGljeSkK
K3N0YXRpYyBOU0hUVFBDb29raWVBY2NlcHRQb2xpY3kgdG9OU0hUVFBDb29raWVBY2NlcHRQb2xp
Y3koV2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBvbGljeSBwb2xpY3kpCiB7CiAgICAgc3dpdGNo
IChwb2xpY3kpIHsKLSAgICBjYXNlIFdlYktpdDo6SFRUUENvb2tpZUFjY2VwdFBvbGljeTo6QWx3
YXlzQWNjZXB0OgorICAgIGNhc2UgV2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBvbGljeTo6QWx3
YXlzQWNjZXB0OgogICAgICAgICByZXR1cm4gTlNIVFRQQ29va2llQWNjZXB0UG9saWN5QWx3YXlz
OwotICAgIGNhc2UgV2ViS2l0OjpIVFRQQ29va2llQWNjZXB0UG9saWN5OjpOZXZlcjoKKyAgICBj
YXNlIFdlYkNvcmU6OkhUVFBDb29raWVBY2NlcHRQb2xpY3k6Ok5ldmVyOgogICAgICAgICByZXR1
cm4gTlNIVFRQQ29va2llQWNjZXB0UG9saWN5TmV2ZXI7Ci0gICAgY2FzZSBXZWJLaXQ6OkhUVFBD
b29raWVBY2NlcHRQb2xpY3k6Ok9ubHlGcm9tTWFpbkRvY3VtZW50RG9tYWluOgorICAgIGNhc2Ug
V2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBvbGljeTo6T25seUZyb21NYWluRG9jdW1lbnREb21h
aW46CiAgICAgICAgIHJldHVybiBOU0hUVFBDb29raWVBY2NlcHRQb2xpY3lPbmx5RnJvbU1haW5E
b2N1bWVudERvbWFpbjsKLSAgICBjYXNlIFdlYktpdDo6SFRUUENvb2tpZUFjY2VwdFBvbGljeTo6
RXhjbHVzaXZlbHlGcm9tTWFpbkRvY3VtZW50RG9tYWluOgorICAgIGNhc2UgV2ViQ29yZTo6SFRU
UENvb2tpZUFjY2VwdFBvbGljeTo6RXhjbHVzaXZlbHlGcm9tTWFpbkRvY3VtZW50RG9tYWluOgog
ICAgICAgICByZXR1cm4gKE5TSFRUUENvb2tpZUFjY2VwdFBvbGljeSlOU0hUVFBDb29raWVBY2Nl
cHRQb2xpY3lFeGNsdXNpdmVseUZyb21NYWluRG9jdW1lbnREb21haW47CiAgICAgfQogICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIHJldHVybiBOU0hUVFBDb29raWVBY2NlcHRQb2xpY3lB
bHdheXM7CiB9CiAKLXZvaWQgSFRUUENvb2tpZVN0b3JlOjpzZXRIVFRQQ29va2llQWNjZXB0UG9s
aWN5SW5EZWZhdWx0VUlQcm9jZXNzQ29va2llU3RvcmUoV2ViS2l0OjpIVFRQQ29va2llQWNjZXB0
UG9saWN5IHBvbGljeSkKK3ZvaWQgSFRUUENvb2tpZVN0b3JlOjpzZXRIVFRQQ29va2llQWNjZXB0
UG9saWN5SW5EZWZhdWx0VUlQcm9jZXNzQ29va2llU3RvcmUoV2ViQ29yZTo6SFRUUENvb2tpZUFj
Y2VwdFBvbGljeSBwb2xpY3kpCiB7CiAgICAgW1tOU0hUVFBDb29raWVTdG9yYWdlIHNoYXJlZEhU
VFBDb29raWVTdG9yYWdlXSBzZXRDb29raWVBY2NlcHRQb2xpY3k6dG9OU0hUVFBDb29raWVBY2Nl
cHRQb2xpY3kocG9saWN5KV07CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tIVFRQQ29va2llU3RvcmUubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tIVFRQQ29va2llU3RvcmUubW0KaW5kZXggODFkMzcwM2IwZWVhODJlNWU2
YzYyZjMyMjJhYzRlNjgxOWY2YjNhNi4uOWI0NjYzYzRjYWI2ODRlM2Q3NGM5NjU2MzhmYjJlMmZj
NjgzYjgzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
SFRUUENvb2tpZVN0b3JlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS0hUVFBDb29raWVTdG9yZS5tbQpAQCAtMjYsOCArMjYsOCBAQAogI2ltcG9ydCAiY29uZmln
LmgiCiAjaW1wb3J0ICJXS0hUVFBDb29raWVTdG9yZUludGVybmFsLmgiCiAKLSNpbXBvcnQgIkhU
VFBDb29raWVBY2NlcHRQb2xpY3kuaCIKICNpbXBvcnQgPFdlYkNvcmUvQ29va2llLmg+CisjaW1w
b3J0IDxXZWJDb3JlL0hUVFBDb29raWVBY2NlcHRQb2xpY3kuaD4KICNpbXBvcnQgPHBhbC9zcGkv
Y2YvQ0ZOZXR3b3JrU1BJLmg+CiAjaW1wb3J0IDx3dGYvSGFzaE1hcC5oPgogI2ltcG9ydCA8d3Rm
L1JldGFpblB0ci5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLUHJvY2Vzc1Bvb2wubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tQcm9jZXNzUG9vbC5tbQppbmRleCAwOGU1YjlmMDEzNWVhZmUxYWE4ZjRkZTRhODJiNmI4OTBi
YjkxOWIzLi5jZGM4NDdkY2I2YTI5NjAzYWMxZDViNjYxMzY2N2JlNGNkMjc0NzA3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5tbQpA
QCAtNDgsNiArNDgsNyBAQAogI2ltcG9ydCAiX1dLRG93bmxvYWRJbnRlcm5hbC5oIgogI2ltcG9y
dCAiX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uSW50ZXJuYWwuaCIKICNpbXBvcnQgPFdlYkNv
cmUvQ2VydGlmaWNhdGVJbmZvLmg+CisjaW1wb3J0IDxXZWJDb3JlL0hUVFBDb29raWVBY2NlcHRQ
b2xpY3lDb2NvYS5oPgogI2ltcG9ydCA8V2ViQ29yZS9QbHVnaW5EYXRhLmg+CiAjaW1wb3J0IDxX
ZWJDb3JlL1JlZ2lzdHJhYmxlRG9tYWluLmg+CiAjaW1wb3J0IDxwYWwvc3BpL2NmL0NGTmV0d29y
a1NQSS5oPgpAQCAtMjAwLDI2ICsyMDEsOSBAQCAtICh2b2lkKV9zZXRDYW5IYW5kbGVIVFRQU1Nl
cnZlclRydXN0RXZhbHVhdGlvbjooQk9PTCl2YWx1ZQogewogfQogCi1zdGF0aWMgV2ViS2l0OjpI
VFRQQ29va2llQWNjZXB0UG9saWN5IHRvSFRUUENvb2tpZUFjY2VwdFBvbGljeShOU0hUVFBDb29r
aWVBY2NlcHRQb2xpY3kgcG9saWN5KQotewotICAgIHN3aXRjaCAoc3RhdGljX2Nhc3Q8TlNVSW50
ZWdlcj4ocG9saWN5KSkgewotICAgIGNhc2UgTlNIVFRQQ29va2llQWNjZXB0UG9saWN5QWx3YXlz
OgotICAgICAgICByZXR1cm4gV2ViS2l0OjpIVFRQQ29va2llQWNjZXB0UG9saWN5OjpBbHdheXNB
Y2NlcHQ7Ci0gICAgY2FzZSBOU0hUVFBDb29raWVBY2NlcHRQb2xpY3lOZXZlcjoKLSAgICAgICAg
cmV0dXJuIFdlYktpdDo6SFRUUENvb2tpZUFjY2VwdFBvbGljeTo6TmV2ZXI7Ci0gICAgY2FzZSBO
U0hUVFBDb29raWVBY2NlcHRQb2xpY3lPbmx5RnJvbU1haW5Eb2N1bWVudERvbWFpbjoKLSAgICAg
ICAgcmV0dXJuIFdlYktpdDo6SFRUUENvb2tpZUFjY2VwdFBvbGljeTo6T25seUZyb21NYWluRG9j
dW1lbnREb21haW47Ci0gICAgY2FzZSBOU0hUVFBDb29raWVBY2NlcHRQb2xpY3lFeGNsdXNpdmVs
eUZyb21NYWluRG9jdW1lbnREb21haW46Ci0gICAgICAgIHJldHVybiBXZWJLaXQ6OkhUVFBDb29r
aWVBY2NlcHRQb2xpY3k6OkV4Y2x1c2l2ZWx5RnJvbU1haW5Eb2N1bWVudERvbWFpbjsKLSAgICB9
Ci0KLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gV2ViS2l0OjpIVFRQQ29v
a2llQWNjZXB0UG9saWN5OjpBbHdheXNBY2NlcHQ7Ci19Ci0KIC0gKHZvaWQpX3NldENvb2tpZUFj
Y2VwdFBvbGljeTooTlNIVFRQQ29va2llQWNjZXB0UG9saWN5KXBvbGljeQogewotICAgIF9wcm9j
ZXNzUG9vbC0+c3VwcGxlbWVudDxXZWJLaXQ6OldlYkNvb2tpZU1hbmFnZXJQcm94eT4oKS0+c2V0
SFRUUENvb2tpZUFjY2VwdFBvbGljeShQQUw6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgp
LCB0b0hUVFBDb29raWVBY2NlcHRQb2xpY3kocG9saWN5KSwgW10oKSB7IH0pOworICAgIF9wcm9j
ZXNzUG9vbC0+c3VwcGxlbWVudDxXZWJLaXQ6OldlYkNvb2tpZU1hbmFnZXJQcm94eT4oKS0+c2V0
SFRUUENvb2tpZUFjY2VwdFBvbGljeShQQUw6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgp
LCBXZWJDb3JlOjp0b0hUVFBDb29raWVBY2NlcHRQb2xpY3kocG9saWN5KSwgW10oKSB7IH0pOwog
fQogCiAtIChpZClfb2JqZWN0Rm9yQnVuZGxlUGFyYW1ldGVyOihOU1N0cmluZyAqKXBhcmFtZXRl
cgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0Q29v
a2llTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRD
b29raWVNYW5hZ2VyLmNwcAppbmRleCBiOGM1MDkwMTMzZTJkYzM2MDhhY2U0MWRhMTQ5MmExOWRl
ZTk4YTAzLi4yN2ZiZGUyMjcxNDgwZmQzZmVmMjkwMzAxYzRlYTdhYTU2ZWFlNGEwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRDb29raWVNYW5hZ2Vy
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRDb29raWVN
YW5hZ2VyLmNwcApAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgIldlYktpdFdlYnNpdGVEYXRh
TWFuYWdlclByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJLaXRXZWJzaXRlRGF0YVByaXZhdGUuaCIK
ICNpbmNsdWRlICJXZWJzaXRlRGF0YVJlY29yZC5oIgorI2luY2x1ZGUgPFdlYkNvcmUvSFRUUENv
b2tpZUFjY2VwdFBvbGljeS5oPgogI2luY2x1ZGUgPGdsaWIvZ2kxOG4tbGliLmg+CiAjaW5jbHVk
ZSA8cGFsL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPHd0Zi9nbGliL0dSZWZQdHIuaD4KQEAgLTg3
LDE0ICs4OCwxNCBAQCBzdGF0aWMgaW5saW5lIFNvdXBDb29raWVQZXJzaXN0ZW50U3RvcmFnZVR5
cGUgdG9Tb3VwQ29va2llUGVyc2lzdGVudFN0b3JhZ2VUeXBlKAogICAgIH0KIH0KIAotc3RhdGlj
IGlubGluZSBXZWJLaXRDb29raWVBY2NlcHRQb2xpY3kgdG9XZWJLaXRDb29raWVBY2NlcHRQb2xp
Y3koSFRUUENvb2tpZUFjY2VwdFBvbGljeSBodHRwUG9saWN5KQorc3RhdGljIGlubGluZSBXZWJL
aXRDb29raWVBY2NlcHRQb2xpY3kgdG9XZWJLaXRDb29raWVBY2NlcHRQb2xpY3koV2ViQ29yZTo6
SFRUUENvb2tpZUFjY2VwdFBvbGljeSBodHRwUG9saWN5KQogewogICAgIHN3aXRjaCAoaHR0cFBv
bGljeSkgewotICAgIGNhc2UgSFRUUENvb2tpZUFjY2VwdFBvbGljeTo6QWx3YXlzQWNjZXB0Ogor
ICAgIGNhc2UgV2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBvbGljeTo6QWx3YXlzQWNjZXB0Ogog
ICAgICAgICByZXR1cm4gV0VCS0lUX0NPT0tJRV9QT0xJQ1lfQUNDRVBUX0FMV0FZUzsKLSAgICBj
YXNlIEhUVFBDb29raWVBY2NlcHRQb2xpY3k6Ok5ldmVyOgorICAgIGNhc2UgV2ViQ29yZTo6SFRU
UENvb2tpZUFjY2VwdFBvbGljeTo6TmV2ZXI6CiAgICAgICAgIHJldHVybiBXRUJLSVRfQ09PS0lF
X1BPTElDWV9BQ0NFUFRfTkVWRVI7Ci0gICAgY2FzZSBIVFRQQ29va2llQWNjZXB0UG9saWN5OjpP
bmx5RnJvbU1haW5Eb2N1bWVudERvbWFpbjoKKyAgICBjYXNlIFdlYkNvcmU6OkhUVFBDb29raWVB
Y2NlcHRQb2xpY3k6Ok9ubHlGcm9tTWFpbkRvY3VtZW50RG9tYWluOgogICAgICAgICByZXR1cm4g
V0VCS0lUX0NPT0tJRV9QT0xJQ1lfQUNDRVBUX05PX1RISVJEX1BBUlRZOwogICAgIGRlZmF1bHQ6
CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtMTAyLDE4ICsxMDMsMTggQEAgc3Rh
dGljIGlubGluZSBXZWJLaXRDb29raWVBY2NlcHRQb2xpY3kgdG9XZWJLaXRDb29raWVBY2NlcHRQ
b2xpY3koSFRUUENvb2tpZUFjY2UKICAgICB9CiB9CiAKLXN0YXRpYyBpbmxpbmUgSFRUUENvb2tp
ZUFjY2VwdFBvbGljeSB0b0hUVFBDb29raWVBY2NlcHRQb2xpY3koV2ViS2l0Q29va2llQWNjZXB0
UG9saWN5IGtpdFBvbGljeSkKK3N0YXRpYyBpbmxpbmUgV2ViQ29yZTo6SFRUUENvb2tpZUFjY2Vw
dFBvbGljeSB0b0hUVFBDb29raWVBY2NlcHRQb2xpY3koV2ViS2l0Q29va2llQWNjZXB0UG9saWN5
IGtpdFBvbGljeSkKIHsKICAgICBzd2l0Y2ggKGtpdFBvbGljeSkgewogICAgIGNhc2UgV0VCS0lU
X0NPT0tJRV9QT0xJQ1lfQUNDRVBUX0FMV0FZUzoKLSAgICAgICAgcmV0dXJuIEhUVFBDb29raWVB
Y2NlcHRQb2xpY3k6OkFsd2F5c0FjY2VwdDsKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkhUVFBD
b29raWVBY2NlcHRQb2xpY3k6OkFsd2F5c0FjY2VwdDsKICAgICBjYXNlIFdFQktJVF9DT09LSUVf
UE9MSUNZX0FDQ0VQVF9ORVZFUjoKLSAgICAgICAgcmV0dXJuIEhUVFBDb29raWVBY2NlcHRQb2xp
Y3k6Ok5ldmVyOworICAgICAgICByZXR1cm4gV2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBvbGlj
eTo6TmV2ZXI7CiAgICAgY2FzZSBXRUJLSVRfQ09PS0lFX1BPTElDWV9BQ0NFUFRfTk9fVEhJUkRf
UEFSVFk6Ci0gICAgICAgIHJldHVybiBIVFRQQ29va2llQWNjZXB0UG9saWN5OjpPbmx5RnJvbU1h
aW5Eb2N1bWVudERvbWFpbjsKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkhUVFBDb29raWVBY2Nl
cHRQb2xpY3k6Ok9ubHlGcm9tTWFpbkRvY3VtZW50RG9tYWluOwogICAgIGRlZmF1bHQ6CiAgICAg
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICByZXR1cm4gSFRUUENvb2tpZUFjY2Vw
dFBvbGljeTo6QWx3YXlzQWNjZXB0OworICAgICAgICByZXR1cm4gV2ViQ29yZTo6SFRUUENvb2tp
ZUFjY2VwdFBvbGljeTo6QWx3YXlzQWNjZXB0OwogICAgIH0KIH0KIApAQCAtMjE4LDcgKzIxOSw3
IEBAIHZvaWQgd2Via2l0X2Nvb2tpZV9tYW5hZ2VyX2dldF9hY2NlcHRfcG9saWN5KFdlYktpdENv
b2tpZU1hbmFnZXIqIG1hbmFnZXIsIEdDYW5jCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAg
ICBwcm9jZXNzUG9vbHNbMF0tPnN1cHBsZW1lbnQ8V2ViQ29va2llTWFuYWdlclByb3h5PigpLT5n
ZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KG1hbmFnZXItPnByaXYtPnNlc3Npb25JRCgpLCBbdGFz
ayA9IFdURk1vdmUodGFzayldKEhUVFBDb29raWVBY2NlcHRQb2xpY3kgcG9saWN5KSB7CisgICAg
cHJvY2Vzc1Bvb2xzWzBdLT5zdXBwbGVtZW50PFdlYkNvb2tpZU1hbmFnZXJQcm94eT4oKS0+Z2V0
SFRUUENvb2tpZUFjY2VwdFBvbGljeShtYW5hZ2VyLT5wcml2LT5zZXNzaW9uSUQoKSwgW3Rhc2sg
PSBXVEZNb3ZlKHRhc2spXShXZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0UG9saWN5IHBvbGljeSkg
ewogICAgICAgICBnX3Rhc2tfcmV0dXJuX2ludCh0YXNrLmdldCgpLCB0b1dlYktpdENvb2tpZUFj
Y2VwdFBvbGljeShwb2xpY3kpKTsKICAgICB9KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCmluZGV4IDljYjkw
ZjE4YzU0MmM2YWE1NmZhZWI2MDA3ZDI2ZmRmMWQwYmVhOGUuLmJhMTZlMzI2MDViMjBhZTYyZTM3
Njk3ZDEwYWM5OGE1NDFlMTczZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcApAQCAtMTQ3LDcgKzE0Nyw3IEBA
IHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6Z2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKFdl
YlByb2Nlc3NQcm94eSYgd2ViUHJvY2VzCiAKIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6b3Bl
bk5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbih1aW50NjRfdCBjb25uZWN0aW9uUmVxdWVzdElkZW50
aWZpZXIsIFdlYlByb2Nlc3NQcm94eSYgd2ViUHJvY2Vzc1Byb3h5KQogewotICAgIGNvbm5lY3Rp
b24oKS0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6Q3JlYXRl
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MgeyB3ZWJQcm9jZXNzUHJveHkuY29yZVByb2Nl
c3NJZGVudGlmaWVyKCksIHdlYlByb2Nlc3NQcm94eS5zZXNzaW9uSUQoKSB9LCBbdGhpcywgd2Vh
a1RoaXMgPSBtYWtlV2Vha1B0cih0aGlzKSwgd2ViUHJvY2Vzc1Byb3h5ID0gbWFrZVdlYWtQdHIo
d2ViUHJvY2Vzc1Byb3h5KSwgY29ubmVjdGlvblJlcXVlc3RJZGVudGlmaWVyXShhdXRvJiYgY29u
bmVjdGlvbklkZW50aWZpZXIpIG11dGFibGUgeworICAgIGNvbm5lY3Rpb24oKS0+c2VuZFdpdGhB
c3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6Q3JlYXRlTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MgeyB3ZWJQcm9jZXNzUHJveHkuY29yZVByb2Nlc3NJZGVudGlmaWVyKCks
IHdlYlByb2Nlc3NQcm94eS5zZXNzaW9uSUQoKSB9LCBbdGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vh
a1B0cih0aGlzKSwgd2ViUHJvY2Vzc1Byb3h5ID0gbWFrZVdlYWtQdHIod2ViUHJvY2Vzc1Byb3h5
KSwgY29ubmVjdGlvblJlcXVlc3RJZGVudGlmaWVyXShhdXRvJiYgY29ubmVjdGlvbklkZW50aWZp
ZXIsIEhUVFBDb29raWVBY2NlcHRQb2xpY3kgY29va2llQWNjZXB0UG9saWN5KSBtdXRhYmxlIHsK
ICAgICAgICAgaWYgKCF3ZWFrVGhpcykKICAgICAgICAgICAgIHJldHVybjsKIApAQCAtMTYxLDEw
ICsxNjEsMTAgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpvcGVuTmV0d29ya1Byb2Nlc3ND
b25uZWN0aW9uKHVpbnQ2NF90IGNvbm5lY3Rpb25SZXF1ZXMKICAgICAgICAgYXV0byByZXF1ZXN0
ID0gbV9jb25uZWN0aW9uUmVxdWVzdHMudGFrZShjb25uZWN0aW9uUmVxdWVzdElkZW50aWZpZXIp
OwogCiAjaWYgVVNFKFVOSVhfRE9NQUlOX1NPQ0tFVFMpIHx8IE9TKFdJTkRPV1MpCi0gICAgICAg
IHJlcXVlc3QucmVwbHkoTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uSW5mbyB7IFdURk1vdmUoKmNv
bm5lY3Rpb25JZGVudGlmaWVyKSB9KTsKKyAgICAgICAgcmVxdWVzdC5yZXBseShOZXR3b3JrUHJv
Y2Vzc0Nvbm5lY3Rpb25JbmZvIHsgV1RGTW92ZSgqY29ubmVjdGlvbklkZW50aWZpZXIpLCBjb29r
aWVBY2NlcHRQb2xpY3kgfSk7CiAjZWxpZiBPUyhEQVJXSU4pCiAgICAgICAgIE1FU1NBR0VfQ0hF
Q0soTUFDSF9QT1JUX1ZBTElEKGNvbm5lY3Rpb25JZGVudGlmaWVyLT5wb3J0KCkpKTsKLSAgICAg
ICAgcmVxdWVzdC5yZXBseShOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25JbmZvIHsgSVBDOjpBdHRh
Y2htZW50IHsgY29ubmVjdGlvbklkZW50aWZpZXItPnBvcnQoKSwgTUFDSF9NU0dfVFlQRV9NT1ZF
X1NFTkQgfSwgY29ubmVjdGlvbigpLT5nZXRBdWRpdFRva2VuKCkgfSk7CisgICAgICAgIHJlcXVl
c3QucmVwbHkoTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uSW5mbyB7IElQQzo6QXR0YWNobWVudCB7
IGNvbm5lY3Rpb25JZGVudGlmaWVyLT5wb3J0KCksIE1BQ0hfTVNHX1RZUEVfTU9WRV9TRU5EIH0s
IGNvb2tpZUFjY2VwdFBvbGljeSwgY29ubmVjdGlvbigpLT5nZXRBdWRpdFRva2VuKCkgfSk7CiAj
ZWxzZQogICAgICAgICBub3RJbXBsZW1lbnRlZCgpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eS5oCmluZGV4IDU4YjgyZmQxMGM4YzI2
MjE1NDg5MDFiMTM1ZDVmZTlhOGQ5NzViZDQuLjBiZGZjMGQ0ZTQ3YzQzNmY1ODVjZjI5YzA5ZDUx
YTI5YmM4MTFhOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvb2tp
ZU1hbmFnZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvb2tpZU1h
bmFnZXJQcm94eS5oCkBAIC01Myw3ICs1Myw3IEBAIGNsYXNzIFdlYlByb2Nlc3NQb29sOwogY2xh
c3MgV2ViUHJvY2Vzc1Byb3h5OwogCiB0eXBlZGVmIEdlbmVyaWNDYWxsYmFjazxBUEk6OkFycmF5
Kj4gQXJyYXlDYWxsYmFjazsKLXR5cGVkZWYgR2VuZXJpY0NhbGxiYWNrPEhUVFBDb29raWVBY2Nl
cHRQb2xpY3k+IEhUVFBDb29raWVBY2NlcHRQb2xpY3lDYWxsYmFjazsKK3R5cGVkZWYgR2VuZXJp
Y0NhbGxiYWNrPFdlYkNvcmU6OkhUVFBDb29raWVBY2NlcHRQb2xpY3k+IEhUVFBDb29raWVBY2Nl
cHRQb2xpY3lDYWxsYmFjazsKIHR5cGVkZWYgR2VuZXJpY0NhbGxiYWNrPGNvbnN0IFZlY3RvcjxX
ZWJDb3JlOjpDb29raWU+Jj4gR2V0Q29va2llc0NhbGxiYWNrOwogCiBjbGFzcyBXZWJDb29raWVN
YW5hZ2VyUHJveHkgOiBwdWJsaWMgQVBJOjpPYmplY3RJbXBsPEFQSTo6T2JqZWN0OjpUeXBlOjpD
b29raWVNYW5hZ2VyPiwgcHVibGljIFdlYkNvbnRleHRTdXBwbGVtZW50LCBwcml2YXRlIElQQzo6
TWVzc2FnZVJlY2VpdmVyIHsKQEAgLTc3LDggKzc3LDggQEAgcHVibGljOgogICAgIHZvaWQgZ2V0
QWxsQ29va2llcyhQQUw6OlNlc3Npb25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8
V2ViQ29yZTo6Q29va2llPiYmKT4mJik7CiAgICAgdm9pZCBnZXRDb29raWVzKFBBTDo6U2Vzc2lv
bklELCBjb25zdCBVUkwmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFZlY3RvcjxXZWJDb3JlOjpD
b29raWU+JiYpPiYmKTsKIAotICAgIHZvaWQgc2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShQQUw6
OlNlc3Npb25JRCwgSFRUUENvb2tpZUFjY2VwdFBvbGljeSwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZCgpPiYmKTsKLSAgICB2b2lkIGdldEhUVFBDb29raWVBY2NlcHRQb2xpY3koUEFMOjpTZXNzaW9u
SUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoSFRUUENvb2tpZUFjY2VwdFBvbGljeSk+JiYpOwor
ICAgIHZvaWQgc2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShQQUw6OlNlc3Npb25JRCwgV2ViQ29y
ZTo6SFRUUENvb2tpZUFjY2VwdFBvbGljeSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsK
KyAgICB2b2lkIGdldEhUVFBDb29raWVBY2NlcHRQb2xpY3koUEFMOjpTZXNzaW9uSUQsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBvbGljeSk+JiYpOwog
CiAgICAgdm9pZCBzdGFydE9ic2VydmluZ0Nvb2tpZUNoYW5nZXMoUEFMOjpTZXNzaW9uSUQpOwog
ICAgIHZvaWQgc3RvcE9ic2VydmluZ0Nvb2tpZUNoYW5nZXMoUEFMOjpTZXNzaW9uSUQpOwpAQCAt
MTE5LDcgKzExOSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6
OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBvdmVycmlkZTsKIAogI2lmIFBMQVRGT1JNKENP
Q09BKQotICAgIHZvaWQgcGVyc2lzdEhUVFBDb29raWVBY2NlcHRQb2xpY3koSFRUUENvb2tpZUFj
Y2VwdFBvbGljeSk7CisgICAgdm9pZCBwZXJzaXN0SFRUUENvb2tpZUFjY2VwdFBvbGljeShXZWJD
b3JlOjpIVFRQQ29va2llQWNjZXB0UG9saWN5KTsKICNlbmRpZgogCiAgICAgSGFzaE1hcDxQQUw6
OlNlc3Npb25JRCwgV1RGOjpGdW5jdGlvbjx2b2lkICgpPj4gbV9sZWdhY3lDb29raWVPYnNlcnZl
cnM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAppbmRleCAxZGJkMTgx
ZDQxM2U4ZmJhNDA1ZDgxYmMwYTRmOTRlNGU3OTYyYjk4Li42NGIxZGJjZTRjOTA3NTM2OTk5YjFj
MmE1ZWIzMTQ2NzBmNDIzZTFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQcm9jZXNzUG9vbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
b29sLmgKQEAgLTI5NCw3ICsyOTQsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzdG9wTWVtb3J5U2Ft
cGxlcigpOwogCiAjaWYgVVNFKFNPVVApCi0gICAgdm9pZCBzZXRJbml0aWFsSFRUUENvb2tpZUFj
Y2VwdFBvbGljeShIVFRQQ29va2llQWNjZXB0UG9saWN5IHBvbGljeSkgeyBtX2luaXRpYWxIVFRQ
Q29va2llQWNjZXB0UG9saWN5ID0gcG9saWN5OyB9CisgICAgdm9pZCBzZXRJbml0aWFsSFRUUENv
b2tpZUFjY2VwdFBvbGljeShXZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0UG9saWN5IHBvbGljeSkg
eyBtX2luaXRpYWxIVFRQQ29va2llQWNjZXB0UG9saWN5ID0gcG9saWN5OyB9CiAgICAgdm9pZCBz
ZXROZXR3b3JrUHJveHlTZXR0aW5ncyhjb25zdCBXZWJDb3JlOjpTb3VwTmV0d29ya1Byb3h5U2V0
dGluZ3MmKTsKICNlbmRpZgogICAgIHZvaWQgc2V0RW5oYW5jZWRBY2Nlc3NpYmlsaXR5KGJvb2wp
OwpAQCAtNjc3LDcgKzY3Nyw3IEBAIHByaXZhdGU6CiAgICAgV2ViQ29udGV4dFN1cHBsZW1lbnRN
YXAgbV9zdXBwbGVtZW50czsKIAogI2lmIFVTRShTT1VQKQotICAgIEhUVFBDb29raWVBY2NlcHRQ
b2xpY3kgbV9pbml0aWFsSFRUUENvb2tpZUFjY2VwdFBvbGljeSB7IEhUVFBDb29raWVBY2NlcHRQ
b2xpY3k6Ok9ubHlGcm9tTWFpbkRvY3VtZW50RG9tYWluIH07CisgICAgV2ViQ29yZTo6SFRUUENv
b2tpZUFjY2VwdFBvbGljeSBtX2luaXRpYWxIVFRQQ29va2llQWNjZXB0UG9saWN5IHsgV2ViQ29y
ZTo6SFRUUENvb2tpZUFjY2VwdFBvbGljeTo6T25seUZyb21NYWluRG9jdW1lbnREb21haW4gfTsK
ICAgICBXZWJDb3JlOjpTb3VwTmV0d29ya1Byb3h5U2V0dGluZ3MgbV9uZXR3b3JrUHJveHlTZXR0
aW5nczsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMv
V2ViQ29va2llTWFuYWdlclByb3h5TWFjLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFj
L1dlYkNvb2tpZU1hbmFnZXJQcm94eU1hYy5tbQppbmRleCBlZWQ5N2FiZWQ2MDNhM2RjYmUxMWI3
OTcyZjQ3MTAxYjliOTRlNzI4Li44ODk1ZjYwZDJlY2Q2Njk4NTE1M2E3Mjk0MWE3YmUxZmU2MzAx
YjU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViQ29va2llTWFu
YWdlclByb3h5TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJDb29r
aWVNYW5hZ2VyUHJveHlNYWMubW0KQEAgLTMxLDcgKzMxLDcgQEAKIAogbmFtZXNwYWNlIFdlYktp
dCB7CiAKLXZvaWQgV2ViQ29va2llTWFuYWdlclByb3h5OjpwZXJzaXN0SFRUUENvb2tpZUFjY2Vw
dFBvbGljeShIVFRQQ29va2llQWNjZXB0UG9saWN5IHBvbGljeSkKK3ZvaWQgV2ViQ29va2llTWFu
YWdlclByb3h5OjpwZXJzaXN0SFRUUENvb2tpZUFjY2VwdFBvbGljeShXZWJDb3JlOjpIVFRQQ29v
a2llQWNjZXB0UG9saWN5IHBvbGljeSkKIHsKICAgICBBU1NFUlQoaGFzUHJvY2Vzc1ByaXZpbGVn
ZShQcm9jZXNzUHJpdmlsZWdlOjpDYW5BY2Nlc3NSYXdDb29raWVzKSk7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2Uv
V2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDZhZGVhNTg1MGY4
ODY0M2FmNzBmODk1MDMxYjM4NjE1NmIyZTQzZjguLmU4Nzg3ODk5ZWYwMmZmMGViOGY0NWYwZTEx
ZjI2MzdiM2RjZjBiN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagpAQCAtODgyLDcgKzg4Miw2IEBACiAJCTM3REZBNzAwMTgxMEJCOTIwMDFG
NEE5RiAvKiBXS0ZvdW5kYXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDM3REZBNkZGMTgxMEJCOTIwMDFGNEE5RiAvKiBXS0ZvdW5kYXRpb24uaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQdWJsaWMsICk7IH07IH07CiAJCTM3RTI1RDZF
MThGREU1RDYwMDVEM0EwMCAvKiBBUElGb3JtQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzN0UyNUQ2RDE4RkRFNUQ2MDA1RDNBMDAgLyogQVBJ
Rm9ybUNsaWVudC5oICovOyB9OwogCQkzN0Y2MjNCODEyQTU3QjYyMDBFM0ZERjYgLyogV0tGaW5k
T3B0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MzdGNjIzQjcxMkE1N0I2MjAwRTNGREY2IC8qIFdLRmluZE9wdGlvbnMuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQkzN0Y5MERFMzEzNzY1NjBFMDA1
MUNGNjggLyogSFRUUENvb2tpZUFjY2VwdFBvbGljeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjYzODk1NEYxMzNCRUYzODAwODk0MUQ1IC8qIEhUVFBD
b29raWVBY2NlcHRQb2xpY3kuaCAqLzsgfTsKIAkJMzdGQzE5NDcxODUwRkJGMjAwOENGQTQ3IC8q
IFdLQnJvd3NpbmdDb250ZXh0TG9hZERlbGVnYXRlUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzdGQzE5NDYxODUwRkJGMjAwOENGQTQ3IC8q
IFdLQnJvd3NpbmdDb250ZXh0TG9hZERlbGVnYXRlUHJpdmF0ZS5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTM3RkMxOTRCMTg1MTBENkEwMDhDRkE0
NyAvKiBXS05TVVJMQXV0aGVudGljYXRpb25DaGFsbGVuZ2UuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDM3RkMxOTQ5MTg1MTBENkEwMDhDRkE0NyAvKiBX
S05TVVJMQXV0aGVudGljYXRpb25DaGFsbGVuZ2UuaCAqLzsgfTsKIAkJM0Y0MThFRjkxODg3QkQ5
NzAwMjc5NUZEIC8qIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gM0Y0MThFRjUxODg3
QkQ5NzAwMjc5NUZEIC8qIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3Bw
ICovOyB9OwpAQCAtMjExOSw5ICsyMTE4LDkgQEAKIAkJMDdCOTNGRjUyM0FGMENCODAwMzZGOEVB
IC8qIFJlbW90ZU1lZGlhUGxheWVyQ29uZmlndXJhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1v
dGVNZWRpYVBsYXllckNvbmZpZ3VyYXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMDdCQUYzNTYyM0EyQ0MxNzAwNDQyNTdFIC8qIFJlbW90ZU1lZGlhUGxheWVyUHJveHkuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkwN0JBRjM1NzIzQTJDQzE5MDA0NDI1N0UgLyogUmVtb3RlTWVkaWFQbGF5
ZXJQcm94eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVNZWRpYVBsYXllclByb3h5LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMDdFMTlFRjgyM0Q0MDFGMDAwOTRGRkI0
IC8qIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBNZWRpYVBsYXllclByaXZhdGVSZW1vdGVNZXNz
YWdlUmVjZWl2ZXIuY3BwOyBwYXRoID0gTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlTWVzc2FnZVJl
Y2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMDdFMTlFRjkyM0Q0MDFG
MDAwOTRGRkI0IC8qIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZU1lc3NhZ2VzLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZU1lc3NhZ2Vz
Lmg7IHBhdGggPSBNZWRpYVBsYXllclByaXZhdGVSZW1vdGVNZXNzYWdlcy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwotCQkwN0UxOUVGQTIzRDQwMUYwMDA5NEZGQjQgLyogTWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlTWVzc2FnZXNSZXBsaWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgbmFtZSA9IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZU1lc3NhZ2VzUmVwbGllcy5oOyBwYXRo
ID0gTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlTWVzc2FnZXNSZXBsaWVzLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTA3RTE5RUY4MjNENDAxRjAwMDk0RkZCNCAvKiBNZWRpYVBsYXll
clByaXZhdGVSZW1vdGVNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlTWVzc2FnZVJlY2VpdmVyLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDdFMTlFRjkyM0Q0MDFGMDAwOTRGRkI0
IC8qIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZU1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZU1lc3NhZ2VzLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA3RTE5RUZBMjNENDAxRjAwMDk0RkZCNCAvKiBNZWRp
YVBsYXllclByaXZhdGVSZW1vdGVNZXNzYWdlc1JlcGxpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlTWVzc2FnZXNSZXBsaWVzLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA4NjdENkE1RkU4NDAzMDdDMDJBQUMwNyAv
KiBBcHBLaXQuZnJhbWV3b3JrICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gd3JhcHBlci5mcmFtZXdvcms7IG5hbWUgPSBBcHBLaXQuZnJhbWV3b3JrOyBw
YXRoID0gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXBwS2l0LmZyYW1ld29yazsgc291cmNl
VHJlZSA9ICI8YWJzb2x1dGU+IjsgfTsKIAkJMDg5QzE2NjdGRTg0MTE1OEMwMkFBQzA3IC8qIGVu
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dC5wbGlzdC5zdHJpbmdzOyBuYW1lID0gZW47IHBhdGggPSBlbi5scHJv
ai9JbmZvUGxpc3Quc3RyaW5nczsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEU5N0Q3
NEMyMDBFOEZGMzAwQkY2NjQzIC8qIFNhZmVCcm93c2luZ1NQSS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBT
YWZlQnJvd3NpbmdTUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTUxMzAsNyAr
NTEyOSw2IEBACiAJCUY2MTEzRTI2MTI2Q0UxOUIwMDU3RDBBNyAvKiBXS1VzZXJDb250ZW50VVJM
UGF0dGVybi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXS1VzZXJD
b250ZW50VVJMUGF0dGVybi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY2MTEz
RTI3MTI2Q0UxOUIwMDU3RDBBNyAvKiBXS1VzZXJDb250ZW50VVJMUGF0dGVybi5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1VzZXJDb250ZW50VVJMUGF0dGVybi5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNjM0NDQ1NTEyQTg4NUM4MDAwNjEyRDggLyogQVBJ
U2VjdXJpdHlPcmlnaW4uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQVBJU2Vj
dXJpdHlPcmlnaW4uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRjYzODk1NEYxMzNC
RUYzODAwODk0MUQ1IC8qIEhUVFBDb29raWVBY2NlcHRQb2xpY3kuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gSFRUUENvb2tpZUFjY2VwdFBvbGljeS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlGNkEwQzEzRjEzMjgxRTZFMDA3MDQzMEYgLyogUmVzb3VyY2VDYWNo
ZXNUb0NsZWFyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlc291cmNlQ2Fj
aGVzVG9DbGVhci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNkE5MDgxMTEzM0Mx
RjNEMDA4MkMzRjQgLyogV2ViQ29va2llTWFuYWdlck1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkNvb2tpZU1hbmFnZXJNYWMubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUY2RDYzMkJBMTMzRDE4MUIwMDc0M0Q3NyAvKiBXZWJDb29raWVN
YW5hZ2VyUHJveHlNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBXZWJDb29raWVNYW5hZ2VyUHJveHlNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC01Njk3LDcgKzU2OTUsNiBAQAogCQkJCTFBMTRGOERGMUQ3NEM4MzQwMDZDQkVDNiAvKiBG
cmFtZUluZm9EYXRhLmNwcCAqLywKIAkJCQkxQTE0RjhFMDFENzRDODM0MDA2Q0JFQzYgLyogRnJh
bWVJbmZvRGF0YS5oICovLAogCQkJCTFBQzc1QTFBMUIzMzY4MjcwMDU2NzQ1QiAvKiBIYW5nRGV0
ZWN0aW9uRGlzYWJsZXIuaCAqLywKLQkJCQlGNjM4OTU0RjEzM0JFRjM4MDA4OTQxRDUgLyogSFRU
UENvb2tpZUFjY2VwdFBvbGljeS5oICovLAogCQkJCUJDQ0Y2QjIzMTJDOTNFN0EwMDhGOUMzNSAv
KiBJbWFnZU9wdGlvbnMuaCAqLywKIAkJCQkxQTkyREMxMjEyRjhCQUI5MDAxN0FGNjUgLyogTGF5
ZXJUcmVlQ29udGV4dC5jcHAgKi8sCiAJCQkJMUE5MkRDMTAxMkY4QkE0NjAwMTdBRjY1IC8qIExh
eWVyVHJlZUNvbnRleHQuaCAqLywKQEAgLTEwMjE4LDcgKzEwMjE1LDYgQEAKIAkJCQk1NzcyRjIw
NjIxN0RCRDZBMDA1NkJGMkMgLyogSGlkU2VydmljZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzEy
Q0M5RjIyMTVCMDZGMTAwREU0MENBIC8qIEhpZ2hQZXJmb3JtYW5jZUdQVU1hbmFnZXIuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTgzOUEyRjMyMUUyMDY3NDUwMDM5MDU3RSAvKiBIaWdoUGVyZm9ybWFu
Y2VHcmFwaGljc1VzYWdlU2FtcGxlci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMzdGOTBERTMxMzc2
NTYwRTAwNTFDRjY4IC8qIEhUVFBDb29raWVBY2NlcHRQb2xpY3kuaCBpbiBIZWFkZXJzICovLAog
CQkJCTUxQzBDOTc0MURERDc2MDAwMDMyQ0FEMyAvKiBJY29uTG9hZGluZ0RlbGVnYXRlLmggaW4g
SGVhZGVycyAqLywKIAkJCQk1MUUzNTFDQjE4MEYyQ0NDMDBFNTNCRTkgLyogSURCVXRpbGl0aWVz
LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0NGNkIyNTEyQzkzRTdBMDA4RjlDMzUgLyogSW1hZ2VP
cHRpb25zLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCmluZGV4IGZk
MDBkNzg2NGI1YTUzZmI3NDMwZTE2Yjg3MGNhNjJjYjAwYWRkYTQuLjVmM2NjYTkzZTNhY2U0NTU1
YzEwYzhiNTlmMDZmMWFkZTQxY2U0ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmNwcApAQCAt
NTYsNiArNTYsNyBAQAogI2luY2x1ZGUgIldlYlNvY2tldFN0cmVhbS5oIgogI2luY2x1ZGUgIldl
YlNvY2tldFN0cmVhbU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9DYWNoZWRSZXNvdXJj
ZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvSFRUUENvb2tpZUFjY2VwdFBvbGljeS5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvTWVtb3J5Q2FjaGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL01lc3NhZ2VQb3J0
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TaGFyZWRCdWZmZXIuaD4KQEAgLTY4LDggKzY5LDkgQEAK
IG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKLU5ldHdvcmtQ
cm9jZXNzQ29ubmVjdGlvbjo6TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKElQQzo6Q29ubmVjdGlv
bjo6SWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRpZmllcikKK05ldHdvcmtQcm9jZXNzQ29ubmVj
dGlvbjo6TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmll
ciBjb25uZWN0aW9uSWRlbnRpZmllciwgSFRUUENvb2tpZUFjY2VwdFBvbGljeSBjb29raWVBY2Nl
cHRQb2xpY3kpCiAgICAgOiBtX2Nvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uOjpjcmVhdGVDbGll
bnRDb25uZWN0aW9uKGNvbm5lY3Rpb25JZGVudGlmaWVyLCAqdGhpcykpCisgICAgLCBtX2Nvb2tp
ZUFjY2VwdFBvbGljeShjb29raWVBY2NlcHRQb2xpY3kpCiB7CiAgICAgbV9jb25uZWN0aW9uLT5v
cGVuKCk7CiB9CkBAIC0yMDQsNyArMjA2LDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rp
b246OmRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OlMKIAog
dm9pZCBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OndyaXRlQmxvYnNUb1RlbXBvcmFyeUZpbGVz
KGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBibG9iVVJMcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChW
ZWN0b3I8U3RyaW5nPiYmIGZpbGVQYXRocyk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAg
V2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCku
Y29ubmVjdGlvbigpLnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3M6OldyaXRlQmxvYnNUb1RlbXBvcmFyeUZpbGVzKGJsb2JVUkxzKSwgV1RG
TW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworICAgIGNvbm5lY3Rpb24oKS5zZW5kV2l0aEFzeW5j
UmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpXcml0ZUJsb2Jz
VG9UZW1wb3JhcnlGaWxlcyhibG9iVVJMcyksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsK
IH0KIAogdm9pZCBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZEZpbmlzaFBpbmdMb2FkKHVp
bnQ2NF90IHBpbmdMb2FkSWRlbnRpZmllciwgUmVzb3VyY2VFcnJvciYmIGVycm9yLCBSZXNvdXJj
ZVJlc3BvbnNlJiYgcmVzcG9uc2UpCkBAIC0yMjIsNiArMjI0LDE2IEBAIHZvaWQgTmV0d29ya1By
b2Nlc3NDb25uZWN0aW9uOjpzZXRPbkxpbmVTdGF0ZShib29sIGlzT25MaW5lKQogICAgIFdlYlBy
b2Nlc3M6OnNpbmdsZXRvbigpLndlYkxvYWRlclN0cmF0ZWd5KCkuc2V0T25MaW5lU3RhdGUoaXNP
bkxpbmUpOwogfQogCitib29sIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6Y29va2llc0VuYWJs
ZWQoKSBjb25zdAoreworICAgIHJldHVybiBtX2Nvb2tpZUFjY2VwdFBvbGljeSAhPSBIVFRQQ29v
a2llQWNjZXB0UG9saWN5OjpOZXZlcjsKK30KKwordm9pZCBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rp
b246OmNvb2tpZUFjY2VwdFBvbGljeUNoYW5nZWQoSFRUUENvb2tpZUFjY2VwdFBvbGljeSBuZXdQ
b2xpY3kpCit7CisgICAgbV9jb29raWVBY2NlcHRQb2xpY3kgPSBuZXdQb2xpY3k7Cit9CisKICNp
ZiBFTkFCTEUoU0hBUkVBQkxFX1JFU09VUkNFKQogdm9pZCBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rp
b246OmRpZENhY2hlUmVzb3VyY2UoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25z
dCBTaGFyZWFibGVSZXNvdXJjZTo6SGFuZGxlJiBoYW5kbGUpCiB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uaCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlv
bi5oCmluZGV4IDJhNDk2YTllNGU0MzM5ZWIwNTg0YWEyMjY0MjFmNjIwYjEwZGRjZGIuLjUxZmRm
MzU0NTI0ZDkxNWRkZjZlZDU5NGM3ZDJjMGZkODYzM2Q5ZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlv
bi5oCkBAIC00Myw2ICs0Myw3IEBAIGNsYXNzIFJlc291cmNlUmVxdWVzdDsKIGNsYXNzIFJlc291
cmNlUmVzcG9uc2U7CiBzdHJ1Y3QgTWVzc2FnZVBvcnRJZGVudGlmaWVyOwogc3RydWN0IE1lc3Nh
Z2VXaXRoTWVzc2FnZVBvcnRzOworZW51bSBjbGFzcyBIVFRQQ29va2llQWNjZXB0UG9saWN5IDog
dWludDhfdDsKIH0KIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC01NCw5ICs1NSw5IEBAIHR5cGVk
ZWYgdWludDY0X3QgUmVzb3VyY2VMb2FkSWRlbnRpZmllcjsKIAogY2xhc3MgTmV0d29ya1Byb2Nl
c3NDb25uZWN0aW9uIDogcHVibGljIFJlZkNvdW50ZWQ8TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9u
PiwgSVBDOjpDb25uZWN0aW9uOjpDbGllbnQgewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8TmV0
d29ya1Byb2Nlc3NDb25uZWN0aW9uPiBjcmVhdGUoSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVy
IGNvbm5lY3Rpb25JZGVudGlmaWVyKQorICAgIHN0YXRpYyBSZWY8TmV0d29ya1Byb2Nlc3NDb25u
ZWN0aW9uPiBjcmVhdGUoSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVu
dGlmaWVyLCBXZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0UG9saWN5IGh0dHBDb29raWVBY2NlcHRQ
b2xpY3kpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBOZXR3b3JrUHJvY2Vz
c0Nvbm5lY3Rpb24oY29ubmVjdGlvbklkZW50aWZpZXIpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKGNvbm5lY3Rpb25JZGVudGlmaWVyLCBo
dHRwQ29va2llQWNjZXB0UG9saWN5KSk7CiAgICAgfQogICAgIH5OZXR3b3JrUHJvY2Vzc0Nvbm5l
Y3Rpb24oKTsKICAgICAKQEAgLTgwLDggKzgxLDEwIEBAIHB1YmxpYzoKICAgICBPcHRpb25hbDxh
dWRpdF90b2tlbl90PiBuZXR3b3JrUHJvY2Vzc0F1ZGl0VG9rZW4oKSBjb25zdCB7IHJldHVybiBt
X25ldHdvcmtQcm9jZXNzQXVkaXRUb2tlbjsgfQogI2VuZGlmCiAKKyAgICBib29sIGNvb2tpZXNF
bmFibGVkKCkgY29uc3Q7CisKIHByaXZhdGU6Ci0gICAgTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9u
KElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllcik7CisgICAgTmV0d29ya1Byb2Nlc3NDb25uZWN0
aW9uKElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciwgV2ViQ29yZTo6SFRUUENvb2tpZUFjY2Vw
dFBvbGljeSk7CiAKICAgICAvLyBJUEM6OkNvbm5lY3Rpb246OkNsaWVudAogICAgIHZvaWQgZGlk
UmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgb3ZlcnJpZGU7
CkBAIC05Miw2ICs5NSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRGaW5pc2hQaW5nTG9hZCh1
aW50NjRfdCBwaW5nTG9hZElkZW50aWZpZXIsIFdlYkNvcmU6OlJlc291cmNlRXJyb3ImJiwgV2Vi
Q29yZTo6UmVzb3VyY2VSZXNwb25zZSYmKTsKICAgICB2b2lkIGRpZEZpbmlzaFByZWNvbm5lY3Rp
b24odWludDY0X3QgcHJlY29ubmVjdGlvbklkZW50aWZpZXIsIFdlYkNvcmU6OlJlc291cmNlRXJy
b3ImJik7CiAgICAgdm9pZCBzZXRPbkxpbmVTdGF0ZShib29sIGlzT25MaW5lKTsKKyAgICB2b2lk
IGNvb2tpZUFjY2VwdFBvbGljeUNoYW5nZWQoV2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBvbGlj
eSk7CiAKICAgICB2b2lkIGNoZWNrUHJvY2Vzc0xvY2FsUG9ydEZvckFjdGl2aXR5KGNvbnN0IFdl
YkNvcmU6Ok1lc3NhZ2VQb3J0SWRlbnRpZmllciYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2Vi
Q29yZTo6TWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXI6Okhhc0FjdGl2aXR5KT4mJik7CiAgICAg
dm9pZCBtZXNzYWdlc0F2YWlsYWJsZUZvclBvcnQoY29uc3QgV2ViQ29yZTo6TWVzc2FnZVBvcnRJ
ZGVudGlmaWVyJik7CkBAIC0xMTQsNiArMTE4LDcgQEAgcHJpdmF0ZToKICNpZiBFTkFCTEUoU0VS
VklDRV9XT1JLRVIpCiAgICAgUmVmUHRyPFdlYlNXQ2xpZW50Q29ubmVjdGlvbj4gbV9zd0Nvbm5l
Y3Rpb247CiAjZW5kaWYKKyAgICBXZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0UG9saWN5IG1fY29v
a2llQWNjZXB0UG9saWN5OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rp
b24ubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3Jr
UHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4KaW5kZXggNGQ2MzRjNTdiOWM3OTk1MDQ4YTA4
MGYyN2YzZTMyZTUzMDUyNmFlYi4uMmFhNjg4NmU1N2E1OTljYmMxN2MzNWY2Yjc0ZTk5ZDJhYjNh
ODllNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29y
a1Byb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgpAQCAtMjks
NiArMjksNyBAQCBtZXNzYWdlcyAtPiBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24gTGVnYWN5UmVj
ZWl2ZXIgewogICAgIERpZEZpbmlzaFBpbmdMb2FkKHVpbnQ2NF90IHBpbmdMb2FkSWRlbnRpZmll
ciwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBlcnJvciwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25z
ZSByZXNwb25zZSkKICAgICBEaWRGaW5pc2hQcmVjb25uZWN0aW9uKHVpbnQ2NF90IHByZWNvbm5l
Y3Rpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGVycm9yKQogICAgIFNldE9u
TGluZVN0YXRlKGJvb2wgaXNPbkxpbmUpOworICAgIENvb2tpZUFjY2VwdFBvbGljeUNoYW5nZWQo
ZW51bTp1aW50OF90IFdlYkNvcmU6OkhUVFBDb29raWVBY2NlcHRQb2xpY3kgcG9saWN5KTsKIAog
ICAgIENoZWNrUHJvY2Vzc0xvY2FsUG9ydEZvckFjdGl2aXR5KHN0cnVjdCBXZWJDb3JlOjpNZXNz
YWdlUG9ydElkZW50aWZpZXIgcG9ydCkgLT4gKFdlYkNvcmU6Ok1lc3NhZ2VQb3J0Q2hhbm5lbFBy
b3ZpZGVyOjpIYXNBY3Rpdml0eSBoYXNBY3Rpdml0eSkgQXN5bmMKICAgICBNZXNzYWdlc0F2YWls
YWJsZUZvclBvcnQoc3RydWN0IFdlYkNvcmU6Ok1lc3NhZ2VQb3J0SWRlbnRpZmllciBwb3J0KQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nl
c3NDb25uZWN0aW9uSW5mby5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0
d29ya1Byb2Nlc3NDb25uZWN0aW9uSW5mby5oCmluZGV4IDVjMDU2OGM0YWExZjljZGZkODhjMzFh
M2UzZmQ3YTRjZGJjODk0YTQuLjM2N2I4YTM4MDllMzdiMTViZGJlMGI0NmE0MTg1Njc3N2ZiYWYy
ZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQ
cm9jZXNzQ29ubmVjdGlvbkluZm8uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0
d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25JbmZvLmgKQEAgLTI1LDEwICsyNSwxMyBAQAog
CiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgPFdlYkNvcmUvSFRUUENvb2tpZUFjY2VwdFBvbGlj
eS5oPgorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogc3RydWN0IE5ldHdvcmtQcm9jZXNzQ29ubmVj
dGlvbkluZm8gewogICAgIElQQzo6QXR0YWNobWVudCBjb25uZWN0aW9uOworICAgIFdlYkNvcmU6
OkhUVFBDb29raWVBY2NlcHRQb2xpY3kgY29va2llQWNjZXB0UG9saWN5OwogI2lmIEhBVkUoQVVE
SVRfVE9LRU4pCiAgICAgT3B0aW9uYWw8YXVkaXRfdG9rZW5fdD4gYXVkaXRUb2tlbjsKICNlbmRp
ZgpAQCAtNjEsNiArNjQsNyBAQCBzdHJ1Y3QgTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uSW5mbyB7
CiAgICAgdm9pZCBlbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIHsKICAg
ICAgICAgZW5jb2RlciA8PCBjb25uZWN0aW9uOworICAgICAgICBlbmNvZGVyIDw8IGNvb2tpZUFj
Y2VwdFBvbGljeTsKICNpZiBIQVZFKEFVRElUX1RPS0VOKQogICAgICAgICBlbmNvZGVyIDw8IGF1
ZGl0VG9rZW47CiAjZW5kaWYKQEAgLTcwLDYgKzc0LDggQEAgc3RydWN0IE5ldHdvcmtQcm9jZXNz
Q29ubmVjdGlvbkluZm8gewogICAgIHsKICAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShpbmZv
LmNvbm5lY3Rpb24pKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlRW51bShpbmZvLmNvb2tpZUFjY2VwdFBvbGljeSkpCisgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAjaWYgSEFWRShBVURJVF9UT0tFTikKICAgICAgICAgaWYgKCFkZWNvZGVy
LmRlY29kZShpbmZvLmF1ZGl0VG9rZW4pKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViQ29va2llSmFyLmNw
cCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkNvb2tpZUphci5jcHAKaW5k
ZXggNTg4MGJiZmM0ZDk4NmMxZTUwMTg2OWRlOTU0ZDZhNTc5MTg3M2NiNy4uMzI1ODMwNWM3ODlk
Nzc1ZmUxNWMxYzA4MjhjMzZlOWUyZjJhODYwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViQ29va2llSmFyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJDb29raWVKYXIuY3BwCkBAIC0xMjksMTIgKzEyOSwxOSBAQCB2
b2lkIFdlYkNvb2tpZUphcjo6c2V0Q29va2llcyhXZWJDb3JlOjpEb2N1bWVudCYgZG9jdW1lbnQs
IGNvbnN0IFVSTCYgdXJsLCBjb25zdAogICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3Vy
ZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpO
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6U2V0Q29va2llc0Zyb21ET00oZG9jdW1lbnQu
Zmlyc3RQYXJ0eUZvckNvb2tpZXMoKSwgc2FtZVNpdGVJbmZvKGRvY3VtZW50KSwgdXJsLCBmcmFt
ZUlELCBwYWdlSUQsIHNob3VsZEFza0lUUEluTmV0d29ya1Byb2Nlc3MsIGNvb2tpZVN0cmluZyks
IDApOwogfQogCi1ib29sIFdlYkNvb2tpZUphcjo6Y29va2llc0VuYWJsZWQoY29uc3QgV2ViQ29y
ZTo6RG9jdW1lbnQmIGRvY3VtZW50KSBjb25zdAorYm9vbCBXZWJDb29raWVKYXI6OmNvb2tpZXNF
bmFibGVkKGNvbnN0IERvY3VtZW50JiBkb2N1bWVudCkgY29uc3QKIHsKLSAgICBib29sIHJlc3Vs
dCA9IGZhbHNlOwotICAgIGlmICghV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlTmV0d29y
a1Byb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmRTeW5jKE1lc3NhZ2VzOjpOZXR3
b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Q29va2llc0VuYWJsZWQoKSwgTWVzc2FnZXM6Ok5l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpDb29raWVzRW5hYmxlZDo6UmVwbHkocmVzdWx0
KSwgMCkpCisgICAgYXV0byogd2ViRnJhbWUgPSBkb2N1bWVudC5mcmFtZSgpID8gV2ViRnJhbWU6
OmZyb21Db3JlRnJhbWUoKmRvY3VtZW50LmZyYW1lKCkpIDogbnVsbHB0cjsKKyAgICBpZiAoIXdl
YkZyYW1lIHx8ICF3ZWJGcmFtZS0+cGFnZSgpKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAg
cmV0dXJuIHJlc3VsdDsKKworI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisg
ICAgU2hvdWxkQXNrSVRQIGR1bW15OworICAgIGlmIChzaG91bGRCbG9ja0Nvb2tpZXMod2ViRnJh
bWUsIGRvY3VtZW50LmZpcnN0UGFydHlGb3JDb29raWVzKCksIGRvY3VtZW50LmNvb2tpZVVSTCgp
LCBkdW1teSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyNlbmRpZgorCisgICAgcmV0dXJuIFdl
YlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLmNv
b2tpZXNFbmFibGVkKCk7CiB9CiAKIHN0ZDo6cGFpcjxTdHJpbmcsIFdlYkNvcmU6OlNlY3VyZUNv
b2tpZXNBY2Nlc3NlZD4gV2ViQ29va2llSmFyOjpjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1
ZShjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlNhbWVTaXRlSW5mbyYgc2Ft
ZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFt
ZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBXZWJDb3JlOjpJbmNsdWRlU2Vj
dXJlQ29va2llcyBpbmNsdWRlU2VjdXJlQ29va2llcykgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQcm9jZXNzLmNwcAppbmRleCBjYTQxOGNkNzAyZjhlY2QzNmQyMTFlZTZkZGJhYTZh
Zjc5ZjBlMjVmLi42NWM5YmM0Y2E3NmFjOTUwZGQ5NjgyZTEyMjRkY2I4ZjZlMGU0OGZlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCkBAIC0xMTkxLDcgKzExOTEsNyBA
QCBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24mIFdlYlByb2Nlc3M6OmVuc3VyZU5ldHdvcmtQcm9j
ZXNzQ29ubmVjdGlvbigpCiAgICAgICAgIGlmICghSVBDOjpDb25uZWN0aW9uOjppZGVudGlmaWVy
SXNWYWxpZChjb25uZWN0aW9uSW5mby5pZGVudGlmaWVyKCkpKQogICAgICAgICAgICAgQ1JBU0go
KTsKIAotICAgICAgICBtX25ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbiA9IE5ldHdvcmtQcm9jZXNz
Q29ubmVjdGlvbjo6Y3JlYXRlKGNvbm5lY3Rpb25JbmZvLnJlbGVhc2VJZGVudGlmaWVyKCkpOwor
ICAgICAgICBtX25ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbiA9IE5ldHdvcmtQcm9jZXNzQ29ubmVj
dGlvbjo6Y3JlYXRlKGNvbm5lY3Rpb25JbmZvLnJlbGVhc2VJZGVudGlmaWVyKCksIGNvbm5lY3Rp
b25JbmZvLmNvb2tpZUFjY2VwdFBvbGljeSk7CiAjaWYgSEFWRShBVURJVF9UT0tFTikKICAgICAg
ICAgbV9uZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24tPnNldE5ldHdvcmtQcm9jZXNzQXVkaXRUb2tl
bihXVEZNb3ZlKGNvbm5lY3Rpb25JbmZvLmF1ZGl0VG9rZW4pKTsKICNlbmRpZgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>