<?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>208482</bug_id>
          
          <creation_ts>2020-03-02 15:48:54 -0800</creation_ts>
          <short_desc>Canvas content should factor into visually-non-empty heuristic</short_desc>
          <delta_ts>2020-04-13 13:56:13 -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 Local Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WORKSFORME</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>208500</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Ben Nham">nham</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>cdumez</cc>
    
    <cc>darin</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fmalita</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>nham</cc>
    
    <cc>noam</cc>
    
    <cc>pdr</cc>
    
    <cc>sabouhallawa</cc>
    
    <cc>schenney</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1624789</commentid>
    <comment_count>0</comment_count>
    <who name="Ben Nham">nham</who>
    <bug_when>2020-03-02 15:48:54 -0800</bug_when>
    <thetext>Currently, we block the initial render on our &quot;visually non-empty&quot; heuristic. This heuristic depends on (among other things) how much text is in the document, how many image pixels are in the document, and whether or not the main resource is fully parsed. However, SVG and canvas content is not considered by the heuristic.

This causes a delayed first contentful paint for certain websites. For instance, YouTube&apos;s first contentful paint is often delayed until far after the main HTML resource is parsed:

1. They don&apos;t ship down any text initially, so we won&apos;t trip over the visually non-empty character threshold
2. They don&apos;t ship down any actual images initially, so we won&apos;t trip over the filled-image-pixel threshold (everything that looks like an image is actually an SVG)
3. On an uncached load, we won&apos;t paint after parsing the initial HTML either, since there&apos;s usually an outstanding web font loading, and our heuristic delays the first paint until the web fonts load if there isn&apos;t enough character or image content

We could improve our FCP for YT and other similar sites by including an estimate of SVG and canvas content sizes in the visually-non-empty heuristic. This will also improve FCP as reported by https://w3c.github.io/paint-timing/#first-contentful-paint.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1624791</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-03-02 15:49:26 -0800</bug_when>
    <thetext>&lt;rdar://problem/59971943&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1624792</commentid>
    <comment_count>2</comment_count>
    <who name="Ben Nham">nham</who>
    <bug_when>2020-03-02 15:49:55 -0800</bug_when>
    <thetext>Assigning to Alan since he said he could take a look at this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1624940</commentid>
    <comment_count>3</comment_count>
      <attachid>392248</attachid>
    <who name="alan">zalan</who>
    <bug_when>2020-03-02 21:38:16 -0800</bug_when>
    <thetext>Created attachment 392248
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1625138</commentid>
    <comment_count>4</comment_count>
      <attachid>392248</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-03-03 11:02:24 -0800</bug_when>
    <thetext>Comment on attachment 392248
Patch

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

&gt; Source/WebCore/rendering/svg/RenderSVGRoot.cpp:62
&gt; +    if (this-&gt;style().width().isFixed() &amp;&amp; this-&gt;style().height().isFixed())
&gt; +        view().frameView().incrementVisuallyNonEmptyPixelCount({ this-&gt;style().width().intValue(), this-&gt;style().height().intValue() });

Don&apos;t you need to convert non-pixel fixed types to pixels?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1626268</commentid>
    <comment_count>5</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2020-03-05 13:25:42 -0800</bug_when>
    <thetext>SVG content is tracked over here bug 208663</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1636406</commentid>
    <comment_count>6</comment_count>
      <attachid>395137</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2020-04-01 00:21:49 -0700</bug_when>
    <thetext>Created attachment 395137
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1636407</commentid>
    <comment_count>7</comment_count>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2020-04-01 00:25:14 -0700</bug_when>
    <thetext>Alan, I hope it&apos;s OK that I took a crack at this!
Trying to match canvas VNE behavior to FCP, as requested in https://bugs.webkit.org/show_bug.cgi?id=78011#c7

I know that this still has the same problem as https://bugs.webkit.org/show_bug.cgi?id=208501#c14, thinking we can fix those in one go.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1636595</commentid>
    <comment_count>8</comment_count>
      <attachid>395137</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-04-01 12:01:04 -0700</bug_when>
    <thetext>Comment on attachment 395137
Patch

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

Why no test?

&gt; Source/WebCore/ChangeLog:12
&gt; +        Reviewed by NOBODY (OOPS!).

This goes above the description.

&gt; Source/WebCore/html/HTMLCanvasElement.cpp:465
&gt; +        didAttachContext();
&gt;          // Need to make sure a RenderLayer and compositing layer get created for the Canvas.
&gt;          invalidateStyleAndLayerComposition();

Why is this in a different order to the previous one?

&gt; Source/WebCore/rendering/RenderHTMLCanvas.cpp:113
&gt; +    view().frameView().incrementVisuallyNonEmptyPixelCount(ceiledIntSize(intrinsicSize()));

When called from the constructor, is intrinsicSize set yet?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1636598</commentid>
    <comment_count>9</comment_count>
      <attachid>395137</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2020-04-01 12:05:17 -0700</bug_when>
    <thetext>Comment on attachment 395137
Patch

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

&gt;&gt; Source/WebCore/ChangeLog:12
&gt;&gt; +        Reviewed by NOBODY (OOPS!).
&gt; 
&gt; This goes above the description.

Gotcha

&gt;&gt; Source/WebCore/html/HTMLCanvasElement.cpp:465
&gt;&gt;          invalidateStyleAndLayerComposition();
&gt; 
&gt; Why is this in a different order to the previous one?

No reason, will make more consistent.

&gt;&gt; Source/WebCore/rendering/RenderHTMLCanvas.cpp:113
&gt;&gt; +    view().frameView().incrementVisuallyNonEmptyPixelCount(ceiledIntSize(intrinsicSize()));
&gt; 
&gt; When called from the constructor, is intrinsicSize set yet?

I believe so. Will make sure.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1636599</commentid>
    <comment_count>10</comment_count>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2020-04-01 12:05:55 -0700</bug_when>
    <thetext>(In reply to Simon Fraser (smfr) from comment #8)
&gt; Comment on attachment 395137 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=395137&amp;action=review
&gt; 
&gt; Why no test?
Can I get some pointers to how this kind of feature is tested? https://trac.webkit.org/changeset/257952/webkit, for example, adds similar functionality and did not add tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1636619</commentid>
    <comment_count>11</comment_count>
      <attachid>395137</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2020-04-01 13:05:48 -0700</bug_when>
    <thetext>Comment on attachment 395137
Patch

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

&gt;&gt;&gt; Source/WebCore/rendering/RenderHTMLCanvas.cpp:113
&gt;&gt;&gt; +    view().frameView().incrementVisuallyNonEmptyPixelCount(ceiledIntSize(intrinsicSize()));
&gt;&gt; 
&gt;&gt; When called from the constructor, is intrinsicSize set yet?
&gt; 
&gt; I believe so. Will make sure.

Actually, it has to be available, since the rendering context is available.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1636629</commentid>
    <comment_count>12</comment_count>
      <attachid>395137</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-04-01 13:32:35 -0700</bug_when>
    <thetext>Comment on attachment 395137
Patch

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

&gt; Source/WebCore/html/HTMLCanvasElement.cpp:927
&gt; +    auto&amp; canvasRenderer = downcast&lt;RenderHTMLCanvas&gt;(*renderer);
&gt; +    canvasRenderer.didAttachContext();

Better as a one-liner:

    downcast&lt;RenderHTMLCanvas&gt;(*renderer).didAttachContext();</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1636815</commentid>
    <comment_count>13</comment_count>
      <attachid>395245</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2020-04-02 00:05:22 -0700</bug_when>
    <thetext>Created attachment 395245
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1640964</commentid>
    <comment_count>14</comment_count>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2020-04-13 10:30:26 -0700</bug_when>
    <thetext>Seems like this was fixed in https://trac.webkit.org/changeset/257899/webkit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1641047</commentid>
    <comment_count>15</comment_count>
      <attachid>395245</attachid>
    <who name="alan">zalan</who>
    <bug_when>2020-04-13 12:48:02 -0700</bug_when>
    <thetext>Comment on attachment 395245
Patch

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

&gt; Source/WebCore/rendering/RenderHTMLCanvas.cpp:115
&gt; +void RenderHTMLCanvas::incrementVisuallyNonEmptyPixelCountIfNeeded()
&gt; +{
&gt; +    if (m_didIncrementVisuallyNonEmptyPixelCount)
&gt; +        return;
&gt; +
&gt; +    view().frameView().incrementVisuallyNonEmptyPixelCount(ceiledIntSize(intrinsicSize()));
&gt; +    m_didIncrementVisuallyNonEmptyPixelCount = true;    
&gt; +}

This is another example where this logic would be much better in a dedicated first paint class with all the tracking.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1641062</commentid>
    <comment_count>16</comment_count>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2020-04-13 13:09:47 -0700</bug_when>
    <thetext>(In reply to zalan from comment #15)
&gt; Comment on attachment 395245 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=395245&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/rendering/RenderHTMLCanvas.cpp:115
&gt; &gt; +void RenderHTMLCanvas::incrementVisuallyNonEmptyPixelCountIfNeeded()
&gt; &gt; +{
&gt; &gt; +    if (m_didIncrementVisuallyNonEmptyPixelCount)
&gt; &gt; +        return;
&gt; &gt; +
&gt; &gt; +    view().frameView().incrementVisuallyNonEmptyPixelCount(ceiledIntSize(intrinsicSize()));
&gt; &gt; +    m_didIncrementVisuallyNonEmptyPixelCount = true;    
&gt; &gt; +}
&gt; 
&gt; This is another example where this logic would be much better in a dedicated
&gt; first paint class with all the tracking.

I saw that you already made canvas increment the pixel count in https://trac.webkit.org/changeset/257899/webkit, isn&apos;t this patch superfluous now?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1641086</commentid>
    <comment_count>17</comment_count>
      <attachid>395245</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-04-13 13:47:17 -0700</bug_when>
    <thetext>Comment on attachment 395245
Patch

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

&gt; Source/WebCore/rendering/RenderHTMLCanvas.h:54
&gt; +    bool m_didIncrementVisuallyNonEmptyPixelCount { false };

Why doesn&apos;t this use RenderElement&apos;s didMarkFor...?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1641092</commentid>
    <comment_count>18</comment_count>
      <attachid>395245</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2020-04-13 13:54:38 -0700</bug_when>
    <thetext>Comment on attachment 395245
Patch

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

&gt;&gt; Source/WebCore/rendering/RenderHTMLCanvas.h:54
&gt;&gt; +    bool m_didIncrementVisuallyNonEmptyPixelCount { false };
&gt; 
&gt; Why doesn&apos;t this use RenderElement&apos;s didMarkFor...?

Oh damn! It was added after this patch. Will fix. But I want to know first if this is even needed, given https://trac.webkit.org/changeset/257899/webkit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1641093</commentid>
    <comment_count>19</comment_count>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2020-04-13 13:56:13 -0700</bug_when>
    <thetext>(In reply to Noam Rosenthal from comment #18)
&gt; Comment on attachment 395245 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=395245&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebCore/rendering/RenderHTMLCanvas.h:54
&gt; &gt;&gt; +    bool m_didIncrementVisuallyNonEmptyPixelCount { false };
&gt; &gt; 
&gt; &gt; Why doesn&apos;t this use RenderElement&apos;s didMarkFor...?
&gt; 
&gt; Oh damn! It was added after this patch. Will fix. But I want to know first
&gt; if this is even needed, given https://trac.webkit.org/changeset/257899/webkit

Ah it was in my other patch... sure. I will revise this after the bg-image patch goes in, once we figure out if this is needed...</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>392248</attachid>
            <date>2020-03-02 21:38:16 -0800</date>
            <delta_ts>2020-03-05 13:25:13 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208482-20200302213815.patch</filename>
            <type>text/plain</type>
            <size>1555</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU3NzQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDBmYzU4YWNmNzZjODE5
NGNkMDA5YWU2ODY1MDg0OGVjN2RhNDI2ZS4uYmM0MTBhMzU2M2NmZjhjODI3NDc0YmNiN2IwOTFk
YWIyOTY3NmNiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIwLTAzLTAyICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgU1ZHIGFuZCBDYW52YXMgY29u
dGVudCBzaG91bGQgZmFjdG9yIGludG8gdmlzdWFsbHktbm9uLWVtcHR5IGhldXJpc3RpYworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA4NDgyCisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS81OTk3MTk0Mz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBXSVAuIExldCdzIGp1c3Qgc3RhcnQgd2l0aCBmaXhlZCBn
ZW9tZXRyeS4KKworICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdSb290OjpSZW5kZXJTVkdSb290KToKKwogMjAyMC0w
My0wMiAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CiAKICAgICAgICAgU2NyaXB0Q29u
dHJvbGxlcjo6ZXhlY3V0ZUlmSmF2YVNjcmlwdFVSTCgpIHVzZXMgd3JvbmcgSlNHbG9iYWxPYmpl
Y3QuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jv
b3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290LmNwcApp
bmRleCBkZjBlZjZmNmYzZWQ4ZTNkNDIxMjk5NGE5ZTAzMzc2NDI1MTBjYjU5Li5kMzEyYmJhM2Zk
Y2QzYmQ2YzFiM2FmNjVlOGNhMmQ4MDVlNjI1ZmI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5jcHAKQEAgLTU4LDYgKzU4LDggQEAgUmVuZGVyU1ZH
Um9vdDo6UmVuZGVyU1ZHUm9vdChTVkdTVkdFbGVtZW50JiBlbGVtZW50LCBSZW5kZXJTdHlsZSYm
IHN0eWxlKQogICAgICwgbV9uZWVkc0JvdW5kYXJpZXNPclRyYW5zZm9ybVVwZGF0ZSh0cnVlKQog
ICAgICwgbV9oYXNCb3hEZWNvcmF0aW9ucyhmYWxzZSkKIHsKKyAgICBpZiAodGhpcy0+c3R5bGUo
KS53aWR0aCgpLmlzRml4ZWQoKSAmJiB0aGlzLT5zdHlsZSgpLmhlaWdodCgpLmlzRml4ZWQoKSkK
KyAgICAgICAgdmlldygpLmZyYW1lVmlldygpLmluY3JlbWVudFZpc3VhbGx5Tm9uRW1wdHlQaXhl
bENvdW50KHsgdGhpcy0+c3R5bGUoKS53aWR0aCgpLmludFZhbHVlKCksIHRoaXMtPnN0eWxlKCku
aGVpZ2h0KCkuaW50VmFsdWUoKSB9KTsKIH0KIAogUmVuZGVyU1ZHUm9vdDo6flJlbmRlclNWR1Jv
b3QoKSA9IGRlZmF1bHQ7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>395137</attachid>
            <date>2020-04-01 00:21:49 -0700</date>
            <delta_ts>2020-04-02 00:05:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208482-20200401102147.patch</filename>
            <type>text/plain</type>
            <size>5906</size>
            <attacher name="Noam Rosenthal">noam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1OTMzNikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI4IEBACisyMDIwLTA0LTAxICBOb2FtIFJv
c2VudGhhbCAgPG5vYW1Ad2Via2l0Lm9yZz4KKworICAgICAgICBDYW52YXMgY29udGVudCBzaG91
bGQgZmFjdG9yIGludG8gdmlzdWFsbHktbm9uLWVtcHR5IGhldXJpc3RpYworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA4NDgyCisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS81OTk3MTk0Mz4KKworICAgICAgICBSZXBvcnQgcGl4ZWwgc2l6ZSB0byBWTkUg
Zm9yIGEgY2FudmFzLCBvbmx5IG9uY2UgYSBjb250ZXh0IGlzIGNyZWF0ZWQgZm9yIGl0LgorICAg
ICAgICBUaGlzIGNvbXBsaWVzIHdpdGggdGhlIHBhaW50IHRpbWluZyBzcGVjOiBodHRwczovL3cz
Yy5naXRodWIuaW8vcGFpbnQtdGltaW5nLyNjb250ZW50ZnVsCisKKyAgICAgICAgTm90ZSB0aGF0
IHVudGlsIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDg1MDEgaXMg
Zml4ZWQsIFZORSB3b3VsZCBiZSByZXBvcnRlZCBvbmx5IGF0IHRoZSB0aW1lIG9mIHRoZSBzdWJz
ZXF1ZW50IGxheW91dC4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIGh0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SFRNTENhbnZhc0VsZW1lbnQ6OmNyZWF0ZUNvbnRleHQyZCk6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MQ2FudmFzRWxlbWVudDo6Y3JlYXRlQ29udGV4dFdlYkdMKToKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxDYW52YXNFbGVtZW50OjpjcmVhdGVDb250ZXh0V2ViR1BVKToKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxDYW52YXNFbGVtZW50OjpjcmVhdGVDb250ZXh0Qml0bWFwUmVuZGVyZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OmRpZEF0dGFjaENvbnRleHQpOgorICAg
ICAgICAqIGh0bWwvSFRNTENhbnZhc0VsZW1lbnQuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVySFRNTENhbnZhcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJIVE1MQ2FudmFzOjpS
ZW5kZXJIVE1MQ2FudmFzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckhUTUxDYW52YXM6Omlu
Y3JlbWVudFZpc3VhbGx5Tm9uRW1wdHlQaXhlbENvdW50SWZOZWVkZWQpOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJIVE1MQ2FudmFzLmg6CisKIDIwMjAtMDMtMzEgIFNpbW9uIEZyYXNlciAg
PHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgTWFrZSBGcmFtZVZpZXcgYW5kIEZy
YW1lIFRleHRTdHJlYW0tbG9nZ2FibGUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENh
bnZhc0VsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENh
bnZhc0VsZW1lbnQuY3BwCShyZXZpc2lvbiAyNTkyODUpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxDYW52YXNFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzU0LDYgKzM1NCw3IEBA
IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCogSFRNTENhbnZhc0VsZW0KICAgICB9CiAKICAgICBt
X2NvbnRleHQgPSBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmNyZWF0ZSgqdGhpcywgZG9jdW1l
bnQoKS5pblF1aXJrc01vZGUoKSk7CisgICAgZGlkQXR0YWNoQ29udGV4dCgpOwogCiAjaWYgVVNF
KElPU1VSRkFDRV9DQU5WQVNfQkFDS0lOR19TVE9SRSkgfHwgRU5BQkxFKEFDQ0VMRVJBVEVEXzJE
X0NBTlZBUykKICAgICAvLyBOZWVkIHRvIG1ha2Ugc3VyZSBhIFJlbmRlckxheWVyIGFuZCBjb21w
b3NpdGluZyBsYXllciBnZXQgY3JlYXRlZCBmb3IgdGhlIENhbnZhcy4KQEAgLTQxOSw2ICs0MjAs
NyBAQCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlKiBIVE1MQ2FudmFzRWxlCiAgICAgaWYgKG1f
Y29udGV4dCkgewogICAgICAgICAvLyBOZWVkIHRvIG1ha2Ugc3VyZSBhIFJlbmRlckxheWVyIGFu
ZCBjb21wb3NpdGluZyBsYXllciBnZXQgY3JlYXRlZCBmb3IgdGhlIENhbnZhcy4KICAgICAgICAg
aW52YWxpZGF0ZVN0eWxlQW5kTGF5ZXJDb21wb3NpdGlvbigpOworICAgICAgICBkaWRBdHRhY2hD
b250ZXh0KCk7CiAgICAgfQogCiAgICAgcmV0dXJuIGRvd25jYXN0PFdlYkdMUmVuZGVyaW5nQ29u
dGV4dEJhc2U+KG1fY29udGV4dC5nZXQoKSk7CkBAIC00NTgsNiArNDYwLDcgQEAgR1BVQ2FudmFz
Q29udGV4dCogSFRNTENhbnZhc0VsZW1lbnQ6OmNyZQogCiAgICAgbV9jb250ZXh0ID0gR1BVQ2Fu
dmFzQ29udGV4dDo6Y3JlYXRlKCp0aGlzKTsKICAgICBpZiAobV9jb250ZXh0KSB7CisgICAgICAg
IGRpZEF0dGFjaENvbnRleHQoKTsKICAgICAgICAgLy8gTmVlZCB0byBtYWtlIHN1cmUgYSBSZW5k
ZXJMYXllciBhbmQgY29tcG9zaXRpbmcgbGF5ZXIgZ2V0IGNyZWF0ZWQgZm9yIHRoZSBDYW52YXMu
CiAgICAgICAgIGludmFsaWRhdGVTdHlsZUFuZExheWVyQ29tcG9zaXRpb24oKTsKICAgICB9CkBA
IC00OTMsNiArNDk2LDcgQEAgSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0KiBIVE1MQ2FudmFz
RQogICAgIEFTU0VSVCghbV9jb250ZXh0KTsKIAogICAgIG1fY29udGV4dCA9IEltYWdlQml0bWFw
UmVuZGVyaW5nQ29udGV4dDo6Y3JlYXRlKCp0aGlzLCBXVEZNb3ZlKHNldHRpbmdzKSk7CisgICAg
ZGlkQXR0YWNoQ29udGV4dCgpOwogCiAjaWYgVVNFKElPU1VSRkFDRV9DQU5WQVNfQkFDS0lOR19T
VE9SRSkgfHwgRU5BQkxFKEFDQ0VMRVJBVEVEXzJEX0NBTlZBUykKICAgICAvLyBOZWVkIHRvIG1h
a2Ugc3VyZSBhIFJlbmRlckxheWVyIGFuZCBjb21wb3NpdGluZyBsYXllciBnZXQgY3JlYXRlZCBm
b3IgdGhlIENhbnZhcy4KQEAgLTkxMyw2ICs5MTcsMTYgQEAgdm9pZCBIVE1MQ2FudmFzRWxlbWVu
dDo6Y3JlYXRlSW1hZ2VCdWZmZQogI2VuZGlmCiB9CiAKK3ZvaWQgSFRNTENhbnZhc0VsZW1lbnQ6
OmRpZEF0dGFjaENvbnRleHQoKQoreworICAgIGF1dG8gcmVuZGVyZXIgPSB0aGlzLT5yZW5kZXJl
cigpOworICAgIGlmICghbV9jb250ZXh0IHx8ICFpczxSZW5kZXJIVE1MQ2FudmFzPihyZW5kZXJl
cikpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8mIGNhbnZhc1JlbmRlcmVyID0gZG93bmNh
c3Q8UmVuZGVySFRNTENhbnZhcz4oKnJlbmRlcmVyKTsKKyAgICBjYW52YXNSZW5kZXJlci5kaWRB
dHRhY2hDb250ZXh0KCk7Cit9CisKIHZvaWQgSFRNTENhbnZhc0VsZW1lbnQ6OnNldEltYWdlQnVm
ZmVyQW5kTWFya0RpcnR5KHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4mJiBidWZmZXIpCiB7
CiAgICAgbV9oYXNDcmVhdGVkSW1hZ2VCdWZmZXIgPSB0cnVlOwpJbmRleDogU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaAkocmV2aXNpb24gMjU5Mjg1KQorKysgU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNDMsNiAr
MTQzLDggQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgcmVzZXQoKTsKIAorICAgIHZvaWQgZGlkQXR0
YWNoQ29udGV4dCgpOworCiAgICAgdm9pZCBjcmVhdGVJbWFnZUJ1ZmZlcigpIGNvbnN0IGZpbmFs
OwogICAgIHZvaWQgY2xlYXJJbWFnZUJ1ZmZlcigpIGNvbnN0OwogCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVySFRNTENhbnZhcy5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckhUTUxDYW52YXMuY3BwCShyZXZpc2lvbiAyNTkyODUp
CisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySFRNTENhbnZhcy5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTQ4LDYgKzQ4LDggQEAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKFJl
bmRlckhUTUxDYQogUmVuZGVySFRNTENhbnZhczo6UmVuZGVySFRNTENhbnZhcyhIVE1MQ2FudmFz
RWxlbWVudCYgZWxlbWVudCwgUmVuZGVyU3R5bGUmJiBzdHlsZSkKICAgICA6IFJlbmRlclJlcGxh
Y2VkKGVsZW1lbnQsIFdURk1vdmUoc3R5bGUpLCBlbGVtZW50LnNpemUoKSkKIHsKKyAgICBpZiAo
ZWxlbWVudC5yZW5kZXJpbmdDb250ZXh0KCkpCisgICAgICAgIGluY3JlbWVudFZpc3VhbGx5Tm9u
RW1wdHlQaXhlbENvdW50SWZOZWVkZWQoKTsKIH0KIAogSFRNTENhbnZhc0VsZW1lbnQmIFJlbmRl
ckhUTUxDYW52YXM6OmNhbnZhc0VsZW1lbnQoKSBjb25zdApAQCAtMTAzLDQgKzEwNSwxMyBAQCB2
b2lkIFJlbmRlckhUTUxDYW52YXM6OmNhbnZhc1NpemVDaGFuZ2VkCiAgICAgc2V0TmVlZHNMYXlv
dXRJZk5lZWRlZEFmdGVySW50cmluc2ljU2l6ZUNoYW5nZSgpOwogfQogCit2b2lkIFJlbmRlckhU
TUxDYW52YXM6OmluY3JlbWVudFZpc3VhbGx5Tm9uRW1wdHlQaXhlbENvdW50SWZOZWVkZWQoKQor
eworICAgIGlmIChtX2RpZEluY3JlbWVudFZpc3VhbGx5Tm9uRW1wdHlQaXhlbENvdW50KQorICAg
ICAgICByZXR1cm47CisKKyAgICB2aWV3KCkuZnJhbWVWaWV3KCkuaW5jcmVtZW50VmlzdWFsbHlO
b25FbXB0eVBpeGVsQ291bnQoY2VpbGVkSW50U2l6ZShpbnRyaW5zaWNTaXplKCkpKTsKKyAgICBt
X2RpZEluY3JlbWVudFZpc3VhbGx5Tm9uRW1wdHlQaXhlbENvdW50ID0gdHJ1ZTsgICAgCit9CisK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJIVE1MQ2FudmFzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckhUTUxDYW52YXMuaAkocmV2aXNpb24gMjU5Mjg1KQorKysgU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckhUTUxDYW52YXMuaAkod29ya2luZyBjb3B5KQpAQCAtNDAsNiArNDAs
OCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGNhbnZhc1NpemVDaGFuZ2VkKCk7CiAKKyAgICB2b2lk
IGRpZEF0dGFjaENvbnRleHQoKSB7IGluY3JlbWVudFZpc3VhbGx5Tm9uRW1wdHlQaXhlbENvdW50
SWZOZWVkZWQoKTsgfQorCiBwcml2YXRlOgogICAgIHZvaWQgZWxlbWVudCgpIGNvbnN0ID0gZGVs
ZXRlOwogICAgIGJvb2wgcmVxdWlyZXNMYXllcigpIGNvbnN0IG92ZXJyaWRlOwpAQCAtNDcsNiAr
NDksOSBAQCBwcml2YXRlOgogICAgIGNvbnN0IGNoYXIqIHJlbmRlck5hbWUoKSBjb25zdCBvdmVy
cmlkZSB7IHJldHVybiAiUmVuZGVySFRNTENhbnZhcyI7IH0KICAgICB2b2lkIHBhaW50UmVwbGFj
ZWQoUGFpbnRJbmZvJiwgY29uc3QgTGF5b3V0UG9pbnQmKSBvdmVycmlkZTsKICAgICB2b2lkIGlu
dHJpbnNpY1NpemVDaGFuZ2VkKCkgb3ZlcnJpZGUgeyBjYW52YXNTaXplQ2hhbmdlZCgpOyB9Cisg
ICAgdm9pZCBpbmNyZW1lbnRWaXN1YWxseU5vbkVtcHR5UGl4ZWxDb3VudElmTmVlZGVkKCk7CisK
KyAgICBib29sIG1fZGlkSW5jcmVtZW50VmlzdWFsbHlOb25FbXB0eVBpeGVsQ291bnQgeyBmYWxz
ZSB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>395245</attachid>
            <date>2020-04-02 00:05:22 -0700</date>
            <delta_ts>2020-04-13 13:09:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208482-20200402100520.patch</filename>
            <type>text/plain</type>
            <size>5847</size>
            <attacher name="Noam Rosenthal">noam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1OTM3OCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI4IEBACisyMDIwLTA0LTAxICBOb2FtIFJv
c2VudGhhbCAgPG5vYW1Ad2Via2l0Lm9yZz4KKworICAgICAgICBDYW52YXMgY29udGVudCBzaG91
bGQgZmFjdG9yIGludG8gdmlzdWFsbHktbm9uLWVtcHR5IGhldXJpc3RpYworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA4NDgyCisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS81OTk3MTk0Mz4KKworICAgICAgICBSZXBvcnQgcGl4ZWwgc2l6ZSB0byBWTkUg
Zm9yIGEgY2FudmFzLCBvbmx5IG9uY2UgYSBjb250ZXh0IGlzIGNyZWF0ZWQgZm9yIGl0LgorICAg
ICAgICBUaGlzIGNvbXBsaWVzIHdpdGggdGhlIHBhaW50IHRpbWluZyBzcGVjOiBodHRwczovL3cz
Yy5naXRodWIuaW8vcGFpbnQtdGltaW5nLyNjb250ZW50ZnVsCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm90ZSB0aGF0IHVudGlsIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDg1MDEgaXMgZml4ZWQsIFZORSB3b3VsZCBi
ZSByZXBvcnRlZCBvbmx5IGF0IHRoZSB0aW1lIG9mIHRoZSBzdWJzZXF1ZW50IGxheW91dC4KKwor
ICAgICAgICAqIGh0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SFRNTENhbnZhc0VsZW1lbnQ6OmNyZWF0ZUNvbnRleHQyZCk6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MQ2FudmFzRWxlbWVudDo6Y3JlYXRlQ29udGV4dFdlYkdMKToKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxDYW52YXNFbGVtZW50OjpjcmVhdGVDb250ZXh0V2ViR1BVKToKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxDYW52YXNFbGVtZW50OjpjcmVhdGVDb250ZXh0Qml0bWFwUmVuZGVyZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OmRpZEF0dGFjaENvbnRleHQpOgorICAg
ICAgICAqIGh0bWwvSFRNTENhbnZhc0VsZW1lbnQuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVySFRNTENhbnZhcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJIVE1MQ2FudmFzOjpS
ZW5kZXJIVE1MQ2FudmFzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckhUTUxDYW52YXM6Omlu
Y3JlbWVudFZpc3VhbGx5Tm9uRW1wdHlQaXhlbENvdW50SWZOZWVkZWQpOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJIVE1MQ2FudmFzLmg6CisKIDIwMjAtMDQtMDEgIFJ5b3N1a2UgTml3YSAg
PHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQ3Jhc2ggaW4gV2ViQ29yZTo6SFRNTERvY3Vt
ZW50UGFyc2VyOjppbnNlcnQKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0Vs
ZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0Vs
ZW1lbnQuY3BwCShyZXZpc2lvbiAyNTkzNzgpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxD
YW52YXNFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzU0LDYgKzM1NCw3IEBAIENhbnZh
c1JlbmRlcmluZ0NvbnRleHQyRCogSFRNTENhbnZhc0VsZW0KICAgICB9CiAKICAgICBtX2NvbnRl
eHQgPSBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmNyZWF0ZSgqdGhpcywgZG9jdW1lbnQoKS5p
blF1aXJrc01vZGUoKSk7CisgICAgZGlkQXR0YWNoQ29udGV4dCgpOwogCiAjaWYgVVNFKElPU1VS
RkFDRV9DQU5WQVNfQkFDS0lOR19TVE9SRSkgfHwgRU5BQkxFKEFDQ0VMRVJBVEVEXzJEX0NBTlZB
UykKICAgICAvLyBOZWVkIHRvIG1ha2Ugc3VyZSBhIFJlbmRlckxheWVyIGFuZCBjb21wb3NpdGlu
ZyBsYXllciBnZXQgY3JlYXRlZCBmb3IgdGhlIENhbnZhcy4KQEAgLTQxNyw2ICs0MTgsOCBAQCBX
ZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlKiBIVE1MQ2FudmFzRWxlCiAKICAgICBtX2NvbnRleHQg
PSBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpjcmVhdGUoKnRoaXMsIGF0dHJzLCB0eXBlKTsK
ICAgICBpZiAobV9jb250ZXh0KSB7CisgICAgICAgIGRpZEF0dGFjaENvbnRleHQoKTsKKwogICAg
ICAgICAvLyBOZWVkIHRvIG1ha2Ugc3VyZSBhIFJlbmRlckxheWVyIGFuZCBjb21wb3NpdGluZyBs
YXllciBnZXQgY3JlYXRlZCBmb3IgdGhlIENhbnZhcy4KICAgICAgICAgaW52YWxpZGF0ZVN0eWxl
QW5kTGF5ZXJDb21wb3NpdGlvbigpOwogICAgIH0KQEAgLTQ1OCw2ICs0NjEsNyBAQCBHUFVDYW52
YXNDb250ZXh0KiBIVE1MQ2FudmFzRWxlbWVudDo6Y3JlCiAKICAgICBtX2NvbnRleHQgPSBHUFVD
YW52YXNDb250ZXh0OjpjcmVhdGUoKnRoaXMpOwogICAgIGlmIChtX2NvbnRleHQpIHsKKyAgICAg
ICAgZGlkQXR0YWNoQ29udGV4dCgpOwogICAgICAgICAvLyBOZWVkIHRvIG1ha2Ugc3VyZSBhIFJl
bmRlckxheWVyIGFuZCBjb21wb3NpdGluZyBsYXllciBnZXQgY3JlYXRlZCBmb3IgdGhlIENhbnZh
cy4KICAgICAgICAgaW52YWxpZGF0ZVN0eWxlQW5kTGF5ZXJDb21wb3NpdGlvbigpOwogICAgIH0K
QEAgLTQ5Myw2ICs0OTcsNyBAQCBJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQqIEhUTUxDYW52
YXNFCiAgICAgQVNTRVJUKCFtX2NvbnRleHQpOwogCiAgICAgbV9jb250ZXh0ID0gSW1hZ2VCaXRt
YXBSZW5kZXJpbmdDb250ZXh0OjpjcmVhdGUoKnRoaXMsIFdURk1vdmUoc2V0dGluZ3MpKTsKKyAg
ICBkaWRBdHRhY2hDb250ZXh0KCk7CiAKICNpZiBVU0UoSU9TVVJGQUNFX0NBTlZBU19CQUNLSU5H
X1NUT1JFKSB8fCBFTkFCTEUoQUNDRUxFUkFURURfMkRfQ0FOVkFTKQogICAgIC8vIE5lZWQgdG8g
bWFrZSBzdXJlIGEgUmVuZGVyTGF5ZXIgYW5kIGNvbXBvc2l0aW5nIGxheWVyIGdldCBjcmVhdGVk
IGZvciB0aGUgQ2FudmFzLgpAQCAtOTEzLDYgKzkxOCwxMyBAQCB2b2lkIEhUTUxDYW52YXNFbGVt
ZW50OjpjcmVhdGVJbWFnZUJ1ZmZlCiAjZW5kaWYKIH0KIAordm9pZCBIVE1MQ2FudmFzRWxlbWVu
dDo6ZGlkQXR0YWNoQ29udGV4dCgpCit7CisgICAgYXV0byByZW5kZXJlciA9IHRoaXMtPnJlbmRl
cmVyKCk7CisgICAgaWYgKG1fY29udGV4dCAmJiBpczxSZW5kZXJIVE1MQ2FudmFzPihyZW5kZXJl
cikpCisgICAgICAgIGRvd25jYXN0PFJlbmRlckhUTUxDYW52YXM+KCpyZW5kZXJlcikuZGlkQXR0
YWNoQ29udGV4dCgpOworfQorCiB2b2lkIEhUTUxDYW52YXNFbGVtZW50OjpzZXRJbWFnZUJ1ZmZl
ckFuZE1hcmtEaXJ0eShzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXI+JiYgYnVmZmVyKQogewog
ICAgIG1faGFzQ3JlYXRlZEltYWdlQnVmZmVyID0gdHJ1ZTsKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxDYW52YXNFbGVtZW50LmgJKHJldmlzaW9uIDI1OTM3OCkKKysrIFNvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMTQ5LDYgKzE0
OSw4IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHJlc2V0KCk7CiAKKyAgICB2b2lkIGRpZEF0dGFj
aENvbnRleHQoKTsKKwogICAgIHZvaWQgY3JlYXRlSW1hZ2VCdWZmZXIoKSBjb25zdCBmaW5hbDsK
ICAgICB2b2lkIGNsZWFySW1hZ2VCdWZmZXIoKSBjb25zdDsKIApJbmRleDogU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckhUTUxDYW52YXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJIVE1MQ2FudmFzLmNwcAkocmV2aXNpb24gMjU5Mzc4KQor
KysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckhUTUxDYW52YXMuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC00OCw2ICs0OCw4IEBAIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChSZW5k
ZXJIVE1MQ2EKIFJlbmRlckhUTUxDYW52YXM6OlJlbmRlckhUTUxDYW52YXMoSFRNTENhbnZhc0Vs
ZW1lbnQmIGVsZW1lbnQsIFJlbmRlclN0eWxlJiYgc3R5bGUpCiAgICAgOiBSZW5kZXJSZXBsYWNl
ZChlbGVtZW50LCBXVEZNb3ZlKHN0eWxlKSwgZWxlbWVudC5zaXplKCkpCiB7CisgICAgaWYgKGVs
ZW1lbnQucmVuZGVyaW5nQ29udGV4dCgpKQorICAgICAgICBpbmNyZW1lbnRWaXN1YWxseU5vbkVt
cHR5UGl4ZWxDb3VudElmTmVlZGVkKCk7CiB9CiAKIEhUTUxDYW52YXNFbGVtZW50JiBSZW5kZXJI
VE1MQ2FudmFzOjpjYW52YXNFbGVtZW50KCkgY29uc3QKQEAgLTEwMyw0ICsxMDUsMTMgQEAgdm9p
ZCBSZW5kZXJIVE1MQ2FudmFzOjpjYW52YXNTaXplQ2hhbmdlZAogICAgIHNldE5lZWRzTGF5b3V0
SWZOZWVkZWRBZnRlckludHJpbnNpY1NpemVDaGFuZ2UoKTsKIH0KIAordm9pZCBSZW5kZXJIVE1M
Q2FudmFzOjppbmNyZW1lbnRWaXN1YWxseU5vbkVtcHR5UGl4ZWxDb3VudElmTmVlZGVkKCkKK3sK
KyAgICBpZiAobV9kaWRJbmNyZW1lbnRWaXN1YWxseU5vbkVtcHR5UGl4ZWxDb3VudCkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgdmlldygpLmZyYW1lVmlldygpLmluY3JlbWVudFZpc3VhbGx5Tm9u
RW1wdHlQaXhlbENvdW50KGNlaWxlZEludFNpemUoaW50cmluc2ljU2l6ZSgpKSk7CisgICAgbV9k
aWRJbmNyZW1lbnRWaXN1YWxseU5vbkVtcHR5UGl4ZWxDb3VudCA9IHRydWU7ICAgIAorfQorCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVySFRNTENhbnZhcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJIVE1MQ2FudmFzLmgJKHJldmlzaW9uIDI1OTM3OCkKKysrIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJIVE1MQ2FudmFzLmgJKHdvcmtpbmcgY29weSkKQEAgLTQwLDYgKzQwLDgg
QEAgcHVibGljOgogCiAgICAgdm9pZCBjYW52YXNTaXplQ2hhbmdlZCgpOwogCisgICAgdm9pZCBk
aWRBdHRhY2hDb250ZXh0KCkgeyBpbmNyZW1lbnRWaXN1YWxseU5vbkVtcHR5UGl4ZWxDb3VudElm
TmVlZGVkKCk7IH0KKwogcHJpdmF0ZToKICAgICB2b2lkIGVsZW1lbnQoKSBjb25zdCA9IGRlbGV0
ZTsKICAgICBib29sIHJlcXVpcmVzTGF5ZXIoKSBjb25zdCBvdmVycmlkZTsKQEAgLTQ3LDYgKzQ5
LDkgQEAgcHJpdmF0ZToKICAgICBjb25zdCBjaGFyKiByZW5kZXJOYW1lKCkgY29uc3Qgb3ZlcnJp
ZGUgeyByZXR1cm4gIlJlbmRlckhUTUxDYW52YXMiOyB9CiAgICAgdm9pZCBwYWludFJlcGxhY2Vk
KFBhaW50SW5mbyYsIGNvbnN0IExheW91dFBvaW50Jikgb3ZlcnJpZGU7CiAgICAgdm9pZCBpbnRy
aW5zaWNTaXplQ2hhbmdlZCgpIG92ZXJyaWRlIHsgY2FudmFzU2l6ZUNoYW5nZWQoKTsgfQorICAg
IHZvaWQgaW5jcmVtZW50VmlzdWFsbHlOb25FbXB0eVBpeGVsQ291bnRJZk5lZWRlZCgpOworCisg
ICAgYm9vbCBtX2RpZEluY3JlbWVudFZpc3VhbGx5Tm9uRW1wdHlQaXhlbENvdW50IHsgZmFsc2Ug
fTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
</data>
<flag name="review"
          id="410650"
          type_id="1"
          status="+"
          setter="zalan"
    />
          </attachment>
      

    </bug>

</bugzilla>