<?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>217655</bug_id>
          
          <creation_ts>2020-10-13 07:09:55 -0700</creation_ts>
          <short_desc>[GTK][WPE] PlatformDisplay::terminateEglDisplays() is never called</short_desc>
          <delta_ts>2022-04-07 15:41:37 -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>WPE WebKit</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=224309</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=235224</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=237917</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=238494</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=238964</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>236766</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Claudio Saavedra">csaavedra</reporter>
          <assigned_to name="Pablo Saavedra">psaavedra</assigned_to>
          <cc>ajacoutot</cc>
    
    <cc>aperez</cc>
    
    <cc>bugs-noreply</cc>
    
    <cc>cdumez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>jbedard</cc>
    
    <cc>magomez</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>pnormand</cc>
    
    <cc>psaavedra</cc>
    
    <cc>robert.nagy</cc>
    
    <cc>zdobersek</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1697240</commentid>
    <comment_count>0</comment_count>
    <who name="Claudio Saavedra">csaavedra</who>
    <bug_when>2020-10-13 07:09:55 -0700</bug_when>
    <thetext>Despite it being installed as a std::atexit() handler, it seems that on web process termination the shutDownEglDisplays is not called at all. Is it possible that the web process is exiting in a way that prevents std::atexit() handlers from being called?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1798312</commentid>
    <comment_count>1</comment_count>
    <who name="Claudio Saavedra">csaavedra</who>
    <bug_when>2021-09-29 07:22:25 -0700</bug_when>
    <thetext>I&apos;ve been looking at this again due to a downstream bug with wpewebkit. Turns out that most of the times, the webprocess exists when one of the IPC connections to the ui process is closed. This happens via a couple of handlers that are installed in both WebProcess and AuxiliaryProcess. These handlers use _exit(2) to ensure that, when the connection with the UI process is gone, the process is not left lingering.

What is important about this is that _exit(2) does NOT run the handlers that are installed via on_exit(3) or atexit(3). My observations indicate that most of the times the web process is exiting via _exit(2), which would explain why this method (now a lambda, btw, after r261905) is not always called.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1798327</commentid>
    <comment_count>2</comment_count>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2021-09-29 07:53:22 -0700</bug_when>
    <thetext>(In reply to Claudio Saavedra from comment #1)
&gt; I&apos;ve been looking at this again due to a downstream bug with wpewebkit.
&gt; Turns out that most of the times, the webprocess exists when one of the IPC
&gt; connections to the ui process is closed. This happens via a couple of
&gt; handlers that are installed in both WebProcess and AuxiliaryProcess. These
&gt; handlers use _exit(2) to ensure that, when the connection with the UI
&gt; process is gone, the process is not left lingering.
&gt; 
&gt; What is important about this is that _exit(2) does NOT run the handlers that
&gt; are installed via on_exit(3) or atexit(3). My observations indicate that
&gt; most of the times the web process is exiting via _exit(2), which would
&gt; explain why this method (now a lambda, btw, after r261905) is not always
&gt; called.

This means that the whole idea of using an atexit() handler to termite
the EGL displays is only working sometimes due to the cases in which
_exit() is used and the handlers (and display termination) get skipped.

What was the reason to begin with to EGL display termination here instead
of somewhere else like WebProcessMain::platformTerminate()? Also at the
point where the atexit() handlers are invoked, surely we do not have many
things around anymore, so for example what would happen if the PlatformDisplay
implementation would needs to, let&apos;s say, spin some iterations of a RunLoop?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1798424</commentid>
    <comment_count>3</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-09-29 10:11:49 -0700</bug_when>
    <thetext>I wonder what would break if we were to simply change _exit() to normal exit()?

Might need to keep using _exit() #if PLATFORM(COCOA) is defined.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1798471</commentid>
    <comment_count>4</comment_count>
    <who name="Claudio Saavedra">csaavedra</who>
    <bug_when>2021-09-29 11:27:14 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #3)
&gt; I wonder what would break if we were to simply change _exit() to normal
&gt; exit()?

The bug I am analyzing currently is that the eglTerminate() call happening in the aforementioned lambda is actually hanging on a poll() call and the web process never exists. I&apos;ll report that later in a separate bug if I find it out to be a bug in WebKit (could be a downstream driver issue or wpe backend, etc), but right now what I am wondering is whether this lambda is serving any purpose at all.

Tomorrow I&apos;ll be testing using exit(3) instead, I&apos;ll let you know what I find out.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1798472</commentid>
    <comment_count>5</comment_count>
    <who name="Claudio Saavedra">csaavedra</who>
    <bug_when>2021-09-29 11:28:42 -0700</bug_when>
    <thetext>(In reply to Adrian Perez from comment #2)

&gt; 
&gt; What was the reason to begin with to EGL display termination here instead
&gt; of somewhere else like WebProcessMain::platformTerminate()? Also at the
&gt; point where the atexit() handlers are invoked, surely we do not have many
&gt; things around anymore, so for example what would happen if the
&gt; PlatformDisplay
&gt; implementation would needs to, let&apos;s say, spin some iterations of a RunLoop?

This is explained in a comment in PlatformDisplay:

    // EGL registers atexit handlers to cleanup its global display list.
    // Since the global PlatformDisplay instance is created before,
    // when the PlatformDisplay destructor is called, EGL has already removed the
    // display from the list, causing eglTerminate() to crash. So, here we register
    // our own atexit handler, after EGL has been initialized and after the global
    // instance has been created to ensure we call eglTerminate() before the other
    // EGL atexit handlers and the PlatformDisplay destructor.
    // See https://bugs.webkit.org/show_bug.cgi?id=157973.

I have my doubts that this is doing anything useful in practice, but tomorrow we&apos;ll know more.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1801144</commentid>
    <comment_count>6</comment_count>
    <who name="Claudio Saavedra">csaavedra</who>
    <bug_when>2021-10-06 09:48:24 -0700</bug_when>
    <thetext>I have not been able to get to the bottom of this, but I did the following test with interesting results. I changed both AuxiliarProcess and WebProcess classes to actually call exit(2) on disconnection instead of _exit(2), to make sure that the exit handlers are actually called.

What happens is that very often the web process crashes during termination. The crashes happen all in Wayland-related calls as a result of the eglTerminate() call in the exit handler that is now getting called.

I have suspicions that some of the issues that were addressed in #157973 and #174789 are still there, just that they are hidden because very often the web process is exiting without calling this exit handler. Unfortunately I am not very familiar with all of the display/egl/wayland logic behind this, so analyzing this by myself is probably going to take some time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1801225</commentid>
    <comment_count>7</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-10-06 11:46:07 -0700</bug_when>
    <thetext>(In reply to Claudio Saavedra from comment #5)
&gt; I have my doubts that this is doing anything useful in practice

I&apos;m pretty sure we should not need to manually deinitialize EGL, so it should be OK and practical to just drop all the exit handlers and sidestep the issue. At least, I think so. Trying to make exit handlers work as expected is hard and probably not worthwhile.

That said, I would worry that this may have been added as a workaround for some embedded device bug. Say some proprietary graphics driver fails to release a global resource if the process exits without first calling eglTerminate (or if it crashes). If so, Miguel would probably know about it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1801533</commentid>
    <comment_count>8</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2021-10-07 00:43:35 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #7)
&gt; (In reply to Claudio Saavedra from comment #5)
&gt; &gt; I have my doubts that this is doing anything useful in practice
&gt; 
&gt; I&apos;m pretty sure we should not need to manually deinitialize EGL, so it
&gt; should be OK and practical to just drop all the exit handlers and sidestep
&gt; the issue. At least, I think so. Trying to make exit handlers work as
&gt; expected is hard and probably not worthwhile.
&gt; 
&gt; That said, I would worry that this may have been added as a workaround for
&gt; some embedded device bug. Say some proprietary graphics driver fails to
&gt; release a global resource if the process exits without first calling
&gt; eglTerminate (or if it crashes). If so, Miguel would probably know about it.

The problem is that mesa install atexit handlers to shutdown EGL, IIRC the original problem was that we were getting crashes when EGL was uninitialized by mesa because we had already destroyed things. Just by adding our own exit handlers things happened earlier and crashes didn&apos;t happen. I don&apos;t remember the details, but I think it was something like this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1801586</commentid>
    <comment_count>9</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-10-07 07:07:43 -0700</bug_when>
    <thetext>Ugh, so then another option would be to ensure we always exit using _exit() rather than exit().

One thing&apos;s for sure: switching between _exit() and exit() depending on how the web process quits is inconsistent and not great!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1801599</commentid>
    <comment_count>10</comment_count>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2021-10-07 07:52:40 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #9)

&gt; Ugh, so then another option would be to ensure we always exit using _exit()
&gt; rather than exit().

Well, then the EGL displays will never be terminated because _exit()
directly does the syscall() to tell the kernel to kill the process
without running any atexit() handlers _at all_.
 
&gt; One thing&apos;s for sure: switching between _exit() and exit() depending on how
&gt; the web process quits is inconsistent and not great!

Yes, it&apos;s confusing. If there is some good reason (at all) to use _exit()
IMO it should be explained with a comment next to the code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1801969</commentid>
    <comment_count>11</comment_count>
    <who name="Claudio Saavedra">csaavedra</who>
    <bug_when>2021-10-08 01:47:36 -0700</bug_when>
    <thetext>Some git history:

- The _exit() call in AuxiliaryProcess was added by cdumez as part of bug #177972 to prevent processes from taking too long to exit. It is not clear to me whether using exit(2) instead would have been acceptable too, I think it should be OK.

- The one in WebProcess is basically a specialization of what should be done on connection closure and was added as part of bug #190294, also by cdumez. Similarly, I don&apos;t see a reason why exit() can&apos;t be used.

Chris, do you think we could safely switch _exit() to exit() in these classes?

There are also other uses of _exit() for similar reasons that are not relevant to this bug (in PluginProcess and NetworkProcess), that I think should probably also be changed to exit(), but I don&apos;t have a strong opinion there since we don&apos;t have exit handlers that need to be honored there.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1805588</commentid>
    <comment_count>12</comment_count>
    <who name="Claudio Saavedra">csaavedra</who>
    <bug_when>2021-10-18 08:46:03 -0700</bug_when>
    <thetext>What I have learned since my last update on this topic.

- IPCConnection provides two different mechanisms for clients to be made aware of a connection getting closed:

  1. A didClose() client method that gets called from the main thread (via the main loop). This is implemented by AuxilaryProcess and _exit() gets called there.

  2. Also, clients can connect a callback to be called directly from the worker thread *before* the aforementioned didClose() method. This was added to make sure that interested clients can quickly be made aware of disconnection, even if the main thread is stuck for whichever reason. WebProcess (subclass of AuxiliaryProcess) installs this callback and calls _exit() directly so that as soon as disconnection happens, the web process exits.

Both of these cases are problematic for the web process, given that the web process relies on an atexit() handler being called on shutdown to be able to terminate EGL displays properly, via eglTerminate().

Directly replacing _exit() with exit() in those two methods does NOT work straight away, because it is possible to run into concurrency shutdown issues. In particular, calling exit() from a thread different from the main one can conflict with the program terminating concurrently from the main thread (via exiting main() or the exit() call in AuxiliaryProcess), which can cause use-after-free errors and all kind of nasty behavior.

A correct solution for this, preserving the atexit() handler used to call eglTeminate() would involve the following:

- Termination of the web process should always invoke exit handlers. Not only in order to terminate EGL displays, but also because EGL might have its own exit handlers that need to be called.

- This call should always happen from the main thread. Web processes in ports that rely on exit handlers cannot bypass exit handlers via _exit().


A two-fold solution for these ports would be:

1. Do not call

  connection-&gt;setDidCloseOnConnectionWorkQueueCallback(callExit);

  in WebProcess::initializeConnection() to avoid any handling right in the worker thread, and

2. AuxiliaryProcess::didClose() should use exit() instead of _exit().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1819700</commentid>
    <comment_count>13</comment_count>
    <who name="Pablo Saavedra">psaavedra</who>
    <bug_when>2021-12-02 07:57:02 -0800</bug_when>
    <thetext>Testing the Claudio&apos;s proposal I&apos;ve noticed the WebProcess is hanged in the eglTerminate() called from the PlatformDisplay::terminateEGLDisplay during the exit handler execution for the WebProcess.

This is because the EGL resources wasn&apos;t correctly released at that point.

One way to avoid is to call the `.close()` method for all the WebPages associated to the closed WebProcess. This eventually will invalidate all the  ThreadedCompositor objects associated to those WebPages what it will end-up in the releasing of the EGLS resources and it will prevent the WebProcess hang in the eglTerminate().


For this purpose something like this works: https://paste.debian.net/1221681/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1828867</commentid>
    <comment_count>14</comment_count>
    <who name="Pablo Saavedra">psaavedra</who>
    <bug_when>2022-01-07 04:07:05 -0800</bug_when>
    <thetext>Also I&apos;ve noticed that this commit (https://bugs.webkit.org/show_bug.cgi?id=214307) have removed some specific logic that affects to the WPE and GTK ports:


```
commit 813abc09e84c9a406836319bfa8f7fb83d378605
Author: cdumez@apple.com &lt;cdumez@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc&gt;
Date:   Wed Jul 15 18:23:22 2020 +0000

    [WK2] Make establishing a connection between the WebProcess and the Network process more robust
    https://bugs.webkit.org/show_bug.cgi?id=214307
    &lt;rdar://problem/64592340&gt;
    
    Reviewed by Alex Christensen.
```


``` diff
diff --git a/Source/WebKit/WebProcess/WebProcess.cpp b/Source/WebKit/WebProcess/WebProcess.cpp
index 6f2d8fad165f..c73c43e9857c 100644
--- a/Source/WebKit/WebProcess/WebProcess.cpp
+++ b/Source/WebKit/WebProcess/WebProcess.cpp
@@ -1100,23 +1100,28 @@ void WebProcess::setInjectedBundleParameters(const IPC::DataReference&amp; value)
 static NetworkProcessConnectionInfo getNetworkProcessConnection(IPC::Connection&amp; connection)
 {
     NetworkProcessConnectionInfo connectionInfo;
-    if (!connection.sendSync(Messages::WebProcessProxy::GetNetworkProcessConnection(), Messages::WebProcessProxy::GetNetworkProcessConnection::Reply(connectionInfo), 0)) {
-        // If we failed the first time, retry once. The attachment may have become invalid
-        // before it was received by the web process if the network process crashed.
-        if (!connection.sendSync(Messages::WebProcessProxy::GetNetworkProcessConnection(), Messages::WebProcessProxy::GetNetworkProcessConnection::Reply(connectionInfo), 0)) {
-#if PLATFORM(GTK) || PLATFORM(WPE)
-            // GTK+ and WPE ports don&apos;t exit on send sync message failure.
-            // In this particular case, the network process can be terminated by the UI process while the
-            // Web process is still initializing, so we always want to exit instead of crashing. This can
-            // happen when the WebView is created and then destroyed quickly.
-            // See https://bugs.webkit.org/show_bug.cgi?id=183348.
+    auto requestConnection = [&amp;] {
+        if (!connection.isValid()) {
+            // Connection to UIProcess has been severed, exit cleanly.
             exit(0);
-#else
-            CRASH();
-#endif
...
```

The change removes the specific logic for WPE and GTK added in:

```
commit f0627f5287186ec975c3439e9bcfe119493adc95
Author: carlosgc@webkit.org &lt;carlosgc@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc&gt;
Date:   Thu May 3 08:45:32 2018 +0000

    REGRESSION(r222772): [GTK][WPE] WebProcess from WebKitGtk+ 2.19.9x SIGSEVs in WebKit::WebProcess::ensureNetworkProcessConnection() at Source/WebKit/WebProcess/WebProcess.cpp:1127
    https://bugs.webkit.org/show_bug.cgi?id=183348
```


The comment in https://bugs.webkit.org/show_bug.cgi?id=183348#c40 offers a justification for that code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1830852</commentid>
    <comment_count>15</comment_count>
    <who name="Pablo Saavedra">psaavedra</who>
    <bug_when>2022-01-14 02:26:30 -0800</bug_when>
    <thetext>(In reply to Pablo Saavedra from comment #14)
&gt; Also I&apos;ve noticed that this commit
&gt; (https://bugs.webkit.org/show_bug.cgi?id=214307) have removed some specific
&gt; logic that affects to the WPE and GTK ports:
&gt; 
...


Moved aside to https://bugs.webkit.org/show_bug.cgi?id=235224</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1833256</commentid>
    <comment_count>16</comment_count>
      <attachid>449800</attachid>
    <who name="Pablo Saavedra">psaavedra</who>
    <bug_when>2022-01-24 04:34:55 -0800</bug_when>
    <thetext>Created attachment 449800
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1833271</commentid>
    <comment_count>17</comment_count>
      <attachid>449805</attachid>
    <who name="Pablo Saavedra">psaavedra</who>
    <bug_when>2022-01-24 06:08:23 -0800</bug_when>
    <thetext>Created attachment 449805
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1833318</commentid>
    <comment_count>18</comment_count>
      <attachid>449816</attachid>
    <who name="Pablo Saavedra">psaavedra</who>
    <bug_when>2022-01-24 08:00:35 -0800</bug_when>
    <thetext>Created attachment 449816
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1833364</commentid>
    <comment_count>19</comment_count>
      <attachid>449816</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2022-01-24 09:21:52 -0800</bug_when>
    <thetext>Comment on attachment 449816
patch

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

&gt; Source/WebKit/WebProcess/WebProcess.cpp:362
&gt; +#if !PLATFORM(WPE)
&gt;      // We call _exit() directly from the background queue in case the main thread is unresponsive
&gt;      // and AuxiliaryProcess::didClose() does not get called.
&gt;      connection-&gt;setDidCloseOnConnectionWorkQueueCallback(callExit);
&gt; +#endif

Is this change really WPE-specific? Can it go into the next group of preprocessor guards below?

The platform-specific termination behavior that we currently have is already very confusing. :/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1833410</commentid>
    <comment_count>20</comment_count>
    <who name="Pablo Saavedra">psaavedra</who>
    <bug_when>2022-01-24 11:29:34 -0800</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #19)
&gt; Comment on attachment 449816 [details]
&gt; patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=449816&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/WebProcess/WebProcess.cpp:362
&gt; &gt; +#if !PLATFORM(WPE)
&gt; &gt;      // We call _exit() directly from the background queue in case the main thread is unresponsive
&gt; &gt;      // and AuxiliaryProcess::didClose() does not get called.
&gt; &gt;      connection-&gt;setDidCloseOnConnectionWorkQueueCallback(callExit);
&gt; &gt; +#endif
&gt; 
&gt; Is this change really WPE-specific? Can it go into the next group of
&gt; preprocessor guards below?
&gt; 
&gt; The platform-specific termination behavior that we currently have is already
&gt; very confusing. :/

No, it is not. Thanks for point to this. It should be both glib ports: WPE and GTK.

Regarding your second comment, not sure if it could be incorporated to the `#if !PLATFORM(GTK) &amp;&amp; !PLATFORM(WPE) &amp;&amp; !ENABLE(IPC_TESTING_API)` block. I&apos;d say it could be but I don&apos;t know what implications exactly have IPC_TESTING_API (added in r268239) but I tempted to say both things have nothing to do one with the another. Let&apos;s manage them separately.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1833411</commentid>
    <comment_count>21</comment_count>
      <attachid>449837</attachid>
    <who name="Pablo Saavedra">psaavedra</who>
    <bug_when>2022-01-24 11:30:13 -0800</bug_when>
    <thetext>Created attachment 449837
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1836843</commentid>
    <comment_count>22</comment_count>
      <attachid>449837</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2022-02-03 03:04:31 -0800</bug_when>
    <thetext>Comment on attachment 449837
patch

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

&gt; Source/WebCore/platform/graphics/PlatformDisplay.cpp:277
&gt; +    eglMakeCurrent(m_eglDisplay, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT);

This is clearly right, so we can probably split this patch and land this in a separate bug.

&gt; Source/WebKit/Shared/AuxiliaryProcess.cpp:63
&gt; -    _exit(EXIT_SUCCESS);
&gt; +    exit(EXIT_SUCCESS);

I think other platforms don&apos;t want to exit() because _exit() should be faster.

&gt; Source/WebKit/WebProcess/WebProcess.cpp:888
&gt; +    platformTerminate();
&gt; +
&gt; +    AuxiliaryProcess::terminate();

Why do we call terminate here?

&gt; Source/WebKit/WebProcess/WebProcess.cpp:895
&gt; +    for (auto&amp; webPage : m_pageMap.values())
&gt; +        webPage-&gt;close();

I think it&apos;s expected that page map is empty when terminate is called. Why isn&apos;t empty here? I think we need a way to reproduce this or a test to fully understand the problem.

&gt; Source/WebKit/WebProcess/WebProcess.cpp:897
&gt; +    AuxiliaryProcess::didClose(connection);

terminate() stops the run loop, so the exit() from the main function will be called and shouldn&apos;t need to call didClose here, no?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1841708</commentid>
    <comment_count>23</comment_count>
      <attachid>452022</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2022-02-15 07:29:03 -0800</bug_when>
    <thetext>Created attachment 452022
Simpler patch

Pablo, could you check if this patch is enough? I see terminate egl display always called after applying it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1841734</commentid>
    <comment_count>24</comment_count>
      <attachid>452022</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2022-02-15 08:48:19 -0800</bug_when>
    <thetext>Comment on attachment 452022
Simpler patch

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

&gt; Source/WebKit/Shared/AuxiliaryProcess.cpp:67
&gt; +#if PLATFORM(GTK) || PLATFORM(WPE)
&gt; +    stopRunLoop();
&gt; +#else
&gt;      _exit(EXIT_SUCCESS);
&gt; +#endif

Really requires a comment to explain our different behavior.

&gt; Source/WebKit/WebProcess/WebProcess.cpp:260
&gt; +#if !PLATFORM(GTK) &amp;&amp; !PLATFORM(WPE)

Ditto.

&gt; Source/WebKit/WebProcess/WebProcess.cpp:368
&gt; +#if !PLATFORM(GTK) &amp;&amp; !PLATFORM(WPE)
&gt;      // We call _exit() directly from the background queue in case the main thread is unresponsive
&gt;      // and AuxiliaryProcess::didClose() does not get called.
&gt;      connection-&gt;setDidCloseOnConnectionWorkQueueCallback(callExit);
&gt; +#endif

Ditto.

Might be able to convert callExit into a lambda, then that would be one fewer place that would need the platform-specific bits.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1842812</commentid>
    <comment_count>25</comment_count>
    <who name="Pablo Saavedra">psaavedra</who>
    <bug_when>2022-02-17 04:02:25 -0800</bug_when>
    <thetext>(In reply to Carlos Garcia Campos from comment #23)
&gt; Created attachment 452022 [details]
&gt; Simpler patch
&gt; 
&gt; Pablo, could you check if this patch is enough? I see terminate egl display
&gt; always called after applying it.

We are experimenting the hang only for a specific case with the EGL implementation of the Galcore Vivante driver (6.4.0.p2.4-aarch32
) [1], when we added eglMakeCurrent() ( https://bugs.webkit.org/show_bug.cgi?id=236766 ). Only in this specific scenario we are able to reproduce the hang.

This points to a defective leaky of the driver on this regard since one could not a hang even if there are still EGL resources not released yet.

After an exhaustive investigation what I found is the way to prevent this hang is by ensuring all the pages are closed before the eglMakeCurrent() is invoked.

+    // Closing WebPages before exit. This ends-up in the invalidation of the
+    // ThreadedCompositor objects associated to those WebPages. This action
+    // will release the EGL resources preventing the WebProcess hang in the
+    // eglTerminate() during a exit() call.
+    for (auto&amp; webPage : m_pageMap.values())
+        webPage-&gt;close();


So, long story short the problem manifested in a specific situation using a specific driver and a proprietary driver but, at the same times, it shows what things depends on others during a WebProcess &quot;terminate&quot; situation. 

[1] https://www.nxp.com/docs/en/release-note/i.MX_Linux_RN.pdf</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1842820</commentid>
    <comment_count>26</comment_count>
    <who name="Pablo Saavedra">psaavedra</who>
    <bug_when>2022-02-17 04:39:06 -0800</bug_when>
    <thetext>(In reply to Carlos Garcia Campos from comment #22)
&gt; Comment on attachment 449837 [details]
&gt; patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=449837&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/PlatformDisplay.cpp:277
&gt; &gt; +    eglMakeCurrent(m_eglDisplay, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT);
&gt; 
&gt; This is clearly right, so we can probably split this patch and land this in
&gt; a separate bug.


Splitted off: https://bugs.webkit.org/show_bug.cgi?id=236766

&gt; 
&gt; &gt; Source/WebKit/Shared/AuxiliaryProcess.cpp:63
&gt; &gt; -    _exit(EXIT_SUCCESS);
&gt; &gt; +    exit(EXIT_SUCCESS);
&gt; 
&gt; I think other platforms don&apos;t want to exit() because _exit() should be
&gt; faster.

Let&apos;s guard this with `#if PLATFORM(GTK) &amp;&amp; PLATFORM(WPE)`

&gt; 
&gt; &gt; Source/WebKit/WebProcess/WebProcess.cpp:888
&gt; &gt; +    platformTerminate();
&gt; &gt; +
&gt; &gt; +    AuxiliaryProcess::terminate();
&gt; 
&gt; Why do we call terminate here?


No reason. At the beginning mimicry with the WebProcess::terminate() method. If this could be useful I suppose the right way ti should be to add something like WebProcess::platformDidClose() or something like that. The true is there is the glib platform does implement nothing specific for this platform so this call into this didClose() function has no effects in the scope of this path. 

Source/WebKit/WebProcess/glib/WebProcessGLib.cpp:void WebProcess::platformTerminate()
{
}


&gt; 
&gt; &gt; Source/WebKit/WebProcess/WebProcess.cpp:895
&gt; &gt; +    for (auto&amp; webPage : m_pageMap.values())
&gt; &gt; +        webPage-&gt;close();
&gt; 
&gt; I think it&apos;s expected that page map is empty when terminate is called. Why
&gt; isn&apos;t empty here? I think we need a way to reproduce this or a test to fully
&gt; understand the problem.
&gt;

Any idea or suggestion on this regard.


&gt; &gt; Source/WebKit/WebProcess/WebProcess.cpp:897
&gt; &gt; +    AuxiliaryProcess::didClose(connection);
&gt; 
&gt; terminate() stops the run loop, so the exit() from the main function will be
&gt; called and shouldn&apos;t need to call didClose here, no?

... (I will reply this in another post)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1842843</commentid>
    <comment_count>27</comment_count>
    <who name="Pablo Saavedra">psaavedra</who>
    <bug_when>2022-02-17 05:29:53 -0800</bug_when>
    <thetext>&gt; &gt; Source/WebKit/WebProcess/WebProcess.cpp:897
&gt; &gt; +    AuxiliaryProcess::didClose(connection);
&gt; 
&gt; terminate() stops the run loop, so the exit() from the main function will be
&gt; called and shouldn&apos;t need to call didClose here, no?

The didClose() method is also called in the main thread if the connection is closed, for example, if there is a problem in the IPC::Connection or if the WebProcess is replace by another for example due to CSP. For example, in situations where a page (domain.A) loads a new content from another domain (domain.B) using `window.location = &quot;domain.B&quot;`:


```
- Starting page on domain.A
- Web extension initializing for pid 590
...
- Load started on domain.A
- Load committed on domain.A
...
(Later when the redirection starts ...)
...
- Load started on domain.B
... The PlatformDisplay:atExit() is invoked for the pid 590
... AuxiliaryProcess::didClose() exiting here for the pid 590
... PlatformDisplay:atExit(): calling eglTerminate() - PID: 590
```

The PlatformDisplay:atExit() is invoked in the previous old WebProcess because the  AuxiliaryProcess::didClose() is called.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1843323</commentid>
    <comment_count>28</comment_count>
      <attachid>452022</attachid>
    <who name="Pablo Saavedra">psaavedra</who>
    <bug_when>2022-02-18 01:02:19 -0800</bug_when>
    <thetext>Comment on attachment 452022
Simpler patch

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

&gt;&gt; Source/WebKit/Shared/AuxiliaryProcess.cpp:67
&gt;&gt; +#endif
&gt; 
&gt; Really requires a comment to explain our different behavior.

e.g:

// _exit() does not call the atexit handlers that we are using in some places.
// We rely on exit handlers to cleanup EGL resources, and this handler needs to
// be called from the main thread.
//
// For glib based ports we call the stopRunLoop() what will endup in a normal exit.

&gt;&gt; Source/WebKit/WebProcess/WebProcess.cpp:260
&gt;&gt; +#if !PLATFORM(GTK) &amp;&amp; !PLATFORM(WPE)
&gt; 
&gt; Ditto.

The only place where the callExit() function is called is now already safe-guarded for non WPE/GTK ports so it it is clear this is  not being in use for these ports:


#if !PLATFORM(GTK) &amp;&amp; !PLATFORM(WPE)                                 
    // We call _exit() directly from the background queue in case the main thread is unresponsive
    // and AuxiliaryProcess::didClose() does not get called.            
    connection-&gt;setDidCloseOnConnectionWorkQueueCallback(callExit);       
#endif

&gt; Source/WebKit/WebProcess/WebProcess.cpp:363
&gt;  

I&apos;d suggest some comment here like this:

// For GTK and WPE ports, do not fast-track an _exit() from a worker thread on IPC disconnection</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1843344</commentid>
    <comment_count>29</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2022-02-18 03:13:03 -0800</bug_when>
    <thetext>(In reply to Pablo Saavedra from comment #25)
&gt; (In reply to Carlos Garcia Campos from comment #23)
&gt; &gt; Created attachment 452022 [details]
&gt; &gt; Simpler patch
&gt; &gt; 
&gt; &gt; Pablo, could you check if this patch is enough? I see terminate egl display
&gt; &gt; always called after applying it.
&gt; 
&gt; We are experimenting the hang only for a specific case with the EGL
&gt; implementation of the Galcore Vivante driver (6.4.0.p2.4-aarch32
&gt; ) [1], when we added eglMakeCurrent() (
&gt; https://bugs.webkit.org/show_bug.cgi?id=236766 ). Only in this specific
&gt; scenario we are able to reproduce the hang.
&gt; 
&gt; This points to a defective leaky of the driver on this regard since one
&gt; could not a hang even if there are still EGL resources not released yet.
&gt; 
&gt; After an exhaustive investigation what I found is the way to prevent this
&gt; hang is by ensuring all the pages are closed before the eglMakeCurrent() is
&gt; invoked.
&gt; 
&gt; +    // Closing WebPages before exit. This ends-up in the invalidation of the
&gt; +    // ThreadedCompositor objects associated to those WebPages. This action
&gt; +    // will release the EGL resources preventing the WebProcess hang in the
&gt; +    // eglTerminate() during a exit() call.
&gt; +    for (auto&amp; webPage : m_pageMap.values())
&gt; +        webPage-&gt;close();

But at this point the webpage shuld havce already been destroyed, and that&apos;s the case in my tests. So we need to figure out why pages are still alive for you at this point.

&gt; 
&gt; So, long story short the problem manifested in a specific situation using a
&gt; specific driver and a proprietary driver but, at the same times, it shows
&gt; what things depends on others during a WebProcess &quot;terminate&quot; situation. 
&gt; 
&gt; [1] https://www.nxp.com/docs/en/release-note/i.MX_Linux_RN.pdf</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1843488</commentid>
    <comment_count>30</comment_count>
    <who name="Pablo Saavedra">psaavedra</who>
    <bug_when>2022-02-18 10:36:50 -0800</bug_when>
    <thetext>(In reply to Carlos Garcia Campos from comment #29)
&gt; (In reply to Pablo Saavedra from comment #25)
&gt; &gt; (In reply to Carlos Garcia Campos from comment #23)
&gt; &gt; &gt; Created attachment 452022 [details]
&gt; &gt; &gt; Simpler patch
&gt; &gt; &gt; 
&gt; &gt; &gt; Pablo, could you check if this patch is enough? I see terminate egl display
&gt; &gt; &gt; always called after applying it.
&gt; &gt; 
&gt; &gt; We are experimenting the hang only for a specific case with the EGL
&gt; &gt; implementation of the Galcore Vivante driver (6.4.0.p2.4-aarch32
&gt; &gt; ) [1], when we added eglMakeCurrent() (
&gt; &gt; https://bugs.webkit.org/show_bug.cgi?id=236766 ). Only in this specific
&gt; &gt; scenario we are able to reproduce the hang.
&gt; &gt; 
&gt; &gt; This points to a defective leaky of the driver on this regard since one
&gt; &gt; could not a hang even if there are still EGL resources not released yet.
&gt; &gt; 
&gt; &gt; After an exhaustive investigation what I found is the way to prevent this
&gt; &gt; hang is by ensuring all the pages are closed before the eglMakeCurrent() is
&gt; &gt; invoked.
&gt; &gt; 
&gt; &gt; +    // Closing WebPages before exit. This ends-up in the invalidation of the
&gt; &gt; +    // ThreadedCompositor objects associated to those WebPages. This action
&gt; &gt; +    // will release the EGL resources preventing the WebProcess hang in the
&gt; &gt; +    // eglTerminate() during a exit() call.
&gt; &gt; +    for (auto&amp; webPage : m_pageMap.values())
&gt; &gt; +        webPage-&gt;close();
&gt; 
&gt; But at this point the webpage shuld havce already been destroyed, and that&apos;s
&gt; the case in my tests. So we need to figure out why pages are still alive for
&gt; you at this point.
&gt; 


I agree but at this point I can not tell you why. Instead of, what I can show you is the evidence.


The following traces are based on your simplified version of the patch but with `fprintf(stderr, )` before and after the EGL calls in the exit handler and still with the specialization of the didClose() method that I did for the WebProcess:



Trace 1:

+void WebProcess::didClose(IPC::Connection&amp; connection)
+{
+    // Closing WebPages before exit. This ends-up in the invalidation of the
+    // ThreadedCompositor objects associated to those WebPages. This action
+    // will release the EGL resources preventing the WebProcess hang in the
+    // eglTerminate() during a exit() call.
+    for (auto&amp; webPage : m_pageMap.values())
+    {
+        fprintf(&quot;XXX: WebProcess::didClose(): Detected page in m_pageMap. Executed webPage-&gt;close() in the didClose()\n&quot;);
+        webPage-&gt;close();
+    }
+    AuxiliaryProcess::didClose(connection);
+}


Trace 2:

+void WebProcess::didClose(IPC::Connection&amp; connection)
+{
+    // Closing WebPages before exit. This ends-up in the invalidation of the
+    // ThreadedCompositor objects associated to those WebPages. This action
+    // will release the EGL resources preventing the WebProcess hang in the
+    // eglTerminate() during a exit() call.
+    for (auto&amp; webPage : m_pageMap.values())
+    {
+        fprintf(&quot; WebProcess::didClose(): Detected page in m_pageMap. NOT executed webPage-&gt;close() in the didClose()\n&quot;);
+        // webPage-&gt;close();
+    }
+    AuxiliaryProcess::didClose(connection);
+}




Trace 1:

```
Feb 18 17:19:02 board launcher[932]: XXX: WebProcess::didClose(): Detected page in m_pageMap. Executed webPage-&gt;close() in the didClose()
Feb 18 17:19:03 board launcher[932]: XXX: AuxiliaryProcess::didClose()
Feb 18 17:19:03 board launcher[932]: XXX: eglMakeCurrent() 1 of 3
Feb 18 17:19:03 board launcher[932]: XXX: eglMakeCurrent() 2 of 3
Feb 18 17:19:03 board launcher[932]: XXX: eglTerminate() 3 of 3. OK. WebProcess terminated
Feb 18 17:19:56 board launcher[932]: XXX: eglMakeCurrent() 1 of 3
Feb 18 17:19:56 board launcher[932]: XXX: eglMakeCurrent() 2 of 3
Feb 18 17:19:56 board launcher[932]: XXX: eglTerminate() 3 of 3. OK. WebProcess terminated
...
Feb 18 17:20:31 board launcher[932]: XXX: WebProcess::didClose(): Detected page in m_pageMap. Executed webPage-&gt;close() in the didClose()
Feb 18 17:20:31 board launcher[932]: XXX: AuxiliaryProcess::didClose()
Feb 18 17:20:31 board launcher[932]: XXX: eglMakeCurrent() 1 of 3
Feb 18 17:20:31 board launcher[932]: XXX: eglMakeCurrent() 2 of 3
Feb 18 17:20:31 board launcher[932]: XXX: eglTerminate() 3 of 3. OK. WebProcess terminated
Feb 18 17:20:37 board launcher[932]: XXX: WebProcess::didClose(): Detected page in m_pageMap. Executed webPage-&gt;close() in the didClose()
Feb 18 17:20:38 board launcher[932]: XXX: AuxiliaryProcess::didClose()
Feb 18 17:20:38 board launcher[932]: XXX: eglMakeCurrent() 1 of 3
Feb 18 17:20:38 board launcher[932]: XXX: eglMakeCurrent() 2 of 3
Feb 18 17:20:38 board launcher[932]: XXX: eglTerminate() 3 of 3. OK. WebProcess terminated
Feb 18 17:20:45 board launcher[932]: XXX: eglMakeCurrent() 1 of 3
Feb 18 17:20:45 board launcher[932]: XXX: eglMakeCurrent() 2 of 3
Feb 18 17:20:45 board launcher[932]: XXX: eglTerminate() 3 of 3. OK. WebProcess terminated
Feb 18 17:20:52 board launcher[932]: XXX: WebProcess::didClose(): Detected page in m_pageMap. Executed webPage-&gt;close() in the didClose()
Feb 18 17:20:52 board launcher[932]: XXX: AuxiliaryProcess::didClose()
Feb 18 17:20:52 board launcher[932]: XXX: eglMakeCurrent() 1 of 3
Feb 18 17:20:52 board launcher[932]: XXX: eglMakeCurrent() 2 of 3
Feb 18 17:20:52 board launcher[932]: XXX: eglTerminate() 3 of 3. OK. WebProcess terminated
Feb 18 17:20:58 board launcher[932]: XXX: WebProcess::didClose(): Detected page in m_pageMap. Executed webPage-&gt;close() in the didClose()
Feb 18 17:20:59 board launcher[932]: XXX: AuxiliaryProcess::didClose()
Feb 18 17:20:59 board launcher[932]: XXX: eglMakeCurrent() 1 of 3
Feb 18 17:20:59 board launcher[932]: XXX: eglMakeCurrent() 2 of 3
Feb 18 17:20:59 board launcher[932]: XXX: eglTerminate() 3 of 3. OK. WebProcess terminated
Feb 18 17:21:04 board launcher[932]: XXX: eglMakeCurrent() 1 of 3
Feb 18 17:21:04 board launcher[932]: XXX: eglMakeCurrent() 2 of 3
Feb 18 17:21:04 board launcher[932]: XXX: eglTerminate() 3 of 3. OK. WebProcess terminated
Feb 18 17:21:11 board launcher[932]: XXX: eglMakeCurrent() 1 of 3
Feb 18 17:21:11 board launcher[932]: XXX: eglMakeCurrent() 2 of 3
Feb 18 17:21:11 board launcher[932]: XXX: eglTerminate() 3 of 3. OK. WebProcess terminated
```

Trace 2:

```
user   973  0.9  2.1 264288 21512 ?        SLl  17:23   0:01      \_ /usr/libexec/wpe-webkit-1.0/WPENetworkProcess 4 42
user  1135  4.3  6.4 324284 64252 ?        SLl  17:24   0:06      \_ /usr/libexec/wpe-webkit-1.0/WPEWebProcess 10 56
user  1584 13.2  5.4 317024 54480 ?        SLl  17:26   0:04      \_ /usr/libexec/wpe-webkit-1.0/WPEWebProcess 52 74 &lt;&lt;&lt;&lt;&lt;
root      1698  0.0  0.0   1836   348 pts/0    S+   17:27   0:00      \_ grep WPE

Feb 18 17:25:59 board launcher[936]: XXX: eglMakeCurrent() 1 of 3
Feb 18 17:25:59 board launcher[936]: XXX: eglMakeCurrent() 2 of 3
Feb 18 17:25:59 board launcher[936]: XXX: eglTerminate() 3 of 3. OK. WebProcess terminated
Feb 18 17:26:09 board launcher[936]: XXX: eglMakeCurrent() 1 of 3
Feb 18 17:26:09 board launcher[936]: XXX: eglMakeCurrent() 2 of 3
Feb 18 17:26:09 board launcher[936]: XXX: eglTerminate() 3 of 3. OK. WebProcess terminated
Feb 18 17:26:18 board launcher[936]: XXX: eglMakeCurrent() 1 of 3
Feb 18 17:26:18 board launcher[936]: XXX: eglMakeCurrent() 2 of 3
Feb 18 17:26:18 board launcher[936]: XXX: eglTerminate() 3 of 3. OK. WebProcess terminated
Feb 18 17:26:26 board launcher[936]: XXX: eglMakeCurrent() 1 of 3
Feb 18 17:26:26 board launcher[936]: XXX: eglMakeCurrent() 2 of 3
Feb 18 17:26:26 board launcher[936]: XXX: eglTerminate() 3 of 3. OK. WebProcess terminated
Feb 18 17:26:32 board launcher[936]: XXX: eglMakeCurrent() 1 of 3
Feb 18 17:26:32 board launcher[936]: XXX: eglMakeCurrent() 2 of 3
Feb 18 17:26:32 board launcher[936]: XXX: eglTerminate() 3 of 3. OK. WebProcess terminated
Feb 18 17:26:39 board launcher[936]: XXX: WebProcess::didClose(): Detected page in m_pageMap. NOT executed webPage-&gt;close() in the didClose()
Feb 18 17:26:39 board launcher[936]: XXX: AuxiliaryProcess::didClose()
Feb 18 17:26:39 board launcher[936]: XXX: eglMakeCurrent() 1 of 3
Feb 18 17:26:39 board launcher[936]: XXX: eglMakeCurrent() 2 of 3
...
                                                    KO. exit hang in the eglTerminate() call !!!!!!!!!!!!!!!!!!! Prevents the termination of the PID 1584
...
Feb 18 17:26:51 board launcher[936]: XXX: WebProcess::didClose(): Detected page in m_pageMap. NOT executed webPage-&gt;close() in the didClose()
Feb 18 17:26:51 board launcher[936]: XXX: AuxiliaryProcess::didClose()
Feb 18 17:26:51 board launcher[936]: XXX: eglMakeCurrent() 1 of 3
Feb 18 17:26:51 board launcher[936]: XXX: eglMakeCurrent() 2 of 3
Feb 18 17:26:51 board launcher[936]: XXX: eglTerminate() 3 of 3. OK. WebProcess terminated
```




Observations:



* The hang happens in the situation where there are still pages in the m_pageMap and we don&apos;t invoke the `close()` method for those pages.

* The key point, I think, is that the webPage.close() triggers at last the ThreadedCompositor.invalidate() in ThreadedCompositor associated to the webPage:

    WebPage-&gt;m_drawingArea&lt;DrawingAreaCoordinatedGraphics&gt;-&gt;m_layerTreeHost&lt;LayerTreeHost&gt;-&gt;m_compositor(ThreadedCompositor).invalidate() 


  The invalidate() method is the one that purges GL resources and destroy the ContextGL created by the ThreadedCompositor:

        m_scene-&gt;purgeGLResources();
        m_context = nullptr;
        m_client.didDestroyGLContext();


* The reason why the page is still NOT close when the didClose() is called in that situation is simple because I don&apos;t see nowhere where all the webpages are closed before the exit. Is that an design decision?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1843496</commentid>
    <comment_count>31</comment_count>
      <attachid>452542</attachid>
    <who name="Pablo Saavedra">psaavedra</who>
    <bug_when>2022-02-18 10:46:32 -0800</bug_when>
    <thetext>Created attachment 452542
psaavedra patch version 2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1844255</commentid>
    <comment_count>32</comment_count>
      <attachid>452743</attachid>
    <who name="Pablo Saavedra">psaavedra</who>
    <bug_when>2022-02-21 10:16:04 -0800</bug_when>
    <thetext>Created attachment 452743
psaavedra patch version 3

This version adds an explanation of why the iterator with  the webPage.close() is needed in in the didClose():


// Normally the didClose() is called through the
// WebPageProxy::close() -&gt; dispatch() callback but there is the
// possibility of the didClose() being called due to an error in the
// IPC connection, for example, in the sceneario of a fast webview
// open/close action. In this situation the didClose() is invoked before the
// webpage.close() is being called because the webkitWebViewDispose().

// By closing all the WebPages we will ensure that all the EGL resources
// will be released before calling the eglTerminate() in the terminateEGLDisplay()
// because this ends-up in the invalidation of the ThreadedCompositor EGL resources
// associated to those WebPages.
//
//   WebPage::WebPage()
//   webkitWebViewDispose()
//   WebPageProxy::close() -&gt; dispatch() callback protectedProcess-&gt;send()
//
//   // ... (Connection::open() being processed before the WebPage::close())
//   Connection::open()
//   // Error in the connection: G_IO_HUP || condition &amp; G_IO_ERR || condition &amp; G_IO_NVAL -&gt; connectionDidClose()
//   Connection::connectionDidClose() RunLoop::main().dispatch() -- protectedThis-&gt;m_client.didClose()
//
//   WebProcess::didClose(): For each webPage in m_pageMap: webPage-&gt;close()
//   // ... (WebPage::close() being called to lated)
//   WebPage::close()
//   WebProcess::removeWebPage()
//   WebPage::~WebPage() 
//
//   PlatformDisplay::terminateEGLDisplay()
for (auto&amp; webPage : m_pageMap.values())
    webPage-&gt;close();</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1844580</commentid>
    <comment_count>33</comment_count>
      <attachid>452835</attachid>
    <who name="Pablo Saavedra">psaavedra</who>
    <bug_when>2022-02-22 00:22:36 -0800</bug_when>
    <thetext>Created attachment 452835
psaavedra patch version 3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1844581</commentid>
    <comment_count>34</comment_count>
      <attachid>452836</attachid>
    <who name="Pablo Saavedra">psaavedra</who>
    <bug_when>2022-02-22 00:24:01 -0800</bug_when>
    <thetext>Created attachment 452836
psaavedra patch version 3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1844582</commentid>
    <comment_count>35</comment_count>
      <attachid>452837</attachid>
    <who name="Pablo Saavedra">psaavedra</who>
    <bug_when>2022-02-22 00:25:22 -0800</bug_when>
    <thetext>Created attachment 452837
psaavedra patch version 3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1844636</commentid>
    <comment_count>36</comment_count>
      <attachid>452853</attachid>
    <who name="Pablo Saavedra">psaavedra</who>
    <bug_when>2022-02-22 04:00:59 -0800</bug_when>
    <thetext>Created attachment 452853
psaavedra patch version 4</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1844647</commentid>
    <comment_count>37</comment_count>
      <attachid>452853</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2022-02-22 04:40:45 -0800</bug_when>
    <thetext>Comment on attachment 452853
psaavedra patch version 4

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

&gt; Source/WebKit/WebProcess/WebProcess.cpp:364
&gt; +// For GTK and WPE ports, do not fast-track an _exit() from a worker thread on IPC disconnection

Do not call exit in background queue for GTK and WPE because we need to ensure atexit handlers are called in the main thread to cleanup resources like EGL displays.

&gt; Source/WebKit/WebProcess/glib/WebProcessGLib.cpp:83
&gt; +    for (auto&amp; webPage : m_pageMap.values())

I&apos;ve now realized that WebPage::close() calls WebProcess::removeWebPage(), so m_pageMap is modified while being iterated. Use copyToVector to copy the values() to a Vector instead of using the iterator directly.

for (auto&amp; webPage : copyToVector(m_pageMap.values()))
    webPage-&gt;close();</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1844660</commentid>
    <comment_count>38</comment_count>
      <attachid>452859</attachid>
    <who name="Pablo Saavedra">psaavedra</who>
    <bug_when>2022-02-22 06:00:28 -0800</bug_when>
    <thetext>Created attachment 452859
psaavedra patch version 5</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1844676</commentid>
    <comment_count>39</comment_count>
    <who name="Pablo Saavedra">psaavedra</who>
    <bug_when>2022-02-22 06:47:35 -0800</bug_when>
    <thetext>(In reply to Carlos Garcia Campos from comment #37)
&gt; Comment on attachment 452853 [details]
&gt; psaavedra patch version 4

&gt; I&apos;ve now realized that WebPage::close() calls WebProcess::removeWebPage(),
&gt; so m_pageMap is modified while being iterated. Use copyToVector to copy the
&gt; values() to a Vector instead of using the iterator directly.
&gt; 
&gt; for (auto&amp; webPage : copyToVector(m_pageMap.values()))
&gt;     webPage-&gt;close();

Good point. I was not about that WebProcess::removeWebPage() call into the WebPage::close().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1844935</commentid>
    <comment_count>40</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2022-02-22 16:46:10 -0800</bug_when>
    <thetext>Stopped https://ews-build.webkit.org/#/builders/70/builds/1030, the 3 failures it flagged are already known.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1845051</commentid>
    <comment_count>41</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-02-23 01:33:24 -0800</bug_when>
    <thetext>Committed r290360 (247678@main): &lt;https://commits.webkit.org/247678@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 452859.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1845087</commentid>
    <comment_count>42</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2022-02-23 04:34:07 -0800</bug_when>
    <thetext>Thanks for fixing this Pablo! It seems that we could now deinitialize GStreamer as well when terminating the WebProcess. That would allow things like the GStreamer leak tracer to be useful for us.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1845113</commentid>
    <comment_count>43</comment_count>
    <who name="Pablo Saavedra">psaavedra</who>
    <bug_when>2022-02-23 06:16:06 -0800</bug_when>
    <thetext>(In reply to Philippe Normand from comment #42)
&gt; Thanks for fixing this Pablo! It seems that we could now deinitialize
&gt; GStreamer as well when terminating the WebProcess. That would allow things
&gt; like the GStreamer leak tracer to be useful for us.

Thanks Philippe. The idea was to avoid abrupt exits allowing then the exit handlers to be called. So yes, I think you can use a handler for that purpose now too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1845122</commentid>
    <comment_count>44</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2022-02-23 06:51:55 -0800</bug_when>
    <thetext>OK let&apos;s try this in https://bugs.webkit.org/show_bug.cgi?id=237084</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1855527</commentid>
    <comment_count>45</comment_count>
    <who name="">robert.nagy</who>
    <bug_when>2022-03-28 03:41:19 -0700</bug_when>
    <thetext>Hi

After upgrading to webkitgtk 2.36.0 from 2.34 we have noticed a crash on ever exit
in all binaries using webkitgtk and reverting this commit fixes the issue.

I assume there is either a race or somethig gets called twice and it is trying
to destroy an already destroyed resource.

Backtrace:

#0  native () at /home/pobj/webkitgtk4-2.36.0/webkitgtk-2.36.0/Source/WebCore/platform/graphics/x11/PlatformDisplayX11.h:48
#1  sharedDisplay () at /home/pobj/webkitgtk4-2.36.0/webkitgtk-2.36.0/Source/WebCore/platform/graphics/x11/XUniqueResource.cpp:46
#2  deleteXResource () at /home/pobj/webkitgtk4-2.36.0/webkitgtk-2.36.0/Source/WebCore/platform/graphics/x11/XUniqueResource.cpp:79
#3  0x00000f5eea945e8c in reset () at /home/pobj/webkitgtk4-2.36.0/webkitgtk-2.36.0/Source/WebCore/platform/graphics/x11/XUniqueResource.h:86
#4  ~XUniqueResource () at /home/pobj/webkitgtk4-2.36.0/webkitgtk-2.36.0/Source/WebCore/platform/graphics/x11/XUniqueResource.h:77
#5  ~GLContextGLX () at /home/pobj/webkitgtk4-2.36.0/webkitgtk-2.36.0/Source/WebCore/platform/graphics/glx/GLContextGLX.cpp:341
#6  0x00000f5eea945f3f in ~GLContextGLX () at /home/pobj/webkitgtk4-2.36.0/webkitgtk-2.36.0/Source/WebCore/platform/graphics/glx/GLContextGLX.cpp:323
#7  0x00000f5eea955161 in operator() () at /usr/include/c++/v1/__memory/unique_ptr.h:57
#8  reset () at /usr/include/c++/v1/__memory/unique_ptr.h:318
#9  operator= () at /usr/include/c++/v1/__memory/unique_ptr.h:276
#10 ~PlatformDisplayX11 () at /home/pobj/webkitgtk4-2.36.0/webkitgtk-2.36.0/Source/WebCore/platform/graphics/x11/PlatformDisplayX11.cpp:76
#11 ~PlatformDisplayX11 () at /home/pobj/webkitgtk4-2.36.0/webkitgtk-2.36.0/Source/WebCore/platform/graphics/x11/PlatformDisplayX11.cpp:73
#12 0x00000f5ed8272df1 in _libc___cxa_finalize (dso=0x0) at /usr/src/lib/libc/stdlib/atexit.c:177
#13 0x00000f5ed826b1a1 in _libc_exit (status=0) at /usr/src/lib/libc/stdlib/exit.c:54
#14 0x00000f5c422ffa09 in _start ()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1855947</commentid>
    <comment_count>46</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2022-03-29 01:49:18 -0700</bug_when>
    <thetext>(In reply to robert.nagy from comment #45)
&gt; Hi
&gt; 
&gt; After upgrading to webkitgtk 2.36.0 from 2.34 we have noticed a crash on
&gt; ever exit
&gt; in all binaries using webkitgtk and reverting this commit fixes the issue.
&gt; 
&gt; I assume there is either a race or somethig gets called twice and it is
&gt; trying
&gt; to destroy an already destroyed resource.
&gt; 
&gt; Backtrace:
&gt; 
&gt; #0  native () at
&gt; /home/pobj/webkitgtk4-2.36.0/webkitgtk-2.36.0/Source/WebCore/platform/
&gt; graphics/x11/PlatformDisplayX11.h:48
&gt; #1  sharedDisplay () at
&gt; /home/pobj/webkitgtk4-2.36.0/webkitgtk-2.36.0/Source/WebCore/platform/
&gt; graphics/x11/XUniqueResource.cpp:46
&gt; #2  deleteXResource () at
&gt; /home/pobj/webkitgtk4-2.36.0/webkitgtk-2.36.0/Source/WebCore/platform/
&gt; graphics/x11/XUniqueResource.cpp:79
&gt; #3  0x00000f5eea945e8c in reset () at
&gt; /home/pobj/webkitgtk4-2.36.0/webkitgtk-2.36.0/Source/WebCore/platform/
&gt; graphics/x11/XUniqueResource.h:86
&gt; #4  ~XUniqueResource () at
&gt; /home/pobj/webkitgtk4-2.36.0/webkitgtk-2.36.0/Source/WebCore/platform/
&gt; graphics/x11/XUniqueResource.h:77
&gt; #5  ~GLContextGLX () at
&gt; /home/pobj/webkitgtk4-2.36.0/webkitgtk-2.36.0/Source/WebCore/platform/
&gt; graphics/glx/GLContextGLX.cpp:341
&gt; #6  0x00000f5eea945f3f in ~GLContextGLX () at
&gt; /home/pobj/webkitgtk4-2.36.0/webkitgtk-2.36.0/Source/WebCore/platform/
&gt; graphics/glx/GLContextGLX.cpp:323
&gt; #7  0x00000f5eea955161 in operator() () at
&gt; /usr/include/c++/v1/__memory/unique_ptr.h:57
&gt; #8  reset () at /usr/include/c++/v1/__memory/unique_ptr.h:318
&gt; #9  operator= () at /usr/include/c++/v1/__memory/unique_ptr.h:276
&gt; #10 ~PlatformDisplayX11 () at
&gt; /home/pobj/webkitgtk4-2.36.0/webkitgtk-2.36.0/Source/WebCore/platform/
&gt; graphics/x11/PlatformDisplayX11.cpp:76
&gt; #11 ~PlatformDisplayX11 () at
&gt; /home/pobj/webkitgtk4-2.36.0/webkitgtk-2.36.0/Source/WebCore/platform/
&gt; graphics/x11/PlatformDisplayX11.cpp:73
&gt; #12 0x00000f5ed8272df1 in _libc___cxa_finalize (dso=0x0) at
&gt; /usr/src/lib/libc/stdlib/atexit.c:177
&gt; #13 0x00000f5ed826b1a1 in _libc_exit (status=0) at
&gt; /usr/src/lib/libc/stdlib/exit.c:54
&gt; #14 0x00000f5c422ffa09 in _start ()

Let&apos;s track this in a new bug, see https://bugs.webkit.org/show_bug.cgi?id=238494</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>449800</attachid>
            <date>2022-01-24 04:34:55 -0800</date>
            <delta_ts>2022-01-24 06:20:51 -0800</delta_ts>
            <desc>patch</desc>
            <filename>bug-217655-20220124133453.patch</filename>
            <type>text/plain</type>
            <size>7221</size>
            <attacher name="Pablo Saavedra">psaavedra</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg4NDMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTJiMzkyNmRlMzEzODVh
Y2QxMzRmNzc2YTA5YjU1MDM4NjU0M2RiOC4uMmQ2Njg3YzJiOWRkZTVlYWFhYzA4NmViNGE0MDk0
NjAwNmU0ZmMyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDIyLTAxLTI0ICBQYWJs
byBTYWF2ZWRyYSAgPHBzYWF2ZWRyYUBpZ2FsaWEuY29tPgorCisgICAgICAgIFByb3Blcmx5IHVu
aW5pdGlhbGl6ZSBFR0wgZGlzcGxheSBiZWZvcmUgdGVybWluYXRpb24KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzY1NQorCisgICAgICAgIEZyb20g
dGhlIGRvY3M6CisKKyAgICAgICAgSWYgY29udGV4dHMgb3Igc3VyZmFjZXMgYXNzb2NpYXRlZCB3
aXRoIGRpc3BsYXkgaXMKKyAgICAgICAgY3VycmVudCB0byBhbnkgdGhyZWFkLCB0aGV5IGFyZSBu
b3QgcmVsZWFzZWQgdW50aWwKKyAgICAgICAgdGhleSBhcmUgbm8gbG9uZ2VyIGN1cnJlbnQgYXMg
YSByZXN1bHQgb2YKKyAgICAgICAgZWdsTWFrZUN1cnJlbnQuCisKKyAgICAgICAgU28gY2FsbCBl
Z2xNYWtlQ3VycmVudCgpIHRvIHN1Y2ggZWZmZWN0LgorCisgICAgICAgIFRoYW5rcyB0byBDbGF1
ZGlvIFNhYXZlZHJhIGZvciBoaXMgaGVscCBpbiBtYWtpbmcgdGhpcyBwYXRjaC4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL1BsYXRmb3JtRGlzcGxheS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybURpc3Bs
YXk6OnRlcm1pbmF0ZUVHTERpc3BsYXkpOgorCiAyMDIyLTAxLTI0ICBTYWlkIEFib3UtSGFsbGF3
YSAgPHNhaWRAYXBwbGUuY29tPgogCiAgICAgICAgIFtHUFUgUHJvY2Vzc10gW0ZpbHRlcnNdIE1v
dmUgRkVJbWFnZSB0byB0aGUgJ3BsYXRmb3JtJyBkaXJlY3RvcnkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZDc2YTM0
ZDY0OTZiMWMxNjVhZjNlYTdiYTIwYmUzOGQwMjFlNTNjYS4uZTg0NjBjYjI4ZjQ4MzJkOTk4NTA0
MjkyZWJjZmYxZTRjZWVkOTAxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MyBAQAorMjAyMi0wMS0y
NCAgUGFibG8gU2FhdmVkcmEgIDxwc2FhdmVkcmFAaWdhbGlhLmNvbT4KKworICAgICAgICBVc2Ug
ZXhpdCgpIHRvIGNsb3NlIHByb2Nlc3NlcyBvbiBjb25uZWN0aW9uIGRyb3AgYW5kIHByb3Blcmx5
IHVuaW5pdGlhbGl6YXRpb24gdGhlIEVHTCBkaXNwbGF5CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTc2NTUKKworICAgICAgICBfZXhpdCgpIGRvZXMg
bm90IGNhbGwgdGhlIGF0ZXhpdCBoYW5kbGVycyB3ZSBhcmUgdXNpbmcgaW4gc29tZSBwbGFjZXMu
CisgICAgICAgIEFsc28sIGRvIG5vdCBmYXN0LXRyYWNrIGFuIF9leGl0KCkgZnJvbSBhIHdvcmtl
ciB0aHJlYWQgb24gSVBDIGRpc2Nvbm5lY3Rpb24KKworICAgICAgICBXZSByZWx5IG9uIGV4aXQg
aGFuZGxlcnMgdG8gY2xlYW51cCBFR0wgcmVzb3VyY2VzLCBhbmQgdGhpcyBoYW5kbGVyCisgICAg
ICAgIG5lZWRzIHRvIGJlIGNhbGxlZCBmcm9tIHRoZSBtYWluIHRocmVhZC4gVGhlIENvbm5lY3Rp
b246OkNsaWVudDo6ZGlkQ2xvc2UoKQorICAgICAgICBoYW5kbGVyIGluc3RhbGxlZCBmcm9tIEF1
eGlsaWFyeVByb2Nlc3Mgd2lsbCBkbyB0aGF0IGZvciB1cywgd2UgZG9uJ3QKKyAgICAgICAgbmVl
ZCBhbm90aGVyIG9uZSBpbiB0aGUgd2ViIHByb2Nlc3MKKworICAgICAgICBQcm9wZXJseSB1bmlu
aXRpYWxpemUgRUdMIGRpc3BsYXkgYmVmb3JlIHRlcm1pbmF0aW9uLiBGcm9tIHRoZSBkb2NzOgor
CisgICAgICAgICAgICBJZiBjb250ZXh0cyBvciBzdXJmYWNlcyBhc3NvY2lhdGVkIHdpdGggZGlz
cGxheSBpcworICAgICAgICAgICAgY3VycmVudCB0byBhbnkgdGhyZWFkLCB0aGV5IGFyZSBub3Qg
cmVsZWFzZWQgdW50aWwKKyAgICAgICAgICAgIHRoZXkgYXJlIG5vIGxvbmdlciBjdXJyZW50IGFz
IGEgcmVzdWx0IG9mCisgICAgICAgICAgICBlZ2xNYWtlQ3VycmVudC4KKworICAgICAgICAgICAg
U28gY2FsbCBlZ2xNYWtlQ3VycmVudCgpIHRvIHN1Y2ggZWZmZWN0LgorCisgICAgICAgIEluIGFk
ZGl0aW9uLCB0aGUgQ29ubmVjdGlvbjo6ZGlkQ2xvc2UoKSBjbG9zZSB0aGUgV2ViUGFnZXMgYmVm
b3JlIGV4aXQKKyAgICAgICAgZW5kaW5nLXVwIGluIHRoZSBpbnZhbGlkYXRpb24gb2YgdGhlIFRo
cmVhZGVkQ29tcG9zaXRvciBvYmplY3QKKyAgICAgICAgYXNzb2NpYXRlZCB0byB0aGUgV2ViUGFn
ZXMuIFRoaXMgd2lsbCByZWxlYXNlIHRoZSBFR0wgcmVzb3VyY2VzCisgICAgICAgIHByZXZlbnRp
bmcgdGhlIFdlYlByb2Nlc3MgaGFuZyBpbiB0aGUgZWdsVGVybWluYXRlKCkgZHVyaW5nCisgICAg
ICAgIGFuIGV4aXQoKSBjYWxsLgorCisgICAgICAgIFRoYW5rcyB0byBDbGF1ZGlvIFNhYXZlZHJh
IGZvciBoaXMgaGVscCBpbiBtYWtpbmcgdGhpcyBwYXRjaC4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNoYXJlZC9BdXhpbGlhcnlQcm9jZXNzLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6QXV4aWxpYXJ5UHJvY2Vzczo6ZGlkQ2xvc2UpOgorICAgICAg
ICAqIFNoYXJlZC9BdXhpbGlhcnlQcm9jZXNzLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
cm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6aW5pdGlhbGl6ZUNvbm5l
Y3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpkaWRDbG9zZSk6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmg6CisKIDIwMjItMDEtMjQgIFNhaWQgQWJvdS1IYWxs
YXdhICA8c2FpZEBhcHBsZS5jb20+CiAKICAgICAgICAgW0dQVSBQcm9jZXNzXSBbRmlsdGVyc10g
TW92ZSBGRUltYWdlIHRvIHRoZSAncGxhdGZvcm0nIGRpcmVjdG9yeQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1EaXNwbGF5LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtRGlzcGxheS5jcHAKaW5kZXggMGRi
MTcwNzA5MjJjYTAzY2Q1NzQzMzg3MTY3MGExMWRmNjcxYTNjYi4uNDAyNDU4MDM1MmI2NTk2OTgz
OWJmZGRmNTNhNDYzZTA3MWNiOTA5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvUGxhdGZvcm1EaXNwbGF5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybURpc3BsYXkuY3BwCkBAIC0yNzQsNiArMjc0LDcgQEAgdm9p
ZCBQbGF0Zm9ybURpc3BsYXk6OnRlcm1pbmF0ZUVHTERpc3BsYXkoKQogICAgIEFTU0VSVChtX2Vn
bERpc3BsYXlJbml0aWFsaXplZCk7CiAgICAgaWYgKG1fZWdsRGlzcGxheSA9PSBFR0xfTk9fRElT
UExBWSkKICAgICAgICAgcmV0dXJuOworICAgIGVnbE1ha2VDdXJyZW50KG1fZWdsRGlzcGxheSwg
RUdMX05PX1NVUkZBQ0UsIEVHTF9OT19TVVJGQUNFLCBFR0xfTk9fQ09OVEVYVCk7CiAgICAgZWds
VGVybWluYXRlKG1fZWdsRGlzcGxheSk7CiAgICAgbV9lZ2xEaXNwbGF5ID0gRUdMX05PX0RJU1BM
QVk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BdXhpbGlhcnlQcm9jZXNz
LmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0F1eGlsaWFyeVByb2Nlc3MuY3BwCmluZGV4IDY3
OGJiNGZlMjQ3YTg3ZTFmMWU0OTk2OTdlYTZkNWRiMzAwNjQ0NWUuLjEzZTZhYjQ3NmQ3OTcwZWEx
ODNlOTZmNDA5YThlMWU0MDViZWZlOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L0F1eGlsaWFyeVByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0F1eGlsaWFy
eVByb2Nlc3MuY3BwCkBAIC02MCw3ICs2MCw3IEBAIEF1eGlsaWFyeVByb2Nlc3M6On5BdXhpbGlh
cnlQcm9jZXNzKCkKIAogdm9pZCBBdXhpbGlhcnlQcm9jZXNzOjpkaWRDbG9zZShJUEM6OkNvbm5l
Y3Rpb24mKQogewotICAgIF9leGl0KEVYSVRfU1VDQ0VTUyk7CisgICAgZXhpdChFWElUX1NVQ0NF
U1MpOwogfQogCiB2b2lkIEF1eGlsaWFyeVByb2Nlc3M6OmluaXRpYWxpemUoY29uc3QgQXV4aWxp
YXJ5UHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0F1eGlsaWFyeVByb2Nlc3MuaCBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL0F1eGlsaWFyeVByb2Nlc3MuaAppbmRleCBlOTdlNzliYjljZDlhZDU3MWM4YWUy
OGU0NDE4NjA5OTY2OWNjZDJmLi4wZTk0MjY0Mjg5M2E3NTJiNjBmNGU3M2FlMWUxNmM4NWUzNjBm
Nzc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BdXhpbGlhcnlQcm9jZXNzLmgK
KysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQXV4aWxpYXJ5UHJvY2Vzcy5oCkBAIC0xMTAsNiAr
MTEwLDkgQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgdm9pZCBpbml0aWFsaXplU2FuZGJveChj
b25zdCBBdXhpbGlhcnlQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJiwgU2FuZGJveElu
aXRpYWxpemF0aW9uUGFyYW1ldGVycyYpOwogICAgIHZpcnR1YWwgdm9pZCBpbml0aWFsaXplQ29u
bmVjdGlvbihJUEM6OkNvbm5lY3Rpb24qKTsKIAorICAgIC8vIElQQzo6Q29ubmVjdGlvbjo6Q2xp
ZW50LgorICAgIHZpcnR1YWwgdm9pZCBkaWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mKTsKKwogICAg
IHZpcnR1YWwgYm9vbCBzaG91bGRUZXJtaW5hdGUoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHRl
cm1pbmF0ZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJv
Y2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKaW5kZXgg
Njg5NzBlZDcwNDUzNzkzOTBmNTI4MWIyNzY1ODExYTIyYzA3ZTJkMi4uOGU3MzZlMzQyYTk3ZGM1
Y2Y3NWYwMGRmNjczZDIwYjQ1NWZmYjI1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
cm9jZXNzLmNwcApAQCAtMzU1LDkgKzM1NSwxMSBAQCB2b2lkIFdlYlByb2Nlc3M6OmluaXRpYWxp
emVDb25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbikKIHsKICAgICBBdXhpbGlh
cnlQcm9jZXNzOjppbml0aWFsaXplQ29ubmVjdGlvbihjb25uZWN0aW9uKTsKIAorI2lmICFQTEFU
Rk9STShXUEUpCiAgICAgLy8gV2UgY2FsbCBfZXhpdCgpIGRpcmVjdGx5IGZyb20gdGhlIGJhY2tn
cm91bmQgcXVldWUgaW4gY2FzZSB0aGUgbWFpbiB0aHJlYWQgaXMgdW5yZXNwb25zaXZlCiAgICAg
Ly8gYW5kIEF1eGlsaWFyeVByb2Nlc3M6OmRpZENsb3NlKCkgZG9lcyBub3QgZ2V0IGNhbGxlZC4K
ICAgICBjb25uZWN0aW9uLT5zZXREaWRDbG9zZU9uQ29ubmVjdGlvbldvcmtRdWV1ZUNhbGxiYWNr
KGNhbGxFeGl0KTsKKyNlbmRpZgogCiAjaWYgIVBMQVRGT1JNKEdUSykgJiYgIVBMQVRGT1JNKFdQ
RSkgJiYgIUVOQUJMRShJUENfVEVTVElOR19BUEkpCiAgICAgY29ubmVjdGlvbi0+c2V0U2hvdWxk
RXhpdE9uU3luY01lc3NhZ2VTZW5kRmFpbHVyZSh0cnVlKTsKQEAgLTg3OSw2ICs4ODEsMjIgQEAg
dm9pZCBXZWJQcm9jZXNzOjp0ZXJtaW5hdGUoKQogICAgIEF1eGlsaWFyeVByb2Nlc3M6OnRlcm1p
bmF0ZSgpOwogfQogCit2b2lkIFdlYlByb2Nlc3M6OmRpZENsb3NlKElQQzo6Q29ubmVjdGlvbiYg
Y29ubmVjdGlvbikKK3sKKyAgICBwbGF0Zm9ybVRlcm1pbmF0ZSgpOworCisgICAgQXV4aWxpYXJ5
UHJvY2Vzczo6dGVybWluYXRlKCk7CisKKyAgICAvLyBDbG9zaW5nIFdlYlBhZ2VzIGJlZm9yZSBl
eGl0LiBUaGlzIGVuZHMtdXAgaW4gdGhlIGludmFsaWRhdGlvbiBvZiB0aGUKKyAgICAvLyBUaHJl
YWRlZENvbXBvc2l0b3Igb2JqZWN0cyBhc3NvY2lhdGVkIHRvIHRob3NlIFdlYlBhZ2VzLiBUaGlz
IGFjdGlvbgorICAgIC8vIHdpbGwgcmVsZWFzZSB0aGUgRUdMIHJlc291cmNlcyBwcmV2ZW50aW5n
IHRoZSBXZWJQcm9jZXNzIGhhbmcgaW4gdGhlCisgICAgLy8gZWdsVGVybWluYXRlKCkgZHVyaW5n
IGEgZXhpdCgpIGNhbGwuCisgICAgZm9yIChhdXRvJiB3ZWJQYWdlIDogbV9wYWdlTWFwLnZhbHVl
cygpKQorICAgICAgICB3ZWJQYWdlLT5jbG9zZSgpOworCisgICAgQXV4aWxpYXJ5UHJvY2Vzczo6
ZGlkQ2xvc2UoY29ubmVjdGlvbik7Cit9CisKIGJvb2wgV2ViUHJvY2Vzczo6ZGlkUmVjZWl2ZVN5
bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNv
ZGVyLCBVbmlxdWVSZWY8SVBDOjpFbmNvZGVyPiYgcmVwbHlFbmNvZGVyKQogewogICAgIGlmICht
ZXNzYWdlUmVjZWl2ZXJNYXAoKS5kaXNwYXRjaFN5bmNNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29k
ZXIsIHJlcGx5RW5jb2RlcikpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAppbmRl
eCBlODdkNzMzZDc2YWRlZTBjYjhiYWRiODdmNWNhNzU1ZGE2MmQ3MDMyLi5mODk1MDZmNzFiOTFl
MTQyNWVhZGYyNWM1OTEwYjAyNTM0ZmYwNDkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
cm9jZXNzLmgKQEAgLTUwNiw2ICs1MDYsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgaW5pdGlhbGl6
ZUNvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uKikgb3ZlcnJpZGU7CiAgICAgYm9vbCBzaG91bGRU
ZXJtaW5hdGUoKSBvdmVycmlkZTsKICAgICB2b2lkIHRlcm1pbmF0ZSgpIG92ZXJyaWRlOworICAg
IHZvaWQgZGlkQ2xvc2UoSVBDOjpDb25uZWN0aW9uJikgb3ZlcnJpZGU7CiAKICNpZiBVU0UoQVBQ
S0lUKQogICAgIHZvaWQgc3RvcFJ1bkxvb3AoKSBvdmVycmlkZTsK
</data>
<flag name="commit-queue"
          id="476023"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>449805</attachid>
            <date>2022-01-24 06:08:23 -0800</date>
            <delta_ts>2022-01-24 08:00:28 -0800</delta_ts>
            <desc>patch</desc>
            <filename>bug-217655-20220124150820.patch</filename>
            <type>text/plain</type>
            <size>7436</size>
            <attacher name="Pablo Saavedra">psaavedra</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg4NDMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTJiMzkyNmRlMzEzODVh
Y2QxMzRmNzc2YTA5YjU1MDM4NjU0M2RiOC4uMmQ2Njg3YzJiOWRkZTVlYWFhYzA4NmViNGE0MDk0
NjAwNmU0ZmMyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDIyLTAxLTI0ICBQYWJs
byBTYWF2ZWRyYSAgPHBzYWF2ZWRyYUBpZ2FsaWEuY29tPgorCisgICAgICAgIFByb3Blcmx5IHVu
aW5pdGlhbGl6ZSBFR0wgZGlzcGxheSBiZWZvcmUgdGVybWluYXRpb24KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzY1NQorCisgICAgICAgIEZyb20g
dGhlIGRvY3M6CisKKyAgICAgICAgSWYgY29udGV4dHMgb3Igc3VyZmFjZXMgYXNzb2NpYXRlZCB3
aXRoIGRpc3BsYXkgaXMKKyAgICAgICAgY3VycmVudCB0byBhbnkgdGhyZWFkLCB0aGV5IGFyZSBu
b3QgcmVsZWFzZWQgdW50aWwKKyAgICAgICAgdGhleSBhcmUgbm8gbG9uZ2VyIGN1cnJlbnQgYXMg
YSByZXN1bHQgb2YKKyAgICAgICAgZWdsTWFrZUN1cnJlbnQuCisKKyAgICAgICAgU28gY2FsbCBl
Z2xNYWtlQ3VycmVudCgpIHRvIHN1Y2ggZWZmZWN0LgorCisgICAgICAgIFRoYW5rcyB0byBDbGF1
ZGlvIFNhYXZlZHJhIGZvciBoaXMgaGVscCBpbiBtYWtpbmcgdGhpcyBwYXRjaC4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL1BsYXRmb3JtRGlzcGxheS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybURpc3Bs
YXk6OnRlcm1pbmF0ZUVHTERpc3BsYXkpOgorCiAyMDIyLTAxLTI0ICBTYWlkIEFib3UtSGFsbGF3
YSAgPHNhaWRAYXBwbGUuY29tPgogCiAgICAgICAgIFtHUFUgUHJvY2Vzc10gW0ZpbHRlcnNdIE1v
dmUgRkVJbWFnZSB0byB0aGUgJ3BsYXRmb3JtJyBkaXJlY3RvcnkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZDc2YTM0
ZDY0OTZiMWMxNjVhZjNlYTdiYTIwYmUzOGQwMjFlNTNjYS4uZTg0NjBjYjI4ZjQ4MzJkOTk4NTA0
MjkyZWJjZmYxZTRjZWVkOTAxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MyBAQAorMjAyMi0wMS0y
NCAgUGFibG8gU2FhdmVkcmEgIDxwc2FhdmVkcmFAaWdhbGlhLmNvbT4KKworICAgICAgICBVc2Ug
ZXhpdCgpIHRvIGNsb3NlIHByb2Nlc3NlcyBvbiBjb25uZWN0aW9uIGRyb3AgYW5kIHByb3Blcmx5
IHVuaW5pdGlhbGl6YXRpb24gdGhlIEVHTCBkaXNwbGF5CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTc2NTUKKworICAgICAgICBfZXhpdCgpIGRvZXMg
bm90IGNhbGwgdGhlIGF0ZXhpdCBoYW5kbGVycyB3ZSBhcmUgdXNpbmcgaW4gc29tZSBwbGFjZXMu
CisgICAgICAgIEFsc28sIGRvIG5vdCBmYXN0LXRyYWNrIGFuIF9leGl0KCkgZnJvbSBhIHdvcmtl
ciB0aHJlYWQgb24gSVBDIGRpc2Nvbm5lY3Rpb24KKworICAgICAgICBXZSByZWx5IG9uIGV4aXQg
aGFuZGxlcnMgdG8gY2xlYW51cCBFR0wgcmVzb3VyY2VzLCBhbmQgdGhpcyBoYW5kbGVyCisgICAg
ICAgIG5lZWRzIHRvIGJlIGNhbGxlZCBmcm9tIHRoZSBtYWluIHRocmVhZC4gVGhlIENvbm5lY3Rp
b246OkNsaWVudDo6ZGlkQ2xvc2UoKQorICAgICAgICBoYW5kbGVyIGluc3RhbGxlZCBmcm9tIEF1
eGlsaWFyeVByb2Nlc3Mgd2lsbCBkbyB0aGF0IGZvciB1cywgd2UgZG9uJ3QKKyAgICAgICAgbmVl
ZCBhbm90aGVyIG9uZSBpbiB0aGUgd2ViIHByb2Nlc3MKKworICAgICAgICBQcm9wZXJseSB1bmlu
aXRpYWxpemUgRUdMIGRpc3BsYXkgYmVmb3JlIHRlcm1pbmF0aW9uLiBGcm9tIHRoZSBkb2NzOgor
CisgICAgICAgICAgICBJZiBjb250ZXh0cyBvciBzdXJmYWNlcyBhc3NvY2lhdGVkIHdpdGggZGlz
cGxheSBpcworICAgICAgICAgICAgY3VycmVudCB0byBhbnkgdGhyZWFkLCB0aGV5IGFyZSBub3Qg
cmVsZWFzZWQgdW50aWwKKyAgICAgICAgICAgIHRoZXkgYXJlIG5vIGxvbmdlciBjdXJyZW50IGFz
IGEgcmVzdWx0IG9mCisgICAgICAgICAgICBlZ2xNYWtlQ3VycmVudC4KKworICAgICAgICAgICAg
U28gY2FsbCBlZ2xNYWtlQ3VycmVudCgpIHRvIHN1Y2ggZWZmZWN0LgorCisgICAgICAgIEluIGFk
ZGl0aW9uLCB0aGUgQ29ubmVjdGlvbjo6ZGlkQ2xvc2UoKSBjbG9zZSB0aGUgV2ViUGFnZXMgYmVm
b3JlIGV4aXQKKyAgICAgICAgZW5kaW5nLXVwIGluIHRoZSBpbnZhbGlkYXRpb24gb2YgdGhlIFRo
cmVhZGVkQ29tcG9zaXRvciBvYmplY3QKKyAgICAgICAgYXNzb2NpYXRlZCB0byB0aGUgV2ViUGFn
ZXMuIFRoaXMgd2lsbCByZWxlYXNlIHRoZSBFR0wgcmVzb3VyY2VzCisgICAgICAgIHByZXZlbnRp
bmcgdGhlIFdlYlByb2Nlc3MgaGFuZyBpbiB0aGUgZWdsVGVybWluYXRlKCkgZHVyaW5nCisgICAg
ICAgIGFuIGV4aXQoKSBjYWxsLgorCisgICAgICAgIFRoYW5rcyB0byBDbGF1ZGlvIFNhYXZlZHJh
IGZvciBoaXMgaGVscCBpbiBtYWtpbmcgdGhpcyBwYXRjaC4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNoYXJlZC9BdXhpbGlhcnlQcm9jZXNzLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6QXV4aWxpYXJ5UHJvY2Vzczo6ZGlkQ2xvc2UpOgorICAgICAg
ICAqIFNoYXJlZC9BdXhpbGlhcnlQcm9jZXNzLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
cm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6aW5pdGlhbGl6ZUNvbm5l
Y3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpkaWRDbG9zZSk6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmg6CisKIDIwMjItMDEtMjQgIFNhaWQgQWJvdS1IYWxs
YXdhICA8c2FpZEBhcHBsZS5jb20+CiAKICAgICAgICAgW0dQVSBQcm9jZXNzXSBbRmlsdGVyc10g
TW92ZSBGRUltYWdlIHRvIHRoZSAncGxhdGZvcm0nIGRpcmVjdG9yeQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1EaXNwbGF5LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtRGlzcGxheS5jcHAKaW5kZXggMGRi
MTcwNzA5MjJjYTAzY2Q1NzQzMzg3MTY3MGExMWRmNjcxYTNjYi4uNDAyNDU4MDM1MmI2NTk2OTgz
OWJmZGRmNTNhNDYzZTA3MWNiOTA5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvUGxhdGZvcm1EaXNwbGF5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybURpc3BsYXkuY3BwCkBAIC0yNzQsNiArMjc0LDcgQEAgdm9p
ZCBQbGF0Zm9ybURpc3BsYXk6OnRlcm1pbmF0ZUVHTERpc3BsYXkoKQogICAgIEFTU0VSVChtX2Vn
bERpc3BsYXlJbml0aWFsaXplZCk7CiAgICAgaWYgKG1fZWdsRGlzcGxheSA9PSBFR0xfTk9fRElT
UExBWSkKICAgICAgICAgcmV0dXJuOworICAgIGVnbE1ha2VDdXJyZW50KG1fZWdsRGlzcGxheSwg
RUdMX05PX1NVUkZBQ0UsIEVHTF9OT19TVVJGQUNFLCBFR0xfTk9fQ09OVEVYVCk7CiAgICAgZWds
VGVybWluYXRlKG1fZWdsRGlzcGxheSk7CiAgICAgbV9lZ2xEaXNwbGF5ID0gRUdMX05PX0RJU1BM
QVk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BdXhpbGlhcnlQcm9jZXNz
LmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0F1eGlsaWFyeVByb2Nlc3MuY3BwCmluZGV4IDY3
OGJiNGZlMjQ3YTg3ZTFmMWU0OTk2OTdlYTZkNWRiMzAwNjQ0NWUuLjEzZTZhYjQ3NmQ3OTcwZWEx
ODNlOTZmNDA5YThlMWU0MDViZWZlOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L0F1eGlsaWFyeVByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0F1eGlsaWFy
eVByb2Nlc3MuY3BwCkBAIC02MCw3ICs2MCw3IEBAIEF1eGlsaWFyeVByb2Nlc3M6On5BdXhpbGlh
cnlQcm9jZXNzKCkKIAogdm9pZCBBdXhpbGlhcnlQcm9jZXNzOjpkaWRDbG9zZShJUEM6OkNvbm5l
Y3Rpb24mKQogewotICAgIF9leGl0KEVYSVRfU1VDQ0VTUyk7CisgICAgZXhpdChFWElUX1NVQ0NF
U1MpOwogfQogCiB2b2lkIEF1eGlsaWFyeVByb2Nlc3M6OmluaXRpYWxpemUoY29uc3QgQXV4aWxp
YXJ5UHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0F1eGlsaWFyeVByb2Nlc3MuaCBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL0F1eGlsaWFyeVByb2Nlc3MuaAppbmRleCBlOTdlNzliYjljZDlhZDU3MWM4YWUy
OGU0NDE4NjA5OTY2OWNjZDJmLi5mN2MyZTBkYTFlNWI4NDlkZmExNmIzOGZhMzM2ZDM2NzM0Njg0
NWE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BdXhpbGlhcnlQcm9jZXNzLmgK
KysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQXV4aWxpYXJ5UHJvY2Vzcy5oCkBAIC0xMTAsNiAr
MTEwLDkgQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgdm9pZCBpbml0aWFsaXplU2FuZGJveChj
b25zdCBBdXhpbGlhcnlQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJiwgU2FuZGJveElu
aXRpYWxpemF0aW9uUGFyYW1ldGVycyYpOwogICAgIHZpcnR1YWwgdm9pZCBpbml0aWFsaXplQ29u
bmVjdGlvbihJUEM6OkNvbm5lY3Rpb24qKTsKIAorICAgIC8vIElQQzo6Q29ubmVjdGlvbjo6Q2xp
ZW50LgorICAgIHZpcnR1YWwgdm9pZCBkaWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mKTsKKwogICAg
IHZpcnR1YWwgYm9vbCBzaG91bGRUZXJtaW5hdGUoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHRl
cm1pbmF0ZSgpOwogCkBAIC0xNTYsNyArMTU5LDYgQEAgcHJpdmF0ZToKIAogICAgIC8vIElQQzo6
Q29ubmVjdGlvbjo6Q2xpZW50LgogICAgIHZvaWQgZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKElQ
Qzo6Q29ubmVjdGlvbiYsIElQQzo6TWVzc2FnZU5hbWUpIGZpbmFsOwotICAgIHZvaWQgZGlkQ2xv
c2UoSVBDOjpDb25uZWN0aW9uJikgb3ZlcnJpZGU7CiAKICAgICB2b2lkIHNodXREb3duKCk7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAppbmRleCA2ODk3MGVkNzA0NTM3
OTM5MGY1MjgxYjI3NjU4MTFhMjJjMDdlMmQyLi44ZTczNmUzNDJhOTdkYzVjZjc1ZjAwZGY2NzNk
MjBiNDU1ZmZiMjVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJv
Y2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCkBA
IC0zNTUsOSArMzU1LDExIEBAIHZvaWQgV2ViUHJvY2Vzczo6aW5pdGlhbGl6ZUNvbm5lY3Rpb24o
SVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uKQogewogICAgIEF1eGlsaWFyeVByb2Nlc3M6Omlu
aXRpYWxpemVDb25uZWN0aW9uKGNvbm5lY3Rpb24pOwogCisjaWYgIVBMQVRGT1JNKFdQRSkKICAg
ICAvLyBXZSBjYWxsIF9leGl0KCkgZGlyZWN0bHkgZnJvbSB0aGUgYmFja2dyb3VuZCBxdWV1ZSBp
biBjYXNlIHRoZSBtYWluIHRocmVhZCBpcyB1bnJlc3BvbnNpdmUKICAgICAvLyBhbmQgQXV4aWxp
YXJ5UHJvY2Vzczo6ZGlkQ2xvc2UoKSBkb2VzIG5vdCBnZXQgY2FsbGVkLgogICAgIGNvbm5lY3Rp
b24tPnNldERpZENsb3NlT25Db25uZWN0aW9uV29ya1F1ZXVlQ2FsbGJhY2soY2FsbEV4aXQpOwor
I2VuZGlmCiAKICNpZiAhUExBVEZPUk0oR1RLKSAmJiAhUExBVEZPUk0oV1BFKSAmJiAhRU5BQkxF
KElQQ19URVNUSU5HX0FQSSkKICAgICBjb25uZWN0aW9uLT5zZXRTaG91bGRFeGl0T25TeW5jTWVz
c2FnZVNlbmRGYWlsdXJlKHRydWUpOwpAQCAtODc5LDYgKzg4MSwyMiBAQCB2b2lkIFdlYlByb2Nl
c3M6OnRlcm1pbmF0ZSgpCiAgICAgQXV4aWxpYXJ5UHJvY2Vzczo6dGVybWluYXRlKCk7CiB9CiAK
K3ZvaWQgV2ViUHJvY2Vzczo6ZGlkQ2xvc2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKQor
eworICAgIHBsYXRmb3JtVGVybWluYXRlKCk7CisKKyAgICBBdXhpbGlhcnlQcm9jZXNzOjp0ZXJt
aW5hdGUoKTsKKworICAgIC8vIENsb3NpbmcgV2ViUGFnZXMgYmVmb3JlIGV4aXQuIFRoaXMgZW5k
cy11cCBpbiB0aGUgaW52YWxpZGF0aW9uIG9mIHRoZQorICAgIC8vIFRocmVhZGVkQ29tcG9zaXRv
ciBvYmplY3RzIGFzc29jaWF0ZWQgdG8gdGhvc2UgV2ViUGFnZXMuIFRoaXMgYWN0aW9uCisgICAg
Ly8gd2lsbCByZWxlYXNlIHRoZSBFR0wgcmVzb3VyY2VzIHByZXZlbnRpbmcgdGhlIFdlYlByb2Nl
c3MgaGFuZyBpbiB0aGUKKyAgICAvLyBlZ2xUZXJtaW5hdGUoKSBkdXJpbmcgYSBleGl0KCkgY2Fs
bC4KKyAgICBmb3IgKGF1dG8mIHdlYlBhZ2UgOiBtX3BhZ2VNYXAudmFsdWVzKCkpCisgICAgICAg
IHdlYlBhZ2UtPmNsb3NlKCk7CisKKyAgICBBdXhpbGlhcnlQcm9jZXNzOjpkaWRDbG9zZShjb25u
ZWN0aW9uKTsKK30KKwogYm9vbCBXZWJQcm9jZXNzOjpkaWRSZWNlaXZlU3luY01lc3NhZ2UoSVBD
OjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlY29kZXIsIFVuaXF1ZVJl
ZjxJUEM6OkVuY29kZXI+JiByZXBseUVuY29kZXIpCiB7CiAgICAgaWYgKG1lc3NhZ2VSZWNlaXZl
ck1hcCgpLmRpc3BhdGNoU3luY01lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2RlciwgcmVwbHlFbmNv
ZGVyKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCmluZGV4IGU4N2Q3MzNkNzZh
ZGVlMGNiOGJhZGI4N2Y1Y2E3NTVkYTYyZDcwMzIuLmY4OTUwNmY3MWI5MWUxNDI1ZWFkZjI1YzU5
MTBiMDI1MzRmZjA0OTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
cm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaApAQCAt
NTA2LDYgKzUwNiw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBpbml0aWFsaXplQ29ubmVjdGlvbihJ
UEM6OkNvbm5lY3Rpb24qKSBvdmVycmlkZTsKICAgICBib29sIHNob3VsZFRlcm1pbmF0ZSgpIG92
ZXJyaWRlOwogICAgIHZvaWQgdGVybWluYXRlKCkgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRDbG9z
ZShJUEM6OkNvbm5lY3Rpb24mKSBvdmVycmlkZTsKIAogI2lmIFVTRShBUFBLSVQpCiAgICAgdm9p
ZCBzdG9wUnVuTG9vcCgpIG92ZXJyaWRlOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>449816</attachid>
            <date>2022-01-24 08:00:35 -0800</date>
            <delta_ts>2022-01-24 11:30:07 -0800</delta_ts>
            <desc>patch</desc>
            <filename>bug-217655-20220124170033.patch</filename>
            <type>text/plain</type>
            <size>7507</size>
            <attacher name="Pablo Saavedra">psaavedra</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg4NDMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTJiMzkyNmRlMzEzODVh
Y2QxMzRmNzc2YTA5YjU1MDM4NjU0M2RiOC4uMmQ2Njg3YzJiOWRkZTVlYWFhYzA4NmViNGE0MDk0
NjAwNmU0ZmMyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDIyLTAxLTI0ICBQYWJs
byBTYWF2ZWRyYSAgPHBzYWF2ZWRyYUBpZ2FsaWEuY29tPgorCisgICAgICAgIFByb3Blcmx5IHVu
aW5pdGlhbGl6ZSBFR0wgZGlzcGxheSBiZWZvcmUgdGVybWluYXRpb24KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzY1NQorCisgICAgICAgIEZyb20g
dGhlIGRvY3M6CisKKyAgICAgICAgSWYgY29udGV4dHMgb3Igc3VyZmFjZXMgYXNzb2NpYXRlZCB3
aXRoIGRpc3BsYXkgaXMKKyAgICAgICAgY3VycmVudCB0byBhbnkgdGhyZWFkLCB0aGV5IGFyZSBu
b3QgcmVsZWFzZWQgdW50aWwKKyAgICAgICAgdGhleSBhcmUgbm8gbG9uZ2VyIGN1cnJlbnQgYXMg
YSByZXN1bHQgb2YKKyAgICAgICAgZWdsTWFrZUN1cnJlbnQuCisKKyAgICAgICAgU28gY2FsbCBl
Z2xNYWtlQ3VycmVudCgpIHRvIHN1Y2ggZWZmZWN0LgorCisgICAgICAgIFRoYW5rcyB0byBDbGF1
ZGlvIFNhYXZlZHJhIGZvciBoaXMgaGVscCBpbiBtYWtpbmcgdGhpcyBwYXRjaC4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL1BsYXRmb3JtRGlzcGxheS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybURpc3Bs
YXk6OnRlcm1pbmF0ZUVHTERpc3BsYXkpOgorCiAyMDIyLTAxLTI0ICBTYWlkIEFib3UtSGFsbGF3
YSAgPHNhaWRAYXBwbGUuY29tPgogCiAgICAgICAgIFtHUFUgUHJvY2Vzc10gW0ZpbHRlcnNdIE1v
dmUgRkVJbWFnZSB0byB0aGUgJ3BsYXRmb3JtJyBkaXJlY3RvcnkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZDc2YTM0
ZDY0OTZiMWMxNjVhZjNlYTdiYTIwYmUzOGQwMjFlNTNjYS4uZTg0NjBjYjI4ZjQ4MzJkOTk4NTA0
MjkyZWJjZmYxZTRjZWVkOTAxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MyBAQAorMjAyMi0wMS0y
NCAgUGFibG8gU2FhdmVkcmEgIDxwc2FhdmVkcmFAaWdhbGlhLmNvbT4KKworICAgICAgICBVc2Ug
ZXhpdCgpIHRvIGNsb3NlIHByb2Nlc3NlcyBvbiBjb25uZWN0aW9uIGRyb3AgYW5kIHByb3Blcmx5
IHVuaW5pdGlhbGl6YXRpb24gdGhlIEVHTCBkaXNwbGF5CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTc2NTUKKworICAgICAgICBfZXhpdCgpIGRvZXMg
bm90IGNhbGwgdGhlIGF0ZXhpdCBoYW5kbGVycyB3ZSBhcmUgdXNpbmcgaW4gc29tZSBwbGFjZXMu
CisgICAgICAgIEFsc28sIGRvIG5vdCBmYXN0LXRyYWNrIGFuIF9leGl0KCkgZnJvbSBhIHdvcmtl
ciB0aHJlYWQgb24gSVBDIGRpc2Nvbm5lY3Rpb24KKworICAgICAgICBXZSByZWx5IG9uIGV4aXQg
aGFuZGxlcnMgdG8gY2xlYW51cCBFR0wgcmVzb3VyY2VzLCBhbmQgdGhpcyBoYW5kbGVyCisgICAg
ICAgIG5lZWRzIHRvIGJlIGNhbGxlZCBmcm9tIHRoZSBtYWluIHRocmVhZC4gVGhlIENvbm5lY3Rp
b246OkNsaWVudDo6ZGlkQ2xvc2UoKQorICAgICAgICBoYW5kbGVyIGluc3RhbGxlZCBmcm9tIEF1
eGlsaWFyeVByb2Nlc3Mgd2lsbCBkbyB0aGF0IGZvciB1cywgd2UgZG9uJ3QKKyAgICAgICAgbmVl
ZCBhbm90aGVyIG9uZSBpbiB0aGUgd2ViIHByb2Nlc3MKKworICAgICAgICBQcm9wZXJseSB1bmlu
aXRpYWxpemUgRUdMIGRpc3BsYXkgYmVmb3JlIHRlcm1pbmF0aW9uLiBGcm9tIHRoZSBkb2NzOgor
CisgICAgICAgICAgICBJZiBjb250ZXh0cyBvciBzdXJmYWNlcyBhc3NvY2lhdGVkIHdpdGggZGlz
cGxheSBpcworICAgICAgICAgICAgY3VycmVudCB0byBhbnkgdGhyZWFkLCB0aGV5IGFyZSBub3Qg
cmVsZWFzZWQgdW50aWwKKyAgICAgICAgICAgIHRoZXkgYXJlIG5vIGxvbmdlciBjdXJyZW50IGFz
IGEgcmVzdWx0IG9mCisgICAgICAgICAgICBlZ2xNYWtlQ3VycmVudC4KKworICAgICAgICAgICAg
U28gY2FsbCBlZ2xNYWtlQ3VycmVudCgpIHRvIHN1Y2ggZWZmZWN0LgorCisgICAgICAgIEluIGFk
ZGl0aW9uLCB0aGUgQ29ubmVjdGlvbjo6ZGlkQ2xvc2UoKSBjbG9zZSB0aGUgV2ViUGFnZXMgYmVm
b3JlIGV4aXQKKyAgICAgICAgZW5kaW5nLXVwIGluIHRoZSBpbnZhbGlkYXRpb24gb2YgdGhlIFRo
cmVhZGVkQ29tcG9zaXRvciBvYmplY3QKKyAgICAgICAgYXNzb2NpYXRlZCB0byB0aGUgV2ViUGFn
ZXMuIFRoaXMgd2lsbCByZWxlYXNlIHRoZSBFR0wgcmVzb3VyY2VzCisgICAgICAgIHByZXZlbnRp
bmcgdGhlIFdlYlByb2Nlc3MgaGFuZyBpbiB0aGUgZWdsVGVybWluYXRlKCkgZHVyaW5nCisgICAg
ICAgIGFuIGV4aXQoKSBjYWxsLgorCisgICAgICAgIFRoYW5rcyB0byBDbGF1ZGlvIFNhYXZlZHJh
IGZvciBoaXMgaGVscCBpbiBtYWtpbmcgdGhpcyBwYXRjaC4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNoYXJlZC9BdXhpbGlhcnlQcm9jZXNzLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6QXV4aWxpYXJ5UHJvY2Vzczo6ZGlkQ2xvc2UpOgorICAgICAg
ICAqIFNoYXJlZC9BdXhpbGlhcnlQcm9jZXNzLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
cm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6aW5pdGlhbGl6ZUNvbm5l
Y3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpkaWRDbG9zZSk6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmg6CisKIDIwMjItMDEtMjQgIFNhaWQgQWJvdS1IYWxs
YXdhICA8c2FpZEBhcHBsZS5jb20+CiAKICAgICAgICAgW0dQVSBQcm9jZXNzXSBbRmlsdGVyc10g
TW92ZSBGRUltYWdlIHRvIHRoZSAncGxhdGZvcm0nIGRpcmVjdG9yeQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1EaXNwbGF5LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtRGlzcGxheS5jcHAKaW5kZXggMGRi
MTcwNzA5MjJjYTAzY2Q1NzQzMzg3MTY3MGExMWRmNjcxYTNjYi4uNDAyNDU4MDM1MmI2NTk2OTgz
OWJmZGRmNTNhNDYzZTA3MWNiOTA5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvUGxhdGZvcm1EaXNwbGF5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybURpc3BsYXkuY3BwCkBAIC0yNzQsNiArMjc0LDcgQEAgdm9p
ZCBQbGF0Zm9ybURpc3BsYXk6OnRlcm1pbmF0ZUVHTERpc3BsYXkoKQogICAgIEFTU0VSVChtX2Vn
bERpc3BsYXlJbml0aWFsaXplZCk7CiAgICAgaWYgKG1fZWdsRGlzcGxheSA9PSBFR0xfTk9fRElT
UExBWSkKICAgICAgICAgcmV0dXJuOworICAgIGVnbE1ha2VDdXJyZW50KG1fZWdsRGlzcGxheSwg
RUdMX05PX1NVUkZBQ0UsIEVHTF9OT19TVVJGQUNFLCBFR0xfTk9fQ09OVEVYVCk7CiAgICAgZWds
VGVybWluYXRlKG1fZWdsRGlzcGxheSk7CiAgICAgbV9lZ2xEaXNwbGF5ID0gRUdMX05PX0RJU1BM
QVk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BdXhpbGlhcnlQcm9jZXNz
LmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0F1eGlsaWFyeVByb2Nlc3MuY3BwCmluZGV4IDY3
OGJiNGZlMjQ3YTg3ZTFmMWU0OTk2OTdlYTZkNWRiMzAwNjQ0NWUuLjEzZTZhYjQ3NmQ3OTcwZWEx
ODNlOTZmNDA5YThlMWU0MDViZWZlOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L0F1eGlsaWFyeVByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0F1eGlsaWFy
eVByb2Nlc3MuY3BwCkBAIC02MCw3ICs2MCw3IEBAIEF1eGlsaWFyeVByb2Nlc3M6On5BdXhpbGlh
cnlQcm9jZXNzKCkKIAogdm9pZCBBdXhpbGlhcnlQcm9jZXNzOjpkaWRDbG9zZShJUEM6OkNvbm5l
Y3Rpb24mKQogewotICAgIF9leGl0KEVYSVRfU1VDQ0VTUyk7CisgICAgZXhpdChFWElUX1NVQ0NF
U1MpOwogfQogCiB2b2lkIEF1eGlsaWFyeVByb2Nlc3M6OmluaXRpYWxpemUoY29uc3QgQXV4aWxp
YXJ5UHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0F1eGlsaWFyeVByb2Nlc3MuaCBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL0F1eGlsaWFyeVByb2Nlc3MuaAppbmRleCBlOTdlNzliYjljZDlhZDU3MWM4YWUy
OGU0NDE4NjA5OTY2OWNjZDJmLi4wZjAwMzllYmM3NDhjZWExODMxYzUwMWEwNGM1NjNjYjkyOGM2
ZDlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BdXhpbGlhcnlQcm9jZXNzLmgK
KysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQXV4aWxpYXJ5UHJvY2Vzcy5oCkBAIC0xMTAsNiAr
MTEwLDkgQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgdm9pZCBpbml0aWFsaXplU2FuZGJveChj
b25zdCBBdXhpbGlhcnlQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJiwgU2FuZGJveElu
aXRpYWxpemF0aW9uUGFyYW1ldGVycyYpOwogICAgIHZpcnR1YWwgdm9pZCBpbml0aWFsaXplQ29u
bmVjdGlvbihJUEM6OkNvbm5lY3Rpb24qKTsKIAorICAgIC8vIElQQzo6Q29ubmVjdGlvbjo6Q2xp
ZW50LgorICAgIHZvaWQgZGlkQ2xvc2UoSVBDOjpDb25uZWN0aW9uJikgb3ZlcnJpZGU7CisKICAg
ICB2aXJ0dWFsIGJvb2wgc2hvdWxkVGVybWluYXRlKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCB0
ZXJtaW5hdGUoKTsKIApAQCAtMTU2LDcgKzE1OSw2IEBAIHByaXZhdGU6CiAKICAgICAvLyBJUEM6
OkNvbm5lY3Rpb246OkNsaWVudC4KICAgICB2b2lkIGRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShJ
UEM6OkNvbm5lY3Rpb24mLCBJUEM6Ok1lc3NhZ2VOYW1lKSBmaW5hbDsKLSAgICB2b2lkIGRpZENs
b3NlKElQQzo6Q29ubmVjdGlvbiYpIG92ZXJyaWRlOwogCiAgICAgdm9pZCBzaHV0RG93bigpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKaW5kZXggNjg5NzBlZDcwNDUz
NzkzOTBmNTI4MWIyNzY1ODExYTIyYzA3ZTJkMi4uOGU3MzZlMzQyYTk3ZGM1Y2Y3NWYwMGRmNjcz
ZDIwYjQ1NWZmYjI1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBy
b2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApA
QCAtMzU1LDkgKzM1NSwxMSBAQCB2b2lkIFdlYlByb2Nlc3M6OmluaXRpYWxpemVDb25uZWN0aW9u
KElQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbikKIHsKICAgICBBdXhpbGlhcnlQcm9jZXNzOjpp
bml0aWFsaXplQ29ubmVjdGlvbihjb25uZWN0aW9uKTsKIAorI2lmICFQTEFURk9STShXUEUpCiAg
ICAgLy8gV2UgY2FsbCBfZXhpdCgpIGRpcmVjdGx5IGZyb20gdGhlIGJhY2tncm91bmQgcXVldWUg
aW4gY2FzZSB0aGUgbWFpbiB0aHJlYWQgaXMgdW5yZXNwb25zaXZlCiAgICAgLy8gYW5kIEF1eGls
aWFyeVByb2Nlc3M6OmRpZENsb3NlKCkgZG9lcyBub3QgZ2V0IGNhbGxlZC4KICAgICBjb25uZWN0
aW9uLT5zZXREaWRDbG9zZU9uQ29ubmVjdGlvbldvcmtRdWV1ZUNhbGxiYWNrKGNhbGxFeGl0KTsK
KyNlbmRpZgogCiAjaWYgIVBMQVRGT1JNKEdUSykgJiYgIVBMQVRGT1JNKFdQRSkgJiYgIUVOQUJM
RShJUENfVEVTVElOR19BUEkpCiAgICAgY29ubmVjdGlvbi0+c2V0U2hvdWxkRXhpdE9uU3luY01l
c3NhZ2VTZW5kRmFpbHVyZSh0cnVlKTsKQEAgLTg3OSw2ICs4ODEsMjIgQEAgdm9pZCBXZWJQcm9j
ZXNzOjp0ZXJtaW5hdGUoKQogICAgIEF1eGlsaWFyeVByb2Nlc3M6OnRlcm1pbmF0ZSgpOwogfQog
Cit2b2lkIFdlYlByb2Nlc3M6OmRpZENsb3NlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbikK
K3sKKyAgICBwbGF0Zm9ybVRlcm1pbmF0ZSgpOworCisgICAgQXV4aWxpYXJ5UHJvY2Vzczo6dGVy
bWluYXRlKCk7CisKKyAgICAvLyBDbG9zaW5nIFdlYlBhZ2VzIGJlZm9yZSBleGl0LiBUaGlzIGVu
ZHMtdXAgaW4gdGhlIGludmFsaWRhdGlvbiBvZiB0aGUKKyAgICAvLyBUaHJlYWRlZENvbXBvc2l0
b3Igb2JqZWN0cyBhc3NvY2lhdGVkIHRvIHRob3NlIFdlYlBhZ2VzLiBUaGlzIGFjdGlvbgorICAg
IC8vIHdpbGwgcmVsZWFzZSB0aGUgRUdMIHJlc291cmNlcyBwcmV2ZW50aW5nIHRoZSBXZWJQcm9j
ZXNzIGhhbmcgaW4gdGhlCisgICAgLy8gZWdsVGVybWluYXRlKCkgZHVyaW5nIGEgZXhpdCgpIGNh
bGwuCisgICAgZm9yIChhdXRvJiB3ZWJQYWdlIDogbV9wYWdlTWFwLnZhbHVlcygpKQorICAgICAg
ICB3ZWJQYWdlLT5jbG9zZSgpOworCisgICAgQXV4aWxpYXJ5UHJvY2Vzczo6ZGlkQ2xvc2UoY29u
bmVjdGlvbik7Cit9CisKIGJvb2wgV2ViUHJvY2Vzczo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQ
Qzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBVbmlxdWVS
ZWY8SVBDOjpFbmNvZGVyPiYgcmVwbHlFbmNvZGVyKQogewogICAgIGlmIChtZXNzYWdlUmVjZWl2
ZXJNYXAoKS5kaXNwYXRjaFN5bmNNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIsIHJlcGx5RW5j
b2RlcikpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5o
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAppbmRleCBlODdkNzMzZDc2
YWRlZTBjYjhiYWRiODdmNWNhNzU1ZGE2MmQ3MDMyLi4zYWMxMzljYjYyYzg5OGYwZTUzNzA0NGE0
OTI1NjZiZDk2OTk1MzRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKQEAg
LTU0OCw2ICs1NDgsNyBAQCBwcml2YXRlOgogCiAgICAgLy8gSVBDOjpDb25uZWN0aW9uOjpDbGll
bnQKICAgICBmcmllbmQgY2xhc3MgV2ViQ29ubmVjdGlvblRvVUlQcm9jZXNzOworICAgIHZvaWQg
ZGlkQ2xvc2UoSVBDOjpDb25uZWN0aW9uJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBkaWRSZWNlaXZl
TWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBvdmVycmlkZTsKICAgICBi
b29sIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXIm
LCBVbmlxdWVSZWY8SVBDOjpFbmNvZGVyPiYpIG92ZXJyaWRlOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>449837</attachid>
            <date>2022-01-24 11:30:13 -0800</date>
            <delta_ts>2022-02-18 10:46:32 -0800</delta_ts>
            <desc>patch</desc>
            <filename>bug-217655-20220124203011.patch</filename>
            <type>text/plain</type>
            <size>7631</size>
            <attacher name="Pablo Saavedra">psaavedra</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg4NDMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTJiMzkyNmRlMzEzODVh
Y2QxMzRmNzc2YTA5YjU1MDM4NjU0M2RiOC4uYzgyN2Q5NWFlNTIwNmI1NTM0NTE3MzI0YmE0NWI5
ZWIyNjcxYTY4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDIyLTAxLTI0ICBQYWJs
byBTYWF2ZWRyYSAgPHBzYWF2ZWRyYUBpZ2FsaWEuY29tPgorCisgICAgICAgIFByb3Blcmx5IHVu
aW5pdGlhbGl6ZSBFR0wgZGlzcGxheSBiZWZvcmUgdGVybWluYXRpb24KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzY1NQorCisgICAgICAgIEZyb20g
dGhlIGRvY3M6CisKKyAgICAgICAgSWYgY29udGV4dHMgb3Igc3VyZmFjZXMgYXNzb2NpYXRlZCB3
aXRoIGRpc3BsYXkgaXMKKyAgICAgICAgY3VycmVudCB0byBhbnkgdGhyZWFkLCB0aGV5IGFyZSBu
b3QgcmVsZWFzZWQgdW50aWwKKyAgICAgICAgdGhleSBhcmUgbm8gbG9uZ2VyIGN1cnJlbnQgYXMg
YSByZXN1bHQgb2YKKyAgICAgICAgZWdsTWFrZUN1cnJlbnQuCisKKyAgICAgICAgU28gY2FsbCBl
Z2xNYWtlQ3VycmVudCgpIHRvIHN1Y2ggZWZmZWN0LgorCisgICAgICAgIFRoYW5rcyB0byBDbGF1
ZGlvIFNhYXZlZHJhIGZvciBoaXMgaGVscCBpbiBtYWtpbmcgdGhpcyBwYXRjaC4KKworICAgICAg
ICAoUGF0Y2ggY28tYXV0aG9yZWQgd2l0aCBDbGF1ZGlvIFNhYXZlZHJhKQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
UGxhdGZvcm1EaXNwbGF5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtRGlzcGxheTo6
dGVybWluYXRlRUdMRGlzcGxheSk6CisKIDIwMjItMDEtMjQgIFNhaWQgQWJvdS1IYWxsYXdhICA8
c2FpZEBhcHBsZS5jb20+CiAKICAgICAgICAgW0dQVSBQcm9jZXNzXSBbRmlsdGVyc10gTW92ZSBG
RUltYWdlIHRvIHRoZSAncGxhdGZvcm0nIGRpcmVjdG9yeQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBkNzZhMzRkNjQ5
NmIxYzE2NWFmM2VhN2JhMjBiZTM4ZDAyMWU1M2NhLi42NDZlOWJkNDRlNmM0ODY0MmUyOGVlMjEy
OTNkYzVjNDhlZWRhN2JjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDIyLTAxLTI0ICBQ
YWJsbyBTYWF2ZWRyYSAgPHBzYWF2ZWRyYUBpZ2FsaWEuY29tPgorCisgICAgICAgIFVzZSBleGl0
KCkgdG8gY2xvc2UgcHJvY2Vzc2VzIG9uIGNvbm5lY3Rpb24gZHJvcCBhbmQgcHJvcGVybHkgdW5p
bml0aWFsaXphdGlvbiB0aGUgRUdMIGRpc3BsYXkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzY1NQorCisgICAgICAgIF9leGl0KCkgZG9lcyBub3Qg
Y2FsbCB0aGUgYXRleGl0IGhhbmRsZXJzIHdlIGFyZSB1c2luZyBpbiBzb21lIHBsYWNlcy4KKyAg
ICAgICAgQWxzbywgZG8gbm90IGZhc3QtdHJhY2sgYW4gX2V4aXQoKSBmcm9tIGEgd29ya2VyIHRo
cmVhZCBvbiBJUEMgZGlzY29ubmVjdGlvbgorCisgICAgICAgIFdlIHJlbHkgb24gZXhpdCBoYW5k
bGVycyB0byBjbGVhbnVwIEVHTCByZXNvdXJjZXMsIGFuZCB0aGlzIGhhbmRsZXIKKyAgICAgICAg
bmVlZHMgdG8gYmUgY2FsbGVkIGZyb20gdGhlIG1haW4gdGhyZWFkLiBUaGUgQ29ubmVjdGlvbjo6
Q2xpZW50OjpkaWRDbG9zZSgpCisgICAgICAgIGhhbmRsZXIgaW5zdGFsbGVkIGZyb20gQXV4aWxp
YXJ5UHJvY2VzcyB3aWxsIGRvIHRoYXQgZm9yIHVzLCB3ZSBkb24ndAorICAgICAgICBuZWVkIGFu
b3RoZXIgb25lIGluIHRoZSB3ZWIgcHJvY2VzcworCisgICAgICAgIFByb3Blcmx5IHVuaW5pdGlh
bGl6ZSBFR0wgZGlzcGxheSBiZWZvcmUgdGVybWluYXRpb24uIEZyb20gdGhlIGRvY3M6CisKKyAg
ICAgICAgICAgIElmIGNvbnRleHRzIG9yIHN1cmZhY2VzIGFzc29jaWF0ZWQgd2l0aCBkaXNwbGF5
IGlzCisgICAgICAgICAgICBjdXJyZW50IHRvIGFueSB0aHJlYWQsIHRoZXkgYXJlIG5vdCByZWxl
YXNlZCB1bnRpbAorICAgICAgICAgICAgdGhleSBhcmUgbm8gbG9uZ2VyIGN1cnJlbnQgYXMgYSBy
ZXN1bHQgb2YKKyAgICAgICAgICAgIGVnbE1ha2VDdXJyZW50LgorCisgICAgICAgICAgICBTbyBj
YWxsIGVnbE1ha2VDdXJyZW50KCkgdG8gc3VjaCBlZmZlY3QuCisKKyAgICAgICAgSW4gYWRkaXRp
b24sIHRoZSBDb25uZWN0aW9uOjpkaWRDbG9zZSgpIGNsb3NlIHRoZSBXZWJQYWdlcyBiZWZvcmUg
ZXhpdAorICAgICAgICBlbmRpbmctdXAgaW4gdGhlIGludmFsaWRhdGlvbiBvZiB0aGUgVGhyZWFk
ZWRDb21wb3NpdG9yIG9iamVjdAorICAgICAgICBhc3NvY2lhdGVkIHRvIHRoZSBXZWJQYWdlcy4g
VGhpcyB3aWxsIHJlbGVhc2UgdGhlIEVHTCByZXNvdXJjZXMKKyAgICAgICAgcHJldmVudGluZyB0
aGUgV2ViUHJvY2VzcyBoYW5nIGluIHRoZSBlZ2xUZXJtaW5hdGUoKSBkdXJpbmcKKyAgICAgICAg
YW4gZXhpdCgpIGNhbGwuCisKKyAgICAgICAgVGhhbmtzIHRvIENsYXVkaW8gU2FhdmVkcmEgZm9y
IGhpcyBoZWxwIGluIG1ha2luZyB0aGlzIHBhdGNoLgorCisgICAgICAgIChQYXRjaCBjby1hdXRo
b3JlZCB3aXRoIENsYXVkaW8gU2FhdmVkcmEpCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBTaGFyZWQvQXV4aWxpYXJ5UHJvY2Vzcy5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OkF1eGlsaWFyeVByb2Nlc3M6OmRpZENsb3NlKToKKyAgICAgICAgKiBTaGFy
ZWQvQXV4aWxpYXJ5UHJvY2Vzcy5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmluaXRpYWxpemVDb25uZWN0aW9uKToK
KyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6ZGlkQ2xvc2UpOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUHJvY2Vzcy5oOgorCiAyMDIyLTAxLTI0ICBTYWlkIEFib3UtSGFsbGF3YSAgPHNh
aWRAYXBwbGUuY29tPgogCiAgICAgICAgIFtHUFUgUHJvY2Vzc10gW0ZpbHRlcnNdIE1vdmUgRkVJ
bWFnZSB0byB0aGUgJ3BsYXRmb3JtJyBkaXJlY3RvcnkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtRGlzcGxheS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybURpc3BsYXkuY3BwCmluZGV4IDBkYjE3MDcwOTIy
Y2EwM2NkNTc0MzM4NzE2NzBhMTFkZjY3MWEzY2IuLjQwMjQ1ODAzNTJiNjU5Njk4MzliZmRkZjUz
YTQ2M2UwNzFjYjkwOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL1BsYXRmb3JtRGlzcGxheS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvUGxhdGZvcm1EaXNwbGF5LmNwcApAQCAtMjc0LDYgKzI3NCw3IEBAIHZvaWQgUGxhdGZv
cm1EaXNwbGF5Ojp0ZXJtaW5hdGVFR0xEaXNwbGF5KCkKICAgICBBU1NFUlQobV9lZ2xEaXNwbGF5
SW5pdGlhbGl6ZWQpOwogICAgIGlmIChtX2VnbERpc3BsYXkgPT0gRUdMX05PX0RJU1BMQVkpCiAg
ICAgICAgIHJldHVybjsKKyAgICBlZ2xNYWtlQ3VycmVudChtX2VnbERpc3BsYXksIEVHTF9OT19T
VVJGQUNFLCBFR0xfTk9fU1VSRkFDRSwgRUdMX05PX0NPTlRFWFQpOwogICAgIGVnbFRlcm1pbmF0
ZShtX2VnbERpc3BsYXkpOwogICAgIG1fZWdsRGlzcGxheSA9IEVHTF9OT19ESVNQTEFZOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQXV4aWxpYXJ5UHJvY2Vzcy5jcHAgYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9BdXhpbGlhcnlQcm9jZXNzLmNwcAppbmRleCA2NzhiYjRmZTI0
N2E4N2UxZjFlNDk5Njk3ZWE2ZDVkYjMwMDY0NDVlLi4xM2U2YWI0NzZkNzk3MGVhMTgzZTk2ZjQw
OWE4ZTFlNDA1YmVmZTlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BdXhpbGlh
cnlQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BdXhpbGlhcnlQcm9jZXNz
LmNwcApAQCAtNjAsNyArNjAsNyBAQCBBdXhpbGlhcnlQcm9jZXNzOjp+QXV4aWxpYXJ5UHJvY2Vz
cygpCiAKIHZvaWQgQXV4aWxpYXJ5UHJvY2Vzczo6ZGlkQ2xvc2UoSVBDOjpDb25uZWN0aW9uJikK
IHsKLSAgICBfZXhpdChFWElUX1NVQ0NFU1MpOworICAgIGV4aXQoRVhJVF9TVUNDRVNTKTsKIH0K
IAogdm9pZCBBdXhpbGlhcnlQcm9jZXNzOjppbml0aWFsaXplKGNvbnN0IEF1eGlsaWFyeVByb2Nl
c3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9BdXhpbGlhcnlQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9BdXhpbGlhcnlQcm9jZXNzLmgKaW5kZXggZTk3ZTc5YmI5Y2Q5YWQ1NzFjOGFlMjhlNDQxODYw
OTk2NjljY2QyZi4uMGYwMDM5ZWJjNzQ4Y2VhMTgzMWM1MDFhMDRjNTYzY2I5MjhjNmQ5ZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQXV4aWxpYXJ5UHJvY2Vzcy5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL0F1eGlsaWFyeVByb2Nlc3MuaApAQCAtMTEwLDYgKzExMCw5IEBA
IHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQgaW5pdGlhbGl6ZVNhbmRib3goY29uc3QgQXV4
aWxpYXJ5UHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVycyYsIFNhbmRib3hJbml0aWFsaXph
dGlvblBhcmFtZXRlcnMmKTsKICAgICB2aXJ0dWFsIHZvaWQgaW5pdGlhbGl6ZUNvbm5lY3Rpb24o
SVBDOjpDb25uZWN0aW9uKik7CiAKKyAgICAvLyBJUEM6OkNvbm5lY3Rpb246OkNsaWVudC4KKyAg
ICB2b2lkIGRpZENsb3NlKElQQzo6Q29ubmVjdGlvbiYpIG92ZXJyaWRlOworCiAgICAgdmlydHVh
bCBib29sIHNob3VsZFRlcm1pbmF0ZSgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgdGVybWluYXRl
KCk7CiAKQEAgLTE1Niw3ICsxNTksNiBAQCBwcml2YXRlOgogCiAgICAgLy8gSVBDOjpDb25uZWN0
aW9uOjpDbGllbnQuCiAgICAgdm9pZCBkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoSVBDOjpDb25u
ZWN0aW9uJiwgSVBDOjpNZXNzYWdlTmFtZSkgZmluYWw7Ci0gICAgdm9pZCBkaWRDbG9zZShJUEM6
OkNvbm5lY3Rpb24mKSBvdmVycmlkZTsKIAogICAgIHZvaWQgc2h1dERvd24oKTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCmluZGV4IDY4OTcwZWQ3MDQ1Mzc5MzkwZjUy
ODFiMjc2NTgxMWEyMmMwN2UyZDIuLjE1MDdhMDA5YmRlNGY1YzNhOTM0YmQ1YmI2ODRmNDUyMTFh
OTRjZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKQEAgLTM1NSw5
ICszNTUsMTEgQEAgdm9pZCBXZWJQcm9jZXNzOjppbml0aWFsaXplQ29ubmVjdGlvbihJUEM6OkNv
bm5lY3Rpb24qIGNvbm5lY3Rpb24pCiB7CiAgICAgQXV4aWxpYXJ5UHJvY2Vzczo6aW5pdGlhbGl6
ZUNvbm5lY3Rpb24oY29ubmVjdGlvbik7CiAKKyNpZiAhUExBVEZPUk0oR1RLKSAmJiAhUExBVEZP
Uk0oV1BFKQogICAgIC8vIFdlIGNhbGwgX2V4aXQoKSBkaXJlY3RseSBmcm9tIHRoZSBiYWNrZ3Jv
dW5kIHF1ZXVlIGluIGNhc2UgdGhlIG1haW4gdGhyZWFkIGlzIHVucmVzcG9uc2l2ZQogICAgIC8v
IGFuZCBBdXhpbGlhcnlQcm9jZXNzOjpkaWRDbG9zZSgpIGRvZXMgbm90IGdldCBjYWxsZWQuCiAg
ICAgY29ubmVjdGlvbi0+c2V0RGlkQ2xvc2VPbkNvbm5lY3Rpb25Xb3JrUXVldWVDYWxsYmFjayhj
YWxsRXhpdCk7CisjZW5kaWYKIAogI2lmICFQTEFURk9STShHVEspICYmICFQTEFURk9STShXUEUp
ICYmICFFTkFCTEUoSVBDX1RFU1RJTkdfQVBJKQogICAgIGNvbm5lY3Rpb24tPnNldFNob3VsZEV4
aXRPblN5bmNNZXNzYWdlU2VuZEZhaWx1cmUodHJ1ZSk7CkBAIC04NzksNiArODgxLDIyIEBAIHZv
aWQgV2ViUHJvY2Vzczo6dGVybWluYXRlKCkKICAgICBBdXhpbGlhcnlQcm9jZXNzOjp0ZXJtaW5h
dGUoKTsKIH0KIAordm9pZCBXZWJQcm9jZXNzOjpkaWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mIGNv
bm5lY3Rpb24pCit7CisgICAgcGxhdGZvcm1UZXJtaW5hdGUoKTsKKworICAgIEF1eGlsaWFyeVBy
b2Nlc3M6OnRlcm1pbmF0ZSgpOworCisgICAgLy8gQ2xvc2luZyBXZWJQYWdlcyBiZWZvcmUgZXhp
dC4gVGhpcyBlbmRzLXVwIGluIHRoZSBpbnZhbGlkYXRpb24gb2YgdGhlCisgICAgLy8gVGhyZWFk
ZWRDb21wb3NpdG9yIG9iamVjdHMgYXNzb2NpYXRlZCB0byB0aG9zZSBXZWJQYWdlcy4gVGhpcyBh
Y3Rpb24KKyAgICAvLyB3aWxsIHJlbGVhc2UgdGhlIEVHTCByZXNvdXJjZXMgcHJldmVudGluZyB0
aGUgV2ViUHJvY2VzcyBoYW5nIGluIHRoZQorICAgIC8vIGVnbFRlcm1pbmF0ZSgpIGR1cmluZyBh
IGV4aXQoKSBjYWxsLgorICAgIGZvciAoYXV0byYgd2ViUGFnZSA6IG1fcGFnZU1hcC52YWx1ZXMo
KSkKKyAgICAgICAgd2ViUGFnZS0+Y2xvc2UoKTsKKworICAgIEF1eGlsaWFyeVByb2Nlc3M6OmRp
ZENsb3NlKGNvbm5lY3Rpb24pOworfQorCiBib29sIFdlYlByb2Nlc3M6OmRpZFJlY2VpdmVTeW5j
TWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2Rl
ciwgVW5pcXVlUmVmPElQQzo6RW5jb2Rlcj4mIHJlcGx5RW5jb2RlcikKIHsKICAgICBpZiAobWVz
c2FnZVJlY2VpdmVyTWFwKCkuZGlzcGF0Y2hTeW5jTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVy
LCByZXBseUVuY29kZXIpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKaW5kZXgg
ZTg3ZDczM2Q3NmFkZWUwY2I4YmFkYjg3ZjVjYTc1NWRhNjJkNzAzMi4uM2FjMTM5Y2I2MmM4OThm
MGU1MzcwNDRhNDkyNTY2YmQ5Njk5NTM0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJv
Y2Vzcy5oCkBAIC01NDgsNiArNTQ4LDcgQEAgcHJpdmF0ZToKIAogICAgIC8vIElQQzo6Q29ubmVj
dGlvbjo6Q2xpZW50CiAgICAgZnJpZW5kIGNsYXNzIFdlYkNvbm5lY3Rpb25Ub1VJUHJvY2VzczsK
KyAgICB2b2lkIGRpZENsb3NlKElQQzo6Q29ubmVjdGlvbiYpIG92ZXJyaWRlOwogICAgIHZvaWQg
ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgb3ZlcnJp
ZGU7CiAgICAgYm9vbCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBD
OjpEZWNvZGVyJiwgVW5pcXVlUmVmPElQQzo6RW5jb2Rlcj4mKSBvdmVycmlkZTsKIAo=
</data>
<flag name="commit-queue"
          id="478431"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>452022</attachid>
            <date>2022-02-15 07:29:03 -0800</date>
            <delta_ts>2022-02-22 00:22:25 -0800</delta_ts>
            <desc>Simpler patch</desc>
            <filename>wcore-terminate-egl-display.diff</filename>
            <type>text/plain</type>
            <size>2275</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtRGlz
cGxheS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybURpc3Bs
YXkuY3BwCmluZGV4IGVkNTE2NTlhZTA4NS4uMmUyZWI5MDVkYTc4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybURpc3BsYXkuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtRGlzcGxheS5jcHAKQEAgLTI3
OCw2ICsyNzgsNyBAQCB2b2lkIFBsYXRmb3JtRGlzcGxheTo6dGVybWluYXRlRUdMRGlzcGxheSgp
CiAgICAgQVNTRVJUKG1fZWdsRGlzcGxheUluaXRpYWxpemVkKTsKICAgICBpZiAobV9lZ2xEaXNw
bGF5ID09IEVHTF9OT19ESVNQTEFZKQogICAgICAgICByZXR1cm47CisgICAgZWdsTWFrZUN1cnJl
bnQobV9lZ2xEaXNwbGF5LCBFR0xfTk9fU1VSRkFDRSwgRUdMX05PX1NVUkZBQ0UsIEVHTF9OT19D
T05URVhUKTsKICAgICBlZ2xUZXJtaW5hdGUobV9lZ2xEaXNwbGF5KTsKICAgICBtX2VnbERpc3Bs
YXkgPSBFR0xfTk9fRElTUExBWTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L0F1eGlsaWFyeVByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQXV4aWxpYXJ5UHJv
Y2Vzcy5jcHAKaW5kZXggZTA0NTk5ZjcwZGQwLi4xMWU1MmI3MTk4NWEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL0F1eGlsaWFyeVByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL0F1eGlsaWFyeVByb2Nlc3MuY3BwCkBAIC02MCw3ICs2MCwxMSBAQCBBdXhpbGlh
cnlQcm9jZXNzOjp+QXV4aWxpYXJ5UHJvY2VzcygpCiAKIHZvaWQgQXV4aWxpYXJ5UHJvY2Vzczo6
ZGlkQ2xvc2UoSVBDOjpDb25uZWN0aW9uJikKIHsKKyNpZiBQTEFURk9STShHVEspIHx8IFBMQVRG
T1JNKFdQRSkKKyAgICBzdG9wUnVuTG9vcCgpOworI2Vsc2UKICAgICBfZXhpdChFWElUX1NVQ0NF
U1MpOworI2VuZGlmCiB9CiAKIHZvaWQgQXV4aWxpYXJ5UHJvY2Vzczo6aW5pdGlhbGl6ZShjb25z
dCBBdXhpbGlhcnlQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCmluZGV4IGRkNDViNDU4OGJmOS4u
MmUxNWExNjY2ZGUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJv
Y2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCkBA
IC0yNTcsNiArMjU3LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiB1c2luZyBuYW1lc3BhY2UgSlND
OwogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKKyNpZiAhUExBVEZPUk0oR1RLKSAmJiAhUExB
VEZPUk0oV1BFKQogTk9fUkVUVVJOIHN0YXRpYyB2b2lkIGNhbGxFeGl0KElQQzo6Q29ubmVjdGlv
biopCiB7CiAjaWYgT1MoV0lORE9XUykKQEAgLTI2Niw2ICsyNjcsNyBAQCBOT19SRVRVUk4gc3Rh
dGljIHZvaWQgY2FsbEV4aXQoSVBDOjpDb25uZWN0aW9uKikKICAgICBfZXhpdChFWElUX1NVQ0NF
U1MpOwogI2VuZGlmCiB9CisjZW5kaWYKIAogV2ViUHJvY2VzcyYgV2ViUHJvY2Vzczo6c2luZ2xl
dG9uKCkKIHsKQEAgLTM1OSw5ICszNjEsMTEgQEAgdm9pZCBXZWJQcm9jZXNzOjppbml0aWFsaXpl
Q29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24pCiB7CiAgICAgQXV4aWxpYXJ5
UHJvY2Vzczo6aW5pdGlhbGl6ZUNvbm5lY3Rpb24oY29ubmVjdGlvbik7CiAKKyNpZiAhUExBVEZP
Uk0oR1RLKSAmJiAhUExBVEZPUk0oV1BFKQogICAgIC8vIFdlIGNhbGwgX2V4aXQoKSBkaXJlY3Rs
eSBmcm9tIHRoZSBiYWNrZ3JvdW5kIHF1ZXVlIGluIGNhc2UgdGhlIG1haW4gdGhyZWFkIGlzIHVu
cmVzcG9uc2l2ZQogICAgIC8vIGFuZCBBdXhpbGlhcnlQcm9jZXNzOjpkaWRDbG9zZSgpIGRvZXMg
bm90IGdldCBjYWxsZWQuCiAgICAgY29ubmVjdGlvbi0+c2V0RGlkQ2xvc2VPbkNvbm5lY3Rpb25X
b3JrUXVldWVDYWxsYmFjayhjYWxsRXhpdCk7CisjZW5kaWYKIAogI2lmICFQTEFURk9STShHVEsp
ICYmICFQTEFURk9STShXUEUpICYmICFFTkFCTEUoSVBDX1RFU1RJTkdfQVBJKQogICAgIGNvbm5l
Y3Rpb24tPnNldFNob3VsZEV4aXRPblN5bmNNZXNzYWdlU2VuZEZhaWx1cmUodHJ1ZSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>452542</attachid>
            <date>2022-02-18 10:46:32 -0800</date>
            <delta_ts>2022-02-21 10:16:04 -0800</delta_ts>
            <desc>psaavedra patch version 2</desc>
            <filename>patch_v2.patch</filename>
            <type>text/plain</type>
            <size>4715</size>
            <attacher name="Pablo Saavedra">psaavedra</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtRGlz
cGxheS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybURpc3Bs
YXkuY3BwCmluZGV4IDZkYjlkNTBiLi5lMDViYjE1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1EaXNwbGF5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybURpc3BsYXkuY3BwCkBAIC0yNjYsNiArMjY2
LDcgQEAgdm9pZCBQbGF0Zm9ybURpc3BsYXk6OnRlcm1pbmF0ZUVHTERpc3BsYXkoKQogICAgIEFT
U0VSVChtX2VnbERpc3BsYXlJbml0aWFsaXplZCk7CiAgICAgaWYgKG1fZWdsRGlzcGxheSA9PSBF
R0xfTk9fRElTUExBWSkKICAgICAgICAgcmV0dXJuOworICAgIGVnbE1ha2VDdXJyZW50KG1fZWds
RGlzcGxheSwgRUdMX05PX1NVUkZBQ0UsIEVHTF9OT19TVVJGQUNFLCBFR0xfTk9fQ09OVEVYVCk7
CiAgICAgZWdsVGVybWluYXRlKG1fZWdsRGlzcGxheSk7CiAgICAgbV9lZ2xEaXNwbGF5ID0gRUdM
X05PX0RJU1BMQVk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BdXhpbGlh
cnlQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0F1eGlsaWFyeVByb2Nlc3MuY3Bw
CmluZGV4IDdhNTk3NjYxLi42NmIyZDc0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvQXV4aWxpYXJ5UHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQXV4aWxp
YXJ5UHJvY2Vzcy5jcHAKQEAgLTU5LDcgKzU5LDE1IEBAIEF1eGlsaWFyeVByb2Nlc3M6On5BdXhp
bGlhcnlQcm9jZXNzKCkKIAogdm9pZCBBdXhpbGlhcnlQcm9jZXNzOjpkaWRDbG9zZShJUEM6OkNv
bm5lY3Rpb24mKQogeworLy8gX2V4aXQoKSBkb2VzIG5vdCBjYWxsIHRoZSBhdGV4aXQgaGFuZGxl
cnMgdGhhdCB3ZSBhcmUgdXNpbmcgaW4gc29tZSBwbGFjZXMuCisvLyBXZSByZWx5IG9uIGV4aXQg
aGFuZGxlcnMgdG8gY2xlYW51cCBFR0wgcmVzb3VyY2VzLCBhbmQgdGhpcyBoYW5kbGVyIG5lZWRz
IHRvCisvLyBiZSBjYWxsZWQgZnJvbSB0aGUgbWFpbiB0aHJlYWQuCisvLyBGb3IgZ2xpYiBiYXNl
ZCBwb3J0cyB3ZSBjYWxsIHRoZSBzdG9wUnVuTG9vcCgpIHdoYXQgd2lsbCBlbmR1cCBpbiBhIG5v
cm1hbCBleGl0LgorI2lmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKQorICAgIHN0b3BS
dW5Mb29wKCk7CisjZWxzZQogICAgIF9leGl0KEVYSVRfU1VDQ0VTUyk7CisjZW5kaWYKIH0KIAog
dm9pZCBBdXhpbGlhcnlQcm9jZXNzOjppbml0aWFsaXplKGNvbnN0IEF1eGlsaWFyeVByb2Nlc3NJ
bml0aWFsaXphdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9BdXhpbGlhcnlQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9B
dXhpbGlhcnlQcm9jZXNzLmgKaW5kZXggZjVlOWMxZjAuLjBiYmExZGIzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9BdXhpbGlhcnlQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvQXV4aWxpYXJ5UHJvY2Vzcy5oCkBAIC0xMDgsNiArMTA4LDkgQEAgcHJvdGVjdGVk
OgogICAgIHZpcnR1YWwgdm9pZCBpbml0aWFsaXplU2FuZGJveChjb25zdCBBdXhpbGlhcnlQcm9j
ZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJiwgU2FuZGJveEluaXRpYWxpemF0aW9uUGFyYW1l
dGVycyYpOwogICAgIHZpcnR1YWwgdm9pZCBpbml0aWFsaXplQ29ubmVjdGlvbihJUEM6OkNvbm5l
Y3Rpb24qKTsKIAorICAgIC8vIElQQzo6Q29ubmVjdGlvbjo6Q2xpZW50LgorICAgIHZvaWQgZGlk
Q2xvc2UoSVBDOjpDb25uZWN0aW9uJikgb3ZlcnJpZGU7CisKICAgICB2aXJ0dWFsIGJvb2wgc2hv
dWxkVGVybWluYXRlKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCB0ZXJtaW5hdGUoKTsKIApAQCAt
MTQzLDcgKzE0Niw2IEBAIHByaXZhdGU6CiAKICAgICAvLyBJUEM6OkNvbm5lY3Rpb246OkNsaWVu
dC4KICAgICB2b2lkIGRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJ
UEM6Ok1lc3NhZ2VOYW1lKSBmaW5hbDsKLSAgICB2b2lkIGRpZENsb3NlKElQQzo6Q29ubmVjdGlv
biYpIG92ZXJyaWRlOwogCiAgICAgdm9pZCBzaHV0RG93bigpOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUHJvY2Vzcy5jcHAKaW5kZXggN2QxMmFjYmEuLjQyYzI5ZGE0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCkBAIC0yNDgsNiArMjQ4LDcgQEAgbmFtZXNw
YWNlIFdlYktpdCB7CiB1c2luZyBuYW1lc3BhY2UgSlNDOwogdXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7CiAKKyNpZiAhUExBVEZPUk0oR1RLKSAmJiAhUExBVEZPUk0oV1BFKQogTk9fUkVUVVJOIHN0
YXRpYyB2b2lkIGNhbGxFeGl0KElQQzo6Q29ubmVjdGlvbiopCiB7CiAjaWYgT1MoV0lORE9XUykK
QEAgLTI1Nyw2ICsyNTgsNyBAQCBOT19SRVRVUk4gc3RhdGljIHZvaWQgY2FsbEV4aXQoSVBDOjpD
b25uZWN0aW9uKikKICAgICBfZXhpdChFWElUX1NVQ0NFU1MpOwogI2VuZGlmCiB9CisjZW5kaWYK
IAogV2ViUHJvY2VzcyYgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkKIHsKQEAgLTM1Miw5ICszNTQs
MTIgQEAgdm9pZCBXZWJQcm9jZXNzOjppbml0aWFsaXplQ29ubmVjdGlvbihJUEM6OkNvbm5lY3Rp
b24qIGNvbm5lY3Rpb24pCiB7CiAgICAgQXV4aWxpYXJ5UHJvY2Vzczo6aW5pdGlhbGl6ZUNvbm5l
Y3Rpb24oY29ubmVjdGlvbik7CiAKKy8vIEZvciBHVEsgYW5kIFdQRSBwb3J0cywgZG8gbm90IGZh
c3QtdHJhY2sgYW4gX2V4aXQoKSBmcm9tIGEgd29ya2VyIHRocmVhZCBvbiBJUEMgZGlzY29ubmVj
dGlvbgorI2lmICFQTEFURk9STShHVEspICYmICFQTEFURk9STShXUEUpCiAgICAgLy8gV2UgY2Fs
bCBfZXhpdCgpIGRpcmVjdGx5IGZyb20gdGhlIGJhY2tncm91bmQgcXVldWUgaW4gY2FzZSB0aGUg
bWFpbiB0aHJlYWQgaXMgdW5yZXNwb25zaXZlCiAgICAgLy8gYW5kIEF1eGlsaWFyeVByb2Nlc3M6
OmRpZENsb3NlKCkgZG9lcyBub3QgZ2V0IGNhbGxlZC4KICAgICBjb25uZWN0aW9uLT5zZXREaWRD
bG9zZU9uQ29ubmVjdGlvbldvcmtRdWV1ZUNhbGxiYWNrKGNhbGxFeGl0KTsKKyNlbmRpZgogCiAj
aWYgIVBMQVRGT1JNKEdUSykgJiYgIVBMQVRGT1JNKFdQRSkKICAgICBjb25uZWN0aW9uLT5zZXRT
aG91bGRFeGl0T25TeW5jTWVzc2FnZVNlbmRGYWlsdXJlKHRydWUpOwpAQCAtODU0LDYgKzg1OSwx
OCBAQCB2b2lkIFdlYlByb2Nlc3M6OnRlcm1pbmF0ZSgpCiAgICAgQXV4aWxpYXJ5UHJvY2Vzczo6
dGVybWluYXRlKCk7CiB9CiAKK3ZvaWQgV2ViUHJvY2Vzczo6ZGlkQ2xvc2UoSVBDOjpDb25uZWN0
aW9uJiBjb25uZWN0aW9uKQoreworICAgIC8vIENsb3NpbmcgV2ViUGFnZXMgYmVmb3JlIGV4aXQu
IFRoaXMgZW5kcy11cCBpbiB0aGUgaW52YWxpZGF0aW9uIG9mIHRoZQorICAgIC8vIFRocmVhZGVk
Q29tcG9zaXRvciBvYmplY3RzIGFzc29jaWF0ZWQgdG8gdGhvc2UgV2ViUGFnZXMuIFRoaXMgYWN0
aW9uCisgICAgLy8gd2lsbCByZWxlYXNlIHRoZSBFR0wgcmVzb3VyY2VzIHByZXZlbnRpbmcgdGhl
IFdlYlByb2Nlc3MgaGFuZyBpbiB0aGUKKyAgICAvLyBlZ2xUZXJtaW5hdGUoKSBkdXJpbmcgYSBl
eGl0KCkgY2FsbC4KKyAgICBmb3IgKGF1dG8mIHdlYlBhZ2UgOiBtX3BhZ2VNYXAudmFsdWVzKCkp
CisgICAgICAgIHdlYlBhZ2UtPmNsb3NlKCk7CisKKyAgICBBdXhpbGlhcnlQcm9jZXNzOjpkaWRD
bG9zZShjb25uZWN0aW9uKTsKK30KKwogYm9vbCBXZWJQcm9jZXNzOjpkaWRSZWNlaXZlU3luY01l
c3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlY29kZXIs
IFVuaXF1ZVJlZjxJUEM6OkVuY29kZXI+JiByZXBseUVuY29kZXIpCiB7CiAgICAgaWYgKG1lc3Nh
Z2VSZWNlaXZlck1hcCgpLmRpc3BhdGNoU3luY01lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlciwg
cmVwbHlFbmNvZGVyKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
cm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCmluZGV4IDQ1
YTAxNzNiLi4yMzhhNzM2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCkBA
IC01NDcsNiArNTQ3LDcgQEAgcHJpdmF0ZToKIAogICAgIC8vIElQQzo6Q29ubmVjdGlvbjo6Q2xp
ZW50CiAgICAgZnJpZW5kIGNsYXNzIFdlYkNvbm5lY3Rpb25Ub1VJUHJvY2VzczsKKyAgICB2b2lk
IGRpZENsb3NlKElQQzo6Q29ubmVjdGlvbiYpIG92ZXJyaWRlOwogICAgIHZvaWQgZGlkUmVjZWl2
ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgb3ZlcnJpZGU7CiAgICAg
Ym9vbCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVy
JiwgVW5pcXVlUmVmPElQQzo6RW5jb2Rlcj4mKSBvdmVycmlkZTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>452743</attachid>
            <date>2022-02-21 10:16:04 -0800</date>
            <delta_ts>2022-02-22 00:22:31 -0800</delta_ts>
            <desc>psaavedra patch version 3</desc>
            <filename>patch_v3_v2.patch</filename>
            <type>text/plain</type>
            <size>5166</size>
            <attacher name="Pablo Saavedra">psaavedra</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtRGlz
cGxheS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybURpc3Bs
YXkuY3BwCmluZGV4IDZkYjlkNTBiLi5lMDViYjE1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1EaXNwbGF5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybURpc3BsYXkuY3BwCkBAIC0yNjYsNiArMjY2
LDcgQEAgdm9pZCBQbGF0Zm9ybURpc3BsYXk6OnRlcm1pbmF0ZUVHTERpc3BsYXkoKQogICAgIEFT
U0VSVChtX2VnbERpc3BsYXlJbml0aWFsaXplZCk7CiAgICAgaWYgKG1fZWdsRGlzcGxheSA9PSBF
R0xfTk9fRElTUExBWSkKICAgICAgICAgcmV0dXJuOworICAgIGVnbE1ha2VDdXJyZW50KG1fZWds
RGlzcGxheSwgRUdMX05PX1NVUkZBQ0UsIEVHTF9OT19TVVJGQUNFLCBFR0xfTk9fQ09OVEVYVCk7
CiAgICAgZWdsVGVybWluYXRlKG1fZWdsRGlzcGxheSk7CiAgICAgbV9lZ2xEaXNwbGF5ID0gRUdM
X05PX0RJU1BMQVk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BdXhpbGlh
cnlQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0F1eGlsaWFyeVByb2Nlc3MuY3Bw
CmluZGV4IDdhNTk3NjYxLi42NmIyZDc0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvQXV4aWxpYXJ5UHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQXV4aWxp
YXJ5UHJvY2Vzcy5jcHAKQEAgLTU5LDcgKzU5LDE1IEBAIEF1eGlsaWFyeVByb2Nlc3M6On5BdXhp
bGlhcnlQcm9jZXNzKCkKIAogdm9pZCBBdXhpbGlhcnlQcm9jZXNzOjpkaWRDbG9zZShJUEM6OkNv
bm5lY3Rpb24mKQogeworLy8gX2V4aXQoKSBkb2VzIG5vdCBjYWxsIHRoZSBhdGV4aXQgaGFuZGxl
cnMgdGhhdCB3ZSBhcmUgdXNpbmcgaW4gc29tZSBwbGFjZXMuCisvLyBXZSByZWx5IG9uIGV4aXQg
aGFuZGxlcnMgdG8gY2xlYW51cCBFR0wgcmVzb3VyY2VzLCBhbmQgdGhpcyBoYW5kbGVyIG5lZWRz
IHRvCisvLyBiZSBjYWxsZWQgZnJvbSB0aGUgbWFpbiB0aHJlYWQuCisvLyBGb3IgZ2xpYiBiYXNl
ZCBwb3J0cyB3ZSBjYWxsIHRoZSBzdG9wUnVuTG9vcCgpIHdoYXQgd2lsbCBlbmR1cCBpbiBhIG5v
cm1hbCBleGl0LgorI2lmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKQorICAgIHN0b3BS
dW5Mb29wKCk7CisjZWxzZQogICAgIF9leGl0KEVYSVRfU1VDQ0VTUyk7CisjZW5kaWYKIH0KIAog
dm9pZCBBdXhpbGlhcnlQcm9jZXNzOjppbml0aWFsaXplKGNvbnN0IEF1eGlsaWFyeVByb2Nlc3NJ
bml0aWFsaXphdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9BdXhpbGlhcnlQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9B
dXhpbGlhcnlQcm9jZXNzLmgKaW5kZXggZjVlOWMxZjAuLjBiYmExZGIzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9BdXhpbGlhcnlQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvQXV4aWxpYXJ5UHJvY2Vzcy5oCkBAIC0xMDgsNiArMTA4LDkgQEAgcHJvdGVjdGVk
OgogICAgIHZpcnR1YWwgdm9pZCBpbml0aWFsaXplU2FuZGJveChjb25zdCBBdXhpbGlhcnlQcm9j
ZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJiwgU2FuZGJveEluaXRpYWxpemF0aW9uUGFyYW1l
dGVycyYpOwogICAgIHZpcnR1YWwgdm9pZCBpbml0aWFsaXplQ29ubmVjdGlvbihJUEM6OkNvbm5l
Y3Rpb24qKTsKIAorICAgIC8vIElQQzo6Q29ubmVjdGlvbjo6Q2xpZW50LgorICAgIHZvaWQgZGlk
Q2xvc2UoSVBDOjpDb25uZWN0aW9uJikgb3ZlcnJpZGU7CisKICAgICB2aXJ0dWFsIGJvb2wgc2hv
dWxkVGVybWluYXRlKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCB0ZXJtaW5hdGUoKTsKIApAQCAt
MTQzLDcgKzE0Niw2IEBAIHByaXZhdGU6CiAKICAgICAvLyBJUEM6OkNvbm5lY3Rpb246OkNsaWVu
dC4KICAgICB2b2lkIGRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJ
UEM6Ok1lc3NhZ2VOYW1lKSBmaW5hbDsKLSAgICB2b2lkIGRpZENsb3NlKElQQzo6Q29ubmVjdGlv
biYpIG92ZXJyaWRlOwogCiAgICAgdm9pZCBzaHV0RG93bigpOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUHJvY2Vzcy5jcHAKaW5kZXggN2QxMmFjYmEuLmNiMjNiOGQxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCkBAIC0yNDgsNiArMjQ4LDcgQEAgbmFtZXNw
YWNlIFdlYktpdCB7CiB1c2luZyBuYW1lc3BhY2UgSlNDOwogdXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7CiAKKyNpZiAhUExBVEZPUk0oR1RLKSAmJiAhUExBVEZPUk0oV1BFKQogTk9fUkVUVVJOIHN0
YXRpYyB2b2lkIGNhbGxFeGl0KElQQzo6Q29ubmVjdGlvbiopCiB7CiAjaWYgT1MoV0lORE9XUykK
QEAgLTI1Nyw2ICsyNTgsNyBAQCBOT19SRVRVUk4gc3RhdGljIHZvaWQgY2FsbEV4aXQoSVBDOjpD
b25uZWN0aW9uKikKICAgICBfZXhpdChFWElUX1NVQ0NFU1MpOwogI2VuZGlmCiB9CisjZW5kaWYK
IAogV2ViUHJvY2VzcyYgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkKIHsKQEAgLTM1Miw5ICszNTQs
MTIgQEAgdm9pZCBXZWJQcm9jZXNzOjppbml0aWFsaXplQ29ubmVjdGlvbihJUEM6OkNvbm5lY3Rp
b24qIGNvbm5lY3Rpb24pCiB7CiAgICAgQXV4aWxpYXJ5UHJvY2Vzczo6aW5pdGlhbGl6ZUNvbm5l
Y3Rpb24oY29ubmVjdGlvbik7CiAKKy8vIEZvciBHVEsgYW5kIFdQRSBwb3J0cywgZG8gbm90IGZh
c3QtdHJhY2sgYW4gX2V4aXQoKSBmcm9tIGEgd29ya2VyIHRocmVhZCBvbiBJUEMgZGlzY29ubmVj
dGlvbgorI2lmICFQTEFURk9STShHVEspICYmICFQTEFURk9STShXUEUpCiAgICAgLy8gV2UgY2Fs
bCBfZXhpdCgpIGRpcmVjdGx5IGZyb20gdGhlIGJhY2tncm91bmQgcXVldWUgaW4gY2FzZSB0aGUg
bWFpbiB0aHJlYWQgaXMgdW5yZXNwb25zaXZlCiAgICAgLy8gYW5kIEF1eGlsaWFyeVByb2Nlc3M6
OmRpZENsb3NlKCkgZG9lcyBub3QgZ2V0IGNhbGxlZC4KICAgICBjb25uZWN0aW9uLT5zZXREaWRD
bG9zZU9uQ29ubmVjdGlvbldvcmtRdWV1ZUNhbGxiYWNrKGNhbGxFeGl0KTsKKyNlbmRpZgogCiAj
aWYgIVBMQVRGT1JNKEdUSykgJiYgIVBMQVRGT1JNKFdQRSkKICAgICBjb25uZWN0aW9uLT5zZXRT
aG91bGRFeGl0T25TeW5jTWVzc2FnZVNlbmRGYWlsdXJlKHRydWUpOwpAQCAtODU0LDYgKzg1OSwy
NSBAQCB2b2lkIFdlYlByb2Nlc3M6OnRlcm1pbmF0ZSgpCiAgICAgQXV4aWxpYXJ5UHJvY2Vzczo6
dGVybWluYXRlKCk7CiB9CiAKK3ZvaWQgV2ViUHJvY2Vzczo6ZGlkQ2xvc2UoSVBDOjpDb25uZWN0
aW9uJiBjb25uZWN0aW9uKQoreworICAgIC8vIE5vcm1hbGx5IHRoZSBkaWRDbG9zZSgpIGlzIGNh
bGxlZCB0aHJvdWdoIHRoZQorICAgIC8vIFdlYlBhZ2VQcm94eTo6Y2xvc2UoKSAtPiBkaXNwYXRj
aCgpIGNhbGxiYWNrIGJ1dCB0aGVyZSBpcyB0aGUKKyAgICAvLyBwb3NzaWJpbGl0eSBvZiB0aGUg
ZGlkQ2xvc2UoKSBiZWluZyBjYWxsZWQgZHVlIHRvIGFuIGVycm9yIGluIHRoZQorICAgIC8vIElQ
QyBjb25uZWN0aW9uLCBmb3IgZXhhbXBsZSwgaW4gdGhlIHNjZW5hcmlvIG9mIGEgZmFzdCB3ZWJ2
aWV3CisgICAgLy8gb3Blbi9jbG9zZSBhY3Rpb24uIEluIHRoaXMgc2l0dWF0aW9uIHRoZSBkaWRD
bG9zZSgpIGlzIGludm9rZWQgYmVmb3JlIHRoZQorICAgIC8vIHdlYnBhZ2UuY2xvc2UoKSBpcyBi
ZWluZyBjYWxsZWQgYmVjYXVzZSB0aGUgd2Via2l0V2ViVmlld0Rpc3Bvc2UoKS4KKyAgICAvLwor
ICAgIC8vIEJ5IGNsb3NpbmcgYWxsIHRoZSBXZWJQYWdlcyB3ZSB3aWxsIGVuc3VyZSB0aGF0IGFs
bCB0aGUgRUdMIHJlc291cmNlcworICAgIC8vIHdpbGwgYmUgcmVsZWFzZWQgYmVmb3JlIGNhbGxp
bmcgdGhlIGVnbFRlcm1pbmF0ZSgpIGluIHRoZSB0ZXJtaW5hdGVFR0xEaXNwbGF5KCkKKyAgICAv
LyBiZWNhdXNlIHRoaXMgZW5kcy11cCBpbiB0aGUgaW52YWxpZGF0aW9uIG9mIHRoZSBUaHJlYWRl
ZENvbXBvc2l0b3IgRUdMIHJlc291cmNlcworICAgIC8vIGFzc29jaWF0ZWQgdG8gdGhvc2UgV2Vi
UGFnZXMuCisgICAgZm9yIChhdXRvJiB3ZWJQYWdlIDogbV9wYWdlTWFwLnZhbHVlcygpKQorICAg
ICAgICB3ZWJQYWdlLT5jbG9zZSgpOworCisgICAgQXV4aWxpYXJ5UHJvY2Vzczo6ZGlkQ2xvc2Uo
Y29ubmVjdGlvbik7Cit9CisKIGJvb2wgV2ViUHJvY2Vzczo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdl
KElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBVbmlx
dWVSZWY8SVBDOjpFbmNvZGVyPiYgcmVwbHlFbmNvZGVyKQogewogICAgIGlmIChtZXNzYWdlUmVj
ZWl2ZXJNYXAoKS5kaXNwYXRjaFN5bmNNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIsIHJlcGx5
RW5jb2RlcikpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vz
cy5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAppbmRleCA0NWEwMTcz
Yi4uMjM4YTczNjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9j
ZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaApAQCAtNTQ3
LDYgKzU0Nyw3IEBAIHByaXZhdGU6CiAKICAgICAvLyBJUEM6OkNvbm5lY3Rpb246OkNsaWVudAog
ICAgIGZyaWVuZCBjbGFzcyBXZWJDb25uZWN0aW9uVG9VSVByb2Nlc3M7CisgICAgdm9pZCBkaWRD
bG9zZShJUEM6OkNvbm5lY3Rpb24mKSBvdmVycmlkZTsKICAgICB2b2lkIGRpZFJlY2VpdmVNZXNz
YWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIG92ZXJyaWRlOwogICAgIGJvb2wg
ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYsIFVu
aXF1ZVJlZjxJUEM6OkVuY29kZXI+Jikgb3ZlcnJpZGU7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>452835</attachid>
            <date>2022-02-22 00:22:36 -0800</date>
            <delta_ts>2022-02-22 00:23:54 -0800</delta_ts>
            <desc>psaavedra patch version 3</desc>
            <filename>bug-217655-20220222092234.patch</filename>
            <type>text/plain</type>
            <size>7843</size>
            <attacher name="Pablo Saavedra">psaavedra</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwMjkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2UyZWQzNmRiZWQ1MzVm
MDlhODBiMTM1ZTk3NWNiZWQ1ZWFmNjI4NS4uMDJhMzMzZDgxOTNhOTlmM2ZhNzcyOTJiMmFkMWIz
NGQ5OGJjYWQzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDIyLTAyLTIyICBQYWJs
byBTYWF2ZWRyYSAgPHBzYWF2ZWRyYUBpZ2FsaWEuY29tPgorCisgICAgICAgIFtHVEtdW1dQRV0g
UGxhdGZvcm1EaXNwbGF5Ojp0ZXJtaW5hdGVFZ2xEaXNwbGF5cygpIGlzIG5ldmVyIGNhbGxlZAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3NjU1CisK
KyAgICAgICAgX2V4aXQoKSBkb2VzIG5vdCBjYWxsIHRoZSBhdGV4aXQgaGFuZGxlcnMgZGVmaW5l
ZCBpbiBzb21lIHBsYWNlcy4KKyAgICAgICAgV2UgcmVseSBvbiBhbiBleGl0IGhhbmRsZXIgdG8g
Y2xlYW51cCB0aGUgRUdMIHJlc291cmNlcywgYW5kIHRoaXMKKyAgICAgICAgaGFuZGxlciBuZWVk
cyB0byBiZSBjYWxsZWQgZnJvbSB0aGUgbWFpbiB0aHJlYWQuIEZvciBnbGliIGJhc2VkCisgICAg
ICAgIHBvcnRzIHdlIHdpbGwgY2FsbCB0aGUgc3RvcFJ1bkxvb3AoKSB3aGF0IHdpbGwgZW5kdXAg
aW4gYSBub3JtYWwKKyAgICAgICAgZXhpdC4KKworICAgICAgICBBbHNvLCBieSBjbG9zaW5nIGFs
bCB0aGUgV2ViUGFnZXMgaW4gdGhlIFdlcFByb2Nlc3M6OmRpZENsb3NlKCksIHdlCisgICAgICAg
IHdpbGwgZW5zdXJlIHRoYXQgYWxsIHRoZSBFR0wgcmVzb3VyY2VzIHdpbGwgYmUgcmVsZWFzZWQg
YmVmb3JlIGNhbGxpbmcKKyAgICAgICAgdGhlIGVnbFRlcm1pbmF0ZSgpIGluIHRoZSB0ZXJtaW5h
dGVFR0xEaXNwbGF5KCkuIFRoaXMgaXMgYmVjYXVzZSB0aGUKKyAgICAgICAgV2ViUGFnZTo6Y2xv
c2UoKSBlbmRzLXVwIGluIHRoZSBpbnZhbGlkYXRpb24gb2YgdGhlIFRocmVhZGVkQ29tcG9zaXRv
cgorICAgICAgICBhbmQgZGlzcG9zaW5nIEVHTCBidWZmZXJzIGFuZCByZWxlYXNpbmcgdGhlIEVH
TCBjdXJyZW50IGNvbnRleHQKKyAgICAgICAgYXNzb2NpYXRlZCB0byB0aG9zZSBXZWJQYWdlcy4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL1BsYXRmb3JtRGlzcGxheS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQbGF0
Zm9ybURpc3BsYXk6OnRlcm1pbmF0ZUVHTERpc3BsYXkpOgorCiAyMDIyLTAyLTIxICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgSW1wcm92ZSBj
b25zdCBjb3JyZWN0bmVzcyBmb3IgU2VjdXJpdHlPcmlnaW4gYWNjZXNzb3JzCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4
IDNkNWY1YTRjYWMzOTgxYmZiMzY1MzViZDg1OGUyNWUwYThjMmM1NzkuLjJlMDQ0MDk0YTZmYmRj
YTAzNGY1M2QzOTZiYWRhYzJiYzhlMGM5ZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIw
MjItMDItMjIgIFBhYmxvIFNhYXZlZHJhICA8cHNhYXZlZHJhQGlnYWxpYS5jb20+CisKKyAgICAg
ICAgW0dUS11bV1BFXSBQbGF0Zm9ybURpc3BsYXk6OnNodXREb3duRWdsRGlzcGxheXMoKSBpcyBu
ZXZlciBjYWxsZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIxNzY1NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogU2hhcmVkL0F1eGlsaWFyeVByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpBdXhp
bGlhcnlQcm9jZXNzOjpkaWRDbG9zZSk6CisgICAgICAgICogU2hhcmVkL0F1eGlsaWFyeVByb2Nl
c3MuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQcm9jZXNzOjppbml0aWFsaXplQ29ubmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6
OldlYlByb2Nlc3M6OmRpZENsb3NlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3Mu
aDoKKwogMjAyMi0wMi0yMSAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQu
b3JnPgogCiAgICAgICAgIEFsbG93IGFkYXR0cmlidXRpb25kIHRvIHN0YXJ0IG9uIGlPUyBkZXZp
Y2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9y
bURpc3BsYXkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1E
aXNwbGF5LmNwcAppbmRleCBlZDUxNjU5YWUwODUzYjM1M2VjOGZlYThmMDY5NjBkYmE2OWY1OGRm
Li4yZTJlYjkwNWRhNzhiMTI3NmRiOWIwYWM0ZmE5YzhiZTk3NTM2MWJhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybURpc3BsYXkuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtRGlzcGxheS5jcHAKQEAg
LTI3OCw2ICsyNzgsNyBAQCB2b2lkIFBsYXRmb3JtRGlzcGxheTo6dGVybWluYXRlRUdMRGlzcGxh
eSgpCiAgICAgQVNTRVJUKG1fZWdsRGlzcGxheUluaXRpYWxpemVkKTsKICAgICBpZiAobV9lZ2xE
aXNwbGF5ID09IEVHTF9OT19ESVNQTEFZKQogICAgICAgICByZXR1cm47CisgICAgZWdsTWFrZUN1
cnJlbnQobV9lZ2xEaXNwbGF5LCBFR0xfTk9fU1VSRkFDRSwgRUdMX05PX1NVUkZBQ0UsIEVHTF9O
T19DT05URVhUKTsKICAgICBlZ2xUZXJtaW5hdGUobV9lZ2xEaXNwbGF5KTsKICAgICBtX2VnbERp
c3BsYXkgPSBFR0xfTk9fRElTUExBWTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL0F1eGlsaWFyeVByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQXV4aWxpYXJ5
UHJvY2Vzcy5jcHAKaW5kZXggZTA0NTk5ZjcwZGQwYzE2YTA1YmFjMmM0Nzk4ZDY4MTY4MDc4ZDE1
NS4uMmExZTFkNTE3ZTkxNDI5NjY2OGE4MTAyYTk3MmVkZjViZmYyMTgyMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9TaGFyZWQvQXV4aWxpYXJ5UHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvQXV4aWxpYXJ5UHJvY2Vzcy5jcHAKQEAgLTYwLDcgKzYwLDE1IEBAIEF1eGls
aWFyeVByb2Nlc3M6On5BdXhpbGlhcnlQcm9jZXNzKCkKIAogdm9pZCBBdXhpbGlhcnlQcm9jZXNz
OjpkaWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mKQogeworLy8gX2V4aXQoKSBkb2VzIG5vdCBjYWxs
IHRoZSBhdGV4aXQgaGFuZGxlcnMgZGVmaW5lZCBpbiBzb21lIHBsYWNlcy4KKy8vIFdlIHJlbHkg
b24gYW4gZXhpdCBoYW5kbGVyIHRvIGNsZWFudXAgRUdMIHJlc291cmNlcy4gVGhpcyBoYW5kbGVy
IG5lZWRzIHRvCisvLyBiZSBjYWxsZWQgZnJvbSB0aGUgbWFpbiB0aHJlYWQuCisvLyBGb3IgZ2xp
YiBiYXNlZCBwb3J0cyB3ZSBjYWxsIHRoZSBzdG9wUnVuTG9vcCgpIHdoYXQgd2lsbCBlbmR1cCBp
biBhIG5vcm1hbCBleGl0LgorI2lmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKQorICAg
IHN0b3BSdW5Mb29wKCk7CisjZWxzZQogICAgIF9leGl0KEVYSVRfU1VDQ0VTUyk7CisjZW5kaWYK
IH0KIAogdm9pZCBBdXhpbGlhcnlQcm9jZXNzOjppbml0aWFsaXplKGNvbnN0IEF1eGlsaWFyeVBy
b2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9BdXhpbGlhcnlQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9BdXhpbGlhcnlQcm9jZXNzLmgKaW5kZXggNjZlNTExNGY1MGUzNmFlYWNhZDI0ZTEzZWYy
YTU1OGY0MmUyZDIxNi4uYTBmMjc0ZTE1YmQ4NGU4YTliNmFmYTI2YWJiY2M2Y2VkNzA4ZDE2YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQXV4aWxpYXJ5UHJvY2Vzcy5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL0F1eGlsaWFyeVByb2Nlc3MuaApAQCAtMTEyLDYgKzExMiw5
IEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQgaW5pdGlhbGl6ZVNhbmRib3goY29uc3Qg
QXV4aWxpYXJ5UHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVycyYsIFNhbmRib3hJbml0aWFs
aXphdGlvblBhcmFtZXRlcnMmKTsKICAgICB2aXJ0dWFsIHZvaWQgaW5pdGlhbGl6ZUNvbm5lY3Rp
b24oSVBDOjpDb25uZWN0aW9uKik7CiAKKyAgICAvLyBJUEM6OkNvbm5lY3Rpb246OkNsaWVudC4K
KyAgICB2b2lkIGRpZENsb3NlKElQQzo6Q29ubmVjdGlvbiYpIG92ZXJyaWRlOworCiAgICAgdmly
dHVhbCBib29sIHNob3VsZFRlcm1pbmF0ZSgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgdGVybWlu
YXRlKCk7CiAKQEAgLTE1OCw3ICsxNjEsNiBAQCBwcml2YXRlOgogCiAgICAgLy8gSVBDOjpDb25u
ZWN0aW9uOjpDbGllbnQuCiAgICAgdm9pZCBkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoSVBDOjpD
b25uZWN0aW9uJiwgSVBDOjpNZXNzYWdlTmFtZSkgZmluYWw7Ci0gICAgdm9pZCBkaWRDbG9zZShJ
UEM6OkNvbm5lY3Rpb24mKSBvdmVycmlkZTsKIAogICAgIHZvaWQgc2h1dERvd24oKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCmluZGV4IDc5OTYxM2QzNzc0MjM2M2Jm
YmRjZDk1Mjk3OTk2MjIwNmYwMjI4YTguLjRhMjNlNzQyYmQ3NzFjNzNjMTQ3ZTZjZGYxYmFjMDU3
YzFlMzFjNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNz
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKQEAgLTI1
Nyw2ICsyNTcsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiB1
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAorI2lmICFQTEFURk9STShHVEspICYmICFQTEFURk9S
TShXUEUpCiBOT19SRVRVUk4gc3RhdGljIHZvaWQgY2FsbEV4aXQoSVBDOjpDb25uZWN0aW9uKikK
IHsKICNpZiBPUyhXSU5ET1dTKQpAQCAtMjY2LDYgKzI2Nyw3IEBAIE5PX1JFVFVSTiBzdGF0aWMg
dm9pZCBjYWxsRXhpdChJUEM6OkNvbm5lY3Rpb24qKQogICAgIF9leGl0KEVYSVRfU1VDQ0VTUyk7
CiAjZW5kaWYKIH0KKyNlbmRpZgogCiBXZWJQcm9jZXNzJiBXZWJQcm9jZXNzOjpzaW5nbGV0b24o
KQogewpAQCAtMzU5LDkgKzM2MSwxMiBAQCB2b2lkIFdlYlByb2Nlc3M6OmluaXRpYWxpemVDb25u
ZWN0aW9uKElQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbikKIHsKICAgICBBdXhpbGlhcnlQcm9j
ZXNzOjppbml0aWFsaXplQ29ubmVjdGlvbihjb25uZWN0aW9uKTsKIAorLy8gRm9yIEdUSyBhbmQg
V1BFIHBvcnRzLCBkbyBub3QgZmFzdC10cmFjayBhbiBfZXhpdCgpIGZyb20gYSB3b3JrZXIgdGhy
ZWFkIG9uIElQQyBkaXNjb25uZWN0aW9uCisjaWYgIVBMQVRGT1JNKEdUSykgJiYgIVBMQVRGT1JN
KFdQRSkKICAgICAvLyBXZSBjYWxsIF9leGl0KCkgZGlyZWN0bHkgZnJvbSB0aGUgYmFja2dyb3Vu
ZCBxdWV1ZSBpbiBjYXNlIHRoZSBtYWluIHRocmVhZCBpcyB1bnJlc3BvbnNpdmUKICAgICAvLyBh
bmQgQXV4aWxpYXJ5UHJvY2Vzczo6ZGlkQ2xvc2UoKSBkb2VzIG5vdCBnZXQgY2FsbGVkLgogICAg
IGNvbm5lY3Rpb24tPnNldERpZENsb3NlT25Db25uZWN0aW9uV29ya1F1ZXVlQ2FsbGJhY2soY2Fs
bEV4aXQpOworI2VuZGlmCiAKICNpZiAhUExBVEZPUk0oR1RLKSAmJiAhUExBVEZPUk0oV1BFKSAm
JiAhRU5BQkxFKElQQ19URVNUSU5HX0FQSSkKICAgICBjb25uZWN0aW9uLT5zZXRTaG91bGRFeGl0
T25TeW5jTWVzc2FnZVNlbmRGYWlsdXJlKHRydWUpOwpAQCAtODg0LDYgKzg4OSwyNSBAQCB2b2lk
IFdlYlByb2Nlc3M6OnRlcm1pbmF0ZSgpCiAgICAgQXV4aWxpYXJ5UHJvY2Vzczo6dGVybWluYXRl
KCk7CiB9CiAKK3ZvaWQgV2ViUHJvY2Vzczo6ZGlkQ2xvc2UoSVBDOjpDb25uZWN0aW9uJiBjb25u
ZWN0aW9uKQoreworICAgIC8vIE5vcm1hbGx5IHRoZSBkaWRDbG9zZSgpIGlzIGNhbGxlZCB0aHJv
dWdoIHRoZQorICAgIC8vIFdlYlBhZ2VQcm94eTo6Y2xvc2UoKSAtPiBkaXNwYXRjaCgpIGNhbGxi
YWNrIGJ1dCB0aGVyZSBpcyB0aGUKKyAgICAvLyBwb3NzaWJpbGl0eSBvZiB0aGUgZGlkQ2xvc2Uo
KSBiZWluZyBjYWxsZWQgZHVlIHRvIGFuIGVycm9yIGluIHRoZQorICAgIC8vIElQQyBjb25uZWN0
aW9uLCBmb3IgZXhhbXBsZSwgaW4gdGhlIHNjZW5hcmlvIG9mIGEgZmFzdCB3ZWJ2aWV3CisgICAg
Ly8gb3Blbi9jbG9zZSBhY3Rpb24uIEluIHRoaXMgc2l0dWF0aW9uIHRoZSBkaWRDbG9zZSgpIGlz
IGludm9rZWQgYmVmb3JlIHRoZQorICAgIC8vIHdlYnBhZ2UuY2xvc2UoKSBpcyBiZWluZyBjYWxs
ZWQgYmVjYXVzZSB0aGUgd2Via2l0V2ViVmlld0Rpc3Bvc2UoKS4KKyAgICAvLworICAgIC8vIEJ5
IGNsb3NpbmcgYWxsIHRoZSBXZWJQYWdlcyB3ZSB3aWxsIGVuc3VyZSB0aGF0IGFsbCB0aGUgRUdM
IHJlc291cmNlcworICAgIC8vIHdpbGwgYmUgcmVsZWFzZWQgYmVmb3JlIGNhbGxpbmcgdGhlIGVn
bFRlcm1pbmF0ZSgpIGluIHRoZSB0ZXJtaW5hdGVFR0xEaXNwbGF5KCkKKyAgICAvLyBiZWNhdXNl
IHRoaXMgZW5kcy11cCBpbiB0aGUgaW52YWxpZGF0aW9uIG9mIHRoZSBUaHJlYWRlZENvbXBvc2l0
b3IgRUdMIHJlc291cmNlcworICAgIC8vIGFzc29jaWF0ZWQgdG8gdGhvc2UgV2ViUGFnZXMuCisg
ICAgZm9yIChhdXRvJiB3ZWJQYWdlIDogbV9wYWdlTWFwLnZhbHVlcygpKQorICAgICAgICB3ZWJQ
YWdlLT5jbG9zZSgpOworCisgICAgQXV4aWxpYXJ5UHJvY2Vzczo6ZGlkQ2xvc2UoY29ubmVjdGlv
bik7Cit9CisKIGJvb2wgV2ViUHJvY2Vzczo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29u
bmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBVbmlxdWVSZWY8SVBD
OjpFbmNvZGVyPiYgcmVwbHlFbmNvZGVyKQogewogICAgIGlmIChtZXNzYWdlUmVjZWl2ZXJNYXAo
KS5kaXNwYXRjaFN5bmNNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIsIHJlcGx5RW5jb2Rlcikp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAppbmRleCA1OTVhZjBiOTc0MTI5MGRh
NmM3MzRhMDg4NmI4MjRkMjNiMWVlNTdlLi43Y2NjYzdhNWVhYmNhOWY1OThkOGRmZmVkYjc5MTE3
M2ZlZDQ3ZmEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vz
cy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKQEAgLTU1Miw2
ICs1NTIsNyBAQCBwcml2YXRlOgogCiAgICAgLy8gSVBDOjpDb25uZWN0aW9uOjpDbGllbnQKICAg
ICBmcmllbmQgY2xhc3MgV2ViQ29ubmVjdGlvblRvVUlQcm9jZXNzOworICAgIHZvaWQgZGlkQ2xv
c2UoSVBDOjpDb25uZWN0aW9uJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2Fn
ZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBvdmVycmlkZTsKICAgICBib29sIGRp
ZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImLCBVbmlx
dWVSZWY8SVBDOjpFbmNvZGVyPiYpIG92ZXJyaWRlOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>452836</attachid>
            <date>2022-02-22 00:24:01 -0800</date>
            <delta_ts>2022-02-22 00:25:16 -0800</delta_ts>
            <desc>psaavedra patch version 3</desc>
            <filename>bug-217655-20220222092359.patch</filename>
            <type>text/plain</type>
            <size>8715</size>
            <attacher name="Pablo Saavedra">psaavedra</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwMjkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2UyZWQzNmRiZWQ1MzVm
MDlhODBiMTM1ZTk3NWNiZWQ1ZWFmNjI4NS4uMDJhMzMzZDgxOTNhOTlmM2ZhNzcyOTJiMmFkMWIz
NGQ5OGJjYWQzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDIyLTAyLTIyICBQYWJs
byBTYWF2ZWRyYSAgPHBzYWF2ZWRyYUBpZ2FsaWEuY29tPgorCisgICAgICAgIFtHVEtdW1dQRV0g
UGxhdGZvcm1EaXNwbGF5Ojp0ZXJtaW5hdGVFZ2xEaXNwbGF5cygpIGlzIG5ldmVyIGNhbGxlZAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3NjU1CisK
KyAgICAgICAgX2V4aXQoKSBkb2VzIG5vdCBjYWxsIHRoZSBhdGV4aXQgaGFuZGxlcnMgZGVmaW5l
ZCBpbiBzb21lIHBsYWNlcy4KKyAgICAgICAgV2UgcmVseSBvbiBhbiBleGl0IGhhbmRsZXIgdG8g
Y2xlYW51cCB0aGUgRUdMIHJlc291cmNlcywgYW5kIHRoaXMKKyAgICAgICAgaGFuZGxlciBuZWVk
cyB0byBiZSBjYWxsZWQgZnJvbSB0aGUgbWFpbiB0aHJlYWQuIEZvciBnbGliIGJhc2VkCisgICAg
ICAgIHBvcnRzIHdlIHdpbGwgY2FsbCB0aGUgc3RvcFJ1bkxvb3AoKSB3aGF0IHdpbGwgZW5kdXAg
aW4gYSBub3JtYWwKKyAgICAgICAgZXhpdC4KKworICAgICAgICBBbHNvLCBieSBjbG9zaW5nIGFs
bCB0aGUgV2ViUGFnZXMgaW4gdGhlIFdlcFByb2Nlc3M6OmRpZENsb3NlKCksIHdlCisgICAgICAg
IHdpbGwgZW5zdXJlIHRoYXQgYWxsIHRoZSBFR0wgcmVzb3VyY2VzIHdpbGwgYmUgcmVsZWFzZWQg
YmVmb3JlIGNhbGxpbmcKKyAgICAgICAgdGhlIGVnbFRlcm1pbmF0ZSgpIGluIHRoZSB0ZXJtaW5h
dGVFR0xEaXNwbGF5KCkuIFRoaXMgaXMgYmVjYXVzZSB0aGUKKyAgICAgICAgV2ViUGFnZTo6Y2xv
c2UoKSBlbmRzLXVwIGluIHRoZSBpbnZhbGlkYXRpb24gb2YgdGhlIFRocmVhZGVkQ29tcG9zaXRv
cgorICAgICAgICBhbmQgZGlzcG9zaW5nIEVHTCBidWZmZXJzIGFuZCByZWxlYXNpbmcgdGhlIEVH
TCBjdXJyZW50IGNvbnRleHQKKyAgICAgICAgYXNzb2NpYXRlZCB0byB0aG9zZSBXZWJQYWdlcy4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL1BsYXRmb3JtRGlzcGxheS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQbGF0
Zm9ybURpc3BsYXk6OnRlcm1pbmF0ZUVHTERpc3BsYXkpOgorCiAyMDIyLTAyLTIxICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgSW1wcm92ZSBj
b25zdCBjb3JyZWN0bmVzcyBmb3IgU2VjdXJpdHlPcmlnaW4gYWNjZXNzb3JzCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4
IDNkNWY1YTRjYWMzOTgxYmZiMzY1MzViZDg1OGUyNWUwYThjMmM1NzkuLmI0NGNlN2NhMzA5MmU5
OWY0YThiYWExZTQzODNjMTZlYjk5MTAwZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIw
MjItMDItMjIgIFBhYmxvIFNhYXZlZHJhICA8cHNhYXZlZHJhQGlnYWxpYS5jb20+CisKKyAgICAg
ICAgW0dUS11bV1BFXSBQbGF0Zm9ybURpc3BsYXk6OnRlcm1pbmF0ZUVnbERpc3BsYXlzKCkgaXMg
bmV2ZXIgY2FsbGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMTc2NTUKKworICAgICAgICBfZXhpdCgpIGRvZXMgbm90IGNhbGwgdGhlIGF0ZXhpdCBo
YW5kbGVycyBkZWZpbmVkIGluIHNvbWUgcGxhY2VzLgorICAgICAgICBXZSByZWx5IG9uIGFuIGV4
aXQgaGFuZGxlciB0byBjbGVhbnVwIHRoZSBFR0wgcmVzb3VyY2VzLCBhbmQgdGhpcworICAgICAg
ICBoYW5kbGVyIG5lZWRzIHRvIGJlIGNhbGxlZCBmcm9tIHRoZSBtYWluIHRocmVhZC4gRm9yIGds
aWIgYmFzZWQKKyAgICAgICAgcG9ydHMgd2Ugd2lsbCBjYWxsIHRoZSBzdG9wUnVuTG9vcCgpIHdo
YXQgd2lsbCBlbmR1cCBpbiBhIG5vcm1hbAorICAgICAgICBleGl0LgorCisgICAgICAgIEFsc28s
IGJ5IGNsb3NpbmcgYWxsIHRoZSBXZWJQYWdlcyBpbiB0aGUgV2VwUHJvY2Vzczo6ZGlkQ2xvc2Uo
KSwgd2UKKyAgICAgICAgd2lsbCBlbnN1cmUgdGhhdCBhbGwgdGhlIEVHTCByZXNvdXJjZXMgd2ls
bCBiZSByZWxlYXNlZCBiZWZvcmUgY2FsbGluZworICAgICAgICB0aGUgZWdsVGVybWluYXRlKCkg
aW4gdGhlIHRlcm1pbmF0ZUVHTERpc3BsYXkoKS4gVGhpcyBpcyBiZWNhdXNlIHRoZQorICAgICAg
ICBXZWJQYWdlOjpjbG9zZSgpIGVuZHMtdXAgaW4gdGhlIGludmFsaWRhdGlvbiBvZiB0aGUgVGhy
ZWFkZWRDb21wb3NpdG9yCisgICAgICAgIGFuZCBkaXNwb3NpbmcgRUdMIGJ1ZmZlcnMgYW5kIHJl
bGVhc2luZyB0aGUgRUdMIGN1cnJlbnQgY29udGV4dAorICAgICAgICBhc3NvY2lhdGVkIHRvIHRo
b3NlIFdlYlBhZ2VzLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogU2hhcmVkL0F1eGlsaWFyeVByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpB
dXhpbGlhcnlQcm9jZXNzOjpkaWRDbG9zZSk6CisgICAgICAgICogU2hhcmVkL0F1eGlsaWFyeVBy
b2Nlc3MuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJQcm9jZXNzOjppbml0aWFsaXplQ29ubmVjdGlvbik6CisgICAgICAgIChXZWJL
aXQ6OldlYlByb2Nlc3M6OmRpZENsb3NlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nl
c3MuaDoKKwogMjAyMi0wMi0yMSAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJr
aXQub3JnPgogCiAgICAgICAgIEFsbG93IGFkYXR0cmlidXRpb25kIHRvIHN0YXJ0IG9uIGlPUyBk
ZXZpY2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0
Zm9ybURpc3BsYXkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZv
cm1EaXNwbGF5LmNwcAppbmRleCBlZDUxNjU5YWUwODUzYjM1M2VjOGZlYThmMDY5NjBkYmE2OWY1
OGRmLi4yZTJlYjkwNWRhNzhiMTI3NmRiOWIwYWM0ZmE5YzhiZTk3NTM2MWJhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybURpc3BsYXkuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtRGlzcGxheS5jcHAK
QEAgLTI3OCw2ICsyNzgsNyBAQCB2b2lkIFBsYXRmb3JtRGlzcGxheTo6dGVybWluYXRlRUdMRGlz
cGxheSgpCiAgICAgQVNTRVJUKG1fZWdsRGlzcGxheUluaXRpYWxpemVkKTsKICAgICBpZiAobV9l
Z2xEaXNwbGF5ID09IEVHTF9OT19ESVNQTEFZKQogICAgICAgICByZXR1cm47CisgICAgZWdsTWFr
ZUN1cnJlbnQobV9lZ2xEaXNwbGF5LCBFR0xfTk9fU1VSRkFDRSwgRUdMX05PX1NVUkZBQ0UsIEVH
TF9OT19DT05URVhUKTsKICAgICBlZ2xUZXJtaW5hdGUobV9lZ2xEaXNwbGF5KTsKICAgICBtX2Vn
bERpc3BsYXkgPSBFR0xfTk9fRElTUExBWTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL0F1eGlsaWFyeVByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQXV4aWxp
YXJ5UHJvY2Vzcy5jcHAKaW5kZXggZTA0NTk5ZjcwZGQwYzE2YTA1YmFjMmM0Nzk4ZDY4MTY4MDc4
ZDE1NS4uMmExZTFkNTE3ZTkxNDI5NjY2OGE4MTAyYTk3MmVkZjViZmYyMTgyMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQXV4aWxpYXJ5UHJvY2Vzcy5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvQXV4aWxpYXJ5UHJvY2Vzcy5jcHAKQEAgLTYwLDcgKzYwLDE1IEBAIEF1
eGlsaWFyeVByb2Nlc3M6On5BdXhpbGlhcnlQcm9jZXNzKCkKIAogdm9pZCBBdXhpbGlhcnlQcm9j
ZXNzOjpkaWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mKQogeworLy8gX2V4aXQoKSBkb2VzIG5vdCBj
YWxsIHRoZSBhdGV4aXQgaGFuZGxlcnMgZGVmaW5lZCBpbiBzb21lIHBsYWNlcy4KKy8vIFdlIHJl
bHkgb24gYW4gZXhpdCBoYW5kbGVyIHRvIGNsZWFudXAgRUdMIHJlc291cmNlcy4gVGhpcyBoYW5k
bGVyIG5lZWRzIHRvCisvLyBiZSBjYWxsZWQgZnJvbSB0aGUgbWFpbiB0aHJlYWQuCisvLyBGb3Ig
Z2xpYiBiYXNlZCBwb3J0cyB3ZSBjYWxsIHRoZSBzdG9wUnVuTG9vcCgpIHdoYXQgd2lsbCBlbmR1
cCBpbiBhIG5vcm1hbCBleGl0LgorI2lmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKQor
ICAgIHN0b3BSdW5Mb29wKCk7CisjZWxzZQogICAgIF9leGl0KEVYSVRfU1VDQ0VTUyk7CisjZW5k
aWYKIH0KIAogdm9pZCBBdXhpbGlhcnlQcm9jZXNzOjppbml0aWFsaXplKGNvbnN0IEF1eGlsaWFy
eVByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BdXhpbGlhcnlQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9BdXhpbGlhcnlQcm9jZXNzLmgKaW5kZXggNjZlNTExNGY1MGUzNmFlYWNhZDI0ZTEz
ZWYyYTU1OGY0MmUyZDIxNi4uYTBmMjc0ZTE1YmQ4NGU4YTliNmFmYTI2YWJiY2M2Y2VkNzA4ZDE2
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQXV4aWxpYXJ5UHJvY2Vzcy5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0F1eGlsaWFyeVByb2Nlc3MuaApAQCAtMTEyLDYgKzEx
Miw5IEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQgaW5pdGlhbGl6ZVNhbmRib3goY29u
c3QgQXV4aWxpYXJ5UHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVycyYsIFNhbmRib3hJbml0
aWFsaXphdGlvblBhcmFtZXRlcnMmKTsKICAgICB2aXJ0dWFsIHZvaWQgaW5pdGlhbGl6ZUNvbm5l
Y3Rpb24oSVBDOjpDb25uZWN0aW9uKik7CiAKKyAgICAvLyBJUEM6OkNvbm5lY3Rpb246OkNsaWVu
dC4KKyAgICB2b2lkIGRpZENsb3NlKElQQzo6Q29ubmVjdGlvbiYpIG92ZXJyaWRlOworCiAgICAg
dmlydHVhbCBib29sIHNob3VsZFRlcm1pbmF0ZSgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgdGVy
bWluYXRlKCk7CiAKQEAgLTE1OCw3ICsxNjEsNiBAQCBwcml2YXRlOgogCiAgICAgLy8gSVBDOjpD
b25uZWN0aW9uOjpDbGllbnQuCiAgICAgdm9pZCBkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoSVBD
OjpDb25uZWN0aW9uJiwgSVBDOjpNZXNzYWdlTmFtZSkgZmluYWw7Ci0gICAgdm9pZCBkaWRDbG9z
ZShJUEM6OkNvbm5lY3Rpb24mKSBvdmVycmlkZTsKIAogICAgIHZvaWQgc2h1dERvd24oKTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCmluZGV4IDc5OTYxM2QzNzc0MjM2
M2JmYmRjZDk1Mjk3OTk2MjIwNmYwMjI4YTguLjhjOGUyODZjYTBhZGI4MDczN2Y3YTc1NmY4ZjU3
OTYyNGZhNjY1MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9j
ZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKQEAg
LTI1Nyw2ICsyNTcsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBKU0M7
CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAorI2lmICFQTEFURk9STShHVEspICYmICFQTEFU
Rk9STShXUEUpCiBOT19SRVRVUk4gc3RhdGljIHZvaWQgY2FsbEV4aXQoSVBDOjpDb25uZWN0aW9u
KikKIHsKICNpZiBPUyhXSU5ET1dTKQpAQCAtMjY2LDYgKzI2Nyw3IEBAIE5PX1JFVFVSTiBzdGF0
aWMgdm9pZCBjYWxsRXhpdChJUEM6OkNvbm5lY3Rpb24qKQogICAgIF9leGl0KEVYSVRfU1VDQ0VT
Uyk7CiAjZW5kaWYKIH0KKyNlbmRpZgogCiBXZWJQcm9jZXNzJiBXZWJQcm9jZXNzOjpzaW5nbGV0
b24oKQogewpAQCAtMzU5LDkgKzM2MSwxMiBAQCB2b2lkIFdlYlByb2Nlc3M6OmluaXRpYWxpemVD
b25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbikKIHsKICAgICBBdXhpbGlhcnlQ
cm9jZXNzOjppbml0aWFsaXplQ29ubmVjdGlvbihjb25uZWN0aW9uKTsKIAorLy8gRm9yIEdUSyBh
bmQgV1BFIHBvcnRzLCBkbyBub3QgZmFzdC10cmFjayBhbiBfZXhpdCgpIGZyb20gYSB3b3JrZXIg
dGhyZWFkIG9uIElQQyBkaXNjb25uZWN0aW9uCisjaWYgIVBMQVRGT1JNKEdUSykgJiYgIVBMQVRG
T1JNKFdQRSkKICAgICAvLyBXZSBjYWxsIF9leGl0KCkgZGlyZWN0bHkgZnJvbSB0aGUgYmFja2dy
b3VuZCBxdWV1ZSBpbiBjYXNlIHRoZSBtYWluIHRocmVhZCBpcyB1bnJlc3BvbnNpdmUKICAgICAv
LyBhbmQgQXV4aWxpYXJ5UHJvY2Vzczo6ZGlkQ2xvc2UoKSBkb2VzIG5vdCBnZXQgY2FsbGVkLgog
ICAgIGNvbm5lY3Rpb24tPnNldERpZENsb3NlT25Db25uZWN0aW9uV29ya1F1ZXVlQ2FsbGJhY2so
Y2FsbEV4aXQpOworI2VuZGlmCiAKICNpZiAhUExBVEZPUk0oR1RLKSAmJiAhUExBVEZPUk0oV1BF
KSAmJiAhRU5BQkxFKElQQ19URVNUSU5HX0FQSSkKICAgICBjb25uZWN0aW9uLT5zZXRTaG91bGRF
eGl0T25TeW5jTWVzc2FnZVNlbmRGYWlsdXJlKHRydWUpOwpAQCAtODg0LDYgKzg4OSwyOSBAQCB2
b2lkIFdlYlByb2Nlc3M6OnRlcm1pbmF0ZSgpCiAgICAgQXV4aWxpYXJ5UHJvY2Vzczo6dGVybWlu
YXRlKCk7CiB9CiAKK3ZvaWQgV2ViUHJvY2Vzczo6ZGlkQ2xvc2UoSVBDOjpDb25uZWN0aW9uJiBj
b25uZWN0aW9uKQoreworICAgIC8vIE5vcm1hbGx5IHRoZSBkaWRDbG9zZSgpIGlzIGNhbGxlZCB0
aHJvdWdoIHRoZQorICAgIC8vIFdlYlBhZ2VQcm94eTo6Y2xvc2UoKSAtPiBkaXNwYXRjaCgpIGNh
bGxiYWNrIGJ1dCB0aGVyZSBpcyB0aGUKKyAgICAvLyBwb3NzaWJpbGl0eSBvZiB0aGUgZGlkQ2xv
c2UoKSBiZWluZyBjYWxsZWQgZHVlIHRvIGFuIGVycm9yIGluIHRoZQorICAgIC8vIElQQyBjb25u
ZWN0aW9uLCBmb3IgZXhhbXBsZSwgaW4gdGhlIHNjZW5hcmlvIG9mIGEgZmFzdCB3ZWJ2aWV3Cisg
ICAgLy8gb3Blbi9jbG9zZSBhY3Rpb24uIEluIHRoaXMgc2l0dWF0aW9uIHRoZSBkaWRDbG9zZSgp
IGlzIGludm9rZWQgYmVmb3JlIHRoZQorICAgIC8vIHdlYnBhZ2UuY2xvc2UoKSBpcyBiZWluZyBj
YWxsZWQgYmVjYXVzZSB0aGUgd2Via2l0V2ViVmlld0Rpc3Bvc2UoKS4KKyAgICAvLworICAgIC8v
IEJ5IGNsb3NpbmcgYWxsIHRoZSBXZWJQYWdlcyBpbiB0aGUgV2VwUHJvY2Vzczo6ZGlkQ2xvc2Uo
KSwgd2UKKyAgICAvLyB3aWxsIGVuc3VyZSB0aGF0IGFsbCB0aGUgRUdMIHJlc291cmNlcyB3aWxs
IGJlIHJlbGVhc2VkIGJlZm9yZSBjYWxsaW5nCisgICAgLy8gdGhlIGVnbFRlcm1pbmF0ZSgpIGlu
IHRoZSB0ZXJtaW5hdGVFR0xEaXNwbGF5KCkuIFRoaXMgaXMgYmVjYXVzZSB0aGUKKyAgICAvLyBX
ZWJQYWdlOjpjbG9zZSgpIGVuZHMtdXAgd2l0aCB0aGUgaW52YWxpZGF0aW9uIG9mIHRoZSBUaHJl
YWRlZENvbXBvc2l0b3IKKyAgICAvLyBhbmQgZGlzcG9zaW5nIEVHTCBidWZmZXJzIGFuZCByZWxl
YXNpbmcgdGhlIEVHTCBjdXJyZW50IGNvbnRleHQgYXNzb2NpYXRlZAorICAgIC8vIHRvIHRob3Nl
IFdlYlBhZ2VzLgorCisKKyAgICBmb3IgKGF1dG8mIHdlYlBhZ2UgOiBtX3BhZ2VNYXAudmFsdWVz
KCkpCisgICAgICAgIHdlYlBhZ2UtPmNsb3NlKCk7CisKKyAgICBBdXhpbGlhcnlQcm9jZXNzOjpk
aWRDbG9zZShjb25uZWN0aW9uKTsKK30KKwogYm9vbCBXZWJQcm9jZXNzOjpkaWRSZWNlaXZlU3lu
Y01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlY29k
ZXIsIFVuaXF1ZVJlZjxJUEM6OkVuY29kZXI+JiByZXBseUVuY29kZXIpCiB7CiAgICAgaWYgKG1l
c3NhZ2VSZWNlaXZlck1hcCgpLmRpc3BhdGNoU3luY01lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rl
ciwgcmVwbHlFbmNvZGVyKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCmluZGV4
IDU5NWFmMGI5NzQxMjkwZGE2YzczNGEwODg2YjgyNGQyM2IxZWU1N2UuLjdjY2NjN2E1ZWFiY2E5
ZjU5OGQ4ZGZmZWRiNzkxMTczZmVkNDdmYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBy
b2Nlc3MuaApAQCAtNTUyLDYgKzU1Miw3IEBAIHByaXZhdGU6CiAKICAgICAvLyBJUEM6OkNvbm5l
Y3Rpb246OkNsaWVudAogICAgIGZyaWVuZCBjbGFzcyBXZWJDb25uZWN0aW9uVG9VSVByb2Nlc3M7
CisgICAgdm9pZCBkaWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mKSBvdmVycmlkZTsKICAgICB2b2lk
IGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIG92ZXJy
aWRlOwogICAgIGJvb2wgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQ
Qzo6RGVjb2RlciYsIFVuaXF1ZVJlZjxJUEM6OkVuY29kZXI+Jikgb3ZlcnJpZGU7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>452837</attachid>
            <date>2022-02-22 00:25:22 -0800</date>
            <delta_ts>2022-02-22 04:00:44 -0800</delta_ts>
            <desc>psaavedra patch version 3</desc>
            <filename>bug-217655-20220222092521.patch</filename>
            <type>text/plain</type>
            <size>8711</size>
            <attacher name="Pablo Saavedra">psaavedra</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwMjkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2UyZWQzNmRiZWQ1MzVm
MDlhODBiMTM1ZTk3NWNiZWQ1ZWFmNjI4NS4uMDJhMzMzZDgxOTNhOTlmM2ZhNzcyOTJiMmFkMWIz
NGQ5OGJjYWQzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDIyLTAyLTIyICBQYWJs
byBTYWF2ZWRyYSAgPHBzYWF2ZWRyYUBpZ2FsaWEuY29tPgorCisgICAgICAgIFtHVEtdW1dQRV0g
UGxhdGZvcm1EaXNwbGF5Ojp0ZXJtaW5hdGVFZ2xEaXNwbGF5cygpIGlzIG5ldmVyIGNhbGxlZAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3NjU1CisK
KyAgICAgICAgX2V4aXQoKSBkb2VzIG5vdCBjYWxsIHRoZSBhdGV4aXQgaGFuZGxlcnMgZGVmaW5l
ZCBpbiBzb21lIHBsYWNlcy4KKyAgICAgICAgV2UgcmVseSBvbiBhbiBleGl0IGhhbmRsZXIgdG8g
Y2xlYW51cCB0aGUgRUdMIHJlc291cmNlcywgYW5kIHRoaXMKKyAgICAgICAgaGFuZGxlciBuZWVk
cyB0byBiZSBjYWxsZWQgZnJvbSB0aGUgbWFpbiB0aHJlYWQuIEZvciBnbGliIGJhc2VkCisgICAg
ICAgIHBvcnRzIHdlIHdpbGwgY2FsbCB0aGUgc3RvcFJ1bkxvb3AoKSB3aGF0IHdpbGwgZW5kdXAg
aW4gYSBub3JtYWwKKyAgICAgICAgZXhpdC4KKworICAgICAgICBBbHNvLCBieSBjbG9zaW5nIGFs
bCB0aGUgV2ViUGFnZXMgaW4gdGhlIFdlcFByb2Nlc3M6OmRpZENsb3NlKCksIHdlCisgICAgICAg
IHdpbGwgZW5zdXJlIHRoYXQgYWxsIHRoZSBFR0wgcmVzb3VyY2VzIHdpbGwgYmUgcmVsZWFzZWQg
YmVmb3JlIGNhbGxpbmcKKyAgICAgICAgdGhlIGVnbFRlcm1pbmF0ZSgpIGluIHRoZSB0ZXJtaW5h
dGVFR0xEaXNwbGF5KCkuIFRoaXMgaXMgYmVjYXVzZSB0aGUKKyAgICAgICAgV2ViUGFnZTo6Y2xv
c2UoKSBlbmRzLXVwIGluIHRoZSBpbnZhbGlkYXRpb24gb2YgdGhlIFRocmVhZGVkQ29tcG9zaXRv
cgorICAgICAgICBhbmQgZGlzcG9zaW5nIEVHTCBidWZmZXJzIGFuZCByZWxlYXNpbmcgdGhlIEVH
TCBjdXJyZW50IGNvbnRleHQKKyAgICAgICAgYXNzb2NpYXRlZCB0byB0aG9zZSBXZWJQYWdlcy4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL1BsYXRmb3JtRGlzcGxheS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQbGF0
Zm9ybURpc3BsYXk6OnRlcm1pbmF0ZUVHTERpc3BsYXkpOgorCiAyMDIyLTAyLTIxICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgSW1wcm92ZSBj
b25zdCBjb3JyZWN0bmVzcyBmb3IgU2VjdXJpdHlPcmlnaW4gYWNjZXNzb3JzCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4
IDNkNWY1YTRjYWMzOTgxYmZiMzY1MzViZDg1OGUyNWUwYThjMmM1NzkuLmI0NGNlN2NhMzA5MmU5
OWY0YThiYWExZTQzODNjMTZlYjk5MTAwZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIw
MjItMDItMjIgIFBhYmxvIFNhYXZlZHJhICA8cHNhYXZlZHJhQGlnYWxpYS5jb20+CisKKyAgICAg
ICAgW0dUS11bV1BFXSBQbGF0Zm9ybURpc3BsYXk6OnRlcm1pbmF0ZUVnbERpc3BsYXlzKCkgaXMg
bmV2ZXIgY2FsbGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMTc2NTUKKworICAgICAgICBfZXhpdCgpIGRvZXMgbm90IGNhbGwgdGhlIGF0ZXhpdCBo
YW5kbGVycyBkZWZpbmVkIGluIHNvbWUgcGxhY2VzLgorICAgICAgICBXZSByZWx5IG9uIGFuIGV4
aXQgaGFuZGxlciB0byBjbGVhbnVwIHRoZSBFR0wgcmVzb3VyY2VzLCBhbmQgdGhpcworICAgICAg
ICBoYW5kbGVyIG5lZWRzIHRvIGJlIGNhbGxlZCBmcm9tIHRoZSBtYWluIHRocmVhZC4gRm9yIGds
aWIgYmFzZWQKKyAgICAgICAgcG9ydHMgd2Ugd2lsbCBjYWxsIHRoZSBzdG9wUnVuTG9vcCgpIHdo
YXQgd2lsbCBlbmR1cCBpbiBhIG5vcm1hbAorICAgICAgICBleGl0LgorCisgICAgICAgIEFsc28s
IGJ5IGNsb3NpbmcgYWxsIHRoZSBXZWJQYWdlcyBpbiB0aGUgV2VwUHJvY2Vzczo6ZGlkQ2xvc2Uo
KSwgd2UKKyAgICAgICAgd2lsbCBlbnN1cmUgdGhhdCBhbGwgdGhlIEVHTCByZXNvdXJjZXMgd2ls
bCBiZSByZWxlYXNlZCBiZWZvcmUgY2FsbGluZworICAgICAgICB0aGUgZWdsVGVybWluYXRlKCkg
aW4gdGhlIHRlcm1pbmF0ZUVHTERpc3BsYXkoKS4gVGhpcyBpcyBiZWNhdXNlIHRoZQorICAgICAg
ICBXZWJQYWdlOjpjbG9zZSgpIGVuZHMtdXAgaW4gdGhlIGludmFsaWRhdGlvbiBvZiB0aGUgVGhy
ZWFkZWRDb21wb3NpdG9yCisgICAgICAgIGFuZCBkaXNwb3NpbmcgRUdMIGJ1ZmZlcnMgYW5kIHJl
bGVhc2luZyB0aGUgRUdMIGN1cnJlbnQgY29udGV4dAorICAgICAgICBhc3NvY2lhdGVkIHRvIHRo
b3NlIFdlYlBhZ2VzLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogU2hhcmVkL0F1eGlsaWFyeVByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpB
dXhpbGlhcnlQcm9jZXNzOjpkaWRDbG9zZSk6CisgICAgICAgICogU2hhcmVkL0F1eGlsaWFyeVBy
b2Nlc3MuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJQcm9jZXNzOjppbml0aWFsaXplQ29ubmVjdGlvbik6CisgICAgICAgIChXZWJL
aXQ6OldlYlByb2Nlc3M6OmRpZENsb3NlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nl
c3MuaDoKKwogMjAyMi0wMi0yMSAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJr
aXQub3JnPgogCiAgICAgICAgIEFsbG93IGFkYXR0cmlidXRpb25kIHRvIHN0YXJ0IG9uIGlPUyBk
ZXZpY2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0
Zm9ybURpc3BsYXkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZv
cm1EaXNwbGF5LmNwcAppbmRleCBlZDUxNjU5YWUwODUzYjM1M2VjOGZlYThmMDY5NjBkYmE2OWY1
OGRmLi4yZTJlYjkwNWRhNzhiMTI3NmRiOWIwYWM0ZmE5YzhiZTk3NTM2MWJhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybURpc3BsYXkuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtRGlzcGxheS5jcHAK
QEAgLTI3OCw2ICsyNzgsNyBAQCB2b2lkIFBsYXRmb3JtRGlzcGxheTo6dGVybWluYXRlRUdMRGlz
cGxheSgpCiAgICAgQVNTRVJUKG1fZWdsRGlzcGxheUluaXRpYWxpemVkKTsKICAgICBpZiAobV9l
Z2xEaXNwbGF5ID09IEVHTF9OT19ESVNQTEFZKQogICAgICAgICByZXR1cm47CisgICAgZWdsTWFr
ZUN1cnJlbnQobV9lZ2xEaXNwbGF5LCBFR0xfTk9fU1VSRkFDRSwgRUdMX05PX1NVUkZBQ0UsIEVH
TF9OT19DT05URVhUKTsKICAgICBlZ2xUZXJtaW5hdGUobV9lZ2xEaXNwbGF5KTsKICAgICBtX2Vn
bERpc3BsYXkgPSBFR0xfTk9fRElTUExBWTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL0F1eGlsaWFyeVByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQXV4aWxp
YXJ5UHJvY2Vzcy5jcHAKaW5kZXggZTA0NTk5ZjcwZGQwYzE2YTA1YmFjMmM0Nzk4ZDY4MTY4MDc4
ZDE1NS4uMmExZTFkNTE3ZTkxNDI5NjY2OGE4MTAyYTk3MmVkZjViZmYyMTgyMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQXV4aWxpYXJ5UHJvY2Vzcy5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvQXV4aWxpYXJ5UHJvY2Vzcy5jcHAKQEAgLTYwLDcgKzYwLDE1IEBAIEF1
eGlsaWFyeVByb2Nlc3M6On5BdXhpbGlhcnlQcm9jZXNzKCkKIAogdm9pZCBBdXhpbGlhcnlQcm9j
ZXNzOjpkaWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mKQogeworLy8gX2V4aXQoKSBkb2VzIG5vdCBj
YWxsIHRoZSBhdGV4aXQgaGFuZGxlcnMgZGVmaW5lZCBpbiBzb21lIHBsYWNlcy4KKy8vIFdlIHJl
bHkgb24gYW4gZXhpdCBoYW5kbGVyIHRvIGNsZWFudXAgRUdMIHJlc291cmNlcy4gVGhpcyBoYW5k
bGVyIG5lZWRzIHRvCisvLyBiZSBjYWxsZWQgZnJvbSB0aGUgbWFpbiB0aHJlYWQuCisvLyBGb3Ig
Z2xpYiBiYXNlZCBwb3J0cyB3ZSBjYWxsIHRoZSBzdG9wUnVuTG9vcCgpIHdoYXQgd2lsbCBlbmR1
cCBpbiBhIG5vcm1hbCBleGl0LgorI2lmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKQor
ICAgIHN0b3BSdW5Mb29wKCk7CisjZWxzZQogICAgIF9leGl0KEVYSVRfU1VDQ0VTUyk7CisjZW5k
aWYKIH0KIAogdm9pZCBBdXhpbGlhcnlQcm9jZXNzOjppbml0aWFsaXplKGNvbnN0IEF1eGlsaWFy
eVByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BdXhpbGlhcnlQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9BdXhpbGlhcnlQcm9jZXNzLmgKaW5kZXggNjZlNTExNGY1MGUzNmFlYWNhZDI0ZTEz
ZWYyYTU1OGY0MmUyZDIxNi4uYTBmMjc0ZTE1YmQ4NGU4YTliNmFmYTI2YWJiY2M2Y2VkNzA4ZDE2
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQXV4aWxpYXJ5UHJvY2Vzcy5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0F1eGlsaWFyeVByb2Nlc3MuaApAQCAtMTEyLDYgKzEx
Miw5IEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQgaW5pdGlhbGl6ZVNhbmRib3goY29u
c3QgQXV4aWxpYXJ5UHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVycyYsIFNhbmRib3hJbml0
aWFsaXphdGlvblBhcmFtZXRlcnMmKTsKICAgICB2aXJ0dWFsIHZvaWQgaW5pdGlhbGl6ZUNvbm5l
Y3Rpb24oSVBDOjpDb25uZWN0aW9uKik7CiAKKyAgICAvLyBJUEM6OkNvbm5lY3Rpb246OkNsaWVu
dC4KKyAgICB2b2lkIGRpZENsb3NlKElQQzo6Q29ubmVjdGlvbiYpIG92ZXJyaWRlOworCiAgICAg
dmlydHVhbCBib29sIHNob3VsZFRlcm1pbmF0ZSgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgdGVy
bWluYXRlKCk7CiAKQEAgLTE1OCw3ICsxNjEsNiBAQCBwcml2YXRlOgogCiAgICAgLy8gSVBDOjpD
b25uZWN0aW9uOjpDbGllbnQuCiAgICAgdm9pZCBkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoSVBD
OjpDb25uZWN0aW9uJiwgSVBDOjpNZXNzYWdlTmFtZSkgZmluYWw7Ci0gICAgdm9pZCBkaWRDbG9z
ZShJUEM6OkNvbm5lY3Rpb24mKSBvdmVycmlkZTsKIAogICAgIHZvaWQgc2h1dERvd24oKTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCmluZGV4IDc5OTYxM2QzNzc0MjM2
M2JmYmRjZDk1Mjk3OTk2MjIwNmYwMjI4YTguLjhkZGNkNWE3YWI5ZTEzODgzNjkxYmRkM2JiYWNh
YjU0NTgyYzY2ZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9j
ZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKQEAg
LTI1Nyw2ICsyNTcsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBKU0M7
CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAorI2lmICFQTEFURk9STShHVEspICYmICFQTEFU
Rk9STShXUEUpCiBOT19SRVRVUk4gc3RhdGljIHZvaWQgY2FsbEV4aXQoSVBDOjpDb25uZWN0aW9u
KikKIHsKICNpZiBPUyhXSU5ET1dTKQpAQCAtMjY2LDYgKzI2Nyw3IEBAIE5PX1JFVFVSTiBzdGF0
aWMgdm9pZCBjYWxsRXhpdChJUEM6OkNvbm5lY3Rpb24qKQogICAgIF9leGl0KEVYSVRfU1VDQ0VT
Uyk7CiAjZW5kaWYKIH0KKyNlbmRpZgogCiBXZWJQcm9jZXNzJiBXZWJQcm9jZXNzOjpzaW5nbGV0
b24oKQogewpAQCAtMzU5LDkgKzM2MSwxMiBAQCB2b2lkIFdlYlByb2Nlc3M6OmluaXRpYWxpemVD
b25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbikKIHsKICAgICBBdXhpbGlhcnlQ
cm9jZXNzOjppbml0aWFsaXplQ29ubmVjdGlvbihjb25uZWN0aW9uKTsKIAorLy8gRm9yIEdUSyBh
bmQgV1BFIHBvcnRzLCBkbyBub3QgZmFzdC10cmFjayBhbiBfZXhpdCgpIGZyb20gYSB3b3JrZXIg
dGhyZWFkIG9uIElQQyBkaXNjb25uZWN0aW9uCisjaWYgIVBMQVRGT1JNKEdUSykgJiYgIVBMQVRG
T1JNKFdQRSkKICAgICAvLyBXZSBjYWxsIF9leGl0KCkgZGlyZWN0bHkgZnJvbSB0aGUgYmFja2dy
b3VuZCBxdWV1ZSBpbiBjYXNlIHRoZSBtYWluIHRocmVhZCBpcyB1bnJlc3BvbnNpdmUKICAgICAv
LyBhbmQgQXV4aWxpYXJ5UHJvY2Vzczo6ZGlkQ2xvc2UoKSBkb2VzIG5vdCBnZXQgY2FsbGVkLgog
ICAgIGNvbm5lY3Rpb24tPnNldERpZENsb3NlT25Db25uZWN0aW9uV29ya1F1ZXVlQ2FsbGJhY2so
Y2FsbEV4aXQpOworI2VuZGlmCiAKICNpZiAhUExBVEZPUk0oR1RLKSAmJiAhUExBVEZPUk0oV1BF
KSAmJiAhRU5BQkxFKElQQ19URVNUSU5HX0FQSSkKICAgICBjb25uZWN0aW9uLT5zZXRTaG91bGRF
eGl0T25TeW5jTWVzc2FnZVNlbmRGYWlsdXJlKHRydWUpOwpAQCAtODg0LDYgKzg4OSwyNyBAQCB2
b2lkIFdlYlByb2Nlc3M6OnRlcm1pbmF0ZSgpCiAgICAgQXV4aWxpYXJ5UHJvY2Vzczo6dGVybWlu
YXRlKCk7CiB9CiAKK3ZvaWQgV2ViUHJvY2Vzczo6ZGlkQ2xvc2UoSVBDOjpDb25uZWN0aW9uJiBj
b25uZWN0aW9uKQoreworICAgIC8vIE5vcm1hbGx5IHRoZSBkaWRDbG9zZSgpIGlzIGNhbGxlZCB0
aHJvdWdoIHRoZQorICAgIC8vIFdlYlBhZ2VQcm94eTo6Y2xvc2UoKSAtPiBkaXNwYXRjaCgpIGNh
bGxiYWNrIGJ1dCB0aGVyZSBpcyB0aGUKKyAgICAvLyBwb3NzaWJpbGl0eSBvZiB0aGUgZGlkQ2xv
c2UoKSBiZWluZyBjYWxsZWQgZHVlIHRvIGFuIGVycm9yIGluIHRoZQorICAgIC8vIElQQyBjb25u
ZWN0aW9uLCBmb3IgZXhhbXBsZSwgaW4gdGhlIHNjZW5hcmlvIG9mIGEgZmFzdCB3ZWJ2aWV3Cisg
ICAgLy8gb3Blbi9jbG9zZSBhY3Rpb24uIEluIHRoaXMgc2l0dWF0aW9uIHRoZSBkaWRDbG9zZSgp
IGlzIGludm9rZWQgYmVmb3JlIHRoZQorICAgIC8vIHdlYnBhZ2UuY2xvc2UoKSBpcyBiZWluZyBj
YWxsZWQgYmVjYXVzZSB0aGUgd2Via2l0V2ViVmlld0Rpc3Bvc2UoKS4KKyAgICAvLworICAgIC8v
IEJ5IGNsb3NpbmcgYWxsIHRoZSBXZWJQYWdlcyBpbiB0aGUgV2VwUHJvY2Vzczo6ZGlkQ2xvc2Uo
KSwgd2UKKyAgICAvLyB3aWxsIGVuc3VyZSB0aGF0IGFsbCB0aGUgRUdMIHJlc291cmNlcyB3aWxs
IGJlIHJlbGVhc2VkIGJlZm9yZSBjYWxsaW5nCisgICAgLy8gdGhlIGVnbFRlcm1pbmF0ZSgpIGlu
IHRoZSB0ZXJtaW5hdGVFR0xEaXNwbGF5KCkuIFRoaXMgaXMgYmVjYXVzZSB0aGUKKyAgICAvLyBX
ZWJQYWdlOjpjbG9zZSgpIGVuZHMtdXAgd2l0aCB0aGUgaW52YWxpZGF0aW9uIG9mIHRoZSBUaHJl
YWRlZENvbXBvc2l0b3IKKyAgICAvLyBhbmQgZGlzcG9zaW5nIEVHTCBidWZmZXJzIGFuZCByZWxl
YXNpbmcgdGhlIEVHTCBjdXJyZW50IGNvbnRleHQgYXNzb2NpYXRlZAorICAgIC8vIHRvIHRob3Nl
IFdlYlBhZ2VzLgorICAgIGZvciAoYXV0byYgd2ViUGFnZSA6IG1fcGFnZU1hcC52YWx1ZXMoKSkK
KyAgICAgICAgd2ViUGFnZS0+Y2xvc2UoKTsKKworICAgIEF1eGlsaWFyeVByb2Nlc3M6OmRpZENs
b3NlKGNvbm5lY3Rpb24pOworfQorCiBib29sIFdlYlByb2Nlc3M6OmRpZFJlY2VpdmVTeW5jTWVz
c2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2Rlciwg
VW5pcXVlUmVmPElQQzo6RW5jb2Rlcj4mIHJlcGx5RW5jb2RlcikKIHsKICAgICBpZiAobWVzc2Fn
ZVJlY2VpdmVyTWFwKCkuZGlzcGF0Y2hTeW5jTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyLCBy
ZXBseUVuY29kZXIpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBy
b2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKaW5kZXggNTk1
YWYwYjk3NDEyOTBkYTZjNzM0YTA4ODZiODI0ZDIzYjFlZTU3ZS4uN2NjY2M3YTVlYWJjYTlmNTk4
ZDhkZmZlZGI3OTExNzNmZWQ0N2ZhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vz
cy5oCkBAIC01NTIsNiArNTUyLDcgQEAgcHJpdmF0ZToKIAogICAgIC8vIElQQzo6Q29ubmVjdGlv
bjo6Q2xpZW50CiAgICAgZnJpZW5kIGNsYXNzIFdlYkNvbm5lY3Rpb25Ub1VJUHJvY2VzczsKKyAg
ICB2b2lkIGRpZENsb3NlKElQQzo6Q29ubmVjdGlvbiYpIG92ZXJyaWRlOwogICAgIHZvaWQgZGlk
UmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgb3ZlcnJpZGU7
CiAgICAgYm9vbCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpE
ZWNvZGVyJiwgVW5pcXVlUmVmPElQQzo6RW5jb2Rlcj4mKSBvdmVycmlkZTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>452853</attachid>
            <date>2022-02-22 04:00:59 -0800</date>
            <delta_ts>2022-02-22 06:00:21 -0800</delta_ts>
            <desc>psaavedra patch version 4</desc>
            <filename>bug-217655-20220222130053.patch</filename>
            <type>text/plain</type>
            <size>4751</size>
            <attacher name="Pablo Saavedra">psaavedra</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwMjkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDNkNWY1YTRjYWMzOTgxYmZi
MzY1MzViZDg1OGUyNWUwYThjMmM1NzkuLjA3OWUxMzJlMzI2ZGJhMjliMjlhYWI1MjVmYjZkNWUx
ODhiYzUyNDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMjItMDItMjIgIFBhYmxvIFNh
YXZlZHJhICA8cHNhYXZlZHJhQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dUS11bV1BFXSBQbGF0
Zm9ybURpc3BsYXk6OnRlcm1pbmF0ZUVnbERpc3BsYXlzKCkgaXMgbmV2ZXIgY2FsbGVkCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTc2NTUKKworICAg
ICAgICBTdG9wIHRoZSBydW4gbG9vcCBmb3IgR1RLIGFuZCBXUEUgdG8gZW5zdXJlIGEgbm9ybWFs
IGV4aXQsIHNpbmNlIHdlIG5lZWQKKyAgICAgICAgYXRleGl0IGhhbmRsZXJzIHRvIGJlIGNhbGxl
ZCB0byBjbGVhbnVwIHJlc291cmNlcyBsaWtlIEVHTCBkaXNwbGF5cy4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNoYXJlZC9BdXhpbGlhcnlQcm9j
ZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6QXV4aWxpYXJ5UHJvY2Vzczo6ZGlkQ2xvc2UpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YlByb2Nlc3M6OmluaXRpYWxpemVDb25uZWN0aW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlByb2Nlc3MuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2dsaWIvV2ViUHJvY2Vzc0dMaWIuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpzdG9wUnVuTG9vcCk6CisKIDIwMjItMDIt
MjEgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAg
ICBBbGxvdyBhZGF0dHJpYnV0aW9uZCB0byBzdGFydCBvbiBpT1MgZGV2aWNlcwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQXV4aWxpYXJ5UHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9BdXhpbGlhcnlQcm9jZXNzLmNwcAppbmRleCBlMDQ1OTlmNzBkZDBjMTZhMDVi
YWMyYzQ3OThkNjgxNjgwNzhkMTU1Li45NDQ2NmIxOTg0YmU4ZjkxNGVmZGIxZTU0MWNhNzUyMDFk
ZGYzM2FjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BdXhpbGlhcnlQcm9jZXNz
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BdXhpbGlhcnlQcm9jZXNzLmNwcApAQCAt
NjAsNyArNjAsMTMgQEAgQXV4aWxpYXJ5UHJvY2Vzczo6fkF1eGlsaWFyeVByb2Nlc3MoKQogCiB2
b2lkIEF1eGlsaWFyeVByb2Nlc3M6OmRpZENsb3NlKElQQzo6Q29ubmVjdGlvbiYpCiB7CisvLyBT
dG9wIHRoZSBydW4gbG9vcCBmb3IgR1RLIGFuZCBXUEUgdG8gZW5zdXJlIGEgbm9ybWFsIGV4aXQs
IHNpbmNlIHdlIG5lZWQKKy8vIGF0ZXhpdCBoYW5kbGVycyB0byBiZSBjYWxsZWQgdG8gY2xlYW51
cCByZXNvdXJjZXMgbGlrZSBFR0wgZGlzcGxheXMuCisjaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFU
Rk9STShXUEUpCisgICAgc3RvcFJ1bkxvb3AoKTsKKyNlbHNlCiAgICAgX2V4aXQoRVhJVF9TVUND
RVNTKTsKKyNlbmRpZgogfQogCiB2b2lkIEF1eGlsaWFyeVByb2Nlc3M6OmluaXRpYWxpemUoY29u
c3QgQXV4aWxpYXJ5UHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAppbmRleCA3OTk2MTNkMzc3NDIz
NjNiZmJkY2Q5NTI5Nzk5NjIyMDZmMDIyOGE4Li42NTY0Y2JhZmQwMGJiZjRiOTM5ZTQzYzU2ZDY5
ZTVkM2E4NGM3YzYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJv
Y2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCkBA
IC0yNTcsNiArMjU3LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiB1c2luZyBuYW1lc3BhY2UgSlND
OwogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKKyNpZiAhUExBVEZPUk0oR1RLKSAmJiAhUExB
VEZPUk0oV1BFKQogTk9fUkVUVVJOIHN0YXRpYyB2b2lkIGNhbGxFeGl0KElQQzo6Q29ubmVjdGlv
biopCiB7CiAjaWYgT1MoV0lORE9XUykKQEAgLTI2Niw2ICsyNjcsNyBAQCBOT19SRVRVUk4gc3Rh
dGljIHZvaWQgY2FsbEV4aXQoSVBDOjpDb25uZWN0aW9uKikKICAgICBfZXhpdChFWElUX1NVQ0NF
U1MpOwogI2VuZGlmCiB9CisjZW5kaWYKIAogV2ViUHJvY2VzcyYgV2ViUHJvY2Vzczo6c2luZ2xl
dG9uKCkKIHsKQEAgLTM1OSw5ICszNjEsMTIgQEAgdm9pZCBXZWJQcm9jZXNzOjppbml0aWFsaXpl
Q29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24pCiB7CiAgICAgQXV4aWxpYXJ5
UHJvY2Vzczo6aW5pdGlhbGl6ZUNvbm5lY3Rpb24oY29ubmVjdGlvbik7CiAKKy8vIEZvciBHVEsg
YW5kIFdQRSBwb3J0cywgZG8gbm90IGZhc3QtdHJhY2sgYW4gX2V4aXQoKSBmcm9tIGEgd29ya2Vy
IHRocmVhZCBvbiBJUEMgZGlzY29ubmVjdGlvbgorI2lmICFQTEFURk9STShHVEspICYmICFQTEFU
Rk9STShXUEUpCiAgICAgLy8gV2UgY2FsbCBfZXhpdCgpIGRpcmVjdGx5IGZyb20gdGhlIGJhY2tn
cm91bmQgcXVldWUgaW4gY2FzZSB0aGUgbWFpbiB0aHJlYWQgaXMgdW5yZXNwb25zaXZlCiAgICAg
Ly8gYW5kIEF1eGlsaWFyeVByb2Nlc3M6OmRpZENsb3NlKCkgZG9lcyBub3QgZ2V0IGNhbGxlZC4K
ICAgICBjb25uZWN0aW9uLT5zZXREaWRDbG9zZU9uQ29ubmVjdGlvbldvcmtRdWV1ZUNhbGxiYWNr
KGNhbGxFeGl0KTsKKyNlbmRpZgogCiAjaWYgIVBMQVRGT1JNKEdUSykgJiYgIVBMQVRGT1JNKFdQ
RSkgJiYgIUVOQUJMRShJUENfVEVTVElOR19BUEkpCiAgICAgY29ubmVjdGlvbi0+c2V0U2hvdWxk
RXhpdE9uU3luY01lc3NhZ2VTZW5kRmFpbHVyZSh0cnVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUHJvY2Vzcy5oCmluZGV4IDU5NWFmMGI5NzQxMjkwZGE2YzczNGEwODg2YjgyNGQyM2IxZWU1
N2UuLjdjNTBlMDdlZGE1ZTA0ZmRiMzJjMGFlMzBlZmY0YjBiZmUzNzE4ZmYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaApAQCAtNTExLDcgKzUxMSw3IEBAIHByaXZhdGU6CiAg
ICAgYm9vbCBzaG91bGRUZXJtaW5hdGUoKSBvdmVycmlkZTsKICAgICB2b2lkIHRlcm1pbmF0ZSgp
IG92ZXJyaWRlOwogCi0jaWYgVVNFKEFQUEtJVCkKKyNpZiBVU0UoQVBQS0lUKSB8fCBQTEFURk9S
TShHVEspIHx8IFBMQVRGT1JNKFdQRSkKICAgICB2b2lkIHN0b3BSdW5Mb29wKCkgb3ZlcnJpZGU7
CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2dsaWIvV2Vi
UHJvY2Vzc0dMaWIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2dsaWIvV2ViUHJvY2Vz
c0dMaWIuY3BwCmluZGV4IDM0MjdiYWFiNWY2MDc2ODg0NjMzYjA3MWEzYzY0NDQ0ZTQzMzczNmIu
LjczYWEyNWJmNDFhZTM5YjE1MGJiNDA1NzYzYTU5MjFiZjlkODhlMDIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9nbGliL1dlYlByb2Nlc3NHTGliLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvZ2xpYi9XZWJQcm9jZXNzR0xpYi5jcHAKQEAgLTcyLDYgKzcy
LDIwIEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAor
dm9pZCBXZWJQcm9jZXNzOjpzdG9wUnVuTG9vcCgpCit7CisgICAgLy8gUGFnZXMgYXJlIG5vcm1h
bGx5IGNsb3NlZCBhZnRlciBDbG9zZSBtZXNzYWdlIGlzIHJlY2VpdmVkIGZyb20gdGhlIFVJCisg
ICAgLy8gcHJvY2VzcywgYnV0IGl0IGNhbiBoYXBwZW4gdGhhdCB0aGUgY29ubmVjdGlvbiBpcyBj
bG9zZWQgYmVmb3JlIHRoZQorICAgIC8vIENsb3NlIG1lc3NhZ2UgaXMgcHJvY2Vzc2VkIGJlY2F1
c2UgdGhlIFVJIHByb2Nlc3MgY2xvc2UgdGhlIHNvY2tldAorICAgIC8vIHJpZ2h0IGFmdGVyIHNl
bmRpbmcgdGhlIENsb3NlIG1lc3NhZ2UuIENsb3NlIGhlcmUgYW55IHBlbmRpbmcgcGFnZSB0bwor
ICAgIC8vIGVuc3VyZSB0aGUgdGhyZWFkZWQgY29tcG9zaXRvciBpcyBpbnZhbGlkYXRlZCBhbmQg
R0wgcmVzb3VyY2VzCisgICAgLy8gcmVsZWFzZWQgKHNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjE3NjU1KS4KKyAgICBmb3IgKGF1dG8mIHdlYlBhZ2UgOiBtX3Bh
Z2VNYXAudmFsdWVzKCkpCisgICAgICAgIHdlYlBhZ2UtPmNsb3NlKCk7CisKKyAgICBBdXhpbGlh
cnlQcm9jZXNzOjpzdG9wUnVuTG9vcCgpOworfQorCiB2b2lkIFdlYlByb2Nlc3M6OnBsYXRmb3Jt
U2V0Q2FjaGVNb2RlbChDYWNoZU1vZGVsIGNhY2hlTW9kZWwpCiB7CiAgICAgV2ViQ29yZTo6TWVt
b3J5Q2FjaGU6OnNpbmdsZXRvbigpLnNldERpc2FibGVkKGNhY2hlTW9kZWwgPT0gQ2FjaGVNb2Rl
bDo6RG9jdW1lbnRWaWV3ZXIpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>452859</attachid>
            <date>2022-02-22 06:00:28 -0800</date>
            <delta_ts>2022-02-23 01:33:28 -0800</delta_ts>
            <desc>psaavedra patch version 5</desc>
            <filename>bug-217655-20220222150027.patch</filename>
            <type>text/plain</type>
            <size>4877</size>
            <attacher name="Pablo Saavedra">psaavedra</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwMjk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDc3YmJiMTVjZjFlNmZjMzdk
NDQ2NTBhNzc1ZjZmZjQyYjM2ZmQxMDIuLjZhNmE2NGI3ZjAxOWRmOTBlYmJiMDcxODk4NWRkMzUy
MzRhYWRkMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMjItMDItMjIgIFBhYmxvIFNh
YXZlZHJhICA8cHNhYXZlZHJhQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dUS11bV1BFXSBQbGF0
Zm9ybURpc3BsYXk6OnRlcm1pbmF0ZUVnbERpc3BsYXlzKCkgaXMgbmV2ZXIgY2FsbGVkCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTc2NTUKKworICAg
ICAgICBTdG9wIHRoZSBydW4gbG9vcCBmb3IgR1RLIGFuZCBXUEUgdG8gZW5zdXJlIGEgbm9ybWFs
IGV4aXQsIHNpbmNlIHdlIG5lZWQKKyAgICAgICAgYXRleGl0IGhhbmRsZXJzIHRvIGJlIGNhbGxl
ZCB0byBjbGVhbnVwIHJlc291cmNlcyBsaWtlIEVHTCBkaXNwbGF5cy4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNoYXJlZC9BdXhpbGlhcnlQcm9j
ZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6QXV4aWxpYXJ5UHJvY2Vzczo6ZGlkQ2xvc2UpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YlByb2Nlc3M6OmluaXRpYWxpemVDb25uZWN0aW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlByb2Nlc3MuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2dsaWIvV2ViUHJvY2Vzc0dMaWIuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpzdG9wUnVuTG9vcCk6CisKIDIwMjItMDIt
MjIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBBdm9pZCBoYXZp
bmcgdG8gaXRlcmF0ZSB0aGUgd2hvbGUgZnJhbWUgdHJlZShzKSBldmVyeSB0aW1lIHdlIG5lZWQg
dG8gZGlzcGF0Y2ggc3RvcmFnZSBldmVudHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL0F1eGlsaWFyeVByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQXV4aWxpYXJ5
UHJvY2Vzcy5jcHAKaW5kZXggZTA0NTk5ZjcwZGQwYzE2YTA1YmFjMmM0Nzk4ZDY4MTY4MDc4ZDE1
NS4uOTQ0NjZiMTk4NGJlOGY5MTRlZmRiMWU1NDFjYTc1MjAxZGRmMzNhYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9TaGFyZWQvQXV4aWxpYXJ5UHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvQXV4aWxpYXJ5UHJvY2Vzcy5jcHAKQEAgLTYwLDcgKzYwLDEzIEBAIEF1eGls
aWFyeVByb2Nlc3M6On5BdXhpbGlhcnlQcm9jZXNzKCkKIAogdm9pZCBBdXhpbGlhcnlQcm9jZXNz
OjpkaWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mKQogeworLy8gU3RvcCB0aGUgcnVuIGxvb3AgZm9y
IEdUSyBhbmQgV1BFIHRvIGVuc3VyZSBhIG5vcm1hbCBleGl0LCBzaW5jZSB3ZSBuZWVkCisvLyBh
dGV4aXQgaGFuZGxlcnMgdG8gYmUgY2FsbGVkIHRvIGNsZWFudXAgcmVzb3VyY2VzIGxpa2UgRUdM
IGRpc3BsYXlzLgorI2lmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKQorICAgIHN0b3BS
dW5Mb29wKCk7CisjZWxzZQogICAgIF9leGl0KEVYSVRfU1VDQ0VTUyk7CisjZW5kaWYKIH0KIAog
dm9pZCBBdXhpbGlhcnlQcm9jZXNzOjppbml0aWFsaXplKGNvbnN0IEF1eGlsaWFyeVByb2Nlc3NJ
bml0aWFsaXphdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUHJvY2Vzcy5jcHAKaW5kZXggNzk5NjEzZDM3NzQyMzYzYmZiZGNkOTUyOTc5OTYyMjA2
ZjAyMjhhOC4uOGRhNzkzZDkwNDg3MjA3MDFkNWJmNDcwMjFjYjkyZmVhMTJjMTc2NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApAQCAtMjU3LDYgKzI1Nyw3IEBAIG5h
bWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIEpTQzsKIHVzaW5nIG5hbWVzcGFjZSBX
ZWJDb3JlOwogCisjaWYgIVBMQVRGT1JNKEdUSykgJiYgIVBMQVRGT1JNKFdQRSkKIE5PX1JFVFVS
TiBzdGF0aWMgdm9pZCBjYWxsRXhpdChJUEM6OkNvbm5lY3Rpb24qKQogewogI2lmIE9TKFdJTkRP
V1MpCkBAIC0yNjYsNiArMjY3LDcgQEAgTk9fUkVUVVJOIHN0YXRpYyB2b2lkIGNhbGxFeGl0KElQ
Qzo6Q29ubmVjdGlvbiopCiAgICAgX2V4aXQoRVhJVF9TVUNDRVNTKTsKICNlbmRpZgogfQorI2Vu
ZGlmCiAKIFdlYlByb2Nlc3MmIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpCiB7CkBAIC0zNTksOSAr
MzYxLDEzIEBAIHZvaWQgV2ViUHJvY2Vzczo6aW5pdGlhbGl6ZUNvbm5lY3Rpb24oSVBDOjpDb25u
ZWN0aW9uKiBjb25uZWN0aW9uKQogewogICAgIEF1eGlsaWFyeVByb2Nlc3M6OmluaXRpYWxpemVD
b25uZWN0aW9uKGNvbm5lY3Rpb24pOwogCisvLyBEbyBub3QgY2FsbCBleGl0IGluIGJhY2tncm91
bmQgcXVldWUgZm9yIEdUSyBhbmQgV1BFIGJlY2F1c2Ugd2UgbmVlZCB0byBlbnN1cmUKKy8vIGF0
ZXhpdCBoYW5kbGVycyBhcmUgY2FsbGVkIGluIHRoZSBtYWluIHRocmVhZCB0byBjbGVhbnVwIHJl
c291cmNlcyBsaWtlIEVHTCBkaXNwbGF5cy4KKyNpZiAhUExBVEZPUk0oR1RLKSAmJiAhUExBVEZP
Uk0oV1BFKQogICAgIC8vIFdlIGNhbGwgX2V4aXQoKSBkaXJlY3RseSBmcm9tIHRoZSBiYWNrZ3Jv
dW5kIHF1ZXVlIGluIGNhc2UgdGhlIG1haW4gdGhyZWFkIGlzIHVucmVzcG9uc2l2ZQogICAgIC8v
IGFuZCBBdXhpbGlhcnlQcm9jZXNzOjpkaWRDbG9zZSgpIGRvZXMgbm90IGdldCBjYWxsZWQuCiAg
ICAgY29ubmVjdGlvbi0+c2V0RGlkQ2xvc2VPbkNvbm5lY3Rpb25Xb3JrUXVldWVDYWxsYmFjayhj
YWxsRXhpdCk7CisjZW5kaWYKIAogI2lmICFQTEFURk9STShHVEspICYmICFQTEFURk9STShXUEUp
ICYmICFFTkFCTEUoSVBDX1RFU1RJTkdfQVBJKQogICAgIGNvbm5lY3Rpb24tPnNldFNob3VsZEV4
aXRPblN5bmNNZXNzYWdlU2VuZEZhaWx1cmUodHJ1ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlByb2Nlc3MuaAppbmRleCA1OTVhZjBiOTc0MTI5MGRhNmM3MzRhMDg4NmI4MjRkMjNiMWVlNTdl
Li43YzUwZTA3ZWRhNWUwNGZkYjMyYzBhZTMwZWZmNGIwYmZlMzcxOGZmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKQEAgLTUxMSw3ICs1MTEsNyBAQCBwcml2YXRlOgogICAg
IGJvb2wgc2hvdWxkVGVybWluYXRlKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCB0ZXJtaW5hdGUoKSBv
dmVycmlkZTsKIAotI2lmIFVTRShBUFBLSVQpCisjaWYgVVNFKEFQUEtJVCkgfHwgUExBVEZPUk0o
R1RLKSB8fCBQTEFURk9STShXUEUpCiAgICAgdm9pZCBzdG9wUnVuTG9vcCgpIG92ZXJyaWRlOwog
I2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9nbGliL1dlYlBy
b2Nlc3NHTGliLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9nbGliL1dlYlByb2Nlc3NH
TGliLmNwcAppbmRleCAzNDI3YmFhYjVmNjA3Njg4NDYzM2IwNzFhM2M2NDQ0NGU0MzM3MzZiLi5m
YmM4NGFhMTk5NTEzZmUwMmViMGM2NWIxZDBiZmFlZDU3ZThmNDZmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvZ2xpYi9XZWJQcm9jZXNzR0xpYi5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL2dsaWIvV2ViUHJvY2Vzc0dMaWIuY3BwCkBAIC03Miw2ICs3Miwy
MCBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKK3Zv
aWQgV2ViUHJvY2Vzczo6c3RvcFJ1bkxvb3AoKQoreworICAgIC8vIFBhZ2VzIGFyZSBub3JtYWxs
eSBjbG9zZWQgYWZ0ZXIgQ2xvc2UgbWVzc2FnZSBpcyByZWNlaXZlZCBmcm9tIHRoZSBVSQorICAg
IC8vIHByb2Nlc3MsIGJ1dCBpdCBjYW4gaGFwcGVuIHRoYXQgdGhlIGNvbm5lY3Rpb24gaXMgY2xv
c2VkIGJlZm9yZSB0aGUKKyAgICAvLyBDbG9zZSBtZXNzYWdlIGlzIHByb2Nlc3NlZCBiZWNhdXNl
IHRoZSBVSSBwcm9jZXNzIGNsb3NlIHRoZSBzb2NrZXQKKyAgICAvLyByaWdodCBhZnRlciBzZW5k
aW5nIHRoZSBDbG9zZSBtZXNzYWdlLiBDbG9zZSBoZXJlIGFueSBwZW5kaW5nIHBhZ2UgdG8KKyAg
ICAvLyBlbnN1cmUgdGhlIHRocmVhZGVkIGNvbXBvc2l0b3IgaXMgaW52YWxpZGF0ZWQgYW5kIEdM
IHJlc291cmNlcworICAgIC8vIHJlbGVhc2VkIChzZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIxNzY1NSkuCisgICAgZm9yIChhdXRvJiB3ZWJQYWdlIDogY29weVRv
VmVjdG9yKG1fcGFnZU1hcC52YWx1ZXMoKSkpCisgICAgICAgIHdlYlBhZ2UtPmNsb3NlKCk7CisK
KyAgICBBdXhpbGlhcnlQcm9jZXNzOjpzdG9wUnVuTG9vcCgpOworfQorCiB2b2lkIFdlYlByb2Nl
c3M6OnBsYXRmb3JtU2V0Q2FjaGVNb2RlbChDYWNoZU1vZGVsIGNhY2hlTW9kZWwpCiB7CiAgICAg
V2ViQ29yZTo6TWVtb3J5Q2FjaGU6OnNpbmdsZXRvbigpLnNldERpc2FibGVkKGNhY2hlTW9kZWwg
PT0gQ2FjaGVNb2RlbDo6RG9jdW1lbnRWaWV3ZXIpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>