<?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>239107</bug_id>
          
          <creation_ts>2022-04-11 22:20:25 -0700</creation_ts>
          <short_desc>REGRESSION(r282117): RemoteRenderingBackend::willDestroyImageBuffer() can crash if the RemoteRenderingBackend has already been destroyed</short_desc>
          <delta_ts>2022-05-01 22:47:31 -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>WebKit Process Model</component>
          <version>Safari Technology Preview</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=229906</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Said Abou-Hallawa">sabouhallawa</assigned_to>
          <cc>darin</cc>
    
    <cc>kkinnunen</cc>
    
    <cc>sabouhallawa</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1860559</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2022-04-11 22:20:25 -0700</bug_when>
    <thetext>I&apos;m seeing occasional crashes when running fast/scrolling/ios/autoscroll-input-when-very-zoomed.html in the iOS simulator (via Xcode).

It looks like the RemoteRenderingBackend has been destroyed by the time a RemoteImageBuffer is destroyed on the main thread:

(lldb) bt
* thread #1, queue = &apos;com.apple.main-thread&apos;, stop reason = EXC_BAD_ACCESS (code=EXC_I386_GPFLT)
  * frame #0: 0x000000016933868d WebCore`bool std::__1::__cxx_atomic_compare_exchange_weak&lt;unsigned char&gt;(__a=0x6e6f697461657243, __expected=&quot;&quot;, __value=&apos;\x01&apos;, __success=acquire, __failure=acquire) at atomic:1050:12
    frame #1: 0x0000000169338452 WebCore`std::__1::__atomic_base&lt;unsigned char, false&gt;::compare_exchange_weak(this=0x6e6f697461657243, __e=0x00007ff7b239e83f, __d=&apos;\x01&apos;, __m=acquire) at atomic:1681:17
    frame #2: 0x00000001693383fa WebCore`WTF::Atomic&lt;unsigned char&gt;::compareExchangeWeak(this=0x6e6f697461657243, expected=&apos;\0&apos;, desired=&apos;\x01&apos;, order=acquire) at Atomics.h:89:22
    frame #3: 0x00000001693383b1 WebCore`WTF::LockAlgorithm&lt;unsigned char, (unsigned char)1, (unsigned char)2, WTF::EmptyLockHooks&lt;unsigned char&gt; &gt;::lockFastAssumingZero(lock=0x6e6f697461657243) at LockAlgorithm.h:53:21
    frame #4: 0x0000000169338359 WebCore`WTF::Lock::lock(this=0x6e6f697461657243) at Lock.h:65:13
    frame #5: 0x0000000169338324 WebCore`WTF::Locker&lt;WTF::Lock&gt;::Locker(this=0x00007ff7b239e910, lock=0x6e6f697461657243) at Lock.h:158:16
    frame #6: 0x00000001693378dd WebCore`WTF::Locker&lt;WTF::Lock&gt;::Locker(this=0x00007ff7b239e910, lock=0x6e6f697461657243) at Lock.h:157:5
    frame #7: 0x000000016d97dcd1 WebCore`WebCore::IOSurfacePool::addSurface(this=0x6e6f697461657243, surface=WebCore::IOSurface @ 0x00007f9cecc09e00) at IOSurfacePool.cpp:180:12
    frame #8: 0x000000016b494848 WebCore`WebCore::IOSurface::moveToPool(surface=WebCore::IOSurface @ 0x00007f9cecc09e00, pool=0x6e6f697461657243) at IOSurface.mm:102:15
    frame #9: 0x000000016d9a0269 WebCore`WebCore::ImageBufferIOSurfaceBackend::releaseBufferToPool(this=0x00007f9cebf04530, pool=0x6e6f697461657243) at ImageBufferIOSurfaceBackend.cpp:267:5
    frame #10: 0x0000000128112272 WebKit`WebCore::ConcreteImageBuffer&lt;WebKit::ImageBufferShareableMappedIOSurfaceBackend&gt;::releaseBufferToPool(this=0x00007f9cebf05270, pool=0x6e6f697461657243) at ConcreteImageBuffer.h:333:22
    frame #11: 0x00000001280fdef2 WebKit`WebKit::RemoteRenderingBackend::willDestroyImageBuffer(this=0x00007f9cec808e90, imageBuffer=0x00007f9cebf05270) at RemoteRenderingBackend.cpp:175:21
    frame #12: 0x0000000128113708 WebKit`WebKit::RemoteImageBuffer&lt;WebKit::ImageBufferShareableMappedIOSurfaceBackend&gt;::~RemoteImageBuffer(this=0x00007f9cebf05270) at RemoteImageBuffer.h:76:34
    frame #13: 0x0000000128111c95 WebKit`WebKit::RemoteImageBuffer&lt;WebKit::ImageBufferShareableMappedIOSurfaceBackend&gt;::~RemoteImageBuffer(this=0x00007f9cebf05270) at RemoteImageBuffer.h:70:5
    frame #14: 0x0000000128111cb9 WebKit`WebKit::RemoteImageBuffer&lt;WebKit::ImageBufferShareableMappedIOSurfaceBackend&gt;::~RemoteImageBuffer(this=0x00007f9cebf05270) at RemoteImageBuffer.h:70:5
    frame #15: 0x0000000127d7580f WebKit`WTF::ThreadSafeRefCounted&lt;WebCore::ImageBuffer, (WTF::DestructionThread)1&gt;::deref(this=0x00007f9cfbfb2408) const::&apos;lambda&apos;()::operator()() const at ThreadSafeRefCounted.h:117:13
    frame #16: 0x0000000127d757b9 WebKit`WTF::Detail::CallableWrapper&lt;WTF::ThreadSafeRefCounted&lt;WebCore::ImageBuffer, (WTF::DestructionThread)1&gt;::deref() const::&apos;lambda&apos;(), void&gt;::call(this=0x00007f9cfbfb2400) at Function.h:53:39
    frame #17: 0x0000000144647ce2 JavaScriptCore`WTF::Function&lt;void ()&gt;::operator(this=0x00007ff7b239ead0)() const at Function.h:82:35
    frame #18: 0x00000001446d1bc2 JavaScriptCore`WTF::RunLoop::performWork(this=0x00007f9cfbfb58b0) at RunLoop.cpp:133:9
    frame #19: 0x00000001446d54ee JavaScriptCore`WTF::RunLoop::performWork(context=0x00007f9cfbfb58b0) at RunLoopCF.cpp:46:37
    frame #20: 0x000000010e3b5833 CoreFoundation`__CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17
    frame #21: 0x000000010e3b572b CoreFoundation`__CFRunLoopDoSource0 + 180
    frame #22: 0x000000010e3b4bf8 CoreFoundation`__CFRunLoopDoSources0 + 242
    frame #23: 0x000000010e3af2f4 CoreFoundation`__CFRunLoopRun + 871
    frame #24: 0x000000010e3aea90 CoreFoundation`CFRunLoopRunSpecific + 562
    frame #25: 0x000000010ecfee31 Foundation`-[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 213
    frame #26: 0x000000010ecff04f Foundation`-[NSRunLoop(NSRunLoop) run] + 76
    frame #27: 0x000000010f979feb libxpc.dylib`_xpc_objc_main + 440
    frame #28: 0x000000010f97bfd4 libxpc.dylib`xpc_main + 122
    frame #29: 0x000000012819aeda WebKit`WebKit::XPCServiceMain((null)=1, (null)=0x00007ff7b239fcd8) at XPCServiceMain.mm:221:5
    frame #30: 0x000000012a14e99b WebKit`WKXPCServiceMain(argc=1, argv=0x00007ff7b239fcd8) at WKMain.mm:35:12
    frame #31: 0x000000010db5ed32 com.apple.WebKit.GPU.Development`main(argc=1, argv=0x00007ff7b239fcd8) at AuxiliaryProcessMain.cpp:30:12
    frame #32: 0x000000010dd74f21 dyld_sim`start_sim + 10
    frame #33: 0x000000011299b50e dyld`start + 462
(lldb)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1860561</commentid>
    <comment_count>1</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2022-04-11 22:25:36 -0700</bug_when>
    <thetext>I confirmed with logging that the RemoteRenderingBackend can get destroyed under GPUConnectionToWebProcess::didClose() before the callOnMainThread() of the ThreadSafeRefcounted image buffers have run.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1860562</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-04-11 22:25:51 -0700</bug_when>
    <thetext>&lt;rdar://problem/91608298&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1860982</commentid>
    <comment_count>3</comment_count>
      <attachid>457492</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2022-04-12 17:46:28 -0700</bug_when>
    <thetext>Created attachment 457492
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1861012</commentid>
    <comment_count>4</comment_count>
      <attachid>457492</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2022-04-12 20:22:53 -0700</bug_when>
    <thetext>Comment on attachment 457492
Patch

Some other possible approaches here: RemoteImageBuffer could have a RefPtr&lt;RemoteRenderingBackend&gt;. Or, RemoteImageBuffers could have their destruction managed by RemoteRenderingBackend (e.g. put into a set which is emptied on the main thread).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1861062</commentid>
    <comment_count>5</comment_count>
      <attachid>457517</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2022-04-13 02:06:27 -0700</bug_when>
    <thetext>Created attachment 457517
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1861198</commentid>
    <comment_count>6</comment_count>
      <attachid>457552</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2022-04-13 11:58:03 -0700</bug_when>
    <thetext>Created attachment 457552
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1861203</commentid>
    <comment_count>7</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2022-04-13 12:04:26 -0700</bug_when>
    <thetext>(In reply to Simon Fraser (smfr) from comment #4)
&gt; Comment on attachment 457492 [details]
&gt; Patch
&gt; 
&gt; Some other possible approaches here: RemoteImageBuffer could have a
&gt; RefPtr&lt;RemoteRenderingBackend&gt;. Or, RemoteImageBuffers could have their
&gt; destruction managed by RemoteRenderingBackend (e.g. put into a set which is
&gt; emptied on the main thread).

I could not make RemoteImageBuffer hold a WeakPtr&lt;RemoteRenderingBackend&gt; because RemoteImageBuffer is created on the work queue thread while RemoteRenderingBackend is created on the main thread.

And I think I can&apos;t make RemoteImageBuffer hold RefPtr&lt;RemoteRenderingBackend&gt; because this will lead to a cyclic reference and hence a memory leak:

RemoteImageBuffer -&gt; RefPtr&lt;RemoteRenderingBackend&gt; -&gt; RemoteResourceCache -&gt; QualifiedResourceHeap -&gt; Ref&lt;WebCore::ImageBuffer&gt;.

So I took the second approach but I made RemoteResourceCache manages the destruction of its RemoteImageBuffers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1861344</commentid>
    <comment_count>8</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2022-04-13 17:37:04 -0700</bug_when>
    <thetext>This patch causes this crash. It happens because we call RenderingBackend::willDestroyImageBuffer() before the destructor of RemoteImageBuffer is called.

Thread 0 Crashed::   Dispatch queue: com.apple.main-thread
0   WebCore                       	       0x11449f2fa        WebCore::IOSurface::ensureGraphicsContext()
1   WebCore                       	       0x115403a60        WebCore::ImageBufferIOSurfaceBackend::context() const
2   WebKit                        	       0x1076a1d34        WebKit::RemoteImageBuffer&lt;WebKit::ImageBufferShareableMappedIOSurfaceBackend&gt;::~RemoteImageBuffer()
3   WebKit                        	       0x1076a1632        WebKit::RemoteImageBuffer&lt;WebKit::ImageBufferShareableMappedIOSurfaceBackend&gt;::~RemoteImageBuffer()
4   JavaScriptCore                	       0x10cbcaa9c        WTF::RunLoop::performWork()
5   JavaScriptCore                	       0x10cbcb380        WTF::RunLoop::performWork(void*)
6   CoreFoundation                	       0x7fff20369e24     __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 16 (/Library/Caches/com.apple.xbs/Sources/CoreFoundation_Sim/Foundation-1854/CoreFoundation/RunLoop.subproj/CFRunLoop.c:1972)
7   CoreFoundation                	       0x7fff20369d1c     __CFRunLoopDoSource0 + 178 (/Library/Caches/com.apple.xbs/Sources/CoreFoundation_Sim/Foundation-1854/CoreFoundation/RunLoop.subproj/CFRunLoop.c:2016)
8   CoreFoundation                	       0x7fff203691f2     __CFRunLoopDoSources0 + 242 (/Library/Caches/com.apple.xbs/Sources/CoreFoundation_Sim/Foundation-1854/CoreFoundation/RunLoop.subproj/CFRunLoop.c:2053)
9   CoreFoundation                	       0x7fff20363950     __CFRunLoopRun + 874 (/Library/Caches/com.apple.xbs/Sources/CoreFoundation_Sim/Foundation-1854/CoreFoundation/RunLoop.subproj/CFRunLoop.c:2951)
10  CoreFoundation                	       0x7fff20363102     CFRunLoopRunSpecific + 566 (/Library/Caches/com.apple.xbs/Sources/CoreFoundation_Sim/Foundation-1854/CoreFoundation/RunLoop.subproj/CFRunLoop.c:3268)
11  Foundation                    	       0x7fff2081941c     -[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 212 (/Library/Caches/com.apple.xbs/Sources/Foundation_Sim/Foundation-1854/Foundation/Soil.subproj/NSRunLoop.m:373)
12  Foundation                    	       0x7fff20819638     -[NSRunLoop(NSRunLoop) run] + 76 (/Library/Caches/com.apple.xbs/Sources/Foundation_Sim/Foundation-1854/Foundation/Soil.subproj/NSRunLoop.m:398)
13  libxpc.dylib                  	       0x7fff2006705e     _xpc_objc_main + 438 (/Library/Caches/com.apple.xbs/Sources/libxpc_Sim/libxpc-2235.12.1/src/main.m:246)
14  libxpc.dylib                  	       0x7fff20069050     xpc_main + 122 (/Library/Caches/com.apple.xbs/Sources/libxpc_Sim/libxpc-2235.12.1/src/init.c:1187)
15  WebKit                        	       0x1076b94f0        WebKit::XPCServiceMain(int, char const**)
16  dyld_sim                      	       0x104e5fe1e        start_sim + 10 (/Library/Caches/com.apple.xbs/Sources/dyld_Sim/dyld-932.4/dyld/dyldMain.cpp:904)
17                                	       0x1
18                                	       0x1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1861351</commentid>
    <comment_count>9</comment_count>
      <attachid>457582</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2022-04-13 18:13:39 -0700</bug_when>
    <thetext>Created attachment 457582
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1861875</commentid>
    <comment_count>10</comment_count>
      <attachid>457713</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2022-04-15 12:20:52 -0700</bug_when>
    <thetext>Created attachment 457713
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1861906</commentid>
    <comment_count>11</comment_count>
      <attachid>457713</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2022-04-15 14:04:30 -0700</bug_when>
    <thetext>Comment on attachment 457713
Patch

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

&gt; Source/WebKit/GPUProcess/graphics/RemoteResourceCache.cpp:97
&gt; +    // Unwind the context&apos;s state stack before destruction, since calls to restore may not have
&gt; +    // been flushed yet, or the web process may have terminated.
&gt; +    auto&amp; context = imageBuffer.context();
&gt; +    while (context.stackSize())
&gt; +        context.restore();

It&apos;s weird for this code, which uses the ImageBuffer&apos;s GraphicsContext, to live here. This should be moved into an ImageBuffer function.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1862187</commentid>
    <comment_count>12</comment_count>
      <attachid>457786</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2022-04-17 17:54:50 -0700</bug_when>
    <thetext>Created attachment 457786
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1862274</commentid>
    <comment_count>13</comment_count>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2022-04-18 11:43:41 -0700</bug_when>
    <thetext>I wonder why can we not just store the pool to the ImageBufferBackendIOSurface that uses the pool, and return the iosurface in the destructor?

These approaches seem to tie future development options fairly strongly.

For example, it would be good if the WebGL in the future could use the ImageBuffers from RRB as-is, even though RRB stops using them. With RRB returning the surfaces, it is not possible.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1865573</commentid>
    <comment_count>14</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2022-04-29 16:24:56 -0700</bug_when>
    <thetext>The RemoteRenderingBackend::m_ioSurfacePool is a std::unique_ptr.

I think we can not make it a WeakPtr&lt;IOSurfacePool&gt; because RemoteImageBuffer is created on the work queue thread while m_ioSurfacePool is created on the main thread.

But I think I can make it RefPtr&lt;IOSurfacePool&gt;. There should not a cyclic reference in this case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1865595</commentid>
    <comment_count>15</comment_count>
      <attachid>458621</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2022-04-29 18:10:21 -0700</bug_when>
    <thetext>Created attachment 458621
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1865621</commentid>
    <comment_count>16</comment_count>
      <attachid>458631</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2022-04-29 22:53:37 -0700</bug_when>
    <thetext>Created attachment 458631
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1865687</commentid>
    <comment_count>17</comment_count>
      <attachid>458631</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2022-04-30 21:26:45 -0700</bug_when>
    <thetext>Comment on attachment 458631
Patch

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

I can’t exactly follow whether this changes any whether cases join the pool or not—I understand the new timing, but hard to follow the logic in the old code to see which would and would not end up releasing to the pool—but I’m guessing it’s not changed here.

&gt; Source/WebCore/platform/graphics/cg/IOSurfacePool.cpp:66
&gt; +    return adoptRef(*new IOSurfacePool());

Not changed: Normally we’d omit the () after IOSurfacePool here.

&gt; Source/WebCore/platform/graphics/cg/IOSurfacePool.h:38
&gt; +#include &lt;wtf/RefCounted.h&gt;

I think we’d want to include ThreadSafeRefCounted.h, since that’s what we’re using, not RefCounted. But apparently it’s already included by something else, so maybe we don’t need to add an include at all?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1865754</commentid>
    <comment_count>18</comment_count>
      <attachid>458658</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2022-05-01 19:55:43 -0700</bug_when>
    <thetext>Created attachment 458658
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1865755</commentid>
    <comment_count>19</comment_count>
      <attachid>458631</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2022-05-01 20:30:41 -0700</bug_when>
    <thetext>Comment on attachment 458631
Patch

This patch changes the timing of returning the IOSurface to the pool. In the old code, we used to return it in two separate places:

1. RemoteImageBuffer was returning the IOSurface of its backend in the RemoteImageBuffer destructor via the RemoteRenderingBackend only if its rendering purpose is RenderingPurpose::LayerBacking.

2. RemoteLayerBackingStore was returning the IOSurface of its Buffer in RemoteLayerBackingStore::Buffer::discard() before setting the imageBuffer to nullptr.

With this patch if an ImageBuffer is needed from the IOSurfacePool, the IOSurfacePool will be passed to the constructor and will be held till the destructor releases the IOSurface to the pool.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1865767</commentid>
    <comment_count>20</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-05-01 22:47:29 -0700</bug_when>
    <thetext>Committed r293659 (250163@main): &lt;https://commits.webkit.org/250163@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 458658.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>457492</attachid>
            <date>2022-04-12 17:46:28 -0700</date>
            <delta_ts>2022-04-12 18:40:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-239107-20220412174627.patch</filename>
            <type>text/plain</type>
            <size>4026</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyNzgyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGMwMjU4NzhjMjMyZjc4OTA4
ZTIyMjEyNTIxNjAxM2YyYTY3MWQ4YmYuLmRkNTg4MTAyOWRkZmIxNGJmNTlkOWM3YzFmODhkZTI3
OTM1YzJlM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMjItMDQtMTIgIFNhaWQgQWJv
dS1IYWxsYXdhICA8c2FpZEBhcHBsZS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lPTihyMjgyMTE3
KTogUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6d2lsbERlc3Ryb3lJbWFnZUJ1ZmZlcigpIGNhbiBj
cmFzaCBpZiB0aGUgUmVtb3RlUmVuZGVyaW5nQmFja2VuZCBoYXMgYWxyZWFkeSBiZWVuIGRlc3Ry
b3llZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM5
MTA3CisgICAgICAgIHJkYXI6Ly85MTYwODI5OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEFmdGVyIHIyODIxMTcsIHRoZSBhc3N1bXB0aW9uIHRoYXQg
UmVtb3RlUmVuZGVyaW5nQmFja2VuZCB3aWxsIG91dGxpdmUKKyAgICAgICAgYWxsIGl0cyBSZW1v
dGVJbWFnZUJ1ZmZlcnMgYmVjYW1lIHdyb25nLiBUaGUgUmVtb3RlUmVuZGVyaW5nQmFja2VuZCBj
YW4KKyAgICAgICAgZ2V0IGRlc3Ryb3llZCB1bmRlciBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNz
OjpkaWRDbG9zZSgpIGJlZm9yZSB0aGUKKyAgICAgICAgY2FsbE9uTWFpblRocmVhZCgpIG9mIHRo
ZSBUaHJlYWRTYWZlUmVmY291bnRlZCBpbWFnZSBidWZmZXJzIGhhdmUgcnVuLgorCisgICAgICAg
IEluc3RlYWQgb2YgaGF2aW5nIFJlbW90ZUltYWdlQnVmZmVyIGhvbGQgUmVtb3RlUmVuZGVyaW5n
QmFja2VuZCYsIGl0CisgICAgICAgIHNob3VsZCBob2xkIFdlYWtQdHI8UmVtb3RlUmVuZGVyaW5n
QmFja2VuZD4uCisKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVm
ZmVyLmg6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUltYWdlQnVmZmVyOjp+UmVtb3RlSW1hZ2VC
dWZmZXIpOgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFj
a2VuZC5oOgorCiAyMDIyLTA0LTEyICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgog
CiAgICAgICAgIExlYWsgb2YgTWVkaWFTb3VyY2VQcml2YXRlQVZGT2JqQyBhbmQgUmVtb3RlTWVk
aWFTb3VyY2VQcm94eQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBo
aWNzL1JlbW90ZUltYWdlQnVmZmVyLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhp
Y3MvUmVtb3RlSW1hZ2VCdWZmZXIuaAppbmRleCAzYzRiZWRhZTU5OWRkYzNkZGE3ZjE2YjIzMDIw
NTRkOTAwMjc1MjdhLi45N2IxMjgzM2ZhY2NhM2IxMmQ3YjIzZmFjMTJiZGU1NzM2NTk4NWEyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VC
dWZmZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1h
Z2VCdWZmZXIuaApAQCAtNjMsNyArNjMsOCBAQCBwdWJsaWM6CiAgICAgICAgICwgbV9yZW5kZXJp
bmdSZXNvdXJjZUlkZW50aWZpZXIocmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKQogICAgICAg
ICAsIG1fcmVtb3RlRGlzcGxheUxpc3QoeyBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpjcmVh
dGUoKnRoaXMsIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciwgcmVuZGVyaW5nUmVzb3VyY2VJ
ZGVudGlmaWVyLnByb2Nlc3NJZGVudGlmaWVyKCksIHJlbW90ZVJlbmRlcmluZ0JhY2tlbmQpIH0p
CiAgICAgewotICAgICAgICBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuZGlkQ3JlYXRlSW1hZ2VC
dWZmZXJCYWNrZW5kKG1fYmFja2VuZC0+Y3JlYXRlQmFja2VuZEhhbmRsZSgpLCByZW5kZXJpbmdS
ZXNvdXJjZUlkZW50aWZpZXIsICptX3JlbW90ZURpc3BsYXlMaXN0LmdldCgpKTsKKyAgICAgICAg
QVNTRVJUKG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZCk7CisgICAgICAgIG1fcmVtb3RlUmVuZGVy
aW5nQmFja2VuZC0+ZGlkQ3JlYXRlSW1hZ2VCdWZmZXJCYWNrZW5kKG1fYmFja2VuZC0+Y3JlYXRl
QmFja2VuZEhhbmRsZSgpLCByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIsICptX3JlbW90ZURp
c3BsYXlMaXN0LmdldCgpKTsKICAgICB9CiAKICAgICB+UmVtb3RlSW1hZ2VCdWZmZXIoKQpAQCAt
NzMsNyArNzQsOCBAQCBwdWJsaWM6CiAgICAgICAgIHdoaWxlIChjb250ZXh0KCkuc3RhY2tTaXpl
KCkpCiAgICAgICAgICAgICBjb250ZXh0KCkucmVzdG9yZSgpOwogCi0gICAgICAgIG1fcmVtb3Rl
UmVuZGVyaW5nQmFja2VuZC53aWxsRGVzdHJveUltYWdlQnVmZmVyKCp0aGlzKTsKKyAgICAgICAg
aWYgKG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZCkKKyAgICAgICAgICAgIG1fcmVtb3RlUmVuZGVy
aW5nQmFja2VuZC0+d2lsbERlc3Ryb3lJbWFnZUJ1ZmZlcigqdGhpcyk7CiAgICAgfQogCiAgICAg
dm9pZCBzZXRPd25lcnNoaXBJZGVudGl0eShjb25zdCBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpdHkm
IHJlc291cmNlT3duZXIpCkBAIC04NSw3ICs4Nyw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAg
ZnJpZW5kIGNsYXNzIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ7CiAKLSAgICBSZW1vdGVSZW5kZXJp
bmdCYWNrZW5kJiBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmQ7CisgICAgV2Vha1B0cjxSZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kPiBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmQ7CiAgICAgUXVhbGlmaWVk
UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIG1fcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVy
OwogICAgIElQQzo6U2NvcGVkQWN0aXZlTWVzc2FnZVJlY2VpdmVRdWV1ZTxSZW1vdGVEaXNwbGF5
TGlzdFJlY29yZGVyPiBtX3JlbW90ZURpc3BsYXlMaXN0OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmggYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5o
CmluZGV4IDIzODhjY2VlZGU5Y2NmYmQ5MGEzYmZlNDhhZjQyNmU3ZmEwOTNkNjcuLjQ3OGM3YTU1
MzQ1Y2VmZTRkOWMxODkzYzliZjc5ZTczN2RlZTliZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmgKKysrIGIvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuaApA
QCAtNzYsNyArNzYsNyBAQCBzdHJ1Y3QgUHJlcGFyZUJhY2tpbmdTdG9yZUJ1ZmZlcnNPdXRwdXRE
YXRhOwogc3RydWN0IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRDcmVhdGlvblBhcmFtZXRlcnM7CiBl
bnVtIGNsYXNzIFN3YXBCdWZmZXJzRGlzcGxheVJlcXVpcmVtZW50IDogdWludDhfdDsKIAotY2xh
c3MgUmVtb3RlUmVuZGVyaW5nQmFja2VuZCA6IHByaXZhdGUgSVBDOjpNZXNzYWdlU2VuZGVyLCBw
dWJsaWMgSVBDOjpTdHJlYW1NZXNzYWdlUmVjZWl2ZXIgeworY2xhc3MgUmVtb3RlUmVuZGVyaW5n
QmFja2VuZCA6IHByaXZhdGUgSVBDOjpNZXNzYWdlU2VuZGVyLCBwdWJsaWMgSVBDOjpTdHJlYW1N
ZXNzYWdlUmVjZWl2ZXIsIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxSZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kPiB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxSZW1vdGVSZW5kZXJpbmdCYWNrZW5kPiBj
cmVhdGUoR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYsIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRD
cmVhdGlvblBhcmFtZXRlcnMmJiwgSVBDOjpTdHJlYW1Db25uZWN0aW9uQnVmZmVyJiYpOwogICAg
IHZpcnR1YWwgflJlbW90ZVJlbmRlcmluZ0JhY2tlbmQoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>457517</attachid>
            <date>2022-04-13 02:06:27 -0700</date>
            <delta_ts>2022-04-13 02:12:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-239107-20220413020626.patch</filename>
            <type>text/plain</type>
            <size>11680</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyNzgyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGMwMjU4NzhjMjMyZjc4OTA4
ZTIyMjEyNTIxNjAxM2YyYTY3MWQ4YmYuLjE2ZDZhYTIwYmYyZjlmZmY5NWQ2MmI1MWRmZGRmYmJj
Y2QwZjZkNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzcgQEAKKzIwMjItMDQtMTMgIFNhaWQgQWJv
dS1IYWxsYXdhICA8c2FpZEBhcHBsZS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lPTihyMjgyMTE3
KTogUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6d2lsbERlc3Ryb3lJbWFnZUJ1ZmZlcigpIGNhbiBj
cmFzaCBpZiB0aGUgUmVtb3RlUmVuZGVyaW5nQmFja2VuZCBoYXMgYWxyZWFkeSBiZWVuIGRlc3Ry
b3llZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM5
MTA3CisgICAgICAgIHJkYXI6Ly85MTYwODI5OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEFmdGVyIHIyODIxMTcsIHRoZSBhc3N1bXB0aW9uIHRoYXQg
UmVtb3RlUmVuZGVyaW5nQmFja2VuZCB3aWxsIG91dGxpdmUKKyAgICAgICAgYWxsIGl0cyBSZW1v
dGVJbWFnZUJ1ZmZlcnMgYmVjYW1lIHdyb25nLiBUaGUgUmVtb3RlUmVuZGVyaW5nQmFja2VuZCBj
YW4KKyAgICAgICAgZ2V0IGRlc3Ryb3llZCB1bmRlciBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNz
OjpkaWRDbG9zZSgpIGJlZm9yZSB0aGUKKyAgICAgICAgY2FsbE9uTWFpblRocmVhZCgpIG9mIHRo
ZSBUaHJlYWRTYWZlUmVmY291bnRlZCBpbWFnZSBidWZmZXJzIGhhdmUgcnVuLgorCisgICAgICAg
IEluc3RlYWQgb2YgaGF2aW5nIFJlbW90ZUltYWdlQnVmZmVyIGhvbGQgUmVtb3RlUmVuZGVyaW5n
QmFja2VuZCYsIHdlIGFyZQorICAgICAgICBnb2luZyB0byBoYXZlIFJlbW90ZVJlc291cmNlQ2Fj
aGUgaG9sZCB0aGlzIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQmLiBJdCAKKyAgICAgICAgd2lsbCBt
YW5hZ2UgY2FsbGluZyBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjp3aWxsRGVzdHJveUltYWdlQnVm
ZmVyKCkgCisgICAgICAgIGJlZm9yZSByZWxlYXNpbmcgYW55IFJlbW90ZUltYWdlQnVmZmVyLgor
CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9RdWFsaWZpZWRSZXNvdXJjZUhlYXAuaDoK
KyAgICAgICAgKFdlYktpdDo6UXVhbGlmaWVkUmVzb3VyY2VIZWFwOjogY29uc3QpOgorICAgICAg
ICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXIuaDoKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlSW1hZ2VCdWZmZXI6OlJlbW90ZUltYWdlQnVmZmVyKToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlSW1hZ2VCdWZmZXI6On5SZW1vdGVJbWFnZUJ1ZmZlcik6CisgICAgICAgICog
R1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZCk6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OnN0b3BMaXN0ZW5pbmdG
b3JJUEMpOgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNo
ZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlc291cmNlQ2FjaGU6OlJlbW90ZVJlc291
cmNlQ2FjaGUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZXNvdXJjZUNhY2hlOjp+UmVtb3Rl
UmVzb3VyY2VDYWNoZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlc291cmNlQ2FjaGU6Om9w
ZXJhdG9yPSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlc291cmNlQ2FjaGU6OnJlbGVhc2VS
ZW1vdGVSZXNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlc291cmNlQ2FjaGU6Ondp
bGxEZXN0cm95QWxsSW1hZ2VCdWZmZXJzKToKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNz
L1JlbW90ZVJlc291cmNlQ2FjaGUuaDoKKwogMjAyMi0wNC0xMiAgSmVyIE5vYmxlICA8amVyLm5v
YmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBMZWFrIG9mIE1lZGlhU291cmNlUHJpdmF0ZUFWRk9i
akMgYW5kIFJlbW90ZU1lZGlhU291cmNlUHJveHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9ncmFwaGljcy9RdWFsaWZpZWRSZXNvdXJjZUhlYXAuaCBiL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9RdWFsaWZpZWRSZXNvdXJjZUhlYXAuaAppbmRleCA1OWQy
MjU1N2MyZjhkZDMxYzJlMzJjZjYyNzlmY2UxYmE1MTJmZTAwLi5kN2U3NGUwMDY1ZTkyMzJjZWU2
MDhiMGJhMzNkYjE3MjFlZDY4ZTA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvZ3JhcGhpY3MvUXVhbGlmaWVkUmVzb3VyY2VIZWFwLmgKKysrIGIvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL2dyYXBoaWNzL1F1YWxpZmllZFJlc291cmNlSGVhcC5oCkBAIC0xLDUgKzEsNSBA
QAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDIxLTIwMjIgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTA4LDYgKzEwOCwx
MSBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBnZXQ8V2ViQ29yZTo6Rm9udD4ocmVuZGVyaW5n
UmVzb3VyY2VJZGVudGlmaWVyKTsKICAgICB9CiAKKyAgICBWZWN0b3I8V2ViQ29yZTo6SW1hZ2VC
dWZmZXIqPiBnZXRBbGxJbWFnZUJ1ZmZlcnMoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJu
IGdldEFsbDxXZWJDb3JlOjpJbWFnZUJ1ZmZlcj4oKTsKKyAgICB9CisgICAgCiAgICAgYm9vbCBo
YXNJbWFnZUJ1ZmZlcigpIGNvbnN0CiAgICAgewogICAgICAgICBjaGVja0ludmFyaWFudHMoKTsK
QEAgLTE4Miw2ICsxODcsMjIgQEAgcHJpdmF0ZToKICAgICAgICAgcmV0dXJuIHZhbHVlID8gdmFs
dWUtPnB0cigpIDogbnVsbHB0cjsKICAgICB9CiAKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4K
KyAgICBWZWN0b3I8VCo+IGdldEFsbCgpIGNvbnN0CisgICAgeworICAgICAgICBjaGVja0ludmFy
aWFudHMoKTsKKworICAgICAgICBWZWN0b3I8VCo+IHJlc291cmNlczsKKyAgICAgICAgcmVzb3Vy
Y2VzLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkobV9pbWFnZUJ1ZmZlckNvdW50KTsKKworICAgICAg
ICBmb3IgKGNvbnN0IGF1dG8mIHZhbHVlIDogbV9yZXNvdXJjZXMudmFsdWVzKCkpIHsKKyAgICAg
ICAgICAgIGlmIChhdXRvIHJlc291cmNlID0gc3RkOjpnZXRfaWY8UmVmPFQ+PigmdmFsdWUpKQor
ICAgICAgICAgICAgICAgIHJlc291cmNlcy51bmNoZWNrZWRBcHBlbmQocmVzb3VyY2UtPnB0cigp
KTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiByZXNvdXJjZXM7CisgICAgfQorCiAgICAg
dGVtcGxhdGUgPHR5cGVuYW1lIFQ+CiAgICAgYm9vbCByZW1vdmUoUXVhbGlmaWVkUmVuZGVyaW5n
UmVzb3VyY2VJZGVudGlmaWVyIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciwgdW5zaWduZWQm
IGNvdW50ZXIpCiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dy
YXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3Jh
cGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXIuaAppbmRleCAzYzRiZWRhZTU5OWRkYzNkZGE3ZjE2YjIz
MDIwNTRkOTAwMjc1MjdhLi5hY2E1YWMyYmMwZmY0ZWZhMzhmMWM1YjJmYWM0Yjg0ZTZlMTQ2Yzhm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1h
Z2VCdWZmZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3Rl
SW1hZ2VCdWZmZXIuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjAt
MjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjAtMjAyMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKQEAgLTU5LDExICs1OSwxMCBAQCBwdWJsaWM6CiAKICAgICBSZW1vdGVJ
bWFnZUJ1ZmZlcihjb25zdCBXZWJDb3JlOjpJbWFnZUJ1ZmZlckJhY2tlbmQ6OlBhcmFtZXRlcnMm
IHBhcmFtZXRlcnMsIHN0ZDo6dW5pcXVlX3B0cjxCYWNrZW5kVHlwZT4mJiBiYWNrZW5kLCBSZW1v
dGVSZW5kZXJpbmdCYWNrZW5kJiByZW1vdGVSZW5kZXJpbmdCYWNrZW5kLCBRdWFsaWZpZWRSZW5k
ZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKQogICAg
ICAgICA6IEJhc2VDb25jcmV0ZUltYWdlQnVmZmVyKHBhcmFtZXRlcnMsIFdURk1vdmUoYmFja2Vu
ZCksIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllci5vYmplY3QoKSkKLSAgICAgICAgLCBtX3Jl
bW90ZVJlbmRlcmluZ0JhY2tlbmQocmVtb3RlUmVuZGVyaW5nQmFja2VuZCkKICAgICAgICAgLCBt
X3JlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcihyZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIp
CiAgICAgICAgICwgbV9yZW1vdGVEaXNwbGF5TGlzdCh7IFJlbW90ZURpc3BsYXlMaXN0UmVjb3Jk
ZXI6OmNyZWF0ZSgqdGhpcywgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyLCByZW5kZXJpbmdS
ZXNvdXJjZUlkZW50aWZpZXIucHJvY2Vzc0lkZW50aWZpZXIoKSwgcmVtb3RlUmVuZGVyaW5nQmFj
a2VuZCkgfSkKICAgICB7Ci0gICAgICAgIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZC5kaWRDcmVh
dGVJbWFnZUJ1ZmZlckJhY2tlbmQobV9iYWNrZW5kLT5jcmVhdGVCYWNrZW5kSGFuZGxlKCksIHJl
bmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciwgKm1fcmVtb3RlRGlzcGxheUxpc3QuZ2V0KCkpOwor
ICAgICAgICByZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmRpZENyZWF0ZUltYWdlQnVmZmVyQmFja2Vu
ZChtX2JhY2tlbmQtPmNyZWF0ZUJhY2tlbmRIYW5kbGUoKSwgcmVuZGVyaW5nUmVzb3VyY2VJZGVu
dGlmaWVyLCAqbV9yZW1vdGVEaXNwbGF5TGlzdC5nZXQoKSk7CiAgICAgfQogCiAgICAgflJlbW90
ZUltYWdlQnVmZmVyKCkKQEAgLTcyLDggKzcxLDYgQEAgcHVibGljOgogICAgICAgICAvLyBiZWVu
IGZsdXNoZWQgeWV0LCBvciB0aGUgd2ViIHByb2Nlc3MgbWF5IGhhdmUgdGVybWluYXRlZC4KICAg
ICAgICAgd2hpbGUgKGNvbnRleHQoKS5zdGFja1NpemUoKSkKICAgICAgICAgICAgIGNvbnRleHQo
KS5yZXN0b3JlKCk7Ci0KLSAgICAgICAgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kLndpbGxEZXN0
cm95SW1hZ2VCdWZmZXIoKnRoaXMpOwogICAgIH0KIAogICAgIHZvaWQgc2V0T3duZXJzaGlwSWRl
bnRpdHkoY29uc3QgV2ViQ29yZTo6UHJvY2Vzc0lkZW50aXR5JiByZXNvdXJjZU93bmVyKQpAQCAt
ODMsOSArODAsNiBAQCBwdWJsaWM6CiAgICAgfQogCiBwcml2YXRlOgotICAgIGZyaWVuZCBjbGFz
cyBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOwotCi0gICAgUmVtb3RlUmVuZGVyaW5nQmFja2VuZCYg
bV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kOwogICAgIFF1YWxpZmllZFJlbmRlcmluZ1Jlc291cmNl
SWRlbnRpZmllciBtX3JlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcjsKICAgICBJUEM6OlNjb3Bl
ZEFjdGl2ZU1lc3NhZ2VSZWNlaXZlUXVldWU8UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcj4gbV9y
ZW1vdGVEaXNwbGF5TGlzdDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAKaW5kZXggMDVkOTI2
MGY1NGMwODBkYjcwMjZkYzMyOGE5NzllNGM2YWVlYmE4OC4uODZmY2M0MTQ2Zjg1MmMyOTJkNDA5
M2FmOWFhMTUyMzU5YmRlMjQwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcApAQCAtOTAsNyAr
OTAsNyBAQCBSZWY8UmVtb3RlUmVuZGVyaW5nQmFja2VuZD4gUmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZDo6Y3JlYXRlKEdQVUNvbm5lY3Rpb25Ub1dlYlBybwogUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6
UmVtb3RlUmVuZGVyaW5nQmFja2VuZChHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBncHVDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzLCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kQ3JlYXRpb25QYXJhbWV0
ZXJzJiYgY3JlYXRpb25QYXJhbWV0ZXJzLCBJUEM6OlN0cmVhbUNvbm5lY3Rpb25CdWZmZXImJiBz
dHJlYW1CdWZmZXIpCiAgICAgOiBtX3dvcmtRdWV1ZShJUEM6OlN0cmVhbUNvbm5lY3Rpb25Xb3Jr
UXVldWU6OmNyZWF0ZSgiUmVtb3RlUmVuZGVyaW5nQmFja2VuZCB3b3JrIHF1ZXVlIikpCiAgICAg
LCBtX3N0cmVhbUNvbm5lY3Rpb24oSVBDOjpTdHJlYW1TZXJ2ZXJDb25uZWN0aW9uOjpjcmVhdGUo
Z3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jb25uZWN0aW9uKCksIFdURk1vdmUoc3RyZWFtQnVm
ZmVyKSwgbV93b3JrUXVldWUuZ2V0KCkpKQotICAgICwgbV9yZW1vdGVSZXNvdXJjZUNhY2hlKGdw
dUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mud2ViUHJvY2Vzc0lkZW50aWZpZXIoKSkKKyAgICAsIG1f
cmVtb3RlUmVzb3VyY2VDYWNoZSgqdGhpcywgZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy53ZWJQ
cm9jZXNzSWRlbnRpZmllcigpKQogICAgICwgbV9ncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKGdw
dUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MpCiAgICAgLCBtX3Jlc291cmNlT3duZXIoZ3B1Q29ubmVj
dGlvblRvV2ViUHJvY2Vzcy53ZWJQcm9jZXNzSWRlbnRpdHkoKSkKICAgICAsIG1fcmVuZGVyaW5n
QmFja2VuZElkZW50aWZpZXIoY3JlYXRpb25QYXJhbWV0ZXJzLmlkZW50aWZpZXIpCkBAIC0xMjYs
NyArMTI2LDcgQEAgdm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpzdG9wTGlzdGVuaW5nRm9y
SVBDKCkKICAgICBtX3dvcmtRdWV1ZS0+ZGlzcGF0Y2goWyZdIHsKICAgICAgICAgLy8gTWFrZSBz
dXJlIHdlIGRlc3Ryb3kgdGhlIFJlc291cmNlQ2FjaGUgb24gdGhlIFdvcmtRdWV1ZSBzaW5jZSBp
dCBnZXRzIHBvcHVsYXRlZCBvbiB0aGUgV29ya1F1ZXVlLgogICAgICAgICAvLyBNYWtlIHN1cmUg
cmVuZGVyaW5nIHJlc291cmNlIHJlcXVlc3QgaXMgcmVsZWFzZWQgYWZ0ZXIgZGVzdHJveWluZyB0
aGUgY2FjaGUuCi0gICAgICAgIG1fcmVtb3RlUmVzb3VyY2VDYWNoZSA9IHsgbV9ncHVDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLT53ZWJQcm9jZXNzSWRlbnRpZmllcigpIH07CisgICAgICAgIG1fcmVt
b3RlUmVzb3VyY2VDYWNoZSA9IHsgKnRoaXMsIG1fZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy0+
d2ViUHJvY2Vzc0lkZW50aWZpZXIoKSB9OwogICAgICAgICBtX3JlbmRlcmluZ1Jlc291cmNlc1Jl
cXVlc3QgPSB7IH07CiAgICAgfSk7CiAgICAgbV93b3JrUXVldWUtPnN0b3BBbmRXYWl0Rm9yQ29t
cGxldGlvbigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNz
L1JlbW90ZVJlc291cmNlQ2FjaGUuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBo
aWNzL1JlbW90ZVJlc291cmNlQ2FjaGUuY3BwCmluZGV4IDAxZjNkMTM4ZTMxODgyNWFhNjUzOWQ0
Y2FiN2E1Yjg5ZTlmOGZkYjAuLmVmMTkwNWFjYWEzNjQ2ZDE3NTI2MzRlZmRlNzkxMmZlODIxMDkw
MTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVS
ZXNvdXJjZUNhY2hlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3Mv
UmVtb3RlUmVzb3VyY2VDYWNoZS5jcHAKQEAgLTMxLDExICszMSwyNSBAQAogbmFtZXNwYWNlIFdl
YktpdCB7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAotUmVtb3RlUmVzb3VyY2VDYWNoZTo6
UmVtb3RlUmVzb3VyY2VDYWNoZShQcm9jZXNzSWRlbnRpZmllciB3ZWJQcm9jZXNzSWRlbnRpZmll
cikKLSAgICA6IG1fcmVzb3VyY2VIZWFwKHdlYlByb2Nlc3NJZGVudGlmaWVyKQorUmVtb3RlUmVz
b3VyY2VDYWNoZTo6UmVtb3RlUmVzb3VyY2VDYWNoZShSZW1vdGVSZW5kZXJpbmdCYWNrZW5kJiBy
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kLCBQcm9jZXNzSWRlbnRpZmllciB3ZWJQcm9jZXNzSWRlbnRp
ZmllcikKKyAgICA6IG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZChyZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kKQorICAgICwgbV9yZXNvdXJjZUhlYXAod2ViUHJvY2Vzc0lkZW50aWZpZXIpCiB7CiB9CiAK
K1JlbW90ZVJlc291cmNlQ2FjaGU6On5SZW1vdGVSZXNvdXJjZUNhY2hlKCkKK3sKKyAgICB3aWxs
RGVzdHJveUFsbEltYWdlQnVmZmVycygpOworfQorCitSZW1vdGVSZXNvdXJjZUNhY2hlJiBSZW1v
dGVSZXNvdXJjZUNhY2hlOjpvcGVyYXRvcj0oUmVtb3RlUmVzb3VyY2VDYWNoZSYmIG90aGVyKQor
eworICAgIEFTU0VSVCgmbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kID09ICZvdGhlci5tX3JlbW90
ZVJlbmRlcmluZ0JhY2tlbmQpOworICAgIHdpbGxEZXN0cm95QWxsSW1hZ2VCdWZmZXJzKCk7Cisg
ICAgbV9yZXNvdXJjZUhlYXAgPSBXVEZNb3ZlKG90aGVyLm1fcmVzb3VyY2VIZWFwKTsKKyAgICBy
ZXR1cm4gKnRoaXM7Cit9CisKIHZvaWQgUmVtb3RlUmVzb3VyY2VDYWNoZTo6Y2FjaGVJbWFnZUJ1
ZmZlcihSZWY8SW1hZ2VCdWZmZXI+JiYgaW1hZ2VCdWZmZXIsIFF1YWxpZmllZFJlbmRlcmluZ1Jl
c291cmNlSWRlbnRpZmllciByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpCiB7CiAgICAgQVNT
RVJUKHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllci5vYmplY3QoKSA9PSBpbWFnZUJ1ZmZlci0+
cmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKCkpOwpAQCAtODEsMTUgKzk1LDI1IEBAIHZvaWQg
UmVtb3RlUmVzb3VyY2VDYWNoZTo6ZGVsZXRlQWxsRm9udHMoKQogCiBib29sIFJlbW90ZVJlc291
cmNlQ2FjaGU6OnJlbGVhc2VSZW1vdGVSZXNvdXJjZShRdWFsaWZpZWRSZW5kZXJpbmdSZXNvdXJj
ZUlkZW50aWZpZXIgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKQogewotICAgIGlmIChtX3Jl
c291cmNlSGVhcC5yZW1vdmVJbWFnZUJ1ZmZlcihyZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIp
Ci0gICAgICAgIHx8IG1fcmVzb3VyY2VIZWFwLnJlbW92ZU5hdGl2ZUltYWdlKHJlbmRlcmluZ1Jl
c291cmNlSWRlbnRpZmllcikKLSAgICAgICAgfHwgbV9yZXNvdXJjZUhlYXAucmVtb3ZlRm9udChy
ZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpKQorICAgIGlmIChhdXRvIGltYWdlQnVmZmVyID0g
Y2FjaGVkSW1hZ2VCdWZmZXIocmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKSkgeworICAgICAg
ICBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmQud2lsbERlc3Ryb3lJbWFnZUJ1ZmZlcigqaW1hZ2VC
dWZmZXIpOworICAgICAgICBtX3Jlc291cmNlSGVhcC5yZW1vdmVJbWFnZUJ1ZmZlcihyZW5kZXJp
bmdSZXNvdXJjZUlkZW50aWZpZXIpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAg
ICBpZiAobV9yZXNvdXJjZUhlYXAucmVtb3ZlTmF0aXZlSW1hZ2UocmVuZGVyaW5nUmVzb3VyY2VJ
ZGVudGlmaWVyKSB8fCBtX3Jlc291cmNlSGVhcC5yZW1vdmVGb250KHJlbmRlcmluZ1Jlc291cmNl
SWRlbnRpZmllcikpCiAgICAgICAgIHJldHVybiB0cnVlOwogCiAgICAgLy8gQ2FjaGluZyB0aGUg
cmVtb3RlIHJlc291cmNlIHNob3VsZCBoYXZlIGhhcHBlbmVkIGJlZm9yZSByZWxlYXNpbmcgaXQu
CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCit2b2lkIFJlbW90ZVJlc291cmNlQ2FjaGU6OndpbGxE
ZXN0cm95QWxsSW1hZ2VCdWZmZXJzKCkKK3sKKyAgICBmb3IgKGF1dG8qIGltYWdlQnVmZmVyIDog
bV9yZXNvdXJjZUhlYXAuZ2V0QWxsSW1hZ2VCdWZmZXJzKCkpCisgICAgICAgIG1fcmVtb3RlUmVu
ZGVyaW5nQmFja2VuZC53aWxsRGVzdHJveUltYWdlQnVmZmVyKCppbWFnZUJ1ZmZlcik7Cit9CisK
IH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlc291
cmNlQ2FjaGUuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZXNv
dXJjZUNhY2hlLmgKaW5kZXggNWJmZDRmMjg4MDY1YzY1MDY0Njg5OTA2YmUyODIwODAyZjQwMDg1
Zi4uNDBhZTk0NmM1MmI1M2EwMjA3MDJjZGMwMjBiYTUxNDAwZTg5NWJlOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGUuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNo
ZS5oCkBAIC00Miw3ICs0MiwxMCBAQCBjbGFzcyBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOwogCiBj
bGFzcyBSZW1vdGVSZXNvdXJjZUNhY2hlIHsKIHB1YmxpYzoKLSAgICBSZW1vdGVSZXNvdXJjZUNh
Y2hlKFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyIHdlYlByb2Nlc3NJZGVudGlmaWVyKTsKKyAg
ICBSZW1vdGVSZXNvdXJjZUNhY2hlKFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQmLCBXZWJDb3JlOjpQ
cm9jZXNzSWRlbnRpZmllciB3ZWJQcm9jZXNzSWRlbnRpZmllcik7CisgICAgflJlbW90ZVJlc291
cmNlQ2FjaGUoKTsKKworICAgIFJlbW90ZVJlc291cmNlQ2FjaGUmIG9wZXJhdG9yPShSZW1vdGVS
ZXNvdXJjZUNhY2hlJiYpOwogCiAgICAgdm9pZCBjYWNoZUltYWdlQnVmZmVyKFJlZjxXZWJDb3Jl
OjpJbWFnZUJ1ZmZlcj4mJiwgUXVhbGlmaWVkUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsK
ICAgICBXZWJDb3JlOjpJbWFnZUJ1ZmZlciogY2FjaGVkSW1hZ2VCdWZmZXIoUXVhbGlmaWVkUmVu
ZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKSBjb25zdDsKQEAgLTU5LDYgKzYyLDkgQEAgcHVibGlj
OgogICAgIGJvb2wgaGFzQWN0aXZlRHJhd2FibGVzKCkgY29uc3QgeyByZXR1cm4gbV9yZXNvdXJj
ZUhlYXAuaGFzSW1hZ2VCdWZmZXIoKSB8fCBtX3Jlc291cmNlSGVhcC5oYXNOYXRpdmVJbWFnZSgp
OyB9CiAKIHByaXZhdGU6CisgICAgdm9pZCB3aWxsRGVzdHJveUFsbEltYWdlQnVmZmVycygpOwor
ICAgIAorICAgIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQmIG1fcmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZDsKICAgICBRdWFsaWZpZWRSZXNvdXJjZUhlYXAgbV9yZXNvdXJjZUhlYXA7CiB9OwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>457552</attachid>
            <date>2022-04-13 11:58:03 -0700</date>
            <delta_ts>2022-04-13 18:13:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-239107-20220413115802.patch</filename>
            <type>text/plain</type>
            <size>15266</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyODEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDM3M2VhNzFiZjRkNTkxODgz
OWIzMTFhZjlkYjJmN2UwMjkwZTc1NDQuLmRiZjY5M2NiZGMyZGQ3ZTQ2NTNlMzczNmViOWM2MTYz
ZjdkNGQ5MDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzkgQEAKKzIwMjItMDQtMTMgIFNhaWQgQWJv
dS1IYWxsYXdhICA8c2FpZEBhcHBsZS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lPTihyMjgyMTE3
KTogUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6d2lsbERlc3Ryb3lJbWFnZUJ1ZmZlcigpIGNhbiBj
cmFzaCBpZiB0aGUgUmVtb3RlUmVuZGVyaW5nQmFja2VuZCBoYXMgYWxyZWFkeSBiZWVuIGRlc3Ry
b3llZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM5
MTA3CisgICAgICAgIHJkYXI6Ly85MTYwODI5OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEFmdGVyIHIyODIxMTcsIHRoZSBhc3N1bXB0aW9uIHRoYXQg
UmVtb3RlUmVuZGVyaW5nQmFja2VuZCB3aWxsIG91dGxpdmUKKyAgICAgICAgYWxsIGl0cyBSZW1v
dGVJbWFnZUJ1ZmZlcnMgYmVjYW1lIHdyb25nLiBUaGUgUmVtb3RlUmVuZGVyaW5nQmFja2VuZCBj
YW4KKyAgICAgICAgZ2V0IGRlc3Ryb3llZCB1bmRlciBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNz
OjpkaWRDbG9zZSgpIGJlZm9yZSB0aGUKKyAgICAgICAgY2FsbE9uTWFpblRocmVhZCgpIG9mIHRo
ZSBUaHJlYWRTYWZlUmVmY291bnRlZCBpbWFnZSBidWZmZXJzIGhhdmUgcnVuLgorCisgICAgICAg
IEluc3RlYWQgb2YgaGF2aW5nIFJlbW90ZUltYWdlQnVmZmVyIGhvbGQgUmVtb3RlUmVuZGVyaW5n
QmFja2VuZCYsIHdlIGFyZQorICAgICAgICBnb2luZyB0byBoYXZlIFJlbW90ZVJlc291cmNlQ2Fj
aGUgaG9sZCB0aGlzIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQmLiBJdCAKKyAgICAgICAgd2lsbCBt
YW5hZ2UgY2FsbGluZyBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjp3aWxsRGVzdHJveUltYWdlQnVm
ZmVyKCkgCisgICAgICAgIGJlZm9yZSByZWxlYXNpbmcgYW55IFJlbW90ZUltYWdlQnVmZmVyLgor
CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9RdWFsaWZpZWRSZXNvdXJjZUhlYXAuaDoK
KyAgICAgICAgKFdlYktpdDo6UXVhbGlmaWVkUmVzb3VyY2VIZWFwOjogY29uc3QpOgorICAgICAg
ICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuaDoKKyAgICAg
ICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyLmg6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZUltYWdlQnVmZmVyOjpSZW1vdGVJbWFnZUJ1ZmZlcik6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZUltYWdlQnVmZmVyOjp+UmVtb3RlSW1hZ2VCdWZmZXIpOgorICAgICAgICAq
IEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHA6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQp
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpzdG9wTGlzdGVuaW5n
Rm9ySVBDKToKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmQuaDoKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2Fj
aGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZXNvdXJjZUNhY2hlOjpSZW1vdGVSZXNv
dXJjZUNhY2hlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVzb3VyY2VDYWNoZTo6flJlbW90
ZVJlc291cmNlQ2FjaGUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZXNvdXJjZUNhY2hlOjpv
cGVyYXRvcj0pOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZXNvdXJjZUNhY2hlOjp3aWxsRGVz
dHJveUFsbEltYWdlQnVmZmVycyk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlc291cmNlQ2Fj
aGU6OnJlbGVhc2VSZW1vdGVSZXNvdXJjZSk6CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGlj
cy9SZW1vdGVSZXNvdXJjZUNhY2hlLmg6CisKIDIwMjItMDQtMTMgIFNpbW9uIEZyYXNlciAgPHNp
bW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgW2Nzcy1zY3JvbGwtc25hcF0gc2Nyb2xs
SW50b1ZpZXcgZmFpbHMgd2l0aCBzY3JvbGwtc25hcC10eXBlIG9uIDpyb290CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUXVhbGlmaWVkUmVzb3VyY2VIZWFw
LmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUXVhbGlmaWVkUmVzb3VyY2VI
ZWFwLmgKaW5kZXggNTlkMjI1NTdjMmY4ZGQzMWMyZTMyY2Y2Mjc5ZmNlMWJhNTEyZmUwMC4uZDdl
NzRlMDA2NWU5MjMyY2VlNjA4YjBiYTMzZGIxNzIxZWQ2OGUwOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1F1YWxpZmllZFJlc291cmNlSGVhcC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9RdWFsaWZpZWRSZXNvdXJjZUhlYXAu
aApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiAg
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAyMS0yMDIyIEFwcGxlIElu
Yy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
QEAgLTEwOCw2ICsxMDgsMTEgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gZ2V0PFdlYkNvcmU6
OkZvbnQ+KHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcik7CiAgICAgfQogCisgICAgVmVjdG9y
PFdlYkNvcmU6OkltYWdlQnVmZmVyKj4gZ2V0QWxsSW1hZ2VCdWZmZXJzKCkgY29uc3QKKyAgICB7
CisgICAgICAgIHJldHVybiBnZXRBbGw8V2ViQ29yZTo6SW1hZ2VCdWZmZXI+KCk7CisgICAgfQor
ICAgIAogICAgIGJvb2wgaGFzSW1hZ2VCdWZmZXIoKSBjb25zdAogICAgIHsKICAgICAgICAgY2hl
Y2tJbnZhcmlhbnRzKCk7CkBAIC0xODIsNiArMTg3LDIyIEBAIHByaXZhdGU6CiAgICAgICAgIHJl
dHVybiB2YWx1ZSA/IHZhbHVlLT5wdHIoKSA6IG51bGxwdHI7CiAgICAgfQogCisgICAgdGVtcGxh
dGUgPHR5cGVuYW1lIFQ+CisgICAgVmVjdG9yPFQqPiBnZXRBbGwoKSBjb25zdAorICAgIHsKKyAg
ICAgICAgY2hlY2tJbnZhcmlhbnRzKCk7CisKKyAgICAgICAgVmVjdG9yPFQqPiByZXNvdXJjZXM7
CisgICAgICAgIHJlc291cmNlcy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KG1faW1hZ2VCdWZmZXJD
b3VudCk7CisKKyAgICAgICAgZm9yIChjb25zdCBhdXRvJiB2YWx1ZSA6IG1fcmVzb3VyY2VzLnZh
bHVlcygpKSB7CisgICAgICAgICAgICBpZiAoYXV0byByZXNvdXJjZSA9IHN0ZDo6Z2V0X2lmPFJl
ZjxUPj4oJnZhbHVlKSkKKyAgICAgICAgICAgICAgICByZXNvdXJjZXMudW5jaGVja2VkQXBwZW5k
KHJlc291cmNlLT5wdHIoKSk7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gcmVzb3VyY2Vz
OworICAgIH0KKwogICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgogICAgIGJvb2wgcmVtb3ZlKFF1
YWxpZmllZFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciByZW5kZXJpbmdSZXNvdXJjZUlkZW50
aWZpZXIsIHVuc2lnbmVkJiBjb3VudGVyKQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5oIGIvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMLmgKaW5k
ZXggZmZmNWU3MWMzNWIzMjEzODc3YTk2NTY5OTQxYTZmNWI4ZDlmMzcxZC4uNWJjOWUyNGE1M2Zk
ZjYyNzUzOTU0NDI5M2ExOTZhZGM1NzczZWE1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMLmgKKysrIGIvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMLmgKQEAg
LTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJTdHJlYW1NZXNzYWdlUmVjZWl2ZXIuaCIKICNpbmNs
dWRlICJTdHJlYW1TZXJ2ZXJDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBs
ZW1lbnRlZC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUGl4ZWxCdWZmZXIuaD4KICNpbmNsdWRlIDx3
dGYvVGhyZWFkQXNzZXJ0aW9ucy5oPgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZl
ci5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVy
LmgKaW5kZXggM2M0YmVkYWU1OTlkZGMzZGRhN2YxNmIyMzAyMDU0ZDkwMDI3NTI3YS4uYjE4NzQy
Mjk5ODMzNTAzNTZjZDI1NmE5Nzg5ZTA4YmVjYTY0Nzg1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyLmgKKysrIGIvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyLmgKQEAgLTEsNSAr
MSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDIwLTIwMjEgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDIwLTIwMjIgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNywx
NSArMjcsOSBAQAogCiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogCi0jaW5jbHVkZSAiRGVjb2Rl
ci5oIgotI2luY2x1ZGUgIkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCIKLSNpbmNsdWRlICJM
b2dnaW5nLmgiCiAjaW5jbHVkZSAiUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlci5oIgogI2luY2x1
ZGUgIlNjb3BlZEFjdGl2ZU1lc3NhZ2VSZWNlaXZlUXVldWUuaCIKICNpbmNsdWRlIDxXZWJDb3Jl
L0NvbmNyZXRlSW1hZ2VCdWZmZXIuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL0Rpc3BsYXlMaXN0Lmg+
Ci0jaW5jbHVkZSA8V2ViQ29yZS9EaXNwbGF5TGlzdEl0ZW1zLmg+Ci0jaW5jbHVkZSA8V2ViQ29y
ZS9EaXNwbGF5TGlzdFJlcGxheWVyLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCkBAIC01OSwx
MSArNTMsMTAgQEAgcHVibGljOgogCiAgICAgUmVtb3RlSW1hZ2VCdWZmZXIoY29uc3QgV2ViQ29y
ZTo6SW1hZ2VCdWZmZXJCYWNrZW5kOjpQYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzLCBzdGQ6OnVuaXF1
ZV9wdHI8QmFja2VuZFR5cGU+JiYgYmFja2VuZCwgUmVtb3RlUmVuZGVyaW5nQmFja2VuZCYgcmVt
b3RlUmVuZGVyaW5nQmFja2VuZCwgUXVhbGlmaWVkUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVy
IHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcikKICAgICAgICAgOiBCYXNlQ29uY3JldGVJbWFn
ZUJ1ZmZlcihwYXJhbWV0ZXJzLCBXVEZNb3ZlKGJhY2tlbmQpLCByZW5kZXJpbmdSZXNvdXJjZUlk
ZW50aWZpZXIub2JqZWN0KCkpCi0gICAgICAgICwgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kKHJl
bW90ZVJlbmRlcmluZ0JhY2tlbmQpCiAgICAgICAgICwgbV9yZW5kZXJpbmdSZXNvdXJjZUlkZW50
aWZpZXIocmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKQogICAgICAgICAsIG1fcmVtb3RlRGlz
cGxheUxpc3QoeyBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpjcmVhdGUoKnRoaXMsIHJlbmRl
cmluZ1Jlc291cmNlSWRlbnRpZmllciwgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyLnByb2Nl
c3NJZGVudGlmaWVyKCksIHJlbW90ZVJlbmRlcmluZ0JhY2tlbmQpIH0pCiAgICAgewotICAgICAg
ICBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuZGlkQ3JlYXRlSW1hZ2VCdWZmZXJCYWNrZW5kKG1f
YmFja2VuZC0+Y3JlYXRlQmFja2VuZEhhbmRsZSgpLCByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZp
ZXIsICptX3JlbW90ZURpc3BsYXlMaXN0LmdldCgpKTsKKyAgICAgICAgcmVtb3RlUmVuZGVyaW5n
QmFja2VuZC5kaWRDcmVhdGVJbWFnZUJ1ZmZlckJhY2tlbmQobV9iYWNrZW5kLT5jcmVhdGVCYWNr
ZW5kSGFuZGxlKCksIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciwgKm1fcmVtb3RlRGlzcGxh
eUxpc3QuZ2V0KCkpOwogICAgIH0KIAogICAgIH5SZW1vdGVJbWFnZUJ1ZmZlcigpCkBAIC03Miw4
ICs2NSw2IEBAIHB1YmxpYzoKICAgICAgICAgLy8gYmVlbiBmbHVzaGVkIHlldCwgb3IgdGhlIHdl
YiBwcm9jZXNzIG1heSBoYXZlIHRlcm1pbmF0ZWQuCiAgICAgICAgIHdoaWxlIChjb250ZXh0KCku
c3RhY2tTaXplKCkpCiAgICAgICAgICAgICBjb250ZXh0KCkucmVzdG9yZSgpOwotCi0gICAgICAg
IG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZC53aWxsRGVzdHJveUltYWdlQnVmZmVyKCp0aGlzKTsK
ICAgICB9CiAKICAgICB2b2lkIHNldE93bmVyc2hpcElkZW50aXR5KGNvbnN0IFdlYkNvcmU6OlBy
b2Nlc3NJZGVudGl0eSYgcmVzb3VyY2VPd25lcikKQEAgLTgzLDkgKzc0LDYgQEAgcHVibGljOgog
ICAgIH0KIAogcHJpdmF0ZToKLSAgICBmcmllbmQgY2xhc3MgUmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZDsKLQotICAgIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQmIG1fcmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZDsKICAgICBRdWFsaWZpZWRSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgbV9yZW5kZXJpbmdS
ZXNvdXJjZUlkZW50aWZpZXI7CiAgICAgSVBDOjpTY29wZWRBY3RpdmVNZXNzYWdlUmVjZWl2ZVF1
ZXVlPFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI+IG1fcmVtb3RlRGlzcGxheUxpc3Q7CiB9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRl
cmluZ0JhY2tlbmQuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90
ZVJlbmRlcmluZ0JhY2tlbmQuY3BwCmluZGV4IDdkNmZkMjc4YTMzZDczMTY1ZWRjMTRkMWUzYjhi
MGVlMjBlYzI3NjYuLjNlNjJkZDI5ZjNjYjMxNjEyMzgzNGQ0MzkzZDdjNzhmMmQ0NGI2NTQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJp
bmdCYWNrZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVt
b3RlUmVuZGVyaW5nQmFja2VuZC5jcHAKQEAgLTkwLDcgKzkwLDcgQEAgUmVmPFJlbW90ZVJlbmRl
cmluZ0JhY2tlbmQ+IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmNyZWF0ZShHUFVDb25uZWN0aW9u
VG9XZWJQcm8KIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQo
R1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzcywgUmVt
b3RlUmVuZGVyaW5nQmFja2VuZENyZWF0aW9uUGFyYW1ldGVycyYmIGNyZWF0aW9uUGFyYW1ldGVy
cywgSVBDOjpBdHRhY2htZW50JiYgY29ubmVjdGlvbklkZW50aWZpZXIsIElQQzo6U3RyZWFtQ29u
bmVjdGlvbkJ1ZmZlciYmIHN0cmVhbUJ1ZmZlcikKICAgICA6IG1fd29ya1F1ZXVlKElQQzo6U3Ry
ZWFtQ29ubmVjdGlvbldvcmtRdWV1ZTo6Y3JlYXRlKCJSZW1vdGVSZW5kZXJpbmdCYWNrZW5kIHdv
cmsgcXVldWUiKSkKICAgICAsIG1fc3RyZWFtQ29ubmVjdGlvbihJUEM6OlN0cmVhbVNlcnZlckNv
bm5lY3Rpb246OmNyZWF0ZVdpdGhEZWRpY2F0ZWRDb25uZWN0aW9uKFdURk1vdmUoY29ubmVjdGlv
bklkZW50aWZpZXIpLCBXVEZNb3ZlKHN0cmVhbUJ1ZmZlciksIG1fd29ya1F1ZXVlLmdldCgpKSkK
LSAgICAsIG1fcmVtb3RlUmVzb3VyY2VDYWNoZShncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLndl
YlByb2Nlc3NJZGVudGlmaWVyKCkpCisgICAgLCBtX3JlbW90ZVJlc291cmNlQ2FjaGUoKnRoaXMs
IGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mud2ViUHJvY2Vzc0lkZW50aWZpZXIoKSkKICAgICAs
IG1fZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzcyhncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKQog
ICAgICwgbV9yZXNvdXJjZU93bmVyKGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mud2ViUHJvY2Vz
c0lkZW50aXR5KCkpCiAgICAgLCBtX3JlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyKGNyZWF0aW9u
UGFyYW1ldGVycy5pZGVudGlmaWVyKQpAQCAtMTIzLDcgKzEyMyw3IEBAIHZvaWQgUmVtb3RlUmVu
ZGVyaW5nQmFja2VuZDo6c3RvcExpc3RlbmluZ0ZvcklQQygpCiAgICAgbV93b3JrUXVldWUtPmRp
c3BhdGNoKFsmXSB7CiAgICAgICAgIC8vIE1ha2Ugc3VyZSB3ZSBkZXN0cm95IHRoZSBSZXNvdXJj
ZUNhY2hlIG9uIHRoZSBXb3JrUXVldWUgc2luY2UgaXQgZ2V0cyBwb3B1bGF0ZWQgb24gdGhlIFdv
cmtRdWV1ZS4KICAgICAgICAgLy8gTWFrZSBzdXJlIHJlbmRlcmluZyByZXNvdXJjZSByZXF1ZXN0
IGlzIHJlbGVhc2VkIGFmdGVyIGRlc3Ryb3lpbmcgdGhlIGNhY2hlLgotICAgICAgICBtX3JlbW90
ZVJlc291cmNlQ2FjaGUgPSB7IG1fZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy0+d2ViUHJvY2Vz
c0lkZW50aWZpZXIoKSB9OworICAgICAgICBtX3JlbW90ZVJlc291cmNlQ2FjaGUgPSB7ICp0aGlz
LCBtX2dwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MtPndlYlByb2Nlc3NJZGVudGlmaWVyKCkgfTsK
ICAgICAgICAgbV9yZW5kZXJpbmdSZXNvdXJjZXNSZXF1ZXN0ID0geyB9OwogICAgIH0pOwogICAg
IG1fd29ya1F1ZXVlLT5zdG9wQW5kV2FpdEZvckNvbXBsZXRpb24oKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmgg
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZC5oCmluZGV4IDYyMjBjZTVmMTVlNTdiODFmZjZmNmFkYTM2Y2I0ZDgxMWNmMWEyNWUuLjE1ZGM3
ZmU5MzZhYWUwMTllNjFiNmQyOWQ3NGQ5NTFmOGQxZjk2N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmgKKysrIGIv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQu
aApAQCAtMjgsMTIgKzI4LDEwIEBACiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogCiAjaW5jbHVk
ZSAiQ29ubmVjdGlvbi5oIgotI2luY2x1ZGUgIklQQ1NlbWFwaG9yZS5oIgogI2luY2x1ZGUgIklt
YWdlQnVmZmVyQmFja2VuZEhhbmRsZS5oIgogI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgog
I2luY2x1ZGUgIk1lc3NhZ2VTZW5kZXIuaCIKICNpbmNsdWRlICJRdWFsaWZpZWRSZW5kZXJpbmdS
ZXNvdXJjZUlkZW50aWZpZXIuaCIKLSNpbmNsdWRlICJSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVy
LmgiCiAjaW5jbHVkZSAiUmVtb3RlUmVzb3VyY2VDYWNoZS5oIgogI2luY2x1ZGUgIlJlbmRlcmlu
Z0JhY2tlbmRJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiUmVuZGVyaW5nVXBkYXRlSUQuaCIKQEAg
LTQxLDEyICszOSw4IEBACiAjaW5jbHVkZSAiU3RyZWFtQ29ubmVjdGlvbldvcmtRdWV1ZS5oIgog
I2luY2x1ZGUgIlN0cmVhbU1lc3NhZ2VSZWNlaXZlci5oIgogI2luY2x1ZGUgIlN0cmVhbVNlcnZl
ckNvbm5lY3Rpb24uaCIKLSNpbmNsdWRlIDxXZWJDb3JlL0NvbG9yU3BhY2UuaD4KLSNpbmNsdWRl
IDxXZWJDb3JlL0Rpc3BsYXlMaXN0SXRlbUJ1ZmZlcklkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL01lZGlhUGxheWVySWRlbnRpZmllci5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUHJvY2Vz
c0lkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Byb2Nlc3NJZGVudGl0eS5oPgotI2lu
Y2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKIG5hbWVzcGFjZSBXVEYgewogZW51bSBjbGFzcyBDcml0
aWNhbCA6IGJvb2w7CkBAIC0xNDAsNyArMTM0LDYgQEAgcHJpdmF0ZToKICAgICB2b2lkIGdldERh
dGFGb3JJbWFnZUJ1ZmZlcldpdGhRdWFsaWZpZWRJZGVudGlmaWVyKGNvbnN0IFN0cmluZyYgbWlt
ZVR5cGUsIHN0ZDo6b3B0aW9uYWw8ZG91YmxlPiBxdWFsaXR5LCBRdWFsaWZpZWRSZW5kZXJpbmdS
ZXNvdXJjZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9yPHVpbnQ4X3Q+
JiYpPiYmKTsKICAgICB2b2lkIGdldFNoYXJlYWJsZUJpdG1hcEZvckltYWdlQnVmZmVyV2l0aFF1
YWxpZmllZElkZW50aWZpZXIoUXVhbGlmaWVkUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyLCBX
ZWJDb3JlOjpQcmVzZXJ2ZVJlc29sdXRpb24sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU2hhcmVh
YmxlQml0bWFwOjpIYW5kbGUmJik+JiYpOwogICAgIHZvaWQgY2FjaGVOYXRpdmVJbWFnZVdpdGhR
dWFsaWZpZWRJZGVudGlmaWVyKGNvbnN0IFNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlJiwgUXVhbGlm
aWVkUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKLSAgICB2b2lkIGRpZENyZWF0ZVNoYXJl
ZERpc3BsYXlMaXN0SGFuZGxlV2l0aFF1YWxpZmllZElkZW50aWZpZXIoV2ViQ29yZTo6RGlzcGxh
eUxpc3Q6Okl0ZW1CdWZmZXJJZGVudGlmaWVyLCBjb25zdCBTaGFyZWRNZW1vcnk6OklQQ0hhbmRs
ZSYsIFF1YWxpZmllZFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBkZXN0aW5hdGlvbkJ1ZmZl
cklkZW50aWZpZXIpOwogICAgIHZvaWQgcmVsZWFzZVJlbW90ZVJlc291cmNlV2l0aFF1YWxpZmll
ZElkZW50aWZpZXIoUXVhbGlmaWVkUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKICAgICB2
b2lkIGNhY2hlRm9udFdpdGhRdWFsaWZpZWRJZGVudGlmaWVyKFJlZjxXZWJDb3JlOjpGb250PiYm
LCBRdWFsaWZpZWRSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZS5j
cHAKaW5kZXggMDFmM2QxMzhlMzE4ODI1YWE2NTM5ZDRjYWI3YTViODllOWY4ZmRiMC4uODEyYTUx
M2RmNTdmYTQzZmEwZDM4OWFlM2MxZjFjN2NhNjdiZmNlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlLmNwcApA
QCAtMzEsMTEgKzMxLDI1IEBACiBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBX
ZWJDb3JlOwogCi1SZW1vdGVSZXNvdXJjZUNhY2hlOjpSZW1vdGVSZXNvdXJjZUNhY2hlKFByb2Nl
c3NJZGVudGlmaWVyIHdlYlByb2Nlc3NJZGVudGlmaWVyKQotICAgIDogbV9yZXNvdXJjZUhlYXAo
d2ViUHJvY2Vzc0lkZW50aWZpZXIpCitSZW1vdGVSZXNvdXJjZUNhY2hlOjpSZW1vdGVSZXNvdXJj
ZUNhY2hlKFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQmIHJlbW90ZVJlbmRlcmluZ0JhY2tlbmQsIFBy
b2Nlc3NJZGVudGlmaWVyIHdlYlByb2Nlc3NJZGVudGlmaWVyKQorICAgIDogbV9yZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kKHJlbW90ZVJlbmRlcmluZ0JhY2tlbmQpCisgICAgLCBtX3Jlc291cmNlSGVh
cCh3ZWJQcm9jZXNzSWRlbnRpZmllcikKIHsKIH0KIAorUmVtb3RlUmVzb3VyY2VDYWNoZTo6flJl
bW90ZVJlc291cmNlQ2FjaGUoKQoreworICAgIHdpbGxEZXN0cm95QWxsSW1hZ2VCdWZmZXJzKCk7
Cit9CisKK1JlbW90ZVJlc291cmNlQ2FjaGUmIFJlbW90ZVJlc291cmNlQ2FjaGU6Om9wZXJhdG9y
PShSZW1vdGVSZXNvdXJjZUNhY2hlJiYgb3RoZXIpCit7CisgICAgQVNTRVJUKCZtX3JlbW90ZVJl
bmRlcmluZ0JhY2tlbmQgPT0gJm90aGVyLm1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZCk7CisgICAg
d2lsbERlc3Ryb3lBbGxJbWFnZUJ1ZmZlcnMoKTsKKyAgICBtX3Jlc291cmNlSGVhcCA9IFdURk1v
dmUob3RoZXIubV9yZXNvdXJjZUhlYXApOworICAgIHJldHVybiAqdGhpczsKK30KKwogdm9pZCBS
ZW1vdGVSZXNvdXJjZUNhY2hlOjpjYWNoZUltYWdlQnVmZmVyKFJlZjxJbWFnZUJ1ZmZlcj4mJiBp
bWFnZUJ1ZmZlciwgUXVhbGlmaWVkUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlbmRlcmlu
Z1Jlc291cmNlSWRlbnRpZmllcikKIHsKICAgICBBU1NFUlQocmVuZGVyaW5nUmVzb3VyY2VJZGVu
dGlmaWVyLm9iamVjdCgpID09IGltYWdlQnVmZmVyLT5yZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZp
ZXIoKSk7CkBAIC03OSwxMSArOTMsMjEgQEAgdm9pZCBSZW1vdGVSZXNvdXJjZUNhY2hlOjpkZWxl
dGVBbGxGb250cygpCiAgICAgbV9yZXNvdXJjZUhlYXAuZGVsZXRlQWxsRm9udHMoKTsKIH0KIAor
dm9pZCBSZW1vdGVSZXNvdXJjZUNhY2hlOjp3aWxsRGVzdHJveUFsbEltYWdlQnVmZmVycygpCit7
CisgICAgZm9yIChhdXRvKiBpbWFnZUJ1ZmZlciA6IG1fcmVzb3VyY2VIZWFwLmdldEFsbEltYWdl
QnVmZmVycygpKQorICAgICAgICBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmQud2lsbERlc3Ryb3lJ
bWFnZUJ1ZmZlcigqaW1hZ2VCdWZmZXIpOworfQorCiBib29sIFJlbW90ZVJlc291cmNlQ2FjaGU6
OnJlbGVhc2VSZW1vdGVSZXNvdXJjZShRdWFsaWZpZWRSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZp
ZXIgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKQogewotICAgIGlmIChtX3Jlc291cmNlSGVh
cC5yZW1vdmVJbWFnZUJ1ZmZlcihyZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpCi0gICAgICAg
IHx8IG1fcmVzb3VyY2VIZWFwLnJlbW92ZU5hdGl2ZUltYWdlKHJlbmRlcmluZ1Jlc291cmNlSWRl
bnRpZmllcikKLSAgICAgICAgfHwgbV9yZXNvdXJjZUhlYXAucmVtb3ZlRm9udChyZW5kZXJpbmdS
ZXNvdXJjZUlkZW50aWZpZXIpKQorICAgIGlmIChhdXRvKiBpbWFnZUJ1ZmZlciA9IGNhY2hlZElt
YWdlQnVmZmVyKHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcikpIHsKKyAgICAgICAgbV9yZW1v
dGVSZW5kZXJpbmdCYWNrZW5kLndpbGxEZXN0cm95SW1hZ2VCdWZmZXIoKmltYWdlQnVmZmVyKTsK
KyAgICAgICAgbV9yZXNvdXJjZUhlYXAucmVtb3ZlSW1hZ2VCdWZmZXIocmVuZGVyaW5nUmVzb3Vy
Y2VJZGVudGlmaWVyKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgaWYgKG1f
cmVzb3VyY2VIZWFwLnJlbW92ZU5hdGl2ZUltYWdlKHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmll
cikgfHwgbV9yZXNvdXJjZUhlYXAucmVtb3ZlRm9udChyZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZp
ZXIpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIC8vIENhY2hpbmcgdGhlIHJlbW90ZSBy
ZXNvdXJjZSBzaG91bGQgaGF2ZSBoYXBwZW5lZCBiZWZvcmUgcmVsZWFzaW5nIGl0LgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2Fj
aGUuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNh
Y2hlLmgKaW5kZXggNWJmZDRmMjg4MDY1YzY1MDY0Njg5OTA2YmUyODIwODAyZjQwMDg1Zi4uOTJm
MmM1NGZmYjdkMzJlZjNiZmE4MGNhNTE0NmU5MjFjNmQ0Mjk1YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGUuaAorKysgYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZS5oCkBA
IC0yOSwxMiArMjksNiBAQAogCiAjaW5jbHVkZSAiUXVhbGlmaWVkUmVuZGVyaW5nUmVzb3VyY2VJ
ZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiUXVhbGlmaWVkUmVzb3VyY2VIZWFwLmgiCi0jaW5jbHVk
ZSA8V2ViQ29yZS9Gb250Lmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9JbWFnZUJ1ZmZlci5oPgotI2lu
Y2x1ZGUgPFdlYkNvcmUvTmF0aXZlSW1hZ2UuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1Byb2Nlc3NJ
ZGVudGlmaWVyLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9SZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZp
ZXIuaD4KLSNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIApA
QCAtNDIsNyArMzYsMTAgQEAgY2xhc3MgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDsKIAogY2xhc3Mg
UmVtb3RlUmVzb3VyY2VDYWNoZSB7CiBwdWJsaWM6Ci0gICAgUmVtb3RlUmVzb3VyY2VDYWNoZShX
ZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciB3ZWJQcm9jZXNzSWRlbnRpZmllcik7CisgICAgUmVt
b3RlUmVzb3VyY2VDYWNoZShSZW1vdGVSZW5kZXJpbmdCYWNrZW5kJiwgV2ViQ29yZTo6UHJvY2Vz
c0lkZW50aWZpZXIgd2ViUHJvY2Vzc0lkZW50aWZpZXIpOworICAgIH5SZW1vdGVSZXNvdXJjZUNh
Y2hlKCk7CisKKyAgICBSZW1vdGVSZXNvdXJjZUNhY2hlJiBvcGVyYXRvcj0oUmVtb3RlUmVzb3Vy
Y2VDYWNoZSYmKTsKIAogICAgIHZvaWQgY2FjaGVJbWFnZUJ1ZmZlcihSZWY8V2ViQ29yZTo6SW1h
Z2VCdWZmZXI+JiYsIFF1YWxpZmllZFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcik7CiAgICAg
V2ViQ29yZTo6SW1hZ2VCdWZmZXIqIGNhY2hlZEltYWdlQnVmZmVyKFF1YWxpZmllZFJlbmRlcmlu
Z1Jlc291cmNlSWRlbnRpZmllcikgY29uc3Q7CkBAIC01OSw2ICs1Niw5IEBAIHB1YmxpYzoKICAg
ICBib29sIGhhc0FjdGl2ZURyYXdhYmxlcygpIGNvbnN0IHsgcmV0dXJuIG1fcmVzb3VyY2VIZWFw
Lmhhc0ltYWdlQnVmZmVyKCkgfHwgbV9yZXNvdXJjZUhlYXAuaGFzTmF0aXZlSW1hZ2UoKTsgfQog
CiBwcml2YXRlOgorICAgIHZvaWQgd2lsbERlc3Ryb3lBbGxJbWFnZUJ1ZmZlcnMoKTsKKyAgICAK
KyAgICBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kJiBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmQ7CiAg
ICAgUXVhbGlmaWVkUmVzb3VyY2VIZWFwIG1fcmVzb3VyY2VIZWFwOwogfTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>457582</attachid>
            <date>2022-04-13 18:13:39 -0700</date>
            <delta_ts>2022-04-15 12:20:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-239107-20220413181338.patch</filename>
            <type>text/plain</type>
            <size>15852</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyODQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGQ1ZWMxNDUxZGJkZTRjZmY0
ZjNhYjFiMDgwMjExM2Y1NTdhMmI3MGQuLjk4OTg1YTJmOTI1YjA1NWRmYjhjODI1YmMwODMxMTc4
MmZjNDc3NjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDAgQEAKKzIwMjItMDQtMTMgIFNhaWQgQWJv
dS1IYWxsYXdhICA8c2FpZEBhcHBsZS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lPTihyMjgyMTE3
KTogUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6d2lsbERlc3Ryb3lJbWFnZUJ1ZmZlcigpIGNhbiBj
cmFzaCBpZiB0aGUgUmVtb3RlUmVuZGVyaW5nQmFja2VuZCBoYXMgYWxyZWFkeSBiZWVuIGRlc3Ry
b3llZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM5
MTA3CisgICAgICAgIHJkYXI6Ly85MTYwODI5OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEFmdGVyIHIyODIxMTcsIHRoZSBhc3N1bXB0aW9uIHRoYXQg
UmVtb3RlUmVuZGVyaW5nQmFja2VuZCB3aWxsIG91dGxpdmUKKyAgICAgICAgYWxsIGl0cyBSZW1v
dGVJbWFnZUJ1ZmZlcnMgYmVjYW1lIHdyb25nLiBUaGUgUmVtb3RlUmVuZGVyaW5nQmFja2VuZCBj
YW4KKyAgICAgICAgZ2V0IGRlc3Ryb3llZCB1bmRlciBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNz
OjpkaWRDbG9zZSgpIGJlZm9yZSB0aGUKKyAgICAgICAgY2FsbE9uTWFpblRocmVhZCgpIG9mIHRo
ZSBUaHJlYWRTYWZlUmVmY291bnRlZCBpbWFnZSBidWZmZXJzIGhhdmUgcnVuLgorCisgICAgICAg
IEluc3RlYWQgb2YgaGF2aW5nIFJlbW90ZUltYWdlQnVmZmVyIGhvbGQgUmVtb3RlUmVuZGVyaW5n
QmFja2VuZCYsIHdlIGFyZQorICAgICAgICBnb2luZyB0byBoYXZlIFJlbW90ZVJlc291cmNlQ2Fj
aGUgaG9sZCB0aGlzIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQmLiBJdCAKKyAgICAgICAgd2lsbCBt
YW5hZ2UgY2FsbGluZyBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjp3aWxsRGVzdHJveUltYWdlQnVm
ZmVyKCkgCisgICAgICAgIGJlZm9yZSByZWxlYXNpbmcgYW55IFJlbW90ZUltYWdlQnVmZmVyLgor
CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9RdWFsaWZpZWRSZXNvdXJjZUhlYXAuaDoK
KyAgICAgICAgKFdlYktpdDo6UXVhbGlmaWVkUmVzb3VyY2VIZWFwOjogY29uc3QpOgorICAgICAg
ICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuaDoKKyAgICAg
ICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyLmg6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZUltYWdlQnVmZmVyOjpSZW1vdGVJbWFnZUJ1ZmZlcik6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZUltYWdlQnVmZmVyOjp+UmVtb3RlSW1hZ2VCdWZmZXIpOiBEZWxldGVkLgor
ICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHA6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OlJlbW90ZVJlbmRlcmlu
Z0JhY2tlbmQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpzdG9w
TGlzdGVuaW5nRm9ySVBDKToKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJl
bmRlcmluZ0JhY2tlbmQuaDoKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJl
c291cmNlQ2FjaGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZXNvdXJjZUNhY2hlOjpS
ZW1vdGVSZXNvdXJjZUNhY2hlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVzb3VyY2VDYWNo
ZTo6flJlbW90ZVJlc291cmNlQ2FjaGUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZXNvdXJj
ZUNhY2hlOjpvcGVyYXRvcj0pOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZXNvdXJjZUNhY2hl
Ojp3aWxsRGVzdHJveUltYWdlQnVmZmVyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVzb3Vy
Y2VDYWNoZTo6d2lsbERlc3Ryb3lBbGxJbWFnZUJ1ZmZlcnMpOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVSZXNvdXJjZUNhY2hlOjpyZWxlYXNlUmVtb3RlUmVzb3VyY2UpOgorICAgICAgICAqIEdQ
VVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZS5oOgorCiAyMDIyLTA0LTEzICBF
bGxpb3R0IFdpbGxpYW1zICA8ZW13QGFwcGxlLmNvbT4KIAogICAgICAgICBbWGNvZGVdIEZpeCBw
dWJsaWMgd2F0Y2hPUyB3b3Jrc3BhY2UgYnVpbGQgYnkgdXBkYXRpbmcgc2NoZW1lIGFuZCBidWls
ZCBzZXR0aW5ncwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNz
L1F1YWxpZmllZFJlc291cmNlSGVhcC5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBo
aWNzL1F1YWxpZmllZFJlc291cmNlSGVhcC5oCmluZGV4IDU5ZDIyNTU3YzJmOGRkMzFjMmUzMmNm
NjI3OWZjZTFiYTUxMmZlMDAuLmQ3ZTc0ZTAwNjVlOTIzMmNlZTYwOGIwYmEzM2RiMTcyMWVkNjhl
MDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9RdWFsaWZp
ZWRSZXNvdXJjZUhlYXAuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3Mv
UXVhbGlmaWVkUmVzb3VyY2VIZWFwLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDIxIEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjEtMjAyMiBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xMDgsNiArMTA4LDExIEBAIHB1YmxpYzoKICAgICAg
ICAgcmV0dXJuIGdldDxXZWJDb3JlOjpGb250PihyZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIp
OwogICAgIH0KIAorICAgIFZlY3RvcjxXZWJDb3JlOjpJbWFnZUJ1ZmZlcio+IGdldEFsbEltYWdl
QnVmZmVycygpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gZ2V0QWxsPFdlYkNvcmU6Oklt
YWdlQnVmZmVyPigpOworICAgIH0KKyAgICAKICAgICBib29sIGhhc0ltYWdlQnVmZmVyKCkgY29u
c3QKICAgICB7CiAgICAgICAgIGNoZWNrSW52YXJpYW50cygpOwpAQCAtMTgyLDYgKzE4NywyMiBA
QCBwcml2YXRlOgogICAgICAgICByZXR1cm4gdmFsdWUgPyB2YWx1ZS0+cHRyKCkgOiBudWxscHRy
OwogICAgIH0KIAorICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgorICAgIFZlY3RvcjxUKj4gZ2V0
QWxsKCkgY29uc3QKKyAgICB7CisgICAgICAgIGNoZWNrSW52YXJpYW50cygpOworCisgICAgICAg
IFZlY3RvcjxUKj4gcmVzb3VyY2VzOworICAgICAgICByZXNvdXJjZXMucmVzZXJ2ZUluaXRpYWxD
YXBhY2l0eShtX2ltYWdlQnVmZmVyQ291bnQpOworCisgICAgICAgIGZvciAoY29uc3QgYXV0byYg
dmFsdWUgOiBtX3Jlc291cmNlcy52YWx1ZXMoKSkgeworICAgICAgICAgICAgaWYgKGF1dG8gcmVz
b3VyY2UgPSBzdGQ6OmdldF9pZjxSZWY8VD4+KCZ2YWx1ZSkpCisgICAgICAgICAgICAgICAgcmVz
b3VyY2VzLnVuY2hlY2tlZEFwcGVuZChyZXNvdXJjZS0+cHRyKCkpOworICAgICAgICB9CisKKyAg
ICAgICAgcmV0dXJuIHJlc291cmNlczsKKyAgICB9CisKICAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUg
VD4KICAgICBib29sIHJlbW92ZShRdWFsaWZpZWRSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIg
cmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyLCB1bnNpZ25lZCYgY291bnRlcikKICAgICB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhp
Y3NDb250ZXh0R0wuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVH
cmFwaGljc0NvbnRleHRHTC5oCmluZGV4IGZmZjVlNzFjMzViMzIxMzg3N2E5NjU2OTk0MWE2ZjVi
OGQ5ZjM3MWQuLjViYzllMjRhNTNmZGY2Mjc1Mzk1NDQyOTNhMTk2YWRjNTc3M2VhNTcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0Nv
bnRleHRHTC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVH
cmFwaGljc0NvbnRleHRHTC5oCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSAiU3RyZWFtTWVz
c2FnZVJlY2VpdmVyLmgiCiAjaW5jbHVkZSAiU3RyZWFtU2VydmVyQ29ubmVjdGlvbi5oIgogI2lu
Y2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1BpeGVs
QnVmZmVyLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZEFzc2VydGlvbnMuaD4KICNpbmNsdWRlIDx3
dGYvV2Vha1B0ci5oPgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3Jh
cGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXIuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFw
aGljcy9SZW1vdGVJbWFnZUJ1ZmZlci5oCmluZGV4IDNjNGJlZGFlNTk5ZGRjM2RkYTdmMTZiMjMw
MjA1NGQ5MDAyNzUyN2EuLjkyZjU3N2M4Yzg5NjliYWRkZjg2ZjlkNjk4M2FiYmI0N2U3ZTgwYmEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVJbWFn
ZUJ1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVJ
bWFnZUJ1ZmZlci5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMC0y
MDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAy
MC0yMDIyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
ICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwpAQCAtMjcsMTUgKzI3LDkgQEAKIAogI2lmIEVOQUJMRShHUFVfUFJPQ0VT
UykKIAotI2luY2x1ZGUgIkRlY29kZXIuaCIKLSNpbmNsdWRlICJHUFVDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzLmgiCi0jaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIlJlbW90ZURpc3BsYXlM
aXN0UmVjb3JkZXIuaCIKICNpbmNsdWRlICJTY29wZWRBY3RpdmVNZXNzYWdlUmVjZWl2ZVF1ZXVl
LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9Db25jcmV0ZUltYWdlQnVmZmVyLmg+Ci0jaW5jbHVkZSA8
V2ViQ29yZS9EaXNwbGF5TGlzdC5oPgotI2luY2x1ZGUgPFdlYkNvcmUvRGlzcGxheUxpc3RJdGVt
cy5oPgotI2luY2x1ZGUgPFdlYkNvcmUvRGlzcGxheUxpc3RSZXBsYXllci5oPgogCiBuYW1lc3Bh
Y2UgV2ViS2l0IHsKIApAQCAtNTksMjEgKzUzLDEwIEBAIHB1YmxpYzoKIAogICAgIFJlbW90ZUlt
YWdlQnVmZmVyKGNvbnN0IFdlYkNvcmU6OkltYWdlQnVmZmVyQmFja2VuZDo6UGFyYW1ldGVycyYg
cGFyYW1ldGVycywgc3RkOjp1bmlxdWVfcHRyPEJhY2tlbmRUeXBlPiYmIGJhY2tlbmQsIFJlbW90
ZVJlbmRlcmluZ0JhY2tlbmQmIHJlbW90ZVJlbmRlcmluZ0JhY2tlbmQsIFF1YWxpZmllZFJlbmRl
cmluZ1Jlc291cmNlSWRlbnRpZmllciByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpCiAgICAg
ICAgIDogQmFzZUNvbmNyZXRlSW1hZ2VCdWZmZXIocGFyYW1ldGVycywgV1RGTW92ZShiYWNrZW5k
KSwgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyLm9iamVjdCgpKQotICAgICAgICAsIG1fcmVt
b3RlUmVuZGVyaW5nQmFja2VuZChyZW1vdGVSZW5kZXJpbmdCYWNrZW5kKQogICAgICAgICAsIG1f
cmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcikK
ICAgICAgICAgLCBtX3JlbW90ZURpc3BsYXlMaXN0KHsgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRl
cjo6Y3JlYXRlKCp0aGlzLCByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIsIHJlbmRlcmluZ1Jl
c291cmNlSWRlbnRpZmllci5wcm9jZXNzSWRlbnRpZmllcigpLCByZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kKSB9KQogICAgIHsKLSAgICAgICAgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmRpZENyZWF0
ZUltYWdlQnVmZmVyQmFja2VuZChtX2JhY2tlbmQtPmNyZWF0ZUJhY2tlbmRIYW5kbGUoKSwgcmVu
ZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyLCAqbV9yZW1vdGVEaXNwbGF5TGlzdC5nZXQoKSk7Ci0g
ICAgfQotCi0gICAgflJlbW90ZUltYWdlQnVmZmVyKCkKLSAgICB7Ci0gICAgICAgIC8vIFVud2lu
ZCB0aGUgY29udGV4dCdzIHN0YXRlIHN0YWNrIGJlZm9yZSBkZXN0cnVjdGlvbiwgc2luY2UgY2Fs
bHMgdG8gcmVzdG9yZSBtYXkgbm90IGhhdmUKLSAgICAgICAgLy8gYmVlbiBmbHVzaGVkIHlldCwg
b3IgdGhlIHdlYiBwcm9jZXNzIG1heSBoYXZlIHRlcm1pbmF0ZWQuCi0gICAgICAgIHdoaWxlIChj
b250ZXh0KCkuc3RhY2tTaXplKCkpCi0gICAgICAgICAgICBjb250ZXh0KCkucmVzdG9yZSgpOwot
Ci0gICAgICAgIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZC53aWxsRGVzdHJveUltYWdlQnVmZmVy
KCp0aGlzKTsKKyAgICAgICAgcmVtb3RlUmVuZGVyaW5nQmFja2VuZC5kaWRDcmVhdGVJbWFnZUJ1
ZmZlckJhY2tlbmQobV9iYWNrZW5kLT5jcmVhdGVCYWNrZW5kSGFuZGxlKCksIHJlbmRlcmluZ1Jl
c291cmNlSWRlbnRpZmllciwgKm1fcmVtb3RlRGlzcGxheUxpc3QuZ2V0KCkpOwogICAgIH0KIAog
ICAgIHZvaWQgc2V0T3duZXJzaGlwSWRlbnRpdHkoY29uc3QgV2ViQ29yZTo6UHJvY2Vzc0lkZW50
aXR5JiByZXNvdXJjZU93bmVyKQpAQCAtODMsOSArNjYsNiBAQCBwdWJsaWM6CiAgICAgfQogCiBw
cml2YXRlOgotICAgIGZyaWVuZCBjbGFzcyBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOwotCi0gICAg
UmVtb3RlUmVuZGVyaW5nQmFja2VuZCYgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kOwogICAgIFF1
YWxpZmllZFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBtX3JlbmRlcmluZ1Jlc291cmNlSWRl
bnRpZmllcjsKICAgICBJUEM6OlNjb3BlZEFjdGl2ZU1lc3NhZ2VSZWNlaXZlUXVldWU8UmVtb3Rl
RGlzcGxheUxpc3RSZWNvcmRlcj4gbV9yZW1vdGVEaXNwbGF5TGlzdDsKIH07CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZC5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5n
QmFja2VuZC5jcHAKaW5kZXggN2Q2ZmQyNzhhMzNkNzMxNjVlZGMxNGQxZTNiOGIwZWUyMGVjMjc2
Ni4uM2U2MmRkMjlmM2NiMzE2MTIzODM0ZDQzOTNkN2M3OGYyZDQ0YjY1NCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJp
bmdCYWNrZW5kLmNwcApAQCAtOTAsNyArOTAsNyBAQCBSZWY8UmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZD4gUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6Y3JlYXRlKEdQVUNvbm5lY3Rpb25Ub1dlYlBybwog
UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZChHUFVDb25uZWN0
aW9uVG9XZWJQcm9jZXNzJiBncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLCBSZW1vdGVSZW5kZXJp
bmdCYWNrZW5kQ3JlYXRpb25QYXJhbWV0ZXJzJiYgY3JlYXRpb25QYXJhbWV0ZXJzLCBJUEM6OkF0
dGFjaG1lbnQmJiBjb25uZWN0aW9uSWRlbnRpZmllciwgSVBDOjpTdHJlYW1Db25uZWN0aW9uQnVm
ZmVyJiYgc3RyZWFtQnVmZmVyKQogICAgIDogbV93b3JrUXVldWUoSVBDOjpTdHJlYW1Db25uZWN0
aW9uV29ya1F1ZXVlOjpjcmVhdGUoIlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQgd29yayBxdWV1ZSIp
KQogICAgICwgbV9zdHJlYW1Db25uZWN0aW9uKElQQzo6U3RyZWFtU2VydmVyQ29ubmVjdGlvbjo6
Y3JlYXRlV2l0aERlZGljYXRlZENvbm5lY3Rpb24oV1RGTW92ZShjb25uZWN0aW9uSWRlbnRpZmll
ciksIFdURk1vdmUoc3RyZWFtQnVmZmVyKSwgbV93b3JrUXVldWUuZ2V0KCkpKQotICAgICwgbV9y
ZW1vdGVSZXNvdXJjZUNhY2hlKGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mud2ViUHJvY2Vzc0lk
ZW50aWZpZXIoKSkKKyAgICAsIG1fcmVtb3RlUmVzb3VyY2VDYWNoZSgqdGhpcywgZ3B1Q29ubmVj
dGlvblRvV2ViUHJvY2Vzcy53ZWJQcm9jZXNzSWRlbnRpZmllcigpKQogICAgICwgbV9ncHVDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzKGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MpCiAgICAgLCBtX3Jl
c291cmNlT3duZXIoZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy53ZWJQcm9jZXNzSWRlbnRpdHko
KSkKICAgICAsIG1fcmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIoY3JlYXRpb25QYXJhbWV0ZXJz
LmlkZW50aWZpZXIpCkBAIC0xMjMsNyArMTIzLDcgQEAgdm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kOjpzdG9wTGlzdGVuaW5nRm9ySVBDKCkKICAgICBtX3dvcmtRdWV1ZS0+ZGlzcGF0Y2goWyZd
IHsKICAgICAgICAgLy8gTWFrZSBzdXJlIHdlIGRlc3Ryb3kgdGhlIFJlc291cmNlQ2FjaGUgb24g
dGhlIFdvcmtRdWV1ZSBzaW5jZSBpdCBnZXRzIHBvcHVsYXRlZCBvbiB0aGUgV29ya1F1ZXVlLgog
ICAgICAgICAvLyBNYWtlIHN1cmUgcmVuZGVyaW5nIHJlc291cmNlIHJlcXVlc3QgaXMgcmVsZWFz
ZWQgYWZ0ZXIgZGVzdHJveWluZyB0aGUgY2FjaGUuCi0gICAgICAgIG1fcmVtb3RlUmVzb3VyY2VD
YWNoZSA9IHsgbV9ncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLT53ZWJQcm9jZXNzSWRlbnRpZmll
cigpIH07CisgICAgICAgIG1fcmVtb3RlUmVzb3VyY2VDYWNoZSA9IHsgKnRoaXMsIG1fZ3B1Q29u
bmVjdGlvblRvV2ViUHJvY2Vzcy0+d2ViUHJvY2Vzc0lkZW50aWZpZXIoKSB9OwogICAgICAgICBt
X3JlbmRlcmluZ1Jlc291cmNlc1JlcXVlc3QgPSB7IH07CiAgICAgfSk7CiAgICAgbV93b3JrUXVl
dWUtPnN0b3BBbmRXYWl0Rm9yQ29tcGxldGlvbigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuaCBiL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmgKaW5kZXgg
NjIyMGNlNWYxNWU1N2I4MWZmNmY2YWRhMzZjYjRkODExY2YxYTI1ZS4uMTVkYzdmZTkzNmFhZTAx
OWU2MWI2ZDI5ZDc0ZDk1MWY4ZDFmOTY3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5oCkBAIC0yOCwx
MiArMjgsMTAgQEAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCiAKICNpbmNsdWRlICJDb25uZWN0
aW9uLmgiCi0jaW5jbHVkZSAiSVBDU2VtYXBob3JlLmgiCiAjaW5jbHVkZSAiSW1hZ2VCdWZmZXJC
YWNrZW5kSGFuZGxlLmgiCiAjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCiAjaW5jbHVkZSAi
TWVzc2FnZVNlbmRlci5oIgogI2luY2x1ZGUgIlF1YWxpZmllZFJlbmRlcmluZ1Jlc291cmNlSWRl
bnRpZmllci5oIgotI2luY2x1ZGUgIlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXIuaCIKICNpbmNs
dWRlICJSZW1vdGVSZXNvdXJjZUNhY2hlLmgiCiAjaW5jbHVkZSAiUmVuZGVyaW5nQmFja2VuZElk
ZW50aWZpZXIuaCIKICNpbmNsdWRlICJSZW5kZXJpbmdVcGRhdGVJRC5oIgpAQCAtNDEsMTIgKzM5
LDggQEAKICNpbmNsdWRlICJTdHJlYW1Db25uZWN0aW9uV29ya1F1ZXVlLmgiCiAjaW5jbHVkZSAi
U3RyZWFtTWVzc2FnZVJlY2VpdmVyLmgiCiAjaW5jbHVkZSAiU3RyZWFtU2VydmVyQ29ubmVjdGlv
bi5oIgotI2luY2x1ZGUgPFdlYkNvcmUvQ29sb3JTcGFjZS5oPgotI2luY2x1ZGUgPFdlYkNvcmUv
RGlzcGxheUxpc3RJdGVtQnVmZmVySWRlbnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTWVk
aWFQbGF5ZXJJZGVudGlmaWVyLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9Qcm9jZXNzSWRlbnRpZmll
ci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUHJvY2Vzc0lkZW50aXR5Lmg+Ci0jaW5jbHVkZSA8d3Rm
L1dlYWtQdHIuaD4KIAogbmFtZXNwYWNlIFdURiB7CiBlbnVtIGNsYXNzIENyaXRpY2FsIDogYm9v
bDsKQEAgLTE0MCw3ICsxMzQsNiBAQCBwcml2YXRlOgogICAgIHZvaWQgZ2V0RGF0YUZvckltYWdl
QnVmZmVyV2l0aFF1YWxpZmllZElkZW50aWZpZXIoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgc3Rk
OjpvcHRpb25hbDxkb3VibGU+IHF1YWxpdHksIFF1YWxpZmllZFJlbmRlcmluZ1Jlc291cmNlSWRl
bnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8dWludDhfdD4mJik+JiYpOwog
ICAgIHZvaWQgZ2V0U2hhcmVhYmxlQml0bWFwRm9ySW1hZ2VCdWZmZXJXaXRoUXVhbGlmaWVkSWRl
bnRpZmllcihRdWFsaWZpZWRSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIsIFdlYkNvcmU6OlBy
ZXNlcnZlUmVzb2x1dGlvbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTaGFyZWFibGVCaXRtYXA6
OkhhbmRsZSYmKT4mJik7CiAgICAgdm9pZCBjYWNoZU5hdGl2ZUltYWdlV2l0aFF1YWxpZmllZElk
ZW50aWZpZXIoY29uc3QgU2hhcmVhYmxlQml0bWFwOjpIYW5kbGUmLCBRdWFsaWZpZWRSZW5kZXJp
bmdSZXNvdXJjZUlkZW50aWZpZXIpOwotICAgIHZvaWQgZGlkQ3JlYXRlU2hhcmVkRGlzcGxheUxp
c3RIYW5kbGVXaXRoUXVhbGlmaWVkSWRlbnRpZmllcihXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRl
bUJ1ZmZlcklkZW50aWZpZXIsIGNvbnN0IFNoYXJlZE1lbW9yeTo6SVBDSGFuZGxlJiwgUXVhbGlm
aWVkUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIGRlc3RpbmF0aW9uQnVmZmVySWRlbnRpZmll
cik7CiAgICAgdm9pZCByZWxlYXNlUmVtb3RlUmVzb3VyY2VXaXRoUXVhbGlmaWVkSWRlbnRpZmll
cihRdWFsaWZpZWRSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOwogICAgIHZvaWQgY2FjaGVG
b250V2l0aFF1YWxpZmllZElkZW50aWZpZXIoUmVmPFdlYkNvcmU6OkZvbnQ+JiYsIFF1YWxpZmll
ZFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlLmNwcAppbmRleCAw
MWYzZDEzOGUzMTg4MjVhYTY1MzlkNGNhYjdhNWI4OWU5ZjhmZGIwLi4wNzNkOTk4NDk0NTcyMTZl
Y2YyNGM1ZDU5MDYwMjljM2U4YTVmNGU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZS5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGUuY3BwCkBAIC0zMSwxMSAr
MzEsMjUgQEAKIG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAK
LVJlbW90ZVJlc291cmNlQ2FjaGU6OlJlbW90ZVJlc291cmNlQ2FjaGUoUHJvY2Vzc0lkZW50aWZp
ZXIgd2ViUHJvY2Vzc0lkZW50aWZpZXIpCi0gICAgOiBtX3Jlc291cmNlSGVhcCh3ZWJQcm9jZXNz
SWRlbnRpZmllcikKK1JlbW90ZVJlc291cmNlQ2FjaGU6OlJlbW90ZVJlc291cmNlQ2FjaGUoUmVt
b3RlUmVuZGVyaW5nQmFja2VuZCYgcmVtb3RlUmVuZGVyaW5nQmFja2VuZCwgUHJvY2Vzc0lkZW50
aWZpZXIgd2ViUHJvY2Vzc0lkZW50aWZpZXIpCisgICAgOiBtX3JlbW90ZVJlbmRlcmluZ0JhY2tl
bmQocmVtb3RlUmVuZGVyaW5nQmFja2VuZCkKKyAgICAsIG1fcmVzb3VyY2VIZWFwKHdlYlByb2Nl
c3NJZGVudGlmaWVyKQogewogfQogCitSZW1vdGVSZXNvdXJjZUNhY2hlOjp+UmVtb3RlUmVzb3Vy
Y2VDYWNoZSgpCit7CisgICAgd2lsbERlc3Ryb3lBbGxJbWFnZUJ1ZmZlcnMoKTsKK30KKworUmVt
b3RlUmVzb3VyY2VDYWNoZSYgUmVtb3RlUmVzb3VyY2VDYWNoZTo6b3BlcmF0b3I9KFJlbW90ZVJl
c291cmNlQ2FjaGUmJiBvdGhlcikKK3sKKyAgICBBU1NFUlQoJm1fcmVtb3RlUmVuZGVyaW5nQmFj
a2VuZCA9PSAmb3RoZXIubV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kKTsKKyAgICB3aWxsRGVzdHJv
eUFsbEltYWdlQnVmZmVycygpOworICAgIG1fcmVzb3VyY2VIZWFwID0gV1RGTW92ZShvdGhlci5t
X3Jlc291cmNlSGVhcCk7CisgICAgcmV0dXJuICp0aGlzOworfQorCiB2b2lkIFJlbW90ZVJlc291
cmNlQ2FjaGU6OmNhY2hlSW1hZ2VCdWZmZXIoUmVmPEltYWdlQnVmZmVyPiYmIGltYWdlQnVmZmVy
LCBRdWFsaWZpZWRSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgcmVuZGVyaW5nUmVzb3VyY2VJ
ZGVudGlmaWVyKQogewogICAgIEFTU0VSVChyZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIub2Jq
ZWN0KCkgPT0gaW1hZ2VCdWZmZXItPnJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcigpKTsKQEAg
LTc5LDExICs5MywzMiBAQCB2b2lkIFJlbW90ZVJlc291cmNlQ2FjaGU6OmRlbGV0ZUFsbEZvbnRz
KCkKICAgICBtX3Jlc291cmNlSGVhcC5kZWxldGVBbGxGb250cygpOwogfQogCit2b2lkIFJlbW90
ZVJlc291cmNlQ2FjaGU6OndpbGxEZXN0cm95SW1hZ2VCdWZmZXIoSW1hZ2VCdWZmZXImIGltYWdl
QnVmZmVyKQoreworICAgIC8vIFVud2luZCB0aGUgY29udGV4dCdzIHN0YXRlIHN0YWNrIGJlZm9y
ZSBkZXN0cnVjdGlvbiwgc2luY2UgY2FsbHMgdG8gcmVzdG9yZSBtYXkgbm90IGhhdmUKKyAgICAv
LyBiZWVuIGZsdXNoZWQgeWV0LCBvciB0aGUgd2ViIHByb2Nlc3MgbWF5IGhhdmUgdGVybWluYXRl
ZC4KKyAgICBhdXRvJiBjb250ZXh0ID0gaW1hZ2VCdWZmZXIuY29udGV4dCgpOworICAgIHdoaWxl
IChjb250ZXh0LnN0YWNrU2l6ZSgpKQorICAgICAgICBjb250ZXh0LnJlc3RvcmUoKTsKKworICAg
IG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZC53aWxsRGVzdHJveUltYWdlQnVmZmVyKGltYWdlQnVm
ZmVyKTsKK30KKwordm9pZCBSZW1vdGVSZXNvdXJjZUNhY2hlOjp3aWxsRGVzdHJveUFsbEltYWdl
QnVmZmVycygpCit7CisgICAgZm9yIChhdXRvKiBpbWFnZUJ1ZmZlciA6IG1fcmVzb3VyY2VIZWFw
LmdldEFsbEltYWdlQnVmZmVycygpKQorICAgICAgICB3aWxsRGVzdHJveUltYWdlQnVmZmVyKCpp
bWFnZUJ1ZmZlcik7Cit9CisKIGJvb2wgUmVtb3RlUmVzb3VyY2VDYWNoZTo6cmVsZWFzZVJlbW90
ZVJlc291cmNlKFF1YWxpZmllZFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciByZW5kZXJpbmdS
ZXNvdXJjZUlkZW50aWZpZXIpCiB7Ci0gICAgaWYgKG1fcmVzb3VyY2VIZWFwLnJlbW92ZUltYWdl
QnVmZmVyKHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcikKLSAgICAgICAgfHwgbV9yZXNvdXJj
ZUhlYXAucmVtb3ZlTmF0aXZlSW1hZ2UocmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKQotICAg
ICAgICB8fCBtX3Jlc291cmNlSGVhcC5yZW1vdmVGb250KHJlbmRlcmluZ1Jlc291cmNlSWRlbnRp
ZmllcikpCisgICAgaWYgKGF1dG8qIGltYWdlQnVmZmVyID0gY2FjaGVkSW1hZ2VCdWZmZXIocmVu
ZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKSkgeworICAgICAgICB3aWxsRGVzdHJveUltYWdlQnVm
ZmVyKCppbWFnZUJ1ZmZlcik7CisgICAgICAgIG1fcmVzb3VyY2VIZWFwLnJlbW92ZUltYWdlQnVm
ZmVyKHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcik7CisgICAgICAgIHJldHVybiB0cnVlOwor
ICAgIH0KKworICAgIGlmIChtX3Jlc291cmNlSGVhcC5yZW1vdmVOYXRpdmVJbWFnZShyZW5kZXJp
bmdSZXNvdXJjZUlkZW50aWZpZXIpIHx8IG1fcmVzb3VyY2VIZWFwLnJlbW92ZUZvbnQocmVuZGVy
aW5nUmVzb3VyY2VJZGVudGlmaWVyKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICAvLyBD
YWNoaW5nIHRoZSByZW1vdGUgcmVzb3VyY2Ugc2hvdWxkIGhhdmUgaGFwcGVuZWQgYmVmb3JlIHJl
bGVhc2luZyBpdC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGlj
cy9SZW1vdGVSZXNvdXJjZUNhY2hlLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhp
Y3MvUmVtb3RlUmVzb3VyY2VDYWNoZS5oCmluZGV4IDViZmQ0ZjI4ODA2NWM2NTA2NDY4OTkwNmJl
MjgyMDgwMmY0MDA4NWYuLjYxMTQ2ODYwNmQ2OWY3YjFjMzEzYjAzMDg4OGQ5Yzk0OGRlNWJkN2Qg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZXNv
dXJjZUNhY2hlLmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90
ZVJlc291cmNlQ2FjaGUuaApAQCAtMjksMTIgKzI5LDYgQEAKIAogI2luY2x1ZGUgIlF1YWxpZmll
ZFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIlF1YWxpZmllZFJlc291
cmNlSGVhcC5oIgotI2luY2x1ZGUgPFdlYkNvcmUvRm9udC5oPgotI2luY2x1ZGUgPFdlYkNvcmUv
SW1hZ2VCdWZmZXIuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL05hdGl2ZUltYWdlLmg+Ci0jaW5jbHVk
ZSA8V2ViQ29yZS9Qcm9jZXNzSWRlbnRpZmllci5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUmVuZGVy
aW5nUmVzb3VyY2VJZGVudGlmaWVyLmg+Ci0jaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KIAogbmFt
ZXNwYWNlIFdlYktpdCB7CiAKQEAgLTQyLDcgKzM2LDEwIEBAIGNsYXNzIFJlbW90ZVJlbmRlcmlu
Z0JhY2tlbmQ7CiAKIGNsYXNzIFJlbW90ZVJlc291cmNlQ2FjaGUgewogcHVibGljOgotICAgIFJl
bW90ZVJlc291cmNlQ2FjaGUoV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIgd2ViUHJvY2Vzc0lk
ZW50aWZpZXIpOworICAgIFJlbW90ZVJlc291cmNlQ2FjaGUoUmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZCYsIFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyIHdlYlByb2Nlc3NJZGVudGlmaWVyKTsKKyAg
ICB+UmVtb3RlUmVzb3VyY2VDYWNoZSgpOworCisgICAgUmVtb3RlUmVzb3VyY2VDYWNoZSYgb3Bl
cmF0b3I9KFJlbW90ZVJlc291cmNlQ2FjaGUmJik7CiAKICAgICB2b2lkIGNhY2hlSW1hZ2VCdWZm
ZXIoUmVmPFdlYkNvcmU6OkltYWdlQnVmZmVyPiYmLCBRdWFsaWZpZWRSZW5kZXJpbmdSZXNvdXJj
ZUlkZW50aWZpZXIpOwogICAgIFdlYkNvcmU6OkltYWdlQnVmZmVyKiBjYWNoZWRJbWFnZUJ1ZmZl
cihRdWFsaWZpZWRSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpIGNvbnN0OwpAQCAtNTksNiAr
NTYsMTAgQEAgcHVibGljOgogICAgIGJvb2wgaGFzQWN0aXZlRHJhd2FibGVzKCkgY29uc3QgeyBy
ZXR1cm4gbV9yZXNvdXJjZUhlYXAuaGFzSW1hZ2VCdWZmZXIoKSB8fCBtX3Jlc291cmNlSGVhcC5o
YXNOYXRpdmVJbWFnZSgpOyB9CiAKIHByaXZhdGU6CisgICAgdm9pZCB3aWxsRGVzdHJveUltYWdl
QnVmZmVyKFdlYkNvcmU6OkltYWdlQnVmZmVyJik7CisgICAgdm9pZCB3aWxsRGVzdHJveUFsbElt
YWdlQnVmZmVycygpOworCisgICAgUmVtb3RlUmVuZGVyaW5nQmFja2VuZCYgbV9yZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kOwogICAgIFF1YWxpZmllZFJlc291cmNlSGVhcCBtX3Jlc291cmNlSGVhcDsK
IH07CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>457713</attachid>
            <date>2022-04-15 12:20:52 -0700</date>
            <delta_ts>2022-04-29 18:10:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-239107-20220415122051.patch</filename>
            <type>text/plain</type>
            <size>16240</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyOTE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDRjZTRlZDA3NDkzNGQ3ZDY5
YzY5ZjMwNDk0NGNkZjAyYzVmODJmNjUuLmIyYTQ2MzZmODU4Zjg1MGYwOTMzMWMxYmM5ODk1N2Yx
NjExMWZlYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDUgQEAKKzIwMjItMDQtMTUgIFNhaWQgQWJv
dS1IYWxsYXdhICA8c2FpZEBhcHBsZS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lPTihyMjgyMTE3
KTogUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6d2lsbERlc3Ryb3lJbWFnZUJ1ZmZlcigpIGNhbiBj
cmFzaCBpZiB0aGUgUmVtb3RlUmVuZGVyaW5nQmFja2VuZCBoYXMgYWxyZWFkeSBiZWVuIGRlc3Ry
b3llZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM5
MTA3CisgICAgICAgIHJkYXI6Ly85MTYwODI5OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEFmdGVyIHIyODIxMTcsIHRoZSBhc3N1bXB0aW9uIHRoYXQg
UmVtb3RlUmVuZGVyaW5nQmFja2VuZCB3aWxsIG91dGxpdmUKKyAgICAgICAgYWxsIGl0cyBSZW1v
dGVJbWFnZUJ1ZmZlcnMgYmVjYW1lIHdyb25nLiBUaGUgUmVtb3RlUmVuZGVyaW5nQmFja2VuZCBj
YW4KKyAgICAgICAgZ2V0IGRlc3Ryb3llZCB1bmRlciBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNz
OjpkaWRDbG9zZSgpIGJlZm9yZSB0aGUKKyAgICAgICAgY2FsbE9uTWFpblRocmVhZCgpIG9mIHRo
ZSBUaHJlYWRTYWZlUmVmY291bnRlZCBpbWFnZSBidWZmZXJzIGhhdmUgcnVuLgorCisgICAgICAg
IEluc3RlYWQgb2YgaGF2aW5nIFJlbW90ZUltYWdlQnVmZmVyIGhvbGQgUmVtb3RlUmVuZGVyaW5n
QmFja2VuZCYsIHdlIGFyZQorICAgICAgICBnb2luZyB0byBoYXZlIFJlbW90ZVJlc291cmNlQ2Fj
aGUgaG9sZCB0aGlzIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQmLiBJdCAKKyAgICAgICAgd2lsbCBt
YW5hZ2UgY2FsbGluZyBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjp3aWxsRGVzdHJveUltYWdlQnVm
ZmVyKCkgCisgICAgICAgIGJlZm9yZSByZWxlYXNpbmcgYW55IFJlbW90ZUltYWdlQnVmZmVyLgor
CisgICAgICAgIE5vIG5lZWQgdG8gY2FsbCB3aWxsRGVzdHJveUltYWdlQnVmZmVyKCkgZm9yIGFs
bCB0aGUgY2FjaGVkIEltYWdlQnVmZmVycworICAgICAgICBpbiB0aGUgZGVzdHJ1Y3RvciBvZiBS
ZW1vdGVSZXNvdXJjZUNhY2hlLiAgVGhlIElPU3VyZmFjZVBvb2wgaXMgbm93IHBlcgorICAgICAg
ICBXZWJQcm9jZXNzIG9yIHBlciBSZW1vdGVSZW5kZXJpbmdCYWNrbmVkLiBTbyBhbGwgdGhlIElP
U3VyZmFjZVBvb2wgbWVtb3J5CisgICAgICAgIHdpbGwgYmUgY2xhaW1lZCBieSB0aGUgc3lzdGVt
IG9uY2UgUmVtb3RlUmVuZGVyaW5nQmFja25lZCBpcyBkZXN0cm95ZWQuCisKKyAgICAgICAgKiBH
UFVQcm9jZXNzL2dyYXBoaWNzL1F1YWxpZmllZFJlc291cmNlSGVhcC5oOgorICAgICAgICAoV2Vi
S2l0OjpRdWFsaWZpZWRSZXNvdXJjZUhlYXA6OndlYlByb2Nlc3NJZGVudGlmaWVyIGNvbnN0KToK
KyAgICAgICAgKFdlYktpdDo6UXVhbGlmaWVkUmVzb3VyY2VIZWFwOjogY29uc3QpOgorICAgICAg
ICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuaDoKKyAgICAg
ICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyLmg6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZUltYWdlQnVmZmVyOjpSZW1vdGVJbWFnZUJ1ZmZlcik6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZUltYWdlQnVmZmVyOjp+UmVtb3RlSW1hZ2VCdWZmZXIpOiBEZWxldGVkLgor
ICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHA6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OlJlbW90ZVJlbmRlcmlu
Z0JhY2tlbmQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpzdG9w
TGlzdGVuaW5nRm9ySVBDKToKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJl
bmRlcmluZ0JhY2tlbmQuaDoKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJl
c291cmNlQ2FjaGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZXNvdXJjZUNhY2hlOjpS
ZW1vdGVSZXNvdXJjZUNhY2hlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVzb3VyY2VDYWNo
ZTo6cmVsZWFzZUFsbFJlc291cmNlcyk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlc291cmNl
Q2FjaGU6OndpbGxEZXN0cm95SW1hZ2VCdWZmZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVS
ZXNvdXJjZUNhY2hlOjpyZWxlYXNlUmVtb3RlUmVzb3VyY2UpOgorICAgICAgICAqIEdQVVByb2Nl
c3MvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZS5oOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVSZXNvdXJjZUNhY2hlOjpyZXNvdXJjZUhlYXAgY29uc3QpOiBEZWxldGVkLgorCiAyMDIyLTA0
LTE1ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAgIE1h
a2UgaXQgcG9zc2libGUgdG8gYWRqdXN0IHRoZSBmaW5hbCB0cmFpdCBjb2xsZWN0aW9uIGFwcGxp
ZWQgYnkgTG9jYWxDdXJyZW50VHJhaXRDb2xsZWN0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUXVhbGlmaWVkUmVzb3VyY2VIZWFwLmggYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUXVhbGlmaWVkUmVzb3VyY2VIZWFwLmgKaW5kZXgg
NTlkMjI1NTdjMmY4ZGQzMWMyZTMyY2Y2Mjc5ZmNlMWJhNTEyZmUwMC4uZDJlYjMyOTI1YjFmNjAw
NGI2ZTc0ODdkMDhkYjNjMDYwMzUzYmQxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL2dyYXBoaWNzL1F1YWxpZmllZFJlc291cmNlSGVhcC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9RdWFsaWZpZWRSZXNvdXJjZUhlYXAuaApAQCAtMSw1ICsx
LDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAyMS0yMDIyIEFwcGxlIEluYy4gIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTQ0LDYgKzQ0
LDggQEAgcHVibGljOgogICAgIHsKICAgICB9CiAKKyAgICBXZWJDb3JlOjpQcm9jZXNzSWRlbnRp
ZmllciB3ZWJQcm9jZXNzSWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1fd2ViUHJvY2Vzc0lk
ZW50aWZpZXI7IH0KKwogICAgIHZvaWQgYWRkKFF1YWxpZmllZFJlbmRlcmluZ1Jlc291cmNlSWRl
bnRpZmllciByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIsIFJlZjxXZWJDb3JlOjpJbWFnZUJ1
ZmZlcj4mJiBpbWFnZUJ1ZmZlcikKICAgICB7CiAgICAgICAgIGFkZChyZW5kZXJpbmdSZXNvdXJj
ZUlkZW50aWZpZXIsIFdURk1vdmUoaW1hZ2VCdWZmZXIpLCBtX2ltYWdlQnVmZmVyQ291bnQpOwpA
QCAtMTA4LDYgKzExMCwxMSBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBnZXQ8V2ViQ29yZTo6
Rm9udD4ocmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKICAgICB9CiAKKyAgICBWZWN0b3I8
V2ViQ29yZTo6SW1hZ2VCdWZmZXIqPiBnZXRBbGxJbWFnZUJ1ZmZlcnMoKSBjb25zdAorICAgIHsK
KyAgICAgICAgcmV0dXJuIGdldEFsbDxXZWJDb3JlOjpJbWFnZUJ1ZmZlcj4oKTsKKyAgICB9Cisg
ICAgCiAgICAgYm9vbCBoYXNJbWFnZUJ1ZmZlcigpIGNvbnN0CiAgICAgewogICAgICAgICBjaGVj
a0ludmFyaWFudHMoKTsKQEAgLTE4Miw2ICsxODksMjIgQEAgcHJpdmF0ZToKICAgICAgICAgcmV0
dXJuIHZhbHVlID8gdmFsdWUtPnB0cigpIDogbnVsbHB0cjsKICAgICB9CiAKKyAgICB0ZW1wbGF0
ZSA8dHlwZW5hbWUgVD4KKyAgICBWZWN0b3I8VCo+IGdldEFsbCgpIGNvbnN0CisgICAgeworICAg
ICAgICBjaGVja0ludmFyaWFudHMoKTsKKworICAgICAgICBWZWN0b3I8VCo+IHJlc291cmNlczsK
KyAgICAgICAgcmVzb3VyY2VzLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkobV9pbWFnZUJ1ZmZlckNv
dW50KTsKKworICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIHZhbHVlIDogbV9yZXNvdXJjZXMudmFs
dWVzKCkpIHsKKyAgICAgICAgICAgIGlmIChhdXRvIHJlc291cmNlID0gc3RkOjpnZXRfaWY8UmVm
PFQ+PigmdmFsdWUpKQorICAgICAgICAgICAgICAgIHJlc291cmNlcy51bmNoZWNrZWRBcHBlbmQo
cmVzb3VyY2UtPnB0cigpKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiByZXNvdXJjZXM7
CisgICAgfQorCiAgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CiAgICAgYm9vbCByZW1vdmUoUXVh
bGlmaWVkUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRp
ZmllciwgdW5zaWduZWQmIGNvdW50ZXIpCiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMLmggYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuaAppbmRl
eCBmZmY1ZTcxYzM1YjMyMTM4NzdhOTY1Njk5NDFhNmY1YjhkOWYzNzFkLi41YmM5ZTI0YTUzZmRm
NjI3NTM5NTQ0MjkzYTE5NmFkYzU3NzNlYTU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuaApAQCAt
MzYsNiArMzYsNyBAQAogI2luY2x1ZGUgIlN0cmVhbU1lc3NhZ2VSZWNlaXZlci5oIgogI2luY2x1
ZGUgIlN0cmVhbVNlcnZlckNvbm5lY3Rpb24uaCIKICNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxl
bWVudGVkLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9QaXhlbEJ1ZmZlci5oPgogI2luY2x1ZGUgPHd0
Zi9UaHJlYWRBc3NlcnRpb25zLmg+CiAjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVy
LmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXIu
aAppbmRleCAzYzRiZWRhZTU5OWRkYzNkZGE3ZjE2YjIzMDIwNTRkOTAwMjc1MjdhLi45MmY1Nzdj
OGM4OTY5YmFkZGY4NmY5ZDY5ODNhYmJiNDdlN2U4MGJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXIuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXIuaApAQCAtMSw1ICsx
LDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjAtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAtMjAyMiBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI3LDE1
ICsyNyw5IEBACiAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCiAKLSNpbmNsdWRlICJEZWNvZGVy
LmgiCi0jaW5jbHVkZSAiR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIgotI2luY2x1ZGUgIkxv
Z2dpbmcuaCIKICNpbmNsdWRlICJSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyLmgiCiAjaW5jbHVk
ZSAiU2NvcGVkQWN0aXZlTWVzc2FnZVJlY2VpdmVRdWV1ZS5oIgogI2luY2x1ZGUgPFdlYkNvcmUv
Q29uY3JldGVJbWFnZUJ1ZmZlci5oPgotI2luY2x1ZGUgPFdlYkNvcmUvRGlzcGxheUxpc3QuaD4K
LSNpbmNsdWRlIDxXZWJDb3JlL0Rpc3BsYXlMaXN0SXRlbXMuaD4KLSNpbmNsdWRlIDxXZWJDb3Jl
L0Rpc3BsYXlMaXN0UmVwbGF5ZXIuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKQEAgLTU5LDIx
ICs1MywxMCBAQCBwdWJsaWM6CiAKICAgICBSZW1vdGVJbWFnZUJ1ZmZlcihjb25zdCBXZWJDb3Jl
OjpJbWFnZUJ1ZmZlckJhY2tlbmQ6OlBhcmFtZXRlcnMmIHBhcmFtZXRlcnMsIHN0ZDo6dW5pcXVl
X3B0cjxCYWNrZW5kVHlwZT4mJiBiYWNrZW5kLCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kJiByZW1v
dGVSZW5kZXJpbmdCYWNrZW5kLCBRdWFsaWZpZWRSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIg
cmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKQogICAgICAgICA6IEJhc2VDb25jcmV0ZUltYWdl
QnVmZmVyKHBhcmFtZXRlcnMsIFdURk1vdmUoYmFja2VuZCksIHJlbmRlcmluZ1Jlc291cmNlSWRl
bnRpZmllci5vYmplY3QoKSkKLSAgICAgICAgLCBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmQocmVt
b3RlUmVuZGVyaW5nQmFja2VuZCkKICAgICAgICAgLCBtX3JlbmRlcmluZ1Jlc291cmNlSWRlbnRp
ZmllcihyZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpCiAgICAgICAgICwgbV9yZW1vdGVEaXNw
bGF5TGlzdCh7IFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OmNyZWF0ZSgqdGhpcywgcmVuZGVy
aW5nUmVzb3VyY2VJZGVudGlmaWVyLCByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIucHJvY2Vz
c0lkZW50aWZpZXIoKSwgcmVtb3RlUmVuZGVyaW5nQmFja2VuZCkgfSkKICAgICB7Ci0gICAgICAg
IG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZC5kaWRDcmVhdGVJbWFnZUJ1ZmZlckJhY2tlbmQobV9i
YWNrZW5kLT5jcmVhdGVCYWNrZW5kSGFuZGxlKCksIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmll
ciwgKm1fcmVtb3RlRGlzcGxheUxpc3QuZ2V0KCkpOwotICAgIH0KLQotICAgIH5SZW1vdGVJbWFn
ZUJ1ZmZlcigpCi0gICAgewotICAgICAgICAvLyBVbndpbmQgdGhlIGNvbnRleHQncyBzdGF0ZSBz
dGFjayBiZWZvcmUgZGVzdHJ1Y3Rpb24sIHNpbmNlIGNhbGxzIHRvIHJlc3RvcmUgbWF5IG5vdCBo
YXZlCi0gICAgICAgIC8vIGJlZW4gZmx1c2hlZCB5ZXQsIG9yIHRoZSB3ZWIgcHJvY2VzcyBtYXkg
aGF2ZSB0ZXJtaW5hdGVkLgotICAgICAgICB3aGlsZSAoY29udGV4dCgpLnN0YWNrU2l6ZSgpKQot
ICAgICAgICAgICAgY29udGV4dCgpLnJlc3RvcmUoKTsKLQotICAgICAgICBtX3JlbW90ZVJlbmRl
cmluZ0JhY2tlbmQud2lsbERlc3Ryb3lJbWFnZUJ1ZmZlcigqdGhpcyk7CisgICAgICAgIHJlbW90
ZVJlbmRlcmluZ0JhY2tlbmQuZGlkQ3JlYXRlSW1hZ2VCdWZmZXJCYWNrZW5kKG1fYmFja2VuZC0+
Y3JlYXRlQmFja2VuZEhhbmRsZSgpLCByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIsICptX3Jl
bW90ZURpc3BsYXlMaXN0LmdldCgpKTsKICAgICB9CiAKICAgICB2b2lkIHNldE93bmVyc2hpcElk
ZW50aXR5KGNvbnN0IFdlYkNvcmU6OlByb2Nlc3NJZGVudGl0eSYgcmVzb3VyY2VPd25lcikKQEAg
LTgzLDkgKzY2LDYgQEAgcHVibGljOgogICAgIH0KIAogcHJpdmF0ZToKLSAgICBmcmllbmQgY2xh
c3MgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDsKLQotICAgIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQm
IG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZDsKICAgICBRdWFsaWZpZWRSZW5kZXJpbmdSZXNvdXJj
ZUlkZW50aWZpZXIgbV9yZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXI7CiAgICAgSVBDOjpTY29w
ZWRBY3RpdmVNZXNzYWdlUmVjZWl2ZVF1ZXVlPFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI+IG1f
cmVtb3RlRGlzcGxheUxpc3Q7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwIGIvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwCmluZGV4IDdkNmZk
Mjc4YTMzZDczMTY1ZWRjMTRkMWUzYjhiMGVlMjBlYzI3NjYuLmU4NzVjMzEyNmU0OTE2YTcwY2Qw
YWVlNGEzYzdhY2ExMjcyZTQxNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAKQEAgLTkwLDcg
KzkwLDcgQEAgUmVmPFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ+IFJlbW90ZVJlbmRlcmluZ0JhY2tl
bmQ6OmNyZWF0ZShHUFVDb25uZWN0aW9uVG9XZWJQcm8KIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6
OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQoR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgZ3B1Q29u
bmVjdGlvblRvV2ViUHJvY2VzcywgUmVtb3RlUmVuZGVyaW5nQmFja2VuZENyZWF0aW9uUGFyYW1l
dGVycyYmIGNyZWF0aW9uUGFyYW1ldGVycywgSVBDOjpBdHRhY2htZW50JiYgY29ubmVjdGlvbklk
ZW50aWZpZXIsIElQQzo6U3RyZWFtQ29ubmVjdGlvbkJ1ZmZlciYmIHN0cmVhbUJ1ZmZlcikKICAg
ICA6IG1fd29ya1F1ZXVlKElQQzo6U3RyZWFtQ29ubmVjdGlvbldvcmtRdWV1ZTo6Y3JlYXRlKCJS
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kIHdvcmsgcXVldWUiKSkKICAgICAsIG1fc3RyZWFtQ29ubmVj
dGlvbihJUEM6OlN0cmVhbVNlcnZlckNvbm5lY3Rpb246OmNyZWF0ZVdpdGhEZWRpY2F0ZWRDb25u
ZWN0aW9uKFdURk1vdmUoY29ubmVjdGlvbklkZW50aWZpZXIpLCBXVEZNb3ZlKHN0cmVhbUJ1ZmZl
ciksIG1fd29ya1F1ZXVlLmdldCgpKSkKLSAgICAsIG1fcmVtb3RlUmVzb3VyY2VDYWNoZShncHVD
b25uZWN0aW9uVG9XZWJQcm9jZXNzLndlYlByb2Nlc3NJZGVudGlmaWVyKCkpCisgICAgLCBtX3Jl
bW90ZVJlc291cmNlQ2FjaGUoKnRoaXMsIGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mud2ViUHJv
Y2Vzc0lkZW50aWZpZXIoKSkKICAgICAsIG1fZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzcyhncHVD
b25uZWN0aW9uVG9XZWJQcm9jZXNzKQogICAgICwgbV9yZXNvdXJjZU93bmVyKGdwdUNvbm5lY3Rp
b25Ub1dlYlByb2Nlc3Mud2ViUHJvY2Vzc0lkZW50aXR5KCkpCiAgICAgLCBtX3JlbmRlcmluZ0Jh
Y2tlbmRJZGVudGlmaWVyKGNyZWF0aW9uUGFyYW1ldGVycy5pZGVudGlmaWVyKQpAQCAtMTIzLDcg
KzEyMyw3IEBAIHZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6c3RvcExpc3RlbmluZ0ZvcklQ
QygpCiAgICAgbV93b3JrUXVldWUtPmRpc3BhdGNoKFsmXSB7CiAgICAgICAgIC8vIE1ha2Ugc3Vy
ZSB3ZSBkZXN0cm95IHRoZSBSZXNvdXJjZUNhY2hlIG9uIHRoZSBXb3JrUXVldWUgc2luY2UgaXQg
Z2V0cyBwb3B1bGF0ZWQgb24gdGhlIFdvcmtRdWV1ZS4KICAgICAgICAgLy8gTWFrZSBzdXJlIHJl
bmRlcmluZyByZXNvdXJjZSByZXF1ZXN0IGlzIHJlbGVhc2VkIGFmdGVyIGRlc3Ryb3lpbmcgdGhl
IGNhY2hlLgotICAgICAgICBtX3JlbW90ZVJlc291cmNlQ2FjaGUgPSB7IG1fZ3B1Q29ubmVjdGlv
blRvV2ViUHJvY2Vzcy0+d2ViUHJvY2Vzc0lkZW50aWZpZXIoKSB9OworICAgICAgICBtX3JlbW90
ZVJlc291cmNlQ2FjaGUucmVsZWFzZUFsbFJlc291cmNlcygpOwogICAgICAgICBtX3JlbmRlcmlu
Z1Jlc291cmNlc1JlcXVlc3QgPSB7IH07CiAgICAgfSk7CiAgICAgbV93b3JrUXVldWUtPnN0b3BB
bmRXYWl0Rm9yQ29tcGxldGlvbigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuaCBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmgKaW5kZXggNjIyMGNlNWYx
NWU1N2I4MWZmNmY2YWRhMzZjYjRkODExY2YxYTI1ZS4uMTVkYzdmZTkzNmFhZTAxOWU2MWI2ZDI5
ZDc0ZDk1MWY4ZDFmOTY3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dy
YXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5oCkBAIC0yOCwxMiArMjgsMTAg
QEAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCiAKICNpbmNsdWRlICJDb25uZWN0aW9uLmgiCi0j
aW5jbHVkZSAiSVBDU2VtYXBob3JlLmgiCiAjaW5jbHVkZSAiSW1hZ2VCdWZmZXJCYWNrZW5kSGFu
ZGxlLmgiCiAjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCiAjaW5jbHVkZSAiTWVzc2FnZVNl
bmRlci5oIgogI2luY2x1ZGUgIlF1YWxpZmllZFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllci5o
IgotI2luY2x1ZGUgIlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXIuaCIKICNpbmNsdWRlICJSZW1v
dGVSZXNvdXJjZUNhY2hlLmgiCiAjaW5jbHVkZSAiUmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIu
aCIKICNpbmNsdWRlICJSZW5kZXJpbmdVcGRhdGVJRC5oIgpAQCAtNDEsMTIgKzM5LDggQEAKICNp
bmNsdWRlICJTdHJlYW1Db25uZWN0aW9uV29ya1F1ZXVlLmgiCiAjaW5jbHVkZSAiU3RyZWFtTWVz
c2FnZVJlY2VpdmVyLmgiCiAjaW5jbHVkZSAiU3RyZWFtU2VydmVyQ29ubmVjdGlvbi5oIgotI2lu
Y2x1ZGUgPFdlYkNvcmUvQ29sb3JTcGFjZS5oPgotI2luY2x1ZGUgPFdlYkNvcmUvRGlzcGxheUxp
c3RJdGVtQnVmZmVySWRlbnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFQbGF5ZXJJ
ZGVudGlmaWVyLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9Qcm9jZXNzSWRlbnRpZmllci5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvUHJvY2Vzc0lkZW50aXR5Lmg+Ci0jaW5jbHVkZSA8d3RmL1dlYWtQdHIu
aD4KIAogbmFtZXNwYWNlIFdURiB7CiBlbnVtIGNsYXNzIENyaXRpY2FsIDogYm9vbDsKQEAgLTE0
MCw3ICsxMzQsNiBAQCBwcml2YXRlOgogICAgIHZvaWQgZ2V0RGF0YUZvckltYWdlQnVmZmVyV2l0
aFF1YWxpZmllZElkZW50aWZpZXIoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgc3RkOjpvcHRpb25h
bDxkb3VibGU+IHF1YWxpdHksIFF1YWxpZmllZFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8dWludDhfdD4mJik+JiYpOwogICAgIHZvaWQg
Z2V0U2hhcmVhYmxlQml0bWFwRm9ySW1hZ2VCdWZmZXJXaXRoUXVhbGlmaWVkSWRlbnRpZmllcihR
dWFsaWZpZWRSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIsIFdlYkNvcmU6OlByZXNlcnZlUmVz
b2x1dGlvbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSYm
KT4mJik7CiAgICAgdm9pZCBjYWNoZU5hdGl2ZUltYWdlV2l0aFF1YWxpZmllZElkZW50aWZpZXIo
Y29uc3QgU2hhcmVhYmxlQml0bWFwOjpIYW5kbGUmLCBRdWFsaWZpZWRSZW5kZXJpbmdSZXNvdXJj
ZUlkZW50aWZpZXIpOwotICAgIHZvaWQgZGlkQ3JlYXRlU2hhcmVkRGlzcGxheUxpc3RIYW5kbGVX
aXRoUXVhbGlmaWVkSWRlbnRpZmllcihXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbUJ1ZmZlcklk
ZW50aWZpZXIsIGNvbnN0IFNoYXJlZE1lbW9yeTo6SVBDSGFuZGxlJiwgUXVhbGlmaWVkUmVuZGVy
aW5nUmVzb3VyY2VJZGVudGlmaWVyIGRlc3RpbmF0aW9uQnVmZmVySWRlbnRpZmllcik7CiAgICAg
dm9pZCByZWxlYXNlUmVtb3RlUmVzb3VyY2VXaXRoUXVhbGlmaWVkSWRlbnRpZmllcihRdWFsaWZp
ZWRSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOwogICAgIHZvaWQgY2FjaGVGb250V2l0aFF1
YWxpZmllZElkZW50aWZpZXIoUmVmPFdlYkNvcmU6OkZvbnQ+JiYsIFF1YWxpZmllZFJlbmRlcmlu
Z1Jlc291cmNlSWRlbnRpZmllcik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlLmNwcAppbmRleCAwMWYzZDEzOGUz
MTg4MjVhYTY1MzlkNGNhYjdhNWI4OWU5ZjhmZGIwLi40NTk3NmQzZGQzNjJhZjI3YjFiNTU4MGVj
ZDk5NzNlZDNkNjAxN2I0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3Jh
cGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGUuY3BwCkBAIC0zMSw4ICszMSw5IEBACiBu
YW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCi1SZW1vdGVSZXNv
dXJjZUNhY2hlOjpSZW1vdGVSZXNvdXJjZUNhY2hlKFByb2Nlc3NJZGVudGlmaWVyIHdlYlByb2Nl
c3NJZGVudGlmaWVyKQotICAgIDogbV9yZXNvdXJjZUhlYXAod2ViUHJvY2Vzc0lkZW50aWZpZXIp
CitSZW1vdGVSZXNvdXJjZUNhY2hlOjpSZW1vdGVSZXNvdXJjZUNhY2hlKFJlbW90ZVJlbmRlcmlu
Z0JhY2tlbmQmIHJlbW90ZVJlbmRlcmluZ0JhY2tlbmQsIFByb2Nlc3NJZGVudGlmaWVyIHdlYlBy
b2Nlc3NJZGVudGlmaWVyKQorICAgIDogbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kKHJlbW90ZVJl
bmRlcmluZ0JhY2tlbmQpCisgICAgLCBtX3Jlc291cmNlSGVhcCh3ZWJQcm9jZXNzSWRlbnRpZmll
cikKIHsKIH0KIApAQCAtNzksMTEgKzgwLDM0IEBAIHZvaWQgUmVtb3RlUmVzb3VyY2VDYWNoZTo6
ZGVsZXRlQWxsRm9udHMoKQogICAgIG1fcmVzb3VyY2VIZWFwLmRlbGV0ZUFsbEZvbnRzKCk7CiB9
CiAKK3ZvaWQgUmVtb3RlUmVzb3VyY2VDYWNoZTo6cmVsZWFzZUFsbFJlc291cmNlcygpCit7Cisg
ICAgZm9yIChhdXRvKiBpbWFnZUJ1ZmZlciA6IG1fcmVzb3VyY2VIZWFwLmdldEFsbEltYWdlQnVm
ZmVycygpKQorICAgICAgICB3aWxsRGVzdHJveUltYWdlQnVmZmVyKCppbWFnZUJ1ZmZlcik7CisK
KyAgICBtX3Jlc291cmNlSGVhcCA9IHsgbV9yZXNvdXJjZUhlYXAud2ViUHJvY2Vzc0lkZW50aWZp
ZXIoKSB9OworfQorCit2b2lkIFJlbW90ZVJlc291cmNlQ2FjaGU6OndpbGxEZXN0cm95SW1hZ2VC
dWZmZXIoSW1hZ2VCdWZmZXImIGltYWdlQnVmZmVyKQoreworICAgIC8vIFVud2luZCB0aGUgY29u
dGV4dCdzIHN0YXRlIHN0YWNrIGJlZm9yZSBkZXN0cnVjdGlvbiwgc2luY2UgY2FsbHMgdG8gcmVz
dG9yZSBtYXkgbm90IGhhdmUKKyAgICAvLyBiZWVuIGZsdXNoZWQgeWV0LCBvciB0aGUgd2ViIHBy
b2Nlc3MgbWF5IGhhdmUgdGVybWluYXRlZC4KKyAgICBhdXRvJiBjb250ZXh0ID0gaW1hZ2VCdWZm
ZXIuY29udGV4dCgpOworICAgIHdoaWxlIChjb250ZXh0LnN0YWNrU2l6ZSgpKQorICAgICAgICBj
b250ZXh0LnJlc3RvcmUoKTsKKworICAgIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZC53aWxsRGVz
dHJveUltYWdlQnVmZmVyKGltYWdlQnVmZmVyKTsKK30KKwogYm9vbCBSZW1vdGVSZXNvdXJjZUNh
Y2hlOjpyZWxlYXNlUmVtb3RlUmVzb3VyY2UoUXVhbGlmaWVkUmVuZGVyaW5nUmVzb3VyY2VJZGVu
dGlmaWVyIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcikKIHsKLSAgICBpZiAobV9yZXNvdXJj
ZUhlYXAucmVtb3ZlSW1hZ2VCdWZmZXIocmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKQotICAg
ICAgICB8fCBtX3Jlc291cmNlSGVhcC5yZW1vdmVOYXRpdmVJbWFnZShyZW5kZXJpbmdSZXNvdXJj
ZUlkZW50aWZpZXIpCi0gICAgICAgIHx8IG1fcmVzb3VyY2VIZWFwLnJlbW92ZUZvbnQocmVuZGVy
aW5nUmVzb3VyY2VJZGVudGlmaWVyKSkKKyAgICBpZiAoYXV0byogaW1hZ2VCdWZmZXIgPSBjYWNo
ZWRJbWFnZUJ1ZmZlcihyZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpKSB7CisgICAgICAgIHdp
bGxEZXN0cm95SW1hZ2VCdWZmZXIoKmltYWdlQnVmZmVyKTsKKyAgICAgICAgbV9yZXNvdXJjZUhl
YXAucmVtb3ZlSW1hZ2VCdWZmZXIocmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKKyAgICAg
ICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgaWYgKG1fcmVzb3VyY2VIZWFwLnJlbW92ZU5h
dGl2ZUltYWdlKHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcikgfHwgbV9yZXNvdXJjZUhlYXAu
cmVtb3ZlRm9udChyZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpKQogICAgICAgICByZXR1cm4g
dHJ1ZTsKIAogICAgIC8vIENhY2hpbmcgdGhlIHJlbW90ZSByZXNvdXJjZSBzaG91bGQgaGF2ZSBo
YXBwZW5lZCBiZWZvcmUgcmVsZWFzaW5nIGl0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGUuaCBiL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlLmgKaW5kZXggNWJmZDRmMjg4
MDY1YzY1MDY0Njg5OTA2YmUyODIwODAyZjQwMDg1Zi4uMmEyZWY0NGExOWFjMTg0MzVjN2E4ZDZk
ZTIxMjUyYWQ2MDJmZmE0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dy
YXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZS5oCkBAIC0yOSwxMiArMjksNiBAQAogCiAj
aW5jbHVkZSAiUXVhbGlmaWVkUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyLmgiCiAjaW5jbHVk
ZSAiUXVhbGlmaWVkUmVzb3VyY2VIZWFwLmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9Gb250Lmg+Ci0j
aW5jbHVkZSA8V2ViQ29yZS9JbWFnZUJ1ZmZlci5oPgotI2luY2x1ZGUgPFdlYkNvcmUvTmF0aXZl
SW1hZ2UuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1Byb2Nlc3NJZGVudGlmaWVyLmg+Ci0jaW5jbHVk
ZSA8V2ViQ29yZS9SZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIuaD4KLSNpbmNsdWRlIDx3dGYv
SGFzaE1hcC5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIApAQCAtNDIsNyArMzYsNyBAQCBjbGFz
cyBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOwogCiBjbGFzcyBSZW1vdGVSZXNvdXJjZUNhY2hlIHsK
IHB1YmxpYzoKLSAgICBSZW1vdGVSZXNvdXJjZUNhY2hlKFdlYkNvcmU6OlByb2Nlc3NJZGVudGlm
aWVyIHdlYlByb2Nlc3NJZGVudGlmaWVyKTsKKyAgICBSZW1vdGVSZXNvdXJjZUNhY2hlKFJlbW90
ZVJlbmRlcmluZ0JhY2tlbmQmLCBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciB3ZWJQcm9jZXNz
SWRlbnRpZmllcik7CiAKICAgICB2b2lkIGNhY2hlSW1hZ2VCdWZmZXIoUmVmPFdlYkNvcmU6Oklt
YWdlQnVmZmVyPiYmLCBRdWFsaWZpZWRSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOwogICAg
IFdlYkNvcmU6OkltYWdlQnVmZmVyKiBjYWNoZWRJbWFnZUJ1ZmZlcihRdWFsaWZpZWRSZW5kZXJp
bmdSZXNvdXJjZUlkZW50aWZpZXIpIGNvbnN0OwpAQCAtNTIsMTMgKzQ2LDE1IEBAIHB1YmxpYzoK
ICAgICB2b2lkIGNhY2hlRm9udChSZWY8V2ViQ29yZTo6Rm9udD4mJiwgUXVhbGlmaWVkUmVuZGVy
aW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKICAgICBXZWJDb3JlOjpGb250KiBjYWNoZWRGb250KFF1
YWxpZmllZFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcikgY29uc3Q7CiAgICAgdm9pZCBkZWxl
dGVBbGxGb250cygpOworICAgIHZvaWQgcmVsZWFzZUFsbFJlc291cmNlcygpOwogICAgIGJvb2wg
cmVsZWFzZVJlbW90ZVJlc291cmNlKFF1YWxpZmllZFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmll
cik7CiAKLSAgICBjb25zdCBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6UmVzb3VyY2VIZWFwJiByZXNv
dXJjZUhlYXAoKSBjb25zdCB7IHJldHVybiBtX3Jlc291cmNlSGVhcDsgfQotCiAgICAgYm9vbCBo
YXNBY3RpdmVEcmF3YWJsZXMoKSBjb25zdCB7IHJldHVybiBtX3Jlc291cmNlSGVhcC5oYXNJbWFn
ZUJ1ZmZlcigpIHx8IG1fcmVzb3VyY2VIZWFwLmhhc05hdGl2ZUltYWdlKCk7IH0KIAogcHJpdmF0
ZToKKyAgICB2b2lkIHdpbGxEZXN0cm95SW1hZ2VCdWZmZXIoV2ViQ29yZTo6SW1hZ2VCdWZmZXIm
KTsKKworICAgIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQmIG1fcmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZDsKICAgICBRdWFsaWZpZWRSZXNvdXJjZUhlYXAgbV9yZXNvdXJjZUhlYXA7CiB9OwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>457786</attachid>
            <date>2022-04-17 17:54:50 -0700</date>
            <delta_ts>2022-04-29 18:10:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-239107-20220417175449.patch</filename>
            <type>text/plain</type>
            <size>18198</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyOTQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTU0NmY0ZTI3NDEyZDY3
YzU3ZTBjNDE0OTkzYjFjMzIyNjQ3ZjJmOC4uODQwNjhjNDdlMzNmODQxYTE4NDE5YmZiNjEwMzdl
MGViM2E1YTk1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIyLTA0LTE3ICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgorCisgICAgICAgIFJFR1JFU1NJT04ocjI4
MjExNyk6IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OndpbGxEZXN0cm95SW1hZ2VCdWZmZXIoKSBj
YW4gY3Jhc2ggaWYgdGhlIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQgaGFzIGFscmVhZHkgYmVlbiBk
ZXN0cm95ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIzOTEwNworICAgICAgICByZGFyOi8vOTE2MDgyOTgKKworICAgICAgICBSZXZpZXdlZCBieSBT
aW1vbiBGcmFzZXIuCisKKyAgICAgICAgVGhlIHZpcnR1YWwgbWV0aG9kIEltYWdlQnVmZmVyOjp3
aWxsQmVEZXN0cm95ZWQoKSBjYW4gYmUgIGNhbGxlZCBieSB0aGUKKyAgICAgICAgY2xpZW50IGJl
Zm9yZSBpdCByZWxlYXNlcyB0aGUgbGFzdCByZWZlcmVuY2UgdG8gdGhpcyBJbWFnZUJ1ZmZlci4K
KworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmg6CisgICAgICAgIChX
ZWJDb3JlOjpJbWFnZUJ1ZmZlcjo6d2lsbEJlRGVzdHJveWVkKToKKwogMjAyMi0wNC0xNyAgTGF1
cm8gTW91cmEgIDxsbW91cmFAaWdhbGlhLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCBub24t
dW5pZmllZCBidWlsZCBmaXhlcyBhZnRlciAyNDk2MzJAbWFpbgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBkZGJmZDU3
M2EzMDY2YWJmNzhmOTE3MjNlYTY1Mzc5NGRhYTVkOWMwLi5hNDIxM2NhOGRjOTk4ZTdiM2QxYjky
NjRlNGY4NWI4NDBlYmIzYWQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDIyLTA0LTE3
ICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgorCisgICAgICAgIFJFR1JFU1NJ
T04ocjI4MjExNyk6IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OndpbGxEZXN0cm95SW1hZ2VCdWZm
ZXIoKSBjYW4gY3Jhc2ggaWYgdGhlIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQgaGFzIGFscmVhZHkg
YmVlbiBkZXN0cm95ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIzOTEwNworICAgICAgICByZGFyOi8vOTE2MDgyOTgKKworICAgICAgICBSZXZpZXdl
ZCBieSBTaW1vbiBGcmFzZXIuCisKKyAgICAgICAgQWZ0ZXIgcjI4MjExNywgdGhlIGFzc3VtcHRp
b24gdGhhdCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kIHdpbGwgb3V0bGl2ZQorICAgICAgICBhbGwg
aXRzIFJlbW90ZUltYWdlQnVmZmVycyBiZWNhbWUgd3JvbmcuIFRoZSBSZW1vdGVSZW5kZXJpbmdC
YWNrZW5kIGNhbgorICAgICAgICBnZXQgZGVzdHJveWVkIHVuZGVyIEdQVUNvbm5lY3Rpb25Ub1dl
YlByb2Nlc3M6OmRpZENsb3NlKCkgYmVmb3JlIHRoZQorICAgICAgICBjYWxsT25NYWluVGhyZWFk
KCkgb2YgdGhlIFRocmVhZFNhZmVSZWZjb3VudGVkIGltYWdlIGJ1ZmZlcnMgaGF2ZSBydW4uCisK
KyAgICAgICAgSW5zdGVhZCBvZiBoYXZpbmcgUmVtb3RlSW1hZ2VCdWZmZXIgaG9sZCBSZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kJiwgd2UgYXJlCisgICAgICAgIGdvaW5nIHRvIGhhdmUgUmVtb3RlUmVz
b3VyY2VDYWNoZSBob2xkIHRoaXMgUmVtb3RlUmVuZGVyaW5nQmFja2VuZCYuIEl0IAorICAgICAg
ICB3aWxsIG1hbmFnZSBjYWxsaW5nIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OndpbGxEZXN0cm95
SW1hZ2VCdWZmZXIoKSAKKyAgICAgICAgYmVmb3JlIHJlbGVhc2luZyBhbnkgUmVtb3RlSW1hZ2VC
dWZmZXIuCisKKyAgICAgICAgTm8gbmVlZCB0byBjYWxsIHdpbGxEZXN0cm95SW1hZ2VCdWZmZXIo
KSBmb3IgYWxsIHRoZSBjYWNoZWQgSW1hZ2VCdWZmZXJzCisgICAgICAgIGluIHRoZSBkZXN0cnVj
dG9yIG9mIFJlbW90ZVJlc291cmNlQ2FjaGUuICBUaGUgSU9TdXJmYWNlUG9vbCBpcyBub3cgcGVy
CisgICAgICAgIFdlYlByb2Nlc3Mgb3IgcGVyIFJlbW90ZVJlbmRlcmluZ0JhY2tuZWQuIFNvIGFs
bCB0aGUgSU9TdXJmYWNlUG9vbCBtZW1vcnkKKyAgICAgICAgd2lsbCBiZSBjbGFpbWVkIGJ5IHRo
ZSBzeXN0ZW0gb25jZSBSZW1vdGVSZW5kZXJpbmdCYWNrbmVkIGlzIGRlc3Ryb3llZC4KKworICAg
ICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUXVhbGlmaWVkUmVzb3VyY2VIZWFwLmg6CisgICAg
ICAgIChXZWJLaXQ6OlF1YWxpZmllZFJlc291cmNlSGVhcDo6d2ViUHJvY2Vzc0lkZW50aWZpZXIg
Y29uc3QpOgorICAgICAgICAoV2ViS2l0OjpRdWFsaWZpZWRSZXNvdXJjZUhlYXA6OiBjb25zdCk6
CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5o
OgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXIuaDoKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlSW1hZ2VCdWZmZXI6OlJlbW90ZUltYWdlQnVmZmVyKToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlSW1hZ2VCdWZmZXI6On5SZW1vdGVJbWFnZUJ1ZmZlcik6IERl
bGV0ZWQuCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6UmVtb3Rl
UmVuZGVyaW5nQmFja2VuZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tl
bmQ6OnN0b3BMaXN0ZW5pbmdGb3JJUEMpOgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3Mv
UmVtb3RlUmVuZGVyaW5nQmFja2VuZC5oOgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3Mv
UmVtb3RlUmVzb3VyY2VDYWNoZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlc291cmNl
Q2FjaGU6OlJlbW90ZVJlc291cmNlQ2FjaGUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZXNv
dXJjZUNhY2hlOjpyZWxlYXNlQWxsUmVzb3VyY2VzKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
UmVzb3VyY2VDYWNoZTo6d2lsbERlc3Ryb3lJbWFnZUJ1ZmZlcik6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZVJlc291cmNlQ2FjaGU6OnJlbGVhc2VSZW1vdGVSZXNvdXJjZSk6CisgICAgICAgICog
R1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlLmg6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZVJlc291cmNlQ2FjaGU6OnJlc291cmNlSGVhcCBjb25zdCk6IERlbGV0ZWQuCisK
IDIwMjItMDQtMTYgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBE
cm9wIFN0cmluZzo6dHJ1bmNhdGUoKSBhbmQgdXNlIFN0cmluZzo6bGVmdCgpIGluc3RlYWQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5oCmluZGV4IDlj
YjA3OGVlOThlNzUxNzNiMzRkNjdkOWVhYjE1YTllOWQyMDZhN2UuLmVlMGE3ZGEwZDk2ODRlZWQy
YWUzMWJiMmZkYTY3MWU0NDk4YTI4ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvSW1hZ2VCdWZmZXIuaApAQCAtODEsNiArODEsNyBAQCBwdWJsaWM6CiAgICAgc3Rh
dGljIEZsb2F0UmVjdCBjbGFtcGVkUmVjdChjb25zdCBGbG9hdFJlY3QmKTsKIAogICAgIHZpcnR1
YWwgfkltYWdlQnVmZmVyKCkgPSBkZWZhdWx0OworICAgIHZpcnR1YWwgdm9pZCB3aWxsQmVEZXN0
cm95ZWQoKSB7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBzZXRCYWNrZW5kKHN0ZDo6dW5pcXVlX3B0
cjxJbWFnZUJ1ZmZlckJhY2tlbmQ+JiYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgY2xlYXJCYWNr
ZW5kKCkgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNz
L1F1YWxpZmllZFJlc291cmNlSGVhcC5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBo
aWNzL1F1YWxpZmllZFJlc291cmNlSGVhcC5oCmluZGV4IDU5ZDIyNTU3YzJmOGRkMzFjMmUzMmNm
NjI3OWZjZTFiYTUxMmZlMDAuLmQyZWIzMjkyNWIxZjYwMDRiNmU3NDg3ZDA4ZGIzYzA2MDM1M2Jk
MWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9RdWFsaWZp
ZWRSZXNvdXJjZUhlYXAuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3Mv
UXVhbGlmaWVkUmVzb3VyY2VIZWFwLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDIxIEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjEtMjAyMiBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC00NCw2ICs0NCw4IEBAIHB1YmxpYzoKICAgICB7CiAg
ICAgfQogCisgICAgV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIgd2ViUHJvY2Vzc0lkZW50aWZp
ZXIoKSBjb25zdCB7IHJldHVybiBtX3dlYlByb2Nlc3NJZGVudGlmaWVyOyB9CisKICAgICB2b2lk
IGFkZChRdWFsaWZpZWRSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgcmVuZGVyaW5nUmVzb3Vy
Y2VJZGVudGlmaWVyLCBSZWY8V2ViQ29yZTo6SW1hZ2VCdWZmZXI+JiYgaW1hZ2VCdWZmZXIpCiAg
ICAgewogICAgICAgICBhZGQocmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyLCBXVEZNb3ZlKGlt
YWdlQnVmZmVyKSwgbV9pbWFnZUJ1ZmZlckNvdW50KTsKQEAgLTEwOCw2ICsxMTAsMTEgQEAgcHVi
bGljOgogICAgICAgICByZXR1cm4gZ2V0PFdlYkNvcmU6OkZvbnQ+KHJlbmRlcmluZ1Jlc291cmNl
SWRlbnRpZmllcik7CiAgICAgfQogCisgICAgVmVjdG9yPFdlYkNvcmU6OkltYWdlQnVmZmVyKj4g
Z2V0QWxsSW1hZ2VCdWZmZXJzKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBnZXRBbGw8
V2ViQ29yZTo6SW1hZ2VCdWZmZXI+KCk7CisgICAgfQorICAgIAogICAgIGJvb2wgaGFzSW1hZ2VC
dWZmZXIoKSBjb25zdAogICAgIHsKICAgICAgICAgY2hlY2tJbnZhcmlhbnRzKCk7CkBAIC0xODIs
NiArMTg5LDIyIEBAIHByaXZhdGU6CiAgICAgICAgIHJldHVybiB2YWx1ZSA/IHZhbHVlLT5wdHIo
KSA6IG51bGxwdHI7CiAgICAgfQogCisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CisgICAgVmVj
dG9yPFQqPiBnZXRBbGwoKSBjb25zdAorICAgIHsKKyAgICAgICAgY2hlY2tJbnZhcmlhbnRzKCk7
CisKKyAgICAgICAgVmVjdG9yPFQqPiByZXNvdXJjZXM7CisgICAgICAgIHJlc291cmNlcy5yZXNl
cnZlSW5pdGlhbENhcGFjaXR5KG1faW1hZ2VCdWZmZXJDb3VudCk7CisKKyAgICAgICAgZm9yIChj
b25zdCBhdXRvJiB2YWx1ZSA6IG1fcmVzb3VyY2VzLnZhbHVlcygpKSB7CisgICAgICAgICAgICBp
ZiAoYXV0byByZXNvdXJjZSA9IHN0ZDo6Z2V0X2lmPFJlZjxUPj4oJnZhbHVlKSkKKyAgICAgICAg
ICAgICAgICByZXNvdXJjZXMudW5jaGVja2VkQXBwZW5kKHJlc291cmNlLT5wdHIoKSk7CisgICAg
ICAgIH0KKworICAgICAgICByZXR1cm4gcmVzb3VyY2VzOworICAgIH0KKwogICAgIHRlbXBsYXRl
IDx0eXBlbmFtZSBUPgogICAgIGJvb2wgcmVtb3ZlKFF1YWxpZmllZFJlbmRlcmluZ1Jlc291cmNl
SWRlbnRpZmllciByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIsIHVuc2lnbmVkJiBjb3VudGVy
KQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9S
ZW1vdGVHcmFwaGljc0NvbnRleHRHTC5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBo
aWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMLmgKaW5kZXggZmZmNWU3MWMzNWIzMjEzODc3YTk2
NTY5OTQxYTZmNWI4ZDlmMzcxZC4uNWJjOWUyNGE1M2ZkZjYyNzUzOTU0NDI5M2ExOTZhZGM1Nzcz
ZWE1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90
ZUdyYXBoaWNzQ29udGV4dEdMLmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBo
aWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMLmgKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRl
ICJTdHJlYW1NZXNzYWdlUmVjZWl2ZXIuaCIKICNpbmNsdWRlICJTdHJlYW1TZXJ2ZXJDb25uZWN0
aW9uLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgorI2luY2x1ZGUgPFdl
YkNvcmUvUGl4ZWxCdWZmZXIuaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkQXNzZXJ0aW9ucy5oPgog
I2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlci5oIGIvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyLmgKaW5kZXggM2M0YmVkYWU1OTlkZGMz
ZGRhN2YxNmIyMzAyMDU0ZDkwMDI3NTI3YS4uN2YxNWU0ZjNlMDNjOGM5N2Y3M2IzMmY1MDA1Njkw
OWE2OGYwM2NlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNz
L1JlbW90ZUltYWdlQnVmZmVyLmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBo
aWNzL1JlbW90ZUltYWdlQnVmZmVyLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDIwLTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDIwLTIwMjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNywxNSArMjcsOSBAQAogCiAjaWYgRU5BQkxF
KEdQVV9QUk9DRVNTKQogCi0jaW5jbHVkZSAiRGVjb2Rlci5oIgotI2luY2x1ZGUgIkdQVUNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MuaCIKLSNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiUmVt
b3RlRGlzcGxheUxpc3RSZWNvcmRlci5oIgogI2luY2x1ZGUgIlNjb3BlZEFjdGl2ZU1lc3NhZ2VS
ZWNlaXZlUXVldWUuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0NvbmNyZXRlSW1hZ2VCdWZmZXIuaD4K
LSNpbmNsdWRlIDxXZWJDb3JlL0Rpc3BsYXlMaXN0Lmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9EaXNw
bGF5TGlzdEl0ZW1zLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9EaXNwbGF5TGlzdFJlcGxheWVyLmg+
CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCkBAIC00NCw3ICszOCw2IEBAIGNsYXNzIFJlbW90ZUlt
YWdlQnVmZmVyIDogcHVibGljIFdlYkNvcmU6OkNvbmNyZXRlSW1hZ2VCdWZmZXI8QmFja2VuZFR5
cGU+IHsKICAgICB1c2luZyBCYXNlQ29uY3JldGVJbWFnZUJ1ZmZlciA9IFdlYkNvcmU6OkNvbmNy
ZXRlSW1hZ2VCdWZmZXI8QmFja2VuZFR5cGU+OwogICAgIHVzaW5nIEJhc2VDb25jcmV0ZUltYWdl
QnVmZmVyOjpjb250ZXh0OwogICAgIHVzaW5nIEJhc2VDb25jcmV0ZUltYWdlQnVmZmVyOjptX2Jh
Y2tlbmQ7Ci0gICAgdXNpbmcgQmFzZUNvbmNyZXRlSW1hZ2VCdWZmZXI6OnB1dFBpeGVsQnVmZmVy
OwogCiBwdWJsaWM6CiAgICAgc3RhdGljIGF1dG8gY3JlYXRlKGNvbnN0IFdlYkNvcmU6OkZsb2F0
U2l6ZSYgc2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBjb25zdCBXZWJDb3JlOjpEZXN0aW5h
dGlvbkNvbG9yU3BhY2UmIGNvbG9yU3BhY2UsIFdlYkNvcmU6OlBpeGVsRm9ybWF0IHBpeGVsRm9y
bWF0LCBXZWJDb3JlOjpSZW5kZXJpbmdQdXJwb3NlIHB1cnBvc2UsIFJlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmQmIHJlbW90ZVJlbmRlcmluZ0JhY2tlbmQsIFF1YWxpZmllZFJlbmRlcmluZ1Jlc291cmNl
SWRlbnRpZmllciByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpCkBAIC01OSwyMSArNTIsMjAg
QEAgcHVibGljOgogCiAgICAgUmVtb3RlSW1hZ2VCdWZmZXIoY29uc3QgV2ViQ29yZTo6SW1hZ2VC
dWZmZXJCYWNrZW5kOjpQYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzLCBzdGQ6OnVuaXF1ZV9wdHI8QmFj
a2VuZFR5cGU+JiYgYmFja2VuZCwgUmVtb3RlUmVuZGVyaW5nQmFja2VuZCYgcmVtb3RlUmVuZGVy
aW5nQmFja2VuZCwgUXVhbGlmaWVkUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlbmRlcmlu
Z1Jlc291cmNlSWRlbnRpZmllcikKICAgICAgICAgOiBCYXNlQ29uY3JldGVJbWFnZUJ1ZmZlcihw
YXJhbWV0ZXJzLCBXVEZNb3ZlKGJhY2tlbmQpLCByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIu
b2JqZWN0KCkpCi0gICAgICAgICwgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kKHJlbW90ZVJlbmRl
cmluZ0JhY2tlbmQpCiAgICAgICAgICwgbV9yZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIocmVu
ZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKQogICAgICAgICAsIG1fcmVtb3RlRGlzcGxheUxpc3Qo
eyBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpjcmVhdGUoKnRoaXMsIHJlbmRlcmluZ1Jlc291
cmNlSWRlbnRpZmllciwgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyLnByb2Nlc3NJZGVudGlm
aWVyKCksIHJlbW90ZVJlbmRlcmluZ0JhY2tlbmQpIH0pCiAgICAgewotICAgICAgICBtX3JlbW90
ZVJlbmRlcmluZ0JhY2tlbmQuZGlkQ3JlYXRlSW1hZ2VCdWZmZXJCYWNrZW5kKG1fYmFja2VuZC0+
Y3JlYXRlQmFja2VuZEhhbmRsZSgpLCByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIsICptX3Jl
bW90ZURpc3BsYXlMaXN0LmdldCgpKTsKKyAgICAgICAgcmVtb3RlUmVuZGVyaW5nQmFja2VuZC5k
aWRDcmVhdGVJbWFnZUJ1ZmZlckJhY2tlbmQobV9iYWNrZW5kLT5jcmVhdGVCYWNrZW5kSGFuZGxl
KCksIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciwgKm1fcmVtb3RlRGlzcGxheUxpc3QuZ2V0
KCkpOwogICAgIH0KIAotICAgIH5SZW1vdGVJbWFnZUJ1ZmZlcigpCisgICAgdm9pZCB3aWxsQmVE
ZXN0cm95ZWQoKSBmaW5hbAogICAgIHsKKyAgICAgICAgQVNTRVJUKEJhc2VDb25jcmV0ZUltYWdl
QnVmZmVyOjpoYXNPbmVSZWYoKSk7CisKICAgICAgICAgLy8gVW53aW5kIHRoZSBjb250ZXh0J3Mg
c3RhdGUgc3RhY2sgYmVmb3JlIGRlc3RydWN0aW9uLCBzaW5jZSBjYWxscyB0byByZXN0b3JlIG1h
eSBub3QgaGF2ZQogICAgICAgICAvLyBiZWVuIGZsdXNoZWQgeWV0LCBvciB0aGUgd2ViIHByb2Nl
c3MgbWF5IGhhdmUgdGVybWluYXRlZC4KICAgICAgICAgd2hpbGUgKGNvbnRleHQoKS5zdGFja1Np
emUoKSkKICAgICAgICAgICAgIGNvbnRleHQoKS5yZXN0b3JlKCk7Ci0KLSAgICAgICAgbV9yZW1v
dGVSZW5kZXJpbmdCYWNrZW5kLndpbGxEZXN0cm95SW1hZ2VCdWZmZXIoKnRoaXMpOwogICAgIH0K
IAogICAgIHZvaWQgc2V0T3duZXJzaGlwSWRlbnRpdHkoY29uc3QgV2ViQ29yZTo6UHJvY2Vzc0lk
ZW50aXR5JiByZXNvdXJjZU93bmVyKQpAQCAtODMsOSArNzUsNiBAQCBwdWJsaWM6CiAgICAgfQog
CiBwcml2YXRlOgotICAgIGZyaWVuZCBjbGFzcyBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOwotCi0g
ICAgUmVtb3RlUmVuZGVyaW5nQmFja2VuZCYgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kOwogICAg
IFF1YWxpZmllZFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBtX3JlbmRlcmluZ1Jlc291cmNl
SWRlbnRpZmllcjsKICAgICBJUEM6OlNjb3BlZEFjdGl2ZU1lc3NhZ2VSZWNlaXZlUXVldWU8UmVt
b3RlRGlzcGxheUxpc3RSZWNvcmRlcj4gbV9yZW1vdGVEaXNwbGF5TGlzdDsKIH07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFj
a2VuZC5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVy
aW5nQmFja2VuZC5jcHAKaW5kZXggN2Q2ZmQyNzhhMzNkNzMxNjVlZGMxNGQxZTNiOGIwZWUyMGVj
Mjc2Ni4uZTg3NWMzMTI2ZTQ5MTZhNzBjZDBhZWU0YTNjN2FjYTEyNzJlNDE1MSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tl
bmQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kLmNwcApAQCAtOTAsNyArOTAsNyBAQCBSZWY8UmVtb3RlUmVuZGVyaW5nQmFj
a2VuZD4gUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6Y3JlYXRlKEdQVUNvbm5lY3Rpb25Ub1dlYlBy
bwogUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZChHUFVDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzJiBncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLCBSZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kQ3JlYXRpb25QYXJhbWV0ZXJzJiYgY3JlYXRpb25QYXJhbWV0ZXJzLCBJUEM6
OkF0dGFjaG1lbnQmJiBjb25uZWN0aW9uSWRlbnRpZmllciwgSVBDOjpTdHJlYW1Db25uZWN0aW9u
QnVmZmVyJiYgc3RyZWFtQnVmZmVyKQogICAgIDogbV93b3JrUXVldWUoSVBDOjpTdHJlYW1Db25u
ZWN0aW9uV29ya1F1ZXVlOjpjcmVhdGUoIlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQgd29yayBxdWV1
ZSIpKQogICAgICwgbV9zdHJlYW1Db25uZWN0aW9uKElQQzo6U3RyZWFtU2VydmVyQ29ubmVjdGlv
bjo6Y3JlYXRlV2l0aERlZGljYXRlZENvbm5lY3Rpb24oV1RGTW92ZShjb25uZWN0aW9uSWRlbnRp
ZmllciksIFdURk1vdmUoc3RyZWFtQnVmZmVyKSwgbV93b3JrUXVldWUuZ2V0KCkpKQotICAgICwg
bV9yZW1vdGVSZXNvdXJjZUNhY2hlKGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mud2ViUHJvY2Vz
c0lkZW50aWZpZXIoKSkKKyAgICAsIG1fcmVtb3RlUmVzb3VyY2VDYWNoZSgqdGhpcywgZ3B1Q29u
bmVjdGlvblRvV2ViUHJvY2Vzcy53ZWJQcm9jZXNzSWRlbnRpZmllcigpKQogICAgICwgbV9ncHVD
b25uZWN0aW9uVG9XZWJQcm9jZXNzKGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MpCiAgICAgLCBt
X3Jlc291cmNlT3duZXIoZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy53ZWJQcm9jZXNzSWRlbnRp
dHkoKSkKICAgICAsIG1fcmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIoY3JlYXRpb25QYXJhbWV0
ZXJzLmlkZW50aWZpZXIpCkBAIC0xMjMsNyArMTIzLDcgQEAgdm9pZCBSZW1vdGVSZW5kZXJpbmdC
YWNrZW5kOjpzdG9wTGlzdGVuaW5nRm9ySVBDKCkKICAgICBtX3dvcmtRdWV1ZS0+ZGlzcGF0Y2go
WyZdIHsKICAgICAgICAgLy8gTWFrZSBzdXJlIHdlIGRlc3Ryb3kgdGhlIFJlc291cmNlQ2FjaGUg
b24gdGhlIFdvcmtRdWV1ZSBzaW5jZSBpdCBnZXRzIHBvcHVsYXRlZCBvbiB0aGUgV29ya1F1ZXVl
LgogICAgICAgICAvLyBNYWtlIHN1cmUgcmVuZGVyaW5nIHJlc291cmNlIHJlcXVlc3QgaXMgcmVs
ZWFzZWQgYWZ0ZXIgZGVzdHJveWluZyB0aGUgY2FjaGUuCi0gICAgICAgIG1fcmVtb3RlUmVzb3Vy
Y2VDYWNoZSA9IHsgbV9ncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLT53ZWJQcm9jZXNzSWRlbnRp
ZmllcigpIH07CisgICAgICAgIG1fcmVtb3RlUmVzb3VyY2VDYWNoZS5yZWxlYXNlQWxsUmVzb3Vy
Y2VzKCk7CiAgICAgICAgIG1fcmVuZGVyaW5nUmVzb3VyY2VzUmVxdWVzdCA9IHsgfTsKICAgICB9
KTsKICAgICBtX3dvcmtRdWV1ZS0+c3RvcEFuZFdhaXRGb3JDb21wbGV0aW9uKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFj
a2VuZC5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmlu
Z0JhY2tlbmQuaAppbmRleCA2MjIwY2U1ZjE1ZTU3YjgxZmY2ZjZhZGEzNmNiNGQ4MTFjZjFhMjVl
Li4xNWRjN2ZlOTM2YWFlMDE5ZTYxYjZkMjlkNzRkOTUxZjhkMWY5NjdiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdC
YWNrZW5kLmgKQEAgLTI4LDEyICsyOCwxMCBAQAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKIAog
I2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKLSNpbmNsdWRlICJJUENTZW1hcGhvcmUuaCIKICNpbmNs
dWRlICJJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUuaCIKICNpbmNsdWRlICJNZXNzYWdlUmVjZWl2
ZXIuaCIKICNpbmNsdWRlICJNZXNzYWdlU2VuZGVyLmgiCiAjaW5jbHVkZSAiUXVhbGlmaWVkUmVu
ZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyLmgiCi0jaW5jbHVkZSAiUmVtb3RlRGlzcGxheUxpc3RS
ZWNvcmRlci5oIgogI2luY2x1ZGUgIlJlbW90ZVJlc291cmNlQ2FjaGUuaCIKICNpbmNsdWRlICJS
ZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIlJlbmRlcmluZ1VwZGF0ZUlE
LmgiCkBAIC00MSwxMiArMzksOCBAQAogI2luY2x1ZGUgIlN0cmVhbUNvbm5lY3Rpb25Xb3JrUXVl
dWUuaCIKICNpbmNsdWRlICJTdHJlYW1NZXNzYWdlUmVjZWl2ZXIuaCIKICNpbmNsdWRlICJTdHJl
YW1TZXJ2ZXJDb25uZWN0aW9uLmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9Db2xvclNwYWNlLmg+Ci0j
aW5jbHVkZSA8V2ViQ29yZS9EaXNwbGF5TGlzdEl0ZW1CdWZmZXJJZGVudGlmaWVyLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9NZWRpYVBsYXllcklkZW50aWZpZXIuaD4KLSNpbmNsdWRlIDxXZWJDb3Jl
L1Byb2Nlc3NJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Qcm9jZXNzSWRlbnRpdHku
aD4KLSNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCiBuYW1lc3BhY2UgV1RGIHsKIGVudW0gY2xh
c3MgQ3JpdGljYWwgOiBib29sOwpAQCAtMTQwLDcgKzEzNCw2IEBAIHByaXZhdGU6CiAgICAgdm9p
ZCBnZXREYXRhRm9ySW1hZ2VCdWZmZXJXaXRoUXVhbGlmaWVkSWRlbnRpZmllcihjb25zdCBTdHJp
bmcmIG1pbWVUeXBlLCBzdGQ6Om9wdGlvbmFsPGRvdWJsZT4gcXVhbGl0eSwgUXVhbGlmaWVkUmVu
ZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFZlY3Rvcjx1
aW50OF90PiYmKT4mJik7CiAgICAgdm9pZCBnZXRTaGFyZWFibGVCaXRtYXBGb3JJbWFnZUJ1ZmZl
cldpdGhRdWFsaWZpZWRJZGVudGlmaWVyKFF1YWxpZmllZFJlbmRlcmluZ1Jlc291cmNlSWRlbnRp
ZmllciwgV2ViQ29yZTo6UHJlc2VydmVSZXNvbHV0aW9uLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KFNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlJiYpPiYmKTsKICAgICB2b2lkIGNhY2hlTmF0aXZlSW1h
Z2VXaXRoUXVhbGlmaWVkSWRlbnRpZmllcihjb25zdCBTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSYs
IFF1YWxpZmllZFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcik7Ci0gICAgdm9pZCBkaWRDcmVh
dGVTaGFyZWREaXNwbGF5TGlzdEhhbmRsZVdpdGhRdWFsaWZpZWRJZGVudGlmaWVyKFdlYkNvcmU6
OkRpc3BsYXlMaXN0OjpJdGVtQnVmZmVySWRlbnRpZmllciwgY29uc3QgU2hhcmVkTWVtb3J5OjpJ
UENIYW5kbGUmLCBRdWFsaWZpZWRSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgZGVzdGluYXRp
b25CdWZmZXJJZGVudGlmaWVyKTsKICAgICB2b2lkIHJlbGVhc2VSZW1vdGVSZXNvdXJjZVdpdGhR
dWFsaWZpZWRJZGVudGlmaWVyKFF1YWxpZmllZFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcik7
CiAgICAgdm9pZCBjYWNoZUZvbnRXaXRoUXVhbGlmaWVkSWRlbnRpZmllcihSZWY8V2ViQ29yZTo6
Rm9udD4mJiwgUXVhbGlmaWVkUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2Fj
aGUuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlc291cmNl
Q2FjaGUuY3BwCmluZGV4IDAxZjNkMTM4ZTMxODgyNWFhNjUzOWQ0Y2FiN2E1Yjg5ZTlmOGZkYjAu
LmE1ZmRlNzQwNzIzMWQ4ZTQyMDIwNjljNmJkYmZjNmQyMjVhOWE3NWIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNo
ZS5jcHAKQEAgLTMxLDggKzMxLDkgQEAKIG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFtZXNw
YWNlIFdlYkNvcmU7CiAKLVJlbW90ZVJlc291cmNlQ2FjaGU6OlJlbW90ZVJlc291cmNlQ2FjaGUo
UHJvY2Vzc0lkZW50aWZpZXIgd2ViUHJvY2Vzc0lkZW50aWZpZXIpCi0gICAgOiBtX3Jlc291cmNl
SGVhcCh3ZWJQcm9jZXNzSWRlbnRpZmllcikKK1JlbW90ZVJlc291cmNlQ2FjaGU6OlJlbW90ZVJl
c291cmNlQ2FjaGUoUmVtb3RlUmVuZGVyaW5nQmFja2VuZCYgcmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZCwgUHJvY2Vzc0lkZW50aWZpZXIgd2ViUHJvY2Vzc0lkZW50aWZpZXIpCisgICAgOiBtX3JlbW90
ZVJlbmRlcmluZ0JhY2tlbmQocmVtb3RlUmVuZGVyaW5nQmFja2VuZCkKKyAgICAsIG1fcmVzb3Vy
Y2VIZWFwKHdlYlByb2Nlc3NJZGVudGlmaWVyKQogewogfQogCkBAIC03OSwxMSArODAsMjkgQEAg
dm9pZCBSZW1vdGVSZXNvdXJjZUNhY2hlOjpkZWxldGVBbGxGb250cygpCiAgICAgbV9yZXNvdXJj
ZUhlYXAuZGVsZXRlQWxsRm9udHMoKTsKIH0KIAordm9pZCBSZW1vdGVSZXNvdXJjZUNhY2hlOjpy
ZWxlYXNlQWxsUmVzb3VyY2VzKCkKK3sKKyAgICBmb3IgKGF1dG8qIGltYWdlQnVmZmVyIDogbV9y
ZXNvdXJjZUhlYXAuZ2V0QWxsSW1hZ2VCdWZmZXJzKCkpCisgICAgICAgIHdpbGxEZXN0cm95SW1h
Z2VCdWZmZXIoKmltYWdlQnVmZmVyKTsKKworICAgIG1fcmVzb3VyY2VIZWFwID0geyBtX3Jlc291
cmNlSGVhcC53ZWJQcm9jZXNzSWRlbnRpZmllcigpIH07Cit9CisKK3ZvaWQgUmVtb3RlUmVzb3Vy
Y2VDYWNoZTo6d2lsbERlc3Ryb3lJbWFnZUJ1ZmZlcihJbWFnZUJ1ZmZlciYgaW1hZ2VCdWZmZXIp
Cit7CisgICAgaW1hZ2VCdWZmZXIud2lsbEJlRGVzdHJveWVkKCk7CisgICAgbV9yZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kLndpbGxEZXN0cm95SW1hZ2VCdWZmZXIoaW1hZ2VCdWZmZXIpOworfQorCiBi
b29sIFJlbW90ZVJlc291cmNlQ2FjaGU6OnJlbGVhc2VSZW1vdGVSZXNvdXJjZShRdWFsaWZpZWRS
ZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKQog
ewotICAgIGlmIChtX3Jlc291cmNlSGVhcC5yZW1vdmVJbWFnZUJ1ZmZlcihyZW5kZXJpbmdSZXNv
dXJjZUlkZW50aWZpZXIpCi0gICAgICAgIHx8IG1fcmVzb3VyY2VIZWFwLnJlbW92ZU5hdGl2ZUlt
YWdlKHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcikKLSAgICAgICAgfHwgbV9yZXNvdXJjZUhl
YXAucmVtb3ZlRm9udChyZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpKQorICAgIGlmIChhdXRv
KiBpbWFnZUJ1ZmZlciA9IGNhY2hlZEltYWdlQnVmZmVyKHJlbmRlcmluZ1Jlc291cmNlSWRlbnRp
ZmllcikpIHsKKyAgICAgICAgd2lsbERlc3Ryb3lJbWFnZUJ1ZmZlcigqaW1hZ2VCdWZmZXIpOwor
ICAgICAgICBtX3Jlc291cmNlSGVhcC5yZW1vdmVJbWFnZUJ1ZmZlcihyZW5kZXJpbmdSZXNvdXJj
ZUlkZW50aWZpZXIpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBpZiAobV9y
ZXNvdXJjZUhlYXAucmVtb3ZlTmF0aXZlSW1hZ2UocmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVy
KSB8fCBtX3Jlc291cmNlSGVhcC5yZW1vdmVGb250KHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmll
cikpCiAgICAgICAgIHJldHVybiB0cnVlOwogCiAgICAgLy8gQ2FjaGluZyB0aGUgcmVtb3RlIHJl
c291cmNlIHNob3VsZCBoYXZlIGhhcHBlbmVkIGJlZm9yZSByZWxlYXNpbmcgaXQuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNo
ZS5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2Fj
aGUuaAppbmRleCA1YmZkNGYyODgwNjVjNjUwNjQ2ODk5MDZiZTI4MjA4MDJmNDAwODVmLi4yYTJl
ZjQ0YTE5YWMxODQzNWM3YThkNmRlMjEyNTJhZDYwMmZmYTQ2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlLmgKQEAg
LTI5LDEyICsyOSw2IEBACiAKICNpbmNsdWRlICJRdWFsaWZpZWRSZW5kZXJpbmdSZXNvdXJjZUlk
ZW50aWZpZXIuaCIKICNpbmNsdWRlICJRdWFsaWZpZWRSZXNvdXJjZUhlYXAuaCIKLSNpbmNsdWRl
IDxXZWJDb3JlL0ZvbnQuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL0ltYWdlQnVmZmVyLmg+Ci0jaW5j
bHVkZSA8V2ViQ29yZS9OYXRpdmVJbWFnZS5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUHJvY2Vzc0lk
ZW50aWZpZXIuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1JlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmll
ci5oPgotI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCkBA
IC00Miw3ICszNiw3IEBAIGNsYXNzIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ7CiAKIGNsYXNzIFJl
bW90ZVJlc291cmNlQ2FjaGUgewogcHVibGljOgotICAgIFJlbW90ZVJlc291cmNlQ2FjaGUoV2Vi
Q29yZTo6UHJvY2Vzc0lkZW50aWZpZXIgd2ViUHJvY2Vzc0lkZW50aWZpZXIpOworICAgIFJlbW90
ZVJlc291cmNlQ2FjaGUoUmVtb3RlUmVuZGVyaW5nQmFja2VuZCYsIFdlYkNvcmU6OlByb2Nlc3NJ
ZGVudGlmaWVyIHdlYlByb2Nlc3NJZGVudGlmaWVyKTsKIAogICAgIHZvaWQgY2FjaGVJbWFnZUJ1
ZmZlcihSZWY8V2ViQ29yZTo6SW1hZ2VCdWZmZXI+JiYsIFF1YWxpZmllZFJlbmRlcmluZ1Jlc291
cmNlSWRlbnRpZmllcik7CiAgICAgV2ViQ29yZTo6SW1hZ2VCdWZmZXIqIGNhY2hlZEltYWdlQnVm
ZmVyKFF1YWxpZmllZFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcikgY29uc3Q7CkBAIC01Miwx
MyArNDYsMTUgQEAgcHVibGljOgogICAgIHZvaWQgY2FjaGVGb250KFJlZjxXZWJDb3JlOjpGb250
PiYmLCBRdWFsaWZpZWRSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOwogICAgIFdlYkNvcmU6
OkZvbnQqIGNhY2hlZEZvbnQoUXVhbGlmaWVkUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKSBj
b25zdDsKICAgICB2b2lkIGRlbGV0ZUFsbEZvbnRzKCk7CisgICAgdm9pZCByZWxlYXNlQWxsUmVz
b3VyY2VzKCk7CiAgICAgYm9vbCByZWxlYXNlUmVtb3RlUmVzb3VyY2UoUXVhbGlmaWVkUmVuZGVy
aW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKIAotICAgIGNvbnN0IFdlYkNvcmU6OkRpc3BsYXlMaXN0
OjpSZXNvdXJjZUhlYXAmIHJlc291cmNlSGVhcCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzb3VyY2VI
ZWFwOyB9Ci0KICAgICBib29sIGhhc0FjdGl2ZURyYXdhYmxlcygpIGNvbnN0IHsgcmV0dXJuIG1f
cmVzb3VyY2VIZWFwLmhhc0ltYWdlQnVmZmVyKCkgfHwgbV9yZXNvdXJjZUhlYXAuaGFzTmF0aXZl
SW1hZ2UoKTsgfQogCiBwcml2YXRlOgorICAgIHZvaWQgd2lsbERlc3Ryb3lJbWFnZUJ1ZmZlcihX
ZWJDb3JlOjpJbWFnZUJ1ZmZlciYpOworCisgICAgUmVtb3RlUmVuZGVyaW5nQmFja2VuZCYgbV9y
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kOwogICAgIFF1YWxpZmllZFJlc291cmNlSGVhcCBtX3Jlc291
cmNlSGVhcDsKIH07CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>458621</attachid>
            <date>2022-04-29 18:10:21 -0700</date>
            <delta_ts>2022-04-29 22:53:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-239107-20220429181020.patch</filename>
            <type>text/plain</type>
            <size>13225</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkzNjAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjZlNWNhNjkwNDI4NThm
Mjc1MzIzZjRjYWQzZDQxYzQxOTUyMGIwNC4uNTM0ZWNkNmVlNTMwNDAwMmMyOGIxYmY0YTY3NjFh
OTYwYzdkYjQyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIyLTA0LTI5ICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgorCisgICAgICAgIFJFR1JFU1NJT04ocjI4
MjExNyk6IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OndpbGxEZXN0cm95SW1hZ2VCdWZmZXIoKSBj
YW4gY3Jhc2ggaWYgdGhlIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQgaGFzIGFscmVhZHkgYmVlbiBk
ZXN0cm95ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIzOTEwNworICAgICAgICByZGFyOi8vOTE2MDgyOTgKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWtlIElPU3VyZmFjZVBvb2wgYmUgUmVmQ291bnRl
ZC4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL0lPU3VyZmFjZVBvb2wuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SU9TdXJmYWNlUG9vbDo6Y3JlYXRlKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9jZy9JT1N1cmZhY2VQb29sLmg6CisKIDIwMjItMDQtMjggIFBhdHJpY2sg
R3JpZmZpcyAgPHBncmlmZmlzQGlnYWxpYS5jb20+CiAKICAgICAgICAgQ1NQOiBGaXggbWl4aW5n
IHN0cmljdC1keW5hbWljIGFuZCB1bnNhZmUtaW5saW5lIHBvbGljaWVzCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGI0
MGNjYTE1MjI4NDQwMDIwNDlhYWM1OTE4MmMwMDk1YTljNGViNTEuLmRiYTJhZGNmOWMyMmZlZWQz
M2YyNjQ0MDg4ZDE4ZGQ4ZDc4OWQwY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMjIt
MDQtMjkgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2FpZEBhcHBsZS5jb20+CisKKyAgICAgICAgUkVH
UkVTU0lPTihyMjgyMTE3KTogUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6d2lsbERlc3Ryb3lJbWFn
ZUJ1ZmZlcigpIGNhbiBjcmFzaCBpZiB0aGUgUmVtb3RlUmVuZGVyaW5nQmFja2VuZCBoYXMgYWxy
ZWFkeSBiZWVuIGRlc3Ryb3llZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjM5MTA3CisgICAgICAgIHJkYXI6Ly85MTYwODI5OAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFmdGVyIHIyODIxMTcsIHRoZSBh
c3N1bXB0aW9uIHRoYXQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZCB3aWxsIG91dGxpdmUKKyAgICAg
ICAgYWxsIGl0cyBSZW1vdGVJbWFnZUJ1ZmZlcnMgYmVjYW1lIHdyb25nLiBUaGUgUmVtb3RlUmVu
ZGVyaW5nQmFja2VuZCBjYW4KKyAgICAgICAgZ2V0IGRlc3Ryb3llZCB1bmRlciBHUFVDb25uZWN0
aW9uVG9XZWJQcm9jZXNzOjpkaWRDbG9zZSgpIGJlZm9yZSB0aGUKKyAgICAgICAgY2FsbE9uTWFp
blRocmVhZCgpIG9mIHRoZSBUaHJlYWRTYWZlUmVmY291bnRlZCBpbWFnZSBidWZmZXJzIGhhdmUg
cnVuLgorCisgICAgICAgIEluc3RlYWQgb2YgaGF2aW5nIFJlbW90ZUltYWdlQnVmZmVyIGhvbGQg
UmVtb3RlUmVuZGVyaW5nQmFja2VuZCYsIHdlIHdpbGwKKyAgICAgICAgbWFrZSBSZW1vdGVJbWFn
ZUJ1ZmZlciBob2xkIGEgUmVmPElPU3VyZmFjZVBvb2w+LiBUaGlzIElPU3VyZmFjZVBvb2wgd2ls
bAorICAgICAgICBiZSB1c2VkIGluIHRoZSBkZXN0cnVjdG9yIG9mIFJlbW90ZUltYWdlQnVmZmVy
IHRvIGNhbGwgcmVsZWFzZUJ1ZmZlclRvUG9vbCgpLgorCisgICAgICAgIFRoaXMgc29sdXRpb24g
c2hvdWxkIG5vdCBpbnRyb2R1Y2UgYSBjeWNsaWMgcmVmZXJlbmNpbmcgYmVjYXVzZSwgdW5saWtl
CisgICAgICAgIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQsIElPU3VyZmFjZVBvb2wgZG9lcyBub3Qg
aG9sZCBhIHJlZmVyZW5jZSBiYWNrIHRvCisgICAgICAgIFJlbW90ZUltYWdlQnVmZmVyLgorCisg
ICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5oOgor
ICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXIuaDoKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlSW1hZ2VCdWZmZXI6OlJlbW90ZUltYWdlQnVmZmVyKToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlSW1hZ2VCdWZmZXI6Om1fcmVuZGVyaW5nUmVzb3VyY2VzUmVxdWVz
dCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUltYWdlQnVmZmVyOjp+UmVtb3RlSW1hZ2VCdWZm
ZXIpOgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OndpbGxEZXN0
cm95SW1hZ2VCdWZmZXIpOiBEZWxldGVkLgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3Mv
UmVtb3RlUmVuZGVyaW5nQmFja2VuZC5oOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJp
bmdCYWNrZW5kOjppb1N1cmZhY2VQb29sIGNvbnN0KToKKwogMjAyMi0wNC0yOCAgWXVzdWtlIFN1
enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgogCiAgICAgICAgIFN1cHBvcnQgQyBmaWxlcyBpbiBV
bmlmaWVkIEJ1aWxkcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2cvSU9TdXJmYWNlUG9vbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jZy9JT1N1cmZhY2VQb29sLmNwcAppbmRleCAxYjgzOGE0ZjgwYTExNDg2OThiZDQzNzM2ZTRh
Mzg2MjEwYzkxNTg4Li5hNGE2NDk2MTYwODU3MDc1ZGQ0NDEwM2RmNzAzZDdkMmNhNmZkM2RlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JT1N1cmZhY2VQ
b29sLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JT1N1cmZh
Y2VQb29sLmNwcApAQCAtNjEsOSArNjEsOSBAQCBJT1N1cmZhY2VQb29sJiBJT1N1cmZhY2VQb29s
OjpzaGFyZWRQb29sKCkKICAgICByZXR1cm4gcG9vbDsKIH0KIAotc3RkOjp1bmlxdWVfcHRyPElP
U3VyZmFjZVBvb2w+IElPU3VyZmFjZVBvb2w6OmNyZWF0ZSgpCitSZWY8SU9TdXJmYWNlUG9vbD4g
SU9TdXJmYWNlUG9vbDo6Y3JlYXRlKCkKIHsKLSAgICByZXR1cm4gc3RkOjp1bmlxdWVfcHRyPElP
U3VyZmFjZVBvb2w+KG5ldyBJT1N1cmZhY2VQb29sKCkpOworICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IElPU3VyZmFjZVBvb2woKSk7CiB9CiAKIHN0YXRpYyBib29sIHN1cmZhY2VNYXRjaGVzUGFy
YW1ldGVycyhJT1N1cmZhY2UmIHN1cmZhY2UsIEludFNpemUgcmVxdWVzdGVkU2l6ZSwgY29uc3Qg
RGVzdGluYXRpb25Db2xvclNwYWNlJiBjb2xvclNwYWNlLCBJT1N1cmZhY2U6OkZvcm1hdCBmb3Jt
YXQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JT1N1
cmZhY2VQb29sLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JT1N1cmZh
Y2VQb29sLmgKaW5kZXggNTJmNTVmNjM0NTBlNWVlN2Y2YmZhYWQ4NWFlNDIzMDY3NDRmN2E0NC4u
ZWExN2ZmODFkZTZkMjAxNGUyMDA5YWY5MzQ0NGQxMjFmZjQyMjNiNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSU9TdXJmYWNlUG9vbC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0lPU3VyZmFjZVBvb2wuaApAQCAtMzUs
MjAgKzM1LDIxIEBACiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvTG9j
ay5oPgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZD
b3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBjbGFzcyBEZXN0aW5hdGF0aW9uQ29sb3JTcGFjZTsKIAotY2xhc3MgSU9TdXJmYWNlUG9v
bCB7CitjbGFzcyBJT1N1cmZhY2VQb29sIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPElP
U3VyZmFjZVBvb2w+IHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShJT1N1cmZhY2VQb29sKTsK
ICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKICAgICBmcmllbmQgY2xhc3MgTGF6eU5ldmVy
RGVzdHJveWVkPElPU3VyZmFjZVBvb2w+OwogCiBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQg
c3RhdGljIElPU3VyZmFjZVBvb2wmIHNoYXJlZFBvb2woKTsKLSAgICBXRUJDT1JFX0VYUE9SVCBz
dGF0aWMgc3RkOjp1bmlxdWVfcHRyPElPU3VyZmFjZVBvb2w+IGNyZWF0ZSgpOworICAgIFdFQkNP
UkVfRVhQT1JUIHN0YXRpYyBSZWY8SU9TdXJmYWNlUG9vbD4gY3JlYXRlKCk7CiAKICAgICBzdGQ6
OnVuaXF1ZV9wdHI8SU9TdXJmYWNlPiB0YWtlU3VyZmFjZShJbnRTaXplLCBjb25zdCBEZXN0aW5h
dGlvbkNvbG9yU3BhY2UmLCBJT1N1cmZhY2U6OkZvcm1hdCk7CiAgICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCBhZGRTdXJmYWNlKHN0ZDo6dW5pcXVlX3B0cjxJT1N1cmZhY2U+JiYpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4
dEdMLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3ND
b250ZXh0R0wuaAppbmRleCBjMzFlNjUxMDY1MTUxNmUzYTQzY2I0ZTZjNmY0NTdjYWEzMTZhMTlj
Li4wZDk5NTIxZDhiNWRkNTVlNDRhNmQ2NDEyNjc5ODU5YTAzYmJjYjY2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3ND
b250ZXh0R0wuaApAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgIlN0cmVhbU1lc3NhZ2VSZWNl
aXZlci5oIgogI2luY2x1ZGUgIlN0cmVhbVNlcnZlckNvbm5lY3Rpb24uaCIKICNpbmNsdWRlIDxX
ZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9QaXhlbEJ1ZmZlci5o
PgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRBc3NlcnRpb25zLmg+CiAjaW5jbHVkZSA8d3RmL1dlYWtQ
dHIuaD4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1Jl
bW90ZUltYWdlQnVmZmVyLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVt
b3RlSW1hZ2VCdWZmZXIuaAppbmRleCA0MWE0ZTAzYWRhNDEzNjk0ODRhNzI5NmRjN2FiNjJmNjRj
NzU3ZGZhLi42ZDA2ZjRlYWRiZGM1MzY4YmJmYWQyMTA5ZGIxY2M1YzFhYzBhZjcyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXIu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZm
ZXIuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjAtMjAyMSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAtMjAyMiBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTI3LDE1ICsyNyw5IEBACiAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCiAKLSNp
bmNsdWRlICJEZWNvZGVyLmgiCi0jaW5jbHVkZSAiR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5o
IgotI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJSZW1vdGVEaXNwbGF5TGlzdFJlY29y
ZGVyLmgiCiAjaW5jbHVkZSAiU2NvcGVkQWN0aXZlTWVzc2FnZVJlY2VpdmVRdWV1ZS5oIgogI2lu
Y2x1ZGUgPFdlYkNvcmUvQ29uY3JldGVJbWFnZUJ1ZmZlci5oPgotI2luY2x1ZGUgPFdlYkNvcmUv
RGlzcGxheUxpc3QuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL0Rpc3BsYXlMaXN0SXRlbXMuaD4KLSNp
bmNsdWRlIDxXZWJDb3JlL0Rpc3BsYXlMaXN0UmVwbGF5ZXIuaD4KIAogbmFtZXNwYWNlIFdlYktp
dCB7CiAKQEAgLTQ0LDcgKzM4LDggQEAgY2xhc3MgUmVtb3RlSW1hZ2VCdWZmZXIgOiBwdWJsaWMg
V2ViQ29yZTo6Q29uY3JldGVJbWFnZUJ1ZmZlcjxCYWNrZW5kVHlwZT4gewogICAgIHVzaW5nIEJh
c2VDb25jcmV0ZUltYWdlQnVmZmVyID0gV2ViQ29yZTo6Q29uY3JldGVJbWFnZUJ1ZmZlcjxCYWNr
ZW5kVHlwZT47CiAgICAgdXNpbmcgQmFzZUNvbmNyZXRlSW1hZ2VCdWZmZXI6OmNvbnRleHQ7CiAg
ICAgdXNpbmcgQmFzZUNvbmNyZXRlSW1hZ2VCdWZmZXI6Om1fYmFja2VuZDsKLSAgICB1c2luZyBC
YXNlQ29uY3JldGVJbWFnZUJ1ZmZlcjo6cHV0UGl4ZWxCdWZmZXI7CisgICAgdXNpbmcgQmFzZUNv
bmNyZXRlSW1hZ2VCdWZmZXI6OnJlbmRlcmluZ1B1cnBvc2U7CisgICAgdXNpbmcgQmFzZUNvbmNy
ZXRlSW1hZ2VCdWZmZXI6OnJlbGVhc2VCdWZmZXJUb1Bvb2w7CiAKIHB1YmxpYzoKICAgICBzdGF0
aWMgYXV0byBjcmVhdGUoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBzaXplLCBmbG9hdCByZXNv
bHV0aW9uU2NhbGUsIGNvbnN0IFdlYkNvcmU6OkRlc3RpbmF0aW9uQ29sb3JTcGFjZSYgY29sb3JT
cGFjZSwgV2ViQ29yZTo6UGl4ZWxGb3JtYXQgcGl4ZWxGb3JtYXQsIFdlYkNvcmU6OlJlbmRlcmlu
Z1B1cnBvc2UgcHVycG9zZSwgUmVtb3RlUmVuZGVyaW5nQmFja2VuZCYgcmVtb3RlUmVuZGVyaW5n
QmFja2VuZCwgUXVhbGlmaWVkUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlbmRlcmluZ1Jl
c291cmNlSWRlbnRpZmllcikKQEAgLTU5LDEyICs1NCwxNCBAQCBwdWJsaWM6CiAKICAgICBSZW1v
dGVJbWFnZUJ1ZmZlcihjb25zdCBXZWJDb3JlOjpJbWFnZUJ1ZmZlckJhY2tlbmQ6OlBhcmFtZXRl
cnMmIHBhcmFtZXRlcnMsIHN0ZDo6dW5pcXVlX3B0cjxCYWNrZW5kVHlwZT4mJiBiYWNrZW5kLCBS
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kJiByZW1vdGVSZW5kZXJpbmdCYWNrZW5kLCBRdWFsaWZpZWRS
ZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKQog
ICAgICAgICA6IEJhc2VDb25jcmV0ZUltYWdlQnVmZmVyKHBhcmFtZXRlcnMsIFdURk1vdmUoYmFj
a2VuZCksIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllci5vYmplY3QoKSkKLSAgICAgICAgLCBt
X3JlbW90ZVJlbmRlcmluZ0JhY2tlbmQocmVtb3RlUmVuZGVyaW5nQmFja2VuZCkKKyNpZiBIQVZF
KElPU1VSRkFDRSkKKyAgICAgICAgLCBtX2lvU3VyZmFjZVBvb2wocmVtb3RlUmVuZGVyaW5nQmFj
a2VuZC5pb1N1cmZhY2VQb29sKCkpCisjZW5kaWYKICAgICAgICAgLCBtX3JlbmRlcmluZ1Jlc291
cmNlSWRlbnRpZmllcihyZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpCiAgICAgICAgICwgbV9y
ZW1vdGVEaXNwbGF5TGlzdCh7IFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OmNyZWF0ZSgqdGhp
cywgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyLCByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZp
ZXIucHJvY2Vzc0lkZW50aWZpZXIoKSwgcmVtb3RlUmVuZGVyaW5nQmFja2VuZCkgfSkKICAgICAg
ICAgLCBtX3JlbmRlcmluZ1Jlc291cmNlc1JlcXVlc3QoU2NvcGVkUmVuZGVyaW5nUmVzb3VyY2Vz
UmVxdWVzdDo6YWNxdWlyZSgpKQogICAgIHsKLSAgICAgICAgbV9yZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kLmRpZENyZWF0ZUltYWdlQnVmZmVyQmFja2VuZChtX2JhY2tlbmQtPmNyZWF0ZUJhY2tlbmRI
YW5kbGUoKSwgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyLCAqbV9yZW1vdGVEaXNwbGF5TGlz
dC5nZXQoKSk7CisgICAgICAgIHJlbW90ZVJlbmRlcmluZ0JhY2tlbmQuZGlkQ3JlYXRlSW1hZ2VC
dWZmZXJCYWNrZW5kKG1fYmFja2VuZC0+Y3JlYXRlQmFja2VuZEhhbmRsZSgpLCByZW5kZXJpbmdS
ZXNvdXJjZUlkZW50aWZpZXIsICptX3JlbW90ZURpc3BsYXlMaXN0LmdldCgpKTsKICAgICB9CiAK
ICAgICB+UmVtb3RlSW1hZ2VCdWZmZXIoKQpAQCAtNzQsNyArNzEsMTAgQEAgcHVibGljOgogICAg
ICAgICB3aGlsZSAoY29udGV4dCgpLnN0YWNrU2l6ZSgpKQogICAgICAgICAgICAgY29udGV4dCgp
LnJlc3RvcmUoKTsKIAotICAgICAgICBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmQud2lsbERlc3Ry
b3lJbWFnZUJ1ZmZlcigqdGhpcyk7CisjaWYgSEFWRShJT1NVUkZBQ0UpCisgICAgICAgIGlmIChy
ZW5kZXJpbmdQdXJwb3NlKCkgPT0gUmVuZGVyaW5nUHVycG9zZTo6TGF5ZXJCYWNraW5nKQorICAg
ICAgICAgICAgcmVsZWFzZUJ1ZmZlclRvUG9vbChtX2lvU3VyZmFjZVBvb2wucHRyKCkpOworI2Vu
ZGlmCiAgICAgfQogCiAgICAgdm9pZCBzZXRPd25lcnNoaXBJZGVudGl0eShjb25zdCBXZWJDb3Jl
OjpQcm9jZXNzSWRlbnRpdHkmIHJlc291cmNlT3duZXIpCkBAIC04NCw5ICs4NCw5IEBAIHB1Ymxp
YzoKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgZnJpZW5kIGNsYXNzIFJlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmQ7Ci0KLSAgICBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kJiBtX3JlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmQ7CisjaWYgSEFWRShJT1NVUkZBQ0UpCisgICAgUmVmPFdlYkNvcmU6OklPU3VyZmFjZVBv
b2w+IG1faW9TdXJmYWNlUG9vbDsKKyNlbmRpZgogICAgIFF1YWxpZmllZFJlbmRlcmluZ1Jlc291
cmNlSWRlbnRpZmllciBtX3JlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcjsKICAgICBJUEM6OlNj
b3BlZEFjdGl2ZU1lc3NhZ2VSZWNlaXZlUXVldWU8UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcj4g
bV9yZW1vdGVEaXNwbGF5TGlzdDsKICAgICBTY29wZWRSZW5kZXJpbmdSZXNvdXJjZXNSZXF1ZXN0
IG1fcmVuZGVyaW5nUmVzb3VyY2VzUmVxdWVzdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcAppbmRl
eCBkNWZhMTUzYWMyYWI1ZmUzMjM0N2FkNDIzODc3ZTE1MzNjMDdkMmJmLi42MThkZDAwMzNmMGQ0
MzM1ZDU1YmY1MjFlYzg0ZmM3YWE0MzdhNTQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwCkBA
IC0xNjQsMTQgKzE2NCw2IEBAIHZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6ZGlkQ3JlYXRl
SW1hZ2VCdWZmZXJCYWNrZW5kKEltYWdlQnVmZmVyQmFja2VuZEhhbmRsCiAgICAgc2VuZChNZXNz
YWdlczo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpEaWRDcmVhdGVJbWFnZUJ1ZmZlckJh
Y2tlbmQoV1RGTW92ZShoYW5kbGUpLCByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIub2JqZWN0
KCkpLCBtX3JlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyKTsKIH0KIAotdm9pZCBSZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kOjp3aWxsRGVzdHJveUltYWdlQnVmZmVyKEltYWdlQnVmZmVyJiBpbWFnZUJ1
ZmZlcikKLXsKLSNpZiBIQVZFKElPU1VSRkFDRSkKLSAgICBpZiAoaW1hZ2VCdWZmZXIucmVuZGVy
aW5nUHVycG9zZSgpID09IFJlbmRlcmluZ1B1cnBvc2U6OkxheWVyQmFja2luZykKLSAgICAgICAg
aW1hZ2VCdWZmZXIucmVsZWFzZUJ1ZmZlclRvUG9vbChtX2lvU3VyZmFjZVBvb2wuZ2V0KCkpOwot
I2VuZGlmCi19Ci0KIHZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6ZGlkRmx1c2goR3JhcGhp
Y3NDb250ZXh0Rmx1c2hJZGVudGlmaWVyIGZsdXNoSWRlbnRpZmllciwgUXVhbGlmaWVkUmVuZGVy
aW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcikKIHsKICAg
ICBNRVNTQUdFX0NIRUNLKHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllci5wcm9jZXNzSWRlbnRp
ZmllcigpID09IG1fZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy0+d2ViUHJvY2Vzc0lkZW50aWZp
ZXIoKSwgIlNlbmRpbmcgZGlkRmx1c2goKSBtZXNzYWdlIHRvIHRoZSB3cm9uZyB3ZWIgcHJvY2Vz
cy4iKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1v
dGVSZW5kZXJpbmdCYWNrZW5kLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3Mv
UmVtb3RlUmVuZGVyaW5nQmFja2VuZC5oCmluZGV4IDE4MjAzZTRjNGFmMzY3NTI0MDJlZGFiZTE5
YjNjNWIyZjExM2JhNjkuLjcxYWM1ZjE3NGE2YWI5MmY0YTI5MDliM2ZhMGVjMjU2OGU4ZmYxMzYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kLmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1Jl
bW90ZVJlbmRlcmluZ0JhY2tlbmQuaApAQCAtMjgsMTIgKzI4LDEwIEBACiAjaWYgRU5BQkxFKEdQ
VV9QUk9DRVNTKQogCiAjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgotI2luY2x1ZGUgIklQQ1NlbWFw
aG9yZS5oIgogI2luY2x1ZGUgIkltYWdlQnVmZmVyQmFja2VuZEhhbmRsZS5oIgogI2luY2x1ZGUg
Ik1lc3NhZ2VSZWNlaXZlci5oIgogI2luY2x1ZGUgIk1lc3NhZ2VTZW5kZXIuaCIKICNpbmNsdWRl
ICJRdWFsaWZpZWRSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIuaCIKLSNpbmNsdWRlICJSZW1v
dGVEaXNwbGF5TGlzdFJlY29yZGVyLmgiCiAjaW5jbHVkZSAiUmVtb3RlUmVzb3VyY2VDYWNoZS5o
IgogI2luY2x1ZGUgIlJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiUmVu
ZGVyaW5nVXBkYXRlSUQuaCIKQEAgLTQxLDEyICszOSw4IEBACiAjaW5jbHVkZSAiU3RyZWFtQ29u
bmVjdGlvbldvcmtRdWV1ZS5oIgogI2luY2x1ZGUgIlN0cmVhbU1lc3NhZ2VSZWNlaXZlci5oIgog
I2luY2x1ZGUgIlN0cmVhbVNlcnZlckNvbm5lY3Rpb24uaCIKLSNpbmNsdWRlIDxXZWJDb3JlL0Nv
bG9yU3BhY2UuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL0Rpc3BsYXlMaXN0SXRlbUJ1ZmZlcklkZW50
aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL01lZGlhUGxheWVySWRlbnRpZmllci5oPgotI2lu
Y2x1ZGUgPFdlYkNvcmUvUHJvY2Vzc0lkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1By
b2Nlc3NJZGVudGl0eS5oPgotI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKIG5hbWVzcGFjZSBX
VEYgewogZW51bSBjbGFzcyBDcml0aWNhbCA6IGJvb2w7CkBAIC05OCw5ICs5Miw4IEBAIHB1Ymxp
YzoKIAogICAgIHZvaWQgbG93TWVtb3J5SGFuZGxlcihXVEY6OkNyaXRpY2FsLCBXVEY6OlN5bmNo
cm9ub3VzKTsKIAotICAgIHZvaWQgd2lsbERlc3Ryb3lJbWFnZUJ1ZmZlcihXZWJDb3JlOjpJbWFn
ZUJ1ZmZlciYpOwogI2lmIEhBVkUoSU9TVVJGQUNFKQotICAgIFdlYkNvcmU6OklPU3VyZmFjZVBv
b2wmIGlvU3VyZmFjZVBvb2woKSBjb25zdCB7IHJldHVybiAqbV9pb1N1cmZhY2VQb29sOyB9Cisg
ICAgV2ViQ29yZTo6SU9TdXJmYWNlUG9vbCYgaW9TdXJmYWNlUG9vbCgpIGNvbnN0IHsgcmV0dXJu
IG1faW9TdXJmYWNlUG9vbDsgfQogI2VuZGlmCiAKIHByaXZhdGU6CkBAIC0xMzcsNyArMTMwLDYg
QEAgcHJpdmF0ZToKICAgICB2b2lkIGdldERhdGFGb3JJbWFnZUJ1ZmZlcldpdGhRdWFsaWZpZWRJ
ZGVudGlmaWVyKGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIHN0ZDo6b3B0aW9uYWw8ZG91YmxlPiBx
dWFsaXR5LCBRdWFsaWZpZWRSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoVmVjdG9yPHVpbnQ4X3Q+JiYpPiYmKTsKICAgICB2b2lkIGdldFNoYXJlYWJs
ZUJpdG1hcEZvckltYWdlQnVmZmVyV2l0aFF1YWxpZmllZElkZW50aWZpZXIoUXVhbGlmaWVkUmVu
ZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyLCBXZWJDb3JlOjpQcmVzZXJ2ZVJlc29sdXRpb24sIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoU2hhcmVhYmxlQml0bWFwOjpIYW5kbGUmJik+JiYpOwogICAg
IHZvaWQgY2FjaGVOYXRpdmVJbWFnZVdpdGhRdWFsaWZpZWRJZGVudGlmaWVyKGNvbnN0IFNoYXJl
YWJsZUJpdG1hcDo6SGFuZGxlJiwgUXVhbGlmaWVkUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVy
KTsKLSAgICB2b2lkIGRpZENyZWF0ZVNoYXJlZERpc3BsYXlMaXN0SGFuZGxlV2l0aFF1YWxpZmll
ZElkZW50aWZpZXIoV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1CdWZmZXJJZGVudGlmaWVyLCBj
b25zdCBTaGFyZWRNZW1vcnk6OklQQ0hhbmRsZSYsIFF1YWxpZmllZFJlbmRlcmluZ1Jlc291cmNl
SWRlbnRpZmllciBkZXN0aW5hdGlvbkJ1ZmZlcklkZW50aWZpZXIpOwogICAgIHZvaWQgcmVsZWFz
ZVJlbW90ZVJlc291cmNlV2l0aFF1YWxpZmllZElkZW50aWZpZXIoUXVhbGlmaWVkUmVuZGVyaW5n
UmVzb3VyY2VJZGVudGlmaWVyKTsKICAgICB2b2lkIGNhY2hlRm9udFdpdGhRdWFsaWZpZWRJZGVu
dGlmaWVyKFJlZjxXZWJDb3JlOjpGb250PiYmLCBRdWFsaWZpZWRSZW5kZXJpbmdSZXNvdXJjZUlk
ZW50aWZpZXIpOwogCkBAIC0xNTIsNyArMTQ0LDcgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8U2hh
cmVkTWVtb3J5PiBtX2dldFBpeGVsQnVmZmVyU2hhcmVkTWVtb3J5OwogICAgIFNjb3BlZFJlbmRl
cmluZ1Jlc291cmNlc1JlcXVlc3QgbV9yZW5kZXJpbmdSZXNvdXJjZXNSZXF1ZXN0OwogI2lmIEhB
VkUoSU9TVVJGQUNFKQotICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpJT1N1cmZhY2VQb29s
PiBtX2lvU3VyZmFjZVBvb2w7CisgICAgUmVmPFdlYkNvcmU6OklPU3VyZmFjZVBvb2w+IG1faW9T
dXJmYWNlUG9vbDsKICNlbmRpZgogCiAgICAgTG9jayBtX3JlbW90ZURpc3BsYXlMaXN0c0xvY2s7
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>458631</attachid>
            <date>2022-04-29 22:53:37 -0700</date>
            <delta_ts>2022-04-30 21:26:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-239107-20220429225337.patch</filename>
            <type>text/plain</type>
            <size>22249</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkzNjAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjZlNWNhNjkwNDI4NThm
Mjc1MzIzZjRjYWQzZDQxYzQxOTUyMGIwNC4uNDQ4YTI2NTU4OTNhYTQyMjhkN2JmOTQ3ZjljYmE1
NzNiMjg0YmIwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDIyLTA0LTI5ICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgorCisgICAgICAgIFJFR1JFU1NJT04ocjI4
MjExNyk6IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OndpbGxEZXN0cm95SW1hZ2VCdWZmZXIoKSBj
YW4gY3Jhc2ggaWYgdGhlIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQgaGFzIGFscmVhZHkgYmVlbiBk
ZXN0cm95ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIzOTEwNworICAgICAgICByZGFyOi8vOTE2MDgyOTgKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAtLSBJT1N1cmZhY2VQb29sIHdpbGwgYmUgUmVmQ291
bnRlZC4gCisKKyAgICAgICAgLS0gSW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kOjpjcmVhdGUo
KSB3aWxsIHBhc3MgdGhlIHN1cmZhY2VQb29sCisgICAgICAgICAgIG9mIHRoZSBDcmVhdGlvbkNv
bnRleHQgdG8gSW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kIGNvbnN0cnVjdG9yLgorCisgICAg
ICAgIC0tIEltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZCB3aWxsIGhvbGQgYSBSZWZQdHI8SU9T
dXJmYWNlUG9vbD4uCisKKyAgICAgICAgLS0gSW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kIGRl
c3RydWN0b3Igd2lsbCBjYWxsIElPU3VyZmFjZTo6bW92ZVRvUG9vbCgpCisgICAgICAgICAgIHRv
IHJldHVybiBpdHMgc3VyZmFjZSB0byB0aGUgSU9TdXJmYWNlUG9vbCBpZiBpdCB3YXMgc2V0Lgor
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvQ29uY3JldGVJbWFnZUJ1ZmZlci5oOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmg6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXJCYWNrZW5kLmg6CisgICAgICAgIChXZWJDb3JlOjpJbWFn
ZUJ1ZmZlckJhY2tlbmQ6OnJlbGVhc2VHcmFwaGljc0NvbnRleHQpOgorICAgICAgICAoV2ViQ29y
ZTo6SW1hZ2VCdWZmZXJCYWNrZW5kOjpyZWxlYXNlQnVmZmVyVG9Qb29sKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jZy9JT1N1cmZhY2VQb29sLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OklPU3VyZmFjZVBvb2w6OmNyZWF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvY2cvSU9TdXJmYWNlUG9vbC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nn
L0ltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFn
ZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpJbWFn
ZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQ6OkltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQ6On5JbWFnZUJ1ZmZl
cklPU3VyZmFjZUJhY2tlbmQpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCdWZmZXJJT1N1cmZh
Y2VCYWNrZW5kOjpyZWxlYXNlQnVmZmVyVG9Qb29sKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQuaDoKKwogMjAyMi0w
NC0yOCAgUGF0cmljayBHcmlmZmlzICA8cGdyaWZmaXNAaWdhbGlhLmNvbT4KIAogICAgICAgICBD
U1A6IEZpeCBtaXhpbmcgc3RyaWN0LWR5bmFtaWMgYW5kIHVuc2FmZS1pbmxpbmUgcG9saWNpZXMK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKaW5kZXggYjQwY2NhMTUyMjg0NDAwMjA0OWFhYzU5MTgyYzAwOTVhOWM0ZWI1MS4uZTZm
MDMxYWZhOTRjM2JlOWFiMzVkMmM3NzljNTU4YWU3MmFkYTczMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwzNCBAQAorMjAyMi0wNC0yOSAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWlkQGFwcGxlLmNvbT4K
KworICAgICAgICBSRUdSRVNTSU9OKHIyODIxMTcpOiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjp3
aWxsRGVzdHJveUltYWdlQnVmZmVyKCkgY2FuIGNyYXNoIGlmIHRoZSBSZW1vdGVSZW5kZXJpbmdC
YWNrZW5kIGhhcyBhbHJlYWR5IGJlZW4gZGVzdHJveWVkCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzkxMDcKKyAgICAgICAgcmRhcjovLzkxNjA4Mjk4
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWZ0ZXIg
cjI4MjExNywgdGhlIGFzc3VtcHRpb24gdGhhdCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kIHdpbGwg
b3V0bGl2ZQorICAgICAgICBhbGwgaXRzIFJlbW90ZUltYWdlQnVmZmVycyBiZWNhbWUgd3Jvbmcu
IFRoZSBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kIGNhbgorICAgICAgICBnZXQgZGVzdHJveWVkIHVu
ZGVyIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpZENsb3NlKCkgYmVmb3JlIHRoZQorICAg
ICAgICBjYWxsT25NYWluVGhyZWFkKCkgb2YgdGhlIFRocmVhZFNhZmVSZWZjb3VudGVkIGltYWdl
IGJ1ZmZlcnMgaGF2ZSBydW4uCisKKyAgICAgICAgVGhpcyBzb2x1dGlvbiBpcyB0byBtYWtlIHRo
ZSBJbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQgYmUgcmVzcG9uc2libGUgCisgICAgICAgIG9m
IHJldHVybmluZyBpdHMgSU9TdXJmYWNlIHRvIHRoZSBJT1N1cmZhY2VQb29sLiBTbyBubyBuZWVk
IHRvIGNhbGwgCisgICAgICAgIHdpbGxEZXN0cm95SW1hZ2VCdWZmZXIoKSBmcm9tIHRoZSBSZW1v
dGVJbWFnZUJ1ZmZlciBkZXN0cnVjdG9yLgorCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGlj
cy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5oOgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhp
Y3MvUmVtb3RlSW1hZ2VCdWZmZXIuaDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlSW1hZ2VCdWZm
ZXI6OlJlbW90ZUltYWdlQnVmZmVyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlSW1hZ2VCdWZm
ZXI6Om1fcmVuZGVyaW5nUmVzb3VyY2VzUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZUltYWdlQnVmZmVyOjp+UmVtb3RlSW1hZ2VCdWZmZXIpOgorICAgICAgICAqIEdQVVByb2Nlc3Mv
Z3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZVJlbmRlcmluZ0JhY2tlbmQ6OndpbGxEZXN0cm95SW1hZ2VCdWZmZXIpOiBEZWxldGVkLgor
ICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5oOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjppb1N1cmZhY2VQb29sIGNv
bnN0KToKKyAgICAgICAgKiBTaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyQmFja2lu
Z1N0b3JlLm1tOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllckJhY2tpbmdTdG9yZTo6QnVm
ZmVyOjpkaXNjYXJkKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9J
bWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQuY3BwOgorICAgICAgICAo
V2ViS2l0OjpJbWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQ6OmNyZWF0
ZSk6CisKIDIwMjItMDQtMjggIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KIAog
ICAgICAgICBTdXBwb3J0IEMgZmlsZXMgaW4gVW5pZmllZCBCdWlsZHMKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbmNyZXRlSW1hZ2VCdWZmZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbmNyZXRlSW1hZ2VCdWZmZXIuaAppbmRl
eCA5ODhkNDA0OTk4YjFjYjY0OWMxYjE4MDY0YjUwMzQxZTA0MDRiNzlhLi5iZjY4ZDFhZDYxOGQz
MWQ0YTIxMTY4Yjk3MGRmZWQxMDdlMmYxMjU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9Db25jcmV0ZUltYWdlQnVmZmVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29uY3JldGVJbWFnZUJ1ZmZlci5oCkBAIC0zNTIsMTQgKzM1
Miw2IEBAIHByb3RlY3RlZDoKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogCi0jaWYg
SEFWRShJT1NVUkZBQ0UpCi0gICAgdm9pZCByZWxlYXNlQnVmZmVyVG9Qb29sKElPU3VyZmFjZVBv
b2wqIHBvb2wpIG92ZXJyaWRlCi0gICAgewotICAgICAgICBpZiAoYXV0byogYmFja2VuZCA9IGVu
c3VyZUJhY2tlbmRDcmVhdGVkKCkpCi0gICAgICAgICAgICBiYWNrZW5kLT5yZWxlYXNlQnVmZmVy
VG9Qb29sKHBvb2wpOwotICAgIH0KLSNlbmRpZgotCiAgICAgSW1hZ2VCdWZmZXJCYWNrZW5kOjpQ
YXJhbWV0ZXJzIG1fcGFyYW1ldGVyczsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8QmFja2VuZFR5cGU+
IG1fYmFja2VuZDsKICAgICBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgbV9yZW5kZXJpbmdS
ZXNvdXJjZUlkZW50aWZpZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9JbWFnZUJ1ZmZlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
SW1hZ2VCdWZmZXIuaAppbmRleCBjZWZjMjBhYzcyMzIzYTQzNjg4NTgxNGFjYzBhZGU0MTYyNGRl
NzFkLi5mYjRkMjY1ZjdkMzUwOWUwN2QyMzhmMWZhNzcxNTFkNWZmM2RiYjBhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmgKQEAgLTExNiw5ICsx
MTYsNiBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNJblVzZSgpIGNvbnN0ID0gMDsK
ICAgICB2aXJ0dWFsIHZvaWQgcmVsZWFzZUdyYXBoaWNzQ29udGV4dCgpID0gMDsKLSNpZiBIQVZF
KElPU1VSRkFDRSkKLSAgICB2aXJ0dWFsIHZvaWQgcmVsZWFzZUJ1ZmZlclRvUG9vbChJT1N1cmZh
Y2VQb29sKikgPSAwOwotI2VuZGlmCiAgICAgLy8gUmV0dXJucyB0cnVlIG9uIHN1Y2Nlc3MuCiAg
ICAgdmlydHVhbCBib29sIHNldFZvbGF0aWxlKCkgPSAwOwogICAgIHZpcnR1YWwgU2V0Tm9uVm9s
YXRpbGVSZXN1bHQgc2V0Tm9uVm9sYXRpbGUoKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlckJhY2tlbmQuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyQmFja2VuZC5oCmluZGV4IGYxZjFkZDE2
NjI3M2ExOTQ3NjIyMzE3ZGVkMzIzYmMwYzgwZjRhMzQuLjc0MTUzZTIzZTVlYmQ3YTM5M2Q3NmEw
OWQ4YzBmZDAyZjljODA2YzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0ltYWdlQnVmZmVyQmFja2VuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0ltYWdlQnVmZmVyQmFja2VuZC5oCkBAIC0xNDIsOSArMTQyLDYgQEAgcHVibGlj
OgogCiAgICAgdmlydHVhbCBib29sIGlzSW5Vc2UoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQog
ICAgIHZpcnR1YWwgdm9pZCByZWxlYXNlR3JhcGhpY3NDb250ZXh0KCkgeyBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsgfQotI2lmIEhBVkUoSU9TVVJGQUNFKQotICAgIHZpcnR1YWwgdm9pZCByZWxlYXNl
QnVmZmVyVG9Qb29sKElPU3VyZmFjZVBvb2wqKSB7IH0KLSNlbmRpZgogCiAgICAgLy8gUmV0dXJu
cyB0cnVlIG9uIHN1Y2Nlc3MuCiAgICAgdmlydHVhbCBib29sIHNldFZvbGF0aWxlKCkgeyByZXR1
cm4gdHJ1ZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2cvSU9TdXJmYWNlUG9vbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
Zy9JT1N1cmZhY2VQb29sLmNwcAppbmRleCAxYjgzOGE0ZjgwYTExNDg2OThiZDQzNzM2ZTRhMzg2
MjEwYzkxNTg4Li5hNGE2NDk2MTYwODU3MDc1ZGQ0NDEwM2RmNzAzZDdkMmNhNmZkM2RlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JT1N1cmZhY2VQb29s
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JT1N1cmZhY2VQ
b29sLmNwcApAQCAtNjEsOSArNjEsOSBAQCBJT1N1cmZhY2VQb29sJiBJT1N1cmZhY2VQb29sOjpz
aGFyZWRQb29sKCkKICAgICByZXR1cm4gcG9vbDsKIH0KIAotc3RkOjp1bmlxdWVfcHRyPElPU3Vy
ZmFjZVBvb2w+IElPU3VyZmFjZVBvb2w6OmNyZWF0ZSgpCitSZWY8SU9TdXJmYWNlUG9vbD4gSU9T
dXJmYWNlUG9vbDo6Y3JlYXRlKCkKIHsKLSAgICByZXR1cm4gc3RkOjp1bmlxdWVfcHRyPElPU3Vy
ZmFjZVBvb2w+KG5ldyBJT1N1cmZhY2VQb29sKCkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IElPU3VyZmFjZVBvb2woKSk7CiB9CiAKIHN0YXRpYyBib29sIHN1cmZhY2VNYXRjaGVzUGFyYW1l
dGVycyhJT1N1cmZhY2UmIHN1cmZhY2UsIEludFNpemUgcmVxdWVzdGVkU2l6ZSwgY29uc3QgRGVz
dGluYXRpb25Db2xvclNwYWNlJiBjb2xvclNwYWNlLCBJT1N1cmZhY2U6OkZvcm1hdCBmb3JtYXQp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JT1N1cmZh
Y2VQb29sLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JT1N1cmZhY2VQ
b29sLmgKaW5kZXggNTJmNTVmNjM0NTBlNWVlN2Y2YmZhYWQ4NWFlNDIzMDY3NDRmN2E0NC4uZWEx
N2ZmODFkZTZkMjAxNGUyMDA5YWY5MzQ0NGQxMjFmZjQyMjNiNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSU9TdXJmYWNlUG9vbC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0lPU3VyZmFjZVBvb2wuaApAQCAtMzUsMjAg
KzM1LDIxIEBACiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvTG9jay5o
PgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3Vu
dGVkLmg+CiAjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBjbGFzcyBEZXN0aW5hdGF0aW9uQ29sb3JTcGFjZTsKIAotY2xhc3MgSU9TdXJmYWNlUG9vbCB7
CitjbGFzcyBJT1N1cmZhY2VQb29sIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPElPU3Vy
ZmFjZVBvb2w+IHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShJT1N1cmZhY2VQb29sKTsKICAg
ICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKICAgICBmcmllbmQgY2xhc3MgTGF6eU5ldmVyRGVz
dHJveWVkPElPU3VyZmFjZVBvb2w+OwogCiBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgc3Rh
dGljIElPU3VyZmFjZVBvb2wmIHNoYXJlZFBvb2woKTsKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0
aWMgc3RkOjp1bmlxdWVfcHRyPElPU3VyZmFjZVBvb2w+IGNyZWF0ZSgpOworICAgIFdFQkNPUkVf
RVhQT1JUIHN0YXRpYyBSZWY8SU9TdXJmYWNlUG9vbD4gY3JlYXRlKCk7CiAKICAgICBzdGQ6OnVu
aXF1ZV9wdHI8SU9TdXJmYWNlPiB0YWtlU3VyZmFjZShJbnRTaXplLCBjb25zdCBEZXN0aW5hdGlv
bkNvbG9yU3BhY2UmLCBJT1N1cmZhY2U6OkZvcm1hdCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBhZGRTdXJmYWNlKHN0ZDo6dW5pcXVlX3B0cjxJT1N1cmZhY2U+JiYpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJJT1N1cmZhY2VC
YWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVm
ZmVySU9TdXJmYWNlQmFja2VuZC5jcHAKaW5kZXggZWZkZjA1MDM5OTQyYmJiZDAyNDFlODlkODA5
OGI5MGRhMDQ4NzA2Ni4uNTM0NDgyZTMzOGJhODY3MGMzNTg2ZWIzNWJjNGY2M2ZkMzIyOWM4YiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZm
ZXJJT1N1cmZhY2VCYWNrZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jZy9JbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQuY3BwCkBAIC05OSw3ICs5OSw3IEBA
IHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQ+IEltYWdlQnVmZmVy
SU9TdXJmYWNlQmFja2VuZDo6Y3JlYXRlCiAKICAgICBDR0NvbnRleHRDbGVhclJlY3QoY2dDb250
ZXh0LmdldCgpLCBGbG9hdFJlY3QoRmxvYXRQb2ludDo6emVybygpLCBiYWNrZW5kU2l6ZSkpOwog
Ci0gICAgcmV0dXJuIG1ha2VVbmlxdWU8SW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kPihwYXJh
bWV0ZXJzLCBXVEZNb3ZlKHN1cmZhY2UpKTsKKyAgICByZXR1cm4gbWFrZVVuaXF1ZTxJbWFnZUJ1
ZmZlcklPU3VyZmFjZUJhY2tlbmQ+KHBhcmFtZXRlcnMsIFdURk1vdmUoc3VyZmFjZSksIGNyZWF0
aW9uQ29udGV4dC5zdXJmYWNlUG9vbCk7CiB9CiAKIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZl
cklPU3VyZmFjZUJhY2tlbmQ+IEltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZDo6Y3JlYXRlKGNv
bnN0IFBhcmFtZXRlcnMmIHBhcmFtZXRlcnMsIGNvbnN0IEdyYXBoaWNzQ29udGV4dCYgY29udGV4
dCkKQEAgLTExNCwxNCArMTE0LDIwIEBAIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcklPU3Vy
ZmFjZUJhY2tlbmQ+IEltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZDo6Y3JlYXRlCiAgICAgcmV0
dXJuIEltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZDo6Y3JlYXRlKHBhcmFtZXRlcnMsIG51bGxw
dHIpOwogfQogCi1JbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQ6OkltYWdlQnVmZmVySU9TdXJm
YWNlQmFja2VuZChjb25zdCBQYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzLCBzdGQ6OnVuaXF1ZV9wdHI8
SU9TdXJmYWNlPiYmIHN1cmZhY2UpCitJbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQ6OkltYWdl
QnVmZmVySU9TdXJmYWNlQmFja2VuZChjb25zdCBQYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzLCBzdGQ6
OnVuaXF1ZV9wdHI8SU9TdXJmYWNlPiYmIHN1cmZhY2UsIElPU3VyZmFjZVBvb2wqIGlvU3VyZmFj
ZVBvb2wpCiAgICAgOiBJbWFnZUJ1ZmZlckNHQmFja2VuZChwYXJhbWV0ZXJzKQogICAgICwgbV9z
dXJmYWNlKFdURk1vdmUoc3VyZmFjZSkpCisgICAgLCBtX2lvU3VyZmFjZVBvb2woaW9TdXJmYWNl
UG9vbCkKIHsKICAgICBBU1NFUlQobV9zdXJmYWNlKTsKICAgICBhcHBseUJhc2VUcmFuc2Zvcm1U
b0NvbnRleHQoKTsKIH0KIAorSW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kOjp+SW1hZ2VCdWZm
ZXJJT1N1cmZhY2VCYWNrZW5kKCkKK3sKKyAgICBJT1N1cmZhY2U6Om1vdmVUb1Bvb2woV1RGTW92
ZShtX3N1cmZhY2UpLCBtX2lvU3VyZmFjZVBvb2wuZ2V0KCkpOworfQorCiBHcmFwaGljc0NvbnRl
eHQmIEltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZDo6Y29udGV4dCgpIGNvbnN0CiB7CiAgICAg
R3JhcGhpY3NDb250ZXh0JiBjb250ZXh0ID0gbV9zdXJmYWNlLT5lbnN1cmVHcmFwaGljc0NvbnRl
eHQoKTsKQEAgLTI2MiwxMSArMjY4LDYgQEAgdm9pZCBJbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tl
bmQ6OnNldFZvbGF0aWxpdHlTdGF0ZShWb2xhdGlsaXR5U3RhdGUgdm9sYXRpbGl0eVMKICAgICBt
X3ZvbGF0aWxpdHlTdGF0ZSA9IHZvbGF0aWxpdHlTdGF0ZTsKIH0KIAotdm9pZCBJbWFnZUJ1ZmZl
cklPU3VyZmFjZUJhY2tlbmQ6OnJlbGVhc2VCdWZmZXJUb1Bvb2woSU9TdXJmYWNlUG9vbCogcG9v
bCkKLXsKLSAgICBJT1N1cmZhY2U6Om1vdmVUb1Bvb2woV1RGTW92ZShtX3N1cmZhY2UpLCBwb29s
KTsKLX0KLQogdm9pZCBJbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQ6OmVuc3VyZU5hdGl2ZUlt
YWdlc0hhdmVDb3BpZWRCYWNraW5nU3RvcmUoKQogewogICAgIGludmFsaWRhdGVDYWNoZWROYXRp
dmVJbWFnZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2cvSW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQuaAppbmRleCA3ZDA5YWEx
OTQxNDkwNDMxZmIwMzVmYzFmNjE4NDhjODg4N2MxMzI1Li44MTIzM2Q1ZDZkMDA2ODQxODg2NTQz
M2E1MjNkZmUzOGU0NTE4YmJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jZy9JbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQuaApA
QCAtMjksNiArMjksNyBAQAogCiAjaW5jbHVkZSAiSW1hZ2VCdWZmZXJDR0JhY2tlbmQuaCIKICNp
bmNsdWRlICJJT1N1cmZhY2UuaCIKKyNpbmNsdWRlICJJT1N1cmZhY2VQb29sLmgiCiAjaW5jbHVk
ZSA8d3RmL0lzb01hbGxvYy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00Niw4ICs0Nyw5
IEBAIHB1YmxpYzoKICAgICAvLyBGSVhNRTogUmVuYW1lIHRvIGNyZWF0ZVVzaW5nQ29sb3JTcGFj
ZU9mR3JhcGhpY3NDb250ZXh0KCkgKG9yIHNvbWV0aGluZyBsaWtlIHRoYXQpLgogICAgIHN0YXRp
YyBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kPiBjcmVhdGUoY29u
c3QgUGFyYW1ldGVycyYsIGNvbnN0IEdyYXBoaWNzQ29udGV4dCYpOwogCi0gICAgSW1hZ2VCdWZm
ZXJJT1N1cmZhY2VCYWNrZW5kKGNvbnN0IFBhcmFtZXRlcnMmLCBzdGQ6OnVuaXF1ZV9wdHI8SU9T
dXJmYWNlPiYmKTsKLQorICAgIEltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZChjb25zdCBQYXJh
bWV0ZXJzJiwgc3RkOjp1bmlxdWVfcHRyPElPU3VyZmFjZT4mJiwgSU9TdXJmYWNlUG9vbCopOwor
ICAgIH5JbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQoKTsKKyAgICAKICAgICBzdGF0aWMgY29u
c3RleHByIFJlbmRlcmluZ01vZGUgcmVuZGVyaW5nTW9kZSA9IFJlbmRlcmluZ01vZGU6OkFjY2Vs
ZXJhdGVkOwogCiAgICAgSU9TdXJmYWNlKiBzdXJmYWNlKCk7CkBAIC02OCw3ICs3MCw2IEBAIHBy
b3RlY3RlZDoKIAogICAgIGJvb2wgaXNJblVzZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZvaWQg
cmVsZWFzZUdyYXBoaWNzQ29udGV4dCgpIG92ZXJyaWRlOwotICAgIHZvaWQgcmVsZWFzZUJ1ZmZl
clRvUG9vbChJT1N1cmZhY2VQb29sKikgb3ZlcnJpZGU7CiAKICAgICBib29sIHNldFZvbGF0aWxl
KCkgZmluYWw7CiAgICAgU2V0Tm9uVm9sYXRpbGVSZXN1bHQgc2V0Tm9uVm9sYXRpbGUoKSBmaW5h
bDsKQEAgLTkyLDYgKzkzLDggQEAgcHJvdGVjdGVkOgogCiAgICAgbXV0YWJsZSBib29sIG1fbmVl
ZHNTZXR1cENvbnRleHQgeyBmYWxzZSB9OwogICAgIFZvbGF0aWxpdHlTdGF0ZSBtX3ZvbGF0aWxp
dHlTdGF0ZSB7IFZvbGF0aWxpdHlTdGF0ZTo6Tm9uVm9sYXRpbGUgfTsKKworICAgIFJlZlB0cjxJ
T1N1cmZhY2VQb29sPiBtX2lvU3VyZmFjZVBvb2w7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3Rl
R3JhcGhpY3NDb250ZXh0R0wuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9S
ZW1vdGVHcmFwaGljc0NvbnRleHRHTC5oCmluZGV4IGMzMWU2NTEwNjUxNTE2ZTNhNDNjYjRlNmM2
ZjQ1N2NhYTMxNmExOWMuLjBkOTk1MjFkOGI1ZGQ1NWU0NGE2ZDY0MTI2Nzk4NTlhMDNiYmNiNjYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFw
aGljc0NvbnRleHRHTC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9S
ZW1vdGVHcmFwaGljc0NvbnRleHRHTC5oCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSAiU3Ry
ZWFtTWVzc2FnZVJlY2VpdmVyLmgiCiAjaW5jbHVkZSAiU3RyZWFtU2VydmVyQ29ubmVjdGlvbi5o
IgogI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KKyNpbmNsdWRlIDxXZWJDb3Jl
L1BpeGVsQnVmZmVyLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZEFzc2VydGlvbnMuaD4KICNpbmNs
dWRlIDx3dGYvV2Vha1B0ci5oPgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXIuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlci5oCmluZGV4IDQxYTRlMDNhZGE0MTM2OTQ4NGE3
Mjk2ZGM3YWI2MmY2NGM3NTdkZmEuLjBmYTIzMjczZDNlMGM4MTRiOWFmYTMzYmQ5MWFiMzE1ZjI2
MGJmOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1v
dGVJbWFnZUJ1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9S
ZW1vdGVJbWFnZUJ1ZmZlci5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykg
MjAyMC0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAyMC0yMDIyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjcsMTUgKzI3LDkgQEAKIAogI2lmIEVOQUJMRShHUFVf
UFJPQ0VTUykKIAotI2luY2x1ZGUgIkRlY29kZXIuaCIKLSNpbmNsdWRlICJHUFVDb25uZWN0aW9u
VG9XZWJQcm9jZXNzLmgiCi0jaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIlJlbW90ZURp
c3BsYXlMaXN0UmVjb3JkZXIuaCIKICNpbmNsdWRlICJTY29wZWRBY3RpdmVNZXNzYWdlUmVjZWl2
ZVF1ZXVlLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9Db25jcmV0ZUltYWdlQnVmZmVyLmg+Ci0jaW5j
bHVkZSA8V2ViQ29yZS9EaXNwbGF5TGlzdC5oPgotI2luY2x1ZGUgPFdlYkNvcmUvRGlzcGxheUxp
c3RJdGVtcy5oPgotI2luY2x1ZGUgPFdlYkNvcmUvRGlzcGxheUxpc3RSZXBsYXllci5oPgogCiBu
YW1lc3BhY2UgV2ViS2l0IHsKIApAQCAtNDQsNyArMzgsNiBAQCBjbGFzcyBSZW1vdGVJbWFnZUJ1
ZmZlciA6IHB1YmxpYyBXZWJDb3JlOjpDb25jcmV0ZUltYWdlQnVmZmVyPEJhY2tlbmRUeXBlPiB7
CiAgICAgdXNpbmcgQmFzZUNvbmNyZXRlSW1hZ2VCdWZmZXIgPSBXZWJDb3JlOjpDb25jcmV0ZUlt
YWdlQnVmZmVyPEJhY2tlbmRUeXBlPjsKICAgICB1c2luZyBCYXNlQ29uY3JldGVJbWFnZUJ1ZmZl
cjo6Y29udGV4dDsKICAgICB1c2luZyBCYXNlQ29uY3JldGVJbWFnZUJ1ZmZlcjo6bV9iYWNrZW5k
OwotICAgIHVzaW5nIEJhc2VDb25jcmV0ZUltYWdlQnVmZmVyOjpwdXRQaXhlbEJ1ZmZlcjsKIAog
cHVibGljOgogICAgIHN0YXRpYyBhdXRvIGNyZWF0ZShjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUm
IHNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgY29uc3QgV2ViQ29yZTo6RGVzdGluYXRpb25D
b2xvclNwYWNlJiBjb2xvclNwYWNlLCBXZWJDb3JlOjpQaXhlbEZvcm1hdCBwaXhlbEZvcm1hdCwg
V2ViQ29yZTo6UmVuZGVyaW5nUHVycG9zZSBwdXJwb3NlLCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5k
JiByZW1vdGVSZW5kZXJpbmdCYWNrZW5kLCBRdWFsaWZpZWRSZW5kZXJpbmdSZXNvdXJjZUlkZW50
aWZpZXIgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKQpAQCAtNTksMTIgKzUyLDExIEBAIHB1
YmxpYzoKIAogICAgIFJlbW90ZUltYWdlQnVmZmVyKGNvbnN0IFdlYkNvcmU6OkltYWdlQnVmZmVy
QmFja2VuZDo6UGFyYW1ldGVycyYgcGFyYW1ldGVycywgc3RkOjp1bmlxdWVfcHRyPEJhY2tlbmRU
eXBlPiYmIGJhY2tlbmQsIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQmIHJlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmQsIFF1YWxpZmllZFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciByZW5kZXJpbmdSZXNv
dXJjZUlkZW50aWZpZXIpCiAgICAgICAgIDogQmFzZUNvbmNyZXRlSW1hZ2VCdWZmZXIocGFyYW1l
dGVycywgV1RGTW92ZShiYWNrZW5kKSwgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyLm9iamVj
dCgpKQotICAgICAgICAsIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZChyZW1vdGVSZW5kZXJpbmdC
YWNrZW5kKQogICAgICAgICAsIG1fcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKHJlbmRlcmlu
Z1Jlc291cmNlSWRlbnRpZmllcikKICAgICAgICAgLCBtX3JlbW90ZURpc3BsYXlMaXN0KHsgUmVt
b3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6Y3JlYXRlKCp0aGlzLCByZW5kZXJpbmdSZXNvdXJjZUlk
ZW50aWZpZXIsIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllci5wcm9jZXNzSWRlbnRpZmllcigp
LCByZW1vdGVSZW5kZXJpbmdCYWNrZW5kKSB9KQogICAgICAgICAsIG1fcmVuZGVyaW5nUmVzb3Vy
Y2VzUmVxdWVzdChTY29wZWRSZW5kZXJpbmdSZXNvdXJjZXNSZXF1ZXN0OjphY3F1aXJlKCkpCiAg
ICAgewotICAgICAgICBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuZGlkQ3JlYXRlSW1hZ2VCdWZm
ZXJCYWNrZW5kKG1fYmFja2VuZC0+Y3JlYXRlQmFja2VuZEhhbmRsZSgpLCByZW5kZXJpbmdSZXNv
dXJjZUlkZW50aWZpZXIsICptX3JlbW90ZURpc3BsYXlMaXN0LmdldCgpKTsKKyAgICAgICAgcmVt
b3RlUmVuZGVyaW5nQmFja2VuZC5kaWRDcmVhdGVJbWFnZUJ1ZmZlckJhY2tlbmQobV9iYWNrZW5k
LT5jcmVhdGVCYWNrZW5kSGFuZGxlKCksIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciwgKm1f
cmVtb3RlRGlzcGxheUxpc3QuZ2V0KCkpOwogICAgIH0KIAogICAgIH5SZW1vdGVJbWFnZUJ1ZmZl
cigpCkBAIC03Myw4ICs2NSw2IEBAIHB1YmxpYzoKICAgICAgICAgLy8gYmVlbiBmbHVzaGVkIHll
dCwgb3IgdGhlIHdlYiBwcm9jZXNzIG1heSBoYXZlIHRlcm1pbmF0ZWQuCiAgICAgICAgIHdoaWxl
IChjb250ZXh0KCkuc3RhY2tTaXplKCkpCiAgICAgICAgICAgICBjb250ZXh0KCkucmVzdG9yZSgp
OwotCi0gICAgICAgIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZC53aWxsRGVzdHJveUltYWdlQnVm
ZmVyKCp0aGlzKTsKICAgICB9CiAKICAgICB2b2lkIHNldE93bmVyc2hpcElkZW50aXR5KGNvbnN0
IFdlYkNvcmU6OlByb2Nlc3NJZGVudGl0eSYgcmVzb3VyY2VPd25lcikKQEAgLTg0LDkgKzc0LDYg
QEAgcHVibGljOgogICAgIH0KIAogcHJpdmF0ZToKLSAgICBmcmllbmQgY2xhc3MgUmVtb3RlUmVu
ZGVyaW5nQmFja2VuZDsKLQotICAgIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQmIG1fcmVtb3RlUmVu
ZGVyaW5nQmFja2VuZDsKICAgICBRdWFsaWZpZWRSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIg
bV9yZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXI7CiAgICAgSVBDOjpTY29wZWRBY3RpdmVNZXNz
YWdlUmVjZWl2ZVF1ZXVlPFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI+IG1fcmVtb3RlRGlzcGxh
eUxpc3Q7CiAgICAgU2NvcGVkUmVuZGVyaW5nUmVzb3VyY2VzUmVxdWVzdCBtX3JlbmRlcmluZ1Jl
c291cmNlc1JlcXVlc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3Jh
cGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAKaW5kZXggZDVmYTE1M2FjMmFi
NWZlMzIzNDdhZDQyMzg3N2UxNTMzYzA3ZDJiZi4uNjE4ZGQwMDMzZjBkNDMzNWQ1NWJmNTIxZWM4
NGZjN2FhNDM3YTU0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBo
aWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcApAQCAtMTY0LDE0ICsxNjQs
NiBAQCB2b2lkIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmRpZENyZWF0ZUltYWdlQnVmZmVyQmFj
a2VuZChJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbAogICAgIHNlbmQoTWVzc2FnZXM6OlJlbW90ZVJl
bmRlcmluZ0JhY2tlbmRQcm94eTo6RGlkQ3JlYXRlSW1hZ2VCdWZmZXJCYWNrZW5kKFdURk1vdmUo
aGFuZGxlKSwgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyLm9iamVjdCgpKSwgbV9yZW5kZXJp
bmdCYWNrZW5kSWRlbnRpZmllcik7CiB9CiAKLXZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6
d2lsbERlc3Ryb3lJbWFnZUJ1ZmZlcihJbWFnZUJ1ZmZlciYgaW1hZ2VCdWZmZXIpCi17Ci0jaWYg
SEFWRShJT1NVUkZBQ0UpCi0gICAgaWYgKGltYWdlQnVmZmVyLnJlbmRlcmluZ1B1cnBvc2UoKSA9
PSBSZW5kZXJpbmdQdXJwb3NlOjpMYXllckJhY2tpbmcpCi0gICAgICAgIGltYWdlQnVmZmVyLnJl
bGVhc2VCdWZmZXJUb1Bvb2wobV9pb1N1cmZhY2VQb29sLmdldCgpKTsKLSNlbmRpZgotfQotCiB2
b2lkIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmRpZEZsdXNoKEdyYXBoaWNzQ29udGV4dEZsdXNo
SWRlbnRpZmllciBmbHVzaElkZW50aWZpZXIsIFF1YWxpZmllZFJlbmRlcmluZ1Jlc291cmNlSWRl
bnRpZmllciByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpCiB7CiAgICAgTUVTU0FHRV9DSEVD
SyhyZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIucHJvY2Vzc0lkZW50aWZpZXIoKSA9PSBtX2dw
dUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MtPndlYlByb2Nlc3NJZGVudGlmaWVyKCksICJTZW5kaW5n
IGRpZEZsdXNoKCkgbWVzc2FnZSB0byB0aGUgd3Jvbmcgd2ViIHByb2Nlc3MuIik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFj
a2VuZC5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmlu
Z0JhY2tlbmQuaAppbmRleCAxODIwM2U0YzRhZjM2NzUyNDAyZWRhYmUxOWIzYzViMmYxMTNiYTY5
Li43MWFjNWYxNzRhNmFiOTJmNGEyOTA5YjNmYTBlYzI1NjhlOGZmMTM2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdC
YWNrZW5kLmgKQEAgLTI4LDEyICsyOCwxMCBAQAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKIAog
I2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKLSNpbmNsdWRlICJJUENTZW1hcGhvcmUuaCIKICNpbmNs
dWRlICJJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUuaCIKICNpbmNsdWRlICJNZXNzYWdlUmVjZWl2
ZXIuaCIKICNpbmNsdWRlICJNZXNzYWdlU2VuZGVyLmgiCiAjaW5jbHVkZSAiUXVhbGlmaWVkUmVu
ZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyLmgiCi0jaW5jbHVkZSAiUmVtb3RlRGlzcGxheUxpc3RS
ZWNvcmRlci5oIgogI2luY2x1ZGUgIlJlbW90ZVJlc291cmNlQ2FjaGUuaCIKICNpbmNsdWRlICJS
ZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIlJlbmRlcmluZ1VwZGF0ZUlE
LmgiCkBAIC00MSwxMiArMzksOCBAQAogI2luY2x1ZGUgIlN0cmVhbUNvbm5lY3Rpb25Xb3JrUXVl
dWUuaCIKICNpbmNsdWRlICJTdHJlYW1NZXNzYWdlUmVjZWl2ZXIuaCIKICNpbmNsdWRlICJTdHJl
YW1TZXJ2ZXJDb25uZWN0aW9uLmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9Db2xvclNwYWNlLmg+Ci0j
aW5jbHVkZSA8V2ViQ29yZS9EaXNwbGF5TGlzdEl0ZW1CdWZmZXJJZGVudGlmaWVyLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9NZWRpYVBsYXllcklkZW50aWZpZXIuaD4KLSNpbmNsdWRlIDxXZWJDb3Jl
L1Byb2Nlc3NJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Qcm9jZXNzSWRlbnRpdHku
aD4KLSNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCiBuYW1lc3BhY2UgV1RGIHsKIGVudW0gY2xh
c3MgQ3JpdGljYWwgOiBib29sOwpAQCAtOTgsOSArOTIsOCBAQCBwdWJsaWM6CiAKICAgICB2b2lk
IGxvd01lbW9yeUhhbmRsZXIoV1RGOjpDcml0aWNhbCwgV1RGOjpTeW5jaHJvbm91cyk7CiAKLSAg
ICB2b2lkIHdpbGxEZXN0cm95SW1hZ2VCdWZmZXIoV2ViQ29yZTo6SW1hZ2VCdWZmZXImKTsKICNp
ZiBIQVZFKElPU1VSRkFDRSkKLSAgICBXZWJDb3JlOjpJT1N1cmZhY2VQb29sJiBpb1N1cmZhY2VQ
b29sKCkgY29uc3QgeyByZXR1cm4gKm1faW9TdXJmYWNlUG9vbDsgfQorICAgIFdlYkNvcmU6OklP
U3VyZmFjZVBvb2wmIGlvU3VyZmFjZVBvb2woKSBjb25zdCB7IHJldHVybiBtX2lvU3VyZmFjZVBv
b2w7IH0KICNlbmRpZgogCiBwcml2YXRlOgpAQCAtMTM3LDcgKzEzMCw2IEBAIHByaXZhdGU6CiAg
ICAgdm9pZCBnZXREYXRhRm9ySW1hZ2VCdWZmZXJXaXRoUXVhbGlmaWVkSWRlbnRpZmllcihjb25z
dCBTdHJpbmcmIG1pbWVUeXBlLCBzdGQ6Om9wdGlvbmFsPGRvdWJsZT4gcXVhbGl0eSwgUXVhbGlm
aWVkUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFZl
Y3Rvcjx1aW50OF90PiYmKT4mJik7CiAgICAgdm9pZCBnZXRTaGFyZWFibGVCaXRtYXBGb3JJbWFn
ZUJ1ZmZlcldpdGhRdWFsaWZpZWRJZGVudGlmaWVyKFF1YWxpZmllZFJlbmRlcmluZ1Jlc291cmNl
SWRlbnRpZmllciwgV2ViQ29yZTo6UHJlc2VydmVSZXNvbHV0aW9uLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKFNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlJiYpPiYmKTsKICAgICB2b2lkIGNhY2hlTmF0
aXZlSW1hZ2VXaXRoUXVhbGlmaWVkSWRlbnRpZmllcihjb25zdCBTaGFyZWFibGVCaXRtYXA6Okhh
bmRsZSYsIFF1YWxpZmllZFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcik7Ci0gICAgdm9pZCBk
aWRDcmVhdGVTaGFyZWREaXNwbGF5TGlzdEhhbmRsZVdpdGhRdWFsaWZpZWRJZGVudGlmaWVyKFdl
YkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtQnVmZmVySWRlbnRpZmllciwgY29uc3QgU2hhcmVkTWVt
b3J5OjpJUENIYW5kbGUmLCBRdWFsaWZpZWRSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgZGVz
dGluYXRpb25CdWZmZXJJZGVudGlmaWVyKTsKICAgICB2b2lkIHJlbGVhc2VSZW1vdGVSZXNvdXJj
ZVdpdGhRdWFsaWZpZWRJZGVudGlmaWVyKFF1YWxpZmllZFJlbmRlcmluZ1Jlc291cmNlSWRlbnRp
Zmllcik7CiAgICAgdm9pZCBjYWNoZUZvbnRXaXRoUXVhbGlmaWVkSWRlbnRpZmllcihSZWY8V2Vi
Q29yZTo6Rm9udD4mJiwgUXVhbGlmaWVkUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKIApA
QCAtMTUyLDcgKzE0NCw3IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPFNoYXJlZE1lbW9yeT4gbV9n
ZXRQaXhlbEJ1ZmZlclNoYXJlZE1lbW9yeTsKICAgICBTY29wZWRSZW5kZXJpbmdSZXNvdXJjZXNS
ZXF1ZXN0IG1fcmVuZGVyaW5nUmVzb3VyY2VzUmVxdWVzdDsKICNpZiBIQVZFKElPU1VSRkFDRSkK
LSAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6SU9TdXJmYWNlUG9vbD4gbV9pb1N1cmZhY2VQ
b29sOworICAgIFJlZjxXZWJDb3JlOjpJT1N1cmZhY2VQb29sPiBtX2lvU3VyZmFjZVBvb2w7CiAj
ZW5kaWYKIAogICAgIExvY2sgbV9yZW1vdGVEaXNwbGF5TGlzdHNMb2NrOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyQmFja2luZ1N0
b3JlLm1tIGIvU291cmNlL1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVy
QmFja2luZ1N0b3JlLm1tCmluZGV4IDliMWIyYTIyZGZlYWVjNTE1ZGIxODIxNGUwYTNkZWM5ZWM0
NWQ4ZmMuLjYyNzYwZTMyYzYzNjUzMzEwMWIzZjM4M2JiMGM2ZDYzZjdjN2E2ZGIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllckJhY2tp
bmdTdG9yZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVt
b3RlTGF5ZXJCYWNraW5nU3RvcmUubW0KQEAgLTY4OSw4ICs2ODksNiBAQCBSZWZQdHI8SW1hZ2VC
dWZmZXI+IFJlbW90ZUxheWVyQmFja2luZ1N0b3JlOjpidWZmZXJGb3JUeXBlKEJ1ZmZlclR5cGUg
YnVmZmVyVHlwZQogCiB2b2lkIFJlbW90ZUxheWVyQmFja2luZ1N0b3JlOjpCdWZmZXI6OmRpc2Nh
cmQoKQogewotICAgIGlmIChpbWFnZUJ1ZmZlcikKLSAgICAgICAgaW1hZ2VCdWZmZXItPnJlbGVh
c2VCdWZmZXJUb1Bvb2woJldlYkNvcmU6OklPU3VyZmFjZVBvb2w6OnNoYXJlZFBvb2woKSk7CiAg
ICAgaW1hZ2VCdWZmZXIgPSBudWxscHRyOwogI2lmIEVOQUJMRShDR19ESVNQTEFZX0xJU1RfQkFD
S0VEX0lNQUdFX0JVRkZFUikKICAgICBkaXNwbGF5TGlzdEltYWdlQnVmZmVyID0gbnVsbHB0cjsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2Ev
SW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5kLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJTaGFyZWFibGVN
YXBwZWRJT1N1cmZhY2VCYWNrZW5kLmNwcAppbmRleCA4ZTYyZDAyNDBiZGFkZmJkNTUyY2E5ZGM3
NGNjYTQ3MDY1MzQ0MWI4Li4xMjY1MDQ1Y2Y0YjE1YWE5M2I5NzAzNGYwYzg5ZGI1YjI5MWU3MTUz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29h
L0ltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFja2VuZC5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJl
YWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQuY3BwCkBAIC01Niw3ICs1Niw3IEBAIHN0ZDo6dW5p
cXVlX3B0cjxJbWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQ+IEltYWdl
QnVmZmVyU2hhcmVhYmxlCiAKICAgICBDR0NvbnRleHRDbGVhclJlY3QoY2dDb250ZXh0LmdldCgp
LCBGbG9hdFJlY3QoRmxvYXRQb2ludDo6emVybygpLCBiYWNrZW5kU2l6ZSkpOwogCi0gICAgcmV0
dXJuIG1ha2VVbmlxdWU8SW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5k
PihwYXJhbWV0ZXJzLCBXVEZNb3ZlKHN1cmZhY2UpKTsKKyAgICByZXR1cm4gbWFrZVVuaXF1ZTxJ
bWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQ+KHBhcmFtZXRlcnMsIFdU
Rk1vdmUoc3VyZmFjZSksIGNyZWF0aW9uQ29udGV4dC5zdXJmYWNlUG9vbCk7CiB9CiAKIHN0ZDo6
dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQ+IElt
YWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFja2VuZDo6Y3JlYXRlKGNvbnN0IFBh
cmFtZXRlcnMmIHBhcmFtZXRlcnMsIEltYWdlQnVmZmVyQmFja2VuZEhhbmRsZSBoYW5kbGUpCkBA
IC03MCw3ICs3MCw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBl
ZElPU3VyZmFjZUJhY2tlbmQ+IEltYWdlQnVmZmVyU2hhcmVhYmxlCiAgICAgaWYgKCFzdXJmYWNl
KQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIHJldHVybiBtYWtlVW5pcXVlPEltYWdl
QnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFja2VuZD4ocGFyYW1ldGVycywgV1RGTW92
ZShzdXJmYWNlKSk7CisgICAgcmV0dXJuIG1ha2VVbmlxdWU8SW1hZ2VCdWZmZXJTaGFyZWFibGVN
YXBwZWRJT1N1cmZhY2VCYWNrZW5kPihwYXJhbWV0ZXJzLCBXVEZNb3ZlKHN1cmZhY2UpLCBudWxs
cHRyKTsKIH0KIAogSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlIEltYWdlQnVmZmVyU2hhcmVhYmxl
TWFwcGVkSU9TdXJmYWNlQmFja2VuZDo6Y3JlYXRlQmFja2VuZEhhbmRsZShTaGFyZWRNZW1vcnk6
OlByb3RlY3Rpb24pIGNvbnN0Cg==
</data>
<flag name="review"
          id="487531"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>458658</attachid>
            <date>2022-05-01 19:55:43 -0700</date>
            <delta_ts>2022-05-01 22:47:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-239107-20220501195543.patch</filename>
            <type>text/plain</type>
            <size>22227</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkzNjU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDkzMTZiNGNkZTc3NmU0
NzQxNTJmZDExYTA4YmM3OWNmOWI1MDNhYy4uNjBjYWMyY2U5YWIyYjkyNjgwY2NiYjAzNzFmZGQ0
ZmJhNDhjYjc5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDIyLTA1LTAxICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgorCisgICAgICAgIFJFR1JFU1NJT04ocjI4
MjExNyk6IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OndpbGxEZXN0cm95SW1hZ2VCdWZmZXIoKSBj
YW4gY3Jhc2ggaWYgdGhlIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQgaGFzIGFscmVhZHkgYmVlbiBk
ZXN0cm95ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIzOTEwNworICAgICAgICByZGFyOi8vOTE2MDgyOTgKKworICAgICAgICBSZXZpZXdlZCBieSBE
YXJpbiBBZGxlci4KKworICAgICAgICAtLSBJT1N1cmZhY2VQb29sIHdpbGwgYmUgUmVmQ291bnRl
ZC4gCisKKyAgICAgICAgLS0gSW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kOjpjcmVhdGUoKSB3
aWxsIHBhc3MgdGhlIHN1cmZhY2VQb29sCisgICAgICAgICAgIG9mIHRoZSBDcmVhdGlvbkNvbnRl
eHQgdG8gSW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kIGNvbnN0cnVjdG9yLgorCisgICAgICAg
IC0tIEltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZCB3aWxsIGhvbGQgYSBSZWZQdHI8SU9TdXJm
YWNlUG9vbD4uCisKKyAgICAgICAgLS0gSW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kIGRlc3Ry
dWN0b3Igd2lsbCBjYWxsIElPU3VyZmFjZTo6bW92ZVRvUG9vbCgpCisgICAgICAgICAgIHRvIHJl
dHVybiBpdHMgc3VyZmFjZSB0byB0aGUgSU9TdXJmYWNlUG9vbCBpZiBpdCB3YXMgc2V0LgorCisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvQ29uY3JldGVJbWFnZUJ1ZmZlci5oOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmg6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvSW1hZ2VCdWZmZXJCYWNrZW5kLmg6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1
ZmZlckJhY2tlbmQ6OnJlbGVhc2VHcmFwaGljc0NvbnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6
SW1hZ2VCdWZmZXJCYWNrZW5kOjpyZWxlYXNlQnVmZmVyVG9Qb29sKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jZy9JT1N1cmZhY2VQb29sLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OklPU3VyZmFjZVBvb2w6OmNyZWF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvY2cvSU9TdXJmYWNlUG9vbC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL0lt
YWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1
ZmZlcklPU3VyZmFjZUJhY2tlbmQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1
ZmZlcklPU3VyZmFjZUJhY2tlbmQ6OkltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZCk6CisgICAg
ICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQ6On5JbWFnZUJ1ZmZlcklP
U3VyZmFjZUJhY2tlbmQpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCdWZmZXJJT1N1cmZhY2VC
YWNrZW5kOjpyZWxlYXNlQnVmZmVyVG9Qb29sKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQuaDoKKwogMjAyMi0wNS0w
MSAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CiAKICAgICAgICAgW01vZGVybiBN
ZWRpYSBDb250cm9sc10gdGhlIG92ZXJmbG93IGJ1dHRvbiBzb21ldGltZXMgZmxpY2tlcnMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKaW5kZXggZWE2NDQ4MzNjMzI4NGU4ZTQwYjk3MWQ5ZTE1ZGQ0YjQ3YWI3ZDYxYS4uZGM4MzQx
Yzc5MzRjNDZjMjhkYzMwOTVkNTY0NTU4ZmQ0ZThjMTcwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwz
NCBAQAorMjAyMi0wNS0wMSAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWlkQGFwcGxlLmNvbT4KKwor
ICAgICAgICBSRUdSRVNTSU9OKHIyODIxMTcpOiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjp3aWxs
RGVzdHJveUltYWdlQnVmZmVyKCkgY2FuIGNyYXNoIGlmIHRoZSBSZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kIGhhcyBhbHJlYWR5IGJlZW4gZGVzdHJveWVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzkxMDcKKyAgICAgICAgcmRhcjovLzkxNjA4Mjk4CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgQWZ0ZXIgcjI4MjEx
NywgdGhlIGFzc3VtcHRpb24gdGhhdCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kIHdpbGwgb3V0bGl2
ZQorICAgICAgICBhbGwgaXRzIFJlbW90ZUltYWdlQnVmZmVycyBiZWNhbWUgd3JvbmcuIFRoZSBS
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kIGNhbgorICAgICAgICBnZXQgZGVzdHJveWVkIHVuZGVyIEdQ
VUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpZENsb3NlKCkgYmVmb3JlIHRoZQorICAgICAgICBj
YWxsT25NYWluVGhyZWFkKCkgb2YgdGhlIFRocmVhZFNhZmVSZWZjb3VudGVkIGltYWdlIGJ1ZmZl
cnMgaGF2ZSBydW4uCisKKyAgICAgICAgVGhpcyBzb2x1dGlvbiBpcyB0byBtYWtlIHRoZSBJbWFn
ZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQgYmUgcmVzcG9uc2libGUgCisgICAgICAgIG9mIHJldHVy
bmluZyBpdHMgSU9TdXJmYWNlIHRvIHRoZSBJT1N1cmZhY2VQb29sLiBTbyBubyBuZWVkIHRvIGNh
bGwgCisgICAgICAgIHdpbGxEZXN0cm95SW1hZ2VCdWZmZXIoKSBmcm9tIHRoZSBSZW1vdGVJbWFn
ZUJ1ZmZlciBkZXN0cnVjdG9yLgorCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1v
dGVHcmFwaGljc0NvbnRleHRHTC5oOgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVt
b3RlSW1hZ2VCdWZmZXIuaDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlSW1hZ2VCdWZmZXI6OlJl
bW90ZUltYWdlQnVmZmVyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlSW1hZ2VCdWZmZXI6Om1f
cmVuZGVyaW5nUmVzb3VyY2VzUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUltYWdl
QnVmZmVyOjp+UmVtb3RlSW1hZ2VCdWZmZXIpOgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhp
Y3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJl
bmRlcmluZ0JhY2tlbmQ6OndpbGxEZXN0cm95SW1hZ2VCdWZmZXIpOiBEZWxldGVkLgorICAgICAg
ICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5oOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjppb1N1cmZhY2VQb29sIGNvbnN0KToK
KyAgICAgICAgKiBTaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyQmFja2luZ1N0b3Jl
Lm1tOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllckJhY2tpbmdTdG9yZTo6QnVmZmVyOjpk
aXNjYXJkKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1
ZmZlclNoYXJlYWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQuY3BwOgorICAgICAgICAoV2ViS2l0
OjpJbWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQ6OmNyZWF0ZSk6CisK
IDIwMjItMDQtMjkgIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgogCiAg
ICAgICAgIFVucmV2aWV3ZWQsIHJldmVydGluZyByMjkzNDgxLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29uY3JldGVJbWFnZUJ1ZmZlci5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29uY3JldGVJbWFnZUJ1ZmZlci5oCmluZGV4IDk4
OGQ0MDQ5OThiMWNiNjQ5YzFiMTgwNjRiNTAzNDFlMDQwNGI3OWEuLmJmNjhkMWFkNjE4ZDMxZDRh
MjExNjhiOTcwZGZlZDEwN2UyZjEyNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0NvbmNyZXRlSW1hZ2VCdWZmZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9Db25jcmV0ZUltYWdlQnVmZmVyLmgKQEAgLTM1MiwxNCArMzUyLDYg
QEAgcHJvdGVjdGVkOgogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKLSNpZiBIQVZF
KElPU1VSRkFDRSkKLSAgICB2b2lkIHJlbGVhc2VCdWZmZXJUb1Bvb2woSU9TdXJmYWNlUG9vbCog
cG9vbCkgb3ZlcnJpZGUKLSAgICB7Ci0gICAgICAgIGlmIChhdXRvKiBiYWNrZW5kID0gZW5zdXJl
QmFja2VuZENyZWF0ZWQoKSkKLSAgICAgICAgICAgIGJhY2tlbmQtPnJlbGVhc2VCdWZmZXJUb1Bv
b2wocG9vbCk7Ci0gICAgfQotI2VuZGlmCi0KICAgICBJbWFnZUJ1ZmZlckJhY2tlbmQ6OlBhcmFt
ZXRlcnMgbV9wYXJhbWV0ZXJzOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxCYWNrZW5kVHlwZT4gbV9i
YWNrZW5kOwogICAgIFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBtX3JlbmRlcmluZ1Jlc291
cmNlSWRlbnRpZmllcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0ltYWdlQnVmZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFn
ZUJ1ZmZlci5oCmluZGV4IGNlZmMyMGFjNzIzMjNhNDM2ODg1ODE0YWNjMGFkZTQxNjI0ZGU3MWQu
LmZiNGQyNjVmN2QzNTA5ZTA3ZDIzOGYxZmE3NzE1MWQ1ZmYzZGJiMGEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaApAQCAtMTE2LDkgKzExNiw2
IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgYm9vbCBpc0luVXNlKCkgY29uc3QgPSAwOwogICAg
IHZpcnR1YWwgdm9pZCByZWxlYXNlR3JhcGhpY3NDb250ZXh0KCkgPSAwOwotI2lmIEhBVkUoSU9T
VVJGQUNFKQotICAgIHZpcnR1YWwgdm9pZCByZWxlYXNlQnVmZmVyVG9Qb29sKElPU3VyZmFjZVBv
b2wqKSA9IDA7Ci0jZW5kaWYKICAgICAvLyBSZXR1cm5zIHRydWUgb24gc3VjY2Vzcy4KICAgICB2
aXJ0dWFsIGJvb2wgc2V0Vm9sYXRpbGUoKSA9IDA7CiAgICAgdmlydHVhbCBTZXROb25Wb2xhdGls
ZVJlc3VsdCBzZXROb25Wb2xhdGlsZSgpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyQmFja2VuZC5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXJCYWNrZW5kLmgKaW5kZXggZjFmMWRkMTY2Mjcz
YTE5NDc2MjIzMTdkZWQzMjNiYzBjODBmNGEzNC4uNzQxNTNlMjNlNWViZDdhMzkzZDc2YTA5ZDhj
MGZkMDJmOWM4MDZjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvSW1hZ2VCdWZmZXJCYWNrZW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvSW1hZ2VCdWZmZXJCYWNrZW5kLmgKQEAgLTE0Miw5ICsxNDIsNiBAQCBwdWJsaWM6CiAK
ICAgICB2aXJ0dWFsIGJvb2wgaXNJblVzZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAg
dmlydHVhbCB2b2lkIHJlbGVhc2VHcmFwaGljc0NvbnRleHQoKSB7IEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOyB9Ci0jaWYgSEFWRShJT1NVUkZBQ0UpCi0gICAgdmlydHVhbCB2b2lkIHJlbGVhc2VCdWZm
ZXJUb1Bvb2woSU9TdXJmYWNlUG9vbCopIHsgfQotI2VuZGlmCiAKICAgICAvLyBSZXR1cm5zIHRy
dWUgb24gc3VjY2Vzcy4KICAgICB2aXJ0dWFsIGJvb2wgc2V0Vm9sYXRpbGUoKSB7IHJldHVybiB0
cnVlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9J
T1N1cmZhY2VQb29sLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0lP
U3VyZmFjZVBvb2wuY3BwCmluZGV4IDFiODM4YTRmODBhMTE0ODY5OGJkNDM3MzZlNGEzODYyMTBj
OTE1ODguLjVhMTY0NzBjMzU3OGJkMDkyOTEwMmIzYjRkYjgzNGQ3MzcwYTc5YjMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0lPU3VyZmFjZVBvb2wuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0lPU3VyZmFjZVBvb2wu
Y3BwCkBAIC02MSw5ICs2MSw5IEBAIElPU3VyZmFjZVBvb2wmIElPU3VyZmFjZVBvb2w6OnNoYXJl
ZFBvb2woKQogICAgIHJldHVybiBwb29sOwogfQogCi1zdGQ6OnVuaXF1ZV9wdHI8SU9TdXJmYWNl
UG9vbD4gSU9TdXJmYWNlUG9vbDo6Y3JlYXRlKCkKK1JlZjxJT1N1cmZhY2VQb29sPiBJT1N1cmZh
Y2VQb29sOjpjcmVhdGUoKQogewotICAgIHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8SU9TdXJmYWNl
UG9vbD4obmV3IElPU3VyZmFjZVBvb2woKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSU9T
dXJmYWNlUG9vbCk7CiB9CiAKIHN0YXRpYyBib29sIHN1cmZhY2VNYXRjaGVzUGFyYW1ldGVycyhJ
T1N1cmZhY2UmIHN1cmZhY2UsIEludFNpemUgcmVxdWVzdGVkU2l6ZSwgY29uc3QgRGVzdGluYXRp
b25Db2xvclNwYWNlJiBjb2xvclNwYWNlLCBJT1N1cmZhY2U6OkZvcm1hdCBmb3JtYXQpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JT1N1cmZhY2VQb29s
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JT1N1cmZhY2VQb29sLmgK
aW5kZXggNTJmNTVmNjM0NTBlNWVlN2Y2YmZhYWQ4NWFlNDIzMDY3NDRmN2E0NC4uMTczZTM3M2Y0
YTU1NDdmNTQ0MWMxMWViN2U1MGE0ODJjMDA1MTE1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSU9TdXJmYWNlUG9vbC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0lPU3VyZmFjZVBvb2wuaApAQCAtMzYsMTkgKzM2LDIw
IEBACiAjaW5jbHVkZSA8d3RmL0xvY2suaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQu
aD4KICNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgorI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVm
Q291bnRlZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIERlc3RpbmF0YXRpb25D
b2xvclNwYWNlOwogCi1jbGFzcyBJT1N1cmZhY2VQb29sIHsKK2NsYXNzIElPU3VyZmFjZVBvb2wg
OiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8SU9TdXJmYWNlUG9vbD4gewogICAgIFdURl9N
QUtFX05PTkNPUFlBQkxFKElPU3VyZmFjZVBvb2wpOwogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NB
VEVEOwogICAgIGZyaWVuZCBjbGFzcyBMYXp5TmV2ZXJEZXN0cm95ZWQ8SU9TdXJmYWNlUG9vbD47
CiAKIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgSU9TdXJmYWNlUG9vbCYgc2hh
cmVkUG9vbCgpOwotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8SU9T
dXJmYWNlUG9vbD4gY3JlYXRlKCk7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZjxJT1N1
cmZhY2VQb29sPiBjcmVhdGUoKTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxJT1N1cmZhY2U+IHRh
a2VTdXJmYWNlKEludFNpemUsIGNvbnN0IERlc3RpbmF0aW9uQ29sb3JTcGFjZSYsIElPU3VyZmFj
ZTo6Rm9ybWF0KTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGFkZFN1cmZhY2Uoc3RkOjp1bmlx
dWVfcHRyPElPU3VyZmFjZT4mJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kLmNw
cAppbmRleCBlZmRmMDUwMzk5NDJiYmJkMDI0MWU4OWQ4MDk4YjkwZGEwNDg3MDY2Li41MzQ0ODJl
MzM4YmE4NjcwYzM1ODZlYjM1YmM0ZjYzZmQzMjI5YzhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVySU9T
dXJmYWNlQmFja2VuZC5jcHAKQEAgLTk5LDcgKzk5LDcgQEAgc3RkOjp1bmlxdWVfcHRyPEltYWdl
QnVmZmVySU9TdXJmYWNlQmFja2VuZD4gSW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kOjpjcmVh
dGUKIAogICAgIENHQ29udGV4dENsZWFyUmVjdChjZ0NvbnRleHQuZ2V0KCksIEZsb2F0UmVjdChG
bG9hdFBvaW50Ojp6ZXJvKCksIGJhY2tlbmRTaXplKSk7CiAKLSAgICByZXR1cm4gbWFrZVVuaXF1
ZTxJbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQ+KHBhcmFtZXRlcnMsIFdURk1vdmUoc3VyZmFj
ZSkpOworICAgIHJldHVybiBtYWtlVW5pcXVlPEltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZD4o
cGFyYW1ldGVycywgV1RGTW92ZShzdXJmYWNlKSwgY3JlYXRpb25Db250ZXh0LnN1cmZhY2VQb29s
KTsKIH0KIAogc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZD4gSW1h
Z2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kOjpjcmVhdGUoY29uc3QgUGFyYW1ldGVycyYgcGFyYW1l
dGVycywgY29uc3QgR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0KQpAQCAtMTE0LDE0ICsxMTQsMjAg
QEAgc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZD4gSW1hZ2VCdWZm
ZXJJT1N1cmZhY2VCYWNrZW5kOjpjcmVhdGUKICAgICByZXR1cm4gSW1hZ2VCdWZmZXJJT1N1cmZh
Y2VCYWNrZW5kOjpjcmVhdGUocGFyYW1ldGVycywgbnVsbHB0cik7CiB9CiAKLUltYWdlQnVmZmVy
SU9TdXJmYWNlQmFja2VuZDo6SW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kKGNvbnN0IFBhcmFt
ZXRlcnMmIHBhcmFtZXRlcnMsIHN0ZDo6dW5pcXVlX3B0cjxJT1N1cmZhY2U+JiYgc3VyZmFjZSkK
K0ltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZDo6SW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5k
KGNvbnN0IFBhcmFtZXRlcnMmIHBhcmFtZXRlcnMsIHN0ZDo6dW5pcXVlX3B0cjxJT1N1cmZhY2U+
JiYgc3VyZmFjZSwgSU9TdXJmYWNlUG9vbCogaW9TdXJmYWNlUG9vbCkKICAgICA6IEltYWdlQnVm
ZmVyQ0dCYWNrZW5kKHBhcmFtZXRlcnMpCiAgICAgLCBtX3N1cmZhY2UoV1RGTW92ZShzdXJmYWNl
KSkKKyAgICAsIG1faW9TdXJmYWNlUG9vbChpb1N1cmZhY2VQb29sKQogewogICAgIEFTU0VSVCht
X3N1cmZhY2UpOwogICAgIGFwcGx5QmFzZVRyYW5zZm9ybVRvQ29udGV4dCgpOwogfQogCitJbWFn
ZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQ6On5JbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQoKQor
eworICAgIElPU3VyZmFjZTo6bW92ZVRvUG9vbChXVEZNb3ZlKG1fc3VyZmFjZSksIG1faW9TdXJm
YWNlUG9vbC5nZXQoKSk7Cit9CisKIEdyYXBoaWNzQ29udGV4dCYgSW1hZ2VCdWZmZXJJT1N1cmZh
Y2VCYWNrZW5kOjpjb250ZXh0KCkgY29uc3QKIHsKICAgICBHcmFwaGljc0NvbnRleHQmIGNvbnRl
eHQgPSBtX3N1cmZhY2UtPmVuc3VyZUdyYXBoaWNzQ29udGV4dCgpOwpAQCAtMjYyLDExICsyNjgs
NiBAQCB2b2lkIEltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZDo6c2V0Vm9sYXRpbGl0eVN0YXRl
KFZvbGF0aWxpdHlTdGF0ZSB2b2xhdGlsaXR5UwogICAgIG1fdm9sYXRpbGl0eVN0YXRlID0gdm9s
YXRpbGl0eVN0YXRlOwogfQogCi12b2lkIEltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZDo6cmVs
ZWFzZUJ1ZmZlclRvUG9vbChJT1N1cmZhY2VQb29sKiBwb29sKQotewotICAgIElPU3VyZmFjZTo6
bW92ZVRvUG9vbChXVEZNb3ZlKG1fc3VyZmFjZSksIHBvb2wpOwotfQotCiB2b2lkIEltYWdlQnVm
ZmVySU9TdXJmYWNlQmFja2VuZDo6ZW5zdXJlTmF0aXZlSW1hZ2VzSGF2ZUNvcGllZEJhY2tpbmdT
dG9yZSgpCiB7CiAgICAgaW52YWxpZGF0ZUNhY2hlZE5hdGl2ZUltYWdlKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlcklPU3VyZmFj
ZUJhY2tlbmQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVm
ZmVySU9TdXJmYWNlQmFja2VuZC5oCmluZGV4IDdkMDlhYTE5NDE0OTA0MzFmYjAzNWZjMWY2MTg0
OGM4ODg3YzEzMjUuLjgxMjMzZDVkNmQwMDY4NDE4ODY1NDMzYTUyM2RmZTM4ZTQ1MThiYmMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVy
SU9TdXJmYWNlQmFja2VuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NnL0ltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZC5oCkBAIC0yOSw2ICsyOSw3IEBACiAKICNp
bmNsdWRlICJJbWFnZUJ1ZmZlckNHQmFja2VuZC5oIgogI2luY2x1ZGUgIklPU3VyZmFjZS5oIgor
I2luY2x1ZGUgIklPU3VyZmFjZVBvb2wuaCIKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jLmg+CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQ2LDggKzQ3LDkgQEAgcHVibGljOgogICAgIC8vIEZJ
WE1FOiBSZW5hbWUgdG8gY3JlYXRlVXNpbmdDb2xvclNwYWNlT2ZHcmFwaGljc0NvbnRleHQoKSAo
b3Igc29tZXRoaW5nIGxpa2UgdGhhdCkuCiAgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxJbWFn
ZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQ+IGNyZWF0ZShjb25zdCBQYXJhbWV0ZXJzJiwgY29uc3Qg
R3JhcGhpY3NDb250ZXh0Jik7CiAKLSAgICBJbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQoY29u
c3QgUGFyYW1ldGVycyYsIHN0ZDo6dW5pcXVlX3B0cjxJT1N1cmZhY2U+JiYpOwotCisgICAgSW1h
Z2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kKGNvbnN0IFBhcmFtZXRlcnMmLCBzdGQ6OnVuaXF1ZV9w
dHI8SU9TdXJmYWNlPiYmLCBJT1N1cmZhY2VQb29sKik7CisgICAgfkltYWdlQnVmZmVySU9TdXJm
YWNlQmFja2VuZCgpOworICAgIAogICAgIHN0YXRpYyBjb25zdGV4cHIgUmVuZGVyaW5nTW9kZSBy
ZW5kZXJpbmdNb2RlID0gUmVuZGVyaW5nTW9kZTo6QWNjZWxlcmF0ZWQ7CiAKICAgICBJT1N1cmZh
Y2UqIHN1cmZhY2UoKTsKQEAgLTY4LDcgKzcwLDYgQEAgcHJvdGVjdGVkOgogCiAgICAgYm9vbCBp
c0luVXNlKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdm9pZCByZWxlYXNlR3JhcGhpY3NDb250ZXh0
KCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCByZWxlYXNlQnVmZmVyVG9Qb29sKElPU3VyZmFjZVBvb2wq
KSBvdmVycmlkZTsKIAogICAgIGJvb2wgc2V0Vm9sYXRpbGUoKSBmaW5hbDsKICAgICBTZXROb25W
b2xhdGlsZVJlc3VsdCBzZXROb25Wb2xhdGlsZSgpIGZpbmFsOwpAQCAtOTIsNiArOTMsOCBAQCBw
cm90ZWN0ZWQ6CiAKICAgICBtdXRhYmxlIGJvb2wgbV9uZWVkc1NldHVwQ29udGV4dCB7IGZhbHNl
IH07CiAgICAgVm9sYXRpbGl0eVN0YXRlIG1fdm9sYXRpbGl0eVN0YXRlIHsgVm9sYXRpbGl0eVN0
YXRlOjpOb25Wb2xhdGlsZSB9OworCisgICAgUmVmUHRyPElPU3VyZmFjZVBvb2w+IG1faW9TdXJm
YWNlUG9vbDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5oIGIv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdM
LmgKaW5kZXggYzMxZTY1MTA2NTE1MTZlM2E0M2NiNGU2YzZmNDU3Y2FhMzE2YTE5Yy4uMGQ5OTUy
MWQ4YjVkZDU1ZTQ0YTZkNjQxMjY3OTg1OWEwM2JiY2I2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMLmgKKysrIGIv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdM
LmgKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJTdHJlYW1NZXNzYWdlUmVjZWl2ZXIuaCIK
ICNpbmNsdWRlICJTdHJlYW1TZXJ2ZXJDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9O
b3RJbXBsZW1lbnRlZC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUGl4ZWxCdWZmZXIuaD4KICNpbmNs
dWRlIDx3dGYvVGhyZWFkQXNzZXJ0aW9ucy5oPgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVJbWFn
ZUJ1ZmZlci5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUltYWdl
QnVmZmVyLmgKaW5kZXggNDFhNGUwM2FkYTQxMzY5NDg0YTcyOTZkYzdhYjYyZjY0Yzc1N2RmYS4u
MGZhMjMyNzNkM2UwYzgxNGI5YWZhMzNiZDkxYWIzMTVmMjYwYmY4ZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyLmgKKysrIGIv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyLmgKQEAg
LTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDIwLTIwMjEgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDIwLTIwMjIgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBA
IC0yNywxNSArMjcsOSBAQAogCiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogCi0jaW5jbHVkZSAi
RGVjb2Rlci5oIgotI2luY2x1ZGUgIkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCIKLSNpbmNs
dWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlci5oIgog
I2luY2x1ZGUgIlNjb3BlZEFjdGl2ZU1lc3NhZ2VSZWNlaXZlUXVldWUuaCIKICNpbmNsdWRlIDxX
ZWJDb3JlL0NvbmNyZXRlSW1hZ2VCdWZmZXIuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL0Rpc3BsYXlM
aXN0Lmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9EaXNwbGF5TGlzdEl0ZW1zLmg+Ci0jaW5jbHVkZSA8
V2ViQ29yZS9EaXNwbGF5TGlzdFJlcGxheWVyLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCkBA
IC00NCw3ICszOCw2IEBAIGNsYXNzIFJlbW90ZUltYWdlQnVmZmVyIDogcHVibGljIFdlYkNvcmU6
OkNvbmNyZXRlSW1hZ2VCdWZmZXI8QmFja2VuZFR5cGU+IHsKICAgICB1c2luZyBCYXNlQ29uY3Jl
dGVJbWFnZUJ1ZmZlciA9IFdlYkNvcmU6OkNvbmNyZXRlSW1hZ2VCdWZmZXI8QmFja2VuZFR5cGU+
OwogICAgIHVzaW5nIEJhc2VDb25jcmV0ZUltYWdlQnVmZmVyOjpjb250ZXh0OwogICAgIHVzaW5n
IEJhc2VDb25jcmV0ZUltYWdlQnVmZmVyOjptX2JhY2tlbmQ7Ci0gICAgdXNpbmcgQmFzZUNvbmNy
ZXRlSW1hZ2VCdWZmZXI6OnB1dFBpeGVsQnVmZmVyOwogCiBwdWJsaWM6CiAgICAgc3RhdGljIGF1
dG8gY3JlYXRlKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgc2l6ZSwgZmxvYXQgcmVzb2x1dGlv
blNjYWxlLCBjb25zdCBXZWJDb3JlOjpEZXN0aW5hdGlvbkNvbG9yU3BhY2UmIGNvbG9yU3BhY2Us
IFdlYkNvcmU6OlBpeGVsRm9ybWF0IHBpeGVsRm9ybWF0LCBXZWJDb3JlOjpSZW5kZXJpbmdQdXJw
b3NlIHB1cnBvc2UsIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQmIHJlbW90ZVJlbmRlcmluZ0JhY2tl
bmQsIFF1YWxpZmllZFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciByZW5kZXJpbmdSZXNvdXJj
ZUlkZW50aWZpZXIpCkBAIC01OSwxMiArNTIsMTEgQEAgcHVibGljOgogCiAgICAgUmVtb3RlSW1h
Z2VCdWZmZXIoY29uc3QgV2ViQ29yZTo6SW1hZ2VCdWZmZXJCYWNrZW5kOjpQYXJhbWV0ZXJzJiBw
YXJhbWV0ZXJzLCBzdGQ6OnVuaXF1ZV9wdHI8QmFja2VuZFR5cGU+JiYgYmFja2VuZCwgUmVtb3Rl
UmVuZGVyaW5nQmFja2VuZCYgcmVtb3RlUmVuZGVyaW5nQmFja2VuZCwgUXVhbGlmaWVkUmVuZGVy
aW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcikKICAgICAg
ICAgOiBCYXNlQ29uY3JldGVJbWFnZUJ1ZmZlcihwYXJhbWV0ZXJzLCBXVEZNb3ZlKGJhY2tlbmQp
LCByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIub2JqZWN0KCkpCi0gICAgICAgICwgbV9yZW1v
dGVSZW5kZXJpbmdCYWNrZW5kKHJlbW90ZVJlbmRlcmluZ0JhY2tlbmQpCiAgICAgICAgICwgbV9y
ZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIocmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKQog
ICAgICAgICAsIG1fcmVtb3RlRGlzcGxheUxpc3QoeyBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVy
OjpjcmVhdGUoKnRoaXMsIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciwgcmVuZGVyaW5nUmVz
b3VyY2VJZGVudGlmaWVyLnByb2Nlc3NJZGVudGlmaWVyKCksIHJlbW90ZVJlbmRlcmluZ0JhY2tl
bmQpIH0pCiAgICAgICAgICwgbV9yZW5kZXJpbmdSZXNvdXJjZXNSZXF1ZXN0KFNjb3BlZFJlbmRl
cmluZ1Jlc291cmNlc1JlcXVlc3Q6OmFjcXVpcmUoKSkKICAgICB7Ci0gICAgICAgIG1fcmVtb3Rl
UmVuZGVyaW5nQmFja2VuZC5kaWRDcmVhdGVJbWFnZUJ1ZmZlckJhY2tlbmQobV9iYWNrZW5kLT5j
cmVhdGVCYWNrZW5kSGFuZGxlKCksIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciwgKm1fcmVt
b3RlRGlzcGxheUxpc3QuZ2V0KCkpOworICAgICAgICByZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmRp
ZENyZWF0ZUltYWdlQnVmZmVyQmFja2VuZChtX2JhY2tlbmQtPmNyZWF0ZUJhY2tlbmRIYW5kbGUo
KSwgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyLCAqbV9yZW1vdGVEaXNwbGF5TGlzdC5nZXQo
KSk7CiAgICAgfQogCiAgICAgflJlbW90ZUltYWdlQnVmZmVyKCkKQEAgLTczLDggKzY1LDYgQEAg
cHVibGljOgogICAgICAgICAvLyBiZWVuIGZsdXNoZWQgeWV0LCBvciB0aGUgd2ViIHByb2Nlc3Mg
bWF5IGhhdmUgdGVybWluYXRlZC4KICAgICAgICAgd2hpbGUgKGNvbnRleHQoKS5zdGFja1NpemUo
KSkKICAgICAgICAgICAgIGNvbnRleHQoKS5yZXN0b3JlKCk7Ci0KLSAgICAgICAgbV9yZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kLndpbGxEZXN0cm95SW1hZ2VCdWZmZXIoKnRoaXMpOwogICAgIH0KIAog
ICAgIHZvaWQgc2V0T3duZXJzaGlwSWRlbnRpdHkoY29uc3QgV2ViQ29yZTo6UHJvY2Vzc0lkZW50
aXR5JiByZXNvdXJjZU93bmVyKQpAQCAtODQsOSArNzQsNiBAQCBwdWJsaWM6CiAgICAgfQogCiBw
cml2YXRlOgotICAgIGZyaWVuZCBjbGFzcyBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOwotCi0gICAg
UmVtb3RlUmVuZGVyaW5nQmFja2VuZCYgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kOwogICAgIFF1
YWxpZmllZFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBtX3JlbmRlcmluZ1Jlc291cmNlSWRl
bnRpZmllcjsKICAgICBJUEM6OlNjb3BlZEFjdGl2ZU1lc3NhZ2VSZWNlaXZlUXVldWU8UmVtb3Rl
RGlzcGxheUxpc3RSZWNvcmRlcj4gbV9yZW1vdGVEaXNwbGF5TGlzdDsKICAgICBTY29wZWRSZW5k
ZXJpbmdSZXNvdXJjZXNSZXF1ZXN0IG1fcmVuZGVyaW5nUmVzb3VyY2VzUmVxdWVzdDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdC
YWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kLmNwcAppbmRleCA4MmQ0NzhjMjI2NWI3NGQwZWRlMzE5MjJlYjY4M2VmMTNi
YzhjNTQyLi5mYjFiMDU2MDc2NTc2NDRkZjg1NDFmODc5NDgzOTFhNjAzZGQ5Nzc4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFj
a2VuZC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJl
bmRlcmluZ0JhY2tlbmQuY3BwCkBAIC0xNjQsMTQgKzE2NCw2IEBAIHZvaWQgUmVtb3RlUmVuZGVy
aW5nQmFja2VuZDo6ZGlkQ3JlYXRlSW1hZ2VCdWZmZXJCYWNrZW5kKEltYWdlQnVmZmVyQmFja2Vu
ZEhhbmRsCiAgICAgc2VuZChNZXNzYWdlczo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpE
aWRDcmVhdGVJbWFnZUJ1ZmZlckJhY2tlbmQoV1RGTW92ZShoYW5kbGUpLCByZW5kZXJpbmdSZXNv
dXJjZUlkZW50aWZpZXIub2JqZWN0KCkpLCBtX3JlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyKTsK
IH0KIAotdm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjp3aWxsRGVzdHJveUltYWdlQnVmZmVy
KEltYWdlQnVmZmVyJiBpbWFnZUJ1ZmZlcikKLXsKLSNpZiBIQVZFKElPU1VSRkFDRSkKLSAgICBp
ZiAoaW1hZ2VCdWZmZXIucmVuZGVyaW5nUHVycG9zZSgpID09IFJlbmRlcmluZ1B1cnBvc2U6Okxh
eWVyQmFja2luZykKLSAgICAgICAgaW1hZ2VCdWZmZXIucmVsZWFzZUJ1ZmZlclRvUG9vbChtX2lv
U3VyZmFjZVBvb2wuZ2V0KCkpOwotI2VuZGlmCi19Ci0KIHZvaWQgUmVtb3RlUmVuZGVyaW5nQmFj
a2VuZDo6ZGlkRmx1c2goR3JhcGhpY3NDb250ZXh0Rmx1c2hJZGVudGlmaWVyIGZsdXNoSWRlbnRp
ZmllciwgUXVhbGlmaWVkUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlbmRlcmluZ1Jlc291
cmNlSWRlbnRpZmllcikKIHsKICAgICBNRVNTQUdFX0NIRUNLKHJlbmRlcmluZ1Jlc291cmNlSWRl
bnRpZmllci5wcm9jZXNzSWRlbnRpZmllcigpID09IG1fZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vz
cy0+d2ViUHJvY2Vzc0lkZW50aWZpZXIoKSwgIlNlbmRpbmcgZGlkRmx1c2goKSBtZXNzYWdlIHRv
IHRoZSB3cm9uZyB3ZWIgcHJvY2Vzcy4iKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmggYi9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5oCmluZGV4IDc5OTY1
ZGJmNGM5NjY1MGM2MThjN2YzZTY3MGMxYWE1NzVmNTFkYjcuLjU2MDFiNGVlYzRjYzk4OWRhNzg1
ODU4NjE1OWEzYjc4M2RkNTczYWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmgKKysrIGIvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuaApAQCAtMjgsMTIgKzI4
LDEwIEBACiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogCiAjaW5jbHVkZSAiQ29ubmVjdGlvbi5o
IgotI2luY2x1ZGUgIklQQ1NlbWFwaG9yZS5oIgogI2luY2x1ZGUgIkltYWdlQnVmZmVyQmFja2Vu
ZEhhbmRsZS5oIgogI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgogI2luY2x1ZGUgIk1lc3Nh
Z2VTZW5kZXIuaCIKICNpbmNsdWRlICJRdWFsaWZpZWRSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZp
ZXIuaCIKLSNpbmNsdWRlICJSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyLmgiCiAjaW5jbHVkZSAi
UmVtb3RlUmVzb3VyY2VDYWNoZS5oIgogI2luY2x1ZGUgIlJlbmRlcmluZ0JhY2tlbmRJZGVudGlm
aWVyLmgiCiAjaW5jbHVkZSAiUmVuZGVyaW5nVXBkYXRlSUQuaCIKQEAgLTQxLDEyICszOSw4IEBA
CiAjaW5jbHVkZSAiU3RyZWFtQ29ubmVjdGlvbldvcmtRdWV1ZS5oIgogI2luY2x1ZGUgIlN0cmVh
bU1lc3NhZ2VSZWNlaXZlci5oIgogI2luY2x1ZGUgIlN0cmVhbVNlcnZlckNvbm5lY3Rpb24uaCIK
LSNpbmNsdWRlIDxXZWJDb3JlL0NvbG9yU3BhY2UuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL0Rpc3Bs
YXlMaXN0SXRlbUJ1ZmZlcklkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL01lZGlhUGxh
eWVySWRlbnRpZmllci5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUHJvY2Vzc0lkZW50aWZpZXIuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL1Byb2Nlc3NJZGVudGl0eS5oPgotI2luY2x1ZGUgPHd0Zi9XZWFr
UHRyLmg+CiAKIG5hbWVzcGFjZSBXVEYgewogZW51bSBjbGFzcyBDcml0aWNhbCA6IGJvb2w7CkBA
IC05OCw5ICs5Miw4IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgbG93TWVtb3J5SGFuZGxlcihXVEY6
OkNyaXRpY2FsLCBXVEY6OlN5bmNocm9ub3VzKTsKIAotICAgIHZvaWQgd2lsbERlc3Ryb3lJbWFn
ZUJ1ZmZlcihXZWJDb3JlOjpJbWFnZUJ1ZmZlciYpOwogI2lmIEhBVkUoSU9TVVJGQUNFKQotICAg
IFdlYkNvcmU6OklPU3VyZmFjZVBvb2wmIGlvU3VyZmFjZVBvb2woKSBjb25zdCB7IHJldHVybiAq
bV9pb1N1cmZhY2VQb29sOyB9CisgICAgV2ViQ29yZTo6SU9TdXJmYWNlUG9vbCYgaW9TdXJmYWNl
UG9vbCgpIGNvbnN0IHsgcmV0dXJuIG1faW9TdXJmYWNlUG9vbDsgfQogI2VuZGlmCiAKIHByaXZh
dGU6CkBAIC0xMzcsNyArMTMwLDYgQEAgcHJpdmF0ZToKICAgICB2b2lkIGdldERhdGFGb3JJbWFn
ZUJ1ZmZlcldpdGhRdWFsaWZpZWRJZGVudGlmaWVyKGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIHN0
ZDo6b3B0aW9uYWw8ZG91YmxlPiBxdWFsaXR5LCBRdWFsaWZpZWRSZW5kZXJpbmdSZXNvdXJjZUlk
ZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9yPHVpbnQ4X3Q+JiYpPiYmKTsK
ICAgICB2b2lkIGdldFNoYXJlYWJsZUJpdG1hcEZvckltYWdlQnVmZmVyV2l0aFF1YWxpZmllZElk
ZW50aWZpZXIoUXVhbGlmaWVkUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyLCBXZWJDb3JlOjpQ
cmVzZXJ2ZVJlc29sdXRpb24sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU2hhcmVhYmxlQml0bWFw
OjpIYW5kbGUmJik+JiYpOwogICAgIHZvaWQgY2FjaGVOYXRpdmVJbWFnZVdpdGhRdWFsaWZpZWRJ
ZGVudGlmaWVyKGNvbnN0IFNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlJiwgUXVhbGlmaWVkUmVuZGVy
aW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKLSAgICB2b2lkIGRpZENyZWF0ZVNoYXJlZERpc3BsYXlM
aXN0SGFuZGxlV2l0aFF1YWxpZmllZElkZW50aWZpZXIoV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0
ZW1CdWZmZXJJZGVudGlmaWVyLCBjb25zdCBTaGFyZWRNZW1vcnk6OklQQ0hhbmRsZSYsIFF1YWxp
ZmllZFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBkZXN0aW5hdGlvbkJ1ZmZlcklkZW50aWZp
ZXIpOwogICAgIHZvaWQgcmVsZWFzZVJlbW90ZVJlc291cmNlV2l0aFF1YWxpZmllZElkZW50aWZp
ZXIoUXVhbGlmaWVkUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKICAgICB2b2lkIGNhY2hl
Rm9udFdpdGhRdWFsaWZpZWRJZGVudGlmaWVyKFJlZjxXZWJDb3JlOjpGb250PiYmLCBRdWFsaWZp
ZWRSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOwogCkBAIC0xNTIsNyArMTQ0LDcgQEAgcHJp
dmF0ZToKICAgICBSZWZQdHI8U2hhcmVkTWVtb3J5PiBtX2dldFBpeGVsQnVmZmVyU2hhcmVkTWVt
b3J5OwogICAgIFNjb3BlZFJlbmRlcmluZ1Jlc291cmNlc1JlcXVlc3QgbV9yZW5kZXJpbmdSZXNv
dXJjZXNSZXF1ZXN0OwogI2lmIEhBVkUoSU9TVVJGQUNFKQotICAgIHN0ZDo6dW5pcXVlX3B0cjxX
ZWJDb3JlOjpJT1N1cmZhY2VQb29sPiBtX2lvU3VyZmFjZVBvb2w7CisgICAgUmVmPFdlYkNvcmU6
OklPU3VyZmFjZVBvb2w+IG1faW9TdXJmYWNlUG9vbDsKICNlbmRpZgogCiAgICAgTG9jayBtX3Jl
bW90ZURpc3BsYXlMaXN0c0xvY2s7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9S
ZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUubW0gYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUubW0KaW5kZXgg
OWIxYjJhMjJkZmVhZWM1MTVkYjE4MjE0ZTBhM2RlYzllYzQ1ZDhmYy4uNjI3NjBlMzJjNjM2NTMz
MTAxYjNmMzgzYmIwYzZkNjNmN2M3YTZkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyQmFja2luZ1N0b3JlLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllckJhY2tpbmdTdG9yZS5t
bQpAQCAtNjg5LDggKzY4OSw2IEBAIFJlZlB0cjxJbWFnZUJ1ZmZlcj4gUmVtb3RlTGF5ZXJCYWNr
aW5nU3RvcmU6OmJ1ZmZlckZvclR5cGUoQnVmZmVyVHlwZSBidWZmZXJUeXBlCiAKIHZvaWQgUmVt
b3RlTGF5ZXJCYWNraW5nU3RvcmU6OkJ1ZmZlcjo6ZGlzY2FyZCgpCiB7Ci0gICAgaWYgKGltYWdl
QnVmZmVyKQotICAgICAgICBpbWFnZUJ1ZmZlci0+cmVsZWFzZUJ1ZmZlclRvUG9vbCgmV2ViQ29y
ZTo6SU9TdXJmYWNlUG9vbDo6c2hhcmVkUG9vbCgpKTsKICAgICBpbWFnZUJ1ZmZlciA9IG51bGxw
dHI7CiAjaWYgRU5BQkxFKENHX0RJU1BMQVlfTElTVF9CQUNLRURfSU1BR0VfQlVGRkVSKQogICAg
IGRpc3BsYXlMaXN0SW1hZ2VCdWZmZXIgPSBudWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJsZU1h
cHBlZElPU3VyZmFjZUJhY2tlbmQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9n
cmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQu
Y3BwCmluZGV4IDhlNjJkMDI0MGJkYWRmYmQ1NTJjYTlkYzc0Y2NhNDcwNjUzNDQxYjguLjEyNjUw
NDVjZjRiMTVhYTkzYjk3MDM0ZjBjODlkYjViMjkxZTcxNTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJTaGFyZWFibGVN
YXBwZWRJT1N1cmZhY2VCYWNrZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFj
a2VuZC5jcHAKQEAgLTU2LDcgKzU2LDcgQEAgc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyU2hh
cmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFja2VuZD4gSW1hZ2VCdWZmZXJTaGFyZWFibGUKIAogICAg
IENHQ29udGV4dENsZWFyUmVjdChjZ0NvbnRleHQuZ2V0KCksIEZsb2F0UmVjdChGbG9hdFBvaW50
Ojp6ZXJvKCksIGJhY2tlbmRTaXplKSk7CiAKLSAgICByZXR1cm4gbWFrZVVuaXF1ZTxJbWFnZUJ1
ZmZlclNoYXJlYWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQ+KHBhcmFtZXRlcnMsIFdURk1vdmUo
c3VyZmFjZSkpOworICAgIHJldHVybiBtYWtlVW5pcXVlPEltYWdlQnVmZmVyU2hhcmVhYmxlTWFw
cGVkSU9TdXJmYWNlQmFja2VuZD4ocGFyYW1ldGVycywgV1RGTW92ZShzdXJmYWNlKSwgY3JlYXRp
b25Db250ZXh0LnN1cmZhY2VQb29sKTsKIH0KIAogc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVy
U2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFja2VuZD4gSW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBw
ZWRJT1N1cmZhY2VCYWNrZW5kOjpjcmVhdGUoY29uc3QgUGFyYW1ldGVycyYgcGFyYW1ldGVycywg
SW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlIGhhbmRsZSkKQEAgLTcwLDcgKzcwLDcgQEAgc3RkOjp1
bmlxdWVfcHRyPEltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFja2VuZD4gSW1h
Z2VCdWZmZXJTaGFyZWFibGUKICAgICBpZiAoIXN1cmZhY2UpCiAgICAgICAgIHJldHVybiBudWxs
cHRyOwogCi0gICAgcmV0dXJuIG1ha2VVbmlxdWU8SW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBwZWRJ
T1N1cmZhY2VCYWNrZW5kPihwYXJhbWV0ZXJzLCBXVEZNb3ZlKHN1cmZhY2UpKTsKKyAgICByZXR1
cm4gbWFrZVVuaXF1ZTxJbWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQ+
KHBhcmFtZXRlcnMsIFdURk1vdmUoc3VyZmFjZSksIG51bGxwdHIpOwogfQogCiBJbWFnZUJ1ZmZl
ckJhY2tlbmRIYW5kbGUgSW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5k
OjpjcmVhdGVCYWNrZW5kSGFuZGxlKFNoYXJlZE1lbW9yeTo6UHJvdGVjdGlvbikgY29uc3QK
</data>

          </attachment>
      

    </bug>

</bugzilla>