<?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>195140</bug_id>
          
          <creation_ts>2019-02-27 18:20:27 -0800</creation_ts>
          <short_desc>Move initialHTTPCookieAcceptPolicy to NetworkSession</short_desc>
          <delta_ts>2019-06-25 12:29:33 -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>WebKit Nightly Build</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>LATER</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=193458</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=191645</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Michael Catanzaro">mcatanzaro</reporter>
          <assigned_to name="Michael Catanzaro">mcatanzaro</assigned_to>
          <cc>achristensen</cc>
    
    <cc>basuke</cc>
    
    <cc>berto</cc>
    
    <cc>cgarcia</cc>
    
    <cc>dbates</cc>
    
    <cc>don.olmstead</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gustavo</cc>
    
    <cc>mcatanzaro</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1510754</commentid>
    <comment_count>0</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-02-27 18:20:27 -0800</bug_when>
    <thetext>Hey Alex, this is part two in removing libsoup-specific members from NetworkProcessCreationParameters. Here I move initialHTTPAcceptPolicy from NetworkProcess to NetworkSession. Alex, this one could benefit from more review than usual because there were a few different ways to do this. I decided to make this variable cross-platform, because I think setting the cookie accept policy before the first web process is created is broken on non-libsoup ports without this. Then, accept policy was already tied to SessionID in the UI process, but in the network process it was global. I was only able to completely change this for non-Cocoa ports, because Cocoa has the sharedHTTPCookieStorage. So it&apos;s still global, but now only WebCookieManagerMac.cpp knows this, and everywhere else uses SessionID. We could alternatively get rid of SessionID in the UI process and just leave it as global. (We could also keep initialHTTPAcceptPolicy libsoup-specific, but it really doesn&apos;t need to be.)

I also tried hard to change it from legacy enum to enum class, but got thwarted by too many errors. We could try that again in another patch.

Oh, and for good measure I change libsoup from using HTTPCookieAcceptPolicyOnlyFromMainDocumentDomain to using HTTPCookieAcceptPolicyExclusivelyFromMainDocumentDomain, to resolve bug #193458. I could split that out if desired, but it&apos;s not much code compared to the rest of the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1510758</commentid>
    <comment_count>1</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-02-27 18:26:45 -0800</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #0)
&gt; So it&apos;s still global, but now only
&gt; WebCookieManagerMac.cpp knows this, and everywhere else uses SessionID.

Also: WebCookieManagerProxy::persistHTTPCookieAcceptPolicy in the UI process</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1510759</commentid>
    <comment_count>2</comment_count>
      <attachid>363175</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-02-27 18:27:01 -0800</bug_when>
    <thetext>Created attachment 363175
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1510760</commentid>
    <comment_count>3</comment_count>
      <attachid>363175</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-02-27 18:29:44 -0800</bug_when>
    <thetext>Comment on attachment 363175
Patch

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

&gt; Source/WebKit/Shared/HTTPCookieAcceptPolicy.h:44
&gt; +#if USE(SOUP) || USE(CURL)
&gt; +const HTTPCookieAcceptPolicy defaultHTTPCookieAcceptPolicy = HTTPCookieAcceptPolicyExclusivelyFromMainDocumentDomain;
&gt; +#else
&gt; +const HTTPCookieAcceptPolicy defaultHTTPCookieAcceptPolicy = HTTPCookieAcceptPolicyAlways;
&gt; +#endif

Oh I wasn&apos;t sure about this either. I guess EWS will complain if this is the wrong default for Cocoa....</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1510761</commentid>
    <comment_count>4</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-02-27 18:29:47 -0800</bug_when>
    <thetext>Thanks for the patch. If this patch contains new public API please make sure it follows the guidelines for new WebKit2 GTK+ API. See http://trac.webkit.org/wiki/WebKitGTK/AddingNewWebKit2API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1510762</commentid>
    <comment_count>5</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-02-27 18:30:07 -0800</bug_when>
    <thetext>Attachment 363175 did not pass style-queue:


ERROR: Source/WebKit/UIProcess/WebCookieManagerProxy.cpp:241:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/WebCookieManagerProxy.cpp:266:  Extra space before ( in function call  [whitespace/parens] [4]
Total errors found: 2 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>1510763</commentid>
    <comment_count>6</comment_count>
      <attachid>363176</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-02-27 18:35:14 -0800</bug_when>
    <thetext>Created attachment 363176
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1510766</commentid>
    <comment_count>7</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-02-27 18:37:23 -0800</bug_when>
    <thetext>Attachment 363176 did not pass style-queue:


ERROR: Source/WebKit/UIProcess/WebCookieManagerProxy.cpp:241:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/WebCookieManagerProxy.cpp:266:  Extra space before ( in function call  [whitespace/parens] [4]
Total errors found: 2 in 24 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>1510768</commentid>
    <comment_count>8</comment_count>
      <attachid>363178</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-02-27 18:40:50 -0800</bug_when>
    <thetext>Created attachment 363178
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1510769</commentid>
    <comment_count>9</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-02-27 18:42:54 -0800</bug_when>
    <thetext>Attachment 363178 did not pass style-queue:


ERROR: Source/WebKit/UIProcess/WebCookieManagerProxy.cpp:241:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/WebCookieManagerProxy.cpp:266:  Extra space before ( in function call  [whitespace/parens] [4]
Total errors found: 2 in 24 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>1511615</commentid>
    <comment_count>10</comment_count>
      <attachid>363178</attachid>
    <who name="Don Olmstead">don.olmstead</who>
    <bug_when>2019-03-01 14:20:06 -0800</bug_when>
    <thetext>Comment on attachment 363178
Patch

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

&gt; Source/WebKit/Shared/HTTPCookieAcceptPolicy.h:38
&gt;  enum {
&gt;      HTTPCookieAcceptPolicyAlways = 0,
&gt;      HTTPCookieAcceptPolicyNever = 1,
&gt; +    // Misnamed, this means no third-party cookies except from domains that have previously set cookies.
&gt;      HTTPCookieAcceptPolicyOnlyFromMainDocumentDomain = 2,
&gt; +    // No third-party cookies at all.
&gt;      HTTPCookieAcceptPolicyExclusivelyFromMainDocumentDomain = 3,
&gt;  };
&gt;  typedef unsigned HTTPCookieAcceptPolicy;

Wanted to mention https://trac.webkit.org/changeset/242281/webkit which converts to an enum class. I remember you saying that you were having problems with that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1511676</commentid>
    <comment_count>11</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-03-01 16:25:11 -0800</bug_when>
    <thetext>Yeah thanks, I might try that in a follow-up.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1511988</commentid>
    <comment_count>12</comment_count>
      <attachid>363178</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2019-03-03 13:53:21 -0800</bug_when>
    <thetext>Comment on attachment 363178
Patch

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

&gt; Source/WebKit/NetworkProcess/Cookies/soup/WebCookieManagerSoup.cpp:73
&gt; +        switch (soup_cookie_jar_get_accept_policy(session-&gt;cookieStorage())) {
&gt; +        case SOUP_COOKIE_JAR_ACCEPT_ALWAYS:
&gt; +            return HTTPCookieAcceptPolicyAlways;
&gt; +        case SOUP_COOKIE_JAR_ACCEPT_NEVER:
&gt; +            return HTTPCookieAcceptPolicyNever;
&gt; +        case SOUP_COOKIE_JAR_ACCEPT_NO_THIRD_PARTY:
&gt; +            return HTTPCookieAcceptPolicyExclusivelyFromMainDocumentDomain;
&gt; +        }
&gt; +        ASSERT_NOT_REACHED();

Ok as-is. Could move this code into a static non-member function to make this code prettier.

&gt; Source/WebKit/NetworkProcess/NetworkSessionCreationParameters.cpp:51
&gt; +        , defaultHTTPCookieAcceptPolicy, { }, { }, false

Not your problem, but this kind of aggregate initializer usage is what gives uniform initializer syntax (UIS) a bad name. UIS should be used to improve readability, but this initializer is completely incomprehensible. So many ways to improve this code..... I am leaning towards stack allocate the object in the function and set each struct member on its own line (this will be just as performant because any non-dumb compiler will move local to return AND elide the move &lt;— RVO QED). That’s the best in my opinion in terms of readability (don’t believe me? ask I’ll give you a longer argument). A cop out, but improvement nonetheless would be to mention the class name before the UIS braces and add inline comments or local variables for the Boolean. Yeah, as I type this “cop out” I can’t say it with a straight face. stack allocate or walk away.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1511989</commentid>
    <comment_count>13</comment_count>
      <attachid>363178</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2019-03-03 14:02:19 -0800</bug_when>
    <thetext>Comment on attachment 363178
Patch

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

&gt;&gt; Source/WebKit/NetworkProcess/Cookies/soup/WebCookieManagerSoup.cpp:73
&gt;&gt; +        switch (soup_cookie_jar_get_accept_policy(session-&gt;cookieStorage())) {
&gt;&gt; +        case SOUP_COOKIE_JAR_ACCEPT_ALWAYS:
&gt;&gt; +            return HTTPCookieAcceptPolicyAlways;
&gt;&gt; +        case SOUP_COOKIE_JAR_ACCEPT_NEVER:
&gt;&gt; +            return HTTPCookieAcceptPolicyNever;
&gt;&gt; +        case SOUP_COOKIE_JAR_ACCEPT_NO_THIRD_PARTY:
&gt;&gt; +            return HTTPCookieAcceptPolicyExclusivelyFromMainDocumentDomain;
&gt;&gt; +        }
&gt;&gt; +        ASSERT_NOT_REACHED();
&gt; 
&gt; Ok as-is. Could move this code into a static non-member function to make this code prettier.

Ok as-is. Could move this code into a static non-member function to make this code prettier.

&gt; Source/WebKit/NetworkProcess/NetworkSessionCreationParameters.cpp:199
&gt; +        , WTFMove(initialHTTPCookieAcceptPolicy)

Again, not your problem, No love went into this code, but love could be given to it :) struct allocate and return the struct would work. Haven’t read the code, but even better would be to decode directly into struct. Oh well, ship may have sailed for that one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1512148</commentid>
    <comment_count>14</comment_count>
      <attachid>363178</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-03-04 06:57:12 -0800</bug_when>
    <thetext>Comment on attachment 363178
Patch

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

I agree the struct initialization in NetworkSessionCreationParameters is gnarly, and could stand to be improved in a separate patch.

&gt;&gt;&gt; Source/WebKit/NetworkProcess/Cookies/soup/WebCookieManagerSoup.cpp:73
&gt;&gt;&gt; +        ASSERT_NOT_REACHED();
&gt;&gt; 
&gt;&gt; Ok as-is. Could move this code into a static non-member function to make this code prettier.
&gt; 
&gt; Ok as-is. Could move this code into a static non-member function to make this code prettier.

This should remain a member function because it accesses a member variable (the NetworkProcess). To turn it into a non-member function, we&apos;d need to pass the NetworkProcess as a parameter, which doesn&apos;t seem worth it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1512286</commentid>
    <comment_count>15</comment_count>
      <attachid>363178</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2019-03-04 12:11:39 -0800</bug_when>
    <thetext>Comment on attachment 363178
Patch

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

&gt;&gt;&gt;&gt; Source/WebKit/NetworkProcess/Cookies/soup/WebCookieManagerSoup.cpp:73
&gt;&gt;&gt;&gt; +        ASSERT_NOT_REACHED();
&gt;&gt;&gt; 
&gt;&gt;&gt; Ok as-is. Could move this code into a static non-member function to make this code prettier.
&gt;&gt; 
&gt;&gt; Ok as-is. Could move this code into a static non-member function to make this code prettier.
&gt; 
&gt; This should remain a member function because it accesses a member variable (the NetworkProcess). To turn it into a non-member function, we&apos;d need to pass the NetworkProcess as a parameter, which doesn&apos;t seem worth it.

I’m talking about the switch. The switch block can be extracted pramrterized by its condition</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1512330</commentid>
    <comment_count>16</comment_count>
      <attachid>363178</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-03-04 13:11:17 -0800</bug_when>
    <thetext>Comment on attachment 363178
Patch

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

&gt;&gt;&gt;&gt;&gt; Source/WebKit/NetworkProcess/Cookies/soup/WebCookieManagerSoup.cpp:73
&gt;&gt;&gt;&gt;&gt; +        ASSERT_NOT_REACHED();
&gt;&gt;&gt;&gt; 
&gt;&gt;&gt;&gt; Ok as-is. Could move this code into a static non-member function to make this code prettier.
&gt;&gt;&gt; 
&gt;&gt;&gt; Ok as-is. Could move this code into a static non-member function to make this code prettier.
&gt;&gt; 
&gt;&gt; This should remain a member function because it accesses a member variable (the NetworkProcess). To turn it into a non-member function, we&apos;d need to pass the NetworkProcess as a parameter, which doesn&apos;t seem worth it.
&gt; 
&gt; I’m talking about the switch. The switch block can be extracted pramrterized by its condition

Well it could, but I don&apos;t think that&apos;s necessarily going to be easier to read. This function is little more than that switch block already.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1518261</commentid>
    <comment_count>17</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-03-19 07:57:00 -0700</bug_when>
    <thetext>Alex, this NetworkProcess -&gt; NetworkSession work was requested by you; do you want to review it? This is the hardest part of the work, since we have to decide how to handle initialHTTPCookieAcceptPolicy; the remaining parameters should be easier.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1519077</commentid>
    <comment_count>18</comment_count>
      <attachid>363178</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-03-20 12:14:28 -0700</bug_when>
    <thetext>Comment on attachment 363178
Patch

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

It is not obvious that this patch does not change behavior on Cocoa platforms.  I think this patch should be redone in a simpler way that is clear it only affects lib soup.

&gt; Source/WebKit/NetworkProcess/NetworkSession.cpp:75
&gt; +    networkProcess.supplement&lt;WebCookieManager&gt;()-&gt;setHTTPCookieAcceptPolicy(m_sessionID, parameters.initialHTTPCookieAcceptPolicy, OptionalCallbackID());

This seems like it&apos;s in the wrong place.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1519224</commentid>
    <comment_count>19</comment_count>
      <attachid>363178</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-03-20 15:13:06 -0700</bug_when>
    <thetext>Comment on attachment 363178
Patch

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

I can make initialHTTPCookieAcceptPolicy soup-specific, sure. But understand that the current patch is actually *not* soup-specific, it&apos;s really a behavior change for Mac. Previously, I think an attempt to set the cookie accept policy before the network process is created would fail. Now it should work. And that&apos;s when apps are most likely to want to use this setting, so I figured you would want it too.  (For Cocoa, it will affect every NetworkSession, though.)

Now, what I can&apos;t make soup-specific are all the cross-platform functions for setting cookie accept policy. Not sure how I&apos;ll handle this. Currently those are NetworkSession-specific in the UI process, but global in the network process; i.e. all the NetworkSession parameters in the UI process are actually a lie. So the status quo there is pretty poor. Any preferences for how to handle that?

I actually wonder if perhaps we should leave this as network process global after all, simply because Cocoa ports have the SharedCookieStorage, and so any attempt to make this NetworkSession-specific is going to be a lie there. That would simplify everything a lot, but it runs against your goal of reducing network process globals.

&gt;&gt; Source/WebKit/NetworkProcess/NetworkSession.cpp:75
&gt;&gt; +    networkProcess.supplement&lt;WebCookieManager&gt;()-&gt;setHTTPCookieAcceptPolicy(m_sessionID, parameters.initialHTTPCookieAcceptPolicy, OptionalCallbackID());
&gt; 
&gt; This seems like it&apos;s in the wrong place.

I think it&apos;s the right place; why do you think it&apos;s not? It was in platformInitializeNetworkProcess before. We don&apos;t have an initializeNetworkSession function, so constructor seems like the best place.

(Of course, if you want it soup-specific, I&apos;ll move it to NetworkSessionSoup.cpp.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1519230</commentid>
    <comment_count>20</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-03-20 15:20:15 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #19)
&gt; I actually wonder if perhaps we should leave this as network process global
&gt; after all, simply because Cocoa ports have the SharedCookieStorage, and so
&gt; any attempt to make this NetworkSession-specific is going to be a lie there.
&gt; That would simplify everything a lot, but it runs against your goal of
&gt; reducing network process globals.

Well actually, I think that&apos;s the answer right there. If the cross-platform HTTPCookieAcceptPolicy functions are network process globals, then InitialHTTTPCookieAcceptPolicy should be too. If they&apos;re NetworkSession-specific, then InitialHTTPCookieAcceptPolicy should follow. The inconsistent status quo is problematic and makes it difficult to decide what behavior is desirable:

(In reply to Michael Catanzaro from comment #19)
&gt; Currently those are NetworkSession-specific in the UI process, but global in the
&gt; network process; i.e. all the NetworkSession parameters in the UI process
&gt; are actually a lie.

Most of my patch here is dedicated to cleaning that up and making it really NetworkSession-specific everywhere, instead of only in the UI process, (at least all the way until we get to Cocoa&apos;s SharedCookieStorage, which ruins things there). If you don&apos;t want those changes, then we should remove the SessionID parameters from the UI process functions to reflect that it&apos;s really global in the network process. OK?

Decisions, decisions....</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1519231</commentid>
    <comment_count>21</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-03-20 15:21:36 -0700</bug_when>
    <thetext>&gt; (In reply to Michael Catanzaro from comment #19)
&gt; i.e. all the NetworkSession parameters in the UI process
&gt; are actually a lie.

I meant &quot;SessionID parameters&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1528213</commentid>
    <comment_count>22</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-04-17 12:21:01 -0700</bug_when>
    <thetext>Alex, if you want me to keep working on moving soup stuff from NetworkProcessCreationParameters to NetworkSessionCreationParameters, I need to know how you want me to handle this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1547742</commentid>
    <comment_count>23</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-06-25 11:15:43 -0700</bug_when>
    <thetext>This bug has become much less important.  Let&apos;s come back to it if needed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1547760</commentid>
    <comment_count>24</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-06-25 12:29:33 -0700</bug_when>
    <thetext>Fair enough!

I&apos;m going to suggest removing the sessionID parameters from the UI process side of this, then, since it&apos;s not hooked up on the network process side and it&apos;s a weird state to leave trunk in. Happy to cook a patch if desired.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>363175</attachid>
            <date>2019-02-27 18:27:01 -0800</date>
            <delta_ts>2019-02-27 18:35:12 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-195140-20190227202700.patch</filename>
            <type>text/plain</type>
            <size>37909</size>
            <attacher name="Michael Catanzaro">mcatanzaro</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQyMTQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDcxM2FjZDE3ZDFkZTcwN2Yw
MzlmNzYwYzhkNGM2ZTZlZmQzZGViODQuLjViNDllZjhkYjNkY2ViNDA4MmJlMmYyZTNiODNjZDY3
ZmI4OTFiMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjIgQEAKKzIwMTktMDItMjcgIE1pY2hhZWwg
Q2F0YW56YXJvICA8bWNhdGFuemFyb0BpZ2FsaWEuY29tPgorCisgICAgICAgIE1vdmUgaW5pdGlh
bEhUVFBBY2NlcHRQb2xpY3kgdG8gTmV0d29ya1Nlc3Npb24KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NTE0MAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvQ29va2llcy9XZWJD
b29raWVNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ29va2llTWFuYWdlcjo6c2V0
SFRUUENvb2tpZUFjY2VwdFBvbGljeSk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvb2tpZU1hbmFn
ZXI6OmdldEhUVFBDb29raWVBY2NlcHRQb2xpY3kpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNz
L0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlci5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0Nv
b2tpZXMvV2ViQ29va2llTWFuYWdlci5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9Db29raWVzL2N1cmwvV2ViQ29va2llTWFuYWdlckN1cmwuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJDb29raWVNYW5hZ2VyOjpwbGF0Zm9ybVNldEhUVFBDb29raWVBY2NlcHRQb2xpY3kp
OgorICAgICAgICAoV2ViS2l0OjpXZWJDb29raWVNYW5hZ2VyOjpwbGF0Zm9ybUdldEhUVFBDb29r
aWVBY2NlcHRQb2xpY3kpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0Nvb2tpZXMvbWFjL1dl
YkNvb2tpZU1hbmFnZXJNYWMubW06CisgICAgICAgIChXZWJLaXQ6OldlYkNvb2tpZU1hbmFnZXI6
OnBsYXRmb3JtU2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YkNvb2tpZU1hbmFnZXI6OnBsYXRmb3JtR2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeSk6CisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvQ29va2llcy9zb3VwL1dlYkNvb2tpZU1hbmFnZXJTb3VwLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ29va2llTWFuYWdlcjo6cGxhdGZvcm1TZXRIVFRQQ29v
a2llQWNjZXB0UG9saWN5KToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29va2llTWFuYWdlcjo6cGxh
dGZvcm1HZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHA6CisgICAgICAgIChXZWJLaXQ6
Ok5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUgY29uc3QpOgorICAgICAg
ICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKToKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5o
OgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6TmV0d29ya1Nlc3Npb246Ok5ldHdvcmtTZXNzaW9uKToKKyAgICAgICAgKiBOZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05l
dHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0
d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnM6OnByaXZhdGVTZXNzaW9uUGFyYW1ldGVycyk6
CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNv
ZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1l
dGVyczo6ZGVjb2RlKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbkNy
ZWF0aW9uUGFyYW1ldGVycy5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29y
a1Byb2Nlc3NTb3VwLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnBsYXRm
b3JtSW5pdGlhbGl6ZU5ldHdvcmtQcm9jZXNzKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9z
b3VwL05ldHdvcmtTZXNzaW9uU291cC5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNz
aW9uU291cDo6TmV0d29ya1Nlc3Npb25Tb3VwKToKKyAgICAgICAgKiBTaGFyZWQvSFRUUENvb2tp
ZUFjY2VwdFBvbGljeS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRDb29r
aWVNYW5hZ2VyLmNwcDoKKyAgICAgICAgKHRvV2ViS2l0Q29va2llQWNjZXB0UG9saWN5KToKKyAg
ICAgICAgKHRvSFRUUENvb2tpZUFjY2VwdFBvbGljeSk6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YkNvb2tpZU1hbmFnZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNvb2tpZU1hbmFn
ZXJQcm94eTo6c2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YkNvb2tpZU1hbmFnZXJQcm94eTo6Z2V0SW5pdGlhbEhUVFBDb29raWVBY2NlcHRQb2xpY3kpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJDb29raWVNYW5hZ2VyUHJveHk6OmdldEhUVFBDb29raWVBY2Nl
cHRQb2xpY3kpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJveHkuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJQcm9jZXNzUG9vbDo6ZW5zdXJlTmV0d29ya1Byb2Nlc3MpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJQcm9jZXNzUG9vbC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9D
b2NvYS9XZWJzaXRlRGF0YVN0b3JlQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVE
YXRhU3RvcmU6OnBhcmFtZXRlcnMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9X
ZWJzaXRlRGF0YVN0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6
cGFyYW1ldGVycyk6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9XZWJDb29raWVNYW5hZ2VyUHJv
eHlNYWMubW06CisgICAgICAgIChXZWJLaXQ6OldlYkNvb2tpZU1hbmFnZXJQcm94eTo6cGVyc2lz
dEhUVFBDb29raWVBY2NlcHRQb2xpY3kpOgorICAgICAgICAqIFVJUHJvY2Vzcy9zb3VwL1dlYlBy
b2Nlc3NQb29sU291cC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpwbGF0
Zm9ybUluaXRpYWxpemVOZXR3b3JrUHJvY2Vzcyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHA6CisKIDIwMTktMDItMjcgIFlvdWVubiBGYWJs
ZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSBVc2VyTWVkaWFQcm9jZXNz
TWFuYWdlciBwcm9jZXNzU3RhdGUgbWFwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlci5jcHAKaW5kZXggYmY2MzFhMDQ1
OTVmZGQ3YWQ3OThkMjBmMTZmYTllZDI4Njc5YWRmMC4uZmRmOWRiNTE5OTUwYWVmZDNhODU4NDEw
YmY0OWMzOWQ0YWQ5NGE3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvQ29va2llcy9XZWJDb29raWVNYW5hZ2VyLmNwcApAQCAtMTQ5LDE3ICsxNDksMTcg
QEAgdm9pZCBXZWJDb29raWVNYW5hZ2VyOjpzdG9wT2JzZXJ2aW5nQ29va2llQ2hhbmdlcyhQQUw6
OlNlc3Npb25JRCBzZXNzaW9uSUQpCiAgICAgICAgIFdlYkNvcmU6OnN0b3BPYnNlcnZpbmdDb29r
aWVDaGFuZ2VzKCpzdG9yYWdlU2Vzc2lvbik7CiB9CiAKLXZvaWQgV2ViQ29va2llTWFuYWdlcjo6
c2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShIVFRQQ29va2llQWNjZXB0UG9saWN5IHBvbGljeSwg
T3B0aW9uYWxDYWxsYmFja0lEIGNhbGxiYWNrSUQpCit2b2lkIFdlYkNvb2tpZU1hbmFnZXI6OnNl
dEhUVFBDb29raWVBY2NlcHRQb2xpY3koUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBIVFRQQ29v
a2llQWNjZXB0UG9saWN5IHBvbGljeSwgT3B0aW9uYWxDYWxsYmFja0lEIGNhbGxiYWNrSUQpCiB7
Ci0gICAgcGxhdGZvcm1TZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KHBvbGljeSk7CisgICAgcGxh
dGZvcm1TZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KHNlc3Npb25JRCwgcG9saWN5KTsKIAogICAg
IGlmIChjYWxsYmFja0lEKQogICAgICAgICBtX3Byb2Nlc3Muc2VuZChNZXNzYWdlczo6V2ViQ29v
a2llTWFuYWdlclByb3h5OjpEaWRTZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KGNhbGxiYWNrSUQu
Y2FsbGJhY2tJRCgpKSwgMCk7CiB9CiAKLXZvaWQgV2ViQ29va2llTWFuYWdlcjo6Z2V0SFRUUENv
b2tpZUFjY2VwdFBvbGljeShDYWxsYmFja0lEIGNhbGxiYWNrSUQpCit2b2lkIFdlYkNvb2tpZU1h
bmFnZXI6OmdldEhUVFBDb29raWVBY2NlcHRQb2xpY3koUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
LCBDYWxsYmFja0lEIGNhbGxiYWNrSUQpCiB7Ci0gICAgbV9wcm9jZXNzLnNlbmQoTWVzc2FnZXM6
OldlYkNvb2tpZU1hbmFnZXJQcm94eTo6RGlkR2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShwbGF0
Zm9ybUdldEhUVFBDb29raWVBY2NlcHRQb2xpY3koKSwgY2FsbGJhY2tJRCksIDApOworICAgIG1f
cHJvY2Vzcy5zZW5kKE1lc3NhZ2VzOjpXZWJDb29raWVNYW5hZ2VyUHJveHk6OkRpZEdldEhUVFBD
b29raWVBY2NlcHRQb2xpY3kocGxhdGZvcm1HZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KHNlc3Np
b25JRCksIGNhbGxiYWNrSUQpLCAwKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFu
YWdlci5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1h
bmFnZXIuaAppbmRleCAzYzQ4MDk1NmU2Yjc1MmMyYTlhZDgwYjY4MjYxMWMxNjQ3ZmUzZTdkLi5m
NzY0Y2NhYTAyYmI0NjM3MDJiMzk1MDAwMWJkNGFmNGNhNTg1ZWZmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlci5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ29va2llcy9XZWJDb29raWVNYW5hZ2VyLmgK
QEAgLTU1LDcgKzU1LDcgQEAgcHVibGljOgogCiAgICAgc3RhdGljIGNvbnN0IGNoYXIqIHN1cHBs
ZW1lbnROYW1lKCk7CiAKLSAgICB2b2lkIHNldEhUVFBDb29raWVBY2NlcHRQb2xpY3koSFRUUENv
b2tpZUFjY2VwdFBvbGljeSwgT3B0aW9uYWxDYWxsYmFja0lEKTsKKyAgICB2b2lkIHNldEhUVFBD
b29raWVBY2NlcHRQb2xpY3koUEFMOjpTZXNzaW9uSUQsIEhUVFBDb29raWVBY2NlcHRQb2xpY3ks
IE9wdGlvbmFsQ2FsbGJhY2tJRCk7CiAKICNpZiBVU0UoU09VUCkKICAgICB2b2lkIHNldENvb2tp
ZVBlcnNpc3RlbnRTdG9yYWdlKFBBTDo6U2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIHN0b3JhZ2VQ
YXRoLCBTb3VwQ29va2llUGVyc2lzdGVudFN0b3JhZ2VUeXBlKTsKQEAgLTc5LDkgKzc5LDkgQEAg
cHJpdmF0ZToKICAgICB2b2lkIGdldEFsbENvb2tpZXMoUEFMOjpTZXNzaW9uSUQsIENhbGxiYWNr
SUQpOwogICAgIHZvaWQgZ2V0Q29va2llcyhQQUw6OlNlc3Npb25JRCwgY29uc3QgVVJMJiwgQ2Fs
bGJhY2tJRCk7CiAKLSAgICB2b2lkIHBsYXRmb3JtU2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShI
VFRQQ29va2llQWNjZXB0UG9saWN5KTsKLSAgICB2b2lkIGdldEhUVFBDb29raWVBY2NlcHRQb2xp
Y3koQ2FsbGJhY2tJRCk7Ci0gICAgSFRUUENvb2tpZUFjY2VwdFBvbGljeSBwbGF0Zm9ybUdldEhU
VFBDb29raWVBY2NlcHRQb2xpY3koKTsKKyAgICB2b2lkIHBsYXRmb3JtU2V0SFRUUENvb2tpZUFj
Y2VwdFBvbGljeShQQUw6OlNlc3Npb25JRCwgSFRUUENvb2tpZUFjY2VwdFBvbGljeSk7CisgICAg
dm9pZCBnZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KFBBTDo6U2Vzc2lvbklELCBDYWxsYmFja0lE
KTsKKyAgICBIVFRQQ29va2llQWNjZXB0UG9saWN5IHBsYXRmb3JtR2V0SFRUUENvb2tpZUFjY2Vw
dFBvbGljeShQQUw6OlNlc3Npb25JRCk7CiAKICAgICB2b2lkIHN0YXJ0T2JzZXJ2aW5nQ29va2ll
Q2hhbmdlcyhQQUw6OlNlc3Npb25JRCk7CiAgICAgdm9pZCBzdG9wT2JzZXJ2aW5nQ29va2llQ2hh
bmdlcyhQQUw6OlNlc3Npb25JRCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvQ29va2llcy9XZWJDb29raWVNYW5hZ2VyLm1lc3NhZ2VzLmluCmlu
ZGV4IDk0NDA1NmNmZDQ0MzVmNTUxYWNjYThhNmQ5MWVmODUyOTI0MTQxMzguLjkzZjIwYjExNjZi
NTA4OWZhYmVhNGQ3MDViNDI3MzJkMTRkZjBmNWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvQ29va2llcy9XZWJDb29raWVNYW5hZ2VyLm1lc3NhZ2VzLmluCisrKyBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ29va2llcy9XZWJDb29raWVNYW5hZ2VyLm1l
c3NhZ2VzLmluCkBAIC0zNSw4ICszNSw4IEBACiAgICAgdm9pZCBEZWxldGVDb29raWUoUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklELCBzdHJ1Y3QgV2ViQ29yZTo6Q29va2llIGNvb2tpZSwgV2ViS2l0
OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQpCiAgICAgdm9pZCBEZWxldGVBbGxDb29raWVzTW9kaWZp
ZWRTaW5jZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdhbGxUaW1lIHRpbWUsIFdlYktpdDo6
Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQogCi0gICAgdm9pZCBTZXRIVFRQQ29va2llQWNjZXB0UG9s
aWN5KHVpbnQzMl90IHBvbGljeSwgV2ViS2l0OjpPcHRpb25hbENhbGxiYWNrSUQgY2FsbGJhY2tJ
RCkKLSAgICB2b2lkIEdldEhUVFBDb29raWVBY2NlcHRQb2xpY3koV2ViS2l0OjpDYWxsYmFja0lE
IGNhbGxiYWNrSUQpCisgICAgdm9pZCBTZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KFBBTDo6U2Vz
c2lvbklEIHNlc3Npb25JRCwgdWludDMyX3QgcG9saWN5LCBXZWJLaXQ6Ok9wdGlvbmFsQ2FsbGJh
Y2tJRCBjYWxsYmFja0lEKQorICAgIHZvaWQgR2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShQQUw6
OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQogICAg
IAogICAgIHZvaWQgU3RhcnRPYnNlcnZpbmdDb29raWVDaGFuZ2VzKFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCkKICAgICB2b2lkIFN0b3BPYnNlcnZpbmdDb29raWVDaGFuZ2VzKFBBTDo6U2Vzc2lv
bklEIHNlc3Npb25JRCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
Q29va2llcy9jdXJsL1dlYkNvb2tpZU1hbmFnZXJDdXJsLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvQ29va2llcy9jdXJsL1dlYkNvb2tpZU1hbmFnZXJDdXJsLmNwcAppbmRleCBl
YjZiZmYxZmNhZTAyYmM1MGRhN2JlNWE0YmMwOTFjZjY3ZGM5YjI3Li42ZmVmMGRkZTZhYjk4YmI3
MmVkY2E1ZjI1MDQ3MzcxOTI2YWMwYzg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL0Nvb2tpZXMvY3VybC9XZWJDb29raWVNYW5hZ2VyQ3VybC5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Db29raWVzL2N1cmwvV2ViQ29va2llTWFuYWdlckN1
cmwuY3BwCkBAIC0zMCwxMyArMzAsMTMgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIHVzaW5nIG5h
bWVzcGFjZSBXZWJDb3JlOwogCi12b2lkIFdlYkNvb2tpZU1hbmFnZXI6OnBsYXRmb3JtU2V0SFRU
UENvb2tpZUFjY2VwdFBvbGljeShIVFRQQ29va2llQWNjZXB0UG9saWN5KQordm9pZCBXZWJDb29r
aWVNYW5hZ2VyOjpwbGF0Zm9ybVNldEhUVFBDb29raWVBY2NlcHRQb2xpY3koUEFMOjpTZXNzaW9u
SUQsIEhUVFBDb29raWVBY2NlcHRQb2xpY3kpCiB7CiB9CiAKLUhUVFBDb29raWVBY2NlcHRQb2xp
Y3kgV2ViQ29va2llTWFuYWdlcjo6cGxhdGZvcm1HZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KCkK
K0hUVFBDb29raWVBY2NlcHRQb2xpY3kgV2ViQ29va2llTWFuYWdlcjo6cGxhdGZvcm1HZXRIVFRQ
Q29va2llQWNjZXB0UG9saWN5KFBBTDo6U2Vzc2lvbklEKQogewotICAgIHJldHVybiBIVFRQQ29v
a2llQWNjZXB0UG9saWN5T25seUZyb21NYWluRG9jdW1lbnREb21haW47CisgICAgcmV0dXJuIGRl
ZmF1bHRIVFRQQ29va2llQWNjZXB0UG9saWN5OwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ29va2llcy9tYWMvV2Vi
Q29va2llTWFuYWdlck1hYy5tbSBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ29va2ll
cy9tYWMvV2ViQ29va2llTWFuYWdlck1hYy5tbQppbmRleCA3MTQ4ZTcxYTBlYmEwMWJjOWJjYjhm
NmQ0MmQ4YzkzZjY5NzE0ZTA2Li5hZGIwM2ZjMGExNDJkMTE4MDJjNmQ3NjEwMjY3Y2JlYTVjNTc5
YjZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Nvb2tpZXMvbWFj
L1dlYkNvb2tpZU1hbmFnZXJNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9Db29raWVzL21hYy9XZWJDb29raWVNYW5hZ2VyTWFjLm1tCkBAIC0zNSwxOSArMzUsMjEgQEAK
IG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKLXZvaWQgV2Vi
Q29va2llTWFuYWdlcjo6cGxhdGZvcm1TZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KEhUVFBDb29r
aWVBY2NlcHRQb2xpY3kgcG9saWN5KQordm9pZCBXZWJDb29raWVNYW5hZ2VyOjpwbGF0Zm9ybVNl
dEhUVFBDb29raWVBY2NlcHRQb2xpY3koUEFMOjpTZXNzaW9uSUQsIEhUVFBDb29raWVBY2NlcHRQ
b2xpY3kgcG9saWN5KQogewogICAgIEFTU0VSVChoYXNQcm9jZXNzUHJpdmlsZWdlKFByb2Nlc3NQ
cml2aWxlZ2U6OkNhbkFjY2Vzc1Jhd0Nvb2tpZXMpKTsKIAogICAgIFtbTlNIVFRQQ29va2llU3Rv
cmFnZSBzaGFyZWRIVFRQQ29va2llU3RvcmFnZV0gc2V0Q29va2llQWNjZXB0UG9saWN5OnN0YXRp
Y19jYXN0PE5TSFRUUENvb2tpZUFjY2VwdFBvbGljeT4ocG9saWN5KV07CiAKKyAgICAvLyBCZWNh
dXNlIHdlIGhhdmUgdGhlIHNoYXJlZEhUVFBDb29raWVTdG9yYWdlLCB3ZSdsbCBpZ25vcmUgdGhl
IFNlc3Npb25JRCBhbmQganVzdCB1c2UgdGhlCisgICAgLy8gc2FtZSBhY2NlcHQgcG9saWN5IGZv
ciBldmVyeSBzZXNzaW9uLgogICAgIG1fcHJvY2Vzcy5mb3JFYWNoTmV0d29ya1N0b3JhZ2VTZXNz
aW9uKFsmXSAoY29uc3QgYXV0byYgbmV0d29ya1N0b3JhZ2VTZXNzaW9uKSB7CiAgICAgICAgIGlm
IChhdXRvIGNvb2tpZVN0b3JhZ2UgPSBuZXR3b3JrU3RvcmFnZVNlc3Npb24uY29va2llU3RvcmFn
ZSgpKQogICAgICAgICAgICAgQ0ZIVFRQQ29va2llU3RvcmFnZVNldENvb2tpZUFjY2VwdFBvbGlj
eShjb29raWVTdG9yYWdlLmdldCgpLCBwb2xpY3kpOwogICAgIH0pOwogfQogCi1IVFRQQ29va2ll
QWNjZXB0UG9saWN5IFdlYkNvb2tpZU1hbmFnZXI6OnBsYXRmb3JtR2V0SFRUUENvb2tpZUFjY2Vw
dFBvbGljeSgpCitIVFRQQ29va2llQWNjZXB0UG9saWN5IFdlYkNvb2tpZU1hbmFnZXI6OnBsYXRm
b3JtR2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShQQUw6OlNlc3Npb25JRCkKIHsKICAgICBBU1NF
UlQoaGFzUHJvY2Vzc1ByaXZpbGVnZShQcm9jZXNzUHJpdmlsZWdlOjpDYW5BY2Nlc3NSYXdDb29r
aWVzKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ29va2ll
cy9zb3VwL1dlYkNvb2tpZU1hbmFnZXJTb3VwLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvQ29va2llcy9zb3VwL1dlYkNvb2tpZU1hbmFnZXJTb3VwLmNwcAppbmRleCBiODVjOWFl
NmJhM2FkMzU3ODc5MDhiYjhlZjEwMTY5MzkyNjk5NGE4Li40NTcwNDdiMjQ2MTcyYjQ1NzM4N2My
OWViNWIyZmZkOTMxZjZiNTgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL0Nvb2tpZXMvc291cC9XZWJDb29raWVNYW5hZ2VyU291cC5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9Db29raWVzL3NvdXAvV2ViQ29va2llTWFuYWdlclNvdXAuY3Bw
CkBAIC0zNyw3ICszNyw3IEBACiBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBX
ZWJDb3JlOwogCi12b2lkIFdlYkNvb2tpZU1hbmFnZXI6OnBsYXRmb3JtU2V0SFRUUENvb2tpZUFj
Y2VwdFBvbGljeShIVFRQQ29va2llQWNjZXB0UG9saWN5IHBvbGljeSkKK3ZvaWQgV2ViQ29va2ll
TWFuYWdlcjo6cGxhdGZvcm1TZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCwgSFRUUENvb2tpZUFjY2VwdFBvbGljeSBwb2xpY3kpCiB7CiAgICAgU291cENv
b2tpZUphckFjY2VwdFBvbGljeSBzb3VwUG9saWN5ID0gU09VUF9DT09LSUVfSkFSX0FDQ0VQVF9O
T19USElSRF9QQVJUWTsKICAgICBzd2l0Y2ggKHBvbGljeSkgewpAQCAtNDgsMjggKzQ4LDMyIEBA
IHZvaWQgV2ViQ29va2llTWFuYWdlcjo6cGxhdGZvcm1TZXRIVFRQQ29va2llQWNjZXB0UG9saWN5
KEhUVFBDb29raWVBY2NlcHRQb2xpY3kKICAgICAgICAgc291cFBvbGljeSA9IFNPVVBfQ09PS0lF
X0pBUl9BQ0NFUFRfTkVWRVI7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgSFRUUENvb2tpZUFj
Y2VwdFBvbGljeU9ubHlGcm9tTWFpbkRvY3VtZW50RG9tYWluOgorICAgICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKKyAgICAgICAgRkFMTFRIUk9VR0g7CisgICAgY2FzZSBIVFRQQ29va2llQWNj
ZXB0UG9saWN5RXhjbHVzaXZlbHlGcm9tTWFpbkRvY3VtZW50RG9tYWluOgogICAgICAgICBzb3Vw
UG9saWN5ID0gU09VUF9DT09LSUVfSkFSX0FDQ0VQVF9OT19USElSRF9QQVJUWTsKICAgICAgICAg
YnJlYWs7CiAgICAgfQogCi0gICAgbV9wcm9jZXNzLmZvckVhY2hOZXR3b3JrU3RvcmFnZVNlc3Np
b24oW3NvdXBQb2xpY3ldIChjb25zdCBhdXRvJiBzZXNzaW9uKSB7Ci0gICAgICAgIHNvdXBfY29v
a2llX2phcl9zZXRfYWNjZXB0X3BvbGljeShzZXNzaW9uLmNvb2tpZVN0b3JhZ2UoKSwgc291cFBv
bGljeSk7Ci0gICAgfSk7CisgICAgaWYgKGF1dG8qIHN0b3JhZ2VTZXNzaW9uID0gbV9wcm9jZXNz
LnN0b3JhZ2VTZXNzaW9uKHNlc3Npb25JRCkpCisgICAgICAgIHNvdXBfY29va2llX2phcl9zZXRf
YWNjZXB0X3BvbGljeShzdG9yYWdlU2Vzc2lvbi0+Y29va2llU3RvcmFnZSgpLCBzb3VwUG9saWN5
KTsKIH0KIAotSFRUUENvb2tpZUFjY2VwdFBvbGljeSBXZWJDb29raWVNYW5hZ2VyOjpwbGF0Zm9y
bUdldEhUVFBDb29raWVBY2NlcHRQb2xpY3koKQorSFRUUENvb2tpZUFjY2VwdFBvbGljeSBXZWJD
b29raWVNYW5hZ2VyOjpwbGF0Zm9ybUdldEhUVFBDb29raWVBY2NlcHRQb2xpY3koUEFMOjpTZXNz
aW9uSUQgc2Vzc2lvbklEKQogewotICAgIHN3aXRjaCAoc291cF9jb29raWVfamFyX2dldF9hY2Nl
cHRfcG9saWN5KG1fcHJvY2Vzcy5kZWZhdWx0U3RvcmFnZVNlc3Npb24oKS5jb29raWVTdG9yYWdl
KCkpKSB7Ci0gICAgY2FzZSBTT1VQX0NPT0tJRV9KQVJfQUNDRVBUX0FMV0FZUzoKLSAgICAgICAg
cmV0dXJuIEhUVFBDb29raWVBY2NlcHRQb2xpY3lBbHdheXM7Ci0gICAgY2FzZSBTT1VQX0NPT0tJ
RV9KQVJfQUNDRVBUX05FVkVSOgotICAgICAgICByZXR1cm4gSFRUUENvb2tpZUFjY2VwdFBvbGlj
eU5ldmVyOwotICAgIGNhc2UgU09VUF9DT09LSUVfSkFSX0FDQ0VQVF9OT19USElSRF9QQVJUWToK
LSAgICAgICAgcmV0dXJuIEhUVFBDb29raWVBY2NlcHRQb2xpY3lPbmx5RnJvbU1haW5Eb2N1bWVu
dERvbWFpbjsKKyAgICBpZiAoTmV0d29ya1N0b3JhZ2VTZXNzaW9uKiBzZXNzaW9uID0gbV9wcm9j
ZXNzLnN0b3JhZ2VTZXNzaW9uKHNlc3Npb25JRCkpIHsKKyAgICAgICAgc3dpdGNoIChzb3VwX2Nv
b2tpZV9qYXJfZ2V0X2FjY2VwdF9wb2xpY3koc2Vzc2lvbi0+Y29va2llU3RvcmFnZSgpKSkgewor
ICAgICAgICBjYXNlIFNPVVBfQ09PS0lFX0pBUl9BQ0NFUFRfQUxXQVlTOgorICAgICAgICAgICAg
cmV0dXJuIEhUVFBDb29raWVBY2NlcHRQb2xpY3lBbHdheXM7CisgICAgICAgIGNhc2UgU09VUF9D
T09LSUVfSkFSX0FDQ0VQVF9ORVZFUjoKKyAgICAgICAgICAgIHJldHVybiBIVFRQQ29va2llQWNj
ZXB0UG9saWN5TmV2ZXI7CisgICAgICAgIGNhc2UgU09VUF9DT09LSUVfSkFSX0FDQ0VQVF9OT19U
SElSRF9QQVJUWToKKyAgICAgICAgICAgIHJldHVybiBIVFRQQ29va2llQWNjZXB0UG9saWN5RXhj
bHVzaXZlbHlGcm9tTWFpbkRvY3VtZW50RG9tYWluOworICAgICAgICB9CisgICAgICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOwogICAgIH0KIAotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAg
IHJldHVybiBIVFRQQ29va2llQWNjZXB0UG9saWN5T25seUZyb21NYWluRG9jdW1lbnREb21haW47
CisgICAgcmV0dXJuIGRlZmF1bHRIVFRQQ29va2llQWNjZXB0UG9saWN5OwogfQogCiB2b2lkIFdl
YkNvb2tpZU1hbmFnZXI6OnNldENvb2tpZVBlcnNpc3RlbnRTdG9yYWdlKFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiBzdG9yYWdlUGF0aCwgU291cENvb2tpZVBlcnNpc3Rl
bnRTdG9yYWdlVHlwZSBzdG9yYWdlVHlwZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5j
cHAKaW5kZXggYzZkZjA4ZTlmYjc3NjZmNzcwYWZhZGVmMWFhN2YyMTI5NDlkMWY1NS4uNWEyMzQy
NDI3MDM3YTY0Nzk4NGQ0ODIyMzI0Mjc5NjBhYzhlYzI5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVycy5jcHAKQEAgLTcyLDcgKzcyLDYgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVyczo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICNlbmRp
ZgogICAgIGVuY29kZXIgPDwgZGVmYXVsdERhdGFTdG9yZVBhcmFtZXRlcnM7CiAjaWYgVVNFKFNP
VVApCi0gICAgZW5jb2Rlci5lbmNvZGVFbnVtKGNvb2tpZUFjY2VwdFBvbGljeSk7CiAgICAgZW5j
b2RlciA8PCBpZ25vcmVUTFNFcnJvcnM7CiAgICAgZW5jb2RlciA8PCBsYW5ndWFnZXM7CiAgICAg
ZW5jb2RlciA8PCBwcm94eVNldHRpbmdzOwpAQCAtMTcwLDggKzE2OSw2IEBAIGJvb2wgTmV0d29y
a1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIs
IE5ldHdvcmtQcm9jCiAgICAgcmVzdWx0LmRlZmF1bHREYXRhU3RvcmVQYXJhbWV0ZXJzID0gV1RG
TW92ZSgqZGVmYXVsdERhdGFTdG9yZVBhcmFtZXRlcnMpOwogCiAjaWYgVVNFKFNPVVApCi0gICAg
aWYgKCFkZWNvZGVyLmRlY29kZUVudW0ocmVzdWx0LmNvb2tpZUFjY2VwdFBvbGljeSkpCi0gICAg
ICAgIHJldHVybiBmYWxzZTsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5pZ25vcmVU
TFNFcnJvcnMpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29k
ZShyZXN1bHQubGFuZ3VhZ2VzKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAppbmRleCAy
ZmQzYmU5ZmRlZDk4MGI3NTczY2UzYjUxNmIwN2E5NmZhZGFmNzNiLi45Zjg1YjgzY2ZhZTJhZWJh
MzRkN2Y1YTQ4ZjRmMTgxOWU5OGI2OTcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKKysrIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5o
CkBAIC0zNCw3ICszNCw2IEBACiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKICNp
ZiBVU0UoU09VUCkKLSNpbmNsdWRlICJIVFRQQ29va2llQWNjZXB0UG9saWN5LmgiCiAjaW5jbHVk
ZSA8V2ViQ29yZS9Tb3VwTmV0d29ya1Byb3h5U2V0dGluZ3MuaD4KICNlbmRpZgogCkBAIC04Nyw3
ICs4Niw2IEBAIHN0cnVjdCBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyB7CiAgICAg
V2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMgZGVmYXVsdERhdGFTdG9yZVBhcmFtZXRlcnM7CiAg
ICAgCiAjaWYgVVNFKFNPVVApCi0gICAgSFRUUENvb2tpZUFjY2VwdFBvbGljeSBjb29raWVBY2Nl
cHRQb2xpY3kgeyBIVFRQQ29va2llQWNjZXB0UG9saWN5QWx3YXlzIH07CiAgICAgYm9vbCBpZ25v
cmVUTFNFcnJvcnMgeyBmYWxzZSB9OwogICAgIFZlY3RvcjxTdHJpbmc+IGxhbmd1YWdlczsKICAg
ICBXZWJDb3JlOjpTb3VwTmV0d29ya1Byb3h5U2V0dGluZ3MgcHJveHlTZXR0aW5nczsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uY3BwIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5jcHAKaW5kZXggZDcx
OTI0MzZkNTE3OTQ4OWI3MGNkMmY4NzhjYmZlZjE3MzI5NjJjOC4uZTRhYjQ4YmQxM2ExMTcwYjNl
NWQ1YjUwZDkxMGI5Yzk3NDQzMjMxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrU2Vzc2lvbi5jcHAKQEAgLTY3LDExICs2NywxMiBAQCBOZXR3b3JrU3RvcmFn
ZVNlc3Npb24mIE5ldHdvcmtTZXNzaW9uOjpuZXR3b3JrU3RvcmFnZVNlc3Npb24oKSBjb25zdAog
ICAgIHJldHVybiAqc3RvcmFnZVNlc3Npb247CiB9CiAKLU5ldHdvcmtTZXNzaW9uOjpOZXR3b3Jr
U2Vzc2lvbihOZXR3b3JrUHJvY2VzcyYgbmV0d29ya1Byb2Nlc3MsIFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCkKLSAgICA6IG1fc2Vzc2lvbklEKHNlc3Npb25JRCkKK05ldHdvcmtTZXNzaW9uOjpO
ZXR3b3JrU2Vzc2lvbihOZXR3b3JrUHJvY2VzcyYgbmV0d29ya1Byb2Nlc3MsIGNvbnN0IE5ldHdv
cmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQorICAgIDogbV9zZXNzaW9u
SUQocGFyYW1ldGVycy5zZXNzaW9uSUQpCiAgICAgLCBtX25ldHdvcmtQcm9jZXNzKG5ldHdvcmtQ
cm9jZXNzKQogICAgICwgbV9hZENsaWNrQXR0cmlidXRpb24obWFrZVVuaXF1ZVJlZjxOZXR3b3Jr
QWRDbGlja0F0dHJpYnV0aW9uPigpKQogeworICAgIG5ldHdvcmtQcm9jZXNzLnN1cHBsZW1lbnQ8
V2ViQ29va2llTWFuYWdlcj4oKS0+c2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShtX3Nlc3Npb25J
RCwgcGFyYW1ldGVycy5pbml0aWFsSFRUUENvb2tpZUFjY2VwdFBvbGljeSwgT3B0aW9uYWxDYWxs
YmFja0lEKCkpOwogfQogCiBOZXR3b3JrU2Vzc2lvbjo6fk5ldHdvcmtTZXNzaW9uKCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uaCBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uaAppbmRleCA2M2Y0NGEz
M2Y2Y2NhZWU0ODZhNTRlMDEwMzFlYWMzY2Y1NjcxYTQwLi5iOWNkYjdkZTI0MjkwZjk5MjExMzQ4
MjE1NmVkNmZmMjMwZjM2YjFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtTZXNzaW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrU2Vzc2lvbi5oCkBAIC04Miw3ICs4Miw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGNsZWFy
QWRDbGlja0F0dHJpYnV0aW9uKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAKIHByb3Rl
Y3RlZDoKLSAgICBOZXR3b3JrU2Vzc2lvbihOZXR3b3JrUHJvY2VzcyYsIFBBTDo6U2Vzc2lvbklE
KTsKKyAgICBOZXR3b3JrU2Vzc2lvbihOZXR3b3JrUHJvY2VzcyYsIGNvbnN0IE5ldHdvcmtTZXNz
aW9uQ3JlYXRpb25QYXJhbWV0ZXJzJik7CiAKICAgICBQQUw6OlNlc3Npb25JRCBtX3Nlc3Npb25J
RDsKICAgICBSZWY8TmV0d29ya1Byb2Nlc3M+IG1fbmV0d29ya1Byb2Nlc3M7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJh
bWV0ZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb25D
cmVhdGlvblBhcmFtZXRlcnMuY3BwCmluZGV4IDZmNWFhNTVjZTQwODkxZWE4ZTU4MmNlYjlmNWE3
OGY1YzY4OTlhNzIuLjA5MzcxOTcyMDI2ZWU1MDRlNDRmMDhlNGU0Y2FjZGM4OWY4NzVhOTggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb25DcmVh
dGlvblBhcmFtZXRlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMuY3BwCkBAIC0yNywxNSArMjcsMTMgQEAKICNp
bmNsdWRlICJOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycy5oIgogCiAjaW5jbHVkZSAi
QXJndW1lbnRDb2RlcnMuaCIKKyNpbmNsdWRlICJIVFRQQ29va2llQWNjZXB0UG9saWN5LmgiCisj
aW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCiAKICNpZiBQTEFURk9STShDT0NPQSkK
ICNpbmNsdWRlICJBcmd1bWVudENvZGVyc0NGLmgiCiAjZW5kaWYKIAotI2lmIFVTRShDVVJMKQot
I2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgotI2VuZGlmCi0KIG5hbWVzcGFjZSBX
ZWJLaXQgewogCiBOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycyBOZXR3b3JrU2Vzc2lv
bkNyZWF0aW9uUGFyYW1ldGVyczo6cHJpdmF0ZVNlc3Npb25QYXJhbWV0ZXJzKGNvbnN0IFBBTDo6
U2Vzc2lvbklEJiBzZXNzaW9uSUQpCkBAIC01MCw3ICs0OCw3IEBAIE5ldHdvcmtTZXNzaW9uQ3Jl
YXRpb25QYXJhbWV0ZXJzIE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzOjpwcml2YXRl
U2Vzc2lvCiAjaWYgVVNFKENVUkwpCiAgICAgICAgICwgeyB9LCB7IH0KICNlbmRpZgotICAgICAg
ICAsIHsgfSwgeyB9LCBmYWxzZQorICAgICAgICAsIGRlZmF1bHRIVFRQQ29va2llQWNjZXB0UG9s
aWN5LCB7IH0sIHsgfSwgZmFsc2UKICAgICB9OwogfQogCkBAIC03Niw2ICs3NCw3IEBAIHZvaWQg
TmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZShJUEM6OkVuY29kZXImIGVu
Y29kZXIpIGNvbnN0CiAgICAgZW5jb2RlciA8PCBjb29raWVQZXJzaXN0ZW50U3RvcmFnZUZpbGU7
CiAgICAgZW5jb2RlciA8PCBwcm94eVNldHRpbmdzOwogI2VuZGlmCisgICAgZW5jb2Rlci5lbmNv
ZGVFbnVtKGluaXRpYWxIVFRQQ29va2llQWNjZXB0UG9saWN5KTsKICAgICBlbmNvZGVyIDw8IHJl
c291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3Rvcnk7CiAgICAgZW5jb2RlciA8PCByZXNvdXJjZUxv
YWRTdGF0aXN0aWNzRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlOwogICAgIGVuY29kZXIgPDwgZW5h
YmxlUmVzb3VyY2VMb2FkU3RhdGlzdGljczsKQEAgLTE1Nyw2ICsxNTYsMTAgQEAgT3B0aW9uYWw8
TmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnM+IE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25Q
YXJhbWV0ZXJzOjpkZWMKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKICNlbmRpZgogCisg
ICAgSFRUUENvb2tpZUFjY2VwdFBvbGljeSBpbml0aWFsSFRUUENvb2tpZUFjY2VwdFBvbGljeTsK
KyAgICBpZiAoIWRlY29kZXIuZGVjb2RlRW51bShpbml0aWFsSFRUUENvb2tpZUFjY2VwdFBvbGlj
eSkpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKICAgICBPcHRpb25hbDxTdHJpbmc+
IHJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3Rvcnk7CiAgICAgZGVjb2RlciA+PiByZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5OwogICAgIGlmICghcmVzb3VyY2VMb2FkU3RhdGlzdGlj
c0RpcmVjdG9yeSkKQEAgLTE5Myw2ICsxOTYsNyBAQCBPcHRpb25hbDxOZXR3b3JrU2Vzc2lvbkNy
ZWF0aW9uUGFyYW1ldGVycz4gTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnM6OmRlYwog
ICAgICAgICAsIFdURk1vdmUoKmNvb2tpZVBlcnNpc3RlbnRTdG9yYWdlRmlsZSkKICAgICAgICAg
LCBXVEZNb3ZlKCpwcm94eVNldHRpbmdzKQogI2VuZGlmCisgICAgICAgICwgV1RGTW92ZShpbml0
aWFsSFRUUENvb2tpZUFjY2VwdFBvbGljeSkKICAgICAgICAgLCBXVEZNb3ZlKCpyZXNvdXJjZUxv
YWRTdGF0aXN0aWNzRGlyZWN0b3J5KQogICAgICAgICAsIFdURk1vdmUoKnJlc291cmNlTG9hZFN0
YXRpc3RpY3NEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpCiAgICAgICAgICwgV1RGTW92ZSgqZW5h
YmxlUmVzb3VyY2VMb2FkU3RhdGlzdGljcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMuaCBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMuaApp
bmRleCA0ZmM3MzYxZWY2Zjc3NmI3MTdlNzEyOGI2OTFiYTUzYzM1OTY4MTk2Li5mZjNhYzM0Y2Yx
YTViYzhlY2Q5ZjdhOWJkZTNhNzNmODkzNmEyZmQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmgKKysrIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1l
dGVycy5oCkBAIC0yNSw2ICsyNSw3IEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAiSFRU
UENvb2tpZUFjY2VwdFBvbGljeS5oIgogI2luY2x1ZGUgIlNhbmRib3hFeHRlbnNpb24uaCIKICNp
bmNsdWRlIDxwYWwvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8d3RmL1NlY29uZHMuaD4KQEAgLTc4
LDYgKzc5LDcgQEAgc3RydWN0IE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzIHsKICAg
ICBTdHJpbmcgY29va2llUGVyc2lzdGVudFN0b3JhZ2VGaWxlOwogICAgIFdlYkNvcmU6OkN1cmxQ
cm94eVNldHRpbmdzIHByb3h5U2V0dGluZ3M7CiAjZW5kaWYKKyAgICBIVFRQQ29va2llQWNjZXB0
UG9saWN5IGluaXRpYWxIVFRQQ29va2llQWNjZXB0UG9saWN5IHsgZGVmYXVsdEhUVFBDb29raWVB
Y2NlcHRQb2xpY3kgfTsKICAgICBTdHJpbmcgcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9y
eTsKICAgICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgcmVzb3VyY2VMb2FkU3RhdGlzdGljc0Rp
cmVjdG9yeUV4dGVuc2lvbkhhbmRsZTsKICAgICBib29sIGVuYWJsZVJlc291cmNlTG9hZFN0YXRp
c3RpY3MgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9zb3VwL05ldHdvcmtQcm9jZXNzU291cC5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL3NvdXAvTmV0d29ya1Byb2Nlc3NTb3VwLmNwcAppbmRleCBlYmFiZmIwNzJiNDlkZDViODRk
ZTVlYmRkZmJlMjczZTQwYzEyMWE0Li45MTNkNTA1YWJmYTNhZjIyZDhmNTc2ZGRiYzI2MjBlZjUz
OTUyYTlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3NvdXAvTmV0
d29ya1Byb2Nlc3NTb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3Nv
dXAvTmV0d29ya1Byb2Nlc3NTb3VwLmNwcApAQCAtMTIxLDggKzEyMSw2IEBAIHZvaWQgTmV0d29y
a1Byb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZU5ldHdvcmtQcm9jZXNzKGNvbnN0IE5ldHdvcmtQ
cm9jZXNzQ3JlYXRpCiAKICAgICBtX2NhY2hlID0gTmV0d29ya0NhY2hlOjpDYWNoZTo6b3Blbigq
dGhpcywgbV9kaXNrQ2FjaGVEaXJlY3RvcnksIGNhY2hlT3B0aW9ucyk7CiAKLSAgICBzdXBwbGVt
ZW50PFdlYkNvb2tpZU1hbmFnZXI+KCktPnNldEhUVFBDb29raWVBY2NlcHRQb2xpY3kocGFyYW1l
dGVycy5jb29raWVBY2NlcHRQb2xpY3ksIE9wdGlvbmFsQ2FsbGJhY2tJRCgpKTsKLQogICAgIGlm
ICghcGFyYW1ldGVycy5sYW5ndWFnZXMuaXNFbXB0eSgpKQogICAgICAgICB1c2VyUHJlZmVycmVk
TGFuZ3VhZ2VzQ2hhbmdlZChwYXJhbWV0ZXJzLmxhbmd1YWdlcyk7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrU2Vzc2lvblNvdXAuY3BwIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtTZXNzaW9uU291cC5jcHAK
aW5kZXggMjBhY2IxZjhhNDFlNTZhZjY5YWU5NDVmMGYzYmZkOGQ0MzYxZDRkYS4uNmRiZjZmMTVj
ZDE1N2M0YjFiMDhmYzVkNzAwZTA5MWEyNDY0Yzg3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtTZXNzaW9uU291cC5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtTZXNzaW9uU291cC5jcHAKQEAgLTM3
LDcgKzM3LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
IAogTmV0d29ya1Nlc3Npb25Tb3VwOjpOZXR3b3JrU2Vzc2lvblNvdXAoTmV0d29ya1Byb2Nlc3Mm
IG5ldHdvcmtQcm9jZXNzLCBOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycyYmIHBhcmFt
ZXRlcnMpCi0gICAgOiBOZXR3b3JrU2Vzc2lvbihuZXR3b3JrUHJvY2VzcywgcGFyYW1ldGVycy5z
ZXNzaW9uSUQpCisgICAgOiBOZXR3b3JrU2Vzc2lvbihuZXR3b3JrUHJvY2VzcywgcGFyYW1ldGVy
cykKIHsKICAgICBuZXR3b3JrU3RvcmFnZVNlc3Npb24oKS5zZXRDb29raWVPYnNlcnZlckhhbmRs
ZXIoW3RoaXNdIHsKICAgICAgICAgdGhpcy0+bmV0d29ya1Byb2Nlc3MoKS5zdXBwbGVtZW50PFdl
YkNvb2tpZU1hbmFnZXI+KCktPm5vdGlmeUNvb2tpZXNEaWRDaGFuZ2UobV9zZXNzaW9uSUQpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvSFRUUENvb2tpZUFjY2VwdFBvbGljeS5o
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvSFRUUENvb2tpZUFjY2VwdFBvbGljeS5oCmluZGV4IDRm
ZTgxYjNjMzliY2ZiMjQ3YjZlZTc1ZWM0MDE1MTBkNzg3ZjcyNDMuLjcwMWQ2MzM2MzlkZjdhNzA4
ZjJjYTkxYjdjZDdmY2JiYjQwM2Q4ZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L0hUVFBDb29raWVBY2NlcHRQb2xpY3kuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9IVFRQ
Q29va2llQWNjZXB0UG9saWN5LmgKQEAgLTIzLDE5ICsyMywyNCBAQAogICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
ICAqLwogCi0jaWZuZGVmIEhUVFBDb29raWVBY2NlcHRQb2xpY3lfaAotI2RlZmluZSBIVFRQQ29v
a2llQWNjZXB0UG9saWN5X2gKKyNwcmFnbWEgb25jZQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAog
ZW51bSB7CiAgICAgSFRUUENvb2tpZUFjY2VwdFBvbGljeUFsd2F5cyA9IDAsCiAgICAgSFRUUENv
b2tpZUFjY2VwdFBvbGljeU5ldmVyID0gMSwKKyAgICAvLyBNaXNuYW1lZCwgdGhpcyBtZWFucyBu
byB0aGlyZC1wYXJ0eSBjb29raWVzIGV4Y2VwdCBmcm9tIGRvbWFpbnMgdGhhdCBoYXZlIHByZXZp
b3VzbHkgc2V0IGNvb2tpZXMuCiAgICAgSFRUUENvb2tpZUFjY2VwdFBvbGljeU9ubHlGcm9tTWFp
bkRvY3VtZW50RG9tYWluID0gMiwKKyAgICAvLyBObyB0aGlyZC1wYXJ0eSBjb29raWVzIGF0IGFs
bC4KICAgICBIVFRQQ29va2llQWNjZXB0UG9saWN5RXhjbHVzaXZlbHlGcm9tTWFpbkRvY3VtZW50
RG9tYWluID0gMywKIH07CiB0eXBlZGVmIHVuc2lnbmVkIEhUVFBDb29raWVBY2NlcHRQb2xpY3k7
CiAKLX0gLy8gbmFtZXNwYWNlIFdlYktpdAorI2lmIFVTRShTT1VQKSB8fCBVU0UoQ1VSTCkKK2Nv
bnN0IEhUVFBDb29raWVBY2NlcHRQb2xpY3kgZGVmYXVsdEhUVFBDb29raWVBY2NlcHRQb2xpY3kg
PSBIVFRQQ29va2llQWNjZXB0UG9saWN5RXhjbHVzaXZlbHlGcm9tTWFpbkRvY3VtZW50RG9tYWlu
OworI2Vsc2UKK2NvbnN0IEhUVFBDb29raWVBY2NlcHRQb2xpY3kgZGVmYXVsdEhUVFBDb29raWVB
Y2NlcHRQb2xpY3kgPSBIVFRQQ29va2llQWNjZXB0UG9saWN5QWx3YXlzOworI2VuZGlmCiAKLSNl
bmRpZiAvLyBIVFRQQ29va2llQWNjZXB0UG9saWN5X2gKK30gLy8gbmFtZXNwYWNlIFdlYktpdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0Q29va2ll
TWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRDb29r
aWVNYW5hZ2VyLmNwcAppbmRleCBhMWRlMmMyN2MzZDk4MGI5OWQ5Nzc5M2I5NWMyYzVmZjVkNTM4
ZDkxLi4wOWJlYzliODMxOGFlMDUyODY4M2RlMGZiMmNiY2NhYzljZDI2NGM3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRDb29raWVNYW5hZ2VyLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRDb29raWVNYW5h
Z2VyLmNwcApAQCAtOTUsNiArOTUsOSBAQCBzdGF0aWMgaW5saW5lIFdlYktpdENvb2tpZUFjY2Vw
dFBvbGljeSB0b1dlYktpdENvb2tpZUFjY2VwdFBvbGljeShIVFRQQ29va2llQWNjZQogICAgIGNh
c2UgSFRUUENvb2tpZUFjY2VwdFBvbGljeU5ldmVyOgogICAgICAgICByZXR1cm4gV0VCS0lUX0NP
T0tJRV9QT0xJQ1lfQUNDRVBUX05FVkVSOwogICAgIGNhc2UgSFRUUENvb2tpZUFjY2VwdFBvbGlj
eU9ubHlGcm9tTWFpbkRvY3VtZW50RG9tYWluOgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKKyAgICAgICAgRkFMTFRIUk9VR0g7CisgICAgY2FzZSBIVFRQQ29va2llQWNjZXB0UG9saWN5
RXhjbHVzaXZlbHlGcm9tTWFpbkRvY3VtZW50RG9tYWluOgogICAgICAgICByZXR1cm4gV0VCS0lU
X0NPT0tJRV9QT0xJQ1lfQUNDRVBUX05PX1RISVJEX1BBUlRZOwogICAgIGRlZmF1bHQ6CiAgICAg
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtMTEwLDcgKzExMyw3IEBAIHN0YXRpYyBpbmxp
bmUgSFRUUENvb2tpZUFjY2VwdFBvbGljeSB0b0hUVFBDb29raWVBY2NlcHRQb2xpY3koV2ViS2l0
Q29va2llQWNjZXB0CiAgICAgY2FzZSBXRUJLSVRfQ09PS0lFX1BPTElDWV9BQ0NFUFRfTkVWRVI6
CiAgICAgICAgIHJldHVybiBIVFRQQ29va2llQWNjZXB0UG9saWN5TmV2ZXI7CiAgICAgY2FzZSBX
RUJLSVRfQ09PS0lFX1BPTElDWV9BQ0NFUFRfTk9fVEhJUkRfUEFSVFk6Ci0gICAgICAgIHJldHVy
biBIVFRQQ29va2llQWNjZXB0UG9saWN5T25seUZyb21NYWluRG9jdW1lbnREb21haW47CisgICAg
ICAgIHJldHVybiBIVFRQQ29va2llQWNjZXB0UG9saWN5RXhjbHVzaXZlbHlGcm9tTWFpbkRvY3Vt
ZW50RG9tYWluOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwog
ICAgICAgICByZXR1cm4gSFRUUENvb2tpZUFjY2VwdFBvbGljeUFsd2F5czsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJveHkuY3BwCmluZGV4IDBlZmMx
YWNlYjlmMDgwNmRlNDEzNzk5Zjc3OWY1ZDUyZmNlNDdjN2QuLmYwYzM4ZjNkMTJhZjkxODY4ZDgy
ZWVmYmIwMzNlMTRlZmU1NDc3NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYkNvb2tpZU1hbmFnZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViQ29va2llTWFuYWdlclByb3h5LmNwcApAQCAtMjM4LDI5ICsyMzgsMzUgQEAgdm9pZCBXZWJD
b29raWVNYW5hZ2VyUHJveHk6OmNvb2tpZXNEaWRDaGFuZ2UoUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklEKQogICAgICAgICBvYnNlcnZlci0+Y29va2llc0RpZENoYW5nZSgpOwogfQogCi12b2lkIFdl
YkNvb2tpZU1hbmFnZXJQcm94eTo6c2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShQQUw6OlNlc3Np
b25JRCwgSFRUUENvb2tpZUFjY2VwdFBvbGljeSBwb2xpY3ksIEZ1bmN0aW9uPHZvaWQgKENhbGxi
YWNrQmFzZTo6RXJyb3IpPiYmIGNhbGxiYWNrRnVuY3Rpb24pCit2b2lkIFdlYkNvb2tpZU1hbmFn
ZXJQcm94eTo6c2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQsIEhUVFBDb29raWVBY2NlcHRQb2xpY3kgcG9saWN5LCBGdW5jdGlvbjx2b2lkIChDYWxsYmFj
a0Jhc2U6OkVycm9yKT4mJiBjYWxsYmFja0Z1bmN0aW9uKQogewogI2lmIFBMQVRGT1JNKENPQ09B
KQogICAgIGlmICghcHJvY2Vzc1Bvb2woKS0+aXNVc2luZ1Rlc3RpbmdOZXR3b3JrU2Vzc2lvbigp
KQotICAgICAgICBwZXJzaXN0SFRUUENvb2tpZUFjY2VwdFBvbGljeShwb2xpY3kpOwotI2VuZGlm
Ci0jaWYgVVNFKFNPVVApCi0gICAgcHJvY2Vzc1Bvb2woKS0+c2V0SW5pdGlhbEhUVFBDb29raWVB
Y2NlcHRQb2xpY3kocG9saWN5KTsKKyAgICAgICAgcGVyc2lzdEhUVFBDb29raWVBY2NlcHRQb2xp
Y3koc2Vzc2lvbklELCBwb2xpY3kpOwogI2VuZGlmCiAKKyAgICBtX2luaXRpYWxIVFRQQ29va2ll
QWNjZXB0UG9saWNpZXMuYWRkKHNlc3Npb25JRCwgcG9saWN5KTsKKwogICAgIGlmICghcHJvY2Vz
c1Bvb2woKS0+bmV0d29ya1Byb2Nlc3MoKSkgewogICAgICAgICBjYWxsYmFja0Z1bmN0aW9uKENh
bGxiYWNrQmFzZTo6RXJyb3I6Ok5vbmUpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAg
YXV0byBjYWxsYmFja0lEID0gbV9jYWxsYmFja3MucHV0KFdURk1vdmUoY2FsbGJhY2tGdW5jdGlv
biksIHByb2Nlc3NQb29sKCktPmVuc3VyZU5ldHdvcmtQcm9jZXNzKCkudGhyb3R0bGVyKCkuYmFj
a2dyb3VuZEFjdGl2aXR5VG9rZW4oKSk7Ci0gICAgcHJvY2Vzc1Bvb2woKS0+c2VuZFRvTmV0d29y
a2luZ1Byb2Nlc3MoTWVzc2FnZXM6OldlYkNvb2tpZU1hbmFnZXI6OlNldEhUVFBDb29raWVBY2Nl
cHRQb2xpY3kocG9saWN5LCBPcHRpb25hbENhbGxiYWNrSUQoY2FsbGJhY2tJRCkpKTsKKyAgICBh
dXRvIGNhbGxiYWNrSUQgPSBtX2NhbGxiYWNrcy5wdXQoV1RGTW92ZShjYWxsYmFja0Z1bmN0aW9u
KSwgcHJvY2Vzc1Bvb2woKS0+bmV0d29ya1Byb2Nlc3MoKS0+dGhyb3R0bGVyKCkuYmFja2dyb3Vu
ZEFjdGl2aXR5VG9rZW4oKSk7CisgICAgcHJvY2Vzc1Bvb2woKS0+c2VuZFRvTmV0d29ya2luZ1By
b2Nlc3MoTWVzc2FnZXM6OldlYkNvb2tpZU1hbmFnZXI6OlNldEhUVFBDb29raWVBY2NlcHRQb2xp
Y3koc2Vzc2lvbklELCBwb2xpY3ksIE9wdGlvbmFsQ2FsbGJhY2tJRChjYWxsYmFja0lEKSkpOwor
fQorCitIVFRQQ29va2llQWNjZXB0UG9saWN5IFdlYkNvb2tpZU1hbmFnZXJQcm94eTo6Z2V0SW5p
dGlhbEhUVFBDb29raWVBY2NlcHRQb2xpY3koUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQorewor
ICAgIGlmIChtX2luaXRpYWxIVFRQQ29va2llQWNjZXB0UG9saWNpZXMuY29udGFpbnMoc2Vzc2lv
bklEKSkKKyAgICAgICAgcmV0dXJuIG1faW5pdGlhbEhUVFBDb29raWVBY2NlcHRQb2xpY2llcy5n
ZXQoc2Vzc2lvbklEKTsKKyAgICByZXR1cm4gZGVmYXVsdEhUVFBDb29raWVBY2NlcHRQb2xpY3k7
CiB9CiAKLXZvaWQgV2ViQ29va2llTWFuYWdlclByb3h5OjpnZXRIVFRQQ29va2llQWNjZXB0UG9s
aWN5KFBBTDo6U2Vzc2lvbklELCBGdW5jdGlvbjx2b2lkIChIVFRQQ29va2llQWNjZXB0UG9saWN5
LCBDYWxsYmFja0Jhc2U6OkVycm9yKT4mJiBjYWxsYmFja0Z1bmN0aW9uKQordm9pZCBXZWJDb29r
aWVNYW5hZ2VyUHJveHk6OmdldEhUVFBDb29raWVBY2NlcHRQb2xpY3koUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvbklELCBGdW5jdGlvbjx2b2lkIChIVFRQQ29va2llQWNjZXB0UG9saWN5LCBDYWxsYmFj
a0Jhc2U6OkVycm9yKT4mJiBjYWxsYmFja0Z1bmN0aW9uKQogewogICAgIGF1dG8gY2FsbGJhY2tJ
RCA9IG1fY2FsbGJhY2tzLnB1dChXVEZNb3ZlKGNhbGxiYWNrRnVuY3Rpb24pLCBwcm9jZXNzUG9v
bCgpLT5lbnN1cmVOZXR3b3JrUHJvY2VzcygpLnRocm90dGxlcigpLmJhY2tncm91bmRBY3Rpdml0
eVRva2VuKCkpOwotICAgIHByb2Nlc3NQb29sKCktPnNlbmRUb05ldHdvcmtpbmdQcm9jZXNzKE1l
c3NhZ2VzOjpXZWJDb29raWVNYW5hZ2VyOjpHZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KGNhbGxi
YWNrSUQpKTsKKyAgICBwcm9jZXNzUG9vbCgpLT5zZW5kVG9OZXR3b3JraW5nUHJvY2VzcyhNZXNz
YWdlczo6V2ViQ29va2llTWFuYWdlcjo6R2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShzZXNzaW9u
SUQsIGNhbGxiYWNrSUQpKTsKIH0KIAogdm9pZCBXZWJDb29raWVNYW5hZ2VyUHJveHk6OmRpZEdl
dEhUVFBDb29raWVBY2NlcHRQb2xpY3kodWludDMyX3QgcG9saWN5LCBXZWJLaXQ6OkNhbGxiYWNr
SUQgY2FsbGJhY2tJRCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNv
b2tpZU1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29va2llTWFu
YWdlclByb3h5LmgKaW5kZXggYmU3ODJlNzRlMTc2YTk3MzBkODdiMTYwNGM3YzEyNmRlY2M1OTZm
ZS4uMmEyNGQ3ZmVlNzI2ZWI3YmU0NWI4MDQ0NjY1YmVjMWY4OTViMDU5MSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5LmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5LmgKQEAgLTgwLDYgKzgw
LDkgQEAgcHVibGljOgogICAgIHZvaWQgc2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShQQUw6OlNl
c3Npb25JRCwgSFRUUENvb2tpZUFjY2VwdFBvbGljeSwgRnVuY3Rpb248dm9pZCAoQ2FsbGJhY2tC
YXNlOjpFcnJvcik+JiYpOwogICAgIHZvaWQgZ2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShQQUw6
OlNlc3Npb25JRCwgRnVuY3Rpb248dm9pZCAoSFRUUENvb2tpZUFjY2VwdFBvbGljeSwgQ2FsbGJh
Y2tCYXNlOjpFcnJvcik+JiYpOwogCisgICAgLy8gRm9yIHVzZSB3aGVuIGluaXRpYWxpemluZyBO
ZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycy4KKyAgICBIVFRQQ29va2llQWNjZXB0UG9s
aWN5IGdldEluaXRpYWxIVFRQQ29va2llQWNjZXB0UG9saWN5KFBBTDo6U2Vzc2lvbklEKTsKKwog
ICAgIHZvaWQgc2V0U3RvcmFnZUFjY2Vzc0FQSUVuYWJsZWQoYm9vbCk7CiAKICAgICB2b2lkIHN0
YXJ0T2JzZXJ2aW5nQ29va2llQ2hhbmdlcyhQQUw6OlNlc3Npb25JRCk7CkBAIC0xMjksMTMgKzEz
MiwxNCBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0
aW9uJiwgSVBDOjpEZWNvZGVyJikgb3ZlcnJpZGU7CiAKICNpZiBQTEFURk9STShDT0NPQSkKLSAg
ICB2b2lkIHBlcnNpc3RIVFRQQ29va2llQWNjZXB0UG9saWN5KEhUVFBDb29raWVBY2NlcHRQb2xp
Y3kpOworICAgIHZvaWQgcGVyc2lzdEhUVFBDb29raWVBY2NlcHRQb2xpY3koUEFMOjpTZXNzaW9u
SUQsIEhUVFBDb29raWVBY2NlcHRQb2xpY3kpOwogI2VuZGlmCiAKICAgICBDYWxsYmFja01hcCBt
X2NhbGxiYWNrczsKIAogICAgIEhhc2hNYXA8UEFMOjpTZXNzaW9uSUQsIFdURjo6RnVuY3Rpb248
dm9pZCAoKT4+IG1fbGVnYWN5Q29va2llT2JzZXJ2ZXJzOwogICAgIEhhc2hNYXA8UEFMOjpTZXNz
aW9uSUQsIEhhc2hTZXQ8T2JzZXJ2ZXIqPj4gbV9jb29raWVPYnNlcnZlcnM7CisgICAgSGFzaE1h
cDxQQUw6OlNlc3Npb25JRCwgSFRUUENvb2tpZUFjY2VwdFBvbGljeT4gbV9pbml0aWFsSFRUUENv
b2tpZUFjY2VwdFBvbGljaWVzOwogCiAgICAgV2ViQ29va2llTWFuYWdlclByb3h5Q2xpZW50IG1f
Y2xpZW50OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNz
UG9vbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKaW5k
ZXggN2JlMDJlNjBhYTllMDMzMzkxODk0ZmI5YWU5OTVjNDEzYzUyYzM2Yy4uZDRhZjFlYWJhZDgx
MjQxYTUwZjFhN2ZhODUyYmU3ZDdhYTBlZDY1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlByb2Nlc3NQb29sLmNwcApAQCAtNTU5LDEyICs1NTksMTYgQEAgTmV0d29ya1Byb2Nlc3NQ
cm94eSYgV2ViUHJvY2Vzc1Bvb2w6OmVuc3VyZU5ldHdvcmtQcm9jZXNzKFdlYnNpdGVEYXRhU3Rv
cmUqIHdpdGgKICAgICBwYXJhbWV0ZXJzLnNob3VsZERpc2FibGVTZXJ2aWNlV29ya2VyUHJvY2Vz
c1Rlcm1pbmF0aW9uRGVsYXkgPSBtX3Nob3VsZERpc2FibGVTZXJ2aWNlV29ya2VyUHJvY2Vzc1Rl
cm1pbmF0aW9uRGVsYXk7CiAjZW5kaWYKIAorICAgIGF1dG8mIGRlZmF1bHROZXR3b3JrU2Vzc2lv
blBhcmFtZXRlcnMgPSBwYXJhbWV0ZXJzLmRlZmF1bHREYXRhU3RvcmVQYXJhbWV0ZXJzLm5ldHdv
cmtTZXNzaW9uUGFyYW1ldGVyczsKKworICAgIGRlZmF1bHROZXR3b3JrU2Vzc2lvblBhcmFtZXRl
cnMuaW5pdGlhbEhUVFBDb29raWVBY2NlcHRQb2xpY3kgPSBzdXBwbGVtZW50PFdlYkNvb2tpZU1h
bmFnZXJQcm94eT4oKS0+Z2V0SW5pdGlhbEhUVFBDb29raWVBY2NlcHRQb2xpY3koZGVmYXVsdE5l
dHdvcmtTZXNzaW9uUGFyYW1ldGVycy5zZXNzaW9uSUQpOworCiAgICAgaWYgKG1fd2Vic2l0ZURh
dGFTdG9yZSkKLSAgICAgICAgcGFyYW1ldGVycy5kZWZhdWx0RGF0YVN0b3JlUGFyYW1ldGVycy5u
ZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMucmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSA9
IG1fd2Vic2l0ZURhdGFTdG9yZS0+d2Vic2l0ZURhdGFTdG9yZSgpLnJlc29sdmVkUmVzb3VyY2VM
b2FkU3RhdGlzdGljc0RpcmVjdG9yeSgpOwotICAgIGlmIChwYXJhbWV0ZXJzLmRlZmF1bHREYXRh
U3RvcmVQYXJhbWV0ZXJzLm5ldHdvcmtTZXNzaW9uUGFyYW1ldGVycy5yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRGlyZWN0b3J5LmlzRW1wdHkoKSkKLSAgICAgICAgcGFyYW1ldGVycy5kZWZhdWx0RGF0
YVN0b3JlUGFyYW1ldGVycy5uZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMucmVzb3VyY2VMb2FkU3Rh
dGlzdGljc0RpcmVjdG9yeSA9IEFQSTo6V2Vic2l0ZURhdGFTdG9yZTo6ZGVmYXVsdFJlc291cmNl
TG9hZFN0YXRpc3RpY3NEaXJlY3RvcnkoKTsKKyAgICAgICAgZGVmYXVsdE5ldHdvcmtTZXNzaW9u
UGFyYW1ldGVycy5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5ID0gbV93ZWJzaXRlRGF0
YVN0b3JlLT53ZWJzaXRlRGF0YVN0b3JlKCkucmVzb2x2ZWRSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
RGlyZWN0b3J5KCk7CisgICAgaWYgKGRlZmF1bHROZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMucmVz
b3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeS5pc0VtcHR5KCkpCisgICAgICAgIGRlZmF1bHRO
ZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMucmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSA9
IEFQSTo6V2Vic2l0ZURhdGFTdG9yZTo6ZGVmYXVsdFJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJl
Y3RvcnkoKTsKIAotICAgIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvclJlYWRXcml0
ZURpcmVjdG9yeShwYXJhbWV0ZXJzLmRlZmF1bHREYXRhU3RvcmVQYXJhbWV0ZXJzLm5ldHdvcmtT
ZXNzaW9uUGFyYW1ldGVycy5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5LCBwYXJhbWV0
ZXJzLmRlZmF1bHREYXRhU3RvcmVQYXJhbWV0ZXJzLm5ldHdvcmtTZXNzaW9uUGFyYW1ldGVycy5y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKTsKKyAgICBTYW5k
Ym94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JSZWFkV3JpdGVEaXJlY3RvcnkoZGVmYXVsdE5l
dHdvcmtTZXNzaW9uUGFyYW1ldGVycy5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5LCBk
ZWZhdWx0TmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzLnJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJl
Y3RvcnlFeHRlbnNpb25IYW5kbGUpOwogCiAgICAgYm9vbCBlbmFibGVSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzID0gZmFsc2U7CiAgICAgaWYgKHdpdGhXZWJzaXRlRGF0YVN0b3JlKQpAQCAtNTcyLDcg
KzU3Niw3IEBAIE5ldHdvcmtQcm9jZXNzUHJveHkmIFdlYlByb2Nlc3NQb29sOjplbnN1cmVOZXR3
b3JrUHJvY2VzcyhXZWJzaXRlRGF0YVN0b3JlKiB3aXRoCiAgICAgZWxzZSBpZiAobV93ZWJzaXRl
RGF0YVN0b3JlKQogICAgICAgICBlbmFibGVSZXNvdXJjZUxvYWRTdGF0aXN0aWNzID0gbV93ZWJz
aXRlRGF0YVN0b3JlLT5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCgpOwogCi0gICAgcGFy
YW1ldGVycy5kZWZhdWx0RGF0YVN0b3JlUGFyYW1ldGVycy5uZXR3b3JrU2Vzc2lvblBhcmFtZXRl
cnMuZW5hYmxlUmVzb3VyY2VMb2FkU3RhdGlzdGljcyA9IGVuYWJsZVJlc291cmNlTG9hZFN0YXRp
c3RpY3M7CisgICAgZGVmYXVsdE5ldHdvcmtTZXNzaW9uUGFyYW1ldGVycy5lbmFibGVSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzID0gZW5hYmxlUmVzb3VyY2VMb2FkU3RhdGlzdGljczsKIAogICAgIC8v
IEFkZCBhbnkgcGxhdGZvcm0gc3BlY2lmaWMgcGFyYW1ldGVycwogICAgIHBsYXRmb3JtSW5pdGlh
bGl6ZU5ldHdvcmtQcm9jZXNzKHBhcmFtZXRlcnMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlByb2Nlc3NQb29sLmgKaW5kZXggMzRmMzdhMTMzOTE0NDFmOTYwMDYzN2JjYzg2MjAzMWQ4ZmY0
YTU1Zi4uMmZkMzVhOTFhZTA2N2Q5YWIwMGU2OTY1NDQxODVkZmUwODNiMzAxOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCkBAIC0yNTksNyArMjU5LDYgQEAgcHVi
bGljOgogICAgIHZvaWQgc3RvcE1lbW9yeVNhbXBsZXIoKTsKIAogI2lmIFVTRShTT1VQKQotICAg
IHZvaWQgc2V0SW5pdGlhbEhUVFBDb29raWVBY2NlcHRQb2xpY3koSFRUUENvb2tpZUFjY2VwdFBv
bGljeSBwb2xpY3kpIHsgbV9pbml0aWFsSFRUUENvb2tpZUFjY2VwdFBvbGljeSA9IHBvbGljeTsg
fQogICAgIHZvaWQgc2V0TmV0d29ya1Byb3h5U2V0dGluZ3MoY29uc3QgV2ViQ29yZTo6U291cE5l
dHdvcmtQcm94eVNldHRpbmdzJik7CiAjZW5kaWYKICAgICB2b2lkIHNldEVuaGFuY2VkQWNjZXNz
aWJpbGl0eShib29sKTsKQEAgLTY0MSwxMCArNjQwLDYgQEAgcHJpdmF0ZToKICAgICB0eXBlZGVm
IEhhc2hNYXA8Y29uc3QgY2hhciosIFJlZlB0cjxXZWJDb250ZXh0U3VwcGxlbWVudD4sIFB0ckhh
c2g8Y29uc3QgY2hhcio+PiBXZWJDb250ZXh0U3VwcGxlbWVudE1hcDsKICAgICBXZWJDb250ZXh0
U3VwcGxlbWVudE1hcCBtX3N1cHBsZW1lbnRzOwogCi0jaWYgVVNFKFNPVVApCi0gICAgSFRUUENv
b2tpZUFjY2VwdFBvbGljeSBtX2luaXRpYWxIVFRQQ29va2llQWNjZXB0UG9saWN5IHsgSFRUUENv
b2tpZUFjY2VwdFBvbGljeU9ubHlGcm9tTWFpbkRvY3VtZW50RG9tYWluIH07Ci0gICAgV2ViQ29y
ZTo6U291cE5ldHdvcmtQcm94eVNldHRpbmdzIG1fbmV0d29ya1Byb3h5U2V0dGluZ3M7Ci0jZW5k
aWYKICAgICBIYXNoU2V0PFN0cmluZywgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPiBtX3VybFNj
aGVtZXNSZWdpc3RlcmVkRm9yQ3VzdG9tUHJvdG9jb2xzOwogCiAjaWYgUExBVEZPUk0oTUFDKQpA
QCAtNjc2LDYgKzY3MSw3IEBAIHByaXZhdGU6CiAgICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRy
PFN0YXRpc3RpY3NSZXF1ZXN0Pj4gbV9zdGF0aXN0aWNzUmVxdWVzdHM7CiAKICNpZiBVU0UoU09V
UCkKKyAgICBXZWJDb3JlOjpTb3VwTmV0d29ya1Byb3h5U2V0dGluZ3MgbV9uZXR3b3JrUHJveHlT
ZXR0aW5nczsKICAgICBib29sIG1faWdub3JlVExTRXJyb3JzIHsgdHJ1ZSB9OwogI2VuZGlmCiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL0NvY29hL1dl
YnNpdGVEYXRhU3RvcmVDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVE
YXRhL0NvY29hL1dlYnNpdGVEYXRhU3RvcmVDb2NvYS5tbQppbmRleCBmY2I4OWFhODlhYWI4YjI0
Y2Q0NmQyZjcxMzlkY2VmNzEzNDY2YzY2Li4zZDhkNzg3MjYxMGE1NGM1NGJmZDdlMTEzMGUwOTJh
ODhlZWFkMjRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0
YS9Db2NvYS9XZWJzaXRlRGF0YVN0b3JlQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2Vic2l0ZURhdGEvQ29jb2EvV2Vic2l0ZURhdGFTdG9yZUNvY29hLm1tCkBAIC0yOCw2
ICsyOCw3IEBACiAKICNpbXBvcnQgIkNvb2tpZVN0b3JhZ2VVdGlsc0NGLmgiCiAjaW1wb3J0ICJT
dG9yYWdlTWFuYWdlci5oIgorI2ltcG9ydCAiV2ViQ29va2llTWFuYWdlclByb3h5LmgiCiAjaW1w
b3J0ICJXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaCIKICNpbXBvcnQgIldlYnNpdGVE
YXRhU3RvcmVQYXJhbWV0ZXJzLmgiCiAjaW1wb3J0IDxXZWJDb3JlL1J1bnRpbWVBcHBsaWNhdGlv
bkNoZWNrcy5oPgpAQCAtMTAwLDExICsxMDEsMTUgQEAgV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRl
cnMgV2Vic2l0ZURhdGFTdG9yZTo6cGFyYW1ldGVycygpCiAgICAgICAgIFNlY29uZHMgeyBbZGVm
YXVsdHMgaW50ZWdlckZvcktleTpXZWJLaXROZXR3b3JrTG9hZFRocm90dGxlTGF0ZW5jeU1pbGxp
c2Vjb25kc0RlZmF1bHRzS2V5XSAvIDEwMDAuIH0sCiAgICAgICAgIFdURk1vdmUoaHR0cFByb3h5
KSwKICAgICAgICAgV1RGTW92ZShodHRwc1Byb3h5KSwKKyAgICAgICAgZGVmYXVsdEhUVFBDb29r
aWVBY2NlcHRQb2xpY3ksCiAgICAgICAgIFdURk1vdmUocmVzb3VyY2VMb2FkU3RhdGlzdGljc0Rp
cmVjdG9yeSksCiAgICAgICAgIFdURk1vdmUocmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9y
eUhhbmRsZSksCiAgICAgICAgIGZhbHNlCiAgICAgfTsKIAorICAgIGlmIChhdXRvKiBwcm9jZXNz
UG9vbCA9IHByb2Nlc3NQb29sRm9yQ29va2llU3RvcmFnZU9wZXJhdGlvbnMoKSkKKyAgICAgICAg
cGFyYW1ldGVycy5uZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMuaW5pdGlhbEhUVFBDb29raWVBY2Nl
cHRQb2xpY3kgPSBwcm9jZXNzUG9vbC0+c3VwcGxlbWVudDxXZWJDb29raWVNYW5hZ2VyUHJveHk+
KCktPmdldEluaXRpYWxIVFRQQ29va2llQWNjZXB0UG9saWN5KHBhcmFtZXRlcnMubmV0d29ya1Nl
c3Npb25QYXJhbWV0ZXJzLnNlc3Npb25JRCk7CisKICAgICBhdXRvIGNvb2tpZUZpbGUgPSByZXNv
bHZlZENvb2tpZVN0b3JhZ2VGaWxlKCk7CiAKICAgICBpZiAobV91aVByb2Nlc3NDb29raWVTdG9y
YWdlSWRlbnRpZmllci5pc0VtcHR5KCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKaW5kZXggOTI5MmQzNTMz
OWU4MDZjNmNkNTQxMjcyZWI0YTkxMGRlZDhkZTdjZS4uYjBlZjhmYjIyNTZmNjdmZTBmMjc2NmU2
MGRkNzkxYjFiZGM4NzE3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
c2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKQEAgLTM2LDYgKzM2LDcgQEAKICNp
bmNsdWRlICJTaG91bGRHcmFuZGZhdGhlclN0YXRpc3RpY3MuaCIKICNpbmNsdWRlICJTdG9yYWdl
QWNjZXNzU3RhdHVzLmgiCiAjaW5jbHVkZSAiU3RvcmFnZU1hbmFnZXIuaCIKKyNpbmNsdWRlICJX
ZWJDb29raWVNYW5hZ2VyUHJveHkuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzQ2FjaGUuaCIKICNp
bmNsdWRlICJXZWJQcm9jZXNzTWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzUG9vbC5o
IgpAQCAtMjA0MSw2ICsyMDQyLDkgQEAgV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMgV2Vic2l0
ZURhdGFTdG9yZTo6cGFyYW1ldGVycygpCiAgICAgV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMg
cGFyYW1ldGVyczsKICAgICBwYXJhbWV0ZXJzLm5ldHdvcmtTZXNzaW9uUGFyYW1ldGVycy5zZXNz
aW9uSUQgPSBtX3Nlc3Npb25JRDsKIAorICAgIGlmIChhdXRvKiBwcm9jZXNzUG9vbCA9IHByb2Nl
c3NQb29sRm9yQ29va2llU3RvcmFnZU9wZXJhdGlvbnMoKSkKKyAgICAgICAgcGFyYW1ldGVycy5u
ZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMuaW5pdGlhbEhUVFBDb29raWVBY2NlcHRQb2xpY3kgPSBw
cm9jZXNzUG9vbC0+c3VwcGxlbWVudDxXZWJDb29raWVNYW5hZ2VyUHJveHk+KCktPmdldEluaXRp
YWxIVFRQQ29va2llQWNjZXB0UG9saWN5KHBhcmFtZXRlcnMubmV0d29ya1Nlc3Npb25QYXJhbWV0
ZXJzLnNlc3Npb25JRCk7CisKICAgICByZXNvbHZlRGlyZWN0b3JpZXNJZk5lY2Vzc2FyeSgpOwog
CiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9tYWMvV2ViQ29va2llTWFuYWdlclByb3h5TWFjLm1tIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvbWFjL1dlYkNvb2tpZU1hbmFnZXJQcm94eU1hYy5tbQppbmRleCBlZWQ5N2Fi
ZWQ2MDNhM2RjYmUxMWI3OTcyZjQ3MTAxYjliOTRlNzI4Li5lZjg0NDkyMDAxNzcxMDYxZjc4Mjc5
ODRlNWQzN2IyM2U5MDdiODE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9t
YWMvV2ViQ29va2llTWFuYWdlclByb3h5TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL21hYy9XZWJDb29raWVNYW5hZ2VyUHJveHlNYWMubW0KQEAgLTMxLDcgKzMxLDcgQEAKIAog
bmFtZXNwYWNlIFdlYktpdCB7CiAKLXZvaWQgV2ViQ29va2llTWFuYWdlclByb3h5OjpwZXJzaXN0
SFRUUENvb2tpZUFjY2VwdFBvbGljeShIVFRQQ29va2llQWNjZXB0UG9saWN5IHBvbGljeSkKK3Zv
aWQgV2ViQ29va2llTWFuYWdlclByb3h5OjpwZXJzaXN0SFRUUENvb2tpZUFjY2VwdFBvbGljeShQ
QUw6OlNlc3Npb25JRCwgSFRUUENvb2tpZUFjY2VwdFBvbGljeSBwb2xpY3kpCiB7CiAgICAgQVNT
RVJUKGhhc1Byb2Nlc3NQcml2aWxlZ2UoUHJvY2Vzc1ByaXZpbGVnZTo6Q2FuQWNjZXNzUmF3Q29v
a2llcykpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9zb3VwL1dlYlBy
b2Nlc3NQb29sU291cC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9zb3VwL1dlYlByb2Nl
c3NQb29sU291cC5jcHAKaW5kZXggYjQ0MmY2NzAyNTIzZTYwMTc2ZWVjOTRiN2M1ZmEzOGIxYmVj
N2IwOS4uMzMyMmNkM2Y4ZDhlMjliYWE2N2JhNWE4YjI2OGI2YTRmYjFiOTg4NSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mvc291cC9XZWJQcm9jZXNzUG9vbFNvdXAuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL3NvdXAvV2ViUHJvY2Vzc1Bvb2xTb3VwLmNwcApA
QCAtMzgsMTAgKzM4LDkgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIHZvaWQgV2ViUHJvY2Vzc1Bv
b2w6OnBsYXRmb3JtSW5pdGlhbGl6ZU5ldHdvcmtQcm9jZXNzKE5ldHdvcmtQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQogewotICAgIE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25Q
YXJhbWV0ZXJzJiBkZWZhdWx0U2Vzc2lvblBhcmFtZXRlcnMgPSBwYXJhbWV0ZXJzLmRlZmF1bHRE
YXRhU3RvcmVQYXJhbWV0ZXJzLm5ldHdvcmtTZXNzaW9uUGFyYW1ldGVyczsKLSAgICBzdXBwbGVt
ZW50PFdlYkNvb2tpZU1hbmFnZXJQcm94eT4oKS0+Z2V0Q29va2llUGVyc2lzdGVudFN0b3JhZ2Uo
ZGVmYXVsdFNlc3Npb25QYXJhbWV0ZXJzLnNlc3Npb25JRCwgZGVmYXVsdFNlc3Npb25QYXJhbWV0
ZXJzLmNvb2tpZVBlcnNpc3RlbnRTdG9yYWdlUGF0aCwgZGVmYXVsdFNlc3Npb25QYXJhbWV0ZXJz
LmNvb2tpZVBlcnNpc3RlbnRTdG9yYWdlVHlwZSk7CisgICAgTmV0d29ya1Nlc3Npb25DcmVhdGlv
blBhcmFtZXRlcnMmIGRlZmF1bHROZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMgPSBwYXJhbWV0ZXJz
LmRlZmF1bHREYXRhU3RvcmVQYXJhbWV0ZXJzLm5ldHdvcmtTZXNzaW9uUGFyYW1ldGVyczsKKyAg
ICBzdXBwbGVtZW50PFdlYkNvb2tpZU1hbmFnZXJQcm94eT4oKS0+Z2V0Q29va2llUGVyc2lzdGVu
dFN0b3JhZ2UoZGVmYXVsdE5ldHdvcmtTZXNzaW9uUGFyYW1ldGVycy5zZXNzaW9uSUQsIGRlZmF1
bHROZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMuY29va2llUGVyc2lzdGVudFN0b3JhZ2VQYXRoLCBk
ZWZhdWx0TmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzLmNvb2tpZVBlcnNpc3RlbnRTdG9yYWdlVHlw
ZSk7CiAKLSAgICBwYXJhbWV0ZXJzLmNvb2tpZUFjY2VwdFBvbGljeSA9IG1faW5pdGlhbEhUVFBD
b29raWVBY2NlcHRQb2xpY3k7CiAgICAgcGFyYW1ldGVycy5pZ25vcmVUTFNFcnJvcnMgPSBtX2ln
bm9yZVRMU0Vycm9yczsKICAgICBwYXJhbWV0ZXJzLmxhbmd1YWdlcyA9IHVzZXJQcmVmZXJyZWRM
YW5ndWFnZXMoKTsKICAgICBwYXJhbWV0ZXJzLnNob3VsZEVuYWJsZU5ldHdvcmtDYWNoZUVmZmlj
YWN5TG9nZ2luZyA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKaW5kZXggOWVlY2JlMjg5NTlm
YmY4MGI1ZjBkY2Y3YTA2NWQwODk0MmE4ZTlkMy4uOGI4NzU5OGY4Y2QxNGJmMTY0ZWEzM2I2NDc4
NWQxZmU3MGYwNTQxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwCkBAIC0zMSw3ICszMSw2IEBACiAj
aW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVTY3JpcHRXb3JsZC5oIgogI2luY2x1ZGUgIk5ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzTWVzc2FnZXMuaCIKICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vz
c0Nvbm5lY3Rpb24uaCIKLSNpbmNsdWRlICJOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVy
cy5oIgogI2luY2x1ZGUgIk5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oIgog
I2luY2x1ZGUgIlVzZXJEYXRhLmgiCiAjaW5jbHVkZSAiV2ViQ29ubmVjdGlvblRvVUlQcm9jZXNz
LmgiCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>363176</attachid>
            <date>2019-02-27 18:35:14 -0800</date>
            <delta_ts>2019-02-27 18:40:48 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-195140-20190227203513.patch</filename>
            <type>text/plain</type>
            <size>40853</size>
            <attacher name="Michael Catanzaro">mcatanzaro</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQyMTQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDcxM2FjZDE3ZDFkZTcwN2Yw
MzlmNzYwYzhkNGM2ZTZlZmQzZGViODQuLjI1MjAxMzhhMWUxNGUwYTAwYmQ3NjU2M2RlNzA0NjFm
NmMxMWY1ODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzggQEAKKzIwMTktMDItMjcgIE1pY2hhZWwg
Q2F0YW56YXJvICA8bWNhdGFuemFyb0BpZ2FsaWEuY29tPgorCisgICAgICAgIE1vdmUgaW5pdGlh
bEhUVFBBY2NlcHRQb2xpY3kgdG8gTmV0d29ya1Nlc3Npb24KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NTE0MAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgaXMgcGFydCB0d28gaW4gcmVtb3Zpbmcg
bGlic291cC1zcGVjaWZpYyBtZW1iZXJzIGZyb20gTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnMuCisgICAgICAgIEhlcmUgSSBtb3ZlIGluaXRpYWxIVFRQQWNjZXB0UG9saWN5IGZyb20g
TmV0d29ya1Byb2Nlc3MgdG8gTmV0d29ya1Nlc3Npb24uIFRoZXJlIHdlcmUgYSBmZXcKKyAgICAg
ICAgZGlmZmVyZW50IHdheXMgdG8gZG8gdGhpcy4gSSBkZWNpZGVkIHRvIG1ha2UgdGhpcyB2YXJp
YWJsZSBjcm9zcy1wbGF0Zm9ybSwgYmVjYXVzZSBJIHRoaW5rCisgICAgICAgIHNldHRpbmcgdGhl
IGNvb2tpZSBhY2NlcHQgcG9saWN5IGJlZm9yZSB0aGUgZmlyc3Qgd2ViIHByb2Nlc3MgaXMgY3Jl
YXRlZCBpcyBicm9rZW4gb24KKyAgICAgICAgbm9uLWxpYnNvdXAgcG9ydHMgd2l0aG91dCB0aGlz
LiBUaGVuLCBhY2NlcHQgcG9saWN5IHdhcyBhbHJlYWR5IHRpZWQgdG8gU2Vzc2lvbklEIGluIHRo
ZSBVSQorICAgICAgICBwcm9jZXNzLCBidXQgaW4gdGhlIG5ldHdvcmsgcHJvY2VzcyBpdCB3YXMg
Z2xvYmFsLiBJIHdhcyBvbmx5IGFibGUgdG8gY29tcGxldGVseSBjaGFuZ2UgdGhpcworICAgICAg
ICBmb3Igbm9uLUNvY29hIHBvcnRzLCBiZWNhdXNlIENvY29hIGhhcyB0aGUgc2hhcmVkSFRUUENv
b2tpZVN0b3JhZ2UuIFNvIGl0J3Mgc3RpbGwgZ2xvYmFsLAorICAgICAgICBidXQgbm93IG9ubHkg
YSBjb3VwbGUgQ29jb2Etc3BlY2lmaWMgcGxhY2VzIGtub3cgdGhpcywgYW5kIGV2ZXJ5d2hlcmUg
ZWxzZSB1c2VzIFNlc3Npb25JRC4KKworICAgICAgICBJIGFsc28gY2hhbmdlIGxpYnNvdXAgZnJv
bSB1c2luZyBIVFRQQ29va2llQWNjZXB0UG9saWN5T25seUZyb21NYWluRG9jdW1lbnREb21haW4g
dG8gdXNpbmcKKyAgICAgICAgSFRUUENvb2tpZUFjY2VwdFBvbGljeUV4Y2x1c2l2ZWx5RnJvbU1h
aW5Eb2N1bWVudERvbWFpbiwgZm9yIGdvb2QgbWVhc3VyZS4KKworICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YkNvb2tpZU1hbmFnZXI6OnNldEhUVFBDb29raWVBY2NlcHRQb2xpY3kpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJDb29raWVNYW5hZ2VyOjpnZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KToKKyAgICAg
ICAgKiBOZXR3b3JrUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIuaDoKKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIubWVzc2FnZXMuaW46Cisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3MvQ29va2llcy9jdXJsL1dlYkNvb2tpZU1hbmFnZXJDdXJs
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ29va2llTWFuYWdlcjo6cGxhdGZvcm1TZXRIVFRQ
Q29va2llQWNjZXB0UG9saWN5KToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29va2llTWFuYWdlcjo6
cGxhdGZvcm1HZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KToKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9Db29raWVzL21hYy9XZWJDb29raWVNYW5hZ2VyTWFjLm1tOgorICAgICAgICAoV2ViS2l0
OjpXZWJDb29raWVNYW5hZ2VyOjpwbGF0Zm9ybVNldEhUVFBDb29raWVBY2NlcHRQb2xpY3kpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJDb29raWVNYW5hZ2VyOjpwbGF0Zm9ybUdldEhUVFBDb29raWVB
Y2NlcHRQb2xpY3kpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0Nvb2tpZXMvc291cC9XZWJD
b29raWVNYW5hZ2VyU291cC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNvb2tpZU1hbmFnZXI6
OnBsYXRmb3JtU2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YkNvb2tpZU1hbmFnZXI6OnBsYXRmb3JtR2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeSk6CisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5j
b2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnM6OmRlY29kZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnMuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vz
c2lvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uOjpOZXR3b3JrU2Vzc2lv
bik6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uaDoKKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycy5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzOjpwcml2YXRl
U2Vzc2lvblBhcmFtZXRlcnMpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU2Vzc2lvbkNyZWF0
aW9uUGFyYW1ldGVyczo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nl
c3Npb25DcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMuaDoKKyAgICAgICAgKiBOZXR3b3Jr
UHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpO
ZXR3b3JrU2Vzc2lvbkNvY29hOjpOZXR3b3JrU2Vzc2lvbkNvY29hKToKKyAgICAgICAgKiBOZXR3
b3JrUHJvY2Vzcy9jdXJsL05ldHdvcmtTZXNzaW9uQ3VybC5jcHA6CisgICAgICAgIChXZWJLaXQ6
Ok5ldHdvcmtTZXNzaW9uQ3VybDo6TmV0d29ya1Nlc3Npb25DdXJsKToKKyAgICAgICAgKiBOZXR3
b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtQcm9jZXNzU291cC5jcHA6CisgICAgICAgIChXZWJLaXQ6
Ok5ldHdvcmtQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVOZXR3b3JrUHJvY2Vzcyk6CisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrU2Vzc2lvblNvdXAuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpOZXR3b3JrU2Vzc2lvblNvdXA6Ok5ldHdvcmtTZXNzaW9uU291cCk6CisgICAg
ICAgICogU2hhcmVkL0hUVFBDb29raWVBY2NlcHRQb2xpY3kuaDoKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL2dsaWIvV2ViS2l0Q29va2llTWFuYWdlci5jcHA6CisgICAgICAgICh0b1dlYktpdENv
b2tpZUFjY2VwdFBvbGljeSk6CisgICAgICAgICh0b0hUVFBDb29raWVBY2NlcHRQb2xpY3kpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJveHkuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJDb29raWVNYW5hZ2VyUHJveHk6OnNldEhUVFBDb29raWVBY2NlcHRQb2xpY3kp
OgorICAgICAgICAoV2ViS2l0OjpXZWJDb29raWVNYW5hZ2VyUHJveHk6OmdldEluaXRpYWxIVFRQ
Q29va2llQWNjZXB0UG9saWN5KToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29va2llTWFuYWdlclBy
b3h5OjpnZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
Q29va2llTWFuYWdlclByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29s
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OmVuc3VyZU5ldHdvcmtQcm9j
ZXNzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2Vic2l0ZURhdGEvQ29jb2EvV2Vic2l0ZURhdGFTdG9yZUNvY29hLm1tOgorICAg
ICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlOjpwYXJhbWV0ZXJzKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYnNpdGVEYXRhU3RvcmU6OnBhcmFtZXRlcnMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9t
YWMvV2ViQ29va2llTWFuYWdlclByb3h5TWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJDb29r
aWVNYW5hZ2VyUHJveHk6OnBlcnNpc3RIVFRQQ29va2llQWNjZXB0UG9saWN5KToKKyAgICAgICAg
KiBVSVByb2Nlc3Mvc291cC9XZWJQcm9jZXNzUG9vbFNvdXAuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplTmV0d29ya1Byb2Nlc3MpOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwOgorCiAy
MDE5LTAyLTI3ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBS
ZW1vdmUgVXNlck1lZGlhUHJvY2Vzc01hbmFnZXIgcHJvY2Vzc1N0YXRlIG1hcApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIu
Y3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFn
ZXIuY3BwCmluZGV4IGJmNjMxYTA0NTk1ZmRkN2FkNzk4ZDIwZjE2ZmE5ZWQyODY3OWFkZjAuLmZk
ZjlkYjUxOTk1MGFlZmQzYTg1ODQxMGJmNDljMzlkNGFkOTRhN2YgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ29va2llcy9XZWJDb29raWVNYW5hZ2VyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlci5j
cHAKQEAgLTE0OSwxNyArMTQ5LDE3IEBAIHZvaWQgV2ViQ29va2llTWFuYWdlcjo6c3RvcE9ic2Vy
dmluZ0Nvb2tpZUNoYW5nZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogICAgICAgICBXZWJD
b3JlOjpzdG9wT2JzZXJ2aW5nQ29va2llQ2hhbmdlcygqc3RvcmFnZVNlc3Npb24pOwogfQogCi12
b2lkIFdlYkNvb2tpZU1hbmFnZXI6OnNldEhUVFBDb29raWVBY2NlcHRQb2xpY3koSFRUUENvb2tp
ZUFjY2VwdFBvbGljeSBwb2xpY3ksIE9wdGlvbmFsQ2FsbGJhY2tJRCBjYWxsYmFja0lEKQordm9p
ZCBXZWJDb29raWVNYW5hZ2VyOjpzZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KFBBTDo6U2Vzc2lv
bklEIHNlc3Npb25JRCwgSFRUUENvb2tpZUFjY2VwdFBvbGljeSBwb2xpY3ksIE9wdGlvbmFsQ2Fs
bGJhY2tJRCBjYWxsYmFja0lEKQogewotICAgIHBsYXRmb3JtU2V0SFRUUENvb2tpZUFjY2VwdFBv
bGljeShwb2xpY3kpOworICAgIHBsYXRmb3JtU2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShzZXNz
aW9uSUQsIHBvbGljeSk7CiAKICAgICBpZiAoY2FsbGJhY2tJRCkKICAgICAgICAgbV9wcm9jZXNz
LnNlbmQoTWVzc2FnZXM6OldlYkNvb2tpZU1hbmFnZXJQcm94eTo6RGlkU2V0SFRUUENvb2tpZUFj
Y2VwdFBvbGljeShjYWxsYmFja0lELmNhbGxiYWNrSUQoKSksIDApOwogfQogCi12b2lkIFdlYkNv
b2tpZU1hbmFnZXI6OmdldEhUVFBDb29raWVBY2NlcHRQb2xpY3koQ2FsbGJhY2tJRCBjYWxsYmFj
a0lEKQordm9pZCBXZWJDb29raWVNYW5hZ2VyOjpnZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KFBB
TDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgQ2FsbGJhY2tJRCBjYWxsYmFja0lEKQogewotICAgIG1f
cHJvY2Vzcy5zZW5kKE1lc3NhZ2VzOjpXZWJDb29raWVNYW5hZ2VyUHJveHk6OkRpZEdldEhUVFBD
b29raWVBY2NlcHRQb2xpY3kocGxhdGZvcm1HZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KCksIGNh
bGxiYWNrSUQpLCAwKTsKKyAgICBtX3Byb2Nlc3Muc2VuZChNZXNzYWdlczo6V2ViQ29va2llTWFu
YWdlclByb3h5OjpEaWRHZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KHBsYXRmb3JtR2V0SFRUUENv
b2tpZUFjY2VwdFBvbGljeShzZXNzaW9uSUQpLCBjYWxsYmFja0lEKSwgMCk7CiB9CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvQ29va2llcy9XZWJDb29raWVNYW5hZ2VyLmgKaW5kZXggM2M0ODA5NTZlNmI3NTJjMmE5YWQ4
MGI2ODI2MTFjMTY0N2ZlM2U3ZC4uZjc2NGNjYWEwMmJiNDYzNzAyYjM5NTAwMDFiZDRhZjRjYTU4
NWVmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Db29raWVzL1dl
YkNvb2tpZU1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Nvb2tp
ZXMvV2ViQ29va2llTWFuYWdlci5oCkBAIC01NSw3ICs1NSw3IEBAIHB1YmxpYzoKIAogICAgIHN0
YXRpYyBjb25zdCBjaGFyKiBzdXBwbGVtZW50TmFtZSgpOwogCi0gICAgdm9pZCBzZXRIVFRQQ29v
a2llQWNjZXB0UG9saWN5KEhUVFBDb29raWVBY2NlcHRQb2xpY3ksIE9wdGlvbmFsQ2FsbGJhY2tJ
RCk7CisgICAgdm9pZCBzZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KFBBTDo6U2Vzc2lvbklELCBI
VFRQQ29va2llQWNjZXB0UG9saWN5LCBPcHRpb25hbENhbGxiYWNrSUQpOwogCiAjaWYgVVNFKFNP
VVApCiAgICAgdm9pZCBzZXRDb29raWVQZXJzaXN0ZW50U3RvcmFnZShQQUw6OlNlc3Npb25JRCwg
Y29uc3QgU3RyaW5nJiBzdG9yYWdlUGF0aCwgU291cENvb2tpZVBlcnNpc3RlbnRTdG9yYWdlVHlw
ZSk7CkBAIC03OSw5ICs3OSw5IEBAIHByaXZhdGU6CiAgICAgdm9pZCBnZXRBbGxDb29raWVzKFBB
TDo6U2Vzc2lvbklELCBDYWxsYmFja0lEKTsKICAgICB2b2lkIGdldENvb2tpZXMoUEFMOjpTZXNz
aW9uSUQsIGNvbnN0IFVSTCYsIENhbGxiYWNrSUQpOwogCi0gICAgdm9pZCBwbGF0Zm9ybVNldEhU
VFBDb29raWVBY2NlcHRQb2xpY3koSFRUUENvb2tpZUFjY2VwdFBvbGljeSk7Ci0gICAgdm9pZCBn
ZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KENhbGxiYWNrSUQpOwotICAgIEhUVFBDb29raWVBY2Nl
cHRQb2xpY3kgcGxhdGZvcm1HZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KCk7CisgICAgdm9pZCBw
bGF0Zm9ybVNldEhUVFBDb29raWVBY2NlcHRQb2xpY3koUEFMOjpTZXNzaW9uSUQsIEhUVFBDb29r
aWVBY2NlcHRQb2xpY3kpOworICAgIHZvaWQgZ2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShQQUw6
OlNlc3Npb25JRCwgQ2FsbGJhY2tJRCk7CisgICAgSFRUUENvb2tpZUFjY2VwdFBvbGljeSBwbGF0
Zm9ybUdldEhUVFBDb29raWVBY2NlcHRQb2xpY3koUEFMOjpTZXNzaW9uSUQpOwogCiAgICAgdm9p
ZCBzdGFydE9ic2VydmluZ0Nvb2tpZUNoYW5nZXMoUEFMOjpTZXNzaW9uSUQpOwogICAgIHZvaWQg
c3RvcE9ic2VydmluZ0Nvb2tpZUNoYW5nZXMoUEFMOjpTZXNzaW9uSUQpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIubWVz
c2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2ll
TWFuYWdlci5tZXNzYWdlcy5pbgppbmRleCA5NDQwNTZjZmQ0NDM1ZjU1MWFjY2E4YTZkOTFlZjg1
MjkyNDE0MTM4Li45M2YyMGIxMTY2YjUwODlmYWJlYTRkNzA1YjQyNzMyZDE0ZGYwZjViIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFu
YWdlci5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Nvb2tp
ZXMvV2ViQ29va2llTWFuYWdlci5tZXNzYWdlcy5pbgpAQCAtMzUsOCArMzUsOCBAQAogICAgIHZv
aWQgRGVsZXRlQ29va2llKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgc3RydWN0IFdlYkNvcmU6
OkNvb2tpZSBjb29raWUsIFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQogICAgIHZvaWQg
RGVsZXRlQWxsQ29va2llc01vZGlmaWVkU2luY2UoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBX
YWxsVGltZSB0aW1lLCBXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKIAotICAgIHZvaWQg
U2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeSh1aW50MzJfdCBwb2xpY3ksIFdlYktpdDo6T3B0aW9u
YWxDYWxsYmFja0lEIGNhbGxiYWNrSUQpCi0gICAgdm9pZCBHZXRIVFRQQ29va2llQWNjZXB0UG9s
aWN5KFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQorICAgIHZvaWQgU2V0SFRUUENvb2tp
ZUFjY2VwdFBvbGljeShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIHVpbnQzMl90IHBvbGljeSwg
V2ViS2l0OjpPcHRpb25hbENhbGxiYWNrSUQgY2FsbGJhY2tJRCkKKyAgICB2b2lkIEdldEhUVFBD
b29raWVBY2NlcHRQb2xpY3koUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJLaXQ6OkNhbGxi
YWNrSUQgY2FsbGJhY2tJRCkKICAgICAKICAgICB2b2lkIFN0YXJ0T2JzZXJ2aW5nQ29va2llQ2hh
bmdlcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiAgICAgdm9pZCBTdG9wT2JzZXJ2aW5nQ29v
a2llQ2hhbmdlcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL0Nvb2tpZXMvY3VybC9XZWJDb29raWVNYW5hZ2VyQ3VybC5j
cHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Nvb2tpZXMvY3VybC9XZWJDb29raWVN
YW5hZ2VyQ3VybC5jcHAKaW5kZXggZWI2YmZmMWZjYWUwMmJjNTBkYTdiZTVhNGJjMDkxY2Y2N2Rj
OWIyNy4uNmZlZjBkZGU2YWI5OGJiNzJlZGNhNWYyNTA0NzM3MTkyNmFjMGM4NCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Db29raWVzL2N1cmwvV2ViQ29va2llTWFu
YWdlckN1cmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ29va2llcy9j
dXJsL1dlYkNvb2tpZU1hbmFnZXJDdXJsLmNwcApAQCAtMzAsMTMgKzMwLDEzIEBAIG5hbWVzcGFj
ZSBXZWJLaXQgewogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAotdm9pZCBXZWJDb29raWVN
YW5hZ2VyOjpwbGF0Zm9ybVNldEhUVFBDb29raWVBY2NlcHRQb2xpY3koSFRUUENvb2tpZUFjY2Vw
dFBvbGljeSkKK3ZvaWQgV2ViQ29va2llTWFuYWdlcjo6cGxhdGZvcm1TZXRIVFRQQ29va2llQWNj
ZXB0UG9saWN5KFBBTDo6U2Vzc2lvbklELCBIVFRQQ29va2llQWNjZXB0UG9saWN5KQogewogfQog
Ci1IVFRQQ29va2llQWNjZXB0UG9saWN5IFdlYkNvb2tpZU1hbmFnZXI6OnBsYXRmb3JtR2V0SFRU
UENvb2tpZUFjY2VwdFBvbGljeSgpCitIVFRQQ29va2llQWNjZXB0UG9saWN5IFdlYkNvb2tpZU1h
bmFnZXI6OnBsYXRmb3JtR2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShQQUw6OlNlc3Npb25JRCkK
IHsKLSAgICByZXR1cm4gSFRUUENvb2tpZUFjY2VwdFBvbGljeU9ubHlGcm9tTWFpbkRvY3VtZW50
RG9tYWluOworICAgIHJldHVybiBkZWZhdWx0SFRUUENvb2tpZUFjY2VwdFBvbGljeTsKIH0KIAog
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL0Nvb2tpZXMvbWFjL1dlYkNvb2tpZU1hbmFnZXJNYWMubW0gYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL0Nvb2tpZXMvbWFjL1dlYkNvb2tpZU1hbmFnZXJNYWMubW0KaW5kZXgg
NzE0OGU3MWEwZWJhMDFiYzliY2I4ZjZkNDJkOGM5M2Y2OTcxNGUwNi4uYWRiMDNmYzBhMTQyZDEx
ODAyYzZkNzYxMDI2N2NiZWE1YzU3OWI2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9Db29raWVzL21hYy9XZWJDb29raWVNYW5hZ2VyTWFjLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ29va2llcy9tYWMvV2ViQ29va2llTWFuYWdlck1hYy5t
bQpAQCAtMzUsMTkgKzM1LDIxIEBACiBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFj
ZSBXZWJDb3JlOwogCi12b2lkIFdlYkNvb2tpZU1hbmFnZXI6OnBsYXRmb3JtU2V0SFRUUENvb2tp
ZUFjY2VwdFBvbGljeShIVFRQQ29va2llQWNjZXB0UG9saWN5IHBvbGljeSkKK3ZvaWQgV2ViQ29v
a2llTWFuYWdlcjo6cGxhdGZvcm1TZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KFBBTDo6U2Vzc2lv
bklELCBIVFRQQ29va2llQWNjZXB0UG9saWN5IHBvbGljeSkKIHsKICAgICBBU1NFUlQoaGFzUHJv
Y2Vzc1ByaXZpbGVnZShQcm9jZXNzUHJpdmlsZWdlOjpDYW5BY2Nlc3NSYXdDb29raWVzKSk7CiAK
ICAgICBbW05TSFRUUENvb2tpZVN0b3JhZ2Ugc2hhcmVkSFRUUENvb2tpZVN0b3JhZ2VdIHNldENv
b2tpZUFjY2VwdFBvbGljeTpzdGF0aWNfY2FzdDxOU0hUVFBDb29raWVBY2NlcHRQb2xpY3k+KHBv
bGljeSldOwogCisgICAgLy8gQmVjYXVzZSB3ZSBoYXZlIHRoZSBzaGFyZWRIVFRQQ29va2llU3Rv
cmFnZSwgd2UnbGwgaWdub3JlIHRoZSBTZXNzaW9uSUQgYW5kIGp1c3QgdXNlIHRoZQorICAgIC8v
IHNhbWUgYWNjZXB0IHBvbGljeSBmb3IgZXZlcnkgc2Vzc2lvbi4KICAgICBtX3Byb2Nlc3MuZm9y
RWFjaE5ldHdvcmtTdG9yYWdlU2Vzc2lvbihbJl0gKGNvbnN0IGF1dG8mIG5ldHdvcmtTdG9yYWdl
U2Vzc2lvbikgewogICAgICAgICBpZiAoYXV0byBjb29raWVTdG9yYWdlID0gbmV0d29ya1N0b3Jh
Z2VTZXNzaW9uLmNvb2tpZVN0b3JhZ2UoKSkKICAgICAgICAgICAgIENGSFRUUENvb2tpZVN0b3Jh
Z2VTZXRDb29raWVBY2NlcHRQb2xpY3koY29va2llU3RvcmFnZS5nZXQoKSwgcG9saWN5KTsKICAg
ICB9KTsKIH0KIAotSFRUUENvb2tpZUFjY2VwdFBvbGljeSBXZWJDb29raWVNYW5hZ2VyOjpwbGF0
Zm9ybUdldEhUVFBDb29raWVBY2NlcHRQb2xpY3koKQorSFRUUENvb2tpZUFjY2VwdFBvbGljeSBX
ZWJDb29raWVNYW5hZ2VyOjpwbGF0Zm9ybUdldEhUVFBDb29raWVBY2NlcHRQb2xpY3koUEFMOjpT
ZXNzaW9uSUQpCiB7CiAgICAgQVNTRVJUKGhhc1Byb2Nlc3NQcml2aWxlZ2UoUHJvY2Vzc1ByaXZp
bGVnZTo6Q2FuQWNjZXNzUmF3Q29va2llcykpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL0Nvb2tpZXMvc291cC9XZWJDb29raWVNYW5hZ2VyU291cC5jcHAgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Nvb2tpZXMvc291cC9XZWJDb29raWVNYW5hZ2Vy
U291cC5jcHAKaW5kZXggYjg1YzlhZTZiYTNhZDM1Nzg3OTA4YmI4ZWYxMDE2OTM5MjY5OTRhOC4u
NDU3MDQ3YjI0NjE3MmI0NTczODdjMjllYjViMmZmZDkzMWY2YjU4MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Db29raWVzL3NvdXAvV2ViQ29va2llTWFuYWdlclNv
dXAuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ29va2llcy9zb3VwL1dl
YkNvb2tpZU1hbmFnZXJTb3VwLmNwcApAQCAtMzcsNyArMzcsNyBAQAogbmFtZXNwYWNlIFdlYktp
dCB7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAotdm9pZCBXZWJDb29raWVNYW5hZ2VyOjpw
bGF0Zm9ybVNldEhUVFBDb29raWVBY2NlcHRQb2xpY3koSFRUUENvb2tpZUFjY2VwdFBvbGljeSBw
b2xpY3kpCit2b2lkIFdlYkNvb2tpZU1hbmFnZXI6OnBsYXRmb3JtU2V0SFRUUENvb2tpZUFjY2Vw
dFBvbGljeShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIEhUVFBDb29raWVBY2NlcHRQb2xpY3kg
cG9saWN5KQogewogICAgIFNvdXBDb29raWVKYXJBY2NlcHRQb2xpY3kgc291cFBvbGljeSA9IFNP
VVBfQ09PS0lFX0pBUl9BQ0NFUFRfTk9fVEhJUkRfUEFSVFk7CiAgICAgc3dpdGNoIChwb2xpY3kp
IHsKQEAgLTQ4LDI4ICs0OCwzMiBAQCB2b2lkIFdlYkNvb2tpZU1hbmFnZXI6OnBsYXRmb3JtU2V0
SFRUUENvb2tpZUFjY2VwdFBvbGljeShIVFRQQ29va2llQWNjZXB0UG9saWN5CiAgICAgICAgIHNv
dXBQb2xpY3kgPSBTT1VQX0NPT0tJRV9KQVJfQUNDRVBUX05FVkVSOwogICAgICAgICBicmVhazsK
ICAgICBjYXNlIEhUVFBDb29raWVBY2NlcHRQb2xpY3lPbmx5RnJvbU1haW5Eb2N1bWVudERvbWFp
bjoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIEZBTExUSFJPVUdIOwor
ICAgIGNhc2UgSFRUUENvb2tpZUFjY2VwdFBvbGljeUV4Y2x1c2l2ZWx5RnJvbU1haW5Eb2N1bWVu
dERvbWFpbjoKICAgICAgICAgc291cFBvbGljeSA9IFNPVVBfQ09PS0lFX0pBUl9BQ0NFUFRfTk9f
VEhJUkRfUEFSVFk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIAotICAgIG1fcHJvY2Vzcy5mb3JF
YWNoTmV0d29ya1N0b3JhZ2VTZXNzaW9uKFtzb3VwUG9saWN5XSAoY29uc3QgYXV0byYgc2Vzc2lv
bikgewotICAgICAgICBzb3VwX2Nvb2tpZV9qYXJfc2V0X2FjY2VwdF9wb2xpY3koc2Vzc2lvbi5j
b29raWVTdG9yYWdlKCksIHNvdXBQb2xpY3kpOwotICAgIH0pOworICAgIGlmIChhdXRvKiBzdG9y
YWdlU2Vzc2lvbiA9IG1fcHJvY2Vzcy5zdG9yYWdlU2Vzc2lvbihzZXNzaW9uSUQpKQorICAgICAg
ICBzb3VwX2Nvb2tpZV9qYXJfc2V0X2FjY2VwdF9wb2xpY3koc3RvcmFnZVNlc3Npb24tPmNvb2tp
ZVN0b3JhZ2UoKSwgc291cFBvbGljeSk7CiB9CiAKLUhUVFBDb29raWVBY2NlcHRQb2xpY3kgV2Vi
Q29va2llTWFuYWdlcjo6cGxhdGZvcm1HZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KCkKK0hUVFBD
b29raWVBY2NlcHRQb2xpY3kgV2ViQ29va2llTWFuYWdlcjo6cGxhdGZvcm1HZXRIVFRQQ29va2ll
QWNjZXB0UG9saWN5KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKIHsKLSAgICBzd2l0Y2ggKHNv
dXBfY29va2llX2phcl9nZXRfYWNjZXB0X3BvbGljeShtX3Byb2Nlc3MuZGVmYXVsdFN0b3JhZ2VT
ZXNzaW9uKCkuY29va2llU3RvcmFnZSgpKSkgewotICAgIGNhc2UgU09VUF9DT09LSUVfSkFSX0FD
Q0VQVF9BTFdBWVM6Ci0gICAgICAgIHJldHVybiBIVFRQQ29va2llQWNjZXB0UG9saWN5QWx3YXlz
OwotICAgIGNhc2UgU09VUF9DT09LSUVfSkFSX0FDQ0VQVF9ORVZFUjoKLSAgICAgICAgcmV0dXJu
IEhUVFBDb29raWVBY2NlcHRQb2xpY3lOZXZlcjsKLSAgICBjYXNlIFNPVVBfQ09PS0lFX0pBUl9B
Q0NFUFRfTk9fVEhJUkRfUEFSVFk6Ci0gICAgICAgIHJldHVybiBIVFRQQ29va2llQWNjZXB0UG9s
aWN5T25seUZyb21NYWluRG9jdW1lbnREb21haW47CisgICAgaWYgKE5ldHdvcmtTdG9yYWdlU2Vz
c2lvbiogc2Vzc2lvbiA9IG1fcHJvY2Vzcy5zdG9yYWdlU2Vzc2lvbihzZXNzaW9uSUQpKSB7Cisg
ICAgICAgIHN3aXRjaCAoc291cF9jb29raWVfamFyX2dldF9hY2NlcHRfcG9saWN5KHNlc3Npb24t
PmNvb2tpZVN0b3JhZ2UoKSkpIHsKKyAgICAgICAgY2FzZSBTT1VQX0NPT0tJRV9KQVJfQUNDRVBU
X0FMV0FZUzoKKyAgICAgICAgICAgIHJldHVybiBIVFRQQ29va2llQWNjZXB0UG9saWN5QWx3YXlz
OworICAgICAgICBjYXNlIFNPVVBfQ09PS0lFX0pBUl9BQ0NFUFRfTkVWRVI6CisgICAgICAgICAg
ICByZXR1cm4gSFRUUENvb2tpZUFjY2VwdFBvbGljeU5ldmVyOworICAgICAgICBjYXNlIFNPVVBf
Q09PS0lFX0pBUl9BQ0NFUFRfTk9fVEhJUkRfUEFSVFk6CisgICAgICAgICAgICByZXR1cm4gSFRU
UENvb2tpZUFjY2VwdFBvbGljeUV4Y2x1c2l2ZWx5RnJvbU1haW5Eb2N1bWVudERvbWFpbjsKKyAg
ICAgICAgfQorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICB9CiAKLSAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gSFRUUENvb2tpZUFjY2VwdFBvbGljeU9ubHlG
cm9tTWFpbkRvY3VtZW50RG9tYWluOworICAgIHJldHVybiBkZWZhdWx0SFRUUENvb2tpZUFjY2Vw
dFBvbGljeTsKIH0KIAogdm9pZCBXZWJDb29raWVNYW5hZ2VyOjpzZXRDb29raWVQZXJzaXN0ZW50
U3RvcmFnZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgc3RvcmFnZVBh
dGgsIFNvdXBDb29raWVQZXJzaXN0ZW50U3RvcmFnZVR5cGUgc3RvcmFnZVR5cGUpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCmluZGV4IGM2ZGYwOGU5ZmI3NzY2Zjc3MGFmYWRlZjFh
YTdmMjEyOTQ5ZDFmNTUuLjVhMjM0MjQyNzAzN2E2NDc5ODRkNDgyMjMyNDI3OTYwYWM4ZWMyOTkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCkBAIC03Miw3ICs3Miw2IEBAIHZv
aWQgTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZShJUEM6OkVuY29kZXIm
IGVuY29kZXIpIGNvbnN0CiAjZW5kaWYKICAgICBlbmNvZGVyIDw8IGRlZmF1bHREYXRhU3RvcmVQ
YXJhbWV0ZXJzOwogI2lmIFVTRShTT1VQKQotICAgIGVuY29kZXIuZW5jb2RlRW51bShjb29raWVB
Y2NlcHRQb2xpY3kpOwogICAgIGVuY29kZXIgPDwgaWdub3JlVExTRXJyb3JzOwogICAgIGVuY29k
ZXIgPDwgbGFuZ3VhZ2VzOwogICAgIGVuY29kZXIgPDwgcHJveHlTZXR0aW5nczsKQEAgLTE3MCw4
ICsxNjksNiBAQCBib29sIE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUo
SVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBOZXR3b3JrUHJvYwogICAgIHJlc3VsdC5kZWZhdWx0RGF0
YVN0b3JlUGFyYW1ldGVycyA9IFdURk1vdmUoKmRlZmF1bHREYXRhU3RvcmVQYXJhbWV0ZXJzKTsK
IAogI2lmIFVTRShTT1VQKQotICAgIGlmICghZGVjb2Rlci5kZWNvZGVFbnVtKHJlc3VsdC5jb29r
aWVBY2NlcHRQb2xpY3kpKQotICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKCFkZWNvZGVy
LmRlY29kZShyZXN1bHQuaWdub3JlVExTRXJyb3JzKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0Lmxhbmd1YWdlcykpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzLmgKaW5kZXggMmZkM2JlOWZkZWQ5ODBiNzU3M2NlM2I1MTZiMDdhOTZmYWRh
ZjczYi4uOWY4NWI4M2NmYWUyYWViYTM0ZDdmNWE0OGY0ZjE4MTllOThiNjk3MSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMuaApAQCAtMzQsNyArMzQsNiBAQAogI2luY2x1ZGUgPHd0Zi90
ZXh0L1dURlN0cmluZy5oPgogCiAjaWYgVVNFKFNPVVApCi0jaW5jbHVkZSAiSFRUUENvb2tpZUFj
Y2VwdFBvbGljeS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvU291cE5ldHdvcmtQcm94eVNldHRpbmdz
Lmg+CiAjZW5kaWYKIApAQCAtODcsNyArODYsNiBAQCBzdHJ1Y3QgTmV0d29ya1Byb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnMgewogICAgIFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzIGRlZmF1bHRE
YXRhU3RvcmVQYXJhbWV0ZXJzOwogICAgIAogI2lmIFVTRShTT1VQKQotICAgIEhUVFBDb29raWVB
Y2NlcHRQb2xpY3kgY29va2llQWNjZXB0UG9saWN5IHsgSFRUUENvb2tpZUFjY2VwdFBvbGljeUFs
d2F5cyB9OwogICAgIGJvb2wgaWdub3JlVExTRXJyb3JzIHsgZmFsc2UgfTsKICAgICBWZWN0b3I8
U3RyaW5nPiBsYW5ndWFnZXM7CiAgICAgV2ViQ29yZTo6U291cE5ldHdvcmtQcm94eVNldHRpbmdz
IHByb3h5U2V0dGluZ3M7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtTZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Nlc3Npb24uY3BwCmluZGV4IGQ3MTkyNDM2ZDUxNzk0ODliNzBjZDJmODc4Y2JmZWYxNzMyOTYy
YzguLmU0YWI0OGJkMTNhMTE3MGIzZTVkNWI1MGQ5MTBiOWM5NzQ0MzIzMTMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uY3BwCkBAIC02NywxMSAr
NjcsMTIgQEAgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBOZXR3b3JrU2Vzc2lvbjo6bmV0d29ya1N0
b3JhZ2VTZXNzaW9uKCkgY29uc3QKICAgICByZXR1cm4gKnN0b3JhZ2VTZXNzaW9uOwogfQogCi1O
ZXR3b3JrU2Vzc2lvbjo6TmV0d29ya1Nlc3Npb24oTmV0d29ya1Byb2Nlc3MmIG5ldHdvcmtQcm9j
ZXNzLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCi0gICAgOiBtX3Nlc3Npb25JRChzZXNzaW9u
SUQpCitOZXR3b3JrU2Vzc2lvbjo6TmV0d29ya1Nlc3Npb24oTmV0d29ya1Byb2Nlc3MmIG5ldHdv
cmtQcm9jZXNzLCBjb25zdCBOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1l
dGVycykKKyAgICA6IG1fc2Vzc2lvbklEKHBhcmFtZXRlcnMuc2Vzc2lvbklEKQogICAgICwgbV9u
ZXR3b3JrUHJvY2VzcyhuZXR3b3JrUHJvY2VzcykKICAgICAsIG1fYWRDbGlja0F0dHJpYnV0aW9u
KG1ha2VVbmlxdWVSZWY8TmV0d29ya0FkQ2xpY2tBdHRyaWJ1dGlvbj4oKSkKIHsKKyAgICBuZXR3
b3JrUHJvY2Vzcy5zdXBwbGVtZW50PFdlYkNvb2tpZU1hbmFnZXI+KCktPnNldEhUVFBDb29raWVB
Y2NlcHRQb2xpY3kobV9zZXNzaW9uSUQsIHBhcmFtZXRlcnMuaW5pdGlhbEhUVFBDb29raWVBY2Nl
cHRQb2xpY3ksIE9wdGlvbmFsQ2FsbGJhY2tJRCgpKTsKIH0KIAogTmV0d29ya1Nlc3Npb246On5O
ZXR3b3JrU2Vzc2lvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtTZXNzaW9uLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtT
ZXNzaW9uLmgKaW5kZXggNjNmNDRhMzNmNmNjYWVlNDg2YTU0ZTAxMDMxZWFjM2NmNTY3MWE0MC4u
YjljZGI3ZGUyNDI5MGY5OTIxMTM0ODIxNTZlZDZmZjIzMGYzNmIxZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uaApAQCAtODIsNyArODIsNyBAQCBw
dWJsaWM6CiAgICAgdm9pZCBjbGVhckFkQ2xpY2tBdHRyaWJ1dGlvbihDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKCk+JiYpOwogCiBwcm90ZWN0ZWQ6Ci0gICAgTmV0d29ya1Nlc3Npb24oTmV0d29ya1By
b2Nlc3MmLCBQQUw6OlNlc3Npb25JRCk7CisgICAgTmV0d29ya1Nlc3Npb24oTmV0d29ya1Byb2Nl
c3MmLCBjb25zdCBOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycyYpOwogCiAgICAgUEFM
OjpTZXNzaW9uSUQgbV9zZXNzaW9uSUQ7CiAgICAgUmVmPE5ldHdvcmtQcm9jZXNzPiBtX25ldHdv
cmtQcm9jZXNzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAppbmRleCA2ZjVhYTU1
Y2U0MDg5MWVhOGU1ODJjZWI5ZjVhNzhmNWM2ODk5YTcyLi4wOTM3MTk3MjAyNmVlNTA0ZTQ0ZjA4
ZTRlNGNhY2RjODlmODc1YTk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcApA
QCAtMjcsMTUgKzI3LDEzIEBACiAjaW5jbHVkZSAiTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFt
ZXRlcnMuaCIKIAogI2luY2x1ZGUgIkFyZ3VtZW50Q29kZXJzLmgiCisjaW5jbHVkZSAiSFRUUENv
b2tpZUFjY2VwdFBvbGljeS5oIgorI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgog
CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAjaW5jbHVkZSAiQXJndW1lbnRDb2RlcnNDRi5oIgogI2Vu
ZGlmCiAKLSNpZiBVU0UoQ1VSTCkKLSNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIK
LSNlbmRpZgotCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogTmV0d29ya1Nlc3Npb25DcmVhdGlvblBh
cmFtZXRlcnMgTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnM6OnByaXZhdGVTZXNzaW9u
UGFyYW1ldGVycyhjb25zdCBQQUw6OlNlc3Npb25JRCYgc2Vzc2lvbklEKQpAQCAtNTAsNyArNDgs
NyBAQCBOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycyBOZXR3b3JrU2Vzc2lvbkNyZWF0
aW9uUGFyYW1ldGVyczo6cHJpdmF0ZVNlc3NpbwogI2lmIFVTRShDVVJMKQogICAgICAgICAsIHsg
fSwgeyB9CiAjZW5kaWYKLSAgICAgICAgLCB7IH0sIHsgfSwgZmFsc2UKKyAgICAgICAgLCBkZWZh
dWx0SFRUUENvb2tpZUFjY2VwdFBvbGljeSwgeyB9LCB7IH0sIGZhbHNlCiAgICAgfTsKIH0KIApA
QCAtNzYsNiArNzQsNyBAQCB2b2lkIE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzOjpl
bmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIGVuY29kZXIgPDwgY29va2ll
UGVyc2lzdGVudFN0b3JhZ2VGaWxlOwogICAgIGVuY29kZXIgPDwgcHJveHlTZXR0aW5nczsKICNl
bmRpZgorICAgIGVuY29kZXIuZW5jb2RlRW51bShpbml0aWFsSFRUUENvb2tpZUFjY2VwdFBvbGlj
eSk7CiAgICAgZW5jb2RlciA8PCByZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5OwogICAg
IGVuY29kZXIgPDwgcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeUV4dGVuc2lvbkhhbmRs
ZTsKICAgICBlbmNvZGVyIDw8IGVuYWJsZVJlc291cmNlTG9hZFN0YXRpc3RpY3M7CkBAIC0xNTcs
NiArMTU2LDEwIEBAIE9wdGlvbmFsPE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzPiBO
ZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVyczo6ZGVjCiAgICAgICAgIHJldHVybiBXVEY6
Om51bGxvcHQ7CiAjZW5kaWYKIAorICAgIEhUVFBDb29raWVBY2NlcHRQb2xpY3kgaW5pdGlhbEhU
VFBDb29raWVBY2NlcHRQb2xpY3k7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZUVudW0oaW5pdGlh
bEhUVFBDb29raWVBY2NlcHRQb2xpY3kpKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0Owor
CiAgICAgT3B0aW9uYWw8U3RyaW5nPiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5Owog
ICAgIGRlY29kZXIgPj4gcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeTsKICAgICBpZiAo
IXJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnkpCkBAIC0xOTMsNiArMTk2LDcgQEAgT3B0
aW9uYWw8TmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnM+IE5ldHdvcmtTZXNzaW9uQ3Jl
YXRpb25QYXJhbWV0ZXJzOjpkZWMKICAgICAgICAgLCBXVEZNb3ZlKCpjb29raWVQZXJzaXN0ZW50
U3RvcmFnZUZpbGUpCiAgICAgICAgICwgV1RGTW92ZSgqcHJveHlTZXR0aW5ncykKICNlbmRpZgor
ICAgICAgICAsIFdURk1vdmUoaW5pdGlhbEhUVFBDb29raWVBY2NlcHRQb2xpY3kpCiAgICAgICAg
ICwgV1RGTW92ZSgqcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSkKICAgICAgICAgLCBX
VEZNb3ZlKCpyZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKQog
ICAgICAgICAsIFdURk1vdmUoKmVuYWJsZVJlc291cmNlTG9hZFN0YXRpc3RpY3MpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRpb25Q
YXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9u
Q3JlYXRpb25QYXJhbWV0ZXJzLmgKaW5kZXggNGZjNzM2MWVmNmY3NzZiNzE3ZTcxMjhiNjkxYmE1
M2MzNTk2ODE5Ni4uZmYzYWMzNGNmMWE1YmM4ZWNkOWY3YTliZGUzYTczZjg5MzZhMmZkMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbkNyZWF0
aW9uUGFyYW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMuaApAQCAtMjUsNiArMjUsNyBAQAogCiAjcHJhZ21h
IG9uY2UKIAorI2luY2x1ZGUgIkhUVFBDb29raWVBY2NlcHRQb2xpY3kuaCIKICNpbmNsdWRlICJT
YW5kYm94RXh0ZW5zaW9uLmgiCiAjaW5jbHVkZSA8cGFsL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUg
PHd0Zi9TZWNvbmRzLmg+CkBAIC03OCw2ICs3OSw3IEBAIHN0cnVjdCBOZXR3b3JrU2Vzc2lvbkNy
ZWF0aW9uUGFyYW1ldGVycyB7CiAgICAgU3RyaW5nIGNvb2tpZVBlcnNpc3RlbnRTdG9yYWdlRmls
ZTsKICAgICBXZWJDb3JlOjpDdXJsUHJveHlTZXR0aW5ncyBwcm94eVNldHRpbmdzOwogI2VuZGlm
CisgICAgSFRUUENvb2tpZUFjY2VwdFBvbGljeSBpbml0aWFsSFRUUENvb2tpZUFjY2VwdFBvbGlj
eSB7IGRlZmF1bHRIVFRQQ29va2llQWNjZXB0UG9saWN5IH07CiAgICAgU3RyaW5nIHJlc291cmNl
TG9hZFN0YXRpc3RpY3NEaXJlY3Rvcnk7CiAgICAgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIHJl
c291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGU7CiAgICAgYm9vbCBl
bmFibGVSZXNvdXJjZUxvYWRTdGF0aXN0aWNzIHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbSBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbQpp
bmRleCAxOTA3YTU1ODI1NGY5ZGQ1NDBlYThhYjQ3OWZiYmVkYjllZGY5NDUzLi5mYWM5ZmI5Yjc3
MjczYWFlZDgzZmQ1ZDY4NWJmYjc5ZmI5MTg4YTRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW0KKysrIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tCkBAIC04
NDUsNyArODQ1LDcgQEAgc3RhdGljIE5TRGljdGlvbmFyeSAqcHJveHlEaWN0aW9uYXJ5KGNvbnN0
IFVSTCYgaHR0cFByb3h5LCBjb25zdCBVUkwmIGh0dHBzUHJveHkKIH0KIAogTmV0d29ya1Nlc3Np
b25Db2NvYTo6TmV0d29ya1Nlc3Npb25Db2NvYShOZXR3b3JrUHJvY2VzcyYgbmV0d29ya1Byb2Nl
c3MsIE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzJiYgcGFyYW1ldGVycykKLSAgICA6
IE5ldHdvcmtTZXNzaW9uKG5ldHdvcmtQcm9jZXNzLCBwYXJhbWV0ZXJzLnNlc3Npb25JRCkKKyAg
ICA6IE5ldHdvcmtTZXNzaW9uKG5ldHdvcmtQcm9jZXNzLCBwYXJhbWV0ZXJzKQogICAgICwgbV9i
b3VuZEludGVyZmFjZUlkZW50aWZpZXIocGFyYW1ldGVycy5ib3VuZEludGVyZmFjZUlkZW50aWZp
ZXIpCiAgICAgLCBtX3Byb3h5Q29uZmlndXJhdGlvbihwYXJhbWV0ZXJzLnByb3h5Q29uZmlndXJh
dGlvbikKICAgICAsIG1fc2hvdWxkTG9nQ29va2llSW5mb3JtYXRpb24ocGFyYW1ldGVycy5zaG91
bGRMb2dDb29raWVJbmZvcm1hdGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvY3VybC9OZXR3b3JrU2Vzc2lvbkN1cmwuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9jdXJsL05ldHdvcmtTZXNzaW9uQ3VybC5jcHAKaW5kZXggZWM4YWJjYjc5NjBh
ODQ5MDU5MzEzOWY4MTYwODczM2Y1MTBiNzg3ZC4uODkyOWJkYmZlMTQxNzkwNzk0NWMwZGJmNGNi
NGNkYTEyNGNlYTlhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9j
dXJsL05ldHdvcmtTZXNzaW9uQ3VybC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9jdXJsL05ldHdvcmtTZXNzaW9uQ3VybC5jcHAKQEAgLTM4LDcgKzM4LDcgQEAgbmFtZXNw
YWNlIFdlYktpdCB7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogTmV0d29ya1Nlc3Npb25D
dXJsOjpOZXR3b3JrU2Vzc2lvbkN1cmwoTmV0d29ya1Byb2Nlc3MmIG5ldHdvcmtQcm9jZXNzLCBO
ZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMpCi0gICAgOiBOZXR3
b3JrU2Vzc2lvbihuZXR3b3JrUHJvY2VzcywgcGFyYW1ldGVycy5zZXNzaW9uSUQpCisgICAgOiBO
ZXR3b3JrU2Vzc2lvbihuZXR3b3JrUHJvY2VzcywgcGFyYW1ldGVycykKIHsKICAgICBpZiAoIXBh
cmFtZXRlcnMuY29va2llUGVyc2lzdGVudFN0b3JhZ2VGaWxlLmlzRW1wdHkoKSkKICAgICAgICAg
bmV0d29ya1N0b3JhZ2VTZXNzaW9uKCkuc2V0Q29va2llRGF0YWJhc2UobWFrZVVuaXF1ZVJlZjxD
b29raWVKYXJEQj4ocGFyYW1ldGVycy5jb29raWVQZXJzaXN0ZW50U3RvcmFnZUZpbGUpKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrUHJvY2Vz
c1NvdXAuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtQcm9j
ZXNzU291cC5jcHAKaW5kZXggZWJhYmZiMDcyYjQ5ZGQ1Yjg0ZGU1ZWJkZGZiZTI3M2U0MGMxMjFh
NC4uOTEzZDUwNWFiZmEzYWYyMmQ4ZjU3NmRkYmMyNjIwZWY1Mzk1MmE5ZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtQcm9jZXNzU291cC5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtQcm9jZXNzU291
cC5jcHAKQEAgLTEyMSw4ICsxMjEsNiBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpwbGF0Zm9ybUlu
aXRpYWxpemVOZXR3b3JrUHJvY2Vzcyhjb25zdCBOZXR3b3JrUHJvY2Vzc0NyZWF0aQogCiAgICAg
bV9jYWNoZSA9IE5ldHdvcmtDYWNoZTo6Q2FjaGU6Om9wZW4oKnRoaXMsIG1fZGlza0NhY2hlRGly
ZWN0b3J5LCBjYWNoZU9wdGlvbnMpOwogCi0gICAgc3VwcGxlbWVudDxXZWJDb29raWVNYW5hZ2Vy
PigpLT5zZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KHBhcmFtZXRlcnMuY29va2llQWNjZXB0UG9s
aWN5LCBPcHRpb25hbENhbGxiYWNrSUQoKSk7Ci0KICAgICBpZiAoIXBhcmFtZXRlcnMubGFuZ3Vh
Z2VzLmlzRW1wdHkoKSkKICAgICAgICAgdXNlclByZWZlcnJlZExhbmd1YWdlc0NoYW5nZWQocGFy
YW1ldGVycy5sYW5ndWFnZXMpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL3NvdXAvTmV0d29ya1Nlc3Npb25Tb3VwLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3Mvc291cC9OZXR3b3JrU2Vzc2lvblNvdXAuY3BwCmluZGV4IDIwYWNiMWY4YTQxZTU2
YWY2OWFlOTQ1ZjBmM2JmZDhkNDM2MWQ0ZGEuLjZkYmY2ZjE1Y2QxNTdjNGIxYjA4ZmM1ZDcwMGUw
OTFhMjQ2NGM4NzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291
cC9OZXR3b3JrU2Vzc2lvblNvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3Mvc291cC9OZXR3b3JrU2Vzc2lvblNvdXAuY3BwCkBAIC0zNyw3ICszNyw3IEBAIG5hbWVzcGFj
ZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIE5ldHdvcmtTZXNzaW9uU291
cDo6TmV0d29ya1Nlc3Npb25Tb3VwKE5ldHdvcmtQcm9jZXNzJiBuZXR3b3JrUHJvY2VzcywgTmV0
d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQotICAgIDogTmV0d29y
a1Nlc3Npb24obmV0d29ya1Byb2Nlc3MsIHBhcmFtZXRlcnMuc2Vzc2lvbklEKQorICAgIDogTmV0
d29ya1Nlc3Npb24obmV0d29ya1Byb2Nlc3MsIHBhcmFtZXRlcnMpCiB7CiAgICAgbmV0d29ya1N0
b3JhZ2VTZXNzaW9uKCkuc2V0Q29va2llT2JzZXJ2ZXJIYW5kbGVyKFt0aGlzXSB7CiAgICAgICAg
IHRoaXMtPm5ldHdvcmtQcm9jZXNzKCkuc3VwcGxlbWVudDxXZWJDb29raWVNYW5hZ2VyPigpLT5u
b3RpZnlDb29raWVzRGlkQ2hhbmdlKG1fc2Vzc2lvbklEKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL0hUVFBDb29raWVBY2NlcHRQb2xpY3kuaCBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL0hUVFBDb29raWVBY2NlcHRQb2xpY3kuaAppbmRleCA0ZmU4MWIzYzM5YmNmYjI0N2I2ZWU3
NWVjNDAxNTEwZDc4N2Y3MjQzLi43MDFkNjMzNjM5ZGY3YTcwOGYyY2E5MWI3Y2Q3ZmNiYmI0MDNk
OGRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9IVFRQQ29va2llQWNjZXB0UG9s
aWN5LmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvSFRUUENvb2tpZUFjY2VwdFBvbGljeS5o
CkBAIC0yMywxOSArMjMsMjQgQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI2lmbmRlZiBIVFRQ
Q29va2llQWNjZXB0UG9saWN5X2gKLSNkZWZpbmUgSFRUUENvb2tpZUFjY2VwdFBvbGljeV9oCisj
cHJhZ21hIG9uY2UKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGVudW0gewogICAgIEhUVFBDb29r
aWVBY2NlcHRQb2xpY3lBbHdheXMgPSAwLAogICAgIEhUVFBDb29raWVBY2NlcHRQb2xpY3lOZXZl
ciA9IDEsCisgICAgLy8gTWlzbmFtZWQsIHRoaXMgbWVhbnMgbm8gdGhpcmQtcGFydHkgY29va2ll
cyBleGNlcHQgZnJvbSBkb21haW5zIHRoYXQgaGF2ZSBwcmV2aW91c2x5IHNldCBjb29raWVzLgog
ICAgIEhUVFBDb29raWVBY2NlcHRQb2xpY3lPbmx5RnJvbU1haW5Eb2N1bWVudERvbWFpbiA9IDIs
CisgICAgLy8gTm8gdGhpcmQtcGFydHkgY29va2llcyBhdCBhbGwuCiAgICAgSFRUUENvb2tpZUFj
Y2VwdFBvbGljeUV4Y2x1c2l2ZWx5RnJvbU1haW5Eb2N1bWVudERvbWFpbiA9IDMsCiB9OwogdHlw
ZWRlZiB1bnNpZ25lZCBIVFRQQ29va2llQWNjZXB0UG9saWN5OwogCi19IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKKyNpZiBVU0UoU09VUCkgfHwgVVNFKENVUkwpCitjb25zdCBIVFRQQ29va2llQWNjZXB0
UG9saWN5IGRlZmF1bHRIVFRQQ29va2llQWNjZXB0UG9saWN5ID0gSFRUUENvb2tpZUFjY2VwdFBv
bGljeUV4Y2x1c2l2ZWx5RnJvbU1haW5Eb2N1bWVudERvbWFpbjsKKyNlbHNlCitjb25zdCBIVFRQ
Q29va2llQWNjZXB0UG9saWN5IGRlZmF1bHRIVFRQQ29va2llQWNjZXB0UG9saWN5ID0gSFRUUENv
b2tpZUFjY2VwdFBvbGljeUFsd2F5czsKKyNlbmRpZgogCi0jZW5kaWYgLy8gSFRUUENvb2tpZUFj
Y2VwdFBvbGljeV9oCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdENvb2tpZU1hbmFnZXIuY3BwIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0Q29va2llTWFuYWdlci5jcHAKaW5kZXgg
YTFkZTJjMjdjM2Q5ODBiOTlkOTc3OTNiOTVjMmM1ZmY1ZDUzOGQ5MS4uMDliZWM5YjgzMThhZTA1
Mjg2ODNkZTBmYjJjYmNjYWM5Y2QyNjRjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL2dsaWIvV2ViS2l0Q29va2llTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0Q29va2llTWFuYWdlci5jcHAKQEAgLTk1LDYgKzk1
LDkgQEAgc3RhdGljIGlubGluZSBXZWJLaXRDb29raWVBY2NlcHRQb2xpY3kgdG9XZWJLaXRDb29r
aWVBY2NlcHRQb2xpY3koSFRUUENvb2tpZUFjY2UKICAgICBjYXNlIEhUVFBDb29raWVBY2NlcHRQ
b2xpY3lOZXZlcjoKICAgICAgICAgcmV0dXJuIFdFQktJVF9DT09LSUVfUE9MSUNZX0FDQ0VQVF9O
RVZFUjsKICAgICBjYXNlIEhUVFBDb29raWVBY2NlcHRQb2xpY3lPbmx5RnJvbU1haW5Eb2N1bWVu
dERvbWFpbjoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIEZBTExUSFJP
VUdIOworICAgIGNhc2UgSFRUUENvb2tpZUFjY2VwdFBvbGljeUV4Y2x1c2l2ZWx5RnJvbU1haW5E
b2N1bWVudERvbWFpbjoKICAgICAgICAgcmV0dXJuIFdFQktJVF9DT09LSUVfUE9MSUNZX0FDQ0VQ
VF9OT19USElSRF9QQVJUWTsKICAgICBkZWZhdWx0OgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKQEAgLTExMCw3ICsxMTMsNyBAQCBzdGF0aWMgaW5saW5lIEhUVFBDb29raWVBY2NlcHRQ
b2xpY3kgdG9IVFRQQ29va2llQWNjZXB0UG9saWN5KFdlYktpdENvb2tpZUFjY2VwdAogICAgIGNh
c2UgV0VCS0lUX0NPT0tJRV9QT0xJQ1lfQUNDRVBUX05FVkVSOgogICAgICAgICByZXR1cm4gSFRU
UENvb2tpZUFjY2VwdFBvbGljeU5ldmVyOwogICAgIGNhc2UgV0VCS0lUX0NPT0tJRV9QT0xJQ1lf
QUNDRVBUX05PX1RISVJEX1BBUlRZOgotICAgICAgICByZXR1cm4gSFRUUENvb2tpZUFjY2VwdFBv
bGljeU9ubHlGcm9tTWFpbkRvY3VtZW50RG9tYWluOworICAgICAgICByZXR1cm4gSFRUUENvb2tp
ZUFjY2VwdFBvbGljeUV4Y2x1c2l2ZWx5RnJvbU1haW5Eb2N1bWVudERvbWFpbjsKICAgICBkZWZh
dWx0OgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgcmV0dXJuIEhUVFBD
b29raWVBY2NlcHRQb2xpY3lBbHdheXM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViQ29va2llTWFuYWdlclByb3h5LmNwcAppbmRleCAwZWZjMWFjZWI5ZjA4MDZkZTQxMzc5OWY3
NzlmNWQ1MmZjZTQ3YzdkLi5mMGMzOGYzZDEyYWY5MTg2OGQ4MmVlZmJiMDMzZTE0ZWZlNTQ3NzQ0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJv
eHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94
eS5jcHAKQEAgLTIzOCwyOSArMjM4LDM1IEBAIHZvaWQgV2ViQ29va2llTWFuYWdlclByb3h5Ojpj
b29raWVzRGlkQ2hhbmdlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKICAgICAgICAgb2JzZXJ2
ZXItPmNvb2tpZXNEaWRDaGFuZ2UoKTsKIH0KIAotdm9pZCBXZWJDb29raWVNYW5hZ2VyUHJveHk6
OnNldEhUVFBDb29raWVBY2NlcHRQb2xpY3koUEFMOjpTZXNzaW9uSUQsIEhUVFBDb29raWVBY2Nl
cHRQb2xpY3kgcG9saWN5LCBGdW5jdGlvbjx2b2lkIChDYWxsYmFja0Jhc2U6OkVycm9yKT4mJiBj
YWxsYmFja0Z1bmN0aW9uKQordm9pZCBXZWJDb29raWVNYW5hZ2VyUHJveHk6OnNldEhUVFBDb29r
aWVBY2NlcHRQb2xpY3koUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBIVFRQQ29va2llQWNjZXB0
UG9saWN5IHBvbGljeSwgRnVuY3Rpb248dm9pZCAoQ2FsbGJhY2tCYXNlOjpFcnJvcik+JiYgY2Fs
bGJhY2tGdW5jdGlvbikKIHsKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBpZiAoIXByb2Nlc3NQ
b29sKCktPmlzVXNpbmdUZXN0aW5nTmV0d29ya1Nlc3Npb24oKSkKLSAgICAgICAgcGVyc2lzdEhU
VFBDb29raWVBY2NlcHRQb2xpY3kocG9saWN5KTsKLSNlbmRpZgotI2lmIFVTRShTT1VQKQotICAg
IHByb2Nlc3NQb29sKCktPnNldEluaXRpYWxIVFRQQ29va2llQWNjZXB0UG9saWN5KHBvbGljeSk7
CisgICAgICAgIHBlcnNpc3RIVFRQQ29va2llQWNjZXB0UG9saWN5KHNlc3Npb25JRCwgcG9saWN5
KTsKICNlbmRpZgogCisgICAgbV9pbml0aWFsSFRUUENvb2tpZUFjY2VwdFBvbGljaWVzLmFkZChz
ZXNzaW9uSUQsIHBvbGljeSk7CisKICAgICBpZiAoIXByb2Nlc3NQb29sKCktPm5ldHdvcmtQcm9j
ZXNzKCkpIHsKICAgICAgICAgY2FsbGJhY2tGdW5jdGlvbihDYWxsYmFja0Jhc2U6OkVycm9yOjpO
b25lKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGF1dG8gY2FsbGJhY2tJRCA9IG1f
Y2FsbGJhY2tzLnB1dChXVEZNb3ZlKGNhbGxiYWNrRnVuY3Rpb24pLCBwcm9jZXNzUG9vbCgpLT5l
bnN1cmVOZXR3b3JrUHJvY2VzcygpLnRocm90dGxlcigpLmJhY2tncm91bmRBY3Rpdml0eVRva2Vu
KCkpOwotICAgIHByb2Nlc3NQb29sKCktPnNlbmRUb05ldHdvcmtpbmdQcm9jZXNzKE1lc3NhZ2Vz
OjpXZWJDb29raWVNYW5hZ2VyOjpTZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KHBvbGljeSwgT3B0
aW9uYWxDYWxsYmFja0lEKGNhbGxiYWNrSUQpKSk7CisgICAgYXV0byBjYWxsYmFja0lEID0gbV9j
YWxsYmFja3MucHV0KFdURk1vdmUoY2FsbGJhY2tGdW5jdGlvbiksIHByb2Nlc3NQb29sKCktPm5l
dHdvcmtQcm9jZXNzKCktPnRocm90dGxlcigpLmJhY2tncm91bmRBY3Rpdml0eVRva2VuKCkpOwor
ICAgIHByb2Nlc3NQb29sKCktPnNlbmRUb05ldHdvcmtpbmdQcm9jZXNzKE1lc3NhZ2VzOjpXZWJD
b29raWVNYW5hZ2VyOjpTZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KHNlc3Npb25JRCwgcG9saWN5
LCBPcHRpb25hbENhbGxiYWNrSUQoY2FsbGJhY2tJRCkpKTsKK30KKworSFRUUENvb2tpZUFjY2Vw
dFBvbGljeSBXZWJDb29raWVNYW5hZ2VyUHJveHk6OmdldEluaXRpYWxIVFRQQ29va2llQWNjZXB0
UG9saWN5KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKK3sKKyAgICBpZiAobV9pbml0aWFsSFRU
UENvb2tpZUFjY2VwdFBvbGljaWVzLmNvbnRhaW5zKHNlc3Npb25JRCkpCisgICAgICAgIHJldHVy
biBtX2luaXRpYWxIVFRQQ29va2llQWNjZXB0UG9saWNpZXMuZ2V0KHNlc3Npb25JRCk7CisgICAg
cmV0dXJuIGRlZmF1bHRIVFRQQ29va2llQWNjZXB0UG9saWN5OwogfQogCi12b2lkIFdlYkNvb2tp
ZU1hbmFnZXJQcm94eTo6Z2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShQQUw6OlNlc3Npb25JRCwg
RnVuY3Rpb248dm9pZCAoSFRUUENvb2tpZUFjY2VwdFBvbGljeSwgQ2FsbGJhY2tCYXNlOjpFcnJv
cik+JiYgY2FsbGJhY2tGdW5jdGlvbikKK3ZvaWQgV2ViQ29va2llTWFuYWdlclByb3h5OjpnZXRI
VFRQQ29va2llQWNjZXB0UG9saWN5KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgRnVuY3Rpb248
dm9pZCAoSFRUUENvb2tpZUFjY2VwdFBvbGljeSwgQ2FsbGJhY2tCYXNlOjpFcnJvcik+JiYgY2Fs
bGJhY2tGdW5jdGlvbikKIHsKICAgICBhdXRvIGNhbGxiYWNrSUQgPSBtX2NhbGxiYWNrcy5wdXQo
V1RGTW92ZShjYWxsYmFja0Z1bmN0aW9uKSwgcHJvY2Vzc1Bvb2woKS0+ZW5zdXJlTmV0d29ya1By
b2Nlc3MoKS50aHJvdHRsZXIoKS5iYWNrZ3JvdW5kQWN0aXZpdHlUb2tlbigpKTsKLSAgICBwcm9j
ZXNzUG9vbCgpLT5zZW5kVG9OZXR3b3JraW5nUHJvY2VzcyhNZXNzYWdlczo6V2ViQ29va2llTWFu
YWdlcjo6R2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShjYWxsYmFja0lEKSk7CisgICAgcHJvY2Vz
c1Bvb2woKS0+c2VuZFRvTmV0d29ya2luZ1Byb2Nlc3MoTWVzc2FnZXM6OldlYkNvb2tpZU1hbmFn
ZXI6OkdldEhUVFBDb29raWVBY2NlcHRQb2xpY3koc2Vzc2lvbklELCBjYWxsYmFja0lEKSk7CiB9
CiAKIHZvaWQgV2ViQ29va2llTWFuYWdlclByb3h5OjpkaWRHZXRIVFRQQ29va2llQWNjZXB0UG9s
aWN5KHVpbnQzMl90IHBvbGljeSwgV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJveHkuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eS5oCmluZGV4IGJl
NzgyZTc0ZTE3NmE5NzMwZDg3YjE2MDRjN2MxMjZkZWNjNTk2ZmUuLjJhMjRkN2ZlZTcyNmViN2Jl
NDViODA0NDY2NWJlYzFmODk1YjA1OTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYkNvb2tpZU1hbmFnZXJQcm94eS5oCkBAIC04MCw2ICs4MCw5IEBAIHB1YmxpYzoKICAgICB2
b2lkIHNldEhUVFBDb29raWVBY2NlcHRQb2xpY3koUEFMOjpTZXNzaW9uSUQsIEhUVFBDb29raWVB
Y2NlcHRQb2xpY3ksIEZ1bmN0aW9uPHZvaWQgKENhbGxiYWNrQmFzZTo6RXJyb3IpPiYmKTsKICAg
ICB2b2lkIGdldEhUVFBDb29raWVBY2NlcHRQb2xpY3koUEFMOjpTZXNzaW9uSUQsIEZ1bmN0aW9u
PHZvaWQgKEhUVFBDb29raWVBY2NlcHRQb2xpY3ksIENhbGxiYWNrQmFzZTo6RXJyb3IpPiYmKTsK
IAorICAgIC8vIEZvciB1c2Ugd2hlbiBpbml0aWFsaXppbmcgTmV0d29ya1Nlc3Npb25DcmVhdGlv
blBhcmFtZXRlcnMuCisgICAgSFRUUENvb2tpZUFjY2VwdFBvbGljeSBnZXRJbml0aWFsSFRUUENv
b2tpZUFjY2VwdFBvbGljeShQQUw6OlNlc3Npb25JRCk7CisKICAgICB2b2lkIHNldFN0b3JhZ2VB
Y2Nlc3NBUElFbmFibGVkKGJvb2wpOwogCiAgICAgdm9pZCBzdGFydE9ic2VydmluZ0Nvb2tpZUNo
YW5nZXMoUEFMOjpTZXNzaW9uSUQpOwpAQCAtMTI5LDEzICsxMzIsMTQgQEAgcHJpdmF0ZToKICAg
ICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYp
IG92ZXJyaWRlOwogCiAjaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgdm9pZCBwZXJzaXN0SFRUUENv
b2tpZUFjY2VwdFBvbGljeShIVFRQQ29va2llQWNjZXB0UG9saWN5KTsKKyAgICB2b2lkIHBlcnNp
c3RIVFRQQ29va2llQWNjZXB0UG9saWN5KFBBTDo6U2Vzc2lvbklELCBIVFRQQ29va2llQWNjZXB0
UG9saWN5KTsKICNlbmRpZgogCiAgICAgQ2FsbGJhY2tNYXAgbV9jYWxsYmFja3M7CiAKICAgICBI
YXNoTWFwPFBBTDo6U2Vzc2lvbklELCBXVEY6OkZ1bmN0aW9uPHZvaWQgKCk+PiBtX2xlZ2FjeUNv
b2tpZU9ic2VydmVyczsKICAgICBIYXNoTWFwPFBBTDo6U2Vzc2lvbklELCBIYXNoU2V0PE9ic2Vy
dmVyKj4+IG1fY29va2llT2JzZXJ2ZXJzOworICAgIEhhc2hNYXA8UEFMOjpTZXNzaW9uSUQsIEhU
VFBDb29raWVBY2NlcHRQb2xpY3k+IG1faW5pdGlhbEhUVFBDb29raWVBY2NlcHRQb2xpY2llczsK
IAogICAgIFdlYkNvb2tpZU1hbmFnZXJQcm94eUNsaWVudCBtX2NsaWVudDsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCmluZGV4IDdiZTAyZTYwYWE5ZTAzMzM5
MTg5NGZiOWFlOTk1YzQxM2M1MmMzNmMuLmQ0YWYxZWFiYWQ4MTI0MWE1MGYxYTdmYTg1MmJlN2Q3
YWEwZWQ2NWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
b29sLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAK
QEAgLTU1OSwxMiArNTU5LDE2IEBAIE5ldHdvcmtQcm9jZXNzUHJveHkmIFdlYlByb2Nlc3NQb29s
OjplbnN1cmVOZXR3b3JrUHJvY2VzcyhXZWJzaXRlRGF0YVN0b3JlKiB3aXRoCiAgICAgcGFyYW1l
dGVycy5zaG91bGREaXNhYmxlU2VydmljZVdvcmtlclByb2Nlc3NUZXJtaW5hdGlvbkRlbGF5ID0g
bV9zaG91bGREaXNhYmxlU2VydmljZVdvcmtlclByb2Nlc3NUZXJtaW5hdGlvbkRlbGF5OwogI2Vu
ZGlmCiAKKyAgICBhdXRvJiBkZWZhdWx0TmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzID0gcGFyYW1l
dGVycy5kZWZhdWx0RGF0YVN0b3JlUGFyYW1ldGVycy5uZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnM7
CisKKyAgICBkZWZhdWx0TmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzLmluaXRpYWxIVFRQQ29va2ll
QWNjZXB0UG9saWN5ID0gc3VwcGxlbWVudDxXZWJDb29raWVNYW5hZ2VyUHJveHk+KCktPmdldElu
aXRpYWxIVFRQQ29va2llQWNjZXB0UG9saWN5KGRlZmF1bHROZXR3b3JrU2Vzc2lvblBhcmFtZXRl
cnMuc2Vzc2lvbklEKTsKKwogICAgIGlmIChtX3dlYnNpdGVEYXRhU3RvcmUpCi0gICAgICAgIHBh
cmFtZXRlcnMuZGVmYXVsdERhdGFTdG9yZVBhcmFtZXRlcnMubmV0d29ya1Nlc3Npb25QYXJhbWV0
ZXJzLnJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnkgPSBtX3dlYnNpdGVEYXRhU3RvcmUt
PndlYnNpdGVEYXRhU3RvcmUoKS5yZXNvbHZlZFJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3Rv
cnkoKTsKLSAgICBpZiAocGFyYW1ldGVycy5kZWZhdWx0RGF0YVN0b3JlUGFyYW1ldGVycy5uZXR3
b3JrU2Vzc2lvblBhcmFtZXRlcnMucmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeS5pc0Vt
cHR5KCkpCi0gICAgICAgIHBhcmFtZXRlcnMuZGVmYXVsdERhdGFTdG9yZVBhcmFtZXRlcnMubmV0
d29ya1Nlc3Npb25QYXJhbWV0ZXJzLnJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnkgPSBB
UEk6OldlYnNpdGVEYXRhU3RvcmU6OmRlZmF1bHRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0
b3J5KCk7CisgICAgICAgIGRlZmF1bHROZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMucmVzb3VyY2VM
b2FkU3RhdGlzdGljc0RpcmVjdG9yeSA9IG1fd2Vic2l0ZURhdGFTdG9yZS0+d2Vic2l0ZURhdGFT
dG9yZSgpLnJlc29sdmVkUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSgpOworICAgIGlm
IChkZWZhdWx0TmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzLnJlc291cmNlTG9hZFN0YXRpc3RpY3NE
aXJlY3RvcnkuaXNFbXB0eSgpKQorICAgICAgICBkZWZhdWx0TmV0d29ya1Nlc3Npb25QYXJhbWV0
ZXJzLnJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnkgPSBBUEk6OldlYnNpdGVEYXRhU3Rv
cmU6OmRlZmF1bHRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5KCk7CiAKLSAgICBTYW5k
Ym94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JSZWFkV3JpdGVEaXJlY3RvcnkocGFyYW1ldGVy
cy5kZWZhdWx0RGF0YVN0b3JlUGFyYW1ldGVycy5uZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMucmVz
b3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSwgcGFyYW1ldGVycy5kZWZhdWx0RGF0YVN0b3Jl
UGFyYW1ldGVycy5uZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMucmVzb3VyY2VMb2FkU3RhdGlzdGlj
c0RpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSk7CisgICAgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRl
SGFuZGxlRm9yUmVhZFdyaXRlRGlyZWN0b3J5KGRlZmF1bHROZXR3b3JrU2Vzc2lvblBhcmFtZXRl
cnMucmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSwgZGVmYXVsdE5ldHdvcmtTZXNzaW9u
UGFyYW1ldGVycy5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxl
KTsKIAogICAgIGJvb2wgZW5hYmxlUmVzb3VyY2VMb2FkU3RhdGlzdGljcyA9IGZhbHNlOwogICAg
IGlmICh3aXRoV2Vic2l0ZURhdGFTdG9yZSkKQEAgLTU3Miw3ICs1NzYsNyBAQCBOZXR3b3JrUHJv
Y2Vzc1Byb3h5JiBXZWJQcm9jZXNzUG9vbDo6ZW5zdXJlTmV0d29ya1Byb2Nlc3MoV2Vic2l0ZURh
dGFTdG9yZSogd2l0aAogICAgIGVsc2UgaWYgKG1fd2Vic2l0ZURhdGFTdG9yZSkKICAgICAgICAg
ZW5hYmxlUmVzb3VyY2VMb2FkU3RhdGlzdGljcyA9IG1fd2Vic2l0ZURhdGFTdG9yZS0+cmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoKTsKIAotICAgIHBhcmFtZXRlcnMuZGVmYXVsdERhdGFT
dG9yZVBhcmFtZXRlcnMubmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzLmVuYWJsZVJlc291cmNlTG9h
ZFN0YXRpc3RpY3MgPSBlbmFibGVSZXNvdXJjZUxvYWRTdGF0aXN0aWNzOworICAgIGRlZmF1bHRO
ZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMuZW5hYmxlUmVzb3VyY2VMb2FkU3RhdGlzdGljcyA9IGVu
YWJsZVJlc291cmNlTG9hZFN0YXRpc3RpY3M7CiAKICAgICAvLyBBZGQgYW55IHBsYXRmb3JtIHNw
ZWNpZmljIHBhcmFtZXRlcnMKICAgICBwbGF0Zm9ybUluaXRpYWxpemVOZXR3b3JrUHJvY2Vzcyhw
YXJhbWV0ZXJzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQb29sLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCmluZGV4
IDM0ZjM3YTEzMzkxNDQxZjk2MDA2MzdiY2M4NjIwMzFkOGZmNGE1NWYuLjJmZDM1YTkxYWUwNjdk
OWFiMDBlNjk2NTQ0MTg1ZGZlMDgzYjMwMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Bvb2wuaApAQCAtMjU5LDcgKzI1OSw2IEBAIHB1YmxpYzoKICAgICB2b2lkIHN0b3BN
ZW1vcnlTYW1wbGVyKCk7CiAKICNpZiBVU0UoU09VUCkKLSAgICB2b2lkIHNldEluaXRpYWxIVFRQ
Q29va2llQWNjZXB0UG9saWN5KEhUVFBDb29raWVBY2NlcHRQb2xpY3kgcG9saWN5KSB7IG1faW5p
dGlhbEhUVFBDb29raWVBY2NlcHRQb2xpY3kgPSBwb2xpY3k7IH0KICAgICB2b2lkIHNldE5ldHdv
cmtQcm94eVNldHRpbmdzKGNvbnN0IFdlYkNvcmU6OlNvdXBOZXR3b3JrUHJveHlTZXR0aW5ncyYp
OwogI2VuZGlmCiAgICAgdm9pZCBzZXRFbmhhbmNlZEFjY2Vzc2liaWxpdHkoYm9vbCk7CkBAIC02
NDEsMTAgKzY0MCw2IEBAIHByaXZhdGU6CiAgICAgdHlwZWRlZiBIYXNoTWFwPGNvbnN0IGNoYXIq
LCBSZWZQdHI8V2ViQ29udGV4dFN1cHBsZW1lbnQ+LCBQdHJIYXNoPGNvbnN0IGNoYXIqPj4gV2Vi
Q29udGV4dFN1cHBsZW1lbnRNYXA7CiAgICAgV2ViQ29udGV4dFN1cHBsZW1lbnRNYXAgbV9zdXBw
bGVtZW50czsKIAotI2lmIFVTRShTT1VQKQotICAgIEhUVFBDb29raWVBY2NlcHRQb2xpY3kgbV9p
bml0aWFsSFRUUENvb2tpZUFjY2VwdFBvbGljeSB7IEhUVFBDb29raWVBY2NlcHRQb2xpY3lPbmx5
RnJvbU1haW5Eb2N1bWVudERvbWFpbiB9OwotICAgIFdlYkNvcmU6OlNvdXBOZXR3b3JrUHJveHlT
ZXR0aW5ncyBtX25ldHdvcmtQcm94eVNldHRpbmdzOwotI2VuZGlmCiAgICAgSGFzaFNldDxTdHJp
bmcsIEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4gbV91cmxTY2hlbWVzUmVnaXN0ZXJlZEZvckN1
c3RvbVByb3RvY29sczsKIAogI2lmIFBMQVRGT1JNKE1BQykKQEAgLTY3Niw2ICs2NzEsNyBAQCBw
cml2YXRlOgogICAgIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxTdGF0aXN0aWNzUmVxdWVzdD4+
IG1fc3RhdGlzdGljc1JlcXVlc3RzOwogCiAjaWYgVVNFKFNPVVApCisgICAgV2ViQ29yZTo6U291
cE5ldHdvcmtQcm94eVNldHRpbmdzIG1fbmV0d29ya1Byb3h5U2V0dGluZ3M7CiAgICAgYm9vbCBt
X2lnbm9yZVRMU0Vycm9ycyB7IHRydWUgfTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9Db2NvYS9XZWJzaXRlRGF0YVN0b3JlQ29jb2Eu
bW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9Db2NvYS9XZWJzaXRlRGF0
YVN0b3JlQ29jb2EubW0KaW5kZXggZmNiODlhYTg5YWFiOGIyNGNkNDZkMmY3MTM5ZGNlZjcxMzQ2
NmM2Ni4uM2Q4ZDc4NzI2MTBhNTRjNTRiZmQ3ZTExMzBlMDkyYTg4ZWVhZDI0ZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvQ29jb2EvV2Vic2l0ZURhdGFT
dG9yZUNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL0Nv
Y29hL1dlYnNpdGVEYXRhU3RvcmVDb2NvYS5tbQpAQCAtMjgsNiArMjgsNyBAQAogCiAjaW1wb3J0
ICJDb29raWVTdG9yYWdlVXRpbHNDRi5oIgogI2ltcG9ydCAiU3RvcmFnZU1hbmFnZXIuaCIKKyNp
bXBvcnQgIldlYkNvb2tpZU1hbmFnZXJQcm94eS5oIgogI2ltcG9ydCAiV2ViUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc1N0b3JlLmgiCiAjaW1wb3J0ICJXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycy5o
IgogI2ltcG9ydCA8V2ViQ29yZS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuaD4KQEAgLTEwMCwx
MSArMTAxLDE1IEBAIFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzIFdlYnNpdGVEYXRhU3RvcmU6
OnBhcmFtZXRlcnMoKQogICAgICAgICBTZWNvbmRzIHsgW2RlZmF1bHRzIGludGVnZXJGb3JLZXk6
V2ViS2l0TmV0d29ya0xvYWRUaHJvdHRsZUxhdGVuY3lNaWxsaXNlY29uZHNEZWZhdWx0c0tleV0g
LyAxMDAwLiB9LAogICAgICAgICBXVEZNb3ZlKGh0dHBQcm94eSksCiAgICAgICAgIFdURk1vdmUo
aHR0cHNQcm94eSksCisgICAgICAgIGRlZmF1bHRIVFRQQ29va2llQWNjZXB0UG9saWN5LAogICAg
ICAgICBXVEZNb3ZlKHJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnkpLAogICAgICAgICBX
VEZNb3ZlKHJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnlIYW5kbGUpLAogICAgICAgICBm
YWxzZQogICAgIH07CiAKKyAgICBpZiAoYXV0byogcHJvY2Vzc1Bvb2wgPSBwcm9jZXNzUG9vbEZv
ckNvb2tpZVN0b3JhZ2VPcGVyYXRpb25zKCkpCisgICAgICAgIHBhcmFtZXRlcnMubmV0d29ya1Nl
c3Npb25QYXJhbWV0ZXJzLmluaXRpYWxIVFRQQ29va2llQWNjZXB0UG9saWN5ID0gcHJvY2Vzc1Bv
b2wtPnN1cHBsZW1lbnQ8V2ViQ29va2llTWFuYWdlclByb3h5PigpLT5nZXRJbml0aWFsSFRUUENv
b2tpZUFjY2VwdFBvbGljeShwYXJhbWV0ZXJzLm5ldHdvcmtTZXNzaW9uUGFyYW1ldGVycy5zZXNz
aW9uSUQpOworCiAgICAgYXV0byBjb29raWVGaWxlID0gcmVzb2x2ZWRDb29raWVTdG9yYWdlRmls
ZSgpOwogCiAgICAgaWYgKG1fdWlQcm9jZXNzQ29va2llU3RvcmFnZUlkZW50aWZpZXIuaXNFbXB0
eSgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9X
ZWJzaXRlRGF0YVN0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRh
L1dlYnNpdGVEYXRhU3RvcmUuY3BwCmluZGV4IDkyOTJkMzUzMzllODA2YzZjZDU0MTI3MmViNGE5
MTBkZWQ4ZGU3Y2UuLmIwZWY4ZmIyMjU2ZjY3ZmUwZjI3NjZlNjBkZDc5MWIxYmRjODcxNzAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRh
U3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNp
dGVEYXRhU3RvcmUuY3BwCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSAiU2hvdWxkR3JhbmRm
YXRoZXJTdGF0aXN0aWNzLmgiCiAjaW5jbHVkZSAiU3RvcmFnZUFjY2Vzc1N0YXR1cy5oIgogI2lu
Y2x1ZGUgIlN0b3JhZ2VNYW5hZ2VyLmgiCisjaW5jbHVkZSAiV2ViQ29va2llTWFuYWdlclByb3h5
LmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc0NhY2hlLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc01l
c3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Bvb2wuaCIKQEAgLTIwNDEsNiArMjA0Miw5
IEBAIFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzIFdlYnNpdGVEYXRhU3RvcmU6OnBhcmFtZXRl
cnMoKQogICAgIFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzIHBhcmFtZXRlcnM7CiAgICAgcGFy
YW1ldGVycy5uZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMuc2Vzc2lvbklEID0gbV9zZXNzaW9uSUQ7
CiAKKyAgICBpZiAoYXV0byogcHJvY2Vzc1Bvb2wgPSBwcm9jZXNzUG9vbEZvckNvb2tpZVN0b3Jh
Z2VPcGVyYXRpb25zKCkpCisgICAgICAgIHBhcmFtZXRlcnMubmV0d29ya1Nlc3Npb25QYXJhbWV0
ZXJzLmluaXRpYWxIVFRQQ29va2llQWNjZXB0UG9saWN5ID0gcHJvY2Vzc1Bvb2wtPnN1cHBsZW1l
bnQ8V2ViQ29va2llTWFuYWdlclByb3h5PigpLT5nZXRJbml0aWFsSFRUUENvb2tpZUFjY2VwdFBv
bGljeShwYXJhbWV0ZXJzLm5ldHdvcmtTZXNzaW9uUGFyYW1ldGVycy5zZXNzaW9uSUQpOworCiAg
ICAgcmVzb2x2ZURpcmVjdG9yaWVzSWZOZWNlc3NhcnkoKTsKIAogI2lmIEVOQUJMRShJTkRFWEVE
X0RBVEFCQVNFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYkNv
b2tpZU1hbmFnZXJQcm94eU1hYy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJD
b29raWVNYW5hZ2VyUHJveHlNYWMubW0KaW5kZXggZWVkOTdhYmVkNjAzYTNkY2JlMTFiNzk3MmY0
NzEwMWI5Yjk0ZTcyOC4uZWY4NDQ5MjAwMTc3MTA2MWY3ODI3OTg0ZTVkMzdiMjNlOTA3YjgxOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYkNvb2tpZU1hbmFnZXJQ
cm94eU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViQ29va2llTWFu
YWdlclByb3h5TWFjLm1tCkBAIC0zMSw3ICszMSw3IEBACiAKIG5hbWVzcGFjZSBXZWJLaXQgewog
Ci12b2lkIFdlYkNvb2tpZU1hbmFnZXJQcm94eTo6cGVyc2lzdEhUVFBDb29raWVBY2NlcHRQb2xp
Y3koSFRUUENvb2tpZUFjY2VwdFBvbGljeSBwb2xpY3kpCit2b2lkIFdlYkNvb2tpZU1hbmFnZXJQ
cm94eTo6cGVyc2lzdEhUVFBDb29raWVBY2NlcHRQb2xpY3koUEFMOjpTZXNzaW9uSUQsIEhUVFBD
b29raWVBY2NlcHRQb2xpY3kgcG9saWN5KQogewogICAgIEFTU0VSVChoYXNQcm9jZXNzUHJpdmls
ZWdlKFByb2Nlc3NQcml2aWxlZ2U6OkNhbkFjY2Vzc1Jhd0Nvb2tpZXMpKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mvc291cC9XZWJQcm9jZXNzUG9vbFNvdXAuY3BwIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3Mvc291cC9XZWJQcm9jZXNzUG9vbFNvdXAuY3BwCmluZGV4
IGI0NDJmNjcwMjUyM2U2MDE3NmVlYzk0YjdjNWZhMzhiMWJlYzdiMDkuLjMzMjJjZDNmOGQ4ZTI5
YmFhNjdiYTVhOGIyNjhiNmE0ZmIxYjk4ODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL3NvdXAvV2ViUHJvY2Vzc1Bvb2xTb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9zb3VwL1dlYlByb2Nlc3NQb29sU291cC5jcHAKQEAgLTM4LDEwICszOCw5IEBAIG5h
bWVzcGFjZSBXZWJLaXQgewogCiB2b2lkIFdlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxp
emVOZXR3b3JrUHJvY2VzcyhOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1l
dGVycykKIHsKLSAgICBOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycyYgZGVmYXVsdFNl
c3Npb25QYXJhbWV0ZXJzID0gcGFyYW1ldGVycy5kZWZhdWx0RGF0YVN0b3JlUGFyYW1ldGVycy5u
ZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnM7Ci0gICAgc3VwcGxlbWVudDxXZWJDb29raWVNYW5hZ2Vy
UHJveHk+KCktPmdldENvb2tpZVBlcnNpc3RlbnRTdG9yYWdlKGRlZmF1bHRTZXNzaW9uUGFyYW1l
dGVycy5zZXNzaW9uSUQsIGRlZmF1bHRTZXNzaW9uUGFyYW1ldGVycy5jb29raWVQZXJzaXN0ZW50
U3RvcmFnZVBhdGgsIGRlZmF1bHRTZXNzaW9uUGFyYW1ldGVycy5jb29raWVQZXJzaXN0ZW50U3Rv
cmFnZVR5cGUpOworICAgIE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzJiBkZWZhdWx0
TmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzID0gcGFyYW1ldGVycy5kZWZhdWx0RGF0YVN0b3JlUGFy
YW1ldGVycy5uZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnM7CisgICAgc3VwcGxlbWVudDxXZWJDb29r
aWVNYW5hZ2VyUHJveHk+KCktPmdldENvb2tpZVBlcnNpc3RlbnRTdG9yYWdlKGRlZmF1bHROZXR3
b3JrU2Vzc2lvblBhcmFtZXRlcnMuc2Vzc2lvbklELCBkZWZhdWx0TmV0d29ya1Nlc3Npb25QYXJh
bWV0ZXJzLmNvb2tpZVBlcnNpc3RlbnRTdG9yYWdlUGF0aCwgZGVmYXVsdE5ldHdvcmtTZXNzaW9u
UGFyYW1ldGVycy5jb29raWVQZXJzaXN0ZW50U3RvcmFnZVR5cGUpOwogCi0gICAgcGFyYW1ldGVy
cy5jb29raWVBY2NlcHRQb2xpY3kgPSBtX2luaXRpYWxIVFRQQ29va2llQWNjZXB0UG9saWN5Owog
ICAgIHBhcmFtZXRlcnMuaWdub3JlVExTRXJyb3JzID0gbV9pZ25vcmVUTFNFcnJvcnM7CiAgICAg
cGFyYW1ldGVycy5sYW5ndWFnZXMgPSB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzKCk7CiAgICAgcGFy
YW1ldGVycy5zaG91bGRFbmFibGVOZXR3b3JrQ2FjaGVFZmZpY2FjeUxvZ2dpbmcgPSBmYWxzZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9Jbmpl
Y3RlZEJ1bmRsZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
SW5qZWN0ZWRCdW5kbGUuY3BwCmluZGV4IDllZWNiZTI4OTU5ZmJmODBiNWYwZGNmN2EwNjVkMDg5
NDJhOGU5ZDMuLjhiODc1OThmOGNkMTRiZjE2NGVhMzNiNjQ3ODVkMWZlNzBmMDU0MTMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1
bmRsZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0lu
amVjdGVkQnVuZGxlLmNwcApAQCAtMzEsNyArMzEsNiBAQAogI2luY2x1ZGUgIkluamVjdGVkQnVu
ZGxlU2NyaXB0V29ybGQuaCIKICNpbmNsdWRlICJOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
c01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmgiCi0jaW5j
bHVkZSAiTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMuaCIKICNpbmNsdWRlICJOb3Rp
ZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaCIKICNpbmNsdWRlICJVc2VyRGF0YS5o
IgogI2luY2x1ZGUgIldlYkNvbm5lY3Rpb25Ub1VJUHJvY2Vzcy5oIgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>363178</attachid>
            <date>2019-02-27 18:40:50 -0800</date>
            <delta_ts>2019-03-20 12:14:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-195140-20190227204049.patch</filename>
            <type>text/plain</type>
            <size>40875</size>
            <attacher name="Michael Catanzaro">mcatanzaro</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQyMTg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDBmY2RmMWYyNzcwYjcwOWNi
M2JiMjQ1ZmUxZjRmZDhiNDViMmFkOTAuLjFiODAwOWNlNzVhNjEyMWVlMmUyZWQ1MGE0Nzc2YWMz
NDJlMGZhNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzggQEAKKzIwMTktMDItMjcgIE1pY2hhZWwg
Q2F0YW56YXJvICA8bWNhdGFuemFyb0BpZ2FsaWEuY29tPgorCisgICAgICAgIE1vdmUgaW5pdGlh
bEhUVFBBY2NlcHRQb2xpY3kgdG8gTmV0d29ya1Nlc3Npb24KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NTE0MAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgaXMgcGFydCB0d28gaW4gcmVtb3Zpbmcg
bGlic291cC1zcGVjaWZpYyBtZW1iZXJzIGZyb20gTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnMuCisgICAgICAgIEhlcmUgSSBtb3ZlIGluaXRpYWxIVFRQQWNjZXB0UG9saWN5IGZyb20g
TmV0d29ya1Byb2Nlc3MgdG8gTmV0d29ya1Nlc3Npb24uIFRoZXJlIHdlcmUgYSBmZXcKKyAgICAg
ICAgZGlmZmVyZW50IHdheXMgdG8gZG8gdGhpcy4gSSBkZWNpZGVkIHRvIG1ha2UgdGhpcyB2YXJp
YWJsZSBjcm9zcy1wbGF0Zm9ybSwgYmVjYXVzZSBJIHRoaW5rCisgICAgICAgIHNldHRpbmcgdGhl
IGNvb2tpZSBhY2NlcHQgcG9saWN5IGJlZm9yZSB0aGUgZmlyc3Qgd2ViIHByb2Nlc3MgaXMgY3Jl
YXRlZCBpcyBicm9rZW4gb24KKyAgICAgICAgbm9uLWxpYnNvdXAgcG9ydHMgd2l0aG91dCB0aGlz
LiBUaGVuLCBhY2NlcHQgcG9saWN5IHdhcyBhbHJlYWR5IHRpZWQgdG8gU2Vzc2lvbklEIGluIHRo
ZSBVSQorICAgICAgICBwcm9jZXNzLCBidXQgaW4gdGhlIG5ldHdvcmsgcHJvY2VzcyBpdCB3YXMg
Z2xvYmFsLiBJIHdhcyBvbmx5IGFibGUgdG8gY29tcGxldGVseSBjaGFuZ2UgdGhpcworICAgICAg
ICBmb3Igbm9uLUNvY29hIHBvcnRzLCBiZWNhdXNlIENvY29hIGhhcyB0aGUgc2hhcmVkSFRUUENv
b2tpZVN0b3JhZ2UuIFNvIGl0J3Mgc3RpbGwgZ2xvYmFsLAorICAgICAgICBidXQgbm93IG9ubHkg
YSBjb3VwbGUgQ29jb2Etc3BlY2lmaWMgcGxhY2VzIGtub3cgdGhpcywgYW5kIGV2ZXJ5d2hlcmUg
ZWxzZSB1c2VzIFNlc3Npb25JRC4KKworICAgICAgICBJIGFsc28gY2hhbmdlIGxpYnNvdXAgZnJv
bSB1c2luZyBIVFRQQ29va2llQWNjZXB0UG9saWN5T25seUZyb21NYWluRG9jdW1lbnREb21haW4g
dG8gdXNpbmcKKyAgICAgICAgSFRUUENvb2tpZUFjY2VwdFBvbGljeUV4Y2x1c2l2ZWx5RnJvbU1h
aW5Eb2N1bWVudERvbWFpbiwgZm9yIGdvb2QgbWVhc3VyZS4KKworICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YkNvb2tpZU1hbmFnZXI6OnNldEhUVFBDb29raWVBY2NlcHRQb2xpY3kpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJDb29raWVNYW5hZ2VyOjpnZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KToKKyAgICAg
ICAgKiBOZXR3b3JrUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIuaDoKKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIubWVzc2FnZXMuaW46Cisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3MvQ29va2llcy9jdXJsL1dlYkNvb2tpZU1hbmFnZXJDdXJs
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ29va2llTWFuYWdlcjo6cGxhdGZvcm1TZXRIVFRQ
Q29va2llQWNjZXB0UG9saWN5KToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29va2llTWFuYWdlcjo6
cGxhdGZvcm1HZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KToKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9Db29raWVzL21hYy9XZWJDb29raWVNYW5hZ2VyTWFjLm1tOgorICAgICAgICAoV2ViS2l0
OjpXZWJDb29raWVNYW5hZ2VyOjpwbGF0Zm9ybVNldEhUVFBDb29raWVBY2NlcHRQb2xpY3kpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJDb29raWVNYW5hZ2VyOjpwbGF0Zm9ybUdldEhUVFBDb29raWVB
Y2NlcHRQb2xpY3kpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0Nvb2tpZXMvc291cC9XZWJD
b29raWVNYW5hZ2VyU291cC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNvb2tpZU1hbmFnZXI6
OnBsYXRmb3JtU2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YkNvb2tpZU1hbmFnZXI6OnBsYXRmb3JtR2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeSk6CisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5j
b2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnM6OmRlY29kZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnMuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vz
c2lvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uOjpOZXR3b3JrU2Vzc2lv
bik6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uaDoKKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycy5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzOjpwcml2YXRl
U2Vzc2lvblBhcmFtZXRlcnMpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU2Vzc2lvbkNyZWF0
aW9uUGFyYW1ldGVyczo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nl
c3Npb25DcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMuaDoKKyAgICAgICAgKiBOZXR3b3Jr
UHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpO
ZXR3b3JrU2Vzc2lvbkNvY29hOjpOZXR3b3JrU2Vzc2lvbkNvY29hKToKKyAgICAgICAgKiBOZXR3
b3JrUHJvY2Vzcy9jdXJsL05ldHdvcmtTZXNzaW9uQ3VybC5jcHA6CisgICAgICAgIChXZWJLaXQ6
Ok5ldHdvcmtTZXNzaW9uQ3VybDo6TmV0d29ya1Nlc3Npb25DdXJsKToKKyAgICAgICAgKiBOZXR3
b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtQcm9jZXNzU291cC5jcHA6CisgICAgICAgIChXZWJLaXQ6
Ok5ldHdvcmtQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVOZXR3b3JrUHJvY2Vzcyk6CisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrU2Vzc2lvblNvdXAuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpOZXR3b3JrU2Vzc2lvblNvdXA6Ok5ldHdvcmtTZXNzaW9uU291cCk6CisgICAg
ICAgICogU2hhcmVkL0hUVFBDb29raWVBY2NlcHRQb2xpY3kuaDoKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL2dsaWIvV2ViS2l0Q29va2llTWFuYWdlci5jcHA6CisgICAgICAgICh0b1dlYktpdENv
b2tpZUFjY2VwdFBvbGljeSk6CisgICAgICAgICh0b0hUVFBDb29raWVBY2NlcHRQb2xpY3kpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJveHkuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJDb29raWVNYW5hZ2VyUHJveHk6OnNldEhUVFBDb29raWVBY2NlcHRQb2xpY3kp
OgorICAgICAgICAoV2ViS2l0OjpXZWJDb29raWVNYW5hZ2VyUHJveHk6OmdldEluaXRpYWxIVFRQ
Q29va2llQWNjZXB0UG9saWN5KToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29va2llTWFuYWdlclBy
b3h5OjpnZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
Q29va2llTWFuYWdlclByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29s
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OmVuc3VyZU5ldHdvcmtQcm9j
ZXNzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2Vic2l0ZURhdGEvQ29jb2EvV2Vic2l0ZURhdGFTdG9yZUNvY29hLm1tOgorICAg
ICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlOjpwYXJhbWV0ZXJzKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYnNpdGVEYXRhU3RvcmU6OnBhcmFtZXRlcnMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9t
YWMvV2ViQ29va2llTWFuYWdlclByb3h5TWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJDb29r
aWVNYW5hZ2VyUHJveHk6OnBlcnNpc3RIVFRQQ29va2llQWNjZXB0UG9saWN5KToKKyAgICAgICAg
KiBVSVByb2Nlc3Mvc291cC9XZWJQcm9jZXNzUG9vbFNvdXAuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplTmV0d29ya1Byb2Nlc3MpOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwOgorCiAy
MDE5LTAyLTI3ICBNaWNoYWVsIENhdGFuemFybyAgPG1jYXRhbnphcm9AaWdhbGlhLmNvbT4KIAog
ICAgICAgICBVbnJldmlld2VkLCBmaXggLVdmb3JtYXQgd2FybmluZwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIuY3BwIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIuY3Bw
CmluZGV4IGJmNjMxYTA0NTk1ZmRkN2FkNzk4ZDIwZjE2ZmE5ZWQyODY3OWFkZjAuLmZkZjlkYjUx
OTk1MGFlZmQzYTg1ODQxMGJmNDljMzlkNGFkOTRhN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvQ29va2llcy9XZWJDb29raWVNYW5hZ2VyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlci5jcHAKQEAg
LTE0OSwxNyArMTQ5LDE3IEBAIHZvaWQgV2ViQ29va2llTWFuYWdlcjo6c3RvcE9ic2VydmluZ0Nv
b2tpZUNoYW5nZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogICAgICAgICBXZWJDb3JlOjpz
dG9wT2JzZXJ2aW5nQ29va2llQ2hhbmdlcygqc3RvcmFnZVNlc3Npb24pOwogfQogCi12b2lkIFdl
YkNvb2tpZU1hbmFnZXI6OnNldEhUVFBDb29raWVBY2NlcHRQb2xpY3koSFRUUENvb2tpZUFjY2Vw
dFBvbGljeSBwb2xpY3ksIE9wdGlvbmFsQ2FsbGJhY2tJRCBjYWxsYmFja0lEKQordm9pZCBXZWJD
b29raWVNYW5hZ2VyOjpzZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCwgSFRUUENvb2tpZUFjY2VwdFBvbGljeSBwb2xpY3ksIE9wdGlvbmFsQ2FsbGJhY2tJ
RCBjYWxsYmFja0lEKQogewotICAgIHBsYXRmb3JtU2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShw
b2xpY3kpOworICAgIHBsYXRmb3JtU2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShzZXNzaW9uSUQs
IHBvbGljeSk7CiAKICAgICBpZiAoY2FsbGJhY2tJRCkKICAgICAgICAgbV9wcm9jZXNzLnNlbmQo
TWVzc2FnZXM6OldlYkNvb2tpZU1hbmFnZXJQcm94eTo6RGlkU2V0SFRUUENvb2tpZUFjY2VwdFBv
bGljeShjYWxsYmFja0lELmNhbGxiYWNrSUQoKSksIDApOwogfQogCi12b2lkIFdlYkNvb2tpZU1h
bmFnZXI6OmdldEhUVFBDb29raWVBY2NlcHRQb2xpY3koQ2FsbGJhY2tJRCBjYWxsYmFja0lEKQor
dm9pZCBXZWJDb29raWVNYW5hZ2VyOjpnZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KFBBTDo6U2Vz
c2lvbklEIHNlc3Npb25JRCwgQ2FsbGJhY2tJRCBjYWxsYmFja0lEKQogewotICAgIG1fcHJvY2Vz
cy5zZW5kKE1lc3NhZ2VzOjpXZWJDb29raWVNYW5hZ2VyUHJveHk6OkRpZEdldEhUVFBDb29raWVB
Y2NlcHRQb2xpY3kocGxhdGZvcm1HZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KCksIGNhbGxiYWNr
SUQpLCAwKTsKKyAgICBtX3Byb2Nlc3Muc2VuZChNZXNzYWdlczo6V2ViQ29va2llTWFuYWdlclBy
b3h5OjpEaWRHZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KHBsYXRmb3JtR2V0SFRUUENvb2tpZUFj
Y2VwdFBvbGljeShzZXNzaW9uSUQpLCBjYWxsYmFja0lEKSwgMCk7CiB9CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Db29r
aWVzL1dlYkNvb2tpZU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ29v
a2llcy9XZWJDb29raWVNYW5hZ2VyLmgKaW5kZXggM2M0ODA5NTZlNmI3NTJjMmE5YWQ4MGI2ODI2
MTFjMTY0N2ZlM2U3ZC4uZjc2NGNjYWEwMmJiNDYzNzAyYjM5NTAwMDFiZDRhZjRjYTU4NWVmZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tp
ZU1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Nvb2tpZXMvV2Vi
Q29va2llTWFuYWdlci5oCkBAIC01NSw3ICs1NSw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBj
b25zdCBjaGFyKiBzdXBwbGVtZW50TmFtZSgpOwogCi0gICAgdm9pZCBzZXRIVFRQQ29va2llQWNj
ZXB0UG9saWN5KEhUVFBDb29raWVBY2NlcHRQb2xpY3ksIE9wdGlvbmFsQ2FsbGJhY2tJRCk7Cisg
ICAgdm9pZCBzZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KFBBTDo6U2Vzc2lvbklELCBIVFRQQ29v
a2llQWNjZXB0UG9saWN5LCBPcHRpb25hbENhbGxiYWNrSUQpOwogCiAjaWYgVVNFKFNPVVApCiAg
ICAgdm9pZCBzZXRDb29raWVQZXJzaXN0ZW50U3RvcmFnZShQQUw6OlNlc3Npb25JRCwgY29uc3Qg
U3RyaW5nJiBzdG9yYWdlUGF0aCwgU291cENvb2tpZVBlcnNpc3RlbnRTdG9yYWdlVHlwZSk7CkBA
IC03OSw5ICs3OSw5IEBAIHByaXZhdGU6CiAgICAgdm9pZCBnZXRBbGxDb29raWVzKFBBTDo6U2Vz
c2lvbklELCBDYWxsYmFja0lEKTsKICAgICB2b2lkIGdldENvb2tpZXMoUEFMOjpTZXNzaW9uSUQs
IGNvbnN0IFVSTCYsIENhbGxiYWNrSUQpOwogCi0gICAgdm9pZCBwbGF0Zm9ybVNldEhUVFBDb29r
aWVBY2NlcHRQb2xpY3koSFRUUENvb2tpZUFjY2VwdFBvbGljeSk7Ci0gICAgdm9pZCBnZXRIVFRQ
Q29va2llQWNjZXB0UG9saWN5KENhbGxiYWNrSUQpOwotICAgIEhUVFBDb29raWVBY2NlcHRQb2xp
Y3kgcGxhdGZvcm1HZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KCk7CisgICAgdm9pZCBwbGF0Zm9y
bVNldEhUVFBDb29raWVBY2NlcHRQb2xpY3koUEFMOjpTZXNzaW9uSUQsIEhUVFBDb29raWVBY2Nl
cHRQb2xpY3kpOworICAgIHZvaWQgZ2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShQQUw6OlNlc3Np
b25JRCwgQ2FsbGJhY2tJRCk7CisgICAgSFRUUENvb2tpZUFjY2VwdFBvbGljeSBwbGF0Zm9ybUdl
dEhUVFBDb29raWVBY2NlcHRQb2xpY3koUEFMOjpTZXNzaW9uSUQpOwogCiAgICAgdm9pZCBzdGFy
dE9ic2VydmluZ0Nvb2tpZUNoYW5nZXMoUEFMOjpTZXNzaW9uSUQpOwogICAgIHZvaWQgc3RvcE9i
c2VydmluZ0Nvb2tpZUNoYW5nZXMoUEFMOjpTZXNzaW9uSUQpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIubWVzc2FnZXMu
aW4gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdl
ci5tZXNzYWdlcy5pbgppbmRleCA5NDQwNTZjZmQ0NDM1ZjU1MWFjY2E4YTZkOTFlZjg1MjkyNDE0
MTM4Li45M2YyMGIxMTY2YjUwODlmYWJlYTRkNzA1YjQyNzMyZDE0ZGYwZjViIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlci5t
ZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Nvb2tpZXMvV2Vi
Q29va2llTWFuYWdlci5tZXNzYWdlcy5pbgpAQCAtMzUsOCArMzUsOCBAQAogICAgIHZvaWQgRGVs
ZXRlQ29va2llKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgc3RydWN0IFdlYkNvcmU6OkNvb2tp
ZSBjb29raWUsIFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQogICAgIHZvaWQgRGVsZXRl
QWxsQ29va2llc01vZGlmaWVkU2luY2UoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXYWxsVGlt
ZSB0aW1lLCBXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKIAotICAgIHZvaWQgU2V0SFRU
UENvb2tpZUFjY2VwdFBvbGljeSh1aW50MzJfdCBwb2xpY3ksIFdlYktpdDo6T3B0aW9uYWxDYWxs
YmFja0lEIGNhbGxiYWNrSUQpCi0gICAgdm9pZCBHZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KFdl
YktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQorICAgIHZvaWQgU2V0SFRUUENvb2tpZUFjY2Vw
dFBvbGljeShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIHVpbnQzMl90IHBvbGljeSwgV2ViS2l0
OjpPcHRpb25hbENhbGxiYWNrSUQgY2FsbGJhY2tJRCkKKyAgICB2b2lkIEdldEhUVFBDb29raWVB
Y2NlcHRQb2xpY3koUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJLaXQ6OkNhbGxiYWNrSUQg
Y2FsbGJhY2tJRCkKICAgICAKICAgICB2b2lkIFN0YXJ0T2JzZXJ2aW5nQ29va2llQ2hhbmdlcyhQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiAgICAgdm9pZCBTdG9wT2JzZXJ2aW5nQ29va2llQ2hh
bmdlcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL0Nvb2tpZXMvY3VybC9XZWJDb29raWVNYW5hZ2VyQ3VybC5jcHAgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Nvb2tpZXMvY3VybC9XZWJDb29raWVNYW5hZ2Vy
Q3VybC5jcHAKaW5kZXggZWI2YmZmMWZjYWUwMmJjNTBkYTdiZTVhNGJjMDkxY2Y2N2RjOWIyNy4u
NmZlZjBkZGU2YWI5OGJiNzJlZGNhNWYyNTA0NzM3MTkyNmFjMGM4NCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Db29raWVzL2N1cmwvV2ViQ29va2llTWFuYWdlckN1
cmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ29va2llcy9jdXJsL1dl
YkNvb2tpZU1hbmFnZXJDdXJsLmNwcApAQCAtMzAsMTMgKzMwLDEzIEBAIG5hbWVzcGFjZSBXZWJL
aXQgewogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAotdm9pZCBXZWJDb29raWVNYW5hZ2Vy
OjpwbGF0Zm9ybVNldEhUVFBDb29raWVBY2NlcHRQb2xpY3koSFRUUENvb2tpZUFjY2VwdFBvbGlj
eSkKK3ZvaWQgV2ViQ29va2llTWFuYWdlcjo6cGxhdGZvcm1TZXRIVFRQQ29va2llQWNjZXB0UG9s
aWN5KFBBTDo6U2Vzc2lvbklELCBIVFRQQ29va2llQWNjZXB0UG9saWN5KQogewogfQogCi1IVFRQ
Q29va2llQWNjZXB0UG9saWN5IFdlYkNvb2tpZU1hbmFnZXI6OnBsYXRmb3JtR2V0SFRUUENvb2tp
ZUFjY2VwdFBvbGljeSgpCitIVFRQQ29va2llQWNjZXB0UG9saWN5IFdlYkNvb2tpZU1hbmFnZXI6
OnBsYXRmb3JtR2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShQQUw6OlNlc3Npb25JRCkKIHsKLSAg
ICByZXR1cm4gSFRUUENvb2tpZUFjY2VwdFBvbGljeU9ubHlGcm9tTWFpbkRvY3VtZW50RG9tYWlu
OworICAgIHJldHVybiBkZWZhdWx0SFRUUENvb2tpZUFjY2VwdFBvbGljeTsKIH0KIAogfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L0Nvb2tpZXMvbWFjL1dlYkNvb2tpZU1hbmFnZXJNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL0Nvb2tpZXMvbWFjL1dlYkNvb2tpZU1hbmFnZXJNYWMubW0KaW5kZXggNzE0OGU3
MWEwZWJhMDFiYzliY2I4ZjZkNDJkOGM5M2Y2OTcxNGUwNi4uYWRiMDNmYzBhMTQyZDExODAyYzZk
NzYxMDI2N2NiZWE1YzU3OWI2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9Db29raWVzL21hYy9XZWJDb29raWVNYW5hZ2VyTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvQ29va2llcy9tYWMvV2ViQ29va2llTWFuYWdlck1hYy5tbQpAQCAt
MzUsMTkgKzM1LDIxIEBACiBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOwogCi12b2lkIFdlYkNvb2tpZU1hbmFnZXI6OnBsYXRmb3JtU2V0SFRUUENvb2tpZUFjY2Vw
dFBvbGljeShIVFRQQ29va2llQWNjZXB0UG9saWN5IHBvbGljeSkKK3ZvaWQgV2ViQ29va2llTWFu
YWdlcjo6cGxhdGZvcm1TZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KFBBTDo6U2Vzc2lvbklELCBI
VFRQQ29va2llQWNjZXB0UG9saWN5IHBvbGljeSkKIHsKICAgICBBU1NFUlQoaGFzUHJvY2Vzc1By
aXZpbGVnZShQcm9jZXNzUHJpdmlsZWdlOjpDYW5BY2Nlc3NSYXdDb29raWVzKSk7CiAKICAgICBb
W05TSFRUUENvb2tpZVN0b3JhZ2Ugc2hhcmVkSFRUUENvb2tpZVN0b3JhZ2VdIHNldENvb2tpZUFj
Y2VwdFBvbGljeTpzdGF0aWNfY2FzdDxOU0hUVFBDb29raWVBY2NlcHRQb2xpY3k+KHBvbGljeSld
OwogCisgICAgLy8gQmVjYXVzZSB3ZSBoYXZlIHRoZSBzaGFyZWRIVFRQQ29va2llU3RvcmFnZSwg
d2UnbGwgaWdub3JlIHRoZSBTZXNzaW9uSUQgYW5kIGp1c3QgdXNlIHRoZQorICAgIC8vIHNhbWUg
YWNjZXB0IHBvbGljeSBmb3IgZXZlcnkgc2Vzc2lvbi4KICAgICBtX3Byb2Nlc3MuZm9yRWFjaE5l
dHdvcmtTdG9yYWdlU2Vzc2lvbihbJl0gKGNvbnN0IGF1dG8mIG5ldHdvcmtTdG9yYWdlU2Vzc2lv
bikgewogICAgICAgICBpZiAoYXV0byBjb29raWVTdG9yYWdlID0gbmV0d29ya1N0b3JhZ2VTZXNz
aW9uLmNvb2tpZVN0b3JhZ2UoKSkKICAgICAgICAgICAgIENGSFRUUENvb2tpZVN0b3JhZ2VTZXRD
b29raWVBY2NlcHRQb2xpY3koY29va2llU3RvcmFnZS5nZXQoKSwgcG9saWN5KTsKICAgICB9KTsK
IH0KIAotSFRUUENvb2tpZUFjY2VwdFBvbGljeSBXZWJDb29raWVNYW5hZ2VyOjpwbGF0Zm9ybUdl
dEhUVFBDb29raWVBY2NlcHRQb2xpY3koKQorSFRUUENvb2tpZUFjY2VwdFBvbGljeSBXZWJDb29r
aWVNYW5hZ2VyOjpwbGF0Zm9ybUdldEhUVFBDb29raWVBY2NlcHRQb2xpY3koUEFMOjpTZXNzaW9u
SUQpCiB7CiAgICAgQVNTRVJUKGhhc1Byb2Nlc3NQcml2aWxlZ2UoUHJvY2Vzc1ByaXZpbGVnZTo6
Q2FuQWNjZXNzUmF3Q29va2llcykpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL0Nvb2tpZXMvc291cC9XZWJDb29raWVNYW5hZ2VyU291cC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL0Nvb2tpZXMvc291cC9XZWJDb29raWVNYW5hZ2VyU291cC5j
cHAKaW5kZXggYjg1YzlhZTZiYTNhZDM1Nzg3OTA4YmI4ZWYxMDE2OTM5MjY5OTRhOC4uNDU3MDQ3
YjI0NjE3MmI0NTczODdjMjllYjViMmZmZDkzMWY2YjU4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9Db29raWVzL3NvdXAvV2ViQ29va2llTWFuYWdlclNvdXAuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ29va2llcy9zb3VwL1dlYkNvb2tp
ZU1hbmFnZXJTb3VwLmNwcApAQCAtMzcsNyArMzcsNyBAQAogbmFtZXNwYWNlIFdlYktpdCB7CiB1
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAotdm9pZCBXZWJDb29raWVNYW5hZ2VyOjpwbGF0Zm9y
bVNldEhUVFBDb29raWVBY2NlcHRQb2xpY3koSFRUUENvb2tpZUFjY2VwdFBvbGljeSBwb2xpY3kp
Cit2b2lkIFdlYkNvb2tpZU1hbmFnZXI6OnBsYXRmb3JtU2V0SFRUUENvb2tpZUFjY2VwdFBvbGlj
eShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIEhUVFBDb29raWVBY2NlcHRQb2xpY3kgcG9saWN5
KQogewogICAgIFNvdXBDb29raWVKYXJBY2NlcHRQb2xpY3kgc291cFBvbGljeSA9IFNPVVBfQ09P
S0lFX0pBUl9BQ0NFUFRfTk9fVEhJUkRfUEFSVFk7CiAgICAgc3dpdGNoIChwb2xpY3kpIHsKQEAg
LTQ4LDI4ICs0OCwzMiBAQCB2b2lkIFdlYkNvb2tpZU1hbmFnZXI6OnBsYXRmb3JtU2V0SFRUUENv
b2tpZUFjY2VwdFBvbGljeShIVFRQQ29va2llQWNjZXB0UG9saWN5CiAgICAgICAgIHNvdXBQb2xp
Y3kgPSBTT1VQX0NPT0tJRV9KQVJfQUNDRVBUX05FVkVSOwogICAgICAgICBicmVhazsKICAgICBj
YXNlIEhUVFBDb29raWVBY2NlcHRQb2xpY3lPbmx5RnJvbU1haW5Eb2N1bWVudERvbWFpbjoKKyAg
ICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIEZBTExUSFJPVUdIOworICAgIGNh
c2UgSFRUUENvb2tpZUFjY2VwdFBvbGljeUV4Y2x1c2l2ZWx5RnJvbU1haW5Eb2N1bWVudERvbWFp
bjoKICAgICAgICAgc291cFBvbGljeSA9IFNPVVBfQ09PS0lFX0pBUl9BQ0NFUFRfTk9fVEhJUkRf
UEFSVFk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIAotICAgIG1fcHJvY2Vzcy5mb3JFYWNoTmV0
d29ya1N0b3JhZ2VTZXNzaW9uKFtzb3VwUG9saWN5XSAoY29uc3QgYXV0byYgc2Vzc2lvbikgewot
ICAgICAgICBzb3VwX2Nvb2tpZV9qYXJfc2V0X2FjY2VwdF9wb2xpY3koc2Vzc2lvbi5jb29raWVT
dG9yYWdlKCksIHNvdXBQb2xpY3kpOwotICAgIH0pOworICAgIGlmIChhdXRvKiBzdG9yYWdlU2Vz
c2lvbiA9IG1fcHJvY2Vzcy5zdG9yYWdlU2Vzc2lvbihzZXNzaW9uSUQpKQorICAgICAgICBzb3Vw
X2Nvb2tpZV9qYXJfc2V0X2FjY2VwdF9wb2xpY3koc3RvcmFnZVNlc3Npb24tPmNvb2tpZVN0b3Jh
Z2UoKSwgc291cFBvbGljeSk7CiB9CiAKLUhUVFBDb29raWVBY2NlcHRQb2xpY3kgV2ViQ29va2ll
TWFuYWdlcjo6cGxhdGZvcm1HZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KCkKK0hUVFBDb29raWVB
Y2NlcHRQb2xpY3kgV2ViQ29va2llTWFuYWdlcjo6cGxhdGZvcm1HZXRIVFRQQ29va2llQWNjZXB0
UG9saWN5KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKIHsKLSAgICBzd2l0Y2ggKHNvdXBfY29v
a2llX2phcl9nZXRfYWNjZXB0X3BvbGljeShtX3Byb2Nlc3MuZGVmYXVsdFN0b3JhZ2VTZXNzaW9u
KCkuY29va2llU3RvcmFnZSgpKSkgewotICAgIGNhc2UgU09VUF9DT09LSUVfSkFSX0FDQ0VQVF9B
TFdBWVM6Ci0gICAgICAgIHJldHVybiBIVFRQQ29va2llQWNjZXB0UG9saWN5QWx3YXlzOwotICAg
IGNhc2UgU09VUF9DT09LSUVfSkFSX0FDQ0VQVF9ORVZFUjoKLSAgICAgICAgcmV0dXJuIEhUVFBD
b29raWVBY2NlcHRQb2xpY3lOZXZlcjsKLSAgICBjYXNlIFNPVVBfQ09PS0lFX0pBUl9BQ0NFUFRf
Tk9fVEhJUkRfUEFSVFk6Ci0gICAgICAgIHJldHVybiBIVFRQQ29va2llQWNjZXB0UG9saWN5T25s
eUZyb21NYWluRG9jdW1lbnREb21haW47CisgICAgaWYgKE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiog
c2Vzc2lvbiA9IG1fcHJvY2Vzcy5zdG9yYWdlU2Vzc2lvbihzZXNzaW9uSUQpKSB7CisgICAgICAg
IHN3aXRjaCAoc291cF9jb29raWVfamFyX2dldF9hY2NlcHRfcG9saWN5KHNlc3Npb24tPmNvb2tp
ZVN0b3JhZ2UoKSkpIHsKKyAgICAgICAgY2FzZSBTT1VQX0NPT0tJRV9KQVJfQUNDRVBUX0FMV0FZ
UzoKKyAgICAgICAgICAgIHJldHVybiBIVFRQQ29va2llQWNjZXB0UG9saWN5QWx3YXlzOworICAg
ICAgICBjYXNlIFNPVVBfQ09PS0lFX0pBUl9BQ0NFUFRfTkVWRVI6CisgICAgICAgICAgICByZXR1
cm4gSFRUUENvb2tpZUFjY2VwdFBvbGljeU5ldmVyOworICAgICAgICBjYXNlIFNPVVBfQ09PS0lF
X0pBUl9BQ0NFUFRfTk9fVEhJUkRfUEFSVFk6CisgICAgICAgICAgICByZXR1cm4gSFRUUENvb2tp
ZUFjY2VwdFBvbGljeUV4Y2x1c2l2ZWx5RnJvbU1haW5Eb2N1bWVudERvbWFpbjsKKyAgICAgICAg
fQorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICB9CiAKLSAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKLSAgICByZXR1cm4gSFRUUENvb2tpZUFjY2VwdFBvbGljeU9ubHlGcm9tTWFp
bkRvY3VtZW50RG9tYWluOworICAgIHJldHVybiBkZWZhdWx0SFRUUENvb2tpZUFjY2VwdFBvbGlj
eTsKIH0KIAogdm9pZCBXZWJDb29raWVNYW5hZ2VyOjpzZXRDb29raWVQZXJzaXN0ZW50U3RvcmFn
ZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgc3RvcmFnZVBhdGgsIFNv
dXBDb29raWVQZXJzaXN0ZW50U3RvcmFnZVR5cGUgc3RvcmFnZVR5cGUpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnMuY3BwCmluZGV4IGM2ZGYwOGU5ZmI3NzY2Zjc3MGFmYWRlZjFhYTdmMjEy
OTQ5ZDFmNTUuLjVhMjM0MjQyNzAzN2E2NDc5ODRkNDgyMjMyNDI3OTYwYWM4ZWMyOTkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCkBAIC03Miw3ICs3Miw2IEBAIHZvaWQgTmV0
d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29k
ZXIpIGNvbnN0CiAjZW5kaWYKICAgICBlbmNvZGVyIDw8IGRlZmF1bHREYXRhU3RvcmVQYXJhbWV0
ZXJzOwogI2lmIFVTRShTT1VQKQotICAgIGVuY29kZXIuZW5jb2RlRW51bShjb29raWVBY2NlcHRQ
b2xpY3kpOwogICAgIGVuY29kZXIgPDwgaWdub3JlVExTRXJyb3JzOwogICAgIGVuY29kZXIgPDwg
bGFuZ3VhZ2VzOwogICAgIGVuY29kZXIgPDwgcHJveHlTZXR0aW5nczsKQEAgLTE3MCw4ICsxNjks
NiBAQCBib29sIE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUoSVBDOjpE
ZWNvZGVyJiBkZWNvZGVyLCBOZXR3b3JrUHJvYwogICAgIHJlc3VsdC5kZWZhdWx0RGF0YVN0b3Jl
UGFyYW1ldGVycyA9IFdURk1vdmUoKmRlZmF1bHREYXRhU3RvcmVQYXJhbWV0ZXJzKTsKIAogI2lm
IFVTRShTT1VQKQotICAgIGlmICghZGVjb2Rlci5kZWNvZGVFbnVtKHJlc3VsdC5jb29raWVBY2Nl
cHRQb2xpY3kpKQotICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29k
ZShyZXN1bHQuaWdub3JlVExTRXJyb3JzKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUocmVzdWx0Lmxhbmd1YWdlcykpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzLmgKaW5kZXggMmZkM2JlOWZkZWQ5ODBiNzU3M2NlM2I1MTZiMDdhOTZmYWRhZjczYi4u
OWY4NWI4M2NmYWUyYWViYTM0ZDdmNWE0OGY0ZjE4MTllOThiNjk3MSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
cy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnMuaApAQCAtMzQsNyArMzQsNiBAQAogI2luY2x1ZGUgPHd0Zi90ZXh0L1dU
RlN0cmluZy5oPgogCiAjaWYgVVNFKFNPVVApCi0jaW5jbHVkZSAiSFRUUENvb2tpZUFjY2VwdFBv
bGljeS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvU291cE5ldHdvcmtQcm94eVNldHRpbmdzLmg+CiAj
ZW5kaWYKIApAQCAtODcsNyArODYsNiBAQCBzdHJ1Y3QgTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnMgewogICAgIFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzIGRlZmF1bHREYXRhU3Rv
cmVQYXJhbWV0ZXJzOwogICAgIAogI2lmIFVTRShTT1VQKQotICAgIEhUVFBDb29raWVBY2NlcHRQ
b2xpY3kgY29va2llQWNjZXB0UG9saWN5IHsgSFRUUENvb2tpZUFjY2VwdFBvbGljeUFsd2F5cyB9
OwogICAgIGJvb2wgaWdub3JlVExTRXJyb3JzIHsgZmFsc2UgfTsKICAgICBWZWN0b3I8U3RyaW5n
PiBsYW5ndWFnZXM7CiAgICAgV2ViQ29yZTo6U291cE5ldHdvcmtQcm94eVNldHRpbmdzIHByb3h5
U2V0dGluZ3M7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtTZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Np
b24uY3BwCmluZGV4IDMyODEzMGQ1ZTM5M2RmNzYxZTQzNGNmZWVlZmE0MzQ3OTRlYWZjMWQuLjg4
YTM0MDZmNzNkNGMzZWEwZjRkNDg1MWEyNjhkMzJlYzE1NTE2MjkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uY3BwCkBAIC02NywxMSArNjcsMTIg
QEAgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBOZXR3b3JrU2Vzc2lvbjo6bmV0d29ya1N0b3JhZ2VT
ZXNzaW9uKCkgY29uc3QKICAgICByZXR1cm4gKnN0b3JhZ2VTZXNzaW9uOwogfQogCi1OZXR3b3Jr
U2Vzc2lvbjo6TmV0d29ya1Nlc3Npb24oTmV0d29ya1Byb2Nlc3MmIG5ldHdvcmtQcm9jZXNzLCBQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCi0gICAgOiBtX3Nlc3Npb25JRChzZXNzaW9uSUQpCitO
ZXR3b3JrU2Vzc2lvbjo6TmV0d29ya1Nlc3Npb24oTmV0d29ya1Byb2Nlc3MmIG5ldHdvcmtQcm9j
ZXNzLCBjb25zdCBOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykK
KyAgICA6IG1fc2Vzc2lvbklEKHBhcmFtZXRlcnMuc2Vzc2lvbklEKQogICAgICwgbV9uZXR3b3Jr
UHJvY2VzcyhuZXR3b3JrUHJvY2VzcykKICAgICAsIG1fYWRDbGlja0F0dHJpYnV0aW9uKG1ha2VV
bmlxdWVSZWY8TmV0d29ya0FkQ2xpY2tBdHRyaWJ1dGlvbj4oKSkKIHsKKyAgICBuZXR3b3JrUHJv
Y2Vzcy5zdXBwbGVtZW50PFdlYkNvb2tpZU1hbmFnZXI+KCktPnNldEhUVFBDb29raWVBY2NlcHRQ
b2xpY3kobV9zZXNzaW9uSUQsIHBhcmFtZXRlcnMuaW5pdGlhbEhUVFBDb29raWVBY2NlcHRQb2xp
Y3ksIE9wdGlvbmFsQ2FsbGJhY2tJRCgpKTsKIH0KIAogTmV0d29ya1Nlc3Npb246On5OZXR3b3Jr
U2Vzc2lvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtTZXNzaW9uLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9u
LmgKaW5kZXggMDg1MmQ2YjY1ZjRjNWYzM2EwZTkyMTdjMmY5ODQ2NTU2NjgyNDM3NS4uMDNjNWUx
NjVhYTY1Zjc5OWQwZTI1ZDk4Y2RmZGRmOWNlZTVmYzk3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uaApAQCAtODIsNyArODIsNyBAQCBwdWJsaWM6
CiAgICAgdm9pZCBjbGVhckFkQ2xpY2tBdHRyaWJ1dGlvbihDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KCk+JiYpOwogCiBwcm90ZWN0ZWQ6Ci0gICAgTmV0d29ya1Nlc3Npb24oTmV0d29ya1Byb2Nlc3Mm
LCBQQUw6OlNlc3Npb25JRCk7CisgICAgTmV0d29ya1Nlc3Npb24oTmV0d29ya1Byb2Nlc3MmLCBj
b25zdCBOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycyYpOwogCiAgICAgUEFMOjpTZXNz
aW9uSUQgbV9zZXNzaW9uSUQ7CiAgICAgUmVmPE5ldHdvcmtQcm9jZXNzPiBtX25ldHdvcmtQcm9j
ZXNzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vz
c2lvbkNyZWF0aW9uUGFyYW1ldGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAppbmRleCA2ZjVhYTU1Y2U0MDg5
MWVhOGU1ODJjZWI5ZjVhNzhmNWM2ODk5YTcyLi4wOTM3MTk3MjAyNmVlNTA0ZTQ0ZjA4ZTRlNGNh
Y2RjODlmODc1YTk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcApAQCAtMjcs
MTUgKzI3LDEzIEBACiAjaW5jbHVkZSAiTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMu
aCIKIAogI2luY2x1ZGUgIkFyZ3VtZW50Q29kZXJzLmgiCisjaW5jbHVkZSAiSFRUUENvb2tpZUFj
Y2VwdFBvbGljeS5oIgorI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogCiAjaWYg
UExBVEZPUk0oQ09DT0EpCiAjaW5jbHVkZSAiQXJndW1lbnRDb2RlcnNDRi5oIgogI2VuZGlmCiAK
LSNpZiBVU0UoQ1VSTCkKLSNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKLSNlbmRp
ZgotCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRl
cnMgTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnM6OnByaXZhdGVTZXNzaW9uUGFyYW1l
dGVycyhjb25zdCBQQUw6OlNlc3Npb25JRCYgc2Vzc2lvbklEKQpAQCAtNTAsNyArNDgsNyBAQCBO
ZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycyBOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFy
YW1ldGVyczo6cHJpdmF0ZVNlc3NpbwogI2lmIFVTRShDVVJMKQogICAgICAgICAsIHsgfSwgeyB9
CiAjZW5kaWYKLSAgICAgICAgLCB7IH0sIHsgfSwgZmFsc2UKKyAgICAgICAgLCBkZWZhdWx0SFRU
UENvb2tpZUFjY2VwdFBvbGljeSwgeyB9LCB7IH0sIGZhbHNlCiAgICAgfTsKIH0KIApAQCAtNzYs
NiArNzQsNyBAQCB2b2lkIE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUo
SVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIGVuY29kZXIgPDwgY29va2llUGVyc2lz
dGVudFN0b3JhZ2VGaWxlOwogICAgIGVuY29kZXIgPDwgcHJveHlTZXR0aW5nczsKICNlbmRpZgor
ICAgIGVuY29kZXIuZW5jb2RlRW51bShpbml0aWFsSFRUUENvb2tpZUFjY2VwdFBvbGljeSk7CiAg
ICAgZW5jb2RlciA8PCByZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5OwogICAgIGVuY29k
ZXIgPDwgcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZTsKICAg
ICBlbmNvZGVyIDw8IGVuYWJsZVJlc291cmNlTG9hZFN0YXRpc3RpY3M7CkBAIC0xNTcsNiArMTU2
LDEwIEBAIE9wdGlvbmFsPE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzPiBOZXR3b3Jr
U2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVyczo6ZGVjCiAgICAgICAgIHJldHVybiBXVEY6Om51bGxv
cHQ7CiAjZW5kaWYKIAorICAgIEhUVFBDb29raWVBY2NlcHRQb2xpY3kgaW5pdGlhbEhUVFBDb29r
aWVBY2NlcHRQb2xpY3k7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZUVudW0oaW5pdGlhbEhUVFBD
b29raWVBY2NlcHRQb2xpY3kpKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCiAgICAg
T3B0aW9uYWw8U3RyaW5nPiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5OwogICAgIGRl
Y29kZXIgPj4gcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeTsKICAgICBpZiAoIXJlc291
cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnkpCkBAIC0xOTMsNiArMTk2LDcgQEAgT3B0aW9uYWw8
TmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnM+IE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25Q
YXJhbWV0ZXJzOjpkZWMKICAgICAgICAgLCBXVEZNb3ZlKCpjb29raWVQZXJzaXN0ZW50U3RvcmFn
ZUZpbGUpCiAgICAgICAgICwgV1RGTW92ZSgqcHJveHlTZXR0aW5ncykKICNlbmRpZgorICAgICAg
ICAsIFdURk1vdmUoaW5pdGlhbEhUVFBDb29raWVBY2NlcHRQb2xpY3kpCiAgICAgICAgICwgV1RG
TW92ZSgqcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSkKICAgICAgICAgLCBXVEZNb3Zl
KCpyZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKQogICAgICAg
ICAsIFdURk1vdmUoKmVuYWJsZVJlc291cmNlTG9hZFN0YXRpc3RpY3MpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0
ZXJzLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRp
b25QYXJhbWV0ZXJzLmgKaW5kZXggNGZjNzM2MWVmNmY3NzZiNzE3ZTcxMjhiNjkxYmE1M2MzNTk2
ODE5Ni4uZmYzYWMzNGNmMWE1YmM4ZWNkOWY3YTliZGUzYTczZjg5MzZhMmZkMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFy
YW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Np
b25DcmVhdGlvblBhcmFtZXRlcnMuaApAQCAtMjUsNiArMjUsNyBAQAogCiAjcHJhZ21hIG9uY2UK
IAorI2luY2x1ZGUgIkhUVFBDb29raWVBY2NlcHRQb2xpY3kuaCIKICNpbmNsdWRlICJTYW5kYm94
RXh0ZW5zaW9uLmgiCiAjaW5jbHVkZSA8cGFsL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPHd0Zi9T
ZWNvbmRzLmg+CkBAIC03OCw2ICs3OSw3IEBAIHN0cnVjdCBOZXR3b3JrU2Vzc2lvbkNyZWF0aW9u
UGFyYW1ldGVycyB7CiAgICAgU3RyaW5nIGNvb2tpZVBlcnNpc3RlbnRTdG9yYWdlRmlsZTsKICAg
ICBXZWJDb3JlOjpDdXJsUHJveHlTZXR0aW5ncyBwcm94eVNldHRpbmdzOwogI2VuZGlmCisgICAg
SFRUUENvb2tpZUFjY2VwdFBvbGljeSBpbml0aWFsSFRUUENvb2tpZUFjY2VwdFBvbGljeSB7IGRl
ZmF1bHRIVFRQQ29va2llQWNjZXB0UG9saWN5IH07CiAgICAgU3RyaW5nIHJlc291cmNlTG9hZFN0
YXRpc3RpY3NEaXJlY3Rvcnk7CiAgICAgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIHJlc291cmNl
TG9hZFN0YXRpc3RpY3NEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGU7CiAgICAgYm9vbCBlbmFibGVS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzIHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbSBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbQppbmRleCAx
OTA3YTU1ODI1NGY5ZGQ1NDBlYThhYjQ3OWZiYmVkYjllZGY5NDUzLi5mYWM5ZmI5Yjc3MjczYWFl
ZDgzZmQ1ZDY4NWJmYjc5ZmI5MTg4YTRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tCkBAIC04NDUsNyAr
ODQ1LDcgQEAgc3RhdGljIE5TRGljdGlvbmFyeSAqcHJveHlEaWN0aW9uYXJ5KGNvbnN0IFVSTCYg
aHR0cFByb3h5LCBjb25zdCBVUkwmIGh0dHBzUHJveHkKIH0KIAogTmV0d29ya1Nlc3Npb25Db2Nv
YTo6TmV0d29ya1Nlc3Npb25Db2NvYShOZXR3b3JrUHJvY2VzcyYgbmV0d29ya1Byb2Nlc3MsIE5l
dHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzJiYgcGFyYW1ldGVycykKLSAgICA6IE5ldHdv
cmtTZXNzaW9uKG5ldHdvcmtQcm9jZXNzLCBwYXJhbWV0ZXJzLnNlc3Npb25JRCkKKyAgICA6IE5l
dHdvcmtTZXNzaW9uKG5ldHdvcmtQcm9jZXNzLCBwYXJhbWV0ZXJzKQogICAgICwgbV9ib3VuZElu
dGVyZmFjZUlkZW50aWZpZXIocGFyYW1ldGVycy5ib3VuZEludGVyZmFjZUlkZW50aWZpZXIpCiAg
ICAgLCBtX3Byb3h5Q29uZmlndXJhdGlvbihwYXJhbWV0ZXJzLnByb3h5Q29uZmlndXJhdGlvbikK
ICAgICAsIG1fc2hvdWxkTG9nQ29va2llSW5mb3JtYXRpb24ocGFyYW1ldGVycy5zaG91bGRMb2dD
b29raWVJbmZvcm1hdGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvY3VybC9OZXR3b3JrU2Vzc2lvbkN1cmwuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9jdXJsL05ldHdvcmtTZXNzaW9uQ3VybC5jcHAKaW5kZXggZWM4YWJjYjc5NjBhODQ5MDU5
MzEzOWY4MTYwODczM2Y1MTBiNzg3ZC4uODkyOWJkYmZlMTQxNzkwNzk0NWMwZGJmNGNiNGNkYTEy
NGNlYTlhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jdXJsL05l
dHdvcmtTZXNzaW9uQ3VybC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9j
dXJsL05ldHdvcmtTZXNzaW9uQ3VybC5jcHAKQEAgLTM4LDcgKzM4LDcgQEAgbmFtZXNwYWNlIFdl
YktpdCB7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogTmV0d29ya1Nlc3Npb25DdXJsOjpO
ZXR3b3JrU2Vzc2lvbkN1cmwoTmV0d29ya1Byb2Nlc3MmIG5ldHdvcmtQcm9jZXNzLCBOZXR3b3Jr
U2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMpCi0gICAgOiBOZXR3b3JrU2Vz
c2lvbihuZXR3b3JrUHJvY2VzcywgcGFyYW1ldGVycy5zZXNzaW9uSUQpCisgICAgOiBOZXR3b3Jr
U2Vzc2lvbihuZXR3b3JrUHJvY2VzcywgcGFyYW1ldGVycykKIHsKICAgICBpZiAoIXBhcmFtZXRl
cnMuY29va2llUGVyc2lzdGVudFN0b3JhZ2VGaWxlLmlzRW1wdHkoKSkKICAgICAgICAgbmV0d29y
a1N0b3JhZ2VTZXNzaW9uKCkuc2V0Q29va2llRGF0YWJhc2UobWFrZVVuaXF1ZVJlZjxDb29raWVK
YXJEQj4ocGFyYW1ldGVycy5jb29raWVQZXJzaXN0ZW50U3RvcmFnZUZpbGUpKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrUHJvY2Vzc1NvdXAu
Y3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtQcm9jZXNzU291
cC5jcHAKaW5kZXggZWJhYmZiMDcyYjQ5ZGQ1Yjg0ZGU1ZWJkZGZiZTI3M2U0MGMxMjFhNC4uOTEz
ZDUwNWFiZmEzYWYyMmQ4ZjU3NmRkYmMyNjIwZWY1Mzk1MmE5ZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtQcm9jZXNzU291cC5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtQcm9jZXNzU291cC5jcHAK
QEAgLTEyMSw4ICsxMjEsNiBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxp
emVOZXR3b3JrUHJvY2Vzcyhjb25zdCBOZXR3b3JrUHJvY2Vzc0NyZWF0aQogCiAgICAgbV9jYWNo
ZSA9IE5ldHdvcmtDYWNoZTo6Q2FjaGU6Om9wZW4oKnRoaXMsIG1fZGlza0NhY2hlRGlyZWN0b3J5
LCBjYWNoZU9wdGlvbnMpOwogCi0gICAgc3VwcGxlbWVudDxXZWJDb29raWVNYW5hZ2VyPigpLT5z
ZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KHBhcmFtZXRlcnMuY29va2llQWNjZXB0UG9saWN5LCBP
cHRpb25hbENhbGxiYWNrSUQoKSk7Ci0KICAgICBpZiAoIXBhcmFtZXRlcnMubGFuZ3VhZ2VzLmlz
RW1wdHkoKSkKICAgICAgICAgdXNlclByZWZlcnJlZExhbmd1YWdlc0NoYW5nZWQocGFyYW1ldGVy
cy5sYW5ndWFnZXMpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L3NvdXAvTmV0d29ya1Nlc3Npb25Tb3VwLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3Mvc291cC9OZXR3b3JrU2Vzc2lvblNvdXAuY3BwCmluZGV4IDIwYWNiMWY4YTQxZTU2YWY2OWFl
OTQ1ZjBmM2JmZDhkNDM2MWQ0ZGEuLjZkYmY2ZjE1Y2QxNTdjNGIxYjA4ZmM1ZDcwMGUwOTFhMjQ2
NGM4NzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3
b3JrU2Vzc2lvblNvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291
cC9OZXR3b3JrU2Vzc2lvblNvdXAuY3BwCkBAIC0zNyw3ICszNyw3IEBAIG5hbWVzcGFjZSBXZWJL
aXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIE5ldHdvcmtTZXNzaW9uU291cDo6TmV0
d29ya1Nlc3Npb25Tb3VwKE5ldHdvcmtQcm9jZXNzJiBuZXR3b3JrUHJvY2VzcywgTmV0d29ya1Nl
c3Npb25DcmVhdGlvblBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQotICAgIDogTmV0d29ya1Nlc3Np
b24obmV0d29ya1Byb2Nlc3MsIHBhcmFtZXRlcnMuc2Vzc2lvbklEKQorICAgIDogTmV0d29ya1Nl
c3Npb24obmV0d29ya1Byb2Nlc3MsIHBhcmFtZXRlcnMpCiB7CiAgICAgbmV0d29ya1N0b3JhZ2VT
ZXNzaW9uKCkuc2V0Q29va2llT2JzZXJ2ZXJIYW5kbGVyKFt0aGlzXSB7CiAgICAgICAgIHRoaXMt
Pm5ldHdvcmtQcm9jZXNzKCkuc3VwcGxlbWVudDxXZWJDb29raWVNYW5hZ2VyPigpLT5ub3RpZnlD
b29raWVzRGlkQ2hhbmdlKG1fc2Vzc2lvbklEKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL0hUVFBDb29raWVBY2NlcHRQb2xpY3kuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0hU
VFBDb29raWVBY2NlcHRQb2xpY3kuaAppbmRleCA0ZmU4MWIzYzM5YmNmYjI0N2I2ZWU3NWVjNDAx
NTEwZDc4N2Y3MjQzLi43MDFkNjMzNjM5ZGY3YTcwOGYyY2E5MWI3Y2Q3ZmNiYmI0MDNkOGRhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9IVFRQQ29va2llQWNjZXB0UG9saWN5LmgK
KysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvSFRUUENvb2tpZUFjY2VwdFBvbGljeS5oCkBAIC0y
MywxOSArMjMsMjQgQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI2lmbmRlZiBIVFRQQ29va2ll
QWNjZXB0UG9saWN5X2gKLSNkZWZpbmUgSFRUUENvb2tpZUFjY2VwdFBvbGljeV9oCisjcHJhZ21h
IG9uY2UKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGVudW0gewogICAgIEhUVFBDb29raWVBY2Nl
cHRQb2xpY3lBbHdheXMgPSAwLAogICAgIEhUVFBDb29raWVBY2NlcHRQb2xpY3lOZXZlciA9IDEs
CisgICAgLy8gTWlzbmFtZWQsIHRoaXMgbWVhbnMgbm8gdGhpcmQtcGFydHkgY29va2llcyBleGNl
cHQgZnJvbSBkb21haW5zIHRoYXQgaGF2ZSBwcmV2aW91c2x5IHNldCBjb29raWVzLgogICAgIEhU
VFBDb29raWVBY2NlcHRQb2xpY3lPbmx5RnJvbU1haW5Eb2N1bWVudERvbWFpbiA9IDIsCisgICAg
Ly8gTm8gdGhpcmQtcGFydHkgY29va2llcyBhdCBhbGwuCiAgICAgSFRUUENvb2tpZUFjY2VwdFBv
bGljeUV4Y2x1c2l2ZWx5RnJvbU1haW5Eb2N1bWVudERvbWFpbiA9IDMsCiB9OwogdHlwZWRlZiB1
bnNpZ25lZCBIVFRQQ29va2llQWNjZXB0UG9saWN5OwogCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQK
KyNpZiBVU0UoU09VUCkgfHwgVVNFKENVUkwpCitjb25zdCBIVFRQQ29va2llQWNjZXB0UG9saWN5
IGRlZmF1bHRIVFRQQ29va2llQWNjZXB0UG9saWN5ID0gSFRUUENvb2tpZUFjY2VwdFBvbGljeUV4
Y2x1c2l2ZWx5RnJvbU1haW5Eb2N1bWVudERvbWFpbjsKKyNlbHNlCitjb25zdCBIVFRQQ29va2ll
QWNjZXB0UG9saWN5IGRlZmF1bHRIVFRQQ29va2llQWNjZXB0UG9saWN5ID0gSFRUUENvb2tpZUFj
Y2VwdFBvbGljeUFsd2F5czsKKyNlbmRpZgogCi0jZW5kaWYgLy8gSFRUUENvb2tpZUFjY2VwdFBv
bGljeV9oCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdENvb2tpZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0Q29va2llTWFuYWdlci5jcHAKaW5kZXggYTFkZTJj
MjdjM2Q5ODBiOTlkOTc3OTNiOTVjMmM1ZmY1ZDUzOGQ5MS4uMDliZWM5YjgzMThhZTA1Mjg2ODNk
ZTBmYjJjYmNjYWM5Y2QyNjRjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL2dsaWIvV2ViS2l0Q29va2llTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL2dsaWIvV2ViS2l0Q29va2llTWFuYWdlci5jcHAKQEAgLTk1LDYgKzk1LDkgQEAg
c3RhdGljIGlubGluZSBXZWJLaXRDb29raWVBY2NlcHRQb2xpY3kgdG9XZWJLaXRDb29raWVBY2Nl
cHRQb2xpY3koSFRUUENvb2tpZUFjY2UKICAgICBjYXNlIEhUVFBDb29raWVBY2NlcHRQb2xpY3lO
ZXZlcjoKICAgICAgICAgcmV0dXJuIFdFQktJVF9DT09LSUVfUE9MSUNZX0FDQ0VQVF9ORVZFUjsK
ICAgICBjYXNlIEhUVFBDb29raWVBY2NlcHRQb2xpY3lPbmx5RnJvbU1haW5Eb2N1bWVudERvbWFp
bjoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIEZBTExUSFJPVUdIOwor
ICAgIGNhc2UgSFRUUENvb2tpZUFjY2VwdFBvbGljeUV4Y2x1c2l2ZWx5RnJvbU1haW5Eb2N1bWVu
dERvbWFpbjoKICAgICAgICAgcmV0dXJuIFdFQktJVF9DT09LSUVfUE9MSUNZX0FDQ0VQVF9OT19U
SElSRF9QQVJUWTsKICAgICBkZWZhdWx0OgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
QEAgLTExMCw3ICsxMTMsNyBAQCBzdGF0aWMgaW5saW5lIEhUVFBDb29raWVBY2NlcHRQb2xpY3kg
dG9IVFRQQ29va2llQWNjZXB0UG9saWN5KFdlYktpdENvb2tpZUFjY2VwdAogICAgIGNhc2UgV0VC
S0lUX0NPT0tJRV9QT0xJQ1lfQUNDRVBUX05FVkVSOgogICAgICAgICByZXR1cm4gSFRUUENvb2tp
ZUFjY2VwdFBvbGljeU5ldmVyOwogICAgIGNhc2UgV0VCS0lUX0NPT0tJRV9QT0xJQ1lfQUNDRVBU
X05PX1RISVJEX1BBUlRZOgotICAgICAgICByZXR1cm4gSFRUUENvb2tpZUFjY2VwdFBvbGljeU9u
bHlGcm9tTWFpbkRvY3VtZW50RG9tYWluOworICAgICAgICByZXR1cm4gSFRUUENvb2tpZUFjY2Vw
dFBvbGljeUV4Y2x1c2l2ZWx5RnJvbU1haW5Eb2N1bWVudERvbWFpbjsKICAgICBkZWZhdWx0Ogog
ICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgcmV0dXJuIEhUVFBDb29raWVB
Y2NlcHRQb2xpY3lBbHdheXM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJDb29raWVNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29v
a2llTWFuYWdlclByb3h5LmNwcAppbmRleCAwZWZjMWFjZWI5ZjA4MDZkZTQxMzc5OWY3NzlmNWQ1
MmZjZTQ3YzdkLi5mMGMzOGYzZDEyYWY5MTg2OGQ4MmVlZmJiMDMzZTE0ZWZlNTQ3NzQ0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJveHkuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eS5jcHAK
QEAgLTIzOCwyOSArMjM4LDM1IEBAIHZvaWQgV2ViQ29va2llTWFuYWdlclByb3h5Ojpjb29raWVz
RGlkQ2hhbmdlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKICAgICAgICAgb2JzZXJ2ZXItPmNv
b2tpZXNEaWRDaGFuZ2UoKTsKIH0KIAotdm9pZCBXZWJDb29raWVNYW5hZ2VyUHJveHk6OnNldEhU
VFBDb29raWVBY2NlcHRQb2xpY3koUEFMOjpTZXNzaW9uSUQsIEhUVFBDb29raWVBY2NlcHRQb2xp
Y3kgcG9saWN5LCBGdW5jdGlvbjx2b2lkIChDYWxsYmFja0Jhc2U6OkVycm9yKT4mJiBjYWxsYmFj
a0Z1bmN0aW9uKQordm9pZCBXZWJDb29raWVNYW5hZ2VyUHJveHk6OnNldEhUVFBDb29raWVBY2Nl
cHRQb2xpY3koUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBIVFRQQ29va2llQWNjZXB0UG9saWN5
IHBvbGljeSwgRnVuY3Rpb248dm9pZCAoQ2FsbGJhY2tCYXNlOjpFcnJvcik+JiYgY2FsbGJhY2tG
dW5jdGlvbikKIHsKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBpZiAoIXByb2Nlc3NQb29sKCkt
PmlzVXNpbmdUZXN0aW5nTmV0d29ya1Nlc3Npb24oKSkKLSAgICAgICAgcGVyc2lzdEhUVFBDb29r
aWVBY2NlcHRQb2xpY3kocG9saWN5KTsKLSNlbmRpZgotI2lmIFVTRShTT1VQKQotICAgIHByb2Nl
c3NQb29sKCktPnNldEluaXRpYWxIVFRQQ29va2llQWNjZXB0UG9saWN5KHBvbGljeSk7CisgICAg
ICAgIHBlcnNpc3RIVFRQQ29va2llQWNjZXB0UG9saWN5KHNlc3Npb25JRCwgcG9saWN5KTsKICNl
bmRpZgogCisgICAgbV9pbml0aWFsSFRUUENvb2tpZUFjY2VwdFBvbGljaWVzLmFkZChzZXNzaW9u
SUQsIHBvbGljeSk7CisKICAgICBpZiAoIXByb2Nlc3NQb29sKCktPm5ldHdvcmtQcm9jZXNzKCkp
IHsKICAgICAgICAgY2FsbGJhY2tGdW5jdGlvbihDYWxsYmFja0Jhc2U6OkVycm9yOjpOb25lKTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGF1dG8gY2FsbGJhY2tJRCA9IG1fY2FsbGJh
Y2tzLnB1dChXVEZNb3ZlKGNhbGxiYWNrRnVuY3Rpb24pLCBwcm9jZXNzUG9vbCgpLT5lbnN1cmVO
ZXR3b3JrUHJvY2VzcygpLnRocm90dGxlcigpLmJhY2tncm91bmRBY3Rpdml0eVRva2VuKCkpOwot
ICAgIHByb2Nlc3NQb29sKCktPnNlbmRUb05ldHdvcmtpbmdQcm9jZXNzKE1lc3NhZ2VzOjpXZWJD
b29raWVNYW5hZ2VyOjpTZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KHBvbGljeSwgT3B0aW9uYWxD
YWxsYmFja0lEKGNhbGxiYWNrSUQpKSk7CisgICAgYXV0byBjYWxsYmFja0lEID0gbV9jYWxsYmFj
a3MucHV0KFdURk1vdmUoY2FsbGJhY2tGdW5jdGlvbiksIHByb2Nlc3NQb29sKCktPm5ldHdvcmtQ
cm9jZXNzKCktPnRocm90dGxlcigpLmJhY2tncm91bmRBY3Rpdml0eVRva2VuKCkpOworICAgIHBy
b2Nlc3NQb29sKCktPnNlbmRUb05ldHdvcmtpbmdQcm9jZXNzKE1lc3NhZ2VzOjpXZWJDb29raWVN
YW5hZ2VyOjpTZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KHNlc3Npb25JRCwgcG9saWN5LCBPcHRp
b25hbENhbGxiYWNrSUQoY2FsbGJhY2tJRCkpKTsKK30KKworSFRUUENvb2tpZUFjY2VwdFBvbGlj
eSBXZWJDb29raWVNYW5hZ2VyUHJveHk6OmdldEluaXRpYWxIVFRQQ29va2llQWNjZXB0UG9saWN5
KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKK3sKKyAgICBpZiAobV9pbml0aWFsSFRUUENvb2tp
ZUFjY2VwdFBvbGljaWVzLmNvbnRhaW5zKHNlc3Npb25JRCkpCisgICAgICAgIHJldHVybiBtX2lu
aXRpYWxIVFRQQ29va2llQWNjZXB0UG9saWNpZXMuZ2V0KHNlc3Npb25JRCk7CisgICAgcmV0dXJu
IGRlZmF1bHRIVFRQQ29va2llQWNjZXB0UG9saWN5OwogfQogCi12b2lkIFdlYkNvb2tpZU1hbmFn
ZXJQcm94eTo6Z2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShQQUw6OlNlc3Npb25JRCwgRnVuY3Rp
b248dm9pZCAoSFRUUENvb2tpZUFjY2VwdFBvbGljeSwgQ2FsbGJhY2tCYXNlOjpFcnJvcik+JiYg
Y2FsbGJhY2tGdW5jdGlvbikKK3ZvaWQgV2ViQ29va2llTWFuYWdlclByb3h5OjpnZXRIVFRQQ29v
a2llQWNjZXB0UG9saWN5KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgRnVuY3Rpb248dm9pZCAo
SFRUUENvb2tpZUFjY2VwdFBvbGljeSwgQ2FsbGJhY2tCYXNlOjpFcnJvcik+JiYgY2FsbGJhY2tG
dW5jdGlvbikKIHsKICAgICBhdXRvIGNhbGxiYWNrSUQgPSBtX2NhbGxiYWNrcy5wdXQoV1RGTW92
ZShjYWxsYmFja0Z1bmN0aW9uKSwgcHJvY2Vzc1Bvb2woKS0+ZW5zdXJlTmV0d29ya1Byb2Nlc3Mo
KS50aHJvdHRsZXIoKS5iYWNrZ3JvdW5kQWN0aXZpdHlUb2tlbigpKTsKLSAgICBwcm9jZXNzUG9v
bCgpLT5zZW5kVG9OZXR3b3JraW5nUHJvY2VzcyhNZXNzYWdlczo6V2ViQ29va2llTWFuYWdlcjo6
R2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShjYWxsYmFja0lEKSk7CisgICAgcHJvY2Vzc1Bvb2wo
KS0+c2VuZFRvTmV0d29ya2luZ1Byb2Nlc3MoTWVzc2FnZXM6OldlYkNvb2tpZU1hbmFnZXI6Okdl
dEhUVFBDb29raWVBY2NlcHRQb2xpY3koc2Vzc2lvbklELCBjYWxsYmFja0lEKSk7CiB9CiAKIHZv
aWQgV2ViQ29va2llTWFuYWdlclByb3h5OjpkaWRHZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KHVp
bnQzMl90IHBvbGljeSwgV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJveHkuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eS5oCmluZGV4IGJlNzgyZTc0
ZTE3NmE5NzMwZDg3YjE2MDRjN2MxMjZkZWNjNTk2ZmUuLjJhMjRkN2ZlZTcyNmViN2JlNDViODA0
NDY2NWJlYzFmODk1YjA1OTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YkNvb2tpZU1hbmFnZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNv
b2tpZU1hbmFnZXJQcm94eS5oCkBAIC04MCw2ICs4MCw5IEBAIHB1YmxpYzoKICAgICB2b2lkIHNl
dEhUVFBDb29raWVBY2NlcHRQb2xpY3koUEFMOjpTZXNzaW9uSUQsIEhUVFBDb29raWVBY2NlcHRQ
b2xpY3ksIEZ1bmN0aW9uPHZvaWQgKENhbGxiYWNrQmFzZTo6RXJyb3IpPiYmKTsKICAgICB2b2lk
IGdldEhUVFBDb29raWVBY2NlcHRQb2xpY3koUEFMOjpTZXNzaW9uSUQsIEZ1bmN0aW9uPHZvaWQg
KEhUVFBDb29raWVBY2NlcHRQb2xpY3ksIENhbGxiYWNrQmFzZTo6RXJyb3IpPiYmKTsKIAorICAg
IC8vIEZvciB1c2Ugd2hlbiBpbml0aWFsaXppbmcgTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFt
ZXRlcnMuCisgICAgSFRUUENvb2tpZUFjY2VwdFBvbGljeSBnZXRJbml0aWFsSFRUUENvb2tpZUFj
Y2VwdFBvbGljeShQQUw6OlNlc3Npb25JRCk7CisKICAgICB2b2lkIHNldFN0b3JhZ2VBY2Nlc3NB
UElFbmFibGVkKGJvb2wpOwogCiAgICAgdm9pZCBzdGFydE9ic2VydmluZ0Nvb2tpZUNoYW5nZXMo
UEFMOjpTZXNzaW9uSUQpOwpAQCAtMTI5LDEzICsxMzIsMTQgQEAgcHJpdmF0ZToKICAgICB2b2lk
IGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIG92ZXJy
aWRlOwogCiAjaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgdm9pZCBwZXJzaXN0SFRUUENvb2tpZUFj
Y2VwdFBvbGljeShIVFRQQ29va2llQWNjZXB0UG9saWN5KTsKKyAgICB2b2lkIHBlcnNpc3RIVFRQ
Q29va2llQWNjZXB0UG9saWN5KFBBTDo6U2Vzc2lvbklELCBIVFRQQ29va2llQWNjZXB0UG9saWN5
KTsKICNlbmRpZgogCiAgICAgQ2FsbGJhY2tNYXAgbV9jYWxsYmFja3M7CiAKICAgICBIYXNoTWFw
PFBBTDo6U2Vzc2lvbklELCBXVEY6OkZ1bmN0aW9uPHZvaWQgKCk+PiBtX2xlZ2FjeUNvb2tpZU9i
c2VydmVyczsKICAgICBIYXNoTWFwPFBBTDo6U2Vzc2lvbklELCBIYXNoU2V0PE9ic2VydmVyKj4+
IG1fY29va2llT2JzZXJ2ZXJzOworICAgIEhhc2hNYXA8UEFMOjpTZXNzaW9uSUQsIEhUVFBDb29r
aWVBY2NlcHRQb2xpY3k+IG1faW5pdGlhbEhUVFBDb29raWVBY2NlcHRQb2xpY2llczsKIAogICAg
IFdlYkNvb2tpZU1hbmFnZXJQcm94eUNsaWVudCBtX2NsaWVudDsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCmluZGV4IDdiZTAyZTYwYWE5ZTAzMzM5MTg5NGZi
OWFlOTk1YzQxM2M1MmMzNmMuLmQ0YWYxZWFiYWQ4MTI0MWE1MGYxYTdmYTg1MmJlN2Q3YWEwZWQ2
NWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKQEAgLTU1
OSwxMiArNTU5LDE2IEBAIE5ldHdvcmtQcm9jZXNzUHJveHkmIFdlYlByb2Nlc3NQb29sOjplbnN1
cmVOZXR3b3JrUHJvY2VzcyhXZWJzaXRlRGF0YVN0b3JlKiB3aXRoCiAgICAgcGFyYW1ldGVycy5z
aG91bGREaXNhYmxlU2VydmljZVdvcmtlclByb2Nlc3NUZXJtaW5hdGlvbkRlbGF5ID0gbV9zaG91
bGREaXNhYmxlU2VydmljZVdvcmtlclByb2Nlc3NUZXJtaW5hdGlvbkRlbGF5OwogI2VuZGlmCiAK
KyAgICBhdXRvJiBkZWZhdWx0TmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzID0gcGFyYW1ldGVycy5k
ZWZhdWx0RGF0YVN0b3JlUGFyYW1ldGVycy5uZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnM7CisKKyAg
ICBkZWZhdWx0TmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzLmluaXRpYWxIVFRQQ29va2llQWNjZXB0
UG9saWN5ID0gc3VwcGxlbWVudDxXZWJDb29raWVNYW5hZ2VyUHJveHk+KCktPmdldEluaXRpYWxI
VFRQQ29va2llQWNjZXB0UG9saWN5KGRlZmF1bHROZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMuc2Vz
c2lvbklEKTsKKwogICAgIGlmIChtX3dlYnNpdGVEYXRhU3RvcmUpCi0gICAgICAgIHBhcmFtZXRl
cnMuZGVmYXVsdERhdGFTdG9yZVBhcmFtZXRlcnMubmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzLnJl
c291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnkgPSBtX3dlYnNpdGVEYXRhU3RvcmUtPndlYnNp
dGVEYXRhU3RvcmUoKS5yZXNvbHZlZFJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnkoKTsK
LSAgICBpZiAocGFyYW1ldGVycy5kZWZhdWx0RGF0YVN0b3JlUGFyYW1ldGVycy5uZXR3b3JrU2Vz
c2lvblBhcmFtZXRlcnMucmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeS5pc0VtcHR5KCkp
Ci0gICAgICAgIHBhcmFtZXRlcnMuZGVmYXVsdERhdGFTdG9yZVBhcmFtZXRlcnMubmV0d29ya1Nl
c3Npb25QYXJhbWV0ZXJzLnJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnkgPSBBUEk6Oldl
YnNpdGVEYXRhU3RvcmU6OmRlZmF1bHRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5KCk7
CisgICAgICAgIGRlZmF1bHROZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMucmVzb3VyY2VMb2FkU3Rh
dGlzdGljc0RpcmVjdG9yeSA9IG1fd2Vic2l0ZURhdGFTdG9yZS0+d2Vic2l0ZURhdGFTdG9yZSgp
LnJlc29sdmVkUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSgpOworICAgIGlmIChkZWZh
dWx0TmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzLnJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3Rv
cnkuaXNFbXB0eSgpKQorICAgICAgICBkZWZhdWx0TmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzLnJl
c291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnkgPSBBUEk6OldlYnNpdGVEYXRhU3RvcmU6OmRl
ZmF1bHRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5KCk7CiAKLSAgICBTYW5kYm94RXh0
ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JSZWFkV3JpdGVEaXJlY3RvcnkocGFyYW1ldGVycy5kZWZh
dWx0RGF0YVN0b3JlUGFyYW1ldGVycy5uZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMucmVzb3VyY2VM
b2FkU3RhdGlzdGljc0RpcmVjdG9yeSwgcGFyYW1ldGVycy5kZWZhdWx0RGF0YVN0b3JlUGFyYW1l
dGVycy5uZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMucmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVj
dG9yeUV4dGVuc2lvbkhhbmRsZSk7CisgICAgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxl
Rm9yUmVhZFdyaXRlRGlyZWN0b3J5KGRlZmF1bHROZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMucmVz
b3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSwgZGVmYXVsdE5ldHdvcmtTZXNzaW9uUGFyYW1l
dGVycy5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKTsKIAog
ICAgIGJvb2wgZW5hYmxlUmVzb3VyY2VMb2FkU3RhdGlzdGljcyA9IGZhbHNlOwogICAgIGlmICh3
aXRoV2Vic2l0ZURhdGFTdG9yZSkKQEAgLTU3Miw3ICs1NzYsNyBAQCBOZXR3b3JrUHJvY2Vzc1By
b3h5JiBXZWJQcm9jZXNzUG9vbDo6ZW5zdXJlTmV0d29ya1Byb2Nlc3MoV2Vic2l0ZURhdGFTdG9y
ZSogd2l0aAogICAgIGVsc2UgaWYgKG1fd2Vic2l0ZURhdGFTdG9yZSkKICAgICAgICAgZW5hYmxl
UmVzb3VyY2VMb2FkU3RhdGlzdGljcyA9IG1fd2Vic2l0ZURhdGFTdG9yZS0+cmVzb3VyY2VMb2Fk
U3RhdGlzdGljc0VuYWJsZWQoKTsKIAotICAgIHBhcmFtZXRlcnMuZGVmYXVsdERhdGFTdG9yZVBh
cmFtZXRlcnMubmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzLmVuYWJsZVJlc291cmNlTG9hZFN0YXRp
c3RpY3MgPSBlbmFibGVSZXNvdXJjZUxvYWRTdGF0aXN0aWNzOworICAgIGRlZmF1bHROZXR3b3Jr
U2Vzc2lvblBhcmFtZXRlcnMuZW5hYmxlUmVzb3VyY2VMb2FkU3RhdGlzdGljcyA9IGVuYWJsZVJl
c291cmNlTG9hZFN0YXRpc3RpY3M7CiAKICAgICAvLyBBZGQgYW55IHBsYXRmb3JtIHNwZWNpZmlj
IHBhcmFtZXRlcnMKICAgICBwbGF0Zm9ybUluaXRpYWxpemVOZXR3b3JrUHJvY2VzcyhwYXJhbWV0
ZXJzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29s
LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCmluZGV4IDM0ZjM3
YTEzMzkxNDQxZjk2MDA2MzdiY2M4NjIwMzFkOGZmNGE1NWYuLjJmZDM1YTkxYWUwNjdkOWFiMDBl
Njk2NTQ0MTg1ZGZlMDgzYjMwMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlByb2Nlc3NQb29sLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vz
c1Bvb2wuaApAQCAtMjU5LDcgKzI1OSw2IEBAIHB1YmxpYzoKICAgICB2b2lkIHN0b3BNZW1vcnlT
YW1wbGVyKCk7CiAKICNpZiBVU0UoU09VUCkKLSAgICB2b2lkIHNldEluaXRpYWxIVFRQQ29va2ll
QWNjZXB0UG9saWN5KEhUVFBDb29raWVBY2NlcHRQb2xpY3kgcG9saWN5KSB7IG1faW5pdGlhbEhU
VFBDb29raWVBY2NlcHRQb2xpY3kgPSBwb2xpY3k7IH0KICAgICB2b2lkIHNldE5ldHdvcmtQcm94
eVNldHRpbmdzKGNvbnN0IFdlYkNvcmU6OlNvdXBOZXR3b3JrUHJveHlTZXR0aW5ncyYpOwogI2Vu
ZGlmCiAgICAgdm9pZCBzZXRFbmhhbmNlZEFjY2Vzc2liaWxpdHkoYm9vbCk7CkBAIC02NDEsMTAg
KzY0MCw2IEBAIHByaXZhdGU6CiAgICAgdHlwZWRlZiBIYXNoTWFwPGNvbnN0IGNoYXIqLCBSZWZQ
dHI8V2ViQ29udGV4dFN1cHBsZW1lbnQ+LCBQdHJIYXNoPGNvbnN0IGNoYXIqPj4gV2ViQ29udGV4
dFN1cHBsZW1lbnRNYXA7CiAgICAgV2ViQ29udGV4dFN1cHBsZW1lbnRNYXAgbV9zdXBwbGVtZW50
czsKIAotI2lmIFVTRShTT1VQKQotICAgIEhUVFBDb29raWVBY2NlcHRQb2xpY3kgbV9pbml0aWFs
SFRUUENvb2tpZUFjY2VwdFBvbGljeSB7IEhUVFBDb29raWVBY2NlcHRQb2xpY3lPbmx5RnJvbU1h
aW5Eb2N1bWVudERvbWFpbiB9OwotICAgIFdlYkNvcmU6OlNvdXBOZXR3b3JrUHJveHlTZXR0aW5n
cyBtX25ldHdvcmtQcm94eVNldHRpbmdzOwotI2VuZGlmCiAgICAgSGFzaFNldDxTdHJpbmcsIEFT
Q0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4gbV91cmxTY2hlbWVzUmVnaXN0ZXJlZEZvckN1c3RvbVBy
b3RvY29sczsKIAogI2lmIFBMQVRGT1JNKE1BQykKQEAgLTY3Niw2ICs2NzEsNyBAQCBwcml2YXRl
OgogICAgIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxTdGF0aXN0aWNzUmVxdWVzdD4+IG1fc3Rh
dGlzdGljc1JlcXVlc3RzOwogCiAjaWYgVVNFKFNPVVApCisgICAgV2ViQ29yZTo6U291cE5ldHdv
cmtQcm94eVNldHRpbmdzIG1fbmV0d29ya1Byb3h5U2V0dGluZ3M7CiAgICAgYm9vbCBtX2lnbm9y
ZVRMU0Vycm9ycyB7IHRydWUgfTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9Db2NvYS9XZWJzaXRlRGF0YVN0b3JlQ29jb2EubW0gYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9Db2NvYS9XZWJzaXRlRGF0YVN0b3Jl
Q29jb2EubW0KaW5kZXggZmNiODlhYTg5YWFiOGIyNGNkNDZkMmY3MTM5ZGNlZjcxMzQ2NmM2Ni4u
ZWI2ZTVjOWYyODM2YjE0OWEwYWMxOWUwNjI5NzY1YjFhMThiY2QxOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvQ29jb2EvV2Vic2l0ZURhdGFTdG9yZUNv
Y29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL0NvY29hL1dl
YnNpdGVEYXRhU3RvcmVDb2NvYS5tbQpAQCAtMjgsNiArMjgsOCBAQAogCiAjaW1wb3J0ICJDb29r
aWVTdG9yYWdlVXRpbHNDRi5oIgogI2ltcG9ydCAiU3RvcmFnZU1hbmFnZXIuaCIKKyNpbXBvcnQg
IldlYkNvb2tpZU1hbmFnZXJQcm94eS5oIgorI2ltcG9ydCAiV2ViUHJvY2Vzc1Bvb2wuaCIKICNp
bXBvcnQgIldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oIgogI2ltcG9ydCAiV2Vic2l0
ZURhdGFTdG9yZVBhcmFtZXRlcnMuaCIKICNpbXBvcnQgPFdlYkNvcmUvUnVudGltZUFwcGxpY2F0
aW9uQ2hlY2tzLmg+CkBAIC0xMDAsMTEgKzEwMiwxNSBAQCBXZWJzaXRlRGF0YVN0b3JlUGFyYW1l
dGVycyBXZWJzaXRlRGF0YVN0b3JlOjpwYXJhbWV0ZXJzKCkKICAgICAgICAgU2Vjb25kcyB7IFtk
ZWZhdWx0cyBpbnRlZ2VyRm9yS2V5OldlYktpdE5ldHdvcmtMb2FkVGhyb3R0bGVMYXRlbmN5TWls
bGlzZWNvbmRzRGVmYXVsdHNLZXldIC8gMTAwMC4gfSwKICAgICAgICAgV1RGTW92ZShodHRwUHJv
eHkpLAogICAgICAgICBXVEZNb3ZlKGh0dHBzUHJveHkpLAorICAgICAgICBkZWZhdWx0SFRUUENv
b2tpZUFjY2VwdFBvbGljeSwKICAgICAgICAgV1RGTW92ZShyZXNvdXJjZUxvYWRTdGF0aXN0aWNz
RGlyZWN0b3J5KSwKICAgICAgICAgV1RGTW92ZShyZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0
b3J5SGFuZGxlKSwKICAgICAgICAgZmFsc2UKICAgICB9OwogCisgICAgaWYgKGF1dG8qIHByb2Nl
c3NQb29sID0gcHJvY2Vzc1Bvb2xGb3JDb29raWVTdG9yYWdlT3BlcmF0aW9ucygpKQorICAgICAg
ICBwYXJhbWV0ZXJzLm5ldHdvcmtTZXNzaW9uUGFyYW1ldGVycy5pbml0aWFsSFRUUENvb2tpZUFj
Y2VwdFBvbGljeSA9IHByb2Nlc3NQb29sLT5zdXBwbGVtZW50PFdlYkNvb2tpZU1hbmFnZXJQcm94
eT4oKS0+Z2V0SW5pdGlhbEhUVFBDb29raWVBY2NlcHRQb2xpY3kocGFyYW1ldGVycy5uZXR3b3Jr
U2Vzc2lvblBhcmFtZXRlcnMuc2Vzc2lvbklEKTsKKwogICAgIGF1dG8gY29va2llRmlsZSA9IHJl
c29sdmVkQ29va2llU3RvcmFnZUZpbGUoKTsKIAogICAgIGlmIChtX3VpUHJvY2Vzc0Nvb2tpZVN0
b3JhZ2VJZGVudGlmaWVyLmlzRW1wdHkoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcAppbmRleCBhY2VhOTBj
ZDliYjJmM2I4NGI4YzA3YmZjYTMyYTczYjllNjYzMDhkLi4xMGE4YjY2MDA3MWMwYTE5NmE0ZjFj
ODU2MWQ0YzhlYzA4NTJiNzJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcApAQCAtMzYsNiArMzYsNyBAQAog
I2luY2x1ZGUgIlNob3VsZEdyYW5kZmF0aGVyU3RhdGlzdGljcy5oIgogI2luY2x1ZGUgIlN0b3Jh
Z2VBY2Nlc3NTdGF0dXMuaCIKICNpbmNsdWRlICJTdG9yYWdlTWFuYWdlci5oIgorI2luY2x1ZGUg
IldlYkNvb2tpZU1hbmFnZXJQcm94eS5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NDYWNoZS5oIgog
I2luY2x1ZGUgIldlYlByb2Nlc3NNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NQb29s
LmgiCkBAIC0yMDQxLDYgKzIwNDIsOSBAQCBXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycyBXZWJz
aXRlRGF0YVN0b3JlOjpwYXJhbWV0ZXJzKCkKICAgICBXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVy
cyBwYXJhbWV0ZXJzOwogICAgIHBhcmFtZXRlcnMubmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzLnNl
c3Npb25JRCA9IG1fc2Vzc2lvbklEOwogCisgICAgaWYgKGF1dG8qIHByb2Nlc3NQb29sID0gcHJv
Y2Vzc1Bvb2xGb3JDb29raWVTdG9yYWdlT3BlcmF0aW9ucygpKQorICAgICAgICBwYXJhbWV0ZXJz
Lm5ldHdvcmtTZXNzaW9uUGFyYW1ldGVycy5pbml0aWFsSFRUUENvb2tpZUFjY2VwdFBvbGljeSA9
IHByb2Nlc3NQb29sLT5zdXBwbGVtZW50PFdlYkNvb2tpZU1hbmFnZXJQcm94eT4oKS0+Z2V0SW5p
dGlhbEhUVFBDb29raWVBY2NlcHRQb2xpY3kocGFyYW1ldGVycy5uZXR3b3JrU2Vzc2lvblBhcmFt
ZXRlcnMuc2Vzc2lvbklEKTsKKwogICAgIHJlc29sdmVEaXJlY3Rvcmllc0lmTmVjZXNzYXJ5KCk7
CiAKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL21hYy9XZWJDb29raWVNYW5hZ2VyUHJveHlNYWMubW0gYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9tYWMvV2ViQ29va2llTWFuYWdlclByb3h5TWFjLm1tCmluZGV4IGVlZDk3
YWJlZDYwM2EzZGNiZTExYjc5NzJmNDcxMDFiOWI5NGU3MjguLmVmODQ0OTIwMDE3NzEwNjFmNzgy
Nzk4NGU1ZDM3YjIzZTkwN2I4MTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L21hYy9XZWJDb29raWVNYW5hZ2VyUHJveHlNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvbWFjL1dlYkNvb2tpZU1hbmFnZXJQcm94eU1hYy5tbQpAQCAtMzEsNyArMzEsNyBAQAog
CiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotdm9pZCBXZWJDb29raWVNYW5hZ2VyUHJveHk6OnBlcnNp
c3RIVFRQQ29va2llQWNjZXB0UG9saWN5KEhUVFBDb29raWVBY2NlcHRQb2xpY3kgcG9saWN5KQor
dm9pZCBXZWJDb29raWVNYW5hZ2VyUHJveHk6OnBlcnNpc3RIVFRQQ29va2llQWNjZXB0UG9saWN5
KFBBTDo6U2Vzc2lvbklELCBIVFRQQ29va2llQWNjZXB0UG9saWN5IHBvbGljeSkKIHsKICAgICBB
U1NFUlQoaGFzUHJvY2Vzc1ByaXZpbGVnZShQcm9jZXNzUHJpdmlsZWdlOjpDYW5BY2Nlc3NSYXdD
b29raWVzKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL3NvdXAvV2Vi
UHJvY2Vzc1Bvb2xTb3VwLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL3NvdXAvV2ViUHJv
Y2Vzc1Bvb2xTb3VwLmNwcAppbmRleCBiNDQyZjY3MDI1MjNlNjAxNzZlZWM5NGI3YzVmYTM4YjFi
ZWM3YjA5Li4zMzIyY2QzZjhkOGUyOWJhYTY3YmE1YThiMjY4YjZhNGZiMWI5ODg1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9zb3VwL1dlYlByb2Nlc3NQb29sU291cC5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mvc291cC9XZWJQcm9jZXNzUG9vbFNvdXAuY3Bw
CkBAIC0zOCwxMCArMzgsOSBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogdm9pZCBXZWJQcm9jZXNz
UG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplTmV0d29ya1Byb2Nlc3MoTmV0d29ya1Byb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCiB7Ci0gICAgTmV0d29ya1Nlc3Npb25DcmVhdGlv
blBhcmFtZXRlcnMmIGRlZmF1bHRTZXNzaW9uUGFyYW1ldGVycyA9IHBhcmFtZXRlcnMuZGVmYXVs
dERhdGFTdG9yZVBhcmFtZXRlcnMubmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzOwotICAgIHN1cHBs
ZW1lbnQ8V2ViQ29va2llTWFuYWdlclByb3h5PigpLT5nZXRDb29raWVQZXJzaXN0ZW50U3RvcmFn
ZShkZWZhdWx0U2Vzc2lvblBhcmFtZXRlcnMuc2Vzc2lvbklELCBkZWZhdWx0U2Vzc2lvblBhcmFt
ZXRlcnMuY29va2llUGVyc2lzdGVudFN0b3JhZ2VQYXRoLCBkZWZhdWx0U2Vzc2lvblBhcmFtZXRl
cnMuY29va2llUGVyc2lzdGVudFN0b3JhZ2VUeXBlKTsKKyAgICBOZXR3b3JrU2Vzc2lvbkNyZWF0
aW9uUGFyYW1ldGVycyYgZGVmYXVsdE5ldHdvcmtTZXNzaW9uUGFyYW1ldGVycyA9IHBhcmFtZXRl
cnMuZGVmYXVsdERhdGFTdG9yZVBhcmFtZXRlcnMubmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzOwor
ICAgIHN1cHBsZW1lbnQ8V2ViQ29va2llTWFuYWdlclByb3h5PigpLT5nZXRDb29raWVQZXJzaXN0
ZW50U3RvcmFnZShkZWZhdWx0TmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzLnNlc3Npb25JRCwgZGVm
YXVsdE5ldHdvcmtTZXNzaW9uUGFyYW1ldGVycy5jb29raWVQZXJzaXN0ZW50U3RvcmFnZVBhdGgs
IGRlZmF1bHROZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMuY29va2llUGVyc2lzdGVudFN0b3JhZ2VU
eXBlKTsKIAotICAgIHBhcmFtZXRlcnMuY29va2llQWNjZXB0UG9saWN5ID0gbV9pbml0aWFsSFRU
UENvb2tpZUFjY2VwdFBvbGljeTsKICAgICBwYXJhbWV0ZXJzLmlnbm9yZVRMU0Vycm9ycyA9IG1f
aWdub3JlVExTRXJyb3JzOwogICAgIHBhcmFtZXRlcnMubGFuZ3VhZ2VzID0gdXNlclByZWZlcnJl
ZExhbmd1YWdlcygpOwogICAgIHBhcmFtZXRlcnMuc2hvdWxkRW5hYmxlTmV0d29ya0NhY2hlRWZm
aWNhY3lMb2dnaW5nID0gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcAppbmRleCA5ZWVjYmUyODk1
OWZiZjgwYjVmMGRjZjdhMDY1ZDA4OTQyYThlOWQzLi44Yjg3NTk4ZjhjZDE0YmYxNjRlYTMzYjY0
Nzg1ZDFmZTcwZjA1NDEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKQEAgLTMxLDcgKzMxLDYgQEAK
ICNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZVNjcmlwdFdvcmxkLmgiCiAjaW5jbHVkZSAiTmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlcy5oIgogI2luY2x1ZGUgIk5ldHdvcmtQcm9j
ZXNzQ29ubmVjdGlvbi5oIgotI2luY2x1ZGUgIk5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0
ZXJzLmgiCiAjaW5jbHVkZSAiTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmgi
CiAjaW5jbHVkZSAiVXNlckRhdGEuaCIKICNpbmNsdWRlICJXZWJDb25uZWN0aW9uVG9VSVByb2Nl
c3MuaCIK
</data>
<flag name="review"
          id="379791"
          type_id="1"
          status="-"
          setter="achristensen"
    />
          </attachment>
      

    </bug>

</bugzilla>