<?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>176243</bug_id>
          
          <creation_ts>2017-09-01 13:04:04 -0700</creation_ts>
          <short_desc>requestAnimationFrame causes bad location of position:fixed inside overflow:auto and iframe</short_desc>
          <delta_ts>2018-11-03 04:24:55 -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>Frames</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>iPhone / iPad</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <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>
          
          <blocked>154399</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Frédéric Wang Nélar">fred.wang</reporter>
          <assigned_to name="Ali Juma">ajuma</assigned_to>
          <cc>ajuma</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dvoytenko</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>jamesr</cc>
    
    <cc>luiz</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1344545</commentid>
    <comment_count>0</comment_count>
      <attachid>319637</attachid>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2017-09-01 13:04:04 -0700</bug_when>
    <thetext>Created attachment 319637
Testcase

The attached testcase is essentially attachment 316551 + some regular calls to requestAnimationFrame(). After r220261, the flickering is gone, but we still see some &quot;big jumps&quot; when scrolling the frame.

This issue disappears if we remove these requestAnimationFrame() calls or reduce their frequency. It looks like these requestAnimationFrame might cause some out-of-sync scroll coordinates between the web and UI process.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1344564</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-09-01 13:47:53 -0700</bug_when>
    <thetext>&lt;rdar://problem/34214708&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1370910</commentid>
    <comment_count>2</comment_count>
      <attachid>326761</attachid>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2017-11-13 08:28:19 -0800</bug_when>
    <thetext>Created attachment 326761
Alternative testcase

This testcase relies on a more standard use of requestAnimationFrame.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1370935</commentid>
    <comment_count>3</comment_count>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2017-11-13 10:15:48 -0800</bug_when>
    <thetext>I did a quick debugging of this and the trace for requestAnimationFrame is something like:

RemoteLayerTreeDrawingArea::flushLayers
 |
(Timer)
 |
RemoteLayerTreeDrawingArea::scheduleCompositingLayerFlush
ScriptedAnimationController::scheduleAnimation
ScriptedAnimationController::registerCallback
Document::requestAnimationFrame
DOMWindow::requestAnimationFrame

where RemoteLayerTreeDrawingArea::flushLayers commit the scrolling state and is actually also called when we perform async scrolling on iOS. So I don&apos;t see anything abnormal. Maybe requestAnimationFrame should not commit the scrolling state and let that work be done by the async scrolling code to avoid conflicts?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1371383</commentid>
    <comment_count>4</comment_count>
      <attachid>326879</attachid>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2017-11-14 08:33:11 -0800</bug_when>
    <thetext>Created attachment 326879
Experimental patch

This patch is a quick dirty hack to force a delayed flush when RemoteLayerTreeDrawingArea::scheduleCompositingLayerFlush is caused by a requestAnimationFrame call. As you can see, it avoids big jumps of the fixed element in the testcase. I wonder whether we should do something like that when user scrolling is happening... @Simon: WDYT?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1371462</commentid>
    <comment_count>5</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2017-11-14 11:12:51 -0800</bug_when>
    <thetext>I don&apos;t get why that&apos;s the right approach to fix this bug. Would need to analyze further.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1473820</commentid>
    <comment_count>6</comment_count>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2018-10-31 12:37:07 -0700</bug_when>
    <thetext>(In reply to Simon Fraser (smfr) from comment #5)
&gt; I don&apos;t get why that&apos;s the right approach to fix this bug. Would need to
&gt; analyze further.

I just tried the testcase again. The issue is still present in trunk and the experimental patch still allows to workaround it. Any better idea to fix this bug?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1473857</commentid>
    <comment_count>7</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2018-10-31 13:50:45 -0700</bug_when>
    <thetext>I would have to do some debugging to figure it out.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1474200</commentid>
    <comment_count>8</comment_count>
    <who name="Ali Juma">ajuma</who>
    <bug_when>2018-11-01 12:04:07 -0700</bug_when>
    <thetext>Trying to debug this a bit, there seems to be an issue with the fixed position&apos;s layer&apos;s position getting clobbered by a layer tree commit. For example:
1) Scroll in the UI Process
1a) ScrollingTreeFixedNode::updateLayersAfterAncestorChange sets layer position&apos;s y coordinate to 107
2) Scroll more in the UI Process
2b) ScrollingTreeFixedNode::updateLayersAfterAncestorChange sets layer position&apos;s y coordinate to 115
3) WebProcess flushes layers. The most recent scroll that the WebProcess is aware of is (1), so the GraphicsLayer tree is updated to reflect that state.
4) A new layer tree and scroll tree is committed to the UI Process, and the layer position&apos;s y coordinate gets set back to 107

At this point, the fixed position&apos;s layer&apos;s position is wrong, since it&apos;s based on the first scroll rather than the most recent one. It won&apos;t get corrected until we scroll again in the UI Process. If we draw to the screen before that, we&apos;ll draw the layer at the wrong position.

If I hackily change ScrollingTreeFixedNode::commitStateBeforeChildren to restore the old layer position, the fixed-position layer stays perfectly in place.

It seems like we need something like the logic in ScrollingTreeFixedNode::updateLayersAfterAncestorChange to run whenever we commit a new layer tree and scroll tree, to account for any scrolling that&apos;s happened in the UIProcess that the WebProcess wasn&apos;t yet aware of when it last updated the layer tree.

It&apos;s still not completely clear why rAF makes this bug so much worse though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1474229</commentid>
    <comment_count>9</comment_count>
    <who name="Dima Voytenko">dvoytenko</who>
    <bug_when>2018-11-01 12:46:08 -0700</bug_when>
    <thetext>To note: while the `position:fixed` gotten a lot better, it still relatively easy to trigger jumping even without the rAF.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1474472</commentid>
    <comment_count>10</comment_count>
    <who name="Ali Juma">ajuma</who>
    <bug_when>2018-11-02 07:04:15 -0700</bug_when>
    <thetext>(In reply to Ali Juma from comment #8)
&gt;
&gt; It seems like we need something like the logic in
&gt; ScrollingTreeFixedNode::updateLayersAfterAncestorChange to run whenever we
&gt; commit a new layer tree and scroll tree, to account for any scrolling that&apos;s
&gt; happened in the UIProcess that the WebProcess wasn&apos;t yet aware of when it
&gt; last updated the layer tree.

It turns out we *do* have logic for this, but it&apos;s broken for scrollers that are descendants of iframes.

Specifically, RemoteLayerTreeDrawingAreaProxy::commitLayerTree checks if there are any fixed or sticky nodes, and if so, it calls viewportChangedViaDelegatedScrolling() to update the positions of fixed and sticky layers. This calls ScrollingTreeFrameScrollingNodeIOS::updateLayersAfterViewportChange on the main frame scroll node, which in turn calls updateLayersAfterAncestorChange on the subframe&apos;s scroll node.

And this is where things go wrong -- ScrollingTreeFrameScrollingNode::updateLayersAfterAncestorChange has an empty implementation with a FIXME, and ScrollingTreeFrameScrollingNodeIOS doesn&apos;t override this either. So we never recurse into the subframe&apos;s scroll nodes.

Implementing ScrollingTreeFrameScrollingNodeIOS::updateLayersAfterAncestorChange fixes the bug. I&apos;ll put together a patch.

Any suggestions for how to write a test for this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1474534</commentid>
    <comment_count>11</comment_count>
      <attachid>353708</attachid>
    <who name="Ali Juma">ajuma</who>
    <bug_when>2018-11-02 10:09:29 -0700</bug_when>
    <thetext>Created attachment 353708
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1474538</commentid>
    <comment_count>12</comment_count>
      <attachid>353708</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2018-11-02 10:15:14 -0700</bug_when>
    <thetext>Comment on attachment 353708
Patch

Very nice, would be even better with a test!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1474597</commentid>
    <comment_count>13</comment_count>
      <attachid>353724</attachid>
    <who name="Ali Juma">ajuma</who>
    <bug_when>2018-11-02 12:53:48 -0700</bug_when>
    <thetext>Created attachment 353724
Patch for landing

Add missing null check</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1474600</commentid>
    <comment_count>14</comment_count>
    <who name="Ali Juma">ajuma</who>
    <bug_when>2018-11-02 13:01:19 -0700</bug_when>
    <thetext>(In reply to Simon Fraser (smfr) from comment #12)
&gt; Comment on attachment 353708 [details]
&gt; Patch
&gt; 
&gt; Very nice, would be even better with a test!

I tried to think of a good way to test this, but I think we&apos;d need something similar to UIScriptController&apos;s immediateScrollToOffset, but for overflow scrolling, along with plumbing to dump the UIProcess&apos; layer tree.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1474647</commentid>
    <comment_count>15</comment_count>
      <attachid>353724</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-11-02 15:07:27 -0700</bug_when>
    <thetext>Comment on attachment 353724
Patch for landing

Clearing flags on attachment: 353724

Committed r237754: &lt;https://trac.webkit.org/changeset/237754&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1474648</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-11-02 15:07:29 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1474761</commentid>
    <comment_count>17</comment_count>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2018-11-03 04:24:55 -0700</bug_when>
    <thetext>(In reply to Ali Juma from comment #10)
&gt; (In reply to Ali Juma from comment #8)
&gt; &gt;
&gt; &gt; It seems like we need something like the logic in
&gt; &gt; ScrollingTreeFixedNode::updateLayersAfterAncestorChange to run whenever we
&gt; &gt; commit a new layer tree and scroll tree, to account for any scrolling that&apos;s
&gt; &gt; happened in the UIProcess that the WebProcess wasn&apos;t yet aware of when it
&gt; &gt; last updated the layer tree.
&gt; 
&gt; It turns out we *do* have logic for this, but it&apos;s broken for scrollers that
&gt; are descendants of iframes.
&gt; 
&gt; Specifically, RemoteLayerTreeDrawingAreaProxy::commitLayerTree checks if
&gt; there are any fixed or sticky nodes, and if so, it calls
&gt; viewportChangedViaDelegatedScrolling() to update the positions of fixed and
&gt; sticky layers. This calls
&gt; ScrollingTreeFrameScrollingNodeIOS::updateLayersAfterViewportChange on the
&gt; main frame scroll node, which in turn calls updateLayersAfterAncestorChange
&gt; on the subframe&apos;s scroll node.
&gt; 
&gt; And this is where things go wrong --
&gt; ScrollingTreeFrameScrollingNode::updateLayersAfterAncestorChange has an
&gt; empty implementation with a FIXME, and ScrollingTreeFrameScrollingNodeIOS
&gt; doesn&apos;t override this either. So we never recurse into the subframe&apos;s scroll
&gt; nodes.
&gt; 
&gt; Implementing
&gt; ScrollingTreeFrameScrollingNodeIOS::updateLayersAfterAncestorChange fixes
&gt; the bug. I&apos;ll put together a patch.
&gt; 
&gt; Any suggestions for how to write a test for this?

It seems I had implemented it for subframes in my patch for bug 173833 but had left it unimplemented for the main frame so probably I did not see any improvements on this bug. Thanks for spending time on this Ali!</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>319637</attachid>
            <date>2017-09-01 13:04:04 -0700</date>
            <delta_ts>2017-09-01 13:04:04 -0700</delta_ts>
            <desc>Testcase</desc>
            <filename>raf.html</filename>
            <type>text/html</type>
            <size>840</size>
            <attacher name="Frédéric Wang Nélar">fred.wang</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+CjxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZp
Y2Utd2lkdGgiPgo8c2NyaXB0PgogIGZ1bmN0aW9uIGluaXQoKSB7CiAgICBzZXRJbnRlcnZhbChm
dW5jdGlvbigpIHsgCiAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpIHt9KTsK
ICAgIH0sIDUwKTsKICB9Cjwvc2NyaXB0Pgo8aWZyYW1lIG9ubG9hZD0iaW5pdCgpIiBzcmNkb2M9
Igo8IURPQ1RZUEUgaHRtbD4KPGh0bWw+CiAgPGhlYWQ+CiAgICA8c3R5bGU+CiAgICAgIGh0bWws
IGJvZHkgewogICAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgICAgIGhlaWdodDogMTAw
cHg7CiAgICAgIH0KICAgICAgYm9keSB7CiAgICAgICAgIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xs
aW5nOiB0b3VjaDsKICAgICAgfQogICAgICAjZml4ZWQgewogICAgICAgICAgcG9zaXRpb246IGZp
eGVkOwogICAgICAgICAgdG9wOiAxMHB4OwogICAgICAgICAgcmlnaHQ6IDBweDsKICAgICAgICAg
IGhlaWdodDogNDBweDsKICAgICAgICAgIHdpZHRoOiA1MCU7CiAgICAgICAgICBiYWNrZ3JvdW5k
OiByZWQ7CiAgICAgIH0KICAgICAgI2dyYWRpZW50IHsKICAgICAgICAgIHdpZHRoOiAxMDAlOwog
ICAgICAgICAgaGVpZ2h0OiAyMDAwcHg7CiAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3Jh
ZGllbnQoMTgwZGVnLCBncmVlbiwgYmx1ZSk7CiAgICAgIH0KICAgIDwvc3R5bGU+CiAgPC9oZWFk
PgogIDxib2R5PgogICAgPGRpdiBpZD0nZml4ZWQnPjwvZGl2PgogICAgPGRpdiBpZD0nZ3JhZGll
bnQnPjwvZGl2PgogIDwvYm9keT4KIDwvaHRtbD4iPjwvaWZyYW1lPgog
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>326761</attachid>
            <date>2017-11-13 08:28:19 -0800</date>
            <delta_ts>2017-11-13 08:28:19 -0800</delta_ts>
            <desc>Alternative testcase</desc>
            <filename>176243.html</filename>
            <type>text/html</type>
            <size>868</size>
            <attacher name="Frédéric Wang Nélar">fred.wang</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+CjxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZp
Y2Utd2lkdGgiPgo8c2NyaXB0PgogIGZ1bmN0aW9uIHN0ZXAodGltZXN0YW1wKSB7CiAgICB3aW5k
b3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKHN0ZXApOwogIH0KICBmdW5jdGlvbiBpbml0KCkgewog
ICAgd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZShzdGVwKTsKICB9Cjwvc2NyaXB0Pgo8aWZy
YW1lIG9ubG9hZD0iaW5pdCgpIiBzcmNkb2M9Igo8IURPQ1RZUEUgaHRtbD4KPGh0bWw+CiAgPGhl
YWQ+CiAgICA8c3R5bGU+CiAgICAgIGh0bWwsIGJvZHkgewogICAgICAgICAgb3ZlcmZsb3cteTog
YXV0bzsKICAgICAgICAgIGhlaWdodDogMTAwcHg7CiAgICAgIH0KICAgICAgYm9keSB7CiAgICAg
ICAgIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDsKICAgICAgfQogICAgICAjZml4
ZWQgewogICAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgICAgdG9wOiAxMHB4OwogICAg
ICAgICAgcmlnaHQ6IDBweDsKICAgICAgICAgIGhlaWdodDogNDBweDsKICAgICAgICAgIHdpZHRo
OiA1MCU7CiAgICAgICAgICBiYWNrZ3JvdW5kOiByZWQ7CiAgICAgIH0KICAgICAgI2dyYWRpZW50
IHsKICAgICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgICAgaGVpZ2h0OiAyMDAwcHg7CiAgICAg
ICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCBncmVlbiwgYmx1ZSk7CiAg
ICAgIH0KICAgIDwvc3R5bGU+CiAgPC9oZWFkPgogIDxib2R5PgogICAgPGRpdiBpZD0nZml4ZWQn
PjwvZGl2PgogICAgPGRpdiBpZD0nZ3JhZGllbnQnPjwvZGl2PgogIDwvYm9keT4KIDwvaHRtbD4i
PjwvaWZyYW1lPgogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>326879</attachid>
            <date>2017-11-14 08:33:11 -0800</date>
            <delta_ts>2018-11-02 10:09:26 -0700</delta_ts>
            <desc>Experimental patch</desc>
            <filename>176243.patch</filename>
            <type>text/plain</type>
            <size>4960</size>
            <attacher name="Frédéric Wang Nélar">fred.wang</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVh
LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5oCmluZGV4
IDg4ZTkwZTg5NTc2Li43M2ZhZmNjNTM4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5oCkBAIC0xMDcsNyArMTA3LDcgQEAgcHVibGljOgogCiAg
ICAgdmlydHVhbCBXZWJDb3JlOjpHcmFwaGljc0xheWVyRmFjdG9yeSogZ3JhcGhpY3NMYXllckZh
Y3RvcnkoKSB7IHJldHVybiBudWxscHRyOyB9CiAgICAgdmlydHVhbCB2b2lkIHNldFJvb3RDb21w
b3NpdGluZ0xheWVyKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSA9IDA7Ci0gICAgdmlydHVhbCB2
b2lkIHNjaGVkdWxlQ29tcG9zaXRpbmdMYXllckZsdXNoKCkgPSAwOworICAgIHZpcnR1YWwgdm9p
ZCBzY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaChib29sIGZvcmNlRGVsYXkgPSBmYWxzZSkg
PSAwOwogICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaEltbWVk
aWF0ZWx5KCkgPSAwOwogCiAjaWYgVVNFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FX0RJU1BMQVlf
TU9OSVRPUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1Jl
bW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEaXNwbGF5UmVmcmVzaE1vbml0b3IubW0gYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5
ZXJUcmVlRGlzcGxheVJlZnJlc2hNb25pdG9yLm1tCmluZGV4IDg5MmQ2NTcxNTU5Li4wYjgyOWZh
NDViMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3Rl
TGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURpc3BsYXlSZWZyZXNoTW9uaXRvci5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5
ZXJUcmVlRGlzcGxheVJlZnJlc2hNb25pdG9yLm1tCkBAIC01Miw3ICs1Miw3IEBAIGJvb2wgUmVt
b3RlTGF5ZXJUcmVlRGlzcGxheVJlZnJlc2hNb25pdG9yOjpyZXF1ZXN0UmVmcmVzaENhbGxiYWNr
KCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgaWYgKCFpc1NjaGVkdWxlZCgpKQotICAg
ICAgICBzdGF0aWNfY2FzdDxEcmF3aW5nQXJlYSY+KCptX2RyYXdpbmdBcmVhLmdldCgpKS5zY2hl
ZHVsZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaCgpOworICAgICAgICBzdGF0aWNfY2FzdDxEcmF3aW5n
QXJlYSY+KCptX2RyYXdpbmdBcmVhLmdldCgpKS5zY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJGbHVz
aCh0cnVlKTsKIAogICAgIHNldElzQWN0aXZlKHRydWUpOwogICAgIHNldElzU2NoZWR1bGVkKHRy
dWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3Rl
TGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLmggYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0Fy
ZWEuaAppbmRleCBlNThkZDYxMzA4ZC4uYTk5ZmEyMGVhNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVE
cmF3aW5nQXJlYS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90
ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5oCkBAIC02NSw3ICs2NSw3IEBA
IHByaXZhdGU6CiAKICAgICBXZWJDb3JlOjpHcmFwaGljc0xheWVyRmFjdG9yeSogZ3JhcGhpY3NM
YXllckZhY3RvcnkoKSBvdmVycmlkZTsKICAgICB2b2lkIHNldFJvb3RDb21wb3NpdGluZ0xheWVy
KFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBvdmVycmlkZTsKLSAgICB2b2lkIHNjaGVkdWxlQ29t
cG9zaXRpbmdMYXllckZsdXNoKCkgb3ZlcnJpZGU7CisgICAgdm9pZCBzY2hlZHVsZUNvbXBvc2l0
aW5nTGF5ZXJGbHVzaChib29sIGZvcmNlRGVsYXkgPSBmYWxzZSkgb3ZlcnJpZGU7CiAgICAgdm9p
ZCBzY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaEltbWVkaWF0ZWx5KCkgb3ZlcnJpZGU7CiAg
ICAgdm9pZCBhdHRhY2hWaWV3T3ZlcmxheUdyYXBoaWNzTGF5ZXIoV2ViQ29yZTo6RnJhbWUqLCBX
ZWJDb3JlOjpHcmFwaGljc0xheWVyKikgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVE
cmF3aW5nQXJlYS5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxh
eWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5tbQppbmRleCA5ZWJhOWE5ZDc4ZC4u
ZWY3MzNiZmNhNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJU
cmVlRHJhd2luZ0FyZWEubW0KQEAgLTI3Niw3ICsyNzYsNyBAQCB2b2lkIFJlbW90ZUxheWVyVHJl
ZURyYXdpbmdBcmVhOjpzY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaEltbWVkaWF0ZWx5KCkK
ICAgICBtX2xheWVyRmx1c2hUaW1lci5zdGFydE9uZVNob3QoMF9zKTsKIH0KIAotdm9pZCBSZW1v
dGVMYXllclRyZWVEcmF3aW5nQXJlYTo6c2NoZWR1bGVDb21wb3NpdGluZ0xheWVyRmx1c2goKQor
dm9pZCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6c2NoZWR1bGVDb21wb3NpdGluZ0xheWVy
Rmx1c2goYm9vbCBmb3JjZURlbGF5KQogewogICAgIGlmIChtX2lzRmx1c2hpbmdTdXNwZW5kZWQp
IHsKICAgICAgICAgbV9pc0xheWVyRmx1c2hUaHJvdHRsaW5nVGVtcG9yYXJpbHlEaXNhYmxlZEZv
ckludGVyYWN0aW9uID0gZmFsc2U7CkBAIC0yOTcsNiArMjk3LDkgQEAgdm9pZCBSZW1vdGVMYXll
clRyZWVEcmF3aW5nQXJlYTo6c2NoZWR1bGVDb21wb3NpdGluZ0xheWVyRmx1c2goKQogICAgIFNl
Y29uZHMgdGhyb3R0bGVEZWxheSA9IG1faXNUaHJvdHRsaW5nTGF5ZXJGbHVzaGVzID8gKG1faXNJ
bml0aWFsVGhyb3R0bGVkTGF5ZXJGbHVzaCA/IGluaXRpYWxGbHVzaERlbGF5IDogZmx1c2hEZWxh
eSkgOiAwX3M7CiAgICAgbV9pc0luaXRpYWxUaHJvdHRsZWRMYXllckZsdXNoID0gZmFsc2U7CiAK
KyAgICBpZiAoZm9yY2VEZWxheSAmJiB0aHJvdHRsZURlbGF5IDwgNTBfbXMpCisgICAgICAgIHRo
cm90dGxlRGVsYXkgPSA1MF9tczsKKwogICAgIG1fbGF5ZXJGbHVzaFRpbWVyLnN0YXJ0T25lU2hv
dCh0aHJvdHRsZURlbGF5KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLmggYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0Fy
ZWEuaAppbmRleCA1MGM0MTI2NGNmMy4uODQyMGViYTNmYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJl
YS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVB
bmltYXRpb25EcmF3aW5nQXJlYS5oCkBAIC02Nyw3ICs2Nyw3IEBAIHByaXZhdGU6CiAgICAgdm9p
ZCBzZXRMYXllclRyZWVTdGF0ZUlzRnJvemVuKGJvb2wpIG92ZXJyaWRlOwogICAgIGJvb2wgbGF5
ZXJUcmVlU3RhdGVJc0Zyb3plbigpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZvaWQgc2V0Um9vdENv
bXBvc2l0aW5nTGF5ZXIoV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIG92ZXJyaWRlOwotICAgIHZv
aWQgc2NoZWR1bGVDb21wb3NpdGluZ0xheWVyRmx1c2goKSBvdmVycmlkZTsKKyAgICB2b2lkIHNj
aGVkdWxlQ29tcG9zaXRpbmdMYXllckZsdXNoKGJvb2wgZm9yY2VEZWxheSA9IGZhbHNlKSBvdmVy
cmlkZTsKICAgICB2b2lkIHNjaGVkdWxlQ29tcG9zaXRpbmdMYXllckZsdXNoSW1tZWRpYXRlbHko
KSBvdmVycmlkZTsKIAogICAgIHZvaWQgdXBkYXRlUHJlZmVyZW5jZXMoY29uc3QgV2ViUHJlZmVy
ZW5jZXNTdG9yZSYpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLm1tIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdB
cmVhLm1tCmluZGV4IDBkZGYzYzljYzg3Li5kZGQxOGI0M2QwYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdB
cmVhLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENv
cmVBbmltYXRpb25EcmF3aW5nQXJlYS5tbQpAQCAtMTc2LDcgKzE3Niw3IEBAIGJvb2wgVGlsZWRD
b3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OmxheWVyVHJlZVN0YXRlSXNGcm96ZW4oKSBjb25zdAog
ICAgIHJldHVybiBtX2xheWVyVHJlZVN0YXRlSXNGcm96ZW47CiB9CiAKLXZvaWQgVGlsZWRDb3Jl
QW5pbWF0aW9uRHJhd2luZ0FyZWE6OnNjaGVkdWxlQ29tcG9zaXRpbmdMYXllckZsdXNoKCkKK3Zv
aWQgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OnNjaGVkdWxlQ29tcG9zaXRpbmdMYXll
ckZsdXNoKGJvb2wpCiB7CiAgICAgbV9sYXllckZsdXNoU2NoZWR1bGVyLnNjaGVkdWxlKCk7CiB9
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>353708</attachid>
            <date>2018-11-02 10:09:29 -0700</date>
            <delta_ts>2018-11-02 12:53:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-176243-20181102130928.patch</filename>
            <type>text/plain</type>
            <size>3902</size>
            <attacher name="Ali Juma">ajuma</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM3NTk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDQ1ZTM4NjFhYmUxZTE3
ZGVhM2QzZjIzNzI2ZWQ2MWVjNjNlM2Q3Yi4uNGRkYzZmMTEzNDk0OTJiMDk1MzE3MThkMjM4ZjY1
OWJjNTNmZDY0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDE4LTExLTAyICBBbGkg
SnVtYSAgPGFqdW1hQGNocm9taXVtLm9yZz4KKworICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJh
bWUgY2F1c2VzIGJhZCBsb2NhdGlvbiBvZiBwb3NpdGlvbjpmaXhlZCBpbnNpZGUgb3ZlcmZsb3c6
YXV0byBhbmQgaWZyYW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNzYyNDMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBXaGVuIGEgbmV3IGxheWVyIHRyZWUgaXMgY29tbWl0dGVkIHRvIHRoZSBVSVByb2Nl
c3MsIHRoZSBwb3NpdGlvbnMgb2YgbGF5ZXJzIGZvciBmaXhlZAorICAgICAgICBvciBzdGlja3kg
bm9kZXMgaW4gdGhlIG5ld2x5LWNvbW1pdHRlZCB0cmVlIGNhbiBiZSBzdGFsZSwgYmVjYXVzZSBv
ZiBzY3JvbGxpbmcgdGhhdCBoYXMKKyAgICAgICAgaGFwcGVuZWQgaW4gdGhlIFVJUHJvY2VzcyBz
aW5jZSB0aGUgdHJlZSB3YXMgdXBkYXRlZCBpbiB0aGUgV2ViUHJvY2Vzcy4gVG8gaGFuZGxlIHRo
aXMsCisgICAgICAgIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHk6OmNvbW1pdExheWVy
VHJlZSB1cGRhdGVzIHRoZSBwb3NpdGlvbnMgb2YgdGhlc2UgbGF5ZXJzCisgICAgICAgIGJ5IGNh
bGxpbmcgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6dmlld3BvcnRDaGFuZ2VkVmlh
RGVsZWdhdGVkU2Nyb2xsaW5nLCB3aGljaAorICAgICAgICBsZWFkcyB0byBhIHJlY3Vyc2l2ZSB0
cmF2ZXJzYWwgb2YgdGhlIFNjcm9sbGluZ1RyZWUgdG8gdXBkYXRlIGVhY2ggc3VjaCBsYXllci4g
SG93ZXZlciwKKyAgICAgICAgc2luY2UgU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZUlP
UyBkaWRuJ3QgaW1wbGVtZW50IHVwZGF0ZUxheWVyc0FmdGVyQW5jZXN0b3JDaGFuZ2UsCisgICAg
ICAgIHRoaXMgdHJhdmVyc2FsIG5ldmVyIGRlc2NlbmRlZCBpbnRvIHNjcm9sbGluZyBub2RlcyB3
aXRoaW4gYW4gaWZyYW1lLCBzbyB0aGUgbGF5ZXJzIGZvcgorICAgICAgICB0aGVzZSBub2RlcyB3
ZXJlIGxlZnQgd2l0aCBzdGFsZSBwb3NpdGlvbnMuCisKKyAgICAgICAgSW1wbGVtZW50IFNjcm9s
bGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVJT1M6OnVwZGF0ZUxheWVyc0FmdGVyQW5jZXN0b3JD
aGFuZ2Ugc28gdGhhdAorICAgICAgICBmaXhlZCBhbmQgc3RpY2t5IGxheWVycyB3aXRoaW4gYW4g
aWZyYW1lIGRvIGdldCB0aGVpciBwb3NpdGlvbnMgdXBkYXRlZCB3aGVuIGEgbmV3IGxheWVyCisg
ICAgICAgIHRyZWUgaXMgY29tbWl0dGVkLgorCisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvaW9z
L1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVJT1MuaDoKKyAgICAgICAgKiBwYWdlL3Nj
cm9sbGluZy9pb3MvU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZUlPUy5tbToKKyAgICAg
ICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVJT1M6OnVwZGF0ZUxh
eWVyc0FmdGVyQW5jZXN0b3JDaGFuZ2UpOgorCiAyMDE4LTEwLTMwICBBbmR5IEVzdGVzICA8YWVz
dGVzQGFwcGxlLmNvbT4KIAogICAgICAgICBbUGF5bWVudCBSZXF1ZXN0XSBJbXBsZW1lbnQgUGF5
bWVudFJlc3BvbnNlLnJldHJ5KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Ny
b2xsaW5nL2lvcy9TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlSU9TLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9pb3MvU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9k
ZUlPUy5oCmluZGV4IGU3NWJhZjQ3M2JlNzU5NmJkM2Q3ZmNiNGM3NzE5ODhiOTU5YTIwMTkuLmE0
MDg4NmExZTEzZDhkODdhNzI0OTRhNTE5OTRiZTkyNWZmYzRhYTkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL2lvcy9TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdO
b2RlSU9TLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvaW9zL1Njcm9sbGlu
Z1RyZWVGcmFtZVNjcm9sbGluZ05vZGVJT1MuaApAQCAtNTMsNiArNTMsNyBAQCBwcm90ZWN0ZWQ6
CiAKICAgICB2b2lkIHVwZGF0ZUxheWVyc0FmdGVyVmlld3BvcnRDaGFuZ2UoY29uc3QgRmxvYXRS
ZWN0JiBmaXhlZFBvc2l0aW9uUmVjdCwgZG91YmxlIHNjYWxlKSBvdmVycmlkZTsKICAgICB2b2lk
IHVwZGF0ZUxheWVyc0FmdGVyRGVsZWdhdGVkU2Nyb2xsKGNvbnN0IEZsb2F0UG9pbnQmKSBvdmVy
cmlkZTsKKyAgICB2b2lkIHVwZGF0ZUxheWVyc0FmdGVyQW5jZXN0b3JDaGFuZ2UoY29uc3QgU2Ny
b2xsaW5nVHJlZU5vZGUmIGNoYW5nZWROb2RlLCBjb25zdCBGbG9hdFJlY3QmIGZpeGVkUG9zaXRp
b25SZWN0LCBjb25zdCBGbG9hdFNpemUmIGN1bXVsYXRpdmVEZWx0YSkgb3ZlcnJpZGU7CiAKICAg
ICB2b2lkIHNldFNjcm9sbExheWVyUG9zaXRpb24oY29uc3QgRmxvYXRQb2ludCYsIGNvbnN0IEZs
b2F0UmVjdCYgbGF5b3V0Vmlld3BvcnQpIG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9pb3MvU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9k
ZUlPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL2lvcy9TY3JvbGxpbmdUcmVl
RnJhbWVTY3JvbGxpbmdOb2RlSU9TLm1tCmluZGV4IGY5OTA1YTdiMjAwYWRjNDY2YzdjNGI4NDEx
MmNhYjI3NDE2NjgyZWQuLjNmY2UyNTE1NGVlNTI0Y2MyNWNiYTAyOTI0NDA0YzNkNTM1OGY0OTcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL2lvcy9TY3JvbGxpbmdU
cmVlRnJhbWVTY3JvbGxpbmdOb2RlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Ny
b2xsaW5nL2lvcy9TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlSU9TLm1tCkBAIC0xMzYs
NiArMTM2LDEzIEBAIHZvaWQgU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZUlPUzo6dXBk
YXRlTGF5ZXJzQWZ0ZXJWaWV3cG9ydENoYW5nZShjb25zdCBGCiAgICAgICAgIGNoaWxkLT51cGRh
dGVMYXllcnNBZnRlckFuY2VzdG9yQ2hhbmdlKCp0aGlzLCBmaXhlZFBvc2l0aW9uUmVjdCwgRmxv
YXRTaXplKCkpOwogfQogCit2b2lkIFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVJT1M6
OnVwZGF0ZUxheWVyc0FmdGVyQW5jZXN0b3JDaGFuZ2UoY29uc3QgU2Nyb2xsaW5nVHJlZU5vZGUm
IGNoYW5nZWROb2RlLCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBGbG9hdFNpemUmKQoreworICAg
IEZsb2F0UmVjdCBmaXhlZFBvc2l0aW9uUmVjdChzY3JvbGxQb3NpdGlvbigpLCBzY3JvbGxhYmxl
QXJlYVNpemUoKSk7CisgICAgZm9yIChhdXRvJiBjaGlsZCA6ICptX2NoaWxkcmVuKQorICAgICAg
ICBjaGlsZC0+dXBkYXRlTGF5ZXJzQWZ0ZXJBbmNlc3RvckNoYW5nZShjaGFuZ2VkTm9kZSwgZml4
ZWRQb3NpdGlvblJlY3QsIEZsb2F0U2l6ZSgpKTsKK30KKwogdm9pZCBTY3JvbGxpbmdUcmVlRnJh
bWVTY3JvbGxpbmdOb2RlSU9TOjp1cGRhdGVMYXllcnNBZnRlckRlbGVnYXRlZFNjcm9sbChjb25z
dCBGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbikKIHsKICAgICB1cGRhdGVDaGlsZE5vZGVzQWZ0
ZXJTY3JvbGwoc2Nyb2xsUG9zaXRpb24pOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>353724</attachid>
            <date>2018-11-02 12:53:48 -0700</date>
            <delta_ts>2018-11-02 15:07:27 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-176243-20181102155347.patch</filename>
            <type>text/plain</type>
            <size>3933</size>
            <attacher name="Ali Juma">ajuma</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM3NzM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjhkZmFhZWUyN2MwOWNm
ZmNmMzBhZWQ3Mzc5ODE0Njk4OGQwMDg1My4uOTM1ZDIzN2NhYzhkNDRmNDQ2ZTQ1NTMxZGViZmRl
MmUyYzZkNjcyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDE4LTExLTAyICBBbGkg
SnVtYSAgPGFqdW1hQGNocm9taXVtLm9yZz4KKworICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJh
bWUgY2F1c2VzIGJhZCBsb2NhdGlvbiBvZiBwb3NpdGlvbjpmaXhlZCBpbnNpZGUgb3ZlcmZsb3c6
YXV0byBhbmQgaWZyYW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNzYyNDMKKworICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCisKKyAg
ICAgICAgV2hlbiBhIG5ldyBsYXllciB0cmVlIGlzIGNvbW1pdHRlZCB0byB0aGUgVUlQcm9jZXNz
LCB0aGUgcG9zaXRpb25zIG9mIGxheWVycyBmb3IgZml4ZWQKKyAgICAgICAgb3Igc3RpY2t5IG5v
ZGVzIGluIHRoZSBuZXdseS1jb21taXR0ZWQgdHJlZSBjYW4gYmUgc3RhbGUsIGJlY2F1c2Ugb2Yg
c2Nyb2xsaW5nIHRoYXQgaGFzCisgICAgICAgIGhhcHBlbmVkIGluIHRoZSBVSVByb2Nlc3Mgc2lu
Y2UgdGhlIHRyZWUgd2FzIHVwZGF0ZWQgaW4gdGhlIFdlYlByb2Nlc3MuIFRvIGhhbmRsZSB0aGlz
LAorICAgICAgICBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Ojpjb21taXRMYXllclRy
ZWUgdXBkYXRlcyB0aGUgcG9zaXRpb25zIG9mIHRoZXNlIGxheWVycworICAgICAgICBieSBjYWxs
aW5nIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6OnZpZXdwb3J0Q2hhbmdlZFZpYURl
bGVnYXRlZFNjcm9sbGluZywgd2hpY2gKKyAgICAgICAgbGVhZHMgdG8gYSByZWN1cnNpdmUgdHJh
dmVyc2FsIG9mIHRoZSBTY3JvbGxpbmdUcmVlIHRvIHVwZGF0ZSBlYWNoIHN1Y2ggbGF5ZXIuIEhv
d2V2ZXIsCisgICAgICAgIHNpbmNlIFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVJT1Mg
ZGlkbid0IGltcGxlbWVudCB1cGRhdGVMYXllcnNBZnRlckFuY2VzdG9yQ2hhbmdlLAorICAgICAg
ICB0aGlzIHRyYXZlcnNhbCBuZXZlciBkZXNjZW5kZWQgaW50byBzY3JvbGxpbmcgbm9kZXMgd2l0
aGluIGFuIGlmcmFtZSwgc28gdGhlIGxheWVycyBmb3IKKyAgICAgICAgdGhlc2Ugbm9kZXMgd2Vy
ZSBsZWZ0IHdpdGggc3RhbGUgcG9zaXRpb25zLgorCisgICAgICAgIEltcGxlbWVudCBTY3JvbGxp
bmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlSU9TOjp1cGRhdGVMYXllcnNBZnRlckFuY2VzdG9yQ2hh
bmdlIHNvIHRoYXQKKyAgICAgICAgZml4ZWQgYW5kIHN0aWNreSBsYXllcnMgd2l0aGluIGFuIGlm
cmFtZSBkbyBnZXQgdGhlaXIgcG9zaXRpb25zIHVwZGF0ZWQgd2hlbiBhIG5ldyBsYXllcgorICAg
ICAgICB0cmVlIGlzIGNvbW1pdHRlZC4KKworICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL2lvcy9T
Y3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlSU9TLmg6CisgICAgICAgICogcGFnZS9zY3Jv
bGxpbmcvaW9zL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVJT1MubW06CisgICAgICAg
IChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlSU9TOjp1cGRhdGVMYXll
cnNBZnRlckFuY2VzdG9yQ2hhbmdlKToKKwogMjAxOC0xMS0wMiAgQWxpIEp1bWEgIDxhanVtYUBj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgQWxsb3cgY3Jvc3MtZG9jdW1lbnQgaW50ZXJzZWN0aW9u
IG9ic2VydmluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvaW9z
L1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVJT1MuaCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL2lvcy9TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlSU9TLmgKaW5k
ZXggZTc1YmFmNDczYmU3NTk2YmQzZDdmY2I0Yzc3MTk4OGI5NTlhMjAxOS4uYTQwODg2YTFlMTNk
OGQ4N2E3MjQ5NGE1MTk5NGJlOTI1ZmZjNGFhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvaW9zL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVJT1MuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9pb3MvU2Nyb2xsaW5nVHJlZUZyYW1l
U2Nyb2xsaW5nTm9kZUlPUy5oCkBAIC01Myw2ICs1Myw3IEBAIHByb3RlY3RlZDoKIAogICAgIHZv
aWQgdXBkYXRlTGF5ZXJzQWZ0ZXJWaWV3cG9ydENoYW5nZShjb25zdCBGbG9hdFJlY3QmIGZpeGVk
UG9zaXRpb25SZWN0LCBkb3VibGUgc2NhbGUpIG92ZXJyaWRlOwogICAgIHZvaWQgdXBkYXRlTGF5
ZXJzQWZ0ZXJEZWxlZ2F0ZWRTY3JvbGwoY29uc3QgRmxvYXRQb2ludCYpIG92ZXJyaWRlOworICAg
IHZvaWQgdXBkYXRlTGF5ZXJzQWZ0ZXJBbmNlc3RvckNoYW5nZShjb25zdCBTY3JvbGxpbmdUcmVl
Tm9kZSYgY2hhbmdlZE5vZGUsIGNvbnN0IEZsb2F0UmVjdCYgZml4ZWRQb3NpdGlvblJlY3QsIGNv
bnN0IEZsb2F0U2l6ZSYgY3VtdWxhdGl2ZURlbHRhKSBvdmVycmlkZTsKIAogICAgIHZvaWQgc2V0
U2Nyb2xsTGF5ZXJQb3NpdGlvbihjb25zdCBGbG9hdFBvaW50JiwgY29uc3QgRmxvYXRSZWN0JiBs
YXlvdXRWaWV3cG9ydCkgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL2lvcy9TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlSU9TLm1tIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvaW9zL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9s
bGluZ05vZGVJT1MubW0KaW5kZXggZjk5MDVhN2IyMDBhZGM0NjZjN2M0Yjg0MTEyY2FiMjc0MTY2
ODJlZC4uNTVkNTNlNWIxZjM4MmJhNzZjZTJjZmQ5ZTYyYjIzOTY4NTUxNzNmYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvaW9zL1Njcm9sbGluZ1RyZWVGcmFtZVNj
cm9sbGluZ05vZGVJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvaW9z
L1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVJT1MubW0KQEAgLTEzNiw2ICsxMzYsMTYg
QEAgdm9pZCBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlSU9TOjp1cGRhdGVMYXllcnNB
ZnRlclZpZXdwb3J0Q2hhbmdlKGNvbnN0IEYKICAgICAgICAgY2hpbGQtPnVwZGF0ZUxheWVyc0Fm
dGVyQW5jZXN0b3JDaGFuZ2UoKnRoaXMsIGZpeGVkUG9zaXRpb25SZWN0LCBGbG9hdFNpemUoKSk7
CiB9CiAKK3ZvaWQgU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZUlPUzo6dXBkYXRlTGF5
ZXJzQWZ0ZXJBbmNlc3RvckNoYW5nZShjb25zdCBTY3JvbGxpbmdUcmVlTm9kZSYgY2hhbmdlZE5v
ZGUsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEZsb2F0U2l6ZSYpCit7CisgICAgaWYgKCFtX2No
aWxkcmVuKQorICAgICAgICByZXR1cm47CisKKyAgICBGbG9hdFJlY3QgZml4ZWRQb3NpdGlvblJl
Y3Qoc2Nyb2xsUG9zaXRpb24oKSwgc2Nyb2xsYWJsZUFyZWFTaXplKCkpOworICAgIGZvciAoYXV0
byYgY2hpbGQgOiAqbV9jaGlsZHJlbikKKyAgICAgICAgY2hpbGQtPnVwZGF0ZUxheWVyc0FmdGVy
QW5jZXN0b3JDaGFuZ2UoY2hhbmdlZE5vZGUsIGZpeGVkUG9zaXRpb25SZWN0LCBGbG9hdFNpemUo
KSk7Cit9CisKIHZvaWQgU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZUlPUzo6dXBkYXRl
TGF5ZXJzQWZ0ZXJEZWxlZ2F0ZWRTY3JvbGwoY29uc3QgRmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRp
b24pCiB7CiAgICAgdXBkYXRlQ2hpbGROb2Rlc0FmdGVyU2Nyb2xsKHNjcm9sbFBvc2l0aW9uKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>