<?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>328044</bug_id>
          
          <creation_ts>2026-10-19 02:29:53 -0700</creation_ts>
          <short_desc>[SVG] &lt;textPath href&gt; to a basic shape does not follow later changes to the shape</short_desc>
          <delta_ts>2026-10-26 02:30: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>SVG</component>
          <version>Safari 26</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=15799</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=103811</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=328049</see_also>
          <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="Karl Dubost">karlcow</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>sabouhallawa</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>2265957</commentid>
    <comment_count>0</comment_count>
    <who name="Karl Dubost">karlcow</who>
    <bug_when>2026-10-19 02:29:53 -0700</bug_when>
    <thetext>SVG 2 lets a textPath href point at a basic shape as well as a path: 

    &quot;An URL reference to the path element or basic shape element onto which the glyphs will be rendered&quot; 
    (https://w3c.github.io/svgwg/svg2-draft/text.html#TextPathElementHrefAttribute).

WebKit lays the text out on the shape the first time. After that, changing the shape does not move the text. A path target does follow.

Test case: 
a text with &lt;textPath href=&quot;#s&quot;&gt;, where #s is a rect, circle, ellipse, line or polygon. 
After the first layout, move the shape (for example rect y from 20 to 120), then read getStartPositionOfChar(3).

path (control): y 100 -&gt; 150, follows
rect, circle, ellipse, line, polygon: unchanged

Cause: 
SVGTextPathElement::buildPendingResource() calls addReferencingElement() only when the target is an SVGPathElement (SVGTextPathElement.cpp:180), and SVGPathElement::invalidatePathDependencies() is what tells the textPath. RenderSVGTextPath::layoutPath() already accepts any SVGGeometryElement.

Other engines, same probe: 
* Firefox 160 follows all six. 
* Chrome Canary 158 never puts the text on the shape (position (0,0) before any edit): Blink&apos;s LayoutSVGTextPath::LayoutPath() only accepts an SVGPathElement. That is a separate gap, not this bug. I will add more WPT. 

Probe attached.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2265959</commentid>
    <comment_count>1</comment_count>
      <attachid>481890</attachid>
    <who name="Karl Dubost">karlcow</who>
    <bug_when>2026-10-19 02:31:20 -0700</bug_when>
    <thetext>Created attachment 481890
probe-textpath-href-basic-shape-live-update.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2265961</commentid>
    <comment_count>2</comment_count>
    <who name="Karl Dubost">karlcow</who>
    <bug_when>2026-10-19 02:38:17 -0700</bug_when>
    <thetext>I also opened https://github.com/w3c/svgwg/issues/1212 
for SVG2 spec part, which lacks clarification.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2269228</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2026-10-26 02:30:13 -0700</bug_when>
    <thetext>&lt;rdar://problem/190994871&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>481890</attachid>
            <date>2026-10-19 02:31:20 -0700</date>
            <delta_ts>2026-10-19 02:31:20 -0700</delta_ts>
            <desc>probe-textpath-href-basic-shape-live-update.html</desc>
            <filename>probe-textpath-href-basic-shape-live-update.html</filename>
            <type>text/html</type>
            <size>10362</size>
            <attacher name="Karl Dubost">karlcow</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KPG1ldGEgY2hhcnNldD0idXRmLTgiPgo8
dGl0bGU+dGV4dFBhdGggaHJlZiB0byBiYXNpYyBzaGFwZXM6IGxpdmUgdXBkYXRlPC90aXRsZT4K
PGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL3czYy5naXRodWIuaW8vc3Znd2cvc3ZnMi1k
cmFmdC90ZXh0Lmh0bWwjVGV4dFBhdGhFbGVtZW50SHJlZkF0dHJpYnV0ZSI+CjwhLS0KICBCdWcg
NjAwNyBmb2xsb3ctdXAuIE9ic2VydmFibGU6IGdldFN0YXJ0UG9zaXRpb25PZkNoYXIoMykgb24g
YSA8dGV4dD4gd2l0aCBhCiAgPHRleHRQYXRoIGhyZWY9IiNzaGFwZSI+LCByZWFkIGJlZm9yZSBh
bmQgYWZ0ZXIgdGhlIHNoYXBlIGlzIG1vdmVkLgogIENvbnRyb2wgdGhhdCBtdXN0IGNoYW5nZTog
dGhlIHBhdGggY2FzZS4gQ29udHJvbCB0aGF0IG11c3Qgbm90IGNoYW5nZTogdGhlCiAgc2FtZSBz
aGFwZSByZWFkIHR3aWNlIHdpdGggbm8gZWRpdCAoZGV0ZXJtaW5pc20pLgogIEV4cGVjdGVkOiBh
bGwgc2l4IGNoYW5nZSBpZiB0ZXh0UGF0aCB0cmFja3MgaXRzIHRhcmdldDsgV2ViS2l0ICgyMDI2
LTEwLTE5KQogIGNoYW5nZWQgb25seSB0aGUgcGF0aC4KLS0+CjxzdHlsZT4KIGJvZHkgeyBmb250
OiAxM3B4LzEuNDUgLWFwcGxlLXN5c3RlbSwgc3lzdGVtLXVpLCBzYW5zLXNlcmlmOyBtYXJnaW46
IDEuNXJlbTsgbWF4LXdpZHRoOiA3NHJlbTsgfQogcHJlIHsgYmFja2dyb3VuZDogI2Y1ZjVmNTsg
cGFkZGluZzogLjZyZW07IG92ZXJmbG93LXg6IGF1dG87IGZvbnQtc2l6ZTogMTFweDsgfQo8L3N0
eWxlPgo8aDE+dGV4dFBhdGggaHJlZiB0byBiYXNpYyBzaGFwZXM6IGxpdmUgdXBkYXRlPC9oMT4K
PHAgaWQ9InN0YXR1cyI+cnVubmluZ+KApjwvcD4KPGgyPkpTT04gcGF5bG9hZDwvaDI+CjxwcmUg
aWQ9Impzb24iPuKApjwvcHJlPgo8c2NyaXB0Pgpjb25zdCBOUyA9ICJodHRwOi8vd3d3LnczLm9y
Zy8yMDAwL3N2ZyI7CmNvbnN0IGFzY2lpSlNPTiA9IChvKSA9PiBKU09OLnN0cmluZ2lmeShvLCBu
dWxsLCAxKQogIC5yZXBsYWNlKC9bXHUwMDdmLVx1ZmZmZl0vZywgYyA9PiAnXFx1JyArIGMuY2hh
ckNvZGVBdCgwKS50b1N0cmluZygxNikucGFkU3RhcnQoNCwgJzAnKSk7CmNvbnN0IGNhc2VzID0g
ewogIHBhdGg6ICAgIHsgdGFnOiAicGF0aCIsICAgIGF0dHJzOiB7IGQ6ICJNMTAgMTAwIEgyMDAi
IH0sICAgICAgICAgICAgICAgICAgICBjaGFuZ2U6IHsgZDogIk0xMCAxNTAgSDIwMCIgfSB9LAog
IHJlY3Q6ICAgIHsgdGFnOiAicmVjdCIsICAgIGF0dHJzOiB7IHg6IDEwLCB5OiAyMCwgd2lkdGg6
IDEwMCwgaGVpZ2h0OiA0MCB9LCBjaGFuZ2U6IHsgeTogMTIwIH0gfSwKICBjaXJjbGU6ICB7IHRh
ZzogImNpcmNsZSIsICBhdHRyczogeyBjeDogMTAwLCBjeTogMTAwLCByOiA0MCB9LCAgICAgICAg
ICAgICAgY2hhbmdlOiB7IGN5OiAxNTAgfSB9LAogIGVsbGlwc2U6IHsgdGFnOiAiZWxsaXBzZSIs
IGF0dHJzOiB7IGN4OiAxMDAsIGN5OiAxMDAsIHJ4OiA0MCwgcnk6IDIwIH0sICAgICBjaGFuZ2U6
IHsgY3k6IDE1MCB9IH0sCiAgbGluZTogICAgeyB0YWc6ICJsaW5lIiwgICAgYXR0cnM6IHsgeDE6
IDEwLCB5MTogMTAsIHgyOiAxMDAsIHkyOiAxMCB9LCAgICAgIGNoYW5nZTogeyB5MTogMTUwLCB5
MjogMTUwIH0gfSwKICBwb2x5Z29uOiB7IHRhZzogInBvbHlnb24iLCBhdHRyczogeyBwb2ludHM6
ICIxMCwxMCAxMDAsMTAgMTAwLDEwMCIgfSwgICAgICAgY2hhbmdlOiB7IHBvaW50czogIjEwLDEx
MCAxMDAsMTEwIDEwMCwyMDAiIH0gfSwKfTsKY29uc3QgcG9zID0gKHRleHQpID0+IHsgY29uc3Qg
cCA9IHRleHQuZ2V0U3RhcnRQb3NpdGlvbk9mQ2hhcigzKTsgcmV0dXJuIFtNYXRoLnJvdW5kKHAu
eCksIE1hdGgucm91bmQocC55KV07IH07CmNvbnN0IHJvd3MgPSB7fTsKZm9yIChjb25zdCBbbmFt
ZSwgY10gb2YgT2JqZWN0LmVudHJpZXMoY2FzZXMpKSB7CiAgY29uc3Qgc3ZnID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudE5TKE5TLCAic3ZnIik7CiAgc3ZnLnNldEF0dHJpYnV0ZSgid2lkdGgiLCA0
MDApOyBzdmcuc2V0QXR0cmlidXRlKCJoZWlnaHQiLCAyMDApOwogIGRvY3VtZW50LmJvZHkuYXBw
ZW5kKHN2Zyk7CiAgY29uc3Qgc2hhcGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoTlMsIGMu
dGFnKTsKICBzaGFwZS5pZCA9ICJzLSIgKyBuYW1lOwogIGZvciAoY29uc3QgW2ssIHZdIG9mIE9i
amVjdC5lbnRyaWVzKGMuYXR0cnMpKSBzaGFwZS5zZXRBdHRyaWJ1dGUoaywgdik7CiAgc3ZnLmFw
cGVuZChzaGFwZSk7CiAgY29uc3QgdGV4dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyhOUywg
InRleHQiKTsKICBjb25zdCB0cCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyhOUywgInRleHRQ
YXRoIik7CiAgdHAuc2V0QXR0cmlidXRlKCJocmVmIiwgIiNzLSIgKyBuYW1lKTsKICB0cC50ZXh0
Q29udGVudCA9ICJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWiI7CiAgdGV4dC5hcHBlbmQodHAp
OyBzdmcuYXBwZW5kKHRleHQpOwogIGNvbnN0IGJlZm9yZSA9IHBvcyh0ZXh0KSwgYWdhaW4gPSBw
b3ModGV4dCk7CiAgZm9yIChjb25zdCBbaywgdl0gb2YgT2JqZWN0LmVudHJpZXMoYy5jaGFuZ2Up
KSBzaGFwZS5zZXRBdHRyaWJ1dGUoaywgdik7CiAgY29uc3QgYWZ0ZXIgPSBwb3ModGV4dCk7CiAg
cm93c1tuYW1lXSA9IHsgYmVmb3JlLCBhZ2Fpbl9ub19lZGl0OiBhZ2FpbiwgYWZ0ZXIsIGRldGVy
bWluaXN0aWM6IFN0cmluZyhiZWZvcmUpID09PSBTdHJpbmcoYWdhaW4pLCB1cGRhdGVkOiBTdHJp
bmcoYmVmb3JlKSAhPT0gU3RyaW5nKGFmdGVyKSB9Owp9CmNvbnN0IHBheWxvYWQgPSB7CiAgcHJv
YmU6ICJ0ZXh0cGF0aC1ocmVmLWJhc2ljLXNoYXBlLWxpdmUtdXBkYXRlIiwKICB1c2VyX2FnZW50
OiBuYXZpZ2F0b3IudXNlckFnZW50LAogIGVuZ2luZV9oaW50OiAiIiwKICBjaGFyYWN0ZXJfc2V0
OiBkb2N1bWVudC5jaGFyYWN0ZXJTZXQsCiAgY29udHJvbHNfcGFzc2VkOiByb3dzLnBhdGgudXBk
YXRlZCAmJiBPYmplY3QudmFsdWVzKHJvd3MpLmV2ZXJ5KHIgPT4gci5kZXRlcm1pbmlzdGljKSwK
ICBleHBlY3Q6ICJ1cGRhdGVkIHRydWUgZm9yIGFsbCBzaXggaWYgdGV4dFBhdGggdHJhY2tzIGl0
cyB0YXJnZXQiLAogIHJvd3MsCn07CmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJqc29uIikudGV4
dENvbnRlbnQgPSBhc2NpaUpTT04ocGF5bG9hZCk7CmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJz
dGF0dXMiKS50ZXh0Q29udGVudCA9ICJkb25lIjsKPC9zY3JpcHQ+CjxzY3JpcHQ+Ci8vIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQovLyBQYXlsb2FkIGJ1dHRvbnMuIENBTk9OSUNBTCBTT1VSQ0U6IHRlbXBs
YXRlcy9wcm9iZS1wYXlsb2FkLWJ1dHRvbnMuaHRtbAovLwovLyBEbyBOT1QgaGFuZC1lZGl0IHRo
aXMgYmxvY2sgaW5zaWRlIGEgcHJvYmUuIEVkaXQgdGhlIGNhbm9uaWNhbCBmaWxlIGFuZCBydW4K
Ly8gICAgIHB5dGhvbjMgdG9vbHMvc3luYy1wcm9iZS1idXR0b25zLnB5IC0tYXBwbHkKLy8gd2hp
Y2ggcmV3cml0ZXMgdGhpcyBibG9jayBpbiB0ZW1wbGF0ZXMvcHJvYmUtdGVtcGxhdGUuaHRtbCBh
bmQgaW4gZXZlcnkKLy8gYXR0cmlidXRlcy8qKi9leGFtcGxlcy9wcm9iZS0qLmh0bWwsIGRvbS8q
KiwgZWxlbWVudHMvKiouIEJlZm9yZSB0aGlzIHRvb2wKLy8gZXhpc3RlZCB0aGUgMzggcHJvYmVz
IGNhcnJpZWQgOSBkaWZmZXJlbnQgdmFyaWFudHMgb2YgaXQuCi8vCi8vIFNlbGYtY29udGFpbmVk
IG9uIHB1cnBvc2U6IGl0IGZpbmRzIHRoZSBwYXlsb2FkIDxwcmU+IGl0c2VsZiAoYnkgI2pzb24s
IGVsc2UKLy8gdGhlIGxhc3QgPHByZT4gb24gdGhlIHBhZ2UpLCBzbyBpdCB3b3JrcyB3aXRoIGV2
ZXJ5IHByb2JlIHN0eWxlIHdpdGhvdXQKLy8gdG91Y2hpbmcgdGhlIHByb2JlJ3Mgb3duIGxvZ2lj
LgovLwovLyBUd28gYnV0dG9uczoKLy8gICBDb3B5IEpTT04gcGF5bG9hZDogY2xpcGJvYXJkLCBm
b3IgcGFzdGluZyBpbnRvIGEgY29udmVyc2F0aW9uIG9yIGFuIGVkaXRvci4KLy8gICBEb3dubG9h
ZCBKU09OOiB3cml0ZXMgYSBjb3JyZWN0bHktbmFtZWQgZmlsZSB3aGVyZSB0aGUgYnJvd3NlciBz
dXBwb3J0cwovLyAgICAgaXQuIE1pbmlCcm93c2VyIGhhZCBubyBkb3dubG9hZCBVSSB1bnRpbCBL
YXJsIGFkZGVkIG9uZSBvbiAyMDI2LTA4LTE2OwovLyAgICAgb2xkZXIgYnVpbGRzIHJlbmRlciB0
aGUgYmxvYiBpbnN0ZWFkIG9mIHNhdmluZyBpdCwgYW5kIENvcHkgaXMgdGhlCi8vICAgICByb3V0
ZSB0aGVyZS4KLy8KLy8gUHJlZmVyIHRoZSBkb3dubG9hZCB3aGVyZSBpdCB3b3JrcywgYmVjYXVz
ZSBhIHNhdmVkIGZpbGUgY2FuIGJlIHJlYWQgc2VsZWN0aXZlbHkKLy8gYW5kIGEgcGFzdGVkIG9u
ZSBjYW5ub3QuIEJ1dCB0aGUgQ29weSBwYXRoIGlzIG5vdyBzYWZlIHRvbzogcHJvYmVzIHJlbmRl
ciB0aGVpcgovLyBwYXlsb2FkIGFzIEFTQ0lJLW9ubHkgSlNPTiAoXHVYWFhYIGVzY2FwZXMpLCBz
byBhIGNsaXBib2FyZC1hbmQtZWRpdG9yIHJvdW5kIHRyaXAKLy8gY2Fubm90IGNoYW5nZSBhIGJ5
dGUuIFRoYXQgbWF0dGVyZWQgb24gMjAyNi0wOC0xNSwgd2hlbiBwYXN0aW5nIGEgcGF5bG9hZCBp
bnRvIGEKLy8gdGV4dCBmaWxlIHJlLWVuY29kZWQgYW4gZW0gZGFzaCBpbiBhIHZlcmRpY3Qga2V5
IGFuZCBtYWRlIHRoZSByb3cgbG9vayBtaXNzaW5nLgovLwovLyBUaGUgZG93bmxvYWRlZCBieXRl
cyBhcmUgSURFTlRJQ0FMIHRvIHdoYXQgdGhlIHBhZ2UgZGlzcGxheXMuIE5vdGhpbmcgaXMKLy8g
aW5qZWN0ZWQgYXQgc2F2ZSB0aW1lLCBzbyBhIHBhc3RlZCBwYXlsb2FkIGFuZCBhIHNhdmVkIHBh
eWxvYWQgYXJlIHRoZSBzYW1lCi8vIGFydGlmYWN0OyB0aGUgcnVuIGRhdGUgbGl2ZXMgaW4gdGhl
IGZpbGVuYW1lIGluc3RlYWQuCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQooZnVuY3Rpb24gKCkgewog
IGNvbnN0IHByZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdqc29uJykKICAgIHx8IFsuLi5k
b2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdwcmUnKV0ucG9wKCk7CiAgaWYgKCFwcmUpIHJldHVy
bjsKCiAgY29uc3QgYmFyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgncCcpOwogIGJhci5zdHls
ZS5jc3NUZXh0ID0gJ2Rpc3BsYXk6ZmxleDtnYXA6LjZyZW07YWxpZ24taXRlbXM6Y2VudGVyO2Zs
ZXgtd3JhcDp3cmFwO21hcmdpbjouNXJlbSAwJzsKCiAgY29uc3QgbWtCdG4gPSAobGFiZWwpID0+
IHsKICAgIGNvbnN0IGIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdidXR0b24nKTsKICAgIGIu
dHlwZSA9ICdidXR0b24nOwogICAgYi50ZXh0Q29udGVudCA9IGxhYmVsOwogICAgYi5zdHlsZS5j
c3NUZXh0ID0gJ2ZvbnQ6aW5oZXJpdDtwYWRkaW5nOi4zcmVtIC44cmVtO2N1cnNvcjpwb2ludGVy
JzsKICAgIHJldHVybiBiOwogIH07CiAgY29uc3QgY29weUJ0biA9IG1rQnRuKCdDb3B5IEpTT04g
cGF5bG9hZCcpOwogIGNvbnN0IGRsQnRuID0gbWtCdG4oJ0Rvd25sb2FkIEpTT04nKTsKCiAgY29u
c3Qgc3RhdGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7CiAgc3RhdGUuc2V0QXR0
cmlidXRlKCdyb2xlJywgJ3N0YXR1cycpOwogIHN0YXRlLnNldEF0dHJpYnV0ZSgnYXJpYS1saXZl
JywgJ3BvbGl0ZScpOwogIHN0YXRlLnN0eWxlLmNzc1RleHQgPSAnZm9udC1zaXplOjEycHg7Zm9u
dC13ZWlnaHQ6NzAwJzsKCiAgYmFyLmFwcGVuZChjb3B5QnRuLCBkbEJ0biwgc3RhdGUpOwogIHBy
ZS5wYXJlbnROb2RlLmluc2VydEJlZm9yZShiYXIsIHByZSk7CgogIGNvbnN0IHNheSA9IChtc2cs
IG9rKSA9PiB7CiAgICBzdGF0ZS50ZXh0Q29udGVudCA9IG1zZzsKICAgIHN0YXRlLnN0eWxlLmNv
bG9yID0gb2sgPyAnIzA2MCcgOiAnI2EwMCc7CiAgfTsKCiAgLy8gUmVmdXNlIHRvIGhhbmQgb3Zl
ciBhIHBheWxvYWQgdGhlIHByb2JlIGhhcyBub3QgZmluaXNoZWQgd3JpdGluZy4KICBjb25zdCBw
YXlsb2FkVGV4dCA9ICgpID0+IHsKICAgIGNvbnN0IHRleHQgPSBwcmUudGV4dENvbnRlbnQudHJp
bSgpOwogICAgcmV0dXJuICghdGV4dCB8fCB0ZXh0ID09PSAn4oCmJykgPyBudWxsIDogdGV4dDsK
ICB9OwoKICAvLyBCcm93c2VyICsgdmVyc2lvbiBmb3IgdGhlIGZpbGVuYW1lLiBPcmRlciBtYXR0
ZXJzOiBFZGdlJ3MgVUEgY29udGFpbnMKICAvLyAiQ2hyb21lIiwgYW5kIENocm9tZSdzIGNvbnRh
aW5zICJTYWZhcmkiLCBzbyB0aGUgc3BlY2lmaWMgdGVzdHMgY29tZSBmaXJzdC4KICBjb25zdCBi
cm93c2VyVGFnID0gKHVhLCBoaW50KSA9PiB7CiAgICBsZXQgbTsKICAgIGlmICgobSA9IC9GaXJl
Zm94XC8oW1xkLl0rKS8uZXhlYyh1YSkpKSByZXR1cm4gJ2ZpcmVmb3gtJyArIG1bMV07CiAgICBp
ZiAoKG0gPSAvRWRnXC8oW1xkLl0rKS8uZXhlYyh1YSkpKSByZXR1cm4gJ2VkZ2UtJyArIG1bMV07
CiAgICBpZiAoKG0gPSAvKD86Q2hyb21lfENocm9taXVtKVwvKFtcZC5dKykvLmV4ZWModWEpKSkg
cmV0dXJuICdjaHJvbWUtJyArIG1bMV07CiAgICBpZiAoKG0gPSAvVmVyc2lvblwvKFtcZC5dKylb
XildKlNhZmFyaS8uZXhlYyh1YSkpKSByZXR1cm4gJ3NhZmFyaS0nICsgbVsxXTsKICAgIGlmICgv
QXBwbGVXZWJLaXQvLnRlc3QodWEpKSByZXR1cm4gJ3dlYmtpdC11bmtub3duLXZlcnNpb24nOwog
ICAgcmV0dXJuIChoaW50IHx8ICd1bmtub3duJykgKyAnLXVua25vd24tdmVyc2lvbic7CiAgfTsK
CiAgY29uc3Qgc2x1ZyA9IChzKSA9PiBTdHJpbmcocykucmVwbGFjZSgvW15BLVphLXowLTkuXy1d
Ky9nLCAnLScpLnJlcGxhY2UoL14tK3wtKyQvZywgJycpOwoKICAvLyBydW4tPGRhdGU+LTxicm93
c2VyPi08dmVyc2lvbj4tPHByb2JlPi5qc29uLCBtYXRjaGluZyB0aGUgbmFtaW5nIGFscmVhZHkK
ICAvLyB1c2VkIHVuZGVyIDxmYW1pbHk+L3JlcG9ydHMvLgogIGNvbnN0IHN1Z2dlc3RlZEZpbGVu
YW1lID0gKHRleHQpID0+IHsKICAgIGxldCBwcm9iZSA9ICcnLCB1YSA9IG5hdmlnYXRvci51c2Vy
QWdlbnQsIGhpbnQgPSAnJzsKICAgIHRyeSB7CiAgICAgIGNvbnN0IHAgPSBKU09OLnBhcnNlKHRl
eHQpOwogICAgICBwcm9iZSA9IHAucHJvYmUgfHwgJyc7CiAgICAgIHVhID0gcC51c2VyX2FnZW50
IHx8IHVhOwogICAgICBoaW50ID0gcC5lbmdpbmVfaGludCB8fCAnJzsKICAgIH0gY2F0Y2ggKGUp
IHsKICAgICAgLy8gQSBwYXlsb2FkIHRoYXQgaXMgbm90IHZhbGlkIEpTT04gaXMgd29ydGggc2F2
aW5nIGFueXdheSwgc28gZmFsbCBiYWNrIHRvCiAgICAgIC8vIHRoZSBkb2N1bWVudCB0aXRsZSBz
byB0aGUgZmlsZSBpcyBzdGlsbCBpZGVudGlmaWFibGUuCiAgICAgIHByb2JlID0gKGRvY3VtZW50
LnRpdGxlIHx8ICdwcm9iZScpLnRvTG93ZXJDYXNlKCk7CiAgICB9CiAgICBpZiAoIXByb2JlKSBw
cm9iZSA9IChkb2N1bWVudC50aXRsZSB8fCAncHJvYmUnKS50b0xvd2VyQ2FzZSgpOwogICAgY29u
c3QgZCA9IG5ldyBEYXRlKCk7CiAgICBjb25zdCBkYXRlID0gW2QuZ2V0RnVsbFllYXIoKSwKICAg
ICAgICAgICAgICAgICAgU3RyaW5nKGQuZ2V0TW9udGgoKSArIDEpLnBhZFN0YXJ0KDIsICcwJyks
CiAgICAgICAgICAgICAgICAgIFN0cmluZyhkLmdldERhdGUoKSkucGFkU3RhcnQoMiwgJzAnKV0u
am9pbignLScpOwogICAgcmV0dXJuIFsncnVuJywgZGF0ZSwgYnJvd3NlclRhZyh1YSwgaGludCks
IHNsdWcocHJvYmUpXS5qb2luKCctJykgKyAnLmpzb24nOwogIH07CgogIGNvcHlCdG4uYWRkRXZl
bnRMaXN0ZW5lcignY2xpY2snLCBhc3luYyAoKSA9PiB7CiAgICBjb25zdCB0ZXh0ID0gcGF5bG9h
ZFRleHQoKTsKICAgIGlmICghdGV4dCkgeyBzYXkoJ3RoZSBwcm9iZSBoYXMgbm90IGZpbmlzaGVk
IHlldC4gV2FpdCBmb3IgImRvbmUiJywgZmFsc2UpOyByZXR1cm47IH0KCiAgICAvLyBUaGUgYXN5
bmMgQ2xpcGJvYXJkIEFQSSBpcyBmcmVxdWVudGx5IHVuYXZhaWxhYmxlIG9uIGZpbGU6Ly8gcGFn
ZXMsIHNvCiAgICAvLyBmYWxsIGJhY2sgdG8gZXhlY0NvbW1hbmQsIGFuZCB0aGVuIHRvIHNpbXBs
eSBsZWF2aW5nIHRoZSBwYXlsb2FkCiAgICAvLyBzZWxlY3RlZCBzbyDijJhDIHdvcmtzLgogICAg
dHJ5IHsKICAgICAgYXdhaXQgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQodGV4dCk7CiAg
ICAgIHNheSgnY29waWVkICcgKyB0ZXh0Lmxlbmd0aC50b0xvY2FsZVN0cmluZygpICsgJyBjaGFy
YWN0ZXJzJywgdHJ1ZSk7CiAgICAgIHJldHVybjsKICAgIH0gY2F0Y2ggKGUpIHsgLyogZmFsbCB0
aHJvdWdoIHRvIHRoZSBzZWxlY3Rpb24gcGF0aCAqLyB9CgogICAgY29uc3QgcmFuZ2UgPSBkb2N1
bWVudC5jcmVhdGVSYW5nZSgpOwogICAgcmFuZ2Uuc2VsZWN0Tm9kZUNvbnRlbnRzKHByZSk7CiAg
ICBjb25zdCBzZWwgPSBnZXRTZWxlY3Rpb24oKTsKICAgIHNlbC5yZW1vdmVBbGxSYW5nZXMoKTsK
ICAgIHNlbC5hZGRSYW5nZShyYW5nZSk7CiAgICBsZXQgb2sgPSBmYWxzZTsKICAgIHRyeSB7IG9r
ID0gZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ2NvcHknKTsgfSBjYXRjaCAoZSkgeyBvayA9IGZhbHNl
OyB9CiAgICBzYXkob2sgPyAnY29waWVkICcgKyB0ZXh0Lmxlbmd0aC50b0xvY2FsZVN0cmluZygp
ICsgJyBjaGFyYWN0ZXJzIChmYWxsYmFjayknCiAgICAgICAgICAgOiAnY2xpcGJvYXJkIGJsb2Nr
ZWQuIFRoZSBwYXlsb2FkIGlzIHNlbGVjdGVkLCBwcmVzcyDijJhDJywgb2spOwogIH0pOwoKICBk
bEJ0bi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHsKICAgIGNvbnN0IHRleHQgPSBw
YXlsb2FkVGV4dCgpOwogICAgaWYgKCF0ZXh0KSB7IHNheSgndGhlIHByb2JlIGhhcyBub3QgZmlu
aXNoZWQgeWV0LiBXYWl0IGZvciAiZG9uZSInLCBmYWxzZSk7IHJldHVybjsgfQoKICAgIGNvbnN0
IG5hbWUgPSBzdWdnZXN0ZWRGaWxlbmFtZSh0ZXh0KTsKICAgIHRyeSB7CiAgICAgIGNvbnN0IGJs
b2IgPSBuZXcgQmxvYihbdGV4dF0sIHsgdHlwZTogJ2FwcGxpY2F0aW9uL2pzb24nIH0pOwogICAg
ICBjb25zdCB1cmwgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpOwogICAgICBjb25zdCBhID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpOwogICAgICBhLmhyZWYgPSB1cmw7CiAgICAgIGEu
ZG93bmxvYWQgPSBuYW1lOwogICAgICBhLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7CiAgICAgIGRv
Y3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoYSk7CiAgICAgIGEuY2xpY2soKTsKICAgICAgLy8gUmV2
b2tlIG9uIGEgdGltZXIgcmF0aGVyIHRoYW4gaW1tZWRpYXRlbHk6IHNvbWUgZW5naW5lcyBoYXZl
IG5vdAogICAgICAvLyBmaW5pc2hlZCByZWFkaW5nIHRoZSBibG9iIHdoZW4gY2xpY2soKSByZXR1
cm5zLgogICAgICBzZXRUaW1lb3V0KCgpID0+IHsgVVJMLnJldm9rZU9iamVjdFVSTCh1cmwpOyBh
LnJlbW92ZSgpOyB9LCAxMDAwMCk7CiAgICAgIC8vIE5PVCAic2F2ZWQiLiBOb3RoaW5nIGhlcmUg
Y2FuIHRlbGwgd2hldGhlciBhIGZpbGUgd2FzIGFjdHVhbGx5IHdyaXR0ZW46CiAgICAgIC8vIGAn
ZG93bmxvYWQnIGluIEhUTUxBbmNob3JFbGVtZW50LnByb3RvdHlwZWAgaXMgdHJ1ZSBldmVuIGlu
IGEgYnJvd3NlciB3aXRoCiAgICAgIC8vIG5vIGRvd25sb2FkIFVJIGF0IGFsbCwgc28gdGhlcmUg
aXMgbm8gZmVhdHVyZSB0ZXN0IHRvIHJ1bi4gTWluaUJyb3dzZXIgaXMKICAgICAgLy8gZXhhY3Rs
eSB0aGF0IGNhc2U6IHRoZSBjbGljayByZW5kZXJzIHRoZSBibG9iIGluc3RlYWQgb2Ygc2F2aW5n
IGl0LCBhbmQKICAgICAgLy8gdGhpcyB1c2VkIHRvIGNsYWltIHN1Y2Nlc3MgYW55d2F5ICgyMDI2
LTA4LTE1KS4gU2F5IHdoYXQgd2FzIGF0dGVtcHRlZCBhbmQKICAgICAgLy8gbGV0IHRoZSBwZXJz
b24gbG9va2luZyBhdCB0aGVpciBEb3dubG9hZHMgZm9sZGVyIGJlIHRoZSBqdWRnZS4KICAgICAg
c2F5KCdyZXF1ZXN0ZWQgJyArIG5hbWUgKyAnLiBJZiBub3RoaW5nIGFwcGVhcnMgaW4gRG93bmxv
YWRzIHRoaXMgYnJvd3NlciBoYXMgbm8gJwogICAgICAgICAgKyAnZG93bmxvYWQgVUk6IHVzZSBD
b3B5IGluc3RlYWQsIHRoZSBwYXlsb2FkIGlzIEFTQ0lJLW9ubHkgc28gaXQgc3Vydml2ZXMgYW55
ICcKICAgICAgICAgICsgJ2VkaXRvcicsIHRydWUpOwogICAgfSBjYXRjaCAoZSkgewogICAgICBz
YXkoJ2Rvd25sb2FkIGJsb2NrZWQgKCcgKyBlLm5hbWUgKyAnKS4gVXNlIENvcHkgaW5zdGVhZCcs
IGZhbHNlKTsKICAgIH0KICB9KTsKfSkoKTsKPC9zY3JpcHQ+CjwvaHRtbD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>