<?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>201727</bug_id>
          
          <creation_ts>2019-09-12 11:01:30 -0700</creation_ts>
          <short_desc>ImageDecoders: use a thread safe data buffer for Cairo backing store</short_desc>
          <delta_ts>2019-10-30 00:59:10 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=202807</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>
          <dependson>203488</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Charlie Turner">cturner</reporter>
          <assigned_to name="Charlie Turner">cturner</assigned_to>
          <cc>bugs-noreply</cc>
    
    <cc>cgarcia</cc>
    
    <cc>clopez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>fujii</cc>
    
    <cc>magomez</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1570301</commentid>
    <comment_count>0</comment_count>
    <who name="Charlie Turner">cturner</who>
    <bug_when>2019-09-12 11:01:30 -0700</bug_when>
    <thetext>ImageDecoders: use a thread safe data buffer for Cairo backing store</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1570304</commentid>
    <comment_count>1</comment_count>
      <attachid>378659</attachid>
    <who name="Charlie Turner">cturner</who>
    <bug_when>2019-09-12 11:10:17 -0700</bug_when>
    <thetext>Created attachment 378659
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1571139</commentid>
    <comment_count>2</comment_count>
    <who name="Charlie Turner">cturner</who>
    <bug_when>2019-09-16 09:52:05 -0700</bug_when>
    <thetext>This is sometimes crashing in release builds only, i&apos;m starting to suspect the compiler, but in the meantime it&apos;s not ready for landing it seems.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1582892</commentid>
    <comment_count>3</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2019-10-23 11:09:27 -0700</bug_when>
    <thetext>This has been here ignored because there isn&apos;t any reviewer CC&apos;ed. Next time try to CC any reviewer. You can pass the flag &quot;--suggest-reviewers&quot; to the webkit-patch tool and it will automatically suggest them</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1583246</commentid>
    <comment_count>4</comment_count>
    <who name="Miguel Gomez">magomez</who>
    <bug_when>2019-10-23 23:51:38 -0700</bug_when>
    <thetext>This totally makes sense. The introduction of async image decoding is what caused buffers to be accessed from different threads (before that everything happened on the main thread). The patch looks good IMO.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1583254</commentid>
    <comment_count>5</comment_count>
      <attachid>378659</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-10-24 00:10:06 -0700</bug_when>
    <thetext>Comment on attachment 378659
Patch

Do we only need the refcounting to be thread safe? or also the data can be accessed from multiple threads? because in that case we would need a lock to protect the pixels, no?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1583257</commentid>
    <comment_count>6</comment_count>
    <who name="Miguel Gomez">magomez</who>
    <bug_when>2019-10-24 00:41:54 -0700</bug_when>
    <thetext>(In reply to Carlos Garcia Campos from comment #5)
&gt; Comment on attachment 378659 [details]
&gt; Patch
&gt; 
&gt; Do we only need the refcounting to be thread safe? or also the data can be
&gt; accessed from multiple threads? because in that case we would need a lock to
&gt; protect the pixels, no?

The buffer is going to be created on the decoding thread and filled there. Once the decoding is finished a repaint is requested and at that point it&apos;s when the main thread will start accessing the buffer contents, and the decoding thread shouldn&apos;t be accessing it anymore. So I don&apos;t think the data can be accessed from both threads at the same time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1583259</commentid>
    <comment_count>7</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-10-24 00:53:46 -0700</bug_when>
    <thetext>(In reply to Miguel Gomez from comment #6)
&gt; (In reply to Carlos Garcia Campos from comment #5)
&gt; &gt; Comment on attachment 378659 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; Do we only need the refcounting to be thread safe? or also the data can be
&gt; &gt; accessed from multiple threads? because in that case we would need a lock to
&gt; &gt; protect the pixels, no?
&gt; 
&gt; The buffer is going to be created on the decoding thread and filled there.
&gt; Once the decoding is finished a repaint is requested and at that point it&apos;s
&gt; when the main thread will start accessing the buffer contents, and the
&gt; decoding thread shouldn&apos;t be accessing it anymore. So I don&apos;t think the data
&gt; can be accessed from both threads at the same time.

Ok, it doesn&apos;t matter much because it&apos;s a private helper class, but I think I would rename it as RGBAPixelBufferThreadSafeRefCounted to make it clearer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1583260</commentid>
    <comment_count>8</comment_count>
      <attachid>378659</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-10-24 00:54:59 -0700</bug_when>
    <thetext>Comment on attachment 378659
Patch

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

&gt; Source/WebCore/platform/graphics/ImageBackingStore.h:188
&gt; +    class ThreadSafeRGBAPixelBuffer : public ThreadSafeRefCounted&lt;ThreadSafeRGBAPixelBuffer&gt; {

As I suggested in the comments I would rename this, because this name is confusing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1583685</commentid>
    <comment_count>9</comment_count>
      <attachid>378659</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2019-10-24 23:29:30 -0700</bug_when>
    <thetext>Comment on attachment 378659
Patch

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

&gt; Source/WebCore/platform/graphics/ImageBackingStore.h:199
&gt; +            m_isValid = m_pixels.tryReserveCapacity(initialSize.area().unsafeGet());

This operation on Vector, as name suggests, only reserve-expands the capacity -- it doesn&apos;t change the size of it. But the zero-fill in zeroPixelData() does fill the Vector&apos;s data based on the size, i.e. it zeroes out nothing.

An additional Vector&lt;&gt;::resize() call here (if reservation was successful) would avoid that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1584394</commentid>
    <comment_count>10</comment_count>
      <attachid>382052</attachid>
    <who name="Charlie Turner">cturner</who>
    <bug_when>2019-10-28 02:16:01 -0700</bug_when>
    <thetext>Created attachment 382052
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1584395</commentid>
    <comment_count>11</comment_count>
      <attachid>382053</attachid>
    <who name="Charlie Turner">cturner</who>
    <bug_when>2019-10-28 02:16:43 -0700</bug_when>
    <thetext>Created attachment 382053
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1584396</commentid>
    <comment_count>12</comment_count>
      <attachid>382054</attachid>
    <who name="Charlie Turner">cturner</who>
    <bug_when>2019-10-28 02:17:35 -0700</bug_when>
    <thetext>Created attachment 382054
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1584408</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-10-28 03:11:58 -0700</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 382054:

imported/w3c/web-platform-tests/css/css-position/position-absolute-container-dynamic-002.html bug 203473 (author: simon.fraser@apple.com)
imported/w3c/web-platform-tests/css/css-position/position-absolute-crash-chrome-005.html bug 203474 (author: simon.fraser@apple.com)
imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/module/integrity.html bug 203394 (author: ysuzuki@apple.com)
The commit-queue is continuing to process your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1584409</commentid>
    <comment_count>14</comment_count>
      <attachid>382054</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-10-28 03:12:50 -0700</bug_when>
    <thetext>Comment on attachment 382054
Patch for landing

Clearing flags on attachment: 382054

Committed r251651: &lt;https://trac.webkit.org/changeset/251651&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1584410</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-10-28 03:12:52 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1584412</commentid>
    <comment_count>16</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-10-28 03:13:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/56665041&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1584444</commentid>
    <comment_count>17</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-10-28 07:58:01 -0700</bug_when>
    <thetext>I had to revert this locally because it&apos;s causing crashes here with my riot ephjy web app (I don&apos;t know why it doesn&apos;t happen with normal ephy). It&apos;s crashing when  creating the favicon, see:

Thread 1 (Thread 0x7fffeaf03cc0 (LWP 2247)):
#0  0x00007ffff53b91f0 in WebCore::ImageBackingStore::image() const () from /home/cgarcia/gnome/lib/libwebkit2gtk-4.0.so.37
#1  0x00007ffff53a87b1 in WebCore::ScalableImageDecoder::createFrameImageAtIndex(unsigned long, WebCore::SubsamplingLevel, WebCore::DecodingOptions const&amp;) () from /home/cgarcia/gnome/lib/li--Type &lt;RET&gt; for more, q to quit, c to continue without paging--
bwebkit2gtk-4.0.so.37
#2  0x00007ffff4ce65f3 in WebCore::ImageSource::frameAtIndexCacheIfNeeded(unsigned long, WebCore::ImageFrame::Caching, WTF::Optional&lt;WebCore::SubsamplingLevel&gt; const&amp;) () from /home/cgarcia/gnome/lib/libwebkit2gtk-4.0.so.37
#3  0x00007ffff4ce6830 in WebCore::ImageSource::frameImageAtIndexCacheIfNeeded(unsigned long, WebCore::SubsamplingLevel) () from /home/cgarcia/gnome/lib/libwebkit2gtk-4.0.so.37
#4  0x00007ffff4c87297 in WebCore::BitmapImage::frameImageAtIndexCacheIfNeeded(unsigned long, WebCore::SubsamplingLevel, WebCore::GraphicsContext const*) () from /home/cgarcia/gnome/lib/libwebkit2gtk-4.0.so.37
#5  0x00007ffff4c872f3 in WebCore::BitmapImage::nativeImageForCurrentFrame(WebCore::GraphicsContext const*) () from /home/cgarcia/gnome/lib/libwebkit2gtk-4.0.so.37
#6  0x00007ffff3827d2e in WTF::Detail::CallableWrapper&lt;WebKit::IconDatabase::loadIconForPageURL(WTF::String const&amp;, WebKit::IconDatabase::AllowDatabaseWrite, WTF::CompletionHandler&lt;void (WTF::RefPtr&lt;_cairo_surface, WTF::DumbPtrTraits&lt;_cairo_surface&gt; &gt;&amp;&amp;)&gt;&amp;&amp;)::{lambda()#1}::operator()()::{lambda()#1}, void&gt;::call() () from /home/cgarcia/gnome/lib/libwebkit2gtk-4.0.so.37
#7  0x00007ffff1697f85 in WTF::RunLoop::performWork() () from /home/cgarcia/gnome/lib/libjavascriptcoregtk-4.0.so.18
#8  0x00007ffff16f4a29 in WTF::RunLoop::RunLoop()::{lambda(void*)#1}::_FUN(void*) () from /home/cgarcia/gnome/lib/libjavascriptcoregtk-4.0.so.18
#9  0x00007ffff74a6a1e in g_main_dispatch (context=0x55555567f120) at ../glib/gmain.c:3179
#10 g_main_context_dispatch (context=context@entry=0x55555567f120) at ../glib/gmain.c:3844
#11 0x00007ffff74a6da0 in g_main_context_iterate (context=context@entry=0x55555567f120, block=block@entry=1, dispatch=dispatch@entry=1, self=&lt;optimized out&gt;) at ../glib/gmain.c:3917
#12 0x00007ffff74a6e2f in g_main_context_iteration (context=context@entry=0x55555567f120, may_block=may_block@entry=1) at ../glib/gmain.c:3978
#13 0x00007ffff76a9a4d in g_application_run (application=0x55555595c2e0, argc=&lt;optimized out&gt;, argv=&lt;optimized out&gt;) at ../gio/gapplication.c:2559
#14 0x0000555555559bf9 in main (argc=1, argv=0x7fffffffd928) at ../src/ephy-main.c:427</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1584446</commentid>
    <comment_count>18</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-10-28 08:01:36 -0700</bug_when>
    <thetext>Bots are also exiting early after r251651 due to crashes, so I&apos;ll roll this out.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1584448</commentid>
    <comment_count>19</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-10-28 08:02:31 -0700</bug_when>
    <thetext>Re-opened since this is blocked by bug 203488</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1584800</commentid>
    <comment_count>20</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2019-10-28 19:27:17 -0700</bug_when>
    <thetext>*** Bug 203546 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1584876</commentid>
    <comment_count>21</comment_count>
      <attachid>382054</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-10-29 03:36:12 -0700</bug_when>
    <thetext>Comment on attachment 382054
Patch for landing

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

This patch can be simplified simply using SharedBuffer::DataSegment which is already thread safe ref counted.

&gt; Source/WebCore/platform/graphics/ImageBackingStore.h:-205
&gt; -        m_pixels = SharedBuffer::create(other.m_pixels-&gt;data(), other.m_pixels-&gt;size());
&gt; -        m_pixelsPtr = reinterpret_cast&lt;RGBA32*&gt;(const_cast&lt;char*&gt;(m_pixels-&gt;data()));

I think this is the problem, we actually need to copy the data here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1584877</commentid>
    <comment_count>22</comment_count>
      <attachid>382173</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-10-29 03:38:02 -0700</bug_when>
    <thetext>Created attachment 382173
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1584913</commentid>
    <comment_count>23</comment_count>
      <attachid>382173</attachid>
    <who name="Charlie Turner">cturner</who>
    <bug_when>2019-10-29 08:11:52 -0700</bug_when>
    <thetext>Comment on attachment 382173
Patch

It LGTM, I come to same conclusion about the copy ctor and was about to upload :-), but the DataSegment is much nicer, thanks for taking a look!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1585299</commentid>
    <comment_count>24</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-10-30 00:59:10 -0700</bug_when>
    <thetext>Committed r251771: &lt;https://trac.webkit.org/changeset/251771&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>378659</attachid>
            <date>2019-09-12 11:10:17 -0700</date>
            <delta_ts>2019-10-28 02:15:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-201727-20190912191016.patch</filename>
            <type>text/plain</type>
            <size>7038</size>
            <attacher name="Charlie Turner">cturner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ5NjQ0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjg2YjQ2MTY2YjlhODVh
M2U1NDNjNjYzYzdlYTY0ZTFjYjEzNDUzMy4uMmJmMGJiOGM2MTYwYTE1M2ZkNzM4MWY3MTVhOWZl
NjA1MjZlNTc0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDE5LTA5LTEyICBDaGFy
bGllIFR1cm5lciAgPGN0dXJuZXJAaWdhbGlhLmNvbT4KKworICAgICAgICBJbWFnZURlY29kZXJz
OiB1c2UgYSB0aHJlYWQgc2FmZSBkYXRhIGJ1ZmZlciBmb3IgQ2Fpcm8gYmFja2luZyBzdG9yZQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAxNzI3CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2hlbiBhbiBp
bWFnZSByZXNvdXJjZSBnZXRzIGNhY2hlZCBhbmQgcmVwbGFjZXMgYW4gZXhpc3RpbmcgaW1hZ2Us
CisgICAgICAgIENhY2hlZEltYWdlOjpkaWRSZXBsYWNlU2hhcmVkQnVmZmVyQ29udGVudHMgaXMg
Y2FsbGVkLCB3aGljaAorICAgICAgICBkZXN0cm95cyB0aGUgZGVjb2RlciBpbiB0aGUgQml0bWFw
SW1hZ2UgY2xhc3MuIFRoaXMgZGVjb2RlciBjYW4gYmUKKyAgICAgICAgaW5pdGlhbGl6ZWQgZnJv
bSBhbnkgdGhyZWFkIHZpYQorICAgICAgICBJbWFnZVNvdXJjZTo6ZW5zdXJlRGVjb2RlckF2YWls
YWJsZS4gT24gR1RLL1dQRSwgdGhpcyBkaXNwYXRjaGVzCisgICAgICAgIHRvIGEgU2NhbGFibGVJ
bWFnZURlY29kZXIsIHdoaWNoIGNvbnRhaW5zIGEgdmVjdG9yIG9mCisgICAgICAgIFNjYWxhYmxl
SW1hZ2VEZWNvZGVyRnJhbWUncywgd2hpY2ggY29udGFpbiBJbWFnZUJhY2tpbmdTdG9yZSdzLAor
ICAgICAgICB3aGljaCBmb3IgcmVhc29ucyByZWxhdGVkIHRvIENhaXJvLCBjb250YWluIGEgUmVm
Q291bnRlZAorICAgICAgICBTaGFyZWRCdWZmZXIgb2YgcGl4ZWwgZGF0YS4KKworICAgICAgICBU
aGUgcHJvYmxlbSBpcyB0aGF0IHRoZSBDYWNoZWRJbWFnZSdzIGRlY29kZXJzIGNhbiBiZQorICAg
ICAgICBjcmVhdGVkL2Rlc3Ryb3llZCBvbiBkaWZmZXJlbnQgdGhyZWFkcywgc28gYSB0aHJlYWQt
c2FmZSBidWZmZXIKKyAgICAgICAgY2xhc3MgaXMgcmVxdWlyZWQgdG8gaG9sZCB0aGVzZSBkYXRh
LCBhbmQgcGFzcyB0aGVtIHNhZmVseSBpbnRvCisgICAgICAgIGNhaXJvX2ltYWdlX3N1cmZhY2Vf
Y3JlYXRlX2Zvcl9kYXRhIHJhdGhlciB0aGFuIGEgU2hhcmVkQnVmZmVyCisgICAgICAgIHdoaWNo
IG11c3QgYmUgY3JlYXRlZC9kZXN0cm95ZWQgb24gdGhlIG1haW4tdGhyZWFkLgorCisgICAgICAg
IENvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9JbWFnZUJhY2tpbmdTdG9yZS5oOiBDcmVhdGUgYSBzbWFsbAorICAgICAgICB0aHJlYWQtc2Fm
ZSB1dGlsaXR5IGNsYXNzIHRvIGhvbGQgdGhlIFJHQkEgcGl4ZWwgZGF0YS4KKyAgICAgICAgKFdl
YkNvcmU6OkltYWdlQmFja2luZ1N0b3JlOjpzZXRTaXplKToKKyAgICAgICAgKFdlYkNvcmU6Oklt
YWdlQmFja2luZ1N0b3JlOjpjbGVhcik6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJhY2tpbmdT
dG9yZTo6cGl4ZWxBdCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJhY2tpbmdTdG9y
ZTo6VGhyZWFkU2FmZVJHQkFQaXhlbEJ1ZmZlcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OkltYWdlQmFja2luZ1N0b3JlOjpUaHJlYWRTYWZlUkdCQVBpeGVsQnVmZmVyOjp6ZXJvUGl4ZWxE
YXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlQmFja2luZ1N0b3JlOjpUaHJlYWRTYWZlUkdC
QVBpeGVsQnVmZmVyOjpwaXhlbEF0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlQmFj
a2luZ1N0b3JlOjpUaHJlYWRTYWZlUkdCQVBpeGVsQnVmZmVyOjpkYXRhIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkltYWdlQmFja2luZ1N0b3JlOjpUaHJlYWRTYWZlUkdCQVBpeGVsQnVmZmVy
Ojppc1ZhbGlkIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlQmFja2luZ1N0b3JlOjpU
aHJlYWRTYWZlUkdCQVBpeGVsQnVmZmVyOjpUaHJlYWRTYWZlUkdCQVBpeGVsQnVmZmVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OkltYWdlQmFja2luZ1N0b3JlOjpJbWFnZUJhY2tpbmdTdG9yZSk6Cisg
ICAgICAgICogcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvY2Fpcm8vSW1hZ2VCYWNraW5nU3RvcmVD
YWlyby5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJhY2tpbmdTdG9yZTo6aW1hZ2UgY29u
c3QpOgorCiAyMDE5LTA5LTExICBDaGFybGllIFR1cm5lciAgPGN0dXJuZXJAaWdhbGlhLmNvbT4K
IAogICAgICAgICBbR1N0cmVhbWVyXSBEbyBub3QgYWRvcHQgZmxvYXRpbmcgcmVmZXJlbmNlcy4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQmFja2lu
Z1N0b3JlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJhY2tpbmdT
dG9yZS5oCmluZGV4IGFlNjVjZDAyNGVkNTk1YjE1NTUyN2NlMDhmOTQ1ZjFlZWU5Zjc3YWYuLmNh
ZjQzMjU5MTIzMGM1ODYzZjZjYmJhNmQyNjRiZWFlNWRjZjg3ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQmFja2luZ1N0b3JlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCYWNraW5nU3RvcmUuaApAQCAtNTks
MTUgKzU5LDExIEBAIHB1YmxpYzoKICAgICAgICAgaWYgKHNpemUuaXNFbXB0eSgpKQogICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgICAgIFZlY3RvcjxjaGFyPiBidWZmZXI7Ci0gICAg
ICAgIHNpemVfdCBidWZmZXJTaXplID0gc2l6ZS5hcmVhKCkudW5zYWZlR2V0KCkgKiBzaXplb2Yo
UkdCQTMyKTsKKyAgICAgICAgbV9waXhlbHMgPSBUaHJlYWRTYWZlUkdCQVBpeGVsQnVmZmVyOjpj
cmVhdGUoc2l6ZSk7CiAKLSAgICAgICAgaWYgKCFidWZmZXIudHJ5UmVzZXJ2ZUNhcGFjaXR5KGJ1
ZmZlclNpemUpKQorICAgICAgICBpZiAoIW1fcGl4ZWxzLT5pc1ZhbGlkKCkpCiAgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CiAKLSAgICAgICAgYnVmZmVyLmdyb3coYnVmZmVyU2l6ZSk7Ci0gICAg
ICAgIG1fcGl4ZWxzID0gU2hhcmVkQnVmZmVyOjpjcmVhdGUoV1RGTW92ZShidWZmZXIpKTsKLSAg
ICAgICAgbV9waXhlbHNQdHIgPSByZWludGVycHJldF9jYXN0PFJHQkEzMio+KGNvbnN0X2Nhc3Q8
Y2hhcio+KG1fcGl4ZWxzLT5kYXRhKCkpKTsKICAgICAgICAgbV9zaXplID0gc2l6ZTsKICAgICAg
ICAgbV9mcmFtZVJlY3QgPSBJbnRSZWN0KEludFBvaW50KCksIG1fc2l6ZSk7CiAgICAgICAgIGNs
ZWFyKCk7CkBAIC04Niw3ICs4Miw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgY2xlYXIoKQogICAg
IHsKLSAgICAgICAgbWVtc2V0KG1fcGl4ZWxzUHRyLCAwLCAobV9zaXplLmFyZWEoKSAqIHNpemVv
ZihSR0JBMzIpKS51bnNhZmVHZXQoKSk7CisgICAgICAgIG1fcGl4ZWxzLT56ZXJvUGl4ZWxEYXRh
KCk7CiAgICAgfQogCiAgICAgdm9pZCBjbGVhclJlY3QoY29uc3QgSW50UmVjdCYgcmVjdCkKQEAg
LTEzMyw3ICsxMjksNyBAQCBwdWJsaWM6CiAgICAgUkdCQTMyKiBwaXhlbEF0KGludCB4LCBpbnQg
eSkgY29uc3QKICAgICB7CiAgICAgICAgIEFTU0VSVChpbkJvdW5kcyhJbnRQb2ludCh4LCB5KSkp
OwotICAgICAgICByZXR1cm4gbV9waXhlbHNQdHIgKyB5ICogbV9zaXplLndpZHRoKCkgKyB4Owor
ICAgICAgICByZXR1cm4gbV9waXhlbHMtPnBpeGVsQXQoeCwgeSk7CiAgICAgfQogCiAgICAgdm9p
ZCBzZXRQaXhlbChSR0JBMzIqIGRlc3QsIHVuc2lnbmVkIHIsIHVuc2lnbmVkIGcsIHVuc2lnbmVk
IGIsIHVuc2lnbmVkIGEpCkBAIC0xODksNiArMTg1LDI0IEBAIHB1YmxpYzoKICAgICB9CiAKIHBy
aXZhdGU6CisgICAgY2xhc3MgVGhyZWFkU2FmZVJHQkFQaXhlbEJ1ZmZlciA6IHB1YmxpYyBUaHJl
YWRTYWZlUmVmQ291bnRlZDxUaHJlYWRTYWZlUkdCQVBpeGVsQnVmZmVyPiB7CisgICAgcHVibGlj
OgorICAgICAgICBzdGF0aWMgUmVmPFRocmVhZFNhZmVSR0JBUGl4ZWxCdWZmZXI+IGNyZWF0ZShj
b25zdCBJbnRTaXplJiBpbml0aWFsU2l6ZSkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBUaHJlYWRT
YWZlUkdCQVBpeGVsQnVmZmVyKGluaXRpYWxTaXplKSk7IH0KKyAgICAgICAgdm9pZCB6ZXJvUGl4
ZWxEYXRhKCkgeyBtX3BpeGVscy5maWxsKDApOyB9CisgICAgICAgIFJHQkEzMiogcGl4ZWxBdChp
bnQgeCwgaW50IHkpIGNvbnN0IHsgcmV0dXJuIGNvbnN0X2Nhc3Q8dW5zaWduZWQqPigmbV9waXhl
bHMuZGF0YSgpW3kgKiBtX3NpemUud2lkdGgoKSArIHhdKTsgfQorICAgICAgICBjb25zdCBSR0JB
MzIqIGRhdGEoKSBjb25zdCB7IHJldHVybiBtX3BpeGVscy5kYXRhKCk7IH0KKyAgICAgICAgYm9v
bCBpc1ZhbGlkKCkgY29uc3QgeyByZXR1cm4gbV9pc1ZhbGlkOyB9CisgICAgcHJpdmF0ZToKKyAg
ICAgICAgVGhyZWFkU2FmZVJHQkFQaXhlbEJ1ZmZlcihjb25zdCBJbnRTaXplJiBpbml0aWFsU2l6
ZSkKKyAgICAgICAgICAgIDogbV9zaXplKGluaXRpYWxTaXplKQorICAgICAgICB7CisgICAgICAg
ICAgICBtX2lzVmFsaWQgPSBtX3BpeGVscy50cnlSZXNlcnZlQ2FwYWNpdHkoaW5pdGlhbFNpemUu
YXJlYSgpLnVuc2FmZUdldCgpKTsKKyAgICAgICAgfQorICAgICAgICBJbnRTaXplIG1fc2l6ZTsK
KyAgICAgICAgVmVjdG9yPFJHQkEzMj4gbV9waXhlbHM7CisgICAgICAgIGJvb2wgbV9pc1ZhbGlk
IHsgZmFsc2UgfTsKKyAgICB9OworCiAgICAgSW1hZ2VCYWNraW5nU3RvcmUoY29uc3QgSW50U2l6
ZSYgc2l6ZSwgYm9vbCBwcmVtdWx0aXBseUFscGhhID0gdHJ1ZSkKICAgICAgICAgOiBtX3ByZW11
bHRpcGx5QWxwaGEocHJlbXVsdGlwbHlBbHBoYSkKICAgICB7CkBAIC0yMDEsOCArMjE1LDYgQEAg
cHJpdmF0ZToKICAgICAgICAgLCBtX3ByZW11bHRpcGx5QWxwaGEob3RoZXIubV9wcmVtdWx0aXBs
eUFscGhhKQogICAgIHsKICAgICAgICAgQVNTRVJUKCFtX3NpemUuaXNFbXB0eSgpICYmICFpc092
ZXJTaXplKG1fc2l6ZSkpOwotICAgICAgICBtX3BpeGVscyA9IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRl
KG90aGVyLm1fcGl4ZWxzLT5kYXRhKCksIG90aGVyLm1fcGl4ZWxzLT5zaXplKCkpOwotICAgICAg
ICBtX3BpeGVsc1B0ciA9IHJlaW50ZXJwcmV0X2Nhc3Q8UkdCQTMyKj4oY29uc3RfY2FzdDxjaGFy
Kj4obV9waXhlbHMtPmRhdGEoKSkpOwogICAgIH0KIAogICAgIGJvb2wgaW5Cb3VuZHMoY29uc3Qg
SW50UG9pbnQmIHBvaW50KSBjb25zdApAQCAtMjI2LDggKzIzOCw4IEBAIHByaXZhdGU6CiAgICAg
ICAgIHJldHVybiBtYWtlUkdCQShyLCBnLCBiLCBhKTsKICAgICB9CiAKLSAgICBSZWZQdHI8U2hh
cmVkQnVmZmVyPiBtX3BpeGVsczsKLSAgICBSR0JBMzIqIG1fcGl4ZWxzUHRyIHsgbnVsbHB0ciB9
OworICAgIFJlZlB0cjxUaHJlYWRTYWZlUkdCQVBpeGVsQnVmZmVyPiBtX3BpeGVsczsKKwogICAg
IEludFNpemUgbV9zaXplOwogICAgIEludFJlY3QgbV9mcmFtZVJlY3Q7IC8vIFRoaXMgd2lsbCBh
bHdheXMganVzdCBiZSB0aGUgZW50aXJlIGJ1ZmZlciBleGNlcHQgZm9yIEdJRiBhbmQgUE5HIGZy
YW1lcwogICAgIGJvb2wgbV9wcmVtdWx0aXBseUFscGhhIHsgdHJ1ZSB9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvY2Fpcm8vSW1hZ2VCYWNraW5n
U3RvcmVDYWlyby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9j
YWlyby9JbWFnZUJhY2tpbmdTdG9yZUNhaXJvLmNwcAppbmRleCBlODI3MGIwZTk3ZjI4ZDUyNzUz
YjM2NzE0NDZmYmFmNmJkZGJiMDNmLi4zMjZhMmQ0ZmZiMGFiMDNmMWNhMTFkYmE2YWNkMTQyZTc2
MGI1NTliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVy
cy9jYWlyby9JbWFnZUJhY2tpbmdTdG9yZUNhaXJvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9jYWlyby9JbWFnZUJhY2tpbmdTdG9yZUNhaXJvLmNwcApA
QCAtMzQsMTAgKzM0LDEwIEBAIE5hdGl2ZUltYWdlUHRyIEltYWdlQmFja2luZ1N0b3JlOjppbWFn
ZSgpIGNvbnN0CiB7CiAgICAgbV9waXhlbHMtPnJlZigpOwogICAgIFJlZlB0cjxjYWlyb19zdXJm
YWNlX3Q+IHN1cmZhY2UgPSBhZG9wdFJlZihjYWlyb19pbWFnZV9zdXJmYWNlX2NyZWF0ZV9mb3Jf
ZGF0YSgKLSAgICAgICAgcmVpbnRlcnByZXRfY2FzdDx1bnNpZ25lZCBjaGFyKj4oY29uc3RfY2Fz
dDx1aW50MzJfdCo+KG1fcGl4ZWxzUHRyKSksCisgICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8dW5z
aWduZWQgY2hhcio+KGNvbnN0X2Nhc3Q8dWludDMyX3QqPihtX3BpeGVscy0+ZGF0YSgpKSksCiAg
ICAgICAgIENBSVJPX0ZPUk1BVF9BUkdCMzIsIHNpemUoKS53aWR0aCgpLCBzaXplKCkuaGVpZ2h0
KCksIHNpemUoKS53aWR0aCgpICogc2l6ZW9mKHVpbnQzMl90KSkpOwogICAgIHN0YXRpYyBjYWly
b191c2VyX2RhdGFfa2V5X3Qgc19zdXJmYWNlRGF0YUtleTsKLSAgICBjYWlyb19zdXJmYWNlX3Nl
dF91c2VyX2RhdGEoc3VyZmFjZS5nZXQoKSwgJnNfc3VyZmFjZURhdGFLZXksIG1fcGl4ZWxzLmdl
dCgpLCBbXSh2b2lkKiBkYXRhKSB7IHN0YXRpY19jYXN0PFNoYXJlZEJ1ZmZlcio+KGRhdGEpLT5k
ZXJlZigpOyB9KTsKKyAgICBjYWlyb19zdXJmYWNlX3NldF91c2VyX2RhdGEoc3VyZmFjZS5nZXQo
KSwgJnNfc3VyZmFjZURhdGFLZXksIG1fcGl4ZWxzLmdldCgpLCBbXSh2b2lkKiBkYXRhKSB7IHN0
YXRpY19jYXN0PFRocmVhZFNhZmVSR0JBUGl4ZWxCdWZmZXIqPihkYXRhKS0+ZGVyZWYoKTsgfSk7
CiAKICAgICByZXR1cm4gc3VyZmFjZTsKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>382052</attachid>
            <date>2019-10-28 02:16:01 -0700</date>
            <delta_ts>2019-10-28 02:16:39 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-201727-20191028101600.patch</filename>
            <type>text/plain</type>
            <size>9407</size>
            <attacher name="Charlie Turner">cturner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUxNjAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTJjNjY2ODRkZmYzOWU1
YTlmOTY0MDc2NDQxNzcwYmFkMjAyZDdlNS4uZTY3YjIyMjM1MmI4NGU0NDRiYjYzNTVhMWJiNTM3
NzhiMWY0MWExZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDE5LTEwLTI3ICBDaGFy
bGllIFR1cm5lciAgPGN0dXJuZXJAaWdhbGlhLmNvbT4KKworICAgICAgICBBZ2l0YXRvcidzOiB1
c2UgYSB0aHJlYWQgc2FmZSBkYXRhIGJ1ZmZlciBmb3IgQ2Fpcm8gYmFja2luZyBzdG9yZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAxNzI3CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgQ2FybG9zIEdhcmNpYSBDYW1wb3MuCisKKyAgICAgICAgV2hlbiBh
biBpbWFnZSByZXNvdXJjZSBnZXRzIGNhY2hlZCBhbmQgcmVwbGFjZXMgYW4gZXhpc3RpbmcgaW1h
Z2UsCisgICAgICAgIENhY2hlZEltYWdlOjpkaWRSZXBsYWNlU2hhcmVkQnVmZmVyQ29udGVudHMg
aXMgY2FsbGVkLCB3aGljaAorICAgICAgICBkZXN0cm95cyB0aGUgZGVjb2RlciBpbiB0aGUgQml0
bWFwSW1hZ2UgY2xhc3MuIFRoaXMgZGVjb2RlciBjYW4gYmUKKyAgICAgICAgaW5pdGlhbGl6ZWQg
ZnJvbSBhbnkgdGhyZWFkIHZpYQorICAgICAgICBJbWFnZVNvdXJjZTo6ZW5zdXJlRGVjb2RlckF2
YWlsYWJsZS4gT24gR1RLL1dQRSwgdGhpcyBkaXNwYXRjaGVzCisgICAgICAgIHRvIGEgU2NhbGFi
bGVJbWFnZURlY29kZXIsIHdoaWNoIGNvbnRhaW5zIGEgdmVjdG9yIG9mCisgICAgICAgIFNjYWxh
YmxlSW1hZ2VEZWNvZGVyRnJhbWUncywgd2hpY2ggY29udGFpbiBJbWFnZUJhY2tpbmdTdG9yZSdz
LAorICAgICAgICB3aGljaCBmb3IgcmVhc29ucyByZWxhdGVkIHRvIENhaXJvLCBjb250YWluIGEg
UmVmQ291bnRlZAorICAgICAgICBTaGFyZWRCdWZmZXIgb2YgcGl4ZWwgZGF0YS4KKworICAgICAg
ICBUaGUgcHJvYmxlbSBpcyB0aGF0IHRoZSBDYWNoZWRJbWFnZSdzIGRlY29kZXJzIGNhbiBiZQor
ICAgICAgICBjcmVhdGVkL2Rlc3Ryb3llZCBvbiBkaWZmZXJlbnQgdGhyZWFkcywgc28gYSB0aHJl
YWQtc2FmZSBidWZmZXIKKyAgICAgICAgY2xhc3MgaXMgcmVxdWlyZWQgdG8gaG9sZCB0aGVzZSBk
YXRhLCBhbmQgcGFzcyB0aGVtIHNhZmVseSBpbnRvCisgICAgICAgIGNhaXJvX2ltYWdlX3N1cmZh
Y2VfY3JlYXRlX2Zvcl9kYXRhIHJhdGhlciB0aGFuIGEgU2hhcmVkQnVmZmVyCisgICAgICAgIHdo
aWNoIG11c3QgYmUgY3JlYXRlZC9kZXN0cm95ZWQgb24gdGhlIG1haW4tdGhyZWFkLgorCisgICAg
ICAgIENvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9JbWFnZUJhY2tpbmdTdG9yZS5oOiBDcmVhdGUgYSBzbWFsbAorICAgICAgICB0aHJlYWQt
c2FmZSB1dGlsaXR5IGNsYXNzIHRvIGhvbGQgdGhlIFJHQkEgcGl4ZWwgZGF0YS4KKyAgICAgICAg
KFdlYkNvcmU6OkltYWdlQmFja2luZ1N0b3JlOjpzZXRTaXplKToKKyAgICAgICAgKFdlYkNvcmU6
OkltYWdlQmFja2luZ1N0b3JlOjpjbGVhcik6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJhY2tp
bmdTdG9yZTo6cGl4ZWxBdCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJhY2tpbmdT
dG9yZTo6VGhyZWFkU2FmZVJHQkFQaXhlbEJ1ZmZlcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNv
cmU6OkltYWdlQmFja2luZ1N0b3JlOjpUaHJlYWRTYWZlUkdCQVBpeGVsQnVmZmVyOjp6ZXJvUGl4
ZWxEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlQmFja2luZ1N0b3JlOjpUaHJlYWRTYWZl
UkdCQVBpeGVsQnVmZmVyOjpwaXhlbEF0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdl
QmFja2luZ1N0b3JlOjpUaHJlYWRTYWZlUkdCQVBpeGVsQnVmZmVyOjpkYXRhIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkltYWdlQmFja2luZ1N0b3JlOjpUaHJlYWRTYWZlUkdCQVBpeGVsQnVm
ZmVyOjppc1ZhbGlkIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlQmFja2luZ1N0b3Jl
OjpUaHJlYWRTYWZlUkdCQVBpeGVsQnVmZmVyOjpSR0JBUGl4ZWxCdWZmZXJUaHJlYWRTYWZlUmVm
Q291bnRlZCk6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJhY2tpbmdTdG9yZTo6SW1hZ2VCYWNr
aW5nU3RvcmUpOgorICAgICAgICAqIHBsYXRmb3JtL2ltYWdlLWRlY29kZXJzL2NhaXJvL0ltYWdl
QmFja2luZ1N0b3JlQ2Fpcm8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCYWNraW5nU3Rv
cmU6OmltYWdlIGNvbnN0KToKKwogMjAxOS0xMC0yNCAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Vi
a2l0Lm9yZz4KIAogICAgICAgICBBZGQgZXhjbHVzaW9uIHJ1bGVzIHRvIHRleHQgbWFuaXB1bGF0
aW9uIFNQSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKaW5kZXggNjVm
Y2U0NmVkMGViYTBjODNiMGFmNzRhNGUyZjk3YTg5NjE2YjgxNC4uZDNhOTZkNTZiY2Q5YWM3MjM0
ZjkwMTEwZmEyMmJjMDM1NzRhNmU5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MTWVkaWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVs
ZW1lbnQuY3BwCkBAIC0yMzgzLDggKzIzODMsMTAgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojpj
aGFuZ2VOZXR3b3JrU3RhdGVGcm9tTG9hZGluZ1RvSWRsZSgpCiAgICAgLy8gYXN5bmMgcXVldWUg
dG8gZGlzcGF0Y2ggdGhpcyB0byBKUyBhZnRlciB3ZSBzZXQgbV9uZXR3b3JrU3RhdGUKICAgICAv
LyB0byBJRExFIGJlbG93LCB3aGljaCBicmVha3MgdGhlIGludmFyaWFudCBvZiBvbnByb2dyZXNz
CiAgICAgLy8gaGFwcGVuaW5nIGR1cmluZyBORVRXT1JLX0xPQURJTkcuCisgICAgZnByaW50Zihz
dGRlcnIsIkNIVDogc2NoZWR1bGUgbG9hZGluZy0+aWRsZSBldmVudFxuIik7ZmZsdXNoKHN0ZGVy
cik7CiAgICAgZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5wcm9ncmVz
c0V2ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6WWVzKSk7
CiAKKyAgICBmcHJpbnRmKHN0ZGVyciwiQ0hUOiBuZXR3b3JrIHN0YXRlIG5vdyBpZGxlXG4iKTtm
Zmx1c2goc3RkZXJyKTsKICAgICBtX25ldHdvcmtTdGF0ZSA9IE5FVFdPUktfSURMRTsKICAgICBz
Y2hlZHVsZUV2ZW50KGV2ZW50TmFtZXMoKS5zdXNwZW5kRXZlbnQpOwogfQpAQCAtMjkxOCw3ICsy
OTIwLDkgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojpwcm9ncmVzc0V2ZW50VGltZXJGaXJlZCgp
CiAgICAgTW9ub3RvbmljVGltZSB0aW1lID0gTW9ub3RvbmljVGltZTo6bm93KCk7CiAgICAgU2Vj
b25kcyB0aW1lZGVsdGEgPSB0aW1lIC0gbV9wcmV2aW91c1Byb2dyZXNzVGltZTsKIAorICAgIGZw
cmludGYoc3RkZXJyLCJDSFQ6IHByb2dyZXNzVGltZXJGaXJlZDogbmV0d29ya1N0YXRlPSVkXG4i
LG1fbmV0d29ya1N0YXRlKTtmZmx1c2goc3RkZXJyKTsKICAgICBpZiAobV9wbGF5ZXItPmRpZExv
YWRpbmdQcm9ncmVzcygpKSB7CisgICAgICAgIGZwcmludGYoc3RkZXJyLCJDSFQ6IGRpZExvYWRp
bmdQcm9ncmVzcywgc2NoZWR1bGUgYXN5bmMgZXZlbnRcbiIpO2ZmbHVzaChzdGRlcnIpOwogICAg
ICAgICBzY2hlZHVsZUV2ZW50KGV2ZW50TmFtZXMoKS5wcm9ncmVzc0V2ZW50KTsKICAgICAgICAg
bV9wcmV2aW91c1Byb2dyZXNzVGltZSA9IHRpbWU7CiAgICAgICAgIG1fc2VudFN0YWxsZWRFdmVu
dCA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
SW1hZ2VCYWNraW5nU3RvcmUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0lt
YWdlQmFja2luZ1N0b3JlLmgKaW5kZXggYWU2NWNkMDI0ZWQ1OTViMTU1NTI3Y2UwOGY5NDVmMWVl
ZTlmNzdhZi4uZmIwNGFiNTBiM2E0MDY5YWY1YTkzNWE2M2JlNDk2YjQxNDhlYTBjYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCYWNraW5nU3RvcmUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJhY2tpbmdTdG9y
ZS5oCkBAIC01OSwxNSArNTksMTEgQEAgcHVibGljOgogICAgICAgICBpZiAoc2l6ZS5pc0VtcHR5
KCkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICAgICAgVmVjdG9yPGNoYXI+IGJ1
ZmZlcjsKLSAgICAgICAgc2l6ZV90IGJ1ZmZlclNpemUgPSBzaXplLmFyZWEoKS51bnNhZmVHZXQo
KSAqIHNpemVvZihSR0JBMzIpOworICAgICAgICBtX3BpeGVscyA9IFJHQkFQaXhlbEJ1ZmZlclRo
cmVhZFNhZmVSZWZDb3VudGVkOjpjcmVhdGUoc2l6ZSk7CiAKLSAgICAgICAgaWYgKCFidWZmZXIu
dHJ5UmVzZXJ2ZUNhcGFjaXR5KGJ1ZmZlclNpemUpKQorICAgICAgICBpZiAoIW1fcGl4ZWxzLT5p
c1ZhbGlkKCkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICAgICAgYnVmZmVyLmdy
b3coYnVmZmVyU2l6ZSk7Ci0gICAgICAgIG1fcGl4ZWxzID0gU2hhcmVkQnVmZmVyOjpjcmVhdGUo
V1RGTW92ZShidWZmZXIpKTsKLSAgICAgICAgbV9waXhlbHNQdHIgPSByZWludGVycHJldF9jYXN0
PFJHQkEzMio+KGNvbnN0X2Nhc3Q8Y2hhcio+KG1fcGl4ZWxzLT5kYXRhKCkpKTsKICAgICAgICAg
bV9zaXplID0gc2l6ZTsKICAgICAgICAgbV9mcmFtZVJlY3QgPSBJbnRSZWN0KEludFBvaW50KCks
IG1fc2l6ZSk7CiAgICAgICAgIGNsZWFyKCk7CkBAIC04Niw3ICs4Miw3IEBAIHB1YmxpYzoKIAog
ICAgIHZvaWQgY2xlYXIoKQogICAgIHsKLSAgICAgICAgbWVtc2V0KG1fcGl4ZWxzUHRyLCAwLCAo
bV9zaXplLmFyZWEoKSAqIHNpemVvZihSR0JBMzIpKS51bnNhZmVHZXQoKSk7CisgICAgICAgIG1f
cGl4ZWxzLT56ZXJvUGl4ZWxEYXRhKCk7CiAgICAgfQogCiAgICAgdm9pZCBjbGVhclJlY3QoY29u
c3QgSW50UmVjdCYgcmVjdCkKQEAgLTEzMyw3ICsxMjksNyBAQCBwdWJsaWM6CiAgICAgUkdCQTMy
KiBwaXhlbEF0KGludCB4LCBpbnQgeSkgY29uc3QKICAgICB7CiAgICAgICAgIEFTU0VSVChpbkJv
dW5kcyhJbnRQb2ludCh4LCB5KSkpOwotICAgICAgICByZXR1cm4gbV9waXhlbHNQdHIgKyB5ICog
bV9zaXplLndpZHRoKCkgKyB4OworICAgICAgICByZXR1cm4gbV9waXhlbHMtPnBpeGVsQXQoeCwg
eSk7CiAgICAgfQogCiAgICAgdm9pZCBzZXRQaXhlbChSR0JBMzIqIGRlc3QsIHVuc2lnbmVkIHIs
IHVuc2lnbmVkIGcsIHVuc2lnbmVkIGIsIHVuc2lnbmVkIGEpCkBAIC0xODksNiArMTg1LDI3IEBA
IHB1YmxpYzoKICAgICB9CiAKIHByaXZhdGU6CisgICAgY2xhc3MgUkdCQVBpeGVsQnVmZmVyVGhy
ZWFkU2FmZVJlZkNvdW50ZWQgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8UkdCQVBpeGVs
QnVmZmVyVGhyZWFkU2FmZVJlZkNvdW50ZWQ+IHsKKyAgICBwdWJsaWM6CisgICAgICAgIHN0YXRp
YyBSZWY8UkdCQVBpeGVsQnVmZmVyVGhyZWFkU2FmZVJlZkNvdW50ZWQ+IGNyZWF0ZShjb25zdCBJ
bnRTaXplJiBpbml0aWFsU2l6ZSkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBSR0JBUGl4ZWxCdWZm
ZXJUaHJlYWRTYWZlUmVmQ291bnRlZChpbml0aWFsU2l6ZSkpOyB9CisgICAgICAgIHZvaWQgemVy
b1BpeGVsRGF0YSgpIHsgbV9waXhlbHMuZmlsbCgwKTsgfQorICAgICAgICBSR0JBMzIqIHBpeGVs
QXQoaW50IHgsIGludCB5KSBjb25zdCB7IHJldHVybiBjb25zdF9jYXN0PHVuc2lnbmVkKj4oJm1f
cGl4ZWxzLmRhdGEoKVt5ICogbV9zaXplLndpZHRoKCkgKyB4XSk7IH0KKyAgICAgICAgY29uc3Qg
UkdCQTMyKiBkYXRhKCkgY29uc3QgeyByZXR1cm4gbV9waXhlbHMuZGF0YSgpOyB9CisgICAgICAg
IGJvb2wgaXNWYWxpZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNWYWxpZDsgfQorICAgIHByaXZhdGU6
CisgICAgICAgIFJHQkFQaXhlbEJ1ZmZlclRocmVhZFNhZmVSZWZDb3VudGVkKGNvbnN0IEludFNp
emUmIGluaXRpYWxTaXplKQorICAgICAgICAgICAgOiBtX3NpemUoaW5pdGlhbFNpemUpCisgICAg
ICAgIHsKKyAgICAgICAgICAgIHVuc2lnbmVkIGJ1ZmZlclNpemUgPSBpbml0aWFsU2l6ZS5hcmVh
KCkudW5zYWZlR2V0KCk7CisgICAgICAgICAgICBtX2lzVmFsaWQgPSBtX3BpeGVscy50cnlSZXNl
cnZlQ2FwYWNpdHkoYnVmZmVyU2l6ZSk7CisgICAgICAgICAgICBpZiAobV9pc1ZhbGlkKQorICAg
ICAgICAgICAgICAgIG1fcGl4ZWxzLnJlc2l6ZShidWZmZXJTaXplKTsKKyAgICAgICAgfQorICAg
ICAgICBJbnRTaXplIG1fc2l6ZTsKKyAgICAgICAgVmVjdG9yPFJHQkEzMj4gbV9waXhlbHM7Cisg
ICAgICAgIGJvb2wgbV9pc1ZhbGlkIHsgZmFsc2UgfTsKKyAgICB9OworCiAgICAgSW1hZ2VCYWNr
aW5nU3RvcmUoY29uc3QgSW50U2l6ZSYgc2l6ZSwgYm9vbCBwcmVtdWx0aXBseUFscGhhID0gdHJ1
ZSkKICAgICAgICAgOiBtX3ByZW11bHRpcGx5QWxwaGEocHJlbXVsdGlwbHlBbHBoYSkKICAgICB7
CkBAIC0yMDEsOCArMjE4LDYgQEAgcHJpdmF0ZToKICAgICAgICAgLCBtX3ByZW11bHRpcGx5QWxw
aGEob3RoZXIubV9wcmVtdWx0aXBseUFscGhhKQogICAgIHsKICAgICAgICAgQVNTRVJUKCFtX3Np
emUuaXNFbXB0eSgpICYmICFpc092ZXJTaXplKG1fc2l6ZSkpOwotICAgICAgICBtX3BpeGVscyA9
IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKG90aGVyLm1fcGl4ZWxzLT5kYXRhKCksIG90aGVyLm1fcGl4
ZWxzLT5zaXplKCkpOwotICAgICAgICBtX3BpeGVsc1B0ciA9IHJlaW50ZXJwcmV0X2Nhc3Q8UkdC
QTMyKj4oY29uc3RfY2FzdDxjaGFyKj4obV9waXhlbHMtPmRhdGEoKSkpOwogICAgIH0KIAogICAg
IGJvb2wgaW5Cb3VuZHMoY29uc3QgSW50UG9pbnQmIHBvaW50KSBjb25zdApAQCAtMjI2LDggKzI0
MSw4IEBAIHByaXZhdGU6CiAgICAgICAgIHJldHVybiBtYWtlUkdCQShyLCBnLCBiLCBhKTsKICAg
ICB9CiAKLSAgICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBtX3BpeGVsczsKLSAgICBSR0JBMzIqIG1f
cGl4ZWxzUHRyIHsgbnVsbHB0ciB9OworICAgIFJlZlB0cjxSR0JBUGl4ZWxCdWZmZXJUaHJlYWRT
YWZlUmVmQ291bnRlZD4gbV9waXhlbHM7CisKICAgICBJbnRTaXplIG1fc2l6ZTsKICAgICBJbnRS
ZWN0IG1fZnJhbWVSZWN0OyAvLyBUaGlzIHdpbGwgYWx3YXlzIGp1c3QgYmUgdGhlIGVudGlyZSBi
dWZmZXIgZXhjZXB0IGZvciBHSUYgYW5kIFBORyBmcmFtZXMKICAgICBib29sIG1fcHJlbXVsdGlw
bHlBbHBoYSB7IHRydWUgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lt
YWdlLWRlY29kZXJzL2NhaXJvL0ltYWdlQmFja2luZ1N0b3JlQ2Fpcm8uY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvY2Fpcm8vSW1hZ2VCYWNraW5nU3RvcmVDYWly
by5jcHAKaW5kZXggZTgyNzBiMGU5N2YyOGQ1Mjc1M2IzNjcxNDQ2ZmJhZjZiZGRiYjAzZi4uYzVm
ZjhmMzI5NTU5YmU4NTk2YzliNzQ2OWIxODAxODhlMWU0ZjY0ZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvY2Fpcm8vSW1hZ2VCYWNraW5nU3RvcmVD
YWlyby5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvY2Fp
cm8vSW1hZ2VCYWNraW5nU3RvcmVDYWlyby5jcHAKQEAgLTM0LDEwICszNCwxMCBAQCBOYXRpdmVJ
bWFnZVB0ciBJbWFnZUJhY2tpbmdTdG9yZTo6aW1hZ2UoKSBjb25zdAogewogICAgIG1fcGl4ZWxz
LT5yZWYoKTsKICAgICBSZWZQdHI8Y2Fpcm9fc3VyZmFjZV90PiBzdXJmYWNlID0gYWRvcHRSZWYo
Y2Fpcm9faW1hZ2Vfc3VyZmFjZV9jcmVhdGVfZm9yX2RhdGEoCi0gICAgICAgIHJlaW50ZXJwcmV0
X2Nhc3Q8dW5zaWduZWQgY2hhcio+KGNvbnN0X2Nhc3Q8dWludDMyX3QqPihtX3BpeGVsc1B0cikp
LAorICAgICAgICByZWludGVycHJldF9jYXN0PHVuc2lnbmVkIGNoYXIqPihjb25zdF9jYXN0PHVp
bnQzMl90Kj4obV9waXhlbHMtPmRhdGEoKSkpLAogICAgICAgICBDQUlST19GT1JNQVRfQVJHQjMy
LCBzaXplKCkud2lkdGgoKSwgc2l6ZSgpLmhlaWdodCgpLCBzaXplKCkud2lkdGgoKSAqIHNpemVv
Zih1aW50MzJfdCkpKTsKICAgICBzdGF0aWMgY2Fpcm9fdXNlcl9kYXRhX2tleV90IHNfc3VyZmFj
ZURhdGFLZXk7Ci0gICAgY2Fpcm9fc3VyZmFjZV9zZXRfdXNlcl9kYXRhKHN1cmZhY2UuZ2V0KCks
ICZzX3N1cmZhY2VEYXRhS2V5LCBtX3BpeGVscy5nZXQoKSwgW10odm9pZCogZGF0YSkgeyBzdGF0
aWNfY2FzdDxTaGFyZWRCdWZmZXIqPihkYXRhKS0+ZGVyZWYoKTsgfSk7CisgICAgY2Fpcm9fc3Vy
ZmFjZV9zZXRfdXNlcl9kYXRhKHN1cmZhY2UuZ2V0KCksICZzX3N1cmZhY2VEYXRhS2V5LCBtX3Bp
eGVscy5nZXQoKSwgW10odm9pZCogZGF0YSkgeyBzdGF0aWNfY2FzdDxSR0JBUGl4ZWxCdWZmZXJU
aHJlYWRTYWZlUmVmQ291bnRlZCo+KGRhdGEpLT5kZXJlZigpOyB9KTsKIAogICAgIHJldHVybiBz
dXJmYWNlOwogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBl
Y3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucwppbmRl
eCA0ZDIxN2RiYzMzY2M1ODQzMmNhMTAwNjI1ZDU4NWM5Y2MyZjEwZGNlLi5kZDZhMjMwN2NmZjY0
M2IyMTczNmZmMThlMzNmZWNiODc0ZmU2NjFhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsv
VGVzdEV4cGVjdGF0aW9ucwpAQCAtMTIxOSw4ICsxMjE5LDYgQEAgd2Via2l0Lm9yZy9iLzEzMTU0
NiBtZWRpYS90cmFjay90cmFjay1pbi1iYW5kLmh0bWwgWyBDcmFzaCBUaW1lb3V0IEZhaWx1cmUg
XQogCiB3ZWJraXQub3JnL2IvMTYzNzgyIG1lZGlhL3ZpZGVvLXBsYXllZC1yYW5nZXMtMS5odG1s
IFsgQ3Jhc2ggUGFzcyBGYWlsdXJlIF0KIAotd2Via2l0Lm9yZy9iLzE3Mjk1NSBtZWRpYS92aWRl
by1wcmVsb2FkLmh0bWwgWyBDcmFzaCBQYXNzIF0KLQogd2Via2l0Lm9yZy9iLzE3NTU3NSBpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRl
bnQvbWVkaWEtZWxlbWVudHMvcmVhZHktc3RhdGVzL2F1dG9wbGF5LXdpdGgtc2xvdy10ZXh0LXRy
YWNrcy5odG1sIFsgQ3Jhc2ggUGFzcyBdCiAKICMgU2VlIGFsc28gd2Via2l0Lm9yZy9iLzE0MTY5
OQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>382053</attachid>
            <date>2019-10-28 02:16:43 -0700</date>
            <delta_ts>2019-10-28 02:17:31 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-201727-20191028101642.patch</filename>
            <type>text/plain</type>
            <size>9410</size>
            <attacher name="Charlie Turner">cturner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUxNjAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTJjNjY2ODRkZmYzOWU1
YTlmOTY0MDc2NDQxNzcwYmFkMjAyZDdlNS4uOTcyZGIwMjU4ZDA4ZjIwODRhY2RjOWRjZDE1ZTk3
YzliZTRiMjljNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDE5LTEwLTI3ICBDaGFy
bGllIFR1cm5lciAgPGN0dXJuZXJAaWdhbGlhLmNvbT4KKworICAgICAgICBJbWFnZURlY29kZXJz
OiB1c2UgYSB0aHJlYWQgc2FmZSBkYXRhIGJ1ZmZlciBmb3IgQ2Fpcm8gYmFja2luZyBzdG9yZQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAxNzI3CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgQ2FybG9zIEdhcmNpYSBDYW1wb3MuCisKKyAgICAgICAgV2hl
biBhbiBpbWFnZSByZXNvdXJjZSBnZXRzIGNhY2hlZCBhbmQgcmVwbGFjZXMgYW4gZXhpc3Rpbmcg
aW1hZ2UsCisgICAgICAgIENhY2hlZEltYWdlOjpkaWRSZXBsYWNlU2hhcmVkQnVmZmVyQ29udGVu
dHMgaXMgY2FsbGVkLCB3aGljaAorICAgICAgICBkZXN0cm95cyB0aGUgZGVjb2RlciBpbiB0aGUg
Qml0bWFwSW1hZ2UgY2xhc3MuIFRoaXMgZGVjb2RlciBjYW4gYmUKKyAgICAgICAgaW5pdGlhbGl6
ZWQgZnJvbSBhbnkgdGhyZWFkIHZpYQorICAgICAgICBJbWFnZVNvdXJjZTo6ZW5zdXJlRGVjb2Rl
ckF2YWlsYWJsZS4gT24gR1RLL1dQRSwgdGhpcyBkaXNwYXRjaGVzCisgICAgICAgIHRvIGEgU2Nh
bGFibGVJbWFnZURlY29kZXIsIHdoaWNoIGNvbnRhaW5zIGEgdmVjdG9yIG9mCisgICAgICAgIFNj
YWxhYmxlSW1hZ2VEZWNvZGVyRnJhbWUncywgd2hpY2ggY29udGFpbiBJbWFnZUJhY2tpbmdTdG9y
ZSdzLAorICAgICAgICB3aGljaCBmb3IgcmVhc29ucyByZWxhdGVkIHRvIENhaXJvLCBjb250YWlu
IGEgUmVmQ291bnRlZAorICAgICAgICBTaGFyZWRCdWZmZXIgb2YgcGl4ZWwgZGF0YS4KKworICAg
ICAgICBUaGUgcHJvYmxlbSBpcyB0aGF0IHRoZSBDYWNoZWRJbWFnZSdzIGRlY29kZXJzIGNhbiBi
ZQorICAgICAgICBjcmVhdGVkL2Rlc3Ryb3llZCBvbiBkaWZmZXJlbnQgdGhyZWFkcywgc28gYSB0
aHJlYWQtc2FmZSBidWZmZXIKKyAgICAgICAgY2xhc3MgaXMgcmVxdWlyZWQgdG8gaG9sZCB0aGVz
ZSBkYXRhLCBhbmQgcGFzcyB0aGVtIHNhZmVseSBpbnRvCisgICAgICAgIGNhaXJvX2ltYWdlX3N1
cmZhY2VfY3JlYXRlX2Zvcl9kYXRhIHJhdGhlciB0aGFuIGEgU2hhcmVkQnVmZmVyCisgICAgICAg
IHdoaWNoIG11c3QgYmUgY3JlYXRlZC9kZXN0cm95ZWQgb24gdGhlIG1haW4tdGhyZWFkLgorCisg
ICAgICAgIENvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9JbWFnZUJhY2tpbmdTdG9yZS5oOiBDcmVhdGUgYSBzbWFsbAorICAgICAgICB0aHJl
YWQtc2FmZSB1dGlsaXR5IGNsYXNzIHRvIGhvbGQgdGhlIFJHQkEgcGl4ZWwgZGF0YS4KKyAgICAg
ICAgKFdlYkNvcmU6OkltYWdlQmFja2luZ1N0b3JlOjpzZXRTaXplKToKKyAgICAgICAgKFdlYkNv
cmU6OkltYWdlQmFja2luZ1N0b3JlOjpjbGVhcik6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJh
Y2tpbmdTdG9yZTo6cGl4ZWxBdCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJhY2tp
bmdTdG9yZTo6VGhyZWFkU2FmZVJHQkFQaXhlbEJ1ZmZlcjo6Y3JlYXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OkltYWdlQmFja2luZ1N0b3JlOjpUaHJlYWRTYWZlUkdCQVBpeGVsQnVmZmVyOjp6ZXJv
UGl4ZWxEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlQmFja2luZ1N0b3JlOjpUaHJlYWRT
YWZlUkdCQVBpeGVsQnVmZmVyOjpwaXhlbEF0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Oklt
YWdlQmFja2luZ1N0b3JlOjpUaHJlYWRTYWZlUkdCQVBpeGVsQnVmZmVyOjpkYXRhIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OkltYWdlQmFja2luZ1N0b3JlOjpUaHJlYWRTYWZlUkdCQVBpeGVs
QnVmZmVyOjppc1ZhbGlkIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlQmFja2luZ1N0
b3JlOjpUaHJlYWRTYWZlUkdCQVBpeGVsQnVmZmVyOjpSR0JBUGl4ZWxCdWZmZXJUaHJlYWRTYWZl
UmVmQ291bnRlZCk6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJhY2tpbmdTdG9yZTo6SW1hZ2VC
YWNraW5nU3RvcmUpOgorICAgICAgICAqIHBsYXRmb3JtL2ltYWdlLWRlY29kZXJzL2NhaXJvL0lt
YWdlQmFja2luZ1N0b3JlQ2Fpcm8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCYWNraW5n
U3RvcmU6OmltYWdlIGNvbnN0KToKKwogMjAxOS0xMC0yNCAgUnlvc3VrZSBOaXdhICA8cm5pd2FA
d2Via2l0Lm9yZz4KIAogICAgICAgICBBZGQgZXhjbHVzaW9uIHJ1bGVzIHRvIHRleHQgbWFuaXB1
bGF0aW9uIFNQSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKaW5kZXgg
NjVmY2U0NmVkMGViYTBjODNiMGFmNzRhNGUyZjk3YTg5NjE2YjgxNC4uZDNhOTZkNTZiY2Q5YWM3
MjM0ZjkwMTEwZmEyMmJjMDM1NzRhNmU5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTWVkaWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRp
YUVsZW1lbnQuY3BwCkBAIC0yMzgzLDggKzIzODMsMTAgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50
OjpjaGFuZ2VOZXR3b3JrU3RhdGVGcm9tTG9hZGluZ1RvSWRsZSgpCiAgICAgLy8gYXN5bmMgcXVl
dWUgdG8gZGlzcGF0Y2ggdGhpcyB0byBKUyBhZnRlciB3ZSBzZXQgbV9uZXR3b3JrU3RhdGUKICAg
ICAvLyB0byBJRExFIGJlbG93LCB3aGljaCBicmVha3MgdGhlIGludmFyaWFudCBvZiBvbnByb2dy
ZXNzCiAgICAgLy8gaGFwcGVuaW5nIGR1cmluZyBORVRXT1JLX0xPQURJTkcuCisgICAgZnByaW50
ZihzdGRlcnIsIkNIVDogc2NoZWR1bGUgbG9hZGluZy0+aWRsZSBldmVudFxuIik7ZmZsdXNoKHN0
ZGVycik7CiAgICAgZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5wcm9n
cmVzc0V2ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6WWVz
KSk7CiAKKyAgICBmcHJpbnRmKHN0ZGVyciwiQ0hUOiBuZXR3b3JrIHN0YXRlIG5vdyBpZGxlXG4i
KTtmZmx1c2goc3RkZXJyKTsKICAgICBtX25ldHdvcmtTdGF0ZSA9IE5FVFdPUktfSURMRTsKICAg
ICBzY2hlZHVsZUV2ZW50KGV2ZW50TmFtZXMoKS5zdXNwZW5kRXZlbnQpOwogfQpAQCAtMjkxOCw3
ICsyOTIwLDkgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojpwcm9ncmVzc0V2ZW50VGltZXJGaXJl
ZCgpCiAgICAgTW9ub3RvbmljVGltZSB0aW1lID0gTW9ub3RvbmljVGltZTo6bm93KCk7CiAgICAg
U2Vjb25kcyB0aW1lZGVsdGEgPSB0aW1lIC0gbV9wcmV2aW91c1Byb2dyZXNzVGltZTsKIAorICAg
IGZwcmludGYoc3RkZXJyLCJDSFQ6IHByb2dyZXNzVGltZXJGaXJlZDogbmV0d29ya1N0YXRlPSVk
XG4iLG1fbmV0d29ya1N0YXRlKTtmZmx1c2goc3RkZXJyKTsKICAgICBpZiAobV9wbGF5ZXItPmRp
ZExvYWRpbmdQcm9ncmVzcygpKSB7CisgICAgICAgIGZwcmludGYoc3RkZXJyLCJDSFQ6IGRpZExv
YWRpbmdQcm9ncmVzcywgc2NoZWR1bGUgYXN5bmMgZXZlbnRcbiIpO2ZmbHVzaChzdGRlcnIpOwog
ICAgICAgICBzY2hlZHVsZUV2ZW50KGV2ZW50TmFtZXMoKS5wcm9ncmVzc0V2ZW50KTsKICAgICAg
ICAgbV9wcmV2aW91c1Byb2dyZXNzVGltZSA9IHRpbWU7CiAgICAgICAgIG1fc2VudFN0YWxsZWRF
dmVudCA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvSW1hZ2VCYWNraW5nU3RvcmUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0ltYWdlQmFja2luZ1N0b3JlLmgKaW5kZXggYWU2NWNkMDI0ZWQ1OTViMTU1NTI3Y2UwOGY5NDVm
MWVlZTlmNzdhZi4uZmIwNGFiNTBiM2E0MDY5YWY1YTkzNWE2M2JlNDk2YjQxNDhlYTBjYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCYWNraW5nU3Rv
cmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJhY2tpbmdT
dG9yZS5oCkBAIC01OSwxNSArNTksMTEgQEAgcHVibGljOgogICAgICAgICBpZiAoc2l6ZS5pc0Vt
cHR5KCkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICAgICAgVmVjdG9yPGNoYXI+
IGJ1ZmZlcjsKLSAgICAgICAgc2l6ZV90IGJ1ZmZlclNpemUgPSBzaXplLmFyZWEoKS51bnNhZmVH
ZXQoKSAqIHNpemVvZihSR0JBMzIpOworICAgICAgICBtX3BpeGVscyA9IFJHQkFQaXhlbEJ1ZmZl
clRocmVhZFNhZmVSZWZDb3VudGVkOjpjcmVhdGUoc2l6ZSk7CiAKLSAgICAgICAgaWYgKCFidWZm
ZXIudHJ5UmVzZXJ2ZUNhcGFjaXR5KGJ1ZmZlclNpemUpKQorICAgICAgICBpZiAoIW1fcGl4ZWxz
LT5pc1ZhbGlkKCkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICAgICAgYnVmZmVy
Lmdyb3coYnVmZmVyU2l6ZSk7Ci0gICAgICAgIG1fcGl4ZWxzID0gU2hhcmVkQnVmZmVyOjpjcmVh
dGUoV1RGTW92ZShidWZmZXIpKTsKLSAgICAgICAgbV9waXhlbHNQdHIgPSByZWludGVycHJldF9j
YXN0PFJHQkEzMio+KGNvbnN0X2Nhc3Q8Y2hhcio+KG1fcGl4ZWxzLT5kYXRhKCkpKTsKICAgICAg
ICAgbV9zaXplID0gc2l6ZTsKICAgICAgICAgbV9mcmFtZVJlY3QgPSBJbnRSZWN0KEludFBvaW50
KCksIG1fc2l6ZSk7CiAgICAgICAgIGNsZWFyKCk7CkBAIC04Niw3ICs4Miw3IEBAIHB1YmxpYzoK
IAogICAgIHZvaWQgY2xlYXIoKQogICAgIHsKLSAgICAgICAgbWVtc2V0KG1fcGl4ZWxzUHRyLCAw
LCAobV9zaXplLmFyZWEoKSAqIHNpemVvZihSR0JBMzIpKS51bnNhZmVHZXQoKSk7CisgICAgICAg
IG1fcGl4ZWxzLT56ZXJvUGl4ZWxEYXRhKCk7CiAgICAgfQogCiAgICAgdm9pZCBjbGVhclJlY3Qo
Y29uc3QgSW50UmVjdCYgcmVjdCkKQEAgLTEzMyw3ICsxMjksNyBAQCBwdWJsaWM6CiAgICAgUkdC
QTMyKiBwaXhlbEF0KGludCB4LCBpbnQgeSkgY29uc3QKICAgICB7CiAgICAgICAgIEFTU0VSVChp
bkJvdW5kcyhJbnRQb2ludCh4LCB5KSkpOwotICAgICAgICByZXR1cm4gbV9waXhlbHNQdHIgKyB5
ICogbV9zaXplLndpZHRoKCkgKyB4OworICAgICAgICByZXR1cm4gbV9waXhlbHMtPnBpeGVsQXQo
eCwgeSk7CiAgICAgfQogCiAgICAgdm9pZCBzZXRQaXhlbChSR0JBMzIqIGRlc3QsIHVuc2lnbmVk
IHIsIHVuc2lnbmVkIGcsIHVuc2lnbmVkIGIsIHVuc2lnbmVkIGEpCkBAIC0xODksNiArMTg1LDI3
IEBAIHB1YmxpYzoKICAgICB9CiAKIHByaXZhdGU6CisgICAgY2xhc3MgUkdCQVBpeGVsQnVmZmVy
VGhyZWFkU2FmZVJlZkNvdW50ZWQgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8UkdCQVBp
eGVsQnVmZmVyVGhyZWFkU2FmZVJlZkNvdW50ZWQ+IHsKKyAgICBwdWJsaWM6CisgICAgICAgIHN0
YXRpYyBSZWY8UkdCQVBpeGVsQnVmZmVyVGhyZWFkU2FmZVJlZkNvdW50ZWQ+IGNyZWF0ZShjb25z
dCBJbnRTaXplJiBpbml0aWFsU2l6ZSkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBSR0JBUGl4ZWxC
dWZmZXJUaHJlYWRTYWZlUmVmQ291bnRlZChpbml0aWFsU2l6ZSkpOyB9CisgICAgICAgIHZvaWQg
emVyb1BpeGVsRGF0YSgpIHsgbV9waXhlbHMuZmlsbCgwKTsgfQorICAgICAgICBSR0JBMzIqIHBp
eGVsQXQoaW50IHgsIGludCB5KSBjb25zdCB7IHJldHVybiBjb25zdF9jYXN0PHVuc2lnbmVkKj4o
Jm1fcGl4ZWxzLmRhdGEoKVt5ICogbV9zaXplLndpZHRoKCkgKyB4XSk7IH0KKyAgICAgICAgY29u
c3QgUkdCQTMyKiBkYXRhKCkgY29uc3QgeyByZXR1cm4gbV9waXhlbHMuZGF0YSgpOyB9CisgICAg
ICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNWYWxpZDsgfQorICAgIHByaXZh
dGU6CisgICAgICAgIFJHQkFQaXhlbEJ1ZmZlclRocmVhZFNhZmVSZWZDb3VudGVkKGNvbnN0IElu
dFNpemUmIGluaXRpYWxTaXplKQorICAgICAgICAgICAgOiBtX3NpemUoaW5pdGlhbFNpemUpCisg
ICAgICAgIHsKKyAgICAgICAgICAgIHVuc2lnbmVkIGJ1ZmZlclNpemUgPSBpbml0aWFsU2l6ZS5h
cmVhKCkudW5zYWZlR2V0KCk7CisgICAgICAgICAgICBtX2lzVmFsaWQgPSBtX3BpeGVscy50cnlS
ZXNlcnZlQ2FwYWNpdHkoYnVmZmVyU2l6ZSk7CisgICAgICAgICAgICBpZiAobV9pc1ZhbGlkKQor
ICAgICAgICAgICAgICAgIG1fcGl4ZWxzLnJlc2l6ZShidWZmZXJTaXplKTsKKyAgICAgICAgfQor
ICAgICAgICBJbnRTaXplIG1fc2l6ZTsKKyAgICAgICAgVmVjdG9yPFJHQkEzMj4gbV9waXhlbHM7
CisgICAgICAgIGJvb2wgbV9pc1ZhbGlkIHsgZmFsc2UgfTsKKyAgICB9OworCiAgICAgSW1hZ2VC
YWNraW5nU3RvcmUoY29uc3QgSW50U2l6ZSYgc2l6ZSwgYm9vbCBwcmVtdWx0aXBseUFscGhhID0g
dHJ1ZSkKICAgICAgICAgOiBtX3ByZW11bHRpcGx5QWxwaGEocHJlbXVsdGlwbHlBbHBoYSkKICAg
ICB7CkBAIC0yMDEsOCArMjE4LDYgQEAgcHJpdmF0ZToKICAgICAgICAgLCBtX3ByZW11bHRpcGx5
QWxwaGEob3RoZXIubV9wcmVtdWx0aXBseUFscGhhKQogICAgIHsKICAgICAgICAgQVNTRVJUKCFt
X3NpemUuaXNFbXB0eSgpICYmICFpc092ZXJTaXplKG1fc2l6ZSkpOwotICAgICAgICBtX3BpeGVs
cyA9IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKG90aGVyLm1fcGl4ZWxzLT5kYXRhKCksIG90aGVyLm1f
cGl4ZWxzLT5zaXplKCkpOwotICAgICAgICBtX3BpeGVsc1B0ciA9IHJlaW50ZXJwcmV0X2Nhc3Q8
UkdCQTMyKj4oY29uc3RfY2FzdDxjaGFyKj4obV9waXhlbHMtPmRhdGEoKSkpOwogICAgIH0KIAog
ICAgIGJvb2wgaW5Cb3VuZHMoY29uc3QgSW50UG9pbnQmIHBvaW50KSBjb25zdApAQCAtMjI2LDgg
KzI0MSw4IEBAIHByaXZhdGU6CiAgICAgICAgIHJldHVybiBtYWtlUkdCQShyLCBnLCBiLCBhKTsK
ICAgICB9CiAKLSAgICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBtX3BpeGVsczsKLSAgICBSR0JBMzIq
IG1fcGl4ZWxzUHRyIHsgbnVsbHB0ciB9OworICAgIFJlZlB0cjxSR0JBUGl4ZWxCdWZmZXJUaHJl
YWRTYWZlUmVmQ291bnRlZD4gbV9waXhlbHM7CisKICAgICBJbnRTaXplIG1fc2l6ZTsKICAgICBJ
bnRSZWN0IG1fZnJhbWVSZWN0OyAvLyBUaGlzIHdpbGwgYWx3YXlzIGp1c3QgYmUgdGhlIGVudGly
ZSBidWZmZXIgZXhjZXB0IGZvciBHSUYgYW5kIFBORyBmcmFtZXMKICAgICBib29sIG1fcHJlbXVs
dGlwbHlBbHBoYSB7IHRydWUgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2ltYWdlLWRlY29kZXJzL2NhaXJvL0ltYWdlQmFja2luZ1N0b3JlQ2Fpcm8uY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvY2Fpcm8vSW1hZ2VCYWNraW5nU3RvcmVD
YWlyby5jcHAKaW5kZXggZTgyNzBiMGU5N2YyOGQ1Mjc1M2IzNjcxNDQ2ZmJhZjZiZGRiYjAzZi4u
YzVmZjhmMzI5NTU5YmU4NTk2YzliNzQ2OWIxODAxODhlMWU0ZjY0ZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvY2Fpcm8vSW1hZ2VCYWNraW5nU3Rv
cmVDYWlyby5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMv
Y2Fpcm8vSW1hZ2VCYWNraW5nU3RvcmVDYWlyby5jcHAKQEAgLTM0LDEwICszNCwxMCBAQCBOYXRp
dmVJbWFnZVB0ciBJbWFnZUJhY2tpbmdTdG9yZTo6aW1hZ2UoKSBjb25zdAogewogICAgIG1fcGl4
ZWxzLT5yZWYoKTsKICAgICBSZWZQdHI8Y2Fpcm9fc3VyZmFjZV90PiBzdXJmYWNlID0gYWRvcHRS
ZWYoY2Fpcm9faW1hZ2Vfc3VyZmFjZV9jcmVhdGVfZm9yX2RhdGEoCi0gICAgICAgIHJlaW50ZXJw
cmV0X2Nhc3Q8dW5zaWduZWQgY2hhcio+KGNvbnN0X2Nhc3Q8dWludDMyX3QqPihtX3BpeGVsc1B0
cikpLAorICAgICAgICByZWludGVycHJldF9jYXN0PHVuc2lnbmVkIGNoYXIqPihjb25zdF9jYXN0
PHVpbnQzMl90Kj4obV9waXhlbHMtPmRhdGEoKSkpLAogICAgICAgICBDQUlST19GT1JNQVRfQVJH
QjMyLCBzaXplKCkud2lkdGgoKSwgc2l6ZSgpLmhlaWdodCgpLCBzaXplKCkud2lkdGgoKSAqIHNp
emVvZih1aW50MzJfdCkpKTsKICAgICBzdGF0aWMgY2Fpcm9fdXNlcl9kYXRhX2tleV90IHNfc3Vy
ZmFjZURhdGFLZXk7Ci0gICAgY2Fpcm9fc3VyZmFjZV9zZXRfdXNlcl9kYXRhKHN1cmZhY2UuZ2V0
KCksICZzX3N1cmZhY2VEYXRhS2V5LCBtX3BpeGVscy5nZXQoKSwgW10odm9pZCogZGF0YSkgeyBz
dGF0aWNfY2FzdDxTaGFyZWRCdWZmZXIqPihkYXRhKS0+ZGVyZWYoKTsgfSk7CisgICAgY2Fpcm9f
c3VyZmFjZV9zZXRfdXNlcl9kYXRhKHN1cmZhY2UuZ2V0KCksICZzX3N1cmZhY2VEYXRhS2V5LCBt
X3BpeGVscy5nZXQoKSwgW10odm9pZCogZGF0YSkgeyBzdGF0aWNfY2FzdDxSR0JBUGl4ZWxCdWZm
ZXJUaHJlYWRTYWZlUmVmQ291bnRlZCo+KGRhdGEpLT5kZXJlZigpOyB9KTsKIAogICAgIHJldHVy
biBzdXJmYWNlOwogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RF
eHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucwpp
bmRleCA0ZDIxN2RiYzMzY2M1ODQzMmNhMTAwNjI1ZDU4NWM5Y2MyZjEwZGNlLi5kZDZhMjMwN2Nm
ZjY0M2IyMTczNmZmMThlMzNmZWNiODc0ZmU2NjFhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9n
dGsvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMTIxOSw4ICsxMjE5LDYgQEAgd2Via2l0Lm9yZy9iLzEz
MTU0NiBtZWRpYS90cmFjay90cmFjay1pbi1iYW5kLmh0bWwgWyBDcmFzaCBUaW1lb3V0IEZhaWx1
cmUgXQogCiB3ZWJraXQub3JnL2IvMTYzNzgyIG1lZGlhL3ZpZGVvLXBsYXllZC1yYW5nZXMtMS5o
dG1sIFsgQ3Jhc2ggUGFzcyBGYWlsdXJlIF0KIAotd2Via2l0Lm9yZy9iLzE3Mjk1NSBtZWRpYS92
aWRlby1wcmVsb2FkLmh0bWwgWyBDcmFzaCBQYXNzIF0KLQogd2Via2l0Lm9yZy9iLzE3NTU3NSBp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNv
bnRlbnQvbWVkaWEtZWxlbWVudHMvcmVhZHktc3RhdGVzL2F1dG9wbGF5LXdpdGgtc2xvdy10ZXh0
LXRyYWNrcy5odG1sIFsgQ3Jhc2ggUGFzcyBdCiAKICMgU2VlIGFsc28gd2Via2l0Lm9yZy9iLzE0
MTY5OQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>382054</attachid>
            <date>2019-10-28 02:17:35 -0700</date>
            <delta_ts>2019-10-29 03:38:02 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-201727-20191028101734.patch</filename>
            <type>text/plain</type>
            <size>7250</size>
            <attacher name="Charlie Turner">cturner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUxNjAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTJjNjY2ODRkZmYzOWU1
YTlmOTY0MDc2NDQxNzcwYmFkMjAyZDdlNS4uOTcyZGIwMjU4ZDA4ZjIwODRhY2RjOWRjZDE1ZTk3
YzliZTRiMjljNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDE5LTEwLTI3ICBDaGFy
bGllIFR1cm5lciAgPGN0dXJuZXJAaWdhbGlhLmNvbT4KKworICAgICAgICBJbWFnZURlY29kZXJz
OiB1c2UgYSB0aHJlYWQgc2FmZSBkYXRhIGJ1ZmZlciBmb3IgQ2Fpcm8gYmFja2luZyBzdG9yZQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAxNzI3CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgQ2FybG9zIEdhcmNpYSBDYW1wb3MuCisKKyAgICAgICAgV2hl
biBhbiBpbWFnZSByZXNvdXJjZSBnZXRzIGNhY2hlZCBhbmQgcmVwbGFjZXMgYW4gZXhpc3Rpbmcg
aW1hZ2UsCisgICAgICAgIENhY2hlZEltYWdlOjpkaWRSZXBsYWNlU2hhcmVkQnVmZmVyQ29udGVu
dHMgaXMgY2FsbGVkLCB3aGljaAorICAgICAgICBkZXN0cm95cyB0aGUgZGVjb2RlciBpbiB0aGUg
Qml0bWFwSW1hZ2UgY2xhc3MuIFRoaXMgZGVjb2RlciBjYW4gYmUKKyAgICAgICAgaW5pdGlhbGl6
ZWQgZnJvbSBhbnkgdGhyZWFkIHZpYQorICAgICAgICBJbWFnZVNvdXJjZTo6ZW5zdXJlRGVjb2Rl
ckF2YWlsYWJsZS4gT24gR1RLL1dQRSwgdGhpcyBkaXNwYXRjaGVzCisgICAgICAgIHRvIGEgU2Nh
bGFibGVJbWFnZURlY29kZXIsIHdoaWNoIGNvbnRhaW5zIGEgdmVjdG9yIG9mCisgICAgICAgIFNj
YWxhYmxlSW1hZ2VEZWNvZGVyRnJhbWUncywgd2hpY2ggY29udGFpbiBJbWFnZUJhY2tpbmdTdG9y
ZSdzLAorICAgICAgICB3aGljaCBmb3IgcmVhc29ucyByZWxhdGVkIHRvIENhaXJvLCBjb250YWlu
IGEgUmVmQ291bnRlZAorICAgICAgICBTaGFyZWRCdWZmZXIgb2YgcGl4ZWwgZGF0YS4KKworICAg
ICAgICBUaGUgcHJvYmxlbSBpcyB0aGF0IHRoZSBDYWNoZWRJbWFnZSdzIGRlY29kZXJzIGNhbiBi
ZQorICAgICAgICBjcmVhdGVkL2Rlc3Ryb3llZCBvbiBkaWZmZXJlbnQgdGhyZWFkcywgc28gYSB0
aHJlYWQtc2FmZSBidWZmZXIKKyAgICAgICAgY2xhc3MgaXMgcmVxdWlyZWQgdG8gaG9sZCB0aGVz
ZSBkYXRhLCBhbmQgcGFzcyB0aGVtIHNhZmVseSBpbnRvCisgICAgICAgIGNhaXJvX2ltYWdlX3N1
cmZhY2VfY3JlYXRlX2Zvcl9kYXRhIHJhdGhlciB0aGFuIGEgU2hhcmVkQnVmZmVyCisgICAgICAg
IHdoaWNoIG11c3QgYmUgY3JlYXRlZC9kZXN0cm95ZWQgb24gdGhlIG1haW4tdGhyZWFkLgorCisg
ICAgICAgIENvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9JbWFnZUJhY2tpbmdTdG9yZS5oOiBDcmVhdGUgYSBzbWFsbAorICAgICAgICB0aHJl
YWQtc2FmZSB1dGlsaXR5IGNsYXNzIHRvIGhvbGQgdGhlIFJHQkEgcGl4ZWwgZGF0YS4KKyAgICAg
ICAgKFdlYkNvcmU6OkltYWdlQmFja2luZ1N0b3JlOjpzZXRTaXplKToKKyAgICAgICAgKFdlYkNv
cmU6OkltYWdlQmFja2luZ1N0b3JlOjpjbGVhcik6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJh
Y2tpbmdTdG9yZTo6cGl4ZWxBdCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJhY2tp
bmdTdG9yZTo6VGhyZWFkU2FmZVJHQkFQaXhlbEJ1ZmZlcjo6Y3JlYXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OkltYWdlQmFja2luZ1N0b3JlOjpUaHJlYWRTYWZlUkdCQVBpeGVsQnVmZmVyOjp6ZXJv
UGl4ZWxEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlQmFja2luZ1N0b3JlOjpUaHJlYWRT
YWZlUkdCQVBpeGVsQnVmZmVyOjpwaXhlbEF0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Oklt
YWdlQmFja2luZ1N0b3JlOjpUaHJlYWRTYWZlUkdCQVBpeGVsQnVmZmVyOjpkYXRhIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OkltYWdlQmFja2luZ1N0b3JlOjpUaHJlYWRTYWZlUkdCQVBpeGVs
QnVmZmVyOjppc1ZhbGlkIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlQmFja2luZ1N0
b3JlOjpUaHJlYWRTYWZlUkdCQVBpeGVsQnVmZmVyOjpSR0JBUGl4ZWxCdWZmZXJUaHJlYWRTYWZl
UmVmQ291bnRlZCk6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJhY2tpbmdTdG9yZTo6SW1hZ2VC
YWNraW5nU3RvcmUpOgorICAgICAgICAqIHBsYXRmb3JtL2ltYWdlLWRlY29kZXJzL2NhaXJvL0lt
YWdlQmFja2luZ1N0b3JlQ2Fpcm8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCYWNraW5n
U3RvcmU6OmltYWdlIGNvbnN0KToKKwogMjAxOS0xMC0yNCAgUnlvc3VrZSBOaXdhICA8cm5pd2FA
d2Via2l0Lm9yZz4KIAogICAgICAgICBBZGQgZXhjbHVzaW9uIHJ1bGVzIHRvIHRleHQgbWFuaXB1
bGF0aW9uIFNQSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
SW1hZ2VCYWNraW5nU3RvcmUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0lt
YWdlQmFja2luZ1N0b3JlLmgKaW5kZXggYWU2NWNkMDI0ZWQ1OTViMTU1NTI3Y2UwOGY5NDVmMWVl
ZTlmNzdhZi4uZmIwNGFiNTBiM2E0MDY5YWY1YTkzNWE2M2JlNDk2YjQxNDhlYTBjYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCYWNraW5nU3RvcmUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJhY2tpbmdTdG9y
ZS5oCkBAIC01OSwxNSArNTksMTEgQEAgcHVibGljOgogICAgICAgICBpZiAoc2l6ZS5pc0VtcHR5
KCkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICAgICAgVmVjdG9yPGNoYXI+IGJ1
ZmZlcjsKLSAgICAgICAgc2l6ZV90IGJ1ZmZlclNpemUgPSBzaXplLmFyZWEoKS51bnNhZmVHZXQo
KSAqIHNpemVvZihSR0JBMzIpOworICAgICAgICBtX3BpeGVscyA9IFJHQkFQaXhlbEJ1ZmZlclRo
cmVhZFNhZmVSZWZDb3VudGVkOjpjcmVhdGUoc2l6ZSk7CiAKLSAgICAgICAgaWYgKCFidWZmZXIu
dHJ5UmVzZXJ2ZUNhcGFjaXR5KGJ1ZmZlclNpemUpKQorICAgICAgICBpZiAoIW1fcGl4ZWxzLT5p
c1ZhbGlkKCkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICAgICAgYnVmZmVyLmdy
b3coYnVmZmVyU2l6ZSk7Ci0gICAgICAgIG1fcGl4ZWxzID0gU2hhcmVkQnVmZmVyOjpjcmVhdGUo
V1RGTW92ZShidWZmZXIpKTsKLSAgICAgICAgbV9waXhlbHNQdHIgPSByZWludGVycHJldF9jYXN0
PFJHQkEzMio+KGNvbnN0X2Nhc3Q8Y2hhcio+KG1fcGl4ZWxzLT5kYXRhKCkpKTsKICAgICAgICAg
bV9zaXplID0gc2l6ZTsKICAgICAgICAgbV9mcmFtZVJlY3QgPSBJbnRSZWN0KEludFBvaW50KCks
IG1fc2l6ZSk7CiAgICAgICAgIGNsZWFyKCk7CkBAIC04Niw3ICs4Miw3IEBAIHB1YmxpYzoKIAog
ICAgIHZvaWQgY2xlYXIoKQogICAgIHsKLSAgICAgICAgbWVtc2V0KG1fcGl4ZWxzUHRyLCAwLCAo
bV9zaXplLmFyZWEoKSAqIHNpemVvZihSR0JBMzIpKS51bnNhZmVHZXQoKSk7CisgICAgICAgIG1f
cGl4ZWxzLT56ZXJvUGl4ZWxEYXRhKCk7CiAgICAgfQogCiAgICAgdm9pZCBjbGVhclJlY3QoY29u
c3QgSW50UmVjdCYgcmVjdCkKQEAgLTEzMyw3ICsxMjksNyBAQCBwdWJsaWM6CiAgICAgUkdCQTMy
KiBwaXhlbEF0KGludCB4LCBpbnQgeSkgY29uc3QKICAgICB7CiAgICAgICAgIEFTU0VSVChpbkJv
dW5kcyhJbnRQb2ludCh4LCB5KSkpOwotICAgICAgICByZXR1cm4gbV9waXhlbHNQdHIgKyB5ICog
bV9zaXplLndpZHRoKCkgKyB4OworICAgICAgICByZXR1cm4gbV9waXhlbHMtPnBpeGVsQXQoeCwg
eSk7CiAgICAgfQogCiAgICAgdm9pZCBzZXRQaXhlbChSR0JBMzIqIGRlc3QsIHVuc2lnbmVkIHIs
IHVuc2lnbmVkIGcsIHVuc2lnbmVkIGIsIHVuc2lnbmVkIGEpCkBAIC0xODksNiArMTg1LDI3IEBA
IHB1YmxpYzoKICAgICB9CiAKIHByaXZhdGU6CisgICAgY2xhc3MgUkdCQVBpeGVsQnVmZmVyVGhy
ZWFkU2FmZVJlZkNvdW50ZWQgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8UkdCQVBpeGVs
QnVmZmVyVGhyZWFkU2FmZVJlZkNvdW50ZWQ+IHsKKyAgICBwdWJsaWM6CisgICAgICAgIHN0YXRp
YyBSZWY8UkdCQVBpeGVsQnVmZmVyVGhyZWFkU2FmZVJlZkNvdW50ZWQ+IGNyZWF0ZShjb25zdCBJ
bnRTaXplJiBpbml0aWFsU2l6ZSkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBSR0JBUGl4ZWxCdWZm
ZXJUaHJlYWRTYWZlUmVmQ291bnRlZChpbml0aWFsU2l6ZSkpOyB9CisgICAgICAgIHZvaWQgemVy
b1BpeGVsRGF0YSgpIHsgbV9waXhlbHMuZmlsbCgwKTsgfQorICAgICAgICBSR0JBMzIqIHBpeGVs
QXQoaW50IHgsIGludCB5KSBjb25zdCB7IHJldHVybiBjb25zdF9jYXN0PHVuc2lnbmVkKj4oJm1f
cGl4ZWxzLmRhdGEoKVt5ICogbV9zaXplLndpZHRoKCkgKyB4XSk7IH0KKyAgICAgICAgY29uc3Qg
UkdCQTMyKiBkYXRhKCkgY29uc3QgeyByZXR1cm4gbV9waXhlbHMuZGF0YSgpOyB9CisgICAgICAg
IGJvb2wgaXNWYWxpZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNWYWxpZDsgfQorICAgIHByaXZhdGU6
CisgICAgICAgIFJHQkFQaXhlbEJ1ZmZlclRocmVhZFNhZmVSZWZDb3VudGVkKGNvbnN0IEludFNp
emUmIGluaXRpYWxTaXplKQorICAgICAgICAgICAgOiBtX3NpemUoaW5pdGlhbFNpemUpCisgICAg
ICAgIHsKKyAgICAgICAgICAgIHVuc2lnbmVkIGJ1ZmZlclNpemUgPSBpbml0aWFsU2l6ZS5hcmVh
KCkudW5zYWZlR2V0KCk7CisgICAgICAgICAgICBtX2lzVmFsaWQgPSBtX3BpeGVscy50cnlSZXNl
cnZlQ2FwYWNpdHkoYnVmZmVyU2l6ZSk7CisgICAgICAgICAgICBpZiAobV9pc1ZhbGlkKQorICAg
ICAgICAgICAgICAgIG1fcGl4ZWxzLnJlc2l6ZShidWZmZXJTaXplKTsKKyAgICAgICAgfQorICAg
ICAgICBJbnRTaXplIG1fc2l6ZTsKKyAgICAgICAgVmVjdG9yPFJHQkEzMj4gbV9waXhlbHM7Cisg
ICAgICAgIGJvb2wgbV9pc1ZhbGlkIHsgZmFsc2UgfTsKKyAgICB9OworCiAgICAgSW1hZ2VCYWNr
aW5nU3RvcmUoY29uc3QgSW50U2l6ZSYgc2l6ZSwgYm9vbCBwcmVtdWx0aXBseUFscGhhID0gdHJ1
ZSkKICAgICAgICAgOiBtX3ByZW11bHRpcGx5QWxwaGEocHJlbXVsdGlwbHlBbHBoYSkKICAgICB7
CkBAIC0yMDEsOCArMjE4LDYgQEAgcHJpdmF0ZToKICAgICAgICAgLCBtX3ByZW11bHRpcGx5QWxw
aGEob3RoZXIubV9wcmVtdWx0aXBseUFscGhhKQogICAgIHsKICAgICAgICAgQVNTRVJUKCFtX3Np
emUuaXNFbXB0eSgpICYmICFpc092ZXJTaXplKG1fc2l6ZSkpOwotICAgICAgICBtX3BpeGVscyA9
IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKG90aGVyLm1fcGl4ZWxzLT5kYXRhKCksIG90aGVyLm1fcGl4
ZWxzLT5zaXplKCkpOwotICAgICAgICBtX3BpeGVsc1B0ciA9IHJlaW50ZXJwcmV0X2Nhc3Q8UkdC
QTMyKj4oY29uc3RfY2FzdDxjaGFyKj4obV9waXhlbHMtPmRhdGEoKSkpOwogICAgIH0KIAogICAg
IGJvb2wgaW5Cb3VuZHMoY29uc3QgSW50UG9pbnQmIHBvaW50KSBjb25zdApAQCAtMjI2LDggKzI0
MSw4IEBAIHByaXZhdGU6CiAgICAgICAgIHJldHVybiBtYWtlUkdCQShyLCBnLCBiLCBhKTsKICAg
ICB9CiAKLSAgICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBtX3BpeGVsczsKLSAgICBSR0JBMzIqIG1f
cGl4ZWxzUHRyIHsgbnVsbHB0ciB9OworICAgIFJlZlB0cjxSR0JBUGl4ZWxCdWZmZXJUaHJlYWRT
YWZlUmVmQ291bnRlZD4gbV9waXhlbHM7CisKICAgICBJbnRTaXplIG1fc2l6ZTsKICAgICBJbnRS
ZWN0IG1fZnJhbWVSZWN0OyAvLyBUaGlzIHdpbGwgYWx3YXlzIGp1c3QgYmUgdGhlIGVudGlyZSBi
dWZmZXIgZXhjZXB0IGZvciBHSUYgYW5kIFBORyBmcmFtZXMKICAgICBib29sIG1fcHJlbXVsdGlw
bHlBbHBoYSB7IHRydWUgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lt
YWdlLWRlY29kZXJzL2NhaXJvL0ltYWdlQmFja2luZ1N0b3JlQ2Fpcm8uY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvY2Fpcm8vSW1hZ2VCYWNraW5nU3RvcmVDYWly
by5jcHAKaW5kZXggZTgyNzBiMGU5N2YyOGQ1Mjc1M2IzNjcxNDQ2ZmJhZjZiZGRiYjAzZi4uYzVm
ZjhmMzI5NTU5YmU4NTk2YzliNzQ2OWIxODAxODhlMWU0ZjY0ZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvY2Fpcm8vSW1hZ2VCYWNraW5nU3RvcmVD
YWlyby5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvY2Fp
cm8vSW1hZ2VCYWNraW5nU3RvcmVDYWlyby5jcHAKQEAgLTM0LDEwICszNCwxMCBAQCBOYXRpdmVJ
bWFnZVB0ciBJbWFnZUJhY2tpbmdTdG9yZTo6aW1hZ2UoKSBjb25zdAogewogICAgIG1fcGl4ZWxz
LT5yZWYoKTsKICAgICBSZWZQdHI8Y2Fpcm9fc3VyZmFjZV90PiBzdXJmYWNlID0gYWRvcHRSZWYo
Y2Fpcm9faW1hZ2Vfc3VyZmFjZV9jcmVhdGVfZm9yX2RhdGEoCi0gICAgICAgIHJlaW50ZXJwcmV0
X2Nhc3Q8dW5zaWduZWQgY2hhcio+KGNvbnN0X2Nhc3Q8dWludDMyX3QqPihtX3BpeGVsc1B0cikp
LAorICAgICAgICByZWludGVycHJldF9jYXN0PHVuc2lnbmVkIGNoYXIqPihjb25zdF9jYXN0PHVp
bnQzMl90Kj4obV9waXhlbHMtPmRhdGEoKSkpLAogICAgICAgICBDQUlST19GT1JNQVRfQVJHQjMy
LCBzaXplKCkud2lkdGgoKSwgc2l6ZSgpLmhlaWdodCgpLCBzaXplKCkud2lkdGgoKSAqIHNpemVv
Zih1aW50MzJfdCkpKTsKICAgICBzdGF0aWMgY2Fpcm9fdXNlcl9kYXRhX2tleV90IHNfc3VyZmFj
ZURhdGFLZXk7Ci0gICAgY2Fpcm9fc3VyZmFjZV9zZXRfdXNlcl9kYXRhKHN1cmZhY2UuZ2V0KCks
ICZzX3N1cmZhY2VEYXRhS2V5LCBtX3BpeGVscy5nZXQoKSwgW10odm9pZCogZGF0YSkgeyBzdGF0
aWNfY2FzdDxTaGFyZWRCdWZmZXIqPihkYXRhKS0+ZGVyZWYoKTsgfSk7CisgICAgY2Fpcm9fc3Vy
ZmFjZV9zZXRfdXNlcl9kYXRhKHN1cmZhY2UuZ2V0KCksICZzX3N1cmZhY2VEYXRhS2V5LCBtX3Bp
eGVscy5nZXQoKSwgW10odm9pZCogZGF0YSkgeyBzdGF0aWNfY2FzdDxSR0JBUGl4ZWxCdWZmZXJU
aHJlYWRTYWZlUmVmQ291bnRlZCo+KGRhdGEpLT5kZXJlZigpOyB9KTsKIAogICAgIHJldHVybiBz
dXJmYWNlOwogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>382173</attachid>
            <date>2019-10-29 03:38:02 -0700</date>
            <delta_ts>2019-10-29 21:46:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wcore-image-backing.diff</filename>
            <type>text/plain</type>
            <size>3396</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA1OTM4NDAzMTkzMy4uZjU5NjEzZThkNTcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxOSBAQAorMjAxOS0xMC0yOSAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGln
YWxpYS5jb20+CisKKyAgICAgICAgSW1hZ2VEZWNvZGVyczogdXNlIGEgdGhyZWFkIHNhZmUgZGF0
YSBidWZmZXIgZm9yIENhaXJvIGJhY2tpbmcgc3RvcmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMTcyNworICAgICAgICA8cmRhcjovL3Byb2JsZW0v
NTY2NjUwNDE+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVXNlIFNoYXJlZEJ1ZmZlcjo6ZGF0YVNlZ21lbnQgd2hpY2ggaXMgVGhyZWFkU2FmZVJlZkNv
dW50ZWQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJhY2tpbmdTdG9yZS5o
OgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCYWNraW5nU3RvcmU6OnNldFNpemUpOgorICAgICAg
ICAoV2ViQ29yZTo6SW1hZ2VCYWNraW5nU3RvcmU6OkltYWdlQmFja2luZ1N0b3JlKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9jYWlyby9JbWFnZUJhY2tpbmdTdG9yZUNhaXJv
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlQmFja2luZ1N0b3JlOjppbWFnZSBjb25zdCk6
CisKIDIwMTktMTAtMjggIERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgogCiAgICAg
ICAgIFJlbW92ZSB1bm5lY2Vzc2FyeSAjaW5jbHVkZSA8bGltaXRzLmg+IGhlYWRlciBmcm9tIFRp
bWVyLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1h
Z2VCYWNraW5nU3RvcmUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdl
QmFja2luZ1N0b3JlLmgKaW5kZXggYWU2NWNkMDI0ZWQuLmJhZWJlNTI2MTFkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJhY2tpbmdTdG9yZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQmFja2luZ1N0b3JlLmgK
QEAgLTY2LDcgKzY2LDcgQEAgcHVibGljOgogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAg
ICAgICAgIGJ1ZmZlci5ncm93KGJ1ZmZlclNpemUpOwotICAgICAgICBtX3BpeGVscyA9IFNoYXJl
ZEJ1ZmZlcjo6Y3JlYXRlKFdURk1vdmUoYnVmZmVyKSk7CisgICAgICAgIG1fcGl4ZWxzID0gU2hh
cmVkQnVmZmVyOjpEYXRhU2VnbWVudDo6Y3JlYXRlKFdURk1vdmUoYnVmZmVyKSk7CiAgICAgICAg
IG1fcGl4ZWxzUHRyID0gcmVpbnRlcnByZXRfY2FzdDxSR0JBMzIqPihjb25zdF9jYXN0PGNoYXIq
PihtX3BpeGVscy0+ZGF0YSgpKSk7CiAgICAgICAgIG1fc2l6ZSA9IHNpemU7CiAgICAgICAgIG1f
ZnJhbWVSZWN0ID0gSW50UmVjdChJbnRQb2ludCgpLCBtX3NpemUpOwpAQCAtMjAxLDcgKzIwMSw5
IEBAIHByaXZhdGU6CiAgICAgICAgICwgbV9wcmVtdWx0aXBseUFscGhhKG90aGVyLm1fcHJlbXVs
dGlwbHlBbHBoYSkKICAgICB7CiAgICAgICAgIEFTU0VSVCghbV9zaXplLmlzRW1wdHkoKSAmJiAh
aXNPdmVyU2l6ZShtX3NpemUpKTsKLSAgICAgICAgbV9waXhlbHMgPSBTaGFyZWRCdWZmZXI6OmNy
ZWF0ZShvdGhlci5tX3BpeGVscy0+ZGF0YSgpLCBvdGhlci5tX3BpeGVscy0+c2l6ZSgpKTsKKyAg
ICAgICAgVmVjdG9yPGNoYXI+IGJ1ZmZlcjsKKyAgICAgICAgYnVmZmVyLmFwcGVuZChvdGhlci5t
X3BpeGVscy0+ZGF0YSgpLCBvdGhlci5tX3BpeGVscy0+c2l6ZSgpKTsKKyAgICAgICAgbV9waXhl
bHMgPSBTaGFyZWRCdWZmZXI6OkRhdGFTZWdtZW50OjpjcmVhdGUoV1RGTW92ZShidWZmZXIpKTsK
ICAgICAgICAgbV9waXhlbHNQdHIgPSByZWludGVycHJldF9jYXN0PFJHQkEzMio+KGNvbnN0X2Nh
c3Q8Y2hhcio+KG1fcGl4ZWxzLT5kYXRhKCkpKTsKICAgICB9CiAKQEAgLTIyNiw3ICsyMjgsNyBA
QCBwcml2YXRlOgogICAgICAgICByZXR1cm4gbWFrZVJHQkEociwgZywgYiwgYSk7CiAgICAgfQog
Ci0gICAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gbV9waXhlbHM7CisgICAgUmVmUHRyPFNoYXJlZEJ1
ZmZlcjo6RGF0YVNlZ21lbnQ+IG1fcGl4ZWxzOwogICAgIFJHQkEzMiogbV9waXhlbHNQdHIgeyBu
dWxscHRyIH07CiAgICAgSW50U2l6ZSBtX3NpemU7CiAgICAgSW50UmVjdCBtX2ZyYW1lUmVjdDsg
Ly8gVGhpcyB3aWxsIGFsd2F5cyBqdXN0IGJlIHRoZSBlbnRpcmUgYnVmZmVyIGV4Y2VwdCBmb3Ig
R0lGIGFuZCBQTkcgZnJhbWVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9p
bWFnZS1kZWNvZGVycy9jYWlyby9JbWFnZUJhY2tpbmdTdG9yZUNhaXJvLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL2NhaXJvL0ltYWdlQmFja2luZ1N0b3JlQ2Fp
cm8uY3BwCmluZGV4IGU4MjcwYjBlOTdmLi5iODM1YTY5Y2JjNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvY2Fpcm8vSW1hZ2VCYWNraW5nU3RvcmVD
YWlyby5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvY2Fp
cm8vSW1hZ2VCYWNraW5nU3RvcmVDYWlyby5jcHAKQEAgLTM3LDcgKzM3LDcgQEAgTmF0aXZlSW1h
Z2VQdHIgSW1hZ2VCYWNraW5nU3RvcmU6OmltYWdlKCkgY29uc3QKICAgICAgICAgcmVpbnRlcnBy
ZXRfY2FzdDx1bnNpZ25lZCBjaGFyKj4oY29uc3RfY2FzdDx1aW50MzJfdCo+KG1fcGl4ZWxzUHRy
KSksCiAgICAgICAgIENBSVJPX0ZPUk1BVF9BUkdCMzIsIHNpemUoKS53aWR0aCgpLCBzaXplKCku
aGVpZ2h0KCksIHNpemUoKS53aWR0aCgpICogc2l6ZW9mKHVpbnQzMl90KSkpOwogICAgIHN0YXRp
YyBjYWlyb191c2VyX2RhdGFfa2V5X3Qgc19zdXJmYWNlRGF0YUtleTsKLSAgICBjYWlyb19zdXJm
YWNlX3NldF91c2VyX2RhdGEoc3VyZmFjZS5nZXQoKSwgJnNfc3VyZmFjZURhdGFLZXksIG1fcGl4
ZWxzLmdldCgpLCBbXSh2b2lkKiBkYXRhKSB7IHN0YXRpY19jYXN0PFNoYXJlZEJ1ZmZlcio+KGRh
dGEpLT5kZXJlZigpOyB9KTsKKyAgICBjYWlyb19zdXJmYWNlX3NldF91c2VyX2RhdGEoc3VyZmFj
ZS5nZXQoKSwgJnNfc3VyZmFjZURhdGFLZXksIG1fcGl4ZWxzLmdldCgpLCBbXSh2b2lkKiBkYXRh
KSB7IHN0YXRpY19jYXN0PFNoYXJlZEJ1ZmZlcjo6RGF0YVNlZ21lbnQqPihkYXRhKS0+ZGVyZWYo
KTsgfSk7CiAKICAgICByZXR1cm4gc3VyZmFjZTsKIH0K
</data>
<flag name="review"
          id="397902"
          type_id="1"
          status="+"
          setter="fujii"
    />
          </attachment>
      

    </bug>

</bugzilla>