<?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>224533</bug_id>
          
          <creation_ts>2021-04-14 00:41:56 -0700</creation_ts>
          <short_desc>[GTK][WPE] Properly recover from unresponsive web processes</short_desc>
          <delta_ts>2021-04-30 11:58:14 -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=224359</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="Miguel Gomez">magomez</reporter>
          <assigned_to name="Miguel Gomez">magomez</assigned_to>
          <cc>aperez</cc>
    
    <cc>berto</cc>
    
    <cc>bugs-noreply</cc>
    
    <cc>cgarcia</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fujii</cc>
    
    <cc>gustavo</cc>
    
    <cc>mcatanzaro</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1750032</commentid>
    <comment_count>0</comment_count>
    <who name="Miguel Gomez">magomez</who>
    <bug_when>2021-04-14 00:41:56 -0700</bug_when>
    <thetext>Bug 224359 added a signal to WebKitWebView to indicate whether the web process associated to it has become unresponsive. But currently the only way to recover from that scenario is by recreating the view, as the other methods that could be useful (reload, uri or load alternate html) will hang if the web process is not responsive. We need to look into those to make them work in that scenario.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1754951</commentid>
    <comment_count>1</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2021-04-28 00:38:54 -0700</bug_when>
    <thetext>You can get the pid of the web process by using WKPageGetProcessIdentifier API. You can kill the unresponsive web process. I am not sure this is the proper way to recover.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1754959</commentid>
    <comment_count>2</comment_count>
    <who name="Miguel Gomez">magomez</who>
    <bug_when>2021-04-28 01:16:08 -0700</bug_when>
    <thetext>(In reply to Fujii Hironori from comment #1)
&gt; You can get the pid of the web process by using WKPageGetProcessIdentifier
&gt; API. You can kill the unresponsive web process. I am not sure this is the
&gt; proper way to recover.

I think that&apos;s the intended way to do it when using the C API (I know some people are doing it that way).
In the glib API we don&apos;t have an equivalent to WKPageGetProcessIdentifier though. We could add one and follow the same approach, or we could just add an API method to WebKitWebView to directly kill the web content process.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1754998</commentid>
    <comment_count>3</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-04-28 06:12:23 -0700</bug_when>
    <thetext>(In reply to Miguel Gomez from comment #2)
&gt; or we could just add
&gt; an API method to WebKitWebView to directly kill the web content process.

That seems like a better approach, but I&apos;m not convinced it&apos;s needed. webkit_web_view_load_* could do the killing for us internally.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1755311</commentid>
    <comment_count>4</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2021-04-29 00:49:34 -0700</bug_when>
    <thetext>My initial idea was to implicitly kill the web process if it&apos;s unresponsive when new load happens or on refresh, but now I&apos;m more convinced that an explicit approach would be better. It might not be obvious for the user that a new load needs to happen, for example. In the case of a crash we don&apos;t have a web process anymore, so a new load is no different than the initial load. And we probably only want to kill the process if the user handled the signal, but it&apos;s a property notification so we don&apos;t really know what the user replied. If we decide to go with the explicit approach I would expose a method to kill the web view web process, I wouldn&apos;t expose process ids.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1755423</commentid>
    <comment_count>5</comment_count>
      <attachid>427352</attachid>
    <who name="Miguel Gomez">magomez</who>
    <bug_when>2021-04-29 09:51:18 -0700</bug_when>
    <thetext>Created attachment 427352
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1755425</commentid>
    <comment_count>6</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2021-04-29 09:52:23 -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 https://trac.webkit.org/wiki/WebKitGTK/AddingNewWebKit2API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1755441</commentid>
    <comment_count>7</comment_count>
      <attachid>427352</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-04-29 10:29:27 -0700</bug_when>
    <thetext>Comment on attachment 427352
Patch

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

LGTM

&gt; Source/WebKit/UIProcess/API/glib/WebKitNavigationClient.cpp:121
&gt; +        case ProcessTerminationReason::ExceededCPULimit:

Preexisting problem: this one should use WEBKIT_WEB_PROCESS_CRASHED (or ideally get its own public enum value). The other three cases occur when the process is terminated due to implementation detail, so it makes sense that the application is not notified. But exceeded CPU limit is definitely something the application needs to know about in order to offer the process crash error page.

&gt; Source/WebKit/UIProcess/API/glib/WebKitWebView.cpp:4780
&gt; +    if (auto* provisionalPageProxy = page.provisionalPageProxy()) {
&gt; +        Ref&lt;WebKit::WebProcessProxy&gt; protectedProcessProxy(provisionalPageProxy-&gt;process());
&gt; +        protectedProcessProxy-&gt;requestTermination(WebKit::ProcessTerminationReason::RequestedByClient);
&gt; +    }

Hmm... do we really want to kill the provisional page? I&apos;m not entirely sure what the provisional page is, but my guess is that is the prewarmed process that is waiting to be swapped in. If so, we don&apos;t want to kill it, as it&apos;s not unresponsive, and that would slow down the process swap that&apos;s about to occur. Am I wrong?

&gt; Source/WebKit/UIProcess/API/gtk/WebKitWebView.h:196
&gt; + * @WEBKIT_WEB_PROCESS_REQUESTED_BY_API: the web process termination was requested by an API call.

@WEBKIT_WEB_PROCESS_REQUESTED_BY_API: the web process termination was requested by an API call. Since: 2.34

&gt; Source/WebKit/UIProcess/API/wpe/WebKitWebView.h:165
&gt; + * @WEBKIT_WEB_PROCESS_REQUESTED_BY_API: the web process termination was requested by an API call.

@WEBKIT_WEB_PROCESS_REQUESTED_BY_API: the web process termination was requested by an API call. Since: 2.34

&gt; Tools/TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebView.cpp:1551
&gt; +    static gboolean webProcessTerminatedCallback(WebKitWebView *webView, WebKitWebProcessTerminationReason reason, WebViewTerminateWebProcessTest* test)

This should return void, not gboolean, since the web-process-terminated signal has no return value.

Also the * is hanging wrong: WebKitWebView* webView

&gt; Tools/TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebView.cpp:1586
&gt; +        &quot;   setTimeout(function() {&quot;
&gt; +        &quot;    var start = new Date().getTime();&quot;
&gt; +        &quot;    var end = start;&quot;
&gt; +        &quot;     while(end &lt; start + 4000) {&quot;
&gt; +        &quot;      end = new Date().getTime();&quot;
&gt; +        &quot;     }&quot;
&gt; +        &quot;    }, 500);&quot;

I think you could just do while(true) in the timeout callback.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1755442</commentid>
    <comment_count>8</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-04-29 10:31:25 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #7)
&gt; Hmm... do we really want to kill the provisional page? I&apos;m not entirely sure
&gt; what the provisional page is, but my guess is that is the prewarmed process
&gt; that is waiting to be swapped in. If so, we don&apos;t want to kill it, as it&apos;s
&gt; not unresponsive, and that would slow down the process swap that&apos;s about to
&gt; occur. Am I wrong?

Hm, maybe it is a page that&apos;s used during provisional loads before the load is committed? Then killing it is needed in case it is unresponsive?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1755628</commentid>
    <comment_count>9</comment_count>
      <attachid>427352</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2021-04-30 00:40:55 -0700</bug_when>
    <thetext>Comment on attachment 427352
Patch

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

&gt;&gt; Source/WebKit/UIProcess/API/glib/WebKitNavigationClient.cpp:121
&gt;&gt; +        case ProcessTerminationReason::ExceededCPULimit:
&gt; 
&gt; Preexisting problem: this one should use WEBKIT_WEB_PROCESS_CRASHED (or ideally get its own public enum value). The other three cases occur when the process is terminated due to implementation detail, so it makes sense that the application is not notified. But exceeded CPU limit is definitely something the application needs to know about in order to offer the process crash error page.

We don&apos;t have CPU limit enabled, only memory limit. I agree we should enable it and then expose the option, but that should be a separate bug.

&gt;&gt; Source/WebKit/UIProcess/API/glib/WebKitWebView.cpp:4780
&gt;&gt; +    }
&gt; 
&gt; Hmm... do we really want to kill the provisional page? I&apos;m not entirely sure what the provisional page is, but my guess is that is the prewarmed process that is waiting to be swapped in. If so, we don&apos;t want to kill it, as it&apos;s not unresponsive, and that would slow down the process swap that&apos;s about to occur. Am I wrong?

This is what cocoa does</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1755635</commentid>
    <comment_count>10</comment_count>
      <attachid>427401</attachid>
    <who name="Miguel Gomez">magomez</who>
    <bug_when>2021-04-30 01:59:27 -0700</bug_when>
    <thetext>Created attachment 427401
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1755636</commentid>
    <comment_count>11</comment_count>
      <attachid>427401</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2021-04-30 02:09:58 -0700</bug_when>
    <thetext>Comment on attachment 427401
Patch

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

&gt; Source/WebKit/UIProcess/API/glib/WebKitWebView.cpp:4763
&gt; + * signal is emitted with WEBKIT_WEB_PROCESS_REQUESTED_BY_API as the reason for

WEBKIT_WEB_PROCESS_REQUESTED_BY_API -&gt; %WEBKIT_WEB_PROCESS_REQUESTED_BY_API

&gt; Tools/TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebView.cpp:1561
&gt; +    g_signal_connect_after(test-&gt;m_webView, &quot;web-process-terminated&quot;, G_CALLBACK(WebViewTerminateWebProcessTest::webProcessTerminatedCallback), test);

I would connect to the signal from the WebViewTerminateWebProcessTest constructor

&gt; Tools/TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebView.cpp:1570
&gt; +    g_signal_handlers_disconnect_by_func(test-&gt;m_webView, reinterpret_cast&lt;void*&gt;(WebViewTerminateWebProcessTest::webProcessTerminatedCallback), test);

And disconnect from the destructor using g_signal_handlers_disconnect_by_data

&gt; Tools/TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebView.cpp:1586
&gt; +    g_signal_connect_after(test-&gt;m_webView, &quot;web-process-terminated&quot;, G_CALLBACK(WebViewTerminateWebProcessTest::webProcessTerminatedCallback), test);

Ditto.

&gt; Tools/TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebView.cpp:1606
&gt; +    g_signal_handlers_disconnect_by_func(test-&gt;m_webView, reinterpret_cast&lt;void*&gt;(WebViewTerminateWebProcessTest::webProcessTerminatedCallback), test);

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1755638</commentid>
    <comment_count>12</comment_count>
      <attachid>427403</attachid>
    <who name="Miguel Gomez">magomez</who>
    <bug_when>2021-04-30 02:42:51 -0700</bug_when>
    <thetext>Created attachment 427403
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1755651</commentid>
    <comment_count>13</comment_count>
      <attachid>427403</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-04-30 05:16:29 -0700</bug_when>
    <thetext>Comment on attachment 427403
Patch

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

OK, nice.

&gt; Source/WebKit/UIProcess/API/gtk/WebKitWebView.h:196
&gt; + * @WEBKIT_WEB_PROCESS_REQUESTED_BY_API: the web process termination was requested by an API call. Since: 2.34

Let&apos;s call it WEBKIT_WEB_PROCESS_TERMINATION_REQUESTED_BY_API or WEBKIT_WEB_PROCESS_KILL_REQUESTED_BY_API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1755659</commentid>
    <comment_count>14</comment_count>
      <attachid>427411</attachid>
    <who name="Miguel Gomez">magomez</who>
    <bug_when>2021-04-30 06:01:59 -0700</bug_when>
    <thetext>Created attachment 427411
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1755664</commentid>
    <comment_count>15</comment_count>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2021-04-30 06:32:26 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #13)
&gt; Comment on attachment 427403 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=427403&amp;action=review
&gt; 
&gt; OK, nice.
&gt; 
&gt; &gt; Source/WebKit/UIProcess/API/gtk/WebKitWebView.h:196
&gt; &gt; + * @WEBKIT_WEB_PROCESS_REQUESTED_BY_API: the web process termination was requested by an API call. Since: 2.34
&gt; 
&gt; Let&apos;s call it WEBKIT_WEB_PROCESS_TERMINATION_REQUESTED_BY_API or
&gt; WEBKIT_WEB_PROCESS_KILL_REQUESTED_BY_API

Gah! Such a mouthful. How about WEBKIT_WEB_PROCESS_API_TERMINATION,
which is two words less? :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1755673</commentid>
    <comment_count>16</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2021-04-30 07:18:24 -0700</bug_when>
    <thetext>WEBKIT_WEB_PROCESS_TERMINATED_BY_API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1755682</commentid>
    <comment_count>17</comment_count>
      <attachid>427419</attachid>
    <who name="Miguel Gomez">magomez</who>
    <bug_when>2021-04-30 08:07:25 -0700</bug_when>
    <thetext>Created attachment 427419
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1755690</commentid>
    <comment_count>18</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-04-30 08:36:31 -0700</bug_when>
    <thetext>(In reply to Carlos Garcia Campos from comment #16)
&gt; WEBKIT_WEB_PROCESS_TERMINATED_BY_API

Good name.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1755760</commentid>
    <comment_count>19</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-04-30 11:58:11 -0700</bug_when>
    <thetext>Committed r276848 (237199@main): &lt;https://commits.webkit.org/237199@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 427419.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>427352</attachid>
            <date>2021-04-29 09:51:18 -0700</date>
            <delta_ts>2021-04-30 01:59:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224533-20210429185116.patch</filename>
            <type>text/plain</type>
            <size>16513</size>
            <attacher name="Miguel Gomez">magomez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc2Nzc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGQwNzhkZjEyMjYwYmI5NDIx
YzJmNTk3MzQ0N2Q1ZGQ0NWI5NzcyNjMuLjg5ZjAxOWJjYmZiYmUzZDU0YTgzZTE4NTlmMGIzMGRi
ZDc3ZDViOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMjEtMDQtMjkgIE1pZ3VlbCBH
b21leiAgPG1hZ29tZXpAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLXVtXUEVdIFByb3Blcmx5
IHJlY292ZXIgZnJvbSB1bnJlc3BvbnNpdmUgd2ViIHByb2Nlc3NlcworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI0NTMzCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgbmV3IG1ldGhvZCB0byB0aGUg
R0xpYiBBUEkgdG8gdGVybWluYXRlIHRoZSB3ZWIgcHJvY2VzcyBhc3NvY2lhdGVkIHRvIGEKKyAg
ICAgICAgV2ViS2l0V2ViVmlldy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJL
aXROYXZpZ2F0aW9uQ2xpZW50LmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2dsaWIvV2Vi
S2l0V2ViVmlldy5jcHA6CisgICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfdGVybWluYXRlX3dlYl9w
cm9jZXNzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3Lmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLTQuMC1zZWN0aW9ucy50
eHQ6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0V2ViVmlldy5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvd3BlL2RvY3Mvd3BlLTEuMC1zZWN0aW9ucy50eHQ6CisKIDIwMjEt
MDQtMjkgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBJbXByb3Zl
IGxvY2FsIHN0b3JhZ2Ugc2l6ZSBlc3RpbWF0aW9uIGZvciBxdW90YSBsaW1pdGF0aW9uCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXROYXZpZ2F0aW9u
Q2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdE5hdmln
YXRpb25DbGllbnQuY3BwCmluZGV4IDQzMTFkMDg0OGU4MTA3NTQ1ZDM0MzdmMzg0OTE4MjRmZmM0
YTVkN2MuLjU5MDFjNTZhZWU2NGYzZjZlNmQyYWFiY2I0MGUzNjRhOTA5NTAzNjcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdE5hdmlnYXRpb25DbGll
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdE5hdmln
YXRpb25DbGllbnQuY3BwCkBAIC0xMTUsOCArMTE1LDEwIEBAIHByaXZhdGU6CiAgICAgICAgIGNh
c2UgUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uOjpFeGNlZWRlZE1lbW9yeUxpbWl0OgogICAgICAg
ICAgICAgd2Via2l0V2ViVmlld1dlYlByb2Nlc3NUZXJtaW5hdGVkKG1fd2ViVmlldywgV0VCS0lU
X1dFQl9QUk9DRVNTX0VYQ0VFREVEX01FTU9SWV9MSU1JVCk7CiAgICAgICAgICAgICByZXR1cm4g
dHJ1ZTsKLSAgICAgICAgY2FzZSBQcm9jZXNzVGVybWluYXRpb25SZWFzb246OkV4Y2VlZGVkQ1BV
TGltaXQ6CiAgICAgICAgIGNhc2UgUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uOjpSZXF1ZXN0ZWRC
eUNsaWVudDoKKyAgICAgICAgICAgIHdlYmtpdFdlYlZpZXdXZWJQcm9jZXNzVGVybWluYXRlZCht
X3dlYlZpZXcsIFdFQktJVF9XRUJfUFJPQ0VTU19SRVFVRVNURURfQllfQVBJKTsKKyAgICAgICAg
ICAgIHJldHVybiB0cnVlOworICAgICAgICBjYXNlIFByb2Nlc3NUZXJtaW5hdGlvblJlYXNvbjo6
RXhjZWVkZWRDUFVMaW1pdDoKICAgICAgICAgY2FzZSBQcm9jZXNzVGVybWluYXRpb25SZWFzb246
OlJlcXVlc3RlZEJ5TmV0d29ya1Byb2Nlc3M6CiAgICAgICAgIGNhc2UgUHJvY2Vzc1Rlcm1pbmF0
aW9uUmVhc29uOjpOYXZpZ2F0aW9uU3dhcDoKICAgICAgICAgY2FzZSBQcm9jZXNzVGVybWluYXRp
b25SZWFzb246OlJlcXVlc3RlZEJ5R1BVUHJvY2VzczoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYlZpZXcuY3BwIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViVmlldy5jcHAKaW5kZXggZDQxOWJkNGU4YzEyOTI4
NTVmZDc5NmU1MmViYTc0Njk1YmE5YzJiMS4uZDQ5NzQzYzA1YjZkMzA4NzNkMjRhNTc5OTg1MDI4
NjUyNzExYzJhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIv
V2ViS2l0V2ViVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIv
V2ViS2l0V2ViVmlldy5jcHAKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJBUElTZXJpYWxp
emVkU2NyaXB0VmFsdWUuaCIKICNpbmNsdWRlICJEYXRhUmVmZXJlbmNlLmgiCiAjaW5jbHVkZSAi
SW1hZ2VPcHRpb25zLmgiCisjaW5jbHVkZSAiUHJvdmlzaW9uYWxQYWdlUHJveHkuaCIKICNpbmNs
dWRlICJXZWJDZXJ0aWZpY2F0ZUluZm8uaCIKICNpbmNsdWRlICJXZWJDb250ZXh0TWVudUl0ZW0u
aCIKICNpbmNsdWRlICJXZWJDb250ZXh0TWVudUl0ZW1EYXRhLmgiCkBAIC00NzUyLDMgKzQ3NTMs
MzIgQEAgZ2Jvb2xlYW4gd2Via2l0X3dlYl92aWV3X2dldF9pc193ZWJfcHJvY2Vzc19yZXNwb25z
aXZlKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcpCiAKICAgICByZXR1cm4gd2ViVmlldy0+cHJpdi0+
aXNXZWJQcm9jZXNzUmVzcG9uc2l2ZTsKIH0KKworLyoqCisgKiB3ZWJraXRfd2ViX3ZpZXdfdGVy
bWluYXRlX3dlYl9wcm9jZXNzOgorICogQHdlYl92aWV3OiBhICNXZWJLaXRXZWJWaWV3CisgKgor
ICogVGVybWluYXRlcyB0aGUgd2ViIHByb2Nlc3MgYXNzb2NpYXRlZCB0byBAd2ViX3ZpZXcuIFdo
ZW4gdGhlIHdlYiBwcm9jZXNzCisgKiBnZXRzIHRlcm1pbmF0ZWQgdXNpbmcgdGhpcyBtZXRob2Qs
IHRoZSAjV2ViS2l0V2ViVmlldzo6d2ViLXByb2Nlc3MtdGVybWluYXRlZAorICogc2lnbmFsIGlz
IGVtaXR0ZWQgd2l0aCBXRUJLSVRfV0VCX1BST0NFU1NfUkVRVUVTVEVEX0JZX0FQSSBhcyB0aGUg
cmVhc29uIGZvcgorICogdGVybWluYXRpb24uCisgKgorICogU2luY2U6IDIuMzQKKyAqLwordm9p
ZCB3ZWJraXRfd2ViX3ZpZXdfdGVybWluYXRlX3dlYl9wcm9jZXNzKFdlYktpdFdlYlZpZXcqIHdl
YlZpZXcpCit7CisgICAgZ19yZXR1cm5faWZfZmFpbChXRUJLSVRfSVNfV0VCX1ZJRVcod2ViVmll
dykpOworCisgICAgYXV0byYgcGFnZSA9IGdldFBhZ2Uod2ViVmlldyk7CisKKyAgICBSZWY8V2Vi
S2l0OjpXZWJQcm9jZXNzUHJveHk+IHByb3RlY3RlZFByb2Nlc3NQcm94eShwYWdlLnByb2Nlc3Mo
KSk7CisgICAgcHJvdGVjdGVkUHJvY2Vzc1Byb3h5LT5yZXF1ZXN0VGVybWluYXRpb24oV2ViS2l0
OjpQcm9jZXNzVGVybWluYXRpb25SZWFzb246OlJlcXVlc3RlZEJ5Q2xpZW50KTsKKworICAgIGlm
IChhdXRvKiBwcm92aXNpb25hbFBhZ2VQcm94eSA9IHBhZ2UucHJvdmlzaW9uYWxQYWdlUHJveHko
KSkgeworICAgICAgICBSZWY8V2ViS2l0OjpXZWJQcm9jZXNzUHJveHk+IHByb3RlY3RlZFByb2Nl
c3NQcm94eShwcm92aXNpb25hbFBhZ2VQcm94eS0+cHJvY2VzcygpKTsKKyAgICAgICAgcHJvdGVj
dGVkUHJvY2Vzc1Byb3h5LT5yZXF1ZXN0VGVybWluYXRpb24oV2ViS2l0OjpQcm9jZXNzVGVybWlu
YXRpb25SZWFzb246OlJlcXVlc3RlZEJ5Q2xpZW50KTsKKyAgICB9CisKKyAgICAvLyBSZXNldCB0
aGUgc3RhdGUgb2YgdGhlIHJlc3BvbnNpdmVuZXNzIHByb3BlcnR5LgorICAgIHdlYmtpdFdlYlZp
ZXdTZXRJc1dlYlByb2Nlc3NSZXNwb25zaXZlKHdlYlZpZXcsIHRydWUpOworfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3LmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcuaAppbmRleCBmMWFmNDlh
YmVhMWYwN2I4ZTg2ZTY1MDRjNjJkYjlhZmRiYWVlM2YxLi4yY2ZkMDcyYzk0OTgyNmQyNjZjNmNl
N2M2NmFiYWE3YjI0Mjc4OWRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvZ3RrL1dlYktpdFdlYlZpZXcuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdFdlYlZpZXcuaApAQCAtMTkzLDYgKzE5Myw3IEBAIHR5cGVkZWYgZW51bSB7CiAg
KiBXZWJLaXRXZWJQcm9jZXNzVGVybWluYXRpb25SZWFzb246CiAgKiBAV0VCS0lUX1dFQl9QUk9D
RVNTX0NSQVNIRUQ6IHRoZSB3ZWIgcHJvY2VzcyBjcmFzaGVkLgogICogQFdFQktJVF9XRUJfUFJP
Q0VTU19FWENFRURFRF9NRU1PUllfTElNSVQ6IHRoZSB3ZWIgcHJvY2VzcyBleGNlZWRlZCB0aGUg
bWVtb3J5IGxpbWl0LgorICogQFdFQktJVF9XRUJfUFJPQ0VTU19SRVFVRVNURURfQllfQVBJOiB0
aGUgd2ViIHByb2Nlc3MgdGVybWluYXRpb24gd2FzIHJlcXVlc3RlZCBieSBhbiBBUEkgY2FsbC4K
ICAqCiAgKiBFbnVtIHZhbHVlcyB1c2VkIHRvIHNwZWNpZnkgdGhlIHJlYXNvbiB3aHkgdGhlIHdl
YiBwcm9jZXNzIHRlcm1pbmF0ZWQgYWJub3JtYWxseS4KICAqCkBAIC0yMDAsNyArMjAxLDggQEAg
dHlwZWRlZiBlbnVtIHsKICAqLwogdHlwZWRlZiBlbnVtIHsKICAgICBXRUJLSVRfV0VCX1BST0NF
U1NfQ1JBU0hFRCwKLSAgICBXRUJLSVRfV0VCX1BST0NFU1NfRVhDRUVERURfTUVNT1JZX0xJTUlU
CisgICAgV0VCS0lUX1dFQl9QUk9DRVNTX0VYQ0VFREVEX01FTU9SWV9MSU1JVCwKKyAgICBXRUJL
SVRfV0VCX1BST0NFU1NfUkVRVUVTVEVEX0JZX0FQSQogfSBXZWJLaXRXZWJQcm9jZXNzVGVybWlu
YXRpb25SZWFzb247CiAKIHN0cnVjdCBfV2ViS2l0V2ViVmlldyB7CkBAIC01OTIsNiArNTk0LDkg
QEAgd2Via2l0X3dlYl92aWV3X2dldF93ZWJzaXRlX3BvbGljaWVzICAgICAgICAgICAgICAgICAo
V2ViS2l0V2ViVmlldwogV0VCS0lUX0FQSSBnYm9vbGVhbgogd2Via2l0X3dlYl92aWV3X2dldF9p
c193ZWJfcHJvY2Vzc19yZXNwb25zaXZlICAgICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAgICAg
ICAqd2ViX3ZpZXcpOwogCitXRUJLSVRfQVBJIHZvaWQKK3dlYmtpdF93ZWJfdmlld190ZXJtaW5h
dGVfd2ViX3Byb2Nlc3MgICAgICAgICAgICAgICAgKFdlYktpdFdlYlZpZXcgICAgICAgICAgICAg
KndlYl92aWV3KTsKKwogR19FTkRfREVDTFMKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay00LjAtc2VjdGlvbnMudHh0
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstNC4wLXNl
Y3Rpb25zLnR4dAppbmRleCBkNmM1ZGQ0MTgwNmJhMTliMzE5M2Q2YmM2M2VhNzI0NDZiODFkMTFl
Li5hYzE1MjI1ZGExYzkwNWI3YWY5M2YwMGZlNjExMDg5ZmJkNDAyOWUyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay00LjAtc2VjdGlv
bnMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQy
Z3RrLTQuMC1zZWN0aW9ucy50eHQKQEAgLTI5MSw2ICsyOTEsNyBAQCB3ZWJraXRfd2ViX3ZpZXdf
c2V0X2lucHV0X21ldGhvZF9jb250ZXh0CiB3ZWJraXRfd2ViX3ZpZXdfZ2V0X2lucHV0X21ldGhv
ZF9jb250ZXh0CiB3ZWJraXRfd2ViX3ZpZXdfZ2V0X3dlYnNpdGVfcG9saWNpZXMKIHdlYmtpdF93
ZWJfdmlld19nZXRfaXNfd2ViX3Byb2Nlc3NfcmVzcG9uc2l2ZQord2Via2l0X3dlYl92aWV3X3Rl
cm1pbmF0ZV93ZWJfcHJvY2VzcwogCiA8U1VCU0VDVElPTiBXZWJLaXRKYXZhc2NyaXB0UmVzdWx0
PgogV2ViS2l0SmF2YXNjcmlwdFJlc3VsdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL3dwZS9XZWJLaXRXZWJWaWV3LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvd3BlL1dlYktpdFdlYlZpZXcuaAppbmRleCBiNTBhNzM3ZmQyODUyYWJiMDdiZGEwYzg5MjBl
Yjg2ODI2NTAwOGQ3Li41NjE2ODU5ZDA3ZDBlZmVmZDQ2ZTFhMjRlN2QxMTcxOGY0ZjEyMjMzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdFdlYlZpZXcu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdFdlYlZpZXcuaApA
QCAtMTYyLDYgKzE2Miw3IEBAIHR5cGVkZWYgZW51bSB7CiAgKiBXZWJLaXRXZWJQcm9jZXNzVGVy
bWluYXRpb25SZWFzb246CiAgKiBAV0VCS0lUX1dFQl9QUk9DRVNTX0NSQVNIRUQ6IHRoZSB3ZWIg
cHJvY2VzcyBjcmFzaGVkLgogICogQFdFQktJVF9XRUJfUFJPQ0VTU19FWENFRURFRF9NRU1PUllf
TElNSVQ6IHRoZSB3ZWIgcHJvY2VzcyBleGNlZWRlZCB0aGUgbWVtb3J5IGxpbWl0LgorICogQFdF
QktJVF9XRUJfUFJPQ0VTU19SRVFVRVNURURfQllfQVBJOiB0aGUgd2ViIHByb2Nlc3MgdGVybWlu
YXRpb24gd2FzIHJlcXVlc3RlZCBieSBhbiBBUEkgY2FsbC4KICAqCiAgKiBFbnVtIHZhbHVlcyB1
c2VkIHRvIHNwZWNpZnkgdGhlIHJlYXNvbiB3aHkgdGhlIHdlYiBwcm9jZXNzIHRlcm1pbmF0ZWQg
YWJub3JtYWxseS4KICAqCkBAIC0xNjksNyArMTcwLDggQEAgdHlwZWRlZiBlbnVtIHsKICAqLwog
dHlwZWRlZiBlbnVtIHsKICAgICBXRUJLSVRfV0VCX1BST0NFU1NfQ1JBU0hFRCwKLSAgICBXRUJL
SVRfV0VCX1BST0NFU1NfRVhDRUVERURfTUVNT1JZX0xJTUlUCisgICAgV0VCS0lUX1dFQl9QUk9D
RVNTX0VYQ0VFREVEX01FTU9SWV9MSU1JVCwKKyAgICBXRUJLSVRfV0VCX1BST0NFU1NfUkVRVUVT
VEVEX0JZX0FQSQogfSBXZWJLaXRXZWJQcm9jZXNzVGVybWluYXRpb25SZWFzb247CiAKIC8qKgpA
QCAtNTY4LDYgKzU3MCw5IEBAIHdlYmtpdF93ZWJfdmlld19nZXRfd2Vic2l0ZV9wb2xpY2llcyAg
ICAgICAgICAgICAgICAgKFdlYktpdFdlYlZpZXcKIFdFQktJVF9BUEkgZ2Jvb2xlYW4KIHdlYmtp
dF93ZWJfdmlld19nZXRfaXNfd2ViX3Byb2Nlc3NfcmVzcG9uc2l2ZSAgICAgICAgKFdlYktpdFdl
YlZpZXcgICAgICAgICAgICAgKndlYl92aWV3KTsKIAorV0VCS0lUX0FQSSB2b2lkCit3ZWJraXRf
d2ViX3ZpZXdfdGVybWluYXRlX3dlYl9wcm9jZXNzICAgICAgICAgICAgICAgIChXZWJLaXRXZWJW
aWV3ICAgICAgICAgICAgICp3ZWJfdmlldyk7CisKIEdfRU5EX0RFQ0xTCiAKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9kb2NzL3dwZS0xLjAtc2Vj
dGlvbnMudHh0IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9kb2NzL3dwZS0xLjAt
c2VjdGlvbnMudHh0CmluZGV4IDkzYmU5N2VhZGQ2NzZjMzU1YjU5ZDkwYTk0ZDliY2U3MTMyMTgw
NDYuLmFjM2E4MTVkZjljMTVlYjMxNzA0OTVkMGIxMjkxY2JkZjY3ZjcxN2MgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvZG9jcy93cGUtMS4wLXNlY3Rpb25zLnR4
dAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL2RvY3Mvd3BlLTEuMC1zZWN0
aW9ucy50eHQKQEAgLTI2Myw2ICsyNjMsNyBAQCB3ZWJraXRfd2ViX3ZpZXdfc2V0X2lucHV0X21l
dGhvZF9jb250ZXh0CiB3ZWJraXRfd2ViX3ZpZXdfZ2V0X2lucHV0X21ldGhvZF9jb250ZXh0CiB3
ZWJraXRfd2ViX3ZpZXdfZ2V0X3dlYnNpdGVfcG9saWNpZXMKIHdlYmtpdF93ZWJfdmlld19nZXRf
aXNfd2ViX3Byb2Nlc3NfcmVzcG9uc2l2ZQord2Via2l0X3dlYl92aWV3X3Rlcm1pbmF0ZV93ZWJf
cHJvY2VzcwogCiA8U1VCU0VDVElPTiBXZWJLaXRKYXZhc2NyaXB0UmVzdWx0PgogV2ViS2l0SmF2
YXNjcmlwdFJlc3VsdApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdl
TG9nCmluZGV4IGVjMjY2MThiNTNmYzMxYTlhMjYwNmUwMWJmNDYwZTM4MWMwY2RkYWQuLmE0MDZl
MmVjZjdjMTNhZjJmNzhlOGQzMzA3NWI0YWEwZDE3YTlhMmIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0No
YW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNCBAQAorMjAyMS0wNC0y
OSAgTWlndWVsIEdvbWV6ICA8bWFnb21lekBpZ2FsaWEuY29tPgorCisgICAgICAgIFtHVEtdW1dQ
RV0gUHJvcGVybHkgcmVjb3ZlciBmcm9tIHVucmVzcG9uc2l2ZSB3ZWIgcHJvY2Vzc2VzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjQ1MzMKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgdW5pdCB0ZXN0
cyBmb3IgdGhlIG5ldyB3ZWJraXRfd2ViX3ZpZXdfdGVybWluYXRlX3dlYl9wcm9jZXNzIEdMaWIg
QVBJIG1ldGhvZC4gQWxzbyBtb3ZlCisgICAgICAgIHRoZSBtZXRob2RzIHVzZWQgdG8gd2FpdCBm
b3IgcmVzcG9uc2l2ZW5lc3MgY2hhbmdlcyB0byBXZWJWaWV3VGVzdCwgYXMgdGhleSBhcmUgdXNl
ZCBieSBtb3JlCisgICAgICAgIHRoYW4gYSBzaW5nbGUgdGVzdC4KKworICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0V2ViS2l0V2ViVmlldy5jcHA6CisgICAgICAg
ICh0ZXN0V2ViVmlld0lzV2ViUHJvY2Vzc1Jlc3BvbnNpdmUpOgorICAgICAgICAodGVzdFdlYlZp
ZXdUZXJtaW5hdGVXZWJQcm9jZXNzKToKKyAgICAgICAgKHRlc3RXZWJWaWV3VGVybWluYXRlVW5y
ZXNwb25zaXZlV2ViUHJvY2Vzcyk6CisgICAgICAgIChiZWZvcmVBbGwpOgorICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvZ2xpYi9XZWJLaXRHTGliL1dlYlZpZXdUZXN0LmNwcDoKKyAgICAgICAgKGlz
V2ViUHJvY2Vzc1Jlc3BvbnNpdmVDaGFuZ2VkKToKKyAgICAgICAgKFdlYlZpZXdUZXN0Ojp3YWl0
VW50aWxJc1dlYlByb2Nlc3NSZXNwb25zaXZlQ2hhbmdlZCk6CisgICAgICAgICogVGVzdFdlYktp
dEFQSS9nbGliL1dlYktpdEdMaWIvV2ViVmlld1Rlc3QuaDoKKwogMjAyMS0wNC0yOSAgUm95IFJl
YXBvciAgPHJyZWFwb3JAYXBwbGUuY29tPgogCiAgICAgICAgIFt3ZWJraXRjb3JlcHldIEFsbG93
IHVzZXIgdG8gc3BlY2lmeSBpbnRlcnByZXRlciB1c2VkIGJ5IGF1dG9pbnN0YWxsLnB5IHRvIGlu
c3RhbGwgaW1wb3J0ZWQgZGVwZW5kZW5jaWVzCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFdlYktpdFdlYlZpZXcuY3BwIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RXZWJLaXRXZWJWaWV3LmNwcAppbmRleCBiMjM3
NTEzNjA0Y2M4ZDQyMjhlZGJmODkxMDZiOTU2YjQ0NjBlYzgzLi5iOGFhMmQ2ZjEwMzQ0Yzg0MjMy
NGEwYjczODIxNzVlZjcwNzU2MWJjIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdEdMaWIvVGVzdFdlYktpdFdlYlZpZXcuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0V2ViS2l0V2ViVmlldy5jcHAKQEAgLTExNzcsMjQg
KzExNzcsNyBAQCBzdGF0aWMgdm9pZCB0ZXN0V2ViVmlld0F1dG9wbGF5UG9saWN5KFdlYlZpZXdU
ZXN0KiB0ZXN0LCBnY29uc3Rwb2ludGVyKQogICAgIGdfYXNzZXJ0X2NtcGludCh3ZWJraXRfd2Vi
c2l0ZV9wb2xpY2llc19nZXRfYXV0b3BsYXlfcG9saWN5KHBvbGljaWVzKSwgPT0sIFdFQktJVF9B
VVRPUExBWV9BTExPV19XSVRIT1VUX1NPVU5EKTsKIH0KIAotY2xhc3MgV2ViVmlld0lzV2ViUHJv
Y2Vzc1Jlc3BvbnNpdmVUZXN0OiBwdWJsaWMgV2ViVmlld1Rlc3QgewotcHVibGljOgotICAgIE1B
S0VfR0xJQl9URVNUX0ZJWFRVUkUoV2ViVmlld0lzV2ViUHJvY2Vzc1Jlc3BvbnNpdmVUZXN0KTsK
LQotICAgIHN0YXRpYyB2b2lkIGlzV2ViUHJvY2Vzc1Jlc3BvbnNpdmVDaGFuZ2VkKFdlYktpdFdl
YlZpZXcqIHZpZXcsIEdQYXJhbVNwZWMqLCBXZWJWaWV3SXNXZWJQcm9jZXNzUmVzcG9uc2l2ZVRl
c3QqIHRlc3QpCi0gICAgewotICAgICAgICBnX3NpZ25hbF9oYW5kbGVyc19kaXNjb25uZWN0X2J5
X2Z1bmModGVzdC0+bV93ZWJWaWV3LCByZWludGVycHJldF9jYXN0PHZvaWQqPihpc1dlYlByb2Nl
c3NSZXNwb25zaXZlQ2hhbmdlZCksIHRlc3QpOwotICAgICAgICBnX21haW5fbG9vcF9xdWl0KHRl
c3QtPm1fbWFpbkxvb3ApOwotICAgIH0KLQotICAgIHZvaWQgd2FpdFVudGlsSXNXZWJQcm9jZXNz
UmVzcG9uc2l2ZUNoYW5nZWQoKQotICAgIHsKLSAgICAgICAgZ19zaWduYWxfY29ubmVjdChtX3dl
YlZpZXcsICJub3RpZnk6OmlzLXdlYi1wcm9jZXNzLXJlc3BvbnNpdmUiLCBHX0NBTExCQUNLKGlz
V2ViUHJvY2Vzc1Jlc3BvbnNpdmVDaGFuZ2VkKSwgdGhpcyk7Ci0gICAgICAgIGdfbWFpbl9sb29w
X3J1bihtX21haW5Mb29wKTsKLSAgICB9Ci19OwotCi1zdGF0aWMgdm9pZCB0ZXN0V2ViVmlld0lz
V2ViUHJvY2Vzc1Jlc3BvbnNpdmUoV2ViVmlld0lzV2ViUHJvY2Vzc1Jlc3BvbnNpdmVUZXN0KiB0
ZXN0LCBnY29uc3Rwb2ludGVyKQorc3RhdGljIHZvaWQgdGVzdFdlYlZpZXdJc1dlYlByb2Nlc3NS
ZXNwb25zaXZlKFdlYlZpZXdUZXN0KiB0ZXN0LCBnY29uc3Rwb2ludGVyKQogewogICAgIHN0YXRp
YyBjb25zdCBjaGFyKiBoYW5nSFRNTCA9CiAgICAgICAgICI8aHRtbD4iCkBAIC0xNTYxLDYgKzE1
NDQsNzMgQEAgc3RhdGljIHZvaWQgdGVzdFdlYlZpZXdFeHRlcm5hbEF1ZGlvUmVuZGVyaW5nKEF1
ZGlvUmVuZGVyaW5nV2ViVmlld1Rlc3QqIHRlc3QsIGcKIH0KICNlbmRpZgogCitjbGFzcyBXZWJW
aWV3VGVybWluYXRlV2ViUHJvY2Vzc1Rlc3Q6IHB1YmxpYyBXZWJWaWV3VGVzdCB7CitwdWJsaWM6
CisgICAgTUFLRV9HTElCX1RFU1RfRklYVFVSRShXZWJWaWV3VGVybWluYXRlV2ViUHJvY2Vzc1Rl
c3QpOworCisgICAgc3RhdGljIGdib29sZWFuIHdlYlByb2Nlc3NUZXJtaW5hdGVkQ2FsbGJhY2so
V2ViS2l0V2ViVmlldyAqd2ViVmlldywgV2ViS2l0V2ViUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29u
IHJlYXNvbiwgV2ViVmlld1Rlcm1pbmF0ZVdlYlByb2Nlc3NUZXN0KiB0ZXN0KQorICAgIHsKKyAg
ICAgICAgdGVzdC0+bV90ZXJtaW5hdGlvblJlYXNvbiA9IHJlYXNvbjsKKyAgICAgICAgcmV0dXJu
IFRSVUU7CisgICAgfQorCisgICAgV2ViS2l0V2ViUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uIG1f
dGVybWluYXRpb25SZWFzb24geyBXRUJLSVRfV0VCX1BST0NFU1NfQ1JBU0hFRCB9OworfTsKKwor
c3RhdGljIHZvaWQgdGVzdFdlYlZpZXdUZXJtaW5hdGVXZWJQcm9jZXNzKFdlYlZpZXdUZXJtaW5h
dGVXZWJQcm9jZXNzVGVzdCogdGVzdCwgZ2NvbnN0cG9pbnRlcikKK3sKKyAgICBnX3NpZ25hbF9j
b25uZWN0X2FmdGVyKHRlc3QtPm1fd2ViVmlldywgIndlYi1wcm9jZXNzLXRlcm1pbmF0ZWQiLCBH
X0NBTExCQUNLKFdlYlZpZXdUZXJtaW5hdGVXZWJQcm9jZXNzVGVzdDo6d2ViUHJvY2Vzc1Rlcm1p
bmF0ZWRDYWxsYmFjayksIHRlc3QpOworCisgICAgdGVzdC0+bG9hZEh0bWwoIjxodG1sPjwvaHRt
bD4iLCBudWxscHRyKTsKKyAgICB0ZXN0LT53YWl0VW50aWxMb2FkRmluaXNoZWQoKTsKKyAgICB0
ZXN0LT5tX2V4cGVjdGVkV2ViUHJvY2Vzc0NyYXNoID0gdHJ1ZTsKKyAgICB3ZWJraXRfd2ViX3Zp
ZXdfdGVybWluYXRlX3dlYl9wcm9jZXNzKHRlc3QtPm1fd2ViVmlldyk7CisgICAgZ19hc3NlcnRf
Y21wdWludCh0ZXN0LT5tX3Rlcm1pbmF0aW9uUmVhc29uLCA9PSwgV0VCS0lUX1dFQl9QUk9DRVNT
X1JFUVVFU1RFRF9CWV9BUEkpOworICAgIGdfYXNzZXJ0X3RydWUod2Via2l0X3dlYl92aWV3X2dl
dF9pc193ZWJfcHJvY2Vzc19yZXNwb25zaXZlKHRlc3QtPm1fd2ViVmlldykpOworCisgICAgZ19z
aWduYWxfaGFuZGxlcnNfZGlzY29ubmVjdF9ieV9mdW5jKHRlc3QtPm1fd2ViVmlldywgcmVpbnRl
cnByZXRfY2FzdDx2b2lkKj4oV2ViVmlld1Rlcm1pbmF0ZVdlYlByb2Nlc3NUZXN0Ojp3ZWJQcm9j
ZXNzVGVybWluYXRlZENhbGxiYWNrKSwgdGVzdCk7Cit9CisKK3N0YXRpYyB2b2lkIHRlc3RXZWJW
aWV3VGVybWluYXRlVW5yZXNwb25zaXZlV2ViUHJvY2VzcyhXZWJWaWV3VGVybWluYXRlV2ViUHJv
Y2Vzc1Rlc3QqIHRlc3QsIGdjb25zdHBvaW50ZXIpCit7CisgICAgc3RhdGljIGNvbnN0IGNoYXIq
IGhhbmdIVE1MID0KKyAgICAgICAgIjxodG1sPiIKKyAgICAgICAgIiA8Ym9keT4iCisgICAgICAg
ICIgIDxzY3JpcHQ+IgorICAgICAgICAiICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsiCisgICAg
ICAgICIgICAgdmFyIHN0YXJ0ID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7IgorICAgICAgICAiICAg
IHZhciBlbmQgPSBzdGFydDsiCisgICAgICAgICIgICAgIHdoaWxlKGVuZCA8IHN0YXJ0ICsgNDAw
MCkgeyIKKyAgICAgICAgIiAgICAgIGVuZCA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpOyIKKyAgICAg
ICAgIiAgICAgfSIKKyAgICAgICAgIiAgICB9LCA1MDApOyIKKyAgICAgICAgIiAgPC9zY3JpcHQ+
IgorICAgICAgICAiIDwvYm9keT4iCisgICAgICAgICI8L2h0bWw+IjsKKworICAgIGdfc2lnbmFs
X2Nvbm5lY3RfYWZ0ZXIodGVzdC0+bV93ZWJWaWV3LCAid2ViLXByb2Nlc3MtdGVybWluYXRlZCIs
IEdfQ0FMTEJBQ0soV2ViVmlld1Rlcm1pbmF0ZVdlYlByb2Nlc3NUZXN0Ojp3ZWJQcm9jZXNzVGVy
bWluYXRlZENhbGxiYWNrKSwgdGVzdCk7CisKKyAgICB0ZXN0LT5sb2FkSHRtbChoYW5nSFRNTCwg
bnVsbHB0cik7CisgICAgdGVzdC0+d2FpdFVudGlsTG9hZEZpbmlzaGVkKCk7CisgICAgZ19hc3Nl
cnRfdHJ1ZSh3ZWJraXRfd2ViX3ZpZXdfZ2V0X2lzX3dlYl9wcm9jZXNzX3Jlc3BvbnNpdmUodGVz
dC0+bV93ZWJWaWV3KSk7CisgICAgLy8gV2FpdCAxIHNlY29uZCwgc28gdGhlIGpzIHdoaWxlIGxv
b3Aga2lja3MgaW4gYW5kIGJsb2NrcyB0aGUgd2ViIHByb2Nlc3MsIGFuZCBjbGljayBvbiB0aGUg
cGFnZS4KKyAgICAvLyBBcyB0aGUgd2ViIHByb2Nlc3MgaXMgYnVzeSB0aGlzIHdvbid0IHdvcmss
IGFuZCBhZnRlciAzIHNlY29uZHMgdGhlIHdlYiBwcm9jZXNzIHdpbGwgYmUgbWFya2VkCisgICAg
Ly8gYXMgdW5yZXNwb25zaXZlLgorICAgIHRlc3QtPndhaXQoMSk7CisgICAgdGVzdC0+bG9hZEh0
bWwoIjxodG1sPjwvaHRtbD4iLCBudWxscHRyKTsKKyAgICB0ZXN0LT53YWl0VW50aWxJc1dlYlBy
b2Nlc3NSZXNwb25zaXZlQ2hhbmdlZCgpOworICAgIGdfYXNzZXJ0X2ZhbHNlKHdlYmtpdF93ZWJf
dmlld19nZXRfaXNfd2ViX3Byb2Nlc3NfcmVzcG9uc2l2ZSh0ZXN0LT5tX3dlYlZpZXcpKTsKKwor
ICAgIC8vIE5vdyB0aGF0IHRoZSBwcm9jZXNzIGlzIHVucmVzcG9uc2l2ZSwgdGVybWluYXRlIGl0
LgorICAgIHRlc3QtPm1fZXhwZWN0ZWRXZWJQcm9jZXNzQ3Jhc2ggPSB0cnVlOworICAgIHRlc3Qt
Pm1fdGVybWluYXRpb25SZWFzb24gPSBXRUJLSVRfV0VCX1BST0NFU1NfQ1JBU0hFRDsKKyAgICB3
ZWJraXRfd2ViX3ZpZXdfdGVybWluYXRlX3dlYl9wcm9jZXNzKHRlc3QtPm1fd2ViVmlldyk7Cisg
ICAgZ19hc3NlcnRfY21wdWludCh0ZXN0LT5tX3Rlcm1pbmF0aW9uUmVhc29uLCA9PSwgV0VCS0lU
X1dFQl9QUk9DRVNTX1JFUVVFU1RFRF9CWV9BUEkpOworICAgIGdfYXNzZXJ0X3RydWUod2Via2l0
X3dlYl92aWV3X2dldF9pc193ZWJfcHJvY2Vzc19yZXNwb25zaXZlKHRlc3QtPm1fd2ViVmlldykp
OworCisgICAgZ19zaWduYWxfaGFuZGxlcnNfZGlzY29ubmVjdF9ieV9mdW5jKHRlc3QtPm1fd2Vi
VmlldywgcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4oV2ViVmlld1Rlcm1pbmF0ZVdlYlByb2Nlc3NU
ZXN0Ojp3ZWJQcm9jZXNzVGVybWluYXRlZENhbGxiYWNrKSwgdGVzdCk7Cit9CisKICNpZiBVU0Uo
U09VUDIpCiBzdGF0aWMgdm9pZCBzZXJ2ZXJDYWxsYmFjayhTb3VwU2VydmVyKiBzZXJ2ZXIsIFNv
dXBNZXNzYWdlKiBtZXNzYWdlLCBjb25zdCBjaGFyKiBwYXRoLCBHSGFzaFRhYmxlKiwgU291cENs
aWVudENvbnRleHQqLCBncG9pbnRlcikKICNlbHNlCkBAIC0xNjI4LDcgKzE2NzgsOSBAQCB2b2lk
IGJlZm9yZUFsbCgpCiAjaWYgUExBVEZPUk0oV1BFKSAmJiBVU0UoV1BFQkFDS0VORF9GRE9fQVVE
SU9fRVhURU5TSU9OKQogICAgIEF1ZGlvUmVuZGVyaW5nV2ViVmlld1Rlc3Q6OmFkZCgiV2ViS2l0
V2ViVmlldyIsICJleHRlcm5hbC1hdWRpby1yZW5kZXJpbmciLCB0ZXN0V2ViVmlld0V4dGVybmFs
QXVkaW9SZW5kZXJpbmcpOwogI2VuZGlmCi0gICAgV2ViVmlld0lzV2ViUHJvY2Vzc1Jlc3BvbnNp
dmVUZXN0OjphZGQoIldlYktpdFdlYlZpZXciLCAiaXMtd2ViLXByb2Nlc3MtcmVzcG9uc2l2ZSIs
IHRlc3RXZWJWaWV3SXNXZWJQcm9jZXNzUmVzcG9uc2l2ZSk7CisgICAgV2ViVmlld1Rlc3Q6OmFk
ZCgiV2ViS2l0V2ViVmlldyIsICJpcy13ZWItcHJvY2Vzcy1yZXNwb25zaXZlIiwgdGVzdFdlYlZp
ZXdJc1dlYlByb2Nlc3NSZXNwb25zaXZlKTsKKyAgICBXZWJWaWV3VGVybWluYXRlV2ViUHJvY2Vz
c1Rlc3Q6OmFkZCgiV2ViS2l0V2ViVmlldyIsICJ0ZXJtaW5hdGUtd2ViLXByb2Nlc3MiLCB0ZXN0
V2ViVmlld1Rlcm1pbmF0ZVdlYlByb2Nlc3MpOworICAgIFdlYlZpZXdUZXJtaW5hdGVXZWJQcm9j
ZXNzVGVzdDo6YWRkKCJXZWJLaXRXZWJWaWV3IiwgInRlcm1pbmF0ZS11bnJlc3BvbnNpdmUtd2Vi
LXByb2Nlc3MiLCB0ZXN0V2ViVmlld1Rlcm1pbmF0ZVVucmVzcG9uc2l2ZVdlYlByb2Nlc3MpOwog
fQogCiB2b2lkIGFmdGVyQWxsKCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvZ2xp
Yi9XZWJLaXRHTGliL1dlYlZpZXdUZXN0LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvZ2xpYi9X
ZWJLaXRHTGliL1dlYlZpZXdUZXN0LmNwcAppbmRleCAzN2M2OWRiNzRlOWUxYTY0MGU5MjIyZGU0
MTkxOTIwMzM2ZjQwMWJjLi44MjY0ZWJhYWQ1NTdmZDBmOWExYzFhYTc1ZDkyNGFjMmNhMjkwYjFk
IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL2dsaWIvV2ViS2l0R0xpYi9XZWJWaWV3
VGVzdC5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9nbGliL1dlYktpdEdMaWIvV2ViVmll
d1Rlc3QuY3BwCkBAIC0yMjMsNiArMjIzLDE4IEBAIHZvaWQgV2ViVmlld1Rlc3Q6OndhaXRVbnRp
bFRpdGxlQ2hhbmdlZCgpCiAgICAgd2FpdFVudGlsVGl0bGVDaGFuZ2VkVG8oMCk7CiB9CiAKK3N0
YXRpYyB2b2lkIGlzV2ViUHJvY2Vzc1Jlc3BvbnNpdmVDaGFuZ2VkKFdlYktpdFdlYlZpZXcqIHdl
YlZpZXcsIEdQYXJhbVNwZWMqLCBXZWJWaWV3VGVzdCogdGVzdCkKK3sKKyAgICBnX3NpZ25hbF9o
YW5kbGVyc19kaXNjb25uZWN0X2J5X2Z1bmMod2ViVmlldywgcmVpbnRlcnByZXRfY2FzdDx2b2lk
Kj4oaXNXZWJQcm9jZXNzUmVzcG9uc2l2ZUNoYW5nZWQpLCB0ZXN0KTsKKyAgICBnX21haW5fbG9v
cF9xdWl0KHRlc3QtPm1fbWFpbkxvb3ApOworfQorCit2b2lkIFdlYlZpZXdUZXN0Ojp3YWl0VW50
aWxJc1dlYlByb2Nlc3NSZXNwb25zaXZlQ2hhbmdlZCgpCit7CisgICAgZ19zaWduYWxfY29ubmVj
dChtX3dlYlZpZXcsICJub3RpZnk6OmlzLXdlYi1wcm9jZXNzLXJlc3BvbnNpdmUiLCBHX0NBTExC
QUNLKGlzV2ViUHJvY2Vzc1Jlc3BvbnNpdmVDaGFuZ2VkKSwgdGhpcyk7CisgICAgZ19tYWluX2xv
b3BfcnVuKG1fbWFpbkxvb3ApOworfQorCiB2b2lkIFdlYlZpZXdUZXN0OjpzZWxlY3RBbGwoKQog
ewogICAgIHdlYmtpdF93ZWJfdmlld19leGVjdXRlX2VkaXRpbmdfY29tbWFuZChtX3dlYlZpZXcs
ICJTZWxlY3RBbGwiKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvZ2xpYi9XZWJL
aXRHTGliL1dlYlZpZXdUZXN0LmggYi9Ub29scy9UZXN0V2ViS2l0QVBJL2dsaWIvV2ViS2l0R0xp
Yi9XZWJWaWV3VGVzdC5oCmluZGV4IDcwZDc5MzdhOGFiNWViYTFlZTA0MTRmZTU3MjFlNDRjMTdk
M2U5MjUuLjViZmU3ODNkMjI5NTU1OWIxMjc0MzM4YmZkNTE2Yzg5ZDRhZGUyM2IgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvZ2xpYi9XZWJLaXRHTGliL1dlYlZpZXdUZXN0LmgKKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9nbGliL1dlYktpdEdMaWIvV2ViVmlld1Rlc3QuaApAQCAt
NTMsNiArNTMsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCB3YWl0VW50aWxUaXRsZUNoYW5nZWRUbyhj
b25zdCBjaGFyKiBleHBlY3RlZFRpdGxlKTsKICAgICB2b2lkIHdhaXRVbnRpbFRpdGxlQ2hhbmdl
ZCgpOwogICAgIHZvaWQgd2FpdFVudGlsRmlsZUNoYW5nZWQoY29uc3QgY2hhciosIEdGaWxlTW9u
aXRvckV2ZW50KTsKKyAgICB2b2lkIHdhaXRVbnRpbElzV2ViUHJvY2Vzc1Jlc3BvbnNpdmVDaGFu
Z2VkKCk7CiAgICAgdm9pZCByZXNpemVWaWV3KGludCB3aWR0aCwgaW50IGhlaWdodCk7CiAgICAg
dm9pZCBoaWRlVmlldygpOwogICAgIHZvaWQgc2VsZWN0QWxsKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>427401</attachid>
            <date>2021-04-30 01:59:27 -0700</date>
            <delta_ts>2021-04-30 02:42:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224533-20210430105925.patch</filename>
            <type>text/plain</type>
            <size>16317</size>
            <attacher name="Miguel Gomez">magomez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc2ODM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGU0NGU2MTRkOTEyNDNhNjIy
YzQ2ODAyNmRkYTU3MWY2OWYwZTRkMmIuLmMwZWE0YTgxZjZjNWU0ZjNhYWM0OTRhMDBiMTAwNmJj
NjE4YjI5MTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMjEtMDQtMzAgIE1pZ3VlbCBH
b21leiAgPG1hZ29tZXpAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLXVtXUEVdIFByb3Blcmx5
IHJlY292ZXIgZnJvbSB1bnJlc3BvbnNpdmUgd2ViIHByb2Nlc3NlcworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI0NTMzCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgbmV3IG1ldGhvZCB0byB0aGUg
R0xpYiBBUEkgdG8gdGVybWluYXRlIHRoZSB3ZWIgcHJvY2VzcyBhc3NvY2lhdGVkIHRvIGEKKyAg
ICAgICAgV2ViS2l0V2ViVmlldy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJL
aXROYXZpZ2F0aW9uQ2xpZW50LmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2dsaWIvV2Vi
S2l0V2ViVmlldy5jcHA6CisgICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfdGVybWluYXRlX3dlYl9w
cm9jZXNzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3Lmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLTQuMC1zZWN0aW9ucy50
eHQ6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0V2ViVmlldy5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvd3BlL2RvY3Mvd3BlLTEuMC1zZWN0aW9ucy50eHQ6CisKIDIwMjEt
MDQtMjkgIE1lZ2FuIEdhcmRuZXIgIDxtZWdhbl9nYXJkbmVyQGFwcGxlLmNvbT4KIAogICAgICAg
ICBSZW1vdmUgc29tZSB1bm5lZWRlZCBjb2RlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0TmF2aWdhdGlvbkNsaWVudC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXROYXZpZ2F0aW9uQ2xpZW50LmNwcAppbmRleCA0
MzExZDA4NDhlODEwNzU0NWQzNDM3ZjM4NDkxODI0ZmZjNGE1ZDdjLi41OTAxYzU2YWVlNjRmM2Y2
ZTZkMmFhYmNiNDBlMzY0YTkwOTUwMzY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvZ2xpYi9XZWJLaXROYXZpZ2F0aW9uQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXROYXZpZ2F0aW9uQ2xpZW50LmNwcApAQCAtMTE1
LDggKzExNSwxMCBAQCBwcml2YXRlOgogICAgICAgICBjYXNlIFByb2Nlc3NUZXJtaW5hdGlvblJl
YXNvbjo6RXhjZWVkZWRNZW1vcnlMaW1pdDoKICAgICAgICAgICAgIHdlYmtpdFdlYlZpZXdXZWJQ
cm9jZXNzVGVybWluYXRlZChtX3dlYlZpZXcsIFdFQktJVF9XRUJfUFJPQ0VTU19FWENFRURFRF9N
RU1PUllfTElNSVQpOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIGNhc2UgUHJv
Y2Vzc1Rlcm1pbmF0aW9uUmVhc29uOjpFeGNlZWRlZENQVUxpbWl0OgogICAgICAgICBjYXNlIFBy
b2Nlc3NUZXJtaW5hdGlvblJlYXNvbjo6UmVxdWVzdGVkQnlDbGllbnQ6CisgICAgICAgICAgICB3
ZWJraXRXZWJWaWV3V2ViUHJvY2Vzc1Rlcm1pbmF0ZWQobV93ZWJWaWV3LCBXRUJLSVRfV0VCX1BS
T0NFU1NfUkVRVUVTVEVEX0JZX0FQSSk7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAg
ICAgY2FzZSBQcm9jZXNzVGVybWluYXRpb25SZWFzb246OkV4Y2VlZGVkQ1BVTGltaXQ6CiAgICAg
ICAgIGNhc2UgUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uOjpSZXF1ZXN0ZWRCeU5ldHdvcmtQcm9j
ZXNzOgogICAgICAgICBjYXNlIFByb2Nlc3NUZXJtaW5hdGlvblJlYXNvbjo6TmF2aWdhdGlvblN3
YXA6CiAgICAgICAgIGNhc2UgUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uOjpSZXF1ZXN0ZWRCeUdQ
VVByb2Nlc3M6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9X
ZWJLaXRXZWJWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktp
dFdlYlZpZXcuY3BwCmluZGV4IGQ0MTliZDRlOGMxMjkyODU1ZmQ3OTZlNTJlYmE3NDY5NWJhOWMy
YjEuLmQ0OTc0M2MwNWI2ZDMwODczZDI0YTU3OTk4NTAyODY1MjcxMWMyYTQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYlZpZXcuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYlZpZXcuY3BwCkBAIC0y
OCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiQVBJU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgiCiAjaW5j
bHVkZSAiRGF0YVJlZmVyZW5jZS5oIgogI2luY2x1ZGUgIkltYWdlT3B0aW9ucy5oIgorI2luY2x1
ZGUgIlByb3Zpc2lvbmFsUGFnZVByb3h5LmgiCiAjaW5jbHVkZSAiV2ViQ2VydGlmaWNhdGVJbmZv
LmgiCiAjaW5jbHVkZSAiV2ViQ29udGV4dE1lbnVJdGVtLmgiCiAjaW5jbHVkZSAiV2ViQ29udGV4
dE1lbnVJdGVtRGF0YS5oIgpAQCAtNDc1MiwzICs0NzUzLDMyIEBAIGdib29sZWFuIHdlYmtpdF93
ZWJfdmlld19nZXRfaXNfd2ViX3Byb2Nlc3NfcmVzcG9uc2l2ZShXZWJLaXRXZWJWaWV3KiB3ZWJW
aWV3KQogCiAgICAgcmV0dXJuIHdlYlZpZXctPnByaXYtPmlzV2ViUHJvY2Vzc1Jlc3BvbnNpdmU7
CiB9CisKKy8qKgorICogd2Via2l0X3dlYl92aWV3X3Rlcm1pbmF0ZV93ZWJfcHJvY2VzczoKKyAq
IEB3ZWJfdmlldzogYSAjV2ViS2l0V2ViVmlldworICoKKyAqIFRlcm1pbmF0ZXMgdGhlIHdlYiBw
cm9jZXNzIGFzc29jaWF0ZWQgdG8gQHdlYl92aWV3LiBXaGVuIHRoZSB3ZWIgcHJvY2VzcworICog
Z2V0cyB0ZXJtaW5hdGVkIHVzaW5nIHRoaXMgbWV0aG9kLCB0aGUgI1dlYktpdFdlYlZpZXc6Ondl
Yi1wcm9jZXNzLXRlcm1pbmF0ZWQKKyAqIHNpZ25hbCBpcyBlbWl0dGVkIHdpdGggV0VCS0lUX1dF
Ql9QUk9DRVNTX1JFUVVFU1RFRF9CWV9BUEkgYXMgdGhlIHJlYXNvbiBmb3IKKyAqIHRlcm1pbmF0
aW9uLgorICoKKyAqIFNpbmNlOiAyLjM0CisgKi8KK3ZvaWQgd2Via2l0X3dlYl92aWV3X3Rlcm1p
bmF0ZV93ZWJfcHJvY2VzcyhXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQoreworICAgIGdfcmV0dXJu
X2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9WSUVXKHdlYlZpZXcpKTsKKworICAgIGF1dG8mIHBhZ2Ug
PSBnZXRQYWdlKHdlYlZpZXcpOworCisgICAgUmVmPFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5PiBw
cm90ZWN0ZWRQcm9jZXNzUHJveHkocGFnZS5wcm9jZXNzKCkpOworICAgIHByb3RlY3RlZFByb2Nl
c3NQcm94eS0+cmVxdWVzdFRlcm1pbmF0aW9uKFdlYktpdDo6UHJvY2Vzc1Rlcm1pbmF0aW9uUmVh
c29uOjpSZXF1ZXN0ZWRCeUNsaWVudCk7CisKKyAgICBpZiAoYXV0byogcHJvdmlzaW9uYWxQYWdl
UHJveHkgPSBwYWdlLnByb3Zpc2lvbmFsUGFnZVByb3h5KCkpIHsKKyAgICAgICAgUmVmPFdlYktp
dDo6V2ViUHJvY2Vzc1Byb3h5PiBwcm90ZWN0ZWRQcm9jZXNzUHJveHkocHJvdmlzaW9uYWxQYWdl
UHJveHktPnByb2Nlc3MoKSk7CisgICAgICAgIHByb3RlY3RlZFByb2Nlc3NQcm94eS0+cmVxdWVz
dFRlcm1pbmF0aW9uKFdlYktpdDo6UHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uOjpSZXF1ZXN0ZWRC
eUNsaWVudCk7CisgICAgfQorCisgICAgLy8gUmVzZXQgdGhlIHN0YXRlIG9mIHRoZSByZXNwb25z
aXZlbmVzcyBwcm9wZXJ0eS4KKyAgICB3ZWJraXRXZWJWaWV3U2V0SXNXZWJQcm9jZXNzUmVzcG9u
c2l2ZSh3ZWJWaWV3LCB0cnVlKTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlldy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L2d0ay9XZWJLaXRXZWJWaWV3LmgKaW5kZXggZjFhZjQ5YWJlYTFmMDdiOGU4NmU2NTA0YzYyZGI5
YWZkYmFlZTNmMS4uY2I4NmRlZGY5NmQ2YTBhMTgzOWY4YWUyOWYyYzllNGNhM2U0ZjQ0MCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3LmgK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3LmgKQEAg
LTE5Myw2ICsxOTMsNyBAQCB0eXBlZGVmIGVudW0gewogICogV2ViS2l0V2ViUHJvY2Vzc1Rlcm1p
bmF0aW9uUmVhc29uOgogICogQFdFQktJVF9XRUJfUFJPQ0VTU19DUkFTSEVEOiB0aGUgd2ViIHBy
b2Nlc3MgY3Jhc2hlZC4KICAqIEBXRUJLSVRfV0VCX1BST0NFU1NfRVhDRUVERURfTUVNT1JZX0xJ
TUlUOiB0aGUgd2ViIHByb2Nlc3MgZXhjZWVkZWQgdGhlIG1lbW9yeSBsaW1pdC4KKyAqIEBXRUJL
SVRfV0VCX1BST0NFU1NfUkVRVUVTVEVEX0JZX0FQSTogdGhlIHdlYiBwcm9jZXNzIHRlcm1pbmF0
aW9uIHdhcyByZXF1ZXN0ZWQgYnkgYW4gQVBJIGNhbGwuIFNpbmNlOiAyLjM0CiAgKgogICogRW51
bSB2YWx1ZXMgdXNlZCB0byBzcGVjaWZ5IHRoZSByZWFzb24gd2h5IHRoZSB3ZWIgcHJvY2VzcyB0
ZXJtaW5hdGVkIGFibm9ybWFsbHkuCiAgKgpAQCAtMjAwLDcgKzIwMSw4IEBAIHR5cGVkZWYgZW51
bSB7CiAgKi8KIHR5cGVkZWYgZW51bSB7CiAgICAgV0VCS0lUX1dFQl9QUk9DRVNTX0NSQVNIRUQs
Ci0gICAgV0VCS0lUX1dFQl9QUk9DRVNTX0VYQ0VFREVEX01FTU9SWV9MSU1JVAorICAgIFdFQktJ
VF9XRUJfUFJPQ0VTU19FWENFRURFRF9NRU1PUllfTElNSVQsCisgICAgV0VCS0lUX1dFQl9QUk9D
RVNTX1JFUVVFU1RFRF9CWV9BUEkKIH0gV2ViS2l0V2ViUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29u
OwogCiBzdHJ1Y3QgX1dlYktpdFdlYlZpZXcgewpAQCAtNTkyLDYgKzU5NCw5IEBAIHdlYmtpdF93
ZWJfdmlld19nZXRfd2Vic2l0ZV9wb2xpY2llcyAgICAgICAgICAgICAgICAgKFdlYktpdFdlYlZp
ZXcKIFdFQktJVF9BUEkgZ2Jvb2xlYW4KIHdlYmtpdF93ZWJfdmlld19nZXRfaXNfd2ViX3Byb2Nl
c3NfcmVzcG9uc2l2ZSAgICAgICAgKFdlYktpdFdlYlZpZXcgICAgICAgICAgICAgKndlYl92aWV3
KTsKIAorV0VCS0lUX0FQSSB2b2lkCit3ZWJraXRfd2ViX3ZpZXdfdGVybWluYXRlX3dlYl9wcm9j
ZXNzICAgICAgICAgICAgICAgIChXZWJLaXRXZWJWaWV3ICAgICAgICAgICAgICp3ZWJfdmlldyk7
CisKIEdfRU5EX0RFQ0xTCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstNC4wLXNlY3Rpb25zLnR4dCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLTQuMC1zZWN0aW9ucy50eHQK
aW5kZXggZDZjNWRkNDE4MDZiYTE5YjMxOTNkNmJjNjNlYTcyNDQ2YjgxZDExZS4uYWMxNTIyNWRh
MWM5MDViN2FmOTNmMDBmZTYxMTA4OWZiZDQwMjllMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstNC4wLXNlY3Rpb25zLnR4dAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay00LjAtc2Vj
dGlvbnMudHh0CkBAIC0yOTEsNiArMjkxLDcgQEAgd2Via2l0X3dlYl92aWV3X3NldF9pbnB1dF9t
ZXRob2RfY29udGV4dAogd2Via2l0X3dlYl92aWV3X2dldF9pbnB1dF9tZXRob2RfY29udGV4dAog
d2Via2l0X3dlYl92aWV3X2dldF93ZWJzaXRlX3BvbGljaWVzCiB3ZWJraXRfd2ViX3ZpZXdfZ2V0
X2lzX3dlYl9wcm9jZXNzX3Jlc3BvbnNpdmUKK3dlYmtpdF93ZWJfdmlld190ZXJtaW5hdGVfd2Vi
X3Byb2Nlc3MKIAogPFNVQlNFQ1RJT04gV2ViS2l0SmF2YXNjcmlwdFJlc3VsdD4KIFdlYktpdEph
dmFzY3JpcHRSZXN1bHQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93
cGUvV2ViS2l0V2ViVmlldy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJL
aXRXZWJWaWV3LmgKaW5kZXggYjUwYTczN2ZkMjg1MmFiYjA3YmRhMGM4OTIwZWI4NjgyNjUwMDhk
Ny4uMmUyMmZmMmQ5OTI2NzZlZGY4ZjYwOWZkZDliYWFiZDgxMjI2MGFhMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRXZWJWaWV3LmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRXZWJWaWV3LmgKQEAgLTE2Miw2ICsx
NjIsNyBAQCB0eXBlZGVmIGVudW0gewogICogV2ViS2l0V2ViUHJvY2Vzc1Rlcm1pbmF0aW9uUmVh
c29uOgogICogQFdFQktJVF9XRUJfUFJPQ0VTU19DUkFTSEVEOiB0aGUgd2ViIHByb2Nlc3MgY3Jh
c2hlZC4KICAqIEBXRUJLSVRfV0VCX1BST0NFU1NfRVhDRUVERURfTUVNT1JZX0xJTUlUOiB0aGUg
d2ViIHByb2Nlc3MgZXhjZWVkZWQgdGhlIG1lbW9yeSBsaW1pdC4KKyAqIEBXRUJLSVRfV0VCX1BS
T0NFU1NfUkVRVUVTVEVEX0JZX0FQSTogdGhlIHdlYiBwcm9jZXNzIHRlcm1pbmF0aW9uIHdhcyBy
ZXF1ZXN0ZWQgYnkgYW4gQVBJIGNhbGwuIFNpbmNlOiAyLjM0CiAgKgogICogRW51bSB2YWx1ZXMg
dXNlZCB0byBzcGVjaWZ5IHRoZSByZWFzb24gd2h5IHRoZSB3ZWIgcHJvY2VzcyB0ZXJtaW5hdGVk
IGFibm9ybWFsbHkuCiAgKgpAQCAtMTY5LDcgKzE3MCw4IEBAIHR5cGVkZWYgZW51bSB7CiAgKi8K
IHR5cGVkZWYgZW51bSB7CiAgICAgV0VCS0lUX1dFQl9QUk9DRVNTX0NSQVNIRUQsCi0gICAgV0VC
S0lUX1dFQl9QUk9DRVNTX0VYQ0VFREVEX01FTU9SWV9MSU1JVAorICAgIFdFQktJVF9XRUJfUFJP
Q0VTU19FWENFRURFRF9NRU1PUllfTElNSVQsCisgICAgV0VCS0lUX1dFQl9QUk9DRVNTX1JFUVVF
U1RFRF9CWV9BUEkKIH0gV2ViS2l0V2ViUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uOwogCiAvKioK
QEAgLTU2OCw2ICs1NzAsOSBAQCB3ZWJraXRfd2ViX3ZpZXdfZ2V0X3dlYnNpdGVfcG9saWNpZXMg
ICAgICAgICAgICAgICAgIChXZWJLaXRXZWJWaWV3CiBXRUJLSVRfQVBJIGdib29sZWFuCiB3ZWJr
aXRfd2ViX3ZpZXdfZ2V0X2lzX3dlYl9wcm9jZXNzX3Jlc3BvbnNpdmUgICAgICAgIChXZWJLaXRX
ZWJWaWV3ICAgICAgICAgICAgICp3ZWJfdmlldyk7CiAKK1dFQktJVF9BUEkgdm9pZAord2Via2l0
X3dlYl92aWV3X3Rlcm1pbmF0ZV93ZWJfcHJvY2VzcyAgICAgICAgICAgICAgICAoV2ViS2l0V2Vi
VmlldyAgICAgICAgICAgICAqd2ViX3ZpZXcpOworCiBHX0VORF9ERUNMUwogCiAjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvZG9jcy93cGUtMS4wLXNl
Y3Rpb25zLnR4dCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvZG9jcy93cGUtMS4w
LXNlY3Rpb25zLnR4dAppbmRleCA5M2JlOTdlYWRkNjc2YzM1NWI1OWQ5MGE5NGQ5YmNlNzEzMjE4
MDQ2Li5hYzNhODE1ZGY5YzE1ZWIzMTcwNDk1ZDBiMTI5MWNiZGY2N2Y3MTdjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL2RvY3Mvd3BlLTEuMC1zZWN0aW9ucy50
eHQKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9kb2NzL3dwZS0xLjAtc2Vj
dGlvbnMudHh0CkBAIC0yNjMsNiArMjYzLDcgQEAgd2Via2l0X3dlYl92aWV3X3NldF9pbnB1dF9t
ZXRob2RfY29udGV4dAogd2Via2l0X3dlYl92aWV3X2dldF9pbnB1dF9tZXRob2RfY29udGV4dAog
d2Via2l0X3dlYl92aWV3X2dldF93ZWJzaXRlX3BvbGljaWVzCiB3ZWJraXRfd2ViX3ZpZXdfZ2V0
X2lzX3dlYl9wcm9jZXNzX3Jlc3BvbnNpdmUKK3dlYmtpdF93ZWJfdmlld190ZXJtaW5hdGVfd2Vi
X3Byb2Nlc3MKIAogPFNVQlNFQ1RJT04gV2ViS2l0SmF2YXNjcmlwdFJlc3VsdD4KIFdlYktpdEph
dmFzY3JpcHRSZXN1bHQKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5n
ZUxvZwppbmRleCBlMTNhYjc5M2E1OWU3NTM5ZjFlZjdhN2Q2OWU3MzkzYWE0ODcwOThkLi4wNjc5
M2U0YjA3NzFmMDY4NWEwODEzYzhhNTg3ZGU4ZjlkNmYzNzQ4IDEwMDY0NAotLS0gYS9Ub29scy9D
aGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMjEtMDQt
MzAgIE1pZ3VlbCBHb21leiAgPG1hZ29tZXpAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLXVtX
UEVdIFByb3Blcmx5IHJlY292ZXIgZnJvbSB1bnJlc3BvbnNpdmUgd2ViIHByb2Nlc3NlcworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI0NTMzCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHVuaXQgdGVz
dHMgZm9yIHRoZSBuZXcgd2Via2l0X3dlYl92aWV3X3Rlcm1pbmF0ZV93ZWJfcHJvY2VzcyBHTGli
IEFQSSBtZXRob2QuIEFsc28gbW92ZQorICAgICAgICB0aGUgbWV0aG9kcyB1c2VkIHRvIHdhaXQg
Zm9yIHJlc3BvbnNpdmVuZXNzIGNoYW5nZXMgdG8gV2ViVmlld1Rlc3QsIGFzIHRoZXkgYXJlIHVz
ZWQgYnkgbW9yZQorICAgICAgICB0aGFuIGEgc2luZ2xlIHRlc3QuCisKKyAgICAgICAgKiBUZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFdlYktpdFdlYlZpZXcuY3BwOgorICAgICAg
ICAodGVzdFdlYlZpZXdJc1dlYlByb2Nlc3NSZXNwb25zaXZlKToKKyAgICAgICAgKHRlc3RXZWJW
aWV3VGVybWluYXRlV2ViUHJvY2Vzcyk6CisgICAgICAgICh0ZXN0V2ViVmlld1Rlcm1pbmF0ZVVu
cmVzcG9uc2l2ZVdlYlByb2Nlc3MpOgorICAgICAgICAoYmVmb3JlQWxsKToKKyAgICAgICAgKiBU
ZXN0V2ViS2l0QVBJL2dsaWIvV2ViS2l0R0xpYi9XZWJWaWV3VGVzdC5jcHA6CisgICAgICAgIChp
c1dlYlByb2Nlc3NSZXNwb25zaXZlQ2hhbmdlZCk6CisgICAgICAgIChXZWJWaWV3VGVzdDo6d2Fp
dFVudGlsSXNXZWJQcm9jZXNzUmVzcG9uc2l2ZUNoYW5nZWQpOgorICAgICAgICAqIFRlc3RXZWJL
aXRBUEkvZ2xpYi9XZWJLaXRHTGliL1dlYlZpZXdUZXN0Lmg6CisKIDIwMjEtMDQtMjkgIERhcmlu
IEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIEV4dGVuZCBTb3J0ZWRBcnJheU1h
cCBmdXJ0aGVyIHRvIHdvcmsgb24gY2FzZS1mb2xkZWQgc3RyaW5ncywgdXNlIGluIE1JTUVUeXBl
UmVnaXN0cnkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xp
Yi9UZXN0V2ViS2l0V2ViVmlldy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dEdMaWIvVGVzdFdlYktpdFdlYlZpZXcuY3BwCmluZGV4IGIyMzc1MTM2MDRjYzhkNDIyOGVkYmY4
OTEwNmI5NTZiNDQ2MGVjODMuLjM2ZTExOTQ1ZWNhYTFmZjRkOGQ4YjY3ZWRmNmIwOTFiOWQ0ZDNm
ZmMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0
V2ViS2l0V2ViVmlldy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRH
TGliL1Rlc3RXZWJLaXRXZWJWaWV3LmNwcApAQCAtMTE3NywyNCArMTE3Nyw3IEBAIHN0YXRpYyB2
b2lkIHRlc3RXZWJWaWV3QXV0b3BsYXlQb2xpY3koV2ViVmlld1Rlc3QqIHRlc3QsIGdjb25zdHBv
aW50ZXIpCiAgICAgZ19hc3NlcnRfY21waW50KHdlYmtpdF93ZWJzaXRlX3BvbGljaWVzX2dldF9h
dXRvcGxheV9wb2xpY3kocG9saWNpZXMpLCA9PSwgV0VCS0lUX0FVVE9QTEFZX0FMTE9XX1dJVEhP
VVRfU09VTkQpOwogfQogCi1jbGFzcyBXZWJWaWV3SXNXZWJQcm9jZXNzUmVzcG9uc2l2ZVRlc3Q6
IHB1YmxpYyBXZWJWaWV3VGVzdCB7Ci1wdWJsaWM6Ci0gICAgTUFLRV9HTElCX1RFU1RfRklYVFVS
RShXZWJWaWV3SXNXZWJQcm9jZXNzUmVzcG9uc2l2ZVRlc3QpOwotCi0gICAgc3RhdGljIHZvaWQg
aXNXZWJQcm9jZXNzUmVzcG9uc2l2ZUNoYW5nZWQoV2ViS2l0V2ViVmlldyogdmlldywgR1BhcmFt
U3BlYyosIFdlYlZpZXdJc1dlYlByb2Nlc3NSZXNwb25zaXZlVGVzdCogdGVzdCkKLSAgICB7Ci0g
ICAgICAgIGdfc2lnbmFsX2hhbmRsZXJzX2Rpc2Nvbm5lY3RfYnlfZnVuYyh0ZXN0LT5tX3dlYlZp
ZXcsIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KGlzV2ViUHJvY2Vzc1Jlc3BvbnNpdmVDaGFuZ2Vk
KSwgdGVzdCk7Ci0gICAgICAgIGdfbWFpbl9sb29wX3F1aXQodGVzdC0+bV9tYWluTG9vcCk7Ci0g
ICAgfQotCi0gICAgdm9pZCB3YWl0VW50aWxJc1dlYlByb2Nlc3NSZXNwb25zaXZlQ2hhbmdlZCgp
Ci0gICAgewotICAgICAgICBnX3NpZ25hbF9jb25uZWN0KG1fd2ViVmlldywgIm5vdGlmeTo6aXMt
d2ViLXByb2Nlc3MtcmVzcG9uc2l2ZSIsIEdfQ0FMTEJBQ0soaXNXZWJQcm9jZXNzUmVzcG9uc2l2
ZUNoYW5nZWQpLCB0aGlzKTsKLSAgICAgICAgZ19tYWluX2xvb3BfcnVuKG1fbWFpbkxvb3ApOwot
ICAgIH0KLX07Ci0KLXN0YXRpYyB2b2lkIHRlc3RXZWJWaWV3SXNXZWJQcm9jZXNzUmVzcG9uc2l2
ZShXZWJWaWV3SXNXZWJQcm9jZXNzUmVzcG9uc2l2ZVRlc3QqIHRlc3QsIGdjb25zdHBvaW50ZXIp
CitzdGF0aWMgdm9pZCB0ZXN0V2ViVmlld0lzV2ViUHJvY2Vzc1Jlc3BvbnNpdmUoV2ViVmlld1Rl
c3QqIHRlc3QsIGdjb25zdHBvaW50ZXIpCiB7CiAgICAgc3RhdGljIGNvbnN0IGNoYXIqIGhhbmdI
VE1MID0KICAgICAgICAgIjxodG1sPiIKQEAgLTE1NjEsNiArMTU0NCw2OCBAQCBzdGF0aWMgdm9p
ZCB0ZXN0V2ViVmlld0V4dGVybmFsQXVkaW9SZW5kZXJpbmcoQXVkaW9SZW5kZXJpbmdXZWJWaWV3
VGVzdCogdGVzdCwgZwogfQogI2VuZGlmCiAKK2NsYXNzIFdlYlZpZXdUZXJtaW5hdGVXZWJQcm9j
ZXNzVGVzdDogcHVibGljIFdlYlZpZXdUZXN0IHsKK3B1YmxpYzoKKyAgICBNQUtFX0dMSUJfVEVT
VF9GSVhUVVJFKFdlYlZpZXdUZXJtaW5hdGVXZWJQcm9jZXNzVGVzdCk7CisKKyAgICBzdGF0aWMg
dm9pZCB3ZWJQcm9jZXNzVGVybWluYXRlZENhbGxiYWNrKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcs
IFdlYktpdFdlYlByb2Nlc3NUZXJtaW5hdGlvblJlYXNvbiByZWFzb24sIFdlYlZpZXdUZXJtaW5h
dGVXZWJQcm9jZXNzVGVzdCogdGVzdCkKKyAgICB7CisgICAgICAgIHRlc3QtPm1fdGVybWluYXRp
b25SZWFzb24gPSByZWFzb247CisgICAgfQorCisgICAgV2ViS2l0V2ViUHJvY2Vzc1Rlcm1pbmF0
aW9uUmVhc29uIG1fdGVybWluYXRpb25SZWFzb24geyBXRUJLSVRfV0VCX1BST0NFU1NfQ1JBU0hF
RCB9OworfTsKKworc3RhdGljIHZvaWQgdGVzdFdlYlZpZXdUZXJtaW5hdGVXZWJQcm9jZXNzKFdl
YlZpZXdUZXJtaW5hdGVXZWJQcm9jZXNzVGVzdCogdGVzdCwgZ2NvbnN0cG9pbnRlcikKK3sKKyAg
ICBnX3NpZ25hbF9jb25uZWN0X2FmdGVyKHRlc3QtPm1fd2ViVmlldywgIndlYi1wcm9jZXNzLXRl
cm1pbmF0ZWQiLCBHX0NBTExCQUNLKFdlYlZpZXdUZXJtaW5hdGVXZWJQcm9jZXNzVGVzdDo6d2Vi
UHJvY2Vzc1Rlcm1pbmF0ZWRDYWxsYmFjayksIHRlc3QpOworCisgICAgdGVzdC0+bG9hZEh0bWwo
IjxodG1sPjwvaHRtbD4iLCBudWxscHRyKTsKKyAgICB0ZXN0LT53YWl0VW50aWxMb2FkRmluaXNo
ZWQoKTsKKyAgICB0ZXN0LT5tX2V4cGVjdGVkV2ViUHJvY2Vzc0NyYXNoID0gdHJ1ZTsKKyAgICB3
ZWJraXRfd2ViX3ZpZXdfdGVybWluYXRlX3dlYl9wcm9jZXNzKHRlc3QtPm1fd2ViVmlldyk7Cisg
ICAgZ19hc3NlcnRfY21wdWludCh0ZXN0LT5tX3Rlcm1pbmF0aW9uUmVhc29uLCA9PSwgV0VCS0lU
X1dFQl9QUk9DRVNTX1JFUVVFU1RFRF9CWV9BUEkpOworICAgIGdfYXNzZXJ0X3RydWUod2Via2l0
X3dlYl92aWV3X2dldF9pc193ZWJfcHJvY2Vzc19yZXNwb25zaXZlKHRlc3QtPm1fd2ViVmlldykp
OworCisgICAgZ19zaWduYWxfaGFuZGxlcnNfZGlzY29ubmVjdF9ieV9mdW5jKHRlc3QtPm1fd2Vi
VmlldywgcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4oV2ViVmlld1Rlcm1pbmF0ZVdlYlByb2Nlc3NU
ZXN0Ojp3ZWJQcm9jZXNzVGVybWluYXRlZENhbGxiYWNrKSwgdGVzdCk7Cit9CisKK3N0YXRpYyB2
b2lkIHRlc3RXZWJWaWV3VGVybWluYXRlVW5yZXNwb25zaXZlV2ViUHJvY2VzcyhXZWJWaWV3VGVy
bWluYXRlV2ViUHJvY2Vzc1Rlc3QqIHRlc3QsIGdjb25zdHBvaW50ZXIpCit7CisgICAgc3RhdGlj
IGNvbnN0IGNoYXIqIGhhbmdIVE1MID0KKyAgICAgICAgIjxodG1sPiIKKyAgICAgICAgIiA8Ym9k
eT4iCisgICAgICAgICIgIDxzY3JpcHQ+IgorICAgICAgICAiICAgc2V0VGltZW91dChmdW5jdGlv
bigpIHsiCisgICAgICAgICIgICAgIHdoaWxlKHRydWUpIHsgfSIKKyAgICAgICAgIiAgICB9LCA1
MDApOyIKKyAgICAgICAgIiAgPC9zY3JpcHQ+IgorICAgICAgICAiIDwvYm9keT4iCisgICAgICAg
ICI8L2h0bWw+IjsKKworICAgIGdfc2lnbmFsX2Nvbm5lY3RfYWZ0ZXIodGVzdC0+bV93ZWJWaWV3
LCAid2ViLXByb2Nlc3MtdGVybWluYXRlZCIsIEdfQ0FMTEJBQ0soV2ViVmlld1Rlcm1pbmF0ZVdl
YlByb2Nlc3NUZXN0Ojp3ZWJQcm9jZXNzVGVybWluYXRlZENhbGxiYWNrKSwgdGVzdCk7CisKKyAg
ICB0ZXN0LT5sb2FkSHRtbChoYW5nSFRNTCwgbnVsbHB0cik7CisgICAgdGVzdC0+d2FpdFVudGls
TG9hZEZpbmlzaGVkKCk7CisgICAgZ19hc3NlcnRfdHJ1ZSh3ZWJraXRfd2ViX3ZpZXdfZ2V0X2lz
X3dlYl9wcm9jZXNzX3Jlc3BvbnNpdmUodGVzdC0+bV93ZWJWaWV3KSk7CisgICAgLy8gV2FpdCAx
IHNlY29uZCwgc28gdGhlIGpzIHdoaWxlIGxvb3Aga2lja3MgaW4gYW5kIGJsb2NrcyB0aGUgd2Vi
IHByb2Nlc3MsIGFuZCB0cnkgdG8gbG9hZCBhIG5ldyBwYWdlLgorICAgIC8vIEFzIHRoZSB3ZWIg
cHJvY2VzcyBpcyBidXN5IHRoaXMgd29uJ3Qgd29yaywgYW5kIGFmdGVyIDMgc2Vjb25kcyB0aGUg
d2ViIHByb2Nlc3Mgd2lsbCBiZSBtYXJrZWQKKyAgICAvLyBhcyB1bnJlc3BvbnNpdmUuCisgICAg
dGVzdC0+d2FpdCgxKTsKKyAgICB0ZXN0LT5sb2FkSHRtbCgiPGh0bWw+PC9odG1sPiIsIG51bGxw
dHIpOworICAgIHRlc3QtPndhaXRVbnRpbElzV2ViUHJvY2Vzc1Jlc3BvbnNpdmVDaGFuZ2VkKCk7
CisgICAgZ19hc3NlcnRfZmFsc2Uod2Via2l0X3dlYl92aWV3X2dldF9pc193ZWJfcHJvY2Vzc19y
ZXNwb25zaXZlKHRlc3QtPm1fd2ViVmlldykpOworCisgICAgLy8gTm93IHRoYXQgdGhlIHByb2Nl
c3MgaXMgdW5yZXNwb25zaXZlLCB0ZXJtaW5hdGUgaXQuCisgICAgdGVzdC0+bV9leHBlY3RlZFdl
YlByb2Nlc3NDcmFzaCA9IHRydWU7CisgICAgdGVzdC0+bV90ZXJtaW5hdGlvblJlYXNvbiA9IFdF
QktJVF9XRUJfUFJPQ0VTU19DUkFTSEVEOworICAgIHdlYmtpdF93ZWJfdmlld190ZXJtaW5hdGVf
d2ViX3Byb2Nlc3ModGVzdC0+bV93ZWJWaWV3KTsKKyAgICBnX2Fzc2VydF9jbXB1aW50KHRlc3Qt
Pm1fdGVybWluYXRpb25SZWFzb24sID09LCBXRUJLSVRfV0VCX1BST0NFU1NfUkVRVUVTVEVEX0JZ
X0FQSSk7CisgICAgZ19hc3NlcnRfdHJ1ZSh3ZWJraXRfd2ViX3ZpZXdfZ2V0X2lzX3dlYl9wcm9j
ZXNzX3Jlc3BvbnNpdmUodGVzdC0+bV93ZWJWaWV3KSk7CisKKyAgICBnX3NpZ25hbF9oYW5kbGVy
c19kaXNjb25uZWN0X2J5X2Z1bmModGVzdC0+bV93ZWJWaWV3LCByZWludGVycHJldF9jYXN0PHZv
aWQqPihXZWJWaWV3VGVybWluYXRlV2ViUHJvY2Vzc1Rlc3Q6OndlYlByb2Nlc3NUZXJtaW5hdGVk
Q2FsbGJhY2spLCB0ZXN0KTsKK30KKwogI2lmIFVTRShTT1VQMikKIHN0YXRpYyB2b2lkIHNlcnZl
ckNhbGxiYWNrKFNvdXBTZXJ2ZXIqIHNlcnZlciwgU291cE1lc3NhZ2UqIG1lc3NhZ2UsIGNvbnN0
IGNoYXIqIHBhdGgsIEdIYXNoVGFibGUqLCBTb3VwQ2xpZW50Q29udGV4dCosIGdwb2ludGVyKQog
I2Vsc2UKQEAgLTE2MjgsNyArMTY3Myw5IEBAIHZvaWQgYmVmb3JlQWxsKCkKICNpZiBQTEFURk9S
TShXUEUpICYmIFVTRShXUEVCQUNLRU5EX0ZET19BVURJT19FWFRFTlNJT04pCiAgICAgQXVkaW9S
ZW5kZXJpbmdXZWJWaWV3VGVzdDo6YWRkKCJXZWJLaXRXZWJWaWV3IiwgImV4dGVybmFsLWF1ZGlv
LXJlbmRlcmluZyIsIHRlc3RXZWJWaWV3RXh0ZXJuYWxBdWRpb1JlbmRlcmluZyk7CiAjZW5kaWYK
LSAgICBXZWJWaWV3SXNXZWJQcm9jZXNzUmVzcG9uc2l2ZVRlc3Q6OmFkZCgiV2ViS2l0V2ViVmll
dyIsICJpcy13ZWItcHJvY2Vzcy1yZXNwb25zaXZlIiwgdGVzdFdlYlZpZXdJc1dlYlByb2Nlc3NS
ZXNwb25zaXZlKTsKKyAgICBXZWJWaWV3VGVzdDo6YWRkKCJXZWJLaXRXZWJWaWV3IiwgImlzLXdl
Yi1wcm9jZXNzLXJlc3BvbnNpdmUiLCB0ZXN0V2ViVmlld0lzV2ViUHJvY2Vzc1Jlc3BvbnNpdmUp
OworICAgIFdlYlZpZXdUZXJtaW5hdGVXZWJQcm9jZXNzVGVzdDo6YWRkKCJXZWJLaXRXZWJWaWV3
IiwgInRlcm1pbmF0ZS13ZWItcHJvY2VzcyIsIHRlc3RXZWJWaWV3VGVybWluYXRlV2ViUHJvY2Vz
cyk7CisgICAgV2ViVmlld1Rlcm1pbmF0ZVdlYlByb2Nlc3NUZXN0OjphZGQoIldlYktpdFdlYlZp
ZXciLCAidGVybWluYXRlLXVucmVzcG9uc2l2ZS13ZWItcHJvY2VzcyIsIHRlc3RXZWJWaWV3VGVy
bWluYXRlVW5yZXNwb25zaXZlV2ViUHJvY2Vzcyk7CiB9CiAKIHZvaWQgYWZ0ZXJBbGwoKQpkaWZm
IC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9nbGliL1dlYktpdEdMaWIvV2ViVmlld1Rlc3Qu
Y3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9nbGliL1dlYktpdEdMaWIvV2ViVmlld1Rlc3QuY3Bw
CmluZGV4IDM3YzY5ZGI3NGU5ZTFhNjQwZTkyMjJkZTQxOTE5MjAzMzZmNDAxYmMuLjgyNjRlYmFh
ZDU1N2ZkMGY5YTFjMWFhNzVkOTI0YWMyY2EyOTBiMWQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvZ2xpYi9XZWJLaXRHTGliL1dlYlZpZXdUZXN0LmNwcAorKysgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL2dsaWIvV2ViS2l0R0xpYi9XZWJWaWV3VGVzdC5jcHAKQEAgLTIyMyw2ICsyMjMs
MTggQEAgdm9pZCBXZWJWaWV3VGVzdDo6d2FpdFVudGlsVGl0bGVDaGFuZ2VkKCkKICAgICB3YWl0
VW50aWxUaXRsZUNoYW5nZWRUbygwKTsKIH0KIAorc3RhdGljIHZvaWQgaXNXZWJQcm9jZXNzUmVz
cG9uc2l2ZUNoYW5nZWQoV2ViS2l0V2ViVmlldyogd2ViVmlldywgR1BhcmFtU3BlYyosIFdlYlZp
ZXdUZXN0KiB0ZXN0KQoreworICAgIGdfc2lnbmFsX2hhbmRsZXJzX2Rpc2Nvbm5lY3RfYnlfZnVu
Yyh3ZWJWaWV3LCByZWludGVycHJldF9jYXN0PHZvaWQqPihpc1dlYlByb2Nlc3NSZXNwb25zaXZl
Q2hhbmdlZCksIHRlc3QpOworICAgIGdfbWFpbl9sb29wX3F1aXQodGVzdC0+bV9tYWluTG9vcCk7
Cit9CisKK3ZvaWQgV2ViVmlld1Rlc3Q6OndhaXRVbnRpbElzV2ViUHJvY2Vzc1Jlc3BvbnNpdmVD
aGFuZ2VkKCkKK3sKKyAgICBnX3NpZ25hbF9jb25uZWN0KG1fd2ViVmlldywgIm5vdGlmeTo6aXMt
d2ViLXByb2Nlc3MtcmVzcG9uc2l2ZSIsIEdfQ0FMTEJBQ0soaXNXZWJQcm9jZXNzUmVzcG9uc2l2
ZUNoYW5nZWQpLCB0aGlzKTsKKyAgICBnX21haW5fbG9vcF9ydW4obV9tYWluTG9vcCk7Cit9CisK
IHZvaWQgV2ViVmlld1Rlc3Q6OnNlbGVjdEFsbCgpCiB7CiAgICAgd2Via2l0X3dlYl92aWV3X2V4
ZWN1dGVfZWRpdGluZ19jb21tYW5kKG1fd2ViVmlldywgIlNlbGVjdEFsbCIpOwpkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9nbGliL1dlYktpdEdMaWIvV2ViVmlld1Rlc3QuaCBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvZ2xpYi9XZWJLaXRHTGliL1dlYlZpZXdUZXN0LmgKaW5kZXggNzBk
NzkzN2E4YWI1ZWJhMWVlMDQxNGZlNTcyMWU0NGMxN2QzZTkyNS4uNWJmZTc4M2QyMjk1NTU5YjEy
NzQzMzhiZmQ1MTZjODlkNGFkZTIzYiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9n
bGliL1dlYktpdEdMaWIvV2ViVmlld1Rlc3QuaAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL2ds
aWIvV2ViS2l0R0xpYi9XZWJWaWV3VGVzdC5oCkBAIC01Myw2ICs1Myw3IEBAIHB1YmxpYzoKICAg
ICB2b2lkIHdhaXRVbnRpbFRpdGxlQ2hhbmdlZFRvKGNvbnN0IGNoYXIqIGV4cGVjdGVkVGl0bGUp
OwogICAgIHZvaWQgd2FpdFVudGlsVGl0bGVDaGFuZ2VkKCk7CiAgICAgdm9pZCB3YWl0VW50aWxG
aWxlQ2hhbmdlZChjb25zdCBjaGFyKiwgR0ZpbGVNb25pdG9yRXZlbnQpOworICAgIHZvaWQgd2Fp
dFVudGlsSXNXZWJQcm9jZXNzUmVzcG9uc2l2ZUNoYW5nZWQoKTsKICAgICB2b2lkIHJlc2l6ZVZp
ZXcoaW50IHdpZHRoLCBpbnQgaGVpZ2h0KTsKICAgICB2b2lkIGhpZGVWaWV3KCk7CiAgICAgdm9p
ZCBzZWxlY3RBbGwoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>427403</attachid>
            <date>2021-04-30 02:42:51 -0700</date>
            <delta_ts>2021-04-30 06:01:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224533-20210430114250.patch</filename>
            <type>text/plain</type>
            <size>16035</size>
            <attacher name="Miguel Gomez">magomez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc2ODM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGU0NGU2MTRkOTEyNDNhNjIy
YzQ2ODAyNmRkYTU3MWY2OWYwZTRkMmIuLjc5YmZmOTc4ODMxM2FhMGY3N2MxMWEyMzQ4Yzk5OGFl
OGJjMzZlMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMjEtMDQtMzAgIE1pZ3VlbCBH
b21leiAgPG1hZ29tZXpAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLXVtXUEVdIFByb3Blcmx5
IHJlY292ZXIgZnJvbSB1bnJlc3BvbnNpdmUgd2ViIHByb2Nlc3NlcworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI0NTMzCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgQ2FybG9zIEdhcmNpYSBDYW1wb3MuCisKKyAgICAgICAgQWRkIGEgbmV3IG1ldGhvZCB0
byB0aGUgR0xpYiBBUEkgdG8gdGVybWluYXRlIHRoZSB3ZWIgcHJvY2VzcyBhc3NvY2lhdGVkIHRv
IGEKKyAgICAgICAgV2ViS2l0V2ViVmlldy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ2xp
Yi9XZWJLaXROYXZpZ2F0aW9uQ2xpZW50LmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2ds
aWIvV2ViS2l0V2ViVmlldy5jcHA6CisgICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfdGVybWluYXRl
X3dlYl9wcm9jZXNzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLTQuMC1zZWN0
aW9ucy50eHQ6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0V2ViVmlldy5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvd3BlL2RvY3Mvd3BlLTEuMC1zZWN0aW9ucy50eHQ6CisK
IDIwMjEtMDQtMjkgIE1lZ2FuIEdhcmRuZXIgIDxtZWdhbl9nYXJkbmVyQGFwcGxlLmNvbT4KIAog
ICAgICAgICBSZW1vdmUgc29tZSB1bm5lZWRlZCBjb2RlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0TmF2aWdhdGlvbkNsaWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXROYXZpZ2F0aW9uQ2xpZW50LmNwcApp
bmRleCA0MzExZDA4NDhlODEwNzU0NWQzNDM3ZjM4NDkxODI0ZmZjNGE1ZDdjLi41OTAxYzU2YWVl
NjRmM2Y2ZTZkMmFhYmNiNDBlMzY0YTkwOTUwMzY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXROYXZpZ2F0aW9uQ2xpZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXROYXZpZ2F0aW9uQ2xpZW50LmNwcApA
QCAtMTE1LDggKzExNSwxMCBAQCBwcml2YXRlOgogICAgICAgICBjYXNlIFByb2Nlc3NUZXJtaW5h
dGlvblJlYXNvbjo6RXhjZWVkZWRNZW1vcnlMaW1pdDoKICAgICAgICAgICAgIHdlYmtpdFdlYlZp
ZXdXZWJQcm9jZXNzVGVybWluYXRlZChtX3dlYlZpZXcsIFdFQktJVF9XRUJfUFJPQ0VTU19FWENF
RURFRF9NRU1PUllfTElNSVQpOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIGNh
c2UgUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uOjpFeGNlZWRlZENQVUxpbWl0OgogICAgICAgICBj
YXNlIFByb2Nlc3NUZXJtaW5hdGlvblJlYXNvbjo6UmVxdWVzdGVkQnlDbGllbnQ6CisgICAgICAg
ICAgICB3ZWJraXRXZWJWaWV3V2ViUHJvY2Vzc1Rlcm1pbmF0ZWQobV93ZWJWaWV3LCBXRUJLSVRf
V0VCX1BST0NFU1NfUkVRVUVTVEVEX0JZX0FQSSk7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsK
KyAgICAgICAgY2FzZSBQcm9jZXNzVGVybWluYXRpb25SZWFzb246OkV4Y2VlZGVkQ1BVTGltaXQ6
CiAgICAgICAgIGNhc2UgUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uOjpSZXF1ZXN0ZWRCeU5ldHdv
cmtQcm9jZXNzOgogICAgICAgICBjYXNlIFByb2Nlc3NUZXJtaW5hdGlvblJlYXNvbjo6TmF2aWdh
dGlvblN3YXA6CiAgICAgICAgIGNhc2UgUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uOjpSZXF1ZXN0
ZWRCeUdQVVByb2Nlc3M6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Z2xpYi9XZWJLaXRXZWJWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGli
L1dlYktpdFdlYlZpZXcuY3BwCmluZGV4IGQ0MTliZDRlOGMxMjkyODU1ZmQ3OTZlNTJlYmE3NDY5
NWJhOWMyYjEuLmYyNDRhZDRmNTc2ZTNmMGE0Y2I0OTAwZjVlMzdhNmRmYTYyYzg5MjYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYlZpZXcuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYlZpZXcuY3Bw
CkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiQVBJU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgi
CiAjaW5jbHVkZSAiRGF0YVJlZmVyZW5jZS5oIgogI2luY2x1ZGUgIkltYWdlT3B0aW9ucy5oIgor
I2luY2x1ZGUgIlByb3Zpc2lvbmFsUGFnZVByb3h5LmgiCiAjaW5jbHVkZSAiV2ViQ2VydGlmaWNh
dGVJbmZvLmgiCiAjaW5jbHVkZSAiV2ViQ29udGV4dE1lbnVJdGVtLmgiCiAjaW5jbHVkZSAiV2Vi
Q29udGV4dE1lbnVJdGVtRGF0YS5oIgpAQCAtNDc1MiwzICs0NzUzLDMyIEBAIGdib29sZWFuIHdl
YmtpdF93ZWJfdmlld19nZXRfaXNfd2ViX3Byb2Nlc3NfcmVzcG9uc2l2ZShXZWJLaXRXZWJWaWV3
KiB3ZWJWaWV3KQogCiAgICAgcmV0dXJuIHdlYlZpZXctPnByaXYtPmlzV2ViUHJvY2Vzc1Jlc3Bv
bnNpdmU7CiB9CisKKy8qKgorICogd2Via2l0X3dlYl92aWV3X3Rlcm1pbmF0ZV93ZWJfcHJvY2Vz
czoKKyAqIEB3ZWJfdmlldzogYSAjV2ViS2l0V2ViVmlldworICoKKyAqIFRlcm1pbmF0ZXMgdGhl
IHdlYiBwcm9jZXNzIGFzc29jaWF0ZWQgdG8gQHdlYl92aWV3LiBXaGVuIHRoZSB3ZWIgcHJvY2Vz
cworICogZ2V0cyB0ZXJtaW5hdGVkIHVzaW5nIHRoaXMgbWV0aG9kLCB0aGUgI1dlYktpdFdlYlZp
ZXc6OndlYi1wcm9jZXNzLXRlcm1pbmF0ZWQKKyAqIHNpZ25hbCBpcyBlbWl0dGVkIHdpdGggJVdF
QktJVF9XRUJfUFJPQ0VTU19SRVFVRVNURURfQllfQVBJIGFzIHRoZSByZWFzb24gZm9yCisgKiB0
ZXJtaW5hdGlvbi4KKyAqCisgKiBTaW5jZTogMi4zNAorICovCit2b2lkIHdlYmtpdF93ZWJfdmll
d190ZXJtaW5hdGVfd2ViX3Byb2Nlc3MoV2ViS2l0V2ViVmlldyogd2ViVmlldykKK3sKKyAgICBn
X3JldHVybl9pZl9mYWlsKFdFQktJVF9JU19XRUJfVklFVyh3ZWJWaWV3KSk7CisKKyAgICBhdXRv
JiBwYWdlID0gZ2V0UGFnZSh3ZWJWaWV3KTsKKworICAgIFJlZjxXZWJLaXQ6OldlYlByb2Nlc3NQ
cm94eT4gcHJvdGVjdGVkUHJvY2Vzc1Byb3h5KHBhZ2UucHJvY2VzcygpKTsKKyAgICBwcm90ZWN0
ZWRQcm9jZXNzUHJveHktPnJlcXVlc3RUZXJtaW5hdGlvbihXZWJLaXQ6OlByb2Nlc3NUZXJtaW5h
dGlvblJlYXNvbjo6UmVxdWVzdGVkQnlDbGllbnQpOworCisgICAgaWYgKGF1dG8qIHByb3Zpc2lv
bmFsUGFnZVByb3h5ID0gcGFnZS5wcm92aXNpb25hbFBhZ2VQcm94eSgpKSB7CisgICAgICAgIFJl
ZjxXZWJLaXQ6OldlYlByb2Nlc3NQcm94eT4gcHJvdGVjdGVkUHJvY2Vzc1Byb3h5KHByb3Zpc2lv
bmFsUGFnZVByb3h5LT5wcm9jZXNzKCkpOworICAgICAgICBwcm90ZWN0ZWRQcm9jZXNzUHJveHkt
PnJlcXVlc3RUZXJtaW5hdGlvbihXZWJLaXQ6OlByb2Nlc3NUZXJtaW5hdGlvblJlYXNvbjo6UmVx
dWVzdGVkQnlDbGllbnQpOworICAgIH0KKworICAgIC8vIFJlc2V0IHRoZSBzdGF0ZSBvZiB0aGUg
cmVzcG9uc2l2ZW5lc3MgcHJvcGVydHkuCisgICAgd2Via2l0V2ViVmlld1NldElzV2ViUHJvY2Vz
c1Jlc3BvbnNpdmUod2ViVmlldywgdHJ1ZSk7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlldy5oCmluZGV4IGYxYWY0OWFiZWExZjA3YjhlODZlNjUw
NGM2MmRiOWFmZGJhZWUzZjEuLmNiODZkZWRmOTZkNmEwYTE4MzlmOGFlMjlmMmM5ZTRjYTNlNGY0
NDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2Vi
Vmlldy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmll
dy5oCkBAIC0xOTMsNiArMTkzLDcgQEAgdHlwZWRlZiBlbnVtIHsKICAqIFdlYktpdFdlYlByb2Nl
c3NUZXJtaW5hdGlvblJlYXNvbjoKICAqIEBXRUJLSVRfV0VCX1BST0NFU1NfQ1JBU0hFRDogdGhl
IHdlYiBwcm9jZXNzIGNyYXNoZWQuCiAgKiBAV0VCS0lUX1dFQl9QUk9DRVNTX0VYQ0VFREVEX01F
TU9SWV9MSU1JVDogdGhlIHdlYiBwcm9jZXNzIGV4Y2VlZGVkIHRoZSBtZW1vcnkgbGltaXQuCisg
KiBAV0VCS0lUX1dFQl9QUk9DRVNTX1JFUVVFU1RFRF9CWV9BUEk6IHRoZSB3ZWIgcHJvY2VzcyB0
ZXJtaW5hdGlvbiB3YXMgcmVxdWVzdGVkIGJ5IGFuIEFQSSBjYWxsLiBTaW5jZTogMi4zNAogICoK
ICAqIEVudW0gdmFsdWVzIHVzZWQgdG8gc3BlY2lmeSB0aGUgcmVhc29uIHdoeSB0aGUgd2ViIHBy
b2Nlc3MgdGVybWluYXRlZCBhYm5vcm1hbGx5LgogICoKQEAgLTIwMCw3ICsyMDEsOCBAQCB0eXBl
ZGVmIGVudW0gewogICovCiB0eXBlZGVmIGVudW0gewogICAgIFdFQktJVF9XRUJfUFJPQ0VTU19D
UkFTSEVELAotICAgIFdFQktJVF9XRUJfUFJPQ0VTU19FWENFRURFRF9NRU1PUllfTElNSVQKKyAg
ICBXRUJLSVRfV0VCX1BST0NFU1NfRVhDRUVERURfTUVNT1JZX0xJTUlULAorICAgIFdFQktJVF9X
RUJfUFJPQ0VTU19SRVFVRVNURURfQllfQVBJCiB9IFdlYktpdFdlYlByb2Nlc3NUZXJtaW5hdGlv
blJlYXNvbjsKIAogc3RydWN0IF9XZWJLaXRXZWJWaWV3IHsKQEAgLTU5Miw2ICs1OTQsOSBAQCB3
ZWJraXRfd2ViX3ZpZXdfZ2V0X3dlYnNpdGVfcG9saWNpZXMgICAgICAgICAgICAgICAgIChXZWJL
aXRXZWJWaWV3CiBXRUJLSVRfQVBJIGdib29sZWFuCiB3ZWJraXRfd2ViX3ZpZXdfZ2V0X2lzX3dl
Yl9wcm9jZXNzX3Jlc3BvbnNpdmUgICAgICAgIChXZWJLaXRXZWJWaWV3ICAgICAgICAgICAgICp3
ZWJfdmlldyk7CiAKK1dFQktJVF9BUEkgdm9pZAord2Via2l0X3dlYl92aWV3X3Rlcm1pbmF0ZV93
ZWJfcHJvY2VzcyAgICAgICAgICAgICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAgICAgICAqd2Vi
X3ZpZXcpOworCiBHX0VORF9ERUNMUwogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLTQuMC1zZWN0aW9ucy50eHQgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay00LjAtc2VjdGlv
bnMudHh0CmluZGV4IGQ2YzVkZDQxODA2YmExOWIzMTkzZDZiYzYzZWE3MjQ0NmI4MWQxMWUuLmFj
MTUyMjVkYTFjOTA1YjdhZjkzZjAwZmU2MTEwODlmYmQ0MDI5ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLTQuMC1zZWN0aW9ucy50
eHQKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGst
NC4wLXNlY3Rpb25zLnR4dApAQCAtMjkxLDYgKzI5MSw3IEBAIHdlYmtpdF93ZWJfdmlld19zZXRf
aW5wdXRfbWV0aG9kX2NvbnRleHQKIHdlYmtpdF93ZWJfdmlld19nZXRfaW5wdXRfbWV0aG9kX2Nv
bnRleHQKIHdlYmtpdF93ZWJfdmlld19nZXRfd2Vic2l0ZV9wb2xpY2llcwogd2Via2l0X3dlYl92
aWV3X2dldF9pc193ZWJfcHJvY2Vzc19yZXNwb25zaXZlCit3ZWJraXRfd2ViX3ZpZXdfdGVybWlu
YXRlX3dlYl9wcm9jZXNzCiAKIDxTVUJTRUNUSU9OIFdlYktpdEphdmFzY3JpcHRSZXN1bHQ+CiBX
ZWJLaXRKYXZhc2NyaXB0UmVzdWx0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvd3BlL1dlYktpdFdlYlZpZXcuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93
cGUvV2ViS2l0V2ViVmlldy5oCmluZGV4IGI1MGE3MzdmZDI4NTJhYmIwN2JkYTBjODkyMGViODY4
MjY1MDA4ZDcuLjJlMjJmZjJkOTkyNjc2ZWRmOGY2MDlmZGQ5YmFhYmQ4MTIyNjBhYTIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0V2ViVmlldy5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0V2ViVmlldy5oCkBAIC0x
NjIsNiArMTYyLDcgQEAgdHlwZWRlZiBlbnVtIHsKICAqIFdlYktpdFdlYlByb2Nlc3NUZXJtaW5h
dGlvblJlYXNvbjoKICAqIEBXRUJLSVRfV0VCX1BST0NFU1NfQ1JBU0hFRDogdGhlIHdlYiBwcm9j
ZXNzIGNyYXNoZWQuCiAgKiBAV0VCS0lUX1dFQl9QUk9DRVNTX0VYQ0VFREVEX01FTU9SWV9MSU1J
VDogdGhlIHdlYiBwcm9jZXNzIGV4Y2VlZGVkIHRoZSBtZW1vcnkgbGltaXQuCisgKiBAV0VCS0lU
X1dFQl9QUk9DRVNTX1JFUVVFU1RFRF9CWV9BUEk6IHRoZSB3ZWIgcHJvY2VzcyB0ZXJtaW5hdGlv
biB3YXMgcmVxdWVzdGVkIGJ5IGFuIEFQSSBjYWxsLiBTaW5jZTogMi4zNAogICoKICAqIEVudW0g
dmFsdWVzIHVzZWQgdG8gc3BlY2lmeSB0aGUgcmVhc29uIHdoeSB0aGUgd2ViIHByb2Nlc3MgdGVy
bWluYXRlZCBhYm5vcm1hbGx5LgogICoKQEAgLTE2OSw3ICsxNzAsOCBAQCB0eXBlZGVmIGVudW0g
ewogICovCiB0eXBlZGVmIGVudW0gewogICAgIFdFQktJVF9XRUJfUFJPQ0VTU19DUkFTSEVELAot
ICAgIFdFQktJVF9XRUJfUFJPQ0VTU19FWENFRURFRF9NRU1PUllfTElNSVQKKyAgICBXRUJLSVRf
V0VCX1BST0NFU1NfRVhDRUVERURfTUVNT1JZX0xJTUlULAorICAgIFdFQktJVF9XRUJfUFJPQ0VT
U19SRVFVRVNURURfQllfQVBJCiB9IFdlYktpdFdlYlByb2Nlc3NUZXJtaW5hdGlvblJlYXNvbjsK
IAogLyoqCkBAIC01NjgsNiArNTcwLDkgQEAgd2Via2l0X3dlYl92aWV3X2dldF93ZWJzaXRlX3Bv
bGljaWVzICAgICAgICAgICAgICAgICAoV2ViS2l0V2ViVmlldwogV0VCS0lUX0FQSSBnYm9vbGVh
bgogd2Via2l0X3dlYl92aWV3X2dldF9pc193ZWJfcHJvY2Vzc19yZXNwb25zaXZlICAgICAgICAo
V2ViS2l0V2ViVmlldyAgICAgICAgICAgICAqd2ViX3ZpZXcpOwogCitXRUJLSVRfQVBJIHZvaWQK
K3dlYmtpdF93ZWJfdmlld190ZXJtaW5hdGVfd2ViX3Byb2Nlc3MgICAgICAgICAgICAgICAgKFdl
YktpdFdlYlZpZXcgICAgICAgICAgICAgKndlYl92aWV3KTsKKwogR19FTkRfREVDTFMKIAogI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL2RvY3Mvd3Bl
LTEuMC1zZWN0aW9ucy50eHQgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL2RvY3Mv
d3BlLTEuMC1zZWN0aW9ucy50eHQKaW5kZXggOTNiZTk3ZWFkZDY3NmMzNTViNTlkOTBhOTRkOWJj
ZTcxMzIxODA0Ni4uYWMzYTgxNWRmOWMxNWViMzE3MDQ5NWQwYjEyOTFjYmRmNjdmNzE3YyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9kb2NzL3dwZS0xLjAtc2Vj
dGlvbnMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvZG9jcy93cGUt
MS4wLXNlY3Rpb25zLnR4dApAQCAtMjYzLDYgKzI2Myw3IEBAIHdlYmtpdF93ZWJfdmlld19zZXRf
aW5wdXRfbWV0aG9kX2NvbnRleHQKIHdlYmtpdF93ZWJfdmlld19nZXRfaW5wdXRfbWV0aG9kX2Nv
bnRleHQKIHdlYmtpdF93ZWJfdmlld19nZXRfd2Vic2l0ZV9wb2xpY2llcwogd2Via2l0X3dlYl92
aWV3X2dldF9pc193ZWJfcHJvY2Vzc19yZXNwb25zaXZlCit3ZWJraXRfd2ViX3ZpZXdfdGVybWlu
YXRlX3dlYl9wcm9jZXNzCiAKIDxTVUJTRUNUSU9OIFdlYktpdEphdmFzY3JpcHRSZXN1bHQ+CiBX
ZWJLaXRKYXZhc2NyaXB0UmVzdWx0CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29s
cy9DaGFuZ2VMb2cKaW5kZXggZTEzYWI3OTNhNTllNzUzOWYxZWY3YTdkNjllNzM5M2FhNDg3MDk4
ZC4uYjE3ODRlMTA4YzZhZDNlYTdiZjJjNmRmZGZkYjBmYzRkN2RmOWJiZCAxMDA2NDQKLS0tIGEv
VG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisy
MDIxLTA0LTMwICBNaWd1ZWwgR29tZXogIDxtYWdvbWV6QGlnYWxpYS5jb20+CisKKyAgICAgICAg
W0dUS11bV1BFXSBQcm9wZXJseSByZWNvdmVyIGZyb20gdW5yZXNwb25zaXZlIHdlYiBwcm9jZXNz
ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNDUz
MworCisgICAgICAgIFJldmlld2VkIGJ5IENhcmxvcyBHYXJjaWEgQ2FtcG9zLgorCisgICAgICAg
IEFkZCB1bml0IHRlc3RzIGZvciB0aGUgbmV3IHdlYmtpdF93ZWJfdmlld190ZXJtaW5hdGVfd2Vi
X3Byb2Nlc3MgR0xpYiBBUEkgbWV0aG9kLiBBbHNvIG1vdmUKKyAgICAgICAgdGhlIG1ldGhvZHMg
dXNlZCB0byB3YWl0IGZvciByZXNwb25zaXZlbmVzcyBjaGFuZ2VzIHRvIFdlYlZpZXdUZXN0LCBh
cyB0aGV5IGFyZSB1c2VkIGJ5IG1vcmUKKyAgICAgICAgdGhhbiBhIHNpbmdsZSB0ZXN0LgorCisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RXZWJLaXRXZWJWaWV3
LmNwcDoKKyAgICAgICAgKHRlc3RXZWJWaWV3SXNXZWJQcm9jZXNzUmVzcG9uc2l2ZSk6CisgICAg
ICAgICh0ZXN0V2ViVmlld1Rlcm1pbmF0ZVdlYlByb2Nlc3MpOgorICAgICAgICAodGVzdFdlYlZp
ZXdUZXJtaW5hdGVVbnJlc3BvbnNpdmVXZWJQcm9jZXNzKToKKyAgICAgICAgKGJlZm9yZUFsbCk6
CisgICAgICAgICogVGVzdFdlYktpdEFQSS9nbGliL1dlYktpdEdMaWIvV2ViVmlld1Rlc3QuY3Bw
OgorICAgICAgICAoaXNXZWJQcm9jZXNzUmVzcG9uc2l2ZUNoYW5nZWQpOgorICAgICAgICAoV2Vi
Vmlld1Rlc3Q6OndhaXRVbnRpbElzV2ViUHJvY2Vzc1Jlc3BvbnNpdmVDaGFuZ2VkKToKKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL2dsaWIvV2ViS2l0R0xpYi9XZWJWaWV3VGVzdC5oOgorCiAyMDIx
LTA0LTI5ICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICBFeHRlbmQg
U29ydGVkQXJyYXlNYXAgZnVydGhlciB0byB3b3JrIG9uIGNhc2UtZm9sZGVkIHN0cmluZ3MsIHVz
ZSBpbiBNSU1FVHlwZVJlZ2lzdHJ5CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdEdMaWIvVGVzdFdlYktpdFdlYlZpZXcuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RXZWJLaXRXZWJWaWV3LmNwcAppbmRleCBiMjM3NTEzNjA0
Y2M4ZDQyMjhlZGJmODkxMDZiOTU2YjQ0NjBlYzgzLi4wODU4ZDcxYTMwZTliZWVjY2Q3MTU5MmY1
YTkyMTk5ZTkwMTAzMTU1IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdEdMaWIvVGVzdFdlYktpdFdlYlZpZXcuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0R0xpYi9UZXN0V2ViS2l0V2ViVmlldy5jcHAKQEAgLTExNzcsMjQgKzExNzcs
NyBAQCBzdGF0aWMgdm9pZCB0ZXN0V2ViVmlld0F1dG9wbGF5UG9saWN5KFdlYlZpZXdUZXN0KiB0
ZXN0LCBnY29uc3Rwb2ludGVyKQogICAgIGdfYXNzZXJ0X2NtcGludCh3ZWJraXRfd2Vic2l0ZV9w
b2xpY2llc19nZXRfYXV0b3BsYXlfcG9saWN5KHBvbGljaWVzKSwgPT0sIFdFQktJVF9BVVRPUExB
WV9BTExPV19XSVRIT1VUX1NPVU5EKTsKIH0KIAotY2xhc3MgV2ViVmlld0lzV2ViUHJvY2Vzc1Jl
c3BvbnNpdmVUZXN0OiBwdWJsaWMgV2ViVmlld1Rlc3QgewotcHVibGljOgotICAgIE1BS0VfR0xJ
Ql9URVNUX0ZJWFRVUkUoV2ViVmlld0lzV2ViUHJvY2Vzc1Jlc3BvbnNpdmVUZXN0KTsKLQotICAg
IHN0YXRpYyB2b2lkIGlzV2ViUHJvY2Vzc1Jlc3BvbnNpdmVDaGFuZ2VkKFdlYktpdFdlYlZpZXcq
IHZpZXcsIEdQYXJhbVNwZWMqLCBXZWJWaWV3SXNXZWJQcm9jZXNzUmVzcG9uc2l2ZVRlc3QqIHRl
c3QpCi0gICAgewotICAgICAgICBnX3NpZ25hbF9oYW5kbGVyc19kaXNjb25uZWN0X2J5X2Z1bmMo
dGVzdC0+bV93ZWJWaWV3LCByZWludGVycHJldF9jYXN0PHZvaWQqPihpc1dlYlByb2Nlc3NSZXNw
b25zaXZlQ2hhbmdlZCksIHRlc3QpOwotICAgICAgICBnX21haW5fbG9vcF9xdWl0KHRlc3QtPm1f
bWFpbkxvb3ApOwotICAgIH0KLQotICAgIHZvaWQgd2FpdFVudGlsSXNXZWJQcm9jZXNzUmVzcG9u
c2l2ZUNoYW5nZWQoKQotICAgIHsKLSAgICAgICAgZ19zaWduYWxfY29ubmVjdChtX3dlYlZpZXcs
ICJub3RpZnk6OmlzLXdlYi1wcm9jZXNzLXJlc3BvbnNpdmUiLCBHX0NBTExCQUNLKGlzV2ViUHJv
Y2Vzc1Jlc3BvbnNpdmVDaGFuZ2VkKSwgdGhpcyk7Ci0gICAgICAgIGdfbWFpbl9sb29wX3J1biht
X21haW5Mb29wKTsKLSAgICB9Ci19OwotCi1zdGF0aWMgdm9pZCB0ZXN0V2ViVmlld0lzV2ViUHJv
Y2Vzc1Jlc3BvbnNpdmUoV2ViVmlld0lzV2ViUHJvY2Vzc1Jlc3BvbnNpdmVUZXN0KiB0ZXN0LCBn
Y29uc3Rwb2ludGVyKQorc3RhdGljIHZvaWQgdGVzdFdlYlZpZXdJc1dlYlByb2Nlc3NSZXNwb25z
aXZlKFdlYlZpZXdUZXN0KiB0ZXN0LCBnY29uc3Rwb2ludGVyKQogewogICAgIHN0YXRpYyBjb25z
dCBjaGFyKiBoYW5nSFRNTCA9CiAgICAgICAgICI8aHRtbD4iCkBAIC0xNTYxLDYgKzE1NDQsNzAg
QEAgc3RhdGljIHZvaWQgdGVzdFdlYlZpZXdFeHRlcm5hbEF1ZGlvUmVuZGVyaW5nKEF1ZGlvUmVu
ZGVyaW5nV2ViVmlld1Rlc3QqIHRlc3QsIGcKIH0KICNlbmRpZgogCitjbGFzcyBXZWJWaWV3VGVy
bWluYXRlV2ViUHJvY2Vzc1Rlc3Q6IHB1YmxpYyBXZWJWaWV3VGVzdCB7CitwdWJsaWM6CisgICAg
TUFLRV9HTElCX1RFU1RfRklYVFVSRShXZWJWaWV3VGVybWluYXRlV2ViUHJvY2Vzc1Rlc3QpOwor
CisgICAgc3RhdGljIHZvaWQgd2ViUHJvY2Vzc1Rlcm1pbmF0ZWRDYWxsYmFjayhXZWJLaXRXZWJW
aWV3KiB3ZWJWaWV3LCBXZWJLaXRXZWJQcm9jZXNzVGVybWluYXRpb25SZWFzb24gcmVhc29uLCBX
ZWJWaWV3VGVybWluYXRlV2ViUHJvY2Vzc1Rlc3QqIHRlc3QpCisgICAgeworICAgICAgICB0ZXN0
LT5tX3Rlcm1pbmF0aW9uUmVhc29uID0gcmVhc29uOworICAgIH0KKworICAgIFdlYlZpZXdUZXJt
aW5hdGVXZWJQcm9jZXNzVGVzdCgpCisgICAgeworICAgICAgICBnX3NpZ25hbF9jb25uZWN0X2Fm
dGVyKG1fd2ViVmlldywgIndlYi1wcm9jZXNzLXRlcm1pbmF0ZWQiLCBHX0NBTExCQUNLKFdlYlZp
ZXdUZXJtaW5hdGVXZWJQcm9jZXNzVGVzdDo6d2ViUHJvY2Vzc1Rlcm1pbmF0ZWRDYWxsYmFjayks
IHRoaXMpOworICAgIH0KKworICAgIH5XZWJWaWV3VGVybWluYXRlV2ViUHJvY2Vzc1Rlc3QoKQor
ICAgIHsKKyAgICAgICAgZ19zaWduYWxfaGFuZGxlcnNfZGlzY29ubmVjdF9ieV9kYXRhKG1fd2Vi
VmlldywgdGhpcyk7CisgICAgfQorCisgICAgV2ViS2l0V2ViUHJvY2Vzc1Rlcm1pbmF0aW9uUmVh
c29uIG1fdGVybWluYXRpb25SZWFzb24geyBXRUJLSVRfV0VCX1BST0NFU1NfQ1JBU0hFRCB9Owor
fTsKKworc3RhdGljIHZvaWQgdGVzdFdlYlZpZXdUZXJtaW5hdGVXZWJQcm9jZXNzKFdlYlZpZXdU
ZXJtaW5hdGVXZWJQcm9jZXNzVGVzdCogdGVzdCwgZ2NvbnN0cG9pbnRlcikKK3sKKyAgICB0ZXN0
LT5sb2FkSHRtbCgiPGh0bWw+PC9odG1sPiIsIG51bGxwdHIpOworICAgIHRlc3QtPndhaXRVbnRp
bExvYWRGaW5pc2hlZCgpOworICAgIHRlc3QtPm1fZXhwZWN0ZWRXZWJQcm9jZXNzQ3Jhc2ggPSB0
cnVlOworICAgIHdlYmtpdF93ZWJfdmlld190ZXJtaW5hdGVfd2ViX3Byb2Nlc3ModGVzdC0+bV93
ZWJWaWV3KTsKKyAgICBnX2Fzc2VydF9jbXB1aW50KHRlc3QtPm1fdGVybWluYXRpb25SZWFzb24s
ID09LCBXRUJLSVRfV0VCX1BST0NFU1NfUkVRVUVTVEVEX0JZX0FQSSk7CisgICAgZ19hc3NlcnRf
dHJ1ZSh3ZWJraXRfd2ViX3ZpZXdfZ2V0X2lzX3dlYl9wcm9jZXNzX3Jlc3BvbnNpdmUodGVzdC0+
bV93ZWJWaWV3KSk7Cit9CisKK3N0YXRpYyB2b2lkIHRlc3RXZWJWaWV3VGVybWluYXRlVW5yZXNw
b25zaXZlV2ViUHJvY2VzcyhXZWJWaWV3VGVybWluYXRlV2ViUHJvY2Vzc1Rlc3QqIHRlc3QsIGdj
b25zdHBvaW50ZXIpCit7CisgICAgc3RhdGljIGNvbnN0IGNoYXIqIGhhbmdIVE1MID0KKyAgICAg
ICAgIjxodG1sPiIKKyAgICAgICAgIiA8Ym9keT4iCisgICAgICAgICIgIDxzY3JpcHQ+IgorICAg
ICAgICAiICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsiCisgICAgICAgICIgICAgIHdoaWxlKHRy
dWUpIHsgfSIKKyAgICAgICAgIiAgICB9LCA1MDApOyIKKyAgICAgICAgIiAgPC9zY3JpcHQ+Igor
ICAgICAgICAiIDwvYm9keT4iCisgICAgICAgICI8L2h0bWw+IjsKKworICAgIHRlc3QtPmxvYWRI
dG1sKGhhbmdIVE1MLCBudWxscHRyKTsKKyAgICB0ZXN0LT53YWl0VW50aWxMb2FkRmluaXNoZWQo
KTsKKyAgICBnX2Fzc2VydF90cnVlKHdlYmtpdF93ZWJfdmlld19nZXRfaXNfd2ViX3Byb2Nlc3Nf
cmVzcG9uc2l2ZSh0ZXN0LT5tX3dlYlZpZXcpKTsKKyAgICAvLyBXYWl0IDEgc2Vjb25kLCBzbyB0
aGUganMgd2hpbGUgbG9vcCBraWNrcyBpbiBhbmQgYmxvY2tzIHRoZSB3ZWIgcHJvY2VzcywgYW5k
IHRyeSB0byBsb2FkIGEgbmV3IHBhZ2UuCisgICAgLy8gQXMgdGhlIHdlYiBwcm9jZXNzIGlzIGJ1
c3kgdGhpcyB3b24ndCB3b3JrLCBhbmQgYWZ0ZXIgMyBzZWNvbmRzIHRoZSB3ZWIgcHJvY2VzcyB3
aWxsIGJlIG1hcmtlZAorICAgIC8vIGFzIHVucmVzcG9uc2l2ZS4KKyAgICB0ZXN0LT53YWl0KDEp
OworICAgIHRlc3QtPmxvYWRIdG1sKCI8aHRtbD48L2h0bWw+IiwgbnVsbHB0cik7CisgICAgdGVz
dC0+d2FpdFVudGlsSXNXZWJQcm9jZXNzUmVzcG9uc2l2ZUNoYW5nZWQoKTsKKyAgICBnX2Fzc2Vy
dF9mYWxzZSh3ZWJraXRfd2ViX3ZpZXdfZ2V0X2lzX3dlYl9wcm9jZXNzX3Jlc3BvbnNpdmUodGVz
dC0+bV93ZWJWaWV3KSk7CisKKyAgICAvLyBOb3cgdGhhdCB0aGUgcHJvY2VzcyBpcyB1bnJlc3Bv
bnNpdmUsIHRlcm1pbmF0ZSBpdC4KKyAgICB0ZXN0LT5tX2V4cGVjdGVkV2ViUHJvY2Vzc0NyYXNo
ID0gdHJ1ZTsKKyAgICB0ZXN0LT5tX3Rlcm1pbmF0aW9uUmVhc29uID0gV0VCS0lUX1dFQl9QUk9D
RVNTX0NSQVNIRUQ7CisgICAgd2Via2l0X3dlYl92aWV3X3Rlcm1pbmF0ZV93ZWJfcHJvY2Vzcyh0
ZXN0LT5tX3dlYlZpZXcpOworICAgIGdfYXNzZXJ0X2NtcHVpbnQodGVzdC0+bV90ZXJtaW5hdGlv
blJlYXNvbiwgPT0sIFdFQktJVF9XRUJfUFJPQ0VTU19SRVFVRVNURURfQllfQVBJKTsKKyAgICBn
X2Fzc2VydF90cnVlKHdlYmtpdF93ZWJfdmlld19nZXRfaXNfd2ViX3Byb2Nlc3NfcmVzcG9uc2l2
ZSh0ZXN0LT5tX3dlYlZpZXcpKTsKK30KKwogI2lmIFVTRShTT1VQMikKIHN0YXRpYyB2b2lkIHNl
cnZlckNhbGxiYWNrKFNvdXBTZXJ2ZXIqIHNlcnZlciwgU291cE1lc3NhZ2UqIG1lc3NhZ2UsIGNv
bnN0IGNoYXIqIHBhdGgsIEdIYXNoVGFibGUqLCBTb3VwQ2xpZW50Q29udGV4dCosIGdwb2ludGVy
KQogI2Vsc2UKQEAgLTE2MjgsNyArMTY3NSw5IEBAIHZvaWQgYmVmb3JlQWxsKCkKICNpZiBQTEFU
Rk9STShXUEUpICYmIFVTRShXUEVCQUNLRU5EX0ZET19BVURJT19FWFRFTlNJT04pCiAgICAgQXVk
aW9SZW5kZXJpbmdXZWJWaWV3VGVzdDo6YWRkKCJXZWJLaXRXZWJWaWV3IiwgImV4dGVybmFsLWF1
ZGlvLXJlbmRlcmluZyIsIHRlc3RXZWJWaWV3RXh0ZXJuYWxBdWRpb1JlbmRlcmluZyk7CiAjZW5k
aWYKLSAgICBXZWJWaWV3SXNXZWJQcm9jZXNzUmVzcG9uc2l2ZVRlc3Q6OmFkZCgiV2ViS2l0V2Vi
VmlldyIsICJpcy13ZWItcHJvY2Vzcy1yZXNwb25zaXZlIiwgdGVzdFdlYlZpZXdJc1dlYlByb2Nl
c3NSZXNwb25zaXZlKTsKKyAgICBXZWJWaWV3VGVzdDo6YWRkKCJXZWJLaXRXZWJWaWV3IiwgImlz
LXdlYi1wcm9jZXNzLXJlc3BvbnNpdmUiLCB0ZXN0V2ViVmlld0lzV2ViUHJvY2Vzc1Jlc3BvbnNp
dmUpOworICAgIFdlYlZpZXdUZXJtaW5hdGVXZWJQcm9jZXNzVGVzdDo6YWRkKCJXZWJLaXRXZWJW
aWV3IiwgInRlcm1pbmF0ZS13ZWItcHJvY2VzcyIsIHRlc3RXZWJWaWV3VGVybWluYXRlV2ViUHJv
Y2Vzcyk7CisgICAgV2ViVmlld1Rlcm1pbmF0ZVdlYlByb2Nlc3NUZXN0OjphZGQoIldlYktpdFdl
YlZpZXciLCAidGVybWluYXRlLXVucmVzcG9uc2l2ZS13ZWItcHJvY2VzcyIsIHRlc3RXZWJWaWV3
VGVybWluYXRlVW5yZXNwb25zaXZlV2ViUHJvY2Vzcyk7CiB9CiAKIHZvaWQgYWZ0ZXJBbGwoKQpk
aWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9nbGliL1dlYktpdEdMaWIvV2ViVmlld1Rl
c3QuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9nbGliL1dlYktpdEdMaWIvV2ViVmlld1Rlc3Qu
Y3BwCmluZGV4IDM3YzY5ZGI3NGU5ZTFhNjQwZTkyMjJkZTQxOTE5MjAzMzZmNDAxYmMuLjgyNjRl
YmFhZDU1N2ZkMGY5YTFjMWFhNzVkOTI0YWMyY2EyOTBiMWQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvZ2xpYi9XZWJLaXRHTGliL1dlYlZpZXdUZXN0LmNwcAorKysgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL2dsaWIvV2ViS2l0R0xpYi9XZWJWaWV3VGVzdC5jcHAKQEAgLTIyMyw2ICsy
MjMsMTggQEAgdm9pZCBXZWJWaWV3VGVzdDo6d2FpdFVudGlsVGl0bGVDaGFuZ2VkKCkKICAgICB3
YWl0VW50aWxUaXRsZUNoYW5nZWRUbygwKTsKIH0KIAorc3RhdGljIHZvaWQgaXNXZWJQcm9jZXNz
UmVzcG9uc2l2ZUNoYW5nZWQoV2ViS2l0V2ViVmlldyogd2ViVmlldywgR1BhcmFtU3BlYyosIFdl
YlZpZXdUZXN0KiB0ZXN0KQoreworICAgIGdfc2lnbmFsX2hhbmRsZXJzX2Rpc2Nvbm5lY3RfYnlf
ZnVuYyh3ZWJWaWV3LCByZWludGVycHJldF9jYXN0PHZvaWQqPihpc1dlYlByb2Nlc3NSZXNwb25z
aXZlQ2hhbmdlZCksIHRlc3QpOworICAgIGdfbWFpbl9sb29wX3F1aXQodGVzdC0+bV9tYWluTG9v
cCk7Cit9CisKK3ZvaWQgV2ViVmlld1Rlc3Q6OndhaXRVbnRpbElzV2ViUHJvY2Vzc1Jlc3BvbnNp
dmVDaGFuZ2VkKCkKK3sKKyAgICBnX3NpZ25hbF9jb25uZWN0KG1fd2ViVmlldywgIm5vdGlmeTo6
aXMtd2ViLXByb2Nlc3MtcmVzcG9uc2l2ZSIsIEdfQ0FMTEJBQ0soaXNXZWJQcm9jZXNzUmVzcG9u
c2l2ZUNoYW5nZWQpLCB0aGlzKTsKKyAgICBnX21haW5fbG9vcF9ydW4obV9tYWluTG9vcCk7Cit9
CisKIHZvaWQgV2ViVmlld1Rlc3Q6OnNlbGVjdEFsbCgpCiB7CiAgICAgd2Via2l0X3dlYl92aWV3
X2V4ZWN1dGVfZWRpdGluZ19jb21tYW5kKG1fd2ViVmlldywgIlNlbGVjdEFsbCIpOwpkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9nbGliL1dlYktpdEdMaWIvV2ViVmlld1Rlc3QuaCBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvZ2xpYi9XZWJLaXRHTGliL1dlYlZpZXdUZXN0LmgKaW5kZXgg
NzBkNzkzN2E4YWI1ZWJhMWVlMDQxNGZlNTcyMWU0NGMxN2QzZTkyNS4uNWJmZTc4M2QyMjk1NTU5
YjEyNzQzMzhiZmQ1MTZjODlkNGFkZTIzYiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9nbGliL1dlYktpdEdMaWIvV2ViVmlld1Rlc3QuaAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L2dsaWIvV2ViS2l0R0xpYi9XZWJWaWV3VGVzdC5oCkBAIC01Myw2ICs1Myw3IEBAIHB1YmxpYzoK
ICAgICB2b2lkIHdhaXRVbnRpbFRpdGxlQ2hhbmdlZFRvKGNvbnN0IGNoYXIqIGV4cGVjdGVkVGl0
bGUpOwogICAgIHZvaWQgd2FpdFVudGlsVGl0bGVDaGFuZ2VkKCk7CiAgICAgdm9pZCB3YWl0VW50
aWxGaWxlQ2hhbmdlZChjb25zdCBjaGFyKiwgR0ZpbGVNb25pdG9yRXZlbnQpOworICAgIHZvaWQg
d2FpdFVudGlsSXNXZWJQcm9jZXNzUmVzcG9uc2l2ZUNoYW5nZWQoKTsKICAgICB2b2lkIHJlc2l6
ZVZpZXcoaW50IHdpZHRoLCBpbnQgaGVpZ2h0KTsKICAgICB2b2lkIGhpZGVWaWV3KCk7CiAgICAg
dm9pZCBzZWxlY3RBbGwoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>427411</attachid>
            <date>2021-04-30 06:01:59 -0700</date>
            <delta_ts>2021-04-30 08:07:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224533-20210430150158.patch</filename>
            <type>text/plain</type>
            <size>16127</size>
            <attacher name="Miguel Gomez">magomez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc2ODM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGU0NGU2MTRkOTEyNDNhNjIy
YzQ2ODAyNmRkYTU3MWY2OWYwZTRkMmIuLjc5YmZmOTc4ODMxM2FhMGY3N2MxMWEyMzQ4Yzk5OGFl
OGJjMzZlMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMjEtMDQtMzAgIE1pZ3VlbCBH
b21leiAgPG1hZ29tZXpAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLXVtXUEVdIFByb3Blcmx5
IHJlY292ZXIgZnJvbSB1bnJlc3BvbnNpdmUgd2ViIHByb2Nlc3NlcworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI0NTMzCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgQ2FybG9zIEdhcmNpYSBDYW1wb3MuCisKKyAgICAgICAgQWRkIGEgbmV3IG1ldGhvZCB0
byB0aGUgR0xpYiBBUEkgdG8gdGVybWluYXRlIHRoZSB3ZWIgcHJvY2VzcyBhc3NvY2lhdGVkIHRv
IGEKKyAgICAgICAgV2ViS2l0V2ViVmlldy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ2xp
Yi9XZWJLaXROYXZpZ2F0aW9uQ2xpZW50LmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2ds
aWIvV2ViS2l0V2ViVmlldy5jcHA6CisgICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfdGVybWluYXRl
X3dlYl9wcm9jZXNzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLTQuMC1zZWN0
aW9ucy50eHQ6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0V2ViVmlldy5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvd3BlL2RvY3Mvd3BlLTEuMC1zZWN0aW9ucy50eHQ6CisK
IDIwMjEtMDQtMjkgIE1lZ2FuIEdhcmRuZXIgIDxtZWdhbl9nYXJkbmVyQGFwcGxlLmNvbT4KIAog
ICAgICAgICBSZW1vdmUgc29tZSB1bm5lZWRlZCBjb2RlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0TmF2aWdhdGlvbkNsaWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXROYXZpZ2F0aW9uQ2xpZW50LmNwcApp
bmRleCA0MzExZDA4NDhlODEwNzU0NWQzNDM3ZjM4NDkxODI0ZmZjNGE1ZDdjLi4yZTcxMzVkMzdi
MjA1MGVkYTE3YjYzMWRkYzBhYjg3ZDg4ZTI0NTNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXROYXZpZ2F0aW9uQ2xpZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXROYXZpZ2F0aW9uQ2xpZW50LmNwcApA
QCAtMTE1LDggKzExNSwxMCBAQCBwcml2YXRlOgogICAgICAgICBjYXNlIFByb2Nlc3NUZXJtaW5h
dGlvblJlYXNvbjo6RXhjZWVkZWRNZW1vcnlMaW1pdDoKICAgICAgICAgICAgIHdlYmtpdFdlYlZp
ZXdXZWJQcm9jZXNzVGVybWluYXRlZChtX3dlYlZpZXcsIFdFQktJVF9XRUJfUFJPQ0VTU19FWENF
RURFRF9NRU1PUllfTElNSVQpOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIGNh
c2UgUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uOjpFeGNlZWRlZENQVUxpbWl0OgogICAgICAgICBj
YXNlIFByb2Nlc3NUZXJtaW5hdGlvblJlYXNvbjo6UmVxdWVzdGVkQnlDbGllbnQ6CisgICAgICAg
ICAgICB3ZWJraXRXZWJWaWV3V2ViUHJvY2Vzc1Rlcm1pbmF0ZWQobV93ZWJWaWV3LCBXRUJLSVRf
V0VCX1BST0NFU1NfVEVSTUlOQVRJT05fUkVRVUVTVEVEX0JZX0FQSSk7CisgICAgICAgICAgICBy
ZXR1cm4gdHJ1ZTsKKyAgICAgICAgY2FzZSBQcm9jZXNzVGVybWluYXRpb25SZWFzb246OkV4Y2Vl
ZGVkQ1BVTGltaXQ6CiAgICAgICAgIGNhc2UgUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uOjpSZXF1
ZXN0ZWRCeU5ldHdvcmtQcm9jZXNzOgogICAgICAgICBjYXNlIFByb2Nlc3NUZXJtaW5hdGlvblJl
YXNvbjo6TmF2aWdhdGlvblN3YXA6CiAgICAgICAgIGNhc2UgUHJvY2Vzc1Rlcm1pbmF0aW9uUmVh
c29uOjpSZXF1ZXN0ZWRCeUdQVVByb2Nlc3M6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9nbGliL1dlYktpdFdlYlZpZXcuY3BwCmluZGV4IGQ0MTliZDRlOGMxMjkyODU1ZmQ3
OTZlNTJlYmE3NDY5NWJhOWMyYjEuLjFhZGJlOGY4MjdhZjFkOWYxMmQ2MDI2YTU0MDYyNThiNzNi
NjI4ZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktp
dFdlYlZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktp
dFdlYlZpZXcuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiQVBJU2VyaWFsaXplZFNj
cmlwdFZhbHVlLmgiCiAjaW5jbHVkZSAiRGF0YVJlZmVyZW5jZS5oIgogI2luY2x1ZGUgIkltYWdl
T3B0aW9ucy5oIgorI2luY2x1ZGUgIlByb3Zpc2lvbmFsUGFnZVByb3h5LmgiCiAjaW5jbHVkZSAi
V2ViQ2VydGlmaWNhdGVJbmZvLmgiCiAjaW5jbHVkZSAiV2ViQ29udGV4dE1lbnVJdGVtLmgiCiAj
aW5jbHVkZSAiV2ViQ29udGV4dE1lbnVJdGVtRGF0YS5oIgpAQCAtNDc1MiwzICs0NzUzLDMxIEBA
IGdib29sZWFuIHdlYmtpdF93ZWJfdmlld19nZXRfaXNfd2ViX3Byb2Nlc3NfcmVzcG9uc2l2ZShX
ZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQogCiAgICAgcmV0dXJuIHdlYlZpZXctPnByaXYtPmlzV2Vi
UHJvY2Vzc1Jlc3BvbnNpdmU7CiB9CisKKy8qKgorICogd2Via2l0X3dlYl92aWV3X3Rlcm1pbmF0
ZV93ZWJfcHJvY2VzczoKKyAqIEB3ZWJfdmlldzogYSAjV2ViS2l0V2ViVmlldworICoKKyAqIFRl
cm1pbmF0ZXMgdGhlIHdlYiBwcm9jZXNzIGFzc29jaWF0ZWQgdG8gQHdlYl92aWV3LiBXaGVuIHRo
ZSB3ZWIgcHJvY2VzcyBnZXRzIHRlcm1pbmF0ZWQKKyAqIHVzaW5nIHRoaXMgbWV0aG9kLCB0aGUg
I1dlYktpdFdlYlZpZXc6OndlYi1wcm9jZXNzLXRlcm1pbmF0ZWQgc2lnbmFsIGlzIGVtaXR0ZWQg
d2l0aAorICogJVdFQktJVF9XRUJfUFJPQ0VTU19URVJNSU5BVElPTl9SRVFVRVNURURfQllfQVBJ
IGFzIHRoZSByZWFzb24gZm9yIHRlcm1pbmF0aW9uLgorICoKKyAqIFNpbmNlOiAyLjM0CisgKi8K
K3ZvaWQgd2Via2l0X3dlYl92aWV3X3Rlcm1pbmF0ZV93ZWJfcHJvY2VzcyhXZWJLaXRXZWJWaWV3
KiB3ZWJWaWV3KQoreworICAgIGdfcmV0dXJuX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9WSUVXKHdl
YlZpZXcpKTsKKworICAgIGF1dG8mIHBhZ2UgPSBnZXRQYWdlKHdlYlZpZXcpOworCisgICAgUmVm
PFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5PiBwcm90ZWN0ZWRQcm9jZXNzUHJveHkocGFnZS5wcm9j
ZXNzKCkpOworICAgIHByb3RlY3RlZFByb2Nlc3NQcm94eS0+cmVxdWVzdFRlcm1pbmF0aW9uKFdl
YktpdDo6UHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uOjpSZXF1ZXN0ZWRCeUNsaWVudCk7CisKKyAg
ICBpZiAoYXV0byogcHJvdmlzaW9uYWxQYWdlUHJveHkgPSBwYWdlLnByb3Zpc2lvbmFsUGFnZVBy
b3h5KCkpIHsKKyAgICAgICAgUmVmPFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5PiBwcm90ZWN0ZWRQ
cm9jZXNzUHJveHkocHJvdmlzaW9uYWxQYWdlUHJveHktPnByb2Nlc3MoKSk7CisgICAgICAgIHBy
b3RlY3RlZFByb2Nlc3NQcm94eS0+cmVxdWVzdFRlcm1pbmF0aW9uKFdlYktpdDo6UHJvY2Vzc1Rl
cm1pbmF0aW9uUmVhc29uOjpSZXF1ZXN0ZWRCeUNsaWVudCk7CisgICAgfQorCisgICAgLy8gUmVz
ZXQgdGhlIHN0YXRlIG9mIHRoZSByZXNwb25zaXZlbmVzcyBwcm9wZXJ0eS4KKyAgICB3ZWJraXRX
ZWJWaWV3U2V0SXNXZWJQcm9jZXNzUmVzcG9uc2l2ZSh3ZWJWaWV3LCB0cnVlKTsKK30KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlldy5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3LmgKaW5kZXggZjFh
ZjQ5YWJlYTFmMDdiOGU4NmU2NTA0YzYyZGI5YWZkYmFlZTNmMS4uYzhlZjhmYzQzMjM5MTM5ZTg0
YWNjYWI1ZmM3MmFmMzNiYjJkNGIzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL2d0ay9XZWJLaXRXZWJWaWV3LmgKQEAgLTE5Myw2ICsxOTMsNyBAQCB0eXBlZGVmIGVudW0g
ewogICogV2ViS2l0V2ViUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uOgogICogQFdFQktJVF9XRUJf
UFJPQ0VTU19DUkFTSEVEOiB0aGUgd2ViIHByb2Nlc3MgY3Jhc2hlZC4KICAqIEBXRUJLSVRfV0VC
X1BST0NFU1NfRVhDRUVERURfTUVNT1JZX0xJTUlUOiB0aGUgd2ViIHByb2Nlc3MgZXhjZWVkZWQg
dGhlIG1lbW9yeSBsaW1pdC4KKyAqIEBXRUJLSVRfV0VCX1BST0NFU1NfVEVSTUlOQVRJT05fUkVR
VUVTVEVEX0JZX0FQSTogdGhlIHdlYiBwcm9jZXNzIHRlcm1pbmF0aW9uIHdhcyByZXF1ZXN0ZWQg
YnkgYW4gQVBJIGNhbGwuIFNpbmNlOiAyLjM0CiAgKgogICogRW51bSB2YWx1ZXMgdXNlZCB0byBz
cGVjaWZ5IHRoZSByZWFzb24gd2h5IHRoZSB3ZWIgcHJvY2VzcyB0ZXJtaW5hdGVkIGFibm9ybWFs
bHkuCiAgKgpAQCAtMjAwLDcgKzIwMSw4IEBAIHR5cGVkZWYgZW51bSB7CiAgKi8KIHR5cGVkZWYg
ZW51bSB7CiAgICAgV0VCS0lUX1dFQl9QUk9DRVNTX0NSQVNIRUQsCi0gICAgV0VCS0lUX1dFQl9Q
Uk9DRVNTX0VYQ0VFREVEX01FTU9SWV9MSU1JVAorICAgIFdFQktJVF9XRUJfUFJPQ0VTU19FWENF
RURFRF9NRU1PUllfTElNSVQsCisgICAgV0VCS0lUX1dFQl9QUk9DRVNTX1RFUk1JTkFUSU9OX1JF
UVVFU1RFRF9CWV9BUEkKIH0gV2ViS2l0V2ViUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uOwogCiBz
dHJ1Y3QgX1dlYktpdFdlYlZpZXcgewpAQCAtNTkyLDYgKzU5NCw5IEBAIHdlYmtpdF93ZWJfdmll
d19nZXRfd2Vic2l0ZV9wb2xpY2llcyAgICAgICAgICAgICAgICAgKFdlYktpdFdlYlZpZXcKIFdF
QktJVF9BUEkgZ2Jvb2xlYW4KIHdlYmtpdF93ZWJfdmlld19nZXRfaXNfd2ViX3Byb2Nlc3NfcmVz
cG9uc2l2ZSAgICAgICAgKFdlYktpdFdlYlZpZXcgICAgICAgICAgICAgKndlYl92aWV3KTsKIAor
V0VCS0lUX0FQSSB2b2lkCit3ZWJraXRfd2ViX3ZpZXdfdGVybWluYXRlX3dlYl9wcm9jZXNzICAg
ICAgICAgICAgICAgIChXZWJLaXRXZWJWaWV3ICAgICAgICAgICAgICp3ZWJfdmlldyk7CisKIEdf
RU5EX0RFQ0xTCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL2d0ay9kb2NzL3dlYmtpdDJndGstNC4wLXNlY3Rpb25zLnR4dCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLTQuMC1zZWN0aW9ucy50eHQKaW5kZXgg
ZDZjNWRkNDE4MDZiYTE5YjMxOTNkNmJjNjNlYTcyNDQ2YjgxZDExZS4uYWMxNTIyNWRhMWM5MDVi
N2FmOTNmMDBmZTYxMTA4OWZiZDQwMjllMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstNC4wLXNlY3Rpb25zLnR4dAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay00LjAtc2VjdGlvbnMu
dHh0CkBAIC0yOTEsNiArMjkxLDcgQEAgd2Via2l0X3dlYl92aWV3X3NldF9pbnB1dF9tZXRob2Rf
Y29udGV4dAogd2Via2l0X3dlYl92aWV3X2dldF9pbnB1dF9tZXRob2RfY29udGV4dAogd2Via2l0
X3dlYl92aWV3X2dldF93ZWJzaXRlX3BvbGljaWVzCiB3ZWJraXRfd2ViX3ZpZXdfZ2V0X2lzX3dl
Yl9wcm9jZXNzX3Jlc3BvbnNpdmUKK3dlYmtpdF93ZWJfdmlld190ZXJtaW5hdGVfd2ViX3Byb2Nl
c3MKIAogPFNVQlNFQ1RJT04gV2ViS2l0SmF2YXNjcmlwdFJlc3VsdD4KIFdlYktpdEphdmFzY3Jp
cHRSZXN1bHQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvV2Vi
S2l0V2ViVmlldy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRXZWJW
aWV3LmgKaW5kZXggYjUwYTczN2ZkMjg1MmFiYjA3YmRhMGM4OTIwZWI4NjgyNjUwMDhkNy4uOTgw
MmFmMDI3ZTkwYTg1NWUwNTNkZmJkMGQ2NWFhOGRhMjE5NWMzMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRXZWJWaWV3LmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRXZWJWaWV3LmgKQEAgLTE2Miw2ICsxNjIsNyBA
QCB0eXBlZGVmIGVudW0gewogICogV2ViS2l0V2ViUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uOgog
ICogQFdFQktJVF9XRUJfUFJPQ0VTU19DUkFTSEVEOiB0aGUgd2ViIHByb2Nlc3MgY3Jhc2hlZC4K
ICAqIEBXRUJLSVRfV0VCX1BST0NFU1NfRVhDRUVERURfTUVNT1JZX0xJTUlUOiB0aGUgd2ViIHBy
b2Nlc3MgZXhjZWVkZWQgdGhlIG1lbW9yeSBsaW1pdC4KKyAqIEBXRUJLSVRfV0VCX1BST0NFU1Nf
VEVSTUlOQVRJT05fUkVRVUVTVEVEX0JZX0FQSTogdGhlIHdlYiBwcm9jZXNzIHRlcm1pbmF0aW9u
IHdhcyByZXF1ZXN0ZWQgYnkgYW4gQVBJIGNhbGwuIFNpbmNlOiAyLjM0CiAgKgogICogRW51bSB2
YWx1ZXMgdXNlZCB0byBzcGVjaWZ5IHRoZSByZWFzb24gd2h5IHRoZSB3ZWIgcHJvY2VzcyB0ZXJt
aW5hdGVkIGFibm9ybWFsbHkuCiAgKgpAQCAtMTY5LDcgKzE3MCw4IEBAIHR5cGVkZWYgZW51bSB7
CiAgKi8KIHR5cGVkZWYgZW51bSB7CiAgICAgV0VCS0lUX1dFQl9QUk9DRVNTX0NSQVNIRUQsCi0g
ICAgV0VCS0lUX1dFQl9QUk9DRVNTX0VYQ0VFREVEX01FTU9SWV9MSU1JVAorICAgIFdFQktJVF9X
RUJfUFJPQ0VTU19FWENFRURFRF9NRU1PUllfTElNSVQsCisgICAgV0VCS0lUX1dFQl9QUk9DRVNT
X1RFUk1JTkFUSU9OX1JFUVVFU1RFRF9CWV9BUEkKIH0gV2ViS2l0V2ViUHJvY2Vzc1Rlcm1pbmF0
aW9uUmVhc29uOwogCiAvKioKQEAgLTU2OCw2ICs1NzAsOSBAQCB3ZWJraXRfd2ViX3ZpZXdfZ2V0
X3dlYnNpdGVfcG9saWNpZXMgICAgICAgICAgICAgICAgIChXZWJLaXRXZWJWaWV3CiBXRUJLSVRf
QVBJIGdib29sZWFuCiB3ZWJraXRfd2ViX3ZpZXdfZ2V0X2lzX3dlYl9wcm9jZXNzX3Jlc3BvbnNp
dmUgICAgICAgIChXZWJLaXRXZWJWaWV3ICAgICAgICAgICAgICp3ZWJfdmlldyk7CiAKK1dFQktJ
VF9BUEkgdm9pZAord2Via2l0X3dlYl92aWV3X3Rlcm1pbmF0ZV93ZWJfcHJvY2VzcyAgICAgICAg
ICAgICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAgICAgICAqd2ViX3ZpZXcpOworCiBHX0VORF9E
RUNMUwogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93
cGUvZG9jcy93cGUtMS4wLXNlY3Rpb25zLnR4dCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS93cGUvZG9jcy93cGUtMS4wLXNlY3Rpb25zLnR4dAppbmRleCA5M2JlOTdlYWRkNjc2YzM1NWI1
OWQ5MGE5NGQ5YmNlNzEzMjE4MDQ2Li5hYzNhODE1ZGY5YzE1ZWIzMTcwNDk1ZDBiMTI5MWNiZGY2
N2Y3MTdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL2RvY3Mv
d3BlLTEuMC1zZWN0aW9ucy50eHQKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dw
ZS9kb2NzL3dwZS0xLjAtc2VjdGlvbnMudHh0CkBAIC0yNjMsNiArMjYzLDcgQEAgd2Via2l0X3dl
Yl92aWV3X3NldF9pbnB1dF9tZXRob2RfY29udGV4dAogd2Via2l0X3dlYl92aWV3X2dldF9pbnB1
dF9tZXRob2RfY29udGV4dAogd2Via2l0X3dlYl92aWV3X2dldF93ZWJzaXRlX3BvbGljaWVzCiB3
ZWJraXRfd2ViX3ZpZXdfZ2V0X2lzX3dlYl9wcm9jZXNzX3Jlc3BvbnNpdmUKK3dlYmtpdF93ZWJf
dmlld190ZXJtaW5hdGVfd2ViX3Byb2Nlc3MKIAogPFNVQlNFQ1RJT04gV2ViS2l0SmF2YXNjcmlw
dFJlc3VsdD4KIFdlYktpdEphdmFzY3JpcHRSZXN1bHQKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5n
ZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBlMTNhYjc5M2E1OWU3NTM5ZjFlZjdhN2Q2OWU3
MzkzYWE0ODcwOThkLi5iMTc4NGUxMDhjNmFkM2VhN2JmMmM2ZGZkZmRiMGZjNGQ3ZGY5YmJkIDEw
MDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMjQgQEAKKzIwMjEtMDQtMzAgIE1pZ3VlbCBHb21leiAgPG1hZ29tZXpAaWdhbGlhLmNvbT4K
KworICAgICAgICBbR1RLXVtXUEVdIFByb3Blcmx5IHJlY292ZXIgZnJvbSB1bnJlc3BvbnNpdmUg
d2ViIHByb2Nlc3NlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjI0NTMzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQ2FybG9zIEdhcmNpYSBDYW1wb3Mu
CisKKyAgICAgICAgQWRkIHVuaXQgdGVzdHMgZm9yIHRoZSBuZXcgd2Via2l0X3dlYl92aWV3X3Rl
cm1pbmF0ZV93ZWJfcHJvY2VzcyBHTGliIEFQSSBtZXRob2QuIEFsc28gbW92ZQorICAgICAgICB0
aGUgbWV0aG9kcyB1c2VkIHRvIHdhaXQgZm9yIHJlc3BvbnNpdmVuZXNzIGNoYW5nZXMgdG8gV2Vi
Vmlld1Rlc3QsIGFzIHRoZXkgYXJlIHVzZWQgYnkgbW9yZQorICAgICAgICB0aGFuIGEgc2luZ2xl
IHRlc3QuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFdl
YktpdFdlYlZpZXcuY3BwOgorICAgICAgICAodGVzdFdlYlZpZXdJc1dlYlByb2Nlc3NSZXNwb25z
aXZlKToKKyAgICAgICAgKHRlc3RXZWJWaWV3VGVybWluYXRlV2ViUHJvY2Vzcyk6CisgICAgICAg
ICh0ZXN0V2ViVmlld1Rlcm1pbmF0ZVVucmVzcG9uc2l2ZVdlYlByb2Nlc3MpOgorICAgICAgICAo
YmVmb3JlQWxsKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL2dsaWIvV2ViS2l0R0xpYi9XZWJW
aWV3VGVzdC5jcHA6CisgICAgICAgIChpc1dlYlByb2Nlc3NSZXNwb25zaXZlQ2hhbmdlZCk6Cisg
ICAgICAgIChXZWJWaWV3VGVzdDo6d2FpdFVudGlsSXNXZWJQcm9jZXNzUmVzcG9uc2l2ZUNoYW5n
ZWQpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvZ2xpYi9XZWJLaXRHTGliL1dlYlZpZXdUZXN0
Lmg6CisKIDIwMjEtMDQtMjkgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAg
ICAgIEV4dGVuZCBTb3J0ZWRBcnJheU1hcCBmdXJ0aGVyIHRvIHdvcmsgb24gY2FzZS1mb2xkZWQg
c3RyaW5ncywgdXNlIGluIE1JTUVUeXBlUmVnaXN0cnkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0V2ViS2l0V2ViVmlldy5jcHAgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFdlYktpdFdlYlZpZXcuY3BwCmluZGV4
IGIyMzc1MTM2MDRjYzhkNDIyOGVkYmY4OTEwNmI5NTZiNDQ2MGVjODMuLjk2OGYzN2FkZGU2N2Fl
MWY3NmMxNDdjZjdhNGQ1YWJhMjRmOWIzZTggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0V2ViS2l0V2ViVmlldy5jcHAKKysrIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RXZWJLaXRXZWJWaWV3LmNwcApAQCAtMTE3
NywyNCArMTE3Nyw3IEBAIHN0YXRpYyB2b2lkIHRlc3RXZWJWaWV3QXV0b3BsYXlQb2xpY3koV2Vi
Vmlld1Rlc3QqIHRlc3QsIGdjb25zdHBvaW50ZXIpCiAgICAgZ19hc3NlcnRfY21waW50KHdlYmtp
dF93ZWJzaXRlX3BvbGljaWVzX2dldF9hdXRvcGxheV9wb2xpY3kocG9saWNpZXMpLCA9PSwgV0VC
S0lUX0FVVE9QTEFZX0FMTE9XX1dJVEhPVVRfU09VTkQpOwogfQogCi1jbGFzcyBXZWJWaWV3SXNX
ZWJQcm9jZXNzUmVzcG9uc2l2ZVRlc3Q6IHB1YmxpYyBXZWJWaWV3VGVzdCB7Ci1wdWJsaWM6Ci0g
ICAgTUFLRV9HTElCX1RFU1RfRklYVFVSRShXZWJWaWV3SXNXZWJQcm9jZXNzUmVzcG9uc2l2ZVRl
c3QpOwotCi0gICAgc3RhdGljIHZvaWQgaXNXZWJQcm9jZXNzUmVzcG9uc2l2ZUNoYW5nZWQoV2Vi
S2l0V2ViVmlldyogdmlldywgR1BhcmFtU3BlYyosIFdlYlZpZXdJc1dlYlByb2Nlc3NSZXNwb25z
aXZlVGVzdCogdGVzdCkKLSAgICB7Ci0gICAgICAgIGdfc2lnbmFsX2hhbmRsZXJzX2Rpc2Nvbm5l
Y3RfYnlfZnVuYyh0ZXN0LT5tX3dlYlZpZXcsIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KGlzV2Vi
UHJvY2Vzc1Jlc3BvbnNpdmVDaGFuZ2VkKSwgdGVzdCk7Ci0gICAgICAgIGdfbWFpbl9sb29wX3F1
aXQodGVzdC0+bV9tYWluTG9vcCk7Ci0gICAgfQotCi0gICAgdm9pZCB3YWl0VW50aWxJc1dlYlBy
b2Nlc3NSZXNwb25zaXZlQ2hhbmdlZCgpCi0gICAgewotICAgICAgICBnX3NpZ25hbF9jb25uZWN0
KG1fd2ViVmlldywgIm5vdGlmeTo6aXMtd2ViLXByb2Nlc3MtcmVzcG9uc2l2ZSIsIEdfQ0FMTEJB
Q0soaXNXZWJQcm9jZXNzUmVzcG9uc2l2ZUNoYW5nZWQpLCB0aGlzKTsKLSAgICAgICAgZ19tYWlu
X2xvb3BfcnVuKG1fbWFpbkxvb3ApOwotICAgIH0KLX07Ci0KLXN0YXRpYyB2b2lkIHRlc3RXZWJW
aWV3SXNXZWJQcm9jZXNzUmVzcG9uc2l2ZShXZWJWaWV3SXNXZWJQcm9jZXNzUmVzcG9uc2l2ZVRl
c3QqIHRlc3QsIGdjb25zdHBvaW50ZXIpCitzdGF0aWMgdm9pZCB0ZXN0V2ViVmlld0lzV2ViUHJv
Y2Vzc1Jlc3BvbnNpdmUoV2ViVmlld1Rlc3QqIHRlc3QsIGdjb25zdHBvaW50ZXIpCiB7CiAgICAg
c3RhdGljIGNvbnN0IGNoYXIqIGhhbmdIVE1MID0KICAgICAgICAgIjxodG1sPiIKQEAgLTE1NjEs
NiArMTU0NCw3MCBAQCBzdGF0aWMgdm9pZCB0ZXN0V2ViVmlld0V4dGVybmFsQXVkaW9SZW5kZXJp
bmcoQXVkaW9SZW5kZXJpbmdXZWJWaWV3VGVzdCogdGVzdCwgZwogfQogI2VuZGlmCiAKK2NsYXNz
IFdlYlZpZXdUZXJtaW5hdGVXZWJQcm9jZXNzVGVzdDogcHVibGljIFdlYlZpZXdUZXN0IHsKK3B1
YmxpYzoKKyAgICBNQUtFX0dMSUJfVEVTVF9GSVhUVVJFKFdlYlZpZXdUZXJtaW5hdGVXZWJQcm9j
ZXNzVGVzdCk7CisKKyAgICBzdGF0aWMgdm9pZCB3ZWJQcm9jZXNzVGVybWluYXRlZENhbGxiYWNr
KFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIFdlYktpdFdlYlByb2Nlc3NUZXJtaW5hdGlvblJlYXNv
biByZWFzb24sIFdlYlZpZXdUZXJtaW5hdGVXZWJQcm9jZXNzVGVzdCogdGVzdCkKKyAgICB7Cisg
ICAgICAgIHRlc3QtPm1fdGVybWluYXRpb25SZWFzb24gPSByZWFzb247CisgICAgfQorCisgICAg
V2ViVmlld1Rlcm1pbmF0ZVdlYlByb2Nlc3NUZXN0KCkKKyAgICB7CisgICAgICAgIGdfc2lnbmFs
X2Nvbm5lY3RfYWZ0ZXIobV93ZWJWaWV3LCAid2ViLXByb2Nlc3MtdGVybWluYXRlZCIsIEdfQ0FM
TEJBQ0soV2ViVmlld1Rlcm1pbmF0ZVdlYlByb2Nlc3NUZXN0Ojp3ZWJQcm9jZXNzVGVybWluYXRl
ZENhbGxiYWNrKSwgdGhpcyk7CisgICAgfQorCisgICAgfldlYlZpZXdUZXJtaW5hdGVXZWJQcm9j
ZXNzVGVzdCgpCisgICAgeworICAgICAgICBnX3NpZ25hbF9oYW5kbGVyc19kaXNjb25uZWN0X2J5
X2RhdGEobV93ZWJWaWV3LCB0aGlzKTsKKyAgICB9CisKKyAgICBXZWJLaXRXZWJQcm9jZXNzVGVy
bWluYXRpb25SZWFzb24gbV90ZXJtaW5hdGlvblJlYXNvbiB7IFdFQktJVF9XRUJfUFJPQ0VTU19D
UkFTSEVEIH07Cit9OworCitzdGF0aWMgdm9pZCB0ZXN0V2ViVmlld1Rlcm1pbmF0ZVdlYlByb2Nl
c3MoV2ViVmlld1Rlcm1pbmF0ZVdlYlByb2Nlc3NUZXN0KiB0ZXN0LCBnY29uc3Rwb2ludGVyKQor
eworICAgIHRlc3QtPmxvYWRIdG1sKCI8aHRtbD48L2h0bWw+IiwgbnVsbHB0cik7CisgICAgdGVz
dC0+d2FpdFVudGlsTG9hZEZpbmlzaGVkKCk7CisgICAgdGVzdC0+bV9leHBlY3RlZFdlYlByb2Nl
c3NDcmFzaCA9IHRydWU7CisgICAgd2Via2l0X3dlYl92aWV3X3Rlcm1pbmF0ZV93ZWJfcHJvY2Vz
cyh0ZXN0LT5tX3dlYlZpZXcpOworICAgIGdfYXNzZXJ0X2NtcHVpbnQodGVzdC0+bV90ZXJtaW5h
dGlvblJlYXNvbiwgPT0sIFdFQktJVF9XRUJfUFJPQ0VTU19URVJNSU5BVElPTl9SRVFVRVNURURf
QllfQVBJKTsKKyAgICBnX2Fzc2VydF90cnVlKHdlYmtpdF93ZWJfdmlld19nZXRfaXNfd2ViX3By
b2Nlc3NfcmVzcG9uc2l2ZSh0ZXN0LT5tX3dlYlZpZXcpKTsKK30KKworc3RhdGljIHZvaWQgdGVz
dFdlYlZpZXdUZXJtaW5hdGVVbnJlc3BvbnNpdmVXZWJQcm9jZXNzKFdlYlZpZXdUZXJtaW5hdGVX
ZWJQcm9jZXNzVGVzdCogdGVzdCwgZ2NvbnN0cG9pbnRlcikKK3sKKyAgICBzdGF0aWMgY29uc3Qg
Y2hhciogaGFuZ0hUTUwgPQorICAgICAgICAiPGh0bWw+IgorICAgICAgICAiIDxib2R5PiIKKyAg
ICAgICAgIiAgPHNjcmlwdD4iCisgICAgICAgICIgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyIK
KyAgICAgICAgIiAgICAgd2hpbGUodHJ1ZSkgeyB9IgorICAgICAgICAiICAgIH0sIDUwMCk7Igor
ICAgICAgICAiICA8L3NjcmlwdD4iCisgICAgICAgICIgPC9ib2R5PiIKKyAgICAgICAgIjwvaHRt
bD4iOworCisgICAgdGVzdC0+bG9hZEh0bWwoaGFuZ0hUTUwsIG51bGxwdHIpOworICAgIHRlc3Qt
PndhaXRVbnRpbExvYWRGaW5pc2hlZCgpOworICAgIGdfYXNzZXJ0X3RydWUod2Via2l0X3dlYl92
aWV3X2dldF9pc193ZWJfcHJvY2Vzc19yZXNwb25zaXZlKHRlc3QtPm1fd2ViVmlldykpOworICAg
IC8vIFdhaXQgMSBzZWNvbmQsIHNvIHRoZSBqcyB3aGlsZSBsb29wIGtpY2tzIGluIGFuZCBibG9j
a3MgdGhlIHdlYiBwcm9jZXNzLCBhbmQgdHJ5IHRvIGxvYWQgYSBuZXcgcGFnZS4KKyAgICAvLyBB
cyB0aGUgd2ViIHByb2Nlc3MgaXMgYnVzeSB0aGlzIHdvbid0IHdvcmssIGFuZCBhZnRlciAzIHNl
Y29uZHMgdGhlIHdlYiBwcm9jZXNzIHdpbGwgYmUgbWFya2VkCisgICAgLy8gYXMgdW5yZXNwb25z
aXZlLgorICAgIHRlc3QtPndhaXQoMSk7CisgICAgdGVzdC0+bG9hZEh0bWwoIjxodG1sPjwvaHRt
bD4iLCBudWxscHRyKTsKKyAgICB0ZXN0LT53YWl0VW50aWxJc1dlYlByb2Nlc3NSZXNwb25zaXZl
Q2hhbmdlZCgpOworICAgIGdfYXNzZXJ0X2ZhbHNlKHdlYmtpdF93ZWJfdmlld19nZXRfaXNfd2Vi
X3Byb2Nlc3NfcmVzcG9uc2l2ZSh0ZXN0LT5tX3dlYlZpZXcpKTsKKworICAgIC8vIE5vdyB0aGF0
IHRoZSBwcm9jZXNzIGlzIHVucmVzcG9uc2l2ZSwgdGVybWluYXRlIGl0LgorICAgIHRlc3QtPm1f
ZXhwZWN0ZWRXZWJQcm9jZXNzQ3Jhc2ggPSB0cnVlOworICAgIHRlc3QtPm1fdGVybWluYXRpb25S
ZWFzb24gPSBXRUJLSVRfV0VCX1BST0NFU1NfQ1JBU0hFRDsKKyAgICB3ZWJraXRfd2ViX3ZpZXdf
dGVybWluYXRlX3dlYl9wcm9jZXNzKHRlc3QtPm1fd2ViVmlldyk7CisgICAgZ19hc3NlcnRfY21w
dWludCh0ZXN0LT5tX3Rlcm1pbmF0aW9uUmVhc29uLCA9PSwgV0VCS0lUX1dFQl9QUk9DRVNTX1RF
Uk1JTkFUSU9OX1JFUVVFU1RFRF9CWV9BUEkpOworICAgIGdfYXNzZXJ0X3RydWUod2Via2l0X3dl
Yl92aWV3X2dldF9pc193ZWJfcHJvY2Vzc19yZXNwb25zaXZlKHRlc3QtPm1fd2ViVmlldykpOwor
fQorCiAjaWYgVVNFKFNPVVAyKQogc3RhdGljIHZvaWQgc2VydmVyQ2FsbGJhY2soU291cFNlcnZl
ciogc2VydmVyLCBTb3VwTWVzc2FnZSogbWVzc2FnZSwgY29uc3QgY2hhciogcGF0aCwgR0hhc2hU
YWJsZSosIFNvdXBDbGllbnRDb250ZXh0KiwgZ3BvaW50ZXIpCiAjZWxzZQpAQCAtMTYyOCw3ICsx
Njc1LDkgQEAgdm9pZCBiZWZvcmVBbGwoKQogI2lmIFBMQVRGT1JNKFdQRSkgJiYgVVNFKFdQRUJB
Q0tFTkRfRkRPX0FVRElPX0VYVEVOU0lPTikKICAgICBBdWRpb1JlbmRlcmluZ1dlYlZpZXdUZXN0
OjphZGQoIldlYktpdFdlYlZpZXciLCAiZXh0ZXJuYWwtYXVkaW8tcmVuZGVyaW5nIiwgdGVzdFdl
YlZpZXdFeHRlcm5hbEF1ZGlvUmVuZGVyaW5nKTsKICNlbmRpZgotICAgIFdlYlZpZXdJc1dlYlBy
b2Nlc3NSZXNwb25zaXZlVGVzdDo6YWRkKCJXZWJLaXRXZWJWaWV3IiwgImlzLXdlYi1wcm9jZXNz
LXJlc3BvbnNpdmUiLCB0ZXN0V2ViVmlld0lzV2ViUHJvY2Vzc1Jlc3BvbnNpdmUpOworICAgIFdl
YlZpZXdUZXN0OjphZGQoIldlYktpdFdlYlZpZXciLCAiaXMtd2ViLXByb2Nlc3MtcmVzcG9uc2l2
ZSIsIHRlc3RXZWJWaWV3SXNXZWJQcm9jZXNzUmVzcG9uc2l2ZSk7CisgICAgV2ViVmlld1Rlcm1p
bmF0ZVdlYlByb2Nlc3NUZXN0OjphZGQoIldlYktpdFdlYlZpZXciLCAidGVybWluYXRlLXdlYi1w
cm9jZXNzIiwgdGVzdFdlYlZpZXdUZXJtaW5hdGVXZWJQcm9jZXNzKTsKKyAgICBXZWJWaWV3VGVy
bWluYXRlV2ViUHJvY2Vzc1Rlc3Q6OmFkZCgiV2ViS2l0V2ViVmlldyIsICJ0ZXJtaW5hdGUtdW5y
ZXNwb25zaXZlLXdlYi1wcm9jZXNzIiwgdGVzdFdlYlZpZXdUZXJtaW5hdGVVbnJlc3BvbnNpdmVX
ZWJQcm9jZXNzKTsKIH0KIAogdm9pZCBhZnRlckFsbCgpCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL2dsaWIvV2ViS2l0R0xpYi9XZWJWaWV3VGVzdC5jcHAgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL2dsaWIvV2ViS2l0R0xpYi9XZWJWaWV3VGVzdC5jcHAKaW5kZXggMzdjNjlkYjc0ZTll
MWE2NDBlOTIyMmRlNDE5MTkyMDMzNmY0MDFiYy4uODI2NGViYWFkNTU3ZmQwZjlhMWMxYWE3NWQ5
MjRhYzJjYTI5MGIxZCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9nbGliL1dlYktp
dEdMaWIvV2ViVmlld1Rlc3QuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvZ2xpYi9XZWJL
aXRHTGliL1dlYlZpZXdUZXN0LmNwcApAQCAtMjIzLDYgKzIyMywxOCBAQCB2b2lkIFdlYlZpZXdU
ZXN0Ojp3YWl0VW50aWxUaXRsZUNoYW5nZWQoKQogICAgIHdhaXRVbnRpbFRpdGxlQ2hhbmdlZFRv
KDApOwogfQogCitzdGF0aWMgdm9pZCBpc1dlYlByb2Nlc3NSZXNwb25zaXZlQ2hhbmdlZChXZWJL
aXRXZWJWaWV3KiB3ZWJWaWV3LCBHUGFyYW1TcGVjKiwgV2ViVmlld1Rlc3QqIHRlc3QpCit7Cisg
ICAgZ19zaWduYWxfaGFuZGxlcnNfZGlzY29ubmVjdF9ieV9mdW5jKHdlYlZpZXcsIHJlaW50ZXJw
cmV0X2Nhc3Q8dm9pZCo+KGlzV2ViUHJvY2Vzc1Jlc3BvbnNpdmVDaGFuZ2VkKSwgdGVzdCk7Cisg
ICAgZ19tYWluX2xvb3BfcXVpdCh0ZXN0LT5tX21haW5Mb29wKTsKK30KKwordm9pZCBXZWJWaWV3
VGVzdDo6d2FpdFVudGlsSXNXZWJQcm9jZXNzUmVzcG9uc2l2ZUNoYW5nZWQoKQoreworICAgIGdf
c2lnbmFsX2Nvbm5lY3QobV93ZWJWaWV3LCAibm90aWZ5Ojppcy13ZWItcHJvY2Vzcy1yZXNwb25z
aXZlIiwgR19DQUxMQkFDSyhpc1dlYlByb2Nlc3NSZXNwb25zaXZlQ2hhbmdlZCksIHRoaXMpOwor
ICAgIGdfbWFpbl9sb29wX3J1bihtX21haW5Mb29wKTsKK30KKwogdm9pZCBXZWJWaWV3VGVzdDo6
c2VsZWN0QWxsKCkKIHsKICAgICB3ZWJraXRfd2ViX3ZpZXdfZXhlY3V0ZV9lZGl0aW5nX2NvbW1h
bmQobV93ZWJWaWV3LCAiU2VsZWN0QWxsIik7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL2dsaWIvV2ViS2l0R0xpYi9XZWJWaWV3VGVzdC5oIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9n
bGliL1dlYktpdEdMaWIvV2ViVmlld1Rlc3QuaAppbmRleCA3MGQ3OTM3YThhYjVlYmExZWUwNDE0
ZmU1NzIxZTQ0YzE3ZDNlOTI1Li41YmZlNzgzZDIyOTU1NTliMTI3NDMzOGJmZDUxNmM4OWQ0YWRl
MjNiIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL2dsaWIvV2ViS2l0R0xpYi9XZWJW
aWV3VGVzdC5oCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvZ2xpYi9XZWJLaXRHTGliL1dlYlZp
ZXdUZXN0LmgKQEAgLTUzLDYgKzUzLDcgQEAgcHVibGljOgogICAgIHZvaWQgd2FpdFVudGlsVGl0
bGVDaGFuZ2VkVG8oY29uc3QgY2hhciogZXhwZWN0ZWRUaXRsZSk7CiAgICAgdm9pZCB3YWl0VW50
aWxUaXRsZUNoYW5nZWQoKTsKICAgICB2b2lkIHdhaXRVbnRpbEZpbGVDaGFuZ2VkKGNvbnN0IGNo
YXIqLCBHRmlsZU1vbml0b3JFdmVudCk7CisgICAgdm9pZCB3YWl0VW50aWxJc1dlYlByb2Nlc3NS
ZXNwb25zaXZlQ2hhbmdlZCgpOwogICAgIHZvaWQgcmVzaXplVmlldyhpbnQgd2lkdGgsIGludCBo
ZWlnaHQpOwogICAgIHZvaWQgaGlkZVZpZXcoKTsKICAgICB2b2lkIHNlbGVjdEFsbCgpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>427419</attachid>
            <date>2021-04-30 08:07:25 -0700</date>
            <delta_ts>2021-04-30 11:58:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224533-20210430170724.patch</filename>
            <type>text/plain</type>
            <size>16039</size>
            <attacher name="Miguel Gomez">magomez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc2ODM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGU0NGU2MTRkOTEyNDNhNjIy
YzQ2ODAyNmRkYTU3MWY2OWYwZTRkMmIuLjc5YmZmOTc4ODMxM2FhMGY3N2MxMWEyMzQ4Yzk5OGFl
OGJjMzZlMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMjEtMDQtMzAgIE1pZ3VlbCBH
b21leiAgPG1hZ29tZXpAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLXVtXUEVdIFByb3Blcmx5
IHJlY292ZXIgZnJvbSB1bnJlc3BvbnNpdmUgd2ViIHByb2Nlc3NlcworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI0NTMzCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgQ2FybG9zIEdhcmNpYSBDYW1wb3MuCisKKyAgICAgICAgQWRkIGEgbmV3IG1ldGhvZCB0
byB0aGUgR0xpYiBBUEkgdG8gdGVybWluYXRlIHRoZSB3ZWIgcHJvY2VzcyBhc3NvY2lhdGVkIHRv
IGEKKyAgICAgICAgV2ViS2l0V2ViVmlldy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ2xp
Yi9XZWJLaXROYXZpZ2F0aW9uQ2xpZW50LmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2ds
aWIvV2ViS2l0V2ViVmlldy5jcHA6CisgICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfdGVybWluYXRl
X3dlYl9wcm9jZXNzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLTQuMC1zZWN0
aW9ucy50eHQ6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0V2ViVmlldy5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvd3BlL2RvY3Mvd3BlLTEuMC1zZWN0aW9ucy50eHQ6CisK
IDIwMjEtMDQtMjkgIE1lZ2FuIEdhcmRuZXIgIDxtZWdhbl9nYXJkbmVyQGFwcGxlLmNvbT4KIAog
ICAgICAgICBSZW1vdmUgc29tZSB1bm5lZWRlZCBjb2RlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0TmF2aWdhdGlvbkNsaWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXROYXZpZ2F0aW9uQ2xpZW50LmNwcApp
bmRleCA0MzExZDA4NDhlODEwNzU0NWQzNDM3ZjM4NDkxODI0ZmZjNGE1ZDdjLi44NmMxY2E3OGM0
YzI3NWM5OTUzOTBmNWZiYjQ4MTczZDMzOWQ0Y2NhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXROYXZpZ2F0aW9uQ2xpZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXROYXZpZ2F0aW9uQ2xpZW50LmNwcApA
QCAtMTE1LDggKzExNSwxMCBAQCBwcml2YXRlOgogICAgICAgICBjYXNlIFByb2Nlc3NUZXJtaW5h
dGlvblJlYXNvbjo6RXhjZWVkZWRNZW1vcnlMaW1pdDoKICAgICAgICAgICAgIHdlYmtpdFdlYlZp
ZXdXZWJQcm9jZXNzVGVybWluYXRlZChtX3dlYlZpZXcsIFdFQktJVF9XRUJfUFJPQ0VTU19FWENF
RURFRF9NRU1PUllfTElNSVQpOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIGNh
c2UgUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uOjpFeGNlZWRlZENQVUxpbWl0OgogICAgICAgICBj
YXNlIFByb2Nlc3NUZXJtaW5hdGlvblJlYXNvbjo6UmVxdWVzdGVkQnlDbGllbnQ6CisgICAgICAg
ICAgICB3ZWJraXRXZWJWaWV3V2ViUHJvY2Vzc1Rlcm1pbmF0ZWQobV93ZWJWaWV3LCBXRUJLSVRf
V0VCX1BST0NFU1NfVEVSTUlOQVRFRF9CWV9BUEkpOworICAgICAgICAgICAgcmV0dXJuIHRydWU7
CisgICAgICAgIGNhc2UgUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uOjpFeGNlZWRlZENQVUxpbWl0
OgogICAgICAgICBjYXNlIFByb2Nlc3NUZXJtaW5hdGlvblJlYXNvbjo6UmVxdWVzdGVkQnlOZXR3
b3JrUHJvY2VzczoKICAgICAgICAgY2FzZSBQcm9jZXNzVGVybWluYXRpb25SZWFzb246Ok5hdmln
YXRpb25Td2FwOgogICAgICAgICBjYXNlIFByb2Nlc3NUZXJtaW5hdGlvblJlYXNvbjo6UmVxdWVz
dGVkQnlHUFVQcm9jZXNzOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L2dsaWIvV2ViS2l0V2ViVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xp
Yi9XZWJLaXRXZWJWaWV3LmNwcAppbmRleCBkNDE5YmQ0ZThjMTI5Mjg1NWZkNzk2ZTUyZWJhNzQ2
OTViYTljMmIxLi5kNzhjMDY4YWUxOTVjN2U0NmYyOTlkNTMwNzQwNTQ4NGMxZGI3YWQ0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJWaWV3LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJWaWV3LmNw
cApAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgIkFQSVNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5o
IgogI2luY2x1ZGUgIkRhdGFSZWZlcmVuY2UuaCIKICNpbmNsdWRlICJJbWFnZU9wdGlvbnMuaCIK
KyNpbmNsdWRlICJQcm92aXNpb25hbFBhZ2VQcm94eS5oIgogI2luY2x1ZGUgIldlYkNlcnRpZmlj
YXRlSW5mby5oIgogI2luY2x1ZGUgIldlYkNvbnRleHRNZW51SXRlbS5oIgogI2luY2x1ZGUgIldl
YkNvbnRleHRNZW51SXRlbURhdGEuaCIKQEAgLTQ3NTIsMyArNDc1MywzMSBAQCBnYm9vbGVhbiB3
ZWJraXRfd2ViX3ZpZXdfZ2V0X2lzX3dlYl9wcm9jZXNzX3Jlc3BvbnNpdmUoV2ViS2l0V2ViVmll
dyogd2ViVmlldykKIAogICAgIHJldHVybiB3ZWJWaWV3LT5wcml2LT5pc1dlYlByb2Nlc3NSZXNw
b25zaXZlOwogfQorCisvKioKKyAqIHdlYmtpdF93ZWJfdmlld190ZXJtaW5hdGVfd2ViX3Byb2Nl
c3M6CisgKiBAd2ViX3ZpZXc6IGEgI1dlYktpdFdlYlZpZXcKKyAqCisgKiBUZXJtaW5hdGVzIHRo
ZSB3ZWIgcHJvY2VzcyBhc3NvY2lhdGVkIHRvIEB3ZWJfdmlldy4gV2hlbiB0aGUgd2ViIHByb2Nl
c3MgZ2V0cyB0ZXJtaW5hdGVkCisgKiB1c2luZyB0aGlzIG1ldGhvZCwgdGhlICNXZWJLaXRXZWJW
aWV3Ojp3ZWItcHJvY2Vzcy10ZXJtaW5hdGVkIHNpZ25hbCBpcyBlbWl0dGVkIHdpdGgKKyAqICVX
RUJLSVRfV0VCX1BST0NFU1NfVEVSTUlOQVRFRF9CWV9BUEkgYXMgdGhlIHJlYXNvbiBmb3IgdGVy
bWluYXRpb24uCisgKgorICogU2luY2U6IDIuMzQKKyAqLwordm9pZCB3ZWJraXRfd2ViX3ZpZXdf
dGVybWluYXRlX3dlYl9wcm9jZXNzKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcpCit7CisgICAgZ19y
ZXR1cm5faWZfZmFpbChXRUJLSVRfSVNfV0VCX1ZJRVcod2ViVmlldykpOworCisgICAgYXV0byYg
cGFnZSA9IGdldFBhZ2Uod2ViVmlldyk7CisKKyAgICBSZWY8V2ViS2l0OjpXZWJQcm9jZXNzUHJv
eHk+IHByb3RlY3RlZFByb2Nlc3NQcm94eShwYWdlLnByb2Nlc3MoKSk7CisgICAgcHJvdGVjdGVk
UHJvY2Vzc1Byb3h5LT5yZXF1ZXN0VGVybWluYXRpb24oV2ViS2l0OjpQcm9jZXNzVGVybWluYXRp
b25SZWFzb246OlJlcXVlc3RlZEJ5Q2xpZW50KTsKKworICAgIGlmIChhdXRvKiBwcm92aXNpb25h
bFBhZ2VQcm94eSA9IHBhZ2UucHJvdmlzaW9uYWxQYWdlUHJveHkoKSkgeworICAgICAgICBSZWY8
V2ViS2l0OjpXZWJQcm9jZXNzUHJveHk+IHByb3RlY3RlZFByb2Nlc3NQcm94eShwcm92aXNpb25h
bFBhZ2VQcm94eS0+cHJvY2VzcygpKTsKKyAgICAgICAgcHJvdGVjdGVkUHJvY2Vzc1Byb3h5LT5y
ZXF1ZXN0VGVybWluYXRpb24oV2ViS2l0OjpQcm9jZXNzVGVybWluYXRpb25SZWFzb246OlJlcXVl
c3RlZEJ5Q2xpZW50KTsKKyAgICB9CisKKyAgICAvLyBSZXNldCB0aGUgc3RhdGUgb2YgdGhlIHJl
c3BvbnNpdmVuZXNzIHByb3BlcnR5LgorICAgIHdlYmtpdFdlYlZpZXdTZXRJc1dlYlByb2Nlc3NS
ZXNwb25zaXZlKHdlYlZpZXcsIHRydWUpOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcuaAppbmRleCBmMWFmNDlhYmVhMWYwN2I4ZTg2ZTY1MDRj
NjJkYjlhZmRiYWVlM2YxLi4zYzhkMTZiMDYwNDA5OTVkZTVhNDBkZTUzYjBhZGIxNzliMzM2ZTZm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZp
ZXcuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcu
aApAQCAtMTkzLDYgKzE5Myw3IEBAIHR5cGVkZWYgZW51bSB7CiAgKiBXZWJLaXRXZWJQcm9jZXNz
VGVybWluYXRpb25SZWFzb246CiAgKiBAV0VCS0lUX1dFQl9QUk9DRVNTX0NSQVNIRUQ6IHRoZSB3
ZWIgcHJvY2VzcyBjcmFzaGVkLgogICogQFdFQktJVF9XRUJfUFJPQ0VTU19FWENFRURFRF9NRU1P
UllfTElNSVQ6IHRoZSB3ZWIgcHJvY2VzcyBleGNlZWRlZCB0aGUgbWVtb3J5IGxpbWl0LgorICog
QFdFQktJVF9XRUJfUFJPQ0VTU19URVJNSU5BVEVEX0JZX0FQSTogdGhlIHdlYiBwcm9jZXNzIHRl
cm1pbmF0aW9uIHdhcyByZXF1ZXN0ZWQgYnkgYW4gQVBJIGNhbGwuIFNpbmNlOiAyLjM0CiAgKgog
ICogRW51bSB2YWx1ZXMgdXNlZCB0byBzcGVjaWZ5IHRoZSByZWFzb24gd2h5IHRoZSB3ZWIgcHJv
Y2VzcyB0ZXJtaW5hdGVkIGFibm9ybWFsbHkuCiAgKgpAQCAtMjAwLDcgKzIwMSw4IEBAIHR5cGVk
ZWYgZW51bSB7CiAgKi8KIHR5cGVkZWYgZW51bSB7CiAgICAgV0VCS0lUX1dFQl9QUk9DRVNTX0NS
QVNIRUQsCi0gICAgV0VCS0lUX1dFQl9QUk9DRVNTX0VYQ0VFREVEX01FTU9SWV9MSU1JVAorICAg
IFdFQktJVF9XRUJfUFJPQ0VTU19FWENFRURFRF9NRU1PUllfTElNSVQsCisgICAgV0VCS0lUX1dF
Ql9QUk9DRVNTX1RFUk1JTkFURURfQllfQVBJCiB9IFdlYktpdFdlYlByb2Nlc3NUZXJtaW5hdGlv
blJlYXNvbjsKIAogc3RydWN0IF9XZWJLaXRXZWJWaWV3IHsKQEAgLTU5Miw2ICs1OTQsOSBAQCB3
ZWJraXRfd2ViX3ZpZXdfZ2V0X3dlYnNpdGVfcG9saWNpZXMgICAgICAgICAgICAgICAgIChXZWJL
aXRXZWJWaWV3CiBXRUJLSVRfQVBJIGdib29sZWFuCiB3ZWJraXRfd2ViX3ZpZXdfZ2V0X2lzX3dl
Yl9wcm9jZXNzX3Jlc3BvbnNpdmUgICAgICAgIChXZWJLaXRXZWJWaWV3ICAgICAgICAgICAgICp3
ZWJfdmlldyk7CiAKK1dFQktJVF9BUEkgdm9pZAord2Via2l0X3dlYl92aWV3X3Rlcm1pbmF0ZV93
ZWJfcHJvY2VzcyAgICAgICAgICAgICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAgICAgICAqd2Vi
X3ZpZXcpOworCiBHX0VORF9ERUNMUwogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLTQuMC1zZWN0aW9ucy50eHQgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay00LjAtc2VjdGlv
bnMudHh0CmluZGV4IGQ2YzVkZDQxODA2YmExOWIzMTkzZDZiYzYzZWE3MjQ0NmI4MWQxMWUuLmFj
MTUyMjVkYTFjOTA1YjdhZjkzZjAwZmU2MTEwODlmYmQ0MDI5ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLTQuMC1zZWN0aW9ucy50
eHQKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGst
NC4wLXNlY3Rpb25zLnR4dApAQCAtMjkxLDYgKzI5MSw3IEBAIHdlYmtpdF93ZWJfdmlld19zZXRf
aW5wdXRfbWV0aG9kX2NvbnRleHQKIHdlYmtpdF93ZWJfdmlld19nZXRfaW5wdXRfbWV0aG9kX2Nv
bnRleHQKIHdlYmtpdF93ZWJfdmlld19nZXRfd2Vic2l0ZV9wb2xpY2llcwogd2Via2l0X3dlYl92
aWV3X2dldF9pc193ZWJfcHJvY2Vzc19yZXNwb25zaXZlCit3ZWJraXRfd2ViX3ZpZXdfdGVybWlu
YXRlX3dlYl9wcm9jZXNzCiAKIDxTVUJTRUNUSU9OIFdlYktpdEphdmFzY3JpcHRSZXN1bHQ+CiBX
ZWJLaXRKYXZhc2NyaXB0UmVzdWx0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvd3BlL1dlYktpdFdlYlZpZXcuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93
cGUvV2ViS2l0V2ViVmlldy5oCmluZGV4IGI1MGE3MzdmZDI4NTJhYmIwN2JkYTBjODkyMGViODY4
MjY1MDA4ZDcuLjVmNzk3NjQ0YTMyNWM1YmUwYWM0MTU3NTVjMmFlY2NlZmU5NzI2MzIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0V2ViVmlldy5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0V2ViVmlldy5oCkBAIC0x
NjIsNiArMTYyLDcgQEAgdHlwZWRlZiBlbnVtIHsKICAqIFdlYktpdFdlYlByb2Nlc3NUZXJtaW5h
dGlvblJlYXNvbjoKICAqIEBXRUJLSVRfV0VCX1BST0NFU1NfQ1JBU0hFRDogdGhlIHdlYiBwcm9j
ZXNzIGNyYXNoZWQuCiAgKiBAV0VCS0lUX1dFQl9QUk9DRVNTX0VYQ0VFREVEX01FTU9SWV9MSU1J
VDogdGhlIHdlYiBwcm9jZXNzIGV4Y2VlZGVkIHRoZSBtZW1vcnkgbGltaXQuCisgKiBAV0VCS0lU
X1dFQl9QUk9DRVNTX1RFUk1JTkFURURfQllfQVBJOiB0aGUgd2ViIHByb2Nlc3MgdGVybWluYXRp
b24gd2FzIHJlcXVlc3RlZCBieSBhbiBBUEkgY2FsbC4gU2luY2U6IDIuMzQKICAqCiAgKiBFbnVt
IHZhbHVlcyB1c2VkIHRvIHNwZWNpZnkgdGhlIHJlYXNvbiB3aHkgdGhlIHdlYiBwcm9jZXNzIHRl
cm1pbmF0ZWQgYWJub3JtYWxseS4KICAqCkBAIC0xNjksNyArMTcwLDggQEAgdHlwZWRlZiBlbnVt
IHsKICAqLwogdHlwZWRlZiBlbnVtIHsKICAgICBXRUJLSVRfV0VCX1BST0NFU1NfQ1JBU0hFRCwK
LSAgICBXRUJLSVRfV0VCX1BST0NFU1NfRVhDRUVERURfTUVNT1JZX0xJTUlUCisgICAgV0VCS0lU
X1dFQl9QUk9DRVNTX0VYQ0VFREVEX01FTU9SWV9MSU1JVCwKKyAgICBXRUJLSVRfV0VCX1BST0NF
U1NfVEVSTUlOQVRFRF9CWV9BUEkKIH0gV2ViS2l0V2ViUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29u
OwogCiAvKioKQEAgLTU2OCw2ICs1NzAsOSBAQCB3ZWJraXRfd2ViX3ZpZXdfZ2V0X3dlYnNpdGVf
cG9saWNpZXMgICAgICAgICAgICAgICAgIChXZWJLaXRXZWJWaWV3CiBXRUJLSVRfQVBJIGdib29s
ZWFuCiB3ZWJraXRfd2ViX3ZpZXdfZ2V0X2lzX3dlYl9wcm9jZXNzX3Jlc3BvbnNpdmUgICAgICAg
IChXZWJLaXRXZWJWaWV3ICAgICAgICAgICAgICp3ZWJfdmlldyk7CiAKK1dFQktJVF9BUEkgdm9p
ZAord2Via2l0X3dlYl92aWV3X3Rlcm1pbmF0ZV93ZWJfcHJvY2VzcyAgICAgICAgICAgICAgICAo
V2ViS2l0V2ViVmlldyAgICAgICAgICAgICAqd2ViX3ZpZXcpOworCiBHX0VORF9ERUNMUwogCiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvZG9jcy93
cGUtMS4wLXNlY3Rpb25zLnR4dCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvZG9j
cy93cGUtMS4wLXNlY3Rpb25zLnR4dAppbmRleCA5M2JlOTdlYWRkNjc2YzM1NWI1OWQ5MGE5NGQ5
YmNlNzEzMjE4MDQ2Li5hYzNhODE1ZGY5YzE1ZWIzMTcwNDk1ZDBiMTI5MWNiZGY2N2Y3MTdjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL2RvY3Mvd3BlLTEuMC1z
ZWN0aW9ucy50eHQKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9kb2NzL3dw
ZS0xLjAtc2VjdGlvbnMudHh0CkBAIC0yNjMsNiArMjYzLDcgQEAgd2Via2l0X3dlYl92aWV3X3Nl
dF9pbnB1dF9tZXRob2RfY29udGV4dAogd2Via2l0X3dlYl92aWV3X2dldF9pbnB1dF9tZXRob2Rf
Y29udGV4dAogd2Via2l0X3dlYl92aWV3X2dldF93ZWJzaXRlX3BvbGljaWVzCiB3ZWJraXRfd2Vi
X3ZpZXdfZ2V0X2lzX3dlYl9wcm9jZXNzX3Jlc3BvbnNpdmUKK3dlYmtpdF93ZWJfdmlld190ZXJt
aW5hdGVfd2ViX3Byb2Nlc3MKIAogPFNVQlNFQ1RJT04gV2ViS2l0SmF2YXNjcmlwdFJlc3VsdD4K
IFdlYktpdEphdmFzY3JpcHRSZXN1bHQKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rv
b2xzL0NoYW5nZUxvZwppbmRleCBlMTNhYjc5M2E1OWU3NTM5ZjFlZjdhN2Q2OWU3MzkzYWE0ODcw
OThkLi5iMTc4NGUxMDhjNmFkM2VhN2JmMmM2ZGZkZmRiMGZjNGQ3ZGY5YmJkIDEwMDY0NAotLS0g
YS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAK
KzIwMjEtMDQtMzAgIE1pZ3VlbCBHb21leiAgPG1hZ29tZXpAaWdhbGlhLmNvbT4KKworICAgICAg
ICBbR1RLXVtXUEVdIFByb3Blcmx5IHJlY292ZXIgZnJvbSB1bnJlc3BvbnNpdmUgd2ViIHByb2Nl
c3NlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI0
NTMzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQ2FybG9zIEdhcmNpYSBDYW1wb3MuCisKKyAgICAg
ICAgQWRkIHVuaXQgdGVzdHMgZm9yIHRoZSBuZXcgd2Via2l0X3dlYl92aWV3X3Rlcm1pbmF0ZV93
ZWJfcHJvY2VzcyBHTGliIEFQSSBtZXRob2QuIEFsc28gbW92ZQorICAgICAgICB0aGUgbWV0aG9k
cyB1c2VkIHRvIHdhaXQgZm9yIHJlc3BvbnNpdmVuZXNzIGNoYW5nZXMgdG8gV2ViVmlld1Rlc3Qs
IGFzIHRoZXkgYXJlIHVzZWQgYnkgbW9yZQorICAgICAgICB0aGFuIGEgc2luZ2xlIHRlc3QuCisK
KyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFdlYktpdFdlYlZp
ZXcuY3BwOgorICAgICAgICAodGVzdFdlYlZpZXdJc1dlYlByb2Nlc3NSZXNwb25zaXZlKToKKyAg
ICAgICAgKHRlc3RXZWJWaWV3VGVybWluYXRlV2ViUHJvY2Vzcyk6CisgICAgICAgICh0ZXN0V2Vi
Vmlld1Rlcm1pbmF0ZVVucmVzcG9uc2l2ZVdlYlByb2Nlc3MpOgorICAgICAgICAoYmVmb3JlQWxs
KToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL2dsaWIvV2ViS2l0R0xpYi9XZWJWaWV3VGVzdC5j
cHA6CisgICAgICAgIChpc1dlYlByb2Nlc3NSZXNwb25zaXZlQ2hhbmdlZCk6CisgICAgICAgIChX
ZWJWaWV3VGVzdDo6d2FpdFVudGlsSXNXZWJQcm9jZXNzUmVzcG9uc2l2ZUNoYW5nZWQpOgorICAg
ICAgICAqIFRlc3RXZWJLaXRBUEkvZ2xpYi9XZWJLaXRHTGliL1dlYlZpZXdUZXN0Lmg6CisKIDIw
MjEtMDQtMjkgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIEV4dGVu
ZCBTb3J0ZWRBcnJheU1hcCBmdXJ0aGVyIHRvIHdvcmsgb24gY2FzZS1mb2xkZWQgc3RyaW5ncywg
dXNlIGluIE1JTUVUeXBlUmVnaXN0cnkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0R0xpYi9UZXN0V2ViS2l0V2ViVmlldy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFdlYktpdFdlYlZpZXcuY3BwCmluZGV4IGIyMzc1MTM2
MDRjYzhkNDIyOGVkYmY4OTEwNmI5NTZiNDQ2MGVjODMuLjlkM2RjNjJjNDg2NGRmMmVjN2E2NGEw
MzE2Nzg1YTUyNGY4ZjZhODggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0R0xpYi9UZXN0V2ViS2l0V2ViVmlldy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RXZWJLaXRXZWJWaWV3LmNwcApAQCAtMTE3NywyNCArMTE3
Nyw3IEBAIHN0YXRpYyB2b2lkIHRlc3RXZWJWaWV3QXV0b3BsYXlQb2xpY3koV2ViVmlld1Rlc3Qq
IHRlc3QsIGdjb25zdHBvaW50ZXIpCiAgICAgZ19hc3NlcnRfY21waW50KHdlYmtpdF93ZWJzaXRl
X3BvbGljaWVzX2dldF9hdXRvcGxheV9wb2xpY3kocG9saWNpZXMpLCA9PSwgV0VCS0lUX0FVVE9Q
TEFZX0FMTE9XX1dJVEhPVVRfU09VTkQpOwogfQogCi1jbGFzcyBXZWJWaWV3SXNXZWJQcm9jZXNz
UmVzcG9uc2l2ZVRlc3Q6IHB1YmxpYyBXZWJWaWV3VGVzdCB7Ci1wdWJsaWM6Ci0gICAgTUFLRV9H
TElCX1RFU1RfRklYVFVSRShXZWJWaWV3SXNXZWJQcm9jZXNzUmVzcG9uc2l2ZVRlc3QpOwotCi0g
ICAgc3RhdGljIHZvaWQgaXNXZWJQcm9jZXNzUmVzcG9uc2l2ZUNoYW5nZWQoV2ViS2l0V2ViVmll
dyogdmlldywgR1BhcmFtU3BlYyosIFdlYlZpZXdJc1dlYlByb2Nlc3NSZXNwb25zaXZlVGVzdCog
dGVzdCkKLSAgICB7Ci0gICAgICAgIGdfc2lnbmFsX2hhbmRsZXJzX2Rpc2Nvbm5lY3RfYnlfZnVu
Yyh0ZXN0LT5tX3dlYlZpZXcsIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KGlzV2ViUHJvY2Vzc1Jl
c3BvbnNpdmVDaGFuZ2VkKSwgdGVzdCk7Ci0gICAgICAgIGdfbWFpbl9sb29wX3F1aXQodGVzdC0+
bV9tYWluTG9vcCk7Ci0gICAgfQotCi0gICAgdm9pZCB3YWl0VW50aWxJc1dlYlByb2Nlc3NSZXNw
b25zaXZlQ2hhbmdlZCgpCi0gICAgewotICAgICAgICBnX3NpZ25hbF9jb25uZWN0KG1fd2ViVmll
dywgIm5vdGlmeTo6aXMtd2ViLXByb2Nlc3MtcmVzcG9uc2l2ZSIsIEdfQ0FMTEJBQ0soaXNXZWJQ
cm9jZXNzUmVzcG9uc2l2ZUNoYW5nZWQpLCB0aGlzKTsKLSAgICAgICAgZ19tYWluX2xvb3BfcnVu
KG1fbWFpbkxvb3ApOwotICAgIH0KLX07Ci0KLXN0YXRpYyB2b2lkIHRlc3RXZWJWaWV3SXNXZWJQ
cm9jZXNzUmVzcG9uc2l2ZShXZWJWaWV3SXNXZWJQcm9jZXNzUmVzcG9uc2l2ZVRlc3QqIHRlc3Qs
IGdjb25zdHBvaW50ZXIpCitzdGF0aWMgdm9pZCB0ZXN0V2ViVmlld0lzV2ViUHJvY2Vzc1Jlc3Bv
bnNpdmUoV2ViVmlld1Rlc3QqIHRlc3QsIGdjb25zdHBvaW50ZXIpCiB7CiAgICAgc3RhdGljIGNv
bnN0IGNoYXIqIGhhbmdIVE1MID0KICAgICAgICAgIjxodG1sPiIKQEAgLTE1NjEsNiArMTU0NCw3
MCBAQCBzdGF0aWMgdm9pZCB0ZXN0V2ViVmlld0V4dGVybmFsQXVkaW9SZW5kZXJpbmcoQXVkaW9S
ZW5kZXJpbmdXZWJWaWV3VGVzdCogdGVzdCwgZwogfQogI2VuZGlmCiAKK2NsYXNzIFdlYlZpZXdU
ZXJtaW5hdGVXZWJQcm9jZXNzVGVzdDogcHVibGljIFdlYlZpZXdUZXN0IHsKK3B1YmxpYzoKKyAg
ICBNQUtFX0dMSUJfVEVTVF9GSVhUVVJFKFdlYlZpZXdUZXJtaW5hdGVXZWJQcm9jZXNzVGVzdCk7
CisKKyAgICBzdGF0aWMgdm9pZCB3ZWJQcm9jZXNzVGVybWluYXRlZENhbGxiYWNrKFdlYktpdFdl
YlZpZXcqIHdlYlZpZXcsIFdlYktpdFdlYlByb2Nlc3NUZXJtaW5hdGlvblJlYXNvbiByZWFzb24s
IFdlYlZpZXdUZXJtaW5hdGVXZWJQcm9jZXNzVGVzdCogdGVzdCkKKyAgICB7CisgICAgICAgIHRl
c3QtPm1fdGVybWluYXRpb25SZWFzb24gPSByZWFzb247CisgICAgfQorCisgICAgV2ViVmlld1Rl
cm1pbmF0ZVdlYlByb2Nlc3NUZXN0KCkKKyAgICB7CisgICAgICAgIGdfc2lnbmFsX2Nvbm5lY3Rf
YWZ0ZXIobV93ZWJWaWV3LCAid2ViLXByb2Nlc3MtdGVybWluYXRlZCIsIEdfQ0FMTEJBQ0soV2Vi
Vmlld1Rlcm1pbmF0ZVdlYlByb2Nlc3NUZXN0Ojp3ZWJQcm9jZXNzVGVybWluYXRlZENhbGxiYWNr
KSwgdGhpcyk7CisgICAgfQorCisgICAgfldlYlZpZXdUZXJtaW5hdGVXZWJQcm9jZXNzVGVzdCgp
CisgICAgeworICAgICAgICBnX3NpZ25hbF9oYW5kbGVyc19kaXNjb25uZWN0X2J5X2RhdGEobV93
ZWJWaWV3LCB0aGlzKTsKKyAgICB9CisKKyAgICBXZWJLaXRXZWJQcm9jZXNzVGVybWluYXRpb25S
ZWFzb24gbV90ZXJtaW5hdGlvblJlYXNvbiB7IFdFQktJVF9XRUJfUFJPQ0VTU19DUkFTSEVEIH07
Cit9OworCitzdGF0aWMgdm9pZCB0ZXN0V2ViVmlld1Rlcm1pbmF0ZVdlYlByb2Nlc3MoV2ViVmll
d1Rlcm1pbmF0ZVdlYlByb2Nlc3NUZXN0KiB0ZXN0LCBnY29uc3Rwb2ludGVyKQoreworICAgIHRl
c3QtPmxvYWRIdG1sKCI8aHRtbD48L2h0bWw+IiwgbnVsbHB0cik7CisgICAgdGVzdC0+d2FpdFVu
dGlsTG9hZEZpbmlzaGVkKCk7CisgICAgdGVzdC0+bV9leHBlY3RlZFdlYlByb2Nlc3NDcmFzaCA9
IHRydWU7CisgICAgd2Via2l0X3dlYl92aWV3X3Rlcm1pbmF0ZV93ZWJfcHJvY2Vzcyh0ZXN0LT5t
X3dlYlZpZXcpOworICAgIGdfYXNzZXJ0X2NtcHVpbnQodGVzdC0+bV90ZXJtaW5hdGlvblJlYXNv
biwgPT0sIFdFQktJVF9XRUJfUFJPQ0VTU19URVJNSU5BVEVEX0JZX0FQSSk7CisgICAgZ19hc3Nl
cnRfdHJ1ZSh3ZWJraXRfd2ViX3ZpZXdfZ2V0X2lzX3dlYl9wcm9jZXNzX3Jlc3BvbnNpdmUodGVz
dC0+bV93ZWJWaWV3KSk7Cit9CisKK3N0YXRpYyB2b2lkIHRlc3RXZWJWaWV3VGVybWluYXRlVW5y
ZXNwb25zaXZlV2ViUHJvY2VzcyhXZWJWaWV3VGVybWluYXRlV2ViUHJvY2Vzc1Rlc3QqIHRlc3Qs
IGdjb25zdHBvaW50ZXIpCit7CisgICAgc3RhdGljIGNvbnN0IGNoYXIqIGhhbmdIVE1MID0KKyAg
ICAgICAgIjxodG1sPiIKKyAgICAgICAgIiA8Ym9keT4iCisgICAgICAgICIgIDxzY3JpcHQ+Igor
ICAgICAgICAiICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsiCisgICAgICAgICIgICAgIHdoaWxl
KHRydWUpIHsgfSIKKyAgICAgICAgIiAgICB9LCA1MDApOyIKKyAgICAgICAgIiAgPC9zY3JpcHQ+
IgorICAgICAgICAiIDwvYm9keT4iCisgICAgICAgICI8L2h0bWw+IjsKKworICAgIHRlc3QtPmxv
YWRIdG1sKGhhbmdIVE1MLCBudWxscHRyKTsKKyAgICB0ZXN0LT53YWl0VW50aWxMb2FkRmluaXNo
ZWQoKTsKKyAgICBnX2Fzc2VydF90cnVlKHdlYmtpdF93ZWJfdmlld19nZXRfaXNfd2ViX3Byb2Nl
c3NfcmVzcG9uc2l2ZSh0ZXN0LT5tX3dlYlZpZXcpKTsKKyAgICAvLyBXYWl0IDEgc2Vjb25kLCBz
byB0aGUganMgd2hpbGUgbG9vcCBraWNrcyBpbiBhbmQgYmxvY2tzIHRoZSB3ZWIgcHJvY2Vzcywg
YW5kIHRyeSB0byBsb2FkIGEgbmV3IHBhZ2UuCisgICAgLy8gQXMgdGhlIHdlYiBwcm9jZXNzIGlz
IGJ1c3kgdGhpcyB3b24ndCB3b3JrLCBhbmQgYWZ0ZXIgMyBzZWNvbmRzIHRoZSB3ZWIgcHJvY2Vz
cyB3aWxsIGJlIG1hcmtlZAorICAgIC8vIGFzIHVucmVzcG9uc2l2ZS4KKyAgICB0ZXN0LT53YWl0
KDEpOworICAgIHRlc3QtPmxvYWRIdG1sKCI8aHRtbD48L2h0bWw+IiwgbnVsbHB0cik7CisgICAg
dGVzdC0+d2FpdFVudGlsSXNXZWJQcm9jZXNzUmVzcG9uc2l2ZUNoYW5nZWQoKTsKKyAgICBnX2Fz
c2VydF9mYWxzZSh3ZWJraXRfd2ViX3ZpZXdfZ2V0X2lzX3dlYl9wcm9jZXNzX3Jlc3BvbnNpdmUo
dGVzdC0+bV93ZWJWaWV3KSk7CisKKyAgICAvLyBOb3cgdGhhdCB0aGUgcHJvY2VzcyBpcyB1bnJl
c3BvbnNpdmUsIHRlcm1pbmF0ZSBpdC4KKyAgICB0ZXN0LT5tX2V4cGVjdGVkV2ViUHJvY2Vzc0Ny
YXNoID0gdHJ1ZTsKKyAgICB0ZXN0LT5tX3Rlcm1pbmF0aW9uUmVhc29uID0gV0VCS0lUX1dFQl9Q
Uk9DRVNTX0NSQVNIRUQ7CisgICAgd2Via2l0X3dlYl92aWV3X3Rlcm1pbmF0ZV93ZWJfcHJvY2Vz
cyh0ZXN0LT5tX3dlYlZpZXcpOworICAgIGdfYXNzZXJ0X2NtcHVpbnQodGVzdC0+bV90ZXJtaW5h
dGlvblJlYXNvbiwgPT0sIFdFQktJVF9XRUJfUFJPQ0VTU19URVJNSU5BVEVEX0JZX0FQSSk7Cisg
ICAgZ19hc3NlcnRfdHJ1ZSh3ZWJraXRfd2ViX3ZpZXdfZ2V0X2lzX3dlYl9wcm9jZXNzX3Jlc3Bv
bnNpdmUodGVzdC0+bV93ZWJWaWV3KSk7Cit9CisKICNpZiBVU0UoU09VUDIpCiBzdGF0aWMgdm9p
ZCBzZXJ2ZXJDYWxsYmFjayhTb3VwU2VydmVyKiBzZXJ2ZXIsIFNvdXBNZXNzYWdlKiBtZXNzYWdl
LCBjb25zdCBjaGFyKiBwYXRoLCBHSGFzaFRhYmxlKiwgU291cENsaWVudENvbnRleHQqLCBncG9p
bnRlcikKICNlbHNlCkBAIC0xNjI4LDcgKzE2NzUsOSBAQCB2b2lkIGJlZm9yZUFsbCgpCiAjaWYg
UExBVEZPUk0oV1BFKSAmJiBVU0UoV1BFQkFDS0VORF9GRE9fQVVESU9fRVhURU5TSU9OKQogICAg
IEF1ZGlvUmVuZGVyaW5nV2ViVmlld1Rlc3Q6OmFkZCgiV2ViS2l0V2ViVmlldyIsICJleHRlcm5h
bC1hdWRpby1yZW5kZXJpbmciLCB0ZXN0V2ViVmlld0V4dGVybmFsQXVkaW9SZW5kZXJpbmcpOwog
I2VuZGlmCi0gICAgV2ViVmlld0lzV2ViUHJvY2Vzc1Jlc3BvbnNpdmVUZXN0OjphZGQoIldlYktp
dFdlYlZpZXciLCAiaXMtd2ViLXByb2Nlc3MtcmVzcG9uc2l2ZSIsIHRlc3RXZWJWaWV3SXNXZWJQ
cm9jZXNzUmVzcG9uc2l2ZSk7CisgICAgV2ViVmlld1Rlc3Q6OmFkZCgiV2ViS2l0V2ViVmlldyIs
ICJpcy13ZWItcHJvY2Vzcy1yZXNwb25zaXZlIiwgdGVzdFdlYlZpZXdJc1dlYlByb2Nlc3NSZXNw
b25zaXZlKTsKKyAgICBXZWJWaWV3VGVybWluYXRlV2ViUHJvY2Vzc1Rlc3Q6OmFkZCgiV2ViS2l0
V2ViVmlldyIsICJ0ZXJtaW5hdGUtd2ViLXByb2Nlc3MiLCB0ZXN0V2ViVmlld1Rlcm1pbmF0ZVdl
YlByb2Nlc3MpOworICAgIFdlYlZpZXdUZXJtaW5hdGVXZWJQcm9jZXNzVGVzdDo6YWRkKCJXZWJL
aXRXZWJWaWV3IiwgInRlcm1pbmF0ZS11bnJlc3BvbnNpdmUtd2ViLXByb2Nlc3MiLCB0ZXN0V2Vi
Vmlld1Rlcm1pbmF0ZVVucmVzcG9uc2l2ZVdlYlByb2Nlc3MpOwogfQogCiB2b2lkIGFmdGVyQWxs
KCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvZ2xpYi9XZWJLaXRHTGliL1dlYlZp
ZXdUZXN0LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvZ2xpYi9XZWJLaXRHTGliL1dlYlZpZXdU
ZXN0LmNwcAppbmRleCAzN2M2OWRiNzRlOWUxYTY0MGU5MjIyZGU0MTkxOTIwMzM2ZjQwMWJjLi44
MjY0ZWJhYWQ1NTdmZDBmOWExYzFhYTc1ZDkyNGFjMmNhMjkwYjFkIDEwMDY0NAotLS0gYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL2dsaWIvV2ViS2l0R0xpYi9XZWJWaWV3VGVzdC5jcHAKKysrIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9nbGliL1dlYktpdEdMaWIvV2ViVmlld1Rlc3QuY3BwCkBAIC0yMjMs
NiArMjIzLDE4IEBAIHZvaWQgV2ViVmlld1Rlc3Q6OndhaXRVbnRpbFRpdGxlQ2hhbmdlZCgpCiAg
ICAgd2FpdFVudGlsVGl0bGVDaGFuZ2VkVG8oMCk7CiB9CiAKK3N0YXRpYyB2b2lkIGlzV2ViUHJv
Y2Vzc1Jlc3BvbnNpdmVDaGFuZ2VkKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIEdQYXJhbVNwZWMq
LCBXZWJWaWV3VGVzdCogdGVzdCkKK3sKKyAgICBnX3NpZ25hbF9oYW5kbGVyc19kaXNjb25uZWN0
X2J5X2Z1bmMod2ViVmlldywgcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4oaXNXZWJQcm9jZXNzUmVz
cG9uc2l2ZUNoYW5nZWQpLCB0ZXN0KTsKKyAgICBnX21haW5fbG9vcF9xdWl0KHRlc3QtPm1fbWFp
bkxvb3ApOworfQorCit2b2lkIFdlYlZpZXdUZXN0Ojp3YWl0VW50aWxJc1dlYlByb2Nlc3NSZXNw
b25zaXZlQ2hhbmdlZCgpCit7CisgICAgZ19zaWduYWxfY29ubmVjdChtX3dlYlZpZXcsICJub3Rp
Znk6OmlzLXdlYi1wcm9jZXNzLXJlc3BvbnNpdmUiLCBHX0NBTExCQUNLKGlzV2ViUHJvY2Vzc1Jl
c3BvbnNpdmVDaGFuZ2VkKSwgdGhpcyk7CisgICAgZ19tYWluX2xvb3BfcnVuKG1fbWFpbkxvb3Ap
OworfQorCiB2b2lkIFdlYlZpZXdUZXN0OjpzZWxlY3RBbGwoKQogewogICAgIHdlYmtpdF93ZWJf
dmlld19leGVjdXRlX2VkaXRpbmdfY29tbWFuZChtX3dlYlZpZXcsICJTZWxlY3RBbGwiKTsKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvZ2xpYi9XZWJLaXRHTGliL1dlYlZpZXdUZXN0
LmggYi9Ub29scy9UZXN0V2ViS2l0QVBJL2dsaWIvV2ViS2l0R0xpYi9XZWJWaWV3VGVzdC5oCmlu
ZGV4IDcwZDc5MzdhOGFiNWViYTFlZTA0MTRmZTU3MjFlNDRjMTdkM2U5MjUuLjViZmU3ODNkMjI5
NTU1OWIxMjc0MzM4YmZkNTE2Yzg5ZDRhZGUyM2IgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvZ2xpYi9XZWJLaXRHTGliL1dlYlZpZXdUZXN0LmgKKysrIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9nbGliL1dlYktpdEdMaWIvV2ViVmlld1Rlc3QuaApAQCAtNTMsNiArNTMsNyBAQCBwdWJs
aWM6CiAgICAgdm9pZCB3YWl0VW50aWxUaXRsZUNoYW5nZWRUbyhjb25zdCBjaGFyKiBleHBlY3Rl
ZFRpdGxlKTsKICAgICB2b2lkIHdhaXRVbnRpbFRpdGxlQ2hhbmdlZCgpOwogICAgIHZvaWQgd2Fp
dFVudGlsRmlsZUNoYW5nZWQoY29uc3QgY2hhciosIEdGaWxlTW9uaXRvckV2ZW50KTsKKyAgICB2
b2lkIHdhaXRVbnRpbElzV2ViUHJvY2Vzc1Jlc3BvbnNpdmVDaGFuZ2VkKCk7CiAgICAgdm9pZCBy
ZXNpemVWaWV3KGludCB3aWR0aCwgaW50IGhlaWdodCk7CiAgICAgdm9pZCBoaWRlVmlldygpOwog
ICAgIHZvaWQgc2VsZWN0QWxsKCk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>