<?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>74749</bug_id>
          
          <creation_ts>2011-12-16 14:30:10 -0800</creation_ts>
          <short_desc>Runtime changes to requiredExtensions don&apos;t update the enclosing &lt;switch&gt;</short_desc>
          <delta_ts>2014-01-13 01:22:31 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>SVG</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>ASSIGNED</bug_status>
          <resolution></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>
          <dependson>88188</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Tim Horton">thorton</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>fred.wang</cc>
    
    <cc>pdr</cc>
    
    <cc>schenney</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>523031</commentid>
    <comment_count>0</comment_count>
      <attachid>119671</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2011-12-16 14:30:10 -0800</bug_when>
    <thetext>Created attachment 119671
repro

The attached repro demonstrates that removing an extension requirement (requiredExtensions attribute) at runtime doesn&apos;t affect a &lt;switch&gt; which had previously used that attribute to skip over an element.

&lt;rdar://problem/10582174&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>524113</commentid>
    <comment_count>1</comment_count>
      <attachid>119901</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2011-12-19 12:26:23 -0800</bug_when>
    <thetext>Created attachment 119901
repro (first one was broken)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>524801</commentid>
    <comment_count>2</comment_count>
      <attachid>120073</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2011-12-20 13:55:46 -0800</bug_when>
    <thetext>Created attachment 120073
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>524802</commentid>
    <comment_count>3</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2011-12-20 13:56:19 -0800</bug_when>
    <thetext>Also removes a related comment in SVGSwitchElement which to my eye looks completely false.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>525026</commentid>
    <comment_count>4</comment_count>
      <attachid>120073</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-20 18:11:28 -0800</bug_when>
    <thetext>Comment on attachment 120073
patch

Attachment 120073 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/10992386

New failing tests:
http/tests/inspector/resource-tree/resource-tree-document-url.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>525088</commentid>
    <comment_count>5</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2011-12-20 21:35:57 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 120073 [details])
&gt; Attachment 120073 [details] did not pass chromium-ews (chromium-xvfb):
&gt; Output: http://queues.webkit.org/results/10992386
&gt; 
&gt; New failing tests:
&gt; http/tests/inspector/resource-tree/resource-tree-document-url.html

That seems exceedingly unlikely.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>525178</commentid>
    <comment_count>6</comment_count>
      <attachid>120073</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2011-12-21 01:07:21 -0800</bug_when>
    <thetext>Comment on attachment 120073
patch

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

Great catches, I still have some questions:

&gt; LayoutTests/svg/custom/requiredExtensions-runtime-changes.svg:36
&gt; +        var removeElements = document.getElementsByClassName(&quot;removeRequiredExtensions&quot;);
&gt; +        var addElements = document.getElementsByClassName(&quot;addRequiredExtensions&quot;);

Clever idea, I keep that in mind for further tests of mine :-) Makes the test itself much more readable/hackable.

&gt; Source/WebCore/ChangeLog:10
&gt; +        SVGStringList, because SVGStringList::reset() adds a single empty string to the list.

Good catch - but I can&apos;t recall why reset() behaves this way. Can we just change the behavior of reset?

&gt; Source/WebCore/ChangeLog:13
&gt; +        Invalid elements inside &lt;switch&gt; are prevented from creating renderers,
&gt; +        but are still attached; SVGTests assumes that invalid elements will always be detached.

Why is this? I assumed that attached() returns false, if there&apos;s no renderer.
I just checked the code, and indeed this assumption is just wrong.

We&apos;re differentiating between two states in dom/Node.cpp (see attach()):
* attach() called no renderer created: attached() returns true and renderer() zero.
* attach() called renderer got created: attached() returns true and renderer() non-zero.

Does anyone know where exactly the former is needed?

When reading common code in eg. ContainerNode, it seems attached() is used to check whether the elements was attached to the rendering tree (which is what I assumed):
...
        // Add child to the rendering tree.
        if (attached() &amp;&amp; !child-&gt;attached() &amp;&amp; child-&gt;parentNode() == this) {
            if (shouldLazyAttach)
                child-&gt;lazyAttach();
            else
...

    // Remove from rendering tree
    if (oldChild-&gt;attached())
        oldChild-&gt;detach();
...

If theres a need to differentiate between those states, I&apos;m fine with your approach, otherwise we should rethink it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>525337</commentid>
    <comment_count>7</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2011-12-21 10:44:13 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 120073 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=120073&amp;action=review
&gt; 
&gt; Great catches, I still have some questions:
&gt; 
&gt; &gt; LayoutTests/svg/custom/requiredExtensions-runtime-changes.svg:36
&gt; &gt; +        var removeElements = document.getElementsByClassName(&quot;removeRequiredExtensions&quot;);
&gt; &gt; +        var addElements = document.getElementsByClassName(&quot;addRequiredExtensions&quot;);
&gt; 
&gt; Clever idea, I keep that in mind for further tests of mine :-) Makes the test itself much more readable/hackable.
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:10
&gt; &gt; +        SVGStringList, because SVGStringList::reset() adds a single empty string to the list.
&gt; 
&gt; Good catch - but I can&apos;t recall why reset() behaves this way. Can we just change the behavior of reset?

I&apos;d love to! I couldn&apos;t come up with a good reason (as it stands, this makes the empty-hasn&apos;t-been-touched list and the empty-was-touched-but-got-cleared list different, and I can&apos;t see a good reason for that, at all).

&gt; &gt; Source/WebCore/ChangeLog:13
&gt; &gt; +        Invalid elements inside &lt;switch&gt; are prevented from creating renderers,
&gt; &gt; +        but are still attached; SVGTests assumes that invalid elements will always be detached.
&gt; 
&gt; Why is this? I assumed that attached() returns false, if there&apos;s no renderer.
&gt; I just checked the code, and indeed this assumption is just wrong.
&gt; 
&gt; We&apos;re differentiating between two states in dom/Node.cpp (see attach()):
&gt; * attach() called no renderer created: attached() returns true and renderer() zero.
&gt; * attach() called renderer got created: attached() returns true and renderer() non-zero.
&gt; 
&gt; Does anyone know where exactly the former is needed?
&gt; 
&gt; When reading common code in eg. ContainerNode, it seems attached() is used to check whether the elements was attached to the rendering tree (which is what I assumed):
&gt; ...
&gt;         // Add child to the rendering tree.
&gt;         if (attached() &amp;&amp; !child-&gt;attached() &amp;&amp; child-&gt;parentNode() == this) {
&gt;             if (shouldLazyAttach)
&gt;                 child-&gt;lazyAttach();
&gt;             else
&gt; ...
&gt; 
&gt;     // Remove from rendering tree
&gt;     if (oldChild-&gt;attached())
&gt;         oldChild-&gt;detach();
&gt; ...
&gt; 
&gt; If theres a need to differentiate between those states, I&apos;m fine with your approach, otherwise we should rethink it.

I have no idea if there&apos;s a reason for this. I assumed there was, and just wanted to make our assumptions fit. Do you know who might know?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>932183</commentid>
    <comment_count>8</comment_count>
      <attachid>212362</attachid>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2013-09-23 10:33:31 -0700</bug_when>
    <thetext>Created attachment 212362
testcase

Here is another testcase. I can help with fixing that bug, since it is similar to the implementation of maction/semantics I&apos;m currently working on.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>932193</commentid>
    <comment_count>9</comment_count>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2013-09-23 10:48:34 -0700</bug_when>
    <thetext>So more precisely:

- update to &lt;switch&gt; when foreignObject@requiredExtensions changes is similar to update to &lt;semantics&gt; when annotation-xml@encoding changes (bug 100626)

- update to &lt;switch&gt; when its children or attributes change is similar to what I have done to update &lt;semantics&gt;/&lt;maction&gt; (bug 120058)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>964635</commentid>
    <comment_count>10</comment_count>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2014-01-06 08:46:57 -0800</bug_when>
    <thetext>Finally this will be a bit more complicated than the MathML case, since SVG attributes can be animated. So I don&apos;t think I&apos;ll spend some time on it in the short term.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>119671</attachid>
            <date>2011-12-16 14:30:10 -0800</date>
            <delta_ts>2011-12-19 12:26:23 -0800</delta_ts>
            <desc>repro</desc>
            <filename>reduced.xhtml</filename>
            <type>application/xhtml+xml</type>
            <size>1327</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">PGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPiAgIAo8Ym9keT4KPHN2
ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8v
d3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMzAwIiBoZWlnaHQ9IjYwMCI+CiAgICA8dGV4
dCB5PSIyMCI+VGhlIHNoYXBlcyBzaG91bGQgYmUgaWRlbnRpY2FsIGFmdGVyIGxvYWQuPC90ZXh0
PgogICAgPGcgaWQ9InN2Z3N0YXIiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDEwMCwgMTUwKSI+CiAg
ICAgICAgPHN3aXRjaD4KICAgICAgICAgICAgPHBhdGggZmlsbD0iYmxhY2siIG9wYWNpdHk9IjAu
NCIgZD0iTS01MCwtMTAgTDUwLC0xMCBMNTAsMTAgTC01MCwxMCBaIiB0cmFuc2Zvcm09InJvdGF0
ZSg0NSkiIC8+CiAgICAgICAgICAgIDxwYXRoIGZpbGw9ImJsYWNrIiBvcGFjaXR5PSIwLjQiIGQ9
Ik0tNTAsLTEwIEw1MCwtMTAgTDUwLDEwIEwtNTAsMTAgWiIgdHJhbnNmb3JtPSJyb3RhdGUoOTAp
IiAvPgogICAgICAgIDwvc3dpdGNoPgogICAgPC9nPgogICAgCiAgICA8ZyBpZD0ic3Znc3RhciIg
dHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTAwLCAyOTApIj4KICAgICAgICA8c3dpdGNoPgogICAgICAg
ICAgICA8cGF0aCBmaWxsPSJibGFjayIgb3BhY2l0eT0iMC40IiBkPSJNLTUwLC0xMCBMNTAsLTEw
IEw1MCwxMCBMLTUwLDEwIFoiIHRyYW5zZm9ybT0icm90YXRlKDQ1KSIgcmVxdWlyZWRFeHRlbnNp
b25zPSJodHRwOi8vd3d3LmlkcGYub3JnLzIwMDcvb3BzIi8+CiAgICAgICAgICAgIDxwYXRoIGZp
bGw9ImJsYWNrIiBvcGFjaXR5PSIwLjQiIGQ9Ik0tNTAsLTEwIEw1MCwtMTAgTDUwLDEwIEwtNTAs
MTAgWiIgdHJhbnNmb3JtPSJyb3RhdGUoOTApIiAvPgogICAgICAgIDwvc3dpdGNoPgogICAgPC9n
Pgo8L3N2Zz4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgp3aW5kb3cuYWRkRXZlbnRM
aXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uKGV2ZW50KSB7CiAgICB2YXIgdXNlID0gZG9jdW1lbnQu
cXVlcnlTZWxlY3RvcigndXNlW3JlcXVpcmVkRXh0ZW5zaW9uc349Imh0dHA6Ly93d3cuZXhhbXBs
ZS5jb20vMTIzNCJdJyk7CiAgICB1c2UucmVtb3ZlQXR0cmlidXRlKCdyZXF1aXJlZEV4dGVuc2lv
bnMnKTsKICAgIAogICAgdmFyIHBhdGggPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdwYXRoW3Jl
cXVpcmVkRXh0ZW5zaW9uc349Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20vMTIzNCJdJyk7CiAgICBw
YXRoLnJlbW92ZUF0dHJpYnV0ZSgncmVxdWlyZWRFeHRlbnNpb25zJyk7Cn0pOwo8L3NjcmlwdD4K
PC9ib2R5Pgo8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>119901</attachid>
            <date>2011-12-19 12:26:23 -0800</date>
            <delta_ts>2011-12-19 12:26:23 -0800</delta_ts>
            <desc>repro (first one was broken)</desc>
            <filename>reduced.xhtml</filename>
            <type>application/xhtml+xml</type>
            <size>1178</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">PGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPiAgIAo8Ym9keT4KPHN2
ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8v
d3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMzAwIiBoZWlnaHQ9IjYwMCI+CiAgICA8dGV4
dCB5PSIyMCI+VGhlIHNoYXBlcyBzaG91bGQgYmUgaWRlbnRpY2FsIGFmdGVyIGxvYWQuPC90ZXh0
PgogICAgPGcgaWQ9InN2Z3N0YXIiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDEwMCwgMTUwKSI+CiAg
ICAgICAgPHN3aXRjaD4KICAgICAgICAgICAgPHBhdGggZmlsbD0iYmxhY2siIG9wYWNpdHk9IjAu
NCIgZD0iTS01MCwtMTAgTDUwLC0xMCBMNTAsMTAgTC01MCwxMCBaIiB0cmFuc2Zvcm09InJvdGF0
ZSg0NSkiIC8+CiAgICAgICAgICAgIDxwYXRoIGZpbGw9ImJsYWNrIiBvcGFjaXR5PSIwLjQiIGQ9
Ik0tNTAsLTEwIEw1MCwtMTAgTDUwLDEwIEwtNTAsMTAgWiIgdHJhbnNmb3JtPSJyb3RhdGUoOTAp
IiAvPgogICAgICAgIDwvc3dpdGNoPgogICAgPC9nPgogICAgCiAgICA8ZyBpZD0ic3Znc3RhciIg
dHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTAwLCAyOTApIj4KICAgICAgICA8c3dpdGNoPgogICAgICAg
ICAgICA8cGF0aCBmaWxsPSJibGFjayIgb3BhY2l0eT0iMC40IiBkPSJNLTUwLC0xMCBMNTAsLTEw
IEw1MCwxMCBMLTUwLDEwIFoiIHRyYW5zZm9ybT0icm90YXRlKDQ1KSIgcmVxdWlyZWRFeHRlbnNp
b25zPSJodHRwOi8vd3d3LmV4YW1wbGUuY29tLzEyMzQiLz4KICAgICAgICAgICAgPHBhdGggZmls
bD0iYmxhY2siIG9wYWNpdHk9IjAuNCIgZD0iTS01MCwtMTAgTDUwLC0xMCBMNTAsMTAgTC01MCwx
MCBaIiB0cmFuc2Zvcm09InJvdGF0ZSg5MCkiIC8+CiAgICAgICAgPC9zd2l0Y2g+CiAgICA8L2c+
Cjwvc3ZnPgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CndpbmRvdy5hZGRFdmVudExp
c3RlbmVyKCdsb2FkJywgZnVuY3Rpb24oZXZlbnQpIHsKICAgIHZhciBwYXRoID0gZG9jdW1lbnQu
cXVlcnlTZWxlY3RvcigncGF0aFtyZXF1aXJlZEV4dGVuc2lvbnN+PSJodHRwOi8vd3d3LmV4YW1w
bGUuY29tLzEyMzQiXScpOwogICAgcGF0aC5yZW1vdmVBdHRyaWJ1dGUoJ3JlcXVpcmVkRXh0ZW5z
aW9ucycpOwp9KTsKPC9zY3JpcHQ+CjwvYm9keT4KPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>120073</attachid>
            <date>2011-12-20 13:55:46 -0800</date>
            <delta_ts>2013-10-15 22:01:59 -0700</delta_ts>
            <desc>patch</desc>
            <filename>requiredExtensions-invalidation.patch</filename>
            <type>text/plain</type>
            <size>10807</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA1NDVjNGZlLi4zYzg1NGNkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTEtMTIt
MjAgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgUnVu
dGltZSBjaGFuZ2VzIHRvIHJlcXVpcmVkRXh0ZW5zaW9ucyBkb24ndCB1cGRhdGUgdGhlIGVuY2xv
c2luZyA8c3dpdGNoPgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NzQ3NDkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzEwNTgyMTc0PgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhIHRlc3QgZW5zdXJp
bmcgdGhhdCBhIGZldyBkaWZmZXJlbnQgaW52YWxpZGF0aW9ucyBvZiB0aGUgcmVxdWlyZWRFeHRl
bnNpb25zIHN0cmluZworICAgICAgICB3b3JrIGFzIGV4cGVjdGVkLCBib3RoIHdpdGhpbiA8c3dp
dGNoPiBlbGVtZW50cyBhbmQgb3RoZXJ3aXNlLgorCisgICAgICAgICogcGxhdGZvcm0vbWFjL3N2
Zy9jdXN0b20vcmVxdWlyZWRFeHRlbnNpb25zLXJ1bnRpbWUtY2hhbmdlcy1leHBlY3RlZC5wbmc6
IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9zdmcvY3VzdG9tL3JlcXVpcmVkRXh0ZW5z
aW9ucy1ydW50aW1lLWNoYW5nZXMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdmcv
Y3VzdG9tL3JlcXVpcmVkRXh0ZW5zaW9ucy1ydW50aW1lLWNoYW5nZXMuc3ZnOiBBZGRlZC4KKwog
MjAxMS0xMi0xNiAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBp
bnZhbGlkYXRlTm9kZUxpc3RzQ2FjaGVBZnRlckF0dHJpYnV0ZUNoYW5nZWQgaGFzIHRvbyBtYW55
IGNhbGxlcnMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvY3VzdG9t
L3JlcXVpcmVkRXh0ZW5zaW9ucy1ydW50aW1lLWNoYW5nZXMtZXhwZWN0ZWQucG5nIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jdXN0b20vcmVxdWlyZWRFeHRlbnNpb25zLXJ1bnRpbWUt
Y2hhbmdlcy1leHBlY3RlZC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDE0ZTUyMWVhMmFjNjdiNDE5ZGFlMjll
ODNmNzhkODRhOGQwYjY4ZgpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgNDM4Mwp6Y21lQVNATj8o
b2xIeWB1VkJxIWlhMHl+eVV7K3ZZVjJhPmkxQiVRbFlicFJ6bmtCOWdDQ000NyQ9U3VGeGVWcTgK
eiM7SztwaUsqcz4jenNjd1gkQl4jTXV1aDxOb0kqQXNWT05JPTFGUnE2SyNOfGU4X1ptNClBbiNS
dFBBe1BzX3xuCnpXbmo+bCpjKkJgfDh8SW9lUEAybTU7Nk0pOH5nWX55VnIqWE5BSHhEVDY+Sm1i
TW4lY1BFdEcxLXEyY2R2TlRVQgp6X2AyRCklZWtUUnpjSjxXezl0YV8jNGIwWCFieXRmJGhTPno4
TWstX0pCblVhU3o9cHElT1BYKHgyOURFPigmU0YKemp5PCt4O2AofmE9akM/cUZQYl9XNTE7alRo
Tm9vMHktJV5HXkMkTXRwRTFva09wKWB2cXh1KHo8OyR4NWNFI3YxCno9XmJsenpqaW9ZQCEmbWtf
RkokMjduZz51VCtYYUEmbllMfHdwUStBWDJYPH4qNmE4Yz96I1FecG4yYyUmUFNVXgp6dlUrTUE1
czRNazlfdCk3bVhZVlQyITVySkdfOEJkXntyWnVSRkN7TUh2RX54Xkk0ezh0RnBpREUyJiopc3No
WDIKeiZQdSEjdkNCVzt8OVI3VnYjNV8lQTc2ZllycT0meGNtTEo2XjVhKG8+ZXByT15nTj1reXpr
aSROd3M+Pms5JntCCnpzUDxPcUpBOWZzdDlyP3lwQ2BANVVJKUtkeFl4Tk8+cXFPI2ZQRVFmcj5P
MTdFdmhfY3gya1BVX0FjYC0raCVkVwp6YD5RVEhPPzxCR0ZnMn1zTz8qZjc+KXdxUV84WXZAXj80
Um1DLSE9PT5PMSM+YDxJV00/eCteMWV7dCYtJWxYS04KeldvZEN3fEZ2ck8jcSQqbFQrYGhnXjJE
eXdXJCVKeDQpM2xuS2Vqe0heMSktcHFHK1I3PDMxNm1mMEw1Z0hoMWl0CnpfJkx2Y1pPYV8jUyto
P1UrZHJ8fXM8clVebTM2RDhyUzZxPXNnZFlZSENkMnduQ0cyVSMwRXlBNiUqUWRfUUA2bQp6MX5X
N0pPYk5JV0cpMUN3Y19Mcngrc2RhNmhZT0YpOzlZWmxybTApemBHPG48VDRaTEkyKURqRHsjLSRH
bDVAKDgKem8oNytMRCl8ISt0OGB4eUVHb0ZYT3tWKk4oJXFZMUtISGdHKDAobDJkfWlsN3d8SjVG
WXBPM0BTWVE5O3lJQShgCnppRX1jdz1VMT5GSUx4PFkySl4+WD4tR0xfKEVoYTFOcERafT1HVSk7
ZH44PGtVd00xdypER0FfUjxHUkpHNFlxfQp6KjAla2o5PzV4VzZFNTE9eGxMI25LZGxnVklKS3Rj
TGN4RkwlQ2VzQXMhMzw5dF94PklzSn4hZStPQkdHVGkkYygKentWRGNTTVcxcCUtQlZOXkpeZ2w+
PVp9eWRWTHQrWWAyQzNjQShgQFVRYkZWbyZtQnJOJH12NTJ1UmVhQntQfDZECnpSckZPTy1gI1Ar
MjF8UmtMfDF2OV4zd05NP3tXMFJ7NDJWPXAyP1R3dURyUXR2JU8rWmcpWkJpMUFESnR7a0c5IQp6
ZU56OyhBRkY3RVc0b0AhPUc9ZUkqX1hXQUpROG5UO29CVVVYTHd9SjRBSUw5LVBLMTAzcTU0Z2NU
QW5YZ1N9TEYKeiRNYkRJYk58aVklSUZiWVUjdXwwJTUzJFNEI1ooeDR6KlJjKCM3QWRjc3ItQ192
U0FCX3JYKUhLUSphYXdJWEsyCnpteEZiWSM9ZSNUbTdCYjZVK0c8VnJMZl8+IXYwMF9ELU0zdy1U
MWptPEAwP3VpIWI4JEJGJlg8bU19bGE9M25yOAp6dEgtdFdAPCpISkdzYWpmRnUmOUs7aGV1cDlw
aV9yLWBfdmgkNGMmKm9vNzBtfEhIbWxLVWZrVEtUaThSfDdsd0IKeldBODhmKiRQaG41c3pkanRU
PmBeJGJvQEBYUkRgK1ZAU29Fdz5KOz05eVNuUWFyYDdTVUdgQGpUT0ZzYiE+WD0/CnpBQnE9bD82
dTNqIyhkXiRNPj5RM29BLTlNNTVAanpHdShVZ3t0S3xRZDBALUohTjQjPFA9U0hMIUwwIShBaiF6
WQp6ej5xUlIxaXpnKl5IUHczO2VocHk1JEUrMDYybH5WXlhCVyMmJVNoNnF2dz9+dFNrJStDcFpL
YzchO0hwNyNKRlEKejcjSkJDakY/N3s7RzNCPEZEbkNtVVM3YUIoITQmQnFhQzszSCh5VWJgJTx1
YyMlc2F6NDBTaXwqSCNfVXtTKGZ4CnpYRDBVdXUxPiYoJX1yekQ8P2dfV14hKT4tNW1ifHNTazh7
bl9RcSVeRFU4VD09NGlhNSNycj9UbEBZM3dkR21ZdQpRZkYmaF5yPm1kS0k7VnN0MERTdCZCbWUq
YQoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjL3N2Zy9jdXN0b20vcmVxdWlyZWRFeHRlbnNpb25zLXJ1bnRpbWUtY2hhbmdlcy1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2N1c3RvbS9yZXF1aXJlZEV4
dGVuc2lvbnMtcnVudGltZS1jaGFuZ2VzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi45NDk0ZmJkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjL3N2Zy9jdXN0b20vcmVxdWlyZWRFeHRlbnNpb25zLXJ1bnRpbWUtY2hhbmdl
cy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNyBAQAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4
NjAwCisgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCitsYXllciBhdCAoMCwwKSBz
aXplIDYwMHg2MDAKKyAgUmVuZGVyU1ZHUm9vdCB7c3ZnfSBhdCAoMCwwKSBzaXplIDM1MHgzNTAK
KyAgICBSZW5kZXJTVkdDb250YWluZXIge3N3aXRjaH0gYXQgKDAsMCkgc2l6ZSA1MHg1MAorICAg
ICAgUmVuZGVyU1ZHUGF0aCB7cGF0aH0gYXQgKDAsMCkgc2l6ZSA1MHg1MCBbZmlsbD17W3R5cGU9
U09MSURdIFtjb2xvcj0jMDA4MDAwXX1dIFtkYXRhPSJNIDAgMCBMIDUwIDAgTCA1MCA1MCBMIDAg
NTAgWiJdCisgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtzd2l0Y2h9IGF0ICgwLDE1MCkgc2l6ZSA1
MHg1MCBbdHJhbnNmb3JtPXttPSgoMS4wMCwwLjAwKSgwLjAwLDEuMDApKSB0PSgwLjAwLDE1MC4w
MCl9XQorICAgICAgUmVuZGVyU1ZHUGF0aCB7cGF0aH0gYXQgKDAsMTUwKSBzaXplIDUweDUwIFtm
aWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDgwMDBdfV0gW2RhdGE9Ik0gMCAwIEwgNTAgMCBM
IDUwIDUwIEwgMCA1MCBaIl0KKyAgICBSZW5kZXJTVkdDb250YWluZXIge3N3aXRjaH0gYXQgKDAs
MzAwKSBzaXplIDUweDUwIFt0cmFuc2Zvcm09e209KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkpIHQ9
KDAuMDAsMzAwLjAwKX1dCisgICAgICBSZW5kZXJTVkdQYXRoIHtwYXRofSBhdCAoMCwzMDApIHNp
emUgNTB4NTAgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwODAwMF19XSBbZGF0YT0iTSAw
IDAgTCA1MCAwIEwgNTAgNTAgTCAwIDUwIFoiXQorICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30g
YXQgKDMwMCwwKSBzaXplIDUweDUwIFt0cmFuc2Zvcm09e209KCgxLjAwLDAuMDApKDAuMDAsMS4w
MCkpIHQ9KDMwMC4wMCwwLjAwKX1dCisgICAgICBSZW5kZXJTVkdQYXRoIHtwYXRofSBhdCAoMzAw
LDApIHNpemUgNTB4NTAgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwODAwMF19XSBbZGF0
YT0iTSAwIDAgTCA1MCAwIEwgNTAgNTAgTCAwIDUwIFoiXQorICAgIFJlbmRlclNWR0NvbnRhaW5l
ciB7Z30gYXQgKDMwMCwxNTApIHNpemUgNTB4NTAgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCko
MC4wMCwxLjAwKSkgdD0oMzAwLjAwLDE1MC4wMCl9XQorICAgICAgUmVuZGVyU1ZHUGF0aCB7cGF0
aH0gYXQgKDMwMCwxNTApIHNpemUgNTB4NTAgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAw
ODAwMF19XSBbZGF0YT0iTSAwIDAgTCA1MCAwIEwgNTAgNTAgTCAwIDUwIFoiXQorICAgIFJlbmRl
clNWR0NvbnRhaW5lciB7Z30gYXQgKDMwMCwzMDApIHNpemUgNTB4NTAgW3RyYW5zZm9ybT17bT0o
KDEuMDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0oMzAwLjAwLDMwMC4wMCl9XQorICAgICAgUmVuZGVy
U1ZHQ29udGFpbmVyIHtnfSBhdCAoMzAwLDMwMCkgc2l6ZSA1MHg1MAorICAgICAgICBSZW5kZXJT
VkdQYXRoIHtwYXRofSBhdCAoMzAwLDMwMCkgc2l6ZSA1MHg1MCBbZmlsbD17W3R5cGU9U09MSURd
IFtjb2xvcj0jMDA4MDAwXX1dIFtkYXRhPSJNIDAgMCBMIDUwIDAgTCA1MCA1MCBMIDAgNTAgWiJd
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdmcvY3VzdG9tL3JlcXVpcmVkRXh0ZW5zaW9ucy1y
dW50aW1lLWNoYW5nZXMuc3ZnIGIvTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9yZXF1aXJlZEV4dGVu
c2lvbnMtcnVudGltZS1jaGFuZ2VzLnN2ZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi45MDBhZGVjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9y
ZXF1aXJlZEV4dGVuc2lvbnMtcnVudGltZS1jaGFuZ2VzLnN2ZwpAQCAtMCwwICsxLDQ4IEBACis8
c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjYwMCIgaGVpZ2h0
PSI2MDAiPgorICAgIDx0aXRsZT5UaGlzIHRlc3QgcGFzc2VzIGlmIHRoZXJlIGFyZSBzaXggZ3Jl
ZW4gc3F1YXJlcyBiZWxvdy48L3RpdGxlPgorICAgIDxzd2l0Y2g+CisgICAgICAgIDxwYXRoIGNs
YXNzPSJyZW1vdmVSZXF1aXJlZEV4dGVuc2lvbnMiIGZpbGw9ImdyZWVuIiBkPSJNMCwwIEw1MCww
IEw1MCw1MCBMMCw1MCBaIiByZXF1aXJlZEV4dGVuc2lvbnM9Imh0dHA6Ly93d3cuZXhhbXBsZS5j
b20vMTIzNCIvPgorICAgICAgICA8cGF0aCBmaWxsPSJyZWQiIGQ9Ik0wLDAgTDIwMCwwIEwyMDAs
MjAgTDAsMjAgWiIgLz4KKyAgICA8L3N3aXRjaD4KKyAgICAKKyAgICA8c3dpdGNoIHRyYW5zZm9y
bT0idHJhbnNsYXRlKDAsMTUwKSI+CisgICAgICAgIDxwYXRoIGNsYXNzPSJyZW1vdmVSZXF1aXJl
ZEV4dGVuc2lvbnMiIGZpbGw9ImdyZWVuIiBkPSJNMCwwIEw1MCwwIEw1MCw1MCBMMCw1MCBaIiBy
ZXF1aXJlZEV4dGVuc2lvbnM9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20vNDU2NyIvPgorICAgIDwv
c3dpdGNoPgorICAgIAorICAgIDxzd2l0Y2ggdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMCwzMDApIj4K
KyAgICAgICAgPHBhdGggY2xhc3M9ImFkZFJlcXVpcmVkRXh0ZW5zaW9ucyIgZmlsbD0icmVkIiBk
PSJNMCwwIEwyMDAsMCBMMjAwLDIwIEwwLDIwIFoiIC8+CisgICAgICAgIDxwYXRoIGZpbGw9Imdy
ZWVuIiBkPSJNMCwwIEw1MCwwIEw1MCw1MCBMMCw1MCBaIiAvPgorICAgIDwvc3dpdGNoPgorICAg
IAorICAgIDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDMwMCwgMCkiPgorICAgICAgICA8cGF0aCBj
bGFzcz0icmVtb3ZlUmVxdWlyZWRFeHRlbnNpb25zIiBmaWxsPSJncmVlbiIgZD0iTTAsMCBMNTAs
MCBMNTAsNTAgTDAsNTAgWiIgcmVxdWlyZWRFeHRlbnNpb25zPSJodHRwOi8vd3d3LmV4YW1wbGUu
Y29tLzQ1NjciIC8+CisgICAgPC9nPgorICAgIAorICAgIDxnIHRyYW5zZm9ybT0idHJhbnNsYXRl
KDMwMCwgMTUwKSI+CisgICAgICAgIDxwYXRoIGNsYXNzPSJhZGRSZXF1aXJlZEV4dGVuc2lvbnMi
IGZpbGw9InJlZCIgZD0iTTAsMCBMMjAwLDAgTDIwMCwyMCBMMCwyMCBaIiAvPgorICAgICAgICA8
cGF0aCBmaWxsPSJncmVlbiIgZD0iTTAsMCBMNTAsMCBMNTAsNTAgTDAsNTAgWiIgLz4KKyAgICA8
L2c+CisgICAgCisgICAgPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMzAwLCAzMDApIj4KKyAgICAg
ICAgPGc+CisgICAgICAgICAgICA8cGF0aCBjbGFzcz0iYWRkUmVxdWlyZWRFeHRlbnNpb25zIiBm
aWxsPSJyZWQiIGQ9Ik0wLDAgTDIwMCwwIEwyMDAsMjAgTDAsMjAgWiIgLz4KKyAgICAgICAgICAg
IDxwYXRoIGZpbGw9ImdyZWVuIiBkPSJNMCwwIEw1MCwwIEw1MCw1MCBMMCw1MCBaIiAvPgorICAg
ICAgICA8L2c+CisgICAgPC9nPgorICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4K
KyAgICA8IVtDREFUQVsKKyAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0
aW9uKGV2ZW50KSB7CisgICAgICAgIHZhciByZW1vdmVFbGVtZW50cyA9IGRvY3VtZW50LmdldEVs
ZW1lbnRzQnlDbGFzc05hbWUoInJlbW92ZVJlcXVpcmVkRXh0ZW5zaW9ucyIpOworICAgICAgICB2
YXIgYWRkRWxlbWVudHMgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJhZGRSZXF1
aXJlZEV4dGVuc2lvbnMiKTsKKworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlbW92ZUVs
ZW1lbnRzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICByZW1vdmVFbGVtZW50c1tpXS5yZW1v
dmVBdHRyaWJ1dGUoInJlcXVpcmVkRXh0ZW5zaW9ucyIpOworICAgICAgICB9CisKKyAgICAgICAg
Zm9yICh2YXIgaSA9IDA7IGkgPCBhZGRFbGVtZW50cy5sZW5ndGg7IGkrKykgeworICAgICAgICAg
ICAgYWRkRWxlbWVudHNbaV0uc2V0QXR0cmlidXRlKCJyZXF1aXJlZEV4dGVuc2lvbnMiLCAiaHR0
cDovL3d3dy5leGFtcGxlLmNvbS84OTAiKTsKKyAgICAgICAgfQorICAgIH0pOworICAgIF1dPgor
ICAgIDwvc2NyaXB0PgorPC9zdmc+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDFjZGQ2NS4uMTU0OTEwMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDExLTEyLTIwICBUaW0gSG9ydG9uICA8dGltb3Ro
eV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIFJ1bnRpbWUgY2hhbmdlcyB0byByZXF1aXJl
ZEV4dGVuc2lvbnMgZG9uJ3QgdXBkYXRlIHRoZSBlbmNsb3NpbmcgPHN3aXRjaD4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc0NzQ5CisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS8xMDU4MjE3ND4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBXaGVuIHRlc3RpbmcgZW1wdGluZXNzIG9mIHJlcXVpcmVkRXh0ZW5z
aW9ucywgdGVzdCB0aGUgbWVyZ2VkIHN0cmluZyBpbnN0ZWFkIG9mIHRoZQorICAgICAgICBTVkdT
dHJpbmdMaXN0LCBiZWNhdXNlIFNWR1N0cmluZ0xpc3Q6OnJlc2V0KCkgYWRkcyBhIHNpbmdsZSBl
bXB0eSBzdHJpbmcgdG8gdGhlIGxpc3QuCisKKyAgICAgICAgSW52YWxpZCBlbGVtZW50cyBpbnNp
ZGUgPHN3aXRjaD4gYXJlIHByZXZlbnRlZCBmcm9tIGNyZWF0aW5nIHJlbmRlcmVycywKKyAgICAg
ICAgYnV0IGFyZSBzdGlsbCBhdHRhY2hlZDsgU1ZHVGVzdHMgYXNzdW1lcyB0aGF0IGludmFsaWQg
ZWxlbWVudHMgd2lsbCBhbHdheXMgYmUgZGV0YWNoZWQuCisgICAgICAgIEhhbmRsZSB0aGUgPHN3
aXRjaD4gY2FzZSB3aGVuIGNoYW5naW5nIFNWR1Rlc3QgYXR0cmlidXRlcyBvbiBjaGlsZHJlbi4K
KworICAgICAgICBUZXN0OiBzdmcvY3VzdG9tL3JlcXVpcmVkRXh0ZW5zaW9ucy1ydW50aW1lLWNo
YW5nZXMuc3ZnCisKKyAgICAgICAgKiBzdmcvU1ZHU3dpdGNoRWxlbWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTVkdTd2l0Y2hFbGVtZW50OjpjaGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyKToK
KyAgICAgICAgKiBzdmcvU1ZHVGVzdHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVGVzdHM6
OmlzVmFsaWQpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVGVzdHM6OmhhbmRsZUF0dHJpYnV0ZUNo
YW5nZSk6CisKIDIwMTEtMTItMTYgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAK
ICAgICAgICAgaW52YWxpZGF0ZU5vZGVMaXN0c0NhY2hlQWZ0ZXJBdHRyaWJ1dGVDaGFuZ2VkIGhh
cyB0b28gbWFueSBjYWxsZXJzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3dp
dGNoRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3dpdGNoRWxlbWVudC5jcHAK
aW5kZXggNzlhMDBhYy4uZWE1MDUyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1N3aXRjaEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTd2l0Y2hFbGVt
ZW50LmNwcApAQCAtNTEsOCArNTEsNiBAQCBQYXNzUmVmUHRyPFNWR1N3aXRjaEVsZW1lbnQ+IFNW
R1N3aXRjaEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYQogCiBib29s
IFNWR1N3aXRjaEVsZW1lbnQ6OmNoaWxkU2hvdWxkQ3JlYXRlUmVuZGVyZXIoTm9kZSogY2hpbGQp
IGNvbnN0CiB7Ci0gICAgLy8gRklYTUU6IFRoaXMgZnVuY3Rpb24gZG9lcyBub3QgZG8gd2hhdCB0
aGUgY29tbWVudCBiZWxvdyBpbXBsaWVzIGl0IGRvZXMuCi0gICAgLy8gSXQgd2lsbCBjcmVhdGUg
YSByZW5kZXJlciBmb3IgYW55IHZhbGlkIFNWRyBlbGVtZW50IGNoaWxkcmVuLCBub3QganVzdCB0
aGUgZmlyc3Qgb25lLgogICAgIGZvciAoTm9kZSogbm9kZSA9IGZpcnN0Q2hpbGQoKTsgbm9kZTsg
bm9kZSA9IG5vZGUtPm5leHRTaWJsaW5nKCkpIHsKICAgICAgICAgaWYgKCFub2RlLT5pc1NWR0Vs
ZW1lbnQoKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1Rlc3RzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXN0cy5jcHAKaW5k
ZXggODRjNWFkZS4uYTRhNGM1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Rl
c3RzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGVzdHMuY3BwCkBAIC0xMTQsNyAr
MTE0LDcgQEAgYm9vbCBTVkdUZXN0czo6aXNWYWxpZCgpIGNvbnN0CiAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgfQogCi0gICAgaWYgKCFtX3JlcXVpcmVkRXh0ZW5zaW9ucy52YWx1ZS5p
c0VtcHR5KCkpCisgICAgaWYgKCFtX3JlcXVpcmVkRXh0ZW5zaW9ucy52YWx1ZS52YWx1ZUFzU3Ry
aW5nKCkuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICByZXR1cm4gdHJ1
ZTsKQEAgLTE1NCwxMCArMTU0LDE5IEBAIGJvb2wgU1ZHVGVzdHM6OmhhbmRsZUF0dHJpYnV0ZUNo
YW5nZShjb25zdCBTVkdFbGVtZW50KiB0YXJnZXRFbGVtZW50LCBjb25zdCBRdWFsCiAgICAgU1ZH
RWxlbWVudCogc3ZnRWxlbWVudCA9IGNvbnN0X2Nhc3Q8U1ZHRWxlbWVudCo+KHRhcmdldEVsZW1l
bnQpOwogICAgIEFTU0VSVChzdmdFbGVtZW50KTsKICAgICBib29sIHZhbGlkID0gc3ZnRWxlbWVu
dC0+aXNWYWxpZCgpOwotICAgIGlmICh2YWxpZCAmJiAhc3ZnRWxlbWVudC0+YXR0YWNoZWQoKSkK
LSAgICAgICAgc3ZnRWxlbWVudC0+YXR0YWNoKCk7CisgICAgaWYgKHZhbGlkICYmICghc3ZnRWxl
bWVudC0+cmVuZGVyZXIoKSB8fCAhc3ZnRWxlbWVudC0+YXR0YWNoZWQoKSkpCisgICAgICAgIHN2
Z0VsZW1lbnQtPnJlYXR0YWNoKCk7CiAgICAgaWYgKCF2YWxpZCAmJiBzdmdFbGVtZW50LT5hdHRh
Y2hlZCgpKQogICAgICAgICBzdmdFbGVtZW50LT5kZXRhY2goKTsKKworICAgIC8vIFdlIG5lZWQg
dG8gaW52YWxpZGF0ZSBhbnkgPHN3aXRjaD4gZWxlbWVudHMgd2hpY2ggYXJlIG91ciBpbW1lZGlh
dGUKKyAgICAvLyBwYXJlbnQuIDxzd2l0Y2g+IHVzZXMgdGhlIHNob3VsZENyZWF0ZVJlbmRlcmVy
IG1lY2hhbmlzbSBpbnN0ZWFkIG9mCisgICAgLy8gYXR0YWNoZWQgc3RhdGUgdG8gZW5mb3JjZSBp
dHMgY2hvaWNlLCBhbmQgcmVhdHRhY2hpbmcgdGhlIG5vZGUgd2lsbAorICAgIC8vIGNhdXNlIHRo
aXMgdG8gYmUgcmVldmFsdWF0ZWQuCisgICAgTm9kZSAqIHBhcmVudE5vZGUgPSBzdmdFbGVtZW50
LT5wYXJlbnROb2RlRm9yUmVuZGVyaW5nQW5kU3R5bGUoKTsKKyAgICBpZiAocGFyZW50Tm9kZS0+
aGFzVGFnTmFtZShTVkdOYW1lczo6c3dpdGNoVGFnKSkKKyAgICAgICAgcGFyZW50Tm9kZS0+cmVh
dHRhY2goKTsKKwogICAgIHJldHVybiB0cnVlOwogfQogCg==
</data>
<flag name="commit-queue"
          id="120310"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>212362</attachid>
            <date>2013-09-23 10:33:31 -0700</date>
            <delta_ts>2013-09-23 10:33:31 -0700</delta_ts>
            <desc>testcase</desc>
            <filename>svg.html</filename>
            <type>text/html</type>
            <size>516</size>
            <attacher name="Frédéric Wang Nélar">fred.wang</attacher>
            
              <data encoding="base64">PCFkb2N0eXBlIGh0bWw+CjxodG1sPgogIDxoZWFkPgogICAgPHRpdGxlPnRlc3RjYXNlPC90aXRs
ZT4KICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KICAgICAgZnVuY3Rpb24gZigp
CiAgICAgIHsKICAgICAgICB2YXIgcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzJyk7CiAg
ICAgICAgcy5pbnNlcnRCZWZvcmUocy5sYXN0RWxlbWVudENoaWxkLmNsb25lTm9kZSgpLCBzLmZp
cnN0RWxlbWVudENoaWxkKTsKICAgICAgfQogICAgPC9zY3JpcHQ+CiAgPC9oZWFkPgogIDxib2R5
IG9ubG9hZD0iZigpIj4KCiAgICA8c3ZnIHdpZHRoPSI1MHB4IiBoZWlnaHQ9IjUwcHgiPgogICAg
ICA8c3dpdGNoIGlkPSJzIj4KICAgICAgICA8cmVjdCB3aWR0aD0iNTBweCIgaGVpZ2h0PSI1MHB4
IiBmaWxsPSIjZjAwIi8+CiAgICAgICAgPHJlY3Qgd2lkdGg9IjUwcHgiIGhlaWdodD0iNTBweCIg
ZmlsbD0iIzBmMCIvPgogICAgICA8L3N3aXRjaD4KICAgIDwvc3ZnPgoKICA8L2JvZHk+CjwvaHRt
bD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>