<?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>236163</bug_id>
          
          <creation_ts>2022-02-04 15:49:57 -0800</creation_ts>
          <short_desc>[GTK] Prefer EGL over X11 where available</short_desc>
          <delta_ts>2022-09-22 03:00:01 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKitGTK</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Arcady Goldmints-Orlov">crzwdjk</reporter>
          <assigned_to name="Víctor M. Jáquez L.">vjaquez</assigned_to>
          <cc>alex</cc>
    
    <cc>bugs-noreply</cc>
    
    <cc>calvaris</cc>
    
    <cc>cgarcia</cc>
    
    <cc>clord</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gustavo</cc>
    
    <cc>menard</cc>
    
    <cc>pgriffis</cc>
    
    <cc>pnormand</cc>
    
    <cc>vjaquez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1837622</commentid>
    <comment_count>0</comment_count>
    <who name="Arcady Goldmints-Orlov">crzwdjk</who>
    <bug_when>2022-02-04 15:49:57 -0800</bug_when>
    <thetext>In order to take advantage of the forthcoming work to use ANGLE for WebGL and use shared EGLimages to deliver rendered frames to the compositor thread, we need to be using EGL. Therefore, where both GLX and EGL are available, EGL should be preferred over GLX rather than the other way around.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1837623</commentid>
    <comment_count>1</comment_count>
      <attachid>450945</attachid>
    <who name="Arcady Goldmints-Orlov">crzwdjk</who>
    <bug_when>2022-02-04 15:55:03 -0800</bug_when>
    <thetext>Created attachment 450945
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1837629</commentid>
    <comment_count>2</comment_count>
    <who name="Patrick Griffis">pgriffis</who>
    <bug_when>2022-02-04 16:14:45 -0800</bug_when>
    <thetext>This appears to break all rendering on NVidia/X11.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1837730</commentid>
    <comment_count>3</comment_count>
      <attachid>450945</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2022-02-05 01:02:44 -0800</bug_when>
    <thetext>Comment on attachment 450945
Patch

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

&gt; Source/WebCore/platform/graphics/gstreamer/PlatformDisplayGStreamer.cpp:69
&gt; +    if (is&lt;PlatformDisplayX11&gt;(sharedDisplay)) {

So what will happen now if EGL is enabled but X11 is disabled at build time? It seems this patch makes EGL depend on X11, which is not a thing we want on embedded platforms, I think.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1838581</commentid>
    <comment_count>4</comment_count>
    <who name="Chris Lord">clord</who>
    <bug_when>2022-02-08 02:26:35 -0800</bug_when>
    <thetext>(In reply to Philippe Normand from comment #3)
&gt; Comment on attachment 450945 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=450945&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/gstreamer/PlatformDisplayGStreamer.cpp:69
&gt; &gt; +    if (is&lt;PlatformDisplayX11&gt;(sharedDisplay)) {
&gt; 
&gt; So what will happen now if EGL is enabled but X11 is disabled at build time?
&gt; It seems this patch makes EGL depend on X11, which is not a thing we want on
&gt; embedded platforms, I think.

I don&apos;t think that&apos;s the case here, this block is already in a PLATFORM(X11) define and there are separate blocks for both USE(WPE_RENDERER) and PLATFORM(WAYLAND). The problem I do see though is that it doesn&apos;t handle if EGL and GLX are enabled and EGL context creation failed, which the rest of the patch seems to handle. The second #elif USE(GLX) path should just be in a separate #if USE(GLX) path, I think.

This would appear to be a pre-existing bug, but in the other direction (where if GLX and EGL are both enabled and GLX context creation failed and EGL succeeded, this will not return an EGL context).

This patch adds checking that there actually is a display for the EGL path, I don&apos;t know if there&apos;s a situation where there wouldn&apos;t be a display on the GLX path at this point in the code(?)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1865671</commentid>
    <comment_count>5</comment_count>
    <who name="Arcady Goldmints-Orlov">crzwdjk</who>
    <bug_when>2022-04-30 12:45:49 -0700</bug_when>
    <thetext>Unfortunately when I try to test aquarium with this now, I get a context creation error, with or without ANGLE. I do know it worked at some point, and I still think it would be a generally good idea to prefer EGL over GLX.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1891329</commentid>
    <comment_count>6</comment_count>
    <who name="Víctor M. Jáquez L.">vjaquez</who>
    <bug_when>2022-08-15 08:21:01 -0700</bug_when>
    <thetext>Pull request: https://github.com/WebKit/WebKit/pull/3305</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1893468</commentid>
    <comment_count>7</comment_count>
    <who name="Víctor M. Jáquez L.">vjaquez</who>
    <bug_when>2022-08-24 08:26:22 -0700</bug_when>
    <thetext>(In reply to Arcady Goldmints-Orlov from comment #5)
&gt; Unfortunately when I try to test aquarium with this now, I get a context
&gt; creation error, with or without ANGLE. I do know it worked at some point,
&gt; and I still think it would be a generally good idea to prefer EGL over GLX.

I&apos;m testing the patch as is, either with nvidia (515.49.09) and Mesa radeon (22.2.0 rc1), and it seems to work OK either a video and the aquarium</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1893469</commentid>
    <comment_count>8</comment_count>
    <who name="Arcady Goldmints-Orlov">crzwdjk</who>
    <bug_when>2022-08-24 08:40:19 -0700</bug_when>
    <thetext>That sounds like sufficient testing. I don&apos;t think there would be any new issues with multi-device setups with either NVIDIA or Mesa. Unfortunately it would be somewhat challenging for me to try to build and test my own build WebKit at this point.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1895759</commentid>
    <comment_count>9</comment_count>
    <who name="Alejandro G. Castro">alex</who>
    <bug_when>2022-09-02 05:05:34 -0700</bug_when>
    <thetext>(In reply to Víctor M. Jáquez L. from comment #7)
&gt; (In reply to Arcady Goldmints-Orlov from comment #5)
&gt; &gt; Unfortunately when I try to test aquarium with this now, I get a context
&gt; &gt; creation error, with or without ANGLE. I do know it worked at some point,
&gt; &gt; and I still think it would be a generally good idea to prefer EGL over GLX.
&gt; 
&gt; I&apos;m testing the patch as is, either with nvidia (515.49.09) and Mesa radeon
&gt; (22.2.0 rc1), and it seems to work OK either a video and the aquarium

Are you using X? Patrick could you check again this patch?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1897863</commentid>
    <comment_count>10</comment_count>
    <who name="Patrick Griffis">pgriffis</who>
    <bug_when>2022-09-12 08:14:33 -0700</bug_when>
    <thetext>Tested again on Nvidia 515.65.01 and still fails to render anything. No errors at all.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1898677</commentid>
    <comment_count>11</comment_count>
      <attachid>462354</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2022-09-15 06:06:27 -0700</bug_when>
    <thetext>Created attachment 462354
Patch

This patch includes the following additions:
 - Simplify the gst context creation
 - Always match the window gl context to the shared one.
 - Ensure the EGL config has a visual compatible with the window
 - Several fixes in about:gpu that assumed X11 is always GLX

Patrick, could you try this with nvidia?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1898936</commentid>
    <comment_count>12</comment_count>
      <attachid>462388</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2022-09-16 02:42:55 -0700</bug_when>
    <thetext>Created attachment 462388
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1898940</commentid>
    <comment_count>13</comment_count>
    <who name="Víctor M. Jáquez L.">vjaquez</who>
    <bug_when>2022-09-16 03:20:14 -0700</bug_when>
    <thetext>(In reply to Carlos Garcia Campos from comment #12)
&gt; Created attachment 462388 [details]
&gt; Patch

Got a crash

NVIDIA 515.49.15 (beta for Vulkan) within flatpak with it respective runtime.

#0  0x00007f6807904112 in WebCore::GLContextEGL::createWindowContext(unsigned long, WebCore::PlatformDisplay&amp;, void*)::$_3::operator()(int) const (this=0x7f67e81700c8, configVisualID=0x24) at /app/webkit/Source/
WebCore/platform/graphics/egl/GLContextEGL.cpp:203
#1  0x00007f680790408f in WTF::Detail::CallableWrapper&lt;WebCore::GLContextEGL::createWindowContext(unsigned long, WebCore::PlatformDisplay&amp;, void*)::$_3, bool, int&gt;::call(int) (this=0x7f67e81700c0, in=0x24) at WT
F/Headers/wtf/Function.h:53
#2  0x00007f6807905605 in WTF::Function&lt;bool (int)&gt;::operator()(int) const (this=0x7f6795ffa5a8, in=0x24) at WTF/Headers/wtf/Function.h:82
#3  0x00007f6807903d0c in WebCore::GLContextEGL::getEGLConfig(void*, void**, WebCore::GLContextEGL::EGLSurfaceType, WTF::Function&lt;bool (int)&gt;&amp;&amp;)::$_1::operator()(void*) const (this=0x7f6795ffa350, value=0xcaf329
) at /app/webkit/Source/WebCore/platform/graphics/egl/GLContextEGL.cpp:162
#4  0x00007f68079018f2 in WTF::Vector&lt;void*, 0ul, WTF::CrashOnOverflow, 16ul, WTF::FastMalloc&gt;::findIf&lt;WebCore::GLContextEGL::getEGLConfig(void*, void**, WebCore::GLContextEGL::EGLSurfaceType, WTF::Function&lt;bool
 (int)&gt;&amp;&amp;)::$_1&gt;(WebCore::GLContextEGL::getEGLConfig(void*, void**, WebCore::GLContextEGL::EGLSurfaceType, WTF::Function&lt;bool (int)&gt;&amp;&amp;)::$_1 const&amp;) const (this=0x7f6795ffa378, matches=...) at WTF/Headers/wtf/Ve
ctor.h:1069
#5  0x00007f6807901763 in WebCore::GLContextEGL::getEGLConfig(void*, void**, WebCore::GLContextEGL::EGLSurfaceType, WTF::Function&lt;bool (int)&gt;&amp;&amp;) (display=0x7f677c028a20, config=0x7f6795ffa4e0, surfaceType=WebCor
e::GLContextEGL::WindowSurface, checkCompatibleVisuals=...) at /app/webkit/Source/WebCore/platform/graphics/egl/GLContextEGL.cpp:150
#6  0x00007f6807901ad8 in WebCore::GLContextEGL::createWindowContext(unsigned long, WebCore::PlatformDisplay&amp;, void*) (window=0x2200004, platformDisplay=..., sharingContext=0x7f677c04cf91) at /app/webkit/Source/
WebCore/platform/graphics/egl/GLContextEGL.cpp:216
#7  0x00007f6807902a36 in WebCore::GLContextEGL::createContext(unsigned long, WebCore::PlatformDisplay&amp;) (window=0x2200004, platformDisplay=...) at /app/webkit/Source/WebCore/platform/graphics/egl/GLContextEGL.c
pp:328
#8  0x00007f680787f4f7 in WebCore::GLContext::createContextForWindow(unsigned long, WebCore::PlatformDisplay*) (windowHandle=0x2200004, platformDisplay=0x7f67e8054220) at /app/webkit/Source/WebCore/platform/grap
hics/GLContext.cpp:91
#9  0x00007f680312084a in WebKit::ThreadedCompositor::createGLContext() (this=0x7f67e8119b80) at /app/webkit/Source/WebKit/Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:96
#10 0x00007f6803127c22 in WebKit::ThreadedCompositor::ThreadedCompositor(WebKit::ThreadedCompositor::Client&amp;, WebKit::ThreadedDisplayRefreshMonitor::Client&amp;, unsigned int, WebCore::IntSize const&amp;, float, unsigne
d int)::$_8::operator()() const (this=0x7f67e8113ca8) at /app/webkit/Source/WebKit/Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:73
#11 0x00007f6803127b89 in WTF::Detail::CallableWrapper&lt;WebKit::ThreadedCompositor::ThreadedCompositor(WebKit::ThreadedCompositor::Client&amp;, WebKit::ThreadedDisplayRefreshMonitor::Client&amp;, unsigned int, WebCore::I
ntSize const&amp;, float, unsigned int)::$_8, void&gt;::call() (this=0x7f67e8113ca0) at WTF/Headers/wtf/Function.h:53
#12 0x00007f68023b8d82 in WTF::Function&lt;void ()&gt;::operator()() const (this=0x7f67e8113cd0) at WTF/Headers/wtf/Function.h:82
#13 0x00007f68031273b0 in WebKit::CompositingRunLoop::performTaskSync(WTF::Function&lt;void ()&gt;&amp;&amp;)::$_6::operator()() const (this=0x7f67e8113cc8) at /app/webkit/Source/WebKit/Shared/CoordinatedGraphics/threadedcomp
ositor/CompositingRunLoop.cpp:90
#14 0x00007f6803127369 in WTF::Detail::CallableWrapper&lt;WebKit::CompositingRunLoop::performTaskSync(WTF::Function&lt;void ()&gt;&amp;&amp;)::$_6, void&gt;::call() (this=0x7f67e8113cc0) at WTF/Headers/wtf/Function.h:53
#15 0x00007f67f9cbdb22 in WTF::Function&lt;void ()&gt;::operator()() const (this=0x7f6795ffa890) at WTF/Headers/wtf/Function.h:82
#16 0x00007f67fb3212ae in WTF::RunLoop::performWork() (this=0x7f67e81600c0) at /app/webkit/Source/WTF/wtf/RunLoop.cpp:133
#17 0x00007f67fb3d5af9 in WTF::RunLoop::RunLoop()::$_1::operator()(void*) const (this=0x7f67e81600c0, userData=0x7f67e81600c0) at /app/webkit/Source/WTF/wtf/glib/RunLoopGLib.cpp:80
#18 0x00007f67fb3d5ad5 in WTF::RunLoop::RunLoop()::$_1::__invoke(void*) (userData=0x7f67e81600c0) at /app/webkit/Source/WTF/wtf/glib/RunLoopGLib.cpp:79
#19 0x00007f67fb3d5a89 in WTF::RunLoop::$_0::operator()(_GSource*, int (*)(void*), void*) const (this=0x7f677c001b30, source=0x7f677c001b30, callback=0x7f67fb3d5ac0 &lt;WTF::RunLoop::RunLoop()::$_1::__invoke(void*)
&gt;, userData=0x7f67e81600c0) at /app/webkit/Source/WTF/wtf/glib/RunLoopGLib.cpp:53
#20 0x00007f67fb3d4c85 in WTF::RunLoop::$_0::__invoke(_GSource*, int (*)(void*), void*) (source=0x7f677c001b30, callback=0x7f67fb3d5ac0 &lt;WTF::RunLoop::RunLoop()::$_1::__invoke(void*)&gt;, userData=0x7f67e81600c0) a
t /app/webkit/Source/WTF/wtf/glib/RunLoopGLib.cpp:45
#21 0x00007f67fbb08294 in g_main_dispatch (context=0x7f677c000b60) at ../glib/gmain.c:3381
#22 g_main_context_dispatch (context=0x7f677c000b60) at ../glib/gmain.c:4099
#23 0x00007f67fbb08638 in g_main_context_iterate (context=0x7f677c000b60, block=block@entry=0x1, dispatch=dispatch@entry=0x1, self=&lt;optimized out&gt;) at ../glib/gmain.c:4175
#24 0x00007f67fbb08943 in g_main_loop_run (loop=0x7f677c001b10) at ../glib/gmain.c:4373
#25 0x00007f67fb3d5208 in WTF::RunLoop::run() () at /app/webkit/Source/WTF/wtf/glib/RunLoopGLib.cpp:108
#26 0x00007f6803121da4 in WebKit::createRunLoop()::$_12::operator()() const (this=0x7f67e8113c48) at /app/webkit/Source/WebKit/Shared/CoordinatedGraphics/threadedcompositor/CompositingRunLoop.cpp:49
#27 0x00007f6803121d49 in WTF::Detail::CallableWrapper&lt;WebKit::createRunLoop()::$_12, void&gt;::call() (this=0x7f67e8113c40) at WTF/Headers/wtf/Function.h:53
#28 0x00007f67f9cbdb22 in WTF::Function&lt;void ()&gt;::operator()() const (this=0x7f6795ffab90) at WTF/Headers/wtf/Function.h:82
#29 0x00007f67fb32c298 in WTF::Thread::entryPoint(WTF::Thread::NewThreadContext*) (newThreadContext=0x7f67e8158ea0) at /app/webkit/Source/WTF/wtf/Threading.cpp:240
#30 0x00007f67fb3e1f15 in WTF::wtfThreadEntryPoint(void*) (context=0x7f67e8158ea0) at /app/webkit/Source/WTF/wtf/posix/ThreadingPOSIX.cpp:242
#31 0x00007f67f79e73ba in start_thread (arg=0x7f6795ffb640) at pthread_create.c:481
#32 0x00007f67f4fda7a3 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95


It looks like if visualInfo is deallocated when checkCompatibleVisuals is called in getEGLConfig.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1899466</commentid>
    <comment_count>14</comment_count>
    <who name="Víctor M. Jáquez L.">vjaquez</who>
    <bug_when>2022-09-19 06:32:35 -0700</bug_when>
    <thetext>(In reply to Carlos Garcia Campos from comment #12)
&gt; Created attachment 462388 [details]
&gt; Patch

I got it fixed. Quite simple :)

With my nvidia setup works. I will update the patch in github.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1899811</commentid>
    <comment_count>15</comment_count>
      <attachid>462471</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2022-09-20 07:33:08 -0700</bug_when>
    <thetext>Created attachment 462471
Patch

This fixes the crashes by transferring the ownership to the Function instead of passing captures by value. It also adds an env var to force GLX, for easily testing if a failure is due to EGL over X11.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1900070</commentid>
    <comment_count>16</comment_count>
      <attachid>462491</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2022-09-21 02:10:57 -0700</bug_when>
    <thetext>Created attachment 462491
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1900335</commentid>
    <comment_count>17</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-09-22 02:59:57 -0700</bug_when>
    <thetext>Committed 254751@main (5948e8b03d0c): &lt;https://commits.webkit.org/254751@main&gt;

Reviewed commits have been landed. Closing PR #3305 and removing active labels.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>450945</attachid>
            <date>2022-02-04 15:55:03 -0800</date>
            <delta_ts>2022-02-04 17:40:21 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-236163-20220204185502.patch</filename>
            <type>text/plain</type>
            <size>4305</size>
            <attacher name="Arcady Goldmints-Orlov">crzwdjk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg5MTM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDA5OTU1ZTJjZDIxZWI0
MmQ0NDBhZGFmZDg3YjIyMjkwZTFmM2M0Yy4uYzU4OGUxMDZmMTkxNGYyNDU0Y2EyZmFjMTJkZGJk
ZmIyMTk3YTk0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDIyLTAyLTA0ICBBcmNh
ZHkgR29sZG1pbnRzLU9ybG92ICA8YWdvbGRtaW50c0BpZ2FsaWEuY29tPgorCisgICAgICAgIFtH
VEtdIFByZWZlciBFR0wgb3ZlciBYMTEgd2hlcmUgYXZhaWxhYmxlCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzYxNjMKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGVuIGNyZWF0aW5nIGEgR0wgY29udGV4
dCBvciBHU3RyZWFtZXIgZGlzcGxheSwgdHJ5IHRvIHVzZSBFR0wgYmVmb3JlCisgICAgICAgIGZh
bGxpbmcgYmFjayB0byBHTFggaW5zdGVhZCBvZiB0aGUgb3RoZXIgd2F5IGFyb3VuZC4KKworICAg
ICAgICBUZXN0ZWQgYnkgZXhpc3RpbmcgdGVzdHMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9HTENvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R0xDb250ZXh0OjpjcmVhdGVD
b250ZXh0Rm9yV2luZG93KToKKyAgICAgICAgKFdlYkNvcmU6OkdMQ29udGV4dDo6Y3JlYXRlU2hh
cmluZ0NvbnRleHQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9QbGF0
Zm9ybURpc3BsYXlHU3RyZWFtZXIuY3BwOgorICAgICAgICAoY3JlYXRlR3N0R0xEaXNwbGF5KToK
KwogMjAyMi0wMi0wNCAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CiAK
ICAgICAgICAgVW5yZXZpZXdlZCwgcmV2ZXJ0aW5nIHIyODkwOTguCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HTENvbnRleHQuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvR0xDb250ZXh0LmNwcAppbmRleCAwY2MyZDRlOGYxYzZlYzU4
ZjhiMjU2OTg2ZDAwY2NmOTk2YzQ3MTE3Li44ZDY0YjRkZjA4ZGQ3YWJiZmYwYTE0ZmVmNGNmNjFi
ZWVkNDYwY2VjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9H
TENvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dMQ29u
dGV4dC5jcHAKQEAgLTg1LDE1ICs4NSwxNSBAQCBzdGQ6OnVuaXF1ZV9wdHI8R0xDb250ZXh0PiBH
TENvbnRleHQ6OmNyZWF0ZUNvbnRleHRGb3JXaW5kb3coR0xOYXRpdmVXaW5kb3dUeXBlCiAgICAg
fQogI2VuZGlmCiAKKyNpZiBVU0UoRUdMKQorICAgIGlmIChhdXRvIGVnbENvbnRleHQgPSBHTENv
bnRleHRFR0w6OmNyZWF0ZUNvbnRleHQod2luZG93SGFuZGxlLCBkaXNwbGF5KSkKKyAgICAgICAg
cmV0dXJuIGVnbENvbnRleHQ7CisjZW5kaWYKICNpZiBVU0UoR0xYKQogICAgIGlmIChkaXNwbGF5
LnR5cGUoKSA9PSBQbGF0Zm9ybURpc3BsYXk6OlR5cGU6OlgxMSkgewogICAgICAgICBpZiAoYXV0
byBnbHhDb250ZXh0ID0gR0xDb250ZXh0R0xYOjpjcmVhdGVDb250ZXh0KHdpbmRvd0hhbmRsZSwg
ZGlzcGxheSkpCiAgICAgICAgICAgICByZXR1cm4gZ2x4Q29udGV4dDsKICAgICB9Ci0jZW5kaWYK
LSNpZiBVU0UoRUdMKQotICAgIGlmIChhdXRvIGVnbENvbnRleHQgPSBHTENvbnRleHRFR0w6OmNy
ZWF0ZUNvbnRleHQod2luZG93SGFuZGxlLCBkaXNwbGF5KSkKLSAgICAgICAgcmV0dXJuIGVnbENv
bnRleHQ7CiAjZW5kaWYKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KQEAgLTExMSw2ICsxMTEsMTEg
QEAgc3RkOjp1bmlxdWVfcHRyPEdMQ29udGV4dD4gR0xDb250ZXh0OjpjcmVhdGVTaGFyaW5nQ29u
dGV4dChQbGF0Zm9ybURpc3BsYXkmIGRpc3AKICAgICBpZiAoIWluaXRpYWxpemVPcGVuR0xTaGlt
c0lmTmVlZGVkKCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCisjaWYgVVNFKEVHTCkgfHwg
UExBVEZPUk0oV0FZTEFORCkgfHwgUExBVEZPUk0oV1BFKQorICAgIGlmIChhdXRvIGVnbENvbnRl
eHQgPSBHTENvbnRleHRFR0w6OmNyZWF0ZVNoYXJpbmdDb250ZXh0KGRpc3BsYXkpKQorICAgICAg
ICByZXR1cm4gZWdsQ29udGV4dDsKKyNlbmRpZgorCiAjaWYgVVNFKEdMWCkKICAgICBpZiAoZGlz
cGxheS50eXBlKCkgPT0gUGxhdGZvcm1EaXNwbGF5OjpUeXBlOjpYMTEpIHsKICAgICAgICAgaWYg
KGF1dG8gZ2x4Q29udGV4dCA9IEdMQ29udGV4dEdMWDo6Y3JlYXRlU2hhcmluZ0NvbnRleHQoZGlz
cGxheSkpCkBAIC0xMTgsMTEgKzEyMyw2IEBAIHN0ZDo6dW5pcXVlX3B0cjxHTENvbnRleHQ+IEdM
Q29udGV4dDo6Y3JlYXRlU2hhcmluZ0NvbnRleHQoUGxhdGZvcm1EaXNwbGF5JiBkaXNwCiAgICAg
fQogI2VuZGlmCiAKLSNpZiBVU0UoRUdMKSB8fCBQTEFURk9STShXQVlMQU5EKSB8fCBQTEFURk9S
TShXUEUpCi0gICAgaWYgKGF1dG8gZWdsQ29udGV4dCA9IEdMQ29udGV4dEVHTDo6Y3JlYXRlU2hh
cmluZ0NvbnRleHQoZGlzcGxheSkpCi0gICAgICAgIHJldHVybiBlZ2xDb250ZXh0OwotI2VuZGlm
Ci0KICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1BsYXRmb3JtRGlzcGxheUdTdHJlYW1lci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvUGxhdGZvcm1EaXNw
bGF5R1N0cmVhbWVyLmNwcAppbmRleCAwMGY5OWU4Mzc0YzRkYTEwMTdjYTRkMjMxNWRjZmE0NDcy
ZTI5MDYzLi5mMTg0ZDY3NTI5MjBmMzA5ODIzYTAwZmFlZTA4YThjNTRhNjUyZWEzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvUGxhdGZvcm1E
aXNwbGF5R1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvUGxhdGZvcm1EaXNwbGF5R1N0cmVhbWVyLmNwcApAQCAtMzAsNiArMzAsMTEg
QEAKICNpZiBVU0UoRUdMKQogI2luY2x1ZGUgIkdMQ29udGV4dEVHTC5oIgogI2luY2x1ZGUgPGdz
dC9nbC9lZ2wvZ3N0Z2xkaXNwbGF5X2VnbC5oPgorI2lmIFVTRShMSUJFUE9YWSkKKyNpbmNsdWRl
ICJFcG94eUVHTC5oIgorI2Vsc2UKKyNpbmNsdWRlIDxFR0wvZWdsLmg+CisjZW5kaWYKICNlbmRp
ZgogCiAjaWYgUExBVEZPUk0oWDExKQpAQCAtNjEsMTMgKzY2LDE1IEBAIHN0YXRpYyBHc3RHTERp
c3BsYXkqIGNyZWF0ZUdzdEdMRGlzcGxheShjb25zdCBQbGF0Zm9ybURpc3BsYXkmIHNoYXJlZERp
c3BsYXkpCiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKFgxMSkKLSNpZiBVU0UoR0xYKQotICAgIGlm
IChpczxQbGF0Zm9ybURpc3BsYXlYMTE+KHNoYXJlZERpc3BsYXkpKQotICAgICAgICByZXR1cm4g
R1NUX0dMX0RJU1BMQVkoZ3N0X2dsX2Rpc3BsYXlfeDExX25ld193aXRoX2Rpc3BsYXkoZG93bmNh
c3Q8UGxhdGZvcm1EaXNwbGF5WDExPihzaGFyZWREaXNwbGF5KS5uYXRpdmUoKSkpOwotI2VsaWYg
VVNFKEVHTCkKLSAgICBpZiAoaXM8UGxhdGZvcm1EaXNwbGF5WDExPihzaGFyZWREaXNwbGF5KSkK
LSAgICAgICAgcmV0dXJuIEdTVF9HTF9ESVNQTEFZKGdzdF9nbF9kaXNwbGF5X2VnbF9uZXdfd2l0
aF9lZ2xfZGlzcGxheShkb3duY2FzdDxQbGF0Zm9ybURpc3BsYXlYMTE+KHNoYXJlZERpc3BsYXkp
LmVnbERpc3BsYXkoKSkpOworICAgIGlmIChpczxQbGF0Zm9ybURpc3BsYXlYMTE+KHNoYXJlZERp
c3BsYXkpKSB7CisgICAgICAgIGNvbnN0IFBsYXRmb3JtRGlzcGxheVgxMSYgeDExRGlzcGxheSA9
IGRvd25jYXN0PFBsYXRmb3JtRGlzcGxheVgxMT4oc2hhcmVkRGlzcGxheSk7CisjaWYgVVNFKEVH
TCkKKyAgICAgICAgaWYgKHgxMURpc3BsYXkuZWdsRGlzcGxheSgpICE9IEVHTF9OT19ESVNQTEFZ
KQorICAgICAgICAgICAgcmV0dXJuIEdTVF9HTF9ESVNQTEFZKGdzdF9nbF9kaXNwbGF5X2VnbF9u
ZXdfd2l0aF9lZ2xfZGlzcGxheSh4MTFEaXNwbGF5LmVnbERpc3BsYXkoKSkpOworI2VsaWYgVVNF
KEdMWCkKKyAgICAgICAgcmV0dXJuIEdTVF9HTF9ESVNQTEFZKGdzdF9nbF9kaXNwbGF5X3gxMV9u
ZXdfd2l0aF9kaXNwbGF5KHgxMURpc3BsYXkubmF0aXZlKCkpKTsKICNlbmRpZgorICAgIH0KICNl
bmRpZgogCiAjaWYgUExBVEZPUk0oV0FZTEFORCkK
</data>
<flag name="review"
          id="477495"
          type_id="1"
          status="?"
          setter="crzwdjk"
    />
    <flag name="commit-queue"
          id="477515"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>462354</attachid>
            <date>2022-09-15 06:06:27 -0700</date>
            <delta_ts>2022-09-16 02:42:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wk-x11-prefer-egl.diff</filename>
            <type>text/plain</type>
            <size>13053</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dMQ29udGV4dC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HTENvbnRleHQuY3BwCmluZGV4
IDg0YzA1MGQ1NGZiMS4uNjIxYmQxMTU2OThjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9HTENvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0dMQ29udGV4dC5jcHAKQEAgLTg0LDYgKzg0LDE5IEBAIHN0ZDo6dW5pcXVl
X3B0cjxHTENvbnRleHQ+IEdMQ29udGV4dDo6Y3JlYXRlQ29udGV4dEZvcldpbmRvdyhHTE5hdGl2
ZVdpbmRvd1R5cGUKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICBQbGF0Zm9ybURpc3Bs
YXkmIGRpc3BsYXkgPSBwbGF0Zm9ybURpc3BsYXkgPyAqcGxhdGZvcm1EaXNwbGF5IDogUGxhdGZv
cm1EaXNwbGF5OjpzaGFyZWREaXNwbGF5KCk7CisgICAgaWYgKGF1dG8qIHNoYXJpbmdDb250ZXh0
ID0gZGlzcGxheS5zaGFyaW5nR0xDb250ZXh0KCkpIHsKKyAgICAgICAgLy8gQ29udGV4dCBmb3Ig
d2luZG93IHNob3VsZCBtYXRjaCB0aGUgdHlwZSBvZiBzaGFyaW5nIGNvbnRleHQuCisjaWYgVVNF
KEVHTCkKKyAgICAgICAgaWYgKHNoYXJpbmdDb250ZXh0LT5pc0VHTENvbnRleHQoKSkKKyAgICAg
ICAgICAgIHJldHVybiBHTENvbnRleHRFR0w6OmNyZWF0ZUNvbnRleHQod2luZG93SGFuZGxlLCBk
aXNwbGF5KTsKKyNlbmRpZgorI2lmIFVTRShHTFgpCisgICAgICAgIGlmIChkaXNwbGF5LnR5cGUo
KSA9PSBQbGF0Zm9ybURpc3BsYXk6OlR5cGU6OlgxMSkKKyAgICAgICAgICAgIHJldHVybiBHTENv
bnRleHRHTFg6OmNyZWF0ZUNvbnRleHQod2luZG93SGFuZGxlLCBkaXNwbGF5KTsKKyNlbmRpZgor
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisKICNpZiBQTEFURk9STShXQVlMQU5EKQog
ICAgIGlmIChkaXNwbGF5LnR5cGUoKSA9PSBQbGF0Zm9ybURpc3BsYXk6OlR5cGU6OldheWxhbmQp
IHsKICAgICAgICAgaWYgKGF1dG8gZWdsQ29udGV4dCA9IEdMQ29udGV4dEVHTDo6Y3JlYXRlQ29u
dGV4dCh3aW5kb3dIYW5kbGUsIGRpc3BsYXkpKQpAQCAtOTIsMTYgKzEwNSwxOCBAQCBzdGQ6OnVu
aXF1ZV9wdHI8R0xDb250ZXh0PiBHTENvbnRleHQ6OmNyZWF0ZUNvbnRleHRGb3JXaW5kb3coR0xO
YXRpdmVXaW5kb3dUeXBlCiAgICAgfQogI2VuZGlmCiAKKyNpZiBVU0UoRUdMKQorICAgIGlmIChh
dXRvIGVnbENvbnRleHQgPSBHTENvbnRleHRFR0w6OmNyZWF0ZUNvbnRleHQod2luZG93SGFuZGxl
LCBkaXNwbGF5KSkKKwlyZXR1cm4gZWdsQ29udGV4dDsKKyNlbmRpZgorCiAjaWYgVVNFKEdMWCkK
ICAgICBpZiAoZGlzcGxheS50eXBlKCkgPT0gUGxhdGZvcm1EaXNwbGF5OjpUeXBlOjpYMTEpIHsK
ICAgICAgICAgaWYgKGF1dG8gZ2x4Q29udGV4dCA9IEdMQ29udGV4dEdMWDo6Y3JlYXRlQ29udGV4
dCh3aW5kb3dIYW5kbGUsIGRpc3BsYXkpKQogICAgICAgICAgICAgcmV0dXJuIGdseENvbnRleHQ7
CiAgICAgfQogI2VuZGlmCi0jaWYgVVNFKEVHTCkKLSAgICBpZiAoYXV0byBlZ2xDb250ZXh0ID0g
R0xDb250ZXh0RUdMOjpjcmVhdGVDb250ZXh0KHdpbmRvd0hhbmRsZSwgZGlzcGxheSkpCi0gICAg
ICAgIHJldHVybiBlZ2xDb250ZXh0OwotI2VuZGlmCisKICAgICByZXR1cm4gbnVsbHB0cjsKIH0K
IApAQCAtMTE4LDYgKzEzMywxMSBAQCBzdGQ6OnVuaXF1ZV9wdHI8R0xDb250ZXh0PiBHTENvbnRl
eHQ6OmNyZWF0ZVNoYXJpbmdDb250ZXh0KFBsYXRmb3JtRGlzcGxheSYgZGlzcAogICAgIGlmICgh
aW5pdGlhbGl6ZU9wZW5HTFNoaW1zSWZOZWVkZWQoKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7
CiAKKyNpZiBVU0UoRUdMKQorICAgIGlmIChhdXRvIGVnbENvbnRleHQgPSBHTENvbnRleHRFR0w6
OmNyZWF0ZVNoYXJpbmdDb250ZXh0KGRpc3BsYXkpKQorICAgICAgICByZXR1cm4gZWdsQ29udGV4
dDsKKyNlbmRpZgorCiAjaWYgVVNFKEdMWCkKICAgICBpZiAoZGlzcGxheS50eXBlKCkgPT0gUGxh
dGZvcm1EaXNwbGF5OjpUeXBlOjpYMTEpIHsKICAgICAgICAgaWYgKGF1dG8gZ2x4Q29udGV4dCA9
IEdMQ29udGV4dEdMWDo6Y3JlYXRlU2hhcmluZ0NvbnRleHQoZGlzcGxheSkpCkBAIC0xMjUsMTEg
KzE0NSw2IEBAIHN0ZDo6dW5pcXVlX3B0cjxHTENvbnRleHQ+IEdMQ29udGV4dDo6Y3JlYXRlU2hh
cmluZ0NvbnRleHQoUGxhdGZvcm1EaXNwbGF5JiBkaXNwCiAgICAgfQogI2VuZGlmCiAKLSNpZiBV
U0UoRUdMKSB8fCBQTEFURk9STShXQVlMQU5EKSB8fCBQTEFURk9STShXUEUpCi0gICAgaWYgKGF1
dG8gZWdsQ29udGV4dCA9IEdMQ29udGV4dEVHTDo6Y3JlYXRlU2hhcmluZ0NvbnRleHQoZGlzcGxh
eSkpCi0gICAgICAgIHJldHVybiBlZ2xDb250ZXh0OwotI2VuZGlmCi0KICAgICByZXR1cm4gbnVs
bHB0cjsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZWdsL0dMQ29udGV4dEVHTC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9l
Z2wvR0xDb250ZXh0RUdMLmNwcAppbmRleCAyNjJiMmZiOTAyMzcuLjAxODFiMjA1ZWJkMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWdsL0dMQ29udGV4dEVH
TC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWdsL0dMQ29udGV4
dEVHTC5jcHAKQEAgLTQ1LDYgKzQ1LDEzIEBACiAjaW5jbHVkZSAiT3BlbkdMU2hpbXMuaCIKICNl
bmRpZgogCisjaWYgUExBVEZPUk0oWDExKQorI2luY2x1ZGUgIlBsYXRmb3JtRGlzcGxheVgxMS5o
IgorI2luY2x1ZGUgIlhVbmlxdWVQdHIuaCIKKyNpbmNsdWRlIDxYMTEvWGxpYi5oPgorI2luY2x1
ZGUgPFgxMS9YdXRpbC5oPgorI2VuZGlmCisKICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKQEAgLTg4LDcgKzk1LDcgQEAgY29uc3QgY2hhciogR0xDb250ZXh0
RUdMOjpsYXN0RXJyb3JTdHJpbmcoKQogICAgIHJldHVybiBlcnJvclN0cmluZyhlZ2xHZXRFcnJv
cigpKTsKIH0KIAotYm9vbCBHTENvbnRleHRFR0w6OmdldEVHTENvbmZpZyhFR0xEaXNwbGF5IGRp
c3BsYXksIEVHTENvbmZpZyogY29uZmlnLCBFR0xTdXJmYWNlVHlwZSBzdXJmYWNlVHlwZSkKK2Jv
b2wgR0xDb250ZXh0RUdMOjpnZXRFR0xDb25maWcoRUdMRGlzcGxheSBkaXNwbGF5LCBFR0xDb25m
aWcqIGNvbmZpZywgRUdMU3VyZmFjZVR5cGUgc3VyZmFjZVR5cGUsIEZ1bmN0aW9uPGJvb2woaW50
KT4mJiBjaGVja0NvbXBhdGlibGVWaXN1YWxzKQogewogICAgIHN0ZDo6YXJyYXk8RUdMaW50LCA0
PiByZ2JhU2l6ZSA9IHsgOCwgOCwgOCwgOCB9OwogICAgIGlmIChjb25zdCBjaGFyKiBlbnZpcm9u
bWVudFZhcmlhYmxlID0gZ2V0ZW52KCJXRUJLSVRfRUdMX1BJWEVMX0xBWU9VVCIpKSB7CkBAIC0x
NDYsNiArMTUzLDE2IEBAIGJvb2wgR0xDb250ZXh0RUdMOjpnZXRFR0xDb25maWcoRUdMRGlzcGxh
eSBkaXNwbGF5LCBFR0xDb25maWcqIGNvbmZpZywgRUdMU3VyZmFjCiAgICAgICAgIGVnbEdldENv
bmZpZ0F0dHJpYihkaXNwbGF5LCB2YWx1ZSwgRUdMX0dSRUVOX1NJWkUsICZncmVlblNpemUpOwog
ICAgICAgICBlZ2xHZXRDb25maWdBdHRyaWIoZGlzcGxheSwgdmFsdWUsIEVHTF9CTFVFX1NJWkUs
ICZibHVlU2l6ZSk7CiAgICAgICAgIGVnbEdldENvbmZpZ0F0dHJpYihkaXNwbGF5LCB2YWx1ZSwg
RUdMX0FMUEhBX1NJWkUsICZhbHBoYVNpemUpOworI2lmIFBMQVRGT1JNKFgxMSkKKyAgICAgICAg
aWYgKGNoZWNrQ29tcGF0aWJsZVZpc3VhbHMpIHsKKyAgICAgICAgICAgIEVHTGludCB2aXN1YWxp
ZDsKKyAgICAgICAgICAgIGlmICghZWdsR2V0Q29uZmlnQXR0cmliKGRpc3BsYXksIHZhbHVlLCBF
R0xfTkFUSVZFX1ZJU1VBTF9JRCwgJnZpc3VhbGlkKSkKKyAgICAgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CisKKyAgICAgICAgICAgIGlmICghY2hlY2tDb21wYXRpYmxlVmlzdWFscyh2aXN1YWxp
ZCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisjZW5kaWYKICAg
ICAgICAgcmV0dXJuIHJlZFNpemUgPT0gcmdiYVNpemVbMF0gJiYgZ3JlZW5TaXplID09IHJnYmFT
aXplWzFdCiAgICAgICAgICAgICAmJiBibHVlU2l6ZSA9PSByZ2JhU2l6ZVsyXSAmJiBhbHBoYVNp
emUgPT0gcmdiYVNpemVbM107CiAgICAgfSk7CkBAIC0xNjEsOSArMTc4LDM4IEBAIGJvb2wgR0xD
b250ZXh0RUdMOjpnZXRFR0xDb25maWcoRUdMRGlzcGxheSBkaXNwbGF5LCBFR0xDb25maWcqIGNv
bmZpZywgRUdMU3VyZmFjCiAKIHN0ZDo6dW5pcXVlX3B0cjxHTENvbnRleHRFR0w+IEdMQ29udGV4
dEVHTDo6Y3JlYXRlV2luZG93Q29udGV4dChHTE5hdGl2ZVdpbmRvd1R5cGUgd2luZG93LCBQbGF0
Zm9ybURpc3BsYXkmIHBsYXRmb3JtRGlzcGxheSwgRUdMQ29udGV4dCBzaGFyaW5nQ29udGV4dCkK
IHsKKyAgICBGdW5jdGlvbjxib29sKGludCk+IGNoZWNrQ29tcGF0aWJsZVZpc3VhbHM7CisjaWYg
UExBVEZPUk0oWDExKQorICAgIGlmIChwbGF0Zm9ybURpc3BsYXkudHlwZSgpID09IFBsYXRmb3Jt
RGlzcGxheTo6VHlwZTo6WDExKSB7CisgICAgICAgIERpc3BsYXkqIHgxMURpc3BsYXkgPSBkb3du
Y2FzdDxQbGF0Zm9ybURpc3BsYXlYMTE+KHBsYXRmb3JtRGlzcGxheSkubmF0aXZlKCk7CisgICAg
ICAgIFhXaW5kb3dBdHRyaWJ1dGVzIGF0dHJpYnV0ZXM7CisgICAgICAgIGlmICghWEdldFdpbmRv
d0F0dHJpYnV0ZXMoeDExRGlzcGxheSwgc3RhdGljX2Nhc3Q8V2luZG93Pih3aW5kb3cpLCAmYXR0
cmlidXRlcykpCisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgICAgICBhdXRvIHZp
c3VhbEluZm9Gb3JJRCA9IFt4MTFEaXNwbGF5XShWaXN1YWxJRCB2aXN1YWxJRCkgLT4gWFVuaXF1
ZVB0cjxYVmlzdWFsSW5mbz4geworICAgICAgICAgICAgWFZpc3VhbEluZm8gdGVtcGxhdGVWaXN1
YWxJbmZvOworICAgICAgICAgICAgdGVtcGxhdGVWaXN1YWxJbmZvLnZpc3VhbGlkID0gdmlzdWFs
SUQ7CisgICAgICAgICAgICBpbnQgdmlzdWFsSW5mb0NvdW50OworICAgICAgICAgICAgcmV0dXJu
IFhVbmlxdWVQdHI8WFZpc3VhbEluZm8+KFhHZXRWaXN1YWxJbmZvKHgxMURpc3BsYXksIFZpc3Vh
bElETWFzaywgJnRlbXBsYXRlVmlzdWFsSW5mbywgJnZpc3VhbEluZm9Db3VudCkpOworICAgICAg
ICB9OworCisgICAgICAgIGF1dG8gdmlzdWFsSW5mbyA9IHZpc3VhbEluZm9Gb3JJRChYVmlzdWFs
SURGcm9tVmlzdWFsKGF0dHJpYnV0ZXMudmlzdWFsKSk7CisgICAgICAgIGNoZWNrQ29tcGF0aWJs
ZVZpc3VhbHMgPSBbJnZpc3VhbEluZm8sICZ2aXN1YWxJbmZvRm9ySURdKGludCBjb25maWdWaXN1
YWxJRCkgeworICAgICAgICAgICAgYXV0byBjb25maWdWaXN1YWxJbmZvID0gdmlzdWFsSW5mb0Zv
cklEKGNvbmZpZ1Zpc3VhbElEKTsKKyAgICAgICAgICAgIHJldHVybiB2aXN1YWxJbmZvLT5jX2Ns
YXNzID09IGNvbmZpZ1Zpc3VhbEluZm8tPmNfY2xhc3MKKyAgICAgICAgICAgICAgICAmJiB2aXN1
YWxJbmZvLT5kZXB0aCA9PSBjb25maWdWaXN1YWxJbmZvLT5kZXB0aAorICAgICAgICAgICAgICAg
ICYmIHZpc3VhbEluZm8tPnJlZF9tYXNrID09IGNvbmZpZ1Zpc3VhbEluZm8tPnJlZF9tYXNrCisg
ICAgICAgICAgICAgICAgJiYgdmlzdWFsSW5mby0+Z3JlZW5fbWFzayA9PSBjb25maWdWaXN1YWxJ
bmZvLT5ncmVlbl9tYXNrCisgICAgICAgICAgICAgICAgJiYgdmlzdWFsSW5mby0+Ymx1ZV9tYXNr
ID09IGNvbmZpZ1Zpc3VhbEluZm8tPmJsdWVfbWFzaworICAgICAgICAgICAgICAgICYmIHZpc3Vh
bEluZm8tPmNvbG9ybWFwX3NpemUgPT0gY29uZmlnVmlzdWFsSW5mby0+Y29sb3JtYXBfc2l6ZQor
ICAgICAgICAgICAgICAgICYmIHZpc3VhbEluZm8tPmJpdHNfcGVyX3JnYiA9PSBjb25maWdWaXN1
YWxJbmZvLT5iaXRzX3Blcl9yZ2I7CisgICAgICAgIH07CisgICAgfQorI2VuZGlmCisKICAgICBF
R0xEaXNwbGF5IGRpc3BsYXkgPSBwbGF0Zm9ybURpc3BsYXkuZWdsRGlzcGxheSgpOwogICAgIEVH
TENvbmZpZyBjb25maWc7Ci0gICAgaWYgKCFnZXRFR0xDb25maWcoZGlzcGxheSwgJmNvbmZpZywg
V2luZG93U3VyZmFjZSkpIHsKKyAgICBpZiAoIWdldEVHTENvbmZpZyhkaXNwbGF5LCAmY29uZmln
LCBXaW5kb3dTdXJmYWNlLCBXVEZNb3ZlKGNoZWNrQ29tcGF0aWJsZVZpc3VhbHMpKSkgewogICAg
ICAgICBSRUxFQVNFX0xPR19JTkZPKENvbXBvc2l0aW5nLCAiQ2Fubm90IG9idGFpbiBFR0wgd2lu
ZG93IGNvbnRleHQgY29uZmlndXJhdGlvbjogJXNcbiIsIGxhc3RFcnJvclN0cmluZygpKTsKICAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZWdsL0dMQ29udGV4dEVHTC5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZWdsL0dMQ29udGV4dEVHTC5oCmluZGV4IDU5OGIwYjY3MzI2YS4uMGEz
OTA5NmY0NWE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9l
Z2wvR0xDb250ZXh0RUdMLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZWdsL0dMQ29udGV4dEVHTC5oCkBAIC0xMjIsNyArMTIyLDcgQEAgcHJpdmF0ZToKICAgICBzdGF0
aWMgRUdMU3VyZmFjZSBjcmVhdGVXaW5kb3dTdXJmYWNlV1BFKEVHTERpc3BsYXksIEVHTENvbmZp
ZywgR0xOYXRpdmVXaW5kb3dUeXBlKTsKICNlbmRpZgogCi0gICAgc3RhdGljIGJvb2wgZ2V0RUdM
Q29uZmlnKEVHTERpc3BsYXksIEVHTENvbmZpZyosIEVHTFN1cmZhY2VUeXBlKTsKKyAgICBzdGF0
aWMgYm9vbCBnZXRFR0xDb25maWcoRUdMRGlzcGxheSwgRUdMQ29uZmlnKiwgRUdMU3VyZmFjZVR5
cGUsIEZ1bmN0aW9uPGJvb2woaW50KT4mJiA9IG51bGxwdHIpOwogCiAgICAgRUdMQ29udGV4dCBt
X2NvbnRleHQgeyBudWxscHRyIH07CiAgICAgRUdMU3VyZmFjZSBtX3N1cmZhY2UgeyBudWxscHRy
IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvUGxhdGZvcm1EaXNwbGF5R1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9QbGF0Zm9ybURpc3BsYXlHU3RyZWFtZXIuY3BwCmluZGV4IDc1
NGQ2MjQ0ODZlYy4uNmU3MTU0YjU4MjQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvUGxhdGZvcm1EaXNwbGF5R1N0cmVhbWVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvUGxhdGZvcm1EaXNw
bGF5R1N0cmVhbWVyLmNwcApAQCAtNTMsMjYgKzUzLDE1IEBAIEdTVF9ERUJVR19DQVRFR09SWV9F
WFRFUk4od2Via2l0X21lZGlhX3BsYXllcl9kZWJ1Zyk7CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOwogCi1zdGF0aWMgR3N0R0xEaXNwbGF5KiBjcmVhdGVHc3RHTERpc3BsYXkoY29uc3QgUGxh
dGZvcm1EaXNwbGF5JiBzaGFyZWREaXNwbGF5KQorc3RhdGljIEdzdEdMRGlzcGxheSogY3JlYXRl
R3N0R0xEaXNwbGF5KGNvbnN0IFBsYXRmb3JtRGlzcGxheSYgc2hhcmVkRGlzcGxheSwgR3N0R0xQ
bGF0Zm9ybSBnbFBsYXRmb3JtKQogewotI2lmIFVTRShXUEVfUkVOREVSRVIpCi0gICAgaWYgKGlz
PFBsYXRmb3JtRGlzcGxheUxpYldQRT4oc2hhcmVkRGlzcGxheSkpCi0gICAgICAgIHJldHVybiBH
U1RfR0xfRElTUExBWShnc3RfZ2xfZGlzcGxheV9lZ2xfbmV3X3dpdGhfZWdsX2Rpc3BsYXkoZG93
bmNhc3Q8UGxhdGZvcm1EaXNwbGF5TGliV1BFPihzaGFyZWREaXNwbGF5KS5lZ2xEaXNwbGF5KCkp
KTsKKyNpZiBVU0UoRUdMKQorICAgIGlmIChnbFBsYXRmb3JtID09IEdTVF9HTF9QTEFURk9STV9F
R0wpCisgICAgICAgIHJldHVybiBHU1RfR0xfRElTUExBWShnc3RfZ2xfZGlzcGxheV9lZ2xfbmV3
X3dpdGhfZWdsX2Rpc3BsYXkoc2hhcmVkRGlzcGxheS5lZ2xEaXNwbGF5KCkpKTsKICNlbmRpZgot
Ci0jaWYgUExBVEZPUk0oWDExKQogI2lmIFVTRShHTFgpCi0gICAgaWYgKGlzPFBsYXRmb3JtRGlz
cGxheVgxMT4oc2hhcmVkRGlzcGxheSkpCisgICAgaWYgKGlzPFBsYXRmb3JtRGlzcGxheVgxMT4o
c2hhcmVkRGlzcGxheSkgJiYgZ2xQbGF0Zm9ybSA9PSBHU1RfR0xfUExBVEZPUk1fR0xYKQogICAg
ICAgICByZXR1cm4gR1NUX0dMX0RJU1BMQVkoZ3N0X2dsX2Rpc3BsYXlfeDExX25ld193aXRoX2Rp
c3BsYXkoZG93bmNhc3Q8UGxhdGZvcm1EaXNwbGF5WDExPihzaGFyZWREaXNwbGF5KS5uYXRpdmUo
KSkpOwotI2VsaWYgVVNFKEVHTCkKLSAgICBpZiAoaXM8UGxhdGZvcm1EaXNwbGF5WDExPihzaGFy
ZWREaXNwbGF5KSkKLSAgICAgICAgcmV0dXJuIEdTVF9HTF9ESVNQTEFZKGdzdF9nbF9kaXNwbGF5
X2VnbF9uZXdfd2l0aF9lZ2xfZGlzcGxheShkb3duY2FzdDxQbGF0Zm9ybURpc3BsYXlYMTE+KHNo
YXJlZERpc3BsYXkpLmVnbERpc3BsYXkoKSkpOwotI2VuZGlmCi0jZW5kaWYKLQotI2lmIFBMQVRG
T1JNKFdBWUxBTkQpCi0gICAgaWYgKGlzPFBsYXRmb3JtRGlzcGxheVdheWxhbmQ+KHNoYXJlZERp
c3BsYXkpKQotICAgICAgICByZXR1cm4gR1NUX0dMX0RJU1BMQVkoZ3N0X2dsX2Rpc3BsYXlfZWds
X25ld193aXRoX2VnbF9kaXNwbGF5KGRvd25jYXN0PFBsYXRmb3JtRGlzcGxheVdheWxhbmQ+KHNo
YXJlZERpc3BsYXkpLmVnbERpc3BsYXkoKSkpOwogI2VuZGlmCiAKICAgICByZXR1cm4gbnVsbHB0
cjsKQEAgLTk0LDE2ICs4MywxNiBAQCBib29sIFBsYXRmb3JtRGlzcGxheTo6dHJ5RW5zdXJlR3N0
R0xDb250ZXh0KCkgY29uc3QKICAgICBhdXRvKiBzaGFyZWRDb250ZXh0ID0gY29uc3RfY2FzdDxQ
bGF0Zm9ybURpc3BsYXkqPih0aGlzKS0+c2hhcmluZ0dMQ29udGV4dCgpOwogICAgIGlmICghc2hh
cmVkQ29udGV4dCkKICAgICAgICAgcmV0dXJuIGZhbHNlOworCiAgICAgR0NHTENvbnRleHQgY29u
dGV4dEhhbmRsZSA9IHNoYXJlZENvbnRleHQtPnBsYXRmb3JtQ29udGV4dCgpOwogICAgIGlmICgh
Y29udGV4dEhhbmRsZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgbV9nc3RHTERpc3Bs
YXkgPSBhZG9wdEdSZWYoY3JlYXRlR3N0R0xEaXNwbGF5KCp0aGlzKSk7CisgICAgR3N0R0xQbGF0
Zm9ybSBnbFBsYXRmb3JtID0gc2hhcmVkQ29udGV4dC0+aXNFR0xDb250ZXh0KCkgPyBHU1RfR0xf
UExBVEZPUk1fRUdMIDogR1NUX0dMX1BMQVRGT1JNX0dMWDsKKyAgICBtX2dzdEdMRGlzcGxheSA9
IGFkb3B0R1JlZihjcmVhdGVHc3RHTERpc3BsYXkoKnRoaXMsIGdsUGxhdGZvcm0pKTsKICAgICBp
ZiAoIW1fZ3N0R0xEaXNwbGF5KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBHc3RHTFBs
YXRmb3JtIGdsUGxhdGZvcm0gPSBzaGFyZWRDb250ZXh0LT5pc0VHTENvbnRleHQoKSA/IEdTVF9H
TF9QTEFURk9STV9FR0wgOiBHU1RfR0xfUExBVEZPUk1fR0xYOwotCiAgICAgbV9nc3RHTENvbnRl
eHQgPSBhZG9wdEdSZWYoZ3N0X2dsX2NvbnRleHRfbmV3X3dyYXBwZWQobV9nc3RHTERpc3BsYXku
Z2V0KCksIHJlaW50ZXJwcmV0X2Nhc3Q8Z3VpbnRwdHI+KGNvbnRleHRIYW5kbGUpLCBnbFBsYXRm
b3JtLCBnbEFQSSkpOwogCiAgICAgLy8gQWN0aXZhdGUgYW5kIGZpbGwgdGhlIEdTdHJlYW1lciB3
cmFwcGVkIGNvbnRleHQgd2l0aCB0aGUgV2Via2l0J3Mgc2hhcmVkIG9uZS4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFByb3RvY29sSGFuZGxlci5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRQcm90b2NvbEhhbmRs
ZXIuY3BwCmluZGV4IGY0MzE4ZGUyOWEyMi4uYjhiYjEwZGQ0YTQ5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRQcm90b2NvbEhhbmRsZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFByb3RvY29sSGFuZGxl
ci5jcHAKQEAgLTE0MSwzOSArMTQxLDIxIEBAIHN0YXRpYyBib29sIHdlYkdMRW5hYmxlZChXZWJL
aXRVUklTY2hlbWVSZXF1ZXN0KiByZXF1ZXN0KQogICAgIHJldHVybiB3ZWJraXRfc2V0dGluZ3Nf
Z2V0X2VuYWJsZV93ZWJnbCh3ZWJraXRfd2ViX3ZpZXdfZ2V0X3NldHRpbmdzKHdlYlZpZXcpKTsK
IH0KIAotc3RhdGljIGNvbnN0IGNoYXIqIG9wZW5HTEFQSSgpCitzdGF0aWMgY29uc3QgY2hhciog
b3BlbkdMQVBJKGJvb2wgaXNFR0wpCiB7CiAjaWYgVVNFKExJQkVQT1hZKQogICAgIGlmIChlcG94
eV9pc19kZXNrdG9wX2dsKCkpCiAgICAgICAgIHJldHVybiAiT3BlbkdMIChsaWJlcG94eSkiOwog
ICAgIHJldHVybiAiT3BlbkdMIEVTIDIgKGxpYmVwb3h5KSI7CiAjZWxzZQotI2lmIFVTRShHTFgp
Ci0gICAgaWYgKFBsYXRmb3JtRGlzcGxheTo6c2hhcmVkRGlzcGxheSgpLnR5cGUoKSA9PSBQbGF0
Zm9ybURpc3BsYXk6OlR5cGU6OlgxMSkKLSAgICAgICAgcmV0dXJuICJPcGVuR0wiOwotI2VuZGlm
CiAjaWYgVVNFKEVHTCkKKyAgICBpZiAoaXNFR0wpIHsKICNpZiBVU0UoT1BFTkdMX0VTKQotICAg
IHJldHVybiAiT3BlbkdMIEVTIDIiOwotI2Vsc2UKLSAgICByZXR1cm4gIk9wZW5HTCI7Ci0jZW5k
aWYKLSNlbmRpZgotI2VuZGlmCi0gICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKLX0K
LQotc3RhdGljIGNvbnN0IGNoYXIqIG5hdGl2ZUludGVyZmFjZSgpCi17Ci0jaWYgUExBVEZPUk0o
R1RLKQotI2lmIFVTRShHTFgpCi0gICAgaWYgKFBsYXRmb3JtRGlzcGxheTo6c2hhcmVkRGlzcGxh
eSgpLnR5cGUoKSA9PSBQbGF0Zm9ybURpc3BsYXk6OlR5cGU6OlgxMSkKLSAgICAgICAgcmV0dXJu
ICJHTFgiOworICAgICAgICByZXR1cm4gIk9wZW5HTCBFUyAyIjsKICNlbmRpZgorICAgIH0KICNl
bmRpZgotCi0jaWYgVVNFKEVHTCkKLSAgICByZXR1cm4gIkVHTCI7CisgICAgcmV0dXJuICJPcGVu
R0wiOwogI2VuZGlmCiAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0KQEAgLTM3
MCwyMyArMzUyLDI3IEBAIHZvaWQgV2ViS2l0UHJvdG9jb2xIYW5kbGVyOjpoYW5kbGVHUFUoV2Vi
S2l0VVJJU2NoZW1lUmVxdWVzdCogcmVxdWVzdCkKICAgICAgICAgIiAgPHRkPiVzPC90ZD4iCiAg
ICAgICAgICIgPC90Ym9keT48L3RyPiIsCiAgICAgICAgIHdlYkdMRW5hYmxlZChyZXF1ZXN0KSA/
ICJZZXMiIDogIk5vIik7CisjZW5kaWYKIAorI2lmIFVTRShFR0wpIHx8IFVTRShHTFgpCiAgICAg
YXV0byBnbENvbnRleHQgPSBHTENvbnRleHQ6OmNyZWF0ZU9mZnNjcmVlbkNvbnRleHQoKTsKICAg
ICBnbENvbnRleHQtPm1ha2VDb250ZXh0Q3VycmVudCgpOwogCisgICAgYm9vbCBpc0VHTCA9IGds
Q29udGV4dC0+aXNFR0xDb250ZXh0KCk7CisKICAgICBnX3N0cmluZ19hcHBlbmRfcHJpbnRmKGh0
bWwsCiAgICAgICAgICIgPHRib2R5Pjx0cj4iCiAgICAgICAgICIgIDx0ZD48ZGl2IGNsYXNzPVwi
dGl0bGVuYW1lXCI+QVBJPC9kaXY+PC90ZD4iCiAgICAgICAgICIgIDx0ZD4lczwvdGQ+IgogICAg
ICAgICAiIDwvdGJvZHk+PC90cj4iLAotICAgICAgICBvcGVuR0xBUEkoKSk7CisgICAgICAgIG9w
ZW5HTEFQSShpc0VHTCkpOwogCiAgICAgZ19zdHJpbmdfYXBwZW5kX3ByaW50ZihodG1sLAogICAg
ICAgICAiIDx0Ym9keT48dHI+IgogICAgICAgICAiICA8dGQ+PGRpdiBjbGFzcz1cInRpdGxlbmFt
ZVwiPk5hdGl2ZSBpbnRlcmZhY2U8L2Rpdj48L3RkPiIKICAgICAgICAgIiAgPHRkPiVzPC90ZD4i
CiAgICAgICAgICIgPC90Ym9keT48L3RyPiIsCi0gICAgICAgIG5hdGl2ZUludGVyZmFjZSgpKTsK
KyAgICAgICAgaXNFR0wgPyAiRUdMIiA6ICJHTFgiKTsKIAogICAgIGdfc3RyaW5nX2FwcGVuZF9w
cmludGYoaHRtbCwKICAgICAgICAgIiA8dGJvZHk+PHRyPiIKQEAgLTQ0MSwxMCArNDI3LDggQEAg
dm9pZCBXZWJLaXRQcm90b2NvbEhhbmRsZXI6OmhhbmRsZUdQVShXZWJLaXRVUklTY2hlbWVSZXF1
ZXN0KiByZXF1ZXN0KQogICAgIGdfc3RyaW5nX2ZyZWUoZXh0ZW5zaW9ucywgVFJVRSk7CiAjZW5k
aWYKIAotICAgIGJvb2wgaXNHTFggPSBmYWxzZTsKICNpZiBVU0UoR0xYKQotICAgIGlmIChQbGF0
Zm9ybURpc3BsYXk6OnNoYXJlZERpc3BsYXkoKS50eXBlKCkgPT0gUGxhdGZvcm1EaXNwbGF5OjpU
eXBlOjpYMTEpIHsKLSAgICAgICAgaXNHTFggPSB0cnVlOworICAgIGlmIChQbGF0Zm9ybURpc3Bs
YXk6OnNoYXJlZERpc3BsYXkoKS50eXBlKCkgPT0gUGxhdGZvcm1EaXNwbGF5OjpUeXBlOjpYMTEg
JiYgIWlzRUdMKSB7CiAgICAgICAgIGF1dG8qIHgxMURpc3BsYXkgPSBkb3duY2FzdDxQbGF0Zm9y
bURpc3BsYXlYMTE+KFBsYXRmb3JtRGlzcGxheTo6c2hhcmVkRGlzcGxheSgpKS5uYXRpdmUoKTsK
IAogICAgICAgICBnX3N0cmluZ19hcHBlbmRfcHJpbnRmKGh0bWwsCkBAIC00NzEsNyArNDU1LDcg
QEAgdm9pZCBXZWJLaXRQcm90b2NvbEhhbmRsZXI6OmhhbmRsZUdQVShXZWJLaXRVUklTY2hlbWVS
ZXF1ZXN0KiByZXF1ZXN0KQogI2VuZGlmCiAKICNpZiBVU0UoRUdMKQotICAgIGlmICghaXNHTFgp
IHsKKyAgICBpZiAoaXNFR0wpIHsKICAgICAgICAgYXV0byBlZ2xEaXNwbGF5ID0gUGxhdGZvcm1E
aXNwbGF5OjpzaGFyZWREaXNwbGF5KCkuZWdsRGlzcGxheSgpOwogCiAgICAgICAgIGdfc3RyaW5n
X2FwcGVuZF9wcmludGYoaHRtbCwKQEAgLTQ5Nyw3ICs0ODEsNyBAQCB2b2lkIFdlYktpdFByb3Rv
Y29sSGFuZGxlcjo6aGFuZGxlR1BVKFdlYktpdFVSSVNjaGVtZVJlcXVlc3QqIHJlcXVlc3QpCiAg
ICAgICAgICAgICBlZ2xRdWVyeVN0cmluZyhlZ2xEaXNwbGF5LCBFR0xfRVhURU5TSU9OUykpOwog
ICAgIH0KICNlbmRpZgotI2VuZGlmIC8vIEVOQUJMRShXRUJHTCkKKyNlbmRpZiAvLyBVU0UoRUdM
KSB8fCBVU0UoR0xYKQogCiAgICAgZ19zdHJpbmdfYXBwZW5kKGh0bWwsICI8dGFibGU+Iik7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>462388</attachid>
            <date>2022-09-16 02:42:55 -0700</date>
            <delta_ts>2022-09-20 07:33:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wk-x11-egl.diff</filename>
            <type>text/plain</type>
            <size>13154</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dMQ29udGV4dC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HTENvbnRleHQuY3BwCmluZGV4
IDg0YzA1MGQ1NGZiMS4uOWIwY2ZjODY4YWY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9HTENvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0dMQ29udGV4dC5jcHAKQEAgLTg0LDYgKzg0LDE5IEBAIHN0ZDo6dW5pcXVl
X3B0cjxHTENvbnRleHQ+IEdMQ29udGV4dDo6Y3JlYXRlQ29udGV4dEZvcldpbmRvdyhHTE5hdGl2
ZVdpbmRvd1R5cGUKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICBQbGF0Zm9ybURpc3Bs
YXkmIGRpc3BsYXkgPSBwbGF0Zm9ybURpc3BsYXkgPyAqcGxhdGZvcm1EaXNwbGF5IDogUGxhdGZv
cm1EaXNwbGF5OjpzaGFyZWREaXNwbGF5KCk7CisgICAgaWYgKGF1dG8qIHNoYXJpbmdDb250ZXh0
ID0gZGlzcGxheS5zaGFyaW5nR0xDb250ZXh0KCkpIHsKKyAgICAgICAgLy8gQ29udGV4dCBmb3Ig
d2luZG93IHNob3VsZCBtYXRjaCB0aGUgdHlwZSBvZiBzaGFyaW5nIGNvbnRleHQuCisjaWYgVVNF
KEVHTCkKKyAgICAgICAgaWYgKHNoYXJpbmdDb250ZXh0LT5pc0VHTENvbnRleHQoKSkKKyAgICAg
ICAgICAgIHJldHVybiBHTENvbnRleHRFR0w6OmNyZWF0ZUNvbnRleHQod2luZG93SGFuZGxlLCBk
aXNwbGF5KTsKKyNlbmRpZgorI2lmIFVTRShHTFgpCisgICAgICAgIGlmIChkaXNwbGF5LnR5cGUo
KSA9PSBQbGF0Zm9ybURpc3BsYXk6OlR5cGU6OlgxMSkKKyAgICAgICAgICAgIHJldHVybiBHTENv
bnRleHRHTFg6OmNyZWF0ZUNvbnRleHQod2luZG93SGFuZGxlLCBkaXNwbGF5KTsKKyNlbmRpZgor
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisKICNpZiBQTEFURk9STShXQVlMQU5EKQog
ICAgIGlmIChkaXNwbGF5LnR5cGUoKSA9PSBQbGF0Zm9ybURpc3BsYXk6OlR5cGU6OldheWxhbmQp
IHsKICAgICAgICAgaWYgKGF1dG8gZWdsQ29udGV4dCA9IEdMQ29udGV4dEVHTDo6Y3JlYXRlQ29u
dGV4dCh3aW5kb3dIYW5kbGUsIGRpc3BsYXkpKQpAQCAtOTIsMTYgKzEwNSwxOCBAQCBzdGQ6OnVu
aXF1ZV9wdHI8R0xDb250ZXh0PiBHTENvbnRleHQ6OmNyZWF0ZUNvbnRleHRGb3JXaW5kb3coR0xO
YXRpdmVXaW5kb3dUeXBlCiAgICAgfQogI2VuZGlmCiAKKyNpZiBVU0UoRUdMKQorICAgIGlmIChh
dXRvIGVnbENvbnRleHQgPSBHTENvbnRleHRFR0w6OmNyZWF0ZUNvbnRleHQod2luZG93SGFuZGxl
LCBkaXNwbGF5KSkKKyAgICAgICAgcmV0dXJuIGVnbENvbnRleHQ7CisjZW5kaWYKKwogI2lmIFVT
RShHTFgpCiAgICAgaWYgKGRpc3BsYXkudHlwZSgpID09IFBsYXRmb3JtRGlzcGxheTo6VHlwZTo6
WDExKSB7CiAgICAgICAgIGlmIChhdXRvIGdseENvbnRleHQgPSBHTENvbnRleHRHTFg6OmNyZWF0
ZUNvbnRleHQod2luZG93SGFuZGxlLCBkaXNwbGF5KSkKICAgICAgICAgICAgIHJldHVybiBnbHhD
b250ZXh0OwogICAgIH0KICNlbmRpZgotI2lmIFVTRShFR0wpCi0gICAgaWYgKGF1dG8gZWdsQ29u
dGV4dCA9IEdMQ29udGV4dEVHTDo6Y3JlYXRlQ29udGV4dCh3aW5kb3dIYW5kbGUsIGRpc3BsYXkp
KQotICAgICAgICByZXR1cm4gZWdsQ29udGV4dDsKLSNlbmRpZgorCiAgICAgcmV0dXJuIG51bGxw
dHI7CiB9CiAKQEAgLTExOCw2ICsxMzMsMTEgQEAgc3RkOjp1bmlxdWVfcHRyPEdMQ29udGV4dD4g
R0xDb250ZXh0OjpjcmVhdGVTaGFyaW5nQ29udGV4dChQbGF0Zm9ybURpc3BsYXkmIGRpc3AKICAg
ICBpZiAoIWluaXRpYWxpemVPcGVuR0xTaGltc0lmTmVlZGVkKCkpCiAgICAgICAgIHJldHVybiBu
dWxscHRyOwogCisjaWYgVVNFKEVHTCkKKyAgICBpZiAoYXV0byBlZ2xDb250ZXh0ID0gR0xDb250
ZXh0RUdMOjpjcmVhdGVTaGFyaW5nQ29udGV4dChkaXNwbGF5KSkKKyAgICAgICAgcmV0dXJuIGVn
bENvbnRleHQ7CisjZW5kaWYKKwogI2lmIFVTRShHTFgpCiAgICAgaWYgKGRpc3BsYXkudHlwZSgp
ID09IFBsYXRmb3JtRGlzcGxheTo6VHlwZTo6WDExKSB7CiAgICAgICAgIGlmIChhdXRvIGdseENv
bnRleHQgPSBHTENvbnRleHRHTFg6OmNyZWF0ZVNoYXJpbmdDb250ZXh0KGRpc3BsYXkpKQpAQCAt
MTI1LDExICsxNDUsNiBAQCBzdGQ6OnVuaXF1ZV9wdHI8R0xDb250ZXh0PiBHTENvbnRleHQ6OmNy
ZWF0ZVNoYXJpbmdDb250ZXh0KFBsYXRmb3JtRGlzcGxheSYgZGlzcAogICAgIH0KICNlbmRpZgog
Ci0jaWYgVVNFKEVHTCkgfHwgUExBVEZPUk0oV0FZTEFORCkgfHwgUExBVEZPUk0oV1BFKQotICAg
IGlmIChhdXRvIGVnbENvbnRleHQgPSBHTENvbnRleHRFR0w6OmNyZWF0ZVNoYXJpbmdDb250ZXh0
KGRpc3BsYXkpKQotICAgICAgICByZXR1cm4gZWdsQ29udGV4dDsKLSNlbmRpZgotCiAgICAgcmV0
dXJuIG51bGxwdHI7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2VnbC9HTENvbnRleHRFR0wuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZWdsL0dMQ29udGV4dEVHTC5jcHAKaW5kZXggMjYyYjJmYjkwMjM3Li4yNGM1Mjg3Mjgy
ODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VnbC9HTENv
bnRleHRFR0wuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VnbC9H
TENvbnRleHRFR0wuY3BwCkBAIC00NSw2ICs0NSwxMyBAQAogI2luY2x1ZGUgIk9wZW5HTFNoaW1z
LmgiCiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKFgxMSkKKyNpbmNsdWRlICJQbGF0Zm9ybURpc3Bs
YXlYMTEuaCIKKyNpbmNsdWRlICJYVW5pcXVlUHRyLmgiCisjaW5jbHVkZSA8WDExL1hsaWIuaD4K
KyNpbmNsdWRlIDxYMTEvWHV0aWwuaD4KKyNlbmRpZgorCiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5o
PgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC04OCw3ICs5NSw3IEBAIGNvbnN0IGNoYXIqIEdM
Q29udGV4dEVHTDo6bGFzdEVycm9yU3RyaW5nKCkKICAgICByZXR1cm4gZXJyb3JTdHJpbmcoZWds
R2V0RXJyb3IoKSk7CiB9CiAKLWJvb2wgR0xDb250ZXh0RUdMOjpnZXRFR0xDb25maWcoRUdMRGlz
cGxheSBkaXNwbGF5LCBFR0xDb25maWcqIGNvbmZpZywgRUdMU3VyZmFjZVR5cGUgc3VyZmFjZVR5
cGUpCitib29sIEdMQ29udGV4dEVHTDo6Z2V0RUdMQ29uZmlnKEVHTERpc3BsYXkgZGlzcGxheSwg
RUdMQ29uZmlnKiBjb25maWcsIEVHTFN1cmZhY2VUeXBlIHN1cmZhY2VUeXBlLCBGdW5jdGlvbjxi
b29sKGludCk+JiYgY2hlY2tDb21wYXRpYmxlVmlzdWFscykKIHsKICAgICBzdGQ6OmFycmF5PEVH
TGludCwgND4gcmdiYVNpemUgPSB7IDgsIDgsIDgsIDggfTsKICAgICBpZiAoY29uc3QgY2hhciog
ZW52aXJvbm1lbnRWYXJpYWJsZSA9IGdldGVudigiV0VCS0lUX0VHTF9QSVhFTF9MQVlPVVQiKSkg
ewpAQCAtMTQ2LDYgKzE1MywxNiBAQCBib29sIEdMQ29udGV4dEVHTDo6Z2V0RUdMQ29uZmlnKEVH
TERpc3BsYXkgZGlzcGxheSwgRUdMQ29uZmlnKiBjb25maWcsIEVHTFN1cmZhYwogICAgICAgICBl
Z2xHZXRDb25maWdBdHRyaWIoZGlzcGxheSwgdmFsdWUsIEVHTF9HUkVFTl9TSVpFLCAmZ3JlZW5T
aXplKTsKICAgICAgICAgZWdsR2V0Q29uZmlnQXR0cmliKGRpc3BsYXksIHZhbHVlLCBFR0xfQkxV
RV9TSVpFLCAmYmx1ZVNpemUpOwogICAgICAgICBlZ2xHZXRDb25maWdBdHRyaWIoZGlzcGxheSwg
dmFsdWUsIEVHTF9BTFBIQV9TSVpFLCAmYWxwaGFTaXplKTsKKyNpZiBQTEFURk9STShYMTEpCisg
ICAgICAgIGlmIChjaGVja0NvbXBhdGlibGVWaXN1YWxzKSB7CisgICAgICAgICAgICBFR0xpbnQg
dmlzdWFsaWQ7CisgICAgICAgICAgICBpZiAoIWVnbEdldENvbmZpZ0F0dHJpYihkaXNwbGF5LCB2
YWx1ZSwgRUdMX05BVElWRV9WSVNVQUxfSUQsICZ2aXN1YWxpZCkpCisgICAgICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOworCisgICAgICAgICAgICBpZiAoIWNoZWNrQ29tcGF0aWJsZVZpc3VhbHMo
dmlzdWFsaWQpKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorI2Vu
ZGlmCiAgICAgICAgIHJldHVybiByZWRTaXplID09IHJnYmFTaXplWzBdICYmIGdyZWVuU2l6ZSA9
PSByZ2JhU2l6ZVsxXQogICAgICAgICAgICAgJiYgYmx1ZVNpemUgPT0gcmdiYVNpemVbMl0gJiYg
YWxwaGFTaXplID09IHJnYmFTaXplWzNdOwogICAgIH0pOwpAQCAtMTYxLDkgKzE3OCw0MiBAQCBi
b29sIEdMQ29udGV4dEVHTDo6Z2V0RUdMQ29uZmlnKEVHTERpc3BsYXkgZGlzcGxheSwgRUdMQ29u
ZmlnKiBjb25maWcsIEVHTFN1cmZhYwogCiBzdGQ6OnVuaXF1ZV9wdHI8R0xDb250ZXh0RUdMPiBH
TENvbnRleHRFR0w6OmNyZWF0ZVdpbmRvd0NvbnRleHQoR0xOYXRpdmVXaW5kb3dUeXBlIHdpbmRv
dywgUGxhdGZvcm1EaXNwbGF5JiBwbGF0Zm9ybURpc3BsYXksIEVHTENvbnRleHQgc2hhcmluZ0Nv
bnRleHQpCiB7CisgICAgRnVuY3Rpb248Ym9vbChpbnQpPiBjaGVja0NvbXBhdGlibGVWaXN1YWxz
OworI2lmIFBMQVRGT1JNKFgxMSkKKyAgICBpZiAocGxhdGZvcm1EaXNwbGF5LnR5cGUoKSA9PSBQ
bGF0Zm9ybURpc3BsYXk6OlR5cGU6OlgxMSkgeworICAgICAgICBEaXNwbGF5KiB4MTFEaXNwbGF5
ID0gZG93bmNhc3Q8UGxhdGZvcm1EaXNwbGF5WDExPihwbGF0Zm9ybURpc3BsYXkpLm5hdGl2ZSgp
OworICAgICAgICBYV2luZG93QXR0cmlidXRlcyBhdHRyaWJ1dGVzOworICAgICAgICBpZiAoIVhH
ZXRXaW5kb3dBdHRyaWJ1dGVzKHgxMURpc3BsYXksIHN0YXRpY19jYXN0PFdpbmRvdz4od2luZG93
KSwgJmF0dHJpYnV0ZXMpKQorICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICAgICAg
YXV0byB2aXN1YWxJbmZvRm9ySUQgPSBbeDExRGlzcGxheV0oVmlzdWFsSUQgdmlzdWFsSUQpIC0+
IFhVbmlxdWVQdHI8WFZpc3VhbEluZm8+IHsKKyAgICAgICAgICAgIFhWaXN1YWxJbmZvIHRlbXBs
YXRlVmlzdWFsSW5mbzsKKyAgICAgICAgICAgIHRlbXBsYXRlVmlzdWFsSW5mby52aXN1YWxpZCA9
IHZpc3VhbElEOworICAgICAgICAgICAgaW50IHZpc3VhbEluZm9Db3VudDsKKyAgICAgICAgICAg
IHJldHVybiBYVW5pcXVlUHRyPFhWaXN1YWxJbmZvPihYR2V0VmlzdWFsSW5mbyh4MTFEaXNwbGF5
LCBWaXN1YWxJRE1hc2ssICZ0ZW1wbGF0ZVZpc3VhbEluZm8sICZ2aXN1YWxJbmZvQ291bnQpKTsK
KyAgICAgICAgfTsKKworICAgICAgICBhdXRvIHZpc3VhbEluZm8gPSB2aXN1YWxJbmZvRm9ySUQo
WFZpc3VhbElERnJvbVZpc3VhbChhdHRyaWJ1dGVzLnZpc3VhbCkpOworICAgICAgICBpZiAoIXZp
c3VhbEluZm8pCisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgICAgICBjaGVja0Nv
bXBhdGlibGVWaXN1YWxzID0gWyZ2aXN1YWxJbmZvLCAmdmlzdWFsSW5mb0ZvcklEXShpbnQgY29u
ZmlnVmlzdWFsSUQpIHsKKyAgICAgICAgICAgIGF1dG8gY29uZmlnVmlzdWFsSW5mbyA9IHZpc3Vh
bEluZm9Gb3JJRChjb25maWdWaXN1YWxJRCk7CisgICAgICAgICAgICByZXR1cm4gY29uZmlnVmlz
dWFsSW5mbworICAgICAgICAgICAgICAgICYmIHZpc3VhbEluZm8tPmNfY2xhc3MgPT0gY29uZmln
VmlzdWFsSW5mby0+Y19jbGFzcworICAgICAgICAgICAgICAgICYmIHZpc3VhbEluZm8tPmRlcHRo
ID09IGNvbmZpZ1Zpc3VhbEluZm8tPmRlcHRoCisgICAgICAgICAgICAgICAgJiYgdmlzdWFsSW5m
by0+cmVkX21hc2sgPT0gY29uZmlnVmlzdWFsSW5mby0+cmVkX21hc2sKKyAgICAgICAgICAgICAg
ICAmJiB2aXN1YWxJbmZvLT5ncmVlbl9tYXNrID09IGNvbmZpZ1Zpc3VhbEluZm8tPmdyZWVuX21h
c2sKKyAgICAgICAgICAgICAgICAmJiB2aXN1YWxJbmZvLT5ibHVlX21hc2sgPT0gY29uZmlnVmlz
dWFsSW5mby0+Ymx1ZV9tYXNrCisgICAgICAgICAgICAgICAgJiYgdmlzdWFsSW5mby0+Y29sb3Jt
YXBfc2l6ZSA9PSBjb25maWdWaXN1YWxJbmZvLT5jb2xvcm1hcF9zaXplCisgICAgICAgICAgICAg
ICAgJiYgdmlzdWFsSW5mby0+Yml0c19wZXJfcmdiID09IGNvbmZpZ1Zpc3VhbEluZm8tPmJpdHNf
cGVyX3JnYjsKKyAgICAgICAgfTsKKyAgICB9CisjZW5kaWYKKwogICAgIEVHTERpc3BsYXkgZGlz
cGxheSA9IHBsYXRmb3JtRGlzcGxheS5lZ2xEaXNwbGF5KCk7CiAgICAgRUdMQ29uZmlnIGNvbmZp
ZzsKLSAgICBpZiAoIWdldEVHTENvbmZpZyhkaXNwbGF5LCAmY29uZmlnLCBXaW5kb3dTdXJmYWNl
KSkgeworICAgIGlmICghZ2V0RUdMQ29uZmlnKGRpc3BsYXksICZjb25maWcsIFdpbmRvd1N1cmZh
Y2UsIFdURk1vdmUoY2hlY2tDb21wYXRpYmxlVmlzdWFscykpKSB7CiAgICAgICAgIFJFTEVBU0Vf
TE9HX0lORk8oQ29tcG9zaXRpbmcsICJDYW5ub3Qgb2J0YWluIEVHTCB3aW5kb3cgY29udGV4dCBj
b25maWd1cmF0aW9uOiAlc1xuIiwgbGFzdEVycm9yU3RyaW5nKCkpOwogICAgICAgICByZXR1cm4g
bnVsbHB0cjsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9lZ2wvR0xDb250ZXh0RUdMLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9lZ2wvR0xDb250ZXh0RUdMLmgKaW5kZXggNTk4YjBiNjczMjZhLi4wYTM5MDk2ZjQ1YTUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VnbC9HTENvbnRleHRF
R0wuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0
RUdMLmgKQEAgLTEyMiw3ICsxMjIsNyBAQCBwcml2YXRlOgogICAgIHN0YXRpYyBFR0xTdXJmYWNl
IGNyZWF0ZVdpbmRvd1N1cmZhY2VXUEUoRUdMRGlzcGxheSwgRUdMQ29uZmlnLCBHTE5hdGl2ZVdp
bmRvd1R5cGUpOwogI2VuZGlmCiAKLSAgICBzdGF0aWMgYm9vbCBnZXRFR0xDb25maWcoRUdMRGlz
cGxheSwgRUdMQ29uZmlnKiwgRUdMU3VyZmFjZVR5cGUpOworICAgIHN0YXRpYyBib29sIGdldEVH
TENvbmZpZyhFR0xEaXNwbGF5LCBFR0xDb25maWcqLCBFR0xTdXJmYWNlVHlwZSwgRnVuY3Rpb248
Ym9vbChpbnQpPiYmID0gbnVsbHB0cik7CiAKICAgICBFR0xDb250ZXh0IG1fY29udGV4dCB7IG51
bGxwdHIgfTsKICAgICBFR0xTdXJmYWNlIG1fc3VyZmFjZSB7IG51bGxwdHIgfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9QbGF0Zm9ybURp
c3BsYXlHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL1BsYXRmb3JtRGlzcGxheUdTdHJlYW1lci5jcHAKaW5kZXggNzU0ZDYyNDQ4NmVjLi42
ZTcxNTRiNTgyNDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9QbGF0Zm9ybURpc3BsYXlHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9QbGF0Zm9ybURpc3BsYXlHU3RyZWFtZXIu
Y3BwCkBAIC01MywyNiArNTMsMTUgQEAgR1NUX0RFQlVHX0NBVEVHT1JZX0VYVEVSTih3ZWJraXRf
bWVkaWFfcGxheWVyX2RlYnVnKTsKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKLXN0YXRp
YyBHc3RHTERpc3BsYXkqIGNyZWF0ZUdzdEdMRGlzcGxheShjb25zdCBQbGF0Zm9ybURpc3BsYXkm
IHNoYXJlZERpc3BsYXkpCitzdGF0aWMgR3N0R0xEaXNwbGF5KiBjcmVhdGVHc3RHTERpc3BsYXko
Y29uc3QgUGxhdGZvcm1EaXNwbGF5JiBzaGFyZWREaXNwbGF5LCBHc3RHTFBsYXRmb3JtIGdsUGxh
dGZvcm0pCiB7Ci0jaWYgVVNFKFdQRV9SRU5ERVJFUikKLSAgICBpZiAoaXM8UGxhdGZvcm1EaXNw
bGF5TGliV1BFPihzaGFyZWREaXNwbGF5KSkKLSAgICAgICAgcmV0dXJuIEdTVF9HTF9ESVNQTEFZ
KGdzdF9nbF9kaXNwbGF5X2VnbF9uZXdfd2l0aF9lZ2xfZGlzcGxheShkb3duY2FzdDxQbGF0Zm9y
bURpc3BsYXlMaWJXUEU+KHNoYXJlZERpc3BsYXkpLmVnbERpc3BsYXkoKSkpOworI2lmIFVTRShF
R0wpCisgICAgaWYgKGdsUGxhdGZvcm0gPT0gR1NUX0dMX1BMQVRGT1JNX0VHTCkKKyAgICAgICAg
cmV0dXJuIEdTVF9HTF9ESVNQTEFZKGdzdF9nbF9kaXNwbGF5X2VnbF9uZXdfd2l0aF9lZ2xfZGlz
cGxheShzaGFyZWREaXNwbGF5LmVnbERpc3BsYXkoKSkpOwogI2VuZGlmCi0KLSNpZiBQTEFURk9S
TShYMTEpCiAjaWYgVVNFKEdMWCkKLSAgICBpZiAoaXM8UGxhdGZvcm1EaXNwbGF5WDExPihzaGFy
ZWREaXNwbGF5KSkKKyAgICBpZiAoaXM8UGxhdGZvcm1EaXNwbGF5WDExPihzaGFyZWREaXNwbGF5
KSAmJiBnbFBsYXRmb3JtID09IEdTVF9HTF9QTEFURk9STV9HTFgpCiAgICAgICAgIHJldHVybiBH
U1RfR0xfRElTUExBWShnc3RfZ2xfZGlzcGxheV94MTFfbmV3X3dpdGhfZGlzcGxheShkb3duY2Fz
dDxQbGF0Zm9ybURpc3BsYXlYMTE+KHNoYXJlZERpc3BsYXkpLm5hdGl2ZSgpKSk7Ci0jZWxpZiBV
U0UoRUdMKQotICAgIGlmIChpczxQbGF0Zm9ybURpc3BsYXlYMTE+KHNoYXJlZERpc3BsYXkpKQot
ICAgICAgICByZXR1cm4gR1NUX0dMX0RJU1BMQVkoZ3N0X2dsX2Rpc3BsYXlfZWdsX25ld193aXRo
X2VnbF9kaXNwbGF5KGRvd25jYXN0PFBsYXRmb3JtRGlzcGxheVgxMT4oc2hhcmVkRGlzcGxheSku
ZWdsRGlzcGxheSgpKSk7Ci0jZW5kaWYKLSNlbmRpZgotCi0jaWYgUExBVEZPUk0oV0FZTEFORCkK
LSAgICBpZiAoaXM8UGxhdGZvcm1EaXNwbGF5V2F5bGFuZD4oc2hhcmVkRGlzcGxheSkpCi0gICAg
ICAgIHJldHVybiBHU1RfR0xfRElTUExBWShnc3RfZ2xfZGlzcGxheV9lZ2xfbmV3X3dpdGhfZWds
X2Rpc3BsYXkoZG93bmNhc3Q8UGxhdGZvcm1EaXNwbGF5V2F5bGFuZD4oc2hhcmVkRGlzcGxheSku
ZWdsRGlzcGxheSgpKSk7CiAjZW5kaWYKIAogICAgIHJldHVybiBudWxscHRyOwpAQCAtOTQsMTYg
KzgzLDE2IEBAIGJvb2wgUGxhdGZvcm1EaXNwbGF5Ojp0cnlFbnN1cmVHc3RHTENvbnRleHQoKSBj
b25zdAogICAgIGF1dG8qIHNoYXJlZENvbnRleHQgPSBjb25zdF9jYXN0PFBsYXRmb3JtRGlzcGxh
eSo+KHRoaXMpLT5zaGFyaW5nR0xDb250ZXh0KCk7CiAgICAgaWYgKCFzaGFyZWRDb250ZXh0KQog
ICAgICAgICByZXR1cm4gZmFsc2U7CisKICAgICBHQ0dMQ29udGV4dCBjb250ZXh0SGFuZGxlID0g
c2hhcmVkQ29udGV4dC0+cGxhdGZvcm1Db250ZXh0KCk7CiAgICAgaWYgKCFjb250ZXh0SGFuZGxl
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBtX2dzdEdMRGlzcGxheSA9IGFkb3B0R1Jl
ZihjcmVhdGVHc3RHTERpc3BsYXkoKnRoaXMpKTsKKyAgICBHc3RHTFBsYXRmb3JtIGdsUGxhdGZv
cm0gPSBzaGFyZWRDb250ZXh0LT5pc0VHTENvbnRleHQoKSA/IEdTVF9HTF9QTEFURk9STV9FR0wg
OiBHU1RfR0xfUExBVEZPUk1fR0xYOworICAgIG1fZ3N0R0xEaXNwbGF5ID0gYWRvcHRHUmVmKGNy
ZWF0ZUdzdEdMRGlzcGxheSgqdGhpcywgZ2xQbGF0Zm9ybSkpOwogICAgIGlmICghbV9nc3RHTERp
c3BsYXkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIEdzdEdMUGxhdGZvcm0gZ2xQbGF0
Zm9ybSA9IHNoYXJlZENvbnRleHQtPmlzRUdMQ29udGV4dCgpID8gR1NUX0dMX1BMQVRGT1JNX0VH
TCA6IEdTVF9HTF9QTEFURk9STV9HTFg7Ci0KICAgICBtX2dzdEdMQ29udGV4dCA9IGFkb3B0R1Jl
Zihnc3RfZ2xfY29udGV4dF9uZXdfd3JhcHBlZChtX2dzdEdMRGlzcGxheS5nZXQoKSwgcmVpbnRl
cnByZXRfY2FzdDxndWludHB0cj4oY29udGV4dEhhbmRsZSksIGdsUGxhdGZvcm0sIGdsQVBJKSk7
CiAKICAgICAvLyBBY3RpdmF0ZSBhbmQgZmlsbCB0aGUgR1N0cmVhbWVyIHdyYXBwZWQgY29udGV4
dCB3aXRoIHRoZSBXZWJraXQncyBzaGFyZWQgb25lLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0UHJvdG9jb2xIYW5kbGVyLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFByb3RvY29sSGFuZGxlci5jcHAKaW5kZXgg
ZjQzMThkZTI5YTIyLi5iOGJiMTBkZDRhNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9nbGliL1dlYktpdFByb3RvY29sSGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0UHJvdG9jb2xIYW5kbGVyLmNwcApAQCAtMTQx
LDM5ICsxNDEsMjEgQEAgc3RhdGljIGJvb2wgd2ViR0xFbmFibGVkKFdlYktpdFVSSVNjaGVtZVJl
cXVlc3QqIHJlcXVlc3QpCiAgICAgcmV0dXJuIHdlYmtpdF9zZXR0aW5nc19nZXRfZW5hYmxlX3dl
YmdsKHdlYmtpdF93ZWJfdmlld19nZXRfc2V0dGluZ3Mod2ViVmlldykpOwogfQogCi1zdGF0aWMg
Y29uc3QgY2hhciogb3BlbkdMQVBJKCkKK3N0YXRpYyBjb25zdCBjaGFyKiBvcGVuR0xBUEkoYm9v
bCBpc0VHTCkKIHsKICNpZiBVU0UoTElCRVBPWFkpCiAgICAgaWYgKGVwb3h5X2lzX2Rlc2t0b3Bf
Z2woKSkKICAgICAgICAgcmV0dXJuICJPcGVuR0wgKGxpYmVwb3h5KSI7CiAgICAgcmV0dXJuICJP
cGVuR0wgRVMgMiAobGliZXBveHkpIjsKICNlbHNlCi0jaWYgVVNFKEdMWCkKLSAgICBpZiAoUGxh
dGZvcm1EaXNwbGF5OjpzaGFyZWREaXNwbGF5KCkudHlwZSgpID09IFBsYXRmb3JtRGlzcGxheTo6
VHlwZTo6WDExKQotICAgICAgICByZXR1cm4gIk9wZW5HTCI7Ci0jZW5kaWYKICNpZiBVU0UoRUdM
KQorICAgIGlmIChpc0VHTCkgewogI2lmIFVTRShPUEVOR0xfRVMpCi0gICAgcmV0dXJuICJPcGVu
R0wgRVMgMiI7Ci0jZWxzZQotICAgIHJldHVybiAiT3BlbkdMIjsKLSNlbmRpZgotI2VuZGlmCi0j
ZW5kaWYKLSAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwotfQotCi1zdGF0aWMgY29u
c3QgY2hhciogbmF0aXZlSW50ZXJmYWNlKCkKLXsKLSNpZiBQTEFURk9STShHVEspCi0jaWYgVVNF
KEdMWCkKLSAgICBpZiAoUGxhdGZvcm1EaXNwbGF5OjpzaGFyZWREaXNwbGF5KCkudHlwZSgpID09
IFBsYXRmb3JtRGlzcGxheTo6VHlwZTo6WDExKQotICAgICAgICByZXR1cm4gIkdMWCI7CisgICAg
ICAgIHJldHVybiAiT3BlbkdMIEVTIDIiOwogI2VuZGlmCisgICAgfQogI2VuZGlmCi0KLSNpZiBV
U0UoRUdMKQotICAgIHJldHVybiAiRUdMIjsKKyAgICByZXR1cm4gIk9wZW5HTCI7CiAjZW5kaWYK
ICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogfQpAQCAtMzcwLDIzICszNTIsMjcg
QEAgdm9pZCBXZWJLaXRQcm90b2NvbEhhbmRsZXI6OmhhbmRsZUdQVShXZWJLaXRVUklTY2hlbWVS
ZXF1ZXN0KiByZXF1ZXN0KQogICAgICAgICAiICA8dGQ+JXM8L3RkPiIKICAgICAgICAgIiA8L3Ri
b2R5PjwvdHI+IiwKICAgICAgICAgd2ViR0xFbmFibGVkKHJlcXVlc3QpID8gIlllcyIgOiAiTm8i
KTsKKyNlbmRpZgogCisjaWYgVVNFKEVHTCkgfHwgVVNFKEdMWCkKICAgICBhdXRvIGdsQ29udGV4
dCA9IEdMQ29udGV4dDo6Y3JlYXRlT2Zmc2NyZWVuQ29udGV4dCgpOwogICAgIGdsQ29udGV4dC0+
bWFrZUNvbnRleHRDdXJyZW50KCk7CiAKKyAgICBib29sIGlzRUdMID0gZ2xDb250ZXh0LT5pc0VH
TENvbnRleHQoKTsKKwogICAgIGdfc3RyaW5nX2FwcGVuZF9wcmludGYoaHRtbCwKICAgICAgICAg
IiA8dGJvZHk+PHRyPiIKICAgICAgICAgIiAgPHRkPjxkaXYgY2xhc3M9XCJ0aXRsZW5hbWVcIj5B
UEk8L2Rpdj48L3RkPiIKICAgICAgICAgIiAgPHRkPiVzPC90ZD4iCiAgICAgICAgICIgPC90Ym9k
eT48L3RyPiIsCi0gICAgICAgIG9wZW5HTEFQSSgpKTsKKyAgICAgICAgb3BlbkdMQVBJKGlzRUdM
KSk7CiAKICAgICBnX3N0cmluZ19hcHBlbmRfcHJpbnRmKGh0bWwsCiAgICAgICAgICIgPHRib2R5
Pjx0cj4iCiAgICAgICAgICIgIDx0ZD48ZGl2IGNsYXNzPVwidGl0bGVuYW1lXCI+TmF0aXZlIGlu
dGVyZmFjZTwvZGl2PjwvdGQ+IgogICAgICAgICAiICA8dGQ+JXM8L3RkPiIKICAgICAgICAgIiA8
L3Rib2R5PjwvdHI+IiwKLSAgICAgICAgbmF0aXZlSW50ZXJmYWNlKCkpOworICAgICAgICBpc0VH
TCA/ICJFR0wiIDogIkdMWCIpOwogCiAgICAgZ19zdHJpbmdfYXBwZW5kX3ByaW50ZihodG1sLAog
ICAgICAgICAiIDx0Ym9keT48dHI+IgpAQCAtNDQxLDEwICs0MjcsOCBAQCB2b2lkIFdlYktpdFBy
b3RvY29sSGFuZGxlcjo6aGFuZGxlR1BVKFdlYktpdFVSSVNjaGVtZVJlcXVlc3QqIHJlcXVlc3Qp
CiAgICAgZ19zdHJpbmdfZnJlZShleHRlbnNpb25zLCBUUlVFKTsKICNlbmRpZgogCi0gICAgYm9v
bCBpc0dMWCA9IGZhbHNlOwogI2lmIFVTRShHTFgpCi0gICAgaWYgKFBsYXRmb3JtRGlzcGxheTo6
c2hhcmVkRGlzcGxheSgpLnR5cGUoKSA9PSBQbGF0Zm9ybURpc3BsYXk6OlR5cGU6OlgxMSkgewot
ICAgICAgICBpc0dMWCA9IHRydWU7CisgICAgaWYgKFBsYXRmb3JtRGlzcGxheTo6c2hhcmVkRGlz
cGxheSgpLnR5cGUoKSA9PSBQbGF0Zm9ybURpc3BsYXk6OlR5cGU6OlgxMSAmJiAhaXNFR0wpIHsK
ICAgICAgICAgYXV0byogeDExRGlzcGxheSA9IGRvd25jYXN0PFBsYXRmb3JtRGlzcGxheVgxMT4o
UGxhdGZvcm1EaXNwbGF5OjpzaGFyZWREaXNwbGF5KCkpLm5hdGl2ZSgpOwogCiAgICAgICAgIGdf
c3RyaW5nX2FwcGVuZF9wcmludGYoaHRtbCwKQEAgLTQ3MSw3ICs0NTUsNyBAQCB2b2lkIFdlYktp
dFByb3RvY29sSGFuZGxlcjo6aGFuZGxlR1BVKFdlYktpdFVSSVNjaGVtZVJlcXVlc3QqIHJlcXVl
c3QpCiAjZW5kaWYKIAogI2lmIFVTRShFR0wpCi0gICAgaWYgKCFpc0dMWCkgeworICAgIGlmIChp
c0VHTCkgewogICAgICAgICBhdXRvIGVnbERpc3BsYXkgPSBQbGF0Zm9ybURpc3BsYXk6OnNoYXJl
ZERpc3BsYXkoKS5lZ2xEaXNwbGF5KCk7CiAKICAgICAgICAgZ19zdHJpbmdfYXBwZW5kX3ByaW50
ZihodG1sLApAQCAtNDk3LDcgKzQ4MSw3IEBAIHZvaWQgV2ViS2l0UHJvdG9jb2xIYW5kbGVyOjpo
YW5kbGVHUFUoV2ViS2l0VVJJU2NoZW1lUmVxdWVzdCogcmVxdWVzdCkKICAgICAgICAgICAgIGVn
bFF1ZXJ5U3RyaW5nKGVnbERpc3BsYXksIEVHTF9FWFRFTlNJT05TKSk7CiAgICAgfQogI2VuZGlm
Ci0jZW5kaWYgLy8gRU5BQkxFKFdFQkdMKQorI2VuZGlmIC8vIFVTRShFR0wpIHx8IFVTRShHTFgp
CiAKICAgICBnX3N0cmluZ19hcHBlbmQoaHRtbCwgIjx0YWJsZT4iKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>462471</attachid>
            <date>2022-09-20 07:33:08 -0700</date>
            <delta_ts>2022-09-21 02:10:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wk2-x11-prefer-egl.diff</filename>
            <type>text/plain</type>
            <size>13994</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dMQ29udGV4dC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HTENvbnRleHQuY3BwCmluZGV4
IDg0YzA1MGQ1NGZiMS4uMjlhZjM1YTViYTViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9HTENvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0dMQ29udGV4dC5jcHAKQEAgLTg0LDYgKzg0LDE5IEBAIHN0ZDo6dW5pcXVl
X3B0cjxHTENvbnRleHQ+IEdMQ29udGV4dDo6Y3JlYXRlQ29udGV4dEZvcldpbmRvdyhHTE5hdGl2
ZVdpbmRvd1R5cGUKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICBQbGF0Zm9ybURpc3Bs
YXkmIGRpc3BsYXkgPSBwbGF0Zm9ybURpc3BsYXkgPyAqcGxhdGZvcm1EaXNwbGF5IDogUGxhdGZv
cm1EaXNwbGF5OjpzaGFyZWREaXNwbGF5KCk7CisgICAgaWYgKGF1dG8qIHNoYXJpbmdDb250ZXh0
ID0gZGlzcGxheS5zaGFyaW5nR0xDb250ZXh0KCkpIHsKKyAgICAgICAgLy8gQ29udGV4dCBmb3Ig
d2luZG93IHNob3VsZCBtYXRjaCB0aGUgdHlwZSBvZiBzaGFyaW5nIGNvbnRleHQuCisjaWYgVVNF
KEVHTCkKKyAgICAgICAgaWYgKHNoYXJpbmdDb250ZXh0LT5pc0VHTENvbnRleHQoKSkKKyAgICAg
ICAgICAgIHJldHVybiBHTENvbnRleHRFR0w6OmNyZWF0ZUNvbnRleHQod2luZG93SGFuZGxlLCBk
aXNwbGF5KTsKKyNlbmRpZgorI2lmIFVTRShHTFgpCisgICAgICAgIGlmIChkaXNwbGF5LnR5cGUo
KSA9PSBQbGF0Zm9ybURpc3BsYXk6OlR5cGU6OlgxMSkKKyAgICAgICAgICAgIHJldHVybiBHTENv
bnRleHRHTFg6OmNyZWF0ZUNvbnRleHQod2luZG93SGFuZGxlLCBkaXNwbGF5KTsKKyNlbmRpZgor
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisKICNpZiBQTEFURk9STShXQVlMQU5EKQog
ICAgIGlmIChkaXNwbGF5LnR5cGUoKSA9PSBQbGF0Zm9ybURpc3BsYXk6OlR5cGU6OldheWxhbmQp
IHsKICAgICAgICAgaWYgKGF1dG8gZWdsQ29udGV4dCA9IEdMQ29udGV4dEVHTDo6Y3JlYXRlQ29u
dGV4dCh3aW5kb3dIYW5kbGUsIGRpc3BsYXkpKQpAQCAtOTIsMTYgKzEwNSwxOCBAQCBzdGQ6OnVu
aXF1ZV9wdHI8R0xDb250ZXh0PiBHTENvbnRleHQ6OmNyZWF0ZUNvbnRleHRGb3JXaW5kb3coR0xO
YXRpdmVXaW5kb3dUeXBlCiAgICAgfQogI2VuZGlmCiAKKyNpZiBVU0UoRUdMKQorICAgIGlmIChh
dXRvIGVnbENvbnRleHQgPSBHTENvbnRleHRFR0w6OmNyZWF0ZUNvbnRleHQod2luZG93SGFuZGxl
LCBkaXNwbGF5KSkKKyAgICAgICAgcmV0dXJuIGVnbENvbnRleHQ7CisjZW5kaWYKKwogI2lmIFVT
RShHTFgpCiAgICAgaWYgKGRpc3BsYXkudHlwZSgpID09IFBsYXRmb3JtRGlzcGxheTo6VHlwZTo6
WDExKSB7CiAgICAgICAgIGlmIChhdXRvIGdseENvbnRleHQgPSBHTENvbnRleHRHTFg6OmNyZWF0
ZUNvbnRleHQod2luZG93SGFuZGxlLCBkaXNwbGF5KSkKICAgICAgICAgICAgIHJldHVybiBnbHhD
b250ZXh0OwogICAgIH0KICNlbmRpZgotI2lmIFVTRShFR0wpCi0gICAgaWYgKGF1dG8gZWdsQ29u
dGV4dCA9IEdMQ29udGV4dEVHTDo6Y3JlYXRlQ29udGV4dCh3aW5kb3dIYW5kbGUsIGRpc3BsYXkp
KQotICAgICAgICByZXR1cm4gZWdsQ29udGV4dDsKLSNlbmRpZgorCiAgICAgcmV0dXJuIG51bGxw
dHI7CiB9CiAKQEAgLTExOCw2ICsxMzMsMTkgQEAgc3RkOjp1bmlxdWVfcHRyPEdMQ29udGV4dD4g
R0xDb250ZXh0OjpjcmVhdGVTaGFyaW5nQ29udGV4dChQbGF0Zm9ybURpc3BsYXkmIGRpc3AKICAg
ICBpZiAoIWluaXRpYWxpemVPcGVuR0xTaGltc0lmTmVlZGVkKCkpCiAgICAgICAgIHJldHVybiBu
dWxscHRyOwogCisjaWYgVVNFKEdMWCkKKyAgICBib29sIGZvcmNlR0xYID0gZGlzcGxheS50eXBl
KCkgPT0gUGxhdGZvcm1EaXNwbGF5OjpUeXBlOjpYMTEgJiYgZ2V0ZW52KCJXRUJLSVRfRk9SQ0Vf
R0xYIik7CisjZWxzZQorICAgIGJvb2wgZm9yY2VHTFggPSBmYWxzZTsKKyNlbmRpZgorCisjaWYg
VVNFKEVHTCkKKyAgICBpZiAoIWZvcmNlR0xYKSB7CisgICAgICAgIGlmIChhdXRvIGVnbENvbnRl
eHQgPSBHTENvbnRleHRFR0w6OmNyZWF0ZVNoYXJpbmdDb250ZXh0KGRpc3BsYXkpKQorICAgICAg
ICAgICAgcmV0dXJuIGVnbENvbnRleHQ7CisgICAgfQorI2VuZGlmCisKICNpZiBVU0UoR0xYKQog
ICAgIGlmIChkaXNwbGF5LnR5cGUoKSA9PSBQbGF0Zm9ybURpc3BsYXk6OlR5cGU6OlgxMSkgewog
ICAgICAgICBpZiAoYXV0byBnbHhDb250ZXh0ID0gR0xDb250ZXh0R0xYOjpjcmVhdGVTaGFyaW5n
Q29udGV4dChkaXNwbGF5KSkKQEAgLTEyNSwxMSArMTUzLDYgQEAgc3RkOjp1bmlxdWVfcHRyPEdM
Q29udGV4dD4gR0xDb250ZXh0OjpjcmVhdGVTaGFyaW5nQ29udGV4dChQbGF0Zm9ybURpc3BsYXkm
IGRpc3AKICAgICB9CiAjZW5kaWYKIAotI2lmIFVTRShFR0wpIHx8IFBMQVRGT1JNKFdBWUxBTkQp
IHx8IFBMQVRGT1JNKFdQRSkKLSAgICBpZiAoYXV0byBlZ2xDb250ZXh0ID0gR0xDb250ZXh0RUdM
OjpjcmVhdGVTaGFyaW5nQ29udGV4dChkaXNwbGF5KSkKLSAgICAgICAgcmV0dXJuIGVnbENvbnRl
eHQ7Ci0jZW5kaWYKLQogICAgIHJldHVybiBudWxscHRyOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RUdMLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VnbC9HTENvbnRleHRFR0wuY3BwCmluZGV4IDI2
MmIyZmI5MDIzNy4uZjE4Y2I3MWZiOTdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RUdMLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RUdMLmNwcApAQCAtNDUsNiArNDUsMTMgQEAK
ICNpbmNsdWRlICJPcGVuR0xTaGltcy5oIgogI2VuZGlmCiAKKyNpZiBQTEFURk9STShYMTEpCisj
aW5jbHVkZSAiUGxhdGZvcm1EaXNwbGF5WDExLmgiCisjaW5jbHVkZSAiWFVuaXF1ZVB0ci5oIgor
I2luY2x1ZGUgPFgxMS9YbGliLmg+CisjaW5jbHVkZSA8WDExL1h1dGlsLmg+CisjZW5kaWYKKwog
I2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtODgsNyAr
OTUsNyBAQCBjb25zdCBjaGFyKiBHTENvbnRleHRFR0w6Omxhc3RFcnJvclN0cmluZygpCiAgICAg
cmV0dXJuIGVycm9yU3RyaW5nKGVnbEdldEVycm9yKCkpOwogfQogCi1ib29sIEdMQ29udGV4dEVH
TDo6Z2V0RUdMQ29uZmlnKEVHTERpc3BsYXkgZGlzcGxheSwgRUdMQ29uZmlnKiBjb25maWcsIEVH
TFN1cmZhY2VUeXBlIHN1cmZhY2VUeXBlKQorYm9vbCBHTENvbnRleHRFR0w6OmdldEVHTENvbmZp
ZyhFR0xEaXNwbGF5IGRpc3BsYXksIEVHTENvbmZpZyogY29uZmlnLCBFR0xTdXJmYWNlVHlwZSBz
dXJmYWNlVHlwZSwgRnVuY3Rpb248Ym9vbChpbnQpPiYmIGNoZWNrQ29tcGF0aWJsZVZpc3VhbHMp
CiB7CiAgICAgc3RkOjphcnJheTxFR0xpbnQsIDQ+IHJnYmFTaXplID0geyA4LCA4LCA4LCA4IH07
CiAgICAgaWYgKGNvbnN0IGNoYXIqIGVudmlyb25tZW50VmFyaWFibGUgPSBnZXRlbnYoIldFQktJ
VF9FR0xfUElYRUxfTEFZT1VUIikpIHsKQEAgLTE0Niw2ICsxNTMsMTYgQEAgYm9vbCBHTENvbnRl
eHRFR0w6OmdldEVHTENvbmZpZyhFR0xEaXNwbGF5IGRpc3BsYXksIEVHTENvbmZpZyogY29uZmln
LCBFR0xTdXJmYWMKICAgICAgICAgZWdsR2V0Q29uZmlnQXR0cmliKGRpc3BsYXksIHZhbHVlLCBF
R0xfR1JFRU5fU0laRSwgJmdyZWVuU2l6ZSk7CiAgICAgICAgIGVnbEdldENvbmZpZ0F0dHJpYihk
aXNwbGF5LCB2YWx1ZSwgRUdMX0JMVUVfU0laRSwgJmJsdWVTaXplKTsKICAgICAgICAgZWdsR2V0
Q29uZmlnQXR0cmliKGRpc3BsYXksIHZhbHVlLCBFR0xfQUxQSEFfU0laRSwgJmFscGhhU2l6ZSk7
CisjaWYgUExBVEZPUk0oWDExKQorICAgICAgICBpZiAoY2hlY2tDb21wYXRpYmxlVmlzdWFscykg
eworICAgICAgICAgICAgRUdMaW50IHZpc3VhbGlkOworICAgICAgICAgICAgaWYgKCFlZ2xHZXRD
b25maWdBdHRyaWIoZGlzcGxheSwgdmFsdWUsIEVHTF9OQVRJVkVfVklTVUFMX0lELCAmdmlzdWFs
aWQpKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICAgICAgaWYgKCFj
aGVja0NvbXBhdGlibGVWaXN1YWxzKHZpc3VhbGlkKSkKKyAgICAgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgICAgIH0KKyNlbmRpZgogICAgICAgICByZXR1cm4gcmVkU2l6ZSA9PSByZ2Jh
U2l6ZVswXSAmJiBncmVlblNpemUgPT0gcmdiYVNpemVbMV0KICAgICAgICAgICAgICYmIGJsdWVT
aXplID09IHJnYmFTaXplWzJdICYmIGFscGhhU2l6ZSA9PSByZ2JhU2l6ZVszXTsKICAgICB9KTsK
QEAgLTE2MSw5ICsxNzgsNDIgQEAgYm9vbCBHTENvbnRleHRFR0w6OmdldEVHTENvbmZpZyhFR0xE
aXNwbGF5IGRpc3BsYXksIEVHTENvbmZpZyogY29uZmlnLCBFR0xTdXJmYWMKIAogc3RkOjp1bmlx
dWVfcHRyPEdMQ29udGV4dEVHTD4gR0xDb250ZXh0RUdMOjpjcmVhdGVXaW5kb3dDb250ZXh0KEdM
TmF0aXZlV2luZG93VHlwZSB3aW5kb3csIFBsYXRmb3JtRGlzcGxheSYgcGxhdGZvcm1EaXNwbGF5
LCBFR0xDb250ZXh0IHNoYXJpbmdDb250ZXh0KQogeworICAgIEZ1bmN0aW9uPGJvb2woaW50KT4g
Y2hlY2tDb21wYXRpYmxlVmlzdWFscyA9IG51bGxwdHI7CisjaWYgUExBVEZPUk0oWDExKQorICAg
IGlmIChwbGF0Zm9ybURpc3BsYXkudHlwZSgpID09IFBsYXRmb3JtRGlzcGxheTo6VHlwZTo6WDEx
KSB7CisgICAgICAgIERpc3BsYXkqIHgxMURpc3BsYXkgPSBkb3duY2FzdDxQbGF0Zm9ybURpc3Bs
YXlYMTE+KHBsYXRmb3JtRGlzcGxheSkubmF0aXZlKCk7CisgICAgICAgIFhXaW5kb3dBdHRyaWJ1
dGVzIGF0dHJpYnV0ZXM7CisgICAgICAgIGlmICghWEdldFdpbmRvd0F0dHJpYnV0ZXMoeDExRGlz
cGxheSwgc3RhdGljX2Nhc3Q8V2luZG93Pih3aW5kb3cpLCAmYXR0cmlidXRlcykpCisgICAgICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgICAgICBhdXRvIHZpc3VhbEluZm9Gb3JJRCA9IFt4
MTFEaXNwbGF5XShWaXN1YWxJRCB2aXN1YWxJRCkgLT4gWFVuaXF1ZVB0cjxYVmlzdWFsSW5mbz4g
eworICAgICAgICAgICAgWFZpc3VhbEluZm8gdGVtcGxhdGVWaXN1YWxJbmZvOworICAgICAgICAg
ICAgdGVtcGxhdGVWaXN1YWxJbmZvLnZpc3VhbGlkID0gdmlzdWFsSUQ7CisgICAgICAgICAgICBp
bnQgdmlzdWFsSW5mb0NvdW50OworICAgICAgICAgICAgcmV0dXJuIFhVbmlxdWVQdHI8WFZpc3Vh
bEluZm8+KFhHZXRWaXN1YWxJbmZvKHgxMURpc3BsYXksIFZpc3VhbElETWFzaywgJnRlbXBsYXRl
VmlzdWFsSW5mbywgJnZpc3VhbEluZm9Db3VudCkpOworICAgICAgICB9OworCisgICAgICAgIFhV
bmlxdWVQdHI8WFZpc3VhbEluZm8+IHZpc3VhbEluZm8odmlzdWFsSW5mb0ZvcklEKFhWaXN1YWxJ
REZyb21WaXN1YWwoYXR0cmlidXRlcy52aXN1YWwpKSk7CisgICAgICAgIGlmICghdmlzdWFsSW5m
bykKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgICAgIGNoZWNrQ29tcGF0aWJs
ZVZpc3VhbHMgPSBbdmlzdWFsSW5mbyA9IFdURk1vdmUodmlzdWFsSW5mbyksIHZpc3VhbEluZm9G
b3JJRCA9IFdURk1vdmUodmlzdWFsSW5mb0ZvcklEKV0oaW50IGNvbmZpZ1Zpc3VhbElEKSB7Cisg
ICAgICAgICAgICBhdXRvIGNvbmZpZ1Zpc3VhbEluZm8gPSB2aXN1YWxJbmZvRm9ySUQoY29uZmln
VmlzdWFsSUQpOworICAgICAgICAgICAgcmV0dXJuIGNvbmZpZ1Zpc3VhbEluZm8KKyAgICAgICAg
ICAgICAgICAmJiB2aXN1YWxJbmZvLT5jX2NsYXNzID09IGNvbmZpZ1Zpc3VhbEluZm8tPmNfY2xh
c3MKKyAgICAgICAgICAgICAgICAmJiB2aXN1YWxJbmZvLT5kZXB0aCA9PSBjb25maWdWaXN1YWxJ
bmZvLT5kZXB0aAorICAgICAgICAgICAgICAgICYmIHZpc3VhbEluZm8tPnJlZF9tYXNrID09IGNv
bmZpZ1Zpc3VhbEluZm8tPnJlZF9tYXNrCisgICAgICAgICAgICAgICAgJiYgdmlzdWFsSW5mby0+
Z3JlZW5fbWFzayA9PSBjb25maWdWaXN1YWxJbmZvLT5ncmVlbl9tYXNrCisgICAgICAgICAgICAg
ICAgJiYgdmlzdWFsSW5mby0+Ymx1ZV9tYXNrID09IGNvbmZpZ1Zpc3VhbEluZm8tPmJsdWVfbWFz
aworICAgICAgICAgICAgICAgICYmIHZpc3VhbEluZm8tPmNvbG9ybWFwX3NpemUgPT0gY29uZmln
VmlzdWFsSW5mby0+Y29sb3JtYXBfc2l6ZQorICAgICAgICAgICAgICAgICYmIHZpc3VhbEluZm8t
PmJpdHNfcGVyX3JnYiA9PSBjb25maWdWaXN1YWxJbmZvLT5iaXRzX3Blcl9yZ2I7CisgICAgICAg
IH07CisgICAgfQorI2VuZGlmCisKICAgICBFR0xEaXNwbGF5IGRpc3BsYXkgPSBwbGF0Zm9ybURp
c3BsYXkuZWdsRGlzcGxheSgpOwogICAgIEVHTENvbmZpZyBjb25maWc7Ci0gICAgaWYgKCFnZXRF
R0xDb25maWcoZGlzcGxheSwgJmNvbmZpZywgV2luZG93U3VyZmFjZSkpIHsKKyAgICBpZiAoIWdl
dEVHTENvbmZpZyhkaXNwbGF5LCAmY29uZmlnLCBXaW5kb3dTdXJmYWNlLCBXVEZNb3ZlKGNoZWNr
Q29tcGF0aWJsZVZpc3VhbHMpKSkgewogICAgICAgICBSRUxFQVNFX0xPR19JTkZPKENvbXBvc2l0
aW5nLCAiQ2Fubm90IG9idGFpbiBFR0wgd2luZG93IGNvbnRleHQgY29uZmlndXJhdGlvbjogJXNc
biIsIGxhc3RFcnJvclN0cmluZygpKTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWdsL0dMQ29udGV4
dEVHTC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWdsL0dMQ29udGV4dEVH
TC5oCmluZGV4IDU5OGIwYjY3MzI2YS4uMGEzOTA5NmY0NWE1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RUdMLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWdsL0dMQ29udGV4dEVHTC5oCkBAIC0xMjIsNyAr
MTIyLDcgQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgRUdMU3VyZmFjZSBjcmVhdGVXaW5kb3dTdXJm
YWNlV1BFKEVHTERpc3BsYXksIEVHTENvbmZpZywgR0xOYXRpdmVXaW5kb3dUeXBlKTsKICNlbmRp
ZgogCi0gICAgc3RhdGljIGJvb2wgZ2V0RUdMQ29uZmlnKEVHTERpc3BsYXksIEVHTENvbmZpZyos
IEVHTFN1cmZhY2VUeXBlKTsKKyAgICBzdGF0aWMgYm9vbCBnZXRFR0xDb25maWcoRUdMRGlzcGxh
eSwgRUdMQ29uZmlnKiwgRUdMU3VyZmFjZVR5cGUsIEZ1bmN0aW9uPGJvb2woaW50KT4mJiA9IG51
bGxwdHIpOwogCiAgICAgRUdMQ29udGV4dCBtX2NvbnRleHQgeyBudWxscHRyIH07CiAgICAgRUdM
U3VyZmFjZSBtX3N1cmZhY2UgeyBudWxscHRyIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvUGxhdGZvcm1EaXNwbGF5R1N0cmVhbWVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9QbGF0Zm9ybURp
c3BsYXlHU3RyZWFtZXIuY3BwCmluZGV4IDc1NGQ2MjQ0ODZlYy4uYzQ5NWIxNGU1MmI3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvUGxhdGZv
cm1EaXNwbGF5R1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvUGxhdGZvcm1EaXNwbGF5R1N0cmVhbWVyLmNwcApAQCAtMjQsMTIgKzI0
LDEwIEBACiAKICNpZiBVU0UoR0xYKQogI2luY2x1ZGUgIkdMQ29udGV4dEdMWC5oIgotI2luY2x1
ZGUgPGdzdC9nbC94MTEvZ3N0Z2xkaXNwbGF5X3gxMS5oPgogI2VuZGlmCiAKICNpZiBVU0UoRUdM
KQogI2luY2x1ZGUgIkdMQ29udGV4dEVHTC5oIgotI2luY2x1ZGUgPGdzdC9nbC9lZ2wvZ3N0Z2xk
aXNwbGF5X2VnbC5oPgogI2VuZGlmCiAKICNpZiBQTEFURk9STShYMTEpCkBAIC00Niw2ICs0NCwx
MiBAQAogCiAjZGVmaW5lIEdTVF9VU0VfVU5TVEFCTEVfQVBJCiAjaW5jbHVkZSA8Z3N0L2dsL2ds
Lmg+CisjaWYgVVNFKEdMWCkgJiYgR1NUX0dMX0hBVkVfUExBVEZPUk1fR0xYCisjaW5jbHVkZSA8
Z3N0L2dsL3gxMS9nc3RnbGRpc3BsYXlfeDExLmg+CisjZW5kaWYKKyNpZiBVU0UoRUdMKSAmJiBH
U1RfR0xfSEFWRV9QTEFURk9STV9FR0wKKyNpbmNsdWRlIDxnc3QvZ2wvZWdsL2dzdGdsZGlzcGxh
eV9lZ2wuaD4KKyNlbmRpZgogI3VuZGVmIEdTVF9VU0VfVU5TVEFCTEVfQVBJCiAKIEdTVF9ERUJV
R19DQVRFR09SWV9FWFRFUk4od2Via2l0X21lZGlhX3BsYXllcl9kZWJ1Zyk7CkBAIC01MywyNiAr
NTcsMTUgQEAgR1NUX0RFQlVHX0NBVEVHT1JZX0VYVEVSTih3ZWJraXRfbWVkaWFfcGxheWVyX2Rl
YnVnKTsKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKLXN0YXRpYyBHc3RHTERpc3BsYXkq
IGNyZWF0ZUdzdEdMRGlzcGxheShjb25zdCBQbGF0Zm9ybURpc3BsYXkmIHNoYXJlZERpc3BsYXkp
CitzdGF0aWMgR3N0R0xEaXNwbGF5KiBjcmVhdGVHc3RHTERpc3BsYXkoY29uc3QgUGxhdGZvcm1E
aXNwbGF5JiBzaGFyZWREaXNwbGF5LCBHc3RHTFBsYXRmb3JtIGdsUGxhdGZvcm0pCiB7Ci0jaWYg
VVNFKFdQRV9SRU5ERVJFUikKLSAgICBpZiAoaXM8UGxhdGZvcm1EaXNwbGF5TGliV1BFPihzaGFy
ZWREaXNwbGF5KSkKLSAgICAgICAgcmV0dXJuIEdTVF9HTF9ESVNQTEFZKGdzdF9nbF9kaXNwbGF5
X2VnbF9uZXdfd2l0aF9lZ2xfZGlzcGxheShkb3duY2FzdDxQbGF0Zm9ybURpc3BsYXlMaWJXUEU+
KHNoYXJlZERpc3BsYXkpLmVnbERpc3BsYXkoKSkpOworI2lmIFVTRShFR0wpCisgICAgaWYgKGds
UGxhdGZvcm0gPT0gR1NUX0dMX1BMQVRGT1JNX0VHTCkKKyAgICAgICAgcmV0dXJuIEdTVF9HTF9E
SVNQTEFZKGdzdF9nbF9kaXNwbGF5X2VnbF9uZXdfd2l0aF9lZ2xfZGlzcGxheShzaGFyZWREaXNw
bGF5LmVnbERpc3BsYXkoKSkpOwogI2VuZGlmCi0KLSNpZiBQTEFURk9STShYMTEpCiAjaWYgVVNF
KEdMWCkKLSAgICBpZiAoaXM8UGxhdGZvcm1EaXNwbGF5WDExPihzaGFyZWREaXNwbGF5KSkKKyAg
ICBpZiAoaXM8UGxhdGZvcm1EaXNwbGF5WDExPihzaGFyZWREaXNwbGF5KSAmJiBnbFBsYXRmb3Jt
ID09IEdTVF9HTF9QTEFURk9STV9HTFgpCiAgICAgICAgIHJldHVybiBHU1RfR0xfRElTUExBWShn
c3RfZ2xfZGlzcGxheV94MTFfbmV3X3dpdGhfZGlzcGxheShkb3duY2FzdDxQbGF0Zm9ybURpc3Bs
YXlYMTE+KHNoYXJlZERpc3BsYXkpLm5hdGl2ZSgpKSk7Ci0jZWxpZiBVU0UoRUdMKQotICAgIGlm
IChpczxQbGF0Zm9ybURpc3BsYXlYMTE+KHNoYXJlZERpc3BsYXkpKQotICAgICAgICByZXR1cm4g
R1NUX0dMX0RJU1BMQVkoZ3N0X2dsX2Rpc3BsYXlfZWdsX25ld193aXRoX2VnbF9kaXNwbGF5KGRv
d25jYXN0PFBsYXRmb3JtRGlzcGxheVgxMT4oc2hhcmVkRGlzcGxheSkuZWdsRGlzcGxheSgpKSk7
Ci0jZW5kaWYKLSNlbmRpZgotCi0jaWYgUExBVEZPUk0oV0FZTEFORCkKLSAgICBpZiAoaXM8UGxh
dGZvcm1EaXNwbGF5V2F5bGFuZD4oc2hhcmVkRGlzcGxheSkpCi0gICAgICAgIHJldHVybiBHU1Rf
R0xfRElTUExBWShnc3RfZ2xfZGlzcGxheV9lZ2xfbmV3X3dpdGhfZWdsX2Rpc3BsYXkoZG93bmNh
c3Q8UGxhdGZvcm1EaXNwbGF5V2F5bGFuZD4oc2hhcmVkRGlzcGxheSkuZWdsRGlzcGxheSgpKSk7
CiAjZW5kaWYKIAogICAgIHJldHVybiBudWxscHRyOwpAQCAtOTQsMTYgKzg3LDE2IEBAIGJvb2wg
UGxhdGZvcm1EaXNwbGF5Ojp0cnlFbnN1cmVHc3RHTENvbnRleHQoKSBjb25zdAogICAgIGF1dG8q
IHNoYXJlZENvbnRleHQgPSBjb25zdF9jYXN0PFBsYXRmb3JtRGlzcGxheSo+KHRoaXMpLT5zaGFy
aW5nR0xDb250ZXh0KCk7CiAgICAgaWYgKCFzaGFyZWRDb250ZXh0KQogICAgICAgICByZXR1cm4g
ZmFsc2U7CisKICAgICBHQ0dMQ29udGV4dCBjb250ZXh0SGFuZGxlID0gc2hhcmVkQ29udGV4dC0+
cGxhdGZvcm1Db250ZXh0KCk7CiAgICAgaWYgKCFjb250ZXh0SGFuZGxlKQogICAgICAgICByZXR1
cm4gZmFsc2U7CiAKLSAgICBtX2dzdEdMRGlzcGxheSA9IGFkb3B0R1JlZihjcmVhdGVHc3RHTERp
c3BsYXkoKnRoaXMpKTsKKyAgICBHc3RHTFBsYXRmb3JtIGdsUGxhdGZvcm0gPSBzaGFyZWRDb250
ZXh0LT5pc0VHTENvbnRleHQoKSA/IEdTVF9HTF9QTEFURk9STV9FR0wgOiBHU1RfR0xfUExBVEZP
Uk1fR0xYOworICAgIG1fZ3N0R0xEaXNwbGF5ID0gYWRvcHRHUmVmKGNyZWF0ZUdzdEdMRGlzcGxh
eSgqdGhpcywgZ2xQbGF0Zm9ybSkpOwogICAgIGlmICghbV9nc3RHTERpc3BsYXkpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKIAotICAgIEdzdEdMUGxhdGZvcm0gZ2xQbGF0Zm9ybSA9IHNoYXJlZENv
bnRleHQtPmlzRUdMQ29udGV4dCgpID8gR1NUX0dMX1BMQVRGT1JNX0VHTCA6IEdTVF9HTF9QTEFU
Rk9STV9HTFg7Ci0KICAgICBtX2dzdEdMQ29udGV4dCA9IGFkb3B0R1JlZihnc3RfZ2xfY29udGV4
dF9uZXdfd3JhcHBlZChtX2dzdEdMRGlzcGxheS5nZXQoKSwgcmVpbnRlcnByZXRfY2FzdDxndWlu
dHB0cj4oY29udGV4dEhhbmRsZSksIGdsUGxhdGZvcm0sIGdsQVBJKSk7CiAKICAgICAvLyBBY3Rp
dmF0ZSBhbmQgZmlsbCB0aGUgR1N0cmVhbWVyIHdyYXBwZWQgY29udGV4dCB3aXRoIHRoZSBXZWJr
aXQncyBzaGFyZWQgb25lLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L2dsaWIvV2ViS2l0UHJvdG9jb2xIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9nbGliL1dlYktpdFByb3RvY29sSGFuZGxlci5jcHAKaW5kZXggZjQzMThkZTI5YTIyLi5i
OGJiMTBkZDRhNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGli
L1dlYktpdFByb3RvY29sSGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL2dsaWIvV2ViS2l0UHJvdG9jb2xIYW5kbGVyLmNwcApAQCAtMTQxLDM5ICsxNDEsMjEgQEAg
c3RhdGljIGJvb2wgd2ViR0xFbmFibGVkKFdlYktpdFVSSVNjaGVtZVJlcXVlc3QqIHJlcXVlc3Qp
CiAgICAgcmV0dXJuIHdlYmtpdF9zZXR0aW5nc19nZXRfZW5hYmxlX3dlYmdsKHdlYmtpdF93ZWJf
dmlld19nZXRfc2V0dGluZ3Mod2ViVmlldykpOwogfQogCi1zdGF0aWMgY29uc3QgY2hhciogb3Bl
bkdMQVBJKCkKK3N0YXRpYyBjb25zdCBjaGFyKiBvcGVuR0xBUEkoYm9vbCBpc0VHTCkKIHsKICNp
ZiBVU0UoTElCRVBPWFkpCiAgICAgaWYgKGVwb3h5X2lzX2Rlc2t0b3BfZ2woKSkKICAgICAgICAg
cmV0dXJuICJPcGVuR0wgKGxpYmVwb3h5KSI7CiAgICAgcmV0dXJuICJPcGVuR0wgRVMgMiAobGli
ZXBveHkpIjsKICNlbHNlCi0jaWYgVVNFKEdMWCkKLSAgICBpZiAoUGxhdGZvcm1EaXNwbGF5Ojpz
aGFyZWREaXNwbGF5KCkudHlwZSgpID09IFBsYXRmb3JtRGlzcGxheTo6VHlwZTo6WDExKQotICAg
ICAgICByZXR1cm4gIk9wZW5HTCI7Ci0jZW5kaWYKICNpZiBVU0UoRUdMKQorICAgIGlmIChpc0VH
TCkgewogI2lmIFVTRShPUEVOR0xfRVMpCi0gICAgcmV0dXJuICJPcGVuR0wgRVMgMiI7Ci0jZWxz
ZQotICAgIHJldHVybiAiT3BlbkdMIjsKLSNlbmRpZgotI2VuZGlmCi0jZW5kaWYKLSAgICBSRUxF
QVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwotfQotCi1zdGF0aWMgY29uc3QgY2hhciogbmF0aXZl
SW50ZXJmYWNlKCkKLXsKLSNpZiBQTEFURk9STShHVEspCi0jaWYgVVNFKEdMWCkKLSAgICBpZiAo
UGxhdGZvcm1EaXNwbGF5OjpzaGFyZWREaXNwbGF5KCkudHlwZSgpID09IFBsYXRmb3JtRGlzcGxh
eTo6VHlwZTo6WDExKQotICAgICAgICByZXR1cm4gIkdMWCI7CisgICAgICAgIHJldHVybiAiT3Bl
bkdMIEVTIDIiOwogI2VuZGlmCisgICAgfQogI2VuZGlmCi0KLSNpZiBVU0UoRUdMKQotICAgIHJl
dHVybiAiRUdMIjsKKyAgICByZXR1cm4gIk9wZW5HTCI7CiAjZW5kaWYKICAgICBSRUxFQVNFX0FT
U0VSVF9OT1RfUkVBQ0hFRCgpOwogfQpAQCAtMzcwLDIzICszNTIsMjcgQEAgdm9pZCBXZWJLaXRQ
cm90b2NvbEhhbmRsZXI6OmhhbmRsZUdQVShXZWJLaXRVUklTY2hlbWVSZXF1ZXN0KiByZXF1ZXN0
KQogICAgICAgICAiICA8dGQ+JXM8L3RkPiIKICAgICAgICAgIiA8L3Rib2R5PjwvdHI+IiwKICAg
ICAgICAgd2ViR0xFbmFibGVkKHJlcXVlc3QpID8gIlllcyIgOiAiTm8iKTsKKyNlbmRpZgogCisj
aWYgVVNFKEVHTCkgfHwgVVNFKEdMWCkKICAgICBhdXRvIGdsQ29udGV4dCA9IEdMQ29udGV4dDo6
Y3JlYXRlT2Zmc2NyZWVuQ29udGV4dCgpOwogICAgIGdsQ29udGV4dC0+bWFrZUNvbnRleHRDdXJy
ZW50KCk7CiAKKyAgICBib29sIGlzRUdMID0gZ2xDb250ZXh0LT5pc0VHTENvbnRleHQoKTsKKwog
ICAgIGdfc3RyaW5nX2FwcGVuZF9wcmludGYoaHRtbCwKICAgICAgICAgIiA8dGJvZHk+PHRyPiIK
ICAgICAgICAgIiAgPHRkPjxkaXYgY2xhc3M9XCJ0aXRsZW5hbWVcIj5BUEk8L2Rpdj48L3RkPiIK
ICAgICAgICAgIiAgPHRkPiVzPC90ZD4iCiAgICAgICAgICIgPC90Ym9keT48L3RyPiIsCi0gICAg
ICAgIG9wZW5HTEFQSSgpKTsKKyAgICAgICAgb3BlbkdMQVBJKGlzRUdMKSk7CiAKICAgICBnX3N0
cmluZ19hcHBlbmRfcHJpbnRmKGh0bWwsCiAgICAgICAgICIgPHRib2R5Pjx0cj4iCiAgICAgICAg
ICIgIDx0ZD48ZGl2IGNsYXNzPVwidGl0bGVuYW1lXCI+TmF0aXZlIGludGVyZmFjZTwvZGl2Pjwv
dGQ+IgogICAgICAgICAiICA8dGQ+JXM8L3RkPiIKICAgICAgICAgIiA8L3Rib2R5PjwvdHI+IiwK
LSAgICAgICAgbmF0aXZlSW50ZXJmYWNlKCkpOworICAgICAgICBpc0VHTCA/ICJFR0wiIDogIkdM
WCIpOwogCiAgICAgZ19zdHJpbmdfYXBwZW5kX3ByaW50ZihodG1sLAogICAgICAgICAiIDx0Ym9k
eT48dHI+IgpAQCAtNDQxLDEwICs0MjcsOCBAQCB2b2lkIFdlYktpdFByb3RvY29sSGFuZGxlcjo6
aGFuZGxlR1BVKFdlYktpdFVSSVNjaGVtZVJlcXVlc3QqIHJlcXVlc3QpCiAgICAgZ19zdHJpbmdf
ZnJlZShleHRlbnNpb25zLCBUUlVFKTsKICNlbmRpZgogCi0gICAgYm9vbCBpc0dMWCA9IGZhbHNl
OwogI2lmIFVTRShHTFgpCi0gICAgaWYgKFBsYXRmb3JtRGlzcGxheTo6c2hhcmVkRGlzcGxheSgp
LnR5cGUoKSA9PSBQbGF0Zm9ybURpc3BsYXk6OlR5cGU6OlgxMSkgewotICAgICAgICBpc0dMWCA9
IHRydWU7CisgICAgaWYgKFBsYXRmb3JtRGlzcGxheTo6c2hhcmVkRGlzcGxheSgpLnR5cGUoKSA9
PSBQbGF0Zm9ybURpc3BsYXk6OlR5cGU6OlgxMSAmJiAhaXNFR0wpIHsKICAgICAgICAgYXV0byog
eDExRGlzcGxheSA9IGRvd25jYXN0PFBsYXRmb3JtRGlzcGxheVgxMT4oUGxhdGZvcm1EaXNwbGF5
OjpzaGFyZWREaXNwbGF5KCkpLm5hdGl2ZSgpOwogCiAgICAgICAgIGdfc3RyaW5nX2FwcGVuZF9w
cmludGYoaHRtbCwKQEAgLTQ3MSw3ICs0NTUsNyBAQCB2b2lkIFdlYktpdFByb3RvY29sSGFuZGxl
cjo6aGFuZGxlR1BVKFdlYktpdFVSSVNjaGVtZVJlcXVlc3QqIHJlcXVlc3QpCiAjZW5kaWYKIAog
I2lmIFVTRShFR0wpCi0gICAgaWYgKCFpc0dMWCkgeworICAgIGlmIChpc0VHTCkgewogICAgICAg
ICBhdXRvIGVnbERpc3BsYXkgPSBQbGF0Zm9ybURpc3BsYXk6OnNoYXJlZERpc3BsYXkoKS5lZ2xE
aXNwbGF5KCk7CiAKICAgICAgICAgZ19zdHJpbmdfYXBwZW5kX3ByaW50ZihodG1sLApAQCAtNDk3
LDcgKzQ4MSw3IEBAIHZvaWQgV2ViS2l0UHJvdG9jb2xIYW5kbGVyOjpoYW5kbGVHUFUoV2ViS2l0
VVJJU2NoZW1lUmVxdWVzdCogcmVxdWVzdCkKICAgICAgICAgICAgIGVnbFF1ZXJ5U3RyaW5nKGVn
bERpc3BsYXksIEVHTF9FWFRFTlNJT05TKSk7CiAgICAgfQogI2VuZGlmCi0jZW5kaWYgLy8gRU5B
QkxFKFdFQkdMKQorI2VuZGlmIC8vIFVTRShFR0wpIHx8IFVTRShHTFgpCiAKICAgICBnX3N0cmlu
Z19hcHBlbmQoaHRtbCwgIjx0YWJsZT4iKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>462491</attachid>
            <date>2022-09-21 02:10:57 -0700</date>
            <delta_ts>2022-09-21 02:10:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wk-x11-prefer-egl.diff</filename>
            <type>text/plain</type>
            <size>14004</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dMQ29udGV4dC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HTENvbnRleHQuY3BwCmluZGV4
IDg0YzA1MGQ1NGZiMS4uMjlhZjM1YTViYTViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9HTENvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0dMQ29udGV4dC5jcHAKQEAgLTg0LDYgKzg0LDE5IEBAIHN0ZDo6dW5pcXVl
X3B0cjxHTENvbnRleHQ+IEdMQ29udGV4dDo6Y3JlYXRlQ29udGV4dEZvcldpbmRvdyhHTE5hdGl2
ZVdpbmRvd1R5cGUKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICBQbGF0Zm9ybURpc3Bs
YXkmIGRpc3BsYXkgPSBwbGF0Zm9ybURpc3BsYXkgPyAqcGxhdGZvcm1EaXNwbGF5IDogUGxhdGZv
cm1EaXNwbGF5OjpzaGFyZWREaXNwbGF5KCk7CisgICAgaWYgKGF1dG8qIHNoYXJpbmdDb250ZXh0
ID0gZGlzcGxheS5zaGFyaW5nR0xDb250ZXh0KCkpIHsKKyAgICAgICAgLy8gQ29udGV4dCBmb3Ig
d2luZG93IHNob3VsZCBtYXRjaCB0aGUgdHlwZSBvZiBzaGFyaW5nIGNvbnRleHQuCisjaWYgVVNF
KEVHTCkKKyAgICAgICAgaWYgKHNoYXJpbmdDb250ZXh0LT5pc0VHTENvbnRleHQoKSkKKyAgICAg
ICAgICAgIHJldHVybiBHTENvbnRleHRFR0w6OmNyZWF0ZUNvbnRleHQod2luZG93SGFuZGxlLCBk
aXNwbGF5KTsKKyNlbmRpZgorI2lmIFVTRShHTFgpCisgICAgICAgIGlmIChkaXNwbGF5LnR5cGUo
KSA9PSBQbGF0Zm9ybURpc3BsYXk6OlR5cGU6OlgxMSkKKyAgICAgICAgICAgIHJldHVybiBHTENv
bnRleHRHTFg6OmNyZWF0ZUNvbnRleHQod2luZG93SGFuZGxlLCBkaXNwbGF5KTsKKyNlbmRpZgor
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisKICNpZiBQTEFURk9STShXQVlMQU5EKQog
ICAgIGlmIChkaXNwbGF5LnR5cGUoKSA9PSBQbGF0Zm9ybURpc3BsYXk6OlR5cGU6OldheWxhbmQp
IHsKICAgICAgICAgaWYgKGF1dG8gZWdsQ29udGV4dCA9IEdMQ29udGV4dEVHTDo6Y3JlYXRlQ29u
dGV4dCh3aW5kb3dIYW5kbGUsIGRpc3BsYXkpKQpAQCAtOTIsMTYgKzEwNSwxOCBAQCBzdGQ6OnVu
aXF1ZV9wdHI8R0xDb250ZXh0PiBHTENvbnRleHQ6OmNyZWF0ZUNvbnRleHRGb3JXaW5kb3coR0xO
YXRpdmVXaW5kb3dUeXBlCiAgICAgfQogI2VuZGlmCiAKKyNpZiBVU0UoRUdMKQorICAgIGlmIChh
dXRvIGVnbENvbnRleHQgPSBHTENvbnRleHRFR0w6OmNyZWF0ZUNvbnRleHQod2luZG93SGFuZGxl
LCBkaXNwbGF5KSkKKyAgICAgICAgcmV0dXJuIGVnbENvbnRleHQ7CisjZW5kaWYKKwogI2lmIFVT
RShHTFgpCiAgICAgaWYgKGRpc3BsYXkudHlwZSgpID09IFBsYXRmb3JtRGlzcGxheTo6VHlwZTo6
WDExKSB7CiAgICAgICAgIGlmIChhdXRvIGdseENvbnRleHQgPSBHTENvbnRleHRHTFg6OmNyZWF0
ZUNvbnRleHQod2luZG93SGFuZGxlLCBkaXNwbGF5KSkKICAgICAgICAgICAgIHJldHVybiBnbHhD
b250ZXh0OwogICAgIH0KICNlbmRpZgotI2lmIFVTRShFR0wpCi0gICAgaWYgKGF1dG8gZWdsQ29u
dGV4dCA9IEdMQ29udGV4dEVHTDo6Y3JlYXRlQ29udGV4dCh3aW5kb3dIYW5kbGUsIGRpc3BsYXkp
KQotICAgICAgICByZXR1cm4gZWdsQ29udGV4dDsKLSNlbmRpZgorCiAgICAgcmV0dXJuIG51bGxw
dHI7CiB9CiAKQEAgLTExOCw2ICsxMzMsMTkgQEAgc3RkOjp1bmlxdWVfcHRyPEdMQ29udGV4dD4g
R0xDb250ZXh0OjpjcmVhdGVTaGFyaW5nQ29udGV4dChQbGF0Zm9ybURpc3BsYXkmIGRpc3AKICAg
ICBpZiAoIWluaXRpYWxpemVPcGVuR0xTaGltc0lmTmVlZGVkKCkpCiAgICAgICAgIHJldHVybiBu
dWxscHRyOwogCisjaWYgVVNFKEdMWCkKKyAgICBib29sIGZvcmNlR0xYID0gZGlzcGxheS50eXBl
KCkgPT0gUGxhdGZvcm1EaXNwbGF5OjpUeXBlOjpYMTEgJiYgZ2V0ZW52KCJXRUJLSVRfRk9SQ0Vf
R0xYIik7CisjZWxzZQorICAgIGJvb2wgZm9yY2VHTFggPSBmYWxzZTsKKyNlbmRpZgorCisjaWYg
VVNFKEVHTCkKKyAgICBpZiAoIWZvcmNlR0xYKSB7CisgICAgICAgIGlmIChhdXRvIGVnbENvbnRl
eHQgPSBHTENvbnRleHRFR0w6OmNyZWF0ZVNoYXJpbmdDb250ZXh0KGRpc3BsYXkpKQorICAgICAg
ICAgICAgcmV0dXJuIGVnbENvbnRleHQ7CisgICAgfQorI2VuZGlmCisKICNpZiBVU0UoR0xYKQog
ICAgIGlmIChkaXNwbGF5LnR5cGUoKSA9PSBQbGF0Zm9ybURpc3BsYXk6OlR5cGU6OlgxMSkgewog
ICAgICAgICBpZiAoYXV0byBnbHhDb250ZXh0ID0gR0xDb250ZXh0R0xYOjpjcmVhdGVTaGFyaW5n
Q29udGV4dChkaXNwbGF5KSkKQEAgLTEyNSwxMSArMTUzLDYgQEAgc3RkOjp1bmlxdWVfcHRyPEdM
Q29udGV4dD4gR0xDb250ZXh0OjpjcmVhdGVTaGFyaW5nQ29udGV4dChQbGF0Zm9ybURpc3BsYXkm
IGRpc3AKICAgICB9CiAjZW5kaWYKIAotI2lmIFVTRShFR0wpIHx8IFBMQVRGT1JNKFdBWUxBTkQp
IHx8IFBMQVRGT1JNKFdQRSkKLSAgICBpZiAoYXV0byBlZ2xDb250ZXh0ID0gR0xDb250ZXh0RUdM
OjpjcmVhdGVTaGFyaW5nQ29udGV4dChkaXNwbGF5KSkKLSAgICAgICAgcmV0dXJuIGVnbENvbnRl
eHQ7Ci0jZW5kaWYKLQogICAgIHJldHVybiBudWxscHRyOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RUdMLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VnbC9HTENvbnRleHRFR0wuY3BwCmluZGV4IDI2
MmIyZmI5MDIzNy4uMzA0NGE2YWI2MmE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RUdMLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RUdMLmNwcApAQCAtNDUsNiArNDUsMTMgQEAK
ICNpbmNsdWRlICJPcGVuR0xTaGltcy5oIgogI2VuZGlmCiAKKyNpZiBQTEFURk9STShYMTEpCisj
aW5jbHVkZSAiUGxhdGZvcm1EaXNwbGF5WDExLmgiCisjaW5jbHVkZSAiWFVuaXF1ZVB0ci5oIgor
I2luY2x1ZGUgPFgxMS9YbGliLmg+CisjaW5jbHVkZSA8WDExL1h1dGlsLmg+CisjZW5kaWYKKwog
I2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtODgsNyAr
OTUsNyBAQCBjb25zdCBjaGFyKiBHTENvbnRleHRFR0w6Omxhc3RFcnJvclN0cmluZygpCiAgICAg
cmV0dXJuIGVycm9yU3RyaW5nKGVnbEdldEVycm9yKCkpOwogfQogCi1ib29sIEdMQ29udGV4dEVH
TDo6Z2V0RUdMQ29uZmlnKEVHTERpc3BsYXkgZGlzcGxheSwgRUdMQ29uZmlnKiBjb25maWcsIEVH
TFN1cmZhY2VUeXBlIHN1cmZhY2VUeXBlKQorYm9vbCBHTENvbnRleHRFR0w6OmdldEVHTENvbmZp
ZyhFR0xEaXNwbGF5IGRpc3BsYXksIEVHTENvbmZpZyogY29uZmlnLCBFR0xTdXJmYWNlVHlwZSBz
dXJmYWNlVHlwZSwgRnVuY3Rpb248Ym9vbChpbnQpPiYmIGNoZWNrQ29tcGF0aWJsZVZpc3VhbHMp
CiB7CiAgICAgc3RkOjphcnJheTxFR0xpbnQsIDQ+IHJnYmFTaXplID0geyA4LCA4LCA4LCA4IH07
CiAgICAgaWYgKGNvbnN0IGNoYXIqIGVudmlyb25tZW50VmFyaWFibGUgPSBnZXRlbnYoIldFQktJ
VF9FR0xfUElYRUxfTEFZT1VUIikpIHsKQEAgLTE0Niw2ICsxNTMsMTYgQEAgYm9vbCBHTENvbnRl
eHRFR0w6OmdldEVHTENvbmZpZyhFR0xEaXNwbGF5IGRpc3BsYXksIEVHTENvbmZpZyogY29uZmln
LCBFR0xTdXJmYWMKICAgICAgICAgZWdsR2V0Q29uZmlnQXR0cmliKGRpc3BsYXksIHZhbHVlLCBF
R0xfR1JFRU5fU0laRSwgJmdyZWVuU2l6ZSk7CiAgICAgICAgIGVnbEdldENvbmZpZ0F0dHJpYihk
aXNwbGF5LCB2YWx1ZSwgRUdMX0JMVUVfU0laRSwgJmJsdWVTaXplKTsKICAgICAgICAgZWdsR2V0
Q29uZmlnQXR0cmliKGRpc3BsYXksIHZhbHVlLCBFR0xfQUxQSEFfU0laRSwgJmFscGhhU2l6ZSk7
CisjaWYgUExBVEZPUk0oWDExKQorICAgICAgICBpZiAoY2hlY2tDb21wYXRpYmxlVmlzdWFscykg
eworICAgICAgICAgICAgRUdMaW50IHZpc3VhbGlkOworICAgICAgICAgICAgaWYgKCFlZ2xHZXRD
b25maWdBdHRyaWIoZGlzcGxheSwgdmFsdWUsIEVHTF9OQVRJVkVfVklTVUFMX0lELCAmdmlzdWFs
aWQpKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICAgICAgaWYgKCFj
aGVja0NvbXBhdGlibGVWaXN1YWxzKHZpc3VhbGlkKSkKKyAgICAgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgICAgIH0KKyNlbmRpZgogICAgICAgICByZXR1cm4gcmVkU2l6ZSA9PSByZ2Jh
U2l6ZVswXSAmJiBncmVlblNpemUgPT0gcmdiYVNpemVbMV0KICAgICAgICAgICAgICYmIGJsdWVT
aXplID09IHJnYmFTaXplWzJdICYmIGFscGhhU2l6ZSA9PSByZ2JhU2l6ZVszXTsKICAgICB9KTsK
QEAgLTE2MSw5ICsxNzgsNDIgQEAgYm9vbCBHTENvbnRleHRFR0w6OmdldEVHTENvbmZpZyhFR0xE
aXNwbGF5IGRpc3BsYXksIEVHTENvbmZpZyogY29uZmlnLCBFR0xTdXJmYWMKIAogc3RkOjp1bmlx
dWVfcHRyPEdMQ29udGV4dEVHTD4gR0xDb250ZXh0RUdMOjpjcmVhdGVXaW5kb3dDb250ZXh0KEdM
TmF0aXZlV2luZG93VHlwZSB3aW5kb3csIFBsYXRmb3JtRGlzcGxheSYgcGxhdGZvcm1EaXNwbGF5
LCBFR0xDb250ZXh0IHNoYXJpbmdDb250ZXh0KQogeworICAgIEZ1bmN0aW9uPGJvb2woaW50KT4g
Y2hlY2tDb21wYXRpYmxlVmlzdWFscyA9IG51bGxwdHI7CisjaWYgUExBVEZPUk0oWDExKQorICAg
IGlmIChwbGF0Zm9ybURpc3BsYXkudHlwZSgpID09IFBsYXRmb3JtRGlzcGxheTo6VHlwZTo6WDEx
KSB7CisgICAgICAgIERpc3BsYXkqIHgxMURpc3BsYXkgPSBkb3duY2FzdDxQbGF0Zm9ybURpc3Bs
YXlYMTE+KHBsYXRmb3JtRGlzcGxheSkubmF0aXZlKCk7CisgICAgICAgIFhXaW5kb3dBdHRyaWJ1
dGVzIGF0dHJpYnV0ZXM7CisgICAgICAgIGlmICghWEdldFdpbmRvd0F0dHJpYnV0ZXMoeDExRGlz
cGxheSwgc3RhdGljX2Nhc3Q8V2luZG93Pih3aW5kb3cpLCAmYXR0cmlidXRlcykpCisgICAgICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgICAgICBhdXRvIHZpc3VhbEluZm9Gb3JJRCA9IFt4
MTFEaXNwbGF5XShWaXN1YWxJRCB2aXN1YWxJRCkgLT4gWFVuaXF1ZVB0cjxYVmlzdWFsSW5mbz4g
eworICAgICAgICAgICAgWFZpc3VhbEluZm8gdGVtcGxhdGVWaXN1YWxJbmZvOworICAgICAgICAg
ICAgdGVtcGxhdGVWaXN1YWxJbmZvLnZpc3VhbGlkID0gdmlzdWFsSUQ7CisgICAgICAgICAgICBp
bnQgdmlzdWFsSW5mb0NvdW50OworICAgICAgICAgICAgcmV0dXJuIFhVbmlxdWVQdHI8WFZpc3Vh
bEluZm8+KFhHZXRWaXN1YWxJbmZvKHgxMURpc3BsYXksIFZpc3VhbElETWFzaywgJnRlbXBsYXRl
VmlzdWFsSW5mbywgJnZpc3VhbEluZm9Db3VudCkpOworICAgICAgICB9OworCisgICAgICAgIFhV
bmlxdWVQdHI8WFZpc3VhbEluZm8+IHZpc3VhbEluZm8odmlzdWFsSW5mb0ZvcklEKFhWaXN1YWxJ
REZyb21WaXN1YWwoYXR0cmlidXRlcy52aXN1YWwpKSk7CisgICAgICAgIGlmICghdmlzdWFsSW5m
bykKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgICAgIGNoZWNrQ29tcGF0aWJs
ZVZpc3VhbHMgPSBbdmlzdWFsSW5mbyA9IFdURk1vdmUodmlzdWFsSW5mbyksIHZpc3VhbEluZm9G
b3JJRCA9IFdURk1vdmUodmlzdWFsSW5mb0ZvcklEKV0odW5zaWduZWQgbG9uZyBjb25maWdWaXN1
YWxJRCkgeworICAgICAgICAgICAgYXV0byBjb25maWdWaXN1YWxJbmZvID0gdmlzdWFsSW5mb0Zv
cklEKGNvbmZpZ1Zpc3VhbElEKTsKKyAgICAgICAgICAgIHJldHVybiBjb25maWdWaXN1YWxJbmZv
CisgICAgICAgICAgICAgICAgJiYgdmlzdWFsSW5mby0+Y19jbGFzcyA9PSBjb25maWdWaXN1YWxJ
bmZvLT5jX2NsYXNzCisgICAgICAgICAgICAgICAgJiYgdmlzdWFsSW5mby0+ZGVwdGggPj0gY29u
ZmlnVmlzdWFsSW5mby0+ZGVwdGgKKyAgICAgICAgICAgICAgICAmJiB2aXN1YWxJbmZvLT5yZWRf
bWFzayA9PSBjb25maWdWaXN1YWxJbmZvLT5yZWRfbWFzaworICAgICAgICAgICAgICAgICYmIHZp
c3VhbEluZm8tPmdyZWVuX21hc2sgPT0gY29uZmlnVmlzdWFsSW5mby0+Z3JlZW5fbWFzaworICAg
ICAgICAgICAgICAgICYmIHZpc3VhbEluZm8tPmJsdWVfbWFzayA9PSBjb25maWdWaXN1YWxJbmZv
LT5ibHVlX21hc2sKKyAgICAgICAgICAgICAgICAmJiB2aXN1YWxJbmZvLT5jb2xvcm1hcF9zaXpl
ID09IGNvbmZpZ1Zpc3VhbEluZm8tPmNvbG9ybWFwX3NpemUKKyAgICAgICAgICAgICAgICAmJiB2
aXN1YWxJbmZvLT5iaXRzX3Blcl9yZ2IgPT0gY29uZmlnVmlzdWFsSW5mby0+Yml0c19wZXJfcmdi
OworICAgICAgICB9OworICAgIH0KKyNlbmRpZgorCiAgICAgRUdMRGlzcGxheSBkaXNwbGF5ID0g
cGxhdGZvcm1EaXNwbGF5LmVnbERpc3BsYXkoKTsKICAgICBFR0xDb25maWcgY29uZmlnOwotICAg
IGlmICghZ2V0RUdMQ29uZmlnKGRpc3BsYXksICZjb25maWcsIFdpbmRvd1N1cmZhY2UpKSB7Cisg
ICAgaWYgKCFnZXRFR0xDb25maWcoZGlzcGxheSwgJmNvbmZpZywgV2luZG93U3VyZmFjZSwgV1RG
TW92ZShjaGVja0NvbXBhdGlibGVWaXN1YWxzKSkpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfSU5G
TyhDb21wb3NpdGluZywgIkNhbm5vdCBvYnRhaW4gRUdMIHdpbmRvdyBjb250ZXh0IGNvbmZpZ3Vy
YXRpb246ICVzXG4iLCBsYXN0RXJyb3JTdHJpbmcoKSk7CiAgICAgICAgIHJldHVybiBudWxscHRy
OwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Vn
bC9HTENvbnRleHRFR0wuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VnbC9H
TENvbnRleHRFR0wuaAppbmRleCA1OThiMGI2NzMyNmEuLjBhMzkwOTZmNDVhNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWdsL0dMQ29udGV4dEVHTC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VnbC9HTENvbnRleHRFR0wuaApA
QCAtMTIyLDcgKzEyMiw3IEBAIHByaXZhdGU6CiAgICAgc3RhdGljIEVHTFN1cmZhY2UgY3JlYXRl
V2luZG93U3VyZmFjZVdQRShFR0xEaXNwbGF5LCBFR0xDb25maWcsIEdMTmF0aXZlV2luZG93VHlw
ZSk7CiAjZW5kaWYKIAotICAgIHN0YXRpYyBib29sIGdldEVHTENvbmZpZyhFR0xEaXNwbGF5LCBF
R0xDb25maWcqLCBFR0xTdXJmYWNlVHlwZSk7CisgICAgc3RhdGljIGJvb2wgZ2V0RUdMQ29uZmln
KEVHTERpc3BsYXksIEVHTENvbmZpZyosIEVHTFN1cmZhY2VUeXBlLCBGdW5jdGlvbjxib29sKGlu
dCk+JiYgPSBudWxscHRyKTsKIAogICAgIEVHTENvbnRleHQgbV9jb250ZXh0IHsgbnVsbHB0ciB9
OwogICAgIEVHTFN1cmZhY2UgbV9zdXJmYWNlIHsgbnVsbHB0ciB9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1BsYXRmb3JtRGlzcGxheUdT
dHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
UGxhdGZvcm1EaXNwbGF5R1N0cmVhbWVyLmNwcAppbmRleCA3NTRkNjI0NDg2ZWMuLmM0OTViMTRl
NTJiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL1BsYXRmb3JtRGlzcGxheUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1BsYXRmb3JtRGlzcGxheUdTdHJlYW1lci5jcHAKQEAg
LTI0LDEyICsyNCwxMCBAQAogCiAjaWYgVVNFKEdMWCkKICNpbmNsdWRlICJHTENvbnRleHRHTFgu
aCIKLSNpbmNsdWRlIDxnc3QvZ2wveDExL2dzdGdsZGlzcGxheV94MTEuaD4KICNlbmRpZgogCiAj
aWYgVVNFKEVHTCkKICNpbmNsdWRlICJHTENvbnRleHRFR0wuaCIKLSNpbmNsdWRlIDxnc3QvZ2wv
ZWdsL2dzdGdsZGlzcGxheV9lZ2wuaD4KICNlbmRpZgogCiAjaWYgUExBVEZPUk0oWDExKQpAQCAt
NDYsNiArNDQsMTIgQEAKIAogI2RlZmluZSBHU1RfVVNFX1VOU1RBQkxFX0FQSQogI2luY2x1ZGUg
PGdzdC9nbC9nbC5oPgorI2lmIFVTRShHTFgpICYmIEdTVF9HTF9IQVZFX1BMQVRGT1JNX0dMWAor
I2luY2x1ZGUgPGdzdC9nbC94MTEvZ3N0Z2xkaXNwbGF5X3gxMS5oPgorI2VuZGlmCisjaWYgVVNF
KEVHTCkgJiYgR1NUX0dMX0hBVkVfUExBVEZPUk1fRUdMCisjaW5jbHVkZSA8Z3N0L2dsL2VnbC9n
c3RnbGRpc3BsYXlfZWdsLmg+CisjZW5kaWYKICN1bmRlZiBHU1RfVVNFX1VOU1RBQkxFX0FQSQog
CiBHU1RfREVCVUdfQ0FURUdPUllfRVhURVJOKHdlYmtpdF9tZWRpYV9wbGF5ZXJfZGVidWcpOwpA
QCAtNTMsMjYgKzU3LDE1IEBAIEdTVF9ERUJVR19DQVRFR09SWV9FWFRFUk4od2Via2l0X21lZGlh
X3BsYXllcl9kZWJ1Zyk7CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCi1zdGF0aWMgR3N0
R0xEaXNwbGF5KiBjcmVhdGVHc3RHTERpc3BsYXkoY29uc3QgUGxhdGZvcm1EaXNwbGF5JiBzaGFy
ZWREaXNwbGF5KQorc3RhdGljIEdzdEdMRGlzcGxheSogY3JlYXRlR3N0R0xEaXNwbGF5KGNvbnN0
IFBsYXRmb3JtRGlzcGxheSYgc2hhcmVkRGlzcGxheSwgR3N0R0xQbGF0Zm9ybSBnbFBsYXRmb3Jt
KQogewotI2lmIFVTRShXUEVfUkVOREVSRVIpCi0gICAgaWYgKGlzPFBsYXRmb3JtRGlzcGxheUxp
YldQRT4oc2hhcmVkRGlzcGxheSkpCi0gICAgICAgIHJldHVybiBHU1RfR0xfRElTUExBWShnc3Rf
Z2xfZGlzcGxheV9lZ2xfbmV3X3dpdGhfZWdsX2Rpc3BsYXkoZG93bmNhc3Q8UGxhdGZvcm1EaXNw
bGF5TGliV1BFPihzaGFyZWREaXNwbGF5KS5lZ2xEaXNwbGF5KCkpKTsKKyNpZiBVU0UoRUdMKQor
ICAgIGlmIChnbFBsYXRmb3JtID09IEdTVF9HTF9QTEFURk9STV9FR0wpCisgICAgICAgIHJldHVy
biBHU1RfR0xfRElTUExBWShnc3RfZ2xfZGlzcGxheV9lZ2xfbmV3X3dpdGhfZWdsX2Rpc3BsYXko
c2hhcmVkRGlzcGxheS5lZ2xEaXNwbGF5KCkpKTsKICNlbmRpZgotCi0jaWYgUExBVEZPUk0oWDEx
KQogI2lmIFVTRShHTFgpCi0gICAgaWYgKGlzPFBsYXRmb3JtRGlzcGxheVgxMT4oc2hhcmVkRGlz
cGxheSkpCisgICAgaWYgKGlzPFBsYXRmb3JtRGlzcGxheVgxMT4oc2hhcmVkRGlzcGxheSkgJiYg
Z2xQbGF0Zm9ybSA9PSBHU1RfR0xfUExBVEZPUk1fR0xYKQogICAgICAgICByZXR1cm4gR1NUX0dM
X0RJU1BMQVkoZ3N0X2dsX2Rpc3BsYXlfeDExX25ld193aXRoX2Rpc3BsYXkoZG93bmNhc3Q8UGxh
dGZvcm1EaXNwbGF5WDExPihzaGFyZWREaXNwbGF5KS5uYXRpdmUoKSkpOwotI2VsaWYgVVNFKEVH
TCkKLSAgICBpZiAoaXM8UGxhdGZvcm1EaXNwbGF5WDExPihzaGFyZWREaXNwbGF5KSkKLSAgICAg
ICAgcmV0dXJuIEdTVF9HTF9ESVNQTEFZKGdzdF9nbF9kaXNwbGF5X2VnbF9uZXdfd2l0aF9lZ2xf
ZGlzcGxheShkb3duY2FzdDxQbGF0Zm9ybURpc3BsYXlYMTE+KHNoYXJlZERpc3BsYXkpLmVnbERp
c3BsYXkoKSkpOwotI2VuZGlmCi0jZW5kaWYKLQotI2lmIFBMQVRGT1JNKFdBWUxBTkQpCi0gICAg
aWYgKGlzPFBsYXRmb3JtRGlzcGxheVdheWxhbmQ+KHNoYXJlZERpc3BsYXkpKQotICAgICAgICBy
ZXR1cm4gR1NUX0dMX0RJU1BMQVkoZ3N0X2dsX2Rpc3BsYXlfZWdsX25ld193aXRoX2VnbF9kaXNw
bGF5KGRvd25jYXN0PFBsYXRmb3JtRGlzcGxheVdheWxhbmQ+KHNoYXJlZERpc3BsYXkpLmVnbERp
c3BsYXkoKSkpOwogI2VuZGlmCiAKICAgICByZXR1cm4gbnVsbHB0cjsKQEAgLTk0LDE2ICs4Nywx
NiBAQCBib29sIFBsYXRmb3JtRGlzcGxheTo6dHJ5RW5zdXJlR3N0R0xDb250ZXh0KCkgY29uc3QK
ICAgICBhdXRvKiBzaGFyZWRDb250ZXh0ID0gY29uc3RfY2FzdDxQbGF0Zm9ybURpc3BsYXkqPih0
aGlzKS0+c2hhcmluZ0dMQ29udGV4dCgpOwogICAgIGlmICghc2hhcmVkQ29udGV4dCkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOworCiAgICAgR0NHTENvbnRleHQgY29udGV4dEhhbmRsZSA9IHNoYXJl
ZENvbnRleHQtPnBsYXRmb3JtQ29udGV4dCgpOwogICAgIGlmICghY29udGV4dEhhbmRsZSkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgbV9nc3RHTERpc3BsYXkgPSBhZG9wdEdSZWYoY3Jl
YXRlR3N0R0xEaXNwbGF5KCp0aGlzKSk7CisgICAgR3N0R0xQbGF0Zm9ybSBnbFBsYXRmb3JtID0g
c2hhcmVkQ29udGV4dC0+aXNFR0xDb250ZXh0KCkgPyBHU1RfR0xfUExBVEZPUk1fRUdMIDogR1NU
X0dMX1BMQVRGT1JNX0dMWDsKKyAgICBtX2dzdEdMRGlzcGxheSA9IGFkb3B0R1JlZihjcmVhdGVH
c3RHTERpc3BsYXkoKnRoaXMsIGdsUGxhdGZvcm0pKTsKICAgICBpZiAoIW1fZ3N0R0xEaXNwbGF5
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBHc3RHTFBsYXRmb3JtIGdsUGxhdGZvcm0g
PSBzaGFyZWRDb250ZXh0LT5pc0VHTENvbnRleHQoKSA/IEdTVF9HTF9QTEFURk9STV9FR0wgOiBH
U1RfR0xfUExBVEZPUk1fR0xYOwotCiAgICAgbV9nc3RHTENvbnRleHQgPSBhZG9wdEdSZWYoZ3N0
X2dsX2NvbnRleHRfbmV3X3dyYXBwZWQobV9nc3RHTERpc3BsYXkuZ2V0KCksIHJlaW50ZXJwcmV0
X2Nhc3Q8Z3VpbnRwdHI+KGNvbnRleHRIYW5kbGUpLCBnbFBsYXRmb3JtLCBnbEFQSSkpOwogCiAg
ICAgLy8gQWN0aXZhdGUgYW5kIGZpbGwgdGhlIEdTdHJlYW1lciB3cmFwcGVkIGNvbnRleHQgd2l0
aCB0aGUgV2Via2l0J3Mgc2hhcmVkIG9uZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9nbGliL1dlYktpdFByb3RvY29sSGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRQcm90b2NvbEhhbmRsZXIuY3BwCmluZGV4IGY0MzE4
ZGUyOWEyMi4uYjhiYjEwZGQ0YTQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvZ2xpYi9XZWJLaXRQcm90b2NvbEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFByb3RvY29sSGFuZGxlci5jcHAKQEAgLTE0MSwzOSAr
MTQxLDIxIEBAIHN0YXRpYyBib29sIHdlYkdMRW5hYmxlZChXZWJLaXRVUklTY2hlbWVSZXF1ZXN0
KiByZXF1ZXN0KQogICAgIHJldHVybiB3ZWJraXRfc2V0dGluZ3NfZ2V0X2VuYWJsZV93ZWJnbCh3
ZWJraXRfd2ViX3ZpZXdfZ2V0X3NldHRpbmdzKHdlYlZpZXcpKTsKIH0KIAotc3RhdGljIGNvbnN0
IGNoYXIqIG9wZW5HTEFQSSgpCitzdGF0aWMgY29uc3QgY2hhciogb3BlbkdMQVBJKGJvb2wgaXNF
R0wpCiB7CiAjaWYgVVNFKExJQkVQT1hZKQogICAgIGlmIChlcG94eV9pc19kZXNrdG9wX2dsKCkp
CiAgICAgICAgIHJldHVybiAiT3BlbkdMIChsaWJlcG94eSkiOwogICAgIHJldHVybiAiT3BlbkdM
IEVTIDIgKGxpYmVwb3h5KSI7CiAjZWxzZQotI2lmIFVTRShHTFgpCi0gICAgaWYgKFBsYXRmb3Jt
RGlzcGxheTo6c2hhcmVkRGlzcGxheSgpLnR5cGUoKSA9PSBQbGF0Zm9ybURpc3BsYXk6OlR5cGU6
OlgxMSkKLSAgICAgICAgcmV0dXJuICJPcGVuR0wiOwotI2VuZGlmCiAjaWYgVVNFKEVHTCkKKyAg
ICBpZiAoaXNFR0wpIHsKICNpZiBVU0UoT1BFTkdMX0VTKQotICAgIHJldHVybiAiT3BlbkdMIEVT
IDIiOwotI2Vsc2UKLSAgICByZXR1cm4gIk9wZW5HTCI7Ci0jZW5kaWYKLSNlbmRpZgotI2VuZGlm
Ci0gICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKLX0KLQotc3RhdGljIGNvbnN0IGNo
YXIqIG5hdGl2ZUludGVyZmFjZSgpCi17Ci0jaWYgUExBVEZPUk0oR1RLKQotI2lmIFVTRShHTFgp
Ci0gICAgaWYgKFBsYXRmb3JtRGlzcGxheTo6c2hhcmVkRGlzcGxheSgpLnR5cGUoKSA9PSBQbGF0
Zm9ybURpc3BsYXk6OlR5cGU6OlgxMSkKLSAgICAgICAgcmV0dXJuICJHTFgiOworICAgICAgICBy
ZXR1cm4gIk9wZW5HTCBFUyAyIjsKICNlbmRpZgorICAgIH0KICNlbmRpZgotCi0jaWYgVVNFKEVH
TCkKLSAgICByZXR1cm4gIkVHTCI7CisgICAgcmV0dXJuICJPcGVuR0wiOwogI2VuZGlmCiAgICAg
UkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0KQEAgLTM3MCwyMyArMzUyLDI3IEBAIHZv
aWQgV2ViS2l0UHJvdG9jb2xIYW5kbGVyOjpoYW5kbGVHUFUoV2ViS2l0VVJJU2NoZW1lUmVxdWVz
dCogcmVxdWVzdCkKICAgICAgICAgIiAgPHRkPiVzPC90ZD4iCiAgICAgICAgICIgPC90Ym9keT48
L3RyPiIsCiAgICAgICAgIHdlYkdMRW5hYmxlZChyZXF1ZXN0KSA/ICJZZXMiIDogIk5vIik7Cisj
ZW5kaWYKIAorI2lmIFVTRShFR0wpIHx8IFVTRShHTFgpCiAgICAgYXV0byBnbENvbnRleHQgPSBH
TENvbnRleHQ6OmNyZWF0ZU9mZnNjcmVlbkNvbnRleHQoKTsKICAgICBnbENvbnRleHQtPm1ha2VD
b250ZXh0Q3VycmVudCgpOwogCisgICAgYm9vbCBpc0VHTCA9IGdsQ29udGV4dC0+aXNFR0xDb250
ZXh0KCk7CisKICAgICBnX3N0cmluZ19hcHBlbmRfcHJpbnRmKGh0bWwsCiAgICAgICAgICIgPHRi
b2R5Pjx0cj4iCiAgICAgICAgICIgIDx0ZD48ZGl2IGNsYXNzPVwidGl0bGVuYW1lXCI+QVBJPC9k
aXY+PC90ZD4iCiAgICAgICAgICIgIDx0ZD4lczwvdGQ+IgogICAgICAgICAiIDwvdGJvZHk+PC90
cj4iLAotICAgICAgICBvcGVuR0xBUEkoKSk7CisgICAgICAgIG9wZW5HTEFQSShpc0VHTCkpOwog
CiAgICAgZ19zdHJpbmdfYXBwZW5kX3ByaW50ZihodG1sLAogICAgICAgICAiIDx0Ym9keT48dHI+
IgogICAgICAgICAiICA8dGQ+PGRpdiBjbGFzcz1cInRpdGxlbmFtZVwiPk5hdGl2ZSBpbnRlcmZh
Y2U8L2Rpdj48L3RkPiIKICAgICAgICAgIiAgPHRkPiVzPC90ZD4iCiAgICAgICAgICIgPC90Ym9k
eT48L3RyPiIsCi0gICAgICAgIG5hdGl2ZUludGVyZmFjZSgpKTsKKyAgICAgICAgaXNFR0wgPyAi
RUdMIiA6ICJHTFgiKTsKIAogICAgIGdfc3RyaW5nX2FwcGVuZF9wcmludGYoaHRtbCwKICAgICAg
ICAgIiA8dGJvZHk+PHRyPiIKQEAgLTQ0MSwxMCArNDI3LDggQEAgdm9pZCBXZWJLaXRQcm90b2Nv
bEhhbmRsZXI6OmhhbmRsZUdQVShXZWJLaXRVUklTY2hlbWVSZXF1ZXN0KiByZXF1ZXN0KQogICAg
IGdfc3RyaW5nX2ZyZWUoZXh0ZW5zaW9ucywgVFJVRSk7CiAjZW5kaWYKIAotICAgIGJvb2wgaXNH
TFggPSBmYWxzZTsKICNpZiBVU0UoR0xYKQotICAgIGlmIChQbGF0Zm9ybURpc3BsYXk6OnNoYXJl
ZERpc3BsYXkoKS50eXBlKCkgPT0gUGxhdGZvcm1EaXNwbGF5OjpUeXBlOjpYMTEpIHsKLSAgICAg
ICAgaXNHTFggPSB0cnVlOworICAgIGlmIChQbGF0Zm9ybURpc3BsYXk6OnNoYXJlZERpc3BsYXko
KS50eXBlKCkgPT0gUGxhdGZvcm1EaXNwbGF5OjpUeXBlOjpYMTEgJiYgIWlzRUdMKSB7CiAgICAg
ICAgIGF1dG8qIHgxMURpc3BsYXkgPSBkb3duY2FzdDxQbGF0Zm9ybURpc3BsYXlYMTE+KFBsYXRm
b3JtRGlzcGxheTo6c2hhcmVkRGlzcGxheSgpKS5uYXRpdmUoKTsKIAogICAgICAgICBnX3N0cmlu
Z19hcHBlbmRfcHJpbnRmKGh0bWwsCkBAIC00NzEsNyArNDU1LDcgQEAgdm9pZCBXZWJLaXRQcm90
b2NvbEhhbmRsZXI6OmhhbmRsZUdQVShXZWJLaXRVUklTY2hlbWVSZXF1ZXN0KiByZXF1ZXN0KQog
I2VuZGlmCiAKICNpZiBVU0UoRUdMKQotICAgIGlmICghaXNHTFgpIHsKKyAgICBpZiAoaXNFR0wp
IHsKICAgICAgICAgYXV0byBlZ2xEaXNwbGF5ID0gUGxhdGZvcm1EaXNwbGF5OjpzaGFyZWREaXNw
bGF5KCkuZWdsRGlzcGxheSgpOwogCiAgICAgICAgIGdfc3RyaW5nX2FwcGVuZF9wcmludGYoaHRt
bCwKQEAgLTQ5Nyw3ICs0ODEsNyBAQCB2b2lkIFdlYktpdFByb3RvY29sSGFuZGxlcjo6aGFuZGxl
R1BVKFdlYktpdFVSSVNjaGVtZVJlcXVlc3QqIHJlcXVlc3QpCiAgICAgICAgICAgICBlZ2xRdWVy
eVN0cmluZyhlZ2xEaXNwbGF5LCBFR0xfRVhURU5TSU9OUykpOwogICAgIH0KICNlbmRpZgotI2Vu
ZGlmIC8vIEVOQUJMRShXRUJHTCkKKyNlbmRpZiAvLyBVU0UoRUdMKSB8fCBVU0UoR0xYKQogCiAg
ICAgZ19zdHJpbmdfYXBwZW5kKGh0bWwsICI8dGFibGU+Iik7CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>