<?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>92492</bug_id>
          
          <creation_ts>2012-07-27 04:54:02 -0700</creation_ts>
          <short_desc>[Texmap] Remove the backing store after &apos;style.visibility&apos; for an element sets &apos;hidden&apos;.</short_desc>
          <delta_ts>2012-07-30 23:56:16 -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>Platform</component>
          <version>528+ (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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Dongseong Hwang">dongseong.hwang</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>noam</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>680456</commentid>
    <comment_count>0</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-07-27 04:54:02 -0700</bug_when>
    <thetext>This patch&apos;s purpose is to save vram memory.
When visibility of the element sets hidden, we do not need to draw the element,
so we do not need to keep a texture of the backing store.
Currently, Texmap does not draw the element with visibility:hidden because
RenderLayerBacking::paintIntoLayer does not draw anything.
This patch just removes unused textures.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>680473</commentid>
    <comment_count>1</comment_count>
      <attachid>154909</attachid>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-07-27 05:03:38 -0700</bug_when>
    <thetext>Created attachment 154909
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>680475</commentid>
    <comment_count>2</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-07-27 05:04:53 -0700</bug_when>
    <thetext>(In reply to comment #1)
&gt; Created an attachment (id=154909) [details]
&gt; Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>680478</commentid>
    <comment_count>3</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-07-27 05:08:10 -0700</bug_when>
    <thetext>Currently, chromium port handles m_contentsVisible like m_drawsContent.

void GraphicsLayerChromium::updateLayerIsDrawable()
{
    // For the rest of the accelerated compositor code, there is no reason to make a
    // distinction between drawsContent and contentsVisible. So, for m_layer, these two
    // flags are combined here. m_contentsLayer shouldn&apos;t receive the drawsContent flag
    // so it is only given contentsVisible.

    m_layer.setDrawsContent(m_drawsContent &amp;&amp; m_contentsVisible);

    if (!m_contentsLayer.isNull())
        m_contentsLayer.setDrawsContent(m_contentsVisible);

    if (m_drawsContent)
        m_layer.invalidate();

    updateDebugIndicators();
}

Some web developers think visibility:hidden causes to save the texture memory.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>680598</commentid>
    <comment_count>4</comment_count>
      <attachid>154909</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-07-27 07:09:58 -0700</bug_when>
    <thetext>Comment on attachment 154909
Patch

Actually, something is missing here. We should clear the backing stores not just for the layer that becomes invisible, but also for all of its descendants.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>682638</commentid>
    <comment_count>5</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-07-30 19:19:24 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 154909 [details])
&gt; Actually, something is missing here. We should clear the backing stores not just for the layer that becomes invisible, but also for all of its descendants.

Thank you for your review.

I was concerned about what you said.

http://www.w3.org/TR/CSS21/visufx.html#propdef-visibility

The spec said
&quot;hidden
The generated box is invisible (fully transparent, nothing is drawn), but still affects layout. Furthermore, descendants of the element will be visible if they have &apos;visibility: visible&apos;.&quot;

If some descendants have &apos;visibility: visible&apos;, they need the backing stores.

RenderLayerBacking set contents visible of the graphics layer to false even if a graphics layer has visible compositing descendant layers.

void RenderLayerBacking::updateGraphicsLayerGeometry()
{
    ...
    // m_graphicsLayer is the corresponding GraphicsLayer for this RenderLayer and its non-compositing
    // descendants. So, the visibility flag for m_graphicsLayer should be true if there are any
    // non-compositing visible layers.
    m_graphicsLayer-&gt;setContentsVisible(m_owningLayer-&gt;hasVisibleContent() || hasVisibleNonCompositingDescendantLayers());
    ...
}

So, I removed the backing stores for only the layer that becomes invisible.

I think I may misunderstand, so I need your feedback.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>682684</commentid>
    <comment_count>6</comment_count>
      <attachid>154909</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-07-30 20:29:53 -0700</bug_when>
    <thetext>Comment on attachment 154909
Patch

Previous r- was based on a misunderstanding of the spec :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>682698</commentid>
    <comment_count>7</comment_count>
      <attachid>154909</attachid>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-07-30 20:48:14 -0700</bug_when>
    <thetext>Comment on attachment 154909
Patch

I forgot to set commit-queue to ?. Could you change +? :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>682766</commentid>
    <comment_count>8</comment_count>
      <attachid>154909</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-30 23:56:12 -0700</bug_when>
    <thetext>Comment on attachment 154909
Patch

Clearing flags on attachment: 154909

Committed r124178: &lt;http://trac.webkit.org/changeset/124178&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>682767</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-30 23:56:16 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>154909</attachid>
            <date>2012-07-27 05:03:38 -0700</date>
            <delta_ts>2012-07-30 23:56:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-92492-20120727210300.patch</filename>
            <type>text/plain</type>
            <size>11823</size>
            <attacher name="Dongseong Hwang">dongseong.hwang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIzODYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzRkMzQ3M2ExZmM2MjQ1
MjMwYjcxYjNmN2I3MWJiODMyMTUxYjA5MS4uYmM1ZGRhM2JhYzBjMTQyZDg4ZTlhZGVjZWJmNTE5
ZmFlYjdlYjE2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDEyLTA3LTI3ICBIdWFu
ZyBEb25nc3VuZyAgPGx1eHRlbGxhQGNvbXBhbnkxMDAubmV0PgorCisgICAgICAgIFtUZXhtYXBd
IFJlbW92ZSB0aGUgYmFja2luZyBzdG9yZSBhZnRlciAnc3R5bGUudmlzaWJpbGl0eScgZm9yIGFu
IGVsZW1lbnQgc2V0cyAnaGlkZGVuJy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTkyNDkyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCdzIHB1cnBvc2UgaXMgdG8gc2F2ZSB2cmFtIG1lbW9y
eS4KKyAgICAgICAgV2hlbiB2aXNpYmlsaXR5IG9mIHRoZSBlbGVtZW50IHNldHMgaGlkZGVuLCB3
ZSBkbyBub3QgbmVlZCB0byBkcmF3IHRoZSBlbGVtZW50LAorICAgICAgICBzbyB3ZSBkbyBub3Qg
bmVlZCB0byBrZWVwIGEgdGV4dHVyZSBvZiB0aGUgYmFja2luZyBzdG9yZS4KKyAgICAgICAgQ3Vy
cmVudGx5LCBUZXhtYXAgZG9lcyBub3QgZHJhdyB0aGUgZWxlbWVudCB3aXRoIHZpc2liaWxpdHk6
aGlkZGVuIGJlY2F1c2UKKyAgICAgICAgUmVuZGVyTGF5ZXJCYWNraW5nOjpwYWludEludG9MYXll
ciBkb2VzIG5vdCBkcmF3IGFueXRoaW5nLgorICAgICAgICBUaGlzIHBhdGNoIGp1c3QgcmVtb3Zl
cyB1bnVzZWQgdGV4dHVyZXMuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIC0gbm8gbmV3IHRlc3Rh
YmxlIGZ1bmN0aW9uYWxpdHkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAv
R3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhp
Y3NMYXllclRleHR1cmVNYXBwZXI6OnNldENvbnRlbnRzVmlzaWJsZSk6CisgICAgICAgIChXZWJD
b3JlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NMYXllclRl
eHR1cmVNYXBwZXIuaDoKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJMYXllcjo6dXBkYXRlQmFja2luZ1N0b3Jl
KToKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJMYXllcjo6cGFpbnRTZWxmKToKKyAg
ICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJMYXllcjo6aXNWaXNpYmxlKToKKyAgICAgICAg
KFdlYkNvcmU6OlRleHR1cmVNYXBwZXJMYXllcjo6c3luY0NvbXBvc2l0aW5nU3RhdGVTZWxmKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVyLmg6
CisgICAgICAgIChTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyTGF5ZXI6
OlN0YXRlOjpTdGF0ZSk6CisKIDIwMTItMDctMjcgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0
Lm9yZz4KIAogICAgICAgICBBZGQgYSBTZXR0aW5nIHRvIGV4cG9zZSBxdWFudGl6ZWQsIHJhdGUt
bGltaXRlZCBNZW1vcnlJbmZvIHZhbHVlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDA5NjM4NzU1ZWJjNmVkZWRl
OTk4ZTkxMWFkNzk0YmUyZDhjYjllODcuLmFiYTQ4MTEzMTk3YmI3NjMwMDUxYzMzYTZlMTZiMGYz
YjJhOGJiYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNCBAQAorMjAxMi0wNy0yNyAgSHVhbmcg
RG9uZ3N1bmcgIDxsdXh0ZWxsYUBjb21wYW55MTAwLm5ldD4KKworICAgICAgICBbVGV4bWFwXSBS
ZW1vdmUgdGhlIGJhY2tpbmcgc3RvcmUgYWZ0ZXIgJ3N0eWxlLnZpc2liaWxpdHknIGZvciBhbiBl
bGVtZW50IHNldHMgJ2hpZGRlbicuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD05MjQ5MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFRleG1hcCBoYW5kbGVzIHZpc2liaWxpdHk6aGlkZGVuIGluIHRoaXMgcGF0
Y2gsIHNvIFdlYkdyYXBoaWNzTGF5ZXIKKyAgICAgICAgc2VuZHMgdGhlIExheWVyVHJlZUNvb3Jk
aW5hdG9yUHJveHlNZXNzYWdlcyB3aXRoIGFkZGl0aW9uYWwgaW5mb21hdGlvbgorICAgICAgICB0
byBVSVByb2Nlc3MuCisKKyAgICAgICAgKiBTaGFyZWQvV2ViTGF5ZXJUcmVlSW5mby5oOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJMYXllclRyZWVSZW5kZXJlci5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYkxheWVyVHJlZVJlbmRlcmVyOjpzZXRMYXllclN0YXRlKToKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlBhZ2UvTGF5ZXJUcmVlQ29vcmRpbmF0b3IvV2ViR3JhcGhpY3NMYXllci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpXZWJHcmFwaGljc0xheWVyOjpzZXRDb250ZW50c1Zpc2libGUp
OgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHcmFwaGljc0xheWVy
OjpzeW5jTGF5ZXJTdGF0ZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0xheWVyVHJl
ZUNvb3JkaW5hdG9yL1dlYkdyYXBoaWNzTGF5ZXIuaDoKKyAgICAgICAgKFdlYkdyYXBoaWNzTGF5
ZXIpOgorCiAyMDEyLTA3LTI3ICBDaHJpc3RvcGhlIER1bWV6ICA8Y2hyaXN0b3BoZS5kdW1lekBp
bnRlbC5jb20+CiAKICAgICAgICAgW0VGTF1bV0syXSBBZGQgbW9yZSBFd2tfVmlldyB1bml0IHRl
c3RzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAv
R3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmNwcAppbmRleCAyODAy
OTMzYTk5NmM1M2MzODcxMmQ0ZGQ3MTE4N2IzYTY1NWQ5MGYyLi5mNzM1ZGUyYjNjZjgwZjJlMjc0
YTVlOGVmNDFhYzBlNmMyN2U0ODQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0xheWVyVGV4dHVy
ZU1hcHBlci5jcHAKQEAgLTI3Myw2ICsyNzMsMTYgQEAgdm9pZCBHcmFwaGljc0xheWVyVGV4dHVy
ZU1hcHBlcjo6c2V0RHJhd3NDb250ZW50KGJvb2wgdmFsdWUpCiAKIC8qIFxyZWltcCAoR3JhcGhp
Y3NMYXllci5oKQogKi8KK3ZvaWQgR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXI6OnNldENvbnRl
bnRzVmlzaWJsZShib29sIHZhbHVlKQoreworICAgIGlmICh2YWx1ZSA9PSBjb250ZW50c0FyZVZp
c2libGUoKSkKKyAgICAgICAgcmV0dXJuOworICAgIG5vdGlmeUNoYW5nZShUZXh0dXJlTWFwcGVy
TGF5ZXI6OkNvbnRlbnRzVmlzaWJsZUNoYW5nZSk7CisgICAgR3JhcGhpY3NMYXllcjo6c2V0Q29u
dGVudHNWaXNpYmxlKHZhbHVlKTsKK30KKworLyogXHJlaW1wIChHcmFwaGljc0xheWVyLmgpCisq
Lwogdm9pZCBHcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlcjo6c2V0Q29udGVudHNPcGFxdWUoYm9v
bCB2YWx1ZSkKIHsKICAgICBpZiAodmFsdWUgPT0gY29udGVudHNPcGFxdWUoKSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0xheWVy
VGV4dHVyZU1hcHBlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmgKaW5kZXggYzVjYmJhYzA0NmRmZWVkZWExZGIy
MTY3Yjg1OTA0ZDlmYWM5ZWE3Mi4uYzRkNDJmMWZjOTEwMmM1NjAzZjY1ZmI1MDQzMjFiOTQ4MjUw
ZGU3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmgKQEAgLTYwLDYg
KzYwLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRQcmVzZXJ2ZXMzRChib29sIGIp
OwogICAgIHZpcnR1YWwgdm9pZCBzZXRNYXNrc1RvQm91bmRzKGJvb2wgYik7CiAgICAgdmlydHVh
bCB2b2lkIHNldERyYXdzQ29udGVudChib29sIGIpOworICAgIHZpcnR1YWwgdm9pZCBzZXRDb250
ZW50c1Zpc2libGUoYm9vbCk7CiAgICAgdmlydHVhbCB2b2lkIHNldENvbnRlbnRzT3BhcXVlKGJv
b2wgYik7CiAgICAgdmlydHVhbCB2b2lkIHNldEJhY2tmYWNlVmlzaWJpbGl0eShib29sIGIpOwog
ICAgIHZpcnR1YWwgdm9pZCBzZXRPcGFjaXR5KGZsb2F0IG9wYWNpdHkpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJMYXll
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1h
cHBlckxheWVyLmNwcAppbmRleCBjZjg4MDA5YmUyNjRhNDU1ZmIzMzZlMmViMTQ0ZDQzYTk4ZmZk
OWI2Li5lNThlNTkyMzYzMjlkZGMxNzliYzc1MjdjZDM0MDgxMTQ3OGFhZGYyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckxh
eWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4
dHVyZU1hcHBlckxheWVyLmNwcApAQCAtMTAzLDcgKzEwMyw3IEBAIHZvaWQgVGV4dHVyZU1hcHBl
ckxheWVyOjp1cGRhdGVCYWNraW5nU3RvcmUoVGV4dHVyZU1hcHBlciogdGV4dHVyZU1hcHBlciwg
R3JhcGhpCiAgICAgaWYgKCFtX3Nob3VsZFVwZGF0ZUJhY2tpbmdTdG9yZUZyb21MYXllcikKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgaWYgKCFtX3N0YXRlLmRyYXdzQ29udGVudCB8fCBtX3NpemUu
aXNFbXB0eSgpKSB7CisgICAgaWYgKCFtX3N0YXRlLmRyYXdzQ29udGVudCB8fCAhbV9zdGF0ZS5j
b250ZW50c1Zpc2libGUgfHwgbV9zaXplLmlzRW1wdHkoKSkgewogICAgICAgICBtX2JhY2tpbmdT
dG9yZS5jbGVhcigpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMTU3LDcgKzE1Nyw3IEBA
IHZvaWQgVGV4dHVyZU1hcHBlckxheWVyOjpwYWludCgpCiAKIHZvaWQgVGV4dHVyZU1hcHBlckxh
eWVyOjpwYWludFNlbGYoY29uc3QgVGV4dHVyZU1hcHBlclBhaW50T3B0aW9ucyYgb3B0aW9ucykK
IHsKLSAgICBpZiAoIW1fc3RhdGUudmlzaWJsZSkKKyAgICBpZiAoIW1fc3RhdGUudmlzaWJsZSB8
fCAhbV9zdGF0ZS5jb250ZW50c1Zpc2libGUpCiAgICAgICAgIHJldHVybjsKIAogICAgIC8vIFdl
IGFwcGx5IHRoZSBmb2xsb3dpbmcgdHJhbnNmb3JtIHRvIGNvbXBlbnNhdGUgZm9yIHBhaW50aW5n
IGludG8gYSBzdXJmYWNlLCBhbmQgdGhlbiBhcHBseSB0aGUgb2Zmc2V0IHNvIHRoYXQgdGhlIHBh
aW50aW5nIGZpdHMgaW4gdGhlIHRhcmdldCByZWN0LgpAQCAtMjk0LDYgKzI5NCw4IEBAIGJvb2wg
VGV4dHVyZU1hcHBlckxheWVyOjppc1Zpc2libGUoKSBjb25zdAogICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgaWYgKCFtX3N0YXRlLnZpc2libGUgJiYgbV9jaGlsZHJlbi5pc0VtcHR5KCkpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIW1fc3RhdGUuY29udGVudHNWaXNpYmxlICYm
IG1fY2hpbGRyZW4uaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKG1f
b3BhY2l0eSA8IDAuMDEpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICByZXR1cm4gdHJ1ZTsK
QEAgLTQ3Miw2ICs0NzQsNyBAQCB2b2lkIFRleHR1cmVNYXBwZXJMYXllcjo6c3luY0NvbXBvc2l0
aW5nU3RhdGVTZWxmKEdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyKiBncgogICAgIG1fc3RhdGUu
cHJlc2VydmVzM0QgPSBncmFwaGljc0xheWVyLT5wcmVzZXJ2ZXMzRCgpOwogICAgIG1fc3RhdGUu
bWFza3NUb0JvdW5kcyA9IGdyYXBoaWNzTGF5ZXItPm1hc2tzVG9Cb3VuZHMoKTsKICAgICBtX3N0
YXRlLmRyYXdzQ29udGVudCA9IGdyYXBoaWNzTGF5ZXItPmRyYXdzQ29udGVudCgpOworICAgIG1f
c3RhdGUuY29udGVudHNWaXNpYmxlID0gZ3JhcGhpY3NMYXllci0+Y29udGVudHNBcmVWaXNpYmxl
KCk7CiAgICAgbV9zdGF0ZS5jb250ZW50c09wYXF1ZSA9IGdyYXBoaWNzTGF5ZXItPmNvbnRlbnRz
T3BhcXVlKCk7CiAgICAgbV9zdGF0ZS5iYWNrZmFjZVZpc2liaWxpdHkgPSBncmFwaGljc0xheWVy
LT5iYWNrZmFjZVZpc2liaWxpdHkoKTsKICAgICBtX3N0YXRlLmNoaWxkcmVuVHJhbnNmb3JtID0g
Z3JhcGhpY3NMYXllci0+Y2hpbGRyZW5UcmFuc2Zvcm0oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTGF5ZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTGF5ZXIu
aAppbmRleCA0NTA0MmNhOGRmZTU3NmNkN2M2YTQyYzdhMTE5YWE2ZDA4MTc2N2ZmLi5lYTM3MGZh
MTY3YzZiOTQ1M2ZjNzJkMTAwZmFkZjg0Mjk3ZTM4OGM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJMYXll
ci5oCkBAIC04MSwxNiArODEsMTcgQEAgcHVibGljOgogICAgICAgICBQcmVzZXJ2ZXMzRENoYW5n
ZSA9ICAgICAgICAgKDFMIDw8IDEyKSwKICAgICAgICAgTWFza3NUb0JvdW5kc0NoYW5nZSA9ICAg
ICAgICgxTCA8PCAxMyksCiAgICAgICAgIERyYXdzQ29udGVudENoYW5nZSA9ICAgICAgICAoMUwg
PDwgMTQpLAotICAgICAgICBDb250ZW50c09wYXF1ZUNoYW5nZSA9ICAgICAgKDFMIDw8IDE1KSwK
KyAgICAgICAgQ29udGVudHNWaXNpYmxlQ2hhbmdlID0gICAgICgxTCA8PCAxNSksCisgICAgICAg
IENvbnRlbnRzT3BhcXVlQ2hhbmdlID0gICAgICAoMUwgPDwgMTYpLAogCi0gICAgICAgIEJhY2tm
YWNlVmlzaWJpbGl0eUNoYW5nZSA9ICAoMUwgPDwgMTYpLAotICAgICAgICBDaGlsZHJlblRyYW5z
Zm9ybUNoYW5nZSA9ICAgKDFMIDw8IDE3KSwKLSAgICAgICAgRGlzcGxheUNoYW5nZSA9ICAgICAg
ICAgICAgICgxTCA8PCAxOCksCi0gICAgICAgIEJhY2tncm91bmRDb2xvckNoYW5nZSA9ICAgICAo
MUwgPDwgMTkpLAorICAgICAgICBCYWNrZmFjZVZpc2liaWxpdHlDaGFuZ2UgPSAgKDFMIDw8IDE3
KSwKKyAgICAgICAgQ2hpbGRyZW5UcmFuc2Zvcm1DaGFuZ2UgPSAgICgxTCA8PCAxOCksCisgICAg
ICAgIERpc3BsYXlDaGFuZ2UgPSAgICAgICAgICAgICAoMUwgPDwgMTkpLAorICAgICAgICBCYWNr
Z3JvdW5kQ29sb3JDaGFuZ2UgPSAgICAgKDFMIDw8IDIwKSwKIAotICAgICAgICBSZXBsaWNhTGF5
ZXJDaGFuZ2UgPSAgICAgICAgKDFMIDw8IDIwKSwKLSAgICAgICAgQW5pbWF0aW9uQ2hhbmdlID0g
ICAgICAgICAgICgxTCA8PCAyMSksCi0gICAgICAgIEZpbHRlckNoYW5nZSA9ICAgICAgICAgICAg
ICAoMUwgPDwgMjIpCisgICAgICAgIFJlcGxpY2FMYXllckNoYW5nZSA9ICAgICAgICAoMUwgPDwg
MjEpLAorICAgICAgICBBbmltYXRpb25DaGFuZ2UgPSAgICAgICAgICAgKDFMIDw8IDIyKSwKKyAg
ICAgICAgRmlsdGVyQ2hhbmdlID0gICAgICAgICAgICAgICgxTCA8PCAyMykKICAgICB9OwogCiAg
ICAgZW51bSBTeW5jT3B0aW9ucyB7CkBAIC0yMDksNiArMjEwLDcgQEAgcHJpdmF0ZToKICAgICAg
ICAgYm9vbCBwcmVzZXJ2ZXMzRCA6IDE7CiAgICAgICAgIGJvb2wgbWFza3NUb0JvdW5kcyA6IDE7
CiAgICAgICAgIGJvb2wgZHJhd3NDb250ZW50IDogMTsKKyAgICAgICAgYm9vbCBjb250ZW50c1Zp
c2libGUgOiAxOwogICAgICAgICBib29sIGNvbnRlbnRzT3BhcXVlIDogMTsKICAgICAgICAgYm9v
bCBiYWNrZmFjZVZpc2liaWxpdHkgOiAxOwogICAgICAgICBib29sIHZpc2libGUgOiAxOwpAQCAt
MjIyLDYgKzIyNCw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAsIHByZXNlcnZlczNEKGZhbHNl
KQogICAgICAgICAgICAgLCBtYXNrc1RvQm91bmRzKGZhbHNlKQogICAgICAgICAgICAgLCBkcmF3
c0NvbnRlbnQoZmFsc2UpCisgICAgICAgICAgICAsIGNvbnRlbnRzVmlzaWJsZSh0cnVlKQogICAg
ICAgICAgICAgLCBjb250ZW50c09wYXF1ZShmYWxzZSkKICAgICAgICAgICAgICwgYmFja2ZhY2VW
aXNpYmlsaXR5KGZhbHNlKQogICAgICAgICAgICAgLCB2aXNpYmxlKHRydWUpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViTGF5ZXJUcmVlSW5mby5oIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL1dlYkxheWVyVHJlZUluZm8uaAppbmRleCA3NjAwNjMzYzg5MzE1NjA2YTE3Mzdh
ZWNhNTU2ZmYyZTA4ODFjNGY3Li5kNWQ3MjMzOTExZTBkMmRjYjJkZGU2MTMzYmY1MzZkNDU4YTky
ZjY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViTGF5ZXJUcmVlSW5mby5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJMYXllclRyZWVJbmZvLmgKQEAgLTYxLDYg
KzYxLDcgQEAgc3RydWN0IFdlYkxheWVySW5mbyB7CiAgICAgICAgIHN0cnVjdCB7CiAgICAgICAg
ICAgICBib29sIGNvbnRlbnRzT3BhcXVlIDogMTsKICAgICAgICAgICAgIGJvb2wgZHJhd3NDb250
ZW50IDogMTsKKyAgICAgICAgICAgIGJvb2wgY29udGVudHNWaXNpYmxlIDogMTsKICAgICAgICAg
ICAgIGJvb2wgYmFja2ZhY2VWaXNpYmxlIDogMTsKICAgICAgICAgICAgIGJvb2wgbWFza3NUb0Jv
dW5kcyA6IDE7CiAgICAgICAgICAgICBib29sIHByZXNlcnZlczNEIDogMTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJMYXllclRyZWVSZW5kZXJlci5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTGF5ZXJUcmVlUmVuZGVyZXIuY3BwCmluZGV4IDk1MDQ5
YTMyZDYyYTEwZTU1NDMwZTI1NGY4YTNmMzllOGQ3OTM5Y2MuLjZlZDRhYWU4NjNmZDY2MjgwNWI0
M2QyNzQwNjJmOWZiZWQwNjA1MTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJMYXllclRyZWVSZW5kZXJlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYkxheWVyVHJlZVJlbmRlcmVyLmNwcApAQCAtMjY5LDYgKzI2OSw3IEBAIHZvaWQgV2ViTGF5
ZXJUcmVlUmVuZGVyZXI6OnNldExheWVyU3RhdGUoV2ViTGF5ZXJJRCBpZCwgY29uc3QgV2ViTGF5
ZXJJbmZvJiBsYXllCiAgICAgbGF5ZXItPnNldENvbnRlbnRzT3BhcXVlKGxheWVySW5mby5jb250
ZW50c09wYXF1ZSk7CiAgICAgbGF5ZXItPnNldENvbnRlbnRzUmVjdChsYXllckluZm8uY29udGVu
dHNSZWN0KTsKICAgICBsYXllci0+c2V0RHJhd3NDb250ZW50KGxheWVySW5mby5kcmF3c0NvbnRl
bnQpOworICAgIGxheWVyLT5zZXRDb250ZW50c1Zpc2libGUobGF5ZXJJbmZvLmNvbnRlbnRzVmlz
aWJsZSk7CiAgICAgdG9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlcihsYXllciktPnNldEZpeGVk
VG9WaWV3cG9ydChsYXllckluZm8uZml4ZWRUb1ZpZXdwb3J0KTsKIAogICAgIGlmIChsYXllcklu
Zm8uZml4ZWRUb1ZpZXdwb3J0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL0xheWVyVHJlZUNvb3JkaW5hdG9yL1dlYkdyYXBoaWNzTGF5ZXIuY3BwIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0xheWVyVHJlZUNvb3JkaW5hdG9yL1dlYkdy
YXBoaWNzTGF5ZXIuY3BwCmluZGV4IDE5Y2U0ZDAzMTZjZmQxOTRkOTc0MmUzMWNkZDIwMGEwZjY4
NGYzMDMuLmJiMTY5N2ZlMjUyMDQ0MmU3YWRiYTllMGRiMjM0OGY4YjdlYmIxZjIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9MYXllclRyZWVDb29yZGluYXRv
ci9XZWJHcmFwaGljc0xheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvTGF5ZXJUcmVlQ29vcmRpbmF0b3IvV2ViR3JhcGhpY3NMYXllci5jcHAKQEAgLTI3Nyw2
ICsyNzcsMTUgQEAgdm9pZCBXZWJHcmFwaGljc0xheWVyOjpzZXREcmF3c0NvbnRlbnQoYm9vbCBi
KQogICAgIGRpZENoYW5nZUxheWVyU3RhdGUoKTsKIH0KIAordm9pZCBXZWJHcmFwaGljc0xheWVy
OjpzZXRDb250ZW50c1Zpc2libGUoYm9vbCBiKQoreworICAgIGlmIChjb250ZW50c0FyZVZpc2li
bGUoKSA9PSBiKQorICAgICAgICByZXR1cm47CisgICAgR3JhcGhpY3NMYXllcjo6c2V0Q29udGVu
dHNWaXNpYmxlKGIpOworCisgICAgZGlkQ2hhbmdlTGF5ZXJTdGF0ZSgpOworfQorCiB2b2lkIFdl
YkdyYXBoaWNzTGF5ZXI6OnNldENvbnRlbnRzT3BhcXVlKGJvb2wgYikKIHsKICAgICBpZiAoY29u
dGVudHNPcGFxdWUoKSA9PSBiKQpAQCAtNDcwLDYgKzQ3OSw3IEBAIHZvaWQgV2ViR3JhcGhpY3NM
YXllcjo6c3luY0xheWVyU3RhdGUoKQogICAgIG1fbGF5ZXJJbmZvLmNvbnRlbnRzT3BhcXVlID0g
Y29udGVudHNPcGFxdWUoKTsKICAgICBtX2xheWVySW5mby5jb250ZW50c1JlY3QgPSBjb250ZW50
c1JlY3QoKTsKICAgICBtX2xheWVySW5mby5kcmF3c0NvbnRlbnQgPSBkcmF3c0NvbnRlbnQoKTsK
KyAgICBtX2xheWVySW5mby5jb250ZW50c1Zpc2libGUgPSBjb250ZW50c0FyZVZpc2libGUoKTsK
ICAgICBtX2xheWVySW5mby5tYXNrID0gdG9XZWJMYXllcklEKG1hc2tMYXllcigpKTsKICAgICBt
X2xheWVySW5mby5tYXNrc1RvQm91bmRzID0gbWFza3NUb0JvdW5kcygpOwogICAgIG1fbGF5ZXJJ
bmZvLm9wYWNpdHkgPSBvcGFjaXR5KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvTGF5ZXJUcmVlQ29vcmRpbmF0b3IvV2ViR3JhcGhpY3NMYXllci5oIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0xheWVyVHJlZUNvb3JkaW5hdG9yL1dl
YkdyYXBoaWNzTGF5ZXIuaAppbmRleCA5Y2U4ZWNkYWQ3ZDFhNTMyYWMzMTcxY2M5ZTBjZjA5YmM1
NzcxYTZlLi5mNTE5ZDA2NzUwNDFkMDQ2MWM0Yzc1NWQ0YTc3NTkyMzg0YWExNjEzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvTGF5ZXJUcmVlQ29vcmRpbmF0
b3IvV2ViR3JhcGhpY3NMYXllci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9MYXllclRyZWVDb29yZGluYXRvci9XZWJHcmFwaGljc0xheWVyLmgKQEAgLTk1LDYgKzk1
LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0UHJlc2VydmVzM0QoYm9vbCk7CiAgICAgdm9pZCBz
ZXRNYXNrc1RvQm91bmRzKGJvb2wpOwogICAgIHZvaWQgc2V0RHJhd3NDb250ZW50KGJvb2wpOwor
ICAgIHZvaWQgc2V0Q29udGVudHNWaXNpYmxlKGJvb2wpOwogICAgIHZvaWQgc2V0Q29udGVudHNP
cGFxdWUoYm9vbCk7CiAgICAgdm9pZCBzZXRCYWNrZmFjZVZpc2liaWxpdHkoYm9vbCk7CiAgICAg
dm9pZCBzZXRPcGFjaXR5KGZsb2F0KTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>