<?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>216190</bug_id>
          
          <creation_ts>2020-09-04 14:09:43 -0700</creation_ts>
          <short_desc>[MotionMark] RenderLayer::paintLayerContents spends ~5% of the time in MonotonicTime::now() in Multiply</short_desc>
          <delta_ts>2020-09-05 18:37:15 -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>Layout and Rendering</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Wenson Hsieh">wenson_hsieh</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>changseok</cc>
    
    <cc>darin</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fred.wang</cc>
    
    <cc>glenn</cc>
    
    <cc>koivisto</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>pdr</cc>
    
    <cc>sabouhallawa</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1685851</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-09-04 14:09:43 -0700</bug_when>
    <thetext>See: PaintFrequencyTracker::begin()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1685875</commentid>
    <comment_count>1</comment_count>
      <attachid>408031</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-09-04 15:24:12 -0700</bug_when>
    <thetext>Created attachment 408031
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1685877</commentid>
    <comment_count>2</comment_count>
      <attachid>408031</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-09-04 15:24:48 -0700</bug_when>
    <thetext>Comment on attachment 408031
Patch

(Wrong patch :|)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1685878</commentid>
    <comment_count>3</comment_count>
      <attachid>408032</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-09-04 15:25:27 -0700</bug_when>
    <thetext>Created attachment 408032
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1685886</commentid>
    <comment_count>4</comment_count>
      <attachid>408032</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2020-09-04 15:35:35 -0700</bug_when>
    <thetext>Comment on attachment 408032
Patch

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

&gt; Source/WebCore/rendering/RenderLayer.cpp:4632
&gt; +    SinglePaintFrequencyTracking singlePaintFrequencyTracking(m_paintFrequencyTracker, FrameView::currentPaintTimeStamp() ?: MonotonicTime::now(), shouldPaintContent);

FrameView::currentPaintTimeStamp() ?: MonotonicTime::now()

Does this change compile?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1685890</commentid>
    <comment_count>5</comment_count>
      <attachid>408032</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-09-04 15:44:50 -0700</bug_when>
    <thetext>Comment on attachment 408032
Patch

This all relies on sCurrentPaintTimeStamp which is updated from FrameView::willPaintContents(), but there can be paints that don&apos;t hit FrameView::willPaintContents() in they only touch non-main compositing layers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1685893</commentid>
    <comment_count>6</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-09-04 15:45:35 -0700</bug_when>
    <thetext>^ if they only

It might also be fine to use the timestamp of the last Page::updateRendering() that maybe we stash somewhere?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1685903</commentid>
    <comment_count>7</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-09-04 16:14:10 -0700</bug_when>
    <thetext>(In reply to Simon Fraser (smfr) from comment #6)
&gt; ^ if they only
&gt; 
&gt; It might also be fine to use the timestamp of the last
&gt; Page::updateRendering() that maybe we stash somewhere?

Sounds good! I’ll update this to stash a timestamp on `Page` in `Page::finalizeRenderingUpdate`, and then consult this timestamp in `RenderLayer::paintLayerContents`.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1685963</commentid>
    <comment_count>8</comment_count>
      <attachid>408055</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-09-04 17:51:40 -0700</bug_when>
    <thetext>Created attachment 408055
v2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1686005</commentid>
    <comment_count>9</comment_count>
      <attachid>408065</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-09-04 22:02:47 -0700</bug_when>
    <thetext>Created attachment 408065
v3 (for EWS)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1686119</commentid>
    <comment_count>10</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-09-05 14:30:08 -0700</bug_when>
    <thetext>Thanks for taking a look! Since EWS doesn’t run debug WK2 tests, I figured I’d run them locally before landing. In doing so, I discovered that this actually causes the test &quot;http/tests/security/navigate-when-restoring-cached-page.html&quot; to assert underneath `PaintFrequencyTracker::end()`:

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0   com.apple.JavaScriptCore      	0x0000000137fa24fe WTFCrash + 14 (Assertions.cpp:295)
1   com.apple.WebCore             	0x000000011ad9911b WTFCrashWithInfo(int, char const*, char const*, int) + 27 (Assertions.h:671)
2   com.apple.WebCore             	0x000000011f10a58b WebCore::PaintFrequencyTracker::end() + 107 (PaintFrequencyTracker.h:70)
3   com.apple.WebCore             	0x000000011f10a51a WebCore::SinglePaintFrequencyTracking::~SinglePaintFrequencyTracking() + 42 (PaintFrequencyTracker.h:99)
4   com.apple.WebCore             	0x000000011f0c53e5 WebCore::SinglePaintFrequencyTracking::~SinglePaintFrequencyTracking() + 21 (PaintFrequencyTracker.h:97)
5   com.apple.WebCore             	0x000000011f0c060a WebCore::RenderLayer::paintLayerContents(WebCore::GraphicsContext&amp;, WebCore::RenderLayer::LayerPaintingInfo const&amp;, WTF::OptionSet&lt;WebCore::RenderLayer::PaintLayerFlag&gt;) + 4442 (RenderLayer.cpp:4779)
6   com.apple.WebCore             	0x000000011f0bf42d WebCore::RenderLayer::paintLayerContentsAndReflection(WebCore::GraphicsContext&amp;, WebCore::RenderLayer::LayerPaintingInfo const&amp;, WTF::OptionSet&lt;WebCore::RenderLayer::PaintLayerFlag&gt;) + 445 (RenderLayer.cpp:4413)
7   com.apple.WebCore             	0x000000011f0be2fa WebCore::RenderLayer::paintLayerWithEffects(WebCore::GraphicsContext&amp;, WebCore::RenderLayer::LayerPaintingInfo const&amp;, WTF::OptionSet&lt;WebCore::RenderLayer::PaintLayerFlag&gt;) + 1370 (RenderLayer.cpp:4395)
8   com.apple.WebCore             	0x000000011f0bd460 WebCore::RenderLayer::paintLayer(WebCore::GraphicsContext&amp;, WebCore::RenderLayer::LayerPaintingInfo const&amp;, WTF::OptionSet&lt;WebCore::RenderLayer::PaintLayerFlag&gt;) + 368 (RenderLayer.cpp:4330)
9   com.apple.WebCore             	0x000000011f0c3ec8 WebCore::RenderLayer::paintList(WebCore::RenderLayer::LayerList, WebCore::GraphicsContext&amp;, WebCore::RenderLayer::LayerPaintingInfo const&amp;, WTF::OptionSet&lt;WebCore::RenderLayer::PaintLayerFlag&gt;) + 200 (RenderLayer.cpp:4831)
10  com.apple.WebCore             	0x000000011f0c015b WebCore::RenderLayer::paintLayerContents(WebCore::GraphicsContext&amp;, WebCore::RenderLayer::LayerPaintingInfo const&amp;, WTF::OptionSet&lt;WebCore::RenderLayer::PaintLayerFlag&gt;) + 3243 (RenderLayer.cpp:4729)
11  com.apple.WebCore             	0x000000011f0bf42d WebCore::RenderLayer::paintLayerContentsAndReflection(WebCore::GraphicsContext&amp;, WebCore::RenderLayer::LayerPaintingInfo const&amp;, WTF::OptionSet&lt;WebCore::RenderLayer::PaintLayerFlag&gt;) + 445 (RenderLayer.cpp:4413)
12  com.apple.WebCore             	0x000000011f0be2fa WebCore::RenderLayer::paintLayerWithEffects(WebCore::GraphicsContext&amp;, WebCore::RenderLayer::LayerPaintingInfo const&amp;, WTF::OptionSet&lt;WebCore::RenderLayer::PaintLayerFlag&gt;) + 1370 (RenderLayer.cpp:4395)
13  com.apple.WebCore             	0x000000011f0bd460 WebCore::RenderLayer::paintLayer(WebCore::GraphicsContext&amp;, WebCore::RenderLayer::LayerPaintingInfo const&amp;, WTF::OptionSet&lt;WebCore::RenderLayer::PaintLayerFlag&gt;) + 368 (RenderLayer.cpp:4330)
14  com.apple.WebCore             	0x000000011f0bd162 WebCore::RenderLayer::paint(WebCore::GraphicsContext&amp;, WebCore::LayoutRect const&amp;, WebCore::LayoutSize const&amp;, WTF::OptionSet&lt;WebCore::PaintBehavior&gt;, WebCore::RenderObject*, WTF::OptionSet&lt;WebCore::RenderLayer::PaintLayerFlag&gt;, WebCore::RenderLayer::SecurityOriginPaintPolicy, WebCore::EventRegionContext*) + 386 (RenderLayer.cpp:4188)
15  com.apple.WebCore             	0x000000011e769a2a WebCore::FrameView::paintContents(WebCore::GraphicsContext&amp;, WebCore::IntRect const&amp;, WebCore::Widget::SecurityOriginPaintPolicy, WebCore::EventRegionContext*) + 1930 (FrameView.cpp:4320)
16  com.apple.WebCore             	0x000000011e9cc8d4 WebCore::ScrollView::paint(WebCore::GraphicsContext&amp;, WebCore::IntRect const&amp;, WebCore::Widget::SecurityOriginPaintPolicy, WebCore::EventRegionContext*) + 740 (ScrollView.cpp:1277)
17  com.apple.WebCore             	0x000000011e769287 WebCore::FrameView::traverseForPaintInvalidation(WebCore::GraphicsContext::PaintInvalidationReasons) + 263 (FrameView.cpp:4175)
18  com.apple.WebCore             	0x000000011e76917a WebCore::FrameView::invalidateControlTints() + 26 (FrameView.h:659)
19  com.apple.WebCore             	0x000000011e7482ea WebCore::FrameView::updateControlTints() + 218 (FrameView.cpp:4159)
20  com.apple.WebCore             	0x000000011e747bc3 WebCore::FocusController::setActiveInternal(bool) + 99 (FocusController.cpp:912)
21  com.apple.WebCore             	0x000000011e747aec WebCore::FocusController::setActivityState(WTF::OptionSet&lt;WebCore::ActivityState::Flag&gt;) + 236 (FocusController.cpp:896)
22  com.apple.WebCore             	0x000000011e7c511b WebCore::Page::setActivityState(WTF::OptionSet&lt;WebCore::ActivityState::Flag&gt;) + 219 (Page.cpp:2106)
23  com.apple.WebKit              	0x000000010d08a060 WebKit::WebPage::setActivityState(WTF::OptionSet&lt;WebCore::ActivityState::Flag&gt;, unsigned long long, WTF::Vector&lt;WebKit::CallbackID, 0ul, WTF::CrashOnOverflow, 16ul, WTF::FastMalloc&gt; const&amp;) + 672 (WebPage.cpp:3286)
24  com.apple.WebKit              	0x000000010d089a07 WebKit::WebPage::reinitializeWebPage(WebKit::WebPageCreationParameters&amp;&amp;) + 679 (WebPage.cpp:844)
25  com.apple.WebKit              	0x000000010cb93ac6 WebKit::WebProcess::createWebPage(WTF::ObjectIdentifier&lt;WebCore::PageIdentifierType&gt;, WebKit::WebPageCreationParameters&amp;&amp;) + 342 (WebProcess.cpp:723)

It looks like Page::updateRendering() hadn’t been called yet when we try to paint while updating control tints, so the timestamp we pass to SinglePaintFrequencyTracking ends up being 0.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1686126</commentid>
    <comment_count>11</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-09-05 14:39:34 -0700</bug_when>
    <thetext>&gt; It looks like Page::updateRendering() hadn’t been called yet when we try to
&gt; paint while updating control tints, so the timestamp we pass to
&gt; SinglePaintFrequencyTracking ends up being 0.

I think I can fix this by making not tracking paint frequency for paints that are just for paint invalidation (i.e., `GraphicsContext` contains `m_paintInvalidationReasons`)...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1686139</commentid>
    <comment_count>12</comment_count>
      <attachid>408103</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-09-05 16:26:25 -0700</bug_when>
    <thetext>Created attachment 408103
v3 (with test fix)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1686157</commentid>
    <comment_count>13</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-09-05 18:36:16 -0700</bug_when>
    <thetext>Committed r266677: &lt;https://trac.webkit.org/changeset/266677&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 408103.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1686158</commentid>
    <comment_count>14</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-09-05 18:37:15 -0700</bug_when>
    <thetext>&lt;rdar://problem/68409128&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>408031</attachid>
            <date>2020-09-04 15:24:12 -0700</date>
            <delta_ts>2020-09-04 15:24:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-216190-20200904152411.patch</filename>
            <type>text/plain</type>
            <size>5055</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY2NjE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjg5MmViYTJkMjQyYzJj
MzM5ZjBjNDdmNWRlNWFkMTFiZDkyZjA0OC4uM2E3M2MzMjRjZjlhZjljMzczZjVjZDcwYmNiNDkx
MTYxMjliYzI4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDIwLTA5LTA0ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBhIGZhc3Qg
cGF0aCBpbiBUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6bWFwUmVjdChjb25zdCBGbG9hdFJlY3QmKSBm
b3IgYWZmaW5lIHRyYW5zZm9ybWF0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjE2MTM5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgVGltIEhvcnRv
bi4KKworICAgICAgICBBZGQgYSBmYXN0IHBhdGggd2hlbiBtYXBwaW5nIDJEIHBvaW50cyB0aHJv
dWdoIGFmZmluZSB0cmFuc2Zvcm1hdGlvbiBtYXRyaWNlcyB0aGF0IHRha2VzIGFkdmFudGFnZSBv
ZiBib3RoOgorICAgICAgICAxLiAgVGhlIHByZWRldGVybWluZWQgMCBhbmQgMSB2YWx1ZXMgaW4g
YWZmaW5lIHRyYW5zZm9ybWF0aW9uIG1hdHJpY2VzLgorICAgICAgICAyLiAgVGhlIGZhY3QgdGhh
dCBwb2ludHMgaW4gdGhlIEZsb2F0UmVjdCBhcmUgYWxpZ25lZCB3aXRoIHggYW5kIHkgYXhlcyAo
YXMgb3Bwb3NlZCB0byBhIEZsb2F0UXVhZCBvZiA0IGFyYml0cmFyeQorICAgICAgICAgICAgcG9p
bnRzKSwgd2hpY2ggYWxsb3dzIHVzIHRvIGF2b2lkIG1hcHBpbmcgYWxsIDQgY29ybmVycyBvZiB0
aGUgcmVjdCB0aHJvdWdoIHRoZSBtYXRyaXguCisKKyAgICAgICAgVGhlIGN1cnJlbnQgaW1wbGVt
ZW50YXRpb24gb2YgdGhpcyBtZXRob2QgbWFwcyBlYWNoIG9mIHRoZSA0IGNvcm5lcnMgdGhyb3Vn
aCB0aGUgdHJhbnNmb3JtYXRpb24gbWF0cml4LCBjcmVhdGVzCisgICAgICAgIGEgRmxvYXRRdWFk
IHVzaW5nIHRoZXNlIDQgdHJhbnNmb3JtZWQgcG9pbnRzLCBhbmQgdGhlbiBhc2tzIHRoZSBGbG9h
dFF1YWQgZm9yIGl0cyBib3VuZGluZyBib3guIFRoaXMgcmVxdWlyZXMKKyAgICAgICAgYSB0b3Rh
bCBvZiAyNiBmbG9hdGluZyBwb2ludCBhZGRpdGlvbnMsIDI0IG11bHRpcGxpY2F0aW9ucyBhbmQg
MjAgY29tcGFyaXNvbnMsIGFzIHdlbGwgYXMgYSBzbWFsbCAoYnV0CisgICAgICAgIG1lYXN1cmFi
bGUpIGFtb3VudCBvZiBvdmVyaGVhZCB3aGVuIGNyZWF0aW5nIHRoZSBGbG9hdFBvaW50cyBhbmQg
RmxvYXRRdWFkIGFuZCBhc2tpbmcgZm9yIHRoZSBib3VuZGluZyByZWN0LgorCisgICAgICAgIFdl
IGNhbiBwYXJlIHRoaXMgZG93biB0byBqdXN0IDggYWRkaXRpb25zLCA4IG11bHRpcGxpY2F0aW9u
cywgYW5kIDQgY29tcGFyaXNvbnMgYnkgdXNpbmcgYSBkaWZmZXJlbnQgc3RyYXRlZ3kKKyAgICAg
ICAgdGhhdCBpbnN0ZWFkIGJyYW5jaGVzIG9uIHRoZSA0IHJlbGV2YW50IG1hdHJpeCBjb2VmZmlj
aWVudHMgYGEsIGIsIGMsIGRgIChyYXRoZXIgdGhhbiB0aGUgZWFjaCBvZiB0aGUgZmluYWwgeAor
ICAgICAgICBhbmQgeSBjb29yZGluYXRlcykgdG8gZGV0ZXJtaW5lIHdoaWNoIG9mIHRoZSBtaW4g
b3IgbWF4IHggYW5kIHkgdmFsdWVzIHRvIG11bHRpcGx5IGluIG9yZGVyIHRvIGNvbXB1dGUgdGhl
IG1pbgorICAgICAgICBhbmQgbWF4IHggYW5kIHkgY29vcmRpbmF0ZXMgaW4gdGhlIGZpbmFsIGJv
dW5kaW5nIHJlY3QuCisKKyAgICAgICAgSW4gYSBxdWljayBtaWNyb2JlbmNobWFyayB0aGF0IG1h
cHMgRmxvYXRSZWN0cyB0aHJvdWdoIGFuIGFmZmluZSBUcmFuc2Zvcm1hdGlvbk1hdHJpeCwgdGhp
cyByb3VnaGx5IGhhbHZlcyB0aGUKKyAgICAgICAgdGltZSBzcGVudCBpbiBgVHJhbnNmb3JtYXRp
b25NYXRyaXg6Om1hcFJlY3RgOyBvbiB0aGUgTXVsdGlwbHkgc3VidGVzdCBvZiBNb3Rpb25NYXJr
ICh3aGljaCBpbnZva2VzIHRoaXMgbWV0aG9kCisgICAgICAgIH4xNyBtaWxsaW9uIHRpbWVzLCBh
bG1vc3QgZW50aXJlbHkgd2l0aCBhZmZpbmUgdHJhbnNmb3JtYXRpb24gbWF0cmljZXMpLCBJIG1l
YXN1cmVkIGEgfjElIGltcHJvdmVtZW50LgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
dHJhbnNmb3Jtcy9UcmFuc2Zvcm1hdGlvbk1hdHJpeC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpU
cmFuc2Zvcm1hdGlvbk1hdHJpeDo6bWFwUmVjdCBjb25zdCk6CisKIDIwMjAtMDktMDMgIERhcmlu
IEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFNpbXBsaWZ5IHNvbWUgZWRpdGlu
ZyBjb2RlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFu
c2Zvcm1zL1RyYW5zZm9ybWF0aW9uTWF0cml4LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3RyYW5zZm9ybXMvVHJhbnNmb3JtYXRpb25NYXRyaXguY3BwCmluZGV4IGZiMmYx
M2E3ODk2NjZjYzRiZGM1N2NkYmJkZWRkMGUxYTQ4NThlZjIuLmMzNjIwODQ4NGJhMGY1YTNkZjM3
NjlmOTViNTM0OTQwMTYwNGMyYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3RyYW5zZm9ybXMvVHJhbnNmb3JtYXRpb25NYXRyaXguY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvVHJhbnNmb3JtYXRpb25NYXRy
aXguY3BwCkBAIC03NTEsMjAgKzc1MSw3MCBAQCBMYXlvdXRSZWN0IFRyYW5zZm9ybWF0aW9uTWF0
cml4OjptYXBSZWN0KGNvbnN0IExheW91dFJlY3QmIHIpIGNvbnN0CiAKIEZsb2F0UmVjdCBUcmFu
c2Zvcm1hdGlvbk1hdHJpeDo6bWFwUmVjdChjb25zdCBGbG9hdFJlY3QmIHIpIGNvbnN0CiB7Ci0g
ICAgaWYgKGlzSWRlbnRpdHlPclRyYW5zbGF0aW9uKCkpIHsKKyAgICBhdXRvIHR5cGUgPSB0aGlz
LT50eXBlKCk7CisgICAgaWYgKHR5cGUgPT0gVHlwZTo6SWRlbnRpdHlPclRyYW5zbGF0aW9uKSB7
CiAgICAgICAgIEZsb2F0UmVjdCBtYXBwZWRSZWN0KHIpOwogICAgICAgICBtYXBwZWRSZWN0Lm1v
dmUoc3RhdGljX2Nhc3Q8ZmxvYXQ+KG1fbWF0cml4WzNdWzBdKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+
KG1fbWF0cml4WzNdWzFdKSk7CiAgICAgICAgIHJldHVybiBtYXBwZWRSZWN0OwogICAgIH0KIAot
ICAgIEZsb2F0UXVhZCByZXN1bHQ7Ci0KKyAgICBmbG9hdCBtaW5YID0gci54KCk7CisgICAgZmxv
YXQgbWluWSA9IHIueSgpOwogICAgIGZsb2F0IG1heFggPSByLm1heFgoKTsKICAgICBmbG9hdCBt
YXhZID0gci5tYXhZKCk7Ci0gICAgcmVzdWx0LnNldFAxKGludGVybmFsTWFwUG9pbnQoRmxvYXRQ
b2ludChyLngoKSwgci55KCkpKSk7Ci0gICAgcmVzdWx0LnNldFAyKGludGVybmFsTWFwUG9pbnQo
RmxvYXRQb2ludChtYXhYLCByLnkoKSkpKTsKKworICAgIGlmICh0eXBlID09IFR5cGU6OkFmZmlu
ZSkgeworICAgICAgICBkb3VibGUgYSA9IG0xMSgpOworICAgICAgICBkb3VibGUgYiA9IG0xMigp
OworICAgICAgICBkb3VibGUgYyA9IG0yMSgpOworICAgICAgICBkb3VibGUgZCA9IG0yMigpOwor
CisgICAgICAgIGRvdWJsZSBtaW5SZXN1bHRYOworICAgICAgICBkb3VibGUgbWluUmVzdWx0WTsK
KyAgICAgICAgZG91YmxlIG1heFJlc3VsdFg7CisgICAgICAgIGRvdWJsZSBtYXhSZXN1bHRZOwor
CisgICAgICAgIGlmIChhID4gMCkgeworICAgICAgICAgICAgbWF4UmVzdWx0WCA9IGEgKiBtYXhY
OworICAgICAgICAgICAgbWluUmVzdWx0WCA9IGEgKiBtaW5YOworICAgICAgICB9IGVsc2Ugewor
ICAgICAgICAgICAgbWF4UmVzdWx0WCA9IGEgKiBtaW5YOworICAgICAgICAgICAgbWluUmVzdWx0
WCA9IGEgKiBtYXhYOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGIgPiAwKSB7CisgICAgICAg
ICAgICBtYXhSZXN1bHRZID0gYiAqIG1heFg7CisgICAgICAgICAgICBtaW5SZXN1bHRZID0gYiAq
IG1pblg7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBtYXhSZXN1bHRZID0gYiAqIG1p
blg7CisgICAgICAgICAgICBtaW5SZXN1bHRZID0gYiAqIG1heFg7CisgICAgICAgIH0KKworICAg
ICAgICBpZiAoYyA+IDApIHsKKyAgICAgICAgICAgIG1heFJlc3VsdFggKz0gYyAqIG1heFk7Cisg
ICAgICAgICAgICBtaW5SZXN1bHRYICs9IGMgKiBtaW5ZOworICAgICAgICB9IGVsc2UgeworICAg
ICAgICAgICAgbWF4UmVzdWx0WCArPSBjICogbWluWTsKKyAgICAgICAgICAgIG1pblJlc3VsdFgg
Kz0gYyAqIG1heFk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoZCA+IDApIHsKKyAgICAgICAg
ICAgIG1heFJlc3VsdFkgKz0gZCAqIG1heFk7CisgICAgICAgICAgICBtaW5SZXN1bHRZICs9IGQg
KiBtaW5ZOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgbWF4UmVzdWx0WSArPSBkICog
bWluWTsKKyAgICAgICAgICAgIG1pblJlc3VsdFkgKz0gZCAqIG1heFk7CisgICAgICAgIH0KKwor
ICAgICAgICByZXR1cm4gRmxvYXRSZWN0KG1pblJlc3VsdFggKyBtNDEoKSwgbWluUmVzdWx0WSAr
IG00MigpLCBtYXhSZXN1bHRYIC0gbWluUmVzdWx0WCwgbWF4UmVzdWx0WSAtIG1pblJlc3VsdFkp
OworICAgIH0KKworICAgIEZsb2F0UXVhZCByZXN1bHQ7CisKKyAgICByZXN1bHQuc2V0UDEoaW50
ZXJuYWxNYXBQb2ludChGbG9hdFBvaW50KG1pblgsIG1pblkpKSk7CisgICAgcmVzdWx0LnNldFAy
KGludGVybmFsTWFwUG9pbnQoRmxvYXRQb2ludChtYXhYLCBtaW5ZKSkpOwogICAgIHJlc3VsdC5z
ZXRQMyhpbnRlcm5hbE1hcFBvaW50KEZsb2F0UG9pbnQobWF4WCwgbWF4WSkpKTsKLSAgICByZXN1
bHQuc2V0UDQoaW50ZXJuYWxNYXBQb2ludChGbG9hdFBvaW50KHIueCgpLCBtYXhZKSkpOworICAg
IHJlc3VsdC5zZXRQNChpbnRlcm5hbE1hcFBvaW50KEZsb2F0UG9pbnQobWluWCwgbWF4WSkpKTsK
IAogICAgIHJldHVybiByZXN1bHQuYm91bmRpbmdCb3goKTsKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>408032</attachid>
            <date>2020-09-04 15:25:27 -0700</date>
            <delta_ts>2020-09-04 16:14:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-216190-20200904152526.patch</filename>
            <type>text/plain</type>
            <size>6563</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY2NjE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2E3M2MzMjRjZjlhZjlj
MzczZjVjZDcwYmNiNDkxMTYxMjliYzI4MS4uOGI4NmVjOTI0NTAwZjhkODIwMDUyODg2MDZlYjdj
ZThhOGU0ZmNjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDIwLTA5LTA0ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtNb3Rpb25NYXJr
XSBSZW5kZXJMYXllcjo6cGFpbnRMYXllckNvbnRlbnRzIHNwZW5kcyB+NSUgb2YgdGhlIHRpbWUg
aW4gTW9ub3RvbmljVGltZTo6bm93KCkgaW4gTXVsdGlwbHkKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNjE5MAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluIHNldmVyYWwgb2YgTW90aW9uTWFyaydzIHN1
YnRlc3RzIChmb3IgaW5zdGFuY2UsIE11bHRpcGx5KSwgd2Ugc3BlbnQgYSBsYXJnZSBhbW91bnQg
b2YgdGltZSB1bmRlcm5lYXRoCisgICAgICAgIGBSZW5kZXJMYXllcjo6cGFpbnRMYXllckNvbnRl
bnRzYCBkdWUgdG8gYm90aCB0aGUgbGFyZ2UgbnVtYmVyIG9mIGxheWVycyBhbmQgdGhlIG5lZWQg
dG8gZnJlcXVlbnRseSByZXBhaW50CisgICAgICAgIGVhY2ggbGF5ZXIgKGFsbCBvZiB3aGljaCBh
cmUgY29uc3RhbnRseSBiZWluZyBhbmltYXRlZCkuIFVuZGVybmVhdGggdGhpcyBtZXRob2QsIGEg
bm9udHJpdmlhbCBhbW91bnQgb2YgdGltZQorICAgICAgICAofjUlKSBpcyB0aGVuIHNwZW50IGdy
YWJiaW5nIHRoZSBzeXN0ZW0gdGltZSB2aWEgYE1vbm90b25pY1RpbWU6Om5vdygpYC4KKworICAg
ICAgICBXZSBjYW4gYXZvaWQgdGhpcyB3b3JrIGJ5IGluc3RlYWQgdXNpbmcgdGhlIHRpbWVzdGFt
cCB3aGVuIHdlIHN0YXJ0ZWQgcGFpbnRpbmcsIHdoaWNoIGlzIGFscmVhZHkgdHJhY2tlZCB2aWEK
KyAgICAgICAgYEZyYW1lVmlldzo6Y3VycmVudFBhaW50VGltZVN0YW1wKClgICh3aXRoIGBNb25v
dG9uaWNUaW1lOjpub3coKWAgYXMgYSBmYWxsYmFjayBmb3IgdGhlIGNhc2Ugd2hlcmUgd2UncmUK
KyAgICAgICAgcGFpbnRpbmcgdGhlIGxheWVyIG91dHNpZGUgb2YgdGhlIHNjb3BlIG9mIGEgRnJh
bWUgcGFpbnQpLgorCisgICAgICAgICogcmVuZGVyaW5nL1BhaW50RnJlcXVlbmN5VHJhY2tlci5o
OgorICAgICAgICAoV2ViQ29yZTo6UGFpbnRGcmVxdWVuY3lUcmFja2VyOjpiZWdpbik6CisKKyAg
ICAgICAgUmVmYWN0b3IgdGhpcyB0byByZWNlaXZlIGEgZ2l2ZW4gYE1vbm90b25pY1RpbWVgLCBp
bnN0ZWFkIG9mIGFsd2F5cyB1c2luZyBgTW9ub3RvbmljVGltZTo6bm93KClgLgorCisgICAgICAg
IChXZWJDb3JlOjpTaW5nbGVQYWludEZyZXF1ZW5jeVRyYWNraW5nOjpTaW5nbGVQYWludEZyZXF1
ZW5jeVRyYWNraW5nKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnBhaW50TGF5ZXJDb250ZW50cyk6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJMYXllcjo6c2ltdWxhdGVGcmVxdWVudFBhaW50KToKKworICAgICAg
ICBNb3ZlIHRoZSBpbXBsZW1lbnRhdGlvbiBvdXQgb2YgdGhlIGhlYWRlciwgYW5kIHVwZGF0ZSB0
aGlzIHRvIHBhc3MgaW4gTW9ub3RvbmljVGltZTo6bm93KCkuCisKKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyTGF5ZXIuaDoKKwogMjAyMC0wOS0wNCAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hz
aWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgYSBmYXN0IHBhdGggaW4gVHJhbnNmb3JtYXRp
b25NYXRyaXg6Om1hcFJlY3QoY29uc3QgRmxvYXRSZWN0JikgZm9yIGFmZmluZSB0cmFuc2Zvcm1h
dGlvbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9QYWludEZyZXF1ZW5j
eVRyYWNrZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9QYWludEZyZXF1ZW5jeVRyYWNr
ZXIuaAppbmRleCBhNjFiNjlhNzRkMWNkY2RkYjljMWQ0MWFmOTlmZjRkZTMzNDZlN2ZiLi4yOGU4
NDQwZDhjNjQwMWI2NjUwMjEwZjlkMzNlYTgwMzA3Yjk5OWNkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUGFpbnRGcmVxdWVuY3lUcmFja2VyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1BhaW50RnJlcXVlbmN5VHJhY2tlci5oCkBAIC0zNyw3ICszNyw3IEBA
IGNsYXNzIFBhaW50RnJlcXVlbmN5VHJhY2tlciB7CiBwdWJsaWM6CiAgICAgUGFpbnRGcmVxdWVu
Y3lUcmFja2VyKCkgPSBkZWZhdWx0OwogCi0gICAgdm9pZCBiZWdpbigpCisgICAgdm9pZCBiZWdp
bihNb25vdG9uaWNUaW1lIHRpbWVzdGFtcCkKICAgICB7CiAgICAgICAgIHN0YXRpYyB1bnNpZ25l
ZCBwYWludEZyZXF1ZW5jeVBhaW50Q291bnRUaHJlc2hvbGQgPSAzMDsKICAgICAgICAgc3RhdGlj
IFNlY29uZHMgcGFpbnRGcmVxdWVuY3lUaW1lUGVyRnJhbWVUaHJlc2hvbGQgPSAzMl9tczsKQEAg
LTQ2LDE0ICs0NiwxMyBAQCBwdWJsaWM6CiAgICAgICAgIC8vIFN0YXJ0IGJ5IGFzc3VtaW5nIHRo
ZSBwYWludCBmcmVxdWVuY3kgaXMgbG93CiAgICAgICAgIG1fcGFpbnRGcmVxdWVuY3kgPSBQYWlu
dEZyZXF1ZW5jeTo6TG93OwogCi0gICAgICAgIE1vbm90b25pY1RpbWUgbm93ID0gTW9ub3Rvbmlj
VGltZTo6bm93KCk7CiAgICAgICAgIGlmICghbV9maXJzdFBhaW50VGltZSkgewogICAgICAgICAg
ICAgLy8gSGFuZGxlIHRoZSBmaXJzdCB0aW1lIHRoaXMgbWV0aG9kIGlzIGNhbGxlZC4KLSAgICAg
ICAgICAgIG1fZmlyc3RQYWludFRpbWUgPSBub3c7Ci0gICAgICAgIH0gZWxzZSBpZiAobm93IC0g
bV9sYXN0UGFpbnRUaW1lID4gcGFpbnRGcmVxdWVuY3lTZWNvbmRzSWRsZVRocmVzaG9sZCkgewor
ICAgICAgICAgICAgbV9maXJzdFBhaW50VGltZSA9IHRpbWVzdGFtcDsKKyAgICAgICAgfSBlbHNl
IGlmICh0aW1lc3RhbXAgLSBtX2xhc3RQYWludFRpbWUgPiBwYWludEZyZXF1ZW5jeVNlY29uZHNJ
ZGxlVGhyZXNob2xkKSB7CiAgICAgICAgICAgICAvLyBJdCBoYXMgYmVlbiA1IHNlY29uZHMgc2lu
Y2UgbGFzdCB0aW1lIHdlIGRyYXcgdGhpcyByZW5kZXJlci4gUmVzZXQgdGhlIHN0YXRlCiAgICAg
ICAgICAgICAvLyBvZiB0aGlzIG9iamVjdCBhcyBpZiwgd2UndmUganVzdCBzdGFydGVkIHRyYWNr
aW5nIHRoZSBwYWludCBmcmVxdWVuY3kuCi0gICAgICAgICAgICBtX2ZpcnN0UGFpbnRUaW1lID0g
bm93OworICAgICAgICAgICAgbV9maXJzdFBhaW50VGltZSA9IHRpbWVzdGFtcDsKICAgICAgICAg
ICAgIG1fdG90YWxQYWludHMgPSAwOwogICAgICAgICB9IGVsc2UgaWYgKG1fdG90YWxQYWludHMg
Pj0gcGFpbnRGcmVxdWVuY3lQYWludENvdW50VGhyZXNob2xkICYmICgobV9sYXN0UGFpbnRUaW1l
IC0gbV9maXJzdFBhaW50VGltZSkgLyBtX3RvdGFsUGFpbnRzKSA8PSBwYWludEZyZXF1ZW5jeVRp
bWVQZXJGcmFtZVRocmVzaG9sZCkgewogICAgICAgICAgICAgLy8gQ2hhbmdlIHRoZSBwYWludCBm
cmVxdWVuY3kgdG8gYmUgaGlnaCBvbmx5IGlmOgpAQCAtNjIsNyArNjEsNyBAQCBwdWJsaWM6CiAg
ICAgICAgICAgICBtX3BhaW50RnJlcXVlbmN5ID0gUGFpbnRGcmVxdWVuY3k6OkhpZ2g7CiAgICAg
ICAgIH0KIAotICAgICAgICBtX2xhc3RQYWludFRpbWUgPSBub3c7CisgICAgICAgIG1fbGFzdFBh
aW50VGltZSA9IHRpbWVzdGFtcDsKICAgICAgICAgKyttX3RvdGFsUGFpbnRzOwogICAgIH0KIApA
QCAtODYsMTIgKzg1LDEyIEBAIHByaXZhdGU6CiBjbGFzcyBTaW5nbGVQYWludEZyZXF1ZW5jeVRy
YWNraW5nIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBTaW5n
bGVQYWludEZyZXF1ZW5jeVRyYWNraW5nKFBhaW50RnJlcXVlbmN5VHJhY2tlciYgcGFpbnRGcmVx
dWVuY3lUcmFja2VyLCBib29sIHRyYWNrID0gdHJ1ZSkKKyAgICBTaW5nbGVQYWludEZyZXF1ZW5j
eVRyYWNraW5nKFBhaW50RnJlcXVlbmN5VHJhY2tlciYgcGFpbnRGcmVxdWVuY3lUcmFja2VyLCBN
b25vdG9uaWNUaW1lIHRpbWVzdGFtcCwgYm9vbCB0cmFjayA9IHRydWUpCiAgICAgICAgIDogbV9w
YWludEZyZXF1ZW5jeVRyYWNrZXIocGFpbnRGcmVxdWVuY3lUcmFja2VyKQogICAgICAgICAsIG1f
dHJhY2sodHJhY2spCiAgICAgewogICAgICAgICBpZiAobV90cmFjaykKLSAgICAgICAgICAgIG1f
cGFpbnRGcmVxdWVuY3lUcmFja2VyLmJlZ2luKCk7CisgICAgICAgICAgICBtX3BhaW50RnJlcXVl
bmN5VHJhY2tlci5iZWdpbih0aW1lc3RhbXApOwogICAgIH0KIAogICAgIH5TaW5nbGVQYWludEZy
ZXF1ZW5jeVRyYWNraW5nKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3Bw
CmluZGV4IGZlMjM1YTkzYWNlN2IzMTYzNmE1ZGJjMGFkMDdmZjMyM2NhNjJmZjguLjc0YjkyN2Zm
YjRkOTRkNWUxNDhlMWNmYmFjNzFiMGRjMjA0ZTc0MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxheWVyLmNwcApAQCAtNDYyOSw3ICs0NjI5LDcgQEAgdm9pZCBSZW5kZXJMYXll
cjo6cGFpbnRMYXllckNvbnRlbnRzKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgTGF5
ZXJQYWludGkKICAgICBib29sIHNlbGVjdGlvbkFuZEJhY2tncm91bmRzT25seSA9IHBhaW50aW5n
SW5mby5wYWludEJlaGF2aW9yLmNvbnRhaW5zKFBhaW50QmVoYXZpb3I6OlNlbGVjdGlvbkFuZEJh
Y2tncm91bmRzT25seSk7CiAgICAgYm9vbCBzZWxlY3Rpb25Pbmx5ID0gcGFpbnRpbmdJbmZvLnBh
aW50QmVoYXZpb3IuY29udGFpbnMoUGFpbnRCZWhhdmlvcjo6U2VsZWN0aW9uT25seSk7CiAKLSAg
ICBTaW5nbGVQYWludEZyZXF1ZW5jeVRyYWNraW5nIHNpbmdsZVBhaW50RnJlcXVlbmN5VHJhY2tp
bmcobV9wYWludEZyZXF1ZW5jeVRyYWNrZXIsIHNob3VsZFBhaW50Q29udGVudCk7CisgICAgU2lu
Z2xlUGFpbnRGcmVxdWVuY3lUcmFja2luZyBzaW5nbGVQYWludEZyZXF1ZW5jeVRyYWNraW5nKG1f
cGFpbnRGcmVxdWVuY3lUcmFja2VyLCBGcmFtZVZpZXc6OmN1cnJlbnRQYWludFRpbWVTdGFtcCgp
ID86IE1vbm90b25pY1RpbWU6Om5vdygpLCBzaG91bGRQYWludENvbnRlbnQpOwogCiAgICAgTGF5
ZXJGcmFnbWVudHMgbGF5ZXJGcmFnbWVudHM7CiAgICAgUmVuZGVyT2JqZWN0KiBzdWJ0cmVlUGFp
bnRSb290Rm9yUmVuZGVyZXIgPSBudWxscHRyOwpAQCAtNzAyNSw2ICs3MDI1LDExIEBAIGJvb2wg
UmVuZGVyTGF5ZXI6OmlzVHJhbnNwYXJlbnRSZXNwZWN0aW5nUGFyZW50RnJhbWVzKCkgY29uc3QK
ICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK3ZvaWQgUmVuZGVyTGF5ZXI6OnNpbXVsYXRlRnJlcXVl
bnRQYWludCgpCit7CisgICAgU2luZ2xlUGFpbnRGcmVxdWVuY3lUcmFja2luZyB7IG1fcGFpbnRG
cmVxdWVuY3lUcmFja2VyLCBNb25vdG9uaWNUaW1lOjpub3coKSB9OworfQorCiAjaWYgIUxPR19E
SVNBQkxFRAogc3RhdGljIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIFJl
bmRlckxheWVyOjpFdmVudFJlZ2lvbkludmFsaWRhdGlvblJlYXNvbiByZWFzb24pCiB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCmluZGV4IGQ4MzczYWFlODE5ZDRlYjk5ZDZi
MjdkY2NlNWVlZTA5NGZlZTliZjQuLjk1NmFlNTkzNmM4NjhiYTZjOTAyY2Y1MjQ0YzUwM2E1YzQx
YzJiMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCkBAIC05MjAsNyAr
OTIwLDcgQEAgcHVibGljOgogCiAgICAgYm9vbCBzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Ny
b2xsYmFyT25MZWZ0KCkgY29uc3QgZmluYWwgeyByZXR1cm4gcmVuZGVyZXIoKS5zaG91bGRQbGFj
ZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCk7IH0KIAotICAgIHZvaWQgc2ltdWxhdGVG
cmVxdWVudFBhaW50KCkgeyBTaW5nbGVQYWludEZyZXF1ZW5jeVRyYWNraW5nIHsgbV9wYWludEZy
ZXF1ZW5jeVRyYWNrZXIgfTsgfQorICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2ltdWxhdGVGcmVx
dWVudFBhaW50KCk7CiAgICAgYm9vbCBwYWludGluZ0ZyZXF1ZW50bHkoKSBjb25zdCB7IHJldHVy
biBtX3BhaW50RnJlcXVlbmN5VHJhY2tlci5wYWludGluZ0ZyZXF1ZW50bHkoKTsgfQogCiAgICAg
V0VCQ09SRV9FWFBPUlQgYm9vbCBpc1RyYW5zcGFyZW50UmVzcGVjdGluZ1BhcmVudEZyYW1lcygp
IGNvbnN0Owo=
</data>
<flag name="review"
          id="423409"
          type_id="1"
          status="-"
          setter="simon.fraser"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>408055</attachid>
            <date>2020-09-04 17:51:40 -0700</date>
            <delta_ts>2020-09-04 21:22:34 -0700</delta_ts>
            <desc>v2</desc>
            <filename>bug-216190-20200904175139.patch</filename>
            <type>text/plain</type>
            <size>8933</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY2NjE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2E3M2MzMjRjZjlhZjlj
MzczZjVjZDcwYmNiNDkxMTYxMjliYzI4MS4uMTJkMTIyM2NkOWMzMGVkMDE2YzZiNWJkM2M4MmYy
OGNiYjkxNzllZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDIwLTA5LTA0ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtNb3Rpb25NYXJr
XSBSZW5kZXJMYXllcjo6cGFpbnRMYXllckNvbnRlbnRzIHNwZW5kcyB+NSUgb2YgdGhlIHRpbWUg
aW4gTW9ub3RvbmljVGltZTo6bm93KCkgaW4gTXVsdGlwbHkKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNjE5MAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluIHNldmVyYWwgb2YgTW90aW9uTWFyaydzIHN1
YnRlc3RzIChmb3IgaW5zdGFuY2UsIE11bHRpcGx5KSwgd2Ugc3BlbnQgYSBsYXJnZSBhbW91bnQg
b2YgdGltZSB1bmRlcm5lYXRoCisgICAgICAgIGBSZW5kZXJMYXllcjo6cGFpbnRMYXllckNvbnRl
bnRzYCBkdWUgdG8gYm90aCB0aGUgbGFyZ2UgbnVtYmVyIG9mIGxheWVycyBhbmQgdGhlIG5lZWQg
dG8gZnJlcXVlbnRseSByZXBhaW50CisgICAgICAgIGVhY2ggbGF5ZXIgKGFsbCBvZiB3aGljaCBh
cmUgY29uc3RhbnRseSBiZWluZyBhbmltYXRlZCkuIFVuZGVybmVhdGggdGhpcyBtZXRob2QsIGEg
bm9udHJpdmlhbCBhbW91bnQgb2YgdGltZQorICAgICAgICAofjUlKSBpcyB0aGVuIHNwZW50IGdy
YWJiaW5nIHRoZSBzeXN0ZW0gdGltZSB2aWEgYE1vbm90b25pY1RpbWU6Om5vdygpYC4KKworICAg
ICAgICBXZSBjYW4gYXZvaWQgdGhpcyB3b3JrIGJ5IGluc3RlYWQgdXNpbmcgdGhlIHRpbWVzdGFt
cCB3aGVuIHdlIGZpbmlzaGVkIHRoZSBsYXN0IHJlbmRlcmluZyB1cGRhdGUgKGJ1dCBiZWZvcmUg
d2UKKyAgICAgICAgc3RhcnRlZCBwYWludGluZyksIHdoaWNoIHdlIGtlZXAgdHJhY2sgb2YgdXNp
bmcgYSBuZXcgbWVtYmVyIHZhcmlhYmxlIG9uIGBQYWdlYC4KKworICAgICAgICAqIHBhZ2UvUGFn
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpmaW5hbGl6ZVJlbmRlcmluZ1VwZGF0ZSk6
CisKKyAgICAgICAgVXBkYXRlIGBtX2xhc3RSZW5kZXJpbmdVcGRhdGVUaW1lc3RhbXBgLgorCisg
ICAgICAgICogcGFnZS9QYWdlLmg6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpsYXN0UmVuZGVy
aW5nVXBkYXRlVGltZXN0YW1wIGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUGFpbnRGcmVx
dWVuY3lUcmFja2VyLmg6CisKKyAgICAgICAgRHJpdmUtYnkgY2xlYW51cDogbmFycm93IHRoZSBg
UGFpbnRGcmVxdWVuY3lgIGVudW0gdG8gYGJvb2xgIHdpZHRoLgorCisgICAgICAgIChXZWJDb3Jl
OjpQYWludEZyZXF1ZW5jeVRyYWNrZXI6OmJlZ2luKToKKworICAgICAgICBSZWZhY3RvciB0aGlz
IHRvIHJlY2VpdmUgYSBnaXZlbiBgTW9ub3RvbmljVGltZWAsIGluc3RlYWQgb2YgYWx3YXlzIHVz
aW5nIGBNb25vdG9uaWNUaW1lOjpub3coKWAuCisKKyAgICAgICAgKFdlYkNvcmU6OlNpbmdsZVBh
aW50RnJlcXVlbmN5VHJhY2tpbmc6OlNpbmdsZVBhaW50RnJlcXVlbmN5VHJhY2tpbmcpOgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJMYXllcjo6cGFpbnRMYXllckNvbnRlbnRzKToKKworICAgICAgICBQYXNzIGluIHRoZSBgUGFn
ZWAncyBsYXN0IHJlbmRlcmluZyB1cGRhdGUgdGltZSB3aGVuIHVwZGF0aW5nIHRoZSBwYWludCBm
cmVxdWVuY3kgdHJhY2tlci4gSWYgd2UgaGF2ZW4ndCBldmVuCisgICAgICAgIHBlcmZvcm1lZCBh
IHJlbmRlcmluZyB1cGRhdGUgeWV0LCB0aGVuIGRvbid0IGJvdGhlciB0cmFja2luZyB0aGlzIHBh
aW50ICh0aGlzIGNhbiBvY2N1ciBpbiBXZWJLaXQxLCBpZiBhbiBBUEkKKyAgICAgICAgY2xpZW50
IHN1Y2ggYXMgRHVtcFJlbmRlclRyZWUgdHJpZXMgdG8gaW1tZWRpYXRlbHkgcGFpbnQgYSBuZXds
eSBjcmVhdGVkIGBXZWJWaWV3YCB1c2luZworICAgICAgICBgLWNhY2hlRGlzcGxheUluUmVjdDp0
b0JpdG1hcEltYWdlUmVwOmApLgorCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6c2lt
dWxhdGVGcmVxdWVudFBhaW50KToKKworICAgICAgICBNb3ZlIHRoZSBpbXBsZW1lbnRhdGlvbiBv
dXQgb2YgdGhlIGhlYWRlciwgYW5kIHVwZGF0ZSB0aGlzIHRvIHBhc3MgaW4gdGhlIHBhZ2UncyBs
YXN0IHJlbmRlcmluZyB1cGRhdGUKKyAgICAgICAgdGltZXN0YW1wLgorCisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlckxheWVyLmg6CisKIDIwMjAtMDktMDQgIFdlbnNvbiBIc2llaCAgPHdlbnNv
bl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIGEgZmFzdCBwYXRoIGluIFRyYW5zZm9y
bWF0aW9uTWF0cml4OjptYXBSZWN0KGNvbnN0IEZsb2F0UmVjdCYpIGZvciBhZmZpbmUgdHJhbnNm
b3JtYXRpb25zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAppbmRleCBkN2RlZGZkNTkxYzM5ZWZkMDIyZDQ1N2Ux
MmJhYTJmOGI4MzNiOThjLi45N2Y0ZWRiMGJhMDk2MmRkN2RmYjgzODg0ZTg1MDI5OTMyZGQ4MjY2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGFnZS5jcHAKQEAgLTE0MzgsNiArMTQzOCw4IEBAIHZvaWQgUGFnZTo6dXBk
YXRlUmVuZGVyaW5nKCkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAorICAgIG1fbGFzdFJlbmRl
cmluZ1VwZGF0ZVRpbWVzdGFtcCA9IE1vbm90b25pY1RpbWU6Om5vdygpOworCiAgICAgYm9vbCBp
c1NWR0ltYWdlUGFnZSA9IGNocm9tZSgpLmNsaWVudCgpLmlzU1ZHSW1hZ2VDaHJvbWVDbGllbnQo
KTsKICAgICBpZiAoIWlzU1ZHSW1hZ2VQYWdlKQogICAgICAgICB0cmFjZVBvaW50KFJlbmRlcmlu
Z1VwZGF0ZVN0YXJ0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKaW5kZXggMGFiMmJiNTUwMTk0MGJkNDFmZDEwMDNi
MzBlNjZjMGUwNzE3YTVhOC4uYWRmOTA2MmNiMGEyYTk2ODk5NDI3YjRiYmJhMzYxZTgxMTdkOTk3
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9QYWdlLmgKQEAgLTc3NSw2ICs3NzUsOCBAQCBwdWJsaWM6CiAgICAgYm9vbCBo
YXNCZWVuTm90aWZpZWRUb0luamVjdFVzZXJTY3JpcHRzKCkgY29uc3QgeyByZXR1cm4gbV9oYXNC
ZWVuTm90aWZpZWRUb0luamVjdFVzZXJTY3JpcHRzOyB9CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBub3RpZnlUb0luamVjdFVzZXJTY3JpcHRzKCk7CiAKKyAgICBNb25vdG9uaWNUaW1lIGxhc3RS
ZW5kZXJpbmdVcGRhdGVUaW1lc3RhbXAoKSBjb25zdCB7IHJldHVybiBtX2xhc3RSZW5kZXJpbmdV
cGRhdGVUaW1lc3RhbXA7IH0KKwogcHJpdmF0ZToKICAgICBzdHJ1Y3QgTmF2aWdhdGlvbiB7CiAg
ICAgICAgIFJlZ2lzdHJhYmxlRG9tYWluIGRvbWFpbjsKQEAgLTEwNjksNiArMTA3MSw4IEBAIHBy
aXZhdGU6CiAgICAgYm9vbCBtX2NhblVzZUNyZWRlbnRpYWxTdG9yYWdlIHsgdHJ1ZSB9OwogICAg
IFNob3VsZFJlbGF4VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nIG1fc2hvdWxkUmVsYXhUaGlyZFBh
cnR5Q29va2llQmxvY2tpbmcgeyBTaG91bGRSZWxheFRoaXJkUGFydHlDb29raWVCbG9ja2luZzo6
Tm8gfTsKICAgICBib29sIG1faGFzQmVlbk5vdGlmaWVkVG9JbmplY3RVc2VyU2NyaXB0cyB7IGZh
bHNlIH07CisKKyAgICBNb25vdG9uaWNUaW1lIG1fbGFzdFJlbmRlcmluZ1VwZGF0ZVRpbWVzdGFt
cDsKIH07CiAKIGlubGluZSBQYWdlR3JvdXAmIFBhZ2U6Omdyb3VwKCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9QYWludEZyZXF1ZW5jeVRyYWNrZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9QYWludEZyZXF1ZW5jeVRyYWNrZXIuaAppbmRleCBhNjFiNjlhNzRk
MWNkY2RkYjljMWQ0MWFmOTlmZjRkZTMzNDZlN2ZiLi5lZDBmMDRiZTdlNTNiOWNlODA4Y2Y2ODE3
OGExY2ViNjIyNTQ0MzIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUGFp
bnRGcmVxdWVuY3lUcmFja2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1BhaW50
RnJlcXVlbmN5VHJhY2tlci5oCkBAIC0zNyw3ICszNyw3IEBAIGNsYXNzIFBhaW50RnJlcXVlbmN5
VHJhY2tlciB7CiBwdWJsaWM6CiAgICAgUGFpbnRGcmVxdWVuY3lUcmFja2VyKCkgPSBkZWZhdWx0
OwogCi0gICAgdm9pZCBiZWdpbigpCisgICAgdm9pZCBiZWdpbihNb25vdG9uaWNUaW1lIHRpbWVz
dGFtcCkKICAgICB7CiAgICAgICAgIHN0YXRpYyB1bnNpZ25lZCBwYWludEZyZXF1ZW5jeVBhaW50
Q291bnRUaHJlc2hvbGQgPSAzMDsKICAgICAgICAgc3RhdGljIFNlY29uZHMgcGFpbnRGcmVxdWVu
Y3lUaW1lUGVyRnJhbWVUaHJlc2hvbGQgPSAzMl9tczsKQEAgLTQ2LDE0ICs0NiwxMyBAQCBwdWJs
aWM6CiAgICAgICAgIC8vIFN0YXJ0IGJ5IGFzc3VtaW5nIHRoZSBwYWludCBmcmVxdWVuY3kgaXMg
bG93CiAgICAgICAgIG1fcGFpbnRGcmVxdWVuY3kgPSBQYWludEZyZXF1ZW5jeTo6TG93OwogCi0g
ICAgICAgIE1vbm90b25pY1RpbWUgbm93ID0gTW9ub3RvbmljVGltZTo6bm93KCk7CiAgICAgICAg
IGlmICghbV9maXJzdFBhaW50VGltZSkgewogICAgICAgICAgICAgLy8gSGFuZGxlIHRoZSBmaXJz
dCB0aW1lIHRoaXMgbWV0aG9kIGlzIGNhbGxlZC4KLSAgICAgICAgICAgIG1fZmlyc3RQYWludFRp
bWUgPSBub3c7Ci0gICAgICAgIH0gZWxzZSBpZiAobm93IC0gbV9sYXN0UGFpbnRUaW1lID4gcGFp
bnRGcmVxdWVuY3lTZWNvbmRzSWRsZVRocmVzaG9sZCkgeworICAgICAgICAgICAgbV9maXJzdFBh
aW50VGltZSA9IHRpbWVzdGFtcDsKKyAgICAgICAgfSBlbHNlIGlmICh0aW1lc3RhbXAgLSBtX2xh
c3RQYWludFRpbWUgPiBwYWludEZyZXF1ZW5jeVNlY29uZHNJZGxlVGhyZXNob2xkKSB7CiAgICAg
ICAgICAgICAvLyBJdCBoYXMgYmVlbiA1IHNlY29uZHMgc2luY2UgbGFzdCB0aW1lIHdlIGRyYXcg
dGhpcyByZW5kZXJlci4gUmVzZXQgdGhlIHN0YXRlCiAgICAgICAgICAgICAvLyBvZiB0aGlzIG9i
amVjdCBhcyBpZiwgd2UndmUganVzdCBzdGFydGVkIHRyYWNraW5nIHRoZSBwYWludCBmcmVxdWVu
Y3kuCi0gICAgICAgICAgICBtX2ZpcnN0UGFpbnRUaW1lID0gbm93OworICAgICAgICAgICAgbV9m
aXJzdFBhaW50VGltZSA9IHRpbWVzdGFtcDsKICAgICAgICAgICAgIG1fdG90YWxQYWludHMgPSAw
OwogICAgICAgICB9IGVsc2UgaWYgKG1fdG90YWxQYWludHMgPj0gcGFpbnRGcmVxdWVuY3lQYWlu
dENvdW50VGhyZXNob2xkICYmICgobV9sYXN0UGFpbnRUaW1lIC0gbV9maXJzdFBhaW50VGltZSkg
LyBtX3RvdGFsUGFpbnRzKSA8PSBwYWludEZyZXF1ZW5jeVRpbWVQZXJGcmFtZVRocmVzaG9sZCkg
ewogICAgICAgICAgICAgLy8gQ2hhbmdlIHRoZSBwYWludCBmcmVxdWVuY3kgdG8gYmUgaGlnaCBv
bmx5IGlmOgpAQCAtNjIsNyArNjEsNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICBtX3BhaW50RnJl
cXVlbmN5ID0gUGFpbnRGcmVxdWVuY3k6OkhpZ2g7CiAgICAgICAgIH0KIAotICAgICAgICBtX2xh
c3RQYWludFRpbWUgPSBub3c7CisgICAgICAgIG1fbGFzdFBhaW50VGltZSA9IHRpbWVzdGFtcDsK
ICAgICAgICAgKyttX3RvdGFsUGFpbnRzOwogICAgIH0KIApAQCAtNzksMTkgKzc4LDE5IEBAIHBy
aXZhdGU6CiAgICAgTW9ub3RvbmljVGltZSBtX2xhc3RQYWludFRpbWU7CiAgICAgdW5zaWduZWQg
bV90b3RhbFBhaW50cyB7IDAgfTsKIAotICAgIGVudW0gY2xhc3MgUGFpbnRGcmVxdWVuY3kgeyBM
b3csIEhpZ2ggfTsKKyAgICBlbnVtIGNsYXNzIFBhaW50RnJlcXVlbmN5IDogYm9vbCB7IExvdywg
SGlnaCB9OwogICAgIFBhaW50RnJlcXVlbmN5IG1fcGFpbnRGcmVxdWVuY3kgeyBQYWludEZyZXF1
ZW5jeTo6TG93IH07CiB9OwogCiBjbGFzcyBTaW5nbGVQYWludEZyZXF1ZW5jeVRyYWNraW5nIHsK
ICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBTaW5nbGVQYWludEZy
ZXF1ZW5jeVRyYWNraW5nKFBhaW50RnJlcXVlbmN5VHJhY2tlciYgcGFpbnRGcmVxdWVuY3lUcmFj
a2VyLCBib29sIHRyYWNrID0gdHJ1ZSkKKyAgICBTaW5nbGVQYWludEZyZXF1ZW5jeVRyYWNraW5n
KFBhaW50RnJlcXVlbmN5VHJhY2tlciYgcGFpbnRGcmVxdWVuY3lUcmFja2VyLCBNb25vdG9uaWNU
aW1lIHRpbWVzdGFtcCwgYm9vbCB0cmFjayA9IHRydWUpCiAgICAgICAgIDogbV9wYWludEZyZXF1
ZW5jeVRyYWNrZXIocGFpbnRGcmVxdWVuY3lUcmFja2VyKQogICAgICAgICAsIG1fdHJhY2sodHJh
Y2spCiAgICAgewogICAgICAgICBpZiAobV90cmFjaykKLSAgICAgICAgICAgIG1fcGFpbnRGcmVx
dWVuY3lUcmFja2VyLmJlZ2luKCk7CisgICAgICAgICAgICBtX3BhaW50RnJlcXVlbmN5VHJhY2tl
ci5iZWdpbih0aW1lc3RhbXApOwogICAgIH0KIAogICAgIH5TaW5nbGVQYWludEZyZXF1ZW5jeVRy
YWNraW5nKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXll
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCmluZGV4IGZl
MjM1YTkzYWNlN2IzMTYzNmE1ZGJjMGFkMDdmZjMyM2NhNjJmZjguLmJkOWVkMzkzZGMzNjNjNzMz
NWQ5MTRkMWVkYWQ5NmZhZGQ3YmNkY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxheWVyLmNwcApAQCAtNDYyOSw3ICs0NjI5LDggQEAgdm9pZCBSZW5kZXJMYXllcjo6cGFpbnRM
YXllckNvbnRlbnRzKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgTGF5ZXJQYWludGkK
ICAgICBib29sIHNlbGVjdGlvbkFuZEJhY2tncm91bmRzT25seSA9IHBhaW50aW5nSW5mby5wYWlu
dEJlaGF2aW9yLmNvbnRhaW5zKFBhaW50QmVoYXZpb3I6OlNlbGVjdGlvbkFuZEJhY2tncm91bmRz
T25seSk7CiAgICAgYm9vbCBzZWxlY3Rpb25Pbmx5ID0gcGFpbnRpbmdJbmZvLnBhaW50QmVoYXZp
b3IuY29udGFpbnMoUGFpbnRCZWhhdmlvcjo6U2VsZWN0aW9uT25seSk7CiAKLSAgICBTaW5nbGVQ
YWludEZyZXF1ZW5jeVRyYWNraW5nIHNpbmdsZVBhaW50RnJlcXVlbmN5VHJhY2tpbmcobV9wYWlu
dEZyZXF1ZW5jeVRyYWNrZXIsIHNob3VsZFBhaW50Q29udGVudCk7CisgICAgYXV0byB0aW1lc3Rh
bXAgPSBwYWdlKCkubGFzdFJlbmRlcmluZ1VwZGF0ZVRpbWVzdGFtcCgpOworICAgIFNpbmdsZVBh
aW50RnJlcXVlbmN5VHJhY2tpbmcgc2luZ2xlUGFpbnRGcmVxdWVuY3lUcmFja2luZyhtX3BhaW50
RnJlcXVlbmN5VHJhY2tlciwgdGltZXN0YW1wLCBzaG91bGRQYWludENvbnRlbnQgJiYgdGltZXN0
YW1wKTsKIAogICAgIExheWVyRnJhZ21lbnRzIGxheWVyRnJhZ21lbnRzOwogICAgIFJlbmRlck9i
amVjdCogc3VidHJlZVBhaW50Um9vdEZvclJlbmRlcmVyID0gbnVsbHB0cjsKQEAgLTcwMjUsNiAr
NzAyNiwxMSBAQCBib29sIFJlbmRlckxheWVyOjppc1RyYW5zcGFyZW50UmVzcGVjdGluZ1BhcmVu
dEZyYW1lcygpIGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCit2b2lkIFJlbmRlckxheWVy
OjpzaW11bGF0ZUZyZXF1ZW50UGFpbnQoKQoreworICAgIFNpbmdsZVBhaW50RnJlcXVlbmN5VHJh
Y2tpbmcgeyBtX3BhaW50RnJlcXVlbmN5VHJhY2tlciwgcGFnZSgpLmxhc3RSZW5kZXJpbmdVcGRh
dGVUaW1lc3RhbXAoKSB9OworfQorCiAjaWYgIUxPR19ESVNBQkxFRAogc3RhdGljIFRleHRTdHJl
YW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIFJlbmRlckxheWVyOjpFdmVudFJlZ2lvbklu
dmFsaWRhdGlvblJlYXNvbiByZWFzb24pCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
YXllci5oCmluZGV4IGQ4MzczYWFlODE5ZDRlYjk5ZDZiMjdkY2NlNWVlZTA5NGZlZTliZjQuLjk1
NmFlNTkzNmM4NjhiYTZjOTAyY2Y1MjQ0YzUwM2E1YzQxYzJiMDUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllci5oCkBAIC05MjAsNyArOTIwLDcgQEAgcHVibGljOgogCiAgICAg
Ym9vbCBzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkgY29uc3QgZmlu
YWwgeyByZXR1cm4gcmVuZGVyZXIoKS5zaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFy
T25MZWZ0KCk7IH0KIAotICAgIHZvaWQgc2ltdWxhdGVGcmVxdWVudFBhaW50KCkgeyBTaW5nbGVQ
YWludEZyZXF1ZW5jeVRyYWNraW5nIHsgbV9wYWludEZyZXF1ZW5jeVRyYWNrZXIgfTsgfQorICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgc2ltdWxhdGVGcmVxdWVudFBhaW50KCk7CiAgICAgYm9vbCBw
YWludGluZ0ZyZXF1ZW50bHkoKSBjb25zdCB7IHJldHVybiBtX3BhaW50RnJlcXVlbmN5VHJhY2tl
ci5wYWludGluZ0ZyZXF1ZW50bHkoKTsgfQogCiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBpc1Ry
YW5zcGFyZW50UmVzcGVjdGluZ1BhcmVudEZyYW1lcygpIGNvbnN0Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>408065</attachid>
            <date>2020-09-04 22:02:47 -0700</date>
            <delta_ts>2020-09-05 16:26:23 -0700</delta_ts>
            <desc>v3 (for EWS)</desc>
            <filename>bug-216190-20200904220246.patch</filename>
            <type>text/plain</type>
            <size>12798</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY2NjE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2E3M2MzMjRjZjlhZjlj
MzczZjVjZDcwYmNiNDkxMTYxMjliYzI4MS4uYmU4Y2MyYWI2ZWI3NWM2ZDQzNjM0MWRiMTc0ZWEy
M2JlNzk0NjBmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDIwLTA5LTA0ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtNb3Rpb25NYXJr
XSBSZW5kZXJMYXllcjo6cGFpbnRMYXllckNvbnRlbnRzIHNwZW5kcyB+NSUgb2YgdGhlIHRpbWUg
aW4gTW9ub3RvbmljVGltZTo6bm93KCkgaW4gTXVsdGlwbHkKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNjE5MAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluIHNldmVyYWwgb2YgTW90aW9uTWFyaydzIHN1
YnRlc3RzIChmb3IgaW5zdGFuY2UsIE11bHRpcGx5KSwgd2Ugc3BlbnQgYSBsYXJnZSBhbW91bnQg
b2YgdGltZSB1bmRlcm5lYXRoCisgICAgICAgIGBSZW5kZXJMYXllcjo6cGFpbnRMYXllckNvbnRl
bnRzYCBkdWUgdG8gYm90aCB0aGUgbGFyZ2UgbnVtYmVyIG9mIGxheWVycyBhbmQgdGhlIG5lZWQg
dG8gZnJlcXVlbnRseSByZXBhaW50CisgICAgICAgIGVhY2ggbGF5ZXIgKGFsbCBvZiB3aGljaCBh
cmUgY29uc3RhbnRseSBiZWluZyBhbmltYXRlZCkuIFVuZGVybmVhdGggdGhpcyBtZXRob2QsIGEg
bm9udHJpdmlhbCBhbW91bnQgb2YgdGltZQorICAgICAgICAofjUlKSBpcyB0aGVuIHNwZW50IGdy
YWJiaW5nIHRoZSBzeXN0ZW0gdGltZSB2aWEgYE1vbm90b25pY1RpbWU6Om5vdygpYC4KKworICAg
ICAgICBXZSBjYW4gYXZvaWQgdGhpcyBleHRyYSB3b3JrIGJ5IGluc3RlYWQgdXNpbmcgdGhlIHRp
bWVzdGFtcCBvZiB0aGUgbGFzdCByZW5kZXJpbmcgdXBkYXRlIChiZWZvcmUgd2Ugc3RhcnRlZAor
ICAgICAgICBwYWludGluZyksIHdoaWNoIHdlIGtlZXAgdHJhY2sgb2YgdXNpbmcgYSBuZXcgbWVt
YmVyIHZhcmlhYmxlIG9uIGBQYWdlYC4gU2VlIGJlbG93IGZvciBtb3JlIGRldGFpbHMsIGFzIHdl
bGwgYXMKKyAgICAgICAgdGhlIFdlYktpdDIgQ2hhbmdlTG9nLgorCisgICAgICAgICogcGFnZS9D
aHJvbWVDbGllbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudDo6dGltZXN0YW1w
Rm9yUGFpbnRGcmVxdWVuY3lUcmFja2luZyBjb25zdCk6CisKKyAgICAgICAgQWRkIGEgY2xpZW50
IGhvb2sgdG8gZmV0Y2ggdGhlIHRpbWVzdGFtcCB0byB1c2Ugd2hlbiB0cmFja2luZyBwYWludGlu
ZyBmcmVxdWVuY3kuIFNlZSB0aGUgV2ViS2l0MiBDaGFuZ2VMb2cgZm9yCisgICAgICAgIG1vcmUg
ZGV0YWlscy4KKworICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQ
YWdlOjp1cGRhdGVSZW5kZXJpbmcpOgorCisgICAgICAgIFVwZGF0ZSBgbV9sYXN0UmVuZGVyaW5n
VXBkYXRlVGltZXN0YW1wYC4KKworICAgICAgICAqIHBhZ2UvUGFnZS5oOgorICAgICAgICAoV2Vi
Q29yZTo6UGFnZTo6bGFzdFJlbmRlcmluZ1VwZGF0ZVRpbWVzdGFtcCBjb25zdCk6CisgICAgICAg
ICogcmVuZGVyaW5nL1BhaW50RnJlcXVlbmN5VHJhY2tlci5oOgorCisgICAgICAgIERyaXZlLWJ5
IGNsZWFudXA6IG5hcnJvdyB0aGUgYFBhaW50RnJlcXVlbmN5YCBlbnVtIHRvIGBib29sYCB3aWR0
aC4KKworICAgICAgICAoV2ViQ29yZTo6UGFpbnRGcmVxdWVuY3lUcmFja2VyOjpiZWdpbik6Cisg
ICAgICAgIChXZWJDb3JlOjpTaW5nbGVQYWludEZyZXF1ZW5jeVRyYWNraW5nOjpTaW5nbGVQYWlu
dEZyZXF1ZW5jeVRyYWNraW5nKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnBhaW50TGF5ZXJDb250ZW50cyk6CisK
KyAgICAgICAgQ2FsbCBvdXQgdG8gdGhlIGNsaWVudCBsYXllciB0byByZXR1cm4gYSB0aW1lc3Rh
bXAgZm9yIHRyYWNraW5nIHBhaW50aW5nIGZyZXF1ZW5jeS4gQnkgZGVmYXVsdCwgdGhpcyBpcyBz
aW1wbHkKKyAgICAgICAgdGhlIGN1cnJlbnQgdGltZSAoYE1vbm90b25pY1RpbWU6Om5vdygpYCks
IGJ1dCBwb3J0cyAobmFtZWx5LCBXZWJLaXQyKSBtYXkgb3B0IGZvciBhIGNvYXJzZXIgZ3JhbnVs
YXJpdHkuCisKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpzaW11bGF0ZUZyZXF1ZW50
UGFpbnQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllci5oOgorCiAyMDIwLTA5LTA0
ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBh
IGZhc3QgcGF0aCBpbiBUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6bWFwUmVjdChjb25zdCBGbG9hdFJl
Y3QmKSBmb3IgYWZmaW5lIHRyYW5zZm9ybWF0aW9ucwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA5NDkxMWQ4OTYyNTFh
ZTdjYTY1ODU4NzRjNTIwYWI4ODZmYWViOWIzLi4xZDRjMGNiNjVkODFhOThjOTRmODdhZDFhOGYz
NzhmOGY2MDIzZDE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDIwLTA5LTA0ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtNb3Rpb25NYXJr
XSBSZW5kZXJMYXllcjo6cGFpbnRMYXllckNvbnRlbnRzIHNwZW5kcyB+NSUgb2YgdGhlIHRpbWUg
aW4gTW9ub3RvbmljVGltZTo6bm93KCkgaW4gTXVsdGlwbHkKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNjE5MAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OnRp
bWVzdGFtcEZvclBhaW50RnJlcXVlbmN5VHJhY2tpbmcgY29uc3QpOgorCisgICAgICAgIEluIFdl
YktpdDIsIHdlIGNhbiBhc3N1bWUgKHdpdGggdGhlIGV4Y2VwdGlvbiBvZiBTVkcgcGFnZXMpIHRo
YXQgd2UgbXVzdCd2ZSBwZXJmb3JtZWQgYSByZW5kZXJpbmcgdXBkYXRlIHByaW9yCisgICAgICAg
IHRvIHRyYWNraW5nIHBhaW50aW5nIGZyZXF1ZW5jaWVzLiBBcyBzdWNoLCB3ZSBjYW4gdXNlIHRo
ZSBwYWdlJ3MgcmVuZGVyaW5nIHVwZGF0ZSB0aW1lc3RhbXAgaW5zdGVhZCBvZiB0aGUgcmVhbAor
ICAgICAgICBjdXJyZW50IHRpbWUgKGBNb25vdG9uaWNUaW1lOjpub3coKWApLgorCisgICAgICAg
IE5vdGUgdGhhdCBpbiBXZWJLaXQxLCBpdCBpcyBwb3NzaWJsZSBmb3IgYW55IGNsaWVudCB0byBm
b3JjZSBhIHN5bmNocm9ub3VzIHBhaW50IG9mIHRoZSBwYWdlIGJlZm9yZSB0aGUgcGFnZSBoYXMK
KyAgICAgICAgcGVyZm9ybWVkIGEgcmVuZGVyaW5nIHVwZGF0ZSwgd2hpY2ggdHJpZ2dlcnMgYXNz
ZXJ0aW9ucyBpbiBgU2luZ2xlUGFpbnRGcmVxdWVuY3lUcmFja2luZzo6ZW5kKClgLiBBcyBzdWNo
LCB3ZQorICAgICAgICBzdGljayB3aXRoIGBNb25vdG9uaWNUaW1lOjpub3coKWAgaW4gV2ViS2l0
MS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
Lmg6CisKIDIwMjAtMDktMDQgIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29tPgog
CiAgICAgICAgIFttYWNPU10gQWRkIGNsaWVudCBkZWNvZGVyIGVudGl0bGVtZW50CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9DaHJvbWVDbGllbnQuaAppbmRleCBkYThjZjY3MmExMDFkNGNlY2YyNzEzMDExYTIxMTBm
YTgyM2Q2YmU2Li5hZmZiNGMxMDQ4MDM1Njg3N2FlYTc2ZDRiYzA5MDhjNmI3NDhmN2IyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKQEAgLTUxLDYgKzUxLDcgQEAKICNpbmNsdWRlIDx3
dGYvQXNzZXJ0aW9ucy5oPgogI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogI2lu
Y2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8d3RmL01vbm90b25pY1RpbWUuaD4KICNp
bmNsdWRlIDx3dGYvU2Vjb25kcy5oPgogCiAjaWYgRU5BQkxFKFdJUkVMRVNTX1BMQVlCQUNLX1RB
UkdFVCkKQEAgLTQ1OSw2ICs0NjAsOCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIGJvb2wgc2hv
dWxkVXNlVGlsZWRCYWNraW5nRm9yRnJhbWVWaWV3KGNvbnN0IEZyYW1lVmlldyYpIGNvbnN0IHsg
cmV0dXJuIGZhbHNlOyB9CiAKKyAgICB2aXJ0dWFsIE1vbm90b25pY1RpbWUgdGltZXN0YW1wRm9y
UGFpbnRGcmVxdWVuY3lUcmFja2luZygpIGNvbnN0IHsgcmV0dXJuIE1vbm90b25pY1RpbWU6Om5v
dygpOyB9CisKICAgICB2aXJ0dWFsIHZvaWQgaXNQbGF5aW5nTWVkaWFEaWRDaGFuZ2UoTWVkaWFQ
cm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzLCB1aW50NjRfdCkgeyB9CiAgICAgdmlydHVhbCB2b2lk
IGhhbmRsZUF1dG9wbGF5RXZlbnQoQXV0b3BsYXlFdmVudCwgT3B0aW9uU2V0PEF1dG9wbGF5RXZl
bnRGbGFncz4pIHsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAppbmRleCBkN2RlZGZkNTkxYzM5ZWZkMDIy
ZDQ1N2UxMmJhYTJmOGI4MzNiOThjLi45N2Y0ZWRiMGJhMDk2MmRkN2RmYjgzODg0ZTg1MDI5OTMy
ZGQ4MjY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKQEAgLTE0MzgsNiArMTQzOCw4IEBAIHZvaWQgUGFn
ZTo6dXBkYXRlUmVuZGVyaW5nKCkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAorICAgIG1fbGFz
dFJlbmRlcmluZ1VwZGF0ZVRpbWVzdGFtcCA9IE1vbm90b25pY1RpbWU6Om5vdygpOworCiAgICAg
Ym9vbCBpc1NWR0ltYWdlUGFnZSA9IGNocm9tZSgpLmNsaWVudCgpLmlzU1ZHSW1hZ2VDaHJvbWVD
bGllbnQoKTsKICAgICBpZiAoIWlzU1ZHSW1hZ2VQYWdlKQogICAgICAgICB0cmFjZVBvaW50KFJl
bmRlcmluZ1VwZGF0ZVN0YXJ0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFn
ZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKaW5kZXggMGFiMmJiNTUwMTk0MGJkNDFm
ZDEwMDNiMzBlNjZjMGUwNzE3YTVhOC4uYWRmOTA2MmNiMGEyYTk2ODk5NDI3YjRiYmJhMzYxZTgx
MTdkOTk3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKQEAgLTc3NSw2ICs3NzUsOCBAQCBwdWJsaWM6CiAgICAg
Ym9vbCBoYXNCZWVuTm90aWZpZWRUb0luamVjdFVzZXJTY3JpcHRzKCkgY29uc3QgeyByZXR1cm4g
bV9oYXNCZWVuTm90aWZpZWRUb0luamVjdFVzZXJTY3JpcHRzOyB9CiAgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBub3RpZnlUb0luamVjdFVzZXJTY3JpcHRzKCk7CiAKKyAgICBNb25vdG9uaWNUaW1l
IGxhc3RSZW5kZXJpbmdVcGRhdGVUaW1lc3RhbXAoKSBjb25zdCB7IHJldHVybiBtX2xhc3RSZW5k
ZXJpbmdVcGRhdGVUaW1lc3RhbXA7IH0KKwogcHJpdmF0ZToKICAgICBzdHJ1Y3QgTmF2aWdhdGlv
biB7CiAgICAgICAgIFJlZ2lzdHJhYmxlRG9tYWluIGRvbWFpbjsKQEAgLTEwNjksNiArMTA3MSw4
IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2NhblVzZUNyZWRlbnRpYWxTdG9yYWdlIHsgdHJ1ZSB9
OwogICAgIFNob3VsZFJlbGF4VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nIG1fc2hvdWxkUmVsYXhU
aGlyZFBhcnR5Q29va2llQmxvY2tpbmcgeyBTaG91bGRSZWxheFRoaXJkUGFydHlDb29raWVCbG9j
a2luZzo6Tm8gfTsKICAgICBib29sIG1faGFzQmVlbk5vdGlmaWVkVG9JbmplY3RVc2VyU2NyaXB0
cyB7IGZhbHNlIH07CisKKyAgICBNb25vdG9uaWNUaW1lIG1fbGFzdFJlbmRlcmluZ1VwZGF0ZVRp
bWVzdGFtcDsKIH07CiAKIGlubGluZSBQYWdlR3JvdXAmIFBhZ2U6Omdyb3VwKCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9QYWludEZyZXF1ZW5jeVRyYWNrZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9QYWludEZyZXF1ZW5jeVRyYWNrZXIuaAppbmRleCBhNjFi
NjlhNzRkMWNkY2RkYjljMWQ0MWFmOTlmZjRkZTMzNDZlN2ZiLi5lZDBmMDRiZTdlNTNiOWNlODA4
Y2Y2ODE3OGExY2ViNjIyNTQ0MzIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUGFpbnRGcmVxdWVuY3lUcmFja2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1BhaW50RnJlcXVlbmN5VHJhY2tlci5oCkBAIC0zNyw3ICszNyw3IEBAIGNsYXNzIFBhaW50RnJl
cXVlbmN5VHJhY2tlciB7CiBwdWJsaWM6CiAgICAgUGFpbnRGcmVxdWVuY3lUcmFja2VyKCkgPSBk
ZWZhdWx0OwogCi0gICAgdm9pZCBiZWdpbigpCisgICAgdm9pZCBiZWdpbihNb25vdG9uaWNUaW1l
IHRpbWVzdGFtcCkKICAgICB7CiAgICAgICAgIHN0YXRpYyB1bnNpZ25lZCBwYWludEZyZXF1ZW5j
eVBhaW50Q291bnRUaHJlc2hvbGQgPSAzMDsKICAgICAgICAgc3RhdGljIFNlY29uZHMgcGFpbnRG
cmVxdWVuY3lUaW1lUGVyRnJhbWVUaHJlc2hvbGQgPSAzMl9tczsKQEAgLTQ2LDE0ICs0NiwxMyBA
QCBwdWJsaWM6CiAgICAgICAgIC8vIFN0YXJ0IGJ5IGFzc3VtaW5nIHRoZSBwYWludCBmcmVxdWVu
Y3kgaXMgbG93CiAgICAgICAgIG1fcGFpbnRGcmVxdWVuY3kgPSBQYWludEZyZXF1ZW5jeTo6TG93
OwogCi0gICAgICAgIE1vbm90b25pY1RpbWUgbm93ID0gTW9ub3RvbmljVGltZTo6bm93KCk7CiAg
ICAgICAgIGlmICghbV9maXJzdFBhaW50VGltZSkgewogICAgICAgICAgICAgLy8gSGFuZGxlIHRo
ZSBmaXJzdCB0aW1lIHRoaXMgbWV0aG9kIGlzIGNhbGxlZC4KLSAgICAgICAgICAgIG1fZmlyc3RQ
YWludFRpbWUgPSBub3c7Ci0gICAgICAgIH0gZWxzZSBpZiAobm93IC0gbV9sYXN0UGFpbnRUaW1l
ID4gcGFpbnRGcmVxdWVuY3lTZWNvbmRzSWRsZVRocmVzaG9sZCkgeworICAgICAgICAgICAgbV9m
aXJzdFBhaW50VGltZSA9IHRpbWVzdGFtcDsKKyAgICAgICAgfSBlbHNlIGlmICh0aW1lc3RhbXAg
LSBtX2xhc3RQYWludFRpbWUgPiBwYWludEZyZXF1ZW5jeVNlY29uZHNJZGxlVGhyZXNob2xkKSB7
CiAgICAgICAgICAgICAvLyBJdCBoYXMgYmVlbiA1IHNlY29uZHMgc2luY2UgbGFzdCB0aW1lIHdl
IGRyYXcgdGhpcyByZW5kZXJlci4gUmVzZXQgdGhlIHN0YXRlCiAgICAgICAgICAgICAvLyBvZiB0
aGlzIG9iamVjdCBhcyBpZiwgd2UndmUganVzdCBzdGFydGVkIHRyYWNraW5nIHRoZSBwYWludCBm
cmVxdWVuY3kuCi0gICAgICAgICAgICBtX2ZpcnN0UGFpbnRUaW1lID0gbm93OworICAgICAgICAg
ICAgbV9maXJzdFBhaW50VGltZSA9IHRpbWVzdGFtcDsKICAgICAgICAgICAgIG1fdG90YWxQYWlu
dHMgPSAwOwogICAgICAgICB9IGVsc2UgaWYgKG1fdG90YWxQYWludHMgPj0gcGFpbnRGcmVxdWVu
Y3lQYWludENvdW50VGhyZXNob2xkICYmICgobV9sYXN0UGFpbnRUaW1lIC0gbV9maXJzdFBhaW50
VGltZSkgLyBtX3RvdGFsUGFpbnRzKSA8PSBwYWludEZyZXF1ZW5jeVRpbWVQZXJGcmFtZVRocmVz
aG9sZCkgewogICAgICAgICAgICAgLy8gQ2hhbmdlIHRoZSBwYWludCBmcmVxdWVuY3kgdG8gYmUg
aGlnaCBvbmx5IGlmOgpAQCAtNjIsNyArNjEsNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICBtX3Bh
aW50RnJlcXVlbmN5ID0gUGFpbnRGcmVxdWVuY3k6OkhpZ2g7CiAgICAgICAgIH0KIAotICAgICAg
ICBtX2xhc3RQYWludFRpbWUgPSBub3c7CisgICAgICAgIG1fbGFzdFBhaW50VGltZSA9IHRpbWVz
dGFtcDsKICAgICAgICAgKyttX3RvdGFsUGFpbnRzOwogICAgIH0KIApAQCAtNzksMTkgKzc4LDE5
IEBAIHByaXZhdGU6CiAgICAgTW9ub3RvbmljVGltZSBtX2xhc3RQYWludFRpbWU7CiAgICAgdW5z
aWduZWQgbV90b3RhbFBhaW50cyB7IDAgfTsKIAotICAgIGVudW0gY2xhc3MgUGFpbnRGcmVxdWVu
Y3kgeyBMb3csIEhpZ2ggfTsKKyAgICBlbnVtIGNsYXNzIFBhaW50RnJlcXVlbmN5IDogYm9vbCB7
IExvdywgSGlnaCB9OwogICAgIFBhaW50RnJlcXVlbmN5IG1fcGFpbnRGcmVxdWVuY3kgeyBQYWlu
dEZyZXF1ZW5jeTo6TG93IH07CiB9OwogCiBjbGFzcyBTaW5nbGVQYWludEZyZXF1ZW5jeVRyYWNr
aW5nIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBTaW5nbGVQ
YWludEZyZXF1ZW5jeVRyYWNraW5nKFBhaW50RnJlcXVlbmN5VHJhY2tlciYgcGFpbnRGcmVxdWVu
Y3lUcmFja2VyLCBib29sIHRyYWNrID0gdHJ1ZSkKKyAgICBTaW5nbGVQYWludEZyZXF1ZW5jeVRy
YWNraW5nKFBhaW50RnJlcXVlbmN5VHJhY2tlciYgcGFpbnRGcmVxdWVuY3lUcmFja2VyLCBNb25v
dG9uaWNUaW1lIHRpbWVzdGFtcCwgYm9vbCB0cmFjayA9IHRydWUpCiAgICAgICAgIDogbV9wYWlu
dEZyZXF1ZW5jeVRyYWNrZXIocGFpbnRGcmVxdWVuY3lUcmFja2VyKQogICAgICAgICAsIG1fdHJh
Y2sodHJhY2spCiAgICAgewogICAgICAgICBpZiAobV90cmFjaykKLSAgICAgICAgICAgIG1fcGFp
bnRGcmVxdWVuY3lUcmFja2VyLmJlZ2luKCk7CisgICAgICAgICAgICBtX3BhaW50RnJlcXVlbmN5
VHJhY2tlci5iZWdpbih0aW1lc3RhbXApOwogICAgIH0KIAogICAgIH5TaW5nbGVQYWludEZyZXF1
ZW5jeVRyYWNraW5nKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCmlu
ZGV4IGZlMjM1YTkzYWNlN2IzMTYzNmE1ZGJjMGFkMDdmZjMyM2NhNjJmZjguLmNmYmFmNDIwOWY4
YTRjNjdjOTA5YjUwMzgyZDBkZTM4YTAxZDRlNDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyLmNwcApAQCAtNDYyOSw3ICs0NjI5LDcgQEAgdm9pZCBSZW5kZXJMYXllcjo6
cGFpbnRMYXllckNvbnRlbnRzKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgTGF5ZXJQ
YWludGkKICAgICBib29sIHNlbGVjdGlvbkFuZEJhY2tncm91bmRzT25seSA9IHBhaW50aW5nSW5m
by5wYWludEJlaGF2aW9yLmNvbnRhaW5zKFBhaW50QmVoYXZpb3I6OlNlbGVjdGlvbkFuZEJhY2tn
cm91bmRzT25seSk7CiAgICAgYm9vbCBzZWxlY3Rpb25Pbmx5ID0gcGFpbnRpbmdJbmZvLnBhaW50
QmVoYXZpb3IuY29udGFpbnMoUGFpbnRCZWhhdmlvcjo6U2VsZWN0aW9uT25seSk7CiAKLSAgICBT
aW5nbGVQYWludEZyZXF1ZW5jeVRyYWNraW5nIHNpbmdsZVBhaW50RnJlcXVlbmN5VHJhY2tpbmco
bV9wYWludEZyZXF1ZW5jeVRyYWNrZXIsIHNob3VsZFBhaW50Q29udGVudCk7CisgICAgU2luZ2xl
UGFpbnRGcmVxdWVuY3lUcmFja2luZyBzaW5nbGVQYWludEZyZXF1ZW5jeVRyYWNraW5nKG1fcGFp
bnRGcmVxdWVuY3lUcmFja2VyLCBwYWdlKCkuY2hyb21lKCkuY2xpZW50KCkudGltZXN0YW1wRm9y
UGFpbnRGcmVxdWVuY3lUcmFja2luZygpLCBzaG91bGRQYWludENvbnRlbnQpOwogCiAgICAgTGF5
ZXJGcmFnbWVudHMgbGF5ZXJGcmFnbWVudHM7CiAgICAgUmVuZGVyT2JqZWN0KiBzdWJ0cmVlUGFp
bnRSb290Rm9yUmVuZGVyZXIgPSBudWxscHRyOwpAQCAtNzAyNSw2ICs3MDI1LDExIEBAIGJvb2wg
UmVuZGVyTGF5ZXI6OmlzVHJhbnNwYXJlbnRSZXNwZWN0aW5nUGFyZW50RnJhbWVzKCkgY29uc3QK
ICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK3ZvaWQgUmVuZGVyTGF5ZXI6OnNpbXVsYXRlRnJlcXVl
bnRQYWludCgpCit7CisgICAgU2luZ2xlUGFpbnRGcmVxdWVuY3lUcmFja2luZyB7IG1fcGFpbnRG
cmVxdWVuY3lUcmFja2VyLCBwYWdlKCkuY2hyb21lKCkuY2xpZW50KCkudGltZXN0YW1wRm9yUGFp
bnRGcmVxdWVuY3lUcmFja2luZygpIH07Cit9CisKICNpZiAhTE9HX0RJU0FCTEVECiBzdGF0aWMg
VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgUmVuZGVyTGF5ZXI6OkV2ZW50
UmVnaW9uSW52YWxpZGF0aW9uUmVhc29uIHJlYXNvbikKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyLmgKaW5kZXggZDgzNzNhYWU4MTlkNGViOTlkNmIyN2RjY2U1ZWVlMDk0ZmVl
OWJmNC4uOTU2YWU1OTM2Yzg2OGJhNmM5MDJjZjUyNDRjNTAzYTVjNDFjMmIwNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKQEAgLTkyMCw3ICs5MjAsNyBAQCBwdWJsaWM6
CiAKICAgICBib29sIHNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKSBj
b25zdCBmaW5hbCB7IHJldHVybiByZW5kZXJlcigpLnNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25T
Y3JvbGxiYXJPbkxlZnQoKTsgfQogCi0gICAgdm9pZCBzaW11bGF0ZUZyZXF1ZW50UGFpbnQoKSB7
IFNpbmdsZVBhaW50RnJlcXVlbmN5VHJhY2tpbmcgeyBtX3BhaW50RnJlcXVlbmN5VHJhY2tlciB9
OyB9CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzaW11bGF0ZUZyZXF1ZW50UGFpbnQoKTsKICAg
ICBib29sIHBhaW50aW5nRnJlcXVlbnRseSgpIGNvbnN0IHsgcmV0dXJuIG1fcGFpbnRGcmVxdWVu
Y3lUcmFja2VyLnBhaW50aW5nRnJlcXVlbnRseSgpOyB9CiAKICAgICBXRUJDT1JFX0VYUE9SVCBi
b29sIGlzVHJhbnNwYXJlbnRSZXNwZWN0aW5nUGFyZW50RnJhbWVzKCkgY29uc3Q7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xp
ZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJv
bWVDbGllbnQuY3BwCmluZGV4IGJjYzI1NGJhNDRmNzc2MTZkOTgwMzkyOGRiOWI2ZmE2MmY1ODZk
MmIuLmQzZjQyMGUzM2FiMmExZWU3ZGZkYzk5ODZkOWY5NjAxYWQxODc2NTYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJv
bWVDbGllbnQuY3BwCkBAIC0xMTYwLDYgKzExNjAsMTEgQEAgYm9vbCBXZWJDaHJvbWVDbGllbnQ6
OnNob3VsZFVzZVRpbGVkQmFja2luZ0ZvckZyYW1lVmlldyhjb25zdCBGcmFtZVZpZXcmIGZyYW1l
VmkKICAgICByZXR1cm4gbV9wYWdlLmRyYXdpbmdBcmVhKCktPnNob3VsZFVzZVRpbGVkQmFja2lu
Z0ZvckZyYW1lVmlldyhmcmFtZVZpZXcpOwogfQogCitNb25vdG9uaWNUaW1lIFdlYkNocm9tZUNs
aWVudDo6dGltZXN0YW1wRm9yUGFpbnRGcmVxdWVuY3lUcmFja2luZygpIGNvbnN0Cit7CisgICAg
cmV0dXJuIGlzU1ZHSW1hZ2VDaHJvbWVDbGllbnQoKSA/IE1vbm90b25pY1RpbWU6Om5vdygpIDog
bV9wYWdlLmNvcmVQYWdlKCktPmxhc3RSZW5kZXJpbmdVcGRhdGVUaW1lc3RhbXAoKTsKK30KKwog
dm9pZCBXZWJDaHJvbWVDbGllbnQ6OmlzUGxheWluZ01lZGlhRGlkQ2hhbmdlKE1lZGlhUHJvZHVj
ZXI6Ok1lZGlhU3RhdGVGbGFncyBzdGF0ZSwgdWludDY0X3Qgc291cmNlRWxlbWVudElEKQogewog
ICAgIG1fcGFnZS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OklzUGxheWluZ01lZGlhRGlk
Q2hhbmdlKHN0YXRlLCBzb3VyY2VFbGVtZW50SUQpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCA5
YmZiYzgyZTE5YWNjNGE5YzI0ZDNjNzk3ODI5YWQyYWUxNDZkOGVjLi44NjU1ZGVhMDM2ZjdmNDQ1
NjA0MTg0MzY1NWMxYzU0Y2QwZWE2YzA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC0zMzMsNiAr
MzMzLDggQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgc2hvdWxkVXNlVGlsZWRCYWNraW5nRm9yRnJh
bWVWaWV3KGNvbnN0IFdlYkNvcmU6OkZyYW1lVmlldyYpIGNvbnN0IGZpbmFsOwogCisgICAgTW9u
b3RvbmljVGltZSB0aW1lc3RhbXBGb3JQYWludEZyZXF1ZW5jeVRyYWNraW5nKCkgY29uc3QgZmlu
YWw7CisKICAgICB2b2lkIGlzUGxheWluZ01lZGlhRGlkQ2hhbmdlKFdlYkNvcmU6Ok1lZGlhUHJv
ZHVjZXI6Ok1lZGlhU3RhdGVGbGFncywgdWludDY0X3QpIGZpbmFsOwogICAgIHZvaWQgaGFuZGxl
QXV0b3BsYXlFdmVudChXZWJDb3JlOjpBdXRvcGxheUV2ZW50LCBPcHRpb25TZXQ8V2ViQ29yZTo6
QXV0b3BsYXlFdmVudEZsYWdzPikgZmluYWw7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>408103</attachid>
            <date>2020-09-05 16:26:25 -0700</date>
            <delta_ts>2020-09-05 18:36:17 -0700</delta_ts>
            <desc>v3 (with test fix)</desc>
            <filename>bug-216190-20200905162624.patch</filename>
            <type>text/plain</type>
            <size>12840</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY2NjE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2E3M2MzMjRjZjlhZjlj
MzczZjVjZDcwYmNiNDkxMTYxMjliYzI4MS4uYmU4Y2MyYWI2ZWI3NWM2ZDQzNjM0MWRiMTc0ZWEy
M2JlNzk0NjBmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDIwLTA5LTA0ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtNb3Rpb25NYXJr
XSBSZW5kZXJMYXllcjo6cGFpbnRMYXllckNvbnRlbnRzIHNwZW5kcyB+NSUgb2YgdGhlIHRpbWUg
aW4gTW9ub3RvbmljVGltZTo6bm93KCkgaW4gTXVsdGlwbHkKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNjE5MAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluIHNldmVyYWwgb2YgTW90aW9uTWFyaydzIHN1
YnRlc3RzIChmb3IgaW5zdGFuY2UsIE11bHRpcGx5KSwgd2Ugc3BlbnQgYSBsYXJnZSBhbW91bnQg
b2YgdGltZSB1bmRlcm5lYXRoCisgICAgICAgIGBSZW5kZXJMYXllcjo6cGFpbnRMYXllckNvbnRl
bnRzYCBkdWUgdG8gYm90aCB0aGUgbGFyZ2UgbnVtYmVyIG9mIGxheWVycyBhbmQgdGhlIG5lZWQg
dG8gZnJlcXVlbnRseSByZXBhaW50CisgICAgICAgIGVhY2ggbGF5ZXIgKGFsbCBvZiB3aGljaCBh
cmUgY29uc3RhbnRseSBiZWluZyBhbmltYXRlZCkuIFVuZGVybmVhdGggdGhpcyBtZXRob2QsIGEg
bm9udHJpdmlhbCBhbW91bnQgb2YgdGltZQorICAgICAgICAofjUlKSBpcyB0aGVuIHNwZW50IGdy
YWJiaW5nIHRoZSBzeXN0ZW0gdGltZSB2aWEgYE1vbm90b25pY1RpbWU6Om5vdygpYC4KKworICAg
ICAgICBXZSBjYW4gYXZvaWQgdGhpcyBleHRyYSB3b3JrIGJ5IGluc3RlYWQgdXNpbmcgdGhlIHRp
bWVzdGFtcCBvZiB0aGUgbGFzdCByZW5kZXJpbmcgdXBkYXRlIChiZWZvcmUgd2Ugc3RhcnRlZAor
ICAgICAgICBwYWludGluZyksIHdoaWNoIHdlIGtlZXAgdHJhY2sgb2YgdXNpbmcgYSBuZXcgbWVt
YmVyIHZhcmlhYmxlIG9uIGBQYWdlYC4gU2VlIGJlbG93IGZvciBtb3JlIGRldGFpbHMsIGFzIHdl
bGwgYXMKKyAgICAgICAgdGhlIFdlYktpdDIgQ2hhbmdlTG9nLgorCisgICAgICAgICogcGFnZS9D
aHJvbWVDbGllbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudDo6dGltZXN0YW1w
Rm9yUGFpbnRGcmVxdWVuY3lUcmFja2luZyBjb25zdCk6CisKKyAgICAgICAgQWRkIGEgY2xpZW50
IGhvb2sgdG8gZmV0Y2ggdGhlIHRpbWVzdGFtcCB0byB1c2Ugd2hlbiB0cmFja2luZyBwYWludGlu
ZyBmcmVxdWVuY3kuIFNlZSB0aGUgV2ViS2l0MiBDaGFuZ2VMb2cgZm9yCisgICAgICAgIG1vcmUg
ZGV0YWlscy4KKworICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQ
YWdlOjp1cGRhdGVSZW5kZXJpbmcpOgorCisgICAgICAgIFVwZGF0ZSBgbV9sYXN0UmVuZGVyaW5n
VXBkYXRlVGltZXN0YW1wYC4KKworICAgICAgICAqIHBhZ2UvUGFnZS5oOgorICAgICAgICAoV2Vi
Q29yZTo6UGFnZTo6bGFzdFJlbmRlcmluZ1VwZGF0ZVRpbWVzdGFtcCBjb25zdCk6CisgICAgICAg
ICogcmVuZGVyaW5nL1BhaW50RnJlcXVlbmN5VHJhY2tlci5oOgorCisgICAgICAgIERyaXZlLWJ5
IGNsZWFudXA6IG5hcnJvdyB0aGUgYFBhaW50RnJlcXVlbmN5YCBlbnVtIHRvIGBib29sYCB3aWR0
aC4KKworICAgICAgICAoV2ViQ29yZTo6UGFpbnRGcmVxdWVuY3lUcmFja2VyOjpiZWdpbik6Cisg
ICAgICAgIChXZWJDb3JlOjpTaW5nbGVQYWludEZyZXF1ZW5jeVRyYWNraW5nOjpTaW5nbGVQYWlu
dEZyZXF1ZW5jeVRyYWNraW5nKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnBhaW50TGF5ZXJDb250ZW50cyk6CisK
KyAgICAgICAgQ2FsbCBvdXQgdG8gdGhlIGNsaWVudCBsYXllciB0byByZXR1cm4gYSB0aW1lc3Rh
bXAgZm9yIHRyYWNraW5nIHBhaW50aW5nIGZyZXF1ZW5jeS4gQnkgZGVmYXVsdCwgdGhpcyBpcyBz
aW1wbHkKKyAgICAgICAgdGhlIGN1cnJlbnQgdGltZSAoYE1vbm90b25pY1RpbWU6Om5vdygpYCks
IGJ1dCBwb3J0cyAobmFtZWx5LCBXZWJLaXQyKSBtYXkgb3B0IGZvciBhIGNvYXJzZXIgZ3JhbnVs
YXJpdHkuCisKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpzaW11bGF0ZUZyZXF1ZW50
UGFpbnQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllci5oOgorCiAyMDIwLTA5LTA0
ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBh
IGZhc3QgcGF0aCBpbiBUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6bWFwUmVjdChjb25zdCBGbG9hdFJl
Y3QmKSBmb3IgYWZmaW5lIHRyYW5zZm9ybWF0aW9ucwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA5NDkxMWQ4OTYyNTFh
ZTdjYTY1ODU4NzRjNTIwYWI4ODZmYWViOWIzLi4xZDRjMGNiNjVkODFhOThjOTRmODdhZDFhOGYz
NzhmOGY2MDIzZDE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDIwLTA5LTA0ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtNb3Rpb25NYXJr
XSBSZW5kZXJMYXllcjo6cGFpbnRMYXllckNvbnRlbnRzIHNwZW5kcyB+NSUgb2YgdGhlIHRpbWUg
aW4gTW9ub3RvbmljVGltZTo6bm93KCkgaW4gTXVsdGlwbHkKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNjE5MAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OnRp
bWVzdGFtcEZvclBhaW50RnJlcXVlbmN5VHJhY2tpbmcgY29uc3QpOgorCisgICAgICAgIEluIFdl
YktpdDIsIHdlIGNhbiBhc3N1bWUgKHdpdGggdGhlIGV4Y2VwdGlvbiBvZiBTVkcgcGFnZXMpIHRo
YXQgd2UgbXVzdCd2ZSBwZXJmb3JtZWQgYSByZW5kZXJpbmcgdXBkYXRlIHByaW9yCisgICAgICAg
IHRvIHRyYWNraW5nIHBhaW50aW5nIGZyZXF1ZW5jaWVzLiBBcyBzdWNoLCB3ZSBjYW4gdXNlIHRo
ZSBwYWdlJ3MgcmVuZGVyaW5nIHVwZGF0ZSB0aW1lc3RhbXAgaW5zdGVhZCBvZiB0aGUgcmVhbAor
ICAgICAgICBjdXJyZW50IHRpbWUgKGBNb25vdG9uaWNUaW1lOjpub3coKWApLgorCisgICAgICAg
IE5vdGUgdGhhdCBpbiBXZWJLaXQxLCBpdCBpcyBwb3NzaWJsZSBmb3IgYW55IGNsaWVudCB0byBm
b3JjZSBhIHN5bmNocm9ub3VzIHBhaW50IG9mIHRoZSBwYWdlIGJlZm9yZSB0aGUgcGFnZSBoYXMK
KyAgICAgICAgcGVyZm9ybWVkIGEgcmVuZGVyaW5nIHVwZGF0ZSwgd2hpY2ggdHJpZ2dlcnMgYXNz
ZXJ0aW9ucyBpbiBgU2luZ2xlUGFpbnRGcmVxdWVuY3lUcmFja2luZzo6ZW5kKClgLiBBcyBzdWNo
LCB3ZQorICAgICAgICBzdGljayB3aXRoIGBNb25vdG9uaWNUaW1lOjpub3coKWAgaW4gV2ViS2l0
MS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
Lmg6CisKIDIwMjAtMDktMDQgIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29tPgog
CiAgICAgICAgIFttYWNPU10gQWRkIGNsaWVudCBkZWNvZGVyIGVudGl0bGVtZW50CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9DaHJvbWVDbGllbnQuaAppbmRleCBkYThjZjY3MmExMDFkNGNlY2YyNzEzMDExYTIxMTBm
YTgyM2Q2YmU2Li5hZmZiNGMxMDQ4MDM1Njg3N2FlYTc2ZDRiYzA5MDhjNmI3NDhmN2IyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKQEAgLTUxLDYgKzUxLDcgQEAKICNpbmNsdWRlIDx3
dGYvQXNzZXJ0aW9ucy5oPgogI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogI2lu
Y2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8d3RmL01vbm90b25pY1RpbWUuaD4KICNp
bmNsdWRlIDx3dGYvU2Vjb25kcy5oPgogCiAjaWYgRU5BQkxFKFdJUkVMRVNTX1BMQVlCQUNLX1RB
UkdFVCkKQEAgLTQ1OSw2ICs0NjAsOCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIGJvb2wgc2hv
dWxkVXNlVGlsZWRCYWNraW5nRm9yRnJhbWVWaWV3KGNvbnN0IEZyYW1lVmlldyYpIGNvbnN0IHsg
cmV0dXJuIGZhbHNlOyB9CiAKKyAgICB2aXJ0dWFsIE1vbm90b25pY1RpbWUgdGltZXN0YW1wRm9y
UGFpbnRGcmVxdWVuY3lUcmFja2luZygpIGNvbnN0IHsgcmV0dXJuIE1vbm90b25pY1RpbWU6Om5v
dygpOyB9CisKICAgICB2aXJ0dWFsIHZvaWQgaXNQbGF5aW5nTWVkaWFEaWRDaGFuZ2UoTWVkaWFQ
cm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzLCB1aW50NjRfdCkgeyB9CiAgICAgdmlydHVhbCB2b2lk
IGhhbmRsZUF1dG9wbGF5RXZlbnQoQXV0b3BsYXlFdmVudCwgT3B0aW9uU2V0PEF1dG9wbGF5RXZl
bnRGbGFncz4pIHsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAppbmRleCBkN2RlZGZkNTkxYzM5ZWZkMDIy
ZDQ1N2UxMmJhYTJmOGI4MzNiOThjLi45N2Y0ZWRiMGJhMDk2MmRkN2RmYjgzODg0ZTg1MDI5OTMy
ZGQ4MjY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKQEAgLTE0MzgsNiArMTQzOCw4IEBAIHZvaWQgUGFn
ZTo6dXBkYXRlUmVuZGVyaW5nKCkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAorICAgIG1fbGFz
dFJlbmRlcmluZ1VwZGF0ZVRpbWVzdGFtcCA9IE1vbm90b25pY1RpbWU6Om5vdygpOworCiAgICAg
Ym9vbCBpc1NWR0ltYWdlUGFnZSA9IGNocm9tZSgpLmNsaWVudCgpLmlzU1ZHSW1hZ2VDaHJvbWVD
bGllbnQoKTsKICAgICBpZiAoIWlzU1ZHSW1hZ2VQYWdlKQogICAgICAgICB0cmFjZVBvaW50KFJl
bmRlcmluZ1VwZGF0ZVN0YXJ0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFn
ZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKaW5kZXggMGFiMmJiNTUwMTk0MGJkNDFm
ZDEwMDNiMzBlNjZjMGUwNzE3YTVhOC4uYWRmOTA2MmNiMGEyYTk2ODk5NDI3YjRiYmJhMzYxZTgx
MTdkOTk3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKQEAgLTc3NSw2ICs3NzUsOCBAQCBwdWJsaWM6CiAgICAg
Ym9vbCBoYXNCZWVuTm90aWZpZWRUb0luamVjdFVzZXJTY3JpcHRzKCkgY29uc3QgeyByZXR1cm4g
bV9oYXNCZWVuTm90aWZpZWRUb0luamVjdFVzZXJTY3JpcHRzOyB9CiAgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBub3RpZnlUb0luamVjdFVzZXJTY3JpcHRzKCk7CiAKKyAgICBNb25vdG9uaWNUaW1l
IGxhc3RSZW5kZXJpbmdVcGRhdGVUaW1lc3RhbXAoKSBjb25zdCB7IHJldHVybiBtX2xhc3RSZW5k
ZXJpbmdVcGRhdGVUaW1lc3RhbXA7IH0KKwogcHJpdmF0ZToKICAgICBzdHJ1Y3QgTmF2aWdhdGlv
biB7CiAgICAgICAgIFJlZ2lzdHJhYmxlRG9tYWluIGRvbWFpbjsKQEAgLTEwNjksNiArMTA3MSw4
IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2NhblVzZUNyZWRlbnRpYWxTdG9yYWdlIHsgdHJ1ZSB9
OwogICAgIFNob3VsZFJlbGF4VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nIG1fc2hvdWxkUmVsYXhU
aGlyZFBhcnR5Q29va2llQmxvY2tpbmcgeyBTaG91bGRSZWxheFRoaXJkUGFydHlDb29raWVCbG9j
a2luZzo6Tm8gfTsKICAgICBib29sIG1faGFzQmVlbk5vdGlmaWVkVG9JbmplY3RVc2VyU2NyaXB0
cyB7IGZhbHNlIH07CisKKyAgICBNb25vdG9uaWNUaW1lIG1fbGFzdFJlbmRlcmluZ1VwZGF0ZVRp
bWVzdGFtcDsKIH07CiAKIGlubGluZSBQYWdlR3JvdXAmIFBhZ2U6Omdyb3VwKCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9QYWludEZyZXF1ZW5jeVRyYWNrZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9QYWludEZyZXF1ZW5jeVRyYWNrZXIuaAppbmRleCBhNjFi
NjlhNzRkMWNkY2RkYjljMWQ0MWFmOTlmZjRkZTMzNDZlN2ZiLi5lZDBmMDRiZTdlNTNiOWNlODA4
Y2Y2ODE3OGExY2ViNjIyNTQ0MzIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUGFpbnRGcmVxdWVuY3lUcmFja2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1BhaW50RnJlcXVlbmN5VHJhY2tlci5oCkBAIC0zNyw3ICszNyw3IEBAIGNsYXNzIFBhaW50RnJl
cXVlbmN5VHJhY2tlciB7CiBwdWJsaWM6CiAgICAgUGFpbnRGcmVxdWVuY3lUcmFja2VyKCkgPSBk
ZWZhdWx0OwogCi0gICAgdm9pZCBiZWdpbigpCisgICAgdm9pZCBiZWdpbihNb25vdG9uaWNUaW1l
IHRpbWVzdGFtcCkKICAgICB7CiAgICAgICAgIHN0YXRpYyB1bnNpZ25lZCBwYWludEZyZXF1ZW5j
eVBhaW50Q291bnRUaHJlc2hvbGQgPSAzMDsKICAgICAgICAgc3RhdGljIFNlY29uZHMgcGFpbnRG
cmVxdWVuY3lUaW1lUGVyRnJhbWVUaHJlc2hvbGQgPSAzMl9tczsKQEAgLTQ2LDE0ICs0NiwxMyBA
QCBwdWJsaWM6CiAgICAgICAgIC8vIFN0YXJ0IGJ5IGFzc3VtaW5nIHRoZSBwYWludCBmcmVxdWVu
Y3kgaXMgbG93CiAgICAgICAgIG1fcGFpbnRGcmVxdWVuY3kgPSBQYWludEZyZXF1ZW5jeTo6TG93
OwogCi0gICAgICAgIE1vbm90b25pY1RpbWUgbm93ID0gTW9ub3RvbmljVGltZTo6bm93KCk7CiAg
ICAgICAgIGlmICghbV9maXJzdFBhaW50VGltZSkgewogICAgICAgICAgICAgLy8gSGFuZGxlIHRo
ZSBmaXJzdCB0aW1lIHRoaXMgbWV0aG9kIGlzIGNhbGxlZC4KLSAgICAgICAgICAgIG1fZmlyc3RQ
YWludFRpbWUgPSBub3c7Ci0gICAgICAgIH0gZWxzZSBpZiAobm93IC0gbV9sYXN0UGFpbnRUaW1l
ID4gcGFpbnRGcmVxdWVuY3lTZWNvbmRzSWRsZVRocmVzaG9sZCkgeworICAgICAgICAgICAgbV9m
aXJzdFBhaW50VGltZSA9IHRpbWVzdGFtcDsKKyAgICAgICAgfSBlbHNlIGlmICh0aW1lc3RhbXAg
LSBtX2xhc3RQYWludFRpbWUgPiBwYWludEZyZXF1ZW5jeVNlY29uZHNJZGxlVGhyZXNob2xkKSB7
CiAgICAgICAgICAgICAvLyBJdCBoYXMgYmVlbiA1IHNlY29uZHMgc2luY2UgbGFzdCB0aW1lIHdl
IGRyYXcgdGhpcyByZW5kZXJlci4gUmVzZXQgdGhlIHN0YXRlCiAgICAgICAgICAgICAvLyBvZiB0
aGlzIG9iamVjdCBhcyBpZiwgd2UndmUganVzdCBzdGFydGVkIHRyYWNraW5nIHRoZSBwYWludCBm
cmVxdWVuY3kuCi0gICAgICAgICAgICBtX2ZpcnN0UGFpbnRUaW1lID0gbm93OworICAgICAgICAg
ICAgbV9maXJzdFBhaW50VGltZSA9IHRpbWVzdGFtcDsKICAgICAgICAgICAgIG1fdG90YWxQYWlu
dHMgPSAwOwogICAgICAgICB9IGVsc2UgaWYgKG1fdG90YWxQYWludHMgPj0gcGFpbnRGcmVxdWVu
Y3lQYWludENvdW50VGhyZXNob2xkICYmICgobV9sYXN0UGFpbnRUaW1lIC0gbV9maXJzdFBhaW50
VGltZSkgLyBtX3RvdGFsUGFpbnRzKSA8PSBwYWludEZyZXF1ZW5jeVRpbWVQZXJGcmFtZVRocmVz
aG9sZCkgewogICAgICAgICAgICAgLy8gQ2hhbmdlIHRoZSBwYWludCBmcmVxdWVuY3kgdG8gYmUg
aGlnaCBvbmx5IGlmOgpAQCAtNjIsNyArNjEsNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICBtX3Bh
aW50RnJlcXVlbmN5ID0gUGFpbnRGcmVxdWVuY3k6OkhpZ2g7CiAgICAgICAgIH0KIAotICAgICAg
ICBtX2xhc3RQYWludFRpbWUgPSBub3c7CisgICAgICAgIG1fbGFzdFBhaW50VGltZSA9IHRpbWVz
dGFtcDsKICAgICAgICAgKyttX3RvdGFsUGFpbnRzOwogICAgIH0KIApAQCAtNzksMTkgKzc4LDE5
IEBAIHByaXZhdGU6CiAgICAgTW9ub3RvbmljVGltZSBtX2xhc3RQYWludFRpbWU7CiAgICAgdW5z
aWduZWQgbV90b3RhbFBhaW50cyB7IDAgfTsKIAotICAgIGVudW0gY2xhc3MgUGFpbnRGcmVxdWVu
Y3kgeyBMb3csIEhpZ2ggfTsKKyAgICBlbnVtIGNsYXNzIFBhaW50RnJlcXVlbmN5IDogYm9vbCB7
IExvdywgSGlnaCB9OwogICAgIFBhaW50RnJlcXVlbmN5IG1fcGFpbnRGcmVxdWVuY3kgeyBQYWlu
dEZyZXF1ZW5jeTo6TG93IH07CiB9OwogCiBjbGFzcyBTaW5nbGVQYWludEZyZXF1ZW5jeVRyYWNr
aW5nIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBTaW5nbGVQ
YWludEZyZXF1ZW5jeVRyYWNraW5nKFBhaW50RnJlcXVlbmN5VHJhY2tlciYgcGFpbnRGcmVxdWVu
Y3lUcmFja2VyLCBib29sIHRyYWNrID0gdHJ1ZSkKKyAgICBTaW5nbGVQYWludEZyZXF1ZW5jeVRy
YWNraW5nKFBhaW50RnJlcXVlbmN5VHJhY2tlciYgcGFpbnRGcmVxdWVuY3lUcmFja2VyLCBNb25v
dG9uaWNUaW1lIHRpbWVzdGFtcCwgYm9vbCB0cmFjayA9IHRydWUpCiAgICAgICAgIDogbV9wYWlu
dEZyZXF1ZW5jeVRyYWNrZXIocGFpbnRGcmVxdWVuY3lUcmFja2VyKQogICAgICAgICAsIG1fdHJh
Y2sodHJhY2spCiAgICAgewogICAgICAgICBpZiAobV90cmFjaykKLSAgICAgICAgICAgIG1fcGFp
bnRGcmVxdWVuY3lUcmFja2VyLmJlZ2luKCk7CisgICAgICAgICAgICBtX3BhaW50RnJlcXVlbmN5
VHJhY2tlci5iZWdpbih0aW1lc3RhbXApOwogICAgIH0KIAogICAgIH5TaW5nbGVQYWludEZyZXF1
ZW5jeVRyYWNraW5nKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCmlu
ZGV4IGZlMjM1YTkzYWNlN2IzMTYzNmE1ZGJjMGFkMDdmZjMyM2NhNjJmZjguLmI3YjYxNDM0NmI2
N2E3ZGQ4YTI4YzJjOWJlMzk1MWJiYmE5ZDMwMTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyLmNwcApAQCAtNDYyOSw3ICs0NjI5LDcgQEAgdm9pZCBSZW5kZXJMYXllcjo6
cGFpbnRMYXllckNvbnRlbnRzKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgTGF5ZXJQ
YWludGkKICAgICBib29sIHNlbGVjdGlvbkFuZEJhY2tncm91bmRzT25seSA9IHBhaW50aW5nSW5m
by5wYWludEJlaGF2aW9yLmNvbnRhaW5zKFBhaW50QmVoYXZpb3I6OlNlbGVjdGlvbkFuZEJhY2tn
cm91bmRzT25seSk7CiAgICAgYm9vbCBzZWxlY3Rpb25Pbmx5ID0gcGFpbnRpbmdJbmZvLnBhaW50
QmVoYXZpb3IuY29udGFpbnMoUGFpbnRCZWhhdmlvcjo6U2VsZWN0aW9uT25seSk7CiAKLSAgICBT
aW5nbGVQYWludEZyZXF1ZW5jeVRyYWNraW5nIHNpbmdsZVBhaW50RnJlcXVlbmN5VHJhY2tpbmco
bV9wYWludEZyZXF1ZW5jeVRyYWNrZXIsIHNob3VsZFBhaW50Q29udGVudCk7CisgICAgU2luZ2xl
UGFpbnRGcmVxdWVuY3lUcmFja2luZyBzaW5nbGVQYWludEZyZXF1ZW5jeVRyYWNraW5nKG1fcGFp
bnRGcmVxdWVuY3lUcmFja2VyLCBwYWdlKCkuY2hyb21lKCkuY2xpZW50KCkudGltZXN0YW1wRm9y
UGFpbnRGcmVxdWVuY3lUcmFja2luZygpLCBzaG91bGRQYWludENvbnRlbnQgJiYgIWNvbnRleHQu
cGVyZm9ybWluZ1BhaW50SW52YWxpZGF0aW9uKCkpOwogCiAgICAgTGF5ZXJGcmFnbWVudHMgbGF5
ZXJGcmFnbWVudHM7CiAgICAgUmVuZGVyT2JqZWN0KiBzdWJ0cmVlUGFpbnRSb290Rm9yUmVuZGVy
ZXIgPSBudWxscHRyOwpAQCAtNzAyNSw2ICs3MDI1LDExIEBAIGJvb2wgUmVuZGVyTGF5ZXI6Omlz
VHJhbnNwYXJlbnRSZXNwZWN0aW5nUGFyZW50RnJhbWVzKCkgY29uc3QKICAgICByZXR1cm4gZmFs
c2U7CiB9CiAKK3ZvaWQgUmVuZGVyTGF5ZXI6OnNpbXVsYXRlRnJlcXVlbnRQYWludCgpCit7Cisg
ICAgU2luZ2xlUGFpbnRGcmVxdWVuY3lUcmFja2luZyB7IG1fcGFpbnRGcmVxdWVuY3lUcmFja2Vy
LCBwYWdlKCkuY2hyb21lKCkuY2xpZW50KCkudGltZXN0YW1wRm9yUGFpbnRGcmVxdWVuY3lUcmFj
a2luZygpIH07Cit9CisKICNpZiAhTE9HX0RJU0FCTEVECiBzdGF0aWMgVGV4dFN0cmVhbSYgb3Bl
cmF0b3I8PChUZXh0U3RyZWFtJiB0cywgUmVuZGVyTGF5ZXI6OkV2ZW50UmVnaW9uSW52YWxpZGF0
aW9uUmVhc29uIHJlYXNvbikKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgK
aW5kZXggZDgzNzNhYWU4MTlkNGViOTlkNmIyN2RjY2U1ZWVlMDk0ZmVlOWJmNC4uOTU2YWU1OTM2
Yzg2OGJhNmM5MDJjZjUyNDRjNTAzYTVjNDFjMmIwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyLmgKQEAgLTkyMCw3ICs5MjAsNyBAQCBwdWJsaWM6CiAKICAgICBib29sIHNo
b3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKSBjb25zdCBmaW5hbCB7IHJl
dHVybiByZW5kZXJlcigpLnNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQo
KTsgfQogCi0gICAgdm9pZCBzaW11bGF0ZUZyZXF1ZW50UGFpbnQoKSB7IFNpbmdsZVBhaW50RnJl
cXVlbmN5VHJhY2tpbmcgeyBtX3BhaW50RnJlcXVlbmN5VHJhY2tlciB9OyB9CisgICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCBzaW11bGF0ZUZyZXF1ZW50UGFpbnQoKTsKICAgICBib29sIHBhaW50aW5n
RnJlcXVlbnRseSgpIGNvbnN0IHsgcmV0dXJuIG1fcGFpbnRGcmVxdWVuY3lUcmFja2VyLnBhaW50
aW5nRnJlcXVlbnRseSgpOyB9CiAKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIGlzVHJhbnNwYXJl
bnRSZXNwZWN0aW5nUGFyZW50RnJhbWVzKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCmlu
ZGV4IGJjYzI1NGJhNDRmNzc2MTZkOTgwMzkyOGRiOWI2ZmE2MmY1ODZkMmIuLmQzZjQyMGUzM2Fi
MmExZWU3ZGZkYzk5ODZkOWY5NjAxYWQxODc2NTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCkBA
IC0xMTYwLDYgKzExNjAsMTEgQEAgYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnNob3VsZFVzZVRpbGVk
QmFja2luZ0ZvckZyYW1lVmlldyhjb25zdCBGcmFtZVZpZXcmIGZyYW1lVmkKICAgICByZXR1cm4g
bV9wYWdlLmRyYXdpbmdBcmVhKCktPnNob3VsZFVzZVRpbGVkQmFja2luZ0ZvckZyYW1lVmlldyhm
cmFtZVZpZXcpOwogfQogCitNb25vdG9uaWNUaW1lIFdlYkNocm9tZUNsaWVudDo6dGltZXN0YW1w
Rm9yUGFpbnRGcmVxdWVuY3lUcmFja2luZygpIGNvbnN0Cit7CisgICAgcmV0dXJuIGlzU1ZHSW1h
Z2VDaHJvbWVDbGllbnQoKSA/IE1vbm90b25pY1RpbWU6Om5vdygpIDogbV9wYWdlLmNvcmVQYWdl
KCktPmxhc3RSZW5kZXJpbmdVcGRhdGVUaW1lc3RhbXAoKTsKK30KKwogdm9pZCBXZWJDaHJvbWVD
bGllbnQ6OmlzUGxheWluZ01lZGlhRGlkQ2hhbmdlKE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVG
bGFncyBzdGF0ZSwgdWludDY0X3Qgc291cmNlRWxlbWVudElEKQogewogICAgIG1fcGFnZS5zZW5k
KE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OklzUGxheWluZ01lZGlhRGlkQ2hhbmdlKHN0YXRlLCBz
b3VyY2VFbGVtZW50SUQpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCA5YmZiYzgyZTE5YWNjNGE5
YzI0ZDNjNzk3ODI5YWQyYWUxNDZkOGVjLi44NjU1ZGVhMDM2ZjdmNDQ1NjA0MTg0MzY1NWMxYzU0
Y2QwZWE2YzA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC0zMzMsNiArMzMzLDggQEAgcHJpdmF0
ZToKIAogICAgIGJvb2wgc2hvdWxkVXNlVGlsZWRCYWNraW5nRm9yRnJhbWVWaWV3KGNvbnN0IFdl
YkNvcmU6OkZyYW1lVmlldyYpIGNvbnN0IGZpbmFsOwogCisgICAgTW9ub3RvbmljVGltZSB0aW1l
c3RhbXBGb3JQYWludEZyZXF1ZW5jeVRyYWNraW5nKCkgY29uc3QgZmluYWw7CisKICAgICB2b2lk
IGlzUGxheWluZ01lZGlhRGlkQ2hhbmdlKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3Rh
dGVGbGFncywgdWludDY0X3QpIGZpbmFsOwogICAgIHZvaWQgaGFuZGxlQXV0b3BsYXlFdmVudChX
ZWJDb3JlOjpBdXRvcGxheUV2ZW50LCBPcHRpb25TZXQ8V2ViQ29yZTo6QXV0b3BsYXlFdmVudEZs
YWdzPikgZmluYWw7CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>