<?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>30128</bug_id>
          
          <creation_ts>2009-10-06 06:55:17 -0700</creation_ts>
          <short_desc>[v8] fix crbug/671: XPathEvaluator.evalute() will throw &quot;NAMESPACE_ERR: DOM Exception 14&quot; when applied to XML with namespaces</short_desc>
          <delta_ts>2009-10-06 15:57:59 -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>WebCore JavaScript</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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="anton muhin">antonm</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ap</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>nanto</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>152707</commentid>
    <comment_count>0</comment_count>
    <who name="anton muhin">antonm</who>
    <bug_when>2009-10-06 06:55:17 -0700</bug_when>
    <thetext>This patch allows automatic conversion of functions to namespace resolvers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>152709</commentid>
    <comment_count>1</comment_count>
      <attachid>40718</attachid>
    <who name="anton muhin">antonm</who>
    <bug_when>2009-10-06 07:03:43 -0700</bug_when>
    <thetext>Created attachment 40718
First pass

I am somewhat concerned how that complicates the logic of CodeGeneratorV8.pm.  Another option I considered was to make necessary methods custom and provide hand-written implementation.  However, that won&apos;t fix other methods that might have the same problem, e.g., originally I only fixed Document.createExpression, but fix propagated to XPathEvaluator.evaluate automatically.  On the other hand, maybe we should decide for exceptions on case by case basis.  The last thing that convinced me not to go with custom methods was Safari---they have this special logic for all XPathEvaluators.

And another note.  I added new layout tests into existing .html, but if it&apos;s against the rules (e.g. we&apos;d like to emphasize that those tests verify contra standard behaviour), I&apos;d be glad to lift them into a separate file.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>152763</commentid>
    <comment_count>2</comment_count>
      <attachid>40718</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2009-10-06 09:50:21 -0700</bug_when>
    <thetext>Comment on attachment 40718
First pass

r=me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>152767</commentid>
    <comment_count>3</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-10-06 09:57:28 -0700</bug_when>
    <thetext>Does this already work in JSC?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>152769</commentid>
    <comment_count>4</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2009-10-06 09:58:09 -0700</bug_when>
    <thetext>Yep.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>152772</commentid>
    <comment_count>5</comment_count>
      <attachid>40718</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2009-10-06 10:15:30 -0700</bug_when>
    <thetext>Comment on attachment 40718
First pass

Clearing flags on attachment: 40718

Committed r49191: &lt;http://trac.webkit.org/changeset/49191&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>152773</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2009-10-06 10:15:33 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>152850</commentid>
    <comment_count>7</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-10-06 13:43:21 -0700</bug_when>
    <thetext>This was already covered by fast/xpath/nsresolver-function.xhtml and many other tests. Did you see their results change when running the tests?

Also, this is not a non-standard extension, see a note at the very bottom of &lt;http://www.w3.org/TR/DOM-Level-3-XPath/ecma-script-binding.html&gt;:

&quot;Note: The parameter resolver of the method XPathEvaluator.evaluate is specified as an object that implements the XPathNSResolver interface. ECMAScript users can also pass to this method a function which returns a String and takes a String parameter instead of the resolver parameter.&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>152858</commentid>
    <comment_count>8</comment_count>
    <who name="anton muhin">antonm</who>
    <bug_when>2009-10-06 14:10:50 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; This was already covered by fast/xpath/nsresolver-function.xhtml and many other
&gt; tests. Did you see their results change when running the tests?

I didn&apos;t see any changes in LayoutTest results of both WebKit and Chromium.  This nsresolver-function.xhtml apparently only tests Document.evaluate which already had necessary logic.  I am aware of two cases this patch&apos;d have fixed: Document.createExpression and XPathEvaluator.evaluate.  Grepping through fast/xpath doesn&apos;t show tests for createExpression.

&gt; 
&gt; Also, this is not a non-standard extension, see a note at the very bottom of
&gt; &lt;http://www.w3.org/TR/DOM-Level-3-XPath/ecma-script-binding.html&gt;:
&gt; 
&gt; &quot;Note: The parameter resolver of the method XPathEvaluator.evaluate is
&gt; specified as an object that implements the XPathNSResolver interface.
&gt; ECMAScript users can also pass to this method a function which returns a String
&gt; and takes a String parameter instead of the resolver parameter.&quot;

Thank you very much for the pointer.  I wonder maybe we should alter Document.idl then?  That would make logic in codegen somewhat less involved (apparently)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>152889</commentid>
    <comment_count>9</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-10-06 15:57:59 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; This nsresolver-function.xhtml apparently only tests Document.evaluate which
&gt; already had necessary logic.

I see, it&apos;s my fault then that I didn&apos;t add tests for all code paths when fixing this for JavaScriptCore. Sorry about that!

&gt; I wonder maybe we should alter
&gt; Document.idl then?  That would make logic in codegen somewhat less involved
&gt; (apparently)

That may have a negative effect on non-JavaScript bindings though (if only an ifdef in IDL). Hard to tell without seeing the code changes, but maybe not something worth doing at this point, when we have this implemented already.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>40718</attachid>
            <date>2009-10-06 07:03:43 -0700</date>
            <delta_ts>2009-10-06 10:15:29 -0700</delta_ts>
            <desc>First pass</desc>
            <filename>XPathNSResolver.diff</filename>
            <type>text/plain</type>
            <size>8189</size>
            <attacher name="anton muhin">antonm</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0OTE3NykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjAgQEAKKzIwMDktMTAtMDYgIEFudG9uIE11aGluICA8YW50b25tQGNocm9taXVt
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vbiBz
dGFuZGFyZCwgYnV0IHBvcHVsYXIgZXhldGVuc2lvbiBhbGxvd3MgYXV0b21hZ2ljYWxseQorICAg
ICAgICB0dXJuIGEgZnVuY3Rpb24gaW50byBhIG5hbWVzcGFjZSByZXNvbHZlci4gIFN1cHBvcnQg
dGhhdCBpbgorICAgICAgICBDaHJvbWl1bSBhcyB3ZWxsLgorCisgICAgICAgIEFkanVzdCBDb2Rl
R2VuZXJhdG9yVjggdG8gdHJlYXQgWFBhdGhOU1Jlc29sdmVyIGluIGEgc3BlY2lhbCB3YXkuCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMDEyOAorCisg
ICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG06CisgICAgICAgICog
YmluZGluZ3MvdjgvVjhET01XcmFwcGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpWOERPTVdyYXBw
ZXI6OmdldFhQYXRoTlNSZXNvbHZlcik6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4
RG9jdW1lbnRDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q0FMTEJBQ0tfRlVOQ19ERUNM
KToKKwogMjAwOS0xMC0wNiAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgWGFuIExvcGV6LgpJbmRleDogV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCShyZXZpc2lvbiA0OTE2MykKKysrIFdlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0JKHdvcmtpbmcgY29weSkKQEAg
LTE0NjMsNyArMTQ2Myw3IEBAIHN1YiBHZW5lcmF0ZUZ1bmN0aW9uQ2FsbFN0cmluZygpCiAgICAg
ICAgICAgICAkcGFyYW1OYW1lID0gIlNWR1BPRExpc3RJdGVtPCIgLiBHZXROYXRpdmVUeXBlKCRw
YXJhbVR5cGUsIDEpIC4gIj46OmNvcHkoJHBhcmFtTmFtZSkiOwogICAgICAgICB9CiAKLSAgICAg
ICAgaWYgKCRwYXJhbWV0ZXItPnR5cGUgZXEgIk5vZGVGaWx0ZXIiKSB7CisgICAgICAgIGlmICgk
cGFyYW1ldGVyLT50eXBlIGVxICJOb2RlRmlsdGVyIiB8fCAkcGFyYW1ldGVyLT50eXBlIGVxICJY
UGF0aE5TUmVzb2x2ZXIiKSB7CiAgICAgICAgICAgICAkZnVuY3Rpb25TdHJpbmcgLj0gIiRwYXJh
bU5hbWUuZ2V0KCkiOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgJGZ1bmN0aW9uU3Ry
aW5nIC49ICRwYXJhbU5hbWU7CkBAIC0xNzQ1LDYgKzE3NDUsOSBAQCBzdWIgR2V0TmF0aXZlVHlw
ZQogICAgICMgdGVtcG9yYXJ5IGhhY2sKICAgICByZXR1cm4gIlJlZlB0cjxOb2RlRmlsdGVyPiIg
aWYgJHR5cGUgZXEgIk5vZGVGaWx0ZXIiOwogCisgICAgIyBuZWNlc3NhcnkgYXMgcmVzb2x2ZXJz
IGNvdWxkIGJlIGNvbnN0cnVjdGVkIG9uIGZseS4KKyAgICByZXR1cm4gIlJlZlB0cjxYUGF0aE5T
UmVzb2x2ZXI+IiBpZiAkdHlwZSBlcSAiWFBhdGhOU1Jlc29sdmVyIjsKKwogICAgIHJldHVybiAi
UmVmUHRyPCR7dHlwZX0+IiBpZiBJc1JlZlB0clR5cGUoJHR5cGUpIGFuZCBub3QgJGlzUGFyYW1l
dGVyOwogCiAgICAgIyBEZWZhdWx0LCBhc3N1bWUgbmF0aXZlIHR5cGUgaXMgYSBwb2ludGVyIHdp
dGggc2FtZSB0eXBlIG5hbWUgYXMgaWRsIHR5cGUKQEAgLTE5MDEsNiArMTkwNCwxMCBAQCBzdWIg
SlNWYWx1ZVRvTmF0aXZlCiAgICAgICAgIHJldHVybiAiVjhOb2RlOjpIYXNJbnN0YW5jZSgkdmFs
dWUpID8gVjhET01XcmFwcGVyOjpjb252ZXJ0RE9NV3JhcHBlclRvTm9kZTxOb2RlPih2ODo6SGFu
ZGxlPHY4OjpPYmplY3Q+OjpDYXN0KCR2YWx1ZSkpIDogMCI7CiAgICAgfQogCisgICAgaWYgKCR0
eXBlIGVxICJYUGF0aE5TUmVzb2x2ZXIiKSB7CisgICAgICAgIHJldHVybiAiVjhET01XcmFwcGVy
OjpnZXRYUGF0aE5TUmVzb2x2ZXIoJHZhbHVlKSI7CisgICAgfQorCiAgICAgQWRkSW5jbHVkZXNG
b3JUeXBlKCR0eXBlKTsKICAgICAjICRpbXBsSW5jbHVkZXN7IiR0eXBlLmgifSA9IDEgdW5sZXNz
IEF2b2lkSW5jbHVzaW9uT2ZUeXBlKCR0eXBlKTsKIApAQCAtMTk1MiwxMCArMTk1OSwxNiBAQCBz
dWIgQ3JlYXRlQ3VzdG9tU2lnbmF0dXJlCiAgICAgICAgIGlmICgkZmlyc3QpIHsgJGZpcnN0ID0g
MDsgfQogICAgICAgICBlbHNlIHsgJHJlc3VsdCAuPSAiLCAiOyB9CiAgICAgICAgIGlmIChJc1dy
YXBwZXJUeXBlKCRwYXJhbWV0ZXItPnR5cGUpKSB7Ci0gICAgICAgICAgICBteSAkdHlwZSA9ICRw
YXJhbWV0ZXItPnR5cGU7Ci0gICAgICAgICAgICBteSAkaGVhZGVyID0gR2V0VjhIZWFkZXJOYW1l
KCR0eXBlKTsKLSAgICAgICAgICAgICRpbXBsSW5jbHVkZXN7JGhlYWRlcn0gPSAxOwotICAgICAg
ICAgICAgJHJlc3VsdCAuPSAiVjgke3R5cGV9OjpHZXRSYXdUZW1wbGF0ZSgpIjsKKyAgICAgICAg
ICAgIGlmICgkcGFyYW1ldGVyLT50eXBlIGVxICJYUGF0aE5TUmVzb2x2ZXIiKSB7CisgICAgICAg
ICAgICAgICAgIyBTcGVjaWFsIGNhc2UgZm9yIFhQYXRoTlNSZXNvbHZlci4gIEFsbCBvdGhlciBi
cm93c2VycyBhY2NlcHRzIGEgY2FsbGFibGUsCisgICAgICAgICAgICAgICAgIyBzbywgZXZlbiB0
aG91Z2ggaXQncyBhZ2FpbnN0IElETCwgYWNjZXB0IG9iamVjdHMgaGVyZS4KKyAgICAgICAgICAg
ICAgICAkcmVzdWx0IC49ICJ2ODo6SGFuZGxlPHY4OjpGdW5jdGlvblRlbXBsYXRlPigpIjsKKyAg
ICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgbXkgJHR5cGUgPSAkcGFyYW1ldGVy
LT50eXBlOworICAgICAgICAgICAgICAgIG15ICRoZWFkZXIgPSBHZXRWOEhlYWRlck5hbWUoJHR5
cGUpOworICAgICAgICAgICAgICAgICRpbXBsSW5jbHVkZXN7JGhlYWRlcn0gPSAxOworICAgICAg
ICAgICAgICAgICRyZXN1bHQgLj0gIlY4JHt0eXBlfTo6R2V0UmF3VGVtcGxhdGUoKSI7CisgICAg
ICAgICAgICB9CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAkcmVzdWx0IC49ICJ2ODo6
SGFuZGxlPHY4OjpGdW5jdGlvblRlbXBsYXRlPigpIjsKICAgICAgICAgfQpJbmRleDogV2ViQ29y
ZS9iaW5kaW5ncy92OC9WOERPTVdyYXBwZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRp
bmdzL3Y4L1Y4RE9NV3JhcHBlci5oCShyZXZpc2lvbiA0OTE2MykKKysrIFdlYkNvcmUvYmluZGlu
Z3MvdjgvVjhET01XcmFwcGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTM3LDkgKzM3LDEyIEBACiAj
aW5jbHVkZSAiTm9kZUZpbHRlci5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiIC8vIGZv
ciBXZWJDb3JlOjpTdHJpbmcKICNpbmNsdWRlICJWOEN1c3RvbUJpbmRpbmcuaCIKKyNpbmNsdWRl
ICJWOEN1c3RvbVhQYXRoTlNSZXNvbHZlci5oIgogI2luY2x1ZGUgIlY4RE9NTWFwLmgiCiAjaW5j
bHVkZSAiVjhJbmRleC5oIgogI2luY2x1ZGUgIlY4VXRpbGl0aWVzLmgiCisjaW5jbHVkZSAiVjhY
UGF0aE5TUmVzb2x2ZXIuaCIKKyNpbmNsdWRlICJYUGF0aE5TUmVzb2x2ZXIuaCIKICNpbmNsdWRl
IDx2OC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0yMzksNiArMjQyLDE3IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKICAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8RXZlbnRMaXN0ZW5lcj4g
Z2V0RXZlbnRMaXN0ZW5lcihWOFByb3h5KiBwcm94eSwgdjg6OkxvY2FsPHY4OjpWYWx1ZT4gdmFs
dWUsIGJvb2wgaXNBdHRyaWJ1dGUsIExpc3RlbmVyTG9va3VwVHlwZSBsb29rdXApOwogCiAKKyAg
ICAgICAgLy8gWFBhdGgtcmVsYXRlZCB1dGlsaXRpZXMKKyAgICAgICAgc3RhdGljIFJlZlB0cjxY
UGF0aE5TUmVzb2x2ZXI+IGdldFhQYXRoTlNSZXNvbHZlcih2ODo6SGFuZGxlPHY4OjpWYWx1ZT4g
dmFsdWUpCisgICAgICAgIHsKKyAgICAgICAgICAgIFJlZlB0cjxYUGF0aE5TUmVzb2x2ZXI+IHJl
c29sdmVyOworICAgICAgICAgICAgaWYgKFY4WFBhdGhOU1Jlc29sdmVyOjpIYXNJbnN0YW5jZSh2
YWx1ZSkpCisgICAgICAgICAgICAgICAgcmVzb2x2ZXIgPSBjb252ZXJ0VG9OYXRpdmVPYmplY3Q8
WFBhdGhOU1Jlc29sdmVyPihWOENsYXNzSW5kZXg6OlhQQVRITlNSRVNPTFZFUiwgdjg6OkhhbmRs
ZTx2ODo6T2JqZWN0Pjo6Q2FzdCh2YWx1ZSkpOworICAgICAgICAgICAgZWxzZSBpZiAodmFsdWUt
PklzT2JqZWN0KCkpCisgICAgICAgICAgICAgICAgcmVzb2x2ZXIgPSBWOEN1c3RvbVhQYXRoTlNS
ZXNvbHZlcjo6Y3JlYXRlKHZhbHVlLT5Ub09iamVjdCgpKTsKKyAgICAgICAgICAgIHJldHVybiBy
ZXNvbHZlcjsKKyAgICAgICAgfQorCiAgICAgICAgIC8vIERPTUltcGxlbWVudGF0aW9uIGlzIGEg
c2luZ2xldG9uIGFuZCBpdCBpcyBoYW5kbGVkIGluIGEgc3BlY2lhbAogICAgICAgICAvLyB3YXku
IEEgd3JhcHBlciBpcyBnZW5lcmF0ZWQgcGVyIGRvY3VtZW50IGFuZCBzdG9yZWQgaW4gYW4KICAg
ICAgICAgLy8gaW50ZXJuYWwgZmllbGQgb2YgdGhlIGRvY3VtZW50LgpJbmRleDogV2ViQ29yZS9i
aW5kaW5ncy92OC9jdXN0b20vVjhEb2N1bWVudEN1c3RvbS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhEb2N1bWVudEN1c3RvbS5jcHAJKHJldmlzaW9uIDQ5
MTYzKQorKysgV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhEb2N1bWVudEN1c3RvbS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTYxLDEyICs2MSw4IEBAIENBTExCQUNLX0ZVTkNfREVDTChEb2N1
bWVudEV2YWx1YXRlKQogICAgIGlmIChWOE5vZGU6Okhhc0luc3RhbmNlKGFyZ3NbMV0pKQogICAg
ICAgICBjb250ZXh0Tm9kZSA9IFY4RE9NV3JhcHBlcjo6Y29udmVydERPTVdyYXBwZXJUb05vZGU8
Tm9kZT4odjg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdChhcmdzWzFdKSk7CiAKLSAgICBSZWZQ
dHI8WFBhdGhOU1Jlc29sdmVyPiByZXNvbHZlcjsKLSAgICBpZiAoVjhYUGF0aE5TUmVzb2x2ZXI6
Okhhc0luc3RhbmNlKGFyZ3NbMl0pKQotICAgICAgICByZXNvbHZlciA9IFY4RE9NV3JhcHBlcjo6
Y29udmVydFRvTmF0aXZlT2JqZWN0PFhQYXRoTlNSZXNvbHZlcj4oVjhDbGFzc0luZGV4OjpYUEFU
SE5TUkVTT0xWRVIsIHY4OjpIYW5kbGU8djg6Ok9iamVjdD46OkNhc3QoYXJnc1syXSkpOwotICAg
IGVsc2UgaWYgKGFyZ3NbMl0tPklzT2JqZWN0KCkpCi0gICAgICAgIHJlc29sdmVyID0gVjhDdXN0
b21YUGF0aE5TUmVzb2x2ZXI6OmNyZWF0ZShhcmdzWzJdLT5Ub09iamVjdCgpKTsKLSAgICBlbHNl
IGlmICghYXJnc1syXS0+SXNOdWxsKCkgJiYgIWFyZ3NbMl0tPklzVW5kZWZpbmVkKCkpCisgICAg
UmVmUHRyPFhQYXRoTlNSZXNvbHZlcj4gcmVzb2x2ZXIgPSBWOERPTVdyYXBwZXI6OmdldFhQYXRo
TlNSZXNvbHZlcihhcmdzWzJdKTsKKyAgICBpZiAoIXJlc29sdmVyICYmICFhcmdzWzJdLT5Jc051
bGwoKSAmJiAhYXJnc1syXS0+SXNVbmRlZmluZWQoKSkKICAgICAgICAgcmV0dXJuIHRocm93RXJy
b3IoVFlQRV9NSVNNQVRDSF9FUlIpOwogCiAgICAgaW50IHR5cGUgPSB0b0ludDMyKGFyZ3NbM10p
OwpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L0NoYW5nZUxvZwkocmV2aXNpb24gNDkxNzcpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdv
cmtpbmcgY29weSkKQEAgLTEsMyArMSwxNyBAQAorMjAwOS0xMC0wNiAgQW50b24gTXVoaW4gIDxh
bnRvbm1AY2hyb21pdW0+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgTm9uIHN0YW5kYXJkLCBidXQgcG9wdWxhciBleGV0ZW5zaW9uIGFsbG93cyBhdXRv
bWFnaWNhbGx5CisgICAgICAgIHR1cm4gYSBmdW5jdGlvbiBpbnRvIGEgbmFtZXNwYWNlIHJlc29s
dmVyLiAgU3VwcG9ydCB0aGF0IGluCisgICAgICAgIENocm9taXVtIGFzIHdlbGwuCisKKyAgICAg
ICAgVGhpcyBhZGRzIG5ldyBsYXlvdXQgdGVzdHMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMDEyOAorCisgICAgICAgICogZmFzdC94cGF0aC94cGF0
aC1uYW1lc3BhY2VzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L3hwYXRoL3hwYXRoLW5h
bWVzcGFjZXMuaHRtbDoKKwogMjAwOS0xMC0wNiAgSmFrdWIgV2llY3pvcmVrICA8ZmF3MjE3QGdt
YWlsLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBIYXVzbWFubi4KSW5kZXg6IExh
eW91dFRlc3RzL2Zhc3QveHBhdGgveHBhdGgtbmFtZXNwYWNlcy1leHBlY3RlZC50eHQKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC94cGF0aC94cGF0aC1uYW1lc3BhY2VzLWV4cGVjdGVk
LnR4dAkocmV2aXNpb24gNDkxNjMpCisrKyBMYXlvdXRUZXN0cy9mYXN0L3hwYXRoL3hwYXRoLW5h
bWVzcGFjZXMtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0zLDYgKzMsOCBAQCBUaGlz
IHRlc3RzIHRoYXQgWFBhdGggZXhwcmVzc2lvbnMgd2l0aCBwCiBQQVNTIC9uczpmb28KIFBBU1Mg
L25zOioKIFBBU1MgL2ZvbzoqCitQQVNTIC94bXBsOioKK1BBU1MgL3htcGw6KgogUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCkluZGV4OiBMYXlvdXRUZXN0
cy9mYXN0L3hwYXRoL3hwYXRoLW5hbWVzcGFjZXMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9mYXN0L3hwYXRoL3hwYXRoLW5hbWVzcGFjZXMuaHRtbAkocmV2aXNpb24gNDkxNjMpCisr
KyBMYXlvdXRUZXN0cy9mYXN0L3hwYXRoL3hwYXRoLW5hbWVzcGFjZXMuaHRtbAkod29ya2luZyBj
b3B5KQpAQCAtMjYsNiArMjYsMTggQEAKICAgICB2YXIgcmVzdWx0ID0gZXhwci5ldmFsdWF0ZShj
b250ZXh0Tm9kZSwgWFBhdGhSZXN1bHQuT1JERVJFRF9OT0RFX1NOQVBTSE9UX1RZUEUsIG51bGwp
OwogICAgIGNoZWNrU25hcHNob3QoIi9mb286KiIsIHJlc3VsdCwgW10pOwogCisgICAgLy8gTm93
IHRyeSBhIHJlc29sdmVyIG9yaWdpbmF0aW5nIGZyb20gdGhlIGZ1bmN0aW9uCisgICAgdmFyIG5h
bWVzcGFjZXMgPSB7IHhtcGw6ICJodHRwOi8vd3d3LmV4YW1wbGUub3JnIiB9OworICAgIHZhciBt
YXBSZXNvbHZlciA9IGZ1bmN0aW9uKHByZWZpeCkgeyByZXR1cm4gbmFtZXNwYWNlc1twcmVmaXhd
OyB9OworCisgICAgdmFyIGV4cHIgPSBkb2MuY3JlYXRlRXhwcmVzc2lvbigiL3htcGw6KiIsIG1h
cFJlc29sdmVyKTsKKyAgICB2YXIgcmVzdWx0ID0gZXhwci5ldmFsdWF0ZShjb250ZXh0Tm9kZSwg
WFBhdGhSZXN1bHQuT1JERVJFRF9OT0RFX1NOQVBTSE9UX1RZUEUsIG51bGwpOworICAgIGNoZWNr
U25hcHNob3QoIi94bXBsOioiLCByZXN1bHQsIFtkb2MuZG9jdW1lbnRFbGVtZW50XSk7CisKKyAg
ICB2YXIgZXZhbHVhdG9yID0gbmV3IFhQYXRoRXZhbHVhdG9yKCk7CisgICAgdmFyIHJlc3VsdCA9
IGV2YWx1YXRvci5ldmFsdWF0ZSgiL3htcGw6KiIsIGRvYywgbWFwUmVzb2x2ZXIsIFhQYXRoUmVz
dWx0Lk9SREVSRURfTk9ERV9TTkFQU0hPVF9UWVBFLCBudWxsKTsKKyAgICBjaGVja1NuYXBzaG90
KCIveG1wbDoqIiwgcmVzdWx0LCBbZG9jLmRvY3VtZW50RWxlbWVudF0pOworCiAgICAgdmFyIHN1
Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CiAKIDwvc2NyaXB0Pgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>