<?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>216120</bug_id>
          
          <creation_ts>2020-09-03 04:25:48 -0700</creation_ts>
          <short_desc>[GLIB] RemoteInspectorServer is not started if WebKitWebContext is not already created</short_desc>
          <delta_ts>2020-09-23 02:54:44 -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>WebKitGTK</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=212002</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="Pablo Saavedra">psaavedra</reporter>
          <assigned_to name="Pablo Saavedra">psaavedra</assigned_to>
          <cc>achristensen</cc>
    
    <cc>aperez</cc>
    
    <cc>berto</cc>
    
    <cc>bugs-noreply</cc>
    
    <cc>cgarcia</cc>
    
    <cc>csaavedra</cc>
    
    <cc>darin</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>1685228</commentid>
    <comment_count>0</comment_count>
    <who name="Pablo Saavedra">psaavedra</who>
    <bug_when>2020-09-03 04:25:48 -0700</bug_when>
    <thetext>For the cases where &quot;WEBKIT_INSPECTOR_SERVER&quot; is defined as an envvar.


Let&apos;s think in a case where we are initializing the  UI process (ex: a WebKit launcher) and we have a code like this

```
...
webkit_user_content_filter_store_save()
webkit_web_context_new_with_website_data_manager()
...
```

(note that before `webkit_user_content_filter_store_save()` no other WebContext or WebView was initialized nor created).



When the webkit_user_content_filter_store_save() calls RemoteInspector.singleton() [WebKit!L72](https://github.com/WebKit/webkit/blame/d2c95d8ce5e68f5c81983dad44085dbf915ca52b/Source/JavaScriptCore/inspector/remote/glib/RemoteInspectorGlib.cpp#L72), the RemoteInspectorServer isn&apos;t initialized yet because this action is triggered only by any API method which returns a WebKitWebContext:

WebKitWebContext *	webkit_web_context_get_default ()
WebKitWebContext *	webkit_web_context_new ()
WebKitWebContext *	webkit_web_context_new_ephemeral ()
WebKitWebContext *	webkit_web_context_new_with_website_data_manager ()
￼
... so the RemoteInspector object is going to fail trying to connect to the server: &quot;RemoteInspector failed to connect to inspector server at: %s: %s&quot;
￼

The initialization of the RemoteInspectorServer is done in the WebKit::WebProcessPool::platformInitialize() method during the WebProcessPool::create(). And this, as I said, it only can be triggered from the WK API  by creating or getting a WebContext. This is because the initialization is done during the WebKit::WebProcessPool::WebProcessPool() creation.

My question:

Is it really needed the Inspector::RemoteInspectorServer::start() be called only from the WebKit::WebProcessPool::platformInitialize() or the 	 from WebKit::WebProcessPool::WebProcessPool()? Could be possible start the Inspector::RemoteInspectorServer from another place, early?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1685253</commentid>
    <comment_count>1</comment_count>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2020-09-03 07:45:18 -0700</bug_when>
    <thetext>The issue that I had while working on bug #212002 where I was trying
to add API to remote inspect JSCContext instances is probably related:
we can have a bare JSCContext without any WebKitWebContext being created,
so this makes me think that maybe we should detach the creation of the
RemoteInspectorServer singleton from the WebKitWebContext, and instead
have some API to start it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1685671</commentid>
    <comment_count>2</comment_count>
      <attachid>407979</attachid>
    <who name="Pablo Saavedra">psaavedra</who>
    <bug_when>2020-09-04 08:46:32 -0700</bug_when>
    <thetext>Created attachment 407979
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1685672</commentid>
    <comment_count>3</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2020-09-04 08:47:31 -0700</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>1685675</commentid>
    <comment_count>4</comment_count>
    <who name="Pablo Saavedra">psaavedra</who>
    <bug_when>2020-09-04 08:49:31 -0700</bug_when>
    <thetext>(In reply to Adrian Perez from comment #1)
&gt; The issue that I had while working on bug #212002 where I was trying
&gt; to add API to remote inspect JSCContext instances is probably related:
&gt; we can have a bare JSCContext without any WebKitWebContext being created,
&gt; so this makes me think that maybe we should detach the creation of the
&gt; RemoteInspectorServer singleton from the WebKitWebContext, and instead
&gt; have some API to start it.

Maybe. Based on your description, yes, it could be the case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1685679</commentid>
    <comment_count>5</comment_count>
    <who name="Pablo Saavedra">psaavedra</who>
    <bug_when>2020-09-04 08:57:18 -0700</bug_when>
    <thetext>Pushed a tentative patch to address this. 

After a conversation with Carlos García, I decided to add a new WebKit/UIProcess/API/glib/WebKitInitialize what implements
its own webkitInitialize() method in a similar way that the shared InitializeWebKit2() but exclusive for the UIProcess/API objects. 

This WebKitInitialize is now the responsible of the initialization of the RemoteInspectorServer instead of WebProcessPoolGLib.

The WebKitInitialize is called in the initialization of any of the API objects what could be the first in to be initialized by a UI process:

WebKitCookieManager, WebKitFaviconDatabase, WebKitGeolocationManager, WebKitInputMethodContext, WebKitSettings, WebKitUserContentManager, WebKitWebContext, WebKitWebsiteDataManager, WebKitUserContentFilterStore, WebKitWebViewBase.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1685687</commentid>
    <comment_count>6</comment_count>
      <attachid>407979</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-09-04 09:21:39 -0700</bug_when>
    <thetext>Comment on attachment 407979
patch

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

&gt; Source/WebKit/ChangeLog:9
&gt; +        Added a WebKit/UIProcess/API/glib/WebKitInitialize what implements
&gt; +        its own webkitInitialize() to ensure the correct initialization
&gt; +        of WebKit during the class init of the more relevant objects
&gt; +        exposed by the API.

Not to ensure the correct initialization of WebKit, because that&apos;s already done by InitializeWebKit2, but to ensure the inspector server is initialized as early as possible, before other api calls that would depend on the inspector server being running.

&gt; Source/WebKit/UIProcess/API/glib/WebKitFaviconDatabase.cpp:100
&gt; +    webkitInitialize();

It doesn&apos;t really matter but I wonder why you added this at the beginning of class_init in some cases and the end in others.

&gt; Source/WebKit/UIProcess/API/glib/WebKitGeolocationManager.cpp:339
&gt; +    webkitInitialize();
&gt; +

WebKitGeolocationManager can only be crated by a WebKitWebContext, so at this point the init has already been called for sure. The user can&apos;t create a WebKitGeolocationManager.

&gt; Source/WebKit/UIProcess/API/glib/WebKitInitialize.cpp:67
&gt; +    if (const char* address = g_getenv(&quot;WEBKIT_INSPECTOR_SERVER&quot;))
&gt; +        initializeRemoteInspectorServer(address);

webkitInitialize() is going to be called multiple times, better use std::once to ensure the inspector is only initialized once.

&gt; Source/WebKit/UIProcess/API/glib/WebKitInputMethodContext.cpp:211
&gt; +    webkitInitialize();

This file doesn&apos;t have a using namespace WebKit, so you need to either add it, or use WebKit:: here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1685696</commentid>
    <comment_count>7</comment_count>
      <attachid>407983</attachid>
    <who name="Pablo Saavedra">psaavedra</who>
    <bug_when>2020-09-04 09:32:51 -0700</bug_when>
    <thetext>Created attachment 407983
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1685716</commentid>
    <comment_count>8</comment_count>
    <who name="Pablo Saavedra">psaavedra</who>
    <bug_when>2020-09-04 09:51:35 -0700</bug_when>
    <thetext>(In reply to Carlos Garcia Campos from comment #6)
&gt; Comment on attachment 407979 [details]

&gt; Not to ensure the correct initialization of WebKit, because that&apos;s already
&gt; done by InitializeWebKit2, but to ensure the inspector server is initialized
&gt; as early as possible, before other api calls that would depend on the
&gt; inspector server being running.
&gt; 
&gt; &gt; Source/WebKit/UIProcess/API/glib/WebKitFaviconDatabase.cpp:100
&gt; &gt; +    webkitInitialize();
&gt; 
&gt; It doesn&apos;t really matter but I wonder why you added this at the beginning of
&gt; class_init in some cases and the end in others.
&gt; 

There is not an specific reason. For coherence, I will modify the patch to put it the call in the beginning of the class_init always.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1685729</commentid>
    <comment_count>9</comment_count>
      <attachid>407990</attachid>
    <who name="Pablo Saavedra">psaavedra</who>
    <bug_when>2020-09-04 10:11:54 -0700</bug_when>
    <thetext>Created attachment 407990
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1686304</commentid>
    <comment_count>10</comment_count>
      <attachid>407990</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-09-07 01:26:52 -0700</bug_when>
    <thetext>Comment on attachment 407990
patch

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

&gt; Source/WebKit/UIProcess/API/glib/WebKitCookieManager.cpp:122
&gt; +    webkitInitialize();

WebKitCookieManager can only be crated by a WebKitWebsiteDataManager, so at this point the init has already been called for sure. The user can&apos;t create a WebKitCookieManager.

&gt; Source/WebKit/UIProcess/API/glib/WebKitFaviconDatabase.cpp:77
&gt; +    webkitInitialize();

WebKitFaviconDatabase can only be crated by a WebKitWebContext, so at this point the init has already been called for sure. The user can&apos;t create a WebKitFaviconDatabase.

&gt; Source/WebKit/UIProcess/API/glib/WebKitInitialize.cpp:35
&gt; +#if !PLATFORM(COCOA)

You don&apos;t need this, cocoa based ports never build this file.

&gt; Source/WebKit/UIProcess/API/glib/WebKitInitialize.h:32
&gt; +};

Trailing ; is not needed here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1686332</commentid>
    <comment_count>11</comment_count>
      <attachid>408171</attachid>
    <who name="Pablo Saavedra">psaavedra</who>
    <bug_when>2020-09-07 03:37:17 -0700</bug_when>
    <thetext>Created attachment 408171
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1686335</commentid>
    <comment_count>12</comment_count>
    <who name="Pablo Saavedra">psaavedra</who>
    <bug_when>2020-09-07 04:05:25 -0700</bug_when>
    <thetext>I&apos;ve updated the ticket again.. @cgarcia thanks for your comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1686356</commentid>
    <comment_count>13</comment_count>
      <attachid>408178</attachid>
    <who name="Pablo Saavedra">psaavedra</who>
    <bug_when>2020-09-07 07:31:36 -0700</bug_when>
    <thetext>Created attachment 408178
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1686357</commentid>
    <comment_count>14</comment_count>
      <attachid>408178</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-09-07 07:37:05 -0700</bug_when>
    <thetext>Comment on attachment 408178
patch

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

&gt; Source/WebKit/ChangeLog:22
&gt; +        Reviewed by NOBODY (OOPS!).

This usually goes before he description.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1686423</commentid>
    <comment_count>15</comment_count>
      <attachid>408192</attachid>
    <who name="Pablo Saavedra">psaavedra</who>
    <bug_when>2020-09-07 12:39:23 -0700</bug_when>
    <thetext>Created attachment 408192
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1686424</commentid>
    <comment_count>16</comment_count>
    <who name="Pablo Saavedra">psaavedra</who>
    <bug_when>2020-09-07 12:40:11 -0700</bug_when>
    <thetext>(In reply to Carlos Garcia Campos from comment #14)
&gt; Comment on attachment 408178 [details]
&gt; patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=408178&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/ChangeLog:22
&gt; &gt; +        Reviewed by NOBODY (OOPS!).
&gt; 
&gt; This usually goes before he description.

OK. Let&apos;s do this change too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1686518</commentid>
    <comment_count>17</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-09-08 01:52:30 -0700</bug_when>
    <thetext>Committed r266718: &lt;https://trac.webkit.org/changeset/266718&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 408192.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>407979</attachid>
            <date>2020-09-04 08:46:32 -0700</date>
            <delta_ts>2020-09-04 09:23:37 -0700</delta_ts>
            <desc>patch</desc>
            <filename>bug-216120-20200904174448.patch</filename>
            <type>text/plain</type>
            <size>21267</size>
            <attacher name="Pablo Saavedra">psaavedra</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY2NTgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDI0YWMxMWNjZTYwNDk4MGMy
ZmUwMDIwZTZhYjc3MzJhNjQxYzQ5ZTkuLjliZDEyN2VkZGUzZTE0YTBkMjI4MjUyNWFiZDAyZjFk
NzUzM2M3YTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTYgQEAKKzIwMjAtMDktMDQgIFBhYmxvIFNh
YXZlZHJhICA8cHNhYXZlZHJhQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dMSUJdIFJlbW90ZUlu
c3BlY3RvclNlcnZlciBpcyBub3Qgc3RhcnRlZCBpZiBXZWJLaXRXZWJDb250ZXh0IGlzIG5vdCBj
cmVhdGVkIGFscmVhZHkgY3JlYXRlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjE2MTIwCisKKyAgICAgICAgQWRkZWQgYSBXZWJLaXQvVUlQcm9jZXNz
L0FQSS9nbGliL1dlYktpdEluaXRpYWxpemUgd2hhdCBpbXBsZW1lbnRzCisgICAgICAgIGl0cyBv
d24gd2Via2l0SW5pdGlhbGl6ZSgpIHRvIGVuc3VyZSB0aGUgY29ycmVjdCBpbml0aWFsaXphdGlv
bgorICAgICAgICBvZiBXZWJLaXQgZHVyaW5nIHRoZSBjbGFzcyBpbml0IG9mIHRoZSBtb3JlIHJl
bGV2YW50IG9iamVjdHMKKyAgICAgICAgZXhwb3NlZCBieSB0aGUgQVBJLgorCisgICAgICAgIFRo
ZSBSZW1vdGVJbnNwZWN0b3JTZXJ2ZXIgaW5pdGlhbGl6YXRpb24gaXMgbm90IGxvbmdlcgorICAg
ICAgICBhc29jaWF0ZWQgdG8gdGhlIGluaXRpYWxpemF0aW9uIG9mIHRoZSBXZWJQcm9jZXNzUG9v
bEdMaWIuCisKKyAgICAgICAgVGhlIHdlYmtpdEluaXRpYWxpemUoKSBleHRlbmRzIHRoZSBzaGFy
ZWQgSW5pdGlhbGl6ZVdlYktpdDIoKTsKKyAgICAgICAgYW5kIGFsc28gaW5jbHVkZXMgdGhlIGlu
aXRpYWxpemF0aW9uIG9mIHRoZSBSZW1vdGVJbnNwZWN0b3JTZXJ2ZXIKKyAgICAgICAgc28gdGhl
IGluaXRpYWxpemF0aW9uIG9mIHRoZSByZW1vdGUgaW5zcGVjdG9yIHNlcnZlciBjYW4gYmUgbm93
CisgICAgICAgIHRyaWdnZXJlZCBieSB0aGUgaW5pdGlhbGl6YXRpb24gb2YgbWFueSBvdGhlciBB
UEkgb2JqZWN0cyB0b286CisgICAgICAgIFdlYktpdENvb2tpZU1hbmFnZXIsIFdlYktpdEZhdmlj
b25EYXRhYmFzZSwKKyAgICAgICAgV2ViS2l0R2VvbG9jYXRpb25NYW5hZ2VyLCBXZWJLaXRJbnB1
dE1ldGhvZENvbnRleHQsIFdlYktpdFNldHRpbmdzLAorICAgICAgICBXZWJLaXRVc2VyQ29udGVu
dE1hbmFnZXIsIFdlYktpdFdlYkNvbnRleHQsIFdlYktpdFdlYnNpdGVEYXRhTWFuYWdlciwKKyAg
ICAgICAgV2ViS2l0VXNlckNvbnRlbnRGaWx0ZXJTdG9yZSwgV2ViUHJvY2Vzc1Bvb2xHTGliLAor
ICAgICAgICBXZWJLaXRXZWJWaWV3QmFzZSwgV2ViS2l0V2ViVmlld0Jhc2UsCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTb3VyY2VzR1RLLnR4dDoK
KyAgICAgICAgKiBTb3VyY2VzV1BFLnR4dDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2dsaWIv
V2ViS2l0Q29va2llTWFuYWdlci5jcHA6CisgICAgICAgICh3ZWJraXRfY29va2llX21hbmFnZXJf
Y2xhc3NfaW5pdCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdEZhdmljb25E
YXRhYmFzZS5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdEdlb2xvY2F0
aW9uTWFuYWdlci5jcHA6CisgICAgICAgICh3ZWJraXRfZ2VvbG9jYXRpb25fbWFuYWdlcl9jbGFz
c19pbml0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0SW5pdGlhbGl6ZS5j
cHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0Ojppbml0aWFsaXplUmVtb3RlSW5zcGVjdG9yU2Vy
dmVyKToKKyAgICAgICAgKFdlYktpdDo6d2Via2l0SW5pdGlhbGl6ZSk6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9nbGliL1dlYktpdEluaXRpYWxpemUuaDogQWRkZWQuCisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9nbGliL1dlYktpdElucHV0TWV0aG9kQ29udGV4dC5jcHA6CisgICAgICAgICh3
ZWJraXRfaW5wdXRfbWV0aG9kX2NvbnRleHRfY2xhc3NfaW5pdCk6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9nbGliL1dlYktpdFNldHRpbmdzLmNwcDoKKyAgICAgICAgKHdlYmtpdF9zZXR0aW5n
c19jbGFzc19pbml0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VXNlckNv
bnRlbnRGaWx0ZXJTdG9yZS5jcHA6CisgICAgICAgICh3ZWJraXRfdXNlcl9jb250ZW50X2ZpbHRl
cl9zdG9yZV9jbGFzc19pbml0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0
VXNlckNvbnRlbnRNYW5hZ2VyLmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2dsaWIvV2Vi
S2l0V2ViQ29udGV4dC5jcHA6CisgICAgICAgICh3ZWJraXRfd2ViX2NvbnRleHRfY2xhc3NfaW5p
dCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYnNpdGVEYXRhTWFuYWdl
ci5jcHA6CisgICAgICAgICh3ZWJraXRfd2Vic2l0ZV9kYXRhX21hbmFnZXJfY2xhc3NfaW5pdCk6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld0Jhc2UuY3BwOgorICAg
ICAgICAod2Via2l0X3dlYl92aWV3X2Jhc2VfY2xhc3NfaW5pdCk6CisgICAgICAgICogVUlQcm9j
ZXNzL2dsaWIvV2ViUHJvY2Vzc1Bvb2xHTGliLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJv
Y2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZSk6CisgICAgICAgIChXZWJLaXQ6OmluaXRpYWxp
emVSZW1vdGVJbnNwZWN0b3JTZXJ2ZXIpOiBEZWxldGVkLgorCiAyMDIwLTA5LTAzICBDYXJsb3Mg
R2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBVbmV4
cGVjdGVkIFVzZXItQWdlbnQgb24gcmVkaXJlY3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
U291cmNlc0dUSy50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNHVEsudHh0CmluZGV4IGZjODg2
MWMyMjFhOGQxMGNhZDdlNWU2ZmExOGJlM2UzNjE5Y2YzMWIuLjMxZGMyMTc1NGYyNTJkNmRmNTZl
MTY5ZTgwMzIyMmEyNTBkZTg0OTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0dU
Sy50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzR1RLLnR4dApAQCAtMTQxLDYgKzE0MSw3
IEBAIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRGb3JtU3VibWlzc2lvblJlcXVlc3QuY3BwIEBu
by11bmlmeQogVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdEdlb2xvY2F0aW9uTWFuYWdlci5jcHAg
QG5vLXVuaWZ5CiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0R2VvbG9jYXRpb25QZXJtaXNzaW9u
UmVxdWVzdC5jcHAgQG5vLXVuaWZ5CiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0SWNvbkxvYWRp
bmdDbGllbnQuY3BwIEBuby11bmlmeQorVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdEluaXRpYWxp
emUuY3BwIEBuby11bmlmeQogVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdEluamVjdGVkQnVuZGxl
Q2xpZW50LmNwcCBAbm8tdW5pZnkKIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRJbnB1dE1ldGhv
ZENvbnRleHQuY3BwIEBuby11bmlmeQogVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdEluc3RhbGxN
aXNzaW5nTWVkaWFQbHVnaW5zUGVybWlzc2lvblJlcXVlc3QuY3BwIEBuby11bmlmeQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzV1BFLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNl
c1dQRS50eHQKaW5kZXggNmUwMWYwNDE0ZTNlNzI4YmQ2NDY3ZTgxYTIyMDcyM2ExMDU2ODVjNy4u
M2MyOTlkZmQ3Mjc5MmNmMWI3OTlkZTY0ODY2MjZjODAzOWRkYmM4NiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9Tb3VyY2VzV1BFLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNXUEUu
dHh0CkBAIC0xMzIsNiArMTMyLDcgQEAgVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdEZvcm1DbGll
bnQuY3BwIEBuby11bmlmeQogVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdEZvcm1TdWJtaXNzaW9u
UmVxdWVzdC5jcHAgQG5vLXVuaWZ5CiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0R2VvbG9jYXRp
b25NYW5hZ2VyLmNwcCBAbm8tdW5pZnkKIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRHZW9sb2Nh
dGlvblBlcm1pc3Npb25SZXF1ZXN0LmNwcCBAbm8tdW5pZnkKK1VJUHJvY2Vzcy9BUEkvZ2xpYi9X
ZWJLaXRJbml0aWFsaXplLmNwcCBAbm8tdW5pZnkKIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRJ
bmplY3RlZEJ1bmRsZUNsaWVudC5jcHAgQG5vLXVuaWZ5CiBVSVByb2Nlc3MvQVBJL2dsaWIvV2Vi
S2l0SW5wdXRNZXRob2RDb250ZXh0LmNwcCBAbm8tdW5pZnkKIFVJUHJvY2Vzcy9BUEkvZ2xpYi9X
ZWJLaXRJbnN0YWxsTWlzc2luZ01lZGlhUGx1Z2luc1Blcm1pc3Npb25SZXF1ZXN0LmNwcCBAbm8t
dW5pZnkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktp
dENvb2tpZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2Vi
S2l0Q29va2llTWFuYWdlci5jcHAKaW5kZXggMWVlNzNlYmMwZWEwMzZmODZiM2ZlOTQ0MTQ5MDcy
ZTZhYzRkYzc2Ny4uZGE5OTA2NTRlNDIyZGZmNGRhZTMxMDM1MTBhYTE0ZjY5OTgwMDE3ZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0Q29va2llTWFu
YWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0Q29v
a2llTWFuYWdlci5jcHAKQEAgLTI1LDYgKzI1LDcgQEAKICNpbmNsdWRlICJXZWJDb29raWVNYW5h
Z2VyUHJveHkuaCIKICNpbmNsdWRlICJXZWJLaXRDb29raWVNYW5hZ2VyUHJpdmF0ZS5oIgogI2lu
Y2x1ZGUgIldlYktpdEVudW1UeXBlcy5oIgorI2luY2x1ZGUgIldlYktpdEluaXRpYWxpemUuaCIK
ICNpbmNsdWRlICJXZWJLaXRXZWJzaXRlRGF0YU1hbmFnZXJQcml2YXRlLmgiCiAjaW5jbHVkZSAi
V2ViS2l0V2Vic2l0ZURhdGFQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2Vic2l0ZURhdGFSZWNvcmQu
aCIKQEAgLTEyMCw2ICsxMjEsOCBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfY29va2llX21hbmFnZXJf
Y2xhc3NfaW5pdChXZWJLaXRDb29raWVNYW5hZ2VyQ2xhc3MqIGZpbmRDbGFzcwogewogICAgIEdP
YmplY3RDbGFzcyogZ09iamVjdENsYXNzID0gR19PQkpFQ1RfQ0xBU1MoZmluZENsYXNzKTsKIAor
ICAgIHdlYmtpdEluaXRpYWxpemUoKTsKKwogICAgIC8qKgogICAgICAqIFdlYktpdENvb2tpZU1h
bmFnZXI6OmNoYW5nZWQ6CiAgICAgICogQGNvb2tpZV9tYW5hZ2VyOiB0aGUgI1dlYktpdENvb2tp
ZU1hbmFnZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dl
YktpdEZhdmljb25EYXRhYmFzZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xp
Yi9XZWJLaXRGYXZpY29uRGF0YWJhc2UuY3BwCmluZGV4IDM2Y2MyODJkNzhiN2E4YzNiNjM4ZDNh
NTAwMWRiMzQxOGMwMDhmOGUuLjZmYWM4OTQ4NWU5OTIxMmRiMGY4MTA2MGZkNzlhOWI3NTlmZTBk
NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdEZh
dmljb25EYXRhYmFzZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIv
V2ViS2l0RmF2aWNvbkRhdGFiYXNlLmNwcApAQCAtMjIsNiArMjIsNyBAQAogCiAjaW5jbHVkZSAi
SWNvbkRhdGFiYXNlLmgiCiAjaW5jbHVkZSAiV2ViS2l0RmF2aWNvbkRhdGFiYXNlUHJpdmF0ZS5o
IgorI2luY2x1ZGUgIldlYktpdEluaXRpYWxpemUuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0ltYWdl
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JbnRTaXplLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZWZQ
dHJDYWlyby5oPgpAQCAtOTUsNiArOTYsOCBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfZmF2aWNvbl9k
YXRhYmFzZV9jbGFzc19pbml0KFdlYktpdEZhdmljb25EYXRhYmFzZUNsYXNzKiBmYXZpYwogICAg
ICAgICBHX1RZUEVfTk9ORSwgMiwKICAgICAgICAgR19UWVBFX1NUUklORywKICAgICAgICAgR19U
WVBFX1NUUklORyk7CisKKyAgICB3ZWJraXRJbml0aWFsaXplKCk7CiB9CiAKIFdlYktpdEZhdmlj
b25EYXRhYmFzZSogd2Via2l0RmF2aWNvbkRhdGFiYXNlQ3JlYXRlKCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdEdlb2xvY2F0aW9uTWFuYWdlci5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRHZW9sb2NhdGlvbk1h
bmFnZXIuY3BwCmluZGV4IGQwY2I0YzBiZTZhNmQzOTBkNjdlOTNjZjhkN2Q2YWQ1NjAwYjU3ZGMu
LjUxNTVkMTMwZDViZGYzOGM0OGVlM2IwNTExOWQ4OGMyNzc5MTRhNWIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdEdlb2xvY2F0aW9uTWFuYWdlci5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0R2VvbG9jYXRp
b25NYW5hZ2VyLmNwcApAQCAtMjQsNiArMjQsNyBAQAogI2luY2x1ZGUgIkdlb2NsdWVHZW9sb2Nh
dGlvblByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5oIgogI2lu
Y2x1ZGUgIldlYktpdEdlb2xvY2F0aW9uTWFuYWdlclByaXZhdGUuaCIKKyNpbmNsdWRlICJXZWJL
aXRJbml0aWFsaXplLmgiCiAjaW5jbHVkZSA8Z2xpYi9naTE4bi1saWIuaD4KICNpbmNsdWRlIDx3
dGYvV2FsbFRpbWUuaD4KICNpbmNsdWRlIDx3dGYvZ2xpYi9XVEZHVHlwZS5oPgpAQCAtMzM0LDYg
KzMzNSw4IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF9nZW9sb2NhdGlvbl9tYW5hZ2VyX2NsYXNzX2lu
aXQoV2ViS2l0R2VvbG9jYXRpb25NYW5hZ2VyQ2xhc3MqCiAgICAgR09iamVjdENsYXNzKiBnT2Jq
ZWN0Q2xhc3MgPSBHX09CSkVDVF9DTEFTUyhnZW9sb2NhdGlvbk1hbmFnZXJDbGFzcyk7CiAgICAg
Z09iamVjdENsYXNzLT5nZXRfcHJvcGVydHkgPSB3ZWJraXRHZW9sb2NhdGlvbk1hbmFnZXJHZXRQ
cm9wZXJ0eTsKIAorICAgIHdlYmtpdEluaXRpYWxpemUoKTsKKwogICAgIC8qKgogICAgICAqIFdl
YktpdEdlb2xvY2F0aW9uTWFuYWdlcjplbmFibGUtaGlnaC1hY2N1cmFjeToKICAgICAgKgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0SW5pdGlhbGl6
ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRJbml0aWFsaXpl
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4wZjk0MDI0ZGQxODIxYzczZmM1MjcwNzllMGFhOThhOTlmOTczMGRj
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2Vi
S2l0SW5pdGlhbGl6ZS5jcHAKQEAgLTAsMCArMSw3MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiV2ViS2l0SW5pdGlhbGl6ZS5oIgorCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvUmVtb3Rl
SW5zcGVjdG9yU2VydmVyLmg+CisjaW5jbHVkZSA8V2ViS2l0L1NoYXJlZC9XZWJLaXQySW5pdGlh
bGl6ZS5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dVbmlxdWVQdHIuaD4KKworbmFtZXNwYWNlIFdl
YktpdCB7CisKKyNpZiAhUExBVEZPUk0oQ09DT0EpCisKKyNpZiBFTkFCTEUoUkVNT1RFX0lOU1BF
Q1RPUikKK3N0YXRpYyB2b2lkIGluaXRpYWxpemVSZW1vdGVJbnNwZWN0b3JTZXJ2ZXIoY29uc3Qg
Y2hhciogYWRkcmVzcykKK3sKKyAgICBpZiAoSW5zcGVjdG9yOjpSZW1vdGVJbnNwZWN0b3JTZXJ2
ZXI6OnNpbmdsZXRvbigpLmlzUnVubmluZygpKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAo
IWFkZHJlc3NbMF0pCisgICAgICAgIHJldHVybjsKKworICAgIEdVbmlxdWVQdHI8Y2hhcj4gaW5z
cGVjdG9yQWRkcmVzcyhnX3N0cmR1cChhZGRyZXNzKSk7CisgICAgY2hhciogcG9ydFB0ciA9IGdf
c3RycnN0cihpbnNwZWN0b3JBZGRyZXNzLmdldCgpLCAiOiIpOworICAgIGlmICghcG9ydFB0cikK
KyAgICAgICAgcmV0dXJuOworCisgICAgKnBvcnRQdHIgPSAnXDAnOworICAgIHBvcnRQdHIrKzsK
KyAgICBndWludDY0IHBvcnQgPSBnX2FzY2lpX3N0cnRvdWxsKHBvcnRQdHIsIG51bGxwdHIsIDEw
KTsKKyAgICBpZiAoIXBvcnQpCisgICAgICAgIHJldHVybjsKKworICAgIEluc3BlY3Rvcjo6UmVt
b3RlSW5zcGVjdG9yU2VydmVyOjpzaW5nbGV0b24oKS5zdGFydChpbnNwZWN0b3JBZGRyZXNzLmdl
dCgpLCBwb3J0KTsKK30KKyNlbmRpZgorCit2b2lkIHdlYmtpdEluaXRpYWxpemUoKQoreworICAg
IEluaXRpYWxpemVXZWJLaXQyKCk7CisKKyNpZiBFTkFCTEUoUkVNT1RFX0lOU1BFQ1RPUikKKyAg
ICBpZiAoY29uc3QgY2hhciogYWRkcmVzcyA9IGdfZ2V0ZW52KCJXRUJLSVRfSU5TUEVDVE9SX1NF
UlZFUiIpKQorICAgICAgICBpbml0aWFsaXplUmVtb3RlSW5zcGVjdG9yU2VydmVyKGFkZHJlc3Mp
OworI2VuZGlmCit9CisKKyNlbmRpZiAvLyAhUExBVEZPUk0oQ09DT0EpCisKK30gLy8gbmFtZXNw
YWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIv
V2ViS2l0SW5pdGlhbGl6ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2Vi
S2l0SW5pdGlhbGl6ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA5ZWI5ZTIwNDY5YjI5YjI5NDI2NDhkNDhjMzA2
ZTg0NDczNGViZmUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvZ2xpYi9XZWJLaXRJbml0aWFsaXplLmgKQEAgLTAsMCArMSwzMiBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworbmFt
ZXNwYWNlIFdlYktpdCB7CisKK3ZvaWQgd2Via2l0SW5pdGlhbGl6ZSgpOworCit9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0SW5wdXRNZXRob2RD
b250ZXh0LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdElucHV0
TWV0aG9kQ29udGV4dC5jcHAKaW5kZXggOWMzMDJlMjFhYzFiMjQyMGRmMWNlMzZhYTJkNTQ5MjJi
NjcxNjE0MC4uZjdiMGJlMzg3NTY4ZWE1ODMwMTk4MDMwNzdhNDNjZmU4OGE3ODE5NCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0SW5wdXRNZXRob2RD
b250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRJ
bnB1dE1ldGhvZENvbnRleHQuY3BwCkBAIC0yMSw2ICsyMSw3IEBACiAjaW5jbHVkZSAiV2ViS2l0
SW5wdXRNZXRob2RDb250ZXh0LmgiCiAKICNpbmNsdWRlICJXZWJLaXRFbnVtVHlwZXMuaCIKKyNp
bmNsdWRlICJXZWJLaXRJbml0aWFsaXplLmgiCiAjaW5jbHVkZSAiV2ViS2l0SW5wdXRNZXRob2RD
b250ZXh0UHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYktpdFdlYlZpZXcuaCIKICNpbmNsdWRlIDxn
bGliL2dpMThuLWxpYi5oPgpAQCAtMjA3LDYgKzIwOCw4IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF9p
bnB1dF9tZXRob2RfY29udGV4dF9jbGFzc19pbml0KFdlYktpdElucHV0TWV0aG9kQ29udGV4dENs
YXNzCiAgICAgZ09iamVjdENsYXNzLT5zZXRfcHJvcGVydHkgPSB3ZWJraXRJbnB1dE1ldGhvZENv
bnRleHRTZXRQcm9wZXJ0eTsKICAgICBnT2JqZWN0Q2xhc3MtPmdldF9wcm9wZXJ0eSA9IHdlYmtp
dElucHV0TWV0aG9kQ29udGV4dEdldFByb3BlcnR5OwogCisgICAgd2Via2l0SW5pdGlhbGl6ZSgp
OworCiAgICAgLyoqCiAgICAgICogV2ViS2l0SW5wdXRNZXRob2RDb250ZXh0OjppbnB1dC1wdXJw
b3NlOgogICAgICAqCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xp
Yi9XZWJLaXRTZXR0aW5ncy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9X
ZWJLaXRTZXR0aW5ncy5jcHAKaW5kZXggMTA4Mzk1M2Y1ZDFkN2ExZGMwYzAzYWM1MjYwNzU0ZWI0
Mzg2MGYxOC4uMDBkN2U1ZDQxNGVmOTY2ZTBiMTYwNGNiZjkzYzVmZDBhZDE2MTFlYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0U2V0dGluZ3MuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFNldHRpbmdzLmNw
cApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIldlYktpdFNldHRpbmdzLmgiCiAKICNpbmNs
dWRlICJXZWJLaXRFbnVtVHlwZXMuaCIKKyNpbmNsdWRlICJXZWJLaXRJbml0aWFsaXplLmgiCiAj
aW5jbHVkZSAiV2ViS2l0U2V0dGluZ3NQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViUGFnZVByb3h5
LmgiCiAjaW5jbHVkZSAiV2ViUHJlZmVyZW5jZXMuaCIKQEAgLTYwNiw2ICs2MDcsOCBAQCBzdGF0
aWMgdm9pZCB3ZWJLaXRTZXR0aW5nc0dldFByb3BlcnR5KEdPYmplY3QqIG9iamVjdCwgZ3VpbnQg
cHJvcElkLCBHVmFsdWUqIHZhbAogCiBzdGF0aWMgdm9pZCB3ZWJraXRfc2V0dGluZ3NfY2xhc3Nf
aW5pdChXZWJLaXRTZXR0aW5nc0NsYXNzKiBrbGFzcykKIHsKKyAgICB3ZWJraXRJbml0aWFsaXpl
KCk7CisKICAgICBHT2JqZWN0Q2xhc3MqIGdPYmplY3RDbGFzcyA9IEdfT0JKRUNUX0NMQVNTKGts
YXNzKTsKICAgICBnT2JqZWN0Q2xhc3MtPmNvbnN0cnVjdGVkID0gd2ViS2l0U2V0dGluZ3NDb25z
dHJ1Y3RlZDsKICAgICBnT2JqZWN0Q2xhc3MtPmRpc3Bvc2UgPSB3ZWJLaXRTZXR0aW5nc0Rpc3Bv
c2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRV
c2VyQ29udGVudEZpbHRlclN0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9n
bGliL1dlYktpdFVzZXJDb250ZW50RmlsdGVyU3RvcmUuY3BwCmluZGV4IGM2ZWJlOTk3ZjgwZTYw
NWM3NDE1MTlmNWU3NWZiZTAwZjhmYWI1MGYuLmJkNmZmNjNjN2RiYmZkY2U5MDcwYjlkOTFhZWI4
MDVjNzc2ZmMwYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGli
L1dlYktpdFVzZXJDb250ZW50RmlsdGVyU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9nbGliL1dlYktpdFVzZXJDb250ZW50RmlsdGVyU3RvcmUuY3BwCkBAIC0yOSw2
ICsyOSw3IEBACiAjaW5jbHVkZSAiQVBJQ29udGVudFJ1bGVMaXN0LmgiCiAjaW5jbHVkZSAiQVBJ
Q29udGVudFJ1bGVMaXN0U3RvcmUuaCIKICNpbmNsdWRlICJXZWJLaXRFcnJvci5oIgorI2luY2x1
ZGUgIldlYktpdEluaXRpYWxpemUuaCIKICNpbmNsdWRlICJXZWJLaXRVc2VyQ29udGVudC5oIgog
I2luY2x1ZGUgIldlYktpdFVzZXJDb250ZW50UHJpdmF0ZS5oIgogI2luY2x1ZGUgPFdlYkNvcmUv
Q29udGVudEV4dGVuc2lvbkVycm9yLmg+CkBAIC00MCw2ICs0MSw4IEBACiAjaW5jbHVkZSA8d3Rm
L2dsaWIvR1VuaXF1ZVB0ci5oPgogI2luY2x1ZGUgPHd0Zi9nbGliL1dURkdUeXBlLmg+CiAKK3Vz
aW5nIG5hbWVzcGFjZSBXZWJLaXQ7CisKIC8qKgogICogU0VDVElPTjogV2ViS2l0VXNlckNvbnRl
bnRGaWx0ZXJTdG9yZQogICogQFNob3J0X2Rlc2NyaXB0aW9uOiBIYW5kbGVzIHN0b3JhZ2Ugb2Yg
dXNlciBjb250ZW50IGZpbHRlcnMgb24gZGlzay4KQEAgLTExOCw2ICsxMjEsOCBAQCBzdGF0aWMg
dm9pZCB3ZWJraXRfdXNlcl9jb250ZW50X2ZpbHRlcl9zdG9yZV9jbGFzc19pbml0KFdlYktpdFVz
ZXJDb250ZW50RmlsdGVyUwogewogICAgIEdPYmplY3RDbGFzcyogZ09iamVjdENsYXNzID0gR19P
QkpFQ1RfQ0xBU1Moc3RvcmVDbGFzcyk7CiAKKyAgICB3ZWJraXRJbml0aWFsaXplKCk7CisKICAg
ICBnT2JqZWN0Q2xhc3MtPmdldF9wcm9wZXJ0eSA9IHdlYmtpdFVzZXJDb250ZW50RmlsdGVyU3Rv
cmVHZXRQcm9wZXJ0eTsKICAgICBnT2JqZWN0Q2xhc3MtPnNldF9wcm9wZXJ0eSA9IHdlYmtpdFVz
ZXJDb250ZW50RmlsdGVyU3RvcmVTZXRQcm9wZXJ0eTsKICAgICBnT2JqZWN0Q2xhc3MtPmNvbnN0
cnVjdGVkID0gd2Via2l0VXNlckNvbnRlbnRGaWx0ZXJTdG9yZUNvbnN0cnVjdGVkOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VXNlckNvbnRlbnRN
YW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVzZXJD
b250ZW50TWFuYWdlci5jcHAKaW5kZXggZGExMjllM2I4YjUzNzAxNDZjNTJkYzI4NGE1ZmQzYjg2
Mjk0MzYwOS4uZmMyZTY0MzY0MTgxZWFhMmZlN2EyODgzYjgxNTI4ZTJhY2NhOWMwNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VXNlckNvbnRlbnRN
YW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRV
c2VyQ29udGVudE1hbmFnZXIuY3BwCkBAIC0yMiw2ICsyMiw3IEBACiAKICNpbmNsdWRlICJBUElT
ZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIKICNpbmNsdWRlICJJbmplY3RVc2VyU2NyaXB0SW1tZWRp
YXRlbHkuaCIKKyNpbmNsdWRlICJXZWJLaXRJbml0aWFsaXplLmgiCiAjaW5jbHVkZSAiV2ViS2l0
SmF2YXNjcmlwdFJlc3VsdFByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJLaXRVc2VyQ29udGVudE1h
bmFnZXJQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0VXNlckNvbnRlbnRQcml2YXRlLmgiCkBA
IC04MCw2ICs4MSw4IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF91c2VyX2NvbnRlbnRfbWFuYWdlcl9j
bGFzc19pbml0KFdlYktpdFVzZXJDb250ZW50TWFuYWdlckNsYXNzCiB7CiAgICAgR09iamVjdENs
YXNzKiBnT2JqZWN0Q2xhc3MgPSBHX09CSkVDVF9DTEFTUyhrbGFzcyk7CiAKKyAgICB3ZWJraXRJ
bml0aWFsaXplKCk7CisKICAgICAvKioKICAgICAgKiBXZWJLaXRVc2VyQ29udGVudE1hbmFnZXI6
OnNjcmlwdC1tZXNzYWdlLXJlY2VpdmVkOgogICAgICAqIEBtYW5hZ2VyOiB0aGUgI1dlYktpdFVz
ZXJDb250ZW50TWFuYWdlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L2dsaWIvV2ViS2l0V2ViQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Z2xpYi9XZWJLaXRXZWJDb250ZXh0LmNwcAppbmRleCA4ZGU3MjJkNDViYmJhZGQ1NGQyMzlmMmUy
NzFkZTE2Yzk0OTBkNWRiLi4yYjMxMDFmNTc0MWJmNjA0N2VjMDMyMTVhNTkzOWMxODUzNWQ0Mjg5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJD
b250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRX
ZWJDb250ZXh0LmNwcApAQCAtMzIsMTIgKzMyLDEyIEBACiAjaW5jbHVkZSAiVGV4dENoZWNrZXJT
dGF0ZS5oIgogI2luY2x1ZGUgIldlYkF1dG9tYXRpb25TZXNzaW9uLmgiCiAjaW5jbHVkZSAiV2Vi
Q2VydGlmaWNhdGVJbmZvLmgiCi0jaW5jbHVkZSAiV2ViS2l0MkluaXRpYWxpemUuaCIKICNpbmNs
dWRlICJXZWJLaXRBdXRvbWF0aW9uU2Vzc2lvblByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJLaXRE
b3dubG9hZENsaWVudC5oIgogI2luY2x1ZGUgIldlYktpdERvd25sb2FkUHJpdmF0ZS5oIgogI2lu
Y2x1ZGUgIldlYktpdEZhdmljb25EYXRhYmFzZVByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJLaXRH
ZW9sb2NhdGlvbk1hbmFnZXJQcml2YXRlLmgiCisjaW5jbHVkZSAiV2ViS2l0SW5pdGlhbGl6ZS5o
IgogI2luY2x1ZGUgIldlYktpdEluamVjdGVkQnVuZGxlQ2xpZW50LmgiCiAjaW5jbHVkZSAiV2Vi
S2l0TmV0d29ya1Byb3h5U2V0dGluZ3NQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0Tm90aWZp
Y2F0aW9uUHJvdmlkZXIuaCIKQEAgLTQ2OCw3ICs0NjgsNyBAQCBzdGF0aWMgdm9pZCB3ZWJraXRf
d2ViX2NvbnRleHRfY2xhc3NfaW5pdChXZWJLaXRXZWJDb250ZXh0Q2xhc3MqIHdlYkNvbnRleHRD
bGFzcwogICAgIGJpbmR0ZXh0ZG9tYWluKEdFVFRFWFRfUEFDS0FHRSwgTE9DQUxFRElSKTsKICAg
ICBiaW5kX3RleHRkb21haW5fY29kZXNldChHRVRURVhUX1BBQ0tBR0UsICJVVEYtOCIpOwogCi0g
ICAgSW5pdGlhbGl6ZVdlYktpdDIoKTsKKyAgICB3ZWJraXRJbml0aWFsaXplKCk7CiAKICAgICBn
T2JqZWN0Q2xhc3MtPmdldF9wcm9wZXJ0eSA9IHdlYmtpdFdlYkNvbnRleHRHZXRQcm9wZXJ0eTsK
ICAgICBnT2JqZWN0Q2xhc3MtPnNldF9wcm9wZXJ0eSA9IHdlYmtpdFdlYkNvbnRleHRTZXRQcm9w
ZXJ0eTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktp
dFdlYnNpdGVEYXRhTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xp
Yi9XZWJLaXRXZWJzaXRlRGF0YU1hbmFnZXIuY3BwCmluZGV4IDEzYjBmZTIwNzczZGE1MWZiMmE2
N2UyMjY4ZjIyZjdmOWU3MDI1YTAuLjZlMmFlYmQ5MzI1NzQ1YzQ4YmI3ZTE5ZTdkZDFkNmZkNjIx
YjgyMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktp
dFdlYnNpdGVEYXRhTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L2dsaWIvV2ViS2l0V2Vic2l0ZURhdGFNYW5hZ2VyLmNwcApAQCAtMjEsNiArMjEsNyBAQAogI2lu
Y2x1ZGUgIldlYktpdFdlYnNpdGVEYXRhTWFuYWdlci5oIgogCiAjaW5jbHVkZSAiV2ViS2l0Q29v
a2llTWFuYWdlclByaXZhdGUuaCIKKyNpbmNsdWRlICJXZWJLaXRJbml0aWFsaXplLmgiCiAjaW5j
bHVkZSAiV2ViS2l0UHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYktpdFdlYnNpdGVEYXRhTWFuYWdl
clByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJLaXRXZWJzaXRlRGF0YVByaXZhdGUuaCIKQEAgLTI0
Niw2ICsyNDcsOCBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfd2Vic2l0ZV9kYXRhX21hbmFnZXJfY2xh
c3NfaW5pdChXZWJLaXRXZWJzaXRlRGF0YU1hbmFnZXJDbGFzcwogewogICAgIEdPYmplY3RDbGFz
cyogZ09iamVjdENsYXNzID0gR19PQkpFQ1RfQ0xBU1MoZmluZENsYXNzKTsKIAorICAgIHdlYmtp
dEluaXRpYWxpemUoKTsKKwogICAgIGdPYmplY3RDbGFzcy0+Z2V0X3Byb3BlcnR5ID0gd2Via2l0
V2Vic2l0ZURhdGFNYW5hZ2VyR2V0UHJvcGVydHk7CiAgICAgZ09iamVjdENsYXNzLT5zZXRfcHJv
cGVydHkgPSB3ZWJraXRXZWJzaXRlRGF0YU1hbmFnZXJTZXRQcm9wZXJ0eTsKICAgICBnT2JqZWN0
Q2xhc3MtPmNvbnN0cnVjdGVkID0gd2Via2l0V2Vic2l0ZURhdGFNYW5hZ2VyQ29uc3RydWN0ZWQ7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZp
ZXdCYXNlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmll
d0Jhc2UuY3BwCmluZGV4IDY2ZDc0N2E0NDM4NmI3MzE3YWYyOWUwNjcwZDU3YTRlYWU0MWYxNTEu
LjUwN2FkNWE1NTZkYzI5OTQ3YzBjMzI0M2ViMThiZTg0MDdlYTNmYmEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld0Jhc2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld0Jhc2UuY3BwCkBA
IC00Niw2ICs0Niw3IEBACiAjaW5jbHVkZSAiV2ViSW5zcGVjdG9yUHJveHkuaCIKICNpbmNsdWRl
ICJXZWJLaXQySW5pdGlhbGl6ZS5oIgogI2luY2x1ZGUgIldlYktpdEVtb2ppQ2hvb3Nlci5oIgor
I2luY2x1ZGUgIldlYktpdEluaXRpYWxpemUuaCIKICNpbmNsdWRlICJXZWJLaXRJbnB1dE1ldGhv
ZENvbnRleHRJbXBsR3RrLmgiCiAjaW5jbHVkZSAiV2ViS2l0V2ViVmlld0FjY2Vzc2libGUuaCIK
ICNpbmNsdWRlICJXZWJLaXRXZWJWaWV3QmFzZUludGVybmFsLmgiCkBAIC0yMDI0LDkgKzIwMjUs
OSBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX3ZpZXdfYmFzZV9jbGFzc19pbml0KFdlYktpdFdl
YlZpZXdCYXNlQ2xhc3MqIHdlYmtpdFdlYlZpZQogI2VuZGlmCiAKICAgICAvLyBCZWZvcmUgY3Jl
YXRpbmcgYSBXZWJLaXRXZWJWaWV3QmFzZVByaXYgd2UgbmVlZCB0byBiZSBzdXJlIHRoYXQgV2Vi
S2l0IGlzIHN0YXJ0ZWQuCi0gICAgLy8gVXN1YWxseSBzdGFydGluZyBhIGNvbnRleHQgdHJpZ2dl
cnMgSW5pdGlhbGl6ZVdlYktpdDIsIGJ1dCBpbiBjYXNlCisgICAgLy8gVXN1YWxseSBzdGFydGlu
ZyBhIGNvbnRleHQgdHJpZ2dlcnMgd2Via2l0SW5pdGlhbGl6ZSwgYnV0IGluIGNhc2UKICAgICAv
LyB3ZSBjcmVhdGUgYSB2aWV3IHdpdGhvdXQgYXNraW5nIGJlZm9yZSBmb3IgYSBkZWZhdWx0X2Nv
bnRleHQgd2UgZ2V0IGEgY3Jhc2guCi0gICAgV2ViS2l0OjpJbml0aWFsaXplV2ViS2l0MigpOwor
ICAgIFdlYktpdDo6d2Via2l0SW5pdGlhbGl6ZSgpOwogCiAgICAgZ3RrX3dpZGdldF9jbGFzc19z
ZXRfY3NzX25hbWUod2lkZ2V0Q2xhc3MsICJ3ZWJraXR3ZWJ2aWV3Iik7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9nbGliL1dlYlByb2Nlc3NQb29sR0xpYi5jcHAgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9nbGliL1dlYlByb2Nlc3NQb29sR0xpYi5jcHAKaW5kZXgg
ZGVhYWJmN2M3YmRkMzA1N2RjODk2NGMzMzllZDUwYzIyNGIzZWY3Ny4uYmUxOTc5NmVkOTZkMDcw
NTQyOGYwODE5OTU4MDYyNTRlMmYyYWQzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvZ2xpYi9XZWJQcm9jZXNzUG9vbEdMaWIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2dsaWIvV2ViUHJvY2Vzc1Bvb2xHTGliLmNwcApAQCAtMzEsMTAgKzMxLDggQEAKICNp
bmNsdWRlICJMZWdhY3lHbG9iYWxTZXR0aW5ncy5oIgogI2luY2x1ZGUgIldlYk1lbW9yeVByZXNz
dXJlSGFuZGxlci5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCIK
LSNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9SZW1vdGVJbnNwZWN0b3JTZXJ2ZXIuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL1BsYXRmb3JtRGlzcGxheS5oPgogI2luY2x1ZGUgPHd0Zi9GaWxlU3lzdGVt
Lmg+Ci0jaW5jbHVkZSA8d3RmL2dsaWIvR1VuaXF1ZVB0ci5oPgogCiAjaWYgVVNFKEdTVFJFQU1F
UikKICNpbmNsdWRlIDxXZWJDb3JlL0dTdHJlYW1lckNvbW1vbi5oPgpAQCAtNTQsMzAgKzUyLDYg
QEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLSNpZiBFTkFCTEUoUkVNT1RFX0lOU1BFQ1RPUikK
LXN0YXRpYyB2b2lkIGluaXRpYWxpemVSZW1vdGVJbnNwZWN0b3JTZXJ2ZXIoY29uc3QgY2hhciog
YWRkcmVzcykKLXsKLSAgICBpZiAoSW5zcGVjdG9yOjpSZW1vdGVJbnNwZWN0b3JTZXJ2ZXI6OnNp
bmdsZXRvbigpLmlzUnVubmluZygpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBpZiAoIWFkZHJl
c3NbMF0pCi0gICAgICAgIHJldHVybjsKLQotICAgIEdVbmlxdWVQdHI8Y2hhcj4gaW5zcGVjdG9y
QWRkcmVzcyhnX3N0cmR1cChhZGRyZXNzKSk7Ci0gICAgY2hhciogcG9ydFB0ciA9IGdfc3RycnN0
cihpbnNwZWN0b3JBZGRyZXNzLmdldCgpLCAiOiIpOwotICAgIGlmICghcG9ydFB0cikKLSAgICAg
ICAgcmV0dXJuOwotCi0gICAgKnBvcnRQdHIgPSAnXDAnOwotICAgIHBvcnRQdHIrKzsKLSAgICBn
dWludDY0IHBvcnQgPSBnX2FzY2lpX3N0cnRvdWxsKHBvcnRQdHIsIG51bGxwdHIsIDEwKTsKLSAg
ICBpZiAoIXBvcnQpCi0gICAgICAgIHJldHVybjsKLQotICAgIEluc3BlY3Rvcjo6UmVtb3RlSW5z
cGVjdG9yU2VydmVyOjpzaW5nbGV0b24oKS5zdGFydChpbnNwZWN0b3JBZGRyZXNzLmdldCgpLCBw
b3J0KTsKLX0KLSNlbmRpZgotCiBzdGF0aWMgYm9vbCBtZW1vcnlQcmVzc3VyZU1vbml0b3JEaXNh
YmxlZCgpCiB7CiAgICAgc3RhdGljIGNvbnN0IGNoYXIqIGRpc2FibGVNZW1vcnlQcmVzc3VyZU1v
bml0b3IgPSBnZXRlbnYoIldFQktJVF9ESVNBQkxFX01FTU9SWV9QUkVTU1VSRV9NT05JVE9SIik7
CkBAIC05MiwxMSArNjYsNiBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxp
emUoKQogICAgIGlmIChjb25zdCBjaGFyKiBmb3JjZUNvbXBsZXhUZXh0ID0gZ2V0ZW52KCJXRUJL
SVRfRk9SQ0VfQ09NUExFWF9URVhUIikpCiAgICAgICAgIG1fYWx3YXlzVXNlc0NvbXBsZXhUZXh0
Q29kZVBhdGggPSAhc3RyY21wKGZvcmNlQ29tcGxleFRleHQsICIxIik7CiAKLSNpZiBFTkFCTEUo
UkVNT1RFX0lOU1BFQ1RPUikKLSAgICBpZiAoY29uc3QgY2hhciogYWRkcmVzcyA9IGdfZ2V0ZW52
KCJXRUJLSVRfSU5TUEVDVE9SX1NFUlZFUiIpKQotICAgICAgICBpbml0aWFsaXplUmVtb3RlSW5z
cGVjdG9yU2VydmVyKGFkZHJlc3MpOwotI2VuZGlmCi0KICAgICBpZiAoIW1lbW9yeVByZXNzdXJl
TW9uaXRvckRpc2FibGVkKCkpCiAgICAgICAgIGluc3RhbGxNZW1vcnlQcmVzc3VyZUhhbmRsZXIo
KTsKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>407983</attachid>
            <date>2020-09-04 09:32:51 -0700</date>
            <delta_ts>2020-09-04 10:10:39 -0700</delta_ts>
            <desc>patch</desc>
            <filename>bug-216120-20200904183107.patch</filename>
            <type>text/plain</type>
            <size>21227</size>
            <attacher name="Pablo Saavedra">psaavedra</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY2NTgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDI0YWMxMWNjZTYwNDk4MGMy
ZmUwMDIwZTZhYjc3MzJhNjQxYzQ5ZTkuLjIxYTg2NGE1NjkwMzM1ZjQwNzBhZDNiODA0ZmM1YmY5
ZTBlMDlhZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTUgQEAKKzIwMjAtMDktMDQgIFBhYmxvIFNh
YXZlZHJhICA8cHNhYXZlZHJhQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dMSUJdIFJlbW90ZUlu
c3BlY3RvclNlcnZlciBpcyBub3Qgc3RhcnRlZCBpZiBXZWJLaXRXZWJDb250ZXh0IGlzIG5vdCBj
cmVhdGVkIGFscmVhZHkgY3JlYXRlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjE2MTIwCisKKyAgICAgICAgQWRkZWQgYSBXZWJLaXQvVUlQcm9jZXNz
L0FQSS9nbGliL1dlYktpdEluaXRpYWxpemUgd2hhdCBpbXBsZW1lbnRzCisgICAgICAgIGl0cyBv
d24gd2Via2l0SW5pdGlhbGl6ZSgpIHRvIGVuc3VyZSB0aGUgY29ycmVjdCBpbml0aWFsaXphdGlv
bgorICAgICAgICBvZiBXZWJLaXQgZHVyaW5nIHRoZSBjbGFzcyBpbml0IG9mIHRoZSBtb3JlIHJl
bGV2YW50IG9iamVjdHMKKyAgICAgICAgZXhwb3NlZCBieSB0aGUgQVBJLgorCisgICAgICAgIFRo
ZSBSZW1vdGVJbnNwZWN0b3JTZXJ2ZXIgaW5pdGlhbGl6YXRpb24gaXMgbm90IGxvbmdlcgorICAg
ICAgICBhc29jaWF0ZWQgdG8gdGhlIGluaXRpYWxpemF0aW9uIG9mIHRoZSBXZWJQcm9jZXNzUG9v
bEdMaWIuCisKKyAgICAgICAgVGhlIHdlYmtpdEluaXRpYWxpemUoKSBleHRlbmRzIHRoZSBzaGFy
ZWQgSW5pdGlhbGl6ZVdlYktpdDIoKTsKKyAgICAgICAgYW5kIGFsc28gaW5jbHVkZXMgdGhlIGlu
aXRpYWxpemF0aW9uIG9mIHRoZSBSZW1vdGVJbnNwZWN0b3JTZXJ2ZXIKKyAgICAgICAgc28gdGhl
IGluaXRpYWxpemF0aW9uIG9mIHRoZSByZW1vdGUgaW5zcGVjdG9yIHNlcnZlciBjYW4gYmUgbm93
CisgICAgICAgIHRyaWdnZXJlZCBieSB0aGUgaW5pdGlhbGl6YXRpb24gb2YgbWFueSBvdGhlciBB
UEkgb2JqZWN0cyB0b286CisgICAgICAgIFdlYktpdENvb2tpZU1hbmFnZXIsIFdlYktpdEZhdmlj
b25EYXRhYmFzZSwKKyAgICAgICAgV2ViS2l0R2VvbG9jYXRpb25NYW5hZ2VyLCBXZWJLaXRJbnB1
dE1ldGhvZENvbnRleHQsIFdlYktpdFNldHRpbmdzLAorICAgICAgICBXZWJLaXRVc2VyQ29udGVu
dE1hbmFnZXIsIFdlYktpdFdlYkNvbnRleHQsIFdlYktpdFdlYnNpdGVEYXRhTWFuYWdlciwKKyAg
ICAgICAgV2ViS2l0VXNlckNvbnRlbnRGaWx0ZXJTdG9yZSwgV2ViS2l0V2ViVmlld0Jhc2UuCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTb3VyY2Vz
R1RLLnR4dDoKKyAgICAgICAgKiBTb3VyY2VzV1BFLnR4dDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL2dsaWIvV2ViS2l0Q29va2llTWFuYWdlci5jcHA6CisgICAgICAgICh3ZWJraXRfY29va2ll
X21hbmFnZXJfY2xhc3NfaW5pdCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9nbGliL1dlYktp
dEZhdmljb25EYXRhYmFzZS5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9nbGliL1dlYktp
dEdlb2xvY2F0aW9uTWFuYWdlci5jcHA6CisgICAgICAgICh3ZWJraXRfZ2VvbG9jYXRpb25fbWFu
YWdlcl9jbGFzc19pbml0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0SW5p
dGlhbGl6ZS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0Ojppbml0aWFsaXplUmVtb3RlSW5z
cGVjdG9yU2VydmVyKToKKyAgICAgICAgKFdlYktpdDo6d2Via2l0SW5pdGlhbGl6ZSk6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdEluaXRpYWxpemUuaDogQWRkZWQuCisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdElucHV0TWV0aG9kQ29udGV4dC5jcHA6Cisg
ICAgICAgICh3ZWJraXRfaW5wdXRfbWV0aG9kX2NvbnRleHRfY2xhc3NfaW5pdCk6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFNldHRpbmdzLmNwcDoKKyAgICAgICAgKHdlYmtp
dF9zZXR0aW5nc19jbGFzc19pbml0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2dsaWIvV2Vi
S2l0VXNlckNvbnRlbnRGaWx0ZXJTdG9yZS5jcHA6CisgICAgICAgICh3ZWJraXRfdXNlcl9jb250
ZW50X2ZpbHRlcl9zdG9yZV9jbGFzc19pbml0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2ds
aWIvV2ViS2l0VXNlckNvbnRlbnRNYW5hZ2VyLmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L2dsaWIvV2ViS2l0V2ViQ29udGV4dC5jcHA6CisgICAgICAgICh3ZWJraXRfd2ViX2NvbnRleHRf
Y2xhc3NfaW5pdCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYnNpdGVE
YXRhTWFuYWdlci5jcHA6CisgICAgICAgICh3ZWJraXRfd2Vic2l0ZV9kYXRhX21hbmFnZXJfY2xh
c3NfaW5pdCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld0Jhc2Uu
Y3BwOgorICAgICAgICAod2Via2l0X3dlYl92aWV3X2Jhc2VfY2xhc3NfaW5pdCk6CisgICAgICAg
ICogVUlQcm9jZXNzL2dsaWIvV2ViUHJvY2Vzc1Bvb2xHTGliLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZSk6CisgICAgICAgIChXZWJLaXQ6
OmluaXRpYWxpemVSZW1vdGVJbnNwZWN0b3JTZXJ2ZXIpOiBEZWxldGVkLgorCiAyMDIwLTA5LTAz
ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBb
R1RLXSBVbmV4cGVjdGVkIFVzZXItQWdlbnQgb24gcmVkaXJlY3QKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvU291cmNlc0dUSy50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNHVEsudHh0Cmlu
ZGV4IGZjODg2MWMyMjFhOGQxMGNhZDdlNWU2ZmExOGJlM2UzNjE5Y2YzMWIuLjMxZGMyMTc1NGYy
NTJkNmRmNTZlMTY5ZTgwMzIyMmEyNTBkZTg0OTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
U291cmNlc0dUSy50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzR1RLLnR4dApAQCAtMTQx
LDYgKzE0MSw3IEBAIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRGb3JtU3VibWlzc2lvblJlcXVl
c3QuY3BwIEBuby11bmlmeQogVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdEdlb2xvY2F0aW9uTWFu
YWdlci5jcHAgQG5vLXVuaWZ5CiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0R2VvbG9jYXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdC5jcHAgQG5vLXVuaWZ5CiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0
SWNvbkxvYWRpbmdDbGllbnQuY3BwIEBuby11bmlmeQorVUlQcm9jZXNzL0FQSS9nbGliL1dlYktp
dEluaXRpYWxpemUuY3BwIEBuby11bmlmeQogVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdEluamVj
dGVkQnVuZGxlQ2xpZW50LmNwcCBAbm8tdW5pZnkKIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRJ
bnB1dE1ldGhvZENvbnRleHQuY3BwIEBuby11bmlmeQogVUlQcm9jZXNzL0FQSS9nbGliL1dlYktp
dEluc3RhbGxNaXNzaW5nTWVkaWFQbHVnaW5zUGVybWlzc2lvblJlcXVlc3QuY3BwIEBuby11bmlm
eQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzV1BFLnR4dCBiL1NvdXJjZS9XZWJL
aXQvU291cmNlc1dQRS50eHQKaW5kZXggNmUwMWYwNDE0ZTNlNzI4YmQ2NDY3ZTgxYTIyMDcyM2Ex
MDU2ODVjNy4uM2MyOTlkZmQ3Mjc5MmNmMWI3OTlkZTY0ODY2MjZjODAzOWRkYmM4NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzV1BFLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1Nv
dXJjZXNXUEUudHh0CkBAIC0xMzIsNiArMTMyLDcgQEAgVUlQcm9jZXNzL0FQSS9nbGliL1dlYktp
dEZvcm1DbGllbnQuY3BwIEBuby11bmlmeQogVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdEZvcm1T
dWJtaXNzaW9uUmVxdWVzdC5jcHAgQG5vLXVuaWZ5CiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0
R2VvbG9jYXRpb25NYW5hZ2VyLmNwcCBAbm8tdW5pZnkKIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJL
aXRHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmNwcCBAbm8tdW5pZnkKK1VJUHJvY2Vzcy9B
UEkvZ2xpYi9XZWJLaXRJbml0aWFsaXplLmNwcCBAbm8tdW5pZnkKIFVJUHJvY2Vzcy9BUEkvZ2xp
Yi9XZWJLaXRJbmplY3RlZEJ1bmRsZUNsaWVudC5jcHAgQG5vLXVuaWZ5CiBVSVByb2Nlc3MvQVBJ
L2dsaWIvV2ViS2l0SW5wdXRNZXRob2RDb250ZXh0LmNwcCBAbm8tdW5pZnkKIFVJUHJvY2Vzcy9B
UEkvZ2xpYi9XZWJLaXRJbnN0YWxsTWlzc2luZ01lZGlhUGx1Z2luc1Blcm1pc3Npb25SZXF1ZXN0
LmNwcCBAbm8tdW5pZnkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9n
bGliL1dlYktpdENvb2tpZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L2dsaWIvV2ViS2l0Q29va2llTWFuYWdlci5jcHAKaW5kZXggMWVlNzNlYmMwZWEwMzZmODZiM2Zl
OTQ0MTQ5MDcyZTZhYzRkYzc2Ny4uZGE5OTA2NTRlNDIyZGZmNGRhZTMxMDM1MTBhYTE0ZjY5OTgw
MDE3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0
Q29va2llTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIv
V2ViS2l0Q29va2llTWFuYWdlci5jcHAKQEAgLTI1LDYgKzI1LDcgQEAKICNpbmNsdWRlICJXZWJD
b29raWVNYW5hZ2VyUHJveHkuaCIKICNpbmNsdWRlICJXZWJLaXRDb29raWVNYW5hZ2VyUHJpdmF0
ZS5oIgogI2luY2x1ZGUgIldlYktpdEVudW1UeXBlcy5oIgorI2luY2x1ZGUgIldlYktpdEluaXRp
YWxpemUuaCIKICNpbmNsdWRlICJXZWJLaXRXZWJzaXRlRGF0YU1hbmFnZXJQcml2YXRlLmgiCiAj
aW5jbHVkZSAiV2ViS2l0V2Vic2l0ZURhdGFQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2Vic2l0ZURh
dGFSZWNvcmQuaCIKQEAgLTEyMCw2ICsxMjEsOCBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfY29va2ll
X21hbmFnZXJfY2xhc3NfaW5pdChXZWJLaXRDb29raWVNYW5hZ2VyQ2xhc3MqIGZpbmRDbGFzcwog
ewogICAgIEdPYmplY3RDbGFzcyogZ09iamVjdENsYXNzID0gR19PQkpFQ1RfQ0xBU1MoZmluZENs
YXNzKTsKIAorICAgIHdlYmtpdEluaXRpYWxpemUoKTsKKwogICAgIC8qKgogICAgICAqIFdlYktp
dENvb2tpZU1hbmFnZXI6OmNoYW5nZWQ6CiAgICAgICogQGNvb2tpZV9tYW5hZ2VyOiB0aGUgI1dl
YktpdENvb2tpZU1hbmFnZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9nbGliL1dlYktpdEZhdmljb25EYXRhYmFzZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvZ2xpYi9XZWJLaXRGYXZpY29uRGF0YWJhc2UuY3BwCmluZGV4IDM2Y2MyODJkNzhiN2E4
YzNiNjM4ZDNhNTAwMWRiMzQxOGMwMDhmOGUuLjZmYWM4OTQ4NWU5OTIxMmRiMGY4MTA2MGZkNzlh
OWI3NTlmZTBkNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGli
L1dlYktpdEZhdmljb25EYXRhYmFzZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL2dsaWIvV2ViS2l0RmF2aWNvbkRhdGFiYXNlLmNwcApAQCAtMjIsNiArMjIsNyBAQAogCiAj
aW5jbHVkZSAiSWNvbkRhdGFiYXNlLmgiCiAjaW5jbHVkZSAiV2ViS2l0RmF2aWNvbkRhdGFiYXNl
UHJpdmF0ZS5oIgorI2luY2x1ZGUgIldlYktpdEluaXRpYWxpemUuaCIKICNpbmNsdWRlIDxXZWJD
b3JlL0ltYWdlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JbnRTaXplLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9SZWZQdHJDYWlyby5oPgpAQCAtOTUsNiArOTYsOCBAQCBzdGF0aWMgdm9pZCB3ZWJraXRf
ZmF2aWNvbl9kYXRhYmFzZV9jbGFzc19pbml0KFdlYktpdEZhdmljb25EYXRhYmFzZUNsYXNzKiBm
YXZpYwogICAgICAgICBHX1RZUEVfTk9ORSwgMiwKICAgICAgICAgR19UWVBFX1NUUklORywKICAg
ICAgICAgR19UWVBFX1NUUklORyk7CisKKyAgICB3ZWJraXRJbml0aWFsaXplKCk7CiB9CiAKIFdl
YktpdEZhdmljb25EYXRhYmFzZSogd2Via2l0RmF2aWNvbkRhdGFiYXNlQ3JlYXRlKCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdEdlb2xvY2F0aW9u
TWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRHZW9s
b2NhdGlvbk1hbmFnZXIuY3BwCmluZGV4IGQwY2I0YzBiZTZhNmQzOTBkNjdlOTNjZjhkN2Q2YWQ1
NjAwYjU3ZGMuLjUxNTVkMTMwZDViZGYzOGM0OGVlM2IwNTExOWQ4OGMyNzc5MTRhNWIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdEdlb2xvY2F0aW9u
TWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0
R2VvbG9jYXRpb25NYW5hZ2VyLmNwcApAQCAtMjQsNiArMjQsNyBAQAogI2luY2x1ZGUgIkdlb2Ns
dWVHZW9sb2NhdGlvblByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiV2ViR2VvbG9jYXRpb25Qb3NpdGlv
bi5oIgogI2luY2x1ZGUgIldlYktpdEdlb2xvY2F0aW9uTWFuYWdlclByaXZhdGUuaCIKKyNpbmNs
dWRlICJXZWJLaXRJbml0aWFsaXplLmgiCiAjaW5jbHVkZSA8Z2xpYi9naTE4bi1saWIuaD4KICNp
bmNsdWRlIDx3dGYvV2FsbFRpbWUuaD4KICNpbmNsdWRlIDx3dGYvZ2xpYi9XVEZHVHlwZS5oPgpA
QCAtMzM0LDYgKzMzNSw4IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF9nZW9sb2NhdGlvbl9tYW5hZ2Vy
X2NsYXNzX2luaXQoV2ViS2l0R2VvbG9jYXRpb25NYW5hZ2VyQ2xhc3MqCiAgICAgR09iamVjdENs
YXNzKiBnT2JqZWN0Q2xhc3MgPSBHX09CSkVDVF9DTEFTUyhnZW9sb2NhdGlvbk1hbmFnZXJDbGFz
cyk7CiAgICAgZ09iamVjdENsYXNzLT5nZXRfcHJvcGVydHkgPSB3ZWJraXRHZW9sb2NhdGlvbk1h
bmFnZXJHZXRQcm9wZXJ0eTsKIAorICAgIHdlYmtpdEluaXRpYWxpemUoKTsKKwogICAgIC8qKgog
ICAgICAqIFdlYktpdEdlb2xvY2F0aW9uTWFuYWdlcjplbmFibGUtaGlnaC1hY2N1cmFjeToKICAg
ICAgKgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0
SW5pdGlhbGl6ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRJ
bml0aWFsaXplLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wZjk0MDI0ZGQxODIxYzczZmM1MjcwNzllMGFhOThh
OTlmOTczMGRjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L2dsaWIvV2ViS2l0SW5pdGlhbGl6ZS5jcHAKQEAgLTAsMCArMSw3MyBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiV2ViS2l0SW5pdGlhbGl6ZS5oIgorCisjaW5jbHVkZSA8SmF2YVNjcmlwdENv
cmUvUmVtb3RlSW5zcGVjdG9yU2VydmVyLmg+CisjaW5jbHVkZSA8V2ViS2l0L1NoYXJlZC9XZWJL
aXQySW5pdGlhbGl6ZS5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dVbmlxdWVQdHIuaD4KKworbmFt
ZXNwYWNlIFdlYktpdCB7CisKKyNpZiAhUExBVEZPUk0oQ09DT0EpCisKKyNpZiBFTkFCTEUoUkVN
T1RFX0lOU1BFQ1RPUikKK3N0YXRpYyB2b2lkIGluaXRpYWxpemVSZW1vdGVJbnNwZWN0b3JTZXJ2
ZXIoY29uc3QgY2hhciogYWRkcmVzcykKK3sKKyAgICBpZiAoSW5zcGVjdG9yOjpSZW1vdGVJbnNw
ZWN0b3JTZXJ2ZXI6OnNpbmdsZXRvbigpLmlzUnVubmluZygpKQorICAgICAgICByZXR1cm47CisK
KyAgICBpZiAoIWFkZHJlc3NbMF0pCisgICAgICAgIHJldHVybjsKKworICAgIEdVbmlxdWVQdHI8
Y2hhcj4gaW5zcGVjdG9yQWRkcmVzcyhnX3N0cmR1cChhZGRyZXNzKSk7CisgICAgY2hhciogcG9y
dFB0ciA9IGdfc3RycnN0cihpbnNwZWN0b3JBZGRyZXNzLmdldCgpLCAiOiIpOworICAgIGlmICgh
cG9ydFB0cikKKyAgICAgICAgcmV0dXJuOworCisgICAgKnBvcnRQdHIgPSAnXDAnOworICAgIHBv
cnRQdHIrKzsKKyAgICBndWludDY0IHBvcnQgPSBnX2FzY2lpX3N0cnRvdWxsKHBvcnRQdHIsIG51
bGxwdHIsIDEwKTsKKyAgICBpZiAoIXBvcnQpCisgICAgICAgIHJldHVybjsKKworICAgIEluc3Bl
Y3Rvcjo6UmVtb3RlSW5zcGVjdG9yU2VydmVyOjpzaW5nbGV0b24oKS5zdGFydChpbnNwZWN0b3JB
ZGRyZXNzLmdldCgpLCBwb3J0KTsKK30KKyNlbmRpZgorCit2b2lkIHdlYmtpdEluaXRpYWxpemUo
KQoreworICAgIEluaXRpYWxpemVXZWJLaXQyKCk7CisKKyNpZiBFTkFCTEUoUkVNT1RFX0lOU1BF
Q1RPUikKKyAgICBpZiAoY29uc3QgY2hhciogYWRkcmVzcyA9IGdfZ2V0ZW52KCJXRUJLSVRfSU5T
UEVDVE9SX1NFUlZFUiIpKQorICAgICAgICBpbml0aWFsaXplUmVtb3RlSW5zcGVjdG9yU2VydmVy
KGFkZHJlc3MpOworI2VuZGlmCit9CisKKyNlbmRpZiAvLyAhUExBVEZPUk0oQ09DT0EpCisKK30g
Ly8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL2dsaWIvV2ViS2l0SW5pdGlhbGl6ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L2dsaWIvV2ViS2l0SW5pdGlhbGl6ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA5ZWI5ZTIwNDY5YjI5YjI5NDI2
NDhkNDhjMzA2ZTg0NDczNGViZmUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRJbml0aWFsaXplLmgKQEAgLTAsMCArMSwzMiBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9u
Y2UKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3ZvaWQgd2Via2l0SW5pdGlhbGl6ZSgpOworCit9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0SW5w
dXRNZXRob2RDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dl
YktpdElucHV0TWV0aG9kQ29udGV4dC5jcHAKaW5kZXggOWMzMDJlMjFhYzFiMjQyMGRmMWNlMzZh
YTJkNTQ5MjJiNjcxNjE0MC4uMDBhOGUyOTQwMjRmNjczNDg0ZTYwMGJkNzE5MDFkYmRhNTE0Y2E4
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0SW5w
dXRNZXRob2RDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xp
Yi9XZWJLaXRJbnB1dE1ldGhvZENvbnRleHQuY3BwCkBAIC0yMSw2ICsyMSw3IEBACiAjaW5jbHVk
ZSAiV2ViS2l0SW5wdXRNZXRob2RDb250ZXh0LmgiCiAKICNpbmNsdWRlICJXZWJLaXRFbnVtVHlw
ZXMuaCIKKyNpbmNsdWRlICJXZWJLaXRJbml0aWFsaXplLmgiCiAjaW5jbHVkZSAiV2ViS2l0SW5w
dXRNZXRob2RDb250ZXh0UHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYktpdFdlYlZpZXcuaCIKICNp
bmNsdWRlIDxnbGliL2dpMThuLWxpYi5oPgpAQCAtMjA3LDYgKzIwOCw4IEBAIHN0YXRpYyB2b2lk
IHdlYmtpdF9pbnB1dF9tZXRob2RfY29udGV4dF9jbGFzc19pbml0KFdlYktpdElucHV0TWV0aG9k
Q29udGV4dENsYXNzCiAgICAgZ09iamVjdENsYXNzLT5zZXRfcHJvcGVydHkgPSB3ZWJraXRJbnB1
dE1ldGhvZENvbnRleHRTZXRQcm9wZXJ0eTsKICAgICBnT2JqZWN0Q2xhc3MtPmdldF9wcm9wZXJ0
eSA9IHdlYmtpdElucHV0TWV0aG9kQ29udGV4dEdldFByb3BlcnR5OwogCisgICAgV2ViS2l0Ojp3
ZWJraXRJbml0aWFsaXplKCk7CisKICAgICAvKioKICAgICAgKiBXZWJLaXRJbnB1dE1ldGhvZENv
bnRleHQ6OmlucHV0LXB1cnBvc2U6CiAgICAgICoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFNldHRpbmdzLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9nbGliL1dlYktpdFNldHRpbmdzLmNwcAppbmRleCAxMDgzOTUzZjVkMWQ3YTFk
YzBjMDNhYzUyNjA3NTRlYjQzODYwZjE4Li4wMGQ3ZTVkNDE0ZWY5NjZlMGIxNjA0Y2JmOTNjNWZk
MGFkMTYxMWVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9X
ZWJLaXRTZXR0aW5ncy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIv
V2ViS2l0U2V0dGluZ3MuY3BwCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiV2ViS2l0U2V0
dGluZ3MuaCIKIAogI2luY2x1ZGUgIldlYktpdEVudW1UeXBlcy5oIgorI2luY2x1ZGUgIldlYktp
dEluaXRpYWxpemUuaCIKICNpbmNsdWRlICJXZWJLaXRTZXR0aW5nc1ByaXZhdGUuaCIKICNpbmNs
dWRlICJXZWJQYWdlUHJveHkuaCIKICNpbmNsdWRlICJXZWJQcmVmZXJlbmNlcy5oIgpAQCAtNjA2
LDYgKzYwNyw4IEBAIHN0YXRpYyB2b2lkIHdlYktpdFNldHRpbmdzR2V0UHJvcGVydHkoR09iamVj
dCogb2JqZWN0LCBndWludCBwcm9wSWQsIEdWYWx1ZSogdmFsCiAKIHN0YXRpYyB2b2lkIHdlYmtp
dF9zZXR0aW5nc19jbGFzc19pbml0KFdlYktpdFNldHRpbmdzQ2xhc3MqIGtsYXNzKQogeworICAg
IHdlYmtpdEluaXRpYWxpemUoKTsKKwogICAgIEdPYmplY3RDbGFzcyogZ09iamVjdENsYXNzID0g
R19PQkpFQ1RfQ0xBU1Moa2xhc3MpOwogICAgIGdPYmplY3RDbGFzcy0+Y29uc3RydWN0ZWQgPSB3
ZWJLaXRTZXR0aW5nc0NvbnN0cnVjdGVkOwogICAgIGdPYmplY3RDbGFzcy0+ZGlzcG9zZSA9IHdl
YktpdFNldHRpbmdzRGlzcG9zZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9nbGliL1dlYktpdFVzZXJDb250ZW50RmlsdGVyU3RvcmUuY3BwIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VXNlckNvbnRlbnRGaWx0ZXJTdG9yZS5jcHAKaW5k
ZXggYzZlYmU5OTdmODBlNjA1Yzc0MTUxOWY1ZTc1ZmJlMDBmOGZhYjUwZi4uYmQ2ZmY2M2M3ZGJi
ZmRjZTkwNzBiOWQ5MWFlYjgwNWM3NzZmYzBhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VXNlckNvbnRlbnRGaWx0ZXJTdG9yZS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VXNlckNvbnRlbnRGaWx0ZXJT
dG9yZS5jcHAKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJBUElDb250ZW50UnVsZUxpc3Qu
aCIKICNpbmNsdWRlICJBUElDb250ZW50UnVsZUxpc3RTdG9yZS5oIgogI2luY2x1ZGUgIldlYktp
dEVycm9yLmgiCisjaW5jbHVkZSAiV2ViS2l0SW5pdGlhbGl6ZS5oIgogI2luY2x1ZGUgIldlYktp
dFVzZXJDb250ZW50LmgiCiAjaW5jbHVkZSAiV2ViS2l0VXNlckNvbnRlbnRQcml2YXRlLmgiCiAj
aW5jbHVkZSA8V2ViQ29yZS9Db250ZW50RXh0ZW5zaW9uRXJyb3IuaD4KQEAgLTQwLDYgKzQxLDgg
QEAKICNpbmNsdWRlIDx3dGYvZ2xpYi9HVW5pcXVlUHRyLmg+CiAjaW5jbHVkZSA8d3RmL2dsaWIv
V1RGR1R5cGUuaD4KIAordXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKKwogLyoqCiAgKiBTRUNUSU9O
OiBXZWJLaXRVc2VyQ29udGVudEZpbHRlclN0b3JlCiAgKiBAU2hvcnRfZGVzY3JpcHRpb246IEhh
bmRsZXMgc3RvcmFnZSBvZiB1c2VyIGNvbnRlbnQgZmlsdGVycyBvbiBkaXNrLgpAQCAtMTE4LDYg
KzEyMSw4IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF91c2VyX2NvbnRlbnRfZmlsdGVyX3N0b3JlX2Ns
YXNzX2luaXQoV2ViS2l0VXNlckNvbnRlbnRGaWx0ZXJTCiB7CiAgICAgR09iamVjdENsYXNzKiBn
T2JqZWN0Q2xhc3MgPSBHX09CSkVDVF9DTEFTUyhzdG9yZUNsYXNzKTsKIAorICAgIHdlYmtpdElu
aXRpYWxpemUoKTsKKwogICAgIGdPYmplY3RDbGFzcy0+Z2V0X3Byb3BlcnR5ID0gd2Via2l0VXNl
ckNvbnRlbnRGaWx0ZXJTdG9yZUdldFByb3BlcnR5OwogICAgIGdPYmplY3RDbGFzcy0+c2V0X3By
b3BlcnR5ID0gd2Via2l0VXNlckNvbnRlbnRGaWx0ZXJTdG9yZVNldFByb3BlcnR5OwogICAgIGdP
YmplY3RDbGFzcy0+Y29uc3RydWN0ZWQgPSB3ZWJraXRVc2VyQ29udGVudEZpbHRlclN0b3JlQ29u
c3RydWN0ZWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9X
ZWJLaXRVc2VyQ29udGVudE1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L2dsaWIvV2ViS2l0VXNlckNvbnRlbnRNYW5hZ2VyLmNwcAppbmRleCBkYTEyOWUzYjhiNTM3MDE0
NmM1MmRjMjg0YTVmZDNiODYyOTQzNjA5Li5mYzJlNjQzNjQxODFlYWEyZmU3YTI4ODNiODE1Mjhl
MmFjY2E5YzA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9X
ZWJLaXRVc2VyQ29udGVudE1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9nbGliL1dlYktpdFVzZXJDb250ZW50TWFuYWdlci5jcHAKQEAgLTIyLDYgKzIyLDcgQEAK
IAogI2luY2x1ZGUgIkFQSVNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIgogI2luY2x1ZGUgIkluamVj
dFVzZXJTY3JpcHRJbW1lZGlhdGVseS5oIgorI2luY2x1ZGUgIldlYktpdEluaXRpYWxpemUuaCIK
ICNpbmNsdWRlICJXZWJLaXRKYXZhc2NyaXB0UmVzdWx0UHJpdmF0ZS5oIgogI2luY2x1ZGUgIldl
YktpdFVzZXJDb250ZW50TWFuYWdlclByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJLaXRVc2VyQ29u
dGVudFByaXZhdGUuaCIKQEAgLTgwLDYgKzgxLDggQEAgc3RhdGljIHZvaWQgd2Via2l0X3VzZXJf
Y29udGVudF9tYW5hZ2VyX2NsYXNzX2luaXQoV2ViS2l0VXNlckNvbnRlbnRNYW5hZ2VyQ2xhc3MK
IHsKICAgICBHT2JqZWN0Q2xhc3MqIGdPYmplY3RDbGFzcyA9IEdfT0JKRUNUX0NMQVNTKGtsYXNz
KTsKIAorICAgIHdlYmtpdEluaXRpYWxpemUoKTsKKwogICAgIC8qKgogICAgICAqIFdlYktpdFVz
ZXJDb250ZW50TWFuYWdlcjo6c2NyaXB0LW1lc3NhZ2UtcmVjZWl2ZWQ6CiAgICAgICogQG1hbmFn
ZXI6IHRoZSAjV2ViS2l0VXNlckNvbnRlbnRNYW5hZ2VyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYkNvbnRleHQuY3BwCmluZGV4IDhkZTcyMmQ0
NWJiYmFkZDU0ZDIzOWYyZTI3MWRlMTZjOTQ5MGQ1ZGIuLjJiMzEwMWY1NzQxYmY2MDQ3ZWMwMzIx
NWE1OTM5YzE4NTM1ZDQyODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9nbGliL1dlYktpdFdlYkNvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9nbGliL1dlYktpdFdlYkNvbnRleHQuY3BwCkBAIC0zMiwxMiArMzIsMTIgQEAKICNpbmNs
dWRlICJUZXh0Q2hlY2tlclN0YXRlLmgiCiAjaW5jbHVkZSAiV2ViQXV0b21hdGlvblNlc3Npb24u
aCIKICNpbmNsdWRlICJXZWJDZXJ0aWZpY2F0ZUluZm8uaCIKLSNpbmNsdWRlICJXZWJLaXQySW5p
dGlhbGl6ZS5oIgogI2luY2x1ZGUgIldlYktpdEF1dG9tYXRpb25TZXNzaW9uUHJpdmF0ZS5oIgog
I2luY2x1ZGUgIldlYktpdERvd25sb2FkQ2xpZW50LmgiCiAjaW5jbHVkZSAiV2ViS2l0RG93bmxv
YWRQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0RmF2aWNvbkRhdGFiYXNlUHJpdmF0ZS5oIgog
I2luY2x1ZGUgIldlYktpdEdlb2xvY2F0aW9uTWFuYWdlclByaXZhdGUuaCIKKyNpbmNsdWRlICJX
ZWJLaXRJbml0aWFsaXplLmgiCiAjaW5jbHVkZSAiV2ViS2l0SW5qZWN0ZWRCdW5kbGVDbGllbnQu
aCIKICNpbmNsdWRlICJXZWJLaXROZXR3b3JrUHJveHlTZXR0aW5nc1ByaXZhdGUuaCIKICNpbmNs
dWRlICJXZWJLaXROb3RpZmljYXRpb25Qcm92aWRlci5oIgpAQCAtNDY4LDcgKzQ2OCw3IEBAIHN0
YXRpYyB2b2lkIHdlYmtpdF93ZWJfY29udGV4dF9jbGFzc19pbml0KFdlYktpdFdlYkNvbnRleHRD
bGFzcyogd2ViQ29udGV4dENsYXNzCiAgICAgYmluZHRleHRkb21haW4oR0VUVEVYVF9QQUNLQUdF
LCBMT0NBTEVESVIpOwogICAgIGJpbmRfdGV4dGRvbWFpbl9jb2Rlc2V0KEdFVFRFWFRfUEFDS0FH
RSwgIlVURi04Iik7CiAKLSAgICBJbml0aWFsaXplV2ViS2l0MigpOworICAgIHdlYmtpdEluaXRp
YWxpemUoKTsKIAogICAgIGdPYmplY3RDbGFzcy0+Z2V0X3Byb3BlcnR5ID0gd2Via2l0V2ViQ29u
dGV4dEdldFByb3BlcnR5OwogICAgIGdPYmplY3RDbGFzcy0+c2V0X3Byb3BlcnR5ID0gd2Via2l0
V2ViQ29udGV4dFNldFByb3BlcnR5OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL2dsaWIvV2ViS2l0V2Vic2l0ZURhdGFNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYnNpdGVEYXRhTWFuYWdlci5jcHAKaW5kZXggMTNi
MGZlMjA3NzNkYTUxZmIyYTY3ZTIyNjhmMjJmN2Y5ZTcwMjVhMC4uNmUyYWViZDkzMjU3NDVjNDhi
YjdlMTllN2RkMWQ2ZmQ2MjFiODIxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL2dsaWIvV2ViS2l0V2Vic2l0ZURhdGFNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJzaXRlRGF0YU1hbmFnZXIuY3BwCkBAIC0y
MSw2ICsyMSw3IEBACiAjaW5jbHVkZSAiV2ViS2l0V2Vic2l0ZURhdGFNYW5hZ2VyLmgiCiAKICNp
bmNsdWRlICJXZWJLaXRDb29raWVNYW5hZ2VyUHJpdmF0ZS5oIgorI2luY2x1ZGUgIldlYktpdElu
aXRpYWxpemUuaCIKICNpbmNsdWRlICJXZWJLaXRQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0
V2Vic2l0ZURhdGFNYW5hZ2VyUHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYktpdFdlYnNpdGVEYXRh
UHJpdmF0ZS5oIgpAQCAtMjQ2LDYgKzI0Nyw4IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJzaXRl
X2RhdGFfbWFuYWdlcl9jbGFzc19pbml0KFdlYktpdFdlYnNpdGVEYXRhTWFuYWdlckNsYXNzCiB7
CiAgICAgR09iamVjdENsYXNzKiBnT2JqZWN0Q2xhc3MgPSBHX09CSkVDVF9DTEFTUyhmaW5kQ2xh
c3MpOwogCisgICAgd2Via2l0SW5pdGlhbGl6ZSgpOworCiAgICAgZ09iamVjdENsYXNzLT5nZXRf
cHJvcGVydHkgPSB3ZWJraXRXZWJzaXRlRGF0YU1hbmFnZXJHZXRQcm9wZXJ0eTsKICAgICBnT2Jq
ZWN0Q2xhc3MtPnNldF9wcm9wZXJ0eSA9IHdlYmtpdFdlYnNpdGVEYXRhTWFuYWdlclNldFByb3Bl
cnR5OwogICAgIGdPYmplY3RDbGFzcy0+Y29uc3RydWN0ZWQgPSB3ZWJraXRXZWJzaXRlRGF0YU1h
bmFnZXJDb25zdHJ1Y3RlZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9ndGsvV2ViS2l0V2ViVmlld0Jhc2UuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L2d0ay9XZWJLaXRXZWJWaWV3QmFzZS5jcHAKaW5kZXggNjZkNzQ3YTQ0Mzg2YjczMTdhZjI5ZTA2
NzBkNTdhNGVhZTQxZjE1MS4uNTA3YWQ1YTU1NmRjMjk5NDdjMGMzMjQzZWIxOGJlODQwN2VhM2Zi
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJW
aWV3QmFzZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRX
ZWJWaWV3QmFzZS5jcHAKQEAgLTQ2LDYgKzQ2LDcgQEAKICNpbmNsdWRlICJXZWJJbnNwZWN0b3JQ
cm94eS5oIgogI2luY2x1ZGUgIldlYktpdDJJbml0aWFsaXplLmgiCiAjaW5jbHVkZSAiV2ViS2l0
RW1vamlDaG9vc2VyLmgiCisjaW5jbHVkZSAiV2ViS2l0SW5pdGlhbGl6ZS5oIgogI2luY2x1ZGUg
IldlYktpdElucHV0TWV0aG9kQ29udGV4dEltcGxHdGsuaCIKICNpbmNsdWRlICJXZWJLaXRXZWJW
aWV3QWNjZXNzaWJsZS5oIgogI2luY2x1ZGUgIldlYktpdFdlYlZpZXdCYXNlSW50ZXJuYWwuaCIK
QEAgLTIwMjQsOSArMjAyNSw5IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfdmlld19iYXNlX2Ns
YXNzX2luaXQoV2ViS2l0V2ViVmlld0Jhc2VDbGFzcyogd2Via2l0V2ViVmllCiAjZW5kaWYKIAog
ICAgIC8vIEJlZm9yZSBjcmVhdGluZyBhIFdlYktpdFdlYlZpZXdCYXNlUHJpdiB3ZSBuZWVkIHRv
IGJlIHN1cmUgdGhhdCBXZWJLaXQgaXMgc3RhcnRlZC4KLSAgICAvLyBVc3VhbGx5IHN0YXJ0aW5n
IGEgY29udGV4dCB0cmlnZ2VycyBJbml0aWFsaXplV2ViS2l0MiwgYnV0IGluIGNhc2UKKyAgICAv
LyBVc3VhbGx5IHN0YXJ0aW5nIGEgY29udGV4dCB0cmlnZ2VycyB3ZWJraXRJbml0aWFsaXplLCBi
dXQgaW4gY2FzZQogICAgIC8vIHdlIGNyZWF0ZSBhIHZpZXcgd2l0aG91dCBhc2tpbmcgYmVmb3Jl
IGZvciBhIGRlZmF1bHRfY29udGV4dCB3ZSBnZXQgYSBjcmFzaC4KLSAgICBXZWJLaXQ6OkluaXRp
YWxpemVXZWJLaXQyKCk7CisgICAgV2ViS2l0Ojp3ZWJraXRJbml0aWFsaXplKCk7CiAKICAgICBn
dGtfd2lkZ2V0X2NsYXNzX3NldF9jc3NfbmFtZSh3aWRnZXRDbGFzcywgIndlYmtpdHdlYnZpZXci
KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2dsaWIvV2ViUHJvY2Vz
c1Bvb2xHTGliLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2dsaWIvV2ViUHJvY2Vzc1Bv
b2xHTGliLmNwcAppbmRleCBkZWFhYmY3YzdiZGQzMDU3ZGM4OTY0YzMzOWVkNTBjMjI0YjNlZjc3
Li5iZTE5Nzk2ZWQ5NmQwNzA1NDI4ZjA4MTk5NTgwNjI1NGUyZjJhZDM2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9nbGliL1dlYlByb2Nlc3NQb29sR0xpYi5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ2xpYi9XZWJQcm9jZXNzUG9vbEdMaWIuY3BwCkBAIC0z
MSwxMCArMzEsOCBAQAogI2luY2x1ZGUgIkxlZ2FjeUdsb2JhbFNldHRpbmdzLmgiCiAjaW5jbHVk
ZSAiV2ViTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycy5oIgotI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1JlbW90ZUluc3BlY3Rv
clNlcnZlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1EaXNwbGF5Lmg+CiAjaW5jbHVk
ZSA8d3RmL0ZpbGVTeXN0ZW0uaD4KLSNpbmNsdWRlIDx3dGYvZ2xpYi9HVW5pcXVlUHRyLmg+CiAK
ICNpZiBVU0UoR1NUUkVBTUVSKQogI2luY2x1ZGUgPFdlYkNvcmUvR1N0cmVhbWVyQ29tbW9uLmg+
CkBAIC01NCwzMCArNTIsNiBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotI2lmIEVOQUJMRShS
RU1PVEVfSU5TUEVDVE9SKQotc3RhdGljIHZvaWQgaW5pdGlhbGl6ZVJlbW90ZUluc3BlY3RvclNl
cnZlcihjb25zdCBjaGFyKiBhZGRyZXNzKQotewotICAgIGlmIChJbnNwZWN0b3I6OlJlbW90ZUlu
c3BlY3RvclNlcnZlcjo6c2luZ2xldG9uKCkuaXNSdW5uaW5nKCkpCi0gICAgICAgIHJldHVybjsK
LQotICAgIGlmICghYWRkcmVzc1swXSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgR1VuaXF1ZVB0
cjxjaGFyPiBpbnNwZWN0b3JBZGRyZXNzKGdfc3RyZHVwKGFkZHJlc3MpKTsKLSAgICBjaGFyKiBw
b3J0UHRyID0gZ19zdHJyc3RyKGluc3BlY3RvckFkZHJlc3MuZ2V0KCksICI6Iik7Ci0gICAgaWYg
KCFwb3J0UHRyKQotICAgICAgICByZXR1cm47Ci0KLSAgICAqcG9ydFB0ciA9ICdcMCc7Ci0gICAg
cG9ydFB0cisrOwotICAgIGd1aW50NjQgcG9ydCA9IGdfYXNjaWlfc3RydG91bGwocG9ydFB0ciwg
bnVsbHB0ciwgMTApOwotICAgIGlmICghcG9ydCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgSW5z
cGVjdG9yOjpSZW1vdGVJbnNwZWN0b3JTZXJ2ZXI6OnNpbmdsZXRvbigpLnN0YXJ0KGluc3BlY3Rv
ckFkZHJlc3MuZ2V0KCksIHBvcnQpOwotfQotI2VuZGlmCi0KIHN0YXRpYyBib29sIG1lbW9yeVBy
ZXNzdXJlTW9uaXRvckRpc2FibGVkKCkKIHsKICAgICBzdGF0aWMgY29uc3QgY2hhciogZGlzYWJs
ZU1lbW9yeVByZXNzdXJlTW9uaXRvciA9IGdldGVudigiV0VCS0lUX0RJU0FCTEVfTUVNT1JZX1BS
RVNTVVJFX01PTklUT1IiKTsKQEAgLTkyLDExICs2Niw2IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6
OnBsYXRmb3JtSW5pdGlhbGl6ZSgpCiAgICAgaWYgKGNvbnN0IGNoYXIqIGZvcmNlQ29tcGxleFRl
eHQgPSBnZXRlbnYoIldFQktJVF9GT1JDRV9DT01QTEVYX1RFWFQiKSkKICAgICAgICAgbV9hbHdh
eXNVc2VzQ29tcGxleFRleHRDb2RlUGF0aCA9ICFzdHJjbXAoZm9yY2VDb21wbGV4VGV4dCwgIjEi
KTsKIAotI2lmIEVOQUJMRShSRU1PVEVfSU5TUEVDVE9SKQotICAgIGlmIChjb25zdCBjaGFyKiBh
ZGRyZXNzID0gZ19nZXRlbnYoIldFQktJVF9JTlNQRUNUT1JfU0VSVkVSIikpCi0gICAgICAgIGlu
aXRpYWxpemVSZW1vdGVJbnNwZWN0b3JTZXJ2ZXIoYWRkcmVzcyk7Ci0jZW5kaWYKLQogICAgIGlm
ICghbWVtb3J5UHJlc3N1cmVNb25pdG9yRGlzYWJsZWQoKSkKICAgICAgICAgaW5zdGFsbE1lbW9y
eVByZXNzdXJlSGFuZGxlcigpOwogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>407990</attachid>
            <date>2020-09-04 10:11:54 -0700</date>
            <delta_ts>2020-09-07 03:36:01 -0700</delta_ts>
            <desc>patch</desc>
            <filename>bug-216120-20200904191011.patch</filename>
            <type>text/plain</type>
            <size>20566</size>
            <attacher name="Pablo Saavedra">psaavedra</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY2NTgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDI0YWMxMWNjZTYwNDk4MGMy
ZmUwMDIwZTZhYjc3MzJhNjQxYzQ5ZTkuLmVkNDFmM2VlN2E3YTg0NjFlMDMyZjFhMDFmYTkzMjI1
MjQxZjcyMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTUgQEAKKzIwMjAtMDktMDQgIFBhYmxvIFNh
YXZlZHJhICA8cHNhYXZlZHJhQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dMSUJdIFJlbW90ZUlu
c3BlY3RvclNlcnZlciBpcyBub3Qgc3RhcnRlZCBpZiBXZWJLaXRXZWJDb250ZXh0IGlzIG5vdCBj
cmVhdGVkIGFscmVhZHkgY3JlYXRlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjE2MTIwCisKKyAgICAgICAgQWRkZWQgYSBXZWJLaXQvVUlQcm9jZXNz
L0FQSS9nbGliL1dlYktpdEluaXRpYWxpemUgd2hhdCBpbXBsZW1lbnRzCisgICAgICAgIGl0cyBv
d24gd2Via2l0SW5pdGlhbGl6ZSgpIHRvIGVuc3VyZSB0aGUgaW5zcGVjdG9yIHNlcnZlciBpcwor
ICAgICAgICBpbml0aWFsaXplZCBhcyBlYXJseSBhcyBwb3NzaWJsZSwgYmVmb3JlIG90aGVyIGFw
aSBjYWxscyB0aGF0IHdvdWxkCisgICAgICAgIGRlcGVuZCBvbiB0aGUgaW5zcGVjdG9yIHNlcnZl
ciBiZWluZyBydW5uaW5nLgorCisgICAgICAgIFRoZSBSZW1vdGVJbnNwZWN0b3JTZXJ2ZXIgaW5p
dGlhbGl6YXRpb24gaXMgbm90IGxvbmdlcgorICAgICAgICBhc29jaWF0ZWQgdG8gdGhlIGluaXRp
YWxpemF0aW9uIG9mIHRoZSBXZWJQcm9jZXNzUG9vbEdMaWIuCisKKyAgICAgICAgVGhlIHdlYmtp
dEluaXRpYWxpemUoKSBleHRlbmRzIHRoZSBzaGFyZWQgSW5pdGlhbGl6ZVdlYktpdDIoKTsKKyAg
ICAgICAgYW5kIGFsc28gaW5jbHVkZXMgdGhlIGluaXRpYWxpemF0aW9uIG9mIHRoZSBSZW1vdGVJ
bnNwZWN0b3JTZXJ2ZXIKKyAgICAgICAgc28gdGhlIGluaXRpYWxpemF0aW9uIG9mIHRoZSByZW1v
dGUgaW5zcGVjdG9yIHNlcnZlciBjYW4gYmUgbm93CisgICAgICAgIHRyaWdnZXJlZCBieSB0aGUg
aW5pdGlhbGl6YXRpb24gb2YgbWFueSBvdGhlciBBUEkgb2JqZWN0cyB0b286CisgICAgICAgIFdl
YktpdENvb2tpZU1hbmFnZXIsIFdlYktpdEZhdmljb25EYXRhYmFzZSwKKyAgICAgICAgV2ViS2l0
R2VvbG9jYXRpb25NYW5hZ2VyLCBXZWJLaXRJbnB1dE1ldGhvZENvbnRleHQsIFdlYktpdFNldHRp
bmdzLAorICAgICAgICBXZWJLaXRVc2VyQ29udGVudE1hbmFnZXIsIFdlYktpdFdlYkNvbnRleHQs
IFdlYktpdFdlYnNpdGVEYXRhTWFuYWdlciwKKyAgICAgICAgV2ViS2l0VXNlckNvbnRlbnRGaWx0
ZXJTdG9yZSwgV2ViS2l0V2ViVmlld0Jhc2UuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBTb3VyY2VzR1RLLnR4dDoKKyAgICAgICAgKiBTb3VyY2Vz
V1BFLnR4dDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0Q29va2llTWFuYWdl
ci5jcHA6CisgICAgICAgICh3ZWJraXRfY29va2llX21hbmFnZXJfY2xhc3NfaW5pdCk6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdEZhdmljb25EYXRhYmFzZS5jcHA6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdEdlb2xvY2F0aW9uTWFuYWdlci5jcHA6Cisg
ICAgICAgICh3ZWJraXRfZ2VvbG9jYXRpb25fbWFuYWdlcl9jbGFzc19pbml0KToKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0SW5pdGlhbGl6ZS5jcHA6IEFkZGVkLgorICAgICAg
ICAoV2ViS2l0Ojppbml0aWFsaXplUmVtb3RlSW5zcGVjdG9yU2VydmVyKToKKyAgICAgICAgKFdl
YktpdDo6d2Via2l0SW5pdGlhbGl6ZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9nbGliL1dl
YktpdEluaXRpYWxpemUuaDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9nbGliL1dl
YktpdElucHV0TWV0aG9kQ29udGV4dC5jcHA6CisgICAgICAgICh3ZWJraXRfaW5wdXRfbWV0aG9k
X2NvbnRleHRfY2xhc3NfaW5pdCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9nbGliL1dlYktp
dFNldHRpbmdzLmNwcDoKKyAgICAgICAgKHdlYmtpdF9zZXR0aW5nc19jbGFzc19pbml0KToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VXNlckNvbnRlbnRGaWx0ZXJTdG9yZS5j
cHA6CisgICAgICAgICh3ZWJraXRfdXNlcl9jb250ZW50X2ZpbHRlcl9zdG9yZV9jbGFzc19pbml0
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VXNlckNvbnRlbnRNYW5hZ2Vy
LmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViQ29udGV4dC5jcHA6
CisgICAgICAgICh3ZWJraXRfd2ViX2NvbnRleHRfY2xhc3NfaW5pdCk6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYnNpdGVEYXRhTWFuYWdlci5jcHA6CisgICAgICAgICh3
ZWJraXRfd2Vic2l0ZV9kYXRhX21hbmFnZXJfY2xhc3NfaW5pdCk6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld0Jhc2UuY3BwOgorICAgICAgICAod2Via2l0X3dlYl92
aWV3X2Jhc2VfY2xhc3NfaW5pdCk6CisgICAgICAgICogVUlQcm9jZXNzL2dsaWIvV2ViUHJvY2Vz
c1Bvb2xHTGliLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3Jt
SW5pdGlhbGl6ZSk6CisgICAgICAgIChXZWJLaXQ6OmluaXRpYWxpemVSZW1vdGVJbnNwZWN0b3JT
ZXJ2ZXIpOiBEZWxldGVkLgorCiAyMDIwLTA5LTAzICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNn
YXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBVbmV4cGVjdGVkIFVzZXItQWdlbnQg
b24gcmVkaXJlY3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0dUSy50eHQgYi9T
b3VyY2UvV2ViS2l0L1NvdXJjZXNHVEsudHh0CmluZGV4IGZjODg2MWMyMjFhOGQxMGNhZDdlNWU2
ZmExOGJlM2UzNjE5Y2YzMWIuLjMxZGMyMTc1NGYyNTJkNmRmNTZlMTY5ZTgwMzIyMmEyNTBkZTg0
OTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0dUSy50eHQKKysrIGIvU291cmNl
L1dlYktpdC9Tb3VyY2VzR1RLLnR4dApAQCAtMTQxLDYgKzE0MSw3IEBAIFVJUHJvY2Vzcy9BUEkv
Z2xpYi9XZWJLaXRGb3JtU3VibWlzc2lvblJlcXVlc3QuY3BwIEBuby11bmlmeQogVUlQcm9jZXNz
L0FQSS9nbGliL1dlYktpdEdlb2xvY2F0aW9uTWFuYWdlci5jcHAgQG5vLXVuaWZ5CiBVSVByb2Nl
c3MvQVBJL2dsaWIvV2ViS2l0R2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5jcHAgQG5vLXVu
aWZ5CiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0SWNvbkxvYWRpbmdDbGllbnQuY3BwIEBuby11
bmlmeQorVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdEluaXRpYWxpemUuY3BwIEBuby11bmlmeQog
VUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdEluamVjdGVkQnVuZGxlQ2xpZW50LmNwcCBAbm8tdW5p
ZnkKIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRJbnB1dE1ldGhvZENvbnRleHQuY3BwIEBuby11
bmlmeQogVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdEluc3RhbGxNaXNzaW5nTWVkaWFQbHVnaW5z
UGVybWlzc2lvblJlcXVlc3QuY3BwIEBuby11bmlmeQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9Tb3VyY2VzV1BFLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlc1dQRS50eHQKaW5kZXggNmUw
MWYwNDE0ZTNlNzI4YmQ2NDY3ZTgxYTIyMDcyM2ExMDU2ODVjNy4uM2MyOTlkZmQ3Mjc5MmNmMWI3
OTlkZTY0ODY2MjZjODAzOWRkYmM4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2Vz
V1BFLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNXUEUudHh0CkBAIC0xMzIsNiArMTMy
LDcgQEAgVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdEZvcm1DbGllbnQuY3BwIEBuby11bmlmeQog
VUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdEZvcm1TdWJtaXNzaW9uUmVxdWVzdC5jcHAgQG5vLXVu
aWZ5CiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0R2VvbG9jYXRpb25NYW5hZ2VyLmNwcCBAbm8t
dW5pZnkKIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1
ZXN0LmNwcCBAbm8tdW5pZnkKK1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRJbml0aWFsaXplLmNw
cCBAbm8tdW5pZnkKIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRJbmplY3RlZEJ1bmRsZUNsaWVu
dC5jcHAgQG5vLXVuaWZ5CiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0SW5wdXRNZXRob2RDb250
ZXh0LmNwcCBAbm8tdW5pZnkKIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRJbnN0YWxsTWlzc2lu
Z01lZGlhUGx1Z2luc1Blcm1pc3Npb25SZXF1ZXN0LmNwcCBAbm8tdW5pZnkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdENvb2tpZU1hbmFnZXIuY3Bw
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0Q29va2llTWFuYWdlci5j
cHAKaW5kZXggMWVlNzNlYmMwZWEwMzZmODZiM2ZlOTQ0MTQ5MDcyZTZhYzRkYzc2Ny4uODIxYmQ3
NmY2MzIzNDFiZTliMWRkZGNkNWFlYWEzY2IwOGVjYzZmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0Q29va2llTWFuYWdlci5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0Q29va2llTWFuYWdlci5jcHAKQEAg
LTI1LDYgKzI1LDcgQEAKICNpbmNsdWRlICJXZWJDb29raWVNYW5hZ2VyUHJveHkuaCIKICNpbmNs
dWRlICJXZWJLaXRDb29raWVNYW5hZ2VyUHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYktpdEVudW1U
eXBlcy5oIgorI2luY2x1ZGUgIldlYktpdEluaXRpYWxpemUuaCIKICNpbmNsdWRlICJXZWJLaXRX
ZWJzaXRlRGF0YU1hbmFnZXJQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0V2Vic2l0ZURhdGFQ
cml2YXRlLmgiCiAjaW5jbHVkZSAiV2Vic2l0ZURhdGFSZWNvcmQuaCIKQEAgLTExOCw2ICsxMTks
OCBAQCBzdGF0aWMgaW5saW5lIFdlYkNvcmU6OkhUVFBDb29raWVBY2NlcHRQb2xpY3kgdG9IVFRQ
Q29va2llQWNjZXB0UG9saWN5KFdlYktpdENvbwogCiBzdGF0aWMgdm9pZCB3ZWJraXRfY29va2ll
X21hbmFnZXJfY2xhc3NfaW5pdChXZWJLaXRDb29raWVNYW5hZ2VyQ2xhc3MqIGZpbmRDbGFzcykK
IHsKKyAgICB3ZWJraXRJbml0aWFsaXplKCk7CisKICAgICBHT2JqZWN0Q2xhc3MqIGdPYmplY3RD
bGFzcyA9IEdfT0JKRUNUX0NMQVNTKGZpbmRDbGFzcyk7CiAKICAgICAvKioKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdEZhdmljb25EYXRhYmFzZS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRGYXZpY29uRGF0YWJh
c2UuY3BwCmluZGV4IDM2Y2MyODJkNzhiN2E4YzNiNjM4ZDNhNTAwMWRiMzQxOGMwMDhmOGUuLjky
OTY3OGE1Yjc0ODk1OTA0YTQ4MDRlZjE2ZmM2NTcyZTNiNDhhYTEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdEZhdmljb25EYXRhYmFzZS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0RmF2aWNvbkRhdGFiYXNl
LmNwcApAQCAtMjIsNiArMjIsNyBAQAogCiAjaW5jbHVkZSAiSWNvbkRhdGFiYXNlLmgiCiAjaW5j
bHVkZSAiV2ViS2l0RmF2aWNvbkRhdGFiYXNlUHJpdmF0ZS5oIgorI2luY2x1ZGUgIldlYktpdElu
aXRpYWxpemUuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0ltYWdlLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9JbnRTaXplLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZWZQdHJDYWlyby5oPgpAQCAtNzMsNiAr
NzQsOCBAQCBXRUJLSVRfREVGSU5FX1RZUEUoV2ViS2l0RmF2aWNvbkRhdGFiYXNlLCB3ZWJraXRf
ZmF2aWNvbl9kYXRhYmFzZSwgR19UWVBFX09CSkVDVAogCiBzdGF0aWMgdm9pZCB3ZWJraXRfZmF2
aWNvbl9kYXRhYmFzZV9jbGFzc19pbml0KFdlYktpdEZhdmljb25EYXRhYmFzZUNsYXNzKiBmYXZp
Y29uRGF0YWJhc2VDbGFzcykKIHsKKyAgICB3ZWJraXRJbml0aWFsaXplKCk7CisKICAgICAvKioK
ICAgICAgKiBXZWJLaXRGYXZpY29uRGF0YWJhc2U6OmZhdmljb24tY2hhbmdlZDoKICAgICAgKiBA
ZGF0YWJhc2U6IHRoZSBvYmplY3Qgb24gd2hpY2ggdGhlIHNpZ25hbCBpcyBlbWl0dGVkCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRJbml0aWFsaXpl
LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdEluaXRpYWxpemUu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjYxM2M0Y2Q0ZjQzZDU0NzE1ZDAzM2NkM2VkZWRiOTkyMmRkMTlhYjQK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJL
aXRJbml0aWFsaXplLmNwcApAQCAtMCwwICsxLDc2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDIwIElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJXZWJLaXRJbml0aWFsaXplLmgiCisKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9SZW1vdGVJ
bnNwZWN0b3JTZXJ2ZXIuaD4KKyNpbmNsdWRlIDxXZWJLaXQvU2hhcmVkL1dlYktpdDJJbml0aWFs
aXplLmg+CisjaW5jbHVkZSA8d3RmL2dsaWIvR1VuaXF1ZVB0ci5oPgorCituYW1lc3BhY2UgV2Vi
S2l0IHsKKworI2lmICFQTEFURk9STShDT0NPQSkKKworI2lmIEVOQUJMRShSRU1PVEVfSU5TUEVD
VE9SKQorc3RhdGljIHZvaWQgaW5pdGlhbGl6ZVJlbW90ZUluc3BlY3RvclNlcnZlcihjb25zdCBj
aGFyKiBhZGRyZXNzKQoreworICAgIGlmIChJbnNwZWN0b3I6OlJlbW90ZUluc3BlY3RvclNlcnZl
cjo6c2luZ2xldG9uKCkuaXNSdW5uaW5nKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGlmICgh
YWRkcmVzc1swXSkKKyAgICAgICAgcmV0dXJuOworCisgICAgR1VuaXF1ZVB0cjxjaGFyPiBpbnNw
ZWN0b3JBZGRyZXNzKGdfc3RyZHVwKGFkZHJlc3MpKTsKKyAgICBjaGFyKiBwb3J0UHRyID0gZ19z
dHJyc3RyKGluc3BlY3RvckFkZHJlc3MuZ2V0KCksICI6Iik7CisgICAgaWYgKCFwb3J0UHRyKQor
ICAgICAgICByZXR1cm47CisKKyAgICAqcG9ydFB0ciA9ICdcMCc7CisgICAgcG9ydFB0cisrOwor
ICAgIGd1aW50NjQgcG9ydCA9IGdfYXNjaWlfc3RydG91bGwocG9ydFB0ciwgbnVsbHB0ciwgMTAp
OworICAgIGlmICghcG9ydCkKKyAgICAgICAgcmV0dXJuOworCisgICAgSW5zcGVjdG9yOjpSZW1v
dGVJbnNwZWN0b3JTZXJ2ZXI6OnNpbmdsZXRvbigpLnN0YXJ0KGluc3BlY3RvckFkZHJlc3MuZ2V0
KCksIHBvcnQpOworfQorI2VuZGlmCisKK3ZvaWQgd2Via2l0SW5pdGlhbGl6ZSgpCit7CisgICAg
c3RhdGljIHN0ZDo6b25jZV9mbGFnIG9uY2VGbGFnOworCisgICAgc3RkOjpjYWxsX29uY2Uob25j
ZUZsYWcsIFtdIHsKKyAgICAgICAgSW5pdGlhbGl6ZVdlYktpdDIoKTsKKyNpZiBFTkFCTEUoUkVN
T1RFX0lOU1BFQ1RPUikKKyAgICAgICAgaWYgKGNvbnN0IGNoYXIqIGFkZHJlc3MgPSBnX2dldGVu
digiV0VCS0lUX0lOU1BFQ1RPUl9TRVJWRVIiKSkKKyAgICAgICAgICAgIGluaXRpYWxpemVSZW1v
dGVJbnNwZWN0b3JTZXJ2ZXIoYWRkcmVzcyk7CisjZW5kaWYKKyAgICB9KTsKK30KKworI2VuZGlm
IC8vICFQTEFURk9STShDT0NPQSkKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRJbml0aWFsaXplLmggYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRJbml0aWFsaXplLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMDllYjllMjA0NjliMjliMjk0MjY0OGQ0OGMzMDZlODQ0NzM0ZWJmZQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdEluaXRpYWxp
emUuaApAQCAtMCwwICsxLDMyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBT
LkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCituYW1lc3BhY2UgV2ViS2l0IHsKKwordm9p
ZCB3ZWJraXRJbml0aWFsaXplKCk7CisKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRJbnB1dE1ldGhvZENvbnRleHQuY3BwIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0SW5wdXRNZXRob2RDb250ZXh0LmNwcAppbmRl
eCA5YzMwMmUyMWFjMWIyNDIwZGYxY2UzNmFhMmQ1NDkyMmI2NzE2MTQwLi5lMjlmZmU2MmMzYjFk
ZTNjNTk1ZjJlMmYxZjZhNWUxNDk1N2M4ZWEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRJbnB1dE1ldGhvZENvbnRleHQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdElucHV0TWV0aG9kQ29udGV4dC5jcHAK
QEAgLTIxLDYgKzIxLDcgQEAKICNpbmNsdWRlICJXZWJLaXRJbnB1dE1ldGhvZENvbnRleHQuaCIK
IAogI2luY2x1ZGUgIldlYktpdEVudW1UeXBlcy5oIgorI2luY2x1ZGUgIldlYktpdEluaXRpYWxp
emUuaCIKICNpbmNsdWRlICJXZWJLaXRJbnB1dE1ldGhvZENvbnRleHRQcml2YXRlLmgiCiAjaW5j
bHVkZSAiV2ViS2l0V2ViVmlldy5oIgogI2luY2x1ZGUgPGdsaWIvZ2kxOG4tbGliLmg+CkBAIC0y
MDMsNiArMjA0LDggQEAgc3RhdGljIHZvaWQgd2Via2l0SW5wdXRNZXRob2RDb250ZXh0R2V0UHJv
cGVydHkoR09iamVjdCogb2JqZWN0LCBndWludCBwcm9wSWQsIEcKIAogc3RhdGljIHZvaWQgd2Vi
a2l0X2lucHV0X21ldGhvZF9jb250ZXh0X2NsYXNzX2luaXQoV2ViS2l0SW5wdXRNZXRob2RDb250
ZXh0Q2xhc3MqIGtsYXNzKQogeworICAgIFdlYktpdDo6d2Via2l0SW5pdGlhbGl6ZSgpOworCiAg
ICAgR09iamVjdENsYXNzKiBnT2JqZWN0Q2xhc3MgPSBHX09CSkVDVF9DTEFTUyhrbGFzcyk7CiAg
ICAgZ09iamVjdENsYXNzLT5zZXRfcHJvcGVydHkgPSB3ZWJraXRJbnB1dE1ldGhvZENvbnRleHRT
ZXRQcm9wZXJ0eTsKICAgICBnT2JqZWN0Q2xhc3MtPmdldF9wcm9wZXJ0eSA9IHdlYmtpdElucHV0
TWV0aG9kQ29udGV4dEdldFByb3BlcnR5OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL2dsaWIvV2ViS2l0U2V0dGluZ3MuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL2dsaWIvV2ViS2l0U2V0dGluZ3MuY3BwCmluZGV4IDEwODM5NTNmNWQxZDdhMWRjMGMw
M2FjNTI2MDc1NGViNDM4NjBmMTguLjAwZDdlNWQ0MTRlZjk2NmUwYjE2MDRjYmY5M2M1ZmQwYWQx
NjExZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktp
dFNldHRpbmdzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJL
aXRTZXR0aW5ncy5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJXZWJLaXRTZXR0aW5n
cy5oIgogCiAjaW5jbHVkZSAiV2ViS2l0RW51bVR5cGVzLmgiCisjaW5jbHVkZSAiV2ViS2l0SW5p
dGlhbGl6ZS5oIgogI2luY2x1ZGUgIldlYktpdFNldHRpbmdzUHJpdmF0ZS5oIgogI2luY2x1ZGUg
IldlYlBhZ2VQcm94eS5oIgogI2luY2x1ZGUgIldlYlByZWZlcmVuY2VzLmgiCkBAIC02MDYsNiAr
NjA3LDggQEAgc3RhdGljIHZvaWQgd2ViS2l0U2V0dGluZ3NHZXRQcm9wZXJ0eShHT2JqZWN0KiBv
YmplY3QsIGd1aW50IHByb3BJZCwgR1ZhbHVlKiB2YWwKIAogc3RhdGljIHZvaWQgd2Via2l0X3Nl
dHRpbmdzX2NsYXNzX2luaXQoV2ViS2l0U2V0dGluZ3NDbGFzcyoga2xhc3MpCiB7CisgICAgd2Vi
a2l0SW5pdGlhbGl6ZSgpOworCiAgICAgR09iamVjdENsYXNzKiBnT2JqZWN0Q2xhc3MgPSBHX09C
SkVDVF9DTEFTUyhrbGFzcyk7CiAgICAgZ09iamVjdENsYXNzLT5jb25zdHJ1Y3RlZCA9IHdlYktp
dFNldHRpbmdzQ29uc3RydWN0ZWQ7CiAgICAgZ09iamVjdENsYXNzLT5kaXNwb3NlID0gd2ViS2l0
U2V0dGluZ3NEaXNwb3NlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L2dsaWIvV2ViS2l0VXNlckNvbnRlbnRGaWx0ZXJTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRVc2VyQ29udGVudEZpbHRlclN0b3JlLmNwcAppbmRleCBj
NmViZTk5N2Y4MGU2MDVjNzQxNTE5ZjVlNzVmYmUwMGY4ZmFiNTBmLi4wZGY0OTJhNzcyMjFiMWQw
NTlkZDFjMTQxYzE3MjI2ZTU2NDUyYTNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvZ2xpYi9XZWJLaXRVc2VyQ29udGVudEZpbHRlclN0b3JlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRVc2VyQ29udGVudEZpbHRlclN0b3Jl
LmNwcApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIkFQSUNvbnRlbnRSdWxlTGlzdC5oIgog
I2luY2x1ZGUgIkFQSUNvbnRlbnRSdWxlTGlzdFN0b3JlLmgiCiAjaW5jbHVkZSAiV2ViS2l0RXJy
b3IuaCIKKyNpbmNsdWRlICJXZWJLaXRJbml0aWFsaXplLmgiCiAjaW5jbHVkZSAiV2ViS2l0VXNl
ckNvbnRlbnQuaCIKICNpbmNsdWRlICJXZWJLaXRVc2VyQ29udGVudFByaXZhdGUuaCIKICNpbmNs
dWRlIDxXZWJDb3JlL0NvbnRlbnRFeHRlbnNpb25FcnJvci5oPgpAQCAtNDAsNiArNDEsOCBAQAog
I2luY2x1ZGUgPHd0Zi9nbGliL0dVbmlxdWVQdHIuaD4KICNpbmNsdWRlIDx3dGYvZ2xpYi9XVEZH
VHlwZS5oPgogCit1c2luZyBuYW1lc3BhY2UgV2ViS2l0OworCiAvKioKICAqIFNFQ1RJT046IFdl
YktpdFVzZXJDb250ZW50RmlsdGVyU3RvcmUKICAqIEBTaG9ydF9kZXNjcmlwdGlvbjogSGFuZGxl
cyBzdG9yYWdlIG9mIHVzZXIgY29udGVudCBmaWx0ZXJzIG9uIGRpc2suCkBAIC0xMTYsNiArMTE5
LDggQEAgc3RhdGljIHZvaWQgd2Via2l0VXNlckNvbnRlbnRGaWx0ZXJTdG9yZUNvbnN0cnVjdGVk
KEdPYmplY3QqIG9iamVjdCkKIAogc3RhdGljIHZvaWQgd2Via2l0X3VzZXJfY29udGVudF9maWx0
ZXJfc3RvcmVfY2xhc3NfaW5pdChXZWJLaXRVc2VyQ29udGVudEZpbHRlclN0b3JlQ2xhc3MqIHN0
b3JlQ2xhc3MpCiB7CisgICAgd2Via2l0SW5pdGlhbGl6ZSgpOworCiAgICAgR09iamVjdENsYXNz
KiBnT2JqZWN0Q2xhc3MgPSBHX09CSkVDVF9DTEFTUyhzdG9yZUNsYXNzKTsKIAogICAgIGdPYmpl
Y3RDbGFzcy0+Z2V0X3Byb3BlcnR5ID0gd2Via2l0VXNlckNvbnRlbnRGaWx0ZXJTdG9yZUdldFBy
b3BlcnR5OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2Vi
S2l0VXNlckNvbnRlbnRNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9n
bGliL1dlYktpdFVzZXJDb250ZW50TWFuYWdlci5jcHAKaW5kZXggZGExMjllM2I4YjUzNzAxNDZj
NTJkYzI4NGE1ZmQzYjg2Mjk0MzYwOS4uNjI1OGNmMDFiMjQwYTVlN2Y0ZDY2ZjFiZTI3YTNkOWE2
YTMxMjIzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2Vi
S2l0VXNlckNvbnRlbnRNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvZ2xpYi9XZWJLaXRVc2VyQ29udGVudE1hbmFnZXIuY3BwCkBAIC0yMiw2ICsyMiw3IEBACiAK
ICNpbmNsdWRlICJBUElTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIKICNpbmNsdWRlICJJbmplY3RV
c2VyU2NyaXB0SW1tZWRpYXRlbHkuaCIKKyNpbmNsdWRlICJXZWJLaXRJbml0aWFsaXplLmgiCiAj
aW5jbHVkZSAiV2ViS2l0SmF2YXNjcmlwdFJlc3VsdFByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJL
aXRVc2VyQ29udGVudE1hbmFnZXJQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0VXNlckNvbnRl
bnRQcml2YXRlLmgiCkBAIC03OCw2ICs3OSw4IEBAIHN0YXRpYyBndWludCBzaWduYWxzW0xBU1Rf
U0lHTkFMXSA9IHsgMCwgfTsKIAogc3RhdGljIHZvaWQgd2Via2l0X3VzZXJfY29udGVudF9tYW5h
Z2VyX2NsYXNzX2luaXQoV2ViS2l0VXNlckNvbnRlbnRNYW5hZ2VyQ2xhc3MqIGtsYXNzKQogewor
ICAgIHdlYmtpdEluaXRpYWxpemUoKTsKKwogICAgIEdPYmplY3RDbGFzcyogZ09iamVjdENsYXNz
ID0gR19PQkpFQ1RfQ0xBU1Moa2xhc3MpOwogCiAgICAgLyoqCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJDb250ZXh0LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYkNvbnRleHQuY3BwCmluZGV4IDhkZTcy
MmQ0NWJiYmFkZDU0ZDIzOWYyZTI3MWRlMTZjOTQ5MGQ1ZGIuLmZiMTJiMjE3Nzc0ZjM5N2U1NmM3
ZWYzN2QwMzQ5Y2Q1YzIwYTU0MmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9nbGliL1dlYktpdFdlYkNvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9nbGliL1dlYktpdFdlYkNvbnRleHQuY3BwCkBAIC0zMiwxMiArMzIsMTIgQEAKICNp
bmNsdWRlICJUZXh0Q2hlY2tlclN0YXRlLmgiCiAjaW5jbHVkZSAiV2ViQXV0b21hdGlvblNlc3Np
b24uaCIKICNpbmNsdWRlICJXZWJDZXJ0aWZpY2F0ZUluZm8uaCIKLSNpbmNsdWRlICJXZWJLaXQy
SW5pdGlhbGl6ZS5oIgogI2luY2x1ZGUgIldlYktpdEF1dG9tYXRpb25TZXNzaW9uUHJpdmF0ZS5o
IgogI2luY2x1ZGUgIldlYktpdERvd25sb2FkQ2xpZW50LmgiCiAjaW5jbHVkZSAiV2ViS2l0RG93
bmxvYWRQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0RmF2aWNvbkRhdGFiYXNlUHJpdmF0ZS5o
IgogI2luY2x1ZGUgIldlYktpdEdlb2xvY2F0aW9uTWFuYWdlclByaXZhdGUuaCIKKyNpbmNsdWRl
ICJXZWJLaXRJbml0aWFsaXplLmgiCiAjaW5jbHVkZSAiV2ViS2l0SW5qZWN0ZWRCdW5kbGVDbGll
bnQuaCIKICNpbmNsdWRlICJXZWJLaXROZXR3b3JrUHJveHlTZXR0aW5nc1ByaXZhdGUuaCIKICNp
bmNsdWRlICJXZWJLaXROb3RpZmljYXRpb25Qcm92aWRlci5oIgpAQCAtNDYzLDEzICs0NjMsMTMg
QEAgc3RhdGljIHZvaWQgd2Via2l0V2ViQ29udGV4dERpc3Bvc2UoR09iamVjdCogb2JqZWN0KQog
CiBzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX2NvbnRleHRfY2xhc3NfaW5pdChXZWJLaXRXZWJDb250
ZXh0Q2xhc3MqIHdlYkNvbnRleHRDbGFzcykKIHsKKyAgICB3ZWJraXRJbml0aWFsaXplKCk7CisK
ICAgICBHT2JqZWN0Q2xhc3MqIGdPYmplY3RDbGFzcyA9IEdfT0JKRUNUX0NMQVNTKHdlYkNvbnRl
eHRDbGFzcyk7CiAKICAgICBiaW5kdGV4dGRvbWFpbihHRVRURVhUX1BBQ0tBR0UsIExPQ0FMRURJ
Uik7CiAgICAgYmluZF90ZXh0ZG9tYWluX2NvZGVzZXQoR0VUVEVYVF9QQUNLQUdFLCAiVVRGLTgi
KTsKIAotICAgIEluaXRpYWxpemVXZWJLaXQyKCk7Ci0KICAgICBnT2JqZWN0Q2xhc3MtPmdldF9w
cm9wZXJ0eSA9IHdlYmtpdFdlYkNvbnRleHRHZXRQcm9wZXJ0eTsKICAgICBnT2JqZWN0Q2xhc3Mt
PnNldF9wcm9wZXJ0eSA9IHdlYmtpdFdlYkNvbnRleHRTZXRQcm9wZXJ0eTsKICAgICBnT2JqZWN0
Q2xhc3MtPmNvbnN0cnVjdGVkID0gd2Via2l0V2ViQ29udGV4dENvbnN0cnVjdGVkOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2Vic2l0ZURhdGFN
YW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYnNp
dGVEYXRhTWFuYWdlci5jcHAKaW5kZXggMTNiMGZlMjA3NzNkYTUxZmIyYTY3ZTIyNjhmMjJmN2Y5
ZTcwMjVhMC4uYmVmYmM2M2YyMGRjNGVlNGUwOWJmMWI5MzlkM2M1ZTdlNWVhM2YzOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2Vic2l0ZURhdGFN
YW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRX
ZWJzaXRlRGF0YU1hbmFnZXIuY3BwCkBAIC0yMSw2ICsyMSw3IEBACiAjaW5jbHVkZSAiV2ViS2l0
V2Vic2l0ZURhdGFNYW5hZ2VyLmgiCiAKICNpbmNsdWRlICJXZWJLaXRDb29raWVNYW5hZ2VyUHJp
dmF0ZS5oIgorI2luY2x1ZGUgIldlYktpdEluaXRpYWxpemUuaCIKICNpbmNsdWRlICJXZWJLaXRQ
cml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0V2Vic2l0ZURhdGFNYW5hZ2VyUHJpdmF0ZS5oIgog
I2luY2x1ZGUgIldlYktpdFdlYnNpdGVEYXRhUHJpdmF0ZS5oIgpAQCAtMjQ0LDYgKzI0NSw4IEBA
IHN0YXRpYyB2b2lkIHdlYmtpdFdlYnNpdGVEYXRhTWFuYWdlckNvbnN0cnVjdGVkKEdPYmplY3Qq
IG9iamVjdCkKIAogc3RhdGljIHZvaWQgd2Via2l0X3dlYnNpdGVfZGF0YV9tYW5hZ2VyX2NsYXNz
X2luaXQoV2ViS2l0V2Vic2l0ZURhdGFNYW5hZ2VyQ2xhc3MqIGZpbmRDbGFzcykKIHsKKyAgICB3
ZWJraXRJbml0aWFsaXplKCk7CisKICAgICBHT2JqZWN0Q2xhc3MqIGdPYmplY3RDbGFzcyA9IEdf
T0JKRUNUX0NMQVNTKGZpbmRDbGFzcyk7CiAKICAgICBnT2JqZWN0Q2xhc3MtPmdldF9wcm9wZXJ0
eSA9IHdlYmtpdFdlYnNpdGVEYXRhTWFuYWdlckdldFByb3BlcnR5OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3QmFzZS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdCYXNlLmNwcAppbmRleCA2
NmQ3NDdhNDQzODZiNzMxN2FmMjllMDY3MGQ1N2E0ZWFlNDFmMTUxLi41MDdhZDVhNTU2ZGMyOTk0
N2MwYzMyNDNlYjE4YmU4NDA3ZWEzZmJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdCYXNlLmNwcApAQCAtNDYsNiArNDYsNyBAQAog
I2luY2x1ZGUgIldlYkluc3BlY3RvclByb3h5LmgiCiAjaW5jbHVkZSAiV2ViS2l0MkluaXRpYWxp
emUuaCIKICNpbmNsdWRlICJXZWJLaXRFbW9qaUNob29zZXIuaCIKKyNpbmNsdWRlICJXZWJLaXRJ
bml0aWFsaXplLmgiCiAjaW5jbHVkZSAiV2ViS2l0SW5wdXRNZXRob2RDb250ZXh0SW1wbEd0ay5o
IgogI2luY2x1ZGUgIldlYktpdFdlYlZpZXdBY2Nlc3NpYmxlLmgiCiAjaW5jbHVkZSAiV2ViS2l0
V2ViVmlld0Jhc2VJbnRlcm5hbC5oIgpAQCAtMjAyNCw5ICsyMDI1LDkgQEAgc3RhdGljIHZvaWQg
d2Via2l0X3dlYl92aWV3X2Jhc2VfY2xhc3NfaW5pdChXZWJLaXRXZWJWaWV3QmFzZUNsYXNzKiB3
ZWJraXRXZWJWaWUKICNlbmRpZgogCiAgICAgLy8gQmVmb3JlIGNyZWF0aW5nIGEgV2ViS2l0V2Vi
Vmlld0Jhc2VQcml2IHdlIG5lZWQgdG8gYmUgc3VyZSB0aGF0IFdlYktpdCBpcyBzdGFydGVkLgot
ICAgIC8vIFVzdWFsbHkgc3RhcnRpbmcgYSBjb250ZXh0IHRyaWdnZXJzIEluaXRpYWxpemVXZWJL
aXQyLCBidXQgaW4gY2FzZQorICAgIC8vIFVzdWFsbHkgc3RhcnRpbmcgYSBjb250ZXh0IHRyaWdn
ZXJzIHdlYmtpdEluaXRpYWxpemUsIGJ1dCBpbiBjYXNlCiAgICAgLy8gd2UgY3JlYXRlIGEgdmll
dyB3aXRob3V0IGFza2luZyBiZWZvcmUgZm9yIGEgZGVmYXVsdF9jb250ZXh0IHdlIGdldCBhIGNy
YXNoLgotICAgIFdlYktpdDo6SW5pdGlhbGl6ZVdlYktpdDIoKTsKKyAgICBXZWJLaXQ6OndlYmtp
dEluaXRpYWxpemUoKTsKIAogICAgIGd0a193aWRnZXRfY2xhc3Nfc2V0X2Nzc19uYW1lKHdpZGdl
dENsYXNzLCAid2Via2l0d2VidmlldyIpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvZ2xpYi9XZWJQcm9jZXNzUG9vbEdMaWIuY3BwIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvZ2xpYi9XZWJQcm9jZXNzUG9vbEdMaWIuY3BwCmluZGV4IGRlYWFiZjdjN2JkZDMwNTdk
Yzg5NjRjMzM5ZWQ1MGMyMjRiM2VmNzcuLmJlMTk3OTZlZDk2ZDA3MDU0MjhmMDgxOTk1ODA2MjU0
ZTJmMmFkMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2dsaWIvV2ViUHJv
Y2Vzc1Bvb2xHTGliLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9nbGliL1dlYlBy
b2Nlc3NQb29sR0xpYi5jcHAKQEAgLTMxLDEwICszMSw4IEBACiAjaW5jbHVkZSAiTGVnYWN5R2xv
YmFsU2V0dGluZ3MuaCIKICNpbmNsdWRlICJXZWJNZW1vcnlQcmVzc3VyZUhhbmRsZXIuaCIKICNp
bmNsdWRlICJXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCi0jaW5jbHVkZSA8SmF2YVNj
cmlwdENvcmUvUmVtb3RlSW5zcGVjdG9yU2VydmVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QbGF0
Zm9ybURpc3BsYXkuaD4KICNpbmNsdWRlIDx3dGYvRmlsZVN5c3RlbS5oPgotI2luY2x1ZGUgPHd0
Zi9nbGliL0dVbmlxdWVQdHIuaD4KIAogI2lmIFVTRShHU1RSRUFNRVIpCiAjaW5jbHVkZSA8V2Vi
Q29yZS9HU3RyZWFtZXJDb21tb24uaD4KQEAgLTU0LDMwICs1Miw2IEBACiAKIG5hbWVzcGFjZSBX
ZWJLaXQgewogCi0jaWYgRU5BQkxFKFJFTU9URV9JTlNQRUNUT1IpCi1zdGF0aWMgdm9pZCBpbml0
aWFsaXplUmVtb3RlSW5zcGVjdG9yU2VydmVyKGNvbnN0IGNoYXIqIGFkZHJlc3MpCi17Ci0gICAg
aWYgKEluc3BlY3Rvcjo6UmVtb3RlSW5zcGVjdG9yU2VydmVyOjpzaW5nbGV0b24oKS5pc1J1bm5p
bmcoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgaWYgKCFhZGRyZXNzWzBdKQotICAgICAgICBy
ZXR1cm47Ci0KLSAgICBHVW5pcXVlUHRyPGNoYXI+IGluc3BlY3RvckFkZHJlc3MoZ19zdHJkdXAo
YWRkcmVzcykpOwotICAgIGNoYXIqIHBvcnRQdHIgPSBnX3N0cnJzdHIoaW5zcGVjdG9yQWRkcmVz
cy5nZXQoKSwgIjoiKTsKLSAgICBpZiAoIXBvcnRQdHIpCi0gICAgICAgIHJldHVybjsKLQotICAg
ICpwb3J0UHRyID0gJ1wwJzsKLSAgICBwb3J0UHRyKys7Ci0gICAgZ3VpbnQ2NCBwb3J0ID0gZ19h
c2NpaV9zdHJ0b3VsbChwb3J0UHRyLCBudWxscHRyLCAxMCk7Ci0gICAgaWYgKCFwb3J0KQotICAg
ICAgICByZXR1cm47Ci0KLSAgICBJbnNwZWN0b3I6OlJlbW90ZUluc3BlY3RvclNlcnZlcjo6c2lu
Z2xldG9uKCkuc3RhcnQoaW5zcGVjdG9yQWRkcmVzcy5nZXQoKSwgcG9ydCk7Ci19Ci0jZW5kaWYK
LQogc3RhdGljIGJvb2wgbWVtb3J5UHJlc3N1cmVNb25pdG9yRGlzYWJsZWQoKQogewogICAgIHN0
YXRpYyBjb25zdCBjaGFyKiBkaXNhYmxlTWVtb3J5UHJlc3N1cmVNb25pdG9yID0gZ2V0ZW52KCJX
RUJLSVRfRElTQUJMRV9NRU1PUllfUFJFU1NVUkVfTU9OSVRPUiIpOwpAQCAtOTIsMTEgKzY2LDYg
QEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplKCkKICAgICBpZiAoY29u
c3QgY2hhciogZm9yY2VDb21wbGV4VGV4dCA9IGdldGVudigiV0VCS0lUX0ZPUkNFX0NPTVBMRVhf
VEVYVCIpKQogICAgICAgICBtX2Fsd2F5c1VzZXNDb21wbGV4VGV4dENvZGVQYXRoID0gIXN0cmNt
cChmb3JjZUNvbXBsZXhUZXh0LCAiMSIpOwogCi0jaWYgRU5BQkxFKFJFTU9URV9JTlNQRUNUT1Ip
Ci0gICAgaWYgKGNvbnN0IGNoYXIqIGFkZHJlc3MgPSBnX2dldGVudigiV0VCS0lUX0lOU1BFQ1RP
Ul9TRVJWRVIiKSkKLSAgICAgICAgaW5pdGlhbGl6ZVJlbW90ZUluc3BlY3RvclNlcnZlcihhZGRy
ZXNzKTsKLSNlbmRpZgotCiAgICAgaWYgKCFtZW1vcnlQcmVzc3VyZU1vbml0b3JEaXNhYmxlZCgp
KQogICAgICAgICBpbnN0YWxsTWVtb3J5UHJlc3N1cmVIYW5kbGVyKCk7CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>408171</attachid>
            <date>2020-09-07 03:37:17 -0700</date>
            <delta_ts>2020-09-07 07:30:43 -0700</delta_ts>
            <desc>patch</desc>
            <filename>bug-216120-20200907123526.patch</filename>
            <type>text/plain</type>
            <size>20458</size>
            <attacher name="Pablo Saavedra">psaavedra</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY2NTgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDI0YWMxMWNjZTYwNDk4MGMy
ZmUwMDIwZTZhYjc3MzJhNjQxYzQ5ZTkuLmVjY2FkMGE5NDAwNDcxZTNmNWI4ZTE5ZjBkNWIwN2Nm
NzIxODZkNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTQgQEAKKzIwMjAtMDktMDQgIFBhYmxvIFNh
YXZlZHJhICA8cHNhYXZlZHJhQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dMSUJdIFJlbW90ZUlu
c3BlY3RvclNlcnZlciBpcyBub3Qgc3RhcnRlZCBpZiBXZWJLaXRXZWJDb250ZXh0IGlzIG5vdCBj
cmVhdGVkIGFscmVhZHkgY3JlYXRlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjE2MTIwCisKKyAgICAgICAgQWRkZWQgYSBXZWJLaXQvVUlQcm9jZXNz
L0FQSS9nbGliL1dlYktpdEluaXRpYWxpemUgd2hhdCBpbXBsZW1lbnRzCisgICAgICAgIGl0cyBv
d24gd2Via2l0SW5pdGlhbGl6ZSgpIHRvIGVuc3VyZSB0aGUgaW5zcGVjdG9yIHNlcnZlciBpcwor
ICAgICAgICBpbml0aWFsaXplZCBhcyBlYXJseSBhcyBwb3NzaWJsZSwgYmVmb3JlIG90aGVyIGFw
aSBjYWxscyB0aGF0IHdvdWxkCisgICAgICAgIGRlcGVuZCBvbiB0aGUgaW5zcGVjdG9yIHNlcnZl
ciBiZWluZyBydW5uaW5nLgorCisgICAgICAgIFRoZSBSZW1vdGVJbnNwZWN0b3JTZXJ2ZXIgaW5p
dGlhbGl6YXRpb24gaXMgbm90IGxvbmdlcgorICAgICAgICBhc29jaWF0ZWQgdG8gdGhlIGluaXRp
YWxpemF0aW9uIG9mIHRoZSBXZWJQcm9jZXNzUG9vbEdMaWIuCisKKyAgICAgICAgVGhlIHdlYmtp
dEluaXRpYWxpemUoKSBleHRlbmRzIHRoZSBzaGFyZWQgSW5pdGlhbGl6ZVdlYktpdDIoKTsKKyAg
ICAgICAgYW5kIGFsc28gaW5jbHVkZXMgdGhlIGluaXRpYWxpemF0aW9uIG9mIHRoZSBSZW1vdGVJ
bnNwZWN0b3JTZXJ2ZXIKKyAgICAgICAgc28gdGhlIGluaXRpYWxpemF0aW9uIG9mIHRoZSByZW1v
dGUgaW5zcGVjdG9yIHNlcnZlciBjYW4gYmUgbm93CisgICAgICAgIHRyaWdnZXJlZCBieSB0aGUg
aW5pdGlhbGl6YXRpb24gb2YgbWFueSBvdGhlciBBUEkgb2JqZWN0cyB0b286CisgICAgICAgIFdl
YktpdEdlb2xvY2F0aW9uTWFuYWdlciwgV2ViS2l0SW5wdXRNZXRob2RDb250ZXh0LCBXZWJLaXRT
ZXR0aW5ncywKKyAgICAgICAgV2ViS2l0VXNlckNvbnRlbnRNYW5hZ2VyLCBXZWJLaXRXZWJDb250
ZXh0LCBXZWJLaXRXZWJzaXRlRGF0YU1hbmFnZXIsCisgICAgICAgIFdlYktpdFVzZXJDb250ZW50
RmlsdGVyU3RvcmUsIFdlYktpdFdlYlZpZXdCYXNlLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogU291cmNlc0dUSy50eHQ6CisgICAgICAgICogU291
cmNlc1dQRS50eHQ6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdENvb2tpZU1h
bmFnZXIuY3BwOgorICAgICAgICAod2Via2l0X2Nvb2tpZV9tYW5hZ2VyX2NsYXNzX2luaXQpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRGYXZpY29uRGF0YWJhc2UuY3BwOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRHZW9sb2NhdGlvbk1hbmFnZXIuY3Bw
OgorICAgICAgICAod2Via2l0X2dlb2xvY2F0aW9uX21hbmFnZXJfY2xhc3NfaW5pdCk6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdEluaXRpYWxpemUuY3BwOiBBZGRlZC4KKyAg
ICAgICAgKFdlYktpdDo6aW5pdGlhbGl6ZVJlbW90ZUluc3BlY3RvclNlcnZlcik6CisgICAgICAg
IChXZWJLaXQ6OndlYmtpdEluaXRpYWxpemUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ2xp
Yi9XZWJLaXRJbml0aWFsaXplLmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ2xp
Yi9XZWJLaXRJbnB1dE1ldGhvZENvbnRleHQuY3BwOgorICAgICAgICAod2Via2l0X2lucHV0X21l
dGhvZF9jb250ZXh0X2NsYXNzX2luaXQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ2xpYi9X
ZWJLaXRTZXR0aW5ncy5jcHA6CisgICAgICAgICh3ZWJraXRfc2V0dGluZ3NfY2xhc3NfaW5pdCk6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVzZXJDb250ZW50RmlsdGVyU3Rv
cmUuY3BwOgorICAgICAgICAod2Via2l0X3VzZXJfY29udGVudF9maWx0ZXJfc3RvcmVfY2xhc3Nf
aW5pdCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVzZXJDb250ZW50TWFu
YWdlci5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYkNvbnRleHQu
Y3BwOgorICAgICAgICAod2Via2l0X3dlYl9jb250ZXh0X2NsYXNzX2luaXQpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJzaXRlRGF0YU1hbmFnZXIuY3BwOgorICAgICAg
ICAod2Via2l0X3dlYnNpdGVfZGF0YV9tYW5hZ2VyX2NsYXNzX2luaXQpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdCYXNlLmNwcDoKKyAgICAgICAgKHdlYmtpdF93
ZWJfdmlld19iYXNlX2NsYXNzX2luaXQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9nbGliL1dlYlBy
b2Nlc3NQb29sR0xpYi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpwbGF0
Zm9ybUluaXRpYWxpemUpOgorICAgICAgICAoV2ViS2l0Ojppbml0aWFsaXplUmVtb3RlSW5zcGVj
dG9yU2VydmVyKTogRGVsZXRlZC4KKwogMjAyMC0wOS0wMyAgQ2FybG9zIEdhcmNpYSBDYW1wb3Mg
IDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gVW5leHBlY3RlZCBVc2VyLUFn
ZW50IG9uIHJlZGlyZWN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNHVEsudHh0
IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzR1RLLnR4dAppbmRleCBmYzg4NjFjMjIxYThkMTBjYWQ3
ZTVlNmZhMThiZTNlMzYxOWNmMzFiLi4zMWRjMjE3NTRmMjUyZDZkZjU2ZTE2OWU4MDMyMjJhMjUw
ZGU4NDkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNHVEsudHh0CisrKyBiL1Nv
dXJjZS9XZWJLaXQvU291cmNlc0dUSy50eHQKQEAgLTE0MSw2ICsxNDEsNyBAQCBVSVByb2Nlc3Mv
QVBJL2dsaWIvV2ViS2l0Rm9ybVN1Ym1pc3Npb25SZXF1ZXN0LmNwcCBAbm8tdW5pZnkKIFVJUHJv
Y2Vzcy9BUEkvZ2xpYi9XZWJLaXRHZW9sb2NhdGlvbk1hbmFnZXIuY3BwIEBuby11bmlmeQogVUlQ
cm9jZXNzL0FQSS9nbGliL1dlYktpdEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuY3BwIEBu
by11bmlmeQogVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdEljb25Mb2FkaW5nQ2xpZW50LmNwcCBA
bm8tdW5pZnkKK1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRJbml0aWFsaXplLmNwcCBAbm8tdW5p
ZnkKIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRJbmplY3RlZEJ1bmRsZUNsaWVudC5jcHAgQG5v
LXVuaWZ5CiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0SW5wdXRNZXRob2RDb250ZXh0LmNwcCBA
bm8tdW5pZnkKIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRJbnN0YWxsTWlzc2luZ01lZGlhUGx1
Z2luc1Blcm1pc3Npb25SZXF1ZXN0LmNwcCBAbm8tdW5pZnkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvU291cmNlc1dQRS50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNXUEUudHh0CmluZGV4
IDZlMDFmMDQxNGUzZTcyOGJkNjQ2N2U4MWEyMjA3MjNhMTA1Njg1YzcuLjNjMjk5ZGZkNzI3OTJj
ZjFiNzk5ZGU2NDg2NjI2YzgwMzlkZGJjODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291
cmNlc1dQRS50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzV1BFLnR4dApAQCAtMTMyLDYg
KzEzMiw3IEBAIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRGb3JtQ2xpZW50LmNwcCBAbm8tdW5p
ZnkKIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRGb3JtU3VibWlzc2lvblJlcXVlc3QuY3BwIEBu
by11bmlmeQogVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdEdlb2xvY2F0aW9uTWFuYWdlci5jcHAg
QG5vLXVuaWZ5CiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0R2VvbG9jYXRpb25QZXJtaXNzaW9u
UmVxdWVzdC5jcHAgQG5vLXVuaWZ5CitVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0SW5pdGlhbGl6
ZS5jcHAgQG5vLXVuaWZ5CiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0SW5qZWN0ZWRCdW5kbGVD
bGllbnQuY3BwIEBuby11bmlmeQogVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdElucHV0TWV0aG9k
Q29udGV4dC5jcHAgQG5vLXVuaWZ5CiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0SW5zdGFsbE1p
c3NpbmdNZWRpYVBsdWdpbnNQZXJtaXNzaW9uUmVxdWVzdC5jcHAgQG5vLXVuaWZ5CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRDb29raWVNYW5hZ2Vy
LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdENvb2tpZU1hbmFn
ZXIuY3BwCmluZGV4IDFlZTczZWJjMGVhMDM2Zjg2YjNmZTk0NDE0OTA3MmU2YWM0ZGM3NjcuLjgy
MWJkNzZmNjMyMzQxYmU5YjFkZGRjZDVhZWFhM2NiMDhlY2M2ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdENvb2tpZU1hbmFnZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdENvb2tpZU1hbmFnZXIuY3Bw
CkBAIC0yNSw2ICsyNSw3IEBACiAjaW5jbHVkZSAiV2ViQ29va2llTWFuYWdlclByb3h5LmgiCiAj
aW5jbHVkZSAiV2ViS2l0Q29va2llTWFuYWdlclByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJLaXRF
bnVtVHlwZXMuaCIKKyNpbmNsdWRlICJXZWJLaXRJbml0aWFsaXplLmgiCiAjaW5jbHVkZSAiV2Vi
S2l0V2Vic2l0ZURhdGFNYW5hZ2VyUHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYktpdFdlYnNpdGVE
YXRhUHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYnNpdGVEYXRhUmVjb3JkLmgiCkBAIC0xMTgsNiAr
MTE5LDggQEAgc3RhdGljIGlubGluZSBXZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0UG9saWN5IHRv
SFRUUENvb2tpZUFjY2VwdFBvbGljeShXZWJLaXRDb28KIAogc3RhdGljIHZvaWQgd2Via2l0X2Nv
b2tpZV9tYW5hZ2VyX2NsYXNzX2luaXQoV2ViS2l0Q29va2llTWFuYWdlckNsYXNzKiBmaW5kQ2xh
c3MpCiB7CisgICAgd2Via2l0SW5pdGlhbGl6ZSgpOworCiAgICAgR09iamVjdENsYXNzKiBnT2Jq
ZWN0Q2xhc3MgPSBHX09CSkVDVF9DTEFTUyhmaW5kQ2xhc3MpOwogCiAgICAgLyoqCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRGYXZpY29uRGF0YWJh
c2UuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0RmF2aWNvbkRh
dGFiYXNlLmNwcAppbmRleCAzNmNjMjgyZDc4YjdhOGMzYjYzOGQzYTUwMDFkYjM0MThjMDA4Zjhl
Li45Mjk2NzhhNWI3NDg5NTkwNGE0ODA0ZWYxNmZjNjU3MmUzYjQ4YWExIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRGYXZpY29uRGF0YWJhc2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdEZhdmljb25EYXRh
YmFzZS5jcHAKQEAgLTIyLDYgKzIyLDcgQEAKIAogI2luY2x1ZGUgIkljb25EYXRhYmFzZS5oIgog
I2luY2x1ZGUgIldlYktpdEZhdmljb25EYXRhYmFzZVByaXZhdGUuaCIKKyNpbmNsdWRlICJXZWJL
aXRJbml0aWFsaXplLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9JbWFnZS5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvSW50U2l6ZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVmUHRyQ2Fpcm8uaD4KQEAgLTcz
LDYgKzc0LDggQEAgV0VCS0lUX0RFRklORV9UWVBFKFdlYktpdEZhdmljb25EYXRhYmFzZSwgd2Vi
a2l0X2Zhdmljb25fZGF0YWJhc2UsIEdfVFlQRV9PQkpFQ1QKIAogc3RhdGljIHZvaWQgd2Via2l0
X2Zhdmljb25fZGF0YWJhc2VfY2xhc3NfaW5pdChXZWJLaXRGYXZpY29uRGF0YWJhc2VDbGFzcyog
ZmF2aWNvbkRhdGFiYXNlQ2xhc3MpCiB7CisgICAgd2Via2l0SW5pdGlhbGl6ZSgpOworCiAgICAg
LyoqCiAgICAgICogV2ViS2l0RmF2aWNvbkRhdGFiYXNlOjpmYXZpY29uLWNoYW5nZWQ6CiAgICAg
ICogQGRhdGFiYXNlOiB0aGUgb2JqZWN0IG9uIHdoaWNoIHRoZSBzaWduYWwgaXMgZW1pdHRlZApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0SW5pdGlh
bGl6ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRJbml0aWFs
aXplLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5lNzJkNWRiZDdhN2FiYzk2ZWNhMDJjZjMzMjhhZmIzNWIzMjYy
MmQ2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIv
V2ViS2l0SW5pdGlhbGl6ZS5jcHAKQEAgLTAsMCArMSw3MiBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiV2ViS2l0SW5pdGlhbGl6ZS5oIgorCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvUmVt
b3RlSW5zcGVjdG9yU2VydmVyLmg+CisjaW5jbHVkZSA8V2ViS2l0L1NoYXJlZC9XZWJLaXQySW5p
dGlhbGl6ZS5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dVbmlxdWVQdHIuaD4KKworbmFtZXNwYWNl
IFdlYktpdCB7CisKKyNpZiBFTkFCTEUoUkVNT1RFX0lOU1BFQ1RPUikKK3N0YXRpYyB2b2lkIGlu
aXRpYWxpemVSZW1vdGVJbnNwZWN0b3JTZXJ2ZXIoY29uc3QgY2hhciogYWRkcmVzcykKK3sKKyAg
ICBpZiAoSW5zcGVjdG9yOjpSZW1vdGVJbnNwZWN0b3JTZXJ2ZXI6OnNpbmdsZXRvbigpLmlzUnVu
bmluZygpKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoIWFkZHJlc3NbMF0pCisgICAgICAg
IHJldHVybjsKKworICAgIEdVbmlxdWVQdHI8Y2hhcj4gaW5zcGVjdG9yQWRkcmVzcyhnX3N0cmR1
cChhZGRyZXNzKSk7CisgICAgY2hhciogcG9ydFB0ciA9IGdfc3RycnN0cihpbnNwZWN0b3JBZGRy
ZXNzLmdldCgpLCAiOiIpOworICAgIGlmICghcG9ydFB0cikKKyAgICAgICAgcmV0dXJuOworCisg
ICAgKnBvcnRQdHIgPSAnXDAnOworICAgIHBvcnRQdHIrKzsKKyAgICBndWludDY0IHBvcnQgPSBn
X2FzY2lpX3N0cnRvdWxsKHBvcnRQdHIsIG51bGxwdHIsIDEwKTsKKyAgICBpZiAoIXBvcnQpCisg
ICAgICAgIHJldHVybjsKKworICAgIEluc3BlY3Rvcjo6UmVtb3RlSW5zcGVjdG9yU2VydmVyOjpz
aW5nbGV0b24oKS5zdGFydChpbnNwZWN0b3JBZGRyZXNzLmdldCgpLCBwb3J0KTsKK30KKyNlbmRp
ZgorCit2b2lkIHdlYmtpdEluaXRpYWxpemUoKQoreworICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxh
ZyBvbmNlRmxhZzsKKworICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2VGbGFnLCBbXSB7CisgICAgICAg
IEluaXRpYWxpemVXZWJLaXQyKCk7CisjaWYgRU5BQkxFKFJFTU9URV9JTlNQRUNUT1IpCisgICAg
ICAgIGlmIChjb25zdCBjaGFyKiBhZGRyZXNzID0gZ19nZXRlbnYoIldFQktJVF9JTlNQRUNUT1Jf
U0VSVkVSIikpCisgICAgICAgICAgICBpbml0aWFsaXplUmVtb3RlSW5zcGVjdG9yU2VydmVyKGFk
ZHJlc3MpOworI2VuZGlmCisgICAgfSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0SW5pdGlhbGl6
ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0SW5pdGlhbGl6ZS5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjE2N2I0YTc4ZjU3MGQ4NWY1MGUxY2RjYjk5ZDIxNzdmNTNlZjRlMjMKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRJ
bml0aWFsaXplLmgKQEAgLTAsMCArMSwzMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJ
Z2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworbmFtZXNwYWNlIFdlYktpdCB7
CisKK3ZvaWQgd2Via2l0SW5pdGlhbGl6ZSgpOworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRJbnB1dE1ldGhvZENvbnRleHQuY3BwIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0SW5wdXRNZXRob2RDb250ZXh0LmNw
cAppbmRleCA5YzMwMmUyMWFjMWIyNDIwZGYxY2UzNmFhMmQ1NDkyMmI2NzE2MTQwLi5lMjlmZmU2
MmMzYjFkZTNjNTk1ZjJlMmYxZjZhNWUxNDk1N2M4ZWEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRJbnB1dE1ldGhvZENvbnRleHQuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdElucHV0TWV0aG9kQ29udGV4
dC5jcHAKQEAgLTIxLDYgKzIxLDcgQEAKICNpbmNsdWRlICJXZWJLaXRJbnB1dE1ldGhvZENvbnRl
eHQuaCIKIAogI2luY2x1ZGUgIldlYktpdEVudW1UeXBlcy5oIgorI2luY2x1ZGUgIldlYktpdElu
aXRpYWxpemUuaCIKICNpbmNsdWRlICJXZWJLaXRJbnB1dE1ldGhvZENvbnRleHRQcml2YXRlLmgi
CiAjaW5jbHVkZSAiV2ViS2l0V2ViVmlldy5oIgogI2luY2x1ZGUgPGdsaWIvZ2kxOG4tbGliLmg+
CkBAIC0yMDMsNiArMjA0LDggQEAgc3RhdGljIHZvaWQgd2Via2l0SW5wdXRNZXRob2RDb250ZXh0
R2V0UHJvcGVydHkoR09iamVjdCogb2JqZWN0LCBndWludCBwcm9wSWQsIEcKIAogc3RhdGljIHZv
aWQgd2Via2l0X2lucHV0X21ldGhvZF9jb250ZXh0X2NsYXNzX2luaXQoV2ViS2l0SW5wdXRNZXRo
b2RDb250ZXh0Q2xhc3MqIGtsYXNzKQogeworICAgIFdlYktpdDo6d2Via2l0SW5pdGlhbGl6ZSgp
OworCiAgICAgR09iamVjdENsYXNzKiBnT2JqZWN0Q2xhc3MgPSBHX09CSkVDVF9DTEFTUyhrbGFz
cyk7CiAgICAgZ09iamVjdENsYXNzLT5zZXRfcHJvcGVydHkgPSB3ZWJraXRJbnB1dE1ldGhvZENv
bnRleHRTZXRQcm9wZXJ0eTsKICAgICBnT2JqZWN0Q2xhc3MtPmdldF9wcm9wZXJ0eSA9IHdlYmtp
dElucHV0TWV0aG9kQ29udGV4dEdldFByb3BlcnR5OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0U2V0dGluZ3MuY3BwIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0U2V0dGluZ3MuY3BwCmluZGV4IDEwODM5NTNmNWQxZDdh
MWRjMGMwM2FjNTI2MDc1NGViNDM4NjBmMTguLjAwZDdlNWQ0MTRlZjk2NmUwYjE2MDRjYmY5M2M1
ZmQwYWQxNjExZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGli
L1dlYktpdFNldHRpbmdzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xp
Yi9XZWJLaXRTZXR0aW5ncy5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJXZWJLaXRT
ZXR0aW5ncy5oIgogCiAjaW5jbHVkZSAiV2ViS2l0RW51bVR5cGVzLmgiCisjaW5jbHVkZSAiV2Vi
S2l0SW5pdGlhbGl6ZS5oIgogI2luY2x1ZGUgIldlYktpdFNldHRpbmdzUHJpdmF0ZS5oIgogI2lu
Y2x1ZGUgIldlYlBhZ2VQcm94eS5oIgogI2luY2x1ZGUgIldlYlByZWZlcmVuY2VzLmgiCkBAIC02
MDYsNiArNjA3LDggQEAgc3RhdGljIHZvaWQgd2ViS2l0U2V0dGluZ3NHZXRQcm9wZXJ0eShHT2Jq
ZWN0KiBvYmplY3QsIGd1aW50IHByb3BJZCwgR1ZhbHVlKiB2YWwKIAogc3RhdGljIHZvaWQgd2Vi
a2l0X3NldHRpbmdzX2NsYXNzX2luaXQoV2ViS2l0U2V0dGluZ3NDbGFzcyoga2xhc3MpCiB7Cisg
ICAgd2Via2l0SW5pdGlhbGl6ZSgpOworCiAgICAgR09iamVjdENsYXNzKiBnT2JqZWN0Q2xhc3Mg
PSBHX09CSkVDVF9DTEFTUyhrbGFzcyk7CiAgICAgZ09iamVjdENsYXNzLT5jb25zdHJ1Y3RlZCA9
IHdlYktpdFNldHRpbmdzQ29uc3RydWN0ZWQ7CiAgICAgZ09iamVjdENsYXNzLT5kaXNwb3NlID0g
d2ViS2l0U2V0dGluZ3NEaXNwb3NlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL2dsaWIvV2ViS2l0VXNlckNvbnRlbnRGaWx0ZXJTdG9yZS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRVc2VyQ29udGVudEZpbHRlclN0b3JlLmNwcApp
bmRleCBjNmViZTk5N2Y4MGU2MDVjNzQxNTE5ZjVlNzVmYmUwMGY4ZmFiNTBmLi4wZGY0OTJhNzcy
MjFiMWQwNTlkZDFjMTQxYzE3MjI2ZTU2NDUyYTNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRVc2VyQ29udGVudEZpbHRlclN0b3JlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRVc2VyQ29udGVudEZpbHRl
clN0b3JlLmNwcApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIkFQSUNvbnRlbnRSdWxlTGlz
dC5oIgogI2luY2x1ZGUgIkFQSUNvbnRlbnRSdWxlTGlzdFN0b3JlLmgiCiAjaW5jbHVkZSAiV2Vi
S2l0RXJyb3IuaCIKKyNpbmNsdWRlICJXZWJLaXRJbml0aWFsaXplLmgiCiAjaW5jbHVkZSAiV2Vi
S2l0VXNlckNvbnRlbnQuaCIKICNpbmNsdWRlICJXZWJLaXRVc2VyQ29udGVudFByaXZhdGUuaCIK
ICNpbmNsdWRlIDxXZWJDb3JlL0NvbnRlbnRFeHRlbnNpb25FcnJvci5oPgpAQCAtNDAsNiArNDEs
OCBAQAogI2luY2x1ZGUgPHd0Zi9nbGliL0dVbmlxdWVQdHIuaD4KICNpbmNsdWRlIDx3dGYvZ2xp
Yi9XVEZHVHlwZS5oPgogCit1c2luZyBuYW1lc3BhY2UgV2ViS2l0OworCiAvKioKICAqIFNFQ1RJ
T046IFdlYktpdFVzZXJDb250ZW50RmlsdGVyU3RvcmUKICAqIEBTaG9ydF9kZXNjcmlwdGlvbjog
SGFuZGxlcyBzdG9yYWdlIG9mIHVzZXIgY29udGVudCBmaWx0ZXJzIG9uIGRpc2suCkBAIC0xMTYs
NiArMTE5LDggQEAgc3RhdGljIHZvaWQgd2Via2l0VXNlckNvbnRlbnRGaWx0ZXJTdG9yZUNvbnN0
cnVjdGVkKEdPYmplY3QqIG9iamVjdCkKIAogc3RhdGljIHZvaWQgd2Via2l0X3VzZXJfY29udGVu
dF9maWx0ZXJfc3RvcmVfY2xhc3NfaW5pdChXZWJLaXRVc2VyQ29udGVudEZpbHRlclN0b3JlQ2xh
c3MqIHN0b3JlQ2xhc3MpCiB7CisgICAgd2Via2l0SW5pdGlhbGl6ZSgpOworCiAgICAgR09iamVj
dENsYXNzKiBnT2JqZWN0Q2xhc3MgPSBHX09CSkVDVF9DTEFTUyhzdG9yZUNsYXNzKTsKIAogICAg
IGdPYmplY3RDbGFzcy0+Z2V0X3Byb3BlcnR5ID0gd2Via2l0VXNlckNvbnRlbnRGaWx0ZXJTdG9y
ZUdldFByb3BlcnR5OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2ds
aWIvV2ViS2l0VXNlckNvbnRlbnRNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9nbGliL1dlYktpdFVzZXJDb250ZW50TWFuYWdlci5jcHAKaW5kZXggZGExMjllM2I4YjUz
NzAxNDZjNTJkYzI4NGE1ZmQzYjg2Mjk0MzYwOS4uNjI1OGNmMDFiMjQwYTVlN2Y0ZDY2ZjFiZTI3
YTNkOWE2YTMxMjIzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2ds
aWIvV2ViS2l0VXNlckNvbnRlbnRNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvZ2xpYi9XZWJLaXRVc2VyQ29udGVudE1hbmFnZXIuY3BwCkBAIC0yMiw2ICsyMiw3
IEBACiAKICNpbmNsdWRlICJBUElTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIKICNpbmNsdWRlICJJ
bmplY3RVc2VyU2NyaXB0SW1tZWRpYXRlbHkuaCIKKyNpbmNsdWRlICJXZWJLaXRJbml0aWFsaXpl
LmgiCiAjaW5jbHVkZSAiV2ViS2l0SmF2YXNjcmlwdFJlc3VsdFByaXZhdGUuaCIKICNpbmNsdWRl
ICJXZWJLaXRVc2VyQ29udGVudE1hbmFnZXJQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0VXNl
ckNvbnRlbnRQcml2YXRlLmgiCkBAIC03OCw2ICs3OSw4IEBAIHN0YXRpYyBndWludCBzaWduYWxz
W0xBU1RfU0lHTkFMXSA9IHsgMCwgfTsKIAogc3RhdGljIHZvaWQgd2Via2l0X3VzZXJfY29udGVu
dF9tYW5hZ2VyX2NsYXNzX2luaXQoV2ViS2l0VXNlckNvbnRlbnRNYW5hZ2VyQ2xhc3MqIGtsYXNz
KQogeworICAgIHdlYmtpdEluaXRpYWxpemUoKTsKKwogICAgIEdPYmplY3RDbGFzcyogZ09iamVj
dENsYXNzID0gR19PQkpFQ1RfQ0xBU1Moa2xhc3MpOwogCiAgICAgLyoqCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJDb250ZXh0LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYkNvbnRleHQuY3BwCmluZGV4
IDhkZTcyMmQ0NWJiYmFkZDU0ZDIzOWYyZTI3MWRlMTZjOTQ5MGQ1ZGIuLmZiMTJiMjE3Nzc0ZjM5
N2U1NmM3ZWYzN2QwMzQ5Y2Q1YzIwYTU0MmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYkNvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYkNvbnRleHQuY3BwCkBAIC0zMiwxMiArMzIsMTIg
QEAKICNpbmNsdWRlICJUZXh0Q2hlY2tlclN0YXRlLmgiCiAjaW5jbHVkZSAiV2ViQXV0b21hdGlv
blNlc3Npb24uaCIKICNpbmNsdWRlICJXZWJDZXJ0aWZpY2F0ZUluZm8uaCIKLSNpbmNsdWRlICJX
ZWJLaXQySW5pdGlhbGl6ZS5oIgogI2luY2x1ZGUgIldlYktpdEF1dG9tYXRpb25TZXNzaW9uUHJp
dmF0ZS5oIgogI2luY2x1ZGUgIldlYktpdERvd25sb2FkQ2xpZW50LmgiCiAjaW5jbHVkZSAiV2Vi
S2l0RG93bmxvYWRQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0RmF2aWNvbkRhdGFiYXNlUHJp
dmF0ZS5oIgogI2luY2x1ZGUgIldlYktpdEdlb2xvY2F0aW9uTWFuYWdlclByaXZhdGUuaCIKKyNp
bmNsdWRlICJXZWJLaXRJbml0aWFsaXplLmgiCiAjaW5jbHVkZSAiV2ViS2l0SW5qZWN0ZWRCdW5k
bGVDbGllbnQuaCIKICNpbmNsdWRlICJXZWJLaXROZXR3b3JrUHJveHlTZXR0aW5nc1ByaXZhdGUu
aCIKICNpbmNsdWRlICJXZWJLaXROb3RpZmljYXRpb25Qcm92aWRlci5oIgpAQCAtNDYzLDEzICs0
NjMsMTMgQEAgc3RhdGljIHZvaWQgd2Via2l0V2ViQ29udGV4dERpc3Bvc2UoR09iamVjdCogb2Jq
ZWN0KQogCiBzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX2NvbnRleHRfY2xhc3NfaW5pdChXZWJLaXRX
ZWJDb250ZXh0Q2xhc3MqIHdlYkNvbnRleHRDbGFzcykKIHsKKyAgICB3ZWJraXRJbml0aWFsaXpl
KCk7CisKICAgICBHT2JqZWN0Q2xhc3MqIGdPYmplY3RDbGFzcyA9IEdfT0JKRUNUX0NMQVNTKHdl
YkNvbnRleHRDbGFzcyk7CiAKICAgICBiaW5kdGV4dGRvbWFpbihHRVRURVhUX1BBQ0tBR0UsIExP
Q0FMRURJUik7CiAgICAgYmluZF90ZXh0ZG9tYWluX2NvZGVzZXQoR0VUVEVYVF9QQUNLQUdFLCAi
VVRGLTgiKTsKIAotICAgIEluaXRpYWxpemVXZWJLaXQyKCk7Ci0KICAgICBnT2JqZWN0Q2xhc3Mt
PmdldF9wcm9wZXJ0eSA9IHdlYmtpdFdlYkNvbnRleHRHZXRQcm9wZXJ0eTsKICAgICBnT2JqZWN0
Q2xhc3MtPnNldF9wcm9wZXJ0eSA9IHdlYmtpdFdlYkNvbnRleHRTZXRQcm9wZXJ0eTsKICAgICBn
T2JqZWN0Q2xhc3MtPmNvbnN0cnVjdGVkID0gd2Via2l0V2ViQ29udGV4dENvbnN0cnVjdGVkOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2Vic2l0
ZURhdGFNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktp
dFdlYnNpdGVEYXRhTWFuYWdlci5jcHAKaW5kZXggMTNiMGZlMjA3NzNkYTUxZmIyYTY3ZTIyNjhm
MjJmN2Y5ZTcwMjVhMC4uYmVmYmM2M2YyMGRjNGVlNGUwOWJmMWI5MzlkM2M1ZTdlNWVhM2YzOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2Vic2l0
ZURhdGFNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9X
ZWJLaXRXZWJzaXRlRGF0YU1hbmFnZXIuY3BwCkBAIC0yMSw2ICsyMSw3IEBACiAjaW5jbHVkZSAi
V2ViS2l0V2Vic2l0ZURhdGFNYW5hZ2VyLmgiCiAKICNpbmNsdWRlICJXZWJLaXRDb29raWVNYW5h
Z2VyUHJpdmF0ZS5oIgorI2luY2x1ZGUgIldlYktpdEluaXRpYWxpemUuaCIKICNpbmNsdWRlICJX
ZWJLaXRQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0V2Vic2l0ZURhdGFNYW5hZ2VyUHJpdmF0
ZS5oIgogI2luY2x1ZGUgIldlYktpdFdlYnNpdGVEYXRhUHJpdmF0ZS5oIgpAQCAtMjQ0LDYgKzI0
NSw4IEBAIHN0YXRpYyB2b2lkIHdlYmtpdFdlYnNpdGVEYXRhTWFuYWdlckNvbnN0cnVjdGVkKEdP
YmplY3QqIG9iamVjdCkKIAogc3RhdGljIHZvaWQgd2Via2l0X3dlYnNpdGVfZGF0YV9tYW5hZ2Vy
X2NsYXNzX2luaXQoV2ViS2l0V2Vic2l0ZURhdGFNYW5hZ2VyQ2xhc3MqIGZpbmRDbGFzcykKIHsK
KyAgICB3ZWJraXRJbml0aWFsaXplKCk7CisKICAgICBHT2JqZWN0Q2xhc3MqIGdPYmplY3RDbGFz
cyA9IEdfT0JKRUNUX0NMQVNTKGZpbmRDbGFzcyk7CiAKICAgICBnT2JqZWN0Q2xhc3MtPmdldF9w
cm9wZXJ0eSA9IHdlYmtpdFdlYnNpdGVEYXRhTWFuYWdlckdldFByb3BlcnR5OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3QmFzZS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdCYXNlLmNwcApp
bmRleCA2NmQ3NDdhNDQzODZiNzMxN2FmMjllMDY3MGQ1N2E0ZWFlNDFmMTUxLi41MDdhZDVhNTU2
ZGMyOTk0N2MwYzMyNDNlYjE4YmU4NDA3ZWEzZmJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdCYXNlLmNwcApAQCAtNDYsNiArNDYs
NyBAQAogI2luY2x1ZGUgIldlYkluc3BlY3RvclByb3h5LmgiCiAjaW5jbHVkZSAiV2ViS2l0Mklu
aXRpYWxpemUuaCIKICNpbmNsdWRlICJXZWJLaXRFbW9qaUNob29zZXIuaCIKKyNpbmNsdWRlICJX
ZWJLaXRJbml0aWFsaXplLmgiCiAjaW5jbHVkZSAiV2ViS2l0SW5wdXRNZXRob2RDb250ZXh0SW1w
bEd0ay5oIgogI2luY2x1ZGUgIldlYktpdFdlYlZpZXdBY2Nlc3NpYmxlLmgiCiAjaW5jbHVkZSAi
V2ViS2l0V2ViVmlld0Jhc2VJbnRlcm5hbC5oIgpAQCAtMjAyNCw5ICsyMDI1LDkgQEAgc3RhdGlj
IHZvaWQgd2Via2l0X3dlYl92aWV3X2Jhc2VfY2xhc3NfaW5pdChXZWJLaXRXZWJWaWV3QmFzZUNs
YXNzKiB3ZWJraXRXZWJWaWUKICNlbmRpZgogCiAgICAgLy8gQmVmb3JlIGNyZWF0aW5nIGEgV2Vi
S2l0V2ViVmlld0Jhc2VQcml2IHdlIG5lZWQgdG8gYmUgc3VyZSB0aGF0IFdlYktpdCBpcyBzdGFy
dGVkLgotICAgIC8vIFVzdWFsbHkgc3RhcnRpbmcgYSBjb250ZXh0IHRyaWdnZXJzIEluaXRpYWxp
emVXZWJLaXQyLCBidXQgaW4gY2FzZQorICAgIC8vIFVzdWFsbHkgc3RhcnRpbmcgYSBjb250ZXh0
IHRyaWdnZXJzIHdlYmtpdEluaXRpYWxpemUsIGJ1dCBpbiBjYXNlCiAgICAgLy8gd2UgY3JlYXRl
IGEgdmlldyB3aXRob3V0IGFza2luZyBiZWZvcmUgZm9yIGEgZGVmYXVsdF9jb250ZXh0IHdlIGdl
dCBhIGNyYXNoLgotICAgIFdlYktpdDo6SW5pdGlhbGl6ZVdlYktpdDIoKTsKKyAgICBXZWJLaXQ6
OndlYmtpdEluaXRpYWxpemUoKTsKIAogICAgIGd0a193aWRnZXRfY2xhc3Nfc2V0X2Nzc19uYW1l
KHdpZGdldENsYXNzLCAid2Via2l0d2VidmlldyIpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvZ2xpYi9XZWJQcm9jZXNzUG9vbEdMaWIuY3BwIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvZ2xpYi9XZWJQcm9jZXNzUG9vbEdMaWIuY3BwCmluZGV4IGRlYWFiZjdjN2Jk
ZDMwNTdkYzg5NjRjMzM5ZWQ1MGMyMjRiM2VmNzcuLmJlMTk3OTZlZDk2ZDA3MDU0MjhmMDgxOTk1
ODA2MjU0ZTJmMmFkMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2dsaWIv
V2ViUHJvY2Vzc1Bvb2xHTGliLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9nbGli
L1dlYlByb2Nlc3NQb29sR0xpYi5jcHAKQEAgLTMxLDEwICszMSw4IEBACiAjaW5jbHVkZSAiTGVn
YWN5R2xvYmFsU2V0dGluZ3MuaCIKICNpbmNsdWRlICJXZWJNZW1vcnlQcmVzc3VyZUhhbmRsZXIu
aCIKICNpbmNsdWRlICJXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCi0jaW5jbHVkZSA8
SmF2YVNjcmlwdENvcmUvUmVtb3RlSW5zcGVjdG9yU2VydmVyLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9QbGF0Zm9ybURpc3BsYXkuaD4KICNpbmNsdWRlIDx3dGYvRmlsZVN5c3RlbS5oPgotI2luY2x1
ZGUgPHd0Zi9nbGliL0dVbmlxdWVQdHIuaD4KIAogI2lmIFVTRShHU1RSRUFNRVIpCiAjaW5jbHVk
ZSA8V2ViQ29yZS9HU3RyZWFtZXJDb21tb24uaD4KQEAgLTU0LDMwICs1Miw2IEBACiAKIG5hbWVz
cGFjZSBXZWJLaXQgewogCi0jaWYgRU5BQkxFKFJFTU9URV9JTlNQRUNUT1IpCi1zdGF0aWMgdm9p
ZCBpbml0aWFsaXplUmVtb3RlSW5zcGVjdG9yU2VydmVyKGNvbnN0IGNoYXIqIGFkZHJlc3MpCi17
Ci0gICAgaWYgKEluc3BlY3Rvcjo6UmVtb3RlSW5zcGVjdG9yU2VydmVyOjpzaW5nbGV0b24oKS5p
c1J1bm5pbmcoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgaWYgKCFhZGRyZXNzWzBdKQotICAg
ICAgICByZXR1cm47Ci0KLSAgICBHVW5pcXVlUHRyPGNoYXI+IGluc3BlY3RvckFkZHJlc3MoZ19z
dHJkdXAoYWRkcmVzcykpOwotICAgIGNoYXIqIHBvcnRQdHIgPSBnX3N0cnJzdHIoaW5zcGVjdG9y
QWRkcmVzcy5nZXQoKSwgIjoiKTsKLSAgICBpZiAoIXBvcnRQdHIpCi0gICAgICAgIHJldHVybjsK
LQotICAgICpwb3J0UHRyID0gJ1wwJzsKLSAgICBwb3J0UHRyKys7Ci0gICAgZ3VpbnQ2NCBwb3J0
ID0gZ19hc2NpaV9zdHJ0b3VsbChwb3J0UHRyLCBudWxscHRyLCAxMCk7Ci0gICAgaWYgKCFwb3J0
KQotICAgICAgICByZXR1cm47Ci0KLSAgICBJbnNwZWN0b3I6OlJlbW90ZUluc3BlY3RvclNlcnZl
cjo6c2luZ2xldG9uKCkuc3RhcnQoaW5zcGVjdG9yQWRkcmVzcy5nZXQoKSwgcG9ydCk7Ci19Ci0j
ZW5kaWYKLQogc3RhdGljIGJvb2wgbWVtb3J5UHJlc3N1cmVNb25pdG9yRGlzYWJsZWQoKQogewog
ICAgIHN0YXRpYyBjb25zdCBjaGFyKiBkaXNhYmxlTWVtb3J5UHJlc3N1cmVNb25pdG9yID0gZ2V0
ZW52KCJXRUJLSVRfRElTQUJMRV9NRU1PUllfUFJFU1NVUkVfTU9OSVRPUiIpOwpAQCAtOTIsMTEg
KzY2LDYgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplKCkKICAgICBp
ZiAoY29uc3QgY2hhciogZm9yY2VDb21wbGV4VGV4dCA9IGdldGVudigiV0VCS0lUX0ZPUkNFX0NP
TVBMRVhfVEVYVCIpKQogICAgICAgICBtX2Fsd2F5c1VzZXNDb21wbGV4VGV4dENvZGVQYXRoID0g
IXN0cmNtcChmb3JjZUNvbXBsZXhUZXh0LCAiMSIpOwogCi0jaWYgRU5BQkxFKFJFTU9URV9JTlNQ
RUNUT1IpCi0gICAgaWYgKGNvbnN0IGNoYXIqIGFkZHJlc3MgPSBnX2dldGVudigiV0VCS0lUX0lO
U1BFQ1RPUl9TRVJWRVIiKSkKLSAgICAgICAgaW5pdGlhbGl6ZVJlbW90ZUluc3BlY3RvclNlcnZl
cihhZGRyZXNzKTsKLSNlbmRpZgotCiAgICAgaWYgKCFtZW1vcnlQcmVzc3VyZU1vbml0b3JEaXNh
YmxlZCgpKQogICAgICAgICBpbnN0YWxsTWVtb3J5UHJlc3N1cmVIYW5kbGVyKCk7CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>408178</attachid>
            <date>2020-09-07 07:31:36 -0700</date>
            <delta_ts>2020-09-07 12:39:19 -0700</delta_ts>
            <desc>patch</desc>
            <filename>bug-216120-20200907162945.patch</filename>
            <type>text/plain</type>
            <size>18334</size>
            <attacher name="Pablo Saavedra">psaavedra</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY2NTgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDI0YWMxMWNjZTYwNDk4MGMy
ZmUwMDIwZTZhYjc3MzJhNjQxYzQ5ZTkuLjgwMjcxNzAyMGY4ZWM3YzIxNzBmZTJmYzUzY2M3NDhi
MjI2ZGI0MmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDkgQEAKKzIwMjAtMDktMDcgIFBhYmxvIFNh
YXZlZHJhICA8cHNhYXZlZHJhQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dMSUJdIFJlbW90ZUlu
c3BlY3RvclNlcnZlciBpcyBub3Qgc3RhcnRlZCBpZiBXZWJLaXRXZWJDb250ZXh0IGlzIG5vdCBj
cmVhdGVkIGFscmVhZHkgY3JlYXRlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjE2MTIwCisKKyAgICAgICAgQWRkZWQgYSBXZWJLaXQvVUlQcm9jZXNz
L0FQSS9nbGliL1dlYktpdEluaXRpYWxpemUgd2hhdCBpbXBsZW1lbnRzCisgICAgICAgIGl0cyBv
d24gd2Via2l0SW5pdGlhbGl6ZSgpIHRvIGVuc3VyZSB0aGUgaW5zcGVjdG9yIHNlcnZlciBpcwor
ICAgICAgICBpbml0aWFsaXplZCBhcyBlYXJseSBhcyBwb3NzaWJsZSwgYmVmb3JlIG90aGVyIGFw
aSBjYWxscyB0aGF0IHdvdWxkCisgICAgICAgIGRlcGVuZCBvbiB0aGUgaW5zcGVjdG9yIHNlcnZl
ciBiZWluZyBydW5uaW5nLgorCisgICAgICAgIFRoZSBSZW1vdGVJbnNwZWN0b3JTZXJ2ZXIgaW5p
dGlhbGl6YXRpb24gaXMgbm90IGxvbmdlcgorICAgICAgICBhc29jaWF0ZWQgdG8gdGhlIGluaXRp
YWxpemF0aW9uIG9mIHRoZSBXZWJQcm9jZXNzUG9vbEdMaWIuCisKKyAgICAgICAgVGhlIHdlYmtp
dEluaXRpYWxpemUoKSBleHRlbmRzIHRoZSBzaGFyZWQgSW5pdGlhbGl6ZVdlYktpdDIoKTsKKyAg
ICAgICAgYW5kIGFsc28gaW5jbHVkZXMgdGhlIGluaXRpYWxpemF0aW9uIG9mIHRoZSBSZW1vdGVJ
bnNwZWN0b3JTZXJ2ZXIKKyAgICAgICAgc28gdGhlIGluaXRpYWxpemF0aW9uIG9mIHRoZSByZW1v
dGUgaW5zcGVjdG9yIHNlcnZlciBjYW4gYmUgbm93CisgICAgICAgIHRyaWdnZXJlZCBieSB0aGUg
aW5pdGlhbGl6YXRpb24gb2YgbWFueSBvdGhlciBBUEkgb2JqZWN0cyB0b286CisgICAgICAgIFdl
YktpdElucHV0TWV0aG9kQ29udGV4dCwgV2ViS2l0U2V0dGluZ3MsIFdlYktpdFVzZXJDb250ZW50
TWFuYWdlciwKKyAgICAgICAgV2ViS2l0V2ViQ29udGV4dCwgV2ViS2l0V2Vic2l0ZURhdGFNYW5h
Z2VyLAorICAgICAgICBXZWJLaXRVc2VyQ29udGVudEZpbHRlclN0b3JlLCBXZWJLaXRXZWJWaWV3
QmFzZS4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IFNvdXJjZXNHVEsudHh0OgorICAgICAgICAqIFNvdXJjZXNXUEUudHh0OgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRJbml0aWFsaXplLmNwcDogQWRkZWQuCisgICAgICAgIChX
ZWJLaXQ6OmluaXRpYWxpemVSZW1vdGVJbnNwZWN0b3JTZXJ2ZXIpOgorICAgICAgICAoV2ViS2l0
Ojp3ZWJraXRJbml0aWFsaXplKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0
SW5pdGlhbGl6ZS5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0
SW5wdXRNZXRob2RDb250ZXh0LmNwcDoKKyAgICAgICAgKHdlYmtpdF9pbnB1dF9tZXRob2RfY29u
dGV4dF9jbGFzc19pbml0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0U2V0
dGluZ3MuY3BwOgorICAgICAgICAod2Via2l0X3NldHRpbmdzX2NsYXNzX2luaXQpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRVc2VyQ29udGVudEZpbHRlclN0b3JlLmNwcDoK
KyAgICAgICAgKHdlYmtpdF91c2VyX2NvbnRlbnRfZmlsdGVyX3N0b3JlX2NsYXNzX2luaXQpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRVc2VyQ29udGVudE1hbmFnZXIuY3Bw
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJDb250ZXh0LmNwcDoKKyAg
ICAgICAgKHdlYmtpdF93ZWJfY29udGV4dF9jbGFzc19pbml0KToKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL2dsaWIvV2ViS2l0V2Vic2l0ZURhdGFNYW5hZ2VyLmNwcDoKKyAgICAgICAgKHdlYmtp
dF93ZWJzaXRlX2RhdGFfbWFuYWdlcl9jbGFzc19pbml0KToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL2d0ay9XZWJLaXRXZWJWaWV3QmFzZS5jcHA6CisgICAgICAgICh3ZWJraXRfd2ViX3ZpZXdf
YmFzZV9jbGFzc19pbml0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvZ2xpYi9XZWJQcm9jZXNzUG9v
bEdMaWIuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0
aWFsaXplKToKKyAgICAgICAgKFdlYktpdDo6aW5pdGlhbGl6ZVJlbW90ZUluc3BlY3RvclNlcnZl
cik6IERlbGV0ZWQuCisKIDIwMjAtMDktMDMgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNp
YUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdIFVuZXhwZWN0ZWQgVXNlci1BZ2VudCBvbiBy
ZWRpcmVjdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzR1RLLnR4dCBiL1NvdXJj
ZS9XZWJLaXQvU291cmNlc0dUSy50eHQKaW5kZXggZmM4ODYxYzIyMWE4ZDEwY2FkN2U1ZTZmYTE4
YmUzZTM2MTljZjMxYi4uMzFkYzIxNzU0ZjI1MmQ2ZGY1NmUxNjllODAzMjIyYTI1MGRlODQ5MCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzR1RLLnR4dAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NvdXJjZXNHVEsudHh0CkBAIC0xNDEsNiArMTQxLDcgQEAgVUlQcm9jZXNzL0FQSS9nbGli
L1dlYktpdEZvcm1TdWJtaXNzaW9uUmVxdWVzdC5jcHAgQG5vLXVuaWZ5CiBVSVByb2Nlc3MvQVBJ
L2dsaWIvV2ViS2l0R2VvbG9jYXRpb25NYW5hZ2VyLmNwcCBAbm8tdW5pZnkKIFVJUHJvY2Vzcy9B
UEkvZ2xpYi9XZWJLaXRHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmNwcCBAbm8tdW5pZnkK
IFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRJY29uTG9hZGluZ0NsaWVudC5jcHAgQG5vLXVuaWZ5
CitVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0SW5pdGlhbGl6ZS5jcHAgQG5vLXVuaWZ5CiBVSVBy
b2Nlc3MvQVBJL2dsaWIvV2ViS2l0SW5qZWN0ZWRCdW5kbGVDbGllbnQuY3BwIEBuby11bmlmeQog
VUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdElucHV0TWV0aG9kQ29udGV4dC5jcHAgQG5vLXVuaWZ5
CiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0SW5zdGFsbE1pc3NpbmdNZWRpYVBsdWdpbnNQZXJt
aXNzaW9uUmVxdWVzdC5jcHAgQG5vLXVuaWZ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1Nv
dXJjZXNXUEUudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzV1BFLnR4dAppbmRleCA2ZTAxZjA0
MTRlM2U3MjhiZDY0NjdlODFhMjIwNzIzYTEwNTY4NWM3Li4zYzI5OWRmZDcyNzkyY2YxYjc5OWRl
NjQ4NjYyNmM4MDM5ZGRiYzg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNXUEUu
dHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlc1dQRS50eHQKQEAgLTEzMiw2ICsxMzIsNyBA
QCBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0Rm9ybUNsaWVudC5jcHAgQG5vLXVuaWZ5CiBVSVBy
b2Nlc3MvQVBJL2dsaWIvV2ViS2l0Rm9ybVN1Ym1pc3Npb25SZXF1ZXN0LmNwcCBAbm8tdW5pZnkK
IFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRHZW9sb2NhdGlvbk1hbmFnZXIuY3BwIEBuby11bmlm
eQogVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3Qu
Y3BwIEBuby11bmlmeQorVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdEluaXRpYWxpemUuY3BwIEBu
by11bmlmeQogVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdEluamVjdGVkQnVuZGxlQ2xpZW50LmNw
cCBAbm8tdW5pZnkKIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRJbnB1dE1ldGhvZENvbnRleHQu
Y3BwIEBuby11bmlmeQogVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdEluc3RhbGxNaXNzaW5nTWVk
aWFQbHVnaW5zUGVybWlzc2lvblJlcXVlc3QuY3BwIEBuby11bmlmeQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0SW5pdGlhbGl6ZS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRJbml0aWFsaXplLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5lNzJkNWRiZDdhN2FiYzk2ZWNhMDJjZjMzMjhhZmIzNWIzMjYyMmQ2Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0SW5pdGlhbGl6
ZS5jcHAKQEAgLTAsMCArMSw3MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEg
Uy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViS2l0SW5p
dGlhbGl6ZS5oIgorCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvUmVtb3RlSW5zcGVjdG9yU2Vy
dmVyLmg+CisjaW5jbHVkZSA8V2ViS2l0L1NoYXJlZC9XZWJLaXQySW5pdGlhbGl6ZS5oPgorI2lu
Y2x1ZGUgPHd0Zi9nbGliL0dVbmlxdWVQdHIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKKyNp
ZiBFTkFCTEUoUkVNT1RFX0lOU1BFQ1RPUikKK3N0YXRpYyB2b2lkIGluaXRpYWxpemVSZW1vdGVJ
bnNwZWN0b3JTZXJ2ZXIoY29uc3QgY2hhciogYWRkcmVzcykKK3sKKyAgICBpZiAoSW5zcGVjdG9y
OjpSZW1vdGVJbnNwZWN0b3JTZXJ2ZXI6OnNpbmdsZXRvbigpLmlzUnVubmluZygpKQorICAgICAg
ICByZXR1cm47CisKKyAgICBpZiAoIWFkZHJlc3NbMF0pCisgICAgICAgIHJldHVybjsKKworICAg
IEdVbmlxdWVQdHI8Y2hhcj4gaW5zcGVjdG9yQWRkcmVzcyhnX3N0cmR1cChhZGRyZXNzKSk7Cisg
ICAgY2hhciogcG9ydFB0ciA9IGdfc3RycnN0cihpbnNwZWN0b3JBZGRyZXNzLmdldCgpLCAiOiIp
OworICAgIGlmICghcG9ydFB0cikKKyAgICAgICAgcmV0dXJuOworCisgICAgKnBvcnRQdHIgPSAn
XDAnOworICAgIHBvcnRQdHIrKzsKKyAgICBndWludDY0IHBvcnQgPSBnX2FzY2lpX3N0cnRvdWxs
KHBvcnRQdHIsIG51bGxwdHIsIDEwKTsKKyAgICBpZiAoIXBvcnQpCisgICAgICAgIHJldHVybjsK
KworICAgIEluc3BlY3Rvcjo6UmVtb3RlSW5zcGVjdG9yU2VydmVyOjpzaW5nbGV0b24oKS5zdGFy
dChpbnNwZWN0b3JBZGRyZXNzLmdldCgpLCBwb3J0KTsKK30KKyNlbmRpZgorCit2b2lkIHdlYmtp
dEluaXRpYWxpemUoKQoreworICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlRmxhZzsKKwor
ICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2VGbGFnLCBbXSB7CisgICAgICAgIEluaXRpYWxpemVXZWJL
aXQyKCk7CisjaWYgRU5BQkxFKFJFTU9URV9JTlNQRUNUT1IpCisgICAgICAgIGlmIChjb25zdCBj
aGFyKiBhZGRyZXNzID0gZ19nZXRlbnYoIldFQktJVF9JTlNQRUNUT1JfU0VSVkVSIikpCisgICAg
ICAgICAgICBpbml0aWFsaXplUmVtb3RlSW5zcGVjdG9yU2VydmVyKGFkZHJlc3MpOworI2VuZGlm
CisgICAgfSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0SW5pdGlhbGl6ZS5oIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0SW5pdGlhbGl6ZS5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE2
N2I0YTc4ZjU3MGQ4NWY1MGUxY2RjYjk5ZDIxNzdmNTNlZjRlMjMKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRJbml0aWFsaXplLmgKQEAg
LTAsMCArMSwzMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjcHJhZ21hIG9uY2UKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3ZvaWQgd2Via2l0
SW5pdGlhbGl6ZSgpOworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvZ2xpYi9XZWJLaXRJbnB1dE1ldGhvZENvbnRleHQuY3BwIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL2dsaWIvV2ViS2l0SW5wdXRNZXRob2RDb250ZXh0LmNwcAppbmRleCA5YzMwMmUy
MWFjMWIyNDIwZGYxY2UzNmFhMmQ1NDkyMmI2NzE2MTQwLi5lMjlmZmU2MmMzYjFkZTNjNTk1ZjJl
MmYxZjZhNWUxNDk1N2M4ZWEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvZ2xpYi9XZWJLaXRJbnB1dE1ldGhvZENvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdElucHV0TWV0aG9kQ29udGV4dC5jcHAKQEAgLTIxLDYg
KzIxLDcgQEAKICNpbmNsdWRlICJXZWJLaXRJbnB1dE1ldGhvZENvbnRleHQuaCIKIAogI2luY2x1
ZGUgIldlYktpdEVudW1UeXBlcy5oIgorI2luY2x1ZGUgIldlYktpdEluaXRpYWxpemUuaCIKICNp
bmNsdWRlICJXZWJLaXRJbnB1dE1ldGhvZENvbnRleHRQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2Vi
S2l0V2ViVmlldy5oIgogI2luY2x1ZGUgPGdsaWIvZ2kxOG4tbGliLmg+CkBAIC0yMDMsNiArMjA0
LDggQEAgc3RhdGljIHZvaWQgd2Via2l0SW5wdXRNZXRob2RDb250ZXh0R2V0UHJvcGVydHkoR09i
amVjdCogb2JqZWN0LCBndWludCBwcm9wSWQsIEcKIAogc3RhdGljIHZvaWQgd2Via2l0X2lucHV0
X21ldGhvZF9jb250ZXh0X2NsYXNzX2luaXQoV2ViS2l0SW5wdXRNZXRob2RDb250ZXh0Q2xhc3Mq
IGtsYXNzKQogeworICAgIFdlYktpdDo6d2Via2l0SW5pdGlhbGl6ZSgpOworCiAgICAgR09iamVj
dENsYXNzKiBnT2JqZWN0Q2xhc3MgPSBHX09CSkVDVF9DTEFTUyhrbGFzcyk7CiAgICAgZ09iamVj
dENsYXNzLT5zZXRfcHJvcGVydHkgPSB3ZWJraXRJbnB1dE1ldGhvZENvbnRleHRTZXRQcm9wZXJ0
eTsKICAgICBnT2JqZWN0Q2xhc3MtPmdldF9wcm9wZXJ0eSA9IHdlYmtpdElucHV0TWV0aG9kQ29u
dGV4dEdldFByb3BlcnR5OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L2dsaWIvV2ViS2l0U2V0dGluZ3MuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2ds
aWIvV2ViS2l0U2V0dGluZ3MuY3BwCmluZGV4IDEwODM5NTNmNWQxZDdhMWRjMGMwM2FjNTI2MDc1
NGViNDM4NjBmMTguLjAwZDdlNWQ0MTRlZjk2NmUwYjE2MDRjYmY5M2M1ZmQwYWQxNjExZWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFNldHRpbmdz
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRTZXR0aW5n
cy5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJXZWJLaXRTZXR0aW5ncy5oIgogCiAj
aW5jbHVkZSAiV2ViS2l0RW51bVR5cGVzLmgiCisjaW5jbHVkZSAiV2ViS2l0SW5pdGlhbGl6ZS5o
IgogI2luY2x1ZGUgIldlYktpdFNldHRpbmdzUHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYlBhZ2VQ
cm94eS5oIgogI2luY2x1ZGUgIldlYlByZWZlcmVuY2VzLmgiCkBAIC02MDYsNiArNjA3LDggQEAg
c3RhdGljIHZvaWQgd2ViS2l0U2V0dGluZ3NHZXRQcm9wZXJ0eShHT2JqZWN0KiBvYmplY3QsIGd1
aW50IHByb3BJZCwgR1ZhbHVlKiB2YWwKIAogc3RhdGljIHZvaWQgd2Via2l0X3NldHRpbmdzX2Ns
YXNzX2luaXQoV2ViS2l0U2V0dGluZ3NDbGFzcyoga2xhc3MpCiB7CisgICAgd2Via2l0SW5pdGlh
bGl6ZSgpOworCiAgICAgR09iamVjdENsYXNzKiBnT2JqZWN0Q2xhc3MgPSBHX09CSkVDVF9DTEFT
UyhrbGFzcyk7CiAgICAgZ09iamVjdENsYXNzLT5jb25zdHJ1Y3RlZCA9IHdlYktpdFNldHRpbmdz
Q29uc3RydWN0ZWQ7CiAgICAgZ09iamVjdENsYXNzLT5kaXNwb3NlID0gd2ViS2l0U2V0dGluZ3NE
aXNwb3NlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2Vi
S2l0VXNlckNvbnRlbnRGaWx0ZXJTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvZ2xpYi9XZWJLaXRVc2VyQ29udGVudEZpbHRlclN0b3JlLmNwcAppbmRleCBjNmViZTk5N2Y4
MGU2MDVjNzQxNTE5ZjVlNzVmYmUwMGY4ZmFiNTBmLi4wZGY0OTJhNzcyMjFiMWQwNTlkZDFjMTQx
YzE3MjI2ZTU2NDUyYTNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Z2xpYi9XZWJLaXRVc2VyQ29udGVudEZpbHRlclN0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRVc2VyQ29udGVudEZpbHRlclN0b3JlLmNwcApAQCAt
MjksNiArMjksNyBAQAogI2luY2x1ZGUgIkFQSUNvbnRlbnRSdWxlTGlzdC5oIgogI2luY2x1ZGUg
IkFQSUNvbnRlbnRSdWxlTGlzdFN0b3JlLmgiCiAjaW5jbHVkZSAiV2ViS2l0RXJyb3IuaCIKKyNp
bmNsdWRlICJXZWJLaXRJbml0aWFsaXplLmgiCiAjaW5jbHVkZSAiV2ViS2l0VXNlckNvbnRlbnQu
aCIKICNpbmNsdWRlICJXZWJLaXRVc2VyQ29udGVudFByaXZhdGUuaCIKICNpbmNsdWRlIDxXZWJD
b3JlL0NvbnRlbnRFeHRlbnNpb25FcnJvci5oPgpAQCAtNDAsNiArNDEsOCBAQAogI2luY2x1ZGUg
PHd0Zi9nbGliL0dVbmlxdWVQdHIuaD4KICNpbmNsdWRlIDx3dGYvZ2xpYi9XVEZHVHlwZS5oPgog
Cit1c2luZyBuYW1lc3BhY2UgV2ViS2l0OworCiAvKioKICAqIFNFQ1RJT046IFdlYktpdFVzZXJD
b250ZW50RmlsdGVyU3RvcmUKICAqIEBTaG9ydF9kZXNjcmlwdGlvbjogSGFuZGxlcyBzdG9yYWdl
IG9mIHVzZXIgY29udGVudCBmaWx0ZXJzIG9uIGRpc2suCkBAIC0xMTYsNiArMTE5LDggQEAgc3Rh
dGljIHZvaWQgd2Via2l0VXNlckNvbnRlbnRGaWx0ZXJTdG9yZUNvbnN0cnVjdGVkKEdPYmplY3Qq
IG9iamVjdCkKIAogc3RhdGljIHZvaWQgd2Via2l0X3VzZXJfY29udGVudF9maWx0ZXJfc3RvcmVf
Y2xhc3NfaW5pdChXZWJLaXRVc2VyQ29udGVudEZpbHRlclN0b3JlQ2xhc3MqIHN0b3JlQ2xhc3Mp
CiB7CisgICAgd2Via2l0SW5pdGlhbGl6ZSgpOworCiAgICAgR09iamVjdENsYXNzKiBnT2JqZWN0
Q2xhc3MgPSBHX09CSkVDVF9DTEFTUyhzdG9yZUNsYXNzKTsKIAogICAgIGdPYmplY3RDbGFzcy0+
Z2V0X3Byb3BlcnR5ID0gd2Via2l0VXNlckNvbnRlbnRGaWx0ZXJTdG9yZUdldFByb3BlcnR5Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VXNlckNv
bnRlbnRNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktp
dFVzZXJDb250ZW50TWFuYWdlci5jcHAKaW5kZXggZGExMjllM2I4YjUzNzAxNDZjNTJkYzI4NGE1
ZmQzYjg2Mjk0MzYwOS4uNjI1OGNmMDFiMjQwYTVlN2Y0ZDY2ZjFiZTI3YTNkOWE2YTMxMjIzNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VXNlckNv
bnRlbnRNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9X
ZWJLaXRVc2VyQ29udGVudE1hbmFnZXIuY3BwCkBAIC0yMiw2ICsyMiw3IEBACiAKICNpbmNsdWRl
ICJBUElTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIKICNpbmNsdWRlICJJbmplY3RVc2VyU2NyaXB0
SW1tZWRpYXRlbHkuaCIKKyNpbmNsdWRlICJXZWJLaXRJbml0aWFsaXplLmgiCiAjaW5jbHVkZSAi
V2ViS2l0SmF2YXNjcmlwdFJlc3VsdFByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJLaXRVc2VyQ29u
dGVudE1hbmFnZXJQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0VXNlckNvbnRlbnRQcml2YXRl
LmgiCkBAIC03OCw2ICs3OSw4IEBAIHN0YXRpYyBndWludCBzaWduYWxzW0xBU1RfU0lHTkFMXSA9
IHsgMCwgfTsKIAogc3RhdGljIHZvaWQgd2Via2l0X3VzZXJfY29udGVudF9tYW5hZ2VyX2NsYXNz
X2luaXQoV2ViS2l0VXNlckNvbnRlbnRNYW5hZ2VyQ2xhc3MqIGtsYXNzKQogeworICAgIHdlYmtp
dEluaXRpYWxpemUoKTsKKwogICAgIEdPYmplY3RDbGFzcyogZ09iamVjdENsYXNzID0gR19PQkpF
Q1RfQ0xBU1Moa2xhc3MpOwogCiAgICAgLyoqCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYkNvbnRleHQuY3BwCmluZGV4IDhkZTcyMmQ0NWJiYmFk
ZDU0ZDIzOWYyZTI3MWRlMTZjOTQ5MGQ1ZGIuLmZiMTJiMjE3Nzc0ZjM5N2U1NmM3ZWYzN2QwMzQ5
Y2Q1YzIwYTU0MmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGli
L1dlYktpdFdlYkNvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9n
bGliL1dlYktpdFdlYkNvbnRleHQuY3BwCkBAIC0zMiwxMiArMzIsMTIgQEAKICNpbmNsdWRlICJU
ZXh0Q2hlY2tlclN0YXRlLmgiCiAjaW5jbHVkZSAiV2ViQXV0b21hdGlvblNlc3Npb24uaCIKICNp
bmNsdWRlICJXZWJDZXJ0aWZpY2F0ZUluZm8uaCIKLSNpbmNsdWRlICJXZWJLaXQySW5pdGlhbGl6
ZS5oIgogI2luY2x1ZGUgIldlYktpdEF1dG9tYXRpb25TZXNzaW9uUHJpdmF0ZS5oIgogI2luY2x1
ZGUgIldlYktpdERvd25sb2FkQ2xpZW50LmgiCiAjaW5jbHVkZSAiV2ViS2l0RG93bmxvYWRQcml2
YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0RmF2aWNvbkRhdGFiYXNlUHJpdmF0ZS5oIgogI2luY2x1
ZGUgIldlYktpdEdlb2xvY2F0aW9uTWFuYWdlclByaXZhdGUuaCIKKyNpbmNsdWRlICJXZWJLaXRJ
bml0aWFsaXplLmgiCiAjaW5jbHVkZSAiV2ViS2l0SW5qZWN0ZWRCdW5kbGVDbGllbnQuaCIKICNp
bmNsdWRlICJXZWJLaXROZXR3b3JrUHJveHlTZXR0aW5nc1ByaXZhdGUuaCIKICNpbmNsdWRlICJX
ZWJLaXROb3RpZmljYXRpb25Qcm92aWRlci5oIgpAQCAtNDYzLDEzICs0NjMsMTMgQEAgc3RhdGlj
IHZvaWQgd2Via2l0V2ViQ29udGV4dERpc3Bvc2UoR09iamVjdCogb2JqZWN0KQogCiBzdGF0aWMg
dm9pZCB3ZWJraXRfd2ViX2NvbnRleHRfY2xhc3NfaW5pdChXZWJLaXRXZWJDb250ZXh0Q2xhc3Mq
IHdlYkNvbnRleHRDbGFzcykKIHsKKyAgICB3ZWJraXRJbml0aWFsaXplKCk7CisKICAgICBHT2Jq
ZWN0Q2xhc3MqIGdPYmplY3RDbGFzcyA9IEdfT0JKRUNUX0NMQVNTKHdlYkNvbnRleHRDbGFzcyk7
CiAKICAgICBiaW5kdGV4dGRvbWFpbihHRVRURVhUX1BBQ0tBR0UsIExPQ0FMRURJUik7CiAgICAg
YmluZF90ZXh0ZG9tYWluX2NvZGVzZXQoR0VUVEVYVF9QQUNLQUdFLCAiVVRGLTgiKTsKIAotICAg
IEluaXRpYWxpemVXZWJLaXQyKCk7Ci0KICAgICBnT2JqZWN0Q2xhc3MtPmdldF9wcm9wZXJ0eSA9
IHdlYmtpdFdlYkNvbnRleHRHZXRQcm9wZXJ0eTsKICAgICBnT2JqZWN0Q2xhc3MtPnNldF9wcm9w
ZXJ0eSA9IHdlYmtpdFdlYkNvbnRleHRTZXRQcm9wZXJ0eTsKICAgICBnT2JqZWN0Q2xhc3MtPmNv
bnN0cnVjdGVkID0gd2Via2l0V2ViQ29udGV4dENvbnN0cnVjdGVkOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2Vic2l0ZURhdGFNYW5hZ2VyLmNw
cCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYnNpdGVEYXRhTWFu
YWdlci5jcHAKaW5kZXggMTNiMGZlMjA3NzNkYTUxZmIyYTY3ZTIyNjhmMjJmN2Y5ZTcwMjVhMC4u
YmVmYmM2M2YyMGRjNGVlNGUwOWJmMWI5MzlkM2M1ZTdlNWVhM2YzOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2Vic2l0ZURhdGFNYW5hZ2VyLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJzaXRlRGF0
YU1hbmFnZXIuY3BwCkBAIC0yMSw2ICsyMSw3IEBACiAjaW5jbHVkZSAiV2ViS2l0V2Vic2l0ZURh
dGFNYW5hZ2VyLmgiCiAKICNpbmNsdWRlICJXZWJLaXRDb29raWVNYW5hZ2VyUHJpdmF0ZS5oIgor
I2luY2x1ZGUgIldlYktpdEluaXRpYWxpemUuaCIKICNpbmNsdWRlICJXZWJLaXRQcml2YXRlLmgi
CiAjaW5jbHVkZSAiV2ViS2l0V2Vic2l0ZURhdGFNYW5hZ2VyUHJpdmF0ZS5oIgogI2luY2x1ZGUg
IldlYktpdFdlYnNpdGVEYXRhUHJpdmF0ZS5oIgpAQCAtMjQ0LDYgKzI0NSw4IEBAIHN0YXRpYyB2
b2lkIHdlYmtpdFdlYnNpdGVEYXRhTWFuYWdlckNvbnN0cnVjdGVkKEdPYmplY3QqIG9iamVjdCkK
IAogc3RhdGljIHZvaWQgd2Via2l0X3dlYnNpdGVfZGF0YV9tYW5hZ2VyX2NsYXNzX2luaXQoV2Vi
S2l0V2Vic2l0ZURhdGFNYW5hZ2VyQ2xhc3MqIGZpbmRDbGFzcykKIHsKKyAgICB3ZWJraXRJbml0
aWFsaXplKCk7CisKICAgICBHT2JqZWN0Q2xhc3MqIGdPYmplY3RDbGFzcyA9IEdfT0JKRUNUX0NM
QVNTKGZpbmRDbGFzcyk7CiAKICAgICBnT2JqZWN0Q2xhc3MtPmdldF9wcm9wZXJ0eSA9IHdlYmtp
dFdlYnNpdGVEYXRhTWFuYWdlckdldFByb3BlcnR5OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3QmFzZS5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdCYXNlLmNwcAppbmRleCA2NmQ3NDdhNDQz
ODZiNzMxN2FmMjllMDY3MGQ1N2E0ZWFlNDFmMTUxLi41MDdhZDVhNTU2ZGMyOTk0N2MwYzMyNDNl
YjE4YmU4NDA3ZWEzZmJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdFdlYlZpZXdCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvZ3RrL1dlYktpdFdlYlZpZXdCYXNlLmNwcApAQCAtNDYsNiArNDYsNyBAQAogI2luY2x1ZGUg
IldlYkluc3BlY3RvclByb3h5LmgiCiAjaW5jbHVkZSAiV2ViS2l0MkluaXRpYWxpemUuaCIKICNp
bmNsdWRlICJXZWJLaXRFbW9qaUNob29zZXIuaCIKKyNpbmNsdWRlICJXZWJLaXRJbml0aWFsaXpl
LmgiCiAjaW5jbHVkZSAiV2ViS2l0SW5wdXRNZXRob2RDb250ZXh0SW1wbEd0ay5oIgogI2luY2x1
ZGUgIldlYktpdFdlYlZpZXdBY2Nlc3NpYmxlLmgiCiAjaW5jbHVkZSAiV2ViS2l0V2ViVmlld0Jh
c2VJbnRlcm5hbC5oIgpAQCAtMjAyNCw5ICsyMDI1LDkgQEAgc3RhdGljIHZvaWQgd2Via2l0X3dl
Yl92aWV3X2Jhc2VfY2xhc3NfaW5pdChXZWJLaXRXZWJWaWV3QmFzZUNsYXNzKiB3ZWJraXRXZWJW
aWUKICNlbmRpZgogCiAgICAgLy8gQmVmb3JlIGNyZWF0aW5nIGEgV2ViS2l0V2ViVmlld0Jhc2VQ
cml2IHdlIG5lZWQgdG8gYmUgc3VyZSB0aGF0IFdlYktpdCBpcyBzdGFydGVkLgotICAgIC8vIFVz
dWFsbHkgc3RhcnRpbmcgYSBjb250ZXh0IHRyaWdnZXJzIEluaXRpYWxpemVXZWJLaXQyLCBidXQg
aW4gY2FzZQorICAgIC8vIFVzdWFsbHkgc3RhcnRpbmcgYSBjb250ZXh0IHRyaWdnZXJzIHdlYmtp
dEluaXRpYWxpemUsIGJ1dCBpbiBjYXNlCiAgICAgLy8gd2UgY3JlYXRlIGEgdmlldyB3aXRob3V0
IGFza2luZyBiZWZvcmUgZm9yIGEgZGVmYXVsdF9jb250ZXh0IHdlIGdldCBhIGNyYXNoLgotICAg
IFdlYktpdDo6SW5pdGlhbGl6ZVdlYktpdDIoKTsKKyAgICBXZWJLaXQ6OndlYmtpdEluaXRpYWxp
emUoKTsKIAogICAgIGd0a193aWRnZXRfY2xhc3Nfc2V0X2Nzc19uYW1lKHdpZGdldENsYXNzLCAi
d2Via2l0d2VidmlldyIpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Z2xpYi9XZWJQcm9jZXNzUG9vbEdMaWIuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ2xp
Yi9XZWJQcm9jZXNzUG9vbEdMaWIuY3BwCmluZGV4IGRlYWFiZjdjN2JkZDMwNTdkYzg5NjRjMzM5
ZWQ1MGMyMjRiM2VmNzcuLmJlMTk3OTZlZDk2ZDA3MDU0MjhmMDgxOTk1ODA2MjU0ZTJmMmFkMzYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2dsaWIvV2ViUHJvY2Vzc1Bvb2xH
TGliLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9nbGliL1dlYlByb2Nlc3NQb29s
R0xpYi5jcHAKQEAgLTMxLDEwICszMSw4IEBACiAjaW5jbHVkZSAiTGVnYWN5R2xvYmFsU2V0dGlu
Z3MuaCIKICNpbmNsdWRlICJXZWJNZW1vcnlQcmVzc3VyZUhhbmRsZXIuaCIKICNpbmNsdWRlICJX
ZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCi0jaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUv
UmVtb3RlSW5zcGVjdG9yU2VydmVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybURpc3Bs
YXkuaD4KICNpbmNsdWRlIDx3dGYvRmlsZVN5c3RlbS5oPgotI2luY2x1ZGUgPHd0Zi9nbGliL0dV
bmlxdWVQdHIuaD4KIAogI2lmIFVTRShHU1RSRUFNRVIpCiAjaW5jbHVkZSA8V2ViQ29yZS9HU3Ry
ZWFtZXJDb21tb24uaD4KQEAgLTU0LDMwICs1Miw2IEBACiAKIG5hbWVzcGFjZSBXZWJLaXQgewog
Ci0jaWYgRU5BQkxFKFJFTU9URV9JTlNQRUNUT1IpCi1zdGF0aWMgdm9pZCBpbml0aWFsaXplUmVt
b3RlSW5zcGVjdG9yU2VydmVyKGNvbnN0IGNoYXIqIGFkZHJlc3MpCi17Ci0gICAgaWYgKEluc3Bl
Y3Rvcjo6UmVtb3RlSW5zcGVjdG9yU2VydmVyOjpzaW5nbGV0b24oKS5pc1J1bm5pbmcoKSkKLSAg
ICAgICAgcmV0dXJuOwotCi0gICAgaWYgKCFhZGRyZXNzWzBdKQotICAgICAgICByZXR1cm47Ci0K
LSAgICBHVW5pcXVlUHRyPGNoYXI+IGluc3BlY3RvckFkZHJlc3MoZ19zdHJkdXAoYWRkcmVzcykp
OwotICAgIGNoYXIqIHBvcnRQdHIgPSBnX3N0cnJzdHIoaW5zcGVjdG9yQWRkcmVzcy5nZXQoKSwg
IjoiKTsKLSAgICBpZiAoIXBvcnRQdHIpCi0gICAgICAgIHJldHVybjsKLQotICAgICpwb3J0UHRy
ID0gJ1wwJzsKLSAgICBwb3J0UHRyKys7Ci0gICAgZ3VpbnQ2NCBwb3J0ID0gZ19hc2NpaV9zdHJ0
b3VsbChwb3J0UHRyLCBudWxscHRyLCAxMCk7Ci0gICAgaWYgKCFwb3J0KQotICAgICAgICByZXR1
cm47Ci0KLSAgICBJbnNwZWN0b3I6OlJlbW90ZUluc3BlY3RvclNlcnZlcjo6c2luZ2xldG9uKCku
c3RhcnQoaW5zcGVjdG9yQWRkcmVzcy5nZXQoKSwgcG9ydCk7Ci19Ci0jZW5kaWYKLQogc3RhdGlj
IGJvb2wgbWVtb3J5UHJlc3N1cmVNb25pdG9yRGlzYWJsZWQoKQogewogICAgIHN0YXRpYyBjb25z
dCBjaGFyKiBkaXNhYmxlTWVtb3J5UHJlc3N1cmVNb25pdG9yID0gZ2V0ZW52KCJXRUJLSVRfRElT
QUJMRV9NRU1PUllfUFJFU1NVUkVfTU9OSVRPUiIpOwpAQCAtOTIsMTEgKzY2LDYgQEAgdm9pZCBX
ZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplKCkKICAgICBpZiAoY29uc3QgY2hhciog
Zm9yY2VDb21wbGV4VGV4dCA9IGdldGVudigiV0VCS0lUX0ZPUkNFX0NPTVBMRVhfVEVYVCIpKQog
ICAgICAgICBtX2Fsd2F5c1VzZXNDb21wbGV4VGV4dENvZGVQYXRoID0gIXN0cmNtcChmb3JjZUNv
bXBsZXhUZXh0LCAiMSIpOwogCi0jaWYgRU5BQkxFKFJFTU9URV9JTlNQRUNUT1IpCi0gICAgaWYg
KGNvbnN0IGNoYXIqIGFkZHJlc3MgPSBnX2dldGVudigiV0VCS0lUX0lOU1BFQ1RPUl9TRVJWRVIi
KSkKLSAgICAgICAgaW5pdGlhbGl6ZVJlbW90ZUluc3BlY3RvclNlcnZlcihhZGRyZXNzKTsKLSNl
bmRpZgotCiAgICAgaWYgKCFtZW1vcnlQcmVzc3VyZU1vbml0b3JEaXNhYmxlZCgpKQogICAgICAg
ICBpbnN0YWxsTWVtb3J5UHJlc3N1cmVIYW5kbGVyKCk7CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>408192</attachid>
            <date>2020-09-07 12:39:23 -0700</date>
            <delta_ts>2020-09-08 01:52:31 -0700</delta_ts>
            <desc>patch</desc>
            <filename>bug-216120-20200907213732.patch</filename>
            <type>text/plain</type>
            <size>18334</size>
            <attacher name="Pablo Saavedra">psaavedra</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY2NTgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDI0YWMxMWNjZTYwNDk4MGMy
ZmUwMDIwZTZhYjc3MzJhNjQxYzQ5ZTkuLmQ0OTM0ZmZmYTAwYThkMTU3YzQ2NGQ1ZTlmZTUzMDgy
N2FlMjRhZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDkgQEAKKzIwMjAtMDktMDcgIFBhYmxvIFNh
YXZlZHJhICA8cHNhYXZlZHJhQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dMSUJdIFJlbW90ZUlu
c3BlY3RvclNlcnZlciBpcyBub3Qgc3RhcnRlZCBpZiBXZWJLaXRXZWJDb250ZXh0IGlzIG5vdCBj
cmVhdGVkIGFscmVhZHkgY3JlYXRlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjE2MTIwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQWRkZWQgYSBXZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdElu
aXRpYWxpemUgd2hhdCBpbXBsZW1lbnRzCisgICAgICAgIGl0cyBvd24gd2Via2l0SW5pdGlhbGl6
ZSgpIHRvIGVuc3VyZSB0aGUgaW5zcGVjdG9yIHNlcnZlciBpcworICAgICAgICBpbml0aWFsaXpl
ZCBhcyBlYXJseSBhcyBwb3NzaWJsZSwgYmVmb3JlIG90aGVyIGFwaSBjYWxscyB0aGF0IHdvdWxk
CisgICAgICAgIGRlcGVuZCBvbiB0aGUgaW5zcGVjdG9yIHNlcnZlciBiZWluZyBydW5uaW5nLgor
CisgICAgICAgIFRoZSBSZW1vdGVJbnNwZWN0b3JTZXJ2ZXIgaW5pdGlhbGl6YXRpb24gaXMgbm90
IGxvbmdlcgorICAgICAgICBhc29jaWF0ZWQgdG8gdGhlIGluaXRpYWxpemF0aW9uIG9mIHRoZSBX
ZWJQcm9jZXNzUG9vbEdMaWIuCisKKyAgICAgICAgVGhlIHdlYmtpdEluaXRpYWxpemUoKSBleHRl
bmRzIHRoZSBzaGFyZWQgSW5pdGlhbGl6ZVdlYktpdDIoKTsKKyAgICAgICAgYW5kIGFsc28gaW5j
bHVkZXMgdGhlIGluaXRpYWxpemF0aW9uIG9mIHRoZSBSZW1vdGVJbnNwZWN0b3JTZXJ2ZXIKKyAg
ICAgICAgc28gdGhlIGluaXRpYWxpemF0aW9uIG9mIHRoZSByZW1vdGUgaW5zcGVjdG9yIHNlcnZl
ciBjYW4gYmUgbm93CisgICAgICAgIHRyaWdnZXJlZCBieSB0aGUgaW5pdGlhbGl6YXRpb24gb2Yg
bWFueSBvdGhlciBBUEkgb2JqZWN0cyB0b286CisgICAgICAgIFdlYktpdElucHV0TWV0aG9kQ29u
dGV4dCwgV2ViS2l0U2V0dGluZ3MsIFdlYktpdFVzZXJDb250ZW50TWFuYWdlciwKKyAgICAgICAg
V2ViS2l0V2ViQ29udGV4dCwgV2ViS2l0V2Vic2l0ZURhdGFNYW5hZ2VyLAorICAgICAgICBXZWJL
aXRVc2VyQ29udGVudEZpbHRlclN0b3JlLCBXZWJLaXRXZWJWaWV3QmFzZS4KKworICAgICAgICAq
IFNvdXJjZXNHVEsudHh0OgorICAgICAgICAqIFNvdXJjZXNXUEUudHh0OgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRJbml0aWFsaXplLmNwcDogQWRkZWQuCisgICAgICAgIChX
ZWJLaXQ6OmluaXRpYWxpemVSZW1vdGVJbnNwZWN0b3JTZXJ2ZXIpOgorICAgICAgICAoV2ViS2l0
Ojp3ZWJraXRJbml0aWFsaXplKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0
SW5pdGlhbGl6ZS5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0
SW5wdXRNZXRob2RDb250ZXh0LmNwcDoKKyAgICAgICAgKHdlYmtpdF9pbnB1dF9tZXRob2RfY29u
dGV4dF9jbGFzc19pbml0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0U2V0
dGluZ3MuY3BwOgorICAgICAgICAod2Via2l0X3NldHRpbmdzX2NsYXNzX2luaXQpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRVc2VyQ29udGVudEZpbHRlclN0b3JlLmNwcDoK
KyAgICAgICAgKHdlYmtpdF91c2VyX2NvbnRlbnRfZmlsdGVyX3N0b3JlX2NsYXNzX2luaXQpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRVc2VyQ29udGVudE1hbmFnZXIuY3Bw
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJDb250ZXh0LmNwcDoKKyAg
ICAgICAgKHdlYmtpdF93ZWJfY29udGV4dF9jbGFzc19pbml0KToKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL2dsaWIvV2ViS2l0V2Vic2l0ZURhdGFNYW5hZ2VyLmNwcDoKKyAgICAgICAgKHdlYmtp
dF93ZWJzaXRlX2RhdGFfbWFuYWdlcl9jbGFzc19pbml0KToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL2d0ay9XZWJLaXRXZWJWaWV3QmFzZS5jcHA6CisgICAgICAgICh3ZWJraXRfd2ViX3ZpZXdf
YmFzZV9jbGFzc19pbml0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvZ2xpYi9XZWJQcm9jZXNzUG9v
bEdMaWIuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0
aWFsaXplKToKKyAgICAgICAgKFdlYktpdDo6aW5pdGlhbGl6ZVJlbW90ZUluc3BlY3RvclNlcnZl
cik6IERlbGV0ZWQuCisKIDIwMjAtMDktMDMgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNp
YUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdIFVuZXhwZWN0ZWQgVXNlci1BZ2VudCBvbiBy
ZWRpcmVjdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzR1RLLnR4dCBiL1NvdXJj
ZS9XZWJLaXQvU291cmNlc0dUSy50eHQKaW5kZXggZmM4ODYxYzIyMWE4ZDEwY2FkN2U1ZTZmYTE4
YmUzZTM2MTljZjMxYi4uMzFkYzIxNzU0ZjI1MmQ2ZGY1NmUxNjllODAzMjIyYTI1MGRlODQ5MCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzR1RLLnR4dAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NvdXJjZXNHVEsudHh0CkBAIC0xNDEsNiArMTQxLDcgQEAgVUlQcm9jZXNzL0FQSS9nbGli
L1dlYktpdEZvcm1TdWJtaXNzaW9uUmVxdWVzdC5jcHAgQG5vLXVuaWZ5CiBVSVByb2Nlc3MvQVBJ
L2dsaWIvV2ViS2l0R2VvbG9jYXRpb25NYW5hZ2VyLmNwcCBAbm8tdW5pZnkKIFVJUHJvY2Vzcy9B
UEkvZ2xpYi9XZWJLaXRHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmNwcCBAbm8tdW5pZnkK
IFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRJY29uTG9hZGluZ0NsaWVudC5jcHAgQG5vLXVuaWZ5
CitVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0SW5pdGlhbGl6ZS5jcHAgQG5vLXVuaWZ5CiBVSVBy
b2Nlc3MvQVBJL2dsaWIvV2ViS2l0SW5qZWN0ZWRCdW5kbGVDbGllbnQuY3BwIEBuby11bmlmeQog
VUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdElucHV0TWV0aG9kQ29udGV4dC5jcHAgQG5vLXVuaWZ5
CiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0SW5zdGFsbE1pc3NpbmdNZWRpYVBsdWdpbnNQZXJt
aXNzaW9uUmVxdWVzdC5jcHAgQG5vLXVuaWZ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1Nv
dXJjZXNXUEUudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzV1BFLnR4dAppbmRleCA2ZTAxZjA0
MTRlM2U3MjhiZDY0NjdlODFhMjIwNzIzYTEwNTY4NWM3Li4zYzI5OWRmZDcyNzkyY2YxYjc5OWRl
NjQ4NjYyNmM4MDM5ZGRiYzg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNXUEUu
dHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlc1dQRS50eHQKQEAgLTEzMiw2ICsxMzIsNyBA
QCBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0Rm9ybUNsaWVudC5jcHAgQG5vLXVuaWZ5CiBVSVBy
b2Nlc3MvQVBJL2dsaWIvV2ViS2l0Rm9ybVN1Ym1pc3Npb25SZXF1ZXN0LmNwcCBAbm8tdW5pZnkK
IFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRHZW9sb2NhdGlvbk1hbmFnZXIuY3BwIEBuby11bmlm
eQogVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3Qu
Y3BwIEBuby11bmlmeQorVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdEluaXRpYWxpemUuY3BwIEBu
by11bmlmeQogVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdEluamVjdGVkQnVuZGxlQ2xpZW50LmNw
cCBAbm8tdW5pZnkKIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRJbnB1dE1ldGhvZENvbnRleHQu
Y3BwIEBuby11bmlmeQogVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdEluc3RhbGxNaXNzaW5nTWVk
aWFQbHVnaW5zUGVybWlzc2lvblJlcXVlc3QuY3BwIEBuby11bmlmeQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0SW5pdGlhbGl6ZS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRJbml0aWFsaXplLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5lNzJkNWRiZDdhN2FiYzk2ZWNhMDJjZjMzMjhhZmIzNWIzMjYyMmQ2Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0SW5pdGlhbGl6
ZS5jcHAKQEAgLTAsMCArMSw3MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEg
Uy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViS2l0SW5p
dGlhbGl6ZS5oIgorCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvUmVtb3RlSW5zcGVjdG9yU2Vy
dmVyLmg+CisjaW5jbHVkZSA8V2ViS2l0L1NoYXJlZC9XZWJLaXQySW5pdGlhbGl6ZS5oPgorI2lu
Y2x1ZGUgPHd0Zi9nbGliL0dVbmlxdWVQdHIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKKyNp
ZiBFTkFCTEUoUkVNT1RFX0lOU1BFQ1RPUikKK3N0YXRpYyB2b2lkIGluaXRpYWxpemVSZW1vdGVJ
bnNwZWN0b3JTZXJ2ZXIoY29uc3QgY2hhciogYWRkcmVzcykKK3sKKyAgICBpZiAoSW5zcGVjdG9y
OjpSZW1vdGVJbnNwZWN0b3JTZXJ2ZXI6OnNpbmdsZXRvbigpLmlzUnVubmluZygpKQorICAgICAg
ICByZXR1cm47CisKKyAgICBpZiAoIWFkZHJlc3NbMF0pCisgICAgICAgIHJldHVybjsKKworICAg
IEdVbmlxdWVQdHI8Y2hhcj4gaW5zcGVjdG9yQWRkcmVzcyhnX3N0cmR1cChhZGRyZXNzKSk7Cisg
ICAgY2hhciogcG9ydFB0ciA9IGdfc3RycnN0cihpbnNwZWN0b3JBZGRyZXNzLmdldCgpLCAiOiIp
OworICAgIGlmICghcG9ydFB0cikKKyAgICAgICAgcmV0dXJuOworCisgICAgKnBvcnRQdHIgPSAn
XDAnOworICAgIHBvcnRQdHIrKzsKKyAgICBndWludDY0IHBvcnQgPSBnX2FzY2lpX3N0cnRvdWxs
KHBvcnRQdHIsIG51bGxwdHIsIDEwKTsKKyAgICBpZiAoIXBvcnQpCisgICAgICAgIHJldHVybjsK
KworICAgIEluc3BlY3Rvcjo6UmVtb3RlSW5zcGVjdG9yU2VydmVyOjpzaW5nbGV0b24oKS5zdGFy
dChpbnNwZWN0b3JBZGRyZXNzLmdldCgpLCBwb3J0KTsKK30KKyNlbmRpZgorCit2b2lkIHdlYmtp
dEluaXRpYWxpemUoKQoreworICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlRmxhZzsKKwor
ICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2VGbGFnLCBbXSB7CisgICAgICAgIEluaXRpYWxpemVXZWJL
aXQyKCk7CisjaWYgRU5BQkxFKFJFTU9URV9JTlNQRUNUT1IpCisgICAgICAgIGlmIChjb25zdCBj
aGFyKiBhZGRyZXNzID0gZ19nZXRlbnYoIldFQktJVF9JTlNQRUNUT1JfU0VSVkVSIikpCisgICAg
ICAgICAgICBpbml0aWFsaXplUmVtb3RlSW5zcGVjdG9yU2VydmVyKGFkZHJlc3MpOworI2VuZGlm
CisgICAgfSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0SW5pdGlhbGl6ZS5oIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0SW5pdGlhbGl6ZS5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE2
N2I0YTc4ZjU3MGQ4NWY1MGUxY2RjYjk5ZDIxNzdmNTNlZjRlMjMKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRJbml0aWFsaXplLmgKQEAg
LTAsMCArMSwzMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjcHJhZ21hIG9uY2UKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3ZvaWQgd2Via2l0
SW5pdGlhbGl6ZSgpOworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvZ2xpYi9XZWJLaXRJbnB1dE1ldGhvZENvbnRleHQuY3BwIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL2dsaWIvV2ViS2l0SW5wdXRNZXRob2RDb250ZXh0LmNwcAppbmRleCA5YzMwMmUy
MWFjMWIyNDIwZGYxY2UzNmFhMmQ1NDkyMmI2NzE2MTQwLi5lMjlmZmU2MmMzYjFkZTNjNTk1ZjJl
MmYxZjZhNWUxNDk1N2M4ZWEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvZ2xpYi9XZWJLaXRJbnB1dE1ldGhvZENvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdElucHV0TWV0aG9kQ29udGV4dC5jcHAKQEAgLTIxLDYg
KzIxLDcgQEAKICNpbmNsdWRlICJXZWJLaXRJbnB1dE1ldGhvZENvbnRleHQuaCIKIAogI2luY2x1
ZGUgIldlYktpdEVudW1UeXBlcy5oIgorI2luY2x1ZGUgIldlYktpdEluaXRpYWxpemUuaCIKICNp
bmNsdWRlICJXZWJLaXRJbnB1dE1ldGhvZENvbnRleHRQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2Vi
S2l0V2ViVmlldy5oIgogI2luY2x1ZGUgPGdsaWIvZ2kxOG4tbGliLmg+CkBAIC0yMDMsNiArMjA0
LDggQEAgc3RhdGljIHZvaWQgd2Via2l0SW5wdXRNZXRob2RDb250ZXh0R2V0UHJvcGVydHkoR09i
amVjdCogb2JqZWN0LCBndWludCBwcm9wSWQsIEcKIAogc3RhdGljIHZvaWQgd2Via2l0X2lucHV0
X21ldGhvZF9jb250ZXh0X2NsYXNzX2luaXQoV2ViS2l0SW5wdXRNZXRob2RDb250ZXh0Q2xhc3Mq
IGtsYXNzKQogeworICAgIFdlYktpdDo6d2Via2l0SW5pdGlhbGl6ZSgpOworCiAgICAgR09iamVj
dENsYXNzKiBnT2JqZWN0Q2xhc3MgPSBHX09CSkVDVF9DTEFTUyhrbGFzcyk7CiAgICAgZ09iamVj
dENsYXNzLT5zZXRfcHJvcGVydHkgPSB3ZWJraXRJbnB1dE1ldGhvZENvbnRleHRTZXRQcm9wZXJ0
eTsKICAgICBnT2JqZWN0Q2xhc3MtPmdldF9wcm9wZXJ0eSA9IHdlYmtpdElucHV0TWV0aG9kQ29u
dGV4dEdldFByb3BlcnR5OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L2dsaWIvV2ViS2l0U2V0dGluZ3MuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2ds
aWIvV2ViS2l0U2V0dGluZ3MuY3BwCmluZGV4IDEwODM5NTNmNWQxZDdhMWRjMGMwM2FjNTI2MDc1
NGViNDM4NjBmMTguLjAwZDdlNWQ0MTRlZjk2NmUwYjE2MDRjYmY5M2M1ZmQwYWQxNjExZWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFNldHRpbmdz
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRTZXR0aW5n
cy5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJXZWJLaXRTZXR0aW5ncy5oIgogCiAj
aW5jbHVkZSAiV2ViS2l0RW51bVR5cGVzLmgiCisjaW5jbHVkZSAiV2ViS2l0SW5pdGlhbGl6ZS5o
IgogI2luY2x1ZGUgIldlYktpdFNldHRpbmdzUHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYlBhZ2VQ
cm94eS5oIgogI2luY2x1ZGUgIldlYlByZWZlcmVuY2VzLmgiCkBAIC02MDYsNiArNjA3LDggQEAg
c3RhdGljIHZvaWQgd2ViS2l0U2V0dGluZ3NHZXRQcm9wZXJ0eShHT2JqZWN0KiBvYmplY3QsIGd1
aW50IHByb3BJZCwgR1ZhbHVlKiB2YWwKIAogc3RhdGljIHZvaWQgd2Via2l0X3NldHRpbmdzX2Ns
YXNzX2luaXQoV2ViS2l0U2V0dGluZ3NDbGFzcyoga2xhc3MpCiB7CisgICAgd2Via2l0SW5pdGlh
bGl6ZSgpOworCiAgICAgR09iamVjdENsYXNzKiBnT2JqZWN0Q2xhc3MgPSBHX09CSkVDVF9DTEFT
UyhrbGFzcyk7CiAgICAgZ09iamVjdENsYXNzLT5jb25zdHJ1Y3RlZCA9IHdlYktpdFNldHRpbmdz
Q29uc3RydWN0ZWQ7CiAgICAgZ09iamVjdENsYXNzLT5kaXNwb3NlID0gd2ViS2l0U2V0dGluZ3NE
aXNwb3NlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2Vi
S2l0VXNlckNvbnRlbnRGaWx0ZXJTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvZ2xpYi9XZWJLaXRVc2VyQ29udGVudEZpbHRlclN0b3JlLmNwcAppbmRleCBjNmViZTk5N2Y4
MGU2MDVjNzQxNTE5ZjVlNzVmYmUwMGY4ZmFiNTBmLi4wZGY0OTJhNzcyMjFiMWQwNTlkZDFjMTQx
YzE3MjI2ZTU2NDUyYTNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Z2xpYi9XZWJLaXRVc2VyQ29udGVudEZpbHRlclN0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRVc2VyQ29udGVudEZpbHRlclN0b3JlLmNwcApAQCAt
MjksNiArMjksNyBAQAogI2luY2x1ZGUgIkFQSUNvbnRlbnRSdWxlTGlzdC5oIgogI2luY2x1ZGUg
IkFQSUNvbnRlbnRSdWxlTGlzdFN0b3JlLmgiCiAjaW5jbHVkZSAiV2ViS2l0RXJyb3IuaCIKKyNp
bmNsdWRlICJXZWJLaXRJbml0aWFsaXplLmgiCiAjaW5jbHVkZSAiV2ViS2l0VXNlckNvbnRlbnQu
aCIKICNpbmNsdWRlICJXZWJLaXRVc2VyQ29udGVudFByaXZhdGUuaCIKICNpbmNsdWRlIDxXZWJD
b3JlL0NvbnRlbnRFeHRlbnNpb25FcnJvci5oPgpAQCAtNDAsNiArNDEsOCBAQAogI2luY2x1ZGUg
PHd0Zi9nbGliL0dVbmlxdWVQdHIuaD4KICNpbmNsdWRlIDx3dGYvZ2xpYi9XVEZHVHlwZS5oPgog
Cit1c2luZyBuYW1lc3BhY2UgV2ViS2l0OworCiAvKioKICAqIFNFQ1RJT046IFdlYktpdFVzZXJD
b250ZW50RmlsdGVyU3RvcmUKICAqIEBTaG9ydF9kZXNjcmlwdGlvbjogSGFuZGxlcyBzdG9yYWdl
IG9mIHVzZXIgY29udGVudCBmaWx0ZXJzIG9uIGRpc2suCkBAIC0xMTYsNiArMTE5LDggQEAgc3Rh
dGljIHZvaWQgd2Via2l0VXNlckNvbnRlbnRGaWx0ZXJTdG9yZUNvbnN0cnVjdGVkKEdPYmplY3Qq
IG9iamVjdCkKIAogc3RhdGljIHZvaWQgd2Via2l0X3VzZXJfY29udGVudF9maWx0ZXJfc3RvcmVf
Y2xhc3NfaW5pdChXZWJLaXRVc2VyQ29udGVudEZpbHRlclN0b3JlQ2xhc3MqIHN0b3JlQ2xhc3Mp
CiB7CisgICAgd2Via2l0SW5pdGlhbGl6ZSgpOworCiAgICAgR09iamVjdENsYXNzKiBnT2JqZWN0
Q2xhc3MgPSBHX09CSkVDVF9DTEFTUyhzdG9yZUNsYXNzKTsKIAogICAgIGdPYmplY3RDbGFzcy0+
Z2V0X3Byb3BlcnR5ID0gd2Via2l0VXNlckNvbnRlbnRGaWx0ZXJTdG9yZUdldFByb3BlcnR5Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VXNlckNv
bnRlbnRNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktp
dFVzZXJDb250ZW50TWFuYWdlci5jcHAKaW5kZXggZGExMjllM2I4YjUzNzAxNDZjNTJkYzI4NGE1
ZmQzYjg2Mjk0MzYwOS4uNjI1OGNmMDFiMjQwYTVlN2Y0ZDY2ZjFiZTI3YTNkOWE2YTMxMjIzNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VXNlckNv
bnRlbnRNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9X
ZWJLaXRVc2VyQ29udGVudE1hbmFnZXIuY3BwCkBAIC0yMiw2ICsyMiw3IEBACiAKICNpbmNsdWRl
ICJBUElTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIKICNpbmNsdWRlICJJbmplY3RVc2VyU2NyaXB0
SW1tZWRpYXRlbHkuaCIKKyNpbmNsdWRlICJXZWJLaXRJbml0aWFsaXplLmgiCiAjaW5jbHVkZSAi
V2ViS2l0SmF2YXNjcmlwdFJlc3VsdFByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJLaXRVc2VyQ29u
dGVudE1hbmFnZXJQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0VXNlckNvbnRlbnRQcml2YXRl
LmgiCkBAIC03OCw2ICs3OSw4IEBAIHN0YXRpYyBndWludCBzaWduYWxzW0xBU1RfU0lHTkFMXSA9
IHsgMCwgfTsKIAogc3RhdGljIHZvaWQgd2Via2l0X3VzZXJfY29udGVudF9tYW5hZ2VyX2NsYXNz
X2luaXQoV2ViS2l0VXNlckNvbnRlbnRNYW5hZ2VyQ2xhc3MqIGtsYXNzKQogeworICAgIHdlYmtp
dEluaXRpYWxpemUoKTsKKwogICAgIEdPYmplY3RDbGFzcyogZ09iamVjdENsYXNzID0gR19PQkpF
Q1RfQ0xBU1Moa2xhc3MpOwogCiAgICAgLyoqCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYkNvbnRleHQuY3BwCmluZGV4IDhkZTcyMmQ0NWJiYmFk
ZDU0ZDIzOWYyZTI3MWRlMTZjOTQ5MGQ1ZGIuLmZiMTJiMjE3Nzc0ZjM5N2U1NmM3ZWYzN2QwMzQ5
Y2Q1YzIwYTU0MmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGli
L1dlYktpdFdlYkNvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9n
bGliL1dlYktpdFdlYkNvbnRleHQuY3BwCkBAIC0zMiwxMiArMzIsMTIgQEAKICNpbmNsdWRlICJU
ZXh0Q2hlY2tlclN0YXRlLmgiCiAjaW5jbHVkZSAiV2ViQXV0b21hdGlvblNlc3Npb24uaCIKICNp
bmNsdWRlICJXZWJDZXJ0aWZpY2F0ZUluZm8uaCIKLSNpbmNsdWRlICJXZWJLaXQySW5pdGlhbGl6
ZS5oIgogI2luY2x1ZGUgIldlYktpdEF1dG9tYXRpb25TZXNzaW9uUHJpdmF0ZS5oIgogI2luY2x1
ZGUgIldlYktpdERvd25sb2FkQ2xpZW50LmgiCiAjaW5jbHVkZSAiV2ViS2l0RG93bmxvYWRQcml2
YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0RmF2aWNvbkRhdGFiYXNlUHJpdmF0ZS5oIgogI2luY2x1
ZGUgIldlYktpdEdlb2xvY2F0aW9uTWFuYWdlclByaXZhdGUuaCIKKyNpbmNsdWRlICJXZWJLaXRJ
bml0aWFsaXplLmgiCiAjaW5jbHVkZSAiV2ViS2l0SW5qZWN0ZWRCdW5kbGVDbGllbnQuaCIKICNp
bmNsdWRlICJXZWJLaXROZXR3b3JrUHJveHlTZXR0aW5nc1ByaXZhdGUuaCIKICNpbmNsdWRlICJX
ZWJLaXROb3RpZmljYXRpb25Qcm92aWRlci5oIgpAQCAtNDYzLDEzICs0NjMsMTMgQEAgc3RhdGlj
IHZvaWQgd2Via2l0V2ViQ29udGV4dERpc3Bvc2UoR09iamVjdCogb2JqZWN0KQogCiBzdGF0aWMg
dm9pZCB3ZWJraXRfd2ViX2NvbnRleHRfY2xhc3NfaW5pdChXZWJLaXRXZWJDb250ZXh0Q2xhc3Mq
IHdlYkNvbnRleHRDbGFzcykKIHsKKyAgICB3ZWJraXRJbml0aWFsaXplKCk7CisKICAgICBHT2Jq
ZWN0Q2xhc3MqIGdPYmplY3RDbGFzcyA9IEdfT0JKRUNUX0NMQVNTKHdlYkNvbnRleHRDbGFzcyk7
CiAKICAgICBiaW5kdGV4dGRvbWFpbihHRVRURVhUX1BBQ0tBR0UsIExPQ0FMRURJUik7CiAgICAg
YmluZF90ZXh0ZG9tYWluX2NvZGVzZXQoR0VUVEVYVF9QQUNLQUdFLCAiVVRGLTgiKTsKIAotICAg
IEluaXRpYWxpemVXZWJLaXQyKCk7Ci0KICAgICBnT2JqZWN0Q2xhc3MtPmdldF9wcm9wZXJ0eSA9
IHdlYmtpdFdlYkNvbnRleHRHZXRQcm9wZXJ0eTsKICAgICBnT2JqZWN0Q2xhc3MtPnNldF9wcm9w
ZXJ0eSA9IHdlYmtpdFdlYkNvbnRleHRTZXRQcm9wZXJ0eTsKICAgICBnT2JqZWN0Q2xhc3MtPmNv
bnN0cnVjdGVkID0gd2Via2l0V2ViQ29udGV4dENvbnN0cnVjdGVkOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2Vic2l0ZURhdGFNYW5hZ2VyLmNw
cCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYnNpdGVEYXRhTWFu
YWdlci5jcHAKaW5kZXggMTNiMGZlMjA3NzNkYTUxZmIyYTY3ZTIyNjhmMjJmN2Y5ZTcwMjVhMC4u
YmVmYmM2M2YyMGRjNGVlNGUwOWJmMWI5MzlkM2M1ZTdlNWVhM2YzOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2Vic2l0ZURhdGFNYW5hZ2VyLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJzaXRlRGF0
YU1hbmFnZXIuY3BwCkBAIC0yMSw2ICsyMSw3IEBACiAjaW5jbHVkZSAiV2ViS2l0V2Vic2l0ZURh
dGFNYW5hZ2VyLmgiCiAKICNpbmNsdWRlICJXZWJLaXRDb29raWVNYW5hZ2VyUHJpdmF0ZS5oIgor
I2luY2x1ZGUgIldlYktpdEluaXRpYWxpemUuaCIKICNpbmNsdWRlICJXZWJLaXRQcml2YXRlLmgi
CiAjaW5jbHVkZSAiV2ViS2l0V2Vic2l0ZURhdGFNYW5hZ2VyUHJpdmF0ZS5oIgogI2luY2x1ZGUg
IldlYktpdFdlYnNpdGVEYXRhUHJpdmF0ZS5oIgpAQCAtMjQ0LDYgKzI0NSw4IEBAIHN0YXRpYyB2
b2lkIHdlYmtpdFdlYnNpdGVEYXRhTWFuYWdlckNvbnN0cnVjdGVkKEdPYmplY3QqIG9iamVjdCkK
IAogc3RhdGljIHZvaWQgd2Via2l0X3dlYnNpdGVfZGF0YV9tYW5hZ2VyX2NsYXNzX2luaXQoV2Vi
S2l0V2Vic2l0ZURhdGFNYW5hZ2VyQ2xhc3MqIGZpbmRDbGFzcykKIHsKKyAgICB3ZWJraXRJbml0
aWFsaXplKCk7CisKICAgICBHT2JqZWN0Q2xhc3MqIGdPYmplY3RDbGFzcyA9IEdfT0JKRUNUX0NM
QVNTKGZpbmRDbGFzcyk7CiAKICAgICBnT2JqZWN0Q2xhc3MtPmdldF9wcm9wZXJ0eSA9IHdlYmtp
dFdlYnNpdGVEYXRhTWFuYWdlckdldFByb3BlcnR5OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3QmFzZS5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdCYXNlLmNwcAppbmRleCA2NmQ3NDdhNDQz
ODZiNzMxN2FmMjllMDY3MGQ1N2E0ZWFlNDFmMTUxLi41MDdhZDVhNTU2ZGMyOTk0N2MwYzMyNDNl
YjE4YmU4NDA3ZWEzZmJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdFdlYlZpZXdCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvZ3RrL1dlYktpdFdlYlZpZXdCYXNlLmNwcApAQCAtNDYsNiArNDYsNyBAQAogI2luY2x1ZGUg
IldlYkluc3BlY3RvclByb3h5LmgiCiAjaW5jbHVkZSAiV2ViS2l0MkluaXRpYWxpemUuaCIKICNp
bmNsdWRlICJXZWJLaXRFbW9qaUNob29zZXIuaCIKKyNpbmNsdWRlICJXZWJLaXRJbml0aWFsaXpl
LmgiCiAjaW5jbHVkZSAiV2ViS2l0SW5wdXRNZXRob2RDb250ZXh0SW1wbEd0ay5oIgogI2luY2x1
ZGUgIldlYktpdFdlYlZpZXdBY2Nlc3NpYmxlLmgiCiAjaW5jbHVkZSAiV2ViS2l0V2ViVmlld0Jh
c2VJbnRlcm5hbC5oIgpAQCAtMjAyNCw5ICsyMDI1LDkgQEAgc3RhdGljIHZvaWQgd2Via2l0X3dl
Yl92aWV3X2Jhc2VfY2xhc3NfaW5pdChXZWJLaXRXZWJWaWV3QmFzZUNsYXNzKiB3ZWJraXRXZWJW
aWUKICNlbmRpZgogCiAgICAgLy8gQmVmb3JlIGNyZWF0aW5nIGEgV2ViS2l0V2ViVmlld0Jhc2VQ
cml2IHdlIG5lZWQgdG8gYmUgc3VyZSB0aGF0IFdlYktpdCBpcyBzdGFydGVkLgotICAgIC8vIFVz
dWFsbHkgc3RhcnRpbmcgYSBjb250ZXh0IHRyaWdnZXJzIEluaXRpYWxpemVXZWJLaXQyLCBidXQg
aW4gY2FzZQorICAgIC8vIFVzdWFsbHkgc3RhcnRpbmcgYSBjb250ZXh0IHRyaWdnZXJzIHdlYmtp
dEluaXRpYWxpemUsIGJ1dCBpbiBjYXNlCiAgICAgLy8gd2UgY3JlYXRlIGEgdmlldyB3aXRob3V0
IGFza2luZyBiZWZvcmUgZm9yIGEgZGVmYXVsdF9jb250ZXh0IHdlIGdldCBhIGNyYXNoLgotICAg
IFdlYktpdDo6SW5pdGlhbGl6ZVdlYktpdDIoKTsKKyAgICBXZWJLaXQ6OndlYmtpdEluaXRpYWxp
emUoKTsKIAogICAgIGd0a193aWRnZXRfY2xhc3Nfc2V0X2Nzc19uYW1lKHdpZGdldENsYXNzLCAi
d2Via2l0d2VidmlldyIpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Z2xpYi9XZWJQcm9jZXNzUG9vbEdMaWIuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ2xp
Yi9XZWJQcm9jZXNzUG9vbEdMaWIuY3BwCmluZGV4IGRlYWFiZjdjN2JkZDMwNTdkYzg5NjRjMzM5
ZWQ1MGMyMjRiM2VmNzcuLmJlMTk3OTZlZDk2ZDA3MDU0MjhmMDgxOTk1ODA2MjU0ZTJmMmFkMzYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2dsaWIvV2ViUHJvY2Vzc1Bvb2xH
TGliLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9nbGliL1dlYlByb2Nlc3NQb29s
R0xpYi5jcHAKQEAgLTMxLDEwICszMSw4IEBACiAjaW5jbHVkZSAiTGVnYWN5R2xvYmFsU2V0dGlu
Z3MuaCIKICNpbmNsdWRlICJXZWJNZW1vcnlQcmVzc3VyZUhhbmRsZXIuaCIKICNpbmNsdWRlICJX
ZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCi0jaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUv
UmVtb3RlSW5zcGVjdG9yU2VydmVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybURpc3Bs
YXkuaD4KICNpbmNsdWRlIDx3dGYvRmlsZVN5c3RlbS5oPgotI2luY2x1ZGUgPHd0Zi9nbGliL0dV
bmlxdWVQdHIuaD4KIAogI2lmIFVTRShHU1RSRUFNRVIpCiAjaW5jbHVkZSA8V2ViQ29yZS9HU3Ry
ZWFtZXJDb21tb24uaD4KQEAgLTU0LDMwICs1Miw2IEBACiAKIG5hbWVzcGFjZSBXZWJLaXQgewog
Ci0jaWYgRU5BQkxFKFJFTU9URV9JTlNQRUNUT1IpCi1zdGF0aWMgdm9pZCBpbml0aWFsaXplUmVt
b3RlSW5zcGVjdG9yU2VydmVyKGNvbnN0IGNoYXIqIGFkZHJlc3MpCi17Ci0gICAgaWYgKEluc3Bl
Y3Rvcjo6UmVtb3RlSW5zcGVjdG9yU2VydmVyOjpzaW5nbGV0b24oKS5pc1J1bm5pbmcoKSkKLSAg
ICAgICAgcmV0dXJuOwotCi0gICAgaWYgKCFhZGRyZXNzWzBdKQotICAgICAgICByZXR1cm47Ci0K
LSAgICBHVW5pcXVlUHRyPGNoYXI+IGluc3BlY3RvckFkZHJlc3MoZ19zdHJkdXAoYWRkcmVzcykp
OwotICAgIGNoYXIqIHBvcnRQdHIgPSBnX3N0cnJzdHIoaW5zcGVjdG9yQWRkcmVzcy5nZXQoKSwg
IjoiKTsKLSAgICBpZiAoIXBvcnRQdHIpCi0gICAgICAgIHJldHVybjsKLQotICAgICpwb3J0UHRy
ID0gJ1wwJzsKLSAgICBwb3J0UHRyKys7Ci0gICAgZ3VpbnQ2NCBwb3J0ID0gZ19hc2NpaV9zdHJ0
b3VsbChwb3J0UHRyLCBudWxscHRyLCAxMCk7Ci0gICAgaWYgKCFwb3J0KQotICAgICAgICByZXR1
cm47Ci0KLSAgICBJbnNwZWN0b3I6OlJlbW90ZUluc3BlY3RvclNlcnZlcjo6c2luZ2xldG9uKCku
c3RhcnQoaW5zcGVjdG9yQWRkcmVzcy5nZXQoKSwgcG9ydCk7Ci19Ci0jZW5kaWYKLQogc3RhdGlj
IGJvb2wgbWVtb3J5UHJlc3N1cmVNb25pdG9yRGlzYWJsZWQoKQogewogICAgIHN0YXRpYyBjb25z
dCBjaGFyKiBkaXNhYmxlTWVtb3J5UHJlc3N1cmVNb25pdG9yID0gZ2V0ZW52KCJXRUJLSVRfRElT
QUJMRV9NRU1PUllfUFJFU1NVUkVfTU9OSVRPUiIpOwpAQCAtOTIsMTEgKzY2LDYgQEAgdm9pZCBX
ZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplKCkKICAgICBpZiAoY29uc3QgY2hhciog
Zm9yY2VDb21wbGV4VGV4dCA9IGdldGVudigiV0VCS0lUX0ZPUkNFX0NPTVBMRVhfVEVYVCIpKQog
ICAgICAgICBtX2Fsd2F5c1VzZXNDb21wbGV4VGV4dENvZGVQYXRoID0gIXN0cmNtcChmb3JjZUNv
bXBsZXhUZXh0LCAiMSIpOwogCi0jaWYgRU5BQkxFKFJFTU9URV9JTlNQRUNUT1IpCi0gICAgaWYg
KGNvbnN0IGNoYXIqIGFkZHJlc3MgPSBnX2dldGVudigiV0VCS0lUX0lOU1BFQ1RPUl9TRVJWRVIi
KSkKLSAgICAgICAgaW5pdGlhbGl6ZVJlbW90ZUluc3BlY3RvclNlcnZlcihhZGRyZXNzKTsKLSNl
bmRpZgotCiAgICAgaWYgKCFtZW1vcnlQcmVzc3VyZU1vbml0b3JEaXNhYmxlZCgpKQogICAgICAg
ICBpbnN0YWxsTWVtb3J5UHJlc3N1cmVIYW5kbGVyKCk7CiB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>