<?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>92749</bug_id>
          
          <creation_ts>2012-07-31 07:11:56 -0700</creation_ts>
          <short_desc>[WK2] Add Navigator Content Utils API support for WebKit2</short_desc>
          <delta_ts>2023-04-03 04:47:39 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>INVALID</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=73177</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>93081</dependson>
          <blocked>61838</blocked>
    
    <blocked>92726</blocked>
    
    <blocked>93353</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Mikhail Pozdnyakov">mikhail.pozdnyakov</reporter>
          <assigned_to name="Gyuyoung Kim">gyuyoung.kim</assigned_to>
          <cc>abecsi</cc>
    
    <cc>andersca</cc>
    
    <cc>annevk</cc>
    
    <cc>ap</cc>
    
    <cc>beidson</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>gustavo</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hausmann</cc>
    
    <cc>kenneth</cc>
    
    <cc>laszlo.gombos</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>menard</cc>
    
    <cc>mkwst</cc>
    
    <cc>naginenis</cc>
    
    <cc>rakuco</cc>
    
    <cc>rniwa</cc>
    
    <cc>sam</cc>
    
    <cc>sh919.park</cc>
    
    <cc>vestbo</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
    
    <cc>zoltan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>683004</commentid>
    <comment_count>0</comment_count>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2012-07-31 07:11:56 -0700</bug_when>
    <thetext>WK2 is missing Protocol Handler API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>686583</commentid>
    <comment_count>1</comment_count>
      <attachid>156332</attachid>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2012-08-03 05:14:57 -0700</bug_when>
    <thetext>Created attachment 156332
preliminary patch (do not set any flags)

Register Protocol Handler implementation proposal</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>690122</commentid>
    <comment_count>2</comment_count>
      <attachid>157168</attachid>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2012-08-08 03:49:10 -0700</bug_when>
    <thetext>Created attachment 157168
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>690131</commentid>
    <comment_count>3</comment_count>
      <attachid>157168</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2012-08-08 04:09:55 -0700</bug_when>
    <thetext>Comment on attachment 157168
patch

Attachment 157168 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/13458218</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>690142</commentid>
    <comment_count>4</comment_count>
      <attachid>157168</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-08-08 04:24:17 -0700</bug_when>
    <thetext>Comment on attachment 157168
patch

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

&gt; Source/WebKit2/UIProcess/WebRegisterProtocolHandlerProxy.messages.in:33
&gt; +#endif

Missing // ENABLE(REGISTER_PROTOCOL_HANDLER).

&gt; Source/WebKit2/WebProcess/WebCoreSupport/WebRegisterProtocolHandlerClient.cpp:69
&gt; +

Nit : unneeded line.

&gt; Source/WebKit2/WebProcess/WebCoreSupport/WebRegisterProtocolHandlerClient.cpp:70
&gt; +#endif // ENABLE(CUSTOM_SCHEME_HANDLER)

Nit : It looks an empty line is needed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>690296</commentid>
    <comment_count>5</comment_count>
      <attachid>157215</attachid>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2012-08-08 07:28:14 -0700</bug_when>
    <thetext>Created attachment 157215
patch v2

Fixed build failure on GTK. Gyuyoung, thanks for review!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>690368</commentid>
    <comment_count>6</comment_count>
      <attachid>157215</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-08-08 08:44:07 -0700</bug_when>
    <thetext>Comment on attachment 157215
patch v2

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

Looks like you&apos;re missing the integration with WebContext. You need to add some code in WebContext.cpp and WebContext.h to instantiate your new proxy and properly direct messages to it.

&gt; Source/WebKit2/UIProcess/API/C/WKRegisterProtocolHandler.cpp:29
&gt; +#include &quot;WKAPICast.h&quot;

This can be in the #if ENABLE(REGISTER_PROTOCOL_HANDLER) as well

&gt; Source/WebKit2/UIProcess/API/C/WKRegisterProtocolHandler.cpp:35
&gt; +using namespace WebKit;

Ditto</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>690385</commentid>
    <comment_count>7</comment_count>
      <attachid>157215</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2012-08-08 09:13:33 -0700</bug_when>
    <thetext>Comment on attachment 157215
patch v2

Attachment 157215 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/13461195</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>690391</commentid>
    <comment_count>8</comment_count>
      <attachid>157215</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-08-08 09:21:45 -0700</bug_when>
    <thetext>Comment on attachment 157215
patch v2

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

&gt; Source/WebKit2/GNUmakefile.list.am:1120
&gt; +	Source/WebKit2/WebProcess/WebCoreSupport/WebRegisterProtocolHandlerClient.cpp \

You need to add DerivedSources/WebKit2/WebRegisterProtocolHandlerMessageReceiver.cpp to webkit2_built_sources as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>690736</commentid>
    <comment_count>9</comment_count>
      <attachid>157215</attachid>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2012-08-08 14:26:54 -0700</bug_when>
    <thetext>Comment on attachment 157215
patch v2

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

&gt;&gt; Source/WebKit2/GNUmakefile.list.am:1120
&gt;&gt; +	Source/WebKit2/WebProcess/WebCoreSupport/WebRegisterProtocolHandlerClient.cpp \
&gt; 
&gt; You need to add DerivedSources/WebKit2/WebRegisterProtocolHandlerMessageReceiver.cpp to webkit2_built_sources as well.

think this is done already..</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>690748</commentid>
    <comment_count>10</comment_count>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2012-08-08 14:32:03 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; (From update of attachment 157215 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=157215&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebKit2/GNUmakefile.list.am:1120
&gt; &gt;&gt; +	Source/WebKit2/WebProcess/WebCoreSupport/WebRegisterProtocolHandlerClient.cpp \
&gt; &gt; 
&gt; &gt; You need to add DerivedSources/WebKit2/WebRegisterProtocolHandlerMessageReceiver.cpp to webkit2_built_sources as well.
&gt; 
&gt; think this is done already..

found a typo: WebRegisterProtocolHandlerMessageReceiver.cpp -&gt; WebRegisterProtocolHandlerProxyMessageReceiver.cpp</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>690751</commentid>
    <comment_count>11</comment_count>
      <attachid>157300</attachid>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2012-08-08 14:34:44 -0700</bug_when>
    <thetext>Created attachment 157300
patch v3

Chris, thank you for the review!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>690997</commentid>
    <comment_count>12</comment_count>
      <attachid>157300</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-08-08 17:31:35 -0700</bug_when>
    <thetext>Comment on attachment 157300
patch v3

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

&gt; Source/WebKit2/GNUmakefile.list.am:210
&gt; +        DerivedSources/WebKit2/WebRegisterProtocolHandlerProxyMessageReceiver.cpp \

Nit : wrong indentation.

&gt; Source/WebKit2/GNUmakefile.list.am:906
&gt; +        Source/WebKit2/UIProcess/WebRegisterProtocolHandlerProvider.cpp \

ditto.

&gt; Source/WebKit2/UIProcess/API/C/WKRegisterProtocolHandler.cpp:29
&gt; +#if ENABLE(REGISTER_PROTOCOL_HANDLER)

It looks we don&apos;t need to add this macro to here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>694038</commentid>
    <comment_count>13</comment_count>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2012-08-13 13:47:59 -0700</bug_when>
    <thetext>
&gt; &gt; Source/WebKit2/UIProcess/API/C/WKRegisterProtocolHandler.cpp:29
&gt; &gt; +#if ENABLE(REGISTER_PROTOCOL_HANDLER)
&gt; 
&gt; It looks we don&apos;t need to add this macro to here.
This seems to be completely opposite to what was recommended in Comment #6 by Chris :) Do style guidelines tell anything about this?(I haven&apos;t found anything about it).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>694040</commentid>
    <comment_count>14</comment_count>
      <attachid>158093</attachid>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2012-08-13 13:50:05 -0700</bug_when>
    <thetext>Created attachment 158093
patch v4

Corrected indentation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>694044</commentid>
    <comment_count>15</comment_count>
      <attachid>158093</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-08-13 13:52:52 -0700</bug_when>
    <thetext>Comment on attachment 158093
patch v4

LGTM.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>694344</commentid>
    <comment_count>16</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-08-13 18:18:50 -0700</bug_when>
    <thetext>LGTM too. Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>694846</commentid>
    <comment_count>17</comment_count>
      <attachid>158093</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-08-14 05:05:05 -0700</bug_when>
    <thetext>Comment on attachment 158093
patch v4

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

&gt; Source/WebKit2/CMakeLists.txt:276
&gt; +    UIProcess/WebRegisterProtocolHandlerProvider.cpp

I find the name a big confusing. It sounds like a web-register and then it sounds like a function name instead of a class name. I think we can do better.

It feels really out of place with the other class names

&gt; Source/WebKit2/ChangeLog:8
&gt; +        Added support of Register Protocol Handler API.

Maybe link to http://www.w3.org/TR/html5/system-state-and-capabilities.html#custom-handlers

Also what about content handlers?

&gt; Source/WebKit2/UIProcess/API/C/WKRegisterProtocolHandler.h:46
&gt; +struct WKRegisterProtocolHandlerProvider {

Why is this a provider and not a Client?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>694878</commentid>
    <comment_count>18</comment_count>
      <attachid>158093</attachid>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2012-08-14 05:50:17 -0700</bug_when>
    <thetext>Comment on attachment 158093
patch v4

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

&gt;&gt; Source/WebKit2/CMakeLists.txt:276
&gt;&gt; +    UIProcess/WebRegisterProtocolHandlerProvider.cpp
&gt; 
&gt; I find the name a big confusing. It sounds like a web-register and then it sounds like a function name instead of a class name. I think we can do better.
&gt; 
&gt; It feels really out of place with the other class names

We currently have WebRegisterProtocolHandlerClient in WebProcess.. So I was following the naming that was already there..

&gt;&gt; Source/WebKit2/ChangeLog:8
&gt;&gt; +        Added support of Register Protocol Handler API.
&gt; 
&gt; Maybe link to http://www.w3.org/TR/html5/system-state-and-capabilities.html#custom-handlers
&gt; 
&gt; Also what about content handlers?

Sure, link will be useful. As for content handlers, WebKit does not expose JS API for it yet, think it is out of scope of this patch..

&gt;&gt; Source/WebKit2/UIProcess/API/C/WKRegisterProtocolHandler.h:46
&gt;&gt; +struct WKRegisterProtocolHandlerProvider {
&gt; 
&gt; Why is this a provider and not a Client?

Similar objects are called &quot;providers&quot; in Vibration API, Battery Status API and Geolocation API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>694887</commentid>
    <comment_count>19</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-08-14 05:57:15 -0700</bug_when>
    <thetext>(In reply to comment #18)
&gt; (From update of attachment 158093 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=158093&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebKit2/CMakeLists.txt:276
&gt; &gt;&gt; +    UIProcess/WebRegisterProtocolHandlerProvider.cpp
&gt; &gt; 
&gt; &gt; I find the name a big confusing. It sounds like a web-register and then it sounds like a function name instead of a class name. I think we can do better.
&gt; &gt; 
&gt; &gt; It feels really out of place with the other class names
&gt; 
&gt; We currently have WebRegisterProtocolHandlerClient in WebProcess.. So I was following the naming that was already there..

OK then it is not your fault :-) I am just wondering why it is not called WebProtocolHandlerProvider or so. Why is the Register important? Maybe you cna find out who created the WebRegisterProtocolHandlerClient and ask.

&gt; &gt;&gt; Source/WebKit2/ChangeLog:8
&gt; &gt;&gt; +        Added support of Register Protocol Handler API.
&gt; &gt; 
&gt; &gt; Maybe link to http://www.w3.org/TR/html5/system-state-and-capabilities.html#custom-handlers
&gt; &gt; 
&gt; &gt; Also what about content handlers?
&gt; 
&gt; Sure, link will be useful. As for content handlers, WebKit does not expose JS API for it yet, think it is out of scope of this patch..

OK :-)

&gt; 
&gt; &gt;&gt; Source/WebKit2/UIProcess/API/C/WKRegisterProtocolHandler.h:46
&gt; &gt;&gt; +struct WKRegisterProtocolHandlerProvider {
&gt; &gt; 
&gt; &gt; Why is this a provider and not a Client?
&gt; 
&gt; Similar objects are called &quot;providers&quot; in Vibration API, Battery Status API and Geolocation API

OK, if it is like that in WebKit2 then fine :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>702148</commentid>
    <comment_count>20</comment_count>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2012-08-22 12:02:37 -0700</bug_when>
    <thetext>Sam (or anyone), could you please take a look? it&apos;s been pending for a while..:(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>702520</commentid>
    <comment_count>21</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-08-22 16:47:17 -0700</bug_when>
    <thetext>I wonder if this patch is able to unskip tests related to protocol handler in WK2 layout test.

http://trac.webkit.org/browser/trunk/LayoutTests/platform/efl-wk2/TestExpectations#L45</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>702737</commentid>
    <comment_count>22</comment_count>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2012-08-22 23:48:39 -0700</bug_when>
    <thetext>(In reply to comment #21)
&gt; I wonder if this patch is able to unskip tests related to protocol handler in WK2 layout test.
&gt; 
&gt; http://trac.webkit.org/browser/trunk/LayoutTests/platform/efl-wk2/TestExpectations#L45

The dependent bug 92726 will.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>703950</commentid>
    <comment_count>23</comment_count>
      <attachid>158093</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2012-08-24 03:26:01 -0700</bug_when>
    <thetext>Comment on attachment 158093
patch v4

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

&gt; Source/WebKit2/UIProcess/API/C/WKRegisterProtocolHandler.h:38
&gt; +    kWKCustomHandlersNew,
&gt; +    kWKCustomHandlersRegistered,
&gt; +    kWKCustomHandlersDeclined

The use of &quot;Custom&quot; in the name here seems &quot;lonely&quot; as it doesn not appear anywhere else in the API. How about kWKProtocolHandlerRegistrationStatus and kWKProtocolHandlerNew, kWKProtocolHandlerRegistered as well as kWKProtocolHandlerDenied?

&gt; Source/WebKit2/UIProcess/API/C/WKRegisterProtocolHandler.h:59
&gt; +WK_EXPORT void WKRegisterProtocolHandlerSetProvider(WKRegisterProtocolHandlerRef registerProtocolHandlerRef, const WKRegisterProtocolHandlerProvider* provider);

I don&apos;t think it is very common to have the primary name of an API start with a verb. I think a better fitting name would be for example &quot;ProtocolHandlerRegistry&quot; and therefore WKSetProtocolHandlerRegistryProvider.

&gt; Source/WebKit2/UIProcess/WebContext.cpp:149
&gt; +    , m_registerProtocolHandlerProxy(WebRegisterProtocolHandlerProxy::create(this))

This is an example of why I think having a verb as the first word in the name sounds strange. m_registerProtocolHandlerProxy sounds more like a function name than a noun, hence my suggestion of for example
m_protocolHandlerRegistryProxy or maybe just simply m_customProtocolHandlerProxy.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>703975</commentid>
    <comment_count>24</comment_count>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2012-08-24 04:12:41 -0700</bug_when>
    <thetext>(In reply to comment #23)
&gt; (From update of attachment 158093 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=158093&amp;action=review
&gt; I don&apos;t think it is very common to have the primary name of an API start with a verb. I think a better fitting name would be for example &quot;ProtocolHandlerRegistry&quot; and therefore WKSetProtocolHandlerRegistryProvider.
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/WebContext.cpp:149
&gt; &gt; +    , m_registerProtocolHandlerProxy(WebRegisterProtocolHandlerProxy::create(this))
&gt; 
&gt; This is an example of why I think having a verb as the first word in the name sounds strange. m_registerProtocolHandlerProxy sounds more like a function name than a noun, hence my suggestion of for example
&gt; m_protocolHandlerRegistryProxy or maybe just simply m_customProtocolHandlerProxy.

As I mentioned in the comment #18 such naming is already in WebKit, so have to be consistent. However I absolutely agree that the API should be renamed according to specs (http://www.w3.org/TR/html5/system-state-and-capabilities.html#custom-handlers), filed a separate bug for it 
https://bugs.webkit.org/show_bug.cgi?id=94920. I do not think it should be a blocker for this bug, as this bug just creates WK2 IPC infrastructure on top of the existing API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>705110</commentid>
    <comment_count>25</comment_count>
      <attachid>158093</attachid>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2012-08-27 02:36:42 -0700</bug_when>
    <thetext>Comment on attachment 158093
patch v4

Need rebasing after bug94920 landed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>705136</commentid>
    <comment_count>26</comment_count>
      <attachid>160687</attachid>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2012-08-27 03:34:44 -0700</bug_when>
    <thetext>Created attachment 160687
patch v5

Rebased.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>712074</commentid>
    <comment_count>27</comment_count>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2012-09-05 08:18:37 -0700</bug_when>
    <thetext>Here is a good description of how protocol handlers can be used and why they are needed:
https://developer.mozilla.org/en-US/docs/Web-based_protocol_handlers

protocol handler API is supported by Chromium and Firefox currently and I strongly believe that any WK2 client will benefit from it as well. 

Protocol handler should be applied to all the pages and that is why the proposed implementation is in WebContext.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>731290</commentid>
    <comment_count>28</comment_count>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2012-09-30 04:43:39 -0700</bug_when>
    <thetext>Anything left to get this in? Simon, Kenneth?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>908742</commentid>
    <comment_count>29</comment_count>
    <who name="Sanghyun Park">sh919.park</who>
    <bug_when>2013-07-16 01:37:16 -0700</bug_when>
    <thetext>Is there any progress on this? 
If there is no progress, I want to follow up  this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>913306</commentid>
    <comment_count>30</comment_count>
      <attachid>207839</attachid>
    <who name="Sanghyun Park">sh919.park</who>
    <bug_when>2013-07-31 05:14:14 -0700</bug_when>
    <thetext>Created attachment 207839
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>913332</commentid>
    <comment_count>31</comment_count>
      <attachid>207839</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2013-07-31 06:02:57 -0700</bug_when>
    <thetext>Comment on attachment 207839
Patch

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

&gt; Source/WebKit2/ChangeLog:1
&gt; +2013-07-31  Sanghyun Park  &lt;sh919.park@samsung.com&gt;

It is not acceptable not to mention the original author of the patch.

&gt; Source/WebKit2/UIProcess/API/C/WKNavigatorContentUtils.cpp:2
&gt; + * Copyright (C) 2013 Samsung Electronics. All rights reserved.

It is not acceptable either to strip / replace Intel&apos;s copyright as they wrote the initial patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>913353</commentid>
    <comment_count>32</comment_count>
    <who name="Sanghyun Park">sh919.park</who>
    <bug_when>2013-07-31 06:35:53 -0700</bug_when>
    <thetext>(In reply to comment #31)
&gt; (From update of attachment 207839 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=207839&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/ChangeLog:1
&gt; &gt; +2013-07-31  Sanghyun Park  &lt;sh919.park@samsung.com&gt;
&gt; 
&gt; It is not acceptable not to mention the original author of the patch.
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/C/WKNavigatorContentUtils.cpp:2
&gt; &gt; + * Copyright (C) 2013 Samsung Electronics. All rights reserved.
&gt; 
&gt; It is not acceptable either to strip / replace Intel&apos;s copyright as they wrote the initial patch.

Thank you for review.
I&apos;ll fix these.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>913376</commentid>
    <comment_count>33</comment_count>
      <attachid>207853</attachid>
    <who name="Sanghyun Park">sh919.park</who>
    <bug_when>2013-07-31 08:38:19 -0700</bug_when>
    <thetext>Created attachment 207853
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>913614</commentid>
    <comment_count>34</comment_count>
      <attachid>207853</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2013-07-31 19:41:10 -0700</bug_when>
    <thetext>Comment on attachment 207853
Patch

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

&gt; Source/WebKit2/ChangeLog:1
&gt; +2013-07-31  Sanghyun Park  &lt;sh919.park@samsung.com&gt;

Or, you can add original author name as below,

Mikhail Pozdnyakov &lt;mikhail.pozdnyakov@intel.com&gt;, Sanghyun Park &lt;sh919.park@samsung.com&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>913629</commentid>
    <comment_count>35</comment_count>
    <who name="Sanghyun Park">sh919.park</who>
    <bug_when>2013-07-31 21:29:10 -0700</bug_when>
    <thetext>(In reply to comment #34)
&gt; (From update of attachment 207853 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=207853&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/ChangeLog:1
&gt; &gt; +2013-07-31  Sanghyun Park  &lt;sh919.park@samsung.com&gt;
&gt; 
&gt; Or, you can add original author name as below,
&gt; 
&gt; Mikhail Pozdnyakov &lt;mikhail.pozdnyakov@intel.com&gt;, Sanghyun Park &lt;sh919.park@samsung.com&gt;

I will refer this, too. Thank you.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1069297</commentid>
    <comment_count>36</comment_count>
      <attachid>207853</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2015-02-15 01:06:45 -0800</bug_when>
    <thetext>Comment on attachment 207853
Patch

I think this patch should be rebased against latest trunk. Please update this patch. If you&apos;re not interested in this patch anymore, I would like to take over this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1093680</commentid>
    <comment_count>37</comment_count>
      <attachid>252847</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2015-05-11 01:01:23 -0700</bug_when>
    <thetext>Created attachment 252847
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1094094</commentid>
    <comment_count>38</comment_count>
      <attachid>252943</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2015-05-11 23:50:12 -0700</bug_when>
    <thetext>Created attachment 252943
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1094095</commentid>
    <comment_count>39</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-05-11 23:51:35 -0700</bug_when>
    <thetext>Attachment 252943 did not pass style-queue:


ERROR: Source/WebKit2/WebProcess/WebCoreSupport/WebNavigatorContentUtilsClient.h:34:  Do not use &apos;using namespace WebCore;&apos;.  [build/using_namespace] [4]
Total errors found: 1 in 22 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1094423</commentid>
    <comment_count>40</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2015-05-12 22:51:55 -0700</bug_when>
    <thetext>This feature has been supported by Chromium and Mozilla. So I would like to support this feature for WebKit as well. Could anyone take a look ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1094742</commentid>
    <comment_count>41</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2015-05-13 23:31:12 -0700</bug_when>
    <thetext>CC&apos;ing Darin, I wonder if you can take a look this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1095147</commentid>
    <comment_count>42</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2015-05-15 10:12:54 -0700</bug_when>
    <thetext>Support for navigator.registerProtocolHandler/unregisterProtocolHandler is not something we want to support in WebKit2 at this time as we are not confident it is a good Web API. This might be a good conversation for webkit-dev.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1106610</commentid>
    <comment_count>43</comment_count>
      <attachid>256069</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2015-07-02 21:04:17 -0700</bug_when>
    <thetext>Created attachment 256069
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1106611</commentid>
    <comment_count>44</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-07-02 21:07:13 -0700</bug_when>
    <thetext>Attachment 256069 did not pass style-queue:


ERROR: Source/WebKit2/WebProcess/WebCoreSupport/WebNavigatorContentUtilsClient.h:34:  Do not use &apos;using namespace WebCore;&apos;.  [build/using_namespace] [4]
Total errors found: 1 in 22 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1106612</commentid>
    <comment_count>45</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2015-07-02 21:10:09 -0700</bug_when>
    <thetext>(In reply to comment #42)
&gt; Support for navigator.registerProtocolHandler/unregisterProtocolHandler is
&gt; not something we want to support in WebKit2 at this time as we are not
&gt; confident it is a good Web API. This might be a good conversation for
&gt; webkit-dev.

Though I headed up this API implementation on webkit-dev, I didn&apos;t get clear reason yet why we shouldn&apos;t support this feature now. Instead, some people wanted to support this feature.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1106864</commentid>
    <comment_count>46</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-07-04 09:38:44 -0700</bug_when>
    <thetext>I know you waited a long time and got no reply from Sam. But I still think we need to wait for Sam’s reply. Sam, is that right?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1106875</commentid>
    <comment_count>47</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2015-07-04 10:27:08 -0700</bug_when>
    <thetext>(In reply to comment #46)
&gt; I know you waited a long time and got no reply from Sam. But I still think
&gt; we need to wait for Sam’s reply. Sam, is that right?

Mea culpa. I meant to respond a long time ago on this topic and had a draft sitting ready to go that I though I had sent.  I have now sent it to webkit-dev.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1108060</commentid>
    <comment_count>48</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2015-07-08 19:25:52 -0700</bug_when>
    <thetext>(In reply to comment #47)
&gt; (In reply to comment #46)
&gt; &gt; I know you waited a long time and got no reply from Sam. But I still think
&gt; &gt; we need to wait for Sam’s reply. Sam, is that right?
&gt; 
&gt; Mea culpa. I meant to respond a long time ago on this topic and had a draft
&gt; sitting ready to go that I though I had sent.  I have now sent it to
&gt; webkit-dev.

As I replied on the thread, I think this feature won&apos;t complicate custom protocol. This just uses it.

https://lists.webkit.org/pipermail/webkit-dev/2015-July/027524.html


I plan to use this feature as below scenario. I would like to listen your opinion about it.

 1. Custom scheme is registered by &quot;registeredProtocolHandler()&quot; in JS
 2. The registered scheme will be filtering in WebCore. (If unsupported
scheme is requested, security error happens.)
 3. Filtered scheme will be passed to application side (of course, which is
web browser or similar things)
 4. The application will register the passed custom scheme and a callback(to
call the native embedding application) to WK2&apos;s network
     using &quot;custom protocol handler feature&quot;, which was implemented in
WebKit2.&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1109014</commentid>
    <comment_count>49</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2015-07-11 23:05:43 -0700</bug_when>
    <thetext>(In reply to comment #48)
&gt; (In reply to comment #47)
&gt; &gt; (In reply to comment #46)
&gt; &gt; &gt; I know you waited a long time and got no reply from Sam. But I still think
&gt; &gt; &gt; we need to wait for Sam’s reply. Sam, is that right?
&gt; &gt; 
&gt; &gt; Mea culpa. I meant to respond a long time ago on this topic and had a draft
&gt; &gt; sitting ready to go that I though I had sent.  I have now sent it to
&gt; &gt; webkit-dev.
&gt; 
&gt; As I replied on the thread, I think this feature won&apos;t complicate custom
&gt; protocol. This just uses it.
&gt; 
&gt; https://lists.webkit.org/pipermail/webkit-dev/2015-July/027524.html
&gt; 
&gt; 
&gt; I plan to use this feature as below scenario. I would like to listen your
&gt; opinion about it.
&gt; 
&gt;  1. Custom scheme is registered by &quot;registeredProtocolHandler()&quot; in JS
&gt;  2. The registered scheme will be filtering in WebCore. (If unsupported
&gt; scheme is requested, security error happens.)
&gt;  3. Filtered scheme will be passed to application side (of course, which is
&gt; web browser or similar things)
&gt;  4. The application will register the passed custom scheme and a callback(to
&gt; call the native embedding application) to WK2&apos;s network
&gt;      using &quot;custom protocol handler feature&quot;, which was implemented in
&gt; WebKit2.&quot;

Sam, any comment ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1111145</commentid>
    <comment_count>50</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2015-07-21 17:37:50 -0700</bug_when>
    <thetext>(In reply to comment #48)

&gt; I plan to use this feature as below scenario. I would like to listen your
&gt; opinion about it.
&gt; 
&gt;  1. Custom scheme is registered by &quot;registeredProtocolHandler()&quot; in JS
&gt;  2. The registered scheme will be filtering in WebCore. (If unsupported
&gt; scheme is requested, security error happens.)
&gt;  3. Filtered scheme will be passed to application side (of course, which is
&gt; web browser or similar things)
&gt;  4. The application will register the passed custom scheme and a callback(to
&gt; call the native embedding application) to WK2&apos;s network
&gt;      using &quot;custom protocol handler feature&quot;, which was implemented in
&gt; WebKit2.&quot;

Sam, I spent 2 months to talk about this feature though, I&apos;m still waiting for your reply. I think this scenario won&apos;t generate your concern. Could you please give me any your comment against my suggestion ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1115276</commentid>
    <comment_count>51</comment_count>
      <attachid>258348</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2015-08-05 21:50:09 -0700</bug_when>
    <thetext>Created attachment 258348
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1300829</commentid>
    <comment_count>52</comment_count>
      <attachid>258348</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-04-24 19:10:24 -0700</bug_when>
    <thetext>Comment on attachment 258348
Patch

This patch has been pending review since 2015 with no recent activity.
It seems unlikely that it would even still apply to trunk in its current form.

Clearing from the review queue.

Feel free to update and resubmit if the patch is still relevant.

(Additional editorial note: We probably shouldn&apos;t bother enhancing the C-API anymore)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1946171</commentid>
    <comment_count>53</comment_count>
    <who name="Anne van Kesteren">annevk</who>
    <bug_when>2023-04-03 04:47:39 -0700</bug_when>
    <thetext>If there is an initiative to add this API again it would benefit from a clean approach so let&apos;s close this.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>156332</attachid>
            <date>2012-08-03 05:14:57 -0700</date>
            <delta_ts>2012-08-08 03:49:10 -0700</delta_ts>
            <desc>preliminary patch (do not set any flags)</desc>
            <filename>bug92749</filename>
            <type>text/plain</type>
            <size>39402</size>
            <attacher name="Mikhail Pozdnyakov">mikhail.pozdnyakov</attacher>
            
              <data encoding="base64">Y29tbWl0IGVkM2NkNDc1MzEyN2FkMGQyM2I2MTAxNjBlZjJjZTI0YzNkYTM2NmIKQXV0aG9yOiBN
aWtoYWlsIFBvemRueWFrb3YgPG1pa2hhaWwucG96ZG55YWtvdkBpbnRlbC5jb20+CkRhdGU6ICAg
V2VkIEF1ZyAxIDE5OjE3OjQwIDIwMTIgKzAzMDAKCiAgICBidWc5Mjc0OQoKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0
cy50eHQKaW5kZXggYTk1ZWJhMS4uNGRhMDg4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
Q01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQKQEAgLTI2
Nyw2ICsyNjcsOCBAQCBTRVQoV2ViS2l0Ml9TT1VSQ0VTCiAgICAgVUlQcm9jZXNzL1dlYlBvbGlj
eUNsaWVudC5jcHAKICAgICBVSVByb2Nlc3MvV2ViUHJlZmVyZW5jZXMuY3BwCiAgICAgVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKKyAgICBVSVByb2Nlc3MvV2ViUmVnaXN0ZXJQcm90b2Nv
bEhhbmRsZXJQcm92aWRlci5jcHAKKyAgICBVSVByb2Nlc3MvV2ViUmVnaXN0ZXJQcm90b2NvbEhh
bmRsZXJQcm94eS5jcHAKICAgICBVSVByb2Nlc3MvV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94
eS5jcHAKICAgICBVSVByb2Nlc3MvV2ViUmVzb3VyY2VMb2FkQ2xpZW50LmNwcAogICAgIFVJUHJv
Y2Vzcy9XZWJUZXh0Q2hlY2tlci5jcHAKQEAgLTMxNCw2ICszMTYsNyBAQCBTRVQoV2ViS2l0Ml9T
T1VSQ0VTCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLUGx1Z2luU2l0ZURhdGFNYW5hZ2VyLmNwcAog
ICAgIFVJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcAogICAgIFVJUHJvY2Vzcy9BUEkv
Qy9XS1Byb3RlY3Rpb25TcGFjZS5jcHAKKyAgICBVSVByb2Nlc3MvQVBJL0MvV0tSZWdpc3RlclBy
b3RvY29sSGFuZGxlci5jcHAKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tSZXNvdXJjZUNhY2hlTWFu
YWdlci5jcHAKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tUZXh0Q2hlY2tlci5jcHAKICAgICBVSVBy
b2Nlc3MvQVBJL0MvV0tWaWJyYXRpb24uY3BwCkBAIC00NDUsNiArNDQ4LDcgQEAgU0VUKFdlYktp
dDJfU09VUkNFUwogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9u
Q2xpZW50LmNwcAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJh
dGVnaWVzLmNwcAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUG9wdXBNZW51LmNw
cAorICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRs
ZXJDbGllbnQuY3BwCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTZWFyY2hQb3B1
cE1lbnUuY3BwCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJWaWJyYXRpb25DbGll
bnQuY3BwCiAKQEAgLTQ5Miw2ICs0OTYsNyBAQCBTRVQoV2ViS2l0Ml9NRVNTQUdFU19JTl9GSUxF
UwogICAgIFVJUHJvY2Vzcy9XZWJOZXR3b3JrSW5mb01hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgog
ICAgIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KICAgICBVSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCisgICAgVUlQcm9jZXNzL1dlYlJlZ2lzdGVyUHJvdG9j
b2xIYW5kbGVyUHJveHkubWVzc2FnZXMuaW4KICAgICBVSVByb2Nlc3MvV2ViUmVzb3VyY2VDYWNo
ZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgogICAgIFVJUHJvY2Vzcy9XZWJWaWJyYXRpb25Qcm94
eS5tZXNzYWdlcy5pbgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZjZlMDg5Yy4uYzYzYzBiZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZwpAQCAtMSw1ICsxLDYzIEBACiAyMDEyLTA4LTAzICBNaWtoYWlsIFBvemRueWFrb3YgIDxtaWto
YWlsLnBvemRueWFrb3ZAaW50ZWwuY29tPgogCisgICAgICAgIGJ1ZzkyNzQ5CisKKyAgICAgICAg
W1dLMl0gQWRkIFByb3RvY29sIEhhbmRsZXIgQVBJIHN1cHBvcnQgZm9yIFdlYktpdDIKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkyNzQ5CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgc3VwcG9ydCBv
ZiBSZWdpc3RlciBQcm90b2NvbCBIYW5kbGVyIEFQSS4KKworICAgICAgICAqIENNYWtlTGlzdHMu
dHh0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLnByaToKKyAgICAgICAgKiBHTlVtYWtlZmls
ZS5saXN0LmFtOgorICAgICAgICAqIFBsYXRmb3JtL0NvcmVJUEMvTWVzc2FnZUlELmg6CisgICAg
ICAgICogU2hhcmVkL0FQSS9jL1dLQmFzZS5oOgorICAgICAgICAqIFNoYXJlZC9BUElPYmplY3Qu
aDoKKyAgICAgICAgKiBUYXJnZXQucHJpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0FQ
SUNhc3QuaDoKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dL
UmVnaXN0ZXJQcm90b2NvbEhhbmRsZXIuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyQ2xpZW50
LmguCisgICAgICAgIChXS1JlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyR2V0VHlwZUlEKToKKyAgICAg
ICAgKFdLUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJTZXRQcm92aWRlcik6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9DL1dLUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXIuaDogQWRkZWQuCisgICAgICAg
ICogVUlQcm9jZXNzL1dlYlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJvdmlkZXIuY3BwOiBBZGRl
ZC4KKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlJlZ2lzdGVyUHJvdG9j
b2xIYW5kbGVyUHJvdmlkZXI6OnJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyKToKKyAgICAgICAgKFdl
YktpdDo6V2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJQcm92aWRlcjo6aXNQcm90b2NvbEhhbmRs
ZXJSZWdpc3RlcmVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRs
ZXJQcm92aWRlcjo6dW5yZWdpc3RlclByb3RvY29sSGFuZGxlcik6CisgICAgICAgICogVUlQcm9j
ZXNzL1dlYlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJvdmlkZXIuaDogQ29waWVkIGZyb20gU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJSZWdpc3RlclByb3RvY29s
SGFuZGxlckNsaWVudC5oLgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYlJlZ2lzdGVy
UHJvdG9jb2xIYW5kbGVyUHJvdmlkZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJSZWdpc3Rl
clByb3RvY29sSGFuZGxlclByb3h5LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJSZWdpc3RlclByb3RvY29sSGFuZGxlclByb3h5OjpjcmVhdGUpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJSZWdpc3RlclByb3RvY29sSGFuZGxlclByb3h5OjpXZWJSZWdp
c3RlclByb3RvY29sSGFuZGxlclByb3h5KToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVnaXN0ZXJQ
cm90b2NvbEhhbmRsZXJQcm94eTo6fldlYlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJveHkpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJSZWdpc3RlclByb3RvY29sSGFuZGxlclByb3h5OjppbnZhbGlk
YXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJQcm94eTo6
aW5pdGlhbGl6ZVByb3ZpZGVyKToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVnaXN0ZXJQcm90b2Nv
bEhhbmRsZXJQcm94eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJS
ZWdpc3RlclByb3RvY29sSGFuZGxlclByb3h5OjpyZWdpc3RlclByb3RvY29sSGFuZGxlcik6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJveHk6OmlzUHJvdG9j
b2xIYW5kbGVyUmVnaXN0ZXJlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlJlZ2lzdGVyUHJvdG9j
b2xIYW5kbGVyUHJveHk6OnVucmVnaXN0ZXJQcm90b2NvbEhhbmRsZXIpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9XZWJSZWdpc3RlclByb3RvY29sSGFuZGxlclByb3h5Lmg6IEFkZGVkLgorICAgICAg
ICAoQ29yZUlQQyk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViUmVnaXN0ZXJQcm90
b2NvbEhhbmRsZXJQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OldlYlJlZ2lzdGVyUHJvdG9jb2xI
YW5kbGVyUHJveHk6OmNsZWFyQ29udGV4dCk6CisgICAgICAgIChXZWJLaXQ6OldlYlJlZ2lzdGVy
UHJvdG9jb2xIYW5kbGVyUHJveHk6OnR5cGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJSZWdp
c3RlclByb3RvY29sSGFuZGxlclByb3h5Lm1lc3NhZ2VzLmluOiBBZGRlZC4KKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyQ2xpZW50
LmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJSZWdpc3RlclByb3RvY29sSGFuZGxlckNsaWVudC5oLgorICAgICAgICAoV2ViS2l0KToK
KyAgICAgICAgKFdlYktpdDo6V2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJDbGllbnQ6OnJlZ2lz
dGVyUHJvdG9jb2xIYW5kbGVyKToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVnaXN0ZXJQcm90b2Nv
bEhhbmRsZXJDbGllbnQ6OmlzUHJvdG9jb2xIYW5kbGVyUmVnaXN0ZXJlZCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyQ2xpZW50Ojp1bnJlZ2lzdGVyUHJvdG9j
b2xIYW5kbGVyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlJlZ2lz
dGVyUHJvdG9jb2xIYW5kbGVyQ2xpZW50Lmg6CisgICAgICAgIChXZWJSZWdpc3RlclByb3RvY29s
SGFuZGxlckNsaWVudCk6CisKKzIwMTItMDgtMDMgIE1pa2hhaWwgUG96ZG55YWtvdiAgPG1pa2hh
aWwucG96ZG55YWtvdkBpbnRlbC5jb20+CisKICAgICAgICAgQ1VTVE9NX1NDSEVNRV9IQU5ETEVS
IGZsYWcgc2hvdWxkIGRlcGVuZCBvbiBSRUdJU1RFUl9QUk9UT0NPTF9IQU5ETEVSCiAgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MzA4MQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9EZXJpdmVkU291cmNlcy5wcmkgYi9Tb3VyY2UvV2ViS2l0Mi9E
ZXJpdmVkU291cmNlcy5wcmkKaW5kZXggNDJmYTY2NS4uNjM2OTIzOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvRGVyaXZlZFNvdXJjZXMucHJpCisrKyBiL1NvdXJjZS9XZWJLaXQyL0Rlcml2
ZWRTb3VyY2VzLnByaQpAQCAtMTAxLDYgKzEwMSw3IEBAIE1FU1NBR0VfUkVDRUlWRVJTID0gXAog
ICAgIFdlYlByb2Nlc3MubWVzc2FnZXMuaW4gXAogICAgIFdlYlByb2Nlc3NDb25uZWN0aW9uLm1l
c3NhZ2VzLmluIFwKICAgICBXZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4gXAorICAgIFdlYlJl
Z2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJveHkubWVzc2FnZXMuaW4gXAogICAgIFdlYlJlc291cmNl
Q2FjaGVNYW5hZ2VyLm1lc3NhZ2VzLmluIFwKICAgICBXZWJSZXNvdXJjZUNhY2hlTWFuYWdlclBy
b3h5Lm1lc3NhZ2VzLmluIFwKICAgICBXZWJWaWJyYXRpb25Qcm94eS5tZXNzYWdlcy5pbiBcCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dl
YktpdDIvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCBlN2E2NGYwLi4xMmJiYjgxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJL
aXQyL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTg3LDYgKzg3LDcgQEAgd2Via2l0Ml9oX2FwaSAr
PSBcCiAJJChXZWJLaXQyKS9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlc1ByaXZhdGUuaCBc
CiAJJChXZWJLaXQyKS9VSVByb2Nlc3MvQVBJL0MvV0tQcm90ZWN0aW9uU3BhY2UuaCBcCiAJJChX
ZWJLaXQyKS9VSVByb2Nlc3MvQVBJL0MvV0tQcm90ZWN0aW9uU3BhY2VUeXBlcy5oIFwKKyAgICAg
ICAgJChXZWJLaXQyKS9VSVByb2Nlc3MvQVBJL0MvV0tSZWdpc3RlclByb3RvY29sSGFuZGxlci5o
IFwKIAkkKFdlYktpdDIpL1VJUHJvY2Vzcy9BUEkvQy9XS1Jlc291cmNlQ2FjaGVNYW5hZ2VyLmgg
XAogCSQoV2ViS2l0MikvVUlQcm9jZXNzL0FQSS9DL1dLVGV4dENoZWNrZXIuaCBcCiAJJChXZWJL
aXQyKS9VSVByb2Nlc3MvQVBJL0MvV0tWaWJyYXRpb24uY3BwIFwKQEAgLTIwOCw2ICsyMDksOCBA
QCB3ZWJraXQyX2J1aWx0X3NvdXJjZXMgKz0gXAogCURlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2Vi
UGFnZVByb3h5TWVzc2FnZXMuaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJQYWdlTWVz
c2FnZVJlY2VpdmVyLmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJQYWdlTWVzc2Fn
ZXMuaCBcCisgICAgICAgIERlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViUmVnaXN0ZXJQcm90b2Nv
bEhhbmRsZXJNZXNzYWdlc1JlY2VpdmVyLmNwcCBcCisgICAgICAgIERlcml2ZWRTb3VyY2VzL1dl
YktpdDIvV2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJQcm94eU1lc3NhZ2VzLmggXAogCURlcml2
ZWRTb3VyY2VzL1dlYktpdDIvV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIu
Y3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYlJlc291cmNlQ2FjaGVNYW5hZ2VyTWVz
c2FnZXMuaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJSZXNvdXJjZUNhY2hlTWFuYWdl
clByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBcCkBAIC02MDUsNiArNjA4LDggQEAgd2Via2l0Ml9z
b3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcm90ZWN0aW9u
U3BhY2UuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcm90ZWN0aW9u
U3BhY2UuaCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJvdGVjdGlvblNw
YWNlVHlwZXMuaCBcCisgICAgICAgIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1Jl
Z2lzdGVyUHJvdG9jb2xIYW5kbGVyLmNwcCBcCisgICAgICAgIFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQy9XS1JlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyLmggXAogCVNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQy9XS1Jlc291cmNlQ2FjaGVNYW5hZ2VyLmggXAogCVNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1Jlc291cmNlQ2FjaGVNYW5hZ2VyLmNwcCBcCiAJU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVGV4dENoZWNrZXIuaCBcCkBAIC04OTgsNiArOTAz
LDEwIEBAIHdlYmtpdDJfc291cmNlcyArPSBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YlByZWZlcmVuY2VzLmggXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJv
eHkuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmggXAor
ICAgICAgICBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRs
ZXJQcm92aWRlci5oIFwKKyAgICAgICAgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlJlZ2lz
dGVyUHJvdG9jb2xIYW5kbGVyUHJvdmlkZXIuY3BwIFwKKyAgICAgICAgU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJveHkuY3BwIFwKKyAgICAgICAg
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJveHku
aCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJv
eHkuaCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlJlc291cmNlQ2FjaGVNYW5hZ2Vy
UHJveHkuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUmVzb3VyY2VMb2FkQ2xp
ZW50LmNwcCBcCkBAIC0xMTA4LDYgKzExMTcsOCBAQCB3ZWJraXQyX3NvdXJjZXMgKz0gXAogCVNv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xp
ZW50LmggXAogCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxh
dGZvcm1TdHJhdGVnaWVzLmNwcCBcCiAJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaCBcCisgICAgICAgIFNvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJDbGll
bnQuY3BwIFwKKyAgICAgICAgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJSZWdpc3RlclByb3RvY29sSGFuZGxlckNsaWVudC5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBvcHVwTWVudS5jcHAgXAogCVNvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUG9wdXBNZW51LmggXAogCVNvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU2VhcmNoUG9wdXBNZW51LmNwcCBc
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL01lc3NhZ2VJRC5o
IGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlSUQuaAppbmRleCAyMmQz
MDZiLi4wY2Q4ZTNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBD
L01lc3NhZ2VJRC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvTWVzc2Fn
ZUlELmgKQEAgLTc5LDYgKzc5LDcgQEAgZW51bSBNZXNzYWdlQ2xhc3MgewogICAgIE1lc3NhZ2VD
bGFzc1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eSwKICAgICBNZXNzYWdlQ2xhc3NXZWJQYWdl
UHJveHksCiAgICAgTWVzc2FnZUNsYXNzV2ViUHJvY2Vzc1Byb3h5LAorICAgIE1lc3NhZ2VDbGFz
c1dlYlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJveHksCiAgICAgTWVzc2FnZUNsYXNzV2ViUmVz
b3VyY2VDYWNoZU1hbmFnZXJQcm94eSwKICNpZiBVU0UoU09VUCkKICAgICBNZXNzYWdlQ2xhc3NX
ZWJTb3VwUmVxdWVzdE1hbmFnZXJQcm94eSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9BUEkvYy9XS0Jhc2UuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0Jhc2Uu
aAppbmRleCA2ODU0ZWNjLi41NTczOTkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvQVBJL2MvV0tCYXNlLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLQmFz
ZS5oCkBAIC0xMjIsNiArMTIyLDcgQEAgdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tQYWdl
R3JvdXAqIFdLUGFnZUdyb3VwUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tQbHVn
aW5TaXRlRGF0YU1hbmFnZXIqIFdLUGx1Z2luU2l0ZURhdGFNYW5hZ2VyUmVmOwogdHlwZWRlZiBj
b25zdCBzdHJ1Y3QgT3BhcXVlV0tQcmVmZXJlbmNlcyogV0tQcmVmZXJlbmNlc1JlZjsKIHR5cGVk
ZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLUHJvdGVjdGlvblNwYWNlKiBXS1Byb3RlY3Rpb25TcGFj
ZVJlZjsKK3R5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLUmVnaXN0ZXJQcm90b2NvbEhhbmRs
ZXIqIFdLUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBP
cGFxdWVXS1RleHRDaGVja2VyKiBXS1RleHRDaGVja2VyUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1
Y3QgT3BhcXVlV0tWaWJyYXRpb24qIFdLVmlicmF0aW9uUmVmOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvQVBJT2JqZWN0LmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJ
T2JqZWN0LmgKaW5kZXggOGU0ZDI5My4uYTlmMzdiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvU2hhcmVkL0FQSU9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElPYmpl
Y3QuaApAQCAtMTA2LDYgKzEwNiw3IEBAIHB1YmxpYzoKICAgICAgICAgVHlwZVBhZ2VHcm91cCwK
ICAgICAgICAgVHlwZVBsdWdpblNpdGVEYXRhTWFuYWdlciwKICAgICAgICAgVHlwZVByZWZlcmVu
Y2VzLAorICAgICAgICBUeXBlUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXIsCiAgICAgICAgIFR5cGVU
ZXh0Q2hlY2tlciwKICAgICAgICAgVHlwZVZpYnJhdGlvbiwKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJLaXQyL1RhcmdldC5wcmkKaW5kZXggZWRl
YTljNS4uMDgwNGQ5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVGFyZ2V0LnByaQorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJpCkBAIC0xODMsNiArMTgzLDcgQEAgSEVBREVSUyAr
PSBcCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXNQcml2YXRlLmggXAogICAgIFVJ
UHJvY2Vzcy9BUEkvQy9XS1Byb3RlY3Rpb25TcGFjZS5oIFwKICAgICBVSVByb2Nlc3MvQVBJL0Mv
V0tQcm90ZWN0aW9uU3BhY2VUeXBlcy5oIFwKKyAgICBVSVByb2Nlc3MvQVBJL0MvV0tSZWdpc3Rl
clByb3RvY29sSGFuZGxlci5oIFwKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tWaWJyYXRpb24uaCBc
CiAgICAgVUlQcm9jZXNzL0FQSS9DL1dlYktpdDJfQy5oIFwKICAgICBVSVByb2Nlc3MvQVBJL0Mv
cXQvV0tOYXRpdmVFdmVudC5oIFwKQEAgLTI4MSw2ICsyODIsOCBAQCBIRUFERVJTICs9IFwKICAg
ICBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmggXAogICAgIFVJUHJvY2Vzcy9XZWJSZXNvdXJj
ZUNhY2hlTWFuYWdlclByb3h5LmggXAogICAgIFVJUHJvY2Vzcy9XZWJSZXNvdXJjZUxvYWRDbGll
bnQuaCBcCisgICAgVUlQcm9jZXNzL1dlYlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJvdmlkZXIu
aCBcCisgICAgVUlQcm9jZXNzL1dlYlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJveHkuaCBcCiAg
ICAgVUlQcm9jZXNzL1dlYlVJQ2xpZW50LmggXAogICAgIFVJUHJvY2Vzcy9XZWJWaWJyYXRpb25Q
cm92aWRlci5oIFwKICAgICBVSVByb2Nlc3MvV2ViVmlicmF0aW9uUHJveHkuaCBcCkBAIC0zNzgs
NiArMzgxLDcgQEAgSEVBREVSUyArPSBcCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJOb3RpZmljYXRpb25DbGllbnQuaCBcCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaCBcCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJQb3B1cE1lbnUuaCBcCisgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJSZWdpc3Rl
clByb3RvY29sSGFuZGxlckNsaWVudC5oIFwKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYlNlYXJjaFBvcHVwTWVudS5oIFwKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YlZpYnJhdGlvbkNsaWVudC5oIFwKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3F0L1dl
YkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCBcCkBAIC01NjAsNiArNTY0LDcgQEAgU09VUkNFUyAr
PSBcCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLUGx1Z2luU2l0ZURhdGFNYW5hZ2VyLmNwcCBcCiAg
ICAgVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwIFwKICAgICBVSVByb2Nlc3MvQVBJ
L0MvV0tQcm90ZWN0aW9uU3BhY2UuY3BwIFwKKyAgICBVSVByb2Nlc3MvQVBJL0MvV0tSZWdpc3Rl
clByb3RvY29sSGFuZGxlci5jcHAgXAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS1Jlc291cmNlQ2Fj
aGVNYW5hZ2VyLmNwcCBcCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLVmlicmF0aW9uLmNwcCBcCiAg
ICAgVUlQcm9jZXNzL0FQSS9jcHAvcXQvV0tTdHJpbmdRdC5jcHAgXApAQCAtNjUyLDYgKzY1Nyw4
IEBAIFNPVVJDRVMgKz0gXAogICAgIFVJUHJvY2Vzcy9XZWJQb2xpY3lDbGllbnQuY3BwIFwKICAg
ICBVSVByb2Nlc3MvV2ViUHJlZmVyZW5jZXMuY3BwIFwKICAgICBVSVByb2Nlc3MvV2ViUHJvY2Vz
c1Byb3h5LmNwcCBcCisgICAgVUlQcm9jZXNzL1dlYlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJv
dmlkZXIuY3BwIFwKKyAgICBVSVByb2Nlc3MvV2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJQcm94
eS5jcHAgXAogICAgIFVJUHJvY2Vzcy9XZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5LmNwcCBc
CiAgICAgVUlQcm9jZXNzL1dlYlJlc291cmNlTG9hZENsaWVudC5jcHAgXAogICAgIFVJUHJvY2Vz
cy9XZWJVSUNsaWVudC5jcHAgXApAQCAtNzY4LDYgKzc3NSw3IEBAIFNPVVJDRVMgKz0gXAogICAg
IFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50LmNwcCBcCiAg
ICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwIFwK
ICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBvcHVwTWVudS5jcHAgXAorICAgIFdl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJDbGllbnQu
Y3BwIFwKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNlYXJjaFBvcHVwTWVudS5j
cHAgXAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViVmlicmF0aW9uQ2xpZW50LmNw
cCBcCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9xdC9XZWJDb250ZXh0TWVudUNsaWVu
dFF0LmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tB
UElDYXN0LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgKaW5k
ZXggYmVmMjk0ZS4uYzY1MDU0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9DL1dLQVBJQ2FzdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9X
S0FQSUNhc3QuaApAQCAtODksNiArODksNyBAQCBjbGFzcyBXZWJQYWdlUHJveHk7CiBjbGFzcyBX
ZWJQbHVnaW5TaXRlRGF0YU1hbmFnZXI7CiBjbGFzcyBXZWJQcmVmZXJlbmNlczsKIGNsYXNzIFdl
YlByb3RlY3Rpb25TcGFjZTsKK2NsYXNzIFdlYlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJveHk7
CiBjbGFzcyBXZWJSZW5kZXJMYXllcjsKIGNsYXNzIFdlYlJlbmRlck9iamVjdDsKIGNsYXNzIFdl
YlRleHRDaGVja2VyOwpAQCAtMTM0LDYgKzEzNSw3IEBAIFdLX0FERF9BUElfTUFQUElORyhXS1Bh
Z2VSZWYsIFdlYlBhZ2VQcm94eSkKIFdLX0FERF9BUElfTUFQUElORyhXS1BsdWdpblNpdGVEYXRh
TWFuYWdlclJlZiwgV2ViUGx1Z2luU2l0ZURhdGFNYW5hZ2VyKQogV0tfQUREX0FQSV9NQVBQSU5H
KFdLUHJlZmVyZW5jZXNSZWYsIFdlYlByZWZlcmVuY2VzKQogV0tfQUREX0FQSV9NQVBQSU5HKFdL
UHJvdGVjdGlvblNwYWNlUmVmLCBXZWJQcm90ZWN0aW9uU3BhY2UpCitXS19BRERfQVBJX01BUFBJ
TkcoV0tSZWdpc3RlclByb3RvY29sSGFuZGxlclJlZiwgV2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRs
ZXJQcm94eSkKIFdLX0FERF9BUElfTUFQUElORyhXS1JlbmRlckxheWVyUmVmLCBXZWJSZW5kZXJM
YXllcikKIFdLX0FERF9BUElfTUFQUElORyhXS1JlbmRlck9iamVjdFJlZiwgV2ViUmVuZGVyT2Jq
ZWN0KQogV0tfQUREX0FQSV9NQVBQSU5HKFdLVGV4dENoZWNrZXJSZWYsIFdlYlRleHRDaGVja2Vy
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUmVnaXN0ZXJQ
cm90b2NvbEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUmVn
aXN0ZXJQcm90b2NvbEhhbmRsZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLmM3OWM0OTMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0MvV0tSZWdpc3RlclByb3RvY29sSGFuZGxlci5jcHAKQEAgLTAsMCArMSw1MSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMiBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldLUmVnaXN0
ZXJQcm90b2NvbEhhbmRsZXIuaCIKKworI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgorCisjaWYgRU5B
QkxFKFJFR0lTVEVSX1BST1RPQ09MX0hBTkRMRVIpCisjaW5jbHVkZSAiV2ViUmVnaXN0ZXJQcm90
b2NvbEhhbmRsZXJQcm94eS5oIgorI2VuZGlmCisKK3VzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CisK
K1dLVHlwZUlEIFdLUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJHZXRUeXBlSUQoKQoreworI2lmIEVO
QUJMRShSRUdJU1RFUl9QUk9UT0NPTF9IQU5ETEVSKQorICAgIHJldHVybiB0b0FQSShXZWJSZWdp
c3RlclByb3RvY29sSGFuZGxlclByb3h5OjpBUElUeXBlKTsKKyNlbHNlCisgICAgcmV0dXJuIDA7
CisjZW5kaWYKK30KKwordm9pZCBXS1JlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyU2V0UHJvdmlkZXIo
V0tSZWdpc3RlclByb3RvY29sSGFuZGxlclJlZiByZWdpc3RlclByb3RvY29sSGFuZGxlclJlZiwg
Y29uc3QgV0tSZWdpc3RlclByb3RvY29sSGFuZGxlclByb3ZpZGVyKiB3a1Byb3ZpZGVyKQorewor
I2lmIEVOQUJMRShSRUdJU1RFUl9QUk9UT0NPTF9IQU5ETEVSKQorICAgIHRvSW1wbChyZWdpc3Rl
clByb3RvY29sSGFuZGxlclJlZiktPmluaXRpYWxpemVQcm92aWRlcih3a1Byb3ZpZGVyKTsKKyNl
bmRpZgorfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUmVn
aXN0ZXJQcm90b2NvbEhhbmRsZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9X
S1JlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uZWY2NTY4YQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQy9XS1JlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyLmgKQEAgLTAsMCArMSw1OSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMiBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXS1JlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyX2gKKyNk
ZWZpbmUgV0tSZWdpc3RlclByb3RvY29sSGFuZGxlcl9oCisKKyNpbmNsdWRlIDxXZWJLaXQyL1dL
QmFzZS5oPgorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisKKy8v
IFByb3ZpZGVyLgordHlwZWRlZiB2b2lkICgqV0tSZWdpc3RlclByb3RvY29sSGFuZGxlclByb3Zp
ZGVyUmVnaXN0ZXJDYWxsYmFjaykoV0tSZWdpc3RlclByb3RvY29sSGFuZGxlclJlZiByZWdpc3Rl
clByb3RvY29sSGFuZGxlclJlZiwgV0tTdHJpbmdSZWYgc2NoZW1lLCBXS1N0cmluZ1JlZiBiYXNl
VVJMLCBXS1N0cmluZ1JlZiB1cmwsIFdLU3RyaW5nUmVmIHRpdGxlLCBjb25zdCB2b2lkKiBjbGll
bnRJbmZvKTsKK3R5cGVkZWYgdWludDMyX3QgKCpXS1JlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJv
dmlkZXJJc1JlZ2lzdGVyZWRDYWxsYmFjaykoV0tSZWdpc3RlclByb3RvY29sSGFuZGxlclJlZiBy
ZWdpc3RlclByb3RvY29sSGFuZGxlclJlZiwgV0tTdHJpbmdSZWYgc2NoZW1lLCBXS1N0cmluZ1Jl
ZiBiYXNlVVJMLCBXS1N0cmluZ1JlZiB1cmwsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwordHlw
ZWRlZiB2b2lkICgqV0tSZWdpc3RlclByb3RvY29sSGFuZGxlclByb3ZpZGVyVW5yZWdpc3RlckNh
bGxiYWNrKShXS1JlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUmVmIHJlZ2lzdGVyUHJvdG9jb2xIYW5k
bGVyUmVmLCBXS1N0cmluZ1JlZiBzY2hlbWUsIFdLU3RyaW5nUmVmIGJhc2VVUkwsIFdLU3RyaW5n
UmVmIHVybCwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CisKK3N0cnVjdCBXS1JlZ2lzdGVyUHJv
dG9jb2xIYW5kbGVyUHJvdmlkZXIgeworICAgIGludCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVyc2lvbjsKKyAgICBj
b25zdCB2b2lkICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNsaWVudEluZm87CisgICAgV0tSZWdpc3RlclByb3RvY29sSGFuZGxlclBy
b3ZpZGVyUmVnaXN0ZXJDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICByZWdpc3RlclByb3Rv
Y29sSGFuZGxlcjsKKyAgICBXS1JlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJvdmlkZXJJc1JlZ2lz
dGVyZWRDYWxsYmFjayAgICAgICAgICAgICAgICAgIGlzUHJvdG9jb2xIYW5kbGVyUmVnaXN0ZXJl
ZDsKKyAgICBXS1JlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJvdmlkZXJVbnJlZ2lzdGVyQ2FsbGJh
Y2sgICAgICAgICAgICAgICAgICAgIHVucmVnaXN0ZXJQcm90b2NvbEhhbmRsZXI7Cit9OwordHlw
ZWRlZiBzdHJ1Y3QgV0tSZWdpc3RlclByb3RvY29sSGFuZGxlclByb3ZpZGVyIFdLUmVnaXN0ZXJQ
cm90b2NvbEhhbmRsZXJQcm92aWRlcjsKKworZW51bSB7IGtXS1JlZ2lzdGVyUHJvdG9jb2xIYW5k
bGVyUHJvdmlkZXJDdXJyZW50VmVyc2lvbiA9IDAgfTsKKworV0tfRVhQT1JUIFdLVHlwZUlEIFdL
UmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJHZXRUeXBlSUQoKTsKKworV0tfRVhQT1JUIHZvaWQgV0tS
ZWdpc3RlclByb3RvY29sSGFuZGxlclNldFByb3ZpZGVyKFdLUmVnaXN0ZXJQcm90b2NvbEhhbmRs
ZXJSZWYgcmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJSZWYsIGNvbnN0IFdLUmVnaXN0ZXJQcm90b2Nv
bEhhbmRsZXJQcm92aWRlciogcHJvdmlkZXIpOworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNl
bmRpZgorCisjZW5kaWYgLy8gV0tSZWdpc3RlclByb3RvY29sSGFuZGxlcl9oCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJQcm92
aWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUmVnaXN0ZXJQcm90b2NvbEhh
bmRsZXJQcm92aWRlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzQ1
OGE1ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJSZWdp
c3RlclByb3RvY29sSGFuZGxlclByb3ZpZGVyLmNwcApAQCAtMCwwICsxLDY0IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDEyIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViUmVnaXN0ZXJQ
cm90b2NvbEhhbmRsZXJQcm92aWRlci5oIgorCisjaWYgRU5BQkxFKFJFR0lTVEVSX1BST1RPQ09M
X0hBTkRMRVIpCisKKyNpbmNsdWRlICJXS0FQSUNhc3QuaCIKKyNpbmNsdWRlICJXZWJSZWdpc3Rl
clByb3RvY29sSGFuZGxlclByb3h5LmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCit2b2lkIFdl
YlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJvdmlkZXI6OnJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVy
KFdlYlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJveHkqIHByb3h5LCBjb25zdCBTdHJpbmcmIHNj
aGVtZSwgY29uc3QgU3RyaW5nJiBiYXNlVVJMLCBjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgU3Ry
aW5nJiB0aXRsZSkKK3sKKyAgICBpZiAoIW1fY2xpZW50LnJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVy
KQorICAgICAgICByZXR1cm47CisKKyAgICBtX2NsaWVudC5yZWdpc3RlclByb3RvY29sSGFuZGxl
cih0b0FQSShwcm94eSksIHRvQVBJKHNjaGVtZS5pbXBsKCkpLCB0b0FQSShiYXNlVVJMLmltcGwo
KSksIHRvQVBJKHVybC5pbXBsKCkpLCB0b0FQSSh0aXRsZS5pbXBsKCkpLCBtX2NsaWVudC5jbGll
bnRJbmZvKTsKK30KKworI2lmIEVOQUJMRShDVVNUT01fU0NIRU1FX0hBTkRMRVIpCit2b2lkIFdl
YlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJvdmlkZXI6OmlzUHJvdG9jb2xIYW5kbGVyUmVnaXN0
ZXJlZChXZWJSZWdpc3RlclByb3RvY29sSGFuZGxlclByb3h5KiBwcm94eSwgY29uc3QgU3RyaW5n
JiBzY2hlbWUsIGNvbnN0IFN0cmluZyYgYmFzZVVSTCwgY29uc3QgU3RyaW5nJiB1cmwsIHVpbnQz
Ml90JiByZXN1bHQpCit7CisgICAgaWYgKCFtX2NsaWVudC5pc1Byb3RvY29sSGFuZGxlclJlZ2lz
dGVyZWQpCisgICAgICAgIHJldHVybjsKKworICAgIHJlc3VsdCA9IG1fY2xpZW50LmlzUHJvdG9j
b2xIYW5kbGVyUmVnaXN0ZXJlZCh0b0FQSShwcm94eSksIHRvQVBJKHNjaGVtZS5pbXBsKCkpLCB0
b0FQSShiYXNlVVJMLmltcGwoKSksIHRvQVBJKHVybC5pbXBsKCkpLCBtX2NsaWVudC5jbGllbnRJ
bmZvKTsKK30KKwordm9pZCBXZWJSZWdpc3RlclByb3RvY29sSGFuZGxlclByb3ZpZGVyOjp1bnJl
Z2lzdGVyUHJvdG9jb2xIYW5kbGVyKFdlYlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJveHkqIHBy
b3h5LCBjb25zdCBTdHJpbmcmIHNjaGVtZSwgY29uc3QgU3RyaW5nJiBiYXNlVVJMLCBjb25zdCBT
dHJpbmcmIHVybCkKK3sKKyAgICBpZiAoIW1fY2xpZW50LnVucmVnaXN0ZXJQcm90b2NvbEhhbmRs
ZXIpCisgICAgICAgIHJldHVybjsKKworICAgIG1fY2xpZW50LnVucmVnaXN0ZXJQcm90b2NvbEhh
bmRsZXIodG9BUEkocHJveHkpLCB0b0FQSShzY2hlbWUuaW1wbCgpKSwgdG9BUEkoYmFzZVVSTC5p
bXBsKCkpLCB0b0FQSSh1cmwuaW1wbCgpKSwgbV9jbGllbnQuY2xpZW50SW5mbyk7Cit9CisjZW5k
aWYgLy8gRU5BQkxFKENVU1RPTV9TQ0hFTUVfSEFORExFUikKKworfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoUkVHSVNURVJfUFJPVE9DT0xfSEFORExFUikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJSZWdpc3RlclByb3RvY29sSGFuZGxl
clByb3ZpZGVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUmVnaXN0ZXJQcm90b2Nv
bEhhbmRsZXJQcm92aWRlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI1
Y2M0N2YKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUmVn
aXN0ZXJQcm90b2NvbEhhbmRsZXJQcm92aWRlci5oCkBAIC0wLDAgKzEsNTIgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTIgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpZm5kZWYgV2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJQcm92aWRlcl9o
CisjZGVmaW5lIFdlYlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJvdmlkZXJfaAorCisjaWYgRU5B
QkxFKFJFR0lTVEVSX1BST1RPQ09MX0hBTkRMRVIpCisKKyNpbmNsdWRlICJBUElDbGllbnQuaCIK
KyNpbmNsdWRlICJXS1JlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyLmgiCisjaW5jbHVkZSA8d3RmL0Zv
cndhcmQuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlJlZ2lzdGVyUHJvdG9j
b2xIYW5kbGVyUHJveHk7CisKK2NsYXNzIFdlYlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJvdmlk
ZXIgOiBwdWJsaWMgQVBJQ2xpZW50PFdLUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJQcm92aWRlciwg
a1dLUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJQcm92aWRlckN1cnJlbnRWZXJzaW9uPiB7CitwdWJs
aWM6CisgICAgdm9pZCByZWdpc3RlclByb3RvY29sSGFuZGxlcihXZWJSZWdpc3RlclByb3RvY29s
SGFuZGxlclByb3h5KiwgY29uc3QgU3RyaW5nJiBzY2hlbWUsIGNvbnN0IFN0cmluZyYgYmFzZVVS
TCwgY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0cmluZyYgdGl0bGUpOworCisjaWYgRU5BQkxF
KENVU1RPTV9TQ0hFTUVfSEFORExFUikKKyAgICB2b2lkIGlzUHJvdG9jb2xIYW5kbGVyUmVnaXN0
ZXJlZChXZWJSZWdpc3RlclByb3RvY29sSGFuZGxlclByb3h5KiwgY29uc3QgU3RyaW5nJiBzY2hl
bWUsIGNvbnN0IFN0cmluZyYgYmFzZVVSTCwgY29uc3QgU3RyaW5nJiB1cmwsIHVpbnQzMl90JiBy
ZXN1bHQpOworICAgIHZvaWQgdW5yZWdpc3RlclByb3RvY29sSGFuZGxlcihXZWJSZWdpc3RlclBy
b3RvY29sSGFuZGxlclByb3h5KiwgY29uc3QgU3RyaW5nJiBzY2hlbWUsIGNvbnN0IFN0cmluZyYg
YmFzZVVSTCwgY29uc3QgU3RyaW5nJiB1cmwpOworI2VuZGlmIC8vIEVOQUJMRShDVVNUT01fU0NI
RU1FX0hBTkRMRVIpCit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVO
QUJMRShSRUdJU1RFUl9QUk9UT0NPTF9IQU5ETEVSKQorI2VuZGlmIC8vIFdlYlJlZ2lzdGVyUHJv
dG9jb2xIYW5kbGVyUHJvdmlkZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJveHkuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY0MjllY2EKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJQcm94eS5jcHAK
QEAgLTAsMCArMSw4MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBJbnRlbCBDb3Jwb3Jh
dGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIldlYlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJveHkuaCIKKworI2lmIEVO
QUJMRShSRUdJU1RFUl9QUk9UT0NPTF9IQU5ETEVSKQorCisjaW5jbHVkZSAiV2ViQ29udGV4dC5o
IgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworUGFzc1JlZlB0cjxXZWJSZWdpc3RlclByb3RvY29s
SGFuZGxlclByb3h5PiBXZWJSZWdpc3RlclByb3RvY29sSGFuZGxlclByb3h5OjpjcmVhdGUoV2Vi
Q29udGV4dCogY29udGV4dCkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYlJlZ2lzdGVy
UHJvdG9jb2xIYW5kbGVyUHJveHkoY29udGV4dCkpOworfQorCitXZWJSZWdpc3RlclByb3RvY29s
SGFuZGxlclByb3h5OjpXZWJSZWdpc3RlclByb3RvY29sSGFuZGxlclByb3h5KFdlYkNvbnRleHQq
IGNvbnRleHQpCisgICAgOiBtX2NvbnRleHQoY29udGV4dCkKK3sKK30KKworV2ViUmVnaXN0ZXJQ
cm90b2NvbEhhbmRsZXJQcm94eTo6fldlYlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJveHkoKQor
eworfQorCit2b2lkIFdlYlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJveHk6OmludmFsaWRhdGUo
KQoreyAKK30KKwordm9pZCBXZWJSZWdpc3RlclByb3RvY29sSGFuZGxlclByb3h5Ojppbml0aWFs
aXplUHJvdmlkZXIoY29uc3QgV0tSZWdpc3RlclByb3RvY29sSGFuZGxlclByb3ZpZGVyKiBwcm92
aWRlcikKK3sKKyAgICBtX3Byb3ZpZGVyLmluaXRpYWxpemUocHJvdmlkZXIpOworfQorCit2b2lk
IFdlYlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJ
UEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQs
IENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQoreworICAgIGRpZFJlY2VpdmVX
ZWJSZWdpc3RlclByb3RvY29sSGFuZGxlclByb3h5TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdl
SUQsIGFyZ3VtZW50cyk7Cit9CisKK3ZvaWQgV2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJQcm94
eTo6cmVnaXN0ZXJQcm90b2NvbEhhbmRsZXIoY29uc3QgU3RyaW5nJiBzY2hlbWUsIGNvbnN0IFN0
cmluZyYgYmFzZVVSTCwgY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0cmluZyYgdGl0bGUpCit7
CisgICAgbV9wcm92aWRlci5yZWdpc3RlclByb3RvY29sSGFuZGxlcih0aGlzLCBzY2hlbWUsIGJh
c2VVUkwsIHVybCwgdGl0bGUpOworfQorCisjaWYgRU5BQkxFKENVU1RPTV9TQ0hFTUVfSEFORExF
UikKK3ZvaWQgV2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJQcm94eTo6aXNQcm90b2NvbEhhbmRs
ZXJSZWdpc3RlcmVkKGNvbnN0IFN0cmluZyYgc2NoZW1lLCBjb25zdCBTdHJpbmcmIGJhc2VVUkws
IGNvbnN0IFN0cmluZyYgdXJsLCB1aW50MzJfdCYgcmVzdWx0KQoreworICAgICBtX3Byb3ZpZGVy
LmlzUHJvdG9jb2xIYW5kbGVyUmVnaXN0ZXJlZCh0aGlzLCBzY2hlbWUsIGJhc2VVUkwsIHVybCwg
cmVzdWx0KTsKK30KKwordm9pZCBXZWJSZWdpc3RlclByb3RvY29sSGFuZGxlclByb3h5Ojp1bnJl
Z2lzdGVyUHJvdG9jb2xIYW5kbGVyKGNvbnN0IFN0cmluZyYgc2NoZW1lLCBjb25zdCBTdHJpbmcm
IGJhc2VVUkwsIGNvbnN0IFN0cmluZyYgdXJsKQoreworICAgICBtX3Byb3ZpZGVyLnVucmVnaXN0
ZXJQcm90b2NvbEhhbmRsZXIodGhpcywgc2NoZW1lLCBiYXNlVVJMLCB1cmwpOworfQorI2VuZGlm
IC8vIEVOQUJMRShDVVNUT01fU0NIRU1FX0hBTkRMRVIpCisKK30gLy8gbmFtZXNwYWNlIFdlYktp
dAorCisjZW5kaWYgLy8gRU5BQkxFKFJFR0lTVEVSX1BST1RPQ09MX0hBTkRMRVIpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJQ
cm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlJlZ2lzdGVyUHJvdG9jb2xIYW5k
bGVyUHJveHkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZDBiMzMwCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlJlZ2lzdGVyUHJv
dG9jb2xIYW5kbGVyUHJveHkuaApAQCAtMCwwICsxLDgzIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDEyIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaWZuZGVmIFdlYlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJveHlfaAorI2RlZmluZSBXZWJS
ZWdpc3RlclByb3RvY29sSGFuZGxlclByb3h5X2gKKworI2lmIEVOQUJMRShSRUdJU1RFUl9QUk9U
T0NPTF9IQU5ETEVSKQorCisjaW5jbHVkZSAiQVBJT2JqZWN0LmgiCisjaW5jbHVkZSAiTWVzc2Fn
ZUlELmgiCisjaW5jbHVkZSAiV2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJQcm92aWRlci5oIgor
I2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisKK25hbWVzcGFjZSBDb3JlSVBDIHsKK2NsYXNzIEFy
Z3VtZW50RW5jb2RlcjsKK2NsYXNzIEFyZ3VtZW50RGVjb2RlcjsKK2NsYXNzIENvbm5lY3Rpb247
Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJDb250ZXh0OworCitjbGFzcyBX
ZWJSZWdpc3RlclByb3RvY29sSGFuZGxlclByb3h5IDogcHVibGljIEFQSU9iamVjdCB7CitwdWJs
aWM6CisgICAgc3RhdGljIGNvbnN0IFR5cGUgQVBJVHlwZSA9IFR5cGVSZWdpc3RlclByb3RvY29s
SGFuZGxlcjsKKworICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYlJlZ2lzdGVyUHJvdG9jb2xIYW5k
bGVyUHJveHk+IGNyZWF0ZShXZWJDb250ZXh0Kik7CisgICAgdmlydHVhbCB+V2ViUmVnaXN0ZXJQ
cm90b2NvbEhhbmRsZXJQcm94eSgpOworCisgICAgdm9pZCBpbnZhbGlkYXRlKCk7CisgICAgdm9p
ZCBjbGVhckNvbnRleHQoKSB7IG1fY29udGV4dCA9IDA7IH0KKworICAgIHZvaWQgaW5pdGlhbGl6
ZVByb3ZpZGVyKGNvbnN0IFdLUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJQcm92aWRlciopOworCisg
ICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6
TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKKworcHJpdmF0ZToKKyAgICBl
eHBsaWNpdCBXZWJSZWdpc3RlclByb3RvY29sSGFuZGxlclByb3h5KFdlYkNvbnRleHQqKTsKKwor
ICAgIHZpcnR1YWwgVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gQVBJVHlwZTsgfQorCisgICAg
Ly8gSW1wbGVtZW50ZWQgaW4gZ2VuZXJhdGVkIFdlYlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJv
eHlNZXNzYWdlUmVjZWl2ZXIuY3BwCisgICAgdm9pZCBkaWRSZWNlaXZlV2ViUmVnaXN0ZXJQcm90
b2NvbEhhbmRsZXJQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1l
c3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisgICAgdm9pZCBkaWRSZWNlaXZl
U3luY1dlYlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5l
Y3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciosIE93
blB0cjxDb3JlSVBDOjpBcmd1bWVudEVuY29kZXI+Jik7CisKKyAgICB2b2lkIHJlZ2lzdGVyUHJv
dG9jb2xIYW5kbGVyKGNvbnN0IFN0cmluZyYgc2NoZW1lLCBjb25zdCBTdHJpbmcmIGJhc2VVUkws
IGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBTdHJpbmcmIHRpdGxlKTsKKyNpZiBFTkFCTEUoQ1VT
VE9NX1NDSEVNRV9IQU5ETEVSKQorICAgIHZvaWQgaXNQcm90b2NvbEhhbmRsZXJSZWdpc3RlcmVk
KGNvbnN0IFN0cmluZyYgc2NoZW1lLCBjb25zdCBTdHJpbmcmIGJhc2VVUkwsIGNvbnN0IFN0cmlu
ZyYgdXJsLCB1aW50MzJfdCYgcmVzdWx0KTsKKyAgICB2b2lkIHVucmVnaXN0ZXJQcm90b2NvbEhh
bmRsZXIoY29uc3QgU3RyaW5nJiBzY2hlbWUsIGNvbnN0IFN0cmluZyYgYmFzZVVSTCwgY29uc3Qg
U3RyaW5nJiB1cmwpOworI2VuZGlmIC8vIEVOQUJMRShDVVNUT01fU0NIRU1FX0hBTkRMRVIpCisK
KyAgICBXZWJDb250ZXh0KiBtX2NvbnRleHQ7CisgICAgV2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRs
ZXJQcm92aWRlciBtX3Byb3ZpZGVyOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNl
bmRpZiAvLyBFTkFCTEUoUkVHSVNURVJfUFJPVE9DT0xfSEFORExFUikKKworI2VuZGlmIC8vIFdl
YlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJveHlfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJveHkubWVzc2FnZXMuaW4g
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJQcm94
eS5tZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44Y2M2MzVi
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlJlZ2lzdGVy
UHJvdG9jb2xIYW5kbGVyUHJveHkubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwzMyBAQAorIyBDb3B5
cmlnaHQgKEMpIDIwMTIgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisj
CisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyMgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyMgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRQorIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgorIyBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisjIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SCisjIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisjIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
CisjIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyNpZiBFTkFCTEUoUkVH
SVNURVJfUFJPVE9DT0xfSEFORExFUikKKworbWVzc2FnZXMgLT4gV2ViUmVnaXN0ZXJQcm90b2Nv
bEhhbmRsZXJQcm94eSB7CisgICAgUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXIoV1RGOjpTdHJpbmcg
c2NoZW1lLCBXVEY6OlN0cmluZyBiYXNlVVJMLCBXVEY6OlN0cmluZyB1cmwsIFdURjo6U3RyaW5n
IHRpdGxlKQorI2lmIEVOQUJMRShDVVNUT01fU0NIRU1FX0hBTkRMRVIpCisgICAgSXNQcm90b2Nv
bEhhbmRsZXJSZWdpc3RlcmVkKFdURjo6U3RyaW5nIHNjaGVtZSwgV1RGOjpTdHJpbmcgYmFzZVVS
TCwgV1RGOjpTdHJpbmcgdXJsKSAtPiAodWludDMyX3QgcmVzdWx0KQorICAgIFVucmVnaXN0ZXJQ
cm90b2NvbEhhbmRsZXIoV1RGOjpTdHJpbmcgc2NoZW1lLCBXVEY6OlN0cmluZyBiYXNlVVJMLCBX
VEY6OlN0cmluZyB1cmwpCisjZW5kaWYgLy8gRU5BQkxFKENVU1RPTV9TQ0hFTUVfSEFORExFUikK
K30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRs
ZXJDbGllbnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc0NWNjNDEK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyQ2xpZW50LmNwcApAQCAtMCwwICsxLDYyIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2Vi
UmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJDbGllbnQuaCIKKworI2lmIEVOQUJMRShSRUdJU1RFUl9Q
Uk9UT0NPTF9IQU5ETEVSKQorCisjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgorI2luY2x1ZGUgIldl
YlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJveHlNZXNzYWdlcy5oIgorCit1c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKK3VzaW5nIG5hbWVzcGFjZSBNZXNzYWdlczo6V2ViUmVnaXN0ZXJQcm90b2Nv
bEhhbmRsZXJQcm94eTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3ZvaWQgV2ViUmVnaXN0ZXJQ
cm90b2NvbEhhbmRsZXJDbGllbnQ6OnJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyKGNvbnN0IFN0cmlu
ZyYgc2NoZW1lLCBjb25zdCBTdHJpbmcmIGJhc2VVUkwsIGNvbnN0IFN0cmluZyYgdXJsLCBjb25z
dCBTdHJpbmcmIHRpdGxlKQoreworICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLmNvbm5lY3Rpb24o
KS0+c2VuZChSZWdpc3RlclByb3RvY29sSGFuZGxlcihzY2hlbWUsIGJhc2VVUkwsIHVybCwgdGl0
bGUpLCAwKTsKK30KKworI2lmIEVOQUJMRShDVVNUT01fU0NIRU1FX0hBTkRMRVIpCitSZWdpc3Rl
clByb3RvY29sSGFuZGxlckNsaWVudDo6Q3VzdG9tSGFuZGxlcnNTdGF0ZSBXZWJSZWdpc3RlclBy
b3RvY29sSGFuZGxlckNsaWVudDo6aXNQcm90b2NvbEhhbmRsZXJSZWdpc3RlcmVkKGNvbnN0IFN0
cmluZyYgc2NoZW1lLCBjb25zdCBTdHJpbmcmIGJhc2VVUkwsIGNvbnN0IFN0cmluZyYgdXJsKQor
eworICAgIHVpbnQzMl90IHJlc3VsdCA9IFJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyQ2xpZW50OjpD
dXN0b21IYW5kbGVyc05ldzsKKyAgICBXZWJQcm9jZXNzOjpzaGFyZWQoKS5jb25uZWN0aW9uKCkt
PnNlbmRTeW5jKElzUHJvdG9jb2xIYW5kbGVyUmVnaXN0ZXJlZChzY2hlbWUsIGJhc2VVUkwsIHVy
bCksIElzUHJvdG9jb2xIYW5kbGVyUmVnaXN0ZXJlZDo6UmVwbHkocmVzdWx0KSwgMCk7CisgICAg
QVNTRVJUKHJlc3VsdCA8PSBSZWdpc3RlclByb3RvY29sSGFuZGxlckNsaWVudDo6Q3VzdG9tSGFu
ZGxlcnNEZWNsaW5lZCk7CisKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8UmVnaXN0ZXJQcm90b2Nv
bEhhbmRsZXJDbGllbnQ6OkN1c3RvbUhhbmRsZXJzU3RhdGU+KHJlc3VsdCk7Cit9CisKK3ZvaWQg
V2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJDbGllbnQ6OnVucmVnaXN0ZXJQcm90b2NvbEhhbmRs
ZXIoY29uc3QgU3RyaW5nJiBzY2hlbWUsIGNvbnN0IFN0cmluZyYgYmFzZVVSTCwgY29uc3QgU3Ry
aW5nJiB1cmwpCit7CisgICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkuY29ubmVjdGlvbigpLT5zZW5k
KFVucmVnaXN0ZXJQcm90b2NvbEhhbmRsZXIoc2NoZW1lLCBiYXNlVVJMLCB1cmwpLCAwKTsKK30K
KworI2VuZGlmIC8vIEVOQUJMRShDVVNUT01fU0NIRU1FX0hBTkRMRVIpCit9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShSRUdJU1RFUl9QUk9UT0NPTF9IQU5ETEVSKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJS
ZWdpc3RlclByb3RvY29sSGFuZGxlckNsaWVudC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJSZWdpc3RlclByb3RvY29sSGFuZGxlckNsaWVudC5oCmluZGV4
IDYzZjE5OTAuLjgyODNhYWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJDbGllbnQuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlJlZ2lzdGVyUHJvdG9j
b2xIYW5kbGVyQ2xpZW50LmgKQEAgLTM4LDExICszOCwxMSBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCB+V2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJDbGllbnQoKSB7IH0KIAogcHJpdmF0ZToKLSAg
ICB2aXJ0dWFsIHZvaWQgcmVnaXN0ZXJQcm90b2NvbEhhbmRsZXIoY29uc3QgU3RyaW5nJiBzY2hl
bWUsIGNvbnN0IFN0cmluZyYgYmFzZVVSTCwgY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0cmlu
ZyYgdGl0bGUpIE9WRVJSSURFIHsgfQorICAgIHZpcnR1YWwgdm9pZCByZWdpc3RlclByb3RvY29s
SGFuZGxlcihjb25zdCBTdHJpbmcmIHNjaGVtZSwgY29uc3QgU3RyaW5nJiBiYXNlVVJMLCBjb25z
dCBTdHJpbmcmIHVybCwgY29uc3QgU3RyaW5nJiB0aXRsZSkgT1ZFUlJJREU7CiAKICNpZiBFTkFC
TEUoQ1VTVE9NX1NDSEVNRV9IQU5ETEVSKQotICAgIHZpcnR1YWwgQ3VzdG9tSGFuZGxlcnNTdGF0
ZSBpc1Byb3RvY29sSGFuZGxlclJlZ2lzdGVyZWQoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5n
JiwgY29uc3QgU3RyaW5nJikgeyByZXR1cm4gQ3VzdG9tSGFuZGxlcnNEZWNsaW5lZDsgfQotICAg
IHZpcnR1YWwgdm9pZCB1bnJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyKGNvbnN0IFN0cmluZyYsIGNv
bnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpIHsgfQorICAgIHZpcnR1YWwgQ3VzdG9tSGFuZGxl
cnNTdGF0ZSBpc1Byb3RvY29sSGFuZGxlclJlZ2lzdGVyZWQoY29uc3QgU3RyaW5nJiwgY29uc3Qg
U3RyaW5nJiwgY29uc3QgU3RyaW5nJik7CisgICAgdmlydHVhbCB2b2lkIHVucmVnaXN0ZXJQcm90
b2NvbEhhbmRsZXIoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJik7
CiAjZW5kaWYKIH07CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>157168</attachid>
            <date>2012-08-08 03:49:10 -0700</date>
            <delta_ts>2012-08-08 07:28:14 -0700</delta_ts>
            <desc>patch</desc>
            <filename>bug92749</filename>
            <type>text/plain</type>
            <size>39738</size>
            <attacher name="Mikhail Pozdnyakov">mikhail.pozdnyakov</attacher>
            
              <data encoding="base64">Y29tbWl0IDExYWYwMWMwODJkN2IwYjRhM2M4MWYwNzZhYjliYzUxMzZmOTQ2M2MKQXV0aG9yOiBN
aWtoYWlsIFBvemRueWFrb3YgPG1pa2hhaWwucG96ZG55YWtvdkBpbnRlbC5jb20+CkRhdGU6ICAg
V2VkIEF1ZyAxIDE5OjE3OjQwIDIwMTIgKzAzMDAKCiAgICBidWc5Mjc0OQoKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0
cy50eHQKaW5kZXggN2QxMGM3ZC4uN2U1YTk3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
Q01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQKQEAgLTI3
Myw2ICsyNzMsOCBAQCBTRVQoV2ViS2l0Ml9TT1VSQ0VTCiAgICAgVUlQcm9jZXNzL1dlYlBvbGlj
eUNsaWVudC5jcHAKICAgICBVSVByb2Nlc3MvV2ViUHJlZmVyZW5jZXMuY3BwCiAgICAgVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKKyAgICBVSVByb2Nlc3MvV2ViUmVnaXN0ZXJQcm90b2Nv
bEhhbmRsZXJQcm92aWRlci5jcHAKKyAgICBVSVByb2Nlc3MvV2ViUmVnaXN0ZXJQcm90b2NvbEhh
bmRsZXJQcm94eS5jcHAKICAgICBVSVByb2Nlc3MvV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94
eS5jcHAKICAgICBVSVByb2Nlc3MvV2ViUmVzb3VyY2VMb2FkQ2xpZW50LmNwcAogICAgIFVJUHJv
Y2Vzcy9XZWJUZXh0Q2hlY2tlci5jcHAKQEAgLTMyMCw2ICszMjIsNyBAQCBTRVQoV2ViS2l0Ml9T
T1VSQ0VTCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLUGx1Z2luU2l0ZURhdGFNYW5hZ2VyLmNwcAog
ICAgIFVJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcAogICAgIFVJUHJvY2Vzcy9BUEkv
Qy9XS1Byb3RlY3Rpb25TcGFjZS5jcHAKKyAgICBVSVByb2Nlc3MvQVBJL0MvV0tSZWdpc3RlclBy
b3RvY29sSGFuZGxlci5jcHAKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tSZXNvdXJjZUNhY2hlTWFu
YWdlci5jcHAKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tUZXh0Q2hlY2tlci5jcHAKICAgICBVSVBy
b2Nlc3MvQVBJL0MvV0tWaWJyYXRpb24uY3BwCkBAIC00NTUsNiArNDU4LDcgQEAgU0VUKFdlYktp
dDJfU09VUkNFUwogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9u
Q2xpZW50LmNwcAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJh
dGVnaWVzLmNwcAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUG9wdXBNZW51LmNw
cAorICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRs
ZXJDbGllbnQuY3BwCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTZWFyY2hQb3B1
cE1lbnUuY3BwCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJWaWJyYXRpb25DbGll
bnQuY3BwCiAKQEAgLTUwNSw2ICs1MDksNyBAQCBTRVQoV2ViS2l0Ml9NRVNTQUdFU19JTl9GSUxF
UwogICAgIFVJUHJvY2Vzcy9XZWJOZXR3b3JrSW5mb01hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgog
ICAgIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KICAgICBVSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCisgICAgVUlQcm9jZXNzL1dlYlJlZ2lzdGVyUHJvdG9j
b2xIYW5kbGVyUHJveHkubWVzc2FnZXMuaW4KICAgICBVSVByb2Nlc3MvV2ViUmVzb3VyY2VDYWNo
ZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgogICAgIFVJUHJvY2Vzcy9XZWJWaWJyYXRpb25Qcm94
eS5tZXNzYWdlcy5pbgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZTcwYTdjZS4uZGE1ZTM0YiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDU5IEBACisyMDEyLTA4LTAzICBNaWtoYWlsIFBvemRueWFrb3YgIDxtaWto
YWlsLnBvemRueWFrb3ZAaW50ZWwuY29tPgorCisgICAgICAgIFtXSzJdIEFkZCBQcm90b2NvbCBI
YW5kbGVyIEFQSSBzdXBwb3J0IGZvciBXZWJLaXQyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD05Mjc0OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIHN1cHBvcnQgb2YgUmVnaXN0ZXIgUHJvdG9jb2wg
SGFuZGxlciBBUEkuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJp
dmVkU291cmNlcy5wcmk6CisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAg
KiBQbGF0Zm9ybS9Db3JlSVBDL01lc3NhZ2VJRC5oOgorICAgICAgICAqIFNoYXJlZC9BUEkvYy9X
S0Jhc2UuaDoKKyAgICAgICAgKiBTaGFyZWQvQVBJT2JqZWN0Lmg6CisgICAgICAgICogVGFyZ2V0
LnByaToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0Lmg6CisgICAgICAgIChX
ZWJLaXQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1JlZ2lzdGVyUHJvdG9jb2xIYW5k
bGVyLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJSZWdpc3RlclByb3RvY29sSGFuZGxlckNsaWVudC5oLgorICAgICAgICAoV0tSZWdp
c3RlclByb3RvY29sSGFuZGxlckdldFR5cGVJRCk6CisgICAgICAgIChXS1JlZ2lzdGVyUHJvdG9j
b2xIYW5kbGVyU2V0UHJvdmlkZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1JlZ2lz
dGVyUHJvdG9jb2xIYW5kbGVyLmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJSZWdp
c3RlclByb3RvY29sSGFuZGxlclByb3ZpZGVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQp
OgorICAgICAgICAoV2ViS2l0OjpXZWJSZWdpc3RlclByb3RvY29sSGFuZGxlclByb3ZpZGVyOjpy
ZWdpc3RlclByb3RvY29sSGFuZGxlcik6CisgICAgICAgIChXZWJLaXQ6OldlYlJlZ2lzdGVyUHJv
dG9jb2xIYW5kbGVyUHJvdmlkZXI6OmlzUHJvdG9jb2xIYW5kbGVyUmVnaXN0ZXJlZCk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJvdmlkZXI6OnVucmVnaXN0
ZXJQcm90b2NvbEhhbmRsZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJSZWdpc3RlclByb3Rv
Y29sSGFuZGxlclByb3ZpZGVyLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJDbGllbnQuaC4KKyAg
ICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJSZWdpc3RlclByb3RvY29sSGFuZGxlclByb3Zp
ZGVyKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJQcm94
eS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVn
aXN0ZXJQcm90b2NvbEhhbmRsZXJQcm94eTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJQcm94eTo6V2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJQ
cm94eSk6CisgICAgICAgIChXZWJLaXQ6OldlYlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJveHk6
On5XZWJSZWdpc3RlclByb3RvY29sSGFuZGxlclByb3h5KToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJQcm94eTo6aW52YWxpZGF0ZSk6CisgICAgICAgIChXZWJL
aXQ6OldlYlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJveHk6OmluaXRpYWxpemVQcm92aWRlcik6
CisgICAgICAgIChXZWJLaXQ6OldlYlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJveHk6OmRpZFJl
Y2VpdmVNZXNzYWdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRs
ZXJQcm94eTo6cmVnaXN0ZXJQcm90b2NvbEhhbmRsZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJS
ZWdpc3RlclByb3RvY29sSGFuZGxlclByb3h5Ojppc1Byb3RvY29sSGFuZGxlclJlZ2lzdGVyZWQp
OgorICAgICAgICAoV2ViS2l0OjpXZWJSZWdpc3RlclByb3RvY29sSGFuZGxlclByb3h5Ojp1bnJl
Z2lzdGVyUHJvdG9jb2xIYW5kbGVyKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUmVnaXN0ZXJQ
cm90b2NvbEhhbmRsZXJQcm94eS5oOiBBZGRlZC4KKyAgICAgICAgKENvcmVJUEMpOgorICAgICAg
ICAoV2ViS2l0KToKKyAgICAgICAgKFdlYlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJveHkpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJSZWdpc3RlclByb3RvY29sSGFuZGxlclByb3h5OjpjbGVhckNv
bnRleHQpOgorICAgICAgICAoV2ViS2l0OjpXZWJSZWdpc3RlclByb3RvY29sSGFuZGxlclByb3h5
Ojp0eXBlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJQ
cm94eS5tZXNzYWdlcy5pbjogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJSZWdpc3RlclByb3RvY29sSGFuZGxlckNsaWVudC5jcHA6IENvcGllZCBmcm9tIFNv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUmVnaXN0ZXJQcm90b2Nv
bEhhbmRsZXJDbGllbnQuaC4KKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyQ2xpZW50OjpyZWdpc3RlclByb3RvY29sSGFuZGxlcik6
CisgICAgICAgIChXZWJLaXQ6OldlYlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyQ2xpZW50Ojppc1By
b3RvY29sSGFuZGxlclJlZ2lzdGVyZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJSZWdpc3RlclBy
b3RvY29sSGFuZGxlckNsaWVudDo6dW5yZWdpc3RlclByb3RvY29sSGFuZGxlcik6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJSZWdpc3RlclByb3RvY29sSGFuZGxlckNs
aWVudC5oOgorICAgICAgICAoV2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJDbGllbnQpOgorCiAy
MDEyLTA4LTA4ICBNYXJpbyBTYW5jaGV6IFByYWRhICA8bXNhbmNoZXpAaWdhbGlhLmNvbT4KIAog
ICAgICAgICBbV0syXSBBZGQgbmV3IEMgQVBJIHRvIGdlbmVyYXRlIE1IVE1MIGRhdGEgZnJvbSB0
aGUgVUkgcHJvY2VzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvRGVyaXZlZFNvdXJjZXMu
cHJpIGIvU291cmNlL1dlYktpdDIvRGVyaXZlZFNvdXJjZXMucHJpCmluZGV4IDI2Y2JiMmIuLjdj
NTkwYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0Rlcml2ZWRTb3VyY2VzLnByaQorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9EZXJpdmVkU291cmNlcy5wcmkKQEAgLTEwMyw2ICsxMDMsNyBAQCBN
RVNTQUdFX1JFQ0VJVkVSUyA9IFwKICAgICBXZWJQcm9jZXNzLm1lc3NhZ2VzLmluIFwKICAgICBX
ZWJQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbiBcCiAgICAgV2ViUHJvY2Vzc1Byb3h5Lm1l
c3NhZ2VzLmluIFwKKyAgICBXZWJSZWdpc3RlclByb3RvY29sSGFuZGxlclByb3h5Lm1lc3NhZ2Vz
LmluIFwKICAgICBXZWJSZXNvdXJjZUNhY2hlTWFuYWdlci5tZXNzYWdlcy5pbiBcCiAgICAgV2Vi
UmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiBcCiAgICAgV2ViVmlicmF0aW9u
UHJveHkubWVzc2FnZXMuaW4gXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvR05VbWFrZWZp
bGUubGlzdC5hbSBiL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggMGJl
NmE2MC4uZDFmNzRiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUubGlz
dC5hbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC04Nyw2ICs4
Nyw3IEBAIHdlYmtpdDJfaF9hcGkgKz0gXAogCSQoV2ViS2l0MikvVUlQcm9jZXNzL0FQSS9DL1dL
UHJlZmVyZW5jZXNQcml2YXRlLmggXAogCSQoV2ViS2l0MikvVUlQcm9jZXNzL0FQSS9DL1dLUHJv
dGVjdGlvblNwYWNlLmggXAogCSQoV2ViS2l0MikvVUlQcm9jZXNzL0FQSS9DL1dLUHJvdGVjdGlv
blNwYWNlVHlwZXMuaCBcCisJJChXZWJLaXQyKS9VSVByb2Nlc3MvQVBJL0MvV0tSZWdpc3RlclBy
b3RvY29sSGFuZGxlci5oIFwKIAkkKFdlYktpdDIpL1VJUHJvY2Vzcy9BUEkvQy9XS1Jlc291cmNl
Q2FjaGVNYW5hZ2VyLmggXAogCSQoV2ViS2l0MikvVUlQcm9jZXNzL0FQSS9DL1dLVGV4dENoZWNr
ZXIuaCBcCiAJJChXZWJLaXQyKS9VSVByb2Nlc3MvQVBJL0MvV0tWaWJyYXRpb24uY3BwIFwKQEAg
LTIwNiw2ICsyMDcsOCBAQCB3ZWJraXQyX2J1aWx0X3NvdXJjZXMgKz0gXAogCURlcml2ZWRTb3Vy
Y2VzL1dlYktpdDIvV2ViUGFnZVByb3h5TWVzc2FnZXMuaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2Vi
S2l0Mi9XZWJQYWdlTWVzc2FnZVJlY2VpdmVyLmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViS2l0
Mi9XZWJQYWdlTWVzc2FnZXMuaCBcCisJRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJSZWdpc3Rl
clByb3RvY29sSGFuZGxlck1lc3NhZ2VzUmVjZWl2ZXIuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9X
ZWJLaXQyL1dlYlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJveHlNZXNzYWdlcy5oIFwKIAlEZXJp
dmVkU291cmNlcy9XZWJLaXQyL1dlYlJlc291cmNlQ2FjaGVNYW5hZ2VyTWVzc2FnZVJlY2VpdmVy
LmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJSZXNvdXJjZUNhY2hlTWFuYWdlck1l
c3NhZ2VzLmggXAogCURlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViUmVzb3VyY2VDYWNoZU1hbmFn
ZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgXApAQCAtNjAxLDYgKzYwNCw4IEBAIHdlYmtpdDJf
c291cmNlcyArPSBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJvdGVjdGlv
blNwYWNlLmNwcCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJvdGVjdGlv
blNwYWNlLmggXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1Byb3RlY3Rpb25T
cGFjZVR5cGVzLmggXAorCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1JlZ2lzdGVy
UHJvdG9jb2xIYW5kbGVyLmNwcCBcCisJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dL
UmVnaXN0ZXJQcm90b2NvbEhhbmRsZXIuaCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9DL1dLUmVzb3VyY2VDYWNoZU1hbmFnZXIuaCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9DL1dLUmVzb3VyY2VDYWNoZU1hbmFnZXIuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0MvV0tUZXh0Q2hlY2tlci5oIFwKQEAgLTg5OCw2ICs5MDMsMTAgQEAgd2Via2l0
Ml9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJlZmVyZW5jZXMu
aCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAgXAogCVNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaCBcCisJU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJvdmlkZXIuaCBcCisJU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJvdmlkZXIu
Y3BwIFwKKwlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRs
ZXJQcm94eS5jcHAgXAorCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJSZWdpc3RlclByb3Rv
Y29sSGFuZGxlclByb3h5LmggXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJSZXNvdXJj
ZUNhY2hlTWFuYWdlclByb3h5LmggXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJSZXNv
dXJjZUNhY2hlTWFuYWdlclByb3h5LmNwcCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YlJlc291cmNlTG9hZENsaWVudC5jcHAgXApAQCAtMTEwOCw2ICsxMTE3LDggQEAgd2Via2l0Ml9z
b3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
Yk5vdGlmaWNhdGlvbkNsaWVudC5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmggXAorCVNvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUmVnaXN0ZXJQcm90b2NvbEhh
bmRsZXJDbGllbnQuY3BwIFwKKwlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyQ2xpZW50LmggXAogCVNvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUG9wdXBNZW51LmNwcCBcCiAJU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQb3B1cE1lbnUuaCBcCiAJU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTZWFyY2hQb3B1cE1lbnUuY3Bw
IFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvTWVzc2FnZUlE
LmggYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL01lc3NhZ2VJRC5oCmluZGV4IDIy
ZDMwNmIuLjBjZDhlM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJ
UEMvTWVzc2FnZUlELmgKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNz
YWdlSUQuaApAQCAtNzksNiArNzksNyBAQCBlbnVtIE1lc3NhZ2VDbGFzcyB7CiAgICAgTWVzc2Fn
ZUNsYXNzV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LAogICAgIE1lc3NhZ2VDbGFzc1dlYlBh
Z2VQcm94eSwKICAgICBNZXNzYWdlQ2xhc3NXZWJQcm9jZXNzUHJveHksCisgICAgTWVzc2FnZUNs
YXNzV2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJQcm94eSwKICAgICBNZXNzYWdlQ2xhc3NXZWJS
ZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5LAogI2lmIFVTRShTT1VQKQogICAgIE1lc3NhZ2VDbGFz
c1dlYlNvdXBSZXF1ZXN0TWFuYWdlclByb3h5LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL0FQSS9jL1dLQmFzZS5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLQmFz
ZS5oCmluZGV4IDY4NTRlY2MuLjU1NzM5OTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9BUEkvYy9XS0Jhc2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tC
YXNlLmgKQEAgLTEyMiw2ICsxMjIsNyBAQCB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1Bh
Z2VHcm91cCogV0tQYWdlR3JvdXBSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1Bs
dWdpblNpdGVEYXRhTWFuYWdlciogV0tQbHVnaW5TaXRlRGF0YU1hbmFnZXJSZWY7CiB0eXBlZGVm
IGNvbnN0IHN0cnVjdCBPcGFxdWVXS1ByZWZlcmVuY2VzKiBXS1ByZWZlcmVuY2VzUmVmOwogdHlw
ZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tQcm90ZWN0aW9uU3BhY2UqIFdLUHJvdGVjdGlvblNw
YWNlUmVmOwordHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tSZWdpc3RlclByb3RvY29sSGFu
ZGxlciogV0tSZWdpc3RlclByb3RvY29sSGFuZGxlclJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0
IE9wYXF1ZVdLVGV4dENoZWNrZXIqIFdLVGV4dENoZWNrZXJSZWY7CiB0eXBlZGVmIGNvbnN0IHN0
cnVjdCBPcGFxdWVXS1ZpYnJhdGlvbiogV0tWaWJyYXRpb25SZWY7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9BUElPYmplY3QuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9B
UElPYmplY3QuaAppbmRleCA4ZTRkMjkzLi5hOWYzN2I1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvQVBJT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSU9i
amVjdC5oCkBAIC0xMDYsNiArMTA2LDcgQEAgcHVibGljOgogICAgICAgICBUeXBlUGFnZUdyb3Vw
LAogICAgICAgICBUeXBlUGx1Z2luU2l0ZURhdGFNYW5hZ2VyLAogICAgICAgICBUeXBlUHJlZmVy
ZW5jZXMsCisgICAgICAgIFR5cGVSZWdpc3RlclByb3RvY29sSGFuZGxlciwKICAgICAgICAgVHlw
ZVRleHRDaGVja2VyLAogICAgICAgICBUeXBlVmlicmF0aW9uLAogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9UYXJnZXQucHJpIGIvU291cmNlL1dlYktpdDIvVGFyZ2V0LnByaQppbmRleCBl
MGZhNmVhLi42NWEzODg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJpCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1RhcmdldC5wcmkKQEAgLTE4MSw2ICsxODEsNyBAQCBIRUFERVJT
ICs9IFwKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlc1ByaXZhdGUuaCBcCiAgICAg
VUlQcm9jZXNzL0FQSS9DL1dLUHJvdGVjdGlvblNwYWNlLmggXAogICAgIFVJUHJvY2Vzcy9BUEkv
Qy9XS1Byb3RlY3Rpb25TcGFjZVR5cGVzLmggXAorICAgIFVJUHJvY2Vzcy9BUEkvQy9XS1JlZ2lz
dGVyUHJvdG9jb2xIYW5kbGVyLmggXAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS1ZpYnJhdGlvbi5o
IFwKICAgICBVSVByb2Nlc3MvQVBJL0MvV2ViS2l0Ml9DLmggXAogICAgIFVJUHJvY2Vzcy9BUEkv
Qy9xdC9XS05hdGl2ZUV2ZW50LmggXApAQCAtMjYzLDYgKzI2NCw4IEBAIEhFQURFUlMgKz0gXAog
ICAgIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaCBcCiAgICAgVUlQcm9jZXNzL1dlYlJlc291
cmNlQ2FjaGVNYW5hZ2VyUHJveHkuaCBcCiAgICAgVUlQcm9jZXNzL1dlYlJlc291cmNlTG9hZENs
aWVudC5oIFwKKyAgICBVSVByb2Nlc3MvV2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJQcm92aWRl
ci5oIFwKKyAgICBVSVByb2Nlc3MvV2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJQcm94eS5oIFwK
ICAgICBVSVByb2Nlc3MvV2ViVUlDbGllbnQuaCBcCiAgICAgVUlQcm9jZXNzL1dlYlZpYnJhdGlv
blByb3ZpZGVyLmggXAogICAgIFVJUHJvY2Vzcy9XZWJWaWJyYXRpb25Qcm94eS5oIFwKQEAgLTMz
OSw2ICszNDIsNyBAQCBIRUFERVJTICs9IFwKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5oIFwKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oIFwKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYlBvcHVwTWVudS5oIFwKKyAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlJlZ2lz
dGVyUHJvdG9jb2xIYW5kbGVyQ2xpZW50LmggXAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViU2VhcmNoUG9wdXBNZW51LmggXAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViVmlicmF0aW9uQ2xpZW50LmggXAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvcXQv
V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oIFwKQEAgLTUyMSw2ICs1MjUsNyBAQCBTT1VSQ0VT
ICs9IFwKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tQbHVnaW5TaXRlRGF0YU1hbmFnZXIuY3BwIFwK
ICAgICBVSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHAgXAogICAgIFVJUHJvY2Vzcy9B
UEkvQy9XS1Byb3RlY3Rpb25TcGFjZS5jcHAgXAorICAgIFVJUHJvY2Vzcy9BUEkvQy9XS1JlZ2lz
dGVyUHJvdG9jb2xIYW5kbGVyLmNwcCBcCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLUmVzb3VyY2VD
YWNoZU1hbmFnZXIuY3BwIFwKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tWaWJyYXRpb24uY3BwIFwK
ICAgICBVSVByb2Nlc3MvQVBJL2NwcC9xdC9XS1N0cmluZ1F0LmNwcCBcCkBAIC02MDAsNiArNjA1
LDggQEAgU09VUkNFUyArPSBcCiAgICAgVUlQcm9jZXNzL1dlYlBvbGljeUNsaWVudC5jcHAgXAog
ICAgIFVJUHJvY2Vzcy9XZWJQcmVmZXJlbmNlcy5jcHAgXAogICAgIFVJUHJvY2Vzcy9XZWJQcm9j
ZXNzUHJveHkuY3BwIFwKKyAgICBVSVByb2Nlc3MvV2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJQ
cm92aWRlci5jcHAgXAorICAgIFVJUHJvY2Vzcy9XZWJSZWdpc3RlclByb3RvY29sSGFuZGxlclBy
b3h5LmNwcCBcCiAgICAgVUlQcm9jZXNzL1dlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHkuY3Bw
IFwKICAgICBVSVByb2Nlc3MvV2ViUmVzb3VyY2VMb2FkQ2xpZW50LmNwcCBcCiAgICAgVUlQcm9j
ZXNzL1dlYlVJQ2xpZW50LmNwcCBcCkBAIC02OTgsNiArNzA1LDcgQEAgU09VUkNFUyArPSBcCiAg
ICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJOb3RpZmljYXRpb25DbGllbnQuY3BwIFwK
ICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAg
XAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUG9wdXBNZW51LmNwcCBcCisgICAg
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJSZWdpc3RlclByb3RvY29sSGFuZGxlckNsaWVu
dC5jcHAgXAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU2VhcmNoUG9wdXBNZW51
LmNwcCBcCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJWaWJyYXRpb25DbGllbnQu
Y3BwIFwKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3F0L1dlYkNvbnRleHRNZW51Q2xp
ZW50UXQuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9X
S0FQSUNhc3QuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaApp
bmRleCBiZWYyOTRlLi5jNjUwNTQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0MvV0tBUElDYXN0LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
L1dLQVBJQ2FzdC5oCkBAIC04OSw2ICs4OSw3IEBAIGNsYXNzIFdlYlBhZ2VQcm94eTsKIGNsYXNz
IFdlYlBsdWdpblNpdGVEYXRhTWFuYWdlcjsKIGNsYXNzIFdlYlByZWZlcmVuY2VzOwogY2xhc3Mg
V2ViUHJvdGVjdGlvblNwYWNlOworY2xhc3MgV2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJQcm94
eTsKIGNsYXNzIFdlYlJlbmRlckxheWVyOwogY2xhc3MgV2ViUmVuZGVyT2JqZWN0OwogY2xhc3Mg
V2ViVGV4dENoZWNrZXI7CkBAIC0xMzQsNiArMTM1LDcgQEAgV0tfQUREX0FQSV9NQVBQSU5HKFdL
UGFnZVJlZiwgV2ViUGFnZVByb3h5KQogV0tfQUREX0FQSV9NQVBQSU5HKFdLUGx1Z2luU2l0ZURh
dGFNYW5hZ2VyUmVmLCBXZWJQbHVnaW5TaXRlRGF0YU1hbmFnZXIpCiBXS19BRERfQVBJX01BUFBJ
TkcoV0tQcmVmZXJlbmNlc1JlZiwgV2ViUHJlZmVyZW5jZXMpCiBXS19BRERfQVBJX01BUFBJTkco
V0tQcm90ZWN0aW9uU3BhY2VSZWYsIFdlYlByb3RlY3Rpb25TcGFjZSkKK1dLX0FERF9BUElfTUFQ
UElORyhXS1JlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUmVmLCBXZWJSZWdpc3RlclByb3RvY29sSGFu
ZGxlclByb3h5KQogV0tfQUREX0FQSV9NQVBQSU5HKFdLUmVuZGVyTGF5ZXJSZWYsIFdlYlJlbmRl
ckxheWVyKQogV0tfQUREX0FQSV9NQVBQSU5HKFdLUmVuZGVyT2JqZWN0UmVmLCBXZWJSZW5kZXJP
YmplY3QpCiBXS19BRERfQVBJX01BUFBJTkcoV0tUZXh0Q2hlY2tlclJlZiwgV2ViVGV4dENoZWNr
ZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tSZWdpc3Rl
clByb3RvY29sSGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tS
ZWdpc3RlclByb3RvY29sSGFuZGxlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uYzc5YzQ5MwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQy9XS1JlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyLmNwcApAQCAtMCwwICsxLDUxIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDEyIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV0tSZWdp
c3RlclByb3RvY29sSGFuZGxlci5oIgorCisjaW5jbHVkZSAiV0tBUElDYXN0LmgiCisKKyNpZiBF
TkFCTEUoUkVHSVNURVJfUFJPVE9DT0xfSEFORExFUikKKyNpbmNsdWRlICJXZWJSZWdpc3RlclBy
b3RvY29sSGFuZGxlclByb3h5LmgiCisjZW5kaWYKKwordXNpbmcgbmFtZXNwYWNlIFdlYktpdDsK
KworV0tUeXBlSUQgV0tSZWdpc3RlclByb3RvY29sSGFuZGxlckdldFR5cGVJRCgpCit7CisjaWYg
RU5BQkxFKFJFR0lTVEVSX1BST1RPQ09MX0hBTkRMRVIpCisgICAgcmV0dXJuIHRvQVBJKFdlYlJl
Z2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJveHk6OkFQSVR5cGUpOworI2Vsc2UKKyAgICByZXR1cm4g
MDsKKyNlbmRpZgorfQorCit2b2lkIFdLUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJTZXRQcm92aWRl
cihXS1JlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUmVmIHJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUmVm
LCBjb25zdCBXS1JlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJvdmlkZXIqIHdrUHJvdmlkZXIpCit7
CisjaWYgRU5BQkxFKFJFR0lTVEVSX1BST1RPQ09MX0hBTkRMRVIpCisgICAgdG9JbXBsKHJlZ2lz
dGVyUHJvdG9jb2xIYW5kbGVyUmVmKS0+aW5pdGlhbGl6ZVByb3ZpZGVyKHdrUHJvdmlkZXIpOwor
I2VuZGlmCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tS
ZWdpc3RlclByb3RvY29sSGFuZGxlci5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
L1dLUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi5mZDYyNjdkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9DL1dLUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXIuaApAQCAtMCwwICsxLDY1IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDEyIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdLUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJfaAor
I2RlZmluZSBXS1JlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyX2gKKworI2luY2x1ZGUgPFdlYktpdDIv
V0tCYXNlLmg+CisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKwor
ZW51bSB7CisgICAga1dLQ3VzdG9tSGFuZGxlcnNOZXcsCisgICAga1dLQ3VzdG9tSGFuZGxlcnNS
ZWdpc3RlcmVkLAorICAgIGtXS0N1c3RvbUhhbmRsZXJzRGVjbGluZWQKK307Cit0eXBlZGVmIHVp
bnQzMl90IFdLQ3VzdG9tSGFuZGxlcnNTdGF0ZTsKKwordHlwZWRlZiB2b2lkICgqV0tSZWdpc3Rl
clByb3RvY29sSGFuZGxlclByb3ZpZGVyUmVnaXN0ZXJDYWxsYmFjaykoV0tSZWdpc3RlclByb3Rv
Y29sSGFuZGxlclJlZiByZWdpc3RlclByb3RvY29sSGFuZGxlclJlZiwgV0tTdHJpbmdSZWYgc2No
ZW1lLCBXS1N0cmluZ1JlZiBiYXNlVVJMLCBXS1N0cmluZ1JlZiB1cmwsIFdLU3RyaW5nUmVmIHRp
dGxlLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKK3R5cGVkZWYgV0tDdXN0b21IYW5kbGVyc1N0
YXRlICgqV0tSZWdpc3RlclByb3RvY29sSGFuZGxlclByb3ZpZGVySXNSZWdpc3RlcmVkQ2FsbGJh
Y2spKFdLUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJSZWYgcmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJS
ZWYsIFdLU3RyaW5nUmVmIHNjaGVtZSwgV0tTdHJpbmdSZWYgYmFzZVVSTCwgV0tTdHJpbmdSZWYg
dXJsLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKK3R5cGVkZWYgdm9pZCAoKldLUmVnaXN0ZXJQ
cm90b2NvbEhhbmRsZXJQcm92aWRlclVucmVnaXN0ZXJDYWxsYmFjaykoV0tSZWdpc3RlclByb3Rv
Y29sSGFuZGxlclJlZiByZWdpc3RlclByb3RvY29sSGFuZGxlclJlZiwgV0tTdHJpbmdSZWYgc2No
ZW1lLCBXS1N0cmluZ1JlZiBiYXNlVVJMLCBXS1N0cmluZ1JlZiB1cmwsIGNvbnN0IHZvaWQqIGNs
aWVudEluZm8pOworCitzdHJ1Y3QgV0tSZWdpc3RlclByb3RvY29sSGFuZGxlclByb3ZpZGVyIHsK
KyAgICBpbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHZlcnNpb247CisgICAgY29uc3Qgdm9pZCAqICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGllbnRJbmZv
OworICAgIFdLUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJQcm92aWRlclJlZ2lzdGVyQ2FsbGJhY2sg
ICAgICAgICAgICAgICAgICAgICAgcmVnaXN0ZXJQcm90b2NvbEhhbmRsZXI7CisgICAgV0tSZWdp
c3RlclByb3RvY29sSGFuZGxlclByb3ZpZGVySXNSZWdpc3RlcmVkQ2FsbGJhY2sgICAgICAgICAg
ICAgICAgICBpc1Byb3RvY29sSGFuZGxlclJlZ2lzdGVyZWQ7CisgICAgV0tSZWdpc3RlclByb3Rv
Y29sSGFuZGxlclByb3ZpZGVyVW5yZWdpc3RlckNhbGxiYWNrICAgICAgICAgICAgICAgICAgICB1
bnJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyOworfTsKK3R5cGVkZWYgc3RydWN0IFdLUmVnaXN0ZXJQ
cm90b2NvbEhhbmRsZXJQcm92aWRlciBXS1JlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJvdmlkZXI7
CisKK2VudW0geyBrV0tSZWdpc3RlclByb3RvY29sSGFuZGxlclByb3ZpZGVyQ3VycmVudFZlcnNp
b24gPSAwIH07CisKK1dLX0VYUE9SVCBXS1R5cGVJRCBXS1JlZ2lzdGVyUHJvdG9jb2xIYW5kbGVy
R2V0VHlwZUlEKCk7CisKK1dLX0VYUE9SVCB2b2lkIFdLUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJT
ZXRQcm92aWRlcihXS1JlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUmVmIHJlZ2lzdGVyUHJvdG9jb2xI
YW5kbGVyUmVmLCBjb25zdCBXS1JlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJvdmlkZXIqIHByb3Zp
ZGVyKTsKKworI2lmZGVmIF9fY3BsdXNwbHVzCit9CisjZW5kaWYKKworI2VuZGlmIC8vIFdLUmVn
aXN0ZXJQcm90b2NvbEhhbmRsZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJvdmlkZXIuY3BwIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJvdmlkZXIuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM0NThhNWYKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJQcm92
aWRlci5jcHAKQEAgLTAsMCArMSw2NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBJbnRl
bCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJvdmlkZXIu
aCIKKworI2lmIEVOQUJMRShSRUdJU1RFUl9QUk9UT0NPTF9IQU5ETEVSKQorCisjaW5jbHVkZSAi
V0tBUElDYXN0LmgiCisjaW5jbHVkZSAiV2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJQcm94eS5o
IgorCituYW1lc3BhY2UgV2ViS2l0IHsKKwordm9pZCBXZWJSZWdpc3RlclByb3RvY29sSGFuZGxl
clByb3ZpZGVyOjpyZWdpc3RlclByb3RvY29sSGFuZGxlcihXZWJSZWdpc3RlclByb3RvY29sSGFu
ZGxlclByb3h5KiBwcm94eSwgY29uc3QgU3RyaW5nJiBzY2hlbWUsIGNvbnN0IFN0cmluZyYgYmFz
ZVVSTCwgY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0cmluZyYgdGl0bGUpCit7CisgICAgaWYg
KCFtX2NsaWVudC5yZWdpc3RlclByb3RvY29sSGFuZGxlcikKKyAgICAgICAgcmV0dXJuOworCisg
ICAgbV9jbGllbnQucmVnaXN0ZXJQcm90b2NvbEhhbmRsZXIodG9BUEkocHJveHkpLCB0b0FQSShz
Y2hlbWUuaW1wbCgpKSwgdG9BUEkoYmFzZVVSTC5pbXBsKCkpLCB0b0FQSSh1cmwuaW1wbCgpKSwg
dG9BUEkodGl0bGUuaW1wbCgpKSwgbV9jbGllbnQuY2xpZW50SW5mbyk7Cit9CisKKyNpZiBFTkFC
TEUoQ1VTVE9NX1NDSEVNRV9IQU5ETEVSKQordm9pZCBXZWJSZWdpc3RlclByb3RvY29sSGFuZGxl
clByb3ZpZGVyOjppc1Byb3RvY29sSGFuZGxlclJlZ2lzdGVyZWQoV2ViUmVnaXN0ZXJQcm90b2Nv
bEhhbmRsZXJQcm94eSogcHJveHksIGNvbnN0IFN0cmluZyYgc2NoZW1lLCBjb25zdCBTdHJpbmcm
IGJhc2VVUkwsIGNvbnN0IFN0cmluZyYgdXJsLCB1aW50MzJfdCYgcmVzdWx0KQoreworICAgIGlm
ICghbV9jbGllbnQuaXNQcm90b2NvbEhhbmRsZXJSZWdpc3RlcmVkKQorICAgICAgICByZXR1cm47
CisKKyAgICByZXN1bHQgPSBtX2NsaWVudC5pc1Byb3RvY29sSGFuZGxlclJlZ2lzdGVyZWQodG9B
UEkocHJveHkpLCB0b0FQSShzY2hlbWUuaW1wbCgpKSwgdG9BUEkoYmFzZVVSTC5pbXBsKCkpLCB0
b0FQSSh1cmwuaW1wbCgpKSwgbV9jbGllbnQuY2xpZW50SW5mbyk7Cit9CisKK3ZvaWQgV2ViUmVn
aXN0ZXJQcm90b2NvbEhhbmRsZXJQcm92aWRlcjo6dW5yZWdpc3RlclByb3RvY29sSGFuZGxlcihX
ZWJSZWdpc3RlclByb3RvY29sSGFuZGxlclByb3h5KiBwcm94eSwgY29uc3QgU3RyaW5nJiBzY2hl
bWUsIGNvbnN0IFN0cmluZyYgYmFzZVVSTCwgY29uc3QgU3RyaW5nJiB1cmwpCit7CisgICAgaWYg
KCFtX2NsaWVudC51bnJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyKQorICAgICAgICByZXR1cm47CisK
KyAgICBtX2NsaWVudC51bnJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyKHRvQVBJKHByb3h5KSwgdG9B
UEkoc2NoZW1lLmltcGwoKSksIHRvQVBJKGJhc2VVUkwuaW1wbCgpKSwgdG9BUEkodXJsLmltcGwo
KSksIG1fY2xpZW50LmNsaWVudEluZm8pOworfQorI2VuZGlmIC8vIEVOQUJMRShDVVNUT01fU0NI
RU1FX0hBTkRMRVIpCisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxF
KFJFR0lTVEVSX1BST1RPQ09MX0hBTkRMRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJQcm92aWRlci5oIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJvdmlkZXIuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNWNjNDdmCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJv
dmlkZXIuaApAQCAtMCwwICsxLDUyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEludGVs
IENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdl
YlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJvdmlkZXJfaAorI2RlZmluZSBXZWJSZWdpc3RlclBy
b3RvY29sSGFuZGxlclByb3ZpZGVyX2gKKworI2lmIEVOQUJMRShSRUdJU1RFUl9QUk9UT0NPTF9I
QU5ETEVSKQorCisjaW5jbHVkZSAiQVBJQ2xpZW50LmgiCisjaW5jbHVkZSAiV0tSZWdpc3RlclBy
b3RvY29sSGFuZGxlci5oIgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisKK25hbWVzcGFjZSBX
ZWJLaXQgeworCitjbGFzcyBXZWJSZWdpc3RlclByb3RvY29sSGFuZGxlclByb3h5OworCitjbGFz
cyBXZWJSZWdpc3RlclByb3RvY29sSGFuZGxlclByb3ZpZGVyIDogcHVibGljIEFQSUNsaWVudDxX
S1JlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJvdmlkZXIsIGtXS1JlZ2lzdGVyUHJvdG9jb2xIYW5k
bGVyUHJvdmlkZXJDdXJyZW50VmVyc2lvbj4geworcHVibGljOgorICAgIHZvaWQgcmVnaXN0ZXJQ
cm90b2NvbEhhbmRsZXIoV2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJQcm94eSosIGNvbnN0IFN0
cmluZyYgc2NoZW1lLCBjb25zdCBTdHJpbmcmIGJhc2VVUkwsIGNvbnN0IFN0cmluZyYgdXJsLCBj
b25zdCBTdHJpbmcmIHRpdGxlKTsKKworI2lmIEVOQUJMRShDVVNUT01fU0NIRU1FX0hBTkRMRVIp
CisgICAgdm9pZCBpc1Byb3RvY29sSGFuZGxlclJlZ2lzdGVyZWQoV2ViUmVnaXN0ZXJQcm90b2Nv
bEhhbmRsZXJQcm94eSosIGNvbnN0IFN0cmluZyYgc2NoZW1lLCBjb25zdCBTdHJpbmcmIGJhc2VV
UkwsIGNvbnN0IFN0cmluZyYgdXJsLCB1aW50MzJfdCYgcmVzdWx0KTsKKyAgICB2b2lkIHVucmVn
aXN0ZXJQcm90b2NvbEhhbmRsZXIoV2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJQcm94eSosIGNv
bnN0IFN0cmluZyYgc2NoZW1lLCBjb25zdCBTdHJpbmcmIGJhc2VVUkwsIGNvbnN0IFN0cmluZyYg
dXJsKTsKKyNlbmRpZiAvLyBFTkFCTEUoQ1VTVE9NX1NDSEVNRV9IQU5ETEVSKQorfTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoUkVHSVNURVJfUFJPVE9DT0xf
SEFORExFUikKKyNlbmRpZiAvLyBXZWJSZWdpc3RlclByb3RvY29sSGFuZGxlclByb3ZpZGVyX2gK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJSZWdpc3RlclByb3RvY29s
SGFuZGxlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJSZWdpc3RlclBy
b3RvY29sSGFuZGxlclByb3h5LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li4wZDYzMTU5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJveHkuY3BwCkBAIC0wLDAgKzEsNzggQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTIgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJSZWdpc3Rl
clByb3RvY29sSGFuZGxlclByb3h5LmgiCisKKyNpZiBFTkFCTEUoUkVHSVNURVJfUFJPVE9DT0xf
SEFORExFUikKKworI2luY2x1ZGUgIldlYkNvbnRleHQuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7
CisKK1Bhc3NSZWZQdHI8V2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJQcm94eT4gV2ViUmVnaXN0
ZXJQcm90b2NvbEhhbmRsZXJQcm94eTo6Y3JlYXRlKFdlYkNvbnRleHQqIGNvbnRleHQpCit7Cisg
ICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJSZWdpc3RlclByb3RvY29sSGFuZGxlclByb3h5KGNv
bnRleHQpKTsKK30KKworV2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJQcm94eTo6V2ViUmVnaXN0
ZXJQcm90b2NvbEhhbmRsZXJQcm94eShXZWJDb250ZXh0KiBjb250ZXh0KQorICAgIDogbV9jb250
ZXh0KGNvbnRleHQpCit7Cit9CisKK1dlYlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJveHk6On5X
ZWJSZWdpc3RlclByb3RvY29sSGFuZGxlclByb3h5KCkKK3sKK30KKwordm9pZCBXZWJSZWdpc3Rl
clByb3RvY29sSGFuZGxlclByb3h5Ojppbml0aWFsaXplUHJvdmlkZXIoY29uc3QgV0tSZWdpc3Rl
clByb3RvY29sSGFuZGxlclByb3ZpZGVyKiBwcm92aWRlcikKK3sKKyAgICBtX3Byb3ZpZGVyLmlu
aXRpYWxpemUocHJvdmlkZXIpOworfQorCit2b2lkIFdlYlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVy
UHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24s
IENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rlciog
YXJndW1lbnRzKQoreworICAgIGRpZFJlY2VpdmVXZWJSZWdpc3RlclByb3RvY29sSGFuZGxlclBy
b3h5TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7Cit9CisKK3ZvaWQg
V2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJQcm94eTo6cmVnaXN0ZXJQcm90b2NvbEhhbmRsZXIo
Y29uc3QgU3RyaW5nJiBzY2hlbWUsIGNvbnN0IFN0cmluZyYgYmFzZVVSTCwgY29uc3QgU3RyaW5n
JiB1cmwsIGNvbnN0IFN0cmluZyYgdGl0bGUpCit7CisgICAgbV9wcm92aWRlci5yZWdpc3RlclBy
b3RvY29sSGFuZGxlcih0aGlzLCBzY2hlbWUsIGJhc2VVUkwsIHVybCwgdGl0bGUpOworfQorCisj
aWYgRU5BQkxFKENVU1RPTV9TQ0hFTUVfSEFORExFUikKK3ZvaWQgV2ViUmVnaXN0ZXJQcm90b2Nv
bEhhbmRsZXJQcm94eTo6aXNQcm90b2NvbEhhbmRsZXJSZWdpc3RlcmVkKGNvbnN0IFN0cmluZyYg
c2NoZW1lLCBjb25zdCBTdHJpbmcmIGJhc2VVUkwsIGNvbnN0IFN0cmluZyYgdXJsLCB1aW50MzJf
dCYgcmVzdWx0KQoreworICAgICBtX3Byb3ZpZGVyLmlzUHJvdG9jb2xIYW5kbGVyUmVnaXN0ZXJl
ZCh0aGlzLCBzY2hlbWUsIGJhc2VVUkwsIHVybCwgcmVzdWx0KTsKK30KKwordm9pZCBXZWJSZWdp
c3RlclByb3RvY29sSGFuZGxlclByb3h5Ojp1bnJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyKGNvbnN0
IFN0cmluZyYgc2NoZW1lLCBjb25zdCBTdHJpbmcmIGJhc2VVUkwsIGNvbnN0IFN0cmluZyYgdXJs
KQoreworICAgICBtX3Byb3ZpZGVyLnVucmVnaXN0ZXJQcm90b2NvbEhhbmRsZXIodGhpcywgc2No
ZW1lLCBiYXNlVVJMLCB1cmwpOworfQorI2VuZGlmIC8vIEVOQUJMRShDVVNUT01fU0NIRU1FX0hB
TkRMRVIpCisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKFJFR0lT
VEVSX1BST1RPQ09MX0hBTkRMRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJveHkuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi42NTAwMzAxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJveHkuaApAQCAtMCww
ICsxLDgyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEludGVsIENvcnBvcmF0aW9uLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdlYlJlZ2lzdGVyUHJvdG9j
b2xIYW5kbGVyUHJveHlfaAorI2RlZmluZSBXZWJSZWdpc3RlclByb3RvY29sSGFuZGxlclByb3h5
X2gKKworI2lmIEVOQUJMRShSRUdJU1RFUl9QUk9UT0NPTF9IQU5ETEVSKQorCisjaW5jbHVkZSAi
QVBJT2JqZWN0LmgiCisjaW5jbHVkZSAiTWVzc2FnZUlELmgiCisjaW5jbHVkZSAiV2ViUmVnaXN0
ZXJQcm90b2NvbEhhbmRsZXJQcm92aWRlci5oIgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisK
K25hbWVzcGFjZSBDb3JlSVBDIHsKK2NsYXNzIEFyZ3VtZW50RW5jb2RlcjsKK2NsYXNzIEFyZ3Vt
ZW50RGVjb2RlcjsKK2NsYXNzIENvbm5lY3Rpb247Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgewor
CitjbGFzcyBXZWJDb250ZXh0OworCitjbGFzcyBXZWJSZWdpc3RlclByb3RvY29sSGFuZGxlclBy
b3h5IDogcHVibGljIEFQSU9iamVjdCB7CitwdWJsaWM6CisgICAgc3RhdGljIGNvbnN0IFR5cGUg
QVBJVHlwZSA9IFR5cGVSZWdpc3RlclByb3RvY29sSGFuZGxlcjsKKworICAgIHN0YXRpYyBQYXNz
UmVmUHRyPFdlYlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJveHk+IGNyZWF0ZShXZWJDb250ZXh0
Kik7CisgICAgdmlydHVhbCB+V2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJQcm94eSgpOworCisg
ICAgdm9pZCBjbGVhckNvbnRleHQoKSB7IG1fY29udGV4dCA9IDA7IH0KKworICAgIHZvaWQgaW5p
dGlhbGl6ZVByb3ZpZGVyKGNvbnN0IFdLUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJQcm92aWRlciop
OworCisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29y
ZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKKworcHJpdmF0ZToK
KyAgICBleHBsaWNpdCBXZWJSZWdpc3RlclByb3RvY29sSGFuZGxlclByb3h5KFdlYkNvbnRleHQq
KTsKKworICAgIHZpcnR1YWwgVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gQVBJVHlwZTsgfQor
CisgICAgLy8gSW1wbGVtZW50ZWQgaW4gZ2VuZXJhdGVkIFdlYlJlZ2lzdGVyUHJvdG9jb2xIYW5k
bGVyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCisgICAgdm9pZCBkaWRSZWNlaXZlV2ViUmVnaXN0
ZXJQcm90b2NvbEhhbmRsZXJQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJ
UEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisgICAgdm9pZCBkaWRS
ZWNlaXZlU3luY1dlYlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJveHlNZXNzYWdlKENvcmVJUEM6
OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rl
ciosIE93blB0cjxDb3JlSVBDOjpBcmd1bWVudEVuY29kZXI+Jik7CisKKyAgICB2b2lkIHJlZ2lz
dGVyUHJvdG9jb2xIYW5kbGVyKGNvbnN0IFN0cmluZyYgc2NoZW1lLCBjb25zdCBTdHJpbmcmIGJh
c2VVUkwsIGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBTdHJpbmcmIHRpdGxlKTsKKyNpZiBFTkFC
TEUoQ1VTVE9NX1NDSEVNRV9IQU5ETEVSKQorICAgIHZvaWQgaXNQcm90b2NvbEhhbmRsZXJSZWdp
c3RlcmVkKGNvbnN0IFN0cmluZyYgc2NoZW1lLCBjb25zdCBTdHJpbmcmIGJhc2VVUkwsIGNvbnN0
IFN0cmluZyYgdXJsLCB1aW50MzJfdCYgcmVzdWx0KTsKKyAgICB2b2lkIHVucmVnaXN0ZXJQcm90
b2NvbEhhbmRsZXIoY29uc3QgU3RyaW5nJiBzY2hlbWUsIGNvbnN0IFN0cmluZyYgYmFzZVVSTCwg
Y29uc3QgU3RyaW5nJiB1cmwpOworI2VuZGlmIC8vIEVOQUJMRShDVVNUT01fU0NIRU1FX0hBTkRM
RVIpCisKKyAgICBXZWJDb250ZXh0KiBtX2NvbnRleHQ7CisgICAgV2ViUmVnaXN0ZXJQcm90b2Nv
bEhhbmRsZXJQcm92aWRlciBtX3Byb3ZpZGVyOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CisKKyNlbmRpZiAvLyBFTkFCTEUoUkVHSVNURVJfUFJPVE9DT0xfSEFORExFUikKKworI2VuZGlm
IC8vIFdlYlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJveHlfaApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJveHkubWVzc2Fn
ZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRs
ZXJQcm94eS5tZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44
Y2M2MzViCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlJl
Z2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJveHkubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwzMyBAQAor
IyBDb3B5cmlnaHQgKEMpIDIwMTIgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyMgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQK
KyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgorIyBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisj
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SCisjIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisjIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksCisjIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyNpZiBFTkFC
TEUoUkVHSVNURVJfUFJPVE9DT0xfSEFORExFUikKKworbWVzc2FnZXMgLT4gV2ViUmVnaXN0ZXJQ
cm90b2NvbEhhbmRsZXJQcm94eSB7CisgICAgUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXIoV1RGOjpT
dHJpbmcgc2NoZW1lLCBXVEY6OlN0cmluZyBiYXNlVVJMLCBXVEY6OlN0cmluZyB1cmwsIFdURjo6
U3RyaW5nIHRpdGxlKQorI2lmIEVOQUJMRShDVVNUT01fU0NIRU1FX0hBTkRMRVIpCisgICAgSXNQ
cm90b2NvbEhhbmRsZXJSZWdpc3RlcmVkKFdURjo6U3RyaW5nIHNjaGVtZSwgV1RGOjpTdHJpbmcg
YmFzZVVSTCwgV1RGOjpTdHJpbmcgdXJsKSAtPiAodWludDMyX3QgcmVzdWx0KQorICAgIFVucmVn
aXN0ZXJQcm90b2NvbEhhbmRsZXIoV1RGOjpTdHJpbmcgc2NoZW1lLCBXVEY6OlN0cmluZyBiYXNl
VVJMLCBXVEY6OlN0cmluZyB1cmwpCisjZW5kaWYgLy8gRU5BQkxFKENVU1RPTV9TQ0hFTUVfSEFO
RExFUikKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyQ2xpZW50LmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUmVnaXN0ZXJQcm90b2Nv
bEhhbmRsZXJDbGllbnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRl
NjM1ZDgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyQ2xpZW50LmNwcApAQCAtMCwwICsx
LDczIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEludGVsIENvcnBvcmF0aW9uLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiV2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJDbGllbnQuaCIKKworI2lmIEVOQUJMRShSRUdJ
U1RFUl9QUk9UT0NPTF9IQU5ETEVSKQorCisjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgorI2luY2x1
ZGUgIldlYlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJveHlNZXNzYWdlcy5oIgorCit1c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKK3VzaW5nIG5hbWVzcGFjZSBNZXNzYWdlczo6V2ViUmVnaXN0ZXJQ
cm90b2NvbEhhbmRsZXJQcm94eTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3ZvaWQgV2ViUmVn
aXN0ZXJQcm90b2NvbEhhbmRsZXJDbGllbnQ6OnJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyKGNvbnN0
IFN0cmluZyYgc2NoZW1lLCBjb25zdCBTdHJpbmcmIGJhc2VVUkwsIGNvbnN0IFN0cmluZyYgdXJs
LCBjb25zdCBTdHJpbmcmIHRpdGxlKQoreworICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLmNvbm5l
Y3Rpb24oKS0+c2VuZChSZWdpc3RlclByb3RvY29sSGFuZGxlcihzY2hlbWUsIGJhc2VVUkwsIHVy
bCwgdGl0bGUpLCAwKTsKK30KKworI2lmIEVOQUJMRShDVVNUT01fU0NIRU1FX0hBTkRMRVIpCitz
dGF0aWMgaW5saW5lIFJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyQ2xpZW50OjpDdXN0b21IYW5kbGVy
c1N0YXRlIHRvQ3VzdG9tSGFuZGxlcnNTdGF0ZShjb25zdCB1aW50MzJfdCBzdGF0ZSkKK3sKKyAg
ICBzd2l0Y2ggKHN0YXRlKSB7CisgICAgY2FzZSBSZWdpc3RlclByb3RvY29sSGFuZGxlckNsaWVu
dDo6Q3VzdG9tSGFuZGxlcnNOZXc6CisgICAgY2FzZSBSZWdpc3RlclByb3RvY29sSGFuZGxlckNs
aWVudDo6Q3VzdG9tSGFuZGxlcnNSZWdpc3RlcmVkOgorICAgIGNhc2UgUmVnaXN0ZXJQcm90b2Nv
bEhhbmRsZXJDbGllbnQ6OkN1c3RvbUhhbmRsZXJzRGVjbGluZWQ6CisgICAgICAgIHJldHVybiBz
dGF0aWNfY2FzdDxSZWdpc3RlclByb3RvY29sSGFuZGxlckNsaWVudDo6Q3VzdG9tSGFuZGxlcnNT
dGF0ZT4oc3RhdGUpOworICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OworICAgICAgICByZXR1cm4gUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJDbGllbnQ6OkN1c3RvbUhh
bmRsZXJzRGVjbGluZWQ7CisgICAgfQorfQorCitSZWdpc3RlclByb3RvY29sSGFuZGxlckNsaWVu
dDo6Q3VzdG9tSGFuZGxlcnNTdGF0ZSBXZWJSZWdpc3RlclByb3RvY29sSGFuZGxlckNsaWVudDo6
aXNQcm90b2NvbEhhbmRsZXJSZWdpc3RlcmVkKGNvbnN0IFN0cmluZyYgc2NoZW1lLCBjb25zdCBT
dHJpbmcmIGJhc2VVUkwsIGNvbnN0IFN0cmluZyYgdXJsKQoreworICAgIHVpbnQzMl90IHJlc3Vs
dCA9IHN0YXRpY19jYXN0PHVpbnQzMl90PihSZWdpc3RlclByb3RvY29sSGFuZGxlckNsaWVudDo6
Q3VzdG9tSGFuZGxlcnNOZXcpOworICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLmNvbm5lY3Rpb24o
KS0+c2VuZFN5bmMoSXNQcm90b2NvbEhhbmRsZXJSZWdpc3RlcmVkKHNjaGVtZSwgYmFzZVVSTCwg
dXJsKSwgSXNQcm90b2NvbEhhbmRsZXJSZWdpc3RlcmVkOjpSZXBseShyZXN1bHQpLCAwKTsKKyAg
ICByZXR1cm4gdG9DdXN0b21IYW5kbGVyc1N0YXRlKHJlc3VsdCk7Cit9CisKK3ZvaWQgV2ViUmVn
aXN0ZXJQcm90b2NvbEhhbmRsZXJDbGllbnQ6OnVucmVnaXN0ZXJQcm90b2NvbEhhbmRsZXIoY29u
c3QgU3RyaW5nJiBzY2hlbWUsIGNvbnN0IFN0cmluZyYgYmFzZVVSTCwgY29uc3QgU3RyaW5nJiB1
cmwpCit7CisgICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkuY29ubmVjdGlvbigpLT5zZW5kKFVucmVn
aXN0ZXJQcm90b2NvbEhhbmRsZXIoc2NoZW1lLCBiYXNlVVJMLCB1cmwpLCAwKTsKK30KKworI2Vu
ZGlmIC8vIEVOQUJMRShDVVNUT01fU0NIRU1FX0hBTkRMRVIpCit9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKKworI2VuZGlmIC8vIEVOQUJMRShSRUdJU1RFUl9QUk9UT0NPTF9IQU5ETEVSKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJSZWdpc3Rl
clByb3RvY29sSGFuZGxlckNsaWVudC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJSZWdpc3RlclByb3RvY29sSGFuZGxlckNsaWVudC5oCmluZGV4IDYzZjE5
OTAuLjgyODNhYWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJDbGllbnQuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlJlZ2lzdGVyUHJvdG9jb2xIYW5k
bGVyQ2xpZW50LmgKQEAgLTM4LDExICszOCwxMSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+V2Vi
UmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJDbGllbnQoKSB7IH0KIAogcHJpdmF0ZToKLSAgICB2aXJ0
dWFsIHZvaWQgcmVnaXN0ZXJQcm90b2NvbEhhbmRsZXIoY29uc3QgU3RyaW5nJiBzY2hlbWUsIGNv
bnN0IFN0cmluZyYgYmFzZVVSTCwgY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0cmluZyYgdGl0
bGUpIE9WRVJSSURFIHsgfQorICAgIHZpcnR1YWwgdm9pZCByZWdpc3RlclByb3RvY29sSGFuZGxl
cihjb25zdCBTdHJpbmcmIHNjaGVtZSwgY29uc3QgU3RyaW5nJiBiYXNlVVJMLCBjb25zdCBTdHJp
bmcmIHVybCwgY29uc3QgU3RyaW5nJiB0aXRsZSkgT1ZFUlJJREU7CiAKICNpZiBFTkFCTEUoQ1VT
VE9NX1NDSEVNRV9IQU5ETEVSKQotICAgIHZpcnR1YWwgQ3VzdG9tSGFuZGxlcnNTdGF0ZSBpc1By
b3RvY29sSGFuZGxlclJlZ2lzdGVyZWQoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgY29u
c3QgU3RyaW5nJikgeyByZXR1cm4gQ3VzdG9tSGFuZGxlcnNEZWNsaW5lZDsgfQotICAgIHZpcnR1
YWwgdm9pZCB1bnJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0
cmluZyYsIGNvbnN0IFN0cmluZyYpIHsgfQorICAgIHZpcnR1YWwgQ3VzdG9tSGFuZGxlcnNTdGF0
ZSBpc1Byb3RvY29sSGFuZGxlclJlZ2lzdGVyZWQoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5n
JiwgY29uc3QgU3RyaW5nJik7CisgICAgdmlydHVhbCB2b2lkIHVucmVnaXN0ZXJQcm90b2NvbEhh
bmRsZXIoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJik7CiAjZW5k
aWYKIH07CiAK
</data>
<flag name="commit-queue"
          id="167008"
          type_id="3"
          status="-"
          setter="gustavo"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>157215</attachid>
            <date>2012-08-08 07:28:14 -0700</date>
            <delta_ts>2012-08-08 14:34:44 -0700</delta_ts>
            <desc>patch v2</desc>
            <filename>bug92749_v2</filename>
            <type>text/plain</type>
            <size>39774</size>
            <attacher name="Mikhail Pozdnyakov">mikhail.pozdnyakov</attacher>
            
              <data encoding="base64">Y29tbWl0IDU5YWU4NGQzNjA2MWFmMzEwMDNhZjQwZjU0NGQwYTJmNDI5MmQ2MDgKQXV0aG9yOiBN
aWtoYWlsIFBvemRueWFrb3YgPG1pa2hhaWwucG96ZG55YWtvdkBpbnRlbC5jb20+CkRhdGU6ICAg
V2VkIEF1ZyAxIDE5OjE3OjQwIDIwMTIgKzAzMDAKCiAgICBidWc5Mjc0OQoKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0
cy50eHQKaW5kZXggN2QxMGM3ZC4uN2U1YTk3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
Q01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQKQEAgLTI3
Myw2ICsyNzMsOCBAQCBTRVQoV2ViS2l0Ml9TT1VSQ0VTCiAgICAgVUlQcm9jZXNzL1dlYlBvbGlj
eUNsaWVudC5jcHAKICAgICBVSVByb2Nlc3MvV2ViUHJlZmVyZW5jZXMuY3BwCiAgICAgVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKKyAgICBVSVByb2Nlc3MvV2ViUmVnaXN0ZXJQcm90b2Nv
bEhhbmRsZXJQcm92aWRlci5jcHAKKyAgICBVSVByb2Nlc3MvV2ViUmVnaXN0ZXJQcm90b2NvbEhh
bmRsZXJQcm94eS5jcHAKICAgICBVSVByb2Nlc3MvV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94
eS5jcHAKICAgICBVSVByb2Nlc3MvV2ViUmVzb3VyY2VMb2FkQ2xpZW50LmNwcAogICAgIFVJUHJv
Y2Vzcy9XZWJUZXh0Q2hlY2tlci5jcHAKQEAgLTMyMCw2ICszMjIsNyBAQCBTRVQoV2ViS2l0Ml9T
T1VSQ0VTCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLUGx1Z2luU2l0ZURhdGFNYW5hZ2VyLmNwcAog
ICAgIFVJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcAogICAgIFVJUHJvY2Vzcy9BUEkv
Qy9XS1Byb3RlY3Rpb25TcGFjZS5jcHAKKyAgICBVSVByb2Nlc3MvQVBJL0MvV0tSZWdpc3RlclBy
b3RvY29sSGFuZGxlci5jcHAKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tSZXNvdXJjZUNhY2hlTWFu
YWdlci5jcHAKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tUZXh0Q2hlY2tlci5jcHAKICAgICBVSVBy
b2Nlc3MvQVBJL0MvV0tWaWJyYXRpb24uY3BwCkBAIC00NTUsNiArNDU4LDcgQEAgU0VUKFdlYktp
dDJfU09VUkNFUwogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9u
Q2xpZW50LmNwcAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJh
dGVnaWVzLmNwcAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUG9wdXBNZW51LmNw
cAorICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRs
ZXJDbGllbnQuY3BwCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTZWFyY2hQb3B1
cE1lbnUuY3BwCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJWaWJyYXRpb25DbGll
bnQuY3BwCiAKQEAgLTUwNSw2ICs1MDksNyBAQCBTRVQoV2ViS2l0Ml9NRVNTQUdFU19JTl9GSUxF
UwogICAgIFVJUHJvY2Vzcy9XZWJOZXR3b3JrSW5mb01hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgog
ICAgIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KICAgICBVSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCisgICAgVUlQcm9jZXNzL1dlYlJlZ2lzdGVyUHJvdG9j
b2xIYW5kbGVyUHJveHkubWVzc2FnZXMuaW4KICAgICBVSVByb2Nlc3MvV2ViUmVzb3VyY2VDYWNo
ZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgogICAgIFVJUHJvY2Vzcy9XZWJWaWJyYXRpb25Qcm94
eS5tZXNzYWdlcy5pbgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZTcwYTdjZS4uZGE1ZTM0YiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDU5IEBACisyMDEyLTA4LTAzICBNaWtoYWlsIFBvemRueWFrb3YgIDxtaWto
YWlsLnBvemRueWFrb3ZAaW50ZWwuY29tPgorCisgICAgICAgIFtXSzJdIEFkZCBQcm90b2NvbCBI
YW5kbGVyIEFQSSBzdXBwb3J0IGZvciBXZWJLaXQyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD05Mjc0OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIHN1cHBvcnQgb2YgUmVnaXN0ZXIgUHJvdG9jb2wg
SGFuZGxlciBBUEkuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJp
dmVkU291cmNlcy5wcmk6CisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAg
KiBQbGF0Zm9ybS9Db3JlSVBDL01lc3NhZ2VJRC5oOgorICAgICAgICAqIFNoYXJlZC9BUEkvYy9X
S0Jhc2UuaDoKKyAgICAgICAgKiBTaGFyZWQvQVBJT2JqZWN0Lmg6CisgICAgICAgICogVGFyZ2V0
LnByaToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0Lmg6CisgICAgICAgIChX
ZWJLaXQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1JlZ2lzdGVyUHJvdG9jb2xIYW5k
bGVyLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJSZWdpc3RlclByb3RvY29sSGFuZGxlckNsaWVudC5oLgorICAgICAgICAoV0tSZWdp
c3RlclByb3RvY29sSGFuZGxlckdldFR5cGVJRCk6CisgICAgICAgIChXS1JlZ2lzdGVyUHJvdG9j
b2xIYW5kbGVyU2V0UHJvdmlkZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1JlZ2lz
dGVyUHJvdG9jb2xIYW5kbGVyLmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJSZWdp
c3RlclByb3RvY29sSGFuZGxlclByb3ZpZGVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQp
OgorICAgICAgICAoV2ViS2l0OjpXZWJSZWdpc3RlclByb3RvY29sSGFuZGxlclByb3ZpZGVyOjpy
ZWdpc3RlclByb3RvY29sSGFuZGxlcik6CisgICAgICAgIChXZWJLaXQ6OldlYlJlZ2lzdGVyUHJv
dG9jb2xIYW5kbGVyUHJvdmlkZXI6OmlzUHJvdG9jb2xIYW5kbGVyUmVnaXN0ZXJlZCk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJvdmlkZXI6OnVucmVnaXN0
ZXJQcm90b2NvbEhhbmRsZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJSZWdpc3RlclByb3Rv
Y29sSGFuZGxlclByb3ZpZGVyLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJDbGllbnQuaC4KKyAg
ICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJSZWdpc3RlclByb3RvY29sSGFuZGxlclByb3Zp
ZGVyKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJQcm94
eS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVn
aXN0ZXJQcm90b2NvbEhhbmRsZXJQcm94eTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJQcm94eTo6V2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJQ
cm94eSk6CisgICAgICAgIChXZWJLaXQ6OldlYlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJveHk6
On5XZWJSZWdpc3RlclByb3RvY29sSGFuZGxlclByb3h5KToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJQcm94eTo6aW52YWxpZGF0ZSk6CisgICAgICAgIChXZWJL
aXQ6OldlYlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJveHk6OmluaXRpYWxpemVQcm92aWRlcik6
CisgICAgICAgIChXZWJLaXQ6OldlYlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJveHk6OmRpZFJl
Y2VpdmVNZXNzYWdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRs
ZXJQcm94eTo6cmVnaXN0ZXJQcm90b2NvbEhhbmRsZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJS
ZWdpc3RlclByb3RvY29sSGFuZGxlclByb3h5Ojppc1Byb3RvY29sSGFuZGxlclJlZ2lzdGVyZWQp
OgorICAgICAgICAoV2ViS2l0OjpXZWJSZWdpc3RlclByb3RvY29sSGFuZGxlclByb3h5Ojp1bnJl
Z2lzdGVyUHJvdG9jb2xIYW5kbGVyKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUmVnaXN0ZXJQ
cm90b2NvbEhhbmRsZXJQcm94eS5oOiBBZGRlZC4KKyAgICAgICAgKENvcmVJUEMpOgorICAgICAg
ICAoV2ViS2l0KToKKyAgICAgICAgKFdlYlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJveHkpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJSZWdpc3RlclByb3RvY29sSGFuZGxlclByb3h5OjpjbGVhckNv
bnRleHQpOgorICAgICAgICAoV2ViS2l0OjpXZWJSZWdpc3RlclByb3RvY29sSGFuZGxlclByb3h5
Ojp0eXBlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJQ
cm94eS5tZXNzYWdlcy5pbjogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJSZWdpc3RlclByb3RvY29sSGFuZGxlckNsaWVudC5jcHA6IENvcGllZCBmcm9tIFNv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUmVnaXN0ZXJQcm90b2Nv
bEhhbmRsZXJDbGllbnQuaC4KKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyQ2xpZW50OjpyZWdpc3RlclByb3RvY29sSGFuZGxlcik6
CisgICAgICAgIChXZWJLaXQ6OldlYlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyQ2xpZW50Ojppc1By
b3RvY29sSGFuZGxlclJlZ2lzdGVyZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJSZWdpc3RlclBy
b3RvY29sSGFuZGxlckNsaWVudDo6dW5yZWdpc3RlclByb3RvY29sSGFuZGxlcik6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJSZWdpc3RlclByb3RvY29sSGFuZGxlckNs
aWVudC5oOgorICAgICAgICAoV2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJDbGllbnQpOgorCiAy
MDEyLTA4LTA4ICBNYXJpbyBTYW5jaGV6IFByYWRhICA8bXNhbmNoZXpAaWdhbGlhLmNvbT4KIAog
ICAgICAgICBbV0syXSBBZGQgbmV3IEMgQVBJIHRvIGdlbmVyYXRlIE1IVE1MIGRhdGEgZnJvbSB0
aGUgVUkgcHJvY2VzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvRGVyaXZlZFNvdXJjZXMu
cHJpIGIvU291cmNlL1dlYktpdDIvRGVyaXZlZFNvdXJjZXMucHJpCmluZGV4IDI2Y2JiMmIuLjdj
NTkwYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0Rlcml2ZWRTb3VyY2VzLnByaQorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9EZXJpdmVkU291cmNlcy5wcmkKQEAgLTEwMyw2ICsxMDMsNyBAQCBN
RVNTQUdFX1JFQ0VJVkVSUyA9IFwKICAgICBXZWJQcm9jZXNzLm1lc3NhZ2VzLmluIFwKICAgICBX
ZWJQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbiBcCiAgICAgV2ViUHJvY2Vzc1Byb3h5Lm1l
c3NhZ2VzLmluIFwKKyAgICBXZWJSZWdpc3RlclByb3RvY29sSGFuZGxlclByb3h5Lm1lc3NhZ2Vz
LmluIFwKICAgICBXZWJSZXNvdXJjZUNhY2hlTWFuYWdlci5tZXNzYWdlcy5pbiBcCiAgICAgV2Vi
UmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiBcCiAgICAgV2ViVmlicmF0aW9u
UHJveHkubWVzc2FnZXMuaW4gXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvR05VbWFrZWZp
bGUubGlzdC5hbSBiL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggMGJl
NmE2MC4uOTIwYzM1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUubGlz
dC5hbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC04Nyw2ICs4
Nyw3IEBAIHdlYmtpdDJfaF9hcGkgKz0gXAogCSQoV2ViS2l0MikvVUlQcm9jZXNzL0FQSS9DL1dL
UHJlZmVyZW5jZXNQcml2YXRlLmggXAogCSQoV2ViS2l0MikvVUlQcm9jZXNzL0FQSS9DL1dLUHJv
dGVjdGlvblNwYWNlLmggXAogCSQoV2ViS2l0MikvVUlQcm9jZXNzL0FQSS9DL1dLUHJvdGVjdGlv
blNwYWNlVHlwZXMuaCBcCisJJChXZWJLaXQyKS9VSVByb2Nlc3MvQVBJL0MvV0tSZWdpc3RlclBy
b3RvY29sSGFuZGxlci5oIFwKIAkkKFdlYktpdDIpL1VJUHJvY2Vzcy9BUEkvQy9XS1Jlc291cmNl
Q2FjaGVNYW5hZ2VyLmggXAogCSQoV2ViS2l0MikvVUlQcm9jZXNzL0FQSS9DL1dLVGV4dENoZWNr
ZXIuaCBcCiAJJChXZWJLaXQyKS9VSVByb2Nlc3MvQVBJL0MvV0tWaWJyYXRpb24uY3BwIFwKQEAg
LTIwNiw2ICsyMDcsOCBAQCB3ZWJraXQyX2J1aWx0X3NvdXJjZXMgKz0gXAogCURlcml2ZWRTb3Vy
Y2VzL1dlYktpdDIvV2ViUGFnZVByb3h5TWVzc2FnZXMuaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2Vi
S2l0Mi9XZWJQYWdlTWVzc2FnZVJlY2VpdmVyLmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViS2l0
Mi9XZWJQYWdlTWVzc2FnZXMuaCBcCisJRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJSZWdpc3Rl
clByb3RvY29sSGFuZGxlck1lc3NhZ2VSZWNlaXZlci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1dl
YktpdDIvV2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJQcm94eU1lc3NhZ2VzLmggXAogCURlcml2
ZWRTb3VyY2VzL1dlYktpdDIvV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIu
Y3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYlJlc291cmNlQ2FjaGVNYW5hZ2VyTWVz
c2FnZXMuaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJSZXNvdXJjZUNhY2hlTWFuYWdl
clByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBcCkBAIC02MDEsNiArNjA0LDggQEAgd2Via2l0Ml9z
b3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcm90ZWN0aW9u
U3BhY2UuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcm90ZWN0aW9u
U3BhY2UuaCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJvdGVjdGlvblNw
YWNlVHlwZXMuaCBcCisJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUmVnaXN0ZXJQ
cm90b2NvbEhhbmRsZXIuY3BwIFwKKwlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tS
ZWdpc3RlclByb3RvY29sSGFuZGxlci5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0MvV0tSZXNvdXJjZUNhY2hlTWFuYWdlci5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0MvV0tSZXNvdXJjZUNhY2hlTWFuYWdlci5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQy9XS1RleHRDaGVja2VyLmggXApAQCAtODk4LDYgKzkwMywxMCBAQCB3ZWJraXQy
X3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcmVmZXJlbmNlcy5o
IFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcCBcCiAJU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oIFwKKwlTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJQcm92aWRlci5oIFwKKwlTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJQcm92aWRlci5j
cHAgXAorCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJSZWdpc3RlclByb3RvY29sSGFuZGxl
clByb3h5LmNwcCBcCisJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlJlZ2lzdGVyUHJvdG9j
b2xIYW5kbGVyUHJveHkuaCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlJlc291cmNl
Q2FjaGVNYW5hZ2VyUHJveHkuaCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlJlc291
cmNlQ2FjaGVNYW5hZ2VyUHJveHkuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
UmVzb3VyY2VMb2FkQ2xpZW50LmNwcCBcCkBAIC0xMTA4LDYgKzExMTcsOCBAQCB3ZWJraXQyX3Nv
dXJjZXMgKz0gXAogCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
Tm90aWZpY2F0aW9uQ2xpZW50LmggXAogCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcCBcCiAJU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaCBcCisJU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJSZWdpc3RlclByb3RvY29sSGFu
ZGxlckNsaWVudC5jcHAgXAorCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJDbGllbnQuaCBcCiAJU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQb3B1cE1lbnUuY3BwIFwKIAlTb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBvcHVwTWVudS5oIFwKIAlTb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNlYXJjaFBvcHVwTWVudS5jcHAg
XApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlSUQu
aCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvTWVzc2FnZUlELmgKaW5kZXggMjJk
MzA2Yi4uMGNkOGUzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQ
Qy9NZXNzYWdlSUQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL01lc3Nh
Z2VJRC5oCkBAIC03OSw2ICs3OSw3IEBAIGVudW0gTWVzc2FnZUNsYXNzIHsKICAgICBNZXNzYWdl
Q2xhc3NXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHksCiAgICAgTWVzc2FnZUNsYXNzV2ViUGFn
ZVByb3h5LAogICAgIE1lc3NhZ2VDbGFzc1dlYlByb2Nlc3NQcm94eSwKKyAgICBNZXNzYWdlQ2xh
c3NXZWJSZWdpc3RlclByb3RvY29sSGFuZGxlclByb3h5LAogICAgIE1lc3NhZ2VDbGFzc1dlYlJl
c291cmNlQ2FjaGVNYW5hZ2VyUHJveHksCiAjaWYgVVNFKFNPVVApCiAgICAgTWVzc2FnZUNsYXNz
V2ViU291cFJlcXVlc3RNYW5hZ2VyUHJveHksCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvQVBJL2MvV0tCYXNlLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNl
LmgKaW5kZXggNjg1NGVjYy4uNTU3Mzk5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hh
cmVkL0FQSS9jL1dLQmFzZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0Jh
c2UuaApAQCAtMTIyLDYgKzEyMiw3IEBAIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLUGFn
ZUdyb3VwKiBXS1BhZ2VHcm91cFJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLUGx1
Z2luU2l0ZURhdGFNYW5hZ2VyKiBXS1BsdWdpblNpdGVEYXRhTWFuYWdlclJlZjsKIHR5cGVkZWYg
Y29uc3Qgc3RydWN0IE9wYXF1ZVdLUHJlZmVyZW5jZXMqIFdLUHJlZmVyZW5jZXNSZWY7CiB0eXBl
ZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1Byb3RlY3Rpb25TcGFjZSogV0tQcm90ZWN0aW9uU3Bh
Y2VSZWY7Cit0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1JlZ2lzdGVyUHJvdG9jb2xIYW5k
bGVyKiBXS1JlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3Qg
T3BhcXVlV0tUZXh0Q2hlY2tlciogV0tUZXh0Q2hlY2tlclJlZjsKIHR5cGVkZWYgY29uc3Qgc3Ry
dWN0IE9wYXF1ZVdLVmlicmF0aW9uKiBXS1ZpYnJhdGlvblJlZjsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvU2hhcmVkL0FQSU9iamVjdC5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQ
SU9iamVjdC5oCmluZGV4IDhlNGQyOTMuLmE5ZjM3YjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9BUElPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJT2Jq
ZWN0LmgKQEAgLTEwNiw2ICsxMDYsNyBAQCBwdWJsaWM6CiAgICAgICAgIFR5cGVQYWdlR3JvdXAs
CiAgICAgICAgIFR5cGVQbHVnaW5TaXRlRGF0YU1hbmFnZXIsCiAgICAgICAgIFR5cGVQcmVmZXJl
bmNlcywKKyAgICAgICAgVHlwZVJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyLAogICAgICAgICBUeXBl
VGV4dENoZWNrZXIsCiAgICAgICAgIFR5cGVWaWJyYXRpb24sCiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1RhcmdldC5wcmkgYi9Tb3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJpCmluZGV4IGUw
ZmE2ZWEuLjY1YTM4ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1RhcmdldC5wcmkKKysr
IGIvU291cmNlL1dlYktpdDIvVGFyZ2V0LnByaQpAQCAtMTgxLDYgKzE4MSw3IEBAIEhFQURFUlMg
Kz0gXAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzUHJpdmF0ZS5oIFwKICAgICBV
SVByb2Nlc3MvQVBJL0MvV0tQcm90ZWN0aW9uU3BhY2UuaCBcCiAgICAgVUlQcm9jZXNzL0FQSS9D
L1dLUHJvdGVjdGlvblNwYWNlVHlwZXMuaCBcCisgICAgVUlQcm9jZXNzL0FQSS9DL1dLUmVnaXN0
ZXJQcm90b2NvbEhhbmRsZXIuaCBcCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLVmlicmF0aW9uLmgg
XAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XZWJLaXQyX0MuaCBcCiAgICAgVUlQcm9jZXNzL0FQSS9D
L3F0L1dLTmF0aXZlRXZlbnQuaCBcCkBAIC0yNjMsNiArMjY0LDggQEAgSEVBREVSUyArPSBcCiAg
ICAgVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oIFwKICAgICBVSVByb2Nlc3MvV2ViUmVzb3Vy
Y2VDYWNoZU1hbmFnZXJQcm94eS5oIFwKICAgICBVSVByb2Nlc3MvV2ViUmVzb3VyY2VMb2FkQ2xp
ZW50LmggXAorICAgIFVJUHJvY2Vzcy9XZWJSZWdpc3RlclByb3RvY29sSGFuZGxlclByb3ZpZGVy
LmggXAorICAgIFVJUHJvY2Vzcy9XZWJSZWdpc3RlclByb3RvY29sSGFuZGxlclByb3h5LmggXAog
ICAgIFVJUHJvY2Vzcy9XZWJVSUNsaWVudC5oIFwKICAgICBVSVByb2Nlc3MvV2ViVmlicmF0aW9u
UHJvdmlkZXIuaCBcCiAgICAgVUlQcm9jZXNzL1dlYlZpYnJhdGlvblByb3h5LmggXApAQCAtMzM5
LDYgKzM0Miw3IEBAIEhFQURFUlMgKz0gXAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViTm90aWZpY2F0aW9uQ2xpZW50LmggXAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViUGxhdGZvcm1TdHJhdGVnaWVzLmggXAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViUG9wdXBNZW51LmggXAorICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUmVnaXN0
ZXJQcm90b2NvbEhhbmRsZXJDbGllbnQuaCBcCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJTZWFyY2hQb3B1cE1lbnUuaCBcCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJWaWJyYXRpb25DbGllbnQuaCBcCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9xdC9X
ZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmggXApAQCAtNTIxLDYgKzUyNSw3IEBAIFNPVVJDRVMg
Kz0gXAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS1BsdWdpblNpdGVEYXRhTWFuYWdlci5jcHAgXAog
ICAgIFVJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcCBcCiAgICAgVUlQcm9jZXNzL0FQ
SS9DL1dLUHJvdGVjdGlvblNwYWNlLmNwcCBcCisgICAgVUlQcm9jZXNzL0FQSS9DL1dLUmVnaXN0
ZXJQcm90b2NvbEhhbmRsZXIuY3BwIFwKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tSZXNvdXJjZUNh
Y2hlTWFuYWdlci5jcHAgXAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS1ZpYnJhdGlvbi5jcHAgXAog
ICAgIFVJUHJvY2Vzcy9BUEkvY3BwL3F0L1dLU3RyaW5nUXQuY3BwIFwKQEAgLTYwMCw2ICs2MDUs
OCBAQCBTT1VSQ0VTICs9IFwKICAgICBVSVByb2Nlc3MvV2ViUG9saWN5Q2xpZW50LmNwcCBcCiAg
ICAgVUlQcm9jZXNzL1dlYlByZWZlcmVuY2VzLmNwcCBcCiAgICAgVUlQcm9jZXNzL1dlYlByb2Nl
c3NQcm94eS5jcHAgXAorICAgIFVJUHJvY2Vzcy9XZWJSZWdpc3RlclByb3RvY29sSGFuZGxlclBy
b3ZpZGVyLmNwcCBcCisgICAgVUlQcm9jZXNzL1dlYlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJv
eHkuY3BwIFwKICAgICBVSVByb2Nlc3MvV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eS5jcHAg
XAogICAgIFVJUHJvY2Vzcy9XZWJSZXNvdXJjZUxvYWRDbGllbnQuY3BwIFwKICAgICBVSVByb2Nl
c3MvV2ViVUlDbGllbnQuY3BwIFwKQEAgLTY5OCw2ICs3MDUsNyBAQCBTT1VSQ0VTICs9IFwKICAg
ICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5jcHAgXAog
ICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcCBc
CiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQb3B1cE1lbnUuY3BwIFwKKyAgICBX
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyQ2xpZW50
LmNwcCBcCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTZWFyY2hQb3B1cE1lbnUu
Y3BwIFwKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlZpYnJhdGlvbkNsaWVudC5j
cHAgXAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvcXQvV2ViQ29udGV4dE1lbnVDbGll
bnRRdC5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dL
QVBJQ2FzdC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oCmlu
ZGV4IGJlZjI5NGUuLmM2NTA1NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQy9XS0FQSUNhc3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mv
V0tBUElDYXN0LmgKQEAgLTg5LDYgKzg5LDcgQEAgY2xhc3MgV2ViUGFnZVByb3h5OwogY2xhc3Mg
V2ViUGx1Z2luU2l0ZURhdGFNYW5hZ2VyOwogY2xhc3MgV2ViUHJlZmVyZW5jZXM7CiBjbGFzcyBX
ZWJQcm90ZWN0aW9uU3BhY2U7CitjbGFzcyBXZWJSZWdpc3RlclByb3RvY29sSGFuZGxlclByb3h5
OwogY2xhc3MgV2ViUmVuZGVyTGF5ZXI7CiBjbGFzcyBXZWJSZW5kZXJPYmplY3Q7CiBjbGFzcyBX
ZWJUZXh0Q2hlY2tlcjsKQEAgLTEzNCw2ICsxMzUsNyBAQCBXS19BRERfQVBJX01BUFBJTkcoV0tQ
YWdlUmVmLCBXZWJQYWdlUHJveHkpCiBXS19BRERfQVBJX01BUFBJTkcoV0tQbHVnaW5TaXRlRGF0
YU1hbmFnZXJSZWYsIFdlYlBsdWdpblNpdGVEYXRhTWFuYWdlcikKIFdLX0FERF9BUElfTUFQUElO
RyhXS1ByZWZlcmVuY2VzUmVmLCBXZWJQcmVmZXJlbmNlcykKIFdLX0FERF9BUElfTUFQUElORyhX
S1Byb3RlY3Rpb25TcGFjZVJlZiwgV2ViUHJvdGVjdGlvblNwYWNlKQorV0tfQUREX0FQSV9NQVBQ
SU5HKFdLUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJSZWYsIFdlYlJlZ2lzdGVyUHJvdG9jb2xIYW5k
bGVyUHJveHkpCiBXS19BRERfQVBJX01BUFBJTkcoV0tSZW5kZXJMYXllclJlZiwgV2ViUmVuZGVy
TGF5ZXIpCiBXS19BRERfQVBJX01BUFBJTkcoV0tSZW5kZXJPYmplY3RSZWYsIFdlYlJlbmRlck9i
amVjdCkKIFdLX0FERF9BUElfTUFQUElORyhXS1RleHRDaGVja2VyUmVmLCBXZWJUZXh0Q2hlY2tl
cikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1JlZ2lzdGVy
UHJvdG9jb2xIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1Jl
Z2lzdGVyUHJvdG9jb2xIYW5kbGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi5jNzljNDkzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9DL1dLUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXIuY3BwCkBAIC0wLDAgKzEsNTEgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXS1JlZ2lz
dGVyUHJvdG9jb2xIYW5kbGVyLmgiCisKKyNpbmNsdWRlICJXS0FQSUNhc3QuaCIKKworI2lmIEVO
QUJMRShSRUdJU1RFUl9QUk9UT0NPTF9IQU5ETEVSKQorI2luY2x1ZGUgIldlYlJlZ2lzdGVyUHJv
dG9jb2xIYW5kbGVyUHJveHkuaCIKKyNlbmRpZgorCit1c2luZyBuYW1lc3BhY2UgV2ViS2l0Owor
CitXS1R5cGVJRCBXS1JlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyR2V0VHlwZUlEKCkKK3sKKyNpZiBF
TkFCTEUoUkVHSVNURVJfUFJPVE9DT0xfSEFORExFUikKKyAgICByZXR1cm4gdG9BUEkoV2ViUmVn
aXN0ZXJQcm90b2NvbEhhbmRsZXJQcm94eTo6QVBJVHlwZSk7CisjZWxzZQorICAgIHJldHVybiAw
OworI2VuZGlmCit9CisKK3ZvaWQgV0tSZWdpc3RlclByb3RvY29sSGFuZGxlclNldFByb3ZpZGVy
KFdLUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJSZWYgcmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJSZWYs
IGNvbnN0IFdLUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJQcm92aWRlciogd2tQcm92aWRlcikKK3sK
KyNpZiBFTkFCTEUoUkVHSVNURVJfUFJPVE9DT0xfSEFORExFUikKKyAgICB0b0ltcGwocmVnaXN0
ZXJQcm90b2NvbEhhbmRsZXJSZWYpLT5pbml0aWFsaXplUHJvdmlkZXIod2tQcm92aWRlcik7Cisj
ZW5kaWYKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1Jl
Z2lzdGVyUHJvdG9jb2xIYW5kbGVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mv
V0tSZWdpc3RlclByb3RvY29sSGFuZGxlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLmZkNjI2N2QKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0MvV0tSZWdpc3RlclByb3RvY29sSGFuZGxlci5oCkBAIC0wLDAgKzEsNjUgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV0tSZWdpc3RlclByb3RvY29sSGFuZGxlcl9oCisj
ZGVmaW5lIFdLUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJfaAorCisjaW5jbHVkZSA8V2ViS2l0Mi9X
S0Jhc2UuaD4KKworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCitl
bnVtIHsKKyAgICBrV0tDdXN0b21IYW5kbGVyc05ldywKKyAgICBrV0tDdXN0b21IYW5kbGVyc1Jl
Z2lzdGVyZWQsCisgICAga1dLQ3VzdG9tSGFuZGxlcnNEZWNsaW5lZAorfTsKK3R5cGVkZWYgdWlu
dDMyX3QgV0tDdXN0b21IYW5kbGVyc1N0YXRlOworCit0eXBlZGVmIHZvaWQgKCpXS1JlZ2lzdGVy
UHJvdG9jb2xIYW5kbGVyUHJvdmlkZXJSZWdpc3RlckNhbGxiYWNrKShXS1JlZ2lzdGVyUHJvdG9j
b2xIYW5kbGVyUmVmIHJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUmVmLCBXS1N0cmluZ1JlZiBzY2hl
bWUsIFdLU3RyaW5nUmVmIGJhc2VVUkwsIFdLU3RyaW5nUmVmIHVybCwgV0tTdHJpbmdSZWYgdGl0
bGUsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwordHlwZWRlZiBXS0N1c3RvbUhhbmRsZXJzU3Rh
dGUgKCpXS1JlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJvdmlkZXJJc1JlZ2lzdGVyZWRDYWxsYmFj
aykoV0tSZWdpc3RlclByb3RvY29sSGFuZGxlclJlZiByZWdpc3RlclByb3RvY29sSGFuZGxlclJl
ZiwgV0tTdHJpbmdSZWYgc2NoZW1lLCBXS1N0cmluZ1JlZiBiYXNlVVJMLCBXS1N0cmluZ1JlZiB1
cmwsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwordHlwZWRlZiB2b2lkICgqV0tSZWdpc3RlclBy
b3RvY29sSGFuZGxlclByb3ZpZGVyVW5yZWdpc3RlckNhbGxiYWNrKShXS1JlZ2lzdGVyUHJvdG9j
b2xIYW5kbGVyUmVmIHJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUmVmLCBXS1N0cmluZ1JlZiBzY2hl
bWUsIFdLU3RyaW5nUmVmIGJhc2VVUkwsIFdLU3RyaW5nUmVmIHVybCwgY29uc3Qgdm9pZCogY2xp
ZW50SW5mbyk7CisKK3N0cnVjdCBXS1JlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJvdmlkZXIgewor
ICAgIGludCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgdmVyc2lvbjsKKyAgICBjb25zdCB2b2lkICogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsaWVudEluZm87
CisgICAgV0tSZWdpc3RlclByb3RvY29sSGFuZGxlclByb3ZpZGVyUmVnaXN0ZXJDYWxsYmFjayAg
ICAgICAgICAgICAgICAgICAgICByZWdpc3RlclByb3RvY29sSGFuZGxlcjsKKyAgICBXS1JlZ2lz
dGVyUHJvdG9jb2xIYW5kbGVyUHJvdmlkZXJJc1JlZ2lzdGVyZWRDYWxsYmFjayAgICAgICAgICAg
ICAgICAgIGlzUHJvdG9jb2xIYW5kbGVyUmVnaXN0ZXJlZDsKKyAgICBXS1JlZ2lzdGVyUHJvdG9j
b2xIYW5kbGVyUHJvdmlkZXJVbnJlZ2lzdGVyQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgIHVu
cmVnaXN0ZXJQcm90b2NvbEhhbmRsZXI7Cit9OwordHlwZWRlZiBzdHJ1Y3QgV0tSZWdpc3RlclBy
b3RvY29sSGFuZGxlclByb3ZpZGVyIFdLUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJQcm92aWRlcjsK
KworZW51bSB7IGtXS1JlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJvdmlkZXJDdXJyZW50VmVyc2lv
biA9IDAgfTsKKworV0tfRVhQT1JUIFdLVHlwZUlEIFdLUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJH
ZXRUeXBlSUQoKTsKKworV0tfRVhQT1JUIHZvaWQgV0tSZWdpc3RlclByb3RvY29sSGFuZGxlclNl
dFByb3ZpZGVyKFdLUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJSZWYgcmVnaXN0ZXJQcm90b2NvbEhh
bmRsZXJSZWYsIGNvbnN0IFdLUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJQcm92aWRlciogcHJvdmlk
ZXIpOworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorCisjZW5kaWYgLy8gV0tSZWdp
c3RlclByb3RvY29sSGFuZGxlcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJQcm92aWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJQcm92aWRlci5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzQ1OGE1ZgotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJSZWdpc3RlclByb3RvY29sSGFuZGxlclByb3Zp
ZGVyLmNwcApAQCAtMCwwICsxLDY0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEludGVs
IENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiV2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJQcm92aWRlci5o
IgorCisjaWYgRU5BQkxFKFJFR0lTVEVSX1BST1RPQ09MX0hBTkRMRVIpCisKKyNpbmNsdWRlICJX
S0FQSUNhc3QuaCIKKyNpbmNsdWRlICJXZWJSZWdpc3RlclByb3RvY29sSGFuZGxlclByb3h5Lmgi
CisKK25hbWVzcGFjZSBXZWJLaXQgeworCit2b2lkIFdlYlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVy
UHJvdmlkZXI6OnJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyKFdlYlJlZ2lzdGVyUHJvdG9jb2xIYW5k
bGVyUHJveHkqIHByb3h5LCBjb25zdCBTdHJpbmcmIHNjaGVtZSwgY29uc3QgU3RyaW5nJiBiYXNl
VVJMLCBjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgU3RyaW5nJiB0aXRsZSkKK3sKKyAgICBpZiAo
IW1fY2xpZW50LnJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyKQorICAgICAgICByZXR1cm47CisKKyAg
ICBtX2NsaWVudC5yZWdpc3RlclByb3RvY29sSGFuZGxlcih0b0FQSShwcm94eSksIHRvQVBJKHNj
aGVtZS5pbXBsKCkpLCB0b0FQSShiYXNlVVJMLmltcGwoKSksIHRvQVBJKHVybC5pbXBsKCkpLCB0
b0FQSSh0aXRsZS5pbXBsKCkpLCBtX2NsaWVudC5jbGllbnRJbmZvKTsKK30KKworI2lmIEVOQUJM
RShDVVNUT01fU0NIRU1FX0hBTkRMRVIpCit2b2lkIFdlYlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVy
UHJvdmlkZXI6OmlzUHJvdG9jb2xIYW5kbGVyUmVnaXN0ZXJlZChXZWJSZWdpc3RlclByb3RvY29s
SGFuZGxlclByb3h5KiBwcm94eSwgY29uc3QgU3RyaW5nJiBzY2hlbWUsIGNvbnN0IFN0cmluZyYg
YmFzZVVSTCwgY29uc3QgU3RyaW5nJiB1cmwsIHVpbnQzMl90JiByZXN1bHQpCit7CisgICAgaWYg
KCFtX2NsaWVudC5pc1Byb3RvY29sSGFuZGxlclJlZ2lzdGVyZWQpCisgICAgICAgIHJldHVybjsK
KworICAgIHJlc3VsdCA9IG1fY2xpZW50LmlzUHJvdG9jb2xIYW5kbGVyUmVnaXN0ZXJlZCh0b0FQ
SShwcm94eSksIHRvQVBJKHNjaGVtZS5pbXBsKCkpLCB0b0FQSShiYXNlVVJMLmltcGwoKSksIHRv
QVBJKHVybC5pbXBsKCkpLCBtX2NsaWVudC5jbGllbnRJbmZvKTsKK30KKwordm9pZCBXZWJSZWdp
c3RlclByb3RvY29sSGFuZGxlclByb3ZpZGVyOjp1bnJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyKFdl
YlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJveHkqIHByb3h5LCBjb25zdCBTdHJpbmcmIHNjaGVt
ZSwgY29uc3QgU3RyaW5nJiBiYXNlVVJMLCBjb25zdCBTdHJpbmcmIHVybCkKK3sKKyAgICBpZiAo
IW1fY2xpZW50LnVucmVnaXN0ZXJQcm90b2NvbEhhbmRsZXIpCisgICAgICAgIHJldHVybjsKKwor
ICAgIG1fY2xpZW50LnVucmVnaXN0ZXJQcm90b2NvbEhhbmRsZXIodG9BUEkocHJveHkpLCB0b0FQ
SShzY2hlbWUuaW1wbCgpKSwgdG9BUEkoYmFzZVVSTC5pbXBsKCkpLCB0b0FQSSh1cmwuaW1wbCgp
KSwgbV9jbGllbnQuY2xpZW50SW5mbyk7Cit9CisjZW5kaWYgLy8gRU5BQkxFKENVU1RPTV9TQ0hF
TUVfSEFORExFUikKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUo
UkVHSVNURVJfUFJPVE9DT0xfSEFORExFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJSZWdpc3RlclByb3RvY29sSGFuZGxlclByb3ZpZGVyLmggYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJQcm92aWRlci5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI1Y2M0N2YKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJQcm92
aWRlci5oCkBAIC0wLDAgKzEsNTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgSW50ZWwg
Q29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV2Vi
UmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJQcm92aWRlcl9oCisjZGVmaW5lIFdlYlJlZ2lzdGVyUHJv
dG9jb2xIYW5kbGVyUHJvdmlkZXJfaAorCisjaWYgRU5BQkxFKFJFR0lTVEVSX1BST1RPQ09MX0hB
TkRMRVIpCisKKyNpbmNsdWRlICJBUElDbGllbnQuaCIKKyNpbmNsdWRlICJXS1JlZ2lzdGVyUHJv
dG9jb2xIYW5kbGVyLmgiCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKworbmFtZXNwYWNlIFdl
YktpdCB7CisKK2NsYXNzIFdlYlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJveHk7CisKK2NsYXNz
IFdlYlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJvdmlkZXIgOiBwdWJsaWMgQVBJQ2xpZW50PFdL
UmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJQcm92aWRlciwga1dLUmVnaXN0ZXJQcm90b2NvbEhhbmRs
ZXJQcm92aWRlckN1cnJlbnRWZXJzaW9uPiB7CitwdWJsaWM6CisgICAgdm9pZCByZWdpc3RlclBy
b3RvY29sSGFuZGxlcihXZWJSZWdpc3RlclByb3RvY29sSGFuZGxlclByb3h5KiwgY29uc3QgU3Ry
aW5nJiBzY2hlbWUsIGNvbnN0IFN0cmluZyYgYmFzZVVSTCwgY29uc3QgU3RyaW5nJiB1cmwsIGNv
bnN0IFN0cmluZyYgdGl0bGUpOworCisjaWYgRU5BQkxFKENVU1RPTV9TQ0hFTUVfSEFORExFUikK
KyAgICB2b2lkIGlzUHJvdG9jb2xIYW5kbGVyUmVnaXN0ZXJlZChXZWJSZWdpc3RlclByb3RvY29s
SGFuZGxlclByb3h5KiwgY29uc3QgU3RyaW5nJiBzY2hlbWUsIGNvbnN0IFN0cmluZyYgYmFzZVVS
TCwgY29uc3QgU3RyaW5nJiB1cmwsIHVpbnQzMl90JiByZXN1bHQpOworICAgIHZvaWQgdW5yZWdp
c3RlclByb3RvY29sSGFuZGxlcihXZWJSZWdpc3RlclByb3RvY29sSGFuZGxlclByb3h5KiwgY29u
c3QgU3RyaW5nJiBzY2hlbWUsIGNvbnN0IFN0cmluZyYgYmFzZVVSTCwgY29uc3QgU3RyaW5nJiB1
cmwpOworI2VuZGlmIC8vIEVOQUJMRShDVVNUT01fU0NIRU1FX0hBTkRMRVIpCit9OworCit9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShSRUdJU1RFUl9QUk9UT0NPTF9I
QU5ETEVSKQorI2VuZGlmIC8vIFdlYlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJvdmlkZXJfaApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlJlZ2lzdGVyUHJvdG9jb2xI
YW5kbGVyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlJlZ2lzdGVyUHJv
dG9jb2xIYW5kbGVyUHJveHkuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LjBkNjMxNTkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
UmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJQcm94eS5jcHAKQEAgLTAsMCArMSw3OCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMiBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYlJlZ2lzdGVy
UHJvdG9jb2xIYW5kbGVyUHJveHkuaCIKKworI2lmIEVOQUJMRShSRUdJU1RFUl9QUk9UT0NPTF9I
QU5ETEVSKQorCisjaW5jbHVkZSAiV2ViQ29udGV4dC5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsK
KworUGFzc1JlZlB0cjxXZWJSZWdpc3RlclByb3RvY29sSGFuZGxlclByb3h5PiBXZWJSZWdpc3Rl
clByb3RvY29sSGFuZGxlclByb3h5OjpjcmVhdGUoV2ViQ29udGV4dCogY29udGV4dCkKK3sKKyAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJveHkoY29u
dGV4dCkpOworfQorCitXZWJSZWdpc3RlclByb3RvY29sSGFuZGxlclByb3h5OjpXZWJSZWdpc3Rl
clByb3RvY29sSGFuZGxlclByb3h5KFdlYkNvbnRleHQqIGNvbnRleHQpCisgICAgOiBtX2NvbnRl
eHQoY29udGV4dCkKK3sKK30KKworV2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJQcm94eTo6fldl
YlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJveHkoKQoreworfQorCit2b2lkIFdlYlJlZ2lzdGVy
UHJvdG9jb2xIYW5kbGVyUHJveHk6OmluaXRpYWxpemVQcm92aWRlcihjb25zdCBXS1JlZ2lzdGVy
UHJvdG9jb2xIYW5kbGVyUHJvdmlkZXIqIHByb3ZpZGVyKQoreworICAgIG1fcHJvdmlkZXIuaW5p
dGlhbGl6ZShwcm92aWRlcik7Cit9CisKK3ZvaWQgV2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJQ
cm94eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwg
Q29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBh
cmd1bWVudHMpCit7CisgICAgZGlkUmVjZWl2ZVdlYlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJv
eHlNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKK30KKwordm9pZCBX
ZWJSZWdpc3RlclByb3RvY29sSGFuZGxlclByb3h5OjpyZWdpc3RlclByb3RvY29sSGFuZGxlcihj
b25zdCBTdHJpbmcmIHNjaGVtZSwgY29uc3QgU3RyaW5nJiBiYXNlVVJMLCBjb25zdCBTdHJpbmcm
IHVybCwgY29uc3QgU3RyaW5nJiB0aXRsZSkKK3sKKyAgICBtX3Byb3ZpZGVyLnJlZ2lzdGVyUHJv
dG9jb2xIYW5kbGVyKHRoaXMsIHNjaGVtZSwgYmFzZVVSTCwgdXJsLCB0aXRsZSk7Cit9CisKKyNp
ZiBFTkFCTEUoQ1VTVE9NX1NDSEVNRV9IQU5ETEVSKQordm9pZCBXZWJSZWdpc3RlclByb3RvY29s
SGFuZGxlclByb3h5Ojppc1Byb3RvY29sSGFuZGxlclJlZ2lzdGVyZWQoY29uc3QgU3RyaW5nJiBz
Y2hlbWUsIGNvbnN0IFN0cmluZyYgYmFzZVVSTCwgY29uc3QgU3RyaW5nJiB1cmwsIHVpbnQzMl90
JiByZXN1bHQpCit7CisgICAgIG1fcHJvdmlkZXIuaXNQcm90b2NvbEhhbmRsZXJSZWdpc3RlcmVk
KHRoaXMsIHNjaGVtZSwgYmFzZVVSTCwgdXJsLCByZXN1bHQpOworfQorCit2b2lkIFdlYlJlZ2lz
dGVyUHJvdG9jb2xIYW5kbGVyUHJveHk6OnVucmVnaXN0ZXJQcm90b2NvbEhhbmRsZXIoY29uc3Qg
U3RyaW5nJiBzY2hlbWUsIGNvbnN0IFN0cmluZyYgYmFzZVVSTCwgY29uc3QgU3RyaW5nJiB1cmwp
Cit7CisgICAgIG1fcHJvdmlkZXIudW5yZWdpc3RlclByb3RvY29sSGFuZGxlcih0aGlzLCBzY2hl
bWUsIGJhc2VVUkwsIHVybCk7Cit9CisjZW5kaWYgLy8gRU5BQkxFKENVU1RPTV9TQ0hFTUVfSEFO
RExFUikKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoUkVHSVNU
RVJfUFJPVE9DT0xfSEFORExFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJSZWdpc3RlclByb3RvY29sSGFuZGxlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJQcm94eS5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLjY1MDAzMDEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJQcm94eS5oCkBAIC0wLDAg
KzEsODIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgSW50ZWwgQ29ycG9yYXRpb24uIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV2ViUmVnaXN0ZXJQcm90b2Nv
bEhhbmRsZXJQcm94eV9oCisjZGVmaW5lIFdlYlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJveHlf
aAorCisjaWYgRU5BQkxFKFJFR0lTVEVSX1BST1RPQ09MX0hBTkRMRVIpCisKKyNpbmNsdWRlICJB
UElPYmplY3QuaCIKKyNpbmNsdWRlICJNZXNzYWdlSUQuaCIKKyNpbmNsdWRlICJXZWJSZWdpc3Rl
clByb3RvY29sSGFuZGxlclByb3ZpZGVyLmgiCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKwor
bmFtZXNwYWNlIENvcmVJUEMgeworY2xhc3MgQXJndW1lbnRFbmNvZGVyOworY2xhc3MgQXJndW1l
bnREZWNvZGVyOworY2xhc3MgQ29ubmVjdGlvbjsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisK
K2NsYXNzIFdlYkNvbnRleHQ7CisKK2NsYXNzIFdlYlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJv
eHkgOiBwdWJsaWMgQVBJT2JqZWN0IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgY29uc3QgVHlwZSBB
UElUeXBlID0gVHlwZVJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyOworCisgICAgc3RhdGljIFBhc3NS
ZWZQdHI8V2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJQcm94eT4gY3JlYXRlKFdlYkNvbnRleHQq
KTsKKyAgICB2aXJ0dWFsIH5XZWJSZWdpc3RlclByb3RvY29sSGFuZGxlclByb3h5KCk7CisKKyAg
ICB2b2lkIGNsZWFyQ29udGV4dCgpIHsgbV9jb250ZXh0ID0gMDsgfQorCisgICAgdm9pZCBpbml0
aWFsaXplUHJvdmlkZXIoY29uc3QgV0tSZWdpc3RlclByb3RvY29sSGFuZGxlclByb3ZpZGVyKik7
CisKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3Jl
SVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOworCitwcml2YXRlOgor
ICAgIGV4cGxpY2l0IFdlYlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJveHkoV2ViQ29udGV4dCop
OworCisgICAgdmlydHVhbCBUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBBUElUeXBlOyB9CisK
KyAgICAvLyBJbXBsZW1lbnRlZCBpbiBnZW5lcmF0ZWQgV2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRs
ZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKKyAgICB2b2lkIGRpZFJlY2VpdmVXZWJSZWdpc3Rl
clByb3RvY29sSGFuZGxlclByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQ
Qzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKKyAgICB2b2lkIGRpZFJl
Y2VpdmVTeW5jV2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJQcm94eU1lc3NhZ2UoQ29yZUlQQzo6
Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVy
KiwgT3duUHRyPENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rlcj4mKTsKKworICAgIHZvaWQgcmVnaXN0
ZXJQcm90b2NvbEhhbmRsZXIoY29uc3QgU3RyaW5nJiBzY2hlbWUsIGNvbnN0IFN0cmluZyYgYmFz
ZVVSTCwgY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0cmluZyYgdGl0bGUpOworI2lmIEVOQUJM
RShDVVNUT01fU0NIRU1FX0hBTkRMRVIpCisgICAgdm9pZCBpc1Byb3RvY29sSGFuZGxlclJlZ2lz
dGVyZWQoY29uc3QgU3RyaW5nJiBzY2hlbWUsIGNvbnN0IFN0cmluZyYgYmFzZVVSTCwgY29uc3Qg
U3RyaW5nJiB1cmwsIHVpbnQzMl90JiByZXN1bHQpOworICAgIHZvaWQgdW5yZWdpc3RlclByb3Rv
Y29sSGFuZGxlcihjb25zdCBTdHJpbmcmIHNjaGVtZSwgY29uc3QgU3RyaW5nJiBiYXNlVVJMLCBj
b25zdCBTdHJpbmcmIHVybCk7CisjZW5kaWYgLy8gRU5BQkxFKENVU1RPTV9TQ0hFTUVfSEFORExF
UikKKworICAgIFdlYkNvbnRleHQqIG1fY29udGV4dDsKKyAgICBXZWJSZWdpc3RlclByb3RvY29s
SGFuZGxlclByb3ZpZGVyIG1fcHJvdmlkZXI7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
KworI2VuZGlmIC8vIEVOQUJMRShSRUdJU1RFUl9QUk9UT0NPTF9IQU5ETEVSKQorCisjZW5kaWYg
Ly8gV2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJQcm94eV9oCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJQcm94eS5tZXNzYWdl
cy5pbiBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJSZWdpc3RlclByb3RvY29sSGFuZGxl
clByb3h5Lm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZh
NGFjODEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUmVn
aXN0ZXJQcm90b2NvbEhhbmRsZXJQcm94eS5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDMzIEBACisj
IENvcHlyaWdodCAoQykgMjAxMiBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAor
IyBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFCisjIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisjIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyMg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IKKyMgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyMgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwKKyMgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworI2lmIEVOQUJM
RShSRUdJU1RFUl9QUk9UT0NPTF9IQU5ETEVSKQorCittZXNzYWdlcyAtPiBXZWJSZWdpc3RlclBy
b3RvY29sSGFuZGxlclByb3h5IHsKKyAgICBSZWdpc3RlclByb3RvY29sSGFuZGxlcihXVEY6OlN0
cmluZyBzY2hlbWUsIFdURjo6U3RyaW5nIGJhc2VVUkwsIFdURjo6U3RyaW5nIHVybCwgV1RGOjpT
dHJpbmcgdGl0bGUpCisjaWYgRU5BQkxFKENVU1RPTV9TQ0hFTUVfSEFORExFUikKKyAgICBJc1By
b3RvY29sSGFuZGxlclJlZ2lzdGVyZWQoV1RGOjpTdHJpbmcgc2NoZW1lLCBXVEY6OlN0cmluZyBi
YXNlVVJMLCBXVEY6OlN0cmluZyB1cmwpIC0+ICh1aW50MzJfdCByZXN1bHQpCisgICAgVW5yZWdp
c3RlclByb3RvY29sSGFuZGxlcihXVEY6OlN0cmluZyBzY2hlbWUsIFdURjo6U3RyaW5nIGJhc2VV
UkwsIFdURjo6U3RyaW5nIHVybCkKKyNlbmRpZiAvLyBFTkFCTEUoQ1VTVE9NX1NDSEVNRV9IQU5E
TEVSKQorfQorCisjZW5kaWYgLy8gRU5BQkxFKFJFR0lTVEVSX1BST1RPQ09MX0hBTkRMRVIpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlJl
Z2lzdGVyUHJvdG9jb2xIYW5kbGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJDbGllbnQuY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE2YzkwN2UKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlJlZ2lzdGVy
UHJvdG9jb2xIYW5kbGVyQ2xpZW50LmNwcApAQCAtMCwwICsxLDczIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDEyIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViUmVnaXN0ZXJQcm90b2Nv
bEhhbmRsZXJDbGllbnQuaCIKKworI2lmIEVOQUJMRShSRUdJU1RFUl9QUk9UT0NPTF9IQU5ETEVS
KQorCisjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgorI2luY2x1ZGUgIldlYlJlZ2lzdGVyUHJvdG9j
b2xIYW5kbGVyUHJveHlNZXNzYWdlcy5oIgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKK3Vz
aW5nIG5hbWVzcGFjZSBNZXNzYWdlczo6V2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJQcm94eTsK
KworbmFtZXNwYWNlIFdlYktpdCB7CisKK3ZvaWQgV2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJD
bGllbnQ6OnJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyKGNvbnN0IFN0cmluZyYgc2NoZW1lLCBjb25z
dCBTdHJpbmcmIGJhc2VVUkwsIGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBTdHJpbmcmIHRpdGxl
KQoreworICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLmNvbm5lY3Rpb24oKS0+c2VuZChSZWdpc3Rl
clByb3RvY29sSGFuZGxlcihzY2hlbWUsIGJhc2VVUkwsIHVybCwgdGl0bGUpLCAwKTsKK30KKwor
I2lmIEVOQUJMRShDVVNUT01fU0NIRU1FX0hBTkRMRVIpCitzdGF0aWMgaW5saW5lIFJlZ2lzdGVy
UHJvdG9jb2xIYW5kbGVyQ2xpZW50OjpDdXN0b21IYW5kbGVyc1N0YXRlIHRvQ3VzdG9tSGFuZGxl
cnNTdGF0ZShjb25zdCB1aW50MzJfdCBzdGF0ZSkKK3sKKyAgICBzd2l0Y2ggKHN0YXRlKSB7Cisg
ICAgY2FzZSBSZWdpc3RlclByb3RvY29sSGFuZGxlckNsaWVudDo6Q3VzdG9tSGFuZGxlcnNOZXc6
CisgICAgY2FzZSBSZWdpc3RlclByb3RvY29sSGFuZGxlckNsaWVudDo6Q3VzdG9tSGFuZGxlcnNS
ZWdpc3RlcmVkOgorICAgIGNhc2UgUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJDbGllbnQ6OkN1c3Rv
bUhhbmRsZXJzRGVjbGluZWQ6CisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxSZWdpc3RlclBy
b3RvY29sSGFuZGxlckNsaWVudDo6Q3VzdG9tSGFuZGxlcnNTdGF0ZT4oc3RhdGUpOworICAgIGRl
ZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4gUmVn
aXN0ZXJQcm90b2NvbEhhbmRsZXJDbGllbnQ6OkN1c3RvbUhhbmRsZXJzRGVjbGluZWQ7CisgICAg
fQorfQorCitSZWdpc3RlclByb3RvY29sSGFuZGxlckNsaWVudDo6Q3VzdG9tSGFuZGxlcnNTdGF0
ZSBXZWJSZWdpc3RlclByb3RvY29sSGFuZGxlckNsaWVudDo6aXNQcm90b2NvbEhhbmRsZXJSZWdp
c3RlcmVkKGNvbnN0IFN0cmluZyYgc2NoZW1lLCBjb25zdCBTdHJpbmcmIGJhc2VVUkwsIGNvbnN0
IFN0cmluZyYgdXJsKQoreworICAgIHVpbnQzMl90IHJlc3VsdCA9IHN0YXRpY19jYXN0PHVpbnQz
Ml90PihSZWdpc3RlclByb3RvY29sSGFuZGxlckNsaWVudDo6Q3VzdG9tSGFuZGxlcnNOZXcpOwor
ICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLmNvbm5lY3Rpb24oKS0+c2VuZFN5bmMoSXNQcm90b2Nv
bEhhbmRsZXJSZWdpc3RlcmVkKHNjaGVtZSwgYmFzZVVSTCwgdXJsKSwgSXNQcm90b2NvbEhhbmRs
ZXJSZWdpc3RlcmVkOjpSZXBseShyZXN1bHQpLCAwKTsKKyAgICByZXR1cm4gdG9DdXN0b21IYW5k
bGVyc1N0YXRlKHJlc3VsdCk7Cit9CisKK3ZvaWQgV2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJD
bGllbnQ6OnVucmVnaXN0ZXJQcm90b2NvbEhhbmRsZXIoY29uc3QgU3RyaW5nJiBzY2hlbWUsIGNv
bnN0IFN0cmluZyYgYmFzZVVSTCwgY29uc3QgU3RyaW5nJiB1cmwpCit7CisgICAgV2ViUHJvY2Vz
czo6c2hhcmVkKCkuY29ubmVjdGlvbigpLT5zZW5kKFVucmVnaXN0ZXJQcm90b2NvbEhhbmRsZXIo
c2NoZW1lLCBiYXNlVVJMLCB1cmwpLCAwKTsKK30KKyNlbmRpZiAvLyBFTkFCTEUoQ1VTVE9NX1ND
SEVNRV9IQU5ETEVSKQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJM
RShSRUdJU1RFUl9QUk9UT0NPTF9IQU5ETEVSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJSZWdpc3RlclByb3RvY29sSGFuZGxlckNsaWVu
dC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJSZWdpc3Rl
clByb3RvY29sSGFuZGxlckNsaWVudC5oCmluZGV4IDYzZjE5OTAuLjgyODNhYWQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUmVnaXN0ZXJQ
cm90b2NvbEhhbmRsZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyQ2xpZW50LmgKQEAgLTM4LDEx
ICszOCwxMSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+V2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRs
ZXJDbGllbnQoKSB7IH0KIAogcHJpdmF0ZToKLSAgICB2aXJ0dWFsIHZvaWQgcmVnaXN0ZXJQcm90
b2NvbEhhbmRsZXIoY29uc3QgU3RyaW5nJiBzY2hlbWUsIGNvbnN0IFN0cmluZyYgYmFzZVVSTCwg
Y29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0cmluZyYgdGl0bGUpIE9WRVJSSURFIHsgfQorICAg
IHZpcnR1YWwgdm9pZCByZWdpc3RlclByb3RvY29sSGFuZGxlcihjb25zdCBTdHJpbmcmIHNjaGVt
ZSwgY29uc3QgU3RyaW5nJiBiYXNlVVJMLCBjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgU3RyaW5n
JiB0aXRsZSkgT1ZFUlJJREU7CiAKICNpZiBFTkFCTEUoQ1VTVE9NX1NDSEVNRV9IQU5ETEVSKQot
ICAgIHZpcnR1YWwgQ3VzdG9tSGFuZGxlcnNTdGF0ZSBpc1Byb3RvY29sSGFuZGxlclJlZ2lzdGVy
ZWQoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJikgeyByZXR1cm4g
Q3VzdG9tSGFuZGxlcnNEZWNsaW5lZDsgfQotICAgIHZpcnR1YWwgdm9pZCB1bnJlZ2lzdGVyUHJv
dG9jb2xIYW5kbGVyKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYp
IHsgfQorICAgIHZpcnR1YWwgQ3VzdG9tSGFuZGxlcnNTdGF0ZSBpc1Byb3RvY29sSGFuZGxlclJl
Z2lzdGVyZWQoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJik7Cisg
ICAgdmlydHVhbCB2b2lkIHVucmVnaXN0ZXJQcm90b2NvbEhhbmRsZXIoY29uc3QgU3RyaW5nJiwg
Y29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJik7CiAjZW5kaWYKIH07CiAK
</data>
<flag name="commit-queue"
          id="167070"
          type_id="3"
          status="-"
          setter="gustavo"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>157300</attachid>
            <date>2012-08-08 14:34:44 -0700</date>
            <delta_ts>2012-08-13 13:50:05 -0700</delta_ts>
            <desc>patch v3</desc>
            <filename>bug92749_v3</filename>
            <type>text/plain</type>
            <size>45900</size>
            <attacher name="Mikhail Pozdnyakov">mikhail.pozdnyakov</attacher>
            
              <data encoding="base64">Y29tbWl0IDMwMzFkNjYwNmZlZjBkODVjMzZiNjcwYTZkYzhmYzJhNTI2MmVjM2MKQXV0aG9yOiBN
aWtoYWlsIFBvemRueWFrb3YgPG1pa2hhaWwucG96ZG55YWtvdkBpbnRlbC5jb20+CkRhdGU6ICAg
V2VkIEF1ZyAxIDE5OjE3OjQwIDIwMTIgKzAzMDAKCiAgICBidWc5Mjc0OQoKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0
cy50eHQKaW5kZXggN2QxMGM3ZC4uN2U1YTk3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
Q01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQKQEAgLTI3
Myw2ICsyNzMsOCBAQCBTRVQoV2ViS2l0Ml9TT1VSQ0VTCiAgICAgVUlQcm9jZXNzL1dlYlBvbGlj
eUNsaWVudC5jcHAKICAgICBVSVByb2Nlc3MvV2ViUHJlZmVyZW5jZXMuY3BwCiAgICAgVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKKyAgICBVSVByb2Nlc3MvV2ViUmVnaXN0ZXJQcm90b2Nv
bEhhbmRsZXJQcm92aWRlci5jcHAKKyAgICBVSVByb2Nlc3MvV2ViUmVnaXN0ZXJQcm90b2NvbEhh
bmRsZXJQcm94eS5jcHAKICAgICBVSVByb2Nlc3MvV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94
eS5jcHAKICAgICBVSVByb2Nlc3MvV2ViUmVzb3VyY2VMb2FkQ2xpZW50LmNwcAogICAgIFVJUHJv
Y2Vzcy9XZWJUZXh0Q2hlY2tlci5jcHAKQEAgLTMyMCw2ICszMjIsNyBAQCBTRVQoV2ViS2l0Ml9T
T1VSQ0VTCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLUGx1Z2luU2l0ZURhdGFNYW5hZ2VyLmNwcAog
ICAgIFVJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcAogICAgIFVJUHJvY2Vzcy9BUEkv
Qy9XS1Byb3RlY3Rpb25TcGFjZS5jcHAKKyAgICBVSVByb2Nlc3MvQVBJL0MvV0tSZWdpc3RlclBy
b3RvY29sSGFuZGxlci5jcHAKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tSZXNvdXJjZUNhY2hlTWFu
YWdlci5jcHAKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tUZXh0Q2hlY2tlci5jcHAKICAgICBVSVBy
b2Nlc3MvQVBJL0MvV0tWaWJyYXRpb24uY3BwCkBAIC00NTUsNiArNDU4LDcgQEAgU0VUKFdlYktp
dDJfU09VUkNFUwogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9u
Q2xpZW50LmNwcAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJh
dGVnaWVzLmNwcAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUG9wdXBNZW51LmNw
cAorICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRs
ZXJDbGllbnQuY3BwCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTZWFyY2hQb3B1
cE1lbnUuY3BwCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJWaWJyYXRpb25DbGll
bnQuY3BwCiAKQEAgLTUwNSw2ICs1MDksNyBAQCBTRVQoV2ViS2l0Ml9NRVNTQUdFU19JTl9GSUxF
UwogICAgIFVJUHJvY2Vzcy9XZWJOZXR3b3JrSW5mb01hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgog
ICAgIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KICAgICBVSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCisgICAgVUlQcm9jZXNzL1dlYlJlZ2lzdGVyUHJvdG9j
b2xIYW5kbGVyUHJveHkubWVzc2FnZXMuaW4KICAgICBVSVByb2Nlc3MvV2ViUmVzb3VyY2VDYWNo
ZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgogICAgIFVJUHJvY2Vzcy9XZWJWaWJyYXRpb25Qcm94
eS5tZXNzYWdlcy5pbgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggODY1M2EyZi4uNzU2ZGRkNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZwpAQCAtMSw1ICsxLDc1IEBACiAyMDEyLTA4LTA4ICBNaWtoYWlsIFBvemRueWFrb3YgIDxtaWto
YWlsLnBvemRueWFrb3ZAaW50ZWwuY29tPgogCisgICAgICAgIFtXSzJdIEFkZCBQcm90b2NvbCBI
YW5kbGVyIEFQSSBzdXBwb3J0IGZvciBXZWJLaXQyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD05Mjc0OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIHN1cHBvcnQgb2YgUmVnaXN0ZXIgUHJvdG9jb2wg
SGFuZGxlciBBUEkuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJp
dmVkU291cmNlcy5wcmk6CisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAg
KiBQbGF0Zm9ybS9Db3JlSVBDL01lc3NhZ2VJRC5oOgorICAgICAgICAqIFNoYXJlZC9BUEkvYy9X
S0Jhc2UuaDoKKyAgICAgICAgKiBTaGFyZWQvQVBJT2JqZWN0Lmg6CisgICAgICAgICogVGFyZ2V0
LnByaToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0Lmg6CisgICAgICAgIChX
ZWJLaXQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwOgorICAgICAg
ICAoV0tDb250ZXh0R2V0UmVnaXN0ZXJQcm90b2NvbEhhbmRsZXIpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvQy9XS0NvbnRleHQuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tSZWdp
c3RlclByb3RvY29sSGFuZGxlci5jcHA6IEFkZGVkLgorICAgICAgICAoV0tSZWdpc3RlclByb3Rv
Y29sSGFuZGxlckdldFR5cGVJRCk6CisgICAgICAgIChXS1JlZ2lzdGVyUHJvdG9jb2xIYW5kbGVy
U2V0UHJvdmlkZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1JlZ2lzdGVyUHJvdG9j
b2xIYW5kbGVyLmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dDo6V2ViQ29udGV4dCk6CisgICAgICAgIChXZWJL
aXQ6OldlYkNvbnRleHQ6On5XZWJDb250ZXh0KToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4
dDo6ZGlzY29ubmVjdFByb2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0OjpkaWRS
ZWNlaXZlTWVzc2FnZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkNvbnRleHQuaDoKKyAgICAg
ICAgKFdlYktpdCk6CisgICAgICAgIChXZWJDb250ZXh0KToKKyAgICAgICAgKFdlYktpdDo6V2Vi
Q29udGV4dDo6cmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJQcm94eSk6CisgICAgICAgICogVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94
eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJSZWdpc3RlclBy
b3RvY29sSGFuZGxlclByb3ZpZGVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJSZWdpc3RlclByb3RvY29sSGFuZGxlclByb3ZpZGVyOjpyZWdpc3Rl
clByb3RvY29sSGFuZGxlcik6CisgICAgICAgIChXZWJLaXQ6OldlYlJlZ2lzdGVyUHJvdG9jb2xI
YW5kbGVyUHJvdmlkZXI6OmlzUHJvdG9jb2xIYW5kbGVyUmVnaXN0ZXJlZCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJvdmlkZXI6OnVucmVnaXN0ZXJQcm90
b2NvbEhhbmRsZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJSZWdpc3RlclByb3RvY29sSGFu
ZGxlclByb3ZpZGVyLmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYlJl
Z2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJvdmlkZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJS
ZWdpc3RlclByb3RvY29sSGFuZGxlclByb3h5LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQp
OgorICAgICAgICAoV2ViS2l0OjpXZWJSZWdpc3RlclByb3RvY29sSGFuZGxlclByb3h5OjpjcmVh
dGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJSZWdpc3RlclByb3RvY29sSGFuZGxlclByb3h5OjpX
ZWJSZWdpc3RlclByb3RvY29sSGFuZGxlclByb3h5KToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVn
aXN0ZXJQcm90b2NvbEhhbmRsZXJQcm94eTo6fldlYlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJv
eHkpOgorICAgICAgICAoV2ViS2l0OjpXZWJSZWdpc3RlclByb3RvY29sSGFuZGxlclByb3h5Ojpp
bml0aWFsaXplUHJvdmlkZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJSZWdpc3RlclByb3RvY29s
SGFuZGxlclByb3h5OjpkaWRSZWNlaXZlTWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlJl
Z2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJveHk6OnJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJQcm94eTo6aXNQcm90b2Nv
bEhhbmRsZXJSZWdpc3RlcmVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVnaXN0ZXJQcm90b2Nv
bEhhbmRsZXJQcm94eTo6dW5yZWdpc3RlclByb3RvY29sSGFuZGxlcik6CisgICAgICAgICogVUlQ
cm9jZXNzL1dlYlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJveHkuaDogQWRkZWQuCisgICAgICAg
IChDb3JlSVBDKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJSZWdpc3RlclByb3Rv
Y29sSGFuZGxlclByb3h5KToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVnaXN0ZXJQcm90b2NvbEhh
bmRsZXJQcm94eTo6Y2xlYXJDb250ZXh0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVnaXN0ZXJQ
cm90b2NvbEhhbmRsZXJQcm94eTo6dHlwZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlJlZ2lz
dGVyUHJvdG9jb2xIYW5kbGVyUHJveHkubWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJDbGllbnQu
Y3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlJlZ2lz
dGVyUHJvdG9jb2xIYW5kbGVyQ2xpZW50OjpyZWdpc3RlclByb3RvY29sSGFuZGxlcik6CisgICAg
ICAgIChXZWJLaXQ6OnRvQ3VzdG9tSGFuZGxlcnNTdGF0ZSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyQ2xpZW50Ojppc1Byb3RvY29sSGFuZGxlclJlZ2lzdGVy
ZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJSZWdpc3RlclByb3RvY29sSGFuZGxlckNsaWVudDo6
dW5yZWdpc3RlclByb3RvY29sSGFuZGxlcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJSZWdpc3RlclByb3RvY29sSGFuZGxlckNsaWVudC5oOgorICAgICAgICAoV2Vi
UmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJDbGllbnQpOgorCisyMDEyLTA4LTA4ICBNaWtoYWlsIFBv
emRueWFrb3YgIDxtaWtoYWlsLnBvemRueWFrb3ZAaW50ZWwuY29tPgorCiAgICAgICAgIFtXSzJd
IENvZGluZyBzdHlsZSB2aW9sYXRpb24gd2FzIGJyb3VnaHQgd2l0aCByMTI1MDMxCiAgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MzUwMwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9EZXJpdmVkU291cmNlcy5wcmkgYi9Tb3VyY2UvV2ViS2l0Mi9E
ZXJpdmVkU291cmNlcy5wcmkKaW5kZXggMjZjYmIyYi4uN2M1OTBiNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvRGVyaXZlZFNvdXJjZXMucHJpCisrKyBiL1NvdXJjZS9XZWJLaXQyL0Rlcml2
ZWRTb3VyY2VzLnByaQpAQCAtMTAzLDYgKzEwMyw3IEBAIE1FU1NBR0VfUkVDRUlWRVJTID0gXAog
ICAgIFdlYlByb2Nlc3MubWVzc2FnZXMuaW4gXAogICAgIFdlYlByb2Nlc3NDb25uZWN0aW9uLm1l
c3NhZ2VzLmluIFwKICAgICBXZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4gXAorICAgIFdlYlJl
Z2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJveHkubWVzc2FnZXMuaW4gXAogICAgIFdlYlJlc291cmNl
Q2FjaGVNYW5hZ2VyLm1lc3NhZ2VzLmluIFwKICAgICBXZWJSZXNvdXJjZUNhY2hlTWFuYWdlclBy
b3h5Lm1lc3NhZ2VzLmluIFwKICAgICBXZWJWaWJyYXRpb25Qcm94eS5tZXNzYWdlcy5pbiBcCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dl
YktpdDIvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCAwYmU2YTYwLi4xZGU1NTdjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJL
aXQyL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTg3LDYgKzg3LDcgQEAgd2Via2l0Ml9oX2FwaSAr
PSBcCiAJJChXZWJLaXQyKS9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlc1ByaXZhdGUuaCBc
CiAJJChXZWJLaXQyKS9VSVByb2Nlc3MvQVBJL0MvV0tQcm90ZWN0aW9uU3BhY2UuaCBcCiAJJChX
ZWJLaXQyKS9VSVByb2Nlc3MvQVBJL0MvV0tQcm90ZWN0aW9uU3BhY2VUeXBlcy5oIFwKKwkkKFdl
YktpdDIpL1VJUHJvY2Vzcy9BUEkvQy9XS1JlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyLmggXAogCSQo
V2ViS2l0MikvVUlQcm9jZXNzL0FQSS9DL1dLUmVzb3VyY2VDYWNoZU1hbmFnZXIuaCBcCiAJJChX
ZWJLaXQyKS9VSVByb2Nlc3MvQVBJL0MvV0tUZXh0Q2hlY2tlci5oIFwKIAkkKFdlYktpdDIpL1VJ
UHJvY2Vzcy9BUEkvQy9XS1ZpYnJhdGlvbi5jcHAgXApAQCAtMjA2LDYgKzIwNyw4IEBAIHdlYmtp
dDJfYnVpbHRfc291cmNlcyArPSBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJQYWdlUHJv
eHlNZXNzYWdlcy5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYlBhZ2VNZXNzYWdlUmVj
ZWl2ZXIuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYlBhZ2VNZXNzYWdlcy5oIFwK
KyAgICAgICAgRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJSZWdpc3RlclByb3RvY29sSGFuZGxl
clByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJS
ZWdpc3RlclByb3RvY29sSGFuZGxlclByb3h5TWVzc2FnZXMuaCBcCiAJRGVyaXZlZFNvdXJjZXMv
V2ViS2l0Mi9XZWJSZXNvdXJjZUNhY2hlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgXAogCURl
cml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJNZXNzYWdlcy5oIFwK
IAlEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHlNZXNz
YWdlUmVjZWl2ZXIuY3BwIFwKQEAgLTYwMSw2ICs2MDQsOCBAQCB3ZWJraXQyX3NvdXJjZXMgKz0g
XAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1Byb3RlY3Rpb25TcGFjZS5jcHAg
XAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1Byb3RlY3Rpb25TcGFjZS5oIFwK
IAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcm90ZWN0aW9uU3BhY2VUeXBlcy5o
IFwKKwlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tSZWdpc3RlclByb3RvY29sSGFu
ZGxlci5jcHAgXAorCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1JlZ2lzdGVyUHJv
dG9jb2xIYW5kbGVyLmggXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1Jlc291
cmNlQ2FjaGVNYW5hZ2VyLmggXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1Jl
c291cmNlQ2FjaGVNYW5hZ2VyLmNwcCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
L1dLVGV4dENoZWNrZXIuaCBcCkBAIC04OTgsNiArOTAzLDEwIEBAIHdlYmtpdDJfc291cmNlcyAr
PSBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByZWZlcmVuY2VzLmggXAogCVNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwIFwKIAlTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmggXAorICAgICAgICBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJQcm92aWRlci5jcHAgXAorICAgICAg
ICBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJQcm92
aWRlci5oIFwKKwlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUmVnaXN0ZXJQcm90b2NvbEhh
bmRsZXJQcm94eS5jcHAgXAorCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJSZWdpc3RlclBy
b3RvY29sSGFuZGxlclByb3h5LmggXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJSZXNv
dXJjZUNhY2hlTWFuYWdlclByb3h5LmggXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJS
ZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5LmNwcCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlJlc291cmNlTG9hZENsaWVudC5jcHAgXApAQCAtMTEwOCw2ICsxMTE3LDggQEAgd2Via2l0
Ml9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAgXAogCVNvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmggXAorCVNv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUmVnaXN0ZXJQcm90b2Nv
bEhhbmRsZXJDbGllbnQuY3BwIFwKKwlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyQ2xpZW50LmggXAogCVNvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUG9wdXBNZW51LmNwcCBcCiAJU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQb3B1cE1lbnUuaCBcCiAJU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTZWFyY2hQb3B1cE1lbnUu
Y3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvTWVzc2Fn
ZUlELmggYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL01lc3NhZ2VJRC5oCmluZGV4
IDIyZDMwNmIuLjBjZDhlM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0Nv
cmVJUEMvTWVzc2FnZUlELmgKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9N
ZXNzYWdlSUQuaApAQCAtNzksNiArNzksNyBAQCBlbnVtIE1lc3NhZ2VDbGFzcyB7CiAgICAgTWVz
c2FnZUNsYXNzV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LAogICAgIE1lc3NhZ2VDbGFzc1dl
YlBhZ2VQcm94eSwKICAgICBNZXNzYWdlQ2xhc3NXZWJQcm9jZXNzUHJveHksCisgICAgTWVzc2Fn
ZUNsYXNzV2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJQcm94eSwKICAgICBNZXNzYWdlQ2xhc3NX
ZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5LAogI2lmIFVTRShTT1VQKQogICAgIE1lc3NhZ2VD
bGFzc1dlYlNvdXBSZXF1ZXN0TWFuYWdlclByb3h5LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvU2hhcmVkL0FQSS9jL1dLQmFzZS5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dL
QmFzZS5oCmluZGV4IDY4NTRlY2MuLjU1NzM5OTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9BUEkvYy9XS0Jhc2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2Mv
V0tCYXNlLmgKQEAgLTEyMiw2ICsxMjIsNyBAQCB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVX
S1BhZ2VHcm91cCogV0tQYWdlR3JvdXBSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVX
S1BsdWdpblNpdGVEYXRhTWFuYWdlciogV0tQbHVnaW5TaXRlRGF0YU1hbmFnZXJSZWY7CiB0eXBl
ZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1ByZWZlcmVuY2VzKiBXS1ByZWZlcmVuY2VzUmVmOwog
dHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tQcm90ZWN0aW9uU3BhY2UqIFdLUHJvdGVjdGlv
blNwYWNlUmVmOwordHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tSZWdpc3RlclByb3RvY29s
SGFuZGxlciogV0tSZWdpc3RlclByb3RvY29sSGFuZGxlclJlZjsKIHR5cGVkZWYgY29uc3Qgc3Ry
dWN0IE9wYXF1ZVdLVGV4dENoZWNrZXIqIFdLVGV4dENoZWNrZXJSZWY7CiB0eXBlZGVmIGNvbnN0
IHN0cnVjdCBPcGFxdWVXS1ZpYnJhdGlvbiogV0tWaWJyYXRpb25SZWY7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElPYmplY3QuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9BUElPYmplY3QuaAppbmRleCA4ZTRkMjkzLi5hOWYzN2I1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvQVBJT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQ
SU9iamVjdC5oCkBAIC0xMDYsNiArMTA2LDcgQEAgcHVibGljOgogICAgICAgICBUeXBlUGFnZUdy
b3VwLAogICAgICAgICBUeXBlUGx1Z2luU2l0ZURhdGFNYW5hZ2VyLAogICAgICAgICBUeXBlUHJl
ZmVyZW5jZXMsCisgICAgICAgIFR5cGVSZWdpc3RlclByb3RvY29sSGFuZGxlciwKICAgICAgICAg
VHlwZVRleHRDaGVja2VyLAogICAgICAgICBUeXBlVmlicmF0aW9uLAogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJpIGIvU291cmNlL1dlYktpdDIvVGFyZ2V0LnByaQppbmRl
eCBlMGZhNmVhLi42NWEzODg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJp
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1RhcmdldC5wcmkKQEAgLTE4MSw2ICsxODEsNyBAQCBIRUFE
RVJTICs9IFwKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlc1ByaXZhdGUuaCBcCiAg
ICAgVUlQcm9jZXNzL0FQSS9DL1dLUHJvdGVjdGlvblNwYWNlLmggXAogICAgIFVJUHJvY2Vzcy9B
UEkvQy9XS1Byb3RlY3Rpb25TcGFjZVR5cGVzLmggXAorICAgIFVJUHJvY2Vzcy9BUEkvQy9XS1Jl
Z2lzdGVyUHJvdG9jb2xIYW5kbGVyLmggXAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS1ZpYnJhdGlv
bi5oIFwKICAgICBVSVByb2Nlc3MvQVBJL0MvV2ViS2l0Ml9DLmggXAogICAgIFVJUHJvY2Vzcy9B
UEkvQy9xdC9XS05hdGl2ZUV2ZW50LmggXApAQCAtMjYzLDYgKzI2NCw4IEBAIEhFQURFUlMgKz0g
XAogICAgIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaCBcCiAgICAgVUlQcm9jZXNzL1dlYlJl
c291cmNlQ2FjaGVNYW5hZ2VyUHJveHkuaCBcCiAgICAgVUlQcm9jZXNzL1dlYlJlc291cmNlTG9h
ZENsaWVudC5oIFwKKyAgICBVSVByb2Nlc3MvV2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJQcm92
aWRlci5oIFwKKyAgICBVSVByb2Nlc3MvV2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJQcm94eS5o
IFwKICAgICBVSVByb2Nlc3MvV2ViVUlDbGllbnQuaCBcCiAgICAgVUlQcm9jZXNzL1dlYlZpYnJh
dGlvblByb3ZpZGVyLmggXAogICAgIFVJUHJvY2Vzcy9XZWJWaWJyYXRpb25Qcm94eS5oIFwKQEAg
LTMzOSw2ICszNDIsNyBAQCBIRUFERVJTICs9IFwKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5oIFwKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oIFwKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYlBvcHVwTWVudS5oIFwKKyAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlJl
Z2lzdGVyUHJvdG9jb2xIYW5kbGVyQ2xpZW50LmggXAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViU2VhcmNoUG9wdXBNZW51LmggXAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViVmlicmF0aW9uQ2xpZW50LmggXAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
cXQvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oIFwKQEAgLTUyMSw2ICs1MjUsNyBAQCBTT1VS
Q0VTICs9IFwKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tQbHVnaW5TaXRlRGF0YU1hbmFnZXIuY3Bw
IFwKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHAgXAogICAgIFVJUHJvY2Vz
cy9BUEkvQy9XS1Byb3RlY3Rpb25TcGFjZS5jcHAgXAorICAgIFVJUHJvY2Vzcy9BUEkvQy9XS1Jl
Z2lzdGVyUHJvdG9jb2xIYW5kbGVyLmNwcCBcCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLUmVzb3Vy
Y2VDYWNoZU1hbmFnZXIuY3BwIFwKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tWaWJyYXRpb24uY3Bw
IFwKICAgICBVSVByb2Nlc3MvQVBJL2NwcC9xdC9XS1N0cmluZ1F0LmNwcCBcCkBAIC02MDAsNiAr
NjA1LDggQEAgU09VUkNFUyArPSBcCiAgICAgVUlQcm9jZXNzL1dlYlBvbGljeUNsaWVudC5jcHAg
XAogICAgIFVJUHJvY2Vzcy9XZWJQcmVmZXJlbmNlcy5jcHAgXAogICAgIFVJUHJvY2Vzcy9XZWJQ
cm9jZXNzUHJveHkuY3BwIFwKKyAgICBVSVByb2Nlc3MvV2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRs
ZXJQcm92aWRlci5jcHAgXAorICAgIFVJUHJvY2Vzcy9XZWJSZWdpc3RlclByb3RvY29sSGFuZGxl
clByb3h5LmNwcCBcCiAgICAgVUlQcm9jZXNzL1dlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHku
Y3BwIFwKICAgICBVSVByb2Nlc3MvV2ViUmVzb3VyY2VMb2FkQ2xpZW50LmNwcCBcCiAgICAgVUlQ
cm9jZXNzL1dlYlVJQ2xpZW50LmNwcCBcCkBAIC02OTgsNiArNzA1LDcgQEAgU09VUkNFUyArPSBc
CiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJOb3RpZmljYXRpb25DbGllbnQuY3Bw
IFwKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5j
cHAgXAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUG9wdXBNZW51LmNwcCBcCisg
ICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJSZWdpc3RlclByb3RvY29sSGFuZGxlckNs
aWVudC5jcHAgXAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU2VhcmNoUG9wdXBN
ZW51LmNwcCBcCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJWaWJyYXRpb25DbGll
bnQuY3BwIFwKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3F0L1dlYkNvbnRleHRNZW51
Q2xpZW50UXQuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Qy9XS0FQSUNhc3QuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3Qu
aAppbmRleCBiZWYyOTRlLi5jNjUwNTQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9DL1dLQVBJQ2FzdC5oCkBAIC04OSw2ICs4OSw3IEBAIGNsYXNzIFdlYlBhZ2VQcm94eTsKIGNs
YXNzIFdlYlBsdWdpblNpdGVEYXRhTWFuYWdlcjsKIGNsYXNzIFdlYlByZWZlcmVuY2VzOwogY2xh
c3MgV2ViUHJvdGVjdGlvblNwYWNlOworY2xhc3MgV2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJQ
cm94eTsKIGNsYXNzIFdlYlJlbmRlckxheWVyOwogY2xhc3MgV2ViUmVuZGVyT2JqZWN0OwogY2xh
c3MgV2ViVGV4dENoZWNrZXI7CkBAIC0xMzQsNiArMTM1LDcgQEAgV0tfQUREX0FQSV9NQVBQSU5H
KFdLUGFnZVJlZiwgV2ViUGFnZVByb3h5KQogV0tfQUREX0FQSV9NQVBQSU5HKFdLUGx1Z2luU2l0
ZURhdGFNYW5hZ2VyUmVmLCBXZWJQbHVnaW5TaXRlRGF0YU1hbmFnZXIpCiBXS19BRERfQVBJX01B
UFBJTkcoV0tQcmVmZXJlbmNlc1JlZiwgV2ViUHJlZmVyZW5jZXMpCiBXS19BRERfQVBJX01BUFBJ
TkcoV0tQcm90ZWN0aW9uU3BhY2VSZWYsIFdlYlByb3RlY3Rpb25TcGFjZSkKK1dLX0FERF9BUElf
TUFQUElORyhXS1JlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUmVmLCBXZWJSZWdpc3RlclByb3RvY29s
SGFuZGxlclByb3h5KQogV0tfQUREX0FQSV9NQVBQSU5HKFdLUmVuZGVyTGF5ZXJSZWYsIFdlYlJl
bmRlckxheWVyKQogV0tfQUREX0FQSV9NQVBQSU5HKFdLUmVuZGVyT2JqZWN0UmVmLCBXZWJSZW5k
ZXJPYmplY3QpCiBXS19BRERfQVBJX01BUFBJTkcoV0tUZXh0Q2hlY2tlclJlZiwgV2ViVGV4dENo
ZWNrZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250
ZXh0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwCmlu
ZGV4IDBiYTI3YjcuLjQ3NzJjNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQy9XS0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Qy9XS0NvbnRleHQuY3BwCkBAIC0yMjIsNiArMjIyLDE1IEBAIFdLUGx1Z2luU2l0ZURhdGFNYW5h
Z2VyUmVmIFdLQ29udGV4dEdldFBsdWdpblNpdGVEYXRhTWFuYWdlcihXS0NvbnRleHRSZWYgY29u
dGV4CiAgICAgcmV0dXJuIHRvQVBJKHRvSW1wbChjb250ZXh0UmVmKS0+cGx1Z2luU2l0ZURhdGFN
YW5hZ2VyKCkpOwogfQogCitXS1JlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUmVmIFdLQ29udGV4dEdl
dFJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyKFdLQ29udGV4dFJlZiBjb250ZXh0UmVmKQoreworI2lm
IEVOQUJMRShSRUdJU1RFUl9QUk9UT0NPTF9IQU5ETEVSKQorICAgIHJldHVybiB0b0FQSSh0b0lt
cGwoY29udGV4dFJlZiktPnJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJveHkoKSk7CisjZWxzZQor
ICAgIHJldHVybiAwOworI2VuZGlmCit9CisKIFdLUmVzb3VyY2VDYWNoZU1hbmFnZXJSZWYgV0tD
b250ZXh0R2V0UmVzb3VyY2VDYWNoZU1hbmFnZXIoV0tDb250ZXh0UmVmIGNvbnRleHRSZWYpCiB7
CiAgICAgcmV0dXJuIHRvQVBJKHRvSW1wbChjb250ZXh0UmVmKS0+cmVzb3VyY2VDYWNoZU1hbmFn
ZXJQcm94eSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9X
S0NvbnRleHQuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuaApp
bmRleCA5NjdkYWVhLi5jYzQ0N2E5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0MvV0tDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
L1dLQ29udGV4dC5oCkBAIC0xNTcsNiArMTU3LDcgQEAgV0tfRVhQT1JUIFdLTWVkaWFDYWNoZU1h
bmFnZXJSZWYgV0tDb250ZXh0R2V0TWVkaWFDYWNoZU1hbmFnZXIoV0tDb250ZXh0UmVmIGNvbnQK
IFdLX0VYUE9SVCBXS05ldHdvcmtJbmZvTWFuYWdlclJlZiBXS0NvbnRleHRHZXROZXR3b3JrSW5m
b01hbmFnZXIoV0tDb250ZXh0UmVmIGNvbnRleHQpOwogV0tfRVhQT1JUIFdLTm90aWZpY2F0aW9u
TWFuYWdlclJlZiBXS0NvbnRleHRHZXROb3RpZmljYXRpb25NYW5hZ2VyKFdLQ29udGV4dFJlZiBj
b250ZXh0KTsKIFdLX0VYUE9SVCBXS1BsdWdpblNpdGVEYXRhTWFuYWdlclJlZiBXS0NvbnRleHRH
ZXRQbHVnaW5TaXRlRGF0YU1hbmFnZXIoV0tDb250ZXh0UmVmIGNvbnRleHQpOworV0tfRVhQT1JU
IFdLUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJSZWYgV0tDb250ZXh0R2V0UmVnaXN0ZXJQcm90b2Nv
bEhhbmRsZXIoV0tDb250ZXh0UmVmIGNvbnRleHQpOwogV0tfRVhQT1JUIFdLUmVzb3VyY2VDYWNo
ZU1hbmFnZXJSZWYgV0tDb250ZXh0R2V0UmVzb3VyY2VDYWNoZU1hbmFnZXIoV0tDb250ZXh0UmVm
IGNvbnRleHQpOwogV0tfRVhQT1JUIFdLVmlicmF0aW9uUmVmIFdLQ29udGV4dEdldFZpYnJhdGlv
bihXS0NvbnRleHRSZWYgY29udGV4dCk7CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0MvV0tSZWdpc3RlclByb3RvY29sSGFuZGxlci5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tSZWdpc3RlclByb3RvY29sSGFuZGxlci5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDg1ZmIzZgotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1JlZ2lzdGVyUHJvdG9jb2xIYW5k
bGVyLmNwcApAQCAtMCwwICsxLDUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEludGVs
IENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiV0tSZWdpc3RlclByb3RvY29sSGFuZGxlci5oIgorCisjaWYg
RU5BQkxFKFJFR0lTVEVSX1BST1RPQ09MX0hBTkRMRVIpCisjaW5jbHVkZSAiV0tBUElDYXN0Lmgi
CisjaW5jbHVkZSAiV2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJQcm94eS5oIgorCit1c2luZyBu
YW1lc3BhY2UgV2ViS2l0OworI2VuZGlmIC8vIEVOQUJMRShSRUdJU1RFUl9QUk9UT0NPTF9IQU5E
TEVSKQorCitXS1R5cGVJRCBXS1JlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyR2V0VHlwZUlEKCkKK3sK
KyNpZiBFTkFCTEUoUkVHSVNURVJfUFJPVE9DT0xfSEFORExFUikKKyAgICByZXR1cm4gdG9BUEko
V2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJQcm94eTo6QVBJVHlwZSk7CisjZWxzZQorICAgIHJl
dHVybiAwOworI2VuZGlmCit9CisKK3ZvaWQgV0tSZWdpc3RlclByb3RvY29sSGFuZGxlclNldFBy
b3ZpZGVyKFdLUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJSZWYgcmVnaXN0ZXJQcm90b2NvbEhhbmRs
ZXJSZWYsIGNvbnN0IFdLUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJQcm92aWRlciogd2tQcm92aWRl
cikKK3sKKyNpZiBFTkFCTEUoUkVHSVNURVJfUFJPVE9DT0xfSEFORExFUikKKyAgICB0b0ltcGwo
cmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJSZWYpLT5pbml0aWFsaXplUHJvdmlkZXIod2tQcm92aWRl
cik7CisjZW5kaWYKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Qy9XS1JlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0MvV0tSZWdpc3RlclByb3RvY29sSGFuZGxlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLmZkNjI2N2QKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0MvV0tSZWdpc3RlclByb3RvY29sSGFuZGxlci5oCkBAIC0wLDAgKzEsNjUg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV0tSZWdpc3RlclByb3RvY29sSGFuZGxl
cl9oCisjZGVmaW5lIFdLUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJfaAorCisjaW5jbHVkZSA8V2Vi
S2l0Mi9XS0Jhc2UuaD4KKworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRp
ZgorCitlbnVtIHsKKyAgICBrV0tDdXN0b21IYW5kbGVyc05ldywKKyAgICBrV0tDdXN0b21IYW5k
bGVyc1JlZ2lzdGVyZWQsCisgICAga1dLQ3VzdG9tSGFuZGxlcnNEZWNsaW5lZAorfTsKK3R5cGVk
ZWYgdWludDMyX3QgV0tDdXN0b21IYW5kbGVyc1N0YXRlOworCit0eXBlZGVmIHZvaWQgKCpXS1Jl
Z2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJvdmlkZXJSZWdpc3RlckNhbGxiYWNrKShXS1JlZ2lzdGVy
UHJvdG9jb2xIYW5kbGVyUmVmIHJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUmVmLCBXS1N0cmluZ1Jl
ZiBzY2hlbWUsIFdLU3RyaW5nUmVmIGJhc2VVUkwsIFdLU3RyaW5nUmVmIHVybCwgV0tTdHJpbmdS
ZWYgdGl0bGUsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwordHlwZWRlZiBXS0N1c3RvbUhhbmRs
ZXJzU3RhdGUgKCpXS1JlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJvdmlkZXJJc1JlZ2lzdGVyZWRD
YWxsYmFjaykoV0tSZWdpc3RlclByb3RvY29sSGFuZGxlclJlZiByZWdpc3RlclByb3RvY29sSGFu
ZGxlclJlZiwgV0tTdHJpbmdSZWYgc2NoZW1lLCBXS1N0cmluZ1JlZiBiYXNlVVJMLCBXS1N0cmlu
Z1JlZiB1cmwsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwordHlwZWRlZiB2b2lkICgqV0tSZWdp
c3RlclByb3RvY29sSGFuZGxlclByb3ZpZGVyVW5yZWdpc3RlckNhbGxiYWNrKShXS1JlZ2lzdGVy
UHJvdG9jb2xIYW5kbGVyUmVmIHJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUmVmLCBXS1N0cmluZ1Jl
ZiBzY2hlbWUsIFdLU3RyaW5nUmVmIGJhc2VVUkwsIFdLU3RyaW5nUmVmIHVybCwgY29uc3Qgdm9p
ZCogY2xpZW50SW5mbyk7CisKK3N0cnVjdCBXS1JlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJvdmlk
ZXIgeworICAgIGludCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdmVyc2lvbjsKKyAgICBjb25zdCB2b2lkICogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsaWVu
dEluZm87CisgICAgV0tSZWdpc3RlclByb3RvY29sSGFuZGxlclByb3ZpZGVyUmVnaXN0ZXJDYWxs
YmFjayAgICAgICAgICAgICAgICAgICAgICByZWdpc3RlclByb3RvY29sSGFuZGxlcjsKKyAgICBX
S1JlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJvdmlkZXJJc1JlZ2lzdGVyZWRDYWxsYmFjayAgICAg
ICAgICAgICAgICAgIGlzUHJvdG9jb2xIYW5kbGVyUmVnaXN0ZXJlZDsKKyAgICBXS1JlZ2lzdGVy
UHJvdG9jb2xIYW5kbGVyUHJvdmlkZXJVbnJlZ2lzdGVyQ2FsbGJhY2sgICAgICAgICAgICAgICAg
ICAgIHVucmVnaXN0ZXJQcm90b2NvbEhhbmRsZXI7Cit9OwordHlwZWRlZiBzdHJ1Y3QgV0tSZWdp
c3RlclByb3RvY29sSGFuZGxlclByb3ZpZGVyIFdLUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJQcm92
aWRlcjsKKworZW51bSB7IGtXS1JlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJvdmlkZXJDdXJyZW50
VmVyc2lvbiA9IDAgfTsKKworV0tfRVhQT1JUIFdLVHlwZUlEIFdLUmVnaXN0ZXJQcm90b2NvbEhh
bmRsZXJHZXRUeXBlSUQoKTsKKworV0tfRVhQT1JUIHZvaWQgV0tSZWdpc3RlclByb3RvY29sSGFu
ZGxlclNldFByb3ZpZGVyKFdLUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJSZWYgcmVnaXN0ZXJQcm90
b2NvbEhhbmRsZXJSZWYsIGNvbnN0IFdLUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJQcm92aWRlciog
cHJvdmlkZXIpOworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorCisjZW5kaWYgLy8g
V0tSZWdpc3RlclByb3RvY29sSGFuZGxlcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29u
dGV4dC5jcHAKaW5kZXggYmMzYTI1YS4uZTI5OTUyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJDb250ZXh0LmNwcApAQCAtNzQsNiArNzQsMTAgQEAKICNpbmNsdWRlICJXZWJOZXR3b3Jr
SW5mb01hbmFnZXJQcm94eS5oIgogI2VuZGlmCiAKKyNpZiBFTkFCTEUoUkVHSVNURVJfUFJPVE9D
T0xfSEFORExFUikKKyNpbmNsdWRlICJXZWJSZWdpc3RlclByb3RvY29sSGFuZGxlclByb3h5Lmgi
CisjZW5kaWYKKwogI2lmIFVTRShTT1VQKQogI2luY2x1ZGUgIldlYlNvdXBSZXF1ZXN0TWFuYWdl
clByb3h5LmgiCiAjZW5kaWYKQEAgLTE0OCw2ICsxNTIsOSBAQCBXZWJDb250ZXh0OjpXZWJDb250
ZXh0KFByb2Nlc3NNb2RlbCBwcm9jZXNzTW9kZWwsIGNvbnN0IFN0cmluZyYgaW5qZWN0ZWRCdW5k
bGVQYQogI2VuZGlmCiAgICAgLCBtX25vdGlmaWNhdGlvbk1hbmFnZXJQcm94eShXZWJOb3RpZmlj
YXRpb25NYW5hZ2VyUHJveHk6OmNyZWF0ZSh0aGlzKSkKICAgICAsIG1fcGx1Z2luU2l0ZURhdGFN
YW5hZ2VyKFdlYlBsdWdpblNpdGVEYXRhTWFuYWdlcjo6Y3JlYXRlKHRoaXMpKQorI2lmIEVOQUJM
RShSRUdJU1RFUl9QUk9UT0NPTF9IQU5ETEVSKQorICAgICwgbV9yZWdpc3RlclByb3RvY29sSGFu
ZGxlclByb3h5KFdlYlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJveHk6OmNyZWF0ZSh0aGlzKSkK
KyNlbmRpZgogICAgICwgbV9yZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5KFdlYlJlc291cmNlQ2Fj
aGVNYW5hZ2VyUHJveHk6OmNyZWF0ZSh0aGlzKSkKICNpZiBVU0UoU09VUCkKICAgICAsIG1fc291
cFJlcXVlc3RNYW5hZ2VyUHJveHkoV2ViU291cFJlcXVlc3RNYW5hZ2VyUHJveHk6OmNyZWF0ZSh0
aGlzKSkKQEAgLTIzMCw2ICsyMzcsMTAgQEAgV2ViQ29udGV4dDo6fldlYkNvbnRleHQoKQogICAg
IG1fcGx1Z2luU2l0ZURhdGFNYW5hZ2VyLT5pbnZhbGlkYXRlKCk7CiAgICAgbV9wbHVnaW5TaXRl
RGF0YU1hbmFnZXItPmNsZWFyQ29udGV4dCgpOwogCisjaWYgRU5BQkxFKFJFR0lTVEVSX1BST1RP
Q09MX0hBTkRMRVIpCisgICAgbV9yZWdpc3RlclByb3RvY29sSGFuZGxlclByb3h5LT5jbGVhckNv
bnRleHQoKTsKKyNlbmRpZgorCiAgICAgbV9yZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5LT5pbnZh
bGlkYXRlKCk7CiAgICAgbV9yZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5LT5jbGVhckNvbnRleHQo
KTsKIApAQCAtNzYwLDYgKzc3MSwxMyBAQCB2b2lkIFdlYkNvbnRleHQ6OmRpZFJlY2VpdmVNZXNz
YWdlKFdlYlByb2Nlc3NQcm94eSogcHJvY2VzcywgQ29yZUlQQzo6TWVzc2FnZUlECiAgICAgICAg
IHJldHVybjsKICAgICB9CiAKKyNpZiBFTkFCTEUoUkVHSVNURVJfUFJPVE9DT0xfSEFORExFUikK
KyAgICBpZiAobWVzc2FnZUlELmlzPENvcmVJUEM6Ok1lc3NhZ2VDbGFzc1dlYlJlZ2lzdGVyUHJv
dG9jb2xIYW5kbGVyUHJveHk+KCkpIHsKKyAgICAgICAgbV9yZWdpc3RlclByb3RvY29sSGFuZGxl
clByb3h5LT5kaWRSZWNlaXZlTWVzc2FnZShwcm9jZXNzLT5jb25uZWN0aW9uKCksIG1lc3NhZ2VJ
RCwgYXJndW1lbnRzKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyNlbmRpZgorCiAgICAgaWYg
KG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJSZXNvdXJjZUNhY2hlTWFuYWdl
clByb3h5PigpKSB7CiAgICAgICAgIG1fcmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eS0+ZGlkUmVj
ZWl2ZVdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHlNZXNzYWdlKHByb2Nlc3MtPmNvbm5lY3Rp
b24oKSwgbWVzc2FnZUlELCBhcmd1bWVudHMpOwogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5oIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYkNvbnRleHQuaAppbmRleCBhNWVjY2U4Li4yMzljNzE3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmgKQEAgLTYzLDYgKzYzLDkgQEAgY2xhc3MgV2ViTmV0
d29ya0luZm9NYW5hZ2VyUHJveHk7CiBjbGFzcyBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHk7
CiBjbGFzcyBXZWJQYWdlR3JvdXA7CiBjbGFzcyBXZWJQYWdlUHJveHk7CisjaWYgRU5BQkxFKFJF
R0lTVEVSX1BST1RPQ09MX0hBTkRMRVIpCitjbGFzcyBXZWJSZWdpc3RlclByb3RvY29sSGFuZGxl
clByb3h5OworI2VuZGlmCiBjbGFzcyBXZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5OwogI2lm
IFVTRShTT1VQKQogY2xhc3MgV2ViU291cFJlcXVlc3RNYW5hZ2VyUHJveHk7CkBAIC0xODcsNiAr
MTkwLDkgQEAgcHVibGljOgogI2lmIEVOQUJMRShWSUJSQVRJT04pCiAgICAgV2ViVmlicmF0aW9u
UHJveHkqIHZpYnJhdGlvblByb3h5KCkgY29uc3QgeyByZXR1cm4gbV92aWJyYXRpb25Qcm94eS5n
ZXQoKTsgfQogI2VuZGlmCisjaWYgRU5BQkxFKFJFR0lTVEVSX1BST1RPQ09MX0hBTkRMRVIpCisg
ICAgV2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJQcm94eSogcmVnaXN0ZXJQcm90b2NvbEhhbmRs
ZXJQcm94eSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJQcm94eS5n
ZXQoKTsgfQorI2VuZGlmCiAKICAgICBzdHJ1Y3QgU3RhdGlzdGljcyB7CiAgICAgICAgIHVuc2ln
bmVkIHdrVmlld0NvdW50OwpAQCAtMzMwLDYgKzMzNiw5IEBAIHByaXZhdGU6CiAjZW5kaWYKICAg
ICBSZWZQdHI8V2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5PiBtX25vdGlmaWNhdGlvbk1hbmFn
ZXJQcm94eTsKICAgICBSZWZQdHI8V2ViUGx1Z2luU2l0ZURhdGFNYW5hZ2VyPiBtX3BsdWdpblNp
dGVEYXRhTWFuYWdlcjsKKyNpZiBFTkFCTEUoUkVHSVNURVJfUFJPVE9DT0xfSEFORExFUikKKyAg
ICBSZWZQdHI8V2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJQcm94eT4gbV9yZWdpc3RlclByb3Rv
Y29sSGFuZGxlclByb3h5OworI2VuZGlmCiAgICAgUmVmUHRyPFdlYlJlc291cmNlQ2FjaGVNYW5h
Z2VyUHJveHk+IG1fcmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eTsKICNpZiBVU0UoU09VUCkKICAg
ICBSZWZQdHI8V2ViU291cFJlcXVlc3RNYW5hZ2VyUHJveHk+IG1fc291cFJlcXVlc3RNYW5hZ2Vy
UHJveHk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1By
b3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCmlu
ZGV4IDFmZGQzOWMuLmUyOGJjMmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
cm9jZXNzUHJveHkuY3BwCkBAIC0zMjYsNiArMzI2LDkgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6
OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJ
UEMKICAgICAgICAgfHwgbWVzc2FnZUlELmlzPENvcmVJUEM6Ok1lc3NhZ2VDbGFzc1dlYk5ldHdv
cmtJbmZvTWFuYWdlclByb3h5PigpCiAjZW5kaWYKICAgICAgICAgfHwgbWVzc2FnZUlELmlzPENv
cmVJUEM6Ok1lc3NhZ2VDbGFzc1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eT4oKQorI2lmIEVO
QUJMRShSRUdJU1RFUl9QUk9UT0NPTF9IQU5ETEVSKQorICAgICAgICB8fCBtZXNzYWdlSUQuaXM8
Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJQcm94eT4oKQor
I2VuZGlmCiAjaWYgVVNFKFNPVVApCiAgICAgICAgIHx8IG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpN
ZXNzYWdlQ2xhc3NXZWJTb3VwUmVxdWVzdE1hbmFnZXJQcm94eT4oKQogI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJQ
cm92aWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUmVnaXN0ZXJQcm90b2Nv
bEhhbmRsZXJQcm92aWRlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
YzQ1OGE1ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJS
ZWdpc3RlclByb3RvY29sSGFuZGxlclByb3ZpZGVyLmNwcApAQCAtMCwwICsxLDY0IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDEyIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViUmVnaXN0
ZXJQcm90b2NvbEhhbmRsZXJQcm92aWRlci5oIgorCisjaWYgRU5BQkxFKFJFR0lTVEVSX1BST1RP
Q09MX0hBTkRMRVIpCisKKyNpbmNsdWRlICJXS0FQSUNhc3QuaCIKKyNpbmNsdWRlICJXZWJSZWdp
c3RlclByb3RvY29sSGFuZGxlclByb3h5LmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCit2b2lk
IFdlYlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJvdmlkZXI6OnJlZ2lzdGVyUHJvdG9jb2xIYW5k
bGVyKFdlYlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJveHkqIHByb3h5LCBjb25zdCBTdHJpbmcm
IHNjaGVtZSwgY29uc3QgU3RyaW5nJiBiYXNlVVJMLCBjb25zdCBTdHJpbmcmIHVybCwgY29uc3Qg
U3RyaW5nJiB0aXRsZSkKK3sKKyAgICBpZiAoIW1fY2xpZW50LnJlZ2lzdGVyUHJvdG9jb2xIYW5k
bGVyKQorICAgICAgICByZXR1cm47CisKKyAgICBtX2NsaWVudC5yZWdpc3RlclByb3RvY29sSGFu
ZGxlcih0b0FQSShwcm94eSksIHRvQVBJKHNjaGVtZS5pbXBsKCkpLCB0b0FQSShiYXNlVVJMLmlt
cGwoKSksIHRvQVBJKHVybC5pbXBsKCkpLCB0b0FQSSh0aXRsZS5pbXBsKCkpLCBtX2NsaWVudC5j
bGllbnRJbmZvKTsKK30KKworI2lmIEVOQUJMRShDVVNUT01fU0NIRU1FX0hBTkRMRVIpCit2b2lk
IFdlYlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJvdmlkZXI6OmlzUHJvdG9jb2xIYW5kbGVyUmVn
aXN0ZXJlZChXZWJSZWdpc3RlclByb3RvY29sSGFuZGxlclByb3h5KiBwcm94eSwgY29uc3QgU3Ry
aW5nJiBzY2hlbWUsIGNvbnN0IFN0cmluZyYgYmFzZVVSTCwgY29uc3QgU3RyaW5nJiB1cmwsIHVp
bnQzMl90JiByZXN1bHQpCit7CisgICAgaWYgKCFtX2NsaWVudC5pc1Byb3RvY29sSGFuZGxlclJl
Z2lzdGVyZWQpCisgICAgICAgIHJldHVybjsKKworICAgIHJlc3VsdCA9IG1fY2xpZW50LmlzUHJv
dG9jb2xIYW5kbGVyUmVnaXN0ZXJlZCh0b0FQSShwcm94eSksIHRvQVBJKHNjaGVtZS5pbXBsKCkp
LCB0b0FQSShiYXNlVVJMLmltcGwoKSksIHRvQVBJKHVybC5pbXBsKCkpLCBtX2NsaWVudC5jbGll
bnRJbmZvKTsKK30KKwordm9pZCBXZWJSZWdpc3RlclByb3RvY29sSGFuZGxlclByb3ZpZGVyOjp1
bnJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyKFdlYlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJveHkq
IHByb3h5LCBjb25zdCBTdHJpbmcmIHNjaGVtZSwgY29uc3QgU3RyaW5nJiBiYXNlVVJMLCBjb25z
dCBTdHJpbmcmIHVybCkKK3sKKyAgICBpZiAoIW1fY2xpZW50LnVucmVnaXN0ZXJQcm90b2NvbEhh
bmRsZXIpCisgICAgICAgIHJldHVybjsKKworICAgIG1fY2xpZW50LnVucmVnaXN0ZXJQcm90b2Nv
bEhhbmRsZXIodG9BUEkocHJveHkpLCB0b0FQSShzY2hlbWUuaW1wbCgpKSwgdG9BUEkoYmFzZVVS
TC5pbXBsKCkpLCB0b0FQSSh1cmwuaW1wbCgpKSwgbV9jbGllbnQuY2xpZW50SW5mbyk7Cit9Cisj
ZW5kaWYgLy8gRU5BQkxFKENVU1RPTV9TQ0hFTUVfSEFORExFUikKKworfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoUkVHSVNURVJfUFJPVE9DT0xfSEFORExFUikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJSZWdpc3RlclByb3RvY29sSGFu
ZGxlclByb3ZpZGVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUmVnaXN0ZXJQcm90
b2NvbEhhbmRsZXJQcm92aWRlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LjI1Y2M0N2YKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
UmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJQcm92aWRlci5oCkBAIC0wLDAgKzEsNTIgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTIgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpZm5kZWYgV2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJQcm92aWRl
cl9oCisjZGVmaW5lIFdlYlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJvdmlkZXJfaAorCisjaWYg
RU5BQkxFKFJFR0lTVEVSX1BST1RPQ09MX0hBTkRMRVIpCisKKyNpbmNsdWRlICJBUElDbGllbnQu
aCIKKyNpbmNsdWRlICJXS1JlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyLmgiCisjaW5jbHVkZSA8d3Rm
L0ZvcndhcmQuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlJlZ2lzdGVyUHJv
dG9jb2xIYW5kbGVyUHJveHk7CisKK2NsYXNzIFdlYlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJv
dmlkZXIgOiBwdWJsaWMgQVBJQ2xpZW50PFdLUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJQcm92aWRl
ciwga1dLUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJQcm92aWRlckN1cnJlbnRWZXJzaW9uPiB7Citw
dWJsaWM6CisgICAgdm9pZCByZWdpc3RlclByb3RvY29sSGFuZGxlcihXZWJSZWdpc3RlclByb3Rv
Y29sSGFuZGxlclByb3h5KiwgY29uc3QgU3RyaW5nJiBzY2hlbWUsIGNvbnN0IFN0cmluZyYgYmFz
ZVVSTCwgY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0cmluZyYgdGl0bGUpOworCisjaWYgRU5B
QkxFKENVU1RPTV9TQ0hFTUVfSEFORExFUikKKyAgICB2b2lkIGlzUHJvdG9jb2xIYW5kbGVyUmVn
aXN0ZXJlZChXZWJSZWdpc3RlclByb3RvY29sSGFuZGxlclByb3h5KiwgY29uc3QgU3RyaW5nJiBz
Y2hlbWUsIGNvbnN0IFN0cmluZyYgYmFzZVVSTCwgY29uc3QgU3RyaW5nJiB1cmwsIHVpbnQzMl90
JiByZXN1bHQpOworICAgIHZvaWQgdW5yZWdpc3RlclByb3RvY29sSGFuZGxlcihXZWJSZWdpc3Rl
clByb3RvY29sSGFuZGxlclByb3h5KiwgY29uc3QgU3RyaW5nJiBzY2hlbWUsIGNvbnN0IFN0cmlu
ZyYgYmFzZVVSTCwgY29uc3QgU3RyaW5nJiB1cmwpOworI2VuZGlmIC8vIEVOQUJMRShDVVNUT01f
U0NIRU1FX0hBTkRMRVIpCit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8v
IEVOQUJMRShSRUdJU1RFUl9QUk9UT0NPTF9IQU5ETEVSKQorI2VuZGlmIC8vIFdlYlJlZ2lzdGVy
UHJvdG9jb2xIYW5kbGVyUHJvdmlkZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJveHkuY3BwIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJveHkuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBkNjMxNTkKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJQcm94eS5j
cHAKQEAgLTAsMCArMSw3OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBJbnRlbCBDb3Jw
b3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIldlYlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJveHkuaCIKKworI2lm
IEVOQUJMRShSRUdJU1RFUl9QUk9UT0NPTF9IQU5ETEVSKQorCisjaW5jbHVkZSAiV2ViQ29udGV4
dC5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworUGFzc1JlZlB0cjxXZWJSZWdpc3RlclByb3Rv
Y29sSGFuZGxlclByb3h5PiBXZWJSZWdpc3RlclByb3RvY29sSGFuZGxlclByb3h5OjpjcmVhdGUo
V2ViQ29udGV4dCogY29udGV4dCkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYlJlZ2lz
dGVyUHJvdG9jb2xIYW5kbGVyUHJveHkoY29udGV4dCkpOworfQorCitXZWJSZWdpc3RlclByb3Rv
Y29sSGFuZGxlclByb3h5OjpXZWJSZWdpc3RlclByb3RvY29sSGFuZGxlclByb3h5KFdlYkNvbnRl
eHQqIGNvbnRleHQpCisgICAgOiBtX2NvbnRleHQoY29udGV4dCkKK3sKK30KKworV2ViUmVnaXN0
ZXJQcm90b2NvbEhhbmRsZXJQcm94eTo6fldlYlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJveHko
KQoreworfQorCit2b2lkIFdlYlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJveHk6OmluaXRpYWxp
emVQcm92aWRlcihjb25zdCBXS1JlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJvdmlkZXIqIHByb3Zp
ZGVyKQoreworICAgIG1fcHJvdmlkZXIuaW5pdGlhbGl6ZShwcm92aWRlcik7Cit9CisKK3ZvaWQg
V2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJQcm94eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQ
Qzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwg
Q29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMpCit7CisgICAgZGlkUmVjZWl2ZVdl
YlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJveHlNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJ
RCwgYXJndW1lbnRzKTsKK30KKwordm9pZCBXZWJSZWdpc3RlclByb3RvY29sSGFuZGxlclByb3h5
OjpyZWdpc3RlclByb3RvY29sSGFuZGxlcihjb25zdCBTdHJpbmcmIHNjaGVtZSwgY29uc3QgU3Ry
aW5nJiBiYXNlVVJMLCBjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgU3RyaW5nJiB0aXRsZSkKK3sK
KyAgICBtX3Byb3ZpZGVyLnJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyKHRoaXMsIHNjaGVtZSwgYmFz
ZVVSTCwgdXJsLCB0aXRsZSk7Cit9CisKKyNpZiBFTkFCTEUoQ1VTVE9NX1NDSEVNRV9IQU5ETEVS
KQordm9pZCBXZWJSZWdpc3RlclByb3RvY29sSGFuZGxlclByb3h5Ojppc1Byb3RvY29sSGFuZGxl
clJlZ2lzdGVyZWQoY29uc3QgU3RyaW5nJiBzY2hlbWUsIGNvbnN0IFN0cmluZyYgYmFzZVVSTCwg
Y29uc3QgU3RyaW5nJiB1cmwsIHVpbnQzMl90JiByZXN1bHQpCit7CisgICAgIG1fcHJvdmlkZXIu
aXNQcm90b2NvbEhhbmRsZXJSZWdpc3RlcmVkKHRoaXMsIHNjaGVtZSwgYmFzZVVSTCwgdXJsLCBy
ZXN1bHQpOworfQorCit2b2lkIFdlYlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJveHk6OnVucmVn
aXN0ZXJQcm90b2NvbEhhbmRsZXIoY29uc3QgU3RyaW5nJiBzY2hlbWUsIGNvbnN0IFN0cmluZyYg
YmFzZVVSTCwgY29uc3QgU3RyaW5nJiB1cmwpCit7CisgICAgIG1fcHJvdmlkZXIudW5yZWdpc3Rl
clByb3RvY29sSGFuZGxlcih0aGlzLCBzY2hlbWUsIGJhc2VVUkwsIHVybCk7Cit9CisjZW5kaWYg
Ly8gRU5BQkxFKENVU1RPTV9TQ0hFTUVfSEFORExFUikKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CisKKyNlbmRpZiAvLyBFTkFCTEUoUkVHSVNURVJfUFJPVE9DT0xfSEFORExFUikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJSZWdpc3RlclByb3RvY29sSGFuZGxlclBy
b3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRs
ZXJQcm94eS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY1MDAzMDEKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUmVnaXN0ZXJQcm90
b2NvbEhhbmRsZXJQcm94eS5oCkBAIC0wLDAgKzEsODIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTIgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpZm5kZWYgV2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJQcm94eV9oCisjZGVmaW5lIFdlYlJl
Z2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJveHlfaAorCisjaWYgRU5BQkxFKFJFR0lTVEVSX1BST1RP
Q09MX0hBTkRMRVIpCisKKyNpbmNsdWRlICJBUElPYmplY3QuaCIKKyNpbmNsdWRlICJNZXNzYWdl
SUQuaCIKKyNpbmNsdWRlICJXZWJSZWdpc3RlclByb3RvY29sSGFuZGxlclByb3ZpZGVyLmgiCisj
aW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKworbmFtZXNwYWNlIENvcmVJUEMgeworY2xhc3MgQXJn
dW1lbnRFbmNvZGVyOworY2xhc3MgQXJndW1lbnREZWNvZGVyOworY2xhc3MgQ29ubmVjdGlvbjsK
K30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYkNvbnRleHQ7CisKK2NsYXNzIFdl
YlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJveHkgOiBwdWJsaWMgQVBJT2JqZWN0IHsKK3B1Ymxp
YzoKKyAgICBzdGF0aWMgY29uc3QgVHlwZSBBUElUeXBlID0gVHlwZVJlZ2lzdGVyUHJvdG9jb2xI
YW5kbGVyOworCisgICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRs
ZXJQcm94eT4gY3JlYXRlKFdlYkNvbnRleHQqKTsKKyAgICB2aXJ0dWFsIH5XZWJSZWdpc3RlclBy
b3RvY29sSGFuZGxlclByb3h5KCk7CisKKyAgICB2b2lkIGNsZWFyQ29udGV4dCgpIHsgbV9jb250
ZXh0ID0gMDsgfQorCisgICAgdm9pZCBpbml0aWFsaXplUHJvdmlkZXIoY29uc3QgV0tSZWdpc3Rl
clByb3RvY29sSGFuZGxlclByb3ZpZGVyKik7CisKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdl
KENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3Vt
ZW50RGVjb2RlciopOworCitwcml2YXRlOgorICAgIGV4cGxpY2l0IFdlYlJlZ2lzdGVyUHJvdG9j
b2xIYW5kbGVyUHJveHkoV2ViQ29udGV4dCopOworCisgICAgdmlydHVhbCBUeXBlIHR5cGUoKSBj
b25zdCB7IHJldHVybiBBUElUeXBlOyB9CisKKyAgICAvLyBJbXBsZW1lbnRlZCBpbiBnZW5lcmF0
ZWQgV2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKKyAg
ICB2b2lkIGRpZFJlY2VpdmVXZWJSZWdpc3RlclByb3RvY29sSGFuZGxlclByb3h5TWVzc2FnZShD
b3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVu
dERlY29kZXIqKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVTeW5jV2ViUmVnaXN0ZXJQcm90b2NvbEhh
bmRsZXJQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJ
RCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiwgT3duUHRyPENvcmVJUEM6OkFyZ3VtZW50RW5j
b2Rlcj4mKTsKKworICAgIHZvaWQgcmVnaXN0ZXJQcm90b2NvbEhhbmRsZXIoY29uc3QgU3RyaW5n
JiBzY2hlbWUsIGNvbnN0IFN0cmluZyYgYmFzZVVSTCwgY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0
IFN0cmluZyYgdGl0bGUpOworI2lmIEVOQUJMRShDVVNUT01fU0NIRU1FX0hBTkRMRVIpCisgICAg
dm9pZCBpc1Byb3RvY29sSGFuZGxlclJlZ2lzdGVyZWQoY29uc3QgU3RyaW5nJiBzY2hlbWUsIGNv
bnN0IFN0cmluZyYgYmFzZVVSTCwgY29uc3QgU3RyaW5nJiB1cmwsIHVpbnQzMl90JiByZXN1bHQp
OworICAgIHZvaWQgdW5yZWdpc3RlclByb3RvY29sSGFuZGxlcihjb25zdCBTdHJpbmcmIHNjaGVt
ZSwgY29uc3QgU3RyaW5nJiBiYXNlVVJMLCBjb25zdCBTdHJpbmcmIHVybCk7CisjZW5kaWYgLy8g
RU5BQkxFKENVU1RPTV9TQ0hFTUVfSEFORExFUikKKworICAgIFdlYkNvbnRleHQqIG1fY29udGV4
dDsKKyAgICBXZWJSZWdpc3RlclByb3RvY29sSGFuZGxlclByb3ZpZGVyIG1fcHJvdmlkZXI7Cit9
OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShSRUdJU1RFUl9Q
Uk9UT0NPTF9IQU5ETEVSKQorCisjZW5kaWYgLy8gV2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJQ
cm94eV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUmVnaXN0ZXJQ
cm90b2NvbEhhbmRsZXJQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJSZWdpc3RlclByb3RvY29sSGFuZGxlclByb3h5Lm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZhNGFjODEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJQcm94eS5tZXNz
YWdlcy5pbgpAQCAtMCwwICsxLDMzIEBACisjIENvcHlyaWdodCAoQykgMjAxMiBJbnRlbCBDb3Jw
b3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisj
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFO
RAorIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisjIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SCisjIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyMgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyMgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIKKyMgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyMgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKworI2lmIEVOQUJMRShSRUdJU1RFUl9QUk9UT0NPTF9IQU5ETEVSKQor
CittZXNzYWdlcyAtPiBXZWJSZWdpc3RlclByb3RvY29sSGFuZGxlclByb3h5IHsKKyAgICBSZWdp
c3RlclByb3RvY29sSGFuZGxlcihXVEY6OlN0cmluZyBzY2hlbWUsIFdURjo6U3RyaW5nIGJhc2VV
UkwsIFdURjo6U3RyaW5nIHVybCwgV1RGOjpTdHJpbmcgdGl0bGUpCisjaWYgRU5BQkxFKENVU1RP
TV9TQ0hFTUVfSEFORExFUikKKyAgICBJc1Byb3RvY29sSGFuZGxlclJlZ2lzdGVyZWQoV1RGOjpT
dHJpbmcgc2NoZW1lLCBXVEY6OlN0cmluZyBiYXNlVVJMLCBXVEY6OlN0cmluZyB1cmwpIC0+ICh1
aW50MzJfdCByZXN1bHQpCisgICAgVW5yZWdpc3RlclByb3RvY29sSGFuZGxlcihXVEY6OlN0cmlu
ZyBzY2hlbWUsIFdURjo6U3RyaW5nIGJhc2VVUkwsIFdURjo6U3RyaW5nIHVybCkKKyNlbmRpZiAv
LyBFTkFCTEUoQ1VTVE9NX1NDSEVNRV9IQU5ETEVSKQorfQorCisjZW5kaWYgLy8gRU5BQkxFKFJF
R0lTVEVSX1BST1RPQ09MX0hBTkRMRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyQ2xpZW50LmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUmVnaXN0ZXJQ
cm90b2NvbEhhbmRsZXJDbGllbnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLmE2YzkwN2UKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyQ2xpZW50LmNwcApAQCAt
MCwwICsxLDczIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEludGVsIENvcnBvcmF0aW9u
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiV2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJDbGllbnQuaCIKKworI2lmIEVOQUJM
RShSRUdJU1RFUl9QUk9UT0NPTF9IQU5ETEVSKQorCisjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgor
I2luY2x1ZGUgIldlYlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJveHlNZXNzYWdlcy5oIgorCit1
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKK3VzaW5nIG5hbWVzcGFjZSBNZXNzYWdlczo6V2ViUmVn
aXN0ZXJQcm90b2NvbEhhbmRsZXJQcm94eTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3ZvaWQg
V2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJDbGllbnQ6OnJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVy
KGNvbnN0IFN0cmluZyYgc2NoZW1lLCBjb25zdCBTdHJpbmcmIGJhc2VVUkwsIGNvbnN0IFN0cmlu
ZyYgdXJsLCBjb25zdCBTdHJpbmcmIHRpdGxlKQoreworICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgp
LmNvbm5lY3Rpb24oKS0+c2VuZChSZWdpc3RlclByb3RvY29sSGFuZGxlcihzY2hlbWUsIGJhc2VV
UkwsIHVybCwgdGl0bGUpLCAwKTsKK30KKworI2lmIEVOQUJMRShDVVNUT01fU0NIRU1FX0hBTkRM
RVIpCitzdGF0aWMgaW5saW5lIFJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyQ2xpZW50OjpDdXN0b21I
YW5kbGVyc1N0YXRlIHRvQ3VzdG9tSGFuZGxlcnNTdGF0ZShjb25zdCB1aW50MzJfdCBzdGF0ZSkK
K3sKKyAgICBzd2l0Y2ggKHN0YXRlKSB7CisgICAgY2FzZSBSZWdpc3RlclByb3RvY29sSGFuZGxl
ckNsaWVudDo6Q3VzdG9tSGFuZGxlcnNOZXc6CisgICAgY2FzZSBSZWdpc3RlclByb3RvY29sSGFu
ZGxlckNsaWVudDo6Q3VzdG9tSGFuZGxlcnNSZWdpc3RlcmVkOgorICAgIGNhc2UgUmVnaXN0ZXJQ
cm90b2NvbEhhbmRsZXJDbGllbnQ6OkN1c3RvbUhhbmRsZXJzRGVjbGluZWQ6CisgICAgICAgIHJl
dHVybiBzdGF0aWNfY2FzdDxSZWdpc3RlclByb3RvY29sSGFuZGxlckNsaWVudDo6Q3VzdG9tSGFu
ZGxlcnNTdGF0ZT4oc3RhdGUpOworICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOworICAgICAgICByZXR1cm4gUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJDbGllbnQ6OkN1
c3RvbUhhbmRsZXJzRGVjbGluZWQ7CisgICAgfQorfQorCitSZWdpc3RlclByb3RvY29sSGFuZGxl
ckNsaWVudDo6Q3VzdG9tSGFuZGxlcnNTdGF0ZSBXZWJSZWdpc3RlclByb3RvY29sSGFuZGxlckNs
aWVudDo6aXNQcm90b2NvbEhhbmRsZXJSZWdpc3RlcmVkKGNvbnN0IFN0cmluZyYgc2NoZW1lLCBj
b25zdCBTdHJpbmcmIGJhc2VVUkwsIGNvbnN0IFN0cmluZyYgdXJsKQoreworICAgIHVpbnQzMl90
IHJlc3VsdCA9IHN0YXRpY19jYXN0PHVpbnQzMl90PihSZWdpc3RlclByb3RvY29sSGFuZGxlckNs
aWVudDo6Q3VzdG9tSGFuZGxlcnNOZXcpOworICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLmNvbm5l
Y3Rpb24oKS0+c2VuZFN5bmMoSXNQcm90b2NvbEhhbmRsZXJSZWdpc3RlcmVkKHNjaGVtZSwgYmFz
ZVVSTCwgdXJsKSwgSXNQcm90b2NvbEhhbmRsZXJSZWdpc3RlcmVkOjpSZXBseShyZXN1bHQpLCAw
KTsKKyAgICByZXR1cm4gdG9DdXN0b21IYW5kbGVyc1N0YXRlKHJlc3VsdCk7Cit9CisKK3ZvaWQg
V2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJDbGllbnQ6OnVucmVnaXN0ZXJQcm90b2NvbEhhbmRs
ZXIoY29uc3QgU3RyaW5nJiBzY2hlbWUsIGNvbnN0IFN0cmluZyYgYmFzZVVSTCwgY29uc3QgU3Ry
aW5nJiB1cmwpCit7CisgICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkuY29ubmVjdGlvbigpLT5zZW5k
KFVucmVnaXN0ZXJQcm90b2NvbEhhbmRsZXIoc2NoZW1lLCBiYXNlVVJMLCB1cmwpLCAwKTsKK30K
KyNlbmRpZiAvLyBFTkFCTEUoQ1VTVE9NX1NDSEVNRV9IQU5ETEVSKQorCit9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShSRUdJU1RFUl9QUk9UT0NPTF9IQU5ETEVSKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJS
ZWdpc3RlclByb3RvY29sSGFuZGxlckNsaWVudC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJSZWdpc3RlclByb3RvY29sSGFuZGxlckNsaWVudC5oCmluZGV4
IDYzZjE5OTAuLjgyODNhYWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJDbGllbnQuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlJlZ2lzdGVyUHJvdG9j
b2xIYW5kbGVyQ2xpZW50LmgKQEAgLTM4LDExICszOCwxMSBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCB+V2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJDbGllbnQoKSB7IH0KIAogcHJpdmF0ZToKLSAg
ICB2aXJ0dWFsIHZvaWQgcmVnaXN0ZXJQcm90b2NvbEhhbmRsZXIoY29uc3QgU3RyaW5nJiBzY2hl
bWUsIGNvbnN0IFN0cmluZyYgYmFzZVVSTCwgY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0cmlu
ZyYgdGl0bGUpIE9WRVJSSURFIHsgfQorICAgIHZpcnR1YWwgdm9pZCByZWdpc3RlclByb3RvY29s
SGFuZGxlcihjb25zdCBTdHJpbmcmIHNjaGVtZSwgY29uc3QgU3RyaW5nJiBiYXNlVVJMLCBjb25z
dCBTdHJpbmcmIHVybCwgY29uc3QgU3RyaW5nJiB0aXRsZSkgT1ZFUlJJREU7CiAKICNpZiBFTkFC
TEUoQ1VTVE9NX1NDSEVNRV9IQU5ETEVSKQotICAgIHZpcnR1YWwgQ3VzdG9tSGFuZGxlcnNTdGF0
ZSBpc1Byb3RvY29sSGFuZGxlclJlZ2lzdGVyZWQoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5n
JiwgY29uc3QgU3RyaW5nJikgeyByZXR1cm4gQ3VzdG9tSGFuZGxlcnNEZWNsaW5lZDsgfQotICAg
IHZpcnR1YWwgdm9pZCB1bnJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyKGNvbnN0IFN0cmluZyYsIGNv
bnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpIHsgfQorICAgIHZpcnR1YWwgQ3VzdG9tSGFuZGxl
cnNTdGF0ZSBpc1Byb3RvY29sSGFuZGxlclJlZ2lzdGVyZWQoY29uc3QgU3RyaW5nJiwgY29uc3Qg
U3RyaW5nJiwgY29uc3QgU3RyaW5nJik7CisgICAgdmlydHVhbCB2b2lkIHVucmVnaXN0ZXJQcm90
b2NvbEhhbmRsZXIoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJik7
CiAjZW5kaWYKIH07CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>158093</attachid>
            <date>2012-08-13 13:50:05 -0700</date>
            <delta_ts>2012-08-27 02:36:42 -0700</delta_ts>
            <desc>patch v4</desc>
            <filename>bug92749_v4</filename>
            <type>text/plain</type>
            <size>45859</size>
            <attacher name="Mikhail Pozdnyakov">mikhail.pozdnyakov</attacher>
            
              <data encoding="base64">Y29tbWl0IDM2MmI0YTIzZWZlNmUzNGE5NTJmYmFhMGRmZmQ0NjBjZDRkY2VjZDEKQXV0aG9yOiBN
aWtoYWlsIFBvemRueWFrb3YgPG1pa2hhaWwucG96ZG55YWtvdkBpbnRlbC5jb20+CkRhdGU6ICAg
V2VkIEF1ZyAxIDE5OjE3OjQwIDIwMTIgKzAzMDAKCiAgICBidWc5Mjc0OQoKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0
cy50eHQKaW5kZXggMDY0NDBiMi4uOWRhMzVjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
Q01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQKQEAgLTI3
Myw2ICsyNzMsOCBAQCBTRVQoV2ViS2l0Ml9TT1VSQ0VTCiAgICAgVUlQcm9jZXNzL1dlYlBvbGlj
eUNsaWVudC5jcHAKICAgICBVSVByb2Nlc3MvV2ViUHJlZmVyZW5jZXMuY3BwCiAgICAgVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKKyAgICBVSVByb2Nlc3MvV2ViUmVnaXN0ZXJQcm90b2Nv
bEhhbmRsZXJQcm92aWRlci5jcHAKKyAgICBVSVByb2Nlc3MvV2ViUmVnaXN0ZXJQcm90b2NvbEhh
bmRsZXJQcm94eS5jcHAKICAgICBVSVByb2Nlc3MvV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94
eS5jcHAKICAgICBVSVByb2Nlc3MvV2ViUmVzb3VyY2VMb2FkQ2xpZW50LmNwcAogICAgIFVJUHJv
Y2Vzcy9XZWJUZXh0Q2hlY2tlci5jcHAKQEAgLTMyMCw2ICszMjIsNyBAQCBTRVQoV2ViS2l0Ml9T
T1VSQ0VTCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLUGx1Z2luU2l0ZURhdGFNYW5hZ2VyLmNwcAog
ICAgIFVJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcAogICAgIFVJUHJvY2Vzcy9BUEkv
Qy9XS1Byb3RlY3Rpb25TcGFjZS5jcHAKKyAgICBVSVByb2Nlc3MvQVBJL0MvV0tSZWdpc3RlclBy
b3RvY29sSGFuZGxlci5jcHAKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tSZXNvdXJjZUNhY2hlTWFu
YWdlci5jcHAKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tUZXh0Q2hlY2tlci5jcHAKICAgICBVSVBy
b2Nlc3MvQVBJL0MvV0tWaWJyYXRpb24uY3BwCkBAIC00NTQsNiArNDU3LDcgQEAgU0VUKFdlYktp
dDJfU09VUkNFUwogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9u
Q2xpZW50LmNwcAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJh
dGVnaWVzLmNwcAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUG9wdXBNZW51LmNw
cAorICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRs
ZXJDbGllbnQuY3BwCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTZWFyY2hQb3B1
cE1lbnUuY3BwCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJWaWJyYXRpb25DbGll
bnQuY3BwCiAKQEAgLTUwNCw2ICs1MDgsNyBAQCBTRVQoV2ViS2l0Ml9NRVNTQUdFU19JTl9GSUxF
UwogICAgIFVJUHJvY2Vzcy9XZWJOZXR3b3JrSW5mb01hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgog
ICAgIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KICAgICBVSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCisgICAgVUlQcm9jZXNzL1dlYlJlZ2lzdGVyUHJvdG9j
b2xIYW5kbGVyUHJveHkubWVzc2FnZXMuaW4KICAgICBVSVByb2Nlc3MvV2ViUmVzb3VyY2VDYWNo
ZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgogICAgIFVJUHJvY2Vzcy9XZWJWaWJyYXRpb25Qcm94
eS5tZXNzYWdlcy5pbgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYmY1NzlkNi4uYWNiNmMyYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDczIEBACisyMDEyLTA4LTA4ICBNaWtoYWlsIFBvemRueWFrb3YgIDxtaWto
YWlsLnBvemRueWFrb3ZAaW50ZWwuY29tPgorCisgICAgICAgIFtXSzJdIEFkZCBQcm90b2NvbCBI
YW5kbGVyIEFQSSBzdXBwb3J0IGZvciBXZWJLaXQyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD05Mjc0OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIHN1cHBvcnQgb2YgUmVnaXN0ZXIgUHJvdG9jb2wg
SGFuZGxlciBBUEkuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJp
dmVkU291cmNlcy5wcmk6CisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAg
KiBQbGF0Zm9ybS9Db3JlSVBDL01lc3NhZ2VJRC5oOgorICAgICAgICAqIFNoYXJlZC9BUEkvYy9X
S0Jhc2UuaDoKKyAgICAgICAgKiBTaGFyZWQvQVBJT2JqZWN0Lmg6CisgICAgICAgICogVGFyZ2V0
LnByaToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0Lmg6CisgICAgICAgIChX
ZWJLaXQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwOgorICAgICAg
ICAoV0tDb250ZXh0R2V0UmVnaXN0ZXJQcm90b2NvbEhhbmRsZXIpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvQy9XS0NvbnRleHQuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tSZWdp
c3RlclByb3RvY29sSGFuZGxlci5jcHA6IEFkZGVkLgorICAgICAgICAoV0tSZWdpc3RlclByb3Rv
Y29sSGFuZGxlckdldFR5cGVJRCk6CisgICAgICAgIChXS1JlZ2lzdGVyUHJvdG9jb2xIYW5kbGVy
U2V0UHJvdmlkZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1JlZ2lzdGVyUHJvdG9j
b2xIYW5kbGVyLmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dDo6V2ViQ29udGV4dCk6CisgICAgICAgIChXZWJL
aXQ6OldlYkNvbnRleHQ6On5XZWJDb250ZXh0KToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4
dDo6ZGlzY29ubmVjdFByb2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0OjpkaWRS
ZWNlaXZlTWVzc2FnZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkNvbnRleHQuaDoKKyAgICAg
ICAgKFdlYktpdCk6CisgICAgICAgIChXZWJDb250ZXh0KToKKyAgICAgICAgKFdlYktpdDo6V2Vi
Q29udGV4dDo6cmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJQcm94eSk6CisgICAgICAgICogVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94
eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJSZWdpc3RlclBy
b3RvY29sSGFuZGxlclByb3ZpZGVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJSZWdpc3RlclByb3RvY29sSGFuZGxlclByb3ZpZGVyOjpyZWdpc3Rl
clByb3RvY29sSGFuZGxlcik6CisgICAgICAgIChXZWJLaXQ6OldlYlJlZ2lzdGVyUHJvdG9jb2xI
YW5kbGVyUHJvdmlkZXI6OmlzUHJvdG9jb2xIYW5kbGVyUmVnaXN0ZXJlZCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJvdmlkZXI6OnVucmVnaXN0ZXJQcm90
b2NvbEhhbmRsZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJSZWdpc3RlclByb3RvY29sSGFu
ZGxlclByb3ZpZGVyLmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYlJl
Z2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJvdmlkZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJS
ZWdpc3RlclByb3RvY29sSGFuZGxlclByb3h5LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQp
OgorICAgICAgICAoV2ViS2l0OjpXZWJSZWdpc3RlclByb3RvY29sSGFuZGxlclByb3h5OjpjcmVh
dGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJSZWdpc3RlclByb3RvY29sSGFuZGxlclByb3h5OjpX
ZWJSZWdpc3RlclByb3RvY29sSGFuZGxlclByb3h5KToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVn
aXN0ZXJQcm90b2NvbEhhbmRsZXJQcm94eTo6fldlYlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJv
eHkpOgorICAgICAgICAoV2ViS2l0OjpXZWJSZWdpc3RlclByb3RvY29sSGFuZGxlclByb3h5Ojpp
bml0aWFsaXplUHJvdmlkZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJSZWdpc3RlclByb3RvY29s
SGFuZGxlclByb3h5OjpkaWRSZWNlaXZlTWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlJl
Z2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJveHk6OnJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJQcm94eTo6aXNQcm90b2Nv
bEhhbmRsZXJSZWdpc3RlcmVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVnaXN0ZXJQcm90b2Nv
bEhhbmRsZXJQcm94eTo6dW5yZWdpc3RlclByb3RvY29sSGFuZGxlcik6CisgICAgICAgICogVUlQ
cm9jZXNzL1dlYlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJveHkuaDogQWRkZWQuCisgICAgICAg
IChDb3JlSVBDKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJSZWdpc3RlclByb3Rv
Y29sSGFuZGxlclByb3h5KToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVnaXN0ZXJQcm90b2NvbEhh
bmRsZXJQcm94eTo6Y2xlYXJDb250ZXh0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVnaXN0ZXJQ
cm90b2NvbEhhbmRsZXJQcm94eTo6dHlwZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlJlZ2lz
dGVyUHJvdG9jb2xIYW5kbGVyUHJveHkubWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJDbGllbnQu
Y3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlJlZ2lz
dGVyUHJvdG9jb2xIYW5kbGVyQ2xpZW50OjpyZWdpc3RlclByb3RvY29sSGFuZGxlcik6CisgICAg
ICAgIChXZWJLaXQ6OnRvQ3VzdG9tSGFuZGxlcnNTdGF0ZSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyQ2xpZW50Ojppc1Byb3RvY29sSGFuZGxlclJlZ2lzdGVy
ZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJSZWdpc3RlclByb3RvY29sSGFuZGxlckNsaWVudDo6
dW5yZWdpc3RlclByb3RvY29sSGFuZGxlcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJSZWdpc3RlclByb3RvY29sSGFuZGxlckNsaWVudC5oOgorICAgICAgICAoV2Vi
UmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJDbGllbnQpOgorCiAyMDEyLTA4LTEzICBDaHJpc3RvcGhl
IER1bWV6ICA8Y2hyaXN0b3BoZS5kdW1lekBpbnRlbC5jb20+CiAKICAgICAgICAgW1NPVVBdW1dL
Ml0gTWlzc2luZyBMb2NhbFRlcm1pbmF0aW9uRGlzYWJsZXIgaW4gV2ViQ29va2llTWFuYWdlcjo6
c2V0Q29va2llUGVyc2lzdGVudFN0b3JhZ2UoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
RGVyaXZlZFNvdXJjZXMucHJpIGIvU291cmNlL1dlYktpdDIvRGVyaXZlZFNvdXJjZXMucHJpCmlu
ZGV4IDI2Y2JiMmIuLjdjNTkwYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0Rlcml2ZWRT
b3VyY2VzLnByaQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9EZXJpdmVkU291cmNlcy5wcmkKQEAgLTEw
Myw2ICsxMDMsNyBAQCBNRVNTQUdFX1JFQ0VJVkVSUyA9IFwKICAgICBXZWJQcm9jZXNzLm1lc3Nh
Z2VzLmluIFwKICAgICBXZWJQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbiBcCiAgICAgV2Vi
UHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluIFwKKyAgICBXZWJSZWdpc3RlclByb3RvY29sSGFuZGxl
clByb3h5Lm1lc3NhZ2VzLmluIFwKICAgICBXZWJSZXNvdXJjZUNhY2hlTWFuYWdlci5tZXNzYWdl
cy5pbiBcCiAgICAgV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiBcCiAg
ICAgV2ViVmlicmF0aW9uUHJveHkubWVzc2FnZXMuaW4gXApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmxp
c3QuYW0KaW5kZXggZDczN2JjNy4uNzE2ODU4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
R05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5saXN0
LmFtCkBAIC04Nyw2ICs4Nyw3IEBAIHdlYmtpdDJfaF9hcGkgKz0gXAogCSQoV2ViS2l0MikvVUlQ
cm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXNQcml2YXRlLmggXAogCSQoV2ViS2l0MikvVUlQcm9j
ZXNzL0FQSS9DL1dLUHJvdGVjdGlvblNwYWNlLmggXAogCSQoV2ViS2l0MikvVUlQcm9jZXNzL0FQ
SS9DL1dLUHJvdGVjdGlvblNwYWNlVHlwZXMuaCBcCisJJChXZWJLaXQyKS9VSVByb2Nlc3MvQVBJ
L0MvV0tSZWdpc3RlclByb3RvY29sSGFuZGxlci5oIFwKIAkkKFdlYktpdDIpL1VJUHJvY2Vzcy9B
UEkvQy9XS1Jlc291cmNlQ2FjaGVNYW5hZ2VyLmggXAogCSQoV2ViS2l0MikvVUlQcm9jZXNzL0FQ
SS9DL1dLVGV4dENoZWNrZXIuaCBcCiAJJChXZWJLaXQyKS9VSVByb2Nlc3MvQVBJL0MvV0tWaWJy
YXRpb24uY3BwIFwKQEAgLTIwNiw2ICsyMDcsOCBAQCB3ZWJraXQyX2J1aWx0X3NvdXJjZXMgKz0g
XAogCURlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViUGFnZVByb3h5TWVzc2FnZXMuaCBcCiAJRGVy
aXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJQYWdlTWVzc2FnZVJlY2VpdmVyLmNwcCBcCiAJRGVyaXZl
ZFNvdXJjZXMvV2ViS2l0Mi9XZWJQYWdlTWVzc2FnZXMuaCBcCisJRGVyaXZlZFNvdXJjZXMvV2Vi
S2l0Mi9XZWJSZWdpc3RlclByb3RvY29sSGFuZGxlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJSZWdpc3RlclByb3RvY29sSGFuZGxlclByb3h5
TWVzc2FnZXMuaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJSZXNvdXJjZUNhY2hlTWFu
YWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViUmVz
b3VyY2VDYWNoZU1hbmFnZXJNZXNzYWdlcy5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dl
YlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIFwKQEAgLTYwMSw2
ICs2MDQsOCBAQCB3ZWJraXQyX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQy9XS1Byb3RlY3Rpb25TcGFjZS5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQy9XS1Byb3RlY3Rpb25TcGFjZS5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0MvV0tQcm90ZWN0aW9uU3BhY2VUeXBlcy5oIFwKKwlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0MvV0tSZWdpc3RlclByb3RvY29sSGFuZGxlci5jcHAgXAorCVNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQy9XS1JlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyLmggXAogCVNvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1Jlc291cmNlQ2FjaGVNYW5hZ2VyLmggXAogCVNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1Jlc291cmNlQ2FjaGVNYW5hZ2VyLmNwcCBcCiAJ
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVGV4dENoZWNrZXIuaCBcCkBAIC04OTUs
NiArOTAwLDEwIEBAIHdlYmtpdDJfc291cmNlcyArPSBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlByZWZlcmVuY2VzLmggXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9j
ZXNzUHJveHkuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5
LmggXAorCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJSZWdpc3RlclByb3RvY29sSGFuZGxl
clByb3ZpZGVyLmNwcCBcCisJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlJlZ2lzdGVyUHJv
dG9jb2xIYW5kbGVyUHJvdmlkZXIuaCBcCisJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlJl
Z2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJveHkuY3BwIFwKKwlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJQcm94eS5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eS5oIFwKIAlTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eS5jcHAgXAogCVNvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJSZXNvdXJjZUxvYWRDbGllbnQuY3BwIFwKQEAgLTExMDUsNiAr
MTExNCw4IEBAIHdlYmtpdDJfc291cmNlcyArPSBcCiAJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJOb3RpZmljYXRpb25DbGllbnQuaCBcCiAJU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwIFwK
IAlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3Ry
YXRlZ2llcy5oIFwKKwlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyQ2xpZW50LmNwcCBcCisJU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJSZWdpc3RlclByb3RvY29sSGFuZGxlckNsaWVudC5o
IFwKIAlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBvcHVwTWVu
dS5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUG9w
dXBNZW51LmggXAogCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
U2VhcmNoUG9wdXBNZW51LmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9y
bS9Db3JlSVBDL01lc3NhZ2VJRC5oIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9N
ZXNzYWdlSUQuaAppbmRleCAyMmQzMDZiLi4wY2Q4ZTNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL01lc3NhZ2VJRC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1Bs
YXRmb3JtL0NvcmVJUEMvTWVzc2FnZUlELmgKQEAgLTc5LDYgKzc5LDcgQEAgZW51bSBNZXNzYWdl
Q2xhc3MgewogICAgIE1lc3NhZ2VDbGFzc1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eSwKICAg
ICBNZXNzYWdlQ2xhc3NXZWJQYWdlUHJveHksCiAgICAgTWVzc2FnZUNsYXNzV2ViUHJvY2Vzc1By
b3h5LAorICAgIE1lc3NhZ2VDbGFzc1dlYlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJveHksCiAg
ICAgTWVzc2FnZUNsYXNzV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eSwKICNpZiBVU0UoU09V
UCkKICAgICBNZXNzYWdlQ2xhc3NXZWJTb3VwUmVxdWVzdE1hbmFnZXJQcm94eSwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0Jhc2UuaCBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9BUEkvYy9XS0Jhc2UuaAppbmRleCA2ODU0ZWNjLi41NTczOTkxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNlLmgKKysrIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL0FQSS9jL1dLQmFzZS5oCkBAIC0xMjIsNiArMTIyLDcgQEAgdHlwZWRlZiBjb25z
dCBzdHJ1Y3QgT3BhcXVlV0tQYWdlR3JvdXAqIFdLUGFnZUdyb3VwUmVmOwogdHlwZWRlZiBjb25z
dCBzdHJ1Y3QgT3BhcXVlV0tQbHVnaW5TaXRlRGF0YU1hbmFnZXIqIFdLUGx1Z2luU2l0ZURhdGFN
YW5hZ2VyUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tQcmVmZXJlbmNlcyogV0tQ
cmVmZXJlbmNlc1JlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLUHJvdGVjdGlvblNw
YWNlKiBXS1Byb3RlY3Rpb25TcGFjZVJlZjsKK3R5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdL
UmVnaXN0ZXJQcm90b2NvbEhhbmRsZXIqIFdLUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJSZWY7CiB0
eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1RleHRDaGVja2VyKiBXS1RleHRDaGVja2VyUmVm
OwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tWaWJyYXRpb24qIFdLVmlicmF0aW9uUmVm
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJT2JqZWN0LmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvQVBJT2JqZWN0LmgKaW5kZXggOGU0ZDI5My4uYTlmMzdiNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSU9iamVjdC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9BUElPYmplY3QuaApAQCAtMTA2LDYgKzEwNiw3IEBAIHB1YmxpYzoKICAg
ICAgICAgVHlwZVBhZ2VHcm91cCwKICAgICAgICAgVHlwZVBsdWdpblNpdGVEYXRhTWFuYWdlciwK
ICAgICAgICAgVHlwZVByZWZlcmVuY2VzLAorICAgICAgICBUeXBlUmVnaXN0ZXJQcm90b2NvbEhh
bmRsZXIsCiAgICAgICAgIFR5cGVUZXh0Q2hlY2tlciwKICAgICAgICAgVHlwZVZpYnJhdGlvbiwK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJLaXQy
L1RhcmdldC5wcmkKaW5kZXggNWZmYzhjYy4uZTUzMWM0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJpCkBAIC0xODEs
NiArMTgxLDcgQEAgSEVBREVSUyArPSBcCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5j
ZXNQcml2YXRlLmggXAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS1Byb3RlY3Rpb25TcGFjZS5oIFwK
ICAgICBVSVByb2Nlc3MvQVBJL0MvV0tQcm90ZWN0aW9uU3BhY2VUeXBlcy5oIFwKKyAgICBVSVBy
b2Nlc3MvQVBJL0MvV0tSZWdpc3RlclByb3RvY29sSGFuZGxlci5oIFwKICAgICBVSVByb2Nlc3Mv
QVBJL0MvV0tWaWJyYXRpb24uaCBcCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dlYktpdDJfQy5oIFwK
ICAgICBVSVByb2Nlc3MvQVBJL0MvcXQvV0tOYXRpdmVFdmVudC5oIFwKQEAgLTI2Miw2ICsyNjMs
OCBAQCBIRUFERVJTICs9IFwKICAgICBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmggXAogICAg
IFVJUHJvY2Vzcy9XZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5LmggXAogICAgIFVJUHJvY2Vz
cy9XZWJSZXNvdXJjZUxvYWRDbGllbnQuaCBcCisgICAgVUlQcm9jZXNzL1dlYlJlZ2lzdGVyUHJv
dG9jb2xIYW5kbGVyUHJvdmlkZXIuaCBcCisgICAgVUlQcm9jZXNzL1dlYlJlZ2lzdGVyUHJvdG9j
b2xIYW5kbGVyUHJveHkuaCBcCiAgICAgVUlQcm9jZXNzL1dlYlVJQ2xpZW50LmggXAogICAgIFVJ
UHJvY2Vzcy9XZWJWaWJyYXRpb25Qcm92aWRlci5oIFwKICAgICBVSVByb2Nlc3MvV2ViVmlicmF0
aW9uUHJveHkuaCBcCkBAIC0zMzgsNiArMzQxLDcgQEAgSEVBREVSUyArPSBcCiAgICAgV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJOb3RpZmljYXRpb25DbGllbnQuaCBcCiAgICAgV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaCBcCiAgICAgV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQb3B1cE1lbnUuaCBcCisgICAgV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJSZWdpc3RlclByb3RvY29sSGFuZGxlckNsaWVudC5oIFwKICAgICBXZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNlYXJjaFBvcHVwTWVudS5oIFwKICAgICBXZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlZpYnJhdGlvbkNsaWVudC5oIFwKICAgICBXZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L3F0L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCBcCkBAIC01MjAs
NiArNTI0LDcgQEAgU09VUkNFUyArPSBcCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLUGx1Z2luU2l0
ZURhdGFNYW5hZ2VyLmNwcCBcCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3Bw
IFwKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tQcm90ZWN0aW9uU3BhY2UuY3BwIFwKKyAgICBVSVBy
b2Nlc3MvQVBJL0MvV0tSZWdpc3RlclByb3RvY29sSGFuZGxlci5jcHAgXAogICAgIFVJUHJvY2Vz
cy9BUEkvQy9XS1Jlc291cmNlQ2FjaGVNYW5hZ2VyLmNwcCBcCiAgICAgVUlQcm9jZXNzL0FQSS9D
L1dLVmlicmF0aW9uLmNwcCBcCiAgICAgVUlQcm9jZXNzL0FQSS9jcHAvcXQvV0tTdHJpbmdRdC5j
cHAgXApAQCAtNTk3LDYgKzYwMiw4IEBAIFNPVVJDRVMgKz0gXAogICAgIFVJUHJvY2Vzcy9XZWJQ
b2xpY3lDbGllbnQuY3BwIFwKICAgICBVSVByb2Nlc3MvV2ViUHJlZmVyZW5jZXMuY3BwIFwKICAg
ICBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcCBcCisgICAgVUlQcm9jZXNzL1dlYlJlZ2lz
dGVyUHJvdG9jb2xIYW5kbGVyUHJvdmlkZXIuY3BwIFwKKyAgICBVSVByb2Nlc3MvV2ViUmVnaXN0
ZXJQcm90b2NvbEhhbmRsZXJQcm94eS5jcHAgXAogICAgIFVJUHJvY2Vzcy9XZWJSZXNvdXJjZUNh
Y2hlTWFuYWdlclByb3h5LmNwcCBcCiAgICAgVUlQcm9jZXNzL1dlYlJlc291cmNlTG9hZENsaWVu
dC5jcHAgXAogICAgIFVJUHJvY2Vzcy9XZWJVSUNsaWVudC5jcHAgXApAQCAtNjk1LDYgKzcwMiw3
IEBAIFNPVVJDRVMgKz0gXAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTm90aWZp
Y2F0aW9uQ2xpZW50LmNwcCBcCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0
Zm9ybVN0cmF0ZWdpZXMuY3BwIFwKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBv
cHVwTWVudS5jcHAgXAorICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUmVnaXN0ZXJQ
cm90b2NvbEhhbmRsZXJDbGllbnQuY3BwIFwKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYlNlYXJjaFBvcHVwTWVudS5jcHAgXAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViVmlicmF0aW9uQ2xpZW50LmNwcCBcCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9x
dC9XZWJDb250ZXh0TWVudUNsaWVudFF0LmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0MvV0tBUElDYXN0LmgKaW5kZXggYmVmMjk0ZS4uYzY1MDU0NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaApAQCAtODksNiArODksNyBAQCBjbGFzcyBX
ZWJQYWdlUHJveHk7CiBjbGFzcyBXZWJQbHVnaW5TaXRlRGF0YU1hbmFnZXI7CiBjbGFzcyBXZWJQ
cmVmZXJlbmNlczsKIGNsYXNzIFdlYlByb3RlY3Rpb25TcGFjZTsKK2NsYXNzIFdlYlJlZ2lzdGVy
UHJvdG9jb2xIYW5kbGVyUHJveHk7CiBjbGFzcyBXZWJSZW5kZXJMYXllcjsKIGNsYXNzIFdlYlJl
bmRlck9iamVjdDsKIGNsYXNzIFdlYlRleHRDaGVja2VyOwpAQCAtMTM0LDYgKzEzNSw3IEBAIFdL
X0FERF9BUElfTUFQUElORyhXS1BhZ2VSZWYsIFdlYlBhZ2VQcm94eSkKIFdLX0FERF9BUElfTUFQ
UElORyhXS1BsdWdpblNpdGVEYXRhTWFuYWdlclJlZiwgV2ViUGx1Z2luU2l0ZURhdGFNYW5hZ2Vy
KQogV0tfQUREX0FQSV9NQVBQSU5HKFdLUHJlZmVyZW5jZXNSZWYsIFdlYlByZWZlcmVuY2VzKQog
V0tfQUREX0FQSV9NQVBQSU5HKFdLUHJvdGVjdGlvblNwYWNlUmVmLCBXZWJQcm90ZWN0aW9uU3Bh
Y2UpCitXS19BRERfQVBJX01BUFBJTkcoV0tSZWdpc3RlclByb3RvY29sSGFuZGxlclJlZiwgV2Vi
UmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJQcm94eSkKIFdLX0FERF9BUElfTUFQUElORyhXS1JlbmRl
ckxheWVyUmVmLCBXZWJSZW5kZXJMYXllcikKIFdLX0FERF9BUElfTUFQUElORyhXS1JlbmRlck9i
amVjdFJlZiwgV2ViUmVuZGVyT2JqZWN0KQogV0tfQUREX0FQSV9NQVBQSU5HKFdLVGV4dENoZWNr
ZXJSZWYsIFdlYlRleHRDaGVja2VyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9DL1dLQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mv
V0tDb250ZXh0LmNwcAppbmRleCBmODAyZTkzLi40NzY4YTBiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcApAQCAtMjE3LDYgKzIxNywxNSBAQCBXS1Bs
dWdpblNpdGVEYXRhTWFuYWdlclJlZiBXS0NvbnRleHRHZXRQbHVnaW5TaXRlRGF0YU1hbmFnZXIo
V0tDb250ZXh0UmVmIGNvbnRleAogICAgIHJldHVybiB0b0FQSSh0b0ltcGwoY29udGV4dFJlZikt
PnBsdWdpblNpdGVEYXRhTWFuYWdlcigpKTsKIH0KIAorV0tSZWdpc3RlclByb3RvY29sSGFuZGxl
clJlZiBXS0NvbnRleHRHZXRSZWdpc3RlclByb3RvY29sSGFuZGxlcihXS0NvbnRleHRSZWYgY29u
dGV4dFJlZikKK3sKKyNpZiBFTkFCTEUoUkVHSVNURVJfUFJPVE9DT0xfSEFORExFUikKKyAgICBy
ZXR1cm4gdG9BUEkodG9JbXBsKGNvbnRleHRSZWYpLT5yZWdpc3RlclByb3RvY29sSGFuZGxlclBy
b3h5KCkpOworI2Vsc2UKKyAgICByZXR1cm4gMDsKKyNlbmRpZgorfQorCiBXS1Jlc291cmNlQ2Fj
aGVNYW5hZ2VyUmVmIFdLQ29udGV4dEdldFJlc291cmNlQ2FjaGVNYW5hZ2VyKFdLQ29udGV4dFJl
ZiBjb250ZXh0UmVmKQogewogICAgIHJldHVybiB0b0FQSSh0b0ltcGwoY29udGV4dFJlZiktPnJl
c291cmNlQ2FjaGVNYW5hZ2VyUHJveHkoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0MvV0tDb250ZXh0LmgKaW5kZXggOTY3ZGFlYS4uY2M0NDdhOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuaApAQCAtMTU3LDYgKzE1Nyw3IEBAIFdLX0VYUE9S
VCBXS01lZGlhQ2FjaGVNYW5hZ2VyUmVmIFdLQ29udGV4dEdldE1lZGlhQ2FjaGVNYW5hZ2VyKFdL
Q29udGV4dFJlZiBjb250CiBXS19FWFBPUlQgV0tOZXR3b3JrSW5mb01hbmFnZXJSZWYgV0tDb250
ZXh0R2V0TmV0d29ya0luZm9NYW5hZ2VyKFdLQ29udGV4dFJlZiBjb250ZXh0KTsKIFdLX0VYUE9S
VCBXS05vdGlmaWNhdGlvbk1hbmFnZXJSZWYgV0tDb250ZXh0R2V0Tm90aWZpY2F0aW9uTWFuYWdl
cihXS0NvbnRleHRSZWYgY29udGV4dCk7CiBXS19FWFBPUlQgV0tQbHVnaW5TaXRlRGF0YU1hbmFn
ZXJSZWYgV0tDb250ZXh0R2V0UGx1Z2luU2l0ZURhdGFNYW5hZ2VyKFdLQ29udGV4dFJlZiBjb250
ZXh0KTsKK1dLX0VYUE9SVCBXS1JlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUmVmIFdLQ29udGV4dEdl
dFJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyKFdLQ29udGV4dFJlZiBjb250ZXh0KTsKIFdLX0VYUE9S
VCBXS1Jlc291cmNlQ2FjaGVNYW5hZ2VyUmVmIFdLQ29udGV4dEdldFJlc291cmNlQ2FjaGVNYW5h
Z2VyKFdLQ29udGV4dFJlZiBjb250ZXh0KTsKIFdLX0VYUE9SVCBXS1ZpYnJhdGlvblJlZiBXS0Nv
bnRleHRHZXRWaWJyYXRpb24oV0tDb250ZXh0UmVmIGNvbnRleHQpOwogICAgIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUmVnaXN0ZXJQcm90b2NvbEhhbmRs
ZXIuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUmVnaXN0ZXJQcm90b2Nv
bEhhbmRsZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ4NWZiM2YK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tSZWdp
c3RlclByb3RvY29sSGFuZGxlci5jcHAKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMiBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldLUmVnaXN0ZXJQcm90b2NvbEhh
bmRsZXIuaCIKKworI2lmIEVOQUJMRShSRUdJU1RFUl9QUk9UT0NPTF9IQU5ETEVSKQorI2luY2x1
ZGUgIldLQVBJQ2FzdC5oIgorI2luY2x1ZGUgIldlYlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJv
eHkuaCIKKwordXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKKyNlbmRpZiAvLyBFTkFCTEUoUkVHSVNU
RVJfUFJPVE9DT0xfSEFORExFUikKKworV0tUeXBlSUQgV0tSZWdpc3RlclByb3RvY29sSGFuZGxl
ckdldFR5cGVJRCgpCit7CisjaWYgRU5BQkxFKFJFR0lTVEVSX1BST1RPQ09MX0hBTkRMRVIpCisg
ICAgcmV0dXJuIHRvQVBJKFdlYlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJveHk6OkFQSVR5cGUp
OworI2Vsc2UKKyAgICByZXR1cm4gMDsKKyNlbmRpZgorfQorCit2b2lkIFdLUmVnaXN0ZXJQcm90
b2NvbEhhbmRsZXJTZXRQcm92aWRlcihXS1JlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUmVmIHJlZ2lz
dGVyUHJvdG9jb2xIYW5kbGVyUmVmLCBjb25zdCBXS1JlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJv
dmlkZXIqIHdrUHJvdmlkZXIpCit7CisjaWYgRU5BQkxFKFJFR0lTVEVSX1BST1RPQ09MX0hBTkRM
RVIpCisgICAgdG9JbXBsKHJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUmVmKS0+aW5pdGlhbGl6ZVBy
b3ZpZGVyKHdrUHJvdmlkZXIpOworI2VuZGlmCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0MvV0tSZWdpc3RlclByb3RvY29sSGFuZGxlci5oIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXIuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mZDYyNjdkCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXIu
aApAQCAtMCwwICsxLDY1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEludGVsIENvcnBv
cmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdLUmVnaXN0
ZXJQcm90b2NvbEhhbmRsZXJfaAorI2RlZmluZSBXS1JlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyX2gK
KworI2luY2x1ZGUgPFdlYktpdDIvV0tCYXNlLmg+CisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0
ZXJuICJDIiB7CisjZW5kaWYKKworZW51bSB7CisgICAga1dLQ3VzdG9tSGFuZGxlcnNOZXcsCisg
ICAga1dLQ3VzdG9tSGFuZGxlcnNSZWdpc3RlcmVkLAorICAgIGtXS0N1c3RvbUhhbmRsZXJzRGVj
bGluZWQKK307Cit0eXBlZGVmIHVpbnQzMl90IFdLQ3VzdG9tSGFuZGxlcnNTdGF0ZTsKKwordHlw
ZWRlZiB2b2lkICgqV0tSZWdpc3RlclByb3RvY29sSGFuZGxlclByb3ZpZGVyUmVnaXN0ZXJDYWxs
YmFjaykoV0tSZWdpc3RlclByb3RvY29sSGFuZGxlclJlZiByZWdpc3RlclByb3RvY29sSGFuZGxl
clJlZiwgV0tTdHJpbmdSZWYgc2NoZW1lLCBXS1N0cmluZ1JlZiBiYXNlVVJMLCBXS1N0cmluZ1Jl
ZiB1cmwsIFdLU3RyaW5nUmVmIHRpdGxlLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKK3R5cGVk
ZWYgV0tDdXN0b21IYW5kbGVyc1N0YXRlICgqV0tSZWdpc3RlclByb3RvY29sSGFuZGxlclByb3Zp
ZGVySXNSZWdpc3RlcmVkQ2FsbGJhY2spKFdLUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJSZWYgcmVn
aXN0ZXJQcm90b2NvbEhhbmRsZXJSZWYsIFdLU3RyaW5nUmVmIHNjaGVtZSwgV0tTdHJpbmdSZWYg
YmFzZVVSTCwgV0tTdHJpbmdSZWYgdXJsLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKK3R5cGVk
ZWYgdm9pZCAoKldLUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJQcm92aWRlclVucmVnaXN0ZXJDYWxs
YmFjaykoV0tSZWdpc3RlclByb3RvY29sSGFuZGxlclJlZiByZWdpc3RlclByb3RvY29sSGFuZGxl
clJlZiwgV0tTdHJpbmdSZWYgc2NoZW1lLCBXS1N0cmluZ1JlZiBiYXNlVVJMLCBXS1N0cmluZ1Jl
ZiB1cmwsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOworCitzdHJ1Y3QgV0tSZWdpc3RlclByb3Rv
Y29sSGFuZGxlclByb3ZpZGVyIHsKKyAgICBpbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlcnNpb247CisgICAgY29u
c3Qgdm9pZCAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjbGllbnRJbmZvOworICAgIFdLUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJQcm92
aWRlclJlZ2lzdGVyQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgcmVnaXN0ZXJQcm90b2Nv
bEhhbmRsZXI7CisgICAgV0tSZWdpc3RlclByb3RvY29sSGFuZGxlclByb3ZpZGVySXNSZWdpc3Rl
cmVkQ2FsbGJhY2sgICAgICAgICAgICAgICAgICBpc1Byb3RvY29sSGFuZGxlclJlZ2lzdGVyZWQ7
CisgICAgV0tSZWdpc3RlclByb3RvY29sSGFuZGxlclByb3ZpZGVyVW5yZWdpc3RlckNhbGxiYWNr
ICAgICAgICAgICAgICAgICAgICB1bnJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyOworfTsKK3R5cGVk
ZWYgc3RydWN0IFdLUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJQcm92aWRlciBXS1JlZ2lzdGVyUHJv
dG9jb2xIYW5kbGVyUHJvdmlkZXI7CisKK2VudW0geyBrV0tSZWdpc3RlclByb3RvY29sSGFuZGxl
clByb3ZpZGVyQ3VycmVudFZlcnNpb24gPSAwIH07CisKK1dLX0VYUE9SVCBXS1R5cGVJRCBXS1Jl
Z2lzdGVyUHJvdG9jb2xIYW5kbGVyR2V0VHlwZUlEKCk7CisKK1dLX0VYUE9SVCB2b2lkIFdLUmVn
aXN0ZXJQcm90b2NvbEhhbmRsZXJTZXRQcm92aWRlcihXS1JlZ2lzdGVyUHJvdG9jb2xIYW5kbGVy
UmVmIHJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUmVmLCBjb25zdCBXS1JlZ2lzdGVyUHJvdG9jb2xI
YW5kbGVyUHJvdmlkZXIqIHByb3ZpZGVyKTsKKworI2lmZGVmIF9fY3BsdXNwbHVzCit9CisjZW5k
aWYKKworI2VuZGlmIC8vIFdLUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJfaApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwCmluZGV4IGM4MGFhZDQuLjQ2MDJhZTYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAKQEAgLTc0LDYgKzc0LDEwIEBACiAjaW5j
bHVkZSAiV2ViTmV0d29ya0luZm9NYW5hZ2VyUHJveHkuaCIKICNlbmRpZgogCisjaWYgRU5BQkxF
KFJFR0lTVEVSX1BST1RPQ09MX0hBTkRMRVIpCisjaW5jbHVkZSAiV2ViUmVnaXN0ZXJQcm90b2Nv
bEhhbmRsZXJQcm94eS5oIgorI2VuZGlmCisKICNpZiBVU0UoU09VUCkKICNpbmNsdWRlICJXZWJT
b3VwUmVxdWVzdE1hbmFnZXJQcm94eS5oIgogI2VuZGlmCkBAIC0xNDEsNiArMTQ1LDkgQEAgV2Vi
Q29udGV4dDo6V2ViQ29udGV4dChQcm9jZXNzTW9kZWwgcHJvY2Vzc01vZGVsLCBjb25zdCBTdHJp
bmcmIGluamVjdGVkQnVuZGxlUGEKICNlbmRpZgogICAgICwgbV9ub3RpZmljYXRpb25NYW5hZ2Vy
UHJveHkoV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5OjpjcmVhdGUodGhpcykpCiAgICAgLCBt
X3BsdWdpblNpdGVEYXRhTWFuYWdlcihXZWJQbHVnaW5TaXRlRGF0YU1hbmFnZXI6OmNyZWF0ZSh0
aGlzKSkKKyNpZiBFTkFCTEUoUkVHSVNURVJfUFJPVE9DT0xfSEFORExFUikKKyAgICAsIG1fcmVn
aXN0ZXJQcm90b2NvbEhhbmRsZXJQcm94eShXZWJSZWdpc3RlclByb3RvY29sSGFuZGxlclByb3h5
OjpjcmVhdGUodGhpcykpCisjZW5kaWYKICAgICAsIG1fcmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94
eShXZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5OjpjcmVhdGUodGhpcykpCiAjaWYgVVNFKFNP
VVApCiAgICAgLCBtX3NvdXBSZXF1ZXN0TWFuYWdlclByb3h5KFdlYlNvdXBSZXF1ZXN0TWFuYWdl
clByb3h5OjpjcmVhdGUodGhpcykpCkBAIC0yMjMsNiArMjMwLDEwIEBAIFdlYkNvbnRleHQ6On5X
ZWJDb250ZXh0KCkKICAgICBtX3BsdWdpblNpdGVEYXRhTWFuYWdlci0+aW52YWxpZGF0ZSgpOwog
ICAgIG1fcGx1Z2luU2l0ZURhdGFNYW5hZ2VyLT5jbGVhckNvbnRleHQoKTsKIAorI2lmIEVOQUJM
RShSRUdJU1RFUl9QUk9UT0NPTF9IQU5ETEVSKQorICAgIG1fcmVnaXN0ZXJQcm90b2NvbEhhbmRs
ZXJQcm94eS0+Y2xlYXJDb250ZXh0KCk7CisjZW5kaWYKKwogICAgIG1fcmVzb3VyY2VDYWNoZU1h
bmFnZXJQcm94eS0+aW52YWxpZGF0ZSgpOwogICAgIG1fcmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94
eS0+Y2xlYXJDb250ZXh0KCk7CiAKQEAgLTc1Myw2ICs3NjQsMTMgQEAgdm9pZCBXZWJDb250ZXh0
OjpkaWRSZWNlaXZlTWVzc2FnZShXZWJQcm9jZXNzUHJveHkqIHByb2Nlc3MsIENvcmVJUEM6Ok1l
c3NhZ2VJRAogICAgICAgICByZXR1cm47CiAgICAgfQogCisjaWYgRU5BQkxFKFJFR0lTVEVSX1BS
T1RPQ09MX0hBTkRMRVIpCisgICAgaWYgKG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xh
c3NXZWJSZWdpc3RlclByb3RvY29sSGFuZGxlclByb3h5PigpKSB7CisgICAgICAgIG1fcmVnaXN0
ZXJQcm90b2NvbEhhbmRsZXJQcm94eS0+ZGlkUmVjZWl2ZU1lc3NhZ2UocHJvY2Vzcy0+Y29ubmVj
dGlvbigpLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAgICAgIHJldHVybjsKKyAgICB9Cisj
ZW5kaWYKKwogICAgIGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViUmVz
b3VyY2VDYWNoZU1hbmFnZXJQcm94eT4oKSkgewogICAgICAgICBtX3Jlc291cmNlQ2FjaGVNYW5h
Z2VyUHJveHktPmRpZFJlY2VpdmVXZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5TWVzc2FnZShw
cm9jZXNzLT5jb25uZWN0aW9uKCksIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKICAgICAgICAgcmV0
dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuaCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmgKaW5kZXggYWVmOGFmOS4uMzRi
NzJlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5oCkBAIC02Myw2ICs2Myw5
IEBAIGNsYXNzIFdlYk5ldHdvcmtJbmZvTWFuYWdlclByb3h5OwogY2xhc3MgV2ViTm90aWZpY2F0
aW9uTWFuYWdlclByb3h5OwogY2xhc3MgV2ViUGFnZUdyb3VwOwogY2xhc3MgV2ViUGFnZVByb3h5
OworI2lmIEVOQUJMRShSRUdJU1RFUl9QUk9UT0NPTF9IQU5ETEVSKQorY2xhc3MgV2ViUmVnaXN0
ZXJQcm90b2NvbEhhbmRsZXJQcm94eTsKKyNlbmRpZgogY2xhc3MgV2ViUmVzb3VyY2VDYWNoZU1h
bmFnZXJQcm94eTsKICNpZiBVU0UoU09VUCkKIGNsYXNzIFdlYlNvdXBSZXF1ZXN0TWFuYWdlclBy
b3h5OwpAQCAtMTg1LDYgKzE4OCw5IEBAIHB1YmxpYzoKICNpZiBFTkFCTEUoVklCUkFUSU9OKQog
ICAgIFdlYlZpYnJhdGlvblByb3h5KiB2aWJyYXRpb25Qcm94eSgpIGNvbnN0IHsgcmV0dXJuIG1f
dmlicmF0aW9uUHJveHkuZ2V0KCk7IH0KICNlbmRpZgorI2lmIEVOQUJMRShSRUdJU1RFUl9QUk9U
T0NPTF9IQU5ETEVSKQorICAgIFdlYlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJveHkqIHJlZ2lz
dGVyUHJvdG9jb2xIYW5kbGVyUHJveHkoKSBjb25zdCB7IHJldHVybiBtX3JlZ2lzdGVyUHJvdG9j
b2xIYW5kbGVyUHJveHkuZ2V0KCk7IH0KKyNlbmRpZgogCiAgICAgc3RydWN0IFN0YXRpc3RpY3Mg
ewogICAgICAgICB1bnNpZ25lZCB3a1ZpZXdDb3VudDsKQEAgLTMyOCw2ICszMzQsOSBAQCBwcml2
YXRlOgogI2VuZGlmCiAgICAgUmVmUHRyPFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eT4gbV9u
b3RpZmljYXRpb25NYW5hZ2VyUHJveHk7CiAgICAgUmVmUHRyPFdlYlBsdWdpblNpdGVEYXRhTWFu
YWdlcj4gbV9wbHVnaW5TaXRlRGF0YU1hbmFnZXI7CisjaWYgRU5BQkxFKFJFR0lTVEVSX1BST1RP
Q09MX0hBTkRMRVIpCisgICAgUmVmUHRyPFdlYlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJveHk+
IG1fcmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJQcm94eTsKKyNlbmRpZgogICAgIFJlZlB0cjxXZWJS
ZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5PiBtX3Jlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHk7CiAj
aWYgVVNFKFNPVVApCiAgICAgUmVmUHRyPFdlYlNvdXBSZXF1ZXN0TWFuYWdlclByb3h5PiBtX3Nv
dXBSZXF1ZXN0TWFuYWdlclByb3h5OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Byb3h5LmNwcAppbmRleCBkOTAzNTVjLi4zM2U3NzEzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcApAQCAtMzE4LDYgKzMxOCw5IEBAIHZvaWQg
V2ViUHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBj
b25uZWN0aW9uLCBDb3JlSVBDCiAgICAgICAgIHx8IG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNz
YWdlQ2xhc3NXZWJOZXR3b3JrSW5mb01hbmFnZXJQcm94eT4oKQogI2VuZGlmCiAgICAgICAgIHx8
IG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJOb3RpZmljYXRpb25NYW5hZ2Vy
UHJveHk+KCkKKyNpZiBFTkFCTEUoUkVHSVNURVJfUFJPVE9DT0xfSEFORExFUikKKyAgICAgICAg
fHwgbWVzc2FnZUlELmlzPENvcmVJUEM6Ok1lc3NhZ2VDbGFzc1dlYlJlZ2lzdGVyUHJvdG9jb2xI
YW5kbGVyUHJveHk+KCkKKyNlbmRpZgogI2lmIFVTRShTT1VQKQogICAgICAgICB8fCBtZXNzYWdl
SUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViU291cFJlcXVlc3RNYW5hZ2VyUHJveHk+KCkK
ICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlJlZ2lzdGVy
UHJvdG9jb2xIYW5kbGVyUHJvdmlkZXIuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJvdmlkZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLmM0NThhNWYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJQcm92aWRlci5jcHAKQEAgLTAs
MCArMSw2NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBJbnRlbCBDb3Jwb3JhdGlvbi4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIldlYlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJvdmlkZXIuaCIKKworI2lmIEVOQUJM
RShSRUdJU1RFUl9QUk9UT0NPTF9IQU5ETEVSKQorCisjaW5jbHVkZSAiV0tBUElDYXN0LmgiCisj
aW5jbHVkZSAiV2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJQcm94eS5oIgorCituYW1lc3BhY2Ug
V2ViS2l0IHsKKwordm9pZCBXZWJSZWdpc3RlclByb3RvY29sSGFuZGxlclByb3ZpZGVyOjpyZWdp
c3RlclByb3RvY29sSGFuZGxlcihXZWJSZWdpc3RlclByb3RvY29sSGFuZGxlclByb3h5KiBwcm94
eSwgY29uc3QgU3RyaW5nJiBzY2hlbWUsIGNvbnN0IFN0cmluZyYgYmFzZVVSTCwgY29uc3QgU3Ry
aW5nJiB1cmwsIGNvbnN0IFN0cmluZyYgdGl0bGUpCit7CisgICAgaWYgKCFtX2NsaWVudC5yZWdp
c3RlclByb3RvY29sSGFuZGxlcikKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9jbGllbnQucmVn
aXN0ZXJQcm90b2NvbEhhbmRsZXIodG9BUEkocHJveHkpLCB0b0FQSShzY2hlbWUuaW1wbCgpKSwg
dG9BUEkoYmFzZVVSTC5pbXBsKCkpLCB0b0FQSSh1cmwuaW1wbCgpKSwgdG9BUEkodGl0bGUuaW1w
bCgpKSwgbV9jbGllbnQuY2xpZW50SW5mbyk7Cit9CisKKyNpZiBFTkFCTEUoQ1VTVE9NX1NDSEVN
RV9IQU5ETEVSKQordm9pZCBXZWJSZWdpc3RlclByb3RvY29sSGFuZGxlclByb3ZpZGVyOjppc1By
b3RvY29sSGFuZGxlclJlZ2lzdGVyZWQoV2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJQcm94eSog
cHJveHksIGNvbnN0IFN0cmluZyYgc2NoZW1lLCBjb25zdCBTdHJpbmcmIGJhc2VVUkwsIGNvbnN0
IFN0cmluZyYgdXJsLCB1aW50MzJfdCYgcmVzdWx0KQoreworICAgIGlmICghbV9jbGllbnQuaXNQ
cm90b2NvbEhhbmRsZXJSZWdpc3RlcmVkKQorICAgICAgICByZXR1cm47CisKKyAgICByZXN1bHQg
PSBtX2NsaWVudC5pc1Byb3RvY29sSGFuZGxlclJlZ2lzdGVyZWQodG9BUEkocHJveHkpLCB0b0FQ
SShzY2hlbWUuaW1wbCgpKSwgdG9BUEkoYmFzZVVSTC5pbXBsKCkpLCB0b0FQSSh1cmwuaW1wbCgp
KSwgbV9jbGllbnQuY2xpZW50SW5mbyk7Cit9CisKK3ZvaWQgV2ViUmVnaXN0ZXJQcm90b2NvbEhh
bmRsZXJQcm92aWRlcjo6dW5yZWdpc3RlclByb3RvY29sSGFuZGxlcihXZWJSZWdpc3RlclByb3Rv
Y29sSGFuZGxlclByb3h5KiBwcm94eSwgY29uc3QgU3RyaW5nJiBzY2hlbWUsIGNvbnN0IFN0cmlu
ZyYgYmFzZVVSTCwgY29uc3QgU3RyaW5nJiB1cmwpCit7CisgICAgaWYgKCFtX2NsaWVudC51bnJl
Z2lzdGVyUHJvdG9jb2xIYW5kbGVyKQorICAgICAgICByZXR1cm47CisKKyAgICBtX2NsaWVudC51
bnJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyKHRvQVBJKHByb3h5KSwgdG9BUEkoc2NoZW1lLmltcGwo
KSksIHRvQVBJKGJhc2VVUkwuaW1wbCgpKSwgdG9BUEkodXJsLmltcGwoKSksIG1fY2xpZW50LmNs
aWVudEluZm8pOworfQorI2VuZGlmIC8vIEVOQUJMRShDVVNUT01fU0NIRU1FX0hBTkRMRVIpCisK
K30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKFJFR0lTVEVSX1BST1RP
Q09MX0hBTkRMRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUmVn
aXN0ZXJQcm90b2NvbEhhbmRsZXJQcm92aWRlci5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJvdmlkZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi4yNWNjNDdmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJvdmlkZXIuaApAQCAtMCww
ICsxLDUyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEludGVsIENvcnBvcmF0aW9uLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdlYlJlZ2lzdGVyUHJvdG9j
b2xIYW5kbGVyUHJvdmlkZXJfaAorI2RlZmluZSBXZWJSZWdpc3RlclByb3RvY29sSGFuZGxlclBy
b3ZpZGVyX2gKKworI2lmIEVOQUJMRShSRUdJU1RFUl9QUk9UT0NPTF9IQU5ETEVSKQorCisjaW5j
bHVkZSAiQVBJQ2xpZW50LmgiCisjaW5jbHVkZSAiV0tSZWdpc3RlclByb3RvY29sSGFuZGxlci5o
IgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFz
cyBXZWJSZWdpc3RlclByb3RvY29sSGFuZGxlclByb3h5OworCitjbGFzcyBXZWJSZWdpc3RlclBy
b3RvY29sSGFuZGxlclByb3ZpZGVyIDogcHVibGljIEFQSUNsaWVudDxXS1JlZ2lzdGVyUHJvdG9j
b2xIYW5kbGVyUHJvdmlkZXIsIGtXS1JlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJvdmlkZXJDdXJy
ZW50VmVyc2lvbj4geworcHVibGljOgorICAgIHZvaWQgcmVnaXN0ZXJQcm90b2NvbEhhbmRsZXIo
V2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJQcm94eSosIGNvbnN0IFN0cmluZyYgc2NoZW1lLCBj
b25zdCBTdHJpbmcmIGJhc2VVUkwsIGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBTdHJpbmcmIHRp
dGxlKTsKKworI2lmIEVOQUJMRShDVVNUT01fU0NIRU1FX0hBTkRMRVIpCisgICAgdm9pZCBpc1By
b3RvY29sSGFuZGxlclJlZ2lzdGVyZWQoV2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJQcm94eSos
IGNvbnN0IFN0cmluZyYgc2NoZW1lLCBjb25zdCBTdHJpbmcmIGJhc2VVUkwsIGNvbnN0IFN0cmlu
ZyYgdXJsLCB1aW50MzJfdCYgcmVzdWx0KTsKKyAgICB2b2lkIHVucmVnaXN0ZXJQcm90b2NvbEhh
bmRsZXIoV2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJQcm94eSosIGNvbnN0IFN0cmluZyYgc2No
ZW1lLCBjb25zdCBTdHJpbmcmIGJhc2VVUkwsIGNvbnN0IFN0cmluZyYgdXJsKTsKKyNlbmRpZiAv
LyBFTkFCTEUoQ1VTVE9NX1NDSEVNRV9IQU5ETEVSKQorfTsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoUkVHSVNURVJfUFJPVE9DT0xfSEFORExFUikKKyNlbmRp
ZiAvLyBXZWJSZWdpc3RlclByb3RvY29sSGFuZGxlclByb3ZpZGVyX2gKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJSZWdpc3RlclByb3RvY29sSGFuZGxlclByb3h5LmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJSZWdpc3RlclByb3RvY29sSGFuZGxlclBy
b3h5LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wZDYzMTU5Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlJlZ2lzdGVyUHJvdG9j
b2xIYW5kbGVyUHJveHkuY3BwCkBAIC0wLDAgKzEsNzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTIgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJSZWdpc3RlclByb3RvY29sSGFuZGxl
clByb3h5LmgiCisKKyNpZiBFTkFCTEUoUkVHSVNURVJfUFJPVE9DT0xfSEFORExFUikKKworI2lu
Y2x1ZGUgIldlYkNvbnRleHQuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1Bhc3NSZWZQdHI8
V2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJQcm94eT4gV2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRs
ZXJQcm94eTo6Y3JlYXRlKFdlYkNvbnRleHQqIGNvbnRleHQpCit7CisgICAgcmV0dXJuIGFkb3B0
UmVmKG5ldyBXZWJSZWdpc3RlclByb3RvY29sSGFuZGxlclByb3h5KGNvbnRleHQpKTsKK30KKwor
V2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJQcm94eTo6V2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRs
ZXJQcm94eShXZWJDb250ZXh0KiBjb250ZXh0KQorICAgIDogbV9jb250ZXh0KGNvbnRleHQpCit7
Cit9CisKK1dlYlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJveHk6On5XZWJSZWdpc3RlclByb3Rv
Y29sSGFuZGxlclByb3h5KCkKK3sKK30KKwordm9pZCBXZWJSZWdpc3RlclByb3RvY29sSGFuZGxl
clByb3h5Ojppbml0aWFsaXplUHJvdmlkZXIoY29uc3QgV0tSZWdpc3RlclByb3RvY29sSGFuZGxl
clByb3ZpZGVyKiBwcm92aWRlcikKK3sKKyAgICBtX3Byb3ZpZGVyLmluaXRpYWxpemUocHJvdmlk
ZXIpOworfQorCit2b2lkIFdlYlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJveHk6OmRpZFJlY2Vp
dmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3Nh
Z2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQorewor
ICAgIGRpZFJlY2VpdmVXZWJSZWdpc3RlclByb3RvY29sSGFuZGxlclByb3h5TWVzc2FnZShjb25u
ZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7Cit9CisKK3ZvaWQgV2ViUmVnaXN0ZXJQcm90
b2NvbEhhbmRsZXJQcm94eTo6cmVnaXN0ZXJQcm90b2NvbEhhbmRsZXIoY29uc3QgU3RyaW5nJiBz
Y2hlbWUsIGNvbnN0IFN0cmluZyYgYmFzZVVSTCwgY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0
cmluZyYgdGl0bGUpCit7CisgICAgbV9wcm92aWRlci5yZWdpc3RlclByb3RvY29sSGFuZGxlcih0
aGlzLCBzY2hlbWUsIGJhc2VVUkwsIHVybCwgdGl0bGUpOworfQorCisjaWYgRU5BQkxFKENVU1RP
TV9TQ0hFTUVfSEFORExFUikKK3ZvaWQgV2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJQcm94eTo6
aXNQcm90b2NvbEhhbmRsZXJSZWdpc3RlcmVkKGNvbnN0IFN0cmluZyYgc2NoZW1lLCBjb25zdCBT
dHJpbmcmIGJhc2VVUkwsIGNvbnN0IFN0cmluZyYgdXJsLCB1aW50MzJfdCYgcmVzdWx0KQorewor
ICAgICBtX3Byb3ZpZGVyLmlzUHJvdG9jb2xIYW5kbGVyUmVnaXN0ZXJlZCh0aGlzLCBzY2hlbWUs
IGJhc2VVUkwsIHVybCwgcmVzdWx0KTsKK30KKwordm9pZCBXZWJSZWdpc3RlclByb3RvY29sSGFu
ZGxlclByb3h5Ojp1bnJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyKGNvbnN0IFN0cmluZyYgc2NoZW1l
LCBjb25zdCBTdHJpbmcmIGJhc2VVUkwsIGNvbnN0IFN0cmluZyYgdXJsKQoreworICAgICBtX3By
b3ZpZGVyLnVucmVnaXN0ZXJQcm90b2NvbEhhbmRsZXIodGhpcywgc2NoZW1lLCBiYXNlVVJMLCB1
cmwpOworfQorI2VuZGlmIC8vIEVOQUJMRShDVVNUT01fU0NIRU1FX0hBTkRMRVIpCisKK30gLy8g
bmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKFJFR0lTVEVSX1BST1RPQ09MX0hB
TkRMRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUmVnaXN0ZXJQ
cm90b2NvbEhhbmRsZXJQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlJlZ2lz
dGVyUHJvdG9jb2xIYW5kbGVyUHJveHkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi42NTAwMzAxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJveHkuaApAQCAtMCwwICsxLDgyIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDEyIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdlYlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJveHlf
aAorI2RlZmluZSBXZWJSZWdpc3RlclByb3RvY29sSGFuZGxlclByb3h5X2gKKworI2lmIEVOQUJM
RShSRUdJU1RFUl9QUk9UT0NPTF9IQU5ETEVSKQorCisjaW5jbHVkZSAiQVBJT2JqZWN0LmgiCisj
aW5jbHVkZSAiTWVzc2FnZUlELmgiCisjaW5jbHVkZSAiV2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRs
ZXJQcm92aWRlci5oIgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisKK25hbWVzcGFjZSBDb3Jl
SVBDIHsKK2NsYXNzIEFyZ3VtZW50RW5jb2RlcjsKK2NsYXNzIEFyZ3VtZW50RGVjb2RlcjsKK2Ns
YXNzIENvbm5lY3Rpb247Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJDb250
ZXh0OworCitjbGFzcyBXZWJSZWdpc3RlclByb3RvY29sSGFuZGxlclByb3h5IDogcHVibGljIEFQ
SU9iamVjdCB7CitwdWJsaWM6CisgICAgc3RhdGljIGNvbnN0IFR5cGUgQVBJVHlwZSA9IFR5cGVS
ZWdpc3RlclByb3RvY29sSGFuZGxlcjsKKworICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYlJlZ2lz
dGVyUHJvdG9jb2xIYW5kbGVyUHJveHk+IGNyZWF0ZShXZWJDb250ZXh0Kik7CisgICAgdmlydHVh
bCB+V2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJQcm94eSgpOworCisgICAgdm9pZCBjbGVhckNv
bnRleHQoKSB7IG1fY29udGV4dCA9IDA7IH0KKworICAgIHZvaWQgaW5pdGlhbGl6ZVByb3ZpZGVy
KGNvbnN0IFdLUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJQcm92aWRlciopOworCisgICAgdm9pZCBk
aWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlE
LCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKKworcHJpdmF0ZToKKyAgICBleHBsaWNpdCBX
ZWJSZWdpc3RlclByb3RvY29sSGFuZGxlclByb3h5KFdlYkNvbnRleHQqKTsKKworICAgIHZpcnR1
YWwgVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gQVBJVHlwZTsgfQorCisgICAgLy8gSW1wbGVt
ZW50ZWQgaW4gZ2VuZXJhdGVkIFdlYlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJveHlNZXNzYWdl
UmVjZWl2ZXIuY3BwCisgICAgdm9pZCBkaWRSZWNlaXZlV2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRs
ZXJQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwg
Q29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisgICAgdm9pZCBkaWRSZWNlaXZlU3luY1dlYlJl
Z2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBD
b3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciosIE93blB0cjxDb3Jl
SVBDOjpBcmd1bWVudEVuY29kZXI+Jik7CisKKyAgICB2b2lkIHJlZ2lzdGVyUHJvdG9jb2xIYW5k
bGVyKGNvbnN0IFN0cmluZyYgc2NoZW1lLCBjb25zdCBTdHJpbmcmIGJhc2VVUkwsIGNvbnN0IFN0
cmluZyYgdXJsLCBjb25zdCBTdHJpbmcmIHRpdGxlKTsKKyNpZiBFTkFCTEUoQ1VTVE9NX1NDSEVN
RV9IQU5ETEVSKQorICAgIHZvaWQgaXNQcm90b2NvbEhhbmRsZXJSZWdpc3RlcmVkKGNvbnN0IFN0
cmluZyYgc2NoZW1lLCBjb25zdCBTdHJpbmcmIGJhc2VVUkwsIGNvbnN0IFN0cmluZyYgdXJsLCB1
aW50MzJfdCYgcmVzdWx0KTsKKyAgICB2b2lkIHVucmVnaXN0ZXJQcm90b2NvbEhhbmRsZXIoY29u
c3QgU3RyaW5nJiBzY2hlbWUsIGNvbnN0IFN0cmluZyYgYmFzZVVSTCwgY29uc3QgU3RyaW5nJiB1
cmwpOworI2VuZGlmIC8vIEVOQUJMRShDVVNUT01fU0NIRU1FX0hBTkRMRVIpCisKKyAgICBXZWJD
b250ZXh0KiBtX2NvbnRleHQ7CisgICAgV2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJQcm92aWRl
ciBtX3Byb3ZpZGVyOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBF
TkFCTEUoUkVHSVNURVJfUFJPVE9DT0xfSEFORExFUikKKworI2VuZGlmIC8vIFdlYlJlZ2lzdGVy
UHJvdG9jb2xIYW5kbGVyUHJveHlfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJQcm94eS5tZXNzYWdl
cy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYTRhYzgxCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlJlZ2lzdGVyUHJvdG9jb2xI
YW5kbGVyUHJveHkubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwzMyBAQAorIyBDb3B5cmlnaHQgKEMp
IDIwMTIgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisj
IDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMg
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJyBBTkQKKyMgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyMgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RQorIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUgorIyBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisjIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SCisjIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisjIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisjIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyNpZiBFTkFCTEUoUkVHSVNURVJfUFJP
VE9DT0xfSEFORExFUikKKworbWVzc2FnZXMgLT4gV2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJQ
cm94eSB7CisgICAgUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXIoV1RGOjpTdHJpbmcgc2NoZW1lLCBX
VEY6OlN0cmluZyBiYXNlVVJMLCBXVEY6OlN0cmluZyB1cmwsIFdURjo6U3RyaW5nIHRpdGxlKQor
I2lmIEVOQUJMRShDVVNUT01fU0NIRU1FX0hBTkRMRVIpCisgICAgSXNQcm90b2NvbEhhbmRsZXJS
ZWdpc3RlcmVkKFdURjo6U3RyaW5nIHNjaGVtZSwgV1RGOjpTdHJpbmcgYmFzZVVSTCwgV1RGOjpT
dHJpbmcgdXJsKSAtPiAodWludDMyX3QgcmVzdWx0KQorICAgIFVucmVnaXN0ZXJQcm90b2NvbEhh
bmRsZXIoV1RGOjpTdHJpbmcgc2NoZW1lLCBXVEY6OlN0cmluZyBiYXNlVVJMLCBXVEY6OlN0cmlu
ZyB1cmwpCisjZW5kaWYgLy8gRU5BQkxFKENVU1RPTV9TQ0hFTUVfSEFORExFUikKK30KKworI2Vu
ZGlmIC8vIEVOQUJMRShSRUdJU1RFUl9QUk9UT0NPTF9IQU5ETEVSKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJSZWdpc3RlclByb3RvY29s
SGFuZGxlckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyQ2xpZW50LmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi5hNmM5MDdlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJSZWdpc3RlclByb3RvY29sSGFuZGxl
ckNsaWVudC5jcHAKQEAgLTAsMCArMSw3MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBJ
bnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyQ2xpZW50
LmgiCisKKyNpZiBFTkFCTEUoUkVHSVNURVJfUFJPVE9DT0xfSEFORExFUikKKworI2luY2x1ZGUg
IldlYlByb2Nlc3MuaCIKKyNpbmNsdWRlICJXZWJSZWdpc3RlclByb3RvY29sSGFuZGxlclByb3h5
TWVzc2FnZXMuaCIKKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Cit1c2luZyBuYW1lc3BhY2Ug
TWVzc2FnZXM6OldlYlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUHJveHk7CisKK25hbWVzcGFjZSBX
ZWJLaXQgeworCit2b2lkIFdlYlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyQ2xpZW50OjpyZWdpc3Rl
clByb3RvY29sSGFuZGxlcihjb25zdCBTdHJpbmcmIHNjaGVtZSwgY29uc3QgU3RyaW5nJiBiYXNl
VVJMLCBjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgU3RyaW5nJiB0aXRsZSkKK3sKKyAgICBXZWJQ
cm9jZXNzOjpzaGFyZWQoKS5jb25uZWN0aW9uKCktPnNlbmQoUmVnaXN0ZXJQcm90b2NvbEhhbmRs
ZXIoc2NoZW1lLCBiYXNlVVJMLCB1cmwsIHRpdGxlKSwgMCk7Cit9CisKKyNpZiBFTkFCTEUoQ1VT
VE9NX1NDSEVNRV9IQU5ETEVSKQorc3RhdGljIGlubGluZSBSZWdpc3RlclByb3RvY29sSGFuZGxl
ckNsaWVudDo6Q3VzdG9tSGFuZGxlcnNTdGF0ZSB0b0N1c3RvbUhhbmRsZXJzU3RhdGUoY29uc3Qg
dWludDMyX3Qgc3RhdGUpCit7CisgICAgc3dpdGNoIChzdGF0ZSkgeworICAgIGNhc2UgUmVnaXN0
ZXJQcm90b2NvbEhhbmRsZXJDbGllbnQ6OkN1c3RvbUhhbmRsZXJzTmV3OgorICAgIGNhc2UgUmVn
aXN0ZXJQcm90b2NvbEhhbmRsZXJDbGllbnQ6OkN1c3RvbUhhbmRsZXJzUmVnaXN0ZXJlZDoKKyAg
ICBjYXNlIFJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyQ2xpZW50OjpDdXN0b21IYW5kbGVyc0RlY2xp
bmVkOgorICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8UmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJD
bGllbnQ6OkN1c3RvbUhhbmRsZXJzU3RhdGU+KHN0YXRlKTsKKyAgICBkZWZhdWx0OgorICAgICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuIFJlZ2lzdGVyUHJvdG9jb2xI
YW5kbGVyQ2xpZW50OjpDdXN0b21IYW5kbGVyc0RlY2xpbmVkOworICAgIH0KK30KKworUmVnaXN0
ZXJQcm90b2NvbEhhbmRsZXJDbGllbnQ6OkN1c3RvbUhhbmRsZXJzU3RhdGUgV2ViUmVnaXN0ZXJQ
cm90b2NvbEhhbmRsZXJDbGllbnQ6OmlzUHJvdG9jb2xIYW5kbGVyUmVnaXN0ZXJlZChjb25zdCBT
dHJpbmcmIHNjaGVtZSwgY29uc3QgU3RyaW5nJiBiYXNlVVJMLCBjb25zdCBTdHJpbmcmIHVybCkK
K3sKKyAgICB1aW50MzJfdCByZXN1bHQgPSBzdGF0aWNfY2FzdDx1aW50MzJfdD4oUmVnaXN0ZXJQ
cm90b2NvbEhhbmRsZXJDbGllbnQ6OkN1c3RvbUhhbmRsZXJzTmV3KTsKKyAgICBXZWJQcm9jZXNz
OjpzaGFyZWQoKS5jb25uZWN0aW9uKCktPnNlbmRTeW5jKElzUHJvdG9jb2xIYW5kbGVyUmVnaXN0
ZXJlZChzY2hlbWUsIGJhc2VVUkwsIHVybCksIElzUHJvdG9jb2xIYW5kbGVyUmVnaXN0ZXJlZDo6
UmVwbHkocmVzdWx0KSwgMCk7CisgICAgcmV0dXJuIHRvQ3VzdG9tSGFuZGxlcnNTdGF0ZShyZXN1
bHQpOworfQorCit2b2lkIFdlYlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyQ2xpZW50Ojp1bnJlZ2lz
dGVyUHJvdG9jb2xIYW5kbGVyKGNvbnN0IFN0cmluZyYgc2NoZW1lLCBjb25zdCBTdHJpbmcmIGJh
c2VVUkwsIGNvbnN0IFN0cmluZyYgdXJsKQoreworICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLmNv
bm5lY3Rpb24oKS0+c2VuZChVbnJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyKHNjaGVtZSwgYmFzZVVS
TCwgdXJsKSwgMCk7Cit9CisjZW5kaWYgLy8gRU5BQkxFKENVU1RPTV9TQ0hFTUVfSEFORExFUikK
KworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoUkVHSVNURVJfUFJP
VE9DT0xfSEFORExFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJDbGllbnQuaCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUmVnaXN0ZXJQcm90b2NvbEhhbmRs
ZXJDbGllbnQuaAppbmRleCA2M2YxOTkwLi44MjgzYWFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVy
Q2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJSZWdpc3RlclByb3RvY29sSGFuZGxlckNsaWVudC5oCkBAIC0zOCwxMSArMzgsMTEgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgfldlYlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyQ2xpZW50KCkgeyB9
CiAKIHByaXZhdGU6Ci0gICAgdmlydHVhbCB2b2lkIHJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyKGNv
bnN0IFN0cmluZyYgc2NoZW1lLCBjb25zdCBTdHJpbmcmIGJhc2VVUkwsIGNvbnN0IFN0cmluZyYg
dXJsLCBjb25zdCBTdHJpbmcmIHRpdGxlKSBPVkVSUklERSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQg
cmVnaXN0ZXJQcm90b2NvbEhhbmRsZXIoY29uc3QgU3RyaW5nJiBzY2hlbWUsIGNvbnN0IFN0cmlu
ZyYgYmFzZVVSTCwgY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0cmluZyYgdGl0bGUpIE9WRVJS
SURFOwogCiAjaWYgRU5BQkxFKENVU1RPTV9TQ0hFTUVfSEFORExFUikKLSAgICB2aXJ0dWFsIEN1
c3RvbUhhbmRsZXJzU3RhdGUgaXNQcm90b2NvbEhhbmRsZXJSZWdpc3RlcmVkKGNvbnN0IFN0cmlu
ZyYsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpIHsgcmV0dXJuIEN1c3RvbUhhbmRsZXJz
RGVjbGluZWQ7IH0KLSAgICB2aXJ0dWFsIHZvaWQgdW5yZWdpc3RlclByb3RvY29sSGFuZGxlcihj
b25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKSB7IH0KKyAgICB2aXJ0
dWFsIEN1c3RvbUhhbmRsZXJzU3RhdGUgaXNQcm90b2NvbEhhbmRsZXJSZWdpc3RlcmVkKGNvbnN0
IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpOworICAgIHZpcnR1YWwgdm9p
ZCB1bnJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYs
IGNvbnN0IFN0cmluZyYpOwogI2VuZGlmCiB9OwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>160687</attachid>
            <date>2012-08-27 03:34:44 -0700</date>
            <delta_ts>2015-05-11 01:01:01 -0700</delta_ts>
            <desc>patch v5</desc>
            <filename>bug92749_v5</filename>
            <type>text/plain</type>
            <size>43858</size>
            <attacher name="Mikhail Pozdnyakov">mikhail.pozdnyakov</attacher>
            
              <data encoding="base64">Y29tbWl0IDlmZDE2ZWQ4N2IxNGVlYzcyNDZiNjQzZDQxYTZmYjNhMjBjNmQyOTgKQXV0aG9yOiBN
aWtoYWlsIFBvemRueWFrb3YgPG1pa2hhaWwucG96ZG55YWtvdkBpbnRlbC5jb20+CkRhdGU6ICAg
TW9uIEF1ZyAyNyAxMzowOTo1OSAyMDEyICswMzAwCgogICAgYnVnOTI3NDkKCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlz
dHMudHh0CmluZGV4IGM0M2RkNGEuLjNjOGQ5MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0CkBAIC0y
NjUsNiArMjY1LDggQEAgU0VUKFdlYktpdDJfU09VUkNFUwogICAgIFVJUHJvY2Vzcy9XZWJMb2Fk
ZXJDbGllbnQuY3BwCiAgICAgVUlQcm9jZXNzL1dlYk1lZGlhQ2FjaGVNYW5hZ2VyUHJveHkuY3Bw
CiAgICAgVUlQcm9jZXNzL1dlYk5hdmlnYXRpb25EYXRhLmNwcAorICAgIFVJUHJvY2Vzcy9XZWJO
YXZpZ2F0b3JDb250ZW50VXRpbHNQcm92aWRlci5jcHAKKyAgICBVSVByb2Nlc3MvV2ViTmF2aWdh
dG9yQ29udGVudFV0aWxzUHJveHkuY3BwCiAgICAgVUlQcm9jZXNzL1dlYk5ldHdvcmtJbmZvTWFu
YWdlclByb3h5LmNwcAogICAgIFVJUHJvY2Vzcy9XZWJOZXR3b3JrSW5mb1Byb3ZpZGVyLmNwcAog
ICAgIFVJUHJvY2Vzcy9XZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5LmNwcApAQCAtMzA5
LDYgKzMxMSw3IEBAIFNFVChXZWJLaXQyX1NPVVJDRVMKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tL
ZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyLmNwcAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS01lZGlhQ2Fj
aGVNYW5hZ2VyLmNwcAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS05hdmlnYXRpb25EYXRhLmNwcAor
ICAgIFVJUHJvY2Vzcy9BUEkvQy9XS05hdmlnYXRvckNvbnRlbnRVdGlscy5jcHAKICAgICBVSVBy
b2Nlc3MvQVBJL0MvV0tOZXR3b3JrSW5mby5jcHAKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tOZXR3
b3JrSW5mb01hbmFnZXIuY3BwCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLTm90aWZpY2F0aW9uLmNw
cApAQCAtNDUzLDYgKzQ1Niw3IEBAIFNFVChXZWJLaXQyX1NPVVJDRVMKICAgICBXZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50LmNwcAogICAgIFdlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50LmNwcAogICAgIFdlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQuY3BwCisgICAgV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNDbGllbnQuY3BwCiAgICAg
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJOZXR3b3JrSW5mb0NsaWVudC5jcHAKICAgICBX
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5jcHAKICAgICBX
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAKQEAgLTUw
NSw2ICs1MDksNyBAQCBTRVQoV2ViS2l0Ml9NRVNTQUdFU19JTl9GSUxFUwogICAgIFVJUHJvY2Vz
cy9XZWJJbnNwZWN0b3JQcm94eS5tZXNzYWdlcy5pbgogICAgIFVJUHJvY2Vzcy9XZWJLZXlWYWx1
ZVN0b3JhZ2VNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KICAgICBVSVByb2Nlc3MvV2ViTWVkaWFD
YWNoZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgorICAgIFVJUHJvY2Vzcy9XZWJOYXZpZ2F0b3JD
b250ZW50VXRpbHNQcm94eS5tZXNzYWdlcy5pbgogICAgIFVJUHJvY2Vzcy9XZWJOZXR3b3JrSW5m
b01hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgogICAgIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVz
c2FnZXMuaW4KICAgICBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cKaW5kZXggOGRkNjAxYy4uZmRkY2VjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM5IEBACiAy
MDEyLTA4LTI3ICBNaWtoYWlsIFBvemRueWFrb3YgIDxtaWtoYWlsLnBvemRueWFrb3ZAaW50ZWwu
Y29tPgogCisgICAgICAgIFtXSzJdIEFkZCBOYXZpZ2F0b3IgQ29udGVudCBVdGlscyBBUEkgc3Vw
cG9ydCBmb3IgV2ViS2l0MgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9OTI3NDkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBBZGRlZCBzdXBwb3J0IG9mIE5hdmlnYXRvciBDb250ZW50IFV0aWxzIEFQSSBzdXBw
b3J0IGZvciBXZWJLaXQyLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICog
RGVyaXZlZFNvdXJjZXMucHJpOgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAg
ICAgICogUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlSUQuaDoKKyAgICAgICAgKiBTaGFyZWQvQVBJ
L2MvV0tCYXNlLmg6CisgICAgICAgICogU2hhcmVkL0FQSU9iamVjdC5oOgorICAgICAgICAqIFRh
cmdldC5wcmk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oOgorICAgICAg
ICAoV2ViS2l0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcDoKKyAg
ICAgICAgKFdLQ29udGV4dEdldE5hdmlnYXRvckNvbnRlbnRVdGlscyk6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9DL1dLQ29udGV4dC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJDb250ZXh0
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dDo6V2ViQ29udGV4dCk6CisgICAgICAg
IChXZWJLaXQ6OldlYkNvbnRleHQ6On5XZWJDb250ZXh0KToKKyAgICAgICAgKFdlYktpdDo6V2Vi
Q29udGV4dDo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJDb250
ZXh0Lmg6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViQ29udGV4dCk6CisgICAgICAg
IChXZWJLaXQ6OldlYkNvbnRleHQ6Om5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3h5KToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
UHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZlTWVzc2FnZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNDbGllbnQuaDoKKyAgICAgICAg
KFdlYk5hdmlnYXRvckNvbnRlbnRVdGlsc0NsaWVudCk6CisKKzIwMTItMDgtMjcgIE1pa2hhaWwg
UG96ZG55YWtvdiAgPG1pa2hhaWwucG96ZG55YWtvdkBpbnRlbC5jb20+CisKICAgICAgICAgUmVu
YW1lIFJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyIEFQSSB0byBOYXZpZ2F0b3JDb250ZW50VXRpbHMK
ICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk0OTIwCiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0Rlcml2ZWRTb3VyY2VzLnByaSBiL1NvdXJjZS9X
ZWJLaXQyL0Rlcml2ZWRTb3VyY2VzLnByaQppbmRleCAyNmNiYjJiLi4zMTczMGRkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9EZXJpdmVkU291cmNlcy5wcmkKKysrIGIvU291cmNlL1dlYktp
dDIvRGVyaXZlZFNvdXJjZXMucHJpCkBAIC04OSw2ICs4OSw3IEBAIE1FU1NBR0VfUkVDRUlWRVJT
ID0gXAogICAgIFdlYktleVZhbHVlU3RvcmFnZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiBcCiAg
ICAgV2ViTWVkaWFDYWNoZU1hbmFnZXIubWVzc2FnZXMuaW4gXAogICAgIFdlYk1lZGlhQ2FjaGVN
YW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gXAorICAgIFdlYk5hdmlnYXRvckNvbnRlbnRVdGlsc1By
b3h5Lm1lc3NhZ2VzLmluIFwKICAgICBXZWJOZXR3b3JrSW5mb01hbmFnZXIubWVzc2FnZXMuaW4g
XAogICAgIFdlYk5ldHdvcmtJbmZvTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluIFwKICAgICBXZWJO
b3RpZmljYXRpb25NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gXApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxl
Lmxpc3QuYW0KaW5kZXggZDQxN2I1Zi4uNGRjYjVhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5s
aXN0LmFtCkBAIC03MSw2ICs3MSw3IEBAIHdlYmtpdDJfaF9hcGkgKz0gXAogCSQoV2ViS2l0Mikv
VUlQcm9jZXNzL0FQSS9DL1dLTWVkaWFDYWNoZU1hbmFnZXIuaCBcCiAJJChXZWJLaXQyKS9VSVBy
b2Nlc3MvQVBJL0MvV0tOYXRpdmVFdmVudC5oIFwKIAkkKFdlYktpdDIpL1VJUHJvY2Vzcy9BUEkv
Qy9XS05hdmlnYXRpb25EYXRhLmggXAorCSQoV2ViS2l0MikvVUlQcm9jZXNzL0FQSS9DL1dLTmF2
aWdhdG9yQ29udGVudFV0aWxzLmggXAogCSQoV2ViS2l0MikvVUlQcm9jZXNzL0FQSS9DL1dLTmV0
d29ya0luZm8uaCBcCiAJJChXZWJLaXQyKS9VSVByb2Nlc3MvQVBJL0MvV0tOZXR3b3JrSW5mb01h
bmFnZXIuaCBcCiAJJChXZWJLaXQyKS9VSVByb2Nlc3MvQVBJL0MvV0tOb3RpZmljYXRpb24uaCBc
CkBAIC0xOTQsNiArMTk1LDggQEAgd2Via2l0Ml9idWlsdF9zb3VyY2VzICs9IFwKIAlEZXJpdmVk
U291cmNlcy9XZWJLaXQyL1dlYk1lZGlhQ2FjaGVNYW5hZ2VyTWVzc2FnZXMuaCBcCiAJRGVyaXZl
ZFNvdXJjZXMvV2ViS2l0Mi9XZWJNZWRpYUNhY2hlTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVy
LmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJNZWRpYUNhY2hlTWFuYWdlclByb3h5
TWVzc2FnZXMuaCBcCisJRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJOYXZpZ2F0b3JDb250ZW50
VXRpbHNQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1dlYktpdDIv
V2ViTmF2aWdhdG9yQ29udGVudFV0aWxzUHJveHlNZXNzYWdlcy5oIFwKIAlEZXJpdmVkU291cmNl
cy9XZWJLaXQyL1dlYk5ldHdvcmtJbmZvTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgXAogCURl
cml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViTmV0d29ya0luZm9NYW5hZ2VyTWVzc2FnZXMuaCBcCiAJ
RGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJOZXR3b3JrSW5mb01hbmFnZXJQcm94eU1lc3NhZ2VS
ZWNlaXZlci5jcHAgXApAQCAtNTczLDYgKzU3Niw4IEBAIHdlYmtpdDJfc291cmNlcyArPSBcCiAJ
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLTmF0aXZlRXZlbnQuaCBcCiAJU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLTmF2aWdhdGlvbkRhdGEuY3BwIFwKIAlTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tOYXZpZ2F0aW9uRGF0YS5oIFwKKwlTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tOYXZpZ2F0b3JDb250ZW50VXRpbHMuY3BwIFwKKwlTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tOYXZpZ2F0b3JDb250ZW50VXRpbHMuaCBcCiAJ
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLTmV0d29ya0luZm8uY3BwIFwKIAlTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tOZXR3b3JrSW5mby5oIFwKIAlTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tOZXR3b3JrSW5mb01hbmFnZXIuY3BwIFwKQEAgLTg3Niw2
ICs4ODEsMTAgQEAgd2Via2l0Ml9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViTG9hZGVyQ2xpZW50LmggXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJOYXZp
Z2F0aW9uRGF0YS5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJOYXZpZ2F0aW9u
RGF0YS5oIFwKKwlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTmF2aWdhdG9yQ29udGVudFV0
aWxzUHJvdmlkZXIuY3BwIFwKKwlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTmF2aWdhdG9y
Q29udGVudFV0aWxzUHJvdmlkZXIuaCBcCisJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk5h
dmlnYXRvckNvbnRlbnRVdGlsc1Byb3h5LmNwcCBcCisJU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYk5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3h5LmggXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJOZXR3b3JrSW5mb01hbmFnZXJQcm94eS5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJOZXR3b3JrSW5mb01hbmFnZXJQcm94eS5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViTmV0d29ya0luZm9Qcm92aWRlci5jcHAgXApAQCAtMTEwMyw2ICsxMTEyLDgg
QEAgd2Via2l0Ml9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckZyb250ZW5kQ2xpZW50LmNwcCBcCiAJU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JGcm9udGVu
ZENsaWVudC5oIFwKKwlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
Yk5hdmlnYXRvckNvbnRlbnRVdGlsc0NsaWVudC5jcHAgXAorCVNvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTmF2aWdhdG9yQ29udGVudFV0aWxzQ2xpZW50LmggXAog
CVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTmV0d29ya0luZm9D
bGllbnQuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
Yk5ldHdvcmtJbmZvQ2xpZW50LmggXAogCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50LmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL01lc3NhZ2VJRC5oIGIvU291cmNlL1dlYktpdDIvUGxh
dGZvcm0vQ29yZUlQQy9NZXNzYWdlSUQuaAppbmRleCAyMmQzMDZiLi44ZWE3NGQ3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL01lc3NhZ2VJRC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvTWVzc2FnZUlELmgKQEAgLTc1LDYgKzc1LDcg
QEAgZW51bSBNZXNzYWdlQ2xhc3MgewogICAgIE1lc3NhZ2VDbGFzc1dlYkluc3BlY3RvclByb3h5
LAogICAgIE1lc3NhZ2VDbGFzc1dlYktleVZhbHVlU3RvcmFnZU1hbmFnZXJQcm94eSwKICAgICBN
ZXNzYWdlQ2xhc3NXZWJNZWRpYUNhY2hlTWFuYWdlclByb3h5LAorICAgIE1lc3NhZ2VDbGFzc1dl
Yk5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3h5LAogICAgIE1lc3NhZ2VDbGFzc1dlYk5ldHdvcmtJ
bmZvTWFuYWdlciwKICAgICBNZXNzYWdlQ2xhc3NXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHks
CiAgICAgTWVzc2FnZUNsYXNzV2ViUGFnZVByb3h5LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvU2hhcmVkL0FQSS9jL1dLQmFzZS5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dL
QmFzZS5oCmluZGV4IDA2YWEyODYuLjgzMmVhNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9BUEkvYy9XS0Jhc2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2Mv
V0tCYXNlLmgKQEAgLTEwOSw2ICsxMDksNyBAQCB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVX
S0ludGVudFNlcnZpY2VJbmZvKiBXS0ludGVudFNlcnZpY2VJbmZvUmVmOwogdHlwZWRlZiBjb25z
dCBzdHJ1Y3QgT3BhcXVlV0tLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyKiBXS0tleVZhbHVlU3RvcmFn
ZU1hbmFnZXJSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS01lZGlhQ2FjaGVNYW5h
Z2VyKiBXS01lZGlhQ2FjaGVNYW5hZ2VyUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVl
V0tOYXZpZ2F0aW9uRGF0YSogV0tOYXZpZ2F0aW9uRGF0YVJlZjsKK3R5cGVkZWYgY29uc3Qgc3Ry
dWN0IE9wYXF1ZVdLTmF2aWdhdG9yQ29udGVudFV0aWxzKiBXS05hdmlnYXRvckNvbnRlbnRVdGls
c1JlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLTmV0d29ya0luZm9NYW5hZ2VyKiBX
S05ldHdvcmtJbmZvTWFuYWdlclJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLTmV0
d29ya0luZm8qIFdLTmV0d29ya0luZm9SZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVX
S05vdGlmaWNhdGlvbiogV0tOb3RpZmljYXRpb25SZWY7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvQVBJT2JqZWN0LmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJT2JqZWN0
LmgKaW5kZXggNzA4ZWZmZS4uZjY1YjhhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hh
cmVkL0FQSU9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElPYmplY3QuaApA
QCAtOTUsNiArOTUsNyBAQCBwdWJsaWM6CiAgICAgICAgIFR5cGVLZXlWYWx1ZVN0b3JhZ2VNYW5h
Z2VyLAogICAgICAgICBUeXBlTWVkaWFDYWNoZU1hbmFnZXIsCiAgICAgICAgIFR5cGVOYXZpZ2F0
aW9uRGF0YSwKKyAgICAgICAgVHlwZU5hdmlnYXRvckNvbnRlbnRVdGlscywKICAgICAgICAgVHlw
ZU5ldHdvcmtJbmZvLAogICAgICAgICBUeXBlTmV0d29ya0luZm9NYW5hZ2VyLAogICAgICAgICBU
eXBlTm90aWZpY2F0aW9uLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVGFyZ2V0LnByaSBi
L1NvdXJjZS9XZWJLaXQyL1RhcmdldC5wcmkKaW5kZXggMzczMzY1MC4uYmUwMDY3YSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9UYXJn
ZXQucHJpCkBAIC0xNjcsNiArMTY3LDcgQEAgSEVBREVSUyArPSBcCiAgICAgVUlQcm9jZXNzL0FQ
SS9DL1dLT3BlblBhbmVsUGFyYW1ldGVycy5oIFwKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tPcGVu
UGFuZWxSZXN1bHRMaXN0ZW5lci5oIFwKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tOYXZpZ2F0aW9u
RGF0YS5oIFwKKyAgICBVSVByb2Nlc3MvQVBJL0MvV0tOYXZpZ2F0b3JDb250ZW50VXRpbHMuaCBc
CiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLTmV0d29ya0luZm8uaCBcCiAgICAgVUlQcm9jZXNzL0FQ
SS9DL1dLTmV0d29ya0luZm9NYW5hZ2VyLmggXAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS05vdGlm
aWNhdGlvbi5oIFwKQEAgLTI1Myw2ICsyNTQsOCBAQCBIRUFERVJTICs9IFwKICAgICBVSVByb2Nl
c3MvV2ViTG9hZGVyQ2xpZW50LmggXAogICAgIFVJUHJvY2Vzcy9XZWJNZWRpYUNhY2hlTWFuYWdl
clByb3h5LmggXAogICAgIFVJUHJvY2Vzcy9XZWJOYXZpZ2F0aW9uRGF0YS5oIFwKKyAgICBVSVBy
b2Nlc3MvV2ViTmF2aWdhdG9yQ29udGVudFV0aWxzUHJvdmlkZXIuaCBcCisgICAgVUlQcm9jZXNz
L1dlYk5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3h5LmggXAogICAgIFVJUHJvY2Vzcy9XZWJPcGVu
UGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5LmggXAogICAgIFVJUHJvY2Vzcy9XZWJQYWdlQ29udGV4
dE1lbnVDbGllbnQuaCBcCiAgICAgVUlQcm9jZXNzL1dlYlBhZ2VHcm91cC5oIFwKQEAgLTMzNiw2
ICszMzksNyBAQCBIRUFERVJTICs9IFwKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
Ykdlb2xvY2F0aW9uQ2xpZW50LmggXAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
SW5zcGVjdG9yQ2xpZW50LmggXAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViSW5z
cGVjdG9yRnJvbnRlbmRDbGllbnQuaCBcCisgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNDbGllbnQuaCBcCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJOZXR3b3JrSW5mb0NsaWVudC5oIFwKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5oIFwKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oIFwKQEAgLTUxNiw2ICs1MjAsNyBAQCBTT1VS
Q0VTICs9IFwKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tPcGVuUGFuZWxQYXJhbWV0ZXJzLmNwcCBc
CiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLT3BlblBhbmVsUmVzdWx0TGlzdGVuZXIuY3BwIFwKICAg
ICBVSVByb2Nlc3MvQVBJL0MvV0tOYXZpZ2F0aW9uRGF0YS5jcHAgXAorICAgIFVJUHJvY2Vzcy9B
UEkvQy9XS05hdmlnYXRvckNvbnRlbnRVdGlscy5jcHAgXAogICAgIFVJUHJvY2Vzcy9BUEkvQy9X
S05ldHdvcmtJbmZvLmNwcCBcCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLTmV0d29ya0luZm9NYW5h
Z2VyLmNwcCBcCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAgXApAQCAtNTkxLDYgKzU5
Niw4IEBAIFNPVVJDRVMgKz0gXAogICAgIFVJUHJvY2Vzcy9XZWJMb2FkZXJDbGllbnQuY3BwIFwK
ICAgICBVSVByb2Nlc3MvV2ViTWVkaWFDYWNoZU1hbmFnZXJQcm94eS5jcHAgXAogICAgIFVJUHJv
Y2Vzcy9XZWJOYXZpZ2F0aW9uRGF0YS5jcHAgXAorICAgIFVJUHJvY2Vzcy9XZWJOYXZpZ2F0b3JD
b250ZW50VXRpbHNQcm92aWRlci5jcHAgXAorICAgIFVJUHJvY2Vzcy9XZWJOYXZpZ2F0b3JDb250
ZW50VXRpbHNQcm94eS5jcHAgXAogICAgIFVJUHJvY2Vzcy9XZWJOZXR3b3JrSW5mb01hbmFnZXJQ
cm94eS5jcHAgXAogICAgIFVJUHJvY2Vzcy9XZWJOZXR3b3JrSW5mb1Byb3ZpZGVyLmNwcCBcCiAg
ICAgVUlQcm9jZXNzL1dlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyUHJveHkuY3BwIFwKQEAgLTY5
Niw2ICs3MDMsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkdlb2xvY2F0aW9uQ2xpZW50LmNwcCBcCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJJbnNwZWN0b3JDbGllbnQuY3BwIFwKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkluc3BlY3RvckZyb250ZW5kQ2xpZW50LmNwcCBcCisgICAgV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNDbGllbnQuY3BwIFwKICAgICBXZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYk5ldHdvcmtJbmZvQ2xpZW50LmNwcCBcCiAgICAgV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJOb3RpZmljYXRpb25DbGllbnQuY3BwIFwKICAgICBXZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAgXApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oCmluZGV4IGJlZjI5NGUuLmZmOGUw
NGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3Qu
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgKQEAgLTg5
LDYgKzg5LDcgQEAgY2xhc3MgV2ViUGFnZVByb3h5OwogY2xhc3MgV2ViUGx1Z2luU2l0ZURhdGFN
YW5hZ2VyOwogY2xhc3MgV2ViUHJlZmVyZW5jZXM7CiBjbGFzcyBXZWJQcm90ZWN0aW9uU3BhY2U7
CitjbGFzcyBXZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm94eTsKIGNsYXNzIFdlYlJlbmRlckxh
eWVyOwogY2xhc3MgV2ViUmVuZGVyT2JqZWN0OwogY2xhc3MgV2ViVGV4dENoZWNrZXI7CkBAIC0x
MzQsNiArMTM1LDcgQEAgV0tfQUREX0FQSV9NQVBQSU5HKFdLUGFnZVJlZiwgV2ViUGFnZVByb3h5
KQogV0tfQUREX0FQSV9NQVBQSU5HKFdLUGx1Z2luU2l0ZURhdGFNYW5hZ2VyUmVmLCBXZWJQbHVn
aW5TaXRlRGF0YU1hbmFnZXIpCiBXS19BRERfQVBJX01BUFBJTkcoV0tQcmVmZXJlbmNlc1JlZiwg
V2ViUHJlZmVyZW5jZXMpCiBXS19BRERfQVBJX01BUFBJTkcoV0tQcm90ZWN0aW9uU3BhY2VSZWYs
IFdlYlByb3RlY3Rpb25TcGFjZSkKK1dLX0FERF9BUElfTUFQUElORyhXS05hdmlnYXRvckNvbnRl
bnRVdGlsc1JlZiwgV2ViTmF2aWdhdG9yQ29udGVudFV0aWxzUHJveHkpCiBXS19BRERfQVBJX01B
UFBJTkcoV0tSZW5kZXJMYXllclJlZiwgV2ViUmVuZGVyTGF5ZXIpCiBXS19BRERfQVBJX01BUFBJ
TkcoV0tSZW5kZXJPYmplY3RSZWYsIFdlYlJlbmRlck9iamVjdCkKIFdLX0FERF9BUElfTUFQUElO
RyhXS1RleHRDaGVja2VyUmVmLCBXZWJUZXh0Q2hlY2tlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHAKaW5kZXggZjgwMmU5My4uNzM0M2ZlMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHAKQEAgLTIxNyw2ICsy
MTcsMTUgQEAgV0tQbHVnaW5TaXRlRGF0YU1hbmFnZXJSZWYgV0tDb250ZXh0R2V0UGx1Z2luU2l0
ZURhdGFNYW5hZ2VyKFdLQ29udGV4dFJlZiBjb250ZXgKICAgICByZXR1cm4gdG9BUEkodG9JbXBs
KGNvbnRleHRSZWYpLT5wbHVnaW5TaXRlRGF0YU1hbmFnZXIoKSk7CiB9CiAKK1dLTmF2aWdhdG9y
Q29udGVudFV0aWxzUmVmIFdLQ29udGV4dEdldE5hdmlnYXRvckNvbnRlbnRVdGlscyhXS0NvbnRl
eHRSZWYgY29udGV4dFJlZikKK3sKKyNpZiBFTkFCTEUoTkFWSUdBVE9SX0NPTlRFTlRfVVRJTFMp
CisgICAgcmV0dXJuIHRvQVBJKHRvSW1wbChjb250ZXh0UmVmKS0+bmF2aWdhdG9yQ29udGVudFV0
aWxzUHJveHkoKSk7CisjZWxzZQorICAgIHJldHVybiAwOworI2VuZGlmCit9CisKIFdLUmVzb3Vy
Y2VDYWNoZU1hbmFnZXJSZWYgV0tDb250ZXh0R2V0UmVzb3VyY2VDYWNoZU1hbmFnZXIoV0tDb250
ZXh0UmVmIGNvbnRleHRSZWYpCiB7CiAgICAgcmV0dXJuIHRvQVBJKHRvSW1wbChjb250ZXh0UmVm
KS0+cmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQy9XS0NvbnRleHQuaAppbmRleCA5NjdkYWVhLi45MDJkNTBlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmgKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5oCkBAIC0xNTcsNiArMTU3LDcgQEAgV0tf
RVhQT1JUIFdLTWVkaWFDYWNoZU1hbmFnZXJSZWYgV0tDb250ZXh0R2V0TWVkaWFDYWNoZU1hbmFn
ZXIoV0tDb250ZXh0UmVmIGNvbnQKIFdLX0VYUE9SVCBXS05ldHdvcmtJbmZvTWFuYWdlclJlZiBX
S0NvbnRleHRHZXROZXR3b3JrSW5mb01hbmFnZXIoV0tDb250ZXh0UmVmIGNvbnRleHQpOwogV0tf
RVhQT1JUIFdLTm90aWZpY2F0aW9uTWFuYWdlclJlZiBXS0NvbnRleHRHZXROb3RpZmljYXRpb25N
YW5hZ2VyKFdLQ29udGV4dFJlZiBjb250ZXh0KTsKIFdLX0VYUE9SVCBXS1BsdWdpblNpdGVEYXRh
TWFuYWdlclJlZiBXS0NvbnRleHRHZXRQbHVnaW5TaXRlRGF0YU1hbmFnZXIoV0tDb250ZXh0UmVm
IGNvbnRleHQpOworV0tfRVhQT1JUIFdLTmF2aWdhdG9yQ29udGVudFV0aWxzUmVmIFdLQ29udGV4
dEdldE5hdmlnYXRvckNvbnRlbnRVdGlscyhXS0NvbnRleHRSZWYgY29udGV4dCk7CiBXS19FWFBP
UlQgV0tSZXNvdXJjZUNhY2hlTWFuYWdlclJlZiBXS0NvbnRleHRHZXRSZXNvdXJjZUNhY2hlTWFu
YWdlcihXS0NvbnRleHRSZWYgY29udGV4dCk7CiBXS19FWFBPUlQgV0tWaWJyYXRpb25SZWYgV0tD
b250ZXh0R2V0VmlicmF0aW9uKFdLQ29udGV4dFJlZiBjb250ZXh0KTsKICAgICAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS05hdmlnYXRvckNvbnRlbnRVdGls
cy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tOYXZpZ2F0b3JDb250ZW50
VXRpbHMuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk2MDM1ZmMKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tOYXZpZ2F0
b3JDb250ZW50VXRpbHMuY3BwCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTIgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXS05hdmlnYXRvckNvbnRlbnRVdGlscy5o
IgorCisjaWYgRU5BQkxFKE5BVklHQVRPUl9DT05URU5UX1VUSUxTKQorI2luY2x1ZGUgIldLQVBJ
Q2FzdC5oIgorI2luY2x1ZGUgIldlYk5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3h5LmgiCisKK3Vz
aW5nIG5hbWVzcGFjZSBXZWJLaXQ7CisjZW5kaWYgLy8gRU5BQkxFKE5BVklHQVRPUl9DT05URU5U
X1VUSUxTKQorCitXS1R5cGVJRCBXS05hdmlnYXRvckNvbnRlbnRVdGlsc0dldFR5cGVJRCgpCit7
CisjaWYgRU5BQkxFKE5BVklHQVRPUl9DT05URU5UX1VUSUxTKQorICAgIHJldHVybiB0b0FQSShX
ZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm94eTo6QVBJVHlwZSk7CisjZWxzZQorICAgIHJldHVy
biAwOworI2VuZGlmCit9CisKK3ZvaWQgV0tOYXZpZ2F0b3JDb250ZW50VXRpbHNTZXRQcm92aWRl
cihXS05hdmlnYXRvckNvbnRlbnRVdGlsc1JlZiByZWdpc3RlclByb3RvY29sSGFuZGxlclJlZiwg
Y29uc3QgV0tOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm92aWRlciogd2tQcm92aWRlcikKK3sKKyNp
ZiBFTkFCTEUoTkFWSUdBVE9SX0NPTlRFTlRfVVRJTFMpCisgICAgdG9JbXBsKHJlZ2lzdGVyUHJv
dG9jb2xIYW5kbGVyUmVmKS0+aW5pdGlhbGl6ZVByb3ZpZGVyKHdrUHJvdmlkZXIpOworI2VuZGlm
Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tOYXZpZ2F0
b3JDb250ZW50VXRpbHMuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS05hdmln
YXRvckNvbnRlbnRVdGlscy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAz
MWRhMTYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mv
V0tOYXZpZ2F0b3JDb250ZW50VXRpbHMuaApAQCAtMCwwICsxLDY1IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDEyIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaWZuZGVmIFdLTmF2aWdhdG9yQ29udGVudFV0aWxzX2gKKyNkZWZpbmUgV0tOYXZp
Z2F0b3JDb250ZW50VXRpbHNfaAorCisjaW5jbHVkZSA8V2ViS2l0Mi9XS0Jhc2UuaD4KKworI2lm
ZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCitlbnVtIHsKKyAgICBrV0tD
dXN0b21IYW5kbGVyc05ldywKKyAgICBrV0tDdXN0b21IYW5kbGVyc1JlZ2lzdGVyZWQsCisgICAg
a1dLQ3VzdG9tSGFuZGxlcnNEZWNsaW5lZAorfTsKK3R5cGVkZWYgdWludDMyX3QgV0tDdXN0b21I
YW5kbGVyc1N0YXRlOworCit0eXBlZGVmIHZvaWQgKCpXS05hdmlnYXRvckNvbnRlbnRVdGlsc1By
b3ZpZGVyUmVnaXN0ZXJQcm90b2NvbENhbGxiYWNrKShXS05hdmlnYXRvckNvbnRlbnRVdGlsc1Jl
ZiByZWdpc3RlclByb3RvY29sSGFuZGxlclJlZiwgV0tTdHJpbmdSZWYgc2NoZW1lLCBXS1N0cmlu
Z1JlZiBiYXNlVVJMLCBXS1N0cmluZ1JlZiB1cmwsIFdLU3RyaW5nUmVmIHRpdGxlLCBjb25zdCB2
b2lkKiBjbGllbnRJbmZvKTsKK3R5cGVkZWYgV0tDdXN0b21IYW5kbGVyc1N0YXRlICgqV0tOYXZp
Z2F0b3JDb250ZW50VXRpbHNQcm92aWRlcklzUHJvdG9jb2xSZWdpc3RlcmVkQ2FsbGJhY2spKFdL
TmF2aWdhdG9yQ29udGVudFV0aWxzUmVmIHJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUmVmLCBXS1N0
cmluZ1JlZiBzY2hlbWUsIFdLU3RyaW5nUmVmIGJhc2VVUkwsIFdLU3RyaW5nUmVmIHVybCwgY29u
c3Qgdm9pZCogY2xpZW50SW5mbyk7Cit0eXBlZGVmIHZvaWQgKCpXS05hdmlnYXRvckNvbnRlbnRV
dGlsc1Byb3ZpZGVyVW5yZWdpc3RlclByb3RvY29sQ2FsbGJhY2spKFdLTmF2aWdhdG9yQ29udGVu
dFV0aWxzUmVmIHJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUmVmLCBXS1N0cmluZ1JlZiBzY2hlbWUs
IFdLU3RyaW5nUmVmIGJhc2VVUkwsIFdLU3RyaW5nUmVmIHVybCwgY29uc3Qgdm9pZCogY2xpZW50
SW5mbyk7CisKK3N0cnVjdCBXS05hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3ZpZGVyIHsKKyAgICBp
bnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB2ZXJzaW9uOworICAgIGNvbnN0IHZvaWQgKiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsaWVudEluZm87CisgICAgV0tO
YXZpZ2F0b3JDb250ZW50VXRpbHNQcm92aWRlclJlZ2lzdGVyUHJvdG9jb2xDYWxsYmFjayAgICAg
ICAgICAgICAgcmVnaXN0ZXJQcm90b2NvbEhhbmRsZXI7CisgICAgV0tOYXZpZ2F0b3JDb250ZW50
VXRpbHNQcm92aWRlcklzUHJvdG9jb2xSZWdpc3RlcmVkQ2FsbGJhY2sgICAgICAgICAgaXNQcm90
b2NvbEhhbmRsZXJSZWdpc3RlcmVkOworICAgIFdLTmF2aWdhdG9yQ29udGVudFV0aWxzUHJvdmlk
ZXJVbnJlZ2lzdGVyUHJvdG9jb2xDYWxsYmFjayAgICAgICAgICAgIHVucmVnaXN0ZXJQcm90b2Nv
bEhhbmRsZXI7Cit9OwordHlwZWRlZiBzdHJ1Y3QgV0tOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm92
aWRlciBXS05hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3ZpZGVyOworCitlbnVtIHsga1dLTmF2aWdh
dG9yQ29udGVudFV0aWxzUHJvdmlkZXJDdXJyZW50VmVyc2lvbiA9IDAgfTsKKworV0tfRVhQT1JU
IFdLVHlwZUlEIFdLTmF2aWdhdG9yQ29udGVudFV0aWxzR2V0VHlwZUlEKCk7CisKK1dLX0VYUE9S
VCB2b2lkIFdLTmF2aWdhdG9yQ29udGVudFV0aWxzU2V0UHJvdmlkZXIoV0tOYXZpZ2F0b3JDb250
ZW50VXRpbHNSZWYgcmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJSZWYsIGNvbnN0IFdLTmF2aWdhdG9y
Q29udGVudFV0aWxzUHJvdmlkZXIqIHByb3ZpZGVyKTsKKworI2lmZGVmIF9fY3BsdXNwbHVzCit9
CisjZW5kaWYKKworI2VuZGlmIC8vIFdLTmF2aWdhdG9yQ29udGVudFV0aWxzX2gKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcAppbmRleCAxYjUzYjA0Li5mNGUzZmZmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwCkBAIC03MCw2ICs3MCwxMCBAQAog
I2luY2x1ZGUgIldlYk5ldHdvcmtJbmZvTWFuYWdlclByb3h5LmgiCiAjZW5kaWYKIAorI2lmIEVO
QUJMRShOQVZJR0FUT1JfQ09OVEVOVF9VVElMUykKKyNpbmNsdWRlICJXZWJOYXZpZ2F0b3JDb250
ZW50VXRpbHNQcm94eS5oIgorI2VuZGlmCisKICNpZiBVU0UoU09VUCkKICNpbmNsdWRlICJXZWJT
b3VwUmVxdWVzdE1hbmFnZXJQcm94eS5oIgogI2VuZGlmCkBAIC0xMzUsNiArMTM5LDkgQEAgV2Vi
Q29udGV4dDo6V2ViQ29udGV4dChQcm9jZXNzTW9kZWwgcHJvY2Vzc01vZGVsLCBjb25zdCBTdHJp
bmcmIGluamVjdGVkQnVuZGxlUGEKICNlbmRpZgogICAgICwgbV9ub3RpZmljYXRpb25NYW5hZ2Vy
UHJveHkoV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5OjpjcmVhdGUodGhpcykpCiAgICAgLCBt
X3BsdWdpblNpdGVEYXRhTWFuYWdlcihXZWJQbHVnaW5TaXRlRGF0YU1hbmFnZXI6OmNyZWF0ZSh0
aGlzKSkKKyNpZiBFTkFCTEUoTkFWSUdBVE9SX0NPTlRFTlRfVVRJTFMpCisgICAgLCBtX25hdmln
YXRvckNvbnRlbnRVdGlsc1Byb3h5KFdlYk5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3h5OjpjcmVh
dGUodGhpcykpCisjZW5kaWYKICAgICAsIG1fcmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eShXZWJS
ZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5OjpjcmVhdGUodGhpcykpCiAjaWYgVVNFKFNPVVApCiAg
ICAgLCBtX3NvdXBSZXF1ZXN0TWFuYWdlclByb3h5KFdlYlNvdXBSZXF1ZXN0TWFuYWdlclByb3h5
OjpjcmVhdGUodGhpcykpCkBAIC0yMTEsNiArMjE4LDEwIEBAIFdlYkNvbnRleHQ6On5XZWJDb250
ZXh0KCkKICAgICBtX3BsdWdpblNpdGVEYXRhTWFuYWdlci0+aW52YWxpZGF0ZSgpOwogICAgIG1f
cGx1Z2luU2l0ZURhdGFNYW5hZ2VyLT5jbGVhckNvbnRleHQoKTsKIAorI2lmIEVOQUJMRShOQVZJ
R0FUT1JfQ09OVEVOVF9VVElMUykKKyAgICBtX25hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3h5LT5j
bGVhckNvbnRleHQoKTsKKyNlbmRpZgorCiAgICAgbV9yZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5
LT5pbnZhbGlkYXRlKCk7CiAgICAgbV9yZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5LT5jbGVhckNv
bnRleHQoKTsKIApAQCAtNzE3LDYgKzcyOCwxMyBAQCB2b2lkIFdlYkNvbnRleHQ6OmRpZFJlY2Vp
dmVNZXNzYWdlKFdlYlByb2Nlc3NQcm94eSogcHJvY2VzcywgQ29yZUlQQzo6TWVzc2FnZUlECiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAKKyNpZiBFTkFCTEUoTkFWSUdBVE9SX0NPTlRFTlRfVVRJ
TFMpCisgICAgaWYgKG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJOYXZpZ2F0
b3JDb250ZW50VXRpbHNQcm94eT4oKSkgeworICAgICAgICBtX25hdmlnYXRvckNvbnRlbnRVdGls
c1Byb3h5LT5kaWRSZWNlaXZlTWVzc2FnZShwcm9jZXNzLT5jb25uZWN0aW9uKCksIG1lc3NhZ2VJ
RCwgYXJndW1lbnRzKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyNlbmRpZgorCiAgICAgaWYg
KG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJSZXNvdXJjZUNhY2hlTWFuYWdl
clByb3h5PigpKSB7CiAgICAgICAgIG1fcmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eS0+ZGlkUmVj
ZWl2ZVdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHlNZXNzYWdlKHByb2Nlc3MtPmNvbm5lY3Rp
b24oKSwgbWVzc2FnZUlELCBhcmd1bWVudHMpOwogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5oIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYkNvbnRleHQuaAppbmRleCBhMDExNDYxLi5kYTZjZTc4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmgKQEAgLTYzLDYgKzYzLDkgQEAgY2xhc3MgV2ViTmV0
d29ya0luZm9NYW5hZ2VyUHJveHk7CiBjbGFzcyBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHk7
CiBjbGFzcyBXZWJQYWdlR3JvdXA7CiBjbGFzcyBXZWJQYWdlUHJveHk7CisjaWYgRU5BQkxFKE5B
VklHQVRPUl9DT05URU5UX1VUSUxTKQorY2xhc3MgV2ViTmF2aWdhdG9yQ29udGVudFV0aWxzUHJv
eHk7CisjZW5kaWYKIGNsYXNzIFdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHk7CiAjaWYgVVNF
KFNPVVApCiBjbGFzcyBXZWJTb3VwUmVxdWVzdE1hbmFnZXJQcm94eTsKQEAgLTE4Nyw2ICsxOTAs
OSBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKFZJQlJBVElPTikKICAgICBXZWJWaWJyYXRpb25Qcm94
eSogdmlicmF0aW9uUHJveHkoKSBjb25zdCB7IHJldHVybiBtX3ZpYnJhdGlvblByb3h5LmdldCgp
OyB9CiAjZW5kaWYKKyNpZiBFTkFCTEUoTkFWSUdBVE9SX0NPTlRFTlRfVVRJTFMpCisgICAgV2Vi
TmF2aWdhdG9yQ29udGVudFV0aWxzUHJveHkqIG5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3h5KCkg
Y29uc3QgeyByZXR1cm4gbV9uYXZpZ2F0b3JDb250ZW50VXRpbHNQcm94eS5nZXQoKTsgfQorI2Vu
ZGlmCiAKICAgICBzdHJ1Y3QgU3RhdGlzdGljcyB7CiAgICAgICAgIHVuc2lnbmVkIHdrVmlld0Nv
dW50OwpAQCAtMzI0LDYgKzMzMCw5IEBAIHByaXZhdGU6CiAjZW5kaWYKICAgICBSZWZQdHI8V2Vi
Tm90aWZpY2F0aW9uTWFuYWdlclByb3h5PiBtX25vdGlmaWNhdGlvbk1hbmFnZXJQcm94eTsKICAg
ICBSZWZQdHI8V2ViUGx1Z2luU2l0ZURhdGFNYW5hZ2VyPiBtX3BsdWdpblNpdGVEYXRhTWFuYWdl
cjsKKyNpZiBFTkFCTEUoTkFWSUdBVE9SX0NPTlRFTlRfVVRJTFMpCisgICAgUmVmUHRyPFdlYk5h
dmlnYXRvckNvbnRlbnRVdGlsc1Byb3h5PiBtX25hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3h5Owor
I2VuZGlmCiAgICAgUmVmUHRyPFdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHk+IG1fcmVzb3Vy
Y2VDYWNoZU1hbmFnZXJQcm94eTsKICNpZiBVU0UoU09VUCkKICAgICBSZWZQdHI8V2ViU291cFJl
cXVlc3RNYW5hZ2VyUHJveHk+IG1fc291cFJlcXVlc3RNYW5hZ2VyUHJveHk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTmF2aWdhdG9yQ29udGVudFV0aWxzUHJvdmlk
ZXIuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk5hdmlnYXRvckNvbnRlbnRVdGls
c1Byb3ZpZGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jOTdiZjA3
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk5hdmlnYXRv
ckNvbnRlbnRVdGlsc1Byb3ZpZGVyLmNwcApAQCAtMCwwICsxLDY0IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDEyIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViTmF2aWdhdG9yQ29udGVu
dFV0aWxzUHJvdmlkZXIuaCIKKworI2lmIEVOQUJMRShOQVZJR0FUT1JfQ09OVEVOVF9VVElMUykK
KworI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgorI2luY2x1ZGUgIldlYk5hdmlnYXRvckNvbnRlbnRV
dGlsc1Byb3h5LmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCit2b2lkIFdlYk5hdmlnYXRvckNv
bnRlbnRVdGlsc1Byb3ZpZGVyOjpyZWdpc3RlclByb3RvY29sSGFuZGxlcihXZWJOYXZpZ2F0b3JD
b250ZW50VXRpbHNQcm94eSogcHJveHksIGNvbnN0IFN0cmluZyYgc2NoZW1lLCBjb25zdCBTdHJp
bmcmIGJhc2VVUkwsIGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBTdHJpbmcmIHRpdGxlKQorewor
ICAgIGlmICghbV9jbGllbnQucmVnaXN0ZXJQcm90b2NvbEhhbmRsZXIpCisgICAgICAgIHJldHVy
bjsKKworICAgIG1fY2xpZW50LnJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyKHRvQVBJKHByb3h5KSwg
dG9BUEkoc2NoZW1lLmltcGwoKSksIHRvQVBJKGJhc2VVUkwuaW1wbCgpKSwgdG9BUEkodXJsLmlt
cGwoKSksIHRvQVBJKHRpdGxlLmltcGwoKSksIG1fY2xpZW50LmNsaWVudEluZm8pOworfQorCisj
aWYgRU5BQkxFKENVU1RPTV9TQ0hFTUVfSEFORExFUikKK3ZvaWQgV2ViTmF2aWdhdG9yQ29udGVu
dFV0aWxzUHJvdmlkZXI6OmlzUHJvdG9jb2xIYW5kbGVyUmVnaXN0ZXJlZChXZWJOYXZpZ2F0b3JD
b250ZW50VXRpbHNQcm94eSogcHJveHksIGNvbnN0IFN0cmluZyYgc2NoZW1lLCBjb25zdCBTdHJp
bmcmIGJhc2VVUkwsIGNvbnN0IFN0cmluZyYgdXJsLCB1aW50MzJfdCYgcmVzdWx0KQoreworICAg
IGlmICghbV9jbGllbnQuaXNQcm90b2NvbEhhbmRsZXJSZWdpc3RlcmVkKQorICAgICAgICByZXR1
cm47CisKKyAgICByZXN1bHQgPSBtX2NsaWVudC5pc1Byb3RvY29sSGFuZGxlclJlZ2lzdGVyZWQo
dG9BUEkocHJveHkpLCB0b0FQSShzY2hlbWUuaW1wbCgpKSwgdG9BUEkoYmFzZVVSTC5pbXBsKCkp
LCB0b0FQSSh1cmwuaW1wbCgpKSwgbV9jbGllbnQuY2xpZW50SW5mbyk7Cit9CisKK3ZvaWQgV2Vi
TmF2aWdhdG9yQ29udGVudFV0aWxzUHJvdmlkZXI6OnVucmVnaXN0ZXJQcm90b2NvbEhhbmRsZXIo
V2ViTmF2aWdhdG9yQ29udGVudFV0aWxzUHJveHkqIHByb3h5LCBjb25zdCBTdHJpbmcmIHNjaGVt
ZSwgY29uc3QgU3RyaW5nJiBiYXNlVVJMLCBjb25zdCBTdHJpbmcmIHVybCkKK3sKKyAgICBpZiAo
IW1fY2xpZW50LnVucmVnaXN0ZXJQcm90b2NvbEhhbmRsZXIpCisgICAgICAgIHJldHVybjsKKwor
ICAgIG1fY2xpZW50LnVucmVnaXN0ZXJQcm90b2NvbEhhbmRsZXIodG9BUEkocHJveHkpLCB0b0FQ
SShzY2hlbWUuaW1wbCgpKSwgdG9BUEkoYmFzZVVSTC5pbXBsKCkpLCB0b0FQSSh1cmwuaW1wbCgp
KSwgbV9jbGllbnQuY2xpZW50SW5mbyk7Cit9CisjZW5kaWYgLy8gRU5BQkxFKENVU1RPTV9TQ0hF
TUVfSEFORExFUikKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUo
TkFWSUdBVE9SX0NPTlRFTlRfVVRJTFMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViTmF2aWdhdG9yQ29udGVudFV0aWxzUHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm92aWRlci5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNkMzA2YzIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTmF2aWdhdG9yQ29udGVudFV0aWxzUHJvdmlkZXIuaApA
QCAtMCwwICsxLDUyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEludGVsIENvcnBvcmF0
aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdlYk5hdmlnYXRv
ckNvbnRlbnRVdGlsc1Byb3ZpZGVyX2gKKyNkZWZpbmUgV2ViTmF2aWdhdG9yQ29udGVudFV0aWxz
UHJvdmlkZXJfaAorCisjaWYgRU5BQkxFKE5BVklHQVRPUl9DT05URU5UX1VUSUxTKQorCisjaW5j
bHVkZSAiQVBJQ2xpZW50LmgiCisjaW5jbHVkZSAiV0tOYXZpZ2F0b3JDb250ZW50VXRpbHMuaCIK
KyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3Mg
V2ViTmF2aWdhdG9yQ29udGVudFV0aWxzUHJveHk7CisKK2NsYXNzIFdlYk5hdmlnYXRvckNvbnRl
bnRVdGlsc1Byb3ZpZGVyIDogcHVibGljIEFQSUNsaWVudDxXS05hdmlnYXRvckNvbnRlbnRVdGls
c1Byb3ZpZGVyLCBrV0tOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm92aWRlckN1cnJlbnRWZXJzaW9u
PiB7CitwdWJsaWM6CisgICAgdm9pZCByZWdpc3RlclByb3RvY29sSGFuZGxlcihXZWJOYXZpZ2F0
b3JDb250ZW50VXRpbHNQcm94eSosIGNvbnN0IFN0cmluZyYgc2NoZW1lLCBjb25zdCBTdHJpbmcm
IGJhc2VVUkwsIGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBTdHJpbmcmIHRpdGxlKTsKKworI2lm
IEVOQUJMRShDVVNUT01fU0NIRU1FX0hBTkRMRVIpCisgICAgdm9pZCBpc1Byb3RvY29sSGFuZGxl
clJlZ2lzdGVyZWQoV2ViTmF2aWdhdG9yQ29udGVudFV0aWxzUHJveHkqLCBjb25zdCBTdHJpbmcm
IHNjaGVtZSwgY29uc3QgU3RyaW5nJiBiYXNlVVJMLCBjb25zdCBTdHJpbmcmIHVybCwgdWludDMy
X3QmIHJlc3VsdCk7CisgICAgdm9pZCB1bnJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyKFdlYk5hdmln
YXRvckNvbnRlbnRVdGlsc1Byb3h5KiwgY29uc3QgU3RyaW5nJiBzY2hlbWUsIGNvbnN0IFN0cmlu
ZyYgYmFzZVVSTCwgY29uc3QgU3RyaW5nJiB1cmwpOworI2VuZGlmIC8vIEVOQUJMRShDVVNUT01f
U0NIRU1FX0hBTkRMRVIpCit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8v
IEVOQUJMRShOQVZJR0FUT1JfQ09OVEVOVF9VVElMUykKKyNlbmRpZiAvLyBXZWJOYXZpZ2F0b3JD
b250ZW50VXRpbHNQcm92aWRlcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViTmF2aWdhdG9yQ29udGVudFV0aWxzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYk5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3h5LmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi5kM2EzOWI4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYk5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3h5LmNwcApAQCAtMCww
ICsxLDc4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEludGVsIENvcnBvcmF0aW9uLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiV2ViTmF2aWdhdG9yQ29udGVudFV0aWxzUHJveHkuaCIKKworI2lmIEVOQUJMRShOQVZJ
R0FUT1JfQ09OVEVOVF9VVElMUykKKworI2luY2x1ZGUgIldlYkNvbnRleHQuaCIKKworbmFtZXNw
YWNlIFdlYktpdCB7CisKK1Bhc3NSZWZQdHI8V2ViTmF2aWdhdG9yQ29udGVudFV0aWxzUHJveHk+
IFdlYk5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3h5OjpjcmVhdGUoV2ViQ29udGV4dCogY29udGV4
dCkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYk5hdmlnYXRvckNvbnRlbnRVdGlsc1By
b3h5KGNvbnRleHQpKTsKK30KKworV2ViTmF2aWdhdG9yQ29udGVudFV0aWxzUHJveHk6OldlYk5h
dmlnYXRvckNvbnRlbnRVdGlsc1Byb3h5KFdlYkNvbnRleHQqIGNvbnRleHQpCisgICAgOiBtX2Nv
bnRleHQoY29udGV4dCkKK3sKK30KKworV2ViTmF2aWdhdG9yQ29udGVudFV0aWxzUHJveHk6On5X
ZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm94eSgpCit7Cit9CisKK3ZvaWQgV2ViTmF2aWdhdG9y
Q29udGVudFV0aWxzUHJveHk6OmluaXRpYWxpemVQcm92aWRlcihjb25zdCBXS05hdmlnYXRvckNv
bnRlbnRVdGlsc1Byb3ZpZGVyKiBwcm92aWRlcikKK3sKKyAgICBtX3Byb3ZpZGVyLmluaXRpYWxp
emUocHJvdmlkZXIpOworfQorCit2b2lkIFdlYk5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3h5Ojpk
aWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBD
OjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50
cykKK3sKKyAgICBkaWRSZWNlaXZlV2ViTmF2aWdhdG9yQ29udGVudFV0aWxzUHJveHlNZXNzYWdl
KGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKK30KKwordm9pZCBXZWJOYXZpZ2F0
b3JDb250ZW50VXRpbHNQcm94eTo6cmVnaXN0ZXJQcm90b2NvbEhhbmRsZXIoY29uc3QgU3RyaW5n
JiBzY2hlbWUsIGNvbnN0IFN0cmluZyYgYmFzZVVSTCwgY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0
IFN0cmluZyYgdGl0bGUpCit7CisgICAgbV9wcm92aWRlci5yZWdpc3RlclByb3RvY29sSGFuZGxl
cih0aGlzLCBzY2hlbWUsIGJhc2VVUkwsIHVybCwgdGl0bGUpOworfQorCisjaWYgRU5BQkxFKENV
U1RPTV9TQ0hFTUVfSEFORExFUikKK3ZvaWQgV2ViTmF2aWdhdG9yQ29udGVudFV0aWxzUHJveHk6
OmlzUHJvdG9jb2xIYW5kbGVyUmVnaXN0ZXJlZChjb25zdCBTdHJpbmcmIHNjaGVtZSwgY29uc3Qg
U3RyaW5nJiBiYXNlVVJMLCBjb25zdCBTdHJpbmcmIHVybCwgdWludDMyX3QmIHJlc3VsdCkKK3sK
KyAgICAgbV9wcm92aWRlci5pc1Byb3RvY29sSGFuZGxlclJlZ2lzdGVyZWQodGhpcywgc2NoZW1l
LCBiYXNlVVJMLCB1cmwsIHJlc3VsdCk7Cit9CisKK3ZvaWQgV2ViTmF2aWdhdG9yQ29udGVudFV0
aWxzUHJveHk6OnVucmVnaXN0ZXJQcm90b2NvbEhhbmRsZXIoY29uc3QgU3RyaW5nJiBzY2hlbWUs
IGNvbnN0IFN0cmluZyYgYmFzZVVSTCwgY29uc3QgU3RyaW5nJiB1cmwpCit7CisgICAgIG1fcHJv
dmlkZXIudW5yZWdpc3RlclByb3RvY29sSGFuZGxlcih0aGlzLCBzY2hlbWUsIGJhc2VVUkwsIHVy
bCk7Cit9CisjZW5kaWYgLy8gRU5BQkxFKENVU1RPTV9TQ0hFTUVfSEFORExFUikKKworfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoTkFWSUdBVE9SX0NPTlRFTlRfVVRJ
TFMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTmF2aWdhdG9yQ29u
dGVudFV0aWxzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJOYXZpZ2F0b3JD
b250ZW50VXRpbHNQcm94eS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc2
ODdiMzIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTmF2
aWdhdG9yQ29udGVudFV0aWxzUHJveHkuaApAQCAtMCwwICsxLDgyIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDEyIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaWZuZGVmIFdlYk5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3h5X2gKKyNkZWZpbmUg
V2ViTmF2aWdhdG9yQ29udGVudFV0aWxzUHJveHlfaAorCisjaWYgRU5BQkxFKE5BVklHQVRPUl9D
T05URU5UX1VUSUxTKQorCisjaW5jbHVkZSAiQVBJT2JqZWN0LmgiCisjaW5jbHVkZSAiTWVzc2Fn
ZUlELmgiCisjaW5jbHVkZSAiV2ViTmF2aWdhdG9yQ29udGVudFV0aWxzUHJvdmlkZXIuaCIKKyNp
bmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorCituYW1lc3BhY2UgQ29yZUlQQyB7CitjbGFzcyBBcmd1
bWVudEVuY29kZXI7CitjbGFzcyBBcmd1bWVudERlY29kZXI7CitjbGFzcyBDb25uZWN0aW9uOwor
fQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViQ29udGV4dDsKKworY2xhc3MgV2Vi
TmF2aWdhdG9yQ29udGVudFV0aWxzUHJveHkgOiBwdWJsaWMgQVBJT2JqZWN0IHsKK3B1YmxpYzoK
KyAgICBzdGF0aWMgY29uc3QgVHlwZSBBUElUeXBlID0gVHlwZU5hdmlnYXRvckNvbnRlbnRVdGls
czsKKworICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYk5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3h5
PiBjcmVhdGUoV2ViQ29udGV4dCopOworICAgIHZpcnR1YWwgfldlYk5hdmlnYXRvckNvbnRlbnRV
dGlsc1Byb3h5KCk7CisKKyAgICB2b2lkIGNsZWFyQ29udGV4dCgpIHsgbV9jb250ZXh0ID0gMDsg
fQorCisgICAgdm9pZCBpbml0aWFsaXplUHJvdmlkZXIoY29uc3QgV0tOYXZpZ2F0b3JDb250ZW50
VXRpbHNQcm92aWRlciopOworCisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpD
b25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIq
KTsKKworcHJpdmF0ZToKKyAgICBleHBsaWNpdCBXZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm94
eShXZWJDb250ZXh0Kik7CisKKyAgICB2aXJ0dWFsIFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJu
IEFQSVR5cGU7IH0KKworICAgIC8vIEltcGxlbWVudGVkIGluIGdlbmVyYXRlZCBXZWJOYXZpZ2F0
b3JDb250ZW50VXRpbHNQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKKyAgICB2b2lkIGRpZFJlY2Vp
dmVXZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlv
biosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisgICAg
dm9pZCBkaWRSZWNlaXZlU3luY1dlYk5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3h5TWVzc2FnZShD
b3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVu
dERlY29kZXIqLCBPd25QdHI8Q29yZUlQQzo6QXJndW1lbnRFbmNvZGVyPiYpOworCisgICAgdm9p
ZCByZWdpc3RlclByb3RvY29sSGFuZGxlcihjb25zdCBTdHJpbmcmIHNjaGVtZSwgY29uc3QgU3Ry
aW5nJiBiYXNlVVJMLCBjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgU3RyaW5nJiB0aXRsZSk7Cisj
aWYgRU5BQkxFKENVU1RPTV9TQ0hFTUVfSEFORExFUikKKyAgICB2b2lkIGlzUHJvdG9jb2xIYW5k
bGVyUmVnaXN0ZXJlZChjb25zdCBTdHJpbmcmIHNjaGVtZSwgY29uc3QgU3RyaW5nJiBiYXNlVVJM
LCBjb25zdCBTdHJpbmcmIHVybCwgdWludDMyX3QmIHJlc3VsdCk7CisgICAgdm9pZCB1bnJlZ2lz
dGVyUHJvdG9jb2xIYW5kbGVyKGNvbnN0IFN0cmluZyYgc2NoZW1lLCBjb25zdCBTdHJpbmcmIGJh
c2VVUkwsIGNvbnN0IFN0cmluZyYgdXJsKTsKKyNlbmRpZiAvLyBFTkFCTEUoQ1VTVE9NX1NDSEVN
RV9IQU5ETEVSKQorCisgICAgV2ViQ29udGV4dCogbV9jb250ZXh0OworICAgIFdlYk5hdmlnYXRv
ckNvbnRlbnRVdGlsc1Byb3ZpZGVyIG1fcHJvdmlkZXI7Cit9OworCit9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShOQVZJR0FUT1JfQ09OVEVOVF9VVElMUykKKworI2Vu
ZGlmIC8vIFdlYk5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3h5X2gKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm94eS5tZXNzYWdl
cy5pbiBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQ
cm94eS5tZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNzY4
NTY2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk5hdmln
YXRvckNvbnRlbnRVdGlsc1Byb3h5Lm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMzMgQEAKKyMgQ29w
eXJpZ2h0IChDKSAyMDEyIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
IworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisjIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorIyBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUgorIyBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorIyBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LAorIyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisjaWYgRU5BQkxFKE5B
VklHQVRPUl9DT05URU5UX1VUSUxTKQorCittZXNzYWdlcyAtPiBXZWJOYXZpZ2F0b3JDb250ZW50
VXRpbHNQcm94eSB7CisgICAgUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXIoV1RGOjpTdHJpbmcgc2No
ZW1lLCBXVEY6OlN0cmluZyBiYXNlVVJMLCBXVEY6OlN0cmluZyB1cmwsIFdURjo6U3RyaW5nIHRp
dGxlKQorI2lmIEVOQUJMRShDVVNUT01fU0NIRU1FX0hBTkRMRVIpCisgICAgSXNQcm90b2NvbEhh
bmRsZXJSZWdpc3RlcmVkKFdURjo6U3RyaW5nIHNjaGVtZSwgV1RGOjpTdHJpbmcgYmFzZVVSTCwg
V1RGOjpTdHJpbmcgdXJsKSAtPiAodWludDMyX3QgcmVzdWx0KQorICAgIFVucmVnaXN0ZXJQcm90
b2NvbEhhbmRsZXIoV1RGOjpTdHJpbmcgc2NoZW1lLCBXVEY6OlN0cmluZyBiYXNlVVJMLCBXVEY6
OlN0cmluZyB1cmwpCisjZW5kaWYgLy8gRU5BQkxFKENVU1RPTV9TQ0hFTUVfSEFORExFUikKK30K
KworI2VuZGlmIC8vIEVOQUJMRShOQVZJR0FUT1JfQ09OVEVOVF9VVElMUykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKaW5kZXggMjJhMmI3Zi4uNjJlYWRj
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKQEAg
LTQwOCw2ICs0MDgsOSBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZU1lc3NhZ2Uo
Q29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQwogICAgICAgICB8fCBtZXNz
YWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViTmV0d29ya0luZm9NYW5hZ2VyUHJveHk+
KCkKICNlbmRpZgogICAgICAgICB8fCBtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNz
V2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5PigpCisjaWYgRU5BQkxFKE5BVklHQVRPUl9DT05U
RU5UX1VUSUxTKQorICAgICAgICB8fCBtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNz
V2ViTmF2aWdhdG9yQ29udGVudFV0aWxzUHJveHk+KCkKKyNlbmRpZgogI2lmIFVTRShTT1VQKQog
ICAgICAgICB8fCBtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViU291cFJlcXVl
c3RNYW5hZ2VyUHJveHk+KCkKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNDbGllbnQuY3Bw
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJOYXZpZ2F0b3JD
b250ZW50VXRpbHNDbGllbnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LmNkMjIxNDgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYk5hdmlnYXRvckNvbnRlbnRVdGlsc0NsaWVudC5jcHAKQEAgLTAsMCAr
MSw3MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIldlYk5hdmlnYXRvckNvbnRlbnRVdGlsc0NsaWVudC5oIgorCisjaWYgRU5BQkxFKE5BVklH
QVRPUl9DT05URU5UX1VUSUxTKQorCisjaW5jbHVkZSAiV2ViTmF2aWdhdG9yQ29udGVudFV0aWxz
UHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKKwordXNpbmcgbmFtZXNw
YWNlIFdlYkNvcmU7Cit1c2luZyBuYW1lc3BhY2UgTWVzc2FnZXM6OldlYk5hdmlnYXRvckNvbnRl
bnRVdGlsc1Byb3h5OworCituYW1lc3BhY2UgV2ViS2l0IHsKKwordm9pZCBXZWJOYXZpZ2F0b3JD
b250ZW50VXRpbHNDbGllbnQ6OnJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyKGNvbnN0IFN0cmluZyYg
c2NoZW1lLCBjb25zdCBTdHJpbmcmIGJhc2VVUkwsIGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBT
dHJpbmcmIHRpdGxlKQoreworICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLmNvbm5lY3Rpb24oKS0+
c2VuZChSZWdpc3RlclByb3RvY29sSGFuZGxlcihzY2hlbWUsIGJhc2VVUkwsIHVybCwgdGl0bGUp
LCAwKTsKK30KKworI2lmIEVOQUJMRShDVVNUT01fU0NIRU1FX0hBTkRMRVIpCitzdGF0aWMgaW5s
aW5lIE5hdmlnYXRvckNvbnRlbnRVdGlsc0NsaWVudDo6Q3VzdG9tSGFuZGxlcnNTdGF0ZSB0b0N1
c3RvbUhhbmRsZXJzU3RhdGUoY29uc3QgdWludDMyX3Qgc3RhdGUpCit7CisgICAgc3dpdGNoIChz
dGF0ZSkgeworICAgIGNhc2UgTmF2aWdhdG9yQ29udGVudFV0aWxzQ2xpZW50OjpDdXN0b21IYW5k
bGVyc05ldzoKKyAgICBjYXNlIE5hdmlnYXRvckNvbnRlbnRVdGlsc0NsaWVudDo6Q3VzdG9tSGFu
ZGxlcnNSZWdpc3RlcmVkOgorICAgIGNhc2UgTmF2aWdhdG9yQ29udGVudFV0aWxzQ2xpZW50OjpD
dXN0b21IYW5kbGVyc0RlY2xpbmVkOgorICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8TmF2aWdh
dG9yQ29udGVudFV0aWxzQ2xpZW50OjpDdXN0b21IYW5kbGVyc1N0YXRlPihzdGF0ZSk7CisgICAg
ZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiBO
YXZpZ2F0b3JDb250ZW50VXRpbHNDbGllbnQ6OkN1c3RvbUhhbmRsZXJzRGVjbGluZWQ7CisgICAg
fQorfQorCitOYXZpZ2F0b3JDb250ZW50VXRpbHNDbGllbnQ6OkN1c3RvbUhhbmRsZXJzU3RhdGUg
V2ViTmF2aWdhdG9yQ29udGVudFV0aWxzQ2xpZW50Ojppc1Byb3RvY29sSGFuZGxlclJlZ2lzdGVy
ZWQoY29uc3QgU3RyaW5nJiBzY2hlbWUsIGNvbnN0IFN0cmluZyYgYmFzZVVSTCwgY29uc3QgU3Ry
aW5nJiB1cmwpCit7CisgICAgdWludDMyX3QgcmVzdWx0ID0gc3RhdGljX2Nhc3Q8dWludDMyX3Q+
KE5hdmlnYXRvckNvbnRlbnRVdGlsc0NsaWVudDo6Q3VzdG9tSGFuZGxlcnNOZXcpOworICAgIFdl
YlByb2Nlc3M6OnNoYXJlZCgpLmNvbm5lY3Rpb24oKS0+c2VuZFN5bmMoSXNQcm90b2NvbEhhbmRs
ZXJSZWdpc3RlcmVkKHNjaGVtZSwgYmFzZVVSTCwgdXJsKSwgSXNQcm90b2NvbEhhbmRsZXJSZWdp
c3RlcmVkOjpSZXBseShyZXN1bHQpLCAwKTsKKyAgICByZXR1cm4gdG9DdXN0b21IYW5kbGVyc1N0
YXRlKHJlc3VsdCk7Cit9CisKK3ZvaWQgV2ViTmF2aWdhdG9yQ29udGVudFV0aWxzQ2xpZW50Ojp1
bnJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyKGNvbnN0IFN0cmluZyYgc2NoZW1lLCBjb25zdCBTdHJp
bmcmIGJhc2VVUkwsIGNvbnN0IFN0cmluZyYgdXJsKQoreworICAgIFdlYlByb2Nlc3M6OnNoYXJl
ZCgpLmNvbm5lY3Rpb24oKS0+c2VuZChVbnJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyKHNjaGVtZSwg
YmFzZVVSTCwgdXJsKSwgMCk7Cit9CisjZW5kaWYgLy8gRU5BQkxFKENVU1RPTV9TQ0hFTUVfSEFO
RExFUikKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoTkFWSUdB
VE9SX0NPTlRFTlRfVVRJTFMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYk5hdmlnYXRvckNvbnRlbnRVdGlsc0NsaWVudC5oIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJOYXZpZ2F0b3JDb250ZW50VXRp
bHNDbGllbnQuaAppbmRleCBjODBiNTc4Li44NjBkYTI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYk5hdmlnYXRvckNvbnRlbnRVdGlsc0Ns
aWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
TmF2aWdhdG9yQ29udGVudFV0aWxzQ2xpZW50LmgKQEAgLTM4LDExICszOCwxMSBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCB+V2ViTmF2aWdhdG9yQ29udGVudFV0aWxzQ2xpZW50KCkgeyB9CiAKIHBy
aXZhdGU6Ci0gICAgdmlydHVhbCB2b2lkIHJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyKGNvbnN0IFN0
cmluZyYgc2NoZW1lLCBjb25zdCBTdHJpbmcmIGJhc2VVUkwsIGNvbnN0IFN0cmluZyYgdXJsLCBj
b25zdCBTdHJpbmcmIHRpdGxlKSBPVkVSUklERSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgcmVnaXN0
ZXJQcm90b2NvbEhhbmRsZXIoY29uc3QgU3RyaW5nJiBzY2hlbWUsIGNvbnN0IFN0cmluZyYgYmFz
ZVVSTCwgY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0cmluZyYgdGl0bGUpIE9WRVJSSURFOwog
CiAjaWYgRU5BQkxFKENVU1RPTV9TQ0hFTUVfSEFORExFUikKLSAgICB2aXJ0dWFsIEN1c3RvbUhh
bmRsZXJzU3RhdGUgaXNQcm90b2NvbEhhbmRsZXJSZWdpc3RlcmVkKGNvbnN0IFN0cmluZyYsIGNv
bnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpIHsgcmV0dXJuIEN1c3RvbUhhbmRsZXJzRGVjbGlu
ZWQ7IH0KLSAgICB2aXJ0dWFsIHZvaWQgdW5yZWdpc3RlclByb3RvY29sSGFuZGxlcihjb25zdCBT
dHJpbmcmLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKSB7IH0KKyAgICB2aXJ0dWFsIEN1
c3RvbUhhbmRsZXJzU3RhdGUgaXNQcm90b2NvbEhhbmRsZXJSZWdpc3RlcmVkKGNvbnN0IFN0cmlu
ZyYsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpOworICAgIHZpcnR1YWwgdm9pZCB1bnJl
Z2lzdGVyUHJvdG9jb2xIYW5kbGVyKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIGNvbnN0
IFN0cmluZyYpOwogI2VuZGlmCiB9OwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>207839</attachid>
            <date>2013-07-31 05:14:14 -0700</date>
            <delta_ts>2013-07-31 08:38:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-92749-20130731211411.patch</filename>
            <type>text/plain</type>
            <size>45408</size>
            <attacher name="Sanghyun Park">sh919.park</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUzNTE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggODI4M2Q2Y2MxYTdhOTZh
YWY3ZTExNTA2NWZhNDE3YmJlOWVhOTgzMC4uOWVlNDYyMzZjYjk4ODUwZjY0NzdiZWY4Njc0NmFm
NWVkZjczNmI0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDEzLTA3LTMxICBTYW5n
aHl1biBQYXJrICA8c2g5MTkucGFya0BzYW1zdW5nLmNvbT4KKworICAgICAgICBbV0syXSBBZGQg
TmF2aWdhdG9yIENvbnRlbnQgVXRpbHMgQVBJIHN1cHBvcnQgZm9yIFdlYktpdDIKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkyNzQ5CisKKyAgICAgICAg
QWRkZWQgc3VwcG9ydCBvZiBOYXZpZ2F0b3IgQ29udGVudCBVdGlscyBBUEkgc3VwcG9ydCBmb3Ig
V2ViS2l0Mi4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLnByaToKKyAgICAg
ICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFNoYXJlZC9BUEkvYy9XS0Jhc2Uu
aDoKKyAgICAgICAgKiBTaGFyZWQvQVBJT2JqZWN0Lmg6CisgICAgICAgICogVGFyZ2V0LnByaToK
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0Lmg6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9DL1dLQ29udGV4dC5jcHA6CisgICAgICAgIChXS0NvbnRleHRHZXROYXZpZ2F0b3JD
b250ZW50VXRpbHMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tOYXZpZ2F0b3JDb250ZW50VXRpbHMuY3BwOiBDb3Bp
ZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYk5hdmln
YXRvckNvbnRlbnRVdGlsc0NsaWVudC5oLgorICAgICAgICAoV0tOYXZpZ2F0b3JDb250ZW50VXRp
bHNHZXRUeXBlSUQpOgorICAgICAgICAoV0tOYXZpZ2F0b3JDb250ZW50VXRpbHNTZXRQcm92aWRl
cik6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLTmF2aWdhdG9yQ29udGVudFV0aWxzLmg6
IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViQ29udGV4dDo6V2ViQ29udGV4dCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkNv
bnRleHQuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViTmF2aWdhdG9yQ29udGVudFV0aWxzUHJv
dmlkZXIuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYk5hdmlnYXRvckNvbnRlbnRVdGlsc0NsaWVudC5oLgorICAgICAgICAoV2ViS2l0
OjpXZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm92aWRlcjo6cmVnaXN0ZXJQcm90b2NvbEhhbmRs
ZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm92aWRlcjo6
aXNQcm90b2NvbEhhbmRsZXJSZWdpc3RlcmVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViTmF2aWdh
dG9yQ29udGVudFV0aWxzUHJvdmlkZXI6OnVucmVnaXN0ZXJQcm90b2NvbEhhbmRsZXIpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm92aWRlci5oOiBDb3Bp
ZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYk5hdmln
YXRvckNvbnRlbnRVdGlsc0NsaWVudC5oLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJOYXZpZ2F0
b3JDb250ZW50VXRpbHNQcm94eS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJOYXZp
Z2F0b3JDb250ZW50VXRpbHNQcm94eTo6c3VwcGxlbWVudE5hbWUpOgorICAgICAgICAoV2ViS2l0
OjpXZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm94eTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktp
dDo6V2ViTmF2aWdhdG9yQ29udGVudFV0aWxzUHJveHk6OldlYk5hdmlnYXRvckNvbnRlbnRVdGls
c1Byb3h5KToKKyAgICAgICAgKFdlYktpdDo6V2ViTmF2aWdhdG9yQ29udGVudFV0aWxzUHJveHk6
On5XZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OldlYk5h
dmlnYXRvckNvbnRlbnRVdGlsc1Byb3h5Ojppbml0aWFsaXplUHJvdmlkZXIpOgorICAgICAgICAo
V2ViS2l0OjpXZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm94eTo6cmVnaXN0ZXJQcm90b2NvbEhh
bmRsZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm94eTo6
aXNQcm90b2NvbEhhbmRsZXJSZWdpc3RlcmVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViTmF2aWdh
dG9yQ29udGVudFV0aWxzUHJveHk6OnVucmVnaXN0ZXJQcm90b2NvbEhhbmRsZXIpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm94eTo6cmVmV2ViQ29udGV4dFN1
cHBsZW1lbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm94
eTo6ZGVyZWZXZWJDb250ZXh0U3VwcGxlbWVudCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYk5h
dmlnYXRvckNvbnRlbnRVdGlsc1Byb3h5Lmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm94eS5tZXNzYWdlcy5pbjogQWRkZWQuCisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNDbGll
bnQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViTmF2aWdhdG9yQ29udGVudFV0aWxz
Q2xpZW50OjpyZWdpc3RlclByb3RvY29sSGFuZGxlcik6CisgICAgICAgIChXZWJLaXQ6OnRvQ3Vz
dG9tSGFuZGxlcnNTdGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYk5hdmlnYXRvckNvbnRlbnRV
dGlsc0NsaWVudDo6aXNQcm90b2NvbEhhbmRsZXJSZWdpc3RlcmVkKToKKyAgICAgICAgKFdlYktp
dDo6V2ViTmF2aWdhdG9yQ29udGVudFV0aWxzQ2xpZW50Ojp1bnJlZ2lzdGVyUHJvdG9jb2xIYW5k
bGVyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYk5hdmlnYXRvckNv
bnRlbnRVdGlsc0NsaWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6V2ViUGFnZSk6CisKIDIwMTMtMDctMzAg
IFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CiAKICAgICAgICAgREhUTUwg
ZHJhZyBjYW4gcmVzdWx0IGluIGEgbnVsbC1kZXJlZiB1bmRlciBXZWJEcmFnQ2xpZW50OjpzdGFy
dERyYWcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0IGIvU291cmNl
L1dlYktpdDIvQ01ha2VMaXN0cy50eHQKaW5kZXggOTU2NzUxNmJhODU0ZjJiZTgyMGZhMTc5ODdh
ZDk1MDE3MjExNTM2OC4uOWZjMjNkMjdiMzg4NGNjN2EzMjliZTkzNDc0NThjZmY1OWI4YmFhNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dl
YktpdDIvQ01ha2VMaXN0cy50eHQKQEAgLTI5OCw2ICsyOTgsOCBAQCBzZXQoV2ViS2l0Ml9TT1VS
Q0VTCiAgICAgVUlQcm9jZXNzL1dlYkxvYWRlckNsaWVudC5jcHAKICAgICBVSVByb2Nlc3MvV2Vi
TWVkaWFDYWNoZU1hbmFnZXJQcm94eS5jcHAKICAgICBVSVByb2Nlc3MvV2ViTmF2aWdhdGlvbkRh
dGEuY3BwCisgICAgVUlQcm9jZXNzL1dlYk5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3ZpZGVyLmNw
cAorICAgIFVJUHJvY2Vzcy9XZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm94eS5jcHAKICAgICBV
SVByb2Nlc3MvV2ViTmV0d29ya0luZm9NYW5hZ2VyUHJveHkuY3BwCiAgICAgVUlQcm9jZXNzL1dl
Yk5ldHdvcmtJbmZvUHJvdmlkZXIuY3BwCiAgICAgVUlQcm9jZXNzL1dlYk9wZW5QYW5lbFJlc3Vs
dExpc3RlbmVyUHJveHkuY3BwCkBAIC0zNDEsNiArMzQzLDcgQEAgc2V0KFdlYktpdDJfU09VUkNF
UwogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS0tleVZhbHVlU3RvcmFnZU1hbmFnZXIuY3BwCiAgICAg
VUlQcm9jZXNzL0FQSS9DL1dLTWVkaWFDYWNoZU1hbmFnZXIuY3BwCiAgICAgVUlQcm9jZXNzL0FQ
SS9DL1dLTmF2aWdhdGlvbkRhdGEuY3BwCisgICAgVUlQcm9jZXNzL0FQSS9DL1dLTmF2aWdhdG9y
Q29udGVudFV0aWxzLmNwcAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS05ldHdvcmtJbmZvLmNwcAog
ICAgIFVJUHJvY2Vzcy9BUEkvQy9XS05ldHdvcmtJbmZvTWFuYWdlci5jcHAKICAgICBVSVByb2Nl
c3MvQVBJL0MvV0tOb3RpZmljYXRpb24uY3BwCkBAIC00OTIsNiArNDk1LDcgQEAgc2V0KFdlYktp
dDJfU09VUkNFUwogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViR2VvbG9jYXRpb25D
bGllbnQuY3BwCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGll
bnQuY3BwCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JGcm9udGVu
ZENsaWVudC5jcHAKKyAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYk5hdmlnYXRvckNv
bnRlbnRVdGlsc0NsaWVudC5jcHAKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYk5l
dHdvcmtJbmZvQ2xpZW50LmNwcAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTm90
aWZpY2F0aW9uQ2xpZW50LmNwcAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxh
dGZvcm1TdHJhdGVnaWVzLmNwcApAQCAtNTQ0LDYgKzU0OCw3IEBAIHNldChXZWJLaXQyX01FU1NB
R0VTX0lOX0ZJTEVTCiAgICAgVUlQcm9jZXNzL1dlYkljb25EYXRhYmFzZS5tZXNzYWdlcy5pbgog
ICAgIFVJUHJvY2Vzcy9XZWJJbnNwZWN0b3JQcm94eS5tZXNzYWdlcy5pbgogICAgIFVJUHJvY2Vz
cy9XZWJNZWRpYUNhY2hlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCisgICAgVUlQcm9jZXNzL1dl
Yk5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3h5Lm1lc3NhZ2VzLmluCiAgICAgVUlQcm9jZXNzL1dl
Yk5ldHdvcmtJbmZvTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCiAgICAgVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5tZXNzYWdlcy5pbgogICAgIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2Fn
ZXMuaW4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0Rlcml2ZWRTb3VyY2VzLnByaSBiL1Nv
dXJjZS9XZWJLaXQyL0Rlcml2ZWRTb3VyY2VzLnByaQppbmRleCBkYzE3ZmFhYWMwYjljY2ZmODI4
YjRiY2Q3NjE0YmJhYTYzZjFkZDljLi5mYTViMGVkZTFjMTVjM2NiMzdiYzdhYjVhNzUyYmE4OGZi
YjVjMmMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9EZXJpdmVkU291cmNlcy5wcmkKKysr
IGIvU291cmNlL1dlYktpdDIvRGVyaXZlZFNvdXJjZXMucHJpCkBAIC05NSw2ICs5NSw3IEBAIE1F
U1NBR0VfUkVDRUlWRVJTID0gXAogICAgIFdlYkluc3BlY3RvclByb3h5Lm1lc3NhZ2VzLmluIFwK
ICAgICBXZWJNZWRpYUNhY2hlTWFuYWdlci5tZXNzYWdlcy5pbiBcCiAgICAgV2ViTWVkaWFDYWNo
ZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiBcCisgICAgV2ViTmF2aWdhdG9yQ29udGVudFV0aWxz
UHJveHkubWVzc2FnZXMuaW4gXAogICAgIFdlYk5ldHdvcmtJbmZvTWFuYWdlci5tZXNzYWdlcy5p
biBcCiAgICAgV2ViTmV0d29ya0luZm9NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gXAogICAgIFdl
Yk5vdGlmaWNhdGlvbk1hbmFnZXIubWVzc2FnZXMuaW4gXApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmxp
c3QuYW0KaW5kZXggZGM5MzNjNDJjOWE1MTM4MjBjZDM5NjlkNjlmMDkxNTA5ZWYyODkyZi4uYjlm
ZWViZTdlNzcxYjE0MzgyOTM1ODNlMTdlZjJmN2MxZjIxNmRiNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtl
ZmlsZS5saXN0LmFtCkBAIC03Miw2ICs3Miw3IEBAIHdlYmtpdDJfaF9hcGkgKz0gXAogCSQoV2Vi
S2l0MikvVUlQcm9jZXNzL0FQSS9DL1dLTWVkaWFDYWNoZU1hbmFnZXIuaCBcCiAJJChXZWJLaXQy
KS9VSVByb2Nlc3MvQVBJL0MvV0tOYXRpdmVFdmVudC5oIFwKIAkkKFdlYktpdDIpL1VJUHJvY2Vz
cy9BUEkvQy9XS05hdmlnYXRpb25EYXRhLmggXAorCSQoV2ViS2l0MikvVUlQcm9jZXNzL0FQSS9D
L1dLTmF2aWdhdG9yQ29udGVudFV0aWxzLmggXAogCSQoV2ViS2l0MikvVUlQcm9jZXNzL0FQSS9D
L1dLTmV0d29ya0luZm8uaCBcCiAJJChXZWJLaXQyKS9VSVByb2Nlc3MvQVBJL0MvV0tOZXR3b3Jr
SW5mb01hbmFnZXIuaCBcCiAJJChXZWJLaXQyKS9VSVByb2Nlc3MvQVBJL0MvV0tOb3RpZmljYXRp
b24uaCBcCkBAIC0yMDgsNiArMjA5LDggQEAgd2Via2l0Ml9idWlsdF9zb3VyY2VzICs9IFwKIAlE
ZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYk1lZGlhQ2FjaGVNYW5hZ2VyTWVzc2FnZXMuaCBcCiAJ
RGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJNZWRpYUNhY2hlTWFuYWdlclByb3h5TWVzc2FnZVJl
Y2VpdmVyLmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJNZWRpYUNhY2hlTWFuYWdl
clByb3h5TWVzc2FnZXMuaCBcCisJRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJOYXZpZ2F0b3JD
b250ZW50VXRpbHNQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1dl
YktpdDIvV2ViTmF2aWdhdG9yQ29udGVudFV0aWxzUHJveHlNZXNzYWdlcy5oIFwKIAlEZXJpdmVk
U291cmNlcy9XZWJLaXQyL1dlYk5ldHdvcmtJbmZvTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAg
XAogCURlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViTmV0d29ya0luZm9NYW5hZ2VyTWVzc2FnZXMu
aCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJOZXR3b3JrSW5mb01hbmFnZXJQcm94eU1l
c3NhZ2VSZWNlaXZlci5jcHAgXApAQCAtNjE0LDYgKzYxNyw4IEBAIHdlYmtpdDJfc291cmNlcyAr
PSBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLTmF0aXZlRXZlbnQuaCBcCiAJ
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLTmF2aWdhdGlvbkRhdGEuY3BwIFwKIAlT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tOYXZpZ2F0aW9uRGF0YS5oIFwKKwlTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tOYXZpZ2F0b3JDb250ZW50VXRpbHMuY3BwIFwK
KwlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tOYXZpZ2F0b3JDb250ZW50VXRpbHMu
aCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLTmV0d29ya0luZm8uY3BwIFwK
IAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tOZXR3b3JrSW5mby5oIFwKIAlTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tOZXR3b3JrSW5mb01hbmFnZXIuY3BwIFwKQEAg
LTk1Miw2ICs5NTcsMTAgQEAgd2Via2l0Ml9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViTG9hZGVyQ2xpZW50LmggXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJOYXZpZ2F0aW9uRGF0YS5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJOYXZp
Z2F0aW9uRGF0YS5oIFwKKwlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTmF2aWdhdG9yQ29u
dGVudFV0aWxzUHJvdmlkZXIuY3BwIFwKKwlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTmF2
aWdhdG9yQ29udGVudFV0aWxzUHJvdmlkZXIuaCBcCisJU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYk5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3h5LmNwcCBcCisJU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYk5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3h5LmggXAogCVNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJOZXR3b3JrSW5mb01hbmFnZXJQcm94eS5jcHAgXAogCVNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJOZXR3b3JrSW5mb01hbmFnZXJQcm94eS5oIFwKIAlTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViTmV0d29ya0luZm9Qcm92aWRlci5jcHAgXApAQCAtMTE4Myw2ICsx
MTkyLDggQEAgd2Via2l0Ml9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckZyb250ZW5kQ2xpZW50LmNwcCBc
CiAJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JG
cm9udGVuZENsaWVudC5oIFwKKwlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYk5hdmlnYXRvckNvbnRlbnRVdGlsc0NsaWVudC5jcHAgXAorCVNvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTmF2aWdhdG9yQ29udGVudFV0aWxzQ2xpZW50
LmggXAogCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTmV0d29y
a0luZm9DbGllbnQuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYk5ldHdvcmtJbmZvQ2xpZW50LmggXAogCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50LmNwcCBcCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNlLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvQVBJL2MvV0tCYXNlLmgKaW5kZXggZWE4ZTJmMWJhNzQxYTc1YTI0MjBkOTFkMzIwOTM2MDIz
Mzc0YTRmYi4uZjQ2MDRmYjVhZTc0ZTY1NzQ0MDI5NDM0NTUwOTJkNDZiOGFjNmM5NCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLQmFzZS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0Jhc2UuaApAQCAtMTIyLDYgKzEyMiw3IEBAIHR5cGVkZWYg
Y29uc3Qgc3RydWN0IE9wYXF1ZVdLSW5zcGVjdG9yKiBXS0luc3BlY3RvclJlZjsKIHR5cGVkZWYg
Y29uc3Qgc3RydWN0IE9wYXF1ZVdLS2V5VmFsdWVTdG9yYWdlTWFuYWdlciogV0tLZXlWYWx1ZVN0
b3JhZ2VNYW5hZ2VyUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tNZWRpYUNhY2hl
TWFuYWdlciogV0tNZWRpYUNhY2hlTWFuYWdlclJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9w
YXF1ZVdLTmF2aWdhdGlvbkRhdGEqIFdLTmF2aWdhdGlvbkRhdGFSZWY7Cit0eXBlZGVmIGNvbnN0
IHN0cnVjdCBPcGFxdWVXS05hdmlnYXRvckNvbnRlbnRVdGlscyogV0tOYXZpZ2F0b3JDb250ZW50
VXRpbHNSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS05ldHdvcmtJbmZvTWFuYWdl
ciogV0tOZXR3b3JrSW5mb01hbmFnZXJSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVX
S05ldHdvcmtJbmZvKiBXS05ldHdvcmtJbmZvUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3Bh
cXVlV0tOb3RpZmljYXRpb24qIFdLTm90aWZpY2F0aW9uUmVmOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL0FQSU9iamVjdC5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSU9i
amVjdC5oCmluZGV4IDQ0MWUwNWU5ODdmNjczYzJjNzRhNmNjN2E3MGU0YTdjNGU0NzMyZjguLjMy
OTYxMWI5YzMzN2E2ZDM3ZDY4NTEwZDVjYWJkNGNmMGE2ZjkyODUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9BUElPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
QVBJT2JqZWN0LmgKQEAgLTk2LDYgKzk2LDcgQEAgcHVibGljOgogICAgICAgICBUeXBlS2V5VmFs
dWVTdG9yYWdlTWFuYWdlciwKICAgICAgICAgVHlwZU1lZGlhQ2FjaGVNYW5hZ2VyLAogICAgICAg
ICBUeXBlTmF2aWdhdGlvbkRhdGEsCisgICAgICAgIFR5cGVOYXZpZ2F0b3JDb250ZW50VXRpbHMs
CiAgICAgICAgIFR5cGVOZXR3b3JrSW5mbywKICAgICAgICAgVHlwZU5ldHdvcmtJbmZvTWFuYWdl
ciwKICAgICAgICAgVHlwZU5vdGlmaWNhdGlvbiwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1RhcmdldC5wcmkgYi9Tb3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJpCmluZGV4IGUxNTM4Yjc4Yzcx
ZjE0NzI4NDE5Y2I1MzdhOGExNzNjNjIxOTQ3MGUuLjk5MGRmM2FlNzU4NWEzYzg3ZWZhZjNkOTNj
NjNmMWFkMTk1MWVmYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1RhcmdldC5wcmkKKysr
IGIvU291cmNlL1dlYktpdDIvVGFyZ2V0LnByaQpAQCAtMTc4LDYgKzE3OCw3IEBAIEhFQURFUlMg
Kz0gXAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS09wZW5QYW5lbFBhcmFtZXRlcnMuaCBcCiAgICAg
VUlQcm9jZXNzL0FQSS9DL1dLT3BlblBhbmVsUmVzdWx0TGlzdGVuZXIuaCBcCiAgICAgVUlQcm9j
ZXNzL0FQSS9DL1dLTmF2aWdhdGlvbkRhdGEuaCBcCisgICAgVUlQcm9jZXNzL0FQSS9DL1dLTmF2
aWdhdG9yQ29udGVudFV0aWxzLmggXAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS05ldHdvcmtJbmZv
LmggXAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS05ldHdvcmtJbmZvTWFuYWdlci5oIFwKICAgICBV
SVByb2Nlc3MvQVBJL0MvV0tOb3RpZmljYXRpb24uaCBcCkBAIC0yNzUsNiArMjc2LDggQEAgSEVB
REVSUyArPSBcCiAgICAgVUlQcm9jZXNzL1dlYkxvYWRlckNsaWVudC5oIFwKICAgICBVSVByb2Nl
c3MvV2ViTWVkaWFDYWNoZU1hbmFnZXJQcm94eS5oIFwKICAgICBVSVByb2Nlc3MvV2ViTmF2aWdh
dGlvbkRhdGEuaCBcCisgICAgVUlQcm9jZXNzL1dlYk5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3Zp
ZGVyLmggXAorICAgIFVJUHJvY2Vzcy9XZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm94eS5oIFwK
ICAgICBVSVByb2Nlc3MvV2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXJQcm94eS5oIFwKICAgICBV
SVByb2Nlc3MvV2ViUGFnZUNvbnRleHRNZW51Q2xpZW50LmggXAogICAgIFVJUHJvY2Vzcy9XZWJQ
YWdlR3JvdXAuaCBcCkBAIC0zNTEsNiArMzU0LDcgQEAgSEVBREVSUyArPSBcCiAgICAgV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNsaWVudC5oIFwKICAgICBXZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5oIFwKICAgICBXZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckZyb250ZW5kQ2xpZW50LmggXAorICAgIFdlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTmF2aWdhdG9yQ29udGVudFV0aWxzQ2xpZW50LmggXAog
ICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTmV0d29ya0luZm9DbGllbnQuaCBcCiAg
ICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJOb3RpZmljYXRpb25DbGllbnQuaCBcCiAg
ICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaCBcCkBA
IC01NDQsNiArNTQ4LDcgQEAgU09VUkNFUyArPSBcCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLT3Bl
blBhbmVsUGFyYW1ldGVycy5jcHAgXAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS09wZW5QYW5lbFJl
c3VsdExpc3RlbmVyLmNwcCBcCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLTmF2aWdhdGlvbkRhdGEu
Y3BwIFwKKyAgICBVSVByb2Nlc3MvQVBJL0MvV0tOYXZpZ2F0b3JDb250ZW50VXRpbHMuY3BwIFwK
ICAgICBVSVByb2Nlc3MvQVBJL0MvV0tOZXR3b3JrSW5mby5jcHAgXAogICAgIFVJUHJvY2Vzcy9B
UEkvQy9XS05ldHdvcmtJbmZvTWFuYWdlci5jcHAgXAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS1Bh
Z2UuY3BwIFwKQEAgLTYzMiw2ICs2MzcsOCBAQCBTT1VSQ0VTICs9IFwKICAgICBVSVByb2Nlc3Mv
V2ViTG9hZGVyQ2xpZW50LmNwcCBcCiAgICAgVUlQcm9jZXNzL1dlYk1lZGlhQ2FjaGVNYW5hZ2Vy
UHJveHkuY3BwIFwKICAgICBVSVByb2Nlc3MvV2ViTmF2aWdhdGlvbkRhdGEuY3BwIFwKKyAgICBV
SVByb2Nlc3MvV2ViTmF2aWdhdG9yQ29udGVudFV0aWxzUHJvdmlkZXIuY3BwIFwKKyAgICBVSVBy
b2Nlc3MvV2ViTmF2aWdhdG9yQ29udGVudFV0aWxzUHJveHkuY3BwIFwKICAgICBVSVByb2Nlc3Mv
V2ViTmV0d29ya0luZm9NYW5hZ2VyUHJveHkuY3BwIFwKICAgICBVSVByb2Nlc3MvV2ViTmV0d29y
a0luZm9Qcm92aWRlci5jcHAgXAogICAgIFVJUHJvY2Vzcy9XZWJPcGVuUGFuZWxSZXN1bHRMaXN0
ZW5lclByb3h5LmNwcCBcCkBAIC03MzAsNiArNzM3LDcgQEAgU09VUkNFUyArPSBcCiAgICAgV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNsaWVudC5jcHAgXAogICAgIFdl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50LmNwcCBcCiAgICAgV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JGcm9udGVuZENsaWVudC5jcHAgXAor
ICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTmF2aWdhdG9yQ29udGVudFV0aWxzQ2xp
ZW50LmNwcCBcCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJOZXR3b3JrSW5mb0Ns
aWVudC5jcHAgXAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9u
Q2xpZW50LmNwcCBcCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0
cmF0ZWdpZXMuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Qy9XS0FQSUNhc3QuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3Qu
aAppbmRleCA2NGM4ZDFhYmZiMTAwYzhlOTYyNTU3NzkxMTliYTdiNGUxNmViOWIzLi4yNTM3YTk0
NTM0ZjhjMTA4MGYxZjQ0MDAwZWU2N2EzMmI0ZjA5OTI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oCkBAIC04MCw2ICs4MCw3IEBAIGNsYXNzIFdlYkluc3Bl
Y3RvclByb3h5OwogY2xhc3MgV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlcjsKIGNsYXNzIFdlYk1l
ZGlhQ2FjaGVNYW5hZ2VyUHJveHk7CiBjbGFzcyBXZWJOYXZpZ2F0aW9uRGF0YTsKK2NsYXNzIFdl
Yk5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3h5OwogY2xhc3MgV2ViTmV0d29ya0luZm9NYW5hZ2Vy
UHJveHk7CiBjbGFzcyBXZWJOZXR3b3JrSW5mbzsKIGNsYXNzIFdlYk5vdGlmaWNhdGlvbjsKQEAg
LTEyNSw2ICsxMjYsNyBAQCBXS19BRERfQVBJX01BUFBJTkcoV0tJY29uRGF0YWJhc2VSZWYsIFdl
Ykljb25EYXRhYmFzZSkKIFdLX0FERF9BUElfTUFQUElORyhXS0tleVZhbHVlU3RvcmFnZU1hbmFn
ZXJSZWYsIFdlYktleVZhbHVlU3RvcmFnZU1hbmFnZXIpCiBXS19BRERfQVBJX01BUFBJTkcoV0tN
ZWRpYUNhY2hlTWFuYWdlclJlZiwgV2ViTWVkaWFDYWNoZU1hbmFnZXJQcm94eSkKIFdLX0FERF9B
UElfTUFQUElORyhXS05hdmlnYXRpb25EYXRhUmVmLCBXZWJOYXZpZ2F0aW9uRGF0YSkKK1dLX0FE
RF9BUElfTUFQUElORyhXS05hdmlnYXRvckNvbnRlbnRVdGlsc1JlZiwgV2ViTmF2aWdhdG9yQ29u
dGVudFV0aWxzUHJveHkpCiBXS19BRERfQVBJX01BUFBJTkcoV0tOZXR3b3JrSW5mb01hbmFnZXJS
ZWYsIFdlYk5ldHdvcmtJbmZvTWFuYWdlclByb3h5KQogV0tfQUREX0FQSV9NQVBQSU5HKFdLTmV0
d29ya0luZm9SZWYsIFdlYk5ldHdvcmtJbmZvKQogV0tfQUREX0FQSV9NQVBQSU5HKFdLTm90aWZp
Y2F0aW9uTWFuYWdlclJlZiwgV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5KQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcAppbmRleCAxNjI5YTU2MjczOThl
ZjY2MzVmYzNiNDBmZThkNTNlYmJhZmI0NDZhLi4xODkzOWIzYjBkZTEwMDA0ZWZhNGNkY2Y4MWFh
NWQ4ZmMwMmIwN2VjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mv
V0tDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250
ZXh0LmNwcApAQCAtNDgsNiArNDgsOSBAQAogI2lmIEVOQUJMRShCQVRURVJZX1NUQVRVUykKICNp
bmNsdWRlICJXZWJCYXR0ZXJ5TWFuYWdlclByb3h5LmgiCiAjZW5kaWYKKyNpZiBFTkFCTEUoTkFW
SUdBVE9SX0NPTlRFTlRfVVRJTFMpCisjaW5jbHVkZSAiV2ViTmF2aWdhdG9yQ29udGVudFV0aWxz
UHJveHkuaCIKKyNlbmRpZgogI2lmIEVOQUJMRShORVRXT1JLX0lORk8pCiAjaW5jbHVkZSAiV2Vi
TmV0d29ya0luZm9NYW5hZ2VyUHJveHkuaCIKICNlbmRpZgpAQCAtMjU1LDYgKzI1OCwxNSBAQCBX
S01lZGlhQ2FjaGVNYW5hZ2VyUmVmIFdLQ29udGV4dEdldE1lZGlhQ2FjaGVNYW5hZ2VyKFdLQ29u
dGV4dFJlZiBjb250ZXh0UmVmKQogICAgIHJldHVybiB0b0FQSSh0b0ltcGwoY29udGV4dFJlZikt
PnN1cHBsZW1lbnQ8V2ViTWVkaWFDYWNoZU1hbmFnZXJQcm94eT4oKSk7CiB9CiAKK1dLTmF2aWdh
dG9yQ29udGVudFV0aWxzUmVmIFdLQ29udGV4dEdldE5hdmlnYXRvckNvbnRlbnRVdGlscyhXS0Nv
bnRleHRSZWYgY29udGV4dFJlZikKK3sKKyNpZiBFTkFCTEUoTkFWSUdBVE9SX0NPTlRFTlRfVVRJ
TFMpCisgICAgcmV0dXJuIHRvQVBJKHRvSW1wbChjb250ZXh0UmVmKS0+c3VwcGxlbWVudDxXZWJO
YXZpZ2F0b3JDb250ZW50VXRpbHNQcm94eT4oKSk7CisjZWxzZQorICAgIHJldHVybiAwOworI2Vu
ZGlmCit9CisKIFdLTm90aWZpY2F0aW9uTWFuYWdlclJlZiBXS0NvbnRleHRHZXROb3RpZmljYXRp
b25NYW5hZ2VyKFdLQ29udGV4dFJlZiBjb250ZXh0UmVmKQogewogICAgIHJldHVybiB0b0FQSSh0
b0ltcGwoY29udGV4dFJlZiktPnN1cHBsZW1lbnQ8V2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5
PigpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRl
eHQuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuaAppbmRleCAz
Y2U3MzFlNzhmMGZjZDgwYjhhOWFkN2U0ZmEwNWQxNTVjOTMwMGUwLi5mNDE1NzgzMWI1N2E1MWM3
ZjY4MDk4ZDdlYTNjZGNjYWQ4NGI4ZWE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0MvV0tDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9DL1dLQ29udGV4dC5oCkBAIC0xOTQsNiArMTk0LDcgQEAgV0tfRVhQT1JUIFdLTWVkaWFDYWNo
ZU1hbmFnZXJSZWYgV0tDb250ZXh0R2V0TWVkaWFDYWNoZU1hbmFnZXIoV0tDb250ZXh0UmVmIGNv
bnQKIFdLX0VYUE9SVCBXS05ldHdvcmtJbmZvTWFuYWdlclJlZiBXS0NvbnRleHRHZXROZXR3b3Jr
SW5mb01hbmFnZXIoV0tDb250ZXh0UmVmIGNvbnRleHQpOwogV0tfRVhQT1JUIFdLTm90aWZpY2F0
aW9uTWFuYWdlclJlZiBXS0NvbnRleHRHZXROb3RpZmljYXRpb25NYW5hZ2VyKFdLQ29udGV4dFJl
ZiBjb250ZXh0KTsKIFdLX0VYUE9SVCBXS1BsdWdpblNpdGVEYXRhTWFuYWdlclJlZiBXS0NvbnRl
eHRHZXRQbHVnaW5TaXRlRGF0YU1hbmFnZXIoV0tDb250ZXh0UmVmIGNvbnRleHQpOworV0tfRVhQ
T1JUIFdLTmF2aWdhdG9yQ29udGVudFV0aWxzUmVmIFdLQ29udGV4dEdldE5hdmlnYXRvckNvbnRl
bnRVdGlscyhXS0NvbnRleHRSZWYgY29udGV4dCk7CiBXS19FWFBPUlQgV0tSZXNvdXJjZUNhY2hl
TWFuYWdlclJlZiBXS0NvbnRleHRHZXRSZXNvdXJjZUNhY2hlTWFuYWdlcihXS0NvbnRleHRSZWYg
Y29udGV4dCk7CiAgICAgCiB0eXBlZGVmIHZvaWQgKCpXS0NvbnRleHRHZXRTdGF0aXN0aWNzRnVu
Y3Rpb24pKFdLRGljdGlvbmFyeVJlZiBzdGF0aXN0aWNzLCBXS0Vycm9yUmVmIGVycm9yLCB2b2lk
KiBmdW5jdGlvbkNvbnRleHQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9DL1dLTmF2aWdhdG9yQ29udGVudFV0aWxzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQy9XS05hdmlnYXRvckNvbnRlbnRVdGlscy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmY3ZjZm
ZjM5ZDU5Y2YwMzk5YWIyNmUyNTQxYzk4YTc5MDIwNTY5ZQotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS05hdmlnYXRvckNvbnRlbnRVdGlscy5jcHAK
QEAgLTAsMCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBTYW1zdW5nIEVsZWN0
cm9uaWNzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiV0tOYXZpZ2F0b3JDb250ZW50VXRpbHMuaCIKKworI2lmIEVOQUJMRShO
QVZJR0FUT1JfQ09OVEVOVF9VVElMUykKKyNpbmNsdWRlICJXS0FQSUNhc3QuaCIKKyNpbmNsdWRl
ICJXZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm94eS5oIgorCit1c2luZyBuYW1lc3BhY2UgV2Vi
S2l0OworI2VuZGlmIC8vIEVOQUJMRShOQVZJR0FUT1JfQ09OVEVOVF9VVElMUykKKworV0tUeXBl
SUQgV0tOYXZpZ2F0b3JDb250ZW50VXRpbHNHZXRUeXBlSUQoKQoreworI2lmIEVOQUJMRShOQVZJ
R0FUT1JfQ09OVEVOVF9VVElMUykKKyAgICByZXR1cm4gdG9BUEkoV2ViTmF2aWdhdG9yQ29udGVu
dFV0aWxzUHJveHk6OkFQSVR5cGUpOworI2Vsc2UKKyAgICByZXR1cm4gMDsKKyNlbmRpZgorfQor
Cit2b2lkIFdLTmF2aWdhdG9yQ29udGVudFV0aWxzU2V0UHJvdmlkZXIoV0tOYXZpZ2F0b3JDb250
ZW50VXRpbHNSZWYgcmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJSZWYsIGNvbnN0IFdLTmF2aWdhdG9y
Q29udGVudFV0aWxzUHJvdmlkZXIqIHdrUHJvdmlkZXIpCit7CisjaWYgRU5BQkxFKE5BVklHQVRP
Ul9DT05URU5UX1VUSUxTKQorICAgIHRvSW1wbChyZWdpc3RlclByb3RvY29sSGFuZGxlclJlZikt
PmluaXRpYWxpemVQcm92aWRlcih3a1Byb3ZpZGVyKTsKKyNlbmRpZgorfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLTmF2aWdhdG9yQ29udGVudFV0aWxzLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tOYXZpZ2F0b3JDb250ZW50VXRpbHMu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5mNjNjZTIzMDAzYTdiNWE2YWY2OGQzNDVhYzdhZjkwZmRhY2YxMjBmCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLTmF2aWdh
dG9yQ29udGVudFV0aWxzLmgKQEAgLTAsMCArMSw2NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMyBTYW1zdW5nIEVsZWN0cm9uaWNzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaWZuZGVmIFdLTmF2aWdhdG9yQ29udGVudFV0aWxzX2gKKyNkZWZpbmUgV0tOYXZpZ2F0b3JD
b250ZW50VXRpbHNfaAorCisjaW5jbHVkZSA8V2ViS2l0Mi9XS0Jhc2UuaD4KKworI2lmZGVmIF9f
Y3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCitlbnVtIHsKKyAgICBrV0tDdXN0b21I
YW5kbGVyc05ldywKKyAgICBrV0tDdXN0b21IYW5kbGVyc1JlZ2lzdGVyZWQsCisgICAga1dLQ3Vz
dG9tSGFuZGxlcnNEZWNsaW5lZAorfTsKK3R5cGVkZWYgdWludDMyX3QgV0tDdXN0b21IYW5kbGVy
c1N0YXRlOworCit0eXBlZGVmIHZvaWQgKCpXS05hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3ZpZGVy
UmVnaXN0ZXJQcm90b2NvbENhbGxiYWNrKShXS05hdmlnYXRvckNvbnRlbnRVdGlsc1JlZiByZWdp
c3RlclByb3RvY29sSGFuZGxlclJlZiwgV0tTdHJpbmdSZWYgc2NoZW1lLCBXS1N0cmluZ1JlZiBi
YXNlVVJMLCBXS1N0cmluZ1JlZiB1cmwsIFdLU3RyaW5nUmVmIHRpdGxlLCBjb25zdCB2b2lkKiBj
bGllbnRJbmZvKTsKK3R5cGVkZWYgV0tDdXN0b21IYW5kbGVyc1N0YXRlICgqV0tOYXZpZ2F0b3JD
b250ZW50VXRpbHNQcm92aWRlcklzUHJvdG9jb2xSZWdpc3RlcmVkQ2FsbGJhY2spKFdLTmF2aWdh
dG9yQ29udGVudFV0aWxzUmVmIHJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUmVmLCBXS1N0cmluZ1Jl
ZiBzY2hlbWUsIFdLU3RyaW5nUmVmIGJhc2VVUkwsIFdLU3RyaW5nUmVmIHVybCwgY29uc3Qgdm9p
ZCogY2xpZW50SW5mbyk7Cit0eXBlZGVmIHZvaWQgKCpXS05hdmlnYXRvckNvbnRlbnRVdGlsc1By
b3ZpZGVyVW5yZWdpc3RlclByb3RvY29sQ2FsbGJhY2spKFdLTmF2aWdhdG9yQ29udGVudFV0aWxz
UmVmIHJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUmVmLCBXS1N0cmluZ1JlZiBzY2hlbWUsIFdLU3Ry
aW5nUmVmIGJhc2VVUkwsIFdLU3RyaW5nUmVmIHVybCwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7
CisKK3N0cnVjdCBXS05hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3ZpZGVyIHsKKyAgICBpbnQgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB2ZXJzaW9uOworICAgIGNvbnN0IHZvaWQgKiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsaWVudEluZm87CisgICAgV0tOYXZpZ2F0
b3JDb250ZW50VXRpbHNQcm92aWRlclJlZ2lzdGVyUHJvdG9jb2xDYWxsYmFjayAgICAgICAgICAg
ICAgcmVnaXN0ZXJQcm90b2NvbEhhbmRsZXI7CisgICAgV0tOYXZpZ2F0b3JDb250ZW50VXRpbHNQ
cm92aWRlcklzUHJvdG9jb2xSZWdpc3RlcmVkQ2FsbGJhY2sgICAgICAgICAgaXNQcm90b2NvbEhh
bmRsZXJSZWdpc3RlcmVkOworICAgIFdLTmF2aWdhdG9yQ29udGVudFV0aWxzUHJvdmlkZXJVbnJl
Z2lzdGVyUHJvdG9jb2xDYWxsYmFjayAgICAgICAgICAgIHVucmVnaXN0ZXJQcm90b2NvbEhhbmRs
ZXI7Cit9OwordHlwZWRlZiBzdHJ1Y3QgV0tOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm92aWRlciBX
S05hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3ZpZGVyOworCitlbnVtIHsga1dLTmF2aWdhdG9yQ29u
dGVudFV0aWxzUHJvdmlkZXJDdXJyZW50VmVyc2lvbiA9IDAgfTsKKworV0tfRVhQT1JUIFdLVHlw
ZUlEIFdLTmF2aWdhdG9yQ29udGVudFV0aWxzR2V0VHlwZUlEKCk7CisKK1dLX0VYUE9SVCB2b2lk
IFdLTmF2aWdhdG9yQ29udGVudFV0aWxzU2V0UHJvdmlkZXIoV0tOYXZpZ2F0b3JDb250ZW50VXRp
bHNSZWYgcmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJSZWYsIGNvbnN0IFdLTmF2aWdhdG9yQ29udGVu
dFV0aWxzUHJvdmlkZXIqIHByb3ZpZGVyKTsKKworI2lmZGVmIF9fY3BsdXNwbHVzCit9CisjZW5k
aWYKKworI2VuZGlmIC8vIFdLTmF2aWdhdG9yQ29udGVudFV0aWxzX2gKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJDb250ZXh0LmNwcAppbmRleCA1MGFjMjNmZDkxNWZjYzg4MDYwYzliMjZiZTU3
MGZhMjBmMjdjYTFiLi4zYzlkNzU0NmE0YTY2MzM4NTQzNzgyOTFkZTAzYTU2MmQ4MDIxOWIyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwCkBAIC03MCw2ICs3MCwxMCBA
QAogI2luY2x1ZGUgIldlYkJhdHRlcnlNYW5hZ2VyUHJveHkuaCIKICNlbmRpZgogCisjaWYgRU5B
QkxFKE5BVklHQVRPUl9DT05URU5UX1VUSUxTKQorI2luY2x1ZGUgIldlYk5hdmlnYXRvckNvbnRl
bnRVdGlsc1Byb3h5LmgiCisjZW5kaWYKKwogI2lmIEVOQUJMRShORVRXT1JLX0lORk8pCiAjaW5j
bHVkZSAiV2ViTmV0d29ya0luZm9NYW5hZ2VyUHJveHkuaCIKICNlbmRpZgpAQCAtMTY1LDYgKzE2
OSw5IEBAIFdlYkNvbnRleHQ6OldlYkNvbnRleHQoUHJvY2Vzc01vZGVsIHByb2Nlc3NNb2RlbCwg
Y29uc3QgU3RyaW5nJiBpbmplY3RlZEJ1bmRsZVBhCiAgICAgYWRkU3VwcGxlbWVudDxXZWJHZW9s
b2NhdGlvbk1hbmFnZXJQcm94eT4oKTsKICAgICBhZGRTdXBwbGVtZW50PFdlYktleVZhbHVlU3Rv
cmFnZU1hbmFnZXI+KCk7CiAgICAgYWRkU3VwcGxlbWVudDxXZWJNZWRpYUNhY2hlTWFuYWdlclBy
b3h5PigpOworI2lmIEVOQUJMRShOQVZJR0FUT1JfQ09OVEVOVF9VVElMUykKKyAgICBhZGRTdXBw
bGVtZW50PFdlYk5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3h5PigpOworI2VuZGlmCiAgICAgYWRk
U3VwcGxlbWVudDxXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHk+KCk7CiAgICAgYWRkU3VwcGxl
bWVudDxXZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5PigpOwogI2lmIEVOQUJMRShTUUxfREFU
QUJBU0UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5o
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuaAppbmRleCA0ZTk5NThkODNh
MTRmZmE5ZTdkNzEzYTRjOWIxZDY1ZGFjZWVmODQ5Li40ZjNjOTY1NGIwOGFmZmE1NzZkN2RiYjNj
OWVjMThiNzQyOWE1N2VmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
Q29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmgKQEAg
LTc2LDYgKzc2LDkgQEAgc3RydWN0IFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM7CiB0eXBl
ZGVmIEdlbmVyaWNDYWxsYmFjazxXS0RpY3Rpb25hcnlSZWY+IERpY3Rpb25hcnlDYWxsYmFjazsK
IAogI2lmIEVOQUJMRShORVRXT1JLX0lORk8pCitjbGFzcyBXZWJOYXZpZ2F0b3JDb250ZW50VXRp
bHNQcm94eTsKKyNlbmRpZgorI2lmIEVOQUJMRShORVRXT1JLX0lORk8pCiBjbGFzcyBXZWJOZXR3
b3JrSW5mb01hbmFnZXJQcm94eTsKICNlbmRpZgogI2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1Mp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTmF2aWdhdG9yQ29udGVu
dFV0aWxzUHJvdmlkZXIuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk5hdmlnYXRv
ckNvbnRlbnRVdGlsc1Byb3ZpZGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44OTA3MmQ1MGEwZGM0NWMyZTU3
ZDUwYzZlYTI5MzU0OTJiN2UxNjUwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYk5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3ZpZGVyLmNwcApAQCAtMCwwICsx
LDY0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIFNhbXN1bmcgRWxlY3Ryb25pY3MuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJXZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm92aWRlci5oIgorCisjaWYgRU5BQkxFKE5B
VklHQVRPUl9DT05URU5UX1VUSUxTKQorCisjaW5jbHVkZSAiV0tBUElDYXN0LmgiCisjaW5jbHVk
ZSAiV2ViTmF2aWdhdG9yQ29udGVudFV0aWxzUHJveHkuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7
CisKK3ZvaWQgV2ViTmF2aWdhdG9yQ29udGVudFV0aWxzUHJvdmlkZXI6OnJlZ2lzdGVyUHJvdG9j
b2xIYW5kbGVyKFdlYk5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3h5KiBwcm94eSwgY29uc3QgU3Ry
aW5nJiBzY2hlbWUsIGNvbnN0IFN0cmluZyYgYmFzZVVSTCwgY29uc3QgU3RyaW5nJiB1cmwsIGNv
bnN0IFN0cmluZyYgdGl0bGUpCit7CisgICAgaWYgKCFtX2NsaWVudC5yZWdpc3RlclByb3RvY29s
SGFuZGxlcikKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9jbGllbnQucmVnaXN0ZXJQcm90b2Nv
bEhhbmRsZXIodG9BUEkocHJveHkpLCB0b0FQSShzY2hlbWUuaW1wbCgpKSwgdG9BUEkoYmFzZVVS
TC5pbXBsKCkpLCB0b0FQSSh1cmwuaW1wbCgpKSwgdG9BUEkodGl0bGUuaW1wbCgpKSwgbV9jbGll
bnQuY2xpZW50SW5mbyk7Cit9CisKKyNpZiBFTkFCTEUoQ1VTVE9NX1NDSEVNRV9IQU5ETEVSKQor
dm9pZCBXZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm92aWRlcjo6aXNQcm90b2NvbEhhbmRsZXJS
ZWdpc3RlcmVkKFdlYk5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3h5KiBwcm94eSwgY29uc3QgU3Ry
aW5nJiBzY2hlbWUsIGNvbnN0IFN0cmluZyYgYmFzZVVSTCwgY29uc3QgU3RyaW5nJiB1cmwsIHVp
bnQzMl90JiByZXN1bHQpCit7CisgICAgaWYgKCFtX2NsaWVudC5pc1Byb3RvY29sSGFuZGxlclJl
Z2lzdGVyZWQpCisgICAgICAgIHJldHVybjsKKworICAgIHJlc3VsdCA9IG1fY2xpZW50LmlzUHJv
dG9jb2xIYW5kbGVyUmVnaXN0ZXJlZCh0b0FQSShwcm94eSksIHRvQVBJKHNjaGVtZS5pbXBsKCkp
LCB0b0FQSShiYXNlVVJMLmltcGwoKSksIHRvQVBJKHVybC5pbXBsKCkpLCBtX2NsaWVudC5jbGll
bnRJbmZvKTsKK30KKwordm9pZCBXZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm92aWRlcjo6dW5y
ZWdpc3RlclByb3RvY29sSGFuZGxlcihXZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm94eSogcHJv
eHksIGNvbnN0IFN0cmluZyYgc2NoZW1lLCBjb25zdCBTdHJpbmcmIGJhc2VVUkwsIGNvbnN0IFN0
cmluZyYgdXJsKQoreworICAgIGlmICghbV9jbGllbnQudW5yZWdpc3RlclByb3RvY29sSGFuZGxl
cikKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9jbGllbnQudW5yZWdpc3RlclByb3RvY29sSGFu
ZGxlcih0b0FQSShwcm94eSksIHRvQVBJKHNjaGVtZS5pbXBsKCkpLCB0b0FQSShiYXNlVVJMLmlt
cGwoKSksIHRvQVBJKHVybC5pbXBsKCkpLCBtX2NsaWVudC5jbGllbnRJbmZvKTsKK30KKyNlbmRp
ZiAvLyBFTkFCTEUoQ1VTVE9NX1NDSEVNRV9IQU5ETEVSKQorCit9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKKworI2VuZGlmIC8vIEVOQUJMRShOQVZJR0FUT1JfQ09OVEVOVF9VVElMUykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm92
aWRlci5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk5hdmlnYXRvckNvbnRlbnRVdGls
c1Byb3ZpZGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODI2Mzk1NWZlZmIyMjIwNjU4N2VkNzdhNTkyYzIzOGMz
YTA2MmMxYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJO
YXZpZ2F0b3JDb250ZW50VXRpbHNQcm92aWRlci5oCkBAIC0wLDAgKzEsNTIgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTMgU2Ftc3VuZyBFbGVjdHJvbmljcy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm92aWRlcl9o
CisjZGVmaW5lIFdlYk5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3ZpZGVyX2gKKworI2lmIEVOQUJM
RShOQVZJR0FUT1JfQ09OVEVOVF9VVElMUykKKworI2luY2x1ZGUgIkFQSUNsaWVudC5oIgorI2lu
Y2x1ZGUgIldLTmF2aWdhdG9yQ29udGVudFV0aWxzLmgiCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQu
aD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYk5hdmlnYXRvckNvbnRlbnRVdGls
c1Byb3h5OworCitjbGFzcyBXZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm92aWRlciA6IHB1Ymxp
YyBBUElDbGllbnQ8V0tOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm92aWRlciwga1dLTmF2aWdhdG9y
Q29udGVudFV0aWxzUHJvdmlkZXJDdXJyZW50VmVyc2lvbj4geworcHVibGljOgorICAgIHZvaWQg
cmVnaXN0ZXJQcm90b2NvbEhhbmRsZXIoV2ViTmF2aWdhdG9yQ29udGVudFV0aWxzUHJveHkqLCBj
b25zdCBTdHJpbmcmIHNjaGVtZSwgY29uc3QgU3RyaW5nJiBiYXNlVVJMLCBjb25zdCBTdHJpbmcm
IHVybCwgY29uc3QgU3RyaW5nJiB0aXRsZSk7CisKKyNpZiBFTkFCTEUoQ1VTVE9NX1NDSEVNRV9I
QU5ETEVSKQorICAgIHZvaWQgaXNQcm90b2NvbEhhbmRsZXJSZWdpc3RlcmVkKFdlYk5hdmlnYXRv
ckNvbnRlbnRVdGlsc1Byb3h5KiwgY29uc3QgU3RyaW5nJiBzY2hlbWUsIGNvbnN0IFN0cmluZyYg
YmFzZVVSTCwgY29uc3QgU3RyaW5nJiB1cmwsIHVpbnQzMl90JiByZXN1bHQpOworICAgIHZvaWQg
dW5yZWdpc3RlclByb3RvY29sSGFuZGxlcihXZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm94eSos
IGNvbnN0IFN0cmluZyYgc2NoZW1lLCBjb25zdCBTdHJpbmcmIGJhc2VVUkwsIGNvbnN0IFN0cmlu
ZyYgdXJsKTsKKyNlbmRpZiAvLyBFTkFCTEUoQ1VTVE9NX1NDSEVNRV9IQU5ETEVSKQorfTsKKwor
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoTkFWSUdBVE9SX0NPTlRF
TlRfVVRJTFMpCisjZW5kaWYgLy8gV2ViTmF2aWdhdG9yQ29udGVudFV0aWxzUHJvdmlkZXJfaApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk5hdmlnYXRvckNvbnRlbnRV
dGlsc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJOYXZpZ2F0b3JDb250
ZW50VXRpbHNQcm94eS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMThmMmNlYmQ0NzFjYjJkYTE1ZmE0NjEzOWI2
NGNiZjQyYzljNmE5NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm94eS5jcHAKQEAgLTAsMCArMSw5MCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMyBTYW1zdW5nIEVsZWN0cm9uaWNzLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViTmF2
aWdhdG9yQ29udGVudFV0aWxzUHJveHkuaCIKKworI2lmIEVOQUJMRShOQVZJR0FUT1JfQ09OVEVO
VF9VVElMUykKKworI2luY2x1ZGUgIldlYkNvbnRleHQuaCIKKyNpbmNsdWRlICJXZWJOYXZpZ2F0
b3JDb250ZW50VXRpbHNQcm94eU1lc3NhZ2VzLmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitj
b25zdCBjaGFyKiBXZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm94eTo6c3VwcGxlbWVudE5hbWUo
KQoreworICAgIHJldHVybiAiV2ViTmF2aWdhdG9yQ29udGVudFV0aWxzUHJveHkiOworfQorCitQ
YXNzUmVmUHRyPFdlYk5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3h5PiBXZWJOYXZpZ2F0b3JDb250
ZW50VXRpbHNQcm94eTo6Y3JlYXRlKFdlYkNvbnRleHQqIGNvbnRleHQpCit7CisgICAgcmV0dXJu
IGFkb3B0UmVmKG5ldyBXZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm94eShjb250ZXh0KSk7Cit9
CisKK1dlYk5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3h5OjpXZWJOYXZpZ2F0b3JDb250ZW50VXRp
bHNQcm94eShXZWJDb250ZXh0KiBjb250ZXh0KQorICAgIDogV2ViQ29udGV4dFN1cHBsZW1lbnQo
Y29udGV4dCkKK3sKKyAgICBXZWJDb250ZXh0U3VwcGxlbWVudDo6Y29udGV4dCgpLT5hZGRNZXNz
YWdlUmVjZWl2ZXIoTWVzc2FnZXM6OldlYk5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3h5OjptZXNz
YWdlUmVjZWl2ZXJOYW1lKCksIHRoaXMpOworfQorCitXZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQ
cm94eTo6fldlYk5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3h5KCkKK3sKK30KKwordm9pZCBXZWJO
YXZpZ2F0b3JDb250ZW50VXRpbHNQcm94eTo6aW5pdGlhbGl6ZVByb3ZpZGVyKGNvbnN0IFdLTmF2
aWdhdG9yQ29udGVudFV0aWxzUHJvdmlkZXIqIHByb3ZpZGVyKQoreworICAgIG1fcHJvdmlkZXIu
aW5pdGlhbGl6ZShwcm92aWRlcik7Cit9CisKK3ZvaWQgV2ViTmF2aWdhdG9yQ29udGVudFV0aWxz
UHJveHk6OnJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyKGNvbnN0IFN0cmluZyYgc2NoZW1lLCBjb25z
dCBTdHJpbmcmIGJhc2VVUkwsIGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBTdHJpbmcmIHRpdGxl
KQoreworICAgIG1fcHJvdmlkZXIucmVnaXN0ZXJQcm90b2NvbEhhbmRsZXIodGhpcywgc2NoZW1l
LCBiYXNlVVJMLCB1cmwsIHRpdGxlKTsKK30KKworI2lmIEVOQUJMRShDVVNUT01fU0NIRU1FX0hB
TkRMRVIpCit2b2lkIFdlYk5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3h5Ojppc1Byb3RvY29sSGFu
ZGxlclJlZ2lzdGVyZWQoY29uc3QgU3RyaW5nJiBzY2hlbWUsIGNvbnN0IFN0cmluZyYgYmFzZVVS
TCwgY29uc3QgU3RyaW5nJiB1cmwsIHVpbnQzMl90JiByZXN1bHQpCit7CisgICAgbV9wcm92aWRl
ci5pc1Byb3RvY29sSGFuZGxlclJlZ2lzdGVyZWQodGhpcywgc2NoZW1lLCBiYXNlVVJMLCB1cmws
IHJlc3VsdCk7Cit9CisKK3ZvaWQgV2ViTmF2aWdhdG9yQ29udGVudFV0aWxzUHJveHk6OnVucmVn
aXN0ZXJQcm90b2NvbEhhbmRsZXIoY29uc3QgU3RyaW5nJiBzY2hlbWUsIGNvbnN0IFN0cmluZyYg
YmFzZVVSTCwgY29uc3QgU3RyaW5nJiB1cmwpCit7CisgICAgbV9wcm92aWRlci51bnJlZ2lzdGVy
UHJvdG9jb2xIYW5kbGVyKHRoaXMsIHNjaGVtZSwgYmFzZVVSTCwgdXJsKTsKK30KKyNlbmRpZiAv
LyBFTkFCTEUoQ1VTVE9NX1NDSEVNRV9IQU5ETEVSKQorCisvLyBXZWJDb250ZXh0U3VwcGxlbWVu
dAordm9pZCBXZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm94eTo6cmVmV2ViQ29udGV4dFN1cHBs
ZW1lbnQoKQoreworICAgIEFQSU9iamVjdDo6cmVmKCk7Cit9CisKK3ZvaWQgV2ViTmF2aWdhdG9y
Q29udGVudFV0aWxzUHJveHk6OmRlcmVmV2ViQ29udGV4dFN1cHBsZW1lbnQoKQoreworICAgIEFQ
SU9iamVjdDo6ZGVyZWYoKTsKK30KK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8g
RU5BQkxFKE5BVklHQVRPUl9DT05URU5UX1VUSUxTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYk5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3h5LmggYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViTmF2aWdhdG9yQ29udGVudFV0aWxzUHJveHkuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4wNjZjNWQ3YTEwZDFmZWI0NTc3YmVjMWYwNDQ5Njg0ZDQ3M2IzNzc4Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk5hdmlnYXRvckNvbnRlbnRVdGlsc1By
b3h5LmgKQEAgLTAsMCArMSw3NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBTYW1zdW5n
IEVsZWN0cm9uaWNzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdl
Yk5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3h5X2gKKyNkZWZpbmUgV2ViTmF2aWdhdG9yQ29udGVu
dFV0aWxzUHJveHlfaAorCisjaWYgRU5BQkxFKE5BVklHQVRPUl9DT05URU5UX1VUSUxTKQorCisj
aW5jbHVkZSAiQVBJT2JqZWN0LmgiCisjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCisjaW5j
bHVkZSAiV2ViQ29udGV4dFN1cHBsZW1lbnQuaCIKKyNpbmNsdWRlICJXZWJOYXZpZ2F0b3JDb250
ZW50VXRpbHNQcm92aWRlci5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViQ29u
dGV4dDsKK2NsYXNzIFdlYlByb2Nlc3NQcm94eTsKKworY2xhc3MgV2ViTmF2aWdhdG9yQ29udGVu
dFV0aWxzUHJveHkgOiBwdWJsaWMgVHlwZWRBUElPYmplY3Q8QVBJT2JqZWN0OjpUeXBlTmF2aWdh
dG9yQ29udGVudFV0aWxzPiwgcHVibGljIFdlYkNvbnRleHRTdXBwbGVtZW50LCBwcml2YXRlIENv
cmVJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7CitwdWJsaWM6CisgICAgc3RhdGljIGNvbnN0IGNoYXIq
IHN1cHBsZW1lbnROYW1lKCk7CisKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJOYXZpZ2F0b3JD
b250ZW50VXRpbHNQcm94eT4gY3JlYXRlKFdlYkNvbnRleHQqKTsKKyAgICB2aXJ0dWFsIH5XZWJO
YXZpZ2F0b3JDb250ZW50VXRpbHNQcm94eSgpOworCisgICAgdm9pZCBpbml0aWFsaXplUHJvdmlk
ZXIoY29uc3QgV0tOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm92aWRlciopOworCisgICAgdXNpbmcg
QVBJT2JqZWN0OjpyZWY7CisgICAgdXNpbmcgQVBJT2JqZWN0OjpkZXJlZjsKKworcHJpdmF0ZToK
KyAgICBleHBsaWNpdCBXZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm94eShXZWJDb250ZXh0Kik7
CisKKyAgICAvLyBXZWJDb250ZXh0U3VwcGxlbWVudAorICAgIHZpcnR1YWwgdm9pZCByZWZXZWJD
b250ZXh0U3VwcGxlbWVudCgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkZXJlZldlYkNv
bnRleHRTdXBwbGVtZW50KCkgT1ZFUlJJREU7CisKKyAgICAvLyBDb3JlSVBDOjpNZXNzYWdlUmVj
ZWl2ZXIKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVj
dGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2
b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6
TWVzc2FnZURlY29kZXImLCBPd25QdHI8Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+JikgT1ZFUlJJ
REU7CisKKyAgICB2b2lkIHJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyKGNvbnN0IFN0cmluZyYgc2No
ZW1lLCBjb25zdCBTdHJpbmcmIGJhc2VVUkwsIGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBTdHJp
bmcmIHRpdGxlKTsKKyNpZiBFTkFCTEUoQ1VTVE9NX1NDSEVNRV9IQU5ETEVSKQorICAgIHZvaWQg
aXNQcm90b2NvbEhhbmRsZXJSZWdpc3RlcmVkKGNvbnN0IFN0cmluZyYgc2NoZW1lLCBjb25zdCBT
dHJpbmcmIGJhc2VVUkwsIGNvbnN0IFN0cmluZyYgdXJsLCB1aW50MzJfdCYgcmVzdWx0KTsKKyAg
ICB2b2lkIHVucmVnaXN0ZXJQcm90b2NvbEhhbmRsZXIoY29uc3QgU3RyaW5nJiBzY2hlbWUsIGNv
bnN0IFN0cmluZyYgYmFzZVVSTCwgY29uc3QgU3RyaW5nJiB1cmwpOworI2VuZGlmIC8vIEVOQUJM
RShDVVNUT01fU0NIRU1FX0hBTkRMRVIpCisKKyAgICBXZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQ
cm92aWRlciBtX3Byb3ZpZGVyOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRp
ZiAvLyBFTkFCTEUoTkFWSUdBVE9SX0NPTlRFTlRfVVRJTFMpCisKKyNlbmRpZiAvLyBXZWJOYXZp
Z2F0b3JDb250ZW50VXRpbHNQcm94eV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViTmF2aWdhdG9yQ29udGVudFV0aWxzUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViTmF2aWdhdG9yQ29udGVudFV0aWxzUHJveHkubWVzc2FnZXMu
aW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZjZiZjYxODE0N2FhMjM0Y2ViMmIzYjE2MjdjZjE3NGQ2ZDEyNDA3Zgot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJOYXZpZ2F0b3JD
b250ZW50VXRpbHNQcm94eS5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDMzIEBACisjIENvcHlyaWdo
dCAoQykgMjAxMyBTYW1zdW5nIEVsZWN0cm9uaWNzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIwor
IyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisjIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorIyBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUgorIyBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAor
IyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisjaWYgRU5BQkxFKE5BVklH
QVRPUl9DT05URU5UX1VUSUxTKQorCittZXNzYWdlcyAtPiBXZWJOYXZpZ2F0b3JDb250ZW50VXRp
bHNQcm94eSB7CisgICAgUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXIoV1RGOjpTdHJpbmcgc2NoZW1l
LCBXVEY6OlN0cmluZyBiYXNlVVJMLCBXVEY6OlN0cmluZyB1cmwsIFdURjo6U3RyaW5nIHRpdGxl
KQorI2lmIEVOQUJMRShDVVNUT01fU0NIRU1FX0hBTkRMRVIpCisgICAgSXNQcm90b2NvbEhhbmRs
ZXJSZWdpc3RlcmVkKFdURjo6U3RyaW5nIHNjaGVtZSwgV1RGOjpTdHJpbmcgYmFzZVVSTCwgV1RG
OjpTdHJpbmcgdXJsKSAtPiAodWludDMyX3QgcmVzdWx0KQorICAgIFVucmVnaXN0ZXJQcm90b2Nv
bEhhbmRsZXIoV1RGOjpTdHJpbmcgc2NoZW1lLCBXVEY6OlN0cmluZyBiYXNlVVJMLCBXVEY6OlN0
cmluZyB1cmwpCisjZW5kaWYgLy8gRU5BQkxFKENVU1RPTV9TQ0hFTUVfSEFORExFUikKK30KKwor
I2VuZGlmIC8vIEVOQUJMRShOQVZJR0FUT1JfQ09OVEVOVF9VVElMUykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTmF2aWdhdG9yQ29udGVu
dFV0aWxzQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViTmF2aWdhdG9yQ29udGVudFV0aWxzQ2xpZW50LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yYzkzOTBj
NGY5ODNkYjE5OTRiYWEwYzJlMzFmOTY3YWJmNDFkNDg2Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJOYXZpZ2F0b3JDb250ZW50
VXRpbHNDbGllbnQuY3BwCkBAIC0wLDAgKzEsNzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTMgU2Ftc3VuZyBFbGVjdHJvbmljcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYk5hdmlnYXRvckNvbnRlbnRVdGlsc0Ns
aWVudC5oIgorCisjaWYgRU5BQkxFKE5BVklHQVRPUl9DT05URU5UX1VUSUxTKQorCisjaW5jbHVk
ZSAiV2ViTmF2aWdhdG9yQ29udGVudFV0aWxzUHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldl
YlByb2Nlc3MuaCIKKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Cit1c2luZyBuYW1lc3BhY2Ug
TWVzc2FnZXM6OldlYk5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3h5OworCituYW1lc3BhY2UgV2Vi
S2l0IHsKKwordm9pZCBXZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNDbGllbnQ6OnJlZ2lzdGVyUHJv
dG9jb2xIYW5kbGVyKGNvbnN0IFN0cmluZyYgc2NoZW1lLCBjb25zdCBTdHJpbmcmIGJhc2VVUkws
IGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBTdHJpbmcmIHRpdGxlKQoreworICAgIFdlYlByb2Nl
c3M6OnNoYXJlZCgpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoUmVnaXN0ZXJQcm90
b2NvbEhhbmRsZXIoc2NoZW1lLCBiYXNlVVJMLCB1cmwsIHRpdGxlKSwgMCk7Cit9CisKKyNpZiBF
TkFCTEUoQ1VTVE9NX1NDSEVNRV9IQU5ETEVSKQorc3RhdGljIGlubGluZSBOYXZpZ2F0b3JDb250
ZW50VXRpbHNDbGllbnQ6OkN1c3RvbUhhbmRsZXJzU3RhdGUgdG9DdXN0b21IYW5kbGVyc1N0YXRl
KGNvbnN0IHVpbnQzMl90IHN0YXRlKQoreworICAgIHN3aXRjaCAoc3RhdGUpIHsKKyAgICBjYXNl
IE5hdmlnYXRvckNvbnRlbnRVdGlsc0NsaWVudDo6Q3VzdG9tSGFuZGxlcnNOZXc6CisgICAgY2Fz
ZSBOYXZpZ2F0b3JDb250ZW50VXRpbHNDbGllbnQ6OkN1c3RvbUhhbmRsZXJzUmVnaXN0ZXJlZDoK
KyAgICBjYXNlIE5hdmlnYXRvckNvbnRlbnRVdGlsc0NsaWVudDo6Q3VzdG9tSGFuZGxlcnNEZWNs
aW5lZDoKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PE5hdmlnYXRvckNvbnRlbnRVdGlsc0Ns
aWVudDo6Q3VzdG9tSGFuZGxlcnNTdGF0ZT4oc3RhdGUpOworICAgIGRlZmF1bHQ6CisgICAgICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4gTmF2aWdhdG9yQ29udGVudFV0
aWxzQ2xpZW50OjpDdXN0b21IYW5kbGVyc0RlY2xpbmVkOworICAgIH0KK30KKworTmF2aWdhdG9y
Q29udGVudFV0aWxzQ2xpZW50OjpDdXN0b21IYW5kbGVyc1N0YXRlIFdlYk5hdmlnYXRvckNvbnRl
bnRVdGlsc0NsaWVudDo6aXNQcm90b2NvbEhhbmRsZXJSZWdpc3RlcmVkKGNvbnN0IFN0cmluZyYg
c2NoZW1lLCBjb25zdCBTdHJpbmcmIGJhc2VVUkwsIGNvbnN0IFN0cmluZyYgdXJsKQoreworICAg
IHVpbnQzMl90IHJlc3VsdCA9IHN0YXRpY19jYXN0PHVpbnQzMl90PihOYXZpZ2F0b3JDb250ZW50
VXRpbHNDbGllbnQ6OkN1c3RvbUhhbmRsZXJzTmV3KTsKKyAgICBXZWJQcm9jZXNzOjpzaGFyZWQo
KS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kU3luYyhJc1Byb3RvY29sSGFuZGxlclJl
Z2lzdGVyZWQoc2NoZW1lLCBiYXNlVVJMLCB1cmwpLCBJc1Byb3RvY29sSGFuZGxlclJlZ2lzdGVy
ZWQ6OlJlcGx5KHJlc3VsdCksIDApOworICAgIHJldHVybiB0b0N1c3RvbUhhbmRsZXJzU3RhdGUo
cmVzdWx0KTsKK30KKwordm9pZCBXZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNDbGllbnQ6OnVucmVn
aXN0ZXJQcm90b2NvbEhhbmRsZXIoY29uc3QgU3RyaW5nJiBzY2hlbWUsIGNvbnN0IFN0cmluZyYg
YmFzZVVSTCwgY29uc3QgU3RyaW5nJiB1cmwpCit7CisgICAgV2ViUHJvY2Vzczo6c2hhcmVkKCku
cGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChVbnJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVy
KHNjaGVtZSwgYmFzZVVSTCwgdXJsKSwgMCk7Cit9CisjZW5kaWYgLy8gRU5BQkxFKENVU1RPTV9T
Q0hFTUVfSEFORExFUikKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFC
TEUoTkFWSUdBVE9SX0NPTlRFTlRfVVRJTFMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYk5hdmlnYXRvckNvbnRlbnRVdGlsc0NsaWVudC5o
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJOYXZpZ2F0b3JD
b250ZW50VXRpbHNDbGllbnQuaAppbmRleCBjODBiNTc4MWU5OTMxODE0YzIzMWU4MjUwYTIyMjMy
YjZlNDNhNzFhLi4wMzI5OTBlYjU0NDllZDNiNzI0NTI1NjEwNDcwNzRjNmEwMWI0NTIyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYk5hdmln
YXRvckNvbnRlbnRVdGlsc0NsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViTmF2aWdhdG9yQ29udGVudFV0aWxzQ2xpZW50LmgKQEAgLTM4LDEx
ICszOCwxMSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+V2ViTmF2aWdhdG9yQ29udGVudFV0aWxz
Q2xpZW50KCkgeyB9CiAKIHByaXZhdGU6Ci0gICAgdmlydHVhbCB2b2lkIHJlZ2lzdGVyUHJvdG9j
b2xIYW5kbGVyKGNvbnN0IFN0cmluZyYgc2NoZW1lLCBjb25zdCBTdHJpbmcmIGJhc2VVUkwsIGNv
bnN0IFN0cmluZyYgdXJsLCBjb25zdCBTdHJpbmcmIHRpdGxlKSBPVkVSUklERSB7IH0KKyAgICB2
aXJ0dWFsIHZvaWQgcmVnaXN0ZXJQcm90b2NvbEhhbmRsZXIoY29uc3QgU3RyaW5nJiBzY2hlbWUs
IGNvbnN0IFN0cmluZyYgYmFzZVVSTCwgY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0cmluZyYg
dGl0bGUpIE9WRVJSSURFOwogCiAjaWYgRU5BQkxFKENVU1RPTV9TQ0hFTUVfSEFORExFUikKLSAg
ICB2aXJ0dWFsIEN1c3RvbUhhbmRsZXJzU3RhdGUgaXNQcm90b2NvbEhhbmRsZXJSZWdpc3RlcmVk
KGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpIHsgcmV0dXJuIEN1
c3RvbUhhbmRsZXJzRGVjbGluZWQ7IH0KLSAgICB2aXJ0dWFsIHZvaWQgdW5yZWdpc3RlclByb3Rv
Y29sSGFuZGxlcihjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKSB7
IH0KKyAgICB2aXJ0dWFsIEN1c3RvbUhhbmRsZXJzU3RhdGUgaXNQcm90b2NvbEhhbmRsZXJSZWdp
c3RlcmVkKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpIE9WRVJS
SURFOworICAgIHZpcnR1YWwgdm9pZCB1bnJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyKGNvbnN0IFN0
cmluZyYsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpIE9WRVJSSURFOwogI2VuZGlmCiB9
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5k
ZXggNzg1YjgxOGMzZGFmMzgwNzM5YzdjZjAxZDViYWJjOTNkMzliMzY5Yy4uZWVjNzdlYzg5MGYz
NjY5Mjc2ZTI1ZWI5OTUzNWVmNzZlNDg2ZTQ2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtMTUwLDYgKzE1MCwxMCBAQAogI2luY2x1ZGUg
IldlYkJhdHRlcnlDbGllbnQuaCIKICNlbmRpZgogCisjaWYgRU5BQkxFKE5BVklHQVRPUl9DT05U
RU5UX1VUSUxTKQorI2luY2x1ZGUgIldlYk5hdmlnYXRvckNvbnRlbnRVdGlsc0NsaWVudC5oIgor
I2VuZGlmCisKICNpZiBFTkFCTEUoTkVUV09SS19JTkZPKQogI2luY2x1ZGUgIldlYk5ldHdvcmtJ
bmZvQ2xpZW50LmgiCiAjZW5kaWYKQEAgLTMyNyw2ICszMzEsOSBAQCBXZWJQYWdlOjpXZWJQYWdl
KHVpbnQ2NF90IHBhZ2VJRCwgY29uc3QgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1l
dGVycykKICAgICBXZWJDb3JlOjpwcm92aWRlRGV2aWNlTW90aW9uVG8obV9wYWdlLmdldCgpLCBu
ZXcgRGV2aWNlTW90aW9uQ2xpZW50UXQpOwogICAgIFdlYkNvcmU6OnByb3ZpZGVEZXZpY2VPcmll
bnRhdGlvblRvKG1fcGFnZS5nZXQoKSwgbmV3IERldmljZU9yaWVudGF0aW9uQ2xpZW50UXQpOwog
I2VuZGlmCisjaWYgRU5BQkxFKE5BVklHQVRPUl9DT05URU5UX1VUSUxTKQorICAgIFdlYkNvcmU6
OnByb3ZpZGVOYXZpZ2F0b3JDb250ZW50VXRpbHNUbyhtX3BhZ2UuZ2V0KCksIG5ldyBXZWJOYXZp
Z2F0b3JDb250ZW50VXRpbHNDbGllbnQpOworI2VuZGlmCiAjaWYgRU5BQkxFKE5FVFdPUktfSU5G
TykKICAgICBXZWJDb3JlOjpwcm92aWRlTmV0d29ya0luZm9UbyhtX3BhZ2UuZ2V0KCksIG5ldyBX
ZWJOZXR3b3JrSW5mb0NsaWVudCh0aGlzKSk7CiAjZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>207853</attachid>
            <date>2013-07-31 08:38:19 -0700</date>
            <delta_ts>2015-05-11 01:01:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-92749-20130801003816.patch</filename>
            <type>text/plain</type>
            <size>45635</size>
            <attacher name="Sanghyun Park">sh919.park</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUzNTIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMmZiMmZiYWYwZmIzMzJi
ODczNmRmYjYxODZhOGY4YTM2YjljYzI2MC4uNDcyYWNkOGVlNjhjZTUzYWU3ZDczMjNkMGViYzA1
ZGM2NGU3NDQxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU4IEBACisyMDEzLTA3LTMxICBTYW5n
aHl1biBQYXJrICA8c2g5MTkucGFya0BzYW1zdW5nLmNvbT4KKworICAgICAgICBbV0syXSBBZGQg
TmF2aWdhdG9yIENvbnRlbnQgVXRpbHMgQVBJIHN1cHBvcnQgZm9yIFdlYktpdDIKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkyNzQ5CisKKyAgICAgICAg
T3JpZ2luYWwgcGF0Y2ggYnkgTWlraGFpbCBQb3pkbnlha292IDxtaWtoYWlsLnBvemRueWFrb3ZA
aW50ZWwuY29tPgorCisgICAgICAgIEFkZGVkIHN1cHBvcnQgb2YgTmF2aWdhdG9yIENvbnRlbnQg
VXRpbHMgQVBJIHN1cHBvcnQgZm9yIFdlYktpdDIuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJp
dmVkU291cmNlcy5wcmk6CisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAg
KiBTaGFyZWQvQVBJL2MvV0tCYXNlLmg6CisgICAgICAgICogU2hhcmVkL0FQSU9iamVjdC5oOgor
ICAgICAgICAqIFRhcmdldC5wcmk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2Fz
dC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwOgorICAgICAgICAo
V0tDb250ZXh0R2V0TmF2aWdhdG9yQ29udGVudFV0aWxzKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL0MvV0tDb250ZXh0Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLTmF2aWdhdG9y
Q29udGVudFV0aWxzLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNDbGllbnQuaC4KKyAgICAgICAg
KFdLTmF2aWdhdG9yQ29udGVudFV0aWxzR2V0VHlwZUlEKToKKyAgICAgICAgKFdLTmF2aWdhdG9y
Q29udGVudFV0aWxzU2V0UHJvdmlkZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS05h
dmlnYXRvckNvbnRlbnRVdGlscy5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQ29u
dGV4dC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHQ6OldlYkNvbnRleHQpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJDb250ZXh0Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYk5h
dmlnYXRvckNvbnRlbnRVdGlsc1Byb3ZpZGVyLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNDbGll
bnQuaC4KKyAgICAgICAgKFdlYktpdDo6V2ViTmF2aWdhdG9yQ29udGVudFV0aWxzUHJvdmlkZXI6
OnJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyKToKKyAgICAgICAgKFdlYktpdDo6V2ViTmF2aWdhdG9y
Q29udGVudFV0aWxzUHJvdmlkZXI6OmlzUHJvdG9jb2xIYW5kbGVyUmVnaXN0ZXJlZCk6CisgICAg
ICAgIChXZWJLaXQ6OldlYk5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3ZpZGVyOjp1bnJlZ2lzdGVy
UHJvdG9jb2xIYW5kbGVyKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViTmF2aWdhdG9yQ29udGVu
dFV0aWxzUHJvdmlkZXIuaDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNDbGllbnQuaC4KKyAgICAgICAg
KiBVSVByb2Nlc3MvV2ViTmF2aWdhdG9yQ29udGVudFV0aWxzUHJveHkuY3BwOiBBZGRlZC4KKyAg
ICAgICAgKFdlYktpdDo6V2ViTmF2aWdhdG9yQ29udGVudFV0aWxzUHJveHk6OnN1cHBsZW1lbnRO
YW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViTmF2aWdhdG9yQ29udGVudFV0aWxzUHJveHk6OmNy
ZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYk5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3h5OjpX
ZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OldlYk5hdmln
YXRvckNvbnRlbnRVdGlsc1Byb3h5Ojp+V2ViTmF2aWdhdG9yQ29udGVudFV0aWxzUHJveHkpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm94eTo6aW5pdGlhbGl6
ZVByb3ZpZGVyKToKKyAgICAgICAgKFdlYktpdDo6V2ViTmF2aWdhdG9yQ29udGVudFV0aWxzUHJv
eHk6OnJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyKToKKyAgICAgICAgKFdlYktpdDo6V2ViTmF2aWdh
dG9yQ29udGVudFV0aWxzUHJveHk6OmlzUHJvdG9jb2xIYW5kbGVyUmVnaXN0ZXJlZCk6CisgICAg
ICAgIChXZWJLaXQ6OldlYk5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3h5Ojp1bnJlZ2lzdGVyUHJv
dG9jb2xIYW5kbGVyKToKKyAgICAgICAgKFdlYktpdDo6V2ViTmF2aWdhdG9yQ29udGVudFV0aWxz
UHJveHk6OnJlZldlYkNvbnRleHRTdXBwbGVtZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViTmF2
aWdhdG9yQ29udGVudFV0aWxzUHJveHk6OmRlcmVmV2ViQ29udGV4dFN1cHBsZW1lbnQpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm94eS5oOiBBZGRlZC4K
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViTmF2aWdhdG9yQ29udGVudFV0aWxzUHJveHkubWVzc2Fn
ZXMuaW46IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTmF2
aWdhdG9yQ29udGVudFV0aWxzQ2xpZW50LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6Oldl
Yk5hdmlnYXRvckNvbnRlbnRVdGlsc0NsaWVudDo6cmVnaXN0ZXJQcm90b2NvbEhhbmRsZXIpOgor
ICAgICAgICAoV2ViS2l0Ojp0b0N1c3RvbUhhbmRsZXJzU3RhdGUpOgorICAgICAgICAoV2ViS2l0
OjpXZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNDbGllbnQ6OmlzUHJvdG9jb2xIYW5kbGVyUmVnaXN0
ZXJlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYk5hdmlnYXRvckNvbnRlbnRVdGlsc0NsaWVudDo6
dW5yZWdpc3RlclByb3RvY29sSGFuZGxlcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNDbGllbnQuaDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6Oldl
YlBhZ2UpOgorCiAyMDEzLTA3LTMxICBBbGxhbiBTYW5kZmVsZCBKZW5zZW4gIDxhbGxhbi5qZW5z
ZW5AZGlnaWEuY29tPgogCiAgICAgICAgIFtRdF0gQnVpbGQgV2ViS2l0IHdpdGggQysrMTEKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYktpdDIv
Q01ha2VMaXN0cy50eHQKaW5kZXggOTU2NzUxNmJhODU0ZjJiZTgyMGZhMTc5ODdhZDk1MDE3MjEx
NTM2OC4uOWZjMjNkMjdiMzg4NGNjN2EzMjliZTkzNDc0NThjZmY1OWI4YmFhNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYktpdDIvQ01h
a2VMaXN0cy50eHQKQEAgLTI5OCw2ICsyOTgsOCBAQCBzZXQoV2ViS2l0Ml9TT1VSQ0VTCiAgICAg
VUlQcm9jZXNzL1dlYkxvYWRlckNsaWVudC5jcHAKICAgICBVSVByb2Nlc3MvV2ViTWVkaWFDYWNo
ZU1hbmFnZXJQcm94eS5jcHAKICAgICBVSVByb2Nlc3MvV2ViTmF2aWdhdGlvbkRhdGEuY3BwCisg
ICAgVUlQcm9jZXNzL1dlYk5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3ZpZGVyLmNwcAorICAgIFVJ
UHJvY2Vzcy9XZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm94eS5jcHAKICAgICBVSVByb2Nlc3Mv
V2ViTmV0d29ya0luZm9NYW5hZ2VyUHJveHkuY3BwCiAgICAgVUlQcm9jZXNzL1dlYk5ldHdvcmtJ
bmZvUHJvdmlkZXIuY3BwCiAgICAgVUlQcm9jZXNzL1dlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVy
UHJveHkuY3BwCkBAIC0zNDEsNiArMzQzLDcgQEAgc2V0KFdlYktpdDJfU09VUkNFUwogICAgIFVJ
UHJvY2Vzcy9BUEkvQy9XS0tleVZhbHVlU3RvcmFnZU1hbmFnZXIuY3BwCiAgICAgVUlQcm9jZXNz
L0FQSS9DL1dLTWVkaWFDYWNoZU1hbmFnZXIuY3BwCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLTmF2
aWdhdGlvbkRhdGEuY3BwCisgICAgVUlQcm9jZXNzL0FQSS9DL1dLTmF2aWdhdG9yQ29udGVudFV0
aWxzLmNwcAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS05ldHdvcmtJbmZvLmNwcAogICAgIFVJUHJv
Y2Vzcy9BUEkvQy9XS05ldHdvcmtJbmZvTWFuYWdlci5jcHAKICAgICBVSVByb2Nlc3MvQVBJL0Mv
V0tOb3RpZmljYXRpb24uY3BwCkBAIC00OTIsNiArNDk1LDcgQEAgc2V0KFdlYktpdDJfU09VUkNF
UwogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViR2VvbG9jYXRpb25DbGllbnQuY3Bw
CiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQuY3BwCiAg
ICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JGcm9udGVuZENsaWVudC5j
cHAKKyAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYk5hdmlnYXRvckNvbnRlbnRVdGls
c0NsaWVudC5jcHAKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYk5ldHdvcmtJbmZv
Q2xpZW50LmNwcAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9u
Q2xpZW50LmNwcAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJh
dGVnaWVzLmNwcApAQCAtNTQ0LDYgKzU0OCw3IEBAIHNldChXZWJLaXQyX01FU1NBR0VTX0lOX0ZJ
TEVTCiAgICAgVUlQcm9jZXNzL1dlYkljb25EYXRhYmFzZS5tZXNzYWdlcy5pbgogICAgIFVJUHJv
Y2Vzcy9XZWJJbnNwZWN0b3JQcm94eS5tZXNzYWdlcy5pbgogICAgIFVJUHJvY2Vzcy9XZWJNZWRp
YUNhY2hlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCisgICAgVUlQcm9jZXNzL1dlYk5hdmlnYXRv
ckNvbnRlbnRVdGlsc1Byb3h5Lm1lc3NhZ2VzLmluCiAgICAgVUlQcm9jZXNzL1dlYk5ldHdvcmtJ
bmZvTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCiAgICAgVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5t
ZXNzYWdlcy5pbgogICAgIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0Rlcml2ZWRTb3VyY2VzLnByaSBiL1NvdXJjZS9XZWJL
aXQyL0Rlcml2ZWRTb3VyY2VzLnByaQppbmRleCBkYzE3ZmFhYWMwYjljY2ZmODI4YjRiY2Q3NjE0
YmJhYTYzZjFkZDljLi5mYTViMGVkZTFjMTVjM2NiMzdiYzdhYjVhNzUyYmE4OGZiYjVjMmMwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9EZXJpdmVkU291cmNlcy5wcmkKKysrIGIvU291cmNl
L1dlYktpdDIvRGVyaXZlZFNvdXJjZXMucHJpCkBAIC05NSw2ICs5NSw3IEBAIE1FU1NBR0VfUkVD
RUlWRVJTID0gXAogICAgIFdlYkluc3BlY3RvclByb3h5Lm1lc3NhZ2VzLmluIFwKICAgICBXZWJN
ZWRpYUNhY2hlTWFuYWdlci5tZXNzYWdlcy5pbiBcCiAgICAgV2ViTWVkaWFDYWNoZU1hbmFnZXJQ
cm94eS5tZXNzYWdlcy5pbiBcCisgICAgV2ViTmF2aWdhdG9yQ29udGVudFV0aWxzUHJveHkubWVz
c2FnZXMuaW4gXAogICAgIFdlYk5ldHdvcmtJbmZvTWFuYWdlci5tZXNzYWdlcy5pbiBcCiAgICAg
V2ViTmV0d29ya0luZm9NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gXAogICAgIFdlYk5vdGlmaWNh
dGlvbk1hbmFnZXIubWVzc2FnZXMuaW4gXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvR05V
bWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5k
ZXggZGM5MzNjNDJjOWE1MTM4MjBjZDM5NjlkNjlmMDkxNTA5ZWYyODkyZi4uYjlmZWViZTdlNzcx
YjE0MzgyOTM1ODNlMTdlZjJmN2MxZjIxNmRiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
R05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5saXN0
LmFtCkBAIC03Miw2ICs3Miw3IEBAIHdlYmtpdDJfaF9hcGkgKz0gXAogCSQoV2ViS2l0MikvVUlQ
cm9jZXNzL0FQSS9DL1dLTWVkaWFDYWNoZU1hbmFnZXIuaCBcCiAJJChXZWJLaXQyKS9VSVByb2Nl
c3MvQVBJL0MvV0tOYXRpdmVFdmVudC5oIFwKIAkkKFdlYktpdDIpL1VJUHJvY2Vzcy9BUEkvQy9X
S05hdmlnYXRpb25EYXRhLmggXAorCSQoV2ViS2l0MikvVUlQcm9jZXNzL0FQSS9DL1dLTmF2aWdh
dG9yQ29udGVudFV0aWxzLmggXAogCSQoV2ViS2l0MikvVUlQcm9jZXNzL0FQSS9DL1dLTmV0d29y
a0luZm8uaCBcCiAJJChXZWJLaXQyKS9VSVByb2Nlc3MvQVBJL0MvV0tOZXR3b3JrSW5mb01hbmFn
ZXIuaCBcCiAJJChXZWJLaXQyKS9VSVByb2Nlc3MvQVBJL0MvV0tOb3RpZmljYXRpb24uaCBcCkBA
IC0yMDgsNiArMjA5LDggQEAgd2Via2l0Ml9idWlsdF9zb3VyY2VzICs9IFwKIAlEZXJpdmVkU291
cmNlcy9XZWJLaXQyL1dlYk1lZGlhQ2FjaGVNYW5hZ2VyTWVzc2FnZXMuaCBcCiAJRGVyaXZlZFNv
dXJjZXMvV2ViS2l0Mi9XZWJNZWRpYUNhY2hlTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNw
cCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJNZWRpYUNhY2hlTWFuYWdlclByb3h5TWVz
c2FnZXMuaCBcCisJRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJOYXZpZ2F0b3JDb250ZW50VXRp
bHNQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2Vi
TmF2aWdhdG9yQ29udGVudFV0aWxzUHJveHlNZXNzYWdlcy5oIFwKIAlEZXJpdmVkU291cmNlcy9X
ZWJLaXQyL1dlYk5ldHdvcmtJbmZvTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgXAogCURlcml2
ZWRTb3VyY2VzL1dlYktpdDIvV2ViTmV0d29ya0luZm9NYW5hZ2VyTWVzc2FnZXMuaCBcCiAJRGVy
aXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJOZXR3b3JrSW5mb01hbmFnZXJQcm94eU1lc3NhZ2VSZWNl
aXZlci5jcHAgXApAQCAtNjE0LDYgKzYxNyw4IEBAIHdlYmtpdDJfc291cmNlcyArPSBcCiAJU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLTmF0aXZlRXZlbnQuaCBcCiAJU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLTmF2aWdhdGlvbkRhdGEuY3BwIFwKIAlTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tOYXZpZ2F0aW9uRGF0YS5oIFwKKwlTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0MvV0tOYXZpZ2F0b3JDb250ZW50VXRpbHMuY3BwIFwKKwlTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tOYXZpZ2F0b3JDb250ZW50VXRpbHMuaCBcCiAJU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLTmV0d29ya0luZm8uY3BwIFwKIAlTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tOZXR3b3JrSW5mby5oIFwKIAlTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0MvV0tOZXR3b3JrSW5mb01hbmFnZXIuY3BwIFwKQEAgLTk1Miw2ICs5
NTcsMTAgQEAgd2Via2l0Ml9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViTG9hZGVyQ2xpZW50LmggXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJOYXZpZ2F0
aW9uRGF0YS5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJOYXZpZ2F0aW9uRGF0
YS5oIFwKKwlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTmF2aWdhdG9yQ29udGVudFV0aWxz
UHJvdmlkZXIuY3BwIFwKKwlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTmF2aWdhdG9yQ29u
dGVudFV0aWxzUHJvdmlkZXIuaCBcCisJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk5hdmln
YXRvckNvbnRlbnRVdGlsc1Byb3h5LmNwcCBcCisJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
Yk5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3h5LmggXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJOZXR3b3JrSW5mb01hbmFnZXJQcm94eS5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJOZXR3b3JrSW5mb01hbmFnZXJQcm94eS5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViTmV0d29ya0luZm9Qcm92aWRlci5jcHAgXApAQCAtMTE4Myw2ICsxMTkyLDggQEAg
d2Via2l0Ml9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckZyb250ZW5kQ2xpZW50LmNwcCBcCiAJU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JGcm9udGVuZENs
aWVudC5oIFwKKwlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYk5h
dmlnYXRvckNvbnRlbnRVdGlsc0NsaWVudC5jcHAgXAorCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViTmF2aWdhdG9yQ29udGVudFV0aWxzQ2xpZW50LmggXAogCVNv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTmV0d29ya0luZm9DbGll
bnQuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYk5l
dHdvcmtJbmZvQ2xpZW50LmggXAogCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50LmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNlLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2Mv
V0tCYXNlLmgKaW5kZXggZWE4ZTJmMWJhNzQxYTc1YTI0MjBkOTFkMzIwOTM2MDIzMzc0YTRmYi4u
ZjQ2MDRmYjVhZTc0ZTY1NzQ0MDI5NDM0NTUwOTJkNDZiOGFjNmM5NCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLQmFzZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9BUEkvYy9XS0Jhc2UuaApAQCAtMTIyLDYgKzEyMiw3IEBAIHR5cGVkZWYgY29uc3Qgc3Ry
dWN0IE9wYXF1ZVdLSW5zcGVjdG9yKiBXS0luc3BlY3RvclJlZjsKIHR5cGVkZWYgY29uc3Qgc3Ry
dWN0IE9wYXF1ZVdLS2V5VmFsdWVTdG9yYWdlTWFuYWdlciogV0tLZXlWYWx1ZVN0b3JhZ2VNYW5h
Z2VyUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tNZWRpYUNhY2hlTWFuYWdlciog
V0tNZWRpYUNhY2hlTWFuYWdlclJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLTmF2
aWdhdGlvbkRhdGEqIFdLTmF2aWdhdGlvbkRhdGFSZWY7Cit0eXBlZGVmIGNvbnN0IHN0cnVjdCBP
cGFxdWVXS05hdmlnYXRvckNvbnRlbnRVdGlscyogV0tOYXZpZ2F0b3JDb250ZW50VXRpbHNSZWY7
CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS05ldHdvcmtJbmZvTWFuYWdlciogV0tOZXR3
b3JrSW5mb01hbmFnZXJSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS05ldHdvcmtJ
bmZvKiBXS05ldHdvcmtJbmZvUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tOb3Rp
ZmljYXRpb24qIFdLTm90aWZpY2F0aW9uUmVmOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL0FQSU9iamVjdC5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSU9iamVjdC5oCmlu
ZGV4IDQ0MWUwNWU5ODdmNjczYzJjNzRhNmNjN2E3MGU0YTdjNGU0NzMyZjguLjMyOTYxMWI5YzMz
N2E2ZDM3ZDY4NTEwZDVjYWJkNGNmMGE2ZjkyODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9BUElPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJT2JqZWN0
LmgKQEAgLTk2LDYgKzk2LDcgQEAgcHVibGljOgogICAgICAgICBUeXBlS2V5VmFsdWVTdG9yYWdl
TWFuYWdlciwKICAgICAgICAgVHlwZU1lZGlhQ2FjaGVNYW5hZ2VyLAogICAgICAgICBUeXBlTmF2
aWdhdGlvbkRhdGEsCisgICAgICAgIFR5cGVOYXZpZ2F0b3JDb250ZW50VXRpbHMsCiAgICAgICAg
IFR5cGVOZXR3b3JrSW5mbywKICAgICAgICAgVHlwZU5ldHdvcmtJbmZvTWFuYWdlciwKICAgICAg
ICAgVHlwZU5vdGlmaWNhdGlvbiwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1RhcmdldC5w
cmkgYi9Tb3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJpCmluZGV4IGUxNTM4Yjc4YzcxZjE0NzI4NDE5
Y2I1MzdhOGExNzNjNjIxOTQ3MGUuLjk5MGRmM2FlNzU4NWEzYzg3ZWZhZjNkOTNjNjNmMWFkMTk1
MWVmYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1RhcmdldC5wcmkKKysrIGIvU291cmNl
L1dlYktpdDIvVGFyZ2V0LnByaQpAQCAtMTc4LDYgKzE3OCw3IEBAIEhFQURFUlMgKz0gXAogICAg
IFVJUHJvY2Vzcy9BUEkvQy9XS09wZW5QYW5lbFBhcmFtZXRlcnMuaCBcCiAgICAgVUlQcm9jZXNz
L0FQSS9DL1dLT3BlblBhbmVsUmVzdWx0TGlzdGVuZXIuaCBcCiAgICAgVUlQcm9jZXNzL0FQSS9D
L1dLTmF2aWdhdGlvbkRhdGEuaCBcCisgICAgVUlQcm9jZXNzL0FQSS9DL1dLTmF2aWdhdG9yQ29u
dGVudFV0aWxzLmggXAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS05ldHdvcmtJbmZvLmggXAogICAg
IFVJUHJvY2Vzcy9BUEkvQy9XS05ldHdvcmtJbmZvTWFuYWdlci5oIFwKICAgICBVSVByb2Nlc3Mv
QVBJL0MvV0tOb3RpZmljYXRpb24uaCBcCkBAIC0yNzUsNiArMjc2LDggQEAgSEVBREVSUyArPSBc
CiAgICAgVUlQcm9jZXNzL1dlYkxvYWRlckNsaWVudC5oIFwKICAgICBVSVByb2Nlc3MvV2ViTWVk
aWFDYWNoZU1hbmFnZXJQcm94eS5oIFwKICAgICBVSVByb2Nlc3MvV2ViTmF2aWdhdGlvbkRhdGEu
aCBcCisgICAgVUlQcm9jZXNzL1dlYk5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3ZpZGVyLmggXAor
ICAgIFVJUHJvY2Vzcy9XZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm94eS5oIFwKICAgICBVSVBy
b2Nlc3MvV2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXJQcm94eS5oIFwKICAgICBVSVByb2Nlc3Mv
V2ViUGFnZUNvbnRleHRNZW51Q2xpZW50LmggXAogICAgIFVJUHJvY2Vzcy9XZWJQYWdlR3JvdXAu
aCBcCkBAIC0zNTEsNiArMzU0LDcgQEAgSEVBREVSUyArPSBcCiAgICAgV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNsaWVudC5oIFwKICAgICBXZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5oIFwKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkluc3BlY3RvckZyb250ZW5kQ2xpZW50LmggXAorICAgIFdlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViTmF2aWdhdG9yQ29udGVudFV0aWxzQ2xpZW50LmggXAogICAgIFdlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTmV0d29ya0luZm9DbGllbnQuaCBcCiAgICAgV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJOb3RpZmljYXRpb25DbGllbnQuaCBcCiAgICAgV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaCBcCkBAIC01NDQsNiAr
NTQ4LDcgQEAgU09VUkNFUyArPSBcCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLT3BlblBhbmVsUGFy
YW1ldGVycy5jcHAgXAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS09wZW5QYW5lbFJlc3VsdExpc3Rl
bmVyLmNwcCBcCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLTmF2aWdhdGlvbkRhdGEuY3BwIFwKKyAg
ICBVSVByb2Nlc3MvQVBJL0MvV0tOYXZpZ2F0b3JDb250ZW50VXRpbHMuY3BwIFwKICAgICBVSVBy
b2Nlc3MvQVBJL0MvV0tOZXR3b3JrSW5mby5jcHAgXAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS05l
dHdvcmtJbmZvTWFuYWdlci5jcHAgXAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwIFwK
QEAgLTYzMiw2ICs2MzcsOCBAQCBTT1VSQ0VTICs9IFwKICAgICBVSVByb2Nlc3MvV2ViTG9hZGVy
Q2xpZW50LmNwcCBcCiAgICAgVUlQcm9jZXNzL1dlYk1lZGlhQ2FjaGVNYW5hZ2VyUHJveHkuY3Bw
IFwKICAgICBVSVByb2Nlc3MvV2ViTmF2aWdhdGlvbkRhdGEuY3BwIFwKKyAgICBVSVByb2Nlc3Mv
V2ViTmF2aWdhdG9yQ29udGVudFV0aWxzUHJvdmlkZXIuY3BwIFwKKyAgICBVSVByb2Nlc3MvV2Vi
TmF2aWdhdG9yQ29udGVudFV0aWxzUHJveHkuY3BwIFwKICAgICBVSVByb2Nlc3MvV2ViTmV0d29y
a0luZm9NYW5hZ2VyUHJveHkuY3BwIFwKICAgICBVSVByb2Nlc3MvV2ViTmV0d29ya0luZm9Qcm92
aWRlci5jcHAgXAogICAgIFVJUHJvY2Vzcy9XZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5
LmNwcCBcCkBAIC03MzAsNiArNzM3LDcgQEAgU09VUkNFUyArPSBcCiAgICAgV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNsaWVudC5jcHAgXAogICAgIFdlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50LmNwcCBcCiAgICAgV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JGcm9udGVuZENsaWVudC5jcHAgXAorICAgIFdlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTmF2aWdhdG9yQ29udGVudFV0aWxzQ2xpZW50LmNwcCBc
CiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJOZXR3b3JrSW5mb0NsaWVudC5jcHAg
XAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50LmNw
cCBcCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMu
Y3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNh
c3QuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaAppbmRleCA2
NGM4ZDFhYmZiMTAwYzhlOTYyNTU3NzkxMTliYTdiNGUxNmViOWIzLi4yNTM3YTk0NTM0ZjhjMTA4
MGYxZjQ0MDAwZWU2N2EzMmI0ZjA5OTI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9DL1dLQVBJQ2FzdC5oCkBAIC04MCw2ICs4MCw3IEBAIGNsYXNzIFdlYkluc3BlY3RvclByb3h5
OwogY2xhc3MgV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlcjsKIGNsYXNzIFdlYk1lZGlhQ2FjaGVN
YW5hZ2VyUHJveHk7CiBjbGFzcyBXZWJOYXZpZ2F0aW9uRGF0YTsKK2NsYXNzIFdlYk5hdmlnYXRv
ckNvbnRlbnRVdGlsc1Byb3h5OwogY2xhc3MgV2ViTmV0d29ya0luZm9NYW5hZ2VyUHJveHk7CiBj
bGFzcyBXZWJOZXR3b3JrSW5mbzsKIGNsYXNzIFdlYk5vdGlmaWNhdGlvbjsKQEAgLTEyNSw2ICsx
MjYsNyBAQCBXS19BRERfQVBJX01BUFBJTkcoV0tJY29uRGF0YWJhc2VSZWYsIFdlYkljb25EYXRh
YmFzZSkKIFdLX0FERF9BUElfTUFQUElORyhXS0tleVZhbHVlU3RvcmFnZU1hbmFnZXJSZWYsIFdl
YktleVZhbHVlU3RvcmFnZU1hbmFnZXIpCiBXS19BRERfQVBJX01BUFBJTkcoV0tNZWRpYUNhY2hl
TWFuYWdlclJlZiwgV2ViTWVkaWFDYWNoZU1hbmFnZXJQcm94eSkKIFdLX0FERF9BUElfTUFQUElO
RyhXS05hdmlnYXRpb25EYXRhUmVmLCBXZWJOYXZpZ2F0aW9uRGF0YSkKK1dLX0FERF9BUElfTUFQ
UElORyhXS05hdmlnYXRvckNvbnRlbnRVdGlsc1JlZiwgV2ViTmF2aWdhdG9yQ29udGVudFV0aWxz
UHJveHkpCiBXS19BRERfQVBJX01BUFBJTkcoV0tOZXR3b3JrSW5mb01hbmFnZXJSZWYsIFdlYk5l
dHdvcmtJbmZvTWFuYWdlclByb3h5KQogV0tfQUREX0FQSV9NQVBQSU5HKFdLTmV0d29ya0luZm9S
ZWYsIFdlYk5ldHdvcmtJbmZvKQogV0tfQUREX0FQSV9NQVBQSU5HKFdLTm90aWZpY2F0aW9uTWFu
YWdlclJlZiwgV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5KQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcAppbmRleCAxNjI5YTU2MjczOThlZjY2MzVmYzNi
NDBmZThkNTNlYmJhZmI0NDZhLi4xODkzOWIzYjBkZTEwMDA0ZWZhNGNkY2Y4MWFhNWQ4ZmMwMmIw
N2VjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcApA
QCAtNDgsNiArNDgsOSBAQAogI2lmIEVOQUJMRShCQVRURVJZX1NUQVRVUykKICNpbmNsdWRlICJX
ZWJCYXR0ZXJ5TWFuYWdlclByb3h5LmgiCiAjZW5kaWYKKyNpZiBFTkFCTEUoTkFWSUdBVE9SX0NP
TlRFTlRfVVRJTFMpCisjaW5jbHVkZSAiV2ViTmF2aWdhdG9yQ29udGVudFV0aWxzUHJveHkuaCIK
KyNlbmRpZgogI2lmIEVOQUJMRShORVRXT1JLX0lORk8pCiAjaW5jbHVkZSAiV2ViTmV0d29ya0lu
Zm9NYW5hZ2VyUHJveHkuaCIKICNlbmRpZgpAQCAtMjU1LDYgKzI1OCwxNSBAQCBXS01lZGlhQ2Fj
aGVNYW5hZ2VyUmVmIFdLQ29udGV4dEdldE1lZGlhQ2FjaGVNYW5hZ2VyKFdLQ29udGV4dFJlZiBj
b250ZXh0UmVmKQogICAgIHJldHVybiB0b0FQSSh0b0ltcGwoY29udGV4dFJlZiktPnN1cHBsZW1l
bnQ8V2ViTWVkaWFDYWNoZU1hbmFnZXJQcm94eT4oKSk7CiB9CiAKK1dLTmF2aWdhdG9yQ29udGVu
dFV0aWxzUmVmIFdLQ29udGV4dEdldE5hdmlnYXRvckNvbnRlbnRVdGlscyhXS0NvbnRleHRSZWYg
Y29udGV4dFJlZikKK3sKKyNpZiBFTkFCTEUoTkFWSUdBVE9SX0NPTlRFTlRfVVRJTFMpCisgICAg
cmV0dXJuIHRvQVBJKHRvSW1wbChjb250ZXh0UmVmKS0+c3VwcGxlbWVudDxXZWJOYXZpZ2F0b3JD
b250ZW50VXRpbHNQcm94eT4oKSk7CisjZWxzZQorICAgIHJldHVybiAwOworI2VuZGlmCit9CisK
IFdLTm90aWZpY2F0aW9uTWFuYWdlclJlZiBXS0NvbnRleHRHZXROb3RpZmljYXRpb25NYW5hZ2Vy
KFdLQ29udGV4dFJlZiBjb250ZXh0UmVmKQogewogICAgIHJldHVybiB0b0FQSSh0b0ltcGwoY29u
dGV4dFJlZiktPnN1cHBsZW1lbnQ8V2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5PigpKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuaCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuaAppbmRleCAzY2U3MzFlNzhm
MGZjZDgwYjhhOWFkN2U0ZmEwNWQxNTVjOTMwMGUwLi5mNDE1NzgzMWI1N2E1MWM3ZjY4MDk4ZDdl
YTNjZGNjYWQ4NGI4ZWE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0MvV0tDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29u
dGV4dC5oCkBAIC0xOTQsNiArMTk0LDcgQEAgV0tfRVhQT1JUIFdLTWVkaWFDYWNoZU1hbmFnZXJS
ZWYgV0tDb250ZXh0R2V0TWVkaWFDYWNoZU1hbmFnZXIoV0tDb250ZXh0UmVmIGNvbnQKIFdLX0VY
UE9SVCBXS05ldHdvcmtJbmZvTWFuYWdlclJlZiBXS0NvbnRleHRHZXROZXR3b3JrSW5mb01hbmFn
ZXIoV0tDb250ZXh0UmVmIGNvbnRleHQpOwogV0tfRVhQT1JUIFdLTm90aWZpY2F0aW9uTWFuYWdl
clJlZiBXS0NvbnRleHRHZXROb3RpZmljYXRpb25NYW5hZ2VyKFdLQ29udGV4dFJlZiBjb250ZXh0
KTsKIFdLX0VYUE9SVCBXS1BsdWdpblNpdGVEYXRhTWFuYWdlclJlZiBXS0NvbnRleHRHZXRQbHVn
aW5TaXRlRGF0YU1hbmFnZXIoV0tDb250ZXh0UmVmIGNvbnRleHQpOworV0tfRVhQT1JUIFdLTmF2
aWdhdG9yQ29udGVudFV0aWxzUmVmIFdLQ29udGV4dEdldE5hdmlnYXRvckNvbnRlbnRVdGlscyhX
S0NvbnRleHRSZWYgY29udGV4dCk7CiBXS19FWFBPUlQgV0tSZXNvdXJjZUNhY2hlTWFuYWdlclJl
ZiBXS0NvbnRleHRHZXRSZXNvdXJjZUNhY2hlTWFuYWdlcihXS0NvbnRleHRSZWYgY29udGV4dCk7
CiAgICAgCiB0eXBlZGVmIHZvaWQgKCpXS0NvbnRleHRHZXRTdGF0aXN0aWNzRnVuY3Rpb24pKFdL
RGljdGlvbmFyeVJlZiBzdGF0aXN0aWNzLCBXS0Vycm9yUmVmIGVycm9yLCB2b2lkKiBmdW5jdGlv
bkNvbnRleHQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dL
TmF2aWdhdG9yQ29udGVudFV0aWxzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Qy9XS05hdmlnYXRvckNvbnRlbnRVdGlscy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjM3OTA5MGM5YjU3YmU0
ZTNjOGVhMDJjYjIyYjM5NzQ5YjAyZTk4ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQy9XS05hdmlnYXRvckNvbnRlbnRVdGlscy5jcHAKQEAgLTAsMCAr
MSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIldLTmF2aWdhdG9yQ29udGVudFV0aWxzLmgiCisKKyNpZiBFTkFCTEUoTkFWSUdBVE9SX0NP
TlRFTlRfVVRJTFMpCisjaW5jbHVkZSAiV0tBUElDYXN0LmgiCisjaW5jbHVkZSAiV2ViTmF2aWdh
dG9yQ29udGVudFV0aWxzUHJveHkuaCIKKwordXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKKyNlbmRp
ZiAvLyBFTkFCTEUoTkFWSUdBVE9SX0NPTlRFTlRfVVRJTFMpCisKK1dLVHlwZUlEIFdLTmF2aWdh
dG9yQ29udGVudFV0aWxzR2V0VHlwZUlEKCkKK3sKKyNpZiBFTkFCTEUoTkFWSUdBVE9SX0NPTlRF
TlRfVVRJTFMpCisgICAgcmV0dXJuIHRvQVBJKFdlYk5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3h5
OjpBUElUeXBlKTsKKyNlbHNlCisgICAgcmV0dXJuIDA7CisjZW5kaWYKK30KKwordm9pZCBXS05h
dmlnYXRvckNvbnRlbnRVdGlsc1NldFByb3ZpZGVyKFdLTmF2aWdhdG9yQ29udGVudFV0aWxzUmVm
IHJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUmVmLCBjb25zdCBXS05hdmlnYXRvckNvbnRlbnRVdGls
c1Byb3ZpZGVyKiB3a1Byb3ZpZGVyKQoreworI2lmIEVOQUJMRShOQVZJR0FUT1JfQ09OVEVOVF9V
VElMUykKKyAgICB0b0ltcGwocmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJSZWYpLT5pbml0aWFsaXpl
UHJvdmlkZXIod2tQcm92aWRlcik7CisjZW5kaWYKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQy9XS05hdmlnYXRvckNvbnRlbnRVdGlscy5oIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLTmF2aWdhdG9yQ29udGVudFV0aWxzLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYzYyMTczZGI2NTY1NGE3MWY1YjZkZTE4ZTI3ZjE3MGU1NjgxNjhkMAotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS05hdmlnYXRvckNvbnRlbnRV
dGlscy5oCkBAIC0wLDAgKzEsNjUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgSW50ZWwg
Q29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV0tO
YXZpZ2F0b3JDb250ZW50VXRpbHNfaAorI2RlZmluZSBXS05hdmlnYXRvckNvbnRlbnRVdGlsc19o
CisKKyNpbmNsdWRlIDxXZWJLaXQyL1dLQmFzZS5oPgorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4
dGVybiAiQyIgeworI2VuZGlmCisKK2VudW0geworICAgIGtXS0N1c3RvbUhhbmRsZXJzTmV3LAor
ICAgIGtXS0N1c3RvbUhhbmRsZXJzUmVnaXN0ZXJlZCwKKyAgICBrV0tDdXN0b21IYW5kbGVyc0Rl
Y2xpbmVkCit9OwordHlwZWRlZiB1aW50MzJfdCBXS0N1c3RvbUhhbmRsZXJzU3RhdGU7CisKK3R5
cGVkZWYgdm9pZCAoKldLTmF2aWdhdG9yQ29udGVudFV0aWxzUHJvdmlkZXJSZWdpc3RlclByb3Rv
Y29sQ2FsbGJhY2spKFdLTmF2aWdhdG9yQ29udGVudFV0aWxzUmVmIHJlZ2lzdGVyUHJvdG9jb2xI
YW5kbGVyUmVmLCBXS1N0cmluZ1JlZiBzY2hlbWUsIFdLU3RyaW5nUmVmIGJhc2VVUkwsIFdLU3Ry
aW5nUmVmIHVybCwgV0tTdHJpbmdSZWYgdGl0bGUsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwor
dHlwZWRlZiBXS0N1c3RvbUhhbmRsZXJzU3RhdGUgKCpXS05hdmlnYXRvckNvbnRlbnRVdGlsc1By
b3ZpZGVySXNQcm90b2NvbFJlZ2lzdGVyZWRDYWxsYmFjaykoV0tOYXZpZ2F0b3JDb250ZW50VXRp
bHNSZWYgcmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJSZWYsIFdLU3RyaW5nUmVmIHNjaGVtZSwgV0tT
dHJpbmdSZWYgYmFzZVVSTCwgV0tTdHJpbmdSZWYgdXJsLCBjb25zdCB2b2lkKiBjbGllbnRJbmZv
KTsKK3R5cGVkZWYgdm9pZCAoKldLTmF2aWdhdG9yQ29udGVudFV0aWxzUHJvdmlkZXJVbnJlZ2lz
dGVyUHJvdG9jb2xDYWxsYmFjaykoV0tOYXZpZ2F0b3JDb250ZW50VXRpbHNSZWYgcmVnaXN0ZXJQ
cm90b2NvbEhhbmRsZXJSZWYsIFdLU3RyaW5nUmVmIHNjaGVtZSwgV0tTdHJpbmdSZWYgYmFzZVVS
TCwgV0tTdHJpbmdSZWYgdXJsLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKKworc3RydWN0IFdL
TmF2aWdhdG9yQ29udGVudFV0aWxzUHJvdmlkZXIgeworICAgIGludCAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlcnNpb247
CisgICAgY29uc3Qgdm9pZCAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY2xpZW50SW5mbzsKKyAgICBXS05hdmlnYXRvckNvbnRlbnRVdGls
c1Byb3ZpZGVyUmVnaXN0ZXJQcm90b2NvbENhbGxiYWNrICAgICAgICAgICAgICByZWdpc3RlclBy
b3RvY29sSGFuZGxlcjsKKyAgICBXS05hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3ZpZGVySXNQcm90
b2NvbFJlZ2lzdGVyZWRDYWxsYmFjayAgICAgICAgICBpc1Byb3RvY29sSGFuZGxlclJlZ2lzdGVy
ZWQ7CisgICAgV0tOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm92aWRlclVucmVnaXN0ZXJQcm90b2Nv
bENhbGxiYWNrICAgICAgICAgICAgdW5yZWdpc3RlclByb3RvY29sSGFuZGxlcjsKK307Cit0eXBl
ZGVmIHN0cnVjdCBXS05hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3ZpZGVyIFdLTmF2aWdhdG9yQ29u
dGVudFV0aWxzUHJvdmlkZXI7CisKK2VudW0geyBrV0tOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm92
aWRlckN1cnJlbnRWZXJzaW9uID0gMCB9OworCitXS19FWFBPUlQgV0tUeXBlSUQgV0tOYXZpZ2F0
b3JDb250ZW50VXRpbHNHZXRUeXBlSUQoKTsKKworV0tfRVhQT1JUIHZvaWQgV0tOYXZpZ2F0b3JD
b250ZW50VXRpbHNTZXRQcm92aWRlcihXS05hdmlnYXRvckNvbnRlbnRVdGlsc1JlZiByZWdpc3Rl
clByb3RvY29sSGFuZGxlclJlZiwgY29uc3QgV0tOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm92aWRl
ciogcHJvdmlkZXIpOworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorCisjZW5kaWYg
Ly8gV0tOYXZpZ2F0b3JDb250ZW50VXRpbHNfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNv
bnRleHQuY3BwCmluZGV4IDUwYWMyM2ZkOTE1ZmNjODgwNjBjOWIyNmJlNTcwZmEyMGYyN2NhMWIu
LjNjOWQ3NTQ2YTRhNjYzMzg1NDM3ODI5MWRlMDNhNTYyZDgwMjE5YjIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAKQEAgLTcwLDYgKzcwLDEwIEBACiAjaW5jbHVkZSAi
V2ViQmF0dGVyeU1hbmFnZXJQcm94eS5oIgogI2VuZGlmCiAKKyNpZiBFTkFCTEUoTkFWSUdBVE9S
X0NPTlRFTlRfVVRJTFMpCisjaW5jbHVkZSAiV2ViTmF2aWdhdG9yQ29udGVudFV0aWxzUHJveHku
aCIKKyNlbmRpZgorCiAjaWYgRU5BQkxFKE5FVFdPUktfSU5GTykKICNpbmNsdWRlICJXZWJOZXR3
b3JrSW5mb01hbmFnZXJQcm94eS5oIgogI2VuZGlmCkBAIC0xNjUsNiArMTY5LDkgQEAgV2ViQ29u
dGV4dDo6V2ViQ29udGV4dChQcm9jZXNzTW9kZWwgcHJvY2Vzc01vZGVsLCBjb25zdCBTdHJpbmcm
IGluamVjdGVkQnVuZGxlUGEKICAgICBhZGRTdXBwbGVtZW50PFdlYkdlb2xvY2F0aW9uTWFuYWdl
clByb3h5PigpOwogICAgIGFkZFN1cHBsZW1lbnQ8V2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlcj4o
KTsKICAgICBhZGRTdXBwbGVtZW50PFdlYk1lZGlhQ2FjaGVNYW5hZ2VyUHJveHk+KCk7CisjaWYg
RU5BQkxFKE5BVklHQVRPUl9DT05URU5UX1VUSUxTKQorICAgIGFkZFN1cHBsZW1lbnQ8V2ViTmF2
aWdhdG9yQ29udGVudFV0aWxzUHJveHk+KCk7CisjZW5kaWYKICAgICBhZGRTdXBwbGVtZW50PFdl
Yk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eT4oKTsKICAgICBhZGRTdXBwbGVtZW50PFdlYlJlc291
cmNlQ2FjaGVNYW5hZ2VyUHJveHk+KCk7CiAjaWYgRU5BQkxFKFNRTF9EQVRBQkFTRSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmggYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5oCmluZGV4IDRlOTk1OGQ4M2ExNGZmYTllN2Q3MTNh
NGM5YjFkNjVkYWNlZWY4NDkuLjRmM2M5NjU0YjA4YWZmYTU3NmQ3ZGJiM2M5ZWMxOGI3NDI5YTU3
ZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmgKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuaApAQCAtNzYsNiArNzYsOSBA
QCBzdHJ1Y3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczsKIHR5cGVkZWYgR2VuZXJpY0Nh
bGxiYWNrPFdLRGljdGlvbmFyeVJlZj4gRGljdGlvbmFyeUNhbGxiYWNrOwogCiAjaWYgRU5BQkxF
KE5FVFdPUktfSU5GTykKK2NsYXNzIFdlYk5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3h5OworI2Vu
ZGlmCisjaWYgRU5BQkxFKE5FVFdPUktfSU5GTykKIGNsYXNzIFdlYk5ldHdvcmtJbmZvTWFuYWdl
clByb3h5OwogI2VuZGlmCiAjaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm92aWRl
ci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTmF2aWdhdG9yQ29udGVudFV0aWxz
UHJvdmlkZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdhN2NjMmZmNThjMjkzNjgwNDA0YWZkYzViNDA0YzE4
ZTA5ZWRjOTgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
TmF2aWdhdG9yQ29udGVudFV0aWxzUHJvdmlkZXIuY3BwCkBAIC0wLDAgKzEsNjQgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTMgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJOYXZpZ2F0
b3JDb250ZW50VXRpbHNQcm92aWRlci5oIgorCisjaWYgRU5BQkxFKE5BVklHQVRPUl9DT05URU5U
X1VUSUxTKQorCisjaW5jbHVkZSAiV0tBUElDYXN0LmgiCisjaW5jbHVkZSAiV2ViTmF2aWdhdG9y
Q29udGVudFV0aWxzUHJveHkuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3ZvaWQgV2ViTmF2
aWdhdG9yQ29udGVudFV0aWxzUHJvdmlkZXI6OnJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyKFdlYk5h
dmlnYXRvckNvbnRlbnRVdGlsc1Byb3h5KiBwcm94eSwgY29uc3QgU3RyaW5nJiBzY2hlbWUsIGNv
bnN0IFN0cmluZyYgYmFzZVVSTCwgY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0cmluZyYgdGl0
bGUpCit7CisgICAgaWYgKCFtX2NsaWVudC5yZWdpc3RlclByb3RvY29sSGFuZGxlcikKKyAgICAg
ICAgcmV0dXJuOworCisgICAgbV9jbGllbnQucmVnaXN0ZXJQcm90b2NvbEhhbmRsZXIodG9BUEko
cHJveHkpLCB0b0FQSShzY2hlbWUuaW1wbCgpKSwgdG9BUEkoYmFzZVVSTC5pbXBsKCkpLCB0b0FQ
SSh1cmwuaW1wbCgpKSwgdG9BUEkodGl0bGUuaW1wbCgpKSwgbV9jbGllbnQuY2xpZW50SW5mbyk7
Cit9CisKKyNpZiBFTkFCTEUoQ1VTVE9NX1NDSEVNRV9IQU5ETEVSKQordm9pZCBXZWJOYXZpZ2F0
b3JDb250ZW50VXRpbHNQcm92aWRlcjo6aXNQcm90b2NvbEhhbmRsZXJSZWdpc3RlcmVkKFdlYk5h
dmlnYXRvckNvbnRlbnRVdGlsc1Byb3h5KiBwcm94eSwgY29uc3QgU3RyaW5nJiBzY2hlbWUsIGNv
bnN0IFN0cmluZyYgYmFzZVVSTCwgY29uc3QgU3RyaW5nJiB1cmwsIHVpbnQzMl90JiByZXN1bHQp
Cit7CisgICAgaWYgKCFtX2NsaWVudC5pc1Byb3RvY29sSGFuZGxlclJlZ2lzdGVyZWQpCisgICAg
ICAgIHJldHVybjsKKworICAgIHJlc3VsdCA9IG1fY2xpZW50LmlzUHJvdG9jb2xIYW5kbGVyUmVn
aXN0ZXJlZCh0b0FQSShwcm94eSksIHRvQVBJKHNjaGVtZS5pbXBsKCkpLCB0b0FQSShiYXNlVVJM
LmltcGwoKSksIHRvQVBJKHVybC5pbXBsKCkpLCBtX2NsaWVudC5jbGllbnRJbmZvKTsKK30KKwor
dm9pZCBXZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm92aWRlcjo6dW5yZWdpc3RlclByb3RvY29s
SGFuZGxlcihXZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm94eSogcHJveHksIGNvbnN0IFN0cmlu
ZyYgc2NoZW1lLCBjb25zdCBTdHJpbmcmIGJhc2VVUkwsIGNvbnN0IFN0cmluZyYgdXJsKQorewor
ICAgIGlmICghbV9jbGllbnQudW5yZWdpc3RlclByb3RvY29sSGFuZGxlcikKKyAgICAgICAgcmV0
dXJuOworCisgICAgbV9jbGllbnQudW5yZWdpc3RlclByb3RvY29sSGFuZGxlcih0b0FQSShwcm94
eSksIHRvQVBJKHNjaGVtZS5pbXBsKCkpLCB0b0FQSShiYXNlVVJMLmltcGwoKSksIHRvQVBJKHVy
bC5pbXBsKCkpLCBtX2NsaWVudC5jbGllbnRJbmZvKTsKK30KKyNlbmRpZiAvLyBFTkFCTEUoQ1VT
VE9NX1NDSEVNRV9IQU5ETEVSKQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8v
IEVOQUJMRShOQVZJR0FUT1JfQ09OVEVOVF9VVElMUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm92aWRlci5oIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYk5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3ZpZGVyLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uOTM4NTZhOTYyMjM0NzlhNjE4NTc2Njc1MGFlODBmZDUxZTIzMzZkOQotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJOYXZpZ2F0b3JDb250ZW50
VXRpbHNQcm92aWRlci5oCkBAIC0wLDAgKzEsNTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTMgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
Zm5kZWYgV2ViTmF2aWdhdG9yQ29udGVudFV0aWxzUHJvdmlkZXJfaAorI2RlZmluZSBXZWJOYXZp
Z2F0b3JDb250ZW50VXRpbHNQcm92aWRlcl9oCisKKyNpZiBFTkFCTEUoTkFWSUdBVE9SX0NPTlRF
TlRfVVRJTFMpCisKKyNpbmNsdWRlICJBUElDbGllbnQuaCIKKyNpbmNsdWRlICJXS05hdmlnYXRv
ckNvbnRlbnRVdGlscy5oIgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisKK25hbWVzcGFjZSBX
ZWJLaXQgeworCitjbGFzcyBXZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm94eTsKKworY2xhc3Mg
V2ViTmF2aWdhdG9yQ29udGVudFV0aWxzUHJvdmlkZXIgOiBwdWJsaWMgQVBJQ2xpZW50PFdLTmF2
aWdhdG9yQ29udGVudFV0aWxzUHJvdmlkZXIsIGtXS05hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3Zp
ZGVyQ3VycmVudFZlcnNpb24+IHsKK3B1YmxpYzoKKyAgICB2b2lkIHJlZ2lzdGVyUHJvdG9jb2xI
YW5kbGVyKFdlYk5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3h5KiwgY29uc3QgU3RyaW5nJiBzY2hl
bWUsIGNvbnN0IFN0cmluZyYgYmFzZVVSTCwgY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0cmlu
ZyYgdGl0bGUpOworCisjaWYgRU5BQkxFKENVU1RPTV9TQ0hFTUVfSEFORExFUikKKyAgICB2b2lk
IGlzUHJvdG9jb2xIYW5kbGVyUmVnaXN0ZXJlZChXZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm94
eSosIGNvbnN0IFN0cmluZyYgc2NoZW1lLCBjb25zdCBTdHJpbmcmIGJhc2VVUkwsIGNvbnN0IFN0
cmluZyYgdXJsLCB1aW50MzJfdCYgcmVzdWx0KTsKKyAgICB2b2lkIHVucmVnaXN0ZXJQcm90b2Nv
bEhhbmRsZXIoV2ViTmF2aWdhdG9yQ29udGVudFV0aWxzUHJveHkqLCBjb25zdCBTdHJpbmcmIHNj
aGVtZSwgY29uc3QgU3RyaW5nJiBiYXNlVVJMLCBjb25zdCBTdHJpbmcmIHVybCk7CisjZW5kaWYg
Ly8gRU5BQkxFKENVU1RPTV9TQ0hFTUVfSEFORExFUikKK307CisKK30gLy8gbmFtZXNwYWNlIFdl
YktpdAorCisjZW5kaWYgLy8gRU5BQkxFKE5BVklHQVRPUl9DT05URU5UX1VUSUxTKQorI2VuZGlm
IC8vIFdlYk5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3ZpZGVyX2gKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm94eS5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTmF2aWdhdG9yQ29udGVudFV0aWxzUHJveHkuY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjA1MDExZWUzOTBjNjNhNDAwNDEwYjNmMzNmNDljMjg2YjZmMjE3NWQKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTmF2aWdhdG9yQ29u
dGVudFV0aWxzUHJveHkuY3BwCkBAIC0wLDAgKzEsOTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTMgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMTMgU2Ftc3VuZyBFbGVjdHJvbmljcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYk5hdmlnYXRvckNvbnRl
bnRVdGlsc1Byb3h5LmgiCisKKyNpZiBFTkFCTEUoTkFWSUdBVE9SX0NPTlRFTlRfVVRJTFMpCisK
KyNpbmNsdWRlICJXZWJDb250ZXh0LmgiCisjaW5jbHVkZSAiV2ViTmF2aWdhdG9yQ29udGVudFV0
aWxzUHJveHlNZXNzYWdlcy5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY29uc3QgY2hhciog
V2ViTmF2aWdhdG9yQ29udGVudFV0aWxzUHJveHk6OnN1cHBsZW1lbnROYW1lKCkKK3sKKyAgICBy
ZXR1cm4gIldlYk5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3h5IjsKK30KKworUGFzc1JlZlB0cjxX
ZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm94eT4gV2ViTmF2aWdhdG9yQ29udGVudFV0aWxzUHJv
eHk6OmNyZWF0ZShXZWJDb250ZXh0KiBjb250ZXh0KQoreworICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgV2ViTmF2aWdhdG9yQ29udGVudFV0aWxzUHJveHkoY29udGV4dCkpOworfQorCitXZWJOYXZp
Z2F0b3JDb250ZW50VXRpbHNQcm94eTo6V2ViTmF2aWdhdG9yQ29udGVudFV0aWxzUHJveHkoV2Vi
Q29udGV4dCogY29udGV4dCkKKyAgICA6IFdlYkNvbnRleHRTdXBwbGVtZW50KGNvbnRleHQpCit7
CisgICAgV2ViQ29udGV4dFN1cHBsZW1lbnQ6OmNvbnRleHQoKS0+YWRkTWVzc2FnZVJlY2VpdmVy
KE1lc3NhZ2VzOjpXZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm94eTo6bWVzc2FnZVJlY2VpdmVy
TmFtZSgpLCB0aGlzKTsKK30KKworV2ViTmF2aWdhdG9yQ29udGVudFV0aWxzUHJveHk6On5XZWJO
YXZpZ2F0b3JDb250ZW50VXRpbHNQcm94eSgpCit7Cit9CisKK3ZvaWQgV2ViTmF2aWdhdG9yQ29u
dGVudFV0aWxzUHJveHk6OmluaXRpYWxpemVQcm92aWRlcihjb25zdCBXS05hdmlnYXRvckNvbnRl
bnRVdGlsc1Byb3ZpZGVyKiBwcm92aWRlcikKK3sKKyAgICBtX3Byb3ZpZGVyLmluaXRpYWxpemUo
cHJvdmlkZXIpOworfQorCit2b2lkIFdlYk5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3h5OjpyZWdp
c3RlclByb3RvY29sSGFuZGxlcihjb25zdCBTdHJpbmcmIHNjaGVtZSwgY29uc3QgU3RyaW5nJiBi
YXNlVVJMLCBjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgU3RyaW5nJiB0aXRsZSkKK3sKKyAgICBt
X3Byb3ZpZGVyLnJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyKHRoaXMsIHNjaGVtZSwgYmFzZVVSTCwg
dXJsLCB0aXRsZSk7Cit9CisKKyNpZiBFTkFCTEUoQ1VTVE9NX1NDSEVNRV9IQU5ETEVSKQordm9p
ZCBXZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm94eTo6aXNQcm90b2NvbEhhbmRsZXJSZWdpc3Rl
cmVkKGNvbnN0IFN0cmluZyYgc2NoZW1lLCBjb25zdCBTdHJpbmcmIGJhc2VVUkwsIGNvbnN0IFN0
cmluZyYgdXJsLCB1aW50MzJfdCYgcmVzdWx0KQoreworICAgIG1fcHJvdmlkZXIuaXNQcm90b2Nv
bEhhbmRsZXJSZWdpc3RlcmVkKHRoaXMsIHNjaGVtZSwgYmFzZVVSTCwgdXJsLCByZXN1bHQpOwor
fQorCit2b2lkIFdlYk5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3h5Ojp1bnJlZ2lzdGVyUHJvdG9j
b2xIYW5kbGVyKGNvbnN0IFN0cmluZyYgc2NoZW1lLCBjb25zdCBTdHJpbmcmIGJhc2VVUkwsIGNv
bnN0IFN0cmluZyYgdXJsKQoreworICAgIG1fcHJvdmlkZXIudW5yZWdpc3RlclByb3RvY29sSGFu
ZGxlcih0aGlzLCBzY2hlbWUsIGJhc2VVUkwsIHVybCk7Cit9CisjZW5kaWYgLy8gRU5BQkxFKENV
U1RPTV9TQ0hFTUVfSEFORExFUikKKworLy8gV2ViQ29udGV4dFN1cHBsZW1lbnQKK3ZvaWQgV2Vi
TmF2aWdhdG9yQ29udGVudFV0aWxzUHJveHk6OnJlZldlYkNvbnRleHRTdXBwbGVtZW50KCkKK3sK
KyAgICBBUElPYmplY3Q6OnJlZigpOworfQorCit2b2lkIFdlYk5hdmlnYXRvckNvbnRlbnRVdGls
c1Byb3h5OjpkZXJlZldlYkNvbnRleHRTdXBwbGVtZW50KCkKK3sKKyAgICBBUElPYmplY3Q6OmRl
cmVmKCk7Cit9Cit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShOQVZJ
R0FUT1JfQ09OVEVOVF9VVElMUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYk5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3h5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGVjMTA5NjBh
ODcxNDk1ZjdhNzZkZjYyZGQ5NTM1ZGRhN2QxOTk4ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm94eS5oCkBAIC0w
LDAgKzEsNzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgSW50ZWwgQ29ycG9yYXRpb24u
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgU2Ftc3VuZyBFbGVj
dHJvbmljcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJOYXZp
Z2F0b3JDb250ZW50VXRpbHNQcm94eV9oCisjZGVmaW5lIFdlYk5hdmlnYXRvckNvbnRlbnRVdGls
c1Byb3h5X2gKKworI2lmIEVOQUJMRShOQVZJR0FUT1JfQ09OVEVOVF9VVElMUykKKworI2luY2x1
ZGUgIkFQSU9iamVjdC5oIgorI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgorI2luY2x1ZGUg
IldlYkNvbnRleHRTdXBwbGVtZW50LmgiCisjaW5jbHVkZSAiV2ViTmF2aWdhdG9yQ29udGVudFV0
aWxzUHJvdmlkZXIuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYkNvbnRleHQ7
CitjbGFzcyBXZWJQcm9jZXNzUHJveHk7CisKK2NsYXNzIFdlYk5hdmlnYXRvckNvbnRlbnRVdGls
c1Byb3h5IDogcHVibGljIFR5cGVkQVBJT2JqZWN0PEFQSU9iamVjdDo6VHlwZU5hdmlnYXRvckNv
bnRlbnRVdGlscz4sIHB1YmxpYyBXZWJDb250ZXh0U3VwcGxlbWVudCwgcHJpdmF0ZSBDb3JlSVBD
OjpNZXNzYWdlUmVjZWl2ZXIgeworcHVibGljOgorICAgIHN0YXRpYyBjb25zdCBjaGFyKiBzdXBw
bGVtZW50TmFtZSgpOworCisgICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViTmF2aWdhdG9yQ29udGVu
dFV0aWxzUHJveHk+IGNyZWF0ZShXZWJDb250ZXh0Kik7CisgICAgdmlydHVhbCB+V2ViTmF2aWdh
dG9yQ29udGVudFV0aWxzUHJveHkoKTsKKworICAgIHZvaWQgaW5pdGlhbGl6ZVByb3ZpZGVyKGNv
bnN0IFdLTmF2aWdhdG9yQ29udGVudFV0aWxzUHJvdmlkZXIqKTsKKworICAgIHVzaW5nIEFQSU9i
amVjdDo6cmVmOworICAgIHVzaW5nIEFQSU9iamVjdDo6ZGVyZWY7CisKK3ByaXZhdGU6CisgICAg
ZXhwbGljaXQgV2ViTmF2aWdhdG9yQ29udGVudFV0aWxzUHJveHkoV2ViQ29udGV4dCopOworCisg
ICAgLy8gV2ViQ29udGV4dFN1cHBsZW1lbnQKKyAgICB2aXJ0dWFsIHZvaWQgcmVmV2ViQ29udGV4
dFN1cHBsZW1lbnQoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZGVyZWZXZWJDb250ZXh0
U3VwcGxlbWVudCgpIE9WRVJSSURFOworCisgICAgLy8gQ29yZUlQQzo6TWVzc2FnZVJlY2VpdmVy
CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24q
LCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBk
aWRSZWNlaXZlU3luY01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3Nh
Z2VEZWNvZGVyJiwgT3duUHRyPENvcmVJUEM6Ok1lc3NhZ2VFbmNvZGVyPiYpIE9WRVJSSURFOwor
CisgICAgdm9pZCByZWdpc3RlclByb3RvY29sSGFuZGxlcihjb25zdCBTdHJpbmcmIHNjaGVtZSwg
Y29uc3QgU3RyaW5nJiBiYXNlVVJMLCBjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgU3RyaW5nJiB0
aXRsZSk7CisjaWYgRU5BQkxFKENVU1RPTV9TQ0hFTUVfSEFORExFUikKKyAgICB2b2lkIGlzUHJv
dG9jb2xIYW5kbGVyUmVnaXN0ZXJlZChjb25zdCBTdHJpbmcmIHNjaGVtZSwgY29uc3QgU3RyaW5n
JiBiYXNlVVJMLCBjb25zdCBTdHJpbmcmIHVybCwgdWludDMyX3QmIHJlc3VsdCk7CisgICAgdm9p
ZCB1bnJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyKGNvbnN0IFN0cmluZyYgc2NoZW1lLCBjb25zdCBT
dHJpbmcmIGJhc2VVUkwsIGNvbnN0IFN0cmluZyYgdXJsKTsKKyNlbmRpZiAvLyBFTkFCTEUoQ1VT
VE9NX1NDSEVNRV9IQU5ETEVSKQorCisgICAgV2ViTmF2aWdhdG9yQ29udGVudFV0aWxzUHJvdmlk
ZXIgbV9wcm92aWRlcjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8g
RU5BQkxFKE5BVklHQVRPUl9DT05URU5UX1VUSUxTKQorCisjZW5kaWYgLy8gV2ViTmF2aWdhdG9y
Q29udGVudFV0aWxzUHJveHlfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYk5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYk5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3h5Lm1lc3NhZ2VzLmluCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmZlZjJkNTNiYThhYTA3N2VlZDJmMWU0MDg5OGE0NDY1NmEyN2EyNzkKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTmF2aWdhdG9yQ29udGVu
dFV0aWxzUHJveHkubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwzMyBAQAorIyBDb3B5cmlnaHQgKEMp
IDIwMTMgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisj
IDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMg
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJyBBTkQKKyMgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyMgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RQorIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUgorIyBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisjIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SCisjIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisjIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisjIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyNpZiBFTkFCTEUoTkFWSUdBVE9SX0NP
TlRFTlRfVVRJTFMpCisKK21lc3NhZ2VzIC0+IFdlYk5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3h5
IHsKKyAgICBSZWdpc3RlclByb3RvY29sSGFuZGxlcihXVEY6OlN0cmluZyBzY2hlbWUsIFdURjo6
U3RyaW5nIGJhc2VVUkwsIFdURjo6U3RyaW5nIHVybCwgV1RGOjpTdHJpbmcgdGl0bGUpCisjaWYg
RU5BQkxFKENVU1RPTV9TQ0hFTUVfSEFORExFUikKKyAgICBJc1Byb3RvY29sSGFuZGxlclJlZ2lz
dGVyZWQoV1RGOjpTdHJpbmcgc2NoZW1lLCBXVEY6OlN0cmluZyBiYXNlVVJMLCBXVEY6OlN0cmlu
ZyB1cmwpIC0+ICh1aW50MzJfdCByZXN1bHQpCisgICAgVW5yZWdpc3RlclByb3RvY29sSGFuZGxl
cihXVEY6OlN0cmluZyBzY2hlbWUsIFdURjo6U3RyaW5nIGJhc2VVUkwsIFdURjo6U3RyaW5nIHVy
bCkKKyNlbmRpZiAvLyBFTkFCTEUoQ1VTVE9NX1NDSEVNRV9IQU5ETEVSKQorfQorCisjZW5kaWYg
Ly8gRU5BQkxFKE5BVklHQVRPUl9DT05URU5UX1VUSUxTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJOYXZpZ2F0b3JDb250ZW50VXRpbHND
bGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJO
YXZpZ2F0b3JDb250ZW50VXRpbHNDbGllbnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE5MWIyYmVlOGMyYzRj
ZmFmMTczNmFmOGJhNDE5MjM0NTRiYjgxYjAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYk5hdmlnYXRvckNvbnRlbnRVdGlsc0Ns
aWVudC5jcHAKQEAgLTAsMCArMSw3NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBJbnRl
bCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAx
MyBTYW1zdW5nIEVsZWN0cm9uaWNzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViTmF2aWdhdG9yQ29udGVudFV0aWxzQ2xp
ZW50LmgiCisKKyNpZiBFTkFCTEUoTkFWSUdBVE9SX0NPTlRFTlRfVVRJTFMpCisKKyNpbmNsdWRl
ICJXZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2Vi
UHJvY2Vzcy5oIgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKK3VzaW5nIG5hbWVzcGFjZSBN
ZXNzYWdlczo6V2ViTmF2aWdhdG9yQ29udGVudFV0aWxzUHJveHk7CisKK25hbWVzcGFjZSBXZWJL
aXQgeworCit2b2lkIFdlYk5hdmlnYXRvckNvbnRlbnRVdGlsc0NsaWVudDo6cmVnaXN0ZXJQcm90
b2NvbEhhbmRsZXIoY29uc3QgU3RyaW5nJiBzY2hlbWUsIGNvbnN0IFN0cmluZyYgYmFzZVVSTCwg
Y29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0cmluZyYgdGl0bGUpCit7CisgICAgV2ViUHJvY2Vz
czo6c2hhcmVkKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChSZWdpc3RlclByb3Rv
Y29sSGFuZGxlcihzY2hlbWUsIGJhc2VVUkwsIHVybCwgdGl0bGUpLCAwKTsKK30KKworI2lmIEVO
QUJMRShDVVNUT01fU0NIRU1FX0hBTkRMRVIpCitzdGF0aWMgaW5saW5lIE5hdmlnYXRvckNvbnRl
bnRVdGlsc0NsaWVudDo6Q3VzdG9tSGFuZGxlcnNTdGF0ZSB0b0N1c3RvbUhhbmRsZXJzU3RhdGUo
Y29uc3QgdWludDMyX3Qgc3RhdGUpCit7CisgICAgc3dpdGNoIChzdGF0ZSkgeworICAgIGNhc2Ug
TmF2aWdhdG9yQ29udGVudFV0aWxzQ2xpZW50OjpDdXN0b21IYW5kbGVyc05ldzoKKyAgICBjYXNl
IE5hdmlnYXRvckNvbnRlbnRVdGlsc0NsaWVudDo6Q3VzdG9tSGFuZGxlcnNSZWdpc3RlcmVkOgor
ICAgIGNhc2UgTmF2aWdhdG9yQ29udGVudFV0aWxzQ2xpZW50OjpDdXN0b21IYW5kbGVyc0RlY2xp
bmVkOgorICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8TmF2aWdhdG9yQ29udGVudFV0aWxzQ2xp
ZW50OjpDdXN0b21IYW5kbGVyc1N0YXRlPihzdGF0ZSk7CisgICAgZGVmYXVsdDoKKyAgICAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiBOYXZpZ2F0b3JDb250ZW50VXRp
bHNDbGllbnQ6OkN1c3RvbUhhbmRsZXJzRGVjbGluZWQ7CisgICAgfQorfQorCitOYXZpZ2F0b3JD
b250ZW50VXRpbHNDbGllbnQ6OkN1c3RvbUhhbmRsZXJzU3RhdGUgV2ViTmF2aWdhdG9yQ29udGVu
dFV0aWxzQ2xpZW50Ojppc1Byb3RvY29sSGFuZGxlclJlZ2lzdGVyZWQoY29uc3QgU3RyaW5nJiBz
Y2hlbWUsIGNvbnN0IFN0cmluZyYgYmFzZVVSTCwgY29uc3QgU3RyaW5nJiB1cmwpCit7CisgICAg
dWludDMyX3QgcmVzdWx0ID0gc3RhdGljX2Nhc3Q8dWludDMyX3Q+KE5hdmlnYXRvckNvbnRlbnRV
dGlsc0NsaWVudDo6Q3VzdG9tSGFuZGxlcnNOZXcpOworICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgp
LnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmRTeW5jKElzUHJvdG9jb2xIYW5kbGVyUmVn
aXN0ZXJlZChzY2hlbWUsIGJhc2VVUkwsIHVybCksIElzUHJvdG9jb2xIYW5kbGVyUmVnaXN0ZXJl
ZDo6UmVwbHkocmVzdWx0KSwgMCk7CisgICAgcmV0dXJuIHRvQ3VzdG9tSGFuZGxlcnNTdGF0ZShy
ZXN1bHQpOworfQorCit2b2lkIFdlYk5hdmlnYXRvckNvbnRlbnRVdGlsc0NsaWVudDo6dW5yZWdp
c3RlclByb3RvY29sSGFuZGxlcihjb25zdCBTdHJpbmcmIHNjaGVtZSwgY29uc3QgU3RyaW5nJiBi
YXNlVVJMLCBjb25zdCBTdHJpbmcmIHVybCkKK3sKKyAgICBXZWJQcm9jZXNzOjpzaGFyZWQoKS5w
YXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKFVucmVnaXN0ZXJQcm90b2NvbEhhbmRsZXIo
c2NoZW1lLCBiYXNlVVJMLCB1cmwpLCAwKTsKK30KKyNlbmRpZiAvLyBFTkFCTEUoQ1VTVE9NX1ND
SEVNRV9IQU5ETEVSKQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJM
RShOQVZJR0FUT1JfQ09OVEVOVF9VVElMUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTmF2aWdhdG9yQ29udGVudFV0aWxzQ2xpZW50Lmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYk5hdmlnYXRvckNv
bnRlbnRVdGlsc0NsaWVudC5oCmluZGV4IGM4MGI1NzgxZTk5MzE4MTRjMjMxZTgyNTBhMjIyMzJi
NmU0M2E3MWEuLjAzMjk5MGViNTQ0OWVkM2I3MjQ1MjU2MTA0NzA3NGM2YTAxYjQ1MjIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTmF2aWdh
dG9yQ29udGVudFV0aWxzQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNDbGllbnQuaApAQCAtMzgsMTEg
KzM4LDExIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5XZWJOYXZpZ2F0b3JDb250ZW50VXRpbHND
bGllbnQoKSB7IH0KIAogcHJpdmF0ZToKLSAgICB2aXJ0dWFsIHZvaWQgcmVnaXN0ZXJQcm90b2Nv
bEhhbmRsZXIoY29uc3QgU3RyaW5nJiBzY2hlbWUsIGNvbnN0IFN0cmluZyYgYmFzZVVSTCwgY29u
c3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0cmluZyYgdGl0bGUpIE9WRVJSSURFIHsgfQorICAgIHZp
cnR1YWwgdm9pZCByZWdpc3RlclByb3RvY29sSGFuZGxlcihjb25zdCBTdHJpbmcmIHNjaGVtZSwg
Y29uc3QgU3RyaW5nJiBiYXNlVVJMLCBjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgU3RyaW5nJiB0
aXRsZSkgT1ZFUlJJREU7CiAKICNpZiBFTkFCTEUoQ1VTVE9NX1NDSEVNRV9IQU5ETEVSKQotICAg
IHZpcnR1YWwgQ3VzdG9tSGFuZGxlcnNTdGF0ZSBpc1Byb3RvY29sSGFuZGxlclJlZ2lzdGVyZWQo
Y29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJikgeyByZXR1cm4gQ3Vz
dG9tSGFuZGxlcnNEZWNsaW5lZDsgfQotICAgIHZpcnR1YWwgdm9pZCB1bnJlZ2lzdGVyUHJvdG9j
b2xIYW5kbGVyKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpIHsg
fQorICAgIHZpcnR1YWwgQ3VzdG9tSGFuZGxlcnNTdGF0ZSBpc1Byb3RvY29sSGFuZGxlclJlZ2lz
dGVyZWQoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJikgT1ZFUlJJ
REU7CisgICAgdmlydHVhbCB2b2lkIHVucmVnaXN0ZXJQcm90b2NvbEhhbmRsZXIoY29uc3QgU3Ry
aW5nJiwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJikgT1ZFUlJJREU7CiAjZW5kaWYKIH07
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRl
eCA3ODViODE4YzNkYWYzODA3MzljN2NmMDFkNWJhYmM5M2QzOWIzNjljLi5lZWM3N2VjODkwZjM2
NjkyNzZlMjVlYjk5NTM1ZWY3NmU0ODZlNDYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0xNTAsNiArMTUwLDEwIEBACiAjaW5jbHVkZSAi
V2ViQmF0dGVyeUNsaWVudC5oIgogI2VuZGlmCiAKKyNpZiBFTkFCTEUoTkFWSUdBVE9SX0NPTlRF
TlRfVVRJTFMpCisjaW5jbHVkZSAiV2ViTmF2aWdhdG9yQ29udGVudFV0aWxzQ2xpZW50LmgiCisj
ZW5kaWYKKwogI2lmIEVOQUJMRShORVRXT1JLX0lORk8pCiAjaW5jbHVkZSAiV2ViTmV0d29ya0lu
Zm9DbGllbnQuaCIKICNlbmRpZgpAQCAtMzI3LDYgKzMzMSw5IEBAIFdlYlBhZ2U6OldlYlBhZ2Uo
dWludDY0X3QgcGFnZUlELCBjb25zdCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0
ZXJzKQogICAgIFdlYkNvcmU6OnByb3ZpZGVEZXZpY2VNb3Rpb25UbyhtX3BhZ2UuZ2V0KCksIG5l
dyBEZXZpY2VNb3Rpb25DbGllbnRRdCk7CiAgICAgV2ViQ29yZTo6cHJvdmlkZURldmljZU9yaWVu
dGF0aW9uVG8obV9wYWdlLmdldCgpLCBuZXcgRGV2aWNlT3JpZW50YXRpb25DbGllbnRRdCk7CiAj
ZW5kaWYKKyNpZiBFTkFCTEUoTkFWSUdBVE9SX0NPTlRFTlRfVVRJTFMpCisgICAgV2ViQ29yZTo6
cHJvdmlkZU5hdmlnYXRvckNvbnRlbnRVdGlsc1RvKG1fcGFnZS5nZXQoKSwgbmV3IFdlYk5hdmln
YXRvckNvbnRlbnRVdGlsc0NsaWVudCk7CisjZW5kaWYKICNpZiBFTkFCTEUoTkVUV09SS19JTkZP
KQogICAgIFdlYkNvcmU6OnByb3ZpZGVOZXR3b3JrSW5mb1RvKG1fcGFnZS5nZXQoKSwgbmV3IFdl
Yk5ldHdvcmtJbmZvQ2xpZW50KHRoaXMpKTsKICNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>252847</attachid>
            <date>2015-05-11 01:01:23 -0700</date>
            <delta_ts>2015-05-11 23:50:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-92749-20150511170013.patch</filename>
            <type>text/plain</type>
            <size>40886</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgzOTIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTEyMTVmMjBlMzExNjcz
YjA2OGE1YzIyYWQwMmVlZWUwMTliMTUxMy4uYjZlYWZmY2RkYTEyMmE1ZWNjOGFkNTkyOGY4MGZi
ZWE5MWE3NTNiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDE1LTA1LTExICBHeXV5
b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ad2Via2l0Lm9yZz4KKworICAgICAgICBbV0syXSBBZGQg
TmF2aWdhdG9yIENvbnRlbnQgVXRpbHMgQVBJIHN1cHBvcnQgZm9yIFdlYktpdDIKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkyNzQ5CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBNb2R1bGVzL25hdmlnYXRv
cmNvbnRlbnR1dGlscy9OYXZpZ2F0b3JDb250ZW50VXRpbHNDbGllbnQuaDogQWRkIFdFQkNPUkVf
RVhQT1JUIHRvIHByb3ZpZGVOYXZpZ2F0b3JDb250ZW50VXRpbHNUbygpIGZ1bmN0aW9uLgorCiAy
MDE1LTA1LTA3ICBZb2F2IFdlaXNzICA8eW9hdkB5b2F2LndzPgogCiAgICAgICAgIEZpeCA8c2Ny
aXB0IHNyY3NldD4gYmVpbmcgbG9hZGVkIGJ5IHRoZSBwcmVsb2FkZXIuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXgg
MTcwYTc3NDY2YTllYWMzNmY2MWYyZmFkZTMyZGYwOWMzZDRjNGNhYS4uMGE2MTQ2OWU2ZmFiNjVi
ZTdlMjBhZGRmZjlkZGI1M2I4YjIwZTJhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisy
MDE1LTA1LTExICBHeXV5b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ad2Via2l0Lm9yZz4KKworICAg
ICAgICBbV0syXSBBZGQgTmF2aWdhdG9yIENvbnRlbnQgVXRpbHMgQVBJIHN1cHBvcnQgZm9yIFdl
YktpdDIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTky
NzQ5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgT3Jp
Z2luYWwgcGF0Y2ggYnkgTWlraGFpbCBQb3pkbnlha292IChtaWtoYWlsLnBvemRueWFrb3ZAaW50
ZWwuY29tKQorCisgICAgICAgIEFkZGVkIHN1cHBvcnQgb2YgTmF2aWdhdG9yIENvbnRlbnQgVXRp
bHMgQVBJIHN1cHBvcnQgZm9yIFdlYktpdDIuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoK
KyAgICAgICAgKiBTaGFyZWQvQVBJL0FQSU9iamVjdC5oOgorICAgICAgICAqIFNoYXJlZC9BUEkv
Yy9XS0Jhc2UuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0Lmg6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9DL1dLTmF2aWdhdG9yQ29udGVudFV0aWxzLmNwcDogQ29waWVk
IGZyb20gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJOYXZpZ2F0
b3JDb250ZW50VXRpbHNDbGllbnQuaC4KKyAgICAgICAgKFdLTmF2aWdhdG9yQ29udGVudFV0aWxz
R2V0VHlwZUlEKToKKyAgICAgICAgKFdLTmF2aWdhdG9yQ29udGVudFV0aWxzU2V0UHJvdmlkZXIp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS05hdmlnYXRvckNvbnRlbnRVdGlscy5oOiBB
ZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViTmF2aWdhdG9yQ29udGVudFV0aWxzUHJvdmlk
ZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViTmF2aWdhdG9yQ29udGVudFV0aWxz
UHJvdmlkZXI6OnJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
TmF2aWdhdG9yQ29udGVudFV0aWxzUHJvdmlkZXI6OmlzUHJvdG9jb2xIYW5kbGVyUmVnaXN0ZXJl
ZCk6CisgICAgICAgIChXZWJLaXQ6OldlYk5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3ZpZGVyOjp1
bnJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViTmF2aWdh
dG9yQ29udGVudFV0aWxzUHJvdmlkZXIuaDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNDbGllbnQuaC4K
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViTmF2aWdhdG9yQ29udGVudFV0aWxzUHJveHkuY3BwOiBB
ZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViTmF2aWdhdG9yQ29udGVudFV0aWxzUHJveHk6OnN1
cHBsZW1lbnROYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViTmF2aWdhdG9yQ29udGVudFV0aWxz
UHJveHk6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYk5hdmlnYXRvckNvbnRlbnRVdGls
c1Byb3h5OjpXZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm94eSk6CisgICAgICAgIChXZWJLaXQ6
OldlYk5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3h5Ojp+V2ViTmF2aWdhdG9yQ29udGVudFV0aWxz
UHJveHkpOgorICAgICAgICAoV2ViS2l0OjpXZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm94eTo6
aW5pdGlhbGl6ZVByb3ZpZGVyKToKKyAgICAgICAgKFdlYktpdDo6V2ViTmF2aWdhdG9yQ29udGVu
dFV0aWxzUHJveHk6OnJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyKToKKyAgICAgICAgKFdlYktpdDo6
V2ViTmF2aWdhdG9yQ29udGVudFV0aWxzUHJveHk6OmlzUHJvdG9jb2xIYW5kbGVyUmVnaXN0ZXJl
ZCk6CisgICAgICAgIChXZWJLaXQ6OldlYk5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3h5Ojp1bnJl
Z2lzdGVyUHJvdG9jb2xIYW5kbGVyKToKKyAgICAgICAgKFdlYktpdDo6V2ViTmF2aWdhdG9yQ29u
dGVudFV0aWxzUHJveHk6OnByb2Nlc3NQb29sRGVzdHJveWVkKToKKyAgICAgICAgKFdlYktpdDo6
V2ViTmF2aWdhdG9yQ29udGVudFV0aWxzUHJveHk6OnByb2Nlc3NEaWRDbG9zZSk6CisgICAgICAg
IChXZWJLaXQ6OldlYk5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3h5OjpyZWZXZWJDb250ZXh0U3Vw
cGxlbWVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYk5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3h5
OjpkZXJlZldlYkNvbnRleHRTdXBwbGVtZW50KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViTmF2
aWdhdG9yQ29udGVudFV0aWxzUHJveHkuaDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL1dl
Yk5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3h5Lm1lc3NhZ2VzLmluOiBBZGRlZC4KKyAgICAgICAg
KiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQ
cm9jZXNzUG9vbC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTmF2aWdhdG9yQ29udGVudFV0
aWxzQ2xpZW50LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYk5hdmlnYXRvckNvbnRl
bnRVdGlsc0NsaWVudDo6cmVnaXN0ZXJQcm90b2NvbEhhbmRsZXIpOgorICAgICAgICAoV2ViS2l0
Ojp0b0N1c3RvbUhhbmRsZXJzU3RhdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJOYXZpZ2F0b3JD
b250ZW50VXRpbHNDbGllbnQ6OmlzUHJvdG9jb2xIYW5kbGVyUmVnaXN0ZXJlZCk6CisgICAgICAg
IChXZWJLaXQ6OldlYk5hdmlnYXRvckNvbnRlbnRVdGlsc0NsaWVudDo6dW5yZWdpc3RlclByb3Rv
Y29sSGFuZGxlcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJOYXZp
Z2F0b3JDb250ZW50VXRpbHNDbGllbnQuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViTmF2aWdhdG9y
Q29udGVudFV0aWxzQ2xpZW50Ojppc1Byb3RvY29sSGFuZGxlclJlZ2lzdGVyZWQpOiBEZWxldGVk
LgorICAgICAgICAoV2ViS2l0OjpXZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNDbGllbnQ6OnVucmVn
aXN0ZXJQcm90b2NvbEhhbmRsZXIpOiBEZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6V2ViUGFnZSk6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKwogMjAxNS0wNS0wNyAgQ2Fy
bG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgVW5yZXZp
ZXdlZC4gVXBkYXRlIE9wdGlvbnNHVEsuY21ha2UgYW5kIE5FV1MgZm9yIDIuOS4xIHJlbGVhc2Uu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25hdmlnYXRvcmNvbnRlbnR1dGls
cy9OYXZpZ2F0b3JDb250ZW50VXRpbHNDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bmF2aWdhdG9yY29udGVudHV0aWxzL05hdmlnYXRvckNvbnRlbnRVdGlsc0NsaWVudC5oCmluZGV4
IDNhNDY0NDI0ZmNkODhkMjc5ODcwZTU4NGIyZmY3MWFlOTEyODQ1ODEuLmNkMDU3ZmEyMjYwMjc2
ZmE2Y2UzNTAzOWNmZWZjMWY1ZDcyMWM5MzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbmF2aWdhdG9yY29udGVudHV0aWxzL05hdmlnYXRvckNvbnRlbnRVdGlsc0NsaWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbmF2aWdhdG9yY29udGVudHV0aWxzL05hdmln
YXRvckNvbnRlbnRVdGlsc0NsaWVudC5oCkBAIC01Miw3ICs1Miw3IEBAIHB1YmxpYzoKICNlbmRp
ZgogfTsKIAotdm9pZCBwcm92aWRlTmF2aWdhdG9yQ29udGVudFV0aWxzVG8oUGFnZSosIHN0ZDo6
dW5pcXVlX3B0cjxOYXZpZ2F0b3JDb250ZW50VXRpbHNDbGllbnQ+KTsKK1dFQkNPUkVfRVhQT1JU
IHZvaWQgcHJvdmlkZU5hdmlnYXRvckNvbnRlbnRVdGlsc1RvKFBhZ2UqLCBzdGQ6OnVuaXF1ZV9w
dHI8TmF2aWdhdG9yQ29udGVudFV0aWxzQ2xpZW50Pik7CiAKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViS2l0Mi9DTWFrZUxpc3RzLnR4
dAppbmRleCA5MWNjMGRmYTI3OTM3NzZlNDM1YWFmZDJjZTc2OThmZTNmNWMwY2VkLi4yN2E5YzA4
ZDAwOWU4MzNkMzE2YjZjNWMyNDE4YTBhNDEzZGVkYWRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9DTWFrZUxpc3RzLnR4dApA
QCAtMzcwLDYgKzM3MCw4IEBAIHNldChXZWJLaXQyX1NPVVJDRVMKICAgICBVSVByb2Nlc3MvV2Vi
SW5zcGVjdG9yUHJveHkuY3BwCiAgICAgVUlQcm9jZXNzL1dlYktleVZhbHVlU3RvcmFnZU1hbmFn
ZXIuY3BwCiAgICAgVUlQcm9jZXNzL1dlYk5hdmlnYXRpb25TdGF0ZS5jcHAKKyAgICBVSVByb2Nl
c3MvV2ViTmF2aWdhdG9yQ29udGVudFV0aWxzUHJvdmlkZXIuY3BwCisgICAgVUlQcm9jZXNzL1dl
Yk5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3h5LmNwcAogICAgIFVJUHJvY2Vzcy9XZWJNZWRpYUNh
Y2hlTWFuYWdlclByb3h5LmNwcAogICAgIFVJUHJvY2Vzcy9XZWJPcGVuUGFuZWxSZXN1bHRMaXN0
ZW5lclByb3h5LmNwcAogICAgIFVJUHJvY2Vzcy9XZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5LmNw
cApAQCAtNDI4LDYgKzQzMCw3IEBAIHNldChXZWJLaXQyX1NPVVJDRVMKICAgICBVSVByb2Nlc3Mv
QVBJL0MvV0tOYXZpZ2F0aW9uRGF0YVJlZi5jcHAKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tOYXZp
Z2F0aW9uUmVmLmNwcAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS05hdmlnYXRpb25SZXNwb25zZVJl
Zi5jcHAKKyAgICBVSVByb2Nlc3MvQVBJL0MvV0tOYXZpZ2F0b3JDb250ZW50VXRpbHMuY3BwCiAg
ICAgVUlQcm9jZXNzL0FQSS9DL1dLTm90aWZpY2F0aW9uLmNwcAogICAgIFVJUHJvY2Vzcy9BUEkv
Qy9XS05vdGlmaWNhdGlvbk1hbmFnZXIuY3BwCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLTm90aWZp
Y2F0aW9uUGVybWlzc2lvblJlcXVlc3QuY3BwCkBAIC01OTgsNiArNjAxLDcgQEAgc2V0KFdlYktp
dDJfU09VUkNFUwogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJD
bGllbnQuY3BwCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNs
aWVudC5jcHAKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVu
dC5jcHAKKyAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYk5hdmlnYXRvckNvbnRlbnRV
dGlsc0NsaWVudC5jcHAKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNh
dGlvbkNsaWVudC5jcHAKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3Jt
U3RyYXRlZ2llcy5jcHAKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsdWdJbkNs
aWVudC5jcHAKQEAgLTY2MSw2ICs2NjUsNyBAQCBzZXQoV2ViS2l0Ml9NRVNTQUdFU19JTl9GSUxF
UwogICAgIFVJUHJvY2Vzcy9XZWJJY29uRGF0YWJhc2UubWVzc2FnZXMuaW4KICAgICBVSVByb2Nl
c3MvV2ViSW5zcGVjdG9yUHJveHkubWVzc2FnZXMuaW4KICAgICBVSVByb2Nlc3MvV2ViTWVkaWFD
YWNoZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgorICAgIFVJUHJvY2Vzcy9XZWJOYXZpZ2F0b3JD
b250ZW50VXRpbHNQcm94eS5tZXNzYWdlcy5pbgogICAgIFVJUHJvY2Vzcy9XZWJPcmlnaW5EYXRh
TWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCiAgICAgVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNz
YWdlcy5pbgogICAgIFVJUHJvY2Vzcy9XZWJQYXN0ZWJvYXJkUHJveHkubWVzc2FnZXMuaW4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvQVBJT2JqZWN0LmggYi9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvQVBJL0FQSU9iamVjdC5oCmluZGV4IGVhZWZmZjI2MjUyMzA4Yjk1YjA1
NzJjZGQyZjI3ZWYwMzZmMmMwZDMuLjYxNTBhNDBkNTI1NjI1NzJmNjZiZGE0MDdiZTZjNzk0MDgz
YzI4Y2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvQVBJT2JqZWN0LmgK
KysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9BUElPYmplY3QuaApAQCAtMTI0LDYgKzEy
NCw3IEBAIHB1YmxpYzoKICAgICAgICAgTmF2aWdhdGlvbkFjdGlvbiwKICAgICAgICAgTmF2aWdh
dGlvbkRhdGEsCiAgICAgICAgIE5hdmlnYXRpb25SZXNwb25zZSwKKyAgICAgICAgTmF2aWdhdG9y
Q29udGVudFV0aWxzLAogICAgICAgICBOb3RpZmljYXRpb24sCiAgICAgICAgIE5vdGlmaWNhdGlv
bk1hbmFnZXIsCiAgICAgICAgIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLQmFzZS5oIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL0FQSS9jL1dLQmFzZS5oCmluZGV4IDU5MjQ5ZmUxM2I3MGVkZWE2ZjYzNjc1NjMy
Yzg4MTczZThkMzMzMTkuLjhkZTEyNTU3OWZhNWVmODBlNDYyOWJkNTQ3NjA3YmE2M2MyMDA0OWIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0Jhc2UuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNlLmgKQEAgLTExNiw2ICsxMTYsNyBAQCB0
eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS05hdmlnYXRpb25BY3Rpb24qIFdLTmF2aWdhdGlv
bkFjdGlvblJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLTmF2aWdhdGlvbkRhdGEq
IFdLTmF2aWdhdGlvbkRhdGFSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS05hdmln
YXRpb24qIFdLTmF2aWdhdGlvblJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLTmF2
aWdhdGlvblJlc3BvbnNlKiBXS05hdmlnYXRpb25SZXNwb25zZVJlZjsKK3R5cGVkZWYgY29uc3Qg
c3RydWN0IE9wYXF1ZVdLTmF2aWdhdG9yQ29udGVudFV0aWxzKiBXS05hdmlnYXRvckNvbnRlbnRV
dGlsc1JlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLTm90aWZpY2F0aW9uKiBXS05v
dGlmaWNhdGlvblJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLTm90aWZpY2F0aW9u
TWFuYWdlciogV0tOb3RpZmljYXRpb25NYW5hZ2VyUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3Qg
T3BhcXVlV0tOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdCogV0tOb3RpZmljYXRpb25QZXJt
aXNzaW9uUmVxdWVzdFJlZjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQy9XS0FQSUNhc3QuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNh
c3QuaAppbmRleCA3NzQyMWVjMzI2MDA1ZWNkOGMxOTMxNjQxYjQ3NDU5YWUwYzY4NmZhLi41YTRm
NTc2NDQ1ODgwMzUxNTU1NGM4NTdlYTVlZTJlM2FkZjFkY2RlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oCkBAIC05NCw2ICs5NCw3IEBAIGNsYXNzIFdlYklj
b25EYXRhYmFzZTsKIGNsYXNzIFdlYkluc3BlY3RvclByb3h5OwogY2xhc3MgV2ViS2V5VmFsdWVT
dG9yYWdlTWFuYWdlcjsKIGNsYXNzIFdlYk1lZGlhQ2FjaGVNYW5hZ2VyUHJveHk7CitjbGFzcyBX
ZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm94eTsKIGNsYXNzIFdlYk5vdGlmaWNhdGlvbjsKIGNs
YXNzIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eTsKIGNsYXNzIFdlYk5vdGlmaWNhdGlvblBy
b3ZpZGVyOwpAQCAtMTQ1LDYgKzE0Niw3IEBAIFdLX0FERF9BUElfTUFQUElORyhXS0tleVZhbHVl
U3RvcmFnZU1hbmFnZXJSZWYsIFdlYktleVZhbHVlU3RvcmFnZU1hbmFnZXIpCiBXS19BRERfQVBJ
X01BUFBJTkcoV0tNZWRpYUNhY2hlTWFuYWdlclJlZiwgV2ViTWVkaWFDYWNoZU1hbmFnZXJQcm94
eSkKIFdLX0FERF9BUElfTUFQUElORyhXS05hdmlnYXRpb25BY3Rpb25SZWYsIEFQSTo6TmF2aWdh
dGlvbkFjdGlvbikKIFdLX0FERF9BUElfTUFQUElORyhXS05hdmlnYXRpb25EYXRhUmVmLCBBUEk6
Ok5hdmlnYXRpb25EYXRhKQorV0tfQUREX0FQSV9NQVBQSU5HKFdLTmF2aWdhdG9yQ29udGVudFV0
aWxzUmVmLCBXZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm94eSkKIFdLX0FERF9BUElfTUFQUElO
RyhXS05hdmlnYXRpb25SZWYsIEFQSTo6TmF2aWdhdGlvbikKIFdLX0FERF9BUElfTUFQUElORyhX
S05hdmlnYXRpb25SZXNwb25zZVJlZiwgQVBJOjpOYXZpZ2F0aW9uUmVzcG9uc2UpCiBXS19BRERf
QVBJX01BUFBJTkcoV0tOb3RpZmljYXRpb25NYW5hZ2VyUmVmLCBXZWJOb3RpZmljYXRpb25NYW5h
Z2VyUHJveHkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tO
YXZpZ2F0b3JDb250ZW50VXRpbHMuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
L1dLTmF2aWdhdG9yQ29udGVudFV0aWxzLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41MTdiNjgyNDliNjYxNmE1
MTIyMGYzZDFmNzgxYmVkNzQ5ODhlZTUyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9DL1dLTmF2aWdhdG9yQ29udGVudFV0aWxzLmNwcApAQCAtMCwwICsx
LDUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEludGVsIENvcnBvcmF0aW9uLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiV0tOYXZpZ2F0b3JDb250ZW50VXRpbHMuaCIKKworI2lmIEVOQUJMRShOQVZJR0FUT1JfQ09O
VEVOVF9VVElMUykKKyNpbmNsdWRlICJXS0FQSUNhc3QuaCIKKyNpbmNsdWRlICJXZWJOYXZpZ2F0
b3JDb250ZW50VXRpbHNQcm94eS5oIgorCit1c2luZyBuYW1lc3BhY2UgV2ViS2l0OworI2VuZGlm
IC8vIEVOQUJMRShOQVZJR0FUT1JfQ09OVEVOVF9VVElMUykKKworV0tUeXBlSUQgV0tOYXZpZ2F0
b3JDb250ZW50VXRpbHNHZXRUeXBlSUQoKQoreworI2lmIEVOQUJMRShOQVZJR0FUT1JfQ09OVEVO
VF9VVElMUykKKyAgICByZXR1cm4gdG9BUEkoV2ViTmF2aWdhdG9yQ29udGVudFV0aWxzUHJveHk6
OkFQSVR5cGUpOworI2Vsc2UKKyAgICByZXR1cm4gMDsKKyNlbmRpZgorfQorCit2b2lkIFdLTmF2
aWdhdG9yQ29udGVudFV0aWxzU2V0UHJvdmlkZXIoV0tOYXZpZ2F0b3JDb250ZW50VXRpbHNSZWYg
cmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJSZWYsIGNvbnN0IFdLTmF2aWdhdG9yQ29udGVudFV0aWxz
UHJvdmlkZXJCYXNlKiB3a1Byb3ZpZGVyKQoreworI2lmIEVOQUJMRShOQVZJR0FUT1JfQ09OVEVO
VF9VVElMUykKKyAgICB0b0ltcGwocmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJSZWYpLT5pbml0aWFs
aXplUHJvdmlkZXIod2tQcm92aWRlcik7CisjZW5kaWYKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS05hdmlnYXRvckNvbnRlbnRVdGlscy5oIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLTmF2aWdhdG9yQ29udGVudFV0aWxzLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZmViZDU3NTc3ZDE0NTI0NDE4ODlhYzFhODI5MTdlOTg0OTFlMzJiMwotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS05hdmlnYXRvckNvbnRl
bnRVdGlscy5oCkBAIC0wLDAgKzEsNzAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgSW50
ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYg
V0tOYXZpZ2F0b3JDb250ZW50VXRpbHNfaAorI2RlZmluZSBXS05hdmlnYXRvckNvbnRlbnRVdGls
c19oCisKKyNpbmNsdWRlIDxXZWJLaXQvV0tCYXNlLmg+CisKKyNpZmRlZiBfX2NwbHVzcGx1cwor
ZXh0ZXJuICJDIiB7CisjZW5kaWYKKworZW51bSB7CisgICAga1dLQ3VzdG9tSGFuZGxlcnNOZXcs
CisgICAga1dLQ3VzdG9tSGFuZGxlcnNSZWdpc3RlcmVkLAorICAgIGtXS0N1c3RvbUhhbmRsZXJz
RGVjbGluZWQKK307Cit0eXBlZGVmIHVpbnQzMl90IFdLQ3VzdG9tSGFuZGxlcnNTdGF0ZTsKKwor
dHlwZWRlZiB2b2lkICgqV0tOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm92aWRlclJlZ2lzdGVyUHJv
dG9jb2xDYWxsYmFjaykoV0tOYXZpZ2F0b3JDb250ZW50VXRpbHNSZWYgcmVnaXN0ZXJQcm90b2Nv
bEhhbmRsZXJSZWYsIFdLU3RyaW5nUmVmIHNjaGVtZSwgV0tTdHJpbmdSZWYgYmFzZVVSTCwgV0tT
dHJpbmdSZWYgdXJsLCBXS1N0cmluZ1JlZiB0aXRsZSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7
Cit0eXBlZGVmIFdLQ3VzdG9tSGFuZGxlcnNTdGF0ZSAoKldLTmF2aWdhdG9yQ29udGVudFV0aWxz
UHJvdmlkZXJJc1Byb3RvY29sUmVnaXN0ZXJlZENhbGxiYWNrKShXS05hdmlnYXRvckNvbnRlbnRV
dGlsc1JlZiByZWdpc3RlclByb3RvY29sSGFuZGxlclJlZiwgV0tTdHJpbmdSZWYgc2NoZW1lLCBX
S1N0cmluZ1JlZiBiYXNlVVJMLCBXS1N0cmluZ1JlZiB1cmwsIGNvbnN0IHZvaWQqIGNsaWVudElu
Zm8pOwordHlwZWRlZiB2b2lkICgqV0tOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm92aWRlclVucmVn
aXN0ZXJQcm90b2NvbENhbGxiYWNrKShXS05hdmlnYXRvckNvbnRlbnRVdGlsc1JlZiByZWdpc3Rl
clByb3RvY29sSGFuZGxlclJlZiwgV0tTdHJpbmdSZWYgc2NoZW1lLCBXS1N0cmluZ1JlZiBiYXNl
VVJMLCBXS1N0cmluZ1JlZiB1cmwsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOworCit0eXBlZGVm
IHN0cnVjdCBXS05hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3ZpZGVyQmFzZSB7CisgICAgaW50ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdmVyc2lvbjsKKyAgICBjb25zdCB2b2lkICogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGllbnRJbmZvOworfSBXS05hdmlnYXRv
ckNvbnRlbnRVdGlsc1Byb3ZpZGVyQmFzZTsKKwordHlwZWRlZiBzdHJ1Y3QgV0tOYXZpZ2F0b3JD
b250ZW50VXRpbHNQcm92aWRlclYwIHsKKyAgICBXS05hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3Zp
ZGVyQmFzZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFzZTsK
KworICAgIC8vIFZlcnNpb24gMC4KKyAgICBXS05hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3ZpZGVy
UmVnaXN0ZXJQcm90b2NvbENhbGxiYWNrICAgICAgICAgICAgICByZWdpc3RlclByb3RvY29sSGFu
ZGxlcjsKKyAgICBXS05hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3ZpZGVySXNQcm90b2NvbFJlZ2lz
dGVyZWRDYWxsYmFjayAgICAgICAgICBpc1Byb3RvY29sSGFuZGxlclJlZ2lzdGVyZWQ7CisgICAg
V0tOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm92aWRlclVucmVnaXN0ZXJQcm90b2NvbENhbGxiYWNr
ICAgICAgICAgICAgdW5yZWdpc3RlclByb3RvY29sSGFuZGxlcjsKK30gV0tOYXZpZ2F0b3JDb250
ZW50VXRpbHNQcm92aWRlclYwOworCitlbnVtIHsga1dLTmF2aWdhdG9yQ29udGVudFV0aWxzUHJv
dmlkZXJDdXJyZW50VmVyc2lvbiA9IDAgfTsKKworV0tfRVhQT1JUIFdLVHlwZUlEIFdLTmF2aWdh
dG9yQ29udGVudFV0aWxzR2V0VHlwZUlEKCk7CisKK1dLX0VYUE9SVCB2b2lkIFdLTmF2aWdhdG9y
Q29udGVudFV0aWxzU2V0UHJvdmlkZXIoV0tOYXZpZ2F0b3JDb250ZW50VXRpbHNSZWYgcmVnaXN0
ZXJQcm90b2NvbEhhbmRsZXJSZWYsIGNvbnN0IFdLTmF2aWdhdG9yQ29udGVudFV0aWxzUHJvdmlk
ZXJCYXNlKiBwcm92aWRlcik7CisKKyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmCisKKyNl
bmRpZiAvLyBXS05hdmlnYXRvckNvbnRlbnRVdGlsc19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViTmF2aWdhdG9yQ29udGVudFV0aWxzUHJvdmlkZXIuY3BwIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3ZpZGVyLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi45YjU5YjU5MmNkZWY0YTExZjg1MjcxMWIwYjA4MTdiZjhmNjNlZTQ1Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk5hdmlnYXRvckNv
bnRlbnRVdGlsc1Byb3ZpZGVyLmNwcApAQCAtMCwwICsxLDY0IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE1IEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViTmF2aWdhdG9yQ29udGVudFV0
aWxzUHJvdmlkZXIuaCIKKworI2lmIEVOQUJMRShOQVZJR0FUT1JfQ09OVEVOVF9VVElMUykKKwor
I2luY2x1ZGUgIldLQVBJQ2FzdC5oIgorI2luY2x1ZGUgIldlYk5hdmlnYXRvckNvbnRlbnRVdGls
c1Byb3h5LmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCit2b2lkIFdlYk5hdmlnYXRvckNvbnRl
bnRVdGlsc1Byb3ZpZGVyOjpyZWdpc3RlclByb3RvY29sSGFuZGxlcihXZWJOYXZpZ2F0b3JDb250
ZW50VXRpbHNQcm94eSogcHJveHksIGNvbnN0IFN0cmluZyYgc2NoZW1lLCBjb25zdCBTdHJpbmcm
IGJhc2VVUkwsIGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBTdHJpbmcmIHRpdGxlKQoreworICAg
IGlmICghbV9jbGllbnQucmVnaXN0ZXJQcm90b2NvbEhhbmRsZXIpCisgICAgICAgIHJldHVybjsK
KworICAgIG1fY2xpZW50LnJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyKHRvQVBJKHByb3h5KSwgdG9B
UEkoc2NoZW1lLmltcGwoKSksIHRvQVBJKGJhc2VVUkwuaW1wbCgpKSwgdG9BUEkodXJsLmltcGwo
KSksIHRvQVBJKHRpdGxlLmltcGwoKSksIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7Cit9CisK
KyNpZiBFTkFCTEUoQ1VTVE9NX1NDSEVNRV9IQU5ETEVSKQordm9pZCBXZWJOYXZpZ2F0b3JDb250
ZW50VXRpbHNQcm92aWRlcjo6aXNQcm90b2NvbEhhbmRsZXJSZWdpc3RlcmVkKFdlYk5hdmlnYXRv
ckNvbnRlbnRVdGlsc1Byb3h5KiBwcm94eSwgY29uc3QgU3RyaW5nJiBzY2hlbWUsIGNvbnN0IFN0
cmluZyYgYmFzZVVSTCwgY29uc3QgU3RyaW5nJiB1cmwsIHVpbnQzMl90JiByZXN1bHQpCit7Cisg
ICAgaWYgKCFtX2NsaWVudC5pc1Byb3RvY29sSGFuZGxlclJlZ2lzdGVyZWQpCisgICAgICAgIHJl
dHVybjsKKworICAgIHJlc3VsdCA9IG1fY2xpZW50LmlzUHJvdG9jb2xIYW5kbGVyUmVnaXN0ZXJl
ZCh0b0FQSShwcm94eSksIHRvQVBJKHNjaGVtZS5pbXBsKCkpLCB0b0FQSShiYXNlVVJMLmltcGwo
KSksIHRvQVBJKHVybC5pbXBsKCkpLCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOworfQorCit2
b2lkIFdlYk5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3ZpZGVyOjp1bnJlZ2lzdGVyUHJvdG9jb2xI
YW5kbGVyKFdlYk5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3h5KiBwcm94eSwgY29uc3QgU3RyaW5n
JiBzY2hlbWUsIGNvbnN0IFN0cmluZyYgYmFzZVVSTCwgY29uc3QgU3RyaW5nJiB1cmwpCit7Cisg
ICAgaWYgKCFtX2NsaWVudC51bnJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyKQorICAgICAgICByZXR1
cm47CisKKyAgICBtX2NsaWVudC51bnJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyKHRvQVBJKHByb3h5
KSwgdG9BUEkoc2NoZW1lLmltcGwoKSksIHRvQVBJKGJhc2VVUkwuaW1wbCgpKSwgdG9BUEkodXJs
LmltcGwoKSksIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7Cit9CisjZW5kaWYgLy8gRU5BQkxF
KENVU1RPTV9TQ0hFTUVfSEFORExFUikKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRp
ZiAvLyBFTkFCTEUoTkFWSUdBVE9SX0NPTlRFTlRfVVRJTFMpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViTmF2aWdhdG9yQ29udGVudFV0aWxzUHJvdmlkZXIuaCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm92aWRlci5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjZjNWI2MzFlNGZjNGQzOTRjMTBhMjBjMDY0ZGMxOGE3YWNiM2E1NGEKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTmF2aWdhdG9yQ29u
dGVudFV0aWxzUHJvdmlkZXIuaApAQCAtMCwwICsxLDU5IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDE1IEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaWZuZGVmIFdlYk5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3ZpZGVyX2gKKyNkZWZpbmUgV2Vi
TmF2aWdhdG9yQ29udGVudFV0aWxzUHJvdmlkZXJfaAorCisjaWYgRU5BQkxFKE5BVklHQVRPUl9D
T05URU5UX1VUSUxTKQorCisjaW5jbHVkZSAiQVBJQ2xpZW50LmgiCisjaW5jbHVkZSAiV0tOYXZp
Z2F0b3JDb250ZW50VXRpbHMuaCIKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorI2luY2x1ZGUg
PHd0Zi9SZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBBUEkgewordGVtcGxhdGU8PiBzdHJ1Y3Qg
Q2xpZW50VHJhaXRzPFdLTmF2aWdhdG9yQ29udGVudFV0aWxzUHJvdmlkZXJCYXNlPiB7CisgICAg
dHlwZWRlZiBzdGQ6OnR1cGxlPFdLTmF2aWdhdG9yQ29udGVudFV0aWxzUHJvdmlkZXJWMD4gVmVy
c2lvbnM7Cit9OworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViTmF2aWdhdG9y
Q29udGVudFV0aWxzUHJveHk7CisKK2NsYXNzIFdlYk5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3Zp
ZGVyIDogcHVibGljIEFQSTo6Q2xpZW50PFdLTmF2aWdhdG9yQ29udGVudFV0aWxzUHJvdmlkZXJC
YXNlPiB7CitwdWJsaWM6CisgICAgdm9pZCByZWdpc3RlclByb3RvY29sSGFuZGxlcihXZWJOYXZp
Z2F0b3JDb250ZW50VXRpbHNQcm94eSosIGNvbnN0IFN0cmluZyYgc2NoZW1lLCBjb25zdCBTdHJp
bmcmIGJhc2VVUkwsIGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBTdHJpbmcmIHRpdGxlKTsKKwor
I2lmIEVOQUJMRShDVVNUT01fU0NIRU1FX0hBTkRMRVIpCisgICAgdm9pZCBpc1Byb3RvY29sSGFu
ZGxlclJlZ2lzdGVyZWQoV2ViTmF2aWdhdG9yQ29udGVudFV0aWxzUHJveHkqLCBjb25zdCBTdHJp
bmcmIHNjaGVtZSwgY29uc3QgU3RyaW5nJiBiYXNlVVJMLCBjb25zdCBTdHJpbmcmIHVybCwgdWlu
dDMyX3QmIHJlc3VsdCk7CisgICAgdm9pZCB1bnJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyKFdlYk5h
dmlnYXRvckNvbnRlbnRVdGlsc1Byb3h5KiwgY29uc3QgU3RyaW5nJiBzY2hlbWUsIGNvbnN0IFN0
cmluZyYgYmFzZVVSTCwgY29uc3QgU3RyaW5nJiB1cmwpOworI2VuZGlmIC8vIEVOQUJMRShDVVNU
T01fU0NIRU1FX0hBTkRMRVIpCit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlm
IC8vIEVOQUJMRShOQVZJR0FUT1JfQ09OVEVOVF9VVElMUykKKyNlbmRpZiAvLyBXZWJOYXZpZ2F0
b3JDb250ZW50VXRpbHNQcm92aWRlcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViTmF2aWdhdG9yQ29udGVudFV0aWxzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYk5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3h5LmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45
YThiN2VjZTk3N2E1YzQzNjA1NWZjYTFiMjlkODliMzc5ZTkyNDkzCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3h5
LmNwcApAQCAtMCwwICsxLDk5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEludGVsIENv
cnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1IFNh
bXN1bmcgRWxlY3Ryb25pY3MuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm94eS5o
IgorCisjaWYgRU5BQkxFKE5BVklHQVRPUl9DT05URU5UX1VUSUxTKQorCisjaW5jbHVkZSAiV2Vi
TmF2aWdhdG9yQ29udGVudFV0aWxzUHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYlByb2Nl
c3NQb29sLmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjb25zdCBjaGFyKiBXZWJOYXZpZ2F0
b3JDb250ZW50VXRpbHNQcm94eTo6c3VwcGxlbWVudE5hbWUoKQoreworICAgIHJldHVybiAiV2Vi
TmF2aWdhdG9yQ29udGVudFV0aWxzUHJveHkiOworfQorCitQYXNzUmVmUHRyPFdlYk5hdmlnYXRv
ckNvbnRlbnRVdGlsc1Byb3h5PiBXZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm94eTo6Y3JlYXRl
KFdlYlByb2Nlc3NQb29sKiBwcm9jZXNzUG9vbCkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3
IFdlYk5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3h5KHByb2Nlc3NQb29sKSk7Cit9CisKK1dlYk5h
dmlnYXRvckNvbnRlbnRVdGlsc1Byb3h5OjpXZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm94eShX
ZWJQcm9jZXNzUG9vbCogcHJvY2Vzc1Bvb2wpCisgICAgOiBXZWJDb250ZXh0U3VwcGxlbWVudChw
cm9jZXNzUG9vbCkKK3sKKyAgICAvLyBXZWJDb250ZXh0U3VwcGxlbWVudDo6Y29udGV4dCgpLT5h
ZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OldlYk5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3h5
OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIHRoaXMpOworfQorCitXZWJOYXZpZ2F0b3JDb250ZW50
VXRpbHNQcm94eTo6fldlYk5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3h5KCkKK3sKK30KKwordm9p
ZCBXZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm94eTo6aW5pdGlhbGl6ZVByb3ZpZGVyKGNvbnN0
IFdLTmF2aWdhdG9yQ29udGVudFV0aWxzUHJvdmlkZXJCYXNlKiBwcm92aWRlcikKK3sKKyAgICBt
X3Byb3ZpZGVyLmluaXRpYWxpemUocHJvdmlkZXIpOworfQorCit2b2lkIFdlYk5hdmlnYXRvckNv
bnRlbnRVdGlsc1Byb3h5OjpyZWdpc3RlclByb3RvY29sSGFuZGxlcihjb25zdCBTdHJpbmcmIHNj
aGVtZSwgY29uc3QgU3RyaW5nJiBiYXNlVVJMLCBjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgU3Ry
aW5nJiB0aXRsZSkKK3sKKyAgICBtX3Byb3ZpZGVyLnJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyKHRo
aXMsIHNjaGVtZSwgYmFzZVVSTCwgdXJsLCB0aXRsZSk7Cit9CisKKyNpZiBFTkFCTEUoQ1VTVE9N
X1NDSEVNRV9IQU5ETEVSKQordm9pZCBXZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm94eTo6aXNQ
cm90b2NvbEhhbmRsZXJSZWdpc3RlcmVkKGNvbnN0IFN0cmluZyYgc2NoZW1lLCBjb25zdCBTdHJp
bmcmIGJhc2VVUkwsIGNvbnN0IFN0cmluZyYgdXJsLCB1aW50MzJfdCYgcmVzdWx0KQoreworICAg
IG1fcHJvdmlkZXIuaXNQcm90b2NvbEhhbmRsZXJSZWdpc3RlcmVkKHRoaXMsIHNjaGVtZSwgYmFz
ZVVSTCwgdXJsLCByZXN1bHQpOworfQorCit2b2lkIFdlYk5hdmlnYXRvckNvbnRlbnRVdGlsc1By
b3h5Ojp1bnJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyKGNvbnN0IFN0cmluZyYgc2NoZW1lLCBjb25z
dCBTdHJpbmcmIGJhc2VVUkwsIGNvbnN0IFN0cmluZyYgdXJsKQoreworICAgIG1fcHJvdmlkZXIu
dW5yZWdpc3RlclByb3RvY29sSGFuZGxlcih0aGlzLCBzY2hlbWUsIGJhc2VVUkwsIHVybCk7Cit9
CisjZW5kaWYgLy8gRU5BQkxFKENVU1RPTV9TQ0hFTUVfSEFORExFUikKKworLy8gV2ViQ29udGV4
dFN1cHBsZW1lbnQKK3ZvaWQgV2ViTmF2aWdhdG9yQ29udGVudFV0aWxzUHJveHk6OnByb2Nlc3NQ
b29sRGVzdHJveWVkKCkKK3sKK30KKwordm9pZCBXZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm94
eTo6cHJvY2Vzc0RpZENsb3NlKFdlYlByb2Nlc3NQcm94eSopCit7Cit9CisKK3ZvaWQgV2ViTmF2
aWdhdG9yQ29udGVudFV0aWxzUHJveHk6OnJlZldlYkNvbnRleHRTdXBwbGVtZW50KCkKK3sKKyAg
ICBBUEk6Ok9iamVjdDo6cmVmKCk7Cit9CisKK3ZvaWQgV2ViTmF2aWdhdG9yQ29udGVudFV0aWxz
UHJveHk6OmRlcmVmV2ViQ29udGV4dFN1cHBsZW1lbnQoKQoreworICAgIEFQSTo6T2JqZWN0Ojpk
ZXJlZigpOworfQorfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoTkFW
SUdBVE9SX0NPTlRFTlRfVVRJTFMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViTmF2aWdhdG9yQ29udGVudFV0aWxzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm94eS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFiMTQ2OTFj
YTQ4Zjg5ZjNiMTRlMGExOTg4Mzk4ODQyNjM0YWFjN2QKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTmF2aWdhdG9yQ29udGVudFV0aWxzUHJveHkuaApAQCAt
MCwwICsxLDgxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEludGVsIENvcnBvcmF0aW9u
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1IFNhbXN1bmcgRWxl
Y3Ryb25pY3MuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV2ViTmF2
aWdhdG9yQ29udGVudFV0aWxzUHJveHlfaAorI2RlZmluZSBXZWJOYXZpZ2F0b3JDb250ZW50VXRp
bHNQcm94eV9oCisKKyNpZiBFTkFCTEUoTkFWSUdBVE9SX0NPTlRFTlRfVVRJTFMpCisKKyNpbmNs
dWRlICJBUElPYmplY3QuaCIKKyNpbmNsdWRlICJDb25uZWN0aW9uLmgiCisjaW5jbHVkZSAiTWVz
c2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSAiV2ViQ29udGV4dFN1cHBsZW1lbnQuaCIKKyNpbmNs
dWRlICJXZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm92aWRlci5oIgorCituYW1lc3BhY2UgV2Vi
S2l0IHsKKworY2xhc3MgV2ViUHJvY2Vzc1Bvb2w7CitjbGFzcyBXZWJQcm9jZXNzUHJveHk7CisK
K2NsYXNzIFdlYk5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3h5IDogcHVibGljIEFQSTo6T2JqZWN0
SW1wbDxBUEk6Ok9iamVjdDo6VHlwZTo6TmF2aWdhdG9yQ29udGVudFV0aWxzPiwgcHVibGljIFdl
YkNvbnRleHRTdXBwbGVtZW50LCBwdWJsaWMgSVBDOjpNZXNzYWdlUmVjZWl2ZXIgeworcHVibGlj
OgorICAgIHN0YXRpYyBjb25zdCBjaGFyKiBzdXBwbGVtZW50TmFtZSgpOworCisgICAgc3RhdGlj
IFBhc3NSZWZQdHI8V2ViTmF2aWdhdG9yQ29udGVudFV0aWxzUHJveHk+IGNyZWF0ZShXZWJQcm9j
ZXNzUG9vbCopOworICAgIHZpcnR1YWwgfldlYk5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3h5KCk7
CisKKyAgICB2b2lkIGluaXRpYWxpemVQcm92aWRlcihjb25zdCBXS05hdmlnYXRvckNvbnRlbnRV
dGlsc1Byb3ZpZGVyQmFzZSopOworCisgICAgdXNpbmcgQVBJOjpPYmplY3Q6OnJlZjsKKyAgICB1
c2luZyBBUEk6Ok9iamVjdDo6ZGVyZWY7CisKK3ByaXZhdGU6CisgICAgZXhwbGljaXQgV2ViTmF2
aWdhdG9yQ29udGVudFV0aWxzUHJveHkoV2ViUHJvY2Vzc1Bvb2wqKTsKKworICAgIC8vIFdlYkNv
bnRleHRTdXBwbGVtZW50CisgICAgdmlydHVhbCB2b2lkIHByb2Nlc3NQb29sRGVzdHJveWVkKCkg
b3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHByb2Nlc3NEaWRDbG9zZShXZWJQcm9jZXNzUHJv
eHkqKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVmV2ViQ29udGV4dFN1cHBsZW1lbnQo
KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZGVyZWZXZWJDb250ZXh0U3VwcGxlbWVudCgp
IG92ZXJyaWRlOworCisgICAgLy8gUEM6Ok1lc3NhZ2VSZWNlaXZlcgorICAgIHZpcnR1YWwgdm9p
ZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6Ok1lc3NhZ2VEZWNvZGVy
Jikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6
OkNvbm5lY3Rpb24mLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6
TWVzc2FnZUVuY29kZXI+Jikgb3ZlcnJpZGU7CisKKyAgICB2b2lkIHJlZ2lzdGVyUHJvdG9jb2xI
YW5kbGVyKGNvbnN0IFN0cmluZyYgc2NoZW1lLCBjb25zdCBTdHJpbmcmIGJhc2VVUkwsIGNvbnN0
IFN0cmluZyYgdXJsLCBjb25zdCBTdHJpbmcmIHRpdGxlKTsKKyNpZiBFTkFCTEUoQ1VTVE9NX1ND
SEVNRV9IQU5ETEVSKQorICAgIHZvaWQgaXNQcm90b2NvbEhhbmRsZXJSZWdpc3RlcmVkKGNvbnN0
IFN0cmluZyYgc2NoZW1lLCBjb25zdCBTdHJpbmcmIGJhc2VVUkwsIGNvbnN0IFN0cmluZyYgdXJs
LCB1aW50MzJfdCYgcmVzdWx0KTsKKyAgICB2b2lkIHVucmVnaXN0ZXJQcm90b2NvbEhhbmRsZXIo
Y29uc3QgU3RyaW5nJiBzY2hlbWUsIGNvbnN0IFN0cmluZyYgYmFzZVVSTCwgY29uc3QgU3RyaW5n
JiB1cmwpOworI2VuZGlmIC8vIEVOQUJMRShDVVNUT01fU0NIRU1FX0hBTkRMRVIpCisKKyAgICBX
ZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm92aWRlciBtX3Byb3ZpZGVyOworfTsKKworfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoTkFWSUdBVE9SX0NPTlRFTlRfVVRJ
TFMpCisKKyNlbmRpZiAvLyBXZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm94eV9oCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTmF2aWdhdG9yQ29udGVudFV0aWxzUHJv
eHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTmF2aWdhdG9yQ29u
dGVudFV0aWxzUHJveHkubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTgwMzM3MmY4NjE4MmIwZmI3
N2YwYzEyM2UyM2ZkZDY1NGQxNmQ2NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm94eS5tZXNzYWdlcy5pbgpAQCAt
MCwwICsxLDMzIEBACisjIENvcHlyaWdodCAoQykgMjAxNSBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0
OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorIyBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisjIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisjIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwKKyMgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyMgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyMg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwKKyMgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKworI2lmIEVOQUJMRShOQVZJR0FUT1JfQ09OVEVOVF9VVElMUykKKworbWVzc2FnZXMgLT4g
V2ViTmF2aWdhdG9yQ29udGVudFV0aWxzUHJveHkgeworICAgIFJlZ2lzdGVyUHJvdG9jb2xIYW5k
bGVyKFN0cmluZyBzY2hlbWUsIFN0cmluZyBiYXNlVVJMLCBTdHJpbmcgdXJsLCBTdHJpbmcgdGl0
bGUpCisjaWYgRU5BQkxFKENVU1RPTV9TQ0hFTUVfSEFORExFUikKKyAgICBJc1Byb3RvY29sSGFu
ZGxlclJlZ2lzdGVyZWQoU3RyaW5nIHNjaGVtZSwgU3RyaW5nIGJhc2VVUkwsIFN0cmluZyB1cmwp
IC0+ICh1aW50MzJfdCByZXN1bHQpCisgICAgVW5yZWdpc3RlclByb3RvY29sSGFuZGxlcihTdHJp
bmcgc2NoZW1lLCBTdHJpbmcgYmFzZVVSTCwgU3RyaW5nIHVybCkKKyNlbmRpZiAvLyBFTkFCTEUo
Q1VTVE9NX1NDSEVNRV9IQU5ETEVSKQorfQorCisjZW5kaWYgLy8gRU5BQkxFKE5BVklHQVRPUl9D
T05URU5UX1VUSUxTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQb29sLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5j
cHAKaW5kZXggOGYxNDA5NDY0MzMwZDE4YTU4NTdmMWQwMGEwYjhjMGEwYTFmN2Q4NC4uMWE1OTk3
N2ZmMzFlMzIxMjQyMTViZjZkMzc5MTQ4MDI3YjQ3NDgyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCkBAIC04OCw2ICs4OCwxMCBAQAogI2luY2x1ZGUg
Ik5ldHdvcmtQcm9jZXNzUHJveHkuaCIKICNlbmRpZgogCisjaWYgRU5BQkxFKE5BVklHQVRPUl9D
T05URU5UX1VUSUxTKQorI2luY2x1ZGUgIldlYk5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3h5Lmgi
CisjZW5kaWYKKwogI2lmIEVOQUJMRShTRVJWSUNFX0NPTlRST0xTKQogI2luY2x1ZGUgIlNlcnZp
Y2VzQ29udHJvbGxlci5oIgogI2VuZGlmCkBAIC0xOTksNiArMjAzLDkgQEAgV2ViUHJvY2Vzc1Bv
b2w6OldlYlByb2Nlc3NQb29sKEFQSTo6UHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uJiBjb25maWd1
cmF0aW9uKQogICAgIGFkZFN1cHBsZW1lbnQ8V2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlcj4oKTsK
ICAgICBhZGRTdXBwbGVtZW50PFdlYk1lZGlhQ2FjaGVNYW5hZ2VyUHJveHk+KCk7CiAgICAgYWRk
U3VwcGxlbWVudDxXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHk+KCk7CisjaWYgRU5BQkxFKE5B
VklHQVRPUl9DT05URU5UX1VUSUxTKQorICAgIGFkZFN1cHBsZW1lbnQ8V2ViTmF2aWdhdG9yQ29u
dGVudFV0aWxzUHJveHk+KCk7CisjZW5kaWYKICAgICBhZGRTdXBwbGVtZW50PFdlYlJlc291cmNl
Q2FjaGVNYW5hZ2VyUHJveHk+KCk7CiAgICAgYWRkU3VwcGxlbWVudDxXZWJEYXRhYmFzZU1hbmFn
ZXJQcm94eT4oKTsKICNpZiBVU0UoU09VUCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQb29sLmgKaW5kZXggYzg4YmM2YzA0YzFlNGQwNDA5YWU4ODY3MTUxNTk0YjcyOWViNGE4
OC4uZDk3MWE3YTliYTYwMTEwMGRkZjFkYmQ4NmRmMDkyZDAyZDNhYTE5YSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKQEAgLTg3LDYgKzg3LDEwIEBAIHN0cnVj
dCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOwogICAgIAogdHlwZWRlZiBHZW5lcmljQ2Fs
bGJhY2s8QVBJOjpEaWN0aW9uYXJ5Kj4gRGljdGlvbmFyeUNhbGxiYWNrOwogCisjaWYgRU5BQkxF
KE5BVklHQVRPUl9DT05URU5UX1VUSUxTKQorY2xhc3MgV2ViTmF2aWdhdG9yQ29udGVudFV0aWxz
UHJveHk7CisjZW5kaWYKKwogI2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCiBzdHJ1Y3QgTmV0
d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKaW5kZXggZmIwZmI0OGE5OWZkNDQ1ZWNlNGE2
YWQ5NjhkY2Q0YzAyMDIzMzAyNS4uNzBiMDUzNzZjMjhmOTRmZGMxZDU5N2VkYzNjMThmYjljN2Vm
MzFhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94
eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAK
QEAgLTQxLDYgKzQxLDcgQEAKICNpbmNsdWRlICJXZWJJY29uRGF0YWJhc2UuaCIKICNpbmNsdWRl
ICJXZWJJbnNwZWN0b3JQcm94eS5oIgogI2luY2x1ZGUgIldlYk5hdmlnYXRpb25EYXRhU3RvcmUu
aCIKKyNpbmNsdWRlICJXZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm94eS5oIgogI2luY2x1ZGUg
IldlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5oIgogI2luY2x1ZGUgIldlYlBhZ2VHcm91cC5o
IgogI2luY2x1ZGUgIldlYlBhZ2VQcm94eS5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNDbGllbnQu
Y3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJOYXZpZ2F0
b3JDb250ZW50VXRpbHNDbGllbnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE4ODdkOGE0MjZkYWYwMmNmNjcy
Nzk2MGU3MzkwOTAzYzc0ZWNlYTcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYk5hdmlnYXRvckNvbnRlbnRVdGlsc0NsaWVudC5j
cHAKQEAgLTAsMCArMSw3NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBJbnRlbCBDb3Jw
b3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNSBTYW1z
dW5nIEVsZWN0cm9uaWNzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViTmF2aWdhdG9yQ29udGVudFV0aWxzQ2xpZW50Lmgi
CisKKyNpZiBFTkFCTEUoTkFWSUdBVE9SX0NPTlRFTlRfVVRJTFMpCisKKyNpbmNsdWRlICJXZWJO
YXZpZ2F0b3JDb250ZW50VXRpbHNQcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vz
cy5oIgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKK3VzaW5nIG5hbWVzcGFjZSBNZXNzYWdl
czo6V2ViTmF2aWdhdG9yQ29udGVudFV0aWxzUHJveHk7CisKK25hbWVzcGFjZSBXZWJLaXQgewor
Cit2b2lkIFdlYk5hdmlnYXRvckNvbnRlbnRVdGlsc0NsaWVudDo6cmVnaXN0ZXJQcm90b2NvbEhh
bmRsZXIoY29uc3QgU3RyaW5nJiBzY2hlbWUsIGNvbnN0IFVSTCYgYmFzZVVSTCwgY29uc3QgVVJM
JiB1cmwsIGNvbnN0IFN0cmluZyYgdGl0bGUpCisKK3sKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0
b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKFJlZ2lzdGVyUHJvdG9jb2xIYW5k
bGVyKHNjaGVtZSwgYmFzZVVSTCwgdXJsLCB0aXRsZSksIDApOworfQorCisjaWYgRU5BQkxFKENV
U1RPTV9TQ0hFTUVfSEFORExFUikKK3N0YXRpYyBpbmxpbmUgTmF2aWdhdG9yQ29udGVudFV0aWxz
Q2xpZW50OjpDdXN0b21IYW5kbGVyc1N0YXRlIHRvQ3VzdG9tSGFuZGxlcnNTdGF0ZShjb25zdCB1
aW50MzJfdCBzdGF0ZSkKK3sKKyAgICBzd2l0Y2ggKHN0YXRlKSB7CisgICAgY2FzZSBOYXZpZ2F0
b3JDb250ZW50VXRpbHNDbGllbnQ6OkN1c3RvbUhhbmRsZXJzTmV3OgorICAgIGNhc2UgTmF2aWdh
dG9yQ29udGVudFV0aWxzQ2xpZW50OjpDdXN0b21IYW5kbGVyc1JlZ2lzdGVyZWQ6CisgICAgY2Fz
ZSBOYXZpZ2F0b3JDb250ZW50VXRpbHNDbGllbnQ6OkN1c3RvbUhhbmRsZXJzRGVjbGluZWQ6Cisg
ICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxOYXZpZ2F0b3JDb250ZW50VXRpbHNDbGllbnQ6OkN1
c3RvbUhhbmRsZXJzU3RhdGU+KHN0YXRlKTsKKyAgICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuIE5hdmlnYXRvckNvbnRlbnRVdGlsc0NsaWVu
dDo6Q3VzdG9tSGFuZGxlcnNEZWNsaW5lZDsKKyAgICB9Cit9CisKK05hdmlnYXRvckNvbnRlbnRV
dGlsc0NsaWVudDo6Q3VzdG9tSGFuZGxlcnNTdGF0ZSBXZWJOYXZpZ2F0b3JDb250ZW50VXRpbHND
bGllbnQ6OmlzUHJvdG9jb2xIYW5kbGVyUmVnaXN0ZXJlZChjb25zdCBTdHJpbmcmIHNjaGVtZSwg
Y29uc3QgVVJMJiBiYXNlVVJMLCBjb25zdCBVUkwmIHVybCkKK3sKKyAgICB1aW50MzJfdCByZXN1
bHQgPSBzdGF0aWNfY2FzdDx1aW50MzJfdD4oTmF2aWdhdG9yQ29udGVudFV0aWxzQ2xpZW50OjpD
dXN0b21IYW5kbGVyc05ldyk7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJv
Y2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZFN5bmMoSXNQcm90b2NvbEhhbmRsZXJSZWdpc3RlcmVkKHNj
aGVtZSwgYmFzZVVSTCwgdXJsKSwgSXNQcm90b2NvbEhhbmRsZXJSZWdpc3RlcmVkOjpSZXBseShy
ZXN1bHQpLCAwKTsKKyAgICByZXR1cm4gdG9DdXN0b21IYW5kbGVyc1N0YXRlKHJlc3VsdCk7Cit9
CisKK3ZvaWQgV2ViTmF2aWdhdG9yQ29udGVudFV0aWxzQ2xpZW50Ojp1bnJlZ2lzdGVyUHJvdG9j
b2xIYW5kbGVyKGNvbnN0IFN0cmluZyYgc2NoZW1lLCBjb25zdCBVUkwmIGJhc2VVUkwsIGNvbnN0
IFVSTCYgdXJsKQoreworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3ND
b25uZWN0aW9uKCktPnNlbmQoVW5yZWdpc3RlclByb3RvY29sSGFuZGxlcihzY2hlbWUsIGJhc2VV
UkwsIHVybCksIDApOworfQorI2VuZGlmIC8vIEVOQUJMRShDVVNUT01fU0NIRU1FX0hBTkRMRVIp
CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKE5BVklHQVRPUl9D
T05URU5UX1VUSUxTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNDbGllbnQuaCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTmF2aWdhdG9yQ29udGVudFV0aWxzQ2xp
ZW50LmgKaW5kZXggNWMzNTc2ZGI0MjI2NTNmNzE4MWRkZjFlZDlhNzE4YTQyYTQxNTRiMC4uNDdh
MGVmNjcyNjAzNDY2ZGFhMmU3OTg0OGY0OTMyM2FhYjJhMzVmYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJOYXZpZ2F0b3JDb250ZW50VXRp
bHNDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYk5hdmlnYXRvckNvbnRlbnRVdGlsc0NsaWVudC5oCkBAIC0zMSwxOCArMzEsMTkgQEAKICNp
bmNsdWRlIDxXZWJDb3JlL05hdmlnYXRvckNvbnRlbnRVdGlsc0NsaWVudC5oPgogI2luY2x1ZGUg
PHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKwogbmFt
ZXNwYWNlIFdlYktpdCB7CiAKLWNsYXNzIFdlYk5hdmlnYXRvckNvbnRlbnRVdGlsc0NsaWVudCA6
IHB1YmxpYyBXZWJDb3JlOjpOYXZpZ2F0b3JDb250ZW50VXRpbHNDbGllbnQgeworY2xhc3MgV2Vi
TmF2aWdhdG9yQ29udGVudFV0aWxzQ2xpZW50IGZpbmFsIDogcHVibGljIFdlYkNvcmU6Ok5hdmln
YXRvckNvbnRlbnRVdGlsc0NsaWVudCB7CiBwdWJsaWM6CisgICAgV2ViTmF2aWdhdG9yQ29udGVu
dFV0aWxzQ2xpZW50KCkgeyB9CiAgICAgdmlydHVhbCB+V2ViTmF2aWdhdG9yQ29udGVudFV0aWxz
Q2xpZW50KCkgeyB9CiAKLXByaXZhdGU6Ci0gICAgdmlydHVhbCB2b2lkIHJlZ2lzdGVyUHJvdG9j
b2xIYW5kbGVyKGNvbnN0IFN0cmluZyYgc2NoZW1lLCBjb25zdCBVUkwmIGJhc2VVUkwsIGNvbnN0
IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHRpdGxlKSBvdmVycmlkZSB7IH0KLQorICAgIHZpcnR1
YWwgdm9pZCByZWdpc3RlclByb3RvY29sSGFuZGxlcihjb25zdCBTdHJpbmcmIHNjaGVtZSwgY29u
c3QgVVJMJiBiYXNlVVJMLCBjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIHRpdGxlKSBvdmVycmlk
ZTsKICNpZiBFTkFCTEUoQ1VTVE9NX1NDSEVNRV9IQU5ETEVSKQotICAgIHZpcnR1YWwgQ3VzdG9t
SGFuZGxlcnNTdGF0ZSBpc1Byb3RvY29sSGFuZGxlclJlZ2lzdGVyZWQoY29uc3QgU3RyaW5nJiwg
Y29uc3QgVVJMJiwgY29uc3QgVVJMJikgeyByZXR1cm4gQ3VzdG9tSGFuZGxlcnNEZWNsaW5lZDsg
fQotICAgIHZpcnR1YWwgdm9pZCB1bnJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyKGNvbnN0IFN0cmlu
ZyYsIGNvbnN0IFVSTCYsIGNvbnN0IFVSTCYpIHsgfQorICAgIHZpcnR1YWwgQ3VzdG9tSGFuZGxl
cnNTdGF0ZSBpc1Byb3RvY29sSGFuZGxlclJlZ2lzdGVyZWQoY29uc3QgU3RyaW5nJiwgY29uc3Qg
VVJMJiwgY29uc3QgVVJMJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHVucmVnaXN0ZXJQ
cm90b2NvbEhhbmRsZXIoY29uc3QgU3RyaW5nJiwgY29uc3QgVVJMJiwgY29uc3QgVVJMJikgb3Zl
cnJpZGU7CiAjZW5kaWYKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcAppbmRleCBlZjQ3ZTg3YjQ5YzI1MmI2MGU1MWNiNDFiMDMwYjExYjI4Zjc2
ZmIxLi4yYzlmNzA2ZThhNGNmODg1YmVkM2FmNTgxOTNjMWZkMTY3ZDcwYmU1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0xNzgsNiArMTc4
LDEwIEBACiAjaW5jbHVkZSAiV2ViQmF0dGVyeUNsaWVudC5oIgogI2VuZGlmCiAKKyNpZiBFTkFC
TEUoTkFWSUdBVE9SX0NPTlRFTlRfVVRJTFMpCisjaW5jbHVkZSAiV2ViTmF2aWdhdG9yQ29udGVu
dFV0aWxzQ2xpZW50LmgiCisjZW5kaWYKKwogI2lmIEVOQUJMRShWSUJSQVRJT04pCiAjaW5jbHVk
ZSAiV2ViVmlicmF0aW9uQ2xpZW50LmgiCiAjZW5kaWYKQEAgLTQwMSw2ICs0MDUsOSBAQCBXZWJQ
YWdlOjpXZWJQYWdlKHVpbnQ2NF90IHBhZ2VJRCwgY29uc3QgV2ViUGFnZUNyZWF0aW9uUGFyYW1l
dGVycyYgcGFyYW1ldGVycykKICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykgfHwgRU5BQkxFKExF
R0FDWV9OT1RJRklDQVRJT05TKQogICAgIFdlYkNvcmU6OnByb3ZpZGVOb3RpZmljYXRpb24obV9w
YWdlLmdldCgpLCBuZXcgV2ViTm90aWZpY2F0aW9uQ2xpZW50KHRoaXMpKTsKICNlbmRpZgorI2lm
IEVOQUJMRShOQVZJR0FUT1JfQ09OVEVOVF9VVElMUykKKyAgICBXZWJDb3JlOjpwcm92aWRlTmF2
aWdhdG9yQ29udGVudFV0aWxzVG8obV9wYWdlLmdldCgpLCBzdGQ6Om1ha2VfdW5pcXVlPFdlYktp
dDo6V2ViTmF2aWdhdG9yQ29udGVudFV0aWxzQ2xpZW50PigpKTsKKyNlbmRpZgogI2lmIEVOQUJM
RShWSUJSQVRJT04pCiAgICAgV2ViQ29yZTo6cHJvdmlkZVZpYnJhdGlvblRvKG1fcGFnZS5nZXQo
KSwgbmV3IFdlYlZpYnJhdGlvbkNsaWVudCh0aGlzKSk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IDg0ZDkzOTViN2UwZmM5NmViMzYx
ZTA1OGFkNTMxNzNlZWM5OGI3MDEuLjllYWYyYTliMGNlYmNhNjg3MmZhNjQ3NDBlNzk4MzcyZDgw
YzRkYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApA
QCAtMTYyLDYgKzE2Miw3IEBAIGNsYXNzIFdlYkluc3BlY3RvckNsaWVudDsKIGNsYXNzIFdlYklu
c3BlY3RvclVJOwogY2xhc3MgV2ViS2V5Ym9hcmRFdmVudDsKIGNsYXNzIFdlYk1vdXNlRXZlbnQ7
CitjbGFzcyBXZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNDbGllbnQ7CiBjbGFzcyBXZWJOb3RpZmlj
YXRpb25DbGllbnQ7CiBjbGFzcyBXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lcjsKIGNsYXNzIFdl
YlBhZ2VHcm91cFByb3h5Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>252943</attachid>
            <date>2015-05-11 23:50:12 -0700</date>
            <delta_ts>2015-07-02 21:04:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-92749-20150512154903.patch</filename>
            <type>text/plain</type>
            <size>42464</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg0MTUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzhkYTMyYWMzMjE5OWY5
YzUwNjM4ZDk4OTM1YmE5M2Q0Y2M3NjJmMi4uZTQ3OTgyNWMwZTY0YWNiZDYxOWUyNDU4NmVmYmRh
MmQ2MzVkMDZjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDE1LTA1LTExICBHeXV5
b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ad2Via2l0Lm9yZz4KKworICAgICAgICBbV0syXSBBZGQg
TmF2aWdhdG9yIENvbnRlbnQgVXRpbHMgQVBJIHN1cHBvcnQgZm9yIFdlYktpdDIKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkyNzQ5CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBNb2R1bGVzL25hdmlnYXRv
cmNvbnRlbnR1dGlscy9OYXZpZ2F0b3JDb250ZW50VXRpbHNDbGllbnQuaDogQWRkIFdFQkNPUkVf
RVhQT1JUIHRvIHByb3ZpZGVOYXZpZ2F0b3JDb250ZW50VXRpbHNUbygpIGZ1bmN0aW9uLgorCiAy
MDE1LTA1LTExICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgV2Vi
Q29yZSBwYXJ0IG9mIDxyZGFyOi8vcHJvYmxlbS8yMDg3ODA3NT4gVHJ5aW5nIHRvIG5hdmlnYXRl
IHRvIGFuIGludmFsaWQgVVJMIGxvYWRzIGFib3V0OmJsYW5rLCBidXQgLVtXS1dlYlZpZXcgVVJM
XSByZXR1cm5zIHRoZSBpbnZhbGlkIFVSTApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDE5MjBiZWI2NjE2ZWI0ZTE3
M2M5OGY5OGFjZjMyMWE5NDBhNDc2ODIuLjcxMGFlZTgzZDk5OTgwYzg0ZTg5MGQ4NDRmZTlkOGI4
OTU4NjU3NmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1OCBAQAorMjAxNS0wNS0xMSAgR3l1eW91
bmcgS2ltICA8Z3l1eW91bmcua2ltQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW1dLMl0gQWRkIE5h
dmlnYXRvciBDb250ZW50IFV0aWxzIEFQSSBzdXBwb3J0IGZvciBXZWJLaXQyCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05Mjc0OQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE9yaWdpbmFsIHBhdGNoIGJ5IE1p
a2hhaWwgUG96ZG55YWtvdiAobWlraGFpbC5wb3pkbnlha292QGludGVsLmNvbSkKKworICAgICAg
ICBBZGRlZCBzdXBwb3J0IG9mIE5hdmlnYXRvciBDb250ZW50IFV0aWxzIEFQSSBmb3IgV2ViS2l0
Mi4gVGhpcyBmZWF0dXJlIGlzCisgICAgICAgIHN1cHBvcnRlZCBieSBDaHJvbWl1bSBhbmQgTW96
aWxsYSB0b28uIEN1cnJlbnRseSBFRkwgcG9ydCBlbmFibGVzIHRoZSBmZWF0dXJlLgorCisgICAg
ICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogU2hhcmVkL0FQSS9BUElPYmplY3QuaDoK
KyAgICAgICAgKiBTaGFyZWQvQVBJL2MvV0tCYXNlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9DL1dLQVBJQ2FzdC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS05hdmlnYXRvckNv
bnRlbnRVdGlscy5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViTmF2aWdhdG9yQ29udGVudFV0aWxzQ2xpZW50LmguCisgICAgICAgIChX
S05hdmlnYXRvckNvbnRlbnRVdGlsc0dldFR5cGVJRCk6CisgICAgICAgIChXS05hdmlnYXRvckNv
bnRlbnRVdGlsc1NldFByb3ZpZGVyKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tOYXZp
Z2F0b3JDb250ZW50VXRpbHMuaDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL1dlYk5hdmln
YXRvckNvbnRlbnRVdGlsc1Byb3ZpZGVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6Oldl
Yk5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3ZpZGVyOjpyZWdpc3RlclByb3RvY29sSGFuZGxlcik6
CisgICAgICAgIChXZWJLaXQ6OldlYk5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3ZpZGVyOjppc1By
b3RvY29sSGFuZGxlclJlZ2lzdGVyZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJOYXZpZ2F0b3JD
b250ZW50VXRpbHNQcm92aWRlcjo6dW5yZWdpc3RlclByb3RvY29sSGFuZGxlcik6CisgICAgICAg
ICogVUlQcm9jZXNzL1dlYk5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3ZpZGVyLmg6IENvcGllZCBm
cm9tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTmF2aWdhdG9y
Q29udGVudFV0aWxzQ2xpZW50LmguCisgICAgICAgICogVUlQcm9jZXNzL1dlYk5hdmlnYXRvckNv
bnRlbnRVdGlsc1Byb3h5LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYk5hdmlnYXRv
ckNvbnRlbnRVdGlsc1Byb3h5OjpzdXBwbGVtZW50TmFtZSk6CisgICAgICAgIChXZWJLaXQ6Oldl
Yk5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3h5OjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm94eTo6V2ViTmF2aWdhdG9yQ29udGVudFV0aWxzUHJv
eHkpOgorICAgICAgICAoV2ViS2l0OjpXZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm94eTo6fldl
Yk5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3h5KToKKyAgICAgICAgKFdlYktpdDo6V2ViTmF2aWdh
dG9yQ29udGVudFV0aWxzUHJveHk6OmluaXRpYWxpemVQcm92aWRlcik6CisgICAgICAgIChXZWJL
aXQ6OldlYk5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3h5OjpyZWdpc3RlclByb3RvY29sSGFuZGxl
cik6CisgICAgICAgIChXZWJLaXQ6OldlYk5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3h5Ojppc1By
b3RvY29sSGFuZGxlclJlZ2lzdGVyZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJOYXZpZ2F0b3JD
b250ZW50VXRpbHNQcm94eTo6dW5yZWdpc3RlclByb3RvY29sSGFuZGxlcik6CisgICAgICAgIChX
ZWJLaXQ6OldlYk5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3h5Ojpwcm9jZXNzUG9vbERlc3Ryb3ll
ZCk6CisgICAgICAgIChXZWJLaXQ6OldlYk5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3h5Ojpwcm9j
ZXNzRGlkQ2xvc2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQ
cm94eTo6cmVmV2ViQ29udGV4dFN1cHBsZW1lbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJOYXZp
Z2F0b3JDb250ZW50VXRpbHNQcm94eTo6ZGVyZWZXZWJDb250ZXh0U3VwcGxlbWVudCk6CisgICAg
ICAgICogVUlQcm9jZXNzL1dlYk5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3h5Lmg6IEFkZGVkLgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm94eS5tZXNzYWdl
cy5pbjogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYk5hdmlnYXRvckNvbnRlbnRVdGlsc0NsaWVudC5jcHA6IEFkZGVkLgorICAgICAgICAoV2Vi
S2l0OjpXZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNDbGllbnQ6OnJlZ2lzdGVyUHJvdG9jb2xIYW5k
bGVyKToKKyAgICAgICAgKFdlYktpdDo6dG9DdXN0b21IYW5kbGVyc1N0YXRlKToKKyAgICAgICAg
KFdlYktpdDo6V2ViTmF2aWdhdG9yQ29udGVudFV0aWxzQ2xpZW50Ojppc1Byb3RvY29sSGFuZGxl
clJlZ2lzdGVyZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJOYXZpZ2F0b3JDb250ZW50VXRpbHND
bGllbnQ6OnVucmVnaXN0ZXJQcm90b2NvbEhhbmRsZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViTmF2aWdhdG9yQ29udGVudFV0aWxzQ2xpZW50Lmg6CisgICAgICAg
IChXZWJLaXQ6OldlYk5hdmlnYXRvckNvbnRlbnRVdGlsc0NsaWVudDo6aXNQcm90b2NvbEhhbmRs
ZXJSZWdpc3RlcmVkKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViTmF2aWdhdG9yQ29u
dGVudFV0aWxzQ2xpZW50Ojp1bnJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6
OldlYlBhZ2U6OldlYlBhZ2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
Lmg6CisKIDIwMTUtMDUtMTEgIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4KIAogICAg
ICAgICBXZWJLaXQyIHBhcnQgb2YgPHJkYXI6Ly9wcm9ibGVtLzIwODc4MDc1PiBUcnlpbmcgdG8g
bmF2aWdhdGUgdG8gYW4gaW52YWxpZCBVUkwgbG9hZHMgYWJvdXQ6YmxhbmssIGJ1dCAtW1dLV2Vi
VmlldyBVUkxdIHJldHVybnMgdGhlIGludmFsaWQgVVJMCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL25hdmlnYXRvcmNvbnRlbnR1dGlscy9OYXZpZ2F0b3JDb250ZW50VXRpbHND
bGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbmF2aWdhdG9yY29udGVudHV0aWxzL05h
dmlnYXRvckNvbnRlbnRVdGlsc0NsaWVudC5oCmluZGV4IDNhNDY0NDI0ZmNkODhkMjc5ODcwZTU4
NGIyZmY3MWFlOTEyODQ1ODEuLmNkMDU3ZmEyMjYwMjc2ZmE2Y2UzNTAzOWNmZWZjMWY1ZDcyMWM5
MzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbmF2aWdhdG9yY29udGVudHV0
aWxzL05hdmlnYXRvckNvbnRlbnRVdGlsc0NsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbmF2aWdhdG9yY29udGVudHV0aWxzL05hdmlnYXRvckNvbnRlbnRVdGlsc0NsaWVudC5o
CkBAIC01Miw3ICs1Miw3IEBAIHB1YmxpYzoKICNlbmRpZgogfTsKIAotdm9pZCBwcm92aWRlTmF2
aWdhdG9yQ29udGVudFV0aWxzVG8oUGFnZSosIHN0ZDo6dW5pcXVlX3B0cjxOYXZpZ2F0b3JDb250
ZW50VXRpbHNDbGllbnQ+KTsKK1dFQkNPUkVfRVhQT1JUIHZvaWQgcHJvdmlkZU5hdmlnYXRvckNv
bnRlbnRVdGlsc1RvKFBhZ2UqLCBzdGQ6OnVuaXF1ZV9wdHI8TmF2aWdhdG9yQ29udGVudFV0aWxz
Q2xpZW50Pik7CiAKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50
eHQgYi9Tb3VyY2UvV2ViS2l0Mi9DTWFrZUxpc3RzLnR4dAppbmRleCA5YmQ5OWQzYjc5NWM4ZTJl
ZjhiZDkzNzRmZmQyNWExODU3ZjBiM2Q5Li5lMmI3NmM3NWZmZGZiMWE4ZWVhMTU1ZjY2YzJjMTQ4
ZjFmMjRmNWNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DTWFrZUxpc3RzLnR4dAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9DTWFrZUxpc3RzLnR4dApAQCAtMzcwLDYgKzM3MCw4IEBAIHNldChX
ZWJLaXQyX1NPVVJDRVMKICAgICBVSVByb2Nlc3MvV2ViSW5zcGVjdG9yUHJveHkuY3BwCiAgICAg
VUlQcm9jZXNzL1dlYktleVZhbHVlU3RvcmFnZU1hbmFnZXIuY3BwCiAgICAgVUlQcm9jZXNzL1dl
Yk5hdmlnYXRpb25TdGF0ZS5jcHAKKyAgICBVSVByb2Nlc3MvV2ViTmF2aWdhdG9yQ29udGVudFV0
aWxzUHJvdmlkZXIuY3BwCisgICAgVUlQcm9jZXNzL1dlYk5hdmlnYXRvckNvbnRlbnRVdGlsc1By
b3h5LmNwcAogICAgIFVJUHJvY2Vzcy9XZWJNZWRpYUNhY2hlTWFuYWdlclByb3h5LmNwcAogICAg
IFVJUHJvY2Vzcy9XZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5LmNwcAogICAgIFVJUHJv
Y2Vzcy9XZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5LmNwcApAQCAtNDI4LDYgKzQzMCw3IEBAIHNl
dChXZWJLaXQyX1NPVVJDRVMKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tOYXZpZ2F0aW9uRGF0YVJl
Zi5jcHAKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tOYXZpZ2F0aW9uUmVmLmNwcAogICAgIFVJUHJv
Y2Vzcy9BUEkvQy9XS05hdmlnYXRpb25SZXNwb25zZVJlZi5jcHAKKyAgICBVSVByb2Nlc3MvQVBJ
L0MvV0tOYXZpZ2F0b3JDb250ZW50VXRpbHMuY3BwCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLTm90
aWZpY2F0aW9uLmNwcAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS05vdGlmaWNhdGlvbk1hbmFnZXIu
Y3BwCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3Qu
Y3BwCkBAIC01OTgsNiArNjAxLDcgQEAgc2V0KFdlYktpdDJfU09VUkNFUwogICAgIFdlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCiAgICAgV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNsaWVudC5jcHAKICAgICBXZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5jcHAKKyAgICBXZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYk5hdmlnYXRvckNvbnRlbnRVdGlsc0NsaWVudC5jcHAKICAgICBXZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5jcHAKICAgICBXZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAKICAgICBXZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsdWdJbkNsaWVudC5jcHAKQEAgLTY2MSw2ICs2NjUs
NyBAQCBzZXQoV2ViS2l0Ml9NRVNTQUdFU19JTl9GSUxFUwogICAgIFVJUHJvY2Vzcy9XZWJJY29u
RGF0YWJhc2UubWVzc2FnZXMuaW4KICAgICBVSVByb2Nlc3MvV2ViSW5zcGVjdG9yUHJveHkubWVz
c2FnZXMuaW4KICAgICBVSVByb2Nlc3MvV2ViTWVkaWFDYWNoZU1hbmFnZXJQcm94eS5tZXNzYWdl
cy5pbgorICAgIFVJUHJvY2Vzcy9XZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm94eS5tZXNzYWdl
cy5pbgogICAgIFVJUHJvY2Vzcy9XZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmlu
CiAgICAgVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgogICAgIFVJUHJvY2Vzcy9X
ZWJQYXN0ZWJvYXJkUHJveHkubWVzc2FnZXMuaW4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9BUEkvQVBJT2JqZWN0LmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL0FQSU9i
amVjdC5oCmluZGV4IGVhZWZmZjI2MjUyMzA4Yjk1YjA1NzJjZGQyZjI3ZWYwMzZmMmMwZDMuLjYx
NTBhNDBkNTI1NjI1NzJmNjZiZGE0MDdiZTZjNzk0MDgzYzI4Y2EgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9BUEkvQVBJT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL0FQSS9BUElPYmplY3QuaApAQCAtMTI0LDYgKzEyNCw3IEBAIHB1YmxpYzoKICAgICAgICAg
TmF2aWdhdGlvbkFjdGlvbiwKICAgICAgICAgTmF2aWdhdGlvbkRhdGEsCiAgICAgICAgIE5hdmln
YXRpb25SZXNwb25zZSwKKyAgICAgICAgTmF2aWdhdG9yQ29udGVudFV0aWxzLAogICAgICAgICBO
b3RpZmljYXRpb24sCiAgICAgICAgIE5vdGlmaWNhdGlvbk1hbmFnZXIsCiAgICAgICAgIE5vdGlm
aWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hh
cmVkL0FQSS9jL1dLQmFzZS5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLQmFzZS5o
CmluZGV4IDU5MjQ5ZmUxM2I3MGVkZWE2ZjYzNjc1NjMyYzg4MTczZThkMzMzMTkuLjhkZTEyNTU3
OWZhNWVmODBlNDYyOWJkNTQ3NjA3YmE2M2MyMDA0OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9BUEkvYy9XS0Jhc2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJ
L2MvV0tCYXNlLmgKQEAgLTExNiw2ICsxMTYsNyBAQCB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFx
dWVXS05hdmlnYXRpb25BY3Rpb24qIFdLTmF2aWdhdGlvbkFjdGlvblJlZjsKIHR5cGVkZWYgY29u
c3Qgc3RydWN0IE9wYXF1ZVdLTmF2aWdhdGlvbkRhdGEqIFdLTmF2aWdhdGlvbkRhdGFSZWY7CiB0
eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS05hdmlnYXRpb24qIFdLTmF2aWdhdGlvblJlZjsK
IHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLTmF2aWdhdGlvblJlc3BvbnNlKiBXS05hdmln
YXRpb25SZXNwb25zZVJlZjsKK3R5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLTmF2aWdhdG9y
Q29udGVudFV0aWxzKiBXS05hdmlnYXRvckNvbnRlbnRVdGlsc1JlZjsKIHR5cGVkZWYgY29uc3Qg
c3RydWN0IE9wYXF1ZVdLTm90aWZpY2F0aW9uKiBXS05vdGlmaWNhdGlvblJlZjsKIHR5cGVkZWYg
Y29uc3Qgc3RydWN0IE9wYXF1ZVdLTm90aWZpY2F0aW9uTWFuYWdlciogV0tOb3RpZmljYXRpb25N
YW5hZ2VyUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tOb3RpZmljYXRpb25QZXJt
aXNzaW9uUmVxdWVzdCogV0tOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdFJlZjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaAppbmRleCA3NzQyMWVjMzI2MDA1
ZWNkOGMxOTMxNjQxYjQ3NDU5YWUwYzY4NmZhLi41YTRmNTc2NDQ1ODgwMzUxNTU1NGM4NTdlYTVl
ZTJlM2FkZjFkY2RlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mv
V0tBUElDYXN0LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2Fz
dC5oCkBAIC05NCw2ICs5NCw3IEBAIGNsYXNzIFdlYkljb25EYXRhYmFzZTsKIGNsYXNzIFdlYklu
c3BlY3RvclByb3h5OwogY2xhc3MgV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlcjsKIGNsYXNzIFdl
Yk1lZGlhQ2FjaGVNYW5hZ2VyUHJveHk7CitjbGFzcyBXZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQ
cm94eTsKIGNsYXNzIFdlYk5vdGlmaWNhdGlvbjsKIGNsYXNzIFdlYk5vdGlmaWNhdGlvbk1hbmFn
ZXJQcm94eTsKIGNsYXNzIFdlYk5vdGlmaWNhdGlvblByb3ZpZGVyOwpAQCAtMTQ1LDYgKzE0Niw3
IEBAIFdLX0FERF9BUElfTUFQUElORyhXS0tleVZhbHVlU3RvcmFnZU1hbmFnZXJSZWYsIFdlYktl
eVZhbHVlU3RvcmFnZU1hbmFnZXIpCiBXS19BRERfQVBJX01BUFBJTkcoV0tNZWRpYUNhY2hlTWFu
YWdlclJlZiwgV2ViTWVkaWFDYWNoZU1hbmFnZXJQcm94eSkKIFdLX0FERF9BUElfTUFQUElORyhX
S05hdmlnYXRpb25BY3Rpb25SZWYsIEFQSTo6TmF2aWdhdGlvbkFjdGlvbikKIFdLX0FERF9BUElf
TUFQUElORyhXS05hdmlnYXRpb25EYXRhUmVmLCBBUEk6Ok5hdmlnYXRpb25EYXRhKQorV0tfQURE
X0FQSV9NQVBQSU5HKFdLTmF2aWdhdG9yQ29udGVudFV0aWxzUmVmLCBXZWJOYXZpZ2F0b3JDb250
ZW50VXRpbHNQcm94eSkKIFdLX0FERF9BUElfTUFQUElORyhXS05hdmlnYXRpb25SZWYsIEFQSTo6
TmF2aWdhdGlvbikKIFdLX0FERF9BUElfTUFQUElORyhXS05hdmlnYXRpb25SZXNwb25zZVJlZiwg
QVBJOjpOYXZpZ2F0aW9uUmVzcG9uc2UpCiBXS19BRERfQVBJX01BUFBJTkcoV0tOb3RpZmljYXRp
b25NYW5hZ2VyUmVmLCBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tOYXZpZ2F0b3JDb250ZW50VXRpbHMuY3Bw
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLTmF2aWdhdG9yQ29udGVudFV0aWxz
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi41MTdiNjgyNDliNjYxNmE1MTIyMGYzZDFmNzgxYmVkNzQ5ODhlZTUy
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLTmF2
aWdhdG9yQ29udGVudFV0aWxzLmNwcApAQCAtMCwwICsxLDUwIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE1IEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV0tOYXZpZ2F0b3JDb250ZW50VXRp
bHMuaCIKKworI2lmIEVOQUJMRShOQVZJR0FUT1JfQ09OVEVOVF9VVElMUykKKyNpbmNsdWRlICJX
S0FQSUNhc3QuaCIKKyNpbmNsdWRlICJXZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm94eS5oIgor
Cit1c2luZyBuYW1lc3BhY2UgV2ViS2l0OworI2VuZGlmIC8vIEVOQUJMRShOQVZJR0FUT1JfQ09O
VEVOVF9VVElMUykKKworV0tUeXBlSUQgV0tOYXZpZ2F0b3JDb250ZW50VXRpbHNHZXRUeXBlSUQo
KQoreworI2lmIEVOQUJMRShOQVZJR0FUT1JfQ09OVEVOVF9VVElMUykKKyAgICByZXR1cm4gdG9B
UEkoV2ViTmF2aWdhdG9yQ29udGVudFV0aWxzUHJveHk6OkFQSVR5cGUpOworI2Vsc2UKKyAgICBy
ZXR1cm4gMDsKKyNlbmRpZgorfQorCit2b2lkIFdLTmF2aWdhdG9yQ29udGVudFV0aWxzU2V0UHJv
dmlkZXIoV0tOYXZpZ2F0b3JDb250ZW50VXRpbHNSZWYgcmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJS
ZWYsIGNvbnN0IFdLTmF2aWdhdG9yQ29udGVudFV0aWxzUHJvdmlkZXJCYXNlKiB3a1Byb3ZpZGVy
KQoreworI2lmIEVOQUJMRShOQVZJR0FUT1JfQ09OVEVOVF9VVElMUykKKyAgICB0b0ltcGwocmVn
aXN0ZXJQcm90b2NvbEhhbmRsZXJSZWYpLT5pbml0aWFsaXplUHJvdmlkZXIod2tQcm92aWRlcik7
CisjZW5kaWYKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9X
S05hdmlnYXRvckNvbnRlbnRVdGlscy5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
L1dLTmF2aWdhdG9yQ29udGVudFV0aWxzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmViZDU3NTc3ZDE0NTI0NDE4
ODlhYzFhODI5MTdlOTg0OTFlMzJiMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQy9XS05hdmlnYXRvckNvbnRlbnRVdGlscy5oCkBAIC0wLDAgKzEsNzAg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV0tOYXZpZ2F0b3JDb250ZW50VXRpbHNf
aAorI2RlZmluZSBXS05hdmlnYXRvckNvbnRlbnRVdGlsc19oCisKKyNpbmNsdWRlIDxXZWJLaXQv
V0tCYXNlLmg+CisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKwor
ZW51bSB7CisgICAga1dLQ3VzdG9tSGFuZGxlcnNOZXcsCisgICAga1dLQ3VzdG9tSGFuZGxlcnNS
ZWdpc3RlcmVkLAorICAgIGtXS0N1c3RvbUhhbmRsZXJzRGVjbGluZWQKK307Cit0eXBlZGVmIHVp
bnQzMl90IFdLQ3VzdG9tSGFuZGxlcnNTdGF0ZTsKKwordHlwZWRlZiB2b2lkICgqV0tOYXZpZ2F0
b3JDb250ZW50VXRpbHNQcm92aWRlclJlZ2lzdGVyUHJvdG9jb2xDYWxsYmFjaykoV0tOYXZpZ2F0
b3JDb250ZW50VXRpbHNSZWYgcmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJSZWYsIFdLU3RyaW5nUmVm
IHNjaGVtZSwgV0tTdHJpbmdSZWYgYmFzZVVSTCwgV0tTdHJpbmdSZWYgdXJsLCBXS1N0cmluZ1Jl
ZiB0aXRsZSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7Cit0eXBlZGVmIFdLQ3VzdG9tSGFuZGxl
cnNTdGF0ZSAoKldLTmF2aWdhdG9yQ29udGVudFV0aWxzUHJvdmlkZXJJc1Byb3RvY29sUmVnaXN0
ZXJlZENhbGxiYWNrKShXS05hdmlnYXRvckNvbnRlbnRVdGlsc1JlZiByZWdpc3RlclByb3RvY29s
SGFuZGxlclJlZiwgV0tTdHJpbmdSZWYgc2NoZW1lLCBXS1N0cmluZ1JlZiBiYXNlVVJMLCBXS1N0
cmluZ1JlZiB1cmwsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwordHlwZWRlZiB2b2lkICgqV0tO
YXZpZ2F0b3JDb250ZW50VXRpbHNQcm92aWRlclVucmVnaXN0ZXJQcm90b2NvbENhbGxiYWNrKShX
S05hdmlnYXRvckNvbnRlbnRVdGlsc1JlZiByZWdpc3RlclByb3RvY29sSGFuZGxlclJlZiwgV0tT
dHJpbmdSZWYgc2NoZW1lLCBXS1N0cmluZ1JlZiBiYXNlVVJMLCBXS1N0cmluZ1JlZiB1cmwsIGNv
bnN0IHZvaWQqIGNsaWVudEluZm8pOworCit0eXBlZGVmIHN0cnVjdCBXS05hdmlnYXRvckNvbnRl
bnRVdGlsc1Byb3ZpZGVyQmFzZSB7CisgICAgaW50ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVyc2lvbjsKKyAgICBjb25z
dCB2b2lkICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjbGllbnRJbmZvOworfSBXS05hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3ZpZGVyQmFz
ZTsKKwordHlwZWRlZiBzdHJ1Y3QgV0tOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm92aWRlclYwIHsK
KyAgICBXS05hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3ZpZGVyQmFzZSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFzZTsKKworICAgIC8vIFZlcnNpb24gMC4KKyAg
ICBXS05hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3ZpZGVyUmVnaXN0ZXJQcm90b2NvbENhbGxiYWNr
ICAgICAgICAgICAgICByZWdpc3RlclByb3RvY29sSGFuZGxlcjsKKyAgICBXS05hdmlnYXRvckNv
bnRlbnRVdGlsc1Byb3ZpZGVySXNQcm90b2NvbFJlZ2lzdGVyZWRDYWxsYmFjayAgICAgICAgICBp
c1Byb3RvY29sSGFuZGxlclJlZ2lzdGVyZWQ7CisgICAgV0tOYXZpZ2F0b3JDb250ZW50VXRpbHNQ
cm92aWRlclVucmVnaXN0ZXJQcm90b2NvbENhbGxiYWNrICAgICAgICAgICAgdW5yZWdpc3RlclBy
b3RvY29sSGFuZGxlcjsKK30gV0tOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm92aWRlclYwOworCitl
bnVtIHsga1dLTmF2aWdhdG9yQ29udGVudFV0aWxzUHJvdmlkZXJDdXJyZW50VmVyc2lvbiA9IDAg
fTsKKworV0tfRVhQT1JUIFdLVHlwZUlEIFdLTmF2aWdhdG9yQ29udGVudFV0aWxzR2V0VHlwZUlE
KCk7CisKK1dLX0VYUE9SVCB2b2lkIFdLTmF2aWdhdG9yQ29udGVudFV0aWxzU2V0UHJvdmlkZXIo
V0tOYXZpZ2F0b3JDb250ZW50VXRpbHNSZWYgcmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJSZWYsIGNv
bnN0IFdLTmF2aWdhdG9yQ29udGVudFV0aWxzUHJvdmlkZXJCYXNlKiBwcm92aWRlcik7CisKKyNp
ZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmCisKKyNlbmRpZiAvLyBXS05hdmlnYXRvckNvbnRl
bnRVdGlsc19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTmF2aWdh
dG9yQ29udGVudFV0aWxzUHJvdmlkZXIuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
Yk5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3ZpZGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YjU5YjU5MmNk
ZWY0YTExZjg1MjcxMWIwYjA4MTdiZjhmNjNlZTQ1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYk5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3ZpZGVyLmNwcApA
QCAtMCwwICsxLDY0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEludGVsIENvcnBvcmF0
aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiV2ViTmF2aWdhdG9yQ29udGVudFV0aWxzUHJvdmlkZXIuaCIKKworI2lmIEVO
QUJMRShOQVZJR0FUT1JfQ09OVEVOVF9VVElMUykKKworI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgor
I2luY2x1ZGUgIldlYk5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3h5LmgiCisKK25hbWVzcGFjZSBX
ZWJLaXQgeworCit2b2lkIFdlYk5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3ZpZGVyOjpyZWdpc3Rl
clByb3RvY29sSGFuZGxlcihXZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm94eSogcHJveHksIGNv
bnN0IFN0cmluZyYgc2NoZW1lLCBjb25zdCBTdHJpbmcmIGJhc2VVUkwsIGNvbnN0IFN0cmluZyYg
dXJsLCBjb25zdCBTdHJpbmcmIHRpdGxlKQoreworICAgIGlmICghbV9jbGllbnQucmVnaXN0ZXJQ
cm90b2NvbEhhbmRsZXIpCisgICAgICAgIHJldHVybjsKKworICAgIG1fY2xpZW50LnJlZ2lzdGVy
UHJvdG9jb2xIYW5kbGVyKHRvQVBJKHByb3h5KSwgdG9BUEkoc2NoZW1lLmltcGwoKSksIHRvQVBJ
KGJhc2VVUkwuaW1wbCgpKSwgdG9BUEkodXJsLmltcGwoKSksIHRvQVBJKHRpdGxlLmltcGwoKSks
IG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7Cit9CisKKyNpZiBFTkFCTEUoQ1VTVE9NX1NDSEVN
RV9IQU5ETEVSKQordm9pZCBXZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm92aWRlcjo6aXNQcm90
b2NvbEhhbmRsZXJSZWdpc3RlcmVkKFdlYk5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3h5KiBwcm94
eSwgY29uc3QgU3RyaW5nJiBzY2hlbWUsIGNvbnN0IFN0cmluZyYgYmFzZVVSTCwgY29uc3QgU3Ry
aW5nJiB1cmwsIHVpbnQzMl90JiByZXN1bHQpCit7CisgICAgaWYgKCFtX2NsaWVudC5pc1Byb3Rv
Y29sSGFuZGxlclJlZ2lzdGVyZWQpCisgICAgICAgIHJldHVybjsKKworICAgIHJlc3VsdCA9IG1f
Y2xpZW50LmlzUHJvdG9jb2xIYW5kbGVyUmVnaXN0ZXJlZCh0b0FQSShwcm94eSksIHRvQVBJKHNj
aGVtZS5pbXBsKCkpLCB0b0FQSShiYXNlVVJMLmltcGwoKSksIHRvQVBJKHVybC5pbXBsKCkpLCBt
X2NsaWVudC5iYXNlLmNsaWVudEluZm8pOworfQorCit2b2lkIFdlYk5hdmlnYXRvckNvbnRlbnRV
dGlsc1Byb3ZpZGVyOjp1bnJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyKFdlYk5hdmlnYXRvckNvbnRl
bnRVdGlsc1Byb3h5KiBwcm94eSwgY29uc3QgU3RyaW5nJiBzY2hlbWUsIGNvbnN0IFN0cmluZyYg
YmFzZVVSTCwgY29uc3QgU3RyaW5nJiB1cmwpCit7CisgICAgaWYgKCFtX2NsaWVudC51bnJlZ2lz
dGVyUHJvdG9jb2xIYW5kbGVyKQorICAgICAgICByZXR1cm47CisKKyAgICBtX2NsaWVudC51bnJl
Z2lzdGVyUHJvdG9jb2xIYW5kbGVyKHRvQVBJKHByb3h5KSwgdG9BUEkoc2NoZW1lLmltcGwoKSks
IHRvQVBJKGJhc2VVUkwuaW1wbCgpKSwgdG9BUEkodXJsLmltcGwoKSksIG1fY2xpZW50LmJhc2Uu
Y2xpZW50SW5mbyk7Cit9CisjZW5kaWYgLy8gRU5BQkxFKENVU1RPTV9TQ0hFTUVfSEFORExFUikK
KworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoTkFWSUdBVE9SX0NP
TlRFTlRfVVRJTFMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTmF2
aWdhdG9yQ29udGVudFV0aWxzUHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm92aWRlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZjNWI2MzFlNGZj
NGQzOTRjMTBhMjBjMDY0ZGMxOGE3YWNiM2E1NGEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViTmF2aWdhdG9yQ29udGVudFV0aWxzUHJvdmlkZXIuaApAQCAt
MCwwICsxLDU5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEludGVsIENvcnBvcmF0aW9u
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdlYk5hdmlnYXRvckNv
bnRlbnRVdGlsc1Byb3ZpZGVyX2gKKyNkZWZpbmUgV2ViTmF2aWdhdG9yQ29udGVudFV0aWxzUHJv
dmlkZXJfaAorCisjaWYgRU5BQkxFKE5BVklHQVRPUl9DT05URU5UX1VUSUxTKQorCisjaW5jbHVk
ZSAiQVBJQ2xpZW50LmgiCisjaW5jbHVkZSAiV0tOYXZpZ2F0b3JDb250ZW50VXRpbHMuaCIKKyNp
bmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKK25h
bWVzcGFjZSBBUEkgewordGVtcGxhdGU8PiBzdHJ1Y3QgQ2xpZW50VHJhaXRzPFdLTmF2aWdhdG9y
Q29udGVudFV0aWxzUHJvdmlkZXJCYXNlPiB7CisgICAgdHlwZWRlZiBzdGQ6OnR1cGxlPFdLTmF2
aWdhdG9yQ29udGVudFV0aWxzUHJvdmlkZXJWMD4gVmVyc2lvbnM7Cit9OworfQorCituYW1lc3Bh
Y2UgV2ViS2l0IHsKKworY2xhc3MgV2ViTmF2aWdhdG9yQ29udGVudFV0aWxzUHJveHk7CisKK2Ns
YXNzIFdlYk5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3ZpZGVyIDogcHVibGljIEFQSTo6Q2xpZW50
PFdLTmF2aWdhdG9yQ29udGVudFV0aWxzUHJvdmlkZXJCYXNlPiB7CitwdWJsaWM6CisgICAgdm9p
ZCByZWdpc3RlclByb3RvY29sSGFuZGxlcihXZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm94eSos
IGNvbnN0IFN0cmluZyYgc2NoZW1lLCBjb25zdCBTdHJpbmcmIGJhc2VVUkwsIGNvbnN0IFN0cmlu
ZyYgdXJsLCBjb25zdCBTdHJpbmcmIHRpdGxlKTsKKworI2lmIEVOQUJMRShDVVNUT01fU0NIRU1F
X0hBTkRMRVIpCisgICAgdm9pZCBpc1Byb3RvY29sSGFuZGxlclJlZ2lzdGVyZWQoV2ViTmF2aWdh
dG9yQ29udGVudFV0aWxzUHJveHkqLCBjb25zdCBTdHJpbmcmIHNjaGVtZSwgY29uc3QgU3RyaW5n
JiBiYXNlVVJMLCBjb25zdCBTdHJpbmcmIHVybCwgdWludDMyX3QmIHJlc3VsdCk7CisgICAgdm9p
ZCB1bnJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyKFdlYk5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3h5
KiwgY29uc3QgU3RyaW5nJiBzY2hlbWUsIGNvbnN0IFN0cmluZyYgYmFzZVVSTCwgY29uc3QgU3Ry
aW5nJiB1cmwpOworI2VuZGlmIC8vIEVOQUJMRShDVVNUT01fU0NIRU1FX0hBTkRMRVIpCit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShOQVZJR0FUT1JfQ09O
VEVOVF9VVElMUykKKyNlbmRpZiAvLyBXZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm92aWRlcl9o
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTmF2aWdhdG9yQ29udGVu
dFV0aWxzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk5hdmlnYXRvckNv
bnRlbnRVdGlsc1Byb3h5LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zZDlhMzZlNzI3Y2VhMTkyMGJmNzQ0YTdh
YjQyOGIzZTcwYzMyYTMwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYk5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3h5LmNwcApAQCAtMCwwICsxLDk4IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDE1IEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1IFNhbXN1bmcgRWxlY3Ryb25pY3MuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJXZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm94eS5oIgorCisjaWYgRU5BQkxFKE5BVklHQVRP
Ul9DT05URU5UX1VUSUxTKQorCisjaW5jbHVkZSAiV2ViTmF2aWdhdG9yQ29udGVudFV0aWxzUHJv
eHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3NQb29sLmgiCisKK25hbWVzcGFjZSBX
ZWJLaXQgeworCitjb25zdCBjaGFyKiBXZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm94eTo6c3Vw
cGxlbWVudE5hbWUoKQoreworICAgIHJldHVybiAiV2ViTmF2aWdhdG9yQ29udGVudFV0aWxzUHJv
eHkiOworfQorCitQYXNzUmVmUHRyPFdlYk5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3h5PiBXZWJO
YXZpZ2F0b3JDb250ZW50VXRpbHNQcm94eTo6Y3JlYXRlKFdlYlByb2Nlc3NQb29sKiBwcm9jZXNz
UG9vbCkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYk5hdmlnYXRvckNvbnRlbnRVdGls
c1Byb3h5KHByb2Nlc3NQb29sKSk7Cit9CisKK1dlYk5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3h5
OjpXZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm94eShXZWJQcm9jZXNzUG9vbCogcHJvY2Vzc1Bv
b2wpCisgICAgOiBXZWJDb250ZXh0U3VwcGxlbWVudChwcm9jZXNzUG9vbCkKK3sKK30KKworV2Vi
TmF2aWdhdG9yQ29udGVudFV0aWxzUHJveHk6On5XZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm94
eSgpCit7Cit9CisKK3ZvaWQgV2ViTmF2aWdhdG9yQ29udGVudFV0aWxzUHJveHk6OmluaXRpYWxp
emVQcm92aWRlcihjb25zdCBXS05hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3ZpZGVyQmFzZSogcHJv
dmlkZXIpCit7CisgICAgbV9wcm92aWRlci5pbml0aWFsaXplKHByb3ZpZGVyKTsKK30KKwordm9p
ZCBXZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm94eTo6cmVnaXN0ZXJQcm90b2NvbEhhbmRsZXIo
Y29uc3QgU3RyaW5nJiBzY2hlbWUsIGNvbnN0IFN0cmluZyYgYmFzZVVSTCwgY29uc3QgU3RyaW5n
JiB1cmwsIGNvbnN0IFN0cmluZyYgdGl0bGUpCit7CisgICAgbV9wcm92aWRlci5yZWdpc3RlclBy
b3RvY29sSGFuZGxlcih0aGlzLCBzY2hlbWUsIGJhc2VVUkwsIHVybCwgdGl0bGUpOworfQorCisj
aWYgRU5BQkxFKENVU1RPTV9TQ0hFTUVfSEFORExFUikKK3ZvaWQgV2ViTmF2aWdhdG9yQ29udGVu
dFV0aWxzUHJveHk6OmlzUHJvdG9jb2xIYW5kbGVyUmVnaXN0ZXJlZChjb25zdCBTdHJpbmcmIHNj
aGVtZSwgY29uc3QgU3RyaW5nJiBiYXNlVVJMLCBjb25zdCBTdHJpbmcmIHVybCwgdWludDMyX3Qm
IHJlc3VsdCkKK3sKKyAgICBtX3Byb3ZpZGVyLmlzUHJvdG9jb2xIYW5kbGVyUmVnaXN0ZXJlZCh0
aGlzLCBzY2hlbWUsIGJhc2VVUkwsIHVybCwgcmVzdWx0KTsKK30KKwordm9pZCBXZWJOYXZpZ2F0
b3JDb250ZW50VXRpbHNQcm94eTo6dW5yZWdpc3RlclByb3RvY29sSGFuZGxlcihjb25zdCBTdHJp
bmcmIHNjaGVtZSwgY29uc3QgU3RyaW5nJiBiYXNlVVJMLCBjb25zdCBTdHJpbmcmIHVybCkKK3sK
KyAgICBtX3Byb3ZpZGVyLnVucmVnaXN0ZXJQcm90b2NvbEhhbmRsZXIodGhpcywgc2NoZW1lLCBi
YXNlVVJMLCB1cmwpOworfQorI2VuZGlmIC8vIEVOQUJMRShDVVNUT01fU0NIRU1FX0hBTkRMRVIp
CisKKy8vIFdlYkNvbnRleHRTdXBwbGVtZW50Cit2b2lkIFdlYk5hdmlnYXRvckNvbnRlbnRVdGls
c1Byb3h5Ojpwcm9jZXNzUG9vbERlc3Ryb3llZCgpCit7Cit9CisKK3ZvaWQgV2ViTmF2aWdhdG9y
Q29udGVudFV0aWxzUHJveHk6OnByb2Nlc3NEaWRDbG9zZShXZWJQcm9jZXNzUHJveHkqKQorewor
fQorCit2b2lkIFdlYk5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3h5OjpyZWZXZWJDb250ZXh0U3Vw
cGxlbWVudCgpCit7CisgICAgQVBJOjpPYmplY3Q6OnJlZigpOworfQorCit2b2lkIFdlYk5hdmln
YXRvckNvbnRlbnRVdGlsc1Byb3h5OjpkZXJlZldlYkNvbnRleHRTdXBwbGVtZW50KCkKK3sKKyAg
ICBBUEk6Ok9iamVjdDo6ZGVyZWYoKTsKK30KK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5k
aWYgLy8gRU5BQkxFKE5BVklHQVRPUl9DT05URU5UX1VUSUxTKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYk5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3h5LmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTmF2aWdhdG9yQ29udGVudFV0aWxzUHJveHkuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5hYjE0NjkxY2E0OGY4OWYzYjE0ZTBhMTk4ODM5ODg0MjYzNGFhYzdkCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk5hdmlnYXRvckNvbnRlbnRV
dGlsc1Byb3h5LmgKQEAgLTAsMCArMSw4MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBJ
bnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAxNSBTYW1zdW5nIEVsZWN0cm9uaWNzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaWZuZGVmIFdlYk5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3h5X2gKKyNkZWZpbmUgV2ViTmF2
aWdhdG9yQ29udGVudFV0aWxzUHJveHlfaAorCisjaWYgRU5BQkxFKE5BVklHQVRPUl9DT05URU5U
X1VUSUxTKQorCisjaW5jbHVkZSAiQVBJT2JqZWN0LmgiCisjaW5jbHVkZSAiQ29ubmVjdGlvbi5o
IgorI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgorI2luY2x1ZGUgIldlYkNvbnRleHRTdXBw
bGVtZW50LmgiCisjaW5jbHVkZSAiV2ViTmF2aWdhdG9yQ29udGVudFV0aWxzUHJvdmlkZXIuaCIK
KworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlByb2Nlc3NQb29sOworY2xhc3MgV2Vi
UHJvY2Vzc1Byb3h5OworCitjbGFzcyBXZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm94eSA6IHB1
YmxpYyBBUEk6Ok9iamVjdEltcGw8QVBJOjpPYmplY3Q6OlR5cGU6Ok5hdmlnYXRvckNvbnRlbnRV
dGlscz4sIHB1YmxpYyBXZWJDb250ZXh0U3VwcGxlbWVudCwgcHVibGljIElQQzo6TWVzc2FnZVJl
Y2VpdmVyIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgY29uc3QgY2hhciogc3VwcGxlbWVudE5hbWUo
KTsKKworICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYk5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3h5
PiBjcmVhdGUoV2ViUHJvY2Vzc1Bvb2wqKTsKKyAgICB2aXJ0dWFsIH5XZWJOYXZpZ2F0b3JDb250
ZW50VXRpbHNQcm94eSgpOworCisgICAgdm9pZCBpbml0aWFsaXplUHJvdmlkZXIoY29uc3QgV0tO
YXZpZ2F0b3JDb250ZW50VXRpbHNQcm92aWRlckJhc2UqKTsKKworICAgIHVzaW5nIEFQSTo6T2Jq
ZWN0OjpyZWY7CisgICAgdXNpbmcgQVBJOjpPYmplY3Q6OmRlcmVmOworCitwcml2YXRlOgorICAg
IGV4cGxpY2l0IFdlYk5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3h5KFdlYlByb2Nlc3NQb29sKik7
CisKKyAgICAvLyBXZWJDb250ZXh0U3VwcGxlbWVudAorICAgIHZpcnR1YWwgdm9pZCBwcm9jZXNz
UG9vbERlc3Ryb3llZCgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBwcm9jZXNzRGlkQ2xv
c2UoV2ViUHJvY2Vzc1Byb3h5Kikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHJlZldlYkNv
bnRleHRTdXBwbGVtZW50KCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGRlcmVmV2ViQ29u
dGV4dFN1cHBsZW1lbnQoKSBvdmVycmlkZTsKKworICAgIC8vIFBDOjpNZXNzYWdlUmVjZWl2ZXIK
KyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBD
OjpNZXNzYWdlRGVjb2RlciYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZl
U3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpNZXNzYWdlRGVjb2RlciYsIHN0ZDo6
dW5pcXVlX3B0cjxJUEM6Ok1lc3NhZ2VFbmNvZGVyPiYpIG92ZXJyaWRlOworCisgICAgdm9pZCBy
ZWdpc3RlclByb3RvY29sSGFuZGxlcihjb25zdCBTdHJpbmcmIHNjaGVtZSwgY29uc3QgU3RyaW5n
JiBiYXNlVVJMLCBjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgU3RyaW5nJiB0aXRsZSk7CisjaWYg
RU5BQkxFKENVU1RPTV9TQ0hFTUVfSEFORExFUikKKyAgICB2b2lkIGlzUHJvdG9jb2xIYW5kbGVy
UmVnaXN0ZXJlZChjb25zdCBTdHJpbmcmIHNjaGVtZSwgY29uc3QgU3RyaW5nJiBiYXNlVVJMLCBj
b25zdCBTdHJpbmcmIHVybCwgdWludDMyX3QmIHJlc3VsdCk7CisgICAgdm9pZCB1bnJlZ2lzdGVy
UHJvdG9jb2xIYW5kbGVyKGNvbnN0IFN0cmluZyYgc2NoZW1lLCBjb25zdCBTdHJpbmcmIGJhc2VV
UkwsIGNvbnN0IFN0cmluZyYgdXJsKTsKKyNlbmRpZiAvLyBFTkFCTEUoQ1VTVE9NX1NDSEVNRV9I
QU5ETEVSKQorCisgICAgV2ViTmF2aWdhdG9yQ29udGVudFV0aWxzUHJvdmlkZXIgbV9wcm92aWRl
cjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKE5BVklH
QVRPUl9DT05URU5UX1VUSUxTKQorCisjZW5kaWYgLy8gV2ViTmF2aWdhdG9yQ29udGVudFV0aWxz
UHJveHlfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk5hdmlnYXRv
ckNvbnRlbnRVdGlsc1Byb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYk5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3h5Lm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE4
MDMzNzJmODYxODJiMGZiNzdmMGMxMjNlMjNmZGQ2NTRkMTZkNjcKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTmF2aWdhdG9yQ29udGVudFV0aWxzUHJveHku
bWVzc2FnZXMuaW4KQEAgLTAsMCArMSwzMyBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTUgSW50ZWwg
Q29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuICBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JyBBTkQKKyMgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUgorIyBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisjIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisjIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSCisjIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisjIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisKKyNpZiBFTkFCTEUoTkFWSUdBVE9SX0NPTlRFTlRfVVRJTFMp
CisKK21lc3NhZ2VzIC0+IFdlYk5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3h5IHsKKyAgICBSZWdp
c3RlclByb3RvY29sSGFuZGxlcihTdHJpbmcgc2NoZW1lLCBTdHJpbmcgYmFzZVVSTCwgU3RyaW5n
IHVybCwgU3RyaW5nIHRpdGxlKQorI2lmIEVOQUJMRShDVVNUT01fU0NIRU1FX0hBTkRMRVIpCisg
ICAgSXNQcm90b2NvbEhhbmRsZXJSZWdpc3RlcmVkKFN0cmluZyBzY2hlbWUsIFN0cmluZyBiYXNl
VVJMLCBTdHJpbmcgdXJsKSAtPiAodWludDMyX3QgcmVzdWx0KQorICAgIFVucmVnaXN0ZXJQcm90
b2NvbEhhbmRsZXIoU3RyaW5nIHNjaGVtZSwgU3RyaW5nIGJhc2VVUkwsIFN0cmluZyB1cmwpCisj
ZW5kaWYgLy8gRU5BQkxFKENVU1RPTV9TQ0hFTUVfSEFORExFUikKK30KKworI2VuZGlmIC8vIEVO
QUJMRShOQVZJR0FUT1JfQ09OVEVOVF9VVElMUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Bvb2wuY3BwCmluZGV4IDhmMTQwOTQ2NDMzMGQxOGE1ODU3ZjFkMDBhMGI4YzBh
MGExZjdkODQuLjFhNTk5NzdmZjMxZTMyMTI0MjE1YmY2ZDM3OTE0ODAyN2I0NzQ4MmYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcApAQCAtODgsNiArODgs
MTAgQEAKICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc1Byb3h5LmgiCiAjZW5kaWYKIAorI2lmIEVO
QUJMRShOQVZJR0FUT1JfQ09OVEVOVF9VVElMUykKKyNpbmNsdWRlICJXZWJOYXZpZ2F0b3JDb250
ZW50VXRpbHNQcm94eS5oIgorI2VuZGlmCisKICNpZiBFTkFCTEUoU0VSVklDRV9DT05UUk9MUykK
ICNpbmNsdWRlICJTZXJ2aWNlc0NvbnRyb2xsZXIuaCIKICNlbmRpZgpAQCAtMTk5LDYgKzIwMyw5
IEBAIFdlYlByb2Nlc3NQb29sOjpXZWJQcm9jZXNzUG9vbChBUEk6OlByb2Nlc3NQb29sQ29uZmln
dXJhdGlvbiYgY29uZmlndXJhdGlvbikKICAgICBhZGRTdXBwbGVtZW50PFdlYktleVZhbHVlU3Rv
cmFnZU1hbmFnZXI+KCk7CiAgICAgYWRkU3VwcGxlbWVudDxXZWJNZWRpYUNhY2hlTWFuYWdlclBy
b3h5PigpOwogICAgIGFkZFN1cHBsZW1lbnQ8V2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5Pigp
OworI2lmIEVOQUJMRShOQVZJR0FUT1JfQ09OVEVOVF9VVElMUykKKyAgICBhZGRTdXBwbGVtZW50
PFdlYk5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3h5PigpOworI2VuZGlmCiAgICAgYWRkU3VwcGxl
bWVudDxXZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5PigpOwogICAgIGFkZFN1cHBsZW1lbnQ8
V2ViRGF0YWJhc2VNYW5hZ2VyUHJveHk+KCk7CiAjaWYgVVNFKFNPVVApCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCmluZGV4IGM4OGJjNmMwNGMxZTRkMDQwOWFlODg2
NzE1MTU5NGI3MjllYjRhODguLmQ5NzFhN2E5YmE2MDExMDBkZGYxZGJkODZkZjA5MmQwMmQzYWEx
OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCkBAIC04Nyw2
ICs4NywxMCBAQCBzdHJ1Y3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczsKICAgICAKIHR5
cGVkZWYgR2VuZXJpY0NhbGxiYWNrPEFQSTo6RGljdGlvbmFyeSo+IERpY3Rpb25hcnlDYWxsYmFj
azsKIAorI2lmIEVOQUJMRShOQVZJR0FUT1JfQ09OVEVOVF9VVElMUykKK2NsYXNzIFdlYk5hdmln
YXRvckNvbnRlbnRVdGlsc1Byb3h5OworI2VuZGlmCisKICNpZiBFTkFCTEUoTkVUV09SS19QUk9D
RVNTKQogc3RydWN0IE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOwogI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCmluZGV4IGYwMWVm
N2M5OWU3MzAzMDQ2OWFhNDhmNzc1NWQzNmQwZDc4ODczNTMuLjY4YzViMjMxOWFiNjE3NDEwNzQ3
NjliMzk4NzRiNDkzMmFmNGQwZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
cm9jZXNzUHJveHkuY3BwCkBAIC00MSw2ICs0MSw3IEBACiAjaW5jbHVkZSAiV2ViSWNvbkRhdGFi
YXNlLmgiCiAjaW5jbHVkZSAiV2ViSW5zcGVjdG9yUHJveHkuaCIKICNpbmNsdWRlICJXZWJOYXZp
Z2F0aW9uRGF0YVN0b3JlLmgiCisjaW5jbHVkZSAiV2ViTmF2aWdhdG9yQ29udGVudFV0aWxzUHJv
eHkuaCIKICNpbmNsdWRlICJXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuaCIKICNpbmNsdWRl
ICJXZWJQYWdlR3JvdXAuaCIKICNpbmNsdWRlICJXZWJQYWdlUHJveHkuaCIKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTmF2aWdhdG9yQ29u
dGVudFV0aWxzQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViTmF2aWdhdG9yQ29udGVudFV0aWxzQ2xpZW50LmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xODg3
ZDhhNDI2ZGFmMDJjZjY3Mjc5NjBlNzM5MDkwM2M3NGVjZWE3Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJOYXZpZ2F0b3JDb250
ZW50VXRpbHNDbGllbnQuY3BwCkBAIC0wLDAgKzEsNzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTUgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMTUgU2Ftc3VuZyBFbGVjdHJvbmljcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYk5hdmlnYXRvckNvbnRl
bnRVdGlsc0NsaWVudC5oIgorCisjaWYgRU5BQkxFKE5BVklHQVRPUl9DT05URU5UX1VUSUxTKQor
CisjaW5jbHVkZSAiV2ViTmF2aWdhdG9yQ29udGVudFV0aWxzUHJveHlNZXNzYWdlcy5oIgorI2lu
Y2x1ZGUgIldlYlByb2Nlc3MuaCIKKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Cit1c2luZyBu
YW1lc3BhY2UgTWVzc2FnZXM6OldlYk5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3h5OworCituYW1l
c3BhY2UgV2ViS2l0IHsKKwordm9pZCBXZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNDbGllbnQ6OnJl
Z2lzdGVyUHJvdG9jb2xIYW5kbGVyKGNvbnN0IFN0cmluZyYgc2NoZW1lLCBjb25zdCBVUkwmIGJh
c2VVUkwsIGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHRpdGxlKQorCit7CisgICAgV2Vi
UHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChSZWdp
c3RlclByb3RvY29sSGFuZGxlcihzY2hlbWUsIGJhc2VVUkwsIHVybCwgdGl0bGUpLCAwKTsKK30K
KworI2lmIEVOQUJMRShDVVNUT01fU0NIRU1FX0hBTkRMRVIpCitzdGF0aWMgaW5saW5lIE5hdmln
YXRvckNvbnRlbnRVdGlsc0NsaWVudDo6Q3VzdG9tSGFuZGxlcnNTdGF0ZSB0b0N1c3RvbUhhbmRs
ZXJzU3RhdGUoY29uc3QgdWludDMyX3Qgc3RhdGUpCit7CisgICAgc3dpdGNoIChzdGF0ZSkgewor
ICAgIGNhc2UgTmF2aWdhdG9yQ29udGVudFV0aWxzQ2xpZW50OjpDdXN0b21IYW5kbGVyc05ldzoK
KyAgICBjYXNlIE5hdmlnYXRvckNvbnRlbnRVdGlsc0NsaWVudDo6Q3VzdG9tSGFuZGxlcnNSZWdp
c3RlcmVkOgorICAgIGNhc2UgTmF2aWdhdG9yQ29udGVudFV0aWxzQ2xpZW50OjpDdXN0b21IYW5k
bGVyc0RlY2xpbmVkOgorICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8TmF2aWdhdG9yQ29udGVu
dFV0aWxzQ2xpZW50OjpDdXN0b21IYW5kbGVyc1N0YXRlPihzdGF0ZSk7CisgICAgZGVmYXVsdDoK
KyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiBOYXZpZ2F0b3JD
b250ZW50VXRpbHNDbGllbnQ6OkN1c3RvbUhhbmRsZXJzRGVjbGluZWQ7CisgICAgfQorfQorCitO
YXZpZ2F0b3JDb250ZW50VXRpbHNDbGllbnQ6OkN1c3RvbUhhbmRsZXJzU3RhdGUgV2ViTmF2aWdh
dG9yQ29udGVudFV0aWxzQ2xpZW50Ojppc1Byb3RvY29sSGFuZGxlclJlZ2lzdGVyZWQoY29uc3Qg
U3RyaW5nJiBzY2hlbWUsIGNvbnN0IFVSTCYgYmFzZVVSTCwgY29uc3QgVVJMJiB1cmwpCit7Cisg
ICAgdWludDMyX3QgcmVzdWx0ID0gc3RhdGljX2Nhc3Q8dWludDMyX3Q+KE5hdmlnYXRvckNvbnRl
bnRVdGlsc0NsaWVudDo6Q3VzdG9tSGFuZGxlcnNOZXcpOworICAgIFdlYlByb2Nlc3M6OnNpbmds
ZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmRTeW5jKElzUHJvdG9jb2xIYW5k
bGVyUmVnaXN0ZXJlZChzY2hlbWUsIGJhc2VVUkwsIHVybCksIElzUHJvdG9jb2xIYW5kbGVyUmVn
aXN0ZXJlZDo6UmVwbHkocmVzdWx0KSwgMCk7CisgICAgcmV0dXJuIHRvQ3VzdG9tSGFuZGxlcnNT
dGF0ZShyZXN1bHQpOworfQorCit2b2lkIFdlYk5hdmlnYXRvckNvbnRlbnRVdGlsc0NsaWVudDo6
dW5yZWdpc3RlclByb3RvY29sSGFuZGxlcihjb25zdCBTdHJpbmcmIHNjaGVtZSwgY29uc3QgVVJM
JiBiYXNlVVJMLCBjb25zdCBVUkwmIHVybCkKK3sKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24o
KS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKFVucmVnaXN0ZXJQcm90b2NvbEhhbmRs
ZXIoc2NoZW1lLCBiYXNlVVJMLCB1cmwpLCAwKTsKK30KKyNlbmRpZiAvLyBFTkFCTEUoQ1VTVE9N
X1NDSEVNRV9IQU5ETEVSKQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVO
QUJMRShOQVZJR0FUT1JfQ09OVEVOVF9VVElMUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTmF2aWdhdG9yQ29udGVudFV0aWxzQ2xpZW50
LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYk5hdmlnYXRv
ckNvbnRlbnRVdGlsc0NsaWVudC5oCmluZGV4IDVjMzU3NmRiNDIyNjUzZjcxODFkZGYxZWQ5YTcx
OGE0MmE0MTU0YjAuLjQ3YTBlZjY3MjYwMzQ2NmRhYTJlNzk4NDhmNDkzMjNhYWIyYTM1ZmMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTmF2
aWdhdG9yQ29udGVudFV0aWxzQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNDbGllbnQuaApAQCAtMzEs
MTggKzMxLDE5IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9OYXZpZ2F0b3JDb250ZW50VXRpbHNDbGll
bnQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAordXNpbmcgbmFtZXNwYWNl
IFdlYkNvcmU7CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1jbGFzcyBXZWJOYXZpZ2F0b3JDb250
ZW50VXRpbHNDbGllbnQgOiBwdWJsaWMgV2ViQ29yZTo6TmF2aWdhdG9yQ29udGVudFV0aWxzQ2xp
ZW50IHsKK2NsYXNzIFdlYk5hdmlnYXRvckNvbnRlbnRVdGlsc0NsaWVudCBmaW5hbCA6IHB1Ymxp
YyBXZWJDb3JlOjpOYXZpZ2F0b3JDb250ZW50VXRpbHNDbGllbnQgewogcHVibGljOgorICAgIFdl
Yk5hdmlnYXRvckNvbnRlbnRVdGlsc0NsaWVudCgpIHsgfQogICAgIHZpcnR1YWwgfldlYk5hdmln
YXRvckNvbnRlbnRVdGlsc0NsaWVudCgpIHsgfQogCi1wcml2YXRlOgotICAgIHZpcnR1YWwgdm9p
ZCByZWdpc3RlclByb3RvY29sSGFuZGxlcihjb25zdCBTdHJpbmcmIHNjaGVtZSwgY29uc3QgVVJM
JiBiYXNlVVJMLCBjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiB0aXRsZSkgb3ZlcnJpZGUg
eyB9Ci0KKyAgICB2aXJ0dWFsIHZvaWQgcmVnaXN0ZXJQcm90b2NvbEhhbmRsZXIoY29uc3QgU3Ry
aW5nJiBzY2hlbWUsIGNvbnN0IFVSTCYgYmFzZVVSTCwgY29uc3QgVVJMJiwgY29uc3QgU3RyaW5n
JiB0aXRsZSkgb3ZlcnJpZGU7CiAjaWYgRU5BQkxFKENVU1RPTV9TQ0hFTUVfSEFORExFUikKLSAg
ICB2aXJ0dWFsIEN1c3RvbUhhbmRsZXJzU3RhdGUgaXNQcm90b2NvbEhhbmRsZXJSZWdpc3RlcmVk
KGNvbnN0IFN0cmluZyYsIGNvbnN0IFVSTCYsIGNvbnN0IFVSTCYpIHsgcmV0dXJuIEN1c3RvbUhh
bmRsZXJzRGVjbGluZWQ7IH0KLSAgICB2aXJ0dWFsIHZvaWQgdW5yZWdpc3RlclByb3RvY29sSGFu
ZGxlcihjb25zdCBTdHJpbmcmLCBjb25zdCBVUkwmLCBjb25zdCBVUkwmKSB7IH0KKyAgICB2aXJ0
dWFsIEN1c3RvbUhhbmRsZXJzU3RhdGUgaXNQcm90b2NvbEhhbmRsZXJSZWdpc3RlcmVkKGNvbnN0
IFN0cmluZyYsIGNvbnN0IFVSTCYsIGNvbnN0IFVSTCYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwg
dm9pZCB1bnJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyKGNvbnN0IFN0cmluZyYsIGNvbnN0IFVSTCYs
IGNvbnN0IFVSTCYpIG92ZXJyaWRlOwogI2VuZGlmCiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggNDlkYmNkOWRmNWM2MzU4ZjA4NmQ3
ZjVkZGEyZDZjNmExZmE3NzNhNy4uZTcwOTNlOWIyZTIyNDdiYmQ5ZTQxMzZkMDlkYWMzMTRlZmFj
MDAyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNw
cApAQCAtMTc4LDYgKzE3OCwxMCBAQAogI2luY2x1ZGUgIldlYkJhdHRlcnlDbGllbnQuaCIKICNl
bmRpZgogCisjaWYgRU5BQkxFKE5BVklHQVRPUl9DT05URU5UX1VUSUxTKQorI2luY2x1ZGUgIldl
Yk5hdmlnYXRvckNvbnRlbnRVdGlsc0NsaWVudC5oIgorI2VuZGlmCisKICNpZiBFTkFCTEUoVklC
UkFUSU9OKQogI2luY2x1ZGUgIldlYlZpYnJhdGlvbkNsaWVudC5oIgogI2VuZGlmCkBAIC00MDEs
NiArNDA1LDkgQEAgV2ViUGFnZTo6V2ViUGFnZSh1aW50NjRfdCBwYWdlSUQsIGNvbnN0IFdlYlBh
Z2VDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCiAjaWYgRU5BQkxFKE5PVElGSUNBVElP
TlMpIHx8IEVOQUJMRShMRUdBQ1lfTk9USUZJQ0FUSU9OUykKICAgICBXZWJDb3JlOjpwcm92aWRl
Tm90aWZpY2F0aW9uKG1fcGFnZS5nZXQoKSwgbmV3IFdlYk5vdGlmaWNhdGlvbkNsaWVudCh0aGlz
KSk7CiAjZW5kaWYKKyNpZiBFTkFCTEUoTkFWSUdBVE9SX0NPTlRFTlRfVVRJTFMpCisgICAgV2Vi
Q29yZTo6cHJvdmlkZU5hdmlnYXRvckNvbnRlbnRVdGlsc1RvKG1fcGFnZS5nZXQoKSwgc3RkOjpt
YWtlX3VuaXF1ZTxXZWJLaXQ6OldlYk5hdmlnYXRvckNvbnRlbnRVdGlsc0NsaWVudD4oKSk7Cisj
ZW5kaWYKICNpZiBFTkFCTEUoVklCUkFUSU9OKQogICAgIFdlYkNvcmU6OnByb3ZpZGVWaWJyYXRp
b25UbyhtX3BhZ2UuZ2V0KCksIG5ldyBXZWJWaWJyYXRpb25DbGllbnQodGhpcykpOwogI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5o
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCBiMjVm
ZGUwOWU2NTcwZTRlYjJiYzRkODJiYzYxMGJhZjI3MTA5YTFiLi40OTM5OTQ0YTI5ZGQ0ZjdlNmM2
NTFlNjI4Nzk5ZmE0ZmM0Mzk1OGUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmgKQEAgLTE2Miw2ICsxNjIsNyBAQCBjbGFzcyBXZWJJbnNwZWN0b3JDbGll
bnQ7CiBjbGFzcyBXZWJJbnNwZWN0b3JVSTsKIGNsYXNzIFdlYktleWJvYXJkRXZlbnQ7CiBjbGFz
cyBXZWJNb3VzZUV2ZW50OworY2xhc3MgV2ViTmF2aWdhdG9yQ29udGVudFV0aWxzQ2xpZW50Owog
Y2xhc3MgV2ViTm90aWZpY2F0aW9uQ2xpZW50OwogY2xhc3MgV2ViT3BlblBhbmVsUmVzdWx0TGlz
dGVuZXI7CiBjbGFzcyBXZWJQYWdlR3JvdXBQcm94eTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBkNGVhNmU3YjU4YTBmNjBk
NGM5OTRmMDA5YjBhYTRjZjFjNzAyMjJlLi4xNmRjMzQ1MGIxZWRlYjU1NGViZTM2MDFhYzU4MDUx
M2M5ZDJmZmZmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTUtMDUtMTEgIEd5dXlvdW5nIEtp
bSAgPGd5dXlvdW5nLmtpbUB3ZWJraXQub3JnPgorCisgICAgICAgIFtXSzJdIEFkZCBOYXZpZ2F0
b3IgQ29udGVudCBVdGlscyBBUEkgc3VwcG9ydCBmb3IgV2ViS2l0MgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTI3NDkKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHBsYXRmb3JtL2VmbC9UZXN0RXhwZWN0
YXRpb25zOiBVbnNraXAgbmF2aWdhdG9yIGNvbnRlbnQgdXRpbHMgdGVzdHMuCisKIDIwMTUtMDUt
MTEgIFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBUZXh0IGlzIG1p
c3BsYWNlZCB3aGVuIGN1c3RvbSBmb250IGRvZXMgbm90IGhhdmUgc3BhY2UgZ2x5cGguCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL2VmbC9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGM3YjgwMDRkMjBhMGM5
MzFkNTYxNzY2NTM0ZmRjZDk1ZDFkYmZlNzQuLjhmNzI0YmUxMzJjNTRjZmM1NmRlOWYxNzdmMjEx
YzJjMTA1MDYyMjcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9UZXN0RXhw
ZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9UZXN0RXhwZWN0YXRpb25z
CkBAIC00NzYsOSArNDc2LDYgQEAgQnVnKEVGTCkgZmFzdC9jc3MvbGluZS1oZWlnaHQtZGV0ZXJt
aW5lZC1ieS1wcmltYXJ5LWZvbnQuaHRtbCBbIEZhaWx1cmUgXQogIyBDUkFTSEVTCiAjLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwogCi13ZWJraXQub3JnL2IvOTI3MjYgZmFzdC9kb20v
TmF2aWdhdG9yQ29udGVudFV0aWxzL3JlZ2lzdGVyLXByb3RvY29sLWhhbmRsZXIuaHRtbCBbIENy
YXNoIF0KLXdlYmtpdC5vcmcvYi85MjcyNiBmYXN0L2RvbS9OYXZpZ2F0b3JDb250ZW50VXRpbHMv
dW5yZWdpc3Rlci1wcm90b2NvbC1oYW5kbGVyLmh0bWwgWyBDcmFzaCBdCi0KICMgQ3Jhc2hlcyBv
biBwbHVnaW4gdGVzdCwgYWxzbyBibG9ja2VkIGJ5IDEwODA3Nwogd2Via2l0Lm9yZy9iLzk4NzQ3
IHBsdWdpbnMvZG9jdW1lbnQtb3Blbi5odG1sIFsgQ3Jhc2ggRmFpbHVyZSBUaW1lb3V0IF0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>256069</attachid>
            <date>2015-07-02 21:04:17 -0700</date>
            <delta_ts>2015-08-05 21:49:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-92749-20150703130322.patch</filename>
            <type>text/plain</type>
            <size>42282</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg2MjU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMThlMTRjNWUxMjEyMDA3
ODUxOGQ0MDY5OGNkMjcxNjJhODk4Mzc5Mi4uMWNlZDg5MTAxZDg2M2YwZGFjZmIxNWYwZWM0YWJm
MzkyZWU4ODUzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDE1LTA3LTAyICBHeXV5
b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ad2Via2l0Lm9yZz4KKworICAgICAgICBbV0syXSBBZGQg
TmF2aWdhdG9yIENvbnRlbnQgVXRpbHMgQVBJIHN1cHBvcnQgZm9yIFdlYktpdDIKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkyNzQ5CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBNb2R1bGVzL25hdmlnYXRv
cmNvbnRlbnR1dGlscy9OYXZpZ2F0b3JDb250ZW50VXRpbHNDbGllbnQuaDogQWRkIFdFQkNPUkVf
RVhQT1JUIHRvIHByb3ZpZGVOYXZpZ2F0b3JDb250ZW50VXRpbHNUbygpIGZ1bmN0aW9uLgorCiAy
MDE1LTA3LTAyICBQcnplbWVrIFBpb3Jrb3dza2kgIDxwaW9ya293c2tpcHJ6ZW15c2xhd0BnbWFp
bC5jb20+CiAKICAgICAgICAgW0VGTF0gdGVzdF9ld2syX2FwcGxpY2F0aW9uX2NhY2hlX21hbmFn
ZXIgaGFzIGJlZW4gZmFpbGVkIHNpbmNlIHIxODU1MjcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBhZjIyZTQ0NjJh
NjMyNmFhYTE4M2I1OWM1ZGZmMjBmNmJiNmE0YTYyLi4wMjdjYzgzNDE1YmI1Zjc3ZGI5YmMxMTZi
MTY2ZmVlNmQwODlmZTQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTggQEAKKzIwMTUtMDctMDIg
IEd5dXlvdW5nIEtpbSAgPGd5dXlvdW5nLmtpbUB3ZWJraXQub3JnPgorCisgICAgICAgIFtXSzJd
IEFkZCBOYXZpZ2F0b3IgQ29udGVudCBVdGlscyBBUEkgc3VwcG9ydCBmb3IgV2ViS2l0MgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTI3NDkKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBPcmlnaW5hbCBwYXRj
aCBieSBNaWtoYWlsIFBvemRueWFrb3YgKG1pa2hhaWwucG96ZG55YWtvdkBpbnRlbC5jb20pCisK
KyAgICAgICAgQWRkZWQgc3VwcG9ydCBvZiBOYXZpZ2F0b3IgQ29udGVudCBVdGlscyBBUEkgZm9y
IFdlYktpdDIuIFRoaXMgZmVhdHVyZSBpcworICAgICAgICBzdXBwb3J0ZWQgYnkgQ2hyb21pdW0g
YW5kIE1vemlsbGEgdG9vLiBDdXJyZW50bHkgRUZMIHBvcnQgZW5hYmxlcyB0aGUgZmVhdHVyZS4K
KworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIFNoYXJlZC9BUEkvQVBJT2Jq
ZWN0Lmg6CisgICAgICAgICogU2hhcmVkL0FQSS9jL1dLQmFzZS5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvQy9XS0FQSUNhc3QuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tOYXZp
Z2F0b3JDb250ZW50VXRpbHMuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYk5hdmlnYXRvckNvbnRlbnRVdGlsc0NsaWVudC5oLgorICAg
ICAgICAoV0tOYXZpZ2F0b3JDb250ZW50VXRpbHNHZXRUeXBlSUQpOgorICAgICAgICAoV0tOYXZp
Z2F0b3JDb250ZW50VXRpbHNTZXRQcm92aWRlcik6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9D
L1dLTmF2aWdhdG9yQ29udGVudFV0aWxzLmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm92aWRlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2Vi
S2l0OjpXZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm92aWRlcjo6cmVnaXN0ZXJQcm90b2NvbEhh
bmRsZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm92aWRl
cjo6aXNQcm90b2NvbEhhbmRsZXJSZWdpc3RlcmVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViTmF2
aWdhdG9yQ29udGVudFV0aWxzUHJvdmlkZXI6OnVucmVnaXN0ZXJQcm90b2NvbEhhbmRsZXIpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm92aWRlci5oOiBD
b3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYk5h
dmlnYXRvckNvbnRlbnRVdGlsc0NsaWVudC5oLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJOYXZp
Z2F0b3JDb250ZW50VXRpbHNQcm94eS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJO
YXZpZ2F0b3JDb250ZW50VXRpbHNQcm94eTo6c3VwcGxlbWVudE5hbWUpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm94eTo6Y3JlYXRlKToKKyAgICAgICAgKFdl
YktpdDo6V2ViTmF2aWdhdG9yQ29udGVudFV0aWxzUHJveHk6OldlYk5hdmlnYXRvckNvbnRlbnRV
dGlsc1Byb3h5KToKKyAgICAgICAgKFdlYktpdDo6V2ViTmF2aWdhdG9yQ29udGVudFV0aWxzUHJv
eHk6On5XZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm94eSk6CisgICAgICAgIChXZWJLaXQ6Oldl
Yk5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3h5Ojppbml0aWFsaXplUHJvdmlkZXIpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm94eTo6cmVnaXN0ZXJQcm90b2Nv
bEhhbmRsZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm94
eTo6aXNQcm90b2NvbEhhbmRsZXJSZWdpc3RlcmVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViTmF2
aWdhdG9yQ29udGVudFV0aWxzUHJveHk6OnVucmVnaXN0ZXJQcm90b2NvbEhhbmRsZXIpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm94eTo6cHJvY2Vzc1Bvb2xE
ZXN0cm95ZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm94
eTo6cHJvY2Vzc0RpZENsb3NlKToKKyAgICAgICAgKFdlYktpdDo6V2ViTmF2aWdhdG9yQ29udGVu
dFV0aWxzUHJveHk6OnJlZldlYkNvbnRleHRTdXBwbGVtZW50KToKKyAgICAgICAgKFdlYktpdDo6
V2ViTmF2aWdhdG9yQ29udGVudFV0aWxzUHJveHk6OmRlcmVmV2ViQ29udGV4dFN1cHBsZW1lbnQp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm94eS5oOiBB
ZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViTmF2aWdhdG9yQ29udGVudFV0aWxzUHJveHku
bWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5j
cHA6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmg6CisgICAgICAgICogVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNDbGllbnQuY3BwOiBBZGRlZC4KKyAgICAg
ICAgKFdlYktpdDo6V2ViTmF2aWdhdG9yQ29udGVudFV0aWxzQ2xpZW50OjpyZWdpc3RlclByb3Rv
Y29sSGFuZGxlcik6CisgICAgICAgIChXZWJLaXQ6OnRvQ3VzdG9tSGFuZGxlcnNTdGF0ZSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYk5hdmlnYXRvckNvbnRlbnRVdGlsc0NsaWVudDo6aXNQcm90b2Nv
bEhhbmRsZXJSZWdpc3RlcmVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViTmF2aWdhdG9yQ29udGVu
dFV0aWxzQ2xpZW50Ojp1bnJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyKToKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYk5hdmlnYXRvckNvbnRlbnRVdGlsc0NsaWVudC5oOgor
ICAgICAgICAoV2ViS2l0OjpXZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNDbGllbnQ6OmlzUHJvdG9j
b2xIYW5kbGVyUmVnaXN0ZXJlZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYk5hdmln
YXRvckNvbnRlbnRVdGlsc0NsaWVudDo6dW5yZWdpc3RlclByb3RvY29sSGFuZGxlcik6IERlbGV0
ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlOjpXZWJQYWdlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5oOgorCiAyMDE1LTA3LTAyICBQcnplbWVrIFBpb3Jrb3dza2kgIDxwaW9ya293c2tp
cHJ6ZW15c2xhd0BnbWFpbC5jb20+CiAKICAgICAgICAgW0VGTF0gdGVzdF9ld2syX2FwcGxpY2F0
aW9uX2NhY2hlX21hbmFnZXIgaGFzIGJlZW4gZmFpbGVkIHNpbmNlIHIxODU1MjcKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbmF2aWdhdG9yY29udGVudHV0aWxzL05hdmlnYXRv
ckNvbnRlbnRVdGlsc0NsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9uYXZpZ2F0b3Jj
b250ZW50dXRpbHMvTmF2aWdhdG9yQ29udGVudFV0aWxzQ2xpZW50LmgKaW5kZXggM2E0NjQ0MjRm
Y2Q4OGQyNzk4NzBlNTg0YjJmZjcxYWU5MTI4NDU4MS4uY2QwNTdmYTIyNjAyNzZmYTZjZTM1MDM5
Y2ZlZmMxZjVkNzIxYzkzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9uYXZp
Z2F0b3Jjb250ZW50dXRpbHMvTmF2aWdhdG9yQ29udGVudFV0aWxzQ2xpZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9uYXZpZ2F0b3Jjb250ZW50dXRpbHMvTmF2aWdhdG9yQ29udGVu
dFV0aWxzQ2xpZW50LmgKQEAgLTUyLDcgKzUyLDcgQEAgcHVibGljOgogI2VuZGlmCiB9OwogCi12
b2lkIHByb3ZpZGVOYXZpZ2F0b3JDb250ZW50VXRpbHNUbyhQYWdlKiwgc3RkOjp1bmlxdWVfcHRy
PE5hdmlnYXRvckNvbnRlbnRVdGlsc0NsaWVudD4pOworV0VCQ09SRV9FWFBPUlQgdm9pZCBwcm92
aWRlTmF2aWdhdG9yQ29udGVudFV0aWxzVG8oUGFnZSosIHN0ZDo6dW5pcXVlX3B0cjxOYXZpZ2F0
b3JDb250ZW50VXRpbHNDbGllbnQ+KTsKIAogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0CmluZGV4IDUw
YjE0MjkyZjJhN2NiNTI4OTgwNzk1NzQzMWVkZTcyZDJkNjY5NDAuLmIyZDU4NDM0ZDhmN2ViMGUw
MGFiNmZkZTY4NDA0NDQwMWY0ZWFkYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NNYWtl
TGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0CkBAIC0zNzIsNiAr
MzcyLDggQEAgc2V0KFdlYktpdDJfU09VUkNFUwogICAgIFVJUHJvY2Vzcy9XZWJJbnNwZWN0b3JQ
cm94eS5jcHAKICAgICBVSVByb2Nlc3MvV2ViTWVkaWFDYWNoZU1hbmFnZXJQcm94eS5jcHAKICAg
ICBVSVByb2Nlc3MvV2ViTmF2aWdhdGlvblN0YXRlLmNwcAorICAgIFVJUHJvY2Vzcy9XZWJOYXZp
Z2F0b3JDb250ZW50VXRpbHNQcm92aWRlci5jcHAKKyAgICBVSVByb2Nlc3MvV2ViTmF2aWdhdG9y
Q29udGVudFV0aWxzUHJveHkuY3BwCiAgICAgVUlQcm9jZXNzL1dlYk9wZW5QYW5lbFJlc3VsdExp
c3RlbmVyUHJveHkuY3BwCiAgICAgVUlQcm9jZXNzL1dlYlBhZ2VEaWFnbm9zdGljTG9nZ2luZ0Ns
aWVudC5jcHAKICAgICBVSVByb2Nlc3MvV2ViUGFnZUdyb3VwLmNwcApAQCAtNDI5LDYgKzQzMSw3
IEBAIHNldChXZWJLaXQyX1NPVVJDRVMKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tOYXZpZ2F0aW9u
RGF0YVJlZi5jcHAKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tOYXZpZ2F0aW9uUmVmLmNwcAogICAg
IFVJUHJvY2Vzcy9BUEkvQy9XS05hdmlnYXRpb25SZXNwb25zZVJlZi5jcHAKKyAgICBVSVByb2Nl
c3MvQVBJL0MvV0tOYXZpZ2F0b3JDb250ZW50VXRpbHMuY3BwCiAgICAgVUlQcm9jZXNzL0FQSS9D
L1dLTm90aWZpY2F0aW9uLmNwcAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS05vdGlmaWNhdGlvbk1h
bmFnZXIuY3BwCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLTm90aWZpY2F0aW9uUGVybWlzc2lvblJl
cXVlc3QuY3BwCkBAIC01OTUsNiArNTk4LDcgQEAgc2V0KFdlYktpdDJfU09VUkNFUwogICAgIFdl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCiAgICAgV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNsaWVudC5jcHAKICAgICBXZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5jcHAKKyAgICBXZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYk5hdmlnYXRvckNvbnRlbnRVdGlsc0NsaWVudC5jcHAKICAg
ICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5jcHAKICAg
ICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAKICAg
ICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsdWdJbkNsaWVudC5jcHAKQEAgLTY2MCw2
ICs2NjQsNyBAQCBzZXQoV2ViS2l0Ml9NRVNTQUdFU19JTl9GSUxFUwogICAgIFVJUHJvY2Vzcy9X
ZWJJY29uRGF0YWJhc2UubWVzc2FnZXMuaW4KICAgICBVSVByb2Nlc3MvV2ViSW5zcGVjdG9yUHJv
eHkubWVzc2FnZXMuaW4KICAgICBVSVByb2Nlc3MvV2ViTWVkaWFDYWNoZU1hbmFnZXJQcm94eS5t
ZXNzYWdlcy5pbgorICAgIFVJUHJvY2Vzcy9XZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm94eS5t
ZXNzYWdlcy5pbgogICAgIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KICAgICBV
SVByb2Nlc3MvV2ViUGFzdGVib2FyZFByb3h5Lm1lc3NhZ2VzLmluCiAgICAgVUlQcm9jZXNzL1dl
YlByb2Nlc3NQb29sLm1lc3NhZ2VzLmluCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvQVBJL0FQSU9iamVjdC5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9BUElPYmplY3Qu
aAppbmRleCBlYWVmZmYyNjI1MjMwOGI5NWIwNTcyY2RkMmYyN2VmMDM2ZjJjMGQzLi42MTUwYTQw
ZDUyNTYyNTcyZjY2YmRhNDA3YmU2Yzc5NDA4M2MyOGNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvQVBJL0FQSU9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9B
UEkvQVBJT2JqZWN0LmgKQEAgLTEyNCw2ICsxMjQsNyBAQCBwdWJsaWM6CiAgICAgICAgIE5hdmln
YXRpb25BY3Rpb24sCiAgICAgICAgIE5hdmlnYXRpb25EYXRhLAogICAgICAgICBOYXZpZ2F0aW9u
UmVzcG9uc2UsCisgICAgICAgIE5hdmlnYXRvckNvbnRlbnRVdGlscywKICAgICAgICAgTm90aWZp
Y2F0aW9uLAogICAgICAgICBOb3RpZmljYXRpb25NYW5hZ2VyLAogICAgICAgICBOb3RpZmljYXRp
b25QZXJtaXNzaW9uUmVxdWVzdCwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9B
UEkvYy9XS0Jhc2UuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0Jhc2UuaAppbmRl
eCA1OTI0OWZlMTNiNzBlZGVhNmY2MzY3NTYzMmM4ODE3M2U4ZDMzMzE5Li44ZGUxMjU1NzlmYTVl
ZjgwZTQ2MjliZDU0NzYwN2JhNjNjMjAwNDliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvQVBJL2MvV0tCYXNlLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dL
QmFzZS5oCkBAIC0xMTYsNiArMTE2LDcgQEAgdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tO
YXZpZ2F0aW9uQWN0aW9uKiBXS05hdmlnYXRpb25BY3Rpb25SZWY7CiB0eXBlZGVmIGNvbnN0IHN0
cnVjdCBPcGFxdWVXS05hdmlnYXRpb25EYXRhKiBXS05hdmlnYXRpb25EYXRhUmVmOwogdHlwZWRl
ZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tOYXZpZ2F0aW9uKiBXS05hdmlnYXRpb25SZWY7CiB0eXBl
ZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS05hdmlnYXRpb25SZXNwb25zZSogV0tOYXZpZ2F0aW9u
UmVzcG9uc2VSZWY7Cit0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS05hdmlnYXRvckNvbnRl
bnRVdGlscyogV0tOYXZpZ2F0b3JDb250ZW50VXRpbHNSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVj
dCBPcGFxdWVXS05vdGlmaWNhdGlvbiogV0tOb3RpZmljYXRpb25SZWY7CiB0eXBlZGVmIGNvbnN0
IHN0cnVjdCBPcGFxdWVXS05vdGlmaWNhdGlvbk1hbmFnZXIqIFdLTm90aWZpY2F0aW9uTWFuYWdl
clJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLTm90aWZpY2F0aW9uUGVybWlzc2lv
blJlcXVlc3QqIFdLTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RSZWY7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmggYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgKaW5kZXggOWRjMTU2YzkxNTM5ZWFlMWU2
ZWYzYWI1MTYzYTYxMDJhNTExMTMwMS4uMjc2MjMzNjRjNTczYWViOWRkNWNjYzc2ZjRjY2RjYzJl
YjkxZTdjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQVBJ
Q2FzdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaApA
QCAtOTIsNiArOTIsNyBAQCBjbGFzcyBXZWJIaXRUZXN0UmVzdWx0OwogY2xhc3MgV2ViSWNvbkRh
dGFiYXNlOwogY2xhc3MgV2ViSW5zcGVjdG9yUHJveHk7CiBjbGFzcyBXZWJNZWRpYUNhY2hlTWFu
YWdlclByb3h5OworY2xhc3MgV2ViTmF2aWdhdG9yQ29udGVudFV0aWxzUHJveHk7CiBjbGFzcyBX
ZWJOb3RpZmljYXRpb247CiBjbGFzcyBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHk7CiBjbGFz
cyBXZWJOb3RpZmljYXRpb25Qcm92aWRlcjsKQEAgLTEzNyw2ICsxMzgsNyBAQCBXS19BRERfQVBJ
X01BUFBJTkcoV0tJbnNwZWN0b3JSZWYsIFdlYkluc3BlY3RvclByb3h5KQogV0tfQUREX0FQSV9N
QVBQSU5HKFdLTWVkaWFDYWNoZU1hbmFnZXJSZWYsIFdlYk1lZGlhQ2FjaGVNYW5hZ2VyUHJveHkp
CiBXS19BRERfQVBJX01BUFBJTkcoV0tOYXZpZ2F0aW9uQWN0aW9uUmVmLCBBUEk6Ok5hdmlnYXRp
b25BY3Rpb24pCiBXS19BRERfQVBJX01BUFBJTkcoV0tOYXZpZ2F0aW9uRGF0YVJlZiwgQVBJOjpO
YXZpZ2F0aW9uRGF0YSkKK1dLX0FERF9BUElfTUFQUElORyhXS05hdmlnYXRvckNvbnRlbnRVdGls
c1JlZiwgV2ViTmF2aWdhdG9yQ29udGVudFV0aWxzUHJveHkpCiBXS19BRERfQVBJX01BUFBJTkco
V0tOYXZpZ2F0aW9uUmVmLCBBUEk6Ok5hdmlnYXRpb24pCiBXS19BRERfQVBJX01BUFBJTkcoV0tO
YXZpZ2F0aW9uUmVzcG9uc2VSZWYsIEFQSTo6TmF2aWdhdGlvblJlc3BvbnNlKQogV0tfQUREX0FQ
SV9NQVBQSU5HKFdLTm90aWZpY2F0aW9uTWFuYWdlclJlZiwgV2ViTm90aWZpY2F0aW9uTWFuYWdl
clByb3h5KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLTmF2
aWdhdG9yQ29udGVudFV0aWxzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9X
S05hdmlnYXRvckNvbnRlbnRVdGlscy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTE3YjY4MjQ5YjY2MTZhNTEy
MjBmM2QxZjc4MWJlZDc0OTg4ZWU1MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQy9XS05hdmlnYXRvckNvbnRlbnRVdGlscy5jcHAKQEAgLTAsMCArMSw1
MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IldLTmF2aWdhdG9yQ29udGVudFV0aWxzLmgiCisKKyNpZiBFTkFCTEUoTkFWSUdBVE9SX0NPTlRF
TlRfVVRJTFMpCisjaW5jbHVkZSAiV0tBUElDYXN0LmgiCisjaW5jbHVkZSAiV2ViTmF2aWdhdG9y
Q29udGVudFV0aWxzUHJveHkuaCIKKwordXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKKyNlbmRpZiAv
LyBFTkFCTEUoTkFWSUdBVE9SX0NPTlRFTlRfVVRJTFMpCisKK1dLVHlwZUlEIFdLTmF2aWdhdG9y
Q29udGVudFV0aWxzR2V0VHlwZUlEKCkKK3sKKyNpZiBFTkFCTEUoTkFWSUdBVE9SX0NPTlRFTlRf
VVRJTFMpCisgICAgcmV0dXJuIHRvQVBJKFdlYk5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3h5OjpB
UElUeXBlKTsKKyNlbHNlCisgICAgcmV0dXJuIDA7CisjZW5kaWYKK30KKwordm9pZCBXS05hdmln
YXRvckNvbnRlbnRVdGlsc1NldFByb3ZpZGVyKFdLTmF2aWdhdG9yQ29udGVudFV0aWxzUmVmIHJl
Z2lzdGVyUHJvdG9jb2xIYW5kbGVyUmVmLCBjb25zdCBXS05hdmlnYXRvckNvbnRlbnRVdGlsc1By
b3ZpZGVyQmFzZSogd2tQcm92aWRlcikKK3sKKyNpZiBFTkFCTEUoTkFWSUdBVE9SX0NPTlRFTlRf
VVRJTFMpCisgICAgdG9JbXBsKHJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUmVmKS0+aW5pdGlhbGl6
ZVByb3ZpZGVyKHdrUHJvdmlkZXIpOworI2VuZGlmCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tOYXZpZ2F0b3JDb250ZW50VXRpbHMuaCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS05hdmlnYXRvckNvbnRlbnRVdGlscy5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmZlYmQ1NzU3N2QxNDUyNDQxODg5YWMxYTgyOTE3ZTk4NDkxZTMyYjMKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tOYXZpZ2F0b3JDb250ZW50
VXRpbHMuaApAQCAtMCwwICsxLDcwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEludGVs
IENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdL
TmF2aWdhdG9yQ29udGVudFV0aWxzX2gKKyNkZWZpbmUgV0tOYXZpZ2F0b3JDb250ZW50VXRpbHNf
aAorCisjaW5jbHVkZSA8V2ViS2l0L1dLQmFzZS5oPgorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4
dGVybiAiQyIgeworI2VuZGlmCisKK2VudW0geworICAgIGtXS0N1c3RvbUhhbmRsZXJzTmV3LAor
ICAgIGtXS0N1c3RvbUhhbmRsZXJzUmVnaXN0ZXJlZCwKKyAgICBrV0tDdXN0b21IYW5kbGVyc0Rl
Y2xpbmVkCit9OwordHlwZWRlZiB1aW50MzJfdCBXS0N1c3RvbUhhbmRsZXJzU3RhdGU7CisKK3R5
cGVkZWYgdm9pZCAoKldLTmF2aWdhdG9yQ29udGVudFV0aWxzUHJvdmlkZXJSZWdpc3RlclByb3Rv
Y29sQ2FsbGJhY2spKFdLTmF2aWdhdG9yQ29udGVudFV0aWxzUmVmIHJlZ2lzdGVyUHJvdG9jb2xI
YW5kbGVyUmVmLCBXS1N0cmluZ1JlZiBzY2hlbWUsIFdLU3RyaW5nUmVmIGJhc2VVUkwsIFdLU3Ry
aW5nUmVmIHVybCwgV0tTdHJpbmdSZWYgdGl0bGUsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwor
dHlwZWRlZiBXS0N1c3RvbUhhbmRsZXJzU3RhdGUgKCpXS05hdmlnYXRvckNvbnRlbnRVdGlsc1By
b3ZpZGVySXNQcm90b2NvbFJlZ2lzdGVyZWRDYWxsYmFjaykoV0tOYXZpZ2F0b3JDb250ZW50VXRp
bHNSZWYgcmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJSZWYsIFdLU3RyaW5nUmVmIHNjaGVtZSwgV0tT
dHJpbmdSZWYgYmFzZVVSTCwgV0tTdHJpbmdSZWYgdXJsLCBjb25zdCB2b2lkKiBjbGllbnRJbmZv
KTsKK3R5cGVkZWYgdm9pZCAoKldLTmF2aWdhdG9yQ29udGVudFV0aWxzUHJvdmlkZXJVbnJlZ2lz
dGVyUHJvdG9jb2xDYWxsYmFjaykoV0tOYXZpZ2F0b3JDb250ZW50VXRpbHNSZWYgcmVnaXN0ZXJQ
cm90b2NvbEhhbmRsZXJSZWYsIFdLU3RyaW5nUmVmIHNjaGVtZSwgV0tTdHJpbmdSZWYgYmFzZVVS
TCwgV0tTdHJpbmdSZWYgdXJsLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKKwordHlwZWRlZiBz
dHJ1Y3QgV0tOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm92aWRlckJhc2UgeworICAgIGludCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHZlcnNpb247CisgICAgY29uc3Qgdm9pZCAqICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xpZW50SW5mbzsKK30gV0tOYXZpZ2F0b3JD
b250ZW50VXRpbHNQcm92aWRlckJhc2U7CisKK3R5cGVkZWYgc3RydWN0IFdLTmF2aWdhdG9yQ29u
dGVudFV0aWxzUHJvdmlkZXJWMCB7CisgICAgV0tOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm92aWRl
ckJhc2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhc2U7CisK
KyAgICAvLyBWZXJzaW9uIDAuCisgICAgV0tOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm92aWRlclJl
Z2lzdGVyUHJvdG9jb2xDYWxsYmFjayAgICAgICAgICAgICAgcmVnaXN0ZXJQcm90b2NvbEhhbmRs
ZXI7CisgICAgV0tOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm92aWRlcklzUHJvdG9jb2xSZWdpc3Rl
cmVkQ2FsbGJhY2sgICAgICAgICAgaXNQcm90b2NvbEhhbmRsZXJSZWdpc3RlcmVkOworICAgIFdL
TmF2aWdhdG9yQ29udGVudFV0aWxzUHJvdmlkZXJVbnJlZ2lzdGVyUHJvdG9jb2xDYWxsYmFjayAg
ICAgICAgICAgIHVucmVnaXN0ZXJQcm90b2NvbEhhbmRsZXI7Cit9IFdLTmF2aWdhdG9yQ29udGVu
dFV0aWxzUHJvdmlkZXJWMDsKKworZW51bSB7IGtXS05hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3Zp
ZGVyQ3VycmVudFZlcnNpb24gPSAwIH07CisKK1dLX0VYUE9SVCBXS1R5cGVJRCBXS05hdmlnYXRv
ckNvbnRlbnRVdGlsc0dldFR5cGVJRCgpOworCitXS19FWFBPUlQgdm9pZCBXS05hdmlnYXRvckNv
bnRlbnRVdGlsc1NldFByb3ZpZGVyKFdLTmF2aWdhdG9yQ29udGVudFV0aWxzUmVmIHJlZ2lzdGVy
UHJvdG9jb2xIYW5kbGVyUmVmLCBjb25zdCBXS05hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3ZpZGVy
QmFzZSogcHJvdmlkZXIpOworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorCisjZW5k
aWYgLy8gV0tOYXZpZ2F0b3JDb250ZW50VXRpbHNfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYk5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3ZpZGVyLmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm92aWRlci5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uOWI1OWI1OTJjZGVmNGExMWY4NTI3MTFiMGIwODE3YmY4ZjYzZWU0NQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJOYXZpZ2F0b3JDb250
ZW50VXRpbHNQcm92aWRlci5jcHAKQEAgLTAsMCArMSw2NCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNSBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYk5hdmlnYXRvckNvbnRlbnRVdGls
c1Byb3ZpZGVyLmgiCisKKyNpZiBFTkFCTEUoTkFWSUdBVE9SX0NPTlRFTlRfVVRJTFMpCisKKyNp
bmNsdWRlICJXS0FQSUNhc3QuaCIKKyNpbmNsdWRlICJXZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQ
cm94eS5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKwordm9pZCBXZWJOYXZpZ2F0b3JDb250ZW50
VXRpbHNQcm92aWRlcjo6cmVnaXN0ZXJQcm90b2NvbEhhbmRsZXIoV2ViTmF2aWdhdG9yQ29udGVu
dFV0aWxzUHJveHkqIHByb3h5LCBjb25zdCBTdHJpbmcmIHNjaGVtZSwgY29uc3QgU3RyaW5nJiBi
YXNlVVJMLCBjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgU3RyaW5nJiB0aXRsZSkKK3sKKyAgICBp
ZiAoIW1fY2xpZW50LnJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyKQorICAgICAgICByZXR1cm47CisK
KyAgICBtX2NsaWVudC5yZWdpc3RlclByb3RvY29sSGFuZGxlcih0b0FQSShwcm94eSksIHRvQVBJ
KHNjaGVtZS5pbXBsKCkpLCB0b0FQSShiYXNlVVJMLmltcGwoKSksIHRvQVBJKHVybC5pbXBsKCkp
LCB0b0FQSSh0aXRsZS5pbXBsKCkpLCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOworfQorCisj
aWYgRU5BQkxFKENVU1RPTV9TQ0hFTUVfSEFORExFUikKK3ZvaWQgV2ViTmF2aWdhdG9yQ29udGVu
dFV0aWxzUHJvdmlkZXI6OmlzUHJvdG9jb2xIYW5kbGVyUmVnaXN0ZXJlZChXZWJOYXZpZ2F0b3JD
b250ZW50VXRpbHNQcm94eSogcHJveHksIGNvbnN0IFN0cmluZyYgc2NoZW1lLCBjb25zdCBTdHJp
bmcmIGJhc2VVUkwsIGNvbnN0IFN0cmluZyYgdXJsLCB1aW50MzJfdCYgcmVzdWx0KQoreworICAg
IGlmICghbV9jbGllbnQuaXNQcm90b2NvbEhhbmRsZXJSZWdpc3RlcmVkKQorICAgICAgICByZXR1
cm47CisKKyAgICByZXN1bHQgPSBtX2NsaWVudC5pc1Byb3RvY29sSGFuZGxlclJlZ2lzdGVyZWQo
dG9BUEkocHJveHkpLCB0b0FQSShzY2hlbWUuaW1wbCgpKSwgdG9BUEkoYmFzZVVSTC5pbXBsKCkp
LCB0b0FQSSh1cmwuaW1wbCgpKSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKK30KKwordm9p
ZCBXZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm92aWRlcjo6dW5yZWdpc3RlclByb3RvY29sSGFu
ZGxlcihXZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm94eSogcHJveHksIGNvbnN0IFN0cmluZyYg
c2NoZW1lLCBjb25zdCBTdHJpbmcmIGJhc2VVUkwsIGNvbnN0IFN0cmluZyYgdXJsKQoreworICAg
IGlmICghbV9jbGllbnQudW5yZWdpc3RlclByb3RvY29sSGFuZGxlcikKKyAgICAgICAgcmV0dXJu
OworCisgICAgbV9jbGllbnQudW5yZWdpc3RlclByb3RvY29sSGFuZGxlcih0b0FQSShwcm94eSks
IHRvQVBJKHNjaGVtZS5pbXBsKCkpLCB0b0FQSShiYXNlVVJMLmltcGwoKSksIHRvQVBJKHVybC5p
bXBsKCkpLCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOworfQorI2VuZGlmIC8vIEVOQUJMRShD
VVNUT01fU0NIRU1FX0hBTkRMRVIpCisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYg
Ly8gRU5BQkxFKE5BVklHQVRPUl9DT05URU5UX1VUSUxTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYk5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3ZpZGVyLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTmF2aWdhdG9yQ29udGVudFV0aWxzUHJvdmlkZXIuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi42YzViNjMxZTRmYzRkMzk0YzEwYTIwYzA2NGRjMThhN2FjYjNhNTRhCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk5hdmlnYXRvckNvbnRl
bnRVdGlsc1Byb3ZpZGVyLmgKQEAgLTAsMCArMSw1OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxNSBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2lmbmRlZiBXZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm92aWRlcl9oCisjZGVmaW5lIFdlYk5h
dmlnYXRvckNvbnRlbnRVdGlsc1Byb3ZpZGVyX2gKKworI2lmIEVOQUJMRShOQVZJR0FUT1JfQ09O
VEVOVF9VVElMUykKKworI2luY2x1ZGUgIkFQSUNsaWVudC5oIgorI2luY2x1ZGUgIldLTmF2aWdh
dG9yQ29udGVudFV0aWxzLmgiCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKyNpbmNsdWRlIDx3
dGYvUmVmQ291bnRlZC5oPgorCituYW1lc3BhY2UgQVBJIHsKK3RlbXBsYXRlPD4gc3RydWN0IENs
aWVudFRyYWl0czxXS05hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3ZpZGVyQmFzZT4geworICAgIHR5
cGVkZWYgc3RkOjp0dXBsZTxXS05hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3ZpZGVyVjA+IFZlcnNp
b25zOworfTsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYk5hdmlnYXRvckNv
bnRlbnRVdGlsc1Byb3h5OworCitjbGFzcyBXZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm92aWRl
ciA6IHB1YmxpYyBBUEk6OkNsaWVudDxXS05hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3ZpZGVyQmFz
ZT4geworcHVibGljOgorICAgIHZvaWQgcmVnaXN0ZXJQcm90b2NvbEhhbmRsZXIoV2ViTmF2aWdh
dG9yQ29udGVudFV0aWxzUHJveHkqLCBjb25zdCBTdHJpbmcmIHNjaGVtZSwgY29uc3QgU3RyaW5n
JiBiYXNlVVJMLCBjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgU3RyaW5nJiB0aXRsZSk7CisKKyNp
ZiBFTkFCTEUoQ1VTVE9NX1NDSEVNRV9IQU5ETEVSKQorICAgIHZvaWQgaXNQcm90b2NvbEhhbmRs
ZXJSZWdpc3RlcmVkKFdlYk5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3h5KiwgY29uc3QgU3RyaW5n
JiBzY2hlbWUsIGNvbnN0IFN0cmluZyYgYmFzZVVSTCwgY29uc3QgU3RyaW5nJiB1cmwsIHVpbnQz
Ml90JiByZXN1bHQpOworICAgIHZvaWQgdW5yZWdpc3RlclByb3RvY29sSGFuZGxlcihXZWJOYXZp
Z2F0b3JDb250ZW50VXRpbHNQcm94eSosIGNvbnN0IFN0cmluZyYgc2NoZW1lLCBjb25zdCBTdHJp
bmcmIGJhc2VVUkwsIGNvbnN0IFN0cmluZyYgdXJsKTsKKyNlbmRpZiAvLyBFTkFCTEUoQ1VTVE9N
X1NDSEVNRV9IQU5ETEVSKQorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAv
LyBFTkFCTEUoTkFWSUdBVE9SX0NPTlRFTlRfVVRJTFMpCisjZW5kaWYgLy8gV2ViTmF2aWdhdG9y
Q29udGVudFV0aWxzUHJvdmlkZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYk5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm94eS5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2Q5
YTM2ZTcyN2NlYTE5MjBiZjc0NGE3YWI0MjhiM2U3MGMzMmEzMAotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm94eS5j
cHAKQEAgLTAsMCArMSw5OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBJbnRlbCBDb3Jw
b3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNSBTYW1z
dW5nIEVsZWN0cm9uaWNzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViTmF2aWdhdG9yQ29udGVudFV0aWxzUHJveHkuaCIK
KworI2lmIEVOQUJMRShOQVZJR0FUT1JfQ09OVEVOVF9VVElMUykKKworI2luY2x1ZGUgIldlYk5h
dmlnYXRvckNvbnRlbnRVdGlsc1Byb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNz
UG9vbC5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY29uc3QgY2hhciogV2ViTmF2aWdhdG9y
Q29udGVudFV0aWxzUHJveHk6OnN1cHBsZW1lbnROYW1lKCkKK3sKKyAgICByZXR1cm4gIldlYk5h
dmlnYXRvckNvbnRlbnRVdGlsc1Byb3h5IjsKK30KKworUGFzc1JlZlB0cjxXZWJOYXZpZ2F0b3JD
b250ZW50VXRpbHNQcm94eT4gV2ViTmF2aWdhdG9yQ29udGVudFV0aWxzUHJveHk6OmNyZWF0ZShX
ZWJQcm9jZXNzUG9vbCogcHJvY2Vzc1Bvb2wpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBX
ZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm94eShwcm9jZXNzUG9vbCkpOworfQorCitXZWJOYXZp
Z2F0b3JDb250ZW50VXRpbHNQcm94eTo6V2ViTmF2aWdhdG9yQ29udGVudFV0aWxzUHJveHkoV2Vi
UHJvY2Vzc1Bvb2wqIHByb2Nlc3NQb29sKQorICAgIDogV2ViQ29udGV4dFN1cHBsZW1lbnQocHJv
Y2Vzc1Bvb2wpCit7Cit9CisKK1dlYk5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3h5Ojp+V2ViTmF2
aWdhdG9yQ29udGVudFV0aWxzUHJveHkoKQoreworfQorCit2b2lkIFdlYk5hdmlnYXRvckNvbnRl
bnRVdGlsc1Byb3h5Ojppbml0aWFsaXplUHJvdmlkZXIoY29uc3QgV0tOYXZpZ2F0b3JDb250ZW50
VXRpbHNQcm92aWRlckJhc2UqIHByb3ZpZGVyKQoreworICAgIG1fcHJvdmlkZXIuaW5pdGlhbGl6
ZShwcm92aWRlcik7Cit9CisKK3ZvaWQgV2ViTmF2aWdhdG9yQ29udGVudFV0aWxzUHJveHk6OnJl
Z2lzdGVyUHJvdG9jb2xIYW5kbGVyKGNvbnN0IFN0cmluZyYgc2NoZW1lLCBjb25zdCBTdHJpbmcm
IGJhc2VVUkwsIGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBTdHJpbmcmIHRpdGxlKQoreworICAg
IG1fcHJvdmlkZXIucmVnaXN0ZXJQcm90b2NvbEhhbmRsZXIodGhpcywgc2NoZW1lLCBiYXNlVVJM
LCB1cmwsIHRpdGxlKTsKK30KKworI2lmIEVOQUJMRShDVVNUT01fU0NIRU1FX0hBTkRMRVIpCit2
b2lkIFdlYk5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3h5Ojppc1Byb3RvY29sSGFuZGxlclJlZ2lz
dGVyZWQoY29uc3QgU3RyaW5nJiBzY2hlbWUsIGNvbnN0IFN0cmluZyYgYmFzZVVSTCwgY29uc3Qg
U3RyaW5nJiB1cmwsIHVpbnQzMl90JiByZXN1bHQpCit7CisgICAgbV9wcm92aWRlci5pc1Byb3Rv
Y29sSGFuZGxlclJlZ2lzdGVyZWQodGhpcywgc2NoZW1lLCBiYXNlVVJMLCB1cmwsIHJlc3VsdCk7
Cit9CisKK3ZvaWQgV2ViTmF2aWdhdG9yQ29udGVudFV0aWxzUHJveHk6OnVucmVnaXN0ZXJQcm90
b2NvbEhhbmRsZXIoY29uc3QgU3RyaW5nJiBzY2hlbWUsIGNvbnN0IFN0cmluZyYgYmFzZVVSTCwg
Y29uc3QgU3RyaW5nJiB1cmwpCit7CisgICAgbV9wcm92aWRlci51bnJlZ2lzdGVyUHJvdG9jb2xI
YW5kbGVyKHRoaXMsIHNjaGVtZSwgYmFzZVVSTCwgdXJsKTsKK30KKyNlbmRpZiAvLyBFTkFCTEUo
Q1VTVE9NX1NDSEVNRV9IQU5ETEVSKQorCisvLyBXZWJDb250ZXh0U3VwcGxlbWVudAordm9pZCBX
ZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm94eTo6cHJvY2Vzc1Bvb2xEZXN0cm95ZWQoKQorewor
fQorCit2b2lkIFdlYk5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3h5Ojpwcm9jZXNzRGlkQ2xvc2Uo
V2ViUHJvY2Vzc1Byb3h5KikKK3sKK30KKwordm9pZCBXZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQ
cm94eTo6cmVmV2ViQ29udGV4dFN1cHBsZW1lbnQoKQoreworICAgIEFQSTo6T2JqZWN0OjpyZWYo
KTsKK30KKwordm9pZCBXZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm94eTo6ZGVyZWZXZWJDb250
ZXh0U3VwcGxlbWVudCgpCit7CisgICAgQVBJOjpPYmplY3Q6OmRlcmVmKCk7Cit9Cit9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShOQVZJR0FUT1JfQ09OVEVOVF9VVElM
UykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJOYXZpZ2F0b3JDb250
ZW50VXRpbHNQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk5hdmlnYXRvckNv
bnRlbnRVdGlsc1Byb3h5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWIxNDY5MWNhNDhmODlmM2IxNGUwYTE5ODgz
OTg4NDI2MzRhYWM3ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm94eS5oCkBAIC0wLDAgKzEsODEgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTUgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgU2Ftc3VuZyBFbGVjdHJvbmljcy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQ
cm94eV9oCisjZGVmaW5lIFdlYk5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3h5X2gKKworI2lmIEVO
QUJMRShOQVZJR0FUT1JfQ09OVEVOVF9VVElMUykKKworI2luY2x1ZGUgIkFQSU9iamVjdC5oIgor
I2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKKyNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKKyNp
bmNsdWRlICJXZWJDb250ZXh0U3VwcGxlbWVudC5oIgorI2luY2x1ZGUgIldlYk5hdmlnYXRvckNv
bnRlbnRVdGlsc1Byb3ZpZGVyLmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJQ
cm9jZXNzUG9vbDsKK2NsYXNzIFdlYlByb2Nlc3NQcm94eTsKKworY2xhc3MgV2ViTmF2aWdhdG9y
Q29udGVudFV0aWxzUHJveHkgOiBwdWJsaWMgQVBJOjpPYmplY3RJbXBsPEFQSTo6T2JqZWN0OjpU
eXBlOjpOYXZpZ2F0b3JDb250ZW50VXRpbHM+LCBwdWJsaWMgV2ViQ29udGV4dFN1cHBsZW1lbnQs
IHB1YmxpYyBJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7CitwdWJsaWM6CisgICAgc3RhdGljIGNvbnN0
IGNoYXIqIHN1cHBsZW1lbnROYW1lKCk7CisKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJOYXZp
Z2F0b3JDb250ZW50VXRpbHNQcm94eT4gY3JlYXRlKFdlYlByb2Nlc3NQb29sKik7CisgICAgdmly
dHVhbCB+V2ViTmF2aWdhdG9yQ29udGVudFV0aWxzUHJveHkoKTsKKworICAgIHZvaWQgaW5pdGlh
bGl6ZVByb3ZpZGVyKGNvbnN0IFdLTmF2aWdhdG9yQ29udGVudFV0aWxzUHJvdmlkZXJCYXNlKik7
CisKKyAgICB1c2luZyBBUEk6Ok9iamVjdDo6cmVmOworICAgIHVzaW5nIEFQSTo6T2JqZWN0Ojpk
ZXJlZjsKKworcHJpdmF0ZToKKyAgICBleHBsaWNpdCBXZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQ
cm94eShXZWJQcm9jZXNzUG9vbCopOworCisgICAgLy8gV2ViQ29udGV4dFN1cHBsZW1lbnQKKyAg
ICB2aXJ0dWFsIHZvaWQgcHJvY2Vzc1Bvb2xEZXN0cm95ZWQoKSBvdmVycmlkZTsKKyAgICB2aXJ0
dWFsIHZvaWQgcHJvY2Vzc0RpZENsb3NlKFdlYlByb2Nlc3NQcm94eSopIG92ZXJyaWRlOworICAg
IHZpcnR1YWwgdm9pZCByZWZXZWJDb250ZXh0U3VwcGxlbWVudCgpIG92ZXJyaWRlOworICAgIHZp
cnR1YWwgdm9pZCBkZXJlZldlYkNvbnRleHRTdXBwbGVtZW50KCkgb3ZlcnJpZGU7CisKKyAgICAv
LyBQQzo6TWVzc2FnZVJlY2VpdmVyCisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdl
KElQQzo6Q29ubmVjdGlvbiYsIElQQzo6TWVzc2FnZURlY29kZXImKSBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6
TWVzc2FnZURlY29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpNZXNzYWdlRW5jb2Rlcj4mKSBv
dmVycmlkZTsKKworICAgIHZvaWQgcmVnaXN0ZXJQcm90b2NvbEhhbmRsZXIoY29uc3QgU3RyaW5n
JiBzY2hlbWUsIGNvbnN0IFN0cmluZyYgYmFzZVVSTCwgY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0
IFN0cmluZyYgdGl0bGUpOworI2lmIEVOQUJMRShDVVNUT01fU0NIRU1FX0hBTkRMRVIpCisgICAg
dm9pZCBpc1Byb3RvY29sSGFuZGxlclJlZ2lzdGVyZWQoY29uc3QgU3RyaW5nJiBzY2hlbWUsIGNv
bnN0IFN0cmluZyYgYmFzZVVSTCwgY29uc3QgU3RyaW5nJiB1cmwsIHVpbnQzMl90JiByZXN1bHQp
OworICAgIHZvaWQgdW5yZWdpc3RlclByb3RvY29sSGFuZGxlcihjb25zdCBTdHJpbmcmIHNjaGVt
ZSwgY29uc3QgU3RyaW5nJiBiYXNlVVJMLCBjb25zdCBTdHJpbmcmIHVybCk7CisjZW5kaWYgLy8g
RU5BQkxFKENVU1RPTV9TQ0hFTUVfSEFORExFUikKKworICAgIFdlYk5hdmlnYXRvckNvbnRlbnRV
dGlsc1Byb3ZpZGVyIG1fcHJvdmlkZXI7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKwor
I2VuZGlmIC8vIEVOQUJMRShOQVZJR0FUT1JfQ09OVEVOVF9VVElMUykKKworI2VuZGlmIC8vIFdl
Yk5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3h5X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm94eS5tZXNzYWdlcy5pbiBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm94eS5tZXNz
YWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5hODAzMzcyZjg2MTgyYjBmYjc3ZjBjMTIzZTIzZmRkNjU0ZDE2
ZDY3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk5hdmln
YXRvckNvbnRlbnRVdGlsc1Byb3h5Lm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMzMgQEAKKyMgQ29w
eXJpZ2h0IChDKSAyMDE1IEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
IworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisjIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorIyBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUgorIyBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorIyBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LAorIyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisjaWYgRU5BQkxFKE5B
VklHQVRPUl9DT05URU5UX1VUSUxTKQorCittZXNzYWdlcyAtPiBXZWJOYXZpZ2F0b3JDb250ZW50
VXRpbHNQcm94eSB7CisgICAgUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXIoU3RyaW5nIHNjaGVtZSwg
U3RyaW5nIGJhc2VVUkwsIFN0cmluZyB1cmwsIFN0cmluZyB0aXRsZSkKKyNpZiBFTkFCTEUoQ1VT
VE9NX1NDSEVNRV9IQU5ETEVSKQorICAgIElzUHJvdG9jb2xIYW5kbGVyUmVnaXN0ZXJlZChTdHJp
bmcgc2NoZW1lLCBTdHJpbmcgYmFzZVVSTCwgU3RyaW5nIHVybCkgLT4gKHVpbnQzMl90IHJlc3Vs
dCkKKyAgICBVbnJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyKFN0cmluZyBzY2hlbWUsIFN0cmluZyBi
YXNlVVJMLCBTdHJpbmcgdXJsKQorI2VuZGlmIC8vIEVOQUJMRShDVVNUT01fU0NIRU1FX0hBTkRM
RVIpCit9CisKKyNlbmRpZiAvLyBFTkFCTEUoTkFWSUdBVE9SX0NPTlRFTlRfVVRJTFMpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAppbmRleCBmYzExOGY1MDE2
ZGU4MTdmN2Y4MWU2ZjdiNGNmMDNhZjkwODUxNDlhLi4xMjFlMWY1MzVkZmQzYjQwODYwMThhYjY1
MjVkNjMwZWQ4ZDYzMTJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Bvb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNz
UG9vbC5jcHAKQEAgLTgzLDYgKzgzLDEwIEBACiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NQcm94
eS5oIgogI2VuZGlmCiAKKyNpZiBFTkFCTEUoTkFWSUdBVE9SX0NPTlRFTlRfVVRJTFMpCisjaW5j
bHVkZSAiV2ViTmF2aWdhdG9yQ29udGVudFV0aWxzUHJveHkuaCIKKyNlbmRpZgorCiAjaWYgRU5B
QkxFKFNFUlZJQ0VfQ09OVFJPTFMpCiAjaW5jbHVkZSAiU2VydmljZXNDb250cm9sbGVyLmgiCiAj
ZW5kaWYKQEAgLTE4NSw2ICsxODksOSBAQCBXZWJQcm9jZXNzUG9vbDo6V2ViUHJvY2Vzc1Bvb2wo
QVBJOjpQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24mIGNvbmZpZ3VyYXRpb24pCiAgICAgYWRkU3Vw
cGxlbWVudDxXZWJNZWRpYUNhY2hlTWFuYWdlclByb3h5PigpOwogICAgIGFkZFN1cHBsZW1lbnQ8
V2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5PigpOwogICAgIGFkZFN1cHBsZW1lbnQ8V2ViRGF0
YWJhc2VNYW5hZ2VyUHJveHk+KCk7CisjaWYgRU5BQkxFKE5BVklHQVRPUl9DT05URU5UX1VUSUxT
KQorICAgIGFkZFN1cHBsZW1lbnQ8V2ViTmF2aWdhdG9yQ29udGVudFV0aWxzUHJveHk+KCk7Cisj
ZW5kaWYKICNpZiBVU0UoU09VUCkKICAgICBhZGRTdXBwbGVtZW50PFdlYlNvdXBDdXN0b21Qcm90
b2NvbFJlcXVlc3RNYW5hZ2VyPigpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJQcm9jZXNzUG9vbC5oCmluZGV4IGM2ZTQ3NmVlZjA0ZmI2ZDJkMGU1ZDU0YWI0MDc5MmFlZWRi
ZWFjNDEuLmIyMTQzYjVhMzhiMGNkMDYxM2YzOWJhZWFkOTRiOWFiNTE1Y2M5ZTQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCkBAIC04Nyw2ICs4NywxMCBAQCBz
dHJ1Y3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczsKICAgICAKIHR5cGVkZWYgR2VuZXJp
Y0NhbGxiYWNrPEFQSTo6RGljdGlvbmFyeSo+IERpY3Rpb25hcnlDYWxsYmFjazsKIAorI2lmIEVO
QUJMRShOQVZJR0FUT1JfQ09OVEVOVF9VVElMUykKK2NsYXNzIFdlYk5hdmlnYXRvckNvbnRlbnRV
dGlsc1Byb3h5OworI2VuZGlmCisKICNpZiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQogc3RydWN0
IE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOwogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCmluZGV4IDBmYjBiMDNmOGE5YjcxNjlj
NWY5OTYyMTJhMjM4ZWNmYWIwYzlmN2MuLjI2ZTc4OGIxMWQ0MDcyNDE0OTMyMTk5MDA0OTg1YmFk
ZTRjMDA0YWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNz
UHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHku
Y3BwCkBAIC00MSw2ICs0MSw3IEBACiAjaW5jbHVkZSAiV2ViSWNvbkRhdGFiYXNlLmgiCiAjaW5j
bHVkZSAiV2ViSW5zcGVjdG9yUHJveHkuaCIKICNpbmNsdWRlICJXZWJOYXZpZ2F0aW9uRGF0YVN0
b3JlLmgiCisjaW5jbHVkZSAiV2ViTmF2aWdhdG9yQ29udGVudFV0aWxzUHJveHkuaCIKICNpbmNs
dWRlICJXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuaCIKICNpbmNsdWRlICJXZWJQYWdlR3Jv
dXAuaCIKICNpbmNsdWRlICJXZWJQYWdlUHJveHkuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTmF2aWdhdG9yQ29udGVudFV0aWxzQ2xp
ZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTmF2
aWdhdG9yQ29udGVudFV0aWxzQ2xpZW50LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xODg3ZDhhNDI2ZGFmMDJj
ZjY3Mjc5NjBlNzM5MDkwM2M3NGVjZWE3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNDbGll
bnQuY3BwCkBAIC0wLDAgKzEsNzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgSW50ZWwg
Q29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUg
U2Ftc3VuZyBFbGVjdHJvbmljcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYk5hdmlnYXRvckNvbnRlbnRVdGlsc0NsaWVu
dC5oIgorCisjaWYgRU5BQkxFKE5BVklHQVRPUl9DT05URU5UX1VUSUxTKQorCisjaW5jbHVkZSAi
V2ViTmF2aWdhdG9yQ29udGVudFV0aWxzUHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYlBy
b2Nlc3MuaCIKKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Cit1c2luZyBuYW1lc3BhY2UgTWVz
c2FnZXM6OldlYk5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3h5OworCituYW1lc3BhY2UgV2ViS2l0
IHsKKwordm9pZCBXZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNDbGllbnQ6OnJlZ2lzdGVyUHJvdG9j
b2xIYW5kbGVyKGNvbnN0IFN0cmluZyYgc2NoZW1lLCBjb25zdCBVUkwmIGJhc2VVUkwsIGNvbnN0
IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHRpdGxlKQorCit7CisgICAgV2ViUHJvY2Vzczo6c2lu
Z2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChSZWdpc3RlclByb3RvY29s
SGFuZGxlcihzY2hlbWUsIGJhc2VVUkwsIHVybCwgdGl0bGUpLCAwKTsKK30KKworI2lmIEVOQUJM
RShDVVNUT01fU0NIRU1FX0hBTkRMRVIpCitzdGF0aWMgaW5saW5lIE5hdmlnYXRvckNvbnRlbnRV
dGlsc0NsaWVudDo6Q3VzdG9tSGFuZGxlcnNTdGF0ZSB0b0N1c3RvbUhhbmRsZXJzU3RhdGUoY29u
c3QgdWludDMyX3Qgc3RhdGUpCit7CisgICAgc3dpdGNoIChzdGF0ZSkgeworICAgIGNhc2UgTmF2
aWdhdG9yQ29udGVudFV0aWxzQ2xpZW50OjpDdXN0b21IYW5kbGVyc05ldzoKKyAgICBjYXNlIE5h
dmlnYXRvckNvbnRlbnRVdGlsc0NsaWVudDo6Q3VzdG9tSGFuZGxlcnNSZWdpc3RlcmVkOgorICAg
IGNhc2UgTmF2aWdhdG9yQ29udGVudFV0aWxzQ2xpZW50OjpDdXN0b21IYW5kbGVyc0RlY2xpbmVk
OgorICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8TmF2aWdhdG9yQ29udGVudFV0aWxzQ2xpZW50
OjpDdXN0b21IYW5kbGVyc1N0YXRlPihzdGF0ZSk7CisgICAgZGVmYXVsdDoKKyAgICAgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiBOYXZpZ2F0b3JDb250ZW50VXRpbHND
bGllbnQ6OkN1c3RvbUhhbmRsZXJzRGVjbGluZWQ7CisgICAgfQorfQorCitOYXZpZ2F0b3JDb250
ZW50VXRpbHNDbGllbnQ6OkN1c3RvbUhhbmRsZXJzU3RhdGUgV2ViTmF2aWdhdG9yQ29udGVudFV0
aWxzQ2xpZW50Ojppc1Byb3RvY29sSGFuZGxlclJlZ2lzdGVyZWQoY29uc3QgU3RyaW5nJiBzY2hl
bWUsIGNvbnN0IFVSTCYgYmFzZVVSTCwgY29uc3QgVVJMJiB1cmwpCit7CisgICAgdWludDMyX3Qg
cmVzdWx0ID0gc3RhdGljX2Nhc3Q8dWludDMyX3Q+KE5hdmlnYXRvckNvbnRlbnRVdGlsc0NsaWVu
dDo6Q3VzdG9tSGFuZGxlcnNOZXcpOworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVu
dFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmRTeW5jKElzUHJvdG9jb2xIYW5kbGVyUmVnaXN0ZXJl
ZChzY2hlbWUsIGJhc2VVUkwsIHVybCksIElzUHJvdG9jb2xIYW5kbGVyUmVnaXN0ZXJlZDo6UmVw
bHkocmVzdWx0KSwgMCk7CisgICAgcmV0dXJuIHRvQ3VzdG9tSGFuZGxlcnNTdGF0ZShyZXN1bHQp
OworfQorCit2b2lkIFdlYk5hdmlnYXRvckNvbnRlbnRVdGlsc0NsaWVudDo6dW5yZWdpc3RlclBy
b3RvY29sSGFuZGxlcihjb25zdCBTdHJpbmcmIHNjaGVtZSwgY29uc3QgVVJMJiBiYXNlVVJMLCBj
b25zdCBVUkwmIHVybCkKK3sKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9j
ZXNzQ29ubmVjdGlvbigpLT5zZW5kKFVucmVnaXN0ZXJQcm90b2NvbEhhbmRsZXIoc2NoZW1lLCBi
YXNlVVJMLCB1cmwpLCAwKTsKK30KKyNlbmRpZiAvLyBFTkFCTEUoQ1VTVE9NX1NDSEVNRV9IQU5E
TEVSKQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShOQVZJR0FU
T1JfQ09OVEVOVF9VVElMUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViTmF2aWdhdG9yQ29udGVudFV0aWxzQ2xpZW50LmggYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYk5hdmlnYXRvckNvbnRlbnRVdGls
c0NsaWVudC5oCmluZGV4IDVjMzU3NmRiNDIyNjUzZjcxODFkZGYxZWQ5YTcxOGE0MmE0MTU0YjAu
LjQ3YTBlZjY3MjYwMzQ2NmRhYTJlNzk4NDhmNDkzMjNhYWIyYTM1ZmMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTmF2aWdhdG9yQ29udGVu
dFV0aWxzQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNDbGllbnQuaApAQCAtMzEsMTggKzMxLDE5IEBA
CiAjaW5jbHVkZSA8V2ViQ29yZS9OYXZpZ2F0b3JDb250ZW50VXRpbHNDbGllbnQuaD4KICNpbmNs
dWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisK
IG5hbWVzcGFjZSBXZWJLaXQgewogCi1jbGFzcyBXZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNDbGll
bnQgOiBwdWJsaWMgV2ViQ29yZTo6TmF2aWdhdG9yQ29udGVudFV0aWxzQ2xpZW50IHsKK2NsYXNz
IFdlYk5hdmlnYXRvckNvbnRlbnRVdGlsc0NsaWVudCBmaW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpO
YXZpZ2F0b3JDb250ZW50VXRpbHNDbGllbnQgewogcHVibGljOgorICAgIFdlYk5hdmlnYXRvckNv
bnRlbnRVdGlsc0NsaWVudCgpIHsgfQogICAgIHZpcnR1YWwgfldlYk5hdmlnYXRvckNvbnRlbnRV
dGlsc0NsaWVudCgpIHsgfQogCi1wcml2YXRlOgotICAgIHZpcnR1YWwgdm9pZCByZWdpc3RlclBy
b3RvY29sSGFuZGxlcihjb25zdCBTdHJpbmcmIHNjaGVtZSwgY29uc3QgVVJMJiBiYXNlVVJMLCBj
b25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiB0aXRsZSkgb3ZlcnJpZGUgeyB9Ci0KKyAgICB2
aXJ0dWFsIHZvaWQgcmVnaXN0ZXJQcm90b2NvbEhhbmRsZXIoY29uc3QgU3RyaW5nJiBzY2hlbWUs
IGNvbnN0IFVSTCYgYmFzZVVSTCwgY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiB0aXRsZSkgb3Zl
cnJpZGU7CiAjaWYgRU5BQkxFKENVU1RPTV9TQ0hFTUVfSEFORExFUikKLSAgICB2aXJ0dWFsIEN1
c3RvbUhhbmRsZXJzU3RhdGUgaXNQcm90b2NvbEhhbmRsZXJSZWdpc3RlcmVkKGNvbnN0IFN0cmlu
ZyYsIGNvbnN0IFVSTCYsIGNvbnN0IFVSTCYpIHsgcmV0dXJuIEN1c3RvbUhhbmRsZXJzRGVjbGlu
ZWQ7IH0KLSAgICB2aXJ0dWFsIHZvaWQgdW5yZWdpc3RlclByb3RvY29sSGFuZGxlcihjb25zdCBT
dHJpbmcmLCBjb25zdCBVUkwmLCBjb25zdCBVUkwmKSB7IH0KKyAgICB2aXJ0dWFsIEN1c3RvbUhh
bmRsZXJzU3RhdGUgaXNQcm90b2NvbEhhbmRsZXJSZWdpc3RlcmVkKGNvbnN0IFN0cmluZyYsIGNv
bnN0IFVSTCYsIGNvbnN0IFVSTCYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCB1bnJlZ2lz
dGVyUHJvdG9jb2xIYW5kbGVyKGNvbnN0IFN0cmluZyYsIGNvbnN0IFVSTCYsIGNvbnN0IFVSTCYp
IG92ZXJyaWRlOwogI2VuZGlmCiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggMTU1NGRiY2Y3NDk2Yzc2ZDk3MjAzM2I4ZDM5MTM2NGFi
NmZlMWViOC4uMWM3OGQwMDRhY2NkOTM3N2Y3YjgzYzIwMTY3MTVjNmJiM2ZmZDBiOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtMTc5LDYg
KzE3OSwxMCBAQAogI2luY2x1ZGUgIldlYkJhdHRlcnlDbGllbnQuaCIKICNlbmRpZgogCisjaWYg
RU5BQkxFKE5BVklHQVRPUl9DT05URU5UX1VUSUxTKQorI2luY2x1ZGUgIldlYk5hdmlnYXRvckNv
bnRlbnRVdGlsc0NsaWVudC5oIgorI2VuZGlmCisKICNpZiBFTkFCTEUoVklCUkFUSU9OKQogI2lu
Y2x1ZGUgIldlYlZpYnJhdGlvbkNsaWVudC5oIgogI2VuZGlmCkBAIC00MDMsNiArNDA3LDkgQEAg
V2ViUGFnZTo6V2ViUGFnZSh1aW50NjRfdCBwYWdlSUQsIGNvbnN0IFdlYlBhZ2VDcmVhdGlvblBh
cmFtZXRlcnMmIHBhcmFtZXRlcnMpCiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpIHx8IEVOQUJM
RShMRUdBQ1lfTk9USUZJQ0FUSU9OUykKICAgICBXZWJDb3JlOjpwcm92aWRlTm90aWZpY2F0aW9u
KG1fcGFnZS5nZXQoKSwgbmV3IFdlYk5vdGlmaWNhdGlvbkNsaWVudCh0aGlzKSk7CiAjZW5kaWYK
KyNpZiBFTkFCTEUoTkFWSUdBVE9SX0NPTlRFTlRfVVRJTFMpCisgICAgV2ViQ29yZTo6cHJvdmlk
ZU5hdmlnYXRvckNvbnRlbnRVdGlsc1RvKG1fcGFnZS5nZXQoKSwgc3RkOjptYWtlX3VuaXF1ZTxX
ZWJLaXQ6OldlYk5hdmlnYXRvckNvbnRlbnRVdGlsc0NsaWVudD4oKSk7CisjZW5kaWYKICNpZiBF
TkFCTEUoVklCUkFUSU9OKQogICAgIFdlYkNvcmU6OnByb3ZpZGVWaWJyYXRpb25UbyhtX3BhZ2Uu
Z2V0KCksIG5ldyBXZWJWaWJyYXRpb25DbGllbnQodGhpcykpOwogI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCAxMDMyYzg5YmU1OGIyYWRj
MmVmZmE1NDEzYzE2ZTZlNzA2MWM5M2UwLi41YWViNTliZDU0Y2IwZTdhNWQzOGNlYmFiYjUyNDVl
MzVhOGM1ZjFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmgKQEAgLTE2MSw2ICsxNjEsNyBAQCBjbGFzcyBXZWJJbnNwZWN0b3JDbGllbnQ7CiBjbGFzcyBX
ZWJJbnNwZWN0b3JVSTsKIGNsYXNzIFdlYktleWJvYXJkRXZlbnQ7CiBjbGFzcyBXZWJNb3VzZUV2
ZW50OworY2xhc3MgV2ViTmF2aWdhdG9yQ29udGVudFV0aWxzQ2xpZW50OwogY2xhc3MgV2ViTm90
aWZpY2F0aW9uQ2xpZW50OwogY2xhc3MgV2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXI7CiBjbGFz
cyBXZWJQYWdlR3JvdXBQcm94eTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBhYmIxOTFmZTZiODRhZjVjYWM2M2QyMWQ3ZjRk
OTk3ZDU0NmNhZjViLi45M2FmYTY5NTFhYTJhZTg2NTE1YjFhZTYzMjg3ODFlMGJjODY1NTY0IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTUtMDctMDIgIEd5dXlvdW5nIEtpbSAgPGd5dXlvdW5n
LmtpbUB3ZWJraXQub3JnPgorCisgICAgICAgIFtXSzJdIEFkZCBOYXZpZ2F0b3IgQ29udGVudCBV
dGlscyBBUEkgc3VwcG9ydCBmb3IgV2ViS2l0MgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTI3NDkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIHBsYXRmb3JtL2VmbC9UZXN0RXhwZWN0YXRpb25zOiBVbnNr
aXAgbmF2aWdhdG9yIGNvbnRlbnQgdXRpbHMgdGVzdHMuCisKIDIwMTUtMDctMDIgIFNhYW0gYmFy
YXRpICA8c2FhbWJhcmF0aTFAZ21haWwuY29tPgogCiAgICAgICAgIFJlbmFtZSAiRGVjb25zdHJ1
Y3Rpb24iIHRvICJEZXN0cnVjdHVyaW5nIiB0aHJvdWdob3V0IEpTQwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9lZmwvVGVzdEV4cGVjdGF0aW9ucwppbmRleCBhZWUwNzMwNTQwZTlkMGY5MGU3MGQ1YmY0
MTIzMjgyMTJkODE5MjZmLi5mZDkwZjJmMTk2YWQwMDVkMWMwYjU2OTZhYTE4ZWI3ZWRkNjBhOWRl
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvVGVzdEV4cGVjdGF0aW9ucwor
KysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvVGVzdEV4cGVjdGF0aW9ucwpAQCAtNDc2LDkg
KzQ3Niw2IEBAIEJ1ZyhFRkwpIGZhc3QvY3NzL2xpbmUtaGVpZ2h0LWRldGVybWluZWQtYnktcHJp
bWFyeS1mb250Lmh0bWwgWyBGYWlsdXJlIF0KICMgQ1JBU0hFUwogIy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8KIAotd2Via2l0Lm9yZy9iLzkyNzI2IGZhc3QvZG9tL05hdmlnYXRvckNv
bnRlbnRVdGlscy9yZWdpc3Rlci1wcm90b2NvbC1oYW5kbGVyLmh0bWwgWyBDcmFzaCBdCi13ZWJr
aXQub3JnL2IvOTI3MjYgZmFzdC9kb20vTmF2aWdhdG9yQ29udGVudFV0aWxzL3VucmVnaXN0ZXIt
cHJvdG9jb2wtaGFuZGxlci5odG1sIFsgQ3Jhc2ggXQotCiAjIENyYXNoZXMgb24gcGx1Z2luIHRl
c3QsIGFsc28gYmxvY2tlZCBieSAxMDgwNzcKIHdlYmtpdC5vcmcvYi85ODc0NyBwbHVnaW5zL2Rv
Y3VtZW50LW9wZW4uaHRtbCBbIENyYXNoIEZhaWx1cmUgVGltZW91dCBdCiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>258348</attachid>
            <date>2015-08-05 21:50:09 -0700</date>
            <delta_ts>2017-04-24 19:10:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-92749-20150806134959.patch</filename>
            <type>text/plain</type>
            <size>42204</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg4MDE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGVkZmI2ZmMxMGFmNmZh
MjA1ODhjMDFkZjYzODYwZTA1ZjFiYjQzYS4uZTA2NDliODY0ZWRmNjMyNzdmMmQ5Njg5NzFlZmRk
MjY4MWU0NjA3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDE1LTA4LTA1ICBHeXV5
b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ad2Via2l0Lm9yZz4KKworICAgICAgICBbV0syXSBBZGQg
TmF2aWdhdG9yIENvbnRlbnQgVXRpbHMgQVBJIHN1cHBvcnQgZm9yIFdlYktpdDIKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkyNzQ5CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBNb2R1bGVzL25hdmlnYXRv
cmNvbnRlbnR1dGlscy9OYXZpZ2F0b3JDb250ZW50VXRpbHNDbGllbnQuaDogQWRkIFdFQkNPUkVf
RVhQT1JUIHRvIHByb3ZpZGVOYXZpZ2F0b3JDb250ZW50VXRpbHNUbygpIGZ1bmN0aW9uLgorCiAy
MDE1LTA4LTA1ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgQ3Jh
c2ggd2hlbiByZW1vdmluZyBjaGlsZHJlbiBvZiBhIE1hdGhNTFNlbGVjdEVsZW1lbnQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZwppbmRleCAxYjUwNWYyM2UyMTIwYzRhMGY1MDU2NDg5MzEyNmU2OTk4ODYyMGIyLi5iNzkzYzEy
ZWQ4YTM0MmJiMjVkYTJkZTAxMmJkNmQ0ZjY2YTRlM2Q0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
NTggQEAKKzIwMTUtMDgtMDUgIEd5dXlvdW5nIEtpbSAgPGd5dXlvdW5nLmtpbUB3ZWJraXQub3Jn
PgorCisgICAgICAgIFtXSzJdIEFkZCBOYXZpZ2F0b3IgQ29udGVudCBVdGlscyBBUEkgc3VwcG9y
dCBmb3IgV2ViS2l0MgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9OTI3NDkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBPcmlnaW5hbCBwYXRjaCBieSBNaWtoYWlsIFBvemRueWFrb3YgKG1pa2hhaWwucG96ZG55
YWtvdkBpbnRlbC5jb20pCisKKyAgICAgICAgQWRkZWQgc3VwcG9ydCBvZiBOYXZpZ2F0b3IgQ29u
dGVudCBVdGlscyBBUEkgZm9yIFdlYktpdDIuIFRoaXMgZmVhdHVyZSBpcworICAgICAgICBzdXBw
b3J0ZWQgYnkgQ2hyb21pdW0gYW5kIE1vemlsbGEgdG9vLiBDdXJyZW50bHkgRUZMIHBvcnQgZW5h
YmxlcyB0aGUgZmVhdHVyZS4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAq
IFNoYXJlZC9BUEkvQVBJT2JqZWN0Lmg6CisgICAgICAgICogU2hhcmVkL0FQSS9jL1dLQmFzZS5o
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL0MvV0tOYXZpZ2F0b3JDb250ZW50VXRpbHMuY3BwOiBDb3BpZWQgZnJvbSBTb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYk5hdmlnYXRvckNvbnRlbnRV
dGlsc0NsaWVudC5oLgorICAgICAgICAoV0tOYXZpZ2F0b3JDb250ZW50VXRpbHNHZXRUeXBlSUQp
OgorICAgICAgICAoV0tOYXZpZ2F0b3JDb250ZW50VXRpbHNTZXRQcm92aWRlcik6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9DL1dLTmF2aWdhdG9yQ29udGVudFV0aWxzLmg6IEFkZGVkLgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm92aWRlci5jcHA6IEFk
ZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm92aWRlcjo6
cmVnaXN0ZXJQcm90b2NvbEhhbmRsZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJOYXZpZ2F0b3JD
b250ZW50VXRpbHNQcm92aWRlcjo6aXNQcm90b2NvbEhhbmRsZXJSZWdpc3RlcmVkKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViTmF2aWdhdG9yQ29udGVudFV0aWxzUHJvdmlkZXI6OnVucmVnaXN0ZXJQ
cm90b2NvbEhhbmRsZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJOYXZpZ2F0b3JDb250ZW50
VXRpbHNQcm92aWRlci5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYk5hdmlnYXRvckNvbnRlbnRVdGlsc0NsaWVudC5oLgorICAgICAgICAq
IFVJUHJvY2Vzcy9XZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm94eS5jcHA6IEFkZGVkLgorICAg
ICAgICAoV2ViS2l0OjpXZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm94eTo6c3VwcGxlbWVudE5h
bWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm94eTo6Y3Jl
YXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViTmF2aWdhdG9yQ29udGVudFV0aWxzUHJveHk6Oldl
Yk5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3h5KToKKyAgICAgICAgKFdlYktpdDo6V2ViTmF2aWdh
dG9yQ29udGVudFV0aWxzUHJveHk6On5XZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm94eSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYk5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3h5Ojppbml0aWFsaXpl
UHJvdmlkZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm94
eTo6cmVnaXN0ZXJQcm90b2NvbEhhbmRsZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJOYXZpZ2F0
b3JDb250ZW50VXRpbHNQcm94eTo6aXNQcm90b2NvbEhhbmRsZXJSZWdpc3RlcmVkKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViTmF2aWdhdG9yQ29udGVudFV0aWxzUHJveHk6OnVucmVnaXN0ZXJQcm90
b2NvbEhhbmRsZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQ
cm94eTo6cHJvY2Vzc1Bvb2xEZXN0cm95ZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJOYXZpZ2F0
b3JDb250ZW50VXRpbHNQcm94eTo6cHJvY2Vzc0RpZENsb3NlKToKKyAgICAgICAgKFdlYktpdDo6
V2ViTmF2aWdhdG9yQ29udGVudFV0aWxzUHJveHk6OnJlZldlYkNvbnRleHRTdXBwbGVtZW50KToK
KyAgICAgICAgKFdlYktpdDo6V2ViTmF2aWdhdG9yQ29udGVudFV0aWxzUHJveHk6OmRlcmVmV2Vi
Q29udGV4dFN1cHBsZW1lbnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJOYXZpZ2F0b3JDb250
ZW50VXRpbHNQcm94eS5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViTmF2aWdhdG9y
Q29udGVudFV0aWxzUHJveHkubWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJQcm9jZXNzUG9vbC5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29s
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHA6CisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNDbGllbnQu
Y3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViTmF2aWdhdG9yQ29udGVudFV0aWxzQ2xp
ZW50OjpyZWdpc3RlclByb3RvY29sSGFuZGxlcik6CisgICAgICAgIChXZWJLaXQ6OnRvQ3VzdG9t
SGFuZGxlcnNTdGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYk5hdmlnYXRvckNvbnRlbnRVdGls
c0NsaWVudDo6aXNQcm90b2NvbEhhbmRsZXJSZWdpc3RlcmVkKToKKyAgICAgICAgKFdlYktpdDo6
V2ViTmF2aWdhdG9yQ29udGVudFV0aWxzQ2xpZW50Ojp1bnJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVy
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYk5hdmlnYXRvckNvbnRl
bnRVdGlsc0NsaWVudC5oOgorICAgICAgICAoV2ViS2l0OjpXZWJOYXZpZ2F0b3JDb250ZW50VXRp
bHNDbGllbnQ6OmlzUHJvdG9jb2xIYW5kbGVyUmVnaXN0ZXJlZCk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJLaXQ6OldlYk5hdmlnYXRvckNvbnRlbnRVdGlsc0NsaWVudDo6dW5yZWdpc3RlclByb3Rv
Y29sSGFuZGxlcik6IERlbGV0ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpXZWJQYWdlKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorCiAyMDE1LTA4LTA1ICBUaW0gSG9ydG9uICA8
dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAgIFBERlBsdWdpbnMgYXJlIGNsaXBw
ZWQgaW4gbGluayBwcmV2aWV3cyAoYW5kIHJlbWFpbiBzbyB3aGVuIG9wZW5lZCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbmF2aWdhdG9yY29udGVudHV0aWxzL05hdmlnYXRv
ckNvbnRlbnRVdGlsc0NsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9uYXZpZ2F0b3Jj
b250ZW50dXRpbHMvTmF2aWdhdG9yQ29udGVudFV0aWxzQ2xpZW50LmgKaW5kZXggM2E0NjQ0MjRm
Y2Q4OGQyNzk4NzBlNTg0YjJmZjcxYWU5MTI4NDU4MS4uY2QwNTdmYTIyNjAyNzZmYTZjZTM1MDM5
Y2ZlZmMxZjVkNzIxYzkzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9uYXZp
Z2F0b3Jjb250ZW50dXRpbHMvTmF2aWdhdG9yQ29udGVudFV0aWxzQ2xpZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9uYXZpZ2F0b3Jjb250ZW50dXRpbHMvTmF2aWdhdG9yQ29udGVu
dFV0aWxzQ2xpZW50LmgKQEAgLTUyLDcgKzUyLDcgQEAgcHVibGljOgogI2VuZGlmCiB9OwogCi12
b2lkIHByb3ZpZGVOYXZpZ2F0b3JDb250ZW50VXRpbHNUbyhQYWdlKiwgc3RkOjp1bmlxdWVfcHRy
PE5hdmlnYXRvckNvbnRlbnRVdGlsc0NsaWVudD4pOworV0VCQ09SRV9FWFBPUlQgdm9pZCBwcm92
aWRlTmF2aWdhdG9yQ29udGVudFV0aWxzVG8oUGFnZSosIHN0ZDo6dW5pcXVlX3B0cjxOYXZpZ2F0
b3JDb250ZW50VXRpbHNDbGllbnQ+KTsKIAogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0CmluZGV4IGFl
ZWY0MjcwMTk3MmM1YTJhYzg3NGQ4NGMxZWM4NmEyYzAwZTdkYjcuLjAyZDg4MTM5NWY2Mjk0MmM0
ODMxNzFiYWJiYjU5NzM2MjNjZjFmMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NNYWtl
TGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0CkBAIC0zNzMsNiAr
MzczLDggQEAgc2V0KFdlYktpdDJfU09VUkNFUwogICAgIFVJUHJvY2Vzcy9XZWJJbnNwZWN0b3JQ
cm94eS5jcHAKICAgICBVSVByb2Nlc3MvV2ViTWVkaWFDYWNoZU1hbmFnZXJQcm94eS5jcHAKICAg
ICBVSVByb2Nlc3MvV2ViTmF2aWdhdGlvblN0YXRlLmNwcAorICAgIFVJUHJvY2Vzcy9XZWJOYXZp
Z2F0b3JDb250ZW50VXRpbHNQcm92aWRlci5jcHAKKyAgICBVSVByb2Nlc3MvV2ViTmF2aWdhdG9y
Q29udGVudFV0aWxzUHJveHkuY3BwCiAgICAgVUlQcm9jZXNzL1dlYk9wZW5QYW5lbFJlc3VsdExp
c3RlbmVyUHJveHkuY3BwCiAgICAgVUlQcm9jZXNzL1dlYlBhZ2VEaWFnbm9zdGljTG9nZ2luZ0Ns
aWVudC5jcHAKICAgICBVSVByb2Nlc3MvV2ViUGFnZUdyb3VwLmNwcApAQCAtNDMxLDYgKzQzMyw3
IEBAIHNldChXZWJLaXQyX1NPVVJDRVMKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tOYXZpZ2F0aW9u
RGF0YVJlZi5jcHAKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tOYXZpZ2F0aW9uUmVmLmNwcAogICAg
IFVJUHJvY2Vzcy9BUEkvQy9XS05hdmlnYXRpb25SZXNwb25zZVJlZi5jcHAKKyAgICBVSVByb2Nl
c3MvQVBJL0MvV0tOYXZpZ2F0b3JDb250ZW50VXRpbHMuY3BwCiAgICAgVUlQcm9jZXNzL0FQSS9D
L1dLTm90aWZpY2F0aW9uLmNwcAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS05vdGlmaWNhdGlvbk1h
bmFnZXIuY3BwCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLTm90aWZpY2F0aW9uUGVybWlzc2lvblJl
cXVlc3QuY3BwCkBAIC01OTcsNiArNjAwLDcgQEAgc2V0KFdlYktpdDJfU09VUkNFUwogICAgIFdl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCiAgICAgV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNsaWVudC5jcHAKICAgICBXZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5jcHAKKyAgICBXZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYk5hdmlnYXRvckNvbnRlbnRVdGlsc0NsaWVudC5jcHAKICAg
ICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5jcHAKICAg
ICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAKICAg
ICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsdWdJbkNsaWVudC5jcHAKQEAgLTY2Miw2
ICs2NjYsNyBAQCBzZXQoV2ViS2l0Ml9NRVNTQUdFU19JTl9GSUxFUwogICAgIFVJUHJvY2Vzcy9X
ZWJJY29uRGF0YWJhc2UubWVzc2FnZXMuaW4KICAgICBVSVByb2Nlc3MvV2ViSW5zcGVjdG9yUHJv
eHkubWVzc2FnZXMuaW4KICAgICBVSVByb2Nlc3MvV2ViTWVkaWFDYWNoZU1hbmFnZXJQcm94eS5t
ZXNzYWdlcy5pbgorICAgIFVJUHJvY2Vzcy9XZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm94eS5t
ZXNzYWdlcy5pbgogICAgIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KICAgICBV
SVByb2Nlc3MvV2ViUGFzdGVib2FyZFByb3h5Lm1lc3NhZ2VzLmluCiAgICAgVUlQcm9jZXNzL1dl
YlByb2Nlc3NQb29sLm1lc3NhZ2VzLmluCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvQVBJL0FQSU9iamVjdC5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9BUElPYmplY3Qu
aAppbmRleCA1ZTJjNDZhYzRjMDBjNDc5NWNhZmJhY2UxNzhlZjAwOTJmZjM4N2JlLi40YWY1ZTIx
ODZkNjNkOWVlYzM0ZGJkZGRiODQ0Y2ZhNTMxMGQyYzg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvQVBJL0FQSU9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9B
UEkvQVBJT2JqZWN0LmgKQEAgLTEyNCw2ICsxMjQsNyBAQCBwdWJsaWM6CiAgICAgICAgIE5hdmln
YXRpb25BY3Rpb24sCiAgICAgICAgIE5hdmlnYXRpb25EYXRhLAogICAgICAgICBOYXZpZ2F0aW9u
UmVzcG9uc2UsCisgICAgICAgIE5hdmlnYXRvckNvbnRlbnRVdGlscywKICAgICAgICAgTm90aWZp
Y2F0aW9uLAogICAgICAgICBOb3RpZmljYXRpb25NYW5hZ2VyLAogICAgICAgICBOb3RpZmljYXRp
b25QZXJtaXNzaW9uUmVxdWVzdCwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9B
UEkvYy9XS0Jhc2UuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0Jhc2UuaAppbmRl
eCA3OWZjN2RjZTI4ODI3ZDU5NGVlZTljNjllZWMyYjM4NzIxMGY3M2Q4Li5jZjJkNTExODNlOWM3
MDE5MjNhOTlmZmIzMzQyZDBkMjRhNTNmOGNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvQVBJL2MvV0tCYXNlLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dL
QmFzZS5oCkBAIC0xMTgsNiArMTE4LDcgQEAgdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tO
YXZpZ2F0aW9uQWN0aW9uKiBXS05hdmlnYXRpb25BY3Rpb25SZWY7CiB0eXBlZGVmIGNvbnN0IHN0
cnVjdCBPcGFxdWVXS05hdmlnYXRpb25EYXRhKiBXS05hdmlnYXRpb25EYXRhUmVmOwogdHlwZWRl
ZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tOYXZpZ2F0aW9uKiBXS05hdmlnYXRpb25SZWY7CiB0eXBl
ZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS05hdmlnYXRpb25SZXNwb25zZSogV0tOYXZpZ2F0aW9u
UmVzcG9uc2VSZWY7Cit0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS05hdmlnYXRvckNvbnRl
bnRVdGlscyogV0tOYXZpZ2F0b3JDb250ZW50VXRpbHNSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVj
dCBPcGFxdWVXS05vdGlmaWNhdGlvbiogV0tOb3RpZmljYXRpb25SZWY7CiB0eXBlZGVmIGNvbnN0
IHN0cnVjdCBPcGFxdWVXS05vdGlmaWNhdGlvbk1hbmFnZXIqIFdLTm90aWZpY2F0aW9uTWFuYWdl
clJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLTm90aWZpY2F0aW9uUGVybWlzc2lv
blJlcXVlc3QqIFdLTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RSZWY7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmggYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgKaW5kZXggMGU1NmJlODExNWI4OWRjZWFl
ZWE4N2NiYzc4MGMzYWIyN2JkZWI0Ny4uMDUyN2FkYzEyMDg2NzNjYjhjMjkzYjE0NjFjMTRiNGY2
OTdhY2M2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQVBJ
Q2FzdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaApA
QCAtOTQsNiArOTQsNyBAQCBjbGFzcyBXZWJJbnNwZWN0b3JQcm94eTsKIGNsYXNzIFdlYk1lZGlh
Q2FjaGVNYW5hZ2VyUHJveHk7CiBjbGFzcyBXZWJNZWRpYVNlc3Npb25Gb2N1c01hbmFnZXI7CiBj
bGFzcyBXZWJNZWRpYVNlc3Npb25NZXRhZGF0YTsKK2NsYXNzIFdlYk5hdmlnYXRvckNvbnRlbnRV
dGlsc1Byb3h5OwogY2xhc3MgV2ViTm90aWZpY2F0aW9uOwogY2xhc3MgV2ViTm90aWZpY2F0aW9u
TWFuYWdlclByb3h5OwogY2xhc3MgV2ViTm90aWZpY2F0aW9uUHJvdmlkZXI7CkBAIC0xNDEsNiAr
MTQyLDcgQEAgV0tfQUREX0FQSV9NQVBQSU5HKFdLTWVkaWFTZXNzaW9uRm9jdXNNYW5hZ2VyUmVm
LCBXZWJNZWRpYVNlc3Npb25Gb2N1c01hbmFnZXIpCiBXS19BRERfQVBJX01BUFBJTkcoV0tNZWRp
YVNlc3Npb25NZXRhZGF0YVJlZiwgV2ViTWVkaWFTZXNzaW9uTWV0YWRhdGEpCiBXS19BRERfQVBJ
X01BUFBJTkcoV0tOYXZpZ2F0aW9uQWN0aW9uUmVmLCBBUEk6Ok5hdmlnYXRpb25BY3Rpb24pCiBX
S19BRERfQVBJX01BUFBJTkcoV0tOYXZpZ2F0aW9uRGF0YVJlZiwgQVBJOjpOYXZpZ2F0aW9uRGF0
YSkKK1dLX0FERF9BUElfTUFQUElORyhXS05hdmlnYXRvckNvbnRlbnRVdGlsc1JlZiwgV2ViTmF2
aWdhdG9yQ29udGVudFV0aWxzUHJveHkpCiBXS19BRERfQVBJX01BUFBJTkcoV0tOYXZpZ2F0aW9u
UmVmLCBBUEk6Ok5hdmlnYXRpb24pCiBXS19BRERfQVBJX01BUFBJTkcoV0tOYXZpZ2F0aW9uUmVz
cG9uc2VSZWYsIEFQSTo6TmF2aWdhdGlvblJlc3BvbnNlKQogV0tfQUREX0FQSV9NQVBQSU5HKFdL
Tm90aWZpY2F0aW9uTWFuYWdlclJlZiwgV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5KQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLTmF2aWdhdG9yQ29udGVu
dFV0aWxzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS05hdmlnYXRvckNv
bnRlbnRVdGlscy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTE3YjY4MjQ5YjY2MTZhNTEyMjBmM2QxZjc4MWJl
ZDc0OTg4ZWU1MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQy9XS05hdmlnYXRvckNvbnRlbnRVdGlscy5jcHAKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxNSBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldLTmF2aWdhdG9y
Q29udGVudFV0aWxzLmgiCisKKyNpZiBFTkFCTEUoTkFWSUdBVE9SX0NPTlRFTlRfVVRJTFMpCisj
aW5jbHVkZSAiV0tBUElDYXN0LmgiCisjaW5jbHVkZSAiV2ViTmF2aWdhdG9yQ29udGVudFV0aWxz
UHJveHkuaCIKKwordXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKKyNlbmRpZiAvLyBFTkFCTEUoTkFW
SUdBVE9SX0NPTlRFTlRfVVRJTFMpCisKK1dLVHlwZUlEIFdLTmF2aWdhdG9yQ29udGVudFV0aWxz
R2V0VHlwZUlEKCkKK3sKKyNpZiBFTkFCTEUoTkFWSUdBVE9SX0NPTlRFTlRfVVRJTFMpCisgICAg
cmV0dXJuIHRvQVBJKFdlYk5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3h5OjpBUElUeXBlKTsKKyNl
bHNlCisgICAgcmV0dXJuIDA7CisjZW5kaWYKK30KKwordm9pZCBXS05hdmlnYXRvckNvbnRlbnRV
dGlsc1NldFByb3ZpZGVyKFdLTmF2aWdhdG9yQ29udGVudFV0aWxzUmVmIHJlZ2lzdGVyUHJvdG9j
b2xIYW5kbGVyUmVmLCBjb25zdCBXS05hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3ZpZGVyQmFzZSog
d2tQcm92aWRlcikKK3sKKyNpZiBFTkFCTEUoTkFWSUdBVE9SX0NPTlRFTlRfVVRJTFMpCisgICAg
dG9JbXBsKHJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUmVmKS0+aW5pdGlhbGl6ZVByb3ZpZGVyKHdr
UHJvdmlkZXIpOworI2VuZGlmCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0MvV0tOYXZpZ2F0b3JDb250ZW50VXRpbHMuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQy9XS05hdmlnYXRvckNvbnRlbnRVdGlscy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZlYmQ1NzU3
N2QxNDUyNDQxODg5YWMxYTgyOTE3ZTk4NDkxZTMyYjMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tOYXZpZ2F0b3JDb250ZW50VXRpbHMuaApAQCAt
MCwwICsxLDcwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEludGVsIENvcnBvcmF0aW9u
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdLTmF2aWdhdG9yQ29u
dGVudFV0aWxzX2gKKyNkZWZpbmUgV0tOYXZpZ2F0b3JDb250ZW50VXRpbHNfaAorCisjaW5jbHVk
ZSA8V2ViS2l0L1dLQmFzZS5oPgorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgewor
I2VuZGlmCisKK2VudW0geworICAgIGtXS0N1c3RvbUhhbmRsZXJzTmV3LAorICAgIGtXS0N1c3Rv
bUhhbmRsZXJzUmVnaXN0ZXJlZCwKKyAgICBrV0tDdXN0b21IYW5kbGVyc0RlY2xpbmVkCit9Owor
dHlwZWRlZiB1aW50MzJfdCBXS0N1c3RvbUhhbmRsZXJzU3RhdGU7CisKK3R5cGVkZWYgdm9pZCAo
KldLTmF2aWdhdG9yQ29udGVudFV0aWxzUHJvdmlkZXJSZWdpc3RlclByb3RvY29sQ2FsbGJhY2sp
KFdLTmF2aWdhdG9yQ29udGVudFV0aWxzUmVmIHJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyUmVmLCBX
S1N0cmluZ1JlZiBzY2hlbWUsIFdLU3RyaW5nUmVmIGJhc2VVUkwsIFdLU3RyaW5nUmVmIHVybCwg
V0tTdHJpbmdSZWYgdGl0bGUsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwordHlwZWRlZiBXS0N1
c3RvbUhhbmRsZXJzU3RhdGUgKCpXS05hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3ZpZGVySXNQcm90
b2NvbFJlZ2lzdGVyZWRDYWxsYmFjaykoV0tOYXZpZ2F0b3JDb250ZW50VXRpbHNSZWYgcmVnaXN0
ZXJQcm90b2NvbEhhbmRsZXJSZWYsIFdLU3RyaW5nUmVmIHNjaGVtZSwgV0tTdHJpbmdSZWYgYmFz
ZVVSTCwgV0tTdHJpbmdSZWYgdXJsLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKK3R5cGVkZWYg
dm9pZCAoKldLTmF2aWdhdG9yQ29udGVudFV0aWxzUHJvdmlkZXJVbnJlZ2lzdGVyUHJvdG9jb2xD
YWxsYmFjaykoV0tOYXZpZ2F0b3JDb250ZW50VXRpbHNSZWYgcmVnaXN0ZXJQcm90b2NvbEhhbmRs
ZXJSZWYsIFdLU3RyaW5nUmVmIHNjaGVtZSwgV0tTdHJpbmdSZWYgYmFzZVVSTCwgV0tTdHJpbmdS
ZWYgdXJsLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKKwordHlwZWRlZiBzdHJ1Y3QgV0tOYXZp
Z2F0b3JDb250ZW50VXRpbHNQcm92aWRlckJhc2UgeworICAgIGludCAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlcnNpb247
CisgICAgY29uc3Qgdm9pZCAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY2xpZW50SW5mbzsKK30gV0tOYXZpZ2F0b3JDb250ZW50VXRpbHNQ
cm92aWRlckJhc2U7CisKK3R5cGVkZWYgc3RydWN0IFdLTmF2aWdhdG9yQ29udGVudFV0aWxzUHJv
dmlkZXJWMCB7CisgICAgV0tOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm92aWRlckJhc2UgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhc2U7CisKKyAgICAvLyBWZXJz
aW9uIDAuCisgICAgV0tOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm92aWRlclJlZ2lzdGVyUHJvdG9j
b2xDYWxsYmFjayAgICAgICAgICAgICAgcmVnaXN0ZXJQcm90b2NvbEhhbmRsZXI7CisgICAgV0tO
YXZpZ2F0b3JDb250ZW50VXRpbHNQcm92aWRlcklzUHJvdG9jb2xSZWdpc3RlcmVkQ2FsbGJhY2sg
ICAgICAgICAgaXNQcm90b2NvbEhhbmRsZXJSZWdpc3RlcmVkOworICAgIFdLTmF2aWdhdG9yQ29u
dGVudFV0aWxzUHJvdmlkZXJVbnJlZ2lzdGVyUHJvdG9jb2xDYWxsYmFjayAgICAgICAgICAgIHVu
cmVnaXN0ZXJQcm90b2NvbEhhbmRsZXI7Cit9IFdLTmF2aWdhdG9yQ29udGVudFV0aWxzUHJvdmlk
ZXJWMDsKKworZW51bSB7IGtXS05hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3ZpZGVyQ3VycmVudFZl
cnNpb24gPSAwIH07CisKK1dLX0VYUE9SVCBXS1R5cGVJRCBXS05hdmlnYXRvckNvbnRlbnRVdGls
c0dldFR5cGVJRCgpOworCitXS19FWFBPUlQgdm9pZCBXS05hdmlnYXRvckNvbnRlbnRVdGlsc1Nl
dFByb3ZpZGVyKFdLTmF2aWdhdG9yQ29udGVudFV0aWxzUmVmIHJlZ2lzdGVyUHJvdG9jb2xIYW5k
bGVyUmVmLCBjb25zdCBXS05hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3ZpZGVyQmFzZSogcHJvdmlk
ZXIpOworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorCisjZW5kaWYgLy8gV0tOYXZp
Z2F0b3JDb250ZW50VXRpbHNfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYk5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3ZpZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm92aWRlci5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
OWI1OWI1OTJjZGVmNGExMWY4NTI3MTFiMGIwODE3YmY4ZjYzZWU0NQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm92
aWRlci5jcHAKQEAgLTAsMCArMSw2NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBJbnRl
bCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYk5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3ZpZGVyLmgi
CisKKyNpZiBFTkFCTEUoTkFWSUdBVE9SX0NPTlRFTlRfVVRJTFMpCisKKyNpbmNsdWRlICJXS0FQ
SUNhc3QuaCIKKyNpbmNsdWRlICJXZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm94eS5oIgorCitu
YW1lc3BhY2UgV2ViS2l0IHsKKwordm9pZCBXZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm92aWRl
cjo6cmVnaXN0ZXJQcm90b2NvbEhhbmRsZXIoV2ViTmF2aWdhdG9yQ29udGVudFV0aWxzUHJveHkq
IHByb3h5LCBjb25zdCBTdHJpbmcmIHNjaGVtZSwgY29uc3QgU3RyaW5nJiBiYXNlVVJMLCBjb25z
dCBTdHJpbmcmIHVybCwgY29uc3QgU3RyaW5nJiB0aXRsZSkKK3sKKyAgICBpZiAoIW1fY2xpZW50
LnJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyKQorICAgICAgICByZXR1cm47CisKKyAgICBtX2NsaWVu
dC5yZWdpc3RlclByb3RvY29sSGFuZGxlcih0b0FQSShwcm94eSksIHRvQVBJKHNjaGVtZS5pbXBs
KCkpLCB0b0FQSShiYXNlVVJMLmltcGwoKSksIHRvQVBJKHVybC5pbXBsKCkpLCB0b0FQSSh0aXRs
ZS5pbXBsKCkpLCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOworfQorCisjaWYgRU5BQkxFKENV
U1RPTV9TQ0hFTUVfSEFORExFUikKK3ZvaWQgV2ViTmF2aWdhdG9yQ29udGVudFV0aWxzUHJvdmlk
ZXI6OmlzUHJvdG9jb2xIYW5kbGVyUmVnaXN0ZXJlZChXZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQ
cm94eSogcHJveHksIGNvbnN0IFN0cmluZyYgc2NoZW1lLCBjb25zdCBTdHJpbmcmIGJhc2VVUkws
IGNvbnN0IFN0cmluZyYgdXJsLCB1aW50MzJfdCYgcmVzdWx0KQoreworICAgIGlmICghbV9jbGll
bnQuaXNQcm90b2NvbEhhbmRsZXJSZWdpc3RlcmVkKQorICAgICAgICByZXR1cm47CisKKyAgICBy
ZXN1bHQgPSBtX2NsaWVudC5pc1Byb3RvY29sSGFuZGxlclJlZ2lzdGVyZWQodG9BUEkocHJveHkp
LCB0b0FQSShzY2hlbWUuaW1wbCgpKSwgdG9BUEkoYmFzZVVSTC5pbXBsKCkpLCB0b0FQSSh1cmwu
aW1wbCgpKSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKK30KKwordm9pZCBXZWJOYXZpZ2F0
b3JDb250ZW50VXRpbHNQcm92aWRlcjo6dW5yZWdpc3RlclByb3RvY29sSGFuZGxlcihXZWJOYXZp
Z2F0b3JDb250ZW50VXRpbHNQcm94eSogcHJveHksIGNvbnN0IFN0cmluZyYgc2NoZW1lLCBjb25z
dCBTdHJpbmcmIGJhc2VVUkwsIGNvbnN0IFN0cmluZyYgdXJsKQoreworICAgIGlmICghbV9jbGll
bnQudW5yZWdpc3RlclByb3RvY29sSGFuZGxlcikKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9j
bGllbnQudW5yZWdpc3RlclByb3RvY29sSGFuZGxlcih0b0FQSShwcm94eSksIHRvQVBJKHNjaGVt
ZS5pbXBsKCkpLCB0b0FQSShiYXNlVVJMLmltcGwoKSksIHRvQVBJKHVybC5pbXBsKCkpLCBtX2Ns
aWVudC5iYXNlLmNsaWVudEluZm8pOworfQorI2VuZGlmIC8vIEVOQUJMRShDVVNUT01fU0NIRU1F
X0hBTkRMRVIpCisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKE5B
VklHQVRPUl9DT05URU5UX1VUSUxTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYk5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3ZpZGVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViTmF2aWdhdG9yQ29udGVudFV0aWxzUHJvdmlkZXIuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42
YzViNjMxZTRmYzRkMzk0YzEwYTIwYzA2NGRjMThhN2FjYjNhNTRhCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3Zp
ZGVyLmgKQEAgLTAsMCArMSw1OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBJbnRlbCBD
b3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJO
YXZpZ2F0b3JDb250ZW50VXRpbHNQcm92aWRlcl9oCisjZGVmaW5lIFdlYk5hdmlnYXRvckNvbnRl
bnRVdGlsc1Byb3ZpZGVyX2gKKworI2lmIEVOQUJMRShOQVZJR0FUT1JfQ09OVEVOVF9VVElMUykK
KworI2luY2x1ZGUgIkFQSUNsaWVudC5oIgorI2luY2x1ZGUgIldLTmF2aWdhdG9yQ29udGVudFV0
aWxzLmgiCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRl
ZC5oPgorCituYW1lc3BhY2UgQVBJIHsKK3RlbXBsYXRlPD4gc3RydWN0IENsaWVudFRyYWl0czxX
S05hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3ZpZGVyQmFzZT4geworICAgIHR5cGVkZWYgc3RkOjp0
dXBsZTxXS05hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3ZpZGVyVjA+IFZlcnNpb25zOworfTsKK30K
KworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYk5hdmlnYXRvckNvbnRlbnRVdGlsc1By
b3h5OworCitjbGFzcyBXZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm92aWRlciA6IHB1YmxpYyBB
UEk6OkNsaWVudDxXS05hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3ZpZGVyQmFzZT4geworcHVibGlj
OgorICAgIHZvaWQgcmVnaXN0ZXJQcm90b2NvbEhhbmRsZXIoV2ViTmF2aWdhdG9yQ29udGVudFV0
aWxzUHJveHkqLCBjb25zdCBTdHJpbmcmIHNjaGVtZSwgY29uc3QgU3RyaW5nJiBiYXNlVVJMLCBj
b25zdCBTdHJpbmcmIHVybCwgY29uc3QgU3RyaW5nJiB0aXRsZSk7CisKKyNpZiBFTkFCTEUoQ1VT
VE9NX1NDSEVNRV9IQU5ETEVSKQorICAgIHZvaWQgaXNQcm90b2NvbEhhbmRsZXJSZWdpc3RlcmVk
KFdlYk5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3h5KiwgY29uc3QgU3RyaW5nJiBzY2hlbWUsIGNv
bnN0IFN0cmluZyYgYmFzZVVSTCwgY29uc3QgU3RyaW5nJiB1cmwsIHVpbnQzMl90JiByZXN1bHQp
OworICAgIHZvaWQgdW5yZWdpc3RlclByb3RvY29sSGFuZGxlcihXZWJOYXZpZ2F0b3JDb250ZW50
VXRpbHNQcm94eSosIGNvbnN0IFN0cmluZyYgc2NoZW1lLCBjb25zdCBTdHJpbmcmIGJhc2VVUkws
IGNvbnN0IFN0cmluZyYgdXJsKTsKKyNlbmRpZiAvLyBFTkFCTEUoQ1VTVE9NX1NDSEVNRV9IQU5E
TEVSKQorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoTkFW
SUdBVE9SX0NPTlRFTlRfVVRJTFMpCisjZW5kaWYgLy8gV2ViTmF2aWdhdG9yQ29udGVudFV0aWxz
UHJvdmlkZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk5hdmln
YXRvckNvbnRlbnRVdGlsc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJO
YXZpZ2F0b3JDb250ZW50VXRpbHNQcm94eS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2Q5YTM2ZTcyN2NlYTE5
MjBiZjc0NGE3YWI0MjhiM2U3MGMzMmEzMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm94eS5jcHAKQEAgLTAsMCAr
MSw5OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNSBTYW1zdW5nIEVsZWN0cm9u
aWNzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiV2ViTmF2aWdhdG9yQ29udGVudFV0aWxzUHJveHkuaCIKKworI2lmIEVOQUJM
RShOQVZJR0FUT1JfQ09OVEVOVF9VVElMUykKKworI2luY2x1ZGUgIldlYk5hdmlnYXRvckNvbnRl
bnRVdGlsc1Byb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzUG9vbC5oIgorCitu
YW1lc3BhY2UgV2ViS2l0IHsKKworY29uc3QgY2hhciogV2ViTmF2aWdhdG9yQ29udGVudFV0aWxz
UHJveHk6OnN1cHBsZW1lbnROYW1lKCkKK3sKKyAgICByZXR1cm4gIldlYk5hdmlnYXRvckNvbnRl
bnRVdGlsc1Byb3h5IjsKK30KKworUGFzc1JlZlB0cjxXZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQ
cm94eT4gV2ViTmF2aWdhdG9yQ29udGVudFV0aWxzUHJveHk6OmNyZWF0ZShXZWJQcm9jZXNzUG9v
bCogcHJvY2Vzc1Bvb2wpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJOYXZpZ2F0b3JD
b250ZW50VXRpbHNQcm94eShwcm9jZXNzUG9vbCkpOworfQorCitXZWJOYXZpZ2F0b3JDb250ZW50
VXRpbHNQcm94eTo6V2ViTmF2aWdhdG9yQ29udGVudFV0aWxzUHJveHkoV2ViUHJvY2Vzc1Bvb2wq
IHByb2Nlc3NQb29sKQorICAgIDogV2ViQ29udGV4dFN1cHBsZW1lbnQocHJvY2Vzc1Bvb2wpCit7
Cit9CisKK1dlYk5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3h5Ojp+V2ViTmF2aWdhdG9yQ29udGVu
dFV0aWxzUHJveHkoKQoreworfQorCit2b2lkIFdlYk5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3h5
Ojppbml0aWFsaXplUHJvdmlkZXIoY29uc3QgV0tOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm92aWRl
ckJhc2UqIHByb3ZpZGVyKQoreworICAgIG1fcHJvdmlkZXIuaW5pdGlhbGl6ZShwcm92aWRlcik7
Cit9CisKK3ZvaWQgV2ViTmF2aWdhdG9yQ29udGVudFV0aWxzUHJveHk6OnJlZ2lzdGVyUHJvdG9j
b2xIYW5kbGVyKGNvbnN0IFN0cmluZyYgc2NoZW1lLCBjb25zdCBTdHJpbmcmIGJhc2VVUkwsIGNv
bnN0IFN0cmluZyYgdXJsLCBjb25zdCBTdHJpbmcmIHRpdGxlKQoreworICAgIG1fcHJvdmlkZXIu
cmVnaXN0ZXJQcm90b2NvbEhhbmRsZXIodGhpcywgc2NoZW1lLCBiYXNlVVJMLCB1cmwsIHRpdGxl
KTsKK30KKworI2lmIEVOQUJMRShDVVNUT01fU0NIRU1FX0hBTkRMRVIpCit2b2lkIFdlYk5hdmln
YXRvckNvbnRlbnRVdGlsc1Byb3h5Ojppc1Byb3RvY29sSGFuZGxlclJlZ2lzdGVyZWQoY29uc3Qg
U3RyaW5nJiBzY2hlbWUsIGNvbnN0IFN0cmluZyYgYmFzZVVSTCwgY29uc3QgU3RyaW5nJiB1cmws
IHVpbnQzMl90JiByZXN1bHQpCit7CisgICAgbV9wcm92aWRlci5pc1Byb3RvY29sSGFuZGxlclJl
Z2lzdGVyZWQodGhpcywgc2NoZW1lLCBiYXNlVVJMLCB1cmwsIHJlc3VsdCk7Cit9CisKK3ZvaWQg
V2ViTmF2aWdhdG9yQ29udGVudFV0aWxzUHJveHk6OnVucmVnaXN0ZXJQcm90b2NvbEhhbmRsZXIo
Y29uc3QgU3RyaW5nJiBzY2hlbWUsIGNvbnN0IFN0cmluZyYgYmFzZVVSTCwgY29uc3QgU3RyaW5n
JiB1cmwpCit7CisgICAgbV9wcm92aWRlci51bnJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyKHRoaXMs
IHNjaGVtZSwgYmFzZVVSTCwgdXJsKTsKK30KKyNlbmRpZiAvLyBFTkFCTEUoQ1VTVE9NX1NDSEVN
RV9IQU5ETEVSKQorCisvLyBXZWJDb250ZXh0U3VwcGxlbWVudAordm9pZCBXZWJOYXZpZ2F0b3JD
b250ZW50VXRpbHNQcm94eTo6cHJvY2Vzc1Bvb2xEZXN0cm95ZWQoKQoreworfQorCit2b2lkIFdl
Yk5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3h5Ojpwcm9jZXNzRGlkQ2xvc2UoV2ViUHJvY2Vzc1By
b3h5KikKK3sKK30KKwordm9pZCBXZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm94eTo6cmVmV2Vi
Q29udGV4dFN1cHBsZW1lbnQoKQoreworICAgIEFQSTo6T2JqZWN0OjpyZWYoKTsKK30KKwordm9p
ZCBXZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm94eTo6ZGVyZWZXZWJDb250ZXh0U3VwcGxlbWVu
dCgpCit7CisgICAgQVBJOjpPYmplY3Q6OmRlcmVmKCk7Cit9Cit9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKKworI2VuZGlmIC8vIEVOQUJMRShOQVZJR0FUT1JfQ09OVEVOVF9VVElMUykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm94
eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk5hdmlnYXRvckNvbnRlbnRVdGlsc1By
b3h5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYWIxNDY5MWNhNDhmODlmM2IxNGUwYTE5ODgzOTg4NDI2MzRhYWM3
ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJOYXZpZ2F0
b3JDb250ZW50VXRpbHNQcm94eS5oCkBAIC0wLDAgKzEsODEgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTUgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTUgU2Ftc3VuZyBFbGVjdHJvbmljcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2lmbmRlZiBXZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm94eV9oCisjZGVm
aW5lIFdlYk5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3h5X2gKKworI2lmIEVOQUJMRShOQVZJR0FU
T1JfQ09OVEVOVF9VVElMUykKKworI2luY2x1ZGUgIkFQSU9iamVjdC5oIgorI2luY2x1ZGUgIkNv
bm5lY3Rpb24uaCIKKyNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlICJXZWJD
b250ZXh0U3VwcGxlbWVudC5oIgorI2luY2x1ZGUgIldlYk5hdmlnYXRvckNvbnRlbnRVdGlsc1By
b3ZpZGVyLmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJQcm9jZXNzUG9vbDsK
K2NsYXNzIFdlYlByb2Nlc3NQcm94eTsKKworY2xhc3MgV2ViTmF2aWdhdG9yQ29udGVudFV0aWxz
UHJveHkgOiBwdWJsaWMgQVBJOjpPYmplY3RJbXBsPEFQSTo6T2JqZWN0OjpUeXBlOjpOYXZpZ2F0
b3JDb250ZW50VXRpbHM+LCBwdWJsaWMgV2ViQ29udGV4dFN1cHBsZW1lbnQsIHB1YmxpYyBJUEM6
Ok1lc3NhZ2VSZWNlaXZlciB7CitwdWJsaWM6CisgICAgc3RhdGljIGNvbnN0IGNoYXIqIHN1cHBs
ZW1lbnROYW1lKCk7CisKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJOYXZpZ2F0b3JDb250ZW50
VXRpbHNQcm94eT4gY3JlYXRlKFdlYlByb2Nlc3NQb29sKik7CisgICAgdmlydHVhbCB+V2ViTmF2
aWdhdG9yQ29udGVudFV0aWxzUHJveHkoKTsKKworICAgIHZvaWQgaW5pdGlhbGl6ZVByb3ZpZGVy
KGNvbnN0IFdLTmF2aWdhdG9yQ29udGVudFV0aWxzUHJvdmlkZXJCYXNlKik7CisKKyAgICB1c2lu
ZyBBUEk6Ok9iamVjdDo6cmVmOworICAgIHVzaW5nIEFQSTo6T2JqZWN0OjpkZXJlZjsKKworcHJp
dmF0ZToKKyAgICBleHBsaWNpdCBXZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm94eShXZWJQcm9j
ZXNzUG9vbCopOworCisgICAgLy8gV2ViQ29udGV4dFN1cHBsZW1lbnQKKyAgICB2aXJ0dWFsIHZv
aWQgcHJvY2Vzc1Bvb2xEZXN0cm95ZWQoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgcHJv
Y2Vzc0RpZENsb3NlKFdlYlByb2Nlc3NQcm94eSopIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9p
ZCByZWZXZWJDb250ZXh0U3VwcGxlbWVudCgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBk
ZXJlZldlYkNvbnRleHRTdXBwbGVtZW50KCkgb3ZlcnJpZGU7CisKKyAgICAvLyBQQzo6TWVzc2Fn
ZVJlY2VpdmVyCisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVj
dGlvbiYsIElQQzo6TWVzc2FnZURlY29kZXImKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQg
ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6TWVzc2FnZURlY29k
ZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpNZXNzYWdlRW5jb2Rlcj4mKSBvdmVycmlkZTsKKwor
ICAgIHZvaWQgcmVnaXN0ZXJQcm90b2NvbEhhbmRsZXIoY29uc3QgU3RyaW5nJiBzY2hlbWUsIGNv
bnN0IFN0cmluZyYgYmFzZVVSTCwgY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0cmluZyYgdGl0
bGUpOworI2lmIEVOQUJMRShDVVNUT01fU0NIRU1FX0hBTkRMRVIpCisgICAgdm9pZCBpc1Byb3Rv
Y29sSGFuZGxlclJlZ2lzdGVyZWQoY29uc3QgU3RyaW5nJiBzY2hlbWUsIGNvbnN0IFN0cmluZyYg
YmFzZVVSTCwgY29uc3QgU3RyaW5nJiB1cmwsIHVpbnQzMl90JiByZXN1bHQpOworICAgIHZvaWQg
dW5yZWdpc3RlclByb3RvY29sSGFuZGxlcihjb25zdCBTdHJpbmcmIHNjaGVtZSwgY29uc3QgU3Ry
aW5nJiBiYXNlVVJMLCBjb25zdCBTdHJpbmcmIHVybCk7CisjZW5kaWYgLy8gRU5BQkxFKENVU1RP
TV9TQ0hFTUVfSEFORExFUikKKworICAgIFdlYk5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3ZpZGVy
IG1fcHJvdmlkZXI7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVO
QUJMRShOQVZJR0FUT1JfQ09OVEVOVF9VVElMUykKKworI2VuZGlmIC8vIFdlYk5hdmlnYXRvckNv
bnRlbnRVdGlsc1Byb3h5X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm94eS5tZXNzYWdlcy5pbgpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5hODAzMzcyZjg2MTgyYjBmYjc3ZjBjMTIzZTIzZmRkNjU0ZDE2ZDY3Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk5hdmlnYXRvckNvbnRlbnRV
dGlsc1Byb3h5Lm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMzMgQEAKKyMgQ29weXJpZ2h0IChDKSAy
MDE1IEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAy
LiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycgQU5ECisjIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUK
KyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IKKyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorIyBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UgorIyBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUgorIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorIyBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisjaWYgRU5BQkxFKE5BVklHQVRPUl9DT05U
RU5UX1VUSUxTKQorCittZXNzYWdlcyAtPiBXZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNQcm94eSB7
CisgICAgUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXIoU3RyaW5nIHNjaGVtZSwgU3RyaW5nIGJhc2VV
UkwsIFN0cmluZyB1cmwsIFN0cmluZyB0aXRsZSkKKyNpZiBFTkFCTEUoQ1VTVE9NX1NDSEVNRV9I
QU5ETEVSKQorICAgIElzUHJvdG9jb2xIYW5kbGVyUmVnaXN0ZXJlZChTdHJpbmcgc2NoZW1lLCBT
dHJpbmcgYmFzZVVSTCwgU3RyaW5nIHVybCkgLT4gKHVpbnQzMl90IHJlc3VsdCkKKyAgICBVbnJl
Z2lzdGVyUHJvdG9jb2xIYW5kbGVyKFN0cmluZyBzY2hlbWUsIFN0cmluZyBiYXNlVVJMLCBTdHJp
bmcgdXJsKQorI2VuZGlmIC8vIEVOQUJMRShDVVNUT01fU0NIRU1FX0hBTkRMRVIpCit9CisKKyNl
bmRpZiAvLyBFTkFCTEUoTkFWSUdBVE9SX0NPTlRFTlRfVVRJTFMpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAppbmRleCBlM2VhNDc2ZTRjNDYyYzlmNmMwOTY1
NDQ0NzYyM2EzOGZkNzRhYTczLi4xNTgwNTk3MDIxZjVhMzYwNGMyNzk0OGQ4ZmVlMGQzNzFhZmU1
YzI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKQEAg
LTgzLDYgKzgzLDEwIEBACiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NQcm94eS5oIgogI2VuZGlm
CiAKKyNpZiBFTkFCTEUoTkFWSUdBVE9SX0NPTlRFTlRfVVRJTFMpCisjaW5jbHVkZSAiV2ViTmF2
aWdhdG9yQ29udGVudFV0aWxzUHJveHkuaCIKKyNlbmRpZgorCiAjaWYgRU5BQkxFKFNFUlZJQ0Vf
Q09OVFJPTFMpCiAjaW5jbHVkZSAiU2VydmljZXNDb250cm9sbGVyLmgiCiAjZW5kaWYKQEAgLTE4
Niw2ICsxOTAsOSBAQCBXZWJQcm9jZXNzUG9vbDo6V2ViUHJvY2Vzc1Bvb2woQVBJOjpQcm9jZXNz
UG9vbENvbmZpZ3VyYXRpb24mIGNvbmZpZ3VyYXRpb24pCiAgICAgYWRkU3VwcGxlbWVudDxXZWJN
ZWRpYUNhY2hlTWFuYWdlclByb3h5PigpOwogICAgIGFkZFN1cHBsZW1lbnQ8V2ViTm90aWZpY2F0
aW9uTWFuYWdlclByb3h5PigpOwogICAgIGFkZFN1cHBsZW1lbnQ8V2ViRGF0YWJhc2VNYW5hZ2Vy
UHJveHk+KCk7CisjaWYgRU5BQkxFKE5BVklHQVRPUl9DT05URU5UX1VUSUxTKQorICAgIGFkZFN1
cHBsZW1lbnQ8V2ViTmF2aWdhdG9yQ29udGVudFV0aWxzUHJveHk+KCk7CisjZW5kaWYKICNpZiBV
U0UoU09VUCkKICAgICBhZGRTdXBwbGVtZW50PFdlYlNvdXBDdXN0b21Qcm90b2NvbFJlcXVlc3RN
YW5hZ2VyPigpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Bvb2wuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9v
bC5oCmluZGV4IGQ4Yjg4NzkwYTY4YTdmOWYxOWM3NzY3OGM1NjQ1YmMyNmE4MDJmMDAuLjQyY2Rk
ZTI2ZjBmZTQ3YWMwMTZkYmQwNGZkNDJkN2QyMmNlOTUzMTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCkBAIC05MSw2ICs5MSwxMCBAQCBzdHJ1Y3QgV2ViUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVyczsKICAgICAKIHR5cGVkZWYgR2VuZXJpY0NhbGxiYWNrPEFQ
STo6RGljdGlvbmFyeSo+IERpY3Rpb25hcnlDYWxsYmFjazsKIAorI2lmIEVOQUJMRShOQVZJR0FU
T1JfQ09OVEVOVF9VVElMUykKK2NsYXNzIFdlYk5hdmlnYXRvckNvbnRlbnRVdGlsc1Byb3h5Owor
I2VuZGlmCisKICNpZiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQogc3RydWN0IE5ldHdvcmtQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJQcm9jZXNzUHJveHkuY3BwCmluZGV4IDkxMzBhMmQ4OWJlMWI1YjgyZjg1ZjUyMmNiYzI5
YjA1M2NlY2UzZGUuLjgxOWY0MmJmM2I4NzViNGFhMDQyZThmMDgzMDQ0YjYxMzMyOGIyYzQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCkBAIC00MSw2
ICs0MSw3IEBACiAjaW5jbHVkZSAiV2ViSWNvbkRhdGFiYXNlLmgiCiAjaW5jbHVkZSAiV2ViSW5z
cGVjdG9yUHJveHkuaCIKICNpbmNsdWRlICJXZWJOYXZpZ2F0aW9uRGF0YVN0b3JlLmgiCisjaW5j
bHVkZSAiV2ViTmF2aWdhdG9yQ29udGVudFV0aWxzUHJveHkuaCIKICNpbmNsdWRlICJXZWJOb3Rp
ZmljYXRpb25NYW5hZ2VyUHJveHkuaCIKICNpbmNsdWRlICJXZWJQYWdlR3JvdXAuaCIKICNpbmNs
dWRlICJXZWJQYWdlUHJveHkuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViTmF2aWdhdG9yQ29udGVudFV0aWxzQ2xpZW50LmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTmF2aWdhdG9yQ29udGVu
dFV0aWxzQ2xpZW50LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xODg3ZDhhNDI2ZGFmMDJjZjY3Mjc5NjBlNzM5
MDkwM2M3NGVjZWE3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNDbGllbnQuY3BwCkBAIC0w
LDAgKzEsNzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgSW50ZWwgQ29ycG9yYXRpb24u
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgU2Ftc3VuZyBFbGVj
dHJvbmljcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIldlYk5hdmlnYXRvckNvbnRlbnRVdGlsc0NsaWVudC5oIgorCisjaWYg
RU5BQkxFKE5BVklHQVRPUl9DT05URU5UX1VUSUxTKQorCisjaW5jbHVkZSAiV2ViTmF2aWdhdG9y
Q29udGVudFV0aWxzUHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKKwor
dXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Cit1c2luZyBuYW1lc3BhY2UgTWVzc2FnZXM6OldlYk5h
dmlnYXRvckNvbnRlbnRVdGlsc1Byb3h5OworCituYW1lc3BhY2UgV2ViS2l0IHsKKwordm9pZCBX
ZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNDbGllbnQ6OnJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyKGNv
bnN0IFN0cmluZyYgc2NoZW1lLCBjb25zdCBVUkwmIGJhc2VVUkwsIGNvbnN0IFVSTCYgdXJsLCBj
b25zdCBTdHJpbmcmIHRpdGxlKQorCit7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFy
ZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChSZWdpc3RlclByb3RvY29sSGFuZGxlcihzY2hl
bWUsIGJhc2VVUkwsIHVybCwgdGl0bGUpLCAwKTsKK30KKworI2lmIEVOQUJMRShDVVNUT01fU0NI
RU1FX0hBTkRMRVIpCitzdGF0aWMgaW5saW5lIE5hdmlnYXRvckNvbnRlbnRVdGlsc0NsaWVudDo6
Q3VzdG9tSGFuZGxlcnNTdGF0ZSB0b0N1c3RvbUhhbmRsZXJzU3RhdGUoY29uc3QgdWludDMyX3Qg
c3RhdGUpCit7CisgICAgc3dpdGNoIChzdGF0ZSkgeworICAgIGNhc2UgTmF2aWdhdG9yQ29udGVu
dFV0aWxzQ2xpZW50OjpDdXN0b21IYW5kbGVyc05ldzoKKyAgICBjYXNlIE5hdmlnYXRvckNvbnRl
bnRVdGlsc0NsaWVudDo6Q3VzdG9tSGFuZGxlcnNSZWdpc3RlcmVkOgorICAgIGNhc2UgTmF2aWdh
dG9yQ29udGVudFV0aWxzQ2xpZW50OjpDdXN0b21IYW5kbGVyc0RlY2xpbmVkOgorICAgICAgICBy
ZXR1cm4gc3RhdGljX2Nhc3Q8TmF2aWdhdG9yQ29udGVudFV0aWxzQ2xpZW50OjpDdXN0b21IYW5k
bGVyc1N0YXRlPihzdGF0ZSk7CisgICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CisgICAgICAgIHJldHVybiBOYXZpZ2F0b3JDb250ZW50VXRpbHNDbGllbnQ6OkN1c3Rv
bUhhbmRsZXJzRGVjbGluZWQ7CisgICAgfQorfQorCitOYXZpZ2F0b3JDb250ZW50VXRpbHNDbGll
bnQ6OkN1c3RvbUhhbmRsZXJzU3RhdGUgV2ViTmF2aWdhdG9yQ29udGVudFV0aWxzQ2xpZW50Ojpp
c1Byb3RvY29sSGFuZGxlclJlZ2lzdGVyZWQoY29uc3QgU3RyaW5nJiBzY2hlbWUsIGNvbnN0IFVS
TCYgYmFzZVVSTCwgY29uc3QgVVJMJiB1cmwpCit7CisgICAgdWludDMyX3QgcmVzdWx0ID0gc3Rh
dGljX2Nhc3Q8dWludDMyX3Q+KE5hdmlnYXRvckNvbnRlbnRVdGlsc0NsaWVudDo6Q3VzdG9tSGFu
ZGxlcnNOZXcpOworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25u
ZWN0aW9uKCktPnNlbmRTeW5jKElzUHJvdG9jb2xIYW5kbGVyUmVnaXN0ZXJlZChzY2hlbWUsIGJh
c2VVUkwsIHVybCksIElzUHJvdG9jb2xIYW5kbGVyUmVnaXN0ZXJlZDo6UmVwbHkocmVzdWx0KSwg
MCk7CisgICAgcmV0dXJuIHRvQ3VzdG9tSGFuZGxlcnNTdGF0ZShyZXN1bHQpOworfQorCit2b2lk
IFdlYk5hdmlnYXRvckNvbnRlbnRVdGlsc0NsaWVudDo6dW5yZWdpc3RlclByb3RvY29sSGFuZGxl
cihjb25zdCBTdHJpbmcmIHNjaGVtZSwgY29uc3QgVVJMJiBiYXNlVVJMLCBjb25zdCBVUkwmIHVy
bCkKK3sKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlv
bigpLT5zZW5kKFVucmVnaXN0ZXJQcm90b2NvbEhhbmRsZXIoc2NoZW1lLCBiYXNlVVJMLCB1cmwp
LCAwKTsKK30KKyNlbmRpZiAvLyBFTkFCTEUoQ1VTVE9NX1NDSEVNRV9IQU5ETEVSKQorCit9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShOQVZJR0FUT1JfQ09OVEVOVF9V
VElMUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViTmF2aWdhdG9yQ29udGVudFV0aWxzQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYk5hdmlnYXRvckNvbnRlbnRVdGlsc0NsaWVudC5oCmlu
ZGV4IDVjMzU3NmRiNDIyNjUzZjcxODFkZGYxZWQ5YTcxOGE0MmE0MTU0YjAuLmUwZDMyMTQ4NDZh
NjFjYmM5OTA4MGYxNDkwOTg5NzA3OTZjOGQ0YmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTmF2aWdhdG9yQ29udGVudFV0aWxzQ2xpZW50
LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJOYXZp
Z2F0b3JDb250ZW50VXRpbHNDbGllbnQuaApAQCAtMzMsMTYgKzMzLDE1IEBACiAKIG5hbWVzcGFj
ZSBXZWJLaXQgewogCi1jbGFzcyBXZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNDbGllbnQgOiBwdWJs
aWMgV2ViQ29yZTo6TmF2aWdhdG9yQ29udGVudFV0aWxzQ2xpZW50IHsKK2NsYXNzIFdlYk5hdmln
YXRvckNvbnRlbnRVdGlsc0NsaWVudCBmaW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpOYXZpZ2F0b3JD
b250ZW50VXRpbHNDbGllbnQgewogcHVibGljOgorICAgIFdlYk5hdmlnYXRvckNvbnRlbnRVdGls
c0NsaWVudCgpIHsgfQogICAgIHZpcnR1YWwgfldlYk5hdmlnYXRvckNvbnRlbnRVdGlsc0NsaWVu
dCgpIHsgfQogCi1wcml2YXRlOgotICAgIHZpcnR1YWwgdm9pZCByZWdpc3RlclByb3RvY29sSGFu
ZGxlcihjb25zdCBTdHJpbmcmIHNjaGVtZSwgY29uc3QgVVJMJiBiYXNlVVJMLCBjb25zdCBVUkwm
IHVybCwgY29uc3QgU3RyaW5nJiB0aXRsZSkgb3ZlcnJpZGUgeyB9Ci0KKyAgICB2aXJ0dWFsIHZv
aWQgcmVnaXN0ZXJQcm90b2NvbEhhbmRsZXIoY29uc3QgU3RyaW5nJiBzY2hlbWUsIGNvbnN0IFdl
YkNvcmU6OlVSTCYgYmFzZVVSTCwgY29uc3QgV2ViQ29yZTo6VVJMJiwgY29uc3QgU3RyaW5nJiB0
aXRsZSkgb3ZlcnJpZGU7CiAjaWYgRU5BQkxFKENVU1RPTV9TQ0hFTUVfSEFORExFUikKLSAgICB2
aXJ0dWFsIEN1c3RvbUhhbmRsZXJzU3RhdGUgaXNQcm90b2NvbEhhbmRsZXJSZWdpc3RlcmVkKGNv
bnN0IFN0cmluZyYsIGNvbnN0IFVSTCYsIGNvbnN0IFVSTCYpIHsgcmV0dXJuIEN1c3RvbUhhbmRs
ZXJzRGVjbGluZWQ7IH0KLSAgICB2aXJ0dWFsIHZvaWQgdW5yZWdpc3RlclByb3RvY29sSGFuZGxl
cihjb25zdCBTdHJpbmcmLCBjb25zdCBVUkwmLCBjb25zdCBVUkwmKSB7IH0KKyAgICB2aXJ0dWFs
IEN1c3RvbUhhbmRsZXJzU3RhdGUgaXNQcm90b2NvbEhhbmRsZXJSZWdpc3RlcmVkKGNvbnN0IFN0
cmluZyYsIGNvbnN0IFdlYkNvcmU6OlVSTCYsIGNvbnN0IFdlYkNvcmU6OlVSTCYpIG92ZXJyaWRl
OworICAgIHZpcnR1YWwgdm9pZCB1bnJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyKGNvbnN0IFN0cmlu
ZyYsIGNvbnN0IFdlYkNvcmU6OlVSTCYsIGNvbnN0IFdlYkNvcmU6OlVSTCYpIG92ZXJyaWRlOwog
I2VuZGlmCiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5jcHAKaW5kZXggYzQ5ZDdkYTUyMDQyMDZkN2M4YWIwZmIzMzcxOGQ2YWEwZTU4MTllNi4uNjM3
OTE1ZTQwZWU4ZDViZjgxN2RkMmFjOGQ1MWM4MTllMDU0YzQ1NCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtMTc5LDYgKzE3OSwxMCBAQAog
I2luY2x1ZGUgIldlYkJhdHRlcnlDbGllbnQuaCIKICNlbmRpZgogCisjaWYgRU5BQkxFKE5BVklH
QVRPUl9DT05URU5UX1VUSUxTKQorI2luY2x1ZGUgIldlYk5hdmlnYXRvckNvbnRlbnRVdGlsc0Ns
aWVudC5oIgorI2VuZGlmCisKICNpZiBFTkFCTEUoVklCUkFUSU9OKQogI2luY2x1ZGUgIldlYlZp
YnJhdGlvbkNsaWVudC5oIgogI2VuZGlmCkBAIC00MDksNiArNDEzLDkgQEAgV2ViUGFnZTo6V2Vi
UGFnZSh1aW50NjRfdCBwYWdlSUQsIGNvbnN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmIHBh
cmFtZXRlcnMpCiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpIHx8IEVOQUJMRShMRUdBQ1lfTk9U
SUZJQ0FUSU9OUykKICAgICBXZWJDb3JlOjpwcm92aWRlTm90aWZpY2F0aW9uKG1fcGFnZS5nZXQo
KSwgbmV3IFdlYk5vdGlmaWNhdGlvbkNsaWVudCh0aGlzKSk7CiAjZW5kaWYKKyNpZiBFTkFCTEUo
TkFWSUdBVE9SX0NPTlRFTlRfVVRJTFMpCisgICAgV2ViQ29yZTo6cHJvdmlkZU5hdmlnYXRvckNv
bnRlbnRVdGlsc1RvKG1fcGFnZS5nZXQoKSwgc3RkOjptYWtlX3VuaXF1ZTxXZWJLaXQ6OldlYk5h
dmlnYXRvckNvbnRlbnRVdGlsc0NsaWVudD4oKSk7CisjZW5kaWYKICNpZiBFTkFCTEUoVklCUkFU
SU9OKQogICAgIFdlYkNvcmU6OnByb3ZpZGVWaWJyYXRpb25UbyhtX3BhZ2UuZ2V0KCksIG5ldyBX
ZWJWaWJyYXRpb25DbGllbnQodGhpcykpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCAwNjRiMTI1ZjMyMDQ1YWQ1NzczMDg4MDQyYTZi
ZGE1MGUwMzZlMjlhLi45NzdhZTYwMTAwYWNjMzU2OWFjM2I2OTYxNWI5ODMzMTQxYjM3NjY4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTE2Niw2
ICsxNjYsNyBAQCBjbGFzcyBXZWJJbnNwZWN0b3JDbGllbnQ7CiBjbGFzcyBXZWJJbnNwZWN0b3JV
STsKIGNsYXNzIFdlYktleWJvYXJkRXZlbnQ7CiBjbGFzcyBXZWJNb3VzZUV2ZW50OworY2xhc3Mg
V2ViTmF2aWdhdG9yQ29udGVudFV0aWxzQ2xpZW50OwogY2xhc3MgV2ViTm90aWZpY2F0aW9uQ2xp
ZW50OwogY2xhc3MgV2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXI7CiBjbGFzcyBXZWJQYWdlR3Jv
dXBQcm94eTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwppbmRleCA1N2I5YmIwMWQ3NzA5NzA3YmU1ODYwMTUwN2Q3Y2RjNGQyYTlmMjBk
Li5lZjA4ZWQ0YWVlYjBiOTc4YzllNDZhZjIwMGE0NWI2M2M0ZmRiMmUzIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTIgQEAKKzIwMTUtMDgtMDUgIEd5dXlvdW5nIEtpbSAgPGd5dXlvdW5nLmtpbUB3ZWJraXQu
b3JnPgorCisgICAgICAgIFtXSzJdIEFkZCBOYXZpZ2F0b3IgQ29udGVudCBVdGlscyBBUEkgc3Vw
cG9ydCBmb3IgV2ViS2l0MgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9OTI3NDkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIHBsYXRmb3JtL2VmbC9UZXN0RXhwZWN0YXRpb25zOiBVbnNraXAgbmF2aWdhdG9y
IGNvbnRlbnQgdXRpbHMgdGVzdHMuCisKIDIwMTUtMDgtMDUgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KIAogICAgICAgICBDcmFzaCB3aGVuIHJlbW92aW5nIGNoaWxkcmVuIG9mIGEg
TWF0aE1MU2VsZWN0RWxlbWVudApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZs
L1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvVGVzdEV4cGVjdGF0
aW9ucwppbmRleCAwODVhOWE0OWUzMzI0OWE0MGU3NmNiMWM4NWYzNjkxMGI3YjMxYWNmLi43MzU0
MDdiYTM5ZDdmNzFhNWFlNjRhYjU0MWE3NjQ3MjdhNjE1YmEwIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9lZmwvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9lZmwvVGVzdEV4cGVjdGF0aW9ucwpAQCAtNTY2LDkgKzU2Niw2IEBAIEJ1ZyhFRkwpIGZh
c3QvY3NzL2xpbmUtaGVpZ2h0LWRldGVybWluZWQtYnktcHJpbWFyeS1mb250Lmh0bWwgWyBGYWls
dXJlIF0KICMgQ1JBU0hFUwogIy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KIAotd2Vi
a2l0Lm9yZy9iLzkyNzI2IGZhc3QvZG9tL05hdmlnYXRvckNvbnRlbnRVdGlscy9yZWdpc3Rlci1w
cm90b2NvbC1oYW5kbGVyLmh0bWwgWyBDcmFzaCBdCi13ZWJraXQub3JnL2IvOTI3MjYgZmFzdC9k
b20vTmF2aWdhdG9yQ29udGVudFV0aWxzL3VucmVnaXN0ZXItcHJvdG9jb2wtaGFuZGxlci5odG1s
IFsgQ3Jhc2ggXQotCiAjIENyYXNoZXMgb24gcGx1Z2luIHRlc3QsIGFsc28gYmxvY2tlZCBieSAx
MDgwNzcKIHdlYmtpdC5vcmcvYi85ODc0NyBwbHVnaW5zL2RvY3VtZW50LW9wZW4uaHRtbCBbIENy
YXNoIEZhaWx1cmUgVGltZW91dCBdCiAK
</data>
<flag name="review"
          id="283533"
          type_id="1"
          status="-"
          setter="beidson"
    />
          </attachment>
      

    </bug>

</bugzilla>